summaryrefslogtreecommitdiff
path: root/src/render_player.h
blob: 212f8810ba8c3f05b180850c823ae5c4ff897515 (plain)
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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
#ifndef CODE_8001F980_H
#define CODE_8001F980_H

#include <common_structs.h>
#include "buffers.h"
#include "camera.h"

#define SOME_TEXTURE_POINTER_MATH 0x800

/* Function Prototypes */

void func_8001F980(s32*, s32*);
void func_8001F9E4(Player*, Camera*, s8);
u16 check_player_camera_collision(Player*, Camera*, f32, f32);
u16 func_8001FD78(Player*, f32, f32, f32);
void init_render_player(Player*, Camera*, s8, s8);
void load_kart_texture_and_render_kart_particle_on_screen_one(void);
void load_kart_texture_and_render_kart_particle_on_screen_two(void);
void load_kart_texture_and_render_kart_particle_on_screen_three(void);
void load_kart_texture_and_render_kart_particle_on_screen_four(void);
void try_rendering_player(Player*, s8, s8);
void render_players_on_screen_one(void);
void render_players_on_screen_two(void);
void render_players_on_screen_three(void);
void render_players_on_screen_four(void);
void func_80021B0C(void);
void func_80021C78(void);
void func_80021D40(void);
void func_80021DA8(void);
void mtxf_translate_rotate(Mat4, Vec3f, Vec3s);
void func_80021F50(Mat4, Vec3f);
void mtxf_scale2(Mat4, f32);
void failed_fixed_point_matrix_conversion(Mtx*, Mat4);
void convert_to_fixed_point_matrix(Mtx*, Mat4);
bool adjust_angle(s16*, s16, s16);
void move_s32_towards(s32*, s32, f32);
void move_f32_towards(f32*, f32, f32);
void move_s16_towards(s16*, s16, f32);
void move_u16_towards(u16*, s16, f32);
void func_80022744(void);
void func_8002276C(void);
void func_80022A98(Player*, s8);
void func_80022B50(Player*, s8);
void func_80022BC4(Player*, s8);
void func_80022CA8(Player*, s8, s8, s8);
void func_80022D60(Player*, s8, s8, s8);
void func_80022DB4(Player*, s8);
void func_80022E84(Player*, s8, s8, s8);
void change_player_color_effect_rgb(Player*, s8, s32, f32);
void change_player_color_effect_cmy(Player*, s8, s32, f32);
bool is_player_under_light_luigi_raceway(Player*, s8);
void render_light_environment_on_player(Player*, s8);
void func_800235AC(Player*, s8);
void func_80023BF0(Player*, s8, s8, s8);
void render_player_shadow(Player*, s8, s8);
void render_player_shadow_credits(Player*, s8, s8);
void render_kart(Player*, s8, s8, s8);
void render_ghost(Player*, s8, s8, s8);
void func_80025DE8(Player*, s8, s8, s8);
void render_player_ice_reflection(Player*, s8, s8, s8);
void render_player(Player*, s8, s8);
void func_80026A48(Player*, s8);
void update_wheel_palette(Player*, s8, s8, s8);
void func_80030A34(Player*);
void func_8002701C(void);
void func_80027024(s32, s32, s32);

/* This is where I'd put my static data, if I had any */

extern struct_D_802F1F80* gPlayerPalette;

extern s32 D_80164A28;
extern s16 gPlayersToRenderPlayerId[];
extern s16 D_80164ABE[];
extern s16 gPlayersToRenderScreenId[];
extern Player* gPlayersToRenderPlayer[];
extern s16 gMatrixEffectCount;
extern u16 gPlayerRedEffect[];
extern u16 gPlayerGreenEffect[];
extern u16 gPlayerBlueEffect[];
extern u16 gPlayerCyanEffect[];
extern u16 gPlayerMagentaEffect[];
extern u16 gPlayerYellowEffect[];
extern s32 D_80164B80[];

extern s32 D_8018D930[];

extern s32 gPlayersToRenderCount;
extern void* D_800DDB5C[];
extern Vtx* D_800DDBB4[];
extern f32 gCharacterSize[];
extern s32 D_800DDE74[];
extern Vtx D_800E51D0[];
extern Vtx D_800E5210[];
extern f64 D_800ED680;
extern f64 D_800ED688;
extern f32 D_800ED6A8;

// There are actually found in data_0DD0A0_2_0.s
extern Vtx D_800E49C0[];
extern Vtx D_800E4AC0[];
extern Vtx D_800E4BC0[];
extern Vtx D_800E4CC0[];
extern Vtx D_800E4DC0[];
extern Vtx D_800E4EC0[];
extern Vtx D_800E4FD0[];
extern Vtx D_800E50D0[];

extern u32 gKartMarioWheels0[];
extern u32 gKartMarioWheels1[];
extern u32 gKartLuigiWheels0[];
extern u32 gKartLuigiWheels1[];
extern u32 gKartBowserWheels0[];
extern u32 gKartBowserWheels1[];
extern u32 gKartToadWheels0[];
extern u32 gKartToadWheels1[];
extern u32 gKartYoshiWheels0[];
extern u32 gKartYoshiWheels1[];
extern u32 gKartDKWheels0[];
extern u32 gKartDKWheels1[];
extern u32 gKartPeachWheels0[];
extern u32 gKartPeachWheels1[];
extern u32 gKartWarioWheels0[];
extern u32 gKartWarioWheels1[];

// These all come the kart data stuff, they should end up in their own inc.c eventually
#ifdef TARGET_N64
extern u8* gKartMario168Wheel0[];
extern u8* gKartMario147Wheel0[];
extern u8* gKartMario126Wheel0[];
extern u8* gKartMario105Wheel0[];
extern u8* gKartMario084Wheel0[];
extern u8* gKartMario063Wheel0[];
extern u8* gKartMario042Wheel0[];
extern u8* gKartMario021Wheel0[];
extern u8* gKartMario000Wheel0[];
extern u8* gKartMario269Wheel0[];
extern u8* gKartMario269Wheel0[];
extern u8* gKartMario249Wheel0[];
extern u8* gKartMario229Wheel0[];
extern u8* gKartMario229Wheel0[];
extern u8* gKartMario229Wheel0[];
extern u8* gKartMario209Wheel0[];
extern u8* gKartMario189Wheel0[];
extern u8* gKartMario189Wheel0[];
extern u8* gKartLuigi168Wheel0[];
extern u8* gKartLuigi147Wheel0[];
extern u8* gKartLuigi126Wheel0[];
extern u8* gKartLuigi105Wheel0[];
extern u8* gKartLuigi084Wheel0[];
extern u8* gKartLuigi063Wheel0[];
extern u8* gKartLuigi042Wheel0[];
extern u8* gKartLuigi021Wheel0[];
extern u8* gKartLuigi000Wheel0[];
extern u8* gKartLuigi269Wheel0[];
extern u8* gKartLuigi269Wheel0[];
extern u8* gKartLuigi249Wheel0[];
extern u8* gKartLuigi229Wheel0[];
extern u8* gKartLuigi229Wheel0[];
extern u8* gKartLuigi229Wheel0[];
extern u8* gKartLuigi209Wheel0[];
extern u8* gKartLuigi189Wheel0[];
extern u8* gKartLuigi189Wheel0[];
extern u8* gKartBowser168Wheel0[];
extern u8* gKartBowser147Wheel0[];
extern u8* gKartBowser126Wheel0[];
extern u8* gKartBowser105Wheel0[];
extern u8* gKartBowser084Wheel0[];
extern u8* gKartBowser063Wheel0[];
extern u8* gKartBowser042Wheel0[];
extern u8* gKartBowser021Wheel0[];
extern u8* gKartBowser000Wheel0[];
extern u8* gKartBowser269Wheel0[];
extern u8* gKartBowser269Wheel0[];
extern u8* gKartBowser249Wheel0[];
extern u8* gKartBowser229Wheel0[];
extern u8* gKartBowser229Wheel0[];
extern u8* gKartBowser229Wheel0[];
extern u8* gKartBowser209Wheel0[];
extern u8* gKartBowser189Wheel0[];
extern u8* gKartBowser189Wheel0[];
extern u8* gKartToad168Wheel0[];
extern u8* gKartToad147Wheel0[];
extern u8* gKartToad126Wheel0[];
extern u8* gKartToad105Wheel0[];
extern u8* gKartToad084Wheel0[];
extern u8* gKartToad063Wheel0[];
extern u8* gKartToad042Wheel0[];
extern u8* gKartToad021Wheel0[];
extern u8* gKartToad000Wheel0[];
extern u8* gKartToad269Wheel0[];
extern u8* gKartToad269Wheel0[];
extern u8* gKartToad249Wheel0[];
extern u8* gKartToad229Wheel0[];
extern u8* gKartToad229Wheel0[];
extern u8* gKartToad229Wheel0[];
extern u8* gKartToad209Wheel0[];
extern u8* gKartToad189Wheel0[];
extern u8* gKartToad189Wheel0[];
extern u8* gKartYoshi168Wheel0[];
extern u8* gKartYoshi147Wheel0[];
extern u8* gKartYoshi126Wheel0[];
extern u8* gKartYoshi105Wheel0[];
extern u8* gKartYoshi084Wheel0[];
extern u8* gKartYoshi063Wheel0[];
extern u8* gKartYoshi042Wheel0[];
extern u8* gKartYoshi021Wheel0[];
extern u8* gKartYoshi000Wheel0[];
extern u8* gKartYoshi269Wheel0[];
extern u8* gKartYoshi269Wheel0[];
extern u8* gKartYoshi249Wheel0[];
extern u8* gKartYoshi229Wheel0[];
extern u8* gKartYoshi229Wheel0[];
extern u8* gKartYoshi229Wheel0[];
extern u8* gKartYoshi209Wheel0[];
extern u8* gKartYoshi189Wheel0[];
extern u8* gKartYoshi189Wheel0[];
extern u8* gKartDK168Wheel0[];
extern u8* gKartDK147Wheel0[];
extern u8* gKartDK126Wheel0[];
extern u8* gKartDK105Wheel0[];
extern u8* gKartDK084Wheel0[];
extern u8* gKartDK063Wheel0[];
extern u8* gKartDK042Wheel0[];
extern u8* gKartDK021Wheel0[];
extern u8* gKartDK000Wheel0[];
extern u8* gKartDK269Wheel0[];
extern u8* gKartDK269Wheel0[];
extern u8* gKartDK249Wheel0[];
extern u8* gKartDK229Wheel0[];
extern u8* gKartDK229Wheel0[];
extern u8* gKartDK229Wheel0[];
extern u8* gKartDK209Wheel0[];
extern u8* gKartDK189Wheel0[];
extern u8* gKartDK189Wheel0[];
extern u8* gKartPeach168Wheel0[];
extern u8* gKartPeach147Wheel0[];
extern u8* gKartPeach126Wheel0[];
extern u8* gKartPeach105Wheel0[];
extern u8* gKartPeach084Wheel0[];
extern u8* gKartPeach063Wheel0[];
extern u8* gKartPeach042Wheel0[];
extern u8* gKartPeach021Wheel0[];
extern u8* gKartPeach000Wheel0[];
extern u8* gKartPeach269Wheel0[];
extern u8* gKartPeach269Wheel0[];
extern u8* gKartPeach249Wheel0[];
extern u8* gKartPeach229Wheel0[];
extern u8* gKartPeach229Wheel0[];
extern u8* gKartPeach229Wheel0[];
extern u8* gKartPeach209Wheel0[];
extern u8* gKartPeach189Wheel0[];
extern u8* gKartPeach189Wheel0[];
extern u8* gKartWario168Wheel0[];
extern u8* gKartWario147Wheel0[];
extern u8* gKartWario126Wheel0[];
extern u8* gKartWario105Wheel0[];
extern u8* gKartWario084Wheel0[];
extern u8* gKartWario063Wheel0[];
extern u8* gKartWario042Wheel0[];
extern u8* gKartWario021Wheel0[];
extern u8* gKartWario000Wheel0[];
extern u8* gKartWario269Wheel0[];
extern u8* gKartWario269Wheel0[];
extern u8* gKartWario249Wheel0[];
extern u8* gKartWario229Wheel0[];
extern u8* gKartWario229Wheel0[];
extern u8* gKartWario229Wheel0[];
extern u8* gKartWario209Wheel0[];
extern u8* gKartWario189Wheel0[];
extern u8* gKartWario189Wheel0[];
#endif

extern s16 D_80165020[40];
extern Vec3f D_80165070[8];
extern s16 gLastAnimFrameSelector[4][8];
extern s16 gLastAnimGroupSelector[4][8];
extern s16 D_80165150[4][8];
extern s16 D_80165190[4][8];
extern s16 D_801651D0[4][8];

#endif