d_a_alink_effect mostly done (#2227)

* d_a_alink_effect work

* more d_a_alink_effect work

* some d_a_alink data cleanup

* d_a_alink_effect mostly done
This commit is contained in:
TakaRikka 2024-10-28 04:00:15 -07:00 committed by GitHub
parent f5e80cf9fd
commit b1d7bc9cc4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 2360 additions and 835 deletions

View File

@ -132,6 +132,7 @@ public:
void setGlobalRotation(const JGeometry::TVec3<s16>& rot) {
JPAGetXYZRotateMtx(rot.x, rot.y, rot.z, mGlobalRot);
}
void getGlobalTranslation(JGeometry::TVec3<f32>* out) const { out->set(mGlobalTrs); }
void setGlobalDynamicsScale(const JGeometry::TVec3<f32>& i_scale) { mGlobalScl.set(i_scale); }
void setGlobalAlpha(u8 alpha) { mGlobalPrmClr.a = alpha; }
u8 getGlobalAlpha() { return mGlobalPrmClr.a; }
@ -140,6 +141,12 @@ public:
void setGlobalEnvColor(u8 r, u8 g, u8 b) { mGlobalEnvClr.r = r; mGlobalEnvClr.g = g; mGlobalEnvClr.b = b; }
void setVolumeSize(u16 size) { mVolumeSize = size; }
void setLifeTime(s16 lifetime) { mLifeTime = lifetime; }
void setAwayFromCenterSpeed(f32 i_speed) { mAwayFromCenterSpeed = i_speed; }
void setAwayFromAxisSpeed(f32 i_speed) { mAwayFromAxisSpeed = i_speed; }
void setSpread(f32 i_spread) { mSpread = i_spread; }
void setLocalTranslation(const JGeometry::TVec3<f32>& i_trans) { mLocalTrs.set(i_trans); }
void setLocalRotation(const JGeometry::TVec3<s16>& i_rot) { mLocalRot.set(i_rot.x * 0.005493248f, i_rot.y * 0.005493248f, i_rot.z * 0.005493248f); }
void setRateStep(u8 i_step) { mRateStep = i_step; }
void setGlobalParticleHeightScale(f32 height) {
mGlobalPScl.y = height;

View File

@ -163,6 +163,10 @@ struct TParseData : public data::TParse_TParagraph_data::TData {
set(data);
}
TParseData() {
set(NULL);
}
void set(const data::TParse_TParagraph_data& data) {
data.getData(this);
}
@ -183,6 +187,7 @@ struct TParseData : public data::TParse_TParagraph_data::TData {
template <int T, class Iterator=JGadget::binary::TValueIterator_raw<u8> >
struct TParseData_fixed : public TParseData<T> {
TParseData_fixed(const void* pContent) : TParseData<T>(pContent) {}
TParseData_fixed() : TParseData<T>() {}
const void* getNext() const {
return fileCount;

View File

@ -35,13 +35,18 @@ public:
/* 800CFE68 */ virtual ~daAlink_lockCursor_c() {}
void initFrame() {
field_0x4 = false;
field_0x4 = 0;
field_0x2c = 4.0f;
field_0x30 = 0.0f;
}
void setPos(f32 i_posX, f32 i_posY) {
mPosX = i_posX;
mPosY = i_posY;
}
private:
/* 0x04 */ bool field_0x4;
/* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 field_0x5[3];
/* 0x08 */ J2DScreen* mScrn;
/* 0x0C */ J2DPane* field_0xc;
@ -54,8 +59,8 @@ private:
/* 0x28 */ J2DAnmTransformKey* field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x34 */ f32 mPosX;
/* 0x38 */ f32 mPosY;
};
class daAlink_sight_c : public daPy_sightPacket_c {
@ -86,16 +91,16 @@ public:
/* 800CFD58 */ virtual ~daAlink_blur_c() {}
// private:
/* 0x010 */ void* m_blurTex;
/* 0x010 */ ResTIMG* m_blurTex;
/* 0x014 */ int field_0x14;
/* 0x018 */ u8 field_0x18[4];
/* 0x01C */ int field_0x1c;
/* 0x020 */ u8 field_0x20[4];
/* 0x020 */ int field_0x20;
/* 0x024 */ f32 field_0x24;
/* 0x028 */ u8 field_0x28[4];
/* 0x02C */ cXyz field_0x2c;
/* 0x038 */ cXyz field_0x38[0x3C];
/* 0x308 */ cXyz field_0x308[0x3C];
/* 0x038 */ cXyz field_0x38[60];
/* 0x308 */ cXyz field_0x308[60];
}; // Size = 0x5D8
class dAlink_bottleWaterPcallBack_c : public JPAParticleCallBack {
@ -110,6 +115,12 @@ public:
mKeepMinY = minY;
}
s16 getAppearFlg() const { return mAppearFlg; }
s16 getHitFlg() const { return mHitFlg; }
cXyz& getHitPos() { return mHitPos; }
void onAppearFlg() { mAppearFlg = true; }
private:
/* 0x04 */ s16 mHitFlg;
/* 0x06 */ s16 mAppearFlg;
@ -218,6 +229,7 @@ public:
class daAlink_c;
typedef int (daAlink_c::*daAlink_procFunc)();
typedef void (daAlink_c::*EffParamProc)();
struct daAlink_procInitTable {
/* 0x0 */ daAlink_procFunc m_procFunc;
@ -1257,11 +1269,22 @@ public:
/* 0x4 */ DIR_NONE,
};
enum daAlink_EFFPROC {
EFFPROC_FRONT_ROLL,
EFFPROC_SLIP,
EFFPROC_SMALL_LAND,
EFFPROC_RUN,
EFFPROC_LAND,
EFFPROC_SUMOU,
EFFPROC_NONE,
};
class firePointEff_c {
public:
/* 800CFC3C */ ~firePointEff_c();
/* 800CFC78 */ firePointEff_c();
/* 0x00 */ u8 field_0x0;
/* 0x02 */ u16 field_0x2;
/* 0x04 */ u32 field_0x4;
/* 0x08 */ u32 field_0x8;
/* 0x0C */ cXyz field_0xc;
@ -1277,7 +1300,7 @@ public:
}; // Size: 0x10
/* 8009D87C */ bool getE3Zhint();
/* 8009D884 */ static char* getAlinkArcName();
/* 8009D884 */ static const char* getAlinkArcName();
/* 8009DA60 */ static bool checkStageName(char const*);
/* 8009DA98 */ void tgHitCallback(fopAc_ac_c*, dCcD_GObjInf*, dCcD_GObjInf*);
/* 8009DB64 */ void coHitCallback(fopAc_ac_c*, dCcD_GObjInf*);
@ -3442,22 +3465,21 @@ public:
static daAlink_AnmData const m_anmDataTable[414];
static daAlink_WlAnmData const m_wlAnmDataTable[147];
static daAlink_FaceTexData const m_faceTexDataTable[];
static u8 const m_handLeftOutSidePos[12];
static u8 const m_handRightOutSidePos[12];
static u8 const m_handLeftInSidePos[12];
static u8 const m_handRightInSidePos[12];
static Vec const m_handLeftOutSidePos;
static Vec const m_handRightOutSidePos;
static Vec const m_handLeftInSidePos;
static Vec const m_handRightInSidePos;
static daAlink_procInitTable m_procInitTable[];
static daAlink_procFunc m_demoInitTable[];
static u8 m_fEffParamProc[72];
static EffParamProc m_fEffParamProc[];
/* 0x0062C */ request_of_phase_process_class mPhaseReq;
/* 0x00634 */ char* mArcName;
/* 0x00634 */ const char* mArcName;
/* 0x00638 */ JKRExpHeap* mpArcHeap;
/* 0x0063C */ request_of_phase_process_class mShieldPhaseReq;
/* 0x00644 */ char* mShieldArcName;
/* 0x00644 */ const char* mShieldArcName;
/* 0x00648 */ JKRExpHeap* mpShieldArcHeap;
/* 0x0064C */ J3DModelData* field_0x064C;
/* 0x00650 */ J3DModel* mpLinkModel;
@ -3666,7 +3688,7 @@ public:
/* 0x02F9B */ u8 field_0x2f9b;
/* 0x02F9C */ u8 mSelectItemId;
/* 0x02F9D */ u8 field_0x2f9d;
/* 0x02F9E */ u8 field_0x2f9e;
/* 0x02F9E */ u8 mEffProc;
/* 0x02F9F */ u8 field_0x2f9f;
/* 0x02FA0 */ u8 field_0x2fa0;
/* 0x02FA1 */ u8 mRunCutComboCount;
@ -3905,8 +3927,7 @@ public:
/* 0x031A0 */ u32 mModeFlg;
/* 0x031A4 */ int field_0x31a4;
/* 0x031A8 */ u8 field_0x31a8[8];
/* 0x031B0 */ int field_0x31b0;
/* 0x031B4 */ u8 field_0x31b4[8];
/* 0x031B0 */ u32 field_0x31b0[3];
/* 0x031BC */ u32 field_0x31bc;
/* 0x031C0 */ u32 field_0x31c0;
/* 0x031C4 */ u32 field_0x31c4;
@ -3914,15 +3935,13 @@ public:
/* 0x031CC */ u32 field_0x31cc;
/* 0x031D0 */ u32 field_0x31d0;
/* 0x031D4 */ u32 field_0x31d4;
/* 0x031D8 */ u8 field_0x31d8[12];
/* 0x031D8 */ u32 field_0x31d8[3];
/* 0x031E4 */ u32 field_0x31e4;
/* 0x031E8 */ u8 field_0x31e8[16];
/* 0x031E8 */ u32 field_0x31e8[4];
/* 0x031F8 */ u32 field_0x31f8;
/* 0x031FC */ u32 field_0x31fc;
/* 0x03200 */ u32 field_0x3200;
/* 0x03204 */ u32 field_0x3204;
/* 0x03208 */ u32 field_0x3208;
/* 0x0320C */ u8 field_0x320c[16];
/* 0x03204 */ u32 field_0x3204[6];
/* 0x0321C */ u32 field_0x321c;
/* 0x03220 */ u32 field_0x3220;
/* 0x03224 */ u32 field_0x3224;
@ -3931,17 +3950,18 @@ public:
/* 0x03258 */ u32 field_0x3258;
/* 0x0325C */ u32 field_0x325c;
/* 0x03260 */ u32 field_0x3260[2];
/* 0x03268 */ u8 field_0x3268[0x3288 - 0x3268];
/* 0x03268 */ u32 field_0x3268;
/* 0x0326C */ u32 field_0x326c[4];
/* 0x0327C */ u32 field_0x327c[3];
/* 0x03288 */ u32 field_0x3288;
/* 0x0328C */ u32 field_0x328c;
/* 0x03290 */ u32 field_0x3290;
/* 0x03294 */ u32 field_0x3294;
/* 0x03298 */ u8 field_0x3298[8];
/* 0x03298 */ u32 field_0x3298[2];
/* 0x032A0 */ J3DGXColorS10 field_0x32a0[2];
/* 0x032B0 */ J3DGXColorS10 field_0x32b0[2];
/* 0x032C0 */ s16 field_0x32c0[2];
/* 0x032C4 */ u16 field_0x32c4;
/* 0x032C6 */ u16 field_0x32c6;
/* 0x032C4 */ u16 field_0x32c4[2];
/* 0x032C8 */ u32 field_0x32c8;
/* 0x032CC */ u32 field_0x32cc;
/* 0x032D0 */ u32 field_0x32d0;
@ -4094,6 +4114,15 @@ struct daAlink_cutParamTbl {
/* 0xC */ f32 m_morf;
}; // Size: 0x10
struct daAlink_cutHorseParamTbl {
/* 0x0 */ int field_0x0;
/* 0x4 */ u16 field_0x4;
/* 0x6 */ u16 field_0x6;
/* 0x8 */ u8 field_0x8;
/* 0x9 */ u8 field_0x9;
/* 0xA */ u8 field_0xa;
}; // Size: 0xC
struct daAlinkHIO_anm_c {
/* 0x00 */ s16 mEndFrame;
/* 0x04 */ f32 mSpeed;

View File

@ -50,10 +50,14 @@ public:
/* 80B0FDE4 */ void setAttnPos();
/* 80B0FFD4 */ bool drawDbgInfo();
void setStart() { field_0xd7a = 1; }
static u8 mEvtSeqList[48];
private:
/* 0x568 */ u8 field_0x568[0xd7c - 0x568];
/* 0x568 */ u8 field_0x568[0xd7a - 0x568];
/* 0xD7A */ u8 field_0xd7a;
/* 0xD7B */ u8 field_0xd7b[0xd7c - 0xd7b];
};
STATIC_ASSERT(sizeof(daNpcTkc_c) == 0xd7c);

View File

@ -317,9 +317,11 @@ public:
/* 80B8B530 */ BOOL ECut_searchPrince1(int);
/* 80B8BCE8 */ BOOL ECut_searchPrince2(int);
/* 80B8C3E8 */ void adjustShapeAngle() {}
int getType() { return mType; }
u32 getAngleNoFromParam() { return (u8)(fopAcM_GetParam(this) >> 8); }
void setBlastFlag(u8 i_flag) { mBlastFlag = i_flag; }
MtxP getHeadMtx() { return mpMorf->getModel()->getAnmMtx(4); }
/* 0x0B48 */ Z2Creature mCreatureSound;
/* 0x0BD8 */ J3DModel* mpObjectModel[3];

View File

@ -43,8 +43,12 @@ public:
/* 80D11E94 */ bool drawDbgInfo();
/* 80D11E9C */ void drawOtherMdls();
void setStart() { field_0xde0 = 1; }
private:
/* 0x568 */ u8 field_0x568[0xDE4 - 0x568];
/* 0x568 */ u8 field_0x568[0xDE0 - 0x568];
/* 0xDE0 */ u8 field_0xde0;
/* 0xDE1 */ u8 field_0xde1[0xDE4 - 0xDE1];
};
STATIC_ASSERT(sizeof(daObjTks_c) == 0xDE4);

View File

@ -20,7 +20,6 @@ public:
void offDrawFlg() { mDrawFlag = false; }
void setPos(const cXyz* i_pos) { mPos = *i_pos; }
private:
/* 0x04 */ bool mDrawFlag;
/* 0x05 */ u8 field_0x5[3];
/* 0x08 */ cXyz mPos;
@ -289,7 +288,9 @@ public:
FLG2_UNK_20000000 = 0x20000000,
FLG2_UNK_10000000 = 0x10000000,
FLG2_UNK_4080000 = 0x4080000,
FLG2_UNK_4000000 = 0x4000000,
FLG2_UNK_2080000 = 0x2080000,
FLG2_UNK_2000000 = 0x2000000,
FLG2_BOAR_SINGLE_BATTLE = 0x1800000,
FLG2_UNK_8000000 = 0x8000000,
FLG2_UNK_1000000 = 0x1000000,
@ -341,6 +342,7 @@ public:
FLG3_UNK_4000 = 0x4000,
FLG3_UNK_2000 = 0x2000,
FLG3_UNK_1000 = 0x1000,
FLG3_UNK_800 = 0x800,
FLG3_UNK_400 = 0x400,
FLG3_UNK_200 = 0x200,
FLG3_UNK_100 = 0x100,
@ -350,6 +352,7 @@ public:
FLG3_UNK_10 = 0x10,
FLG3_UNK_8 = 8,
FLG3_UNK_4 = 4,
FLG3_UNK_1 = 1,
};
enum daPy_ERFLG0 {
@ -391,9 +394,12 @@ public:
ERFLG1_UNK_4000000 = 0x4000000,
ERFLG1_UNK_2000000 = 0x2000000,
ERFLG1_UNK_1000000 = 0x1000000,
ERFLG1_UNK_400000 = 0x400000,
ERFLG1_UNK_200000 = 0x200000,
ERFLG1_UNK_100000 = 0x100000,
ERFLG1_UNK_80000 = 0x80000,
ERFLG1_UNK_40000 = 0x40000,
ERFLG1_UNK_20000 = 0x20000,
ERFLG1_UNK_10000 = 0x10000,
ERFLG1_UNK_8000 = 0x8000,
ERFLG1_UNK_4000 = 0x4000,
@ -459,6 +465,10 @@ public:
RFLG1_UNK_80 = 0x80,
RFLG1_UNK_40 = 0x40,
RFLG1_UNK_30 = 0x30,
RFLG1_UNK_20 = 0x20,
RFLG1_UNK_10 = 0x10,
RFLG1_UNK_8 = 0x8,
RFLG1_UNK_4 = 0x4,
RFLG1_UNK_2 = 0x2,
RFLG1_WOLF_ATTACK_REVERSE = 0x1,
@ -802,6 +812,7 @@ public:
void onWolfEyeKeep() { onEndResetFlg1(ERFLG1_WOLF_EYE_KEEP); }
void onFogFade() { onNoResetFlg2(FLG2_UNK_4000); }
BOOL checkStickArrowReset() const { return checkResetFlg0(RFLG0_UNK_1); }
u32 getCutAtFlg() const { return checkNoResetFlg0(FLG0_UNK_40); }
void offWolfEnemyHangBite() { offNoResetFlg2(FLG2_WOLF_ENEMY_HANG_BITE); }
bool onWolfEnemyHangBite(fopAc_ac_c* param_0) { return onWolfEnemyBiteAll(param_0, FLG2_WOLF_ENEMY_HANG_BITE); }
@ -870,6 +881,7 @@ public:
cXyz* getLeftHandPosP() { return &mLeftHandPos; }
cXyz* getRightHandPosP() { return &mRightHandPos; }
cXyz* getHeadTopPosP() { return &mHeadTopPos; }
u32 checkWolf() const { return checkNoResetFlg1(FLG1_IS_WOLF); }
u32 checkEquipHeavyBoots() const { return checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); }

View File

@ -32,6 +32,7 @@ public:
bool checkShieldType(int i) { return getType(i) == 3; }
s8 getType(int i) { return mData[i].mType; }
int getJntNum(int i) { return mData[i].mJntNum; }
/* 0x00 */ const dJntColData_c* mData;
/* 0x04 */ J3DModel* mModel;

View File

@ -414,36 +414,48 @@ public:
}
static JPAEmitterManager* getEmitterManager() { return mEmitterMng; }
static JPAParticleCallBack* getLight8PcallBack() {
return &mLight8PcallBack;
}
static JPAParticleCallBack* getGen_b_Light8PcallBack() {
return &m_b_Light8PcallBack;
}
static JPAParticleCallBack* getGen_d_Light8PcallBack() {
return &m_d_Light8PcallBack;
}
static dPa_gen_b_light8EcallBack* getGen_b_Light8EcallBack() {
return &m_b_Light8EcallBack;
}
static dPa_gen_d_light8EcallBack* getGen_d_Light8EcallBack() {
return &m_d_Light8EcallBack;
}
static dPa_light8EcallBack* getLight8EcallBack() {
return &mLight8EcallBack;
}
static JPAParticleCallBack* getParticleTracePCB() {
return &mParticleTracePCB;
}
static JPAParticleCallBack* getFsenthPcallBack() {
return &mFsenthPcallBack;
}
static JPAParticleCallBack* getWaterBubblePcallBack() {
return &mWaterBubblePcallBack;
}
static dPa_selectTexEcallBack mTsubo[8];
static u8 mLifeBall[24];
static Mtx mWindViewMatrix;
static JPAEmitterManager* mEmitterMng;
static u8 mWaterBubblePcallBack[4];
static JPAParticleCallBack mWaterBubblePcallBack;
static JPAParticleCallBack mFsenthPcallBack;
static dPa_light8EcallBack mLight8EcallBack;
static JPAParticleCallBack mLight8PcallBack;

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,9 @@
#include "d/actor/d_a_horse.h"
#include "d/actor/d_a_midna.h"
#include "d/actor/d_a_e_wb.h"
#include "d/actor/d_a_npc_zra.h"
#include "d/actor/d_a_obj_tks.h"
#include "d/actor/d_a_npc_tkc.h"
/* 80115C20-80115C50 110560 0030+00 72/72 0/0 0/0 .text checkEventRun__9daAlink_cCFv */
BOOL daAlink_c::checkEventRun() const {
@ -506,10 +509,55 @@ void daAlink_c::setDemoMoveData(u32* param_0, cXyz const* param_1) {
mDemo.setMoveAngle(sp20.atan2sX_Z());
}
/* 80117064-801171F4 1119A4 0190+00 1/1 0/0 0/0 .text setNoDrawSwordShield__9daAlink_cFiUs */
void daAlink_c::setNoDrawSwordShield(int param_0, u16 param_1) {
// NONMATCHING
if (param_0 == 5) {
if (param_1 == 2) {
offNoResetFlg2(FLG2_UNK_2000000);
onNoResetFlg3(FLG3_UNK_80000000);
} else if (param_1 == 1) {
onNoResetFlg2(FLG2_UNK_2000000);
offNoResetFlg3(FLG3_UNK_80000000);
} else {
offNoResetFlg2(FLG2_UNK_2000000);
offNoResetFlg3(FLG3_UNK_80000000);
}
} else if (param_0 == 6) {
if (param_1 != 0) {
onNoResetFlg2(FLG2_UNK_4000000);
} else {
offNoResetFlg2(FLG2_UNK_4000000);
}
} else if (param_0 == 3) {
if (param_1 == 1) {
onEndResetFlg0(ERFLG0_UNK_800000);
} else if (param_1 == 2) {
onEndResetFlg1(ERFLG1_UNK_80000);
} else if (param_1 == 3) {
onEndResetFlg1(ERFLG1_UNK_400000);
}
} else {
if (param_0 == 7) {
if (param_1 == 1) {
onNoResetFlg0(FLG0_PLAYER_NO_DRAW);
} else {
offNoResetFlg0(FLG0_PLAYER_NO_DRAW);
}
} else if (param_0 == 8) {
if (param_1 == 1) {
onNoResetFlg3(FLG3_UNK_1000000);
} else {
offNoResetFlg3(FLG3_UNK_1000000);
}
} else if (param_0 == 9) {
if (param_1 == 1) {
onNoResetFlg2(FLG2_PLAYER_SHADOW);
} else {
offNoResetFlg2(FLG2_PLAYER_SHADOW);
}
}
}
}
/* 801171F4-80117B90 111B34 099C+00 1/1 0/0 0/0 .text setDemoData__9daAlink_cFv */
@ -828,7 +876,6 @@ void daAlink_c::resetSpecialEvent() {
}
/* 80117CF8-801180EC 112638 03F4+00 4/4 0/0 0/0 .text endDemoMode__9daAlink_cFv */
// NONMATCHING - one wrong branch
void daAlink_c::endDemoMode() {
BOOL temp_r30 = checkFlyAtnWait();
endHighModel();
@ -896,16 +943,12 @@ void daAlink_c::endDemoMode() {
commonCheckNextAction(0);
} else if (mProcID == PROC_HAWK_CATCH || mProcID == PROC_HAWK_SUBJECT) {
procHawkSubjectInit();
} else if (mProcID != PROC_GRASS_WHISTLE_WAIT) {
if (mDemo.getDemoMode() == 0x2D && mProcID == PROC_WARP) {
return;
}
if (mProcID == PROC_TALK && dComIfGp_checkPlayerStatus0(0, 0x8000000)) {
procWolfLieMoveInit(0);
} else {
checkWaitAction();
}
} else if (mProcID == PROC_GRASS_WHISTLE_WAIT || (mDemo.getDemoMode() != 0x2D && mProcID == PROC_WARP)) {
return;
} else if (mProcID == PROC_TALK && dComIfGp_checkPlayerStatus0(0, 0x8000000)) {
procWolfLieMoveInit(0);
} else {
checkWaitAction();
}
} else if (mProcID == PROC_CAUGHT) {
if (checkModeFlg(0x40000)) {
@ -1219,15 +1262,46 @@ void daAlink_c::setDeadRideSyncPos() {
/* 80118C98-80118D7C 1135D8 00E4+00 5/5 0/0 0/0 .text checkDeadHP__9daAlink_cFv */
BOOL daAlink_c::checkDeadHP() {
return ((dComIfGs_getLife() == 0 && !checkResetFlg0(RFLG0_UNK_400)) &&
!dComIfGs_checkBottle(FAIRY)) ||
return ((dComIfGs_getLife() == 0 && !checkResetFlg0(RFLG0_UNK_400)) && !dComIfGs_checkBottle(FAIRY)) ||
checkNoResetFlg2(FLG2_FORCE_GAMEOVER) ||
(dComIfGp_getOxygenShowFlag() && dComIfGp_getNowOxygen() == 0);
}
/* 80118D7C-80118FF8 1136BC 027C+00 3/3 0/0 0/0 .text checkDeadAction__9daAlink_cFi */
BOOL daAlink_c::checkDeadAction(int param_0) {
// NONMATCHING
if (!checkEventRun()) {
if (checkDeadHP() && mProcID != PROC_HORSE_RIDE && mProcID != PROC_HORSE_GETOFF && mProcID != PROC_LARGE_DAMAGE && mProcID != PROC_LARGE_DAMAGE_WALL && (param_0 || (mProcID != PROC_LARGE_DAMAGE_UP && mProcID != PROC_WOLF_LARGE_DAMAGE_UP))) {
if (mLinkAcch.i_ChkGroundHit() || checkModeFlg(0x40000) || checkBoarRide() || (checkHorseRide() && !dComIfGp_getHorseActor()->checkJump())) {
return procCoDeadInit(1);
}
if (!checkHorseRide()) {
if (checkMagneBootsOn() && !cancelMagneBootsOn()) {
return procCoDeadInit(1);
}
offCargoCarry();
int var_r29;
if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && -1000000000.0f != mLinkAcch.GetGroundH()) {
var_r29 = dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd);
} else {
var_r29 = 0x3F;
}
if (((var_r29 != 0x3F || mExitID != 0x3F) && field_0x3174 == 5 && field_0x33c8 - current.pos.y > 500.0f) || ((mExitID & 0x8000) && checkModeFlg(2))) {
onNoResetFlg2(FLG2_FORCE_GAMEOVER);
return procCoDeadInit(0);
}
return commonFallInit(1);
}
} else if (dComIfGs_getLife() == 0 && !checkResetFlg0(RFLG0_UNK_400) && dComIfGs_checkBottle(FAIRY)) {
makeFairy(&current.pos, 0);
dComIfGs_setBottleItemIn(FAIRY, EMPTY_BOTTLE);
}
}
return 0;
}
@ -1255,7 +1329,7 @@ void daAlink_c::setHighModelFaceBtk(u16 i_anmID) {
J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(
dStage_roomControl_c::getDemoArcName(), i_anmID);
if (btk != NULL && field_0x068c != btk) {
if (btk && field_0x068c != btk) {
btk->searchUpdateMaterialID(mpDemoFCTongueModel->getModelData());
mpDemoFCTongueModel->getModelData()->entryTexMtxAnimator(btk);
@ -1351,16 +1425,18 @@ f32 daAlink_c::setStickAnmData(J3DAnmBase* i_anm, int param_1, int param_2, u16
return var_f31;
}
/* ############################################################################################## */
/* 804256B8-804256CC 0523D8 0014+00 1/1 0/0 0/0 .bss dummy$36763 */
static u8 dummy[20];
/* 80119464-801195C0 113DA4 015C+00 1/1 0/0 0/0 .text
* daAlink_c_getDemoIDData__FP13dDemo_actor_cPiPiPiPUsPiPi */
static int daAlink_c_getDemoIDData(dDemo_actor_c* param_0, int* param_1, int* param_2,
int* param_3, u16* param_4, int* param_5, int* param_6) {
// NONMATCHING
static u8 dummy[20];
/* JStudio::stb::TParseData_fixed<51> sp50((void*)param_0->getPrm()->getData());
static JStudio::stb::TParseData_fixed<51> dummy;
static JGadget::binary::TValueIterator_raw<u32> it(sp50); */
return 0;
}
@ -3375,8 +3451,30 @@ int daAlink_c::procZoraMoveInit() {
/* 8011DB9C-8011DDD4 1184DC 0238+00 1/0 0/0 0/0 .text procZoraMove__9daAlink_cFv */
int daAlink_c::procZoraMove() {
// NONMATCHING
return 0;
dComIfGp_evmng_cutEnd(field_0x3184);
fopAc_ac_c* temp_r29 = dComIfGp_event_getPt1();
field_0x2f99 = 0x60;
if (temp_r29 != NULL) {
cXyz sp14;
cXyz sp8;
mDoMtx_stack_c::copy(((daNpc_zrA_c*)temp_r29)->getHeadMtx());
mDoMtx_stack_c::YrotM(-0x4000);
mDoMtx_stack_c::transM(0.0f, 30.0f, -90.0f);
mDoMtx_stack_c::multVecZero(&current.pos);
mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &sp14);
mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &sp8);
shape_angle.y = temp_r29->shape_angle.y;
if (sp8.y < 0.0f) {
shape_angle.x = cM_atan2s(-sp14.y, -sp14.absXZ());
} else {
shape_angle.x = sp14.atan2sY_XZ();
}
}
return 1;
}
/* 8011DDD4-8011DED8 118714 0104+00 1/0 0/0 0/0 .text procLookAroundTurnInit__9daAlink_cFv */
@ -3403,7 +3501,6 @@ int daAlink_c::procLookAroundTurnInit() {
return 1;
}
/* 8011DED8-8011DF68 118818 0090+00 1/0 0/0 0/0 .text procLookAroundTurn__9daAlink_cFv */
int daAlink_c::procLookAroundTurn() {
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
@ -3859,8 +3956,26 @@ int daAlink_c::procDungeonWarpReadyInit() {
/* 8011EFB8-8011F084 1198F8 00CC+00 1/0 0/0 0/0 .text procDungeonWarpReady__9daAlink_cFv
*/
int daAlink_c::procDungeonWarpReady() {
// NONMATCHING
return 0;
if (mProcVar2.field_0x300c != 0) {
fopAc_ac_c* temp_r3 = fopAcM_SearchByID(field_0x32cc);
if (temp_r3 != NULL) {
field_0x280c.setData(temp_r3);
if (fopAcM_GetName(temp_r3) == PROC_OBJ_TKS) {
((daObjTks_c*)temp_r3)->setStart();
} else {
((daNpcTkc_c*)temp_r3)->setStart();
}
}
} else if (checkAnmEnd(&mUnderFrameCtrl[0])) {
setSingleAnimeBase(ANM_TRADE_ITEM_WAIT);
onModeFlg(0x100);
mProcVar2.field_0x300c = 1;
} else {
setTradeItemOutHand();
}
return 1;
}
/* 8011F084-8011F0F4 1199C4 0070+00 1/0 0/0 0/0 .text procDungeonWarpInit__9daAlink_cFv

File diff suppressed because it is too large Load Diff

View File

@ -160,67 +160,13 @@ BOOL daAlink_c::checkGrabRooster() {
return false;
}
/* ############################################################################################## */
/* 80425628-80425634 052348 000C+00 0/1 0/0 0/0 .bss @4421 */
#pragma push
#pragma force_active on
static u8 lit_4421[12];
#pragma pop
/* 80425634-80425640 052354 000C+00 2/3 0/0 0/0 .bss l_wolfRopeBaseAnime */
static Vec l_wolfRopeBaseAnime;
/* 80425640-8042564C 052360 000C+00 0/1 0/0 0/0 .bss @14255 */
#pragma push
#pragma force_active on
static u8 lit_14255[12];
#pragma pop
/* 8042564C-80425658 05236C 000C+00 0/1 0/0 0/0 .bss grabCarryOffset0$14254 */
#pragma push
#pragma force_active on
static u8 grabCarryOffset0[12];
#pragma pop
/* 80425658-80425664 052378 000C+00 0/1 0/0 0/0 .bss @14259 */
#pragma push
#pragma force_active on
static u8 lit_14259[12];
#pragma pop
/* 80425664-80425670 052384 000C+00 0/1 0/0 0/0 .bss grabCarryOffset1$14258 */
#pragma push
#pragma force_active on
static u8 grabCarryOffset1[12];
#pragma pop
/* 80425670-8042567C 052390 000C+00 0/1 0/0 0/0 .bss @14263 */
#pragma push
#pragma force_active on
static u8 lit_14263[12];
#pragma pop
/* 8042567C-80425688 05239C 000C+00 0/1 0/0 0/0 .bss grabCarryOffset2$14262 */
#pragma push
#pragma force_active on
static u8 grabCarryOffset2[12];
#pragma pop
/* 80425688-80425694 0523A8 000C+00 0/1 0/0 0/0 .bss @14267 */
#pragma push
#pragma force_active on
static u8 lit_14267[12];
#pragma pop
/* 80425694-804256A0 0523B4 000C+00 0/1 0/0 0/0 .bss grabCarryOffset3$14266 */
#pragma push
#pragma force_active on
static u8 grabCarryOffset3[12];
#pragma pop
/* 800E3F50-800E4BD4 0DE890 0C84+00 1/1 0/0 0/0 .text setGrabItemPos__9daAlink_cFv */
void daAlink_c::setGrabItemPos() {
// NONMATCHING
static cXyz grabCarryOffset0(0.0f, -30.0f, 25.0f);
static cXyz grabCarryOffset1(0.0f, 20.0f, -5.0f);
static cXyz grabCarryOffset2(-3.0f, 30.0f, -30.0f);
static cXyz grabCarryOffset3(-4.5f, 26.0f, -33.0f);
}
/* 800E4BD4-800E4DEC 0DF514 0218+00 16/16 0/0 0/0 .text freeGrabItem__9daAlink_cFv */

View File

@ -830,15 +830,8 @@ void daAlink_c::setHookshotTopPosFly() {
}
}
/* ############################################################################################## */
/* 804256A0-804256AC 0523C0 000C+00 0/1 0/0 0/0 .bss @29722 */
#pragma push
#pragma force_active on
static u8 lit_29722[12];
#pragma pop
/* 804256AC-804256B8 0523CC 000C+00 1/2 0/0 0/0 .bss l_hookSnowSandHitScale */
static Vec l_hookSnowSandHitScale;
static cXyz l_hookSnowSandHitScale(0.5f, 0.5f, 0.5f);
/* 80109BDC-8010B2DC 10451C 1700+00 1/1 0/0 0/0 .text setHookshotPos__9daAlink_cFv */
// NONMATCHING - almost, just cXyz stack order

View File

@ -2017,12 +2017,6 @@ int daAlink_c::procCrouch() {
return 1;
}
/* 80425604-80425610 052324 000C+00 0/1 0/0 0/0 .bss l_sumouBaseAnimeSp */
static cXyz l_sumouBaseAnimeSp;
/* 8042561C-80425628 05233C 000C+00 37/39 0/0 0/0 .bss l_wolfBaseAnime */
static cXyz l_wolfBaseAnime;
BOOL daMidna_c::checkMidnaRealBody() {
return dKy_darkworld_check() == 1 || dComIfGs_isTransformLV(3);
}

View File

@ -1236,13 +1236,8 @@ extern "C" u8 func_80141AE8(u8*) {
}
/* 80141B04-801446D4 13C444 2BD0+00 0/0 1/0 0/0 .text __sinit_d_a_alink_cpp */
void __sinit_d_a_alink_cpp(){// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80141B04, __sinit_d_a_alink_cpp);
#pragma pop
/* void __sinit_d_a_alink_cpp(){// NONMATCHING
} */
/* 801446D4-801446DC 13F014 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_801446D4() {

View File

@ -211,8 +211,8 @@ void daAlink_c::changeWolf() {
field_0x30b4 = 4;
field_0x30bc = 31;
field_0x30be = 36;
field_0x32c4 = 1;
field_0x32c6 = 2;
field_0x32c4[0] = 1;
field_0x32c4[1] = 2;
field_0x30b6 = 2;
attention_info.field_0xa = 50;
@ -474,8 +474,8 @@ void daAlink_c::changeLink(int param_0) {
field_0x30bc = 21;
field_0x30be = 26;
field_0x30b6 = 5;
field_0x32c4 = 2;
field_0x32c6 = 16;
field_0x32c4[0] = 2;
field_0x32c4[1] = 16;
attention_info.field_0xa = 10;
dCcD_Cyl* cyl_p = field_0x850;
@ -5747,13 +5747,13 @@ BOOL daAlink_c::setWolfEnemyHangBitePos(fopEn_enemy_c* i_enemy) {
/* ############################################################################################## */
/* 804256EC-804256F8 05240C 000C+00 0/1 0/0 0/0 .bss @50952 */
#pragma push
/* #pragma push
#pragma force_active on
static u8 lit_50952[12];
#pragma pop
#pragma pop */
/* 804256F8-80425708 052418 000C+04 1/2 0/0 0/0 .bss l_wolfBiteHitMarkScale */
static Vec l_wolfBiteHitMarkScale;
static cXyz l_wolfBiteHitMarkScale(0.5f, 0.5f, 0.5f);
/* 801396F8-801397A4 134038 00AC+00 1/1 0/0 0/0 .text
* setWolfBiteDamage__9daAlink_cFP13fopEn_enemy_c */
@ -7834,13 +7834,7 @@ int daAlink_c::procWolfDigThroughInit(int param_0) {
mProcVar5.field_0x3012 = param_0;
u16* var_r29;
if (var_r27 == 13) {
var_r29 = snowID;
} else {
var_r29 = smokeID;
}
const u16* var_r29 = var_r27 == 13 ? snowID : smokeID;
for (int i = 0; i < 4; i++) {
dComIfGp_particle_set(*var_r29, &current.pos, &shape_angle, NULL);
var_r29++;

View File

@ -242,7 +242,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
*/
int daBoomerang_sight_c::createHeap() {
void* resource;
char* arcName = daAlink_c::getAlinkArcName();
const char* arcName = daAlink_c::getAlinkArcName();
JKRArchive* loader = dComIfG_getObjectResInfo(arcName)->getArchive();
field_0x4 = new J2DScreen();
@ -2033,4 +2033,4 @@ static u8 data_804A2DB0[4];
static u8 data_804A2DB4[4];
#pragma pop
/* 804A2990-804A2990 000140 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 804A2990-804A2990 000140 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

View File

@ -1194,7 +1194,7 @@ u8 dPa_control_c::mLifeBall[24];
JPAEmitterManager* dPa_control_c::mEmitterMng;
/* 80450EA4-80450EA8 0003A4 0004+00 1/1 1/1 0/0 .sbss mWaterBubblePcallBack__13dPa_control_c */
u8 dPa_control_c::mWaterBubblePcallBack[4];
JPAParticleCallBack dPa_control_c::mWaterBubblePcallBack;
/* 80450EA8-80450EAC 0003A8 0004+00 3/3 0/0 0/0 .sbss mFsenthPcallBack__13dPa_control_c
*/