mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-29 16:14:54 -04:00
178194ccb2
* switch to dtk setup * some cleanup / fixes * cleanup d_a_alink literals * Restore doxygen, update CI & README.md (#1) * Fix build image ref (#2) --------- Co-authored-by: Luke Street <luke@street.dev>
6153 lines
199 KiB
C++
6153 lines
199 KiB
C++
/**
|
|
* @file d_a_e_vt.cpp
|
|
* Variant Enemy (Death Sword)
|
|
*/
|
|
|
|
#include "d/actor/d_a_e_vt.h"
|
|
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
|
#include "SSystem/SComponent/c_math.h"
|
|
#include "c/c_damagereaction.h"
|
|
#include "cmath.h"
|
|
#include "d/actor/d_a_player.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "d/d_s_play.h"
|
|
#include "dol2asm.h"
|
|
#include "d/d_camera.h"
|
|
|
|
static void setMidnaBindEffect(fopEn_enemy_c*, Z2CreatureEnemy*, cXyz*, cXyz*);
|
|
|
|
#define WL_CUT_TYPE_SMALL 1
|
|
#define WL_CUT_TYPE_JUMP 2
|
|
#define WL_CUT_TYPE_LARGE 3
|
|
|
|
enum daE_VA_JOINT {
|
|
JNT_ROOT,
|
|
JNT_BACKBONE_01,
|
|
JNT_BACKBONE_02,
|
|
JNT_ARM_L01,
|
|
JNT_ARM_L02,
|
|
JNT_ARM_L03,
|
|
JNT_ARM_L04,
|
|
JNT_ARM_L05,
|
|
JNT_FINGER_LB,
|
|
JNT_FINGER_LC,
|
|
JNT_FINGER_LA,
|
|
JNT_LEFT_COTH_01,
|
|
JNT_LEFT_COTH_02,
|
|
JNT_LEFT_COTH_03,
|
|
JNT_LEFT_COTH_04,
|
|
JNT_ARM_R01,
|
|
JNT_ARM_R02,
|
|
JNT_ARM_R03,
|
|
JNT_ARM_R04,
|
|
JNT_ARM_R05,
|
|
JNT_FINGER_RB,
|
|
JNT_FINGER_RC,
|
|
JNT_KEN_1,
|
|
JNT_KEN_2,
|
|
JNT_FINGER_RA,
|
|
JNT_BUST,
|
|
JNT_NECK_CLOTH,
|
|
JNT_NECK_01,
|
|
JNT_HEAD_CLOTH_01,
|
|
JNT_HEAD_CLOTH_02,
|
|
JNT_HEAD_CLOTH_03,
|
|
JNT_HEAD_CLOTH_04,
|
|
JNT_HEAD_CLOTH_05,
|
|
JNT_NECK_02,
|
|
JNT_HEAD,
|
|
JNT_JOE,
|
|
JNT_WAIST,
|
|
JNT_BACK_CLOTH_01,
|
|
JNT_BACK_CLOTH_02,
|
|
JNT_BACK_CLOTH_03,
|
|
JNT_FRONT_CLOTH_01,
|
|
JNT_FRONT_CLOTH_02,
|
|
JNT_FRONT_CLOTH_03,
|
|
JNT_LEG_L01,
|
|
JNT_LEG_L02,
|
|
JNT_LEG_L03,
|
|
JNT_LEG_R01,
|
|
JNT_LEG_R02,
|
|
JNT_LEG_R03,
|
|
JNT_TAIL_CLOTH_01,
|
|
JNT_TAIL_CLOTH_02,
|
|
JNT_TAIL_CLOTH_03,
|
|
JNT_TAIL_CLOTH_04,
|
|
};
|
|
|
|
//
|
|
// Forward References:
|
|
//
|
|
|
|
extern "C" void __ct__12daE_VA_HIO_cFv();
|
|
extern "C" void ctrlJoint__8daE_VA_cFP8J3DJointP8J3DModel();
|
|
extern "C" void JointCallBack__8daE_VA_cFP8J3DJointi();
|
|
extern "C" void calcJointNeck__8daE_VA_cFv();
|
|
extern "C" void calcJointSleeve__8daE_VA_cFv();
|
|
extern "C" void draw__8daE_VA_cFv();
|
|
extern "C" static void daE_VA_Draw__FP8daE_VA_c();
|
|
extern "C" void setBck__8daE_VA_cFiUcff();
|
|
extern "C" void checkBck__8daE_VA_cFi();
|
|
extern "C" void setActionMode__8daE_VA_cFii();
|
|
extern "C" void getWolfCutType__8daE_VA_cFv();
|
|
extern "C" void onSwordAtBit__8daE_VA_cFv();
|
|
extern "C" void offSwordShield__8daE_VA_cFv();
|
|
extern "C" void setTransDamage__8daE_VA_cFP4cXyz();
|
|
extern "C" void damage_check__8daE_VA_cFv();
|
|
extern "C" void __as__8dCcD_CylFRC8dCcD_Cyl();
|
|
extern "C" void __as__12dCcD_GObjInfFRC12dCcD_GObjInf();
|
|
extern "C" void __dt__8dCcD_CylFv();
|
|
extern "C" void __dt__8cM3dGCylFv();
|
|
extern "C" void __dt__8cM3dGAabFv();
|
|
extern "C" void setFireEffect__8daE_VA_cFi();
|
|
extern "C" void setFootEffect__8daE_VA_cFv();
|
|
extern "C" void setWeponEffect__8daE_VA_cFv();
|
|
extern "C" void setBugsEffect__8daE_VA_cFv();
|
|
extern "C" void setWeponLandEffect__8daE_VA_cFv();
|
|
extern "C" void setWeponGlow__8daE_VA_cFv();
|
|
extern "C" void setWeponFlashScreen__8daE_VA_cFv();
|
|
extern "C" void setMagicEffect__8daE_VA_cFi();
|
|
extern "C" void setMagicHitEffect__8daE_VA_cFi();
|
|
extern "C" void demo_skip__8daE_VA_cFi();
|
|
extern "C" void DemoSkipCallBack__8daE_VA_cFPvi();
|
|
extern "C" void getRopeLength__8daE_VA_cFi();
|
|
extern "C" void calcOpRopePos__8daE_VA_cFv();
|
|
extern "C" void onRopeCutStatus__8daE_VA_cFiii();
|
|
extern "C" void setVibRope__8daE_VA_cFff();
|
|
extern "C" void setVibTag__8daE_VA_cFii();
|
|
extern "C" void calcTagAngle__8daE_VA_cFv();
|
|
extern "C" void calcRopeFirePos__8daE_VA_cFv();
|
|
extern "C" void executeDemoOpWait__8daE_VA_cFv();
|
|
extern "C" void executeDemoOp__8daE_VA_cFv();
|
|
extern "C" void executeClearWait__8daE_VA_cFv();
|
|
extern "C" void executeClearChase__8daE_VA_cFv();
|
|
extern "C" void executeClearAttack__8daE_VA_cFv();
|
|
extern "C" void executeTransWait__8daE_VA_cFv();
|
|
extern "C" void executeTransChase__8daE_VA_cFv();
|
|
extern "C" void executeTransAttack__8daE_VA_cFv();
|
|
extern "C" void executeTransBiteDamage__8daE_VA_cFv();
|
|
extern "C" void executeTransDamage__8daE_VA_cFv();
|
|
extern "C" void executeTransThrough__8daE_VA_cFv();
|
|
extern "C" void executeOpaciWait__8daE_VA_cFv();
|
|
extern "C" void executeOpaciFly__8daE_VA_cFv();
|
|
extern "C" void executeOpaciDamage__8daE_VA_cFv();
|
|
extern "C" void executeOpaciChase__8daE_VA_cFv();
|
|
extern "C" void executeOpaciAttack__8daE_VA_cFv();
|
|
extern "C" void executeOpaciDown__8daE_VA_cFv();
|
|
extern "C" void executeOpaciDownDamage__8daE_VA_cFv();
|
|
extern "C" void executeOpaciFlip__8daE_VA_cFv();
|
|
extern "C" void executeOpaciFadeAway__8daE_VA_cFv();
|
|
extern "C" void executeOpaciDeath__8daE_VA_cFv();
|
|
extern "C" void calcMagicMove__8daE_VA_cFv();
|
|
extern "C" void setAlphaType__8daE_VA_cFv();
|
|
extern "C" void action__8daE_VA_cFv();
|
|
extern "C" void mtx_set__8daE_VA_cFv();
|
|
extern "C" void cc_set__8daE_VA_cFv();
|
|
extern "C" void execute__8daE_VA_cFv();
|
|
extern "C" static void daE_VA_Execute__FP8daE_VA_c();
|
|
extern "C" static bool daE_VA_IsDelete__FP8daE_VA_c();
|
|
extern "C" void _delete__8daE_VA_cFv();
|
|
extern "C" static void daE_VA_Delete__FP8daE_VA_c();
|
|
extern "C" void CreateHeap__8daE_VA_cFv();
|
|
extern "C" void __dt__12J3DFrameCtrlFv();
|
|
extern "C" static void useHeapInit__FP10fopAc_ac_c();
|
|
extern "C" void create__8daE_VA_cFv();
|
|
extern "C" void __ct__8daE_VA_cFv();
|
|
extern "C" void __ct__8dCcD_SphFv();
|
|
extern "C" void __ct__8dCcD_CylFv();
|
|
extern "C" void __dt__8dCcD_SphFv();
|
|
extern "C" void __dt__8cM3dGSphFv();
|
|
extern "C" void __dt__10dCcD_GSttsFv();
|
|
extern "C" void __ct__12dBgS_ObjAcchFv();
|
|
extern "C" void __dt__12dBgS_ObjAcchFv();
|
|
extern "C" void __dt__12dBgS_AcchCirFv();
|
|
extern "C" void __ct__4cXyzFv();
|
|
extern "C" void __ct__5csXyzFv();
|
|
extern "C" static void daE_VA_Create__FP8daE_VA_c();
|
|
extern "C" void __dt__10cCcD_GSttsFv();
|
|
extern "C" void __dt__12daE_VA_HIO_cFv();
|
|
extern "C" void __sinit_d_a_e_vt_cpp();
|
|
extern "C" static void func_807CE7E0();
|
|
extern "C" static void func_807CE7E8();
|
|
extern "C" static void setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz();
|
|
extern "C" void __dt__5csXyzFv();
|
|
extern "C" void __dt__4cXyzFv();
|
|
extern "C" void checkNowWolf__9daPy_py_cFv();
|
|
extern "C" extern char const* const d_a_e_vt__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 mDoMtx_MtxToRot__FPA4_CfP5csXyz();
|
|
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
|
extern "C" void transM__14mDoMtx_stack_cFfff();
|
|
extern "C" void transM__14mDoMtx_stack_cFRC4cXyz();
|
|
extern "C" void scaleM__14mDoMtx_stack_cFfff();
|
|
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
|
|
extern "C" void play__14mDoExt_baseAnmFv();
|
|
extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
|
|
extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
|
|
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
|
extern "C" void create__21mDoExt_invisibleModelFP8J3DModelUc();
|
|
extern "C" void entryDL__21mDoExt_invisibleModelFP4cXyz();
|
|
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 entryDL__16mDoExt_McaMorfSOFv();
|
|
extern "C" void modelCalc__16mDoExt_McaMorfSOFv();
|
|
extern "C" void init__19mDoExt_3DlineMat0_cFUsUsi();
|
|
extern "C" void init__19mDoExt_3DlineMat1_cFUsUsP7ResTIMGi();
|
|
extern "C" void update__19mDoExt_3DlineMat1_cFiR8_GXColorP12dKy_tevstr_c();
|
|
extern "C" void setMat__26mDoExt_3DlineMatSortPacketFP18mDoExt_3DlineMat_c();
|
|
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
|
extern "C" void __ct__10fopAc_ac_cFv();
|
|
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_searchActorAngleX__FPC10fopAc_ac_cPC10fopAc_ac_c();
|
|
extern "C" void fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c();
|
|
extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c();
|
|
extern "C" void fopAcM_orderPotentialEvent__FP10fopAc_ac_cUsUsUs();
|
|
extern "C" void fopAcM_createDisappear__FPC10fopAc_ac_cPC4cXyzUcUcUc();
|
|
extern "C" void fopAcM_setEffectMtx__FPC10fopAc_ac_cPC12J3DModelData();
|
|
extern "C" void dStage_changeScene__FifUlScsi();
|
|
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 dComIfGs_onOneZoneSwitch__Fii();
|
|
extern "C" void dComIfGs_offOneZoneSwitch__Fii();
|
|
extern "C" void dComIfGs_isOneZoneSwitch__Fii();
|
|
extern "C" void
|
|
dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj();
|
|
extern "C" void onDungeonItem__12dSv_memBit_cFi();
|
|
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 setSkipProc__14dEvt_control_cFPvPFPvi_ii();
|
|
extern "C" void onSkipFade__14dEvt_control_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 addReal__21dDlst_shadowControl_cFUlP8J3DModel();
|
|
extern "C" void StartShock__12dVibration_cFii4cXyz();
|
|
extern "C" void StartQuake__12dVibration_cFii4cXyz();
|
|
extern "C" void StopQuake__12dVibration_cFi();
|
|
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 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 __dt__12dCcD_GObjInfFv();
|
|
extern "C" void ChkAtHit__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 def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c();
|
|
extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo();
|
|
extern "C" void checkMasterSwordEquip__9daPy_py_cFv();
|
|
extern "C" void checkNowWolfEyeUp__9daPy_py_cFv();
|
|
extern "C" void Start__9dCamera_cFv();
|
|
extern "C" void Stop__9dCamera_cFv();
|
|
extern "C" void SetTrimSize__9dCamera_cFl();
|
|
extern "C" void Set__9dCamera_cF4cXyz4cXyzfs();
|
|
extern "C" void Reset__9dCamera_cF4cXyz4cXyzfs();
|
|
extern "C" void Reset__9dCamera_cF4cXyz4cXyz();
|
|
extern "C" void dCam_getBody__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_custom_colset__FUcUcf();
|
|
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 __ml__4cXyzCFf();
|
|
extern "C" void __dv__4cXyzCFf();
|
|
extern "C" void normalizeZP__4cXyzFv();
|
|
extern "C" void cM_atan2s__Fff();
|
|
extern "C" void cM_rnd__Fv();
|
|
extern "C" void cM_rndF__Ff();
|
|
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_addCalc__FPfffff();
|
|
extern "C" void cLib_addCalc2__FPffff();
|
|
extern "C" void cLib_addCalcAngleS__FPsssss();
|
|
extern "C" void cLib_chaseUC__FPUcUcUc();
|
|
extern "C" void cLib_chaseF__FPfff();
|
|
extern "C" void cLib_chasePos__FP4cXyzRC4cXyzf();
|
|
extern "C" void cLib_chasePosXZ__FP4cXyzRC4cXyzf();
|
|
extern "C" void cLib_chaseAngleS__FPsss();
|
|
extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
|
|
extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz();
|
|
extern "C" void cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz();
|
|
extern "C" void deleteAllParticle__14JPABaseEmitterFv();
|
|
extern "C" void func_80280808();
|
|
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
|
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
|
extern "C" void subBgmStart__8Z2SeqMgrFUl();
|
|
extern "C" void subBgmStop__8Z2SeqMgrFv();
|
|
extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl();
|
|
extern "C" void bgmStreamPlay__8Z2SeqMgrFv();
|
|
extern "C" void bgmStreamStop__8Z2SeqMgrFUl();
|
|
extern "C" void changeSubBgmStatus__8Z2SeqMgrFl();
|
|
extern "C" void __ct__15Z2CreatureEnemyFv();
|
|
extern "C" void init__15Z2CreatureEnemyFP3VecP3VecUcUc();
|
|
extern "C" void setEnemyName__15Z2CreatureEnemyFPCc();
|
|
extern "C" void* __nw__FUl();
|
|
extern "C" void __dl__FPv();
|
|
extern "C" void init__12J3DFrameCtrlFs();
|
|
extern "C" void checkPass__12J3DFrameCtrlFf();
|
|
extern "C" void __copy();
|
|
extern "C" void __construct_array();
|
|
extern "C" void _savegpr_14();
|
|
extern "C" void _savegpr_17();
|
|
extern "C" void _savegpr_19();
|
|
extern "C" void _savegpr_22();
|
|
extern "C" void _savegpr_23();
|
|
extern "C" void _savegpr_24();
|
|
extern "C" void _savegpr_25();
|
|
extern "C" void _savegpr_26();
|
|
extern "C" void _savegpr_27();
|
|
extern "C" void _savegpr_28();
|
|
extern "C" void _savegpr_29();
|
|
extern "C" void _restgpr_14();
|
|
extern "C" void _restgpr_17();
|
|
extern "C" void _restgpr_19();
|
|
extern "C" void _restgpr_22();
|
|
extern "C" void _restgpr_23();
|
|
extern "C" void _restgpr_24();
|
|
extern "C" void _restgpr_25();
|
|
extern "C" void _restgpr_26();
|
|
extern "C" void _restgpr_27();
|
|
extern "C" void _restgpr_28();
|
|
extern "C" void _restgpr_29();
|
|
extern "C" extern void* __vt__19mDoExt_3DlineMat1_c[5];
|
|
extern "C" extern void* __vt__19mDoExt_3DlineMat0_c[5];
|
|
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" extern u8 j3dZModeTable[96];
|
|
extern "C" u8 sincosTable___5JMath[65536];
|
|
extern "C" extern u8 struct_80450C98[4];
|
|
extern "C" u8 m_midnaActor__9daPy_py_c[4];
|
|
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
|
extern "C" void __register_global_object();
|
|
|
|
//
|
|
// Declarations:
|
|
//
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CECA8-807CECAC 000000 0004+00 36/36 0/0 0/0 .rodata @3907 */
|
|
SECTION_RODATA static f32 const lit_3907 = 100.0f;
|
|
COMPILER_STRIP_GATE(0x807CECA8, &lit_3907);
|
|
|
|
/* 807CECAC-807CECB0 000004 0004+00 4/36 0/0 0/0 .rodata @3908 */
|
|
SECTION_RODATA static u8 const lit_3908[4] = {
|
|
0x00,
|
|
0x00,
|
|
0x00,
|
|
0x00,
|
|
};
|
|
COMPILER_STRIP_GATE(0x807CECAC, &lit_3908);
|
|
|
|
/* 807CECB0-807CECB8 000008 0004+04 11/34 0/0 0/0 .rodata @3909 */
|
|
SECTION_RODATA static f32 const lit_3909[1 + 1 /* padding */] = {
|
|
1.0f,
|
|
/* padding */
|
|
0.0f,
|
|
};
|
|
COMPILER_STRIP_GATE(0x807CECB0, &lit_3909);
|
|
|
|
/* 807CECB8-807CECC0 000010 0008+00 0/3 0/0 0/0 .rodata @3910 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static u8 const lit_3910[8] = {
|
|
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
COMPILER_STRIP_GATE(0x807CECB8, &lit_3910);
|
|
#pragma pop
|
|
|
|
/* 807CECC0-807CECC8 000018 0008+00 0/3 0/0 0/0 .rodata @3911 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static u8 const lit_3911[8] = {
|
|
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
COMPILER_STRIP_GATE(0x807CECC0, &lit_3911);
|
|
#pragma pop
|
|
|
|
/* 807CECC8-807CECD0 000020 0008+00 0/3 0/0 0/0 .rodata @3912 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static u8 const lit_3912[8] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
COMPILER_STRIP_GATE(0x807CECC8, &lit_3912);
|
|
#pragma pop
|
|
|
|
/* 807CECD0-807CECD4 000028 0004+00 0/2 0/0 0/0 .rodata @3913 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3913 = 1.0f / 100.0f;
|
|
COMPILER_STRIP_GATE(0x807CECD0, &lit_3913);
|
|
#pragma pop
|
|
|
|
/* 807CECD4-807CECD8 00002C 0004+00 0/1 0/0 0/0 .rodata @3928 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3928 = 6.0f / 5.0f;
|
|
COMPILER_STRIP_GATE(0x807CECD4, &lit_3928);
|
|
#pragma pop
|
|
|
|
/* 807CECD8-807CECDC 000030 0004+00 0/3 0/0 0/0 .rodata @3929 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3929 = 500.0f;
|
|
COMPILER_STRIP_GATE(0x807CECD8, &lit_3929);
|
|
#pragma pop
|
|
|
|
/* 807CECDC-807CECE0 000034 0004+00 0/1 0/0 0/0 .rodata @3930 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3930 = 7.0f;
|
|
COMPILER_STRIP_GATE(0x807CECDC, &lit_3930);
|
|
#pragma pop
|
|
|
|
/* 807CECE0-807CECE4 000038 0004+00 0/1 0/0 0/0 .rodata @3931 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3931 = 2500.0f;
|
|
COMPILER_STRIP_GATE(0x807CECE0, &lit_3931);
|
|
#pragma pop
|
|
|
|
/* 807CECE4-807CECE8 00003C 0004+00 0/3 0/0 0/0 .rodata @3932 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3932 = 1000.0f;
|
|
COMPILER_STRIP_GATE(0x807CECE4, &lit_3932);
|
|
#pragma pop
|
|
|
|
/* 807CECE8-807CECEC 000040 0004+00 0/1 0/0 0/0 .rodata @3933 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3933 = 800.0f;
|
|
COMPILER_STRIP_GATE(0x807CECE8, &lit_3933);
|
|
#pragma pop
|
|
|
|
/* 807CECEC-807CECF0 000044 0004+00 1/3 0/0 0/0 .rodata @3934 */
|
|
SECTION_RODATA static f32 const lit_3934 = 0.5f;
|
|
COMPILER_STRIP_GATE(0x807CECEC, &lit_3934);
|
|
|
|
/* 807CECF0-807CECF4 000048 0004+00 0/16 0/0 0/0 .rodata @3935 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3935 = 3.0f;
|
|
COMPILER_STRIP_GATE(0x807CECF0, &lit_3935);
|
|
#pragma pop
|
|
|
|
/* 807CECF4-807CECF8 00004C 0004+00 0/2 0/0 0/0 .rodata @3936 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3936 = -50.0f;
|
|
COMPILER_STRIP_GATE(0x807CECF4, &lit_3936);
|
|
#pragma pop
|
|
|
|
/* 807CECF8-807CECFC 000050 0004+00 0/6 0/0 0/0 .rodata @3937 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3937 = 40.0f;
|
|
COMPILER_STRIP_GATE(0x807CECF8, &lit_3937);
|
|
#pragma pop
|
|
|
|
/* 807CECFC-807CED00 000054 0004+00 0/1 0/0 0/0 .rodata @3938 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3938 = 35.0f;
|
|
COMPILER_STRIP_GATE(0x807CECFC, &lit_3938);
|
|
#pragma pop
|
|
|
|
/* 807CED00-807CED04 000058 0004+00 0/1 0/0 0/0 .rodata @3939 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3939 = 82.0f;
|
|
COMPILER_STRIP_GATE(0x807CED00, &lit_3939);
|
|
#pragma pop
|
|
|
|
/* 807CED04-807CED08 00005C 0004+00 0/2 0/0 0/0 .rodata @3940 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_3940 = 210.0f;
|
|
COMPILER_STRIP_GATE(0x807CED04, &lit_3940);
|
|
#pragma pop
|
|
|
|
/* 807CEF08-807CEF14 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,
|
|
};
|
|
|
|
/* 807CEF14-807CEF28 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
|
|
|
|
/* 807CEF28-807CEF30 000020 0008+00 0/1 0/0 0/0 .data e_prim$3786 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static u8 e_prim[8] = {
|
|
0xFF, 0x78, 0x00, 0x00, 0xFF, 0x64, 0x78, 0x00,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 807CEF30-807CEF38 000028 0008+00 0/1 0/0 0/0 .data e_env$3787 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static u8 e_env[8] = {
|
|
0x5A, 0x2D, 0x2D, 0x00, 0x3C, 0x1E, 0x1E, 0x00,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 807CEF38-807CEF40 000030 0006+02 0/1 0/0 0/0 .data eff_id$3795 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static u8 eff_id[6 + 2 /* padding */] = {
|
|
0x02,
|
|
0x9D,
|
|
0x02,
|
|
0x9E,
|
|
0x02,
|
|
0x9F,
|
|
/* padding */
|
|
0x00,
|
|
0x00,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 807CEF40-807CEF80 000038 0040+00 0/1 0/0 0/0 .data cc_vt_neck_src__22@unnamed@d_a_e_vt_cpp@ */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static dCcD_SrcSph cc_vt_neck_src = {
|
|
{
|
|
{0x0, {{0x0, 0x0, 0x0}, {0x80000000, 0x3}, 0x0}}, // mObj
|
|
{dCcD_SE_METAL, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
|
|
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x4}, // mGObjTg
|
|
{0x0}, // mGObjCo
|
|
}, // mObjInf
|
|
{
|
|
{{0.0f, 0.0f, 0.0f}, 40.0f} // mSph
|
|
} // mSphAttr
|
|
};
|
|
#pragma pop
|
|
|
|
/* 807CEF80-807CEFC4 000078 0044+00 0/1 0/0 0/0 .data cc_vt_body_src__22@unnamed@d_a_e_vt_cpp@ */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static dCcD_SrcCyl cc_vt_body_src = {
|
|
{
|
|
{0x0, {{0x0, 0x0, 0x0}, {0xd8fbfdff, 0x43}, 0x75}}, // mObj
|
|
{dCcD_SE_METAL, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
|
|
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x6}, // mGObjTg
|
|
{0x0}, // mGObjCo
|
|
}, // mObjInf
|
|
{
|
|
{0.0f, 0.0f, 0.0f}, // mCenter
|
|
150.0f, // mRadius
|
|
158.0f // mHeight
|
|
} // mCyl
|
|
};
|
|
#pragma pop
|
|
|
|
/* 807CEFC4-807CF004 0000BC 0040+00 0/1 0/0 0/0 .data cc_vt_attack_src__22@unnamed@d_a_e_vt_cpp@
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static dCcD_SrcSph cc_vt_attack_src = {
|
|
{
|
|
{0x0, {{0x100000, 0x2, 0xD}, {0xD8FBFDFF, 0x43}, 0x75}}, // mObj
|
|
{dCcD_SE_METAL, 0x0, 0x1, 0x0, 0x0}, // mGObjAt
|
|
{dCcD_SE_NONE, 0x2, 0x0, 0x0, 0x2}, // mGObjTg
|
|
{0x0}, // mGObjCo
|
|
}, // mObjInf
|
|
{
|
|
{{0.0f, 0.0f, 0.0f}, 40.0f} // mSph
|
|
} // mSphAttr
|
|
};
|
|
#pragma pop
|
|
|
|
/* 807CF004-807CF044 0000FC 0040+00 0/1 0/0 0/0 .data cc_vt_line_src__22@unnamed@d_a_e_vt_cpp@ */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static dCcD_SrcSph cc_vt_line_src = {
|
|
{
|
|
{0x0, {{0x0, 0x0, 0x0}, {0xD8FBFDFF, 0x43}, 0x75}}, // mObj
|
|
{dCcD_SE_METAL, 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
|
|
|
|
/* 807CF044-807CF084 00013C 0040+00 0/1 0/0 0/0 .data cc_vt_magic_src__22@unnamed@d_a_e_vt_cpp@ */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static dCcD_SrcSph cc_vt_magic_src = {
|
|
{
|
|
{0x0, {{0x400, 0x2, 0xD}, {0xD8FBFDFF, 0x0}, 0x0}}, // mObj
|
|
{0xD, 0x0, 0x1, 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
|
|
|
|
/* 807CF084-807CF0AC 00017C 0027+01 1/1 0/0 0/0 .data va_tag_set_size__22@unnamed@d_a_e_vt_cpp@ */
|
|
SECTION_DATA static u8 va_tag_set_size[39] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
|
0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
|
|
0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02,
|
|
};
|
|
|
|
/* 807CF0AC-807CF0D4 0001A4 0027+01 3/4 0/0 0/0 .data va_tag_set_num__22@unnamed@d_a_e_vt_cpp@ */
|
|
SECTION_DATA static u8 va_tag_set_num[39] = {
|
|
0x01, 0x0C, 0x16, 0x1F, 0x21, 0x2A, 0x2B, 0x02, 0x04, 0x0D, 0x0F, 0x15, 0x18,
|
|
0x20, 0x2C, 0x03, 0x05, 0x06, 0x0B, 0x10, 0x17, 0x19, 0x1A, 0x22, 0x24, 0x29,
|
|
0x2D, 0x34, 0x49, 0x52, 0x36, 0x3E, 0x54, 0x5C, 0x39, 0x41, 0x4C, 0x56, 0x5E,
|
|
};
|
|
|
|
/* 807CF0D4-807CF170 0001CC 009C+00 1/1 0/0 0/0 .data va_tag_offset__22@unnamed@d_a_e_vt_cpp@ */
|
|
SECTION_DATA static f32 va_tag_offset[39] = {
|
|
20.0f, 20.0f, 20.0f, 20.0f, 20.0f, 0.0f, 40.0f, 0.0f, 30.0f, 10.0f, 0.0f, 0.0f, 20.0f,
|
|
0.0f, 10.0f, 20.0f, 40.0f, 0.0f, 20.0f, 0.0f, 0.0f, 20.0f, 0.0f, 10.0f, 0.0f, 0.0f,
|
|
20.0f, 10.0f, 20.0f, 30.0f, 0.0f, 10.0f, 20.0f, 0.0f, 0.0f, 10.0f, 20.0f, 30.0f, 0.0f,
|
|
};
|
|
|
|
/* 807CF170-807CF174 000268 0004+00 1/1 0/0 0/0 .data l_color$4364 */
|
|
SECTION_DATA static u8 l_color[4] = {
|
|
0x64,
|
|
0x46,
|
|
0x00,
|
|
0xFF,
|
|
};
|
|
|
|
/* 807CF174-807CF17C 00026C 0008+00 1/1 0/0 0/0 .data va_foot_smoke_id$5094 */
|
|
SECTION_DATA static u8 va_foot_smoke_id[8] = {
|
|
0x88, 0x91, 0x88, 0x92, 0x85, 0xC4, 0x85, 0xC5,
|
|
};
|
|
|
|
/* 807CF17C-807CF184 000274 0006+02 1/1 0/0 0/0 .data va_wepon_eff_id1 */
|
|
SECTION_DATA static u16 va_wepon_eff_id1[] = {
|
|
0x85D8,
|
|
0x85D9,
|
|
0x85DA,
|
|
};
|
|
|
|
/* 807CF184-807CF18C 00027C 0006+02 1/1 0/0 0/0 .data va_wepon_eff_id2 */
|
|
SECTION_DATA static u16 va_wepon_eff_id2[] = {
|
|
0x85C6,
|
|
0x85C7,
|
|
0x85C8,
|
|
};
|
|
|
|
/* 807CF18C-807CF1A4 000284 0018+00 1/1 0/0 0/0 .data va_bugs_eff_jnt */
|
|
SECTION_DATA static u16 va_bugs_eff_jnt[] = {
|
|
0x01, 0x02, 0x22, 0x04, 0x05, 0x07, 0x10, 0x11, 0x13, 0x2C, 0x2F, 0x32,
|
|
};
|
|
|
|
/* 807CF1A4-807CF1BC 00029C 0018+00 1/1 0/0 0/0 .data va_bugs_eff_id */
|
|
SECTION_DATA static u16 va_bugs_eff_id[] = {
|
|
0x85E1, 0x85E2, 0x85E3, 0x85DB, 0x85DC, 0x85DD, 0x85DE, 0x85DF, 0x85E0, 0x85E4, 0x85E5, 0x85E6,
|
|
};
|
|
|
|
/* 807CF1BC-807CF1C4 0002B4 0006+02 1/1 0/0 0/0 .data va_weapon_land_eff_id */
|
|
SECTION_DATA static u16 va_weapon_land_eff_id[] = {
|
|
0x85C9,
|
|
0x85CA,
|
|
0x85CB,
|
|
};
|
|
|
|
/* 807CF1C4-807CF1CC 0002BC 0006+02 1/1 0/0 0/0 .data va_magic_eff_id */
|
|
SECTION_DATA static u16 va_magic_eff_id[] = {
|
|
0x8848,
|
|
0x8849,
|
|
0x884A,
|
|
};
|
|
|
|
/* 807CF1CC-807CF1F8 0002C4 002C+00 1/1 0/0 0/0 .data line_pull_power */
|
|
SECTION_DATA static f32 line_pull_power[] = {
|
|
0.0f, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f,
|
|
};
|
|
|
|
/* 807CF1F8-807CF200 0002F0 0008+00 1/2 0/0 0/0 .data TAG_VIB_ANGLE */
|
|
SECTION_DATA static s16 TAG_VIB_ANGLE[] = {
|
|
-0x800,
|
|
0x800,
|
|
-0x1000,
|
|
0x1000,
|
|
};
|
|
|
|
/* 807CF200-807CF210 0002F8 0010+00 0/1 0/0 0/0 .data TAG_VIB_WIDTH */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static s16 TAG_VIB_WIDTH[] = {
|
|
0x1C0, 0x280, 0x180, 0x240, 0x380, 0x500, 0x300, 0x480,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 807CF210-807CF23C -00001 002C+00 1/1 0/0 0/0 .data @6371 */
|
|
SECTION_DATA static void* lit_6371[11] = {
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0x70),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0x1FC),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0x2B4),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0xCF4),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0x3B4),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0x4F8),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0x6F0),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0x700),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0x874),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0xA60),
|
|
(void*)(((char*)executeDemoOp__8daE_VA_cFv) + 0xB0C),
|
|
};
|
|
|
|
/* 807CF23C-807CF27C -00001 0040+00 1/1 0/0 0/0 .data @7005 */
|
|
SECTION_DATA static void* lit_7005[16] = {
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x4C),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x124),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5CC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x2BC),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x2F8),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x41C),
|
|
(void*)(((char*)executeOpaciWait__8daE_VA_cFv) + 0x5B0),
|
|
};
|
|
|
|
/* 807CF27C-807CF2D8 -00001 005C+00 1/1 0/0 0/0 .data @7243 */
|
|
SECTION_DATA static void* lit_7243[23] = {
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x90),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x1D4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x420),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x478),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x4E4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x6FC),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x70C),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x73C),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x8C4),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x90),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x90),
|
|
(void*)(((char*)executeOpaciFly__8daE_VA_cFv) + 0x90),
|
|
};
|
|
|
|
/* 807CF2D8-807CF304 -00001 002C+00 1/1 0/0 0/0 .data @7741 */
|
|
SECTION_DATA static void* lit_7741[11] = {
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x16C),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x188),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x250),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x278),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x330),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x394),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x3CC),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x3CC),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x3CC),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x3CC),
|
|
(void*)(((char*)executeOpaciFadeAway__8daE_VA_cFv) + 0x5C),
|
|
};
|
|
|
|
/* 807CF304-807CF330 -00001 002C+00 1/1 0/0 0/0 .data @7924 */
|
|
SECTION_DATA static void* lit_7924[11] = {
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x7C),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x268),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x37C),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x4B8),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x548),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x6A8),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x6A8),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x6A8),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x6A8),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x6A8),
|
|
(void*)(((char*)executeOpaciDeath__8daE_VA_cFv) + 0x22C),
|
|
};
|
|
|
|
/* 807CF330-807CF384 -00001 0054+00 1/1 0/0 0/0 .data @8207 */
|
|
SECTION_DATA static void* lit_8207[21] = {
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x11C), (void*)(((char*)action__8daE_VA_cFv) + 0x12C),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x13C), (void*)(((char*)action__8daE_VA_cFv) + 0x148),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x154), (void*)(((char*)action__8daE_VA_cFv) + 0x160),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x178), (void*)(((char*)action__8daE_VA_cFv) + 0x16C),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x190), (void*)(((char*)action__8daE_VA_cFv) + 0x184),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x19C), (void*)(((char*)action__8daE_VA_cFv) + 0x1A8),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x1B4), (void*)(((char*)action__8daE_VA_cFv) + 0x1C0),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x1CC), (void*)(((char*)action__8daE_VA_cFv) + 0x1D8),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x1E4), (void*)(((char*)action__8daE_VA_cFv) + 0x1F0),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x1FC), (void*)(((char*)action__8daE_VA_cFv) + 0x208),
|
|
(void*)(((char*)action__8daE_VA_cFv) + 0x214),
|
|
};
|
|
|
|
/* 807CF384-807CF3A4 -00001 0020+00 1/0 0/0 0/0 .data l_daE_VA_Method */
|
|
static actor_method_class l_daE_VA_Method = {
|
|
(process_method_func)daE_VA_Create__FP8daE_VA_c,
|
|
(process_method_func)daE_VA_Delete__FP8daE_VA_c,
|
|
(process_method_func)daE_VA_Execute__FP8daE_VA_c,
|
|
(process_method_func)daE_VA_IsDelete__FP8daE_VA_c,
|
|
(process_method_func)daE_VA_Draw__FP8daE_VA_c,
|
|
};
|
|
|
|
/* 807CF3A4-807CF3D4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_VT */
|
|
extern actor_process_profile_definition g_profile_E_VT = {
|
|
fpcLy_CURRENT_e, // mLayerID
|
|
7, // mListID
|
|
fpcPi_CURRENT_e, // mListPrio
|
|
PROC_E_VT, // mProcName
|
|
&g_fpcLf_Method.mBase, // sub_method
|
|
sizeof(daE_VA_c), // mSize
|
|
0, // mSizeOther
|
|
0, // mParameters
|
|
&g_fopAc_Method.base, // sub_method
|
|
756, // mPriority
|
|
&l_daE_VA_Method, // sub_method
|
|
0x00040000, // mStatus
|
|
fopAc_ENEMY_e, // mActorType
|
|
fopAc_CULLBOX_CUSTOM_e, // cullType
|
|
};
|
|
|
|
/* 807CF3D4-807CF3E0 0004CC 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,
|
|
};
|
|
|
|
/* 807CF3E0-807CF3EC 0004D8 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,
|
|
};
|
|
|
|
/* 807CF3EC-807CF3F8 0004E4 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,
|
|
};
|
|
|
|
/* 807CF3F8-807CF404 0004F0 000C+00 4/4 0/0 0/0 .data __vt__8cM3dGSph */
|
|
SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)__dt__8cM3dGSphFv,
|
|
};
|
|
|
|
/* 807CF404-807CF428 0004FC 0024+00 3/3 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_807CE7E8,
|
|
(void*)NULL,
|
|
(void*)NULL,
|
|
(void*)func_807CE7E0,
|
|
};
|
|
|
|
/* 807CF428-807CF43C 000520 0014+00 1/1 0/0 0/0 .data __vt__18mDoExt_3DlineMat_c */
|
|
SECTION_DATA extern void* __vt__18mDoExt_3DlineMat_c[5] = {
|
|
(void*)NULL /* RTTI */, (void*)NULL, (void*)NULL, (void*)NULL, (void*)NULL,
|
|
};
|
|
|
|
/* 807CF43C-807CF448 000534 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,
|
|
};
|
|
|
|
/* 807CF448-807CF454 000540 000C+00 4/4 0/0 0/0 .data __vt__8cM3dGCyl */
|
|
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)__dt__8cM3dGCylFv,
|
|
};
|
|
|
|
/* 807CF454-807CF460 00054C 000C+00 7/7 0/0 0/0 .data __vt__8cM3dGAab */
|
|
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)__dt__8cM3dGAabFv,
|
|
};
|
|
|
|
/* 807CF460-807CF46C 000558 000C+00 2/2 0/0 0/0 .data __vt__12daE_VA_HIO_c */
|
|
SECTION_DATA extern void* __vt__12daE_VA_HIO_c[3] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)__dt__12daE_VA_HIO_cFv,
|
|
};
|
|
|
|
/* 807C25EC-807C267C 0000EC 0090+00 1/1 0/0 0/0 .text __ct__12daE_VA_HIO_cFv */
|
|
daE_VA_HIO_c::daE_VA_HIO_c() {
|
|
field_0x04 = -1;
|
|
mModelSize = 1.2f;
|
|
mAttackRange = 500.0f;
|
|
mBiteCount = 7.0f;
|
|
mFadeAwayTime = 2500.0f;
|
|
mCircleAttackRadius = 1000.0f;
|
|
mDownTime = 100.0f;
|
|
mDownHP = 800.0f;
|
|
field_0x24 = 0.5f;
|
|
field_0x28 = 3.0f;
|
|
field_0x2c = -50.0f;
|
|
|
|
mKRegLightR = 40.0f;
|
|
mKRegLightG = 35.0f;
|
|
mKRegLightB = 82.0f;
|
|
mKRegLightA = 210.0f;
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CF478-807CF47C 000008 0001+03 1/1 0/0 0/0 .bss @1109 */
|
|
static u8 lit_1109[1 + 3 /* padding */];
|
|
|
|
/* 807CF47C-807CF480 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
|
|
|
|
/* 807CF480-807CF484 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
|
|
|
|
/* 807CF484-807CF488 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
|
|
|
|
/* 807CF488-807CF48C 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
|
|
|
|
/* 807CF48C-807CF490 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
|
|
|
|
/* 807CF490-807CF494 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
|
|
|
|
/* 807CF494-807CF498 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
|
|
|
|
/* 807CF498-807CF49C 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
|
|
|
|
/* 807CF49C-807CF4A0 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
|
|
|
|
/* 807CF4A0-807CF4A4 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
|
|
|
|
/* 807CF4A4-807CF4A8 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
|
|
|
|
/* 807CF4A8-807CF4AC 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
|
|
|
|
/* 807CF4AC-807CF4B0 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
|
|
|
|
/* 807CF4B0-807CF4B4 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
|
|
|
|
/* 807CF4B4-807CF4B8 -00001 0004+00 2/2 0/0 0/0 .bss None */
|
|
/* 807CF4B4 0001+00 data_807CF4B4 @1009 */
|
|
/* 807CF4B5 0003+00 data_807CF4B5 None */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 struct_807CF4B4;
|
|
#pragma pop
|
|
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 init_hio;
|
|
#pragma pop
|
|
|
|
/* 807CF4B8-807CF4C4 000048 000C+00 0/1 0/0 0/0 .bss @3923 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_3923[12];
|
|
#pragma pop
|
|
|
|
/* 807CF4C4-807CF504 000054 0040+00 17/18 0/0 0/0 .bss l_HIO */
|
|
static daE_VA_HIO_c l_HIO;
|
|
|
|
/* 807C267C-807C284C 00017C 01D0+00 1/1 0/0 0/0 .text ctrlJoint__8daE_VA_cFP8J3DJointP8J3DModel */
|
|
int daE_VA_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) {
|
|
int joint_no = i_joint->getJntNo();
|
|
mDoMtx_stack_c::copy(i_model->getAnmMtx(joint_no));
|
|
|
|
switch (joint_no) {
|
|
case JNT_LEFT_COTH_01:
|
|
case JNT_LEFT_COTH_02:
|
|
case JNT_LEFT_COTH_03:
|
|
case JNT_LEFT_COTH_04:
|
|
if (field_0x138b) {
|
|
mDoMtx_stack_c::transS(field_0x140c[joint_no - JNT_LEFT_COTH_01]);
|
|
mDoMtx_stack_c::YrotM(field_0x130c);
|
|
mDoMtx_stack_c::ZrotM(field_0x130e);
|
|
mDoMtx_stack_c::ZrotM(field_0x1448[joint_no - JNT_LEFT_COTH_01].z);
|
|
mDoMtx_stack_c::YrotM(field_0x1448[joint_no - JNT_LEFT_COTH_01].y);
|
|
mDoMtx_stack_c::scaleM(l_HIO.mModelSize, l_HIO.mModelSize, l_HIO.mModelSize);
|
|
}
|
|
break;
|
|
case JNT_NECK_01:
|
|
mDoMtx_stack_c::YrotM(field_0x1398);
|
|
if (field_0x1391 == 1) {
|
|
mDoMtx_stack_c::XrotM(field_0x1394);
|
|
mDoMtx_stack_c::ZrotM(field_0x1396);
|
|
}
|
|
break;
|
|
case JNT_NECK_02:
|
|
mDoMtx_stack_c::YrotM(field_0x1398);
|
|
if (field_0x1391 == 2) {
|
|
mDoMtx_stack_c::XrotM(field_0x1394);
|
|
}
|
|
break;
|
|
case JNT_HEAD:
|
|
if (field_0x1391 == 2) {
|
|
mDoMtx_stack_c::ZrotM(field_0x1396);
|
|
}
|
|
break;
|
|
}
|
|
|
|
i_model->setAnmMtx(joint_no, mDoMtx_stack_c::get());
|
|
cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
|
|
return 1;
|
|
}
|
|
|
|
|
|
/* 807C284C-807C2898 00034C 004C+00 1/1 0/0 0/0 .text JointCallBack__8daE_VA_cFP8J3DJointi */
|
|
int daE_VA_c::JointCallBack(J3DJoint* i_joint, int param_1) {
|
|
if (param_1 == 0) {
|
|
J3DModel* model = j3dSys.getModel();
|
|
daE_VA_c* a_this = (daE_VA_c*)model->getUserArea();
|
|
|
|
if (a_this != NULL) {
|
|
a_this->ctrlJoint(i_joint, model);
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
/* 807C2898-807C2A4C 000398 01B4+00 1/1 0/0 0/0 .text calcJointNeck__8daE_VA_cFv */
|
|
void daE_VA_c::calcJointNeck() {
|
|
csXyz sp18;
|
|
|
|
if (field_0x1391 != 0) {
|
|
s16 angleY_to_player = fopAcM_searchPlayerAngleY(this) - shape_angle.y;
|
|
if (angleY_to_player > 0x3000) {
|
|
angleY_to_player = 0x3000;
|
|
}
|
|
if (angleY_to_player < -0x3000) {
|
|
angleY_to_player = -0x3000;
|
|
}
|
|
cLib_addCalcAngleS(&field_0x1394, angleY_to_player, 8, 0x800, 0x40);
|
|
|
|
s16 angleX_to_player = 0x1400 - fopAcM_searchPlayerAngleX(this);
|
|
if (angleX_to_player > 0x3000) {
|
|
angleX_to_player = 0x3000;
|
|
}
|
|
if (angleX_to_player < -0x3000) {
|
|
angleX_to_player = -0x3000;
|
|
}
|
|
cLib_addCalcAngleS(&field_0x1396, angleX_to_player, 8, 0x800, 0x40);
|
|
|
|
if (checkBck(ANM_SUBS_INVITE_A_e) || checkBck(ANM_SUBS_INVITE_B_e)) {
|
|
cLib_addCalcAngleS(&field_0x1398, -0x800, 8, 0x80, 0x40);
|
|
} else if (checkBck(ANM_SUBS_INVITE_C_e)) {
|
|
cLib_addCalcAngleS(&field_0x1398, -0x1800, 8, 0x80, 0x40);
|
|
} else {
|
|
cLib_addCalcAngleS(&field_0x1398, -0x1800, 8, 0x100, 0x40);
|
|
}
|
|
|
|
field_0x1392 = field_0x1391;
|
|
} else {
|
|
field_0x1391 = field_0x1392;
|
|
cLib_addCalcAngleS(&field_0x1394, 0, 8, 0x100, 0x40);
|
|
cLib_addCalcAngleS(&field_0x1396, 0, 8, 0x100, 0x40);
|
|
cLib_addCalcAngleS(&field_0x1398, 0, 8, 0x100, 0x40);
|
|
}
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED08-807CED0C 000060 0004+00 0/1 0/0 0/0 .rodata @4314 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4314 = 74.0f;
|
|
COMPILER_STRIP_GATE(0x807CED08, &lit_4314);
|
|
#pragma pop
|
|
|
|
/* 807CED0C-807CED10 000064 0004+00 0/2 0/0 0/0 .rodata @4315 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4315 = 11.0f;
|
|
COMPILER_STRIP_GATE(0x807CED0C, &lit_4315);
|
|
#pragma pop
|
|
|
|
/* 807CED10-807CED14 000068 0004+00 1/4 0/0 0/0 .rodata @4316 */
|
|
SECTION_RODATA static f32 const lit_4316 = 60.0f;
|
|
COMPILER_STRIP_GATE(0x807CED10, &lit_4316);
|
|
|
|
/* 807CED14-807CED18 00006C 0004+00 0/3 0/0 0/0 .rodata @4317 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4317 = 80.0f;
|
|
COMPILER_STRIP_GATE(0x807CED14, &lit_4317);
|
|
#pragma pop
|
|
|
|
/* 807CED18-807CED1C 000070 0004+00 1/7 0/0 0/0 .rodata @4318 */
|
|
SECTION_RODATA static f32 const lit_4318 = 50.0f;
|
|
COMPILER_STRIP_GATE(0x807CED18, &lit_4318);
|
|
|
|
/* 807CED1C-807CED20 000074 0004+00 0/7 0/0 0/0 .rodata @4319 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4319 = 30.0f;
|
|
COMPILER_STRIP_GATE(0x807CED1C, &lit_4319);
|
|
#pragma pop
|
|
|
|
/* 807CED20-807CED24 000078 0004+00 0/1 0/0 0/0 .rodata @4320 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4320 = 4.0f / 5.0f;
|
|
COMPILER_STRIP_GATE(0x807CED20, &lit_4320);
|
|
#pragma pop
|
|
|
|
/* 807CED24-807CED28 00007C 0004+00 0/5 0/0 0/0 .rodata @4321 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4321 = -10.0f;
|
|
COMPILER_STRIP_GATE(0x807CED24, &lit_4321);
|
|
#pragma pop
|
|
|
|
/* 807CED28-807CED2C 000080 0004+00 0/5 0/0 0/0 .rodata @4322 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4322 = 1.0f / 10.0f;
|
|
COMPILER_STRIP_GATE(0x807CED28, &lit_4322);
|
|
#pragma pop
|
|
|
|
/* 807C2A4C-807C3264 00054C 0818+00 1/1 0/0 0/0 .text calcJointSleeve__8daE_VA_cFv */
|
|
void daE_VA_c::calcJointSleeve() {
|
|
csXyz sp128;
|
|
cXyz sp90(field_0x13b8);
|
|
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_LEFT_COTH_01));
|
|
mDoMtx_stack_c::multVecZero(&field_0x13b8);
|
|
mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &sp128);
|
|
|
|
f32 anm_frame = mpMorf->getFrame();
|
|
if ((checkBck(ANM_SUBS_ATTACK_A1_e) && anm_frame >= 74.0f) ||
|
|
(checkBck(ANM_SUBS_ATTACK_A3_e) && anm_frame <= 11.0f) ||
|
|
(checkBck(ANM_TRANS_ATTACK_A1_e) && anm_frame >= 60.0f) ||
|
|
checkBck(ANM_TRANS_ATTACK_A2_e) || (checkBck(ANM_TRANS_ATTACK_A3_e) && anm_frame <= 60.0f))
|
|
{
|
|
sp128.y = field_0x1466[0].y;
|
|
}
|
|
|
|
field_0x13c4 = field_0x13b8 - sp90;
|
|
|
|
cXyz sp9C;
|
|
cXyz spA8;
|
|
cXyz spB4;
|
|
|
|
field_0x13d0[0] = field_0x13c4;
|
|
field_0x140c[0] = field_0x13b8;
|
|
cXyz* line_pos = field_0x139c.getPos(0);
|
|
*line_pos = field_0x140c[0];
|
|
field_0x1466[0].set(-0x8000, sp128.y, -0x8000);
|
|
line_pos++;
|
|
for (int i = 1; i < 5; i++, line_pos++) {
|
|
f32 var_f29;
|
|
if (i == 1) {
|
|
var_f29 = ZREG_F(0) + 80.0f;
|
|
}
|
|
if (i == 2) {
|
|
var_f29 = ZREG_F(1) + 80.0f;
|
|
}
|
|
if (i == 3) {
|
|
var_f29 = ZREG_F(2) + 50.0f;
|
|
}
|
|
if (i == 4) {
|
|
var_f29 = ZREG_F(3) + 50.0f;
|
|
}
|
|
|
|
if (field_0x140c[i].abs(field_0x140c[i - 1]) > (var_f29 + 30.0f) + nREG_F(3)) {
|
|
spA8 = field_0x140c[i - 1] - field_0x140c[i];
|
|
f32 temp_f28 = spA8.abs();
|
|
|
|
spA8.normalizeZP();
|
|
spA8 = spA8 * (temp_f28 - var_f29);
|
|
|
|
field_0x13d0[i].x = spA8.x;
|
|
field_0x13d0[i].z = spA8.z;
|
|
|
|
if (std::abs(field_0x140c[i].y - field_0x140c[i - 1].y) > var_f29) {
|
|
field_0x13d0[i].y = spA8.y;
|
|
} else if (spA8.y >= 0.0f) {
|
|
if (field_0x13d0[i].y < spA8.y) {
|
|
field_0x13d0[i].y = spA8.y;
|
|
}
|
|
} else {
|
|
field_0x13d0[i].y -= l_HIO.field_0x28;
|
|
|
|
if (field_0x140c[i].y < field_0x140c[i - 1].y - (var_f29 * 0.8f)) {
|
|
if (field_0x13d0[i].y <= -10.0f) {
|
|
field_0x13d0[i].y = -10.0f;
|
|
}
|
|
} else if (field_0x13d0[i].y <= l_HIO.field_0x2c) {
|
|
field_0x13d0[i].y = l_HIO.field_0x2c;
|
|
}
|
|
}
|
|
} else {
|
|
field_0x13d0[i].x *= l_HIO.field_0x24;
|
|
field_0x13d0[i].z *= l_HIO.field_0x24;
|
|
field_0x13d0[i].y -= l_HIO.field_0x28;
|
|
|
|
if (field_0x140c[i].y < field_0x140c[i - 1].y - (var_f29 * 0.8f)) {
|
|
if (field_0x13d0[i].y <= -10.0f) {
|
|
field_0x13d0[i].y = -10.0f;
|
|
}
|
|
} else if (field_0x13d0[i].y <= l_HIO.field_0x2c) {
|
|
field_0x13d0[i].y = l_HIO.field_0x2c;
|
|
}
|
|
}
|
|
|
|
if (field_0x1354 != 0) {
|
|
field_0x13d0[i].y -= l_HIO.field_0x28;
|
|
|
|
if (field_0x13d0[i].y <= l_HIO.field_0x2c) {
|
|
field_0x13d0[i].y = l_HIO.field_0x2c;
|
|
}
|
|
}
|
|
|
|
field_0x140c[i] += field_0x13d0[i];
|
|
if (field_0x140c[i].y < 0.0f) {
|
|
field_0x13d0[i] *= 0.1f;
|
|
field_0x13d0[i].y = 0.0f;
|
|
field_0x140c[i].y = 0.0f;
|
|
}
|
|
|
|
spA8 = field_0x140c[i] - field_0x140c[i - 1];
|
|
spA8.normalizeZP();
|
|
|
|
field_0x140c[i] = field_0x140c[i - 1] + (spA8 * var_f29);
|
|
|
|
line_pos[0] = field_0x140c[i];
|
|
spA8 = line_pos[0] - line_pos[-1];
|
|
|
|
mDoMtx_stack_c::YrotS(-sp128.y);
|
|
mDoMtx_stack_c::transM(spA8);
|
|
mDoMtx_stack_c::multVecZero(&spA8);
|
|
|
|
field_0x1466[i].x = cM_atan2s(spA8.z, spA8.y);
|
|
field_0x1466[i].y = cM_atan2s(spA8.x, spA8.z);
|
|
field_0x1466[i].z = cM_atan2s(spA8.x, spA8.y);
|
|
}
|
|
|
|
field_0x130c = sp128.y;
|
|
field_0x130e = -0x4000;
|
|
|
|
cXyz sp80;
|
|
cXyz sp74;
|
|
cXyz sp68;
|
|
cXyz sp5C;
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
field_0x1448[i].y = field_0x1466[i + 1].x - field_0x1466[0].x;
|
|
field_0x1448[i].z = field_0x1466[0].z - field_0x1466[i + 1].z;
|
|
|
|
if (abs(field_0x1448[i].z) >= 0x4000) {
|
|
field_0x1448[i].y = 0x8000 - field_0x1448[i].y;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED2C-807CED30 000084 0004+00 0/1 0/0 0/0 .rodata @4452 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4452 = 255.0f;
|
|
COMPILER_STRIP_GATE(0x807CED2C, &lit_4452);
|
|
#pragma pop
|
|
|
|
/* 807CED30-807CED34 000088 0004+00 0/1 0/0 0/0 .rodata @4453 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4453 = 2.0f / 5.0f;
|
|
COMPILER_STRIP_GATE(0x807CED30, &lit_4453);
|
|
#pragma pop
|
|
|
|
/* 807CED34-807CED38 00008C 0004+00 0/2 0/0 0/0 .rodata @4454 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_4454 = 2000.0f;
|
|
COMPILER_STRIP_GATE(0x807CED34, &lit_4454);
|
|
#pragma pop
|
|
|
|
/* 807CED38-807CED40 000090 0008+00 0/1 0/0 0/0 .rodata @4458 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static u8 const lit_4458[8] = {
|
|
0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
COMPILER_STRIP_GATE(0x807CED38, &lit_4458);
|
|
#pragma pop
|
|
|
|
/* 807C3264-807C37F8 000D64 0594+00 1/1 0/0 0/0 .text draw__8daE_VA_cFv */
|
|
int daE_VA_c::draw() {
|
|
J3DModel* model = mpMorf->getModel();
|
|
g_env_light.settingTevStruct(0, ¤t.pos, &tevStr);
|
|
|
|
if (!mPlayEndEf) {
|
|
if (!mRopesEnabled) {
|
|
g_env_light.setLightTevColorType_MAJI(model, &tevStr);
|
|
|
|
J3DModelData* modelData = model->getModelData();
|
|
for (u16 i = 0; i < modelData->getMaterialNum(); i++) {
|
|
J3DMaterial* material = modelData->getMaterialNodePointer(i);
|
|
|
|
material->getZMode()->setUpdateEnable(1);
|
|
material->setZCompLoc(1);
|
|
material->setMaterialMode(4);
|
|
|
|
if (i == 0) {
|
|
material->getTevKColor(3)->a = mEyeAlpha;
|
|
} else {
|
|
material->getTevKColor(0)->r = mGlowLightR;
|
|
material->getTevKColor(0)->g = mGlowLightG;
|
|
material->getTevKColor(0)->b = mGlowLightB;
|
|
|
|
if (!field_0x1318) {
|
|
material->getTevColor(0)->r = field_0x1380;
|
|
material->getTevColor(0)->g = field_0x1380;
|
|
material->getTevColor(0)->b = field_0x1380;
|
|
} else {
|
|
material->getTevColor(0)->r = field_0x1318;
|
|
material->getTevColor(0)->g = field_0x1318;
|
|
material->getTevColor(0)->b = field_0x1318;
|
|
}
|
|
|
|
material->getTevKColor(3)->a = mGlowLightA;
|
|
}
|
|
|
|
J3DBlend* blend = material->getBlend();
|
|
if (mAlphaType >= 2) {
|
|
blend->setDstFactor(5);
|
|
} else {
|
|
blend->setDstFactor(1);
|
|
}
|
|
}
|
|
|
|
mInvisModel.entryDL(NULL);
|
|
}
|
|
} else {
|
|
model = mpEndEfMorf->getModel();
|
|
g_env_light.setLightTevColorType_MAJI(model, &tevStr);
|
|
mpEndEfBrk->entry(model->getModelData());
|
|
mpEndEfMorf->entryDL();
|
|
}
|
|
|
|
f32 var_f31 = tevStr.field_0x344;
|
|
if (mAlphaType == 2) {
|
|
f32 temp_f2 = (1000.0f - current.pos.y) / 1000.0f;
|
|
if (temp_f2 < 0.0f) {
|
|
temp_f2 = 0.0f;
|
|
}
|
|
|
|
if (temp_f2 > 1.0f) {
|
|
temp_f2 = 1.0f;
|
|
}
|
|
|
|
tevStr.field_0x344 = temp_f2 * ((var_f31 * (f32)mGlowLightA) / 255.0f);
|
|
if (tevStr.field_0x344 > 0.4f) {
|
|
tevStr.field_0x344 = 0.4f;
|
|
}
|
|
|
|
mShadowKey = dComIfGd_setShadow(mShadowKey, 0, model, ¤t.pos, nREG_F(19) + 2000.0f,
|
|
0.0f, current.pos.y, mAcch.GetGroundH(), mAcch.m_gnd,
|
|
&tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
|
|
}
|
|
|
|
if (mpWeaponModel != NULL && field_0x1240 != 2) {
|
|
g_env_light.setLightTevColorType_MAJI(mpWeaponModel, &tevStr);
|
|
mpWeaponBrk->entry(mpWeaponModel->getModelData());
|
|
fopAcM_setEffectMtx(this, mpWeaponModel->getModelData());
|
|
mDoExt_modelUpdateDL(mpWeaponModel);
|
|
|
|
if (mAlphaType == 2) {
|
|
dComIfGd_addRealShadow(mShadowKey, mpWeaponModel);
|
|
} else {
|
|
tevStr.field_0x344 = var_f31;
|
|
mShadowKey =
|
|
dComIfGd_setShadow(mShadowKey, 1, mpWeaponModel, ¤t.pos, nREG_F(19) + 2000.0f,
|
|
0.0f, current.pos.y, mAcch.GetGroundH(), mAcch.m_gnd, &tevStr, 0,
|
|
1.0f, dDlst_shadowControl_c::getSimpleTex());
|
|
}
|
|
}
|
|
|
|
if (mRopesEnabled) {
|
|
if (mDrawRopes) {
|
|
static GXColor l_color = {0x64, 0x46, 0x00, 0xFF};
|
|
|
|
mRope.update(110, l_color, &tevStr);
|
|
dComIfGd_set3DlineMatDark(&mRope);
|
|
}
|
|
|
|
for (int i = 0; i < 40; i++) {
|
|
if (!(mCardFlags[i] & 0x80)) {
|
|
g_env_light.setLightTevColorType_MAJI(mpCardModels[i], &tevStr);
|
|
mDoExt_modelUpdateDL(mpCardModels[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
|
|
/* 807C37F8-807C3818 0012F8 0020+00 1/0 0/0 0/0 .text daE_VA_Draw__FP8daE_VA_c */
|
|
static int daE_VA_Draw(daE_VA_c* i_this) {
|
|
return i_this->draw();
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED40-807CED44 000098 0004+00 1/3 0/0 0/0 .rodata @4473 */
|
|
SECTION_RODATA static f32 const lit_4473 = -1.0f;
|
|
COMPILER_STRIP_GATE(0x807CED40, &lit_4473);
|
|
|
|
/* 807CEEFC-807CEEFC 000254 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DEAD static char const* const stringBase_807CEEFC = "E_VA";
|
|
#pragma pop
|
|
|
|
/* 807C3818-807C38BC 001318 00A4+00 19/19 0/0 0/0 .text setBck__8daE_VA_cFiUcff */
|
|
void daE_VA_c::setBck(int i_anmID, u8 i_attr, f32 i_morf, f32 i_rate) {
|
|
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_VA", i_anmID), i_attr, i_morf, i_rate,
|
|
0.0f, -1.0f);
|
|
}
|
|
|
|
|
|
/* 807C38BC-807C3918 0013BC 005C+00 8/8 0/0 0/0 .text checkBck__8daE_VA_cFi */
|
|
bool daE_VA_c::checkBck(int i_anmID) {
|
|
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes("E_VA", i_anmID);
|
|
return mpMorf->getAnm() == pbck ? TRUE : FALSE;
|
|
}
|
|
|
|
/* 807C3918-807C39C4 001418 00AC+00 21/21 0/0 0/0 .text setActionMode__8daE_VA_cFii */
|
|
void daE_VA_c::setActionMode(int i_action, int i_mode) {
|
|
if (dComIfGs_isOneZoneSwitch(6, fopAcM_GetRoomNo(this)) && i_action != ACTION_OPACI_DOWN_e &&
|
|
i_action != ACTION_OPACI_DOWN_DAMAGE_e)
|
|
{
|
|
dComIfGs_offOneZoneSwitch(6, fopAcM_GetRoomNo(this));
|
|
|
|
if (!dComIfGs_isOneZoneSwitch(7, fopAcM_GetRoomNo(this))) {
|
|
dComIfGs_onOneZoneSwitch(7, fopAcM_GetRoomNo(this));
|
|
}
|
|
}
|
|
|
|
field_0x1381 = 0;
|
|
mAction = i_action;
|
|
mMode = i_mode;
|
|
mGlowBody = 0;
|
|
}
|
|
|
|
/* 807C39C4-807C3A1C 0014C4 0058+00 1/1 0/0 0/0 .text getWolfCutType__8daE_VA_cFv */
|
|
int daE_VA_c::getWolfCutType() {
|
|
switch (daPy_getPlayerActorClass()->getCutType()) {
|
|
case daPy_py_c::CUT_TYPE_WOLF_B_LEFT:
|
|
case daPy_py_c::CUT_TYPE_WOLF_B_RIGHT:
|
|
return WL_CUT_TYPE_SMALL;
|
|
case daPy_py_c::CUT_TYPE_WOLF_JUMP:
|
|
return WL_CUT_TYPE_JUMP;
|
|
case daPy_py_c::CUT_TYPE_WOLF_B_FRONT:
|
|
case daPy_py_c::CUT_TYPE_WOLF_B_BACK:
|
|
case daPy_py_c::CUT_TYPE_WOLF_UNK_30:
|
|
case daPy_py_c::CUT_TYPE_WOLF_JUMP_S:
|
|
case daPy_py_c::CUT_TYPE_WOLF_JUMP_S_FINISH:
|
|
case daPy_py_c::CUT_TYPE_WOLF_TURN_LEFT:
|
|
case daPy_py_c::CUT_TYPE_WOLF_TURN_RIGHT:
|
|
case daPy_py_c::CUT_TYPE_WOLF_UNK_35:
|
|
case daPy_py_c::CUT_TYPE_WOLF_LOCK:
|
|
return WL_CUT_TYPE_LARGE;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* 807C3A1C-807C3A50 00151C 0034+00 3/3 0/0 0/0 .text onSwordAtBit__8daE_VA_cFv */
|
|
void daE_VA_c::onSwordAtBit() {
|
|
mAttackSphs[0].OnAtSetBit();
|
|
mAttackSphs[1].OnAtSetBit();
|
|
mAttackSphs[2].OnAtSetBit();
|
|
mAttackSphs[3].OnAtSetBit();
|
|
}
|
|
|
|
/* 807C3A50-807C3AB0 001550 0060+00 3/3 0/0 0/0 .text offSwordShield__8daE_VA_cFv */
|
|
void daE_VA_c::offSwordShield() {
|
|
if (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_WOLF_JUMP) {
|
|
mOffTgTimer = 3;
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
mAttackSphs[i].OffCoSetBit();
|
|
mAttackSphs[i].OffTgShield();
|
|
mAttackSphs[i].OnTgNoHitMark();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 807C3AB0-807C3B58 0015B0 00A8+00 1/1 0/0 0/0 .text setTransDamage__8daE_VA_cFP4cXyz */
|
|
void daE_VA_c::setTransDamage(cXyz* param_0) {
|
|
u16 hitmark;
|
|
if (field_0x138f >= 4)
|
|
hitmark = 3;
|
|
else
|
|
hitmark = 1;
|
|
|
|
dComIfGp_setHitMark(hitmark, this, param_0, NULL, NULL, 0);
|
|
dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f));
|
|
setActionMode(ACTION_TRANS_DAMAGE_e, 0);
|
|
}
|
|
|
|
|
|
/* 807C3B58-807C440C 001658 08B4+00 1/1 0/0 0/0 .text damage_check__8daE_VA_cFv */
|
|
void daE_VA_c::damage_check() {
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
int cut_type = getWolfCutType();
|
|
mBodyCcStts.Move();
|
|
|
|
if (mAttackSphIFrameTimer == 0) {
|
|
for (int i = 0; i < 4; i++) {
|
|
if (mAttackSphs[i].ChkTgHit()) {
|
|
if (mAttackSphs[i].GetTgHitObj()->ChkAtType(0xD8000000)) {
|
|
mAttackSphIFrameTimer = 20;
|
|
} else {
|
|
mAttackSphIFrameTimer = 10;
|
|
}
|
|
|
|
def_se_set(&mSound, mAttackSphs[i].GetTgHitObj(), 0x2A, this);
|
|
mAttackSphs[i].ClrTgHit();
|
|
}
|
|
}
|
|
}
|
|
|
|
if (mRopesEnabled) {
|
|
if (mAction == ACTION_DEMO_OP_WAIT_e) {
|
|
for (int i = 0; i < 190; i++) {
|
|
if (mLineSphs[i].ChkTgHit()) {
|
|
if (mLineSphs[i].GetTgHitObj()->ChkAtType(AT_TYPE_NORMAL_SWORD)) {
|
|
setActionMode(ACTION_DEMO_OP_e, 0);
|
|
} else {
|
|
int var_r24 = i / 19;
|
|
field_0x1104[var_r24] = nREG_F(17) + 1.0f;
|
|
field_0x112c[var_r24] = 0;
|
|
setVibTag(0, var_r24);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (mNeckSphIFrameTimer == 0 && mNeckSph.ChkTgHit()) {
|
|
mAtInfo.mpCollider = mNeckSph.GetTgHitObj();
|
|
|
|
if (mAtInfo.mpCollider->ChkAtType(0xD8000000)) {
|
|
if (cut_type == WL_CUT_TYPE_SMALL) {
|
|
mNeckSphIFrameTimer = 15;
|
|
} else {
|
|
mNeckSphIFrameTimer = 20;
|
|
}
|
|
} else {
|
|
mNeckSphIFrameTimer = 10;
|
|
}
|
|
|
|
if (mAtInfo.mAttackPower <= 1) {
|
|
mNeckSphIFrameTimer = KREG_S(8) + 10;
|
|
}
|
|
|
|
mOffTgTimer = mNeckSphIFrameTimer;
|
|
|
|
if (cut_type != WL_CUT_TYPE_SMALL &&
|
|
mAtInfo.mpCollider->ChkAtType(AT_TYPE_WOLF_ATTACK) &&
|
|
player->onWolfEnemyHangBite(this))
|
|
{
|
|
setActionMode(ACTION_TRANS_BITE_DAMAGE_e, 0);
|
|
mSound.startCollisionSE(Z2SE_HIT_WOLFBITE, 31);
|
|
mBodyCylIFrameTimer = 20;
|
|
return;
|
|
}
|
|
|
|
if (mAlphaType == 1 && mGlowBody != 0) {
|
|
mSound.startCollisionSE(Z2SE_HIT_WOLFBITE, 32);
|
|
setTransDamage(mNeckSph.GetTgHitPosP());
|
|
return;
|
|
}
|
|
|
|
if (cut_type == WL_CUT_TYPE_JUMP) {
|
|
setActionMode(ACTION_TRANS_THROUGH_e, 0);
|
|
mNeckSph.ClrTgHit();
|
|
return;
|
|
}
|
|
|
|
mNeckSphIFrameTimer = 0;
|
|
mOffTgTimer = 0;
|
|
}
|
|
|
|
if (mBodyCylIFrameTimer == 0) {
|
|
BOOL body_hit = false;
|
|
dCcD_Cyl hit_cyl;
|
|
|
|
if (mBodyCyls[0].ChkTgHit()) {
|
|
mAtInfo.mpCollider = mBodyCyls[0].GetTgHitObj();
|
|
body_hit = true;
|
|
hit_cyl = mBodyCyls[0];
|
|
}
|
|
|
|
if (mBodyCyls[1].ChkTgHit()) {
|
|
mAtInfo.mpCollider = mBodyCyls[1].GetTgHitObj();
|
|
body_hit = true;
|
|
hit_cyl = mBodyCyls[1];
|
|
}
|
|
|
|
if (body_hit) {
|
|
if (mAlphaType != 2 && mAtInfo.mpCollider->ChkAtType(0xD8000000) && mGlowBody == 0)
|
|
{
|
|
mBodyCyls[0].ClrTgHit();
|
|
mBodyCyls[1].ClrTgHit();
|
|
return;
|
|
}
|
|
|
|
mAtInfo.field_0x18 = 0;
|
|
health = 100;
|
|
cc_at_check(this, &mAtInfo);
|
|
field_0x1368 = 100 - health;
|
|
|
|
if (mAtInfo.mpCollider->ChkAtType(0xD8000000)) {
|
|
mBodyCylIFrameTimer = 20;
|
|
} else {
|
|
mBodyCylIFrameTimer = 10;
|
|
}
|
|
|
|
if (mAtInfo.mAttackPower <= 1) {
|
|
mBodyCylIFrameTimer = KREG_S(8) + 10;
|
|
}
|
|
|
|
mOffTgTimer = mBodyCylIFrameTimer;
|
|
|
|
if (mAlphaType == 1) {
|
|
setTransDamage(hit_cyl.GetTgHitPosP());
|
|
} else if (mAlphaType == 2) {
|
|
if (field_0x1381 == 0) {
|
|
field_0x1385 = 0;
|
|
|
|
if (mAction == ACTION_OPACI_FLY_e) {
|
|
if (mAtInfo.mpCollider->ChkAtType(0x16060)) {
|
|
setActionMode(ACTION_OPACI_DAMAGE_e, 0);
|
|
}
|
|
} else if (mAtInfo.mpCollider->ChkAtType(0x14050)) {
|
|
if (field_0x1386 != 0) {
|
|
setActionMode(ACTION_OPACI_DOWN_DAMAGE_e, 2);
|
|
mDownTimer = l_HIO.mDownTime;
|
|
field_0x1381 = 1;
|
|
} else {
|
|
dComIfGp_getVibration().StopQuake(31);
|
|
setActionMode(ACTION_OPACI_DAMAGE_e, 10);
|
|
}
|
|
} else if (mAtInfo.mAttackPower != 0) {
|
|
setActionMode(ACTION_OPACI_DOWN_e, 0);
|
|
field_0x1381 = 1;
|
|
}
|
|
} else {
|
|
BOOL var_r26 = false;
|
|
|
|
if (player->getCutCount() >= 4) {
|
|
if (field_0x1383 != 0) {
|
|
var_r26 = true;
|
|
}
|
|
} else if (((dCcD_GObjInf*)mAtInfo.mpCollider)->GetAtSpl() == 1) {
|
|
field_0x1385++;
|
|
|
|
if (field_0x1385 >= 2) {
|
|
var_r26 = true;
|
|
}
|
|
}
|
|
|
|
int var_r29 = 0;
|
|
|
|
if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_NORMAL_SWORD)) {
|
|
if (mAtInfo.mpCollider->GetAtAtp() >= 4) {
|
|
if (player->checkMasterSwordEquip()) {
|
|
if (player->getSwordAtUpTime() != 0) {
|
|
var_r29 = 6;
|
|
} else {
|
|
var_r29 = 2;
|
|
}
|
|
} else if (player->getSwordAtUpTime() != 0) {
|
|
var_r29 = 2;
|
|
} else {
|
|
var_r29 = 1;
|
|
}
|
|
} else if (player->checkMasterSwordEquip()) {
|
|
if (player->getSwordAtUpTime() != 0 || var_r26) {
|
|
var_r29 = 2;
|
|
}
|
|
} else if (var_r26) {
|
|
if (player->getSwordAtUpTime() != 0) {
|
|
var_r29 = 2;
|
|
} else {
|
|
var_r29 = 1;
|
|
}
|
|
}
|
|
} else if (mAtInfo.mpCollider->ChkAtType(0xD8000000) &&
|
|
(((dCcD_GObjInf*)mAtInfo.mpCollider)->GetAtSpl() == 1 ||
|
|
mAtInfo.mpCollider->GetAtAtp() >= 4))
|
|
{
|
|
var_r29 = 1;
|
|
}
|
|
|
|
field_0x1383++;
|
|
|
|
if (var_r29 != 0) {
|
|
field_0x1385 = 0;
|
|
field_0x1384 += var_r29;
|
|
setActionMode(ACTION_OPACI_DOWN_e, 5);
|
|
} else if (mAtInfo.mpCollider->ChkAtType(0x4050)) {
|
|
setActionMode(ACTION_OPACI_DOWN_DAMAGE_e, 2);
|
|
} else {
|
|
if (player->getCutCount() > 1) {
|
|
field_0x1382 ^= 1;
|
|
} else if (cM_rnd() < 0.5f) {
|
|
field_0x1382 = 0;
|
|
} else {
|
|
field_0x1382 = 1;
|
|
}
|
|
|
|
setActionMode(ACTION_OPACI_DOWN_DAMAGE_e, field_0x1382);
|
|
}
|
|
|
|
field_0x1381 = 1;
|
|
}
|
|
}
|
|
|
|
mBodyCyls[0].ClrTgHit();
|
|
mBodyCyls[1].ClrTgHit();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C440C-807C44A0 001F0C 0094+00 1/1 0/0 0/0 .text __as__8dCcD_CylFRC8dCcD_Cyl */
|
|
// void dCcD_Cyl::operator=(dCcD_Cyl const& param_0) {
|
|
extern "C" void __as__8dCcD_CylFRC8dCcD_Cyl() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807C44A0-807C46E8 001FA0 0248+00 1/1 0/0 0/0 .text __as__12dCcD_GObjInfFRC12dCcD_GObjInf */
|
|
// void dCcD_GObjInf::operator=(dCcD_GObjInf const& param_0) {
|
|
extern "C" void __as__12dCcD_GObjInfFRC12dCcD_GObjInf() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807C46E8-807C47B4 0021E8 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_CylFv */
|
|
// dCcD_Cyl::~dCcD_Cyl() {
|
|
extern "C" void __dt__8dCcD_CylFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807C47B4-807C47FC 0022B4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
|
// cM3dGCyl::~cM3dGCyl() {
|
|
extern "C" void __dt__8cM3dGCylFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807C47FC-807C4844 0022FC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
|
// cM3dGAab::~cM3dGAab() {
|
|
extern "C" void __dt__8cM3dGAabFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807C4844-807C49B4 002344 0170+00 1/1 0/0 0/0 .text setFireEffect__8daE_VA_cFi */
|
|
void daE_VA_c::setFireEffect(int param_0) {
|
|
cXyz scale(1.0f, 1.0f, 1.0f);
|
|
int idx = param_0 * 3;
|
|
|
|
field_0x10f80[idx] =
|
|
dComIfGp_particle_set(field_0x10f80[idx], 0x3AD, &field_0x1140[param_0], NULL, &scale);
|
|
field_0x10f80[idx + 1] =
|
|
dComIfGp_particle_set(field_0x10f80[idx + 1], 0x3AF, &field_0x1140[param_0], NULL, &scale);
|
|
field_0x10f80[idx + 2] =
|
|
dComIfGp_particle_set(field_0x10f80[idx + 2], 0x3AE, &field_0x1140[param_0], NULL, &scale);
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED44-807CED48 00009C 0004+00 0/0 0/0 0/0 .rodata @5085 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5085 = 16.0f / 5.0f;
|
|
COMPILER_STRIP_GATE(0x807CED44, &lit_5085);
|
|
#pragma pop
|
|
|
|
/* 807CED48-807CED4C 0000A0 0004+00 1/12 0/0 0/0 .rodata @5146 */
|
|
SECTION_RODATA static f32 const lit_5146 = 10.0f;
|
|
COMPILER_STRIP_GATE(0x807CED48, &lit_5146);
|
|
|
|
/* 807C49B4-807C4B54 0024B4 01A0+00 1/1 0/0 0/0 .text setFootEffect__8daE_VA_cFv */
|
|
void daE_VA_c::setFootEffect() {
|
|
if (!field_0x1388) {
|
|
int var_r6 = 0;
|
|
if (current.pos.y < 10.0f) {
|
|
var_r6 = 2;
|
|
}
|
|
|
|
cXyz pos(current.pos);
|
|
cXyz scale(l_HIO.mModelSize, l_HIO.mModelSize, l_HIO.mModelSize);
|
|
|
|
static u16 va_foot_smoke_id[] = {0x8891, 0x8892, 0x85C4, 0x85C5};
|
|
mFootSmokeEmtrIDs[0] =
|
|
dComIfGp_particle_set(mFootSmokeEmtrIDs[0], va_foot_smoke_id[var_r6], &pos, &tevStr,
|
|
&shape_angle, &scale, 0xFF, NULL, -1, NULL, NULL, NULL);
|
|
mFootSmokeEmtrIDs[1] =
|
|
dComIfGp_particle_set(mFootSmokeEmtrIDs[1], va_foot_smoke_id[var_r6 + 1], &pos, &tevStr,
|
|
&shape_angle, &scale, 0xFF, NULL, -1, NULL, NULL, NULL);
|
|
|
|
JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mFootSmokeEmtrIDs[0]);
|
|
if (emitter != NULL) {
|
|
emitter->setGlobalAlpha(mFootSmokeAlpha);
|
|
}
|
|
|
|
emitter = dComIfGp_particle_getEmitter(mFootSmokeEmtrIDs[1]);
|
|
if (emitter != NULL) {
|
|
emitter->setGlobalAlpha(mFootSmokeAlpha);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED4C-807CED50 0000A4 0004+00 0/1 0/0 0/0 .rodata @5224 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5224 = -7.0f;
|
|
COMPILER_STRIP_GATE(0x807CED4C, &lit_5224);
|
|
#pragma pop
|
|
|
|
/* 807C4B54-807C4DFC 002654 02A8+00 1/1 0/0 0/0 .text setWeponEffect__8daE_VA_cFv */
|
|
void daE_VA_c::setWeponEffect() {
|
|
cXyz pos;
|
|
cXyz scale(l_HIO.mModelSize, l_HIO.mModelSize, l_HIO.mModelSize);
|
|
|
|
switch (mWeponEfMode) {
|
|
case 1:
|
|
pos.set(11.0f, 0.0f, -7.0f);
|
|
for (int i = 0; i < 3; i++) {
|
|
mWeponEffEmtrIDs[i] =
|
|
dComIfGp_particle_set(mWeponEffEmtrIDs[i], va_wepon_eff_id1[i], &pos, &tevStr,
|
|
&shape_angle, &scale, 0xFF, NULL, -1, NULL, NULL, NULL);
|
|
}
|
|
break;
|
|
case 2:
|
|
pos.set(11.0f, 0.0f, -7.0f);
|
|
field_0x10f74 = dComIfGp_particle_set(field_0x10f74, 0x8601, &pos, &tevStr, &shape_angle,
|
|
&scale, 0xFF, NULL, -1, NULL, NULL, NULL);
|
|
/* fallthrough */
|
|
case 3:
|
|
pos = current.pos;
|
|
MtxP model_mtx = mpWeaponModel->getBaseTRMtx();
|
|
mSound.startCreatureSoundLevel(Z2SE_EN_VA_SWD_FLY, 0, -1);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
mWeponEffEmtrIDs[i] =
|
|
dComIfGp_particle_set(mWeponEffEmtrIDs[i], va_wepon_eff_id2[i], &pos, &tevStr,
|
|
&shape_angle, &scale, 0xFF, NULL, -1, NULL, NULL, NULL);
|
|
|
|
JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mWeponEffEmtrIDs[i]);
|
|
if (emitter != NULL) {
|
|
emitter->setGlobalSRTMatrix(model_mtx);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C4DFC-807C4F10 0028FC 0114+00 1/1 0/0 0/0 .text setBugsEffect__8daE_VA_cFv */
|
|
void daE_VA_c::setBugsEffect() {
|
|
J3DModel* model = mpMorf->getModel();
|
|
JGeometry::TVec3<f32> scale(l_HIO.mModelSize, l_HIO.mModelSize, l_HIO.mModelSize);
|
|
|
|
for (int i = 0; i < 12; i++) {
|
|
JPABaseEmitter* emitter =
|
|
dComIfGp_particle_set(va_bugs_eff_id[i], ¤t.pos, NULL, NULL);
|
|
if (emitter != NULL) {
|
|
emitter->setGlobalSRTMatrix(model->getAnmMtx(va_bugs_eff_jnt[i]));
|
|
emitter->setGlobalParticleScale(scale);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C4F10-807C4FCC 002A10 00BC+00 4/4 0/0 0/0 .text setWeponLandEffect__8daE_VA_cFv */
|
|
void daE_VA_c::setWeponLandEffect() {
|
|
cXyz scale(l_HIO.mModelSize, l_HIO.mModelSize, l_HIO.mModelSize);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
dComIfGp_particle_set(va_weapon_land_eff_id[i], ¤t.pos, &tevStr, &shape_angle,
|
|
&scale);
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C4FCC-807C50A4 002ACC 00D8+00 1/1 0/0 0/0 .text setWeponGlow__8daE_VA_cFv */
|
|
void daE_VA_c::setWeponGlow() {
|
|
mWeponEffEmtrIDs[0] = dComIfGp_particle_set(mWeponEffEmtrIDs[0], 0x8600, ¤t.pos, &tevStr);
|
|
|
|
JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mWeponEffEmtrIDs[0]);
|
|
if (emitter != NULL) {
|
|
emitter->setGlobalSRTMatrix(mpWeaponModel->getBaseTRMtx());
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C50A4-807C5188 002BA4 00E4+00 1/1 0/0 0/0 .text setWeponFlashScreen__8daE_VA_cFv */
|
|
void daE_VA_c::setWeponFlashScreen() {
|
|
cXyz pos(0.0f, 0.0f, 0.0f);
|
|
dComIfGp_particle_set(0x85FE, &pos, &tevStr, NULL, NULL);
|
|
dComIfGp_particle_set(0x85FF, &pos, &tevStr, NULL, NULL);
|
|
}
|
|
|
|
|
|
/* 807C5188-807C5258 002C88 00D0+00 1/1 0/0 0/0 .text setMagicEffect__8daE_VA_cFi */
|
|
void daE_VA_c::setMagicEffect(int param_0) {
|
|
int idx = param_0 * 3;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
field_0x10f80[idx + i] = dComIfGp_particle_set(field_0x10f80[idx + i], va_magic_eff_id[i],
|
|
&mMagicPos[param_0], NULL, NULL);
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C5258-807C5338 002D58 00E0+00 1/1 0/0 0/0 .text setMagicHitEffect__8daE_VA_cFi */
|
|
void daE_VA_c::setMagicHitEffect(int param_0) {
|
|
dComIfGp_particle_set(0x8846, &mMagicPos[param_0], NULL, NULL);
|
|
dComIfGp_particle_set(0x8847, &mMagicPos[param_0], NULL, NULL);
|
|
}
|
|
|
|
|
|
/* 807C5338-807C53A8 002E38 0070+00 1/1 0/0 0/0 .text demo_skip__8daE_VA_cFi */
|
|
void daE_VA_c::demo_skip(int param_0) {
|
|
Z2GetAudioMgr()->bgmStreamStop(30);
|
|
cDmr_SkipInfo = 1;
|
|
dStage_changeScene(1, 0.0f, 0, fopAcM_GetRoomNo(this), 0, -1);
|
|
}
|
|
|
|
|
|
/* 807C53A8-807C53DC 002EA8 0034+00 1/1 0/0 0/0 .text DemoSkipCallBack__8daE_VA_cFPvi */
|
|
int daE_VA_c::DemoSkipCallBack(void* i_this, int param_1) {
|
|
if (i_this != NULL) {
|
|
((daE_VA_c*)i_this)->demo_skip(param_1);
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED50-807CED54 0000A8 0004+00 1/1 0/0 0/0 .rodata @5407 */
|
|
SECTION_RODATA static f32 const lit_5407 = 115.0f;
|
|
COMPILER_STRIP_GATE(0x807CED50, &lit_5407);
|
|
|
|
/* 807CED54-807CED58 0000AC 0004+00 1/2 0/0 0/0 .rodata @5408 */
|
|
SECTION_RODATA static f32 const lit_5408 = 65.0f;
|
|
COMPILER_STRIP_GATE(0x807CED54, &lit_5408);
|
|
|
|
/* 807C53DC-807C53FC 002EDC 0020+00 2/2 0/0 0/0 .text getRopeLength__8daE_VA_cFi */
|
|
f32 daE_VA_c::getRopeLength(int param_0) {
|
|
if (param_0 < 5) {
|
|
return nREG_F(18) + 115.0f;
|
|
} else {
|
|
return nREG_F(19) + 65.0f;
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED58-807CED5C 0000B0 0004+00 0/2 0/0 0/0 .rodata @5833 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5833 = 150.0f;
|
|
COMPILER_STRIP_GATE(0x807CED58, &lit_5833);
|
|
#pragma pop
|
|
|
|
/* 807CED5C-807CED60 0000B4 0004+00 0/2 0/0 0/0 .rodata @5834 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5834 = -150.0f;
|
|
COMPILER_STRIP_GATE(0x807CED5C, &lit_5834);
|
|
#pragma pop
|
|
|
|
/* 807CED60-807CED64 0000B8 0004+00 0/2 0/0 0/0 .rodata @5835 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5835 = 400.0f;
|
|
COMPILER_STRIP_GATE(0x807CED60, &lit_5835);
|
|
#pragma pop
|
|
|
|
/* 807CED64-807CED68 0000BC 0004+00 0/2 0/0 0/0 .rodata @5836 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5836 = -400.0f;
|
|
COMPILER_STRIP_GATE(0x807CED64, &lit_5836);
|
|
#pragma pop
|
|
|
|
/* 807CED68-807CED6C 0000C0 0004+00 0/4 0/0 0/0 .rodata @5837 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5837 = -5.0f;
|
|
COMPILER_STRIP_GATE(0x807CED68, &lit_5837);
|
|
#pragma pop
|
|
|
|
/* 807CED6C-807CED70 0000C4 0004+00 0/4 0/0 0/0 .rodata @5838 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5838 = 5.0f;
|
|
COMPILER_STRIP_GATE(0x807CED6C, &lit_5838);
|
|
#pragma pop
|
|
|
|
/* 807CED70-807CED74 0000C8 0004+00 0/2 0/0 0/0 .rodata @5839 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5839 = -3.0f;
|
|
COMPILER_STRIP_GATE(0x807CED70, &lit_5839);
|
|
#pragma pop
|
|
|
|
/* 807CED74-807CED78 0000CC 0004+00 0/4 0/0 0/0 .rodata @5840 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5840 = 300.0f;
|
|
COMPILER_STRIP_GATE(0x807CED74, &lit_5840);
|
|
#pragma pop
|
|
|
|
/* 807CED78-807CED80 0000D0 0004+04 0/1 0/0 0/0 .rodata @5841 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5841[1 + 1 /* padding */] = {
|
|
1.0f / 5.0f,
|
|
/* padding */
|
|
0.0f,
|
|
};
|
|
COMPILER_STRIP_GATE(0x807CED78, &lit_5841);
|
|
#pragma pop
|
|
|
|
/* 807CED80-807CED88 0000D8 0008+00 3/10 0/0 0/0 .rodata @5843 */
|
|
SECTION_RODATA static u8 const lit_5843[8] = {
|
|
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
|
};
|
|
COMPILER_STRIP_GATE(0x807CED80, &lit_5843);
|
|
|
|
/* 807CF504-807CF510 000094 000C+00 0/1 0/0 0/0 .bss @5409 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5409[12];
|
|
#pragma pop
|
|
|
|
/* 807CF510-807CF51C 0000A0 000C+00 0/1 0/0 0/0 .bss @5410 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5410[12];
|
|
#pragma pop
|
|
|
|
/* 807CF51C-807CF528 0000AC 000C+00 0/1 0/0 0/0 .bss @5411 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5411[12];
|
|
#pragma pop
|
|
|
|
/* 807CF528-807CF534 0000B8 000C+00 0/1 0/0 0/0 .bss @5412 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5412[12];
|
|
#pragma pop
|
|
|
|
/* 807CF534-807CF540 0000C4 000C+00 0/1 0/0 0/0 .bss @5413 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5413[12];
|
|
#pragma pop
|
|
|
|
/* 807CF540-807CF54C 0000D0 000C+00 0/1 0/0 0/0 .bss @5414 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5414[12];
|
|
#pragma pop
|
|
|
|
/* 807CF54C-807CF558 0000DC 000C+00 0/1 0/0 0/0 .bss @5415 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5415[12];
|
|
#pragma pop
|
|
|
|
/* 807CF558-807CF564 0000E8 000C+00 0/1 0/0 0/0 .bss @5416 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5416[12];
|
|
#pragma pop
|
|
|
|
/* 807CF564-807CF570 0000F4 000C+00 0/1 0/0 0/0 .bss @5417 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5417[12];
|
|
#pragma pop
|
|
|
|
/* 807CF570-807CF57C 000100 000C+00 0/1 0/0 0/0 .bss @5418 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5418[12];
|
|
#pragma pop
|
|
|
|
/* 807CF57C-807CF5F4 00010C 0078+00 1/2 0/0 0/0 .bss line_end_pos */
|
|
static cXyz line_end_pos[] = {
|
|
cXyz(0.0f, 5.0f, 990.0f), cXyz(971.0f, 5.0f, 326.0f), cXyz(582.0f, 5.0f, -801.0f),
|
|
cXyz(-582.0f, 5.0f, -801.0f), cXyz(-942.0f, 5.0f, 306.0f), cXyz(202.0f, 5.0f, 501.0f),
|
|
cXyz(559.0f, 5.0f, -17.0f), cXyz(458.0f, 5.0f, -306.0f), cXyz(-131.0f, 5.0f, -524.0f),
|
|
cXyz(-414.0f, 5.0f, 347.0f),
|
|
};
|
|
|
|
/* 807CF5F4-807CF600 000184 000C+00 0/1 0/0 0/0 .bss @5419 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5419[12];
|
|
#pragma pop
|
|
|
|
/* 807CF600-807CF60C 000190 000C+00 0/1 0/0 0/0 .bss @5420 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5420[12];
|
|
#pragma pop
|
|
|
|
/* 807CF60C-807CF618 00019C 000C+00 0/1 0/0 0/0 .bss @5421 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5421[12];
|
|
#pragma pop
|
|
|
|
/* 807CF618-807CF624 0001A8 000C+00 0/1 0/0 0/0 .bss @5422 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5422[12];
|
|
#pragma pop
|
|
|
|
/* 807CF624-807CF630 0001B4 000C+00 0/1 0/0 0/0 .bss @5423 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5423[12];
|
|
#pragma pop
|
|
|
|
/* 807CF630-807CF63C 0001C0 000C+00 0/1 0/0 0/0 .bss @5424 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5424[12];
|
|
#pragma pop
|
|
|
|
/* 807CF63C-807CF648 0001CC 000C+00 0/1 0/0 0/0 .bss @5425 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5425[12];
|
|
#pragma pop
|
|
|
|
/* 807CF648-807CF654 0001D8 000C+00 0/1 0/0 0/0 .bss @5426 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5426[12];
|
|
#pragma pop
|
|
|
|
/* 807CF654-807CF660 0001E4 000C+00 0/1 0/0 0/0 .bss @5427 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5427[12];
|
|
#pragma pop
|
|
|
|
/* 807CF660-807CF66C 0001F0 000C+00 0/1 0/0 0/0 .bss @5428 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_5428[12];
|
|
#pragma pop
|
|
|
|
/* 807CF66C-807CF6E4 0001FC 0078+00 1/2 0/0 0/0 .bss line_start_pos */
|
|
static cXyz line_start_pos[] = {
|
|
cXyz(-5.0f, -10.0f, -15.0f), cXyz(0.0f, 0.0f, -10.0f), cXyz(0.0f, -10.0f, -10.0f),
|
|
cXyz(0.0f, 0.0f, -5.0f), cXyz(0.0f, -5.0f, -5.0f), cXyz(0.0f, 25.0f, -15.0f),
|
|
cXyz(0.0f, 5.0f, -10.0f), cXyz(3.0f, 25.0f, -3.0f), cXyz(8.0f, 25.0f, 0.0f),
|
|
cXyz(-8.0f, 23.0f, 8.0f),
|
|
};
|
|
|
|
/* 807C53FC-807C5CF0 002EFC 08F4+00 2/2 0/0 0/0 .text calcOpRopePos__8daE_VA_cFv */
|
|
void daE_VA_c::calcOpRopePos() {
|
|
cXyz sp60;
|
|
cXyz sp6C;
|
|
cXyz sp78;
|
|
cXyz sp84;
|
|
cXyz sp90;
|
|
|
|
int idx;
|
|
s16 var_r30;
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
int temp_3C = i * 10;
|
|
mDoMtx_stack_c::transS(field_0x122c);
|
|
mDoMtx_stack_c::transM(0.0f, 150.0f, 0.0f);
|
|
mDoMtx_stack_c::ZXYrotM(field_0x1238);
|
|
mDoMtx_stack_c::transM(0.0f, -150.0f, 0.0f);
|
|
mDoMtx_stack_c::transM(0.0f, 400.0f, 0.0f);
|
|
mDoMtx_stack_c::XrotM(field_0x123e);
|
|
mDoMtx_stack_c::transM(0.0f, -400.0f, 0.0f);
|
|
mDoMtx_stack_c::transM(line_start_pos[i]);
|
|
mDoMtx_stack_c::multVecZero(&sp60);
|
|
|
|
sp6C = line_end_pos[i];
|
|
if (i == nREG_S(0)) {
|
|
sp6C.x += nREG_F(8);
|
|
sp6C.z += nREG_F(9);
|
|
}
|
|
|
|
f32 var_f31 = 0.0f;
|
|
|
|
if (field_0x1104[i]) {
|
|
field_0x112c[i] += nREG_S(0) + 0x800;
|
|
cLib_chaseF(&field_0x1104[i], 0.0f, nREG_F(19) + 0.01f);
|
|
|
|
var_r30 = (s16)cLib_targetAngleY(&sp60, &sp6C);
|
|
var_f31 = field_0x1104[i] * cM_ssin(field_0x112c[i]);
|
|
}
|
|
|
|
for (int j = 0; j < 10; j++) {
|
|
idx = temp_3C + j;
|
|
|
|
if (mRopeCutStatus[idx] & 2) {
|
|
if (j == 0) {
|
|
field_0x994[idx] = sp60;
|
|
} else {
|
|
field_0xe44[idx].y = 0x3130;
|
|
|
|
if (abs(field_0xe44[idx].z) <= 0x20 && abs(field_0xe44[idx].x + 0x4000) <= 0x20)
|
|
{
|
|
field_0xe44[idx].x = -0x4000;
|
|
field_0xe44[idx].z = 0;
|
|
} else if (field_0xe44[idx].x < -0x4000) {
|
|
field_0xe44[idx].z += 0x20;
|
|
} else {
|
|
field_0xe44[idx].z -= 0x20;
|
|
}
|
|
|
|
cLib_chaseAngleS(&field_0xe44[idx].z, 0, 8);
|
|
field_0xe44[idx].x += field_0xe44[idx].z;
|
|
|
|
f32 rope_len = getRopeLength(i);
|
|
sp84.y = rope_len * cM_ssin(field_0xe44[idx].x);
|
|
|
|
f32 temp_f31_2 = rope_len * cM_scos(field_0xe44[idx].x);
|
|
sp84.x = temp_f31_2 * cM_scos(field_0xe44[idx].y);
|
|
sp84.z = temp_f31_2 * cM_ssin(field_0xe44[idx].y);
|
|
|
|
sp78 = field_0x994[idx - 1] + sp84;
|
|
cLib_chasePos(&field_0x994[idx], sp78, 10.0f);
|
|
}
|
|
} else if (mRopeCutStatus[idx] & 4) {
|
|
field_0x994[idx].y += -5.0f;
|
|
if (field_0x994[idx].y < 5.0f) {
|
|
field_0x994[idx].y = 5.0f;
|
|
}
|
|
} else if (mRopeCutStatus[idx] & 8) {
|
|
field_0x994[idx].y += -3.0f;
|
|
if (field_0x994[idx].y < 5.0f) {
|
|
field_0x994[idx].y = 5.0f;
|
|
}
|
|
} else {
|
|
if (j == 0) {
|
|
field_0x994[idx] = sp60;
|
|
} else if (j == 9) {
|
|
field_0x994[idx] = sp6C;
|
|
} else {
|
|
sp84 = field_0x994[idx] - sp60;
|
|
sp84.normalizeZP();
|
|
|
|
sp90 = sp6C - field_0x994[idx];
|
|
sp90.normalizeZP();
|
|
|
|
sp78 = (sp84 * line_pull_power[10 - j]) * (nREG_F(12) + 300.0f);
|
|
sp78 += (sp90 * line_pull_power[j]) * (nREG_F(13) + 300.0f);
|
|
sp78.y += -5.0f;
|
|
sp78.normalizeZP();
|
|
|
|
field_0x994[idx] = field_0x994[idx - 1] + (sp78 * getRopeLength(i));
|
|
if (field_0x994[idx].y < 5.0f) {
|
|
field_0x994[idx].y = 5.0f;
|
|
}
|
|
|
|
if (var_f31) {
|
|
f32 temp_f29 = (nREG_F(16) + 0.2f) * ((f32)(10 - j) * var_f31);
|
|
field_0x994[idx].x += temp_f29 * cM_scos(var_r30);
|
|
field_0x994[idx].z += temp_f29 * cM_ssin(var_r30);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
cXyz* pos;
|
|
for (int i = 0; i < 11; i++) {
|
|
pos = mRope.getPos(i);
|
|
int temp_r5_2;
|
|
if (i != 10) {
|
|
int temp_r5 = i * 10;
|
|
int sp68 = field_0x11b8[i] / getRopeLength(i);
|
|
|
|
for (int j = 0; j < 10; j++, pos++) {
|
|
temp_r5_2 = temp_r5 + j;
|
|
*pos = field_0x994[temp_r5_2];
|
|
|
|
if (sp68 >= 4) {
|
|
if (j <= sp68 && field_0x11b8[i]) {
|
|
*pos = field_0x1140[i];
|
|
mRopeCutStatus[temp_r5_2] |= 1;
|
|
} else if ((mRopeCutStatus[temp_r5_2] & 0x10) && j < 4) {
|
|
*pos = field_0x994[temp_r5 + 4];
|
|
}
|
|
} else if ((mRopeCutStatus[temp_r5_2] & 0x10) && j < 4) {
|
|
*pos = field_0x994[temp_r5 + 4];
|
|
} else if (j <= sp68 && field_0x11b8[i]) {
|
|
*pos = field_0x1140[i];
|
|
mRopeCutStatus[temp_r5_2] |= 1;
|
|
}
|
|
}
|
|
|
|
} else {
|
|
int temp_r5 = 50;
|
|
int sp68 = field_0x11b8[5] / getRopeLength(5);
|
|
|
|
for (int j = 0; j < 10; j++, pos++) {
|
|
temp_r5_2 = temp_r5 + j;
|
|
*pos = field_0x994[temp_r5_2];
|
|
|
|
if (sp68 > 3) {
|
|
*pos = field_0x994[temp_r5 + 9];
|
|
} else if (j <= sp68 && field_0x11b8[5]) {
|
|
*pos = field_0x1140[5];
|
|
} else if ((mRopeCutStatus[temp_r5_2] & 0x10) && j >= 3) {
|
|
*pos = field_0x994[temp_r5 + 3];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for (int i = 0; i < 40; i++) {
|
|
int idx = va_tag_set_num[i];
|
|
|
|
if (mRopeCutStatus[idx] & 1) {
|
|
mCardFlags[i] |= 0x80;
|
|
}
|
|
|
|
if (mRopeCutStatus[idx] & 0xC) {
|
|
mCardFlags[i] |= 0x8;
|
|
}
|
|
|
|
field_0x660[i].y = cLib_targetAngleY(&field_0x994[idx - 1], &field_0x994[idx + 1]) + 0x4000;
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C5CF0-807C5DF4 0037F0 0104+00 1/1 0/0 0/0 .text onRopeCutStatus__8daE_VA_cFiii */
|
|
void daE_VA_c::onRopeCutStatus(int param_0, int param_1, int param_2) {
|
|
int var_r31 = param_0 * 10;
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
int var_r24 = var_r31 + i;
|
|
|
|
if (param_2 == 0) {
|
|
mRopeCutStatus[var_r24] |= 0x10;
|
|
}
|
|
|
|
if (i < param_1) {
|
|
mRopeCutStatus[var_r24] |= 2;
|
|
|
|
if (param_2 == 0) {
|
|
field_0xe44[var_r24].x =
|
|
cLib_targetAngleX(&field_0x994[var_r24 - 1], &field_0x994[var_r24]);
|
|
field_0xe44[var_r24].y =
|
|
cLib_targetAngleY(&field_0x994[var_r24 - 1], &field_0x994[var_r24]);
|
|
field_0xe44[var_r24].z = 0;
|
|
}
|
|
} else if (param_2 == 0) {
|
|
mRopeCutStatus[var_r24] |= 4;
|
|
} else {
|
|
mRopeCutStatus[var_r24] |= 8;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED88-807CED8C 0000E0 0004+00 1/1 0/0 0/0 .rodata @5877 */
|
|
SECTION_RODATA static f32 const lit_5877 = 7168.0f;
|
|
COMPILER_STRIP_GATE(0x807CED88, &lit_5877);
|
|
|
|
/* 807C5DF4-807C5EAC 0038F4 00B8+00 1/1 0/0 0/0 .text setVibRope__8daE_VA_cFff */
|
|
void daE_VA_c::setVibRope(f32 param_0, f32 param_1) {
|
|
field_0x1336 += (s16)(param_1 * 7168.0f);
|
|
field_0x122c.y += (s16)(param_0 * cM_ssin(field_0x1336));
|
|
field_0x123e += (s16)(param_0 * 50.0f * cM_ssin(field_0x1336));
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED8C-807CED90 0000E4 0004+00 1/1 0/0 0/0 .rodata @5913 */
|
|
SECTION_RODATA static f32 const lit_5913 = 39.0f / 10.0f;
|
|
COMPILER_STRIP_GATE(0x807CED8C, &lit_5913);
|
|
|
|
/* 807CED90-807CED94 0000E8 0004+00 1/1 0/0 0/0 .rodata @5914 */
|
|
SECTION_RODATA static f32 const lit_5914 = 4.0f;
|
|
COMPILER_STRIP_GATE(0x807CED90, &lit_5914);
|
|
|
|
/* 807C5EAC-807C6164 0039AC 02B8+00 2/2 0/0 0/0 .text setVibTag__8daE_VA_cFii */
|
|
void daE_VA_c::setVibTag(int param_0, int param_1) {
|
|
for (int i = 0; i < 40; i++) {
|
|
if (param_1 == -1 || param_1 == va_tag_set_num[i] / 10) {
|
|
mCardFlags[i] |= 4;
|
|
|
|
if (!(mCardFlags[i] & 8)) {
|
|
switch (param_0) {
|
|
case 0:
|
|
field_0x750[i].x += TAG_VIB_ANGLE[(int)cM_rndF(3.9f)];
|
|
field_0x750[i].z += TAG_VIB_ANGLE[(int)cM_rndF(3.9f)];
|
|
field_0x840[i].x = TAG_VIB_WIDTH[(int)(cM_rndF(3.9f) + 4.0f)];
|
|
field_0x840[i].z = TAG_VIB_WIDTH[(int)(cM_rndF(3.9f) + 4.0f)];
|
|
break;
|
|
case 1:
|
|
field_0x750[i].x += TAG_VIB_ANGLE[i & 3];
|
|
field_0x750[i].z += TAG_VIB_ANGLE[(i >> 1) & 3];
|
|
field_0x840[i].x = TAG_VIB_WIDTH[i & 3];
|
|
field_0x840[i].z = TAG_VIB_WIDTH[(i >> 2) & 3];
|
|
break;
|
|
case 2:
|
|
field_0x750[i].x += TAG_VIB_ANGLE[(i & 1) + 2];
|
|
field_0x750[i].z += TAG_VIB_ANGLE[((i >> 1) & 1) + 2];
|
|
field_0x840[i].x = TAG_VIB_WIDTH[(i & 3) + 4];
|
|
field_0x840[i].z = TAG_VIB_WIDTH[((i >> 2) & 3) + 4];
|
|
break;
|
|
}
|
|
|
|
field_0x660[i].x = field_0x840[i].x * cM_ssin(field_0x750[i].x);
|
|
field_0x660[i].z = field_0x840[i].z * cM_ssin(field_0x750[i].z);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED94-807CED98 0000EC 0004+00 0/1 0/0 0/0 .rodata @5960 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_5960 = 160.0f;
|
|
COMPILER_STRIP_GATE(0x807CED94, &lit_5960);
|
|
#pragma pop
|
|
|
|
/* 807C6164-807C638C 003C64 0228+00 2/2 0/0 0/0 .text calcTagAngle__8daE_VA_cFv */
|
|
void daE_VA_c::calcTagAngle() {
|
|
for (int i = 0; i < 40; i++) {
|
|
if (mCardFlags[i] & 8) {
|
|
f32 var_f30;
|
|
switch (mCardFlags[i] & 3) {
|
|
case 0:
|
|
var_f30 = 160.0f;
|
|
break;
|
|
case 1:
|
|
var_f30 = 100.0f;
|
|
break;
|
|
case 2:
|
|
var_f30 = 50.0f;
|
|
break;
|
|
}
|
|
|
|
f32 var_f31 = field_0x994[va_tag_set_num[i]].y - 5.0f;
|
|
if (var_f31 < var_f30) {
|
|
if (var_f31) {
|
|
f32 var_f29 = JMAFastSqrt(var_f30 * var_f30 - var_f31 * var_f31);
|
|
if (field_0x660[i].x < 0) {
|
|
field_0x660[i].x = -cM_atan2s(var_f29, var_f31);
|
|
} else {
|
|
field_0x660[i].x = cM_atan2s(var_f29, var_f31);
|
|
}
|
|
}
|
|
|
|
field_0x660[i].z = 0;
|
|
mCardFlags[i] |= 4;
|
|
}
|
|
}
|
|
|
|
if (!(mCardFlags[i] & 4)) {
|
|
field_0x750[i].x += TAG_VIB_ANGLE[i & 1];
|
|
field_0x750[i].z += TAG_VIB_ANGLE[(i >> 1) & 1];
|
|
|
|
cLib_chaseAngleS(&field_0x840[i].x, 0, 4);
|
|
cLib_chaseAngleS(&field_0x840[i].z, 0, 4);
|
|
|
|
field_0x660[i].x = field_0x840[i].x * cM_ssin(field_0x750[i].x);
|
|
field_0x660[i].z = field_0x840[i].z * cM_ssin(field_0x750[i].z);
|
|
}
|
|
|
|
mCardFlags[i] &= ~4;
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C638C-807C6564 003E8C 01D8+00 1/1 0/0 0/0 .text calcRopeFirePos__8daE_VA_cFv */
|
|
void daE_VA_c::calcRopeFirePos() {
|
|
int temp_r28;
|
|
int var_r24;
|
|
f32 var_f29;
|
|
BOOL var_r31;
|
|
|
|
cXyz sp48;
|
|
for (int i = 0; i < 10; i++) {
|
|
field_0x11b8[i] += nREG_F(15) + 60.0f;
|
|
|
|
var_r24 = field_0x11b8[i] / getRopeLength(i);
|
|
var_f29 = field_0x11b8[i] - ((f32)var_r24 * getRopeLength(i));
|
|
var_r31 = 1;
|
|
|
|
if (var_r24 < 9) {
|
|
temp_r28 = var_r24 + (i * 10);
|
|
sp48 = field_0x994[temp_r28 + 1] - field_0x994[temp_r28];
|
|
sp48.normalizeZP();
|
|
field_0x1140[i] = field_0x994[temp_r28] + (sp48 * var_f29);
|
|
} else if (cLib_chasePos(&field_0x1140[i], field_0x994[(i * 10) + 9], nREG_F(15) + 60.0f)) {
|
|
var_r31 = 0;
|
|
}
|
|
|
|
if (var_r31) {
|
|
setFireEffect(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CED98-807CED9C 0000F0 0004+00 0/1 0/0 0/0 .rodata @6069 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6069 = 110.0f;
|
|
COMPILER_STRIP_GATE(0x807CED98, &lit_6069);
|
|
#pragma pop
|
|
|
|
/* 807CED9C-807CEDA0 0000F4 0004+00 0/1 0/0 0/0 .rodata @6070 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6070 = 275.0f;
|
|
COMPILER_STRIP_GATE(0x807CED9C, &lit_6070);
|
|
#pragma pop
|
|
|
|
/* 807CEDA0-807CEDA4 0000F8 0004+00 0/1 0/0 0/0 .rodata @6071 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6071 = 51.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDA0, &lit_6071);
|
|
#pragma pop
|
|
|
|
/* 807C6564-807C67A4 004064 0240+00 1/1 0/0 0/0 .text executeDemoOpWait__8daE_VA_cFv */
|
|
void daE_VA_c::executeDemoOpWait() {
|
|
cXyz sp34;
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
mRopesEnabled = true;
|
|
mpWeaponBrk->setPlaySpeed(0.0f);
|
|
mpWeaponBrk->setFrame(0.0f);
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
for (int j = 0; j < 10; j++) {
|
|
if (i < 5) {
|
|
field_0x994[j + i * 10].x = j * 110.0f * cM_ssin(i * 0x3333);
|
|
field_0x994[j + i * 10].z = j * 110.0f * cM_scos(i * 0x3333);
|
|
field_0x994[j + i * 10].y = 275.0f - j * 30.0f;
|
|
} else {
|
|
field_0x994[j + i * 10].x = j * 60.0f * cM_ssin(i * 0x3333);
|
|
field_0x994[j + i * 10].z = j * 60.0f * cM_scos(i * 0x3333);
|
|
field_0x994[j + i * 10].y = 275.0f - j * 30.0f;
|
|
}
|
|
}
|
|
}
|
|
|
|
field_0x122c.set(51.0f, 0.0f, 0.0f);
|
|
field_0x1238.set(0, -0x5000, -0x8000);
|
|
field_0x123e = 0;
|
|
mMode = 1;
|
|
mDrawRopes = true;
|
|
case 1:
|
|
for (int i = 0; i < 190; i++) {
|
|
if (!daPy_getPlayerActorClass()->i_checkNowWolf()) {
|
|
mLineSphs[i].OffTgShield();
|
|
} else {
|
|
mLineSphs[i].OnTgShield();
|
|
}
|
|
}
|
|
calcOpRopePos();
|
|
break;
|
|
}
|
|
|
|
calcTagAngle();
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEDA4-807CEDA8 0000FC 0004+00 0/1 0/0 0/0 .rodata @6345 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6345 = 270.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDA4, &lit_6345);
|
|
#pragma pop
|
|
|
|
/* 807CEDA8-807CEDAC 000100 0004+00 0/2 0/0 0/0 .rodata @6346 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6346 = 600.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDA8, &lit_6346);
|
|
#pragma pop
|
|
|
|
/* 807CEDAC-807CEDB0 000104 0004+00 0/1 0/0 0/0 .rodata @6347 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6347 = 180.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDAC, &lit_6347);
|
|
#pragma pop
|
|
|
|
/* 807CEDB0-807CEDB4 000108 0004+00 0/4 0/0 0/0 .rodata @6348 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6348 = 200.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDB0, &lit_6348);
|
|
#pragma pop
|
|
|
|
/* 807CEDB4-807CEDB8 00010C 0004+00 0/1 0/0 0/0 .rodata @6349 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6349 = 2.5f;
|
|
COMPILER_STRIP_GATE(0x807CEDB4, &lit_6349);
|
|
#pragma pop
|
|
|
|
/* 807C67A4-807C7534 0042A4 0D90+00 2/1 0/0 0/0 .text executeDemoOp__8daE_VA_cFv */
|
|
void daE_VA_c::executeDemoOp() {
|
|
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
|
cXyz sp2C;
|
|
cXyz sp38;
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
|
|
calcOpRopePos();
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
if (!eventInfo.i_checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(this, 2, 0xFFFF, 0);
|
|
eventInfo.i_onCondition(2);
|
|
return;
|
|
}
|
|
|
|
dComIfGs_onOneZoneSwitch(9, fopAcM_GetRoomNo(this));
|
|
player->changeOriginalDemo();
|
|
|
|
sp38.set(270.0f, 0.0f, 210.0f);
|
|
player->setPlayerPosAndAngle(&sp38, -0x6000, 0);
|
|
player->changeDemoMode(1, 0, 0, 0);
|
|
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
|
|
mDemoCamEye.set(300.0f, 300.0f, 600.0f);
|
|
mDemoCamCenter.set(100.0f, 180.0f, 200.0f);
|
|
mDemoCamBank = 60.0f;
|
|
mDemoModeTimer = nREG_S(4) + 60;
|
|
field_0x14a8 = 2.5f;
|
|
|
|
onRopeCutStatus(5, 4, 0);
|
|
|
|
Z2GetAudioMgr()->seStart(Z2SE_EN_VA_OPENING1, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
mMode = 1;
|
|
Z2GetAudioMgr()->bgmStreamPrepare(0x200000A);
|
|
Z2GetAudioMgr()->bgmStreamPlay();
|
|
return;
|
|
case 1:
|
|
sp38.set(270.0f, 0.0f, 210.0f);
|
|
player->setPlayerPosAndAngle(&sp38, -0x6000, 0);
|
|
sp38.set(-50.0f, 90.0f, -100.0f);
|
|
|
|
cLib_chasePos(&mDemoCamEye, sp38, field_0x14a8);
|
|
cLib_chasePos(&mDemoCamCenter, sp38, field_0x14a8);
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
mDownTimer = 98;
|
|
mpWeaponBrk->setPlaySpeed(nREG_F(1) + 1.0f);
|
|
mpWeaponBrk->setFrame(0.0f);
|
|
field_0x1336 = 0;
|
|
mMode = 2;
|
|
mDemoModeTimer = 60 - nREG_S(4);
|
|
}
|
|
break;
|
|
case 2:
|
|
if (mpWeaponBrk->checkFrame(48.0f)) {
|
|
mpWeaponBrk->setPlaySpeed(0.0f);
|
|
}
|
|
|
|
if (mDemoModeTimer != 0) {
|
|
sp38.set(-50.0f, 90.0f, -100.0f);
|
|
cLib_chasePos(&mDemoCamEye, sp38, field_0x14a8);
|
|
cLib_chasePos(&mDemoCamCenter, sp38, field_0x14a8);
|
|
|
|
if (mDemoModeTimer < 25) {
|
|
cLib_chaseF(&field_0x14a8, 0.0f, 0.1f);
|
|
|
|
if (mDemoModeTimer > 15 && mDemoModeTimer < 25) {
|
|
setVibRope(1.0f, 1.0f);
|
|
}
|
|
|
|
if (mDemoModeTimer > 12 && mDemoModeTimer < 22) {
|
|
setVibTag(1, -1);
|
|
}
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
mMode = 3;
|
|
}
|
|
}
|
|
} else if (mDownTimer == 0) {
|
|
mMode = 4;
|
|
mDemoModeTimer = 75;
|
|
}
|
|
break;
|
|
case 4:
|
|
setWeponGlow();
|
|
|
|
if (mDemoModeTimer < 50) {
|
|
setVibRope(1.0f, 1.3f);
|
|
|
|
if (mDemoModeTimer < 45) {
|
|
setVibTag(2, -1);
|
|
}
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
setWeponFlashScreen();
|
|
mMode = 5;
|
|
mDemoModeTimer = 50;
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
field_0x1140[i] = field_0x994[i * 10];
|
|
onRopeCutStatus(i, 0, 1);
|
|
}
|
|
|
|
field_0x14a8 = 50.0f;
|
|
|
|
dComIfGp_getVibration().StartQuake(6, 31, cXyz(0.0f, 1.0f, 0.0f));
|
|
sp38.set(400.0f, 0.0f, 300.0f);
|
|
player->setPlayerPosAndAngle(&sp38, -0x6000, 0);
|
|
player->changeDemoMode(0x17, 0, 0, 0);
|
|
return;
|
|
}
|
|
}
|
|
break;
|
|
case 5:
|
|
sp38.set(459.0f, 394.0f, 920.0f);
|
|
cLib_chasePos(&mDemoCamEye, sp38, field_0x14a8);
|
|
|
|
sp38.set(259.0f, 275.0f, 519.0f);
|
|
cLib_chasePos(&mDemoCamCenter, sp38, field_0x14a8);
|
|
cLib_chaseF(&field_0x14a8, 0.0f, 1.0f);
|
|
|
|
if (mDemoModeTimer == 20) {
|
|
dComIfGp_getVibration().StopQuake(31);
|
|
}
|
|
|
|
setVibRope(1.0f, 1.3f);
|
|
setVibTag(2, -1);
|
|
calcRopeFirePos();
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
sp38.set(800.0f, 0.0f, 380.0f);
|
|
player->setPlayerPosAndAngle(&sp38, -0x5000, 0);
|
|
mMode = 6;
|
|
|
|
mpWeaponBrk->setPlaySpeed(1.0f);
|
|
mDemoCamCenter.set(field_0x122c.x, 150.0f, field_0x122c.z);
|
|
field_0x14ac = 0x1800;
|
|
cLib_chaseAngleS(&field_0x14ac, 0x2800, 0x20);
|
|
|
|
sp38.set(0.0f, 150.0f, 0.0f);
|
|
sp2C.set(0.0f, 50.0f, 400.0f);
|
|
cLib_offsetPos(&mDemoCamEye, &sp38, field_0x14ac, &sp2C);
|
|
mDemoCamBank = 60.0f;
|
|
mWeponEfMode = 1;
|
|
mDemoModeTimer = 130;
|
|
|
|
if (!player->i_checkNowWolf()) {
|
|
player->changeDemoMode(0x17, 0, 0, 0);
|
|
}
|
|
|
|
Z2GetAudioMgr()->seStart(Z2SE_EN_VA_OPENING2, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
return;
|
|
}
|
|
break;
|
|
case 6:
|
|
mMode = 7;
|
|
field_0x122c.y = -100.0f;
|
|
case 7:
|
|
if (mDemoModeTimer > 115 || (mDemoModeTimer < 90 && mDemoModeTimer > 60)) {
|
|
field_0x122c.y += 1.0f;
|
|
setVibRope(2.0f, 1.0f);
|
|
} else if (mDemoModeTimer < 10) {
|
|
field_0x122c.y += 1.0f;
|
|
setVibRope(2.0f, 1.3f);
|
|
} else if (mDemoModeTimer < 30) {
|
|
field_0x122c.y += nREG_F(1) + 5.0f;
|
|
setVibRope(2.0f, 1.0f);
|
|
} else {
|
|
field_0x122c.y += 0.2f;
|
|
setVibRope(1.0f, 1.0f);
|
|
}
|
|
|
|
mDemoCamCenter.set(field_0x122c.x, 150.0f, field_0x122c.z);
|
|
cLib_chaseAngleS(&field_0x14ac, 0x2800, 0x20);
|
|
|
|
sp38.set(0.0f, 150.0f, 0.0f);
|
|
sp2C.set(0.0f, 50.0f, 400.0f);
|
|
cLib_offsetPos(&mDemoCamEye, &sp38, field_0x14ac, &sp2C);
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
mMode = 8;
|
|
mDemoModeTimer = 300;
|
|
field_0x14a4 = 600.0f;
|
|
mWeponEfMode = 2;
|
|
field_0x1336 = 0x1400;
|
|
field_0x1334 = 0xA00;
|
|
field_0x1310 = 28.0f;
|
|
field_0x123e = 0;
|
|
mDrawRopes = false;
|
|
mKankyoColType = 4;
|
|
}
|
|
break;
|
|
case 8:
|
|
mDemoCamCenter.set(field_0x122c.x, field_0x122c.y + 150.0f, field_0x122c.z);
|
|
sp38.set(950.0f, 50.0f, 550.0f);
|
|
cLib_chasePos(&mDemoCamEye, sp38, 15.0f);
|
|
|
|
field_0x1310--;
|
|
if (field_0x1310 < -10.0f) {
|
|
field_0x1310 = -10.0f;
|
|
}
|
|
|
|
field_0x122c.y += field_0x1310;
|
|
|
|
if (mDemoModeTimer < 267) {
|
|
cLib_chaseAngleS(&field_0x1336, 0, 0x100);
|
|
}
|
|
|
|
if (mDemoModeTimer < 254) {
|
|
cLib_chaseAngleS(&field_0x1334, 0, 0x100);
|
|
}
|
|
|
|
field_0x1238.z += field_0x1336;
|
|
field_0x1238.x += field_0x1334;
|
|
|
|
if (mDemoModeTimer < 270) {
|
|
cLib_addCalcAngleS(&field_0x1238.x, -0x0C03, 4, 0x200, 0x100);
|
|
cLib_addCalcAngleS(&field_0x1238.y, -0x43B1, 4, 0x200, 0x100);
|
|
cLib_addCalcAngleS(&field_0x1238.z, -0x195D, 4, 0x200, 0x100);
|
|
}
|
|
|
|
sp38.set(26.0f, 187.0f, 236.0f);
|
|
f32 old = field_0x122c.y;
|
|
|
|
if (cLib_chasePosXZ(&field_0x122c, sp38, 4.2f)) {
|
|
field_0x122c.y = old;
|
|
}
|
|
|
|
if (field_0x1310 < 0.0f && field_0x122c.y < 192.0f) {
|
|
field_0x122c = sp38;
|
|
field_0x1238.set(-0x0C03, -0x43B1, -0x195D);
|
|
|
|
setBck(ANM_INVI_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 3.0f, 1.0f);
|
|
mMode = 9;
|
|
field_0x1240 = 1;
|
|
mDemoModeTimer = 60;
|
|
mWeponEfMode = 3;
|
|
}
|
|
break;
|
|
case 9:
|
|
cLib_chaseAngleS(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 0x98);
|
|
current.angle.y = shape_angle.y;
|
|
|
|
sp38.set(field_0x122c.x, field_0x122c.y + 150.0f, field_0x122c.z);
|
|
cLib_chasePos(&mDemoCamCenter, sp38, 5.0f);
|
|
|
|
sp38.set(950.0f, 50.0f, 550.0f);
|
|
cLib_chasePos(&mDemoCamEye, sp38, 15.0f);
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
setBck(ANM_OP_ATTACK_A_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mMode = 10;
|
|
}
|
|
break;
|
|
case 10:
|
|
mDemoCamCenter.set(field_0x122c.x, field_0x122c.y + 150.0f, field_0x122c.z);
|
|
sp38.set(950.0f, 50.0f, 550.0f);
|
|
cLib_chasePos(&mDemoCamEye, sp38, nREG_F(19) + 15.0f);
|
|
|
|
if (mpMorf->checkFrame(50.0f)) {
|
|
player->changeDemoMode(0x22, 0, 0, 0);
|
|
}
|
|
|
|
if (mpMorf->checkFrame(67.0f)) {
|
|
setWeponLandEffect();
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_IMPACT, 0, -1);
|
|
dComIfGp_getVibration().StartShock(5, 31, cXyz(0.0f, 1.0f, 0.0f));
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
camera->mCamera.Reset(mDemoCamCenter, mDemoCamEye, mDemoCamBank, 0);
|
|
camera->mCamera.Start();
|
|
camera->mCamera.SetTrimSize(0);
|
|
dComIfGp_event_reset();
|
|
|
|
mRopesEnabled = false;
|
|
setActionMode(ACTION_CLEAR_WAIT_e, 0);
|
|
mDemoModeTimer = 60;
|
|
Z2GetAudioMgr()->subBgmStart(Z2BGM_VARIANT);
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
return;
|
|
}
|
|
}
|
|
|
|
calcTagAngle();
|
|
camera->mCamera.Set(mDemoCamCenter, mDemoCamEye, mDemoCamBank, 0);
|
|
dComIfGp_getEvent().onSkipFade();
|
|
dComIfGp_getEvent().setSkipProc(this, DemoSkipCallBack, 0);
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEDB8-807CEDBC 000110 0004+00 0/0 0/0 0/0 .rodata @6350 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6350 = 90.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDB8, &lit_6350);
|
|
#pragma pop
|
|
|
|
/* 807CEDBC-807CEDC0 000114 0004+00 0/0 0/0 0/0 .rodata @6351 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6351 = -100.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDBC, &lit_6351);
|
|
#pragma pop
|
|
|
|
/* 807CEDC0-807CEDC4 000118 0004+00 0/0 0/0 0/0 .rodata @6352 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6352 = 48.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDC0, &lit_6352);
|
|
#pragma pop
|
|
|
|
/* 807CEDC4-807CEDC8 00011C 0004+00 0/0 0/0 0/0 .rodata @6353 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6353 = 13.0f / 10.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDC4, &lit_6353);
|
|
#pragma pop
|
|
|
|
/* 807CEDC8-807CEDCC 000120 0004+00 0/0 0/0 0/0 .rodata @6354 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6354 = 459.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDC8, &lit_6354);
|
|
#pragma pop
|
|
|
|
/* 807CEDCC-807CEDD0 000124 0004+00 0/0 0/0 0/0 .rodata @6355 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6355 = 394.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDCC, &lit_6355);
|
|
#pragma pop
|
|
|
|
/* 807CEDD0-807CEDD4 000128 0004+00 0/0 0/0 0/0 .rodata @6356 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6356 = 920.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDD0, &lit_6356);
|
|
#pragma pop
|
|
|
|
/* 807CEDD4-807CEDD8 00012C 0004+00 0/0 0/0 0/0 .rodata @6357 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6357 = 259.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDD4, &lit_6357);
|
|
#pragma pop
|
|
|
|
/* 807CEDD8-807CEDDC 000130 0004+00 0/0 0/0 0/0 .rodata @6358 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6358 = 519.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDD8, &lit_6358);
|
|
#pragma pop
|
|
|
|
/* 807CEDDC-807CEDE0 000134 0004+00 0/0 0/0 0/0 .rodata @6359 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6359 = 380.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDDC, &lit_6359);
|
|
#pragma pop
|
|
|
|
/* 807CEDE0-807CEDE4 000138 0004+00 0/2 0/0 0/0 .rodata @6360 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6360 = 2.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDE0, &lit_6360);
|
|
#pragma pop
|
|
|
|
/* 807CEDE4-807CEDE8 00013C 0004+00 0/0 0/0 0/0 .rodata @6361 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6361 = 28.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDE4, &lit_6361);
|
|
#pragma pop
|
|
|
|
/* 807CEDE8-807CEDEC 000140 0004+00 0/1 0/0 0/0 .rodata @6362 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6362 = 950.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDE8, &lit_6362);
|
|
#pragma pop
|
|
|
|
/* 807CEDEC-807CEDF0 000144 0004+00 0/0 0/0 0/0 .rodata @6363 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6363 = 550.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDEC, &lit_6363);
|
|
#pragma pop
|
|
|
|
/* 807CEDF0-807CEDF4 000148 0004+00 0/2 0/0 0/0 .rodata @6364 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6364 = 15.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDF0, &lit_6364);
|
|
#pragma pop
|
|
|
|
/* 807CEDF4-807CEDF8 00014C 0004+00 0/1 0/0 0/0 .rodata @6365 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6365 = 26.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDF4, &lit_6365);
|
|
#pragma pop
|
|
|
|
/* 807CEDF8-807CEDFC 000150 0004+00 0/0 0/0 0/0 .rodata @6366 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6366 = 187.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDF8, &lit_6366);
|
|
#pragma pop
|
|
|
|
/* 807CEDFC-807CEE00 000154 0004+00 0/0 0/0 0/0 .rodata @6367 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6367 = 236.0f;
|
|
COMPILER_STRIP_GATE(0x807CEDFC, &lit_6367);
|
|
#pragma pop
|
|
|
|
/* 807CEE00-807CEE04 000158 0004+00 0/0 0/0 0/0 .rodata @6368 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6368 = 21.0f / 5.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE00, &lit_6368);
|
|
#pragma pop
|
|
|
|
/* 807CEE04-807CEE08 00015C 0004+00 0/0 0/0 0/0 .rodata @6369 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6369 = 192.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE04, &lit_6369);
|
|
#pragma pop
|
|
|
|
/* 807CEE08-807CEE0C 000160 0004+00 0/0 0/0 0/0 .rodata @6370 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6370 = 67.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE08, &lit_6370);
|
|
#pragma pop
|
|
|
|
/* 807CEE0C-807CEE10 000164 0004+00 0/8 0/0 0/0 .rodata @6394 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6394 = 20.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE0C, &lit_6394);
|
|
#pragma pop
|
|
|
|
/* 807C7534-807C7640 005034 010C+00 1/1 0/0 0/0 .text executeClearWait__8daE_VA_cFv */
|
|
void daE_VA_c::executeClearWait() {
|
|
switch (mMode) {
|
|
case 1:
|
|
mDemoModeTimer = 60;
|
|
/* fallthrough */
|
|
case 0:
|
|
setBck(ANM_INVI_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 20.0f, 1.0f);
|
|
attention_info.flags = 4;
|
|
mMode = 2;
|
|
/* fallthrough */
|
|
case 2:
|
|
cLib_addCalc(¤t.pos.y, 0.0f, 0.1f, 10.0f, 1.0f);
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
if (fopAcM_searchPlayerDistance(this) < 2000.0f) {
|
|
setActionMode(ACTION_CLEAR_CHASE_e, 0);
|
|
}
|
|
}
|
|
|
|
if (daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
setActionMode(ACTION_TRANS_WAIT_e, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C7640-807C783C 005140 01FC+00 1/1 0/0 0/0 .text executeClearChase__8daE_VA_cFv */
|
|
void daE_VA_c::executeClearChase() {
|
|
cLib_addCalc(¤t.pos.y, 0.0f, 0.1f, 10.0f, 1.0f);
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
setBck(ANM_INVI_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 3.0f, 1.0f);
|
|
mMode = 1;
|
|
/* fallthrough */
|
|
case 1:
|
|
cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 8, 0x400, 0x40);
|
|
current.angle.y = shape_angle.y;
|
|
|
|
if (fopAcM_searchPlayerDistance(this) > l_HIO.mAttackRange) {
|
|
cLib_chaseF(&speedF, 10.0f, 1.0f);
|
|
} else if (fopAcM_searchPlayerDistance(this) < l_HIO.mAttackRange - 200.0f) {
|
|
cLib_chaseF(&speedF, -10.0f, 1.0f);
|
|
} else {
|
|
cLib_chaseF(&speedF, 0.0f, 1.0f);
|
|
|
|
if (speedF == 0.0f && mDemoModeTimer == 0) {
|
|
setActionMode(ACTION_CLEAR_ATTACK_e, 0);
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (speedF != 0.0f) {
|
|
if (!checkBck(ANM_INVI_WALK_e)) {
|
|
setBck(ANM_INVI_WALK_e, J3DFrameCtrl::LOOP_REPEAT_e, 10.0f, 1.0f);
|
|
}
|
|
} else {
|
|
if (!checkBck(ANM_INVI_WAIT_e)) {
|
|
setBck(ANM_INVI_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 10.0f, 1.0f);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
setActionMode(ACTION_TRANS_WAIT_e, 0);
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE10-807CEE14 000168 0004+00 0/1 0/0 0/0 .rodata @6485 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6485 = 32.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE10, &lit_6485);
|
|
#pragma pop
|
|
|
|
/* 807CEE14-807CEE18 00016C 0004+00 0/1 0/0 0/0 .rodata @6486 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6486 = 36.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE14, &lit_6486);
|
|
#pragma pop
|
|
|
|
/* 807CEE18-807CEE1C 000170 0004+00 0/1 0/0 0/0 .rodata @6487 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6487 = 43.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE18, &lit_6487);
|
|
#pragma pop
|
|
|
|
/* 807CEE1C-807CEE20 000174 0004+00 0/1 0/0 0/0 .rodata @6488 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6488 = 85.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE1C, &lit_6488);
|
|
#pragma pop
|
|
|
|
/* 807C783C-807C7A8C 00533C 0250+00 1/1 0/0 0/0 .text executeClearAttack__8daE_VA_cFv */
|
|
void daE_VA_c::executeClearAttack() {
|
|
f32 anm_frame = mpMorf->getFrame();
|
|
cLib_addCalc(¤t.pos.y, 0.0f, 0.1f, 10.0f, 1.0f);
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
setBck(ANM_INVI_ATTACK_A_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK_T, 0, -1);
|
|
mMode = 1;
|
|
return;
|
|
case 1:
|
|
if (mpMorf->checkFrame(32.0f)) {
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK1, 0, -1);
|
|
}
|
|
|
|
if (mpMorf->checkFrame(36.0f)) {
|
|
setWeponLandEffect();
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_IMPACT, 0, -1);
|
|
dComIfGp_getVibration().StartShock(5, 31, cXyz(0.0f, 1.0f, 0.0f));
|
|
}
|
|
|
|
if (30.0f <= anm_frame && anm_frame <= 43.0f) {
|
|
onSwordAtBit();
|
|
} else if (anm_frame > 43.0f && anm_frame < 85.0f) {
|
|
offSwordShield();
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_CLEAR_CHASE_e, 0);
|
|
mDemoModeTimer = 150;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
setActionMode(ACTION_TRANS_WAIT_e, 0);
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C7A8C-807C7C74 00558C 01E8+00 1/1 0/0 0/0 .text executeTransWait__8daE_VA_cFv */
|
|
void daE_VA_c::executeTransWait() {
|
|
switch (mMode) {
|
|
case 0:
|
|
Z2GetAudioMgr()->changeSubBgmStatus(2);
|
|
mAlphaType = 1;
|
|
attention_info.flags = 4;
|
|
speedF = 0.0f;
|
|
mMode = 1;
|
|
setBck(ANM_TRANS_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 10.0f, 1.0f);
|
|
mDemoModeTimer = 5;
|
|
|
|
if (!dComIfGs_isOneZoneSwitch(5, fopAcM_GetRoomNo(this))) {
|
|
dComIfGs_onOneZoneSwitch(5, fopAcM_GetRoomNo(this));
|
|
}
|
|
/* fallthrough */
|
|
case 1:
|
|
cLib_addCalc(¤t.pos.y, 0.0f, 0.1f, 10.0f, 1.0f);
|
|
if (mDemoModeTimer == 0) {
|
|
setBck(ANM_INVI_NOTICE_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_FOUND, -1);
|
|
mMode = 2;
|
|
}
|
|
break;
|
|
case 2:
|
|
cLib_addCalc(¤t.pos.y, 0.0f, 0.1f, 10.0f, 1.0f);
|
|
field_0x1391 = 1;
|
|
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_TRANS_CHASE_e, 0);
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (!daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
setActionMode(ACTION_OPACI_FADE_AWAY_e, 0);
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C7C74-807C7ED4 005774 0260+00 1/1 0/0 0/0 .text executeTransChase__8daE_VA_cFv */
|
|
void daE_VA_c::executeTransChase() {
|
|
f32 dist_to_player = fopAcM_searchPlayerDistanceXZ(this);
|
|
s16 angleY_to_player = fopAcM_searchPlayerAngleY(this);
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
setBck(ANM_TRANS_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 10.0f, 1.0f);
|
|
mMode = 1;
|
|
/* fallthrough */
|
|
case 1:
|
|
if (abs((s16)(shape_angle.y - angleY_to_player)) > 0x6000) {
|
|
shape_angle.y += 0x400;
|
|
} else {
|
|
cLib_addCalcAngleS(&shape_angle.y, angleY_to_player, 8, 0x400, 0x40);
|
|
}
|
|
|
|
current.angle.y = shape_angle.y;
|
|
|
|
if (dist_to_player > l_HIO.mAttackRange) {
|
|
cLib_chaseF(&speedF, 15.0f, 1.0f);
|
|
} else if (dist_to_player < l_HIO.mAttackRange - 200.0f) {
|
|
if (mDemoModeTimer == 0) {
|
|
cLib_chaseF(&speedF, 0.0f, 1.0f);
|
|
} else {
|
|
cLib_chaseF(&speedF, -10.0f, 1.0f);
|
|
}
|
|
} else {
|
|
cLib_chaseF(&speedF, 0.0f, 1.0f);
|
|
}
|
|
|
|
if (speedF == 0.0f && mDemoModeTimer == 0 && dist_to_player <= l_HIO.mAttackRange &&
|
|
abs((s16)(shape_angle.y - angleY_to_player)) < 0x2000)
|
|
{
|
|
setActionMode(ACTION_TRANS_ATTACK_e, 0);
|
|
return;
|
|
}
|
|
|
|
if (speedF) {
|
|
if (!checkBck(ANM_TRANS_WALK_e)) {
|
|
setBck(ANM_TRANS_WALK_e, J3DFrameCtrl::LOOP_REPEAT_e, 10.0f, 1.0f);
|
|
}
|
|
} else {
|
|
setBck(ANM_TRANS_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 10.0f, 1.0f);
|
|
}
|
|
}
|
|
|
|
if (!daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
setActionMode(ACTION_OPACI_FADE_AWAY_e, 0);
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE20-807CEE24 000178 0004+00 0/3 0/0 0/0 .rodata @6686 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6686 = 22.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE20, &lit_6686);
|
|
#pragma pop
|
|
|
|
/* 807CEE24-807CEE28 00017C 0004+00 0/2 0/0 0/0 .rodata @6687 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6687 = 33.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE24, &lit_6687);
|
|
#pragma pop
|
|
|
|
/* 807CEE28-807CEE2C 000180 0004+00 0/2 0/0 0/0 .rodata @6688 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6688 = 53.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE28, &lit_6688);
|
|
#pragma pop
|
|
|
|
/* 807C7ED4-807C839C 0059D4 04C8+00 1/1 0/0 0/0 .text executeTransAttack__8daE_VA_cFv */
|
|
void daE_VA_c::executeTransAttack() {
|
|
f32 anm_frame = mpMorf->getFrame();
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
setBck(ANM_TRANS_ATTACK_A1_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK_T, 0, -1);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK1, -1);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK1, 0, -1);
|
|
mMode = 2;
|
|
break;
|
|
case 2:
|
|
if (mpMorf->checkFrame(22.0f)) {
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK1, 0, -1);
|
|
}
|
|
|
|
if (mpMorf->checkFrame(26.0f)) {
|
|
setWeponLandEffect();
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_IMPACT, 0, -1);
|
|
dComIfGp_getVibration().StartShock(5, 31, cXyz(0.0f, 1.0f, 0.0f));
|
|
}
|
|
|
|
if (20.0f <= anm_frame && anm_frame <= 33.0f) {
|
|
onSwordAtBit();
|
|
} else if (anm_frame > 33.0f) {
|
|
offSwordShield();
|
|
}
|
|
|
|
if (mpMorf->checkFrame(20.0f)) {
|
|
mGlowBody = 1;
|
|
mBodyCyls[0].OnTgSetBit();
|
|
mBodyCyls[1].OnTgSetBit();
|
|
mBodyCyls[0].SetTgType(0xD8FBFDFF);
|
|
mBodyCyls[1].SetTgType(0xD8FBFDFF);
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
setBck(ANM_TRANS_ATTACK_A3_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK3, -1);
|
|
mMode = 4;
|
|
}
|
|
break;
|
|
case 4:
|
|
if (mpMorf->checkFrame(20.0f)) {
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK2, 0, -1);
|
|
}
|
|
|
|
if (mpMorf->checkFrame(53.0f)) {
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK3, 0, -1);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK3, -1);
|
|
}
|
|
|
|
if (anm_frame <= 20.0f) {
|
|
offSwordShield();
|
|
}
|
|
|
|
if (mpMorf->checkFrame(40.0f)) {
|
|
mGlowBody = 0;
|
|
mBodyCyls[0].OffTgSetBit();
|
|
mBodyCyls[1].OffTgSetBit();
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_TRANS_CHASE_e, 0);
|
|
mDemoModeTimer = 90;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (!daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
|
|
if (!checkBck(ANM_TRANS_ATTACK_A3_e)) {
|
|
setBck(ANM_TRANS_ATTACK_A3_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK3, -1);
|
|
}
|
|
|
|
setActionMode(ACTION_OPACI_FADE_AWAY_e, 10);
|
|
mBodyCyls[0].OffTgSetBit();
|
|
mBodyCyls[1].OffTgSetBit();
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C839C-807C8860 005E9C 04C4+00 1/1 0/0 0/0 .text executeTransBiteDamage__8daE_VA_cFv
|
|
*/
|
|
void daE_VA_c::executeTransBiteDamage() {
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
cXyz sp38;
|
|
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_NECK_02));
|
|
mDoMtx_stack_c::multVecZero(&sp38);
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
speedF = 0.0f;
|
|
setBck(ANM_TRANS_NECK_DMG_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_BITED, -1);
|
|
mMode = 1;
|
|
field_0x1324 = 0;
|
|
field_0x135c = 0;
|
|
mGlowBody = 1;
|
|
|
|
mBodyCyls[0].OffTgSetBit();
|
|
mBodyCyls[1].OffTgSetBit();
|
|
|
|
if ((s16)(cLib_targetAngleY(&sp38, &player->current.pos) - shape_angle.y) < 0) {
|
|
field_0x1390 = 0;
|
|
} else {
|
|
field_0x1390 = 1;
|
|
}
|
|
/* fallthrough */
|
|
case 1:
|
|
s16 var_r4;
|
|
if (field_0x1390 != 0) {
|
|
var_r4 = shape_angle.y - 0x4000;
|
|
} else {
|
|
var_r4 = shape_angle.y + 0x4000;
|
|
}
|
|
|
|
player->setWolfEnemyHangBiteAngle(var_r4);
|
|
|
|
if (checkWolfBiteDamage()) {
|
|
offWolfBiteDamage();
|
|
field_0x135c++;
|
|
field_0x1324++;
|
|
|
|
if (field_0x135c >= l_HIO.mBiteCount) {
|
|
field_0x135c = 0;
|
|
player->offWolfEnemyHangBite();
|
|
setActionMode(ACTION_OPACI_WAIT_e, 0);
|
|
mSound.startCollisionSE(Z2SE_HIT_WOLFBITE, 0x20);
|
|
attention_info.flags = 0;
|
|
return;
|
|
}
|
|
|
|
setBck(ANM_TRANS_NECK_DMG_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_BITED, -1);
|
|
mSound.startCollisionSE(Z2SE_HIT_WOLFBITE, 0x1E);
|
|
}
|
|
|
|
if (checkBck(ANM_TRANS_NECK_DMG_e)) {
|
|
if (mpMorf->isStop()) {
|
|
setBck(ANM_TRANS_ATTACK_A2_e, J3DFrameCtrl::LOOP_REPEAT_e, 3.0f, 1.0f);
|
|
}
|
|
} else if (checkBck(ANM_TRANS_ATTACK_A2_e) && mpMorf->checkFrame(22.0f)) {
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK2, -1);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK2, 0, -1);
|
|
}
|
|
|
|
if (!daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
player->offWolfEnemyHangBite();
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
setActionMode(ACTION_OPACI_FADE_AWAY_e, 0);
|
|
return;
|
|
}
|
|
|
|
if (!player->checkWolfEnemyHangBiteOwn(this)) {
|
|
setBck(ANM_TRANS_NECK_PAT_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mMode = 3;
|
|
mGlowBody = 0;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_TRANS_CHASE_e, 0);
|
|
return;
|
|
}
|
|
}
|
|
|
|
setDownPos(&sp38);
|
|
if (!daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
setActionMode(ACTION_OPACI_FADE_AWAY_e, 0);
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C8860-807C8A84 006360 0224+00 1/1 0/0 0/0 .text executeTransDamage__8daE_VA_cFv */
|
|
void daE_VA_c::executeTransDamage() {
|
|
if (checkWolfBiteDamage()) {
|
|
offWolfBiteDamage();
|
|
daPy_getPlayerActorClass()->offWolfEnemyHangBite();
|
|
}
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
field_0x138f++;
|
|
if (field_0x138f >= 5) {
|
|
setActionMode(ACTION_OPACI_WAIT_e, 0);
|
|
attention_info.flags = 0;
|
|
mBodyCyls[0].OffTgSetBit();
|
|
mBodyCyls[1].OffTgSetBit();
|
|
return;
|
|
}
|
|
|
|
speedF = 0.0f;
|
|
setBck(ANM_TRANS_NECK_DMG_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_BITED, -1);
|
|
|
|
mMode = 1;
|
|
mGlowBody = 1;
|
|
mBodyCyls[0].OnTgSetBit();
|
|
mBodyCyls[1].OnTgSetBit();
|
|
mBodyCyls[0].SetTgType(0xD8FBFDFF);
|
|
mBodyCyls[1].SetTgType(0xD8FBFDFF);
|
|
/* fallthrough */
|
|
case 1:
|
|
if (mpMorf->isStop()) {
|
|
setBck(ANM_TRANS_NECK_PAT_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mMode = 2;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (mpMorf->checkFrame(30.0f)) {
|
|
mGlowBody = 0;
|
|
mBodyCyls[0].OffTgSetBit();
|
|
mBodyCyls[1].OffTgSetBit();
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_TRANS_CHASE_e, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C8A84-807C8B78 006584 00F4+00 1/1 0/0 0/0 .text executeTransThrough__8daE_VA_cFv */
|
|
void daE_VA_c::executeTransThrough() {
|
|
switch (mMode) {
|
|
case 0:
|
|
speedF = 0.0f;
|
|
setBck(ANM_TRANS_THROUGH_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mMode = 1;
|
|
break;
|
|
case 1:
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_TRANS_CHASE_e, 0);
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (!daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
setActionMode(ACTION_OPACI_FADE_AWAY_e, 0);
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C8B78-807C915C 006678 05E4+00 2/1 0/0 0/0 .text executeOpaciWait__8daE_VA_cFv */
|
|
void daE_VA_c::executeOpaciWait() {
|
|
dCamera_c* camera = dCam_getBody();
|
|
cXyz sp24;
|
|
cXyz sp30;
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
if (field_0x1486 == 0) {
|
|
field_0x1486 = 1;
|
|
mMode = 10;
|
|
|
|
if (!dComIfGs_isOneZoneSwitch(8, fopAcM_GetRoomNo(this))) {
|
|
dComIfGs_onOneZoneSwitch(8, fopAcM_GetRoomNo(this));
|
|
}
|
|
} else {
|
|
mAlphaType = 2;
|
|
field_0x1380 = 30;
|
|
mGlowLightB = 0;
|
|
mGlowLightG = 0;
|
|
mGlowLightR = 0;
|
|
mKankyoColBlend = 1.0f;
|
|
mKankyoColType = 1;
|
|
field_0x1354 = 10;
|
|
attention_info.flags = 4;
|
|
mFadeAwayTimer = l_HIO.mFadeAwayTime;
|
|
|
|
speedF = 0.0f;
|
|
setActionMode(ACTION_OPACI_FLY_e, 22);
|
|
}
|
|
|
|
Z2GetAudioMgr()->changeSubBgmStatus(3);
|
|
break;
|
|
case 10:
|
|
if (!eventInfo.i_checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(this, 2, 0xFFFF, 0);
|
|
eventInfo.i_onCondition(2);
|
|
} else {
|
|
mAlphaType = 2;
|
|
field_0x1380 = 30;
|
|
mGlowLightB = 0;
|
|
mGlowLightG = 0;
|
|
mGlowLightR = 0;
|
|
mKankyoColBlend = 1.0f;
|
|
mKankyoColType = 1;
|
|
|
|
setBck(ANM_TRANS_STRUGGLE_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_VISUAL, -1);
|
|
field_0x1354 = 10;
|
|
speedF = 0.0f;
|
|
mMode = 12;
|
|
|
|
sp24.set(200.0f, 0.0f, 100.0f);
|
|
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&sp24, 0x8000, 0);
|
|
daPy_getPlayerActorClass()->changeOriginalDemo();
|
|
daPy_getPlayerActorClass()->changeDemoMode(0x17, 1, 0, 0);
|
|
|
|
camera->Stop();
|
|
camera->SetTrimSize(3);
|
|
field_0x14ac = -0x1000;
|
|
mDemoCamCenter.set(15.0f, 291.0f, 201.0f);
|
|
sp30.set(0.0f, 50.0f, 700.0f);
|
|
cLib_offsetPos(&mDemoCamEye, ¤t.pos, field_0x14ac, &sp30);
|
|
mDemoCamBank = 70.0f;
|
|
field_0x14a4 = 0.0f;
|
|
}
|
|
break;
|
|
case 12:
|
|
current.pos.set(0.0f, 0.0f, 0.0f);
|
|
eyePos.set(15.0f, 291.0f, 201.0f);
|
|
current.angle.y = 0;
|
|
shape_angle.y = 0;
|
|
mMode = 13;
|
|
/* fallthrough */
|
|
case 13:
|
|
field_0x14a4++;
|
|
mDemoCamCenter = eyePos;
|
|
|
|
sp30.set(0.0f, field_0x14a4 + 50.0f, 700.0f);
|
|
cLib_offsetPos(&mDemoCamEye, ¤t.pos, field_0x14ac, &sp30);
|
|
field_0x14ac += 80;
|
|
|
|
camera->Set(mDemoCamCenter, mDemoCamEye, mDemoCamBank, 0);
|
|
cLib_addCalcAngleS(&shape_angle.y, -0x1000, 8, 0x100, 0x100);
|
|
|
|
if (mpMorf->checkFrame(90.0f)) {
|
|
mMode = 14;
|
|
dComIfGp_getVibration().StartQuake(2, 31, cXyz(0.0f, 1.0f, 0.0f));
|
|
field_0x14b0 = 180.0f;
|
|
}
|
|
break;
|
|
case 14:
|
|
cLib_addCalc2(&field_0x14b0, 0.0f, 1.0f, 6.0f);
|
|
mDemoCamCenter = eyePos;
|
|
cLib_chaseF(&mDemoCamBank, 30.0f, 5.0f);
|
|
|
|
camera->Set(mDemoCamCenter, mDemoCamEye, mDemoCamBank, 0);
|
|
|
|
if (mpMorf->checkFrame(120.0f)) {
|
|
dComIfGp_getVibration().StopQuake(31);
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
camera->Reset(mDemoCamCenter, mDemoCamEye);
|
|
camera->Start();
|
|
camera->SetTrimSize(0);
|
|
dComIfGp_event_reset();
|
|
|
|
mFadeAwayTimer = l_HIO.mFadeAwayTime;
|
|
attention_info.flags = 4;
|
|
setBck(ANM_SUBS_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 3.0f, 1.0f);
|
|
mMode = 15;
|
|
mDemoModeTimer = 30;
|
|
}
|
|
break;
|
|
case 15:
|
|
if (mDemoModeTimer == 0) {
|
|
setActionMode(ACTION_OPACI_FLY_e, 0);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
/* 807C915C-807C9A40 006C5C 08E4+00 2/1 0/0 0/0 .text executeOpaciFly__8daE_VA_cFv */
|
|
void daE_VA_c::executeOpaciFly() {
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
s16 var_r31 = cM_atan2s(current.pos.x, current.pos.z);
|
|
|
|
mBodyCyls[0].OnTgSetBit();
|
|
mBodyCyls[1].OnTgSetBit();
|
|
mBodyCyls[0].SetTgType(0x16060);
|
|
mBodyCyls[1].SetTgType(0x16060);
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
case 20:
|
|
case 21:
|
|
case 22:
|
|
attention_info.flags = 0;
|
|
|
|
if (mMode == 0) {
|
|
setBck(ANM_FLOAT_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 3.0f, 1.0f);
|
|
} else if (mMode == 20) {
|
|
setBck(ANM_SUBS_DOWN_D_STAND_e, J3DFrameCtrl::LOOP_ONCE_e, 10.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_DMG_L, -1);
|
|
} else if (mMode == 21) {
|
|
setBck(ANM_SUBS_DOWN_STAND_e, J3DFrameCtrl::LOOP_ONCE_e, 10.0f, 1.0f);
|
|
} else if (mMode == 22) {
|
|
setBck(ANM_TRANS_NECK_DMG_e, J3DFrameCtrl::LOOP_ONCE_e, 10.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_BITED, -1);
|
|
}
|
|
|
|
mMode = 1;
|
|
gravity = 0.0f;
|
|
|
|
s16 temp_r0 = shape_angle.y + 0x8000;
|
|
f32 temp_f29 = cM_scos(temp_r0) * 1000.0f;
|
|
f32 temp_f1 = cM_ssin(temp_r0) * 1000.0f;
|
|
field_0x12f8.set(temp_f1, 500.0f, temp_f29);
|
|
current.angle.y = temp_r0;
|
|
|
|
mDemoModeTimer = nREG_S(0) + 15;
|
|
/* fallthrough */
|
|
case 1:
|
|
if (mDemoModeTimer == 0 && !checkBck(ANM_FLOAT_WAIT_e)) {
|
|
setBck(ANM_FLOAT_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, nREG_F(19) + 30.0f, 1.0f);
|
|
}
|
|
|
|
cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 8, 0x800, 0x80);
|
|
|
|
s16 temp_r3 = cLib_targetAngleX(¤t.pos, &field_0x12f8);
|
|
f32 temp_f31 = std::abs(cM_scos(temp_r3) * 20.0f);
|
|
f32 temp_f30 = cM_ssin(temp_r3) * 20.0f;
|
|
|
|
if (current.pos.y >= 500.0f) {
|
|
cLib_chaseF(&speed.y, 0.0f, 3.0f);
|
|
cLib_chaseF(¤t.pos.y, 500.0f, 1.0f);
|
|
} else {
|
|
cLib_chaseF(&speed.y, temp_f30, 1.0f);
|
|
}
|
|
|
|
if (current.pos.absXZ() > 950.0f) {
|
|
field_0x12f8.set(current.pos.x, 500.0f, current.pos.z);
|
|
cLib_chaseF(&speedF, 0.0f, 3.0f);
|
|
} else {
|
|
cLib_chaseF(&speedF, temp_f31, 1.0f);
|
|
}
|
|
|
|
if (speed.y == 0.0f && speedF == 0.0f) {
|
|
mMode = 2;
|
|
}
|
|
break;
|
|
case 2:
|
|
mMode = 3;
|
|
mDemoModeTimer = 30;
|
|
field_0x1324 = 0;
|
|
mDownTimer = cM_rndF(60.0f) + 150.0f;
|
|
field_0x1348 = cM_rndF(30.0f) + 90.0f;
|
|
/* fallthrough */
|
|
case 3:
|
|
cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 8, 0x800, 0x80);
|
|
|
|
if (field_0x1324 != 0) {
|
|
current.angle.y = var_r31 + 0x4000;
|
|
} else {
|
|
current.angle.y = var_r31 - 0x4000;
|
|
}
|
|
|
|
cLib_chaseF(&speedF, 30.0f, 1.0f);
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
mMode = 4;
|
|
}
|
|
break;
|
|
case 4:
|
|
cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 8, 0x800, 0x80);
|
|
|
|
if (field_0x1324 != 0) {
|
|
current.angle.y = var_r31 + 0x4000;
|
|
} else {
|
|
current.angle.y = var_r31 - 0x4000;
|
|
}
|
|
|
|
cLib_chaseF(&speedF, 0.0f, 1.0f);
|
|
|
|
if (!speedF) {
|
|
if (mFadeAwayTimer == 0) {
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
setActionMode(ACTION_OPACI_FADE_AWAY_e, 1);
|
|
} else if (mDownTimer == 0 && current.pos.absXZ(player->current.pos) > 500.0f) {
|
|
mMode = 10;
|
|
} else {
|
|
mDemoModeTimer = 30;
|
|
mMode = 3;
|
|
|
|
if ((s16)(var_r31 - fopAcM_searchPlayerAngleY(this)) < 0) {
|
|
field_0x1324 = 0;
|
|
} else {
|
|
field_0x1324 = 1;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 10:
|
|
mDemoModeTimer = 30;
|
|
mMode = 11;
|
|
/* fallthrough */
|
|
case 11:
|
|
if (mDemoModeTimer == 0) {
|
|
setBck(ANM_FLOAT_ATTACK_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mMode = 12;
|
|
}
|
|
break;
|
|
case 12:
|
|
if (mpMorf->checkFrame(42.0f)) {
|
|
mSound.startCreatureSound(Z2SE_EN_VA_ATK_FLY, 0, -1);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK_FLY, -1);
|
|
}
|
|
|
|
if (mpMorf->checkFrame(62.0f)) {
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK_FLY2, -1);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_ATK_FLY2, 0, -1);
|
|
}
|
|
|
|
if (mpMorf->checkFrame(47.0f)) {
|
|
field_0x1228[0] = 1;
|
|
}
|
|
|
|
if (mpMorf->checkFrame(67.0f)) {
|
|
field_0x1228[1] = 1;
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
setBck(ANM_FLOAT_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 3.0f, 1.0f);
|
|
mMode = 2;
|
|
field_0x1348 = cM_rndF(30.0f) + 90.0f;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE2C-807CEE30 000184 0004+00 0/0 0/0 0/0 .rodata @6999 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_6999 = 291.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE2C, &lit_6999);
|
|
#pragma pop
|
|
|
|
/* 807CEE30-807CEE34 000188 0004+00 0/0 0/0 0/0 .rodata @7000 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7000 = 201.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE30, &lit_7000);
|
|
#pragma pop
|
|
|
|
/* 807CEE34-807CEE38 00018C 0004+00 0/0 0/0 0/0 .rodata @7001 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7001 = 700.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE34, &lit_7001);
|
|
#pragma pop
|
|
|
|
/* 807CEE38-807CEE3C 000190 0004+00 0/2 0/0 0/0 .rodata @7002 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7002 = 70.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE38, &lit_7002);
|
|
#pragma pop
|
|
|
|
/* 807CEE3C-807CEE40 000194 0004+00 0/0 0/0 0/0 .rodata @7003 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7003 = 6.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE3C, &lit_7003);
|
|
#pragma pop
|
|
|
|
/* 807CEE40-807CEE44 000198 0004+00 0/1 0/0 0/0 .rodata @7004 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7004 = 120.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE40, &lit_7004);
|
|
#pragma pop
|
|
|
|
/* 807CEE44-807CEE48 00019C 0004+00 0/0 0/0 0/0 .rodata @7240 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7240 = 42.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE44, &lit_7240);
|
|
#pragma pop
|
|
|
|
/* 807CEE48-807CEE4C 0001A0 0004+00 0/0 0/0 0/0 .rodata @7241 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7241 = 62.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE48, &lit_7241);
|
|
#pragma pop
|
|
|
|
/* 807CEE4C-807CEE50 0001A4 0004+00 0/0 0/0 0/0 .rodata @7242 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7242 = 47.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE4C, &lit_7242);
|
|
#pragma pop
|
|
|
|
/* 807CEE50-807CEE54 0001A8 0004+00 0/3 0/0 0/0 .rodata @7291 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7291 = -30.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE50, &lit_7291);
|
|
#pragma pop
|
|
|
|
/* 807C9A40-807C9C8C 007540 024C+00 1/1 0/0 0/0 .text executeOpaciDamage__8daE_VA_cFv */
|
|
void daE_VA_c::executeOpaciDamage() {
|
|
switch (mMode) {
|
|
case 0:
|
|
attention_info.flags = 0;
|
|
mBodyCyls[0].SetTgType(0xD8FBFDFF);
|
|
mBodyCyls[1].SetTgType(0xD8FBFDFF);
|
|
|
|
setBck(ANM_FLOAT_DMG_A_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_DOWN, -1);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_DMG, -1);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_DOWN, 0, -1);
|
|
|
|
mMode = 1;
|
|
speedF = 0.0f;
|
|
/* fallthrough */
|
|
case 1:
|
|
if (mpMorf->isStop()) {
|
|
gravity = -5.0f;
|
|
maxFallSpeed = -50.0f;
|
|
mMode = 2;
|
|
setBck(ANM_FLOAT_DMG_B_e, J3DFrameCtrl::LOOP_ONCE_e, 10.0f, 1.0f);
|
|
}
|
|
break;
|
|
case 2:
|
|
if (mAcch.i_ChkGroundHit() || speed.y <= nREG_F(4) + -30.0f) {
|
|
setActionMode(ACTION_OPACI_CHASE_e, 0);
|
|
}
|
|
break;
|
|
case 10:
|
|
attention_info.flags = 0;
|
|
setBck(ANM_SUBS_STAGGER_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_NO_DMG, -1);
|
|
mMode = 11;
|
|
/* fallthrough */
|
|
case 11:
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_OPACI_FLY_e, 0);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE54-807CEE58 0001AC 0004+00 0/1 0/0 0/0 .rodata @7421 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7421 = 16384.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE54, &lit_7421);
|
|
#pragma pop
|
|
|
|
/* 807CEE58-807CEE5C 0001B0 0004+00 0/3 0/0 0/0 .rodata @7422 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7422 = 25.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE58, &lit_7422);
|
|
#pragma pop
|
|
|
|
/* 807CEE5C-807CEE60 0001B4 0004+00 0/1 0/0 0/0 .rodata @7423 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7423 = -40.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE5C, &lit_7423);
|
|
#pragma pop
|
|
|
|
/* 807C9C8C-807CA364 00778C 06D8+00 1/1 0/0 0/0 .text executeOpaciChase__8daE_VA_cFv */
|
|
void daE_VA_c::executeOpaciChase() {
|
|
cXyz sp44;
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
s16 angleY_to_player = fopAcM_searchPlayerAngleY(this);
|
|
s16 angle_to_home = cLib_targetAngleY(&home.pos, ¤t.pos);
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
attention_info.flags = 0;
|
|
field_0x1330 = angle_to_home;
|
|
field_0x1332 = field_0x1330;
|
|
field_0x1334 = (f32)field_0x1332 + cM_rndF(3.0f) * 16384.0f;
|
|
|
|
if (cM_rnd() < 0.5f) {
|
|
field_0x1336 = -0x400;
|
|
} else {
|
|
field_0x1336 = 0x400;
|
|
}
|
|
|
|
field_0x1330 += field_0x1336;
|
|
mMode = 10;
|
|
mDownTimer = 30;
|
|
|
|
setBck(ANM_SUBS_FLY_e, J3DFrameCtrl::LOOP_REPEAT_e, 30.0f, 1.0f);
|
|
gravity = 0.0f;
|
|
field_0x1324 = 0;
|
|
|
|
sp44.set(0.0f, 0.0f, l_HIO.mCircleAttackRadius);
|
|
cLib_offsetPos(&field_0x12f8, &home.pos, field_0x1330, &sp44);
|
|
current.angle.y = cLib_targetAngleY(¤t.pos, &field_0x12f8);
|
|
/* fallthrough */
|
|
case 10:
|
|
case 11:
|
|
field_0x1388 = 1;
|
|
mSound.startCreatureVoiceLevel(Z2SE_EN_VA_V_ROTATE, -1);
|
|
|
|
if (mDownTimer == 0 && !player->i_checkNowWolf()) {
|
|
mBodyCyls[0].OnTgSetBit();
|
|
mBodyCyls[1].OnTgSetBit();
|
|
}
|
|
|
|
switch (field_0x1324) {
|
|
case 0:
|
|
if (cLib_chaseF(&speed.y, nREG_F(0) + 25.0f, nREG_F(1) + 3.0f)) {
|
|
field_0x1324 = 1;
|
|
}
|
|
break;
|
|
case 1:
|
|
if (cLib_chaseF(&speed.y, nREG_F(3) + -40.0f, nREG_F(2) + 3.0f)) {
|
|
field_0x1324 = 0;
|
|
}
|
|
|
|
if (mAcch.i_ChkGroundHit()) {
|
|
field_0x1324 = 2;
|
|
gravity = -5.0f;
|
|
}
|
|
break;
|
|
case 2:
|
|
break;
|
|
}
|
|
|
|
cLib_chaseF(&speedF, 100.0f, 3.0f);
|
|
|
|
sp44.set(0.0f, 0.0f, l_HIO.mCircleAttackRadius);
|
|
cLib_offsetPos(&field_0x12f8, &home.pos, field_0x1330, &sp44);
|
|
|
|
if (current.pos.absXZ() > nREG_F(19) + 1200.0f) {
|
|
s16 temp_r26 = cM_atan2s(current.pos.x, current.pos.z);
|
|
|
|
current.pos.x = (nREG_F(19) + 1200.0f) * cM_ssin(temp_r26);
|
|
current.pos.z = (nREG_F(19) + 1200.0f) * cM_scos(temp_r26);
|
|
}
|
|
|
|
cLib_addCalcAngleS(&shape_angle.y, angleY_to_player, 8, 0x800, 0x80);
|
|
cLib_addCalcAngleS(¤t.angle.y, (s16)cLib_targetAngleY(¤t.pos, &field_0x12f8), 8,
|
|
0x800, 0x80);
|
|
|
|
if (abs((s16)(field_0x1330 - angle_to_home)) < 0x2000) {
|
|
s16 var_r29 = field_0x1330;
|
|
field_0x1330 += field_0x1336;
|
|
|
|
if (mMode == 10) {
|
|
if (abs((s16)(field_0x1332 - field_0x1330)) <= abs(field_0x1336)) {
|
|
if (abs((s16)(field_0x1332 - var_r29)) <= abs(field_0x1336)) {
|
|
if (field_0x1332 == field_0x1334) {
|
|
mMode = 12;
|
|
} else {
|
|
mMode = 11;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (abs((s16)(field_0x1334 - field_0x1330)) <= abs(field_0x1336)) {
|
|
mMode = 12;
|
|
attention_info.flags = 4;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 12:
|
|
mSound.startCreatureVoiceLevel(Z2SE_EN_VA_V_ROTATE, -1);
|
|
|
|
if (!player->i_checkNowWolf()) {
|
|
mBodyCyls[0].OnTgSetBit();
|
|
mBodyCyls[1].OnTgSetBit();
|
|
}
|
|
|
|
field_0x1388 = 1;
|
|
cLib_addCalcAngleS(&shape_angle.y, angleY_to_player, 8, 0x800, 0x80);
|
|
cLib_addCalcAngleS(¤t.angle.y, angleY_to_player, 8, 0x800, 0x80);
|
|
|
|
if (fopAcM_searchPlayerDistance(this) > l_HIO.mAttackRange) {
|
|
cLib_chaseF(&speedF, 100.0f, 3.0f);
|
|
} else if (fopAcM_searchPlayerDistance(this) < l_HIO.mAttackRange - 300.0f) {
|
|
cLib_chaseF(&speedF, -30.0f, 3.0f);
|
|
} else {
|
|
mMode = 13;
|
|
}
|
|
break;
|
|
case 13:
|
|
mSound.startCreatureVoiceLevel(Z2SE_EN_VA_V_ROTATE, -1);
|
|
|
|
if (!player->i_checkNowWolf()) {
|
|
mBodyCyls[0].OnTgSetBit();
|
|
mBodyCyls[1].OnTgSetBit();
|
|
}
|
|
|
|
cLib_addCalcAngleS(&shape_angle.y, angleY_to_player, 8, 0x800, 0x80);
|
|
cLib_addCalcAngleS(¤t.angle.y, angleY_to_player, 8, 0x800, 0x80);
|
|
|
|
if (cLib_chaseF(&speedF, 0.0f, 3.0f)) {
|
|
setActionMode(ACTION_OPACI_ATTACK_e, 0);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE60-807CEE64 0001B8 0004+00 0/0 0/0 0/0 .rodata @7424 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7424 = 1200.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE60, &lit_7424);
|
|
#pragma pop
|
|
|
|
/* 807CEE64-807CEE68 0001BC 0004+00 0/1 0/0 0/0 .rodata @7509 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7509 = 27.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE64, &lit_7509);
|
|
#pragma pop
|
|
|
|
/* 807CEE68-807CEE6C 0001C0 0004+00 0/1 0/0 0/0 .rodata @7510 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7510 = 16.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE68, &lit_7510);
|
|
#pragma pop
|
|
|
|
/* 807CEE6C-807CEE70 0001C4 0004+00 0/1 0/0 0/0 .rodata @7511 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7511 = 12.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE6C, &lit_7511);
|
|
#pragma pop
|
|
|
|
/* 807CA364-807CA73C 007E64 03D8+00 1/1 0/0 0/0 .text executeOpaciAttack__8daE_VA_cFv */
|
|
void daE_VA_c::executeOpaciAttack() {
|
|
f32 anm_frame = mpMorf->getFrame();
|
|
|
|
mBodyCyls[0].OnTgSetBit();
|
|
mBodyCyls[1].OnTgSetBit();
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
speedF = 0.0f;
|
|
setBck(ANM_SUBS_ATTACK_A1_e, J3DFrameCtrl::LOOP_ONCE_e, 10.0f, 1.0f);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK_T, 0, -1);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK1, -1);
|
|
mMode = 1;
|
|
/* fallthrough */
|
|
case 1:
|
|
if (mpMorf->checkFrame(22.0f)) {
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK1, 0, -1);
|
|
}
|
|
|
|
if (mpMorf->checkFrame(27.0f)) {
|
|
setWeponLandEffect();
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_IMPACT, 0, -1);
|
|
dComIfGp_getVibration().StartShock(5, 31, cXyz(0.0f, 1.0f, 0.0f));
|
|
}
|
|
|
|
if (anm_frame < 16.0f) {
|
|
cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 8, 0x800, 0x80);
|
|
current.angle.y = shape_angle.y;
|
|
}
|
|
|
|
if (20.0f <= anm_frame && anm_frame <= 33.0f) {
|
|
onSwordAtBit();
|
|
} else if (anm_frame > 33.0f) {
|
|
offSwordShield();
|
|
field_0x1386 = 1;
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
setBck(ANM_SUBS_ATTACK_A3_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK3, -1);
|
|
mMode = 2;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (mpMorf->checkFrame(12.0f)) {
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK3, -1);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK3, 0, -1);
|
|
}
|
|
|
|
if (mpMorf->getFrame() <= 15.0f) {
|
|
offSwordShield();
|
|
field_0x1386 = 1;
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
if (mFadeAwayTimer == 0) {
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
setActionMode(ACTION_OPACI_FADE_AWAY_e, 1);
|
|
return;
|
|
}
|
|
|
|
setActionMode(ACTION_OPACI_FLY_e, 0);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
/* 807CA73C-807CAA80 00823C 0344+00 1/1 0/0 0/0 .text executeOpaciDown__8daE_VA_cFv */
|
|
void daE_VA_c::executeOpaciDown() {
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
mBodyCyls[1].OnTgSetBit();
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
setBck(ANM_SUBS_DOWN_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mDownTimer = l_HIO.mDownTime;
|
|
mMode = 2;
|
|
speedF = 0.0f;
|
|
field_0x1383 = 0;
|
|
attention_info.flags = 4;
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_DMG_L, -1);
|
|
dComIfGs_onOneZoneSwitch(6, fopAcM_GetRoomNo(this));
|
|
/* fallthrough */
|
|
case 2:
|
|
if (mpMorf->getFrame() < 40.0f) {
|
|
mBodyCyls[1].OffTgSetBit();
|
|
}
|
|
|
|
if (mpMorf->isStop()) {
|
|
setBck(ANM_SUBS_DOWN_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 3.0f, 1.0f);
|
|
mMode = 3;
|
|
}
|
|
break;
|
|
case 1:
|
|
setBck(ANM_SUBS_DOWN_WAIT_e, J3DFrameCtrl::LOOP_REPEAT_e, 3.0f, 1.0f);
|
|
mMode = 3;
|
|
/* fallthrough */
|
|
case 3:
|
|
if (mpMorf->checkFrame(1.0f)) {
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_DYING, -1);
|
|
}
|
|
|
|
if (mFadeAwayTimer == 0) {
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
setActionMode(ACTION_OPACI_FADE_AWAY_e, 2);
|
|
} else if (mDownTimer == 0) {
|
|
setActionMode(ACTION_OPACI_FLY_e, 21);
|
|
}
|
|
break;
|
|
case 5:
|
|
field_0x1364 += field_0x1368;
|
|
|
|
if ((f32)field_0x1364 > l_HIO.mDownHP || field_0x1384 >= 6) {
|
|
setActionMode(ACTION_OPACI_DEATH_e, 0);
|
|
field_0x1381 = 1;
|
|
return;
|
|
}
|
|
|
|
setActionMode(ACTION_OPACI_FLY_e, 20);
|
|
break;
|
|
case 4:
|
|
mBodyCyls[1].OffTgSetBit();
|
|
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_OPACI_FLY_e, 0);
|
|
return;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (player->getCutCount() > 1 || player->getCutType() == 10) {
|
|
if (mFadeAwayTimer < 30) {
|
|
mFadeAwayTimer = 30;
|
|
}
|
|
|
|
if (mDownTimer < 30) {
|
|
mDownTimer = 30;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 807CAA80-807CACE0 008580 0260+00 1/1 0/0 0/0 .text executeOpaciDownDamage__8daE_VA_cFv
|
|
*/
|
|
void daE_VA_c::executeOpaciDownDamage() {
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
|
|
if (player->getCutCount() > 1 || player->getCutType() == 10) {
|
|
if (mFadeAwayTimer < 30) {
|
|
mFadeAwayTimer = 30;
|
|
}
|
|
|
|
if (mDownTimer < 30) {
|
|
mDownTimer = 30;
|
|
}
|
|
}
|
|
|
|
if (mFadeAwayTimer != 0 && mDownTimer != 0) {
|
|
mBodyCyls[1].OnTgSetBit();
|
|
}
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
speedF = 0.0f;
|
|
field_0x1364 += field_0x1368;
|
|
|
|
if ((f32)field_0x1364 > l_HIO.mDownHP) {
|
|
setActionMode(ACTION_OPACI_DEATH_e, 0);
|
|
field_0x1381 = 1;
|
|
return;
|
|
}
|
|
|
|
if (mMode == 0) {
|
|
setBck(ANM_SUBS_DOWN_DMG_A1_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_DMG, -1);
|
|
} else if (mMode == 1) {
|
|
setBck(ANM_SUBS_DOWN_DMG_A2_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_DMG, -1);
|
|
} else {
|
|
setBck(ANM_SUBS_DOWN_STAGGER_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_NO_DMG, -1);
|
|
}
|
|
|
|
mMode = 5;
|
|
case 5:
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_OPACI_DOWN_e, 1);
|
|
field_0x1381 = 1;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
/* 807CACE0-807CADB8 0087E0 00D8+00 1/1 0/0 0/0 .text executeOpaciFlip__8daE_VA_cFv */
|
|
void daE_VA_c::executeOpaciFlip() {
|
|
switch (mMode) {
|
|
case 0:
|
|
speedF = 0.0f;
|
|
mMode = 1;
|
|
daPy_getPlayerActorClass()->setThrowDamage(shape_angle.y, 20.0f, 40.0f, 1, 0, 0);
|
|
/* fallthrough */
|
|
case 1:
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_OPACI_CHASE_e, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 807CADB8-807CB1C4 0088B8 040C+00 2/1 0/0 0/0 .text executeOpaciFadeAway__8daE_VA_cFv
|
|
*/
|
|
void daE_VA_c::executeOpaciFadeAway() {
|
|
attention_info.flags = 0;
|
|
mBodyCylIFrameTimer = 3;
|
|
mNeckSphIFrameTimer = 3;
|
|
mAttackSphIFrameTimer = 3;
|
|
|
|
switch (mMode) {
|
|
case 10:
|
|
if (checkBck(ANM_TRANS_ATTACK_A3_e)) {
|
|
if (mpMorf->checkFrame(20.0f)) {
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK2, 0, -1);
|
|
}
|
|
|
|
if (mpMorf->checkFrame(53.0f)) {
|
|
mSound.startCreatureSound(Z2SE_EN_VA_SWD_ATK3, 0, -1);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_ATK3, -1);
|
|
}
|
|
}
|
|
|
|
mAlphaType = 0;
|
|
speedF = 0.0f;
|
|
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_CLEAR_WAIT_e, 0);
|
|
}
|
|
break;
|
|
case 0:
|
|
mAlphaType = 0;
|
|
speedF = 0.0f;
|
|
setActionMode(ACTION_CLEAR_WAIT_e, 0);
|
|
break;
|
|
case 1:
|
|
if (checkBck(ANM_SUBS_INVITE_B_e)) {
|
|
setBck(ANM_SUBS_INVITE_C_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mMode = 5;
|
|
} else {
|
|
setBck(ANM_SUBS_TO_TRANS_e, J3DFrameCtrl::LOOP_ONCE_e, 10.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_VANISH, -1);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_VANISH, 0, -1);
|
|
mAlphaType = 3;
|
|
mMode = 4;
|
|
mKankyoColType = 2;
|
|
}
|
|
|
|
speed.y = 0.0f;
|
|
speedF = 0.0f;
|
|
break;
|
|
case 2:
|
|
setBck(ANM_SUBS_DOWN_STAND_e, J3DFrameCtrl::LOOP_ONCE_e, 10.0f, 1.0f);
|
|
mMode = 3;
|
|
speedF = 0.0f;
|
|
break;
|
|
case 3:
|
|
if (mpMorf->isStop()) {
|
|
setBck(ANM_SUBS_TO_TRANS_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_VANISH, -1);
|
|
mSound.startCreatureSound(Z2SE_EN_VA_VANISH, 0, -1);
|
|
mMode = 4;
|
|
mAlphaType = 3;
|
|
mKankyoColType = 2;
|
|
}
|
|
break;
|
|
case 4:
|
|
cLib_addCalc(¤t.pos.y, 0.0f, 0.1f, 10.0f, 1.0f);
|
|
if (mpMorf->isStop()) {
|
|
setActionMode(ACTION_CLEAR_WAIT_e, 1);
|
|
current.pos.y = 0.0f;
|
|
}
|
|
break;
|
|
case 5:
|
|
if (mpMorf->isStop()) {
|
|
mMode = 1;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (daPy_getPlayerActorClass()->checkNowWolfEyeUp() && field_0x1358 == 0) {
|
|
setActionMode(ACTION_TRANS_WAIT_e, 0);
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE70-807CEE74 0001C8 0004+00 0/2 0/0 0/0 .rodata @7919 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7919 = 350.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE70, &lit_7919);
|
|
#pragma pop
|
|
|
|
/* 807CEE74-807CEE78 0001CC 0004+00 0/1 0/0 0/0 .rodata @7920 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7920 = -54.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE74, &lit_7920);
|
|
#pragma pop
|
|
|
|
/* 807CEE78-807CEE7C 0001D0 0004+00 0/1 0/0 0/0 .rodata @7921 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7921 = 168.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE78, &lit_7921);
|
|
#pragma pop
|
|
|
|
/* 807CEE7C-807CEE80 0001D4 0004+00 0/1 0/0 0/0 .rodata @7922 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7922 = 207.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE7C, &lit_7922);
|
|
#pragma pop
|
|
|
|
/* 807CB1C4-807CB8CC 008CC4 0708+00 2/1 0/0 0/0 .text executeOpaciDeath__8daE_VA_cFv */
|
|
void daE_VA_c::executeOpaciDeath() {
|
|
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
cXyz sp24;
|
|
cXyz sp30;
|
|
|
|
mBodyCyls[0].OffTgSetBit();
|
|
mBodyCyls[1].OffTgSetBit();
|
|
|
|
switch (mMode) {
|
|
case 0:
|
|
if (!eventInfo.i_checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(this, 2, 0xFFFF, 0);
|
|
eventInfo.i_onCondition(2);
|
|
return;
|
|
}
|
|
|
|
Z2GetAudioMgr()->subBgmStop();
|
|
Z2GetAudioMgr()->i_muteSceneBgm(0, 0.0f);
|
|
|
|
dComIfGs_onStageMiddleBoss();
|
|
field_0x1364 = 0;
|
|
|
|
setBck(ANM_SUBS_DOWN_DIE_e, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
|
mSound.startCreatureVoice(Z2SE_EN_VA_V_DEAD, -1);
|
|
mMode = 10;
|
|
|
|
player->changeOriginalDemo();
|
|
|
|
sp30.set(0.0f, 0.0f, 350.0f);
|
|
player->setPlayerPosAndAngle(&sp30, 0x8000, 0);
|
|
player->changeDemoMode(4, 1, 0, 0);
|
|
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
|
|
mDemoCamCenter.set(-54.0f, 168.0f, 207.0f);
|
|
field_0x14ac = -0x1800;
|
|
field_0x14a4 = 600.0f;
|
|
|
|
sp24.set(0.0f, 0.0f, field_0x14a4);
|
|
cLib_offsetPos(&mDemoCamEye, ¤t.pos, shape_angle.y + field_0x14ac, &sp24);
|
|
mDemoCamEye.y = 50.0f;
|
|
mDemoCamBank = 70.0f;
|
|
return;
|
|
case 10:
|
|
current.pos.set(0.0f, 0.0f, 0.0f);
|
|
eyePos.set(-54.0f, 168.0f, 207.0f);
|
|
shape_angle.y = 0;
|
|
current.angle.y = 0;
|
|
mMode = 1;
|
|
case 1:
|
|
mDemoCamCenter = eyePos;
|
|
mDemoCamCenter.y -= 50.0f;
|
|
field_0x14ac += 0x40;
|
|
|
|
sp24.set(0.0f, 0.0f, field_0x14a4);
|
|
cLib_offsetPos(&mDemoCamEye, ¤t.pos, shape_angle.y + field_0x14ac, &sp24);
|
|
mDemoCamEye.y = 50.0f;
|
|
|
|
if (mpMorf->checkFrame(155.0f)) {
|
|
mMode = 2;
|
|
mDemoModeTimer = 60;
|
|
|
|
sp30.set(0.0f, 0.0f, 350.0f);
|
|
player->setPlayerPosAndAngle(&sp30, 0x8000, 0);
|
|
|
|
field_0x14a4 = 400.0f;
|
|
sp24.set(0.0f, 0.0f, field_0x14a4);
|
|
cLib_offsetPos(&mDemoCamEye, ¤t.pos, shape_angle.y + field_0x14ac, &sp24);
|
|
mDemoCamEye.y = 50.0f;
|
|
}
|
|
break;
|
|
case 2:
|
|
mDemoCamCenter = eyePos;
|
|
mDemoCamCenter.y -= 50.0f;
|
|
|
|
if (mpMorf->isStop()) {
|
|
mDoMtx_stack_c::copy(mpWeaponModel->getBaseTRMtx());
|
|
mDoMtx_stack_c::transM(-10.0f, 160.0f, 15.0f);
|
|
mDoMtx_stack_c::multVecZero(&sp30);
|
|
|
|
fopAcM_createDisappear(this, &sp30, 20, 0, 0xFF);
|
|
mDemoModeTimer = 120;
|
|
mMode = 3;
|
|
mPlayEndEf = true;
|
|
|
|
mpEndEfMorf->setFrame(0.0f);
|
|
mpEndEfBrk->setFrame(0.0f);
|
|
mpEndEfBrk->setPlaySpeed(1.0f);
|
|
mDownTimer = 100;
|
|
|
|
setBugsEffect();
|
|
mSound.startCreatureSound(Z2SE_EN_VA_END, 0, -1);
|
|
mKankyoColBlend = 0.0f;
|
|
mKankyoColType = 3;
|
|
}
|
|
break;
|
|
case 3:
|
|
mDemoCamCenter = eyePos;
|
|
mDemoCamCenter.y -= 50.0f;
|
|
|
|
if (mDownTimer == 0) {
|
|
field_0x1388 = 1;
|
|
}
|
|
|
|
if (mDownTimer == 80) {
|
|
field_0x1240 = 2;
|
|
mWeponEfMode = 0;
|
|
}
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
field_0x122c = mDemoCamCenter;
|
|
mMode = 4;
|
|
mDemoModeTimer = 150;
|
|
}
|
|
break;
|
|
case 4:
|
|
if (mDownTimer == 0) {
|
|
field_0x1388 = 1;
|
|
}
|
|
|
|
mDemoCamCenter = field_0x122c;
|
|
mDemoCamCenter.y += 10.0f;
|
|
|
|
if (mDemoModeTimer == 0) {
|
|
camera->mCamera.Reset(mDemoCamCenter, mDemoCamEye, mDemoCamBank, 0);
|
|
camera->mCamera.Start();
|
|
camera->mCamera.SetTrimSize(0);
|
|
dComIfGp_event_reset();
|
|
|
|
if (mSwNo != 0xFF && !dComIfGs_isSwitch(mSwNo, fopAcM_GetRoomNo(this))) {
|
|
dComIfGs_onSwitch(mSwNo, fopAcM_GetRoomNo(this));
|
|
}
|
|
|
|
Z2GetAudioMgr()->i_unMuteSceneBgm(45);
|
|
fopAcM_delete(this);
|
|
return;
|
|
}
|
|
break;
|
|
}
|
|
|
|
camera->mCamera.Set(mDemoCamCenter, mDemoCamEye, mDemoCamBank, 0);
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE80-807CEE84 0001D8 0004+00 0/0 0/0 0/0 .rodata @7923 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_7923 = 155.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE80, &lit_7923);
|
|
#pragma pop
|
|
|
|
/* 807CEE84-807CEE88 0001DC 0004+00 0/1 0/0 0/0 .rodata @8008 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8008 = 320.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE84, &lit_8008);
|
|
#pragma pop
|
|
|
|
/* 807CB8CC-807CBC00 0093CC 0334+00 1/1 0/0 0/0 .text calcMagicMove__8daE_VA_cFv */
|
|
void daE_VA_c::calcMagicMove() {
|
|
for (int i = 0; i < 2; i++) {
|
|
switch (field_0x1228[i]) {
|
|
case 0:
|
|
mMagicSphs[i].OffAtSetBit();
|
|
break;
|
|
case 1:
|
|
mMagicSphs[i].OnAtSetBit();
|
|
field_0x1228[i] = 2;
|
|
|
|
mDoMtx_stack_c::copy(mpWeaponModel->getBaseTRMtx());
|
|
mDoMtx_stack_c::transM(-30.0f, 320.0f, 65.0f);
|
|
mDoMtx_stack_c::multVecZero(&mMagicPos[i]);
|
|
mMagicOldPos[i] = mMagicPos[i];
|
|
|
|
mMagicAcch[i].i_ClrGroundHit();
|
|
mMagicAcch[i].ClrWallHit();
|
|
mMagicSphs[i].ClrAtHit();
|
|
|
|
cXyz sp5C(daPy_getPlayerActorClass()->current.pos);
|
|
|
|
s16 spA = cLib_targetAngleY(&mMagicPos[i], &sp5C);
|
|
s16 sp8 = cLib_targetAngleX(&mMagicPos[i], &sp5C);
|
|
|
|
f32 temp_f31 = std::abs(cM_scos(sp8) * 50.0f);
|
|
mMagicSpeed[i].set(temp_f31 * cM_ssin(spA), cM_ssin(sp8) * 50.0f,
|
|
temp_f31 * cM_scos(spA));
|
|
/* fallthrough */
|
|
case 2:
|
|
Z2GetAudioMgr()->seStartLevel(Z2SE_EN_VA_ATK_BALL, &mMagicPos[i], 0, 0, 1.0f, 1.0f,
|
|
-1.0f, -1.0f, 0);
|
|
setMagicEffect(i);
|
|
mMagicSphs[i].SetC(mMagicPos[i]);
|
|
mMagicSphs[i].SetR(50.0f);
|
|
dComIfG_Ccsp()->Set(&mMagicSphs[i]);
|
|
|
|
if (mMagicAcch[i].i_ChkGroundHit() || mMagicAcch[i].ChkWallHit() ||
|
|
mMagicSphs[i].ChkAtHit())
|
|
{
|
|
Z2GetAudioMgr()->seStart(Z2SE_EN_VA_FIRE_BURST, &mMagicPos[i], 0, 0, 1.0f, 1.0f,
|
|
-1.0f, -1.0f, 0);
|
|
mMagicPos[i].y = 0.0f;
|
|
setMagicHitEffect(i);
|
|
field_0x1228[i] = 0;
|
|
}
|
|
|
|
mMagicOldPos[i] = mMagicPos[i];
|
|
mMagicPos[i] += mMagicSpeed[i];
|
|
mMagicAcch[i].CrrPos(dComIfG_Bgsp());
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE88-807CEE8C 0001E0 0004+00 0/1 0/0 0/0 .rodata @8089 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8089 = 128.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE88, &lit_8089);
|
|
#pragma pop
|
|
|
|
/* 807CBC00-807CC004 009700 0404+00 1/1 0/0 0/0 .text setAlphaType__8daE_VA_cFv */
|
|
void daE_VA_c::setAlphaType() {
|
|
switch (mAlphaType) {
|
|
case 0:
|
|
case 3:
|
|
cLib_chaseUC(&mGlowLightA, 0, 4);
|
|
cLib_chaseUC(&mEyeAlpha, 0, 4);
|
|
field_0x1380 = 0;
|
|
|
|
if (mAlphaType == 3 && mGlowLightA == 0) {
|
|
mAlphaType = 0;
|
|
}
|
|
|
|
cLib_chaseUC(&mGlowLightR, 0, 8);
|
|
cLib_chaseUC(&mGlowLightG, 0, 8);
|
|
cLib_chaseUC(&mGlowLightB, 0, 8);
|
|
|
|
if (mAlphaType == 0) {
|
|
cLib_chaseUC(&mFootSmokeAlpha, 0, 27);
|
|
} else if (mFootSmokeAlpha < 33) {
|
|
cLib_chaseUC(&mFootSmokeAlpha, 0, 1);
|
|
} else {
|
|
cLib_chaseUC(&mFootSmokeAlpha, 0, 10);
|
|
}
|
|
|
|
field_0x138f = 0;
|
|
|
|
mNeckSph.OffTgSetBit();
|
|
for (int i = 0; i < 3; i++) {
|
|
mBodyCyls[i].OffCoSetBit();
|
|
mBodyCyls[i].OffTgSetBit();
|
|
mBodyCyls[i].OnTgNoHitMark();
|
|
}
|
|
break;
|
|
case 1:
|
|
if (mGlowBody) {
|
|
cLib_chaseUC(&mGlowLightR, l_HIO.mKRegLightR, (u8)(l_HIO.mKRegLightR / 10.0f));
|
|
cLib_chaseUC(&mGlowLightG, l_HIO.mKRegLightG, (u8)(l_HIO.mKRegLightG / 10.0f));
|
|
cLib_chaseUC(&mGlowLightB, l_HIO.mKRegLightB, (u8)(l_HIO.mKRegLightB / 10.0f));
|
|
cLib_chaseUC(&mGlowLightA, l_HIO.mKRegLightA,
|
|
(u8)((l_HIO.mKRegLightA - 128.0f) / 10.0f));
|
|
} else {
|
|
cLib_chaseUC(&mGlowLightR, 0, (u8)(l_HIO.mKRegLightR / 20.0f));
|
|
cLib_chaseUC(&mGlowLightG, 0, (u8)(l_HIO.mKRegLightG / 20.0f));
|
|
cLib_chaseUC(&mGlowLightB, 0, (u8)(l_HIO.mKRegLightB / 20.0f));
|
|
cLib_chaseUC(&mGlowLightA, 0x80, 8);
|
|
}
|
|
|
|
cLib_chaseUC(&mEyeAlpha, 0, 4);
|
|
field_0x1380 = 0;
|
|
cLib_chaseUC(&mFootSmokeAlpha, 180, 8);
|
|
|
|
mNeckSph.OnTgSetBit();
|
|
mBodyCyls[0].OnTgSetBit();
|
|
mBodyCyls[1].OffTgSetBit();
|
|
mBodyCyls[2].OffTgSetBit();
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
mBodyCyls[i].OffCoSetBit();
|
|
mBodyCyls[i].OnTgNoHitMark();
|
|
}
|
|
break;
|
|
case 2:
|
|
cLib_chaseUC(&mGlowLightA, 0xFF, 4);
|
|
cLib_chaseUC(&mEyeAlpha, 0xFF, 8);
|
|
cLib_chaseUC(&field_0x1380, 0, 1);
|
|
cLib_chaseUC(&mFootSmokeAlpha, 0xFF, 4);
|
|
|
|
mNeckSph.OffTgSetBit();
|
|
for (int i = 0; i < 3; i++) {
|
|
mBodyCyls[i].OnCoSetBit();
|
|
mBodyCyls[i].OffTgNoHitMark();
|
|
mBodyCyls[i].OffTgSetBit();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
/* 807CC004-807CC4D0 009B04 04CC+00 2/1 0/0 0/0 .text action__8daE_VA_cFv */
|
|
void daE_VA_c::action() {
|
|
field_0x1391 = 0;
|
|
setAlphaType();
|
|
damage_check();
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
mAttackSphs[i].OffAtSetBit();
|
|
|
|
if (mGlowBody && i == 0) {
|
|
mAttackSphs[i].OffCoSetBit();
|
|
mAttackSphs[i].OffTgShield();
|
|
mAttackSphs[i].OnTgNoHitMark();
|
|
} else {
|
|
mAttackSphs[i].OnCoSetBit();
|
|
|
|
if (mOffTgTimer != 0) {
|
|
mAttackSphs[i].OffTgShield();
|
|
mAttackSphs[i].OnTgNoHitMark();
|
|
} else {
|
|
mAttackSphs[i].OnTgShield();
|
|
mAttackSphs[i].OffTgNoHitMark();
|
|
}
|
|
}
|
|
}
|
|
|
|
BOOL var_r29 = true;
|
|
field_0x1386 = 0;
|
|
field_0x1388 = 0;
|
|
|
|
switch (mAction) {
|
|
case ACTION_DEMO_OP_WAIT_e:
|
|
executeDemoOpWait();
|
|
var_r29 = false;
|
|
break;
|
|
case ACTION_DEMO_OP_e:
|
|
executeDemoOp();
|
|
var_r29 = false;
|
|
break;
|
|
case ACTION_CLEAR_WAIT_e:
|
|
executeClearWait();
|
|
break;
|
|
case ACTION_CLEAR_CHASE_e:
|
|
executeClearChase();
|
|
break;
|
|
case ACTION_CLEAR_ATTACK_e:
|
|
executeClearAttack();
|
|
break;
|
|
case ACTION_TRANS_WAIT_e:
|
|
executeTransWait();
|
|
break;
|
|
case ACTION_TRANS_CHASE_e:
|
|
executeTransChase();
|
|
break;
|
|
case ACTION_TRANS_ATTACK_e:
|
|
executeTransAttack();
|
|
break;
|
|
case ACTION_TRANS_BITE_DAMAGE_e:
|
|
executeTransBiteDamage();
|
|
break;
|
|
case ACTION_TRANS_DAMAGE_e:
|
|
executeTransDamage();
|
|
break;
|
|
case ACTION_TRANS_THROUGH_e:
|
|
executeTransThrough();
|
|
break;
|
|
case ACTION_OPACI_WAIT_e:
|
|
executeOpaciWait();
|
|
break;
|
|
case ACTION_OPACI_FLY_e:
|
|
executeOpaciFly();
|
|
break;
|
|
case ACTION_OPACI_DOWN_e:
|
|
executeOpaciDown();
|
|
break;
|
|
case ACTION_OPACI_DOWN_DAMAGE_e:
|
|
executeOpaciDownDamage();
|
|
break;
|
|
case ACTION_OPACI_CHASE_e:
|
|
executeOpaciChase();
|
|
break;
|
|
case ACTION_OPACI_ATTACK_e:
|
|
executeOpaciAttack();
|
|
break;
|
|
case ACTION_OPACI_DAMAGE_e:
|
|
executeOpaciDamage();
|
|
break;
|
|
case ACTION_OPACI_FLIP_e:
|
|
executeOpaciFlip();
|
|
break;
|
|
case ACTION_OPACI_FADE_AWAY_e:
|
|
executeOpaciFadeAway();
|
|
break;
|
|
case ACTION_OPACI_DEATH_e:
|
|
executeOpaciDeath();
|
|
break;
|
|
}
|
|
|
|
if (var_r29) {
|
|
daPy_getPlayerActorClass()->onBossRoomWait();
|
|
}
|
|
|
|
if (!field_0x138e) {
|
|
if (daPy_getPlayerActorClass()->checkNowWolfEyeUp()) {
|
|
field_0x1358 = 20;
|
|
field_0x138e = 1;
|
|
}
|
|
} else {
|
|
if (!daPy_getPlayerActorClass()->checkNowWolfEyeUp()) {
|
|
field_0x1358 = 20;
|
|
field_0x138e = 0;
|
|
}
|
|
}
|
|
|
|
fopAcM_posMoveF(this, mBodyCcStts.GetCCMoveP());
|
|
mAcch.CrrPos(dComIfG_Bgsp());
|
|
|
|
switch (mKankyoColType) {
|
|
case 0:
|
|
if (daPy_getPlayerActorClass()->checkNowWolfEyeUp()) {
|
|
cLib_chaseF(&mKankyoColBlend, 1.0f, 0.1f);
|
|
} else {
|
|
cLib_chaseF(&mKankyoColBlend, 0.0f, 0.1f);
|
|
}
|
|
|
|
dKy_custom_colset(2, 0, mKankyoColBlend);
|
|
break;
|
|
case 1:
|
|
cLib_chaseF(&mKankyoColBlend, 1.0f, 0.1f);
|
|
dKy_custom_colset(0, 1, mKankyoColBlend);
|
|
break;
|
|
case 2:
|
|
cLib_chaseF(&mKankyoColBlend, 0.0f, 0.1f);
|
|
dKy_custom_colset(2, 1, mKankyoColBlend);
|
|
|
|
if (!mKankyoColBlend) {
|
|
mKankyoColType = 0;
|
|
}
|
|
break;
|
|
case 3:
|
|
cLib_chaseF(&mKankyoColBlend, 1.0f, 0.01f);
|
|
dKy_custom_colset(1, 4, mKankyoColBlend);
|
|
break;
|
|
case 4:
|
|
cLib_chaseF(&mKankyoColBlend, 1.0f, 0.01f);
|
|
/* fallthrough */
|
|
case 5:
|
|
dKy_custom_colset(3, 2, mKankyoColBlend);
|
|
|
|
if (mKankyoColBlend == 1.0f) {
|
|
mKankyoColType = 0;
|
|
mKankyoColBlend = 0.0f;
|
|
}
|
|
break;
|
|
}
|
|
|
|
s16 spC = shape_angle.y - current.angle.y;
|
|
s16 target_x = (speedF * 128.0f) * cM_scos(spC);
|
|
s16 target_z = (speedF * 128.0f) * cM_ssin(spC);
|
|
|
|
cLib_addCalcAngleS(&field_0x1304.x, target_x, 8, 0x400, 0x40);
|
|
cLib_addCalcAngleS(&field_0x1304.z, target_z, 8, 0x400, 0x40);
|
|
|
|
mpMorf->play(0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
|
if (mPlayEndEf) {
|
|
mpEndEfMorf->play(0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
|
}
|
|
|
|
mpWeaponBrk->play();
|
|
mpEndEfBrk->play();
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE8C-807CEE90 0001E4 0004+00 0/1 0/0 0/0 .rodata @8318 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8318 = -300.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE8C, &lit_8318);
|
|
#pragma pop
|
|
|
|
/* 807CC4D0-807CC864 009FD0 0394+00 1/1 0/0 0/0 .text mtx_set__8daE_VA_cFv */
|
|
void daE_VA_c::mtx_set() {
|
|
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
|
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
|
mDoMtx_stack_c::transM(0.0f, 300.0f, 0.0f);
|
|
mDoMtx_stack_c::ZXYrotM(field_0x1304);
|
|
mDoMtx_stack_c::transM(0.0f, -300.0f, 0.0f);
|
|
mDoMtx_stack_c::scaleM(l_HIO.mModelSize, l_HIO.mModelSize, l_HIO.mModelSize);
|
|
|
|
J3DModel* model = mpMorf->getModel();
|
|
model->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
|
|
if (mPlayEndEf) {
|
|
mpEndEfMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
mpEndEfMorf->modelCalc();
|
|
}
|
|
|
|
field_0x138b = 0;
|
|
mpMorf->modelCalc();
|
|
calcJointSleeve();
|
|
|
|
field_0x138b = 1;
|
|
mpMorf->modelCalc();
|
|
|
|
if (!mRopesEnabled) {
|
|
if (mpWeaponModel != NULL) {
|
|
mpWeaponModel->setBaseTRMtx(model->getAnmMtx(JNT_KEN_2));
|
|
}
|
|
} else {
|
|
if (mpWeaponModel != NULL) {
|
|
switch (field_0x1240) {
|
|
case 0:
|
|
mDoMtx_stack_c::transS(field_0x122c);
|
|
mDoMtx_stack_c::transM(0.0f, 150.0f, 0.0f);
|
|
mDoMtx_stack_c::ZXYrotM(field_0x1238);
|
|
mDoMtx_stack_c::transM(0.0f, -150.0f, 0.0f);
|
|
mDoMtx_stack_c::transM(0.0f, 400.0f, 0.0f);
|
|
mDoMtx_stack_c::XrotM(field_0x123e);
|
|
mDoMtx_stack_c::transM(0.0f, -400.0f, 0.0f);
|
|
mDoMtx_stack_c::scaleM(l_HIO.mModelSize, l_HIO.mModelSize, l_HIO.mModelSize);
|
|
mpWeaponModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
break;
|
|
case 1:
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_KEN_2));
|
|
mpWeaponModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
mDoMtx_stack_c::multVecZero(&field_0x122c);
|
|
break;
|
|
}
|
|
}
|
|
|
|
cXyz sp34;
|
|
cXyz sp40;
|
|
for (int i = 0; i < 40; i++) {
|
|
f32 var_f31;
|
|
switch (mCardFlags[i] & 3) {
|
|
case 0:
|
|
var_f31 = 80.0f;
|
|
break;
|
|
case 1:
|
|
var_f31 = 50.0f;
|
|
break;
|
|
case 2:
|
|
var_f31 = 25.0f;
|
|
break;
|
|
}
|
|
|
|
int idx = va_tag_set_num[i];
|
|
sp34 = field_0x994[idx + 1] - field_0x994[idx];
|
|
sp34.normalizeZP();
|
|
sp40 = field_0x994[idx] + (sp34 * va_tag_offset[i]);
|
|
|
|
mDoMtx_stack_c::transS(sp40);
|
|
mDoMtx_stack_c::ZXYrotM(field_0x660[i]);
|
|
mDoMtx_stack_c::transM(0.0f, -var_f31, 0.0f);
|
|
mDoMtx_stack_c::XrotM(0x4000);
|
|
mpCardModels[i]->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE90-807CEE94 0001E8 0004+00 0/1 0/0 0/0 .rodata @8471 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8471 = -20.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE90, &lit_8471);
|
|
#pragma pop
|
|
|
|
/* 807CEE94-807CEE98 0001EC 0004+00 0/1 0/0 0/0 .rodata @8472 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8472 = 75.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE94, &lit_8472);
|
|
#pragma pop
|
|
|
|
/* 807CEE98-807CEE9C 0001F0 0004+00 0/1 0/0 0/0 .rodata @8473 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8473 = -25.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE98, &lit_8473);
|
|
#pragma pop
|
|
|
|
/* 807CC864-807CCD24 00A364 04C0+00 1/1 0/0 0/0 .text cc_set__8daE_VA_cFv */
|
|
void daE_VA_c::cc_set() {
|
|
cXyz sp24;
|
|
|
|
if (mGlowLightA != 0) {
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_HEAD));
|
|
mDoMtx_stack_c::multVecZero(&eyePos);
|
|
attention_info.position = eyePos;
|
|
attention_info.position.y += 50.0f;
|
|
} else {
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_KEN_2));
|
|
mDoMtx_stack_c::transM(-20.0f, 350.0f, 50.0f);
|
|
mDoMtx_stack_c::multVecZero(&eyePos);
|
|
attention_info.position = eyePos;
|
|
attention_info.position.y += 30.0f;
|
|
}
|
|
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_NECK_02));
|
|
mDoMtx_stack_c::transM(0.0f, 40.0f, 0.0f);
|
|
mDoMtx_stack_c::multVecZero(&sp24);
|
|
|
|
mNeckSph.SetC(sp24);
|
|
if (mGlowBody) {
|
|
mNeckSph.SetR(nREG_F(7) + 70.0f);
|
|
} else {
|
|
mNeckSph.SetR(50.0f);
|
|
}
|
|
|
|
dComIfG_Ccsp()->Set(&mNeckSph);
|
|
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_ROOT));
|
|
mDoMtx_stack_c::transM(0.0f, 0.0f, 0.0f);
|
|
mDoMtx_stack_c::multVecZero(&sp24);
|
|
mBodyCyls[0].SetC(sp24);
|
|
mBodyCyls[0].SetH(200.0f);
|
|
|
|
if (mGlowBody) {
|
|
mBodyCyls[0].SetR(75.0f);
|
|
} else {
|
|
mBodyCyls[0].SetR(100.0f);
|
|
}
|
|
|
|
dComIfG_Ccsp()->Set(&mBodyCyls[0]);
|
|
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_NECK_02));
|
|
mDoMtx_stack_c::multVecZero(&sp24);
|
|
sp24.y -= 50.0f;
|
|
|
|
mBodyCyls[1].SetC(sp24);
|
|
mBodyCyls[1].SetH(100.0f);
|
|
mBodyCyls[1].SetR(80.0f);
|
|
dComIfG_Ccsp()->Set(&mBodyCyls[1]);
|
|
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_NECK_02));
|
|
mDoMtx_stack_c::multVecZero(&sp24);
|
|
sp24.y -= 200.0f;
|
|
|
|
mBodyCyls[2].SetC(sp24);
|
|
mBodyCyls[2].SetH(200.0f);
|
|
mBodyCyls[2].SetR(80.0f);
|
|
dComIfG_Ccsp()->Set(&mBodyCyls[2]);
|
|
|
|
mDoMtx_stack_c::copy(mpWeaponModel->getBaseTRMtx());
|
|
mDoMtx_stack_c::transM(10.0f, 0.0f, -25.0f);
|
|
for (int i = 0; i < 4; i++) {
|
|
mDoMtx_stack_c::transM(-10.0f, 80.0f, 20.0f);
|
|
mDoMtx_stack_c::multVecZero(&sp24);
|
|
mAttackSphs[i].SetC(sp24);
|
|
|
|
if (mAttackSphs[i].ChkAtSet()) {
|
|
mAttackSphs[i].SetR(70.0f);
|
|
} else {
|
|
mAttackSphs[i].SetR(50.0f);
|
|
}
|
|
|
|
dComIfG_Ccsp()->Set(&mAttackSphs[i]);
|
|
}
|
|
|
|
if (mRopesEnabled) {
|
|
for (int i = 0; i < 10; i++) {
|
|
for (int j = 0; j < 19; j++) {
|
|
int sp14 = i * 19;
|
|
sp14 += j;
|
|
|
|
int sp10 = i * 10;
|
|
sp10 += (j >> 1);
|
|
|
|
if (!(j & 1)) {
|
|
mLineSphs[sp14].SetC(field_0x994[sp10]);
|
|
} else {
|
|
mLineSphs[sp14].SetC((field_0x994[sp10] + field_0x994[sp10 + 1]) / 2.0f);
|
|
}
|
|
|
|
mLineSphs[sp14].SetR(20.0f);
|
|
dComIfG_Ccsp()->Set(&mLineSphs[sp14]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 807CCD24-807CCF3C 00A824 0218+00 1/1 0/0 0/0 .text execute__8daE_VA_cFv */
|
|
int daE_VA_c::execute() {
|
|
if (mDemoModeTimer != 0) {
|
|
mDemoModeTimer--;
|
|
}
|
|
|
|
if (mDownTimer != 0) {
|
|
mDownTimer--;
|
|
}
|
|
|
|
if (mFadeAwayTimer != 0) {
|
|
mFadeAwayTimer--;
|
|
}
|
|
|
|
if (field_0x1350 != 0) {
|
|
field_0x1350--;
|
|
}
|
|
|
|
if (mAttackSphIFrameTimer != 0) {
|
|
mAttackSphIFrameTimer--;
|
|
}
|
|
|
|
if (mNeckSphIFrameTimer != 0) {
|
|
mNeckSphIFrameTimer--;
|
|
}
|
|
|
|
if (mBodyCylIFrameTimer != 0) {
|
|
mBodyCylIFrameTimer--;
|
|
}
|
|
|
|
if (mOffTgTimer != 0) {
|
|
mOffTgTimer--;
|
|
}
|
|
|
|
if (field_0x1348 != 0) {
|
|
field_0x1348--;
|
|
}
|
|
|
|
if (field_0x1354 != 0) {
|
|
field_0x1354--;
|
|
}
|
|
|
|
if (field_0x1358 != 0) {
|
|
field_0x1358--;
|
|
}
|
|
|
|
action();
|
|
calcJointNeck();
|
|
mtx_set();
|
|
setFootEffect();
|
|
setWeponEffect();
|
|
calcMagicMove();
|
|
cc_set();
|
|
|
|
if (mAlphaType < 2) {
|
|
if (daPy_getPlayerActorClass()->checkWolfLock(this)) {
|
|
daPy_getPlayerActorClass()->cancelWolfLock(this);
|
|
}
|
|
|
|
onWolfNoLock();
|
|
} else {
|
|
offWolfNoLock();
|
|
}
|
|
|
|
cXyz bind_pos;
|
|
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_HEAD));
|
|
mDoMtx_stack_c::multVecZero(&bind_pos);
|
|
|
|
cXyz bind_scale(1.0f, 1.0f, 1.0f);
|
|
setMidnaBindEffect(this, &mSound, &bind_pos, &bind_scale);
|
|
return 1;
|
|
}
|
|
|
|
|
|
/* 807CCF3C-807CCF5C 00AA3C 0020+00 2/1 0/0 0/0 .text daE_VA_Execute__FP8daE_VA_c */
|
|
static int daE_VA_Execute(daE_VA_c* i_this) {
|
|
return i_this->execute();
|
|
}
|
|
|
|
/* 807CCF5C-807CCF64 00AA5C 0008+00 1/0 0/0 0/0 .text daE_VA_IsDelete__FP8daE_VA_c */
|
|
static int daE_VA_IsDelete(daE_VA_c* i_this) {
|
|
return 1;
|
|
}
|
|
|
|
/* 807CCF64-807CD028 00AA64 00C4+00 1/1 0/0 0/0 .text _delete__8daE_VA_cFv */
|
|
int daE_VA_c::_delete() {
|
|
dComIfG_resDelete(&mPhase, "E_VA");
|
|
|
|
if (mInitHIO) {
|
|
init_hio = false;
|
|
}
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mFootSmokeEmtrIDs[i]);
|
|
if (emitter != NULL) {
|
|
emitter->deleteAllParticle();
|
|
}
|
|
}
|
|
|
|
if (heap != NULL) {
|
|
mSound.deleteObject();
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
/* 807CD028-807CD048 00AB28 0020+00 1/0 0/0 0/0 .text daE_VA_Delete__FP8daE_VA_c */
|
|
static int daE_VA_Delete(daE_VA_c* i_this) {
|
|
return i_this->_delete();
|
|
}
|
|
|
|
/* 807CD048-807CD600 00AB48 05B8+00 1/1 0/0 0/0 .text CreateHeap__8daE_VA_cFv */
|
|
// weird data issue / reg alloc (probably related)
|
|
#ifdef NONMATCHING
|
|
int daE_VA_c::CreateHeap() {
|
|
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_VA", 0x33);
|
|
JUT_ASSERT(modelData != 0);
|
|
|
|
mpMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL,
|
|
(J3DAnmTransform*)dComIfG_getObjectRes("E_VA", 15), 0, 1.0f, 0,
|
|
-1, &mSound, 0x80000, 0x31000084);
|
|
if (mpMorf == NULL || mpMorf->getModel() == NULL) {
|
|
return 0;
|
|
}
|
|
|
|
if (!mInvisModel.create(mpMorf->getModel(), 1)) {
|
|
return 0;
|
|
}
|
|
|
|
J3DModel* model = mpMorf->getModel();
|
|
model->setUserArea((u32)this);
|
|
|
|
for (u16 i = 1; i < model->getModelData()->getJointNum(); i++) {
|
|
if (i == 11 || i == 12 || i == 13 || i == 14 || i == 27 || i == 33 || i == 34) {
|
|
model->getModelData()->getJointNodePointer(i)->setCallBack(JointCallBack);
|
|
}
|
|
}
|
|
|
|
modelData = (J3DModelData*)dComIfG_getObjectRes("E_VA", 0x30);
|
|
JUT_ASSERT(modelData != 0);
|
|
|
|
mpWeaponModel = mDoExt_J3DModel__create(modelData, 0, 0x11000084);
|
|
if (mpWeaponModel == NULL) {
|
|
return 0;
|
|
}
|
|
|
|
mpWeaponBrk = new mDoExt_brkAnm();
|
|
if (mpWeaponBrk == NULL) {
|
|
return 0;
|
|
}
|
|
|
|
if (!mpWeaponBrk->init(mpWeaponModel->getModelData(),
|
|
(J3DAnmTevRegKey*)dComIfG_getObjectRes("E_VA", 0x3B), TRUE,
|
|
J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
modelData = (J3DModelData*)dComIfG_getObjectRes("E_VA", 0x37);
|
|
JUT_ASSERT(modelData != 0);
|
|
|
|
mpEndEfMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL,
|
|
(J3DAnmTransform*)dComIfG_getObjectRes("E_VA", 7), 0, 1.0f,
|
|
0, -1, &mSound, 0x80000, 0x31000084);
|
|
if (mpEndEfMorf == NULL || mpEndEfMorf->getModel() == NULL) {
|
|
return 0;
|
|
}
|
|
|
|
model = mpEndEfMorf->getModel();
|
|
model->setUserArea((u32)this);
|
|
|
|
for (u16 i = 1; i < model->getModelData()->getJointNum(); i++) {
|
|
if (i == 11 || i == 12 || i == 13 || i == 14 || i == 27 || i == 33 || i == 34) {
|
|
model->getModelData()->getJointNodePointer(i)->setCallBack(JointCallBack);
|
|
}
|
|
}
|
|
|
|
mpEndEfBrk = new mDoExt_brkAnm();
|
|
if (mpEndEfBrk == NULL) {
|
|
return 0;
|
|
}
|
|
|
|
if (!mpEndEfBrk->init(model->getModelData(),
|
|
(J3DAnmTevRegKey*)dComIfG_getObjectRes("E_VA", 0x3A), TRUE,
|
|
J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if (!field_0x139c.init(1, 5, 1)) {
|
|
return 0;
|
|
}
|
|
|
|
f32* size_p = field_0x139c.getSize(0);
|
|
for (int i = 0; i < 5; i++) {
|
|
*size_p = 5.0f;
|
|
size_p++;
|
|
}
|
|
|
|
if (!mRope.init(11, 10, (ResTIMG*)dComIfG_getObjectRes("E_VA", 0x3E), 1)) {
|
|
return 0;
|
|
}
|
|
|
|
for (int i = 0; i < 11; i++) {
|
|
f32* size_p = mRope.getSize(i);
|
|
|
|
for (int j = 0; j < 10; j++) {
|
|
*size_p = 5.0f;
|
|
size_p++;
|
|
}
|
|
}
|
|
|
|
for (int i = 0; i < 40; i++) {
|
|
J3DModelData* modelData;
|
|
|
|
switch (va_tag_set_size[i]) {
|
|
case 0:
|
|
modelData = (J3DModelData*)dComIfG_getObjectRes("E_VA", 0x34);
|
|
mCardFlags[i] = 0;
|
|
break;
|
|
case 1:
|
|
modelData = (J3DModelData*)dComIfG_getObjectRes("E_VA", 0x35);
|
|
mCardFlags[i] = 1;
|
|
break;
|
|
case 2:
|
|
modelData = (J3DModelData*)dComIfG_getObjectRes("E_VA", 0x36);
|
|
mCardFlags[i] = 2;
|
|
break;
|
|
}
|
|
|
|
JUT_ASSERT(modelData != 0);
|
|
mpCardModels[i] = mDoExt_J3DModel__create(modelData, 0, 0x11000084);
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
#else
|
|
int daE_VA_c::CreateHeap() {
|
|
// NONMATCHING
|
|
}
|
|
#endif
|
|
|
|
/* 807CD600-807CD648 00B100 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
|
|
// J3DFrameCtrl::~J3DFrameCtrl() {
|
|
extern "C" void __dt__12J3DFrameCtrlFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CD648-807CD668 00B148 0020+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
|
static int useHeapInit(fopAc_ac_c* i_this) {
|
|
return ((daE_VA_c*)i_this)->CreateHeap();
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEE9C-807CEEA0 0001F4 0004+00 0/1 0/0 0/0 .rodata @8890 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8890 = -500.0f;
|
|
COMPILER_STRIP_GATE(0x807CEE9C, &lit_8890);
|
|
#pragma pop
|
|
|
|
/* 807CEEA0-807CEEA4 0001F8 0004+00 0/1 0/0 0/0 .rodata @8891 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8891 = 1850.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEA0, &lit_8891);
|
|
#pragma pop
|
|
|
|
/* 807CEEFC-807CEEFC 000254 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DEAD static char const* const stringBase_807CEF01 = "E_va";
|
|
#pragma pop
|
|
|
|
/* 807CD668-807CDAD8 00B168 0470+00 1/1 0/0 0/0 .text create__8daE_VA_cFv */
|
|
int daE_VA_c::create() {
|
|
fopAcM_SetupActor(this, daE_VA_c);
|
|
|
|
int phase_state = dComIfG_resLoad(&mPhase, "E_VA");
|
|
if (phase_state == cPhs_COMPLEATE_e) {
|
|
OS_REPORT("E_VA PARAM %x\n", fopAcM_GetParam(this));
|
|
|
|
if (!fopAcM_entrySolidHeap(this, useHeapInit, 0x216A0)) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
if (!init_hio) {
|
|
init_hio = true;
|
|
mInitHIO = true;
|
|
l_HIO.field_0x04 = -1;
|
|
}
|
|
|
|
attention_info.flags = 0;
|
|
mSwNo = fopAcM_GetParam(this);
|
|
|
|
if (mSwNo != 0xFF && dComIfGs_isSwitch(mSwNo, fopAcM_GetRoomNo(this))) {
|
|
g_env_light.mColpatWeather = 4;
|
|
g_env_light.mColPatPrev = 4;
|
|
g_env_light.mColPatCurr = 4;
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
|
|
fopAcM_SetMin(this, -500.0f, -500.0f, -500.0f);
|
|
fopAcM_SetMax(this, 500.0f, 500.0f, 500.0f);
|
|
|
|
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
|
|
fopAcM_GetSpeed_p(this), NULL, NULL);
|
|
mAcchCir.SetWall(40.0f, 500.0f);
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
mMagicAcch[i].Set(&mMagicPos[i], &mMagicOldPos[i], this, 1, &mMagicAcchCir[i],
|
|
&mMagicSpeed[i], NULL, NULL);
|
|
mMagicAcchCir[i].SetWall(0.0f, 120.0f);
|
|
}
|
|
|
|
health = 100;
|
|
field_0x560 = 100;
|
|
|
|
mBodyCcStts.Init(0xFF, 0, this);
|
|
mNeckSph.Set(cc_vt_neck_src);
|
|
mNeckSph.SetStts(&mBodyCcStts);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
mBodyCyls[i].Set(cc_vt_body_src);
|
|
mBodyCyls[i].SetStts(&mBodyCcStts);
|
|
}
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
mAttackSphs[i].Set(cc_vt_attack_src);
|
|
mAttackSphs[i].SetStts(&mBodyCcStts);
|
|
}
|
|
|
|
field_0x1b3c.Init(0xFF, 0, this);
|
|
|
|
for (int i = 0; i < 190; i++) {
|
|
mLineSphs[i].Set(cc_vt_line_src);
|
|
mLineSphs[i].SetStts(&field_0x1b3c);
|
|
}
|
|
|
|
mMagicSphs[0].Set(cc_vt_magic_src);
|
|
mMagicSphs[0].SetStts(&field_0x1b3c);
|
|
mMagicSphs[1].Set(cc_vt_magic_src);
|
|
mMagicSphs[1].SetStts(&field_0x1b3c);
|
|
|
|
mSound.init(¤t.pos, &eyePos, 3, 1);
|
|
mSound.setEnemyName("E_va");
|
|
|
|
mAtInfo.mpSound = &mSound;
|
|
mAtInfo.mPowerType = 1;
|
|
mFootSmokeAlpha = 0;
|
|
mEyeAlpha = 0;
|
|
mGlowLightA = 0;
|
|
|
|
attention_info.distances[fopAc_attn_BATTLE_e] = 62;
|
|
g_env_light.mColpatWeather = 2;
|
|
g_env_light.mColPatPrev = 2;
|
|
g_env_light.mColPatCurr = 2;
|
|
|
|
if (daPy_getPlayerActorClass()->current.pos.z >= 1850.0f) {
|
|
cDmr_SkipInfo = 0;
|
|
}
|
|
|
|
if (cDmr_SkipInfo != 0) {
|
|
dComIfGs_onOneZoneSwitch(9, fopAcM_GetRoomNo(this));
|
|
cDmr_SkipInfo = 0;
|
|
mWeponEfMode = 3;
|
|
mAction = ACTION_CLEAR_WAIT_e;
|
|
|
|
Z2GetAudioMgr()->subBgmStart(Z2BGM_VARIANT);
|
|
Z2GetAudioMgr()->changeSubBgmStatus(1);
|
|
mKankyoColType = 0;
|
|
|
|
g_env_light.mColpatWeather = 2;
|
|
g_env_light.mColPatPrev = 2;
|
|
g_env_light.mColPatCurr = 2;
|
|
} else {
|
|
mAction = ACTION_DEMO_OP_WAIT_e;
|
|
mKankyoColType = 5;
|
|
g_env_light.mColpatWeather = 3;
|
|
g_env_light.mColPatPrev = 3;
|
|
g_env_light.mColPatCurr = 3;
|
|
}
|
|
|
|
daE_VA_Execute(this);
|
|
}
|
|
|
|
return phase_state;
|
|
}
|
|
|
|
|
|
/* 807CDAD8-807CDE90 00B5D8 03B8+00 1/1 0/0 0/0 .text __ct__8daE_VA_cFv */
|
|
daE_VA_c::daE_VA_c() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CDE90-807CDF14 00B990 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_SphFv */
|
|
// dCcD_Sph::dCcD_Sph() {
|
|
extern "C" void __ct__8dCcD_SphFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CDF14-807CDF98 00BA14 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */
|
|
// dCcD_Cyl::dCcD_Cyl() {
|
|
extern "C" void __ct__8dCcD_CylFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CDF98-807CE064 00BA98 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_SphFv */
|
|
// dCcD_Sph::~dCcD_Sph() {
|
|
extern "C" void __dt__8dCcD_SphFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CE064-807CE0AC 00BB64 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
|
|
// cM3dGSph::~cM3dGSph() {
|
|
extern "C" void __dt__8cM3dGSphFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CE0AC-807CE108 00BBAC 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
|
|
// dCcD_GStts::~dCcD_GStts() {
|
|
extern "C" void __dt__10dCcD_GSttsFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CE108-807CE15C 00BC08 0054+00 1/1 0/0 0/0 .text __ct__12dBgS_ObjAcchFv */
|
|
// dBgS_ObjAcch::dBgS_ObjAcch() {
|
|
extern "C" void __ct__12dBgS_ObjAcchFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CE15C-807CE1CC 00BC5C 0070+00 4/3 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
|
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
|
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CE1CC-807CE23C 00BCCC 0070+00 2/1 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
|
|
// dBgS_AcchCir::~dBgS_AcchCir() {
|
|
extern "C" void __dt__12dBgS_AcchCirFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CE23C-807CE240 00BD3C 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
|
|
// cXyz::cXyz() {
|
|
extern "C" void __ct__4cXyzFv() {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 807CE240-807CE244 00BD40 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */
|
|
// csXyz::csXyz() {
|
|
extern "C" void __ct__5csXyzFv() {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 807CE244-807CE264 00BD44 0020+00 1/0 0/0 0/0 .text daE_VA_Create__FP8daE_VA_c */
|
|
static int daE_VA_Create(daE_VA_c* i_this) {
|
|
return i_this->create();
|
|
}
|
|
|
|
/* 807CE264-807CE2AC 00BD64 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
|
|
// cCcD_GStts::~cCcD_GStts() {
|
|
extern "C" void __dt__10cCcD_GSttsFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CE2AC-807CE2F4 00BDAC 0048+00 2/1 0/0 0/0 .text __dt__12daE_VA_HIO_cFv */
|
|
// daE_VA_HIO_c::~daE_VA_HIO_c() {
|
|
extern "C" void __dt__12daE_VA_HIO_cFv(){// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CEEA4-807CEEA8 0001FC 0004+00 0/1 0/0 0/0 .rodata @9204 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9204 = 990.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEA4, &lit_9204);
|
|
#pragma pop
|
|
|
|
/* 807CEEA8-807CEEAC 000200 0004+00 0/1 0/0 0/0 .rodata @9205 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9205 = 971.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEA8, &lit_9205);
|
|
#pragma pop
|
|
|
|
/* 807CEEAC-807CEEB0 000204 0004+00 0/1 0/0 0/0 .rodata @9206 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9206 = 326.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEAC, &lit_9206);
|
|
#pragma pop
|
|
|
|
/* 807CEEB0-807CEEB4 000208 0004+00 0/1 0/0 0/0 .rodata @9207 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9207 = 582.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEB0, &lit_9207);
|
|
#pragma pop
|
|
|
|
/* 807CEEB4-807CEEB8 00020C 0004+00 0/1 0/0 0/0 .rodata @9208 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9208 = -801.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEB4, &lit_9208);
|
|
#pragma pop
|
|
|
|
/* 807CEEB8-807CEEBC 000210 0004+00 0/1 0/0 0/0 .rodata @9209 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9209 = -582.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEB8, &lit_9209);
|
|
#pragma pop
|
|
|
|
/* 807CEEBC-807CEEC0 000214 0004+00 0/1 0/0 0/0 .rodata @9210 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9210 = -942.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEBC, &lit_9210);
|
|
#pragma pop
|
|
|
|
/* 807CEEC0-807CEEC4 000218 0004+00 0/1 0/0 0/0 .rodata @9211 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9211 = 306.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEC0, &lit_9211);
|
|
#pragma pop
|
|
|
|
/* 807CEEC4-807CEEC8 00021C 0004+00 0/1 0/0 0/0 .rodata @9212 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9212 = 202.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEC4, &lit_9212);
|
|
#pragma pop
|
|
|
|
/* 807CEEC8-807CEECC 000220 0004+00 0/1 0/0 0/0 .rodata @9213 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9213 = 501.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEC8, &lit_9213);
|
|
#pragma pop
|
|
|
|
/* 807CEECC-807CEED0 000224 0004+00 0/1 0/0 0/0 .rodata @9214 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9214 = 559.0f;
|
|
COMPILER_STRIP_GATE(0x807CEECC, &lit_9214);
|
|
#pragma pop
|
|
|
|
/* 807CEED0-807CEED4 000228 0004+00 0/1 0/0 0/0 .rodata @9215 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9215 = -17.0f;
|
|
COMPILER_STRIP_GATE(0x807CEED0, &lit_9215);
|
|
#pragma pop
|
|
|
|
/* 807CEED4-807CEED8 00022C 0004+00 0/1 0/0 0/0 .rodata @9216 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9216 = 458.0f;
|
|
COMPILER_STRIP_GATE(0x807CEED4, &lit_9216);
|
|
#pragma pop
|
|
|
|
/* 807CEED8-807CEEDC 000230 0004+00 0/1 0/0 0/0 .rodata @9217 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9217 = -306.0f;
|
|
COMPILER_STRIP_GATE(0x807CEED8, &lit_9217);
|
|
#pragma pop
|
|
|
|
/* 807CEEDC-807CEEE0 000234 0004+00 0/1 0/0 0/0 .rodata @9218 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9218 = -131.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEDC, &lit_9218);
|
|
#pragma pop
|
|
|
|
/* 807CEEE0-807CEEE4 000238 0004+00 0/1 0/0 0/0 .rodata @9219 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9219 = -524.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEE0, &lit_9219);
|
|
#pragma pop
|
|
|
|
/* 807CEEE4-807CEEE8 00023C 0004+00 0/1 0/0 0/0 .rodata @9220 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9220 = -414.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEE4, &lit_9220);
|
|
#pragma pop
|
|
|
|
/* 807CEEE8-807CEEEC 000240 0004+00 0/1 0/0 0/0 .rodata @9221 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9221 = 347.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEE8, &lit_9221);
|
|
#pragma pop
|
|
|
|
/* 807CEEEC-807CEEF0 000244 0004+00 0/1 0/0 0/0 .rodata @9222 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9222 = -15.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEEC, &lit_9222);
|
|
#pragma pop
|
|
|
|
/* 807CEEF0-807CEEF4 000248 0004+00 0/1 0/0 0/0 .rodata @9223 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9223 = 8.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEF0, &lit_9223);
|
|
#pragma pop
|
|
|
|
/* 807CEEF4-807CEEF8 00024C 0004+00 0/1 0/0 0/0 .rodata @9224 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9224 = -8.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEF4, &lit_9224);
|
|
#pragma pop
|
|
|
|
/* 807CEEF8-807CEEFC 000250 0004+00 0/1 0/0 0/0 .rodata @9225 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9225 = 23.0f;
|
|
COMPILER_STRIP_GATE(0x807CEEF8, &lit_9225);
|
|
#pragma pop
|
|
|
|
/* 807CE2F4-807CE7E0 00BDF4 04EC+00 0/0 1/0 0/0 .text __sinit_d_a_e_vt_cpp */
|
|
void __sinit_d_a_e_vt_cpp(){// NONMATCHING
|
|
}
|
|
|
|
#pragma push
|
|
#pragma force_active on
|
|
REGISTER_CTORS(0x807CE2F4, __sinit_d_a_e_vt_cpp);
|
|
#pragma pop
|
|
|
|
/* 807CE7E0-807CE7E8 00C2E0 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
|
static void func_807CE7E0() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CE7E8-807CE7F0 00C2E8 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
|
static void func_807CE7E8() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CE7F0-807CEC04 00C2F0 0414+00 1/1 0/0 0/0 .text
|
|
* setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz */
|
|
/* static void setMidnaBindEffect(fopEn_enemy_c* param_0, Z2CreatureEnemy* param_1, cXyz*
|
|
param_2, cXyz* param_3) { */
|
|
extern "C" void setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CEC04-807CEC40 00C704 003C+00 1/1 0/0 0/0 .text __dt__5csXyzFv */
|
|
// csXyz::~csXyz() {
|
|
extern "C" void __dt__5csXyzFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CEC40-807CEC7C 00C740 003C+00 2/2 0/0 0/0 .text __dt__4cXyzFv */
|
|
// cXyz::~cXyz() {
|
|
extern "C" void __dt__4cXyzFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 807CEC7C-807CEC94 00C77C 0018+00 1/1 0/0 0/0 .text checkNowWolf__9daPy_py_cFv */
|
|
// void daPy_py_c::checkNowWolf() {
|
|
extern "C" void checkNowWolf__9daPy_py_cFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 807CF6E4-807CF6E8 000274 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF6E4[4];
|
|
#pragma pop
|
|
|
|
/* 807CF6E8-807CF6EC 000278 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__35JASGlobalInstance<14JASAudioThread> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF6E8[4];
|
|
#pragma pop
|
|
|
|
/* 807CF6EC-807CF6F0 00027C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF6EC[4];
|
|
#pragma pop
|
|
|
|
/* 807CF6F0-807CF6F4 000280 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF6F0[4];
|
|
#pragma pop
|
|
|
|
/* 807CF6F4-807CF6F8 000284 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF6F4[4];
|
|
#pragma pop
|
|
|
|
/* 807CF6F8-807CF6FC 000288 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF6F8[4];
|
|
#pragma pop
|
|
|
|
/* 807CF6FC-807CF700 00028C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF6FC[4];
|
|
#pragma pop
|
|
|
|
/* 807CF700-807CF704 000290 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__36JASGlobalInstance<15JAISoundStarter> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF700[4];
|
|
#pragma pop
|
|
|
|
/* 807CF704-807CF708 000294 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__35JASGlobalInstance<14Z2SoundStarter> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF704[4];
|
|
#pragma pop
|
|
|
|
/* 807CF708-807CF70C 000298 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF708[4];
|
|
#pragma pop
|
|
|
|
/* 807CF70C-807CF710 00029C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF70C[4];
|
|
#pragma pop
|
|
|
|
/* 807CF710-807CF714 0002A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF710[4];
|
|
#pragma pop
|
|
|
|
/* 807CF714-807CF718 0002A4 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__33JASGlobalInstance<12JAIStreamMgr> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF714[4];
|
|
#pragma pop
|
|
|
|
/* 807CF718-807CF71C 0002A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF718[4];
|
|
#pragma pop
|
|
|
|
/* 807CF71C-807CF720 0002AC 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__33JASGlobalInstance<12JAISoundInfo> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF71C[4];
|
|
#pragma pop
|
|
|
|
/* 807CF720-807CF724 0002B0 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__34JASGlobalInstance<13JAUSoundTable> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF720[4];
|
|
#pragma pop
|
|
|
|
/* 807CF724-807CF728 0002B4 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF724[4];
|
|
#pragma pop
|
|
|
|
/* 807CF728-807CF72C 0002B8 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__33JASGlobalInstance<12JAUSoundInfo> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF728[4];
|
|
#pragma pop
|
|
|
|
/* 807CF72C-807CF730 0002BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF72C[4];
|
|
#pragma pop
|
|
|
|
/* 807CF730-807CF734 0002C0 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF730[4];
|
|
#pragma pop
|
|
|
|
/* 807CF734-807CF738 0002C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF734[4];
|
|
#pragma pop
|
|
|
|
/* 807CF738-807CF73C 0002C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF738[4];
|
|
#pragma pop
|
|
|
|
/* 807CF73C-807CF740 0002CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF73C[4];
|
|
#pragma pop
|
|
|
|
/* 807CF740-807CF744 0002D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
|
|
*/
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF740[4];
|
|
#pragma pop
|
|
|
|
/* 807CF744-807CF748 0002D4 0004+00 0/0 0/0 0/0 .bss
|
|
* sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 data_807CF744[4];
|
|
#pragma pop
|
|
|
|
/* 807CEEFC-807CEEFC 000254 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ |