[Scummvm-cvs-logs] CVS: scummvm/gob game.cpp,1.32,1.33 gob.cpp,1.31,1.32 gob.h,1.15,1.16 goblin.cpp,1.28,1.29 inter.cpp,1.30,1.31 inter_v1.cpp,1.3,1.4 music.cpp,1.3,1.4 music.h,1.1,1.2
Sven Hesse
drmccoy at users.sourceforge.net
Sun Jan 8 12:04:02 CET 2006
Update of /cvsroot/scummvm/scummvm/gob
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32742
Modified Files:
game.cpp gob.cpp gob.h goblin.cpp inter.cpp inter_v1.cpp
music.cpp music.h
Log Message:
Added a dummy table for which music to play in Gobliiins Mac; some code formating issues
Index: game.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/game.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- game.cpp 7 Jan 2006 22:28:53 -0000 1.32
+++ game.cpp 8 Jan 2006 20:03:20 -0000 1.33
@@ -33,6 +33,7 @@
#include "gob/util.h"
#include "gob/goblin.h"
#include "gob/cdrom.h"
+#include "gob/music.h"
namespace Gob {
@@ -1759,7 +1760,10 @@
_vm->_draw->_fontToSprite[i].height = -1;
}
- _vm->_cdrom->stopPlaying();
+ if(_vm->_features & GF_MAC)
+ _vm->_music->stopPlay();
+ else
+ _vm->_cdrom->stopPlaying();
_vm->_draw->animateCursor(4);
_vm->_inter->initControlVars();
_vm->_mult->initAll();
Index: gob.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/gob.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- gob.cpp 7 Jan 2006 22:28:54 -0000 1.31
+++ gob.cpp 8 Jan 2006 20:03:20 -0000 1.32
@@ -70,6 +70,8 @@
{"gob1", "Gobliiins (Amiga)", Gob::GF_GOB1, "baf88a95928edb3f51067983f2dffa93"},
{"gob1", "Gobliiins (Interactive Demo)", Gob::GF_GOB1, "4f5bf4b9e4c39ebb93579747fc678e97"},
+
+ {"gob1", "Gobliiins (Mac)", Gob::GF_GOB1 | Gob::GF_MAC, "4c0e8ce4a2f66ee8226952ad3c6c1155"},
#if 0
{"gob2", "Gobliins 2 (DOS)", Gob::GF_GOB2, "abb5f762f9979d4253002de20f6e7b56"},
@@ -290,13 +292,14 @@
_scenery = new Scenery(this);
_gtimer = new GTimer();
_util = new Util(this);
- _music = new Music(this);
if (_features & Gob::GF_GOB1)
_inter = new Inter_v1(this);
else if (_features & Gob::GF_GOB2)
_inter = new Inter_v2(this);
else
error("GobEngine::init(): Unknown version of game engine");
+ if ((_features & Gob::GF_MAC) || (_features & Gob::GF_GOB1))
+ _music = new Music(this);
_system->beginGFXTransaction();
initCommonGFX(detector);
Index: gob.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/gob.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- gob.h 7 Jan 2006 22:28:54 -0000 1.15
+++ gob.h 8 Jan 2006 20:03:20 -0000 1.16
@@ -69,7 +69,8 @@
GF_GOB2 = 1 << 1,
GF_GOB3 = 1 << 2,
GF_WOODRUFF = 1 << 3,
- GF_CD = 1 << 4
+ GF_CD = 1 << 4,
+ GF_MAC = 1 << 5
};
typedef struct GobGameSettings {
Index: goblin.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/goblin.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- goblin.cpp 7 Jan 2006 22:28:54 -0000 1.28
+++ goblin.cpp 8 Jan 2006 20:03:20 -0000 1.29
@@ -32,6 +32,7 @@
#include "gob/game.h"
#include "gob/dataio.h"
#include "gob/cdrom.h"
+#include "gob/music.h"
namespace Gob {
@@ -3092,7 +3093,9 @@
case 1003:
drawObjects();
- if (_vm->_cdrom->getTrackPos() == -1)
+ if (_vm->_features & GF_MAC)
+ _vm->_music->playBgMusic();
+ else if (_vm->_cdrom->getTrackPos() == -1)
_vm->_cdrom->playBgMusic();
break;
Index: inter.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/inter.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- inter.cpp 7 Jan 2006 22:28:54 -0000 1.30
+++ inter.cpp 8 Jan 2006 20:03:20 -0000 1.31
@@ -154,10 +154,10 @@
// debug(4, "funcBlock(%d, %d)", cmd2, cmd);
- if(cmd2 == 0)
+ if (cmd2 == 0)
cmd >>= 4;
- if(executeFuncOpcode(cmd2, cmd, cmdCount, counter, retFlag))
+ if (executeFuncOpcode(cmd2, cmd, cmdCount, counter, retFlag))
return;
if (_breakFlag) {
Index: inter_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/inter_v1.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- inter_v1.cpp 7 Jan 2006 22:28:54 -0000 1.3
+++ inter_v1.cpp 8 Jan 2006 20:03:20 -0000 1.4
@@ -30,6 +30,7 @@
#include "gob/mult.h"
#include "gob/goblin.h"
#include "gob/cdrom.h"
+#include "gob/music.h"
namespace Gob {
@@ -1358,9 +1359,12 @@
}
void Inter_v1::o1_playCDTrack(void) {
- // Used in gob1 CD
evalExpr(0);
- _vm->_cdrom->startTrack(_vm->_global->_inter_resStr);
+ if (_vm->_features & GF_MAC)
+ _vm->_music->playTrack(_vm->_global->_inter_resStr);
+ else
+ // Used in gob1 CD
+ _vm->_cdrom->startTrack(_vm->_global->_inter_resStr);
}
void Inter_v1::o1_getCDTrackPos(void) {
@@ -1379,8 +1383,11 @@
}
void Inter_v1::o1_stopCD(void) {
- // Used in gob1 CD
- _vm->_cdrom->stopPlaying();
+ if (_vm->_features & GF_MAC)
+ _vm->_music->stopPlay();
+ else
+ // Used in gob1 CD
+ _vm->_cdrom->stopPlaying();
}
void Inter_v1::o1_loadFontToSprite(void) {
Index: music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/music.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- music.cpp 8 Jan 2006 12:42:06 -0000 1.3
+++ music.cpp 8 Jan 2006 20:03:20 -0000 1.4
@@ -22,9 +22,45 @@
#include "gob/music.h"
#include "gob/gob.h"
+#include "gob/game.h"
namespace Gob {
+const char *Music::_tracks[][2] = {
+ {"avt00.tot", "mine"},
+ {"avt001.tot", "nuit"},
+ {"avt002.tot", "campagne"},
+ {"avt003.tot", "extsor1"},
+ {"avt004.tot", "interieure"},
+ {"avt005.tot", "zombie"},
+ {"avt006.tot", "zombie"},
+ {"avt007.tot", "campagne"},
+ {"avt008.tot", "campagne"},
+ {"avt009.tot", "extsor1"},
+ {"avt010.tot", "extsor1"},
+ {"avt011.tot", "interieure"},
+ {"avt012.tot", "zombie"},
+ {"avt014.tot", "nuit"},
+ {"avt015.tot", "interieure"},
+ {"avt016.tot", "statue"},
+ {"avt017.tot", "zombie"},
+ {"avt018.tot", "statue"},
+ {"avt019.tot", "mine"},
+ {"avt020.tot", "statue"},
+ {"avt021.tot", "mine"},
+ {"avt022.tot", "zombie"}
+};
+
+const char *Music::_tracksToFiles[][2] = {
+ {"campagne", "Musmac2.adl"},
+ {"extsor1", "Musmac3.adl"},
+ {"interieure", "Musmac4.adl"},
+ {"mine", "Musmac5.adl"},
+ {"nuit", "Musmac6.adl"},
+ {"statue", "Musmac2.adl"},
+ {"zombie", "Musmac3.adl"}
+};
+
const unsigned char Music::_operators[] = {0, 1, 2, 8, 9, 10, 16, 17, 18};
const unsigned char Music::_volRegNums[] = {
3, 4, 5,
@@ -32,7 +68,6 @@
19, 20, 21
};
-
Music::Music(GobEngine *vm) : _vm(vm) {
_data = 0;
_playPos = 0;
@@ -71,7 +106,7 @@
int16 *data = buf;
uint datalen = len;
while (datalen) {
- if(_samplesTillPoll) {
+ if (_samplesTillPoll) {
render = (datalen > _samplesTillPoll) ? (_samplesTillPoll) : (datalen);
datalen -= render;
_samplesTillPoll -= render;
@@ -79,19 +114,19 @@
data += render;
} else {
pollMusic();
- if(_ended) {
+ if (_ended) {
memset(data, 0, datalen * sizeof(int16));
datalen = 0;
}
}
}
}
- if(_ended) {
+ if (_ended) {
_first = true;
_ended = false;
_playPos = _data + 3 + (_data[1] + 1) * 0x38;
_samplesTillPoll = 0;
- if(_looping) {
+ if (_looping) {
reset();
setVoices();
}
@@ -349,6 +384,28 @@
_playing = true;
}
+void Music::playBgMusic(void) {
+ debug(2, "Music::playBgMusic()");
+ for (int i = 0; i < ARRAYSIZE(_tracks); i++)
+ if (!scumm_stricmp(_vm->_game->_curTotFile, _tracks[i][0])) {
+ playTrack(_tracks[i][1]);
+ break;
+ }
+}
+
+void Music::playTrack(const char *trackname) {
+ if (_playing) return;
+
+ debug(2, "Music::playTrack()");
+ unloadMusic();
+ for (int i = 0; i < ARRAYSIZE(_tracksToFiles); i++)
+ if (!scumm_stricmp(trackname, _tracksToFiles[i][0])) {
+ loadMusic(_tracksToFiles[i][1]);
+ startPlay();
+ break;
+ }
+}
+
bool Music::loadMusic(const char *filename) {
Common::File song;
Index: music.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/music.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- music.h 7 Jan 2006 22:28:54 -0000 1.1
+++ music.h 8 Jan 2006 20:03:20 -0000 1.2
@@ -42,6 +42,8 @@
void setLooping(bool looping) { _looping = looping; }
void startPlay(void);
void stopPlay(void) { _playing = false; }
+ void playTrack(const char *trackname);
+ void playBgMusic(void);
bool loadMusic(const char *filename);
void unloadMusic(void);
@@ -55,6 +57,8 @@
int getRate() const { return _rate; }
protected:
+ static const char *_tracks[][2];
+ static const char *_tracksToFiles[][2];
static const unsigned char _operators[];
static const unsigned char _volRegNums [];
FM_OPL *_opl;
More information about the Scummvm-git-logs
mailing list