agbsw0 and agb cleanup and some matches

This commit is contained in:
LagoLunatic
2023-11-20 02:32:10 -05:00
parent c130095d7f
commit 5b5772c2e1
7 changed files with 152 additions and 150 deletions
+18 -4
View File
@@ -38,6 +38,8 @@ public:
class daAgb_c : public fopAc_ac_c {
public:
// daAgb_BmRp_c struct?
void NameConv();
int uploadInitCheck();
int uploadPortCheckWait();
@@ -76,6 +78,18 @@ public:
BOOL isMsgSend() { return mIsMsgSend; }
BOOL isActive() { return mIsActive; }
void onActive() { mIsActive = true; }
void offActive() { mIsActive = false; }
void onBombDeny() { mBombDeny = true; }
void offBombDeny() { mBombDeny = false; }
void setDenyMessage(u16 msg) { mDenyMessage = msg; }
BOOL isFree() { return mIsFree; }
void offFree() {}
void isHold() {}
s32 getFollowTarget() { return mFollowTarget; }
void setFollowTarget(bool) {}
void getTargetID() {}
void setTargetID(unsigned int) {}
static int mEffect;
@@ -154,7 +168,7 @@ public:
/* 0x65A */ u16 field_0x65a;
/* 0x65C */ u16 field_0x65c;
/* 0x65E */ u16 field_0x65e;
/* 0x660 */ u16 field_0x660;
/* 0x660 */ u16 mDenyMessage;
/* 0x662 */ u16 field_0x662;
/* 0x664 */ u16 field_0x664;
/* 0x666 */ u8 mPortNo;
@@ -167,18 +181,18 @@ public:
/* 0x66E */ u8 field_0x66e;
/* 0x66F */ s8 field_0x66f;
/* 0x670 */ u8 field_0x670;
/* 0x671 */ u8 field_0x671;
/* 0x671 */ bool mIsFree;
/* 0x672 */ bool mIsActive;
/* 0x673 */ u8 field_0x673;
/* 0x674 */ u8 field_0x674;
/* 0x675 */ u8 field_0x675;
/* 0x676 */ u8 field_0x676;
/* 0x677 */ u8 field_0x677;
/* 0x677 */ u8 mFollowTarget;
/* 0x678 */ bool mIsMsgSend;
/* 0x679 */ u8 field_0x679;
/* 0x67A */ bool field_0x67a;
/* 0x67B */ u8 field_0x67b;
/* 0x67C */ u8 field_0x67c;
/* 0x67C */ bool mBombDeny;
/* 0x67D */ u8 field_0x67d;
/* 0x67E */ u8 field_0x67e;
/* 0x67F */ u8 field_0x67f;
+23 -21
View File
@@ -185,7 +185,7 @@ public:
~daNpc_Md_followEcallBack_c() {}
void execute(JPABaseEmitter*);
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, signed char);
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8);
void end();
public:
@@ -224,7 +224,7 @@ public:
void playerAction(void*);
void setPlayerAction(ActionFunc, void*);
void getStickAngY(int);
void calcStickPos(short, cXyz*);
void calcStickPos(s16, cXyz*);
BOOL flyCheck();
BOOL mirrorCancelCheck();
void setWingEmitter();
@@ -240,8 +240,8 @@ public:
void wallHitCheck();
void NpcCall(int*);
void checkCollision(int);
void restartPoint(short);
void setMessageAnimation(unsigned char);
void restartPoint(s16);
void setMessageAnimation(u8);
void waitGroundCheck();
void chkAdanmaeDemoOrder();
int waitNpcAction(void*);
@@ -268,16 +268,16 @@ public:
int piyo2NpcAction(void*);
int deleteNpcAction(void*);
int demoFlyNpcAction(void*);
void routeAngCheck(cXyz&, short*);
void routeWallCheck(cXyz&, cXyz&, short*);
void checkForwardGroundY(short);
void checkWallJump(short);
void routeCheck(float, short*);
void routeAngCheck(cXyz&, s16*);
void routeWallCheck(cXyz&, cXyz&, s16*);
void checkForwardGroundY(s16);
void checkWallJump(s16);
void routeCheck(f32, s16*);
int searchNpcAction(void*);
int hitNpcAction(void*);
void setNormalSpeedF(float, float, float, float, float);
void setSpeedAndAngleNormal(float, short);
void walkProc(float, short);
void setNormalSpeedF(f32, f32, f32, f32, f32);
void setSpeedAndAngleNormal(f32, s16);
void walkProc(f32, s16);
int jumpNpcAction(void*);
int escapeNpcAction(void*);
int waitPlayerAction(void*);
@@ -327,27 +327,27 @@ public:
void actionLookDown(int);
void talk_init();
void talk(int);
void getAnmType(unsigned char);
BOOL initTexPatternAnm(unsigned char, bool);
void getAnmType(u8);
BOOL initTexPatternAnm(u8, bool);
void playTexPatternAnm();
BOOL initLightBtkAnm(bool);
void playLightBtkAnm();
void setAnm(int);
void dNpc_Md_setAnm(mDoExt_McaMorf2*, float, int, float, float, char*, char*, const char*);
void dNpc_Md_setAnm(mDoExt_McaMorf*, int, float, float, char*, const char*);
void chkAttention(cXyz, short, int);
void dNpc_Md_setAnm(mDoExt_McaMorf2*, f32, int, f32, f32, char*, char*, const char*);
void dNpc_Md_setAnm(mDoExt_McaMorf*, int, f32, f32, char*, const char*);
void chkAttention(cXyz, s16, int);
void chkArea(cXyz*);
void carryCheck();
void eventOrder();
void checkOrder();
void checkCommandTalk();
void next_msgStatus(unsigned long*);
void next_msgStatus(u32*);
void getMsg();
void setCollision();
void setAttention(bool);
void lookBack(int, int, int);
void lookBack(cXyz*, int, int);
void lookBackWaist(short, float);
void lookBackWaist(s16, f32);
void setBaseMtx();
void deletePiyoPiyo();
void init();
@@ -355,8 +355,8 @@ public:
void animationPlay();
void checkPlayerRoom();
BOOL execute();
void particle_set(JPABaseEmitter**, unsigned short);
void emitterTrace(JPABaseEmitter*, float(*)[4], csXyz*);
void particle_set(JPABaseEmitter**, u16);
void emitterTrace(JPABaseEmitter*, MtxP, csXyz*);
void emitterDelete(JPABaseEmitter**);
virtual BOOL isTagCheckOK();
@@ -372,7 +372,9 @@ public:
static s16 m_flyingTimer;
static bool m_playerRoom;
static bool isFlying() { return m_flying; }
static s16 getMaxFlyingTimer();
static bool isPlayerRoom() { return m_playerRoom; }
public:
/* 0x04EC */ request_of_phase_process_class mPhs;
+4 -3
View File
@@ -86,8 +86,9 @@ public:
daPyFlg0_DEKU_SP_RETURN_FLG = 0x00000010,
daPyFlg0_CUT_AT_FLG = 0x00000040,
daPyFlg0_UNK100 = 0x00000100,
daPyFlg0_SHIP_DROP = 0x00000200,
daPyFlg0_PUSH_PULL_KEEP = 0x00000800,
daPyFlg0_UNK1000 = 0x00001000,
daPyFlg0_HOVER_BOOTS = 0x00001000,
daPyFlg0_UNK4000 = 0x00004000,
daPyFlg0_UNK10000 = 0x00010000,
daPyFlg0_NO_FALL_VOICE = 0x00040000,
@@ -196,6 +197,7 @@ public:
bool getCutAtFlg() const { return checkNoResetFlg0(daPyFlg0_CUT_AT_FLG); }
void onPushPullKeep() { onNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP); }
void offPushPullKeep() { offNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP); }
bool checkEquipHoverBoots() const { return checkNoResetFlg0(daPyFlg0_HOVER_BOOTS); }
void onNoFallVoice() { onNoResetFlg0(daPyFlg0_NO_FALL_VOICE); }
void onScopeCancel() { onNoResetFlg0(daPyFlg0_SCOPE_CANCEL); }
bool checkEquipHeavyBoots() const { return checkNoResetFlg0(daPyFlg0_EQUIP_HEAVY_BOOTS); }
@@ -258,7 +260,6 @@ public:
// checkBowMiniGame__9daPy_py_cCFv
// checkUseArrowEffect__9daPy_py_cCFv
// checkFinalMasterSwordEquip__9daPy_py_cCFv
// checkEquipHoverBoots__9daPy_py_cCFv
virtual MtxP getLeftHandMatrix() = 0;
virtual MtxP getRightHandMatrix() = 0;
@@ -267,7 +268,7 @@ public:
virtual int getTactTimerCancel() const { return 0; }
virtual BOOL checkPlayerGuard() const { return FALSE; }
virtual fopAc_ac_c* getGrabMissActor() { return NULL; }
virtual BOOL checkPlayerFly() const { return FALSE; }
virtual u32 checkPlayerFly() const { return 0; }
virtual BOOL checkFrontRoll() const { return FALSE; }
virtual BOOL checkBottleSwing() const { return FALSE; }
virtual BOOL checkCutCharge() const { return FALSE; }
+11 -4
View File
@@ -2056,12 +2056,19 @@ public:
s16 checkTinkleShield() const { return mTinkleShieldTimer; }
void setTinkleShield(s16 time) { mTinkleShieldTimer = time; }
bool checkNoDamageMode() const { return checkEquipDragonShield() || checkTinkleShield() != 0; }
void setHoverBoots(s16 time) {
onNoResetFlg0(daPyFlg0_HOVER_BOOTS);
m354C = time;
}
void onShipTact() { onNoResetFlg1(daPyFlg1_SHIP_TACT); }
void offShipTact() { offNoResetFlg1(daPyFlg1_SHIP_TACT); }
void checkShipGetOff() {}
void onShipDrop(s16) {}
void onShipDrop(s16 param_1) {
onNoResetFlg0(daPyFlg0_SHIP_DROP);
m3550 = param_1;
}
void checkCarryActionNow() const {}
void checkNoControll() const {}
bool checkNoControll() const { return dComIfGp_getPlayer(0) != this; }
void clearDamageWait() {}
void exchangeGrabActor(fopAc_ac_c*) {}
void getDekuLeafWindPos() const {}
@@ -2078,7 +2085,7 @@ public:
void onModeFlg(u32 flag) { mModeFlg |= flag; }
void offModeFlg(u32 flag) { mModeFlg &= ~flag; }
BOOL checkModeFlg(u32 flag) const { return mModeFlg & flag; }
u32 checkModeFlg(u32 flag) const { return mModeFlg & flag; }
request_of_phase_process_class* getPhase() { return &mPhsLoad; }
@@ -2089,7 +2096,7 @@ public:
virtual int getTactTimerCancel() const;
virtual BOOL checkPlayerGuard() const;
virtual fopAc_ac_c* getGrabMissActor();
virtual BOOL checkPlayerFly() const { return checkModeFlg(0x10452822); } // TODO add enum
virtual u32 checkPlayerFly() const { return checkModeFlg(0x10452822); } // TODO add enum
virtual BOOL checkFrontRoll() const { return mCurProcID == PROC_FRONT_ROLL_e; }
virtual BOOL checkBottleSwing() const { return mCurProcID == PROC_BOTTLE_SWING_e; }
virtual BOOL checkCutCharge() const { return mCurProcID == PROC_CUT_TURN_MOVE_e; }
+36 -57
View File
@@ -17,31 +17,19 @@
#include "m_Do/m_Do_dvd_thread.h"
#include "m_Do/m_Do_gba_com.h"
#include "m_Do/m_Do_mtx.h"
#include "d/actor/d_a_npc_md.h"
#include "d/actor/d_a_bomb.h"
// stripped or compiler generated?
static u32 unused_lit_2100[] = {0x3F800000, 0x3F800000, 0x3F800000,
0x3F800000, 0x3F800000, 0x3F800000};
// temp
class daNpc_Md_c {
public:
static bool m_flying;
};
class daNpc_Cb1_c {
public:
static bool m_flying;
};
class daBomb_c {
public:
enum State_e {
STATE_8_e = 8,
};
static u32 prm_make(State_e, bool, bool);
};
static mDoDvdThd_toMainRam_c* l_gbaCommand;
int daAgb_c::mEffect;
@@ -445,10 +433,6 @@ void daAgb_c::modeLookAttention() {
}
}
u8 daAgb_c::DungeonNoTable[] = {
0, 11, 11, 1, 2, 3, 4, 5, 17, 17, 17, 17, 17, 17, 17, 17,
};
/* 800D0490-800D0580 .text DungeonNoGet__7daAgb_cFv */
u8 daAgb_c::DungeonNoGet() {
u8 var_r0 = DungeonNoTable[field_0x66c];
@@ -499,6 +483,10 @@ u8 daAgb_c::DungeonNoGet() {
return dungeon_no;
}
u8 daAgb_c::DungeonNoTable[] = {
0, 11, 11, 1, 2, 3, 4, 5, 17, 17, 17, 17, 17, 17, 17, 17,
};
/* 800D0580-800D05D4 .text MapNoSet__7daAgb_cFUcUcUc */
void daAgb_c::MapNoSet(u8 param_0, u8 param_1, u8 param_2) {
field_0x66c = param_0;
@@ -511,9 +499,9 @@ void daAgb_c::MapNoSet(u8 param_0, u8 param_1, u8 param_2) {
/* 800D05D4-800D05F0 .text onFree__7daAgb_cFv */
void daAgb_c::onFree() {
field_0x671 = 1;
mIsFree = true;
field_0x650 = -1;
field_0x677 = 0;
mFollowTarget = 0;
}
/* 800D05F0-800D0608 .text onHold__7daAgb_cFv */
@@ -531,8 +519,8 @@ void daAgb_c::offHold() {
/* 800D0620-800D070C .text resetCursor__7daAgb_cFb */
void daAgb_c::resetCursor(bool param_0) {
fopAc_ac_c* player_p = dComIfGp_getPlayer(0);
field_0x671 = 0;
field_0x677 = 0;
mIsFree = false;
mFollowTarget = 0;
field_0x650 = -1;
if (fopAcM_GetName(player_p) != PROC_NPC_KAM) {
@@ -563,7 +551,7 @@ void daAgb_c::resetCursor(bool param_0) {
/* 800D070C-800D0734 .text FlashCheck__7daAgb_cFv */
bool daAgb_c::FlashCheck() {
if (field_0x671 != 0 || field_0x677 == 1) {
if (mIsFree != 0 || mFollowTarget == 1) {
return true;
}
@@ -646,7 +634,6 @@ void daAgb_c::SwitchOn() {
}
/* 800D0A54-800D1188 .text GbaItemUse__7daAgb_cFv */
// NONMATCHING - mostly done, some regswaps
void daAgb_c::GbaItemUse() {
u32 temp_r29 = mItem.field_0x0;
u32 var_r28 = 0;
@@ -658,8 +645,8 @@ void daAgb_c::GbaItemUse() {
dComIfGp_roomControl_getStatusRoomDt(roomNo)->getFileListInfo();
if (fili_p != NULL && fili_p->mParam & 4) {
if (field_0x67c != 0) {
mEffect = BigLittleChange((field_0x660 << 0x10) | 0x300);
if (mBombDeny) {
mEffect = BigLittleChange((mDenyMessage << 0x10) | 0x300);
return;
} else if (temp_r29 == 5) {
f32 temp_f1 = cM_rndF(100.0f);
@@ -695,9 +682,9 @@ void daAgb_c::GbaItemUse() {
switch (temp_r29) {
case 16:
if (daPy_getPlayerLinkActorClass() != dComIfGp_getPlayer(0) ||
if (daPy_getPlayerLinkActorClass()->checkNoControll() ||
dComIfGp_checkPlayerStatus0(0, 0x8000000) ||
(daPy_getPlayerLinkActorClass()->checkPlayerFly() &&
(daPy_getPlayerActorClass()->checkPlayerFly() &&
!dComIfGp_checkPlayerStatus0(0, 0x100000) && !dComIfGp_checkPlayerStatus0(0, 0x10000)))
{
mEffect = BigLittleChange(0x1F0300);
@@ -714,15 +701,15 @@ void daAgb_c::GbaItemUse() {
return;
}
if (daPy_getPlayerLinkActorClass() != dComIfGp_getPlayer(0) &&
fopAcM_searchPlayerDistanceXZ(this) < 232.0f)
if (daPy_getPlayerLinkActorClass()->checkNoControll() &&
fopAcM_searchActorDistanceXZ(this, daPy_getPlayerLinkActorClass()) < 232.0f)
{
mEffect = 0;
return;
}
if ((int)field_0x671 != 0 || (int)field_0x677 == 1) {
if ((int)field_0x671 == 0 && dComIfGs_getGbaRupeeCount() < 24 &&
if (isFree() || getFollowTarget() == 1) {
if (!isFree() && dComIfGs_getGbaRupeeCount() < 24 &&
fopAcM_IsExecuting(field_0x650))
{
fopAc_ac_c* actor_p = fopAcM_SearchByID(field_0x650);
@@ -738,7 +725,7 @@ void daAgb_c::GbaItemUse() {
temp_r29 = 15;
}
fopAcM_create(0x128, daBomb_c::prm_make(daBomb_c::STATE_8_e, false, false),
fopAcM_create(0x128, daBomb_c::prm_make(daBomb_c::STATE_8, false, false),
&current.pos, -1, NULL, NULL, -1, NULL);
field_0x65c = 0x78;
} else {
@@ -750,7 +737,7 @@ void daAgb_c::GbaItemUse() {
break;
case 0x15:
resetCursor(false);
fopAcM_create(0x128, daBomb_c::prm_make(daBomb_c::STATE_8_e, false, false), &current.pos,
fopAcM_create(0x128, daBomb_c::prm_make(daBomb_c::STATE_8, false, false), &current.pos,
-1, NULL, NULL, -1, NULL);
field_0x65c = 0x78;
break;
@@ -758,9 +745,7 @@ void daAgb_c::GbaItemUse() {
mEffect = BigLittleChange(temp_r29);
return;
case 3:
daPy_lk_c* temp_r3 = daPy_getPlayerLinkActorClass();
temp_r3->onNoResetFlg0(daPy_py_c::daPyFlg0_UNK1000);
temp_r3->m354C = 5*30;
daPy_getPlayerLinkActorClass()->setHoverBoots(5*30);
resetCursor(false);
field_0x65c = 0x96;
mBrk.setPlaySpeed(6.0f);
@@ -786,15 +771,13 @@ void daAgb_c::GbaItemUse() {
}
break;
case 12:
if (field_0x67c != 0) {
mEffect = BigLittleChange((field_0x660 << 0x10) | 0x300);
if (mBombDeny) {
mEffect = BigLittleChange((mDenyMessage << 0x10) | 0x300);
return;
} else {
daPy_lk_c* temp_r4 = daPy_getPlayerLinkActorClass();
temp_r4->onNoResetFlg0(daPy_py_c::daPyFlg0_UNK1000);
temp_r4->m354C = 300;
if (!(daPy_getPlayerLinkActorClass()->checkEquipDragonShield())) {
temp_r4->setTinkleShield(300);
daPy_getPlayerLinkActorClass()->setHoverBoots(10*30);
if (!daPy_getPlayerLinkActorClass()->checkEquipDragonShield()) {
daPy_getPlayerLinkActorClass()->setTinkleShield(300);
}
resetCursor(false);
@@ -803,11 +786,11 @@ void daAgb_c::GbaItemUse() {
}
break;
case 13:
if (field_0x67c != 0) {
mEffect = BigLittleChange((field_0x660 << 0x10) | 0x300);
if (mBombDeny) {
mEffect = BigLittleChange((mDenyMessage << 0x10) | 0x300);
return;
} else {
if ((daPy_getPlayerLinkActorClass()->checkEquipDragonShield())) {
if (daPy_getPlayerLinkActorClass()->checkEquipDragonShield()) {
mEffect = 0;
return;
}
@@ -951,12 +934,8 @@ int daAgb_Execute(daAgb_c* i_this) {
if (i_this->field_0x65c != 0) {
if (i_this->field_0x66b == 3 || i_this->field_0x66b == 12) {
daPy_lk_c* player_p = daPy_getPlayerLinkActorClass();
player_p->onNoResetFlg0(daPy_py_c::daPyFlg0_UNK1000);
player_p->m354C = 10;
} else if (i_this->field_0x66b == 4 || i_this->field_0x66b == 13 ||
i_this->field_0x66b == 12)
{
daPy_getPlayerLinkActorClass()->setHoverBoots(10);
} else if (i_this->field_0x66b == 4 || i_this->field_0x66b == 13 || i_this->field_0x66b == 12) {
daPy_getPlayerLinkActorClass()->setTinkleShield(10);
}
@@ -972,7 +951,7 @@ int daAgb_Execute(daAgb_c* i_this) {
i_this->modeProcCall();
if (g_mDoGaC_gbaCom.mDoGaC_GbaLink()) {
if ((int)i_this->field_0x671 != 0) {
if (i_this->isFree()) {
if (i_this->current.pos.x != i_this->next.pos.x ||
i_this->current.pos.z != i_this->next.pos.z)
{
@@ -983,7 +962,7 @@ int daAgb_Execute(daAgb_c* i_this) {
} else {
daPy_lk_c* player_p2 = daPy_getPlayerLinkActorClass();
if ((dComIfGp_getPlayer(0) == player_p2 && !temp_r29->checkPlayerFly()) ||
((fopAcM_GetName(temp_r29) == PROC_NPC_MD && !daNpc_Md_c::m_flying) ||
((fopAcM_GetName(temp_r29) == PROC_NPC_MD && !daNpc_Md_c::isFlying()) ||
(fopAcM_GetName(temp_r29) == PROC_NPC_CB1 && !daNpc_Cb1_c::m_flying) ||
fopAcM_GetName(temp_r29) == PROC_NPC_OS))
{
@@ -1036,7 +1015,7 @@ int daAgb_Execute(daAgb_c* i_this) {
i_this->mBrk.play();
}
} else if (((i_this->isActive() || i_this->field_0x676 != 0) &&
((int)i_this->field_0x671 != 0 || (int)i_this->field_0x677 == 1)) ||
(i_this->isFree() || i_this->getFollowTarget() == 1)) ||
(i_this->field_0x66b == 14 && i_this->field_0x65c > 120))
{
i_this->mBrk.play();
@@ -1172,7 +1151,7 @@ int daAgb_Create(fopAc_ac_c* i_this) {
a_this->mIsMsgSend = g_mDoGaC_gbaCom.field_0x0 > 0;
a_this->field_0x654 = 0;
a_this->field_0x650 = -1;
a_this->field_0x677 = 0;
a_this->mFollowTarget = 0;
a_this->field_0x67b = 0;
a_this->field_0x680 = 1;
+38 -39
View File
@@ -23,6 +23,7 @@ static f64 dummy4[2] = {3.0, 0.5};
#include "d/actor/d_a_player_main.h"
#include "d/actor/d_a_bomb.h"
#include "m_Do/m_Do_gba_com.h"
#include "d/actor/d_a_npc_md.h"
static dCcD_SrcCyl l_cyl_src = {
// dCcD_SrcGObjInf
@@ -55,7 +56,6 @@ static dCcD_SrcCyl l_cyl_src = {
};
BOOL daAgbsw0_c::draw() {
/* Nonmatching */
u8 toCheck = getSw0();
u8 behavior = getType();
s16 condition = getParamNo();
@@ -113,31 +113,31 @@ BOOL daAgbsw0_c::draw() {
}
else if(behavior == 2 || behavior == 0xD || behavior == 0xE) {
u8 iconType;
u16 iconRot;
s32 iconRot;
u8 temp;
if(condition == 0) {
iconType = 8;
iconRot = -0x8000;
iconRot = 0x8000;
temp = 0;
}
else if(condition <= 8) {
iconType = 9;
iconRot = (4 - (condition - 1)) * 0x2000; // missing a mr after the clrlslwi
iconRot = (u16)((4 - (condition - 1)) * 0x2000);
temp = 0;
}
else if(condition < 0x19) {
iconType = 10;
iconRot = -0x8000;
iconRot = 0x8000;
temp = condition - 9;
}
else if(condition == 0x22) {
iconType = 0x15;
iconRot = -0x8000;
iconRot = 0x8000;
temp = 0;
}
else {
iconType = 0xB;
iconRot = -0x8000;
iconRot = 0x8000;
temp = 0;
}
@@ -359,7 +359,7 @@ BOOL daAgbsw0_c::ExeSubA() {
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink()) {
if(g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5)) {
daAgb_c* agb = dComIfGp_getAgb();
if(agb && ((int)agb->field_0x671 != 0 || (int)agb->field_0x677 != 1) && HitCheck(agb)) {
if(agb && (agb->isFree() || agb->getFollowTarget() != 1) && HitCheck(agb)) {
u32 param = fopAcM_GetParam(this);
MailSend(BigLittleChange(getMsgNo()) >> 0x10, 1, getSw1(), 0xFF, 0);
field_0x298 = 1;
@@ -439,7 +439,7 @@ BOOL daAgbsw0_c::ExeSubAT() {
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink()) {
if(g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5)) {
daAgb_c* agb = dComIfGp_getAgb();
if(agb && ((int)agb->field_0x671 != 0 || (int)agb->field_0x677 != 1) && HitCheck(agb)) {
if(agb && (agb->isFree() || agb->getFollowTarget() != 1) && HitCheck(agb)) {
if(flag < 0x20) {
MailSend(BigLittleChange(getMsgNo()) >> 0x10, 2, getSw1(), 0xFF, 0);
}
@@ -522,7 +522,7 @@ BOOL daAgbsw0_c::ExeSubA2() {
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink()) {
if(g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5)) {
daAgb_c* agb = dComIfGp_getAgb();
if(agb && ((int)agb->field_0x671 != 0 || (int)agb->field_0x677 == 0) && HitCheck(agb)) {
if(agb && (agb->isFree() || agb->getFollowTarget() == 0) && HitCheck(agb)) {
MailSend(BigLittleChange(getMsgNo()) >> 0x10, 4, getSw1(), sw, 0);
field_0x298 = 1;
}
@@ -566,7 +566,7 @@ BOOL daAgbsw0_c::ExeSubF() {
}
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink() && g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5)) {
daAgb_c* agb = dComIfGp_getAgb();
if(agb && agb->isActive() && (int)agb->field_0x671 == 0 && (int)agb->field_0x677 == 0 && HitCheck(agb)) {
if(agb && agb->isActive() && !agb->isFree() && agb->getFollowTarget() == 0 && HitCheck(agb)) {
MailSend(BigLittleChange(getMsgNo()) >> 0x10, 6, getSw1(), sw, 0);
}
}
@@ -619,7 +619,7 @@ BOOL daAgbsw0_c::ExeSubF2() {
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink() && g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5) && agb) {
fopAc_ac_c* player = dComIfGp_getPlayer(0);
if(field_0x299 == 0) {
if(agb->isActive() && (int)agb->field_0x671 == 0 && (int)agb->field_0x677 == 0 && HitCheck(agb)) {
if(agb->isActive() && !agb->isFree() && agb->getFollowTarget() == 0 && HitCheck(agb)) {
MailSend(0x5A00, 6, 0xFF, 0xFF, 0);
agb->onFree();
agb->onHold();
@@ -684,7 +684,7 @@ BOOL daAgbsw0_c::ExeSubM() {
else {
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink() && g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5)) {
daAgb_c* agb = dComIfGp_getAgb();
if(agb && agb->isActive() && ((int)agb->field_0x671 != 0 || (int)agb->field_0x677 != 1) && HitCheck(agb)) {
if(agb && agb->isActive() && (agb->isFree() || agb->getFollowTarget() != 1) && HitCheck(agb)) {
MailSend(BigLittleChange(getMsgNo()) >> 0x10, 0x3, 0xFF, 0xFF, 0);
field_0x298 = 1;
}
@@ -724,7 +724,7 @@ BOOL daAgbsw0_c::ExeSubM2() {
else {
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink() && g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5)) {
daAgb_c* agb = dComIfGp_getAgb();
if(agb && agb->isActive() && ((int)agb->field_0x671 != 0 || (int)agb->field_0x677 != 1) && HitCheck(agb)) {
if(agb && agb->isActive() && (agb->isFree() || agb->getFollowTarget() != 1) && HitCheck(agb)) {
MailSend(BigLittleChange(getMsgNo()) >> 0x10, 0x3, 0xFF, 0xFF, 0);
field_0x298 = 1;
}
@@ -765,7 +765,7 @@ BOOL daAgbsw0_c::ExeSubM3() {
else {
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink() && g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5)) {
daAgb_c* agb = dComIfGp_getAgb();
if(agb && agb->isActive() && ((int)agb->field_0x671 != 0 || (int)agb->field_0x677 != 1) && HitCheck(agb)) {
if(agb && agb->isActive() && (agb->isFree() || agb->getFollowTarget() != 1) && HitCheck(agb)) {
u16 gbaMsgId = TriforceCheck(agb);
MailSend(BigLittleChange(gbaMsgId) >> 0x10, 0xF, 0xFF, 0xFF, 0);
field_0x298 = 1;
@@ -933,11 +933,10 @@ u16 daAgbsw0_c::BeatedMsg[] = {
0x0031,
0x004F,
0x0058,
0x0059
};
//no idea why this is getting pused out an extra 2 bytes
};
u16 daAgbsw0_c::DisposedMsg[] = {
0x005C
0x0059,
0x005C,
};
BOOL daAgbsw0_c::ExeSubMW() {
@@ -1046,7 +1045,7 @@ BOOL daAgbsw0_c::ExeSubS() {
else if(field_0x299 == 0 && g_mDoGaC_gbaCom.mDoGaC_GbaLink()) {
daAgb_c* agb = dComIfGp_getAgb();
if(getParamNo() < 0) {
if(agb && agb->isActive() && ((int)agb->field_0x671 != 0 || (int)agb->field_0x677 != 1) && HitCheck(agb)) {
if(agb && agb->isActive() && (agb->isFree() || agb->getFollowTarget() != 1) && HitCheck(agb)) {
if(getMsgNo() == 0xFFFF) {
fopAcM_onSwitch(this, sw);
if(sw1 != 0xFF) {
@@ -1119,7 +1118,7 @@ BOOL daAgbsw0_c::ExeSubR() {
return true;
}
else if(agb && agb->isActive()) {
if((int)agb->field_0x671 != 0 && HitCheck(agb)) {
if(agb->isFree() && HitCheck(agb)) {
MailSend(BigLittleChange(getMsgNo()) >> 0x10, 0xA, 0xFF, getSw0(), 0);
field_0x299 = 1;
field_0x298 = 1;
@@ -1213,7 +1212,7 @@ BOOL daAgbsw0_c::ExeSubB() {
return true;
}
else {
if(agb && (int)agb->field_0x671 != 0 && HitCheck(agb)) {
if(agb && agb->isFree() && HitCheck(agb)) {
f32 xzDiff = fopAcM_searchActorDistanceXZ(agb, this);
cXyz posDiff = current.pos - agb->current.pos;
@@ -1274,7 +1273,7 @@ BOOL daAgbsw0_c::ExeSubB() {
else if((restriction != 2 && sw != 0xFF && fopAcM_isSwitch(this, sw)) || (restriction == 2 && sw < 0x20 && dComIfGs_isTbox(sw))) {
if(agb) {
if(restriction == 3) {
agb->field_0x67c = 0;
agb->offBombDeny();
}
else if(restriction != 6) {
agb->field_0x67b = 0;
@@ -1288,13 +1287,13 @@ BOOL daAgbsw0_c::ExeSubB() {
if(agb) {
if(restriction == 3) {
if(HitCheck(player->current.pos, 60.0f)) {
agb->field_0x67c = 1;
agb->field_0x660 = fopAcM_GetParam(this);
agb->onBombDeny();
agb->setDenyMessage(fopAcM_GetParam(this));
field_0x298 = 1;
}
else {
if(field_0x298 == 1) {
agb->field_0x67c = 0;
agb->offBombDeny();
field_0x298 = 0;
}
}
@@ -1335,7 +1334,7 @@ BOOL daAgbsw0_c::ExeSubD() {
if(g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5) && agb) {
fopAc_ac_c* player = dComIfGp_getPlayer(0);
if(field_0x299 == 0) {
if(agb->isActive() && (int)agb->field_0x671 != 0 && HitCheck(agb)) {
if(agb->isActive() && agb->isFree() && HitCheck(agb)) {
MailSend(0x5F00, 0xC, 0xFF, 0xFF, 0x19);
agb->onHold();
agb->field_0x675 = 1;
@@ -1481,7 +1480,7 @@ BOOL daAgbsw0_c::ExeSubFA() {
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink()) {
if(g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(5)) {
daAgb_c* agb = dComIfGp_getAgb();
if(agb && ((int)agb->field_0x671 != 0 || (int)agb->field_0x677 == 0) && HitCheck(agb)) {
if(agb && (agb->isFree() || agb->getFollowTarget() == 0) && HitCheck(agb)) {
MailSend(BigLittleChange(getMsgNo()) >> 0x10, 0xD, getSw1(), sw, 0);
field_0x298 = 1;
}
@@ -2275,59 +2274,59 @@ BOOL daAgbsw0_c::MoveCheck(s16 param_1) {
break;
case 0x7B:
if(fpcM_GetName(dComIfGp_getPlayer(0)) == 0x171/* && m_flying*/) {
if(fpcM_GetName(dComIfGp_getPlayer(0)) == 0x171 && daNpc_Md_c::isFlying()) {
return 0;
}
break;
case 0x7C:
if(!fpcM_GetName(dComIfGp_getPlayer(0)) == 0x171/* || !m_flying*/) {
if(fpcM_GetName(dComIfGp_getPlayer(0)) != 0x171 || !daNpc_Md_c::isFlying()) {
return 0;
}
break;
case 0x7D:
if(!fopAcM_isSwitch(this, 0x7C)) {
if(fpcM_GetName(dComIfGp_getPlayer(0)) == 0x171/* && daNpc_Cb1_c::isFlying()*/) {
return 0;
}
break;
case 0x7E:
if(dComIfGs_checkGetItem(HUMMER) && !dComIfGs_isEventBit(0x2D01)) {
if(!fpcM_GetName(dComIfGp_getPlayer(0)) != 0x171/* || !daNpc_Cb1_c::isFlying()*/) {
return 0;
}
break;
case 0x7F:
if(fpcM_GetName(dComIfGp_getPlayer(0)) == 0x171/* && m_flying*/) {
if(!fopAcM_isSwitch(this, 0x7C)) {
return 0;
}
break;
case 0x80:
if(!fpcM_GetName(dComIfGp_getPlayer(0)) != 0x171/* || !m_flying*/) {
if(dComIfGs_checkGetItem(HUMMER) && !dComIfGs_isEventBit(0x2D01)) {
return 0;
}
break;
case 0x82:
if(field_0x29B == 0) {
if(field_0x298 /* daNpc_Md_c::isPlayerRoom() */) {
if(daNpc_Md_c::isPlayerRoom()) {
field_0x29B = 1;
}
}
else if(!field_0x298 /* !daNpc_Md_c::isPlayerRoom() */) {
else if(!daNpc_Md_c::isPlayerRoom()) {
return 0;
}
break;
case 0x83:
if(field_0x29B == 0) {
if(field_0x298 /* daNpc_Md_c::isPlayerRoom() */) {
if(field_0x298 /* daNpc_Cb1_c::isPlayerRoom() */) {
field_0x29B = 1;
}
}
else if(!field_0x298 /* !daNpc_Md_c::isPlayerRoom() */) {
else if(!field_0x298 /* !daNpc_Cb1_c::isPlayerRoom() */) {
return 0;
}
@@ -2372,7 +2371,7 @@ static BOOL daAgbsw0_Delete(daAgbsw0_c* i_this) {
if(id == 0xA) {
s16 temp = i_this->current.angle.x & 0xFFFF;
if(temp == 3) {
agb->field_0x67c = 0;
agb->offBombDeny();
}
else if(temp == 4) {
daAgb_c::mFlags.field_0x3 = 0; //has an extra stb + mr but at least it does rlwimi on 0 now
+22 -22
View File
@@ -401,7 +401,7 @@ static int hairTopNodeCallBack(J3DNode*, int) {
}
/* 00001D0C-00001F5C .text vecChange__FP4cXyzP4cXyzs */
static void vecChange(cXyz*, cXyz*, short) {
static void vecChange(cXyz*, cXyz*, s16) {
/* Nonmatching */
}
@@ -650,7 +650,7 @@ void daNpc_Md_c::getStickAngY(int) {
}
/* 00003430-00003588 .text calcStickPos__10daNpc_Md_cFsP4cXyz */
void daNpc_Md_c::calcStickPos(short, cXyz*) {
void daNpc_Md_c::calcStickPos(s16, cXyz*) {
/* Nonmatching */
}
@@ -739,7 +739,7 @@ void daNpc_Md_c::checkCollision(int) {
}
/* 00003FE0-00004040 .text restartPoint__10daNpc_Md_cFs */
void daNpc_Md_c::restartPoint(short) {
void daNpc_Md_c::restartPoint(s16) {
/* Nonmatching */
}
@@ -749,7 +749,7 @@ BOOL daNpc_Md_c::isTagCheckOK() {
}
/* 00004174-00004230 .text setMessageAnimation__10daNpc_Md_cFUc */
void daNpc_Md_c::setMessageAnimation(unsigned char) {
void daNpc_Md_c::setMessageAnimation(u8) {
/* Nonmatching */
}
@@ -889,27 +889,27 @@ int daNpc_Md_c::demoFlyNpcAction(void*) {
}
/* 00007A98-00007B64 .text routeAngCheck__10daNpc_Md_cFR4cXyzPs */
void daNpc_Md_c::routeAngCheck(cXyz&, short*) {
void daNpc_Md_c::routeAngCheck(cXyz&, s16*) {
/* Nonmatching */
}
/* 00007B64-00007DC8 .text routeWallCheck__10daNpc_Md_cFR4cXyzR4cXyzPs */
void daNpc_Md_c::routeWallCheck(cXyz&, cXyz&, short*) {
void daNpc_Md_c::routeWallCheck(cXyz&, cXyz&, s16*) {
/* Nonmatching */
}
/* 00007DC8-00008054 .text checkForwardGroundY__10daNpc_Md_cFs */
void daNpc_Md_c::checkForwardGroundY(short) {
void daNpc_Md_c::checkForwardGroundY(s16) {
/* Nonmatching */
}
/* 000081EC-000082C0 .text checkWallJump__10daNpc_Md_cFs */
void daNpc_Md_c::checkWallJump(short) {
void daNpc_Md_c::checkWallJump(s16) {
/* Nonmatching */
}
/* 000082C0-00008858 .text routeCheck__10daNpc_Md_cFfPs */
void daNpc_Md_c::routeCheck(float, short*) {
void daNpc_Md_c::routeCheck(f32, s16*) {
/* Nonmatching */
}
@@ -924,17 +924,17 @@ int daNpc_Md_c::hitNpcAction(void*) {
}
/* 00008E54-00008FFC .text setNormalSpeedF__10daNpc_Md_cFfffff */
void daNpc_Md_c::setNormalSpeedF(float, float, float, float, float) {
void daNpc_Md_c::setNormalSpeedF(f32, f32, f32, f32, f32) {
/* Nonmatching */
}
/* 00008FFC-000090EC .text setSpeedAndAngleNormal__10daNpc_Md_cFfs */
void daNpc_Md_c::setSpeedAndAngleNormal(float, short) {
void daNpc_Md_c::setSpeedAndAngleNormal(f32, s16) {
/* Nonmatching */
}
/* 000090EC-00009180 .text walkProc__10daNpc_Md_cFfs */
void daNpc_Md_c::walkProc(float, short) {
void daNpc_Md_c::walkProc(f32, s16) {
/* Nonmatching */
}
@@ -1183,12 +1183,12 @@ void daNpc_Md_c::talk(int) {
}
/* 0000CDCC-0000CDF4 .text getAnmType__10daNpc_Md_cFUc */
void daNpc_Md_c::getAnmType(unsigned char) {
void daNpc_Md_c::getAnmType(u8) {
/* Nonmatching */
}
/* 0000CDF4-0000CF18 .text initTexPatternAnm__10daNpc_Md_cFUcb */
BOOL daNpc_Md_c::initTexPatternAnm(unsigned char, bool) {
BOOL daNpc_Md_c::initTexPatternAnm(u8, bool) {
/* Nonmatching */
}
@@ -1213,17 +1213,17 @@ void daNpc_Md_c::setAnm(int) {
}
/* 0000D4CC-0000D5E4 .text dNpc_Md_setAnm__10daNpc_Md_cFP15mDoExt_McaMorf2fiffPcPcPCc */
void daNpc_Md_c::dNpc_Md_setAnm(mDoExt_McaMorf2*, float, int, float, float, char*, char*, const char*) {
void daNpc_Md_c::dNpc_Md_setAnm(mDoExt_McaMorf2*, f32, int, f32, f32, char*, char*, const char*) {
/* Nonmatching */
}
/* 0000D5E4-0000D614 .text dNpc_Md_setAnm__10daNpc_Md_cFP14mDoExt_McaMorfiffPcPCc */
void daNpc_Md_c::dNpc_Md_setAnm(mDoExt_McaMorf*, int, float, float, char*, const char*) {
void daNpc_Md_c::dNpc_Md_setAnm(mDoExt_McaMorf*, int, f32, f32, char*, const char*) {
/* Nonmatching */
}
/* 0000D614-0000D82C .text chkAttention__10daNpc_Md_cF4cXyzsi */
void daNpc_Md_c::chkAttention(cXyz, short, int) {
void daNpc_Md_c::chkAttention(cXyz, s16, int) {
/* Nonmatching */
}
@@ -1253,7 +1253,7 @@ void daNpc_Md_c::checkCommandTalk() {
}
/* 0000DCB0-0000E410 .text next_msgStatus__10daNpc_Md_cFPUl */
void daNpc_Md_c::next_msgStatus(unsigned long*) {
void daNpc_Md_c::next_msgStatus(u32*) {
/* Nonmatching */
}
@@ -1283,7 +1283,7 @@ void daNpc_Md_c::lookBack(cXyz*, int, int) {
}
/* 0000EC38-0000EDD0 .text lookBackWaist__10daNpc_Md_cFsf */
void daNpc_Md_c::lookBackWaist(short, float) {
void daNpc_Md_c::lookBackWaist(s16, f32) {
/* Nonmatching */
}
@@ -1323,12 +1323,12 @@ BOOL daNpc_Md_c::execute() {
}
/* 000108B0-00010948 .text particle_set__10daNpc_Md_cFPP14JPABaseEmitterUs */
void daNpc_Md_c::particle_set(JPABaseEmitter**, unsigned short) {
void daNpc_Md_c::particle_set(JPABaseEmitter**, u16) {
/* Nonmatching */
}
/* 00010948-000109A0 .text emitterTrace__10daNpc_Md_cFP14JPABaseEmitterPA4_fP5csXyz */
void daNpc_Md_c::emitterTrace(JPABaseEmitter*, float(*)[4], csXyz*) {
void daNpc_Md_c::emitterTrace(JPABaseEmitter*, MtxP, csXyz*) {
/* Nonmatching */
}
@@ -1374,7 +1374,7 @@ void daNpc_Md_followEcallBack_c::execute(JPABaseEmitter*) {
}
/* 0001119C-000111A4 .text setup__26daNpc_Md_followEcallBack_cFP14JPABaseEmitterPC4cXyzPC5csXyzSc */
void daNpc_Md_followEcallBack_c::setup(JPABaseEmitter*, const cXyz*, const csXyz*, signed char) {
void daNpc_Md_followEcallBack_c::setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8) {
/* Nonmatching */
}