Mario Kart 64
Loading...
Searching...
No Matches
objects.h File Reference
#include "spline.h"
#include <common_structs.h>
Include dependency graph for objects.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Object
 
struct  ItemWindowObjects
 
struct  YVFlagPoleSpawn
 
struct  CrabSpawn
 
struct  ThwompSpawn
 
struct  SnowmanSpawn
 
struct  HegdehogSpawn
 
union  MoleSpawnUnion
 
struct  StarData
 

Macros

#define OBJECT_LIST_SIZE   0x226
 
#define SOME_OBJECT_INDEX_LIST_SIZE   32
 
#define VISIBLE   0x00040000
 Status flags for objects.
 
#define DELETED_OBJECT_ID   -1
 
#define NULL_OBJECT_ID   -1
 
#define NUM_YV_FLAG_POLES   4
 
#define NUM_CRABS   0xA
 
#define NUM_THWOMPS_50CC   8
 
#define NUM_THWOMPS_100CC_EXTRA   11
 
#define NUM_THWOMPS_150CC   12
 
#define NUM_NEON_SIGNS   10
 
#define NUM_CHAIN_CHOMPS   3
 
#define NUM_PENGUINS   15
 
#define NUM_SEAGULLS   10
 
#define NUM_SNOWMEN   19
 
#define NUM_HEDGEHOGS   15
 
#define NUM_BOOS   0xA
 
#define NUM_FIRE_BREATHS   4
 
#define gObjectParticle1_SIZE   128
 
#define NUM_GROUP1_MOLES   8
 
#define NUM_GROUP2_MOLES   11
 
#define NUM_GROUP3_MOLES   12
 
#define NUM_TOTAL_MOLES   (NUM_GROUP1_MOLES + NUM_GROUP2_MOLES + NUM_GROUP3_MOLES)
 
#define NUM_SNOWFLAKES   0x32
 
#define gObjectParticle2_SIZE   128
 
#define gObjectParticle3_SIZE   128
 
#define gObjectParticle4_SIZE   0x40
 
#define NUM_TORCHES   8
 
#define gLeafParticle_SIZE   0x40
 
#define gLeafParticle_SPAWN_SIZE   0x14
 
#define D_8018CC80_SIZE   0x64
 

Typedefs

typedef struct StarData CloudData
 

Variables

Object gObjectList []
 
s32 D_80183DA0
 
s32 gIndexLakituList []
 Lakitu?
 
s32 gItemWindowObjectByPlayerId []
 Appears to be a list of object list indices for the Item Window part of the HUD.
 
s16 D_80165750
 
s32 D_8018D1C8
 
s32 D_8018D1D0
 
s32 D_8018D1D8
 
s32 D_8018D3C0
 Limit on some object type (ice chips?) in Sherbet Land.
 
Collision D_8018C0B0 []
 Array of (4) Collisions?
 
YVFlagPoleSpawn D_800E5DF4 []
 
CrabSpawn gCrabSpawns []
 
Vec3f D_800E6734 []
 
ThwompSpawn gThomwpSpawns50CC []
 
ThwompSpawn gThwompSpawns100CCExtra []
 
ThwompSpawn gThomwpSpawns150CC []
 
ThwompSpawngThowmpSpawnList
 
s16 gNumActiveThwomps
 
s32 indexObjectList1 []
 
SnowmanSpawn gSnowmanSpawns []
 
HegdehogSpawn gHedgehogSpawns []
 
Vec3s gHedgehogPatrolPoints []
 
s32 indexObjectList2 []
 
Vec3s gFireBreathsSpawns []
 
s16 D_800E5740 []
 
s16 D_800E579C []
 
s16 D_800E57F8 []
 
s32 indexObjectList3 []
 
s32 indexObjectList4 []
 
MoleSpawnUnion gMoleSpawns
 
s8 D_8018D198 []
 
s8 D_8018D1A8 []
 
s8 D_8018D1B8 []
 
s32 D_8018CF10
 Unknown object index, only set for Kalimari Desert, never read.
 
s32 gObjectParticle1 []
 
s32 gNextFreeObjectParticle1
 Next free spot in gObjectParticle1? Wraps back around to 0 if it gets bigger than gObjectParticle1_SIZE.
 
s16 D_8018D174
 Used for cycling through snowflakes in func_80078790.
 
s32 gObjectParticle2 []
 
s32 gNextFreeObjectParticle2
 Next free spot in gObjectParticle2? Wraps back around to 0 if it gets bigger than gObjectParticle2_SIZE.
 
s32 D_8018D3BC
 Controls number of come object type placed into gObjectParticle2 on Frappe Snowland. So, maybe snowmen/snowflakes?
 
s32 gObjectParticle3 []
 
s32 gNextFreeObjectParticle3
 Next free spot in gObjectParticle3?
 
s16 D_80165730
 
s16 D_80165738
 Tracking a count of some object type, don't know what object type yet.
 
s16 gTorchSpawns []
 
s32 gObjectParticle4 []
 
s32 gNextFreeObjectParticle4
 Next free spot in gObjectParticle4? Wraps back around to 0 if it gets bigger than gObjectParticle4_SIZE.
 
s32 gLeafParticle []
 
s32 gNextFreeLeafParticle
 Next free spot in gLeafParticle? Wraps back around to 0 if it gets bigger than gLeafParticle_SIZE.
 
s32 D_8018CC80 []
 
s32 D_8018D1F0
 Number of used spots in D_8018CC80?
 
s32 D_8018D1F8
 Next free spot in D_8018CC80?
 
s16 D_8018D17C
 Also next free spot in D_8018CC80?
 
s8 D_8018D230
 Something related to the display of the clouds/stars?
 
s32 D_8018D3C4
 Some sort of limiter on how many of some object type can spawn.
 

Macro Definition Documentation

◆ D_8018CC80_SIZE

#define D_8018CC80_SIZE   0x64

◆ DELETED_OBJECT_ID

#define DELETED_OBJECT_ID   -1

◆ gLeafParticle_SIZE

#define gLeafParticle_SIZE   0x40

◆ gLeafParticle_SPAWN_SIZE

#define gLeafParticle_SPAWN_SIZE   0x14

◆ gObjectParticle1_SIZE

#define gObjectParticle1_SIZE   128

◆ gObjectParticle2_SIZE

#define gObjectParticle2_SIZE   128

◆ gObjectParticle3_SIZE

#define gObjectParticle3_SIZE   128

◆ gObjectParticle4_SIZE

#define gObjectParticle4_SIZE   0x40

◆ NULL_OBJECT_ID

#define NULL_OBJECT_ID   -1

◆ NUM_BOOS

#define NUM_BOOS   0xA

◆ NUM_CHAIN_CHOMPS

#define NUM_CHAIN_CHOMPS   3

◆ NUM_CRABS

#define NUM_CRABS   0xA

◆ NUM_FIRE_BREATHS

#define NUM_FIRE_BREATHS   4

◆ NUM_GROUP1_MOLES

#define NUM_GROUP1_MOLES   8

◆ NUM_GROUP2_MOLES

#define NUM_GROUP2_MOLES   11

◆ NUM_GROUP3_MOLES

#define NUM_GROUP3_MOLES   12

◆ NUM_HEDGEHOGS

#define NUM_HEDGEHOGS   15

◆ NUM_NEON_SIGNS

#define NUM_NEON_SIGNS   10

◆ NUM_PENGUINS

#define NUM_PENGUINS   15

◆ NUM_SEAGULLS

#define NUM_SEAGULLS   10

◆ NUM_SNOWFLAKES

#define NUM_SNOWFLAKES   0x32

◆ NUM_SNOWMEN

#define NUM_SNOWMEN   19

◆ NUM_THWOMPS_100CC_EXTRA

#define NUM_THWOMPS_100CC_EXTRA   11

◆ NUM_THWOMPS_150CC

#define NUM_THWOMPS_150CC   12

◆ NUM_THWOMPS_50CC

#define NUM_THWOMPS_50CC   8

◆ NUM_TORCHES

#define NUM_TORCHES   8

◆ NUM_TOTAL_MOLES

#define NUM_TOTAL_MOLES   (NUM_GROUP1_MOLES + NUM_GROUP2_MOLES + NUM_GROUP3_MOLES)

◆ NUM_YV_FLAG_POLES

#define NUM_YV_FLAG_POLES   4

indexObjectList1, indexObjectList2, indexObjectList3, and indexObjectList4 are all lists of indices in gObjectList. init_object_list_index initializes them in such a way that the indicies in each list are not adjacent. First indexObjectList1 gets an unused index, then indexObjectList2, then indexObjectList3, then indexObjectList4, and then it loops.

The objects found at the indices in each list appears to be course dependent

◆ OBJECT_LIST_SIZE

#define OBJECT_LIST_SIZE   0x226

◆ SOME_OBJECT_INDEX_LIST_SIZE

#define SOME_OBJECT_INDEX_LIST_SIZE   32

◆ VISIBLE

#define VISIBLE   0x00040000

Status flags for objects.

Typedef Documentation

◆ CloudData

typedef struct StarData CloudData

Variable Documentation

◆ D_800E5740

s16 D_800E5740[]
extern

◆ D_800E579C

s16 D_800E579C[]
extern

◆ D_800E57F8

s16 D_800E57F8[]
extern

◆ D_800E5DF4

YVFlagPoleSpawn D_800E5DF4[]
extern

◆ D_800E6734

Vec3f D_800E6734[]
extern

◆ D_80165730

s16 D_80165730
extern

◆ D_80165738

s16 D_80165738
extern

Tracking a count of some object type, don't know what object type yet.

◆ D_80165750

s16 D_80165750
extern

◆ D_80183DA0

s32 D_80183DA0
extern

Use unknown. An object is reserved and its index is saved to this variable, but it appears to go unreferenced

◆ D_8018C0B0

Collision D_8018C0B0[]
extern

Array of (4) Collisions?

◆ D_8018CC80

s32 D_8018CC80[]
extern

List of object list indices used by the clouds and stars in some stages Also used for snowflakes like gObjectParticle1? Not sure what's up with that

◆ D_8018CF10

s32 D_8018CF10
extern

Unknown object index, only set for Kalimari Desert, never read.

◆ D_8018D174

s16 D_8018D174
extern

Used for cycling through snowflakes in func_80078790.

◆ D_8018D17C

s16 D_8018D17C
extern

Also next free spot in D_8018CC80?

◆ D_8018D198

s8 D_8018D198[]
extern

Exact use unknown, something related to the mole groups Maybe be indicating that a given mole in a given group is active?

◆ D_8018D1A8

s8 D_8018D1A8[]
extern

◆ D_8018D1B8

s8 D_8018D1B8[]
extern

◆ D_8018D1C8

s32 D_8018D1C8
extern

These seem to be limits on different object types in Moo Moo Farm See init_course_object in code_8006E9C0.c Maybe max number of active moles in a given group of moles?

◆ D_8018D1D0

s32 D_8018D1D0
extern

◆ D_8018D1D8

s32 D_8018D1D8
extern

◆ D_8018D1F0

s32 D_8018D1F0
extern

Number of used spots in D_8018CC80?

◆ D_8018D1F8

s32 D_8018D1F8
extern

Next free spot in D_8018CC80?

◆ D_8018D230

s8 D_8018D230
extern

Something related to the display of the clouds/stars?

◆ D_8018D3BC

s32 D_8018D3BC
extern

Controls number of come object type placed into gObjectParticle2 on Frappe Snowland. So, maybe snowmen/snowflakes?

◆ D_8018D3C0

s32 D_8018D3C0
extern

Limit on some object type (ice chips?) in Sherbet Land.

◆ D_8018D3C4

s32 D_8018D3C4
extern

Some sort of limiter on how many of some object type can spawn.

◆ gCrabSpawns

CrabSpawn gCrabSpawns[]
extern

◆ gFireBreathsSpawns

Vec3s gFireBreathsSpawns[]
extern

◆ gHedgehogPatrolPoints

Vec3s gHedgehogPatrolPoints[]
extern

◆ gHedgehogSpawns

HegdehogSpawn gHedgehogSpawns[]
extern

◆ gIndexLakituList

s32 gIndexLakituList[]
extern

Lakitu?

◆ gItemWindowObjectByPlayerId

s32 gItemWindowObjectByPlayerId[]
extern

Appears to be a list of object list indices for the Item Window part of the HUD.

◆ gLeafParticle

s32 gLeafParticle[]
extern

Seemingly a list of object list indices used for the leaves that sometimes fall trees when you bonk into them

◆ gMoleSpawns

MoleSpawnUnion gMoleSpawns
extern

◆ gNextFreeLeafParticle

s32 gNextFreeLeafParticle
extern

Next free spot in gLeafParticle? Wraps back around to 0 if it gets bigger than gLeafParticle_SIZE.

◆ gNextFreeObjectParticle1

s32 gNextFreeObjectParticle1
extern

Next free spot in gObjectParticle1? Wraps back around to 0 if it gets bigger than gObjectParticle1_SIZE.

◆ gNextFreeObjectParticle2

s32 gNextFreeObjectParticle2
extern

Next free spot in gObjectParticle2? Wraps back around to 0 if it gets bigger than gObjectParticle2_SIZE.

◆ gNextFreeObjectParticle3

s32 gNextFreeObjectParticle3
extern

Next free spot in gObjectParticle3?

◆ gNextFreeObjectParticle4

s32 gNextFreeObjectParticle4
extern

Next free spot in gObjectParticle4? Wraps back around to 0 if it gets bigger than gObjectParticle4_SIZE.

◆ gNumActiveThwomps

s16 gNumActiveThwomps
extern

◆ gObjectList

Object gObjectList[]
extern

◆ gObjectParticle1

s32 gObjectParticle1[]
extern

List of object list indices used for: Moles in Moo Moo Farm Snow flakes in Frappe Snowland Segments of the fire breath from the statues in Bowser's Castle Potentially other things

◆ gObjectParticle2

s32 gObjectParticle2[]
extern

List of object list indices used for: Bats in Banshee's Boardwalk (but only 1 player mode?)

List of object list indices used for:

  • Bats in Banshee's Boardwalk (but only 1 player mode?)
  • Train index 0 smoke in Kalimari Desert
  • Ferry index 0 smoke in DK Jungle

◆ gObjectParticle3

s32 gObjectParticle3[]
extern

List of object list indices used for:

  • Train index 1 smoke in Kalimari Desert
  • Ferry index 1 smoke in DK Jungle

◆ gObjectParticle4

s32 gObjectParticle4[]
extern

List of object list indices. Used both for the fires in the DK Jungle cave and, seemingly for the trail that shells leave behind them. I think they're using the same texture, which would explain the dual use

◆ gSnowmanSpawns

SnowmanSpawn gSnowmanSpawns[]
extern

◆ gThomwpSpawns150CC

ThwompSpawn gThomwpSpawns150CC[]
extern

◆ gThomwpSpawns50CC

ThwompSpawn gThomwpSpawns50CC[]
extern

◆ gThowmpSpawnList

ThwompSpawn* gThowmpSpawnList
extern

◆ gThwompSpawns100CCExtra

ThwompSpawn gThwompSpawns100CCExtra[]
extern

◆ gTorchSpawns

s16 gTorchSpawns[]
extern
Todo
fix this extern

◆ indexObjectList1

s32 indexObjectList1[]
extern

Snowmen bodies in FrappeSnowland Crabs in Koopa Troopa Beach Hot air balloon in Luigi Raceway? Neon signs in Rainbow Road? Thwomps in Bower's Castle? Penguins in Sherbet Land? Flag Poles in Yoshi Valley?

◆ indexObjectList2

s32 indexObjectList2[]
extern

Snowmen heads in Frappe Snowland Chain Chomps in RaindbowRoad? Trophy in award ceremony? Seagulls in Koopa Troopa Beach? Hedgehogs in Yoshi Valley? Spawn for big fire breath in Bowser's Castle

◆ indexObjectList3

s32 indexObjectList3[]
extern

Boos in Banshee Boardwalk Spawners for the 4 small fire breaths inside Bowser's Castle

◆ indexObjectList4

s32 indexObjectList4[]
extern

Unused list of object indices