#!/usr/bin/env python3 import argparse, os, struct, collections, re actor_names = [ "ACTOR_EN_TEST", "ACTOR_EN_GIRLA", "ACTOR_EN_PART", "ACTOR_EN_LIGHT", "ACTOR_EN_DOOR", "ACTOR_EN_BOX", "ACTOR_EN_PAMETFROG", "ACTOR_EN_OKUTA", "ACTOR_EN_BOM", "ACTOR_EN_WALLMAS", "ACTOR_EN_DODONGO", "ACTOR_EN_FIREFLY", "ACTOR_EN_HORSE", "ACTOR_EN_ARROW", "ACTOR_EN_ELF", "ACTOR_EN_NIW", "ACTOR_EN_TITE", "ACTOR_EN_PEEHAT", "ACTOR_EN_BUTTE", "ACTOR_EN_INSECT", "ACTOR_EN_FISH", "ACTOR_EN_HOLL", "ACTOR_EN_DINOFOS", "ACTOR_EN_HATA", "ACTOR_EN_ZL1", "ACTOR_EN_VIEWER", "ACTOR_EN_BUBBLE", "ACTOR_DOOR_SHUTTER", "ACTOR_EN_BOOM", "ACTOR_EN_TORCH2", "ACTOR_EN_MINIFROG", "ACTOR_EN_ST", "ACTOR_OBJ_WTURN", "ACTOR_EN_RIVER_SOUND", "ACTOR_EN_OSSAN", "ACTOR_EN_FAMOS", "ACTOR_EN_BOMBF", "ACTOR_EN_AM", "ACTOR_EN_DEKUBABA", "ACTOR_EN_M_FIRE1", "ACTOR_EN_M_THUNDER", "ACTOR_BG_BREAKWALL", "ACTOR_DOOR_WARP1", "ACTOR_OBJ_SYOKUDAI", "ACTOR_ITEM_B_HEART", "ACTOR_EN_DEKUNUTS", "ACTOR_EN_BBFALL", "ACTOR_ARMS_HOOK", "ACTOR_EN_BB", "ACTOR_BG_KEIKOKU_SPR", "ACTOR_EN_WOOD02", "ACTOR_EN_DEATH", "ACTOR_EN_MINIDEATH", "ACTOR_EN_VM", "ACTOR_DEMO_EFFECT", "ACTOR_DEMO_KANKYO", "ACTOR_EN_FLOORMAS", "ACTOR_EN_RD", "ACTOR_BG_F40_FLIFT", "ACTOR_OBJ_MURE", "ACTOR_EN_SW", "ACTOR_OBJECT_KANKYO", "ACTOR_EN_HORSE_LINK_CHILD", "ACTOR_DOOR_ANA", "ACTOR_EN_ENCOUNT1", "ACTOR_DEMO_TRE_LGT", "ACTOR_EN_ENCOUNT2", "ACTOR_EN_FIRE_ROCK", "ACTOR_BG_CTOWER_ROT", "ACTOR_MIR_RAY", "ACTOR_EN_SB", "ACTOR_EN_BIGSLIME", "ACTOR_EN_KAREBABA", "ACTOR_EN_IN", "ACTOR_EN_RU", "ACTOR_EN_BOM_CHU", "ACTOR_EN_HORSE_GAME_CHECK", "ACTOR_EN_RR", "ACTOR_EN_FR", "ACTOR_OBJ_OSHIHIKI", "ACTOR_EFF_DUST", "ACTOR_BG_UMAJUMP", "ACTOR_ARROW_FIRE", "ACTOR_ARROW_ICE", "ACTOR_ARROW_LIGHT", "ACTOR_ITEM_ETCETERA", "ACTOR_OBJ_KIBAKO", "ACTOR_OBJ_TSUBO", "ACTOR_EN_IK", "ACTOR_DEMO_SHD", "ACTOR_EN_DNS", "ACTOR_ELF_MSG", "ACTOR_EN_HONOTRAP", "ACTOR_EN_TUBO_TRAP", "ACTOR_OBJ_ICE_POLY", "ACTOR_EN_FZ", "ACTOR_EN_KUSA", "ACTOR_OBJ_BEAN", "ACTOR_OBJ_BOMBIWA", "ACTOR_OBJ_SWITCH", "ACTOR_OBJ_LIFT", "ACTOR_OBJ_HSBLOCK", "ACTOR_EN_OKARINA_TAG", "ACTOR_EN_GOROIWA", "ACTOR_EN_DAIKU", "ACTOR_EN_NWC", "ACTOR_ITEM_INBOX", "ACTOR_EN_GE1", "ACTOR_OBJ_BLOCKSTOP", "ACTOR_EN_SDA", "ACTOR_EN_CLEAR_TAG", "ACTOR_EN_GM", "ACTOR_EN_MS", "ACTOR_EN_HS", "ACTOR_BG_INGATE", "ACTOR_EN_KANBAN", "ACTOR_EN_ATTACK_NIW", "ACTOR_EN_MK", "ACTOR_EN_OWL", "ACTOR_EN_ISHI", "ACTOR_OBJ_HANA", "ACTOR_OBJ_LIGHTSWITCH", "ACTOR_OBJ_MURE2", "ACTOR_EN_FU", "ACTOR_EN_STREAM", "ACTOR_EN_MM", "ACTOR_EN_WEATHER_TAG", "ACTOR_EN_ANI", "ACTOR_EN_JS", "ACTOR_EN_OKARINA_EFFECT", "ACTOR_EN_MAG", "ACTOR_ELF_MSG2", "ACTOR_BG_F40_SWLIFT", "ACTOR_EN_KAKASI", "ACTOR_OBJ_MAKEOSHIHIKI", "ACTOR_OCEFF_SPOT", "ACTOR_EN_TORCH", "ACTOR_SHOT_SUN", "ACTOR_OBJ_ROOMTIMER", "ACTOR_EN_SSH", "ACTOR_OCEFF_WIPE", "ACTOR_OCEFF_STORM", "ACTOR_OBJ_DEMO", "ACTOR_EN_MINISLIME", "ACTOR_EN_NUTSBALL", "ACTOR_OCEFF_WIPE2", "ACTOR_OCEFF_WIPE3", "ACTOR_EN_DG", "ACTOR_EN_SI", "ACTOR_OBJ_COMB", "ACTOR_OBJ_KIBAKO2", "ACTOR_EN_HS2", "ACTOR_OBJ_MURE3", "ACTOR_EN_TG", "ACTOR_EN_WF", "ACTOR_EN_SKB", "ACTOR_EN_GS", "ACTOR_OBJ_SOUND", "ACTOR_EN_CROW", "ACTOR_EN_COW", "ACTOR_OCEFF_WIPE4", "ACTOR_EN_ZO", "ACTOR_OBJ_MAKEKINSUTA", "ACTOR_EN_GE3", "ACTOR_OBJ_HAMISHI", "ACTOR_EN_ZL4", "ACTOR_EN_MM2", "ACTOR_DOOR_SPIRAL", "ACTOR_OBJ_PZLBLOCK", "ACTOR_OBJ_TOGE", "ACTOR_OBJ_ARMOS", "ACTOR_OBJ_BOYO", "ACTOR_EN_GRASSHOPPER", "ACTOR_OBJ_GRASS", "ACTOR_OBJ_GRASS_CARRY", "ACTOR_OBJ_GRASS_UNIT", "ACTOR_BG_FIRE_WALL", "ACTOR_EN_BU", "ACTOR_EN_ENCOUNT3", "ACTOR_EN_JSO", "ACTOR_OBJ_CHIKUWA", "ACTOR_EN_KNIGHT", "ACTOR_EN_WARP_TAG", "ACTOR_EN_AOB_01", "ACTOR_EN_BOJ_01", "ACTOR_EN_BOJ_02", "ACTOR_EN_BOJ_03", "ACTOR_EN_ENCOUNT4", "ACTOR_EN_BOM_BOWL_MAN", "ACTOR_EN_SYATEKI_MAN", "ACTOR_BG_ICICLE", "ACTOR_EN_SYATEKI_CROW", "ACTOR_EN_BOJ_04", "ACTOR_EN_CNE_01", "ACTOR_EN_BBA_01", "ACTOR_EN_BJI_01", "ACTOR_BG_SPDWEB", "ACTOR_EN_MT_TAG", "ACTOR_BOSS_01", "ACTOR_BOSS_02", "ACTOR_BOSS_03", "ACTOR_BOSS_04", "ACTOR_BOSS_05", "ACTOR_BOSS_06", "ACTOR_BOSS_07", "ACTOR_BG_DY_YOSEIZO", "ACTOR_EN_BOJ_05", "ACTOR_EN_SOB1", "ACTOR_EN_GO", "ACTOR_EN_RAF", "ACTOR_OBJ_FUNEN", "ACTOR_OBJ_RAILLIFT", "ACTOR_BG_NUMA_HANA", "ACTOR_OBJ_FLOWERPOT", "ACTOR_OBJ_SPINYROLL", "ACTOR_DM_HINA", "ACTOR_EN_SYATEKI_WF", "ACTOR_OBJ_SKATEBLOCK", "ACTOR_OBJ_ICEBLOCK", "ACTOR_EN_BIGPAMET", "ACTOR_EN_SYATEKI_DEKUNUTS", "ACTOR_ELF_MSG3", "ACTOR_EN_FG", "ACTOR_DM_RAVINE", "ACTOR_DM_SA", "ACTOR_EN_SLIME", "ACTOR_EN_PR", "ACTOR_OBJ_TOUDAI", "ACTOR_OBJ_ENTOTU", "ACTOR_OBJ_BELL", "ACTOR_EN_SYATEKI_OKUTA", "ACTOR_OBJ_SHUTTER", "ACTOR_DM_ZL", "ACTOR_EN_ELFGRP", "ACTOR_DM_TSG", "ACTOR_EN_BAGUO", "ACTOR_OBJ_VSPINYROLL", "ACTOR_OBJ_SMORK", "ACTOR_EN_TEST2", "ACTOR_EN_TEST3", "ACTOR_EN_TEST4", "ACTOR_EN_BAT", "ACTOR_EN_SEKIHI", "ACTOR_EN_WIZ", "ACTOR_EN_WIZ_BROCK", "ACTOR_EN_WIZ_FIRE", "ACTOR_EFF_CHANGE", "ACTOR_DM_STATUE", "ACTOR_OBJ_FIRESHIELD", "ACTOR_BG_LADDER", "ACTOR_EN_MKK", "ACTOR_DEMO_GETITEM", "ACTOR_EN_DNB", "ACTOR_EN_DNH", "ACTOR_EN_DNK", "ACTOR_EN_DNQ", "ACTOR_BG_KEIKOKU_SAKU", "ACTOR_OBJ_HUGEBOMBIWA", "ACTOR_EN_FIREFLY2", "ACTOR_EN_RAT", "ACTOR_EN_WATER_EFFECT", "ACTOR_EN_KUSA2", "ACTOR_BG_SPOUT_FIRE", "ACTOR_BG_DBLUE_MOVEBG", "ACTOR_EN_DY_EXTRA", "ACTOR_EN_BAL", "ACTOR_EN_GINKO_MAN", "ACTOR_EN_WARP_UZU", "ACTOR_OBJ_DRIFTICE", "ACTOR_EN_LOOK_NUTS", "ACTOR_EN_MUSHI2", "ACTOR_EN_FALL", "ACTOR_EN_MM3", "ACTOR_BG_CRACE_MOVEBG", "ACTOR_EN_DNO", "ACTOR_EN_PR2", "ACTOR_EN_PRZ", "ACTOR_EN_JSO2", "ACTOR_OBJ_ETCETERA", "ACTOR_EN_EGOL", "ACTOR_OBJ_MINE", "ACTOR_OBJ_PURIFY", "ACTOR_EN_TRU", "ACTOR_EN_TRT", "ACTOR_EN_TEST5", "ACTOR_EN_TEST6", "ACTOR_EN_AZ", "ACTOR_EN_ESTONE", "ACTOR_BG_HAKUGIN_POST", "ACTOR_DM_OPSTAGE", "ACTOR_DM_STK", "ACTOR_DM_CHAR00", "ACTOR_DM_CHAR01", "ACTOR_DM_CHAR02", "ACTOR_DM_CHAR03", "ACTOR_DM_CHAR04", "ACTOR_DM_CHAR05", "ACTOR_DM_CHAR06", "ACTOR_DM_CHAR07", "ACTOR_DM_CHAR08", "ACTOR_DM_CHAR09", "ACTOR_OBJ_TOKEIDAI", "ACTOR_EN_MNK", "ACTOR_EN_EGBLOCK", "ACTOR_EN_GUARD_NUTS", "ACTOR_BG_HAKUGIN_BOMBWALL", "ACTOR_OBJ_TOKEI_TOBIRA", "ACTOR_BG_HAKUGIN_ELVPOLE", "ACTOR_EN_MA4", "ACTOR_EN_TWIG", "ACTOR_EN_PO_FUSEN", "ACTOR_EN_DOOR_ETC", "ACTOR_EN_BIGOKUTA", "ACTOR_BG_ICEFLOE", "ACTOR_OBJ_OCARINALIFT", "ACTOR_EN_TIME_TAG", "ACTOR_BG_OPEN_SHUTTER", "ACTOR_BG_OPEN_SPOT", "ACTOR_BG_FU_KAITEN", "ACTOR_OBJ_AQUA", "ACTOR_EN_ELFORG", "ACTOR_EN_ELFBUB", "ACTOR_EN_FU_MATO", "ACTOR_EN_FU_KAGO", "ACTOR_EN_OSN", "ACTOR_BG_CTOWER_GEAR", "ACTOR_EN_TRT2", "ACTOR_OBJ_TOKEI_STEP", "ACTOR_BG_LOTUS", "ACTOR_EN_KAME", "ACTOR_OBJ_TAKARAYA_WALL", "ACTOR_BG_FU_MIZU", "ACTOR_EN_SELLNUTS", "ACTOR_BG_DKJAIL_IVY", "ACTOR_OBJ_VISIBLOCK", "ACTOR_EN_TAKARAYA", "ACTOR_EN_TSN", "ACTOR_EN_DS2N", "ACTOR_EN_FSN", "ACTOR_EN_SHN", "ACTOR_EN_STOP_HEISHI", "ACTOR_OBJ_BIGICICLE", "ACTOR_EN_LIFT_NUTS", "ACTOR_EN_TK", "ACTOR_BG_MARKET_STEP", "ACTOR_OBJ_LUPYGAMELIFT", "ACTOR_EN_TEST7", "ACTOR_OBJ_LIGHTBLOCK", "ACTOR_MIR_RAY2", "ACTOR_EN_WDHAND", "ACTOR_EN_GAMELUPY", "ACTOR_BG_DANPEI_MOVEBG", "ACTOR_EN_SNOWWD", "ACTOR_EN_PM", "ACTOR_EN_GAKUFU", "ACTOR_ELF_MSG4", "ACTOR_ELF_MSG5", "ACTOR_EN_COL_MAN", "ACTOR_EN_TALK_GIBUD", "ACTOR_EN_GIANT", "ACTOR_OBJ_SNOWBALL", "ACTOR_BOSS_HAKUGIN", "ACTOR_EN_GB2", "ACTOR_EN_ONPUMAN", "ACTOR_BG_TOBIRA01", "ACTOR_EN_TAG_OBJ", "ACTOR_OBJ_DHOUSE", "ACTOR_OBJ_HAKAISI", "ACTOR_BG_HAKUGIN_SWITCH", "ACTOR_EN_SNOWMAN", "ACTOR_TG_SW", "ACTOR_EN_PO_SISTERS", "ACTOR_EN_PP", "ACTOR_EN_HAKUROCK", "ACTOR_EN_HANABI", "ACTOR_OBJ_DOWSING", "ACTOR_OBJ_WIND", "ACTOR_EN_RACEDOG", "ACTOR_EN_KENDO_JS", "ACTOR_BG_BOTIHASIRA", "ACTOR_EN_FISH2", "ACTOR_EN_PST", "ACTOR_EN_POH", "ACTOR_OBJ_SPIDERTENT", "ACTOR_EN_ZORAEGG", "ACTOR_EN_KBT", "ACTOR_EN_GG", "ACTOR_EN_MARUTA", "ACTOR_OBJ_SNOWBALL2", "ACTOR_EN_GG2", "ACTOR_OBJ_GHAKA", "ACTOR_EN_DNP", "ACTOR_EN_DAI", "ACTOR_BG_GORON_OYU", "ACTOR_EN_KGY", "ACTOR_EN_INVADEPOH", "ACTOR_EN_GK", "ACTOR_EN_AN", "ACTOR_EN_BEE", "ACTOR_EN_OT", "ACTOR_EN_DRAGON", "ACTOR_OBJ_DORA", "ACTOR_EN_BIGPO", "ACTOR_OBJ_KENDO_KANBAN", "ACTOR_OBJ_HARIKO", "ACTOR_EN_STH", "ACTOR_BG_SINKAI_KABE", "ACTOR_BG_HAKA_CURTAIN", "ACTOR_BG_KIN2_BOMBWALL", "ACTOR_BG_KIN2_FENCE", "ACTOR_BG_KIN2_PICTURE", "ACTOR_BG_KIN2_SHELF", "ACTOR_EN_RAIL_SKB", "ACTOR_EN_JG", "ACTOR_EN_TRU_MT", "ACTOR_OBJ_UM", "ACTOR_EN_NEO_REEBA", "ACTOR_BG_MBAR_CHAIR", "ACTOR_BG_IKANA_BLOCK", "ACTOR_BG_IKANA_MIRROR", "ACTOR_BG_IKANA_ROTARYROOM", "ACTOR_BG_DBLUE_BALANCE", "ACTOR_BG_DBLUE_WATERFALL", "ACTOR_EN_KAIZOKU", "ACTOR_EN_GE2", "ACTOR_EN_MA_YTS", "ACTOR_EN_MA_YTO", "ACTOR_OBJ_TOKEI_TURRET", "ACTOR_BG_DBLUE_ELEVATOR", "ACTOR_OBJ_WARPSTONE", "ACTOR_EN_ZOG", "ACTOR_OBJ_ROTLIFT", "ACTOR_OBJ_JG_GAKKI", "ACTOR_BG_INIBS_MOVEBG", "ACTOR_EN_ZOT", "ACTOR_OBJ_TREE", "ACTOR_OBJ_Y2LIFT", "ACTOR_OBJ_Y2SHUTTER", "ACTOR_OBJ_BOAT", "ACTOR_OBJ_TARU", "ACTOR_OBJ_HUNSUI", "ACTOR_EN_JC_MATO", "ACTOR_MIR_RAY3", "ACTOR_EN_ZOB", "ACTOR_ELF_MSG6", "ACTOR_OBJ_NOZOKI", "ACTOR_EN_TOTO", "ACTOR_EN_RAILGIBUD", "ACTOR_EN_BABA", "ACTOR_EN_SUTTARI", "ACTOR_EN_ZOD", "ACTOR_EN_KUJIYA", "ACTOR_EN_GEG", "ACTOR_OBJ_KINOKO", "ACTOR_OBJ_YASI", "ACTOR_EN_TANRON1", "ACTOR_EN_TANRON2", "ACTOR_EN_TANRON3", "ACTOR_OBJ_CHAN", "ACTOR_EN_ZOS", "ACTOR_EN_S_GORO", "ACTOR_EN_NB", "ACTOR_EN_JA", "ACTOR_BG_F40_BLOCK", "ACTOR_BG_F40_SWITCH", "ACTOR_EN_PO_COMPOSER", "ACTOR_EN_GURUGURU", "ACTOR_OCEFF_WIPE5", "ACTOR_EN_STONE_HEISHI", "ACTOR_OCEFF_WIPE6", "ACTOR_EN_SCOPENUTS", "ACTOR_EN_SCOPECROW", "ACTOR_OCEFF_WIPE7", "ACTOR_EFF_KAMEJIMA_WAVE", "ACTOR_EN_HG", "ACTOR_EN_HGO", "ACTOR_EN_ZOV", "ACTOR_EN_AH", "ACTOR_OBJ_HGDOOR", "ACTOR_BG_IKANA_BOMBWALL", "ACTOR_BG_IKANA_RAY", "ACTOR_BG_IKANA_SHUTTER", "ACTOR_BG_HAKA_BOMBWALL", "ACTOR_BG_HAKA_TOMB", "ACTOR_EN_SC_RUPPE", "ACTOR_BG_IKNV_DOUKUTU", "ACTOR_BG_IKNV_OBJ", "ACTOR_EN_PAMERA", "ACTOR_OBJ_HSSTUMP", "ACTOR_EN_HIDDEN_NUTS", "ACTOR_EN_ZOW", "ACTOR_EN_TALK", "ACTOR_EN_AL", "ACTOR_EN_TAB", "ACTOR_EN_NIMOTSU", "ACTOR_EN_HIT_TAG", "ACTOR_EN_RUPPECROW", "ACTOR_EN_TANRON4", "ACTOR_EN_TANRON5", "ACTOR_EN_TANRON6", "ACTOR_EN_DAIKU2", "ACTOR_EN_MUTO", "ACTOR_EN_BAISEN", "ACTOR_EN_HEISHI", "ACTOR_EN_DEMO_HEISHI", "ACTOR_EN_DT", "ACTOR_EN_CHA", "ACTOR_OBJ_DINNER", "ACTOR_EFF_LASTDAY", "ACTOR_BG_IKANA_DHARMA", "ACTOR_EN_AKINDONUTS", "ACTOR_EFF_STK", "ACTOR_EN_IG", "ACTOR_EN_RG", "ACTOR_EN_OSK", "ACTOR_EN_STH2", "ACTOR_EN_YB", "ACTOR_EN_RZ", "ACTOR_EN_SCOPECOIN", "ACTOR_EN_BJT", "ACTOR_EN_BOMJIMA", "ACTOR_EN_BOMJIMB", "ACTOR_EN_BOMBERS", "ACTOR_EN_BOMBERS2", "ACTOR_EN_BOMBAL", "ACTOR_OBJ_MOON_STONE", "ACTOR_OBJ_MU_PICT", "ACTOR_BG_IKNINSIDE", "ACTOR_EFF_ZORABAND", "ACTOR_OBJ_KEPN_KOYA", "ACTOR_OBJ_USIYANE", "ACTOR_EN_NNH", "ACTOR_OBJ_KZSAKU", "ACTOR_OBJ_MILK_BIN", "ACTOR_EN_KITAN", "ACTOR_BG_ASTR_BOMBWALL", "ACTOR_BG_IKNIN_SUSCEIL", "ACTOR_EN_BSB", "ACTOR_EN_RECEPGIRL", "ACTOR_EN_THIEFBIRD", "ACTOR_EN_JGAME_TSN", "ACTOR_OBJ_JGAME_LIGHT", "ACTOR_OBJ_YADO", "ACTOR_DEMO_SYOTEN", "ACTOR_DEMO_MOONEND", "ACTOR_BG_LBFSHOT", "ACTOR_BG_LAST_BWALL", "ACTOR_EN_AND", "ACTOR_EN_INVADEPOH_DEMO", "ACTOR_OBJ_DANPEILIFT", "ACTOR_EN_FALL2", "ACTOR_DM_AL", "ACTOR_DM_AN", "ACTOR_DM_AH", "ACTOR_DM_NB", "ACTOR_EN_DRS", "ACTOR_EN_ENDING_HERO", "ACTOR_DM_BAL", "ACTOR_EN_PAPER", "ACTOR_EN_HINT_SKB", "ACTOR_DM_TAG", "ACTOR_EN_BH", "ACTOR_EN_ENDING_HERO2", "ACTOR_EN_ENDING_HERO3", "ACTOR_EN_ENDING_HERO4", "ACTOR_EN_ENDING_HERO5", "ACTOR_EN_ENDING_HERO6", "ACTOR_DM_GM", "ACTOR_OBJ_SWPRIZE", "ACTOR_EN_INVISIBLE_RUPPE", "ACTOR_OBJ_ENDING", "ACTOR_EN_RSN", ] overlay_names = [ "ovl_En_Test", "ovl_En_GirlA", "ovl_En_Part", "ovl_En_Light", "ovl_En_Door", "ovl_En_Box", "ovl_En_Pametfrog", "ovl_En_Okuta", "ovl_En_Bom", "ovl_En_Wallmas", "ovl_En_Dodongo", "ovl_En_Firefly", "ovl_En_Horse", "ovl_En_Arrow", "ovl_En_Elf", "ovl_En_Niw", "ovl_En_Tite", "ovl_En_Peehat", "ovl_En_Butte", "ovl_En_Insect", "ovl_En_Fish", "ovl_En_Holl", "ovl_En_Dinofos", "ovl_En_Hata", "ovl_En_Zl1", "ovl_En_Viewer", "ovl_En_Bubble", "ovl_Door_Shutter", "ovl_En_Boom", "ovl_En_Torch2", "ovl_En_Minifrog", "ovl_En_St", "ovl_Obj_Wturn", "ovl_En_River_Sound", "ovl_En_Ossan", "ovl_En_Famos", "ovl_En_Bombf", "ovl_En_Am", "ovl_En_Dekubaba", "ovl_En_M_Fire1", "ovl_En_M_Thunder", "ovl_Bg_Breakwall", "ovl_Door_Warp1", "ovl_Obj_Syokudai", "ovl_Item_B_Heart", "ovl_En_Dekunuts", "ovl_En_Bbfall", "ovl_Arms_Hook", "ovl_En_Bb", "ovl_Bg_Keikoku_Spr", "ovl_En_Wood02", "ovl_En_Death", "ovl_En_Minideath", "ovl_En_Vm", "ovl_Demo_Effect", "ovl_Demo_Kankyo", "ovl_En_Floormas", "ovl_En_Rd", "ovl_Bg_F40_Flift", "ovl_Obj_Mure", "ovl_En_Sw", "ovl_Object_Kankyo", "ovl_En_Horse_Link_Child", "ovl_Door_Ana", "ovl_En_Encount1", "ovl_Demo_Tre_Lgt", "ovl_En_Encount2", "ovl_En_Fire_Rock", "ovl_Bg_Ctower_Rot", "ovl_Mir_Ray", "ovl_En_Sb", "ovl_En_Bigslime", "ovl_En_Karebaba", "ovl_En_In", "ovl_En_Ru", "ovl_En_Bom_Chu", "ovl_En_Horse_Game_Check", "ovl_En_Rr", "ovl_En_Fr", "ovl_Obj_Oshihiki", "ovl_Eff_Dust", "ovl_Bg_Umajump", "ovl_Arrow_Fire", "ovl_Arrow_Ice", "ovl_Arrow_Light", "ovl_Item_Etcetera", "ovl_Obj_Kibako", "ovl_Obj_Tsubo", "ovl_En_Ik", "ovl_Demo_Shd", "ovl_En_Dns", "ovl_Elf_Msg", "ovl_En_Honotrap", "ovl_En_Tubo_Trap", "ovl_Obj_Ice_Poly", "ovl_En_Fz", "ovl_En_Kusa", "ovl_Obj_Bean", "ovl_Obj_Bombiwa", "ovl_Obj_Switch", "ovl_Obj_Lift", "ovl_Obj_Hsblock", "ovl_En_Okarina_Tag", "ovl_En_Goroiwa", "ovl_En_Daiku", "ovl_En_Nwc", "ovl_Item_Inbox", "ovl_En_Ge1", "ovl_Obj_Blockstop", "ovl_En_Sda", "ovl_En_Clear_Tag", "ovl_En_Gm", "ovl_En_Ms", "ovl_En_Hs", "ovl_Bg_Ingate", "ovl_En_Kanban", "ovl_En_Attack_Niw", "ovl_En_Mk", "ovl_En_Owl", "ovl_En_Ishi", "ovl_Obj_Hana", "ovl_Obj_Lightswitch", "ovl_Obj_Mure2", "ovl_En_Fu", "ovl_En_Stream", "ovl_En_Mm", "ovl_En_Weather_Tag", "ovl_En_Ani", "ovl_En_Js", "ovl_En_Okarina_Effect", "ovl_En_Mag", "ovl_Elf_Msg2", "ovl_Bg_F40_Swlift", "ovl_En_Kakasi", "ovl_Obj_Makeoshihiki", "ovl_Oceff_Spot", "ovl_En_Torch", "ovl_Shot_Sun", "ovl_Obj_Roomtimer", "ovl_En_Ssh", "ovl_Oceff_Wipe", "ovl_Oceff_Storm", "ovl_Obj_Demo", "ovl_En_Minislime", "ovl_En_Nutsball", "ovl_Oceff_Wipe2", "ovl_Oceff_Wipe3", "ovl_En_Dg", "ovl_En_Si", "ovl_Obj_Comb", "ovl_Obj_Kibako2", "ovl_En_Hs2", "ovl_Obj_Mure3", "ovl_En_Tg", "ovl_En_Wf", "ovl_En_Skb", "ovl_En_Gs", "ovl_Obj_Sound", "ovl_En_Crow", "ovl_En_Cow", "ovl_Oceff_Wipe4", "ovl_En_Zo", "ovl_Obj_Makekinsuta", "ovl_En_Ge3", "ovl_Obj_Hamishi", "ovl_En_Zl4", "ovl_En_Mm2", "ovl_Door_Spiral", "ovl_Obj_Pzlblock", "ovl_Obj_Toge", "ovl_Obj_Armos", "ovl_Obj_Boyo", "ovl_En_Grasshopper", "ovl_Obj_Grass", "ovl_Obj_Grass_Carry", "ovl_Obj_Grass_Unit", "ovl_Bg_Fire_Wall", "ovl_En_Bu", "ovl_En_Encount3", "ovl_En_Jso", "ovl_Obj_Chikuwa", "ovl_En_Knight", "ovl_En_Warp_tag", "ovl_En_Aob_01", "ovl_En_Boj_01", "ovl_En_Boj_02", "ovl_En_Boj_03", "ovl_En_Encount4", "ovl_En_Bom_Bowl_Man", "ovl_En_Syateki_Man", "ovl_Bg_Icicle", "ovl_En_Syateki_Crow", "ovl_En_Boj_04", "ovl_En_Cne_01", "ovl_En_Bba_01", "ovl_En_Bji_01", "ovl_Bg_Spdweb", "ovl_En_Mt_tag", "ovl_Boss_01", "ovl_Boss_02", "ovl_Boss_03", "ovl_Boss_04", "ovl_Boss_05", "ovl_Boss_06", "ovl_Boss_07", "ovl_Bg_Dy_Yoseizo", "ovl_En_Boj_05", "ovl_En_Sob1", "ovl_En_Go", "ovl_En_Raf", "ovl_Obj_Funen", "ovl_Obj_Raillift", "ovl_Bg_Numa_Hana", "ovl_Obj_Flowerpot", "ovl_Obj_Spinyroll", "ovl_Dm_Hina", "ovl_En_Syateki_Wf", "ovl_Obj_Skateblock", "ovl_Obj_Iceblock", "ovl_En_Bigpamet", "ovl_En_Syateki_Dekunuts", "ovl_Elf_Msg3", "ovl_En_Fg", "ovl_Dm_Ravine", "ovl_Dm_Sa", "ovl_En_Slime", "ovl_En_Pr", "ovl_Obj_Toudai", "ovl_Obj_Entotu", "ovl_Obj_Bell", "ovl_En_Syateki_Okuta", "ovl_Obj_Shutter", "ovl_Dm_Zl", "ovl_En_Elfgrp", "ovl_Dm_Tsg", "ovl_En_Baguo", "ovl_Obj_Vspinyroll", "ovl_Obj_Smork", "ovl_En_Test2", "ovl_En_Test3", "ovl_En_Test4", "ovl_En_Bat", "ovl_En_Sekihi", "ovl_En_Wiz", "ovl_En_Wiz_Brock", "ovl_En_Wiz_Fire", "ovl_Eff_Change", "ovl_Dm_Statue", "ovl_Obj_Fireshield", "ovl_Bg_Ladder", "ovl_En_Mkk", "ovl_Demo_Getitem", "ovl_En_Dnb", "ovl_En_Dnh", "ovl_En_Dnk", "ovl_En_Dnq", "ovl_Bg_Keikoku_Saku", "ovl_Obj_Hugebombiwa", "ovl_En_Firefly2", "ovl_En_Rat", "ovl_En_Water_Effect", "ovl_En_Kusa2", "ovl_Bg_Spout_Fire", "ovl_Bg_Dblue_Movebg", "ovl_En_Dy_Extra", "ovl_En_Bal", "ovl_En_Ginko_Man", "ovl_En_Warp_Uzu", "ovl_Obj_Driftice", "ovl_En_Look_Nuts", "ovl_En_Mushi2", "ovl_En_Fall", "ovl_En_Mm3", "ovl_Bg_Crace_Movebg", "ovl_En_Dno", "ovl_En_Pr2", "ovl_En_Prz", "ovl_En_Jso2", "ovl_Obj_Etcetera", "ovl_En_Egol", "ovl_Obj_Mine", "ovl_Obj_Purify", "ovl_En_Tru", "ovl_En_Trt", "ovl_En_Test5", "ovl_En_Test6", "ovl_En_Az", "ovl_En_Estone", "ovl_Bg_Hakugin_Post", "ovl_Dm_Opstage", "ovl_Dm_Stk", "ovl_Dm_Char00", "ovl_Dm_Char01", "ovl_Dm_Char02", "ovl_Dm_Char03", "ovl_Dm_Char04", "ovl_Dm_Char05", "ovl_Dm_Char06", "ovl_Dm_Char07", "ovl_Dm_Char08", "ovl_Dm_Char09", "ovl_Obj_Tokeidai", "ovl_En_Mnk", "ovl_En_Egblock", "ovl_En_Guard_Nuts", "ovl_Bg_Hakugin_Bombwall", "ovl_Obj_Tokei_Tobira", "ovl_Bg_Hakugin_Elvpole", "ovl_En_Ma4", "ovl_En_Twig", "ovl_En_Po_Fusen", "ovl_En_Door_Etc", "ovl_En_Bigokuta", "ovl_Bg_Icefloe", "ovl_Obj_Ocarinalift", "ovl_En_Time_Tag", "ovl_Bg_Open_Shutter", "ovl_Bg_Open_Spot", "ovl_Bg_Fu_Kaiten", "ovl_Obj_Aqua", "ovl_En_Elforg", "ovl_En_Elfbub", "ovl_En_Fu_Mato", "ovl_En_Fu_Kago", "ovl_En_Osn", "ovl_Bg_Ctower_Gear", "ovl_En_Trt2", "ovl_Obj_Tokei_Step", "ovl_Bg_Lotus", "ovl_En_Kame", "ovl_Obj_Takaraya_Wall", "ovl_Bg_Fu_Mizu", "ovl_En_Sellnuts", "ovl_Bg_Dkjail_Ivy", "ovl_Obj_Visiblock", "ovl_En_Takaraya", "ovl_En_Tsn", "ovl_En_Ds2n", "ovl_En_Fsn", "ovl_En_Shn", "ovl_En_Stop_heishi", "ovl_Obj_Bigicicle", "ovl_En_Lift_Nuts", "ovl_En_Tk", "ovl_Bg_Market_Step", "ovl_Obj_Lupygamelift", "ovl_En_Test7", "ovl_Obj_Lightblock", "ovl_Mir_Ray2", "ovl_En_Wdhand", "ovl_En_Gamelupy", "ovl_Bg_Danpei_Movebg", "ovl_En_Snowwd", "ovl_En_Pm", "ovl_En_Gakufu", "ovl_Elf_Msg4", "ovl_Elf_Msg5", "ovl_En_Col_Man", "ovl_En_Talk_Gibud", "ovl_En_Giant", "ovl_Obj_Snowball", "ovl_Boss_Hakugin", "ovl_En_Gb2", "ovl_En_Onpuman", "ovl_Bg_Tobira01", "ovl_En_Tag_Obj", "ovl_Obj_Dhouse", "ovl_Obj_Hakaisi", "ovl_Bg_Hakugin_Switch", "ovl_En_Snowman", "ovl_TG_Sw", "ovl_En_Po_Sisters", "ovl_En_Pp", "ovl_En_Hakurock", "ovl_En_Hanabi", "ovl_Obj_Dowsing", "ovl_Obj_Wind", "ovl_En_Racedog", "ovl_En_Kendo_Js", "ovl_Bg_Botihasira", "ovl_En_Fish2", "ovl_En_Pst", "ovl_En_Poh", "ovl_Obj_Spidertent", "ovl_En_Zoraegg", "ovl_En_Kbt", "ovl_En_Gg", "ovl_En_Maruta", "ovl_Obj_Snowball2", "ovl_En_Gg2", "ovl_Obj_Ghaka", "ovl_En_Dnp", "ovl_En_Dai", "ovl_Bg_Goron_Oyu", "ovl_En_Kgy", "ovl_En_Invadepoh", "ovl_En_Gk", "ovl_En_An", "ovl_En_Bee", "ovl_En_Ot", "ovl_En_Dragon", "ovl_Obj_Dora", "ovl_En_Bigpo", "ovl_Obj_Kendo_Kanban", "ovl_Obj_Hariko", "ovl_En_Sth", "ovl_Bg_Sinkai_Kabe", "ovl_Bg_Haka_Curtain", "ovl_Bg_Kin2_Bombwall", "ovl_Bg_Kin2_Fence", "ovl_Bg_Kin2_Picture", "ovl_Bg_Kin2_Shelf", "ovl_En_Rail_Skb", "ovl_En_Jg", "ovl_En_Tru_Mt", "ovl_Obj_Um", "ovl_En_Neo_Reeba", "ovl_Bg_Mbar_Chair", "ovl_Bg_Ikana_Block", "ovl_Bg_Ikana_Mirror", "ovl_Bg_Ikana_Rotaryroom", "ovl_Bg_Dblue_Balance", "ovl_Bg_Dblue_Waterfall", "ovl_En_Kaizoku", "ovl_En_Ge2", "ovl_En_Ma_Yts", "ovl_En_Ma_Yto", "ovl_Obj_Tokei_Turret", "ovl_Bg_Dblue_Elevator", "ovl_Obj_Warpstone", "ovl_En_Zog", "ovl_Obj_Rotlift", "ovl_Obj_Jg_Gakki", "ovl_Bg_Inibs_Movebg", "ovl_En_Zot", "ovl_Obj_Tree", "ovl_Obj_Y2lift", "ovl_Obj_Y2shutter", "ovl_Obj_Boat", "ovl_Obj_Taru", "ovl_Obj_Hunsui", "ovl_En_Jc_Mato", "ovl_Mir_Ray3", "ovl_En_Zob", "ovl_Elf_Msg6", "ovl_Obj_Nozoki", "ovl_En_Toto", "ovl_En_Railgibud", "ovl_En_Baba", "ovl_En_Suttari", "ovl_En_Zod", "ovl_En_Kujiya", "ovl_En_Geg", "ovl_Obj_Kinoko", "ovl_Obj_Yasi", "ovl_En_Tanron1", "ovl_En_Tanron2", "ovl_En_Tanron3", "ovl_Obj_Chan", "ovl_En_Zos", "ovl_En_S_Goro", "ovl_En_Nb", "ovl_En_Ja", "ovl_Bg_F40_Block", "ovl_Bg_F40_Switch", "ovl_En_Po_Composer", "ovl_En_Guruguru", "ovl_Oceff_Wipe5", "ovl_En_Stone_heishi", "ovl_Oceff_Wipe6", "ovl_En_Scopenuts", "ovl_En_Scopecrow", "ovl_Oceff_Wipe7", "ovl_Eff_Kamejima_Wave", "ovl_En_Hg", "ovl_En_Hgo", "ovl_En_Zov", "ovl_En_Ah", "ovl_Obj_Hgdoor", "ovl_Bg_Ikana_Bombwall", "ovl_Bg_Ikana_Ray", "ovl_Bg_Ikana_Shutter", "ovl_Bg_Haka_Bombwall", "ovl_Bg_Haka_Tomb", "ovl_En_Sc_Ruppe", "ovl_Bg_Iknv_Doukutu", "ovl_Bg_Iknv_Obj", "ovl_En_Pamera", "ovl_Obj_HsStump", "ovl_En_Hidden_Nuts", "ovl_En_Zow", "ovl_En_Talk", "ovl_En_Al", "ovl_En_Tab", "ovl_En_Nimotsu", "ovl_En_Hit_Tag", "ovl_En_Ruppecrow", "ovl_En_Tanron4", "ovl_En_Tanron5", "ovl_En_Tanron6", "ovl_En_Daiku2", "ovl_En_Muto", "ovl_En_Baisen", "ovl_En_Heishi", "ovl_En_Demo_heishi", "ovl_En_Dt", "ovl_En_Cha", "ovl_Obj_Dinner", "ovl_Eff_Lastday", "ovl_Bg_Ikana_Dharma", "ovl_En_Akindonuts", "ovl_Eff_Stk", "ovl_En_Ig", "ovl_En_Rg", "ovl_En_Osk", "ovl_En_Sth2", "ovl_En_Yb", "ovl_En_Rz", "ovl_En_Scopecoin", "ovl_En_Bjt", "ovl_En_Bomjima", "ovl_En_Bomjimb", "ovl_En_Bombers", "ovl_En_Bombers2", "ovl_En_Bombal", "ovl_Obj_Moon_Stone", "ovl_Obj_Mu_Pict", "ovl_Bg_Ikninside", "ovl_Eff_Zoraband", "ovl_Obj_Kepn_Koya", "ovl_Obj_Usiyane", "ovl_En_Nnh", "ovl_Obj_Kzsaku", "ovl_Obj_Milk_Bin", "ovl_En_Kitan", "ovl_Bg_Astr_Bombwall", "ovl_Bg_Iknin_Susceil", "ovl_En_Bsb", "ovl_En_Recepgirl", "ovl_En_Thiefbird", "ovl_En_Jgame_Tsn", "ovl_Obj_Jgame_Light", "ovl_Obj_Yado", "ovl_Demo_Syoten", "ovl_Demo_Moonend", "ovl_Bg_Lbfshot", "ovl_Bg_Last_Bwall", "ovl_En_And", "ovl_En_Invadepoh_Demo", "ovl_Obj_Danpeilift", "ovl_En_Fall2", "ovl_Dm_Al", "ovl_Dm_An", "ovl_Dm_Ah", "ovl_Dm_Nb", "ovl_En_Drs", "ovl_En_Ending_Hero", "ovl_Dm_Bal", "ovl_En_Paper", "ovl_En_Hint_Skb", "ovl_Dm_Tag", "ovl_En_Bh", "ovl_En_Ending_Hero2", "ovl_En_Ending_Hero3", "ovl_En_Ending_Hero4", "ovl_En_Ending_Hero5", "ovl_En_Ending_Hero6", "ovl_Dm_Gm", "ovl_Obj_Swprize", "ovl_En_Invisible_Ruppe", "ovl_Obj_Ending", "ovl_En_Rsn", ] actor_type_enum = [ "ACTORCAT_SWITCH", "ACTORCAT_BG", "ACTORCAT_PLAYER", "ACTORCAT_EXPLOSIVES", "ACTORCAT_NPC", "ACTORCAT_ENEMY", "ACTORCAT_PROP", "ACTORCAT_ITEMACTION", "ACTORCAT_MISC", "ACTORCAT_BOSS", "ACTORCAT_DOOR", "ACTORCAT_CHEST" ] actor_enum = [ "ACTOR_PLAYER", "ACTOR_EN_TEST", "ACTOR_EN_GIRLA", "ACTOR_EN_PART", "ACTOR_EN_LIGHT", "ACTOR_EN_DOOR", "ACTOR_EN_BOX", "ACTOR_EN_PAMETFROG", "ACTOR_EN_OKUTA", "ACTOR_EN_BOM", "ACTOR_EN_WALLMAS", "ACTOR_EN_DODONGO", "ACTOR_EN_FIREFLY", "ACTOR_EN_HORSE", "ACTOR_EN_ITEM00", "ACTOR_EN_ARROW", "ACTOR_EN_ELF", "ACTOR_EN_NIW", "ACTOR_EN_TITE", "ACTOR_UNSET_13", "ACTOR_EN_PEEHAT", "ACTOR_EN_BUTTE", "ACTOR_EN_INSECT", "ACTOR_EN_FISH", "ACTOR_EN_HOLL", "ACTOR_EN_DINOFOS", "ACTOR_EN_HATA", "ACTOR_EN_ZL1", "ACTOR_EN_VIEWER", "ACTOR_EN_BUBBLE", "ACTOR_DOOR_SHUTTER", "ACTOR_UNSET_1F", "ACTOR_EN_BOOM", "ACTOR_EN_TORCH2", "ACTOR_EN_MINIFROG", "ACTOR_UNSET_23", "ACTOR_EN_ST", "ACTOR_UNSET_25", "ACTOR_EN_A_OBJ", "ACTOR_OBJ_WTURN", "ACTOR_EN_RIVER_SOUND", "ACTOR_UNSET_29", "ACTOR_EN_OSSAN", "ACTOR_UNSET_2B", "ACTOR_UNSET_2C", "ACTOR_EN_FAMOS", "ACTOR_UNSET_2E", "ACTOR_EN_BOMBF", "ACTOR_UNSET_30", "ACTOR_UNSET_31", "ACTOR_EN_AM", "ACTOR_EN_DEKUBABA", "ACTOR_EN_M_FIRE1", "ACTOR_EN_M_THUNDER", "ACTOR_BG_BREAKWALL", "ACTOR_UNSET_37", "ACTOR_DOOR_WARP1", "ACTOR_OBJ_SYOKUDAI", "ACTOR_ITEM_B_HEART", "ACTOR_EN_DEKUNUTS", "ACTOR_EN_BBFALL", "ACTOR_ARMS_HOOK", "ACTOR_EN_BB", "ACTOR_BG_KEIKOKU_SPR", "ACTOR_UNSET_40", "ACTOR_EN_WOOD02", "ACTOR_UNSET_42", "ACTOR_EN_DEATH", "ACTOR_EN_MINIDEATH", "ACTOR_UNSET_45", "ACTOR_UNSET_46", "ACTOR_EN_VM", "ACTOR_DEMO_EFFECT", "ACTOR_DEMO_KANKYO", "ACTOR_EN_FLOORMAS", "ACTOR_UNSET_4B", "ACTOR_EN_RD", "ACTOR_BG_F40_FLIFT", "ACTOR_UNSET_4E", "ACTOR_OBJ_MURE", "ACTOR_EN_SW", "ACTOR_OBJECT_KANKYO", "ACTOR_UNSET_52", "ACTOR_UNSET_53", "ACTOR_EN_HORSE_LINK_CHILD", "ACTOR_DOOR_ANA", "ACTOR_UNSET_56", "ACTOR_UNSET_57", "ACTOR_UNSET_58", "ACTOR_UNSET_59", "ACTOR_UNSET_5A", "ACTOR_EN_ENCOUNT1", "ACTOR_DEMO_TRE_LGT", "ACTOR_UNSET_5D", "ACTOR_UNSET_5E", "ACTOR_EN_ENCOUNT2", "ACTOR_EN_FIRE_ROCK", "ACTOR_BG_CTOWER_ROT", "ACTOR_MIR_RAY", "ACTOR_UNSET_63", "ACTOR_EN_SB", "ACTOR_EN_BIGSLIME", "ACTOR_EN_KAREBABA", "ACTOR_EN_IN", "ACTOR_UNSET_68", "ACTOR_EN_RU", "ACTOR_EN_BOM_CHU", "ACTOR_EN_HORSE_GAME_CHECK", "ACTOR_EN_RR", "ACTOR_UNSET_6D", "ACTOR_UNSET_6E", "ACTOR_UNSET_6F", "ACTOR_UNSET_70", "ACTOR_UNSET_71", "ACTOR_UNSET_72", "ACTOR_EN_FR", "ACTOR_UNSET_74", "ACTOR_UNSET_75", "ACTOR_UNSET_76", "ACTOR_UNSET_77", "ACTOR_UNSET_78", "ACTOR_UNSET_79", "ACTOR_OBJ_OSHIHIKI", "ACTOR_EFF_DUST", "ACTOR_BG_UMAJUMP", "ACTOR_ARROW_FIRE", "ACTOR_ARROW_ICE", "ACTOR_ARROW_LIGHT", "ACTOR_ITEM_ETCETERA", "ACTOR_OBJ_KIBAKO", "ACTOR_OBJ_TSUBO", "ACTOR_UNSET_83", "ACTOR_EN_IK", "ACTOR_UNSET_85", "ACTOR_UNSET_86", "ACTOR_UNSET_87", "ACTOR_UNSET_88", "ACTOR_DEMO_SHD", "ACTOR_EN_DNS", "ACTOR_ELF_MSG", "ACTOR_EN_HONOTRAP", "ACTOR_EN_TUBO_TRAP", "ACTOR_OBJ_ICE_POLY", "ACTOR_EN_FZ", "ACTOR_EN_KUSA", "ACTOR_OBJ_BEAN", "ACTOR_OBJ_BOMBIWA", "ACTOR_OBJ_SWITCH", "ACTOR_UNSET_94", "ACTOR_OBJ_LIFT", "ACTOR_OBJ_HSBLOCK", "ACTOR_EN_OKARINA_TAG", "ACTOR_UNSET_98", "ACTOR_EN_GOROIWA", "ACTOR_UNSET_9A", "ACTOR_UNSET_9B", "ACTOR_EN_DAIKU", "ACTOR_EN_NWC", "ACTOR_ITEM_INBOX", "ACTOR_EN_GE1", "ACTOR_OBJ_BLOCKSTOP", "ACTOR_EN_SDA", "ACTOR_EN_CLEAR_TAG", "ACTOR_UNSET_A3", "ACTOR_EN_GM", "ACTOR_EN_MS", "ACTOR_EN_HS", "ACTOR_BG_INGATE", "ACTOR_EN_KANBAN", "ACTOR_UNSET_A9", "ACTOR_EN_ATTACK_NIW", "ACTOR_UNSET_AB", "ACTOR_UNSET_AC", "ACTOR_UNSET_AD", "ACTOR_EN_MK", "ACTOR_EN_OWL", "ACTOR_EN_ISHI", "ACTOR_OBJ_HANA", "ACTOR_OBJ_LIGHTSWITCH", "ACTOR_OBJ_MURE2", "ACTOR_UNSET_B4", "ACTOR_EN_FU", "ACTOR_UNSET_B6", "ACTOR_UNSET_B7", "ACTOR_EN_STREAM", "ACTOR_EN_MM", "ACTOR_UNSET_BA", "ACTOR_UNSET_BB", "ACTOR_EN_WEATHER_TAG", "ACTOR_EN_ANI", "ACTOR_UNSET_BE", "ACTOR_EN_JS", "ACTOR_UNSET_C0", "ACTOR_UNSET_C1", "ACTOR_UNSET_C2", "ACTOR_UNSET_C3", "ACTOR_EN_OKARINA_EFFECT", "ACTOR_EN_MAG", "ACTOR_ELF_MSG2", "ACTOR_BG_F40_SWLIFT", "ACTOR_UNSET_C8", "ACTOR_UNSET_C9", "ACTOR_EN_KAKASI", "ACTOR_OBJ_MAKEOSHIHIKI", "ACTOR_OCEFF_SPOT", "ACTOR_UNSET_CD", "ACTOR_EN_TORCH", "ACTOR_UNSET_CF", "ACTOR_SHOT_SUN", "ACTOR_UNSET_D1", "ACTOR_UNSET_D2", "ACTOR_OBJ_ROOMTIMER", "ACTOR_EN_SSH", "ACTOR_UNSET_D5", "ACTOR_OCEFF_WIPE", "ACTOR_OCEFF_STORM", "ACTOR_OBJ_DEMO", "ACTOR_EN_MINISLIME", "ACTOR_EN_NUTSBALL", "ACTOR_UNSET_DB", "ACTOR_UNSET_DC", "ACTOR_UNSET_DD", "ACTOR_UNSET_DE", "ACTOR_OCEFF_WIPE2", "ACTOR_OCEFF_WIPE3", "ACTOR_UNSET_E1", "ACTOR_EN_DG", "ACTOR_EN_SI", "ACTOR_OBJ_COMB", "ACTOR_OBJ_KIBAKO2", "ACTOR_UNSET_E6", "ACTOR_EN_HS2", "ACTOR_OBJ_MURE3", "ACTOR_EN_TG", "ACTOR_UNSET_EA", "ACTOR_UNSET_EB", "ACTOR_EN_WF", "ACTOR_EN_SKB", "ACTOR_UNSET_EE", "ACTOR_EN_GS", "ACTOR_OBJ_SOUND", "ACTOR_EN_CROW", "ACTOR_UNSET_F2", "ACTOR_EN_COW", "ACTOR_UNSET_F4", "ACTOR_UNSET_F5", "ACTOR_OCEFF_WIPE4", "ACTOR_UNSET_F7", "ACTOR_EN_ZO", "ACTOR_OBJ_MAKEKINSUTA", "ACTOR_EN_GE3", "ACTOR_UNSET_FB", "ACTOR_OBJ_HAMISHI", "ACTOR_EN_ZL4", "ACTOR_EN_MM2", "ACTOR_UNSET_FF", "ACTOR_DOOR_SPIRAL", "ACTOR_UNSET_101", "ACTOR_OBJ_PZLBLOCK", "ACTOR_OBJ_TOGE", "ACTOR_UNSET_104", "ACTOR_OBJ_ARMOS", "ACTOR_OBJ_BOYO", "ACTOR_UNSET_107", "ACTOR_UNSET_108", "ACTOR_EN_GRASSHOPPER", "ACTOR_UNSET_10A", "ACTOR_OBJ_GRASS", "ACTOR_OBJ_GRASS_CARRY", "ACTOR_OBJ_GRASS_UNIT", "ACTOR_UNSET_10E", "ACTOR_UNSET_10F", "ACTOR_BG_FIRE_WALL", "ACTOR_EN_BU", "ACTOR_EN_ENCOUNT3", "ACTOR_EN_JSO", "ACTOR_OBJ_CHIKUWA", "ACTOR_EN_KNIGHT", "ACTOR_EN_WARP_TAG", "ACTOR_EN_AOB_01", "ACTOR_EN_BOJ_01", "ACTOR_EN_BOJ_02", "ACTOR_EN_BOJ_03", "ACTOR_EN_ENCOUNT4", "ACTOR_EN_BOM_BOWL_MAN", "ACTOR_EN_SYATEKI_MAN", "ACTOR_UNSET_11E", "ACTOR_BG_ICICLE", "ACTOR_EN_SYATEKI_CROW", "ACTOR_EN_BOJ_04", "ACTOR_EN_CNE_01", "ACTOR_EN_BBA_01", "ACTOR_EN_BJI_01", "ACTOR_BG_SPDWEB", "ACTOR_UNSET_126", "ACTOR_UNSET_127", "ACTOR_EN_MT_TAG", "ACTOR_BOSS_01", "ACTOR_BOSS_02", "ACTOR_BOSS_03", "ACTOR_BOSS_04", "ACTOR_BOSS_05", "ACTOR_BOSS_06", "ACTOR_BOSS_07", "ACTOR_BG_DY_YOSEIZO", "ACTOR_UNSET_131", "ACTOR_EN_BOJ_05", "ACTOR_UNSET_133", "ACTOR_UNSET_134", "ACTOR_EN_SOB1", "ACTOR_UNSET_136", "ACTOR_UNSET_137", "ACTOR_EN_GO", "ACTOR_UNSET_139", "ACTOR_EN_RAF", "ACTOR_OBJ_FUNEN", "ACTOR_OBJ_RAILLIFT", "ACTOR_BG_NUMA_HANA", "ACTOR_OBJ_FLOWERPOT", "ACTOR_OBJ_SPINYROLL", "ACTOR_DM_HINA", "ACTOR_EN_SYATEKI_WF", "ACTOR_OBJ_SKATEBLOCK", "ACTOR_OBJ_ICEBLOCK", "ACTOR_EN_BIGPAMET", "ACTOR_EN_SYATEKI_DEKUNUTS", "ACTOR_ELF_MSG3", "ACTOR_EN_FG", "ACTOR_DM_RAVINE", "ACTOR_DM_SA", "ACTOR_EN_SLIME", "ACTOR_EN_PR", "ACTOR_OBJ_TOUDAI", "ACTOR_OBJ_ENTOTU", "ACTOR_OBJ_BELL", "ACTOR_EN_SYATEKI_OKUTA", "ACTOR_UNSET_150", "ACTOR_OBJ_SHUTTER", "ACTOR_DM_ZL", "ACTOR_EN_ELFGRP", "ACTOR_DM_TSG", "ACTOR_EN_BAGUO", "ACTOR_OBJ_VSPINYROLL", "ACTOR_OBJ_SMORK", "ACTOR_EN_TEST2", "ACTOR_EN_TEST3", "ACTOR_EN_TEST4", "ACTOR_EN_BAT", "ACTOR_EN_SEKIHI", "ACTOR_EN_WIZ", "ACTOR_EN_WIZ_BROCK", "ACTOR_EN_WIZ_FIRE", "ACTOR_EFF_CHANGE", "ACTOR_DM_STATUE", "ACTOR_OBJ_FIRESHIELD", "ACTOR_BG_LADDER", "ACTOR_EN_MKK", "ACTOR_DEMO_GETITEM", "ACTOR_UNSET_166", "ACTOR_EN_DNB", "ACTOR_EN_DNH", "ACTOR_EN_DNK", "ACTOR_EN_DNQ", "ACTOR_UNSET_16B", "ACTOR_BG_KEIKOKU_SAKU", "ACTOR_OBJ_HUGEBOMBIWA", "ACTOR_EN_FIREFLY2", "ACTOR_EN_RAT", "ACTOR_EN_WATER_EFFECT", "ACTOR_EN_KUSA2", "ACTOR_BG_SPOUT_FIRE", "ACTOR_UNSET_173", "ACTOR_BG_DBLUE_MOVEBG", "ACTOR_EN_DY_EXTRA", "ACTOR_EN_BAL", "ACTOR_EN_GINKO_MAN", "ACTOR_EN_WARP_UZU", "ACTOR_OBJ_DRIFTICE", "ACTOR_EN_LOOK_NUTS", "ACTOR_EN_MUSHI2", "ACTOR_EN_FALL", "ACTOR_EN_MM3", "ACTOR_BG_CRACE_MOVEBG", "ACTOR_EN_DNO", "ACTOR_EN_PR2", "ACTOR_EN_PRZ", "ACTOR_EN_JSO2", "ACTOR_OBJ_ETCETERA", "ACTOR_EN_EGOL", "ACTOR_OBJ_MINE", "ACTOR_OBJ_PURIFY", "ACTOR_EN_TRU", "ACTOR_EN_TRT", "ACTOR_UNSET_189", "ACTOR_UNSET_18A", "ACTOR_EN_TEST5", "ACTOR_EN_TEST6", "ACTOR_EN_AZ", "ACTOR_EN_ESTONE", "ACTOR_BG_HAKUGIN_POST", "ACTOR_DM_OPSTAGE", "ACTOR_DM_STK", "ACTOR_DM_CHAR00", "ACTOR_DM_CHAR01", "ACTOR_DM_CHAR02", "ACTOR_DM_CHAR03", "ACTOR_DM_CHAR04", "ACTOR_DM_CHAR05", "ACTOR_DM_CHAR06", "ACTOR_DM_CHAR07", "ACTOR_DM_CHAR08", "ACTOR_DM_CHAR09", "ACTOR_OBJ_TOKEIDAI", "ACTOR_UNSET_19D", "ACTOR_EN_MNK", "ACTOR_EN_EGBLOCK", "ACTOR_EN_GUARD_NUTS", "ACTOR_BG_HAKUGIN_BOMBWALL", "ACTOR_OBJ_TOKEI_TOBIRA", "ACTOR_BG_HAKUGIN_ELVPOLE", "ACTOR_EN_MA4", "ACTOR_EN_TWIG", "ACTOR_EN_PO_FUSEN", "ACTOR_EN_DOOR_ETC", "ACTOR_EN_BIGOKUTA", "ACTOR_BG_ICEFLOE", "ACTOR_OBJ_OCARINALIFT", "ACTOR_EN_TIME_TAG", "ACTOR_BG_OPEN_SHUTTER", "ACTOR_BG_OPEN_SPOT", "ACTOR_BG_FU_KAITEN", "ACTOR_OBJ_AQUA", "ACTOR_EN_ELFORG", "ACTOR_EN_ELFBUB", "ACTOR_UNSET_1B2", "ACTOR_EN_FU_MATO", "ACTOR_EN_FU_KAGO", "ACTOR_EN_OSN", "ACTOR_BG_CTOWER_GEAR", "ACTOR_EN_TRT2", "ACTOR_OBJ_TOKEI_STEP", "ACTOR_BG_LOTUS", "ACTOR_EN_KAME", "ACTOR_OBJ_TAKARAYA_WALL", "ACTOR_BG_FU_MIZU", "ACTOR_EN_SELLNUTS", "ACTOR_BG_DKJAIL_IVY", "ACTOR_UNSET_1BF", "ACTOR_OBJ_VISIBLOCK", "ACTOR_EN_TAKARAYA", "ACTOR_EN_TSN", "ACTOR_EN_DS2N", "ACTOR_EN_FSN", "ACTOR_EN_SHN", "ACTOR_UNSET_1C6", "ACTOR_EN_STOP_HEISHI", "ACTOR_OBJ_BIGICICLE", "ACTOR_EN_LIFT_NUTS", "ACTOR_EN_TK", "ACTOR_UNSET_1CB", "ACTOR_BG_MARKET_STEP", "ACTOR_OBJ_LUPYGAMELIFT", "ACTOR_EN_TEST7", "ACTOR_OBJ_LIGHTBLOCK", "ACTOR_MIR_RAY2", "ACTOR_EN_WDHAND", "ACTOR_EN_GAMELUPY", "ACTOR_BG_DANPEI_MOVEBG", "ACTOR_EN_SNOWWD", "ACTOR_EN_PM", "ACTOR_EN_GAKUFU", "ACTOR_ELF_MSG4", "ACTOR_ELF_MSG5", "ACTOR_EN_COL_MAN", "ACTOR_EN_TALK_GIBUD", "ACTOR_EN_GIANT", "ACTOR_OBJ_SNOWBALL", "ACTOR_BOSS_HAKUGIN", "ACTOR_EN_GB2", "ACTOR_EN_ONPUMAN", "ACTOR_BG_TOBIRA01", "ACTOR_EN_TAG_OBJ", "ACTOR_OBJ_DHOUSE", "ACTOR_OBJ_HAKAISI", "ACTOR_BG_HAKUGIN_SWITCH", "ACTOR_UNSET_1E5", "ACTOR_EN_SNOWMAN", "ACTOR_TG_SW", "ACTOR_EN_PO_SISTERS", "ACTOR_EN_PP", "ACTOR_EN_HAKUROCK", "ACTOR_EN_HANABI", "ACTOR_OBJ_DOWSING", "ACTOR_OBJ_WIND", "ACTOR_EN_RACEDOG", "ACTOR_EN_KENDO_JS", "ACTOR_BG_BOTIHASIRA", "ACTOR_EN_FISH2", "ACTOR_EN_PST", "ACTOR_EN_POH", "ACTOR_OBJ_SPIDERTENT", "ACTOR_EN_ZORAEGG", "ACTOR_EN_KBT", "ACTOR_EN_GG", "ACTOR_EN_MARUTA", "ACTOR_OBJ_SNOWBALL2", "ACTOR_EN_GG2", "ACTOR_OBJ_GHAKA", "ACTOR_EN_DNP", "ACTOR_EN_DAI", "ACTOR_BG_GORON_OYU", "ACTOR_EN_KGY", "ACTOR_EN_INVADEPOH", "ACTOR_EN_GK", "ACTOR_EN_AN", "ACTOR_UNSET_203", "ACTOR_EN_BEE", "ACTOR_EN_OT", "ACTOR_EN_DRAGON", "ACTOR_OBJ_DORA", "ACTOR_EN_BIGPO", "ACTOR_OBJ_KENDO_KANBAN", "ACTOR_OBJ_HARIKO", "ACTOR_EN_STH", "ACTOR_BG_SINKAI_KABE", "ACTOR_BG_HAKA_CURTAIN", "ACTOR_BG_KIN2_BOMBWALL", "ACTOR_BG_KIN2_FENCE", "ACTOR_BG_KIN2_PICTURE", "ACTOR_BG_KIN2_SHELF", "ACTOR_EN_RAIL_SKB", "ACTOR_EN_JG", "ACTOR_EN_TRU_MT", "ACTOR_OBJ_UM", "ACTOR_EN_NEO_REEBA", "ACTOR_BG_MBAR_CHAIR", "ACTOR_BG_IKANA_BLOCK", "ACTOR_BG_IKANA_MIRROR", "ACTOR_BG_IKANA_ROTARYROOM", "ACTOR_BG_DBLUE_BALANCE", "ACTOR_BG_DBLUE_WATERFALL", "ACTOR_EN_KAIZOKU", "ACTOR_EN_GE2", "ACTOR_EN_MA_YTS", "ACTOR_EN_MA_YTO", "ACTOR_OBJ_TOKEI_TURRET", "ACTOR_BG_DBLUE_ELEVATOR", "ACTOR_OBJ_WARPSTONE", "ACTOR_EN_ZOG", "ACTOR_OBJ_ROTLIFT", "ACTOR_OBJ_JG_GAKKI", "ACTOR_BG_INIBS_MOVEBG", "ACTOR_EN_ZOT", "ACTOR_OBJ_TREE", "ACTOR_OBJ_Y2LIFT", "ACTOR_OBJ_Y2SHUTTER", "ACTOR_OBJ_BOAT", "ACTOR_OBJ_TARU", "ACTOR_OBJ_HUNSUI", "ACTOR_EN_JC_MATO", "ACTOR_MIR_RAY3", "ACTOR_EN_ZOB", "ACTOR_ELF_MSG6", "ACTOR_OBJ_NOZOKI", "ACTOR_EN_TOTO", "ACTOR_EN_RAILGIBUD", "ACTOR_EN_BABA", "ACTOR_EN_SUTTARI", "ACTOR_EN_ZOD", "ACTOR_EN_KUJIYA", "ACTOR_EN_GEG", "ACTOR_OBJ_KINOKO", "ACTOR_OBJ_YASI", "ACTOR_EN_TANRON1", "ACTOR_EN_TANRON2", "ACTOR_EN_TANRON3", "ACTOR_OBJ_CHAN", "ACTOR_EN_ZOS", "ACTOR_EN_S_GORO", "ACTOR_EN_NB", "ACTOR_EN_JA", "ACTOR_BG_F40_BLOCK", "ACTOR_BG_F40_SWITCH", "ACTOR_EN_PO_COMPOSER", "ACTOR_EN_GURUGURU", "ACTOR_OCEFF_WIPE5", "ACTOR_EN_STONE_HEISHI", "ACTOR_OCEFF_WIPE6", "ACTOR_EN_SCOPENUTS", "ACTOR_EN_SCOPECROW", "ACTOR_OCEFF_WIPE7", "ACTOR_EFF_KAMEJIMA_WAVE", "ACTOR_EN_HG", "ACTOR_EN_HGO", "ACTOR_EN_ZOV", "ACTOR_EN_AH", "ACTOR_OBJ_HGDOOR", "ACTOR_BG_IKANA_BOMBWALL", "ACTOR_BG_IKANA_RAY", "ACTOR_BG_IKANA_SHUTTER", "ACTOR_BG_HAKA_BOMBWALL", "ACTOR_BG_HAKA_TOMB", "ACTOR_EN_SC_RUPPE", "ACTOR_BG_IKNV_DOUKUTU", "ACTOR_BG_IKNV_OBJ", "ACTOR_EN_PAMERA", "ACTOR_OBJ_HSSTUMP", "ACTOR_EN_HIDDEN_NUTS", "ACTOR_EN_ZOW", "ACTOR_EN_TALK", "ACTOR_EN_AL", "ACTOR_EN_TAB", "ACTOR_EN_NIMOTSU", "ACTOR_EN_HIT_TAG", "ACTOR_EN_RUPPECROW", "ACTOR_EN_TANRON4", "ACTOR_EN_TANRON5", "ACTOR_EN_TANRON6", "ACTOR_EN_DAIKU2", "ACTOR_EN_MUTO", "ACTOR_EN_BAISEN", "ACTOR_EN_HEISHI", "ACTOR_EN_DEMO_HEISHI", "ACTOR_EN_DT", "ACTOR_EN_CHA", "ACTOR_OBJ_DINNER", "ACTOR_EFF_LASTDAY", "ACTOR_BG_IKANA_DHARMA", "ACTOR_EN_AKINDONUTS", "ACTOR_EFF_STK", "ACTOR_EN_IG", "ACTOR_EN_RG", "ACTOR_EN_OSK", "ACTOR_EN_STH2", "ACTOR_EN_YB", "ACTOR_EN_RZ", "ACTOR_EN_SCOPECOIN", "ACTOR_EN_BJT", "ACTOR_EN_BOMJIMA", "ACTOR_EN_BOMJIMB", "ACTOR_EN_BOMBERS", "ACTOR_EN_BOMBERS2", "ACTOR_EN_BOMBAL", "ACTOR_OBJ_MOON_STONE", "ACTOR_OBJ_MU_PICT", "ACTOR_BG_IKNINSIDE", "ACTOR_EFF_ZORABAND", "ACTOR_OBJ_KEPN_KOYA", "ACTOR_OBJ_USIYANE", "ACTOR_EN_NNH", "ACTOR_OBJ_KZSAKU", "ACTOR_OBJ_MILK_BIN", "ACTOR_EN_KITAN", "ACTOR_BG_ASTR_BOMBWALL", "ACTOR_BG_IKNIN_SUSCEIL", "ACTOR_EN_BSB", "ACTOR_EN_RECEPGIRL", "ACTOR_EN_THIEFBIRD", "ACTOR_EN_JGAME_TSN", "ACTOR_OBJ_JGAME_LIGHT", "ACTOR_OBJ_YADO", "ACTOR_DEMO_SYOTEN", "ACTOR_DEMO_MOONEND", "ACTOR_BG_LBFSHOT", "ACTOR_BG_LAST_BWALL", "ACTOR_EN_AND", "ACTOR_EN_INVADEPOH_DEMO", "ACTOR_OBJ_DANPEILIFT", "ACTOR_EN_FALL2", "ACTOR_DM_AL", "ACTOR_DM_AN", "ACTOR_DM_AH", "ACTOR_DM_NB", "ACTOR_EN_DRS", "ACTOR_EN_ENDING_HERO", "ACTOR_DM_BAL", "ACTOR_EN_PAPER", "ACTOR_EN_HINT_SKB", "ACTOR_DM_TAG", "ACTOR_EN_BH", "ACTOR_EN_ENDING_HERO2", "ACTOR_EN_ENDING_HERO3", "ACTOR_EN_ENDING_HERO4", "ACTOR_EN_ENDING_HERO5", "ACTOR_EN_ENDING_HERO6", "ACTOR_DM_GM", "ACTOR_OBJ_SWPRIZE", "ACTOR_EN_INVISIBLE_RUPPE", "ACTOR_OBJ_ENDING", "ACTOR_EN_RSN" ] object_enum = [ "OBJECT_UNSET_0", "GAMEPLAY_KEEP", "GAMEPLAY_FIELD_KEEP", "GAMEPLAY_DANGEON_KEEP", "OBJECT_NB", "OBJECT_OKUTA", "OBJECT_CROW", "OBJECT_AH", "OBJECT_DY_OBJ", "OBJECT_WALLMASTER", "OBJECT_DODONGO", "OBJECT_FIREFLY", "OBJECT_BOX", "OBJECT_AL", "OBJECT_BUBBLE", "OBJECT_NIW", "OBJECT_LINK_BOY", "OBJECT_LINK_CHILD", "OBJECT_TITE", "OBJECT_TAB", "OBJECT_PH", "OBJECT_AND", "OBJECT_MSMO", "OBJECT_DINOFOS", "OBJECT_DRS", "OBJECT_ZL1", "OBJECT_AN4", "OBJECT_UNSET_1B", "OBJECT_TEST3", "OBJECT_FAMOS", "OBJECT_UNSET_1E", "OBJECT_UNSET_1F", "OBJECT_ST", "OBJECT_UNSET_21", "OBJECT_THIEFBIRD", "OBJECT_UNSET_23", "OBJECT_UNSET_24", "OBJECT_UNSET_25", "OBJECT_UNSET_26", "OBJECT_UNSET_27", "OBJECT_UNSET_28", "OBJECT_UNSET_29", "OBJECT_BOMBF", "OBJECT_UNSET_2B", "OBJECT_UNSET_2C", "OBJECT_UNSET_2D", "OBJECT_UNSET_2E", "OBJECT_UNSET_2F", "OBJECT_AM", "OBJECT_DEKUBABA", "OBJECT_UNSET_32", "OBJECT_UNSET_33", "OBJECT_UNSET_34", "OBJECT_UNSET_35", "OBJECT_UNSET_36", "OBJECT_UNSET_37", "OBJECT_UNSET_38", "OBJECT_UNSET_39", "OBJECT_UNSET_3A", "OBJECT_UNSET_3B", "OBJECT_UNSET_3C", "OBJECT_UNSET_3D", "OBJECT_WARP1", "OBJECT_B_HEART", "OBJECT_DEKUNUTS", "OBJECT_UNSET_41", "OBJECT_UNSET_42", "OBJECT_UNSET_43", "OBJECT_UNSET_44", "OBJECT_UNSET_45", "OBJECT_UNSET_46", "OBJECT_UNSET_47", "OBJECT_UNSET_48", "OBJECT_UNSET_49", "OBJECT_UNSET_4A", "OBJECT_UNSET_4B", "OBJECT_UNSET_4C", "OBJECT_UNSET_4D", "OBJECT_UNSET_4E", "OBJECT_UNSET_4F", "OBJECT_UNSET_50", "OBJECT_BB", "OBJECT_DEATH", "OBJECT_UNSET_53", "OBJECT_UNSET_54", "OBJECT_UNSET_55", "OBJECT_UNSET_56", "OBJECT_UNSET_57", "OBJECT_UNSET_58", "OBJECT_UNSET_59", "OBJECT_UNSET_5A", "OBJECT_UNSET_5B", "OBJECT_F40_OBJ", "OBJECT_PO_COMPOSER", "OBJECT_UNSET_5E", "OBJECT_HATA", "OBJECT_UNSET_60", "OBJECT_WOOD02", "OBJECT_UNSET_62", "OBJECT_UNSET_63", "OBJECT_TRAP", "OBJECT_UNSET_65", "OBJECT_UNSET_66", "OBJECT_UNSET_67", "OBJECT_UNSET_68", "OBJECT_UNSET_69", "OBJECT_VM", "OBJECT_UNSET_6B", "OBJECT_UNSET_6C", "OBJECT_UNSET_6D", "OBJECT_UNSET_6E", "OBJECT_UNSET_6F", "OBJECT_EFC_STAR_FIELD", "OBJECT_UNSET_71", "OBJECT_UNSET_72", "OBJECT_UNSET_73", "OBJECT_UNSET_74", "OBJECT_RD", "OBJECT_YUKIMURA_OBJ", "OBJECT_HEAVY_OBJECT", "OBJECT_UNSET_78", "OBJECT_UNSET_79", "OBJECT_UNSET_7A", "OBJECT_UNSET_7B", "OBJECT_UNSET_7C", "OBJECT_HORSE_LINK_CHILD", "OBJECT_UNSET_7E", "OBJECT_UNSET_7F", "OBJECT_SYOKUDAI", "OBJECT_UNSET_81", "OBJECT_UNSET_82", "OBJECT_UNSET_83", "OBJECT_EFC_TW", "OBJECT_UNSET_85", "OBJECT_GI_KEY", "OBJECT_MIR_RAY", "OBJECT_CTOWER_ROT", "OBJECT_UNSET_89", "OBJECT_BDOOR", "OBJECT_UNSET_8B", "OBJECT_UNSET_8C", "OBJECT_UNSET_8D", "OBJECT_SB", "OBJECT_GI_MELODY", "OBJECT_GI_HEART", "OBJECT_GI_COMPASS", "OBJECT_GI_BOSSKEY", "OBJECT_UNSET_93", "OBJECT_GI_NUTS", "OBJECT_UNSET_95", "OBJECT_GI_HEARTS", "OBJECT_GI_ARROWCASE", "OBJECT_GI_BOMBPOUCH", "OBJECT_IN", "OBJECT_UNSET_9A", "OBJECT_UNSET_9B", "OBJECT_UNSET_9C", "OBJECT_OS_ANIME", "OBJECT_GI_BOTTLE", "OBJECT_GI_STICK", "OBJECT_GI_MAP", "OBJECT_OF1D_MAP", "OBJECT_RU2", "OBJECT_UNSET_A3", "OBJECT_GI_MAGICPOT", "OBJECT_GI_BOMB_1", "OBJECT_UNSET_A6", "OBJECT_MA2", "OBJECT_GI_PURSE", "OBJECT_UNSET_A9", "OBJECT_UNSET_AA", "OBJECT_RR", "OBJECT_UNSET_AC", "OBJECT_UNSET_AD", "OBJECT_UNSET_AE", "OBJECT_GI_ARROW", "OBJECT_GI_BOMB_2", "OBJECT_UNSET_B1", "OBJECT_UNSET_B2", "OBJECT_GI_SHIELD_2", "OBJECT_GI_HOOKSHOT", "OBJECT_GI_OCARINA", "OBJECT_GI_MILK", "OBJECT_MA1", "OBJECT_UNSET_B8", "OBJECT_UNSET_B9", "OBJECT_UNSET_BA", "OBJECT_NY", "OBJECT_FR", "OBJECT_UNSET_BD", "OBJECT_UNSET_BE", "OBJECT_GI_BOW", "OBJECT_GI_GLASSES", "OBJECT_GI_LIQUID", "OBJECT_ANI", "OBJECT_GI_SHIELD_3", "OBJECT_UNSET_C4", "OBJECT_UNSET_C5", "OBJECT_GI_BEAN", "OBJECT_GI_FISH", "OBJECT_UNSET_C8", "OBJECT_UNSET_C9", "OBJECT_UNSET_CA", "OBJECT_GI_LONGSWORD", "OBJECT_UNSET_CC", "OBJECT_UNSET_CD", "OBJECT_UNSET_CE", "OBJECT_UNSET_CF", "OBJECT_ZO", "OBJECT_UNSET_D1", "OBJECT_UMAJUMP", "OBJECT_UNSET_D3", "OBJECT_UNSET_D4", "OBJECT_MASTERGOLON", "OBJECT_MASTERZOORA", "OBJECT_AOB", "OBJECT_IK", "OBJECT_AHG", "OBJECT_CNE", "OBJECT_UNSET_DB", "OBJECT_UNSET_DC", "OBJECT_AN3", "OBJECT_BJI", "OBJECT_BBA", "OBJECT_AN2", "OBJECT_UNSET_E1", "OBJECT_AN1", "OBJECT_BOJ", "OBJECT_FZ", "OBJECT_BOB", "OBJECT_GE1", "OBJECT_YABUSAME_POINT", "OBJECT_UNSET_E8", "OBJECT_UNSET_E9", "OBJECT_UNSET_EA", "OBJECT_UNSET_EB", "OBJECT_D_HSBLOCK", "OBJECT_D_LIFT", "OBJECT_MAMENOKI", "OBJECT_GOROIWA", "OBJECT_TORYO", "OBJECT_DAIKU", "OBJECT_NWC", "OBJECT_GM", "OBJECT_MS", "OBJECT_HS", "OBJECT_UNSET_F6", "OBJECT_LIGHTSWITCH", "OBJECT_KUSA", "OBJECT_TSUBO", "OBJECT_UNSET_FA", "OBJECT_UNSET_FB", "OBJECT_KANBAN", "OBJECT_OWL", "OBJECT_MK", "OBJECT_FU", "OBJECT_GI_KI_TAN_MASK", "OBJECT_UNSET_101", "OBJECT_GI_MASK18", "OBJECT_GI_RABIT_MASK", "OBJECT_GI_TRUTH_MASK", "OBJECT_UNSET_105", "OBJECT_STREAM", "OBJECT_MM", "OBJECT_UNSET_108", "OBJECT_UNSET_109", "OBJECT_UNSET_10A", "OBJECT_UNSET_10B", "OBJECT_UNSET_10C", "OBJECT_UNSET_10D", "OBJECT_UNSET_10E", "OBJECT_JS", "OBJECT_CS", "OBJECT_UNSET_111", "OBJECT_UNSET_112", "OBJECT_GI_SOLDOUT", "OBJECT_UNSET_114", "OBJECT_MAG", "OBJECT_UNSET_116", "OBJECT_UNSET_117", "OBJECT_UNSET_118", "OBJECT_GI_GOLONMASK", "OBJECT_GI_ZORAMASK", "OBJECT_UNSET_11B", "OBJECT_UNSET_11C", "OBJECT_KA", "OBJECT_UNSET_11E", "OBJECT_ZG", "OBJECT_UNSET_120", "OBJECT_GI_M_ARROW", "OBJECT_DS2", "OBJECT_UNSET_123", "OBJECT_FISH", "OBJECT_GI_SUTARU", "OBJECT_UNSET_126", "OBJECT_SSH", "OBJECT_BIGSLIME", "OBJECT_BG", "OBJECT_BOMBIWA", "OBJECT_HINTNUTS", "OBJECT_RS", "OBJECT_UNSET_12D", "OBJECT_GLA", "OBJECT_UNSET_12F", "OBJECT_GELDB", "OBJECT_UNSET_131", "OBJECT_DOG", "OBJECT_KIBAKO2", "OBJECT_DNS", "OBJECT_DNK", "OBJECT_UNSET_136", "OBJECT_GI_INSECT", "OBJECT_UNSET_138", "OBJECT_GI_GHOST", "OBJECT_GI_SOUL", "OBJECT_UNSET_13B", "OBJECT_UNSET_13C", "OBJECT_UNSET_13D", "OBJECT_UNSET_13E", "OBJECT_GI_RUPY", "OBJECT_MU", "OBJECT_WF", "OBJECT_SKB", "OBJECT_GS", "OBJECT_PS", "OBJECT_OMOYA_OBJ", "OBJECT_COW", "OBJECT_UNSET_147", "OBJECT_GI_SWORD_1", "OBJECT_UNSET_149", "OBJECT_UNSET_14A", "OBJECT_ZL4", "OBJECT_LINK_GORON", "OBJECT_LINK_ZORA", "OBJECT_GRASSHOPPER", "OBJECT_BOYO", "OBJECT_UNSET_150", "OBJECT_UNSET_151", "OBJECT_UNSET_152", "OBJECT_FWALL", "OBJECT_LINK_NUTS", "OBJECT_JSO", "OBJECT_KNIGHT", "OBJECT_ICICLE", "OBJECT_SPDWEB", "OBJECT_UNSET_159", "OBJECT_BOSS01", "OBJECT_BOSS02", "OBJECT_BOSS03", "OBJECT_BOSS04", "OBJECT_BOSS05", "OBJECT_BOSS06", "OBJECT_BOSS07", "OBJECT_RAF", "OBJECT_FUNEN", "OBJECT_RAILLIFT", "OBJECT_NUMA_OBJ", "OBJECT_FLOWERPOT", "OBJECT_SPINYROLL", "OBJECT_ICE_BLOCK", "OBJECT_UNSET_168", "OBJECT_KEIKOKU_DEMO", "OBJECT_SLIME", "OBJECT_PR", "OBJECT_F52_OBJ", "OBJECT_F53_OBJ", "OBJECT_UNSET_16E", "OBJECT_KIBAKO", "OBJECT_SEK", "OBJECT_GMO", "OBJECT_BAT", "OBJECT_SEKIHIL", "OBJECT_SEKIHIG", "OBJECT_SEKIHIN", "OBJECT_SEKIHIZ", "OBJECT_UNSET_177", "OBJECT_WIZ", "OBJECT_LADDER", "OBJECT_MKK", "OBJECT_UNSET_17B", "OBJECT_UNSET_17C", "OBJECT_UNSET_17D", "OBJECT_KEIKOKU_OBJ", "OBJECT_SICHITAI_OBJ", "OBJECT_DEKUCITY_ANA_OBJ", "OBJECT_RAT", "OBJECT_WATER_EFFECT", "OBJECT_UNSET_183", "OBJECT_DBLUE_OBJECT", "OBJECT_BAL", "OBJECT_WARP_UZU", "OBJECT_DRIFTICE", "OBJECT_FALL", "OBJECT_HANAREYAMA_OBJ", "OBJECT_CRACE_OBJECT", "OBJECT_DNQ", "OBJECT_OBJECT_UNSET_TOKEIDAI", "OBJECT_EG", "OBJECT_TRU", "OBJECT_TRT", "OBJECT_HAKUGIN_OBJ", "OBJECT_HORSE_GAME_CHECK", "OBJECT_STK", "OBJECT_UNSET_193", "OBJECT_UNSET_194", "OBJECT_MNK", "OBJECT_GI_BOTTLE_RED", "OBJECT_TOKEI_TOBIRA", "OBJECT_AZ", "OBJECT_TWIG", "OBJECT_DEKUCITY_OBJ", "OBJECT_PO_FUSEN", "OBJECT_RACETSUBO", "OBJECT_HA", "OBJECT_BIGOKUTA", "OBJECT_OPEN_OBJ", "OBJECT_FU_KAITEN", "OBJECT_FU_MATO", "OBJECT_MTORIDE", "OBJECT_OSN", "OBJECT_TOKEI_STEP", "OBJECT_LOTUS", "OBJECT_TL", "OBJECT_DKJAIL_OBJ", "OBJECT_VISIBLOCK", "OBJECT_TSN", "OBJECT_DS2N", "OBJECT_FSN", "OBJECT_SHN", "OBJECT_BIGICICLE", "OBJECT_GI_BOTTLE_15", "OBJECT_TK", "OBJECT_MARKET_OBJ", "OBJECT_GI_RESERVE00", "OBJECT_GI_RESERVE01", "OBJECT_LIGHTBLOCK", "OBJECT_TAKARAYA_OBJECTS", "OBJECT_WDHAND", "OBJECT_SDN", "OBJECT_SNOWWD", "OBJECT_GIANT", "OBJECT_COMB", "OBJECT_HANA", "OBJECT_BOSS_HAKUGIN", "OBJECT_MEGANEANA_OBJ", "OBJECT_GI_NUTSMASK", "OBJECT_STK2", "OBJECT_SPOT11_OBJ", "OBJECT_DANPEI_OBJECT", "OBJECT_DHOUSE", "OBJECT_HAKAISI", "OBJECT_PO", "OBJECT_SNOWMAN", "OBJECT_PO_SISTERS", "OBJECT_PP", "OBJECT_GORONSWITCH", "OBJECT_DELF", "OBJECT_BOTIHASIRA", "OBJECT_GI_BIGBOMB", "OBJECT_PST", "OBJECT_BSMASK", "OBJECT_SPIDERTENT", "OBJECT_ZORAEGG", "OBJECT_KBT", "OBJECT_GG", "OBJECT_MARUTA", "OBJECT_GHAKA", "OBJECT_OYU", "OBJECT_DNP", "OBJECT_DAI", "OBJECT_KGY", "OBJECT_FB", "OBJECT_TAISOU", "OBJECT_MASK_BU_SAN", "OBJECT_MASK_KI_TAN", "OBJECT_MASK_RABIT", "OBJECT_MASK_SKJ", "OBJECT_MASK_BAKURETU", "OBJECT_MASK_TRUTH", "OBJECT_GK", "OBJECT_HAKA_OBJ", "OBJECT_MASK_GORON", "OBJECT_MASK_ZORA", "OBJECT_MASK_NUTS", "OBJECT_MASK_BOY", "OBJECT_DNT", "OBJECT_YUKIYAMA", "OBJECT_ICEFLOE", "OBJECT_GI_GOLD_DUST", "OBJECT_GI_BOTTLE_16", "OBJECT_GI_BOTTLE_22", "OBJECT_BEE", "OBJECT_OT", "OBJECT_UTUBO", "OBJECT_DORA", "OBJECT_GI_LOACH", "OBJECT_GI_SEAHORSE", "OBJECT_BIGPO", "OBJECT_HARIKO", "OBJECT_DNO", "OBJECT_SINKAI_KABE", "OBJECT_KIN2_OBJ", "OBJECT_ISHI", "OBJECT_HAKUGIN_DEMO", "OBJECT_JG", "OBJECT_GI_SWORD_2", "OBJECT_GI_SWORD_3", "OBJECT_GI_SWORD_4", "OBJECT_UM", "OBJECT_MASK_GIBUDO", "OBJECT_MASK_JSON", "OBJECT_MASK_KERFAY", "OBJECT_MASK_BIGELF", "OBJECT_RB", "OBJECT_MBAR_OBJ", "OBJECT_IKANA_OBJ", "OBJECT_KZ", "OBJECT_TOKEI_TURRET", "OBJECT_ZOG", "OBJECT_ROTLIFT", "OBJECT_POSTHOUSE_OBJ", "OBJECT_GI_MASK09", "OBJECT_GI_MASK14", "OBJECT_GI_MASK15", "OBJECT_INIBS_OBJECT", "OBJECT_TREE", "OBJECT_KAIZOKU_OBJ", "OBJECT_GI_RESERVE_B_00", "OBJECT_GI_RESERVE_C_00", "OBJECT_ZOB", "OBJECT_MILKBAR", "OBJECT_DMASK", "OBJECT_MASK_KYOJIN", "OBJECT_GI_RESERVE_C_01", "OBJECT_ZOD", "OBJECT_KUMO30", "OBJECT_OBJECT_UNSET_YASI", "OBJECT_MASK_ROMERNY", "OBJECT_TANRON1", "OBJECT_TANRON2", "OBJECT_TANRON3", "OBJECT_GI_MAGICMUSHROOM", "OBJECT_OBJECT_UNSET_CHAN", "OBJECT_GI_MASK10", "OBJECT_ZOS", "OBJECT_MASK_POSTHAT", "OBJECT_F40_SWITCH", "OBJECT_LODMOON", "OBJECT_TRO", "OBJECT_GI_MASK12", "OBJECT_GI_MASK23", "OBJECT_GI_BOTTLE_21", "OBJECT_GI_CAMERA", "OBJECT_KAMEJIMA", "OBJECT_HARFGIBUD", "OBJECT_ZOV", "OBJECT_HGDOOR", "OBJECT_UNSET_22D", "OBJECT_UNSET_22E", "OBJECT_UNSET_22F", "OBJECT_DOR01", "OBJECT_DOR02", "OBJECT_DOR03", "OBJECT_DOR04", "OBJECT_LAST_OBJ", "OBJECT_REDEAD_OBJ", "OBJECT_IKNINSIDE_OBJ", "OBJECT_IKNV_OBJ", "OBJECT_PAMERA", "OBJECT_HSSTUMP", "OBJECT_ZM", "OBJECT_BIG_FWALL", "OBJECT_SECOM_OBJ", "OBJECT_HUNSUI", "OBJECT_UCH", "OBJECT_TANRON4", "OBJECT_TANRON5", "OBJECT_DT", "OBJECT_GI_MASK03", "OBJECT_CHA", "OBJECT_OBJECT_UNSET_DINNER", "OBJECT_GI_RESERVE_B_01", "OBJECT_LASTDAY", "OBJECT_BAI", "OBJECT_IN2", "OBJECT_IKN_DEMO", "OBJECT_YB", "OBJECT_RZ", "OBJECT_MASK_ZACHO", "OBJECT_GI_FIELDMAP", "OBJECT_MASK_STONE", "OBJECT_BJT", "OBJECT_TARU", "OBJECT_MOONSTON", "OBJECT_MASK_BREE", "OBJECT_GI_SCHEDULE", "OBJECT_GI_STONEMASK", "OBJECT_ZORABAND", "OBJECT_KEPN_KOYA", "OBJECT_OBJECT_UNSET_USIYANE", "OBJECT_GI_MASK05", "OBJECT_GI_MASK11", "OBJECT_GI_MASK20", "OBJECT_NNH", "OBJECT_MASK_GERO", "OBJECT_MASK_YOFUKASI", "OBJECT_MASK_MEOTO", "OBJECT_MASK_DANCER", "OBJECT_KZSAKU", "OBJECT_OBJECT_UNSET_MILK_BIN", "OBJECT_RANDOM_OBJ", "OBJECT_KUJIYA", "OBJECT_KITAN", "OBJECT_GI_MASK06", "OBJECT_GI_MASK16", "OBJECT_ASTR_OBJ", "OBJECT_BSB", "OBJECT_FALL2", "OBJECT_STH", "OBJECT_GI_MSSA", "OBJECT_SMTOWER", "OBJECT_GI_MASK21", "OBJECT_YADO_OBJ", "OBJECT_SYOTEN", "OBJECT_MOONEND", "OBJECT_OB", "OBJECT_GI_BOTTLE_04", "OBJECT_OBJECT_UNSET_DANPEILIFT", "OBJECT_WDOR01", "OBJECT_WDOR02", "OBJECT_WDOR03", "OBJECT_STK3", "OBJECT_KINSTA1_OBJ", "OBJECT_KINSTA2_OBJ", "OBJECT_BH", "OBJECT_WDOR04", "OBJECT_WDOR05", "OBJECT_GI_MASK17", "OBJECT_GI_MASK22", "OBJECT_LBFSHOT", "OBJECT_FUSEN", "OBJECT_ENDING_OBJ", "OBJECT_GI_MASK13" ] asm_files = [] def read_file(name): file_data=[] try: with open(name, 'rb') as f: file_data = f.read() except IOError: print('failed to read file ' + name) return file_data def read_uint32_be(file_data, offset): return struct.unpack('>I', file_data[offset:offset+4])[0] def read_uint16_be(file_data, offset): return struct.unpack('>H', file_data[offset:offset+2])[0] def read_uint8(file_data, offset): return struct.unpack('B', file_data[offset:offset+1])[0] def read_actor_init(file_data, offset): init = collections.namedtuple('ActorInit', '''actor_id actor_type flags object_id instance_size init destroy update draw''') return init._make(struct.unpack('>hBxIhxx5I', file_data[offset:offset+32])) def make_func_name(actor, offset, name): if offset == 0: return "NULL" elif offset < 0x80800000: return "func_{:08X}".format(offset) else: return actor + "_" + name for dirpath, dirnames, files in os.walk(os.path.abspath(os.curdir + "/asm/")): asm_files = files break for actor, overlay in zip(actor_names, overlay_names): #print(actor + " " + overlay) file_data = read_file("decomp/" + overlay) folder_name = "overlays/actors/" + overlay + "/" os.makedirs(folder_name, exist_ok=True) actor_code_file = "z_" + overlay[4:].lower() + ".c" actor_header_file = "z_" + overlay[4:].lower() + ".h" asm_file = [x for x in asm_files if (overlay + "_0x80") in x and "data" not in x][0] #print(overlay + " " + str(actor_code_file)) with open(folder_name + "/overlay.cfg", 'w') as f: f.write(overlay + "\n") f.write(actor_code_file + "\n") struct_name = overlay[4:].replace("_", "") #print(overlay + " " + struct_name) with open("asm/" + overlay + "_data.asm", "r") as f: data = f.read() init_data_re = re.search("/\* (\d*) .* \*/ \.word " + struct_name + "_Init", data) offset = (int(init_data_re.group(1)) - 4) * 4 actor_init = read_actor_init(file_data, offset) #print(overlay + " " + str(actor_init)) with open(folder_name + actor_header_file, 'w') as f: header_guard = "Z_" + actor[6:] + "_H" instance_size_extra = actor_init.instance_size - 0x144 f.write("#ifndef " + header_guard + "\n") f.write("#define " + header_guard + "\n\n") f.write("#include \n\n") f.write("struct " + struct_name + ";\n\n") size_len_base16 = len("{:X}".format(actor_init.instance_size)) f.write("typedef struct " + struct_name + " {\n") f.write(" /* 0x{num:0{width}} */ Actor actor;\n".format(num = 0, width = size_len_base16)) if instance_size_extra != 0: f.write(" /* 0x{num:0{width}X} */ char unk_{num:0{width}X}[0x{extra:X}];\n".format(num = 0x144, width = size_len_base16, extra = instance_size_extra)) f.write("} " + struct_name + "; // size = 0x{:X}\n\n".format(actor_init.instance_size)) f.write("extern const ActorInit " + (overlay[4:] + "_InitVars") + ";\n\n") f.write("#endif // " + header_guard + "\n") with open(folder_name + actor_code_file, 'w') as f: init_name = make_func_name(struct_name, actor_init.init, "Init") destroy_name = make_func_name(struct_name, actor_init.destroy, "Destroy") update_name = make_func_name(struct_name, actor_init.update, "Update") draw_name = make_func_name(struct_name, actor_init.draw, "Draw") f.write("#include \"" + actor_header_file + "\"\n\n") f.write("#define FLAGS 0x{:08X}\n\n".format(actor_init.flags)) f.write("#define THIS ((" + struct_name + "*)thisx)\n\n") if actor_init.init >= 0x80800000: f.write("void " + init_name + "(Actor* thisx, GlobalContext* globalCtx);\n") if actor_init.destroy >= 0x80800000: f.write("void " + destroy_name + "(Actor* thisx, GlobalContext* globalCtx);\n") if actor_init.update >= 0x80800000: f.write("void " + update_name + "(Actor* thisx, GlobalContext* globalCtx);\n") if actor_init.draw >= 0x80800000: f.write("void " + draw_name + "(Actor* thisx, GlobalContext* globalCtx);\n") f.write("\n") f.write("/*\n") f.write("const ActorInit " + (overlay[4:] + "_InitVars") + " = {\n") f.write(" " + actor_enum[actor_init.actor_id] + ",\n") f.write(" " + actor_type_enum[actor_init.actor_type] + ",\n") f.write(" FLAGS,\n") f.write(" " + object_enum[actor_init.object_id] + ",\n") f.write(" sizeof(" + struct_name + "),\n") f.write(" (ActorFunc)" + init_name + ",\n") f.write(" (ActorFunc)" + destroy_name + ",\n") f.write(" (ActorFunc)" + update_name + ",\n") f.write(" (ActorFunc)" + draw_name + "\n") f.write("};\n") f.write("*/\n") func_names = [] with open("asm/" + asm_file, "r") as asm: lines = asm.readlines() for line in lines: if line.startswith("glabel") and not line.startswith("glabel .L"): func_name = line.split()[1] assert(func_name != "") file_name = "asm/non_matchings/" + asm_file[:-4] + "/" + func_name + ".asm" func_names.append(file_name) for name in func_names: f.write("\n#pragma GLOBAL_ASM(\"{}\")\n".format(name))