[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