summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_obj_glowSphere.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-12-18 10:02:52 -0800
committerGitHub <noreply@github.com>2024-12-18 20:02:52 +0200
commitff5f31b84453722de3d1cc1287725eec06d08c6a (patch)
treef515a32d77aadae2135f80e77a035e7437ef23f8 /src/d/actor/d_a_obj_glowSphere.cpp
parentc5ab943cfc057be3c9310e93e27fc62a2be9cbeb (diff)
kankyo_rain / obj_life_container mostly done, obj_glowsphere done (#2266)
* obj_life_container mostly done * obj_glowSphere done * kankyo_rain mostly done * some cleanup * more kankyo_rain cleanup
Diffstat (limited to 'src/d/actor/d_a_obj_glowSphere.cpp')
-rw-r--r--src/d/actor/d_a_obj_glowSphere.cpp1289
1 files changed, 401 insertions, 888 deletions
diff --git a/src/d/actor/d_a_obj_glowSphere.cpp b/src/d/actor/d_a_obj_glowSphere.cpp
index 4af9c5f1a5..9b2cf0f0fe 100644
--- a/src/d/actor/d_a_obj_glowSphere.cpp
+++ b/src/d/actor/d_a_obj_glowSphere.cpp
@@ -1,1032 +1,545 @@
/**
* @file d_a_obj_glowSphere.cpp
- *
-*/
+ *
+ */
#include "d/actor/d_a_obj_glowSphere.h"
-#include "dol2asm.h"
-
-
-
-
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__14daGlwSph_HIO_cFv();
-extern "C" void __dt__18fOpAcm_HIO_entry_cFv();
-extern "C" void __dt__14mDoHIO_entry_cFv();
-extern "C" void getSphMng__10daGlwSph_cFv();
-extern "C" void setBaseMtx__10daGlwSph_cFv();
-extern "C" void createHeapCallBack__10daGlwSph_cFP10fopAc_ac_c();
-extern "C" void CreateHeap__10daGlwSph_cFv();
-extern "C" void create__10daGlwSph_cFv();
-extern "C" void __dt__8cM3dGSphFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void __dt__12J3DFrameCtrlFv();
-extern "C" void execute__10daGlwSph_cFv();
-extern "C" void actionMain__10daGlwSph_cFv();
-extern "C" void effectSet__10daGlwSph_cFv();
-extern "C" void getSE__10daGlwSph_cFv();
-extern "C" void getVibe__10daGlwSph_cFv();
-extern "C" void actionWaitInit__10daGlwSph_cFv();
-extern "C" void actionWait__10daGlwSph_cFv();
-extern "C" void actionGetInit__10daGlwSph_cFv();
-extern "C" void actionGet__10daGlwSph_cFv();
-extern "C" void actionMoveInit__10daGlwSph_cFv();
-extern "C" void actionMove__10daGlwSph_cFv();
-extern "C" void draw__10daGlwSph_cFv();
-extern "C" void _delete__10daGlwSph_cFv();
-extern "C" static void daGlwSph_Draw__FP10daGlwSph_c();
-extern "C" static void daGlwSph_Execute__FP10daGlwSph_c();
-extern "C" static void daGlwSph_Delete__FP10daGlwSph_c();
-extern "C" static void daGlwSph_Create__FP10fopAc_ac_c();
-extern "C" void _clrLstBuf__12_GlSph_Mng_cFv();
-extern "C" void entry__12_GlSph_Mng_cFP10daGlwSph_c();
-extern "C" void remove__12_GlSph_Mng_cFP10daGlwSph_c();
-extern "C" void _setting_main__12_GlSph_Mng_cFv();
-extern "C" void _chkAllGet_main__12_GlSph_Mng_cFv();
-extern "C" void SphSeProc__12_GlSph_Mng_cFv();
-extern "C" void clrSphSe__12_GlSph_Mng_cFv();
-extern "C" void getSphSe__12_GlSph_Mng_cFv();
-extern "C" void incSphSe__12_GlSph_Mng_cFv();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __dt__14daGlwSph_HIO_cFv();
-extern "C" void __sinit_d_a_obj_glowSphere_cpp();
-extern "C" void __dt__12_GlSph_Mng_cFv();
-extern "C" void __dt__16_GlSph_LstInfo_cFv();
-extern "C" void __ct__16_GlSph_LstInfo_cFv();
-extern "C" static void func_80BFA94C();
-extern "C" static void func_80BFA954();
-extern "C" u8 const mCcDObjInfo__10daGlwSph_c[48];
-extern "C" extern char const* const d_a_obj_glowSphere__stringBase0;
-extern "C" u8 mCcDSph__10daGlwSph_c[64];
-extern "C" u8 mSphMng__10daGlwSph_c[964];
-
-//
-// External References:
-//
-
-extern "C" void play__14mDoExt_baseAnmFv();
-extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
-extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
-extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
-extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-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 isSwitch__10dSv_info_cCFii();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void forceOnEventMove__Q213dPa_control_c7level_cFUl();
-extern "C" void getEmitter__Q213dPa_control_c7level_cFUl();
-extern "C" void
-set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void
-set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void StartShock__12dVibration_cFii4cXyz();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWall__12dBgS_AcchCirFff();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void GetAc__22dCcD_GAtTgCoCommonBaseFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Move__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void ChkTgHit__12dCcD_GObjInfFv();
-extern "C" void ChkCoHit__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void dKy_mock_light_every_set__FP15LIGHT_INFLUENCE();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void __ml__4cXyzCFf();
-extern "C" void normalizeZP__4cXyzFv();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGSphFRC4cXyz();
-extern "C" void SetR__8cM3dGSphFf();
-extern "C" void cLib_addCalc__FPfffff();
-extern "C" void cLib_addCalcPos__FP4cXyzRC4cXyzfff();
-extern "C" void deleteAllParticle__14JPABaseEmitterFv();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-extern "C" void __destroy_arr();
-extern "C" void __construct_array();
-extern "C" void __ptmf_scall();
-extern "C" void _savegpr_21();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_21();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-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" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80BFA970-80BFA974 000000 0004+00 3/3 0/0 0/0 .rodata @3665 */
-SECTION_RODATA static f32 const lit_3665 = 50.0f;
-COMPILER_STRIP_GATE(0x80BFA970, &lit_3665);
-
-/* 80BFA974-80BFA978 000004 0004+00 1/2 0/0 0/0 .rodata @3666 */
-SECTION_RODATA static f32 const lit_3666 = 4.0f;
-COMPILER_STRIP_GATE(0x80BFA974, &lit_3666);
-
-/* 80BFA9D0-80BFA9DC 000000 000C+00 3/3 0/0 0/0 .data cNullVec__6Z2Calc */
-SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-
-/* 80BFA9DC-80BFA9F0 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
- 0x02000201,
- /* padding */
- 0x40080000,
- 0x00000000,
- 0x3FE00000,
- 0x00000000,
-};
-#pragma pop
-
-/* 80BFA9F0-80BFAA08 000020 0018+00 1/1 0/0 0/0 .data l_cull_box */
-SECTION_DATA static u8 l_cull_box[24] = {
- 0xC1, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0xC1, 0xF0, 0x00, 0x00,
- 0x41, 0xF0, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00,
-};
-
-/* 80BFAA08-80BFAA48 000038 0040+00 2/2 0/0 0/0 .data mCcDSph__10daGlwSph_c */
-SECTION_DATA u8 daGlwSph_c::mCcDSph[64] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-
-/* 80BFAA48-80BFAA4C 000078 0004+00 1/2 0/0 0/0 .data l_prmColor */
-SECTION_DATA static u32 l_prmColor = 0xFFFFFFFF;
-
-/* 80BFAA4C-80BFAA5C 00007C 0010+00 1/3 0/0 0/0 .data l_envColor */
-SECTION_DATA static u8 l_envColor[16] = {
- 0x3C, 0x1E, 0x3C, 0xFF, 0xFF, 0x00, 0x32, 0xFF, 0xC8, 0x78, 0x00, 0xFF, 0x00, 0x32, 0xFF, 0xFF,
-};
-
-/* 80BFAA5C-80BFAA68 -00001 000C+00 0/1 0/0 0/0 .data @3934 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3934[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionWait__10daGlwSph_cFv,
-};
-#pragma pop
-
-/* 80BFAA68-80BFAA74 -00001 000C+00 0/1 0/0 0/0 .data @3935 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3935[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionGet__10daGlwSph_cFv,
-};
-#pragma pop
-
-/* 80BFAA74-80BFAA80 -00001 000C+00 0/1 0/0 0/0 .data @3936 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3936[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionMove__10daGlwSph_cFv,
-};
-#pragma pop
-
-/* 80BFAA80-80BFAAA4 0000B0 0024+00 0/1 0/0 0/0 .data l_func$3933 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_func[36] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-#pragma pop
-
-/* 80BFAAA4-80BFAAA8 0000D4 0004+00 0/1 0/0 0/0 .data l_eff$3973 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_eff[4] = {
- 0x87,
- 0x4F,
- 0x87,
- 0x50,
-};
-#pragma pop
-
-/* 80BFAAA8-80BFAAAC 0000D8 0004+00 0/1 0/0 0/0 .data l_colorKR$4109 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_colorKR[4] = {
- 0x3C,
- 0x50,
- 0x50,
- 0x00,
-};
-#pragma pop
-
-/* 80BFAAAC-80BFAAB0 0000DC 0004+00 0/1 0/0 0/0 .data l_colorKG$4110 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_colorKG[4] = {
- 0x32,
- 0x00,
- 0x23,
- 0x14,
-};
-#pragma pop
-
-/* 80BFAAB0-80BFAAB4 0000E0 0004+00 0/1 0/0 0/0 .data l_colorKB$4111 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_colorKB[4] = {
- 0x3C,
- 0x23,
- 0x00,
- 0x50,
-};
-#pragma pop
-
-/* 80BFAAB4-80BFAAB8 0000E4 0004+00 0/1 0/0 0/0 .data l_colorCR$4112 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_colorCR[4] = {
- 0x96,
- 0xFF,
- 0xFF,
- 0x00,
-};
-#pragma pop
-
-/* 80BFAAB8-80BFAABC 0000E8 0004+00 0/1 0/0 0/0 .data l_colorCG$4113 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_colorCG[4] = {
- 0x96,
- 0x64,
- 0xFF,
- 0x96,
-};
-#pragma pop
-
-/* 80BFAABC-80BFAAC0 0000EC 0004+00 0/1 0/0 0/0 .data l_colorCB$4114 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_colorCB[4] = {
- 0x96,
- 0x64,
- 0x00,
- 0xFF,
-};
-#pragma pop
-
-/* 80BFAAC0-80BFAAE0 -00001 0020+00 1/0 0/0 0/0 .data l_daGlwSph_Method */
-static actor_method_class l_daGlwSph_Method = {
- (process_method_func)daGlwSph_Create__FP10fopAc_ac_c,
- (process_method_func)daGlwSph_Delete__FP10daGlwSph_c,
- (process_method_func)daGlwSph_Execute__FP10daGlwSph_c,
- 0,
- (process_method_func)daGlwSph_Draw__FP10daGlwSph_c,
-};
-
-/* 80BFAAE0-80BFAB10 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_glowSphere */
-extern actor_process_profile_definition g_profile_Obj_glowSphere = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_glowSphere, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daGlwSph_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 651, // mPriority
- &l_daGlwSph_Method, // sub_method
- 0x00040000, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80BFAB10-80BFAB1C 000140 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */
-SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_AcchCirFv,
-};
+#include "Z2AudioLib/Z2Instances.h"
+#include "d/actor/d_a_player.h"
+#include "d/d_com_inf_game.h"
-/* 80BFAB1C-80BFAB28 00014C 000C+00 2/2 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,
-};
-
-/* 80BFAB28-80BFAB34 000158 000C+00 1/1 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,
-};
+UNK_REL_DATA
-/* 80BFAB34-80BFAB40 000164 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */
-SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGSphFv,
-};
+/* 80BF934C-80BF938C 0000EC 0040+00 1/1 0/0 0/0 .text __ct__14daGlwSph_HIO_cFv */
+daGlwSph_HIO_c::daGlwSph_HIO_c() {
+ speed = 50.0f;
+ speed2 = 4.0f;
+}
+
+UNK_BSS(1109)
+UNK_BSS(1107)
+UNK_BSS(1105)
+UNK_BSS(1104)
+UNK_BSS(1099)
+UNK_BSS(1097)
+UNK_BSS(1095)
+UNK_BSS(1094)
+UNK_BSS(1057)
+UNK_BSS(1055)
+UNK_BSS(1053)
+UNK_BSS(1052)
+UNK_BSS(1014)
+UNK_BSS(1012)
+UNK_BSS(1010)
+UNK_BSS(1009)
-/* 80BFAB40-80BFAB4C 000170 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
+/* 80BFABF4-80BFAC00 000054 000C+00 2/3 0/0 0/0 .bss l_HIO */
+static daGlwSph_HIO_c l_HIO;
-/* 80BFAB4C-80BFAB70 00017C 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
-SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_ObjAcchFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80BFA954,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80BFA94C,
+/* 80BFA9F0-80BFAA08 000020 0018+00 1/1 0/0 0/0 .data l_cull_box */
+static cull_box l_cull_box = {
+ {-30.0f, -10.0f, -30.0f},
+ {30.0f, 60.0f, 30.0f}
};
-/* 80BFAB70-80BFAB7C 0001A0 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
-SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12J3DFrameCtrlFv,
+/* 80BFA978-80BFA9A8 000008 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo__10daGlwSph_c */
+const dCcD_SrcGObjInf daGlwSph_c::mCcDObjInfo = {
+ {0, {{0, 0, 0}, {0x10000, 0x11}, {0x19}}},
+ {dCcD_SE_SWORD, 0, 0, 0, 0x0},
+ {dCcD_SE_STONE, 0, 0, 0, 0x2},
+ {0},
};
-/* 80BFAB7C-80BFAB88 0001AC 000C+00 2/2 0/0 0/0 .data __vt__14daGlwSph_HIO_c */
-SECTION_DATA extern void* __vt__14daGlwSph_HIO_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__14daGlwSph_HIO_cFv,
+/* 80BFAA08-80BFAA48 000038 0040+00 2/2 0/0 0/0 .data mCcDSph__10daGlwSph_c */
+dCcD_SrcSph daGlwSph_c::mCcDSph = {
+ daGlwSph_c::mCcDObjInfo,
+ {
+ {{0.0f, 0.0f, 0.0f}, 0.0f} // mSph
+ } // mSphAttr
};
-/* 80BFAB88-80BFAB94 0001B8 000C+00 3/3 0/0 0/0 .data __vt__18fOpAcm_HIO_entry_c */
-SECTION_DATA extern void* __vt__18fOpAcm_HIO_entry_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__18fOpAcm_HIO_entry_cFv,
-};
+/* 80BFAA48-80BFAA4C 000078 0004+00 1/2 0/0 0/0 .data l_prmColor */
+static GXColor l_prmColor = {0xFF, 0xFF, 0xFF, 0xFF};
-/* 80BFAB94-80BFABA0 0001C4 000C+00 4/4 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,
+/* 80BFAA4C-80BFAA5C 00007C 0010+00 1/3 0/0 0/0 .data l_envColor */
+static GXColor l_envColor[] = {
+ /* Gray */ {0x3C, 0x1E, 0x3C, 0xFF},
+ /* Red */ {0xFF, 0x00, 0x32, 0xFF},
+ /* Yellow */ {0xC8, 0x78, 0x00, 0xFF},
+ /* Blue */ {0x00, 0x32, 0xFF, 0xFF},
};
-/* 80BF934C-80BF938C 0000EC 0040+00 1/1 0/0 0/0 .text __ct__14daGlwSph_HIO_cFv */
-daGlwSph_HIO_c::daGlwSph_HIO_c() {
- // NONMATCHING
-}
-
-/* 80BF938C-80BF93E8 00012C 005C+00 1/0 0/0 0/0 .text __dt__18fOpAcm_HIO_entry_cFv */
-// fOpAcm_HIO_entry_c::~fOpAcm_HIO_entry_c() {
-extern "C" void __dt__18fOpAcm_HIO_entry_cFv() {
- // NONMATCHING
-}
-
-/* 80BF93E8-80BF9430 000188 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
-}
-
-/* ############################################################################################## */
-/* 80BFABA8-80BFABAC 000008 0001+03 1/1 0/0 0/0 .bss @1109 */
-static u8 lit_1109[1 + 3 /* padding */];
-
-/* 80BFABAC-80BFABB0 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */
-#pragma push
-#pragma force_active on
-static u8 lit_1107[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABB0-80BFABB4 000010 0001+03 0/0 0/0 0/0 .bss @1105 */
-#pragma push
-#pragma force_active on
-static u8 lit_1105[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABB4-80BFABB8 000014 0001+03 0/0 0/0 0/0 .bss @1104 */
-#pragma push
-#pragma force_active on
-static u8 lit_1104[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABB8-80BFABBC 000018 0001+03 0/0 0/0 0/0 .bss @1099 */
-#pragma push
-#pragma force_active on
-static u8 lit_1099[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABBC-80BFABC0 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */
-#pragma push
-#pragma force_active on
-static u8 lit_1097[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABC0-80BFABC4 000020 0001+03 0/0 0/0 0/0 .bss @1095 */
-#pragma push
-#pragma force_active on
-static u8 lit_1095[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABC4-80BFABC8 000024 0001+03 0/0 0/0 0/0 .bss @1094 */
-#pragma push
-#pragma force_active on
-static u8 lit_1094[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABC8-80BFABCC 000028 0001+03 0/0 0/0 0/0 .bss @1057 */
-#pragma push
-#pragma force_active on
-static u8 lit_1057[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABCC-80BFABD0 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */
-#pragma push
-#pragma force_active on
-static u8 lit_1055[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABD0-80BFABD4 000030 0001+03 0/0 0/0 0/0 .bss @1053 */
-#pragma push
-#pragma force_active on
-static u8 lit_1053[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABD4-80BFABD8 000034 0001+03 0/0 0/0 0/0 .bss @1052 */
-#pragma push
-#pragma force_active on
-static u8 lit_1052[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABD8-80BFABDC 000038 0001+03 0/0 0/0 0/0 .bss @1014 */
-#pragma push
-#pragma force_active on
-static u8 lit_1014[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABDC-80BFABE0 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */
-#pragma push
-#pragma force_active on
-static u8 lit_1012[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABE0-80BFABE4 000040 0001+03 0/0 0/0 0/0 .bss @1010 */
-#pragma push
-#pragma force_active on
-static u8 lit_1010[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABE4-80BFABE8 000044 0001+03 0/0 0/0 0/0 .bss @1009 */
-#pragma push
-#pragma force_active on
-static u8 lit_1009[1 + 3 /* padding */];
-#pragma pop
-
-/* 80BFABE8-80BFABF4 000048 000C+00 0/1 0/0 0/0 .bss @3657 */
-#pragma push
-#pragma force_active on
-static u8 lit_3657[12];
-#pragma pop
-
-/* 80BFABF4-80BFAC00 000054 000C+00 2/3 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[12];
-
-/* 80BFAC00-80BFAC0C 000060 000C+00 0/1 0/0 0/0 .bss @3673 */
-#pragma push
-#pragma force_active on
-static u8 lit_3673[12];
-#pragma pop
-
/* 80BFAC0C-80BFAFD0 00006C 03C4+00 3/4 0/0 0/0 .bss mSphMng__10daGlwSph_c */
-u8 daGlwSph_c::mSphMng[964];
+_GlSph_Mng_c daGlwSph_c::mSphMng;
/* 80BF9430-80BF943C 0001D0 000C+00 0/0 0/0 1/1 .text getSphMng__10daGlwSph_cFv */
-void daGlwSph_c::getSphMng() {
- // NONMATCHING
+_GlSph_Mng_c& daGlwSph_c::getSphMng() {
+ return mSphMng;
}
/* 80BF943C-80BF94AC 0001DC 0070+00 2/2 0/0 0/0 .text setBaseMtx__10daGlwSph_cFv */
void daGlwSph_c::setBaseMtx() {
- // NONMATCHING
+ mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
+ mpModel->setBaseScale(scale);
+ mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80BF94AC-80BF94CC 00024C 0020+00 1/1 0/0 0/0 .text
* createHeapCallBack__10daGlwSph_cFP10fopAc_ac_c */
-void daGlwSph_c::createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
+int daGlwSph_c::createHeapCallBack(fopAc_ac_c* i_this) {
+ return ((daGlwSph_c*)i_this)->CreateHeap();
}
-/* ############################################################################################## */
-/* 80BFA978-80BFA9A8 000008 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo__10daGlwSph_c */
-SECTION_RODATA u8 const daGlwSph_c::mCcDObjInfo[48] = {
- 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, 0x19, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BFA978, &daGlwSph_c::mCcDObjInfo);
+/* 80BF94CC-80BF95D4 00026C 0108+00 1/1 0/0 0/0 .text CreateHeap__10daGlwSph_cFv */
+int daGlwSph_c::CreateHeap() {
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("glwSphere", 5);
+ JUT_ASSERT(0xF4, modelData != 0);
+ mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284);
+ if (mpModel == NULL) {
+ return 0;
+ }
-/* 80BFA9A8-80BFA9AC 000038 0004+00 3/4 0/0 0/0 .rodata @3714 */
-SECTION_RODATA static f32 const lit_3714 = 1.0f;
-COMPILER_STRIP_GATE(0x80BFA9A8, &lit_3714);
+ J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("glwSphere", 8);
+ int res = mBrk.init(modelData, brk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1);
+ JUT_ASSERT(0x106, res == 1);
-/* 80BFA9C4-80BFA9C4 000054 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80BFA9C4 = "glwSphere";
-#pragma pop
+ J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("glwSphere", 11);
+ res = mBtk.init(modelData, btk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1);
+ JUT_ASSERT(0x10F, res == 1);
-/* 80BF94CC-80BF95D4 00026C 0108+00 1/1 0/0 0/0 .text CreateHeap__10daGlwSph_cFv */
-void daGlwSph_c::CreateHeap() {
- // NONMATCHING
+ return 1;
}
-/* ############################################################################################## */
-/* 80BFA9AC-80BFA9B0 00003C 0004+00 1/1 0/0 0/0 .rodata @3826 */
-SECTION_RODATA static f32 const lit_3826 = 25.0f;
-COMPILER_STRIP_GATE(0x80BFA9AC, &lit_3826);
-
/* 80BF95D4-80BF9908 000374 0334+00 1/1 0/0 0/0 .text create__10daGlwSph_cFv */
-void daGlwSph_c::create() {
- // NONMATCHING
-}
+int daGlwSph_c::create() {
+ fopAcM_SetupActor(this, daGlwSph_c);
-/* 80BF9908-80BF9950 0006A8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
-// cM3dGSph::~cM3dGSph() {
-extern "C" void __dt__8cM3dGSphFv() {
- // NONMATCHING
-}
+ int phase_state = dComIfG_resLoad(&mPhase, "glwSphere");
+ if (phase_state != cPhs_COMPLEATE_e) {
+ return phase_state;
+ }
-/* 80BF9950-80BF9998 0006F0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
+ int sw = getSw();
-/* 80BF9998-80BF99F4 000738 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
+ u8 arg0 = getArg0();
+ if (arg0 == 0xFF) {
+ arg0 = 0;
+ }
-/* 80BF99F4-80BF9A64 000794 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
+ if ((fopAcM_isSwitch(this, sw) == TRUE && arg0 == 1) || (!fopAcM_isSwitch(this, sw) && arg0 == 0)) {
+ return cPhs_ERROR_e;
+ }
-/* 80BF9A64-80BF9AD4 000804 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
+ if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x9E0)) {
+ return cPhs_ERROR_e;
+ }
-/* 80BF9AD4-80BF9B1C 000874 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
+ mColliderStts.Init(10, 0xFF, this);
+ mSphCollider.Set(mCcDSph);
+ mSphCollider.SetStts(&mColliderStts);
+
+ 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);
+
+ mAcchCir.SetWall(25.0f, 25.0f);
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL);
+
+ mColor = getColor();
+ if (mColor == COLOR_DEFAULT_e) {
+ mColor = COLOR_GRAY_e;
+ }
+
+ mMoveTimer = 0;
+ mIsNoMoveHome = false;
+ field_0x968 = current.pos;
+ mEmitterIDs[0] = fpcM_ERROR_PROCESS_ID_e;
+ mEmitterIDs[1] = fpcM_ERROR_PROCESS_ID_e;
+
+ offGetFlag();
+ saveGetFlag();
+
+ mSphMng.entry(this);
+ field_0x980 = -1;
+
+ setBaseMtx();
+ actionWaitInit();
+
+ return phase_state;
}
/* 80BF9B1C-80BF9BC0 0008BC 00A4+00 1/1 0/0 0/0 .text execute__10daGlwSph_cFv */
-void daGlwSph_c::execute() {
- // NONMATCHING
-}
+int daGlwSph_c::execute() {
+ if (is_getted()) {
+ saveGetFlag();
+ return 1;
+ }
-/* ############################################################################################## */
-/* 80BFA9B0-80BFA9B4 000040 0004+00 1/1 0/0 0/0 .rodata @3968 */
-SECTION_RODATA static f32 const lit_3968 = 400.0f;
-COMPILER_STRIP_GATE(0x80BFA9B0, &lit_3968);
+ mBrk.play();
+ mBtk.play();
+
+ actionMain();
-/* 80BFA9B4-80BFA9B8 000044 0004+00 1/2 0/0 0/0 .rodata @3969 */
-SECTION_RODATA static f32 const lit_3969 = 0.5f;
-COMPILER_STRIP_GATE(0x80BFA9B4, &lit_3969);
+ mColliderStts.Move();
+ mSphCollider.SetR(50.0f);
+ mSphCollider.SetC(current.pos);
+ dComIfG_Ccsp()->Set(&mSphCollider);
-/* 80BFAFD0-80BFAFD4 -00001 0004+00 2/2 0/0 0/0 .bss None */
-/* 80BFAFD0 0001+00 data_80BFAFD0 None */
-/* 80BFAFD1 0003+00 data_80BFAFD1 None */
-static u8 struct_80BFAFD0[4];
+ setBaseMtx();
+ saveGetFlag();
+ return 1;
+}
/* 80BF9BC0-80BF9DF0 000960 0230+00 1/1 0/0 0/0 .text actionMain__10daGlwSph_cFv */
void daGlwSph_c::actionMain() {
- // NONMATCHING
+ static void (daGlwSph_c::*l_func[])() = {
+ &daGlwSph_c::actionWait,
+ &daGlwSph_c::actionGet,
+ &daGlwSph_c::actionMove,
+ };
+
+ if (mSphCollider.ChkTgHit()) {
+ OS_REPORT("");
+ fopAc_ac_c* hit_actor = mSphCollider.GetTgHitAc();
+ cXyz vec = current.pos - hit_actor->current.pos;
+ mMoveVec = vec.normalizeZP();
+ actionMoveInit();
+ }
+
+ if (mSphCollider.ChkCoHit()) {
+ mSphCollider.OffCoSetBit();
+ mSphCollider.ClrCoHit();
+ actionGetInit();
+ } else {
+ effectSet();
+ mLight.mPosition = current.pos;
+ mLight.mColor.r = l_envColor[mColor].r;
+ mLight.mColor.g = l_envColor[mColor].g;
+ mLight.mColor.b = l_envColor[mColor].b;
+ mLight.mPow = 400.0f;
+ dKy_mock_light_every_set(&mLight);
+ }
+
+ if (mMoveTimer != 0) {
+ mMoveTimer--;
+ if (mMoveTimer == 0) {
+ mIsNoMoveHome = false;
+ }
+ }
+
+ if (!mIsNoMoveHome) {
+ cLib_addCalcPos(&current.pos, home.pos, 0.5f, l_HIO.speed2, 0.5f);
+ }
+
+ (this->*l_func[mAction])();
}
-/* ############################################################################################## */
-/* 80BFA9B8-80BFA9BC 000048 0004+00 3/4 0/0 0/0 .rodata @4012 */
-SECTION_RODATA static u8 const lit_4012[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80BFA9B8, &lit_4012);
-
/* 80BF9DF0-80BF9F30 000B90 0140+00 1/1 0/0 0/0 .text effectSet__10daGlwSph_cFv */
void daGlwSph_c::effectSet() {
- // NONMATCHING
-}
+ field_0x974 = current.pos - field_0x968;
-/* ############################################################################################## */
-/* 80BFA9BC-80BFA9C0 00004C 0004+00 1/1 0/0 0/0 .rodata @4031 */
-SECTION_RODATA static f32 const lit_4031 = -1.0f;
-COMPILER_STRIP_GATE(0x80BFA9BC, &lit_4031);
+ for (int i = 0; i < 2; i++) {
+ static u16 l_eff[] = {0x874F, 0x8750};
+ mEmitterIDs[i] = dComIfGp_particle_setColor(mEmitterIDs[i], l_eff[i], &current.pos, &tevStr, &l_prmColor, &l_envColor[mColor], 0.0f, 0xFF, NULL, NULL, NULL, -1, NULL);
-/* 80BFAFD4-80BFAFE8 000434 0014+00 1/1 0/0 0/0 .bss sSeId$4016 */
-static u8 sSeId[20];
+ JPABaseEmitter* emitterp = dComIfGp_particle_getEmitter(mEmitterIDs[i]);
+ if (emitterp != NULL) {
+ emitterp->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB());
+ emitterp->setUserWork((u32)&field_0x974);
+ }
+ }
+
+ field_0x968 = current.pos;
+}
/* 80BF9F30-80BFA010 000CD0 00E0+00 1/1 0/0 0/0 .text getSE__10daGlwSph_cFv */
void daGlwSph_c::getSE() {
- // NONMATCHING
+ static JAISoundID sSeId[] = {
+ Z2SE_OBJ_STAR_GAME_HIT_1,
+ Z2SE_OBJ_STAR_GAME_HIT_2,
+ Z2SE_OBJ_STAR_GAME_HIT_3,
+ Z2SE_OBJ_STAR_GAME_HIT_4,
+ Z2SE_OBJ_STAR_GAME_HIT_5
+ };
+
+ u16 sph_seid = _GlSph_Mng_c::getSphSe();
+ cXyz pos(current.pos);
+
+ OS_REPORT("---------- sph seid = %d\n", sph_seid);
+ Z2GetAudioMgr()->seStart(sSeId[sph_seid], &pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
/* 80BFA010-80BFA064 000DB0 0054+00 1/1 0/0 0/0 .text getVibe__10daGlwSph_cFv */
void daGlwSph_c::getVibe() {
- // NONMATCHING
+ dComIfGp_getVibration().StartShock(VIBMODE_S_POWER4, 1, cXyz(0.0f, 1.0f, 0.0f));
}
/* 80BFA064-80BFA070 000E04 000C+00 2/2 0/0 0/0 .text actionWaitInit__10daGlwSph_cFv */
void daGlwSph_c::actionWaitInit() {
- // NONMATCHING
+ mAction = ACTION_WAIT_e;
}
/* 80BFA070-80BFA074 000E10 0004+00 1/0 0/0 0/0 .text actionWait__10daGlwSph_cFv */
-void daGlwSph_c::actionWait() {
- /* empty function */
-}
+void daGlwSph_c::actionWait() {}
/* 80BFA074-80BFA130 000E14 00BC+00 1/1 0/0 0/0 .text actionGetInit__10daGlwSph_cFv */
void daGlwSph_c::actionGetInit() {
- // NONMATCHING
+ field_0x980 = 1;
+ dComIfGp_particle_setColor(0x8751, &current.pos, &tevStr, &l_prmColor, &l_envColor[mColor], 0.0f, 0xFF);
+ getSE();
+ getVibe();
+
+ _GlSph_Mng_c::incSphSe();
+ mAction = ACTION_GET_e;
}
/* 80BFA130-80BFA1E0 000ED0 00B0+00 1/0 0/0 0/0 .text actionGet__10daGlwSph_cFv */
void daGlwSph_c::actionGet() {
- // NONMATCHING
+ if (field_0x980 > 0) {
+ field_0x980--;
+ if (field_0x980 == 0) {
+ for (int i = 0; i < 2; i++) {
+ JPABaseEmitter* emitterp = dComIfGp_particle_getEmitter(mEmitterIDs[i]);
+ if (emitterp != NULL) {
+ emitterp->deleteAllParticle();
+ dComIfGp_particle_levelEmitterOnEventMove(mEmitterIDs[i]);
+ }
+ }
+
+ onGetFlag();
+ field_0x980 = -1;
+ }
+ }
}
/* 80BFA1E0-80BFA204 000F80 0024+00 1/1 0/0 0/0 .text actionMoveInit__10daGlwSph_cFv */
void daGlwSph_c::actionMoveInit() {
- // NONMATCHING
+ mIsNoMoveHome = true;
+ mMoveSpeed = l_HIO.speed;
+ mAction = ACTION_MOVE_e;
}
-/* ############################################################################################## */
-/* 80BFA9C0-80BFA9C4 000050 0004+00 0/1 0/0 0/0 .rodata @4103 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4103 = 10.0f;
-COMPILER_STRIP_GATE(0x80BFA9C0, &lit_4103);
-#pragma pop
-
/* 80BFA204-80BFA2A4 000FA4 00A0+00 1/0 0/0 0/0 .text actionMove__10daGlwSph_cFv */
void daGlwSph_c::actionMove() {
- // NONMATCHING
+ f32 dist_to_target = cLib_addCalc(&mMoveSpeed, 0.0f, 0.5f, 10.0f, 1.0f);
+ current.pos += mMoveVec * mMoveSpeed;
+
+ if (dist_to_target == 0.0f) {
+ mMoveTimer = 10;
+ actionWaitInit();
+ }
}
/* 80BFA2A4-80BFA3EC 001044 0148+00 1/1 0/0 0/0 .text draw__10daGlwSph_cFv */
-void daGlwSph_c::draw() {
- // NONMATCHING
+int daGlwSph_c::draw() {
+ if (is_getted()) {
+ return 1;
+ }
+
+ g_env_light.settingTevStruct(0, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
+
+ J3DModelData* modelData = mpModel->getModelData();
+ mBrk.entry(modelData);
+ mBtk.entry(modelData);
+
+ J3DMaterial* materialp = modelData->getMaterialNodePointer(0);
+
+ static u8 l_colorKR[4] = {0x3C, 0x50, 0x50, 0x00};
+ static u8 l_colorKG[4] = {0x32, 0x00, 0x23, 0x14};
+ static u8 l_colorKB[4] = {0x3C, 0x23, 0x00, 0x50};
+
+ J3DGXColor* kcolor = materialp->getTevKColor(1);
+ kcolor->r = l_colorKR[mColor];
+ kcolor->g = l_colorKG[mColor];
+ kcolor->b = l_colorKB[mColor];
+
+ static u8 l_colorCR[4] = {0x96, 0xFF, 0xFF, 0x00};
+ static u8 l_colorCG[4] = {0x96, 0x64, 0xFF, 0x96};
+ static u8 l_colorCB[4] = {0x96, 0x64, 0x00, 0xFF};
+
+ J3DGXColorS10* ccolor = materialp->getTevColor(1);
+ ccolor->r = l_colorCR[mColor];
+ ccolor->g = l_colorCG[mColor];
+ ccolor->b = l_colorCB[mColor];
+
+ mDoExt_modelUpdateDL(mpModel);
+ return 1;
}
/* 80BFA3EC-80BFA438 00118C 004C+00 1/1 0/0 0/0 .text _delete__10daGlwSph_cFv */
-void daGlwSph_c::_delete() {
- // NONMATCHING
+int daGlwSph_c::_delete() {
+ dComIfG_resDelete(&mPhase, "glwSphere");
+ mSphMng.remove(this);
+ return 1;
}
/* 80BFA438-80BFA458 0011D8 0020+00 1/0 0/0 0/0 .text daGlwSph_Draw__FP10daGlwSph_c */
-static void daGlwSph_Draw(daGlwSph_c* param_0) {
- // NONMATCHING
+static int daGlwSph_Draw(daGlwSph_c* i_this) {
+ return i_this->draw();
}
/* 80BFA458-80BFA478 0011F8 0020+00 1/0 0/0 0/0 .text daGlwSph_Execute__FP10daGlwSph_c */
-static void daGlwSph_Execute(daGlwSph_c* param_0) {
- // NONMATCHING
+static int daGlwSph_Execute(daGlwSph_c* i_this) {
+ return i_this->execute();
}
/* 80BFA478-80BFA498 001218 0020+00 1/0 0/0 0/0 .text daGlwSph_Delete__FP10daGlwSph_c */
-static void daGlwSph_Delete(daGlwSph_c* param_0) {
- // NONMATCHING
+static int daGlwSph_Delete(daGlwSph_c* i_this) {
+ return i_this->_delete();
}
/* 80BFA498-80BFA4B8 001238 0020+00 1/0 0/0 0/0 .text daGlwSph_Create__FP10fopAc_ac_c */
-static void daGlwSph_Create(fopAc_ac_c* param_0) {
- // NONMATCHING
+static int daGlwSph_Create(fopAc_ac_c* i_this) {
+ return ((daGlwSph_c*)i_this)->create();
}
/* 80BFA4B8-80BFA4DC 001258 0024+00 1/1 0/0 0/0 .text _clrLstBuf__12_GlSph_Mng_cFv */
void _GlSph_Mng_c::_clrLstBuf() {
- // NONMATCHING
+ _GlSph_LstInfo_c* info = mListBuf;
+
+ for (int i = 0; i < 120; i++) {
+ info->Remove();
+ info++;
+ }
}
/* 80BFA4DC-80BFA528 00127C 004C+00 1/1 0/0 0/0 .text entry__12_GlSph_Mng_cFP10daGlwSph_c
*/
-void _GlSph_Mng_c::entry(daGlwSph_c* param_0) {
- // NONMATCHING
+int _GlSph_Mng_c::entry(daGlwSph_c* i_sph) {
+ _GlSph_LstInfo_c* info = mListBuf;
+
+ for (int i = 0; i < 120; i++) {
+ if (!info->isSet()) {
+ info->Set(i_sph);
+ return 1;
+ }
+
+ info++;
+ }
+
+ return 0;
}
/* 80BFA528-80BFA55C 0012C8 0034+00 1/1 0/0 0/0 .text remove__12_GlSph_Mng_cFP10daGlwSph_c */
-void _GlSph_Mng_c::remove(daGlwSph_c* param_0) {
- // NONMATCHING
+void _GlSph_Mng_c::remove(daGlwSph_c* i_sph) {
+ _GlSph_LstInfo_c* info = mListBuf;
+
+ for (int i = 0; i < 120; i++) {
+ if (i_sph == info->getpSph()) {
+ info->Remove();
+ break;
+ }
+
+ info++;
+ }
}
/* 80BFA55C-80BFA5C4 0012FC 0068+00 0/0 0/0 1/1 .text _setting_main__12_GlSph_Mng_cFv */
-void _GlSph_Mng_c::_setting_main() {
- // NONMATCHING
+int _GlSph_Mng_c::_setting_main() {
+ _GlSph_LstInfo_c* info = mListBuf;
+
+ for (int i = 0; i < 120; i++) {
+ if (info->isSet()) {
+ daGlwSph_c* psph = info->getpSph();
+ if (psph != NULL) {
+ psph->reset();
+ }
+ }
+
+ info++;
+ }
+
+ return 1;
}
/* 80BFA5C4-80BFA60C 001364 0048+00 0/0 0/0 1/1 .text _chkAllGet_main__12_GlSph_Mng_cFv
*/
-void _GlSph_Mng_c::_chkAllGet_main() {
- // NONMATCHING
+bool _GlSph_Mng_c::_chkAllGet_main() {
+ _GlSph_LstInfo_c* info = mListBuf;
+
+ for (int i = 0; i < 120; i++) {
+ if (info->isSet()) {
+ daGlwSph_c* psph = info->getpSph();
+ if (psph != NULL && !psph->is_getted()) {
+ return false;
+ }
+ }
+
+ info++;
+ }
+
+ return true;
}
-/* ############################################################################################## */
-/* 80BFAFE8-80BFAFEC -00001 0004+00 4/4 0/0 0/0 .bss None */
/* 80BFAFE8 0002+00 data_80BFAFE8 mSphSe__12_GlSph_Mng_c */
+u16 _GlSph_Mng_c::mSphSe;
+
/* 80BFAFEA 0002+00 data_80BFAFEA mSeClrTmr__12_GlSph_Mng_c */
-static u8 struct_80BFAFE8[4];
+s16 _GlSph_Mng_c::mSeClrTmr;
/* 80BFA60C-80BFA6D8 0013AC 00CC+00 0/0 0/0 1/1 .text SphSeProc__12_GlSph_Mng_cFv */
void _GlSph_Mng_c::SphSeProc() {
- // NONMATCHING
+ if (mSeClrTmr > 0) {
+ mSeClrTmr--;
+ OS_REPORT("-------- se timer = %d\n", mSeClrTmr);
+
+ if (mSeClrTmr == 0) {
+ OS_REPORT("------------ se clr ----------------\n");
+ clrSphSe();
+ }
+ } else if (mSphSe != 0) {
+ if (dComIfGp_checkPlayerStatus1(0, 0x10) || daPy_getPlayerActorClass()->checkPlayerFly()) {
+ if (dComIfGp_checkPlayerStatus1(0, 0x2000000) || dComIfGp_checkPlayerStatus1(0, 0x10000)) {
+ mSeClrTmr = 16;
+ }
+ } else {
+ mSeClrTmr = 16;
+ }
+ } else {
+ mSeClrTmr = 0;
+ }
}
/* 80BFA6D8-80BFA6E8 001478 0010+00 1/1 0/0 0/0 .text clrSphSe__12_GlSph_Mng_cFv */
void _GlSph_Mng_c::clrSphSe() {
- // NONMATCHING
+ mSphSe = 0;
}
/* 80BFA6E8-80BFA6F8 001488 0010+00 1/1 0/0 0/0 .text getSphSe__12_GlSph_Mng_cFv */
-void _GlSph_Mng_c::getSphSe() {
- // NONMATCHING
+u16 _GlSph_Mng_c::getSphSe() {
+ return mSphSe;
}
/* 80BFA6F8-80BFA724 001498 002C+00 1/1 0/0 0/0 .text incSphSe__12_GlSph_Mng_cFv */
void _GlSph_Mng_c::incSphSe() {
- // NONMATCHING
-}
-
-/* 80BFA724-80BFA76C 0014C4 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80BFA76C-80BFA7D8 00150C 006C+00 2/1 0/0 0/0 .text __dt__14daGlwSph_HIO_cFv */
-daGlwSph_HIO_c::~daGlwSph_HIO_c() {
- // NONMATCHING
-}
-
-/* 80BFA7D8-80BFA890 001578 00B8+00 0/0 1/0 0/0 .text __sinit_d_a_obj_glowSphere_cpp */
-void __sinit_d_a_obj_glowSphere_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80BFA7D8, __sinit_d_a_obj_glowSphere_cpp);
-#pragma pop
-
-/* 80BFA890-80BFA900 001630 0070+00 1/1 0/0 0/0 .text __dt__12_GlSph_Mng_cFv */
-_GlSph_Mng_c::~_GlSph_Mng_c() {
- // NONMATCHING
-}
-
-/* 80BFA900-80BFA93C 0016A0 003C+00 2/2 0/0 0/0 .text __dt__16_GlSph_LstInfo_cFv */
-_GlSph_LstInfo_c::~_GlSph_LstInfo_c() {
- // NONMATCHING
-}
-
-/* 80BFA93C-80BFA94C 0016DC 0010+00 1/1 0/0 0/0 .text __ct__16_GlSph_LstInfo_cFv */
-_GlSph_LstInfo_c::_GlSph_LstInfo_c() {
- // NONMATCHING
-}
-
-/* 80BFA94C-80BFA954 0016EC 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80BFA94C() {
- // NONMATCHING
-}
-
-/* 80BFA954-80BFA95C 0016F4 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80BFA954() {
- // NONMATCHING
+ mSphSe++;
+ if (mSphSe > 4) {
+ mSphSe = 4;
+ }
}
-/* ############################################################################################## */
-/* 80BFAFEC-80BFAFF0 00044C 0004+00 0/0 0/0 0/0 .bss
- * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFAFEC[4];
-#pragma pop
-
-/* 80BFAFF0-80BFAFF4 000450 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14JASAudioThread> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFAFF0[4];
-#pragma pop
-
-/* 80BFAFF4-80BFAFF8 000454 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFAFF4[4];
-#pragma pop
-
-/* 80BFAFF8-80BFAFFC 000458 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFAFF8[4];
-#pragma pop
-
-/* 80BFAFFC-80BFB000 00045C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BFAFFC[4];
-#pragma pop
-
-/* 80BFB000-80BFB004 000460 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB000[4];
-#pragma pop
-
-/* 80BFB004-80BFB008 000464 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB004[4];
-#pragma pop
-
-/* 80BFB008-80BFB00C 000468 0004+00 0/0 0/0 0/0 .bss
- * sInstance__36JASGlobalInstance<15JAISoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB008[4];
-#pragma pop
-
-/* 80BFB00C-80BFB010 00046C 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14Z2SoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB00C[4];
-#pragma pop
-
-/* 80BFB010-80BFB014 000470 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB010[4];
-#pragma pop
-
-/* 80BFB014-80BFB018 000474 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB014[4];
-#pragma pop
-
-/* 80BFB018-80BFB01C 000478 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB018[4];
-#pragma pop
-
-/* 80BFB01C-80BFB020 00047C 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAIStreamMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB01C[4];
-#pragma pop
-
-/* 80BFB020-80BFB024 000480 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB020[4];
-#pragma pop
-
-/* 80BFB024-80BFB028 000484 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAISoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB024[4];
-#pragma pop
-
-/* 80BFB028-80BFB02C 000488 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13JAUSoundTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB028[4];
-#pragma pop
-
-/* 80BFB02C-80BFB030 00048C 0004+00 0/0 0/0 0/0 .bss
- * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB02C[4];
-#pragma pop
-
-/* 80BFB030-80BFB034 000490 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAUSoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB030[4];
-#pragma pop
-
-/* 80BFB034-80BFB038 000494 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB034[4];
-#pragma pop
-
-/* 80BFB038-80BFB03C 000498 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB038[4];
-#pragma pop
-
-/* 80BFB03C-80BFB040 00049C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB03C[4];
-#pragma pop
-
-/* 80BFB040-80BFB044 0004A0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB040[4];
-#pragma pop
+/* 80BFAAC0-80BFAAE0 -00001 0020+00 1/0 0/0 0/0 .data l_daGlwSph_Method */
+static actor_method_class l_daGlwSph_Method = {
+ (process_method_func)daGlwSph_Create, (process_method_func)daGlwSph_Delete,
+ (process_method_func)daGlwSph_Execute, (process_method_func)NULL,
+ (process_method_func)daGlwSph_Draw,
+};
-/* 80BFB044-80BFB048 0004A4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB044[4];
-#pragma pop
+/* 80BFAAE0-80BFAB10 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_glowSphere */
+extern actor_process_profile_definition g_profile_Obj_glowSphere = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_glowSphere, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daGlwSph_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 651, // mPriority
+ &l_daGlwSph_Method, // sub_method
+ 0x00040000, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
-/* 80BFB048-80BFB04C 0004A8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB048[4];
-#pragma pop
-
-/* 80BFB04C-80BFB050 0004AC 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BFB04C[4];
-#pragma pop
-
-/* 80BFA9C4-80BFA9C4 000054 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+AUDIO_INSTANCES