mk64/src/render_player.h

289 lines
9.2 KiB
C

#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 u8* sKartUpperTexture;
extern u8* sKartLowerTexture;
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 Gfx common_square_plain_render[];
extern Gfx D_0D008D58[];
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 u8** gKartMarioWheels0[];
extern u8** gKartMarioWheels1[];
extern u8** gKartLuigiWheels0[];
extern u8** gKartLuigiWheels1[];
extern u8** gKartBowserWheels0[];
extern u8** gKartBowserWheels1[];
extern u8** gKartToadWheels0[];
extern u8** gKartToadWheels1[];
extern u8** gKartYoshiWheels0[];
extern u8** gKartYoshiWheels1[];
extern u8** gKartDKWheels0[];
extern u8** gKartDKWheels1[];
extern u8** gKartPeachWheels0[];
extern u8** gKartPeachWheels1[];
extern u8** gKartWarioWheels0[];
extern u8** gKartWarioWheels1[];
extern u16** gKartWheels0[];
extern u16** gKartWheels1[];
// These all come the kart data stuff, they should end up in their own inc.c eventually
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[];
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