diff options
-rw-r--r-- | engines/hdb/ai-funcs.cpp | 47 | ||||
-rw-r--r-- | engines/hdb/ai.h | 11 |
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); |