aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/gob/inter.h1
-rw-r--r--engines/gob/inter_geisha.cpp15
2 files changed, 16 insertions, 0 deletions
diff --git a/engines/gob/inter.h b/engines/gob/inter.h
index 7946543f5a..49323446d0 100644
--- a/engines/gob/inter.h
+++ b/engines/gob/inter.h
@@ -348,6 +348,7 @@ protected:
void oGeisha_goblinFunc(OpFuncParams &params);
void oGeisha_loadSound(OpFuncParams &params);
+ void oGeisha_gamePenetration(OpGobParams &params);
void oGeisha_loadTitleMusic(OpGobParams &params);
void oGeisha_playMusic(OpGobParams &params);
void oGeisha_stopMusic(OpGobParams &params);
diff --git a/engines/gob/inter_geisha.cpp b/engines/gob/inter_geisha.cpp
index b3a7be2003..13bffa5ccc 100644
--- a/engines/gob/inter_geisha.cpp
+++ b/engines/gob/inter_geisha.cpp
@@ -53,6 +53,7 @@ void Inter_Geisha::setupOpcodesFunc() {
OPCODEFUNC(0x25, oGeisha_goblinFunc);
OPCODEFUNC(0x3A, oGeisha_loadSound);
+ OPCODEGOB(0, oGeisha_gamePenetration);
OPCODEGOB(2, oGeisha_loadTitleMusic);
OPCODEGOB(3, oGeisha_playMusic);
OPCODEGOB(4, oGeisha_stopMusic);
@@ -107,6 +108,20 @@ int16 Inter_Geisha::loadSound(int16 slot) {
return 0;
}
+void Inter_Geisha::oGeisha_gamePenetration(OpGobParams &params) {
+ uint16 var1 = _vm->_game->_script->readUint16();
+ uint16 var2 = _vm->_game->_script->readUint16();
+ uint16 var3 = _vm->_game->_script->readUint16();
+ uint16 var4 = _vm->_game->_script->readUint16();
+
+ WRITE_VAR_UINT32(var4, 0);
+
+ warning("Geisha Stub: Minigame \"Penetration\": %d, %d, %d, %d", var1, var2, var3, var4);
+
+ // Fudge a win for now
+ WRITE_VAR_UINT32(var4, 1);
+}
+
void Inter_Geisha::oGeisha_loadTitleMusic(OpGobParams &params) {
_vm->_sound->adlibLoadTBR("geisha.tbr");
_vm->_sound->adlibLoadMDY("geisha.mdy");