Tweak vault state functions; cleanup

This commit is contained in:
Sezz 2022-02-17 15:01:48 +11:00
parent a85c8ad0e3
commit 7fd54041a6
5 changed files with 32 additions and 30 deletions

View file

@ -108,7 +108,7 @@ function<LaraRoutineFunction> lara_control_routines[NUM_LARA_STATES + 1] =
lara_as_climbend,//59
lara_as_climbright,//60
lara_as_climbdown,//61
lara_void_func,//62
lara_as_auto_jump,//62
lara_void_func,//63
lara_void_func,//64
lara_as_wade_forward,//65
@ -214,12 +214,12 @@ function<LaraRoutineFunction> lara_control_routines[NUM_LARA_STATES + 1] =
lara_as_null,//161
lara_as_null,//162
lara_as_monkey_back,//163
lara_as_null,//164
lara_as_null,//165
lara_as_null,//166
lara_as_null,//167
lara_as_null,//168
lara_as_null,//169
lara_as_vault,//164
lara_as_vault,//165
lara_as_vault,//166
lara_as_vault,//167
lara_as_vault,//168
lara_as_vault,//169
lara_as_idle,//170
};
@ -287,7 +287,7 @@ function<LaraRoutineFunction> lara_collision_routines[NUM_LARA_STATES + 1] =
lara_col_climbend,
lara_col_climbright,
lara_col_climbdown,
lara_col_auto_jump,//62
lara_void_func,//62
lara_void_func,
lara_void_func,
lara_col_wade_forward,
@ -389,12 +389,12 @@ function<LaraRoutineFunction> lara_collision_routines[NUM_LARA_STATES + 1] =
lara_void_func,//161
lara_void_func,//162
lara_col_monkey_back,//163
lara_col_vault,//164
lara_col_vault,//165
lara_col_vault,//166
lara_col_vault,//167
lara_col_vault,//168
lara_col_vault,//169
lara_void_func,//164
lara_void_func,//165
lara_void_func,//166
lara_void_func,//167
lara_void_func,//168
lara_void_func,//169
lara_col_idle,//170
};

View file

@ -87,10 +87,11 @@ void lara_as_controlled_no_look(ITEM_INFO* item, COLL_INFO* coll)
coll->Setup.EnableSpasm = false;
}
// State: LS_VAULT, LS_VAULT_2_STEPS, LS_VAULT_3_STEPS,
// VAULT_1_STEP_CROUCH, VAULT_2_STEPS_CROUCH, VAULT_3_STEPS_CROUCH (164, 165, 166, 167, 168, 169)
// Control: lara_as_null()
void lara_col_vault(ITEM_INFO* item, COLL_INFO* coll)
// State: LS_VAULT (164),
// LS_VAULT_2_STEPS (165), LS_VAULT_3_STEPS (166),
// VAULT_1_STEP_CROUCH (167), VAULT_2_STEPS_CROUCH (168), VAULT_3_STEPS_CROUCH (169)
// Collision: lara_void_func()
void lara_as_vault(ITEM_INFO* item, COLL_INFO* coll)
{
auto* info = GetLaraInfo(item);
@ -103,9 +104,9 @@ void lara_col_vault(ITEM_INFO* item, COLL_INFO* coll)
EaseOutLaraHeight(item, info->ProjectedFloorHeight - item->Position.yPos);
}
// State: LS_AUTO_JUMP (62)
// Control: lara_as_null()
void lara_col_auto_jump(ITEM_INFO* item, COLL_INFO* coll)
// State: LS_AUTO_JUMP (62)
// Collision: lara_lara_void_func()
void lara_as_auto_jump(ITEM_INFO* item, COLL_INFO* coll)
{
auto* info = GetLaraInfo(item);
@ -386,10 +387,10 @@ void lara_col_run_forward(ITEM_INFO* item, COLL_INFO* coll)
}
}
item->TargetState = LS_SPLAT_SOFT;
item->TargetState = LS_SOFT_SPLAT;
if (GetChange(item, &g_Level.Anims[item->AnimNumber]))
{
item->ActiveState = LS_SPLAT_SOFT;
item->ActiveState = LS_SOFT_SPLAT;
return;
}
@ -2135,10 +2136,10 @@ void lara_col_wade_forward(ITEM_INFO* item, COLL_INFO* coll)
if (!TestEnvironment(ENV_FLAG_SWAMP, item))
{
item->TargetState = LS_SPLAT_SOFT;
item->TargetState = LS_SOFT_SPLAT;
if (GetChange(item, &g_Level.Anims[item->AnimNumber]))
{
item->ActiveState = LS_SPLAT_SOFT;
item->ActiveState = LS_SOFT_SPLAT;
return;
}
}
@ -2266,10 +2267,10 @@ void lara_col_sprint(ITEM_INFO* item, COLL_INFO* coll)
}
}
item->TargetState = LS_SPLAT_SOFT;
item->TargetState = LS_SOFT_SPLAT;
if (GetChange(item, &g_Level.Anims[item->AnimNumber]))
{
item->ActiveState = LS_SPLAT_SOFT;
item->ActiveState = LS_SOFT_SPLAT;
return;
}

View file

@ -19,8 +19,8 @@ void lara_as_special(ITEM_INFO* item, COLL_INFO* coll);
void lara_as_null(ITEM_INFO* item, COLL_INFO* coll);
void lara_as_controlled(ITEM_INFO* item, COLL_INFO* coll);
void lara_as_controlled_no_look(ITEM_INFO* item, COLL_INFO* coll);
void lara_col_vault(ITEM_INFO* item, COLL_INFO* coll);
void lara_col_auto_jump(ITEM_INFO* item, COLL_INFO* coll);
void lara_as_vault(ITEM_INFO* item, COLL_INFO* coll);
void lara_as_auto_jump(ITEM_INFO* item, COLL_INFO* coll);
// ---------------
// BASIC MOVEMENT:

View file

@ -33,6 +33,7 @@ void DoLaraLean(ITEM_INFO* item, COLL_INFO* coll, short maxAngle, short rate)
if (!item->Velocity)
return;
rate = abs(rate);
int sign = copysign(1, maxAngle);
if (coll->CollisionType == CT_LEFT || coll->CollisionType == CT_RIGHT)

View file

@ -204,7 +204,7 @@ enum LaraState
LS_VAULT_1_STEP_CROUCH = 167,
LS_VAULT_2_STEPS_CROUCH = 168,
LS_VAULT_3_STEPS_CROUCH = 169,
LS_SPLAT_SOFT = 170,
LS_SOFT_SPLAT = 170,
NUM_LARA_STATES
};