summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax Roncace <me@caseif.net>2025-08-15 05:50:49 -0400
committerGitHub <noreply@github.com>2025-08-15 12:50:49 +0300
commit41c72dc6d9911df56a6ada3641f9a77e5817bc2a (patch)
tree9c36241fb49015d20cdba1e074c01fe59102c305 /src
parenta6802bf7a23a57c14fe04b851a6d54aa263dd3c8 (diff)
d_a_e_hp almost matching (#2585)
Diffstat (limited to 'src')
-rw-r--r--src/d/actor/d_a_e_hp.cpp1998
-rw-r--r--src/d/actor/d_a_e_zh.cpp2
-rw-r--r--src/d/actor/d_a_npc_moir.cpp4
-rw-r--r--src/d/actor/d_a_tag_kmsg.cpp4
-rw-r--r--src/d/d_camera.cpp4
-rw-r--r--src/d/d_event.cpp4
-rw-r--r--src/f_op/f_op_actor_mng.cpp4
7 files changed, 1236 insertions, 784 deletions
diff --git a/src/d/actor/d_a_e_hp.cpp b/src/d/actor/d_a_e_hp.cpp
index d4e11783d8..8fb33a9517 100644
--- a/src/d/actor/d_a_e_hp.cpp
+++ b/src/d/actor/d_a_e_hp.cpp
@@ -1,907 +1,1359 @@
/**
* @file d_a_e_hp.cpp
- *
-*/
+ *
+ */
#include "d/actor/d_a_e_hp.h"
+#include "d/actor/d_a_alink.h"
+#include "d/d_debug_viewer.h"
#include "dol2asm.h"
UNK_REL_DATA;
#include "f_op/f_op_actor_enemy.h"
-
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__12daE_HP_HIO_cFv();
-extern "C" void ctrlJoint__8daE_HP_cFP8J3DJointP8J3DModel();
-extern "C" void JointCallBack__8daE_HP_cFP8J3DJointi();
-extern "C" void LampCtrlJoint__8daE_HP_cFP8J3DJointP8J3DModel();
-extern "C" void LampJointCallBack__8daE_HP_cFP8J3DJointi();
-extern "C" void draw__8daE_HP_cFv();
-extern "C" static void daE_HP_Draw__FP8daE_HP_c();
-extern "C" void setBck__8daE_HP_cFiUcff();
-extern "C" void setActionMode__8daE_HP_cFii();
-extern "C" void mChkDistance__8daE_HP_cFf();
-extern "C" void damage_check__8daE_HP_cFv();
-extern "C" void executeWait__8daE_HP_cFv();
-extern "C" void executeMove__8daE_HP_cFv();
-extern "C" void executeRetMove__8daE_HP_cFv();
-extern "C" void executeAttack__8daE_HP_cFv();
-extern "C" void executeDamage__8daE_HP_cFv();
-extern "C" void executeDown__8daE_HP_cFv();
-extern "C" void executeDead__8daE_HP_cFv();
-extern "C" void action__8daE_HP_cFv();
-extern "C" void __dt__8cM3dGPlaFv();
-extern "C" void mtx_set__8daE_HP_cFv();
-extern "C" void cc_set__8daE_HP_cFv();
-extern "C" void execute__8daE_HP_cFv();
-extern "C" static void daE_HP_Execute__FP8daE_HP_c();
-extern "C" static bool daE_HP_IsDelete__FP8daE_HP_c();
-extern "C" void _delete__8daE_HP_cFv();
-extern "C" static void daE_HP_Delete__FP8daE_HP_c();
-extern "C" void CreateHeap__8daE_HP_cFv();
-extern "C" static void useHeapInit__FP10fopAc_ac_c();
-extern "C" void create__8daE_HP_cFv();
-extern "C" void __ct__8daE_HP_cFv();
-extern "C" void __dt__8cM3dGSphFv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" static void daE_HP_Create__FP8daE_HP_c();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __dt__12daE_HP_HIO_cFv();
-extern "C" void __sinit_d_a_e_hp_cpp();
-extern "C" static void func_806E9DBC();
-extern "C" static void func_806E9DC4();
-extern "C" extern char const* const d_a_e_hp__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_XrotM__FPA4_fs();
-extern "C" void mDoMtx_YrotS__FPA4_fs();
-extern "C" void mDoMtx_YrotM__FPA4_fs();
-extern "C" void mDoMtx_ZrotM__FPA4_fs();
-extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void transM__14mDoMtx_stack_cFfff();
-extern "C" void scaleM__14mDoMtx_stack_cFfff();
-extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void create__21mDoExt_invisibleModelFP8J3DModelUc();
-extern "C" void entryDL__21mDoExt_invisibleModelFP4cXyz();
-extern "C" void
-__ct__14mDoExt_McaMorfFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiiPvUlUl();
-extern "C" void play__14mDoExt_McaMorfFP3VecUlSc();
-extern "C" void entryDL__14mDoExt_McaMorfFv();
-extern "C" void modelCalc__14mDoExt_McaMorfFv();
-extern "C" void
-__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl();
-extern "C" void setAnm__16mDoExt_McaMorfSOFP15J3DAnmTransformiffff();
-extern "C" void play__16mDoExt_McaMorfSOFUlSc();
-extern "C" void modelCalc__16mDoExt_McaMorfSOFv();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void initBallModel__13fopEn_enemy_cFv();
-extern "C" void checkBallModelDraw__13fopEn_enemy_cFv();
-extern "C" void setBallModelEffect__13fopEn_enemy_cFP12dKy_tevstr_c();
-extern "C" void drawBallModel__13fopEn_enemy_cFP12dKy_tevstr_c();
-extern "C" void fopAcM_delete__FP10fopAc_ac_c();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff();
-extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff();
-extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz();
-extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
-extern "C" void fopAcM_getTalkEventPartner__FPC10fopAc_ac_c();
-extern "C" void fopAcM_createItemForPresentDemo__FPC4cXyziUciiPC5csXyzPC4cXyz();
-extern "C" void fopAcM_createDisappear__FPC10fopAc_ac_cPC4cXyzUcUcUc();
-extern "C" void fpcEx_IsExist__FUi();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfGp_getReverb__Fi();
-extern "C" void
-dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj();
-extern "C" void onEventBit__11dSv_event_cFUs();
-extern "C" void onSwitch__10dSv_info_cFii();
-extern "C" void isSwitch__10dSv_info_cCFii();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void reset__14dEvt_control_cFv();
-extern "C" void setPtT__14dEvt_control_cFPv();
-extern "C" void setPtI_Id__14dEvt_control_cFUi();
-extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc();
-extern "C" void endCheck__16dEvent_manager_cFs();
-extern "C" void getRunEventName__16dEvent_manager_cFv();
-extern "C" void getEmitter__Q213dPa_control_c7level_cFUl();
-extern "C" void setHitMark__13dPa_control_cFUsP10fopAc_ac_cPC4cXyzPC5csXyzPC4cXyzUl();
-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 LineCross__4cBgSFP11cBgS_LinChk();
-extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
-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 CrrPos__9dBgS_AcchFR4dBgS();
-extern "C" void SetGroundUpY__9dBgS_AcchFf();
-extern "C" void __ct__11dBgS_LinChkFv();
-extern "C" void __dt__11dBgS_LinChkFv();
-extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c();
-extern "C" void __ct__14dBgS_ObjLinChkFv();
-extern "C" void __dt__14dBgS_ObjLinChkFv();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-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 GetTgHitObj__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
-extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
-extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo();
-extern "C" void checkNowWolfEyeUp__9daPy_py_cFv();
-extern "C" void dKy_daynight_check__Fv();
-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_darkworld_check__Fv();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __pl__4cXyzCFRC3Vec();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void atan2sX_Z__4cXyzCFv();
-extern "C" void atan2sY_XZ__4cXyzCFv();
-extern "C" void cM_atan2s__Fff();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGCylFRC4cXyz();
-extern "C" void SetH__8cM3dGCylFf();
-extern "C" void SetR__8cM3dGCylFf();
-extern "C" void SetC__8cM3dGSphFRC4cXyz();
-extern "C" void SetR__8cM3dGSphFf();
-extern "C" void cLib_addCalc2__FPffff();
-extern "C" void cLib_addCalc0__FPfff();
-extern "C" void cLib_addCalcAngleS2__FPssss();
-extern "C" void MtxPosition__FP4cXyzP4cXyz();
-extern "C" void func_802807E0();
-extern "C" void func_80280808();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void __ct__15Z2CreatureEnemyFv();
-extern "C" void init__15Z2CreatureEnemyFP3VecP3VecUcUc();
-extern "C" void setLinkSearch__15Z2CreatureEnemyFb();
-extern "C" void setEnemyName__15Z2CreatureEnemyFPCc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void checkPass__12J3DFrameCtrlFf();
-extern "C" void _savegpr_19();
-extern "C" void _savegpr_24();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_19();
-extern "C" void _restgpr_24();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
-extern "C" extern void* __vt__8dCcD_Sph[36];
-extern "C" extern void* __vt__8dCcD_Cyl[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_SphAttr[25];
-extern "C" extern void* __vt__12cCcD_CylAttr[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" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
-extern "C" u8 mCurrentMtx__6J3DSys[48];
-extern "C" u8 sincosTable___5JMath[65536];
-extern "C" u8 m_midnaActor__9daPy_py_c[4];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 806EA220-806EA224 00002C 0004+00 1/1 0/0 0/0 .rodata @3926 */
-SECTION_RODATA static f32 const lit_3926 = 6.0f / 5.0f;
-COMPILER_STRIP_GATE(0x806EA220, &lit_3926);
-
+namespace {
/* 806EA320-806EA364 000038 0044+00 0/1 0/0 0/0 .data cc_hp_src__22@unnamed@d_a_e_hp_cpp@
*/
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 data_806EA320[68] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
+static dCcD_SrcCyl cc_hp_src = {
+ {
+ {0, {{0x0, 0x0, 0x0}, {(s32)0xd8000000, 0x3}, 0x0}},
+ {dCcD_SE_13, 0, 0, 0, {0}},
+ {dCcD_SE_NONE, 0, 0, 0, {6}},
+ {0},
+ },
+ {
+ {0.0f, 0.0f, 0.0f},
+ 50.0f,
+ 300.0f,
+ }
};
-#pragma pop
/* 806EA364-806EA3A4 00007C 0040+00 0/1 0/0 0/0 .data cc_lamp_src__22@unnamed@d_a_e_hp_cpp@ */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 data_806EA364[64] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xD8, 0xFB, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x75, 0x0D, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
+static dCcD_SrcSph cc_lamp_src = {
+ {
+ {0x0, {{0x0, 0x0, 0x0}, {(s32)0xD8FBFDFF, 0x43}, 0x75}}, // mObj
+ {dCcD_SE_13, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
+ {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x6}, // mGObjTg
+ {0x0}, // mGObjCo
+ }, // mObjInf
+ {
+ {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph
+ } // mSphAttr
};
-#pragma pop
/* 806EA3A4-806EA3E8 0000BC 0044+00 0/1 0/0 0/0 .data cc_hp_at_src__22@unnamed@d_a_e_hp_cpp@ */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 data_806EA3A4[68] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
-};
-#pragma pop
-
-/* 806EA3E8-806EA3EC 000100 0004+00 1/1 0/0 0/0 .data particleNmaeDt$4030 */
-SECTION_DATA static u8 particleNmaeDt[4] = {
- 0x87,
- 0x89,
- 0x87,
- 0x8A,
-};
-
-/* 806EA3EC-806EA408 -00001 001C+00 1/1 0/0 0/0 .data @5058 */
-SECTION_DATA static void* lit_5058[7] = {
- (void*)(((char*)action__8daE_HP_cFv) + 0x7C), (void*)(((char*)action__8daE_HP_cFv) + 0x88),
- (void*)(((char*)action__8daE_HP_cFv) + 0x98), (void*)(((char*)action__8daE_HP_cFv) + 0xA4),
- (void*)(((char*)action__8daE_HP_cFv) + 0xB4), (void*)(((char*)action__8daE_HP_cFv) + 0xC0),
- (void*)(((char*)action__8daE_HP_cFv) + 0xCC),
-};
-
-/* 806EA408-806EA428 -00001 0020+00 1/0 0/0 0/0 .data l_daE_HP_Method */
-static actor_method_class l_daE_HP_Method = {
- (process_method_func)daE_HP_Create__FP8daE_HP_c,
- (process_method_func)daE_HP_Delete__FP8daE_HP_c,
- (process_method_func)daE_HP_Execute__FP8daE_HP_c,
- (process_method_func)daE_HP_IsDelete__FP8daE_HP_c,
- (process_method_func)daE_HP_Draw__FP8daE_HP_c,
-};
-
-/* 806EA428-806EA458 -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_HP */
-extern actor_process_profile_definition g_profile_E_HP = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_E_HP, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daE_HP_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 172, // mPriority
- &l_daE_HP_Method, // sub_method
- 0x00040100, // mStatus
- fopAc_ENEMY_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 806EA458-806EA464 000170 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,
-};
-
-/* 806EA464-806EA470 00017C 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,
-};
-
-/* 806EA470-806EA47C 000188 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,
-};
-
-/* 806EA47C-806EA488 000194 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,
-};
-
-/* 806EA488-806EA494 0001A0 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
-SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGCylFv,
-};
-
-/* 806EA494-806EA4A0 0001AC 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,
-};
-
-/* 806EA4A0-806EA4C4 0001B8 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_806E9DC4,
- (void*)NULL,
- (void*)NULL,
- (void*)func_806E9DBC,
-};
-
-/* 806EA4C4-806EA4D0 0001DC 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGPla */
-SECTION_DATA extern void* __vt__8cM3dGPla[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGPlaFv,
-};
-
-/* 806EA4D0-806EA4DC 0001E8 000C+00 2/2 0/0 0/0 .data __vt__12daE_HP_HIO_c */
-SECTION_DATA extern void* __vt__12daE_HP_HIO_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12daE_HP_HIO_cFv,
+static dCcD_SrcCyl cc_hp_at_src = {
+ {
+ {0, {{0x400, 0x1, 0xd}, {0x0, 0x0}, 0x0}},
+ {dCcD_SE_METAL, 0, 1, 0, {0}},
+ {dCcD_SE_NONE, 0, 0, 0, {2}},
+ {0},
+ },
+ {
+ {0.0f, 0.0f, 0.0f},
+ 50.0f,
+ 300.0f,
+ }
};
+} // namespace
/* 806E5DEC-806E5E30 0000EC 0044+00 1/1 0/0 0/0 .text __ct__12daE_HP_HIO_cFv */
daE_HP_HIO_c::daE_HP_HIO_c() {
- // NONMATCHING
+ mChild = -1;
+ modelSize = 1.2f;
+ waitTimeAfterAttack = 40;
+ resurrectionTime = 100;
+ attackDelayOnApproach = 50;
+ rangeDisplay = 0;
+}
+
+#if DEBUG
+void daE_HP_HIO_c::genMessage(JORMContext* ctx) {
+ // General-purpose Poe
+ ctx->genLabel("汎用ポゥ", 0x80000001, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
+ ctx->genSlider("モデルサイズ", &modelSize, 0.0, 10.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
+ ctx->genSlider("攻撃終了後待ち時間", &waitTimeAfterAttack, 0, 1000, 0, NULL, 0xffff, 0xffff,
+ 0x200, 0x18);
+ ctx->genSlider("復活時間", &resurrectionTime, 0, 1000, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
+ ctx->genSlider("接近後攻撃しない時間", &attackDelayOnApproach, 0, 0xfe, 0, NULL, 0xffff, 0xffff,
+ 0x200, 0x18);
+ ctx->genCheckBox("範囲表示(FINALでは不可)", &rangeDisplay, 1, 0, NULL, 0xffff, 0xffff, 0x200,
+ 0x18);
}
+#endif
/* 806E5E30-806E5ED0 000130 00A0+00 1/1 0/0 0/0 .text ctrlJoint__8daE_HP_cFP8J3DJointP8J3DModel */
-void daE_HP_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) {
- // NONMATCHING
+int daE_HP_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) {
+ J3DJoint* joint = i_joint;
+ s32 jointNo = joint->getJntNo();
+ mDoMtx_stack_c::copy(i_model->getAnmMtx(jointNo));
+
+ switch (jointNo) {
+ case 8:
+ mDoMtx_stack_c::XrotM(field_0x7aa);
+ break;
+ }
+
+ if (TREG_S(0) != 0 && jointNo == TREG_S(0)) {
+ mDoMtx_stack_c::XrotM(TREG_S(1));
+ mDoMtx_stack_c::YrotM(TREG_S(2));
+ mDoMtx_stack_c::ZrotM(TREG_S(3));
+ }
+
+ i_model->setAnmMtx(jointNo, mDoMtx_stack_c::get());
+ cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
+
+ return 1;
}
/* 806E5ED0-806E5F1C 0001D0 004C+00 1/1 0/0 0/0 .text JointCallBack__8daE_HP_cFP8J3DJointi */
-void daE_HP_c::JointCallBack(J3DJoint* param_0, int param_1) {
- // NONMATCHING
+int daE_HP_c::JointCallBack(J3DJoint* i_joint, int param_1) {
+ if (param_1 == NULL) {
+ J3DModel* model = j3dSys.getModel();
+ daE_HP_c* poe = (daE_HP_c*)model->getUserArea();
+ if (poe != NULL) {
+ poe->ctrlJoint(i_joint, model);
+ }
+ }
+
+ return 1;
}
/* 806E5F1C-806E5FCC 00021C 00B0+00 1/1 0/0 0/0 .text
* LampCtrlJoint__8daE_HP_cFP8J3DJointP8J3DModel */
-void daE_HP_c::LampCtrlJoint(J3DJoint* param_0, J3DModel* param_1) {
- // NONMATCHING
+int daE_HP_c::LampCtrlJoint(J3DJoint* i_joint, J3DModel* i_model) {
+ J3DJoint* joint = i_joint;
+ s32 jointNo = joint->getJntNo();
+
+ mDoMtx_stack_c::copy(i_model->getAnmMtx(jointNo));
+
+ switch (jointNo) {
+ case 2:
+ mDoMtx_stack_c::XrotM(field_0x76c.x);
+ mDoMtx_stack_c::ZrotM(field_0x76c.z);
+ }
+
+ if (TREG_S(0) != 0 && jointNo == (s32)TREG_S(0)) {
+ mDoMtx_stack_c::XrotM(TREG_S(1));
+ mDoMtx_stack_c::YrotM(TREG_S(2));
+ mDoMtx_stack_c::ZrotM(TREG_S(3));
+ }
+
+ i_model->setAnmMtx(jointNo, mDoMtx_stack_c::get());
+ cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
+
+ return 1;
}
/* 806E5FCC-806E6018 0002CC 004C+00 1/1 0/0 0/0 .text LampJointCallBack__8daE_HP_cFP8J3DJointi */
-void daE_HP_c::LampJointCallBack(J3DJoint* param_0, int param_1) {
- // NONMATCHING
+int daE_HP_c::LampJointCallBack(J3DJoint* i_joint, int param_1) {
+ if (param_1 == NULL) {
+ J3DModel* model = j3dSys.getModel();
+ daE_HP_c* poe = (daE_HP_c*)model->getUserArea();
+ if (poe != NULL) {
+ poe->LampCtrlJoint(i_joint, model);
+ }
+ }
+
+ return 1;
}
-/* ############################################################################################## */
-/* 806EA224-806EA228 000030 0004+00 0/1 0/0 0/0 .rodata @4178 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4178 = 600.0f;
-COMPILER_STRIP_GATE(0x806EA224, &lit_4178);
-#pragma pop
-
-/* 806EA228-806EA22C 000034 0004+00 0/3 0/0 0/0 .rodata @4179 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4179 = 30.0f;
-COMPILER_STRIP_GATE(0x806EA228, &lit_4179);
-#pragma pop
-
-/* 806EA22C-806EA230 000038 0004+00 0/1 0/0 0/0 .rodata @4180 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4180 = -20.0f;
-COMPILER_STRIP_GATE(0x806EA22C, &lit_4180);
-#pragma pop
-
-/* 806EA230-806EA234 00003C 0004+00 0/1 0/0 0/0 .rodata @4181 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4181 = 40.0f;
-COMPILER_STRIP_GATE(0x806EA230, &lit_4181);
-#pragma pop
-
-/* 806EA234-806EA238 000040 0004+00 0/4 0/0 0/0 .rodata @4182 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4182 = 7.0f / 10.0f;
-COMPILER_STRIP_GATE(0x806EA234, &lit_4182);
-#pragma pop
-
-/* 806EA238-806EA23C 000044 0004+00 0/1 0/0 0/0 .rodata @4183 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4183 = 4.0f;
-COMPILER_STRIP_GATE(0x806EA238, &lit_4183);
-#pragma pop
-
/* 806EA4E8-806EA4EC 000008 0004+00 2/2 0/0 0/0 .bss None */
-static u8 data_806EA4E8[4];
-
-/* 806EA4EC-806EA4F8 00000C 000C+00 1/1 0/0 0/0 .bss @3921 */
-static u8 lit_3921[12];
+static bool l_HIOInit;
/* 806EA4F8-806EA50C 000018 0014+00 9/9 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[20];
+static daE_HP_HIO_c l_HIO;
/* 806E6018-806E64F4 000318 04DC+00 1/1 0/0 0/0 .text draw__8daE_HP_cFv */
-void daE_HP_c::draw() {
- // NONMATCHING
+int daE_HP_c::draw() {
+ /* 806EA3E8-806EA3EC 000100 0004+00 1/1 0/0 0/0 .data particleNmaeDt$4030 */
+ static u16 particleNmaeDt[2] = {
+ 0x8789,
+ 0x878A,
+ };
+
+ if (field_0x77c != 0xff && fopAcM_isSwitch(this, field_0x77c) == 0) {
+ return 1;
+ }
+
+ if (mNight == 1 && !dKy_daynight_check()) {
+ return 1;
+ }
+
+ if (attention_info.distances[fopAc_attn_BATTLE_e] == 0) {
+ attention_info.distances[fopAc_attn_BATTLE_e] = 0x04;
+ fopAcM_SetGroup(this, 2);
+ fopAcM_OnStatus(this, 0);
+ attention_info.flags = attention_info.flags | 4;
+ }
+
+ J3DModel* model = mpMorfSO->getModel();
+ g_env_light.settingTevStruct(0, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(model, &tevStr);
+
+ J3DModelData* modelData = model->getModelData();
+ for (u16 i = 0; i < modelData->getMaterialNum(); i++) {
+ J3DMaterial* material = modelData->getMaterialNodePointer(i);
+ if (material != NULL) {
+ material->getTevKColor(3)->a = field_0x790;
+ }
+ }
+
+ if (mAction == 6 || field_0x790 && (!dComIfGp_event_runCheck() ||
+ fopAcM_getTalkEventPartner(dComIfGp_getLinkPlayer()) !=
+ daPy_py_c::getMidnaActor()))
+ {
+ mInvModel.entryDL(0);
+ } else {
+ field_0x790 = 0.0f;
+ }
+
+ g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
+
+ mDoExt_modelUpdateDL(mpModel);
+
+ cXyz curPosWithOffset;
+ curPosWithOffset.set(current.pos.x, current.pos.y + 100.0f, current.pos.z);
+
+ field_0x718 =
+ dComIfGd_setShadow(field_0x718, 1, mpModel, &curPosWithOffset, 600.0f + BREG_F(0x12),
+ BREG_F(0x13), current.pos.y, mObjAcch.GetGroundH(), mObjAcch.m_gnd,
+ &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
+
+ cXyz unkXyz1;
+ mDoMtx_stack_c::copy(mpModel->getAnmMtx(2));
+ unkXyz1.set(30.0f + JREG_F(10), 0.0f, 0.0f);
+ mDoMtx_stack_c::multVec(&unkXyz1, &field_0x75c);
+ mDoMtx_stack_c::transS(field_0x75c);
+
+ unkXyz1 = dComIfGp_getCamera(0)->lookat.eye - field_0x75c;
+ mDoMtx_stack_c::YrotM(unkXyz1.atan2sX_Z());
+ mDoMtx_stack_c::XrotM((s16)unkXyz1.atan2sY_XZ());
+ mDoMtx_stack_c::scaleM(l_HIO.modelSize, l_HIO.modelSize, l_HIO.modelSize);
+
+ model = mpMorf->getModel();
+ model->setBaseTRMtx(mDoMtx_stack_c::get());
+ mpMorf->modelCalc();
+
+ mDoMtx_stack_c::copy(mpModel->getAnmMtx(2));
+ mDoMtx_stack_c::multVecZero(&unkXyz1);
+
+ for (s32 i = 0; i < 2; i++) {
+ field_0xdd4[i] = dComIfGp_particle_set(field_0xdd4[i], particleNmaeDt[i], &unkXyz1, 0, 0);
+ JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(field_0xdd4[i]);
+ if (emitter != NULL) {
+ emitter->setGlobalRTMatrix(mpModel->getAnmMtx(2));
+ }
+ }
+
+ mpMorf->getModel();
+ mpMorf->entryDL();
+
+ if (checkDownFlg()) {
+ cXyz local_50;
+ cXyz cStack_5c;
+ cMtx_YrotS(*calc_mtx, shape_angle.y);
+ local_50.x = 0.0f;
+ local_50.y = field_0x7a0;
+ local_50.z = -20.0f + JREG_F(1);
+ MtxPosition(&local_50, &cStack_5c);
+ field_0x738 = cStack_5c + current.pos;
+ setDownPos(&field_0x738);
+ cLib_addCalc2(&field_0x7a0, 40.0f + JREG_F(2), 0.7, JREG_F(7) + 4.0f);
+ }
+
+ daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
+ if (!player->checkWolfDownAttackPullOut() && mAction != 6) {
+ drawBallModel(&tevStr);
+ }
+
+#if DEBUG
+ if (WREG_S(0) != 0 || l_HIO.rangeDisplay != 0) {
+ cXyz cStack_68;
+ GXColor color;
+ color.r = 0xff;
+ color.g = 0x82;
+ color.b = 0x82;
+ color.a = 0xfa;
+ dDbVw_drawCircleXlu(home.pos, mDisHani, color, 1, 0xc);
+ }
+#endif
+
+ return 1;
}
/* 806E64F4-806E6514 0007F4 0020+00 1/0 0/0 0/0 .text daE_HP_Draw__FP8daE_HP_c */
-static void daE_HP_Draw(daE_HP_c* param_0) {
- // NONMATCHING
+static int daE_HP_Draw(daE_HP_c* param_0) {
+ return param_0->draw();
}
-/* ############################################################################################## */
-/* 806EA23C-806EA240 000048 0004+00 1/1 0/0 0/0 .rodata @4196 */
-SECTION_RODATA static f32 const lit_4196 = -1.0f;
-COMPILER_STRIP_GATE(0x806EA23C, &lit_4196);
-
-/* 806EA2CC-806EA2CC 0000D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_806EA2CC = "E_HP";
-#pragma pop
-
/* 806E6514-806E65C0 000814 00AC+00 6/6 0/0 0/0 .text setBck__8daE_HP_cFiUcff */
void daE_HP_c::setBck(int param_0, u8 param_1, f32 param_2, f32 param_3) {
- // NONMATCHING
+ mpMorfSO->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_HP", param_0), param_1, param_2,
+ param_3, 0.0f, -1.0f);
+ field_0x780 = param_0;
}
/* 806E65C0-806E65CC 0008C0 000C+00 9/9 0/0 0/0 .text setActionMode__8daE_HP_cFii */
-void daE_HP_c::setActionMode(int param_0, int param_1) {
- // NONMATCHING
+void daE_HP_c::setActionMode(int param_0, int i_mode) {
+ mAction = param_0;
+ movemode = i_mode;
}
/* 806E65CC-806E673C 0008CC 0170+00 4/4 0/0 0/0 .text mChkDistance__8daE_HP_cFf */
-void daE_HP_c::mChkDistance(f32 param_0) {
- // NONMATCHING
+bool daE_HP_c::mChkDistance(f32 param_0) {
+ cXyz vecToPlayer = dComIfGp_getPlayer(0)->current.pos - current.pos;
+ if (vecToPlayer.abs() < param_0) {
+ return true;
+ } else {
+ return false;
+ }
}
-/* ############################################################################################## */
-/* 806EA240-806EA244 00004C 0004+00 1/1 0/0 0/0 .rodata @4301 */
-SECTION_RODATA static f32 const lit_4301 = 250.0f;
-COMPILER_STRIP_GATE(0x806EA240, &lit_4301);
-
/* 806E673C-806E6948 000A3C 020C+00 1/1 0/0 0/0 .text damage_check__8daE_HP_cFv */
void daE_HP_c::damage_check() {
- // NONMATCHING
-}
+ if (health <= 1 || !daPy_py_c::checkNowWolf() || field_0x71e != 0 || field_0x790 < 250.0f ||
+ mAction == 5 || mAction == 6)
+ {
+ return;
+ }
+
+ cXyz cStack_1c;
+ mDoMtx_stack_c::copy(mpMorfSO->getModel()->getAnmMtx(1));
+ mDoMtx_stack_c::multVecZero(&cStack_1c);
+
+ scale.set(l_HIO.modelSize, l_HIO.modelSize, l_HIO.modelSize);
+
+ setMidnaBindEffect(this, &mSound1, &cStack_1c, &scale);
+
+ mStts.Move();
-/* ############################################################################################## */
-/* 806EA244-806EA248 000050 0004+00 0/5 0/0 0/0 .rodata @4367 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4367 = 3.0f;
-COMPILER_STRIP_GATE(0x806EA244, &lit_4367);
-#pragma pop
+ if (mCyl1.ChkTgHit()) {
+ csXyz unkSXyz;
+ cXyz unkXyz1;
+ cXyz unkXyz2;
-/* 806EA248-806EA24C 000054 0004+00 0/2 0/0 0/0 .rodata @4368 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4368 = 5.0f;
-COMPILER_STRIP_GATE(0x806EA248, &lit_4368);
-#pragma pop
+ mAtInfo.mpCollider = mCyl1.GetTgHitObj();
+ mAtInfo.field_0x18 = 31;
+ cc_at_check(this, &mAtInfo);
+
+ unkXyz1 = current.pos - *mCyl1.GetTgHitPosP();
+ unkXyz2.set(*mCyl1.GetTgHitPosP());
+ unkSXyz.x = 0;
+ unkSXyz.y = (s32)unkXyz1.atan2sX_Z();
+ unkSXyz.z = 0;
+ dComIfGp_setHitMark(3, this, &unkXyz2, &unkSXyz, NULL, 0);
+
+ field_0x71e = 8;
+
+ mCyl1.ClrTgHit();
+
+ if (health > 1) {
+ setActionMode(4, 0);
+ } else {
+ health = 0;
+
+ setActionMode(5, 0);
+ }
+ }
+}
/* 806E6948-806E6C74 000C48 032C+00 1/1 0/0 0/0 .text executeWait__8daE_HP_cFv */
void daE_HP_c::executeWait() {
- // NONMATCHING
-}
+ fopAc_ac_c* player = dComIfGp_getPlayer(0);
+ cXyz homeToPlayer;
+
+ switch (movemode) {
+ case 0:
+ mStts.SetWeight(250);
+ setBck(13, 2, 3.0f, 1.0f);
+
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_LAUGH, -1);
+
+ movemode = 1;
+ case 1:
+ homeToPlayer = home.pos - player->current.pos;
+ if (homeToPlayer.abs() < mDisHani) {
+ mStts.SetWeight(100);
+
+ setActionMode(1, 0);
+ }
+
+ break;
+ case 10:
+ mStts.SetWeight(100);
+ setBck(10, 0, 3.0f, 1.0f);
+
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_FOUND, -1);
+
+ movemode++;
+
+ break;
+ case 11:
+ if (mpMorfSO->isStop()) {
+ setActionMode(1, 0);
+ }
-/* ############################################################################################## */
-/* 806EA24C-806EA250 000058 0004+00 0/2 0/0 0/0 .rodata @4418 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4418 = 10.0f;
-COMPILER_STRIP_GATE(0x806EA24C, &lit_4418);
-#pragma pop
-
-/* 806EA250-806EA254 00005C 0004+00 0/4 0/0 0/0 .rodata @4419 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4419 = 20.0f;
-COMPILER_STRIP_GATE(0x806EA250, &lit_4419);
-#pragma pop
-
-/* 806EA254-806EA258 000060 0004+00 0/4 0/0 0/0 .rodata @4420 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4420 = 300.0f;
-COMPILER_STRIP_GATE(0x806EA254, &lit_4420);
-#pragma pop
+ break;
+ case 100:
+ field_0x71c = 40;
+
+ setBck(0xd, 0x02, 3.0f, 1.0f);
+
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_LAUGH, -1);
+
+ movemode++;
+ case 101:
+ if (field_0x71c == 0) {
+ setActionMode(2, 0);
+ }
+
+ break;
+ }
+
+ cLib_addCalc0(&speedF, 0.7f, 5.0f);
+}
/* 806E6C74-806E6ED8 000F74 0264+00 1/1 0/0 0/0 .text executeMove__8daE_HP_cFv */
void daE_HP_c::executeMove() {
- // NONMATCHING
+ cXyz vecToHome;
+ switch (movemode) {
+ case 0:
+ field_0x71f = 0;
+ setBck(12, 2, 10.0f, 1.0f);
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_LAUGH, -1);
+ movemode = 1;
+ case 1:
+ speedF = 20.0f + NREG_F(5);
+ vecToHome = home.pos - current.pos;
+ if (vecToHome.abs() > mDisHani) {
+ setActionMode(0, 100);
+ } else {
+ if (mChkDistance(300.0f + NREG_F(7))) {
+ if (!daPy_py_c::checkNowWolfPowerUp()) {
+ field_0x71f++;
+ if (field_0x71f < l_HIO.attackDelayOnApproach) {
+ speedF = 0.0f;
+ break;
+ }
+ }
+
+ setActionMode(3, 0);
+ }
+ }
+
+ break;
+ }
+
+ cLib_addCalcAngleS2(&current.angle.y, fopAcM_searchPlayerAngleY(this), 4, 0x800);
}
-/* ############################################################################################## */
-/* 806EA258-806EA25C 000064 0004+00 0/1 0/0 0/0 .rodata @4493 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4493 = 0.5f;
-COMPILER_STRIP_GATE(0x806EA258, &lit_4493);
-#pragma pop
-
/* 806E6ED8-806E7228 0011D8 0350+00 1/1 0/0 0/0 .text executeRetMove__8daE_HP_cFv */
void daE_HP_c::executeRetMove() {
- // NONMATCHING
+ cXyz vecToHome;
+
+ switch (movemode) {
+ case 0:
+ field_0x71f = 0;
+ setBck(12, 2, 3.0f, 1.0f);
+
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_LAUGH, -1);
+
+ movemode = 1;
+ case 1:
+ speedF = 20.0f + NREG_F(6);
+
+ vecToHome = home.pos - current.pos;
+ vecToHome.y = 0.0f;
+
+ if (vecToHome.abs() < mDisHani * 0.5f && mChkDistance(300.0f + NREG_F(7)) != 0) {
+ if (daPy_py_c::checkNowWolfPowerUp() == 0) {
+ field_0x71f++;
+ if (field_0x71f < l_HIO.attackDelayOnApproach) {
+ speedF = 0.0f;
+
+ break;
+ }
+ }
+ setActionMode(3, 0);
+ } else {
+ current.angle.y = (s16)vecToHome.atan2sX_Z();
+
+ if (vecToHome.abs() < 20.0f) {
+ setActionMode(0, 0);
+ }
+ }
+
+ break;
+ }
}
-/* ############################################################################################## */
-/* 806EA25C-806EA260 000068 0004+00 0/1 0/0 0/0 .rodata @4562 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4562 = 32.0f;
-COMPILER_STRIP_GATE(0x806EA25C, &lit_4562);
-#pragma pop
-
/* 806E7228-806E7574 001528 034C+00 1/1 0/0 0/0 .text executeAttack__8daE_HP_cFv */
void daE_HP_c::executeAttack() {
- // NONMATCHING
+ cXyz vecToHome;
+ switch (movemode) {
+ case 0:
+ current.angle.y = fopAcM_searchPlayerAngleY(this);
+ speedF = 20.0f + NREG_F(10);
+ setBck(5, 0, 3.0f, 1.0f);
+
+ movemode++;
+
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_ATTACK, -1);
+
+ field_0x71c = 1;
+
+ break;
+ case 1:
+ if (mpMorfSO->checkFrame(20.0f) || mpMorfSO->checkFrame(32.0f)) {
+ mSound1.startCreatureSound(Z2SE_EN_HP_SWING, 0, -1);
+ }
+
+ if (mpMorfSO->isStop()) {
+ setBck(14, 2, 3.0f, 1.0f);
+
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_LAUGH, -1);
+
+ field_0x71c = l_HIO.waitTimeAfterAttack;
+
+ movemode++;
+ }
+
+ break;
+ case 2:
+ if (field_0x71c == 0) {
+ if (!mChkDistance(300.0f + NREG_F(7))) {
+ setActionMode(1, 0);
+ } else {
+ movemode = 0;
+ }
+
+ vecToHome = home.pos - current.pos;
+ if (vecToHome.abs() > mDisHani) {
+ setActionMode(0, 100);
+ }
+ }
+ break;
+ }
+
+ cLib_addCalc0(&speedF, 0.7f, 1.0f);
+ cLib_addCalcAngleS2(&shape_angle.y, current.angle.y, 1, 0x1000);
}
/* 806E7574-806E77C0 001874 024C+00 1/1 0/0 0/0 .text executeDamage__8daE_HP_cFv */
void daE_HP_c::executeDamage() {
- // NONMATCHING
+ switch (movemode) {
+ case 0: {
+ field_0x789 = 1;
+ setBck(6, 0, 3.0f, 1.0f);
+
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_DAMAGE, -1);
+
+ movemode = 1;
+
+ break;
+ }
+ case 1: {
+ if (mpMorfSO->isStop()) {
+ cXyz vecToHome;
+ if (mChkDistance(300.0f + NREG_F(7))) {
+ setActionMode(3, 0);
+ } else {
+ setActionMode(1, 0);
+ }
+
+ vecToHome = home.pos - current.pos;
+ if (vecToHome.abs() > mDisHani) {
+ setActionMode(0, 100);
+ }
+ }
+
+ break;
+ }
+ }
+
+ cLib_addCalc0(&speedF, 0.7f, 5.0f);
}
-/* ############################################################################################## */
-/* 806EA260-806EA264 00006C 0004+00 0/3 0/0 0/0 .rodata @4781 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4781 = 200.0f;
-COMPILER_STRIP_GATE(0x806EA260, &lit_4781);
-#pragma pop
-
-/* 806EA264-806EA268 000070 0004+00 0/1 0/0 0/0 .rodata @4782 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4782 = 0x42424925;
-COMPILER_STRIP_GATE(0x806EA264, &lit_4782);
-#pragma pop
-
-/* 806EA268-806EA26C 000074 0004+00 0/3 0/0 0/0 .rodata @4783 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4783 = 170.0f;
-COMPILER_STRIP_GATE(0x806EA268, &lit_4783);
-#pragma pop
-
-/* 806EA26C-806EA270 000078 0004+00 0/2 0/0 0/0 .rodata @4784 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4784 = 1000.0f;
-COMPILER_STRIP_GATE(0x806EA26C, &lit_4784);
-#pragma pop
-
-/* 806EA270-806EA274 00007C 0004+00 0/1 0/0 0/0 .rodata @4785 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4785 = 4.0f / 5.0f;
-COMPILER_STRIP_GATE(0x806EA270, &lit_4785);
-#pragma pop
-
-/* 806EA274-806EA27C 000080 0004+04 0/3 0/0 0/0 .rodata @4786 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4786[1 + 1 /* padding */] = {
- 2000.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x806EA274, &lit_4786);
-#pragma pop
-
-/* 806EA27C-806EA284 000088 0008+00 0/2 0/0 0/0 .rodata @4788 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4788[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x806EA27C, &lit_4788);
-#pragma pop
-
/* 806E77C0-806E7E94 001AC0 06D4+00 1/1 0/0 0/0 .text executeDown__8daE_HP_cFv */
void daE_HP_c::executeDown() {
- // NONMATCHING
+ fopAc_ac_c* player = dComIfGp_getPlayer(0);
+ dBgS_LinChk dStack_98;
+ cXyz unkXyz1;
+ cXyz cStack_b0;
+
+ s16 latDist;
+ switch (movemode) {
+ case 0: {
+ field_0x7a4 = 0.0f;
+ field_0x7a8 = 0;
+ field_0x768 = 0.0f;
+ field_0x789 = 1;
+
+ unkXyz1 = home.pos - current.pos;
+ latDist = unkXyz1.atan2sX_Z();
+ cMtx_YrotS(*calc_mtx, latDist + 0x8000);
+
+ unkXyz1.x = 0.0f;
+ unkXyz1.y = 100.0f;
+ unkXyz1.z = 200.0f;
+ MtxPosition(&unkXyz1, &cStack_b0);
+ unkXyz1.set(current.pos);
+ unkXyz1.y += field_0x7a4;
+ cStack_b0 += current.pos;
+ cStack_b0.y += field_0x7a4;
+ field_0x720.set(cStack_b0);
+
+ dStack_98.Set(&unkXyz1, &cStack_b0, this);
+ if (dComIfG_Bgsp().LineCross(&dStack_98)) {
+ current.angle.y = latDist;
+ speedF = 10.0f;
+ }
+
+ if (daPy_getPlayerActorClass()->checkWolfLock(this)) {
+ daPy_getPlayerActorClass()->cancelWolfLock(this);
+ }
+ onWolfNoLock();
+
+ field_0x78a = 0;
+ speed.y = NREG_F(8) + 20.0f;
+ setBck(8, 0, 3.0f, 1.0f);
+
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_DOWN, -1);
+
+ movemode = 1;
+ break;
+ }
+ case 1: {
+ if (field_0x780 == 9 && mpMorfSO->isStop()) {
+ field_0x7a0 = 0.0f;
+ field_0x71d = 7 + BREG_S(7);
+ field_0x71c = (u8)l_HIO.resurrectionTime;
+ setBck(15, 2, 3.0f, 1.0f);
+ movemode = 10;
+ } else if (field_0x780 == 8 && mpMorfSO->isStop()) {
+ setBck(9, 0, 3.0f, 1.0f);
+ }
+ break;
+ }
+ case 10: {
+ onDownFlg();
+ if (checkWolfDownPullFlg()) {
+ setBck(7, 0, 3.0f, 1.0f);
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_DEAD, -1);
+ field_0x71c = 0x1f;
+ offDownFlg();
+ setActionMode(6, 0);
+ } else {
+ if (field_0x71c == 0) {
+ offDownFlg();
+ setBck(0xb, 0, 3.0f, 1.0f);
+ mSound1.startCreatureVoice(Z2SE_EN_HP_V_RETURN, -1);
+ mStts.SetWeight(100);
+ movemode = this->movemode + 1;
+ }
+ }
+ break;
+ }
+ case 11: {
+ cLib_addCalcAngleS2(&field_0x772.x, 0, 4, 0x100);
+ cLib_addCalcAngleS2(&field_0x772.z, 0, 4, 0x100);
+ if ((s32)mpMorfSO->getFrame() >= 16 && (s32)mpMorfSO->getFrame() <= 23) {
+ field_0x7a4 += (170.0f + JREG_F(0)) / 7.0f * (2.0f + JREG_F(3));
+ if (field_0x7a4 > 170.0f + JREG_F(0)) {
+ field_0x7a4 = 170.0f + JREG_F(0);
+ }
+ cLib_addCalcAngleS2(&field_0x76c.z, -0x4000 + JREG_S(0), 1, 0x1000);
+ } else {
+ if ((s32)mpMorfSO->getFrame() >= 28) {
+ field_0x7a8++;
+ cLib_addCalcAngleS2(&field_0x76c.z, 0, 4, 0x400);
+ }
+ }
+
+ cLib_addCalc2(&field_0x768,
+ field_0x7a4 +
+ (20.0f + NREG_F(4)) * (cM_ssin((f32)field_0x7a8 * (1000.0f + NREG_F(3)))),
+ 0.8f, 10.0f);
+ if (mpMorfSO->isStop()) {
+ health = 40;
+
+ offWolfNoLock();
+
+ field_0x772.x = 0;
+ field_0x772.z = 0;
+
+ unkXyz1 = home.pos - current.pos;
+ latDist = unkXyz1.atan2sX_Z();
+ cMtx_YrotS(*calc_mtx, latDist);
+
+ unkXyz1.x = 0.0f;
+ unkXyz1.y = 100.0f;
+ unkXyz1.z = 2000.0f;
+ MtxPosition(&unkXyz1, &cStack_b0);
+
+ unkXyz1.set(current.pos);
+ unkXyz1.y += field_0x7a4;
+ cStack_b0 += current.pos;
+ cStack_b0.y += field_0x7a4;
+ field_0x720.set(cStack_b0);
+ dStack_98.OnBackFlag();
+ dStack_98.Set(&unkXyz1, &cStack_b0, this);
+
+ if (dComIfG_Bgsp().LineCross(&dStack_98)) {
+ setActionMode(2, 0);
+ } else {
+ setActionMode(1, 0);
+ }
+ }
+ }
+ }
+
+ if (movemode <= 2) {
+ cLib_addCalcAngleS2(&(field_0x76c).z, -0x4a38, 2, 0x800);
+ }
}
-/* ############################################################################################## */
-/* 806EA2CC-806EA2CC 0000D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_806EA2D1 = "DEFAULT_GETITEM";
-#pragma pop
-
/* 806E7E94-806E814C 002194 02B8+00 1/1 0/0 0/0 .text executeDead__8daE_HP_cFv */
+// NONMATCHING - g_dComIfG_gameInfo loading
void daE_HP_c::executeDead() {
- // NONMATCHING
+ if (field_0x78d == 0 && field_0x71c == 1) {
+ mSound1.startCreatureSound(Z2SE_EN_PO_SOUL_PULLOUT, 0, -1);
+ mSound1.startCollisionSE(0x40003, 0x20);
+ field_0x78d = 1;
+ }
+
+ switch (movemode) {
+ case 0: {
+ field_0x789 = 0x01;
+ if (field_0x71c > 1) {
+ return;
+ }
+
+ if (bitSw != 0xff) {
+ fopAcM_onSwitch(this, bitSw);
+ }
+
+ dComIfGs_addPohSpiritNum();
+
+ field_0x784 = -1;
+
+ if (dComIfGs_getPohSpiritNum() == 20) {
+ dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1c9]);
+ }
+
+ movemode++;
+ }
+ case 1: {
+ if (dComIfGp_event_runCheck() != FALSE) {
+ if (eventInfo.checkCommandDemoAccrpt()) {
+ if (dComIfGp_getEventManager().endCheck(field_0x778)) {
+ dComIfGp_event_reset();
+ } else if (strcmp(dComIfGp_getEventManager().getRunEventName(),
+ "DEFAULT_GETITEM") == 0 &&
+ field_0x784 != -1)
+ {
+ dComIfGp_event_setTalkPartner(NULL);
+ dComIfGp_event_setItemPartnerId(field_0x784);
+
+ field_0x784 = -1;
+ field_0x788 = 1;
+ }
+ }
+ } else if (field_0x788 != 0) {
+ fopAcM_createDisappear(this, &current.pos, 8, 3, 0xff);
+ fopAcM_delete(this);
+ } else {
+ if (field_0x784 == -1) {
+ field_0x784 = fopAcM_createItemForPresentDemo(&current.pos, fpcNm_ITEM_POU_SPIRIT, 0, -1,
+ -1, 0, 0);
+ }
+
+ if (fopAcM_IsExecuting(field_0x784)) {
+ fopAc_ac_c* player = dComIfGp_getPlayer(0);
+ if (player->eventInfo.chkCondition(8)) {
+ field_0x778 =
+ dComIfGp_getEventManager().getEventIdx(this, "DEFAULT_GETITEM", 0xff);
+ fopAcM_orderOtherEventId(this, field_0x778, 0xff, 0xffff, 6, 1);
+ }
+ }
+ }
+
+ break;
+ }
+ }
}
-/* ############################################################################################## */
-/* 806EA2CC-806EA2CC 0000D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_806EA2E1 = "E_hp";
-#pragma pop
-
/* 806E814C-806E8978 00244C 082C+00 2/1 0/0 0/0 .text action__8daE_HP_cFv */
void daE_HP_c::action() {
- // NONMATCHING
-}
-
-/* 806E8978-806E89C0 002C78 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGPlaFv */
-// cM3dGPla::~cM3dGPla() {
-extern "C" void __dt__8cM3dGPlaFv() {
- // NONMATCHING
+ s16 angleDiff = 0;
+ s32 unkFlag1 = 0;
+
+ if (field_0x78b != 0) {
+ field_0x78b = 0;
+ mSound1.setEnemyName("E_hp");
+ }
+
+ damage_check();
+
+ switch (mAction) {
+ case 0:
+ executeWait();
+ break;
+ case 1:
+ executeMove();
+ unkFlag1 = 1;
+ break;
+ case 2:
+ executeRetMove();
+ break;
+ case 3:
+ executeAttack();
+ unkFlag1 = 1;
+ break;
+ case 4:
+ executeDamage();
+ break;
+ case 5:
+ executeDown();
+ break;
+ case 6:
+ executeDead();
+ break;
+ }
+
+ if (checkBallModelDraw()) {
+ mSound2.startCreatureSoundLevel(Z2SE_EN_PO_SOUL, 0, -1);
+ }
+
+ if (field_0x780 == 12 || field_0x780 == 13 || field_0x780 == 14) {
+ mSound1.startCreatureSoundLevel(Z2SE_EN_HP_MOVE, 0, -1);
+ }
+
+ daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
+ if (mObjAcch.GetGroundH() != -1000000000.0f) {
+ if (arg0 != 2 || mAction == 5 || mAction == 6) {
+ gravity = -3.0f;
+ if ((mAction == 5 && field_0x780 == 9 || mAction == 6) && mObjAcch.ChkGroundHit()) {
+ dBgS_ObjLinChk linChk;
+ cM3dGPla plane;
+ dComIfG_Bgsp().GetTriPla(mObjAcch.m_gnd, &plane);
+
+ cXyz* planeNormal = plane.GetNP();
+ mStts.SetWeight(250);
+
+ speedF = 0.0f;
+
+ if (field_0x780 == 9 && field_0x78a == 0) {
+ Z2GetAudioMgr()->seStart(0x70523, &field_0x744, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
+ 0);
+ field_0x78a = 0x01;
+ }
+
+ field_0x772.x = -cM_atan2s(planeNormal->z, planeNormal->y);
+ field_0x772.z = cM_atan2s(planeNormal->x, planeNormal->y);
+ }
+ } else if (mAction != 1 && mAction != 3) {
+ gravity = 0.0f;
+ cLib_addCalc2(&current.pos.y, home.pos.y, 0.8f, 10.0f + BREG_F(17));
+ } else {
+ cLib_addCalc2(&current.pos.y, player->current.pos.y, 0.8f, 10.0f + BREG_F(17));
+ }
+ } else {
+ gravity = 0.0f;
+ speed.y = 0.0f;
+
+ if (field_0x72c.y < home.pos.y) {
+ cLib_addCalc2(&(field_0x72c).y, home.pos.y, 0.8f, 10.0f + BREG_F(17));
+ }
+
+ current.pos.y = (field_0x72c).y;
+ }
+ if (mAction != 5 && mAction != 6) {
+ if (JREG_F(0)) {
+ field_0x7a4 = 170.0f + JREG_F(0);
+ }
+ field_0x7a8++;
+ }
+
+ fopAcM_posMoveF(this, mStts.GetCCMoveP());
+
+ cXyz unkXyz1;
+
+ mObjAcch.SetWallNone();
+ mAcchCir.SetWall(30.0f + BREG_F(1), 60.0f + BREG_F(2));
+
+ field_0x768 =
+ field_0x7a4 + (20.0f + NREG_F(4)) * cM_ssin((f32)field_0x7a8 * (1000.0f + NREG_F(3)));
+
+ if (mObjAcch.GetGroundH() != -1000000000.0f) {
+ field_0x72c.y = mObjAcch.GetGroundH();
+ }
+
+ mObjAcch.SetGroundUpY(BREG_F(5));
+ mObjAcch.CrrPos(dComIfG_Bgsp());
+
+ if (arg0 != 0x02 || mAction == 5 || mAction == 6) {
+ if (field_0x72c.y + 5.0f + BREG_F(6) < current.pos.y) {
+ current.pos.y = (field_0x72c).y;
+ }
+ }
+
+ if (mAction != 3) {
+ cLib_addCalcAngleS2(&shape_angle.y, current.angle.y, 8, 0x800);
+ }
+
+ if (daPy_py_c::checkNowWolfPowerUp() || mAction == 5) {
+ if (field_0x789 == 0) {
+ unkXyz1 = home.pos - player->current.pos;
+ if (unkXyz1.abs() < mDisHani) {
+ setActionMode(0, 10);
+ field_0x789 = 1;
+ }
+ }
+ field_0x794 = 255.0f;
+ } else {
+ field_0x794 = 0.0f;
+ }
+
+ cLib_addCalc2(&field_0x790, field_0x794, 1.0f, 60.0f);
+
+ if (BREG_S(9) != 0) {
+ OS_REPORT("mAction %d\n", mAction);
+ OS_REPORT("movemode %d\n", movemode);
+ }
+
+ if (BREG_S(8) != 0) {
+ field_0x790 = 255.0f;
+ }
+
+ if (field_0x790 > 250.0f) {
+ unkXyz1 = home.pos - player->current.pos;
+ fopAcM_OnStatus(this, 0);
+ attention_info.flags |= 0x4;
+
+ if (unkXyz1.abs() < mDisHani) {
+ if (abs((s16)(current.angle.y - fopAcM_searchPlayerAngleY(this))) < 0x4000 &&
+ (mAction == 0 || mAction == 1 || mAction == 3 && movemode == 2))
+ {
+ angleDiff = -(shape_angle.y - fopAcM_searchPlayerAngleY(this));
+ if (angleDiff < -10000) {
+ angleDiff = -10000;
+ } else if (angleDiff > 10000) {
+ angleDiff = 10000;
+ }
+ }
+ }
+ } else {
+ fopAcM_OffStatus(this, 0);
+ attention_info.flags = attention_info.flags & 0xfffffffb;
+ }
+
+ cLib_addCalcAngleS2(&field_0x7aa, angleDiff, 8, 0x400);
+
+ mpMorfSO->play(0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ mpMorf->play(NULL, 0, 0);
+
+ setBallModelEffect(&tevStr);
+
+ mSound1.setLinkSearch(unkFlag1);
}
-/* ############################################################################################## */
-/* 806EA284-806EA288 000090 0004+00 0/0 0/0 0/0 .rodata @5054 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5054 = -1000000000.0f;
-COMPILER_STRIP_GATE(0x806EA284, &lit_5054);
-#pragma pop
-
-/* 806EA288-806EA28C 000094 0004+00 0/0 0/0 0/0 .rodata @5055 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5055 = -3.0f;
-COMPILER_STRIP_GATE(0x806EA288, &lit_5055);
-#pragma pop
-
-/* 806EA28C-806EA290 000098 0004+00 0/1 0/0 0/0 .rodata @5056 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5056 = 60.0f;
-COMPILER_STRIP_GATE(0x806EA28C, &lit_5056);
-#pragma pop
-
-/* 806EA290-806EA294 00009C 0004+00 0/1 0/0 0/0 .rodata @5057 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5057 = 255.0f;
-COMPILER_STRIP_GATE(0x806EA290, &lit_5057);
-#pragma pop
-
-/* 806EA294-806EA298 0000A0 0004+00 0/1 0/0 0/0 .rodata @5168 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5168 = 12.0f;
-COMPILER_STRIP_GATE(0x806EA294, &lit_5168);
-#pragma pop
-
-/* 806EA298-806EA29C 0000A4 0004+00 0/1 0/0 0/0 .rodata @5169 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5169 = 400.0f;
-COMPILER_STRIP_GATE(0x806EA298, &lit_5169);
-#pragma pop
-
-/* 806EA29C-806EA2A0 0000A8 0004+00 0/1 0/0 0/0 .rodata @5170 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5170 = 6000.0f;
-COMPILER_STRIP_GATE(0x806EA29C, &lit_5170);
-#pragma pop
-
-/* 806EA2A0-806EA2A4 0000AC 0004+00 0/1 0/0 0/0 .rodata @5171 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5171 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x806EA2A0, &lit_5171);
-#pragma pop
-
-/* 806EA2A4-806EA2A8 0000B0 0004+00 0/1 0/0 0/0 .rodata @5172 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5172 = 2500.0f;
-COMPILER_STRIP_GATE(0x806EA2A4, &lit_5172);
-#pragma pop
-
/* 806E89C0-806E8DE0 002CC0 0420+00 2/2 0/0 0/0 .text mtx_set__8daE_HP_cFv */
void daE_HP_c::mtx_set() {
- // NONMATCHING
+ J3DModel* model = mpMorfSO->getModel();
+
+ cXyz unkXyz1;
+
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::transM(0.0f, field_0x768, 0.0f);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ mDoMtx_stack_c::ZXYrotM(field_0x772);
+ mDoMtx_stack_c::scaleM(l_HIO.modelSize, l_HIO.modelSize, l_HIO.modelSize);
+ model->setBaseTRMtx(mDoMtx_stack_c::get());
+
+ mpMorfSO->modelCalc();
+ field_0x750.set(field_0x744);
+
+ mDoMtx_stack_c::copy(model->getAnmMtx(13));
+ unkXyz1.set(12.0f, 0.0f, 0.0f);
+ mDoMtx_stack_c::multVec(&unkXyz1, &field_0x744);
+ mDoMtx_stack_c::transS(field_0x744);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ mDoMtx_stack_c::scaleM(l_HIO.modelSize, l_HIO.modelSize, l_HIO.modelSize);
+ mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
+
+ if (mAction != 5 && mAction != 6) {
+ unkXyz1 = field_0x750 - field_0x744;
+ f32 unkFloat1 = (400.0f + BREG_F(10)) * unkXyz1.abs();
+ unkFloat1 += 1000.0f + BREG_F(11);
+ if (unkFloat1 > 6000.0f + BREG_F(9)) {
+ unkFloat1 = 6000.0f + BREG_F(9);
+ }
+
+ cLib_addCalc2(&field_0x798, unkFloat1, 0.1f, unkFloat1 * 0.1f);
+ cLib_addCalcAngleS2(&field_0x76c.x,
+ field_0x798 * cM_ssin((f32)field_0x7a8 * (2000.0f + BREG_F(12))), 8,
+ 0x400);
+
+ field_0x76c.z = field_0x798 * cM_ssin((f32)field_0x7a8 * (2500.0f + BREG_F(13)));
+ } else {
+ field_0x798 = 0.0f;
+ field_0x76c.x = 0;
+ }
+
+ if (mAction == 3 && field_0x71c == 0 && daPy_py_c::checkNowWolfPowerUp()) {
+ field_0xddc = dComIfGp_particle_set(field_0xddc, 0x878b, &field_0xde0, &shape_angle, 0);
+ JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(field_0xddc);
+ if (emitter != NULL) {
+ J3DModel* model = mpMorfSO->getModel();
+ emitter->setGlobalSRTMatrix(model->getAnmMtx(7));
+ }
+ }
}
-/* ############################################################################################## */
-/* 806EA2A8-806EA2AC 0000B4 0004+00 0/1 0/0 0/0 .rodata @5243 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5243 = 25.0f;
-COMPILER_STRIP_GATE(0x806EA2A8, &lit_5243);
-#pragma pop
-
-/* 806EA2AC-806EA2B0 0000B8 0004+00 0/1 0/0 0/0 .rodata @5244 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5244 = -40.0f;
-COMPILER_STRIP_GATE(0x806EA2AC, &lit_5244);
-#pragma pop
-
-/* 806EA2B0-806EA2B4 0000BC 0004+00 0/1 0/0 0/0 .rodata @5245 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5245 = 120.0f;
-COMPILER_STRIP_GATE(0x806EA2B0, &lit_5245);
-#pragma pop
-
-/* 806EA2B4-806EA2B8 0000C0 0004+00 0/1 0/0 0/0 .rodata @5246 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5246 = 23.0f;
-COMPILER_STRIP_GATE(0x806EA2B4, &lit_5246);
-#pragma pop
-
-/* 806EA2B8-806EA2BC 0000C4 0004+00 0/1 0/0 0/0 .rodata @5247 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5247 = 42.0f;
-COMPILER_STRIP_GATE(0x806EA2B8, &lit_5247);
-#pragma pop
-
/* 806E8DE0-806E8FEC 0030E0 020C+00 1/1 0/0 0/0 .text cc_set__8daE_HP_cFv */
void daE_HP_c::cc_set() {
- // NONMATCHING
+ cXyz cStack_1c;
+ cXyz cStack_28;
+
+ J3DModel* model = mpMorfSO->getModel();
+
+ mDoMtx_stack_c::copy(model->getAnmMtx(8));
+ mDoMtx_stack_c::multVecZero(&eyePos);
+ attention_info.position = eyePos;
+ attention_info.position.y += 25.0f;
+
+ mDoMtx_stack_c::copy(model->getAnmMtx(0));
+ cStack_1c.set(JREG_F(11), -40.0f + JREG_F(12), JREG_F(13));
+ mDoMtx_stack_c::multVec(&cStack_1c, &cStack_28);
+ mCyl1.SetC(cStack_28);
+ mCyl1.SetH(170.0f + JREG_F(4));
+ mCyl1.SetR(30.0f + JREG_F(5));
+ dComIfG_Ccsp()->Set(&mCyl1);
+
+ mDoMtx_stack_c::copy(model->getAnmMtx(10));
+ cStack_1c.set(120.0f + JREG_F(6), 0.0f, 0.0f);
+ mDoMtx_stack_c::multVec(&cStack_1c, &cStack_28);
+ mCyl2.SetC(cStack_28);
+ mCyl2.SetH(200.0f + JREG_F(8));
+ mCyl2.SetR(200.0f + JREG_F(9));
+
+ mDoMtx_stack_c::copy(model->getAnmMtx(7));
+ mDoMtx_stack_c::multVecZero(&field_0xde0);
+
+ if (field_0x780 == 5) {
+ if (mpMorfSO->getFrame() >= 23.0f) {
+ if (mpMorfSO->getFrame() <= 42.0f) {
+ dComIfG_Ccsp()->Set(&mCyl2);
+ }
+ }
+ }
+
+ mSph.SetC(field_0x75c);
+ mSph.SetR(30.0f + JREG_F(14));
+
+ dComIfG_Ccsp()->Set(&mSph);
}
/* 806E8FEC-806E9170 0032EC 0184+00 1/1 0/0 0/0 .text execute__8daE_HP_cFv */
-void daE_HP_c::execute() {
- // NONMATCHING
-}
+int daE_HP_c::execute() {
+ if (field_0x77c != 0xff && !fopAcM_isSwitch(this, field_0x77c)) {
+ attention_info.distances[fopAc_attn_BATTLE_e] = 0;
-/* 806E9170-806E9190 003470 0020+00 1/0 0/0 0/0 .text daE_HP_Execute__FP8daE_HP_c */
-static void daE_HP_Execute(daE_HP_c* param_0) {
- // NONMATCHING
-}
+ fopAcM_SetGroup(this, 0);
+ fopAcM_OffStatus(this, 0);
-/* 806E9190-806E9198 003490 0008+00 1/0 0/0 0/0 .text daE_HP_IsDelete__FP8daE_HP_c */
-static bool daE_HP_IsDelete(daE_HP_c* param_0) {
- return true;
-}
+ attention_info.flags &= ~0x4;
-/* 806E9198-806E9220 003498 0088+00 1/1 0/0 0/0 .text _delete__8daE_HP_cFv */
-void daE_HP_c::_delete() {
- // NONMATCHING
-}
+ if (field_0x78b == 0) {
+ field_0x790 = 0.0f;
+ field_0x78b = 1;
-/* 806E9220-806E9240 003520 0020+00 1/0 0/0 0/0 .text daE_HP_Delete__FP8daE_HP_c */
-static void daE_HP_Delete(daE_HP_c* param_0) {
- // NONMATCHING
-}
+ mSound1.setEnemyName(NULL);
+ }
-/* 806E9240-806E94FC 003540 02BC+00 1/1 0/0 0/0 .text CreateHeap__8daE_HP_cFv */
-void daE_HP_c::CreateHeap() {
- // NONMATCHING
-}
+ return 1;
+ }
-/* 806E94FC-806E951C 0037FC 0020+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
-static void useHeapInit(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
+ if (mNight == 1 && !dKy_daynight_check()) {
+ attention_info.distances[fopAc_attn_BATTLE_e] = 0;
-/* ############################################################################################## */
-/* 806EA2BC-806EA2C4 0000C8 0004+04 0/1 0/0 0/0 .rodata @5512 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5512[1 + 1 /* padding */] = {
- -200.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x806EA2BC, &lit_5512);
-#pragma pop
-
-/* 806EA2C4-806EA2CC 0000D0 0008+00 0/1 0/0 0/0 .rodata @5514 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5514[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x806EA2C4, &lit_5514);
-#pragma pop
+ fopAcM_SetGroup(this, 0);
+ fopAcM_OffStatus(this, 0);
-/* 806E951C-806E9900 00381C 03E4+00 1/1 0/0 0/0 .text create__8daE_HP_cFv */
-void daE_HP_c::create() {
- // NONMATCHING
-}
+ attention_info.flags &= ~0x4;
-/* 806E9900-806E9ABC 003C00 01BC+00 1/1 0/0 0/0 .text __ct__8daE_HP_cFv */
-daE_HP_c::daE_HP_c() {
- // NONMATCHING
-}
+ if (field_0x78b == 0) {
+ field_0x790 = 0.0f;
+ field_0x78b = 1;
-/* 806E9ABC-806E9B04 003DBC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
-// cM3dGSph::~cM3dGSph() {
-extern "C" void __dt__8cM3dGSphFv() {
- // NONMATCHING
-}
+ mSound1.setEnemyName(NULL);
+ }
-/* 806E9B04-806E9B4C 003E04 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
-}
+ return 1;
+ }
-/* 806E9B4C-806E9B94 003E4C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
+ if (attention_info.distances[fopAc_attn_BATTLE_e] == 0) {
+ attention_info.distances[fopAc_attn_BATTLE_e] = 0x04;
-/* 806E9B94-806E9BF0 003E94 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
+ fopAcM_SetGroup(this, 2);
+ fopAcM_OnStatus(this, 0);
+
+ attention_info.flags = attention_info.flags | 4;
+ }
+
+ if (field_0x71c != 0) {
+ field_0x71c--;
+ }
+
+ if (field_0x71e != 0) {
+ field_0x71e--;
+ }
+
+ action();
+ mtx_set();
+ cc_set();
+
+ return 1;
}
-/* 806E9BF0-806E9C60 003EF0 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
+/* 806E9170-806E9190 003470 0020+00 1/0 0/0 0/0 .text daE_HP_Execute__FP8daE_HP_c */
+static int daE_HP_Execute(daE_HP_c* i_this) {
+ return i_this->execute();
}
-/* 806E9C60-806E9CD0 003F60 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
+/* 806E9190-806E9198 003490 0008+00 1/0 0/0 0/0 .text daE_HP_IsDelete__FP8daE_HP_c */
+static int daE_HP_IsDelete(daE_HP_c* i_this) {
+ return 1;
}
-/* 806E9CD0-806E9CF0 003FD0 0020+00 1/0 0/0 0/0 .text daE_HP_Create__FP8daE_HP_c */
-static void daE_HP_Create(daE_HP_c* param_0) {
- // NONMATCHING
+/* 806E9198-806E9220 003498 0088+00 1/1 0/0 0/0 .text _delete__8daE_HP_cFv */
+int daE_HP_c::_delete() {
+ dComIfG_resDelete(&mPhaseReq, "E_HP");
+
+ if (field_0xdf9 != 0) {
+ l_HIOInit = false;
+ mDoHIO_DELETE_CHILD(l_HIO.mChild);
+ }
+
+ if (heap != NULL) {
+ mSound1.deleteObject();
+ mSound2.deleteObject();
+ }
+
+ return 1;
}
-/* 806E9CF0-806E9D38 003FF0 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
+/* 806E9220-806E9240 003520 0020+00 1/0 0/0 0/0 .text daE_HP_Delete__FP8daE_HP_c */
+static int daE_HP_Delete(daE_HP_c* i_this) {
+ fpc_ProcID id = fopAcM_GetID(i_this);
+ return i_this->_delete();
}
-/* 806E9D38-806E9D80 004038 0048+00 2/1 0/0 0/0 .text __dt__12daE_HP_HIO_cFv */
-daE_HP_HIO_c::~daE_HP_HIO_c() {
- // NONMATCHING
+/* 806E9240-806E94FC 003540 02BC+00 1/1 0/0 0/0 .text CreateHeap__8daE_HP_cFv */
+int daE_HP_c::CreateHeap() {
+ J3DModelData* modeldata = (J3DModelData*)dComIfG_getObjectRes("E_HP", 19);
+ JUT_ASSERT(0x764, modeldata != 0)
+ mpMorfSO = new mDoExt_McaMorfSO(modeldata, NULL, NULL,
+ (J3DAnmTransform*)dComIfG_getObjectRes("E_HP", 13), 2, 1.0f, 0,
+ -1, &mSound1, 0x80000, 0x11000084);
+ if (mpMorfSO == NULL || mpMorfSO->getModel() == NULL) {
+ return 0;
+ }
+
+ if (mInvModel.create(mpMorfSO->getModel(), 1) == 0) {
+ return 0;
+ }
+
+ model = mpMorfSO->getModel();
+ model->setUserArea((u32)this);
+
+ for (u16 i = 0; i < model->getModelData()->getJointNum(); i++) {
+ if (i != 0) {
+ model->getModelData()->getJointNodePointer(i)->setCallBack(JointCallBack);
+ }
+ }
+
+ modeldata = (J3DModelData*)dComIfG_getObjectRes("E_HP", 20);
+ JUT_ASSERT(0x78b, modeldata != 0);
+
+ mpModel = mDoExt_J3DModel__create(modeldata, 0x80000, 0x11000084);
+ if (mpModel == NULL) {
+ return 0;
+ }
+
+ mpModel->setUserArea((u32)this);
+ for (u16 i = 0; i < mpModel->getModelData()->getJointNum(); i++) {
+ if (i != 0) {
+ mpModel->getModelData()->getJointNodePointer(i)->setCallBack(LampJointCallBack);
+ }
+ }
+
+ modeldata = (J3DModelData*)dComIfG_getObjectRes("E_HP", 18);
+ mpMorf =
+ new mDoExt_McaMorf(modeldata, NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_HP", 4),
+ 2, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000084);
+
+ if (mpMorf == NULL || mpMorf->getModel() == 0) {
+ return 0;
+ }
+
+ if (initBallModel() == 0) {
+ return 0;
+ }
+
+ return 1;
}
-/* 806E9D80-806E9DBC 004080 003C+00 0/0 1/0 0/0 .text __sinit_d_a_e_hp_cpp */
-void __sinit_d_a_e_hp_cpp() {
- // NONMATCHING
+/* 806E94FC-806E951C 0037FC 0020+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
+static int useHeapInit(fopAc_ac_c* i_this) {
+ daE_HP_c* poe = (daE_HP_c*)i_this;
+ return poe->CreateHeap();
}
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x806E9D80, __sinit_d_a_e_hp_cpp);
-#pragma pop
+/* 806E951C-806E9900 00381C 03E4+00 1/1 0/0 0/0 .text create__8daE_HP_cFv */
+int daE_HP_c::create() {
+ fopAcM_SetupActor(this, daE_HP_c);
+
+ s32 loadResult = dComIfG_resLoad(&mPhaseReq, "E_HP");
+ if (loadResult == cPhs_COMPLEATE_e) {
+ OS_REPORT("\n\n");
+ OS_REPORT("E_HP PARAM %x\n", fopAcM_GetParam(this));
+
+ arg0 = fopAcM_GetParam(this);
+ bitSw = (fopAcM_GetParam(this) & 0xff00) >> 8;
+ mDisHani = (f32)((fopAcM_GetParam(this) & 0xff0000) >> 0x10);
+ field_0x77c = (fopAcM_GetParam(this) & 0xff000000) >> 24;
+
+ mNight = current.angle.z & 0x1;
+
+ if (BREG_S(0) == 0 && bitSw != 0xff && fopAcM_isSwitch(this, bitSw) != 0) {
+ return cPhs_ERROR_e;
+ }
+
+ OS_REPORT("arg0 %d\n", arg0);
+ OS_REPORT("bitSw %d\n", bitSw);
+ OS_REPORT("mDisHani %f\n", mDisHani);
+ OS_REPORT("mNight %d\n", mNight);
+ OS_REPORT("dKy_daynight_check() %d\n", dKy_daynight_check());
+ OS_REPORT("\n\n");
+
+ current.angle.z = 0;
+
+ if (fopAcM_entrySolidHeap(this, useHeapInit, 0x3b30) == 0) {
+ return cPhs_ERROR_e;
+ }
+
+ if (!l_HIOInit) {
+ l_HIOInit = true;
+ field_0xdf9 = 1;
+ // "General-purpose Poe"
+ l_HIO.mChild = mDoHIO_CREATE_CHILD("汎用ポゥ", &l_HIO);
+ }
+ if (mDisHani == 255.0f || mDisHani == 0.0f) {
+ mDisHani = 2000.0f;
+ } else {
+ mDisHani *= 100.0f;
+ }
+ // "After change"
+ OS_REPORT("変動後・mDisHani %f\n", mDisHani);
+
+ if (BREG_S(2) != 0) {
+ home.pos.y = current.pos.y + 100.0f;
+ arg0 = 0x02;
+ }
+ attention_info.flags = 0x4;
+
+ fopAcM_SetMtx(this, mpMorfSO->getModel()->getBaseTRMtx());
+ fopAcM_SetMin(this, -200.0f, -200.0f, -200.0f);
+ fopAcM_SetMax(this, 200.0f, 200.0f, 200.0f);
+
+ mObjAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this,
+ 1, &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL);
+ mObjAcch.SetWallNone();
+ mAcchCir.SetWall(BREG_F(1) + 30.0f, BREG_F(2) + 60.0f);
+
+ mStts.Init(250, 0, this);
+ field_0x560 = health = 40;
+ field_0x7a4 = JREG_F(0) + 170.0f;
+ field_0x72c.set(current.pos);
+ field_0x75c.set(current.pos);
+
+ mSph.Set(cc_lamp_src);
+ mSph.SetStts(&mStts);
+ mCyl1.Set(cc_hp_src);
+ mCyl1.SetStts(&mStts);
+ mCyl2.Set(cc_hp_at_src);
+ mCyl2.SetStts(&mStts);
+
+ mSound1.init(&current.pos, &eyePos, 3, 1);
+ mSound2.init(&current.pos, &eyePos, 3, 1);
+
+ if (field_0x77c != 0xff && !fopAcM_isSwitch(this, field_0x77c) ||
+ mNight == 1 && !dKy_daynight_check())
+ {
+ field_0x78b = 1;
+ mSound1.setEnemyName(NULL);
+ } else {
+ field_0x78b = 0;
+ mSound1.setEnemyName("E_hp");
+ }
+
+ mAtInfo.mpSound = &mSound1;
+ mAtInfo.mPowerType = 1;
+
+ setActionMode(0, 0);
+
+ shape_angle.x = shape_angle.z = 0;
+
+ if (BREG_S(0) != 0 || mNight == 0 || dKy_daynight_check()) {
+ attention_info.distances[fopAc_attn_BATTLE_e] = 0x04;
+ fopAcM_OffStatus(this, 0);
+ attention_info.flags &= ~0x4;
+ } else {
+ attention_info.distances[fopAc_attn_BATTLE_e] = 0;
+ fopAcM_SetGroup(this, 0);
+ fopAcM_OffStatus(this, 0);
+ attention_info.flags &= ~0x4;
+ }
+
+ mtx_set();
+ }
+
+ return loadResult;
+}
-/* 806E9DBC-806E9DC4 0040BC 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_806E9DBC() {
+/* 806E9900-806E9ABC 003C00 01BC+00 1/1 0/0 0/0 .text __ct__8daE_HP_cFv */
+daE_HP_c::daE_HP_c() {
// NONMATCHING
}
-/* 806E9DC4-806E9DCC 0040C4 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_806E9DC4() {
- // NONMATCHING
+/* 806E9CD0-806E9CF0 003FD0 0020+00 1/0 0/0 0/0 .text daE_HP_Create__FP8daE_HP_c */
+static int daE_HP_Create(daE_HP_c* i_this) {
+ return i_this->create();
}
-/* 806EA2CC-806EA2CC 0000D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 806EA408-806EA428 -00001 0020+00 1/0 0/0 0/0 .data l_daE_HP_Method */
+static actor_method_class l_daE_HP_Method = {
+ (process_method_func)daE_HP_Create, (process_method_func)daE_HP_Delete,
+ (process_method_func)daE_HP_Execute, (process_method_func)daE_HP_IsDelete,
+ (process_method_func)daE_HP_Draw,
+};
+
+/* 806EA428-806EA458 -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_HP */
+extern actor_process_profile_definition g_profile_E_HP = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_E_HP, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daE_HP_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 172, // mPriority
+ &l_daE_HP_Method, // sub_method
+ 0x00040100, // mStatus
+ fopAc_ENEMY_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_e_zh.cpp b/src/d/actor/d_a_e_zh.cpp
index c19d64b365..bf81bea8da 100644
--- a/src/d/actor/d_a_e_zh.cpp
+++ b/src/d/actor/d_a_e_zh.cpp
@@ -859,7 +859,7 @@ void daE_ZH_c::executeBallWait() {
spa4.z = WREG_F(1) + 2000.0f;
MtxPosition(&spa4, &spb0);
field_0x680 = spb0 + current.pos;
- lin_chk.onBackFlag();
+ lin_chk.OnBackFlag();
lin_chk.Set(&current.pos, &field_0x680, this);
if (dComIfG_Bgsp().LineCross(&lin_chk)) {
diff --git a/src/d/actor/d_a_npc_moir.cpp b/src/d/actor/d_a_npc_moir.cpp
index 311e27aec1..6de1153025 100644
--- a/src/d/actor/d_a_npc_moir.cpp
+++ b/src/d/actor/d_a_npc_moir.cpp
@@ -1391,7 +1391,7 @@ bool daNpcMoiR_c::talk(void* param_1) {
} else {
msgTimer = mMsgTimer;
if (ctrlMsgAnm(i_expression, i_actionID, this, FALSE)) {
- OS_REPORT("レジスタンスモイ 表情番号=%d 動作番号=%d\n", i_expressionID, i_actionID); // "Resistance Moi Expression Number=%d Action Number=%d\n"
+ OS_REPORT("レジスタンスモイ 表情番号=%d 動作番号=%d\n", i_expression, i_actionID); // "Resistance Moi Expression Number=%d Action Number=%d\n"
setExpression(i_expression, -1.0f);
setMotion(i_actionID, -1.0f, 0);
} else if (msgTimer != 0 && mMsgTimer == 0) {
@@ -1657,7 +1657,7 @@ BOOL daNpcMoiR_c::EvCut_Appear(int i_cutIndex) {
case '0005':
if (fopAcM_searchPlayerAngleY(this) == mCurAngle.y) {
if (talkProc(NULL, TRUE, NULL)) {
- OS_REPORT("二択分岐 %s\n", getChoiceNo() == 0 ? "はい" : "いいえ");
+ OS_REPORT("二択分岐 %s\n", mFlow.getChoiceNo() == 0 ? "はい" : "いいえ");
if (mFlow.getChoiceNo() == 0) {
mOrderEvtNo = 3;
diff --git a/src/d/actor/d_a_tag_kmsg.cpp b/src/d/actor/d_a_tag_kmsg.cpp
index bf4827d18f..756816d10c 100644
--- a/src/d/actor/d_a_tag_kmsg.cpp
+++ b/src/d/actor/d_a_tag_kmsg.cpp
@@ -197,8 +197,8 @@ int daTag_KMsg_c::Execute() {
vec54.z = vec60.z + 80.0f * angle.Cos();
dBgS_LinChk lin_chk;
lin_chk.ClrSttsWallOff();
- lin_chk.onBackFlag();
- lin_chk.onFrontFlag();
+ lin_chk.OnBackFlag();
+ lin_chk.OnFrontFlag();
lin_chk.Set(&vec54, &vec60, NULL);
if (dComIfG_Bgsp().LineCross(&lin_chk)) {
cXyz vec48;
diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp
index 6afeeb1b1e..0f46a43a5e 100644
--- a/src/d/d_camera.cpp
+++ b/src/d/d_camera.cpp
@@ -3396,8 +3396,8 @@ bool dCamera_c::bumpCheck(u32 i_flags) {
* lineBGCheckBoth__9dCamera_cFP4cXyzP4cXyzP11dBgS_LinChkUl */
bool dCamera_c::lineBGCheckBoth(cXyz* i_start, cXyz* i_end, dBgS_LinChk* i_linchk,
u32 i_flags) {
- i_linchk->onBackFlag();
- i_linchk->onFrontFlag();
+ i_linchk->OnBackFlag();
+ i_linchk->OnFrontFlag();
return lineBGCheck(i_start, i_end, i_linchk, i_flags);
}
diff --git a/src/d/d_event.cpp b/src/d/d_event.cpp
index 36e835ae69..9683c4e6b8 100644
--- a/src/d/d_event.cpp
+++ b/src/d/d_event.cpp
@@ -558,10 +558,10 @@ int dEvt_control_c::entry() {
void dEvt_control_c::reset() {
if (field_0xec != 0xFF) {
fopAc_ac_c* pt1 = getPt1();
+ fopAc_ac_c* pt1_2 = pt1;
s16 eventIdx = dComIfGp_getEventManager().getEventIdx(NULL, field_0xec, -1);
- fopAc_ac_c* pt2 = getPt2();
- order(EVT_TYPE_OTHER, 3, 0x201, mHindFlag, pt1, pt2, eventIdx, field_0xec);
+ order(EVT_TYPE_OTHER, 3, 0x201, mHindFlag, pt1, getPt2(), eventIdx, field_0xec);
mChangeOK = pt1;
}
diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp
index e31b483c79..cf038c951e 100644
--- a/src/f_op/f_op_actor_mng.cpp
+++ b/src/f_op/f_op_actor_mng.cpp
@@ -136,10 +136,10 @@ void fopAcM_Log(fopAc_ac_c const* i_actor, char const* i_message) {}
/* 80019C7C-80019CB8 0145BC 003C+00 0/0 10/10 483/483 .text fopAcM_delete__FP10fopAc_ac_c
*/
-void fopAcM_delete(fopAc_ac_c* i_actor) {
+s32 fopAcM_delete(fopAc_ac_c* i_actor) {
// "Deleting Actor"
fopAcM_Log(i_actor, "アクターの削除");
- fpcM_Delete(i_actor);
+ return fpcM_Delete(i_actor);
}
/* 80019CB8-80019D18 0145F8 0060+00 0/0 3/3 12/12 .text fopAcM_delete__FUi */