Mario Kart 64
collision.h File Reference
#include "common_structs.h"
Include dependency graph for collision.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void nullify_displaylist (uintptr_t)
 
void func_802AAAAC (Collision *)
 
f32 func_802AAB4C (Player *)
 
s32 func_802AAE4C (Collision *, f32, f32, f32, f32, u16)
 
s32 func_802AB288 (Collision *, f32, f32, f32, f32, u16)
 
s32 func_802AB6C4 (Collision *, f32, f32, f32, f32, u16)
 
s8 get_surface_type (u16)
 
s16 func_802ABD40 (u16)
 
s16 func_802ABD7C (u16)
 
s16 func_802ABDB8 (u16)
 
s16 func_802ABDF4 (u16)
 
f32 func_802ABE30 (f32, f32, f32, u16)
 
f32 func_802ABEAC (Collision *, Vec3f)
 
void process_shell_collision (Vec3f, f32, Vec3f, f32)
 
u16 process_collision (Player *, KartBoundingBoxCorner *, f32, f32, f32)
 
void func_802AC114 (Vec3f, f32, Vec3f, f32)
 
s32 func_802AC22C (KartBoundingBoxCorner *)
 
u16 func_802AD950 (Collision *, f32, f32, f32, f32, f32, f32, f32)
 
u16 func_802ADDC8 (Collision *, f32, f32, f32, f32)
 
f32 func_802AE1C0 (f32, f32, f32)
 
void set_vtx_buffer (uintptr_t, u32, u32)
 
s32 is_line_intersecting_rectangle (s16, s16, s16, s16, s16, s16, s16, s16)
 
s32 is_triangle_intersecting_bounding_box (s16, s16, s16, s16, u16)
 
void func_802AF314 (void)
 
void set_vertex_data_with_defaults (Gfx *)
 
void set_vertex_data_with_default_section_id (Gfx *, s8)
 
void find_and_set_vertex_data (Gfx *, s8, u16)
 
void find_and_set_tile_size (uintptr_t, s32, s32)
 
void set_vertex_colours (u32, u32, s32, s8, u8, u8, u8)
 
void find_vtx_and_set_colours (uintptr_t, s8, u8, u8, u8)
 
void subtract_scaled_vector (Vec3f, f32, Vec3f)
 

Function Documentation

◆ find_and_set_tile_size()

void find_and_set_tile_size ( uintptr_t  addr,
s32  uls,
s32  ult 
)

Search for G_SETTILESIZE and set its args.

Here is the caller graph for this function:

◆ find_and_set_vertex_data()

void find_and_set_vertex_data ( Gfx *  addr,
s8  surfaceType,
u16  sectionId 
)

Recursive search and set for vertex data

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

◆ find_vtx_and_set_colours()

void find_vtx_and_set_colours ( uintptr_t  displayList,
s8  alpha,
u8  red,
u8  green,
u8  blue 
)

Recursive search for vertices and set their colour values.

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

◆ func_802AAAAC()

void func_802AAAAC ( Collision collision)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_802AAB4C()

f32 func_802AAB4C ( Player player)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_802AAE4C()

s32 func_802AAE4C ( Collision collision,
f32  boundingBoxSize,
f32  posX,
f32  posY,
f32  posZ,
u16  index 
)
Here is the caller graph for this function:

◆ func_802AB288()

s32 func_802AB288 ( Collision collision,
f32  boundingBoxSize,
f32  posX,
f32  posY,
f32  posZ,
u16  index 
)
Here is the caller graph for this function:

◆ func_802AB6C4()

s32 func_802AB6C4 ( Collision collision,
f32  boundingBoxSize,
f32  posX,
f32  posY,
f32  posZ,
u16  index 
)
Here is the caller graph for this function:

◆ func_802ABD40()

s16 func_802ABD40 ( u16  index)
Here is the caller graph for this function:

◆ func_802ABD7C()

s16 func_802ABD7C ( u16  index)
Here is the caller graph for this function:

◆ func_802ABDB8()

s16 func_802ABDB8 ( u16  index)
Here is the caller graph for this function:

◆ func_802ABDF4()

s16 func_802ABDF4 ( u16  index)
Here is the caller graph for this function:

◆ func_802ABE30()

f32 func_802ABE30 ( f32  x,
f32  y,
f32  z,
u16  index 
)
Here is the caller graph for this function:

◆ func_802ABEAC()

f32 func_802ABEAC ( Collision collision,
Vec3f  pos 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_802AC114()

void func_802AC114 ( Vec3f  ,
f32  ,
Vec3f  ,
f32   
)

◆ func_802AC22C()

s32 func_802AC22C ( KartBoundingBoxCorner arg0)
Here is the call graph for this function:

◆ func_802AD950()

u16 func_802AD950 ( Collision collision,
f32  boundingBoxSize,
f32  x1,
f32  y1,
f32  z1,
f32  x2,
f32  y2,
f32  z2 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_802ADDC8()

u16 func_802ADDC8 ( Collision collision,
f32  boundingBoxSize,
f32  posX,
f32  posY,
f32  posZ 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_802AE1C0()

f32 func_802AE1C0 ( f32  posX,
f32  posY,
f32  posZ 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_802AF314()

void func_802AF314 ( void  )

Appears to initialize some variables and struct members after course displaylists have been parsed.

Bug:
possibly bug. Allocate memory but not increment the pointer. This is bad, dumb code, and more importantly it's bad dumb code that doesn't make any sense here. It is incremented after this function completes using a different variable. Not good.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_surface_type()

s8 get_surface_type ( u16  index)
Here is the caller graph for this function:

◆ is_line_intersecting_rectangle()

s32 is_line_intersecting_rectangle ( s16  minX,
s16  maxX,
s16  minZ,
s16  maxZ,
s16  x1,
s16  z1,
s16  x2,
s16  z2 
)
Returns
1 intersecting triangle, 0 not intersecting.
Here is the caller graph for this function:

◆ is_triangle_intersecting_bounding_box()

s32 is_triangle_intersecting_bounding_box ( s16  minX,
s16  maxX,
s16  minZ,
s16  maxZ,
u16  index 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ nullify_displaylist()

void nullify_displaylist ( uintptr_t  addr)
Here is the caller graph for this function:

◆ process_collision()

u16 process_collision ( Player player,
KartBoundingBoxCorner corner,
f32  cornerPosX,
f32  cornerPosY,
f32  cornerPosZ 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_shell_collision()

void process_shell_collision ( Vec3f  ,
f32  ,
Vec3f  ,
f32   
)

◆ set_vertex_colours()

void set_vertex_colours ( u32  ,
u32  ,
s32  ,
s8  ,
u8  ,
u8  ,
u8   
)

◆ set_vertex_data_with_default_section_id()

void set_vertex_data_with_default_section_id ( Gfx *  gfx,
s8  surfaceType 
)

Recursive search for vtx and set sectionId's to 0xFF

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

◆ set_vertex_data_with_defaults()

void set_vertex_data_with_defaults ( Gfx *  gfx)

Recursive search for vtx and set surfaceTypes to -1 and sectionId's to 0xFF

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

◆ set_vtx_buffer()

void set_vtx_buffer ( uintptr_t  addr,
u32  numVertices,
u32  bufferIndex 
)

Generates a list of pointers to course vtx.

Here is the caller graph for this function:

◆ subtract_scaled_vector()

void subtract_scaled_vector ( Vec3f  pos1,
f32  boundingBoxSize,
Vec3f  pos2 
)
Here is the caller graph for this function: