Playtoons - Add new freeSprite function for Playtoons & Bambou. This fixes the crash that occurred when exiting the game.

svn-id: r43783
This commit is contained in:
Arnaud Boutonné 2009-08-28 21:08:59 +00:00
parent 42848e1276
commit af3e23b291
2 changed files with 13 additions and 1 deletions

View File

@ -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();

View File

@ -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;