1
0
Fork 0
mirror of https://git.rip/DMCA_FUCKER/re3.git synced 2024-12-23 20:30:02 +00:00

Merge remote-tracking branch 'upstream/lcs' into lcs

This commit is contained in:
Nikolay Korolev 2021-01-09 17:35:52 +03:00
commit b32301592f
21 changed files with 915 additions and 494 deletions

View file

@ -39,14 +39,14 @@ AnimAssocDesc aStdAnimDescs[] = {
{ ANIM_KO_SHOT_FRONT2, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, { ANIM_KO_SHOT_FRONT2, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL },
{ ANIM_KO_SHOT_FRONT3, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, { ANIM_KO_SHOT_FRONT3, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL },
{ ANIM_KO_SHOT_FRONT4, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, { ANIM_KO_SHOT_FRONT4, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL },
{ ANIM_KO_SHOT_FACE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, { ANIM_KO_SHOT_FACE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_KO_SHOT_STOM, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_KO_SHOT_STOM, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL },
{ ANIM_KO_SHOT_ARML, ASSOC_PARTIAL | ASSOC_FRONTAL }, { ANIM_KO_SHOT_ARML, ASSOC_PARTIAL | ASSOC_FRONTAL },
{ ANIM_KO_SHOT_ARMR, ASSOC_PARTIAL | ASSOC_FRONTAL }, { ANIM_KO_SHOT_ARMR, ASSOC_PARTIAL | ASSOC_FRONTAL },
{ ANIM_KO_SHOT_LEGL, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_KO_SHOT_LEGL, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_KO_SHOT_LEGR, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_KO_SHOT_LEGR, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_KD_LEFT, ASSOC_PARTIAL | ASSOC_FRONTAL }, { ANIM_KD_LEFT, ASSOC_PARTIAL },
{ ANIM_KD_RIGHT, ASSOC_PARTIAL | ASSOC_FRONTAL }, { ANIM_KD_RIGHT, ASSOC_PARTIAL },
{ ANIM_KO_SKID_FRONT, ASSOC_PARTIAL }, { ANIM_KO_SKID_FRONT, ASSOC_PARTIAL },
{ ANIM_KO_SPIN_R, ASSOC_PARTIAL }, { ANIM_KO_SPIN_R, ASSOC_PARTIAL },
{ ANIM_KO_SKID_BACK, ASSOC_PARTIAL | ASSOC_FRONTAL }, { ANIM_KO_SKID_BACK, ASSOC_PARTIAL | ASSOC_FRONTAL },
@ -60,30 +60,25 @@ AnimAssocDesc aStdAnimDescs[] = {
{ ANIM_HIT_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_HIT_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_HIT_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FLOOR_HIT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_FLOOR_HIT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL },
{ ANIM_HIT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_CHEST, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_WALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_WALL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_HIT_WALL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FLOOR_HIT_F, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, { ANIM_FLOOR_HIT_F, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL },
{ ANIM_HIT_BEHIND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_HIT_BEHIND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FIGHT_IDLE, ASSOC_REPEAT }, { ANIM_FIGHT_IDLE, ASSOC_REPEAT },
{ ANIM_FIGHT2_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_FIGHT2_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FIGHT_SH_F, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_FIGHT_SH_F, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FIGHT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FIGHT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FIGHT_KICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FIGHT_KNEE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FIGHT_LHOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FIGHT_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FIGHT_ROUNDHOUSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FIGHT_LONGKICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FIGHT_PPUNCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_NOWALK }, { ANIM_FIGHT_PPUNCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_NOWALK },
{ ANIM_FIGHT_JAB, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_L_HOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FIGHT_ELBOW_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_R_HOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FIGHT_ELBOW_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_UPPERCUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FIGHT_BKICK_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_HEADBUTT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FIGHT_BKICK_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_FRONTKICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_ROUNDHOUSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_L_HOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_R_HOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_UPPERCUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_HEADBUTT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_FRONTKICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HIT_RHOUSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_BOMBER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_BOMBER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_PUNCH_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_PUNCH_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_FIGHT_PPUNCH2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_FIGHT_PPUNCH2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
@ -153,27 +148,28 @@ AnimAssocDesc aStdAnimDescs[] = {
{ ANIM_CAR_GETOUT_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_CAR_GETOUT_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_CAR_CLOSE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_CAR_CLOSE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_CAR_HOOKERTALK, ASSOC_REPEAT | ASSOC_PARTIAL }, { ANIM_CAR_HOOKERTALK, ASSOC_REPEAT | ASSOC_PARTIAL },
{ ANIM_TRAIN_GETIN, ASSOC_PARTIAL }, { ANIM_TRAIN_GETIN, ASSOC_DELETEFADEDOUT },
{ ANIM_TRAIN_GETOUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_TRAIN_GETOUT, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE },
{ ANIM_CAR_CRAWLOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_CAR_CRAWLOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_CAR_CRAWLOUT_RHS2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_CAR_CRAWLOUT_RHS2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_CAR_ROLLOUT_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, { ANIM_CAR_ROLLOUT_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_FRONTAL },
{ ANIM_CAR_ROLLOUT_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, { ANIM_CAR_ROLLOUT_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_FRONTAL },
{ ANIM_GETUP1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_GETUP1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_GETUP2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_GETUP2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_GETUP3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_GETUP3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_GETUP_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_GETUP_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_JUMP_LAUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_JUMP_LAUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_JUMP_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_JUMP_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL },
{ ANIM_JUMP_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_JUMP_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FALL_FALL, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_FALL_FALL, ASSOC_DELETEFADEDOUT },
{ ANIM_FALL_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_FALL_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL },
{ ANIM_FALL_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_FALL_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FALL_COLLAPSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_FALL_COLLAPSE, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FALL_BACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_FALL_BACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL },
{ ANIM_FALL_FRONT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, { ANIM_FALL_FRONT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL },
{ ANIM_EV_STEP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_EV_STEP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_EV_DIVE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, { ANIM_EV_DIVE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL },
{ ANIM_COMMANDO_ROLL, ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL },
{ ANIM_XPRESS_SCRATCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, { ANIM_XPRESS_SCRATCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_ROAD_CROSS, ASSOC_REPEAT | ASSOC_PARTIAL }, { ANIM_ROAD_CROSS, ASSOC_REPEAT | ASSOC_PARTIAL },
{ ANIM_TURN_180, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_TURN_180, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
@ -182,7 +178,7 @@ AnimAssocDesc aStdAnimDescs[] = {
{ ANIM_DUCK_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_DUCK_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL },
{ ANIM_DUCK_LOW, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_DUCK_LOW, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL },
{ ANIM_WEAPON_CROUCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_WEAPON_CROUCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL },
{ ANIM_RBLOCK_CSHOOT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_RBLOCK_CSHOOT, ASSOC_RUNNING },
{ ANIM_HANDSUP, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_HANDSUP, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_HANDSCOWER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_HANDSCOWER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_FUCKU, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, { ANIM_FUCKU, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK },
@ -252,16 +248,15 @@ AnimAssocDesc aWeaponAnimDescs[] = {
{ ANIM_WEAPON_CROUCHFIRE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_WEAPON_CROUCHFIRE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_WEAPON_RELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_WEAPON_RELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_WEAPON_CROUCHRELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_WEAPON_CROUCHRELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_WEAPON_SPECIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
}; };
AnimAssocDesc aMedicAnimDescs[] = { AnimAssocDesc aMedicAnimDescs[] = {
{ ANIM_CPR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_CPR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
}; };
AnimAssocDesc aSunbatheAnimDescs[] = { AnimAssocDesc aSunbatheAnimDescs[] = {
{ ANIM_SUNBATHE, ASSOC_REPEAT | ASSOC_PARTIAL }, { ANIM_SUNBATHE, ASSOC_REPEAT | ASSOC_PARTIAL },
{ ANIM_SUNBATHE_DOWN, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, { ANIM_SUNBATHE_DOWN, ASSOC_HAS_X_TRANSLATION | ASSOC_HAS_TRANSLATION | ASSOC_PARTIAL },
{ ANIM_SUNBATHE_UP, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, { ANIM_SUNBATHE_UP, ASSOC_HAS_X_TRANSLATION | ASSOC_HAS_TRANSLATION | ASSOC_PARTIAL },
{ ANIM_SUNBATHE_ESCAPE, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, { ANIM_SUNBATHE_ESCAPE, ASSOC_HAS_X_TRANSLATION | ASSOC_HAS_TRANSLATION | ASSOC_PARTIAL },
}; };
AnimAssocDesc aPlayerIdleAnimDescs[] = { AnimAssocDesc aPlayerIdleAnimDescs[] = {
{ ANIM_IDLE_STRETCH, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_IDLE_STRETCH, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
@ -287,7 +282,6 @@ AnimAssocDesc aStripAnimDescs[] = {
{ ANIM_STRIP_F, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_STRIP_F, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_STRIP_G, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_STRIP_G, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
}; };
#ifdef PC_PLAYER_CONTROLS
AnimAssocDesc aStdAnimDescsSide[] = { AnimAssocDesc aStdAnimDescsSide[] = {
{ ANIM_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, { ANIM_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK },
{ ANIM_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, { ANIM_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK },
@ -295,7 +289,105 @@ AnimAssocDesc aStdAnimDescsSide[] = {
{ ANIM_IDLE_STANCE, ASSOC_REPEAT }, { ANIM_IDLE_STANCE, ASSOC_REPEAT },
{ ANIM_WALK_START, ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, { ANIM_WALK_START, ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION },
}; };
#endif AnimAssocDesc aMPNoteAnimDescs[] = {
{ ANIM_MPNOTE, ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_MPNOTE_LOOP, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aCSMiscAnimDescs[] = {
{ ANIM_IDLE_LOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_IDLE_NO, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_IDLE_YES, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_IDLE_CHAT2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_IDLE_COUGH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_IDLE_GIGGLE_FEMALE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_IDLE_TOUGH_CHAT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_IDLE_CELL_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aDONH2AnimDescs[] = {
{ ANIM_DONH2_CAMERA, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aDONH3AnimDescs[] = {
{ ANIM_DONH3_HAPPY, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aJDT2AnimDescs[] = {
{ ANIM_JDT2_ANXIOUS_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_JDT2_SHRUG, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aJDT4AnimDescs[] = {
{ ANIM_JDT4_DILDO_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aJDT5AnimDescs[] = {
{ ANIM_JDT5_CALM_DOWN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_JDT5_POINT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aJDT6AnimDescs[] = {
{ ANIM_JDT6_PICKUP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_JDT6_DOORKNOCK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aMAR1AnimDescs[] = {
{ ANIM_MAR1_SKIRT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aMAR2AnimDescs[] = {
{ ANIM_MAR2_CELL_ANSWER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_MAR2_CELL_END, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_MAR2_CELL_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_MAR2_FOOT_TAP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aMAR3AnimDescs[] = {
{ ANIM_MAR3_HOOCHY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_MAR3_NOTE_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_MAR3_NOTE_PICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aSAL1AnimDescs[] = {
{ ANIM_SAL1_BIREFCASE_DOWN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aSAL2AnimDescs[] = {
{ ANIM_SAL2_IDLE_SEATED, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_SAL2_SEAT_TO_STAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aSAL3AnimDescs[] = {
{ ANIM_SAL3_SEATED_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_SAL3_SEATED_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_SAL3_SIT_DOWN, ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aSAL4AnimDescs[] = {
{ ANIM_SAL4_DUSTDOWN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_SAL4_GIRLRUN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aSAL6AnimDescs[] = {
{ ANIM_SAL6_ANGRY_SEATED, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_SAL6_IDLE_SEATED, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aSAL7AnimDescs[] = {
{ ANIM_SAL7_LOOKOUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aVIC2AnimDescs[] = {
{ ANIM_VIC2_POINT_ANGRY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aVIC3AnimDescs[] = {
{ ANIM_VIC3_WAFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_VIC3_PICKUP_ROLL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aVIC4AnimDescs[] = {
{ ANIM_VIC4_CARRY_BOX, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_VIC4_CELL_LOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_VIC4_CRATE_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aVIC6AnimDescs[] = {
{ ANIM_VIC6_CELL_ANGRY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aTouristAnimDescs[] = {
{ ANIM_TOURIST3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_TOURIST2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
{ ANIM_TOURIST1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aMAC2AnimDescs[] = {
{ ANIM_MAC2_PLEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
AnimAssocDesc aVIC7AnimDescs[] = {
{ ANIM_VIC7_PROD_WITH_FOOT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE },
};
char const *aStdAnimations[] = { char const *aStdAnimations[] = {
"walk_civi", "walk_civi",
"run_civi", "run_civi",
@ -320,8 +412,8 @@ char const* aStdAnimations[] = {
"KO_shot_armR", "KO_shot_armR",
"KO_shot_legl", "KO_shot_legl",
"KO_shot_legR", "KO_shot_legR",
"KD_left", "BIKE_fall_off",
"KD_right", "BIKE_fall_off",
"KO_skid_front", "KO_skid_front",
"KO_spin_R", "KO_spin_R",
"KO_skid_back", "KO_skid_back",
@ -335,30 +427,28 @@ char const* aStdAnimations[] = {
"HIT_back", "HIT_back",
"HIT_R", "HIT_R",
"FLOOR_hit", "FLOOR_hit",
"HIT_bodyblow",
"HIT_chest",
"HIT_head",
"HIT_walk",
"HIT_wall", "HIT_wall",
"FLOOR_hit_f", "FLOOR_hit_f",
"HIT_behind", "HIT_behind",
"FIGHTIDLE", "FIGHTIDLE",
"FIGHT2IDLE", "FIGHT2IDLE",
"FIGHTsh_F", "FIGHTsh_F",
"FIGHTbodyblow",
"FIGHThead",
"FIGHTkick",
"FIGHTknee",
"FIGHTLhook",
"FIGHTpunch",
"FIGHTrndhse",
"FIGHTlngkck",
"FIGHTppunch", "FIGHTppunch",
"FIGHTjab",
"FIGHTelbowL", "l_hook",
"FIGHTelbowR", "r_hook",
"FIGHTbkickL", "uppercut",
"FIGHTbkickR", "headbutt",
"frontkick",
"roundhouse",
"hit_l_hook",
"hit_r_hook",
"hit_uppercut",
"hit_headbutt",
"hit_frontkick",
"hit_rhouse",
"bomber", "bomber",
"punchR", "punchR",
"FIGHTppunch", "FIGHTppunch",
@ -428,12 +518,13 @@ char const* aStdAnimations[] = {
"CAR_getoutL_RHS", "CAR_getoutL_RHS",
"CAR_close_RHS", "CAR_close_RHS",
"car_hookertalk", "car_hookertalk",
"idle_stance",
"idle_stance", "TRAIN_getin",
"TRAIN_getout",
"CAR_crawloutRHS", "CAR_crawloutRHS",
"CAR_crawloutRHS", "CAR_crawloutRHS",
"CAR_rollout_LHS", "CAR_rollout_LHS",
"CAR_rollout_LHS", "CAR_rollout_RHS",
"Getup", "Getup",
"Getup", "Getup",
"Getup", "Getup",
@ -449,6 +540,8 @@ char const* aStdAnimations[] = {
"FALL_front", "FALL_front",
"EV_step", "EV_step",
"EV_dive", "EV_dive",
"commando_roll",
"XPRESSscratch", "XPRESSscratch",
"roadcross", "roadcross",
"TURN_180", "TURN_180",
@ -483,9 +576,9 @@ char const* aVanAnimations[] = {
}; };
char const *aCoachAnimations[] = { char const *aCoachAnimations[] = {
"COACH_opnL", "COACH_opnL",
"COACH_opnL", "COACH_opnR",
"COACH_inL",
"COACH_inL", "COACH_inL",
"COACH_inR",
"COACH_outL", "COACH_outL",
}; };
char const *aBikesAnimations[] = { char const *aBikesAnimations[] = {
@ -574,11 +667,11 @@ char const* aUnarmedAnimations[] = {
"FIGHTppunch", "FIGHTppunch",
}; };
char const *aScrewdriverAnimations[] = { char const *aScrewdriverAnimations[] = {
"FIGHTbodyblow", "r_hook",
"FIGHTbodyblow", "r_hook",
"FIGHTppunch", "FIGHTppunch",
"FIGHTIDLE", "FIGHTIDLE",
"FIGHTbodyblow", "r_hook",
}; };
char const *aKnifeAnimations[] = { char const *aKnifeAnimations[] = {
"WEAPON_knife_1", "WEAPON_knife_1",
@ -626,6 +719,7 @@ char const* aShotgunAnimations[] = {
char const *aBuddyAnimations[] = { char const *aBuddyAnimations[] = {
"buddy_fire", "buddy_fire",
"buddy_crouchfire", "buddy_crouchfire",
"buddy_reload",
}; };
char const *aTecAnimations[] = { char const *aTecAnimations[] = {
"TEC_fire", "TEC_fire",
@ -651,7 +745,9 @@ char const* aM60Animations[] = {
"M60_reload", "M60_reload",
}; };
char const *aSniperAnimations[] = { char const *aSniperAnimations[] = {
"WEAPON_sniper", "sniper_fire",
"sniper_fire",
"sniper_reload",
}; };
char const *aThrowAnimations[] = { char const *aThrowAnimations[] = {
"WEAPON_throw", "WEAPON_throw",
@ -661,6 +757,11 @@ char const* aThrowAnimations[] = {
char const *aFlamethrowerAnimations[] = { char const *aFlamethrowerAnimations[] = {
"FLAME_fire", "FLAME_fire",
}; };
char const *aRocketLauncherAnimations[] = {
"rocket_fire",
"rocket_fire",
"rocket_reload",
};
char const *aMedicAnimations[] = { char const *aMedicAnimations[] = {
"CPR", "CPR",
}; };
@ -707,7 +808,7 @@ char const* aPlayerAnimations[] = {
char const *aPlayerWithRocketAnimations[] = { char const *aPlayerWithRocketAnimations[] = {
"walk_rocket", "walk_rocket",
"run_rocket", "run_rocket",
"run_rocket", "sprint_rocket",
"idle_rocket", "idle_rocket",
"walk_start_rocket", "walk_start_rocket",
}; };
@ -721,21 +822,21 @@ char const* aPlayer1ArmedAnimations[] = {
char const *aPlayer2ArmedAnimations[] = { char const *aPlayer2ArmedAnimations[] = {
"walk_armed", "walk_armed",
"run_armed", "run_armed",
"run_armed", "playersprint_armed",
"idle_armed", "idle_armed",
"walk_start_armed", "walk_start_armed",
}; };
char const* aPlayerBBBatAnimations[] = { char const *aAIChainsawAnimations[] = {
"walk_player", "walk_aicsaw",
"run_player", "run_aicsaw",
"run_player", "run_aicsaw",
"IDLE_STANCE", "IDLE_csaw",
"walk_start", "walk_start_aicsaw",
}; };
char const *aPlayerChainsawAnimations[] = { char const *aPlayerChainsawAnimations[] = {
"walk_csaw", "walk_csaw",
"run_csaw", "run_csaw",
"run_csaw", "sprint_csaw",
"IDLE_csaw", "IDLE_csaw",
"walk_start_csaw", "walk_start_csaw",
}; };
@ -835,7 +936,6 @@ char const* aSkateAnimations[] = {
"skate_sprint", "skate_sprint",
"skate_idle", "skate_idle",
}; };
#ifdef PC_PLAYER_CONTROLS
char const *aPlayerStrafeBackAnimations[] = { char const *aPlayerStrafeBackAnimations[] = {
"walk_back", "walk_back",
"run_back", "run_back",
@ -878,28 +978,104 @@ char const* aRocketStrafeRightAnimations[] = {
"idle_rocket", "idle_rocket",
"walkst_rocket_right", "walkst_rocket_right",
}; };
char const* aChainsawStrafeBackAnimations[] = { char const *aMPNoteAnimations[] = {
"walk_csaw_back", "MPNote",
"run_csaw_back", "MPNoteloop",
"run_csaw_back",
"idle_csaw",
"walkst_csaw_back",
}; };
char const* aChainsawStrafeLeftAnimations[] = { char const *aCSMiscAnimations[] = {
"walk_csaw_left", "IDLE_look",
"run_csaw_left", "IDLE_no",
"run_csaw_left", "IDLE_yes",
"idle_csaw", "IDLE_chat2",
"walkst_csaw_left", "IDLE_cough",
"IDLE_giggle_female",
"IDLE_tough_chat",
"IDLE_cell_talk",
}; };
char const* aChainsawStrafeRightAnimations[] = { char const *aDONH2Animations[] = {
"walk_csaw_right", "DONH2_camera",
"run_csaw_right", };
"run_csaw_right", char const *aDONH3Animations[] = {
"idle_csaw", "DONH3_happy",
"walkst_csaw_right", };
char const *aJDT2Animations[] = {
"JDT2_anxious_talk",
"JDT2_shrug",
};
char const *aJDT4Animations[] = {
"JDT4_dildo_talk",
};
char const *aJDT5Animations[] = {
"JDT5_calm_down",
"JDT5_point",
};
char const *aJDT6Animations[] = {
"JDT6_pickup",
"JDT6_doorknock",
};
char const *aMAR1Animations[] = {
"MAR1_skirt",
};
char const *aMAR2Animations[] = {
"MAR2_cell_answer",
"MAR2_cell_end",
"MAR2_cell_talk",
"MAR2_foot_tap",
};
char const *aMAR3Animations[] = {
"MAR3_hoochy",
"MAR3_note_idle",
"MAR3_note_pick",
};
char const *aSAL1Animations[] = {
"SAL1_briefcase_down",
};
char const *aSAL2Animations[] = {
"SAL2_idle_seated",
"SAL2_seat_to_stand",
};
char const *aSAL3Animations[] = {
"SAL3_seated_talk",
"SAL3_seated_idle",
"SAL3_sit_down",
};
char const *aSAL4Animations[] = {
"SAL4_dustdown",
"SAL4_girlrun",
};
char const *aSAL6Animations[] = {
"SAL6_angry_seated",
"SAL6_idle_seated",
};
char const *aSAL7Animations[] = {
"SAL7_lookout",
};
char const *aVIC2Animations[] = {
"VIC2_point_angry",
};
char const *aVIC3Animations[] = {
"VIC3_waft",
"VIC3_pickup_roll",
};
char const *aVIC4Animations[] = {
"VIC4_carry_box",
"VIC4_cell_look",
"VIC4_crate_idle",
};
char const *aVIC6Animations[] = {
"VIC6_cell_angry",
};
char const *aTouristAnimations[] = {
"tourist3",
"tourist2",
"tourist1",
};
char const *aMAC2Animations[] = {
"MAC2_plead",
};
char const *aVIC7Animations[] = {
"VIC7_prod_with_foot",
}; };
#endif
#define awc(a) ARRAY_SIZE(a), a #define awc(a) ARRAY_SIZE(a), a
const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS] = { const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS] = {
@ -927,6 +1103,7 @@ const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_
{ "sniper", "sniper", MI_COP, awc(aSniperAnimations), aWeaponAnimDescs }, { "sniper", "sniper", MI_COP, awc(aSniperAnimations), aWeaponAnimDescs },
{ "grenade", "grenade", MI_COP, awc(aThrowAnimations), aWeaponAnimDescs }, { "grenade", "grenade", MI_COP, awc(aThrowAnimations), aWeaponAnimDescs },
{ "flame", "flame", MI_COP, awc(aFlamethrowerAnimations), aWeaponAnimDescs }, { "flame", "flame", MI_COP, awc(aFlamethrowerAnimations), aWeaponAnimDescs },
{ "rocketla", "rocketla", MI_COP, awc(aRocketLauncherAnimations), aWeaponAnimDescs },
{ "medic", "medic", MI_COP, awc(aMedicAnimations), aMedicAnimDescs }, { "medic", "medic", MI_COP, awc(aMedicAnimations), aMedicAnimDescs },
{ "sunbathe", "sunbathe", MI_COP, 1, aSunbatheAnimations, aSunbatheAnimDescs }, // NB: not using awc here! { "sunbathe", "sunbathe", MI_COP, 1, aSunbatheAnimations, aSunbatheAnimDescs }, // NB: not using awc here!
{ "playidles", "playidles", MI_COP, awc(aPlayerIdleAnimations), aPlayerIdleAnimDescs }, { "playidles", "playidles", MI_COP, awc(aPlayerIdleAnimations), aPlayerIdleAnimDescs },
@ -937,7 +1114,8 @@ const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_
{ "playerrocket", "ped", MI_COP, awc(aPlayerWithRocketAnimations), aStdAnimDescs }, { "playerrocket", "ped", MI_COP, awc(aPlayerWithRocketAnimations), aStdAnimDescs },
{ "player1armed", "ped", MI_COP, awc(aPlayer1ArmedAnimations), aStdAnimDescs }, { "player1armed", "ped", MI_COP, awc(aPlayer1ArmedAnimations), aStdAnimDescs },
{ "player2armed", "ped", MI_COP, awc(aPlayer2ArmedAnimations), aStdAnimDescs }, { "player2armed", "ped", MI_COP, awc(aPlayer2ArmedAnimations), aStdAnimDescs },
{ "playerBBBat", "ped", MI_COP, awc(aPlayerBBBatAnimations), aStdAnimDescs }, { "playerBBBat", "ped", MI_COP, awc(aPlayer1ArmedAnimations), aStdAnimDescs },
{ "aicsaw2", "ped", MI_COP, awc(aAIChainsawAnimations), aStdAnimDescs },
{ "playercsaw", "ped", MI_COP, awc(aPlayerChainsawAnimations), aStdAnimDescs }, { "playercsaw", "ped", MI_COP, awc(aPlayerChainsawAnimations), aStdAnimDescs },
{ "shuffle", "ped", MI_COP, awc(aShuffleAnimations), aStdAnimDescs }, { "shuffle", "ped", MI_COP, awc(aShuffleAnimations), aStdAnimDescs },
{ "oldman", "ped", MI_COP, awc(aOldAnimations), aStdAnimDescs }, { "oldman", "ped", MI_COP, awc(aOldAnimations), aStdAnimDescs },
@ -955,17 +1133,39 @@ const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_
{ "jogwoman", "ped", MI_COP, awc(aJoggerWomanAnimations), aStdAnimDescs }, { "jogwoman", "ped", MI_COP, awc(aJoggerWomanAnimations), aStdAnimDescs },
{ "panicchunky", "ped", MI_COP, awc(aPanicChunkyAnimations), aStdAnimDescs }, { "panicchunky", "ped", MI_COP, awc(aPanicChunkyAnimations), aStdAnimDescs },
{ "skate", "skate", MI_COP, awc(aSkateAnimations), aStdAnimDescs }, { "skate", "skate", MI_COP, awc(aSkateAnimations), aStdAnimDescs },
#ifdef PC_PLAYER_CONTROLS #ifdef PC_PLAYER_CONTROLS // strangely enabled even on PS2
{ "playerback", "ped", MI_COP, awc(aPlayerStrafeBackAnimations), aStdAnimDescs }, { "playerback", "ped", MI_COP, awc(aPlayerStrafeBackAnimations), aStdAnimDescs },
{ "playerleft", "ped", MI_COP, awc(aPlayerStrafeLeftAnimations), aStdAnimDescsSide }, { "playerleft", "ped", MI_COP, awc(aPlayerStrafeLeftAnimations), aStdAnimDescsSide },
{ "playerright", "ped", MI_COP, awc(aPlayerStrafeRightAnimations), aStdAnimDescsSide }, { "playerright", "ped", MI_COP, awc(aPlayerStrafeRightAnimations), aStdAnimDescsSide },
{ "rocketback", "ped", MI_COP, awc(aRocketStrafeBackAnimations), aStdAnimDescs }, { "rocketback", "ped", MI_COP, awc(aRocketStrafeBackAnimations), aStdAnimDescs },
{ "rocketleft", "ped", MI_COP, awc(aRocketStrafeLeftAnimations), aStdAnimDescsSide }, { "rocketleft", "ped", MI_COP, awc(aRocketStrafeLeftAnimations), aStdAnimDescsSide },
{ "rocketright", "ped", MI_COP, awc(aRocketStrafeRightAnimations), 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 },
#endif #endif
{ "MPNote", "MPNote", MI_COP, awc(aMPNoteAnimations), aMPNoteAnimDescs },
{ "CS_MISC", "CS_MISC", MI_COP, awc(aCSMiscAnimations), aCSMiscAnimDescs },
{ "DONH2", "DONH2", MI_COP, awc(aDONH2Animations), aDONH2AnimDescs },
{ "DONH3", "DONH3", MI_COP, awc(aDONH3Animations), aDONH3AnimDescs },
{ "JDT2", "JDT2", MI_COP, awc(aJDT2Animations), aJDT2AnimDescs },
{ "JDT4", "JDT4", MI_COP, awc(aJDT4Animations), aJDT4AnimDescs },
{ "JDT5", "JDT5", MI_COP, awc(aJDT5Animations), aJDT5AnimDescs },
{ "JDT6", "JDT6", MI_COP, awc(aJDT6Animations), aJDT6AnimDescs },
{ "MAR1", "MAR1", MI_COP, awc(aMAR1Animations), aMAR1AnimDescs },
{ "MAR2", "MAR2", MI_COP, awc(aMAR2Animations), aMAR2AnimDescs },
{ "MAR3", "MAR3", MI_COP, awc(aMAR3Animations), aMAR3AnimDescs },
{ "SAL1", "SAL1", MI_COP, awc(aSAL1Animations), aSAL1AnimDescs },
{ "SAL2", "SAL2", MI_COP, awc(aSAL2Animations), aSAL2AnimDescs },
{ "SAL3", "SAL3", MI_COP, awc(aSAL3Animations), aSAL3AnimDescs },
{ "SAL4", "SAL4", MI_COP, awc(aSAL4Animations), aSAL4AnimDescs },
{ "SAL6", "SAL6", MI_COP, awc(aSAL6Animations), aSAL6AnimDescs },
{ "SAL7", "SAL7", MI_COP, awc(aSAL7Animations), aSAL7AnimDescs },
{ "VIC2", "VIC2", MI_COP, awc(aVIC2Animations), aVIC2AnimDescs },
{ "VIC3", "VIC3", MI_COP, awc(aVIC3Animations), aVIC3AnimDescs },
{ "VIC4", "VIC4", MI_COP, awc(aVIC4Animations), aVIC4AnimDescs },
{ "VIC6", "VIC6", MI_COP, awc(aVIC6Animations), aVIC6AnimDescs },
{ "TOURIST", "TOURIST", MI_COP, awc(aTouristAnimations), aTouristAnimDescs },
{ "MAC2", "MAC2", MI_COP, awc(aMAC2Animations), aMAC2AnimDescs },
{ "VIC7", "VIC7", MI_COP, awc(aVIC7Animations), aVIC7AnimDescs },
}; };
#undef awc #undef awc

View file

@ -29,6 +29,7 @@ enum AssocGroupId
ASSOCGRP_SNIPER, ASSOCGRP_SNIPER,
ASSOCGRP_THROW, ASSOCGRP_THROW,
ASSOCGRP_FLAMETHROWER, ASSOCGRP_FLAMETHROWER,
ASSOCGRP_ROCKETLAUNCHER,
ASSOCGRP_MEDIC, ASSOCGRP_MEDIC,
ASSOCGRP_SUNBATHE, ASSOCGRP_SUNBATHE,
ASSOCGRP_PLAYER_IDLE, ASSOCGRP_PLAYER_IDLE,
@ -40,6 +41,7 @@ enum AssocGroupId
ASSOCGRP_PLAYER1ARMED, ASSOCGRP_PLAYER1ARMED,
ASSOCGRP_PLAYER2ARMED, ASSOCGRP_PLAYER2ARMED,
ASSOCGRP_PLAYERBBBAT, ASSOCGRP_PLAYERBBBAT,
ASSOCGRP_AICHAINSAW,
ASSOCGRP_PLAYERCHAINSAW, ASSOCGRP_PLAYERCHAINSAW,
ASSOCGRP_SHUFFLE, ASSOCGRP_SHUFFLE,
ASSOCGRP_OLD, ASSOCGRP_OLD,
@ -64,11 +66,33 @@ enum AssocGroupId
ASSOCGRP_ROCKETBACK, ASSOCGRP_ROCKETBACK,
ASSOCGRP_ROCKETLEFT, ASSOCGRP_ROCKETLEFT,
ASSOCGRP_ROCKETRIGHT, ASSOCGRP_ROCKETRIGHT,
ASSOCGRP_CHAINSAWBACK,
ASSOCGRP_CHAINSAWLEFT,
ASSOCGRP_CHAINSAWRIGHT,
#endif #endif
ASSOCGRP_MPNOTE,
ASSOCGRP_CSMISC,
ASSOCGRP_DONH2,
ASSOCGRP_DONH3,
ASSOCGRP_JDT2,
ASSOCGRP_JDT4,
ASSOCGRP_JDT5,
ASSOCGRP_JDT6,
ASSOCGRP_MAR1,
ASSOCGRP_MAR2,
ASSOCGRP_MAR3,
ASSOCGRP_SAL1,
ASSOCGRP_SAL2,
ASSOCGRP_SAL3,
ASSOCGRP_SAL4,
ASSOCGRP_SAL6,
ASSOCGRP_SAL7,
ASSOCGRP_VIC2,
ASSOCGRP_VIC3,
ASSOCGRP_VIC4,
ASSOCGRP_VIC6,
ASSOCGRP_TOURIST,
ASSOCGRP_MAC2,
ASSOCGRP_VIC7,
NUM_ANIM_ASSOC_GROUPS NUM_ANIM_ASSOC_GROUPS
}; };

View file

@ -40,32 +40,25 @@ enum AnimationId
ANIM_HIT_BACK, ANIM_HIT_BACK,
ANIM_HIT_RIGHT, ANIM_HIT_RIGHT,
ANIM_FLOOR_HIT, ANIM_FLOOR_HIT,
ANIM_HIT_BODYBLOW,
ANIM_HIT_CHEST,
ANIM_HIT_HEAD,
ANIM_HIT_WALK,
ANIM_HIT_WALL, ANIM_HIT_WALL,
ANIM_FLOOR_HIT_F, ANIM_FLOOR_HIT_F,
ANIM_HIT_BEHIND, ANIM_HIT_BEHIND,
ANIM_FIGHT_IDLE, ANIM_FIGHT_IDLE,
ANIM_FIGHT2_IDLE, ANIM_FIGHT2_IDLE,
ANIM_FIGHT_SH_F, ANIM_FIGHT_SH_F,
ANIM_FIGHT_BODYBLOW,
ANIM_FIGHT_HEAD,
ANIM_FIGHT_KICK,
ANIM_FIGHT_KNEE,
ANIM_FIGHT_LHOOK,
ANIM_FIGHT_PUNCH,
ANIM_FIGHT_ROUNDHOUSE,
ANIM_FIGHT_LONGKICK,
ANIM_FIGHT_PPUNCH, ANIM_FIGHT_PPUNCH,
ANIM_L_HOOK,
ANIM_FIGHT_JAB, ANIM_R_HOOK,
ANIM_FIGHT_ELBOW_L, ANIM_UPPERCUT,
ANIM_FIGHT_ELBOW_R, ANIM_HEADBUTT,
ANIM_FIGHT_BKICK_L, ANIM_FRONTKICK,
ANIM_FIGHT_BKICK_R, ANIM_ROUNDHOUSE,
ANIM_HIT_L_HOOK,
ANIM_HIT_R_HOOK,
ANIM_HIT_UPPERCUT,
ANIM_HIT_HEADBUTT,
ANIM_HIT_FRONTKICK,
ANIM_HIT_RHOUSE,
ANIM_BOMBER, ANIM_BOMBER,
ANIM_PUNCH_R, ANIM_PUNCH_R,
ANIM_FIGHT_PPUNCH2, ANIM_FIGHT_PPUNCH2,
@ -164,6 +157,7 @@ enum AnimationId
ANIM_EV_STEP, ANIM_EV_STEP,
ANIM_EV_DIVE, ANIM_EV_DIVE,
ANIM_COMMANDO_ROLL,
ANIM_XPRESS_SCRATCH, ANIM_XPRESS_SCRATCH,
ANIM_ROAD_CROSS, ANIM_ROAD_CROSS,
ANIM_TURN_180, ANIM_TURN_180,
@ -269,5 +263,66 @@ enum AnimationId
ANIM_STRIP_F, ANIM_STRIP_F,
ANIM_STRIP_G, ANIM_STRIP_G,
ANIM_MPNOTE,
ANIM_MPNOTE_LOOP,
ANIM_IDLE_LOOK,
ANIM_IDLE_NO,
ANIM_IDLE_YES,
ANIM_IDLE_CHAT2,
ANIM_IDLE_COUGH,
ANIM_IDLE_GIGGLE_FEMALE,
ANIM_IDLE_TOUGH_CHAT,
ANIM_IDLE_CELL_TALK,
ANIM_DONH2_CAMERA,
ANIM_DONH3_HAPPY,
ANIM_JDT2_ANXIOUS_TALK,
ANIM_JDT2_SHRUG,
ANIM_JDT4_DILDO_TALK,
ANIM_JDT5_CALM_DOWN,
ANIM_JDT5_POINT,
ANIM_JDT6_PICKUP,
ANIM_JDT6_DOORKNOCK,
ANIM_MAR1_SKIRT,
ANIM_MAR2_CELL_ANSWER,
ANIM_MAR2_CELL_END,
ANIM_MAR2_CELL_TALK,
ANIM_MAR2_FOOT_TAP,
ANIM_MAR3_HOOCHY,
ANIM_MAR3_NOTE_IDLE,
ANIM_MAR3_NOTE_PICK,
ANIM_SAL1_BIREFCASE_DOWN,
ANIM_SAL2_IDLE_SEATED,
ANIM_SAL2_SEAT_TO_STAND,
ANIM_SAL3_SEATED_TALK,
ANIM_SAL3_SEATED_IDLE,
ANIM_SAL3_SIT_DOWN,
ANIM_SAL4_DUSTDOWN,
ANIM_SAL4_GIRLRUN,
ANIM_SAL6_ANGRY_SEATED,
ANIM_SAL6_IDLE_SEATED,
ANIM_SAL7_LOOKOUT,
ANIM_VIC2_POINT_ANGRY,
ANIM_VIC3_WAFT,
ANIM_VIC3_PICKUP_ROLL,
ANIM_VIC4_CARRY_BOX,
ANIM_VIC4_CELL_LOOK,
ANIM_VIC4_CRATE_IDLE,
ANIM_VIC6_CELL_ANGRY,
ANIM_TOURIST3,
ANIM_TOURIST2,
ANIM_TOURIST1,
ANIM_MAC2_PLEAD,
ANIM_VIC7_PROD_WITH_FOOT,
NUM_ANIMS NUM_ANIMS
}; };

View file

@ -4363,14 +4363,18 @@ cAudioManager::ProcessPedOneShots(cPedParams &params)
if (weaponType == WEAPONTYPE_BRASSKNUCKLE) { if (weaponType == WEAPONTYPE_BRASSKNUCKLE) {
CPed* ped = params.m_pPed; CPed* ped = params.m_pPed;
uint32 fightMove = ped->m_curFightMove; uint32 fightMove = ped->m_curFightMove;
if (fightMove == FIGHTMOVE_BACKLEFT || fightMove == FIGHTMOVE_STDPUNCH || fightMove == FIGHTMOVE_PUNCH || // LCS:removed for now
//if (fightMove == FIGHTMOVE_BACKLEFT || fightMove == FIGHTMOVE_STDPUNCH || fightMove == FIGHTMOVE_PUNCH ||
if (
ped->m_nPedState == PED_ATTACK) { ped->m_nPedState == PED_ATTACK) {
CEntity* damageEntity = ped->m_pDamageEntity; CEntity* damageEntity = ped->m_pDamageEntity;
if (!damageEntity) if (!damageEntity)
m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1; m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1;
else if (damageEntity->GetType() != ENTITY_TYPE_PED) else if (damageEntity->GetType() != ENTITY_TYPE_PED)
m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1; m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1;
else if (((CPed*)damageEntity)->m_curFightMove != FIGHTMOVE_HITHEAD) // LCS:removed for now
//else if (((CPed*)damageEntity)->m_curFightMove != FIGHTMOVE_HITHEAD)
else if(1)
m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1; m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1;
else else
m_sQueueSample.m_nSampleIndex = SFX_HAMMER_HIT_1; m_sQueueSample.m_nSampleIndex = SFX_HAMMER_HIT_1;

View file

@ -3947,11 +3947,11 @@ CCam::Process_Debug(const CVector&, float, float, float)
} }
// stay inside sectors // stay inside sectors
while(CWorld::GetSectorX(Source.x) > 75.0f) while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
Source.x -= 1.0f; Source.x -= 1.0f;
while(CWorld::GetSectorX(Source.x) < 5.0f) while(CWorld::GetSectorX(Source.x) < 5.0f)
Source.x += 1.0f; Source.x += 1.0f;
while(CWorld::GetSectorY(Source.y) > 75.0f) while(CWorld::GetSectorY(Source.y) > NUMSECTORS_X-5.0f)
Source.y -= 1.0f; Source.y -= 1.0f;
while(CWorld::GetSectorY(Source.y) < 5.0f) while(CWorld::GetSectorY(Source.y) < 5.0f)
Source.y += 1.0f; Source.y += 1.0f;
@ -4018,11 +4018,11 @@ CCam::Process_Debug(const CVector&, float, float, float)
} }
// stay inside sectors // stay inside sectors
while(CWorld::GetSectorX(Source.x) > 75.0f) while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
Source.x -= 1.0f; Source.x -= 1.0f;
while(CWorld::GetSectorX(Source.x) < 5.0f) while(CWorld::GetSectorX(Source.x) < 5.0f)
Source.x += 1.0f; Source.x += 1.0f;
while(CWorld::GetSectorY(Source.y) > 75.0f) while(CWorld::GetSectorY(Source.y) > NUMSECTORS_X-5.0f)
Source.y -= 1.0f; Source.y -= 1.0f;
while(CWorld::GetSectorY(Source.y) < 5.0f) while(CWorld::GetSectorY(Source.y) < 5.0f)
Source.y += 1.0f; Source.y += 1.0f;
@ -4099,11 +4099,11 @@ CCam::Process_Editor(const CVector&, float, float, float)
} }
// stay inside sectors // stay inside sectors
while(CWorld::GetSectorX(Source.x) > 75.0f) while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
Source.x -= 1.0f; Source.x -= 1.0f;
while(CWorld::GetSectorX(Source.x) < 5.0f) while(CWorld::GetSectorX(Source.x) < 5.0f)
Source.x += 1.0f; Source.x += 1.0f;
while(CWorld::GetSectorY(Source.y) > 75.0f) while(CWorld::GetSectorY(Source.y) > NUMSECTORS_X-5.0f)
Source.y -= 1.0f; Source.y -= 1.0f;
while(CWorld::GetSectorY(Source.y) < 5.0f) while(CWorld::GetSectorY(Source.y) < 5.0f)
Source.y += 1.0f; Source.y += 1.0f;

View file

@ -1,10 +1,6 @@
#include "common.h" #include "common.h"
#include "KeyGen.h" #include "KeyGen.h"
#if defined _WIN32 && !defined __MINGW32__ #include <ctype.h>
#include "ctype.h"
#else
#include <cwctype>
#endif
uint32 CKeyGen::keyTable[256] = uint32 CKeyGen::keyTable[256] =
{ {

View file

@ -1151,12 +1151,9 @@ CStreaming::RemoveModel(int32 id)
void void
CStreaming::RemoveUnusedBuildings(eLevelName level) CStreaming::RemoveUnusedBuildings(eLevelName level)
{ {
if(level != LEVEL_INDUSTRIAL) for(int i = LEVEL_INDUSTRIAL; i < NUM_LEVELS; i++)
RemoveBuildings(LEVEL_INDUSTRIAL); if(level != i)
if(level != LEVEL_COMMERCIAL) RemoveBuildings((eLevelName)i);
RemoveBuildings(LEVEL_COMMERCIAL);
if(level != LEVEL_SUBURBAN)
RemoveBuildings(LEVEL_SUBURBAN);
} }
void void
@ -1279,12 +1276,9 @@ CStreaming::RemoveUnusedBigBuildings(eLevelName level)
{ {
ISLAND_LOADING_IS(LOW) ISLAND_LOADING_IS(LOW)
{ {
if(level != LEVEL_INDUSTRIAL) for(int i = LEVEL_INDUSTRIAL; i < NUM_LEVELS; i++)
RemoveBigBuildings(LEVEL_INDUSTRIAL); if(level != i)
if(level != LEVEL_COMMERCIAL) RemoveBuildings((eLevelName)i);
RemoveBigBuildings(LEVEL_COMMERCIAL);
if(level != LEVEL_SUBURBAN)
RemoveBigBuildings(LEVEL_SUBURBAN);
} }
RemoveIslandsNotUsed(level); RemoveIslandsNotUsed(level);
} }
@ -1324,8 +1318,11 @@ CStreaming::RemoveIslandsNotUsed(eLevelName level)
} }
#ifdef NO_ISLAND_LOADING #ifdef NO_ISLAND_LOADING
if(FrontEndMenuManager.m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_HIGH) { if(FrontEndMenuManager.m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_HIGH) {
DeleteIsland(pIslandLODmainlandEntity); DeleteIsland(pIslandLODindustEntity);
DeleteIsland(pIslandLODbeachEntity); DeleteIsland(pIslandLODcomIndEntity);
DeleteIsland(pIslandLODcomSubEntity);
DeleteIsland(pIslandLODsubIndEntity);
DeleteIsland(pIslandLODsubComEntity);
} else } else
#endif #endif
switch(level){ switch(level){

View file

@ -214,3 +214,10 @@ public:
static void PrintStreamingBufferState(); static void PrintStreamingBufferState();
}; };
// LCS(TODO): put them into CStreaming::mspInst
extern int32 islandLODindust;
extern int32 islandLODcomInd;
extern int32 islandLODcomSub;
extern int32 islandLODsubInd;
extern int32 islandLODsubCom;

View file

@ -4,14 +4,14 @@
#include "Lists.h" #include "Lists.h"
#include "PlayerInfo.h" #include "PlayerInfo.h"
/* Sectors span from -2400 to 1600 in x and -2000 to 2000 y. /* Sectors span from -2000 to 2000 in x and y.
* With 80x80 sectors, each is 50x50 units. */ * With 100x100 sectors, each is 40x40 units. */
#define SECTOR_SIZE_X (50.0f) #define SECTOR_SIZE_X (40.0f)
#define SECTOR_SIZE_Y (50.0f) #define SECTOR_SIZE_Y (40.0f)
#define NUMSECTORS_X (80) #define NUMSECTORS_X (100)
#define NUMSECTORS_Y (80) #define NUMSECTORS_Y (100)
#define WORLD_SIZE_X (NUMSECTORS_X * SECTOR_SIZE_X) #define WORLD_SIZE_X (NUMSECTORS_X * SECTOR_SIZE_X)
#define WORLD_SIZE_Y (NUMSECTORS_Y * SECTOR_SIZE_Y) #define WORLD_SIZE_Y (NUMSECTORS_Y * SECTOR_SIZE_Y)

View file

@ -4,6 +4,7 @@
#include "RwHelper.h" #include "RwHelper.h"
#include "ModelIndices.h" #include "ModelIndices.h"
#include "Timer.h" #include "Timer.h"
#include "Streaming.h"
#include "Entity.h" #include "Entity.h"
#include "Object.h" #include "Object.h"
#include "World.h" #include "World.h"
@ -623,10 +624,15 @@ CEntity::SetupBigBuilding(void)
m_level = CTheZones::GetLevelFromPosition(&GetPosition()); m_level = CTheZones::GetLevelFromPosition(&GetPosition());
if(mi->m_lodDistances[0] <= 2000.0f) if(mi->m_lodDistances[0] <= 2000.0f)
bStreamBIGBuilding = true; bStreamBIGBuilding = true;
if(mi->m_lodDistances[0] > 2500.0f || mi->m_ignoreDrawDist) if(m_modelIndex == islandLODindust ||
m_modelIndex == islandLODcomInd ||
m_modelIndex == islandLODcomSub ||
m_modelIndex == islandLODsubInd ||
m_modelIndex == islandLODsubCom ||
mi->m_lodDistances[0] > 5000.0f || mi->m_ignoreDrawDist)
m_level = LEVEL_GENERIC; m_level = LEVEL_GENERIC;
else if(m_level == LEVEL_GENERIC) // else if(m_level == LEVEL_GENERIC)
printf("%s isn't in a level\n", mi->GetModelName()); // printf("%s isn't in a level\n", mi->GetModelName());
} }
float WindTabel[] = { float WindTabel[] = {

View file

@ -64,12 +64,12 @@ void* operator new[](size_t size)
return base::cMainMemoryManager::Instance()->Allocate(size); return base::cMainMemoryManager::Instance()->Allocate(size);
} }
void operator delete(void* buf) void operator delete(void* buf) noexcept
{ {
base::cMainMemoryManager::Instance()->Free(buf); base::cMainMemoryManager::Instance()->Free(buf);
} }
void operator delete[](void* buf) void operator delete[](void* buf) noexcept
{ {
base::cMainMemoryManager::Instance()->Free(buf); base::cMainMemoryManager::Instance()->Free(buf);
} }

View file

@ -35,5 +35,5 @@ namespace base
void* operator new(size_t size); void* operator new(size_t size);
void* operator new[](size_t size); void* operator new[](size_t size);
void operator delete(void* buf); void operator delete(void* buf) noexcept;
void operator delete[](void* buf); void operator delete[](void* buf) noexcept;

View file

@ -0,0 +1,36 @@
#include "common.h"
#include "relocatableChunk.h"
namespace base
{
// TODO(LCS): add actual code (all of these are stubs)
void* cRelocatableChunk::Load(void* data, bool bShrink) { return nil; }
void* cRelocatableChunk::Load(const char* name, bool bShrink) { return nil; }
void cRelocatableChunk::Fixup(const sChunkHeader& header, void* data) {}
void cRelocatableChunk::Fixup(void* data) {}
void* cRelocatableChunk::Shrink(const sChunkHeader& header, void* data) { return nil; }
void* cRelocatableChunk::Shrink(void* data) { return nil; }
cRelocatableChunkClassInfo::cRelocatableChunkClassInfo(const char* class_name, const void* pVmt, int size) {}
cRelocatableChunkWriter::cRelocatableChunkWriter() {}
cRelocatableChunkWriter::~cRelocatableChunkWriter() {}
void cRelocatableChunkWriter::AddPatch(void* addr) {}
void cRelocatableChunkWriter::AddPatchWithInfo(const char* str, int unk, void* addr) {}
void cRelocatableChunkWriter::AllocateRaw(void* addr, uint32 size, uint32 align, bool a5, bool a6) {}
void cRelocatableChunkWriter::Clear() {}
void cRelocatableChunkWriter::Class(void* ptr, const cRelocatableChunkClassInfo& classInfo) {}
void cRelocatableChunkWriter::DebugFileLine(void*) {}
void cRelocatableChunkWriter::PatchFunc(void* ptr) {}
bool cRelocatableChunkWriter::IsAllocated(void* addr) { return false; }
void cRelocatableChunkWriter::Reserve(int, int) {}
void cRelocatableChunkWriter::Save(const char* filename, uint32 a3, uint32 a4, bool a5) {}
void cRelocatableChunkWriter::Save(void* file, uint32 a3, uint32 a4, bool a5, sChunkHeader* pHeader) {}
};

View file

@ -0,0 +1,51 @@
#pragma once
namespace base
{
// TODO(LCS): add actual struct fields
struct sChunkHeader;
struct sDataBlock;
struct sFileLine;
class cRelocatableChunk
{
public:
void* Load(void* data, bool bShrink);
void* Load(const char* name, bool bShrink);
void Fixup(const sChunkHeader& header, void* data);
void Fixup(void* data);
void* Shrink(const sChunkHeader& header, void* data);
void* Shrink(void* data);
};
class cRelocatableChunkClassInfo
{
public:
cRelocatableChunkClassInfo(const char* class_name, const void* pVmt, int size);
};
class cRelocatableChunkWriter
{
public:
cRelocatableChunkWriter();
~cRelocatableChunkWriter();
void AddPatch(void* addr);
void AddPatchWithInfo(const char* str, int unk, void* addr);
void AllocateRaw(void* addr, uint32 size, uint32 align, bool a5 = false, bool a6 = false);
void Clear();
void Class(void* ptr, const cRelocatableChunkClassInfo& classInfo);
void DebugFileLine(void*);
void PatchFunc(void* ptr);
bool IsAllocated(void* addr);
void Reserve(int, int);
void Save(const char* filename, uint32 a3, uint32 a4, bool a5);
void Save(void* file, uint32 a3, uint32 a4, bool a5, sChunkHeader* pHeader);
};
};

View file

@ -280,7 +280,7 @@ enum
MI_PEREN, MI_PEREN,
MI_SENTINEL, MI_SENTINEL,
MI_PATRIOT, MI_PATRIOT,
MI_FIRETRUK, MI_FIRETRUCK,
MI_TRASH, MI_TRASH,
MI_STRETCH, MI_STRETCH,
MI_MANANA, MI_MANANA,
@ -371,7 +371,6 @@ enum
MI_BAGGAGE, MI_BAGGAGE,
MI_FBIRANCH, MI_FBIRANCH,
MI_VICECHEE, MI_VICECHEE,
MI_FIRETRUCK,
MI_RIO, MI_RIO,
MI_SQUALO, MI_SQUALO,
MI_JETMAX, MI_JETMAX,

View file

@ -100,9 +100,31 @@ enum PedFightMoves
{ {
FIGHTMOVE_NULL, FIGHTMOVE_NULL,
// Attacker // Attacker
FIGHTMOVE_STDPUNCH, // FIGHTMOVE_STDPUNCH,
FIGHTMOVE_IDLE, FIGHTMOVE_IDLE,
FIGHTMOVE_SHUFFLE_F, FIGHTMOVE_SHUFFLE_F,
// Combos
FIGHTMOVE_COMBO_A1,
FIGHTMOVE_COMBO_A2,
FIGHTMOVE_COMBO_A3,
FIGHTMOVE_COMBO_B1,
FIGHTMOVE_COMBO_B2,
FIGHTMOVE_COMBO_B3,
// Melee
FIGHTMOVE_MELEE1,
FIGHTMOVE_MELEE2,
FIGHTMOVE_MELEE3,
// Special
FIGHTMOVE_GROUNDKICK,
// Opponent
FIGHTMOVE_HITFRONT,
FIGHTMOVE_HITBACK,
FIGHTMOVE_HITRIGHT,
FIGHTMOVE_HITLEFT,
FIGHTMOVE_HITONFLOOR,
FIGHTMOVE_HITBEHIND,
FIGHTMOVE_IDLE2NORM,
/*
FIGHTMOVE_KNEE, FIGHTMOVE_KNEE,
FIGHTMOVE_PUNCHHOOK, FIGHTMOVE_PUNCHHOOK,
FIGHTMOVE_PUNCHJAB, FIGHTMOVE_PUNCHJAB,
@ -134,7 +156,16 @@ enum PedFightMoves
FIGHTMOVE_MELEE2, FIGHTMOVE_MELEE2,
FIGHTMOVE_MELEE3, FIGHTMOVE_MELEE3,
FIGHTMOVE_IDLE2NORM, FIGHTMOVE_IDLE2NORM,
NUM_FIGHTMOVES */
NUM_FIGHTMOVES,
// LCS replacements for the old names:
// NB: this may be totally bogus, i just need it to compile
FIGHTMOVE_PUNCH = FIGHTMOVE_COMBO_A2,
FIGHTMOVE_FWDRIGHT = FIGHTMOVE_COMBO_B1,
FIGHTMOVE_LONGKICK = FIGHTMOVE_COMBO_B2,
FIGHTMOVE_ROUNDHOUSE = FIGHTMOVE_COMBO_B3,
}; };
enum ePedPieceTypes enum ePedPieceTypes

View file

@ -33,6 +33,7 @@ RpClump* flyingClumpTemp;
FightMove tFightMoves[NUM_FIGHTMOVES] = FightMove tFightMoves[NUM_FIGHTMOVES] =
{ {
/*
{ NUM_STD_ANIMS, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, { NUM_STD_ANIMS, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 },
{ ANIM_PUNCH_R, 0.2f, 8.f/30.f, 0.0f, 0.3f, 1.0f, HITLEVEL_HIGH, 1, 0 }, { ANIM_PUNCH_R, 0.2f, 8.f/30.f, 0.0f, 0.3f, 1.0f, HITLEVEL_HIGH, 1, 0 },
{ ANIM_FIGHT_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, { ANIM_FIGHT_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 },
@ -65,6 +66,7 @@ FightMove tFightMoves[NUM_FIGHTMOVES] =
{ ANIM_WEAPON_CROUCHFIRE, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, { ANIM_WEAPON_CROUCHFIRE, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 },
{ ANIM_WEAPON_SPECIAL, 4.f / 30.f, 7.f / 30.f, 10.f / 30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, { ANIM_WEAPON_SPECIAL, 4.f / 30.f, 7.f / 30.f, 10.f / 30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 },
{ ANIM_FIGHT2_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 } { ANIM_FIGHT2_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }
*/
}; };
static PedOnGroundState static PedOnGroundState
@ -1115,9 +1117,6 @@ CPed::StartFightAttack(uint8 buttonPressure)
break; break;
} }
} else { } else {
if (m_curFightMove == FIGHTMOVE_BACKKICK)
animAssoc->speed = 1.15f;
else
animAssoc->speed = 0.8f; animAssoc->speed = 0.8f;
} }
if (IsPlayer()) if (IsPlayer())
@ -1227,12 +1226,14 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk)
default: default:
if (hitLevel == HITLEVEL_LOW) { if (hitLevel == HITLEVEL_LOW) {
hitAnim = ANIM_KO_SHOT_STOM; hitAnim = ANIM_KO_SHOT_STOM;
/* LCS: removed
} else if (CGeneral::GetRandomNumber() & 1) { } else if (CGeneral::GetRandomNumber() & 1) {
fall = false; fall = false;
hitAnim = ANIM_HIT_WALK; hitAnim = ANIM_HIT_WALK;
} else if (CGeneral::GetRandomNumber() & 1) { } else if (CGeneral::GetRandomNumber() & 1) {
fall = false; fall = false;
hitAnim = ANIM_HIT_HEAD; hitAnim = ANIM_HIT_HEAD;
*/
} else { } else {
hitAnim = ANIM_KO_SHOT_FACE; hitAnim = ANIM_KO_SHOT_FACE;
} }
@ -1267,7 +1268,7 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk)
Say(SOUND_PED_DEFEND); Say(SOUND_PED_DEFEND);
return; return;
} }
m_curFightMove = FIGHTMOVE_HITBODY; m_curFightMove = FIGHTMOVE_HITFRONT; // LCS
break; break;
case HITLEVEL_HIGH: case HITLEVEL_HIGH:
switch (direction) { switch (direction) {
@ -1281,10 +1282,12 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk)
m_curFightMove = FIGHTMOVE_HITRIGHT; m_curFightMove = FIGHTMOVE_HITRIGHT;
break; break;
default: default:
if (unk <= 5) // LCS: removed
m_curFightMove = FIGHTMOVE_HITHEAD; //if (unk <= 5)
else // m_curFightMove = FIGHTMOVE_HITHEAD;
m_curFightMove = FIGHTMOVE_HITBIGSTEP; //else
// m_curFightMove = FIGHTMOVE_HITBIGSTEP;
m_curFightMove = FIGHTMOVE_HITFRONT;
break; break;
} }
break; break;
@ -1300,10 +1303,12 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk)
m_curFightMove = FIGHTMOVE_HITRIGHT; m_curFightMove = FIGHTMOVE_HITRIGHT;
break; break;
default: default:
if (unk <= 5) // LCS: removed
m_curFightMove = FIGHTMOVE_HITCHEST; //if (unk <= 5)
else // m_curFightMove = FIGHTMOVE_HITCHEST;
m_curFightMove = FIGHTMOVE_HITBIGSTEP; //else
// m_curFightMove = FIGHTMOVE_HITBIGSTEP;
m_curFightMove = FIGHTMOVE_HITFRONT;
break; break;
} }
break; break;
@ -1457,30 +1462,30 @@ CPed::Fight(void)
CVector touchingNodePos(0.0f, 0.0f, 0.0f); CVector touchingNodePos(0.0f, 0.0f, 0.0f);
switch (m_curFightMove) { switch (m_curFightMove) {
case FIGHTMOVE_KNEE: // case FIGHTMOVE_KNEE:
TransformToNode(touchingNodePos, PED_LOWERLEGR); // TransformToNode(touchingNodePos, PED_LOWERLEGR);
break; // break;
case FIGHTMOVE_PUNCHHOOK: // case FIGHTMOVE_PUNCHHOOK:
case FIGHTMOVE_PUNCHJAB: // case FIGHTMOVE_PUNCHJAB:
TransformToNode(touchingNodePos, PED_HANDL); // TransformToNode(touchingNodePos, PED_HANDL);
break; // break;
case FIGHTMOVE_LONGKICK: case FIGHTMOVE_LONGKICK:
case FIGHTMOVE_ROUNDHOUSE: case FIGHTMOVE_ROUNDHOUSE:
case FIGHTMOVE_FWDLEFT: // case FIGHTMOVE_FWDLEFT:
case FIGHTMOVE_BACKRIGHT: // case FIGHTMOVE_BACKRIGHT:
case FIGHTMOVE_GROUNDKICK: case FIGHTMOVE_GROUNDKICK:
TransformToNode(touchingNodePos, PED_FOOTR); TransformToNode(touchingNodePos, PED_FOOTR);
break; break;
case FIGHTMOVE_FWDRIGHT: case FIGHTMOVE_FWDRIGHT:
TransformToNode(touchingNodePos, PED_HEAD); TransformToNode(touchingNodePos, PED_HEAD);
break; break;
case FIGHTMOVE_BACKKICK: // case FIGHTMOVE_BACKKICK:
case FIGHTMOVE_BACKFLIP: // case FIGHTMOVE_BACKFLIP:
TransformToNode(touchingNodePos, PED_FOOTL); // TransformToNode(touchingNodePos, PED_FOOTL);
break; // break;
case FIGHTMOVE_BACKLEFT: // case FIGHTMOVE_BACKLEFT:
TransformToNode(touchingNodePos, PED_UPPERARML); // TransformToNode(touchingNodePos, PED_UPPERARML);
break; // break;
default: default:
TransformToNode(touchingNodePos, PED_HANDR); TransformToNode(touchingNodePos, PED_HANDR);
break; break;
@ -1532,9 +1537,6 @@ CPed::Fight(void)
tFightMoves[m_curFightMove].animId, 8.0f); tFightMoves[m_curFightMove].animId, 8.0f);
if (weaponInfo->m_AnimToPlay != ASSOCGRP_KNIFE || m_curFightMove < FIGHTMOVE_MELEE1) { if (weaponInfo->m_AnimToPlay != ASSOCGRP_KNIFE || m_curFightMove < FIGHTMOVE_MELEE1) {
if (m_curFightMove == FIGHTMOVE_BACKKICK)
animAssoc->speed = 1.15f;
else
animAssoc->speed = 0.8f; animAssoc->speed = 0.8f;
} else { } else {
switch (GetWeapon()->m_eWeaponType) { switch (GetWeapon()->m_eWeaponType) {
@ -1676,8 +1678,9 @@ CPed::ChooseAttackAI(uint8 buttonPressure, bool fightWithWeapon)
return FIGHTMOVE_IDLE; return FIGHTMOVE_IDLE;
} }
} }
if (dist < 0.95f && canKneeHead) // LCS: removed
return FIGHTMOVE_KNEE; //if (dist < 0.95f && canKneeHead)
// return FIGHTMOVE_KNEE;
if (dist < 1.4f) if (dist < 1.4f)
return FIGHTMOVE_PUNCH; return FIGHTMOVE_PUNCH;
if (dist < 2.f && canKick) { if (dist < 2.f && canKick) {
@ -1796,9 +1799,11 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
switch (dir) { switch (dir) {
case 0: // forward case 0: // forward
if (fightWithWeapon) { if (fightWithWeapon) {
if (distToVictim < 0.95f - 0.2f && m_nPedState == PED_FIGHT) { // LCS: removed
choosenMove = FIGHTMOVE_KNEE; //if (distToVictim < 0.95f - 0.2f && m_nPedState == PED_FIGHT) {
} else { // choosenMove = FIGHTMOVE_KNEE;
//} else
{
if (GetWeapon()->m_eWeaponType == WEAPONTYPE_CLEAVER) { if (GetWeapon()->m_eWeaponType == WEAPONTYPE_CLEAVER) {
if (distToVictim < 0.85f * weaponInfo->m_fRange) if (distToVictim < 0.85f * weaponInfo->m_fRange)
choosenMove = FIGHTMOVE_MELEE1; choosenMove = FIGHTMOVE_MELEE1;
@ -1821,18 +1826,20 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
} }
} }
} }
} else if (distToVictim < 0.95f && m_nPedState == PED_FIGHT) { // LCS: removed
choosenMove = FIGHTMOVE_KNEE; //} else if (distToVictim < 0.95f && m_nPedState == PED_FIGHT) {
// choosenMove = FIGHTMOVE_KNEE;
} else if (distToVictim < 1.4f) { } else if (distToVictim < 1.4f) {
if (m_curFightMove == FIGHTMOVE_PUNCHJAB) { // LCS: removed
/*if (m_curFightMove == FIGHTMOVE_PUNCHJAB) {
choosenMove = FIGHTMOVE_PUNCH; choosenMove = FIGHTMOVE_PUNCH;
} else if (m_curFightMove != FIGHTMOVE_PUNCH || randVal != 1) { } else*/ if (m_curFightMove != FIGHTMOVE_PUNCH || randVal != 1) {
if (randVal == 2) //if (randVal == 2)
choosenMove = FIGHTMOVE_PUNCH; choosenMove = FIGHTMOVE_PUNCH;
else //else
choosenMove = FIGHTMOVE_PUNCHJAB; // choosenMove = FIGHTMOVE_PUNCHJAB;
} else { } else {
choosenMove = FIGHTMOVE_LONGKICK; choosenMove = FIGHTMOVE_LONGKICK;
} }
@ -1840,6 +1847,7 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
choosenMove = FIGHTMOVE_LONGKICK; choosenMove = FIGHTMOVE_LONGKICK;
} }
break; break;
/* LCS: removed
case 1: case 1:
choosenMove = FIGHTMOVE_FWDLEFT; choosenMove = FIGHTMOVE_FWDLEFT;
break; break;
@ -1852,6 +1860,7 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
case 4: case 4:
choosenMove = FIGHTMOVE_BACKRIGHT; choosenMove = FIGHTMOVE_BACKRIGHT;
break; break;
*/
default: default:
choosenMove = FIGHTMOVE_FWDRIGHT; choosenMove = FIGHTMOVE_FWDRIGHT;
break; break;
@ -1917,20 +1926,22 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
#else #else
switch (CGeneral::GetRandomNumberInRange(0,3)) { switch (CGeneral::GetRandomNumberInRange(0,3)) {
#endif #endif
case 0: // LCS: hack hack
choosenMove = FIGHTMOVE_PUNCHJAB; // case 0:
break; // choosenMove = FIGHTMOVE_PUNCHJAB;
// break;
default:
case 1: case 1:
choosenMove = FIGHTMOVE_PUNCH; choosenMove = FIGHTMOVE_PUNCH;
break; break;
case 2: case 2:
choosenMove = FIGHTMOVE_LONGKICK; choosenMove = FIGHTMOVE_LONGKICK;
break; break;
case 3: // case 3:
choosenMove = FIGHTMOVE_KNEE; // choosenMove = FIGHTMOVE_KNEE;
break; // break;
default: // default:
break; // break;
} }
} }
return choosenMove; return choosenMove;
@ -1975,6 +1986,7 @@ CPed::EndFight(uint8 endType)
void void
CPed::PlayHitSound(CPed *hitTo) CPed::PlayHitSound(CPed *hitTo)
{ {
#if 0 // LCS: temporarily removed
// That was very complicated to reverse for me... // That was very complicated to reverse for me...
// First index is our fight move ID (from 1 to 17, total 17), second is the one of we fight with (from 18 to 27, total 10). // First index is our fight move ID (from 1 to 17, total 17), second is the one of we fight with (from 18 to 27, total 10).
enum { enum {
@ -2045,6 +2057,7 @@ CPed::PlayHitSound(CPed *hitTo)
if (soundId != NO_SND) if (soundId != NO_SND)
DMAudio.PlayOneShot(m_audioEntityId, soundId, (weapon << 8) | ENTITY_TYPE_PED); DMAudio.PlayOneShot(m_audioEntityId, soundId, (weapon << 8) | ENTITY_TYPE_PED);
#endif
} }
// --MIAMI: Done // --MIAMI: Done
@ -2178,8 +2191,9 @@ CPed::FightHitPed(CPed *victim, CVector &touchPoint, CVector &dir, int16 piece)
bool brassKnucklePunch = false; bool brassKnucklePunch = false;
if (GetWeapon()->m_eWeaponType == WEAPONTYPE_BRASSKNUCKLE) { if (GetWeapon()->m_eWeaponType == WEAPONTYPE_BRASSKNUCKLE) {
if (m_curFightMove == FIGHTMOVE_PUNCHHOOK || m_curFightMove == FIGHTMOVE_PUNCHJAB || m_curFightMove == FIGHTMOVE_BACKLEFT || // LCS: removed
m_curFightMove == FIGHTMOVE_STDPUNCH || m_curFightMove == FIGHTMOVE_PUNCH) { if (/*m_curFightMove == FIGHTMOVE_PUNCHHOOK || m_curFightMove == FIGHTMOVE_PUNCHJAB || m_curFightMove == FIGHTMOVE_BACKLEFT ||
m_curFightMove == FIGHTMOVE_STDPUNCH ||*/ m_curFightMove == FIGHTMOVE_PUNCH) {
brassKnucklePunch = true; brassKnucklePunch = true;
damageMult *= 1.5f; damageMult *= 1.5f;
} }

View file

@ -1172,7 +1172,8 @@ void
CPlayerPed::ProcessAnimGroups(void) CPlayerPed::ProcessAnimGroups(void)
{ {
AssocGroupId groupToSet; AssocGroupId groupToSet;
#ifdef PC_PLAYER_CONTROLS //#ifdef PC_PLAYER_CONTROLS
#if 0 // chainsaw anims missing in LCS
if ((m_fWalkAngle <= -DEGTORAD(50.0f) || m_fWalkAngle >= DEGTORAD(50.0f)) if ((m_fWalkAngle <= -DEGTORAD(50.0f) || m_fWalkAngle >= DEGTORAD(50.0f))
&& TheCamera.Cams[TheCamera.ActiveCam].Using3rdPersonMouseCam() && TheCamera.Cams[TheCamera.ActiveCam].Using3rdPersonMouseCam()
&& CanStrafeOrMouseControl()) { && CanStrafeOrMouseControl()) {

View file

@ -228,7 +228,7 @@ CTimeCycle::Initialise(void)
for(h = 0; h < NUMHOURS; h++){ for(h = 0; h < NUMHOURS; h++){
li = 0; li = 0;
while(work_buff[bi] == '/' || work_buff[bi] == '\n' || while(work_buff[bi] == '/' || work_buff[bi] == '\n' ||
work_buff[bi] == '\0' || work_buff[bi] == ' ' || work_buff[bi] == '\r'){ work_buff[bi] == '\0' || work_buff[bi] == '\r'){
while(work_buff[bi] != '\n' && work_buff[bi] != '\0' && work_buff[bi] != '\r') while(work_buff[bi] != '\n' && work_buff[bi] != '\0' && work_buff[bi] != '\r')
bi++; bi++;
bi++; bi++;

View file

@ -399,7 +399,7 @@ RsInitialize(void)
*/ */
RwBool result; RwBool result;
RsGlobal.appName = RWSTRING("GTA: Vice City"); RsGlobal.appName = RWSTRING("GTA: Liberty City Stories");
RsGlobal.maximumWidth = DEFAULT_SCREEN_WIDTH; RsGlobal.maximumWidth = DEFAULT_SCREEN_WIDTH;
RsGlobal.maximumHeight = DEFAULT_SCREEN_HEIGHT; RsGlobal.maximumHeight = DEFAULT_SCREEN_HEIGHT;
RsGlobal.width = DEFAULT_SCREEN_WIDTH; RsGlobal.width = DEFAULT_SCREEN_WIDTH;

View file

@ -1641,13 +1641,13 @@ CAutomobile::ProcessControl(void)
// TODO: make the numbers defines // TODO: make the numbers defines
float heading; float heading;
if(GetPosition().x > 1950.0f-400.0f){ if(GetPosition().x > 1950.0f){
if(m_vecMoveSpeed.x > 0.0f) if(m_vecMoveSpeed.x > 0.0f)
m_vecMoveSpeed.x *= -1.0f; m_vecMoveSpeed.x *= -1.0f;
heading = GetForward().Heading(); heading = GetForward().Heading();
if(heading > 0.0f) // going west if(heading > 0.0f) // going west
SetHeading(-heading); SetHeading(-heading);
}else if(GetPosition().x < -1950.0f-400.0f){ }else if(GetPosition().x < -1950.0f){
if(m_vecMoveSpeed.x < 0.0f) if(m_vecMoveSpeed.x < 0.0f)
m_vecMoveSpeed.x *= -1.0f; m_vecMoveSpeed.x *= -1.0f;
heading = GetForward().Heading(); heading = GetForward().Heading();