[Scummvm-git-logs] scummvm master -> e536f50b34043475d1d1f0df6ac71356678caa24

antoniou79 a.antoniou79 at gmail.com
Sun Dec 13 17:07:57 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e536f50b34 BLADERUNNER: Describe more animations


Commit: e536f50b34043475d1d1f0df6ac71356678caa24
    https://github.com/scummvm/scummvm/commit/e536f50b34043475d1d1f0df6ac71356678caa24
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2020-12-13T19:06:27+02:00

Commit Message:
BLADERUNNER: Describe more animations

Izo, Sadik, Twins, EarlyQ, Leon, Sebastian, Leary, Grayford, Hanoi, Clerk, HowieLee, Isabella, FishDealer, InsectDealer

Also restored a talk animation for Hanoi, which looked to be omitted due to an original bug

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/clovis.cpp
    engines/bladerunner/script/ai/desk_clerk.cpp
    engines/bladerunner/script/ai/early_q.cpp
    engines/bladerunner/script/ai/fish_dealer.cpp
    engines/bladerunner/script/ai/gaff.cpp
    engines/bladerunner/script/ai/grigorian.cpp
    engines/bladerunner/script/ai/hanoi.cpp
    engines/bladerunner/script/ai/hasan.cpp
    engines/bladerunner/script/ai/howie_lee.cpp
    engines/bladerunner/script/ai/insect_dealer.cpp
    engines/bladerunner/script/ai/isabella.cpp
    engines/bladerunner/script/ai/izo.cpp
    engines/bladerunner/script/ai/leon.cpp
    engines/bladerunner/script/ai/luther.cpp
    engines/bladerunner/script/ai/maggie.cpp
    engines/bladerunner/script/ai/officer_grayford.cpp
    engines/bladerunner/script/ai/officer_leary.cpp
    engines/bladerunner/script/ai/sadik.cpp
    engines/bladerunner/script/ai/sebastian.cpp
    engines/bladerunner/script/ai/steele.cpp
    engines/bladerunner/script/ai_script.h
    engines/bladerunner/script/scene/bb11.cpp
    engines/bladerunner/script/scene/ct02.cpp
    engines/bladerunner/script/scene/ct06.cpp
    engines/bladerunner/script/scene/hc01.cpp
    engines/bladerunner/script/scene/rc01.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 02fdd2096c..d6612418a9 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1939,7 +1939,7 @@ enum GameModelAnimations {
 	kModelAnimationClovisStandingToKneeling                 = 239,
 	kModelAnimationClovisKneelingToStanding                 = 240,
 	kModelAnimationClovisKneelingTalking                    = 241,
-	kModelAnimationClovisJumpingDodging                     = 242, // animation mode 20 (TODO: Where is this used in game? In the Moonbus massacre scenario?)
+	kModelAnimationClovisJumpingDodging                     = 242, // animation mode 20 (TODO Where is this used in game? In the Moonbus massacre scenario?)
 	kModelAnimationClovisLayingWithBookIdle                 = 243,
 	kModelAnimationClovisLayingWithBookStopsReadingTalk     = 244,
 	kModelAnimationClovisLayingWithBookStillReadingTalk     = 245,
@@ -1976,13 +1976,120 @@ enum GameModelAnimations {
 	kModelAnimationLucyCombatDropsDead                      = 275, // Untriggered. Somewhat faster than kModelAnimationLucyShotDead (259)
 	kModelAnimationLucyRemovesNeckletDiesFromExplosion      = 276, // Untriggered
 	// 277 - 311: Izo animations
-		// TODO
+	kModelAnimationIzoCombatIdle              = 277,
+	kModelAnimationIzoCombatTurnRight         = 278, // untriggered
+	kModelAnimationIzoCombatTurnLeft          = 279, // untriggered
+	kModelAnimationIzoCombatGotHitRight       = 280,
+	kModelAnimationIzoCombatGotHitLeft        = 281,
+	kModelAnimationIzoCombatWalking           = 282,
+	kModelAnimationIzoCombatRunning           = 283,
+	kModelAnimationIzoCombatShotDead          = 284,
+	kModelAnimationIzoCombatClimbStairsUp     = 285, // untriggered
+	kModelAnimationIzoCombatClimbStairsDown   = 286, // untriggered
+	kModelAnimationIzoCombatUnseatheSword     = 287,
+	kModelAnimationIzoCombatSeatheSword       = 288,
+	kModelAnimationIzoCombatSwordAttack       = 289,
+	kModelAnimationIzoWalking                 = 290,
+	kModelAnimationIzoRunning                 = 291,
+	kModelAnimationIzoClimbStairsUp           = 292, // untriggered
+	kModelAnimationIzoClimbStairsDown         = 293, // untriggered
+	kModelAnimationIzoGotHitRight             = 294, // UNUSED
+	kModelAnimationIzoGotHitLeft              = 295, // UNUSED
+	kModelAnimationIzoShotDead                = 296,
+	kModelAnimationIzoIdle                    = 297,
+	kModelAnimationIzoAwkwardPlayWithHands    = 298,
+	kModelAnimationIzoCalmTalk                = 299,
+	kModelAnimationIzoMoreCalmTalk            = 300,
+	kModelAnimationIzoExplainingTalk          = 301,
+	kModelAnimationIzoHeadNodsAgreeingTalk    = 302,
+	kModelAnimationIzoOffensiveTalk           = 303,
+	kModelAnimationIzoHeadNodsDisagreeingTalk = 304,
+	kModelAnimationIzoUnderstandingTalk       = 305,
+	kModelAnimationIzoClimbLadderDown         = 306, // untriggered
+	kModelAnimationIzoClimbLadderUp           = 307, // untriggered
+	kModelAnimationIzoHoldingCameraIdle       = 308,
+	kModelAnimationIzoPicksCameraFromShop     = 309,
+	kModelAnimationIzoHoldingCameraTalk       = 310,
+	kModelAnimationIzoHoldingCameraUsesFlash  = 311,
 	// 312 - 345: Sadik animations
-		// TODO
-	// 316 - 359: Twins/Luther animations
-		// TODO
+	kModelAnimationSadikCombatIdle                       = 312,
+	kModelAnimationSadikCombatTurnRight                  = 313, // untriggered
+	kModelAnimationSadikCombatTurnLeft                   = 314, // untriggered
+	kModelAnimationSadikCombatGotHitFront                = 315,
+	kModelAnimationSadikCombatGotHitMore                 = 316,
+	kModelAnimationSadikCombatWalking                    = 317,
+	kModelAnimationSadikCombatRunning                    = 318,
+	kModelAnimationSadikCombatShotDead                   = 319, // UNUSED
+	kModelAnimationSadikCombatUnholsterGun               = 320,
+	kModelAnimationSadikCombatHolsterGun                 = 321, // untriggered
+	kModelAnimationSadikCombatFireGunAndReturnToPoseIdle = 322, // A bit bugged. Sadik has all dark/black clothes suddenly here.
+	kModelAnimationSadikWalking                          = 323,
+	kModelAnimationSadikRunning                          = 324,
+	kModelAnimationSadikGotHitFront                      = 325,
+	kModelAnimationSadikGotHitMore                       = 326,
+	kModelAnimationSadikShotDead                         = 327,
+	kModelAnimationSadikIdle                             = 328,
+	kModelAnimationSadikShiftsShoulders                  = 329,
+	kModelAnimationSadikGesturePointOrGive               = 330,
+	kModelAnimationSadikCalmTalk                         = 331,
+	kModelAnimationSadikMoreCalmTalk                     = 332,
+	kModelAnimationSadikSuggestTalk                      = 333,
+	kModelAnimationSadikUrgeTalk                         = 334,
+	kModelAnimationSadikAccuseTalk                       = 335,
+	kModelAnimationSadikProtestTalk                      = 336,
+	kModelAnimationSadikMockTalk                         = 337,
+	kModelAnimationSadikThisAndThatTalk                  = 338,
+	kModelAnimationSadikClimbLadderDown                  = 339, // untriggered
+	kModelAnimationSadikClimbLadderUp                    = 340, // untriggered
+	kModelAnimationSadikJumpAcross                       = 341, // untriggered
+	kModelAnimationSadikHangingDropsDown                 = 342, // untriggered
+	kModelAnimationSadikKicksSomeoneWhoIsDown            = 343,
+	kModelAnimationSadikHoldsSomeoneAndPunches           = 344,
+	kModelAnimationSadikPicksUpAndThrowsMcCoy            = 345, // A bit bugged. Last frames 27-30 are empty and Sadik's model looks rough/wrong-ish.
+	// 346 - 359: Twins/Luther animations
+	kModelAnimationTwinsSitIdle                          = 346,
+	kModelAnimationTwinsSitTyping                        = 347, // UNUSED
+	kModelAnimationTwinsSitLancePutsSomethingToTheLeft   = 348,
+	kModelAnimationTwinsSitLanceShortCalmTalk            = 349, // Mostly looks like Lance is talking. Probably could be used for both. 
+	kModelAnimationTwinsSitLanceLongerCalmTalk           = 350, // Mostly looks like Lance is talking. Probably could be used for both.
+	kModelAnimationTwinsSitLutherCalmTalk                = 351, // Mostly looks like Luther is talking. Probably could be used for both.
+	kModelAnimationTwinsSitLutherMoreCalmTalk            = 352, // Mostly looks like Luther is talking. Probably could be used for both.
+	kModelAnimationTwinsSitLanceMoreCalmTalk             = 353, // Mostly looks like Lance is talking. Probably could be used for both.
+	kModelAnimationTwinsSitLutherProtestTalk             = 354, // Mostly looks like Luther is talking. Probably could be used for both.
+	kModelAnimationTwinsSitLutherGoAheadTalk             = 355, // Mostly looks like Luther is talking. Probably could be used for both.
+	kModelAnimationTwinsSitLutherHitsOrFeedsLance        = 356, // TODO Check when this happens (animationMode: 6)
+	kModelAnimationTwinsSitDropForwards                  = 357,
+	kModelAnimationTwinsSitAlmostDeadLutherPushesButton  = 358,
+	kModelAnimationTwinsSitDieCompletely                 = 359,
 	// 360 - 387: EarlyQ animations
-		// TODO
+	kModelAnimationEarlyQCombatIdle                  = 360,
+	kModelAnimationEarlyQCombatWalking               = 361,
+	kModelAnimationEarlyQCombatUnholsterGun          = 362,
+	kModelAnimationEarlyQCombatHolsterGun            = 363,
+	kModelAnimationEarlyQCombatFiresGun              = 364,
+	kModelAnimationEarlyQWalking                     = 365,
+	kModelAnimationEarlyQGotHitRight                 = 366,
+	kModelAnimationEarlyQGotHitLeft                  = 367,
+	kModelAnimationEarlyQDropsDead                   = 368,
+	kModelAnimationEarlyQIdle                        = 369,
+	kModelAnimationEarlyQHandOnFace                  = 370, // maybe cigarrette?
+	kModelAnimationEarlyQGivesSomething              = 371, // maybe the photo? // TODO check when this happens (animationMode 23)
+	kModelAnimationEarlyQCalmTalk                    = 372,
+	kModelAnimationEarlyQCalmExplainTalk             = 373,
+	kModelAnimationEarlyQVulgarTalk                  = 374,
+	kModelAnimationEarlyQDismissTalk                 = 375,
+	kModelAnimationEarlyQMoreDismissTalk             = 376,
+	kModelAnimationEarlyQIntenseExplainTalk          = 377,
+	kModelAnimationEarlyQSubtleExplainTalk           = 378,
+	kModelAnimationEarlyQExcitedTalk                 = 379,
+	kModelAnimationEarlyQAnnounceTalk                = 380,
+	kModelAnimationEarlyQSPicksUpBottleAndPoursDrink = 381,
+	kModelAnimationEarlyQSHoldsDrinkIdle             = 382,
+	kModelAnimationEarlyQSitsAndCrossesLegs          = 383,
+	kModelAnimationEarlyQSitIdle                     = 384,
+	kModelAnimationEarlyQSitTalk                     = 385,
+	kModelAnimationEarlyQSitScorpionAgonyDeath       = 386,
+	kModelAnimationEarlyQSitToStandingUp             = 387,
 	// 388 - 421: Zuben animations
 	kModelAnimationZubenCombatIdle               = 388,
 	kModelAnimationZubenCombatHitFront           = 389,
@@ -2121,17 +2228,128 @@ enum GameModelAnimations {
 	// 566 - 570: Mia animations
 		// TODO
 	// 571 - 604: Officer Leary animations
-		// TODO
+	kModelAnimationOfficerLearyCombatIdle             = 571,
+	kModelAnimationOfficerLearyCombatGotHitRight      = 572,
+	kModelAnimationOfficerLearyCombatGotHitLeft       = 573,
+	kModelAnimationOfficerLearyCombatWalking          = 574,
+	kModelAnimationOfficerLearyCombatRunning          = 575,
+	kModelAnimationOfficerLearyCombatShotDead         = 576,
+	kModelAnimationOfficerLearyCombatClimbStairsUp    = 577, // untriggered?
+	kModelAnimationOfficerLearyCombatClimbStairsDown  = 578, // untriggered?
+	kModelAnimationOfficerLearyCombatUnholsterGun     = 579,
+	kModelAnimationOfficerLearyCombatHolsterGun       = 580,
+	kModelAnimationOfficerLearyCombatFireGun          = 581,
+	kModelAnimationOfficerLearyWalking                = 582,
+	kModelAnimationOfficerLearyRunning                = 583,
+	kModelAnimationOfficerLearyClimbStairsUp          = 584, // untriggered?
+	kModelAnimationOfficerLearyClimbStairsDown        = 585, // untriggered?
+	kModelAnimationOfficerLearyGotHitFront            = 586,
+	kModelAnimationOfficerLearyGotHitBack             = 587,
+	kModelAnimationOfficerLearyShotDead               = 588,
+	kModelAnimationOfficerLearyOscillateIdle          = 589,
+	kModelAnimationOfficerLearyLookAroundIdle         = 590,
+	kModelAnimationOfficerLearyRockBackForthIdle      = 591,
+	kModelAnimationOfficerLearyCalmExplainTalk        = 592,
+	kModelAnimationOfficerLearyIndicateTalk           = 593,
+	kModelAnimationOfficerLearyLongerExplainTalk      = 594,
+	kModelAnimationOfficerLearyWarnOrThreatenTalk     = 595,
+	kModelAnimationOfficerLearyUpsetOrCommandTalk     = 596,
+	kModelAnimationOfficerLearyMoreUpsetTalk          = 597,
+	kModelAnimationOfficerLearyUrgeOrQuestionTalk     = 598,
+	kModelAnimationOfficerLearyHandsOnWaistTalk       = 599,
+	kModelAnimationOfficerLearyScratchHeadApologyTalk = 600,
+	kModelAnimationOfficerLearyTakingNotes            = 601,
+	kModelAnimationOfficerLearyIntenseTakingNotes     = 602, // UNUSED
+	kModelAnimationOfficerLearyPutNotepadAway         = 603,
+	kModelAnimationOfficerLearyTakeOutNotepad         = 604,
 	// 605 - 641: Officer Grayford animations
-		// TODO
+	kModelAnimationOfficerGrayfordCombatIdle              = 605,
+	kModelAnimationOfficerGrayfordCombatSlowStrafe        = 606, // UNUSED
+	kModelAnimationOfficerGrayfordCombatFastStrafe        = 607, // UNUSED
+	kModelAnimationOfficerGrayfordCombatGotHitRight       = 608,
+	kModelAnimationOfficerGrayfordCombatGotHitLeft        = 609,
+	kModelAnimationOfficerGrayfordCombatWalking           = 610,
+	kModelAnimationOfficerGrayfordCombatRunning           = 611,
+	kModelAnimationOfficerGrayfordCombatShotDead          = 612,
+	kModelAnimationOfficerGrayfordCombatClimbStairsUp     = 613, // UNUSED
+	kModelAnimationOfficerGrayfordCombatClimbStairsDown   = 614, // UNUSED
+	kModelAnimationOfficerGrayfordCombatUnholsterGun      = 615,
+	kModelAnimationOfficerGrayfordCombatHolsterGun        = 616,
+	kModelAnimationOfficerGrayfordCombatFireGun           = 617,
+	kModelAnimationOfficerGrayfordWalking                 = 618,
+	kModelAnimationOfficerGrayfordRunning                 = 619,
+	kModelAnimationOfficerGrayfordClimbStairsUp           = 620, // UNUSED
+	kModelAnimationOfficerGrayfordClimbStairsDown         = 621, // UNUSED
+	kModelAnimationOfficerGrayfordGotHitFront             = 622,
+	kModelAnimationOfficerGrayfordGotHitBack              = 623,
+	kModelAnimationOfficerGrayfordShotDead                = 624,
+	kModelAnimationOfficerGrayfordOscillateIdle           = 625,
+	kModelAnimationOfficerGrayfordLookAroundDownwardsIdle = 626,
+	kModelAnimationOfficerGrayfordLookAroundSidewaysIdle  = 627,
+	kModelAnimationOfficerGrayfordGestureGive             = 628, // UNUSED
+	kModelAnimationOfficerGrayfordCalmExplainTalk         = 629,
+	kModelAnimationOfficerGrayfordCalmRightHandMoveTalk   = 630,
+	kModelAnimationOfficerGrayfordScratchHeadTalk         = 631,
+	kModelAnimationOfficerGrayfordQuickHandMoveTalk       = 632,
+	kModelAnimationOfficerGrayfordSevereTalk              = 633,
+	kModelAnimationOfficerGrayfordMockTalk                = 634,
+	kModelAnimationOfficerGrayfordPointingTalk            = 635,
+	kModelAnimationOfficerGrayfordQuestionTalk            = 636,
+	kModelAnimationOfficerGrayfordDismissTalk             = 637,
+	kModelAnimationOfficerGrayfordPlaceRadioToEar         = 638,
+	kModelAnimationOfficerGrayfordTalkToAndLowerRadio     = 639,
+	kModelAnimationOfficerGrayfordTakeOutRadioFromPocket  = 640,
+	kModelAnimationOfficerGrayfordPutAwayRadioInPocket    = 641,
 	// 642 - 660: Hanoi animations
-		// TODO
+	kModelAnimationHanoiCombatIdle             = 642,
+	kModelAnimationHanoiCombatKicksDoorIn      = 643, // TODO check when this happens (animationMode 71)
+	kModelAnimationHanoiCombatFiresGun         = 644,
+	kModelAnimationHanoiWalking                = 645,
+	kModelAnimationHanoiGotHitOrViolentHeadNod = 646,
+	kModelAnimationHanoiShotDead               = 647,
+	kModelAnimationHanoiLooksAroundIdle        = 648,
+	kModelAnimationHanoiScratchesBackIdle      = 649,
+	kModelAnimationHanoiCalmTalk               = 650,
+	kModelAnimationHanoiExplainTalk            = 651,
+	kModelAnimationHanoiDownwardsNodTalk       = 652,
+	kModelAnimationHanoiDenyTalk               = 653,
+	kModelAnimationHanoiSlightBowingTalk       = 654,
+	kModelAnimationHanoiLaughTalk              = 655, // untriggered. Restored.
+	kModelAnimationHanoiMockTalk               = 656,
+	kModelAnimationHanoiGrabsMcCoy             = 657, // TODO check when this happens (animationMode 23)
+	kModelAnimationHanoiHoldsMcCoyUp           = 658,
+	kModelAnimationHanoiHoldsMcCoyUpAndTalks   = 659,
+	kModelAnimationHanoiPunchUpAttack          = 660, // untriggered
 	// 661 - 670: Desk Clerk (Yukon) animations
-		// TODO
+	kModelAnimationDeskClerkReadPaperIdle                 = 661,
+	kModelAnimationDeskClerkReadPaperChangePageIdle       = 662,
+	kModelAnimationDeskClerkReadPaperCalmTalk             = 663,
+	kModelAnimationDeskClerkReadPaperMoreCalmTalk         = 664,
+	kModelAnimationDeskClerkReadPaperMoveLeftTalk         = 665,
+	kModelAnimationDeskClerkReadPaperSlightClosePaperTalk = 666,
+	kModelAnimationDeskClerkReadPaperMoreClosePaperTalk   = 667,
+	kModelAnimationDeskClerkIsHeldUpByLeonIdle            = 668,
+	kModelAnimationDeskClerkFallingAfterLeonLetsGo        = 669,
+	kModelAnimationDeskClerkHeadSmashedOnCounter          = 670,
 	// 671 - 681: Howie Lee animations
-		// TODO
+	kModelAnimationHowieLeeGathersOfTidiesUp              = 671,
+	kModelAnimationHowieLeeWalking                        = 672,
+	kModelAnimationHowieLeePutsIngredientsCooking         = 673,
+	kModelAnimationHowieLeeLongGestureGive                = 674,
+	kModelAnimationHowieLeeQuickGestureGive               = 675, // UNUSED
+	kModelAnimationHowieLeeCalmTalk                       = 676,
+	kModelAnimationHowieLeeExplainTalk                    = 677,
+	kModelAnimationHowieLeeUpsetTalk                      = 678,
+	kModelAnimationHowieLeeAngryTalk                      = 679,
+	kModelAnimationHowieLeeNoTimeTalk                     = 680,
+	kModelAnimationHowieLeeElaborateMovementTalk          = 681, // Sushi throwing?
 	// 682 - 687: Fish Dealer animations
-		// TODO
+	kModelAnimationFishDealerWalking       = 682,
+	kModelAnimationFishDealerIdle          = 683,
+	kModelAnimationFishDealerGestureGive   = 684, // TODO check when this happens (animationMode 23)
+	kModelAnimationFishDealerCalmTalk      = 685,
+	kModelAnimationFishDealerExplainTalk   = 686,
+	kModelAnimationFishDealerNoTroubleTalk = 687,
 	// 688 - 697: Dino Klein animations
 	kModelAnimationKleinWalking                    = 688,
 	kModelAnimationKleinStandingIdle               = 689,
@@ -2173,7 +2391,19 @@ enum GameModelAnimations {
 	kModelAnimationBearToyGotHit          = 807, // UNUSED
 	kModelAnimationBearToyShotDead        = 808, // untriggered
 	// 809 - 821: Sebastian animations
-		// TODO
+	kModelAnimationSebastianWalking                    = 809, // TODO check if Sebastian ever walks (probably not)
+	kModelAnimationSebastianStepsBack                  = 810, // TODO check when this happens (animationMode 20)
+	kModelAnimationSebastianIdle                       = 811,
+	kModelAnimationSebastianAwkwardPlayWithHands       = 812, // UNUSED
+	kModelAnimationSebastianCalmHeadNodLeftTalk        = 813,
+	kModelAnimationSebastianCalmHeadNodRightTalk       = 814,
+	kModelAnimationSebastianSuggestTalk                = 815,
+	kModelAnimationSebastianWonderingTalk              = 816,
+	kModelAnimationSebastianPointingToSelfTalk         = 817,
+	kModelAnimationSebastianScratchEarTalk             = 818,
+	kModelAnimationSebastianAnnoyedTalk                = 819,
+	kModelAnimationSebastianWaitTalk                   = 820, // last frame 13 is bugged (empty)
+	kModelAnimationSebastianTriesToRunHitsHeadAndFalls = 821, // untriggered -- related to animationMode 48 "kAnimationModeDie"
 	// 822 - 832: Rachael animations
 	kModelAnimationRachaelWalking                  = 822,
 	kModelAnimationRachaelIdle                     = 823,
@@ -2193,9 +2423,26 @@ enum GameModelAnimations {
 	kModelGeneralDollShotDead   = 836, // untriggered
 	kModelGeneralDollGotHit     = 837, // untriggered
 	// 838 - 845: Mama Isabella animations
-		// TODO
+	kModelIsabellaIdle              = 838,
+	kModelIsabellaPutsSpicesInSoup  = 839,
+	kModelIsabellaGestureGiveOrTake = 840, // untriggered
+	kModelIsabellaCalmTalk          = 841,
+	kModelIsabellaSuggestTalk       = 842,
+	kModelIsabellaProtestTalk       = 843,
+	kModelIsabellaMoreCalmTalk      = 844,
+	kModelIsabellaLaughTalk         = 845,
 	// 846 - 856: Leon animations
-		// TODO
+	kModelLeonWalking              = 846,
+	kModelLeonIdle                 = 847,
+	kModelLeonGrabHoldHigh         = 848,
+	kModelLeonGrabLetsGo           = 849,
+	kModelLeonCalmTalk             = 850,
+	kModelLeonComplainTalk         = 851,
+	kModelLeonAwkwardTalk          = 852,
+	kModelLeonDenyTalk             = 853,
+	kModelLeonGrabTalk             = 854,
+	kModelLeonGrabAndGutPunchTalk  = 855,
+	kModelLeonPunchAttack          = 856,
 	// 857 - 862: Rat (Free Slot A/B) animations
 	kModelAnimationRatJumpAttack                   = 857,
 	kModelAnimationRatRunning                      = 858,
@@ -2270,7 +2517,7 @@ enum GameModelAnimations {
 	// 920 - 930: Hasan animations
 	kModelAnimationHasanTalkWipeFaceLeftHand01    = 920, // UNUSED
 	kModelAnimationHasanIdleSlightMovement        = 921,
-	kModelAnimationHasanTalkSuggest               = 922,
+	kModelAnimationHasanGestureSuggest            = 922,
 	kModelAnimationHasanTakingABiteSnakeMove      = 923,
 	kModelAnimationHasanTalkPointingRightHand     = 924, // UNUSED
 	kModelAnimationHasanTalkMovingBothHands       = 925,
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index 8104c9dc8f..badb47b55b 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -25,8 +25,9 @@
 namespace BladeRunner {
 
 AIScriptClovis::AIScriptClovis(BladeRunnerEngine *vm) : AIScriptBase(vm) {
-	_var1 = 0;
-	_var2 = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 	_var3 = 1;
 	_var4 = 0;
 	_var5 = 0;
@@ -39,8 +40,8 @@ void AIScriptClovis::Initialize() {
 	_animationStateNext = 0;
 	_animationNext = 0;
 
-	_var1 = 0;
-	_var2 = 0;
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 	_var3 = 1;
 	_var4 = 0;
 	_var5 = 0;
@@ -587,21 +588,21 @@ bool AIScriptClovis::UpdateAnimation(int *animation, int *frame) {
 
 	switch (_animationState) {
 	case 0:
-		if (_var1 == 1) {
+		if (_varChooseIdleAnimation == 1) {
 			*animation = kModelAnimationClovisIdle;
-			if (_var2) {
-				--_var2;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else if (++_animationFrame == 7) {
-				_var2 = Random_Query(5, 15);
+				_varNumOfTimesToHoldCurrentFrame = Random_Query(5, 15);
 			} else {
 				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationClovisIdle)) {
 					_animationFrame = 0;
-					_var1 = 0;
+					_varChooseIdleAnimation = 0;
 				}
 			}
-		} else if (_var1 == 0) {
+		} else if (_varChooseIdleAnimation == 0) {
 			*animation = kModelAnimationClovisLookingUpAndAbout;
-			if (_var2) {
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
 				_animationFrame += _var3;
 				if (_animationFrame > _var5) {
 					_animationFrame = _var5;
@@ -612,21 +613,21 @@ bool AIScriptClovis::UpdateAnimation(int *animation, int *frame) {
 						_var3 = 1;
 					}
 				}
-				--_var2;
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else {
 				_animationFrame += _var3;
 				if (_animationFrame == 13 && Random_Query(0, 1)) {
 					_var3 = -1;
 					_var4 = 9;
 					_var5 = 13;
-					_var2 = Random_Query(4, 15);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(4, 15);
 				} else {
 					if (_animationFrame == 6) {
 						if (Random_Query(0, 1)) {
 							_var3 = -1;
 							_var4 = 3;
 							_var5 = 6;
-							_var2 = Random_Query(4, 15);
+							_varNumOfTimesToHoldCurrentFrame = Random_Query(4, 15);
 						}
 					}
 				}
@@ -639,13 +640,13 @@ bool AIScriptClovis::UpdateAnimation(int *animation, int *frame) {
 				}
 				if (_animationFrame == 0) {
 					if (Random_Query(0, 1) > 0) {
-						_var1 = 1;
+						_varChooseIdleAnimation = 1;
 					} else {
 						if (Random_Query(0, 2) > 0) {
 							_var3 = 1;
 							_var4 = 0;
 							_var5 = 0;
-							_var2 = Random_Query(5, 15);
+							_varNumOfTimesToHoldCurrentFrame = Random_Query(5, 15);
 						}
 					}
 				}
@@ -654,10 +655,10 @@ bool AIScriptClovis::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 1:
-		if (_var1 == 0) {
+		if (_varChooseIdleAnimation == 0) {
 			*animation = kModelAnimationClovisLookingUpAndAbout;
 		}
-		if (_var1 == 1) {
+		if (_varChooseIdleAnimation == 1) {
 			*animation = kModelAnimationClovisIdle;
 		}
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
@@ -1315,7 +1316,7 @@ bool AIScriptClovis::ChangeAnimationMode(int mode) {
 		default:
 			_animationState = 0;
 			_animationFrame = 0;
-			_var1 = 0;
+			_varChooseIdleAnimation = 0;
 			break;
 		}
 		break;
@@ -1637,7 +1638,7 @@ void AIScriptClovis::someAnim() {
 	default:
 		_animationState = 0;
 		_animationFrame = 0;
-		_var1 = 0;
+		_varChooseIdleAnimation = 0;
 		break;
 	}
 }
diff --git a/engines/bladerunner/script/ai/desk_clerk.cpp b/engines/bladerunner/script/ai/desk_clerk.cpp
index ed82e370a4..307b947cd6 100644
--- a/engines/bladerunner/script/ai/desk_clerk.cpp
+++ b/engines/bladerunner/script/ai/desk_clerk.cpp
@@ -25,9 +25,10 @@
 namespace BladeRunner {
 
 AIScriptDeskClerk::AIScriptDeskClerk(BladeRunnerEngine *vm) : AIScriptBase(vm) {
-	_flag1 = false;
+	// _varChooseIdleAnimation can have valid values: 0, 1
+	_varChooseIdleAnimation = 0;
 	_resumeIdleAfterFramesetCompletesFlag = false;
-	_var3 = 75;
+	_varNumOfTimesToHoldCurrentFrame = 75;
 }
 
 void AIScriptDeskClerk::Initialize() {
@@ -36,9 +37,9 @@ void AIScriptDeskClerk::Initialize() {
 	_animationStateNext = 0;
 	_animationNext = 0;
 
-	_flag1 = false;
+	_varChooseIdleAnimation = 0;
 	_resumeIdleAfterFramesetCompletesFlag = false;
-	_var3 = 75;
+	_varNumOfTimesToHoldCurrentFrame = 75;
 	Actor_Set_Goal_Number(kActorDeskClerk, kGoalDeskClerkDefault);
 }
 
@@ -144,9 +145,10 @@ bool AIScriptDeskClerk::UpdateAnimation(int *animation, int *frame) {
 
 #if BLADERUNNER_ORIGINAL_BUGS
 #else
-	// Fixing a bug for when the Clerk gets stuck in animation id 668, after Act 3:
+	// Fixing a bug for when the Clerk gets stuck in animation id kModelAnimationDeskClerkIsHeldUpByLeonIdle (668), after Act 3:
 	//	- when using HDFRAMES, the clerk will briefly be in the choking animation when McCoy re-enters
-	//	- when using CDFRAMES, the game would crash with a message "Unable to locate page 2214 for animation 668 frame 4!"
+	//	- when using CDFRAMES, the game would crash with a message:
+	//   "Unable to locate page 2214 for animation 668 frame 4!"
 	// This occurs when:
 	//	 The player walks out too fast from the scene where Leon is choking the clerk in Act 3.
 	//   Hence, Leon's AI script's OtherAgentExitedThisSet() is triggered, Leon is gone,
@@ -162,7 +164,7 @@ bool AIScriptDeskClerk::UpdateAnimation(int *animation, int *frame) {
 	    && _animationState >= 6
 	) {
 		Actor_Change_Animation_Mode(kActorDeskClerk, kAnimationModeIdle);
-		*animation = 661;
+		*animation = kModelAnimationDeskClerkReadPaperIdle;
 		_animationFrame = 0;
 		_animationState = 0;
 	}
@@ -170,40 +172,40 @@ bool AIScriptDeskClerk::UpdateAnimation(int *animation, int *frame) {
 
 	switch (_animationState) {
 	case 0:
-		if (_flag1) {
-			*animation = 662;
+		if (_varChooseIdleAnimation > 0) {
+			*animation = kModelAnimationDeskClerkReadPaperChangePageIdle;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(662)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationDeskClerkReadPaperChangePageIdle)) {
 				_animationFrame = 0;
-				_flag1 = false;
-				*animation = 661;
-				_var3 = Random_Query(50, 100);
+				_varChooseIdleAnimation = 0;
+				*animation = kModelAnimationDeskClerkReadPaperIdle;
+				_varNumOfTimesToHoldCurrentFrame = Random_Query(50, 100);
 			}
 		} else {
-			if (_var3 != 0) {
-				--_var3;
+			if (_varNumOfTimesToHoldCurrentFrame != 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			}
 
-			*animation = 661;
+			*animation = kModelAnimationDeskClerkReadPaperIdle;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(661)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationDeskClerkReadPaperIdle)) {
 				_animationFrame = 0;
 
-				if (_var3 == 0) {
-					*animation = 662;
-					_flag1 = true;
+				if (_varNumOfTimesToHoldCurrentFrame == 0) {
+					*animation = kModelAnimationDeskClerkReadPaperChangePageIdle;
+					_varChooseIdleAnimation = 1;
 				}
 			}
 		}
 		break;
 
 	case 1:
-		*animation = 663;
+		*animation = kModelAnimationDeskClerkReadPaperCalmTalk;
 
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
-			*animation = 661;
+			*animation = kModelAnimationDeskClerkReadPaperIdle;
 			_animationState = 0;
-			_flag1 = false;
+			_varChooseIdleAnimation = 0;
 		} else {
 			++_animationFrame;
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
@@ -213,59 +215,59 @@ bool AIScriptDeskClerk::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 2:
-		*animation = 664;
+		*animation = kModelAnimationDeskClerkReadPaperMoreCalmTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(664)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationDeskClerkReadPaperMoreCalmTalk)) {
 			_animationFrame = 0;
 			_animationState = 1;
-			*animation = 663;
+			*animation = kModelAnimationDeskClerkReadPaperCalmTalk;
 		}
 		break;
 
 	case 3:
-		*animation = 665;
+		*animation = kModelAnimationDeskClerkReadPaperMoveLeftTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(665)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationDeskClerkReadPaperMoveLeftTalk)) {
 			_animationFrame = 0;
 			_animationState = 1;
-			*animation = 663;
+			*animation = kModelAnimationDeskClerkReadPaperCalmTalk;
 		}
 		break;
 
 	case 4:
-		*animation = 666;
+		*animation = kModelAnimationDeskClerkReadPaperSlightClosePaperTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(666)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationDeskClerkReadPaperSlightClosePaperTalk)) {
 			_animationFrame = 0;
 			_animationState = 1;
-			*animation = 663;
+			*animation = kModelAnimationDeskClerkReadPaperCalmTalk;
 		}
 		break;
 
 	case 5:
-		*animation = 667;
+		*animation = kModelAnimationDeskClerkReadPaperMoreClosePaperTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(667)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationDeskClerkReadPaperMoreClosePaperTalk)) {
 			_animationFrame = 0;
 			_animationState = 1;
-			*animation = 663;
+			*animation = kModelAnimationDeskClerkReadPaperCalmTalk;
 		}
 		break;
 
 	case 6:
-		*animation = 668;
+		*animation = kModelAnimationDeskClerkIsHeldUpByLeonIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(668)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationDeskClerkIsHeldUpByLeonIdle)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 7:
-		*animation = 669;
+		*animation = kModelAnimationDeskClerkFallingAfterLeonLetsGo;
 
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
 			Actor_Change_Animation_Mode(kActorDeskClerk, 72);
-			*animation = 668;
+			*animation = kModelAnimationDeskClerkIsHeldUpByLeonIdle;
 			_animationState = 6;
 		} else {
 			++_animationFrame;
@@ -276,13 +278,13 @@ bool AIScriptDeskClerk::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 8:
-		*animation = 670;
+		*animation = kModelAnimationDeskClerkHeadSmashedOnCounter;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(670) - 2) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationDeskClerkHeadSmashedOnCounter) - 2) {
 			Ambient_Sounds_Play_Sound(kSfxZUBLAND1, 40, 30, 30, 99);
 			Actor_Set_Goal_Number(kActorDeskClerk, kGoalDeskClerkKnockedOut);
 			Actor_Change_Animation_Mode(kActorDeskClerk, kAnimationModeIdle);
-			*animation = 661;
+			*animation = kModelAnimationDeskClerkReadPaperIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
@@ -321,8 +323,8 @@ bool AIScriptDeskClerk::ChangeAnimationMode(int mode) {
 		default:
 			_animationState = 0;
 			_animationFrame = 0;
-			_flag1 = false;
-			_var3 = Random_Query(70, 140);
+			_varChooseIdleAnimation = 0;
+			_varNumOfTimesToHoldCurrentFrame = Random_Query(70, 140);
 			break;
 		}
 		break;
diff --git a/engines/bladerunner/script/ai/early_q.cpp b/engines/bladerunner/script/ai/early_q.cpp
index 744e169568..14eaaee8a2 100644
--- a/engines/bladerunner/script/ai/early_q.cpp
+++ b/engines/bladerunner/script/ai/early_q.cpp
@@ -25,8 +25,9 @@
 namespace BladeRunner {
 
 AIScriptEarlyQ::AIScriptEarlyQ(BladeRunnerEngine *vm) : AIScriptBase(vm) {
-	_var1 = 0;
-	_var2 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1
+	_varChooseIdleAnimation = 0;
 	_var3 = 1;
 	_resumeIdleAfterFramesetCompletesFlag = false;
 }
@@ -37,8 +38,8 @@ void AIScriptEarlyQ::Initialize() {
 	_animationStateNext = 0;
 	_animationNext = 0;
 
-	_var1 = 0;
-	_var2 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
+	_varChooseIdleAnimation = 0;
 	_var3 = 1;
 	_resumeIdleAfterFramesetCompletesFlag = false;
 }
@@ -490,46 +491,46 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		if (_var2 == 1) {
-			*animation = 370;
-			if (_var1) {
-				--_var1;
+		if (_varChooseIdleAnimation == 1) {
+			*animation = kModelAnimationEarlyQHandOnFace;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else {
 				if (++_animationFrame == 6) {
-					_var1 = Random_Query(8, 15);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(8, 15);
 				}
 				if (_animationFrame < 6) {
-					_var1 = 1;
+					_varNumOfTimesToHoldCurrentFrame = 1;
 				}
-				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(370)) {
+				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQHandOnFace)) {
 					_animationFrame = 0;
-					_var2 = 0;
+					_varChooseIdleAnimation = 0;
 				}
 			}
-		} else if (_var2 == 0) {
-			*animation = 369;
-			if (_var1) {
-				--_var1;
+		} else if (_varChooseIdleAnimation == 0) {
+			*animation = kModelAnimationEarlyQIdle;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 				if (!Random_Query(0, 6)) {
 					_var3 = -_var3;
 				}
 			} else {
 				_animationFrame += _var3;
-				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(369)) {
+				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQIdle)) {
 					_animationFrame = 0;
 				}
 				if (_animationFrame < 0) {
-					_animationFrame = Slice_Animation_Query_Number_Of_Frames(369) - 1;
+					_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQIdle) - 1;
 				}
-				_var1 = Random_Query(0, 1);
+				_varNumOfTimesToHoldCurrentFrame = Random_Query(0, 1);
 				if (_animationFrame == 0) {
 					if (!Random_Query(0, 3)) {
-						_var2 = 1;
+						_varChooseIdleAnimation = 1;
 					}
 				}
 				if (_animationFrame == 0 || _animationFrame == 5) {
 					if (Random_Query(0, 1)) {
-						_var1 = Random_Query(2, 8);
+						_varNumOfTimesToHoldCurrentFrame = Random_Query(2, 8);
 					}
 				}
 			}
@@ -537,7 +538,7 @@ bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 1:
-		*animation = 381;
+		*animation = kModelAnimationEarlyQSPicksUpBottleAndPoursDrink;
 		++_animationFrame;
 		if (_animationFrame == 18) {
 			Ambient_Sounds_Play_Sound(kSfxBARSFX4, 99, 0, 0, 20);
@@ -546,23 +547,23 @@ bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 			Actor_Change_Animation_Mode(kActorEarlyQ, 74);
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 382;
+			*animation = kModelAnimationEarlyQSHoldsDrinkIdle;
 		}
 		break;
 
 	case 2:
-		*animation = 382;
+		*animation = kModelAnimationEarlyQSHoldsDrinkIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(382)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQSHoldsDrinkIdle)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 3:
-		*animation = 371;
+		*animation = kModelAnimationEarlyQGivesSomething;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(371)) {
-			*animation = 369;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQGivesSomething)) {
+			*animation = kModelAnimationEarlyQIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorEarlyQ, kAnimationModeIdle);
@@ -570,75 +571,75 @@ bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 4:
-		*animation = 368;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(368) - 1) {
+		*animation = kModelAnimationEarlyQDropsDead;
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQDropsDead) - 1) {
 			++_animationFrame;
 		}
 		break;
 
 	case 5:
-		*animation = 365;
+		*animation = kModelAnimationEarlyQWalking;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(365)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQWalking)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 6:
-		*animation = 361;
+		*animation = kModelAnimationEarlyQCombatWalking;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(361)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQCombatWalking)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 7:
-		*animation = 383;
+		*animation = kModelAnimationEarlyQSitsAndCrossesLegs;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(383)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQSitsAndCrossesLegs)) {
 			_animationFrame = 0;
 			_animationState = 9;
-			*animation = 384;
+			*animation = kModelAnimationEarlyQSitIdle;
 		}
 		break;
 
 	case 8:
-		*animation = 387;
+		*animation = kModelAnimationEarlyQSitToStandingUp;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(387)) {
-			*animation = 369;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQSitToStandingUp)) {
+			*animation = kModelAnimationEarlyQIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
 		break;
 
 	case 9:
-		*animation = 384;
+		*animation = kModelAnimationEarlyQSitIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(384)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQSitIdle)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 10:
-		*animation = 385;
+		*animation = kModelAnimationEarlyQSitTalk;
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
 			_resumeIdleAfterFramesetCompletesFlag = false;
 			_animationState = 9;
-			_var2 = 0;
-			*animation = 384;
+			_varChooseIdleAnimation = 0;
+			*animation = kModelAnimationEarlyQSitIdle;
 			Actor_Change_Animation_Mode(kActorEarlyQ, 53);
 		} else {
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(385)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQSitTalk)) {
 				_animationFrame = 0;
 			}
 		}
 		break;
 
 	case 11:
-		*animation = 386;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(386) - 1) {
+		*animation = kModelAnimationEarlyQSitScorpionAgonyDeath;
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQSitScorpionAgonyDeath) - 1) {
 			++_animationFrame;
 		}
 		if (_animationFrame == 1) {
@@ -656,52 +657,52 @@ bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 12:
-		*animation = 360;
+		*animation = kModelAnimationEarlyQCombatIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(360)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQCombatIdle)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 13:
-		*animation = 362;
+		*animation = kModelAnimationEarlyQCombatUnholsterGun;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(362)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQCombatUnholsterGun)) {
 			_animationFrame = 0;
 			_animationState = 12;
-			*animation = 360;
+			*animation = kModelAnimationEarlyQCombatIdle;
 		}
 		break;
 
 	case 14:
-		*animation = 363;
+		*animation = kModelAnimationEarlyQCombatHolsterGun;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(363)) {
-			*animation = 369;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQCombatHolsterGun)) {
+			*animation = kModelAnimationEarlyQIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
 		break;
 
 	case 15:
-		*animation = 364;
+		*animation = kModelAnimationEarlyQCombatFiresGun;
 		++_animationFrame;
 		if (_animationFrame == 2) {
 			Ambient_Sounds_Play_Sound(kSfxLGCAL1, 60, 0, 0, 20);
 		}
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(364)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQCombatFiresGun)) {
 			_animationFrame = 0;
 			_animationState = 12;
-			*animation = 360;
+			*animation = kModelAnimationEarlyQCombatIdle;
 			Actor_Change_Animation_Mode(kActorEarlyQ, kAnimationModeCombatIdle); // TODO: kAnimationModeCombatIdle?
 		}
 		break;
 
 	case 16:
-		*animation = 366;
+		*animation = kModelAnimationEarlyQGotHitRight;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(366)) {
-			*animation = 369;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQGotHitRight)) {
+			*animation = kModelAnimationEarlyQIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorEarlyQ, kAnimationModeIdle);
@@ -709,10 +710,10 @@ bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 17:
-		*animation = 367;
+		*animation = kModelAnimationEarlyQGotHitLeft;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(367)) {
-			*animation = 369;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQGotHitLeft)) {
+			*animation = kModelAnimationEarlyQIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorEarlyQ, kAnimationModeIdle);
@@ -720,10 +721,10 @@ bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 18:
-		*animation = 366;
+		*animation = kModelAnimationEarlyQGotHitRight;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(366)) {
-			*animation = 369;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQGotHitRight)) {
+			*animation = kModelAnimationEarlyQIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorEarlyQ, kAnimationModeIdle);
@@ -731,10 +732,10 @@ bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 19:
-		*animation = 367;
+		*animation = kModelAnimationEarlyQGotHitLeft;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(367)) {
-			*animation = 369;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQGotHitLeft)) {
+			*animation = kModelAnimationEarlyQIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorEarlyQ, kAnimationModeIdle);
@@ -742,97 +743,97 @@ bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 20:
-		*animation = 372;
+		*animation = kModelAnimationEarlyQCalmTalk;
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
-			*animation = 369;
+			*animation = kModelAnimationEarlyQIdle;
 			_animationFrame = 0;
 			_resumeIdleAfterFramesetCompletesFlag = false;
 			_animationState = 0;
 		} else {
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(372)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQCalmTalk)) {
 				_animationFrame = 0;
 			}
 		}
 		break;
 
 	case 21:
-		*animation = 373;
+		*animation = kModelAnimationEarlyQCalmExplainTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(373)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQCalmExplainTalk)) {
 			_animationFrame = 0;
 			_animationState = 20;
-			*animation = 372;
+			*animation = kModelAnimationEarlyQCalmTalk;
 		}
 		break;
 
 	case 22:
-		*animation = 374;
+		*animation = kModelAnimationEarlyQVulgarTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(374)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQVulgarTalk)) {
 			_animationFrame = 0;
 			_animationState = 20;
-			*animation = 372;
+			*animation = kModelAnimationEarlyQCalmTalk;
 		}
 		break;
 
 	case 23:
-		*animation = 375;
+		*animation = kModelAnimationEarlyQDismissTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(375)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQDismissTalk)) {
 			_animationFrame = 0;
 			_animationState = 20;
-			*animation = 372;
+			*animation = kModelAnimationEarlyQCalmTalk;
 		}
 		break;
 
 	case 24:
-		*animation = 376;
+		*animation = kModelAnimationEarlyQMoreDismissTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(376)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQMoreDismissTalk)) {
 			_animationFrame = 0;
 			_animationState = 20;
-			*animation = 372;
+			*animation = kModelAnimationEarlyQCalmTalk;
 		}
 		break;
 
 	case 25:
-		*animation = 377;
+		*animation = kModelAnimationEarlyQIntenseExplainTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(377)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQIntenseExplainTalk)) {
 			_animationFrame = 0;
 			_animationState = 20;
-			*animation = 372;
+			*animation = kModelAnimationEarlyQCalmTalk;
 		}
 		break;
 
 	case 26:
-		*animation = 378;
+		*animation = kModelAnimationEarlyQSubtleExplainTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(378)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQSubtleExplainTalk)) {
 			_animationFrame = 0;
 			_animationState = 20;
-			*animation = 372;
+			*animation = kModelAnimationEarlyQCalmTalk;
 		}
 		break;
 
 	case 27:
-		*animation = 379;
+		*animation = kModelAnimationEarlyQExcitedTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(379)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQExcitedTalk)) {
 			_animationFrame = 0;
 			_animationState = 20;
-			*animation = 372;
+			*animation = kModelAnimationEarlyQCalmTalk;
 		}
 		break;
 
 	case 28:
-		*animation = 380;
+		*animation = kModelAnimationEarlyQAnnounceTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(380)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationEarlyQAnnounceTalk)) {
 			_animationFrame = 0;
 			_animationState = 20;
-			*animation = 372;
+			*animation = kModelAnimationEarlyQCalmTalk;
 		}
 		break;
 
diff --git a/engines/bladerunner/script/ai/fish_dealer.cpp b/engines/bladerunner/script/ai/fish_dealer.cpp
index f811be6c31..0985705ad0 100644
--- a/engines/bladerunner/script/ai/fish_dealer.cpp
+++ b/engines/bladerunner/script/ai/fish_dealer.cpp
@@ -193,64 +193,64 @@ bool AIScriptFishDealer::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptFishDealer::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		*animation = 683;
+		*animation = kModelAnimationFishDealerIdle;
 		++_animationFrame;
 
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(683))
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationFishDealerIdle))
 			_animationFrame = 0;
 
 		break;
 
 	case 1:
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
-			*animation = 683;
+			*animation = kModelAnimationFishDealerIdle;
 			_animationState = 0;
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		} else {
-			*animation = 685;
+			*animation = kModelAnimationFishDealerCalmTalk;
 			++_animationFrame;
 
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(685))
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationFishDealerCalmTalk))
 				_animationFrame = 0;
 		}
 		break;
 
 	case 2:
-		*animation = 686;
+		*animation = kModelAnimationFishDealerExplainTalk;
 		++_animationFrame;
 
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(686)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationFishDealerExplainTalk)) {
 			_animationFrame = 0;
 			_animationState = 2;
 		}
 		break;
 
 	case 3:
-		*animation = 687;
+		*animation = kModelAnimationFishDealerNoTroubleTalk;
 		++_animationFrame;
 
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(687)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationFishDealerNoTroubleTalk)) {
 			_animationFrame = 0;
 			_animationState = 3;
 		}
 		break;
 
 	case 4:
-		*animation = 684;
+		*animation = kModelAnimationFishDealerGestureGive;
 		++_animationFrame;
 
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(684)) {
-			*animation = 683;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationFishDealerGestureGive)) {
+			*animation = kModelAnimationFishDealerIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
 		break;
 
 	case 5:
-		*animation = 682;
+		*animation = kModelAnimationFishDealerWalking;
 		++_animationFrame;
 
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(682))
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationFishDealerWalking))
 			_animationFrame = 0;
 
 		break;
diff --git a/engines/bladerunner/script/ai/gaff.cpp b/engines/bladerunner/script/ai/gaff.cpp
index 676a1daec8..d5b2214e65 100644
--- a/engines/bladerunner/script/ai/gaff.cpp
+++ b/engines/bladerunner/script/ai/gaff.cpp
@@ -419,7 +419,8 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	default:
-		*animation = 399;
+		// Dummy placeholder, kModelAnimationZubenWalking (399) is a Zuben animation
+		*animation = kModelAnimationZubenWalking;
 		break;
 	}
 	*frame = _animationFrame;
diff --git a/engines/bladerunner/script/ai/grigorian.cpp b/engines/bladerunner/script/ai/grigorian.cpp
index 81fbddc661..baac5c0597 100644
--- a/engines/bladerunner/script/ai/grigorian.cpp
+++ b/engines/bladerunner/script/ai/grigorian.cpp
@@ -25,13 +25,14 @@
 namespace BladeRunner {
 
 AIScriptGrigorian::AIScriptGrigorian(BladeRunnerEngine *vm) : AIScriptBase(vm) {
-	var_45CA10 = 0;
-	var_45CA14 = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1, 2
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 }
 
 void AIScriptGrigorian::Initialize() {
-	var_45CA10 = 0;
-	var_45CA14 = 0;
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 	_animationStateNext = 0;
 	_animationFrame = 0;
 	_animationState = 0;
@@ -102,42 +103,42 @@ bool AIScriptGrigorian::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptGrigorian::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		if (var_45CA10 == 0) {
+		if (_varChooseIdleAnimation == 0) {
 			*animation = kModelAnimationGrigorianStandIdle;
-			if (var_45CA14 > 0) {
-				--var_45CA14;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else {
 				++_animationFrame;
 				if (_animationFrame == 5 || _animationFrame == 13) {
-					var_45CA14 = Random_Query(2, 4);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(2, 4);
 				}
 				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandIdle)) {
 					_animationFrame = 0;
-					var_45CA10 = Random_Query(0, 2);
+					_varChooseIdleAnimation = Random_Query(0, 2);
 				}
 			}
-		} else if (var_45CA10 == 1) {
+		} else if (_varChooseIdleAnimation == 1) {
 			*animation = kModelAnimationGrigorianStandAnnoyedTalk;
 			++_animationFrame;
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandAnnoyedTalk)) {
 				*animation = kModelAnimationGrigorianStandIdle;
 				_animationFrame = 0;
-				var_45CA10 = 0;
+				_varChooseIdleAnimation = 0;
 			}
-		} else if (var_45CA10 == 2) {
+		} else if (_varChooseIdleAnimation == 2) {
 			*animation = kModelAnimationGrigorianStandArmsCrossedTalk;
-			if (var_45CA14 > 0) {
-				--var_45CA14;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else {
 				++_animationFrame;
 				if (_animationFrame >= 8 && _animationFrame <= 10) {
-					var_45CA14 = Random_Query(2, 4);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(2, 4);
 				}
 #if BLADERUNNER_ORIGINAL_BUGS
 				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandIdle)) {
 					*animation = kModelAnimationGrigorianStandIdle;
 					_animationFrame = 0;
-					var_45CA10 = 0;
+					_varChooseIdleAnimation = 0;
 				}
 #else
 				// bugfix set proper current animation here to get frameset number of frames
@@ -145,7 +146,7 @@ bool AIScriptGrigorian::UpdateAnimation(int *animation, int *frame) {
 				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandArmsCrossedTalk)) {
 					*animation = kModelAnimationGrigorianStandIdle;
 					_animationFrame = 0;
-					var_45CA10 = 0;
+					_varChooseIdleAnimation = 0;
 				}
 #endif // BLADERUNNER_ORIGINAL_BUGS
 			}
@@ -219,7 +220,8 @@ bool AIScriptGrigorian::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	default:
-		*animation = 399;
+		// Dummy placeholder, kModelAnimationZubenWalking (399) is a Zuben animation
+		*animation = kModelAnimationZubenWalking;
 		break;
 	}
 	*frame = _animationFrame;
diff --git a/engines/bladerunner/script/ai/hanoi.cpp b/engines/bladerunner/script/ai/hanoi.cpp
index da20b3c86a..94f53328c3 100644
--- a/engines/bladerunner/script/ai/hanoi.cpp
+++ b/engines/bladerunner/script/ai/hanoi.cpp
@@ -26,8 +26,9 @@ namespace BladeRunner {
 
 AIScriptHanoi::AIScriptHanoi(BladeRunnerEngine *vm) : AIScriptBase(vm) {
 	_resumeIdleAfterFramesetCompletesFlag = false;
-	_flag1 = 0;
-	_var3 = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 	_var4 = 1;
 }
 
@@ -38,8 +39,8 @@ void AIScriptHanoi::Initialize() {
 	_animationNext = 0;
 
 	_resumeIdleAfterFramesetCompletesFlag = false;
-	_flag1 = 0;
-	_var3 = 0;
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 	_var4 = 1;
 
 	Actor_Set_Goal_Number(kActorHanoi, 0);
@@ -356,20 +357,20 @@ bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		if (_flag1) {
-			*animation = 649;
+		if (_varChooseIdleAnimation > 0) {
+			*animation = kModelAnimationHanoiScratchesBackIdle;
 			++_animationFrame;
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
-				*animation = 648;
+				*animation = kModelAnimationHanoiLooksAroundIdle;
 				_animationFrame = 0;
-				_flag1 = false;
+				_varChooseIdleAnimation = 0;
 			}
 			break;
 		}
 
-		*animation = 648;
-		if (_var3 != 0) {
-			--_var3;
+		*animation = kModelAnimationHanoiLooksAroundIdle;
+		if (_varNumOfTimesToHoldCurrentFrame != 0) {
+			--_varNumOfTimesToHoldCurrentFrame;
 			if (!Random_Query(0, 6)) {
 				_var4 = -_var4;
 			}
@@ -388,26 +389,26 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 			 || _animationFrame == 11
 			 || _animationFrame == 0
 			) {
-				_var3 = Random_Query(5, 12);
+				_varNumOfTimesToHoldCurrentFrame = Random_Query(5, 12);
 			}
 
 			if (_animationFrame >= 10
 			 && _animationFrame <= 13
 			) {
-				_var3 = Random_Query(0, 1);
+				_varNumOfTimesToHoldCurrentFrame = Random_Query(0, 1);
 			}
 
 			if (_animationFrame == 0) {
 				if (!Random_Query(0, 4)) {
-					_flag1 = true;
+					_varChooseIdleAnimation = 1;
 				}
 			}
 		}
 		break;
 
 	case 1:
-		if (_flag1) {
-			*animation = 649;
+		if (_varChooseIdleAnimation > 0) {
+			*animation = kModelAnimationHanoiScratchesBackIdle;
 			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(*animation) / 2) {
 				_animationFrame += 2;
 			} else {
@@ -429,17 +430,17 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 2:
-		*animation = 657;
+		*animation = kModelAnimationHanoiGrabsMcCoy;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 3;
-			*animation = 658;
+			*animation = kModelAnimationHanoiHoldsMcCoyUp;
 		}
 		break;
 
 	case 3:
-		*animation = 658;
+		*animation = kModelAnimationHanoiHoldsMcCoyUp;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
@@ -447,22 +448,22 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 4:
-		*animation = 659;
+		*animation = kModelAnimationHanoiHoldsMcCoyUpAndTalks;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 3;
-			*animation = 658;
+			*animation = kModelAnimationHanoiHoldsMcCoyUp;
 		}
 		break;
 
 	case 5:
-		*animation = 657;
+		*animation = kModelAnimationHanoiGrabsMcCoy;
 		--_animationFrame;
 		if (_animationFrame == 0) {
 			_animationState = 0;
 			_animationFrame = 0;
-			*animation = 648;
+			*animation = kModelAnimationHanoiLooksAroundIdle;
 
 			Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
 			Actor_Set_Invisible(kActorMcCoy, false);
@@ -477,20 +478,20 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 6:
-		*animation = 345;  // Sadik is used in this animation, but he is well hidden
+		*animation = kModelAnimationSadikPicksUpAndThrowsMcCoy;  // Sadik is used in this animation, but he is well hidden
 		++_animationFrame;
 		if (_animationFrame > 26) {
 			Actor_Change_Animation_Mode(kActorHanoi, kAnimationModeIdle);
 			_animationState = 0;
 			_animationFrame = 0;
-			*animation = 648;
+			*animation = kModelAnimationHanoiLooksAroundIdle;
 			Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyNR01ThrownOut);
 			Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
 		}
 		break;
 
 	case 7:
-		*animation = 645;
+		*animation = kModelAnimationHanoiWalking;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
@@ -498,7 +499,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 8:
-		*animation = 642;
+		*animation = kModelAnimationHanoiCombatIdle;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
@@ -506,19 +507,19 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 9:
-		*animation = 643;
+		*animation = kModelAnimationHanoiCombatKicksDoorIn;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			Actor_Change_Animation_Mode(kActorHanoi, kAnimationModeCombatIdle);
 			_animationState = 8;
 			_animationFrame = 0;
-			*animation = 642;
+			*animation = kModelAnimationHanoiCombatIdle;
 			Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR04ShootMcCoy);
 		}
 		break;
 
 	case 10:
-		*animation = 644;
+		*animation = kModelAnimationHanoiCombatFiresGun;
 		++_animationFrame;
 
 		if (_animationFrame == 4) {
@@ -538,39 +539,39 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 			Actor_Change_Animation_Mode(kActorHanoi, kAnimationModeCombatIdle);
 			_animationFrame = 0;
 			_animationState = 8;
-			*animation = 642;
+			*animation = kModelAnimationHanoiCombatIdle;
 		}
 		break;
 
 	case 11:
-		*animation = 660;
+		*animation = kModelAnimationHanoiPunchUpAttack;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
-			*animation = 648;
+			*animation = kModelAnimationHanoiLooksAroundIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
 		break;
 
 	case 12:
-		*animation = 646;
+		*animation = kModelAnimationHanoiGotHitOrViolentHeadNod;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
-			*animation = 642;
+			*animation = kModelAnimationHanoiCombatIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
 		break;
 
 	case 13:
-		*animation = 647;
+		*animation = kModelAnimationHanoiShotDead;
 		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(*animation) - 1) {
 			++_animationFrame;
 		}
 		break;
 
 	case 14:
-		*animation = 650;
+		*animation = kModelAnimationHanoiCalmTalk;
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
 			// _resumeIdleAfterFramesetCompletesFlag is never set so it's always false, thus this does not evaluate true
 			_animationState = 0;
@@ -583,62 +584,62 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 15:
-		*animation = 651;
+		*animation = kModelAnimationHanoiExplainTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
-			*animation = 650;
+			*animation = kModelAnimationHanoiCalmTalk;
 		}
 		break;
 
 	case 16:
-		*animation = 652;
+		*animation = kModelAnimationHanoiDownwardsNodTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
-			*animation = 650;
+			*animation = kModelAnimationHanoiCalmTalk;
 		}
 		break;
 
 	case 17:
-		*animation = 653;
+		*animation = kModelAnimationHanoiDenyTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
-			*animation = 650;
+			*animation = kModelAnimationHanoiCalmTalk;
 		}
 		break;
 
 	case 18:
-		*animation = 654;
+		*animation = kModelAnimationHanoiSlightBowingTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
-			*animation = 650;
+			*animation = kModelAnimationHanoiCalmTalk;
 		}
 		break;
 
 	case 19:
-		*animation = 655;
+		*animation = kModelAnimationHanoiLaughTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
-			*animation = 650;
+			*animation = kModelAnimationHanoiCalmTalk;
 		}
 		break;
 
 	case 20:
-		*animation = 656;
+		*animation = kModelAnimationHanoiMockTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
-			*animation = 650;
+			*animation = kModelAnimationHanoiCalmTalk;
 		}
 		break;
 
@@ -674,7 +675,7 @@ bool AIScriptHanoi::ChangeAnimationMode(int mode) {
 			_animationFrame = 0;
 		} else {
 			_animationStateNext = 14;
-			_animationNext = 650;
+			_animationNext = kModelAnimationHanoiCalmTalk;
 			_animationState = 1;
 		}
 		break;
@@ -691,37 +692,43 @@ bool AIScriptHanoi::ChangeAnimationMode(int mode) {
 
 	case 12:
 		_animationStateNext = 15;
-		_animationNext = 651;
+		_animationNext = kModelAnimationHanoiExplainTalk;
 		_animationState = 1;
 		break;
 
 	case 13:
 		_animationStateNext = 16;
-		_animationNext = 652;
+		_animationNext = kModelAnimationHanoiDownwardsNodTalk;
 		_animationState = 1;
 		break;
 
 	case 14:
 		_animationStateNext = 17;
-		_animationNext = 653;
+		_animationNext = kModelAnimationHanoiDenyTalk;
 		_animationState = 1;
 		break;
 
 	case 15:
 		_animationStateNext = 18;
-		_animationNext = 654;
+		_animationNext = kModelAnimationHanoiSlightBowingTalk;
 		_animationState = 1;
 		break;
 
 	case 16:
+#if BLADERUNNER_ORIGINAL_BUGS
+		// TODO a bug? uses kModelAnimationHanoiSlightBowingTalk (654) again like case 15
 		_animationStateNext = 18;
-		_animationNext = 654;
+		_animationNext = kModelAnimationHanoiSlightBowingTalk;
+#else
+		_animationStateNext = 19;
+		_animationNext = kModelAnimationHanoiLaughTalk;
+#endif
 		_animationState = 1;
 		break;
 
 	case 17:
 		_animationStateNext = 20;
-		_animationNext = 656;
+		_animationNext = kModelAnimationHanoiMockTalk;
 		_animationState = 1;
 		break;
 
@@ -740,7 +747,7 @@ bool AIScriptHanoi::ChangeAnimationMode(int mode) {
 			_animationFrame = 0;
 		} else {
 			_animationState = 5;
-			_animationFrame = Slice_Animation_Query_Number_Of_Frames(657) - 1;
+			_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationHanoiGrabsMcCoy) - 1;
 		}
 		break;
 
diff --git a/engines/bladerunner/script/ai/hasan.cpp b/engines/bladerunner/script/ai/hasan.cpp
index e7edfed75b..2b29ac84ae 100644
--- a/engines/bladerunner/script/ai/hasan.cpp
+++ b/engines/bladerunner/script/ai/hasan.cpp
@@ -27,10 +27,11 @@ namespace BladeRunner {
 AIScriptHasan::AIScriptHasan(BladeRunnerEngine *vm) : AIScriptBase(vm) {
 	_var1 = 6;
 	_var2 = 1;
-	_var3 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 	_var4 = 0;
 	_var5 = 0;
-	_var6 = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1, 2
+	_varChooseIdleAnimation = 0;
 }
 
 void AIScriptHasan::Initialize() {
@@ -41,10 +42,10 @@ void AIScriptHasan::Initialize() {
 
 	_var1 = 6;
 	_var2 = 1;
-	_var3 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 	_var4 = 0;
 	_var5 = 0;
-	_var6 = 0;
+	_varChooseIdleAnimation = 0;
 
 	Actor_Put_In_Set(kActorHasan, kSetAR01_AR02);
 	Actor_Set_At_XYZ(kActorHasan, -214.0f, 0.0f, -1379.0f, 371);
@@ -228,49 +229,49 @@ bool AIScriptHasan::UpdateAnimation(int *animation, int *frame) {
 
 	switch (_animationState) {
 	case 0:
-		if (_var6 == 1) {
-			*animation = kModelAnimationHasanTalkSuggest;
-			if (_var3) {
-				--_var3;
+		if (_varChooseIdleAnimation == 1) {
+			*animation = kModelAnimationHasanGestureSuggest;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else {
 				++_animationFrame;
-				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHasanTalkSuggest)) {
+				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHasanGestureSuggest)) {
 					_animationFrame = 0;
-					_var6 = 0;
+					_varChooseIdleAnimation = 0;
 					*animation = kModelAnimationHasanIdleSlightMovement;
 					_var1 = Random_Query(6, 14);
 					_var2 = 2 * Random_Query(0, 1) - 1;
 					_var4 = Random_Query(40, 60);
 				}
 				if (_animationFrame >= 10 && _animationFrame <= 14) {
-					_var3 = Random_Query(0, 1);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(0, 1);
 				}
 			}
-		} else if (_var6 == 2) {
+		} else if (_varChooseIdleAnimation == 2) {
 			*animation = kModelAnimationHasanTakingABiteSnakeMove;
-			if (_var3) {
-				--_var3;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else {
 				++_animationFrame;
 				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHasanTakingABiteSnakeMove)) {
 					_animationFrame = 0;
-					_var6 = 0;
+					_varChooseIdleAnimation = 0;
 					*animation = kModelAnimationHasanIdleSlightMovement;
 					_var1 = Random_Query(6, 14);
 					_var2 = 2 * Random_Query(0, 1) - 1;
 					_var5 = Random_Query(40, 60);
 				}
 				if (_animationFrame == 14) {
-					_var3 = Random_Query(3, 10);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(3, 10);
 				}
 				if (_animationFrame == 23) {
-					_var3 = Random_Query(0, 4);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(0, 4);
 				}
 			}
-		} else if (_var6 == 0) {
+		} else if (_varChooseIdleAnimation == 0) {
 			*animation = kModelAnimationHasanIdleSlightMovement;
-			if (_var3) {
-				--_var3;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else {
 				_animationFrame += _var2;
 				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHasanIdleSlightMovement)) {
@@ -282,16 +283,16 @@ bool AIScriptHasan::UpdateAnimation(int *animation, int *frame) {
 				if (!--_var1) {
 					_var2 = 2 * Random_Query(0, 1) - 1;
 					_var1 = Random_Query(6, 14);
-					_var3 = Random_Query(0, 4);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(0, 4);
 				}
 				if (_animationFrame == 0) {
-					_var6 = Random_Query(0, 2);
+					_varChooseIdleAnimation = Random_Query(0, 2);
 				}
-				if (_var6 == 1 && _var4) {
-					_var6 = 0;
+				if (_varChooseIdleAnimation == 1 && _var4) {
+					_varChooseIdleAnimation = 0;
 				}
-				if (_var6 == 2 && _var5) {
-					_var6 = 0;
+				if (_varChooseIdleAnimation == 2 && _var5) {
+					_varChooseIdleAnimation = 0;
 				}
 			}
 		}
@@ -367,13 +368,13 @@ bool AIScriptHasan::ChangeAnimationMode(int mode) {
 	switch (mode) {
 	case kAnimationModeIdle:
 		_animationState = 0;
-		_var6 = 0;
+		_varChooseIdleAnimation = 0;
 		_animationFrame = 0;
 		break;
 
 	case kAnimationModeTalk:
 		_animationState = 1;
-		_var6 = 0;
+		_varChooseIdleAnimation = 0;
 		_animationFrame = 0;
 		break;
 
@@ -387,7 +388,7 @@ bool AIScriptHasan::ChangeAnimationMode(int mode) {
 		// fall through
 	case 16:
 		_animationState = 6;
-		_var6 = 0;
+		_varChooseIdleAnimation = 0;
 		_animationFrame = 0;
 		break;
 
diff --git a/engines/bladerunner/script/ai/howie_lee.cpp b/engines/bladerunner/script/ai/howie_lee.cpp
index 66fee5c98a..d3c9008075 100644
--- a/engines/bladerunner/script/ai/howie_lee.cpp
+++ b/engines/bladerunner/script/ai/howie_lee.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 AIScriptHowieLee::AIScriptHowieLee(BladeRunnerEngine *vm) : AIScriptBase(vm) {
-	var_45DFB8 = 0;
+	_varIdleStatesToggle = 0;
 }
 
 void AIScriptHowieLee::Initialize() {
@@ -33,7 +33,7 @@ void AIScriptHowieLee::Initialize() {
 	_animationState = 0;
 	_animationStateNext = 0;
 	_animationNext = 0;
-	var_45DFB8 = false;
+	_varIdleStatesToggle = 0;
 
 	Actor_Put_In_Set(kActorHowieLee, kSetCT01_CT12);
 	Actor_Set_At_Waypoint(kActorHowieLee, 67, 605); // in kSetCT01_CT12
@@ -331,45 +331,47 @@ bool AIScriptHowieLee::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
 		++_animationFrame;
-		if (var_45DFB8) {
-			*animation = 673;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(673)) {
+		// _varIdleStatesToggle can be 0 or 1.
+		// Determines whether kModelAnimationHowieLeePutsIngredientsCooking or kModelAnimationHowieLeeGathersOfTidiesUp is used.
+		if (_varIdleStatesToggle > 0) {
+			*animation = kModelAnimationHowieLeePutsIngredientsCooking;
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeePutsIngredientsCooking)) {
 				_animationFrame = 0;
 				if (Random_Query(0, 2) > 0) {
-					var_45DFB8 ^= 1;
+					_varIdleStatesToggle ^= 1;
 				}
 			}
 		} else {
-			*animation = 671;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(671)) {
+			*animation = kModelAnimationHowieLeeGathersOfTidiesUp;
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeeGathersOfTidiesUp)) {
 				_animationFrame = 0;
 				if (Random_Query(0, 1) > 0) {
-					var_45DFB8 ^= 1;
+					_varIdleStatesToggle ^= 1;
 				}
 			}
 		}
 		break;
 
 	case 1:
-		*animation = 674;
+		*animation = kModelAnimationHowieLeeLongGestureGive;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(674)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeeLongGestureGive)) {
 			_animationFrame = 0;
 			if (_animationState < 3 || _animationState > 8) {
 				_animationState = 0;
 				_animationFrame = 0;
-				var_45DFB8 = Random_Query(0, 1);
+				_varIdleStatesToggle = Random_Query(0, 1);
 			} else {
 				Game_Flag_Set(kFlagHowieLeeAnimation1);
 			}
-			*animation = 673;
+			*animation = kModelAnimationHowieLeePutsIngredientsCooking;
 		}
 		break;
 
 	case 2:
-		*animation = 672;
+		*animation = kModelAnimationHowieLeeWalking;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(672)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeeWalking)) {
 			_animationFrame = 0;
 		}
 		break;
@@ -379,69 +381,70 @@ bool AIScriptHowieLee::UpdateAnimation(int *animation, int *frame) {
 			Game_Flag_Reset(kFlagHowieLeeAnimation1);
 			_animationState = 0;
 			_animationFrame = 0;
-			var_45DFB8 = Random_Query(0, 1);
-			*animation = 671;
+			_varIdleStatesToggle = Random_Query(0, 1);
+			*animation = kModelAnimationHowieLeeGathersOfTidiesUp;
 		} else {
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(676)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeeCalmTalk)) {
 				_animationFrame = 0;
 			}
-			*animation = 676;
+			*animation = kModelAnimationHowieLeeCalmTalk;
 		}
 		break;
 
 	case 4:
-		*animation = 677;
+		*animation = kModelAnimationHowieLeeExplainTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(677)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeeExplainTalk)) {
 			_animationState = 3;
 			_animationFrame = 0;
-			*animation = 676;
+			*animation = kModelAnimationHowieLeeCalmTalk;
 		}
 		break;
 
 	case 5:
-		*animation = 678;
+		*animation = kModelAnimationHowieLeeUpsetTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(678)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeeUpsetTalk)) {
 			_animationState = 3;
 			_animationFrame = 0;
-			*animation = 676;
+			*animation = kModelAnimationHowieLeeCalmTalk;
 		}
 		break;
 
 	case 6:
-		*animation = 679;
+		*animation = kModelAnimationHowieLeeAngryTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(679)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeeAngryTalk)) {
 			_animationState = 3;
 			_animationFrame = 0;
-			*animation = 676;
+			*animation = kModelAnimationHowieLeeCalmTalk;
 		}
 		break;
 
 	case 7:
-		*animation = 680;
+		*animation = kModelAnimationHowieLeeNoTimeTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(680)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeeNoTimeTalk)) {
 			_animationState = 3;
 			_animationFrame = 0;
-			*animation = 676;
+			*animation = kModelAnimationHowieLeeCalmTalk;
 		}
 		break;
 
 	case 8:
-		*animation = 681;
+		*animation = kModelAnimationHowieLeeElaborateMovementTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(681)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationHowieLeeElaborateMovementTalk)) {
 			_animationState = 3;
 			_animationFrame = 0;
-			*animation = 676;
+			*animation = kModelAnimationHowieLeeCalmTalk;
 		}
 		break;
 
 	default:
-		*animation = 399;
+		// Dummy placeholder, kModelAnimationZubenWalking (399) is a Zuben animation
+		*animation = kModelAnimationZubenWalking;
 		break;
 	}
 	*frame = _animationFrame;
@@ -454,7 +457,7 @@ bool AIScriptHowieLee::ChangeAnimationMode(int mode) {
 		if (_animationState < 3 || _animationState > 8) {
 			_animationState = 0;
 			_animationFrame = 0;
-			var_45DFB8 = Random_Query(0, 1);
+			_varIdleStatesToggle = Random_Query(0, 1);
 		} else {
 			Game_Flag_Set(kFlagHowieLeeAnimation1);
 		}
diff --git a/engines/bladerunner/script/ai/insect_dealer.cpp b/engines/bladerunner/script/ai/insect_dealer.cpp
index 7d4a9628cf..05614bca54 100644
--- a/engines/bladerunner/script/ai/insect_dealer.cpp
+++ b/engines/bladerunner/script/ai/insect_dealer.cpp
@@ -28,7 +28,7 @@ AIScriptInsectDealer::AIScriptInsectDealer(BladeRunnerEngine *vm) : AIScriptBase
 	_resumeIdleAfterFramesetCompletesFlag = false;
 	_state = 0;
 	_frameDelta = 0;
-	_var2 = 0;
+	_var2 = 0; // is set on some occasions but is never checked. Unused.
 	_counter = 0;
 }
 
diff --git a/engines/bladerunner/script/ai/isabella.cpp b/engines/bladerunner/script/ai/isabella.cpp
index 2bda01157f..b24ee585b4 100644
--- a/engines/bladerunner/script/ai/isabella.cpp
+++ b/engines/bladerunner/script/ai/isabella.cpp
@@ -26,8 +26,9 @@ namespace BladeRunner {
 
 AIScriptIsabella::AIScriptIsabella(BladeRunnerEngine *vm) : AIScriptBase(vm) {
 	_var1 = 0;
-	_var2 = 0;
-	_var3 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 
+	_varChooseIdleAnimation = 0;
 	_var4 = 1;
 }
 
@@ -38,8 +39,8 @@ void AIScriptIsabella::Initialize() {
 	_animationNext = 0;
 
 	_var1 = 0;
-	_var2 = 0;
-	_var3 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
+	_varChooseIdleAnimation = 0;
 	_var4 = 1;
 }
 
@@ -104,52 +105,52 @@ bool AIScriptIsabella::UpdateAnimation(int *animation, int *frame) {
 
 	switch (_animationState) {
 	case 0:
-		if (_var3 == 1) {
-			*animation = 839;
+		if (_varChooseIdleAnimation == 1) {
+			*animation = kModelIsabellaPutsSpicesInSoup;
 			++_animationFrame;
-			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(839) - 1) {
+			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaPutsSpicesInSoup) - 1) {
 				_animationFrame = 0;
 			}
 			if (_animationFrame < 0) {
-				_animationFrame = Slice_Animation_Query_Number_Of_Frames(839) - 1;
+				_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaPutsSpicesInSoup) - 1;
 			}
 			if (_animationFrame == 0) {
-				_var3 = 0;
+				_varChooseIdleAnimation = 0;
 				_var4 = 2 * Random_Query(0, 1) - 1;
 			}
-		} else if (_var3 == 0) {
-			*animation = 838;
-			if (_var2) {
-				--_var2;
-				if (_var2 == 0) {
+		} else if (_varChooseIdleAnimation == 0) {
+			*animation = kModelIsabellaIdle;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
+				if (_varNumOfTimesToHoldCurrentFrame == 0) {
 					_var4 = 2 * Random_Query(0, 1) - 1;
 				}
 			} else {
 				_animationFrame += _var4;
-				if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(838) - 1) {
+				if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaIdle) - 1) {
 					_animationFrame = 0;
 				}
 				if (_animationFrame < 0) {
-					_animationFrame = Slice_Animation_Query_Number_Of_Frames(838) - 1;
+					_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaIdle) - 1;
 				}
 				if (_animationFrame == 1) {
 					if (!Random_Query(0, 1)) {
-						_var2 = Random_Query(4, 8);
+						_varNumOfTimesToHoldCurrentFrame = Random_Query(4, 8);
 					}
 				}
 				if (_animationFrame == 11) {
 					if (!Random_Query(0, 1)) {
-						_var2 = Random_Query(4, 8);
+						_varNumOfTimesToHoldCurrentFrame = Random_Query(4, 8);
 					}
 				}
 				if (_animationFrame == 16) {
 					if (!Random_Query(0, 1)) {
-						_var2 = Random_Query(4, 8);
+						_varNumOfTimesToHoldCurrentFrame = Random_Query(4, 8);
 					}
 				}
 				if (_animationFrame == 0) {
 					if (!Random_Query(0, 2)) {
-						_var3 = 1;
+						_varChooseIdleAnimation = 1;
 					}
 				}
 			}
@@ -157,37 +158,37 @@ bool AIScriptIsabella::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 1:
-		*animation = 840;
+		*animation = kModelIsabellaGestureGiveOrTake;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(840) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaGestureGiveOrTake) - 1) {
 			flag = true;
 			_animationFrame = 0;
 		} else {
 			if (_animationFrame < 0) {
-				_animationFrame = Slice_Animation_Query_Number_Of_Frames(840) - 1;
+				_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaGestureGiveOrTake) - 1;
 				flag = true;
 			} else {
 				flag = false;
 			}
 		}
 		if (flag) {
-			*animation = 838;
+			*animation = kModelIsabellaIdle;
 			_animationState = 0;
 		}
 		break;
 
 	case 2:
-		*animation = 841;
+		*animation = kModelIsabellaCalmTalk;
 		if (_animationFrame < 2 && _var1) {
 			_animationFrame = 0;
 			_animationState = 0;
 		} else {
 			++_animationFrame;
-			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(841) - 1) {
+			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaCalmTalk) - 1) {
 				_animationFrame = 0;
 			} else {
 				if (_animationFrame < 0) {
-					_animationFrame = Slice_Animation_Query_Number_Of_Frames(841) - 1;
+					_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaCalmTalk) - 1;
 				}
 			}
 			if (_animationFrame == 0) {
@@ -197,132 +198,132 @@ bool AIScriptIsabella::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 3:
-		*animation = 842;
+		*animation = kModelIsabellaSuggestTalk;
 		if (_animationFrame < 2 && _var1) {
 			_animationFrame = 0;
 			_animationState = 0;
 		} else {
 			++_animationFrame;
-			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(842) - 1) {
+			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaSuggestTalk) - 1) {
 				_animationFrame = 0;
 			} else {
 				if (_animationFrame < 0) {
-					_animationFrame = Slice_Animation_Query_Number_Of_Frames(842) - 1;
+					_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaSuggestTalk) - 1;
 				}
 			}
 			if (_animationFrame == 0) {
-				*animation = 841;
+				*animation = kModelIsabellaCalmTalk;
 				_animationState = 2;
 			}
 		}
 		break;
 
 	case 4:
-		*animation = 843;
+		*animation = kModelIsabellaProtestTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(843) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaProtestTalk) - 1) {
 			flag = true;
 			_animationFrame = 0;
 		} else {
 			if (_animationFrame < 0) {
-				_animationFrame = Slice_Animation_Query_Number_Of_Frames(843) - 1;
+				_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaProtestTalk) - 1;
 				flag = true;
 			} else {
 				flag = false;
 			}
 		}
 		if (flag) {
-			*animation = 841;
+			*animation = kModelIsabellaCalmTalk;
 			_animationState = 2;
 		}
 		break;
 
 	case 5:
-		*animation = 844;
+		*animation = kModelIsabellaMoreCalmTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(844) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaMoreCalmTalk) - 1) {
 			flag = true;
 			_animationFrame = 0;
 		} else {
 			if (_animationFrame < 0) {
-				_animationFrame = Slice_Animation_Query_Number_Of_Frames(844) - 1;
+				_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaMoreCalmTalk) - 1;
 				flag = true;
 			} else {
 				flag = false;
 			}
 		}
 		if (flag) {
-			*animation = 841;
+			*animation = kModelIsabellaCalmTalk;
 			_animationState = 2;
 		}
 		break;
 
 	case 6:
-		*animation = 845;
+		*animation = kModelIsabellaLaughTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(845) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaLaughTalk) - 1) {
 			flag = true;
 			_animationFrame = 0;
 		} else {
 			if (_animationFrame < 0) {
-				_animationFrame = Slice_Animation_Query_Number_Of_Frames(845) - 1;
+				_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaLaughTalk) - 1;
 				flag = true;
 			} else {
 				flag = false;
 			}
 		}
 		if (flag) {
-			*animation = 841;
+			*animation = kModelIsabellaCalmTalk;
 			_animationState = 2;
 		}
 		break;
 
 	case 7:
-		*animation = 845;
+		*animation = kModelIsabellaLaughTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(845) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaLaughTalk) - 1) {
 			flag = true;
 			_animationFrame = 0;
 		} else {
 			if (_animationFrame < 0) {
-				_animationFrame = Slice_Animation_Query_Number_Of_Frames(845) - 1;
+				_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaLaughTalk) - 1;
 				flag = true;
 			} else {
 				flag = false;
 			}
 		}
 		if (flag) {
-			*animation = 841;
+			*animation = kModelIsabellaCalmTalk;
 			_animationState = 2;
 		}
 		break;
 
 	case 8:
-		*animation = 844;
+		*animation = kModelIsabellaMoreCalmTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(844) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelIsabellaMoreCalmTalk) - 1) {
 			flag = true;
 			_animationFrame = 0;
 		} else {
 			if (_animationFrame < 0) {
-				_animationFrame = Slice_Animation_Query_Number_Of_Frames(844) - 1;
+				_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelIsabellaMoreCalmTalk) - 1;
 				flag = true;
 			} else {
 				flag = false;
 			}
 		}
 		if (flag) {
-			*animation = 841;
+			*animation = kModelIsabellaCalmTalk;
 			_animationState = 2;
 		}
 		break;
 
 	case 9:
-		if (!_var3) {
-			*animation = 838;
+		if (_varChooseIdleAnimation == 0) {
+			*animation = kModelIsabellaIdle;
 		}
-		if (_var3 == 1) {
-			*animation = 839;
+		if (_varChooseIdleAnimation == 1) {
+			*animation = kModelIsabellaPutsSpicesInSoup;
 		}
 		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame += 2;
@@ -374,7 +375,7 @@ bool AIScriptIsabella::ChangeAnimationMode(int mode) {
 		if (_animationState < 2 || _animationState > 8) {
 			_animationState = 9;
 			_animationStateNext = 2;
-			_animationNext = 841;
+			_animationNext = kModelIsabellaCalmTalk;
 			_var1 = 0;
 		}
 		break;
@@ -385,7 +386,7 @@ bool AIScriptIsabella::ChangeAnimationMode(int mode) {
 		if (_animationState < 2 || _animationState > 8) {
 			_animationState = 9;
 			_animationStateNext = 3;
-			_animationNext = 842;
+			_animationNext = kModelIsabellaSuggestTalk;
 			_var1 = 0;
 		}
 		break;
@@ -396,7 +397,7 @@ bool AIScriptIsabella::ChangeAnimationMode(int mode) {
 		if (_animationState < 2 || _animationState > 8) {
 			_animationState = 9;
 			_animationStateNext = 5;
-			_animationNext = 844;
+			_animationNext = kModelIsabellaMoreCalmTalk;
 			_var1 = 0;
 		}
 		break;
@@ -405,7 +406,7 @@ bool AIScriptIsabella::ChangeAnimationMode(int mode) {
 		if (_animationState < 2 || _animationState > 8) {
 			_animationState = 9;
 			_animationStateNext = 4;
-			_animationNext = 843;
+			_animationNext = kModelIsabellaProtestTalk;
 			_var1 = 0;
 		}
 		break;
@@ -414,7 +415,7 @@ bool AIScriptIsabella::ChangeAnimationMode(int mode) {
 		if (_animationState < 2 || _animationState > 8) {
 			_animationState = 9;
 			_animationStateNext = 6;
-			_animationNext = 845;
+			_animationNext = kModelIsabellaLaughTalk;
 			_var1 = 0;
 		}
 		break;
@@ -423,7 +424,7 @@ bool AIScriptIsabella::ChangeAnimationMode(int mode) {
 		if (_animationState < 2 || _animationState > 8) {
 			_animationState = 9;
 			_animationStateNext = 7;
-			_animationNext = 845;
+			_animationNext = kModelIsabellaLaughTalk;
 			_var1 = 0;
 		}
 		break;
@@ -432,7 +433,7 @@ bool AIScriptIsabella::ChangeAnimationMode(int mode) {
 		if (_animationState < 2 || _animationState > 8) {
 			_animationState = 9;
 			_animationStateNext = 8;
-			_animationNext = 844;
+			_animationNext = kModelIsabellaMoreCalmTalk;
 			_var1 = 0;
 		}
 		break;
diff --git a/engines/bladerunner/script/ai/izo.cpp b/engines/bladerunner/script/ai/izo.cpp
index 0bd5ec8a8b..3f848b384f 100644
--- a/engines/bladerunner/script/ai/izo.cpp
+++ b/engines/bladerunner/script/ai/izo.cpp
@@ -28,8 +28,9 @@ AIScriptIzo::AIScriptIzo(BladeRunnerEngine *vm) : AIScriptBase(vm) {
 	_resumeIdleAfterFramesetCompletesFlag = false;
 	_var1 = 6;
 	_var2 = 1;
-	_var3 = 0;
-	_var4 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1
+	_varChooseIdleAnimation = 0;
 }
 
 void AIScriptIzo::Initialize() {
@@ -41,8 +42,8 @@ void AIScriptIzo::Initialize() {
 	_resumeIdleAfterFramesetCompletesFlag = false;
 	_var1 = 6;
 	_var2 = 1;
-	_var3 = 0;
-	_var4 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
+	_varChooseIdleAnimation = 0;
 
 	Actor_Set_Goal_Number(kActorIzo, 0);
 	Actor_Put_In_Set(kActorIzo, kSetHC01_HC02_HC03_HC04);
@@ -523,33 +524,33 @@ bool AIScriptIzo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		if (_var4 == 1) {
-			*animation = 298;
+		if (_varChooseIdleAnimation == 1) {
+			*animation = kModelAnimationIzoAwkwardPlayWithHands;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(298)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoAwkwardPlayWithHands)) {
 				_animationFrame = 0;
-				_var4 = 0;
+				_varChooseIdleAnimation = 0;
 			}
-		} else if (_var4 == 0) {
-			*animation = 297;
-			if (_var3) {
-				--_var3;
+		} else if (_varChooseIdleAnimation == 0) {
+			*animation = kModelAnimationIzoIdle;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else {
 				_animationFrame += _var2;
 				if (_animationFrame < 0) {
-					_animationFrame = Slice_Animation_Query_Number_Of_Frames(297) - 1;
-				} else if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(297)) {
+					_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoIdle) - 1;
+				} else if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoIdle)) {
 					_animationFrame = 0;
 				}
 				--_var1;
 				if (_var1 == 0) {
 					_var2 = 2 * Random_Query(0, 1) - 1;
 					_var1 = Random_Query(6, 14);
-					_var3 = Random_Query(0, 2);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(0, 2);
 				}
 				if (_animationFrame == 0) {
 					if (!Random_Query(0, 5)) {
-						_var4 = 1;
+						_varChooseIdleAnimation = 1;
 					}
 				}
 			}
@@ -558,14 +559,14 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 
 	case 1:
 		if (_animationFrame <= 2 && _resumeIdleAfterFramesetCompletesFlag) {
-			*animation = 297;
+			*animation = kModelAnimationIzoIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		} else {
-			*animation = 299;
+			*animation = kModelAnimationIzoCalmTalk;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(299)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoCalmTalk)) {
 				_animationFrame = 0;
 			}
 		}
@@ -582,46 +583,50 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 	case 6:
 		// fall through
 	case 7:
-		*animation = _animationState + 298;
+		// TODO why calculate current animation by adding animationState to kModelAnimationIzoAwkwardPlayWithHands (298)?
+		//      seems prone to error.
+		//      This (based on the switch cases), results in "talking" animation framesets 300 - 305, 
+		//      excepting the kModelAnimationIzoCalmTalk (299) which is used as the default or "ending" talking animation.
+		*animation = _animationState + kModelAnimationIzoAwkwardPlayWithHands;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 1;
-			*animation = 299;
+			*animation = kModelAnimationIzoCalmTalk;
 		}
 		break;
 
 	case 8:
-		*animation = 277;
+		*animation = kModelAnimationIzoCombatIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(277)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoCombatIdle)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 9:
-		*animation = 287;
+		*animation = kModelAnimationIzoCombatUnseatheSword;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(287)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoCombatUnseatheSword)) {
 			_animationFrame = 0;
 			_animationState = 8;
-			*animation = 277;
+			*animation = kModelAnimationIzoCombatIdle;
 		}
 		break;
 
 	case 10:
-		*animation = 288;
+		*animation = kModelAnimationIzoCombatSeatheSword;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(288)) {
-			*animation = 297;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoCombatSeatheSword)) {
+			*animation = kModelAnimationIzoIdle;
 			_animationFrame = 0;
 			_animationState = 0;
-			_var4 = 0;
+			_varChooseIdleAnimation = 0;
 		}
 		break;
 
 	case 11:
-		*animation = 289;
+		*animation = kModelAnimationIzoCombatSwordAttack;
 		++_animationFrame;
 		if (_animationFrame == 6) {
 			int snd;
@@ -644,7 +649,7 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 8;
-			*animation = 277;
+			*animation = kModelAnimationIzoCombatIdle;
 			Actor_Change_Animation_Mode(kActorIzo, kAnimationModeCombatIdle);
 		}
 		break;
@@ -657,22 +662,22 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 		// fall through
 	case 17:
 		if (_animationState == 12) {
-			*animation = 278;
+			*animation = kModelAnimationIzoCombatTurnRight;
 		}
 		if (_animationState == 13) {
-			*animation = 279;
+			*animation = kModelAnimationIzoCombatTurnLeft;
 		}
 		if (_animationState == 16) {
-			*animation = 280;
+			*animation = kModelAnimationIzoCombatGotHitRight;
 		}
 		if (_animationState == 17) {
-			*animation = 281;
+			*animation = kModelAnimationIzoCombatGotHitLeft;
 		}
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 8;
-			*animation = 277;
+			*animation = kModelAnimationIzoCombatIdle;
 			Actor_Change_Animation_Mode(kActorIzo, kAnimationModeCombatIdle);
 		}
 		break;
@@ -680,26 +685,26 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 	case 14:
 		// fall through
 	case 15:
-		// TODO A bug? Shouldn't this be _animationState + 280?
-		*animation = _animationFrame + 280;
+		// TODO A bug? Shouldn't this be _animationState + kModelAnimationIzoCombatGotHitRight?
+		*animation = _animationFrame + kModelAnimationIzoCombatGotHitRight;
 		++_animationFrame;
 		if (_animationFrame >= 2
 		 && (Actor_Query_Goal_Number(kActorIzo) == kGoalIzoRC03Walk
 		  || Actor_Query_Goal_Number(kActorIzo) == kGoalIzoRC03Run
 		 )
 		) {
-			*animation = 297;
+			*animation = kModelAnimationIzoIdle;
 			_animationFrame = 0;
 			_animationState = 0;
-			_var4 = 0;
+			_varChooseIdleAnimation = 0;
 			Actor_Change_Animation_Mode(kActorIzo, kAnimationModeIdle);
 			Actor_Set_Goal_Number(kActorIzo, kGoalIzoRC03Run);
 		} else {
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
-				*animation = 297;
+				*animation = kModelAnimationIzoIdle;
 				_animationFrame = 0;
 				_animationState = 0;
-				_var4 = 0;
+				_varChooseIdleAnimation = 0;
 				Actor_Change_Animation_Mode(kActorIzo, kAnimationModeIdle);
 			}
 		}
@@ -709,10 +714,10 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 		// fall through
 	case 19:
 		if (_animationState == 18) {
-			*animation = 284;
+			*animation = kModelAnimationIzoCombatShotDead;
 		}
 		if (_animationState == 19) {
-			*animation = 296;
+			*animation = kModelAnimationIzoShotDead;
 		}
 		++_animationFrame;
 		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(*animation) - 1) {
@@ -741,34 +746,34 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 		// fall through
 	case 29:
 		if (_animationState == 20) {
-			*animation = 290;
+			*animation = kModelAnimationIzoWalking;
 		}
 		if (_animationState == 21) {
-			*animation = 291;
+			*animation = kModelAnimationIzoRunning;
 		}
 		if (_animationState == 22) {
-			*animation = 282;
+			*animation = kModelAnimationIzoCombatWalking;
 		}
 		if (_animationState == 23) {
-			*animation = 283;
+			*animation = kModelAnimationIzoCombatRunning;
 		}
 		if (_animationState == 24) {
-			*animation = 285;
+			*animation = kModelAnimationIzoCombatClimbStairsUp;
 		}
 		if (_animationState == 25) {
-			*animation = 286;
+			*animation = kModelAnimationIzoCombatClimbStairsDown;
 		}
 		if (_animationState == 26) {
-			*animation = 292;
+			*animation = kModelAnimationIzoClimbStairsUp;
 		}
 		if (_animationState == 27) {
-			*animation = 293;
+			*animation = kModelAnimationIzoClimbStairsDown;
 		}
 		if (_animationState == 29) {
-			*animation = 307;
+			*animation = kModelAnimationIzoClimbLadderUp;
 		}
 		if (_animationState == 28) {
-			*animation = 306;
+			*animation = kModelAnimationIzoClimbLadderDown;
 		}
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
@@ -777,25 +782,25 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 30:
-		*animation = 296;
-		_animationFrame = Slice_Animation_Query_Number_Of_Frames(296) - 1;
+		*animation = kModelAnimationIzoShotDead;
+		_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoShotDead) - 1;
 		break;
 
 	case 31:
-		*animation = 308;
+		*animation = kModelAnimationIzoHoldingCameraIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(308)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoHoldingCameraIdle)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 32:
-		*animation = 309;
+		*animation = kModelAnimationIzoPicksCameraFromShop;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(309)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoPicksCameraFromShop)) {
 			_animationFrame = 0;
 			_animationState = 31;
-			*animation = 308;
+			*animation = kModelAnimationIzoHoldingCameraIdle;
 		}
 		break;
 
@@ -803,26 +808,26 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
 			_resumeIdleAfterFramesetCompletesFlag = false;
 			_animationState = 31;
-			*animation = 308;
+			*animation = kModelAnimationIzoHoldingCameraIdle;
 		} else {
-			*animation = 310;
+			*animation = kModelAnimationIzoHoldingCameraTalk;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(310)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoHoldingCameraTalk)) {
 				_animationFrame = 0;
 			}
 		}
 		break;
 
 	case 34:
-		*animation = 311;
+		*animation = kModelAnimationIzoHoldingCameraUsesFlash;
 		++_animationFrame;
 		if (_animationFrame == 6) {
 			Scene_Loop_Set_Default(0); // // HC01 - MainLoop
 			Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true); // HC01 - IzoFlashLoop
 			Player_Set_Combat_Mode(true);
 		}
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(311)) {
-			*animation = 297;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoHoldingCameraUsesFlash)) {
+			*animation = kModelAnimationIzoIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Game_Flag_Set(kFlagUnused407);
@@ -832,15 +837,18 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 35:
-		if (!_var4) {
-			*animation = 297;
+		if (_varChooseIdleAnimation == 0) {
+			*animation = kModelAnimationIzoIdle;
 		}
-		if (_var4 == 1) {
-			*animation = 298;
+		if (_varChooseIdleAnimation == 1) {
+			*animation = kModelAnimationIzoAwkwardPlayWithHands;
 		}
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(297)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoIdle)) {
+			// TODO a bug? Adding 3 to animationFrame when it is >= the num of frames of the frameset
+			//             will still keep it >= the num of frame of the frameset. 
+			//             so why check again in the if clause below?
 			_animationFrame += 3;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(297)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationIzoIdle)) {
 				_animationFrame = 0;
 				*animation = _animationNext;
 				_animationState = _animationStateNext;
@@ -936,7 +944,7 @@ bool AIScriptIzo::ChangeAnimationMode(int mode) {
 			} else if (_animationState <= 0 || _animationState > 7) {
 				_animationState = 35;
 				_animationStateNext = 1;
-				_animationNext = 299;
+				_animationNext = kModelAnimationIzoCalmTalk;
 			}
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		}
@@ -985,7 +993,7 @@ bool AIScriptIzo::ChangeAnimationMode(int mode) {
 			if (_animationState <= 0 || _animationState > 7) {
 				_animationState = 35;
 				_animationStateNext = 1;
-				_animationNext = 300;
+				_animationNext = kModelAnimationIzoMoreCalmTalk;
 			}
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		}
@@ -998,7 +1006,7 @@ bool AIScriptIzo::ChangeAnimationMode(int mode) {
 			if (_animationState <= 0 || _animationState > 7) {
 				_animationState = 35;
 				_animationStateNext = 1;
-				_animationNext = 302;
+				_animationNext = kModelAnimationIzoHeadNodsAgreeingTalk;
 			}
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		}
@@ -1009,7 +1017,7 @@ bool AIScriptIzo::ChangeAnimationMode(int mode) {
 			if (_animationState <= 0 || _animationState > 7) {
 				_animationState = 35;
 				_animationStateNext = 1;
-				_animationNext = 301;
+				_animationNext = kModelAnimationIzoExplainingTalk;
 			}
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		}
@@ -1020,7 +1028,7 @@ bool AIScriptIzo::ChangeAnimationMode(int mode) {
 			if (_animationState <= 0 || _animationState > 7) {
 				_animationState = 35;
 				_animationStateNext = 1;
-				_animationNext = 303;
+				_animationNext = kModelAnimationIzoOffensiveTalk;
 			}
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		}
@@ -1031,7 +1039,7 @@ bool AIScriptIzo::ChangeAnimationMode(int mode) {
 			if (_animationState <= 0 || _animationState > 7) {
 				_animationState = 35;
 				_animationStateNext = 1;
-				_animationNext = 304;
+				_animationNext = kModelAnimationIzoHeadNodsDisagreeingTalk;
 			}
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		}
@@ -1042,7 +1050,7 @@ bool AIScriptIzo::ChangeAnimationMode(int mode) {
 			if (_animationState <= 0 || _animationState > 7) {
 				_animationState = 35;
 				_animationStateNext = 1;
-				_animationNext = 305;
+				_animationNext = kModelAnimationIzoUnderstandingTalk;
 			}
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		}
diff --git a/engines/bladerunner/script/ai/leon.cpp b/engines/bladerunner/script/ai/leon.cpp
index bb0ac8ed6e..9cdbc65eef 100644
--- a/engines/bladerunner/script/ai/leon.cpp
+++ b/engines/bladerunner/script/ai/leon.cpp
@@ -271,101 +271,101 @@ bool AIScriptLeon::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptLeon::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		*animation = 847;
+		*animation = kModelLeonIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(847)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonIdle)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 1:
-		*animation = 846;
+		*animation = kModelLeonWalking;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(846)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonWalking)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 2:
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
-			*animation = 847;
+			*animation = kModelLeonIdle;
 			_animationState = 0;
 		} else {
-			*animation = 850;
+			*animation = kModelLeonCalmTalk;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(850)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonCalmTalk)) {
 				_animationFrame = 0;
 			}
 		}
 		break;
 
 	case 3:
-		*animation = 851;
+		*animation = kModelLeonComplainTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(851)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonComplainTalk)) {
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 850;
+			*animation = kModelLeonCalmTalk;
 		}
 		break;
 
 	case 4:
-		*animation = 852;
+		*animation = kModelLeonAwkwardTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(852)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonAwkwardTalk)) {
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 850;
+			*animation = kModelLeonCalmTalk;
 		}
 		break;
 
 	case 5:
-		*animation = 853;
+		*animation = kModelLeonDenyTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(853)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonDenyTalk)) {
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 850;
+			*animation = kModelLeonCalmTalk;
 		}
 		break;
 
 	case 6:
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
 			Actor_Change_Animation_Mode(kActorLeon, 72);
-			*animation = 848;
+			*animation = kModelLeonGrabHoldHigh;
 		} else {
-			*animation = 854;
+			*animation = kModelLeonGrabTalk;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(854)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonGrabTalk)) {
 				_animationFrame = 0;
 			}
 		}
 		break;
 
 	case 7:
-		*animation = 855;
+		*animation = kModelLeonGrabAndGutPunchTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(855)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonGrabAndGutPunchTalk)) {
 			_animationFrame = 0;
 			_animationState = 6;
-			*animation = 854;
+			*animation = kModelLeonGrabTalk;
 		}
 		break;
 
 	case 8:
-		*animation = 854;
+		*animation = kModelLeonGrabTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(854)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonGrabTalk)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 9:
-		*animation = 849;
+		*animation = kModelLeonGrabLetsGo;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(849)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelLeonGrabLetsGo)) {
 			Actor_Change_Animation_Mode(kActorLeon, kAnimationModeIdle);
-			*animation = 847;
+			*animation = kModelLeonIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			if (Actor_Query_Goal_Number(kActorLeon) == kGoalLeonReleaseDeskClerk) {
@@ -375,7 +375,7 @@ bool AIScriptLeon::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 10:
-		*animation = 856;
+		*animation = kModelLeonPunchAttack;
 		++_animationFrame;
 		if (_animationFrame == 6) {
 			Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
@@ -383,7 +383,7 @@ bool AIScriptLeon::UpdateAnimation(int *animation, int *frame) {
 		}
 
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
-			*animation = 847;
+			*animation = kModelLeonIdle;
 			_animationFrame = 0;
 			Actor_Change_Animation_Mode(kActorLeon, kAnimationModeIdle);
 		}
diff --git a/engines/bladerunner/script/ai/luther.cpp b/engines/bladerunner/script/ai/luther.cpp
index 2e86d8b426..d16346d069 100644
--- a/engines/bladerunner/script/ai/luther.cpp
+++ b/engines/bladerunner/script/ai/luther.cpp
@@ -246,7 +246,7 @@ bool AIScriptLuther::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		*animation = 346;
+		*animation = kModelAnimationTwinsSitIdle;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
@@ -254,10 +254,10 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 1:
-		*animation = 348;
+		*animation = kModelAnimationTwinsSitLancePutsSomethingToTheLeft;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
-			*animation = 346;
+			*animation = kModelAnimationTwinsSitIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorLuther, kAnimationModeIdle);
@@ -266,10 +266,10 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
 
 	case 2:
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
-			*animation = 346;
+			*animation = kModelAnimationTwinsSitIdle;
 			_animationState = 0;
 		} else {
-			*animation = 349;
+			*animation = kModelAnimationTwinsSitLanceShortCalmTalk;
 			++_animationFrame;
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 				_animationFrame = 0;
@@ -278,70 +278,70 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 3:
-		*animation = 350;
+		*animation = kModelAnimationTwinsSitLanceLongerCalmTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 349;
+			*animation = kModelAnimationTwinsSitLanceShortCalmTalk;
 		}
 		break;
 
 	case 4:
-		*animation = 351;
+		*animation = kModelAnimationTwinsSitLutherCalmTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 349;
+			*animation = kModelAnimationTwinsSitLanceShortCalmTalk;
 		}
 		break;
 
 	case 5:
-		*animation = 352;
+		*animation = kModelAnimationTwinsSitLutherMoreCalmTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 349;
+			*animation = kModelAnimationTwinsSitLanceShortCalmTalk;
 		}
 		break;
 
 	case 6:
-		*animation = 353;
+		*animation = kModelAnimationTwinsSitLanceMoreCalmTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 349;
+			*animation = kModelAnimationTwinsSitLanceShortCalmTalk;
 		}
 		break;
 
 	case 7:
-		*animation = 354;
+		*animation = kModelAnimationTwinsSitLutherProtestTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 349;
+			*animation = kModelAnimationTwinsSitLanceShortCalmTalk;
 		}
 		break;
 
 	case 8:
-		*animation = 355;
+		*animation = kModelAnimationTwinsSitLutherGoAheadTalk;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 2;
-			*animation = 349;
+			*animation = kModelAnimationTwinsSitLanceShortCalmTalk;
 		}
 		break;
 
 	case 9:
-		*animation = 356;
+		*animation = kModelAnimationTwinsSitLutherHitsOrFeedsLance;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
-			*animation = 346;
+			*animation = kModelAnimationTwinsSitIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorLuther, kAnimationModeIdle);
@@ -349,24 +349,24 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 10:
-		*animation = 357;
+		*animation = kModelAnimationTwinsSitDropForwards;
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			Actor_Change_Animation_Mode(kActorLuther, 50);
-			*animation = 358;
+			*animation = kModelAnimationTwinsSitAlmostDeadLutherPushesButton;
 			_animationFrame = 0;
 		}
 		break;
 
 	case 11:
-		*animation = 358;
+		*animation = kModelAnimationTwinsSitAlmostDeadLutherPushesButton;
 		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(*animation) - 1) {
 			++_animationFrame;
 		}
 		break;
 
 	case 12:
-		*animation = 359;
+		*animation = kModelAnimationTwinsSitDieCompletely;
 		if (_animationFrame == 12) {
 			Ambient_Sounds_Play_Sound(kSfxHEADHIT2, 59, 0, 0, 20);
 		}
diff --git a/engines/bladerunner/script/ai/maggie.cpp b/engines/bladerunner/script/ai/maggie.cpp
index 847c86a63b..4d25116286 100644
--- a/engines/bladerunner/script/ai/maggie.cpp
+++ b/engines/bladerunner/script/ai/maggie.cpp
@@ -60,9 +60,9 @@ void AIScriptMaggie::Initialize() {
 	_animationNext = 0;
 	var_45F3F8 = 0;
 	var_45F3FC = 0;
-	var_45F400 = 0;
-	var_45F404 = 0;
-	var_45F408 = 0;
+	var_45F400 = 0; // only assigned to 0. Never checked. Unused.
+	var_45F404 = 0; // only assigned to 0. Never checked. Unused.
+	var_45F408 = 0; // only assigned to 0. Never checked. Unused.
 	Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02Default);
 }
 
diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp
index fcbe3e2cd0..c92790be78 100644
--- a/engines/bladerunner/script/ai/officer_grayford.cpp
+++ b/engines/bladerunner/script/ai/officer_grayford.cpp
@@ -25,9 +25,10 @@
 namespace BladeRunner {
 
 AIScriptOfficerGrayford::AIScriptOfficerGrayford(BladeRunnerEngine *vm) : AIScriptBase(vm) {
-	_var1 = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1, 2
+	_varChooseIdleAnimation = 0;
 	_resumeIdleAfterFramesetCompletesFlag = false;
-	_var3 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 }
 
 void AIScriptOfficerGrayford::Initialize() {
@@ -36,9 +37,9 @@ void AIScriptOfficerGrayford::Initialize() {
 	_animationStateNext = 0;
 	_animationNext = 0;
 
-	_var1 = 0;
+	_varChooseIdleAnimation = 0;
 	_resumeIdleAfterFramesetCompletesFlag = false;
-	_var3 = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 
 	Actor_Put_In_Set(kActorOfficerGrayford, kSetFreeSlotG);
 	Actor_Set_At_Waypoint(kActorOfficerGrayford, 39, 0); // kSetFreeSlotG
@@ -914,7 +915,7 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb
 
 	case kGoalOfficerGrayfordDead:
 		_animationState = 32;
-		_animationFrame = Slice_Animation_Query_Number_Of_Frames(624) - 1;
+		_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordShotDead) - 1;
 		return true;
 
 	}
@@ -924,67 +925,67 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb
 bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		if (!_var1) {
-			*animation = 625;
+		if (_varChooseIdleAnimation == 0) {
+			*animation = kModelAnimationOfficerGrayfordOscillateIdle;
 		}
-		if (_var1 == 1) {
-			*animation = 626;
+		if (_varChooseIdleAnimation == 1) {
+			*animation = kModelAnimationOfficerGrayfordLookAroundDownwardsIdle;
 		}
-		if (_var1 == 2) {
-			*animation = 627;
+		if (_varChooseIdleAnimation == 2) {
+			*animation = kModelAnimationOfficerGrayfordLookAroundSidewaysIdle;
 		}
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
-			_var1 = 0;
+			_varChooseIdleAnimation = 0;
 			if (!Random_Query(0, 1)) {
-				_var1 = Random_Query(1, 2);
+				_varChooseIdleAnimation = Random_Query(1, 2);
 			}
 		}
 		break;
 
 	case 1:
-		*animation = 618;
+		*animation = kModelAnimationOfficerGrayfordWalking;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(618)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordWalking)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 2:
-		*animation = 619;
+		*animation = kModelAnimationOfficerGrayfordRunning;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(619)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordRunning)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 5:
-		*animation = 611;
+		*animation = kModelAnimationOfficerGrayfordCombatRunning;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(611)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCombatRunning)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 6:
-		*animation = 610;
+		*animation = kModelAnimationOfficerGrayfordCombatWalking;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(610)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCombatWalking)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 9:
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
-			*animation = 625;
+			*animation = kModelAnimationOfficerGrayfordOscillateIdle;
 			_animationState = 0;
-			_var1 = 0;
+			_varChooseIdleAnimation = 0;
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		} else {
-			*animation = 629;
+			*animation = kModelAnimationOfficerGrayfordCalmExplainTalk;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(629)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCalmExplainTalk)) {
 				_animationFrame = 0;
 				_animationState = Random_Query(9, 11);
 			}
@@ -992,115 +993,115 @@ bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 10:
-		*animation = 630;
+		*animation = kModelAnimationOfficerGrayfordCalmRightHandMoveTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(630)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCalmRightHandMoveTalk)) {
 			_animationFrame = 0;
 			_animationState = 9;
-			*animation = 629;
+			*animation = kModelAnimationOfficerGrayfordCalmExplainTalk;
 		}
 		break;
 
 	case 11:
-		*animation = 631;
+		*animation = kModelAnimationOfficerGrayfordScratchHeadTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(631)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordScratchHeadTalk)) {
 			_animationFrame = 0;
 			_animationState = 9;
-			*animation = 629;
+			*animation = kModelAnimationOfficerGrayfordCalmExplainTalk;
 		}
 		break;
 
 	case 12:
-		*animation = 632;
+		*animation = kModelAnimationOfficerGrayfordQuickHandMoveTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(632)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordQuickHandMoveTalk)) {
 			_animationFrame = 0;
 			_animationState = 9;
-			*animation = 629;
+			*animation = kModelAnimationOfficerGrayfordCalmExplainTalk;
 		}
 		break;
 
 	case 13:
-		*animation = 633;
+		*animation = kModelAnimationOfficerGrayfordSevereTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(633)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordSevereTalk)) {
 			_animationFrame = 0;
 			_animationState = 9;
-			*animation = 629;
+			*animation = kModelAnimationOfficerGrayfordCalmExplainTalk;
 		}
 		break;
 
 	case 14:
-		*animation = 634;
+		*animation = kModelAnimationOfficerGrayfordMockTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(634)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordMockTalk)) {
 			_animationFrame = 0;
 			_animationState = 9;
-			*animation = 629;
+			*animation = kModelAnimationOfficerGrayfordCalmExplainTalk;
 		}
 		break;
 
 	case 15:
-		*animation = 635;
+		*animation = kModelAnimationOfficerGrayfordPointingTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(635)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordPointingTalk)) {
 			_animationFrame = 0;
 			_animationState = 9;
-			*animation = 629;
+			*animation = kModelAnimationOfficerGrayfordCalmExplainTalk;
 		}
 		break;
 
 	case 16:
-		*animation = 636;
+		*animation = kModelAnimationOfficerGrayfordQuestionTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(636)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordQuestionTalk)) {
 			_animationFrame = 0;
 			_animationState = 9;
-			*animation = 629;
+			*animation = kModelAnimationOfficerGrayfordCalmExplainTalk;
 		}
 		break;
 
 	case 17:
-		*animation = 637;
+		*animation = kModelAnimationOfficerGrayfordDismissTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(637)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordDismissTalk)) {
 			_animationFrame = 0;
 			_animationState = 9;
-			*animation = 629;
+			*animation = kModelAnimationOfficerGrayfordCalmExplainTalk;
 		}
 		break;
 
 	case 18:
 		// fall through
 	case 19:
-		*animation = 605;
+		*animation = kModelAnimationOfficerGrayfordCombatIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(605)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCombatIdle)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 20:
-		*animation = 615;
+		*animation = kModelAnimationOfficerGrayfordCombatUnholsterGun;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(615)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCombatUnholsterGun)) {
 			_animationFrame = 0;
 			_animationState = 19;
 		}
 		break;
 
 	case 21:
-		*animation = 616;
+		*animation = kModelAnimationOfficerGrayfordCombatHolsterGun;
 		++_animationFrame;
 		if (_animationFrame == 11) {
 			Ambient_Sounds_Play_Sound(kSfxHOLSTER1, 25, 0, 0, 25);
 		}
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
-			*animation = 625;
+			*animation = kModelAnimationOfficerGrayfordOscillateIdle;
 			_animationFrame = 0;
 			_animationState = 0;
-			_var1 = 0;
+			_varChooseIdleAnimation = 0;
 			if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordArrivesToDR04) {
 				Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordArrivedAtDR04);
 			}
@@ -1108,7 +1109,7 @@ bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 22:
-		*animation = 617;
+		*animation = kModelAnimationOfficerGrayfordCombatFireGun;
 		++_animationFrame;
 		if (_animationFrame == 3) {
 			int snd;
@@ -1122,7 +1123,7 @@ bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) {
 		if (_animationFrame == 5) {
 			Actor_Combat_AI_Hit_Attempt(kActorOfficerGrayford);
 		}
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(617)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCombatFireGun)) {
 			_animationState = 19;
 			_animationFrame = 0;
 			Actor_Change_Animation_Mode(kActorOfficerGrayford, kAnimationModeCombatIdle);
@@ -1130,49 +1131,49 @@ bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 23:
-		*animation = 617;
+		*animation = kModelAnimationOfficerGrayfordCombatFireGun;
 		if (_animationFrame < 2) {
 			++_animationFrame;
 		}
 		break;
 
 	case 24:
-		*animation = 617;
+		*animation = kModelAnimationOfficerGrayfordCombatFireGun;
 		--_animationFrame;
 		if (_animationFrame < 0) {
 			_animationFrame = 0;
 			_animationState = 21;
-			*animation = 616;
+			*animation = kModelAnimationOfficerGrayfordCombatHolsterGun;
 		}
 		break;
 
 	case 27:
-		*animation = 608;
+		*animation = kModelAnimationOfficerGrayfordCombatGotHitRight;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(608) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCombatGotHitRight) - 1) {
 			_animationFrame = 0;
 			_animationState = 19;
-			*animation = 625;
+			*animation = kModelAnimationOfficerGrayfordOscillateIdle;
 			Actor_Change_Animation_Mode(kActorOfficerGrayford, kAnimationModeCombatIdle);
 		}
 		break;
 
 	case 28:
-		*animation = 609;
+		*animation = kModelAnimationOfficerGrayfordCombatGotHitLeft;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(609) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCombatGotHitLeft) - 1) {
 			_animationFrame = 0;
 			_animationState = 19;
-			*animation = 625;
+			*animation = kModelAnimationOfficerGrayfordOscillateIdle;
 			Actor_Change_Animation_Mode(kActorOfficerGrayford, kAnimationModeCombatIdle);
 		}
 		break;
 
 	case 29:
-		*animation = 622;
+		*animation = kModelAnimationOfficerGrayfordGotHitFront;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(622) - 1) {
-			*animation = 605;
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordGotHitFront) - 1) {
+			*animation = kModelAnimationOfficerGrayfordCombatIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorOfficerGrayford, 0);
@@ -1180,10 +1181,10 @@ bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 30:
-		*animation = 623;
+		*animation = kModelAnimationOfficerGrayfordGotHitBack;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(623) - 1) {
-			*animation = 605;
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordGotHitBack) - 1) {
+			*animation = kModelAnimationOfficerGrayfordCombatIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorOfficerGrayford, 0);
@@ -1191,80 +1192,80 @@ bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 31:
-		*animation = 612;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(612) - 1) {
+		*animation = kModelAnimationOfficerGrayfordCombatShotDead;
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordCombatShotDead) - 1) {
 			++_animationFrame;
 		}
 		break;
 
 	case 32:
-		*animation = 624;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(624) - 1) {
+		*animation = kModelAnimationOfficerGrayfordShotDead;
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordShotDead) - 1) {
 			++_animationFrame;
 		}
 		break;
 
 	case 34:
-		*animation = 639;
-		if (_var3) {
-			--_var3;
+		*animation = kModelAnimationOfficerGrayfordTalkToAndLowerRadio;
+		if (_varNumOfTimesToHoldCurrentFrame > 0) {
+			--_varNumOfTimesToHoldCurrentFrame;
 		} else {
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(639)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordTalkToAndLowerRadio)) {
 				if (Random_Query(0, 1)) {
-					*animation = 641;
+					*animation = kModelAnimationOfficerGrayfordPutAwayRadioInPocket;
 					_animationState = 37;
 				} else {
-					*animation = 638;
+					*animation = kModelAnimationOfficerGrayfordPlaceRadioToEar;
 					_animationState = 35;
 				}
 				_animationFrame = 0;
 			} else {
 				if (_animationFrame == 12) {
-					_var3 = Random_Query(5, 18);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(5, 18);
 				}
 			}
 		}
 		break;
 
 	case 35:
-		*animation = 638;
-		if (_var3) {
-			--_var3;
+		*animation = kModelAnimationOfficerGrayfordPlaceRadioToEar;
+		if (_varNumOfTimesToHoldCurrentFrame > 0) {
+			--_varNumOfTimesToHoldCurrentFrame;
 		} else {
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(638)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordPlaceRadioToEar)) {
 				if (Random_Query(0, 1)) {
-					*animation = 641;
+					*animation = kModelAnimationOfficerGrayfordPutAwayRadioInPocket;
 					_animationState = 37;
 				} else {
-					*animation = 639;
+					*animation = kModelAnimationOfficerGrayfordTalkToAndLowerRadio;
 					_animationState = 34;
 				}
 				_animationFrame = 0;
 			} else {
 				if (_animationFrame == 10) {
-					_var3 = Random_Query(5, 18);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(5, 18);
 				}
 			}
 		}
 		break;
 
 	case 36:
-		*animation = 640;
+		*animation = kModelAnimationOfficerGrayfordTakeOutRadioFromPocket;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(640)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordTakeOutRadioFromPocket)) {
 			_animationFrame = 0;
 			_animationState = 34;
-			*animation = 639;
+			*animation = kModelAnimationOfficerGrayfordTalkToAndLowerRadio;
 		}
 		break;
 
 	case 37:
-		*animation = 641;
+		*animation = kModelAnimationOfficerGrayfordPutAwayRadioInPocket;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(641)) {
-			*animation = 625;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerGrayfordPutAwayRadioInPocket)) {
+			*animation = kModelAnimationOfficerGrayfordOscillateIdle;
 			_animationState = 0;
 			_animationFrame = 0;
 
@@ -1283,7 +1284,8 @@ bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	default:
-		*animation = 399;
+		// Dummy placeholder, kModelAnimationZubenWalking (399) is a Zuben animation
+		*animation = kModelAnimationZubenWalking;
 		break;
 	}
 	*frame = _animationFrame;
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index 8fd57e84dc..3d9017d304 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -26,16 +26,17 @@
 namespace BladeRunner {
 
 AIScriptOfficerLeary::AIScriptOfficerLeary(BladeRunnerEngine *vm) : AIScriptBase(vm) {
-	var_45D5B8 = 0;
-	var_45D5BC = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1, 2
+	_varChooseIdleAnimation = 0;
+	_idleModeRequestedWhileInTalkingState = false;
 }
 
 void AIScriptOfficerLeary::Initialize() {
 	_animationState = 0;
 	_animationFrame = 0;
 	_animationStateNext = 0;
-	var_45D5B8 = 0;
-	var_45D5BC = 0;
+	_varChooseIdleAnimation = 0;
+	_idleModeRequestedWhileInTalkingState = false;
 	_animationNext = 0;
 
 	Actor_Put_In_Set(kActorOfficerLeary, kSetRC01);
@@ -722,22 +723,22 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber)
 bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 32:
-		*animation = 603;
+		*animation = kModelAnimationOfficerLearyPutNotepadAway;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(603)) {
-			*animation = 589;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyPutNotepadAway)) {
+			*animation = kModelAnimationOfficerLearyOscillateIdle;
 			_animationState = 0;
-			var_45D5B8 = 0;
+			_varChooseIdleAnimation = 0;
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 31:
-		*animation = 604;
+		*animation = kModelAnimationOfficerLearyTakeOutNotepad;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(604)) {
-			*animation = 601;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyTakeOutNotepad)) {
+			*animation = kModelAnimationOfficerLearyTakingNotes;
 			_animationState = 1;
 			_animationFrame = 0;
 		}
@@ -745,10 +746,10 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		return true;
 
 	case 30:
-		*animation = 587;
+		*animation = kModelAnimationOfficerLearyGotHitBack;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(587)) {
-			*animation = 589;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyGotHitBack)) {
+			*animation = kModelAnimationOfficerLearyOscillateIdle;
 			_animationState = 0;
 			_animationFrame = 0;
 			Actor_Change_Animation_Mode(kActorOfficerLeary, kAnimationModeIdle);
@@ -757,10 +758,10 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		return true;
 
 	case 29:
-		*animation = 586;
+		*animation = kModelAnimationOfficerLearyGotHitFront;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(586)) {
-			*animation = 589;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyGotHitFront)) {
+			*animation = kModelAnimationOfficerLearyOscillateIdle;
 			_animationState = 0;
 			_animationFrame = 0;
 			Actor_Change_Animation_Mode(kActorOfficerLeary, kAnimationModeIdle);
@@ -769,47 +770,47 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		return true;
 
 	case 28:
-		*animation = 576;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(576) - 1) {
+		*animation = kModelAnimationOfficerLearyCombatShotDead;
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatShotDead) - 1) {
 			++_animationFrame;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 27:
-		*animation = 588;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(588) - 1) {
+		*animation = kModelAnimationOfficerLearyShotDead;
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyShotDead) - 1) {
 			++_animationFrame;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 26:
-		*animation = 573;
+		*animation = kModelAnimationOfficerLearyCombatGotHitLeft;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(573)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatGotHitLeft)) {
 			_animationState = 21;
 			_animationFrame = 0;
-			*animation = 571;
+			*animation = kModelAnimationOfficerLearyCombatIdle;
 			Actor_Change_Animation_Mode(kActorOfficerLeary, kAnimationModeCombatIdle);
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 25:
-		*animation = 572;
+		*animation = kModelAnimationOfficerLearyCombatGotHitRight;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(572)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatGotHitRight)) {
 			_animationState = 21;
 			_animationFrame = 0;
-			*animation = 571;
+			*animation = kModelAnimationOfficerLearyCombatIdle;
 			Actor_Change_Animation_Mode(kActorOfficerLeary, kAnimationModeCombatIdle);
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 24:
-		*animation = 581;
+		*animation = kModelAnimationOfficerLearyCombatFireGun;
 		++_animationFrame;
 		if (_animationFrame == 4) {
 			if (Random_Query(1, 2) == 1) {
@@ -821,20 +822,20 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		if (_animationFrame == 5) {
 			Actor_Combat_AI_Hit_Attempt(kActorOfficerLeary);
 		}
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(581)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatFireGun)) {
 			_animationState = 21;
 			_animationFrame = 0;
-			*animation = 571;
+			*animation = kModelAnimationOfficerLearyCombatIdle;
 			Actor_Change_Animation_Mode(kActorOfficerLeary, kAnimationModeCombatIdle);
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 23:
-		*animation = 580;
+		*animation = kModelAnimationOfficerLearyCombatHolsterGun;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(580)) {
-			*animation = 589;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatHolsterGun)) {
+			*animation = kModelAnimationOfficerLearyOscillateIdle;
 			_animationState = 0;
 			_animationFrame = 0;
 		}
@@ -842,143 +843,143 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		return true;
 
 	case 22:
-		*animation = 579;
+		*animation = kModelAnimationOfficerLearyCombatUnholsterGun;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(579)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatUnholsterGun)) {
 			_animationState = 21;
 			_animationFrame = 0;
-			*animation = 571;
+			*animation = kModelAnimationOfficerLearyCombatIdle;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 21:
-		*animation = 571;
+		*animation = kModelAnimationOfficerLearyCombatIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(571)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatIdle)) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 20:
-		*animation = 571;
+		*animation = kModelAnimationOfficerLearyCombatIdle;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(571) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatIdle) - 1) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 19:
-		*animation = 600;
+		*animation = kModelAnimationOfficerLearyScratchHeadApologyTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(600)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyScratchHeadApologyTalk)) {
 			_animationState = 11;
 			_animationFrame = 0;
-			*animation = 592;
+			*animation = kModelAnimationOfficerLearyCalmExplainTalk;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 18:
-		*animation = 599;
+		*animation = kModelAnimationOfficerLearyHandsOnWaistTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(599)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyHandsOnWaistTalk)) {
 			_animationState = 11;
 			_animationFrame = 0;
-			*animation = 592;
+			*animation = kModelAnimationOfficerLearyCalmExplainTalk;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 17:
-		*animation = 598;
+		*animation = kModelAnimationOfficerLearyUrgeOrQuestionTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(598)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyUrgeOrQuestionTalk)) {
 			_animationState = 11;
 			_animationFrame = 0;
-			*animation = 592;
+			*animation = kModelAnimationOfficerLearyCalmExplainTalk;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 16:
-		*animation = 597;
+		*animation = kModelAnimationOfficerLearyMoreUpsetTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(597)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyMoreUpsetTalk)) {
 			_animationState = 11;
 			_animationFrame = 0;
-			*animation = 592;
+			*animation = kModelAnimationOfficerLearyCalmExplainTalk;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 15:
-		*animation = 596;
+		*animation = kModelAnimationOfficerLearyUpsetOrCommandTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(596)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyUpsetOrCommandTalk)) {
 			_animationState = 11;
 			_animationFrame = 0;
-			*animation = 592;
+			*animation = kModelAnimationOfficerLearyCalmExplainTalk;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 14:
-		*animation = 595;
+		*animation = kModelAnimationOfficerLearyWarnOrThreatenTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(595)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyWarnOrThreatenTalk)) {
 			_animationState = 11;
 			_animationFrame = 0;
-			*animation = 592;
+			*animation = kModelAnimationOfficerLearyCalmExplainTalk;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 13:
-		*animation = 594;
+		*animation = kModelAnimationOfficerLearyLongerExplainTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(594)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyLongerExplainTalk)) {
 			_animationState = 11;
 			_animationFrame = 0;
-			*animation = 592;
+			*animation = kModelAnimationOfficerLearyCalmExplainTalk;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 12:
-		*animation = 593;
+		*animation = kModelAnimationOfficerLearyIndicateTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(593)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyIndicateTalk)) {
 			_animationState = 11;
 			_animationFrame = 0;
-			*animation = 592;
+			*animation = kModelAnimationOfficerLearyCalmExplainTalk;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 11:
 		if (_animationFrame <= 2) {
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 			_animationState = 0;
 			_animationFrame = 0;
-			*animation = 589;
-			var_45D5B8 = Random_Query(0, 1);
+			*animation = kModelAnimationOfficerLearyOscillateIdle;
+			_varChooseIdleAnimation = Random_Query(0, 1);
 			*frame = _animationFrame;
 			return true;
 		}
 
-		*animation = 592;
+		*animation = kModelAnimationOfficerLearyCalmExplainTalk;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(592)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCalmExplainTalk)) {
 			_animationFrame = 0;
-			if (var_45D5BC) {
-				var_45D5BC = 0;
+			if (_idleModeRequestedWhileInTalkingState) {
+				_idleModeRequestedWhileInTalkingState = false;
 				_animationState = 0;
 				_animationFrame = 0;
-				*animation = 589;
-				var_45D5B8 = Random_Query(0, 1);
+				*animation = kModelAnimationOfficerLearyOscillateIdle;
+				_varChooseIdleAnimation = Random_Query(0, 1);
 			} else {
 				_animationState = Random_Query(0, 8) + 11;
 			}
@@ -988,72 +989,72 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		return true;
 
 	case 10:
-		*animation = 578;
+		*animation = kModelAnimationOfficerLearyCombatClimbStairsDown;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(578)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatClimbStairsDown)) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 9:
-		*animation = 577;
+		*animation = kModelAnimationOfficerLearyCombatClimbStairsUp;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(577)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatClimbStairsUp)) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 8:
-		*animation = 575;
+		*animation = kModelAnimationOfficerLearyCombatRunning;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(575)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatRunning)) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 7:
-		*animation = 574;
+		*animation = kModelAnimationOfficerLearyCombatWalking;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(574)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyCombatWalking)) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 6:
-		*animation = 585;
+		*animation = kModelAnimationOfficerLearyClimbStairsDown;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(585)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyClimbStairsDown)) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 5:
-		*animation = 584;
+		*animation = kModelAnimationOfficerLearyClimbStairsUp;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(584)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyClimbStairsUp)) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 4:
-		*animation = 583;
+		*animation = kModelAnimationOfficerLearyRunning;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(583)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyRunning)) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
 		return true;
 
 	case 3:
-		*animation = 582;
+		*animation = kModelAnimationOfficerLearyWalking;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(582)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyWalking)) {
 			_animationFrame = 0;
 		}
 		*frame = _animationFrame;
@@ -1061,23 +1062,23 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 
 	case 2:
 		if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
-			*animation = 603;
+			*animation = kModelAnimationOfficerLearyPutNotepadAway;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(603)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyPutNotepadAway)) {
 				Game_Flag_Reset(kFlagOfficerLearyTakingNotes);
 				_animationFrame = 0;
 				_animationState = _animationStateNext;
 				*animation = _animationNext;
 			}
 		} else {
-			if (var_45D5B8 == 0) {
-				*animation = 589;
+			if (_varChooseIdleAnimation == 0) {
+				*animation = kModelAnimationOfficerLearyOscillateIdle;
 			}
-			if (var_45D5B8 == 1) {
-				*animation = 590;
+			if (_varChooseIdleAnimation == 1) {
+				*animation = kModelAnimationOfficerLearyLookAroundIdle;
 			}
-			if (var_45D5B8 == 2) {
-				*animation = 591;
+			if (_varChooseIdleAnimation == 2) {
+				*animation = kModelAnimationOfficerLearyRockBackForthIdle;
 			}
 			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(*animation) / 2) {
 				_animationFrame += 3;
@@ -1099,15 +1100,15 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		return true;
 
 	case 1:
-		*animation = 601;
+		*animation = kModelAnimationOfficerLearyTakingNotes;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(601)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyTakingNotes)) {
 			_animationFrame = 0;
 		}
 		if (!Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 			_animationState = 32;
 			_animationFrame = 0;
-			*animation = 603;
+			*animation = kModelAnimationOfficerLearyPutNotepadAway;
 		}
 		*frame = _animationFrame;
 		return true;
@@ -1117,34 +1118,34 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		 && !Game_Flag_Query(kFlagRC01McCoyAndOfficerLearyTalking)) {
 			_animationState = 31;
 			_animationFrame = 0;
-			*animation = 604;
-		} else if (var_45D5B8 == 1) {
-			*animation = 590;
+			*animation = kModelAnimationOfficerLearyTakeOutNotepad;
+		} else if (_varChooseIdleAnimation == 1) {
+			*animation = kModelAnimationOfficerLearyLookAroundIdle;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(590)) {
-				var_45D5B8 = Random_Query(0, 2);
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyLookAroundIdle)) {
+				_varChooseIdleAnimation = Random_Query(0, 2);
 				_animationFrame = 0;
 			}
-		} else if (var_45D5B8 == 2) {
-			*animation = 591;
+		} else if (_varChooseIdleAnimation == 2) {
+			*animation = kModelAnimationOfficerLearyRockBackForthIdle;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(591)) {
-				var_45D5B8 = Random_Query(0, 2);
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyRockBackForthIdle)) {
+				_varChooseIdleAnimation = Random_Query(0, 2);
 				_animationFrame = 0;
 			}
-		} else if (var_45D5B8 == 0) {
-			*animation = 589;
+		} else if (_varChooseIdleAnimation == 0) {
+			*animation = kModelAnimationOfficerLearyOscillateIdle;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(589)) {
-				var_45D5B8 = Random_Query(0, 2);
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationOfficerLearyOscillateIdle)) {
+				_varChooseIdleAnimation = Random_Query(0, 2);
 				_animationFrame = 0;
 			}
 		}
 		*frame = _animationFrame;
 		return true;
 	default:
-		// TODO A bug? This is an animation of Zuben
-		*animation = 399;
+		// Dummy placeholder, kModelAnimationZubenWalking (399) is a Zuben animation
+		*animation = kModelAnimationZubenWalking;
 		*frame = _animationFrame;
 		return true;
 	}
@@ -1187,7 +1188,7 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		case 18:
 			// fall through
 		case 19:
-			var_45D5BC = 1;
+			_idleModeRequestedWhileInTalkingState = true;
 			break;
 
 		case 0:
@@ -1198,7 +1199,7 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		default:
 			_animationState = 0;
 			_animationFrame = 0;
-			var_45D5B8 = Random_Query(0, 1);
+			_varChooseIdleAnimation = Random_Query(0, 1);
 			break;
 		}
 		break;
@@ -1217,7 +1218,7 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		if (_animationState == 1) {
 			_animationState = 2;
 			_animationStateNext = 11;
-			_animationNext = 592;
+			_animationNext = kModelAnimationOfficerLearyCalmExplainTalk;
 			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
@@ -1225,7 +1226,7 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		else if (_animationState > 19) {
 			_animationState = 11;
 			_animationFrame = 0;
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 		}
 		break;
 
@@ -1280,14 +1281,14 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		if (_animationState == 1) {
 			_animationState = 2;
 			_animationStateNext = 12;
-			_animationNext = 593;
+			_animationNext = kModelAnimationOfficerLearyIndicateTalk;
 			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
 			_animationState = 12;
 			_animationFrame = 0;
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 		}
 		break;
 
@@ -1295,14 +1296,14 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		if (_animationState == 1) {
 			_animationState = 2;
 			_animationStateNext = 13;
-			_animationNext = 594;
+			_animationNext = kModelAnimationOfficerLearyLongerExplainTalk;
 			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
 			_animationState = 13;
 			_animationFrame = 0;
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 		}
 		break;
 
@@ -1310,14 +1311,14 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		if (_animationState == 1) {
 			_animationState = 2;
 			_animationStateNext = 14;
-			_animationNext = 595;
+			_animationNext = kModelAnimationOfficerLearyWarnOrThreatenTalk;
 			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
 			_animationState = 14;
 			_animationFrame = 0;
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 		}
 		break;
 
@@ -1325,14 +1326,14 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		if (_animationState == 1) {
 			_animationState = 2;
 			_animationStateNext = 15;
-			_animationNext = 596;
+			_animationNext = kModelAnimationOfficerLearyUpsetOrCommandTalk;
 			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
 			_animationState = 15;
 			_animationFrame = 0;
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 		}
 		break;
 
@@ -1340,14 +1341,14 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		if (_animationState == 1) {
 			_animationState = 2;
 			_animationStateNext = 16;
-			_animationNext = 597;
+			_animationNext = kModelAnimationOfficerLearyMoreUpsetTalk;
 			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
 			_animationState = 16;
 			_animationFrame = 0;
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 		}
 		break;
 
@@ -1355,14 +1356,14 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		if (_animationState == 1) {
 			_animationState = 2;
 			_animationStateNext = 17;
-			_animationNext = 598;
+			_animationNext = kModelAnimationOfficerLearyUrgeOrQuestionTalk;
 			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
 			_animationState = 17;
 			_animationFrame = 0;
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 		}
 		break;
 
@@ -1370,14 +1371,14 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		if (_animationState == 1) {
 			_animationState = 2;
 			_animationStateNext = 18;
-			_animationNext = 599;
+			_animationNext = kModelAnimationOfficerLearyHandsOnWaistTalk;
 			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
 			_animationState = 18;
 			_animationFrame = 0;
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 		}
 		break;
 
@@ -1385,14 +1386,14 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		if (_animationState == 1) {
 			_animationState = 2;
 			_animationStateNext = 19;
-			_animationNext = 600;
+			_animationNext = kModelAnimationOfficerLearyScratchHeadApologyTalk;
 			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
 			_animationState = 19;
 			_animationFrame = 0;
-			var_45D5BC = 0;
+			_idleModeRequestedWhileInTalkingState = false;
 		}
 		break;
 
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index 62d95ff3a2..c436cfb314 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -27,8 +27,9 @@ namespace BladeRunner {
 AIScriptSadik::AIScriptSadik(BladeRunnerEngine *vm) : AIScriptBase(vm) {
 	_resumeIdleAfterFramesetCompletesFlag = false;
 	_nextSoundId = -1; // changed from original (0) to be more clear that this is an invalid sfx id
-	_var2 = 0;
-	_var3 = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 	_var4 = 1;
 }
 
@@ -40,8 +41,8 @@ void AIScriptSadik::Initialize() {
 
 	_resumeIdleAfterFramesetCompletesFlag = false;
 	_nextSoundId = -1; // changed from original (0) to be more clear that this is an invalid sfx id
-	_var2 = 0;
-	_var3 = 0;
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 	_var4 = 1;
 
 	Actor_Put_In_Set(kActorSadik, kSetFreeSlotA);
@@ -496,40 +497,40 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		if (_var2 == 1) {
-			*animation = 329;
+		if (_varChooseIdleAnimation == 1) {
+			*animation = kModelAnimationSadikShiftsShoulders;
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(329)) {
-				*animation = 328;
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikShiftsShoulders)) {
+				*animation = kModelAnimationSadikIdle;
 				_animationFrame = 0;
-				_var2 = 0;
+				_varChooseIdleAnimation = 0;
 			}
-		} else if (_var2 == 0) {
-			*animation = 328;
-			if (_var3) {
-				--_var3;
+		} else if (_varChooseIdleAnimation == 0) {
+			*animation = kModelAnimationSadikIdle;
+			if (_varNumOfTimesToHoldCurrentFrame > 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 				if (!Random_Query(0, 6)) {
 					_var4 = -_var4;
 				}
 			} else {
 				_animationFrame += _var4;
-				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(328)) {
+				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikIdle)) {
 					_animationFrame = 0;
 				}
 				if (_animationFrame < 0) {
-					_animationFrame = Slice_Animation_Query_Number_Of_Frames(328) - 1;
+					_animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikIdle) - 1;
 				}
 				if (!Random_Query(0, 4)) {
-					_var3 = 1;
+					_varNumOfTimesToHoldCurrentFrame = 1;
 				}
 				if (_animationFrame == 0 || _animationFrame == 8) {
-					_var3 = Random_Query(2, 8);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(2, 8);
 				}
 				if (!Random_Query(0, 2)) {
 					if (_animationFrame == 0) {
-						_var2 = 1;
-						_var3 = 0;
-						*animation = 329;
+						_varChooseIdleAnimation = 1;
+						_varNumOfTimesToHoldCurrentFrame = 0;
+						*animation = kModelAnimationSadikShiftsShoulders;
 					}
 				}
 			}
@@ -549,27 +550,27 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 	case 6:
 		switch (_animationState) {
 		case 1:
-			*animation = 323;
+			*animation = kModelAnimationSadikWalking;
 			break;
 
 		case 2:
-			*animation = 324;
+			*animation = kModelAnimationSadikRunning;
 			break;
 
 		case 3:
-			*animation = 317;
+			*animation = kModelAnimationSadikCombatWalking;
 			break;
 
 		case 4:
-			*animation = 318;
+			*animation = kModelAnimationSadikCombatRunning;
 			break;
 
 		case 6:
-			*animation = 340;
+			*animation = kModelAnimationSadikClimbLadderUp;
 			break;
 
 		case 5:
-			*animation = 339;
+			*animation = kModelAnimationSadikClimbLadderDown;
 			break;
 		}
 		++_animationFrame;
@@ -579,40 +580,40 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 7:
-		*animation = 312;
+		*animation = kModelAnimationSadikCombatIdle;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(312)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikCombatIdle)) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 8:
-		*animation = 313;
+		*animation = kModelAnimationSadikCombatTurnRight;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(313)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikCombatTurnRight)) {
 			_animationFrame = 0;
 			_animationState = 7;
-			*animation = 312;
+			*animation = kModelAnimationSadikCombatIdle;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatIdle);
 		}
 		break;
 
 	case 9:
-		*animation = 314;
+		*animation = kModelAnimationSadikCombatTurnLeft;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(314)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikCombatTurnLeft)) {
 			_animationFrame = 0;
 			_animationState = 7;
-			*animation = 312;
+			*animation = kModelAnimationSadikCombatIdle;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatIdle);
 		}
 		break;
 
 	case 10:
-		*animation = 325;
+		*animation = kModelAnimationSadikGotHitFront;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(325)) {
-			*animation = 328;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikGotHitFront)) {
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeIdle);
@@ -620,10 +621,10 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 11:
-		*animation = 326;
+		*animation = kModelAnimationSadikGotHitMore;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(326)) {
-			*animation = 328;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikGotHitMore)) {
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeIdle);
@@ -631,63 +632,64 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 12:
-		*animation = 315;
+		*animation = kModelAnimationSadikCombatGotHitFront;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(315)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikCombatGotHitFront)) {
 			_animationFrame = 0;
 			_animationState = 7;
-			*animation = 312;
+			*animation = kModelAnimationSadikCombatIdle;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatIdle);
 		}
 		break;
 
 	case 13:
-		*animation = 316;
+		*animation = kModelAnimationSadikCombatGotHitMore;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(316)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikCombatGotHitMore)) {
 			_animationFrame = 0;
 			_animationState = 7;
-			*animation = 312;
+			*animation = kModelAnimationSadikCombatIdle;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatIdle);
 		}
 		break;
 
 	case 14:
-		*animation = 327;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(327) - 1) {
+		*animation = kModelAnimationSadikShotDead;
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikShotDead) - 1) {
 			++_animationFrame;
 		}
 		break;
 
 	case 15:
-		*animation = 327;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(327) - 1) {
+		// A bug? This is identical to case 14. Maybe make case 14 fall through?
+		*animation = kModelAnimationSadikShotDead;
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikShotDead) - 1) {
 			++_animationFrame;
 		}
 		break;
 
 	case 16:
-		*animation = 320;
+		*animation = kModelAnimationSadikCombatUnholsterGun;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(320)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikCombatUnholsterGun)) {
 			_animationFrame = 0;
 			_animationState = 7;
-			*animation = 312;
+			*animation = kModelAnimationSadikCombatIdle;
 		}
 		break;
 
 	case 17:
-		*animation = 321;
+		*animation = kModelAnimationSadikCombatHolsterGun;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(321)) {
-			*animation = 328;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikCombatHolsterGun)) {
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
 		break;
 
 	case 18:
-		*animation = 322;
+		*animation = kModelAnimationSadikCombatFireGunAndReturnToPoseIdle;
 		++_animationFrame;
 		if (_animationFrame == 5) {
 			int snd;
@@ -701,23 +703,23 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 		if (_animationFrame == 7) {
 			Actor_Combat_AI_Hit_Attempt(kActorSadik);
 		}
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(322)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikCombatFireGunAndReturnToPoseIdle)) {
 			_animationFrame = 0;
 			_animationState = 7;
-			*animation = 312;
+			*animation = kModelAnimationSadikCombatIdle;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatIdle);
 		}
 		break;
 
 	case 19:
-		*animation = 331;
+		*animation = kModelAnimationSadikCalmTalk;
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
-			*animation = 328;
+			*animation = kModelAnimationSadikIdle;
 			_animationState = 0;
 			_resumeIdleAfterFramesetCompletesFlag = false;
 		} else {
 			++_animationFrame;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(331)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikCalmTalk)) {
 				_animationFrame = 0;
 			}
 		}
@@ -738,46 +740,46 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 	case 26:
 		switch (_animationState) {
 		case 20:
-			*animation = 332;
+			*animation = kModelAnimationSadikMoreCalmTalk;
 			break;
 
 		case 21:
-			*animation = 333;
+			*animation = kModelAnimationSadikSuggestTalk;
 			break;
 
 		case 22:
-			*animation = 334;
+			*animation = kModelAnimationSadikUrgeTalk;
 			break;
 
 		case 23:
-			*animation = 335;
+			*animation = kModelAnimationSadikAccuseTalk;
 			break;
 
 		case 24:
-			*animation = 336;
+			*animation = kModelAnimationSadikProtestTalk;
 			break;
 
 		case 25:
-			*animation = 337;
+			*animation = kModelAnimationSadikMockTalk;
 			break;
 
 		default:
-			*animation = 338;
+			*animation = kModelAnimationSadikThisAndThatTalk;
 			break;
 		}
 		++_animationFrame;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 19;
-			*animation = 331;
+			*animation = kModelAnimationSadikCalmTalk;
 		}
 		break;
 
 	case 27:
-		*animation = 330;
+		*animation = kModelAnimationSadikGesturePointOrGive;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(330)) {
-			*animation = 328;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikGesturePointOrGive)) {
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeIdle);
@@ -785,30 +787,30 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 28:
-		*animation = 341;
+		*animation = kModelAnimationSadikJumpAcross;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(341)) {
-			*animation = 328;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikJumpAcross)) {
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
 		break;
 
 	case 29:
-		*animation = 342;
+		*animation = kModelAnimationSadikHangingDropsDown;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(342)) {
-			*animation = 328;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikHangingDropsDown)) {
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
 		break;
 
 	case 30:
-		*animation = 343;
+		*animation = kModelAnimationSadikKicksSomeoneWhoIsDown;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(343)) {
-			*animation = 328;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikKicksSomeoneWhoIsDown)) {
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeIdle);
@@ -816,10 +818,10 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 31:
-		*animation = 344;
+		*animation = kModelAnimationSadikHoldsSomeoneAndPunches;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(344)) {
-			*animation = 328;
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSadikHoldsSomeoneAndPunches)) {
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeIdle);
@@ -827,21 +829,23 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 32:
-		*animation = 345;
+		*animation = kModelAnimationSadikPicksUpAndThrowsMcCoy;
 		++_animationFrame;
 		if (_animationFrame == 23) {
 			_nextSoundId = kSfxMTLDOOR2;
 		}
 		if (_animationFrame >= 25) {
+			// TODO last frames 27-30 are empty
+			//      but maybe we could still accept frames 25 and 26!
 			_animationFrame = 0;
 			_animationState = 0;
-			*animation = 328;
+			*animation = kModelAnimationSadikIdle;
 			Actor_Set_Goal_Number(kActorSadik, kGoalSadikBB11CatchMcCoy);
 		}
 		break;
 
 	case 33:
-		*animation = 344;
+		*animation = kModelAnimationSadikHoldsSomeoneAndPunches;
 		++_animationFrame;
 		if (Actor_Query_Goal_Number(kActorSadik) == kGoalSadikBB11KnockOutMcCoy) {
 			if (_animationFrame == 4) {
@@ -852,7 +856,7 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 			}
 		}
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
-			*animation = 328;
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 
@@ -864,7 +868,7 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 34:
-		*animation = 343;
+		*animation = kModelAnimationSadikKicksSomeoneWhoIsDown;
 		++_animationFrame;
 		if (_animationFrame == 4) {
 			if (Actor_Query_Goal_Number(kActorSadik) == kGoalSadikBB11KnockOutMcCoy) {
@@ -877,7 +881,7 @@ bool AIScriptSadik::UpdateAnimation(int *animation, int *frame) {
 		}
 
 		if (_animationFrame >= 15) {
-			*animation = 328;
+			*animation = kModelAnimationSadikIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 			Actor_Change_Animation_Mode(kActorSadik, kAnimationModeIdle);
@@ -937,7 +941,7 @@ bool AIScriptSadik::ChangeAnimationMode(int mode) {
 		default:
 			_animationState = 0;
 			_animationFrame = 0;
-			_var3 = 0;
+			_varNumOfTimesToHoldCurrentFrame = 0;
 			break;
 		}
 		break;
diff --git a/engines/bladerunner/script/ai/sebastian.cpp b/engines/bladerunner/script/ai/sebastian.cpp
index 15d85deaca..79ef494de7 100644
--- a/engines/bladerunner/script/ai/sebastian.cpp
+++ b/engines/bladerunner/script/ai/sebastian.cpp
@@ -146,35 +146,35 @@ bool AIScriptSebastian::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptSebastian::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		*animation = 811;
+		*animation = kModelAnimationSebastianIdle;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(811) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianIdle) - 1) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 1:
-		*animation = 809;
+		*animation = kModelAnimationSebastianWalking;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(809) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianWalking) - 1) {
 			_animationFrame = 0;
 		}
 		break;
 
 	case 2:
-		*animation = 810;
+		*animation = kModelAnimationSebastianStepsBack;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(810) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianStepsBack) - 1) {
 			Actor_Change_Animation_Mode(kActorSebastian, kAnimationModeIdle);
-			*animation = 811;
+			*animation = kModelAnimationSebastianIdle;
 			_animationFrame = 0;
 			_animationState = 0;
 		}
 		break;
 
 	case 3:
-		*animation = 821;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(821) - 1) {
+		*animation = kModelAnimationSebastianTriesToRunHitsHeadAndFalls;
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianTriesToRunHitsHeadAndFalls) - 1) {
 			++_animationFrame;
 		}
 		break;
@@ -182,85 +182,85 @@ bool AIScriptSebastian::UpdateAnimation(int *animation, int *frame) {
 	case 4:
 		if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
 			Actor_Change_Animation_Mode(kActorSebastian, kAnimationModeIdle);
-			*animation = 811;
+			*animation = kModelAnimationSebastianIdle;
 			_animationState = 0;
 			_animationFrame = 0;
 		} else {
-			*animation = 813;
+			*animation = kModelAnimationSebastianCalmHeadNodLeftTalk;
 			++_animationFrame;
-			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(813) - 1) {
+			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianCalmHeadNodLeftTalk) - 1) {
 				_animationFrame = 0;
 			}
 		}
 		break;
 
 	case 5:
-		*animation = 814;
+		*animation = kModelAnimationSebastianCalmHeadNodRightTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(814) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianCalmHeadNodRightTalk) - 1) {
 			_animationFrame = 0;
 			_animationState = 4;
-			*animation = 813;
+			*animation = kModelAnimationSebastianCalmHeadNodLeftTalk;
 		}
 		break;
 
 	case 6:
-		*animation = 815;
+		*animation = kModelAnimationSebastianSuggestTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(815) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianSuggestTalk) - 1) {
 			_animationFrame = 0;
 			_animationState = 4;
-			*animation = 813;
+			*animation = kModelAnimationSebastianCalmHeadNodLeftTalk;
 		}
 		break;
 
 	case 7:
-		*animation = 816;
+		*animation = kModelAnimationSebastianWonderingTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(816) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianWonderingTalk) - 1) {
 			_animationFrame = 0;
 			_animationState = 4;
-			*animation = 813;
+			*animation = kModelAnimationSebastianCalmHeadNodLeftTalk;
 		}
 		break;
 
 	case 8:
-		*animation = 817;
+		*animation = kModelAnimationSebastianPointingToSelfTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(817) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianPointingToSelfTalk) - 1) {
 			_animationFrame = 0;
 			_animationState = 4;
-			*animation = 813;
+			*animation = kModelAnimationSebastianCalmHeadNodLeftTalk;
 		}
 		break;
 
 	case 9:
-		*animation = 818;
+		*animation = kModelAnimationSebastianScratchEarTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(818) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianScratchEarTalk) - 1) {
 			_animationFrame = 0;
 			_animationState = 4;
-			*animation = 813;
+			*animation = kModelAnimationSebastianCalmHeadNodLeftTalk;
 		}
 		break;
 
 	case 10:
-		*animation = 819;
+		*animation = kModelAnimationSebastianAnnoyedTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(819) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianAnnoyedTalk) - 1) {
 			_animationFrame = 0;
 			_animationState = 4;
-			*animation = 813;
+			*animation = kModelAnimationSebastianCalmHeadNodLeftTalk;
 		}
 		break;
 
 	case 11:
-		*animation = 820;
+		*animation = kModelAnimationSebastianWaitTalk;
 		++_animationFrame;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(820) - 1) {
+		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(kModelAnimationSebastianWaitTalk) - 1) {
 			_animationFrame = 0;
 			_animationState = 4;
-			*animation = 813;
+			*animation = kModelAnimationSebastianCalmHeadNodLeftTalk;
 		}
 		break;
 
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index f96a64133b..f8a8674c88 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -26,8 +26,9 @@ namespace BladeRunner {
 
 AIScriptSteele::AIScriptSteele(BladeRunnerEngine *vm) : AIScriptBase(vm) {
 	_resumeIdleAfterFramesetCompletesFlag = false;
-	_var1 = 0;
-	_var2 = 0;
+	// _varChooseIdleAnimation can have valid values: 0, 1, 3 (value 2 is skipped)
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 }
 
 void AIScriptSteele::Initialize() {
@@ -37,8 +38,8 @@ void AIScriptSteele::Initialize() {
 	_animationNext = 0;
 
 	_resumeIdleAfterFramesetCompletesFlag = false;
-	_var1 = 0;
-	_var2 = 0;
+	_varChooseIdleAnimation = 0;
+	_varNumOfTimesToHoldCurrentFrame = 0;
 
 	Actor_Put_In_Set(kActorSteele, kSetFreeSlotG);
 	Actor_Set_At_Waypoint(kActorSteele, 39, 0);
@@ -1139,7 +1140,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		}
 		Game_Flag_Set(kFlagSteeleAimingAtGordo);
 		Actor_Change_Animation_Mode(kActorSteele, kAnimationModeIdle);
-		_var1 = 3;
+		_varChooseIdleAnimation = 3;
 		return true;
 
 	case kGoalSteeleNR01TalkToGordo:
@@ -1504,7 +1505,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptSteele::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		switch (_var1) {
+		switch (_varChooseIdleAnimation) {
 		case 0:
 			*animation = kModelAnimationSteeleIdle;
 			++_animationFrame;
@@ -1512,8 +1513,8 @@ bool AIScriptSteele::UpdateAnimation(int *animation, int *frame) {
 				_animationFrame = 0;
 				if (Game_Flag_Query(kFlagSteeleSmoking)) {
 					_animationState = 41;
-					_var1 = 1;
-					_var2 = 0;
+					_varChooseIdleAnimation = 1;
+					_varNumOfTimesToHoldCurrentFrame = 0;
 				}
 			}
 			break;
@@ -1521,8 +1522,8 @@ bool AIScriptSteele::UpdateAnimation(int *animation, int *frame) {
 		case 1:
 			Game_Flag_Set(kFlagSteeleSmoking);
 			_animationState = 41;
-			_var1 = 1;
-			_var2 = 0;
+			_varChooseIdleAnimation = 1;
+			_varNumOfTimesToHoldCurrentFrame = 0;
 			break;
 
 		case 3:
@@ -1903,7 +1904,7 @@ bool AIScriptSteele::UpdateAnimation(int *animation, int *frame) {
 		) {
 			_animationFrame = 0;
 			_animationState = 0;
-			_var1 = 3;
+			_varChooseIdleAnimation = 3;
 			_resumeIdleAfterFramesetCompletesFlag = false;
 			*animation = kModelAnimationSteeleWithGunAimingToRightTalk;
 		} else {
@@ -1944,44 +1945,44 @@ bool AIScriptSteele::UpdateAnimation(int *animation, int *frame) {
 			*animation = kModelAnimationSteeleIdle;
 			_animationFrame = 0;
 			_animationState = 0;
-			_var1 = 0;
+			_varChooseIdleAnimation = 0;
 		}
 		break;
 
 	case 41:
-		switch (_var1) {
+		switch (_varChooseIdleAnimation) {
 		case 0:
 			*animation = kModelAnimationSteeleIdle;
 			++_animationFrame;
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationSteeleIdle)) {
 				_animationFrame = 0;
 				if (!Game_Flag_Query(kFlagSteeleSmoking)) {
-					_var1 = 3;
+					_varChooseIdleAnimation = 3;
 				} else if (Random_Query(1, 3) == 1) {
-					_var1 = 1;
+					_varChooseIdleAnimation = 1;
 				}
 			}
 			break;
 
 		case 1:
 			*animation = kModelAnimationSteeleTakeCigPuff;
-			if (_var2 != 0) {
-				--_var2;
+			if (_varNumOfTimesToHoldCurrentFrame != 0) {
+				--_varNumOfTimesToHoldCurrentFrame;
 			} else {
 				++_animationFrame;
 				if (_animationFrame >= 6
 				 && _animationFrame <= 9
 				) {
-					_var2 = Random_Query(1, 3);
+					_varNumOfTimesToHoldCurrentFrame = Random_Query(1, 3);
 					break;
 				}
 
 				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 					_animationFrame = 0;
 					if (Game_Flag_Query(kFlagSteeleSmoking)) {
-						_var1 = 0;
+						_varChooseIdleAnimation = 0;
 					} else {
-						_var1 = 3;
+						_varChooseIdleAnimation = 3;
 					}
 				}
 			}
@@ -1993,7 +1994,7 @@ bool AIScriptSteele::UpdateAnimation(int *animation, int *frame) {
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation) - 1) {
 				_animationState = 0;
 				_animationFrame = 0;
-				_var1 = 0;
+				_varChooseIdleAnimation = 0;
 				Game_Flag_Reset(kFlagSteeleSmoking);
 			}
 			break;
@@ -2016,9 +2017,9 @@ bool AIScriptSteele::ChangeAnimationMode(int mode) {
 	switch (mode) {
 	case kAnimationModeIdle:
 		if (Game_Flag_Query(kFlagSteeleAimingAtGordo)) {
-			_var1 = 3;
+			_varChooseIdleAnimation = 3;
 		} else {
-			_var1 = 0;
+			_varChooseIdleAnimation = 0;
 		}
 
 		switch (_animationState) {
@@ -2075,7 +2076,7 @@ bool AIScriptSteele::ChangeAnimationMode(int mode) {
 			_animationFrame = 0;
 			if (Game_Flag_Query(kFlagSteeleSmoking)) {
 				_animationState = 41;
-				_var1 = 1;
+				_varChooseIdleAnimation = 1;
 			} else {
 				_animationState = 0;
 			}
@@ -2267,8 +2268,8 @@ bool AIScriptSteele::ChangeAnimationMode(int mode) {
 		Game_Flag_Set(kFlagSteeleSmoking);
 		_animationState = 41;
 		_animationFrame = 0;
-		_var2 = 0;
-		_var1 = 1;
+		_varNumOfTimesToHoldCurrentFrame = 0;
+		_varChooseIdleAnimation = 1;
 		break;
 
 	case kAnimationModeWalkUp:
diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h
index e39ab205d7..ad596855ce 100644
--- a/engines/bladerunner/script/ai_script.h
+++ b/engines/bladerunner/script/ai_script.h
@@ -118,8 +118,8 @@ END_SCRIPT
 
 DECLARE_SCRIPT(Steele)
 	bool _resumeIdleAfterFramesetCompletesFlag;
-	int _var1;
-	int _var2;
+	int _varChooseIdleAnimation;
+	int _varNumOfTimesToHoldCurrentFrame;
 
 	double comp_distance(int actorId, float a5, float a6, int a1, float a2, float a3, float a4);
 END_SCRIPT
@@ -156,8 +156,8 @@ DECLARE_SCRIPT(Guzza)
 END_SCRIPT
 
 DECLARE_SCRIPT(Clovis)
-	int _var1;
-	int _var2;
+	int _varChooseIdleAnimation;
+	int _varNumOfTimesToHoldCurrentFrame;
 	int _var3;
 	int _var4;
 	int _var5;
@@ -177,8 +177,8 @@ END_SCRIPT
 DECLARE_SCRIPT(Izo)
 	int _var1;
 	int _var2;
-	int _var3;
-	int _var4;
+	int _varNumOfTimesToHoldCurrentFrame;
+	int _varChooseIdleAnimation;
 	bool _resumeIdleAfterFramesetCompletesFlag;
 
 	void dialogueWithIzo();
@@ -187,8 +187,8 @@ END_SCRIPT
 
 DECLARE_SCRIPT(Sadik)
 	int _nextSoundId;
-	int _var2;
-	int _var3;
+	int _varChooseIdleAnimation;
+	int _varNumOfTimesToHoldCurrentFrame;
 	int _var4;
 	bool _resumeIdleAfterFramesetCompletesFlag;
 END_SCRIPT
@@ -202,8 +202,8 @@ DECLARE_SCRIPT(Luther)
 END_SCRIPT
 
 DECLARE_SCRIPT(Grigorian)
-	int var_45CA10;
-	int var_45CA14;
+	int _varChooseIdleAnimation;
+	int _varNumOfTimesToHoldCurrentFrame;
 END_SCRIPT
 
 DECLARE_SCRIPT(Transient)
@@ -241,8 +241,8 @@ DECLARE_SCRIPT(TyrellGuard)
 END_SCRIPT
 
 DECLARE_SCRIPT(EarlyQ)
-	int _var1;
-	int _var2;
+	int _varNumOfTimesToHoldCurrentFrame;
+	int _varChooseIdleAnimation;
 	int _var3;
 	bool _resumeIdleAfterFramesetCompletesFlag;
 END_SCRIPT
@@ -260,10 +260,10 @@ END_SCRIPT
 DECLARE_SCRIPT(Hasan)
 	int _var1;
 	int _var2;
-	int _var3;
+	int _varNumOfTimesToHoldCurrentFrame;
 	int _var4;
 	int _var5;
-	int _var6;
+	int _varChooseIdleAnimation;
 END_SCRIPT
 
 DECLARE_SCRIPT(Marcus)
@@ -274,20 +274,20 @@ DECLARE_SCRIPT(Mia)
 END_SCRIPT
 
 DECLARE_SCRIPT(OfficerLeary)
-	int var_45D5B8;
-	int var_45D5BC;
+	int _varChooseIdleAnimation;
+	bool _idleModeRequestedWhileInTalkingState;
 END_SCRIPT
 
 DECLARE_SCRIPT(OfficerGrayford)
-	int _var1;
+	int _varChooseIdleAnimation;
 	bool _resumeIdleAfterFramesetCompletesFlag;
-	int _var3;
+	int _varNumOfTimesToHoldCurrentFrame;
 END_SCRIPT
 
 DECLARE_SCRIPT(Hanoi)
 	bool _resumeIdleAfterFramesetCompletesFlag;
-	bool _flag1;
-	int _var3;
+	int _varChooseIdleAnimation;
+	int _varNumOfTimesToHoldCurrentFrame;
 	int _var4;
 END_SCRIPT
 
@@ -295,13 +295,13 @@ DECLARE_SCRIPT(Baker)
 END_SCRIPT
 
 DECLARE_SCRIPT(DeskClerk)
-	bool _flag1;
+	int  _varChooseIdleAnimation;
 	bool _resumeIdleAfterFramesetCompletesFlag;
-	int _var3;
+	int _varNumOfTimesToHoldCurrentFrame;
 END_SCRIPT
 
 DECLARE_SCRIPT(HowieLee)
-	bool var_45DFB8;
+	int _varIdleStatesToggle;
 END_SCRIPT
 
 DECLARE_SCRIPT(FishDealer)
@@ -429,8 +429,8 @@ END_SCRIPT
 
 DECLARE_SCRIPT(Isabella)
 	int _var1;
-	int _var2;
-	int _var3;
+	int _varNumOfTimesToHoldCurrentFrame;
+	int _varChooseIdleAnimation;
 	int _var4;
 END_SCRIPT
 
@@ -473,9 +473,9 @@ END_SCRIPT
 DECLARE_SCRIPT(Maggie)
 	int var_45F3F8;
 	int var_45F3FC;
-	int var_45F400;
-	int var_45F404;
-	int var_45F408;
+	int var_45F400; // only set to 0. unused
+	int var_45F404; // only set to 0. unused
+	int var_45F408; // only set to 0. unused
 
 	int randomWaypointMA02();
 	float distanceToActor(int actorId, float x, float y, float z);
diff --git a/engines/bladerunner/script/scene/bb11.cpp b/engines/bladerunner/script/scene/bb11.cpp
index edf7046b84..2085c2a7bf 100644
--- a/engines/bladerunner/script/scene/bb11.cpp
+++ b/engines/bladerunner/script/scene/bb11.cpp
@@ -45,17 +45,17 @@ void SceneScriptBB11::InitializeScene() {
 
 	if (Game_Flag_Query(kFlagBB11SadikFight)) {
 		Preload(kModelAnimationMcCoyIdle);
-		Preload(220);
-		Preload(227);
-		Preload(328);
-		Preload(343);
-		Preload(344);
+		Preload(kModelAnimationClovisWalking);
+		Preload(kModelAnimationClovisIdle);
+		Preload(kModelAnimationSadikIdle);
+		Preload(kModelAnimationSadikKicksSomeoneWhoIsDown);
+		Preload(kModelAnimationSadikHoldsSomeoneAndPunches);
 		Preload(kModelAnimationMcCoyGotHitRight);
 		Preload(kModelAnimationMcCoyRunning);
-		Preload(324);
-		Preload(323);
+		Preload(kModelAnimationSadikRunning);
+		Preload(kModelAnimationSadikWalking);
 		Preload(kModelAnimationMcCoyFallsOnHisBack);
-		Preload(345);
+		Preload(kModelAnimationSadikPicksUpAndThrowsMcCoy);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ct02.cpp b/engines/bladerunner/script/scene/ct02.cpp
index 7b191ffb32..4a22b35833 100644
--- a/engines/bladerunner/script/scene/ct02.cpp
+++ b/engines/bladerunner/script/scene/ct02.cpp
@@ -122,9 +122,9 @@ void SceneScriptCT02::SceneLoaded() {
 		Preload(kModelAnimationMcCoyWithGunWalking);
 		Preload(kModelAnimationMcCoyWithGunWalking); // A bug? Why is this preloaded twice?
 		Preload(kModelAnimationMcCoyDodgeAndDrawGun);
-		Preload(400);
-		Preload(419);
-		Preload(420);
+		Preload(kModelAnimationZubenRunning);
+		Preload(kModelAnimationZubenToppleSoupCauldron);
+		Preload(kModelAnimationZubenBashOnDoor);
 	}
 	if (Game_Flag_Query(kFlagCT02McCoyCombatReady)) {
 		Game_Flag_Reset(kFlagCT02McCoyCombatReady);
diff --git a/engines/bladerunner/script/scene/ct06.cpp b/engines/bladerunner/script/scene/ct06.cpp
index 963a53f6fd..594a7185bc 100644
--- a/engines/bladerunner/script/scene/ct06.cpp
+++ b/engines/bladerunner/script/scene/ct06.cpp
@@ -70,11 +70,11 @@ void SceneScriptCT06::SceneLoaded() {
 	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06HideAtFreeSlotA) {
 		Preload(kModelAnimationMcCoyWithGunWalking);
 		Preload(kModelAnimationMcCoyWithGunRunning);
-		Preload(389);
-		Preload(390);
-		Preload(398);
-		Preload(421);
-		Preload(421);
+		Preload(kModelAnimationZubenCombatHitFront);
+		Preload(kModelAnimationZubenCombatHitBack);
+		Preload(kModelAnimationZubenCleaverAttack);
+		Preload(kModelAnimationZubenJumpDownFromCeiling);
+		Preload(kModelAnimationZubenJumpDownFromCeiling); // A bug? Why is this preloaded twice?
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/hc01.cpp b/engines/bladerunner/script/scene/hc01.cpp
index 7399346ddf..041bf0bf5f 100644
--- a/engines/bladerunner/script/scene/hc01.cpp
+++ b/engines/bladerunner/script/scene/hc01.cpp
@@ -75,18 +75,18 @@ void SceneScriptHC01::SceneLoaded() {
 	Obstacle_Object("PILLAR", true);
 	if (Game_Flag_Query(kFlagAR01toHC01)) {
 		Preload(kModelAnimationMcCoyIdle);
-		Preload(426);
-		Preload(430);
-		Preload(437);
-		Preload(427);
-		Preload(431);
-		Preload(433);
-		Preload(424);
-		Preload(428);
-		Preload(436);
-		Preload(429);
-		Preload(425);
-		Preload(432);
+		Preload(kModelGenWalkerHattedPersonWithUmbrellaStandsStill);
+		Preload(kModelGenWalkerHoodedPersonWithUmbrellaStandsStill);
+		Preload(kModelGenWalkerHattedLadyWithWoodenUmbrellaStandsStill);
+		Preload(kModelGenWalkerHattedPersonNoUmbrellaStandsStill);
+		Preload(kModelGenWalkerPunkPersonWithGlassesAndBeardStandsStill);
+		Preload(kModelGenWalkerPunkPersonWithGlassesStandsStill);
+		Preload(kModelGenWalkerHattedPersonWithUmbrella);
+		Preload(kModelGenWalkerHoodedPersonWithUmbrella);
+		Preload(kModelGenWalkerHattedPersonWithWoodenUmbrella);
+		Preload(kModelGenWalkerPunkPersonWithGlassesAndBeard);
+		Preload(kModelGenWalkerHattedPersonNoUmbrellaSmallSteps);
+		Preload(kModelGenWalkerPunkPersonWithGlasses);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp
index ec9f8743c1..a54e9ef2e1 100644
--- a/engines/bladerunner/script/scene/rc01.cpp
+++ b/engines/bladerunner/script/scene/rc01.cpp
@@ -201,8 +201,8 @@ void SceneScriptRC01::SceneLoaded() {
 		Preload(kModelAnimationMcCoyWalking);
 		Preload(kModelAnimationMcCoyRunning);
 		Preload(kModelAnimationMcCoyIdle);
-		Preload(582);
-		Preload(589);
+		Preload(kModelAnimationOfficerLearyWalking);
+		Preload(kModelAnimationOfficerLearyOscillateIdle);
 	}
 
 	if (!Game_Flag_Query(kFlagRC01ChromeDebrisTaken)) {




More information about the Scummvm-git-logs mailing list