1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-14 13:30:47 +00:00
oot/include/z64scene.h

454 lines
12 KiB
C
Raw Normal View History

#ifndef Z64SCENE_H
#define Z64SCENE_H
2020-03-17 04:31:30 +00:00
#include "command_macros_base.h"
2020-03-22 21:50:11 +00:00
typedef struct {
/* 0x00 */ u32 vromStart;
/* 0x04 */ u32 vromEnd;
} RomFile; // size = 0x8
typedef struct {
/* 0x00 */ RomFile sceneFile;
/* 0x08 */ RomFile titleFile;
2020-03-17 04:31:30 +00:00
/* 0x10 */ u8 unk_10;
/* 0x11 */ u8 config;
/* 0x12 */ u8 unk_12;
/* 0x13 */ u8 unk_13;
} SceneTableEntry; // size = 0x14
2020-03-17 04:31:30 +00:00
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 data2;
} SCmdBase;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdSpawnList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdActorList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdUnused02;
2020-03-17 04:31:30 +00:00
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdColHeader;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdRoomList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ char pad[2];
/* 0x04 */ u8 x;
/* 0x05 */ u8 y;
/* 0x06 */ u8 z;
2020-03-17 04:31:30 +00:00
/* 0x07 */ u8 unk_07;
} SCmdWindSettings;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdEntranceList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 cUpElfMsgNum;
2020-03-17 04:31:30 +00:00
/* 0x04 */ u32 keepObjectId;
} SCmdSpecialFiles;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 gpFlag1;
/* 0x04 */ u32 gpFlag2;
} SCmdRoomBehavior;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdMesh;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdObjectList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdLightList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdPathList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdTransiActorList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdLightSettingList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ char pad[2];
/* 0x04 */ u8 hour;
/* 0x05 */ u8 min;
/* 0x06 */ u8 unk_06;
} SCmdTimeSettings;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ char pad[2];
/* 0x04 */ u8 skyboxId;
/* 0x05 */ u8 unk_05;
/* 0x06 */ u8 unk_06;
} SCmdSkyboxSettings;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ char pad[2];
/* 0x04 */ u8 unk_04;
/* 0x05 */ u8 unk_05;
} SCmdSkyboxDisables;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 data2;
} SCmdEndMarker;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdExitList;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 specId;
2020-03-17 04:31:30 +00:00
/* 0x02 */ char pad[4];
/* 0x06 */ u8 natureAmbienceId;
/* 0x07 */ u8 seqId;
2020-03-17 04:31:30 +00:00
} SCmdSoundSettings;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ char pad[5];
/* 0x07 */ u8 echo;
} SCmdEchoSettings;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdCutsceneData;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
2020-03-17 04:31:30 +00:00
} SCmdAltHeaders;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 code;
/* 0x01 */ u8 cameraMovement;
/* 0x04 */ u32 area;
} SCmdMiscSettings;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
u8 headerType;
} MeshHeaderBase;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
MeshHeaderBase base;
u8 numEntries;
Extract the assets from most of the overlays (#985) * remove fake match * Fire and Ice arrows * Light arrows * Ganon otyuka and end title * Oceff_Spot * Add missing Vtx to arrows * Update assets/xml/overlays/ovl_Arrow_Ice.xml Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> * Update assets/xml/overlays/ovl_Arrow_Light.xml Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> * Fix fire arrows * Update assets/xml/overlays/ovl_Arrow_Fire.xml Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update ovl_Bg_Ganon_Otyuka.xml * Update src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Change a comment and rename a DList * rename DList * Jya cobra * shd and elf_msg * elf msg 2 * En Bili * Remove extern form ice piece * remove some externs * en holl * kanban * make * sda * ssh and some cleanup * replace undefined sym in en_kusa * st * oceff wipe 3 * oceff wipe * oceff spot * oceff spot * oceff wipe 4 * Update VTXDIS * update VTXDIS again * fix sun song * magic dark * magic wind and oceff wipe 2 * magic fire and oceff storm * Update src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update assets/xml/overlays/ovl_En_Sth.xml.ignore Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update assets/xml/overlays/ovl_Elf_Msg.xml Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update assets/xml/overlays/ovl_Magic_Wind.xml Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * fix emptyDL, run formatter on en_ssh * run formatter * Update format.sh * update to VTXDIS * small change * textureDL -> materialDL, vtxDL -> modelDL * upper CASE * setupDL -> materialDL * GeometryDL->ModelDL and VisualDL->MaterialDL * revert rcp.c * revert holl.c * another revert in rcp.c * some u32 DL -> Gfx* DL * the rest of dragorns comments * git subrepo pull --force tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "3e9ed72e2" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "3e9ed72e2" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * start updating overlays with static * en sth OK * git subrepo pull --force tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "d0cd6b397" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "d0cd6b397" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix names of the overlays * remove segment 128, add gameplay keep to global config file * Fix end title and remove hex mode from VTXdis.c * add code assets Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2021-11-09 01:51:45 +00:00
Gfx* dListStart;
Gfx* dListEnd;
2020-03-17 04:31:30 +00:00
} MeshHeader0;
2020-03-22 21:50:11 +00:00
typedef struct {
Gfx* opaqueDList;
Gfx* translucentDList;
2020-03-17 04:31:30 +00:00
} MeshEntry0;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
MeshHeaderBase base;
u8 format;
u32 entryRecord;
} MeshHeader1Base;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
MeshHeader1Base base;
void* imagePtr; // 0x08
2020-03-22 21:50:11 +00:00
u32 unknown; // 0x0C
u32 unknown2; // 0x10
u16 bgWidth; // 0x14
u16 bgHeight; // 0x16
u8 imageFormat; // 0x18
u8 imageSize; // 0x19
u16 imagePal; // 0x1A
u16 imageFlip; // 0x1C
2020-03-17 04:31:30 +00:00
} MeshHeader1Single;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
MeshHeader1Base base;
u8 bgCnt;
void* bgRecordPtr;
2020-03-17 04:31:30 +00:00
} MeshHeader1Multi;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
u16 unknown; // 0x00
2020-03-22 21:50:11 +00:00
s8 bgID; // 0x02
void* imagePtr; // 0x04
2020-03-22 21:50:11 +00:00
u32 unknown2; // 0x08
u32 unknown3; // 0x0C
u16 bgWidth; // 0x10
u16 bgHeight; // 0x12
u8 imageFmt; // 0x14
u8 imageSize; // 0x15
u16 imagePal; // 0x16
u16 imageFlip; // 0x18
2020-03-17 04:31:30 +00:00
} BackgroundRecord;
2020-03-22 21:50:11 +00:00
typedef struct {
s16 playerXMax, playerZMax;
s16 playerXMin, playerZMin;
Gfx* opaqueDList;
Gfx* translucentDList;
2020-03-17 04:31:30 +00:00
} MeshEntry2;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
MeshHeaderBase base;
u8 numEntries;
Extract the assets from most of the overlays (#985) * remove fake match * Fire and Ice arrows * Light arrows * Ganon otyuka and end title * Oceff_Spot * Add missing Vtx to arrows * Update assets/xml/overlays/ovl_Arrow_Ice.xml Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> * Update assets/xml/overlays/ovl_Arrow_Light.xml Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> * Fix fire arrows * Update assets/xml/overlays/ovl_Arrow_Fire.xml Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update ovl_Bg_Ganon_Otyuka.xml * Update src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Change a comment and rename a DList * rename DList * Jya cobra * shd and elf_msg * elf msg 2 * En Bili * Remove extern form ice piece * remove some externs * en holl * kanban * make * sda * ssh and some cleanup * replace undefined sym in en_kusa * st * oceff wipe 3 * oceff wipe * oceff spot * oceff spot * oceff wipe 4 * Update VTXDIS * update VTXDIS again * fix sun song * magic dark * magic wind and oceff wipe 2 * magic fire and oceff storm * Update src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update assets/xml/overlays/ovl_En_Sth.xml.ignore Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update assets/xml/overlays/ovl_Elf_Msg.xml Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update assets/xml/overlays/ovl_Magic_Wind.xml Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * fix emptyDL, run formatter on en_ssh * run formatter * Update format.sh * update to VTXDIS * small change * textureDL -> materialDL, vtxDL -> modelDL * upper CASE * setupDL -> materialDL * GeometryDL->ModelDL and VisualDL->MaterialDL * revert rcp.c * revert holl.c * another revert in rcp.c * some u32 DL -> Gfx* DL * the rest of dragorns comments * git subrepo pull --force tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "3e9ed72e2" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "3e9ed72e2" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * start updating overlays with static * en sth OK * git subrepo pull --force tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "d0cd6b397" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "d0cd6b397" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix names of the overlays * remove segment 128, add gameplay keep to global config file * Fix end title and remove hex mode from VTXdis.c * add code assets Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2021-11-09 01:51:45 +00:00
Gfx* dListStart;
Gfx* dListEnd;
2020-03-17 04:31:30 +00:00
} MeshHeader2;
2020-03-22 21:50:11 +00:00
typedef struct {
/* 0x00 */ u8 ambientColor[3];
/* 0x03 */ s8 diffuseDir1[3];
/* 0x06 */ u8 diffuseColor1[3];
/* 0x09 */ s8 diffuseDir2[3];
/* 0x0C */ u8 diffuseColor2[3];
/* 0x0F */ u8 fogColor[3];
/* 0x12 */ u16 fogNear;
/* 0x14 */ u16 fogFar;
} LightSettings; // size = 0x16
2020-03-17 04:31:30 +00:00
2020-03-22 21:50:11 +00:00
typedef struct {
/* 0x00 */ u8 count; // number of points in the path
/* 0x04 */ Vec3s* points; // Segment Address to the array of points
2020-03-20 12:04:35 +00:00
} Path; // size = 0x8
2020-03-22 21:50:11 +00:00
typedef union {
2020-03-17 04:31:30 +00:00
SCmdBase base;
SCmdSpawnList spawnList;
SCmdActorList actorList;
SCmdUnused02 unused02;
2020-03-17 04:31:30 +00:00
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;
} SceneCmd; // size = 0x8
#define DEFINE_SCENE(_0, _1, enum, _3, _4, _5) enum,
2020-03-22 21:50:11 +00:00
typedef enum {
#include "tables/scene_table.h"
/* 0x6E */ SCENE_ID_MAX
2020-03-17 04:31:30 +00:00
} SceneID;
// this define exists to preserve shiftability for an unused scene that is
// listed in the entrance table
#define SCENE_UNUSED_6E SCENE_ID_MAX
#undef DEFINE_SCENE
// Entrance Index Enum
#define DEFINE_ENTRANCE(enum, _1, _2, _3, _4, _5, _6) enum,
typedef enum {
#include "tables/entrance_table.h"
/* 0x614 */ ENTR_MAX
} EntranceIndex;
#define ENTR_LOAD_OPENING -1
typedef enum {
/* 0x7FF9 */ ENTR_RETURN_YOUSEI_IZUMI_YOKO = 0x7FF9, // Great Fairy Fountain (spells)
/* 0x7FFA */ ENTR_RETURN_SYATEKIJYOU, // Shooting gallery
/* 0x7FFB */ ENTR_RETURN_2, // unused
/* 0x7FFC */ ENTR_RETURN_SHOP1, // Bazaar
/* 0x7FFD */ ENTR_RETURN_4, // unused
/* 0x7FFE */ ENTR_RETURN_DAIYOUSEI_IZUMI, // Great Fairy Fountain (magic, double magic, double defense)
/* 0x7FFF */ ENTR_RETURN_GROTTO // Grottos and normal Fairy Fountain
} ReturnEntranceIndex;
#undef DEFINE_ENTRANCE
// Scene commands
typedef enum {
/* 0x00 */ SCENE_CMD_ID_SPAWN_LIST,
/* 0x01 */ SCENE_CMD_ID_ACTOR_LIST,
/* 0x02 */ SCENE_CMD_ID_UNUSED_02,
/* 0x03 */ SCENE_CMD_ID_COL_HEADER,
/* 0x04 */ SCENE_CMD_ID_ROOM_LIST,
/* 0x05 */ SCENE_CMD_ID_WIND_SETTINGS,
/* 0x06 */ SCENE_CMD_ID_ENTRANCE_LIST,
/* 0x07 */ SCENE_CMD_ID_SPECIAL_FILES,
/* 0x08 */ SCENE_CMD_ID_ROOM_BEHAVIOR,
/* 0x09 */ SCENE_CMD_ID_UNK_09,
/* 0x0A */ SCENE_CMD_ID_MESH,
/* 0x0B */ SCENE_CMD_ID_OBJECT_LIST,
/* 0x0C */ SCENE_CMD_ID_LIGHT_LIST,
/* 0x0D */ SCENE_CMD_ID_PATH_LIST,
/* 0x0E */ SCENE_CMD_ID_TRANSI_ACTOR_LIST,
/* 0x0F */ SCENE_CMD_ID_ENV_LIGHT_SETTINGS,
/* 0x10 */ SCENE_CMD_ID_TIME_SETTINGS,
/* 0x11 */ SCENE_CMD_ID_SKYBOX_SETTINGS,
/* 0x12 */ SCENE_CMD_ID_SKYBOX_DISABLES,
/* 0x13 */ SCENE_CMD_ID_EXIT_LIST,
/* 0x14 */ SCENE_CMD_ID_END,
/* 0x15 */ SCENE_CMD_ID_SOUND_SETTINGS,
/* 0x16 */ SCENE_CMD_ID_ECHO_SETTINGS,
/* 0x17 */ SCENE_CMD_ID_CUTSCENE_DATA,
/* 0x18 */ SCENE_CMD_ID_ALTERNATE_HEADER_LIST,
/* 0x19 */ SCENE_CMD_ID_MISC_SETTINGS,
/* 0x20 */ SCENE_CMD_ID_MAX
} SceneCommandTypeID;
#define SCENE_CMD_SPAWN_LIST(numSpawns, spawnList) \
{ SCENE_CMD_ID_SPAWN_LIST, numSpawns, CMD_PTR(spawnList) }
#define SCENE_CMD_ACTOR_LIST(numActors, actorList) \
{ SCENE_CMD_ID_ACTOR_LIST, numActors, CMD_PTR(actorList) }
#define SCENE_CMD_UNUSED_02(unk, data) \
{ SCENE_CMD_ID_UNUSED_02, unk, CMD_PTR(data) }
#define SCENE_CMD_COL_HEADER(colHeader) \
{ SCENE_CMD_ID_COL_HEADER, 0, CMD_PTR(colHeader) }
#define SCENE_CMD_ROOM_LIST(numRooms, roomList) \
{ SCENE_CMD_ID_ROOM_LIST, numRooms, CMD_PTR(roomList) }
#define SCENE_CMD_WIND_SETTINGS(xDir, yDir, zDir, strength) \
{ SCENE_CMD_ID_WIND_SETTINGS, 0, CMD_BBBB(xDir, yDir, zDir, strength) }
#define SCENE_CMD_ENTRANCE_LIST(entranceList) \
{ SCENE_CMD_ID_ENTRANCE_LIST, 0, CMD_PTR(entranceList) }
#define SCENE_CMD_SPECIAL_FILES(elfMessageFile, keepObjectId) \
{ SCENE_CMD_ID_SPECIAL_FILES, elfMessageFile, CMD_W(keepObjectId) }
#define SCENE_CMD_ROOM_BEHAVIOR(curRoomUnk3, curRoomUnk2, showInvisActors, disableWarpSongs) \
{ SCENE_CMD_ID_ROOM_BEHAVIOR, curRoomUnk3, \
curRoomUnk2 | _SHIFTL(showInvisActors, 8, 1) | _SHIFTL(disableWarpSongs, 10, 1) }
#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_OBJECT_LIST(numObjects, objectList) \
{ SCENE_CMD_ID_OBJECT_LIST, numObjects, CMD_PTR(objectList) }
#define SCENE_CMD_LIGHT_LIST(numLights, lightList) \
{ SCENE_CMD_ID_POS_LIGHT_LIST, numLights, CMD_PTR(lightList) }
#define SCENE_CMD_PATH_LIST(pathList) \
{ SCENE_CMD_ID_PATH_LIST, 0, CMD_PTR(pathList) }
#define SCENE_CMD_TRANSITION_ACTOR_LIST(numActors, list) \
{ SCENE_CMD_ID_TRANSI_ACTOR_LIST, numActors, CMD_PTR(list) }
#define SCENE_CMD_ENV_LIGHT_SETTINGS(numLightSettings, lightSettingsList) \
{ SCENE_CMD_ID_ENV_LIGHT_SETTINGS, numLightSettings, CMD_PTR(lightSettingsList) }
#define SCENE_CMD_TIME_SETTINGS(hour, min, speed) \
{ SCENE_CMD_ID_TIME_SETTINGS, 0, CMD_BBBB(hour, min, speed, 0) }
#define SCENE_CMD_SKYBOX_SETTINGS(skyboxId, weather, isIndoors) \
{ SCENE_CMD_ID_SKYBOX_SETTINGS, 0, CMD_BBBB(skyboxId, weather, isIndoors, 0) }
#define SCENE_CMD_SKYBOX_DISABLES(disableSky, disableSunMoon) \
{ SCENE_CMD_ID_SKYBOX_DISABLES, 0, CMD_BBBB(disableSky, disableSunMoon, 0, 0) }
#define SCENE_CMD_EXIT_LIST(exitList) \
{ SCENE_CMD_ID_EXIT_LIST, 0, CMD_PTR(exitList) }
#define SCENE_CMD_END() \
{ SCENE_CMD_ID_END, 0, CMD_W(0) }
#define SCENE_CMD_SOUND_SETTINGS(specId, natureAmbienceId, seqId) \
{ SCENE_CMD_ID_SOUND_SETTINGS, specId, CMD_BBBB(0, 0, natureAmbienceId, seqId) }
#define SCENE_CMD_ECHO_SETTINGS(echo) \
{ SCENE_CMD_ID_ECHO_SETTINGS, 0, CMD_BBBB(0, 0, 0, echo) }
#define SCENE_CMD_CUTSCENE_DATA(cutsceneData) \
{ SCENE_CMD_ID_CUTSCENE_DATA, 0, CMD_PTR(cutsceneData) }
#define SCENE_CMD_ALTERNATE_HEADER_LIST(alternateHeaderList) \
{ SCENE_CMD_ID_ALTERNATE_HEADER_LIST, 0, CMD_PTR(alternateHeaderList) }
#define SCENE_CMD_MISC_SETTINGS(camMode, worldMapLocation) \
{ SCENE_CMD_ID_MISC_SETTINGS, camMode, CMD_W(worldMapLocation) }
2020-03-17 04:31:30 +00:00
#endif