mirror of
https://github.com/zeldaret/mm.git
synced 2026-07-08 13:26:14 -04:00
z_scene functions now use the same structs as OOT (#3)
* z_scene now uses OOT structs where available Additionally commits a decompiled z_actor function. * Fixes audio_setBGM function call in Scene_HeaderCommand15 * Update structs.h Co-authored-by: rozlette <uberpanzermensch@gmail.com> Co-authored-by: Egor Ananyin <ananinegor@gmail.com>
This commit is contained in:
+2
-2
@@ -1937,8 +1937,8 @@ void func_80105294(void); // func_80105294
|
||||
void func_80105318(void); // func_80105318
|
||||
void func_80105328(void); // func_80105328
|
||||
void func_8010534C(void); // func_8010534C
|
||||
void func_8010549C(GlobalContext* ctxt, u32 segmentAddress); // func_8010549C
|
||||
void func_8010565C(GlobalContext* ctxt, u8 num, u32 segmentAddress); // func_8010565C
|
||||
void func_8010549C(GlobalContext* ctxt, void* segmentAddress); // func_8010549C
|
||||
void func_8010565C(GlobalContext* ctxt, u8 num, void* segmentAddress); // func_8010565C
|
||||
void func_80105818(GlobalContext* ctxt, unsigned int uParm2, TransitionActorInit* puParm3); // func_80105818
|
||||
void func_80105A40(void); // func_80105A40
|
||||
void func_80105B34(void); // func_80105B34
|
||||
|
||||
+174
-186
@@ -628,215 +628,200 @@ typedef struct {
|
||||
} RoomMeshType2Params; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdActorList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ u32 data2;
|
||||
} SCmdBase;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdAltHeaders; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdSpawnList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 data2;
|
||||
} SCmdBase; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdActorList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdColHeader; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdCsCameraList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdCsCameraList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdColHeader;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdCutsceneActorList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdRoomList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdCutsceneData; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x04 */ s8 west;
|
||||
/* 0x05 */ s8 vertical;
|
||||
/* 0x06 */ s8 south;
|
||||
/* 0x07 */ u8 clothIntensity;
|
||||
} SCmdWindSettings;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x5];
|
||||
/* 0x7 */ u8 echo;
|
||||
} SCmdEchoSettings; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdEntranceList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 data2;
|
||||
} SCmdEndMarker; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 cUpElfMsgNum;
|
||||
/* 0x04 */ u32 keepObjectId;
|
||||
} SCmdSpecialFiles;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdEntranceList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 gpFlag1;
|
||||
/* 0x04 */ u32 gpFlag2;
|
||||
} SCmdRoomBehavior;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdExitList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdMesh;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdLightList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdObjectList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdLightSettingList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdLightList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdMesh; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdPathList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdMinimapChests; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdTransiActorList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ UNK_TYPE1 pad1[0x3];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdMinimapSettings; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdLightSettingList;
|
||||
// Cloudmodding has this as Environment Settings
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 cameraMovement;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 area;
|
||||
} SCmdMiscSettings; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x04 */ u8 hour;
|
||||
/* 0x05 */ u8 min;
|
||||
/* 0x06 */ u8 unk6;
|
||||
} SCmdTimeSettings;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdObjectList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x04 */ u8 skyboxId;
|
||||
/* 0x05 */ u8 unk5;
|
||||
/* 0x06 */ u8 unk6;
|
||||
} SCmdSkyboxSettings;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdPathList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x04 */ u8 unk4;
|
||||
/* 0x05 */ u8 unk5;
|
||||
} SCmdSkyboxDisables;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 gpFlag1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 gpFlag2;
|
||||
} SCmdRoomBehavior; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdExitList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdRoomList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ u32 data2;
|
||||
} SCmdEndMarker;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u8 unk4;
|
||||
/* 0x5 */ u8 unk5;
|
||||
} SCmdSkyboxDisables; // size = 0x6
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 bgmId;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[4];
|
||||
/* 0x06 */ u8 nighttimeSFX;
|
||||
/* 0x07 */ u8 musicSeq;
|
||||
} SCmdSoundSettings;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u8 skyboxId;
|
||||
/* 0x5 */ u8 unk5;
|
||||
/* 0x6 */ u8 unk6;
|
||||
} SCmdSkyboxSettings; // size = 0x7
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[5];
|
||||
/* 0x07 */ u8 echo;
|
||||
} SCmdEchoSettings;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 bgmId;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x4];
|
||||
/* 0x6 */ u8 nighttimeSFX;
|
||||
/* 0x7 */ u8 musicSeq;
|
||||
} SCmdSoundSettings; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdCutsceneData;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdSpawnList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdAltHeaders;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 cUpElfMsgNum;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 keepObjectId;
|
||||
} SCmdSpecialFiles; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ u32 data2;
|
||||
} SCmdWorldMapVisited;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u8 hour;
|
||||
/* 0x5 */ u8 min;
|
||||
/* 0x6 */ u8 unk6;
|
||||
} SCmdTimeSettings; // size = 0x7
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdTextureAnimations;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ u32 segment;
|
||||
} SCmdTransiActorList; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdCutsceneActorList;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[0x2];
|
||||
/* 0x4 */ s8 unk4;
|
||||
/* 0x5 */ s8 unk5;
|
||||
/* 0x6 */ s8 unk6;
|
||||
/* 0x7 */ u8 unk7;
|
||||
} SCmdWindSettings; // size = 0x8
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdMinimapSettings;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdMinimapChests;
|
||||
|
||||
// Extra information in the save context that is not saved
|
||||
typedef struct {
|
||||
@@ -889,35 +874,38 @@ typedef struct {
|
||||
} SaveContext_struct2; // size = 0x22
|
||||
|
||||
typedef union {
|
||||
SCmdBase base;
|
||||
SCmdSpawnList spawnList;
|
||||
SCmdActorList actorList;
|
||||
SCmdCsCameraList csCameraList;
|
||||
SCmdRoomList roomList;
|
||||
SCmdEntranceList entranceList;
|
||||
SCmdObjectList objectList;
|
||||
SCmdLightList lightList;
|
||||
SCmdPathList pathList;
|
||||
SCmdTransiActorList transiActorList;
|
||||
SCmdLightSettingList lightSettingList;
|
||||
SCmdExitList exitList;
|
||||
SCmdColHeader colHeader;
|
||||
SCmdMesh mesh;
|
||||
SCmdSpecialFiles specialFiles;
|
||||
SCmdCutsceneData cutsceneData;
|
||||
SCmdRoomBehavior roomBehavior;
|
||||
SCmdWindSettings windSettings;
|
||||
SCmdTimeSettings timeSettings;
|
||||
SCmdSkyboxSettings skyboxSettings;
|
||||
SCmdSkyboxDisables skyboxDisables;
|
||||
SCmdEndMarker endMarker;
|
||||
SCmdSoundSettings soundSettings;
|
||||
SCmdEchoSettings echoSettings;
|
||||
SCmdMiscSettings miscSettings;
|
||||
SCmdAltHeaders altHeaders;
|
||||
SCmdCutsceneActorList cutsceneActorList;
|
||||
SCmdMinimapSettings minimapSettings;
|
||||
SCmdMinimapChests minimapChests;
|
||||
/* Command: N/A */ SCmdBase base;
|
||||
/* Command: 0x00 */ SCmdSpawnList spawnList;
|
||||
/* Command: 0x01 */ SCmdActorList actorList;
|
||||
/* Command: 0x02 */ SCmdCsCameraList csCameraList;
|
||||
/* Command: 0x03 */ SCmdColHeader colHeader;
|
||||
/* Command: 0x04 */ SCmdRoomList roomList;
|
||||
/* Command: 0x05 */ SCmdWindSettings windSettings;
|
||||
/* Command: 0x06 */ SCmdEntranceList entranceList;
|
||||
/* Command: 0x07 */ SCmdSpecialFiles specialFiles;
|
||||
/* Command: 0x08 */ SCmdRoomBehavior roomBehavior;
|
||||
/* Command: 0x09 */ // Unused
|
||||
/* Command: 0x0A */ SCmdMesh mesh;
|
||||
/* Command: 0x0B */ SCmdObjectList objectList;
|
||||
/* Command: 0x0C */ SCmdLightList lightList;
|
||||
/* Command: 0x0D */ SCmdPathList pathList;
|
||||
/* Command: 0x0E */ SCmdTransiActorList transiActorList;
|
||||
/* Command: 0x0F */ SCmdLightSettingList lightSettingList;
|
||||
/* Command: 0x10 */ SCmdTimeSettings timeSettings;
|
||||
/* Command: 0x11 */ SCmdSkyboxSettings skyboxSettings;
|
||||
/* Command: 0x12 */ SCmdSkyboxDisables skyboxDisables;
|
||||
/* Command: 0x13 */ SCmdExitList exitList;
|
||||
/* Command: 0x14 */ SCmdEndMarker endMarker;
|
||||
/* Command: 0x15 */ SCmdSoundSettings soundSettings;
|
||||
/* Command: 0x16 */ SCmdEchoSettings echoSettings;
|
||||
/* Command: 0x17 */ SCmdCutsceneData cutsceneData;
|
||||
/* Command: 0x18 */ SCmdAltHeaders altHeaders;
|
||||
/* Command: 0x19 */ SCmdWorldMapVisited worldMapVisited;
|
||||
/* Command: 0x1A */ SCmdTextureAnimations textureAnimations;
|
||||
/* Command: 0x1B */ SCmdCutsceneActorList cutsceneActorList;
|
||||
/* Command: 0x1C */ SCmdMinimapSettings minimapSettings;
|
||||
/* Command: 0x1D */ // Unused
|
||||
/* Command: 0x1E */ SCmdMinimapChests minimapChests;
|
||||
} SceneCmd; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
@@ -1769,12 +1757,12 @@ typedef struct {
|
||||
/* 0xA9 */ UNK_TYPE1 unkA9;
|
||||
/* 0xAA */ UNK_TYPE1 unkAA;
|
||||
/* 0xAB */ UNK_TYPE1 unkAB;
|
||||
/* 0xAC */ s16 unkAC;
|
||||
/* 0xAE */ s16 unkAE;
|
||||
/* 0xB0 */ s16 unkB0;
|
||||
/* 0xAC */ s16 windWest;
|
||||
/* 0xAE */ s16 windVertical;
|
||||
/* 0xB0 */ s16 windSouth;
|
||||
/* 0xB2 */ UNK_TYPE1 unkB2;
|
||||
/* 0xB3 */ UNK_TYPE1 unkB3;
|
||||
/* 0xB4 */ f32 unkB4;
|
||||
/* 0xB4 */ f32 windClothIntensity;
|
||||
/* 0xB8 */ u8 environmentSettingsCount;
|
||||
/* 0xB9 */ UNK_TYPE1 unkB9;
|
||||
/* 0xBA */ UNK_TYPE1 unkBA;
|
||||
|
||||
Reference in New Issue
Block a user