Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
surface_collision.h
Go to the documentation of this file.
1 #ifndef _SURFACE_COLLISION_H
2 #define _SURFACE_COLLISION_H
3 
4 #define LEVEL_BOUNDARY_MAX 0x2000
5 #define CELL_SIZE 0x400
6 
8 {
9  /*0x00*/ f32 x, y, z;
10  /*0x0C*/ f32 offsetY;
11  /*0x10*/ f32 radius;
12  /*0x14*/ s16 unk14;
13  /*0x16*/ s16 numWalls;
14  /*0x18*/ struct Surface *walls[4];
15 };
16 
18 {
19  f32 unused[4]; // possibly position data?
24 };
25 
26 s32 f32_find_wall_collision(f32 *xPtr, f32 *yPtr, f32 *zPtr, f32 offsetY, f32 radius);
28 f32 find_ceil(f32 posX, f32 posY, f32 posZ, struct Surface **pceil);
29 f32 find_floor_height_and_data(f32 xPos, f32 yPos, f32 zPos, struct FloorGeometry **floorGeo);
31 f32 find_floor(f32 xPos, f32 yPos, f32 zPos, struct Surface **pfloor);
34 void debug_surface_list_info(f32 xPos, f32 zPos);
35 
36 
37 #endif /* _SURFACE_COLLISION_H */
f32 offsetY
Definition: surface_collision.h:10
s32 find_wall_collisions(struct WallCollisionData *colData)
Find wall collisions and receive their push.
Definition: surface_collision.c:180
signed short int s16
Definition: ultratypes.h:13
f32 z
Definition: surface_collision.h:9
f32 find_floor(f32 xPos, f32 yPos, f32 zPos, struct Surface **pfloor)
Find the highest floor under a given position and return the height.
Definition: surface_collision.c:496
s16 numWalls
Definition: surface_collision.h:13
f32 find_poison_gas_level(f32 x, f32 z)
Finds the height of the poison gas (used only in HMC) at a given location.
Definition: surface_collision.c:609
Definition: surface_collision.h:17
f32 find_water_level(f32 x, f32 z)
Finds the height of water at a given location.
Definition: surface_collision.c:574
Definition: surface_collision.h:7
f32 normalY
Definition: surface_collision.h:21
float f32
Definition: ultratypes.h:29
static UNUSED u32 unused
Definition: osContStartReadData.c:6
f32 find_floor_height(f32 x, f32 y, f32 z)
Find the height of the highest floor below a point.
Definition: surface_collision.c:459
Definition: types.h:188
f32 originOffset
Definition: surface_collision.h:23
f32 find_ceil(f32 posX, f32 posY, f32 posZ, struct Surface **pceil)
Find the lowest ceiling above a given position and return the height.
Definition: surface_collision.c:295
f32 normalX
Definition: surface_collision.h:20
s16 unk14
Definition: surface_collision.h:12
struct Surface * walls[4]
Definition: surface_collision.h:14
f32 normalZ
Definition: surface_collision.h:22
void debug_surface_list_info(f32 xPos, f32 zPos)
Print the area,number of walls, how many times they were called, and some allocation information...
Definition: surface_collision.c:668
f32 radius
Definition: surface_collision.h:11
signed int s32
Definition: ultratypes.h:15
f32 find_floor_height_and_data(f32 xPos, f32 yPos, f32 zPos, struct FloorGeometry **floorGeo)
Return the floor height underneath (xPos, yPos, zPos) and populate floorGeo with data about the floor...
Definition: surface_collision.c:368
s32 f32_find_wall_collision(f32 *xPtr, f32 *yPtr, f32 *zPtr, f32 offsetY, f32 radius)
Formats the position and wall search for find_wall_collisions.
Definition: surface_collision.c:155
f32 x
Definition: surface_collision.h:9
f32 y
Definition: surface_collision.h:9