diff options
Diffstat (limited to 'engines/gob/inter_playtoons.cpp')
-rw-r--r-- | engines/gob/inter_playtoons.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/engines/gob/inter_playtoons.cpp b/engines/gob/inter_playtoons.cpp index 156ba285fb..a5747d9574 100644 --- a/engines/gob/inter_playtoons.cpp +++ b/engines/gob/inter_playtoons.cpp @@ -87,6 +87,7 @@ void Inter_Playtoons::setupOpcodesFunc() { CLEAROPCODEFUNC(0x3D); OPCODEFUNC(0x0B, oPlaytoons_printText); OPCODEFUNC(0x1B, oPlaytoons_F_1B); + OPCODEFUNC(0x24, oPlaytoons_putPixel); OPCODEFUNC(0x27, oPlaytoons_freeSprite); OPCODEFUNC(0x3F, oPlaytoons_checkData); OPCODEFUNC(0x4D, oPlaytoons_readData); @@ -182,25 +183,26 @@ bool Inter_Playtoons::oPlaytoons_printText(OpFuncParams ¶ms) { } bool Inter_Playtoons::oPlaytoons_F_1B(OpFuncParams ¶ms) { - int16 shortId; - int16 var2; - int16 var3; - int16 var4; + _vm->_game->_hotspots->oPlaytoons_F_1B(); + return false; +} - shortId = _vm->_game->_script->readValExpr(); - var2 = _vm->_game->_script->readValExpr(); +bool Inter_Playtoons::oPlaytoons_putPixel(OpFuncParams ¶ms) { + _vm->_draw->_destSurface = _vm->_game->_script->readInt16(); - _vm->_game->_script->evalExpr(0); + _vm->_draw->_destSpriteX = _vm->_game->_script->readValExpr(); + _vm->_draw->_destSpriteY = _vm->_game->_script->readValExpr(); - var3 = _vm->_game->_script->readValExpr(); - var4 = _vm->_game->_script->readValExpr(); +// _expression->printExpr(99); + _vm->_game->_script->readExpr(99, false); + + //unk_var is always set to 0 in Playtoons + _vm->_draw->_frontColor = _vm->_game->_script->getResultInt() & 0xFFFF; // + unk_var; + + _vm->_draw->_pattern = _vm->_game->_script->getResultInt()>>16; + + _vm->_draw->spriteOperation(DRAW_PUTPIXEL); - if (_vm->_game->_hotspots->searchHotspot(shortId)) { - warning("oPlaytoons_F_1B not fully handled"); - warning("shortId %d, var2 %d var3 %d var4 %d", shortId, var2, var3, var4); - } - else - warning("shortId not found %d", shortId); return false; } |