mirror of https://github.com/zeldaret/tp.git
d_a_e_ge OK and linked (#2707)
* match one func and remove old comments * d_a_e_ge matching and linked * format files * some docs * try pal and jpn too * remove comments * merge upstream
This commit is contained in:
parent
c3e67d6820
commit
9a97d89256
|
|
@ -1720,7 +1720,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_fs"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_fz"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_gb"),
|
||||
ActorRel(NonMatching, "d_a_e_ge"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_ge"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_gi"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_gm"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_gob"),
|
||||
|
|
|
|||
|
|
@ -1,36 +1,37 @@
|
|||
#ifndef D_A_E_GE_H
|
||||
#define D_A_E_GE_H
|
||||
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
* @class daE_GE_c
|
||||
* @brief Guay
|
||||
*
|
||||
* @details
|
||||
*
|
||||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daE_GE_c : public fopEn_enemy_c {
|
||||
public:
|
||||
u8 getGroupNo() {
|
||||
return mGroupNo;
|
||||
}
|
||||
typedef void (daE_GE_c::*actionFunc)();
|
||||
|
||||
/* 806C7AB8 */ void bckSet(int, f32, u8, f32);
|
||||
/* 806C7B5C */ void bckCheck(int);
|
||||
/* 806C7BB8 */ void draw();
|
||||
/* 806C7CAC */ void checkBeforeBg(int, f32);
|
||||
/* 806C7B5C */ bool bckCheck(int);
|
||||
/* 806C7BB8 */ int draw();
|
||||
/* 806C7CAC */ bool checkBeforeBg(int, f32);
|
||||
/* 806C80F8 */ void setActionMode(int);
|
||||
/* 806C8130 */ void damage_check();
|
||||
/* 806C8374 */ void checkOtherAttacker();
|
||||
/* 806C83F8 */ void searchNextAttacker();
|
||||
/* 806C84A0 */ void checkCircleSpeedAdd(cXyz*, cXyz*);
|
||||
/* 806C8374 */ bool checkOtherAttacker();
|
||||
/* 806C83F8 */ bool searchNextAttacker();
|
||||
/* 806C84A0 */ bool checkCircleSpeedAdd(cXyz*, cXyz*);
|
||||
/* 806C8518 */ void setAddCalcSpeed(cXyz&, cXyz const&, f32, f32, f32, f32);
|
||||
/* 806C88C8 */ void calcCircleFly(cXyz*, cXyz*, s16, f32, s16, f32);
|
||||
/* 806C88C8 */ cXyz calcCircleFly(cXyz*, cXyz*, s16, f32, s16, f32);
|
||||
/* 806C89C0 */ void executeWait();
|
||||
/* 806C8C20 */ void executeFly();
|
||||
/* 806C9150 */ void checkAttackPossible(s16, bool);
|
||||
/* 806C9150 */ bool checkAttackPossible(s16, bool);
|
||||
/* 806C921C */ void executeAttack();
|
||||
/* 806C9F04 */ void setBackAnime(int);
|
||||
/* 806CA024 */ void executeBack();
|
||||
|
|
@ -45,24 +46,64 @@ public:
|
|||
/* 806CBC38 */ void action();
|
||||
/* 806CBE98 */ void mtx_set();
|
||||
/* 806CBEF0 */ void cc_set();
|
||||
/* 806CC068 */ void execute();
|
||||
/* 806CC1E4 */ void _delete();
|
||||
/* 806CC278 */ void CreateHeap();
|
||||
/* 806CC390 */ void create();
|
||||
/* 806CC068 */ int execute();
|
||||
/* 806CC1E4 */ int _delete();
|
||||
/* 806CC278 */ int CreateHeap();
|
||||
/* 806CC390 */ int create();
|
||||
|
||||
s16 getSurpriseTime() { return mSurpriseTime; }
|
||||
|
||||
s32 getActionMode() { return mActionMode; }
|
||||
|
||||
s32 getMoveType() { // needs to be s32 for some reason
|
||||
return mMoveType;
|
||||
}
|
||||
|
||||
u8 getGroupNo() { return mGroupNo; }
|
||||
|
||||
private:
|
||||
/* 0x5AC */ u8 field_0x5ac[1519];
|
||||
/* 0x5AC */ request_of_phase_process_class mPhaseReq;
|
||||
/* 0x5B4 */ mDoExt_McaMorfSO* mpMorfSO;
|
||||
/* 0x5B8 */ Z2CreatureEnemy mSound;
|
||||
/* 0x65C */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x69C */ dBgS_ObjAcch mObjAcch;
|
||||
/* 0x874 */ dCcD_Stts mStts;
|
||||
/* 0x8B0 */ dCcD_Sph mSphere;
|
||||
/* 0x9E8 */ dCcD_Sph mSphere2;
|
||||
/* 0xB20 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0xB44 */ u32 mSmokeKey;
|
||||
/* 0xB48 */ u32 mSmokeKey2;
|
||||
/* 0xB4C */ cXyz field_0xb4c;
|
||||
/* 0xB58 */ f32 field_0xb58;
|
||||
/* 0xB5C */ f32 field_0xb5c;
|
||||
/* 0xB60 */ f32 field_0xb60;
|
||||
/* 0xB64 */ f32 field_0xb64;
|
||||
/* 0xB68 */ f32 field_0xb68;
|
||||
/* 0xB6C */ u8 field_0xB6C[0xB70 - 0xB6C];
|
||||
/* 0xB70 */ int mActionMode;
|
||||
/* 0xB74 */ int mPrevActionMode;
|
||||
/* 0xB78 */ int mMode;
|
||||
/* 0xB7C */ int mSubMode;
|
||||
/* 0xB80 */ int mBackAnimeTimer;
|
||||
/* 0xB84 */ u32 mShadowKey;
|
||||
/* 0xB88 */ s16 mHitDirectionY; // not really used
|
||||
/* 0xB8A */ s16 field_0xb8a;
|
||||
/* 0xB8C */ s16 field_0xb8c;
|
||||
/* 0xB8E */ s16 field_0xb8e[2];
|
||||
/* 0xB92 */ s16 mDamageCooldownTimer;
|
||||
/* 0xB94 */ s16 mSurpriseTime;
|
||||
/* 0xB96 */ s16 mAnmChangeTimer;
|
||||
/* 0xB98 */ s16 mCircleFlyScale;
|
||||
/* 0xB9A */ u8 mMoveType;
|
||||
/* 0xB9B */ u8 mGroupNo;
|
||||
/* 0xB9C */ u8 field_0xb9c[4];
|
||||
/* 0xB9C */ u8 mSwitch;
|
||||
/* 0xB9D */ u8 field_0xb9d;
|
||||
/* 0xB9E */ u8 field_0xb9e;
|
||||
/* 0xB9F */ u8 mHIOInit;
|
||||
|
||||
static u8 l_actionmenu[108];
|
||||
static actionFunc l_actionmenu[9];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_GE_c) == 0xBA0);
|
||||
|
||||
class daE_GE_HIO_c {
|
||||
/* 806C7A4C */ daE_GE_HIO_c();
|
||||
/* 806CCA58 */ ~daE_GE_HIO_c();
|
||||
};
|
||||
|
||||
#endif /* D_A_E_GE_H */
|
||||
|
|
|
|||
|
|
@ -1353,7 +1353,6 @@ void daAlink_c::setHighModelFaceBtk(u16 i_anmID) {
|
|||
|
||||
/* 80119134-801191C4 113A74 0090+00 1/1 0/0 0/0 .text
|
||||
* setDemoBrk__9daAlink_cFPP15J3DAnmTevRegKeyP8J3DModelUs */
|
||||
// NONMATCHING - extra mr
|
||||
void daAlink_c::setDemoBrk(J3DAnmTevRegKey** param_0, J3DModel* param_1, u16 i_anmID) {
|
||||
J3DAnmTevRegKey* brk = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectIDRes(
|
||||
dStage_roomControl_c::getDemoArcName(), i_anmID));
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -38,15 +38,15 @@ enum daE_HZ_Action {
|
|||
/* 0 */ ACTION_WAIT,
|
||||
/* 1 */ ACTION_HIDE,
|
||||
/* 2 */ ACTION_ATTACK,
|
||||
/* 3 */ ACTION_EXECUTE_AWAY,
|
||||
/* 4 */ ACTION_EXECUTE_WIND,
|
||||
/* 5 */ ACTION_EXECUTE_DAMAGE,
|
||||
/* 6 */ ACTION_EXECUTE_DEATH,
|
||||
/* 7 */ ACTION_EXECUTE_CHANCE,
|
||||
/* 8 */ ACTION_EXECUTE_WIND_CHANCE,
|
||||
/* 9 */ ACTION_EXECUTE_WIND_WALK,
|
||||
/* 10 */ ACTION_EXECUTE_WATER_DEATH,
|
||||
/* 11 */ ACTION_EXECUTE_DEATH_WAIT
|
||||
/* 3 */ ACTION_AWAY,
|
||||
/* 4 */ ACTION_WIND,
|
||||
/* 5 */ ACTION_DAMAGE,
|
||||
/* 6 */ ACTION_DEATH,
|
||||
/* 7 */ ACTION_CHANCE,
|
||||
/* 8 */ ACTION_WIND_CHANCE,
|
||||
/* 9 */ ACTION_WIND_WALK,
|
||||
/* 10 */ ACTION_WATER_DEATH,
|
||||
/* 11 */ ACTION_DEATH_WAIT
|
||||
};
|
||||
|
||||
/* 806EA60C-806EA690 0000EC 0084+00 1/1 0/0 0/0 .text __ct__12daE_HZ_HIO_cFv */
|
||||
|
|
@ -300,7 +300,7 @@ bool daE_HZ_c::isWait() {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (mAction == ACTION_EXECUTE_DEATH_WAIT && mMode == ACTION_EXECUTE_WIND) {
|
||||
if (mAction == ACTION_DEATH_WAIT && mMode == ACTION_WIND) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
@ -308,7 +308,7 @@ bool daE_HZ_c::isWait() {
|
|||
|
||||
/* 806EB13C-806EB2E8 000C1C 01AC+00 1/1 0/0 0/0 .text checkFall__8daE_HZ_cFv */
|
||||
void daE_HZ_c::checkFall() {
|
||||
if (mAction == ACTION_EXECUTE_DEATH_WAIT || mAction == ACTION_EXECUTE_WATER_DEATH) {
|
||||
if (mAction == ACTION_DEATH_WAIT || mAction == ACTION_WATER_DEATH) {
|
||||
return;
|
||||
}
|
||||
if (mObjAcch.ChkGroundHit()) {
|
||||
|
|
@ -1005,7 +1005,7 @@ void daE_HZ_c::executeWind() {
|
|||
cLib_chaseAngleS(&field_0x6b2, 0, 0x100);
|
||||
if (field_0x6b2 == 0) {
|
||||
if (mpMorfSO->isStop()) {
|
||||
setActionMode(ACTION_EXECUTE_CHANCE);
|
||||
setActionMode(ACTION_CHANCE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -1041,7 +1041,7 @@ void daE_HZ_c::executeChance() {
|
|||
}
|
||||
if (mPiyoriTimer == 0) {
|
||||
setTgSetBit(0);
|
||||
setActionMode(ACTION_EXECUTE_AWAY);
|
||||
setActionMode(ACTION_AWAY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -1053,7 +1053,7 @@ void daE_HZ_c::initRollDamage() {
|
|||
shape_angle.z = 0;
|
||||
shape_angle.x = 0;
|
||||
|
||||
if (mAction == ACTION_EXECUTE_DEATH) {
|
||||
if (mAction == ACTION_DEATH) {
|
||||
if (field_0x6cc == 0) {
|
||||
speedF = 20.0f;
|
||||
field_0x6b6 = 0x1000;
|
||||
|
|
@ -1131,19 +1131,19 @@ void daE_HZ_c::executeDamage() {
|
|||
mSound.startCreatureSound(Z2SE_CM_BODYFALL_S, 0, -1);
|
||||
}
|
||||
if (doRollDamage()) {
|
||||
setActionMode(ACTION_EXECUTE_CHANCE);
|
||||
setActionMode(ACTION_CHANCE);
|
||||
return;
|
||||
}
|
||||
if (mPiyoriTimer == 0 && !speedF) {
|
||||
speedF = 0.0f;
|
||||
setTgSetBit(0);
|
||||
setActionMode(ACTION_EXECUTE_AWAY);
|
||||
setActionMode(ACTION_AWAY);
|
||||
}
|
||||
return;
|
||||
|
||||
case 2:
|
||||
if (doRollDamage()) {
|
||||
setActionMode(ACTION_EXECUTE_AWAY);
|
||||
setActionMode(ACTION_AWAY);
|
||||
mMode = 1;
|
||||
}
|
||||
break;
|
||||
|
|
@ -1287,7 +1287,7 @@ void daE_HZ_c::executeWindChance() {
|
|||
if (mPiyoriTimer != 0) {
|
||||
mPiyoriTimer += 20;
|
||||
}
|
||||
setActionMode(ACTION_EXECUTE_CHANCE);
|
||||
setActionMode(ACTION_CHANCE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1310,7 +1310,7 @@ void daE_HZ_c::executeWindWalk() {
|
|||
mSound.startCreatureSound(Z2SE_EN_HZ_WALK, 0, -1);
|
||||
}
|
||||
if (mpMorfSO->isStop()) {
|
||||
setActionMode(ACTION_EXECUTE_AWAY);
|
||||
setActionMode(ACTION_AWAY);
|
||||
initBackWalk();
|
||||
}
|
||||
break;
|
||||
|
|
@ -1437,12 +1437,12 @@ void daE_HZ_c::damage_check() {
|
|||
if (mAction != 1 || mMode < 4) {
|
||||
if (mSpheres[0].ChkTgHit() && mSpheres[0].GetTgHitObj()->ChkAtType(AT_TYPE_BOOMERANG)) {
|
||||
mSpheres[0].ClrTgHit();
|
||||
if (mAction == ACTION_EXECUTE_CHANCE) {
|
||||
setActionMode(ACTION_EXECUTE_WIND_CHANCE);
|
||||
} else if (mAction == ACTION_EXECUTE_AWAY) {
|
||||
setActionMode(ACTION_EXECUTE_WIND_WALK);
|
||||
if (mAction == ACTION_CHANCE) {
|
||||
setActionMode(ACTION_WIND_CHANCE);
|
||||
} else if (mAction == ACTION_AWAY) {
|
||||
setActionMode(ACTION_WIND_WALK);
|
||||
} else {
|
||||
setActionMode(ACTION_EXECUTE_WIND);
|
||||
setActionMode(ACTION_WIND);
|
||||
}
|
||||
setTgSetBit(0);
|
||||
mDamageDeathTimer = 10;
|
||||
|
|
@ -1509,17 +1509,17 @@ void daE_HZ_c::damage_check() {
|
|||
if (bVar) {
|
||||
field_0x6cc = 1;
|
||||
}
|
||||
if (mAction == ACTION_EXECUTE_AWAY) {
|
||||
if (mAction == ACTION_AWAY) {
|
||||
field_0x6cc += 2;
|
||||
}
|
||||
setActionMode(ACTION_EXECUTE_DEATH);
|
||||
setActionMode(ACTION_DEATH);
|
||||
return;
|
||||
}
|
||||
|
||||
if (mAction == ACTION_EXECUTE_AWAY) {
|
||||
if (mAction == ACTION_AWAY) {
|
||||
if (bVar) {
|
||||
field_0x6cc = 1;
|
||||
setActionMode(ACTION_EXECUTE_DAMAGE);
|
||||
setActionMode(ACTION_DAMAGE);
|
||||
return;
|
||||
}
|
||||
s16 angle = cLib_targetAngleY(&mSpheres[1].GetCoCP(), &player_pos) -
|
||||
|
|
@ -1571,7 +1571,7 @@ void daE_HZ_c::damage_check() {
|
|||
field_0x6cc = 2;
|
||||
}
|
||||
}
|
||||
setActionMode(ACTION_EXECUTE_DAMAGE);
|
||||
setActionMode(ACTION_DAMAGE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -1611,7 +1611,7 @@ void daE_HZ_c::action() {
|
|||
damage_check();
|
||||
|
||||
if (mAction != 10 && checkWaterSurface()) {
|
||||
setActionMode(ACTION_EXECUTE_WATER_DEATH);
|
||||
setActionMode(ACTION_WATER_DEATH);
|
||||
}
|
||||
|
||||
attention_info.flags = 4;
|
||||
|
|
@ -1631,41 +1631,41 @@ void daE_HZ_c::action() {
|
|||
executeAttack();
|
||||
break;
|
||||
|
||||
case ACTION_EXECUTE_AWAY:
|
||||
case ACTION_AWAY:
|
||||
executeAway();
|
||||
break;
|
||||
|
||||
case ACTION_EXECUTE_WIND:
|
||||
case ACTION_WIND:
|
||||
executeWind();
|
||||
break;
|
||||
|
||||
case ACTION_EXECUTE_DAMAGE:
|
||||
case ACTION_DAMAGE:
|
||||
executeDamage();
|
||||
break;
|
||||
|
||||
case ACTION_EXECUTE_DEATH:
|
||||
case ACTION_DEATH:
|
||||
attention_info.flags = 0;
|
||||
executeDeath();
|
||||
break;
|
||||
|
||||
case ACTION_EXECUTE_CHANCE:
|
||||
case ACTION_CHANCE:
|
||||
executeChance();
|
||||
break;
|
||||
|
||||
case ACTION_EXECUTE_WIND_CHANCE:
|
||||
case ACTION_WIND_CHANCE:
|
||||
executeWindChance();
|
||||
break;
|
||||
|
||||
case ACTION_EXECUTE_WIND_WALK:
|
||||
case ACTION_WIND_WALK:
|
||||
executeWindWalk();
|
||||
break;
|
||||
|
||||
case ACTION_EXECUTE_WATER_DEATH:
|
||||
case ACTION_WATER_DEATH:
|
||||
attention_info.flags = 0;
|
||||
executeWaterDeath();
|
||||
break;
|
||||
|
||||
case ACTION_EXECUTE_DEATH_WAIT:
|
||||
case ACTION_DEATH_WAIT:
|
||||
attention_info.flags = 0;
|
||||
executeDeathWait();
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1370,7 +1370,6 @@ dScnKy_env_light_c::dScnKy_env_light_c() {
|
|||
|
||||
/* 8019F4FC-8019F780 199E3C 0284+00 1/1 0/0 0/0 .text setDaytime__18dScnKy_env_light_cFv
|
||||
*/
|
||||
// NONMATCHING - getTimePass doing s8 check instead of int check
|
||||
void dScnKy_env_light_c::setDaytime() {
|
||||
mDate = dComIfGs_getDate();
|
||||
daytime = dComIfGs_getTime();
|
||||
|
|
|
|||
|
|
@ -2594,6 +2594,7 @@ void dMenu_Collect3D_c::setupItem3D(Mtx param_0) {
|
|||
|
||||
/* 801B7660-801B774C 1B1FA0 00EC+00 1/1 0/0 0/0 .text toItem3Dpos__17dMenu_Collect3D_cFfffP4cXyz
|
||||
*/
|
||||
// NONMATCHING
|
||||
// This is mostly matching like this using O2 but still regalloc (f29/f31). The main issue is the use of dVar12
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
|
|
|
|||
|
|
@ -750,7 +750,6 @@ static cull_sphere l_cullSizeSphere[] = {
|
|||
};
|
||||
|
||||
/* 8001ACEC-8001B058 01562C 036C+00 0/0 1/1 1/1 .text fopAcM_cullingCheck__FPC10fopAc_ac_c */
|
||||
// NONMATCHING some stack / extra instructions regarding mDoLib_clipper::clip
|
||||
s32 fopAcM_cullingCheck(fopAc_ac_c const* i_actor) {
|
||||
MtxP mtx_p;
|
||||
if (fopAcM_GetMtx(i_actor) == NULL) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue