Skip to content

Commit

Permalink
BLADERUNNER: Named constants for animationIds P01
Browse files Browse the repository at this point in the history
Part one of using named constants for model animations
  • Loading branch information
antoniou79 committed Apr 20, 2019
1 parent 63b8ddb commit a663930
Show file tree
Hide file tree
Showing 49 changed files with 340 additions and 257 deletions.
98 changes: 91 additions & 7 deletions engines/bladerunner/game_constants.h
Expand Up @@ -157,8 +157,8 @@ enum Clues {
kClueAttemptedFileAccess = 51,
kClueCrystalsCase = 52,
kClueKingstonKitchenBox1 = 53,
kClueTyrellSalesPamphlet1 = 54,
kClueTyrellSalesPamphlet2 = 55,
kClueTyrellSalesPamphletEntertainModel = 54,
kClueTyrellSalesPamphletLolita = 55,
kCluePeruvianLadyInterview = 56,
kClueHasanInterview = 57,
kClueBobInterview1 = 58,
Expand Down Expand Up @@ -208,8 +208,8 @@ enum Clues {
kClueStolenCheese = 102,
kClueGordoInterview3 = 103,
kClueGordoConfession = 104,
kClueGordosLighter1 = 105,
kClueGordosLighter2 = 106,
kClueGordosLighterReplicant = 105,
kClueGordosLighterHuman = 106,
kClueDektoraInterview4 = 107,
kClueHollowayInterview = 108,
kClueBakersBadge = 109,
Expand Down Expand Up @@ -1648,8 +1648,8 @@ enum GameItems {
// 86 is never used
// 87 is never used
kItemRadiationGoogles = 88,
kItemGordosLighter1 = 89,
kItemGordosLighter2 = 90,
kItemGordosLighterReplicant = 89,
kItemGordosLighterHuman = 90,
kItemBriefcase = 91,
// 92 is never used
// 93 is never used
Expand All @@ -1665,7 +1665,7 @@ enum GameItems {
kItemDeadDogA = 103,
kItemDeadDogB = 104,
kItemDeadDogC = 105,
kItemScrorpions = 106,
kItemScorpions = 106,
kItemCamera = 107,
kItemKitchenBox = 108,
kItemChair = 109,
Expand All @@ -1684,6 +1684,85 @@ enum GameItems {
kItemChain = 122
};

enum GameModelAnimations {
kModelAnimationBulletBobsTrackingGun = 440,
kModelAnimationMaleTargetEmptyHandsActive = 441,
kModelAnimationMaleTargetEmptyHandsDead = 442, // 441+1
kModelAnimationMaleTargetWithGunActive = 443,
kModelAnimationMaleTargetWithGunDead = 444, // 443+1
kModelAnimationMaleTargetWithShotgunActive = 445,
kModelAnimationMaleTargetWithShotgunDead = 446, // 445+1
kModelAnimationFemaleTargetWithBabyActive = 447,
kModelAnimationFemaleTargetWithBabyDead = 448, // 447+1
kModelAnimationFemaleTargetWithGunActive = 449,
kModelAnimationFemaleTargetWithGunDead = 450, // 449+1

kModelAnimationBadge = 931,
kModelAnimationBomb = 932,
kModelAnimationCandy = 933,
kModelAnimationCandyWrapper = 934,
kModelAnimationDektorasCard = 935,
kModelAnimationCheese = 936,
kModelAnimationChopstickWrapper = 937,
kModelAnimationChromeDebris = 938,
kModelAnimationDragonflyBelt = 939,
kModelAnimationDragonflyEarring = 940,
kModelAnimationDNADataDisc = 941,
kModelAnimationDogCollar = 942,
kModelAnimationRagDoll = 943,
kModelAnimationEnvelope = 944,
kModelAnimationFlaskOfAbsinthe = 945,
kModelAnimationFolderInKIA = 946,
kModelAnimationGoldfish = 947,
kModelAnimationFolder = 948,
// kModelAnimationLetter = 949, // unused?
kModelAnimationGarterSnake = 950,
kModelAnimationLichenDogWrapper = 951,
kModelAnimationLicensePlate = 952,
kModelAnimationGordosLighterReplicant = 953,
kModelAnimationGordosLighterHuman = 954,
kModelAnimationKingstonKitchenBox = 955,
kModelAnimationMaggieBracelet = 956,
kModelAnimationGrigoriansNote = 957,
kModelAnimationOriginalRequisitionForm = 958,
kModelAnimationOriginalShippingForm = 959,
kModelAnimationPowerSource = 960,
kModelAnimationCollectionReceipt = 961,
kModelAnimationRequisitionForm = 962,
kModelAnimationRadiationGoggles = 963,
kModelAnimationReferenceLetter = 964,
kModelAnimationWeaponsOrderForm = 965,
kModelAnimationShellCasings = 966,
kModelAnimationSlug = 967,
// kModelAnimation = 968, // unused - a knife?
kModelAnimationStrangeScale = 969,
kModelAnimationHysteriaToken = 970,
kModelAnimationToyDog = 971,
kModelAnimationTyrellSalesPamphlet = 972,
kModelAnimationTyrellSalesPamphletKIA = 973,
kModelAnimationDetonatorWire = 974,
kModelAnimationVideoDisc = 975,
kModelAnimationCageOfScorpions = 976,
kModelAnimationIzoCamera = 977,
kModelAnimationDeadDogA = 978,
kModelAnimationDeadDogB = 979,
kModelAnimationDeadDogC = 980,
kModelAnimationMarcusDead = 981,
kModelAnimationYukonHotelChair = 982,
kModelAnimationWeaponsCrate = 983,
kModelAnimationPhoto = 984,
kModelAnimationCrystalsCigarette = 985,
kModelAnimationSpinnerKeys = 986,
kModelAnimationBriefcase = 987,
kModelAnimationDNAEvidenceOnePart = 988,
// kModelAnimation = 989, // unused?
kModelAnimationDNAEvidenceTwoParts = 990,
kModelAnimationDNAEvidenceThreeParts = 991,
// kModelAnimation = 992, // unused?
kModelAnimationDNAEvidenceComplete = 993
// kModelAnimation = 994-996
};

enum Elevators {
kElevatorMA = 1,
kElevatorPS = 2
Expand Down Expand Up @@ -2963,6 +3042,11 @@ enum SFXSounds {
kSfxSHUTDOWN = 596
};

enum GameDifficultyLevel {
kGameDifficultyEasy = 0,
kGameDifficultyMedium = 1,
kGameDifficultyHard = 2
};
} // End of namespace BladeRunner

#endif
2 changes: 1 addition & 1 deletion engines/bladerunner/script/ai/dektora.cpp
Expand Up @@ -57,7 +57,7 @@ bool AIScriptDektora::Update() {
&& Player_Query_Current_Scene() != kSceneAR02
) {
if (Game_Flag_Query(kFlagAR02Entered)) {
Item_Remove_From_World(kItemScrorpions);
Item_Remove_From_World(kItemScorpions);
}
Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
}
Expand Down
6 changes: 3 additions & 3 deletions engines/bladerunner/script/ai/generic_walker_a.cpp
Expand Up @@ -94,7 +94,7 @@ void AIScriptGenericWalkerA::ReceivedClue(int clueId, int fromActorId) {
void AIScriptGenericWalkerA::ClickedByPlayer() {
Actor_Face_Actor(kActorMcCoy, kActorGenwalkerA, true);
if (Actor_Query_Goal_Number(kActorGenwalkerA) == 200) {
Actor_Says(kActorMcCoy, 5290, 18);
Actor_Says(kActorMcCoy, 5290, 18); // kActorGenwalkerA here is actually the tracking gun in Bullet Bob's
} else {
switch (Random_Query(1, 10)) {
case 1:
Expand Down Expand Up @@ -256,9 +256,9 @@ bool AIScriptGenericWalkerA::UpdateAnimation(int *animation, int *frame) {
}
break;
case kGenericWalkerAStatesGun:
*animation = 440;
*animation = kModelAnimationBulletBobsTrackingGun;
++_animationFrame;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(440)) {
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationBulletBobsTrackingGun)) {
_animationFrame = 0;
}
break;
Expand Down
6 changes: 3 additions & 3 deletions engines/bladerunner/script/ai/gordo.cpp
Expand Up @@ -280,7 +280,7 @@ void AIScriptGordo::Retired(int byActorId) {
Actor_Voice_Over(1410, kActorVoiceOver);
Actor_Voice_Over(1430, kActorVoiceOver);
Actor_Voice_Over(1440, kActorVoiceOver);
if (Query_Difficulty_Level() > 0) {
if (Query_Difficulty_Level() > kGameDifficultyEasy) {
Global_Variable_Increment(kVariableChinyen, 200);
}
Player_Gains_Control();
Expand Down Expand Up @@ -1130,9 +1130,9 @@ bool AIScriptGordo::UpdateAnimation(int *animation, int *frame) {
if (Game_Flag_Query(kFlagNR02GordoLeaveLighter)) {
Game_Flag_Reset(kFlagNR02GordoLeaveLighter);
if (Game_Flag_Query(kFlagGordoIsReplicant)) {
Item_Add_To_World(kItemGordosLighter1, 953, kSetNR02, 148.94f, 22.19f, 476.1f, 0, 6, 6, false, true, false, false);
Item_Add_To_World(kItemGordosLighterReplicant, kModelAnimationGordosLighterReplicant, kSetNR02, 148.94f, 22.19f, 476.1f, 0, 6, 6, false, true, false, false);
} else {
Item_Add_To_World(kItemGordosLighter2, 954, kSetNR02, 148.94f, 22.19f, 476.1f, 0, 6, 6, false, true, false, false);
Item_Add_To_World(kItemGordosLighterHuman, kModelAnimationGordosLighterHuman, kSetNR02, 148.94f, 22.19f, 476.1f, 0, 6, 6, false, true, false, false);
}
Actor_Set_Goal_Number(kActorGordo, kGoalGordoNR02GoToPodium);
}
Expand Down
2 changes: 1 addition & 1 deletion engines/bladerunner/script/ai/insect_dealer.cpp
Expand Up @@ -113,7 +113,7 @@ bool AIScriptInsectDealer::GoalChanged(int currentGoalNumber, int newGoalNumber)

if (!Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
Item_Remove_From_World(kItemScrorpions);
Item_Remove_From_World(kItemScorpions);
}
}

Expand Down
2 changes: 1 addition & 1 deletion engines/bladerunner/script/ai/izo.cpp
Expand Up @@ -738,7 +738,7 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
_animationFrame = 0;
_animationState = 0;
Game_Flag_Set(kFlagUnused407);
Item_Add_To_World(kItemCamera, 977, kSetHC01_HC02_HC03_HC04, 597.46f, 0.14f, 49.92f, 0, 12, 12, false, true, false, false);
Item_Add_To_World(kItemCamera, kModelAnimationIzoCamera, kSetHC01_HC02_HC03_HC04, 597.46f, 0.14f, 49.92f, 0, 12, 12, false, true, false, false);
Actor_Set_Goal_Number(kActorIzo, kGoalIzoRunToUG02);
}
break;
Expand Down
2 changes: 1 addition & 1 deletion engines/bladerunner/script/ai/lucy.cpp
Expand Up @@ -280,7 +280,7 @@ void AIScriptLucy::Retired(int byActorId) {
Non_Player_Actor_Combat_Mode_On(kActorSteele, kActorCombatStateUncover, true, kActorMcCoy, 15, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 25, 300, false);
}

if (Query_Difficulty_Level() != 0
if (Query_Difficulty_Level() != kGameDifficultyEasy
&& byActorId == kActorMcCoy
&& Game_Flag_Query(kFlagLucyIsReplicant)
) {
Expand Down
2 changes: 1 addition & 1 deletion engines/bladerunner/script/ai/marcus.cpp
Expand Up @@ -91,7 +91,7 @@ bool AIScriptMarcus::GoalChanged(int currentGoalNumber, int newGoalNumber) {
}

bool AIScriptMarcus::UpdateAnimation(int *animation, int *frame) {
*animation = 981;
*animation = kModelAnimationMarcusDead;
*frame = 0;

return true;
Expand Down
4 changes: 2 additions & 2 deletions engines/bladerunner/script/ai/mccoy.cpp
Expand Up @@ -139,7 +139,7 @@ void AIScriptMcCoy::ReceivedClue(int clueId, int fromActorId) {

case kClueKingstonKitchenBox1:
case kClueKingstonKitchenBox2:
if (Query_Difficulty_Level() == 0) {
if (Query_Difficulty_Level() == kGameDifficultyEasy) {
Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationAnimoidRow, true);
}
break;
Expand Down Expand Up @@ -1217,7 +1217,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
_animationLoopLength = 0;
_animationState = 0;
Player_Gains_Control();
Item_Add_To_World(kItemChair, 982, kSetCT08_CT51_UG12, -110.0, 0.0, -192.0, 0, 48, 32, false, true, false, false);
Item_Add_To_World(kItemChair, kModelAnimationYukonHotelChair, kSetCT08_CT51_UG12, -110.0, 0.0, -192.0, 0, 48, 32, false, true, false, false);
}
break;

Expand Down
12 changes: 6 additions & 6 deletions engines/bladerunner/script/init_script.cpp
Expand Up @@ -2441,8 +2441,8 @@ void InitScript::Init_CDB() {
CDB_Set_Crime(kClueVictimInformation, kCrimeEisendullerMurder);
CDB_Set_Crime(kClueAttemptedFileAccess, kCrimeEisendullerMurder);
CDB_Set_Crime(kClueKingstonKitchenBox1, kCrimeEisendullerMurder);
CDB_Set_Crime(kClueTyrellSalesPamphlet1, kCrimeEisendullerMurder);
CDB_Set_Crime(kClueTyrellSalesPamphlet2, kCrimeEisendullerMurder);
CDB_Set_Crime(kClueTyrellSalesPamphletEntertainModel, kCrimeEisendullerMurder);
CDB_Set_Crime(kClueTyrellSalesPamphletLolita, kCrimeEisendullerMurder);
CDB_Set_Crime(kClueDogCollar1, kCrimeEisendullerMurder);
CDB_Set_Crime(kClueRachaelInterview, kCrimeEisendullerMurder);
CDB_Set_Crime(kClueTyrellInterview, kCrimeEisendullerMurder);
Expand Down Expand Up @@ -2541,8 +2541,8 @@ void InitScript::Init_CDB() {
CDB_Set_Clue_Asset_Type(kClueAttemptedFileAccess, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueCrystalsCase, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueKingstonKitchenBox1, kClueTypeObject);
CDB_Set_Clue_Asset_Type(kClueTyrellSalesPamphlet1, kClueTypeObject);
CDB_Set_Clue_Asset_Type(kClueTyrellSalesPamphlet2, kClueTypeObject);
CDB_Set_Clue_Asset_Type(kClueTyrellSalesPamphletEntertainModel, kClueTypeObject);
CDB_Set_Clue_Asset_Type(kClueTyrellSalesPamphletLolita, kClueTypeObject);
CDB_Set_Clue_Asset_Type(kCluePeruvianLadyInterview, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueHasanInterview, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueBobInterview1, kClueTypeAudioRecording);
Expand Down Expand Up @@ -2585,8 +2585,8 @@ void InitScript::Init_CDB() {
CDB_Set_Clue_Asset_Type(kClueStolenCheese, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueGordoInterview3, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueGordoConfession, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueGordosLighter1, kClueTypeObject);
CDB_Set_Clue_Asset_Type(kClueGordosLighter2, kClueTypeObject);
CDB_Set_Clue_Asset_Type(kClueGordosLighterReplicant, kClueTypeObject);
CDB_Set_Clue_Asset_Type(kClueGordosLighterHuman, kClueTypeObject);
CDB_Set_Clue_Asset_Type(kClueDektoraInterview4, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueHollowayInterview, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueBakersBadge, kClueTypeObject);
Expand Down

0 comments on commit a663930

Please sign in to comment.