diff --git a/include/structs.h b/include/structs.h index bd2f722878..a235ac81f5 100644 --- a/include/structs.h +++ b/include/structs.h @@ -3127,4 +3127,814 @@ typedef struct { /* 0x14 */ Gfx* monoDl; } VisMono; // size = 0x18 +typedef enum { + /* 0x000 */ ACTOR_PLAYER, + /* 0x001 */ ACTOR_EN_TEST, + /* 0x002 */ ACTOR_EN_GIRLA, + /* 0x003 */ ACTOR_EN_PART, + /* 0x004 */ ACTOR_EN_LIGHT, + /* 0x005 */ ACTOR_EN_DOOR, + /* 0x006 */ ACTOR_EN_BOX, + /* 0x007 */ ACTOR_EN_PAMETFROG, + /* 0x008 */ ACTOR_EN_OKUTA, + /* 0x009 */ ACTOR_EN_BOM, + /* 0x00A */ ACTOR_EN_WALLMAS, + /* 0x00B */ ACTOR_EN_DODONGO, + /* 0x00C */ ACTOR_EN_FIREFLY, + /* 0x00D */ ACTOR_EN_HORSE, + /* 0x00E */ ACTOR_EN_ITEM00, + /* 0x00F */ ACTOR_EN_ARROW, + /* 0x010 */ ACTOR_EN_ELF, + /* 0x011 */ ACTOR_EN_NIW, + /* 0x012 */ ACTOR_EN_TITE, + /* 0x013 */ ACTOR_UNSET_13, + /* 0x014 */ ACTOR_EN_PEEHAT, + /* 0x015 */ ACTOR_EN_BUTTE, + /* 0x016 */ ACTOR_EN_INSECT, + /* 0x017 */ ACTOR_EN_FISH, + /* 0x018 */ ACTOR_EN_HOLL, + /* 0x019 */ ACTOR_EN_DINOFOS, + /* 0x01A */ ACTOR_EN_HATA, + /* 0x01B */ ACTOR_EN_ZL1, + /* 0x01C */ ACTOR_EN_VIEWER, + /* 0x01D */ ACTOR_EN_BUBBLE, + /* 0x01E */ ACTOR_DOOR_SHUTTER, + /* 0x01F */ ACTOR_UNSET_1F, + /* 0x020 */ ACTOR_EN_BOOM, + /* 0x021 */ ACTOR_EN_TORCH2, + /* 0x022 */ ACTOR_EN_MINIFROG, + /* 0x023 */ ACTOR_UNSET_23, + /* 0x024 */ ACTOR_EN_ST, + /* 0x025 */ ACTOR_UNSET_25, + /* 0x026 */ ACTOR_EN_A_OBJ, + /* 0x027 */ ACTOR_OBJ_WTURN, + /* 0x028 */ ACTOR_EN_RIVER_SOUND, + /* 0x029 */ ACTOR_UNSET_29, + /* 0x02A */ ACTOR_EN_OSSAN, + /* 0x02B */ ACTOR_UNSET_2B, + /* 0x02C */ ACTOR_UNSET_2C, + /* 0x02D */ ACTOR_EN_FAMOS, + /* 0x02E */ ACTOR_UNSET_2E, + /* 0x02F */ ACTOR_EN_BOMBF, + /* 0x030 */ ACTOR_UNSET_30, + /* 0x031 */ ACTOR_UNSET_31, + /* 0x032 */ ACTOR_EN_AM, + /* 0x033 */ ACTOR_EN_DEKUBABA, + /* 0x034 */ ACTOR_EN_M_FIRE1, + /* 0x035 */ ACTOR_EN_M_THUNDER, + /* 0x036 */ ACTOR_BG_BREAKWALL, + /* 0x037 */ ACTOR_UNSET_37, + /* 0x038 */ ACTOR_DOOR_WARP1, + /* 0x039 */ ACTOR_OBJ_SYOKUDAI, + /* 0x03A */ ACTOR_ITEM_B_HEART, + /* 0x03B */ ACTOR_EN_DEKUNUTS, + /* 0x03C */ ACTOR_EN_BBFALL, + /* 0x03D */ ACTOR_ARMS_HOOK, + /* 0x03E */ ACTOR_EN_BB, + /* 0x03F */ ACTOR_BG_KEIKOKU_SPR, + /* 0x040 */ ACTOR_UNSET_40, + /* 0x041 */ ACTOR_EN_WOOD02, + /* 0x042 */ ACTOR_UNSET_42, + /* 0x043 */ ACTOR_EN_DEATH, + /* 0x044 */ ACTOR_EN_MINIDEATH, + /* 0x045 */ ACTOR_UNSET_45, + /* 0x046 */ ACTOR_UNSET_46, + /* 0x047 */ ACTOR_EN_VM, + /* 0x048 */ ACTOR_DEMO_EFFECT, + /* 0x049 */ ACTOR_DEMO_KANKYO, + /* 0x04A */ ACTOR_EN_FLOORMAS, + /* 0x04B */ ACTOR_UNSET_4B, + /* 0x04C */ ACTOR_EN_RD, + /* 0x04D */ ACTOR_BG_F40_FLIFT, + /* 0x04E */ ACTOR_UNSET_4E, + /* 0x04F */ ACTOR_OBJ_MURE, + /* 0x050 */ ACTOR_EN_SW, + /* 0x051 */ ACTOR_OBJECT_KANKYO, + /* 0x052 */ ACTOR_UNSET_52, + /* 0x053 */ ACTOR_UNSET_53, + /* 0x054 */ ACTOR_EN_HORSE_LINK_CHILD, + /* 0x055 */ ACTOR_DOOR_ANA, + /* 0x056 */ ACTOR_UNSET_56, + /* 0x057 */ ACTOR_UNSET_57, + /* 0x058 */ ACTOR_UNSET_58, + /* 0x059 */ ACTOR_UNSET_59, + /* 0x05A */ ACTOR_UNSET_5A, + /* 0x05B */ ACTOR_EN_ENCOUNT1, + /* 0x05C */ ACTOR_DEMO_TRE_LGT, + /* 0x05D */ ACTOR_UNSET_5D, + /* 0x05E */ ACTOR_UNSET_5E, + /* 0x05F */ ACTOR_EN_ENCOUNT2, + /* 0x060 */ ACTOR_EN_FIRE_ROCK, + /* 0x061 */ ACTOR_BG_CTOWER_ROT, + /* 0x062 */ ACTOR_MIR_RAY, + /* 0x063 */ ACTOR_UNSET_63, + /* 0x064 */ ACTOR_EN_SB, + /* 0x065 */ ACTOR_EN_BIGSLIME, + /* 0x066 */ ACTOR_EN_KAREBABA, + /* 0x067 */ ACTOR_EN_IN, + /* 0x068 */ ACTOR_UNSET_68, + /* 0x069 */ ACTOR_EN_RU, + /* 0x06A */ ACTOR_EN_BOM_CHU, + /* 0x06B */ ACTOR_EN_HORSE_GAME_CHECK, + /* 0x06C */ ACTOR_EN_RR, + /* 0x06D */ ACTOR_UNSET_6D, + /* 0x06E */ ACTOR_UNSET_6E, + /* 0x06F */ ACTOR_UNSET_6F, + /* 0x070 */ ACTOR_UNSET_70, + /* 0x071 */ ACTOR_UNSET_71, + /* 0x072 */ ACTOR_UNSET_72, + /* 0x073 */ ACTOR_EN_FR, + /* 0x074 */ ACTOR_UNSET_74, + /* 0x075 */ ACTOR_UNSET_75, + /* 0x076 */ ACTOR_UNSET_76, + /* 0x077 */ ACTOR_UNSET_77, + /* 0x078 */ ACTOR_UNSET_78, + /* 0x079 */ ACTOR_UNSET_79, + /* 0x07A */ ACTOR_OBJ_OSHIHIKI, + /* 0x07B */ ACTOR_EFF_DUST, + /* 0x07C */ ACTOR_BG_UMAJUMP, + /* 0x07D */ ACTOR_ARROW_FIRE, + /* 0x07E */ ACTOR_ARROW_ICE, + /* 0x07F */ ACTOR_ARROW_LIGHT, + /* 0x080 */ ACTOR_ITEM_ETCETERA, + /* 0x081 */ ACTOR_OBJ_KIBAKO, + /* 0x082 */ ACTOR_OBJ_TSUBO, + /* 0x083 */ ACTOR_UNSET_83, + /* 0x084 */ ACTOR_EN_IK, + /* 0x085 */ ACTOR_UNSET_85, + /* 0x086 */ ACTOR_UNSET_86, + /* 0x087 */ ACTOR_UNSET_87, + /* 0x088 */ ACTOR_UNSET_88, + /* 0x089 */ ACTOR_DEMO_SHD, + /* 0x08A */ ACTOR_EN_DNS, + /* 0x08B */ ACTOR_ELF_MSG, + /* 0x08C */ ACTOR_EN_HONOTRAP, + /* 0x08D */ ACTOR_EN_TUBO_TRAP, + /* 0x08E */ ACTOR_OBJ_ICE_POLY, + /* 0x08F */ ACTOR_EN_FZ, + /* 0x090 */ ACTOR_EN_KUSA, + /* 0x091 */ ACTOR_OBJ_BEAN, + /* 0x092 */ ACTOR_OBJ_BOMBIWA, + /* 0x093 */ ACTOR_OBJ_SWITCH, + /* 0x094 */ ACTOR_UNSET_94, + /* 0x095 */ ACTOR_OBJ_LIFT, + /* 0x096 */ ACTOR_OBJ_HSBLOCK, + /* 0x097 */ ACTOR_EN_OKARINA_TAG, + /* 0x098 */ ACTOR_UNSET_98, + /* 0x099 */ ACTOR_EN_GOROIWA, + /* 0x09A */ ACTOR_UNSET_9A, + /* 0x09B */ ACTOR_UNSET_9B, + /* 0x09C */ ACTOR_EN_DAIKU, + /* 0x09D */ ACTOR_EN_NWC, + /* 0x09E */ ACTOR_ITEM_INBOX, + /* 0x09F */ ACTOR_EN_GE1, + /* 0x0A0 */ ACTOR_OBJ_BLOCKSTOP, + /* 0x0A1 */ ACTOR_EN_SDA, + /* 0x0A2 */ ACTOR_EN_CLEAR_TAG, + /* 0x0A3 */ ACTOR_UNSET_A3, + /* 0x0A4 */ ACTOR_EN_GM, + /* 0x0A5 */ ACTOR_EN_MS, + /* 0x0A6 */ ACTOR_EN_HS, + /* 0x0A7 */ ACTOR_BG_INGATE, + /* 0x0A8 */ ACTOR_EN_KANBAN, + /* 0x0A9 */ ACTOR_UNSET_A9, + /* 0x0AA */ ACTOR_EN_ATTACK_NIW, + /* 0x0AB */ ACTOR_UNSET_AB, + /* 0x0AC */ ACTOR_UNSET_AC, + /* 0x0AD */ ACTOR_UNSET_AD, + /* 0x0AE */ ACTOR_EN_MK, + /* 0x0AF */ ACTOR_EN_OWL, + /* 0x0B0 */ ACTOR_EN_ISHI, + /* 0x0B1 */ ACTOR_OBJ_HANA, + /* 0x0B2 */ ACTOR_OBJ_LIGHTSWITCH, + /* 0x0B3 */ ACTOR_OBJ_MURE2, + /* 0x0B4 */ ACTOR_UNSET_B4, + /* 0x0B5 */ ACTOR_EN_FU, + /* 0x0B6 */ ACTOR_UNSET_B6, + /* 0x0B7 */ ACTOR_UNSET_B7, + /* 0x0B8 */ ACTOR_EN_STREAM, + /* 0x0B9 */ ACTOR_EN_MM, + /* 0x0BA */ ACTOR_UNSET_BA, + /* 0x0BB */ ACTOR_UNSET_BB, + /* 0x0BC */ ACTOR_EN_WEATHER_TAG, + /* 0x0BD */ ACTOR_EN_ANI, + /* 0x0BE */ ACTOR_UNSET_BE, + /* 0x0BF */ ACTOR_EN_JS, + /* 0x0C0 */ ACTOR_UNSET_C0, + /* 0x0C1 */ ACTOR_UNSET_C1, + /* 0x0C2 */ ACTOR_UNSET_C2, + /* 0x0C3 */ ACTOR_UNSET_C3, + /* 0x0C4 */ ACTOR_EN_OKARINA_EFFECT, + /* 0x0C5 */ ACTOR_EN_MAG, + /* 0x0C6 */ ACTOR_ELF_MSG2, + /* 0x0C7 */ ACTOR_BG_F40_SWLIFT, + /* 0x0C8 */ ACTOR_UNSET_C8, + /* 0x0C9 */ ACTOR_UNSET_C9, + /* 0x0CA */ ACTOR_EN_KAKASI, + /* 0x0CB */ ACTOR_OBJ_MAKEOSHIHIKI, + /* 0x0CC */ ACTOR_OCEFF_SPOT, + /* 0x0CD */ ACTOR_UNSET_CD, + /* 0x0CE */ ACTOR_EN_TORCH, + /* 0x0CF */ ACTOR_UNSET_CF, + /* 0x0D0 */ ACTOR_SHOT_SUN, + /* 0x0D1 */ ACTOR_UNSET_D1, + /* 0x0D2 */ ACTOR_UNSET_D2, + /* 0x0D3 */ ACTOR_OBJ_ROOMTIMER, + /* 0x0D4 */ ACTOR_EN_SSH, + /* 0x0D5 */ ACTOR_UNSET_D5, + /* 0x0D6 */ ACTOR_OCEFF_WIPE, + /* 0x0D7 */ ACTOR_OCEFF_STORM, + /* 0x0D8 */ ACTOR_OBJ_DEMO, + /* 0x0D9 */ ACTOR_EN_MINISLIME, + /* 0x0DA */ ACTOR_EN_NUTSBALL, + /* 0x0DB */ ACTOR_UNSET_DB, + /* 0x0DC */ ACTOR_UNSET_DC, + /* 0x0DD */ ACTOR_UNSET_DD, + /* 0x0DE */ ACTOR_UNSET_DE, + /* 0x0DF */ ACTOR_OCEFF_WIPE2, + /* 0x0E0 */ ACTOR_OCEFF_WIPE3, + /* 0x0E1 */ ACTOR_UNSET_E1, + /* 0x0E2 */ ACTOR_EN_DG, + /* 0x0E3 */ ACTOR_EN_SI, + /* 0x0E4 */ ACTOR_OBJ_COMB, + /* 0x0E5 */ ACTOR_OBJ_KIBAKO2, + /* 0x0E6 */ ACTOR_UNSET_E6, + /* 0x0E7 */ ACTOR_EN_HS2, + /* 0x0E8 */ ACTOR_OBJ_MURE3, + /* 0x0E9 */ ACTOR_EN_TG, + /* 0x0EA */ ACTOR_UNSET_EA, + /* 0x0EB */ ACTOR_UNSET_EB, + /* 0x0EC */ ACTOR_EN_WF, + /* 0x0ED */ ACTOR_EN_SKB, + /* 0x0EE */ ACTOR_UNSET_EE, + /* 0x0EF */ ACTOR_EN_GS, + /* 0x0F0 */ ACTOR_OBJ_SOUND, + /* 0x0F1 */ ACTOR_EN_CROW, + /* 0x0F2 */ ACTOR_UNSET_F2, + /* 0x0F3 */ ACTOR_EN_COW, + /* 0x0F4 */ ACTOR_UNSET_F4, + /* 0x0F5 */ ACTOR_UNSET_F5, + /* 0x0F6 */ ACTOR_OCEFF_WIPE4, + /* 0x0F7 */ ACTOR_UNSET_F7, + /* 0x0F8 */ ACTOR_EN_ZO, + /* 0x0F9 */ ACTOR_OBJ_MAKEKINSUTA, + /* 0x0FA */ ACTOR_EN_GE3, + /* 0x0FB */ ACTOR_UNSET_FB, + /* 0x0FC */ ACTOR_OBJ_HAMISHI, + /* 0x0FD */ ACTOR_EN_ZL4, + /* 0x0FE */ ACTOR_EN_MM2, + /* 0x0FF */ ACTOR_UNSET_FF, + /* 0x100 */ ACTOR_DOOR_SPIRAL, + /* 0x101 */ ACTOR_UNSET_101, + /* 0x102 */ ACTOR_OBJ_PZLBLOCK, + /* 0x103 */ ACTOR_OBJ_TOGE, + /* 0x104 */ ACTOR_UNSET_104, + /* 0x105 */ ACTOR_OBJ_ARMOS, + /* 0x106 */ ACTOR_OBJ_BOYO, + /* 0x107 */ ACTOR_UNSET_107, + /* 0x108 */ ACTOR_UNSET_108, + /* 0x109 */ ACTOR_EN_GRASSHOPPER, + /* 0x10A */ ACTOR_UNSET_10A, + /* 0x10B */ ACTOR_OBJ_GRASS, + /* 0x10C */ ACTOR_OBJ_GRASS_CARRY, + /* 0x10D */ ACTOR_OBJ_GRASS_UNIT, + /* 0x10E */ ACTOR_UNSET_10E, + /* 0x10F */ ACTOR_UNSET_10F, + /* 0x110 */ ACTOR_BG_FIRE_WALL, + /* 0x111 */ ACTOR_EN_BU, + /* 0x112 */ ACTOR_EN_ENCOUNT3, + /* 0x113 */ ACTOR_EN_JSO, + /* 0x114 */ ACTOR_OBJ_CHIKUWA, + /* 0x115 */ ACTOR_EN_KNIGHT, + /* 0x116 */ ACTOR_EN_WARP_TAG, + /* 0x117 */ ACTOR_EN_AOB_01, + /* 0x118 */ ACTOR_EN_BOJ_01, + /* 0x119 */ ACTOR_EN_BOJ_02, + /* 0x11A */ ACTOR_EN_BOJ_03, + /* 0x11B */ ACTOR_EN_ENCOUNT4, + /* 0x11C */ ACTOR_EN_BOM_BOWL_MAN, + /* 0x11D */ ACTOR_EN_SYATEKI_MAN, + /* 0x11E */ ACTOR_UNSET_11E, + /* 0x11F */ ACTOR_BG_ICICLE, + /* 0x120 */ ACTOR_EN_SYATEKI_CROW, + /* 0x121 */ ACTOR_EN_BOJ_04, + /* 0x122 */ ACTOR_EN_CNE_01, + /* 0x123 */ ACTOR_EN_BBA_01, + /* 0x124 */ ACTOR_EN_BJI_01, + /* 0x125 */ ACTOR_BG_SPDWEB, + /* 0x126 */ ACTOR_UNSET_126, + /* 0x127 */ ACTOR_UNSET_127, + /* 0x128 */ ACTOR_EN_MT_TAG, + /* 0x129 */ ACTOR_BOSS_01, + /* 0x12A */ ACTOR_BOSS_02, + /* 0x12B */ ACTOR_BOSS_03, + /* 0x12C */ ACTOR_BOSS_04, + /* 0x12D */ ACTOR_BOSS_05, + /* 0x12E */ ACTOR_BOSS_06, + /* 0x12F */ ACTOR_BOSS_07, + /* 0x130 */ ACTOR_BG_DY_YOSEIZO, + /* 0x131 */ ACTOR_UNSET_131, + /* 0x132 */ ACTOR_EN_BOJ_05, + /* 0x133 */ ACTOR_UNSET_133, + /* 0x134 */ ACTOR_UNSET_134, + /* 0x135 */ ACTOR_EN_SOB1, + /* 0x136 */ ACTOR_UNSET_136, + /* 0x137 */ ACTOR_UNSET_137, + /* 0x138 */ ACTOR_EN_GO, + /* 0x139 */ ACTOR_UNSET_139, + /* 0x13A */ ACTOR_EN_RAF, + /* 0x13B */ ACTOR_OBJ_FUNEN, + /* 0x13C */ ACTOR_OBJ_RAILLIFT, + /* 0x13D */ ACTOR_BG_NUMA_HANA, + /* 0x13E */ ACTOR_OBJ_FLOWERPOT, + /* 0x13F */ ACTOR_OBJ_SPINYROLL, + /* 0x140 */ ACTOR_DM_HINA, + /* 0x141 */ ACTOR_EN_SYATEKI_WF, + /* 0x142 */ ACTOR_OBJ_SKATEBLOCK, + /* 0x143 */ ACTOR_OBJ_ICEBLOCK, + /* 0x144 */ ACTOR_EN_BIGPAMET, + /* 0x145 */ ACTOR_EN_SYATEKI_DEKUNUTS, + /* 0x146 */ ACTOR_ELF_MSG3, + /* 0x147 */ ACTOR_EN_FG, + /* 0x148 */ ACTOR_DM_RAVINE, + /* 0x149 */ ACTOR_DM_SA, + /* 0x14A */ ACTOR_EN_SLIME, + /* 0x14B */ ACTOR_EN_PR, + /* 0x14C */ ACTOR_OBJ_TOUDAI, + /* 0x14D */ ACTOR_OBJ_ENTOTU, + /* 0x14E */ ACTOR_OBJ_BELL, + /* 0x14F */ ACTOR_EN_SYATEKI_OKUTA, + /* 0x150 */ ACTOR_UNSET_150, + /* 0x151 */ ACTOR_OBJ_SHUTTER, + /* 0x152 */ ACTOR_DM_ZL, + /* 0x153 */ ACTOR_EN_ELFGRP, + /* 0x154 */ ACTOR_DM_TSG, + /* 0x155 */ ACTOR_EN_BAGUO, + /* 0x156 */ ACTOR_OBJ_VSPINYROLL, + /* 0x157 */ ACTOR_OBJ_SMORK, + /* 0x158 */ ACTOR_EN_TEST2, + /* 0x159 */ ACTOR_EN_TEST3, + /* 0x15A */ ACTOR_EN_TEST4, + /* 0x15B */ ACTOR_EN_BAT, + /* 0x15C */ ACTOR_EN_SEKIHI, + /* 0x15D */ ACTOR_EN_WIZ, + /* 0x15E */ ACTOR_EN_WIZ_BROCK, + /* 0x15F */ ACTOR_EN_WIZ_FIRE, + /* 0x160 */ ACTOR_EFF_CHANGE, + /* 0x161 */ ACTOR_DM_STATUE, + /* 0x162 */ ACTOR_OBJ_FIRESHIELD, + /* 0x163 */ ACTOR_BG_LADDER, + /* 0x164 */ ACTOR_EN_MKK, + /* 0x165 */ ACTOR_DEMO_GETITEM, + /* 0x166 */ ACTOR_UNSET_166, + /* 0x167 */ ACTOR_EN_DNB, + /* 0x168 */ ACTOR_EN_DNH, + /* 0x169 */ ACTOR_EN_DNK, + /* 0x16A */ ACTOR_EN_DNQ, + /* 0x16B */ ACTOR_UNSET_16B, + /* 0x16C */ ACTOR_BG_KEIKOKU_SAKU, + /* 0x16D */ ACTOR_OBJ_HUGEBOMBIWA, + /* 0x16E */ ACTOR_EN_FIREFLY2, + /* 0x16F */ ACTOR_EN_RAT, + /* 0x170 */ ACTOR_EN_WATER_EFFECT, + /* 0x171 */ ACTOR_EN_KUSA2, + /* 0x172 */ ACTOR_BG_SPOUT_FIRE, + /* 0x173 */ ACTOR_UNSET_173, + /* 0x174 */ ACTOR_BG_DBLUE_MOVEBG, + /* 0x175 */ ACTOR_EN_DY_EXTRA, + /* 0x176 */ ACTOR_EN_BAL, + /* 0x177 */ ACTOR_EN_GINKO_MAN, + /* 0x178 */ ACTOR_EN_WARP_UZU, + /* 0x179 */ ACTOR_OBJ_DRIFTICE, + /* 0x17A */ ACTOR_EN_LOOK_NUTS, + /* 0x17B */ ACTOR_EN_MUSHI2, + /* 0x17C */ ACTOR_EN_FALL, + /* 0x17D */ ACTOR_EN_MM3, + /* 0x17E */ ACTOR_BG_CRACE_MOVEBG, + /* 0x17F */ ACTOR_EN_DNO, + /* 0x180 */ ACTOR_EN_PR2, + /* 0x181 */ ACTOR_EN_PRZ, + /* 0x182 */ ACTOR_EN_JSO2, + /* 0x183 */ ACTOR_OBJ_ETCETERA, + /* 0x184 */ ACTOR_EN_EGOL, + /* 0x185 */ ACTOR_OBJ_MINE, + /* 0x186 */ ACTOR_OBJ_PURIFY, + /* 0x187 */ ACTOR_EN_TRU, + /* 0x188 */ ACTOR_EN_TRT, + /* 0x189 */ ACTOR_UNSET_189, + /* 0x18A */ ACTOR_UNSET_18A, + /* 0x18B */ ACTOR_EN_TEST5, + /* 0x18C */ ACTOR_EN_TEST6, + /* 0x18D */ ACTOR_EN_AZ, + /* 0x18E */ ACTOR_EN_ESTONE, + /* 0x18F */ ACTOR_BG_HAKUGIN_POST, + /* 0x190 */ ACTOR_DM_OPSTAGE, + /* 0x191 */ ACTOR_DM_STK, + /* 0x192 */ ACTOR_DM_CHAR00, + /* 0x193 */ ACTOR_DM_CHAR01, + /* 0x194 */ ACTOR_DM_CHAR02, + /* 0x195 */ ACTOR_DM_CHAR03, + /* 0x196 */ ACTOR_DM_CHAR04, + /* 0x197 */ ACTOR_DM_CHAR05, + /* 0x198 */ ACTOR_DM_CHAR06, + /* 0x199 */ ACTOR_DM_CHAR07, + /* 0x19A */ ACTOR_DM_CHAR08, + /* 0x19B */ ACTOR_DM_CHAR09, + /* 0x19C */ ACTOR_OBJ_TOKEIDAI, + /* 0x19D */ ACTOR_UNSET_19D, + /* 0x19E */ ACTOR_EN_MNK, + /* 0x19F */ ACTOR_EN_EGBLOCK, + /* 0x1A0 */ ACTOR_EN_GUARD_NUTS, + /* 0x1A1 */ ACTOR_BG_HAKUGIN_BOMBWALL, + /* 0x1A2 */ ACTOR_OBJ_TOKEI_TOBIRA, + /* 0x1A3 */ ACTOR_BG_HAKUGIN_ELVPOLE, + /* 0x1A4 */ ACTOR_EN_MA4, + /* 0x1A5 */ ACTOR_EN_TWIG, + /* 0x1A6 */ ACTOR_EN_PO_FUSEN, + /* 0x1A7 */ ACTOR_EN_DOOR_ETC, + /* 0x1A8 */ ACTOR_EN_BIGOKUTA, + /* 0x1A9 */ ACTOR_BG_ICEFLOE, + /* 0x1AA */ ACTOR_OBJ_OCARINALIFT, + /* 0x1AB */ ACTOR_EN_TIME_TAG, + /* 0x1AC */ ACTOR_BG_OPEN_SHUTTER, + /* 0x1AD */ ACTOR_BG_OPEN_SPOT, + /* 0x1AE */ ACTOR_BG_FU_KAITEN, + /* 0x1AF */ ACTOR_OBJ_AQUA, + /* 0x1B0 */ ACTOR_EN_ELFORG, + /* 0x1B1 */ ACTOR_EN_ELFBUB, + /* 0x1B2 */ ACTOR_UNSET_1B2, + /* 0x1B3 */ ACTOR_EN_FU_MATO, + /* 0x1B4 */ ACTOR_EN_FU_KAGO, + /* 0x1B5 */ ACTOR_EN_OSN, + /* 0x1B6 */ ACTOR_BG_CTOWER_GEAR, + /* 0x1B7 */ ACTOR_EN_TRT2, + /* 0x1B8 */ ACTOR_OBJ_TOKEI_STEP, + /* 0x1B9 */ ACTOR_BG_LOTUS, + /* 0x1BA */ ACTOR_EN_KAME, + /* 0x1BB */ ACTOR_OBJ_TAKARAYA_WALL, + /* 0x1BC */ ACTOR_BG_FU_MIZU, + /* 0x1BD */ ACTOR_EN_SELLNUTS, + /* 0x1BE */ ACTOR_BG_DKJAIL_IVY, + /* 0x1BF */ ACTOR_UNSET_1BF, + /* 0x1C0 */ ACTOR_OBJ_VISIBLOCK, + /* 0x1C1 */ ACTOR_EN_TAKARAYA, + /* 0x1C2 */ ACTOR_EN_TSN, + /* 0x1C3 */ ACTOR_EN_DS2N, + /* 0x1C4 */ ACTOR_EN_FSN, + /* 0x1C5 */ ACTOR_EN_SHN, + /* 0x1C6 */ ACTOR_UNSET_1C6, + /* 0x1C7 */ ACTOR_EN_STOP_HEISHI, + /* 0x1C8 */ ACTOR_OBJ_BIGICICLE, + /* 0x1C9 */ ACTOR_EN_LIFT_NUTS, + /* 0x1CA */ ACTOR_EN_TK, + /* 0x1CB */ ACTOR_UNSET_1CB, + /* 0x1CC */ ACTOR_BG_MARKET_STEP, + /* 0x1CD */ ACTOR_OBJ_LUPYGAMELIFT, + /* 0x1CE */ ACTOR_EN_TEST7, + /* 0x1CF */ ACTOR_OBJ_LIGHTBLOCK, + /* 0x1D0 */ ACTOR_MIR_RAY2, + /* 0x1D1 */ ACTOR_EN_WDHAND, + /* 0x1D2 */ ACTOR_EN_GAMELUPY, + /* 0x1D3 */ ACTOR_BG_DANPEI_MOVEBG, + /* 0x1D4 */ ACTOR_EN_SNOWWD, + /* 0x1D5 */ ACTOR_EN_PM, + /* 0x1D6 */ ACTOR_EN_GAKUFU, + /* 0x1D7 */ ACTOR_ELF_MSG4, + /* 0x1D8 */ ACTOR_ELF_MSG5, + /* 0x1D9 */ ACTOR_EN_COL_MAN, + /* 0x1DA */ ACTOR_EN_TALK_GIBUD, + /* 0x1DB */ ACTOR_EN_GIANT, + /* 0x1DC */ ACTOR_OBJ_SNOWBALL, + /* 0x1DD */ ACTOR_BOSS_HAKUGIN, + /* 0x1DE */ ACTOR_EN_GB2, + /* 0x1DF */ ACTOR_EN_ONPUMAN, + /* 0x1E0 */ ACTOR_BG_TOBIRA01, + /* 0x1E1 */ ACTOR_EN_TAG_OBJ, + /* 0x1E2 */ ACTOR_OBJ_DHOUSE, + /* 0x1E3 */ ACTOR_OBJ_HAKAISI, + /* 0x1E4 */ ACTOR_BG_HAKUGIN_SWITCH, + /* 0x1E5 */ ACTOR_UNSET_1E5, + /* 0x1E6 */ ACTOR_EN_SNOWMAN, + /* 0x1E7 */ ACTOR_TG_SW, + /* 0x1E8 */ ACTOR_EN_PO_SISTERS, + /* 0x1E9 */ ACTOR_EN_PP, + /* 0x1EA */ ACTOR_EN_HAKUROCK, + /* 0x1EB */ ACTOR_EN_HANABI, + /* 0x1EC */ ACTOR_OBJ_DOWSING, + /* 0x1ED */ ACTOR_OBJ_WIND, + /* 0x1EE */ ACTOR_EN_RACEDOG, + /* 0x1EF */ ACTOR_EN_KENDO_JS, + /* 0x1F0 */ ACTOR_BG_BOTIHASIRA, + /* 0x1F1 */ ACTOR_EN_FISH2, + /* 0x1F2 */ ACTOR_EN_PST, + /* 0x1F3 */ ACTOR_EN_POH, + /* 0x1F4 */ ACTOR_OBJ_SPIDERTENT, + /* 0x1F5 */ ACTOR_EN_ZORAEGG, + /* 0x1F6 */ ACTOR_EN_KBT, + /* 0x1F7 */ ACTOR_EN_GG, + /* 0x1F8 */ ACTOR_EN_MARUTA, + /* 0x1F9 */ ACTOR_OBJ_SNOWBALL2, + /* 0x1FA */ ACTOR_EN_GG2, + /* 0x1FB */ ACTOR_OBJ_GHAKA, + /* 0x1FC */ ACTOR_EN_DNP, + /* 0x1FD */ ACTOR_EN_DAI, + /* 0x1FE */ ACTOR_BG_GORON_OYU, + /* 0x1FF */ ACTOR_EN_KGY, + /* 0x200 */ ACTOR_EN_INVADEPOH, + /* 0x201 */ ACTOR_EN_GK, + /* 0x202 */ ACTOR_EN_AN, + /* 0x203 */ ACTOR_UNSET_203, + /* 0x204 */ ACTOR_EN_BEE, + /* 0x205 */ ACTOR_EN_OT, + /* 0x206 */ ACTOR_EN_DRAGON, + /* 0x207 */ ACTOR_OBJ_DORA, + /* 0x208 */ ACTOR_EN_BIGPO, + /* 0x209 */ ACTOR_OBJ_KENDO_KANBAN, + /* 0x20A */ ACTOR_OBJ_HARIKO, + /* 0x20B */ ACTOR_EN_STH, + /* 0x20C */ ACTOR_BG_SINKAI_KABE, + /* 0x20D */ ACTOR_BG_HAKA_CURTAIN, + /* 0x20E */ ACTOR_BG_KIN2_BOMBWALL, + /* 0x20F */ ACTOR_BG_KIN2_FENCE, + /* 0x210 */ ACTOR_BG_KIN2_PICTURE, + /* 0x211 */ ACTOR_BG_KIN2_SHELF, + /* 0x212 */ ACTOR_EN_RAIL_SKB, + /* 0x213 */ ACTOR_EN_JG, + /* 0x214 */ ACTOR_EN_TRU_MT, + /* 0x215 */ ACTOR_OBJ_UM, + /* 0x216 */ ACTOR_EN_NEO_REEBA, + /* 0x217 */ ACTOR_BG_MBAR_CHAIR, + /* 0x218 */ ACTOR_BG_IKANA_BLOCK, + /* 0x219 */ ACTOR_BG_IKANA_MIRROR, + /* 0x21A */ ACTOR_BG_IKANA_ROTARYROOM, + /* 0x21B */ ACTOR_BG_DBLUE_BALANCE, + /* 0x21C */ ACTOR_BG_DBLUE_WATERFALL, + /* 0x21D */ ACTOR_EN_KAIZOKU, + /* 0x21E */ ACTOR_EN_GE2, + /* 0x21F */ ACTOR_EN_MA_YTS, + /* 0x220 */ ACTOR_EN_MA_YTO, + /* 0x221 */ ACTOR_OBJ_TOKEI_TURRET, + /* 0x222 */ ACTOR_BG_DBLUE_ELEVATOR, + /* 0x223 */ ACTOR_OBJ_WARPSTONE, + /* 0x224 */ ACTOR_EN_ZOG, + /* 0x225 */ ACTOR_OBJ_ROTLIFT, + /* 0x226 */ ACTOR_OBJ_JG_GAKKI, + /* 0x227 */ ACTOR_BG_INIBS_MOVEBG, + /* 0x228 */ ACTOR_EN_ZOT, + /* 0x229 */ ACTOR_OBJ_TREE, + /* 0x22A */ ACTOR_OBJ_Y2LIFT, + /* 0x22B */ ACTOR_OBJ_Y2SHUTTER, + /* 0x22C */ ACTOR_OBJ_BOAT, + /* 0x22D */ ACTOR_OBJ_TARU, + /* 0x22E */ ACTOR_OBJ_HUNSUI, + /* 0x22F */ ACTOR_EN_JC_MATO, + /* 0x230 */ ACTOR_MIR_RAY3, + /* 0x231 */ ACTOR_EN_ZOB, + /* 0x232 */ ACTOR_ELF_MSG6, + /* 0x233 */ ACTOR_OBJ_NOZOKI, + /* 0x234 */ ACTOR_EN_TOTO, + /* 0x235 */ ACTOR_EN_RAILGIBUD, + /* 0x236 */ ACTOR_EN_BABA, + /* 0x237 */ ACTOR_EN_SUTTARI, + /* 0x238 */ ACTOR_EN_ZOD, + /* 0x239 */ ACTOR_EN_KUJIYA, + /* 0x23A */ ACTOR_EN_GEG, + /* 0x23B */ ACTOR_OBJ_KINOKO, + /* 0x23C */ ACTOR_OBJ_YASI, + /* 0x23D */ ACTOR_EN_TANRON1, + /* 0x23E */ ACTOR_EN_TANRON2, + /* 0x23F */ ACTOR_EN_TANRON3, + /* 0x240 */ ACTOR_OBJ_CHAN, + /* 0x241 */ ACTOR_EN_ZOS, + /* 0x242 */ ACTOR_EN_S_GORO, + /* 0x243 */ ACTOR_EN_NB, + /* 0x244 */ ACTOR_EN_JA, + /* 0x245 */ ACTOR_BG_F40_BLOCK, + /* 0x246 */ ACTOR_BG_F40_SWITCH, + /* 0x247 */ ACTOR_EN_PO_COMPOSER, + /* 0x248 */ ACTOR_EN_GURUGURU, + /* 0x249 */ ACTOR_OCEFF_WIPE5, + /* 0x24A */ ACTOR_EN_STONE_HEISHI, + /* 0x24B */ ACTOR_OCEFF_WIPE6, + /* 0x24C */ ACTOR_EN_SCOPENUTS, + /* 0x24D */ ACTOR_EN_SCOPECROW, + /* 0x24E */ ACTOR_OCEFF_WIPE7, + /* 0x24F */ ACTOR_EFF_KAMEJIMA_WAVE, + /* 0x250 */ ACTOR_EN_HG, + /* 0x251 */ ACTOR_EN_HGO, + /* 0x252 */ ACTOR_EN_ZOV, + /* 0x253 */ ACTOR_EN_AH, + /* 0x254 */ ACTOR_OBJ_HGDOOR, + /* 0x255 */ ACTOR_BG_IKANA_BOMBWALL, + /* 0x256 */ ACTOR_BG_IKANA_RAY, + /* 0x257 */ ACTOR_BG_IKANA_SHUTTER, + /* 0x258 */ ACTOR_BG_HAKA_BOMBWALL, + /* 0x259 */ ACTOR_BG_HAKA_TOMB, + /* 0x25A */ ACTOR_EN_SC_RUPPE, + /* 0x25B */ ACTOR_BG_IKNV_DOUKUTU, + /* 0x25C */ ACTOR_BG_IKNV_OBJ, + /* 0x25D */ ACTOR_EN_PAMERA, + /* 0x25E */ ACTOR_OBJ_HSSTUMP, + /* 0x25F */ ACTOR_EN_HIDDEN_NUTS, + /* 0x260 */ ACTOR_EN_ZOW, + /* 0x261 */ ACTOR_EN_TALK, + /* 0x262 */ ACTOR_EN_AL, + /* 0x263 */ ACTOR_EN_TAB, + /* 0x264 */ ACTOR_EN_NIMOTSU, + /* 0x265 */ ACTOR_EN_HIT_TAG, + /* 0x266 */ ACTOR_EN_RUPPECROW, + /* 0x267 */ ACTOR_EN_TANRON4, + /* 0x268 */ ACTOR_EN_TANRON5, + /* 0x269 */ ACTOR_EN_TANRON6, + /* 0x26A */ ACTOR_EN_DAIKU2, + /* 0x26B */ ACTOR_EN_MUTO, + /* 0x26C */ ACTOR_EN_BAISEN, + /* 0x26D */ ACTOR_EN_HEISHI, + /* 0x26E */ ACTOR_EN_DEMO_HEISHI, + /* 0x26F */ ACTOR_EN_DT, + /* 0x270 */ ACTOR_EN_CHA, + /* 0x271 */ ACTOR_OBJ_DINNER, + /* 0x272 */ ACTOR_EFF_LASTDAY, + /* 0x273 */ ACTOR_BG_IKANA_DHARMA, + /* 0x274 */ ACTOR_EN_AKINDONUTS, + /* 0x275 */ ACTOR_EFF_STK, + /* 0x276 */ ACTOR_EN_IG, + /* 0x277 */ ACTOR_EN_RG, + /* 0x278 */ ACTOR_EN_OSK, + /* 0x279 */ ACTOR_EN_STH2, + /* 0x27A */ ACTOR_EN_YB, + /* 0x27B */ ACTOR_EN_RZ, + /* 0x27C */ ACTOR_EN_SCOPECOIN, + /* 0x27D */ ACTOR_EN_BJT, + /* 0x27E */ ACTOR_EN_BOMJIMA, + /* 0x27F */ ACTOR_EN_BOMJIMB, + /* 0x280 */ ACTOR_EN_BOMBERS, + /* 0x281 */ ACTOR_EN_BOMBERS2, + /* 0x282 */ ACTOR_EN_BOMBAL, + /* 0x283 */ ACTOR_OBJ_MOON_STONE, + /* 0x284 */ ACTOR_OBJ_MU_PICT, + /* 0x285 */ ACTOR_BG_IKNINSIDE, + /* 0x286 */ ACTOR_EFF_ZORABAND, + /* 0x287 */ ACTOR_OBJ_KEPN_KOYA, + /* 0x288 */ ACTOR_OBJ_USIYANE, + /* 0x289 */ ACTOR_EN_NNH, + /* 0x28A */ ACTOR_OBJ_KZSAKU, + /* 0x28B */ ACTOR_OBJ_MILK_BIN, + /* 0x28C */ ACTOR_EN_KITAN, + /* 0x28D */ ACTOR_BG_ASTR_BOMBWALL, + /* 0x28E */ ACTOR_BG_IKNIN_SUSCEIL, + /* 0x28F */ ACTOR_EN_BSB, + /* 0x290 */ ACTOR_EN_RECEPGIRL, + /* 0x291 */ ACTOR_EN_THIEFBIRD, + /* 0x292 */ ACTOR_EN_JGAME_TSN, + /* 0x293 */ ACTOR_OBJ_JGAME_LIGHT, + /* 0x294 */ ACTOR_OBJ_YADO, + /* 0x295 */ ACTOR_DEMO_SYOTEN, + /* 0x296 */ ACTOR_DEMO_MOONEND, + /* 0x297 */ ACTOR_BG_LBFSHOT, + /* 0x298 */ ACTOR_BG_LAST_BWALL, + /* 0x299 */ ACTOR_EN_AND, + /* 0x29A */ ACTOR_EN_INVADEPOH_DEMO, + /* 0x29B */ ACTOR_OBJ_DANPEILIFT, + /* 0x29C */ ACTOR_EN_FALL2, + /* 0x29D */ ACTOR_DM_AL, + /* 0x29E */ ACTOR_DM_AN, + /* 0x29F */ ACTOR_DM_AH, + /* 0x2A0 */ ACTOR_DM_NB, + /* 0x2A1 */ ACTOR_EN_DRS, + /* 0x2A2 */ ACTOR_EN_ENDING_HERO, + /* 0x2A3 */ ACTOR_DM_BAL, + /* 0x2A4 */ ACTOR_EN_PAPER, + /* 0x2A5 */ ACTOR_EN_HINT_SKB, + /* 0x2A6 */ ACTOR_DM_TAG, + /* 0x2A7 */ ACTOR_EN_BH, + /* 0x2A8 */ ACTOR_EN_ENDING_HERO2, + /* 0x2A9 */ ACTOR_EN_ENDING_HERO3, + /* 0x2AA */ ACTOR_EN_ENDING_HERO4, + /* 0x2AB */ ACTOR_EN_ENDING_HERO5, + /* 0x2AC */ ACTOR_EN_ENDING_HERO6, + /* 0x2AD */ ACTOR_DM_GM, + /* 0x2AE */ ACTOR_OBJ_SWPRIZE, + /* 0x2AF */ ACTOR_EN_INVISIBLE_RUPPE, + /* 0x2B0 */ ACTOR_OBJ_ENDING, + /* 0x2B1 */ ACTOR_EN_RSN, + /* 0x2B2 */ ACTOR_ID_MAX // originally "ACTOR_DLF_MAX" +} ActorID; + +typedef enum { + /* 0x00 */ SCENE_20SICHITAI2, + /* 0x01 */ SCENE_UNSET_1, + /* 0x02 */ SCENE_UNSET_2, + /* 0x03 */ SCENE_UNSET_3, + /* 0x04 */ SCENE_UNSET_4, + /* 0x05 */ SCENE_UNSET_5, + /* 0x06 */ SCENE_UNSET_6, + /* 0x07 */ SCENE_KAKUSIANA, + /* 0x08 */ SCENE_SPOT00, + /* 0x09 */ SCENE_UNSET_9, + /* 0x0A */ SCENE_WITCH_SHOP, + /* 0x0B */ SCENE_LAST_BS, + /* 0x0C */ SCENE_HAKASHITA, + /* 0x0D */ SCENE_AYASHIISHOP, + /* 0x0E */ SCENE_UNSET_E, + /* 0x0F */ SCENE_UNSET_F, + /* 0x10 */ SCENE_OMOYA, + /* 0x11 */ SCENE_BOWLING, + /* 0x12 */ SCENE_SONCHONOIE, + /* 0x13 */ SCENE_IKANA, + /* 0x14 */ SCENE_KAIZOKU, + /* 0x15 */ SCENE_MILK_BAR, + /* 0x16 */ SCENE_INISIE_N, + /* 0x17 */ SCENE_TAKARAYA, + /* 0x18 */ SCENE_INISIE_R, + /* 0x19 */ SCENE_OKUJOU, + /* 0x1A */ SCENE_OPENINGDAN, + /* 0x1B */ SCENE_MITURIN, + /* 0x1C */ SCENE_13HUBUKINOMITI, + /* 0x1D */ SCENE_CASTLE, + /* 0x1E */ SCENE_DEKUTES, + /* 0x1F */ SCENE_MITURIN_BS, + /* 0x20 */ SCENE_SYATEKI_MIZU, + /* 0x21 */ SCENE_HAKUGIN, + /* 0x22 */ SCENE_ROMANYMAE, + /* 0x23 */ SCENE_PIRATE, + /* 0x24 */ SCENE_SYATEKI_MORI, + /* 0x25 */ SCENE_SINKAI, + /* 0x26 */ SCENE_YOUSEI_IZUMI, + /* 0x27 */ SCENE_KINSTA1, + /* 0x28 */ SCENE_KINDAN2, + /* 0x29 */ SCENE_TENMON_DAI, + /* 0x2A */ SCENE_LAST_DEKU, + /* 0x2B */ SCENE_22DEKUCITY, + /* 0x2C */ SCENE_KAJIYA, + /* 0x2D */ SCENE_00KEIKOKU, + /* 0x2E */ SCENE_POSTHOUSE, + /* 0x2F */ SCENE_LABO, + /* 0x30 */ SCENE_DANPEI2TEST, + /* 0x31 */ SCENE_UNSET_31, + /* 0x32 */ SCENE_16GORON_HOUSE, + /* 0x33 */ SCENE_33ZORACITY, + /* 0x34 */ SCENE_8ITEMSHOP, + /* 0x35 */ SCENE_F01, + /* 0x36 */ SCENE_INISIE_BS, + /* 0x37 */ SCENE_30GYOSON, + /* 0x38 */ SCENE_31MISAKI, + /* 0x39 */ SCENE_TAKARAKUJI, + /* 0x3A */ SCENE_UNSET_3A, + /* 0x3B */ SCENE_TORIDE, + /* 0x3C */ SCENE_FISHERMAN, + /* 0x3D */ SCENE_GORONSHOP, + /* 0x3E */ SCENE_DEKU_KING, + /* 0x3F */ SCENE_LAST_GORON, + /* 0x40 */ SCENE_24KEMONOMITI, + /* 0x41 */ SCENE_F01_B, + /* 0x42 */ SCENE_F01C, + /* 0x43 */ SCENE_BOTI, + /* 0x44 */ SCENE_HAKUGIN_BS, + /* 0x45 */ SCENE_20SICHITAI, + /* 0x46 */ SCENE_21MITURINMAE, + /* 0x47 */ SCENE_LAST_ZORA, + /* 0x48 */ SCENE_11GORONNOSATO2, + /* 0x49 */ SCENE_SEA, + /* 0x4A */ SCENE_35TAKI, + /* 0x4B */ SCENE_REDEAD, + /* 0x4C */ SCENE_BANDROOM, + /* 0x4D */ SCENE_11GORONNOSATO, + /* 0x4E */ SCENE_GORON_HAKA, + /* 0x4F */ SCENE_SECOM, + /* 0x50 */ SCENE_10YUKIYAMANOMURA, + /* 0x51 */ SCENE_TOUGITES, + /* 0x52 */ SCENE_DANPEI, + /* 0x53 */ SCENE_IKANAMAE, + /* 0x54 */ SCENE_DOUJOU, + /* 0x55 */ SCENE_MUSICHOUSE, + /* 0x56 */ SCENE_IKNINSIDE, + /* 0x57 */ SCENE_MAP_SHOP, + /* 0x58 */ SCENE_F40, + /* 0x59 */ SCENE_F41, + /* 0x5A */ SCENE_10YUKIYAMANOMURA2, + /* 0x5B */ SCENE_14YUKIDAMANOMITI, + /* 0x5C */ SCENE_12HAKUGINMAE, + /* 0x5D */ SCENE_17SETUGEN, + /* 0x5E */ SCENE_17SETUGEN2, + /* 0x5F */ SCENE_SEA_BS, + /* 0x60 */ SCENE_RANDOM, + /* 0x61 */ SCENE_YADOYA, + /* 0x62 */ SCENE_KONPEKI_ENT, + /* 0x63 */ SCENE_INSIDETOWER, + /* 0x64 */ SCENE_26SARUNOMORI, + /* 0x65 */ SCENE_LOST_WOODS, + /* 0x66 */ SCENE_LAST_LINK, + /* 0x67 */ SCENE_SOUGEN, + /* 0x68 */ SCENE_BOMYA, + /* 0x69 */ SCENE_KYOJINNOMA, + /* 0x6A */ SCENE_KOEPONARACE, + /* 0x6B */ SCENE_GORONRACE, + /* 0x6C */ SCENE_TOWN, + /* 0x6D */ SCENE_ICHIBA, + /* 0x6E */ SCENE_BACKTOWN, + /* 0x6F */ SCENE_CLOCKTOWER, + /* 0x70 */ SCENE_ALLEY +} SceneID; + #endif diff --git a/include/variables.h b/include/variables.h index 99c349b994..1f2d58dfa7 100644 --- a/include/variables.h +++ b/include/variables.h @@ -438,7 +438,7 @@ extern UNK_TYPE1 D_801AEFA8; // D_801AEFA8 extern UNK_TYPE1 D_801AEFB8; // D_801AEFB8 extern UNK_TYPE1 D_801AEFBC; // D_801AEFBC extern UNK_TYPE1 D_801AEFC0; // D_801AEFC0 -extern ActorOverlay actorOverlayTable[690]; // D_801AEFD0 +extern ActorOverlay actorOverlayTable[ACTOR_ID_MAX]; // D_801AEFD0 extern UNK_TYPE4 D_801B4610; // D_801B4610 extern u32 D_801B4620[32]; // D_801B4620 extern u16 D_801B46A0[16]; // D_801B46A0 diff --git a/src/actors/Bg_Fu_Kaiten/z_bg_fu_kaiten.c b/src/actors/Bg_Fu_Kaiten/z_bg_fu_kaiten.c index 282ee8fa9a..d80e41ebe2 100644 --- a/src/actors/Bg_Fu_Kaiten/z_bg_fu_kaiten.c +++ b/src/actors/Bg_Fu_Kaiten/z_bg_fu_kaiten.c @@ -2,7 +2,7 @@ #include ActorInit bgFuKaitenInitData = { - 0x01AE, + ACTOR_BG_FU_KAITEN, 1, 0, 0x30, diff --git a/src/actors/Bg_Ikana_Ray/z_bg_ikana_ray.c b/src/actors/Bg_Ikana_Ray/z_bg_ikana_ray.c index 5bb9a97bcd..7cba4bd021 100644 --- a/src/actors/Bg_Ikana_Ray/z_bg_ikana_ray.c +++ b/src/actors/Bg_Ikana_Ray/z_bg_ikana_ray.c @@ -2,7 +2,7 @@ #include ActorInit bgIkanaRayInitData = { - 0x0256, + ACTOR_BG_IKANA_RAY, 6, 0, 0, diff --git a/src/code/code_0x800BF9A0.c b/src/code/code_0x800BF9A0.c index 754717be5a..04dfafd389 100644 --- a/src/code/code_0x800BF9A0.c +++ b/src/code/code_0x800BF9A0.c @@ -40,7 +40,7 @@ s32 func_800BFA78(s32 a0, s32 a1) { } void func_800BFAE8(void) { - D_801B4610 = 690; + D_801B4610 = ACTOR_ID_MAX; func_800819F0(&D_801ED930, (u32)func_800BF9A0, 0, 0); func_80081BCC(&D_801ED940, (u32)func_800BFA78, 0); } diff --git a/src/code/z_effect_soft_sprite.c b/src/code/z_effect_soft_sprite.c index 866248de39..42b444a654 100644 --- a/src/code/z_effect_soft_sprite.c +++ b/src/code/z_effect_soft_sprite.c @@ -14,7 +14,7 @@ void EffectSS_Init(GlobalContext* ctxt, s32 numEntries) { EffectSS_ResetEntry(iter); } - for (i = 0, iter2 = particleOverlayTable; i != 0x27; i++) { + for (i = 0, iter2 = particleOverlayTable; i != EFFECT_SS2_TYPE_LAST_LABEL; i++) { (iter2++)->loadedRamAddr = 0; } } @@ -35,7 +35,7 @@ void EffectSS_Clear(GlobalContext* ctxt) { } // Free memory from loaded particle overlays - for (i = 0, iter2 = particleOverlayTable; i != 0x27; i++) { + for (i = 0, iter2 = particleOverlayTable; i != EFFECT_SS2_TYPE_LAST_LABEL; i++) { addr = (void*)iter2->loadedRamAddr; if (addr != NULL) { zelda_free(addr); @@ -63,7 +63,7 @@ void EffectSS_Delete(LoadedParticleEntry* a0) { void EffectSS_ResetEntry(LoadedParticleEntry* particle) { u32 i; - particle->type = 0x27; + particle->type = EFFECT_SS2_TYPE_LAST_LABEL; particle->acceleration.z = 0; particle->acceleration.y = 0; particle->acceleration.x = 0; diff --git a/src/code/z_room.c b/src/code/z_room.c index 390783018b..c7afabc976 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -116,7 +116,7 @@ s32 Room_HandleLoadCallbacks(GlobalContext* ctxt, RoomContext* roomCtxt) { func_80123140(ctxt, (ActorPlayer*)ctxt->actorCtx.actorList[2].first); Actor_SpawnTransitionActors(ctxt, &ctxt->actorCtx); - if (((ctxt->sceneNum != 0x13) || (roomCtxt->currRoom.num != 1)) && (ctxt->sceneNum != 0x56)) { + if (((ctxt->sceneNum != SCENE_IKANA) || (roomCtxt->currRoom.num != 1)) && (ctxt->sceneNum != SCENE_IKNINSIDE)) { ctxt->kankyoContext.unkC3 = 0xff; ctxt->kankyoContext.unkE0 = 0; } diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 9a831b44c3..4beed73668 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -1,7 +1,7 @@ #include #include -/* +/* TODO: There are a few issues left with this file, but many rely on larger structural project changes. I am avoiding these in the mean time in order to not break the Ghidra project structures. @@ -12,26 +12,26 @@ The .data, .bss, and .rodata sections are not migrated to this file yet. s32 Scene_LoadObject(SceneContext* sceneCtxt, s16 id) { u32 size; - + sceneCtxt->objects[sceneCtxt->objectCount].id = id; size = objectFileTable[id].vromEnd - objectFileTable[id].vromStart; - + if (sceneCtxt) {} - + if (size) { DmaMgr_SendRequest0(sceneCtxt->objects[sceneCtxt->objectCount].vramAddr, objectFileTable[id].vromStart, size); } - + // TODO: This 0x22 is OBJECT_EXCHANGE_BANK_MAX - 1 in OOT if (sceneCtxt->objectCount < 0x22) { - sceneCtxt->objects[sceneCtxt->objectCount + 1].vramAddr = + sceneCtxt->objects[sceneCtxt->objectCount + 1].vramAddr = // UB to cast pointer to u32 (void*)ALIGN16((u32)sceneCtxt->objects[sceneCtxt->objectCount].vramAddr + size); } - + sceneCtxt->objectCount++; sceneCtxt->spawnedObjectCount = sceneCtxt->objectCount; - + return sceneCtxt->objectCount - 1; } @@ -40,26 +40,25 @@ void Scene_Init(GlobalContext* ctxt, SceneContext* sceneCtxt) { u32 unused; u32 spaceSize; s32 i; - - // TODO: Needs scene enums! - if (global->sceneNum == 0x6F || global->sceneNum == 0x6C || global->sceneNum == 0x6E || global->sceneNum == 0x6D) { + + if (global->sceneNum == SCENE_CLOCKTOWER || global->sceneNum == SCENE_TOWN || global->sceneNum == SCENE_BACKTOWN || global->sceneNum == SCENE_ICHIBA) { spaceSize = 1566720; - } else if (global->sceneNum == 0x15) { + } else if (global->sceneNum == SCENE_MILK_BAR) { spaceSize = 1617920; - } else if (global->sceneNum == 0x2D) { + } else if (global->sceneNum == SCENE_00KEIKOKU) { spaceSize = 1505280; } else { spaceSize = 1413120; } - + sceneCtxt->objectCount = 0; sceneCtxt->spawnedObjectCount = 0; sceneCtxt->mainKeepIndex = 0; sceneCtxt->keepObjectId = 0; - - // TODO: 0x23 is OBJECT_EXCHANGE_BANK_MAX in OOT + + // TODO: 0x23 is OBJECT_EXCHANGE_BANK_MAX in OOT for (i = 0; i < 0x23; i++) sceneCtxt->objects[i].id = 0; - + sceneCtxt->objectVramStart = sceneCtxt->objects[0].vramAddr = GameStateHeap_AllocFromEnd(&ctxt->state.heap, spaceSize); // UB to cast sceneCtxt->objectVramStart to s32 sceneCtxt->objectVramEnd = (void*)((u32)sceneCtxt->objectVramStart + spaceSize); @@ -74,7 +73,7 @@ void Scene_ReloadUnloadedObjects(SceneContext* sceneCtxt) { SceneObject* status; ObjectFileTableEntry* objectFile; u32 size; - + status = &sceneCtxt->objects[0]; for (i = 0; i < sceneCtxt->objectCount; i++) { if (status->id < 0) { @@ -82,7 +81,7 @@ void Scene_ReloadUnloadedObjects(SceneContext* sceneCtxt) { if (status->dmaReq.vromStart == 0) { objectFile = &objectFileTable[id]; size = objectFile->vromEnd - objectFile->vromStart; - + if (size == 0) { status->id = 0; } else { @@ -124,11 +123,11 @@ void Scene_DmaAllObjects(SceneContext* sceneCtxt) { for (i = 0; i < sceneCtxt->objectCount; i++) { id = sceneCtxt->objects[i].id; vromSize = objectFileTable[id].vromEnd - objectFileTable[id].vromStart; - + if (vromSize == 0) { continue; } - + DmaMgr_SendRequest0(sceneCtxt->objects[i].vramAddr, objectFileTable[id].vromStart, vromSize); } } @@ -137,10 +136,10 @@ void* func_8012F73C(SceneContext* sceneCtxt, s32 iParm2, s16 id) { u32 addr; u32 vromSize; ObjectFileTableEntry* fileTableEntry; - + sceneCtxt->objects[iParm2].id = -id; sceneCtxt->objects[iParm2].dmaReq.vromStart = 0; - + fileTableEntry = &objectFileTable[id]; vromSize = fileTableEntry->vromEnd - fileTableEntry->vromStart; // TODO: UB to cast void to u32 @@ -157,7 +156,7 @@ void Scene_HeaderCommand00(GlobalContext* ctxt, SceneCmd* entry) { void* objectVramAddr; s16 temp16; u8 unk20; - + ctxt->linkActorEntry = (ActorEntry*)Lib_PtrSegToVirt(entry->spawnList.segment) + ctxt->setupEntranceList[ctxt->curSpawn].spawn; if ( (ctxt->linkActorEntry->params & 0x0F00) >> 8 == 0x0C || @@ -229,10 +228,10 @@ void Scene_HeaderCommand06(GlobalContext* ctxt, SceneCmd* entry) { // Scene Command 0x07: Special Files void Scene_HeaderCommand07(GlobalContext* ctxt, SceneCmd* entry) { if (entry->specialFiles.keepObjectId != 0) { - ctxt->sceneContext.keepObjectId = Scene_LoadObject(&ctxt->sceneContext, + ctxt->sceneContext.keepObjectId = Scene_LoadObject(&ctxt->sceneContext, entry->specialFiles.keepObjectId); // TODO: Segment number enum? - gRspSegmentPhysAddrs[5] = + gRspSegmentPhysAddrs[5] = PHYSICAL_TO_VIRTUAL(ctxt->sceneContext.objects[ctxt->sceneContext.keepObjectId].vramAddr); } @@ -264,7 +263,7 @@ void Scene_HeaderCommand0B(GlobalContext *ctxt, SceneCmd *entry) { SceneObject* status2; s16* objectEntry; void* nextPtr; - + objectEntry = (s16*)Lib_PtrSegToVirt(entry->objectList.segment); k = 0; i = ctxt->sceneContext.spawnedObjectCount; @@ -280,10 +279,10 @@ void Scene_HeaderCommand0B(GlobalContext *ctxt, SceneCmd *entry) { } ctxt->sceneContext.objectCount = i; func_800BA6FC(ctxt, &ctxt->actorCtx); - + continue; } - + i++; k++; objectEntry++; @@ -292,7 +291,7 @@ void Scene_HeaderCommand0B(GlobalContext *ctxt, SceneCmd *entry) { while (k < entry->objectList.num) { nextPtr = func_8012F73C(&ctxt->sceneContext, i, *objectEntry); - + // TODO: This 0x22 is OBJECT_EXCHANGE_BANK_MAX - 1 in OOT if (i < 0x22) { firstObject[i + 1].vramAddr = nextPtr; @@ -301,7 +300,7 @@ void Scene_HeaderCommand0B(GlobalContext *ctxt, SceneCmd *entry) { k++; objectEntry++; } - + ctxt->sceneContext.objectCount = i; } @@ -343,12 +342,12 @@ void Scene_HeaderCommand0F(GlobalContext* ctxt, SceneCmd* entry) { s32 func_8012FF10(GlobalContext* ctxt, s32 fileIndex) { u32 vromStart = D_801C2660[fileIndex].vromStart; u32 fileSize = D_801C2660[fileIndex].vromEnd - vromStart; - + if (fileSize) { ctxt->roomContext.unk74 = GameStateHeap_AllocFromEnd(&ctxt->state.heap, fileSize); return DmaMgr_SendRequest0(ctxt->roomContext.unk74, vromStart, fileSize); } - + // UB: Undefined behaviour to not have a return statement here, but it breaks matching to add one. } @@ -369,39 +368,39 @@ void Scene_HeaderCommand12(GlobalContext* ctxt, SceneCmd* entry) { // Scene Command 0x10: Time Settings void Scene_HeaderCommand10(GlobalContext *ctxt, SceneCmd *entry) { u32 dayTime; - + if (entry->timeSettings.hour != 0xFF && entry->timeSettings.min != 0xFF) { - gSaveContext.extra.environmentTime = gSaveContext.perm.time = + gSaveContext.extra.environmentTime = gSaveContext.perm.time = (u16)(((entry->timeSettings.hour + (entry->timeSettings.min / 60.0f)) * 60.0f) / 0.021972656f); } - + if (entry->timeSettings.unk6 != 0xFF) { ctxt->kankyoContext.unk2 = entry->timeSettings.unk6; } else { ctxt->kankyoContext.unk2 = 0; } - + if (gSaveContext.perm.inv.items[0] == 0xFF) { if (ctxt->kankyoContext.unk2 != 0) { ctxt->kankyoContext.unk2 = 5; } } - + if (gSaveContext.extra.unk2b8 == 0) { // TODO: Needs REG macro gStaticContext->data[0x0F] = ctxt->kankyoContext.unk2; } - + dayTime = gSaveContext.perm.time; ctxt->kankyoContext.unk4 = -(Math_Sins(dayTime - 0x8000) * 120.0f) * 25.0f; dayTime = gSaveContext.perm.time; ctxt->kankyoContext.unk8 = (Math_Coss(dayTime - 0x8000) * 120.0f) * 25.0f; dayTime = gSaveContext.perm.time; ctxt->kankyoContext.unkC = (Math_Coss(dayTime - 0x8000) * 20.0f) * 25.0f; - + if (ctxt->kankyoContext.unk2 == 0 && gSaveContext.perm.cutscene < 0xFFF0) { gSaveContext.extra.environmentTime = gSaveContext.perm.time; - + if (gSaveContext.extra.environmentTime >= 0x2AAA && gSaveContext.extra.environmentTime < 0x4555) { gSaveContext.extra.environmentTime = 0x3555; } else if (gSaveContext.extra.environmentTime >= 0x4555 && gSaveContext.extra.environmentTime < 0x5555) { @@ -417,7 +416,7 @@ void Scene_HeaderCommand10(GlobalContext *ctxt, SceneCmd *entry) { // Scene Command 0x05: Wind Settings void Scene_HeaderCommand05(GlobalContext* ctxt, SceneCmd* entry) { s8 temp1 = entry->windSettings.west; - s8 temp2 = entry->windSettings.vertical; + s8 temp2 = entry->windSettings.vertical; s8 temp3 = entry->windSettings.south; ctxt->kankyoContext.windWest = temp1; ctxt->kankyoContext.windVertical = temp2; @@ -494,27 +493,27 @@ void Scene_HeaderCommand1E(GlobalContext* ctxt, SceneCmd* entry) { void Scene_HeaderCommand19(GlobalContext *ctxt, SceneCmd *entry) { s16 j; s16 i; - + j = 0; i = 0; while (1) { if (scenesPerMapArea[i].scenes[j] == 0xFFFF) { i++; j=0; - + // 0x0B is sizeof(scenesPerMapArea) / sizeof(SceneIdList) ... but does not match calculated if (i == 0x0B) { break; } } - + if (ctxt->sceneNum == scenesPerMapArea[i].scenes[j]) { break; } - + j++; } - + // 0x0B is sizeof(scenesPerMapArea) / sizeof(SceneIdList) ... but does not match calculated if (i < 0x0B) { // This bitwise OR could be a macro, but all sane looking versions break matching. @@ -536,7 +535,7 @@ s32 Scene_ProcessHeader(GlobalContext* ctxt, SceneCmd* header) { while (1) { cmdCode = header->base.code; - + if (cmdCode == 0x14) { break; } diff --git a/tables/variables.txt b/tables/variables.txt index 17925041e1..6bb8f05af1 100644 --- a/tables/variables.txt +++ b/tables/variables.txt @@ -435,7 +435,7 @@ 0x801AEFB8:("D_801AEFB8","UNK_TYPE1","",0x1), 0x801AEFBC:("D_801AEFBC","UNK_TYPE1","",0x1), 0x801AEFC0:("D_801AEFC0","UNK_TYPE1","",0x1), - 0x801AEFD0:("actorOverlayTable","ActorOverlay","[690]",0x5640), + 0x801AEFD0:("actorOverlayTable","ActorOverlay","[ACTOR_ID_MAX]",0x5640), 0x801B4610:("D_801B4610","UNK_TYPE4","",0x4), 0x801B4620:("D_801B4620","u32","[32]",0x80), 0x801B46A0:("D_801B46A0","u16","[16]",0x20),