66 |
|
// Font texture cache doubled |
67 |
|
if (patch_fonttexturecache) |
68 |
|
{ |
69 |
< |
DDrPatch_Byte(OniExe + 0x00020ea7, 0x20); |
70 |
< |
DDrPatch_Byte(OniExe + 0x00020f4a, 0x40); |
69 |
> |
DDrPatch_Byte((char*)(OniExe + 0x00020ea7), 0x20); |
70 |
> |
DDrPatch_Byte((char*)(OniExe + 0x00020f4a), 0x40); |
71 |
|
} |
72 |
|
|
73 |
|
// Now supports textures up to 512x512 |
74 |
|
if (patch_largetextures) |
75 |
< |
DDrPatch_Byte (OniExe + 0x00005251, 0x10); |
75 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x00005251), 0x10); |
76 |
|
|
77 |
|
// Non-"_Final" levels are now valid |
78 |
|
if (patch_levelplugins) |
79 |
< |
DDrPatch_Byte (OniExe + 0x000206a8, 0x01); |
79 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x000206a8), 0x01); |
80 |
|
|
81 |
|
// Pathfinding grid cache size x8 |
82 |
|
if (patch_pathfinding) |
83 |
|
{ |
84 |
< |
const char pathfinding[2] = {0x90 , 0xE9 }; |
85 |
< |
DDrPatch_Byte (OniExe + 0x0010b03b, 0x20); |
86 |
< |
DDrPatch_Byte (OniExe + 0x0010b04c, 0x20); |
84 |
> |
const unsigned char pathfinding[2] = {0x90 , 0xE9 }; |
85 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0010b03b), 0x20); |
86 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0010b04c), 0x20); |
87 |
|
|
88 |
|
//other stuff |
89 |
< |
DDrPatch_Const(0x440789, pathfinding); |
89 |
> |
DDrPatch_Const((char*)(OniExe + 0x00040789), pathfinding); |
90 |
|
} |
91 |
|
|
92 |
|
// Projectile awareness fixed |
93 |
|
if (patch_projaware) |
94 |
|
{ |
95 |
< |
DDrPatch_Byte (OniExe + 0x0009c07c, 0x6c); |
96 |
< |
DDrPatch_Byte (OniExe + 0x0009c080, 0x70); |
97 |
< |
DDrPatch_Byte (OniExe + 0x0009c084, 0x74); |
98 |
< |
DDrPatch_Byte (OniExe + 0x0009c110, 0x6c); |
95 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0009c07c), 0x6c); |
96 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0009c080), 0x70); |
97 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0009c084), 0x74); |
98 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0009c110), 0x6c); |
99 |
|
} |
100 |
|
|
101 |
|
// Forced DirectInput (for Windows NT) |
102 |
|
if (patch_directinput) |
103 |
< |
DDrPatch_Byte (OniExe + 0x00002e6d, 0xeb); |
103 |
> |
DDrPatch_Byte((char*)(OniExe + 0x00002e6d), 0xeb); |
104 |
|
|
105 |
|
if (patch_wpfadetime) |
106 |
|
{ |
107 |
|
// Makes wp_fadetime actually have a function |
108 |
< |
const char fadetime_patch[] = { 0x66, 0x8B, 0x1D, 0xC4, 0x7D, 0x62, 0x00, 0x66, 0x89, 0x5E, 0x46, 0x5B, 0x5E, 0x83, 0xC4, 0x14, 0xC3 }; |
109 |
< |
DDrPatch_Const (OniExe + 0x0011a889, fadetime_patch); |
110 |
< |
DDrPatch_Byte (OniExe + 0x0011a560, 0x31); |
108 |
> |
const unsigned char fadetime_patch[] = { 0x66, 0x8B, 0x1D, 0xC4, 0x7D, 0x62, 0x00, 0x66, 0x89, 0x5E, 0x46, 0x5B, 0x5E, 0x83, 0xC4, 0x14, 0xC3 }; |
109 |
> |
DDrPatch_Const ((char*)(OniExe + 0x0011a889), fadetime_patch); |
110 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0011a560), 0x31); |
111 |
|
|
112 |
|
// Sets the fadetime to 4800 by default |
113 |
< |
DDrPatch_Int16 ((OniExe + 0x0011ab0e), 0x12c0); |
113 |
> |
DDrPatch_Int16 ((short*)(OniExe + 0x0011ab0e), 0x12c0); |
114 |
|
} |
115 |
|
|
116 |
|
// FIXME: add switches |
123 |
|
// Don't use this, it breaks stairs. |
124 |
|
if (patch_kickguns) |
125 |
|
{ |
126 |
< |
const char kickgun_patch[] = { 0x00, 0x05, 0x00, 0x00, 0x00, 0xC7, 0x05, 0x1C, 0xC9, 0x5E, 0x00, 0x70, 0xB8, 0x43, 0x00, 0xC7, 0x05, 0x20, 0xC9, 0x5E, 0x00, 0x20, 0xBE, 0x43 }; |
127 |
< |
DDrPatch_Const (OniExe + 0x000dc420, kickgun_patch); |
126 |
> |
const unsigned char kickgun_patch[] = { 0x00, 0x05, 0x00, 0x00, 0x00, 0xC7, 0x05, 0x1C, 0xC9, 0x5E, 0x00, 0x70, 0xB8, 0x43, 0x00, 0xC7, 0x05, 0x20, 0xC9, 0x5E, 0x00, 0x20, 0xBE, 0x43 }; |
127 |
> |
DDrPatch_Const ((char*)(OniExe + 0x000dc420), kickgun_patch); |
128 |
|
} |
129 |
|
|
130 |
|
// Cooldown timer exploit fix ^_^ |
131 |
|
if (patch_cooldowntimer) |
132 |
|
{ |
133 |
< |
const char cooldown_patch[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 }; |
134 |
< |
DDrPatch_Const (OniExe + 0x0011a825, cooldown_patch); |
133 |
> |
const unsigned char cooldown_patch[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 }; |
134 |
> |
DDrPatch_Const ((char*)(OniExe + 0x0011a825), cooldown_patch); |
135 |
|
} |
136 |
|
|
137 |
|
if (patch_throwtest) |
138 |
|
{ |
139 |
< |
const char throwtest_patch[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 }; |
140 |
< |
DDrPatch_Const(OniExe + 0x000dc190, throwtest_patch); |
139 |
> |
const unsigned char throwtest_patch[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 }; |
140 |
> |
DDrPatch_Const((char*)(OniExe + 0x000dc190), throwtest_patch); |
141 |
|
} |
142 |
|
|
143 |
|
// Disable UUrPlatform_Initalize/Terminate, this enables the Alt-Tab and the Windows key but has the possible side effect of allowing the screensaver to enable itself in-game. |
144 |
|
if (patch_alttab) |
145 |
|
{ |
146 |
< |
DDrPatch_Byte ((void*)UUrPlatform_Initialize, 0xC3); |
147 |
< |
DDrPatch_Byte ((void*)UUrPlatform_Terminate, 0xC3); |
146 |
> |
DDrPatch_Byte ((char*)UUrPlatform_Initialize, 0xC3); |
147 |
> |
DDrPatch_Byte ((char*)UUrPlatform_Terminate, 0xC3); |
148 |
|
} |
149 |
|
|
150 |
|
// Unlocks particle action disabling/enabling bits for all events. (Will be controlled by a command line switch when I figure out how to do that without Win32 hacks.) |
151 |
|
if (patch_particledisablebit) |
152 |
< |
DDrPatch_Int16 (OniExe + 0x001b184, 0x9090); |
152 |
> |
DDrPatch_Int16 ((short*)(OniExe + 0x001b184), 0x9090); |
153 |
|
|
154 |
|
// Multi-byte patch (multiple language support) |
155 |
|
if (!patch_multibyte) |
156 |
|
{ |
157 |
< |
DDrPatch_Byte (OniExe + 0x0002d8f8, 0xeb); |
158 |
< |
DDrPatch_Byte (OniExe + 0x0002d9ad, 0xeb); |
159 |
< |
DDrPatch_Byte (OniExe + 0x0002dbe2, 0xeb); |
160 |
< |
DDrPatch_Byte (OniExe + 0x0002dec3, 0xeb); |
161 |
< |
DDrPatch_Byte (OniExe + 0x0002e2ab, 0xeb); |
162 |
< |
DDrPatch_Byte (OniExe + 0x0002e2c4, 0xeb); |
163 |
< |
DDrPatch_Byte (OniExe + 0x0002e379, 0xeb); |
164 |
< |
DDrPatch_Byte (OniExe + 0x0002e48c, 0xeb); |
165 |
< |
DDrPatch_Byte (OniExe + 0x0002e4d0, 0xeb); |
166 |
< |
DDrPatch_Byte (OniExe + 0x0002e4f4, 0xeb); |
167 |
< |
DDrPatch_Byte (OniExe + 0x0002e646, 0xeb); |
168 |
< |
DDrPatch_Byte (OniExe + 0x0002e695, 0xeb); |
169 |
< |
DDrPatch_Byte (OniExe + 0x0002e944, 0xeb); |
170 |
< |
DDrPatch_Byte (OniExe + 0x0002e95d, 0xeb); |
171 |
< |
DDrPatch_Byte (OniExe + 0x0002e98e, 0xeb); |
172 |
< |
DDrPatch_Byte (OniExe + 0x0002e9dc, 0xeb); |
157 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002d8f8), 0xeb); |
158 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002d9ad), 0xeb); |
159 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002dbe2), 0xeb); |
160 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002dec3), 0xeb); |
161 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e2ab), 0xeb); |
162 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e2c4), 0xeb); |
163 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e379), 0xeb); |
164 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e48c), 0xeb); |
165 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e4d0), 0xeb); |
166 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e4f4), 0xeb); |
167 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e646), 0xeb); |
168 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e695), 0xeb); |
169 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e944), 0xeb); |
170 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e95d), 0xeb); |
171 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e98e), 0xeb); |
172 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x0002e9dc), 0xeb); |
173 |
|
} |
174 |
|
|
175 |
|
// Cheat table patch |
176 |
|
if (patch_cheattable) |
177 |
|
{ |
178 |
< |
DDrPatch_Int32 (0x004f616b, (int)&DDr_CheatTable[0].name); |
179 |
< |
DDrPatch_Int32 (OniExe + 0x000f617a, (int)&DDr_CheatTable[0].message_on); |
178 |
> |
DDrPatch_Int32 ((int*)(OniExe + 0x000f616b), (int)&DDr_CheatTable[0].name); |
179 |
> |
DDrPatch_Int32 ((int*)(OniExe + 0x000f617a), (int)&DDr_CheatTable[0].message_on); |
180 |
|
} |
181 |
|
|
182 |
|
// ARGB8888 textures |
183 |
|
if (patch_argb8888) |
184 |
|
{ |
185 |
< |
DDrPatch_Byte (OniExe + 0x00135af0, 0x07); |
186 |
< |
DDrPatch_Byte (OniExe + 0x00135af4, 0x0B); |
185 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x00135af0), 0x07); |
186 |
> |
DDrPatch_Byte ((char*)(OniExe + 0x00135af4), 0x0B); |
187 |
|
} |
188 |
|
|
189 |
|
//Test newweap patch |
191 |
|
|
192 |
|
//Makes it always say "Recieved weapon_name." |
193 |
|
//Needs check for loc_4DFC66 |
194 |
< |
//DDrPatch_NOOP( OniExe + 0x000E4DF8,2); |
194 |
> |
//DDrPatch_NOOP((char*)(OniExe + 0x000E4DF8),2); |
195 |
|
|
196 |
|
//Adds Weapon name and ammo meter to pickup autoprompt |
197 |
< |
DDrPatch_NOOP( OniExe + 0x000FAC73, 9); |
198 |
< |
DDrPatch_NOOP( OniExe + 0x000FAC80, 5); |
199 |
< |
DDrPatch_MakeCall( OniExe + 0xFAC85, DDrWeapon2Message); |
197 |
> |
DDrPatch_NOOP((char*)(OniExe + 0x000FAC73), 9); |
198 |
> |
DDrPatch_NOOP((char*)(OniExe + 0x000FAC80), 5); |
199 |
> |
DDrPatch_MakeCall((void*)(OniExe + 0xFAC85), (void*)DDrWeapon2Message); |
200 |
|
|
201 |
|
//Moves location of colors |
202 |
< |
//DDrPatch_Int32( 0x0042E3D5, (int)&DDrDSayColors ); |
203 |
< |
//DDrPatch_Int32( 0x0042E3DA, (int)&DDrDSayColors ); |
202 |
> |
//DDrPatch_Int32((int*)(OniExe + 0x0002E3D5), (int)&DDrDSayColors ); |
203 |
> |
//DDrPatch_Int32((int*)(OniExe + 0x0002E3DA), (int)&DDrDSayColors ); |
204 |
|
} |
205 |
|
|
206 |
|
// Disable loading the vtuneapi.dll |
207 |
|
//if (patch_killvtune) |
208 |
< |
//DDrPatch_Byte (OniExe + 0x00026340, 0xC3); |
208 |
> |
//DDrPatch_Byte ((char*)(OniExe + 0x00026340), 0xC3); |
209 |
|
|
210 |
|
// Disable Oni's internal CLrGetCommandLine function (to eventually replace it with our own) |
211 |
|
if (patch_getcmdline) |
212 |
< |
DDrPatch_NOOP (OniExe + 0x000d3280, 51); |
212 |
> |
DDrPatch_NOOP ((char*)(OniExe + 0x000d3280), 51); |
213 |
|
|
214 |
|
// Disable Oni's command line parser so it doesn't interfere with ours |
215 |
|
if (patch_disablecmdline) |
216 |
< |
DDrPatch_Int32 (OniExe + 0x000d3570, 0xc3c03366); |
216 |
> |
DDrPatch_Int32 ((int*)(OniExe + 0x000d3570), 0xc3c03366); |
217 |
|
|
218 |
|
if (patch_bsl) |
219 |
|
{ |
222 |
|
//TODO: fix moonshadow. |
223 |
|
Character * Chr = 0; |
224 |
|
int NoPath = (int)&(Chr[0].RegenHax) & 0x000000FF; |
225 |
< |
const char regen_patch[] = |
225 |
> |
const unsigned char regen_patch[] = |
226 |
|
{0x90, 0x90, 0x90, 0x90, 0x90, // mov al, _WPgRegenerationCheat -> NOOP |
227 |
|
0x90, 0x90, // test al, al -> NOOP |
228 |
|
0x90, 0x90, // jz short loc_51BB98 -> NOOP |
231 |
|
0x85, 0xC0, // test eax, eax |
232 |
|
0x74, 0x21 // jnz 0x21 -> jz 0x21 |
233 |
|
}; |
234 |
< |
DDrPatch_Const(0x0051BB64, regen_patch); |
234 |
> |
DDrPatch_Const((char*)(OniExe + 0x0011BB64), regen_patch); |
235 |
|
} |
236 |
|
|
237 |
|
if(patch_chinese) |
251 |
|
if(1) |
252 |
|
{ |
253 |
|
//Set distance above head to 4.0 |
254 |
< |
DDrPatch_Int32(0x0048C998, 0x005296C8); |
254 |
> |
DDrPatch_Int32((int*)(OniExe + 0x0008C998), 0x005296C8); |
255 |
|
//texture height |
256 |
< |
DDrPatch_Byte( 0x0048C9DF, 0x3F ); |
256 |
> |
DDrPatch_Byte((char*)(OniExe + 0x0008C9DF), 0x3F ); |
257 |
|
//texture width |
258 |
< |
DDrPatch_NOOP( (char*)0x0048C9CA, 6 ); |
258 |
> |
DDrPatch_NOOP((char*)(OniExe + 0x0008C9CA), 6 ); |
259 |
|
//Set the text color to whatever we like ;) |
260 |
< |
DDrPatch_NOOP( 0x0048C898, 6 ); |
261 |
< |
DDrPatch_Byte( 0x0048C898, 0x8B ); |
262 |
< |
DDrPatch_Byte( 0x0048C899, 0xCE ); |
263 |
< |
//FLATLINE? DDrPatch_MakeCall( 0x0048C8A3, FLrHook_DebugNameShadeHack); |
260 |
> |
DDrPatch_NOOP((char*)(OniExe + 0x0008C898), 6 ); |
261 |
> |
DDrPatch_Byte((char*)(OniExe + 0x0008C898), 0x8B ); |
262 |
> |
DDrPatch_Byte((char*)(OniExe + 0x0008C899), 0xCE ); |
263 |
> |
//FLATLINE? DDrPatch_MakeCall((void*)(OniExe + 0x0008C8A3), FLrHook_DebugNameShadeHack); |
264 |
|
|
265 |
|
//Make the background black for additive blending |
266 |
< |
//FLATLINE? DDrPatch_MakeCall( 0x0048C802, FLrHook_DebugNameTextureInit ); |
266 |
> |
//FLATLINE? DDrPatch_MakeCall((void*)(OniExe + 0x0008C802), FLrHook_DebugNameTextureInit ); |
267 |
|
} |
268 |
|
|
269 |
|
if(1) |
270 |
|
{ |
271 |
< |
//DDrPatch_NOOP( 0x004E1957, 6 ); |
272 |
< |
//DDrPatch_MakeCall( 0x004E17F6, FLrHook_Lasers ); |
271 |
> |
//DDrPatch_NOOP((char*)(OniExe + 0x000E1957), 6 ); |
272 |
> |
//DDrPatch_MakeCall((void*)(OniExe + 0x000E17F6), FLrHook_Lasers ); |
273 |
|
} |
274 |
|
|
275 |
|
//Flatline related stuff |
276 |
< |
// DDrPatch_MakeCall(0x004FBCEA, DDrText_Hook); |
276 |
> |
// DDrPatch_MakeCall((void*)(OniExe + 0x000FBCEA), DDrText_Hook); |
277 |
|
|
278 |
< |
//FLATLINE? DDrPatch_Int32( 0x004B24D2, FLrSpawnHack); |
278 |
> |
//FLATLINE? DDrPatch_Int32((int*)(OniExe + 0x000B24D2), FLrSpawnHack); |
279 |
|
|
280 |
< |
//FLATLINE? DDrPatch_NOOP(0x004C26CB, 6); |
280 |
> |
//FLATLINE? DDrPatch_NOOP((char*)(OniExe + 0x000C26CB), 6); |
281 |
|
|
282 |
< |
//FLATLINE? DDrPatch_MakeCall( 0x004C26CB, FLrHook_DoorOpen); |
283 |
< |
//FLATLINE? DDrPatch_MakeCall( 0x004EE3CF, FLrHook_ConsoleActivate); |
282 |
> |
//FLATLINE? DDrPatch_MakeCall((void*)(OniExe + 0x000C26CB), FLrHook_DoorOpen); |
283 |
> |
//FLATLINE? DDrPatch_MakeCall((void*)(OniExe + 0x000EE3CF), FLrHook_ConsoleActivate); |
284 |
|
return true; |
285 |
|
} |
286 |
|
|
401 |
|
else if (!_stricmp(name, "savepoint")) |
402 |
|
{ |
403 |
|
char* str = _strdup(value); |
404 |
< |
DDrPatch_Int32(OniExe + 0x000fd730, (int)str); |
405 |
< |
DDrPatch_Int32(OniExe + 0x000fd738, (int)str); |
404 |
> |
DDrPatch_Int32((int*)(OniExe + 0x000fd730), (int)str); |
405 |
> |
DDrPatch_Int32((int*)(OniExe + 0x000fd738), (int)str); |
406 |
|
} |
407 |
|
else if (!_stricmp(name, "syndicatewarehouse")) |
408 |
|
{ |
409 |
|
char* str = _strdup(value); |
410 |
< |
DDrPatch_Int32(OniExe + 0x000fd71a, (int)str); |
411 |
< |
DDrPatch_Int32(OniExe + 0x0010ef75, (int)str); |
410 |
> |
DDrPatch_Int32((int*)(OniExe + 0x000fd71a), (int)str); |
411 |
> |
DDrPatch_Int32((int*)(OniExe + 0x0010ef75), (int)str); |
412 |
|
} |
413 |
|
else if (!_stricmp(name, "damn")) |
414 |
< |
DDrPatch__strdup(OniExe + 0x0010fb6e, value); |
414 |
> |
DDrPatch__strdup((int*)(OniExe + 0x0010fb6e), value); |
415 |
|
else if (!_stricmp(name, "blam")) |
416 |
< |
DDrPatch__strdup(OniExe + 0x0010fb73, value); |
416 |
> |
DDrPatch__strdup((int*)(OniExe + 0x0010fb73), value); |
417 |
|
else if (!_stricmp(name, "shapeshifter_on")) |
418 |
|
DDr_CheatTable[0].message_on = _strdup(value); |
419 |
|
else if (!_stricmp(name, "shapeshifter_off")) |
556 |
|
char v6[512]; // [sp+0h] [bp-100h]@1 |
557 |
|
FILE* UUgError_WarningFile = *_UUgError_WarningFile; |
558 |
|
|
559 |
< |
if (filename && message && (strlen(filename)+strlen(message))<420) { |
559 |
> |
if (filename && message && (strlen((const char*)filename)+strlen((const char*)message))<420) { |
560 |
|
sprintf( |
561 |
|
v6, |
562 |
|
"Error %x reported from File: %s, Line: %d (message follows) \r\n%s", |
563 |
|
errornum, |
564 |
< |
filename, |
564 |
> |
(const char*)filename, |
565 |
|
linenumber, |
566 |
< |
message); |
566 |
> |
(const char*)message); |
567 |
|
|
568 |
|
if ( UUgError_WarningFile |
569 |
|
|| (UUgError_WarningFile = oni_fopen("debugger.txt", "wb"), UUgError_WarningFile ) ) |
629 |
|
|
630 |
|
// Safe startup message printer |
631 |
|
if (patch_safeprintf) |
632 |
< |
DDrPatch_MakeJump(UUrStartupMessage, DDrStartupMessage); |
632 |
> |
DDrPatch_MakeJump((void*)UUrStartupMessage, (void*)DDrStartupMessage); |
633 |
|
|
634 |
|
// Daodan device mode enumeration function |
635 |
|
if (patch_daodandisplayenum) |
636 |
< |
DDrPatch_MakeJump(gl_enumerate_valid_display_modes, daodan_enumerate_valid_display_modes); |
636 |
> |
DDrPatch_MakeJump((void*)gl_enumerate_valid_display_modes, (void*)daodan_enumerate_valid_display_modes); |
637 |
|
|
638 |
|
// Performance patch |
639 |
|
if (patch_usegettickcount) |
640 |
|
{ |
641 |
< |
DDrPatch_MakeJump(UUrMachineTime_High, DDrMachineTime_High); |
642 |
< |
DDrPatch_MakeJump(UUrMachineTime_High_Frequency, DDrMachineTime_High_Frequency); |
643 |
< |
DDrPatch_MakeJump(UUrMachineTime_Sixtieths, DDrMachineTime_Sixtieths); |
641 |
> |
DDrPatch_MakeJump((void*)UUrMachineTime_High, (void*)DDrMachineTime_High); |
642 |
> |
DDrPatch_MakeJump((void*)UUrMachineTime_High_Frequency, (void*)DDrMachineTime_High_Frequency); |
643 |
> |
DDrPatch_MakeJump((void*)UUrMachineTime_Sixtieths, (void*)DDrMachineTime_Sixtieths); |
644 |
|
} |
645 |
|
|
646 |
|
// Cheats always enabled |
647 |
|
if (patch_cheatsenabled) |
648 |
< |
DDrPatch_MakeJump(ONrPersist_GetWonGame, DDrPersist_GetWonGame); |
648 |
> |
DDrPatch_MakeJump((void*)ONrPersist_GetWonGame, (void*)DDrPersist_GetWonGame); |
649 |
|
|
650 |
|
// Windowed mode |
651 |
|
if (patch_usedaodangl) |
652 |
|
{ |
653 |
< |
DDrPatch_NOOP((char*)0x004032B7, 6); |
654 |
< |
DDrPatch_MakeCall((char*)0x004032B7, LIiP_SetCursorPosHook); |
653 |
> |
DDrPatch_NOOP((char*)(OniExe + 0x000032B7), 6); |
654 |
> |
DDrPatch_MakeCall((void*)(OniExe + 0x000032B7), (void*)LIiP_SetCursorPosHook); |
655 |
|
|
656 |
< |
DDrPatch_NOOP((char*)0x00403349, 6); |
657 |
< |
DDrPatch_MakeCall((char*)0x00403349, LIiP_SetCursorPosHook); |
658 |
< |
DDrPatch_MakeJump(ONrPlatform_Initialize, DDrPlatform_Initialize); |
659 |
< |
DDrPatch_MakeJump(gl_platform_initialize, daodangl_platform_initialize); |
656 |
> |
DDrPatch_NOOP((char*)(OniExe + 0x00003349), 6); |
657 |
> |
DDrPatch_MakeCall((void*)(OniExe + 0x00003349), (void*)LIiP_SetCursorPosHook); |
658 |
> |
DDrPatch_MakeJump((void*)ONrPlatform_Initialize, (void*)DDrPlatform_Initialize); |
659 |
> |
DDrPatch_MakeJump((void*)gl_platform_initialize, (void*)daodangl_platform_initialize); |
660 |
|
} |
661 |
|
// Hacked windowed mode (for when daodangl isn't working properly) |
662 |
|
else if (patch_windowhack) |
663 |
|
DDrWindowHack_Install(); |
664 |
|
|
665 |
|
if (patch_daodaninit) |
666 |
< |
DDrPatch_MakeCall(OniExe + 0x000d345a, DDrGame_Init); |
666 |
> |
DDrPatch_MakeCall((void*)(OniExe + 0x000d345a), (void*)DDrGame_Init); |
667 |
|
|
668 |
|
// Patches for existing BSL functions |
669 |
|
if (patch_bsl) |
671 |
|
|
672 |
|
if (patch_cheater) |
673 |
|
{ |
674 |
< |
DDrPatch_MakeCall(OniExe + 0x000f618f, DDrCheater); |
675 |
< |
DDrPatch_Int16(OniExe + 0x000deb45, 0x5590); |
674 |
> |
DDrPatch_MakeCall((void*)(OniExe + 0x000f618f), (void*)DDrCheater); |
675 |
> |
DDrPatch_Int16((short*)(OniExe + 0x000deb45), 0x5590); |
676 |
|
#if 1 |
677 |
< |
DDrPatch_MakeCall(OniExe + 0x000deb47, FallingFrames); |
677 |
> |
DDrPatch_MakeCall((void*)(OniExe + 0x000deb47), (void*)FallingFrames); |
678 |
|
#endif |
679 |
< |
DDrPatch_MakeJump(OniExe + 0x0010f021, DDrCheater_LevelLoad); |
679 |
> |
DDrPatch_MakeJump((void*)(OniExe + 0x0010f021), (void*)DDrCheater_LevelLoad); |
680 |
|
} |
681 |
|
|
682 |
< |
//DDrPatch_MakeJump(0x004378c0, DDrException); |
683 |
< |
DDrPatch_MakeJump(0x004245A0, DDrPrintWarning); |
682 |
> |
//DDrPatch_MakeJump((void*)(OniExe + 0x000378c0, (void*)DDrException); |
683 |
> |
DDrPatch_MakeJump((void*)(OniExe + 0x000245A0), (void*)DDrPrintWarning); |
684 |
|
//init_daodan_gl(); |
685 |
|
|
686 |
|
ONiMain(argc, argv); |
717 |
|
DDrONiModule = GetModuleHandle(NULL); |
718 |
|
|
719 |
|
if (*(uint32_t*)(OniExe + 0x0011acd0) == 0x09d36852) |
720 |
< |
DDrPatch_MakeCall(OniExe + 0x0010fb49, DDrMain); |
720 |
> |
DDrPatch_MakeCall((void*)(OniExe + 0x0010fb49), (void*)DDrMain); |
721 |
|
else |
722 |
|
ExitProcess(0); |
723 |
|
break; |