Skip to content

Commit

Permalink
steam update
Browse files Browse the repository at this point in the history
  • Loading branch information
ermaccer committed Jul 20, 2021
1 parent f157119 commit 87ea432
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 75 deletions.
60 changes: 10 additions & 50 deletions I2Hook/code/dcf2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ void __fastcall DCF2Hooks::HookProcessStuff()
if (TheMenu->bEnableCustomCameras)
TheMenu->bEnableCustomCameras = false;
}

if (TheMenu->bFreeCameraMovement)
{
if (GetAsyncKeyState(SettingsMgr->iFreeCameraKeyXPlus))
Expand Down Expand Up @@ -91,8 +92,7 @@ void __fastcall DCF2Hooks::HookProcessStuff()

}


((void(__fastcall*)())(0x1498F27F0))();
((void(__fastcall*)())(0x1499BC1B0))();
}

void __fastcall DCF2Hooks::HookStartupFightRecording(int64 eventID, int64 a2, int64 a3, int64 a4)
Expand All @@ -110,49 +110,14 @@ void __fastcall DCF2Hooks::HookStartupFightRecording(int64 eventID, int64 a2, in

printf("I2Hook::Info() | %s VS %s\n", DCF2::GetCharacterName(PLAYER1), DCF2::GetCharacterName(PLAYER2));

((void(__fastcall*)(int64, int64, int64, int64))_addr(0x1416EC5B0))(eventID, a2, a3, a4);
((void(__fastcall*)(int64, int64, int64, int64))_addr(0x14172B4C0))(eventID, a2, a3, a4);
}

int64 __fastcall DCF2Hooks::HookLoadCharacter(int64 ptr, char * name)
{
// mk11 select screen swap, not sure if needed
if (name)
{

if (TheMenu->bPlayer1ModifierEnabled)
{
if (ptr == DCF2::GetCharacterInfo(PLAYER1))
{

char* original_name = name;
printf("I2Hook::Info() | Setting Player %d as %s\n",DCF2::GetPlayerIDFromData(ptr), TheMenu->szPlayer1ModifierCharacter);
strcpy((char*)(int64)&original_name[0], TheMenu->szPlayer1ModifierCharacter);
strcpy((char*)(int64)&original_name[0], original_name);

// crash fix
TheMenu->bPlayer1ModifierEnabled = false;
}
}
if (TheMenu->bPlayer2ModifierEnabled)
{
if (ptr == DCF2::GetCharacterInfo(PLAYER2))
{
char* original_name = name;
printf("I2Hook::Info() | Setting Player %d as %s\n", DCF2::GetPlayerIDFromData(ptr), TheMenu->szPlayer2ModifierCharacter);
strcpy((char*)(int64)&original_name[0], TheMenu->szPlayer2ModifierCharacter);
strcpy((char*)(int64)&original_name[0], original_name);
TheMenu->bPlayer2ModifierEnabled = false;
}
}

}
return ((int64(__fastcall*)(int64, char*))_addr(0x145EAEC10))(ptr, name);
}

int64 DCF2Hooks::HookSetProperty(int64 ptr, char * name, int64 unk)
{
hud_property = ptr;
return ((int64(__fastcall*)(int64, char*, int64))_addr(0x14218EC40))(ptr, name, unk);
return ((int64(__fastcall*)(int64, char*, int64))_addr(0x1421DFCE0))(ptr, name, unk);
}

void DCF2Hooks::HookReadPropertyValue(int64 ptr, int* unk, int* value)
Expand All @@ -174,13 +139,13 @@ int64 DCF2::GetCharacterObject(PLAYER_NUM plr)
{
int64 info = GetCharacterInfo(plr);
if (info)
return ((int64(__fastcall*)(int64, int))_addr(0x1472D7AA0))(info, 0);
return ((int64(__fastcall*)(int64, int))_addr(0x147397630))(info, 0);
}

int64 DCF2::GetCharacterInfo(PLAYER_NUM plr)
{
int64 gameinfo = *(__int64*)_addr(GFG_GAME_INFO);
return ((int64(__fastcall*)(int64, PLAYER_NUM))_addr(0x145EB53B0))(gameinfo, plr);
return ((int64(__fastcall*)(int64, PLAYER_NUM))_addr(0x14612D280))(gameinfo, plr);
}

PLAYER_NUM DCF2::GetPlayerIDFromData(int64 data)
Expand All @@ -200,17 +165,17 @@ void DCF2::SetCharacterMKX(PLAYER_NUM plr, char * name)

void DCF2::SetCharacter(int64 chr, char * name, int64 ptr, int64 unk)
{
((void(__fastcall*)(int64, const char*, int64, int64))_addr(0x14730AD10))(chr, name, ptr, unk);
((void(__fastcall*)(int64, const char*, int64, int64))_addr(0x1473C66A0))(chr, name, ptr, unk);
}

void DCF2::SlowGameTimeForXTicks(float speed, int ticks)
{
((void(__fastcall*)(float, int, int))_addr(0x146E107F0))(speed, ticks, 0);
((void(__fastcall*)(float, int, int))_addr(0x146F33D50))(speed, ticks, 0);
}

void DCF2::SetCharacterLife(int64 obj, float life)
{
((void(__fastcall*)(int64, float))_addr(0x146D71630))(obj, life);
((void(__fastcall*)(int64, float))_addr(0x146E3D380))(obj, life);
}

char * DCF2::GetCharacterName(PLAYER_NUM plr)
Expand All @@ -223,11 +188,6 @@ char * DCF2::GetCharacterName(PLAYER_NUM plr)

void DCF2::GetCharacterPosition(FVector * vec,PLAYER_NUM plr)
{
((void(__fastcall*)(int64, FVector*))_addr(0x1472ED830))(GetCharacterInfo(plr), vec);
}

void DCF2::SetCharacter(PLAYER_NUM plr, char * name)
{
((void(__fastcall*)(int64, char*))_addr(0x145EAEC10))(GetCharacterInfo(plr), name);
((void(__fastcall*)(int64, FVector*))_addr(0x1473AABC0))(GetCharacterInfo(plr), vec);
}

6 changes: 1 addition & 5 deletions I2Hook/code/dcf2.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once
#include "mk10utils.h"
#define GFG_GAME_INFO 0x14410C6D8
#define GFG_GAME_INFO 0x14417DF30

#define I2HOOK_VERSION "0.3"

Expand Down Expand Up @@ -55,16 +55,12 @@ namespace DCF2 {


void GetCharacterPosition(FVector* vec,PLAYER_NUM plr);

// mkx recreation
void SetCharacter(PLAYER_NUM plr, char* name);
}

namespace DCF2Hooks {
// hooks
void __fastcall HookProcessStuff();
void __fastcall HookStartupFightRecording(int64 eventID, int64 a2, int64 a3, int64 a4);
int64 __fastcall HookLoadCharacter(int64 ptr, char * name);


int64 HookSetProperty(int64 ptr, char* name, int64 unk);
Expand Down
4 changes: 2 additions & 2 deletions I2Hook/code/mkcamera.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ void MKCamera::SetPosition(FVector * pos)
*(float*)(this + 0x584 + 4) = pos->Y;
*(float*)(this + 0x584 + 8) = pos->Z;

((void(__thiscall*)(MKCamera*, FVector*))_addr(0x141A10140))(this, pos);
((void(__thiscall*)(MKCamera*, FVector*))_addr(0x14ADC4660))(this, pos);
}

void MKCamera::SetRotation(FRotator * rot)
Expand All @@ -21,7 +21,7 @@ void MKCamera::SetRotation(FRotator * rot)
*(int*)(this + 0x584 + 12 + 4) = rot->Yaw;
*(int*)(this + 0x584 + 12 + 8) = rot->Roll;

((void(__thiscall*)(MKCamera*, FRotator*))_addr(0x14AEA2640))(this, rot);
((void(__thiscall*)(MKCamera*, FRotator*))_addr(0x14ADE1B20))(this, rot);
}

void MKCamera::SetFOV(float FOV)
Expand Down
34 changes: 16 additions & 18 deletions I2Hook/dllmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,8 @@ void __fastcall GenericDummy() {}

bool __fastcall SetFlagNull()
{
bool result = 0;
Patch<int>(_addr(0x14444D58C), 0);

return result;
Patch<int>(_addr(0x1445404EC), 0);
return 0;

}

Expand All @@ -49,27 +47,28 @@ void OnInitializeHook()
printf("I2Hook::OnInitializeHook() | Begin!\n");
TheMenu->Initialize();
Notifications->Init();
printf("I2Hook::OnInitializeHook() | Game detected: %s\n", (char*)_addr(0x143455150));
printf("I2Hook::OnInitializeHook() | Game detected: %s\n", (char*)_addr(0x1434B1F90));
Trampoline* tramp = Trampoline::MakeTrampoline(GetModuleHandle(nullptr));


// 60 fps
if (SettingsMgr->bEnable60FPSFrontend)
{
Patch<char>(_addr(0x145EDC870 + 1), 0);
InjectHook(_addr(0x14A370B70), tramp->Jump(SetFlagNull), PATCH_JUMP);
//Patch<char>(_addr(0x145EDC870 + 1), 0);
InjectHook(_addr(0x14A28EB80), tramp->Jump(SetFlagNull), PATCH_JUMP);
}


InjectHook(_addr(0x145E1AC78), tramp->Jump(DCF2Hooks::HookProcessStuff));
InjectHook(_addr(0x14599F39E), tramp->Jump(DCF2Hooks::HookStartupFightRecording));
InjectHook(_addr(0x14607D248), tramp->Jump(DCF2Hooks::HookProcessStuff));
InjectHook(_addr(0x145AFBEBE), tramp->Jump(DCF2Hooks::HookStartupFightRecording));

Nop(_addr(0x14AC151A3), 7);
Nop(_addr(0x14AC151B3), 8);
InjectHook(_addr(0x14AC151C1), tramp->Jump(&MKCamera::HookedSetPosition));
InjectHook(_addr(0x14AC151CE), tramp->Jump(&MKCamera::HookedSetRotation));

Nop(_addr(0x14AD1C597), 7);
Nop(_addr(0x14AD1C5A7), 8);
InjectHook(_addr(0x14AD1C5B5), tramp->Jump(&MKCamera::HookedSetPosition));
InjectHook(_addr(0x14AD1C5C2), tramp->Jump(&MKCamera::HookedSetRotation));
InjectHook(_addr(0x14B113190), tramp->Jump(DCF2Hooks::HookReadPropertyValue), PATCH_JUMP);
InjectHook(_addr(0x141974468), tramp->Jump(DCF2Hooks::HookSetProperty));
InjectHook(_addr(0x14B097C40), tramp->Jump(DCF2Hooks::HookReadPropertyValue), PATCH_JUMP);
InjectHook(_addr(0x1419C37E8), tramp->Jump(DCF2Hooks::HookSetProperty));


}
Expand All @@ -78,7 +77,7 @@ void OnInitializeHook()

bool ValidateGameVersion()
{
char* gameName = (char*)_addr(0x143455150);
char* gameName = (char*)_addr(0x1434B1F90);

if (strncmp(gameName, "Injustice", strlen("Injustice")) == 0)
{
Expand Down Expand Up @@ -106,8 +105,7 @@ BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
if (SettingsMgr->b60FPSModeOnly)
{
Trampoline* tramp = Trampoline::MakeTrampoline(GetModuleHandle(nullptr));
Patch<char>(_addr(0x145EDC870 + 1), 0);
InjectHook(_addr(0x14A370B70), tramp->Jump(SetFlagNull), PATCH_JUMP);
InjectHook(_addr(0x14A28EB80), tramp->Jump(SetFlagNull), PATCH_JUMP);
}
else
{
Expand Down

0 comments on commit 87ea432

Please sign in to comment.