diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/functions.h | 79 | ||||
| -rw-r--r-- | include/regs.h | 5 | ||||
| -rw-r--r-- | include/variables.h | 2 | ||||
| -rw-r--r-- | include/z64.h | 2 | ||||
| -rw-r--r-- | include/z64bgcheck.h | 5 | ||||
| -rw-r--r-- | include/z64scene.h | 234 |
6 files changed, 167 insertions, 160 deletions
diff --git a/include/functions.h b/include/functions.h index 223d4badb..d4ecd9579 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1888,19 +1888,14 @@ Gfx* Gfx_PrimColor(GraphicsContext* gfxCtx, s32 lodfrac, s32 r, s32 g, s32 b, s3 void func_8012CF0C(GraphicsContext* gfxCtx, s32 clearFb, s32 clearZb, u8 r, u8 g, u8 b); void func_8012D374(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b); void func_8012D40C(f32* param_1, f32* param_2, s16* param_3); -void Room_nop8012D510(PlayState* play, Room* room, UNK_PTR param_3, UNK_TYPE1 param_4); -void Room_DrawType3Mesh(PlayState* play, Room* room, u32 flags); -void Room_DrawType0Mesh(PlayState* play, Room* room, u32 flags); -void Room_DrawType2Mesh(PlayState* play, Room* room, u32 flags); -void func_8012DEE8(PlayState* play, Room* room, u32 flags); -u32 func_8012E254(s32 param_1, PlayState* play); -void func_8012E32C(PlayState* play, Room* room, u32 flags); -void Room_DrawType1Mesh(PlayState* play, Room* room, u32 flags); + +void Room_Noop(PlayState* play, Room* room, Input* input, s32 arg3); void Room_Init(PlayState* play, RoomContext* roomCtx); -u32 Room_AllocateAndLoad(PlayState* play, RoomContext* roomCtx); +size_t Room_AllocateAndLoad(PlayState* play, RoomContext* roomCtx); s32 Room_StartRoomTransition(PlayState* play, RoomContext* roomCtx, s32 index); s32 Room_HandleLoadCallbacks(PlayState* play, RoomContext* roomCtx); void Room_Draw(PlayState* play, Room* room, u32 flags); + void func_8012EBF8(PlayState* play, RoomContext* roomCtx); s32 Inventory_GetBtnBItem(PlayState* play); void Inventory_ChangeEquipment(s16 value); @@ -1919,40 +1914,40 @@ s32 Object_GetIndex(ObjectContext* objectCtx, s16 objectId); s32 Object_IsLoaded(ObjectContext* objectCtx, s32 index); void Object_LoadAll(ObjectContext* objectCtx); void* func_8012F73C(ObjectContext* objectCtx, s32 iParm2, s16 id); -void Scene_HeaderCmdSpawnList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdActorList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdActorCutsceneCamList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdColHeader(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdRoomList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdEntranceList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdSpecialFiles(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdRoomBehavior(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdMesh(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdObjectList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdLightList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdPathList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdTransiActorList(PlayState* play, SceneCmd* cmd); +void Scene_CommandSpawnList(PlayState* play, SceneCmd* cmd); +void Scene_CommandActorList(PlayState* play, SceneCmd* cmd); +void Scene_CommandActorCutsceneCamList(PlayState* play, SceneCmd* cmd); +void Scene_CommandCollisionHeader(PlayState* play, SceneCmd* cmd); +void Scene_CommandRoomList(PlayState* play, SceneCmd* cmd); +void Scene_CommandEntranceList(PlayState* play, SceneCmd* cmd); +void Scene_CommandSpecialFiles(PlayState* play, SceneCmd* cmd); +void Scene_CommandRoomBehavior(PlayState* play, SceneCmd* cmd); +void Scene_CommandMesh(PlayState* play, SceneCmd* cmd); +void Scene_CommandObjectList(PlayState* play, SceneCmd* cmd); +void Scene_CommandLightList(PlayState* play, SceneCmd* cmd); +void Scene_CommandPathList(PlayState* play, SceneCmd* cmd); +void Scene_CommandTransiActorList(PlayState* play, SceneCmd* cmd); void Door_InitContext(GameState* gameState, DoorContext* doorCtx); -void Scene_HeaderCmdEnvLightSettings(PlayState* play, SceneCmd* cmd); +void Scene_CommandEnvLightSettings(PlayState* play, SceneCmd* cmd); void Scene_LoadAreaTextures(PlayState* play, s32 fileIndex); -void Scene_HeaderCmdSkyboxSettings(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdSkyboxDisables(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdTimeSettings(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdWindSettings(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdExitList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmd09(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdSoundSettings(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdEchoSetting(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdAltHeaderList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdCutsceneList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdActorCutsceneList(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdMiniMap(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmd1D(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdMiniMapCompassInfo(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdSetRegionVisitedFlag(PlayState* play, SceneCmd* cmd); -void Scene_HeaderCmdAnimatedMaterials(PlayState* play, SceneCmd* cmd); +void Scene_CommandSkyboxSettings(PlayState* play, SceneCmd* cmd); +void Scene_CommandSkyboxDisables(PlayState* play, SceneCmd* cmd); +void Scene_CommandTimeSettings(PlayState* play, SceneCmd* cmd); +void Scene_CommandWindSettings(PlayState* play, SceneCmd* cmd); +void Scene_CommandExitList(PlayState* play, SceneCmd* cmd); +void Scene_Command09(PlayState* play, SceneCmd* cmd); +void Scene_CommandSoundSettings(PlayState* play, SceneCmd* cmd); +void Scene_CommandEchoSetting(PlayState* play, SceneCmd* cmd); +void Scene_CommandAltHeaderList(PlayState* play, SceneCmd* cmd); +void Scene_CommandCutsceneList(PlayState* play, SceneCmd* cmd); +void Scene_CommandActorCutsceneList(PlayState* play, SceneCmd* cmd); +void Scene_CommandMiniMap(PlayState* play, SceneCmd* cmd); +void Scene_Command1D(PlayState* play, SceneCmd* cmd); +void Scene_CommandMiniMapCompassInfo(PlayState* play, SceneCmd* cmd); +void Scene_CommandSetRegionVisitedFlag(PlayState* play, SceneCmd* cmd); +void Scene_CommandAnimatedMaterials(PlayState* play, SceneCmd* cmd); void Scene_SetExitFade(PlayState* play); -s32 Scene_ProcessHeader(PlayState* play, SceneCmd* header); +s32 Scene_ExecuteCommands(PlayState* play, SceneCmd* sceneCmd); u16 Entrance_Create(s32 scene, s32 spawn, s32 layer); u16 Entrance_CreateFromSpawn(s32 spawn); void Scene_Draw(PlayState* play); @@ -2319,7 +2314,7 @@ void Play_SetupRespawnPoint(GameState* thisx, s32 respawnMode, s32 playerParams) void func_80169EFC(GameState* thisx); void func_80169F78(GameState* thisx); void func_80169FDC(GameState* thisx); -s32 func_80169FFC(GameState* thisx); +s32 Play_CamIsNotFixed(GameState* thisx); s32 FrameAdvance_IsEnabled(GameState* thisx); s32 func_8016A02C(GameState* thisx, Actor* actor, s16* yaw); s32 Play_IsUnderwater(PlayState* this, Vec3f* pos); @@ -2367,7 +2362,7 @@ void PreRender_ApplyFiltersSlowlyInit(PreRender* this); void PreRender_ApplyFiltersSlowlyDestroy(PreRender* this); void func_801720C4(PreRender* this); void func_801720FC(PreRenderParams* params, Gfx** gfxp); -void func_80172758(Gfx** gfxp, void* timg, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 tt, u16 arg8, f32 x, f32 y, f32 xScale, f32 yScale, u32 flags); +void Prerender_DrawBackground2D(Gfx** gfxp, void* timg, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 tt, u16 arg8, f32 x, f32 y, f32 xScale, f32 yScale, u32 flags); void THGA_Ct(TwoHeadGfxArena* thga, Gfx* start, size_t size); void THGA_Dt(TwoHeadGfxArena* thga); u32 THGA_IsCrash(TwoHeadGfxArena* thga); diff --git a/include/regs.h b/include/regs.h index 5dee53e97..8de13fb66 100644 --- a/include/regs.h +++ b/include/regs.h @@ -63,6 +63,7 @@ extern RegEditor* gRegEditor; #define R_RUN_SPEED_LIMIT REG(45) #define R_ENABLE_ARENA_DBG SREG(0) // Same as OoT +#define R_ROOM_IMAGE_NODRAW_FLAGS SREG(25) #define R_UPDATE_RATE SREG(30) #define R_FB_FILTER_TYPE SREG(80) #define R_FB_FILTER_PRIM_COLOR(c) SREG(81 + c) @@ -139,6 +140,10 @@ extern RegEditor* gRegEditor; #define R_MINIMAP_DISABLED XREG(95) #define R_TRANS_FADE_FLASH_ALPHA_STEP iREG(50) // Set to a negative number to start the flash +#define R_ROOM_CULL_DEBUG_MODE iREG(86) +#define R_ROOM_CULL_NUM_ENTRIES iREG(87) +#define R_ROOM_CULL_USED_ENTRIES iREG(88) +#define R_ROOM_CULL_DEBUG_TARGET iREG(89) #define R_B_LABEL_DD WREG(0) #define R_OW_MINIMAP_X WREG(29) diff --git a/include/variables.h b/include/variables.h index b362c6a37..9ce8d04d5 100644 --- a/include/variables.h +++ b/include/variables.h @@ -592,8 +592,6 @@ extern Gfx gCullFrontDList[]; extern Gfx sSetupDL[438]; extern Gfx sFillSetupDL[12]; extern Gfx gEmptyDL[1]; -extern Vec3f D_801C1D10; -extern room_draw_func roomDrawFuncs[4]; extern u32 gBitFlags[32]; extern u16 gEquipMasks[]; extern u16 gEquipNegMasks[]; diff --git a/include/z64.h b/include/z64.h index cd9dc71cf..34be175f4 100644 --- a/include/z64.h +++ b/include/z64.h @@ -563,8 +563,6 @@ typedef void (*ColChkApplyFunc)(struct PlayState*, CollisionCheckContext*, Colli typedef void (*ColChkVsFunc)(struct PlayState*, CollisionCheckContext*, Collider*, Collider*); typedef s32 (*ColChkLineFunc)(struct PlayState*, CollisionCheckContext*, Collider*, Vec3f*, Vec3f*); -typedef void(*room_draw_func)(struct PlayState* play, Room* room, u32 flags); - typedef struct { /* 0x000 */ u8 controllers; // bit 0 is set if controller 1 is plugged in, etc. /* 0x001 */ UNK_TYPE1 pad1[0x13]; diff --git a/include/z64bgcheck.h b/include/z64bgcheck.h index fa0443e65..ad56599b5 100644 --- a/include/z64bgcheck.h +++ b/include/z64bgcheck.h @@ -96,7 +96,10 @@ typedef struct { /* 0x00 */ Vec3s pos; /* 0x06 */ Vec3s rot; /* 0x0C */ s16 fov; - /* 0x0E */ s16 unk_0E; + /* 0x0E */ union { + s16 roomImageOverrideBgCamIndex; + s16 unk_0E; + }; /* 0x10 */ s16 unk_10; } BgCamFuncData; // size = 0x12 diff --git a/include/z64scene.h b/include/z64scene.h index 66830d86d..84b405b90 100644 --- a/include/z64scene.h +++ b/include/z64scene.h @@ -13,6 +13,9 @@ typedef struct { /* 0x4 */ uintptr_t vromEnd; } RomFile; // size = 0x8 +#define ROOM_DRAW_OPA (1 << 0) +#define ROOM_DRAW_XLU (1 << 1) + typedef struct { /* 0x0 */ u8 code; /* 0x1 */ u8 data1; @@ -213,58 +216,132 @@ typedef struct { /* 0x4 */ void* segment; } SCmdMinimapChests; // size = 0x8 -typedef struct { - /* 0x0 */ Gfx* opaqueDl; - /* 0x4 */ Gfx* translucentDl; -} RoomMeshType0Params; // size = 0x8 +typedef enum { + /* 0 */ ROOM_SHAPE_TYPE_NORMAL, + /* 1 */ ROOM_SHAPE_TYPE_IMAGE, + /* 2 */ ROOM_SHAPE_TYPE_CULLABLE, + /* 3 */ ROOM_SHAPE_TYPE_NONE, + /* 4 */ ROOM_SHAPE_TYPE_MAX +} RoomShapeType; -// Fields TODO typedef struct { /* 0x0 */ u8 type; - /* 0x1 */ u8 format; // 1 = single, 2 = multi -} RoomMeshType1; // size = 0x2 - -// Size TODO -typedef struct { - /* 0x0 */ UNK_TYPE1 pad0[0x10]; -} RoomMeshType1Params; // size = 0x10 +} RoomShapeBase; // size = 0x1 typedef struct { - /* 0x0 */ UNK_TYPE1 pad0[0x10]; -} RoomMeshType2Params; // size = 0x10 + /* 0x0 */ Gfx* opa; + /* 0x4 */ Gfx* xlu; +} RoomShapeDListsEntry; // size = 0x8 typedef struct { - /* 0x0 */ u8 type; - /* 0x1 */ u8 count; - /* 0x2 */ UNK_TYPE1 pad2[0x2]; - /* 0x4 */ RoomMeshType0Params* paramsStart; - /* 0x8 */ RoomMeshType0Params* paramsEnd; -} RoomMeshType0; // size = 0xC + /* 0x0 */ RoomShapeBase base; + /* 0x1 */ u8 numEntries; + /* 0x4 */ RoomShapeDListsEntry* entries; + /* 0x8 */ RoomShapeDListsEntry* entriesEnd; +} RoomShapeNormal; // size = 0xC -typedef struct { - /* 0x0 */ u8 type; - /* 0x1 */ u8 count; - /* 0x2 */ UNK_TYPE1 pad2[0x2]; - /* 0x4 */ RoomMeshType2Params* paramsStart; - /* 0x8 */ RoomMeshType2Params* paramsEnd; -} RoomMeshType2; // size = 0xC +typedef enum { + /* 1 */ ROOM_SHAPE_IMAGE_AMOUNT_SINGLE = 1, + /* 2 */ ROOM_SHAPE_IMAGE_AMOUNT_MULTI +} RoomShapeImageAmountType; + +typedef struct { + /* 0x0 */ RoomShapeBase base; + /* 0x1 */ u8 amountType; // uses `RoomShapeImageAmountType` + /* 0x4 */ RoomShapeDListsEntry* entry; +} RoomShapeImageBase; // size = 0x8 + +typedef struct { + /* 0x00 */ RoomShapeImageBase base; + /* 0x08 */ void* source; + /* 0x0C */ u32 unk_0C; + /* 0x10 */ void* tlut; + /* 0x14 */ u16 width; + /* 0x16 */ u16 height; + /* 0x18 */ u8 fmt; + /* 0x19 */ u8 siz; + /* 0x1A */ u16 tlutMode; + /* 0x1C */ u16 tlutCount; +} RoomShapeImageSingle; // size = 0x20 + +typedef struct { + /* 0x00 */ u16 unk_00; + /* 0x02 */ u8 bgCamIndex; // the bg cam index this entry is for + /* 0x04 */ void* source; + /* 0x08 */ u32 unk_0C; + /* 0x0C */ void* tlut; + /* 0x10 */ u16 width; + /* 0x12 */ u16 height; + /* 0x14 */ u8 fmt; + /* 0x15 */ u8 siz; + /* 0x16 */ u16 tlutMode; + /* 0x18 */ u16 tlutCount; +} RoomShapeImageMultiBgEntry; // size = 0x1C + +typedef struct { + /* 0x0 */ RoomShapeImageBase base; + /* 0x8 */ u8 numBackgrounds; + /* 0xC */ RoomShapeImageMultiBgEntry* backgrounds; +} RoomShapeImageMulti; // size = 0x10 + +typedef struct { + /* 0x0 */ Vec3s boundsSphereCenter; + /* 0x6 */ s16 boundsSphereRadius; + /* 0x8 */ Gfx* opa; + /* 0xC */ Gfx* xlu; +} RoomShapeCullableEntry; // size = 0x10 + +typedef struct { + /* 0x0 */ RoomShapeBase base; + /* 0x1 */ u8 numEntries; + /* 0x4 */ RoomShapeCullableEntry* entries; + /* 0x8 */ RoomShapeCullableEntry* entriesEnd; +} RoomShapeCullable; // size = 0xC typedef union { - RoomMeshType0 type0; - RoomMeshType1 type1; - RoomMeshType2 type2; -} RoomMesh; // size = 0xC + RoomShapeBase base; + RoomShapeNormal normal; + union { + RoomShapeImageBase base; + RoomShapeImageSingle single; + RoomShapeImageMulti multi; + } image; + RoomShapeCullable cullable; +} RoomShape; // "Ground Shape" + +// TODO: update ZAPD +#define SCENE_CMD_MESH SCENE_CMD_ROOM_SHAPE + +// TODO: Check which ones don't exist +typedef enum { + /* 0 */ ROOM_BEHAVIOR_TYPE1_0, + /* 1 */ ROOM_BEHAVIOR_TYPE1_1, + /* 2 */ ROOM_BEHAVIOR_TYPE1_2, + /* 3 */ ROOM_BEHAVIOR_TYPE1_3, // unused + /* 4 */ ROOM_BEHAVIOR_TYPE1_4, + /* 5 */ ROOM_BEHAVIOR_TYPE1_5 +} RoomBehaviorType1; + +typedef enum { + /* 0 */ ROOM_BEHAVIOR_TYPE2_0, + /* 1 */ ROOM_BEHAVIOR_TYPE2_1, + /* 2 */ ROOM_BEHAVIOR_TYPE2_2, + /* 3 */ ROOM_BEHAVIOR_TYPE2_HOT, + /* 4 */ ROOM_BEHAVIOR_TYPE2_4, + /* 5 */ ROOM_BEHAVIOR_TYPE2_5, + /* 6 */ ROOM_BEHAVIOR_TYPE2_6 +} RoomBehaviorType2; typedef struct { /* 0x00 */ s8 num; /* 0x01 */ u8 unk1; - /* 0x02 */ u8 unk2; // 3: Room is hot - /* 0x03 */ u8 unk3; + /* 0x02 */ u8 behaviorType2; + /* 0x03 */ u8 behaviorType1; /* 0x04 */ s8 echo; /* 0x05 */ u8 lensMode; /* 0x06 */ u8 enablePosLights; /* 0x07 */ UNK_TYPE1 pad7[0x1]; - /* 0x08 */ RoomMesh* mesh; + /* 0x08 */ RoomShape* roomShape; /* 0x0C */ void* segment; /* 0x10 */ UNK_TYPE1 pad10[0x4]; } Room; // size = 0x14 @@ -274,7 +351,7 @@ typedef struct { /* 0x14 */ Room prevRoom; /* 0x28 */ void* roomMemPages[2]; // In a scene with transitions, roomMemory is split between two pages that toggle each transition. This is one continuous range, as the second page allocates from the end /* 0x30 */ u8 activeMemPage; // 0 - First page in memory, 1 - Second page - /* 0x31 */ s8 unk31; + /* 0x31 */ s8 status; /* 0x32 */ UNK_TYPE1 pad32[0x2]; /* 0x34 */ void* activeRoomVram; /* 0x38 */ DmaRequest dmaRequest; @@ -286,15 +363,17 @@ typedef struct { /* 0x7A */ UNK_TYPE2 unk7A[3]; } RoomContext; // size = 0x80 -typedef struct { +typedef void(*RoomDrawHandler)(struct PlayState* play, Room* room, u32 flags); + +typedef struct TransitionActorEntry { struct { s8 room; // Room to switch to s8 bgCamIndex; // How the camera reacts during the transition. -2 for spiral staircase. -1 for generic door. 0+ will index scene CamData } /* 0x0 */ sides[2]; // 0 = front, 1 = back - /* 0x4 */ s16 id; + /* 0x4 */ s16 id; /* 0x6 */ Vec3s pos; - /* 0xC */ s16 rotY; - /* 0xE */ u16 params; + /* 0xC */ s16 rotY; + /* 0xE */ u16 params; } TransitionActorEntry; // size = 0x10 typedef struct { @@ -391,77 +470,6 @@ typedef struct { } ObjectContext; // size = 0x958 typedef struct { - /* 0x0 */ u8 headerType; -} MeshHeaderBase; // size = 0x1 - -typedef struct { - /* 0x0 */ MeshHeaderBase base; - /* 0x1 */ u8 numEntries; - /* 0x4 */ u32 dListStart; - /* 0x8 */ u32 dListEnd; -} MeshHeader0; // size = 0xC - -typedef struct { - /* 0x0 */ u32 opaqueDList; - /* 0x4 */ u32 translucentDList; -} MeshEntry0; // size = 0x8 - -typedef struct { - /* 0x0 */ MeshHeaderBase base; - /* 0x1 */ u8 format; - /* 0x4 */ u32 entryRecord; -} MeshHeader1Base; // size = 0x8 - -typedef struct { - /* 0x00 */ MeshHeader1Base base; - /* 0x08 */ u32 imagePtr; - /* 0x0C */ u32 unknown; - /* 0x10 */ u32 unknown2; - /* 0x14 */ u16 bgWidth; - /* 0x16 */ u16 bgHeight; - /* 0x18 */ u8 imageFormat; - /* 0x19 */ u8 imageSize; - /* 0x1A */ u16 imagePal; - /* 0x1C */ u16 imageFlip; -} MeshHeader1Single; // size = 0x20 - -typedef struct { - /* 0x0 */ MeshHeader1Base base; - /* 0x8 */ u8 bgCnt; - /* 0xC */ u32 bgRecordPtr; -} MeshHeader1Multi; // size = 0x10 - -typedef struct { - /* 0x00 */ u16 unknown; - /* 0x02 */ s8 bgID; - /* 0x04 */ u32 imagePtr; - /* 0x08 */ u32 unknown2; - /* 0x0C */ u32 unknown3; - /* 0x10 */ u16 bgWidth; - /* 0x12 */ u16 bgHeight; - /* 0x14 */ u8 imageFmt; - /* 0x15 */ u8 imageSize; - /* 0x16 */ u16 imagePal; - /* 0x18 */ u16 imageFlip; -} BackgroundRecord; // size = 0x1C - -typedef struct { - /* 0x0 */ s16 playerXMax; - /* 0x2 */ s16 playerZMax; - /* 0x4 */ s16 playerXMin; - /* 0x6 */ s16 playerZMin; - /* 0x8 */ u32 opaqueDList; - /* 0xC */ u32 translucentDList; -} MeshEntry2; // size = 0x10 - -typedef struct { - /* 0x0 */ MeshHeaderBase base; - /* 0x1 */ u8 numEntries; - /* 0x4 */ u32 dListStart; - /* 0x8 */ u32 dListEnd; -} MeshHeader2; // size = 0xC - -typedef struct { /* 0x0 */ u8 count; // number of points in the path /* 0x1 */ u8 unk1; /* 0x2 */ s16 unk2; @@ -846,7 +854,7 @@ typedef enum { /* 0x07 */ SCENE_CMD_ID_SPECIAL_FILES, /* 0x08 */ SCENE_CMD_ID_ROOM_BEHAVIOR, /* 0x09 */ SCENE_CMD_ID_UNK_09, - /* 0x0A */ SCENE_CMD_ID_MESH, + /* 0x0A */ SCENE_CMD_ID_ROOM_SHAPE, /* 0x0B */ SCENE_CMD_ID_OBJECT_LIST, /* 0x0C */ SCENE_CMD_ID_LIGHT_LIST, /* 0x0D */ SCENE_CMD_ID_PATH_LIST, @@ -905,8 +913,8 @@ typedef enum { #define SCENE_CMD_UNK_09() \ { SCENE_CMD_ID_UNK_09, 0, CMD_W(0) } -#define SCENE_CMD_MESH(meshHeader) \ - { SCENE_CMD_ID_MESH, 0, CMD_PTR(meshHeader) } +#define SCENE_CMD_ROOM_SHAPE(roomShape) \ + { SCENE_CMD_ID_ROOM_SHAPE, 0, CMD_PTR(roomShape) } #define SCENE_CMD_OBJECT_LIST(numObjects, objectList) \ { SCENE_CMD_ID_OBJECT_LIST, numObjects, CMD_PTR(objectList) } |
