Skip to content

Commit d9c091b

Browse files
authored
Merge pull request #58 from sourcehold/refactor/windows-lib-functions
Refactor windows lib functions
2 parents fb7bed8 + 49f4b55 commit d9c091b

7 files changed

Lines changed: 433 additions & 71 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ target_file_copy_if_different(OpenSHC.exe.runnable "${CRUSADER_DIR}/shfolder.dll
163163
add_library(OpenSHC.dll SHARED src/entry.cpp ${CORE_SOURCES} ${OPENSHC_SOURCES})
164164
set_target_properties(OpenSHC.dll PROPERTIES OUTPUT_NAME ${OPEN_SHC_NAME})
165165
set_target_properties(OpenSHC.dll PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/DLL")
166-
target_compile_definitions(OpenSHC.dll PRIVATE OPEN_SHC_DLL)
166+
target_compile_definitions(OpenSHC.dll PRIVATE OPEN_SHC_DLL REIMPLEMENTED_CRT=0)
167167
target_precompile_headers(OpenSHC.dll PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${PCH_FILE}>)
168168

169169

src/OpenSHC/Audio/SoundEffectsHelperData1.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ namespace Audio {
3737
int DAT_RandomVariationCurrentPlayingMusic_02; // 0x00000048 length: 4
3838
undefined4 field12_0x4c; // 0x0000004C length: 4
3939
undefined4 field13_0x50; // 0x00000050 length: 4
40-
undefined1 padding_0x54[4]; // 0x00000054 length: 4
41-
BOOLEnum field18_0x58; // 0x00000058 length: 4
42-
undefined4 field19_0x5c; // 0x0000005C length: 4
40+
BOOLEnum field14_0x54; // 0x00000054 length: 4
41+
BOOLEnum field15_0x58; // 0x00000058 length: 4
42+
undefined4 field16_0x5c; // 0x0000005C length: 4
4343
undefined4 DAT_WinMusicVariation; // 0x00000060 length: 4
44-
undefined4 field21_0x64; // 0x00000064 length: 4
44+
undefined4 field18_0x64; // 0x00000064 length: 4
4545
undefined4 DAT_LossMusicVariation; // 0x00000068 length: 4
4646
DWORD DAT_enemyInsideCastleSoundWarningCooldownTimer; // 0x0000006C length: 4
47-
undefined4 field24_0x70; // 0x00000070 length: 4
47+
undefined4 field21_0x70; // 0x00000070 length: 4
4848
WAVEFORMATEX SND_Waveformat; // 0x00000074 length: 18
4949
undefined1 padding_0x86[2]; // 0x00000086 length: 2
5050

src/OpenSHC/Global.func.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,10 +1298,6 @@ namespace Global_Func {
12981298
void(__cdecl*)(ulong param_1), false, Address::SHC_3BB0A8C1_0x005816EE, &OpenSHC::Global::SetRNGSeed)
12991299
SetRNGSeed;
13001300

1301-
MACRO_FUNCTION_RESOLVER(
1302-
char*(__cdecl*)(char* string), false, Address::SHC_3BB0A8C1_0x005818EB, &OpenSHC::Global::StringToLowerCase)
1303-
StringToLowerCase;
1304-
13051301
MACRO_FUNCTION_RESOLVER(
13061302
int(__cdecl*)(HANDLE hFile), false, Address::SHC_3BB0A8C1_0x005826FB, &OpenSHC::Global::GetFilePtrPos)
13071303
GetFilePtrPos;

src/OpenSHC/Global.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -697,8 +697,6 @@ namespace Global {
697697

698698
void __cdecl SetRNGSeed(ulong param_1);
699699

700-
char* __cdecl StringToLowerCase(char* string);
701-
702700
int __cdecl GetFilePtrPos(HANDLE hFile);
703701

704702
} // namespace Global

src/OpenSHC/OS.func.hpp

Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
/**
2+
THIS FILE IS AUTO GENERATED
3+
Communicate changes to the dev team (e.g. via a Pull Request).
4+
Changes get lost otherwise.
5+
6+
path: 'OpenSHC/OS.func.hpp'
7+
*/
8+
9+
#pragma once
10+
11+
#include "OpenSHC/OS.hpp"
12+
#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp"
13+
#include "OpenSHC/WindowsHelper/Enums/FilePtrMoveMethodInt.hpp"
14+
#include "OpenSHC/WindowsHelper/Enums/OpenFlagInt.hpp"
15+
#include "crtdefs.h"
16+
#include "guiddef.h"
17+
#include "mbstring.h"
18+
#include "time.h"
19+
#include "vadefs.h"
20+
namespace OpenSHC {
21+
namespace OS_Func {
22+
23+
using OpenSHC::WindowsHelper::Enums::BOOLEnum;
24+
using OpenSHC::WindowsHelper::Enums::FilePtrMoveMethodInt;
25+
using OpenSHC::WindowsHelper::Enums::OpenFlagInt;
26+
27+
MACRO_FUNCTION_RESOLVER(int*(__stdcall*)(void* param_1, uint param_2), REIMPLEMENTED_CRT,
28+
Address::SHC_3BB0A8C1_0x004791B0, &OpenSHC::OS::basic_ofstream_write)
29+
basic_ofstream_write;
30+
31+
MACRO_FUNCTION_RESOLVER(BOOLEnum(__cdecl*)(GUID* param_1, GUID* param_2), REIMPLEMENTED_CRT,
32+
Address::SHC_3BB0A8C1_0x0047C5D0, &OpenSHC::OS::isEqualGUID)
33+
isEqualGUID;
34+
35+
MACRO_FUNCTION_RESOLVER(
36+
int(__cdecl*)(double _X), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057ECF1, &OpenSHC::OS::__isnan)
37+
__isnan;
38+
39+
MACRO_FUNCTION_RESOLVER(
40+
int(__cdecl*)(float10 param), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057ED20, &OpenSHC::OS::__ftol2)
41+
__ftol2;
42+
43+
MACRO_FUNCTION_RESOLVER(void(__cdecl*)(float10 param_1), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057EE10,
44+
&OpenSHC::OS::math_atan_FUN_0057ee10)
45+
math_atan_FUN_0057ee10;
46+
47+
MACRO_FUNCTION_RESOLVER(float10(__cdecl*)(float10 floatIn, uint eaxIn, int param_3, int param_4), REIMPLEMENTED_CRT,
48+
Address::SHC_3BB0A8C1_0x0057EE68, &OpenSHC::OS::math_atan_FUN_0057ee68)
49+
math_atan_FUN_0057ee68;
50+
51+
MACRO_FUNCTION_RESOLVER(float10(__cdecl*)(float10 param_1), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057EEF0,
52+
&OpenSHC::OS::math_sqrt_FUN_0057eef0)
53+
math_sqrt_FUN_0057eef0;
54+
55+
MACRO_FUNCTION_RESOLVER(float10(__cdecl*)(int param_1, uint param_2, float10 param_3), REIMPLEMENTED_CRT,
56+
Address::SHC_3BB0A8C1_0x0057EF0D, &OpenSHC::OS::math_sqrt_FUN_0057ef0d)
57+
math_sqrt_FUN_0057ef0d;
58+
59+
MACRO_FUNCTION_RESOLVER(void(__cdecl*)(float10 param_1), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057EFF0,
60+
&OpenSHC::OS::math_tan_1_FUN_0057eff0)
61+
math_tan_1_FUN_0057eff0;
62+
63+
MACRO_FUNCTION_RESOLVER(float10(__cdecl*)(int param_1, int param_2), REIMPLEMENTED_CRT,
64+
Address::SHC_3BB0A8C1_0x0057F048, &OpenSHC::OS::math_FUN_0057f048)
65+
math_FUN_0057f048;
66+
67+
MACRO_FUNCTION_RESOLVER(float10(__fastcall*)(float10 param_1), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057F120,
68+
&OpenSHC::OS::math_cos)
69+
math_cos;
70+
71+
MACRO_FUNCTION_RESOLVER(float10(__fastcall*)(float10 param_1), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057F250,
72+
&OpenSHC::OS::math_sin)
73+
math_sin;
74+
75+
MACRO_FUNCTION_RESOLVER(tm*(__cdecl*)(__time32_t * _Time), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057F5FE,
76+
&OpenSHC::OS::__localtime64)
77+
__localtime64;
78+
79+
MACRO_FUNCTION_RESOLVER(__time64_t(__cdecl*)(__time64_t* _Time), REIMPLEMENTED_CRT,
80+
Address::SHC_3BB0A8C1_0x0057F622, &OpenSHC::OS::__time64)
81+
__time64;
82+
83+
MACRO_FUNCTION_RESOLVER(void*(__cdecl*)(void* _Dst, int _Val, size_t _Size), REIMPLEMENTED_CRT,
84+
Address::SHC_3BB0A8C1_0x0057F660, &OpenSHC::OS::_memset)
85+
_memset;
86+
87+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(char* _Dest, char* _Format), REIMPLEMENTED_CRT,
88+
Address::SHC_3BB0A8C1_0x0057F6DA, &OpenSHC::OS::_sprintf)
89+
_sprintf;
90+
91+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(char* _Str1, char* _Str2), REIMPLEMENTED_CRT,
92+
Address::SHC_3BB0A8C1_0x0057F8EE, &OpenSHC::OS::__stricmp)
93+
__stricmp;
94+
95+
MACRO_FUNCTION_RESOLVER(
96+
int(__cdecl*)(void* param_1), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057FA62, &OpenSHC::OS::_atexit)
97+
_atexit;
98+
99+
MACRO_FUNCTION_RESOLVER(
100+
void(__cdecl*)(void* _Memory), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057FA74, &OpenSHC::OS::_free)
101+
_free;
102+
103+
MACRO_FUNCTION_RESOLVER(
104+
int(__cdecl*)(int _C), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057FC19, &OpenSHC::OS::_tolower)
105+
_tolower;
106+
107+
MACRO_FUNCTION_RESOLVER(
108+
int(__cdecl*)(FILE* _File), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057FCB2, &OpenSHC::OS::_fclose)
109+
_fclose;
110+
111+
MACRO_FUNCTION_RESOLVER(void(__cdecl*)(void* dstBuffer, size_t elSize, size_t count, FILE* file), REIMPLEMENTED_CRT,
112+
Address::SHC_3BB0A8C1_0x0057FFCA, &OpenSHC::OS::_fread)
113+
_fread;
114+
115+
MACRO_FUNCTION_RESOLVER(
116+
void*(__cdecl*)(size_t _Size), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x00580034, &OpenSHC::OS::_malloc)
117+
_malloc;
118+
119+
MACRO_FUNCTION_RESOLVER(
120+
long(__cdecl*)(FILE* _File), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0058028F, &OpenSHC::OS::_ftell)
121+
_ftell;
122+
123+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(FILE* _File, long _Offset, FilePtrMoveMethodInt _Origin), REIMPLEMENTED_CRT,
124+
Address::SHC_3BB0A8C1_0x00580384, &OpenSHC::OS::_fseek)
125+
_fseek;
126+
127+
MACRO_FUNCTION_RESOLVER(FILE*(__cdecl*)(char* _Filename, char* _Mode), REIMPLEMENTED_CRT,
128+
Address::SHC_3BB0A8C1_0x005804CD, &OpenSHC::OS::_fopen)
129+
_fopen;
130+
131+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(wchar_t* _Dest, wchar_t* _Format, va_list _Args), REIMPLEMENTED_CRT,
132+
Address::SHC_3BB0A8C1_0x00580577, &OpenSHC::OS::__vswprintf)
133+
__vswprintf;
134+
135+
MACRO_FUNCTION_RESOLVER(
136+
wint_t(__cdecl*)(FILE* _File), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x00580735, &OpenSHC::OS::_fgetwc)
137+
_fgetwc;
138+
139+
MACRO_FUNCTION_RESOLVER(size_t(__cdecl*)(void* _Str, size_t _Size, size_t _Count, FILE* _File), REIMPLEMENTED_CRT,
140+
Address::SHC_3BB0A8C1_0x0058099B, &OpenSHC::OS::_fwrite)
141+
_fwrite;
142+
143+
MACRO_FUNCTION_RESOLVER(wchar_t*(__cdecl*)(wchar_t * _Dest, wchar_t* _Source, size_t _Count), REIMPLEMENTED_CRT,
144+
Address::SHC_3BB0A8C1_0x00580A1D, &OpenSHC::OS::_wcsncpy)
145+
_wcsncpy;
146+
147+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(wchar_t* _Str1, wchar_t* _Str2), REIMPLEMENTED_CRT,
148+
Address::SHC_3BB0A8C1_0x00580B69, &OpenSHC::OS::__wcsicmp)
149+
__wcsicmp;
150+
151+
MACRO_FUNCTION_RESOLVER(
152+
void(__cdecl*)(void* _Memory), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x00580DC1, &OpenSHC::OS::_free)
153+
_free;
154+
155+
MACRO_FUNCTION_RESOLVER(errno_t(__cdecl*)(void* _Dst, rsize_t _DstSize, void* _Src, rsize_t _MaxCount),
156+
REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x00580DC6, &OpenSHC::OS::_memcpy_s)
157+
_memcpy_s;
158+
159+
MACRO_FUNCTION_RESOLVER(
160+
void(__cdecl*)(void* _Memory), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x00580E9C, &OpenSHC::OS::_free)
161+
_free;
162+
163+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(int fileDescriptor), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x00580F38,
164+
&OpenSHC::OS::_ucrt_close)
165+
_ucrt_close;
166+
167+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(int fileDescriptor, void* destination, size_t size), REIMPLEMENTED_CRT,
168+
Address::SHC_3BB0A8C1_0x005815C6, &OpenSHC::OS::_ucrt_read)
169+
_ucrt_read;
170+
171+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(char* _Filename, OpenFlagInt _OpenFlag, int _PMode), REIMPLEMENTED_CRT,
172+
Address::SHC_3BB0A8C1_0x005816C3, &OpenSHC::OS::_ucrt_open)
173+
_ucrt_open;
174+
175+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x005816FB, &OpenSHC::OS::_rand)
176+
_rand;
177+
178+
MACRO_FUNCTION_RESOLVER(
179+
char*(__cdecl*)(char* string), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x005818EB, &OpenSHC::OS::__strlwr)
180+
__strlwr;
181+
182+
MACRO_FUNCTION_RESOLVER(undefined4(__cdecl*)(int fileDescriptor, void* src, uint size), REIMPLEMENTED_CRT,
183+
Address::SHC_3BB0A8C1_0x00581F6F, &OpenSHC::OS::_ucrt_write)
184+
_ucrt_write;
185+
186+
MACRO_FUNCTION_RESOLVER(void*(__cdecl*)(void* _Dst, void* _Src, size_t _Size), REIMPLEMENTED_CRT,
187+
Address::SHC_3BB0A8C1_0x00582050, &OpenSHC::OS::_memcpy)
188+
_memcpy;
189+
190+
MACRO_FUNCTION_RESOLVER(
191+
int(__cdecl*)(int _C), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x005824CD, &OpenSHC::OS::_toupper)
192+
_toupper;
193+
194+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(int fileDescriptor, long lDistanceToMove, FilePtrMoveMethodInt moveMethod),
195+
REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0058277E, &OpenSHC::OS::_ucrt_lseek)
196+
_ucrt_lseek;
197+
198+
MACRO_FUNCTION_RESOLVER(longlong(__stdcall*)(long dividend_lowOrder, long dividend_highOrder, long divisor_lowOrder,
199+
long divisor_highOrder),
200+
REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x00582C30, &OpenSHC::OS::__alldiv)
201+
__alldiv;
202+
203+
MACRO_FUNCTION_RESOLVER(ulonglong(__stdcall*)(ulong factor1_lowOrder, ulong factor1_highOrder,
204+
ulong factor2_lowOrder, ulong factor2_highOrder),
205+
REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x00582CE0, &OpenSHC::OS::__allmul)
206+
__allmul;
207+
208+
MACRO_FUNCTION_RESOLVER(
209+
undefined4(__stdcall*)(), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x005834A0, &OpenSHC::OS::__alloca_probe)
210+
__alloca_probe;
211+
212+
MACRO_FUNCTION_RESOLVER(int(__cdecl*)(char* _Str1, char* _Str2, size_t _MaxCount), REIMPLEMENTED_CRT,
213+
Address::SHC_3BB0A8C1_0x005835BB, &OpenSHC::OS::__strnicmp)
214+
__strnicmp;
215+
216+
MACRO_FUNCTION_RESOLVER(
217+
void(__cdecl*)(int _Code), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x00583D55, &OpenSHC::OS::_exit)
218+
_exit;
219+
220+
MACRO_FUNCTION_RESOLVER(uint(__cdecl*)(undefined4 param_1, uint param_2), REIMPLEMENTED_CRT,
221+
Address::SHC_3BB0A8C1_0x00588628, &OpenSHC::OS::math_FUN_00588628)
222+
math_FUN_00588628;
223+
224+
MACRO_FUNCTION_RESOLVER(float10(__fastcall*)(float10 param_1, char* param_2, int param_3, undefined4 param_4,
225+
undefined4 param_5, undefined4 param_6, undefined4 param_7),
226+
REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0058864B, &OpenSHC::OS::math_FUN_0058864b)
227+
math_FUN_0058864b;
228+
229+
MACRO_FUNCTION_RESOLVER(
230+
float10(__fastcall*)(), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x005887AE, &OpenSHC::OS::math_FUN_005887ae)
231+
math_FUN_005887ae;
232+
233+
} // namespace OS_Func
234+
} // namespace OpenSHC

0 commit comments

Comments
 (0)