From 8c53aa61be1ba13989a616976e71a9e589b97942 Mon Sep 17 00:00:00 2001 From: Guus Waals <_@guusw.nl> Date: Mon, 2 Jun 2025 12:43:35 +0800 Subject: [PATCH] WIP --- game_re/gh_fix/r3_levelDisplayFn.cxx | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 game_re/gh_fix/r3_levelDisplayFn.cxx diff --git a/game_re/gh_fix/r3_levelDisplayFn.cxx b/game_re/gh_fix/r3_levelDisplayFn.cxx new file mode 100644 index 00000000..58f3e7e7 --- /dev/null +++ b/game_re/gh_fix/r3_levelDisplayFn.cxx @@ -0,0 +1,67 @@ +// AUTO-GENERATED FILE, MOVE TO 'gh_fix' FOLDER PREVENT OVERWRITING!!!!! + +#include +#include + +extern "C" { +undefined FUN_00447130(void); // 00447130 // FUN_00447130 // cdecl +void doGraphics(byte param_1); // 00447460 // doGraphics // stdcall +undefined UNKr3_renderViewport(undefined4 viewportIdx); // 00447200 // ?r3_renderViewport // cdecl +undefined FUN_0046fec0(void); // 0046fec0 // FUN_0046fec0 // cdecl +int get_one(void); // 0046f2c0 // get_one // cdecl +undefined FUN_00451530(undefined4 param_1); // 00451530 // FUN_00451530 // cdecl +undefined FUN_0048a920(undefined4 param_1); // 0048a920 // FUN_0048a920 // cdecl +undefined FUN_0045fc70(undefined4 param_1); // 0045fc70 // FUN_0045fc70 // cdecl + +// 00446fc0 +/* WARNING: Inlined function: get_one */ + +void __cdecl r3_levelDisplayFn(byte param) + +{ + int iVar1; + int *piVar2; + char cVar3; + undefined3 in_stack_00000005; + + FUN_00447130(); + WaitForSingleObject(g_stEngineStructure.drawSemaphore,0xffffffff); + if (((g_stEngineStructure + Field<1556, 4>() == 0) || (DAT_005d2b18 != 0)) || (param == 0)) { + if (DAT_005e693c != 0) { + ReleaseSemaphore(g_stEngineStructure.drawSemaphore,1,(LPLONG)0x0); + return; + } + FUN_0048a920(~-(uint)(DAT_007d98fc != '\0') & + g_stEngineStructure.stEngineTimer.ulUsefulDeltaTime); + FUN_00451530(param); + DAT_0063be24 = 1; + UNKr3_renderViewport(_param); + doGraphics(param); + if (DAT_005d2b18 != 0) { + if (param == 0) { + _param = 0; + for (piVar2 = (int *)g_stEngineStructure + Field<1500, 4>(); piVar2 != (int *)0x0; + piVar2 = (int *)piVar2[1]) { + iVar1 = *(int *)(*(int *)(*piVar2 + 4) + 0x10); + cVar3 = FUN_0045fc70(*(undefined4 *)(iVar1 + 4)); + if (cVar3 != '\0') { + _param = _param + 1; + } + if (_param == DAT_005d2b18) { + FUN_0045fc70(*(undefined4 *)(iVar1 + 4)); + } + } + } + if (DAT_005d2b18 != 0) { + FUN_0046fec0(0,0,0,0); + } + } + /* WARNING: Could not inline here */ + get_one(); + ReleaseSemaphore(g_stEngineStructure.drawSemaphore,1,(LPLONG)0x0); + } + return; +} + +} +