summaryrefslogtreecommitdiffstats
path: root/src/animation
diff options
context:
space:
mode:
Diffstat (limited to 'src/animation')
-rw-r--r--src/animation/AnimBlendAssocGroup.cpp2
-rw-r--r--src/animation/AnimBlendAssociation.h3
-rw-r--r--src/animation/AnimManager.cpp133
-rw-r--r--src/animation/AnimationId.h6
4 files changed, 73 insertions, 71 deletions
diff --git a/src/animation/AnimBlendAssocGroup.cpp b/src/animation/AnimBlendAssocGroup.cpp
index c5711fda..83c1742a 100644
--- a/src/animation/AnimBlendAssocGroup.cpp
+++ b/src/animation/AnimBlendAssocGroup.cpp
@@ -104,7 +104,7 @@ strcmpIgnoringDigits(const char *s1, const char *s2)
c2 = toupper(c2);
#endif
- if(c1 != c2)
+ if(c1 && c2 && c1 != c2)
return false;
}
}
diff --git a/src/animation/AnimBlendAssociation.h b/src/animation/AnimBlendAssociation.h
index 90e0cfd9..f6d98fc3 100644
--- a/src/animation/AnimBlendAssociation.h
+++ b/src/animation/AnimBlendAssociation.h
@@ -84,7 +84,8 @@ public:
void SetRun(void) { flags |= ASSOC_RUNNING; }
- inline float GetTimeLeft() { return hierarchy->totalLength - currentTime; }
+ float GetTimeLeft() { return hierarchy->totalLength - currentTime; }
+ float GetProgress() { return currentTime / hierarchy->totalLength; }
static CAnimBlendAssociation *FromLink(CAnimBlendLink *l) {
return (CAnimBlendAssociation*)((uint8*)l - offsetof(CAnimBlendAssociation, link));
diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp
index 55bd7d53..16207f54 100644
--- a/src/animation/AnimManager.cpp
+++ b/src/animation/AnimManager.cpp
@@ -134,13 +134,13 @@ AnimAssocDesc aStdAnimDescs[] = {
{ ANIM_DRIVE_LOW_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
{ ANIM_DRIVEBY_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
{ ANIM_DRIVEBY_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
- { ANIM_DRIVEBY_L_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
- { ANIM_DRIVEBY_L_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
+ { ANIM_DRIVEBY_LOW_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
+ { ANIM_DRIVEBY_LOW_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
{ ANIM_CAR_LB, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
{ ANIM_DRIVE_BOAT, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING },
{ ANIM_DRIVE_BOAT_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
{ ANIM_DRIVE_BOAT_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
- { ANIM_DRIVE_BOAT_BACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
+ { ANIM_BOAT_LB, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING },
{ ANIM_BIKE_PICKUP_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_BIKE_PICKUP_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_BIKE_PULLUP_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
@@ -899,70 +899,71 @@ char const* aChainsawStrafeRightAnimations[] = {
};
-
+#define awc(a) ARRAY_SIZE(a), a
const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS] = {
- { "man", "ped", MI_COP, 173, aStdAnimations, aStdAnimDescs },
- { "van", "van", MI_COP, 8, aVanAnimations, aVanAnimDescs },
- { "coach", "coach", MI_COP, 5, aCoachAnimations, aCoachAnimDescs },
- { "bikes", "bikes", MI_COP, 18, aBikesAnimations, aBikeAnimDescs },
- { "bikev", "bikev", MI_COP, 18, aBikevAnimations, aBikeAnimDescs },
- { "bikeh", "bikeh", MI_COP, 18, aBikehAnimations, aBikeAnimDescs },
- { "biked", "biked", MI_COP, 18, aBikedAnimations, aBikeAnimDescs },
- { "unarmed", "ped", MI_COP, 3, aUnarmedAnimations, aMeleeAnimDescs },
- { "screwdrv", "ped", MI_COP, 5, aScrewdriverAnimations, aMeleeAnimDescs },
- { "knife", "knife", MI_COP, 5, aKnifeAnimations, aMeleeAnimDescs },
- { "baseball", "baseball", MI_COP, 5, aBaseballbatAnimations, aSwingAnimDescs },
- { "golfclub", "baseball", MI_COP, 5, aGolfclubAnimations, aSwingAnimDescs },
- { "chainsaw", "chainsaw", MI_COP, 3, aChainsawAnimations, aMeleeAnimDescs },
- { "python", "python", MI_COP, 4, aPythonAnimations, aWeaponAnimDescs },
- { "colt45", "colt45", MI_COP, 5, aColtAnimations, aWeaponAnimDescs },
- { "shotgun", "shotgun", MI_COP, 2, aShotgunAnimations, aWeaponAnimDescs },
- { "buddy", "buddy", MI_COP, 2, aBuddyAnimations, aWeaponAnimDescs },
- { "tec", "tec", MI_COP, 4, aTecAnimations, aWeaponAnimDescs },
- { "uzi", "uzi", MI_COP, 4, aUziAnimations, aWeaponAnimDescs },
- { "rifle", "rifle", MI_COP, 4, aRifleAnimations, aWeaponAnimDescs },
- { "m60", "m60", MI_COP, 3, aM60Animations, aWeaponAnimDescs },
- { "sniper", "sniper", MI_COP, 1, aSniperAnimations, aWeaponAnimDescs },
- { "grenade", "grenade", MI_COP, 3, aThrowAnimations, aWeaponAnimDescs },
- { "flame", "flame", MI_COP, 1, aFlamethrowerAnimations, aWeaponAnimDescs },
- { "medic", "medic", MI_COP, 1, aMedicAnimations, aMedicAnimDescs },
- { "sunbathe", "sunbathe", MI_COP, 1, aSunbatheAnimations, aSunbatheAnimDescs },
- { "playidles", "playidles", MI_COP, 4, aPlayerIdleAnimations, aPlayerIdleAnimDescs },
- { "riot", "riot", MI_COP, 7, aRiotAnimations, aRiotAnimDescs },
- { "strip", "strip", MI_COP, 7, aStripAnimations, aStripAnimDescs },
- { "lance", "lance", MI_COP, 1, aLanceAnimations, aSunbatheAnimDescs },
- { "player", "ped", MI_COP, 5, aPlayerAnimations, aStdAnimDescs },
- { "playerrocket", "ped", MI_COP, 5, aPlayerWithRocketAnimations, aStdAnimDescs },
- { "player1armed", "ped", MI_COP, 5, aPlayer1ArmedAnimations, aStdAnimDescs },
- { "player2armed", "ped", MI_COP, 5, aPlayer2ArmedAnimations, aStdAnimDescs },
- { "playerBBBat", "ped", MI_COP, 5, aPlayerBBBatAnimations, aStdAnimDescs },
- { "playercsaw", "ped", MI_COP, 5, aPlayerChainsawAnimations, aStdAnimDescs },
- { "shuffle", "ped", MI_COP, 4, aShuffleAnimations, aStdAnimDescs },
- { "oldman", "ped", MI_COP, 4, aOldAnimations, aStdAnimDescs },
- { "gang1", "ped", MI_COP, 4, aGang1Animations, aStdAnimDescs },
- { "gang2", "ped", MI_COP, 4, aGang2Animations, aStdAnimDescs },
- { "fatman", "ped", MI_COP, 4, aFatAnimations, aStdAnimDescs },
- { "oldfatman", "ped", MI_COP, 4, aOldFatAnimations, aStdAnimDescs },
- { "jogger", "ped", MI_COP, 4, aJoggerAnimations, aStdAnimDescs },
- { "woman", "ped", MI_COP, 4, aStdWomanAnimations, aStdAnimDescs },
- { "shopping", "ped", MI_COP, 4, aWomanShopAnimations, aStdAnimDescs },
- { "busywoman", "ped", MI_COP, 4, aBusyWomanAnimations, aStdAnimDescs },
- { "sexywoman", "ped", MI_COP, 4, aSexyWomanAnimations, aStdAnimDescs },
- { "fatwoman", "ped", MI_COP, 4, aFatWomanAnimations, aStdAnimDescs },
- { "oldwoman", "ped", MI_COP, 4, aOldWomanAnimations, aStdAnimDescs },
- { "jogwoman", "ped", MI_COP, 4, aJoggerWomanAnimations, aStdAnimDescs },
- { "panicchunky", "ped", MI_COP, 4, aPanicChunkyAnimations, aStdAnimDescs },
- { "skate", "skate", MI_COP, 4, aSkateAnimations, aStdAnimDescs },
- { "playerback", "ped", MI_COP, 5, aPlayerStrafeBackAnimations, aStdAnimDescs },
- { "playerleft", "ped", MI_COP, 5, aPlayerStrafeLeftAnimations, aStdAnimDescsSide },
- { "playerright", "ped", MI_COP, 5, aPlayerStrafeRightAnimations, aStdAnimDescsSide },
- { "rocketback", "ped", MI_COP, 5, aRocketStrafeBackAnimations, aStdAnimDescs },
- { "rocketleft", "ped", MI_COP, 5, aRocketStrafeLeftAnimations, aStdAnimDescsSide },
- { "rocketright", "ped", MI_COP, 5, aRocketStrafeRightAnimations, aStdAnimDescsSide },
- { "csawback", "ped", MI_COP, 5, aChainsawStrafeBackAnimations, aStdAnimDescs },
- { "csawleft", "ped", MI_COP, 5, aChainsawStrafeLeftAnimations, aStdAnimDescsSide },
- { "csawright", "ped", MI_COP, 5, aChainsawStrafeRightAnimations, aStdAnimDescsSide },
-};
+ { "man", "ped", MI_COP, awc(aStdAnimations), aStdAnimDescs },
+ { "van", "van", MI_COP, awc(aVanAnimations), aVanAnimDescs },
+ { "coach", "coach", MI_COP, awc(aCoachAnimations), aCoachAnimDescs },
+ { "bikes", "bikes", MI_COP, awc(aBikesAnimations), aBikeAnimDescs },
+ { "bikev", "bikev", MI_COP, awc(aBikevAnimations), aBikeAnimDescs },
+ { "bikeh", "bikeh", MI_COP, awc(aBikehAnimations), aBikeAnimDescs },
+ { "biked", "biked", MI_COP, awc(aBikedAnimations), aBikeAnimDescs },
+ { "unarmed", "ped", MI_COP, awc(aUnarmedAnimations), aMeleeAnimDescs },
+ { "screwdrv", "ped", MI_COP, awc(aScrewdriverAnimations), aMeleeAnimDescs },
+ { "knife", "knife", MI_COP, awc(aKnifeAnimations), aMeleeAnimDescs },
+ { "baseball", "baseball", MI_COP, awc(aBaseballbatAnimations), aSwingAnimDescs },
+ { "golfclub", "baseball", MI_COP, awc(aGolfclubAnimations), aSwingAnimDescs },
+ { "chainsaw", "chainsaw", MI_COP, awc(aChainsawAnimations), aMeleeAnimDescs },
+ { "python", "python", MI_COP, awc(aPythonAnimations), aWeaponAnimDescs },
+ { "colt45", "colt45", MI_COP, awc(aColtAnimations), aWeaponAnimDescs },
+ { "shotgun", "shotgun", MI_COP, awc(aShotgunAnimations), aWeaponAnimDescs },
+ { "buddy", "buddy", MI_COP, awc(aBuddyAnimations), aWeaponAnimDescs },
+ { "tec", "tec", MI_COP, awc(aTecAnimations), aWeaponAnimDescs },
+ { "uzi", "uzi", MI_COP, awc(aUziAnimations), aWeaponAnimDescs },
+ { "rifle", "rifle", MI_COP, awc(aRifleAnimations), aWeaponAnimDescs },
+ { "m60", "m60", MI_COP, awc(aM60Animations), aWeaponAnimDescs },
+ { "sniper", "sniper", MI_COP, awc(aSniperAnimations), aWeaponAnimDescs },
+ { "grenade", "grenade", MI_COP, awc(aThrowAnimations), aWeaponAnimDescs },
+ { "flame", "flame", MI_COP, awc(aFlamethrowerAnimations), aWeaponAnimDescs },
+ { "medic", "medic", MI_COP, awc(aMedicAnimations), aMedicAnimDescs },
+ { "sunbathe", "sunbathe", MI_COP, 1, aSunbatheAnimations, aSunbatheAnimDescs }, // NB: not using awc here!
+ { "playidles", "playidles", MI_COP, awc(aPlayerIdleAnimations), aPlayerIdleAnimDescs },
+ { "riot", "riot", MI_COP, awc(aRiotAnimations), aRiotAnimDescs },
+ { "strip", "strip", MI_COP, awc(aStripAnimations), aStripAnimDescs },
+ { "lance", "lance", MI_COP, awc(aLanceAnimations), aSunbatheAnimDescs },
+ { "player", "ped", MI_COP, awc(aPlayerAnimations), aStdAnimDescs },
+ { "playerrocket", "ped", MI_COP, awc(aPlayerWithRocketAnimations), aStdAnimDescs },
+ { "player1armed", "ped", MI_COP, awc(aPlayer1ArmedAnimations), aStdAnimDescs },
+ { "player2armed", "ped", MI_COP, awc(aPlayer2ArmedAnimations), aStdAnimDescs },
+ { "playerBBBat", "ped", MI_COP, awc(aPlayerBBBatAnimations), aStdAnimDescs },
+ { "playercsaw", "ped", MI_COP, awc(aPlayerChainsawAnimations), aStdAnimDescs },
+ { "shuffle", "ped", MI_COP, awc(aShuffleAnimations), aStdAnimDescs },
+ { "oldman", "ped", MI_COP, awc(aOldAnimations), aStdAnimDescs },
+ { "gang1", "ped", MI_COP, awc(aGang1Animations), aStdAnimDescs },
+ { "gang2", "ped", MI_COP, awc(aGang2Animations), aStdAnimDescs },
+ { "fatman", "ped", MI_COP, awc(aFatAnimations), aStdAnimDescs },
+ { "oldfatman", "ped", MI_COP, awc(aOldFatAnimations), aStdAnimDescs },
+ { "jogger", "ped", MI_COP, awc(aJoggerAnimations), aStdAnimDescs },
+ { "woman", "ped", MI_COP, awc(aStdWomanAnimations), aStdAnimDescs },
+ { "shopping", "ped", MI_COP, awc(aWomanShopAnimations), aStdAnimDescs },
+ { "busywoman", "ped", MI_COP, awc(aBusyWomanAnimations), aStdAnimDescs },
+ { "sexywoman", "ped", MI_COP, awc(aSexyWomanAnimations), aStdAnimDescs },
+ { "fatwoman", "ped", MI_COP, awc(aFatWomanAnimations), aStdAnimDescs },
+ { "oldwoman", "ped", MI_COP, awc(aOldWomanAnimations), aStdAnimDescs },
+ { "jogwoman", "ped", MI_COP, awc(aJoggerWomanAnimations), aStdAnimDescs },
+ { "panicchunky", "ped", MI_COP, awc(aPanicChunkyAnimations), aStdAnimDescs },
+ { "skate", "skate", MI_COP, awc(aSkateAnimations), aStdAnimDescs },
+ { "playerback", "ped", MI_COP, awc(aPlayerStrafeBackAnimations), aStdAnimDescs },
+ { "playerleft", "ped", MI_COP, awc(aPlayerStrafeLeftAnimations), aStdAnimDescsSide },
+ { "playerright", "ped", MI_COP, awc(aPlayerStrafeRightAnimations), aStdAnimDescsSide },
+ { "rocketback", "ped", MI_COP, awc(aRocketStrafeBackAnimations), aStdAnimDescs },
+ { "rocketleft", "ped", MI_COP, awc(aRocketStrafeLeftAnimations), aStdAnimDescsSide },
+ { "rocketright", "ped", MI_COP, awc(aRocketStrafeRightAnimations), aStdAnimDescsSide },
+ { "csawback", "ped", MI_COP, awc(aChainsawStrafeBackAnimations), aStdAnimDescs },
+ { "csawleft", "ped", MI_COP, awc(aChainsawStrafeLeftAnimations), aStdAnimDescsSide },
+ { "csawright", "ped", MI_COP, awc(aChainsawStrafeRightAnimations), aStdAnimDescsSide },
+};
+#undef awc
void
CAnimManager::Initialise(void)
diff --git a/src/animation/AnimationId.h b/src/animation/AnimationId.h
index 9fe0cb0e..a84aa3e8 100644
--- a/src/animation/AnimationId.h
+++ b/src/animation/AnimationId.h
@@ -118,13 +118,13 @@ enum AnimationId
ANIM_DRIVE_LOW_R,
ANIM_DRIVEBY_L,
ANIM_DRIVEBY_R,
- ANIM_DRIVEBY_L_L, // TODO: is this LOW?
- ANIM_DRIVEBY_L_R,
+ ANIM_DRIVEBY_LOW_L,
+ ANIM_DRIVEBY_LOW_R,
ANIM_CAR_LB,
ANIM_DRIVE_BOAT,
ANIM_DRIVE_BOAT_L,
ANIM_DRIVE_BOAT_R,
- ANIM_DRIVE_BOAT_BACK,
+ ANIM_BOAT_LB,
ANIM_BIKE_PICKUP_R,
ANIM_BIKE_PICKUP_L,