aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/kyra/lol.h1
-rw-r--r--engines/kyra/script_lol.cpp11
2 files changed, 11 insertions, 1 deletions
diff --git a/engines/kyra/lol.h b/engines/kyra/lol.h
index 586b7b072d..c65e7d7bf6 100644
--- a/engines/kyra/lol.h
+++ b/engines/kyra/lol.h
@@ -754,6 +754,7 @@ private:
int olol_gasExplosion(EMCState *script);
int olol_calcNewBlockPosition(EMCState *script);
int olol_updateDrawPage2(EMCState *script);
+ int olol_setMouseCursor(EMCState *script);
int olol_characterSays(EMCState *script);
int olol_queueSpeech(EMCState *script);
int olol_getItemPrice(EMCState *script);
diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp
index f854bbafce..43173e0f3a 100644
--- a/engines/kyra/script_lol.cpp
+++ b/engines/kyra/script_lol.cpp
@@ -2080,6 +2080,15 @@ int LoLEngine::olol_updateDrawPage2(EMCState *script) {
return 1;
}
+int LoLEngine::olol_setMouseCursor(EMCState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_setMouseCursor(%p) (%d)", (const void *)script, stackPos(0));
+ if (stackPos(0) == 1)
+ setMouseCursorToIcon(133);
+ else
+ setMouseCursorToItemInHand();
+ return 1;
+}
+
int LoLEngine::olol_characterSays(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_characterSays(%p) (%d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2));
if (stackPos(0) == -1) {
@@ -2641,7 +2650,7 @@ void LoLEngine::setupOpcodeTable() {
// 0xB8
OpcodeUnImpl();
Opcode(olol_updateDrawPage2);
- OpcodeUnImpl();
+ Opcode(olol_setMouseCursor);
Opcode(olol_characterSays);
// 0xBC