[Scummvm-cvs-logs] CVS: scummvm/scumm module.mk,1.21,1.22 scumm.h,1.293,1.294 scummvm.cpp,2.374,2.375 sound.cpp,1.234,1.235
Travis Howell
kirben at users.sourceforge.net
Sun Sep 7 00:24:08 CEST 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv12715/scumm
Modified Files:
module.mk scumm.h scummvm.cpp sound.cpp
Log Message:
Add music player for Amiga versions of indy3ega/loom from unused.
Revert last change to common.rules for now, it broke compile.
Index: module.mk
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/module.mk,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- module.mk 14 Aug 2003 08:24:13 -0000 1.21
+++ module.mk 7 Sep 2003 07:23:19 -0000 1.22
@@ -23,6 +23,7 @@
scumm/object.o \
scumm/player_v1.o\
scumm/player_v2.o\
+ scumm/player_v3a.o\
scumm/resource.o \
scumm/resource_v2.o \
scumm/resource_v3.o \
Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.293
retrieving revision 1.294
diff -u -d -r1.293 -r1.294
--- scumm.h 5 Sep 2003 22:53:46 -0000 1.293
+++ scumm.h 7 Sep 2003 07:23:19 -0000 1.294
@@ -41,6 +41,7 @@
class IMuseDigital;
class NewGui;
class Player_V2;
+class Player_V3A;
class Scumm;
class ScummDebugger;
class Serializer;
@@ -305,6 +306,7 @@
IMuse *_imuse;
IMuseDigital *_imuseDigital;
Player_V2 *_playerV2;
+ Player_V3A *_playerV3A;
Sound *_sound;
VerbSlot *_verbs;
Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.374
retrieving revision 2.375
diff -u -d -r2.374 -r2.375
--- scummvm.cpp 6 Sep 2003 23:29:35 -0000 2.374
+++ scummvm.cpp 7 Sep 2003 07:23:19 -0000 2.375
@@ -31,6 +31,7 @@
#include "imuse_digi.h"
#include "intern.h"
#include "object.h"
+#include "player_v3a.h"
#include "player_v2.h"
#include "player_v1.h"
#include "resource.h"
@@ -690,8 +691,11 @@
_imuse = NULL;
_imuseDigital = NULL;
_playerV2 = NULL;
+ _playerV3A = NULL;
if (_features & GF_DIGI_IMUSE) {
_imuseDigital = new IMuseDigital(this);
+ } else if ((_features & GF_AMIGA) && (_version == 3)) {
+ _playerV3A = new Player_V3A(this);
} else if ((_features & GF_AMIGA) && (_version < 5)) {
_playerV2 = NULL;
} else if (((_midiDriver == MD_PCJR) || (_midiDriver == MD_PCSPK)) && ((_version > 2) && (_version < 5))) {
@@ -783,6 +787,7 @@
delete _imuse;
delete _imuseDigital;
delete _playerV2;
+ delete _playerV3A;
free(_languageBuffer);
free(_audioNames);
@@ -1272,6 +1277,10 @@
// Covered automatically by the Sound class
} else if (_playerV2) {
VAR(VAR_MUSIC_TIMER) = _playerV2->getMusicTimer();
+ } else if (_playerV3A) {
+ for (int i = 0; i < delta; i++)
+ _playerV3A->playMusic();
+ VAR(VAR_MUSIC_TIMER) = _playerV3A->getMusicTimer();
} else if (_imuse) {
VAR(VAR_MUSIC_TIMER) = _imuse->getMusicTimer();
} else if (_features & GF_SMALL_HEADER) {
Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.234
retrieving revision 1.235
diff -u -d -r1.234 -r1.235
--- sound.cpp 7 Sep 2003 00:03:55 -0000 1.234
+++ sound.cpp 7 Sep 2003 07:23:20 -0000 1.235
@@ -26,6 +26,7 @@
#include "imuse.h"
#include "imuse_digi.h"
#include "player_v2.h"
+#include "player_v3a.h"
#include "scumm.h"
#include "sound.h"
#include "sound/mididrv.h"
@@ -430,26 +431,14 @@
}
- // Used in Amiga verisons of indy3ega and loom
- // Used in Mac. version of indy3ega
- if (((_scumm->_features & GF_MACINTOSH) && (_scumm->_gameId == GID_INDY3))
- || ((_scumm->_features & GF_AMIGA) && (_scumm->_version == 3))) {
+ if ((_scumm->_features & GF_MACINTOSH) && (_scumm->_gameId == GID_INDY3)) {
if (ptr[26] == 00) {
size = READ_BE_UINT16(ptr + 12);
rate = 3579545 / READ_BE_UINT16(ptr + 20);
sound = (char *)malloc(size);
int vol = ptr[24] * 4;
memcpy(sound,ptr + READ_BE_UINT16(ptr + 8), size);
- if ((_scumm->_features & GF_AMIGA) && (READ_BE_UINT16(ptr + 16) || READ_BE_UINT16(ptr + 6))) {
- // the first check is for pitch-bending looped sounds (i.e. "pouring liquid", "biplane dive", etc.)
- // the second check is for simple looped sounds
- int loopStart = READ_BE_UINT16(ptr + 10) - READ_BE_UINT16(ptr + 8);
- int loopEnd = READ_BE_UINT16(ptr + 14);
- _scumm->_mixer->playRaw(NULL, sound, size, rate,
- SoundMixer::FLAG_AUTOFREE | SoundMixer::FLAG_LOOP, soundID, vol, 0, loopStart, loopEnd);
- } else {
- _scumm->_mixer->playRaw(NULL, sound, size, rate, SoundMixer::FLAG_AUTOFREE, soundID, vol, 0);
- }
+ _scumm->_mixer->playRaw(NULL, sound, size, rate, SoundMixer::FLAG_AUTOFREE, soundID, vol, 0);
return;
}
}
@@ -496,7 +485,10 @@
if (_scumm->_playerV2) {
_scumm->_playerV2->startSound(soundID, ptr);
}
-
+
+ if (_scumm->_playerV3A)
+ _scumm->_playerV3A->startSound(soundID, ptr);
+
if (_scumm->_imuse) {
_scumm->_imuse->startSound(soundID);
}
@@ -699,6 +691,9 @@
if (_scumm->_playerV2)
return _scumm->_playerV2->getSoundStatus(sound);
+ if (_scumm->_playerV3A)
+ return _scumm->_playerV3A->getSoundStatus(sound);
+
return 0;
}
@@ -769,9 +764,8 @@
_scumm->_imuse->stopSound(a);
} else if (_scumm->_playerV2) {
_scumm->_playerV2->stopSound (a);
- } else if ((_scumm->_features & GF_AMIGA) && (_scumm->_version <= 3)) {
- // this handles stopping looped sounds for now
- _scumm->_mixer->stopID(a);
+ } else if (_scumm->_playerV3A) {
+ _scumm->_playerV3A->stopSound(a);
}
for (i = 0; i < 10; i++)
@@ -790,6 +784,8 @@
_scumm->_imuse->clear_queue();
} else if (_scumm->_playerV2) {
_scumm->_playerV2->stopAllSounds();
+ } else if (_scumm->_playerV3A) {
+ _scumm->_playerV3A->stopAllSounds();
}
clearSoundQue();
More information about the Scummvm-git-logs
mailing list