From bcb70e157617ad6359aa3acb1268cfafd009e209 Mon Sep 17 00:00:00 2001 From: hev7 <143887945+hev7@users.noreply.github.com> Date: Sun, 8 Dec 2024 13:50:44 +0000 Subject: [PATCH] d_a_coach_fire, d_a_obj_kiPot, d_a_obj_lv4prelvtr done (#2259) --- config/GZ2E01/rels/d_a_coach_fire/symbols.txt | 12 +- config/GZ2E01/rels/d_a_obj_kiPot/symbols.txt | 14 +- .../rels/d_a_obj_lv4prelvtr/symbols.txt | 16 +- configure.py | 6 +- include/d/actor/d_a_coach_fire.h | 34 +- include/d/actor/d_a_npc_coach.h | 13 +- include/d/actor/d_a_obj_kiPot.h | 24 +- include/d/actor/d_a_obj_lv4prelvtr.h | 26 +- include/d/actor/d_a_obj_swturn.h | 16 +- src/d/actor/d_a_coach_fire.cpp | 384 +++++++----------- src/d/actor/d_a_npc_coach.cpp | 12 +- src/d/actor/d_a_obj_kiPot.cpp | 270 ++++-------- src/d/actor/d_a_obj_lv4prelvtr.cpp | 255 +++++------- 13 files changed, 460 insertions(+), 622 deletions(-) diff --git a/config/GZ2E01/rels/d_a_coach_fire/symbols.txt b/config/GZ2E01/rels/d_a_coach_fire/symbols.txt index 703c569ab5b..a65a9800243 100644 --- a/config/GZ2E01/rels/d_a_coach_fire/symbols.txt +++ b/config/GZ2E01/rels/d_a_coach_fire/symbols.txt @@ -5,11 +5,11 @@ create_init__13daCoachFire_cFv = .text:0x00000078; // type:function size:0xD0 sc initBaseMtx__13daCoachFire_cFv = .text:0x00000148; // type:function size:0x60 scope:global setBaseMtx__13daCoachFire_cFv = .text:0x000001A8; // type:function size:0x84 scope:global initCcSphere__13daCoachFire_cFv = .text:0x0000022C; // type:function size:0x70 scope:global -daCoachFire_Draw__FP13daCoachFire_c = .text:0x0000029C; // type:function size:0x104 scope:global -daCoachFire_Execute__FP13daCoachFire_c = .text:0x000003A0; // type:function size:0x1F4 scope:global -daCoachFire_IsDelete__FP13daCoachFire_c = .text:0x00000594; // type:function size:0x8 scope:global -daCoachFire_Delete__FP13daCoachFire_c = .text:0x0000059C; // type:function size:0x124 scope:global -daCoachFire_Create__FP10fopAc_ac_c = .text:0x000006C0; // type:function size:0xEC scope:global +daCoachFire_Draw__FP13daCoachFire_c = .text:0x0000029C; // type:function size:0x104 scope:local +daCoachFire_Execute__FP13daCoachFire_c = .text:0x000003A0; // type:function size:0x1F4 scope:local +daCoachFire_IsDelete__FP13daCoachFire_c = .text:0x00000594; // type:function size:0x8 scope:local +daCoachFire_Delete__FP13daCoachFire_c = .text:0x0000059C; // type:function size:0x124 scope:local +daCoachFire_Create__FP10fopAc_ac_c = .text:0x000006C0; // type:function size:0xEC scope:local __dt__8cM3dGSphFv = .text:0x000007AC; // type:function size:0x48 scope:global __dt__8cM3dGAabFv = .text:0x000007F4; // type:function size:0x48 scope:global __dt__10dCcD_GSttsFv = .text:0x0000083C; // type:function size:0x5C scope:global @@ -27,7 +27,7 @@ ccSphSrc$localstatic3$initCcSphere__13daCoachFire_cFv = .rodata:0x00000020; // t @3912 = .rodata:0x00000064; // type:object size:0x4 scope:local @3913 = .rodata:0x00000068; // type:object size:0x4 scope:local data:string @stringBase0 = .rodata:0x0000006C; // type:object size:0x6 scope:local data:string_table -l_daCoachFire_Method = .data:0x00000000; // type:object size:0x20 scope:global +l_daCoachFire_Method = .data:0x00000000; // type:object size:0x20 scope:local g_profile_COACH_FIRE = .data:0x00000020; // type:object size:0x30 scope:global __vt__10cCcD_GStts = .data:0x00000050; // type:object size:0xC scope:global __vt__10dCcD_GStts = .data:0x0000005C; // type:object size:0xC scope:global diff --git a/config/GZ2E01/rels/d_a_obj_kiPot/symbols.txt b/config/GZ2E01/rels/d_a_obj_kiPot/symbols.txt index 82107971f12..f235e2034ba 100644 --- a/config/GZ2E01/rels/d_a_obj_kiPot/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_kiPot/symbols.txt @@ -14,10 +14,10 @@ modeWait__9daKiPot_cFv = .text:0x00000360; // type:function size:0x88 scope:glob chkEvent__9daKiPot_cFv = .text:0x000003E8; // type:function size:0x50 scope:global Draw__9daKiPot_cFv = .text:0x00000438; // type:function size:0x8 scope:global Delete__9daKiPot_cFv = .text:0x00000440; // type:function size:0x8 scope:global -daKiPot_Draw__FP9daKiPot_c = .text:0x00000448; // type:function size:0x20 scope:global -daKiPot_Execute__FP9daKiPot_c = .text:0x00000468; // type:function size:0x20 scope:global -daKiPot_Delete__FP9daKiPot_c = .text:0x00000488; // type:function size:0x20 scope:global -daKiPot_Create__FP10fopAc_ac_c = .text:0x000004A8; // type:function size:0x20 scope:global +daKiPot_Draw__FP9daKiPot_c = .text:0x00000448; // type:function size:0x20 scope:local +daKiPot_Execute__FP9daKiPot_c = .text:0x00000468; // type:function size:0x20 scope:local +daKiPot_Delete__FP9daKiPot_c = .text:0x00000488; // type:function size:0x20 scope:local +daKiPot_Create__FP10fopAc_ac_c = .text:0x000004A8; // type:function size:0x20 scope:local __dt__13daKiPot_HIO_cFv = .text:0x000004C8; // type:function size:0x5C scope:global __sinit_d_a_obj_kiPot_cpp = .text:0x00000524; // type:function size:0x3C scope:local _ctors = .ctors:0x00000000; // type:label scope:global @@ -28,14 +28,14 @@ _dtors = .dtors:0x00000000; // type:label scope:global @3711 = .rodata:0x00000004; // type:object size:0x4 scope:local @3712 = .rodata:0x00000008; // type:object size:0x4 scope:local @3713 = .rodata:0x0000000C; // type:object size:0x4 scope:local -l_cull_box = .data:0x00000000; // type:object size:0x18 scope:global +l_cull_box = .data:0x00000000; // type:object size:0x18 scope:local @3688 = .data:0x00000018; // type:object size:0xC scope:local data:4byte mode_proc$3687 = .data:0x00000024; // type:object size:0xC scope:local data:4byte -l_daKiPot_Method = .data:0x00000030; // type:object size:0x20 scope:global +l_daKiPot_Method = .data:0x00000030; // type:object size:0x20 scope:local g_profile_Obj_KiPot = .data:0x00000050; // type:object size:0x30 scope:global __vt__13daKiPot_HIO_c = .data:0x00000080; // type:object size:0xC scope:global __vt__14mDoHIO_entry_c = .data:0x0000008C; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @3620 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000014; // type:object size:0x8 scope:global +l_HIO = .bss:0x00000014; // type:object size:0x8 scope:local lbl_501_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte diff --git a/config/GZ2E01/rels/d_a_obj_lv4prelvtr/symbols.txt b/config/GZ2E01/rels/d_a_obj_lv4prelvtr/symbols.txt index 4c57422125e..2196b6a6455 100644 --- a/config/GZ2E01/rels/d_a_obj_lv4prelvtr/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_lv4prelvtr/symbols.txt @@ -5,23 +5,23 @@ create1st__14daObjPRElvtr_cFv = .text:0x00000078; // type:function size:0x90 sco setMtx__14daObjPRElvtr_cFv = .text:0x00000108; // type:function size:0x70 scope:global CreateHeap__14daObjPRElvtr_cFv = .text:0x00000178; // type:function size:0x70 scope:global Create__14daObjPRElvtr_cFv = .text:0x000001E8; // type:function size:0x68 scope:global -searchObjSwTurn__FPvPv = .text:0x00000250; // type:function size:0x74 scope:global +searchObjSwTurn__FPvPv = .text:0x00000250; // type:function size:0x74 scope:local Execute__14daObjPRElvtr_cFPPA3_A4_f = .text:0x000002C4; // type:function size:0x100 scope:global Draw__14daObjPRElvtr_cFv = .text:0x000003C4; // type:function size:0xA4 scope:global Delete__14daObjPRElvtr_cFv = .text:0x00000468; // type:function size:0x3C scope:global -daObjPRElvtr_create1st__FP14daObjPRElvtr_c = .text:0x000004A4; // type:function size:0x60 scope:global -daObjPRElvtr_MoveBGDelete__FP14daObjPRElvtr_c = .text:0x00000504; // type:function size:0x20 scope:global -daObjPRElvtr_MoveBGExecute__FP14daObjPRElvtr_c = .text:0x00000524; // type:function size:0x20 scope:global -daObjPRElvtr_MoveBGDraw__FP14daObjPRElvtr_c = .text:0x00000544; // type:function size:0x2C scope:global +daObjPRElvtr_create1st__FP14daObjPRElvtr_c = .text:0x000004A4; // type:function size:0x60 scope:local +daObjPRElvtr_MoveBGDelete__FP14daObjPRElvtr_c = .text:0x00000504; // type:function size:0x20 scope:local +daObjPRElvtr_MoveBGExecute__FP14daObjPRElvtr_c = .text:0x00000524; // type:function size:0x20 scope:local +daObjPRElvtr_MoveBGDraw__FP14daObjPRElvtr_c = .text:0x00000544; // type:function size:0x2C scope:local __dt__14daObjPRElvtr_cFv = .text:0x00000570; // type:function size:0x70 scope:global _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -l_cull_box = .rodata:0x00000000; // type:object size:0x18 scope:global +l_cull_box = .rodata:0x00000000; // type:object size:0x18 scope:local @3694 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float @3695 = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float @3697 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double @stringBase0 = .rodata:0x00000028; // type:object size:0x8 scope:local data:string_table -l_arcName = .data:0x00000000; // type:object size:0x4 scope:global -daObjPRElvtr_METHODS = .data:0x00000004; // type:object size:0x20 scope:global +l_arcName = .data:0x00000000; // type:object size:0x4 scope:local +daObjPRElvtr_METHODS = .data:0x00000004; // type:object size:0x20 scope:local g_profile_Obj_PRElvtr = .data:0x00000024; // type:object size:0x30 scope:global __vt__14daObjPRElvtr_c = .data:0x00000054; // type:object size:0x2C scope:global diff --git a/configure.py b/configure.py index 865ab4972c1..23121234e61 100644 --- a/configure.py +++ b/configure.py @@ -1527,7 +1527,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_balloon_2D"), ActorRel(NonMatching, "d_a_bullet"), ActorRel(NonMatching, "d_a_coach_2D"), - ActorRel(NonMatching, "d_a_coach_fire"), + ActorRel(Matching, "d_a_coach_fire"), ActorRel(NonMatching, "d_a_cow"), ActorRel(NonMatching, "d_a_cstatue"), ActorRel(Equivalent, "d_a_do"), @@ -1866,7 +1866,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_obj_key"), ActorRel(NonMatching, "d_a_obj_keyhole"), ActorRel(Matching, "d_a_obj_ki"), - ActorRel(NonMatching, "d_a_obj_kiPot"), + ActorRel(Matching, "d_a_obj_kiPot"), ActorRel(NonMatching, "d_a_obj_kita"), ActorRel(Matching, "d_a_obj_kjgjs"), ActorRel(Matching, "d_a_obj_kkanban"), @@ -1901,7 +1901,7 @@ config.libs = [ ActorRel(Matching, "d_a_obj_lv4digsand"), ActorRel(Matching, "d_a_obj_lv4floor"), ActorRel(Matching, "d_a_obj_lv4gear"), - ActorRel(NonMatching, "d_a_obj_lv4prelvtr"), + ActorRel(Matching, "d_a_obj_lv4prelvtr"), ActorRel(NonMatching, "d_a_obj_lv4prwall"), ActorRel(NonMatching, "d_a_obj_lv4sand"), ActorRel(Matching, "d_a_obj_lv5FloorBoard"), diff --git a/include/d/actor/d_a_coach_fire.h b/include/d/actor/d_a_coach_fire.h index 72aada7c59c..f8667f0acb9 100644 --- a/include/d/actor/d_a_coach_fire.h +++ b/include/d/actor/d_a_coach_fire.h @@ -1,9 +1,21 @@ #ifndef D_A_COACH_FIRE_H #define D_A_COACH_FIRE_H -#include "dolphin/types.h" +#include "d/actor/d_a_npc_coach.h" +#include "d/d_com_inf_game.h" #include "f_op/f_op_actor_mng.h" +struct CoachFireAttr { + f32 radius; + f32 field_0x04; + u8 field_0x08; + // GXColorS10 color; + u8 colorR; + u8 colorG; + u8 colorB; + f32 pow; +}; + /** * @ingroup actors-unsorted * @class daCoachFire_c @@ -19,13 +31,27 @@ public: /* 80657CA8 */ void setBaseMtx(); /* 80657D2C */ void initCcSphere(); - static u8 const M_attr[16]; + const CoachFireAttr& attr() { return M_attr; } + + static CoachFireAttr const M_attr; + + inline ~daCoachFire_c(); + + inline int draw(); + inline void setCcSphere(); + inline void setNoHitTimer(); + inline int execute(); private: - /* 0x568 */ u8 field_0x568[0x714 - 0x568]; + /* 0x568 */ LIGHT_INFLUENCE mLightInfluence; + /* 0x588 */ dCcD_Stts mStts; + /* 0x5C4 */ dCcD_Sph mSph; + /* 0x6FC */ Mtx* mpMtx; + /* 0x700 */ cXyz mPos; + /* 0x70C */ u32 mParticleKey; + /* 0x710 */ int noHitTimer; }; STATIC_ASSERT(sizeof(daCoachFire_c) == 0x714); - #endif /* D_A_COACH_FIRE_H */ diff --git a/include/d/actor/d_a_npc_coach.h b/include/d/actor/d_a_npc_coach.h index 9669cc7fb9e..77ff6d78013 100644 --- a/include/d/actor/d_a_npc_coach.h +++ b/include/d/actor/d_a_npc_coach.h @@ -15,7 +15,7 @@ class daNpcCoach_c : public fopAc_ac_c { public: /* 8099DA60 */ void hitFireArrow(cXyz); /* 8099DBA4 */ void deleteFireArrow(unsigned int); - /* 8099DCE8 */ void deleteFireArrowFromList(unsigned int); + /* 8099DCE8 */ bool deleteFireArrowFromList(unsigned int); /* 8099DD28 */ void setPosAngle(cXyz&, csXyz&); /* 8099DD7C */ void ctrlJointHorse(J3DJoint*, J3DModel*); /* 8099DE18 */ void initCoachPosition(Vec&, SVec&); @@ -43,9 +43,18 @@ public: /* 809A46C4 */ void initCoachBlazing(); /* 809A48A8 */ daNpcCoach_c(); + bool checkCoachBlazing() { return field_0x1dc4; } + Mtx* getCoachMtx() { return &field_0x2490; } + static u8 const M_attr[160]; private: - /* 0x568 */ u8 field_0x568[0x2570 - 0x568]; + /* 0x568 */ u8 field_0x568[0x1dc4 - 0x568]; + /* 0x1DC4 */ bool field_0x1dc4; + /* 0x1DC5 */ u8 field_0x1dc5[0x247c - 0x1dc5]; + /* 0x247C */ u32 field_0x247c[4]; + /* 0x248C */ u8 field_0x248c[0x2490 - 0x248c]; + /* 0x2490 */ Mtx field_0x2490; + /* 0x24C0 */ u8 field_0x254c[0x2570 - 0x24c0]; }; STATIC_ASSERT(sizeof(daNpcCoach_c) == 0x2570); diff --git a/include/d/actor/d_a_obj_kiPot.h b/include/d/actor/d_a_obj_kiPot.h index ece9ce24680..dd2bfc43997 100644 --- a/include/d/actor/d_a_obj_kiPot.h +++ b/include/d/actor/d_a_obj_kiPot.h @@ -14,26 +14,32 @@ class daKiPot_c : public fopAc_ac_c { public: /* 80C44D78 */ void setBaseMtx(); - /* 80C44DD0 */ void create(); - /* 80C44E7C */ void Execute(); + /* 80C44DD0 */ int create(); + /* 80C44E7C */ int Execute(); /* 80C44EF8 */ void procMain(); /* 80C44F74 */ void init_modeWait(); /* 80C44F80 */ void modeWait(); - /* 80C45008 */ void chkEvent(); - /* 80C45058 */ bool Draw(); - /* 80C45060 */ bool Delete(); + /* 80C45008 */ s32 chkEvent(); + /* 80C45058 */ int Draw(); + /* 80C45060 */ int Delete(); private: - /* 0x568 */ u8 field_0x568[0x578 - 0x568]; + /* 0x568 */ u8 field_0x568[0x574 - 0x568]; + /* 0x574 */ u8 mMode; + /* 0x575 */ u8 field_0x575; + /* 0x576 */ u8 field_0x576[0x578 - 0x576]; }; STATIC_ASSERT(sizeof(daKiPot_c) == 0x578); -class daKiPot_HIO_c { +class daKiPot_HIO_c : public mDoHIO_entry_c { public: /* 80C44D0C */ daKiPot_HIO_c(); - /* 80C450E8 */ ~daKiPot_HIO_c(); + /* 80C450E8 */ virtual ~daKiPot_HIO_c() {}; + + /* 0x00 */ /* vtable */ + + /* 0x06 */ u8 field_0x06; }; - #endif /* D_A_OBJ_KIPOT_H */ diff --git a/include/d/actor/d_a_obj_lv4prelvtr.h b/include/d/actor/d_a_obj_lv4prelvtr.h index f0e436b560f..7e3388a7e37 100644 --- a/include/d/actor/d_a_obj_lv4prelvtr.h +++ b/include/d/actor/d_a_obj_lv4prelvtr.h @@ -1,6 +1,8 @@ #ifndef D_A_OBJ_LV4PRELVTR_H #define D_A_OBJ_LV4PRELVTR_H +#include "d/actor/d_a_obj_swturn.h" +#include "d/d_bg_s_movebg_actor.h" #include "f_op/f_op_actor_mng.h" /** @@ -11,22 +13,26 @@ * @details * */ -class daObjPRElvtr_c : public fopAc_ac_c { +class daObjPRElvtr_c : public dBgS_MoveBgActor, public request_of_phase_process_class { public: - /* 80C685F8 */ void create1st(); + /* 80C685F8 */ int create1st(); /* 80C68688 */ void setMtx(); - /* 80C686F8 */ void CreateHeap(); - /* 80C68768 */ void Create(); - /* 80C68844 */ void Execute(f32 (**)[3][4]); - /* 80C68944 */ void Draw(); - /* 80C689E8 */ void Delete(); - /* 80C68AF0 */ ~daObjPRElvtr_c(); + /* 80C686F8 */ int CreateHeap(); + /* 80C68768 */ int Create(); + /* 80C68844 */ int Execute(Mtx**); + /* 80C68944 */ int Draw(); + /* 80C689E8 */ int Delete(); + /* 80C68AF0 */ virtual ~daObjPRElvtr_c() {} + + int getSwNo() { return fopAcM_GetParamBit(this, 0, 8); } private: - /* 0x568 */ u8 field_0x568[0x610 - 0x568]; + /* 0x5A8 */ Mtx mMtx1; + /* 0x5D8 */ Mtx mMtx2; + /* 0x608 */ J3DModel* mpModel; + /* 0x60C */ int field_0x60c; }; STATIC_ASSERT(sizeof(daObjPRElvtr_c) == 0x610); - #endif /* D_A_OBJ_LV4PRELVTR_H */ diff --git a/include/d/actor/d_a_obj_swturn.h b/include/d/actor/d_a_obj_swturn.h index 29fc5d9001b..215da2362b8 100644 --- a/include/d/actor/d_a_obj_swturn.h +++ b/include/d/actor/d_a_obj_swturn.h @@ -29,11 +29,23 @@ public: /* 80D01EB0 */ void Draw(); /* 80D01F58 */ void Delete(); + int getSwNo() { return fopAcM_GetParamBit(this, 0, 8); } + int getSwNo2() { return fopAcM_GetParamBit(this, 0x14, 8); } + int getRotateAngle() { + return (field_0x5ad == NULL) ? field_0x5ba + field_0x5c4 * 0x4000 : + field_0x5ba + (field_0x5c4 << 0xe) / 3; + } + private: - /* 0x568 */ u8 field_0x568[0x5e0 - 0x568]; + /* 0x568 */ u8 field_0x568[0x5ad - 0x568]; + /* 0x5AD */ bool field_0x5ad; + /* 0x5AE */ u8 field_0x5ae[0x5ba - 0x5ae]; + /* 0x5BA */ s16 field_0x5ba; + /* 0x5BC */ u8 field_0x5bc[0x5c4 - 0x5bc]; + /* 0x5C4 */ s16 field_0x5c4; + /* 0x5C6 */ u8 field_0x5c6[0x5e0 - 0x5c6]; }; STATIC_ASSERT(sizeof(daObjSwTurn_c) == 0x5e0); - #endif /* D_A_OBJ_SWTURN_H */ diff --git a/src/d/actor/d_a_coach_fire.cpp b/src/d/actor/d_a_coach_fire.cpp index b11cd94c03c..071b760468a 100644 --- a/src/d/actor/d_a_coach_fire.cpp +++ b/src/d/actor/d_a_coach_fire.cpp @@ -1,282 +1,202 @@ /** * @file d_a_coach_fire.cpp - * -*/ + * + */ #include "d/actor/d_a_coach_fire.h" -#include "dol2asm.h" - -// -// Forward References: -// - -extern "C" void create_init__13daCoachFire_cFv(); -extern "C" void initBaseMtx__13daCoachFire_cFv(); -extern "C" void setBaseMtx__13daCoachFire_cFv(); -extern "C" void initCcSphere__13daCoachFire_cFv(); -extern "C" static void daCoachFire_Draw__FP13daCoachFire_c(); -extern "C" static void daCoachFire_Execute__FP13daCoachFire_c(); -extern "C" static bool daCoachFire_IsDelete__FP13daCoachFire_c(); -extern "C" static void daCoachFire_Delete__FP13daCoachFire_c(); -extern "C" static void daCoachFire_Create__FP10fopAc_ac_c(); -extern "C" void __dt__8cM3dGSphFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" u8 const M_attr__13daCoachFire_c[16]; -extern "C" extern char const* const d_a_coach_fire__stringBase0; - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_setStageLayer__FPv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fpcEx_SearchByID__FUi(); -extern "C" void getEmitter__Q213dPa_control_c7level_cFUl(); -extern "C" void -set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void LockonTarget__12dAttention_cFl(); -extern "C" void LockonTruth__12dAttention_cFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph(); -extern "C" void dKy_plight_set__FP15LIGHT_INFLUENCE(); -extern "C" void dKy_plight_cut__FP15LIGHT_INFLUENCE(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void SetC__8cM3dGSphFRC4cXyz(); -extern "C" void SetR__8cM3dGSphFf(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__8dCcD_Sph[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_SphAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" u8 mParticleTracePCB__13dPa_control_c[4 + 4 /* padding */]; -extern "C" void deleteFireArrow__12daNpcCoach_cFUi(); -extern "C" void deleteFireArrowFromList__12daNpcCoach_cFUi(); - -// -// Declarations: -// - -/* ############################################################################################## */ /* 806583E8-806583F8 000000 0010+00 3/3 0/0 0/0 .rodata M_attr__13daCoachFire_c */ -SECTION_RODATA u8 const daCoachFire_c::M_attr[16] = { - 0x42, 0x48, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x24, 0xFF, 0x64, 0x00, 0x44, 0x2F, 0x00, 0x00, +CoachFireAttr const daCoachFire_c::M_attr = { + 50.0f, // radius + 4.0f, // field_0x04 + 36, // field_0x08 + 255, // colorR + 100, // colorG + 0, // colorB + 700.0f, // pow }; -COMPILER_STRIP_GATE(0x806583E8, &daCoachFire_c::M_attr); - -/* 806583F8-806583FC 000010 0004+00 0/1 0/0 0/0 .rodata @3812 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3812 = -100.0f; -COMPILER_STRIP_GATE(0x806583F8, &lit_3812); -#pragma pop - -/* 806583FC-80658400 000014 0004+00 0/1 0/0 0/0 .rodata @3813 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3813 = -10.0f; -COMPILER_STRIP_GATE(0x806583FC, &lit_3813); -#pragma pop - -/* 80658400-80658404 000018 0004+00 0/1 0/0 0/0 .rodata @3814 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3814 = 100.0f; -COMPILER_STRIP_GATE(0x80658400, &lit_3814); -#pragma pop - -/* 80658404-80658408 00001C 0004+00 0/1 0/0 0/0 .rodata @3815 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3815 = 200.0f; -COMPILER_STRIP_GATE(0x80658404, &lit_3815); -#pragma pop /* 80657B78-80657C48 000078 00D0+00 1/1 0/0 0/0 .text create_init__13daCoachFire_cFv */ void daCoachFire_c::create_init() { - // NONMATCHING + fopAcM_setStageLayer(this); + fopAcM_setCullSizeBox(this, -100.0, -10.0, -100.0, 100.0, 200.0, 100.0); + attention_info.flags = 0x101; + attention_info.distances[fopAc_attn_LOCK_e] = 0x24; + attention_info.distances[fopAc_attn_CHECK_e] = 0x22; + mLightInfluence.mPosition = current.pos; + mLightInfluence.mColor.r = attr().colorR; + mLightInfluence.mColor.g = attr().colorG; + mLightInfluence.mColor.b = attr().colorB; + mLightInfluence.mPow = attr().pow; + dKy_plight_set(&mLightInfluence); + mpMtx = NULL; + initBaseMtx(); + initCcSphere(); } /* 80657C48-80657CA8 000148 0060+00 1/1 0/0 0/0 .text initBaseMtx__13daCoachFire_cFv */ void daCoachFire_c::initBaseMtx() { - // NONMATCHING + daNpcCoach_c* coach = (daNpcCoach_c*)fpcM_SearchByID(parentActorID); + if (coach != NULL) { + mPos = current.pos; + mpMtx = coach->getCoachMtx(); + } + setBaseMtx(); } /* 80657CA8-80657D2C 0001A8 0084+00 1/1 0/0 0/0 .text setBaseMtx__13daCoachFire_cFv */ void daCoachFire_c::setBaseMtx() { - // NONMATCHING + if (mpMtx != NULL) { + mDoMtx_stack_c::copy(*mpMtx); + mDoMtx_stack_c::multVec(&mPos, ¤t.pos); + attention_info.position = current.pos; + eyePos = current.pos; + } } -/* ############################################################################################## */ /* 80658408-80658448 000020 0040+00 1/1 0/0 0/0 .rodata * ccSphSrc$localstatic3$initCcSphere__13daCoachFire_cFv */ -SECTION_RODATA static u8 const data_80658408[64] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80658408, &data_80658408); /* 80657D2C-80657D9C 00022C 0070+00 1/1 0/0 0/0 .text initCcSphere__13daCoachFire_cFv */ void daCoachFire_c::initCcSphere() { - // NONMATCHING + static const dCcD_SrcSph ccSphSrc = { + { + {0, {{AT_TYPE_0, 0, 0}, {0x00010000, 0x11}, 0}}, // mObj + {dCcD_SE_NONE, 0, 0, 0, 0}, // mGObjAt + {dCcD_SE_NONE, 0, 0, 0, 0x4}, // mGObjTg + {0}, // mGObjCo + }, // mObjInf + {{{0.0f, 0.0f, 0.0f}, 50.0f}} // mSph + }; // mSphAttr + + mStts.Init(0xFF, 0xFF, this); + mSph.Set(ccSphSrc); + mSph.SetStts(&mStts); + mSph.SetC(current.pos); + mSph.SetR(attr().radius); } -/* ############################################################################################## */ -/* 80658448-8065844C 000060 0004+00 0/1 0/0 0/0 .rodata @3911 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3911 = 1.0f; -COMPILER_STRIP_GATE(0x80658448, &lit_3911); -#pragma pop - -/* 8065844C-80658450 000064 0004+00 0/1 0/0 0/0 .rodata @3912 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3912[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8065844C, &lit_3912); -#pragma pop - -/* 80658450-80658454 000068 0004+00 0/1 0/0 0/0 .rodata @3913 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3913 = 9.0f / 10.0f; -COMPILER_STRIP_GATE(0x80658450, &lit_3913); -#pragma pop +int daCoachFire_c::draw() { + mParticleKey = dComIfGp_particle_set(mParticleKey, 0x8113, ¤t.pos, NULL, NULL, NULL, 0xFF, + NULL, -1, NULL, NULL, NULL); + JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mParticleKey); + if (emitter != NULL) { + speed = current.pos - old.pos; + speed.y = 0.0f; + speed *= 0.9f; + emitter->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB()); + emitter->setUserWork((u32)(&speed)); + } + return 1; +} /* 80657D9C-80657EA0 00029C 0104+00 1/0 0/0 0/0 .text daCoachFire_Draw__FP13daCoachFire_c */ -static void daCoachFire_Draw(daCoachFire_c* param_0) { - // NONMATCHING +static int daCoachFire_Draw(daCoachFire_c* i_this) { + return i_this->draw(); +} + +void daCoachFire_c::setCcSphere() { + if (noHitTimer != 0) { + mSph.ClrTgHit(); + } else { + mSph.SetC(current.pos); + dComIfG_Ccsp()->Set(&mSph); + } +} + +void daCoachFire_c::setNoHitTimer() { + noHitTimer = 20; +} + +int daCoachFire_c::execute() { + daNpcCoach_c* coach = (daNpcCoach_c*)fpcM_SearchByID(parentActorID); + if (noHitTimer > 0) { + noHitTimer = noHitTimer - 1; + } + if (mSph.ChkTgHit() && noHitTimer == 0) { + if (coach != NULL) { + coach->deleteFireArrow(fopAcM_GetID(this)); + } + setNoHitTimer(); + } + if (coach != NULL && coach->checkCoachBlazing()) { + dAttention_c& attn = dComIfGp_getAttention(); + if (attn.LockonTruth()) { + if (attn.LockonTarget(0) != this) { + if (coach->deleteFireArrowFromList(fopAcM_GetID(this)) != NULL) { + fopAcM_delete(this); + } + } + } else if (coach->deleteFireArrowFromList(fopAcM_GetID(this)) != NULL) { + fopAcM_delete(this); + } + } + if (mpMtx != NULL) { + mDoMtx_stack_c::copy(*mpMtx); + mDoMtx_stack_c::multVec(&mPos, ¤t.pos); + attention_info.position = current.pos; + eyePos = current.pos; + } + setCcSphere(); + mLightInfluence.mPosition = current.pos; + return 1; } /* 80657EA0-80658094 0003A0 01F4+00 1/0 0/0 0/0 .text daCoachFire_Execute__FP13daCoachFire_c */ -static void daCoachFire_Execute(daCoachFire_c* param_0) { - // NONMATCHING +static int daCoachFire_Execute(daCoachFire_c* i_this) { + return i_this->execute(); } /* 80658094-8065809C 000594 0008+00 1/0 0/0 0/0 .text daCoachFire_IsDelete__FP13daCoachFire_c */ -static bool daCoachFire_IsDelete(daCoachFire_c* param_0) { +static bool daCoachFire_IsDelete(daCoachFire_c* i_this) { return true; } -/* ############################################################################################## */ -/* 8065845C-8065847C -00001 0020+00 1/0 0/0 0/0 .data l_daCoachFire_Method */ -static actor_method_class l_daCoachFire_Method = { - (process_method_func)daCoachFire_Create__FP10fopAc_ac_c, - (process_method_func)daCoachFire_Delete__FP13daCoachFire_c, - (process_method_func)daCoachFire_Execute__FP13daCoachFire_c, - (process_method_func)daCoachFire_IsDelete__FP13daCoachFire_c, - (process_method_func)daCoachFire_Draw__FP13daCoachFire_c, -}; - -/* 8065847C-806584AC -00001 0030+00 0/0 0/0 1/0 .data g_profile_COACH_FIRE */ -extern actor_process_profile_definition g_profile_COACH_FIRE = { - fpcLy_CURRENT_e, // mLayerID - 3, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_COACH_FIRE, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daCoachFire_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 332, // mPriority - &l_daCoachFire_Method, // sub_method - 0x00044000, // mStatus - fopAc_ACTOR_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 806584AC-806584B8 000050 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 806584B8-806584C4 00005C 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 806584C4-806584D0 000068 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 806584D0-806584DC 000074 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGSph */ -SECTION_DATA extern void* __vt__8cM3dGSph[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGSphFv, -}; +daCoachFire_c::~daCoachFire_c() { + dKy_plight_cut(&mLightInfluence); +} /* 8065809C-806581C0 00059C 0124+00 1/0 0/0 0/0 .text daCoachFire_Delete__FP13daCoachFire_c */ -static void daCoachFire_Delete(daCoachFire_c* param_0) { - // NONMATCHING +static int daCoachFire_Delete(daCoachFire_c* i_this) { + i_this->~daCoachFire_c(); + return 1; } /* 806581C0-806582AC 0006C0 00EC+00 1/0 0/0 0/0 .text daCoachFire_Create__FP10fopAc_ac_c */ -static void daCoachFire_Create(fopAc_ac_c* param_0) { - // NONMATCHING +static int daCoachFire_Create(fopAc_ac_c* i_this) { + fopAcM_SetupActor(i_this, daCoachFire_c); + static_cast(i_this)->create_init(); + return cPhs_COMPLEATE_e; } -/* 806582AC-806582F4 0007AC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */ -// cM3dGSph::~cM3dGSph() { -extern "C" void __dt__8cM3dGSphFv() { - // NONMATCHING -} - -/* 806582F4-8065833C 0007F4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 8065833C-80658398 00083C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80658398-806583E0 000898 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* ############################################################################################## */ /* 80658454-8065845A 00006C 0006+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80658454 = "Coach"; -#pragma pop +static char* stringBase_80658454 = "Coach"; /* 80658454-80658454 00006C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ + +/* 8065845C-8065847C -00001 0020+00 1/0 0/0 0/0 .data l_daCoachFire_Method */ +static actor_method_class l_daCoachFire_Method = { + (process_method_func)daCoachFire_Create, (process_method_func)daCoachFire_Delete, + (process_method_func)daCoachFire_Execute, (process_method_func)daCoachFire_IsDelete, + (process_method_func)daCoachFire_Draw, +}; + +/* 8065847C-806584AC -00001 0030+00 0/0 0/0 1/0 .data g_profile_COACH_FIRE */ +extern actor_process_profile_definition g_profile_COACH_FIRE = { + fpcLy_CURRENT_e, // mLayerID + 3, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_COACH_FIRE, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daCoachFire_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 332, // mPriority + &l_daCoachFire_Method, // sub_method + 0x00044000, // mStatus + fopAc_ACTOR_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; diff --git a/src/d/actor/d_a_npc_coach.cpp b/src/d/actor/d_a_npc_coach.cpp index 79e61ff573e..bf96680387f 100644 --- a/src/d/actor/d_a_npc_coach.cpp +++ b/src/d/actor/d_a_npc_coach.cpp @@ -309,7 +309,7 @@ extern "C" void __dt__4cXyzFv() { /* 8099DA60-8099DBA4 000400 0144+00 1/1 0/0 0/0 .text hitFireArrow__12daNpcCoach_cF4cXyz */ void daNpcCoach_c::hitFireArrow(cXyz param_0) { - // NONMATCHING + // NONMATCHING } /* 8099DBA4-8099DCE8 000544 0144+00 0/0 0/0 1/1 .text deleteFireArrow__12daNpcCoach_cFUi @@ -320,8 +320,14 @@ void daNpcCoach_c::deleteFireArrow(unsigned int param_0) { /* 8099DCE8-8099DD28 000688 0040+00 0/0 0/0 1/1 .text deleteFireArrowFromList__12daNpcCoach_cFUi */ -void daNpcCoach_c::deleteFireArrowFromList(unsigned int param_0) { - // NONMATCHING +bool daNpcCoach_c::deleteFireArrowFromList(unsigned int i_actorID) { + for (int i = 0; i < 5; i++) { + if (field_0x247c[i] == i_actorID) { + field_0x247c[i] = -1; + return true; + } + } + return false; } /* 8099DD28-8099DD7C 0006C8 0054+00 0/0 0/0 3/3 .text setPosAngle__12daNpcCoach_cFR4cXyzR5csXyz */ diff --git a/src/d/actor/d_a_obj_kiPot.cpp b/src/d/actor/d_a_obj_kiPot.cpp index fbb0a66a613..0a41cd9351c 100644 --- a/src/d/actor/d_a_obj_kiPot.cpp +++ b/src/d/actor/d_a_obj_kiPot.cpp @@ -1,237 +1,147 @@ /** * @file d_a_obj_kiPot.cpp - * -*/ + * + */ #include "d/actor/d_a_obj_kiPot.h" -#include "dol2asm.h" +#include "d/d_com_inf_game.h" +static daKiPot_HIO_c l_HIO; - -// -// Forward References: -// - -extern "C" void __ct__13daKiPot_HIO_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__9daKiPot_cFv(); -extern "C" void create__9daKiPot_cFv(); -extern "C" void Execute__9daKiPot_cFv(); -extern "C" void procMain__9daKiPot_cFv(); -extern "C" void init_modeWait__9daKiPot_cFv(); -extern "C" void modeWait__9daKiPot_cFv(); -extern "C" void chkEvent__9daKiPot_cFv(); -extern "C" bool Draw__9daKiPot_cFv(); -extern "C" bool Delete__9daKiPot_cFv(); -extern "C" static void daKiPot_Draw__FP9daKiPot_c(); -extern "C" static void daKiPot_Execute__FP9daKiPot_c(); -extern "C" static void daKiPot_Delete__FP9daKiPot_c(); -extern "C" static void daKiPot_Create__FP10fopAc_ac_c(); -extern "C" void __dt__13daKiPot_HIO_cFv(); -extern "C" void __sinit_d_a_obj_kiPot_cpp(); - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void request__11dAttCatch_cFP10fopAc_ac_cUcfffsi(); -extern "C" void __dl__FPv(); -extern "C" void __ptmf_scall(); -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ /* 80C451A4-80C451BC 000000 0018+00 1/1 0/0 0/0 .data l_cull_box */ -SECTION_DATA static u8 l_cull_box[24] = { - 0xC2, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x48, 0x00, 0x00, - 0x42, 0x48, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, -}; - -/* 80C451BC-80C451C8 -00001 000C+00 1/1 0/0 0/0 .data @3688 */ -SECTION_DATA static void* lit_3688[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeWait__9daKiPot_cFv, -}; - -/* 80C451C8-80C451D4 000024 000C+00 1/1 0/0 0/0 .data mode_proc$3687 */ -SECTION_DATA static u8 mode_proc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80C451D4-80C451F4 -00001 0020+00 1/0 0/0 0/0 .data l_daKiPot_Method */ -static actor_method_class l_daKiPot_Method = { - (process_method_func)daKiPot_Create__FP10fopAc_ac_c, - (process_method_func)daKiPot_Delete__FP9daKiPot_c, - (process_method_func)daKiPot_Execute__FP9daKiPot_c, - 0, - (process_method_func)daKiPot_Draw__FP9daKiPot_c, -}; - -/* 80C451F4-80C45224 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_KiPot */ -extern actor_process_profile_definition g_profile_Obj_KiPot = { - fpcLy_CURRENT_e, // mLayerID - 7, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_Obj_KiPot, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daKiPot_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 517, // mPriority - &l_daKiPot_Method, // sub_method - 0x00044000, // mStatus - fopAc_ACTOR_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 80C45224-80C45230 000080 000C+00 2/2 0/0 0/0 .data __vt__13daKiPot_HIO_c */ -SECTION_DATA extern void* __vt__13daKiPot_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daKiPot_HIO_cFv, -}; - -/* 80C45230-80C4523C 00008C 000C+00 3/3 0/0 0/0 .data __vt__14mDoHIO_entry_c */ -SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14mDoHIO_entry_cFv, +static cull_box l_cull_box = { + {-50.0f, 0.0f, -50.0f}, + {50.0f, 100.0f, 50.0f}, }; /* 80C44D0C-80C44D30 0000EC 0024+00 1/1 0/0 0/0 .text __ct__13daKiPot_HIO_cFv */ daKiPot_HIO_c::daKiPot_HIO_c() { - // NONMATCHING -} - -/* 80C44D30-80C44D78 000110 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */ -// mDoHIO_entry_c::~mDoHIO_entry_c() { -extern "C" void __dt__14mDoHIO_entry_cFv() { - // NONMATCHING + field_0x06 = 0x14; } /* 80C44D78-80C44DD0 000158 0058+00 2/2 0/0 0/0 .text setBaseMtx__9daKiPot_cFv */ void daKiPot_c::setBaseMtx() { - // NONMATCHING + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); } /* 80C44DD0-80C44E7C 0001B0 00AC+00 1/1 0/0 0/0 .text create__9daKiPot_cFv */ -void daKiPot_c::create() { - // NONMATCHING -} +int daKiPot_c::create() { + fopAcM_SetupActor(this, daKiPot_c); -/* ############################################################################################## */ -/* 80C45194-80C45198 000000 0004+00 2/2 0/0 0/0 .rodata @3683 */ -SECTION_RODATA static f32 const lit_3683 = 150.0f; -COMPILER_STRIP_GATE(0x80C45194, &lit_3683); + setBaseMtx(); + + f32 min_x = l_cull_box.min.x * scale.x; + f32 min_y = l_cull_box.min.y * scale.y; + f32 min_z = l_cull_box.min.z * scale.x; + f32 max_x = l_cull_box.max.x * scale.x; + f32 max_y = l_cull_box.max.y * scale.y; + fopAcM_setCullSizeBox(this, min_x, min_y, min_z, max_x, max_y, max_y); + + field_0x575 = 0; + init_modeWait(); + + return cPhs_COMPLEATE_e; +} /* 80C44E7C-80C44EF8 00025C 007C+00 1/1 0/0 0/0 .text Execute__9daKiPot_cFv */ -void daKiPot_c::Execute() { - // NONMATCHING +int daKiPot_c::Execute() { + procMain(); + attention_info.position = current.pos; + attention_info.position.y += 150.0f; + eyePos = current.pos; + setBaseMtx(); + return 1; } -/* ############################################################################################## */ -/* 80C45248-80C45254 000008 000C+00 1/1 0/0 0/0 .bss @3620 */ -static u8 lit_3620[12]; - -/* 80C45254-80C4525C 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[8]; - -/* 80C4525C-80C45260 00001C 0004+00 1/1 0/0 0/0 .bss None */ -static u8 data_80C4525C[4]; - /* 80C44EF8-80C44F74 0002D8 007C+00 1/1 0/0 0/0 .text procMain__9daKiPot_cFv */ void daKiPot_c::procMain() { - // NONMATCHING + typedef void (daKiPot_c::*modeProcessFunc)(); + static modeProcessFunc mode_proc[] = { + &daKiPot_c::modeWait, + }; + + (this->*mode_proc[mMode])(); } /* 80C44F74-80C44F80 000354 000C+00 1/1 0/0 0/0 .text init_modeWait__9daKiPot_cFv */ void daKiPot_c::init_modeWait() { - // NONMATCHING + mMode = 0; } -/* ############################################################################################## */ -/* 80C45198-80C4519C 000004 0004+00 0/1 0/0 0/0 .rodata @3711 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3711 = 100.0f; -COMPILER_STRIP_GATE(0x80C45198, &lit_3711); -#pragma pop - -/* 80C4519C-80C451A0 000008 0004+00 0/1 0/0 0/0 .rodata @3712 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3712 = 50.0f; -COMPILER_STRIP_GATE(0x80C4519C, &lit_3712); -#pragma pop - -/* 80C451A0-80C451A4 00000C 0004+00 0/1 0/0 0/0 .rodata @3713 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3713 = -50.0f; -COMPILER_STRIP_GATE(0x80C451A0, &lit_3713); -#pragma pop - /* 80C44F80-80C45008 000360 0088+00 1/0 0/0 0/0 .text modeWait__9daKiPot_cFv */ void daKiPot_c::modeWait() { - // NONMATCHING + if (chkEvent() && eventInfo.i_checkCommandCatch() == 0) { + dComIfGp_att_CatchRequest(this, UGLY_SOUP, 100.0f, 50.0f, -50.0f, 0x2000, 1); + eventInfo.i_onCondition(0x40); + } } /* 80C45008-80C45058 0003E8 0050+00 1/1 0/0 0/0 .text chkEvent__9daKiPot_cFv */ -void daKiPot_c::chkEvent() { - // NONMATCHING +s32 daKiPot_c::chkEvent() { + s32 result = 1; + + if (!dComIfGp_getEvent().isOrderOK()) { + result = 0; + + if (eventInfo.i_checkCommandCatch()) { + return result; + } + } + return result; } /* 80C45058-80C45060 000438 0008+00 1/1 0/0 0/0 .text Draw__9daKiPot_cFv */ -bool daKiPot_c::Draw() { - return true; +int daKiPot_c::Draw() { + return 1; } /* 80C45060-80C45068 000440 0008+00 1/1 0/0 0/0 .text Delete__9daKiPot_cFv */ -bool daKiPot_c::Delete() { - return true; +int daKiPot_c::Delete() { + return 1; } /* 80C45068-80C45088 000448 0020+00 1/0 0/0 0/0 .text daKiPot_Draw__FP9daKiPot_c */ -static void daKiPot_Draw(daKiPot_c* param_0) { - // NONMATCHING +static int daKiPot_Draw(daKiPot_c* i_this) { + return i_this->Draw(); } /* 80C45088-80C450A8 000468 0020+00 1/0 0/0 0/0 .text daKiPot_Execute__FP9daKiPot_c */ -static void daKiPot_Execute(daKiPot_c* param_0) { - // NONMATCHING +static int daKiPot_Execute(daKiPot_c* i_this) { + return i_this->Execute(); } /* 80C450A8-80C450C8 000488 0020+00 1/0 0/0 0/0 .text daKiPot_Delete__FP9daKiPot_c */ -static void daKiPot_Delete(daKiPot_c* param_0) { - // NONMATCHING +static int daKiPot_Delete(daKiPot_c* i_this) { + return i_this->Delete(); } /* 80C450C8-80C450E8 0004A8 0020+00 1/0 0/0 0/0 .text daKiPot_Create__FP10fopAc_ac_c */ -static void daKiPot_Create(fopAc_ac_c* param_0) { - // NONMATCHING +static int daKiPot_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -/* 80C450E8-80C45144 0004C8 005C+00 2/1 0/0 0/0 .text __dt__13daKiPot_HIO_cFv */ -daKiPot_HIO_c::~daKiPot_HIO_c() { - // NONMATCHING -} +/* 80C451D4-80C451F4 -00001 0020+00 1/0 0/0 0/0 .data l_daKiPot_Method */ +static actor_method_class l_daKiPot_Method = { + (process_method_func)daKiPot_Create, (process_method_func)daKiPot_Delete, + (process_method_func)daKiPot_Execute, 0, + (process_method_func)daKiPot_Draw, +}; -/* 80C45144-80C45180 000524 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_kiPot_cpp */ -void __sinit_d_a_obj_kiPot_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80C45144, __sinit_d_a_obj_kiPot_cpp); -#pragma pop +/* 80C451F4-80C45224 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_KiPot */ +extern actor_process_profile_definition g_profile_Obj_KiPot = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_Obj_KiPot, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daKiPot_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 517, // mPriority + &l_daKiPot_Method, // sub_method + 0x00044000, // mStatus + fopAc_ACTOR_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; diff --git a/src/d/actor/d_a_obj_lv4prelvtr.cpp b/src/d/actor/d_a_obj_lv4prelvtr.cpp index 259d3cf97a6..3b96d937b98 100644 --- a/src/d/actor/d_a_obj_lv4prelvtr.cpp +++ b/src/d/actor/d_a_obj_lv4prelvtr.cpp @@ -1,209 +1,152 @@ /** * @file d_a_obj_lv4prelvtr.cpp - * -*/ + * + */ #include "d/actor/d_a_obj_lv4prelvtr.h" -#include "dol2asm.h" - - -// -// Forward References: -// - -extern "C" void create1st__14daObjPRElvtr_cFv(); -extern "C" void setMtx__14daObjPRElvtr_cFv(); -extern "C" void CreateHeap__14daObjPRElvtr_cFv(); -extern "C" void Create__14daObjPRElvtr_cFv(); -extern "C" static void searchObjSwTurn__FPvPv(); -extern "C" void Execute__14daObjPRElvtr_cFPPA3_A4_f(); -extern "C" void Draw__14daObjPRElvtr_cFv(); -extern "C" void Delete__14daObjPRElvtr_cFv(); -extern "C" static void daObjPRElvtr_create1st__FP14daObjPRElvtr_c(); -extern "C" static void daObjPRElvtr_MoveBGDelete__FP14daObjPRElvtr_c(); -extern "C" static void daObjPRElvtr_MoveBGExecute__FP14daObjPRElvtr_c(); -extern "C" static void daObjPRElvtr_MoveBGDraw__FP14daObjPRElvtr_c(); -extern "C" void __dt__14daObjPRElvtr_cFv(); -extern "C" extern char const* const d_a_obj_lv4prelvtr__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void dBgS_MoveBGProc_Trans__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void __dl__FPv(); -extern "C" extern void* __vt__16dBgS_MoveBgActor[10]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80C68B90-80C68B90 000028 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C68B90 = "PRElvtr"; -#pragma pop +#include "d/d_com_inf_game.h" /* 80C68B98-80C68B9C -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_lv4prelvtr__stringBase0; +static char* l_arcName = "PRElvtr"; /* 80C685F8-80C68688 000078 0090+00 1/1 0/0 0/0 .text create1st__14daObjPRElvtr_cFv */ -void daObjPRElvtr_c::create1st() { - // NONMATCHING +int daObjPRElvtr_c::create1st() { + int phase = dComIfG_resLoad(this, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + setMtx(); + phase = MoveBGCreate(l_arcName, 7, dBgS_MoveBGProc_Trans, 0x3680, &mMtx1); + if (phase == cPhs_ERROR_e) { + return phase; + } + } + return phase; } /* 80C68688-80C686F8 000108 0070+00 2/2 0/0 0/0 .text setMtx__14daObjPRElvtr_cFv */ void daObjPRElvtr_c::setMtx() { - // NONMATCHING + PSMTXTrans(mDoMtx_stack_c::get(), current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::YrotM(current.angle.y); + PSMTXCopy(mDoMtx_stack_c::get(), mMtx2); + PSMTXCopy(mDoMtx_stack_c::get(), mMtx1); } /* 80C686F8-80C68768 000178 0070+00 1/0 0/0 0/0 .text CreateHeap__14daObjPRElvtr_cFv */ -void daObjPRElvtr_c::CreateHeap() { - // NONMATCHING +int daObjPRElvtr_c::CreateHeap() { + J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4); + mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084); + return mpModel != NULL ? 1 : 0; } -/* ############################################################################################## */ /* 80C68B68-80C68B80 000000 0018+00 1/1 0/0 0/0 .rodata l_cull_box */ -SECTION_RODATA static u8 const l_cull_box[24] = { - 0xC4, 0x35, 0x40, 0x00, 0xC3, 0x9D, 0x80, 0x00, 0xC4, 0x35, 0x40, 0x00, - 0x44, 0x35, 0x40, 0x00, 0xC1, 0x70, 0x00, 0x00, 0x44, 0x35, 0x40, 0x00, +static const cull_box l_cull_box = { + {-725.0f, -315.0f, -725.0f}, + {725.0f, -15.0f, 725.0f}, }; -COMPILER_STRIP_GATE(0x80C68B68, &l_cull_box); /* 80C68768-80C687D0 0001E8 0068+00 1/0 0/0 0/0 .text Create__14daObjPRElvtr_cFv */ -void daObjPRElvtr_c::Create() { - // NONMATCHING +int daObjPRElvtr_c::Create() { + mpModel->setBaseTRMtx(mMtx2); + fopAcM_SetMtx(this, mMtx2); + fopAcM_setCullSizeBox(this, l_cull_box.min.x, l_cull_box.min.y, l_cull_box.min.z, + l_cull_box.max.x, l_cull_box.max.y, l_cull_box.max.z); + return 1; } /* 80C687D0-80C68844 000250 0074+00 1/1 0/0 0/0 .text searchObjSwTurn__FPvPv */ -static void searchObjSwTurn(void* param_0, void* param_1) { - // NONMATCHING +static fopAc_ac_c* searchObjSwTurn(void* i_actor1, void* i_actor2) { + if (i_actor1 != NULL && fopAcM_IsActor(i_actor1) && + fopAcM_GetProfName(i_actor1) == PROC_Obj_SwTurn) + { + if (((daObjSwTurn_c*)i_actor1)->getSwNo() == ((daObjPRElvtr_c*)i_actor2)->getSwNo()) { + return (fopAc_ac_c*)i_actor1; + } + } + + return NULL; } -/* ############################################################################################## */ -/* 80C68B80-80C68B84 000018 0004+00 1/1 0/0 0/0 .rodata @3694 */ -SECTION_RODATA static f32 const lit_3694 = 900.0f; -COMPILER_STRIP_GATE(0x80C68B80, &lit_3694); - -/* 80C68B84-80C68B88 00001C 0004+00 1/1 0/0 0/0 .rodata @3695 */ -SECTION_RODATA static f32 const lit_3695 = 16383.0f; -COMPILER_STRIP_GATE(0x80C68B84, &lit_3695); - -/* 80C68B88-80C68B90 000020 0008+00 1/1 0/0 0/0 .rodata @3697 */ -SECTION_RODATA static u8 const lit_3697[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C68B88, &lit_3697); - /* 80C68844-80C68944 0002C4 0100+00 1/0 0/0 0/0 .text Execute__14daObjPRElvtr_cFPPA3_A4_f */ -void daObjPRElvtr_c::Execute(f32 (**param_0)[3][4]) { - // NONMATCHING +int daObjPRElvtr_c::Execute(Mtx** i_mtx) { + daObjSwTurn_c* sw_turn = + (daObjSwTurn_c*)fopAcM_Search((fopAcIt_JudgeFunc)searchObjSwTurn, this); + + if (sw_turn != NULL) { + field_0x60c = sw_turn->getRotateAngle(); + f32 fVar1 = (field_0x60c / 16383.0f) * 900.0f; + current.pos.y = home.pos.y - fVar1; + sw_turn->current.pos.y = sw_turn->home.pos.y - fVar1; + } + + setMtx(); + mpModel->setBaseTRMtx(mMtx2); + *i_mtx = &mMtx1; + + return 1; } /* 80C68944-80C689E8 0003C4 00A4+00 1/0 0/0 0/0 .text Draw__14daObjPRElvtr_cFv */ -void daObjPRElvtr_c::Draw() { - // NONMATCHING +int daObjPRElvtr_c::Draw() { + g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + return 1; } /* 80C689E8-80C68A24 000468 003C+00 1/0 0/0 0/0 .text Delete__14daObjPRElvtr_cFv */ -void daObjPRElvtr_c::Delete() { - // NONMATCHING +int daObjPRElvtr_c::Delete() { + dComIfG_resDelete(this, l_arcName); + return 1; } -/* ############################################################################################## */ -/* 80C68B9C-80C68BBC -00001 0020+00 1/0 0/0 0/0 .data daObjPRElvtr_METHODS */ -static actor_method_class daObjPRElvtr_METHODS = { - (process_method_func)daObjPRElvtr_create1st__FP14daObjPRElvtr_c, - (process_method_func)daObjPRElvtr_MoveBGDelete__FP14daObjPRElvtr_c, - (process_method_func)daObjPRElvtr_MoveBGExecute__FP14daObjPRElvtr_c, - 0, - (process_method_func)daObjPRElvtr_MoveBGDraw__FP14daObjPRElvtr_c, -}; - -/* 80C68BBC-80C68BEC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_PRElvtr */ -extern actor_process_profile_definition g_profile_Obj_PRElvtr = { - fpcLy_CURRENT_e, // mLayerID - 3, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_Obj_PRElvtr, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daObjPRElvtr_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 665, // mPriority - &daObjPRElvtr_METHODS, // sub_method - 0x00040100, // mStatus - fopAc_ACTOR_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 80C68BEC-80C68C18 000054 002C+00 2/2 0/0 0/0 .data __vt__14daObjPRElvtr_c */ -SECTION_DATA extern void* __vt__14daObjPRElvtr_c[11] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__14daObjPRElvtr_cFv, - (void*)Create__14daObjPRElvtr_cFv, - (void*)Execute__14daObjPRElvtr_cFPPA3_A4_f, - (void*)Draw__14daObjPRElvtr_cFv, - (void*)Delete__14daObjPRElvtr_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, - (void*)__dt__14daObjPRElvtr_cFv, -}; - /* 80C68A24-80C68A84 0004A4 0060+00 1/0 0/0 0/0 .text daObjPRElvtr_create1st__FP14daObjPRElvtr_c */ -static void daObjPRElvtr_create1st(daObjPRElvtr_c* param_0) { - // NONMATCHING +static int daObjPRElvtr_create1st(daObjPRElvtr_c* i_this) { + fopAcM_SetupActor(i_this, daObjPRElvtr_c); + return i_this->create1st(); } /* 80C68A84-80C68AA4 000504 0020+00 1/0 0/0 0/0 .text * daObjPRElvtr_MoveBGDelete__FP14daObjPRElvtr_c */ -static void daObjPRElvtr_MoveBGDelete(daObjPRElvtr_c* param_0) { - // NONMATCHING +static int daObjPRElvtr_MoveBGDelete(daObjPRElvtr_c* i_this) { + return i_this->MoveBGDelete(); } /* 80C68AA4-80C68AC4 000524 0020+00 1/0 0/0 0/0 .text * daObjPRElvtr_MoveBGExecute__FP14daObjPRElvtr_c */ -static void daObjPRElvtr_MoveBGExecute(daObjPRElvtr_c* param_0) { - // NONMATCHING +static int daObjPRElvtr_MoveBGExecute(daObjPRElvtr_c* i_this) { + return i_this->MoveBGExecute(); } /* 80C68AC4-80C68AF0 000544 002C+00 1/0 0/0 0/0 .text daObjPRElvtr_MoveBGDraw__FP14daObjPRElvtr_c */ -static void daObjPRElvtr_MoveBGDraw(daObjPRElvtr_c* param_0) { - // NONMATCHING +static int daObjPRElvtr_MoveBGDraw(daObjPRElvtr_c* i_this) { + return i_this->Draw(); } -/* 80C68AF0-80C68B60 000570 0070+00 1/0 0/0 0/0 .text __dt__14daObjPRElvtr_cFv */ -daObjPRElvtr_c::~daObjPRElvtr_c() { - // NONMATCHING -} +/* 80C68B9C-80C68BBC -00001 0020+00 1/0 0/0 0/0 .data daObjPRElvtr_METHODS */ +static actor_method_class daObjPRElvtr_METHODS = { + (process_method_func)daObjPRElvtr_create1st, (process_method_func)daObjPRElvtr_MoveBGDelete, + (process_method_func)daObjPRElvtr_MoveBGExecute, 0, + (process_method_func)daObjPRElvtr_MoveBGDraw, +}; -/* 80C68B90-80C68B90 000028 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80C68BBC-80C68BEC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_PRElvtr */ +extern actor_process_profile_definition g_profile_Obj_PRElvtr = { + fpcLy_CURRENT_e, // mLayerID + 3, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_Obj_PRElvtr, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daObjPRElvtr_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 665, // mPriority + &daObjPRElvtr_METHODS, // sub_method + 0x00040100, // mStatus + fopAc_ACTOR_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +};