Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
geo_layout.h
Go to the documentation of this file.
1 #ifndef _GEO_LAYOUT_H_
2 #define _GEO_LAYOUT_H_
3 
4 #include "game/memory.h"
5 
6 #define GEO_CMD_FLAGS_RESET 0
7 #define GEO_CMD_FLAGS_SET 1
8 #define GEO_CMD_FLAGS_CLEAR 2
9 
10 #define cur_geo_cmd_u8(offset) \
11  (gGeoLayoutCommand[offset])
12 
13 #define cur_geo_cmd_s16(offset) \
14  (*(s16 *) &gGeoLayoutCommand[offset])
15 
16 #define cur_geo_cmd_s32(offset) \
17  (*(s32 *) &gGeoLayoutCommand[offset])
18 
19 #define cur_geo_cmd_u32(offset) \
20  (*(u32 *) &gGeoLayoutCommand[offset])
21 
22 extern struct AllocOnlyPool *gGraphNodePool;
23 extern struct GraphNode *gCurRootGraphNode;
24 extern UNUSED s32 D_8038BCA8;
25 extern struct GraphNode **gGeoViews;
26 extern u16 gGeoNumViews;
27 extern u32 gGeoLayoutStack[];
28 extern struct GraphNode *gCurGraphNodeList[];
29 extern s16 gCurGraphNodeIndex;
31 extern UNUSED s16 D_8038BD7C;
33 extern u8 *gGeoLayoutCommand;
34 extern struct GraphNode gObjParentGraphNode;
35 
36 extern struct AllocOnlyPool *D_8038BCA0;
37 extern struct GraphNode *D_8038BCA4;
38 extern s16 D_8038BD78;
39 extern struct GraphNode *D_8038BCF8[];
40 
42 void geo_layout_cmd_end(void);
43 void geo_layout_cmd_branch(void);
44 void geo_layout_cmd_return(void);
45 void geo_layout_cmd_open_node(void);
46 void geo_layout_cmd_close_node(void);
49 void geo_layout_cmd_node_root(void);
52 void geo_layout_cmd_node_start(void);
53 void geo_layout_cmd_nop3(void);
61 void geo_layout_cmd_node_scale(void);
62 void geo_layout_cmd_nop2(void);
70 void geo_layout_cmd_nop(void);
71 void geo_layout_cmd_copy_view(void);
74 
75 struct GraphNode *process_geo_layout(struct AllocOnlyPool *a0, void *segptr);
76 
77 #endif /* _GEO_LAYOUT_H_ */
struct GraphNode * D_8038BCA4
void geo_layout_cmd_return(void)
Definition: geo_layout.c:137
void geo_layout_cmd_branch(void)
Definition: geo_layout.c:128
void geo_layout_cmd_end(void)
Definition: geo_layout.c:117
void geo_layout_cmd_close_node(void)
Definition: geo_layout.c:149
unsigned short int u16
Definition: ultratypes.h:14
s16 D_8038BD78
void geo_layout_cmd_node_background(void)
Definition: geo_layout.c:691
s16 gGeoLayoutStackIndex
Definition: geo_layout.c:97
signed short int s16
Definition: ultratypes.h:13
s16 gCurGraphNodeIndex
Definition: geo_layout.c:96
void geo_layout_cmd_node_animated_part(void)
Definition: geo_layout.c:572
u16 gGeoNumViews
Definition: geo_layout.c:92
Definition: types.h:77
s16 gGeoLayoutReturnIndex
Definition: geo_layout.c:99
struct GraphNode * gCurRootGraphNode
Definition: geo_layout.c:48
void geo_layout_cmd_node_level_of_detail(void)
Definition: geo_layout.c:316
void geo_layout_cmd_node_perspective(void)
Definition: geo_layout.c:257
struct GraphNode ** gGeoViews
Definition: geo_layout.c:91
void geo_layout_cmd_node_shadow(void)
Definition: geo_layout.c:645
void geo_layout_cmd_node_master_list(void)
Definition: geo_layout.c:300
u8 * gGeoLayoutCommand
Definition: geo_layout.c:100
struct AllocOnlyPool * D_8038BCA0
void geo_layout_cmd_branch_and_link(void)
Definition: geo_layout.c:109
UNUSED s16 D_8038BD7C
Definition: geo_layout.c:98
void geo_layout_cmd_nop3(void)
Definition: geo_layout.c:292
void geo_layout_cmd_assign_as_view(void)
Definition: geo_layout.c:160
UNUSED s32 D_8038BCA8
Definition: geo_layout.c:50
void geo_layout_cmd_node_billboard(void)
Definition: geo_layout.c:599
u32 gGeoLayoutStack[]
Definition: geo_layout.c:94
void geo_layout_cmd_open_node(void)
Definition: geo_layout.c:142
void geo_layout_cmd_node_rotation(void)
Definition: geo_layout.c:505
void geo_layout_cmd_node_held_obj(void)
Definition: geo_layout.c:745
void geo_layout_cmd_node_translation_rotation(void)
Definition: geo_layout.c:415
struct GraphNode * process_geo_layout(struct AllocOnlyPool *a0, void *segptr)
Definition: geo_layout.c:771
struct GraphNode * gCurGraphNodeList[]
Definition: geo_layout.c:95
void geo_layout_cmd_update_node_flags(void)
Definition: geo_layout.c:175
void geo_layout_cmd_node_generated(void)
Definition: geo_layout.c:674
void geo_layout_cmd_copy_view(void)
Definition: geo_layout.c:715
void geo_layout_cmd_node_switch_case(void)
Definition: geo_layout.c:336
void geo_layout_cmd_node_scale(void)
Definition: geo_layout.c:538
unsigned char u8
Definition: ultratypes.h:12
struct GraphNode * D_8038BCF8[]
void geo_layout_cmd_node_translation(void)
Definition: geo_layout.c:469
#define UNUSED
Definition: macros.h:13
void geo_layout_cmd_nop(void)
Definition: geo_layout.c:706
void geo_layout_cmd_node_display_list(void)
Definition: geo_layout.c:627
signed int s32
Definition: ultratypes.h:15
Definition: memory.h:9
void geo_layout_cmd_node_start(void)
Definition: geo_layout.c:281
void geo_layout_cmd_node_root(void)
Definition: geo_layout.c:202
void geo_layout_cmd_node_object_parent(void)
Definition: geo_layout.c:659
void geo_layout_cmd_nop2(void)
Definition: geo_layout.c:560
void geo_layout_cmd_node_camera(void)
Definition: geo_layout.c:362
unsigned int u32
Definition: ultratypes.h:16
void geo_layout_cmd_node_culling_radius(void)
Definition: geo_layout.c:764
void geo_layout_cmd_node_ortho_projection(void)
Definition: geo_layout.c:238
struct GraphNode gObjParentGraphNode
Definition: geo_layout.c:101
struct AllocOnlyPool * gGraphNodePool
Definition: geo_layout.c:47