Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
Data Structures | Macros | Typedefs | Enumerations
gd_types.h File Reference
#include <ultra64.h>

Go to the source code of this file.

Data Structures

struct  GdVec3f
 
struct  GdPlaneF
 
struct  GdTriangleF
 
struct  GdColour
 
union  DynUnion
 
struct  DynList
 
struct  GdObj
 The base of structure of all of Goddard's objects. More...
 
struct  Links
 
struct  GdFaceData
 
struct  GdVtxData
 
struct  ObjGroup
 This is test documentation comment for ObjGroup. More...
 
struct  ObjBone
 
struct  ObjJoint
 
struct  ObjParticle
 
struct  ObjShape
 
struct  ObjNet
 
struct  ObjPlane
 
struct  ObjVertex
 
struct  VtxLink
 
struct  ObjFace
 
struct  ObjCamera
 
struct  ObjMaterial
 
struct  ObjWeight
 
union  ObjVarVal
 
struct  ObjGadget
 
struct  ObjView
 
struct  ObjLabel
 
struct  ObjAnimator
 
struct  AnimDataInfo
 
struct  AnimMtxVec
 
struct  ObjValPtrs
 
struct  ObjLight
 
struct  ObjZone
 
struct  ObjUnk200000
 

Macros

#define OBJ_TYPE_ALL   0x00FFFFFF
 

Typedefs

typedef f32 Mat4f[4][4]
 
typedef void(* drawmethod_t) (void *)
 Function pointer for a GdObj's drawing routine. More...
 
typedef union ObjVarVal *(* valptrproc_t) (union ObjVarVal *, union ObjVarVal)
 

Enumerations

enum  ObjTypeFlag {
  OBJ_TYPE_GROUPS = 0x00000001, OBJ_TYPE_BONES = 0x00000002, OBJ_TYPE_JOINTS = 0x00000004, OBJ_TYPE_PARTICLES = 0x00000008,
  OBJ_TYPE_SHAPES = 0x00000010, OBJ_TYPE_NETS = 0x00000020, OBJ_TYPE_PLANES = 0x00000040, OBJ_TYPE_FACES = 0x00000080,
  OBJ_TYPE_VERTICES = 0x00000100, OBJ_TYPE_CAMERAS = 0x00000200, OBJ_TYPE_MATERIALS = 0x00000800, OBJ_TYPE_WEIGHTS = 0x00001000,
  OBJ_TYPE_GADGETS = 0x00002000, OBJ_TYPE_VIEWS = 0x00004000, OBJ_TYPE_LABELS = 0x00008000, OBJ_TYPE_ANIMATORS = 0x00010000,
  OBJ_TYPE_VALPTRS = 0x00020000, OBJ_TYPE_LIGHTS = 0x00080000, OBJ_TYPE_ZONES = 0x00100000, OBJ_TYPE_UNK200000 = 0x00200000
}
 
enum  ObjDrawingFlags {
  OBJ_DRAW_UNK01 = 0x01, OBJ_NOT_DRAWABLE = 0x02, OBJ_PICKED = 0x04, OBJ_IS_GRABBALE = 0x08,
  OBJ_USE_ENV_COLOUR = 0x10
}
 Flags for the drawFlags field of an GdObj. More...
 
enum  GdMtlTypes { GD_MTL_UNK04 = 4, GD_MTL_UNK16 = 16, GD_MTL_UNK64 = 64 }
 
enum  GdViewFlags {
  VIEW_2_COL_BUF = 0x000008, VIEW_ALLOC_ZBUF = 0x000010, VIEW_SAVE_TO_GLOBAL = 0x000040, VIEW_DEFAULT_PARENT = 0x000100,
  VIEW_BORDERED = 0x000400, VIEW_UPDATE = 0x000800, VIEW_UNK_1000 = 0x001000, VIEW_UNK_2000 = 0x002000,
  VIEW_UNK_4000 = 0x004000, VIEW_COLOUR_BUF = 0x008000, VIEW_Z_BUF = 0x010000, VIEW_1_CYCLE = 0x020000,
  VIEW_MOVEMENT = 0x040000, VIEW_DRAW = 0x080000, VIEW_WAS_UPDATED = 0x100000, VIEW_LIGHT = 0x200000
}
 
enum  GdAnimations {
  GD_ANIM_EMPTY = 0, GD_ANIM_MATRIX = 1, GD_ANIM_TRI_F_2 = 2, GD_ANIM_9H = 3,
  GD_ANIM_TRI_F_4 = 4, GD_ANIM_STUB = 5, GD_ANIM_3H_SCALED = 6, GD_ANIM_3H = 7,
  GD_ANIM_6H_SCALED = 8, GD_ANIM_MTX_VEC = 9, GD_ANIM_CAMERA = 11
}
 
enum  ValPtrType { OBJ_VALUE_INT = 1, OBJ_VALUE_FLOAT = 2 }
 
enum  GdLightFlags { LIGHT_UNK02 = 0x02, LIGHT_NEW_UNCOUNTED = 0x10, LIGHT_UNK20 = 0x20 }
 

Macro Definition Documentation

◆ OBJ_TYPE_ALL

#define OBJ_TYPE_ALL   0x00FFFFFF

Typedef Documentation

◆ drawmethod_t

typedef void(* drawmethod_t) (void *)

Function pointer for a GdObj's drawing routine.

◆ Mat4f

typedef f32 Mat4f[4][4]

◆ valptrproc_t

typedef union ObjVarVal*(* valptrproc_t) (union ObjVarVal *, union ObjVarVal)

Enumeration Type Documentation

◆ GdAnimations

Enumerator
GD_ANIM_EMPTY 
GD_ANIM_MATRIX 
GD_ANIM_TRI_F_2 
GD_ANIM_9H 
GD_ANIM_TRI_F_4 
GD_ANIM_STUB 
GD_ANIM_3H_SCALED 
GD_ANIM_3H 
GD_ANIM_6H_SCALED 
GD_ANIM_MTX_VEC 
GD_ANIM_CAMERA 

◆ GdLightFlags

Enumerator
LIGHT_UNK02 
LIGHT_NEW_UNCOUNTED 
LIGHT_UNK20 

◆ GdMtlTypes

enum GdMtlTypes
Enumerator
GD_MTL_UNK04 
GD_MTL_UNK16 
GD_MTL_UNK64 

◆ GdViewFlags

Enumerator
VIEW_2_COL_BUF 
VIEW_ALLOC_ZBUF 
VIEW_SAVE_TO_GLOBAL 
VIEW_DEFAULT_PARENT 
VIEW_BORDERED 
VIEW_UPDATE 
VIEW_UNK_1000 
VIEW_UNK_2000 
VIEW_UNK_4000 
VIEW_COLOUR_BUF 
VIEW_Z_BUF 
VIEW_1_CYCLE 
VIEW_MOVEMENT 
VIEW_DRAW 
VIEW_WAS_UPDATED 
VIEW_LIGHT 

◆ ObjDrawingFlags

Flags for the drawFlags field of an GdObj.

Enumerator
OBJ_DRAW_UNK01 
OBJ_NOT_DRAWABLE 

This GdObj shouldn't be drawn when updating a scene.

OBJ_PICKED 

This GdObj is held by the cursor.

OBJ_IS_GRABBALE 

This GdObj can be grabbed/picked by the cursor.

OBJ_USE_ENV_COLOUR 

◆ ObjTypeFlag

Enumerator
OBJ_TYPE_GROUPS 
OBJ_TYPE_BONES 
OBJ_TYPE_JOINTS 
OBJ_TYPE_PARTICLES 
OBJ_TYPE_SHAPES 
OBJ_TYPE_NETS 
OBJ_TYPE_PLANES 
OBJ_TYPE_FACES 
OBJ_TYPE_VERTICES 
OBJ_TYPE_CAMERAS 
OBJ_TYPE_MATERIALS 
OBJ_TYPE_WEIGHTS 
OBJ_TYPE_GADGETS 
OBJ_TYPE_VIEWS 
OBJ_TYPE_LABELS 
OBJ_TYPE_ANIMATORS 
OBJ_TYPE_VALPTRS 
OBJ_TYPE_LIGHTS 
OBJ_TYPE_ZONES 
OBJ_TYPE_UNK200000 

◆ ValPtrType

enum ValPtrType
Enumerator
OBJ_VALUE_INT 
OBJ_VALUE_FLOAT