From a3bc17296b61448fa247a012d0c4013a32928118 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Fri, 26 Aug 2011 07:44:30 +0200 Subject: GOB: Add Geisha AdLib music opcodes adlibPlay() is commented out for now, until Strangerke fixes the MDYPlayer. :P --- engines/gob/inter_geisha.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'engines/gob/inter_geisha.cpp') diff --git a/engines/gob/inter_geisha.cpp b/engines/gob/inter_geisha.cpp index 98e904a11c..d4f92d9574 100644 --- a/engines/gob/inter_geisha.cpp +++ b/engines/gob/inter_geisha.cpp @@ -50,7 +50,12 @@ void Inter_Geisha::setupOpcodesFunc() { Inter_v1::setupOpcodesFunc(); OPCODEFUNC(0x03, oGeisha_loadCursor); + OPCODEFUNC(0x25, oGeisha_goblinFunc); OPCODEFUNC(0x3A, oGeisha_loadSound); + + OPCODEGOB(2, oGeisha_loadTitleMusic); + OPCODEGOB(3, oGeisha_playMusic); + OPCODEGOB(4, oGeisha_stopMusic); } void Inter_Geisha::setupOpcodesGob() { @@ -67,6 +72,18 @@ void Inter_Geisha::oGeisha_loadSound(OpFuncParams ¶ms) { loadSound(-1); } +void Inter_Geisha::oGeisha_goblinFunc(OpFuncParams ¶ms) { + OpGobParams gobParams; + int16 cmd; + + cmd = _vm->_game->_script->readInt16(); + + gobParams.paramCount = _vm->_game->_script->readInt16(); + gobParams.extraData = cmd; + + executeOpcodeGob(cmd, gobParams); +} + int16 Inter_Geisha::loadSound(int16 slot) { const char *sndFile = _vm->_game->_script->evalString(); @@ -90,4 +107,26 @@ int16 Inter_Geisha::loadSound(int16 slot) { return 0; } +void Inter_Geisha::oGeisha_loadTitleMusic(OpGobParams ¶ms) { + _vm->_game->_script->skip(2); + + _vm->_sound->adlibLoadTBR("geisha.tbr"); + _vm->_sound->adlibLoadMDY("geisha.mdy"); +} + +void Inter_Geisha::oGeisha_playMusic(OpGobParams ¶ms) { + _vm->_game->_script->skip(2); + + // TODO: The MDYPlayer is still broken! + warning("Geisha Stub: oGeisha_playMusic"); + // _vm->_sound->adlibPlay(); +} + +void Inter_Geisha::oGeisha_stopMusic(OpGobParams ¶ms) { + _vm->_game->_script->skip(2); + + _vm->_sound->adlibStop(); + _vm->_sound->adlibUnload(); +} + } // End of namespace Gob -- cgit v1.2.3