From df526e388b39951947717c1e6d6fc081171c25a1 Mon Sep 17 00:00:00 2001 From: robojumper Date: Fri, 24 May 2024 10:33:21 +0200 Subject: [PATCH 1/3] 3 rels --- .../rels/d_t_light_shaft_effNP/splits.txt | 3 ++- .../rels/d_t_light_shaft_effNP/symbols.txt | 16 ++++++------- config/SOUE01/rels/d_t_map_instNP/splits.txt | 3 ++- config/SOUE01/rels/d_t_map_instNP/symbols.txt | 16 ++++++------- config/SOUE01/rels/d_t_tackleNP/splits.txt | 3 ++- config/SOUE01/rels/d_t_tackleNP/symbols.txt | 16 ++++++------- configure.py | 6 ++--- include/d/a/d_a_base.h | 15 +++++++++++- include/d/tg/d_tg.h | 23 +++++++++++++++++++ src/REL/d/t/d_t_light_shaft_eff.cpp | 13 +++++++++++ src/REL/d/t/d_t_map_inst.cpp | 23 +++++++++++++++++++ src/REL/d/t/d_t_tackle.cpp | 13 +++++++++++ src/d/a/d_a_base.cpp | 2 +- 13 files changed, 120 insertions(+), 32 deletions(-) create mode 100644 include/d/tg/d_tg.h diff --git a/config/SOUE01/rels/d_t_light_shaft_effNP/splits.txt b/config/SOUE01/rels/d_t_light_shaft_effNP/splits.txt index b8f78807..d6482ee9 100644 --- a/config/SOUE01/rels/d_t_light_shaft_effNP/splits.txt +++ b/config/SOUE01/rels/d_t_light_shaft_effNP/splits.txt @@ -2,7 +2,7 @@ Sections: .text type:code align:16 .ctors type:rodata align:4 .dtors type:rodata align:4 - .rodata type:rodata align:8 + .data type:data align:8 .bss type:bss align:8 REL/executor.c: @@ -10,3 +10,4 @@ REL/executor.c: REL/d/t/d_t_light_shaft_eff.cpp: .text start:0x00000070 end:0x0000015C + .data start:0x00000000 end:0x00000084 diff --git a/config/SOUE01/rels/d_t_light_shaft_effNP/symbols.txt b/config/SOUE01/rels/d_t_light_shaft_effNP/symbols.txt index 4e9e9ee6..cc0d5627 100644 --- a/config/SOUE01/rels/d_t_light_shaft_effNP/symbols.txt +++ b/config/SOUE01/rels/d_t_light_shaft_effNP/symbols.txt @@ -1,13 +1,13 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global -fn_593_70 = .text:0x00000070; // type:function size:0x4C -fn_593_C0 = .text:0x000000C0; // type:function size:0x8 -fn_593_D0 = .text:0x000000D0; // type:function size:0x8 -fn_593_E0 = .text:0x000000E0; // type:function size:0x8 -fn_593_F0 = .text:0x000000F0; // type:function size:0x8 -fn_593_100 = .text:0x00000100; // type:function size:0x5C +construct__18dTgLightShaftEff_cFv = .text:0x00000070; // type:function size:0x4C +create__5dTg_cFv = .text:0x000000C0; // type:function size:0x8 +doDelete__5dTg_cFv = .text:0x000000D0; // type:function size:0x8 +actorExecute__5dTg_cFv = .text:0x000000E0; // type:function size:0x8 +draw__5dTg_cFv = .text:0x000000F0; // type:function size:0x8 +__dt__18dTgLightShaftEff_cFv = .text:0x00000100; // type:function size:0x5C _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -lbl_593_section4_0 = .rodata:0x00000000; // type:object size:0x10 -lbl_593_section4_10 = .rodata:0x00000010; // type:object size:0x74 +init_dTgLightShaftEff_c = .data:0x00000000; // type:object size:0x10 +__vt__18dTgLightShaftEff_c = .data:0x00000010; // type:object size:0x74 diff --git a/config/SOUE01/rels/d_t_map_instNP/splits.txt b/config/SOUE01/rels/d_t_map_instNP/splits.txt index edb06c47..7f72b8d4 100644 --- a/config/SOUE01/rels/d_t_map_instNP/splits.txt +++ b/config/SOUE01/rels/d_t_map_instNP/splits.txt @@ -2,7 +2,7 @@ Sections: .text type:code align:16 .ctors type:rodata align:4 .dtors type:rodata align:4 - .rodata type:rodata align:8 + .data type:data align:8 .bss type:bss align:8 REL/executor.c: @@ -10,3 +10,4 @@ REL/executor.c: REL/d/t/d_t_map_inst.cpp: .text start:0x00000070 end:0x0000015C + .data start:0x00000000 end:0x00000084 diff --git a/config/SOUE01/rels/d_t_map_instNP/symbols.txt b/config/SOUE01/rels/d_t_map_instNP/symbols.txt index 7ad95202..8db070b5 100644 --- a/config/SOUE01/rels/d_t_map_instNP/symbols.txt +++ b/config/SOUE01/rels/d_t_map_instNP/symbols.txt @@ -1,13 +1,13 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global -fn_437_70 = .text:0x00000070; // type:function size:0x4C -fn_437_C0 = .text:0x000000C0; // type:function size:0x10 -fn_437_D0 = .text:0x000000D0; // type:function size:0x8 -fn_437_E0 = .text:0x000000E0; // type:function size:0x8 -fn_437_F0 = .text:0x000000F0; // type:function size:0x8 -fn_437_100 = .text:0x00000100; // type:function size:0x5C +construct__12dTgMapInst_cFv = .text:0x00000070; // type:function size:0x4C +create__12dTgMapInst_cFv = .text:0x000000C0; // type:function size:0x10 +doDelete__5dTg_cFv = .text:0x000000D0; // type:function size:0x8 +actorExecute__5dTg_cFv = .text:0x000000E0; // type:function size:0x8 +draw__5dTg_cFv = .text:0x000000F0; // type:function size:0x8 +__dt__12dTgMapInst_cFv = .text:0x00000100; // type:function size:0x5C _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -lbl_437_section4_0 = .rodata:0x00000000; // type:object size:0x10 -lbl_437_section4_10 = .rodata:0x00000010; // type:object size:0x74 +init_dTgMapInst_c = .data:0x00000000; // type:object size:0x10 +__vt__12dTgMapInst_c = .data:0x00000010; // type:object size:0x74 diff --git a/config/SOUE01/rels/d_t_tackleNP/splits.txt b/config/SOUE01/rels/d_t_tackleNP/splits.txt index 905a1f6a..1f85ea49 100644 --- a/config/SOUE01/rels/d_t_tackleNP/splits.txt +++ b/config/SOUE01/rels/d_t_tackleNP/splits.txt @@ -2,7 +2,7 @@ Sections: .text type:code align:16 .ctors type:rodata align:4 .dtors type:rodata align:4 - .rodata type:rodata align:8 + .data type:data align:8 .bss type:bss align:8 REL/executor.c: @@ -10,3 +10,4 @@ REL/executor.c: REL/d/t/d_t_tackle.cpp: .text start:0x00000070 end:0x0000015C + .data start:0x00000000 end:0x00000084 diff --git a/config/SOUE01/rels/d_t_tackleNP/symbols.txt b/config/SOUE01/rels/d_t_tackleNP/symbols.txt index de3909f0..cf1ba96e 100644 --- a/config/SOUE01/rels/d_t_tackleNP/symbols.txt +++ b/config/SOUE01/rels/d_t_tackleNP/symbols.txt @@ -1,13 +1,13 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global -fn_472_70 = .text:0x00000070; // type:function size:0x4C -fn_472_C0 = .text:0x000000C0; // type:function size:0x8 -fn_472_D0 = .text:0x000000D0; // type:function size:0x8 -fn_472_E0 = .text:0x000000E0; // type:function size:0x8 -fn_472_F0 = .text:0x000000F0; // type:function size:0x8 -fn_472_100 = .text:0x00000100; // type:function size:0x5C +construct__11dTgTackle_cFv = .text:0x00000070; // type:function size:0x4C +create__5dTg_cFv = .text:0x000000C0; // type:function size:0x8 +doDelete__5dTg_cFv = .text:0x000000D0; // type:function size:0x8 +actorExecute__5dTg_cFv = .text:0x000000E0; // type:function size:0x8 +draw__5dTg_cFv = .text:0x000000F0; // type:function size:0x8 +__dt__11dTgTackle_cFv = .text:0x00000100; // type:function size:0x5C _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -lbl_472_section4_0 = .rodata:0x00000000; // type:object size:0x10 -lbl_472_section4_10 = .rodata:0x00000010; // type:object size:0x74 +init_dTgTackle_c = .data:0x00000000; // type:object size:0x10 +__vt__11dTgTackle_c = .data:0x00000010; // type:object size:0x74 diff --git a/configure.py b/configure.py index 62187b35..e8516119 100644 --- a/configure.py +++ b/configure.py @@ -1024,8 +1024,8 @@ config.libs = [ Rel(NonMatching, "d_t_ks", "REL/d/t/d_t_ks.cpp"), Rel(NonMatching, "d_t_kytag", "REL/d/t/d_t_kytag.cpp"), Rel(NonMatching, "d_t_lb_thunder", "REL/d/t/d_t_lb_thunder.cpp"), - Rel(NonMatching, "d_t_light_shaft_eff", "REL/d/t/d_t_light_shaft_eff.cpp"), - Rel(NonMatching, "d_t_map_inst", "REL/d/t/d_t_map_inst.cpp"), + Rel(Matching, "d_t_light_shaft_eff", "REL/d/t/d_t_light_shaft_eff.cpp"), + Rel(Matching, "d_t_map_inst", "REL/d/t/d_t_map_inst.cpp"), Rel(NonMatching, "d_t_map_mark", "REL/d/t/d_t_map_mark.cpp"), Rel(NonMatching, "d_t_megami_diving", "REL/d/t/d_t_megami_diving.cpp"), Rel(NonMatching, "d_t_miechan", "REL/d/t/d_t_miechan.cpp"), @@ -1063,7 +1063,7 @@ config.libs = [ Rel(NonMatching, "d_t_stream", "REL/d/t/d_t_stream.cpp"), Rel(NonMatching, "d_t_sword_battle_game", "REL/d/t/d_t_sword_battle_game.cpp"), Rel(NonMatching, "d_t_sw_area", "REL/d/t/d_t_sw_area.cpp"), - Rel(NonMatching, "d_t_tackle", "REL/d/t/d_t_tackle.cpp"), + Rel(Matching, "d_t_tackle", "REL/d/t/d_t_tackle.cpp"), Rel(NonMatching, "d_t_telop", "REL/d/t/d_t_telop.cpp"), Rel(NonMatching, "d_t_timer", "REL/d/t/d_t_timer.cpp"), Rel(NonMatching, "d_t_time_area_check", "REL/d/t/d_t_time_area_check.cpp"), diff --git a/include/d/a/d_a_base.h b/include/d/a/d_a_base.h index 5ae0efe0..7f4c7fce 100644 --- a/include/d/a/d_a_base.h +++ b/include/d/a/d_a_base.h @@ -12,6 +12,19 @@ #include "toBeSorted/room_manager.h" class dAcBase_c; + +/** + * Actors are always created through a lookup table + * of these objects. + */ +struct dActorInit { + dAcBase_c *(*create)(); + u16 executeOrder; + u16 drawOrder; + u32 baseProperties; + u32 defaultFlags; +}; + struct SoundInfo { dAcBase_c *actor; void *obj_sound; @@ -69,7 +82,7 @@ protected: /* 0x64 | 8002ceb0 */ virtual bool restorePosRotFromCopy(); /* 0x68 | 8002db80 */ virtual void *getCurrentEventActor(); /* 0x6C | 8002db90 */ virtual void unkVirtFunc_0x6C(); - /* 0x70 | 8002dba0 */ virtual void doInteraction(s32); + /* 0x70 | 8002dba0 */ virtual void doInteraction(int); public: /* 8002c3b0 */ dAcBase_c(); diff --git a/include/d/tg/d_tg.h b/include/d/tg/d_tg.h new file mode 100644 index 00000000..ceb14579 --- /dev/null +++ b/include/d/tg/d_tg.h @@ -0,0 +1,23 @@ +#ifndef D_TG_H +#define D_TG_H + +#include + +class dTg_c : public dAcBase_c { +public: + virtual ~dTg_c() {} + virtual int draw() override { + return 1; + } + virtual int actorExecute() override { + return 1; + } + virtual int doDelete() override { + return 1; + } + virtual int create() override { + return 1; + } +}; + +#endif diff --git a/src/REL/d/t/d_t_light_shaft_eff.cpp b/src/REL/d/t/d_t_light_shaft_eff.cpp index e69de29b..81c8e3ec 100644 --- a/src/REL/d/t/d_t_light_shaft_eff.cpp +++ b/src/REL/d/t/d_t_light_shaft_eff.cpp @@ -0,0 +1,13 @@ +#include + +class dTgLightShaftEff_c : public dTg_c { +public: + dTgLightShaftEff_c() {} + virtual ~dTgLightShaftEff_c() {} + + static dAcBase_c *construct() { + return new dTgLightShaftEff_c(); + } +}; + +dActorInit init_dTgLightShaftEff_c = { dTgLightShaftEff_c::construct, 0x00bd, 0x025e, 0, 0 }; diff --git a/src/REL/d/t/d_t_map_inst.cpp b/src/REL/d/t/d_t_map_inst.cpp index e69de29b..166b4604 100644 --- a/src/REL/d/t/d_t_map_inst.cpp +++ b/src/REL/d/t/d_t_map_inst.cpp @@ -0,0 +1,23 @@ +#include + +class dTgMapInst_c : public dTg_c { +public: + dTgMapInst_c() { } + virtual ~dTgMapInst_c() {} + + virtual int create() override; + static dAcBase_c *construct(); + + u8 field_0xfc; +}; + +dAcBase_c *dTgMapInst_c::construct() { + return new dTgMapInst_c(); +} + +int dTgMapInst_c::create() { + field_0xfc = params & 0xff; + return 1; +} + +dActorInit init_dTgMapInst_c = { dTgMapInst_c::construct, 0x025d, 0x021d, 0, 0 }; diff --git a/src/REL/d/t/d_t_tackle.cpp b/src/REL/d/t/d_t_tackle.cpp index e69de29b..883c9af4 100644 --- a/src/REL/d/t/d_t_tackle.cpp +++ b/src/REL/d/t/d_t_tackle.cpp @@ -0,0 +1,13 @@ +#include + +class dTgTackle_c : public dTg_c { +public: + dTgTackle_c() {} + virtual ~dTgTackle_c() {} + + static dAcBase_c *construct() { + return new dTgTackle_c(); + } +}; + +dActorInit init_dTgTackle_c = { dTgTackle_c::construct, 0x0210, 0x0241, 0, 0 }; diff --git a/src/d/a/d_a_base.cpp b/src/d/a/d_a_base.cpp index 51705bd2..4f700c56 100644 --- a/src/d/a/d_a_base.cpp +++ b/src/d/a/d_a_base.cpp @@ -234,7 +234,7 @@ dAcBase_c dAcBase_c::createActorUnkGroup3(ProfileName actorId, u32 params1, Vec3 void *dAcBase_c::getCurrentEventActor() {} void dAcBase_c::unkVirtFunc_0x6C() {} -void dAcBase_c::doInteraction(s32) {} +void dAcBase_c::doInteraction(int) {} void dAcBase_c::FUN_8002dc20(s16 *, s16 *) {} void dAcBase_c::incrementKillCounter() {} void dAcBase_c::FUN_8002dcd0() {} From 1838276436649def38f68f509ddf7be6ab7374ad Mon Sep 17 00:00:00 2001 From: elijah-thomas774 Date: Sat, 25 May 2024 20:30:57 -0400 Subject: [PATCH 2/3] fixup profile list and added headers. (d_profile also started) --- config/SOUE01/rels/d_profileNP/splits.txt | 3 +- config/SOUE01/rels/d_profileNP/symbols.txt | 2 +- .../rels/d_t_light_shaft_effNP/symbols.txt | 4 +- config/SOUE01/rels/d_t_map_instNP/symbols.txt | 4 +- config/SOUE01/rels/d_t_tackleNP/symbols.txt | 4 +- include/d/a/d_a_base.h | 12 - include/d/d_profile.h | 712 +++++++++++++++++ include/d/tg/d_t_light_shaft_eff.h | 12 + include/d/tg/d_t_map_inst.h | 16 + include/d/tg/d_t_tackle.h | 12 + include/f/f_profile.h | 17 +- include/f/f_profile_name.h | 5 +- src/REL/d/d_profile.cpp | 717 ++++++++++++++++++ src/REL/d/t/d_t_light_shaft_eff.cpp | 14 +- src/REL/d/t/d_t_map_inst.cpp | 19 +- src/REL/d/t/d_t_tackle.cpp | 14 +- 16 files changed, 1500 insertions(+), 67 deletions(-) create mode 100644 include/d/d_profile.h create mode 100644 include/d/tg/d_t_light_shaft_eff.h create mode 100644 include/d/tg/d_t_map_inst.h create mode 100644 include/d/tg/d_t_tackle.h diff --git a/config/SOUE01/rels/d_profileNP/splits.txt b/config/SOUE01/rels/d_profileNP/splits.txt index 0a355c95..d4c3c7fa 100644 --- a/config/SOUE01/rels/d_profileNP/splits.txt +++ b/config/SOUE01/rels/d_profileNP/splits.txt @@ -2,7 +2,7 @@ Sections: .text type:code align:16 .ctors type:rodata align:4 .dtors type:rodata align:4 - .rodata type:rodata align:8 + .data type:data align:8 .bss type:bss align:8 REL/executor.c: @@ -10,3 +10,4 @@ REL/executor.c: REL/d/d_profile.cpp: .text start:0x00000070 end:0x000000A0 + .data start:0x00000000 end:0x00000AFC diff --git a/config/SOUE01/rels/d_profileNP/symbols.txt b/config/SOUE01/rels/d_profileNP/symbols.txt index f7d091f9..9297da2a 100644 --- a/config/SOUE01/rels/d_profileNP/symbols.txt +++ b/config/SOUE01/rels/d_profileNP/symbols.txt @@ -5,4 +5,4 @@ ModuleProlog = .text:0x00000070; // type:function size:0x14 ModuleEpilog = .text:0x00000090; // type:function size:0x10 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -lbl_1_section4_0 = .rodata:0x00000000; // type:object size:0xAFC +profileList = .data:0x00000000; // type:object size:0xAFC diff --git a/config/SOUE01/rels/d_t_light_shaft_effNP/symbols.txt b/config/SOUE01/rels/d_t_light_shaft_effNP/symbols.txt index cc0d5627..fb105ef3 100644 --- a/config/SOUE01/rels/d_t_light_shaft_effNP/symbols.txt +++ b/config/SOUE01/rels/d_t_light_shaft_effNP/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global -construct__18dTgLightShaftEff_cFv = .text:0x00000070; // type:function size:0x4C +dTgLightShaftEff_c_classInit__Fv = .text:0x00000070; // type:function size:0x4C create__5dTg_cFv = .text:0x000000C0; // type:function size:0x8 doDelete__5dTg_cFv = .text:0x000000D0; // type:function size:0x8 actorExecute__5dTg_cFv = .text:0x000000E0; // type:function size:0x8 @@ -9,5 +9,5 @@ draw__5dTg_cFv = .text:0x000000F0; // type:function size:0x8 __dt__18dTgLightShaftEff_cFv = .text:0x00000100; // type:function size:0x5C _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -init_dTgLightShaftEff_c = .data:0x00000000; // type:object size:0x10 +g_profile_TAG_LIGHT_SHAFT_EFF = .data:0x00000000; // type:object size:0x10 __vt__18dTgLightShaftEff_c = .data:0x00000010; // type:object size:0x74 diff --git a/config/SOUE01/rels/d_t_map_instNP/symbols.txt b/config/SOUE01/rels/d_t_map_instNP/symbols.txt index 8db070b5..976fa02b 100644 --- a/config/SOUE01/rels/d_t_map_instNP/symbols.txt +++ b/config/SOUE01/rels/d_t_map_instNP/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global -construct__12dTgMapInst_cFv = .text:0x00000070; // type:function size:0x4C +dTgMapInst_c_classInit__Fv = .text:0x00000070; // type:function size:0x4C create__12dTgMapInst_cFv = .text:0x000000C0; // type:function size:0x10 doDelete__5dTg_cFv = .text:0x000000D0; // type:function size:0x8 actorExecute__5dTg_cFv = .text:0x000000E0; // type:function size:0x8 @@ -9,5 +9,5 @@ draw__5dTg_cFv = .text:0x000000F0; // type:function size:0x8 __dt__12dTgMapInst_cFv = .text:0x00000100; // type:function size:0x5C _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -init_dTgMapInst_c = .data:0x00000000; // type:object size:0x10 +g_profile_TAG_MAP_INST = .data:0x00000000; // type:object size:0x10 __vt__12dTgMapInst_c = .data:0x00000010; // type:object size:0x74 diff --git a/config/SOUE01/rels/d_t_tackleNP/symbols.txt b/config/SOUE01/rels/d_t_tackleNP/symbols.txt index cf1ba96e..1ab3d997 100644 --- a/config/SOUE01/rels/d_t_tackleNP/symbols.txt +++ b/config/SOUE01/rels/d_t_tackleNP/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global -construct__11dTgTackle_cFv = .text:0x00000070; // type:function size:0x4C +dTgTackle_c_classInit__Fv = .text:0x00000070; // type:function size:0x4C create__5dTg_cFv = .text:0x000000C0; // type:function size:0x8 doDelete__5dTg_cFv = .text:0x000000D0; // type:function size:0x8 actorExecute__5dTg_cFv = .text:0x000000E0; // type:function size:0x8 @@ -9,5 +9,5 @@ draw__5dTg_cFv = .text:0x000000F0; // type:function size:0x8 __dt__11dTgTackle_cFv = .text:0x00000100; // type:function size:0x5C _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -init_dTgTackle_c = .data:0x00000000; // type:object size:0x10 +g_profile_TACKLE_TAG = .data:0x00000000; // type:object size:0x10 __vt__11dTgTackle_c = .data:0x00000010; // type:object size:0x74 diff --git a/include/d/a/d_a_base.h b/include/d/a/d_a_base.h index 7f4c7fce..c2a2e6b8 100644 --- a/include/d/a/d_a_base.h +++ b/include/d/a/d_a_base.h @@ -13,18 +13,6 @@ class dAcBase_c; -/** - * Actors are always created through a lookup table - * of these objects. - */ -struct dActorInit { - dAcBase_c *(*create)(); - u16 executeOrder; - u16 drawOrder; - u32 baseProperties; - u32 defaultFlags; -}; - struct SoundInfo { dAcBase_c *actor; void *obj_sound; diff --git a/include/d/d_profile.h b/include/d/d_profile.h new file mode 100644 index 00000000..69b4e2de --- /dev/null +++ b/include/d/d_profile.h @@ -0,0 +1,712 @@ +#ifndef D_PROFILE_H +#define D_PROFILE_H + +#include + +// TODO: Fix the fProfile::[profile_class_type] as it is progressed + +extern const fProfile::fActorProfile_c g_profile_TITLE; +extern const fProfile::fActorProfile_c g_profile_E3_TITLE; +extern const fProfile::fActorProfile_c g_profile_E3_GAMEEND; +extern const fProfile::fActorProfile_c g_profile_THPPLAYER; +extern const fProfile::fActorProfile_c g_profile_GAME; +extern const fProfile::fActorProfile_c g_profile_STAGE_MANAGER; +extern const fProfile::fActorProfile_c g_profile_STAGE; +extern const fProfile::fActorProfile_c g_profile_STAGE_SELECT; +extern const fProfile::fActorProfile_c g_profile_VIEW_CLIP_TAG; +extern const fProfile::fActorProfile_c g_profile_START_TAG; +extern const fProfile::fActorProfile_c g_profile_MAP_AREA_TAG; +extern const fProfile::fActorProfile_c g_profile_TRUCK_RAIL; +extern const fProfile::fActorProfile_c g_profile_TAG_STREAM; +extern const fProfile::fActorProfile_c g_profile_COL_BOMSLD; +extern const fProfile::fActorProfile_c g_profile_OBJ_STAGE_KRAKEN; +extern const fProfile::fActorProfile_c g_profile_OBJ_STAGE_KRAKEN_PARTS; +extern const fProfile::fActorProfile_c g_profile_OBJ_TIME_STONE; +extern const fProfile::fActorProfile_c g_profile_OBJ_SW; +extern const fProfile::fActorProfile_c g_profile_OBJ_BLOCK_ROPE; +extern const fProfile::fActorProfile_c g_profile_OBJ_PUSH_BLOCK; +extern const fProfile::fActorProfile_c g_profile_OBJ_KIBAKO; +extern const fProfile::fActorProfile_c g_profile_OBJ_LOG; +extern const fProfile::fActorProfile_c g_profile_OBJ_LOG_WATER; +extern const fProfile::fActorProfile_c g_profile_OBJ_BELT_CVR; +extern const fProfile::fActorProfile_c g_profile_OBJ_DRUM; +extern const fProfile::fActorProfile_c g_profile_OBJ_BELT_OBSTACLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_HIMO; +extern const fProfile::fActorProfile_c g_profile_OBJ_SPIDER_LINE; +extern const fProfile::fActorProfile_c g_profile_OBJ_WIND; +extern const fProfile::fActorProfile_c g_profile_OBJ_WIND03; +extern const fProfile::fActorProfile_c g_profile_OBJ_WIND04; +extern const fProfile::fActorProfile_c g_profile_OBJ_TORNADO; +extern const fProfile::fActorProfile_c g_profile_OBJ_SWITCH_WALL; +extern const fProfile::fActorProfile_c g_profile_OBJ_TOWER_D101; +extern const fProfile::fActorProfile_c g_profile_OBJ_DOOR_DUNGEON_D200; +extern const fProfile::fActorProfile_c g_profile_OBJ_DOOR_DUNGEON; +extern const fProfile::fActorProfile_c g_profile_OBJ_WOOD_BOARD; +extern const fProfile::fActorProfile_c g_profile_OBJ_CLAW_SHOT_TG; +extern const fProfile::fActorProfile_c g_profile_OBJ_BULB_SWITCH; +extern const fProfile::fActorProfile_c g_profile_OBJ_SIDE_SHUTTER; +extern const fProfile::fActorProfile_c g_profile_OBJ_HIT_LEVER_SW; +extern const fProfile::fActorProfile_c g_profile_OBJ_FENCE_IRON; +extern const fProfile::fActorProfile_c g_profile_OBJ_UPDOWN_LAVA; +extern const fProfile::fActorProfile_c g_profile_OBJ_BB_OBJECTS; +extern const fProfile::fActorProfile_c g_profile_OBJ_BRIDGE_BUILDING; +extern const fProfile::fActorProfile_c g_profile_OBJ_CANNON; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROULETTE_ISLAND_C; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROULETTE_ISLAND_R; +extern const fProfile::fActorProfile_c g_profile_OBJ_BRIDGE_STRETCH; +extern const fProfile::fActorProfile_c g_profile_OBJ_IRON_STAGE; +extern const fProfile::fActorProfile_c g_profile_OBJ_UTAJIMA_STOPPER; +extern const fProfile::fActorProfile_c g_profile_OBJ_UTAJIMA_MAIN_MECHA; +extern const fProfile::fActorProfile_c g_profile_OBJ_UTAJIMA_PEDESTAL; +extern const fProfile::fActorProfile_c g_profile_OBJ_UTAJIMA_ISLAND; +extern const fProfile::fActorProfile_c g_profile_OBJ_CANNON_COVER; +extern const fProfile::fActorProfile_c g_profile_OBJ_UTAJIMA; +extern const fProfile::fActorProfile_c g_profile_OBJ_UTAJIMA_LV2; +extern const fProfile::fActorProfile_c g_profile_OBJ_PUZZLE_ISLAND; +extern const fProfile::fActorProfile_c g_profile_OBJ_FENCE_BOKO; +extern const fProfile::fActorProfile_c g_profile_OBJ_FENCE_BOKO2; +extern const fProfile::fActorProfile_c g_profile_OBJ_WINDMILL; +extern const fProfile::fActorProfile_c g_profile_OBJ_PINWHEEL; +extern const fProfile::fActorProfile_c g_profile_OBJ_LIGHTHOUSE_HARP; +extern const fProfile::fActorProfile_c g_profile_OBJ_FENCE_KONSAI; +extern const fProfile::fActorProfile_c g_profile_OBJ_STAGE_SINK; +extern const fProfile::fActorProfile_c g_profile_OBJ_STAGE_WATER; +extern const fProfile::fActorProfile_c g_profile_OBJ_STAGE_COVER; +extern const fProfile::fActorProfile_c g_profile_OBJ_STAGE_CRACK; +extern const fProfile::fActorProfile_c g_profile_OBJ_TERRY_ISLAND; +extern const fProfile::fActorProfile_c g_profile_OBJ_INSECT_ISLAND; +extern const fProfile::fActorProfile_c g_profile_OBJ_SHRINE_AFTER; +extern const fProfile::fActorProfile_c g_profile_OBJ_SHRINE_BEFORE; +extern const fProfile::fActorProfile_c g_profile_OBJ_SHIP_WINDOW; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_SURFACE; +extern const fProfile::fActorProfile_c g_profile_OBJ_PUMPKIN_BAR; +extern const fProfile::fActorProfile_c g_profile_OBJ_TREASURE_ISLAND; +extern const fProfile::fActorProfile_c g_profile_OBJ_SEALED_DOOR; +extern const fProfile::fActorProfile_c g_profile_OBJ_EVIL_FIELD; +extern const fProfile::fActorProfile_c g_profile_OBJ_MEGAMI_ISLAND; +extern const fProfile::fActorProfile_c g_profile_OBJ_CITY; +extern const fProfile::fActorProfile_c g_profile_OBJ_BAMBOO_ISLAND; +extern const fProfile::fActorProfile_c g_profile_OBJ_STREAM_LAVA; +extern const fProfile::fActorProfile_c g_profile_OBJ_DOWN_LAVA; +extern const fProfile::fActorProfile_c g_profile_OBJ_APPEAR_BRIDGE; +extern const fProfile::fActorProfile_c g_profile_OBJ_TRUCK_STOPPER; +extern const fProfile::fActorProfile_c g_profile_OBJ_ISLAND_NUSI; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROCK_SKY; +extern const fProfile::fActorProfile_c g_profile_OBJ_TREASURE_ISLAND_B; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_F100; +extern const fProfile::fActorProfile_c g_profile_OBJ_BELL; +extern const fProfile::fActorProfile_c g_profile_OBJ_SHRINE_BEF_INSIDE; +extern const fProfile::fActorProfile_c g_profile_OBJ_WINDMILL_DESERT; +extern const fProfile::fActorProfile_c g_profile_OBJ_CITY_WATER; +extern const fProfile::fActorProfile_c g_profile_OBJ_MOLE_COVER; +extern const fProfile::fActorProfile_c g_profile_OBJ_DESERT_DEBRIS; +extern const fProfile::fActorProfile_c g_profile_OBJ_BB_BROKEN_PARTS; +extern const fProfile::fActorProfile_c g_profile_OBJ_KUMITE_WALL; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_SHIELD; +extern const fProfile::fActorProfile_c g_profile_OBJ_BSTONE; +extern const fProfile::fActorProfile_c g_profile_OBJ_WIND02; +extern const fProfile::fActorProfile_c g_profile_OBJ_LEAF_SWING; +extern const fProfile::fActorProfile_c g_profile_RIDE_ROCK_SET_TAG; +extern const fProfile::fActorProfile_c g_profile_OBJ_RIDE_ROCK; +extern const fProfile::fActorProfile_c g_profile_OBJ_MOVE_LIFT_VOL; +extern const fProfile::fActorProfile_c g_profile_OBJ_TRUCK; +extern const fProfile::fActorProfile_c g_profile_OBJ_TERRY_SHOP; +extern const fProfile::fActorProfile_c g_profile_OBJ_TRAP_ROCK_1; +extern const fProfile::fActorProfile_c g_profile_OBJ_STOPPER_ROCK; +extern const fProfile::fActorProfile_c g_profile_OBJ_SHUTTER_FENCE; +extern const fProfile::fActorProfile_c g_profile_OBJ_SINK_FLOOR_F; +extern const fProfile::fActorProfile_c g_profile_E_GUMARM; +extern const fProfile::fActorProfile_c g_profile_OBJ_STEP_GUMARM; +extern const fProfile::fActorProfile_c g_profile_OBJ_BRIDGE_FALL; +extern const fProfile::fActorProfile_c g_profile_OBJ_BRIDGE_STEP; +extern const fProfile::fActorProfile_c g_profile_OBJ_BRIDGE_BONE; +extern const fProfile::fActorProfile_c g_profile_OBJ_BB_BRIDGE; +extern const fProfile::fActorProfile_c g_profile_OBJ_BRIDGE_TIME; +extern const fProfile::fActorProfile_c g_profile_OBJ_BOAT; +extern const fProfile::fActorProfile_c g_profile_OBJ_BALLISTA; +extern const fProfile::fActorProfile_c g_profile_OBJ_BALLISTA_F3; +extern const fProfile::fActorProfile_c g_profile_OBJ_TIME_BOAT; +extern const fProfile::fActorProfile_c g_profile_OBJ_GODDESS_STATUE; +extern const fProfile::fActorProfile_c g_profile_OBJ_STONE_STAND; +extern const fProfile::fActorProfile_c g_profile_OBJ_TIME_STAGE_BG; +extern const fProfile::fActorProfile_c g_profile_OBJ_WARP_HOLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_GEAR; +extern const fProfile::fActorProfile_c g_profile_OBJ_DESERT; +extern const fProfile::fActorProfile_c g_profile_OBJ_D300; +extern const fProfile::fActorProfile_c g_profile_OBJ_SEA_F301; +extern const fProfile::fActorProfile_c g_profile_OBJ_DESERT_AGO; +extern const fProfile::fActorProfile_c g_profile_OBJ_DESERT_METER; +extern const fProfile::fActorProfile_c g_profile_OBJ_NEEDLE_DESERT; +extern const fProfile::fActorProfile_c g_profile_OBJ_LOTUS; +extern const fProfile::fActorProfile_c g_profile_OBJ_TARZAN_POLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_STEP_TIME_SLIP; +extern const fProfile::fActorProfile_c g_profile_OBJ_TIME_BASE; +extern const fProfile::fActorProfile_c g_profile_OBJ_SWITCH_SHUTTER; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATERFALL_D101; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROLL_PILLAR; +extern const fProfile::fActorProfile_c g_profile_OBJ_CHEST; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROCK_BOAT; +extern const fProfile::fActorProfile_c g_profile_OBJ_BLOCK_UNDERGROUND; +extern const fProfile::fActorProfile_c g_profile_OBJ_UNDERGROUND; +extern const fProfile::fActorProfile_c g_profile_OBJ_TROLLEY; +extern const fProfile::fActorProfile_c g_profile_OBJ_LAVA_PLATE; +extern const fProfile::fActorProfile_c g_profile_OBJ_SAND_FLOOR; +extern const fProfile::fActorProfile_c g_profile_OBJ_SW_SYAKO; +extern const fProfile::fActorProfile_c g_profile_OBJ_SYAKO_SHUTTER; +extern const fProfile::fActorProfile_c g_profile_OBJ_DUNGEON_SHIP; +extern const fProfile::fActorProfile_c g_profile_OBJ_NEEDLE_UNDERGROUND; +extern const fProfile::fActorProfile_c g_profile_OBJ_STEP_STATUE; +extern const fProfile::fActorProfile_c g_profile_OBJ_GRAVE; +extern const fProfile::fActorProfile_c g_profile_OBJ_SHED; +extern const fProfile::fActorProfile_c g_profile_OBJ_GIRAHIMU_FLOOR; +extern const fProfile::fActorProfile_c g_profile_OBJ_TENIJIMA; +extern const fProfile::fActorProfile_c g_profile_OBJ_SAND_D301; +extern const fProfile::fActorProfile_c g_profile_OBJ_DOOR_BOSSD101; +extern const fProfile::fActorProfile_c g_profile_OBJ_BOXCAGE_F300; +extern const fProfile::fActorProfile_c g_profile_OBJ_TOWER_HAND_D101; +extern const fProfile::fActorProfile_c g_profile_OBJ_DORMITORY_GATE; +extern const fProfile::fActorProfile_c g_profile_OBJ_PISTON; +extern const fProfile::fActorProfile_c g_profile_OBJ_FRUIT_TREE; +extern const fProfile::fActorProfile_c g_profile_OBJ_FARMLAND; +extern const fProfile::fActorProfile_c g_profile_OBJ_PROPELLER_LIFT; +extern const fProfile::fActorProfile_c g_profile_OBJ_D3_DUMMY; +extern const fProfile::fActorProfile_c g_profile_B_BIGBOSS_BASE; +extern const fProfile::fActorProfile_c g_profile_B_BIGBOSS; +extern const fProfile::fActorProfile_c g_profile_B_BIGBOSS2; +extern const fProfile::fActorProfile_c g_profile_B_BIGBOSS3; +extern const fProfile::fActorProfile_c g_profile_B_VD; +extern const fProfile::fActorProfile_c g_profile_OBJ_VDB; +extern const fProfile::fActorProfile_c g_profile_E_CAPTAIN; +extern const fProfile::fActorProfile_c g_profile_OBJ_TRUCK_RAIL_COL; +extern const fProfile::fActorProfile_c g_profile_BIRD; +extern const fProfile::fActorProfile_c g_profile_BIRD_TARGET; +extern const fProfile::fActorProfile_c g_profile_BIRD_NPC; +extern const fProfile::fActorProfile_c g_profile_BIRD_KOBUNA; +extern const fProfile::fActorProfile_c g_profile_BIRD_KOBUNB; +extern const fProfile::fActorProfile_c g_profile_BIRD_RIVAL; +extern const fProfile::fActorProfile_c g_profile_BIRD_ZELDA_TRAINING; +extern const fProfile::fActorProfile_c g_profile_AVATER_RACE_MNG; +extern const fProfile::fActorProfile_c g_profile_AVATER_BULLET; +extern const fProfile::fActorProfile_c g_profile_NUSI_BASE; +extern const fProfile::fActorProfile_c g_profile_NUSI_NPC; +extern const fProfile::fActorProfile_c g_profile_B_NUSI; +extern const fProfile::fActorProfile_c g_profile_B_NUSI_TENTAKLE; +extern const fProfile::fActorProfile_c g_profile_B_NUSI_BULLET; +extern const fProfile::fActorProfile_c g_profile_OBJ_LIGHT_LINE; +extern const fProfile::fActorProfile_c g_profile_OBJ_LIGHT_SHAFT_SMALL; +extern const fProfile::fActorProfile_c g_profile_TAG_LIGHT_SHAFT_EFF; +extern const fProfile::fActorProfile_c g_profile_MEGAMI_DIVING_TAG; +extern const fProfile::fActorProfile_c g_profile_COMMON_BULLET; +extern const fProfile::fActorProfile_c g_profile_E_SYAKOMAITO; +extern const fProfile::fActorProfile_c g_profile_E_MR; +extern const fProfile::fActorProfile_c g_profile_E_PH; +extern const fProfile::fActorProfile_c g_profile_B_KR; +extern const fProfile::fActorProfile_c g_profile_B_KRH; +extern const fProfile::fActorProfile_c g_profile_B_KRA; +extern const fProfile::fActorProfile_c g_profile_OBJ_FLYING_CLAWSHOT_TARGET; +extern const fProfile::fActorProfile_c g_profile_OBJ_DIS_SHIP; +extern const fProfile::fActorProfile_c g_profile_PLAYER; +extern const fProfile::fActorProfile_c g_profile_TAG_SHUTTER_FENCE_PERMISSION; +extern const fProfile::fActorProfile_c g_profile_SHUTTER; +extern const fProfile::fActorProfile_c g_profile_OBJ_SHUTTER_CHANGE_SCENE; +extern const fProfile::fActorProfile_c g_profile_OBJ_DOOR_BOSS; +extern const fProfile::fActorProfile_c g_profile_OBJ_DOOR; +extern const fProfile::fActorProfile_c g_profile_OBJ_FENCE; +extern const fProfile::fActorProfile_c g_profile_TAG_SHUTTER_FENCE_FORBIDDANCE; +extern const fProfile::fActorProfile_c g_profile_OBJ_TROLLEY_SHUTTER; +extern const fProfile::fActorProfile_c g_profile_OBJ_TR_SHUTTER_CS; +extern const fProfile::fActorProfile_c g_profile_OBJ_BG; +extern const fProfile::fActorProfile_c g_profile_BOOMERANG; +extern const fProfile::fActorProfile_c g_profile_GENKI_MGR_TAG; +extern const fProfile::fActorProfile_c g_profile_TAG_MIECHAN; +extern const fProfile::fActorProfile_c g_profile_DEMO_NPC_BIRD; +extern const fProfile::fActorProfile_c g_profile_NPC_RVL; +extern const fProfile::fActorProfile_c g_profile_NPC_RIVAL_LOD; +extern const fProfile::fActorProfile_c g_profile_NPC_KBN; +extern const fProfile::fActorProfile_c g_profile_NPC_KBN2; +extern const fProfile::fActorProfile_c g_profile_NPC_KOBUN_B_NIGHT; +extern const fProfile::fActorProfile_c g_profile_NPC_SKN; +extern const fProfile::fActorProfile_c g_profile_NPC_SKN2; +extern const fProfile::fActorProfile_c g_profile_NPC_GZL; +extern const fProfile::fActorProfile_c g_profile_NPC_ZLD; +extern const fProfile::fActorProfile_c g_profile_NPC_DSK; +extern const fProfile::fActorProfile_c g_profile_NPC_DRB; +extern const fProfile::fActorProfile_c g_profile_NPC_DRBC; +extern const fProfile::fActorProfile_c g_profile_NPC_CE_FRIEND; +extern const fProfile::fActorProfile_c g_profile_NPC_CE_LADY; +extern const fProfile::fActorProfile_c g_profile_NPC_TOILET_GHOST; +extern const fProfile::fActorProfile_c g_profile_NPC_SORAJIMA_FATHER; +extern const fProfile::fActorProfile_c g_profile_NPC_SORAJIMA_MOTHER; +extern const fProfile::fActorProfile_c g_profile_NPC_SORAJIMA_GIRL; +extern const fProfile::fActorProfile_c g_profile_NPC_KYUI_WIZARD; +extern const fProfile::fActorProfile_c g_profile_NPC_KYUI_FIRST; +extern const fProfile::fActorProfile_c g_profile_NPC_ORD_KYUI; +extern const fProfile::fActorProfile_c g_profile_NPC_KYUI_ELDER; +extern const fProfile::fActorProfile_c g_profile_NPC_KYUI_THIRD; +extern const fProfile::fActorProfile_c g_profile_NPC_KYUI4; +extern const fProfile::fActorProfile_c g_profile_NPC_TMN; +extern const fProfile::fActorProfile_c g_profile_NPC_SALESMAN_S; +extern const fProfile::fActorProfile_c g_profile_NPC_DOUGUYA_NIGHT; +extern const fProfile::fActorProfile_c g_profile_NPC_MED_WIFE_NIGHT; +extern const fProfile::fActorProfile_c g_profile_NPC_MED_HUS_NIGHT; +extern const fProfile::fActorProfile_c g_profile_NPC_JUNK_NIGHT; +extern const fProfile::fActorProfile_c g_profile_NPC_AZUKARIYA_NIGHT; +extern const fProfile::fActorProfile_c g_profile_NPC_DOUGUYA_MOTHER; +extern const fProfile::fActorProfile_c g_profile_NPC_DOUGUYA_MOTHER_LOD; +extern const fProfile::fActorProfile_c g_profile_NPC_JUNK_MOTHER; +extern const fProfile::fActorProfile_c g_profile_NPC_JUNK_MOTHER_LOD; +extern const fProfile::fActorProfile_c g_profile_NPC_SENPAIA_MOTHER; +extern const fProfile::fActorProfile_c g_profile_NPC_SENPAIA_MOTHER_LOD; +extern const fProfile::fActorProfile_c g_profile_NPC_SORAJIMA_MAN_E; +extern const fProfile::fActorProfile_c g_profile_NPC_SORAJIMA_MAN_D; +extern const fProfile::fActorProfile_c g_profile_NPC_AZUKARIYA_FATHER; +extern const fProfile::fActorProfile_c g_profile_NPC_DAISHINKAN_N; +extern const fProfile::fActorProfile_c g_profile_NPC_SORAJIMA_MALE; +extern const fProfile::fActorProfile_c g_profile_NPC_BDSW; +extern const fProfile::fActorProfile_c g_profile_NPC_SORAJIMA_FEMALE; +extern const fProfile::fActorProfile_c g_profile_NPC_KENSEI; +extern const fProfile::fActorProfile_c g_profile_NPC_TALK_KENSEI; +extern const fProfile::fActorProfile_c g_profile_NPC_BDZ; +extern const fProfile::fActorProfile_c g_profile_NPC_OIM; +extern const fProfile::fActorProfile_c g_profile_NPC_YIM; +extern const fProfile::fActorProfile_c g_profile_NPC_BGR; +extern const fProfile::fActorProfile_c g_profile_NPC_SLTK; +extern const fProfile::fActorProfile_c g_profile_NPC_SLB2; +extern const fProfile::fActorProfile_c g_profile_NPC_SMA3; +extern const fProfile::fActorProfile_c g_profile_NPC_SMA2; +extern const fProfile::fActorProfile_c g_profile_NPC_PMA; +extern const fProfile::fActorProfile_c g_profile_NPC_PDU; +extern const fProfile::fActorProfile_c g_profile_NPC_ICGK; +extern const fProfile::fActorProfile_c g_profile_NPC_PCS; +extern const fProfile::fActorProfile_c g_profile_NPC_FDR; +extern const fProfile::fActorProfile_c g_profile_NPC_TDR; +extern const fProfile::fActorProfile_c g_profile_NPC_TDS; +extern const fProfile::fActorProfile_c g_profile_NPC_TDRB; +extern const fProfile::fActorProfile_c g_profile_TAG_SWORD_BATTLE_GAME; +extern const fProfile::fActorProfile_c g_profile_TAG_SIREN_TIME_ATTACK; +extern const fProfile::fActorProfile_c g_profile_NPC_ADR; +extern const fProfile::fActorProfile_c g_profile_NPC_GHM; +extern const fProfile::fActorProfile_c g_profile_NPC_SHA; +extern const fProfile::fActorProfile_c g_profile_NPC_GRA; +extern const fProfile::fActorProfile_c g_profile_NPC_GRC; +extern const fProfile::fActorProfile_c g_profile_NPC_GRD; +extern const fProfile::fActorProfile_c g_profile_NPC_SORAJIMA_BOY; +extern const fProfile::fActorProfile_c g_profile_NPC_AKUMAKUN; +extern const fProfile::fActorProfile_c g_profile_NPC_AKU_HUMAN; +extern const fProfile::fActorProfile_c g_profile_NPC_SUISEI; +extern const fProfile::fActorProfile_c g_profile_NPC_SUISEI_SUB; +extern const fProfile::fActorProfile_c g_profile_NPC_SUISEI_NORMAL; +extern const fProfile::fActorProfile_c g_profile_MOLE_MGR_TAG; +extern const fProfile::fActorProfile_c g_profile_NPC_MOLE_MG; +extern const fProfile::fActorProfile_c g_profile_NPC_MOLE; +extern const fProfile::fActorProfile_c g_profile_NPC_MOLE_NORMAL; +extern const fProfile::fActorProfile_c g_profile_NPC_MOLE_NORMAL2; +extern const fProfile::fActorProfile_c g_profile_NPC_MOLE_ES_NML; +extern const fProfile::fActorProfile_c g_profile_NPC_MOLE_TACKLE; +extern const fProfile::fActorProfile_c g_profile_NPC_MOLE_TACKLE2; +extern const fProfile::fActorProfile_c g_profile_NPC_CHEF; +extern const fProfile::fActorProfile_c g_profile_NPC_SLFB; +extern const fProfile::fActorProfile_c g_profile_NPC_SLRP; +extern const fProfile::fActorProfile_c g_profile_NPC_SLFL; +extern const fProfile::fActorProfile_c g_profile_NPC_TERRY; +extern const fProfile::fActorProfile_c g_profile_NPC_DIVE_GAME_JUDGE; +extern const fProfile::fActorProfile_c g_profile_KNIGHT_LEADER_BIRD; +extern const fProfile::fActorProfile_c g_profile_NPC_KNIGHT_LEADER; +extern const fProfile::fActorProfile_c g_profile_NPC_SENPAI; +extern const fProfile::fActorProfile_c g_profile_NPC_SENPAI_B; +extern const fProfile::fActorProfile_c g_profile_NPC_REGRET_RIVAL; +extern const fProfile::fActorProfile_c g_profile_NPC_RESCUE; +extern const fProfile::fActorProfile_c g_profile_NPC_SLB; +extern const fProfile::fActorProfile_c g_profile_FLY_SLB; +extern const fProfile::fActorProfile_c g_profile_OBJ_PROPERA; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROULETTE; +extern const fProfile::fActorProfile_c g_profile_NPC_MOLE_ELDER; +extern const fProfile::fActorProfile_c g_profile_NPC_SALBAGE_MORRY; +extern const fProfile::fActorProfile_c g_profile_NPC_MOLE_SAL; +extern const fProfile::fActorProfile_c g_profile_OBJ_POT_SAL; +extern const fProfile::fActorProfile_c g_profile_OBJ_MOLE_SOIL; +extern const fProfile::fActorProfile_c g_profile_LITTLE_BIRD_MGR; +extern const fProfile::fActorProfile_c g_profile_LITTLE_BIRD; +extern const fProfile::fActorProfile_c g_profile_FISH_MGR; +extern const fProfile::fActorProfile_c g_profile_FISH; +extern const fProfile::fActorProfile_c g_profile_EEL; +extern const fProfile::fActorProfile_c g_profile_JSTUDIO_SYSOBJ; +extern const fProfile::fActorProfile_c g_profile_JSTUDIO_ACTOR; +extern const fProfile::fActorProfile_c g_profile_B_BBSHWV; +extern const fProfile::fActorProfile_c g_profile_NPC_BBRVL; +extern const fProfile::fActorProfile_c g_profile_OBJ_BIGBOMB_FLOWER; +extern const fProfile::fActorProfile_c g_profile_OBJ_BBLARGEBOMB; +extern const fProfile::fActorProfile_c g_profile_OBJ_BSTN; +extern const fProfile::fActorProfile_c g_profile_B_MG; +extern const fProfile::fActorProfile_c g_profile_B_LASTBOSS; +extern const fProfile::fActorProfile_c g_profile_J_TEST; +extern const fProfile::fActorProfile_c g_profile_E_AM; +extern const fProfile::fActorProfile_c g_profile_T_QUAKE; +extern const fProfile::fActorProfile_c g_profile_T_KUMITE; +extern const fProfile::fActorProfile_c g_profile_GROUP_TEST; +extern const fProfile::fActorProfile_c g_profile_GROUP_SUMMON; +extern const fProfile::fActorProfile_c g_profile_T_BCAL; +extern const fProfile::fActorProfile_c g_profile_E_SM; +extern const fProfile::fActorProfile_c g_profile_E_BEAMOS; +extern const fProfile::fActorProfile_c g_profile_GEKO_TAG; +extern const fProfile::fActorProfile_c g_profile_E_GEKO; +extern const fProfile::fActorProfile_c g_profile_E_SIREN; +extern const fProfile::fActorProfile_c g_profile_E_PO; +extern const fProfile::fActorProfile_c g_profile_OBJ_RING; +extern const fProfile::fActorProfile_c g_profile_E_OR; +extern const fProfile::fActorProfile_c g_profile_E_OR_CANNON; +extern const fProfile::fActorProfile_c g_profile_OR_CANN_BULLET; +extern const fProfile::fActorProfile_c g_profile_E_EYE; +extern const fProfile::fActorProfile_c g_profile_OBJ_HOLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_INTO_HOLE; +extern const fProfile::fActorProfile_c g_profile_E_SPARK; +extern const fProfile::fActorProfile_c g_profile_E_MAGMA; +extern const fProfile::fActorProfile_c g_profile_E_MAGUPPO; +extern const fProfile::fActorProfile_c g_profile_MAGUPPO_BULLET; +extern const fProfile::fActorProfile_c g_profile_E_BS; +extern const fProfile::fActorProfile_c g_profile_E_SF; +extern const fProfile::fActorProfile_c g_profile_E_SF4; +extern const fProfile::fActorProfile_c g_profile_E_ST; +extern const fProfile::fActorProfile_c g_profile_E_ST_WIRE; +extern const fProfile::fActorProfile_c g_profile_ENEMY_CONTROL; +extern const fProfile::fActorProfile_c g_profile_KIESU_TAG; +extern const fProfile::fActorProfile_c g_profile_E_KS; +extern const fProfile::fActorProfile_c g_profile_E_HB; +extern const fProfile::fActorProfile_c g_profile_E_HB_LEAF; +extern const fProfile::fActorProfile_c g_profile_E_REMLY; +extern const fProfile::fActorProfile_c g_profile_E_LIZARUFOS; +extern const fProfile::fActorProfile_c g_profile_E_LIZA_TAIL; +extern const fProfile::fActorProfile_c g_profile_E_HIDOKARI; +extern const fProfile::fActorProfile_c g_profile_E_HIDOKARIS; +extern const fProfile::fActorProfile_c g_profile_E_HYDRA; +extern const fProfile::fActorProfile_c g_profile_E_GUNHO; +extern const fProfile::fActorProfile_c g_profile_E_GUNHOB; +extern const fProfile::fActorProfile_c g_profile_E_BFISH; +extern const fProfile::fActorProfile_c g_profile_E_CACTUS; +extern const fProfile::fActorProfile_c g_profile_E_HOC; +extern const fProfile::fActorProfile_c g_profile_E_OC; +extern const fProfile::fActorProfile_c g_profile_E_KGIRA; +extern const fProfile::fActorProfile_c g_profile_OBJ_PIPE; +extern const fProfile::fActorProfile_c g_profile_E_BC; +extern const fProfile::fActorProfile_c g_profile_E_BCE; +extern const fProfile::fActorProfile_c g_profile_E_BCAL; +extern const fProfile::fActorProfile_c g_profile_E_BCARROW; +extern const fProfile::fActorProfile_c g_profile_E_BCALARROW; +extern const fProfile::fActorProfile_c g_profile_BCZ_TAG; +extern const fProfile::fActorProfile_c g_profile_E_BCZ; +extern const fProfile::fActorProfile_c g_profile_E_SKYTAIL; +extern const fProfile::fActorProfile_c g_profile_E_HP; +extern const fProfile::fActorProfile_c g_profile_E_CHB; +extern const fProfile::fActorProfile_c g_profile_E_GUE; +extern const fProfile::fActorProfile_c g_profile_GUE_BULLET; +extern const fProfile::fActorProfile_c g_profile_E_GE; +extern const fProfile::fActorProfile_c g_profile_E_RUPEE_GUE; +extern const fProfile::fActorProfile_c g_profile_E_GEROCK; +extern const fProfile::fActorProfile_c g_profile_E_TN2; +extern const fProfile::fActorProfile_c g_profile_E_HIDORY; +extern const fProfile::fActorProfile_c g_profile_HIDORY_FIRE; +extern const fProfile::fActorProfile_c g_profile_E_WS; +extern const fProfile::fActorProfile_c g_profile_NPC_BIRD; +extern const fProfile::fActorProfile_c g_profile_B_GIRAHIMU_BASE; +extern const fProfile::fActorProfile_c g_profile_B_GIRAHIMU; +extern const fProfile::fActorProfile_c g_profile_B_GIRAHIMU2; +extern const fProfile::fActorProfile_c g_profile_B_GIRAHIMU3_BASE; +extern const fProfile::fActorProfile_c g_profile_B_GIRAHIMU3_FIRST; +extern const fProfile::fActorProfile_c g_profile_B_GIRAHIMU3_SECOND; +extern const fProfile::fActorProfile_c g_profile_B_GIRAHIMU3_THIRD; +extern const fProfile::fActorProfile_c g_profile_OBJ_GH_SW_L; +extern const fProfile::fActorProfile_c g_profile_OBJ_GH_KNIFE; +extern const fProfile::fActorProfile_c g_profile_OBJ_BIRD_SP_UP; +extern const fProfile::fActorProfile_c g_profile_GH_SWORD_BEAM; +extern const fProfile::fActorProfile_c g_profile_B_ASURA; +extern const fProfile::fActorProfile_c g_profile_ASURA_ARM; +extern const fProfile::fActorProfile_c g_profile_ASURA_FOOT; +extern const fProfile::fActorProfile_c g_profile_ASURA_BULLET; +extern const fProfile::fActorProfile_c g_profile_ASURA_SWORD; +extern const fProfile::fActorProfile_c g_profile_ASURA_PILLAR; +extern const fProfile::fActorProfile_c g_profile_INVISIBLE; +extern const fProfile::fActorProfile_c g_profile_E_MR_SHIELD; +extern const fProfile::fActorProfile_c g_profile_E_KG; +extern const fProfile::fActorProfile_c g_profile_NPC_HONEYCOMB; +extern const fProfile::fActorProfile_c g_profile_NPC_BEE; +extern const fProfile::fActorProfile_c g_profile_HEART_FLOWER; +extern const fProfile::fActorProfile_c g_profile_BOMBF; +extern const fProfile::fActorProfile_c g_profile_BOMB; +extern const fProfile::fActorProfile_c g_profile_OBJ_CARRY_STONE; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROLL_ROCK; +extern const fProfile::fActorProfile_c g_profile_COL_STP; +extern const fProfile::fActorProfile_c g_profile_KANBAN; +extern const fProfile::fActorProfile_c g_profile_OBJ_BAMBOO; +extern const fProfile::fActorProfile_c g_profile_OBJ_SWHIT; +extern const fProfile::fActorProfile_c g_profile_OBJ_SW_SWORD_BEAM; +extern const fProfile::fActorProfile_c g_profile_OBJ_SW_HARP; +extern const fProfile::fActorProfile_c g_profile_OBJ_SIREN_BARRIER; +extern const fProfile::fActorProfile_c g_profile_OBJ_TOGE_TRAP; +extern const fProfile::fActorProfile_c g_profile_PUMPKIN; +extern const fProfile::fActorProfile_c g_profile_OBJ_PUMPKIN_LEAF; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_NUT_LEAF; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_NUT; +extern const fProfile::fActorProfile_c g_profile_OBJ_TABLEWARE; +extern const fProfile::fActorProfile_c g_profile_OBJ_SW_WHIPLEVER; +extern const fProfile::fActorProfile_c g_profile_OBJ_MUSHROOM; +extern const fProfile::fActorProfile_c g_profile_WOODAREA_TAG; +extern const fProfile::fActorProfile_c g_profile_OBJ_FRUIT; +extern const fProfile::fActorProfile_c g_profile_OBJ_SKULL; +extern const fProfile::fActorProfile_c g_profile_SOUND_TAG; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROCK_DRAGON; +extern const fProfile::fActorProfile_c g_profile_TAG_INSECT; +extern const fProfile::fActorProfile_c g_profile_INSECT_LADYBUG; +extern const fProfile::fActorProfile_c g_profile_INSECT_DRAGONFLY; +extern const fProfile::fActorProfile_c g_profile_INSECT_BEETLE; +extern const fProfile::fActorProfile_c g_profile_INSECT_GRASSHOPPER; +extern const fProfile::fActorProfile_c g_profile_INSECT_CICADA; +extern const fProfile::fActorProfile_c g_profile_INSECT_ANT; +extern const fProfile::fActorProfile_c g_profile_INSECT_BUTTERFLY; +extern const fProfile::fActorProfile_c g_profile_INSECT_SCARAB; +extern const fProfile::fActorProfile_c g_profile_INSECT_FIREFLY; +extern const fProfile::fActorProfile_c g_profile_OBJ_SAIL; +extern const fProfile::fActorProfile_c g_profile_OBJ_LOTUS_FLOWER; +extern const fProfile::fActorProfile_c g_profile_OBJ_LOTUS_SEED; +extern const fProfile::fActorProfile_c g_profile_OBJ_SHUTTER_LOCK; +extern const fProfile::fActorProfile_c g_profile_OBJ_LAMP; +extern const fProfile::fActorProfile_c g_profile_TAG_ROCK_BOAT; +extern const fProfile::fActorProfile_c g_profile_OBJ_TOWER_GEAR_D101; +extern const fProfile::fActorProfile_c g_profile_OBJ_SHUTTER_WATER_D101; +extern const fProfile::fActorProfile_c g_profile_OBJ_ANCIENT_JEWELS; +extern const fProfile::fActorProfile_c g_profile_OBJ_MG_PUMPKIN; +extern const fProfile::fActorProfile_c g_profile_OBJ_FLAG; +extern const fProfile::fActorProfile_c g_profile_OBJ_CHANDELIER; +extern const fProfile::fActorProfile_c g_profile_TAG_PUMPKIN_CLAY; +extern const fProfile::fActorProfile_c g_profile_TAG_REACTION; +extern const fProfile::fActorProfile_c g_profile_OBJ_SPORE; +extern const fProfile::fActorProfile_c g_profile_OBJ_FRUIT_B; +extern const fProfile::fActorProfile_c g_profile_OBJ_DIVINER_CRYSTAL; +extern const fProfile::fActorProfile_c g_profile_TAG_NOEFFECT_AREA; +extern const fProfile::fActorProfile_c g_profile_TAG_D3_SCENE_CHANGE; +extern const fProfile::fActorProfile_c g_profile_OBJ_DECOA; +extern const fProfile::fActorProfile_c g_profile_OBJ_DECOB; +extern const fProfile::fActorProfile_c g_profile_OBJ_SANDBAG; +extern const fProfile::fActorProfile_c g_profile_OBJ_PAINT; +extern const fProfile::fActorProfile_c g_profile_OBJ_CONTROL_PANEL; +extern const fProfile::fActorProfile_c g_profile_OBJ_UG_SWITCH; +extern const fProfile::fActorProfile_c g_profile_OBJ_CLEARNESS_WALL; +extern const fProfile::fActorProfile_c g_profile_OBJ_RUINED_SAVE; +extern const fProfile::fActorProfile_c g_profile_OBJ_TRIFORCE; +extern const fProfile::fActorProfile_c g_profile_OBJ_KANBAN_STONE; +extern const fProfile::fActorProfile_c g_profile_TBOX; +extern const fProfile::fActorProfile_c g_profile_OBJ_BUBBLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_VSD; +extern const fProfile::fActorProfile_c g_profile_OBJ_SOIL; +extern const fProfile::fActorProfile_c g_profile_OBJ_IVY_ROPE; +extern const fProfile::fActorProfile_c g_profile_OBJ_GRASS_COIL; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROPE_IGAIGA; +extern const fProfile::fActorProfile_c g_profile_OBJ_FIRE; +extern const fProfile::fActorProfile_c g_profile_OBJ_TUBO; +extern const fProfile::fActorProfile_c g_profile_OBJ_TUBO_BIG; +extern const fProfile::fActorProfile_c g_profile_OBJ_CHAIR; +extern const fProfile::fActorProfile_c g_profile_TIME_AREA; +extern const fProfile::fActorProfile_c g_profile_OBJ_BLAST_ROCK; +extern const fProfile::fActorProfile_c g_profile_OBJ_SW_DIR; +extern const fProfile::fActorProfile_c g_profile_OBJ_SW_DIR_DOOR; +extern const fProfile::fActorProfile_c g_profile_OBJ_SW_BANK; +extern const fProfile::fActorProfile_c g_profile_OBJ_SW_BANK_SMALL; +extern const fProfile::fActorProfile_c g_profile_T_FAIRY; +extern const fProfile::fActorProfile_c g_profile_OBJ_FAIRY; +extern const fProfile::fActorProfile_c g_profile_BIRD_MOB; +extern const fProfile::fActorProfile_c g_profile_OBJ_BALLISTA_HANDLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_TIME_BOAT_BULLET; +extern const fProfile::fActorProfile_c g_profile_OBJ_TIME_DOOR; +extern const fProfile::fActorProfile_c g_profile_OBJ_TIME_DOOR_BEFORE; +extern const fProfile::fActorProfile_c g_profile_TAG_TIME_DOOR_BEAM; +extern const fProfile::fActorProfile_c g_profile_OBJ_COL; +extern const fProfile::fActorProfile_c g_profile_OBJ_DAYNIGHT; +extern const fProfile::fActorProfile_c g_profile_OBJ_BUILDING; +extern const fProfile::fActorProfile_c g_profile_OBJ_OCT_GRASS; +extern const fProfile::fActorProfile_c g_profile_OBJ_OCT_GRASS_LEAF; +extern const fProfile::fActorProfile_c g_profile_OBJ_TUMBLE_WEED; +extern const fProfile::fActorProfile_c g_profile_TUMBLE_WEED_TAG; +extern const fProfile::fActorProfile_c g_profile_OBJ_FLOWER_ANCIENT; +extern const fProfile::fActorProfile_c g_profile_OBJ_BARREL; +extern const fProfile::fActorProfile_c g_profile_OBJ_WARP; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_MARK; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_JAR; +extern const fProfile::fActorProfile_c g_profile_OBJ_STOPPING_ROPE; +extern const fProfile::fActorProfile_c g_profile_OBJ_TRAP_BIRD_WOOD; +extern const fProfile::fActorProfile_c g_profile_OBJ_TACKLE; +extern const fProfile::fActorProfile_c g_profile_TACKLE_TAG; +extern const fProfile::fActorProfile_c g_profile_OBJ_VORTEX; +extern const fProfile::fActorProfile_c g_profile_OBJ_TOWER_BOMB; +extern const fProfile::fActorProfile_c g_profile_OBJ_SEAT_SWORD; +extern const fProfile::fActorProfile_c g_profile_OBJ_POLE_STONY; +extern const fProfile::fActorProfile_c g_profile_OBJ_SWORD_CANDLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_SAVE; +extern const fProfile::fActorProfile_c g_profile_OBJ_POOL_COCK; +extern const fProfile::fActorProfile_c g_profile_OBJ_FIREWALL; +extern const fProfile::fActorProfile_c g_profile_HARP_TAG; +extern const fProfile::fActorProfile_c g_profile_OBJ_SWORD_STAB; +extern const fProfile::fActorProfile_c g_profile_OBJ_GODDESS_CUBE; +extern const fProfile::fActorProfile_c g_profile_OBJ_TIME_BLOCK; +extern const fProfile::fActorProfile_c g_profile_OBJ_MOVE_ELEC; +extern const fProfile::fActorProfile_c g_profile_OBJ_LAVA_D201; +extern const fProfile::fActorProfile_c g_profile_OBJ_HARP_HINT; +extern const fProfile::fActorProfile_c g_profile_OBJ_F302_LIGHT; +extern const fProfile::fActorProfile_c g_profile_OBJ_TOD3_STONE; +extern const fProfile::fActorProfile_c g_profile_OBJ_B300_SAND; +extern const fProfile::fActorProfile_c g_profile_T_DOWSING; +extern const fProfile::fActorProfile_c g_profile_T_MAP_MARK; +extern const fProfile::fActorProfile_c g_profile_BEETLE_TAG; +extern const fProfile::fActorProfile_c g_profile_EFFECT_GEN_TAG; +extern const fProfile::fActorProfile_c g_profile_TAG_TIME_AREA_CHECK; +extern const fProfile::fActorProfile_c g_profile_TAG_RESTART_TIME_STONE; +extern const fProfile::fActorProfile_c g_profile_SHOP_SAMPLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_TERRY_GIMMICK; +extern const fProfile::fActorProfile_c g_profile_OBJ_TERRY_SWITCH; +extern const fProfile::fActorProfile_c g_profile_OBJ_TERRY_HOLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_TERRY_BIKE; +extern const fProfile::fActorProfile_c g_profile_OBJ_JUNK_REPAIR; +extern const fProfile::fActorProfile_c g_profile_CO_TEST; +extern const fProfile::fActorProfile_c g_profile_OBJ_ARROW_SWITCH; +extern const fProfile::fActorProfile_c g_profile_OBJ_VENT_FAN; +extern const fProfile::fActorProfile_c g_profile_OBJ_ELECTRIC_LIGHT; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_SWITCH; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROTATION_LIGHT; +extern const fProfile::fActorProfile_c g_profile_OBJ_HOLE_MINIGAME; +extern const fProfile::fActorProfile_c g_profile_OBJ_CLOUD_DIVE; +extern const fProfile::fActorProfile_c g_profile_OBJ_MUSASABI; +extern const fProfile::fActorProfile_c g_profile_OBJ_FORTUNE_RING; +extern const fProfile::fActorProfile_c g_profile_OBJ_BLOW_COAL; +extern const fProfile::fActorProfile_c g_profile_OBJ_SPIKE; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_SPOUT; +extern const fProfile::fActorProfile_c g_profile_OBJ_SMOKE; +extern const fProfile::fActorProfile_c g_profile_OBJ_LIGHTHOUSE_LIGHT; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATER_IGAIGA; +extern const fProfile::fActorProfile_c g_profile_OBJ_BLADE; +extern const fProfile::fActorProfile_c g_profile_OBJ_FIRE_OBSTACLE; +extern const fProfile::fActorProfile_c g_profile_OBJ_FIRE_PILLAR; +extern const fProfile::fActorProfile_c g_profile_OBJ_GUARD_LOG; +extern const fProfile::fActorProfile_c g_profile_OBJ_SLICE_LOG; +extern const fProfile::fActorProfile_c g_profile_OBJ_SLICE_LOG_PARTS; +extern const fProfile::fActorProfile_c g_profile_OBJ_STAGE_DEBRIS; +extern const fProfile::fActorProfile_c g_profile_OBJ_GROUND_COVER; +extern const fProfile::fActorProfile_c g_profile_OBJ_CUMUL_CLOUD; +extern const fProfile::fActorProfile_c g_profile_OBJ_UNDER_CLOUD; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATERFALL_F102; +extern const fProfile::fActorProfile_c g_profile_OBJ_GOD_MARK; +extern const fProfile::fActorProfile_c g_profile_OBJ_IMPA_DOOR; +extern const fProfile::fActorProfile_c g_profile_OBJ_WATERFALL_D100; +extern const fProfile::fActorProfile_c g_profile_OBJ_GIRAHIM_FOOT; +extern const fProfile::fActorProfile_c g_profile_OBJ_ISLAND_LOD; +extern const fProfile::fActorProfile_c g_profile_OBJ_UTA_DEMO_PEDEST; +extern const fProfile::fActorProfile_c g_profile_OBJ_LAVA_F200; +extern const fProfile::fActorProfile_c g_profile_OBJ_ROPE_BASE; +extern const fProfile::fActorProfile_c g_profile_OBJ_SUN_LIGHT; +extern const fProfile::fActorProfile_c g_profile_OBJ_SIREN_2DMAP; +extern const fProfile::fActorProfile_c g_profile_OBJ_DISPLAY_ONLY_NBS; +extern const fProfile::fActorProfile_c g_profile_OBJ_AMBER; +extern const fProfile::fActorProfile_c g_profile_OBJ_BIRD_STATUE; +extern const fProfile::fActorProfile_c g_profile_OBJ_F400_GATE_LEAF; +extern const fProfile::fActorProfile_c g_profile_OBJ_F400_GATE_SEAL; +extern const fProfile::fActorProfile_c g_profile_OBJ_MAPPARTS; +extern const fProfile::fActorProfile_c g_profile_OBJ_RO_AT_TARGET; +extern const fProfile::fActorProfile_c g_profile_RO_AT_TAR_MANAGER_TAG; +extern const fProfile::fActorProfile_c g_profile_TAG_MUSASABI; +extern const fProfile::fActorProfile_c g_profile_TAG_MAP_INST; +extern const fProfile::fActorProfile_c g_profile_TAG_AUTO_MESSAGE; +extern const fProfile::fActorProfile_c g_profile_TAG_SHIP_SLOPE; +extern const fProfile::fActorProfile_c g_profile_TAG_SHIP_FLOOD; +extern const fProfile::fActorProfile_c g_profile_TAG_BARREL; +extern const fProfile::fActorProfile_c g_profile_TAG_BARREL_POS; +extern const fProfile::fActorProfile_c g_profile_TAG_HEAT_RESIST; +extern const fProfile::fActorProfile_c g_profile_TAG_HOLY_WATER; +extern const fProfile::fActorProfile_c g_profile_TAG_BELT_OBSTACLE; +extern const fProfile::fActorProfile_c g_profile_TAG_DRUM; +extern const fProfile::fActorProfile_c g_profile_TAG_ROLL_ATTACK_LOG; +extern const fProfile::fActorProfile_c g_profile_TAG_SHIP_WINDOW; +extern const fProfile::fActorProfile_c g_profile_ARROW; +extern const fProfile::fActorProfile_c g_profile_MASS_OBJ_TAG; +extern const fProfile::fActorProfile_c g_profile_SOUND_AREA_MGR; +extern const fProfile::fActorProfile_c g_profile_TAG_SOUND_AREA; +extern const fProfile::fActorProfile_c g_profile_ATT_TAG; +extern const fProfile::fActorProfile_c g_profile_TLP_TAG; +extern const fProfile::fActorProfile_c g_profile_SKYENEMY_T; +extern const fProfile::fActorProfile_c g_profile_TOUCH_TAG; +extern const fProfile::fActorProfile_c g_profile_CAMERA_TAG; +extern const fProfile::fActorProfile_c g_profile_CAMERA2_TAG; +extern const fProfile::fActorProfile_c g_profile_ACTION_TAG; +extern const fProfile::fActorProfile_c g_profile_SC_CHANGE_TAG; +extern const fProfile::fActorProfile_c g_profile_GATE2GND_TAG; +extern const fProfile::fActorProfile_c g_profile_ALLDIE_TAG; +extern const fProfile::fActorProfile_c g_profile_SW_TAG; +extern const fProfile::fActorProfile_c g_profile_PL_RESTART; +extern const fProfile::fActorProfile_c g_profile_SW_AREA_TAG; +extern const fProfile::fActorProfile_c g_profile_SIREN_TAG; +extern const fProfile::fActorProfile_c g_profile_TAG_TKEVNT; +extern const fProfile::fActorProfile_c g_profile_MOLE_PROHIBIT_TAG; +extern const fProfile::fActorProfile_c g_profile_TAG_DEFEAT_BOSS; +extern const fProfile::fActorProfile_c g_profile_TAG_TIMER; +extern const fProfile::fActorProfile_c g_profile_TAG_FENCE_SYNCHRONIZER; +extern const fProfile::fActorProfile_c g_profile_TAG_GENKI_DOWSING_TARGET; +extern const fProfile::fActorProfile_c g_profile_ITEM; +extern const fProfile::fActorProfile_c g_profile_OBJ_ITEM_HEART_CONTAINER; +extern const fProfile::fActorProfile_c g_profile_OBJ_CLEF; +extern const fProfile::fActorProfile_c g_profile_OBJ_FRUIT_GUTS_LEAF; +extern const fProfile::fActorProfile_c g_profile_OBJ_SWRD_PRJ; +extern const fProfile::fActorProfile_c g_profile_OBJ_VACU_DUST_PARTS; +extern const fProfile::fActorProfile_c g_profile_OBJ_VACU_DUST; +extern const fProfile::fActorProfile_c g_profile_OBJ_RAIL_POST; +extern const fProfile::fActorProfile_c g_profile_OBJ_RAIL_END; +extern const fProfile::fActorProfile_c g_profile_OBJ_TENI_RAIL; +extern const fProfile::fActorProfile_c g_profile_OBJ_TENI_RAIL_POST; +extern const fProfile::fActorProfile_c g_profile_OBJ_FORCE_SIGN; +extern const fProfile::fActorProfile_c g_profile_TAG_FORCE_GET_FLAG; +extern const fProfile::fActorProfile_c g_profile_TAG_CLEF_MANAGER; +extern const fProfile::fActorProfile_c g_profile_TAG_CLEF_GAME; +extern const fProfile::fActorProfile_c g_profile_TAG_MINIGAME_INSECT_CAPTURE; +extern const fProfile::fActorProfile_c g_profile_CAMERA; +extern const fProfile::fActorProfile_c g_profile_WEATHER_TAG; +extern const fProfile::fActorProfile_c g_profile_SPORE_TAG; +extern const fProfile::fActorProfile_c g_profile_MIST_TAG; +extern const fProfile::fActorProfile_c g_profile_SPARKS_TAG; +extern const fProfile::fActorProfile_c g_profile_SPARKS2_TAG; +extern const fProfile::fActorProfile_c g_profile_KYTAG_TAG; +extern const fProfile::fActorProfile_c g_profile_LBTHUNDER_TAG; +extern const fProfile::fActorProfile_c g_profile_PLTCHG_TAG; +extern const fProfile::fActorProfile_c g_profile_PLIGHT_TAG; +extern const fProfile::fActorProfile_c g_profile_VRBOX_TAG; +extern const fProfile::fActorProfile_c g_profile_NPC_INV; +extern const fProfile::fActorProfile_c g_profile_NPC_TKE; +extern const fProfile::fActorProfile_c g_profile_NPC_STR; +extern const fProfile::fActorProfile_c g_profile_MESSAGE_ACTOR; +extern const fProfile::fActorProfile_c g_profile_LIGHT_OBJECT; +extern const fProfile::fActorProfile_c g_profile_MESSAGE; +extern const fProfile::fActorProfile_c g_profile_LYT_CONTROL_GAME; +extern const fProfile::fActorProfile_c g_profile_LYT_DEMO_DOWSING; +extern const fProfile::fActorProfile_c g_profile_LYT_CONTROL_TITLE; +extern const fProfile::fActorProfile_c g_profile_LYT_DROP_LINE; +extern const fProfile::fActorProfile_c g_profile_LYT_FORCE_LINE; +extern const fProfile::fActorProfile_c g_profile_LYT_ENEMY_ICON; +extern const fProfile::fActorProfile_c g_profile_LYT_MINI_GAME; +extern const fProfile::fActorProfile_c g_profile_LYT_SUIRYU_SCORE; +extern const fProfile::fActorProfile_c g_profile_LYT_SUIRYU_SCORE_COMP; +extern const fProfile::fActorProfile_c g_profile_LYT_BOSS_CAPTION; +extern const fProfile::fActorProfile_c g_profile_LYT_PAUSE; +extern const fProfile::fActorProfile_c g_profile_LYT_GAMEOVER_MGR; +extern const fProfile::fActorProfile_c g_profile_LYT_SAVE_MGR; +extern const fProfile::fActorProfile_c g_profile_TITLE_MANAGER; +extern const fProfile::fActorProfile_c g_profile_LYT_TITLE_BG; +extern const fProfile::fActorProfile_c g_profile_LYT_SHOP; +extern const fProfile::fActorProfile_c g_profile_LYT_DEPOSIT; +extern const fProfile::fActorProfile_c g_profile_LYT_DEMO_TITLE; +extern const fProfile::fActorProfile_c g_profile_LYT_END_ROLL; +extern const fProfile::fActorProfile_c g_profile_LYT_SEEKER_STONE; +extern const fProfile::fActorProfile_c g_profile_LYT_FILESELECT; +extern const fProfile::fActorProfile_c g_profile_SKB; +extern const fProfile::fActorProfile_c g_profile_EVENT_TAG; +extern const fProfile::fActorProfile_c g_profile_EVENTF_TAG; +extern const fProfile::fActorProfile_c g_profile_C_GAME; +extern const fProfile::fActorProfile_c g_profile_C_BASE; +extern const fProfile::fActorProfile_c g_profile_BOOT; +extern const fProfile::fActorProfile_c g_profile_ROOM; +extern const fProfile::fActorProfile_c g_profile_LAST; + +#endif diff --git a/include/d/tg/d_t_light_shaft_eff.h b/include/d/tg/d_t_light_shaft_eff.h new file mode 100644 index 00000000..18928aad --- /dev/null +++ b/include/d/tg/d_t_light_shaft_eff.h @@ -0,0 +1,12 @@ +#ifndef D_T_LIGHT_SHAFT_EFF_H +#define D_T_LIGHT_SHAFT_EFF_H + +#include + +class dTgLightShaftEff_c : public dTg_c { +public: + dTgLightShaftEff_c() {} + virtual ~dTgLightShaftEff_c() {} +}; + +#endif diff --git a/include/d/tg/d_t_map_inst.h b/include/d/tg/d_t_map_inst.h new file mode 100644 index 00000000..855cc6c0 --- /dev/null +++ b/include/d/tg/d_t_map_inst.h @@ -0,0 +1,16 @@ +#ifndef D_T_MAP_INST_H +#define D_T_MAP_INST_H + +#include + +class dTgMapInst_c : public dTg_c { +public: + dTgMapInst_c() {} + virtual ~dTgMapInst_c() {} + + virtual int create() override; + + u8 field_0xfc; +}; + +#endif diff --git a/include/d/tg/d_t_tackle.h b/include/d/tg/d_t_tackle.h new file mode 100644 index 00000000..c325c7bb --- /dev/null +++ b/include/d/tg/d_t_tackle.h @@ -0,0 +1,12 @@ +#ifndef D_T_TACKLE_H +#define D_T_TACKLE_H + +#include + +class dTgTackle_c : public dTg_c { +public: + dTgTackle_c() {} + virtual ~dTgTackle_c() {} +}; + +#endif diff --git a/include/f/f_profile.h b/include/f/f_profile.h index fa85c7b6..43ee7750 100644 --- a/include/f/f_profile.h +++ b/include/f/f_profile.h @@ -4,6 +4,7 @@ // Ported from https://github.com/NSMBW-Community/NSMBW-Decomp/blob/master/include/dol/framework/f_profile.hpp #include "f/f_profile_name.h" +#include /// @brief Creates a profile of a base with given values for execute and draw order. #define SPECIAL_BASE_PROFILE(profName, className, executeOrder, drawOrder, baseProperties) \ @@ -18,8 +19,8 @@ void *className##_classInit() { \ return new className(); \ } \ - const fProfile::fActorProfile_c g_profile_##profName = {&className##_classInit, executeOrder, drawOrder, \ - baseProperties, properties} + fProfile::fActorProfile_c g_profile_##profName = {&className##_classInit, executeOrder, drawOrder, baseProperties, \ + properties} /// @brief Creates a profile for a base, with the profile number as the priority for both the draw and execute order. /// @see SPECIAL_BASE_PROFILE @@ -29,8 +30,10 @@ /// @brief Creates a profile of an actor with default values. @see DEFAULT_BASE_PROFILE #define DEFAULT_ACTOR_PROFILE(profName, className, baseProperties, properties) \ SPECIAL_ACTOR_PROFILE(profName, className, fProfile::profName, fProfile::profName, baseProperties, properties); + /* + fProfile::fActorProfile_c g_profile_NAME = { *class_init() profName executreOrder @@ -60,6 +63,8 @@ namespace fProfile { /// @brief A set of basic information needed to construct a base. /// @details A profile consists of a pointer to a constructor function /// and a priority value for execution and drawing order. +typedef void *(ClassInitFunc)(); + struct fBaseProfile_c { void *(*mpClassInit)(); ///< The constructor function. u16 m_execute_order; ///< The execution priority of the base. @@ -69,11 +74,15 @@ struct fBaseProfile_c { /// @brief A set of basic information needed to construct an actor. /// @details In addition to the fields in fBaseProfile_c, it also contains some properties about the actor. -struct fActorProfile_c : fBaseProfile_c { +struct fActorProfile_c /* : fBaseProfile_c */ { + void *(*mpClassInit)(); ///< The constructor function. + u16 m_execute_order; ///< The execution priority of the base. + u16 m_draw_order; ///< The draw priority of the base. + u32 mBaseProperties; u32 mActorProperties; ///< Some actor-related properties. @todo Document the bitfield. }; -extern fBaseProfile_c *(*sProfileList)[NUMBER_OF_ACTORS]; ///< A list of all profiles. +extern const fBaseProfile_c *(*sProfileList)[NUMBER_OF_ACTORS]; ///< A list of all profiles. } // namespace fProfile diff --git a/include/f/f_profile_name.h b/include/f/f_profile_name.h index a2cf3427..8ca2e818 100644 --- a/include/f/f_profile_name.h +++ b/include/f/f_profile_name.h @@ -1,8 +1,6 @@ #ifndef F_PROFILE_NAME #define F_PROFILE_NAME -#include - namespace fProfile { enum PROFILE_NAME_e { @@ -712,6 +710,7 @@ enum PROFILE_NAME_e { /* 703 */ NUMBER_OF_ACTORS, INVALID, }; -}; + +} #endif diff --git a/src/REL/d/d_profile.cpp b/src/REL/d/d_profile.cpp index e69de29b..8ba8e383 100644 --- a/src/REL/d/d_profile.cpp +++ b/src/REL/d/d_profile.cpp @@ -0,0 +1,717 @@ +#include + +// clang-format off +fProfile::fBaseProfile_c *profileList[] = { + (fProfile::fBaseProfile_c *)&g_profile_TITLE, + (fProfile::fBaseProfile_c *)&g_profile_E3_TITLE, + (fProfile::fBaseProfile_c *)&g_profile_E3_GAMEEND, + (fProfile::fBaseProfile_c *)&g_profile_THPPLAYER, + (fProfile::fBaseProfile_c *)&g_profile_GAME, + (fProfile::fBaseProfile_c *)&g_profile_STAGE_MANAGER, + (fProfile::fBaseProfile_c *)&g_profile_STAGE, + (fProfile::fBaseProfile_c *)&g_profile_STAGE_SELECT, + (fProfile::fBaseProfile_c *)&g_profile_VIEW_CLIP_TAG, + (fProfile::fBaseProfile_c *)&g_profile_START_TAG, + (fProfile::fBaseProfile_c *)&g_profile_MAP_AREA_TAG, + (fProfile::fBaseProfile_c *)&g_profile_TRUCK_RAIL, + (fProfile::fBaseProfile_c *)&g_profile_TAG_STREAM, + (fProfile::fBaseProfile_c *)&g_profile_COL_BOMSLD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STAGE_KRAKEN, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STAGE_KRAKEN_PARTS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TIME_STONE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SW, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BLOCK_ROPE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PUSH_BLOCK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_KIBAKO, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LOG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LOG_WATER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BELT_CVR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DRUM, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BELT_OBSTACLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_HIMO, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SPIDER_LINE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WIND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WIND03, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WIND04, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TORNADO, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SWITCH_WALL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TOWER_D101, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DOOR_DUNGEON_D200, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DOOR_DUNGEON, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WOOD_BOARD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CLAW_SHOT_TG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BULB_SWITCH, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SIDE_SHUTTER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_HIT_LEVER_SW, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FENCE_IRON, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UPDOWN_LAVA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BB_OBJECTS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BRIDGE_BUILDING, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CANNON, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROULETTE_ISLAND_C, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROULETTE_ISLAND_R, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BRIDGE_STRETCH, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_IRON_STAGE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UTAJIMA_STOPPER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UTAJIMA_MAIN_MECHA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UTAJIMA_PEDESTAL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UTAJIMA_ISLAND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CANNON_COVER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UTAJIMA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UTAJIMA_LV2, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PUZZLE_ISLAND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FENCE_BOKO, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FENCE_BOKO2, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WINDMILL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PINWHEEL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LIGHTHOUSE_HARP, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FENCE_KONSAI, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STAGE_SINK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STAGE_WATER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STAGE_COVER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STAGE_CRACK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TERRY_ISLAND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_INSECT_ISLAND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SHRINE_AFTER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SHRINE_BEFORE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SHIP_WINDOW, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_SURFACE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PUMPKIN_BAR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TREASURE_ISLAND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SEALED_DOOR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_EVIL_FIELD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_MEGAMI_ISLAND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CITY, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BAMBOO_ISLAND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STREAM_LAVA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DOWN_LAVA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_APPEAR_BRIDGE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TRUCK_STOPPER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ISLAND_NUSI, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROCK_SKY, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TREASURE_ISLAND_B, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_F100, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BELL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SHRINE_BEF_INSIDE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WINDMILL_DESERT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CITY_WATER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_MOLE_COVER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DESERT_DEBRIS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BB_BROKEN_PARTS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_KUMITE_WALL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_SHIELD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BSTONE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WIND02, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LEAF_SWING, + (fProfile::fBaseProfile_c *)&g_profile_RIDE_ROCK_SET_TAG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_RIDE_ROCK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_MOVE_LIFT_VOL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TRUCK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TERRY_SHOP, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TRAP_ROCK_1, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STOPPER_ROCK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SHUTTER_FENCE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SINK_FLOOR_F, + (fProfile::fBaseProfile_c *)&g_profile_E_GUMARM, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STEP_GUMARM, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BRIDGE_FALL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BRIDGE_STEP, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BRIDGE_BONE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BB_BRIDGE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BRIDGE_TIME, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BOAT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BALLISTA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BALLISTA_F3, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TIME_BOAT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GODDESS_STATUE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STONE_STAND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TIME_STAGE_BG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WARP_HOLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GEAR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DESERT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_D300, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SEA_F301, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DESERT_AGO, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DESERT_METER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_NEEDLE_DESERT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LOTUS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TARZAN_POLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STEP_TIME_SLIP, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TIME_BASE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SWITCH_SHUTTER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATERFALL_D101, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROLL_PILLAR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CHEST, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROCK_BOAT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BLOCK_UNDERGROUND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UNDERGROUND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TROLLEY, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LAVA_PLATE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SAND_FLOOR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SW_SYAKO, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SYAKO_SHUTTER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DUNGEON_SHIP, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_NEEDLE_UNDERGROUND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STEP_STATUE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GRAVE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SHED, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GIRAHIMU_FLOOR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TENIJIMA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SAND_D301, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DOOR_BOSSD101, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BOXCAGE_F300, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TOWER_HAND_D101, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DORMITORY_GATE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PISTON, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FRUIT_TREE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FARMLAND, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PROPELLER_LIFT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_D3_DUMMY, + (fProfile::fBaseProfile_c *)&g_profile_B_BIGBOSS_BASE, + (fProfile::fBaseProfile_c *)&g_profile_B_BIGBOSS, + (fProfile::fBaseProfile_c *)&g_profile_B_BIGBOSS2, + (fProfile::fBaseProfile_c *)&g_profile_B_BIGBOSS3, + (fProfile::fBaseProfile_c *)&g_profile_B_VD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_VDB, + (fProfile::fBaseProfile_c *)&g_profile_E_CAPTAIN, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TRUCK_RAIL_COL, + (fProfile::fBaseProfile_c *)&g_profile_BIRD, + (fProfile::fBaseProfile_c *)&g_profile_BIRD_TARGET, + (fProfile::fBaseProfile_c *)&g_profile_BIRD_NPC, + (fProfile::fBaseProfile_c *)&g_profile_BIRD_KOBUNA, + (fProfile::fBaseProfile_c *)&g_profile_BIRD_KOBUNB, + (fProfile::fBaseProfile_c *)&g_profile_BIRD_RIVAL, + (fProfile::fBaseProfile_c *)&g_profile_BIRD_ZELDA_TRAINING, + (fProfile::fBaseProfile_c *)&g_profile_AVATER_RACE_MNG, + (fProfile::fBaseProfile_c *)&g_profile_AVATER_BULLET, + (fProfile::fBaseProfile_c *)&g_profile_NUSI_BASE, + (fProfile::fBaseProfile_c *)&g_profile_NUSI_NPC, + (fProfile::fBaseProfile_c *)&g_profile_B_NUSI, + (fProfile::fBaseProfile_c *)&g_profile_B_NUSI_TENTAKLE, + (fProfile::fBaseProfile_c *)&g_profile_B_NUSI_BULLET, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LIGHT_LINE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LIGHT_SHAFT_SMALL, + (fProfile::fBaseProfile_c *)&g_profile_TAG_LIGHT_SHAFT_EFF, + (fProfile::fBaseProfile_c *)&g_profile_MEGAMI_DIVING_TAG, + (fProfile::fBaseProfile_c *)&g_profile_COMMON_BULLET, + (fProfile::fBaseProfile_c *)&g_profile_E_SYAKOMAITO, + (fProfile::fBaseProfile_c *)&g_profile_E_MR, + (fProfile::fBaseProfile_c *)&g_profile_E_PH, + (fProfile::fBaseProfile_c *)&g_profile_B_KR, + (fProfile::fBaseProfile_c *)&g_profile_B_KRH, + (fProfile::fBaseProfile_c *)&g_profile_B_KRA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FLYING_CLAWSHOT_TARGET, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DIS_SHIP, + (fProfile::fBaseProfile_c *)&g_profile_PLAYER, + (fProfile::fBaseProfile_c *)&g_profile_TAG_SHUTTER_FENCE_PERMISSION, + (fProfile::fBaseProfile_c *)&g_profile_SHUTTER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SHUTTER_CHANGE_SCENE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DOOR_BOSS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DOOR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FENCE, + (fProfile::fBaseProfile_c *)&g_profile_TAG_SHUTTER_FENCE_FORBIDDANCE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TROLLEY_SHUTTER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TR_SHUTTER_CS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BG, + (fProfile::fBaseProfile_c *)&g_profile_BOOMERANG, + (fProfile::fBaseProfile_c *)&g_profile_GENKI_MGR_TAG, + (fProfile::fBaseProfile_c *)&g_profile_TAG_MIECHAN, + (fProfile::fBaseProfile_c *)&g_profile_DEMO_NPC_BIRD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_RVL, + (fProfile::fBaseProfile_c *)&g_profile_NPC_RIVAL_LOD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KBN, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KBN2, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KOBUN_B_NIGHT, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SKN, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SKN2, + (fProfile::fBaseProfile_c *)&g_profile_NPC_GZL, + (fProfile::fBaseProfile_c *)&g_profile_NPC_ZLD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_DSK, + (fProfile::fBaseProfile_c *)&g_profile_NPC_DRB, + (fProfile::fBaseProfile_c *)&g_profile_NPC_DRBC, + (fProfile::fBaseProfile_c *)&g_profile_NPC_CE_FRIEND, + (fProfile::fBaseProfile_c *)&g_profile_NPC_CE_LADY, + (fProfile::fBaseProfile_c *)&g_profile_NPC_TOILET_GHOST, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SORAJIMA_FATHER, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SORAJIMA_MOTHER, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SORAJIMA_GIRL, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KYUI_WIZARD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KYUI_FIRST, + (fProfile::fBaseProfile_c *)&g_profile_NPC_ORD_KYUI, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KYUI_ELDER, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KYUI_THIRD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KYUI4, + (fProfile::fBaseProfile_c *)&g_profile_NPC_TMN, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SALESMAN_S, + (fProfile::fBaseProfile_c *)&g_profile_NPC_DOUGUYA_NIGHT, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MED_WIFE_NIGHT, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MED_HUS_NIGHT, + (fProfile::fBaseProfile_c *)&g_profile_NPC_JUNK_NIGHT, + (fProfile::fBaseProfile_c *)&g_profile_NPC_AZUKARIYA_NIGHT, + (fProfile::fBaseProfile_c *)&g_profile_NPC_DOUGUYA_MOTHER, + (fProfile::fBaseProfile_c *)&g_profile_NPC_DOUGUYA_MOTHER_LOD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_JUNK_MOTHER, + (fProfile::fBaseProfile_c *)&g_profile_NPC_JUNK_MOTHER_LOD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SENPAIA_MOTHER, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SENPAIA_MOTHER_LOD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SORAJIMA_MAN_E, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SORAJIMA_MAN_D, + (fProfile::fBaseProfile_c *)&g_profile_NPC_AZUKARIYA_FATHER, + (fProfile::fBaseProfile_c *)&g_profile_NPC_DAISHINKAN_N, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SORAJIMA_MALE, + (fProfile::fBaseProfile_c *)&g_profile_NPC_BDSW, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SORAJIMA_FEMALE, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KENSEI, + (fProfile::fBaseProfile_c *)&g_profile_NPC_TALK_KENSEI, + (fProfile::fBaseProfile_c *)&g_profile_NPC_BDZ, + (fProfile::fBaseProfile_c *)&g_profile_NPC_OIM, + (fProfile::fBaseProfile_c *)&g_profile_NPC_YIM, + (fProfile::fBaseProfile_c *)&g_profile_NPC_BGR, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SLTK, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SLB2, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SMA3, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SMA2, + (fProfile::fBaseProfile_c *)&g_profile_NPC_PMA, + (fProfile::fBaseProfile_c *)&g_profile_NPC_PDU, + (fProfile::fBaseProfile_c *)&g_profile_NPC_ICGK, + (fProfile::fBaseProfile_c *)&g_profile_NPC_PCS, + (fProfile::fBaseProfile_c *)&g_profile_NPC_FDR, + (fProfile::fBaseProfile_c *)&g_profile_NPC_TDR, + (fProfile::fBaseProfile_c *)&g_profile_NPC_TDS, + (fProfile::fBaseProfile_c *)&g_profile_NPC_TDRB, + (fProfile::fBaseProfile_c *)&g_profile_TAG_SWORD_BATTLE_GAME, + (fProfile::fBaseProfile_c *)&g_profile_TAG_SIREN_TIME_ATTACK, + (fProfile::fBaseProfile_c *)&g_profile_NPC_ADR, + (fProfile::fBaseProfile_c *)&g_profile_NPC_GHM, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SHA, + (fProfile::fBaseProfile_c *)&g_profile_NPC_GRA, + (fProfile::fBaseProfile_c *)&g_profile_NPC_GRC, + (fProfile::fBaseProfile_c *)&g_profile_NPC_GRD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SORAJIMA_BOY, + (fProfile::fBaseProfile_c *)&g_profile_NPC_AKUMAKUN, + (fProfile::fBaseProfile_c *)&g_profile_NPC_AKU_HUMAN, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SUISEI, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SUISEI_SUB, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SUISEI_NORMAL, + (fProfile::fBaseProfile_c *)&g_profile_MOLE_MGR_TAG, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MOLE_MG, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MOLE, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MOLE_NORMAL, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MOLE_NORMAL2, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MOLE_ES_NML, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MOLE_TACKLE, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MOLE_TACKLE2, + (fProfile::fBaseProfile_c *)&g_profile_NPC_CHEF, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SLFB, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SLRP, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SLFL, + (fProfile::fBaseProfile_c *)&g_profile_NPC_TERRY, + (fProfile::fBaseProfile_c *)&g_profile_NPC_DIVE_GAME_JUDGE, + (fProfile::fBaseProfile_c *)&g_profile_KNIGHT_LEADER_BIRD, + (fProfile::fBaseProfile_c *)&g_profile_NPC_KNIGHT_LEADER, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SENPAI, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SENPAI_B, + (fProfile::fBaseProfile_c *)&g_profile_NPC_REGRET_RIVAL, + (fProfile::fBaseProfile_c *)&g_profile_NPC_RESCUE, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SLB, + (fProfile::fBaseProfile_c *)&g_profile_FLY_SLB, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PROPERA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROULETTE, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MOLE_ELDER, + (fProfile::fBaseProfile_c *)&g_profile_NPC_SALBAGE_MORRY, + (fProfile::fBaseProfile_c *)&g_profile_NPC_MOLE_SAL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_POT_SAL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_MOLE_SOIL, + (fProfile::fBaseProfile_c *)&g_profile_LITTLE_BIRD_MGR, + (fProfile::fBaseProfile_c *)&g_profile_LITTLE_BIRD, + (fProfile::fBaseProfile_c *)&g_profile_FISH_MGR, + (fProfile::fBaseProfile_c *)&g_profile_FISH, + (fProfile::fBaseProfile_c *)&g_profile_EEL, + (fProfile::fBaseProfile_c *)&g_profile_JSTUDIO_SYSOBJ, + (fProfile::fBaseProfile_c *)&g_profile_JSTUDIO_ACTOR, + (fProfile::fBaseProfile_c *)&g_profile_B_BBSHWV, + (fProfile::fBaseProfile_c *)&g_profile_NPC_BBRVL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BIGBOMB_FLOWER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BBLARGEBOMB, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BSTN, + (fProfile::fBaseProfile_c *)&g_profile_B_MG, + (fProfile::fBaseProfile_c *)&g_profile_B_LASTBOSS, + (fProfile::fBaseProfile_c *)&g_profile_J_TEST, + (fProfile::fBaseProfile_c *)&g_profile_E_AM, + (fProfile::fBaseProfile_c *)&g_profile_T_QUAKE, + (fProfile::fBaseProfile_c *)&g_profile_T_KUMITE, + (fProfile::fBaseProfile_c *)&g_profile_GROUP_TEST, + (fProfile::fBaseProfile_c *)&g_profile_GROUP_SUMMON, + (fProfile::fBaseProfile_c *)&g_profile_T_BCAL, + (fProfile::fBaseProfile_c *)&g_profile_E_SM, + (fProfile::fBaseProfile_c *)&g_profile_E_BEAMOS, + (fProfile::fBaseProfile_c *)&g_profile_GEKO_TAG, + (fProfile::fBaseProfile_c *)&g_profile_E_GEKO, + (fProfile::fBaseProfile_c *)&g_profile_E_SIREN, + (fProfile::fBaseProfile_c *)&g_profile_E_PO, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_RING, + (fProfile::fBaseProfile_c *)&g_profile_E_OR, + (fProfile::fBaseProfile_c *)&g_profile_E_OR_CANNON, + (fProfile::fBaseProfile_c *)&g_profile_OR_CANN_BULLET, + (fProfile::fBaseProfile_c *)&g_profile_E_EYE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_HOLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_INTO_HOLE, + (fProfile::fBaseProfile_c *)&g_profile_E_SPARK, + (fProfile::fBaseProfile_c *)&g_profile_E_MAGMA, + (fProfile::fBaseProfile_c *)&g_profile_E_MAGUPPO, + (fProfile::fBaseProfile_c *)&g_profile_MAGUPPO_BULLET, + (fProfile::fBaseProfile_c *)&g_profile_E_BS, + (fProfile::fBaseProfile_c *)&g_profile_E_SF, + (fProfile::fBaseProfile_c *)&g_profile_E_SF4, + (fProfile::fBaseProfile_c *)&g_profile_E_ST, + (fProfile::fBaseProfile_c *)&g_profile_E_ST_WIRE, + (fProfile::fBaseProfile_c *)&g_profile_ENEMY_CONTROL, + (fProfile::fBaseProfile_c *)&g_profile_KIESU_TAG, + (fProfile::fBaseProfile_c *)&g_profile_E_KS, + (fProfile::fBaseProfile_c *)&g_profile_E_HB, + (fProfile::fBaseProfile_c *)&g_profile_E_HB_LEAF, + (fProfile::fBaseProfile_c *)&g_profile_E_REMLY, + (fProfile::fBaseProfile_c *)&g_profile_E_LIZARUFOS, + (fProfile::fBaseProfile_c *)&g_profile_E_LIZA_TAIL, + (fProfile::fBaseProfile_c *)&g_profile_E_HIDOKARI, + (fProfile::fBaseProfile_c *)&g_profile_E_HIDOKARIS, + (fProfile::fBaseProfile_c *)&g_profile_E_HYDRA, + (fProfile::fBaseProfile_c *)&g_profile_E_GUNHO, + (fProfile::fBaseProfile_c *)&g_profile_E_GUNHOB, + (fProfile::fBaseProfile_c *)&g_profile_E_BFISH, + (fProfile::fBaseProfile_c *)&g_profile_E_CACTUS, + (fProfile::fBaseProfile_c *)&g_profile_E_HOC, + (fProfile::fBaseProfile_c *)&g_profile_E_OC, + (fProfile::fBaseProfile_c *)&g_profile_E_KGIRA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PIPE, + (fProfile::fBaseProfile_c *)&g_profile_E_BC, + (fProfile::fBaseProfile_c *)&g_profile_E_BCE, + (fProfile::fBaseProfile_c *)&g_profile_E_BCAL, + (fProfile::fBaseProfile_c *)&g_profile_E_BCARROW, + (fProfile::fBaseProfile_c *)&g_profile_E_BCALARROW, + (fProfile::fBaseProfile_c *)&g_profile_BCZ_TAG, + (fProfile::fBaseProfile_c *)&g_profile_E_BCZ, + (fProfile::fBaseProfile_c *)&g_profile_E_SKYTAIL, + (fProfile::fBaseProfile_c *)&g_profile_E_HP, + (fProfile::fBaseProfile_c *)&g_profile_E_CHB, + (fProfile::fBaseProfile_c *)&g_profile_E_GUE, + (fProfile::fBaseProfile_c *)&g_profile_GUE_BULLET, + (fProfile::fBaseProfile_c *)&g_profile_E_GE, + (fProfile::fBaseProfile_c *)&g_profile_E_RUPEE_GUE, + (fProfile::fBaseProfile_c *)&g_profile_E_GEROCK, + (fProfile::fBaseProfile_c *)&g_profile_E_TN2, + (fProfile::fBaseProfile_c *)&g_profile_E_HIDORY, + (fProfile::fBaseProfile_c *)&g_profile_HIDORY_FIRE, + (fProfile::fBaseProfile_c *)&g_profile_E_WS, + (fProfile::fBaseProfile_c *)&g_profile_NPC_BIRD, + (fProfile::fBaseProfile_c *)&g_profile_B_GIRAHIMU_BASE, + (fProfile::fBaseProfile_c *)&g_profile_B_GIRAHIMU, + (fProfile::fBaseProfile_c *)&g_profile_B_GIRAHIMU2, + (fProfile::fBaseProfile_c *)&g_profile_B_GIRAHIMU3_BASE, + (fProfile::fBaseProfile_c *)&g_profile_B_GIRAHIMU3_FIRST, + (fProfile::fBaseProfile_c *)&g_profile_B_GIRAHIMU3_SECOND, + (fProfile::fBaseProfile_c *)&g_profile_B_GIRAHIMU3_THIRD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GH_SW_L, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GH_KNIFE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BIRD_SP_UP, + (fProfile::fBaseProfile_c *)&g_profile_GH_SWORD_BEAM, + (fProfile::fBaseProfile_c *)&g_profile_B_ASURA, + (fProfile::fBaseProfile_c *)&g_profile_ASURA_ARM, + (fProfile::fBaseProfile_c *)&g_profile_ASURA_FOOT, + (fProfile::fBaseProfile_c *)&g_profile_ASURA_BULLET, + (fProfile::fBaseProfile_c *)&g_profile_ASURA_SWORD, + (fProfile::fBaseProfile_c *)&g_profile_ASURA_PILLAR, + (fProfile::fBaseProfile_c *)&g_profile_INVISIBLE, + (fProfile::fBaseProfile_c *)&g_profile_E_MR_SHIELD, + (fProfile::fBaseProfile_c *)&g_profile_E_KG, + (fProfile::fBaseProfile_c *)&g_profile_NPC_HONEYCOMB, + (fProfile::fBaseProfile_c *)&g_profile_NPC_BEE, + (fProfile::fBaseProfile_c *)&g_profile_HEART_FLOWER, + (fProfile::fBaseProfile_c *)&g_profile_BOMBF, + (fProfile::fBaseProfile_c *)&g_profile_BOMB, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CARRY_STONE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROLL_ROCK, + (fProfile::fBaseProfile_c *)&g_profile_COL_STP, + (fProfile::fBaseProfile_c *)&g_profile_KANBAN, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BAMBOO, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SWHIT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SW_SWORD_BEAM, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SW_HARP, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SIREN_BARRIER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TOGE_TRAP, + (fProfile::fBaseProfile_c *)&g_profile_PUMPKIN, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PUMPKIN_LEAF, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_NUT_LEAF, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_NUT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TABLEWARE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SW_WHIPLEVER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_MUSHROOM, + (fProfile::fBaseProfile_c *)&g_profile_WOODAREA_TAG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FRUIT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SKULL, + (fProfile::fBaseProfile_c *)&g_profile_SOUND_TAG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROCK_DRAGON, + (fProfile::fBaseProfile_c *)&g_profile_TAG_INSECT, + (fProfile::fBaseProfile_c *)&g_profile_INSECT_LADYBUG, + (fProfile::fBaseProfile_c *)&g_profile_INSECT_DRAGONFLY, + (fProfile::fBaseProfile_c *)&g_profile_INSECT_BEETLE, + (fProfile::fBaseProfile_c *)&g_profile_INSECT_GRASSHOPPER, + (fProfile::fBaseProfile_c *)&g_profile_INSECT_CICADA, + (fProfile::fBaseProfile_c *)&g_profile_INSECT_ANT, + (fProfile::fBaseProfile_c *)&g_profile_INSECT_BUTTERFLY, + (fProfile::fBaseProfile_c *)&g_profile_INSECT_SCARAB, + (fProfile::fBaseProfile_c *)&g_profile_INSECT_FIREFLY, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SAIL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LOTUS_FLOWER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LOTUS_SEED, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SHUTTER_LOCK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LAMP, + (fProfile::fBaseProfile_c *)&g_profile_TAG_ROCK_BOAT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TOWER_GEAR_D101, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SHUTTER_WATER_D101, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ANCIENT_JEWELS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_MG_PUMPKIN, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FLAG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CHANDELIER, + (fProfile::fBaseProfile_c *)&g_profile_TAG_PUMPKIN_CLAY, + (fProfile::fBaseProfile_c *)&g_profile_TAG_REACTION, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SPORE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FRUIT_B, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DIVINER_CRYSTAL, + (fProfile::fBaseProfile_c *)&g_profile_TAG_NOEFFECT_AREA, + (fProfile::fBaseProfile_c *)&g_profile_TAG_D3_SCENE_CHANGE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DECOA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DECOB, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SANDBAG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_PAINT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CONTROL_PANEL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UG_SWITCH, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CLEARNESS_WALL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_RUINED_SAVE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TRIFORCE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_KANBAN_STONE, + (fProfile::fBaseProfile_c *)&g_profile_TBOX, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BUBBLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_VSD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SOIL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_IVY_ROPE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GRASS_COIL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROPE_IGAIGA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FIRE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TUBO, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TUBO_BIG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CHAIR, + (fProfile::fBaseProfile_c *)&g_profile_TIME_AREA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BLAST_ROCK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SW_DIR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SW_DIR_DOOR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SW_BANK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SW_BANK_SMALL, + (fProfile::fBaseProfile_c *)&g_profile_T_FAIRY, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FAIRY, + (fProfile::fBaseProfile_c *)&g_profile_BIRD_MOB, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BALLISTA_HANDLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TIME_BOAT_BULLET, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TIME_DOOR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TIME_DOOR_BEFORE, + (fProfile::fBaseProfile_c *)&g_profile_TAG_TIME_DOOR_BEAM, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_COL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DAYNIGHT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BUILDING, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_OCT_GRASS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_OCT_GRASS_LEAF, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TUMBLE_WEED, + (fProfile::fBaseProfile_c *)&g_profile_TUMBLE_WEED_TAG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FLOWER_ANCIENT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BARREL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WARP, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_MARK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_JAR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STOPPING_ROPE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TRAP_BIRD_WOOD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TACKLE, + (fProfile::fBaseProfile_c *)&g_profile_TACKLE_TAG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_VORTEX, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TOWER_BOMB, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SEAT_SWORD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_POLE_STONY, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SWORD_CANDLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SAVE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_POOL_COCK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FIREWALL, + (fProfile::fBaseProfile_c *)&g_profile_HARP_TAG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SWORD_STAB, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GODDESS_CUBE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TIME_BLOCK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_MOVE_ELEC, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LAVA_D201, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_HARP_HINT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_F302_LIGHT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TOD3_STONE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_B300_SAND, + (fProfile::fBaseProfile_c *)&g_profile_T_DOWSING, + (fProfile::fBaseProfile_c *)&g_profile_T_MAP_MARK, + (fProfile::fBaseProfile_c *)&g_profile_BEETLE_TAG, + (fProfile::fBaseProfile_c *)&g_profile_EFFECT_GEN_TAG, + (fProfile::fBaseProfile_c *)&g_profile_TAG_TIME_AREA_CHECK, + (fProfile::fBaseProfile_c *)&g_profile_TAG_RESTART_TIME_STONE, + (fProfile::fBaseProfile_c *)&g_profile_SHOP_SAMPLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TERRY_GIMMICK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TERRY_SWITCH, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TERRY_HOLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TERRY_BIKE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_JUNK_REPAIR, + (fProfile::fBaseProfile_c *)&g_profile_CO_TEST, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ARROW_SWITCH, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_VENT_FAN, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ELECTRIC_LIGHT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_SWITCH, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROTATION_LIGHT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_HOLE_MINIGAME, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CLOUD_DIVE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_MUSASABI, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FORTUNE_RING, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BLOW_COAL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SPIKE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_SPOUT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SMOKE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LIGHTHOUSE_LIGHT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATER_IGAIGA, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BLADE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FIRE_OBSTACLE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FIRE_PILLAR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GUARD_LOG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SLICE_LOG, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SLICE_LOG_PARTS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_STAGE_DEBRIS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GROUND_COVER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CUMUL_CLOUD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UNDER_CLOUD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATERFALL_F102, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GOD_MARK, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_IMPA_DOOR, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_WATERFALL_D100, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_GIRAHIM_FOOT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ISLAND_LOD, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_UTA_DEMO_PEDEST, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_LAVA_F200, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ROPE_BASE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SUN_LIGHT, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SIREN_2DMAP, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_DISPLAY_ONLY_NBS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_AMBER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_BIRD_STATUE, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_F400_GATE_LEAF, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_F400_GATE_SEAL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_MAPPARTS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_RO_AT_TARGET, + (fProfile::fBaseProfile_c *)&g_profile_RO_AT_TAR_MANAGER_TAG, + (fProfile::fBaseProfile_c *)&g_profile_TAG_MUSASABI, + (fProfile::fBaseProfile_c *)&g_profile_TAG_MAP_INST, + (fProfile::fBaseProfile_c *)&g_profile_TAG_AUTO_MESSAGE, + (fProfile::fBaseProfile_c *)&g_profile_TAG_SHIP_SLOPE, + (fProfile::fBaseProfile_c *)&g_profile_TAG_SHIP_FLOOD, + (fProfile::fBaseProfile_c *)&g_profile_TAG_BARREL, + (fProfile::fBaseProfile_c *)&g_profile_TAG_BARREL_POS, + (fProfile::fBaseProfile_c *)&g_profile_TAG_HEAT_RESIST, + (fProfile::fBaseProfile_c *)&g_profile_TAG_HOLY_WATER, + (fProfile::fBaseProfile_c *)&g_profile_TAG_BELT_OBSTACLE, + (fProfile::fBaseProfile_c *)&g_profile_TAG_DRUM, + (fProfile::fBaseProfile_c *)&g_profile_TAG_ROLL_ATTACK_LOG, + (fProfile::fBaseProfile_c *)&g_profile_TAG_SHIP_WINDOW, + (fProfile::fBaseProfile_c *)&g_profile_ARROW, + (fProfile::fBaseProfile_c *)&g_profile_MASS_OBJ_TAG, + (fProfile::fBaseProfile_c *)&g_profile_SOUND_AREA_MGR, + (fProfile::fBaseProfile_c *)&g_profile_TAG_SOUND_AREA, + (fProfile::fBaseProfile_c *)&g_profile_ATT_TAG, + (fProfile::fBaseProfile_c *)&g_profile_TLP_TAG, + (fProfile::fBaseProfile_c *)&g_profile_SKYENEMY_T, + (fProfile::fBaseProfile_c *)&g_profile_TOUCH_TAG, + (fProfile::fBaseProfile_c *)&g_profile_CAMERA_TAG, + (fProfile::fBaseProfile_c *)&g_profile_CAMERA2_TAG, + (fProfile::fBaseProfile_c *)&g_profile_ACTION_TAG, + (fProfile::fBaseProfile_c *)&g_profile_SC_CHANGE_TAG, + (fProfile::fBaseProfile_c *)&g_profile_GATE2GND_TAG, + (fProfile::fBaseProfile_c *)&g_profile_ALLDIE_TAG, + (fProfile::fBaseProfile_c *)&g_profile_SW_TAG, + (fProfile::fBaseProfile_c *)&g_profile_PL_RESTART, + (fProfile::fBaseProfile_c *)&g_profile_SW_AREA_TAG, + (fProfile::fBaseProfile_c *)&g_profile_SIREN_TAG, + (fProfile::fBaseProfile_c *)&g_profile_TAG_TKEVNT, + (fProfile::fBaseProfile_c *)&g_profile_MOLE_PROHIBIT_TAG, + (fProfile::fBaseProfile_c *)&g_profile_TAG_DEFEAT_BOSS, + (fProfile::fBaseProfile_c *)&g_profile_TAG_TIMER, + (fProfile::fBaseProfile_c *)&g_profile_TAG_FENCE_SYNCHRONIZER, + (fProfile::fBaseProfile_c *)&g_profile_TAG_GENKI_DOWSING_TARGET, + (fProfile::fBaseProfile_c *)&g_profile_ITEM, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_ITEM_HEART_CONTAINER, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_CLEF, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FRUIT_GUTS_LEAF, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_SWRD_PRJ, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_VACU_DUST_PARTS, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_VACU_DUST, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_RAIL_POST, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_RAIL_END, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TENI_RAIL, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_TENI_RAIL_POST, + (fProfile::fBaseProfile_c *)&g_profile_OBJ_FORCE_SIGN, + (fProfile::fBaseProfile_c *)&g_profile_TAG_FORCE_GET_FLAG, + (fProfile::fBaseProfile_c *)&g_profile_TAG_CLEF_MANAGER, + (fProfile::fBaseProfile_c *)&g_profile_TAG_CLEF_GAME, + (fProfile::fBaseProfile_c *)&g_profile_TAG_MINIGAME_INSECT_CAPTURE, + (fProfile::fBaseProfile_c *)&g_profile_CAMERA, + (fProfile::fBaseProfile_c *)&g_profile_WEATHER_TAG, + (fProfile::fBaseProfile_c *)&g_profile_SPORE_TAG, + (fProfile::fBaseProfile_c *)&g_profile_MIST_TAG, + (fProfile::fBaseProfile_c *)&g_profile_SPARKS_TAG, + (fProfile::fBaseProfile_c *)&g_profile_SPARKS2_TAG, + (fProfile::fBaseProfile_c *)&g_profile_KYTAG_TAG, + (fProfile::fBaseProfile_c *)&g_profile_LBTHUNDER_TAG, + (fProfile::fBaseProfile_c *)&g_profile_PLTCHG_TAG, + (fProfile::fBaseProfile_c *)&g_profile_PLIGHT_TAG, + (fProfile::fBaseProfile_c *)&g_profile_VRBOX_TAG, + (fProfile::fBaseProfile_c *)&g_profile_NPC_INV, + (fProfile::fBaseProfile_c *)&g_profile_NPC_TKE, + (fProfile::fBaseProfile_c *)&g_profile_NPC_STR, + (fProfile::fBaseProfile_c *)&g_profile_MESSAGE_ACTOR, + (fProfile::fBaseProfile_c *)&g_profile_LIGHT_OBJECT, + (fProfile::fBaseProfile_c *)&g_profile_MESSAGE, + (fProfile::fBaseProfile_c *)&g_profile_LYT_CONTROL_GAME, + (fProfile::fBaseProfile_c *)&g_profile_LYT_DEMO_DOWSING, + (fProfile::fBaseProfile_c *)&g_profile_LYT_CONTROL_TITLE, + (fProfile::fBaseProfile_c *)&g_profile_LYT_DROP_LINE, + (fProfile::fBaseProfile_c *)&g_profile_LYT_FORCE_LINE, + (fProfile::fBaseProfile_c *)&g_profile_LYT_ENEMY_ICON, + (fProfile::fBaseProfile_c *)&g_profile_LYT_MINI_GAME, + (fProfile::fBaseProfile_c *)&g_profile_LYT_SUIRYU_SCORE, + (fProfile::fBaseProfile_c *)&g_profile_LYT_SUIRYU_SCORE_COMP, + (fProfile::fBaseProfile_c *)&g_profile_LYT_BOSS_CAPTION, + (fProfile::fBaseProfile_c *)&g_profile_LYT_PAUSE, + (fProfile::fBaseProfile_c *)&g_profile_LYT_GAMEOVER_MGR, + (fProfile::fBaseProfile_c *)&g_profile_LYT_SAVE_MGR, + (fProfile::fBaseProfile_c *)&g_profile_TITLE_MANAGER, + (fProfile::fBaseProfile_c *)&g_profile_LYT_TITLE_BG, + (fProfile::fBaseProfile_c *)&g_profile_LYT_SHOP, + (fProfile::fBaseProfile_c *)&g_profile_LYT_DEPOSIT, + (fProfile::fBaseProfile_c *)&g_profile_LYT_DEMO_TITLE, + (fProfile::fBaseProfile_c *)&g_profile_LYT_END_ROLL, + (fProfile::fBaseProfile_c *)&g_profile_LYT_SEEKER_STONE, + (fProfile::fBaseProfile_c *)&g_profile_LYT_FILESELECT, + (fProfile::fBaseProfile_c *)&g_profile_SKB, + (fProfile::fBaseProfile_c *)&g_profile_EVENT_TAG, + (fProfile::fBaseProfile_c *)&g_profile_EVENTF_TAG, + (fProfile::fBaseProfile_c *)&g_profile_C_GAME, + (fProfile::fBaseProfile_c *)&g_profile_C_BASE, + (fProfile::fBaseProfile_c *)&g_profile_BOOT, + (fProfile::fBaseProfile_c *)&g_profile_ROOM, + (fProfile::fBaseProfile_c *)&g_profile_LAST, +}; +// clang-format on + +extern "C" void ModuleProlog() { + fProfile::sProfileList = &profileList; +} + +extern "C" void ModuleEpilog() { + fProfile::sProfileList = nullptr; +} diff --git a/src/REL/d/t/d_t_light_shaft_eff.cpp b/src/REL/d/t/d_t_light_shaft_eff.cpp index 81c8e3ec..2c5158ae 100644 --- a/src/REL/d/t/d_t_light_shaft_eff.cpp +++ b/src/REL/d/t/d_t_light_shaft_eff.cpp @@ -1,13 +1,5 @@ -#include +#include -class dTgLightShaftEff_c : public dTg_c { -public: - dTgLightShaftEff_c() {} - virtual ~dTgLightShaftEff_c() {} +SPECIAL_ACTOR_PROFILE(TAG_LIGHT_SHAFT_EFF, dTgLightShaftEff_c, fProfile::TAG_LIGHT_SHAFT_EFF, 0x025E, 0, 0); - static dAcBase_c *construct() { - return new dTgLightShaftEff_c(); - } -}; - -dActorInit init_dTgLightShaftEff_c = { dTgLightShaftEff_c::construct, 0x00bd, 0x025e, 0, 0 }; +// clang-format on diff --git a/src/REL/d/t/d_t_map_inst.cpp b/src/REL/d/t/d_t_map_inst.cpp index 166b4604..bcea34c0 100644 --- a/src/REL/d/t/d_t_map_inst.cpp +++ b/src/REL/d/t/d_t_map_inst.cpp @@ -1,23 +1,8 @@ -#include +#include -class dTgMapInst_c : public dTg_c { -public: - dTgMapInst_c() { } - virtual ~dTgMapInst_c() {} - - virtual int create() override; - static dAcBase_c *construct(); - - u8 field_0xfc; -}; - -dAcBase_c *dTgMapInst_c::construct() { - return new dTgMapInst_c(); -} +SPECIAL_ACTOR_PROFILE(TAG_MAP_INST, dTgMapInst_c, fProfile::TAG_MAP_INST, 0x021d, 0, 0); int dTgMapInst_c::create() { field_0xfc = params & 0xff; return 1; } - -dActorInit init_dTgMapInst_c = { dTgMapInst_c::construct, 0x025d, 0x021d, 0, 0 }; diff --git a/src/REL/d/t/d_t_tackle.cpp b/src/REL/d/t/d_t_tackle.cpp index 883c9af4..58286c21 100644 --- a/src/REL/d/t/d_t_tackle.cpp +++ b/src/REL/d/t/d_t_tackle.cpp @@ -1,13 +1,3 @@ -#include +#include -class dTgTackle_c : public dTg_c { -public: - dTgTackle_c() {} - virtual ~dTgTackle_c() {} - - static dAcBase_c *construct() { - return new dTgTackle_c(); - } -}; - -dActorInit init_dTgTackle_c = { dTgTackle_c::construct, 0x0210, 0x0241, 0, 0 }; +SPECIAL_ACTOR_PROFILE(TACKLE_TAG, dTgTackle_c, fProfile::TACKLE_TAG, 0x0241, 0, 0); From feccc8e90c5806bf352b941534f46e5159d1f8ca Mon Sep 17 00:00:00 2001 From: elijah-thomas774 Date: Fri, 31 May 2024 19:35:28 -0400 Subject: [PATCH 3/3] fix typemismatch --- include/d/a/d_a_base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/d/a/d_a_base.h b/include/d/a/d_a_base.h index 5738108e..b705940e 100644 --- a/include/d/a/d_a_base.h +++ b/include/d/a/d_a_base.h @@ -88,7 +88,7 @@ protected: /* 0x64 | 8002ceb0 */ virtual bool restorePosRotFromCopy(); /* 0x68 | 8002db80 */ virtual void *getCurrentEventActor(); /* 0x6C | 8002db90 */ virtual void unkVirtFunc_0x6C(); - /* 0x70 | 8002dba0 */ virtual void doInteraction(int); + /* 0x70 | 8002dba0 */ virtual void doInteraction(s32); public: /* 8002c3b0 */ dAcBase_c();