Skip to content

Commit 45f3679

Browse files
committed
support for latest steam version (v1.11)
1 parent 5603afe commit 45f3679

File tree

11 files changed

+38
-22
lines changed

11 files changed

+38
-22
lines changed

signatures.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
QuickStart 44 38 3D ? ? ? ? 0F 85 ? ? ? ? 48 8B 0D ? ? ? ? 48 85 C9
2+
IsIntroSequenceComplete E8 ? ? ? ? 84 C0 74 0A B9 ? ? ? ?
3+
IsIntroMovieComplete E8 ? ? ? ? 84 C0 75 17 48 8B 15 ? ? ? ?
4+
WndProc String: ./jc4.ico (E8 ? ? ? ? 48 8B 54 24 ? 89 C3 -> Win32Main)
5+
GameState 83 3D ? ? ? ? ? 74 0A E8 ? ? ? ?
6+
SuspendGame 31 C9 C6 05 ? ? ? ? ? FF 15 ? ? ? ?
7+
FlipThread 48 8B 8B ? ? ? ? E8 ? ? ? ? 90 48 8B 05 ? ? ? ? (48 8D 0D ? ? ? ? E8 ? ? ? ? 48 89 43 30)
8+
CManagerBase instance (& 2 funcs) 0F 84 ? ? ? ? E8 ? ? ? ? E9 ? ? ? ? 31 D2
9+
Event call E8 ? ? ? ? C6 87 ? ? ? ? ? 48 8B 57 58
10+
hnpkWorld instance 0F 84 ? ? ? ? 48 8B 3D ? ? ? ? 48 89 BC 24 ? ? ? ?
11+
SetTimeOfDay (and CWorldTime instance) E9 ? ? ? ? 0F 2F DA
12+
CClock instance E8 ? ? ? ? 84 C0 74 05 0F 28 F7
13+
CPlayerManager instance 48 8B 0D ? ? ? ? 48 85 C9 74 06 48 8B 49 30 EB 03 49 8B CC
14+
CRenderEngine instance 89 42 08 48 8B 0D ? ? ? ?
15+
CSpawnSystem instance (& func) String: weapon,rpg (CPlayer Event Handler: 40 55 56 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ?)
16+
CUIManager instance 74 64 48 8B 05 ? ? ? ? 48 8D 8B ? ? ? ?

src/commands/event.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class EventCommand : public ICommand
1616
return false;
1717
}
1818

19-
hk::func_call<void>(0x1446EB790, arguments.c_str(), nullptr);
19+
hk::func_call<void>(0x147BFEB20, arguments.c_str(), nullptr);
2020
return true;
2121
}
2222

src/commands/world.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ class WorldCommand : public ICommand
1212

1313
virtual bool Handler(const std::string& arguments) override
1414
{
15-
static auto hnpkWorld = *(void**)0x142CD6F70;
16-
static auto WorldTime = *(void**)0x142CA2DA0;
15+
static auto hnpkWorld = *(void**)0x142CE3F30;
16+
static auto WorldTime = *(void**)0x142CAFDB0;
1717

1818
// time
1919
if (arguments.find("time ") != std::string::npos) {
2020
float time = 0.0f;
2121
if (sscanf_s(arguments.c_str(), "time %f", &time) == 1) {
2222
time = std::clamp(time, -24.0f, 24.0f);
23-
hk::func_call<void>(0x14031F7D0, WorldTime, time, 2);
23+
hk::func_call<void>(0x140322720, WorldTime, time, 2);
2424
return true;
2525
}
2626
}

src/game/clock.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class CClock
88
public:
99
static CClock& instance()
1010
{
11-
return **(CClock**)0x142C776A8;
11+
return **(CClock**)0x142C846B0;
1212
}
1313

1414
public:

src/game/input_manager.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@ class CManagerBase
1010
public:
1111
static CManagerBase& instance()
1212
{
13-
return **(CManagerBase**)0x142CD4B30;
13+
return **(CManagerBase**)0x142CE1AF0;
1414
}
1515

1616
void LoseFocus()
1717
{
18-
hk::func_call<void>(0x147C63280, this);
18+
hk::func_call<void>(0x140FC8560, this);
1919
}
2020

2121
void GainFocus()
2222
{
23-
hk::func_call<void>(0x147C630D0, this);
23+
hk::func_call<void>(0x140FC84B0, this);
2424
}
2525
};
2626
}; // namespace jc::NInput

src/game/player.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class CPlayer
1717
public:
1818
char _pad[0x68];
1919
CCharacter* m_character;
20-
char _pad2[0x148];
20+
char _pad2[0x150];
2121
CPlayerAimControl* m_aimControl;
2222
};
2323
}; // namespace jc

src/game/player_manager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class CPlayerManager
1010
public:
1111
static CPlayerManager& instance()
1212
{
13-
return **(CPlayerManager**)0x142CA5378;
13+
return **(CPlayerManager**)0x142CB2388;
1414
}
1515

1616
static CCharacter* GetLocalPlayerCharacter()

src/game/render_engine.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class CRenderEngine
1010
public:
1111
static CRenderEngine& instance()
1212
{
13-
return **(CRenderEngine**)0x142C77BD8;
13+
return **(CRenderEngine**)0x142C84BE8;
1414
}
1515

1616
public:

src/game/spawn_system.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class CSpawnSystem
1414
public:
1515
static CSpawnSystem& instance()
1616
{
17-
return **(CSpawnSystem**)0x142CA4D10;
17+
return **(CSpawnSystem**)0x142CB1D20;
1818
}
1919

2020
void Spawn(const std::string& model_name, const CMatrix4f& transform,
@@ -30,7 +30,7 @@ class CSpawnSystem
3030

3131
auto request = new SpawnReq{callback, userdata};
3232
hk::func_call<void>(
33-
0x140BA62E0, this, model_name.c_str(), transform, 0x597Cu,
33+
0x140BADC60, this, model_name.c_str(), transform, 0x597Cu,
3434
(success_t)[](const spawned_objects& objects, void* userdata) {
3535
auto spawn_req = (SpawnReq*)userdata;
3636
spawn_req->callback(objects, spawn_req->userdata);

src/game/ui_manager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class CUIManager
2020
public:
2121
static CUIManager& instance()
2222
{
23-
return **(CUIManager**)0x142CAADA8;
23+
return **(CUIManager**)0x142CB7DC8;
2424
}
2525

2626
CUIBase* GetUI(uint32_t name_hash)

src/main.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
3737
}
3838

3939
// if we are running on the wrong version, don't continue
40-
if (*(uint32_t *)0x141E732B8 != 0x6c617641) {
40+
if (*(uint32_t *)0x141E7EE40 != 0x6c617641) {
4141
#ifdef DEBUG
4242
MessageBox(nullptr, "Wrong version.", nullptr, MB_ICONERROR | MB_OK);
4343
#endif
@@ -64,19 +64,19 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
6464
// enable quick start
6565
if (quick_start) {
6666
// quick start
67-
hk::put<bool>(0x142CABF28, true);
67+
hk::put<bool>(0x142CB8F40, true);
6868

6969
// IsIntroSequenceComplete always returns true
70-
hk::put<uint32_t>(0x140E8B1D0, 0x90C301B0);
70+
hk::put<uint32_t>(0x140E935B0, 0x90C301B0);
7171

7272
// IsIntroMovieComplete always returns true
73-
hk::put<uint32_t>(0x140E8B150, 0x90C301B0);
73+
hk::put<uint32_t>(0x140E93530, 0x90C301B0);
7474
}
7575

76-
static hk::inject_jump<LRESULT, HWND, UINT, WPARAM, LPARAM> wndproc(0x140C77880);
76+
static hk::inject_jump<LRESULT, HWND, UINT, WPARAM, LPARAM> wndproc(0x140C7FB50);
7777
wndproc.inject([](HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -> LRESULT {
78-
auto game_state = *(uint32_t *)0x142CABF0C;
79-
auto suspend_game = *(bool *)0x142CB0B48;
78+
auto game_state = *(uint32_t *)0x142CB8F24;
79+
auto suspend_game = *(bool *)0x142CBDAF0;
8080
auto clock = &jc::Base::CClock::instance();
8181

8282
if (game_state == 3 && clock) {
@@ -95,7 +95,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
9595
return wndproc.call(hwnd, uMsg, wParam, lParam);
9696
});
9797

98-
static hk::inject_jump<void, jc::HDevice_t *> flip(0x140F97DC0);
98+
static hk::inject_jump<void, jc::HDevice_t *> flip(0x140FA2C70);
9999
flip.inject([](jc::HDevice_t *device) -> void {
100100
Graphics::Get()->BeginDraw(device);
101101

0 commit comments

Comments
 (0)