-
Notifications
You must be signed in to change notification settings - Fork 3
/
LANStuff.h
190 lines (159 loc) · 4.12 KB
/
LANStuff.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
#include "stdio.h"
#include "InGameFunctions.h"
DWORD LANRaceSelectFixCodeCaveExit = 0x7aa8ed;
DWORD LANRaceModeFixCodeCaveExit = 0x5395a3;
DWORD LANRaceModeFixCodeCave2Exit = 0x535ecb;
void __declspec(naked) LANRaceSelectFixCodeCave()
{
_asm
{
cmp ecx, 0x04 //Tollbooth
je fixassprint
cmp ecx, 0x05 //Speedtrap
je fixassprint
cmp ecx, 0x06 //Multipoint
je fixassprint
cmp ecx, 0x07 //Cashgrab
je fixassprint
cmp ecx, 0x08 //Challenge
je fixassprint
cmp ecx, 0x03 //Knockout
je fixascircuit
jmp originalcode
fixassprint :
mov ecx, 0x00
jmp originalcode
fixascircuit :
mov ecx, 0x01
jmp originalcode
originalcode :
mov dword ptr ds : [edx + 0x168] , ecx
jmp LANRaceSelectFixCodeCaveExit
}
}
void __declspec(naked) LANRaceModeFixCodeCave()
{
_asm
{
cmp eax, 0x00
je sprint
cmp eax, 0x01
je circuit
cmp eax, 0x02
je drag
cmp eax, 0x03
je knockout
cmp eax, 0x04
je tollbooth
cmp eax, 0x05
je speedtrap
cmp eax, 0x06
je multipoint
cmp eax, 0x07
je cashgrab
cmp eax, 0x08
je challenge
mov ebx, 0x7818F85E // RACETYPES_UNKNOWN
mov ebp, 0x9A962438 // MODE_ICON_CHALLENGE_SERIES
jmp LANRaceModeFixCodeCaveExit
circuit :
mov ebx, 0x034FA2C1 // RACETYPES_CIRCUIT
mov ebp, 0xE9638D3E // MODE_ICON_CIRCUIT
jmp LANRaceModeFixCodeCaveExit
sprint :
mov ebx, 0xB94FD70E // RACETYPES_SPRINT
mov ebp, 0x2521E5EB // MODE_ICON_SPRINT
jmp LANRaceModeFixCodeCaveExit
drag :
mov ebx, 0x6F547E4C // RACETYPES_DRAG
mov ebp, 0xAAAB31E9 // MODE_ICON_DRAG
jmp LANRaceModeFixCodeCaveExit
knockout :
mov ebx, 0x4930F5FC // RACETYPES_KNOCKOUT
mov ebp, 0x3A015595 // MODE_ICON_LAP_KNOCKOUT
jmp LANRaceModeFixCodeCaveExit
tollbooth :
mov ebx, 0xA15E4505 // RACETYPES_TOLLBOOTH
mov ebp, 0x1A091045 // MILESTONE_TOLLBOOTH
jmp LANRaceModeFixCodeCaveExit
speedtrap :
mov ebx, 0xEE1EDC76 // RACETYPES_SPEEDTRAP
mov ebp, 0x66C9A7B6 // MILESTONE_SPEEDTRAP
jmp LANRaceModeFixCodeCaveExit
multipoint :
mov ebx, 0x634BA8DA // RACETYPES_TOKEN_PICKUP
mov ebp, 0x97C5B6A0 // MODE_ICON_MULTIPOINT_TOKEN
jmp LANRaceModeFixCodeCaveExit
cashgrab :
mov ebx, 0x0D0C9448 // RACETYPES_CASH_GRAB
mov ebp, 0xCE985A7A // MODE_ICON_MULTIPOINT_CASHGRAB
jmp LANRaceModeFixCodeCaveExit
challenge :
mov ebx, 0x213CC8D1 // RACETYPES_CHALLENGE
mov ebp, 0x9A962438 // MODE_ICON_CHALLENGE_SERIES
jmp LANRaceModeFixCodeCaveExit
}
}
void __declspec(naked) LANRaceModeFixCodeCave2()
{
_asm
{
cmp eax, 0x00
je sprint
cmp eax, 0x01
je circuit
cmp eax, 0x02
je drag
cmp eax, 0x03
je knockout
cmp eax, 0x04
je tollbooth
cmp eax, 0x05
je speedtrap
cmp eax, 0x06
je multipoint
cmp eax, 0x07
je cashgrab
cmp eax, 0x08
je challenge
mov ebp, 0x7818F85E // RACETYPES_UNKNOWN
mov eax, 0x9A962438 // MODE_ICON_CHALLENGE_SERIES
jmp LANRaceModeFixCodeCave2Exit
circuit :
mov ebp, 0x034FA2C1 // RACETYPES_CIRCUIT
mov eax, 0xE9638D3E // MODE_ICON_CIRCUIT
jmp LANRaceModeFixCodeCave2Exit
sprint :
mov ebp, 0xB94FD70E // RACETYPES_SPRINT
mov eax, 0x2521E5EB // MODE_ICON_SPRINT
jmp LANRaceModeFixCodeCave2Exit
drag :
mov ebp, 0x6F547E4C // RACETYPES_DRAG
mov eax, 0xAAAB31E9 // MODE_ICON_DRAG
jmp LANRaceModeFixCodeCave2Exit
knockout :
mov ebp, 0x4930F5FC // RACETYPES_KNOCKOUT
mov eax, 0x3A015595 // MODE_ICON_LAP_KNOCKOUT
jmp LANRaceModeFixCodeCave2Exit
tollbooth :
mov ebp, 0xA15E4505 // RACETYPES_TOLLBOOTH
mov eax, 0x1A091045 // MILESTONE_TOLLBOOTH
jmp LANRaceModeFixCodeCave2Exit
speedtrap :
mov ebp, 0xEE1EDC76 // RACETYPES_SPEEDTRAP
mov eax, 0x66C9A7B6 // MILESTONE_SPEEDTRAP
jmp LANRaceModeFixCodeCave2Exit
multipoint :
mov ebp, 0x634BA8DA // RACETYPES_TOKEN_PICKUP
mov eax, 0x97C5B6A0 // MODE_ICON_MULTIPOINT_TOKEN
jmp LANRaceModeFixCodeCave2Exit
cashgrab :
mov ebp, 0x0D0C9448 // RACETYPES_CASH_GRAB
mov eax, 0xCE985A7A // MODE_ICON_MULTIPOINT_CASHGRAB
jmp LANRaceModeFixCodeCave2Exit
challenge :
mov ebp, 0x213CC8D1 // RACETYPES_CHALLENGE
mov eax, 0x9A962438 // MODE_ICON_CHALLENGE_SERIES
jmp LANRaceModeFixCodeCave2Exit
}
}