aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNipun Garg2019-06-21 19:47:41 +0530
committerEugene Sandulenko2019-09-03 17:16:54 +0200
commit755bd46728a2829fe4a5a010f15909ff894607c5 (patch)
tree33f7ccb28ee49435415706302402a0054cb2ff83
parentbbe7c8206903ddaa84ca3ee3308c45d2d226f81c (diff)
downloadscummvm-rg350-755bd46728a2829fe4a5a010f15909ff894607c5.tar.gz
scummvm-rg350-755bd46728a2829fe4a5a010f15909ff894607c5.tar.bz2
scummvm-rg350-755bd46728a2829fe4a5a010f15909ff894607c5.zip
HDB: Add killPlayer()
-rw-r--r--engines/hdb/ai-funcs.cpp47
-rw-r--r--engines/hdb/ai.h11
2 files changed, 58 insertions, 0 deletions
diff --git a/engines/hdb/ai-funcs.cpp b/engines/hdb/ai-funcs.cpp
index 1c25198e37..50f030f296 100644
--- a/engines/hdb/ai-funcs.cpp
+++ b/engines/hdb/ai-funcs.cpp
@@ -606,6 +606,53 @@ void AI::initAllEnts() {
warning("STUB: initAllEnts: LaserScan required");
}
+void AI::killPlayer(Death method) {
+
+ int x = _player->x, y = _player->y;
+
+ stopEntity(_player);
+ _player->x = x;
+ _player->y = y;
+ _playerInvisible = false;
+ _playerDead = true;
+
+ warning("STUB: killPlayer: Close Dialogs");
+
+ switch (method) {
+ case DEATH_NORMAL:
+ _player->state = STATE_DYING;
+ warning("STUB: killPlayer: Play SND_GUY_DYING");
+ break;
+ case DEATH_FRIED:
+ _player->state = STATE_HORRIBLE1;
+ warning("STUB: killPlayer: Play SND_GUY_FRIED");
+ break;
+ case DEATH_SHOCKED:
+ _player->state = STATE_HORRIBLE2;
+ warning("STUB: killPlayer: Play SND_GUY_DYING");
+ warning("STUB: killPlayer: Play SND_SHOCKBOT_SHOCK");
+ break;
+ case DEATH_GRABBED:
+ _player->state = STATE_HORRIBLE3;
+ warning("STUB: killPlayer: Play SND_GUY_GRABBED");
+ break;
+ case DEATH_DROWNED:
+ _player->state = STATE_HORRIBLE4;
+ warning("STUB: killPlayer: Play SND_GUY_DROWN");
+ break;
+ case DEATH_PANICZONE:
+ _player->state = STATE_DYING;
+ warning("STUB: killPlayer: Play SND_PANIC_DEATH");
+ break;
+ case DEATH_PLUMMET:
+ _player->state = STATE_PLUMMET;
+ warning("STUB: killPlayer: Play SND_GUY_PLUMMET");
+ break;
+ }
+
+ warning("STUB: killPlayer: Stop Music");
+}
+
void AI::animEntFrames(AIEntity *e) {
int max = 1;
// Set current graphic to draw
diff --git a/engines/hdb/ai.h b/engines/hdb/ai.h
index 3c60936154..a9b1b8601e 100644
--- a/engines/hdb/ai.h
+++ b/engines/hdb/ai.h
@@ -203,6 +203,16 @@ enum AIDir {
DIR_RIGHT
};
+enum Death {
+ DEATH_NORMAL,
+ DEATH_FRIED,
+ DEATH_DROWNED,
+ DEATH_GRABBED,
+ DEATH_SHOCKED,
+ DEATH_PANICZONE,
+ DEATH_PLUMMET
+};
+
enum AIState {
STATE_NONE,
STATE_STANDDOWN,
@@ -562,6 +572,7 @@ public:
void removeEntity(AIEntity *e);
void setEntityGoal(AIEntity *e, int x, int y);
void initAllEnts();
+ void killPlayer(Death method);
void animEntFrames(AIEntity *e);
void animLuaEntity(const char *initName, AIState st);