aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/gob/inter.h1
-rw-r--r--engines/gob/inter_playtoons.cpp13
2 files changed, 13 insertions, 1 deletions
diff --git a/engines/gob/inter.h b/engines/gob/inter.h
index df65e309cd..c8d1ce2998 100644
--- a/engines/gob/inter.h
+++ b/engines/gob/inter.h
@@ -558,6 +558,7 @@ protected:
virtual void setupOpcodesGob();
bool oPlaytoons_F_1B(OpFuncParams &params);
+ bool oPlaytoons_freeSprite(OpFuncParams &params);
bool oPlaytoons_checkData(OpFuncParams &params);
bool oPlaytoons_readData(OpFuncParams &params);
void oPlaytoons_CD_20_23();
diff --git a/engines/gob/inter_playtoons.cpp b/engines/gob/inter_playtoons.cpp
index a62f05a8f2..2c14e64a57 100644
--- a/engines/gob/inter_playtoons.cpp
+++ b/engines/gob/inter_playtoons.cpp
@@ -82,7 +82,8 @@ void Inter_Playtoons::setupOpcodesFunc() {
CLEAROPCODEFUNC(0x3D);
- OPCODEFUNC(0x1B, oPlaytoons_F_1B);
+ OPCODEFUNC(0x1B, oPlaytoons_F_1B);
+ OPCODEFUNC(0x27, oPlaytoons_freeSprite);
OPCODEFUNC(0x3F, oPlaytoons_checkData);
OPCODEFUNC(0x4D, oPlaytoons_readData);
}
@@ -113,6 +114,16 @@ bool Inter_Playtoons::oPlaytoons_F_1B(OpFuncParams &params) {
return false;
}
+bool Inter_Playtoons::oPlaytoons_freeSprite(OpFuncParams &params) {
+ int16 index;
+ if (_vm->_game->_script->peekByte(1) == 0)
+ index = _vm->_game->_script->readInt16();
+ else
+ index = _vm->_game->_script->readValExpr();
+ _vm->_draw->freeSprite(index);
+ return false;
+}
+
bool Inter_Playtoons::oPlaytoons_checkData(OpFuncParams &params) {
int16 handle;
uint16 varOff;