diff options
-rw-r--r-- | scumm/intern.h | 11 | ||||
-rw-r--r-- | scumm/script_v90he.cpp | 30 |
2 files changed, 28 insertions, 13 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 7fac1d36e8..96344ed64e 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -846,10 +846,19 @@ protected: const char *desc; }; + struct FloodState { + Common::Rect box; + int field_10; + int field_14; + int field_18; + int field_1C; + }; + int _heObject, _heObjectNum; int _hePaletteNum; const OpcodeEntryV90he *_opcodesV90he; + FloodState _floodState; WizParameters _wizParams; int _curMaxSpriteId; @@ -995,7 +1004,7 @@ protected: void o90_getSpriteGroupInfo(); void o90_setSpriteGroupInfo(); void o90_getWizData(); - void o90_unknown2F(); + void o90_floodState(); void o90_mod(); void o90_shl(); void o90_shr(); diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 3b6cb632c0..9ad0d0a075 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -99,7 +99,7 @@ void ScummEngine_v90he::setupOpcodes() { OPCODE(o90_jumpToScriptUnk), OPCODE(o6_invalid), OPCODE(o6_invalid), - OPCODE(o90_unknown2F), + OPCODE(o90_floodState), /* 30 */ OPCODE(o90_mod), OPCODE(o90_shl), @@ -1601,35 +1601,41 @@ void ScummEngine_v90he::o90_getWizData() { } } -void ScummEngine_v90he::o90_unknown2F() { +void ScummEngine_v90he::o90_floodState() { byte subOp = fetchScriptByte(); subOp -= 54; switch (subOp) { case 0: - pop(); + _floodState.field_1C = pop(); break; case 3: + //memset(_floodState, 0); + _floodState.box.left = 0; + _floodState.box.top = 0; + _floodState.box.right = 640; + _floodState.box.bottom = 480; break; case 11: - pop(); - pop(); + _floodState.field_14 = pop(); + _floodState.field_10 = pop(); break; case 12: - pop(); + _floodState.field_18 = pop(); break; case 13: - pop(); - pop(); - pop(); - pop(); + _floodState.box.bottom = pop(); + _floodState.box.right = pop(); + _floodState.box.top = pop(); + _floodState.box.left = pop(); break; case 201: + //floodState(_floodState); break; default: - error("o90_unknown2F: Unknown case %d", subOp); + error("o90_floodState: Unknown case %d", subOp); } - debug(1,"o90_unknown2F stub (%d)", subOp); + debug(1,"o90_floodState stub (%d)", subOp); } void ScummEngine_v90he::o90_shl() { |