mirror of
https://github.com/qwertyuiop3/Storm.git
synced 2025-06-08 02:29:41 +08:00
some more progress on prediction redesignment
don't have much time today. postponing cl_sendmove for tomorrow
This commit is contained in:
parent
924e32b297
commit
f26e099d55
@ -41,21 +41,28 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
|
|
||||||
Extended_Command->Sequence_Shift = 0;
|
Extended_Command->Sequence_Shift = 0;
|
||||||
|
|
||||||
|
void* Local_Player = *(void**)((unsigned __int32)Client_Module + 7498712);
|
||||||
|
|
||||||
Global_Variables_Structure* Global_Variables = *(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744);
|
Global_Variables_Structure* Global_Variables = *(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744);
|
||||||
|
|
||||||
void* Local_Player = *(void**)((unsigned __int32)Client_Module + 7498712);
|
__int8 First_Command = Extra_Commands == -1;
|
||||||
|
|
||||||
if (Extra_Commands == -1)
|
if (Extra_Commands == -1)
|
||||||
{
|
{
|
||||||
if ((Command->Buttons & 524288) == 524288)
|
void* Prediction_Frame = *(void**)((unsigned __int32)Local_Player + 1500);
|
||||||
{
|
|
||||||
Extended_Command->Extra_Commands = max(0, Extra_Commands = std::clamp(Interface_Extra_Commands.Integer, (__int32)(0.06f / Global_Variables->Interval_Per_Tick + 0.5f), 21));
|
|
||||||
|
|
||||||
*(__int32*)((unsigned __int32)Local_Player + 16) = min(*(__int32*)((unsigned __int32)Local_Player + 16) + 1, Extended_Command->Extra_Commands * Interface_Interpolate_Extra_Commands.Integer);
|
if (Prediction_Frame != nullptr)
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
*(__int32*)((unsigned __int32)Local_Player + 16) = max(0, *(__int32*)((unsigned __int32)Local_Player + 16) - 1);
|
if ((Command->Buttons & 524288) == 524288)
|
||||||
|
{
|
||||||
|
Extended_Command->Extra_Commands = max(0, Extra_Commands = std::clamp(Interface_Extra_Commands.Integer, (__int32)(0.06f / Global_Variables->Interval_Per_Tick + 0.5f), 21));
|
||||||
|
|
||||||
|
*(__int32*)Prediction_Frame = min(*(__int32*)Prediction_Frame + 1, Extended_Command->Extra_Commands * Interface_Interpolate_Extra_Commands.Integer);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*(__int32*)Prediction_Frame = max(0, *(__int32*)Prediction_Frame - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,7 +184,11 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
|
|
||||||
auto Sequence_Shift = [&](__int32 Reserve)
|
auto Sequence_Shift = [&](__int32 Reserve)
|
||||||
{
|
{
|
||||||
if (Extra_Commands < 1) //td: should work on it
|
if (First_Command == 0)
|
||||||
|
{
|
||||||
|
Extended_Command->Sequence_Shift = Extended_Commands[((Command->Frame_Number - 1) % 150 + 150) % 150].Sequence_Shift;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
__int32 Sequence_Shift = (*(__int32*)((unsigned __int32)Local_Player + 5324) + ~-150) / 150 * 150 + (Reserve * 150);
|
__int32 Sequence_Shift = (*(__int32*)((unsigned __int32)Local_Player + 5324) + ~-150) / 150 * 150 + (Reserve * 150);
|
||||||
|
|
||||||
@ -195,6 +206,11 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
Sequence_Shift(2);
|
Sequence_Shift(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GetKeyState(VK_HOME) < 0)
|
||||||
|
{
|
||||||
|
Sequence_Shift(-2);
|
||||||
|
}
|
||||||
|
|
||||||
if (*(__int32*)((unsigned __int32)Local_Player + 228) == 3)
|
if (*(__int32*)((unsigned __int32)Local_Player + 228) == 3)
|
||||||
{
|
{
|
||||||
if (*(__int8*)((unsigned __int32)Local_Player + 7322) == 1)
|
if (*(__int8*)((unsigned __int32)Local_Player + 7322) == 1)
|
||||||
@ -769,11 +785,4 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
Command->Buttons &= ~524288;
|
Command->Buttons &= ~524288;
|
||||||
|
|
||||||
(decltype(&Redirected_Copy_Command)(Original_Copy_Command_Caller))(Unknown_Parameter, Command);
|
(decltype(&Redirected_Copy_Command)(Original_Copy_Command_Caller))(Unknown_Parameter, Command);
|
||||||
|
|
||||||
void* Prediction_Frame = *(void**)((unsigned __int32)Local_Player + 1500);
|
|
||||||
|
|
||||||
if (Prediction_Frame != nullptr)
|
|
||||||
{
|
|
||||||
*(__int32*)Prediction_Frame = *(__int32*)((unsigned __int32)Local_Player + 16);
|
|
||||||
}
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user