aboutsummaryrefslogtreecommitdiff
path: root/engines/hdb/ai-player.cpp
diff options
context:
space:
mode:
authorNipun Garg2019-07-03 06:01:05 +0530
committerEugene Sandulenko2019-09-03 17:17:09 +0200
commitbbecaabf326365271c53ad4a3968b156b1aa2f30 (patch)
treee25e46a4a5914f0b55ead0d29461f4aaa2fb4e2d /engines/hdb/ai-player.cpp
parent169c4d86f645c91e9bc9883082871492004906f9 (diff)
downloadscummvm-rg350-bbecaabf326365271c53ad4a3968b156b1aa2f30.tar.gz
scummvm-rg350-bbecaabf326365271c53ad4a3968b156b1aa2f30.tar.bz2
scummvm-rg350-bbecaabf326365271c53ad4a3968b156b1aa2f30.zip
HDB: Add Monkeystone and GooCup functions
Diffstat (limited to 'engines/hdb/ai-player.cpp')
-rw-r--r--engines/hdb/ai-player.cpp39
1 files changed, 29 insertions, 10 deletions
diff --git a/engines/hdb/ai-player.cpp b/engines/hdb/ai-player.cpp
index 6b0f5b6da7..1aa1c3cf71 100644
--- a/engines/hdb/ai-player.cpp
+++ b/engines/hdb/ai-player.cpp
@@ -1561,24 +1561,42 @@ void aiTransceiverUse(AIEntity *e) {
}
#endif
+char monkBuff[32];
+
void aiMonkeystoneInit(AIEntity *e) {
- warning("STUB: AI: aiMonkeystoneInit required");
+ e->aiUse = aiMonkeystoneUse;
+ e->aiAction = aiMonkeystoneAction;
}
void aiMonkeystoneAction(AIEntity *e) {
- warning("STUB: AI: aiMonkeystoneAction required");
+ if (!e->onScreen)
+ return;
+
+ AIEntity *p = g_hdb->_ai->getPlayer();
+ if (abs(p->x - e->x) < 16 && abs(p->y - e->y) < 16 && e->level == p->level) {
+ if (e->luaFuncUse[0])
+ g_hdb->_lua->callFunction(e->luaFuncUse, 0);
+
+ g_hdb->_ai->addToInventory(e);
+ aiMonkeystoneUse(NULL);
+ }
}
void aiMonkeystoneInit2(AIEntity *e) {
- warning("STUB: AI: aiMonkeystoneInit2 required");
+ e->draw = e->standdownGfx[0];
}
void aiMonkeystoneUse(AIEntity *e) {
- warning("STUB: AI: aiMonkeystoneUse required");
-}
+ int val = g_hdb->_ai->getMonkeystoneAmount();
+ sprintf(monkBuff, "You have %d Monkeystone", val);
+ if (val > 1)
+ strcat(monkBuff, "s");
+ strcat(monkBuff, "!");
+ warning("STUB: Play SND_GET_MONKEYSTONE");
+ g_hdb->_window->openMessageBar(monkBuff, kMsgDelay);
-void aiMonkeystoneUse2(AIEntity *e) {
- warning("STUB: AI: aiMonkeystoneUse2 required");
+ // have we unlocked a secret star(tm)???
+ warning("STUB: Set Secret Stars");
}
void aiGemAction(AIEntity *e) {
@@ -1615,15 +1633,16 @@ void aiGemWhiteInit2(AIEntity *e) {
}
void aiGooCupUse(AIEntity *e) {
- warning("STUB: AI: aiGooCupUse required");
+ g_hdb->_window->openMessageBar("Got a... cup of goo.", kMsgDelay);
}
void aiGooCupInit(AIEntity *e) {
- warning("STUB: AI: aiGooCupInit required");
+ e->aiUse = aiGooCupUse;
+ e->aiAction = aiGetItemAction;
}
void aiGooCupInit2(AIEntity *e) {
- warning("STUB: AI: aiGooCupInit2 required");
+ e->draw = e->standdownGfx[0];
}
void aiVortexianAction(AIEntity *e) {