mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-08 13:46:21 -04:00
Merge remote-tracking branch 'upstream/main'
This commit is contained in:
+4
-4
@@ -238,22 +238,22 @@ LIBS = [
|
||||
Object(Matching, "SSystem/SComponent/c_tag_iter.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_xyz.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_sxyz.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_math.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_math.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_bg_s.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_bg_s_chk.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_bg_s_gnd_chk.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_bg_s_lin_chk.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_bg_s_lin_chk.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_bg_w.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_m2d.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_m2d_g_box.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_m3d_g_aab.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_m3d_g_cyl.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_m3d_g_cyl.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_m3d_g_pla.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_m3d_g_sph.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_m3d_g_tri.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_lib.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_angle.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_data_tbl.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_data_tbl.cpp"),
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -3,16 +3,22 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class cBgW;
|
||||
class cBgS_PolyInfo {
|
||||
private:
|
||||
/* 0x00 */ u16 mPolyIndex;
|
||||
/* 0x02 */ u16 mBgIndex;
|
||||
/* 0x04 */ void* unk_0x04;
|
||||
/* 0x04 */ cBgW* mpBgW;
|
||||
/* 0x08 */ unsigned int mActorId;
|
||||
|
||||
public:
|
||||
cBgS_PolyInfo();
|
||||
void ClearPi();
|
||||
void ClearPi() {
|
||||
mPolyIndex = -1;
|
||||
mBgIndex = 0x100;
|
||||
mpBgW = NULL;
|
||||
mActorId = -1;
|
||||
}
|
||||
void SetPolyInfo(const cBgS_PolyInfo&);
|
||||
void SetActorInfo(int, void*, unsigned int);
|
||||
bool ChkSafe(const void*, unsigned int) const;
|
||||
|
||||
@@ -22,7 +22,15 @@ class cCcD_AabAttr;
|
||||
class cCcD_CylAttr;
|
||||
class cCcD_SphAttr;
|
||||
|
||||
enum cCcD_ObjAtType {};
|
||||
enum cCcD_ObjAtType {
|
||||
/* 0x00000002 */ AT_TYPE_SWORD = (1 << 1),
|
||||
/* 0x00000020 */ AT_TYPE_BOMB = (1 << 5),
|
||||
/* 0x00000040 */ AT_TYPE_BOOMERANG = (1 << 6),
|
||||
/* 0x00004000 */ AT_TYPE_NORMAL_ARROW = (1 << 14),
|
||||
/* 0x00040000 */ AT_TYPE_FIRE_ARROW = (1 << 18),
|
||||
/* 0x00080000 */ AT_TYPE_ICE_ARROW = (1 << 19),
|
||||
/* 0x00100000 */ AT_TYPE_LIGHT_ARROW = (1 << 20),
|
||||
};
|
||||
|
||||
class cCcD_ShapeAttr {
|
||||
public:
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
#include "dolphin/types.h"
|
||||
|
||||
struct cDT_NamePTbl {
|
||||
u32 mCount;
|
||||
char ** mpNames;
|
||||
|
||||
cDT_NamePTbl();
|
||||
virtual ~cDT_NamePTbl();
|
||||
int GetIndex(const char *pName, int start) const;
|
||||
void Set(u32 count, char** pNames);
|
||||
|
||||
u32 mCount;
|
||||
char ** mpNames;
|
||||
};
|
||||
|
||||
struct cDT_DataSrc {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_ITEM_H
|
||||
|
||||
#include "d/actor/d_a_itembase.h"
|
||||
#include "d/d_particle.h"
|
||||
|
||||
class daItem_c : public daItemBase_c {
|
||||
public:
|
||||
@@ -28,7 +29,7 @@ public:
|
||||
void itemDefaultRotateY();
|
||||
bool checkItemDisappear();
|
||||
void setItemTimer(int);
|
||||
bool checkPlayerGet();
|
||||
BOOL checkPlayerGet();
|
||||
void itemActionForRupee();
|
||||
void itemActionForHeart();
|
||||
void itemActionForKey();
|
||||
@@ -45,14 +46,36 @@ public:
|
||||
void mode_water();
|
||||
void initAction();
|
||||
s32 _daItem_isdelete();
|
||||
|
||||
s32 checkControl();
|
||||
s32 startControl();
|
||||
s32 endControl();
|
||||
s32 checkLock();
|
||||
s32 setLock();
|
||||
s32 releaseLock();
|
||||
s32 checkActionNow();
|
||||
|
||||
public:
|
||||
u8 temp1[0x20];
|
||||
/* 0x648 */ s32 mSwitchId;
|
||||
/* 0x64C */ s32 mActivationSwitch;
|
||||
/* 0x650 */ f32 field3_0x650;
|
||||
/* 0x654 */ u8 field4_0x654[0x658 - 0x654];
|
||||
/* 0x658 */ s16 mItemTimer;
|
||||
/* 0x65A */ s16 field7_0x65a;
|
||||
/* 0x65C */ s16 field8_0x65c;
|
||||
/* 0x65E */ u8 field10_0x65e[0x667 - 0x65E];
|
||||
/* 0x667 */ u8 mUnknownParam;
|
||||
/* 0x668 */ u8 mItemAction;
|
||||
/* 0x669 */ u8 mStatusFlags;
|
||||
/* 0x66A */ u8 mMode;
|
||||
/* 0x66B */ u8 mCurAction;
|
||||
u8 temp2[0x54];
|
||||
/* 0x66B */ u8 mCurState;
|
||||
/* 0x66C */ u8 field23_0x66c[0x6BC - 0x66C];
|
||||
// /* 0x674 */ dPa_rippleEcallBack mPtclRippleCb;
|
||||
// /* 0x688 */ dPa_followEcallBack mPtclFollowCb;
|
||||
// /* 0x69C */ dPa_smokeEcallBack mPtclSmokeCb;
|
||||
/* 0x6BC */ JPABaseEmitter* mpParticleEmitter;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daItem_c) == 0x6C0);
|
||||
|
||||
#endif /* D_A_ITEM_H */
|
||||
@@ -3,6 +3,9 @@
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "d/d_bg_s.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
|
||||
class mDoExt_btkAnm;
|
||||
class mDoExt_brkAnm;
|
||||
@@ -15,17 +18,22 @@ struct daItemBase_c_m_data {
|
||||
/* 0x0C */ float mScaleAnimSpeed;
|
||||
/* 0x10 */ float field4_0x10;
|
||||
/* 0x14 */ short field5_0x14;
|
||||
/* 0x16 */ short field6_0x16;
|
||||
/* 0x16 */ short mDuration;
|
||||
/* 0x18 */ short field7_0x18;
|
||||
/* 0x1A */ u8 field8_0x1a;
|
||||
/* 0x1B */ u8 field9_0x1b;
|
||||
/* 0x1C */ short mNumFramesPerFullSpin;
|
||||
u8 temp1[0x26];
|
||||
u8 temp1[0x1A];
|
||||
/* 0x38 */ f32 mPickedUpInitialSpeedY;
|
||||
/* 0x3C */ f32 mPickedUpGravity;
|
||||
/* 0x40 */ short field45_0x40;
|
||||
/* 0x42 */ short field47_0x42;
|
||||
u8 temp2[0x4];
|
||||
/* 0x48 */ float mVelocityScale;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daItemBase_c_m_data) == 0x4C);
|
||||
|
||||
struct daItemBase_c : public fopAc_ac_c {
|
||||
public:
|
||||
s32 DeleteBase(const char*);
|
||||
@@ -46,12 +54,10 @@ public:
|
||||
void hide();
|
||||
void show();
|
||||
void changeDraw();
|
||||
void chkDraw();
|
||||
bool chkDraw();
|
||||
void dead();
|
||||
void chkDead();
|
||||
void setLoadError();
|
||||
void CheckItemCreateHeap(fopAc_ac_c*);
|
||||
void CheckFieldItemCreateHeap(fopAc_ac_c*);
|
||||
|
||||
daItemBase_c_m_data* getData();
|
||||
|
||||
@@ -66,15 +72,11 @@ public:
|
||||
/* 0x2B0 */ mDoExt_brkAnm* mBrkAnm1;
|
||||
/* 0x2B4 */ mDoExt_brkAnm* mBrkAnm2;
|
||||
/* 0x2B8 */ mDoExt_bckAnm* mBckAnm;
|
||||
// /* 0x2BC */ dBgS_Acch mAcch;
|
||||
// /* 0x480 */ dBgS_AcchCir mAcchCir;
|
||||
// /* 0x4C0 */ dCcD_Stts mStts;
|
||||
// /* 0x4FC */ dCcD_Cyl mCyl;
|
||||
// /* 0x62C */ undefined field14_0x62c;
|
||||
// /* 0x62D */ undefined field15_0x62d;
|
||||
// /* 0x62E */ undefined field16_0x62e;
|
||||
// /* 0x62F */ undefined field17_0x62f;
|
||||
u8 temp[0x374];
|
||||
/* 0x2BC */ dBgS_Acch mAcch;
|
||||
/* 0x480 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x4C0 */ dCcD_Stts mStts;
|
||||
/* 0x4FC */ dCcD_Cyl mCyl;
|
||||
/* 0x62C */ u8 field14_0x62c[0x630 - 0x62C];
|
||||
/* 0x630 */ int mPickupFlag;
|
||||
/* 0x634 */ int field19_0x634;
|
||||
/* 0x638 */ short field20_0x638;
|
||||
|
||||
@@ -14,6 +14,6 @@ void dead();
|
||||
void chkDead();
|
||||
void setLoadError();
|
||||
void CheckItemCreateHeap(fopAc_ac_c*);
|
||||
void CheckFieldItemCreateHeap(fopAc_ac_c*);
|
||||
s32 CheckFieldItemCreateHeap(fopAc_ac_c*);
|
||||
|
||||
#endif /* D_A_ITEMBASE_STATIC_H */
|
||||
@@ -428,6 +428,14 @@ inline BOOL dComIfGs_isSwitch(s32 i_no, s32 i_roomNo) {
|
||||
return g_dComIfG_gameInfo.save.isSwitch(i_no, i_roomNo);
|
||||
}
|
||||
|
||||
inline void dComIfGs_onItem(int bitNo, int roomNo) {
|
||||
g_dComIfG_gameInfo.save.onItem(bitNo, roomNo);
|
||||
}
|
||||
|
||||
inline bool dComIfGs_isItem(int bitNo, int roomNo) {
|
||||
return g_dComIfG_gameInfo.save.isItem(bitNo, roomNo);
|
||||
}
|
||||
|
||||
/**
|
||||
* === PLAY ===
|
||||
*/
|
||||
@@ -507,6 +515,10 @@ inline dBgS* dComIfG_Bgsp() {
|
||||
return &g_dComIfG_gameInfo.play.mBgS;
|
||||
}
|
||||
|
||||
inline dCcS* dComIfG_Ccsp() {
|
||||
return &g_dComIfG_gameInfo.play.mCcS;
|
||||
}
|
||||
|
||||
inline daShip_c* dComIfGp_getShipActor() {
|
||||
return (daShip_c*)g_dComIfG_gameInfo.play.getPlayerPtr(2);
|
||||
}
|
||||
@@ -519,6 +531,10 @@ inline dStage_stageDt_c& dComIfGp_getStage() {
|
||||
return g_dComIfG_gameInfo.play.getStage();
|
||||
}
|
||||
|
||||
inline daPy_py_c* daPy_getPlayerActorClass() {
|
||||
return (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
}
|
||||
|
||||
inline daPy_lk_c* daPy_getPlayerLinkActorClass() {
|
||||
return (daPy_lk_c*)g_dComIfG_gameInfo.play.getPlayerPtr(0);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef D_ITEM_H
|
||||
#define D_ITEM_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
void execItemGet(u8 itemNo);
|
||||
BOOL checkItemGet(u8 itemNo, BOOL defaultVal);
|
||||
void item_func_heart();
|
||||
|
||||
+31
-2
@@ -282,6 +282,29 @@ struct dItem_data_item_resource {
|
||||
|
||||
STATIC_ASSERT(sizeof(dItem_data_item_resource) == 0x24);
|
||||
|
||||
struct dItem_data_field_item_res {
|
||||
/* 0x00 */ char * mModelArcName;
|
||||
/* 0x04 */ short mModelFileId;
|
||||
/* 0x06 */ short mBtkAnmResIdx1;
|
||||
/* 0x08 */ short mBtkAnmResIdx2;
|
||||
/* 0x0A */ short mBrkAnmResIdx1;
|
||||
/* 0x0C */ short mBrkAnmResIdx2;
|
||||
/* 0x0E */ short mBckAnmResIdx;
|
||||
/* 0x10 */ u8 mTevRegAnimFrameIndex;
|
||||
/* 0x11 */ u8 field8_0x11;
|
||||
/* 0x12 */ u8 field9_0x12;
|
||||
/* 0x13 */ u8 field10_0x13;
|
||||
/* 0x14 */ u8 field11_0x14;
|
||||
/* 0x15 */ u8 field12_0x15;
|
||||
/* 0x16 */ u8 field13_0x16;
|
||||
/* 0x17 */ u8 field14_0x17;
|
||||
/* 0x18 */ u16 mHeapSize;
|
||||
/* 0x1A */ u8 field16_0x1a;
|
||||
/* 0x1B */ u8 field17_0x1b;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(dItem_data_field_item_res) == 0x1C);
|
||||
|
||||
struct dItem_data_item_info {
|
||||
/* 0x00 */ u8 mMaybeShadowRelated;
|
||||
/* 0x01 */ u8 mCollisionH; // Cylinder Height
|
||||
@@ -293,8 +316,14 @@ STATIC_ASSERT(sizeof(dItem_data_item_info) == 0x4);
|
||||
|
||||
class dItem_data {
|
||||
public:
|
||||
static dItem_data_item_resource item_resource[0x100];
|
||||
static dItem_data_item_info item_info[0x100];
|
||||
static dItem_data_item_resource item_resource[0x100];
|
||||
static dItem_data_field_item_res field_item_res[0x100];
|
||||
static dItem_data_item_info item_info[0x100];
|
||||
|
||||
static bool checkAppearEffect(u8 itemNo);
|
||||
static s16 getAppearEffect(u8 itemNo);
|
||||
static bool checkSpecialEffect(u8 itemNo);
|
||||
static u16 getSpecialEffect(u8 itemNo);
|
||||
};
|
||||
|
||||
#endif /* D_ITEM_DATA_H */
|
||||
@@ -8,10 +8,11 @@
|
||||
|
||||
/* 80247418-80247480 .text ct__11cBgS_LinChkFv */
|
||||
void cBgS_LinChk::ct() {
|
||||
mLin.mStart = cXyz::Zero;
|
||||
mLin.mEnd = cXyz::Zero;
|
||||
field_0x40 = cXyz::Zero ;
|
||||
setActorPid(0xFFFFFFFF);
|
||||
cXyz zero = cXyz::Zero;
|
||||
mLin.mStart = zero;
|
||||
mLin.mEnd = zero;
|
||||
field_0x40 = zero;
|
||||
setActorPid(-1);
|
||||
field_0x4c = 0;
|
||||
mFrontFlag = 1;
|
||||
mBackFlag = 0;
|
||||
@@ -19,7 +20,8 @@ void cBgS_LinChk::ct() {
|
||||
|
||||
/* 80247480-80247500 .text Set2__11cBgS_LinChkFP4cXyzP4cXyzUi */
|
||||
void cBgS_LinChk::Set2(cXyz* pStart, cXyz* pEnd, unsigned int actorPid) {
|
||||
mLin.SetStartEnd(*pStart, *pEnd);
|
||||
mLin.mStart.set(*pStart);
|
||||
mLin.mEnd.set(*pEnd);
|
||||
field_0x40 = *pEnd;
|
||||
setActorPid(actorPid);
|
||||
field_0x4c &= ~0x10;
|
||||
|
||||
@@ -4,10 +4,11 @@
|
||||
//
|
||||
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "MSL_C/string.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "dolphin/mtx/mtxvec.h"
|
||||
|
||||
|
||||
/* 802528A4-802528C4 .text cLib_memCpy__FPvPCvUl */
|
||||
void cLib_memCpy(void* dst, const void* src, unsigned long size) {
|
||||
memcpy(dst, src, size);
|
||||
@@ -202,35 +203,33 @@ void cLib_addCalcAngleS2(s16* pValue, s16 target, s16 scale, s16 maxStep) {
|
||||
}
|
||||
|
||||
/* 802532C4-8025335C .text cLib_addCalcAngleL__FPlllll */
|
||||
s16 cLib_addCalcAngleL(s32* pValue, s32 target, s32 scale, s32 maxStep, s32 minStep) {
|
||||
s32 cLib_addCalcAngleL(s32* pValue, s32 target, s32 scale, s32 maxStep, s32 minStep) {
|
||||
s32 diff = target - *pValue;
|
||||
if (*pValue != target) {
|
||||
s32 step = (diff) / scale;
|
||||
if (step > minStep || step < -minStep) {
|
||||
if (step > maxStep) {
|
||||
step = maxStep;
|
||||
scale = (diff) / scale;
|
||||
if (scale > minStep || scale < -minStep) {
|
||||
if (scale > maxStep) {
|
||||
scale = maxStep;
|
||||
}
|
||||
if (step < -maxStep) {
|
||||
step = -maxStep;
|
||||
if (scale < -maxStep) {
|
||||
scale = -maxStep;
|
||||
}
|
||||
*pValue += step;
|
||||
*pValue += scale;
|
||||
} else {
|
||||
if (0 <= diff) {
|
||||
*pValue += minStep;
|
||||
diff = target - *pValue;
|
||||
if (0 >= diff) {
|
||||
if (0 >= target - *pValue) {
|
||||
*pValue = target;
|
||||
}
|
||||
} else {
|
||||
*pValue -= minStep;
|
||||
diff = target - *pValue;
|
||||
if (0 <= diff) {
|
||||
if (0 <= target - *pValue) {
|
||||
*pValue = target;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return target - *pValue;
|
||||
return diff;
|
||||
}
|
||||
|
||||
/* 8025335C-802533D0 .text cLib_chaseUC__FPUcUcUc */
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "MSL_C/float.h"
|
||||
|
||||
#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(__FILE__, line, !(((sizeof(x) == sizeof(float)) ? __fpclassifyf((float)(x)) : __fpclassifyd((double)(x)) ) == 1));
|
||||
#define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(__FILE__, line, -1.0e32f < x && x < 1.0e32f);
|
||||
#define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(__FILE__, line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f)
|
||||
#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(((sizeof(x) == sizeof(float)) ? __fpclassifyf((float)(x)) : __fpclassifyd((double)(x)) ) == 1));
|
||||
#define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(line, -1.0e32f < x && x < 1.0e32f);
|
||||
#define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f)
|
||||
|
||||
/* 80251D88-80252020 .text SetC__8cM3dGCylFRC4cXyz */
|
||||
void cM3dGCyl::SetC(const cXyz& pos) {
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "MSL_C/float.h"
|
||||
|
||||
#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(__FILE__, line, !(((sizeof(x) == sizeof(float)) ? __fpclassifyf((float)(x)) : __fpclassifyd((double)(x)) ) == 1));
|
||||
#define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(__FILE__, line, -1.0e32f < x && x < 1.0e32f);
|
||||
#define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(__FILE__, line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f)
|
||||
#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(((sizeof(x) == sizeof(float)) ? __fpclassifyf((float)(x)) : __fpclassifyd((double)(x)) ) == 1));
|
||||
#define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(line, -1.0e32f < x && x < 1.0e32f);
|
||||
#define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f)
|
||||
|
||||
/* 8025238C-80252624 .text SetC__8cM3dGSphFRC4cXyz */
|
||||
void cM3dGSph::SetC(const cXyz& pos) {
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
|
||||
/* 80246044-8024609C .text cM_rad2s__Ff */
|
||||
s16 cM_rad2s(float f0) {
|
||||
f32 tmpF = fmod(f0, 6.2831854820251465 /* approx. 2 * PI */);
|
||||
s32 tmp = (tmpF * 10430.378f /* approx. 32768 / PI */);
|
||||
f64 tmpF = fmod(f0, 6.2831854820251465 /* approx. 2 * PI */);
|
||||
s32 tmp = (tmpF * 10430.3779296875 /* approx. 32768 / PI */);
|
||||
if (tmp < -0x8000) {
|
||||
tmp += 0x10000;
|
||||
} else if (tmp > 0x7FFF) {
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
//
|
||||
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "MSL_C/float.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "MSL_C/float.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
const cXyz cXyz::Zero(0, 0, 0);
|
||||
const cXyz cXyz::BaseX(1, 0, 0);
|
||||
@@ -150,7 +150,6 @@ bool cXyz::operator!=(const Vec& vec) const {
|
||||
|
||||
/* 80245CE4-80245D48 .text isZero__4cXyzCFv */
|
||||
bool cXyz::isZero(void) const {
|
||||
return fabsf(this->x) < 3.814697e-06 &&
|
||||
fabsf(this->y) < 3.814697e-06 &&
|
||||
fabsf(this->z) < 3.814697e-06;
|
||||
return fabsf(this->x) < 3.814697e-06f && fabsf(this->y) < 3.814697e-06f &&
|
||||
fabsf(this->z) < 3.814697e-06f;
|
||||
}
|
||||
|
||||
+236
-41
@@ -5,14 +5,44 @@
|
||||
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/actor/d_a_itembase_static.h"
|
||||
#include "d/actor/d_a_item.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class dCcD_GObjInf;
|
||||
|
||||
static dCcD_SrcCyl m_cyl_src = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0xFFFFFFFF, // Tg damage types
|
||||
9,
|
||||
0x59,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
0,
|
||||
|
||||
// Cylinder
|
||||
0.0, // X
|
||||
0.0, // Y
|
||||
0.0, // Z
|
||||
10.0, // Radius
|
||||
50.0, // Height
|
||||
};
|
||||
|
||||
/* 800F4BC8-800F4BD4 .text getData__12daItemBase_cFv */
|
||||
daItemBase_c_m_data* daItemBase_c::getData() {
|
||||
return &daItemBase_c::m_data;
|
||||
@@ -27,7 +57,25 @@ void setArrowTrans(short, cXyz) {
|
||||
float daItem_c::getYOffset() {
|
||||
switch (m_itemNo) {
|
||||
case HEART:
|
||||
return 0.0;
|
||||
return 0.0f;
|
||||
case SKULL_NECKLACE:
|
||||
return 0.0f;
|
||||
case BOKOBABA_SEED:
|
||||
return 0.0f;
|
||||
case GOLDEN_FEATHER:
|
||||
return 0.0f;
|
||||
case BOKO_BELT:
|
||||
return 0.0f;
|
||||
case RED_JELLY:
|
||||
case GREEN_JELLY:
|
||||
case BLUE_JELLY:
|
||||
return 0.0f;
|
||||
case SWORD:
|
||||
return 20.0f;
|
||||
case SHIELD:
|
||||
return 23.0f;
|
||||
case DROPPED_SWORD:
|
||||
return 10.0f;
|
||||
case GREEN_RUPEE:
|
||||
case BLUE_RUPEE:
|
||||
case YELLOW_RUPEE:
|
||||
@@ -35,33 +83,15 @@ float daItem_c::getYOffset() {
|
||||
case PURPLE_RUPEE:
|
||||
case ORANGE_RUPEE:
|
||||
case SILVER_RUPEE:
|
||||
return 0.0;
|
||||
return 0.0f;
|
||||
case KAKERA_HEART:
|
||||
case UTUWA_HEART:
|
||||
return 0.0;
|
||||
return 0.0f;
|
||||
case SMALL_KEY:
|
||||
case BOSS_KEY:
|
||||
return 0.0;
|
||||
case SWORD:
|
||||
return 20.0;
|
||||
case SHIELD:
|
||||
return 23.0;
|
||||
case DROPPED_SWORD:
|
||||
return 10.0;
|
||||
case SKULL_NECKLACE:
|
||||
return 0.0;
|
||||
case BOKOBABA_SEED:
|
||||
return 0.0;
|
||||
case GOLDEN_FEATHER:
|
||||
return 0.0;
|
||||
case BOKO_BELT:
|
||||
return 0.0;
|
||||
case RED_JELLY:
|
||||
case GREEN_JELLY:
|
||||
case BLUE_JELLY:
|
||||
return 0.0;
|
||||
return 0.0f;
|
||||
default:
|
||||
return 0.0;
|
||||
return 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,11 +113,120 @@ void itemGetCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*) {
|
||||
/* 800F5044-800F53EC .text CreateInit__8daItem_cFv */
|
||||
void daItem_c::CreateInit() {
|
||||
/* Nonmatching */
|
||||
mAcchCir.SetWall(30.0, 30.0);
|
||||
cXyz* speedPtr = &speed;
|
||||
mAcch.Set(¤t.pos, &next.pos, this, 1, &mAcchCir, speedPtr, NULL, NULL);
|
||||
mAcch.m_flags &= ~0x400;
|
||||
mAcch.m_flags &= ~0x8;
|
||||
mCullMtx = mModel->mBaseTransformMtx;
|
||||
mStts.Init(0, 0xFF, this);
|
||||
mCyl.Set(m_cyl_src);
|
||||
mCyl.SetCoHitCallback(&itemGetCallBack);
|
||||
|
||||
dItem_data_item_info* item_info = &dItem_data::item_info[m_itemNo];
|
||||
f32 height = item_info->mCollisionH;
|
||||
f32 radius = item_info->mCollisionR;
|
||||
if (mScale.x > 1.0) {
|
||||
height *= mScale.x;
|
||||
radius *= mScale.x;
|
||||
}
|
||||
mCyl.SetR(radius);
|
||||
mCyl.SetH(height);
|
||||
|
||||
mItemTimer = getData()->mDuration;
|
||||
field7_0x65a = getData()->field7_0x18;
|
||||
mCurState = 0;
|
||||
field3_0x650 = speedPtr->y;
|
||||
mStatusFlags |= 2;
|
||||
|
||||
mUnknownParam = (fpcM_GetParam(this) & 0x03000000) >> 0x18;
|
||||
mItemAction = (fpcM_GetParam(this) & 0xFC000000) >> 0x1A;
|
||||
|
||||
show();
|
||||
|
||||
if (dItem_data::checkSpecialEffect(m_itemNo) && (m_itemNo != SMALL_KEY || (mStatusFlags & 2))) {
|
||||
dItem_data::getSpecialEffect(m_itemNo);
|
||||
// TODO: dPa_control_c::set
|
||||
}
|
||||
|
||||
switch (m_itemNo) {
|
||||
case BOMB_5:
|
||||
case BOMB_10:
|
||||
case BOMB_20:
|
||||
case BOMB_30:
|
||||
mScaleTarget.x = 0.6;
|
||||
mScaleTarget.y = 0.6;
|
||||
mScaleTarget.z = 0.6;
|
||||
break;
|
||||
default:
|
||||
mScaleTarget.x = 1.0;
|
||||
mScaleTarget.y = 1.0;
|
||||
mScaleTarget.z = 1.0;
|
||||
break;
|
||||
}
|
||||
|
||||
mSwitchId = (fpcM_GetParam(this) & 0x00FF0000) >> 0x10;
|
||||
if (mSwitchId != 0xFF && i_fopAcM_isSwitch(this, mSwitchId)) {
|
||||
hide();
|
||||
mStatusFlags |= 2;
|
||||
}
|
||||
mActivationSwitch = (orig.angle.z & 0x00FF) >> 0;
|
||||
|
||||
initAction();
|
||||
|
||||
switch (m_itemNo) {
|
||||
case SHIELD:
|
||||
mStatus |= 0x4000;
|
||||
break;
|
||||
case DROPPED_SWORD:
|
||||
current.angle.x = 0x4000;
|
||||
break;
|
||||
}
|
||||
|
||||
set_mtx();
|
||||
animPlay(1.0, 1.0, 1.0, 1.0, 1.0);
|
||||
|
||||
s16 procname = PROC_BST; // Gohdan
|
||||
if (fopAcIt_Judge(&fpcSch_JudgeForPName, &procname)) {
|
||||
// TODO: dPa_control_c::set
|
||||
mpParticleEmitter = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 800F53EC-800F5668 .text _daItem_create__8daItem_cFv */
|
||||
s32 daItem_c::_daItem_create() {
|
||||
/* Nonmatching */
|
||||
fopAcM_SetupActor(this, daItem_c);
|
||||
|
||||
m_itemNo = (fpcM_GetParam(this) & 0x000000FF) >> 0x00;
|
||||
|
||||
if (!dItem_data::field_item_res[m_itemNo].mModelArcName) {
|
||||
setLoadError();
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
mPickupFlag = (fpcM_GetParam(this) & 0x0000FF00) >> 0x08;
|
||||
if (m_itemNo != BLUE_JELLY) { // Blue Chu Jelly uses mPickupFlag as if it was a switch.
|
||||
mPickupFlag &= 0x7F;
|
||||
if (dComIfGs_isItem(mPickupFlag, orig.roomNo) && mPickupFlag != 0x7F) {
|
||||
// Already picked up, don't create the item again.
|
||||
setLoadError();
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
|
||||
s32 phase_state = dComIfG_resLoad(&mPhs, dItem_data::field_item_res[m_itemNo].mModelArcName);
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
u16 heapSize = dItem_data::field_item_res[m_itemNo].mHeapSize;
|
||||
s32 result = fopAcM_entrySolidHeap(this, (heapCallbackFunc)&CheckFieldItemCreateHeap, heapSize);
|
||||
if (!result) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
CreateInit();
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 800F5668-800F5834 .text _daItem_execute__8daItem_cFv */
|
||||
@@ -103,6 +242,20 @@ void daItem_c::mode_proc_call() {
|
||||
/* 800F59CC-800F5AFC .text execInitNormalDirection__8daItem_cFv */
|
||||
void daItem_c::execInitNormalDirection() {
|
||||
/* Nonmatching */
|
||||
daPy_getPlayerActorClass()->getHeadTopPos();
|
||||
|
||||
field8_0x65c = getData()->field45_0x40;
|
||||
|
||||
f32 speedY = getData()->mPickedUpInitialSpeedY;
|
||||
speed.x = 0;
|
||||
speed.y = speedY;
|
||||
speed.z = 0;
|
||||
mGravity = getData()->mPickedUpGravity;
|
||||
|
||||
show();
|
||||
|
||||
// TODO dPa_smokeEcallBack
|
||||
// TODO mpParticleEmitter
|
||||
}
|
||||
|
||||
/* 800F5AFC-800F5BC8 .text execMainNormalDirection__8daItem_cFv */
|
||||
@@ -127,7 +280,10 @@ void daItem_c::execMainGetDemoDirection() {
|
||||
|
||||
/* 800F5D44-800F5D88 .text execBringNezumi__8daItem_cFv */
|
||||
void daItem_c::execBringNezumi() {
|
||||
/* Nonmatching */
|
||||
if (mUnknownParam != 1) {
|
||||
fopAcM_posMoveF(this, mStts.GetCCMoveP());
|
||||
}
|
||||
mode_proc_call();
|
||||
}
|
||||
|
||||
/* 800F5D88-800F5F40 .text execWaitMain__8daItem_cFv */
|
||||
@@ -147,17 +303,37 @@ void daItem_c::scaleAnimFromBossItem() {
|
||||
|
||||
/* 800F60C0-800F6110 .text _daItem_draw__8daItem_cFv */
|
||||
s32 daItem_c::_daItem_draw() {
|
||||
/* Nonmatching */
|
||||
if (chkDraw()) {
|
||||
return DrawBase();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800F6110-800F61C8 .text setTevStr__8daItem_cFv */
|
||||
void daItem_c::setTevStr() {
|
||||
/* Nonmatching */
|
||||
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, getPositionP(), &mTevStr);
|
||||
|
||||
mTevStr.mColorC0.r = 0x96;
|
||||
mTevStr.mColorC0.g = 0x96;
|
||||
mTevStr.mColorC0.b = 0x96;
|
||||
mTevStr.mColorK0.r = 0xFF;
|
||||
mTevStr.mColorK0.g = 0xFF;
|
||||
mTevStr.mColorK0.b = 0xFF;
|
||||
g_env_light.setLightTevColorType(mModel, &mTevStr);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (!mModelArrow[i]) {
|
||||
continue;
|
||||
}
|
||||
g_env_light.setLightTevColorType(mModelArrow[i], &mTevStr);
|
||||
}
|
||||
}
|
||||
|
||||
/* 800F61C8-800F6268 .text _daItem_delete__8daItem_cFv */
|
||||
s32 daItem_c::_daItem_delete() {
|
||||
/* Nonmatching */
|
||||
// TODO: dPa_rippleEcallBack::end()
|
||||
DeleteBase(dItem_data::field_item_res[m_itemNo].mModelArcName);
|
||||
}
|
||||
|
||||
/* 800F6268-800F6434 .text Reflect__FR4cXyzP4cXyzff */
|
||||
@@ -181,7 +357,7 @@ void daItem_c::itemDefaultRotateY() {
|
||||
/* 800F6D78-800F6E54 .text checkItemDisappear__8daItem_cFv */
|
||||
bool daItem_c::checkItemDisappear() {
|
||||
bool disappearing = true;
|
||||
if (mCurAction == 3) {
|
||||
if (mCurState == 3) {
|
||||
disappearing = false;
|
||||
show();
|
||||
}
|
||||
@@ -197,7 +373,7 @@ bool daItem_c::checkItemDisappear() {
|
||||
if (g_dComIfG_gameInfo.play.mEvtCtrl.mMode != 0) {
|
||||
disappearing = false;
|
||||
}
|
||||
if (mCurAction == 4) {
|
||||
if (mCurState == 4) {
|
||||
disappearing = false;
|
||||
}
|
||||
if ((mStatusFlags & 0x08) || (mStatusFlags & 0x40) || (mStatus & 0x100000)) {
|
||||
@@ -208,13 +384,23 @@ bool daItem_c::checkItemDisappear() {
|
||||
}
|
||||
|
||||
/* 800F6E54-800F6E74 .text setItemTimer__8daItem_cFi */
|
||||
void daItem_c::setItemTimer(int) {
|
||||
/* Nonmatching */
|
||||
void daItem_c::setItemTimer(int timer) {
|
||||
if (timer == -1) {
|
||||
mStatusFlags |= 0x10;
|
||||
return;
|
||||
}
|
||||
mItemTimer = timer;
|
||||
}
|
||||
|
||||
/* 800F6E74-800F6EC8 .text checkPlayerGet__8daItem_cFv */
|
||||
bool daItem_c::checkPlayerGet() {
|
||||
/* Nonmatching */
|
||||
BOOL daItem_c::checkPlayerGet() {
|
||||
if (field20_0x638 < getData()->field47_0x42) {
|
||||
return FALSE;
|
||||
}
|
||||
if (mCurState == 3) {
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 800F6EC8-800F7028 .text itemActionForRupee__8daItem_cFv */
|
||||
@@ -259,14 +445,23 @@ void daItem_c::set_bound_se() {
|
||||
|
||||
/* 800F7DDC-800F7E6C .text checkGetItem__8daItem_cFv */
|
||||
s32 daItem_c::checkGetItem() {
|
||||
/* Nonmatching */
|
||||
if (checkPlayerGet()) {
|
||||
itemGetExecute();
|
||||
|
||||
return 1;
|
||||
if (!checkPlayerGet()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mCyl.ChkTgHit()) {
|
||||
cCcD_Obj* hitObj = mCyl.GetTgHitObj();
|
||||
if (hitObj) {
|
||||
u32 atType = hitObj->GetAtType();
|
||||
if (atType & AT_TYPE_SWORD) {
|
||||
itemGetExecute();
|
||||
return 1;
|
||||
} else if (atType & AT_TYPE_BOOMERANG) {
|
||||
mStatusFlags |= 0x08;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mStatusFlags |= 0x08;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -301,8 +496,8 @@ void daItem_c::initAction() {
|
||||
}
|
||||
|
||||
/* 800F8950-800F8970 .text daItem_Draw__FP8daItem_c */
|
||||
void daItem_Draw(daItem_c*) {
|
||||
/* Nonmatching */
|
||||
s32 daItem_Draw(daItem_c* i_this) {
|
||||
return i_this->_daItem_draw();
|
||||
}
|
||||
|
||||
/* 800F8970-800F8990 .text daItem_Execute__FP8daItem_c */
|
||||
@@ -322,7 +517,7 @@ s32 daItem_Delete(daItem_c* i_this) {
|
||||
|
||||
/* 800F89D0-800F89F0 .text daItem_Create__FP10fopAc_ac_c */
|
||||
s32 daItem_Create(fopAc_ac_c* i_this) {
|
||||
/* Nonmatching */
|
||||
return ((daItem_c*)i_this)->_daItem_create();
|
||||
}
|
||||
|
||||
/* 800F89F0-800F89F8 .text _daItem_isdelete__8daItem_cFv */
|
||||
|
||||
@@ -3,41 +3,44 @@
|
||||
// Translation Unit: d_a_item_static.cpp
|
||||
//
|
||||
|
||||
#include "d_a_item_static.h"
|
||||
// #include "d/actor/d_a_item_static.h"
|
||||
#include "d/actor/d_a_item.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 80068820-800688A0 .text checkControl__8daItem_cFv */
|
||||
void daItem_c::checkControl() {
|
||||
s32 daItem_c::checkControl() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800688A0-800688E8 .text startControl__8daItem_cFv */
|
||||
void daItem_c::startControl() {
|
||||
s32 daItem_c::startControl() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800688E8-800688F8 .text endControl__8daItem_cFv */
|
||||
void daItem_c::endControl() {
|
||||
/* Nonmatching */
|
||||
s32 daItem_c::endControl() {
|
||||
mCurState = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800688F8-80068950 .text checkLock__8daItem_cFv */
|
||||
void daItem_c::checkLock() {
|
||||
s32 daItem_c::checkLock() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80068950-80068998 .text setLock__8daItem_cFv */
|
||||
void daItem_c::setLock() {
|
||||
s32 daItem_c::setLock() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80068998-800689A8 .text releaseLock__8daItem_cFv */
|
||||
void daItem_c::releaseLock() {
|
||||
/* Nonmatching */
|
||||
s32 daItem_c::releaseLock() {
|
||||
mCurState = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800689A8-800689F0 .text checkActionNow__8daItem_cFv */
|
||||
void daItem_c::checkActionNow() {
|
||||
s32 daItem_c::checkActionNow() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "d/actor/d_a_itembase_static.h"
|
||||
#include "d/actor/d_a_itembase.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 80068650-80068658 .text getItemNo__12daItemBase_cFv */
|
||||
@@ -37,7 +38,7 @@ void daItemBase_c::changeDraw() {
|
||||
}
|
||||
|
||||
/* 800686F8-80068710 .text chkDraw__12daItemBase_cFv */
|
||||
void daItemBase_c::chkDraw() {
|
||||
bool daItemBase_c::chkDraw() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -62,7 +63,7 @@ void CheckItemCreateHeap(fopAc_ac_c*) {
|
||||
}
|
||||
|
||||
/* 800687B4-80068820 .text CheckFieldItemCreateHeap__FP10fopAc_ac_c */
|
||||
void CheckFieldItemCreateHeap(fopAc_ac_c*) {
|
||||
s32 CheckFieldItemCreateHeap(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace daTagRet {
|
||||
mCyl.SetC(current.pos);
|
||||
mCyl.SetR(1000.0f*mScale.x);
|
||||
mCyl.SetH(100.0f*mScale.y);
|
||||
g_dComIfG_gameInfo.play.mCcS.Set(&mCyl);
|
||||
dComIfG_Ccsp()->Set(&mCyl);
|
||||
|
||||
if (mCyl.ChkCoHit()) {
|
||||
u32 playerId = daObj::PrmAbstract(this, PRM_PLAYER_ID_W, PRM_PLAYER_ID_S);
|
||||
|
||||
+2
-2
@@ -7,12 +7,12 @@
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 800C2DFC-800C2E30 .text execItemGet__FUc */
|
||||
void execItemGet(unsigned char) {
|
||||
void execItemGet(u8 itemNo) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800C2E30-800C2E7C .text checkItemGet__FUci */
|
||||
void checkItemGet(unsigned char, int) {
|
||||
BOOL checkItemGet(u8, BOOL defaultVal) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -7,22 +7,22 @@
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 800C12F4-800C1334 .text checkAppearEffect__10dItem_dataFUc */
|
||||
void dItem_data::checkAppearEffect(unsigned char) {
|
||||
bool dItem_data::checkAppearEffect(u8 itemNo) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800C1334-800C13B4 .text getAppearEffect__10dItem_dataFUc */
|
||||
void dItem_data::getAppearEffect(unsigned char) {
|
||||
s16 dItem_data::getAppearEffect(u8 itemNo) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800C13B4-800C13F8 .text checkSpecialEffect__10dItem_dataFUc */
|
||||
void dItem_data::checkSpecialEffect(unsigned char) {
|
||||
bool dItem_data::checkSpecialEffect(u8 itemNo) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800C13F8-800C1474 .text getSpecialEffect__10dItem_dataFUc */
|
||||
void dItem_data::getSpecialEffect(unsigned char) {
|
||||
u16 dItem_data::getSpecialEffect(u8 itemNo) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user