EF_NODRAW

meant to solve invisible equipment. also, revert: `prevent "asynchronous" destruction violation`; more things are off, i'll have to find root cause of process termination (as soon as i'll be able to reproduce)
This commit is contained in:
explorer
2025-02-12 06:26:26 +03:00
parent bb54206c74
commit c6e7a71af1
2 changed files with 801 additions and 801 deletions

View File

@ -46,8 +46,6 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
void* Local_Player = *(void**)((unsigned __int32)Client_Module + 7498712); void* Local_Player = *(void**)((unsigned __int32)Client_Module + 7498712);
if (Local_Player != nullptr)
{
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);
if (Extra_Commands == -1) if (Extra_Commands == -1)
@ -926,7 +924,6 @@ 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);
} }

View File

@ -16,6 +16,8 @@ __int32 Get_Identifier(void* Entity, __int8 Raw, __int8 Equipment)
return Identifier; return Identifier;
} }
if (*(__int8*)((unsigned __int32)Entity + 221) == 0)
{
static std::unordered_set<__int32> Targets = { 0, 13, 99, 232, 263, 264, 265, 270, 272, 275, 276, 277 }; static std::unordered_set<__int32> Targets = { 0, 13, 99, 232, 263, 264, 265, 270, 272, 275, 276, 277 };
if (Targets.contains(Identifier) == 1) if (Targets.contains(Identifier) == 1)
@ -29,8 +31,6 @@ __int32 Get_Identifier(void* Entity, __int8 Raw, __int8 Equipment)
Valid = *(__int8*)((unsigned __int32)Entity + 324) == 5; Valid = *(__int8*)((unsigned __int32)Entity + 324) == 5;
} }
else else
{
if (*(__int8*)((unsigned __int32)Entity + 221) == 0)
{ {
if ((*(__int32*)((unsigned __int32)Entity + 572) - 131088 & 255) == 0) if ((*(__int32*)((unsigned __int32)Entity + 572) - 131088 & 255) == 0)
{ {
@ -40,7 +40,6 @@ __int32 Get_Identifier(void* Entity, __int8 Raw, __int8 Equipment)
} }
} }
} }
}
if (Valid == 1) if (Valid == 1)
{ {
@ -72,6 +71,8 @@ __int32 Get_Identifier(void* Entity, __int8 Raw, __int8 Equipment)
else else
{ {
if (Equipment == 1) if (Equipment == 1)
{
if ((*(__int32*)((unsigned __int32)Entity + 224) & 32) == 0)
{ {
static std::unordered_set<__int32> Equipment_List = { 73, 105, 109, 121, 256, 260 }; static std::unordered_set<__int32> Equipment_List = { 73, 105, 109, 121, 256, 260 };
@ -103,6 +104,8 @@ __int32 Get_Identifier(void* Entity, __int8 Raw, __int8 Equipment)
} }
} }
} }
}
}
return -1; return -1;
} }