d_a_player OK

This commit is contained in:
LagoLunatic
2023-10-07 20:06:56 -04:00
parent ef21d31c86
commit 9c91b939a7
11 changed files with 198 additions and 76 deletions
+1 -1
View File
@@ -432,7 +432,7 @@ config.libs = [
Object(Matching, "d/actor/d_a_nh.cpp"),
Object(NonMatching, "d/actor/d_a_npc_fa1.cpp"),
Object(NonMatching, "d/actor/d_a_obj_search.cpp"),
Object(NonMatching, "d/actor/d_a_player.cpp"),
Object(Matching, "d/actor/d_a_player.cpp"),
Object(NonMatching, "d/actor/d_a_player_main.cpp"),
Object(NonMatching, "d/actor/d_a_player_npc.cpp"),
Object(NonMatching, "d/actor/d_a_sea.cpp"),
+14 -2
View File
@@ -78,6 +78,9 @@ public:
void getPivotY();
void setStatus(u32 status) { mFlags |= status; }
void clearStatus(u32 status) { mFlags &= ~status; }
bool checkStatus(u32 status) { return mFlags & status; }
void initStatus(u32 status);
u8 getGlobalAlpha() { return mGlobalPrmColor.a; }
void setGlobalAlpha(u8 alpha) { mGlobalPrmColor.a = alpha; }
@@ -102,12 +105,21 @@ public:
void setRate(float i_rate) { mRate = i_rate; }
void stopCreateParticle() { setStatus(JPAEmtrStts_StopEmit); }
void becomeImmortalEmitter() { setStatus(JPAEmtrStts_Immortal); }
void quitImmortalEmitter() { clearStatus(JPAEmtrStts_Immortal); }
void becomeInvalidEmitter() {
mMaxFrame = -1;
stopCreateParticle();
}
void setEmitterCallBackPtr(JPACallBackBase<JPABaseEmitter*>* callback) {
mpEmitterCallBack = callback;
}
void setParticleCallBackPtr(JPACallBackBase2<JPABaseEmitter*, JPABaseParticle*>* callback) {
mpParticleCallBack = callback;
}
/* 0x000 */ VolumeFunc mVolumeFunc;
/* 0x00C */ cXyz mEmitterScale;
/* 0x018 */ cXyz mEmitterTranslation;
@@ -148,8 +160,8 @@ public:
/* 0x188 */ JSUPtrList mChildParticles;
/* 0x194 */ JSUPtrList* mpPtclVacList;
/* 0x198 */ JPADataBlockLinkInfo* mpDataLinkInfo;
/* 0x19C */ JPACallBackBase<JPABaseEmitter>* mpEmitterCallBack;
/* 0x1A0 */ JPACallBackBase2<JPABaseEmitter,JPABaseParticle>* mpParticleCallBack;
/* 0x19C */ JPACallBackBase<JPABaseEmitter*>* mpEmitterCallBack;
/* 0x1A0 */ JPACallBackBase2<JPABaseEmitter*, JPABaseParticle*>* mpParticleCallBack;
/* 0x1A4 */ JMath::TRandom_fast_ mRandomSeed;
/* 0x1A8 */ Mtx mGlobalRotation;
/* 0x1D8 */ JGeometry::TVec3<f32> mGlobalScale;
+1 -1
View File
@@ -63,7 +63,7 @@ public:
/* 0xC2 */ s16 mRotateSpeed;
/* 0xC4 */ u8 field_0xC4[0xC6 - 0xC4];
/* 0xC6 */ u16 mTexIdx;
/* 0xC8 */ JPACallBackBase2<JPABaseEmitter,JPABaseParticle>* mpCallBack2;
/* 0xC8 */ JPACallBackBase2<JPABaseEmitter*, JPABaseParticle*>* mpCallBack2;
/* 0xCC */ u32 mFlags;
};
+72 -17
View File
@@ -16,15 +16,16 @@ public:
virtual void calc(J3DMaterial*) const;
};
class daPy_mtxFollowEcallBack_c {
class daPy_mtxFollowEcallBack_c : public dPa_levelEcallBack {
public:
void execute(JPABaseEmitter*);
void end();
void makeEmitter(unsigned short, float(*)[4], const cXyz*, const cXyz*);
void makeEmitterColor(unsigned short, float(*)[4], const cXyz*, const _GXColor*, const _GXColor*);
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, signed char);
void makeEmitter(u16, MtxP, const cXyz*, const cXyz*);
void makeEmitterColor(u16, MtxP, const cXyz*, const _GXColor*, const _GXColor*);
void setup(JPABaseEmitter* emitter, const cXyz*, const csXyz*, s8) { mpEmitter = emitter; }
/* 0x0 */ u8 field_0x0[0xC];
/* 0x04 */ JPABaseEmitter* mpEmitter;
/* 0x08 */ MtxP mpMtx;
};
class daPy_HIO_c {
@@ -66,15 +67,41 @@ private:
class daPy_py_c : public fopAc_ac_c {
public:
enum daPy_PROC {};
enum daPy_FLG0 {
daPyFlg0_CUT_AT_FLG = 0x00000040,
daPyFlg0_PUSH_PULL_KEEP = 0x00000800,
daPyFlg0_UNK1000 = 0x00001000,
daPyFlg0_UNK200000 = 0x00200000,
daPyFlg0_EQUIP_HEAVY_BOOTS = 0x02000000,
daPyFlg0_NO_DRAW = 0x08000000,
daPyFlg0_HEAVY_STATE = 0x40000000,
};
enum daPy_FLG1 {
daPy_FLG1_EQUIP_DRAGON_SHIELD = 0x00000001,
daPy_FLG1_NPC_CALL_COMMAND = 0x00000002,
daPy_FLG1_FORCE_VOMIT_JUMP = 0x00000010,
daPy_FLG1_NPC_NOT_CHANGE = 0x00000040,
daPy_FLG1_CONFUSE = 0x00000100,
daPy_FLG1_SHIP_TACT = 0x00001000,
daPy_FLG1_USE_ARROW_EFFECT = 0x00002000,
daPy_FLG1_LETTER_READ_EYE_MOVE = 0x00004000,
daPy_FLG1_UNK8000 = 0x00008000,
daPy_FLG1_FOREST_WATER_USE = 0x00020000,
daPy_FLG1_WATER_DROP = 0x00080000,
daPy_FLG1_VINE_CATCH = 0x02000000,
daPy_FLG1_LAST_COMBO_WAIT = 0x20000000,
};
/* 0x290 */ u8 mAttackState;
/* 0x291 */ u8 field_0x291;
/* 0x292 */ u8 field_0x292[0x294 - 0x292];
/* 0x294 */ s16 mDamageWaitTimer;
/* 0x296 */ s16 mQuakeTimer;
/* 0x298 */ int field_0x298;
/* 0x29C */ u32 field_0x29c;
/* 0x2A0 */ u32 field_0x2a0;
/* 0x29C */ u32 mNoResetFlg0;
/* 0x2A0 */ u32 mNoResetFlg1;
/* 0x2A4 */ u32 field_0x2a4;
/* 0x2A8 */ f32 field_0x2a8;
/* 0x2AC */ u8 field_0x2AC[0x2B0 - 0x2AC];
@@ -86,9 +113,7 @@ public:
/* 0x2D4 */ cXyz field_0x2d4;
/* 0x2E0 */ cXyz field_0x2e0;
/* 0x2EC */ cXyz mRopePos;
/* 0x2F8 */ f32 field_0x2f8;
/* 0x2FC */ u8 field_0x2FC[0x300 - 0x2FC];
/* 0x300 */ f32 field_0x300;
/* 0x2F8 */ cXyz field_0x2f8;
/* 0x304 */ daPy_demo_c mDemo;
u8 getCutType() const { return mAttackState; }
@@ -97,9 +122,41 @@ public:
s16 getBodyAngleY() { return mBodyAngle.y; }
void changeDemoMoveAngle(s16 angle) { mDemo.setMoveAngle(angle); }
void onPlayerNoDraw() { field_0x29c |= 0x8000000; }
void offPlayerNoDraw() { field_0x29c &= ~0x8000000; }
void onNoResetFlg0(daPy_FLG0 flag) { mNoResetFlg0 |= flag; }
void offNoResetFlg0(daPy_FLG0 flag) { mNoResetFlg0 &= ~flag; }
bool checkNoResetFlg0(daPy_FLG0 flag) const { return mNoResetFlg0 & flag; }
bool getCutAtFlg() const { return checkNoResetFlg0(daPyFlg0_CUT_AT_FLG); }
void onPushPullKeep() { onNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP); }
void offPushPullKeep() { offNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP); }
bool checkEquipHeavyBoots() const { return checkNoResetFlg0(daPyFlg0_EQUIP_HEAVY_BOOTS); }
void onPlayerNoDraw() { onNoResetFlg0(daPyFlg0_NO_DRAW); }
void offPlayerNoDraw() { offNoResetFlg0(daPyFlg0_NO_DRAW); }
void onHeavyState() { onNoResetFlg0(daPyFlg0_HEAVY_STATE); }
void offHeavyState() { offNoResetFlg0(daPyFlg0_HEAVY_STATE); }
void onNoResetFlg1(daPy_FLG1 flag) { mNoResetFlg1 |= flag; }
void offNoResetFlg1(daPy_FLG1 flag) { mNoResetFlg1 &= ~flag; }
bool checkNoResetFlg1(daPy_FLG1 flag) const { return mNoResetFlg1 & flag; }
bool checkEquipDragonShield() const { return checkNoResetFlg1(daPy_FLG1_EQUIP_DRAGON_SHIELD); }
void onNpcCall() { onNoResetFlg1(daPy_FLG1_NPC_CALL_COMMAND); }
void offNpcCallCommand() { offNoResetFlg1(daPy_FLG1_NPC_CALL_COMMAND); }
bool checkNpcCallCommand() const { return checkNoResetFlg1(daPy_FLG1_NPC_CALL_COMMAND); }
void onForceVomitJump() { onNoResetFlg1(daPy_FLG1_FORCE_VOMIT_JUMP); }
void onNpcNotChange() { onNoResetFlg1(daPy_FLG1_NPC_NOT_CHANGE); }
void offNpcNotChange() { offNoResetFlg1(daPy_FLG1_NPC_NOT_CHANGE); }
void onConfuse() { onNoResetFlg1(daPy_FLG1_CONFUSE); }
void offConfuse() { offNoResetFlg1(daPy_FLG1_CONFUSE); }
bool checkConfuse() const { return checkNoResetFlg1(daPy_FLG1_CONFUSE); }
void onShipTact() { onNoResetFlg1(daPy_FLG1_SHIP_TACT); }
void offShipTact() { offNoResetFlg1(daPy_FLG1_SHIP_TACT); }
void onUseArrowEffect() { onNoResetFlg1(daPy_FLG1_USE_ARROW_EFFECT); }
void offUseArrowEffect() { offNoResetFlg1(daPy_FLG1_USE_ARROW_EFFECT); }
void onLetterReadEyeMove() { onNoResetFlg1(daPy_FLG1_LETTER_READ_EYE_MOVE); }
bool checkForestWaterUse() const { return checkNoResetFlg1(daPy_FLG1_FOREST_WATER_USE); }
void onWaterDrop() { onNoResetFlg1(daPy_FLG1_WATER_DROP); }
void onVineCatch() { onNoResetFlg1(daPy_FLG1_VINE_CATCH); }
bool checkLastComboWait() const { return checkNoResetFlg1(daPy_FLG1_LAST_COMBO_WAIT); }
virtual MtxP getLeftHandMatrix() = 0;
virtual MtxP getRightHandMatrix() = 0;
virtual void getGroundY() = 0;
@@ -133,7 +190,7 @@ public:
virtual void setHookshotCarryOffset(unsigned int, const cXyz*);
virtual void setPlayerPosAndAngle(cXyz*, s16);
virtual void setPlayerPosAndAngle(cXyz*, csXyz*);
virtual void setPlayerPosAndAngle(float (*)[4]);
virtual void setPlayerPosAndAngle(MtxP);
virtual void setThrowDamage(cXyz*, s16, f32, f32, int);
virtual void changeTextureAnime(u16, u16, int);
virtual void cancelChangeTextureAnime();
@@ -148,8 +205,6 @@ public:
void setDoButtonQuake();
void stopDoButtonQuake(int);
void getRopePos() const;
BOOL checkConfuse() { return field_0x2a0 & 0x100; }
};
#endif /* D_A_PLAYER */
+2
View File
@@ -220,6 +220,7 @@ public:
u8 GetHitMark() { return mHitMark; }
void SetRVec(cXyz& vec) { mRVec = vec; }
cXyz* GetVecP() { return &mVec; }
cXyz* GetRVecP() { return &mRVec; }
void SetHitPos(cXyz& pos) { mHitPos = pos; }
cXyz* GetHitPosP() { return &mHitPos; }
inline void ClrHit() { ClrActorInfo(); }
@@ -294,6 +295,7 @@ public:
bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); }
cXyz* GetAtVecP() { return mGObjAt.GetVecP(); }
cXyz* GetTgVecP() { return mGObjTg.GetVecP(); }
cXyz* GetTgRVecP() { return mGObjTg.GetRVecP(); }
void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); }
void SetAtHitCallback(dCcD_HitCallback callback) { mGObjAt.SetHitCallback(callback); }
void SetTgHitCallback(dCcD_HitCallback callback) { mGObjTg.SetHitCallback(callback); }
+5
View File
@@ -330,6 +330,7 @@ public:
fopAc_ac_c* getPlayerPtr(int idx) { return (fopAc_ac_c*)mpPlayerPtr[idx]; }
fopAc_ac_c* getPlayer(int idx) { return (fopAc_ac_c*)mpPlayer[idx]; }
void setPlayer(int idx, fopAc_ac_c* player) { mpPlayer[idx] = (daPy_py_c*)player; }
s8 getPlayerCameraID(int idx) { return mCurCamera[idx]; }
int getItemRupeeCount() { return mItemRupeeCount; }
@@ -1041,6 +1042,10 @@ inline fopAc_ac_c* dComIfGp_getPlayer(int idx) {
return g_dComIfG_gameInfo.play.getPlayer(idx);
}
inline void dComIfGp_setPlayer(int idx, fopAc_ac_c* player) {
g_dComIfG_gameInfo.play.setPlayer(idx, player);
}
inline fopAc_ac_c* dComIfGp_getCb1Player() {
return g_dComIfG_gameInfo.play.getPlayerPtr(1);
}
+2 -2
View File
@@ -222,7 +222,7 @@ public:
virtual void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8);
};
class dPa_windPcallBack : JPACallBackBase2<JPABaseEmitter*, JPABaseParticle*> {
class dPa_windPcallBack : public JPACallBackBase2<JPABaseEmitter*, JPABaseParticle*> {
public:
dPa_windPcallBack();
virtual ~dPa_windPcallBack() {}
@@ -240,7 +240,7 @@ public:
virtual void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8);
};
class dPa_ripplePcallBack : JPACallBackBase2<JPABaseEmitter*, JPABaseParticle*> {
class dPa_ripplePcallBack : public JPACallBackBase2<JPABaseEmitter*, JPABaseParticle*> {
public:
dPa_ripplePcallBack();
virtual ~dPa_ripplePcallBack() {}
+16 -16
View File
@@ -53,15 +53,15 @@ u8 daAgb_c::mShop;
/* 800CF5EC-800CF6B8 .text __ct__11daAgb_HIO_cFv */
daAgb_HIO_c::daAgb_HIO_c() {
field_0x04[0].r = 0;
field_0x04[0].g = 255;
field_0x04[0].b = 0;
field_0x04[0].a = 255;
field_0x04[0].mColor.r = 0;
field_0x04[0].mColor.g = 255;
field_0x04[0].mColor.b = 0;
field_0x04[0].mColor.a = 255;
field_0x04[1].r = 0;
field_0x04[1].g = 30;
field_0x04[1].b = 0;
field_0x04[1].a = 0;
field_0x04[1].mColor.r = 0;
field_0x04[1].mColor.g = 30;
field_0x04[1].mColor.b = 0;
field_0x04[1].mColor.a = 0;
field_0x14 = 24.0f;
field_0x18 = 50.0f;
@@ -678,7 +678,7 @@ void daAgb_c::GbaItemUse() {
}
if ((var_r28 == 0xC || var_r28 == 0xD) &&
(daPy_getPlayerLinkActorClass()->field_0x2a0 & 1))
(daPy_getPlayerLinkActorClass()->checkEquipDragonShield()))
{
var_r28 = 0xA;
}
@@ -760,14 +760,14 @@ void daAgb_c::GbaItemUse() {
return;
case 3:
daPy_lk_c* temp_r3 = daPy_getPlayerLinkActorClass();
temp_r3->field_0x29c |= 0x1000;
temp_r3->onNoResetFlg0(daPy_py_c::daPyFlg0_UNK1000);
temp_r3->field_0x354c = 0x96;
resetCursor(false);
field_0x65c = 0x96;
mBrk.setPlaySpeed(6.0f);
break;
case 0x12:
if (daPy_getPlayerLinkActorClass()->field_0x2a0 & 1) {
if (daPy_getPlayerLinkActorClass()->checkEquipDragonShield()) {
mEffect = 0;
return;
} else {
@@ -776,7 +776,7 @@ void daAgb_c::GbaItemUse() {
}
break;
case 4:
if (daPy_getPlayerLinkActorClass()->field_0x2a0 & 1) {
if (daPy_getPlayerLinkActorClass()->checkEquipDragonShield()) {
mEffect = 0;
return;
} else {
@@ -792,9 +792,9 @@ void daAgb_c::GbaItemUse() {
return;
} else {
daPy_lk_c* temp_r4 = daPy_getPlayerLinkActorClass();
temp_r4->field_0x29c |= 0x1000;
temp_r4->onNoResetFlg0(daPy_py_c::daPyFlg0_UNK1000);
temp_r4->field_0x354c = 300;
if (!(daPy_getPlayerLinkActorClass()->field_0x2a0 & 1)) {
if (!(daPy_getPlayerLinkActorClass()->checkEquipDragonShield())) {
temp_r4->field_0x354e = 300;
}
@@ -808,7 +808,7 @@ void daAgb_c::GbaItemUse() {
mEffect = BigLittleChange((field_0x660 << 0x10) | 0x300);
return;
} else {
if ((daPy_getPlayerLinkActorClass()->field_0x2a0 & 1)) {
if ((daPy_getPlayerLinkActorClass()->checkEquipDragonShield())) {
mEffect = 0;
return;
}
@@ -953,7 +953,7 @@ 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->field_0x29c |= 0x1000;
player_p->onNoResetFlg0(daPy_py_c::daPyFlg0_UNK1000);
player_p->field_0x354c = 10;
} else if (i_this->field_0x66b == 4 || i_this->field_0x66b == 13 ||
i_this->field_0x66b == 12)
+1 -1
View File
@@ -321,7 +321,7 @@ void daObjTpost_c::cutDispLetterStart(int staffIdx) {
void daObjTpost_c::cutDispLetterProc(int staffIdx) {
u16 mode = talk(0);
if(mode == 5) {
daPy_getPlayerActorClass()->field_0x2a0 |= 0x4000; // may be a onLetterReadEyeMove__9daPy_py_cFv inline based on debug map
daPy_getPlayerActorClass()->onLetterReadEyeMove();
}
if(mode == dNpcMsgStts_BOX_CLOSED_e) {
dComIfGp_evmng_cutEnd(staffIdx);
+73 -25
View File
@@ -5,54 +5,102 @@
#include "dolphin/types.h"
#include "d/actor/d_a_player.h"
#include "f_op/f_op_camera_mng.h"
/* 801028FC-80102940 .text changePlayer__9daPy_py_cFP10fopAc_ac_c */
void daPy_py_c::changePlayer(fopAc_ac_c*) {
/* Nonmatching */
void daPy_py_c::changePlayer(fopAc_ac_c* newPlayer) {
if (!newPlayer) {
return;
}
if (dComIfGp_roomControl_getStayNo() != newPlayer->getRoomNo()) {
return;
}
dComIfGp_setPlayer(0, newPlayer);
dComIfGp_getCamera(0)->mCamera.mpPlayerActor = newPlayer;
dComIfGp_getAttention().mFlags |= 0x80;
}
/* 80102940-80102B84 .text objWindHitCheck__9daPy_py_cFP8dCcD_Cyl */
void daPy_py_c::objWindHitCheck(dCcD_Cyl*) {
/* Nonmatching */
void daPy_py_c::objWindHitCheck(dCcD_Cyl* cyl) {
cXyz targetSpeed(0.0f, 0.0f, 0.0f);
f32 maxStep = 3.0f;
if (cyl->ChkTgHit()) {
cCcD_Obj* hitObj = cyl->GetTgHitObj();
if (hitObj && hitObj->GetAtType() & AT_TYPE_LEAF_WIND) {
targetSpeed = *cyl->GetTgRVecP();
f32 distXZ = cyl->GetTgRVecP()->absXZ();
maxStep = 1.0f;
if (distXZ < 1.0f) {
targetSpeed = (current.pos - *cyl->GetTgHitPosP()) * 30.0f;
distXZ = targetSpeed.absXZ();
}
if (distXZ > 30.0f) {
targetSpeed *= 30.0f / distXZ;
}
}
}
cLib_addCalc(&field_0x2f8.x, targetSpeed.x, 0.5f, maxStep, 0.5f);
cLib_addCalc(&field_0x2f8.z, targetSpeed.z, 0.5f, maxStep, 0.5f);
current.pos.x += field_0x2f8.x;
current.pos.z += field_0x2f8.z;
}
/* 80102B84-80102BB4 .text execute__25daPy_mtxFollowEcallBack_cFP14JPABaseEmitter */
void daPy_mtxFollowEcallBack_c::execute(JPABaseEmitter*) {
/* Nonmatching */
void daPy_mtxFollowEcallBack_c::execute(JPABaseEmitter* emitter) {
emitter->setGlobalRTMatrix(mpMtx);
}
/* 80102BB4-80102BF8 .text end__25daPy_mtxFollowEcallBack_cFv */
void daPy_mtxFollowEcallBack_c::end() {
/* Nonmatching */
if (!mpEmitter) {
return;
}
mpEmitter->becomeInvalidEmitter();
mpEmitter->quitImmortalEmitter();
mpEmitter->setEmitterCallBackPtr(NULL);
mpEmitter = NULL;
}
/* 80102BF8-80102C84 .text makeEmitter__25daPy_mtxFollowEcallBack_cFUsPA4_fPC4cXyzPC4cXyz */
void daPy_mtxFollowEcallBack_c::makeEmitter(unsigned short, float(*)[4], const cXyz*, const cXyz*) {
/* Nonmatching */
void daPy_mtxFollowEcallBack_c::makeEmitter(u16 particleID, MtxP mtx, const cXyz* pos, const cXyz* scale) {
end();
mpMtx = mtx;
dComIfGp_particle_setP1(particleID, pos, NULL, scale, 0xFF, this, -1, NULL, NULL, NULL);
}
/* 80102C84-80102D14 .text makeEmitterColor__25daPy_mtxFollowEcallBack_cFUsPA4_fPC4cXyzPC8_GXColorPC8_GXColor */
void daPy_mtxFollowEcallBack_c::makeEmitterColor(unsigned short, float(*)[4], const cXyz*, const _GXColor*, const _GXColor*) {
/* Nonmatching */
void daPy_mtxFollowEcallBack_c::makeEmitterColor(u16 particleID, MtxP mtx, const cXyz* pos, const _GXColor* prmColor, const _GXColor* envColor) {
end();
mpMtx = mtx;
dComIfGp_particle_setP1(particleID, pos, NULL, NULL, 0xFF, this, -1, prmColor, envColor, NULL);
}
/* 80102D14-80102D90 .text setDoButtonQuake__9daPy_py_cFv */
void daPy_py_c::setDoButtonQuake() {
/* Nonmatching */
if (checkNoResetFlg0(daPyFlg0_UNK200000)) {
return;
}
onNoResetFlg0(daPyFlg0_UNK200000);
mQuakeTimer = 60;
// u8 temp[4] = {0x00, 0x10, 0xFF, 0xEE}; // Doesn't match
u32 temp2 = 0x0010FFEE;
u8* temp = (u8*)&temp2;
dComIfGp_getVibration().StartQuake(temp, 0, 1, cXyz(0.0f, 1.0f, 0.0f));
}
/* 80102D90-80102E18 .text stopDoButtonQuake__9daPy_py_cFi */
void daPy_py_c::stopDoButtonQuake(int) {
/* Nonmatching */
void daPy_py_c::stopDoButtonQuake(int param_1) {
if (mQuakeTimer > 0) {
mQuakeTimer--;
if (mQuakeTimer == 0) {
dComIfGp_getVibration().StopQuake(-1);
}
}
if (param_1 && mQuakeTimer == 0) {
mNoResetFlg0 &= ~0x00200000;
}
}
/* 80102E18-80102E84 .text __dt__25daPy_mtxFollowEcallBack_cFv */
daPy_mtxFollowEcallBack_c::~daPy_mtxFollowEcallBack_c() {
/* Nonmatching */
}
/* 80102E84-80102E8C .text setup__25daPy_mtxFollowEcallBack_cFP14JPABaseEmitterPC4cXyzPC5csXyzSc */
void daPy_mtxFollowEcallBack_c::setup(JPABaseEmitter*, const cXyz*, const csXyz*, signed char) {
/* Nonmatching */
}
+11 -11
View File
@@ -42,10 +42,10 @@ void dComIfG_play_c::ct() {
mpTreePacket = NULL;
mpWoodPacket = NULL;
mpFlowerPacket = NULL;
field_0x4A64[0] = 0xFF;
field_0x4A64[1] = 0xFF;
mLastSeaRoom = 0xFF;
field_0x4A67[0] = 0xFF;
mShipId = 0xFF;
mShipRoomId = 0xFF;
mIkadaShipBeforeRoomId = 0xFF;
mIkadaShipId = 0xFF;
mIkadaLinkPos.set(0.0f, 0.0f, 0.0f);
mLkDArcIdx = -1;
@@ -566,8 +566,8 @@ dStage_Ship_data* dComIfGp_getShip(int i_roomNo, int param_1) {
return NULL;
}
dStage_Ship_c* ship_p = roomSt_p->mRoomDt.getShip();
if (ship_p == NULL || ship_p->m_num <= 0 || param_1 == 0xFF) {
dStage_Ship_c* ship_p = roomSt_p->getShip();
if (ship_p == NULL || ship_p->num <= 0 || param_1 == 0xFF) {
return NULL;
}
@@ -576,7 +576,7 @@ dStage_Ship_data* dComIfGp_getShip(int i_roomNo, int param_1) {
return NULL;
}
for (int i = 0; i < ship_p->m_num; i++) {
for (int i = 0; i < ship_p->num; i++) {
if (param_1 == data_p->field_0xe) {
return data_p;
}
@@ -595,7 +595,7 @@ bool dComIfGp_getMapTrans(int i_roomNo, f32* o_transX, f32* o_transY, s16* o_ang
}
dStage_Mult_info* data_p = multi_p->m_entries;
for (int i = 0; i < multi_p->m_num; i++) {
for (int i = 0; i < multi_p->num; i++) {
if (i_roomNo == data_p->mRoomNo) {
*o_transX = data_p->mTransX;
*o_transY = data_p->mTransY;
@@ -636,15 +636,15 @@ void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8
g_dComIfG_gameInfo.play.setNextStage(i_stageName, i_roomNo, i_point, i_layer, i_wipe);
if (daPy_getPlayerLinkActorClass() != NULL) {
u32 mode = daPy_getPlayerLinkActorClass()->field_0x2a0;
u32 mode = daPy_getPlayerLinkActorClass()->mNoResetFlg1;
if (mode & 1) {
if (mode & daPy_lk_c::daPy_FLG1_EQUIP_DRAGON_SHIELD) {
i_lastMode |= 0x8000;
}
i_lastMode |= daPy_getPlayerLinkActorClass()->field_0x354e << 0x10;
if (mode & 0x8000) {
if (mode & daPy_lk_c::daPy_FLG1_UNK8000) {
i_lastMode |= 0x4000;
}
}