diff options
Diffstat (limited to 'engines/bladerunner/script/ai_script.cpp')
-rw-r--r-- | engines/bladerunner/script/ai_script.cpp | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/engines/bladerunner/script/ai_script.cpp b/engines/bladerunner/script/ai_script.cpp index 7b28e2db3d..b328824de1 100644 --- a/engines/bladerunner/script/ai_script.cpp +++ b/engines/bladerunner/script/ai_script.cpp @@ -22,9 +22,8 @@ #include "bladerunner/script/ai_script.h" -#include "bladerunner/bladerunner.h" - #include "bladerunner/actor.h" +#include "bladerunner/bladerunner.h" namespace BladeRunner { @@ -47,17 +46,24 @@ AIScripts::AIScripts(BladeRunnerEngine *vm, int actorCount) { _AIScripts[kActorClovis] = new AIScriptClovis(_vm); // 5 _AIScripts[kActorLucy] = new AIScriptLucy(_vm); // 6 _AIScripts[kActorIzo] = new AIScriptIzo(_vm); // 7 + _AIScripts[kActorSadik] = new AIScriptSadik(_vm); // 8 _AIScripts[kActorCrazylegs] = new AIScriptCrazylegs(_vm); // 9 + _AIScripts[kActorLuther] = new AIScriptLuther(_vm); // 10 _AIScripts[kActorGrigorian] = new AIScriptGrigorian(_vm); // 11 _AIScripts[kActorTransient] = new AIScriptTransient(_vm); // 12 _AIScripts[kActorLance] = new AIScriptLance(_vm); // 13 + _AIScripts[kActorBulletBob] = new AIScriptBulletBob(_vm); // 14 _AIScripts[kActorRunciter] = new AIScriptRunciter(_vm); // 15 _AIScripts[kActorInsectDealer] = new AIScriptInsectDealer(_vm); // 16 _AIScripts[kActorTyrellGuard] = new AIScriptTyrellGuard(_vm); // 17 + _AIScripts[kActorEarlyQ] = new AIScriptEarlyQ(_vm); // 18 _AIScripts[kActorZuben] = new AIScriptZuben(_vm); // 19 + _AIScripts[kActorHasan] = new AIScriptHasan(_vm); // 20 _AIScripts[kActorMarcus] = new AIScriptMarcus(_vm); // 21 _AIScripts[kActorMia] = new AIScriptMia(_vm); // 22 _AIScripts[kActorOfficerLeary] = new AIScriptOfficerLeary(_vm); // 23 + _AIScripts[kActorOfficerGrayford] = new AIScriptOfficerGrayford(_vm); // 24 + _AIScripts[kActorHanoi] = new AIScriptHanoi(_vm); // 25 _AIScripts[kActorBaker] = new AIScriptBaker(_vm); // 26 _AIScripts[kActorDeskClerk] = new AIScriptDeskClerk(_vm); // 27 _AIScripts[kActorHowieLee] = new AIScriptHowieLee(_vm); // 28 @@ -96,6 +102,8 @@ AIScripts::AIScripts(BladeRunnerEngine *vm, int actorCount) { _AIScripts[kActorNewscaster] = new AIScriptNewscaster(_vm); // 61 _AIScripts[kActorLeon] = new AIScriptLeon(_vm); // 62 _AIScripts[kActorMaleAnnouncer] = new AIScriptMaleAnnouncer(_vm); // 63 + _AIScripts[kActorFreeSlotA] = new AIScriptFreeSlotA(_vm); // 64 + _AIScripts[kActorFreeSlotB] = new AIScriptFreeSlotB(_vm); // 65 _AIScripts[kActorMaggie] = new AIScriptMaggie(_vm); // 66 _AIScripts[kActorGenwalkerA] = new AIScriptGenericWalkerA(_vm); // 67 _AIScripts[kActorGenwalkerB] = new AIScriptGenericWalkerB(_vm); // 68 @@ -324,4 +332,43 @@ void AIScripts::changeAnimationMode(int actor, int mode) { _inScriptCounter--; } +void AIScripts::fledCombat(int actor) { + if (actor >= _actorCount) { + return; + } + + _inScriptCounter++; + if (_AIScripts[actor]) { + _AIScripts[actor]->FledCombat(); + } + _inScriptCounter--; +} + +void AIScripts::setAnimationState(int actor, int animationState, int animationFrame, int animationStateNext, int animationNext) { + if (actor >= _actorCount) { + return; + } + + _inScriptCounter++; + if (_AIScripts[actor]) { + _AIScripts[actor]->SetAnimationState(animationState, animationFrame, animationStateNext, animationNext); + } + _inScriptCounter--; +} + + +void AIScripts::queryAnimationState(int actor, int *animationState, int *animationFrame, int *animationStateNext, int *animationNext) { + if (actor >= _actorCount) { + return; + } + + _inScriptCounter++; + if (_AIScripts[actor]) { + _AIScripts[actor]->FledCombat(); + _AIScripts[actor]->QueryAnimationState(animationState, animationFrame, animationStateNext, animationNext); + } + _inScriptCounter--; +} + + } // End of namespace BladeRunner |