[Scummvm-cvs-logs] SF.net SVN: scummvm: [26385] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Thu Apr 5 17:38:31 CEST 2007


Revision: 26385
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26385&view=rev
Author:   drmccoy
Date:     2007-04-05 08:38:30 -0700 (Thu, 05 Apr 2007)

Log Message:
-----------
Added GobOpcodes 1 and 2 (start and stop Infogrames music)

Modified Paths:
--------------
    scummvm/trunk/engines/gob/inter.h
    scummvm/trunk/engines/gob/inter_v2.cpp
    scummvm/trunk/engines/gob/inter_v3.cpp

Modified: scummvm/trunk/engines/gob/inter.h
===================================================================
--- scummvm/trunk/engines/gob/inter.h	2007-04-05 14:28:19 UTC (rev 26384)
+++ scummvm/trunk/engines/gob/inter.h	2007-04-05 15:38:30 UTC (rev 26385)
@@ -386,6 +386,8 @@
 	bool o2_writeData(OpFuncParams &params);
 	void o2_loadInfogramesIns(OpGobParams &params);
 	void o2_playInfogrames(OpGobParams &params);
+	void o2_startInfogrames(OpGobParams &params);
+	void o2_stopInfogrames(OpGobParams &params);
 	void o2_handleGoblins(OpGobParams &params);
 };
 

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2007-04-05 14:28:19 UTC (rev 26384)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2007-04-05 15:38:30 UTC (rev 26385)
@@ -50,8 +50,8 @@
 
 const int Inter_v2::_goblinFuncLookUp[][2] = {
 	{0, 0},
-	{2, 1},
-	{3, 2},
+	{1, 1},
+	{2, 2},
 	{4, 3},
 	{5, 4},
 	{6, 5},
@@ -556,9 +556,9 @@
 	static const OpcodeGoblinEntryV2 opcodesGoblin[71] = {
 		/* 00 */
 		OPCODE(o2_loadInfogramesIns),
+		OPCODE(o2_startInfogrames),
+		OPCODE(o2_stopInfogrames),
 		{NULL, ""},
-		{NULL, ""},
-		{NULL, ""},
 		/* 04 */
 		{NULL, ""},
 		{NULL, ""},
@@ -1937,6 +1937,7 @@
 
 	if (_vm->_game->_infogrames) {
 		_vm->_mixer->stopHandle(_vm->_game->_infHandle);
+		delete _vm->_game->_infogrames;
 		_vm->_game->_infogrames = 0;
 	}
 
@@ -1976,6 +1977,7 @@
 
 	if (_vm->_game->_infIns) {
 		_vm->_mixer->stopHandle(_vm->_game->_infHandle);
+		delete _vm->_game->_infogrames;
 		_vm->_game->_infogrames =
 			new Audio::Infogrames(*_vm->_game->_infIns, true,
 					_vm->_mixer->getOutputRate(),
@@ -1987,10 +1989,29 @@
 			_vm->_game->_infogrames = 0;
 		} else
 			_vm->_mixer->playInputStream(Audio::Mixer::kMusicSoundType,
-					&_vm->_game->_infHandle, _vm->_game->_infogrames);
+					&_vm->_game->_infHandle, _vm->_game->_infogrames,
+					-1, 255, 0, false);
 	}
 }
 
+void Inter_v2::o2_startInfogrames(OpGobParams &params) {
+	load16();
+
+	if (_vm->_game->_infogrames &&
+			!_vm->_mixer->isSoundHandleActive(_vm->_game->_infHandle)) {
+		_vm->_game->_infogrames->restart();
+		_vm->_mixer->playInputStream(Audio::Mixer::kMusicSoundType,
+				&_vm->_game->_infHandle, _vm->_game->_infogrames,
+				-1, 255, 0, false);
+	}
+}
+
+void Inter_v2::o2_stopInfogrames(OpGobParams &params) {
+	load16();
+
+	_vm->_mixer->stopHandle(_vm->_game->_infHandle);
+}
+
 void Inter_v2::o2_handleGoblins(OpGobParams &params) {
 	_vm->_goblin->_gob1NoTurn = (bool) VAR(load16());
 	_vm->_goblin->_gob2NoTurn = (bool) VAR(load16());

Modified: scummvm/trunk/engines/gob/inter_v3.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v3.cpp	2007-04-05 14:28:19 UTC (rev 26384)
+++ scummvm/trunk/engines/gob/inter_v3.cpp	2007-04-05 15:38:30 UTC (rev 26385)
@@ -36,8 +36,8 @@
 
 const int Inter_v3::_goblinFuncLookUp[][2] = {
 	{0, 0},
-	{2, 1},
-	{3, 2},
+	{1, 1},
+	{2, 2},
 	{4, 3},
 	{5, 4},
 	{6, 5},
@@ -542,9 +542,9 @@
 	static const OpcodeGoblinEntryV3 opcodesGoblin[71] = {
 		/* 00 */
 		OPCODE(o2_loadInfogramesIns),
+		OPCODE(o2_startInfogrames),
+		OPCODE(o2_stopInfogrames),
 		{NULL, ""},
-		{NULL, ""},
-		{NULL, ""},
 		/* 04 */
 		{NULL, ""},
 		{NULL, ""},


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list