Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
Data Structures | Typedefs | Enumerations | Functions | Variables
surface_load.h File Reference
#include "types.h"

Go to the source code of this file.

Data Structures

struct  SurfaceNode
 

Typedefs

typedef struct SurfaceNode SpatialPartitionCell[3]
 

Enumerations

enum  { SPATIAL_PARTITION_FLOORS, SPATIAL_PARTITION_CEILS, SPATIAL_PARTITION_WALLS }
 

Functions

void alloc_surface_pools (void)
 Allocate some of the main pool for surfaces (2300 surf) and for surface nodes (7000 nodes). More...
 
void load_area_terrain (s16 index, s16 *data, s8 *surfaceRooms, s16 *macroObjects)
 Process the level file, loading in vertices, surfaces, some objects, and environmental boxes (water, gas, JRB fog). More...
 
void clear_dynamic_surfaces (void)
 If not in time stop, clear the surface partitions. More...
 
void load_object_collision_model (void)
 Transform an object's vertices, reload them, and render the object. More...
 

Variables

s32 unused8038BE90
 
SpatialPartitionCell gStaticSurfacePartition [16][16]
 Partitions for course and object surfaces. More...
 
SpatialPartitionCell gDynamicSurfacePartition [16][16]
 
struct SurfaceNodesSurfaceNodePool
 Pools of data to contain either surface nodes or surfaces. More...
 
struct SurfacesSurfacePool
 
s16 sSurfacePoolSize
 The size of the surface pool (2300). More...
 

Typedef Documentation

◆ SpatialPartitionCell

typedef struct SurfaceNode SpatialPartitionCell[3]

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
SPATIAL_PARTITION_FLOORS 
SPATIAL_PARTITION_CEILS 
SPATIAL_PARTITION_WALLS 

Function Documentation

◆ alloc_surface_pools()

void alloc_surface_pools ( void  )

Allocate some of the main pool for surfaces (2300 surf) and for surface nodes (7000 nodes).

◆ clear_dynamic_surfaces()

void clear_dynamic_surfaces ( void  )

If not in time stop, clear the surface partitions.

◆ load_area_terrain()

void load_area_terrain ( s16  index,
s16 data,
s8 surfaceRooms,
s16 macroObjects 
)

Process the level file, loading in vertices, surfaces, some objects, and environmental boxes (water, gas, JRB fog).

◆ load_object_collision_model()

void load_object_collision_model ( void  )

Transform an object's vertices, reload them, and render the object.

Variable Documentation

◆ gDynamicSurfacePartition

SpatialPartitionCell gDynamicSurfacePartition[16][16]

◆ gStaticSurfacePartition

SpatialPartitionCell gStaticSurfacePartition[16][16]

Partitions for course and object surfaces.

The arrays represent the 16x16 cells that each level is split into.

◆ sSurfaceNodePool

struct SurfaceNode* sSurfaceNodePool

Pools of data to contain either surface nodes or surfaces.

◆ sSurfacePool

struct Surface* sSurfacePool

◆ sSurfacePoolSize

s16 sSurfacePoolSize

The size of the surface pool (2300).

◆ unused8038BE90

s32 unused8038BE90