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

Go to the source code of this file.

Data Structures

struct  WarpNode
 
struct  ObjectWarpNode
 
struct  InstantWarp
 
struct  SpawnInfo
 
struct  LevelCamera
 
struct  UnusedArea28
 
struct  Whirlpool
 
struct  Area
 
struct  WarpTransitionData
 
struct  WarpTransition
 

Macros

#define COURSE_IS_MAIN_COURSE(cmd)   (cmd >= COURSE_STAGES_MIN && cmd <= COURSE_STAGES_MAX)
 
#define INSTANT_WARP_INDEX_START   0x00
 
#define INSTANT_WARP_INDEX_STOP   0x04
 
#define CAMERA_PRESET_NONE   0x00
 
#define CAMERA_PRESET_OPEN_CAMERA   0x01
 
#define CAMERA_PRESET_REVERSE_TOWER   0x02
 
#define CAMERA_PRESET_BEHIND_MARIO   0x03
 
#define CAMERA_PRESET_CLOSE   0x04
 
#define CAMERA_PRESET_C_UP_LOOK   0x06
 
#define CAMERA_PRESET_WATER_SURFACE   0x08
 
#define CAMERA_PRESET_SLIDE_HOOT   0x09
 
#define CAMERA_PRESET_INSIDE_CANNON   0x0A
 
#define CAMERA_PRESET_BOSS_FIGHT   0x0B
 
#define CAMERA_PRESET_PARALLEL_TRACKING   0x0C
 
#define CAMERA_PRESET_FIXED_REF_POINT   0x0D
 
#define CAMERA_PRESET_PLATFORM_LEVEL   0x0E
 
#define CAMERA_PRESET_FREE_ROAM   0x10
 
#define CAMERA_PRESET_SPIRAL_STAIRS   0x11
 
#define WARP_TRANSITION_FADE_FROM_COLOR   0x00
 
#define WARP_TRANSITION_FADE_INTO_COLOR   0x01
 
#define WARP_TRANSITION_FADE_FROM_STAR   0x08
 
#define WARP_TRANSITION_FADE_INTO_STAR   0x09
 
#define WARP_TRANSITION_FADE_FROM_CIRCLE   0x0A
 
#define WARP_TRANSITION_FADE_INTO_CIRCLE   0x0B
 
#define WARP_TRANSITION_FADE_FROM_MARIO   0x10
 
#define WARP_TRANSITION_FADE_INTO_MARIO   0x11
 
#define WARP_TRANSITION_FADE_FROM_BOWSER   0x12
 
#define WARP_TRANSITION_FADE_INTO_BOWSER   0x13
 

Enumerations

enum  CourseNum {
  COURSE_NONE, COURSE_MIN, COURSE_STAGES_MIN = COURSE_MIN, COURSE_BOB = COURSE_STAGES_MIN,
  COURSE_WF, COURSE_JRB, COURSE_CCM, COURSE_BBH,
  COURSE_HMC, COURSE_LLL, COURSE_SSL, COURSE_DDD,
  COURSE_SL, COURSE_WDW, COURSE_TTM, COURSE_THI,
  COURSE_TTC, COURSE_RR, COURSE_BONUS_STAGES, COURSE_STAGES_MAX = COURSE_BONUS_STAGES - 1,
  COURSE_STAGES_COUNT = COURSE_STAGES_MAX, COURSE_BITDW, COURSE_BITFS, COURSE_BITS,
  COURSE_PSS, COURSE_CAP_COURSES, COURSE_COTMC = COURSE_CAP_COURSES, COURSE_TOTWC,
  COURSE_VCUTM, COURSE_WMOTR, COURSE_SA, COURSE_CAKE_END,
  COURSE_AFTER_END, COURSE_MAX = COURSE_AFTER_END - 1, COURSE_COUNT = COURSE_MAX
}
 
enum  LevelNum {
  LEVEL_NONE, LEVEL_MIN, LEVEL_UNKNOWN_1 = LEVEL_MIN, LEVEL_UNKNOWN_2,
  LEVEL_UNKNOWN_3, LEVEL_BBH, LEVEL_CCM, LEVEL_CASTLE,
  LEVEL_HMC, LEVEL_SSL, LEVEL_BOB, LEVEL_SL,
  LEVEL_WDW, LEVEL_JRB, LEVEL_THI, LEVEL_TTC,
  LEVEL_RR, LEVEL_CASTLE_GROUNDS, LEVEL_BITDW, LEVEL_VCUTM,
  LEVEL_BITFS, LEVEL_SA, LEVEL_BITS, LEVEL_LLL,
  LEVEL_DDD, LEVEL_WF, LEVEL_ENDING, LEVEL_CASTLE_COURTYARD,
  LEVEL_PSS, LEVEL_COTMC, LEVEL_TOTWC, LEVEL_BOWSER_1,
  LEVEL_WMOTR, LEVEL_UNKNOWN_32, LEVEL_BOWSER_2, LEVEL_BOWSER_3,
  LEVEL_UNKNOWN_35, LEVEL_TTM, LEVEL_UNKNOWN_37, LEVEL_UNKNOWN_38,
  LEVEL_COUNT, LEVEL_MAX = LEVEL_COUNT - 1
}
 

Functions

void func_8027A220 (Vp *a, Vp *b, u8 c, u8 d, u8 e)
 
void print_intro_text (void)
 
u32 get_mario_spawn_type (struct Object *o)
 
struct ObjectWarpNodearea_get_warp_node (u8 id)
 
void clear_areas (void)
 
void func_8027A7C4 (void)
 
void load_area (s32 index)
 
void func_8027A998 (void)
 
void load_mario_area (void)
 
void func_8027AA88 (void)
 
void change_area (s32 index)
 
void area_update_objects (void)
 
void play_transition (s16 transType, s16 time, u8 red, u8 green, u8 blue)
 
void play_transition_after_delay (s16 transType, s16 time, u8 red, u8 green, u8 blue, s16 delay)
 
void render_game (void)
 

Variables

struct SpawnInfo gPlayerSpawnInfos []
 
struct GraphNodeD_8033A160 []
 
struct Area gAreaData []
 
struct WarpTransition gWarpTransition
 
s16 gCurrCourseNum
 
s16 gCurrActNum
 
s16 gCurrAreaIndex
 
s16 gSavedCourseNum
 
s16 D_8033A75E
 
s16 D_8033A760
 
struct SpawnInfogMarioSpawnInfo
 
struct AreagAreas
 
struct AreagCurrentArea
 
s16 gCurrSaveFileNum
 
s16 gCurrLevelNum
 

Macro Definition Documentation

◆ CAMERA_PRESET_BEHIND_MARIO

#define CAMERA_PRESET_BEHIND_MARIO   0x03

◆ CAMERA_PRESET_BOSS_FIGHT

#define CAMERA_PRESET_BOSS_FIGHT   0x0B

◆ CAMERA_PRESET_C_UP_LOOK

#define CAMERA_PRESET_C_UP_LOOK   0x06

◆ CAMERA_PRESET_CLOSE

#define CAMERA_PRESET_CLOSE   0x04

◆ CAMERA_PRESET_FIXED_REF_POINT

#define CAMERA_PRESET_FIXED_REF_POINT   0x0D

◆ CAMERA_PRESET_FREE_ROAM

#define CAMERA_PRESET_FREE_ROAM   0x10

◆ CAMERA_PRESET_INSIDE_CANNON

#define CAMERA_PRESET_INSIDE_CANNON   0x0A

◆ CAMERA_PRESET_NONE

#define CAMERA_PRESET_NONE   0x00

◆ CAMERA_PRESET_OPEN_CAMERA

#define CAMERA_PRESET_OPEN_CAMERA   0x01

◆ CAMERA_PRESET_PARALLEL_TRACKING

#define CAMERA_PRESET_PARALLEL_TRACKING   0x0C

◆ CAMERA_PRESET_PLATFORM_LEVEL

#define CAMERA_PRESET_PLATFORM_LEVEL   0x0E

◆ CAMERA_PRESET_REVERSE_TOWER

#define CAMERA_PRESET_REVERSE_TOWER   0x02

◆ CAMERA_PRESET_SLIDE_HOOT

#define CAMERA_PRESET_SLIDE_HOOT   0x09

◆ CAMERA_PRESET_SPIRAL_STAIRS

#define CAMERA_PRESET_SPIRAL_STAIRS   0x11

◆ CAMERA_PRESET_WATER_SURFACE

#define CAMERA_PRESET_WATER_SURFACE   0x08

◆ COURSE_IS_MAIN_COURSE

#define COURSE_IS_MAIN_COURSE (   cmd)    (cmd >= COURSE_STAGES_MIN && cmd <= COURSE_STAGES_MAX)

◆ INSTANT_WARP_INDEX_START

#define INSTANT_WARP_INDEX_START   0x00

◆ INSTANT_WARP_INDEX_STOP

#define INSTANT_WARP_INDEX_STOP   0x04

◆ WARP_TRANSITION_FADE_FROM_BOWSER

#define WARP_TRANSITION_FADE_FROM_BOWSER   0x12

◆ WARP_TRANSITION_FADE_FROM_CIRCLE

#define WARP_TRANSITION_FADE_FROM_CIRCLE   0x0A

◆ WARP_TRANSITION_FADE_FROM_COLOR

#define WARP_TRANSITION_FADE_FROM_COLOR   0x00

◆ WARP_TRANSITION_FADE_FROM_MARIO

#define WARP_TRANSITION_FADE_FROM_MARIO   0x10

◆ WARP_TRANSITION_FADE_FROM_STAR

#define WARP_TRANSITION_FADE_FROM_STAR   0x08

◆ WARP_TRANSITION_FADE_INTO_BOWSER

#define WARP_TRANSITION_FADE_INTO_BOWSER   0x13

◆ WARP_TRANSITION_FADE_INTO_CIRCLE

#define WARP_TRANSITION_FADE_INTO_CIRCLE   0x0B

◆ WARP_TRANSITION_FADE_INTO_COLOR

#define WARP_TRANSITION_FADE_INTO_COLOR   0x01

◆ WARP_TRANSITION_FADE_INTO_MARIO

#define WARP_TRANSITION_FADE_INTO_MARIO   0x11

◆ WARP_TRANSITION_FADE_INTO_STAR

#define WARP_TRANSITION_FADE_INTO_STAR   0x09

Enumeration Type Documentation

◆ CourseNum

enum CourseNum
Enumerator
COURSE_NONE 
COURSE_MIN 
COURSE_STAGES_MIN 
COURSE_BOB 
COURSE_WF 
COURSE_JRB 
COURSE_CCM 
COURSE_BBH 
COURSE_HMC 
COURSE_LLL 
COURSE_SSL 
COURSE_DDD 
COURSE_SL 
COURSE_WDW 
COURSE_TTM 
COURSE_THI 
COURSE_TTC 
COURSE_RR 
COURSE_BONUS_STAGES 
COURSE_STAGES_MAX 
COURSE_STAGES_COUNT 
COURSE_BITDW 
COURSE_BITFS 
COURSE_BITS 
COURSE_PSS 
COURSE_CAP_COURSES 
COURSE_COTMC 
COURSE_TOTWC 
COURSE_VCUTM 
COURSE_WMOTR 
COURSE_SA 
COURSE_CAKE_END 
COURSE_AFTER_END 
COURSE_MAX 
COURSE_COUNT 

◆ LevelNum

enum LevelNum
Enumerator
LEVEL_NONE 
LEVEL_MIN 
LEVEL_UNKNOWN_1 
LEVEL_UNKNOWN_2 
LEVEL_UNKNOWN_3 
LEVEL_BBH 
LEVEL_CCM 
LEVEL_CASTLE 
LEVEL_HMC 
LEVEL_SSL 
LEVEL_BOB 
LEVEL_SL 
LEVEL_WDW 
LEVEL_JRB 
LEVEL_THI 
LEVEL_TTC 
LEVEL_RR 
LEVEL_CASTLE_GROUNDS 
LEVEL_BITDW 
LEVEL_VCUTM 
LEVEL_BITFS 
LEVEL_SA 
LEVEL_BITS 
LEVEL_LLL 
LEVEL_DDD 
LEVEL_WF 
LEVEL_ENDING 
LEVEL_CASTLE_COURTYARD 
LEVEL_PSS 
LEVEL_COTMC 
LEVEL_TOTWC 
LEVEL_BOWSER_1 
LEVEL_WMOTR 
LEVEL_UNKNOWN_32 
LEVEL_BOWSER_2 
LEVEL_BOWSER_3 
LEVEL_UNKNOWN_35 
LEVEL_TTM 
LEVEL_UNKNOWN_37 
LEVEL_UNKNOWN_38 
LEVEL_COUNT 
LEVEL_MAX 

Function Documentation

◆ area_get_warp_node()

struct ObjectWarpNode* area_get_warp_node ( u8  id)

◆ area_update_objects()

void area_update_objects ( void  )

◆ change_area()

void change_area ( s32  index)

◆ clear_areas()

void clear_areas ( void  )

◆ func_8027A220()

void func_8027A220 ( Vp a,
Vp b,
u8  c,
u8  d,
u8  e 
)

◆ func_8027A7C4()

void func_8027A7C4 ( void  )

◆ func_8027A998()

void func_8027A998 ( void  )

◆ func_8027AA88()

void func_8027AA88 ( void  )

◆ get_mario_spawn_type()

u32 get_mario_spawn_type ( struct Object o)

◆ load_area()

void load_area ( s32  index)

◆ load_mario_area()

void load_mario_area ( void  )

◆ play_transition()

void play_transition ( s16  transType,
s16  time,
u8  red,
u8  green,
u8  blue 
)

◆ play_transition_after_delay()

void play_transition_after_delay ( s16  transType,
s16  time,
u8  red,
u8  green,
u8  blue,
s16  delay 
)

◆ print_intro_text()

void print_intro_text ( void  )

◆ render_game()

void render_game ( void  )

Variable Documentation

◆ D_8033A160

struct GraphNode* D_8033A160[]

◆ D_8033A75E

s16 D_8033A75E

◆ D_8033A760

s16 D_8033A760

◆ gAreaData

struct Area gAreaData[]

◆ gAreas

struct Area* gAreas

◆ gCurrActNum

s16 gCurrActNum

◆ gCurrAreaIndex

s16 gCurrAreaIndex

◆ gCurrCourseNum

s16 gCurrCourseNum

◆ gCurrentArea

struct Area* gCurrentArea

◆ gCurrLevelNum

s16 gCurrLevelNum

◆ gCurrSaveFileNum

s16 gCurrSaveFileNum

◆ gMarioSpawnInfo

struct SpawnInfo* gMarioSpawnInfo

◆ gPlayerSpawnInfos

struct SpawnInfo gPlayerSpawnInfos[]

◆ gSavedCourseNum

s16 gSavedCourseNum

◆ gWarpTransition

struct WarpTransition gWarpTransition