Mario Kart 64
Loading...
Searching...
No Matches
render_player.c File Reference
#include <ultra64.h>
#include <macros.h>
#include <mk64.h>
#include <common_structs.h>
#include <defines.h>
#include "code_800029B0.h"
#include "camera.h"
#include "math_util.h"
#include "math_util_2.h"
#include "main.h"
#include "decode.h"
#include "kart_dma.h"
#include "objects.h"
#include "render_player.h"
#include "code_80057C60.h"
#include "effects.h"
#include "buffers.h"
#include "waypoints.h"
#include "player_controller.h"
#include "render_objects.h"
#include <assets/common_data.h>
#include "skybox_and_splitscreen.h"
#include "spawn_players.h"
Include dependency graph for render_player.c:

Macros

#define D_802F1F80_WHEEL(a, b, c)   &gPlayerPalettesList[a][b][(c * 0x100) + 0xC0]
 

Functions

void func_8001F980 (s32 *arg0, s32 *arg1)
 
void func_8001F9E4 (Player *player, Camera *camera, s8 screenId)
 
u16 check_player_camera_collision (Player *player, Camera *camera, f32 arg2, f32 arg3)
 
u16 func_8001FD78 (Player *player, f32 posX, UNUSED f32 arg2, f32 posZ)
 
void init_render_player (Player *player, Camera *camera, s8 playerId, s8 screenId)
 one of his function is to put the frame to load in to a list to load it to be only applied for the next frame
 
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 *player, s8 playerId, s8 arg2)
 
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 dest, Vec3f pos, Vec3s orientation)
 
UNUSED void func_80021F50 (Mat4 arg0, Vec3f arg1)
 
void mtxf_scale2 (Mat4 arg0, f32 scale)
 
UNUSED void failed_fixed_point_matrix_conversion (Mtx *dest, Mat4 src)
 
void convert_to_fixed_point_matrix (Mtx *dest, Mat4 src)
 
bool adjust_angle (s16 *angle, s16 targetAngle, s16 step)
 
void move_s32_towards (s32 *startingValue, s32 targetValue, f32 somePercent)
 
void move_f32_towards (f32 *startingValue, f32 targetValue, f32 somePercent)
 
void move_s16_towards (s16 *startingValue, s16 targetValue, f32 somePercent)
 
void move_u16_towards (u16 *startingValue, s16 targetValue, f32 somePercent)
 
void func_80022744 (void)
 
void func_8002276C (void)
 
void func_80022A98 (Player *player, s8 arg1)
 
void func_80022B50 (Player *player, UNUSED s8 arg1)
 
void func_80022BC4 (Player *player, UNUSED s8 arg1)
 
void func_80022CA8 (Player *player, s8 playerId, UNUSED s8 screenId, s8 arg3)
 
void func_80022D60 (UNUSED Player *player, s8 playerId, UNUSED s8 screenId, s8 arg3)
 
void func_80022DB4 (Player *player, UNUSED s8 arg1)
 
void func_80022E84 (Player *player, s8 playerId, UNUSED s8 screenId, s8 arg3)
 
void change_player_color_effect_rgb (UNUSED Player *player, s8 arg1, s32 arg2, f32 alpha)
 
void change_player_color_effect_cmy (UNUSED Player *player, s8 arg1, s32 arg2, f32 arg3)
 
bool is_player_under_light_luigi_raceway (Player *player, s8 arg1)
 
void render_light_environment_on_player (Player *player, s8 arg1)
 
void func_800235AC (Player *player, s8 arg1)
 
void func_80023BF0 (Player *player, s8 playerId, s8 screenId, s8 arg3)
 
void render_player_shadow (Player *player, s8 playerId, s8 screenId)
 
void render_player_shadow_credits (Player *player, s8 playerId, s8 arg2)
 
void render_kart (Player *player, s8 playerId, s8 arg2, s8 arg3)
 
void render_ghost (Player *player, s8 playerId, s8 screenId, s8 arg3)
 
void func_80025DE8 (Player *player, s8 playerId, s8 screenId, s8 arg3)
 
void render_player_ice_reflection (Player *player, s8 playerId, s8 screenId, s8 arg3)
 
void render_player (Player *player, s8 playerId, s8 screenId)
 
void func_80026A48 (Player *player, s8 arg1)
 
void update_wheel_palette (Player *player, s8 playerId, s8 screenId, s8 arg3)
 
UNUSED void func_8002701C (void)
 
UNUSED void func_80027024 (UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2)
 

Variables

s8 gRenderingFramebufferByPlayer [] = { 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02 }
 
s32 gPlayersToRenderCount = 0
 
UNUSED void * D_800DDB5C [3] = { gFramebuffer0, gFramebuffer1, gFramebuffer2 }
 
s16 gPlayersToRenderPlayerId [8]
 
s16 gPlayersToRenderScreenId [8]
 
PlayergPlayersToRenderPlayer [8]
 
s16 gMatrixEffectCount
 
s32 D_80164AF4 [3]
 
struct_D_802F1F80gPlayerPalette
 
u8sKartUpperTexture
 
u8sKartLowerTexture
 
u16 gPlayerRedEffect [8]
 
u16 gPlayerGreenEffect [8]
 
u16 gPlayerBlueEffect [8]
 
u16 gPlayerCyanEffect [8]
 
u16 gPlayerMagentaEffect [8]
 
u16 gPlayerYellowEffect [8]
 
UNUSED u16 gPlayerWhiteEffect [8]
 
s32 D_80164B80 [296]
 
s16 D_80165020 [40]
 
Vec3f D_80165070 [8]
 
s16 gLastAnimFrameSelector [4][8]
 
s16 gLastAnimGroupSelector [4][8]
 
s16 D_80165150 [4][8]
 
s16 D_80165190 [4][8]
 
s16 D_801651D0 [4][8]
 
s32 junk [] = { 0, 0, 0 }
 
Vtx * D_800DDBB4 [] = { D_800E49C0, D_800E4AC0, D_800E4BC0, D_800E4CC0, D_800E4DC0, D_800E4EC0, D_800E4FD0, D_800E50D0 }
 
f32 gCharacterSize [] = { MARIO_SIZE, LUIGI_SIZE, YOSHI_SIZE, TOAD_SIZE, DK_SIZE, WARIO_SIZE, PEACH_SIZE, BOWSER_SIZE }
 
u8 ** gKartMarioWheels0 []
 
u8 ** gKartMarioWheels1 []
 
u8 ** gKartLuigiWheels0 []
 
u8 ** gKartLuigiWheels1 []
 
u8 ** gKartBowserWheels0 []
 
u8 ** gKartBowserWheels1 []
 
u8 ** gKartToadWheels0 []
 
u8 ** gKartToadWheels1 []
 
u8 ** gKartYoshiWheels0 []
 
u8 ** gKartYoshiWheels1 []
 
u8 ** gKartDKWheels0 []
 
u8 ** gKartDKWheels1 []
 
u8 ** gKartPeachWheels0 []
 
u8 ** gKartPeachWheels1 []
 
u8 ** gKartWarioWheels0 []
 
u8 ** gKartWarioWheels1 []
 
u16 ** gKartWheels0 []
 
u16 ** gKartWheels1 []
 
s32 D_800DDE74 [] = { 96, 128, 192, 256, 288, 384, 512, 544, 576 }
 
s32 maybeCompilerPadding = 0
 

Macro Definition Documentation

◆ D_802F1F80_WHEEL

#define D_802F1F80_WHEEL ( a,
b,
c )   &gPlayerPalettesList[a][b][(c * 0x100) + 0xC0]

Function Documentation

◆ adjust_angle()

bool adjust_angle ( s16 * angle,
s16 targetAngle,
s16 step )
Here is the caller graph for this function:

◆ change_player_color_effect_cmy()

void change_player_color_effect_cmy ( UNUSED Player * player,
s8 arg1,
s32 arg2,
f32 arg3 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ change_player_color_effect_rgb()

void change_player_color_effect_rgb ( UNUSED Player * player,
s8 arg1,
s32 arg2,
f32 alpha )

Sets player shading/colour.

Here is the caller graph for this function:

◆ check_player_camera_collision()

u16 check_player_camera_collision ( Player * player,
Camera * camera,
f32 arg2,
f32 arg3 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convert_to_fixed_point_matrix()

void convert_to_fixed_point_matrix ( Mtx * dest,
Mat4 src )

Takes a floating-point matrix and converts it to an s15.16 internal matrix. Each Mtx entry is a size of s32 that holds two values. The first 16 entries hold only the integer values and the second 16 entries hold only the decimal (fractional) parts. In simpler words, the integer and decimal gets split up and stored in their own section. Mtx is setup this way due to hardware restrictions of the n64 or as an optimization.

Parameters
MtxA new internal fixed-point matrix.
Mat4An array of f32 Mat4 to Mtx explanation: https://blarg.ca/2020/10/11/fixed-point-math.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ failed_fixed_point_matrix_conversion()

UNUSED void failed_fixed_point_matrix_conversion ( Mtx * dest,
Mat4 src )

This function writes a fixed-point value to each Mtx entry. This is not how the Mtx struct works. The first half of Mtx only holds s16 whole numbers and the second half holds the s16 decimal (fractional) parts. See convert_to_fixed_point_matrix() for correct calculations. Note that each Mtx entry is the size of s32. This means each Mtx entry holds two s16 values. The first sixteen entries contain only the integer parts and the second sixteen entries hold only the decimal (fractional) parts.

◆ func_8001F980()

void func_8001F980 ( s32 * arg0,
s32 * arg1 )
Here is the caller graph for this function:

◆ func_8001F9E4()

void func_8001F9E4 ( Player * player,
Camera * camera,
s8 screenId )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001FD78()

u16 func_8001FD78 ( Player * player,
f32 posX,
UNUSED f32 arg2,
f32 posZ )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80021B0C()

void func_80021B0C ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80021C78()

void func_80021C78 ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80021D40()

void func_80021D40 ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80021DA8()

void func_80021DA8 ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80021F50()

UNUSED void func_80021F50 ( Mat4 arg0,
Vec3f arg1 )

◆ func_80022744()

void func_80022744 ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8002276C()

void func_8002276C ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80022A98()

void func_80022A98 ( Player * player,
s8 arg1 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80022B50()

void func_80022B50 ( Player * player,
UNUSED s8 arg1 )
Here is the caller graph for this function:

◆ func_80022BC4()

void func_80022BC4 ( Player * player,
UNUSED s8 arg1 )
Here is the caller graph for this function:

◆ func_80022CA8()

void func_80022CA8 ( Player * player,
s8 playerId,
UNUSED s8 screenId,
s8 arg3 )
Here is the caller graph for this function:

◆ func_80022D60()

void func_80022D60 ( UNUSED Player * player,
s8 playerId,
UNUSED s8 screenId,
s8 arg3 )

Seems to stretch/warp a specific players texture for a short period of time. Perhaps does not do anything

Here is the caller graph for this function:

◆ func_80022DB4()

void func_80022DB4 ( Player * player,
UNUSED s8 arg1 )
Here is the caller graph for this function:

◆ func_80022E84()

void func_80022E84 ( Player * player,
s8 playerId,
UNUSED s8 screenId,
s8 arg3 )
Here is the caller graph for this function:

◆ func_800235AC()

void func_800235AC ( Player * player,
s8 arg1 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80023BF0()

void func_80023BF0 ( Player * player,
s8 playerId,
s8 screenId,
s8 arg3 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80025DE8()

void func_80025DE8 ( Player * player,
s8 playerId,
s8 screenId,
s8 arg3 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80026A48()

void func_80026A48 ( Player * player,
s8 arg1 )
Here is the caller graph for this function:

◆ func_8002701C()

UNUSED void func_8002701C ( void )

◆ func_80027024()

UNUSED void func_80027024 ( UNUSED s32 arg0,
UNUSED s32 arg1,
UNUSED s32 arg2 )

◆ init_render_player()

void init_render_player ( Player * player,
Camera * camera,
s8 playerId,
s8 screenId )

one of his function is to put the frame to load in to a list to load it to be only applied for the next frame

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_player_under_light_luigi_raceway()

bool is_player_under_light_luigi_raceway ( Player * player,
s8 arg1 )

Activates in the tunnel to shade the player a bit darker Sort of an atmospheric effect.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_kart_texture_and_render_kart_particle_on_screen_four()

void load_kart_texture_and_render_kart_particle_on_screen_four ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_kart_texture_and_render_kart_particle_on_screen_one()

void load_kart_texture_and_render_kart_particle_on_screen_one ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_kart_texture_and_render_kart_particle_on_screen_three()

void load_kart_texture_and_render_kart_particle_on_screen_three ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_kart_texture_and_render_kart_particle_on_screen_two()

void load_kart_texture_and_render_kart_particle_on_screen_two ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ move_f32_towards()

void move_f32_towards ( f32 * startingValue,
f32 targetValue,
f32 somePercent )

Function: move_f32_towards

Parameters: f32 *startingValue - Pointer to the float that will be modified f32 targetValue - Float value to move startingValue towards f32 somePercent - The percent of the difference between startingValue and targetValue to actually move

Moves a given startingValue the given somePercent towards the targetValue

f32 *thing = 2500; move_f32_towards(thing, 500, 0.75f); thing now has a value of 1000

If after the move startingValue is inside of the range [-0.001, 0.001], force it to exactly 0.0f

This is probably a precision thing. The scaling with somePercent likely can't hit exactly 0 with any reliability, so they force it to 0 if you're in a small range around it. Why they only do this for 0 is anyone's guess though

Here is the caller graph for this function:

◆ move_s16_towards()

void move_s16_towards ( s16 * startingValue,
s16 targetValue,
f32 somePercent )
Here is the caller graph for this function:

◆ move_s32_towards()

void move_s32_towards ( s32 * startingValue,
s32 targetValue,
f32 somePercent )
Here is the caller graph for this function:

◆ move_u16_towards()

void move_u16_towards ( u16 * startingValue,
s16 targetValue,
f32 somePercent )
Here is the caller graph for this function:

◆ mtxf_scale2()

void mtxf_scale2 ( Mat4 arg0,
f32 scale )
Here is the caller graph for this function:

◆ mtxf_translate_rotate()

void mtxf_translate_rotate ( Mat4 dest,
Vec3f pos,
Vec3s orientation )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_ghost()

void render_ghost ( Player * player,
s8 playerId,
s8 screenId,
s8 arg3 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_kart()

void render_kart ( Player * player,
s8 playerId,
s8 arg2,
s8 arg3 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_light_environment_on_player()

void render_light_environment_on_player ( Player * player,
s8 arg1 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_player()

void render_player ( Player * player,
s8 playerId,
s8 screenId )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_player_ice_reflection()

void render_player_ice_reflection ( Player * player,
s8 playerId,
s8 screenId,
s8 arg3 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_player_shadow()

void render_player_shadow ( Player * player,
s8 playerId,
s8 screenId )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_player_shadow_credits()

void render_player_shadow_credits ( Player * player,
s8 playerId,
s8 arg2 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_players_on_screen_four()

void render_players_on_screen_four ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_players_on_screen_one()

void render_players_on_screen_one ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_players_on_screen_three()

void render_players_on_screen_three ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_players_on_screen_two()

void render_players_on_screen_two ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ try_rendering_player()

void try_rendering_player ( Player * player,
s8 playerId,
s8 arg2 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_wheel_palette()

void update_wheel_palette ( Player * player,
s8 playerId,
s8 screenId,
s8 arg3 )
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ D_800DDB5C

UNUSED void* D_800DDB5C[3] = { gFramebuffer0, gFramebuffer1, gFramebuffer2 }

◆ D_800DDBB4

◆ D_800DDE74

s32 D_800DDE74[] = { 96, 128, 192, 256, 288, 384, 512, 544, 576 }

◆ D_80164AF4

s32 D_80164AF4[3]

◆ D_80164B80

s32 D_80164B80[296]

◆ D_80165020

s16 D_80165020[40]

◆ D_80165070

Vec3f D_80165070[8]

◆ D_80165150

s16 D_80165150[4][8]

◆ D_80165190

s16 D_80165190[4][8]

◆ D_801651D0

s16 D_801651D0[4][8]

◆ gCharacterSize

◆ gKartBowserWheels0

u8** gKartBowserWheels0[]
Initial value:
u8 * gKartBowser168Wheel0[]
u8 * gKartBowser147Wheel0[]
u8 * gKartBowser084Wheel0[]
u8 * gKartBowser000Wheel0[]
u8 * gKartBowser126Wheel0[]
u8 * gKartBowser042Wheel0[]
u8 * gKartBowser021Wheel0[]
u8 * gKartBowser105Wheel0[]
u8 * gKartBowser063Wheel0[]

◆ gKartBowserWheels1

u8** gKartBowserWheels1[]
Initial value:
u8 * gKartBowser209Wheel0[]
u8 * gKartBowser189Wheel0[]
Definition render_player.h:188
u8 * gKartBowser229Wheel0[]
Definition render_player.h:184
u8 * gKartBowser269Wheel0[]
Definition render_player.h:181
u8 * gKartBowser249Wheel0[]

◆ gKartDKWheels0

u8** gKartDKWheels0[]
Initial value:
u8 * gKartDK168Wheel0[]
u8 * gKartDK084Wheel0[]
u8 * gKartDK147Wheel0[]
u8 * gKartDK000Wheel0[]
u8 * gKartDK105Wheel0[]
u8 * gKartDK021Wheel0[]
u8 * gKartDK063Wheel0[]
u8 * gKartDK126Wheel0[]
u8 * gKartDK042Wheel0[]

◆ gKartDKWheels1

u8** gKartDKWheels1[]
Initial value:
u8 * gKartDK249Wheel0[]
u8 * gKartDK229Wheel0[]
Definition render_player.h:238
u8 * gKartDK189Wheel0[]
Definition render_player.h:242
u8 * gKartDK269Wheel0[]
Definition render_player.h:235
u8 * gKartDK209Wheel0[]

◆ gKartLuigiWheels0

u8** gKartLuigiWheels0[]
Initial value:
u8 * gKartLuigi042Wheel0[]
u8 * gKartLuigi063Wheel0[]
u8 * gKartLuigi147Wheel0[]
u8 * gKartLuigi000Wheel0[]
u8 * gKartLuigi084Wheel0[]
u8 * gKartLuigi021Wheel0[]
u8 * gKartLuigi105Wheel0[]
u8 * gKartLuigi126Wheel0[]
u8 * gKartLuigi168Wheel0[]

◆ gKartLuigiWheels1

u8** gKartLuigiWheels1[]
Initial value:
u8 * gKartLuigi209Wheel0[]
u8 * gKartLuigi249Wheel0[]
u8 * gKartLuigi189Wheel0[]
Definition render_player.h:170
u8 * gKartLuigi269Wheel0[]
Definition render_player.h:163
u8 * gKartLuigi229Wheel0[]
Definition render_player.h:166

◆ gKartMarioWheels0

u8** gKartMarioWheels0[]
Initial value:
u8 * gKartMario063Wheel0[]
u8 * gKartMario042Wheel0[]
u8 * gKartMario084Wheel0[]
u8 * gKartMario147Wheel0[]
u8 * gKartMario105Wheel0[]
u8 * gKartMario168Wheel0[]
u8 * gKartMario021Wheel0[]
u8 * gKartMario126Wheel0[]
u8 * gKartMario000Wheel0[]

◆ gKartMarioWheels1

u8** gKartMarioWheels1[]
Initial value:
u8 * gKartMario189Wheel0[]
Definition render_player.h:152
u8 * gKartMario209Wheel0[]
u8 * gKartMario249Wheel0[]
u8 * gKartMario229Wheel0[]
Definition render_player.h:148
u8 * gKartMario269Wheel0[]
Definition render_player.h:145

◆ gKartPeachWheels0

u8** gKartPeachWheels0[]
Initial value:
u8 * gKartPeach042Wheel0[]
u8 * gKartPeach168Wheel0[]
u8 * gKartPeach000Wheel0[]
u8 * gKartPeach126Wheel0[]
u8 * gKartPeach084Wheel0[]
u8 * gKartPeach021Wheel0[]
u8 * gKartPeach063Wheel0[]
u8 * gKartPeach147Wheel0[]
u8 * gKartPeach105Wheel0[]

◆ gKartPeachWheels1

u8** gKartPeachWheels1[]
Initial value:
u8 * gKartPeach269Wheel0[]
Definition render_player.h:253
u8 * gKartPeach229Wheel0[]
Definition render_player.h:256
u8 * gKartPeach249Wheel0[]
u8 * gKartPeach189Wheel0[]
Definition render_player.h:260
u8 * gKartPeach209Wheel0[]

◆ gKartToadWheels0

u8** gKartToadWheels0[]
Initial value:
u8 * gKartToad126Wheel0[]
u8 * gKartToad063Wheel0[]
u8 * gKartToad168Wheel0[]
u8 * gKartToad042Wheel0[]
u8 * gKartToad000Wheel0[]
u8 * gKartToad147Wheel0[]
u8 * gKartToad105Wheel0[]
u8 * gKartToad021Wheel0[]
u8 * gKartToad084Wheel0[]

◆ gKartToadWheels1

u8** gKartToadWheels1[]
Initial value:
u8 * gKartToad229Wheel0[]
Definition render_player.h:202
u8 * gKartToad269Wheel0[]
Definition render_player.h:199
u8 * gKartToad209Wheel0[]
u8 * gKartToad249Wheel0[]
u8 * gKartToad189Wheel0[]
Definition render_player.h:206

◆ gKartWarioWheels0

u8** gKartWarioWheels0[]
Initial value:
u8 * gKartWario063Wheel0[]
u8 * gKartWario126Wheel0[]
u8 * gKartWario147Wheel0[]
u8 * gKartWario042Wheel0[]
u8 * gKartWario105Wheel0[]
u8 * gKartWario168Wheel0[]
u8 * gKartWario084Wheel0[]
u8 * gKartWario000Wheel0[]
u8 * gKartWario021Wheel0[]

◆ gKartWarioWheels1

u8** gKartWarioWheels1[]
Initial value:
u8 * gKartWario249Wheel0[]
u8 * gKartWario229Wheel0[]
Definition render_player.h:274
u8 * gKartWario189Wheel0[]
Definition render_player.h:278
u8 * gKartWario269Wheel0[]
Definition render_player.h:271
u8 * gKartWario209Wheel0[]

◆ gKartWheels0

u16** gKartWheels0[]
Initial value:
u8 ** gKartMarioWheels0[]
Definition render_player.c:487
u8 ** gKartToadWheels0[]
Definition render_player.c:511
u8 ** gKartPeachWheels0[]
Definition render_player.c:533
u8 ** gKartDKWheels0[]
Definition render_player.c:527
u8 ** gKartWarioWheels0[]
Definition render_player.c:541
u8 ** gKartBowserWheels0[]
Definition render_player.c:503
u8 ** gKartLuigiWheels0[]
Definition render_player.c:495
u8 ** gKartYoshiWheels0[]
Definition render_player.c:519
unsigned short int u16
Definition ultratypes.h:14

◆ gKartWheels1

u16** gKartWheels1[]
Initial value:
u8 ** gKartBowserWheels1[]
Definition render_player.c:507
u8 ** gKartPeachWheels1[]
Definition render_player.c:537
u8 ** gKartWarioWheels1[]
Definition render_player.c:545
u8 ** gKartLuigiWheels1[]
Definition render_player.c:499
u8 ** gKartYoshiWheels1[]
Definition render_player.c:523
u8 ** gKartToadWheels1[]
Definition render_player.c:515
u8 ** gKartMarioWheels1[]
Definition render_player.c:491
u8 ** gKartDKWheels1[]
Definition render_player.c:530

◆ gKartYoshiWheels0

u8** gKartYoshiWheels0[]
Initial value:
u8 * gKartYoshi042Wheel0[]
u8 * gKartYoshi168Wheel0[]
u8 * gKartYoshi126Wheel0[]
u8 * gKartYoshi000Wheel0[]
u8 * gKartYoshi021Wheel0[]
u8 * gKartYoshi084Wheel0[]
u8 * gKartYoshi063Wheel0[]
u8 * gKartYoshi105Wheel0[]
u8 * gKartYoshi147Wheel0[]

◆ gKartYoshiWheels1

u8** gKartYoshiWheels1[]
Initial value:
u8 * gKartYoshi229Wheel0[]
Definition render_player.h:220
u8 * gKartYoshi269Wheel0[]
Definition render_player.h:217
u8 * gKartYoshi189Wheel0[]
Definition render_player.h:224
u8 * gKartYoshi209Wheel0[]
u8 * gKartYoshi249Wheel0[]

◆ gLastAnimFrameSelector

s16 gLastAnimFrameSelector[4][8]

◆ gLastAnimGroupSelector

s16 gLastAnimGroupSelector[4][8]

◆ gMatrixEffectCount

s16 gMatrixEffectCount

◆ gPlayerBlueEffect

u16 gPlayerBlueEffect[8]

◆ gPlayerCyanEffect

u16 gPlayerCyanEffect[8]

◆ gPlayerGreenEffect

u16 gPlayerGreenEffect[8]

◆ gPlayerMagentaEffect

u16 gPlayerMagentaEffect[8]

◆ gPlayerPalette

struct_D_802F1F80* gPlayerPalette

◆ gPlayerRedEffect

u16 gPlayerRedEffect[8]

◆ gPlayersToRenderCount

s32 gPlayersToRenderCount = 0

◆ gPlayersToRenderPlayer

Player* gPlayersToRenderPlayer[8]

◆ gPlayersToRenderPlayerId

s16 gPlayersToRenderPlayerId[8]

◆ gPlayersToRenderScreenId

s16 gPlayersToRenderScreenId[8]

◆ gPlayerWhiteEffect

UNUSED u16 gPlayerWhiteEffect[8]

◆ gPlayerYellowEffect

u16 gPlayerYellowEffect[8]

◆ gRenderingFramebufferByPlayer

s8 gRenderingFramebufferByPlayer[] = { 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02 }

◆ junk

s32 junk[] = { 0, 0, 0 }

◆ maybeCompilerPadding

s32 maybeCompilerPadding = 0

◆ sKartLowerTexture

u8* sKartLowerTexture

◆ sKartUpperTexture

u8* sKartUpperTexture