Address issued mentioned in PR
This commit is contained in:
parent
f5b6c9457b
commit
8480102bd1
@ -45,6 +45,15 @@ static int warp_amount_override = 0;
|
|||||||
static bool should_melee = false;
|
static bool should_melee = false;
|
||||||
static bool charged = false;
|
static bool charged = false;
|
||||||
|
|
||||||
|
static bool should_warp = true;
|
||||||
|
static bool was_hurt = false;
|
||||||
|
|
||||||
|
// Should we warp?
|
||||||
|
bool shouldWarp(bool check_amount)
|
||||||
|
{
|
||||||
|
return ((warp_key && warp_key.isKeyDown()) || was_hurt) && (!check_amount || warp_amount);
|
||||||
|
}
|
||||||
|
|
||||||
// How many ticks of excess we have (for decimal speeds)
|
// How many ticks of excess we have (for decimal speeds)
|
||||||
float excess_ticks = 0.0f;
|
float excess_ticks = 0.0f;
|
||||||
int GetWarpAmount(bool finalTick)
|
int GetWarpAmount(bool finalTick)
|
||||||
@ -70,9 +79,6 @@ int GetWarpAmount(bool finalTick)
|
|||||||
return std::min(warp_amount_processed, max_extra_ticks);
|
return std::min(warp_amount_processed, max_extra_ticks);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool should_warp = true;
|
|
||||||
static bool was_hurt = false;
|
|
||||||
|
|
||||||
DetourHook cl_move_detour;
|
DetourHook cl_move_detour;
|
||||||
typedef void (*CL_Move_t)(float accumulated_extra_samples, bool bFinalTick);
|
typedef void (*CL_Move_t)(float accumulated_extra_samples, bool bFinalTick);
|
||||||
|
|
||||||
@ -228,7 +234,7 @@ void CreateMove()
|
|||||||
return;
|
return;
|
||||||
if (CE_BAD(LOCAL_E) || !LOCAL_E->m_bAlivePlayer())
|
if (CE_BAD(LOCAL_E) || !LOCAL_E->m_bAlivePlayer())
|
||||||
return;
|
return;
|
||||||
if (!warp_key.isKeyDown() && !was_hurt)
|
if (!shouldWarp(false))
|
||||||
{
|
{
|
||||||
warp_last_tick = false;
|
warp_last_tick = false;
|
||||||
current_state = ATTACK;
|
current_state = ATTACK;
|
||||||
@ -601,7 +607,7 @@ void CL_Move_hook(float accumulated_extra_samples, bool bFinalTick)
|
|||||||
cl_move_detour.RestorePatch();
|
cl_move_detour.RestorePatch();
|
||||||
|
|
||||||
// Should we warp?
|
// Should we warp?
|
||||||
if ((warp_key.isKeyDown() || was_hurt) && warp_amount)
|
if (shouldWarp(true))
|
||||||
{
|
{
|
||||||
Warp(accumulated_extra_samples, bFinalTick);
|
Warp(accumulated_extra_samples, bFinalTick);
|
||||||
if (warp_amount < GetMaxWarpTicks())
|
if (warp_amount < GetMaxWarpTicks())
|
||||||
@ -623,6 +629,7 @@ static InitRoutine init([]() {
|
|||||||
[]() {
|
[]() {
|
||||||
g_IEventManager2->RemoveListener(&listener);
|
g_IEventManager2->RemoveListener(&listener);
|
||||||
cl_sendmove_detour.Shutdown();
|
cl_sendmove_detour.Shutdown();
|
||||||
|
cl_move_detour.Shutdown();
|
||||||
},
|
},
|
||||||
"warp_shutdown");
|
"warp_shutdown");
|
||||||
warp_forward.installChangeCallback(rvarCallback);
|
warp_forward.installChangeCallback(rvarCallback);
|
||||||
|
Reference in New Issue
Block a user