mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-12 05:27:14 -04:00
Merge branch 'main' of https://github.com/zeldaret/tww into agb
This commit is contained in:
+9
-9
@@ -272,7 +272,7 @@ config.libs = [
|
||||
Object(Matching, "f_op/f_op_actor_iter.cpp"),
|
||||
Object(Matching, "f_op/f_op_actor_tag.cpp"),
|
||||
Object(NonMatching, "f_op/f_op_actor_mng.cpp"),
|
||||
Object(NonMatching, "f_op/f_op_camera.cpp"),
|
||||
Object(Matching, "f_op/f_op_camera.cpp"),
|
||||
Object(Matching, "f_op/f_op_camera_mng.cpp"),
|
||||
Object(Matching, "f_op/f_op_overlap.cpp"),
|
||||
Object(Matching, "f_op/f_op_overlap_mng.cpp"),
|
||||
@@ -394,7 +394,7 @@ config.libs = [
|
||||
Object(NonMatching, "d/d_ev_camera.cpp"),
|
||||
Object(NonMatching, "d/d_wood.cpp"),
|
||||
Object(NonMatching, "d/d_flower.cpp"),
|
||||
Object(NonMatching, "d/d_item_data.cpp"),
|
||||
Object(Matching, "d/d_item_data.cpp"),
|
||||
Object(Matching, "d/d_seafightgame.cpp"),
|
||||
Object(NonMatching, "d/d_spline_path.cpp"),
|
||||
Object(NonMatching, "d/d_s_actor_data_mng.cpp"),
|
||||
@@ -404,7 +404,7 @@ config.libs = [
|
||||
Object(NonMatching, "d/d_a_npc_mk_static.cpp"),
|
||||
Object(NonMatching, "d/d_salvage.cpp"),
|
||||
Object(NonMatching, "d/d_snap.cpp"),
|
||||
Object(NonMatching, "d/d_point_wind.cpp"),
|
||||
Object(Matching, "d/d_point_wind.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_agb.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_arrow.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_bg.cpp"),
|
||||
@@ -420,7 +420,7 @@ config.libs = [
|
||||
Object(NonMatching, "d/actor/d_a_hookshot.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_ib.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_item.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_itembase.cpp"),
|
||||
Object(Matching, "d/actor/d_a_itembase.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_nh.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_npc_fa1.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_obj_search.cpp"),
|
||||
@@ -510,12 +510,12 @@ config.libs = [
|
||||
Object(Matching, "SSystem/SComponent/c_request.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_tag.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_tag_iter.cpp"),
|
||||
Object(NonMatching, "SSystem/SComponent/c_xyz.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_xyz.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_sxyz.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(Matching, "SSystem/SComponent/c_bg_s_gnd_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"),
|
||||
@@ -524,10 +524,10 @@ config.libs = [
|
||||
Object(Matching, "SSystem/SComponent/c_m3d_g_aab.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_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(Matching, "SSystem/SComponent/c_lib.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_angle.cpp"),
|
||||
Object(Matching, "SSystem/SComponent/c_data_tbl.cpp"),
|
||||
Object(Matching, "SSystem/SStandard/s_basic.cpp"),
|
||||
],
|
||||
|
||||
@@ -8,10 +8,10 @@ class J3DUClipper {
|
||||
public:
|
||||
J3DUClipper() { init(); }
|
||||
virtual ~J3DUClipper() {}
|
||||
/* 80273778 */ void init();
|
||||
/* 8027378C */ void calcViewFrustum();
|
||||
/* 802738FC */ u32 clip(f32 const (*)[4], Vec, f32) const;
|
||||
/* 80273A44 */ u32 clip(f32 const (*)[4], Vec*, Vec*) const;
|
||||
void init();
|
||||
void calcViewFrustum();
|
||||
u32 clip(const Mtx, Vec, f32);
|
||||
u32 clip(const Mtx, Vec*, Vec*);
|
||||
|
||||
void setFovy(f32 fovy) { mFovY = fovy; }
|
||||
void setAspect(f32 aspect) { mAspect = aspect; }
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
#include "dolphin/gx/GXStruct.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
|
||||
class JPACallBackBase;
|
||||
class JPACallBackBase2;
|
||||
class JPADataBlockLinkInfo;
|
||||
|
||||
enum {
|
||||
@@ -26,6 +24,18 @@ enum {
|
||||
JPAEmtrStts_Immortal = 0x40,
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
class JPACallBackBase {
|
||||
public:
|
||||
JPACallBackBase() {}
|
||||
virtual ~JPACallBackBase();
|
||||
|
||||
virtual void init(JPABaseEmitter*);
|
||||
virtual void execute(JPABaseEmitter*);
|
||||
virtual void executeAfter(JPABaseEmitter*);
|
||||
virtual void draw(JPABaseEmitter*);
|
||||
};
|
||||
|
||||
class JPABaseEmitter {
|
||||
public:
|
||||
typedef void (JPABaseEmitter::*VolumeFunc)();
|
||||
@@ -111,7 +121,7 @@ public:
|
||||
/* 0x188 */ JSUPtrList mChildParticles;
|
||||
/* 0x194 */ JSUPtrList* mpPtclVacList;
|
||||
/* 0x198 */ JPADataBlockLinkInfo* mpDataLinkInfo;
|
||||
/* 0x19C */ JPACallBackBase* mpEmitterCallBack;
|
||||
/* 0x19C */ JPACallBackBase<JPABaseEmitter>* mpEmitterCallBack;
|
||||
/* 0x1A0 */ JPACallBackBase2* mpParticleCallBack;
|
||||
/* 0x1A4 */ JMath::TRandom_fast_ mRandomSeed;
|
||||
/* 0x1A8 */ Mtx mGlobalRotation;
|
||||
|
||||
@@ -23,15 +23,15 @@ public:
|
||||
void Val(const cSAngle&);
|
||||
void Val(s16);
|
||||
void Val(float);
|
||||
float Degree(void) const;
|
||||
float Radian(void) const;
|
||||
float Norm(void) const;
|
||||
s16 Abs(void) const;
|
||||
s16 Inv(void) const;
|
||||
float Sin(void) const;
|
||||
float Cos(void) const;
|
||||
float Tan(void) const;
|
||||
cSAngle operator-(void) const;
|
||||
float Degree() const;
|
||||
float Radian() const;
|
||||
float Norm() const;
|
||||
s16 Abs() const;
|
||||
s16 Inv() const;
|
||||
float Sin() const;
|
||||
float Cos() const;
|
||||
float Tan() const;
|
||||
cSAngle operator-() const;
|
||||
cSAngle operator+(const cSAngle&) const;
|
||||
cSAngle operator-(const cSAngle&) const;
|
||||
void operator+=(const cSAngle&);
|
||||
@@ -44,10 +44,10 @@ public:
|
||||
void operator*=(float);
|
||||
bool operator<(const cSAngle& other) const { return mAngle < other.mAngle; }
|
||||
bool operator>(const cSAngle& other) const { return mAngle > other.mAngle; }
|
||||
operator s16(void) const { return mAngle; }
|
||||
operator s16() const { return mAngle; }
|
||||
void operator=(const cSAngle& other) { mAngle = other.mAngle; }
|
||||
static inline cSAngle getMaxNegative(void) { return cSAngle((s16)-0x8000); }
|
||||
inline void mirrorAtMaxNeg(void) { *this = cSAngle((s16)-0x8000) - *this; }
|
||||
static inline cSAngle getMaxNegative() { return cSAngle((s16)-0x8000); }
|
||||
inline void mirrorAtMaxNeg() { *this = cSAngle((s16)-0x8000) - *this; }
|
||||
};
|
||||
|
||||
cSAngle operator+(short, const cSAngle&);
|
||||
@@ -91,11 +91,11 @@ public:
|
||||
cDegree(float);
|
||||
~cDegree() {}
|
||||
|
||||
cDegree& Formal(void);
|
||||
cDegree& Formal();
|
||||
void Val(float);
|
||||
float Radian(void) const;
|
||||
float Sin(void) const;
|
||||
float Cos(void) const;
|
||||
float Radian() const;
|
||||
float Sin() const;
|
||||
float Cos() const;
|
||||
};
|
||||
|
||||
class cSPolar {
|
||||
@@ -107,10 +107,10 @@ private:
|
||||
public:
|
||||
cSPolar() {}
|
||||
cSPolar(const cXyz&);
|
||||
cSPolar& Formal(void);
|
||||
cSPolar& Formal();
|
||||
void Val(float, short, short);
|
||||
void Val(const cXyz&);
|
||||
cXyz Xyz(void) const;
|
||||
cXyz Xyz() const;
|
||||
void Globe(class cSGlobe*) const;
|
||||
};
|
||||
|
||||
@@ -126,18 +126,18 @@ public:
|
||||
cSGlobe(float, const cSAngle&, const cSAngle&);
|
||||
cSGlobe(const cXyz&);
|
||||
~cSGlobe() {}
|
||||
cSGlobe& Formal(void);
|
||||
cSGlobe& Formal();
|
||||
void Val(const cSGlobe&);
|
||||
void Val(float, short, short);
|
||||
void Val(float, const cSAngle&, const cSAngle&);
|
||||
void Val(const cXyz&);
|
||||
float R(void) const { return mRadius; }
|
||||
const cSAngle& V(void) const { return mAzimuth; }
|
||||
const cSAngle& U(void) const { return mInclination; }
|
||||
cXyz Xyz(void) const;
|
||||
float R() const { return mRadius; }
|
||||
const cSAngle& V() const { return mAzimuth; }
|
||||
const cSAngle& U() const { return mInclination; }
|
||||
cXyz Xyz() const;
|
||||
void Polar(cSPolar*) const;
|
||||
cXyz Norm(void) const;
|
||||
cSGlobe& Invert(void);
|
||||
cXyz Norm() const;
|
||||
cSGlobe& Invert();
|
||||
};
|
||||
|
||||
#endif /* C_ANGLE_H */
|
||||
|
||||
@@ -58,7 +58,7 @@ int cM3d_Cross_LinSph_CrossPos(const cM3dGSph&, const cM3dGLin&, Vec*, Vec*);
|
||||
bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, f32*);
|
||||
bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, Vec*, f32*);
|
||||
bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, f32*);
|
||||
static bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, f32*, f32*);
|
||||
bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, f32*, f32*);
|
||||
bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, Vec*);
|
||||
static void cM3d_CalcSphVsTriCrossPoint(const cM3dGSph*, const cM3dGTri*, Vec*);
|
||||
bool cM3d_Cross_SphTri(const cM3dGSph*, const cM3dGTri*, Vec*);
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
class daItem_c : public daItemBase_c {
|
||||
public:
|
||||
daItem_c() : mPtclFollowCb(0, 0), mPtclSmokeCb(1) {}
|
||||
|
||||
float getYOffset();
|
||||
void set_mtx();
|
||||
void set_mtx_base(J3DModel*, cXyz, csXyz);
|
||||
@@ -54,6 +56,8 @@ public:
|
||||
s32 setLock();
|
||||
s32 releaseLock();
|
||||
s32 checkActionNow();
|
||||
|
||||
static dCcD_SrcCyl m_cyl_src;
|
||||
|
||||
public:
|
||||
/* 0x63C */ cXyz mScaleTarget;
|
||||
@@ -70,10 +74,10 @@ public:
|
||||
/* 0x669 */ u8 mStatusFlags;
|
||||
/* 0x66A */ u8 mMode;
|
||||
/* 0x66B */ u8 mCurState;
|
||||
/* 0x66C */ u8 field23_0x66c[0x6BC - 0x66C];
|
||||
// /* 0x674 */ dPa_rippleEcallBack mPtclRippleCb;
|
||||
// /* 0x688 */ dPa_followEcallBack mPtclFollowCb;
|
||||
// /* 0x69C */ dPa_smokeEcallBack mPtclSmokeCb;
|
||||
/* 0x66C */ u8 field23_0x66c[0x674 - 0x66C];
|
||||
/* 0x674 */ dPa_rippleEcallBack mPtclRippleCb;
|
||||
/* 0x688 */ dPa_followEcallBack mPtclFollowCb;
|
||||
/* 0x69C */ dPa_smokeEcallBack mPtclSmokeCb;
|
||||
/* 0x6BC */ JPABaseEmitter* mpParticleEmitter;
|
||||
};
|
||||
|
||||
|
||||
@@ -36,9 +36,9 @@ STATIC_ASSERT(sizeof(daItemBase_c_m_data) == 0x4C);
|
||||
|
||||
struct daItemBase_c : public fopAc_ac_c {
|
||||
public:
|
||||
s32 DeleteBase(const char*);
|
||||
s32 CreateItemHeap(const char*, short, short, short, short, short, short, short);
|
||||
virtual s32 DrawBase();
|
||||
BOOL DeleteBase(const char*);
|
||||
BOOL CreateItemHeap(const char*, short, short, short, short, short, short, short);
|
||||
virtual BOOL DrawBase();
|
||||
virtual void setListStart();
|
||||
void setListEnd();
|
||||
virtual void settingBeforeDraw();
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
virtual void setShadow();
|
||||
virtual void animEntry();
|
||||
void animPlay(float, float, float, float, float);
|
||||
virtual s32 clothCreate();
|
||||
virtual BOOL clothCreate();
|
||||
|
||||
void getItemNo();
|
||||
void getHeight();
|
||||
@@ -65,21 +65,21 @@ public:
|
||||
|
||||
public:
|
||||
/* 0x294 */ request_of_phase_process_class mPhs;
|
||||
/* 0x29C */ J3DModel* mModel;
|
||||
/* 0x2A0 */ J3DModel* mModelArrow[2]; // Extra models for arrow bundles
|
||||
/* 0x2A8 */ mDoExt_btkAnm* mBtkAnm1;
|
||||
/* 0x2AC */ mDoExt_btkAnm* mBtkAnm2;
|
||||
/* 0x2B0 */ mDoExt_brkAnm* mBrkAnm1;
|
||||
/* 0x2B4 */ mDoExt_brkAnm* mBrkAnm2;
|
||||
/* 0x2B8 */ mDoExt_bckAnm* mBckAnm;
|
||||
/* 0x29C */ J3DModel* mpModel;
|
||||
/* 0x2A0 */ J3DModel* mpModelArrow[2]; // Extra models for arrow bundles
|
||||
/* 0x2A8 */ mDoExt_btkAnm* mpBtkAnm1;
|
||||
/* 0x2AC */ mDoExt_btkAnm* mpBtkAnm2;
|
||||
/* 0x2B0 */ mDoExt_brkAnm* mpBrkAnm1;
|
||||
/* 0x2B4 */ mDoExt_brkAnm* mpBrkAnm2;
|
||||
/* 0x2B8 */ mDoExt_bckAnm* mpBckAnm;
|
||||
/* 0x2BC */ dBgS_ObjAcch 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;
|
||||
/* 0x62C */ s32 mShadowId;
|
||||
/* 0x630 */ s32 mPickupFlag;
|
||||
/* 0x634 */ s32 field_0x634;
|
||||
/* 0x638 */ s16 field_0x638;
|
||||
/* 0x63A */ u8 m_itemNo;
|
||||
/* 0x63B */ u8 mDrawFlags;
|
||||
};
|
||||
|
||||
@@ -1000,6 +1000,8 @@ public:
|
||||
void procCutKesa_init();
|
||||
void procCutKesa();
|
||||
void checkNoControll() const;
|
||||
|
||||
J3DAnmTevRegKey* getBombBrk() { return mpBombBrk; }
|
||||
|
||||
virtual MtxP getLeftHandMatrix();
|
||||
virtual MtxP getRightHandMatrix();
|
||||
@@ -1094,7 +1096,7 @@ public:
|
||||
/* 0x2E98 */ J3DModel* mpHeldItemModel;
|
||||
/* 0x2E9C */ mDoExt_bckAnm mSwordAnim;
|
||||
/* 0x2EAC */ u8 field_0x2EAC[0x2EB0 - 0x2EAC];
|
||||
/* 0x2EB0 */ J3DAnmTevRegKey* field_0x2eb0;
|
||||
/* 0x2EB0 */ J3DAnmTevRegKey* mpBombBrk;
|
||||
/* 0x2EB4 */ J3DAnmTevRegKey* mpGwp00BrkData;
|
||||
/* 0x2EB8 */ J3DAnmTextureSRTKey* mpGwp00BtkData;
|
||||
/* 0x2EBC */ u8 field_0x2EBC[0x2ED4 - 0x2EBC];
|
||||
|
||||
@@ -14,7 +14,7 @@ struct daShopItem_c : public daItemBase_c {
|
||||
char* getShopArcname();
|
||||
s16 getShopBmdIdx();
|
||||
void CreateInit();
|
||||
int _create();
|
||||
inline int _create();
|
||||
bool _execute();
|
||||
void set_mtx();
|
||||
bool _draw();
|
||||
@@ -23,7 +23,7 @@ struct daShopItem_c : public daItemBase_c {
|
||||
void setListStart() {}
|
||||
void settingBeforeDraw();
|
||||
void setTevStr();
|
||||
s32 clothCreate();
|
||||
BOOL clothCreate();
|
||||
|
||||
//funcs in d_a_shop_item_static
|
||||
cXyz* getScaleP();
|
||||
@@ -35,7 +35,7 @@ struct daShopItem_c : public daItemBase_c {
|
||||
|
||||
static const char m_cloth_arcname[];
|
||||
static const f32 m_cullfar_max;
|
||||
static const u8 mModelType[256];
|
||||
static const u8 mModelType[255];
|
||||
static const daShopItem_c_m_data mData[255];
|
||||
|
||||
/* 0x63C */ request_of_phase_process_class field_0x63C;
|
||||
|
||||
@@ -36,6 +36,7 @@ class daAgb_c;
|
||||
class dTimer_c;
|
||||
class camera_class;
|
||||
class J2DOrthoGraph;
|
||||
class dDemo_actor_c;
|
||||
|
||||
class __d_timer_info_c {
|
||||
public:
|
||||
@@ -994,6 +995,10 @@ inline void dComIfGp_demo_update() {
|
||||
g_dComIfG_gameInfo.play.getDemo()->update();
|
||||
}
|
||||
|
||||
inline dDemo_actor_c* dComIfGp_demo_getActor(u8 id) {
|
||||
return g_dComIfG_gameInfo.play.getDemo()->mDemoObj.getActor(id);
|
||||
}
|
||||
|
||||
inline void dComIfGp_setLkDemoAnmArchive(JKRArchive* i_arc) {
|
||||
g_dComIfG_gameInfo.play.setLkDemoAnmArchive(i_arc);
|
||||
}
|
||||
@@ -1114,6 +1119,10 @@ inline void dComIfGp_event_setItemPartnerId(u32 id) {
|
||||
return g_dComIfG_gameInfo.play.getEvent().setPtI_Id(id);
|
||||
}
|
||||
|
||||
inline s32 dComIfGp_event_moveApproval(void* actor) {
|
||||
return g_dComIfG_gameInfo.play.getEvent().moveApproval(actor);
|
||||
}
|
||||
|
||||
inline dEvent_manager_c& dComIfGp_getEventManager() {
|
||||
return g_dComIfG_gameInfo.play.getEvtManager();
|
||||
}
|
||||
@@ -1182,6 +1191,10 @@ inline void dComIfGp_evmng_remove() {
|
||||
* === DRAWLIST ===
|
||||
*/
|
||||
|
||||
int dComIfGd_setShadow(u32 id, s8 param_2, J3DModel* pModel, cXyz* pPos, f32 param_5, f32 param_6,
|
||||
f32 y, f32 param_8, cBgS_PolyInfo& pFloorPoly, dKy_tevstr_c* param_10,
|
||||
s16 rotY, f32 param_12, GXTexObj* pTexObj);
|
||||
|
||||
inline int dComIfGd_setSimpleShadow(cXyz* pPos, f32 param_1, f32 param_2, cXyz* param_3, s16 angle,
|
||||
f32 param_5, GXTexObj* pTex) {
|
||||
return g_dComIfG_gameInfo.drawlist.setSimpleShadow(pPos, param_1, param_2, param_3, angle,
|
||||
@@ -1228,15 +1241,44 @@ inline void dComIfGd_setList() {
|
||||
g_dComIfG_gameInfo.drawlist.setXluList();
|
||||
}
|
||||
|
||||
inline void dComIfGd_setListMaskOff() {
|
||||
g_dComIfG_gameInfo.drawlist.setOpaListMaskOff();
|
||||
g_dComIfG_gameInfo.drawlist.setXluListMaskOff();
|
||||
}
|
||||
|
||||
inline void dComIfGd_setListSky() {
|
||||
g_dComIfG_gameInfo.drawlist.setOpaListSky();
|
||||
g_dComIfG_gameInfo.drawlist.setXluListSky();
|
||||
}
|
||||
|
||||
inline void dComIfGd_setListP0() {
|
||||
g_dComIfG_gameInfo.drawlist.setOpaListP0();
|
||||
g_dComIfG_gameInfo.drawlist.setXluListP0();
|
||||
}
|
||||
|
||||
inline void dComIfGd_setListP1() {
|
||||
g_dComIfG_gameInfo.drawlist.setOpaListP1();
|
||||
g_dComIfG_gameInfo.drawlist.setXluListP1();
|
||||
}
|
||||
|
||||
inline void dComIfGd_setListBG() {
|
||||
g_dComIfG_gameInfo.drawlist.setOpaListBG();
|
||||
}
|
||||
|
||||
inline void dComIfGd_setXluListBG() {
|
||||
g_dComIfG_gameInfo.drawlist.setXluListBG();
|
||||
}
|
||||
|
||||
inline void dComIfGd_setListFilter() {
|
||||
g_dComIfG_gameInfo.drawlist.setOpaListFilter();
|
||||
g_dComIfG_gameInfo.drawlist.setXluListFilter();
|
||||
}
|
||||
|
||||
inline void dComIfGd_setList2D() {
|
||||
g_dComIfG_gameInfo.drawlist.setOpaList2D();
|
||||
g_dComIfG_gameInfo.drawlist.setXluList2D();
|
||||
}
|
||||
|
||||
inline void dComIfGd_entryZSortXluList(J3DPacket* i_packet, cXyz& param_1) {
|
||||
g_dComIfG_gameInfo.drawlist.entryZSortXluList(i_packet, param_1);
|
||||
}
|
||||
|
||||
+7
-1
@@ -10,6 +10,12 @@ class dDemo_light_c;
|
||||
class dDemo_system_c;
|
||||
class TControl;
|
||||
class dMesg_tControl;
|
||||
class fopAc_ac_c;
|
||||
|
||||
class dDemo_actor_c /* : public JStage::TActor */ {
|
||||
public:
|
||||
void setActor(fopAc_ac_c*);
|
||||
};
|
||||
|
||||
class dDemo_object_c {
|
||||
public:
|
||||
@@ -17,7 +23,7 @@ public:
|
||||
~dDemo_object_c();
|
||||
|
||||
void appendActor(fopAc_ac_c*);
|
||||
void getActor(u8);
|
||||
dDemo_actor_c* getActor(u8);
|
||||
void createCamera();
|
||||
void getActiveCamera();
|
||||
void createAmbient();
|
||||
|
||||
@@ -214,10 +214,20 @@ public:
|
||||
void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, OPA_BUFFER); }
|
||||
void setOpaList() { setOpaDrawList(mpBufInvisibleModelOpa); }
|
||||
void setXluList() { setXluDrawList(mpBufInvisibleModelXlu); }
|
||||
void setOpaListMaskOff() { setOpaDrawList(mpBufInvisibleModelMaskOffOpa); }
|
||||
void setXluListMaskOff() { setXluDrawList(mpBufInvisibleModelMaskOffXlu); }
|
||||
void setOpaListSky() { setOpaDrawList(mpBufSkyOpa); }
|
||||
void setXluListSky() { setXluDrawList(mpBufSkyXlu); }
|
||||
void setOpaListP0() { setOpaDrawList(mpLinkBuf); }
|
||||
void setXluListP0() { setXluDrawList(mpLinkBuf); }
|
||||
void setOpaListP1() { setOpaDrawList(field_0x0000c); }
|
||||
void setXluListP1() { setXluDrawList(field_0x00010); }
|
||||
void setOpaListBG() { setOpaDrawList(mpBufWorldOpa); }
|
||||
void setXluListBG() { setXluDrawList(mpBufWorldXlu); }
|
||||
void setOpaListFilter() { setOpaDrawList(mpWetherFxBuffer); }
|
||||
void setXluListFilter() { setXluDrawList(mpWetherFxBuffer); }
|
||||
void setOpaList2D() { setOpaDrawList(field_0x00038); }
|
||||
void setXluList2D() { setXluDrawList(field_0x00038); }
|
||||
|
||||
void entryZSortXluList(J3DPacket* i_packet, cXyz& param_1) {
|
||||
entryZSortXluDrawList(mpBufInvisibleModelXlu, i_packet, param_1);
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ public:
|
||||
void soundProc();
|
||||
void check();
|
||||
void photoCheck();
|
||||
void moveApproval(void*);
|
||||
s32 moveApproval(void*);
|
||||
void compulsory(void*, const char*, u16);
|
||||
void remove();
|
||||
void getStageEventDt();
|
||||
|
||||
+65
-40
@@ -263,70 +263,95 @@ enum ItemTable {
|
||||
};
|
||||
|
||||
struct dItem_data_item_resource {
|
||||
/* 0x00 */ char* mModelArcName;
|
||||
/* 0x04 */ char* mIconFilename;
|
||||
/* 0x08 */ s16 mModelFileIdx;
|
||||
/* 0x0A */ s16 mBtkFileIdx;
|
||||
/* 0x0C */ s16 mBrkFileIdx;
|
||||
/* 0x0E */ s16 field5_0xe;
|
||||
/* 0x10 */ s16 field6_0x10;
|
||||
/* 0x12 */ s16 field7_0x12;
|
||||
/* 0x14 */ s8 mTevRegAnimFrameIndex; // If specified, keep the BRK animation on this frame.
|
||||
/* 0x15 */ u8 field9_0x15;
|
||||
/* 0x16 */ s16 mNameMessageId;
|
||||
/* 0x18 */ u8 temp[8];
|
||||
/* 0x20 */ u16 mMaxHeapSize;
|
||||
/* 0x22 */ u8 field20_0x22;
|
||||
/* 0x23 */ u8 field21_0x23;
|
||||
/* 0x00 */ char* mArcname;
|
||||
/* 0x04 */ char* mTexture; // Filename in /files/res/Msg/itemicon.arc of its inventory icon.
|
||||
/* 0x08 */ s16 mBmdIdx;
|
||||
/* 0x0A */ s16 mSrtIdx; // BTK
|
||||
/* 0x0C */ s16 mSrtIdx2; // BTK
|
||||
/* 0x0E */ s16 mTevIdx; // BRK
|
||||
/* 0x10 */ s16 mTevIdx2; // BRK
|
||||
/* 0x12 */ s16 mBckIdx;
|
||||
/* 0x14 */ s8 mTevFrm; // If specified, keep the BRK animation on this frame.
|
||||
/* 0x16 */ s16 mItemMesgNum; // Message containing this item's name
|
||||
/* 0x18 */ u32 mUnused; // Always 0, doesn't seem to be read
|
||||
/* 0x1C */ u32 mUnknown; // Varies between items, but doesn't seem to be read
|
||||
/* 0x20 */ u16 mHeapSize;
|
||||
};
|
||||
|
||||
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;
|
||||
/* 0x00 */ char* mArc;
|
||||
/* 0x04 */ s16 mBmdIdx;
|
||||
/* 0x06 */ s16 mSrtIdx; // BTK
|
||||
/* 0x08 */ s16 mSrtIdx2; // BTK
|
||||
/* 0x0A */ s16 mTevIdx; // BRK
|
||||
/* 0x0C */ s16 mTevIdx2; // BRK
|
||||
/* 0x0E */ s16 mBckIdx;
|
||||
/* 0x10 */ s8 mTevFrm; // Unused, the equivalent in item_resource is used instead.
|
||||
/* 0x14 */ u32 mUnknown;
|
||||
/* 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;
|
||||
/* 0x00 */ u8 mShadowSize;
|
||||
/* 0x01 */ u8 mCollisionH; // Cylinder Height
|
||||
/* 0x02 */ u8 mCollisionR; // Cylinder Radius
|
||||
/* 0x03 */ u8 mSpecialBehaviors;
|
||||
/* 0x03 */ u8 mFlag;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(dItem_data_item_info) == 0x4);
|
||||
|
||||
struct dItem_data_effect_info {
|
||||
/* 0x00 */ u16 m_appear;
|
||||
/* 0x02 */ u16 m_sp_effect;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(dItem_data_effect_info) == 0x4);
|
||||
|
||||
class dItem_data {
|
||||
public:
|
||||
static char* item_arcname_tbl[0x70];
|
||||
static char* item_texture_tbl[0x74];
|
||||
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 dItem_data_effect_info effect_info[0x81];
|
||||
|
||||
static u32 getHeapSize(u8 itemNo) { return item_resource[itemNo].mMaxHeapSize; }
|
||||
static u32 getFieldHeapSize(u8 itemNo) { return field_item_res[itemNo].mHeapSize; }
|
||||
static char* getArcname(u8 no) { return item_resource[no].mArcname; }
|
||||
static char* getTexture(u8 no) { return item_resource[no].mTexture; }
|
||||
static s16 getBmdIdx(u8 no) { return item_resource[no].mBmdIdx; }
|
||||
static s16 getSrtIdx(u8 no) { return item_resource[no].mSrtIdx; }
|
||||
static s16 getSrtIdx2(u8 no) { return item_resource[no].mSrtIdx2; }
|
||||
static s16 getTevIdx(u8 no) { return item_resource[no].mTevIdx; }
|
||||
static s16 getTevIdx2(u8 no) { return item_resource[no].mTevIdx2; }
|
||||
static s16 getBckIdx(u8 no) { return item_resource[no].mBckIdx; }
|
||||
// static s16 getBmtIdx(u8 no) { return item_resource[no].mBmtIdx; }
|
||||
static s8 getTevFrm(u8 no) { return item_resource[no].mTevFrm; }
|
||||
static s16 getItemMesgNum(u8 no) { return item_resource[no].mItemMesgNum; }
|
||||
static u32 getHeapSize(u8 no) { return item_resource[no].mHeapSize; }
|
||||
|
||||
static bool checkAppearEffect(u8 itemNo);
|
||||
static s16 getAppearEffect(u8 itemNo);
|
||||
static bool checkSpecialEffect(u8 itemNo);
|
||||
static u16 getSpecialEffect(u8 itemNo);
|
||||
static char* getFieldArc(u8 no) { return field_item_res[no].mArc; }
|
||||
static s16 getFieldBmdIdx(u8 no) { return field_item_res[no].mBmdIdx; }
|
||||
static s16 getFieldSrtIdx(u8 no) { return field_item_res[no].mSrtIdx; }
|
||||
static s16 getFieldSrtIdx2(u8 no) { return field_item_res[no].mSrtIdx2; }
|
||||
static s16 getFieldTevIdx(u8 no) { return field_item_res[no].mTevIdx; }
|
||||
static s16 getFieldTevIdx2(u8 no) { return field_item_res[no].mTevIdx2; }
|
||||
static s16 getFieldBckIdx(u8 no) { return field_item_res[no].mBckIdx; }
|
||||
// static s16 getFieldBmtIdx(u8 no) { return field_item_res[no].mBmtIdx; }
|
||||
static u32 getFieldHeapSize(u8 no) { return field_item_res[no].mHeapSize; }
|
||||
|
||||
static u8 getShadowSize(u8 no) { return item_info[no].mShadowSize; }
|
||||
static u8 getH(u8 no) { return item_info[no].mCollisionH; }
|
||||
static u8 getR(u8 no) { return item_info[no].mCollisionR; }
|
||||
static bool chkFlag(u8 no, u32 mask) { return item_info[no].mFlag & mask; }
|
||||
|
||||
static bool checkAppearEffect(u8 no);
|
||||
static u16 getAppearEffect(u8 no);
|
||||
static bool checkSpecialEffect(u8 no);
|
||||
static u16 getSpecialEffect(u8 no);
|
||||
};
|
||||
|
||||
#endif /* D_ITEM_DATA_H */
|
||||
@@ -35,7 +35,7 @@ struct WIND_INFLUENCE {
|
||||
/* 0x18 */ f32 mRadius;
|
||||
/* 0x1C */ f32 mStrength;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ int field_0x24;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ u8 mbConstant;
|
||||
};
|
||||
|
||||
|
||||
@@ -338,5 +338,6 @@ f32* dKyw_get_wind_power();
|
||||
void squal_proc();
|
||||
void dKyw_pntwind_set(WIND_INFLUENCE*);
|
||||
void dKyw_pntwind_cut(WIND_INFLUENCE*);
|
||||
void dKyw_pwind_cylinder_set(WIND_INFLUENCE*);
|
||||
|
||||
#endif /* D_KANKYO_WETHER_H */
|
||||
+1
-1
@@ -63,7 +63,7 @@ public:
|
||||
void drawPointAgb(u8, f32, f32, f32, s8, s16, u8, u8, u8, u8);
|
||||
void getTypeAgbGcFromTypeAcs(u8, u8*, u8*);
|
||||
static void drawPointSingle(u8, f32, f32, f32, s8, s16, u8, u8, u8);
|
||||
void drawActorPointMiniMap(fopAc_ac_c*);
|
||||
static void drawActorPointMiniMap(fopAc_ac_c*);
|
||||
void mapBufferSendAGB_commonCursor();
|
||||
void mapBufferSendAGB_ocean();
|
||||
void mapBufferSendAGB_dungeon();
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ class dNpc_EventCut_c {
|
||||
/* 0x18 */ int mTimer;
|
||||
/* 0x1C */ char* mpActorName;
|
||||
/* 0x20 */ u32 field_0x20;
|
||||
/* 0x24 */ s32 mSetID;
|
||||
/* 0x24 */ s32 mSetId;
|
||||
/* 0x28 */ cXyz mOffsetPos;
|
||||
/* 0x34 */ cXyz mTargetActorPos;
|
||||
/* 0x40 */ fopAc_ac_c* mpTargetActor;
|
||||
|
||||
+7
-14
@@ -29,18 +29,7 @@ public:
|
||||
/* 0x13 */ u8 mbAffectedByWind;
|
||||
};
|
||||
|
||||
class JPACallBackBase {
|
||||
public:
|
||||
JPACallBackBase();
|
||||
virtual ~JPACallBackBase();
|
||||
|
||||
virtual void init(JPABaseEmitter*);
|
||||
virtual void execute(JPABaseEmitter*);
|
||||
virtual void executeAfter(JPABaseEmitter*);
|
||||
virtual void draw(JPABaseEmitter*);
|
||||
};
|
||||
|
||||
class dPa_levelEcallBack : public JPACallBackBase {
|
||||
class dPa_levelEcallBack : public JPACallBackBase<JPABaseEmitter*> {
|
||||
public:
|
||||
virtual ~dPa_levelEcallBack() {}
|
||||
};
|
||||
@@ -69,6 +58,9 @@ STATIC_ASSERT(sizeof(dPa_followEcallBack) == 0x14);
|
||||
|
||||
class dPa_smokeEcallBack : dPa_followEcallBack {
|
||||
public:
|
||||
dPa_smokeEcallBack(u8);
|
||||
virtual ~dPa_smokeEcallBack();
|
||||
|
||||
/* 0x14 */ s8 field_0x14;
|
||||
/* 0x15 */ u8 field_0x15;
|
||||
/* 0x16 */ _GXColor field_0x16;
|
||||
@@ -163,13 +155,14 @@ public:
|
||||
|
||||
class dPa_rippleEcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
dPa_rippleEcallBack() { mpBaseEmitter = NULL; }
|
||||
~dPa_rippleEcallBack();
|
||||
|
||||
void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
void end();
|
||||
void execute(JPABaseEmitter*);
|
||||
void draw(JPABaseEmitter*);
|
||||
|
||||
~dPa_rippleEcallBack();
|
||||
|
||||
/* 0x04 */ JPABaseEmitter* mpBaseEmitter;
|
||||
/* 0x08 */ cXyz* mPos;
|
||||
/* 0x0C */ u32 mFlags;
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace dPa_name {
|
||||
enum {
|
||||
ID_SCENE_END = 0x8466,
|
||||
};
|
||||
|
||||
u16 j_o_id[];
|
||||
u16 s_o_id[];
|
||||
}
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ struct dPath__Point {
|
||||
};
|
||||
|
||||
struct dPath {
|
||||
/* 0x00 */ u16 mNum;
|
||||
/* 0x00 */ u16 m_num;
|
||||
/* 0x02 */ u16 mNextPathId;
|
||||
/* 0x04 */ u8 mArg0;
|
||||
/* 0x05 */ u8 mLoops;
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef D_POINT_WIND_H
|
||||
#define D_POINT_WIND_H
|
||||
|
||||
#include "SSystem/SComponent/c_m3d_g_cps.h"
|
||||
#include "d/d_kankyo.h"
|
||||
|
||||
class dPointWind_c {
|
||||
public:
|
||||
cM3dGCpsS * mpCps;
|
||||
WIND_INFLUENCE mWind;
|
||||
|
||||
void set_pwind_init(cM3dGCpsS * pCps);
|
||||
void set_pwind_move();
|
||||
void set_pwind_delete();
|
||||
};
|
||||
|
||||
#endif /* D_POINT_WIND_H */
|
||||
@@ -12,7 +12,7 @@ public:
|
||||
bool resetGame();
|
||||
void offReset();
|
||||
|
||||
static bool isPause() { return pauseTimer == 0; }
|
||||
static bool isPause() { return pauseTimer != 0; }
|
||||
static void setPauseTimer(s8 time) { pauseTimer = time; }
|
||||
|
||||
static s8 pauseTimer;
|
||||
|
||||
+4
-4
@@ -162,7 +162,7 @@ public:
|
||||
/* 0x08 */ u32 mParameter;
|
||||
/* 0x0C */ cXyz mSpawnPos;
|
||||
/* 0x18 */ csXyz mAngle;
|
||||
/* 0x1E */ u16 mEnemyNo;
|
||||
/* 0x1E */ u16 mSetId;
|
||||
}; // Size: 0x20
|
||||
|
||||
class stage_actor_class {
|
||||
@@ -770,9 +770,8 @@ public:
|
||||
};
|
||||
|
||||
class dBgW_base;
|
||||
class dStage_roomStatus_c {
|
||||
class dStage_roomStatus_c : public dStage_roomDt_c {
|
||||
public:
|
||||
/* 0x000 */ dStage_roomDt_c mRoomDt;
|
||||
/* 0x054 */ dKy_tevstr_c mTevStr;
|
||||
/* 0x104 */ u8 mFlags;
|
||||
/* 0x105 */ bool mDraw;
|
||||
@@ -800,7 +799,7 @@ public:
|
||||
void zoneCountCheck(int) const;
|
||||
void checkDrawArea() const;
|
||||
dStage_darkStatus_c* getDarkStatus();
|
||||
void getDarkMode();
|
||||
u32 getDarkMode();
|
||||
void getBgW(int);
|
||||
|
||||
static JKRExpHeap* createMemoryBlock(int, u32);
|
||||
@@ -919,6 +918,7 @@ int dStage_mapInfo_GetOceanX(stage_map_info_class*);
|
||||
void dStage_infoCreate();
|
||||
|
||||
dStage_objectNameInf* dStage_searchName(const char*);
|
||||
const char* dStage_getName2(s16 i_procName, s8 i_subtype);
|
||||
|
||||
inline s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* i_stagInfo) {
|
||||
return (i_stagInfo->field_0x09 >> 1) & 0x7F;
|
||||
|
||||
@@ -17,7 +17,7 @@ struct actor_method_class {
|
||||
enum fopAc_Status_e {
|
||||
fopAcStts_SHOWMAP_e = 0x00000020,
|
||||
fopAcStts_NOEXEC_e = 0x00000080,
|
||||
fopAcStts_CULLSTOP_e = 0x00000100,
|
||||
fopAcStts_CULL_e = 0x00000100,
|
||||
fopAcStts_FREEZE_e = 0x00000400,
|
||||
fopAcStts_CARRY_e = 0x00002000,
|
||||
fopAcStts_NOPAUSE_e = 0x00020000,
|
||||
@@ -170,12 +170,19 @@ struct actor_attention_types {
|
||||
|
||||
class JntHit_c;
|
||||
|
||||
struct cull_sphere {
|
||||
struct fopAc_cullSizeSphere {
|
||||
public:
|
||||
fopAc_cullSizeSphere(cXyz, float);
|
||||
|
||||
/* 0x0 */ Vec mCenter;
|
||||
/* 0xC */ f32 mRadius;
|
||||
};
|
||||
|
||||
struct cull_box {
|
||||
struct fopAc_cullSizeBox {
|
||||
public:
|
||||
fopAc_cullSizeBox(const fopAc_cullSizeBox&);
|
||||
fopAc_cullSizeBox(cXyz, cXyz);
|
||||
|
||||
/* 0x0 */ Vec mMin;
|
||||
/* 0xC */ Vec mMax;
|
||||
};
|
||||
@@ -185,16 +192,16 @@ public:
|
||||
/* 0x0C0 */ int mAcType;
|
||||
/* 0x0C4 */ create_tag_class mAcTg;
|
||||
/* 0x0D8 */ create_tag_class mDwTg;
|
||||
/* 0x0EC */ profile_method_class* mSubMtd;
|
||||
/* 0x0F0 */ JKRSolidHeap* mHeap;
|
||||
/* 0x0EC */ actor_method_class* mSubMtd;
|
||||
/* 0x0F0 */ JKRSolidHeap* heap;
|
||||
/* 0x0F4 */ dEvt_info_c mEvtInfo;
|
||||
/* 0x10C */ dKy_tevstr_c mTevStr;
|
||||
/* 0x1BC */ u16 mSetID;
|
||||
/* 0x1BC */ u16 mSetId;
|
||||
/* 0x1BE */ u8 mGroup;
|
||||
/* 0x1BF */ s8 mCullType;
|
||||
/* 0x1C0 */ u8 mDemoActorId;
|
||||
/* 0x1C1 */ s8 mSubtype;
|
||||
/* 0x1C2 */ u8 mCarryType;
|
||||
/* 0x1C2 */ u8 mGbaName;
|
||||
/* 0x1C4 */ u32 mStatus;
|
||||
/* 0x1C8 */ u32 mCondition;
|
||||
/* 0x1CC */ u32 mParentPcId;
|
||||
@@ -206,8 +213,8 @@ public:
|
||||
/* 0x220 */ cXyz speed;
|
||||
/* 0x22C */ MtxP mCullMtx;
|
||||
union {
|
||||
/* 0x230 */ cull_box mBox;
|
||||
/* 0x230 */ cull_sphere mSphere;
|
||||
/* 0x230 */ fopAc_cullSizeBox mBox;
|
||||
/* 0x230 */ fopAc_cullSizeSphere mSphere;
|
||||
} mCull;
|
||||
/* 0x248 */ f32 mCullSizeFar;
|
||||
/* 0x24C */ J3DModel* model;
|
||||
|
||||
@@ -28,10 +28,10 @@ struct fopAcM_prm_class {
|
||||
/* 0x00 */ u32 mParameter; // single U32 Parameter
|
||||
/* 0x04 */ cXyz mPos;
|
||||
/* 0x10 */ csXyz mAngle; // rotation
|
||||
/* 0x16 */ u16 mEnemyNo;
|
||||
/* 0x16 */ u16 mSetId;
|
||||
/* 0x18 */ u8 mScale[3];
|
||||
/* 0x1B */ u8 mGbaName; // from WW, maybe a different parameter here
|
||||
/* 0x1C */ s32 mParentPId; // parent process ID
|
||||
/* 0x1B */ u8 mGbaName;
|
||||
/* 0x1C */ s32 mParentPcId; // parent process ID
|
||||
/* 0x20 */ s8 mSubtype;
|
||||
/* 0x21 */ s8 mRoomNo;
|
||||
};
|
||||
@@ -99,10 +99,6 @@ enum fopAcM_CARRY {
|
||||
/* 0x30 */ fopAcM_CARRY_UNK_30 = 0x30,
|
||||
};
|
||||
|
||||
inline u32 fopAcM_CheckCarryType(fopAc_ac_c* actor, fopAcM_CARRY type) {
|
||||
return actor->mCarryType & type;
|
||||
}
|
||||
|
||||
inline u32 fopAcM_checkHookCarryNow(fopAc_ac_c* pActor) {
|
||||
return fopAcM_checkStatus(pActor, 0x100000);
|
||||
}
|
||||
@@ -143,10 +139,6 @@ inline fopAc_ac_c* fopAcM_Search(fopAcIt_JudgeFunc func, void* param) {
|
||||
return (fopAc_ac_c*)fopAcIt_Judge(func, param);
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* fopAcM_SearchByID(unsigned int id) {
|
||||
return (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)fpcSch_JudgeByID, &id);
|
||||
}
|
||||
|
||||
inline cXyz& fopAcM_GetPosition_p(fopAc_ac_c* pActor) {
|
||||
return pActor->current.pos;
|
||||
}
|
||||
@@ -296,6 +288,10 @@ inline BOOL fopAcM_isSwitch(fopAc_ac_c* pActor, int sw) {
|
||||
return dComIfGs_isSwitch(sw, fopAcM_GetHomeRoomNo(pActor));
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* fopAcM_SearchByID(unsigned int id) {
|
||||
return (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)fpcSch_JudgeByID, &id);
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* fopAcM_SearchByName(s16 proc_id) {
|
||||
return (fopAc_ac_c*)fopAcIt_Judge(fpcSch_JudgeForPName, &proc_id);
|
||||
}
|
||||
@@ -315,7 +311,7 @@ inline f32 fopAcM_searchActorDistanceY(fopAc_ac_c* actorA, fopAc_ac_c* actorB) {
|
||||
}
|
||||
|
||||
inline u16 fopAcM_GetSetId(fopAc_ac_c* p_actor) {
|
||||
return p_actor->mSetID;
|
||||
return p_actor->mSetId;
|
||||
}
|
||||
|
||||
inline void dComIfGs_onActor(int bitNo, int roomNo);
|
||||
@@ -345,14 +341,11 @@ fopAcM_prm_class* createAppend(u16 enemyNo, u32 parameters, cXyz* p_pos, int roo
|
||||
|
||||
void fopAcM_Log(fopAc_ac_c* p_actor, char* str);
|
||||
|
||||
void fopAcM_delete(fopAc_ac_c* p_actor);
|
||||
|
||||
s32 fopAcM_delete(fopAc_ac_c* p_actor);
|
||||
s32 fopAcM_delete(unsigned int actorID);
|
||||
|
||||
s32 fopAcM_create(char*, u32 i_parameter, cXyz* i_pos, int i_roomNo, csXyz* i_angle, cXyz* i_scale, createFunc i_createFunc);
|
||||
|
||||
s32 fopAcM_create(s16 i_procName, u32 i_parameter, cXyz* i_pos, int i_roomNo, csXyz* i_angle,
|
||||
cXyz* i_scale, s8 i_subType, createFunc i_createFunc);
|
||||
s32 fopAcM_create(s16 i_procName, u32 i_parameter, cXyz* i_pos, int i_roomNo, csXyz* i_angle, cXyz* i_scale, s8 i_subType, createFunc i_createFunc);
|
||||
|
||||
inline s32 fopAcM_create(s16 i_procName, createFunc i_createFunc, void*);
|
||||
|
||||
|
||||
@@ -2,16 +2,32 @@
|
||||
#define F_F_OP_CAMERA_H_
|
||||
|
||||
#include "f_op/f_op_view.h"
|
||||
#include "SSystem/SComponent/c_sxyz.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
|
||||
class camera_class;
|
||||
class camera_process_class : public view_class {
|
||||
public:
|
||||
/* 0x210 */ create_tag_class mDwTg;
|
||||
/* 0x224 */ leafdraw_method_class* mpMtd;
|
||||
/* 0x228 */ u8 field_0x228[4];
|
||||
/* 0x22C */ s8 mPrm1;
|
||||
/* 0x22D */ s8 mPrm2;
|
||||
/* 0x22E */ s8 mPrm3;
|
||||
/* 0x22F */ s8 field_0x22f;
|
||||
/* 0x230 */ csXyz mAngle;
|
||||
/* 0x238 */ int field_0x238;
|
||||
};
|
||||
|
||||
class camera_class : public camera_process_class {
|
||||
public:
|
||||
/* 0x23C */ int field_0x23c;
|
||||
/* 0x240 */ request_of_phase_process_class mPhaseReq;
|
||||
// /* 0x248 */ dCamera_c mCamera;
|
||||
};
|
||||
|
||||
struct camera_process_profile_definition {
|
||||
/* 0x00 */ view_process_profile_definition mBase;
|
||||
/* 0x3C */ leafdraw_method_class* mSubMtd; // Subclass methods
|
||||
};
|
||||
|
||||
static s32 fopCam_Draw(camera_class* param_1);
|
||||
static int fopCam_Execute(camera_class* pCamera);
|
||||
int fopCam_IsDelete(camera_class* pCamera);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -20,7 +20,7 @@ typedef struct base_process_class {
|
||||
/* 0x0B */ u8 mPauseFlag;
|
||||
/* 0x0C */ s8 mInitState;
|
||||
/* 0x0D */ u8 mUnk2;
|
||||
/* 0x0E */ s16 mBsTypeId;
|
||||
/* 0x0E */ s16 mProfName;
|
||||
/* 0x10 */ process_profile_definition* mpProf;
|
||||
/* 0x14 */ struct create_request* mpCtRq;
|
||||
/* 0x18 */ layer_management_tag_class mLyTg;
|
||||
|
||||
@@ -30,7 +30,7 @@ inline void fpcM_SetParam(void* p_actor, u32 param) {
|
||||
}
|
||||
|
||||
inline s16 fpcM_GetProfName(const void* pActor) {
|
||||
return ((base_process_class*)pActor)->mBsTypeId;
|
||||
return ((base_process_class*)pActor)->mProfName;
|
||||
}
|
||||
|
||||
inline int fpcM_Create(s16 procName, FastCreateReqFunc createFunc, void* process) {
|
||||
|
||||
@@ -62,6 +62,10 @@ inline void mDoAud_seStart(u32 i_sfxID, Vec* i_sePos, u32 param_2, s8 i_reverb)
|
||||
mDoAud_zelAudio_c::getInterface()->seStart(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
}
|
||||
|
||||
inline void mDoAud_seDeleteObject(Vec* i_sePos) {
|
||||
mDoAud_zelAudio_c::getInterface()->seDeleteObject(i_sePos);
|
||||
}
|
||||
|
||||
inline void mDoAud_bgmMuteMtDragon() {
|
||||
mDoAud_zelAudio_c::getInterface()->bgmMuteMtDragon();
|
||||
}
|
||||
|
||||
@@ -45,13 +45,13 @@ class mDoExt_btkAnm : public mDoExt_baseAnm {
|
||||
public:
|
||||
mDoExt_btkAnm() { mpTexMtxAnm = NULL; }
|
||||
int init(J3DMaterialTable* i_matTable, J3DAnmTextureSRTKey* i_btk, int i_anmPlay,
|
||||
int i_attribute, f32 i_rate, s16 i_start, s16 i_end, bool i_modify, bool i_entry);
|
||||
int i_attribute, f32 i_rate, s16 i_start, s16 i_end, bool i_modify, int i_entry);
|
||||
void entry(J3DMaterialTable* i_matTable, f32 i_frame);
|
||||
void entry(J3DModelData *i_modelData, f32 i_frame);
|
||||
|
||||
void entry(J3DModelData* i_modelData) { entry(i_modelData, getFrame()); }
|
||||
int init(J3DModelData* i_modelData, J3DAnmTextureSRTKey* i_btk, int i_anmPlay, int i_attribute,
|
||||
f32 i_rate, s16 i_start, s16 i_end, bool i_modify, bool i_entry);
|
||||
f32 i_rate, s16 i_start, s16 i_end, bool i_modify, int i_entry);
|
||||
|
||||
int remove(J3DModelData* i_modelData) { return i_modelData->removeTexMtxAnimator(mpAnm); }
|
||||
void entryFrame() { entryFrame(getFrame()); }
|
||||
@@ -327,6 +327,11 @@ int mDoExt_getSafeGameHeapSize();
|
||||
int mDoExt_getSafeZeldaHeapSize();
|
||||
int mDoExt_getSafeCommandHeapSize();
|
||||
|
||||
JKRSolidHeap * mDoExt_createSolidHeapFromGameToCurrent(u32 size, u32 align);
|
||||
void mDoExt_restoreCurrentHeap();
|
||||
void mDoExt_adjustSolidHeap(JKRSolidHeap * pHeap);
|
||||
void mDoExt_destroySolidHeap(JKRSolidHeap * pHeap);
|
||||
|
||||
extern JKRExpHeap* zeldaHeap;
|
||||
extern JKRExpHeap* gameHeap;
|
||||
extern JKRExpHeap* commandHeap;
|
||||
|
||||
@@ -47,6 +47,7 @@ public:
|
||||
static bool isAutoForcus() { return data_80450BE7; } */
|
||||
static void setTickRate(u32 rate) { JFWDisplay::getManager()->setTickRate(rate); }
|
||||
static void waitBlanking(int wait) { JFWDisplay::getManager()->waitBlanking(wait); }
|
||||
static BOOL isMonotone() { return mMonotone; }
|
||||
|
||||
static ResTIMG* getFrameBufferTimg() { return mFrameBufferTimg; }
|
||||
static void* getFrameBufferTex() { return mFrameBufferTex; }
|
||||
@@ -74,6 +75,9 @@ public:
|
||||
static bool mBlureFlag;
|
||||
static u8 mBlureRate;
|
||||
static u8 mFade;
|
||||
static u8 mMonotone;
|
||||
static s16 mMonotoneRate;
|
||||
static s16 mMonotoneRateSpeed;
|
||||
};
|
||||
|
||||
#endif /* M_DO_M_DO_GRAPHIC_H */
|
||||
@@ -326,7 +326,7 @@ void cSGlobe::Polar(cSPolar* csp) const {
|
||||
}
|
||||
|
||||
/* 80254864-80254890 .text Invert__7cSGlobeFv */
|
||||
cXyz cSGlobe::Norm() const {
|
||||
cSGlobe glob(1.0f, mAzimuth, mInclination);
|
||||
return glob.Xyz();
|
||||
cSGlobe& cSGlobe::Invert() {
|
||||
mRadius = -mRadius;
|
||||
return Formal();
|
||||
}
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
cBgS_GndChk::cBgS_GndChk() {
|
||||
m_pos = cXyz::Zero;
|
||||
SetActorPid(0xFFFFFFFF);
|
||||
mFlags = 2;
|
||||
mFlags = 3;
|
||||
}
|
||||
|
||||
@@ -366,7 +366,7 @@ s32 cLib_distanceAngleS(s16 x, s16 y) {
|
||||
return abs(static_cast<s16>(x - y));
|
||||
}
|
||||
|
||||
static Mtx mtx[10];
|
||||
Mtx mtx[10];
|
||||
|
||||
Mtx* calc_mtx = mtx;
|
||||
|
||||
|
||||
@@ -13,18 +13,19 @@
|
||||
#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) {
|
||||
CHECK_FLOAT_CLASS(21, pos.x);
|
||||
CHECK_FLOAT_CLASS(22, pos.y);
|
||||
CHECK_FLOAT_CLASS(23, pos.z);
|
||||
CHECK_VEC3_RANGE(26, pos);
|
||||
mCenter = pos;
|
||||
void cM3dGSph::SetC(const cXyz& p) {
|
||||
CHECK_FLOAT_CLASS(18, p.x);
|
||||
CHECK_FLOAT_CLASS(19, p.y);
|
||||
CHECK_FLOAT_CLASS(20, p.z);
|
||||
CHECK_VEC3_RANGE(23, p);
|
||||
mCenter = p;
|
||||
}
|
||||
|
||||
/* 80252624-80252750 .text SetR__8cM3dGSphFf */
|
||||
void cM3dGSph::SetR(float r) {
|
||||
CHECK_FLOAT_CLASS(32, r);
|
||||
CHECK_FLOAT_RANGE(33, r);
|
||||
mRadius = r;
|
||||
}
|
||||
|
||||
/* 80252750-8025277C .text cross__8cM3dGSphCFPC8cM3dGSphP4cXyz */
|
||||
|
||||
@@ -153,3 +153,7 @@ bool cXyz::isZero(void) const {
|
||||
return fabsf(this->x) < 3.8146972e-06f && fabsf(this->y) < 3.8146972e-06f &&
|
||||
fabsf(this->z) < 3.8146972e-06f;
|
||||
}
|
||||
|
||||
// Unused, but must be in .rodata to match
|
||||
static const char * fmt0 = "[%f %f %f]\n";
|
||||
static const char * fmt1 = "%s=[%f %f %f]\n";
|
||||
|
||||
@@ -226,8 +226,10 @@ void daArrow_c::setKeepMatrix() {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
|
||||
mDoMtx_stack_c::transS(0.7f, -0.07f, -0.2f);
|
||||
// TODO: How did they pass an unsigned short (0xB0B6) to a function that takes a signed short?
|
||||
mDoMtx_stack_c::XYZrotM(0xB0B6, 0x238E, -0x6333);
|
||||
// This function takes three signed shorts, but one of the literals passed here is unsigned.
|
||||
// X rotation must be a float literal to force the compiler to pass an unsigned short.
|
||||
// Z rotation must be an int literal to pass a signed short as normal.
|
||||
mDoMtx_stack_c::XYZrotM((248.5f*65536)/360, 0x238E, -0x6333);
|
||||
|
||||
MtxP handMtx = player->getLeftHandMatrix();
|
||||
cMtx_concat(handMtx, mDoMtx_stack_c::get(), mDoMtx_stack_c::get());
|
||||
|
||||
+85
-79
@@ -15,32 +15,34 @@
|
||||
|
||||
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
|
||||
dCcD_SrcCyl daItem_c::m_cyl_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
{
|
||||
/* Flags */ 0,
|
||||
/* SrcObjAt Type */ 0,
|
||||
/* SrcObjAt Atp */ 0,
|
||||
/* SrcObjAt SPrm */ 0,
|
||||
/* SrcObjTg Type */ 0xFFFFFFFF,
|
||||
/* SrcObjTg SPrm */ 0x09,
|
||||
/* SrcObjCo SPrm */ 0x59,
|
||||
/* SrcGObjAt Se */ 0,
|
||||
/* SrcGObjAt HitMark */ 0,
|
||||
/* SrcGObjAt Spl */ 0,
|
||||
/* SrcGObjAt Mtrl */ 0,
|
||||
/* SrcGObjAt GFlag */ 0,
|
||||
/* SrcGObjTg Se */ 0,
|
||||
/* SrcGObjTg HitMark */ 0,
|
||||
/* SrcGObjTg Spl */ 0,
|
||||
/* SrcGObjTg Mtrl */ 0,
|
||||
/* SrcGObjTg GFlag */ 0x04,
|
||||
/* SrcGObjCo GFlag */ 0,
|
||||
},
|
||||
// cM3dGCylS
|
||||
{
|
||||
/* Center */ 0.0f, 0.0f, 0.0f,
|
||||
/* Radius */ 10.0f,
|
||||
/* Height */ 50.0f,
|
||||
},
|
||||
};
|
||||
|
||||
/* 800F4BC8-800F4BD4 .text getData__12daItemBase_cFv */
|
||||
@@ -113,20 +115,23 @@ 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);
|
||||
mAcchCir.SetWall(30.0f, 30.0f);
|
||||
cXyz* speedPtr;
|
||||
mAcch.Set(¤t.pos, &next.pos, this, 1, &mAcchCir, speedPtr = &speed, NULL, NULL);
|
||||
mAcch.m_flags &= ~0x400;
|
||||
mAcch.m_flags &= ~0x8;
|
||||
mCullMtx = mModel->mBaseTransformMtx;
|
||||
mCullMtx = mpModel->mBaseTransformMtx;
|
||||
mStts.Init(0, 0xFF, this);
|
||||
mCyl.Set(m_cyl_src);
|
||||
mCyl.SetStts(&mStts);
|
||||
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) {
|
||||
// Regswaps if the inlines are used.
|
||||
// f32 height = dItem_data::getH(m_itemNo);
|
||||
// f32 radius = dItem_data::getR(m_itemNo);
|
||||
f32 height = dItem_data::item_info[m_itemNo].mCollisionH;
|
||||
f32 radius = dItem_data::item_info[m_itemNo].mCollisionR;
|
||||
if (mScale.x > 1.0f) {
|
||||
height *= mScale.x;
|
||||
radius *= mScale.x;
|
||||
}
|
||||
@@ -135,18 +140,22 @@ void daItem_c::CreateInit() {
|
||||
|
||||
mItemTimer = getData()->mDuration;
|
||||
field7_0x65a = getData()->field7_0x18;
|
||||
mCurState = 0;
|
||||
field3_0x650 = speedPtr->y;
|
||||
mStatusFlags |= 2;
|
||||
mCurState = 0;
|
||||
|
||||
mUnknownParam = (fpcM_GetParam(this) & 0x03000000) >> 0x18;
|
||||
// TODO: should probably add inlines here
|
||||
// e.g. getType__10daItem_prmFP8daItem_c etc
|
||||
if ((fpcM_GetParam(this) & 0x03000000) >> 0x18 == 3 || (fpcM_GetParam(this) & 0x03000000) >> 0x18 == 1) {
|
||||
mStatusFlags |= 2;
|
||||
}
|
||||
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
|
||||
if (dItem_data::checkSpecialEffect(m_itemNo) && (m_itemNo != SMALL_KEY || (m_itemNo == SMALL_KEY && (mStatusFlags & 2)))) {
|
||||
u16 particleID = dItem_data::getSpecialEffect(m_itemNo);
|
||||
dComIfGp_particle_set(particleID, ¤t.pos, NULL, NULL, 0xFF, &mPtclFollowCb, -1, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
switch (m_itemNo) {
|
||||
@@ -154,27 +163,30 @@ void daItem_c::CreateInit() {
|
||||
case BOMB_10:
|
||||
case BOMB_20:
|
||||
case BOMB_30:
|
||||
mScaleTarget.x = 0.6;
|
||||
mScaleTarget.y = 0.6;
|
||||
mScaleTarget.z = 0.6;
|
||||
mScaleTarget.x = 0.6f;
|
||||
mScaleTarget.y = 0.6f;
|
||||
mScaleTarget.z = 0.6f;
|
||||
break;
|
||||
default:
|
||||
mScaleTarget.x = 1.0;
|
||||
mScaleTarget.y = 1.0;
|
||||
mScaleTarget.z = 1.0;
|
||||
mScaleTarget.x = 1.0f;
|
||||
mScaleTarget.y = 1.0f;
|
||||
mScaleTarget.z = 1.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
mSwitchId = (fpcM_GetParam(this) & 0x00FF0000) >> 0x10;
|
||||
if (mSwitchId != 0xFF && fopAcM_isSwitch(this, mSwitchId)) {
|
||||
if (mSwitchId != 0xFF && !fopAcM_isSwitch(this, mSwitchId)) {
|
||||
hide();
|
||||
mStatusFlags |= 2;
|
||||
}
|
||||
mActivationSwitch = (orig.angle.z & 0x00FF) >> 0;
|
||||
|
||||
current.angle.z = 0;
|
||||
orig.angle.z = 0;
|
||||
initAction();
|
||||
|
||||
switch (m_itemNo) {
|
||||
case SWORD:
|
||||
case SHIELD:
|
||||
mStatus |= 0x4000;
|
||||
break;
|
||||
@@ -184,12 +196,11 @@ void daItem_c::CreateInit() {
|
||||
}
|
||||
|
||||
set_mtx();
|
||||
animPlay(1.0, 1.0, 1.0, 1.0, 1.0);
|
||||
animPlay(1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
|
||||
|
||||
s16 procname = PROC_BST; // Gohdan
|
||||
if (fopAcIt_Judge(&fpcSch_JudgeForPName, &procname)) {
|
||||
// TODO: dPa_control_c::set
|
||||
mpParticleEmitter = 0;
|
||||
mpParticleEmitter = dComIfGp_particle_set(0x81E1, ¤t.pos, NULL, NULL, 0xFF, NULL, -1, NULL, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,7 +211,7 @@ s32 daItem_c::_daItem_create() {
|
||||
|
||||
m_itemNo = (fpcM_GetParam(this) & 0x000000FF) >> 0x00;
|
||||
|
||||
if (!dItem_data::field_item_res[m_itemNo].mModelArcName) {
|
||||
if (!dItem_data::getFieldArc(m_itemNo)) {
|
||||
setLoadError();
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
@@ -215,10 +226,9 @@ s32 daItem_c::_daItem_create() {
|
||||
}
|
||||
}
|
||||
|
||||
s32 phase_state = dComIfG_resLoad(&mPhs, dItem_data::field_item_res[m_itemNo].mModelArcName);
|
||||
s32 phase_state = dComIfG_resLoad(&mPhs, dItem_data::getFieldArc(m_itemNo));
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
u16 heapSize = dItem_data::field_item_res[m_itemNo].mHeapSize;
|
||||
s32 result = fopAcM_entrySolidHeap(this, (heapCallbackFunc)&CheckFieldItemCreateHeap, heapSize);
|
||||
s32 result = fopAcM_entrySolidHeap(this, &CheckFieldItemCreateHeap, dItem_data::getFieldHeapSize(m_itemNo));
|
||||
if (!result) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
@@ -319,21 +329,22 @@ void daItem_c::setTevStr() {
|
||||
mTevStr.mColorK0.r = 0xFF;
|
||||
mTevStr.mColorK0.g = 0xFF;
|
||||
mTevStr.mColorK0.b = 0xFF;
|
||||
g_env_light.setLightTevColorType(mModel, &mTevStr);
|
||||
g_env_light.setLightTevColorType(mpModel, &mTevStr);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (!mModelArrow[i]) {
|
||||
if (!mpModelArrow[i]) {
|
||||
continue;
|
||||
}
|
||||
g_env_light.setLightTevColorType(mModelArrow[i], &mTevStr);
|
||||
g_env_light.setLightTevColorType(mpModelArrow[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);
|
||||
mPtclRippleCb.end();
|
||||
// TODO
|
||||
DeleteBase(dItem_data::getFieldArc(m_itemNo));
|
||||
}
|
||||
|
||||
/* 800F6268-800F6434 .text Reflect__FR4cXyzP4cXyzff */
|
||||
@@ -367,7 +378,7 @@ bool daItem_c::checkItemDisappear() {
|
||||
if (mStatusFlags & 0x10) {
|
||||
disappearing = false;
|
||||
}
|
||||
if (dItem_data::item_info[m_itemNo].mSpecialBehaviors & 0x01) {
|
||||
if (dItem_data::chkFlag(m_itemNo, 0x01)) {
|
||||
disappearing = false;
|
||||
}
|
||||
if (g_dComIfG_gameInfo.play.mEvtCtrl.mMode != 0) {
|
||||
@@ -394,7 +405,7 @@ void daItem_c::setItemTimer(int timer) {
|
||||
|
||||
/* 800F6E74-800F6EC8 .text checkPlayerGet__8daItem_cFv */
|
||||
BOOL daItem_c::checkPlayerGet() {
|
||||
if (field20_0x638 < getData()->field47_0x42) {
|
||||
if (field_0x638 < getData()->field47_0x42) {
|
||||
return FALSE;
|
||||
}
|
||||
if (mCurState == 3) {
|
||||
@@ -525,11 +536,6 @@ s32 daItem_c::_daItem_isdelete() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800F89F8-800F8A14 .text getHeadTopPos__9daPy_py_cCFv */
|
||||
void daPy_py_c::getHeadTopPos() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
static actor_method_class l_daItem_Method = {
|
||||
(process_method_func)daItem_Create,
|
||||
(process_method_func)daItem_Delete,
|
||||
@@ -539,18 +545,18 @@ static actor_method_class l_daItem_Method = {
|
||||
};
|
||||
|
||||
extern actor_process_profile_definition g_profile_ITEM = {
|
||||
fpcLy_CURRENT_e,
|
||||
7,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_ITEM,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(daItem_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method.base,
|
||||
0x00F5,
|
||||
&l_daItem_Method,
|
||||
0x000C0100,
|
||||
fopAc_ACTOR_e,
|
||||
fopAc_CULLBOX_0_e,
|
||||
/* LayerID */ fpcLy_CURRENT_e,
|
||||
/* ListID */ 7,
|
||||
/* ListPrio */ fpcPi_CURRENT_e,
|
||||
/* ProcName */ PROC_ITEM,
|
||||
/* Proc SubMtd */ &g_fpcLf_Method.mBase,
|
||||
/* Size */ sizeof(daItem_c),
|
||||
/* SizeOther */ 0,
|
||||
/* Parameters */ 0,
|
||||
/* Leaf SubMtd */ &g_fopAc_Method.base,
|
||||
/* Priority */ 0x00F5,
|
||||
/* Actor SubMtd */ &l_daItem_Method,
|
||||
/* Status */ 0x000C0100,
|
||||
/* Group */ fopAc_ACTOR_e,
|
||||
/* CullType */ fopAc_CULLBOX_0_e,
|
||||
};
|
||||
|
||||
+136
-74
@@ -4,188 +4,250 @@
|
||||
//
|
||||
|
||||
#include "d/actor/d_a_itembase.h"
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/d_resorce.h"
|
||||
#include "d/d_drawlist.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_player_link.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 800F8A14-800F8A3C .text DeleteBase__12daItemBase_cFPCc */
|
||||
s32 daItemBase_c::DeleteBase(const char* resName) {
|
||||
BOOL daItemBase_c::DeleteBase(const char* resName) {
|
||||
dComIfG_resDelete(&mPhs, resName);
|
||||
return 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 800F8A3C-800F8A44 .text clothCreate__12daItemBase_cFv */
|
||||
s32 daItemBase_c::clothCreate() {
|
||||
return 1;
|
||||
BOOL daItemBase_c::clothCreate() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 800F8A44-800F9074 .text CreateItemHeap__12daItemBase_cFPCcsssssss */
|
||||
s32 daItemBase_c::CreateItemHeap(const char* resName, short resIdx, short btkAnm1, short btkAnm2, short brkAnm1, short brkAnm2, short bckAnm, short) {
|
||||
/* Nonmatching */
|
||||
BOOL daItemBase_c::CreateItemHeap(const char* resName, short resIdx, short btkAnm1, short btkAnm2, short brkAnm1, short brkAnm2, short bckAnm, short) {
|
||||
JUT_ASSERT(78, 0 <= m_itemNo && m_itemNo <= 255);
|
||||
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(resName, resIdx);
|
||||
JUT_ASSERT(85, modelData != 0);
|
||||
|
||||
mModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
|
||||
if (!mModel) {
|
||||
return 0;
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
|
||||
if (!mpModel) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
switch (m_itemNo) {
|
||||
case ARROW_30:
|
||||
mModelArrow[0] = mDoExt_J3DModel__create(modelData, 8, 0x11000002);
|
||||
if (!mModelArrow[0]) {
|
||||
return 0;
|
||||
mpModelArrow[0] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000002);
|
||||
if (!mpModelArrow[0]) {
|
||||
return FALSE;
|
||||
}
|
||||
case ARROW_20:
|
||||
mModelArrow[1] = mDoExt_J3DModel__create(modelData, 8, 0x11000002);
|
||||
if (!mModelArrow[1]) {
|
||||
return 0;
|
||||
mpModelArrow[1] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000002);
|
||||
if (!mpModelArrow[1]) {
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
mModelArrow[1] = NULL;
|
||||
mModelArrow[0] = NULL;
|
||||
mpModelArrow[1] = NULL;
|
||||
mpModelArrow[0] = NULL;
|
||||
}
|
||||
|
||||
mBtkAnm1 = NULL;
|
||||
J3DAnmTextureSRTKey* pbtk;
|
||||
mpBtkAnm1 = NULL;
|
||||
if (btkAnm1 != -1) {
|
||||
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(resName, btkAnm1);
|
||||
pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(resName, btkAnm1);
|
||||
JUT_ASSERT(140, pbtk != 0);
|
||||
mBtkAnm1 = new mDoExt_btkAnm();
|
||||
if (!mBtkAnm1 || !mBtkAnm1->init(modelData, pbtk, true, 2, 1.0, 0, -1, false, false)) {
|
||||
return 0;
|
||||
mpBtkAnm1 = new mDoExt_btkAnm();
|
||||
if (!mpBtkAnm1 || !mpBtkAnm1->init(modelData, pbtk, TRUE, 2, 1.0, 0, -1, false, 0)) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
mBtkAnm2 = NULL;
|
||||
mpBtkAnm2 = NULL;
|
||||
if (btkAnm2 != -1) {
|
||||
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(resName, btkAnm2);
|
||||
JUT_ASSERT(172, pbtk != 0);
|
||||
mBtkAnm2 = new mDoExt_btkAnm();
|
||||
if (!mBtkAnm2 || !mBtkAnm2->init(modelData, pbtk, true, 2, 1.0, 0, -1, false, false)) {
|
||||
return 0;
|
||||
pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(resName, btkAnm2);
|
||||
JUT_ASSERT(156, pbtk != 0);
|
||||
mpBtkAnm2 = new mDoExt_btkAnm();
|
||||
if (!mpBtkAnm2 || !mpBtkAnm2->init(modelData, pbtk, TRUE, 2, 1.0, 0, -1, false, 0)) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
mBrkAnm1 = NULL;
|
||||
J3DAnmTevRegKey* pbrk;
|
||||
mpBrkAnm1 = NULL;
|
||||
if (brkAnm1 != -1) {
|
||||
J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(resName, brkAnm1);
|
||||
pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(resName, brkAnm1);
|
||||
JUT_ASSERT(172, pbrk != 0);
|
||||
int shouldAnimate = dItem_data::item_resource[m_itemNo].mTevRegAnimFrameIndex == 0xFF;
|
||||
mBrkAnm1 = new mDoExt_brkAnm();
|
||||
if (!mBrkAnm1 || !mBrkAnm1->init(modelData, pbrk, shouldAnimate, 2, 1.0, 0, -1, false, false)) {
|
||||
return 0;
|
||||
s8 tevFrm = dItem_data::getTevFrm(m_itemNo);
|
||||
BOOL shouldAnimate = TRUE;
|
||||
if (tevFrm != -1) {
|
||||
shouldAnimate = FALSE;
|
||||
}
|
||||
mpBrkAnm1 = new mDoExt_brkAnm();
|
||||
if (!mpBrkAnm1 || !mpBrkAnm1->init(modelData, pbrk, shouldAnimate, 2, 1.0, 0, -1, false, false)) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
mBrkAnm2 = NULL;
|
||||
mpBrkAnm2 = NULL;
|
||||
if (brkAnm2 != -1) {
|
||||
J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(resName, brkAnm2);
|
||||
pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(resName, brkAnm2);
|
||||
JUT_ASSERT(197, pbrk != 0);
|
||||
mBrkAnm2 = new mDoExt_brkAnm();
|
||||
if (!mBrkAnm2 || !mBrkAnm2->init(modelData, pbrk, true, 2, 1.0, 0, -1, false, false)) {
|
||||
return 0;
|
||||
mpBrkAnm2 = new mDoExt_brkAnm();
|
||||
if (!mpBrkAnm2 || !mpBrkAnm2->init(modelData, pbrk, TRUE, 2, 1.0, 0, -1, false, false)) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
mBckAnm = NULL;
|
||||
J3DAnmTransform* pbck;
|
||||
mpBckAnm = NULL;
|
||||
if (bckAnm != -1) {
|
||||
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(resName, bckAnm);
|
||||
pbck = (J3DAnmTransform*)dComIfG_getObjectRes(resName, bckAnm);
|
||||
JUT_ASSERT(212, pbck != 0);
|
||||
mBckAnm = new mDoExt_bckAnm();
|
||||
if (!mBckAnm || !mBckAnm->init(modelData, pbck, true, 2, 1.0, 0, -1, false)) {
|
||||
return 0;
|
||||
mpBckAnm = new mDoExt_bckAnm();
|
||||
if (!mpBckAnm || !mpBckAnm->init(modelData, pbck, TRUE, 2, 1.0, 0, -1, false)) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (!clothCreate()) {
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 800F9074-800F9130 .text DrawBase__12daItemBase_cFv */
|
||||
s32 daItemBase_c::DrawBase() {
|
||||
BOOL daItemBase_c::DrawBase() {
|
||||
setTevStr();
|
||||
animEntry();
|
||||
setListStart();
|
||||
settingBeforeDraw();
|
||||
|
||||
mDoExt_modelUpdateDL(mModel);
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
|
||||
if (mModelArrow[0]) {
|
||||
mDoExt_modelUpdateDL(mModelArrow[0]);
|
||||
if (mpModelArrow[0]) {
|
||||
mDoExt_modelUpdateDL(mpModelArrow[0]);
|
||||
}
|
||||
if (mModelArrow[1]) {
|
||||
mDoExt_modelUpdateDL(mModelArrow[1]);
|
||||
if (mpModelArrow[1]) {
|
||||
mDoExt_modelUpdateDL(mpModelArrow[1]);
|
||||
}
|
||||
|
||||
setListEnd();
|
||||
setShadow();
|
||||
|
||||
return 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 800F9130-800F9184 .text setListStart__12daItemBase_cFv */
|
||||
void daItemBase_c::setListStart() {
|
||||
/* Nonmatching */
|
||||
if (!mDoGph_gInf_c::isMonotone()) {
|
||||
dComIfGd_setListMaskOff();
|
||||
} else {
|
||||
dComIfGd_setListP1();
|
||||
}
|
||||
}
|
||||
|
||||
/* 800F9184-800F91A8 .text setListEnd__12daItemBase_cFv */
|
||||
void daItemBase_c::setListEnd() {
|
||||
/* Nonmatching */
|
||||
dComIfGd_setList();
|
||||
}
|
||||
|
||||
/* 800F91A8-800F9244 .text settingBeforeDraw__12daItemBase_cFv */
|
||||
void daItemBase_c::settingBeforeDraw() {
|
||||
/* Nonmatching */
|
||||
if (isBomb(m_itemNo)) {
|
||||
daPy_lk_c* link = daPy_getPlayerLinkActorClass();
|
||||
link->getBombBrk()->setFrame(0.0f);
|
||||
mpModel->getModelData()->getJointNodePointer(0)->setMtxCalc(NULL);
|
||||
}
|
||||
|
||||
if (m_itemNo == BOMB_BAG || m_itemNo == HUMMER || m_itemNo == SMALL_KEY) {
|
||||
dDlst_texSpecmapST(&mEyePos, &mTevStr, mpModel->getModelData(), 1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
/* 800F9244-800F92DC .text setTevStr__12daItemBase_cFv */
|
||||
void daItemBase_c::setTevStr() {
|
||||
/* Nonmatching */
|
||||
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, getPositionP(), &mTevStr);
|
||||
g_env_light.setLightTevColorType(mpModel, &mTevStr);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (!mpModelArrow[i]) {
|
||||
continue;
|
||||
}
|
||||
g_env_light.setLightTevColorType(mpModelArrow[i], &mTevStr);
|
||||
}
|
||||
}
|
||||
|
||||
/* 800F92DC-800F93A8 .text setShadow__12daItemBase_cFv */
|
||||
void daItemBase_c::setShadow() {
|
||||
/* Nonmatching */
|
||||
f32 shadowSize = mScale.x * dItem_data::getShadowSize(m_itemNo);
|
||||
if (!dItem_data::chkFlag(m_itemNo, 0x10)) {
|
||||
dComIfGd_setSimpleShadow2(
|
||||
getPositionP(), mAcch.GetGroundH(), shadowSize, mAcch.m_gnd,
|
||||
0, 1.0f, dDlst_shadowControl_c::getSimpleTex()
|
||||
);
|
||||
} else {
|
||||
mShadowId = dComIfGd_setShadow(
|
||||
mShadowId, 1, mpModel, getPositionP(), 80.0f, shadowSize,
|
||||
current.pos.y, mAcch.GetGroundH(), mAcch.m_gnd, &mTevStr,
|
||||
0, 1.0f, dDlst_shadowControl_c::getSimpleTex()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/* 800F93A8-800F94C0 .text animEntry__12daItemBase_cFv */
|
||||
void daItemBase_c::animEntry() {
|
||||
/* Nonmatching */
|
||||
if (mBrkAnm1) {
|
||||
int constantFrame = dItem_data::item_resource[m_itemNo].mTevRegAnimFrameIndex;
|
||||
if (mpBrkAnm1) {
|
||||
int constantFrame = dItem_data::getTevFrm(m_itemNo);
|
||||
if (constantFrame != -1) {
|
||||
mBrkAnm1->entry(mModel->getModelData(), constantFrame);
|
||||
mpBrkAnm1->entry(mpModel->getModelData(), constantFrame);
|
||||
} else {
|
||||
mBrkAnm1->entry(mModel->getModelData());
|
||||
mpBrkAnm1->entry(mpModel->getModelData());
|
||||
}
|
||||
}
|
||||
if (mBtkAnm1) {
|
||||
mBtkAnm1->entry(mModel->getModelData());
|
||||
if (mpBtkAnm1) {
|
||||
mpBtkAnm1->entry(mpModel->getModelData());
|
||||
}
|
||||
if (mBrkAnm2) {
|
||||
mBrkAnm2->entry(mModel->getModelData());
|
||||
if (mpBrkAnm2) {
|
||||
mpBrkAnm2->entry(mpModel->getModelData());
|
||||
}
|
||||
if (mBtkAnm2) {
|
||||
mBtkAnm2->entry(mModel->getModelData());
|
||||
if (mpBtkAnm2) {
|
||||
mpBtkAnm2->entry(mpModel->getModelData());
|
||||
}
|
||||
if (mBckAnm) {
|
||||
mBckAnm->entry(mModel->getModelData());
|
||||
if (mpBckAnm) {
|
||||
mpBckAnm->entry(mpModel->getModelData());
|
||||
}
|
||||
}
|
||||
|
||||
/* 800F94C0-800F95B8 .text animPlay__12daItemBase_cFfffff */
|
||||
void daItemBase_c::animPlay(float, float, float, float, float) {
|
||||
/* Nonmatching */
|
||||
void daItemBase_c::animPlay(f32 brk1Speed, f32 brk2Speed, f32 btk1Speed, f32 btk2Speed, f32 bckSpeed) {
|
||||
if (mpBrkAnm1 && dItem_data::getTevFrm(m_itemNo) == -1) {
|
||||
mpBrkAnm1->setPlaySpeed(brk1Speed);
|
||||
mpBrkAnm1->play();
|
||||
}
|
||||
|
||||
if (mpBtkAnm1) {
|
||||
mpBtkAnm1->setPlaySpeed(btk1Speed);
|
||||
mpBtkAnm1->play();
|
||||
}
|
||||
|
||||
if (mpBrkAnm2) {
|
||||
mpBrkAnm2->setPlaySpeed(brk2Speed);
|
||||
mpBrkAnm2->play();
|
||||
}
|
||||
|
||||
if (mpBtkAnm2) {
|
||||
mpBtkAnm2->setPlaySpeed(btk2Speed);
|
||||
mpBtkAnm2->play();
|
||||
}
|
||||
|
||||
if (mpBckAnm) {
|
||||
mpBckAnm->setPlaySpeed(bckSpeed);
|
||||
mpBckAnm->play();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,20 +21,20 @@ const f32 daShopItem_c::m_cullfar_max = 5000.0f;
|
||||
char* daShopItem_c::getShopArcname() {
|
||||
u8 type = fopAcM_GetParamBit(this, 8, 4);
|
||||
if(type == 1 || (type == 0 && mModelType[m_itemNo] == 0x01)) {
|
||||
return dItem_data::field_item_res[m_itemNo].mModelArcName;
|
||||
return dItem_data::getFieldArc(m_itemNo);
|
||||
}
|
||||
else {
|
||||
return dItem_data::item_resource[m_itemNo].mModelArcName;
|
||||
return dItem_data::getArcname(m_itemNo);
|
||||
}
|
||||
}
|
||||
|
||||
s16 daShopItem_c::getShopBmdIdx() {
|
||||
u8 type = fopAcM_GetParamBit(this, 8, 4);
|
||||
if(type == 1 || (type == 0 && mModelType[m_itemNo] == 0x01)) {
|
||||
return dItem_data::field_item_res[m_itemNo].mModelFileId;
|
||||
return dItem_data::getFieldBmdIdx(m_itemNo);
|
||||
}
|
||||
else {
|
||||
return dItem_data::item_resource[m_itemNo].mModelFileIdx;
|
||||
return dItem_data::getBmdIdx(m_itemNo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,10 +57,10 @@ void daShopItem_c::CreateInit() {
|
||||
tevType = (TevType)0x5C;
|
||||
}
|
||||
|
||||
mModel->setUserArea(0);
|
||||
mpModel->setUserArea(0);
|
||||
}
|
||||
|
||||
s32 daShopItem_c::clothCreate() {
|
||||
BOOL daShopItem_c::clothCreate() {
|
||||
if(isUseClothPacket(m_itemNo)) {
|
||||
dCloth_packet_c* (*clothFunc[4])(ResTIMG*, ResTIMG*, dKy_tevstr_c*, cXyz**) = {dClothVobj03_create, dClothVobj04_create, dClothVobj05_create, dClothVobj07_0_create};
|
||||
u32 clothRes[4] = {0x20, 0x21, 0x22, 0x23};
|
||||
@@ -96,7 +96,7 @@ s32 daShopItem_c::clothCreate() {
|
||||
}
|
||||
|
||||
void daShopItem_c::set_mtx() {
|
||||
mModel->setBaseScale(mScale);
|
||||
mpModel->setBaseScale(mScale);
|
||||
MTXTrans(mDoMtx_stack_c::get(), current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::ZXYrotM(current.angle.x, current.angle.y, current.angle.z);
|
||||
MTXCopy(mDoMtx_stack_c::get(), field_0x64C);
|
||||
@@ -105,7 +105,7 @@ void daShopItem_c::set_mtx() {
|
||||
mDoMtx_stack_c::transM(temp1.x, temp1.y, temp1.z);
|
||||
const SVec& temp2 = getData()[m_itemNo].field_0x18;
|
||||
mDoMtx_stack_c::ZXYrotM(temp2.x, temp2.y, temp2.z);
|
||||
MTXCopy(mDoMtx_stack_c::get(), mModel->mBaseTransformMtx);
|
||||
MTXCopy(mDoMtx_stack_c::get(), mpModel->mBaseTransformMtx);
|
||||
|
||||
if(field_0x644 != 0) {
|
||||
// I have no clue why Nintendo would do this but it works
|
||||
@@ -139,7 +139,7 @@ bool daShopItem_c::_draw() {
|
||||
if(chkDraw() == 0) return 1;
|
||||
|
||||
if(m_itemNo == WATER_STATUE || m_itemNo == POSTMAN_STATUE) {
|
||||
mModel->getModelData()->getJointTree().getJointNodePointer(0)->setMtxCalc(0);
|
||||
mpModel->getModelData()->getJointTree().getJointNodePointer(0)->setMtxCalc(0);
|
||||
}
|
||||
DrawBase();
|
||||
|
||||
@@ -150,16 +150,16 @@ bool daShopItem_c::_draw() {
|
||||
|
||||
void daShopItem_c::settingBeforeDraw() {
|
||||
if(isBomb(m_itemNo) || (m_itemNo == BOMB_BAG) || (m_itemNo == HUMMER) || m_itemNo == SMALL_KEY || m_itemNo == PRESIDENT_STATUE) {
|
||||
dDlst_texSpecmapST(&mEyePos, &mTevStr, mModel->getModelData(), 1.0f);
|
||||
dDlst_texSpecmapST(&mEyePos, &mTevStr, mpModel->getModelData(), 1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void daShopItem_c::setTevStr() {
|
||||
g_env_light.settingTevStruct(tevType, getPositionP(), &mTevStr);
|
||||
g_env_light.setLightTevColorType(mModel, &mTevStr);
|
||||
g_env_light.setLightTevColorType(mpModel, &mTevStr);
|
||||
for(int i = 0; i < 2; i++) {
|
||||
if(mModelArrow[i] != 0) {
|
||||
g_env_light.setLightTevColorType(mModelArrow[i], &mTevStr);
|
||||
if(mpModelArrow[i] != 0) {
|
||||
g_env_light.setLightTevColorType(mpModelArrow[i], &mTevStr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -246,7 +246,7 @@ static actor_method_class daShopItemMethodTable = {
|
||||
(process_method_func)daShopItem_Delete,
|
||||
(process_method_func)daShopItem_Execute,
|
||||
(process_method_func)daShopItem_IsDelete,
|
||||
(process_method_func)0,
|
||||
(process_method_func)daShopItem_Draw,
|
||||
};
|
||||
|
||||
extern actor_process_profile_definition g_profile_ShopItem = {
|
||||
|
||||
@@ -263,7 +263,7 @@ const daShopItem_c_m_data daShopItem_c::mData[255] = {
|
||||
{{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}},
|
||||
{{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}},
|
||||
};
|
||||
const u8 daShopItem_c::mModelType[256] = {
|
||||
const u8 daShopItem_c::mModelType[255] = {
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
@@ -519,7 +519,6 @@ const u8 daShopItem_c::mModelType[256] = {
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
0
|
||||
};
|
||||
|
||||
cXyz* daShopItem_c::getScaleP() {
|
||||
|
||||
+10136
-10
File diff suppressed because it is too large
Load Diff
+22
-22
@@ -101,7 +101,7 @@ dPath* dNpc_PathRun_c::nextPath(s8 roomNo) {
|
||||
cXyz dNpc_PathRun_c::getPoint(u8 pointIdx) {
|
||||
cXyz point(0.0f, 0.0f, 0.0f);
|
||||
|
||||
if(mPath != 0 && pointIdx < mPath->mNum) {
|
||||
if(mPath != 0 && pointIdx < mPath->m_num) {
|
||||
point = mPath->mpPnt[pointIdx].mPos;
|
||||
}
|
||||
|
||||
@@ -118,8 +118,8 @@ bool dNpc_PathRun_c::incIdx() {
|
||||
|
||||
if(mPath != 0) {
|
||||
mCurrPointIndex += 1;
|
||||
if(mCurrPointIndex >= mPath->mNum) {
|
||||
mCurrPointIndex = mPath->mNum - 1;
|
||||
if(mCurrPointIndex >= mPath->m_num) {
|
||||
mCurrPointIndex = mPath->m_num - 1;
|
||||
ret = false;
|
||||
}
|
||||
}
|
||||
@@ -132,7 +132,7 @@ bool dNpc_PathRun_c::incIdxLoop() {
|
||||
|
||||
if(mPath != 0) {
|
||||
mCurrPointIndex += 1;
|
||||
if(mCurrPointIndex >= mPath->mNum) {
|
||||
if(mCurrPointIndex >= mPath->m_num) {
|
||||
mCurrPointIndex = 0;
|
||||
ret = false;
|
||||
}
|
||||
@@ -147,14 +147,14 @@ bool dNpc_PathRun_c::incIdxAuto() {
|
||||
if(mPath != 0) {
|
||||
if(mPath->mLoops & 1) {
|
||||
mCurrPointIndex += 1;
|
||||
if(mCurrPointIndex >= mPath->mNum) {
|
||||
if(mCurrPointIndex >= mPath->m_num) {
|
||||
mCurrPointIndex = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
mCurrPointIndex += 1;
|
||||
if(mCurrPointIndex >= mPath->mNum) {
|
||||
mCurrPointIndex = mPath->mNum - 1;
|
||||
if(mCurrPointIndex >= mPath->m_num) {
|
||||
mCurrPointIndex = mPath->m_num - 1;
|
||||
hitEnd = false;
|
||||
}
|
||||
}
|
||||
@@ -168,7 +168,7 @@ bool dNpc_PathRun_c::decIdx() {
|
||||
|
||||
if(mPath != 0) {
|
||||
mCurrPointIndex -= 1;
|
||||
if(mCurrPointIndex >= mPath->mNum) {
|
||||
if(mCurrPointIndex >= mPath->m_num) {
|
||||
mCurrPointIndex = 0;
|
||||
ret = false;
|
||||
}
|
||||
@@ -182,8 +182,8 @@ bool dNpc_PathRun_c::decIdxLoop() {
|
||||
|
||||
if(mPath != 0) {
|
||||
mCurrPointIndex -= 1;
|
||||
if(mCurrPointIndex >= mPath->mNum) {
|
||||
mCurrPointIndex = mPath->mNum - 1;
|
||||
if(mCurrPointIndex >= mPath->m_num) {
|
||||
mCurrPointIndex = mPath->m_num - 1;
|
||||
ret = false;
|
||||
}
|
||||
}
|
||||
@@ -197,13 +197,13 @@ bool dNpc_PathRun_c::decIdxAuto() {
|
||||
if(mPath != 0) {
|
||||
if(mPath->mLoops & 1) {
|
||||
mCurrPointIndex -= 1;
|
||||
if(mCurrPointIndex >= mPath->mNum) {
|
||||
mCurrPointIndex = mPath->mNum - 1;
|
||||
if(mCurrPointIndex >= mPath->m_num) {
|
||||
mCurrPointIndex = mPath->m_num - 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
mCurrPointIndex -= 1;
|
||||
if(mCurrPointIndex >= mPath->mNum) {
|
||||
if(mCurrPointIndex >= mPath->m_num) {
|
||||
mCurrPointIndex = 0;
|
||||
hitEnd = false;
|
||||
}
|
||||
@@ -275,7 +275,7 @@ s32 dNpc_PathRun_c::absIdx(u8 startIdx, u8 lastIdx) {
|
||||
u8 dNpc_PathRun_c::maxPoint() {
|
||||
u8 max = 0xFF;
|
||||
if(mPath != 0) {
|
||||
max = mPath->mNum;
|
||||
max = mPath->m_num;
|
||||
}
|
||||
|
||||
return max;
|
||||
@@ -283,7 +283,7 @@ u8 dNpc_PathRun_c::maxPoint() {
|
||||
|
||||
u8 dNpc_PathRun_c::pointArg(u8 idx) {
|
||||
u8 arg = 0;
|
||||
if(mPath != 0 && idx < (u8)mPath->mNum) {
|
||||
if(mPath != 0 && idx < (u8)mPath->m_num) {
|
||||
arg = mPath->mpPnt[idx].mArg3;
|
||||
}
|
||||
|
||||
@@ -794,10 +794,10 @@ void dNpc_EventCut_c::cutTurnToActorStart() {
|
||||
|
||||
u32* set = dComIfGp_evmng_getMyIntegerP(mEvtStaffId, "SetId");
|
||||
if(set) {
|
||||
mSetID = *set;
|
||||
mSetId = *set;
|
||||
}
|
||||
else {
|
||||
mSetID = 0;
|
||||
mSetId = 0;
|
||||
}
|
||||
|
||||
Vec* pos = dComIfGp_evmng_getMyVec3dP(mEvtStaffId, "OffsetPos");
|
||||
@@ -860,7 +860,7 @@ void dNpc_EventCut_c::cutTurnToActorStart() {
|
||||
}
|
||||
|
||||
void dNpc_EventCut_c::cutTurnToActorProc() {
|
||||
if(mSetID != 0) {
|
||||
if(mSetId != 0) {
|
||||
mTargetActorPos.set(0.0f, 0.0f, 0.0f);
|
||||
fopAcM_Search((fopAcIt_JudgeFunc)&findActorCallBack, this);
|
||||
}
|
||||
@@ -957,10 +957,10 @@ void dNpc_EventCut_c::cutMoveToActorStart() {
|
||||
}
|
||||
|
||||
if(set == 0) {
|
||||
mSetID = 0;
|
||||
mSetId = 0;
|
||||
}
|
||||
else {
|
||||
mSetID = *set;
|
||||
mSetId = *set;
|
||||
}
|
||||
|
||||
if(speed == 0) {
|
||||
@@ -986,7 +986,7 @@ void dNpc_EventCut_c::cutMoveToActorStart() {
|
||||
}
|
||||
|
||||
void dNpc_EventCut_c::cutMoveToActorProc() {
|
||||
if(mSetID != 0) {
|
||||
if(mSetId != 0) {
|
||||
mTargetActorPos.set(0.0f, 0.0f, 0.0f);
|
||||
fopAcM_Search((fopAcIt_JudgeFunc)&findActorCallBack, this);
|
||||
}
|
||||
@@ -1037,7 +1037,7 @@ fopAc_ac_c* dNpc_EventCut_c::findActorCallBack(fopAc_ac_c* pActor, void* pData)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(cut->mSetID != 0 && pActor->mSetID == cut->mSetID) {
|
||||
if(cut->mSetId != 0 && pActor->mSetId == cut->mSetId) {
|
||||
cut->mTargetActorPos = pActor->current.pos;
|
||||
cut->mpTargetActor = pActor;
|
||||
|
||||
|
||||
+47
-7
@@ -4,21 +4,61 @@
|
||||
//
|
||||
|
||||
#include "d/d_path.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
/* 80080018-8008010C .text dPath_GetPnt__FP5dPathi */
|
||||
dPath__Point* dPath_GetPnt(dPath*, int) {
|
||||
/* Nonmatching */
|
||||
dPath__Point* dPath_GetPnt(dPath* path, int pnt_index) {
|
||||
JUT_ASSERT(14, path != 0);
|
||||
JUT_ASSERT(15, 0 <= pnt_index && pnt_index < path->m_num);
|
||||
|
||||
if (path == NULL || path->mpPnt == NULL || 0 > pnt_index || pnt_index >= path->m_num)
|
||||
return NULL;
|
||||
else
|
||||
return &path->mpPnt[pnt_index];
|
||||
}
|
||||
|
||||
/* 8008010C-80080218 .text dPath_GetRoomPath__Fii */
|
||||
dPath* dPath_GetRoomPath(int, int) {
|
||||
/* Nonmatching */
|
||||
dPath* dPath_GetRoomPath(int path_index, int room_no) {
|
||||
dStage_dPath_c * pd;
|
||||
if (room_no == -1) {
|
||||
pd = dComIfGp_getStage().getPath2Inf();
|
||||
} else {
|
||||
JUT_ASSERT(0x3d, 0 <= room_no && room_no < 64);
|
||||
dStage_roomStatus_c * pRoom = dComIfGp_roomControl_getStatusRoomDt(room_no);
|
||||
if (pRoom == NULL)
|
||||
return NULL;
|
||||
pd = pRoom->getPath2Inf();
|
||||
}
|
||||
|
||||
if (pd == NULL || 0 > path_index || path_index >= pd->num)
|
||||
return NULL;
|
||||
else
|
||||
return &pd->m_path[path_index];
|
||||
}
|
||||
|
||||
/* 80080218-80080340 .text dPath_GetNextRoomPath__FP5dPathi */
|
||||
void dPath_GetNextRoomPath(dPath*, int) {
|
||||
/* Nonmatching */
|
||||
dPath* dPath_GetNextRoomPath(dPath* path, int room_no) {
|
||||
dStage_dPath_c * pd;
|
||||
if (room_no == -1) {
|
||||
pd = dComIfGp_getStage().getPath2Inf();
|
||||
} else {
|
||||
dStage_roomStatus_c * pRoom = dComIfGp_roomControl_getStatusRoomDt(room_no);
|
||||
if (pRoom == NULL)
|
||||
return NULL;
|
||||
pd = pRoom->getPath2Inf();
|
||||
}
|
||||
|
||||
s32 next_id = path->mNextPathId;
|
||||
if (pd == NULL || (next_id & 0xFFFF) == 0xFFFF) {
|
||||
return NULL;
|
||||
} else {
|
||||
JUT_ASSERT(0x72, 0 <= next_id && next_id < pd->num);
|
||||
if (0 > next_id || next_id >= pd->num)
|
||||
return NULL;
|
||||
else
|
||||
return &pd->m_path[next_id];
|
||||
}
|
||||
}
|
||||
|
||||
/* 80080340-800804A4 .text dPath_GetPolyRoomPathVec__FR13cBgS_PolyInfoP4cXyzPi */
|
||||
|
||||
+43
-6
@@ -3,21 +3,58 @@
|
||||
// Translation Unit: d_point_wind.cpp
|
||||
//
|
||||
|
||||
#include "d_point_wind.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/d_point_wind.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_kankyo_rain.h"
|
||||
#include "d/d_kankyo_wether.h"
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
|
||||
/* 800CF31C-800CF398 .text set_pwind_init__12dPointWind_cFP9cM3dGCpsS */
|
||||
void dPointWind_c::set_pwind_init(cM3dGCpsS*) {
|
||||
/* Nonmatching */
|
||||
void dPointWind_c::set_pwind_init(cM3dGCpsS* pCps) {
|
||||
mpCps = pCps;
|
||||
mWind.mPos = mpCps->mStart;
|
||||
mWind.mDir = mpCps->mEnd;
|
||||
mWind.mRadius = mpCps->mRadius;
|
||||
mWind.field_0x20 = 0.0f;
|
||||
mWind.mStrength = 1.0f;
|
||||
dKyw_pwind_cylinder_set(&mWind);
|
||||
}
|
||||
|
||||
/* 800CF398-800CF5C8 .text set_pwind_move__12dPointWind_cFv */
|
||||
void dPointWind_c::set_pwind_move() {
|
||||
/* Nonmatching */
|
||||
f32 radScale = 1.8f;
|
||||
BOOL animate = TRUE;
|
||||
|
||||
cXyz p0 = mpCps->mStart;
|
||||
cXyz p1 = mpCps->mEnd;
|
||||
cXyz dir;
|
||||
dKyr_get_vectle_calc(&p0, &p1, &dir);
|
||||
|
||||
if (strcmp(dComIfGp_getStartStageName(), "sea") == 0 && dComIfGp_roomControl_getStayNo() == 4) {
|
||||
radScale = 11.0f;
|
||||
animate = false;
|
||||
mWind.mPos = p0 + (dir * -100.0f);
|
||||
}
|
||||
|
||||
mWind.mDir = dir;
|
||||
mWind.mRadius = mpCps->mRadius * radScale;
|
||||
mWind.field_0x20 = 0.0f;
|
||||
|
||||
if (animate) {
|
||||
cLib_addCalc(&mWind.mPos.x, mpCps->mEnd.x, 0.1f, mWind.mRadius, mWind.mRadius * 0.5f);
|
||||
cLib_addCalc(&mWind.mPos.y, mpCps->mEnd.y, 0.1f, mWind.mRadius, mWind.mRadius * 0.5f);
|
||||
cLib_addCalc(&mWind.mPos.z, mpCps->mEnd.z, 0.1f, mWind.mRadius, mWind.mRadius * 0.5f);
|
||||
|
||||
if (mWind.mPos.abs(p1) < mWind.mRadius) {
|
||||
mWind.mPos.x = mpCps->mStart.x;
|
||||
mWind.mPos.y = mpCps->mStart.y;
|
||||
mWind.mPos.z = mpCps->mStart.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 800CF5C8-800CF5EC .text set_pwind_delete__12dPointWind_cFv */
|
||||
void dPointWind_c::set_pwind_delete() {
|
||||
/* Nonmatching */
|
||||
dKyw_pntwind_cut(&mWind);
|
||||
}
|
||||
|
||||
|
||||
+71
-22
@@ -35,14 +35,25 @@ void dStage_SetErrorRoom() {}
|
||||
/* 8004093C-80040940 .text dStage_SetErrorStage__Fv */
|
||||
void dStage_SetErrorStage() {}
|
||||
|
||||
class dStage_KeepTresureInfo {
|
||||
u8 unk[0x404];
|
||||
};
|
||||
|
||||
class dStage_KeepDoorInfo {
|
||||
u8 unk[0x904];
|
||||
};
|
||||
|
||||
dStage_KeepTresureInfo TresureInfo;
|
||||
dStage_KeepDoorInfo DoorInfo;
|
||||
|
||||
/* 80040940-8004094C .text dStage_GetKeepTresureInfo__Fv */
|
||||
void dStage_GetKeepTresureInfo() {
|
||||
/* Nonmatching */
|
||||
dStage_KeepTresureInfo * dStage_GetKeepTresureInfo() {
|
||||
return &TresureInfo;
|
||||
}
|
||||
|
||||
/* 8004094C-80040958 .text dStage_GetKeepDoorInfo__Fv */
|
||||
void dStage_GetKeepDoorInfo() {
|
||||
/* Nonmatching */
|
||||
dStage_KeepDoorInfo * dStage_GetKeepDoorInfo() {
|
||||
return &DoorInfo;
|
||||
}
|
||||
|
||||
/* 80040958-80040A78 .text dStage_KeepTresureInfoProc__FP11dStage_dt_cP19stage_tresure_class
|
||||
@@ -86,7 +97,7 @@ void dStage_roomControl_c::init() {
|
||||
|
||||
dStage_roomStatus_c* status = mStatus;
|
||||
for (int i = 0; i < 64; i++) {
|
||||
status->mRoomDt.init();
|
||||
status->init();
|
||||
setStatusFlag(i, 0);
|
||||
status->mDraw = false;
|
||||
|
||||
@@ -202,17 +213,25 @@ void dStage_roomControl_c::checkDrawArea() const {
|
||||
/* 800412EC-80041330 .text getDarkStatus__20dStage_roomControl_cFv */
|
||||
// NONMATCHING
|
||||
dStage_darkStatus_c* dStage_roomControl_c::getDarkStatus() {
|
||||
dStage_FileList_dt_c* plist_p = mStatus[mStayNo].mRoomDt.mpFileList;
|
||||
if (plist_p == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
dStage_roomStatus_c * pRoomStatus = &mStatus[mStayNo];
|
||||
dStage_FileList_dt_c* plist_p = pRoomStatus->mpFileList;
|
||||
|
||||
if (plist_p == NULL)
|
||||
return NULL;
|
||||
|
||||
// pointer math here seems wrong...
|
||||
return &mDarkStatus[plist_p->mParam & 0x78];
|
||||
}
|
||||
|
||||
/* 80041330-80041370 .text getDarkMode__20dStage_roomControl_cFv */
|
||||
void dStage_roomControl_c::getDarkMode() {
|
||||
/* Nonmatching */
|
||||
u32 dStage_roomControl_c::getDarkMode() {
|
||||
dStage_roomStatus_c * pRoomStatus = &mStatus[mStayNo];
|
||||
dStage_FileList_dt_c* plist_p = pRoomStatus->mpFileList;
|
||||
|
||||
u8 mode = 0;
|
||||
if (plist_p != NULL && (plist_p->mParam & 1) != 0)
|
||||
mode = 1;
|
||||
return mode;
|
||||
}
|
||||
|
||||
/* 80041370-800413D4 .text createMemoryBlock__20dStage_roomControl_cFiUl */
|
||||
@@ -1201,8 +1220,25 @@ void dStage_playerInitIkada(fopAcM_prm_class*, void*) {
|
||||
}
|
||||
|
||||
/* 800419D0-80041AEC .text dStage_chkPlayerId__Fii */
|
||||
void dStage_chkPlayerId(int, int) {
|
||||
/* Nonmatching */
|
||||
u32 dStage_chkPlayerId(int playerId, int room_no) {
|
||||
stage_actor_class * player;
|
||||
|
||||
if (room_no == -1) {
|
||||
player = dComIfGp_getStage().getPlayer();
|
||||
} else {
|
||||
JUT_ASSERT(0x689, 0 <= room_no && room_no < 64);
|
||||
player = dComIfGp_roomControl_getStatusRoomDt(room_no)->getPlayer();
|
||||
}
|
||||
|
||||
if (player == NULL)
|
||||
return FALSE;
|
||||
|
||||
stage_actor_data_class * actor = player->m_entries;
|
||||
for (int i = 0; i < player->num; i++, actor++)
|
||||
if ((u8)actor->mAngle.z == playerId)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 80041AF4-80041E84 .text dStage_playerInit__FP11dStage_dt_cPviPv */
|
||||
@@ -1246,7 +1282,7 @@ int dStage_playerInit(dStage_dt_c* i_stage, void* i_data, int num, void* param_3
|
||||
appen->mParameter = player_data->mParameter;
|
||||
appen->mPos = player_data->mSpawnPos;
|
||||
appen->mAngle = player_data->mAngle;
|
||||
appen->mEnemyNo = player_data->mEnemyNo;
|
||||
appen->mSetId = player_data->mSetId;
|
||||
|
||||
if (roomParam != 0 && (int)((appen->mParameter >> 0xC) & 0xF) != 2) {
|
||||
appen->mParameter = (roomParam & 0xFFFFFFC0) | (appen->mParameter & 0x3F);
|
||||
@@ -1254,7 +1290,7 @@ int dStage_playerInit(dStage_dt_c* i_stage, void* i_data, int num, void* param_3
|
||||
}
|
||||
|
||||
dComIfGs_setRestartRoomParam(0);
|
||||
appen->mEnemyNo = 0xFFFF;
|
||||
appen->mSetId = 0xFFFF;
|
||||
appen->mRoomNo = -1;
|
||||
|
||||
dComIfGp_getStartStage()->set(dComIfGp_getStartStageName(), appen->mParameter & 0x3F,
|
||||
@@ -1465,14 +1501,14 @@ int dStage_actorInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) {
|
||||
stage_actor_data_class* actor_data = actor->m_entries;
|
||||
|
||||
for (int i = 0; i < actor->num; i++) {
|
||||
if (!dComIfGs_isActor(actor_data->mEnemyNo, i_stage->getRoomNo())) {
|
||||
if (!dComIfGs_isActor(actor_data->mSetId, i_stage->getRoomNo())) {
|
||||
fopAcM_prm_class* appen = fopAcM_CreateAppend();
|
||||
|
||||
if (appen != NULL) {
|
||||
appen->mParameter = actor_data->mParameter;
|
||||
appen->mPos = actor_data->mSpawnPos;
|
||||
appen->mAngle = actor_data->mAngle;
|
||||
appen->mEnemyNo = actor_data->mEnemyNo;
|
||||
appen->mSetId = actor_data->mSetId;
|
||||
appen->mRoomNo = i_stage->getRoomNo();
|
||||
dStage_actorCreate(actor_data, appen);
|
||||
}
|
||||
@@ -1495,7 +1531,7 @@ int dStage_tgscInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) {
|
||||
appen->mParameter = actor_data->mParameter;
|
||||
appen->mPos = actor_data->mSpawnPos;
|
||||
appen->mAngle = actor_data->mAngle;
|
||||
appen->mEnemyNo = actor_data->mEnemyNo;
|
||||
appen->mSetId = actor_data->mSetId;
|
||||
appen->mRoomNo = i_stage->getRoomNo();
|
||||
appen->mScale[0] = actor_data->field_0x20;
|
||||
appen->mScale[1] = actor_data->field_0x21;
|
||||
@@ -1509,8 +1545,20 @@ int dStage_tgscInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) {
|
||||
}
|
||||
|
||||
/* 8004259C-80042628 .text dStage_roomReadInit__FP11dStage_dt_cPviPv */
|
||||
int dStage_roomReadInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) {
|
||||
/* Nonmatching */
|
||||
int dStage_roomReadInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* i_file) {
|
||||
// logic is bad
|
||||
dStage_nodeHeader* room_info = (dStage_nodeHeader*)(i_data);
|
||||
roomRead_class* pRoom = (roomRead_class*)room_info->m_offset;
|
||||
i_stage->setRoom(pRoom);
|
||||
|
||||
roomRead_data_class ** ppEntry = pRoom->m_entries;
|
||||
for (s32 i = 0; i < room_info->m_entryNum; i++, ppEntry++) {
|
||||
// (u8*)(*ppEntry) = (u8*)(i_file) + (u32)ppEntry;
|
||||
roomRead_data_class * pEntry = *ppEntry;
|
||||
pEntry->field_0x4 = (u8*)(i_file) + ((u32)pEntry->field_0x4);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80042628-80042658 .text dStage_roomRead_dt_c_GetReverbStage__FR14roomRead_classi */
|
||||
@@ -1552,7 +1600,8 @@ int dStage_soundInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) {
|
||||
|
||||
/* 80042814-80042848 .text dStage_eventInfoInit__FP11dStage_dt_cPviPv */
|
||||
int dStage_eventInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) {
|
||||
/* Nonmatching */
|
||||
i_stage->setEventInfo((dStage_EventInfo_c*)((char*)i_data + 4));
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80042848-8004287C .text dStage_floorInfoInit__FP11dStage_dt_cPviPv */
|
||||
@@ -2075,7 +2124,7 @@ int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no) {
|
||||
scls = dComIfGp_getStageSclsInfo();
|
||||
} else {
|
||||
JUT_ASSERT(4192, 0 <= room_no && room_no < 64);
|
||||
scls = dComIfGp_roomControl_getStatusRoomDt(room_no)->mRoomDt.getSclsInfo();
|
||||
scls = dComIfGp_roomControl_getStatusRoomDt(room_no)->getSclsInfo();
|
||||
}
|
||||
|
||||
if (scls == NULL) {
|
||||
|
||||
+145
-38
@@ -4,64 +4,171 @@
|
||||
//
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "f_op/f_op_actor_tag.h"
|
||||
#include "f_op/f_op_draw_tag.h"
|
||||
#include "f_pc/f_pc_leaf.h"
|
||||
#include "d/d_demo.h"
|
||||
#include "d/d_map.h"
|
||||
#include "d/d_meter.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
/* 8002330C-800233C4 .text __ct__10fopAc_ac_cFv */
|
||||
fopAc_ac_c::fopAc_ac_c() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800233C4-80023400 .text __dt__20fopAc_cullSizeSphereFv */
|
||||
fopAc_cullSizeSphere::~fopAc_cullSizeSphere() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80023400-8002343C .text __dt__17fopAc_cullSizeBoxFv */
|
||||
fopAc_cullSizeBox::~fopAc_cullSizeBox() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8002343C-80023478 .text __dt__12dKy_tevstr_cFv */
|
||||
dKy_tevstr_c::~dKy_tevstr_c() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80023478-800234C0 .text __dt__11dEvt_info_cFv */
|
||||
dEvt_info_c::~dEvt_info_c() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800234C0-80023514 .text __dt__10fopAc_ac_cFv */
|
||||
fopAc_ac_c::~fopAc_ac_c() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
int g_fopAc_type;
|
||||
u32 fopAc_ac_c::stopStatus;
|
||||
|
||||
/* 80023514-80023540 .text fopAc_IsActor__FPv */
|
||||
void fopAc_IsActor(void*) {
|
||||
/* Nonmatching */
|
||||
s32 fopAc_IsActor(void* pProc) {
|
||||
return fpcBs_Is_JustOfType(g_fopAc_type, ((fopAc_ac_c*)pProc)->mAcType);
|
||||
}
|
||||
|
||||
/* 80023540-8002362C .text fopAc_Draw__FPv */
|
||||
void fopAc_Draw(void*) {
|
||||
/* Nonmatching */
|
||||
s32 fopAc_Draw(void* pProc) {
|
||||
fopAc_ac_c * actor = (fopAc_ac_c *)pProc;
|
||||
s32 ret = TRUE;
|
||||
|
||||
if (!dMenu_flag()) {
|
||||
s32 moveApproval = dComIfGp_event_moveApproval(actor);
|
||||
|
||||
if ((moveApproval == 2 || !fopAcM_checkStatus(actor, fopAc_ac_c::stopStatus)) && (!(fopAcM_checkStatus(actor, fopAcStts_CULL_e) && !fopAcM_cullingCheck(actor)) || !fopAcM_checkStatus(actor, fopAcStts_NODRAW_e))) {
|
||||
fopAcM_OffCondition(actor, fopAcCnd_NODRAW_e);
|
||||
ret = fpcLf_DrawMethod((leafdraw_method_class*)actor->mSubMtd, actor);
|
||||
} else {
|
||||
fopAcM_OnCondition(actor, fopAcCnd_NODRAW_e);
|
||||
}
|
||||
|
||||
fopAcM_OffStatus(actor, fopAcStts_NODRAW_e);
|
||||
|
||||
if (dComIfGp_roomControl_getStayNo() >= 0 && fopAcM_checkStatus(actor, fopAcStts_SHOWMAP_e))
|
||||
dMap_c::drawActorPointMiniMap(actor);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(((sizeof(x) == sizeof(float)) ? __fpclassifyf((float)(x)) : __fpclassifyd((double)(x)) ) == 1));
|
||||
#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)
|
||||
|
||||
/* 8002362C-80023BDC .text fopAc_Execute__FPv */
|
||||
void fopAc_Execute(void*) {
|
||||
/* Nonmatching */
|
||||
s32 fopAc_Execute(void* pProc) {
|
||||
fopAc_ac_c * actor = (fopAc_ac_c *)pProc;
|
||||
s32 ret = TRUE;
|
||||
|
||||
CHECK_FLOAT_CLASS(0x27d, actor->current.pos.x);
|
||||
CHECK_FLOAT_CLASS(0x27e, actor->current.pos.y);
|
||||
CHECK_FLOAT_CLASS(0x27f, actor->current.pos.z);
|
||||
CHECK_VEC3_RANGE(0x286, actor->current.pos);
|
||||
|
||||
if (fopAcM_checkStatus(actor, fopAcStts_NOPAUSE_e) || (!dMenu_flag() && !dScnPly_ply_c::isPause())) {
|
||||
actor->mEvtInfo.setCondition(dEvtCnd_NONE_e);
|
||||
|
||||
s32 moveApproval = dComIfGp_event_moveApproval(actor);
|
||||
|
||||
if ((moveApproval == 2 || moveApproval != 0 || !fopAcM_checkStatus(actor, fopAc_ac_c::stopStatus)) && (!fopAcM_checkStatus(actor, fopAcStts_NOEXEC_e) || !fopAcM_CheckCondition(actor, fopAcCnd_NODRAW_e))) {
|
||||
fopAcM_OffCondition(actor, fopAcCnd_NOEXEC_e);
|
||||
actor->next = actor->current;
|
||||
ret = fpcMtd_Execute((process_method_class*)actor->mSubMtd, actor);
|
||||
} else {
|
||||
fopAcM_OnCondition(actor, fopAcCnd_NOEXEC_e);
|
||||
}
|
||||
|
||||
CHECK_FLOAT_CLASS(0x2b4, actor->current.pos.x);
|
||||
CHECK_FLOAT_CLASS(0x2b5, actor->current.pos.y);
|
||||
CHECK_FLOAT_CLASS(0x2b6, actor->current.pos.z);
|
||||
CHECK_VEC3_RANGE(0x2bd, actor->current.pos);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 80023BDC-80023C30 .text fopAc_IsDelete__FPv */
|
||||
void fopAc_IsDelete(void*) {
|
||||
/* Nonmatching */
|
||||
s32 fopAc_IsDelete(void* pProc) {
|
||||
fopAc_ac_c * actor = (fopAc_ac_c *)pProc;
|
||||
s32 ret = fpcMtd_IsDelete((process_method_class*)actor->mSubMtd, actor);
|
||||
if (ret == 1)
|
||||
fopDwTg_DrawQTo(&actor->mDwTg);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 80023C30-80023CD4 .text fopAc_Delete__FPv */
|
||||
void fopAc_Delete(void*) {
|
||||
/* Nonmatching */
|
||||
s32 fopAc_Delete(void* pProc) {
|
||||
fopAc_ac_c * actor = (fopAc_ac_c *)pProc;
|
||||
s32 ret = fpcMtd_Delete((process_method_class*)actor->mSubMtd, actor);
|
||||
if (ret == 1) {
|
||||
fopAcTg_ActorQTo(&actor->mAcTg);
|
||||
fopDwTg_DrawQTo(&actor->mDwTg);
|
||||
fopAcM_DeleteHeap(actor);
|
||||
dDemo_actor_c *pDemoActor = dComIfGp_demo_getActor(actor->mDemoActorId);
|
||||
if (pDemoActor != NULL)
|
||||
pDemoActor->setActor(NULL);
|
||||
mDoAud_seDeleteObject(&actor->mEyePos);
|
||||
mDoAud_seDeleteObject(&actor->current.pos);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 80023CD4-80023F78 .text fopAc_Create__FPv */
|
||||
void fopAc_Create(void*) {
|
||||
/* Nonmatching */
|
||||
s32 fopAc_Create(void* pProc) {
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)pProc;
|
||||
|
||||
if (fpcM_IsFirstCreating(actor)) {
|
||||
actor_process_profile_definition* profile = (actor_process_profile_definition*)fpcM_GetProfile(pProc);
|
||||
actor->mAcType = fpcBs_MakeOfType(&g_fopAc_type);
|
||||
actor->mSubMtd = profile->mSubMtd;
|
||||
fopAcTg_Init(&actor->mAcTg, actor);
|
||||
fopAcTg_ToActorQ(&actor->mAcTg);
|
||||
fopDwTg_Init(&actor->mDwTg, actor);
|
||||
actor->mStatus = profile->mStatus;
|
||||
actor->mGroup = profile->mGroup;
|
||||
actor->mCullType = profile->mCullType;
|
||||
|
||||
fopAcM_prm_class* prm = fopAcM_GetAppend(actor);
|
||||
if (prm != NULL) {
|
||||
fopAcM_SetParam(actor, prm->mParameter);
|
||||
actor->orig.pos = prm->mPos;
|
||||
actor->orig.angle = prm->mAngle;
|
||||
actor->shape_angle = prm->mAngle;
|
||||
actor->mParentPcId = prm->mParentPcId;
|
||||
actor->mSubtype = prm->mSubtype;
|
||||
actor->mGbaName = prm->mGbaName;
|
||||
actor->mScale.set(prm->mScale[0] * 0.1f, prm->mScale[1] * 0.1f, prm->mScale[2] * 0.1f);
|
||||
actor->mSetId = prm->mSetId;
|
||||
actor->orig.roomNo = prm->mRoomNo;
|
||||
}
|
||||
|
||||
actor->next = actor->orig;
|
||||
actor->current = actor->orig;
|
||||
actor->mEyePos = actor->orig.pos;
|
||||
actor->mMaxFallSpeed = -100.0f;
|
||||
actor->mAttentionInfo.mDistances[0] = 1;
|
||||
actor->mAttentionInfo.mDistances[1] = 2;
|
||||
actor->mAttentionInfo.mDistances[2] = 3;
|
||||
actor->mAttentionInfo.mDistances[3] = 7;
|
||||
actor->mAttentionInfo.mDistances[4] = 8;
|
||||
actor->mAttentionInfo.mDistances[7] = 15;
|
||||
actor->mAttentionInfo.mDistances[5] = 16;
|
||||
actor->mAttentionInfo.mDistances[6] = 16;
|
||||
actor->mAttentionInfo.mPosition = actor->orig.pos;
|
||||
dKy_tevstr_init(&actor->mTevStr, actor->orig.roomNo, 0xFF);
|
||||
}
|
||||
|
||||
s32 status = fpcMtd_Create((process_method_class*)actor->mSubMtd, actor);
|
||||
if (status == cPhs_COMPLEATE_e) {
|
||||
s32 priority = fpcLf_GetPriority(actor);
|
||||
fopDwTg_ToDrawQ(&actor->mDwTg, priority);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
actor_method_class g_fopAc_Method = {
|
||||
(process_method_func)fopAc_Create,
|
||||
(process_method_func)fopAc_Delete,
|
||||
(process_method_func)fopAc_Execute,
|
||||
(process_method_func)fopAc_IsDelete,
|
||||
(process_method_func)fopAc_Draw,
|
||||
};
|
||||
|
||||
+438
-163
@@ -4,185 +4,506 @@
|
||||
//
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_scene_mng.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/d_stage.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
#include "m_Do/m_Do_printf.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "SSystem/SComponent/c_malloc.h"
|
||||
|
||||
/* 80024060-80024104 .text fopAcM_setStageLayer__FPv */
|
||||
void fopAcM_setStageLayer(void*) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_setStageLayer(void* pProc) {
|
||||
scene_class* stageProc = fopScnM_SearchByID(dStage_roomControl_c::getProcID());
|
||||
JUT_ASSERT(0xee, stageProc != 0);
|
||||
fpcM_ChangeLayerID(pProc, fopScnM_LayerID(stageProc));
|
||||
}
|
||||
|
||||
/* 80024104-800241C0 .text fopAcM_setRoomLayer__FPvi */
|
||||
void fopAcM_setRoomLayer(void*, int) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_setRoomLayer(void* pProc, int room_no) {
|
||||
if (room_no >= 0) {
|
||||
scene_class* roomProc = fopScnM_SearchByID(dStage_roomControl_c::getStatusProcID(room_no));
|
||||
JUT_ASSERT(0x105, roomProc != 0);
|
||||
fpcM_ChangeLayerID(pProc, fopScnM_LayerID(roomProc));
|
||||
}
|
||||
}
|
||||
|
||||
/* 800241C0-80024230 .text fopAcM_SearchByID__FUiPP10fopAc_ac_c */
|
||||
void fopAcM_SearchByID(unsigned int, fopAc_ac_c**) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_SearchByID(unsigned int actorID, fopAc_ac_c** pDstActor) {
|
||||
if (fpcM_IsCreating(actorID)) {
|
||||
*pDstActor = NULL;
|
||||
} else {
|
||||
fopAc_ac_c *pActor = (fopAc_ac_c *) fopAcIt_Judge((fopAcIt_JudgeFunc)fpcSch_JudgeByID, &actorID);
|
||||
*pDstActor = pActor;
|
||||
if (*pDstActor == NULL)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80024230-800242AC .text fopAcM_SearchByName__FsPP10fopAc_ac_c */
|
||||
void fopAcM_SearchByName(short, fopAc_ac_c**) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_SearchByName(s16 procName, fopAc_ac_c** pDstActor) {
|
||||
*pDstActor = (fopAc_ac_c*) fopAcIt_Judge((fopAcIt_JudgeFunc)fpcSch_JudgeForPName, &procName);
|
||||
if (*pDstActor == NULL) {
|
||||
return 0;
|
||||
} else {
|
||||
if (fpcM_IsCreating(fopAcM_GetID(*pDstActor))) {
|
||||
*pDstActor = NULL;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* 800242AC-80024320 .text fopAcM_CreateAppend__Fv */
|
||||
void fopAcM_CreateAppend() {
|
||||
/* Nonmatching */
|
||||
fopAcM_prm_class* fopAcM_CreateAppend() {
|
||||
fopAcM_prm_class* params = (fopAcM_prm_class*) cMl::memalignB(-4, sizeof(fopAcM_prm_class));
|
||||
if (params != NULL) {
|
||||
cLib_memSet(params, 0, sizeof(fopAcM_prm_class));
|
||||
params->mSetId = 0xFFFF;
|
||||
params->mRoomNo = -1;
|
||||
params->mScale[0] = 10;
|
||||
params->mScale[1] = 10;
|
||||
params->mScale[2] = 10;
|
||||
params->mParentPcId = -1;
|
||||
params->mSubtype = -1;
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
/* 80024320-80024474 .text createAppend__FUlP4cXyziP5csXyzP4cXyzScUi */
|
||||
void createAppend(unsigned long, cXyz*, int, csXyz*, cXyz*, signed char, unsigned int) {
|
||||
/* Nonmatching */
|
||||
fopAcM_prm_class * createAppend(u32 parameter, cXyz* pPos, int roomNo, csXyz* pAngle, cXyz* pScale, s8 subtype, unsigned int parentPcId) {
|
||||
fopAcM_prm_class * params = fopAcM_CreateAppend();
|
||||
if (params == NULL)
|
||||
return NULL;
|
||||
|
||||
if (pPos != NULL)
|
||||
params->mPos = *pPos;
|
||||
else
|
||||
params->mPos = cXyz::Zero;
|
||||
|
||||
params->mRoomNo = roomNo;
|
||||
|
||||
if (pAngle != NULL)
|
||||
params->mAngle = *pAngle;
|
||||
else
|
||||
params->mAngle = csXyz::Zero;
|
||||
|
||||
if (pScale != NULL) {
|
||||
params->mScale[0] = 10.0f * pScale->x;
|
||||
params->mScale[1] = 10.0f * pScale->y;
|
||||
params->mScale[2] = 10.0f * pScale->z;
|
||||
} else {
|
||||
params->mScale[0] = 10.0f;
|
||||
params->mScale[1] = 10.0f;
|
||||
params->mScale[2] = 10.0f;
|
||||
}
|
||||
|
||||
params->mParameter = parameter;
|
||||
params->mParentPcId = parentPcId;
|
||||
params->mSubtype = subtype;
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
/* 80024474-80024478 .text fopAcM_Log__FP10fopAc_ac_cPc */
|
||||
void fopAcM_Log(fopAc_ac_c*, char*) {
|
||||
/* Nonmatching */
|
||||
/* Empty function */
|
||||
}
|
||||
|
||||
/* 80024478-800244B8 .text fopAcM_delete__FP10fopAc_ac_c */
|
||||
void fopAcM_delete(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_delete(fopAc_ac_c* pActor) {
|
||||
/* "Deleting Actor" */
|
||||
fopAcM_Log(pActor, "アクターの削除");
|
||||
return fpcM_Delete(pActor);
|
||||
}
|
||||
|
||||
/* 800244B8-8002451C .text fopAcM_delete__FUi */
|
||||
void fopAcM_delete(unsigned int) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_delete(unsigned int actorID) {
|
||||
fopAc_ac_c* pActor = fopAcM_SearchByID(actorID);
|
||||
|
||||
if (pActor != NULL) {
|
||||
/* "Deleting Actor" */
|
||||
fopAcM_Log(pActor, "アクターの削除");
|
||||
return fpcM_Delete(pActor);
|
||||
} else {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8002451C-80024598 .text fopAcM_create__FsUlP4cXyziP5csXyzP4cXyzScPFPv_i */
|
||||
void fopAcM_create(short, unsigned long, cXyz*, int, csXyz*, cXyz*, signed char, int (*)(void*)) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_create(s16 procName, u32 parameter, cXyz* pPos, int roomNo, csXyz* pAngle, cXyz* pScale, s8 subtype, createFunc createFunc) {
|
||||
fopAcM_prm_class* params = createAppend(parameter, pPos, roomNo, pAngle, pScale, subtype, 0xFFFFFFFF);
|
||||
if (params == NULL)
|
||||
return -1;
|
||||
|
||||
return fpcM_Create(procName, createFunc, params);
|
||||
}
|
||||
|
||||
/* 80024598-80024614 .text fopAcM_create__FPcUlP4cXyziP5csXyzP4cXyzPFPv_i */
|
||||
void fopAcM_create(char*, unsigned long, cXyz*, int, csXyz*, cXyz*, int (*)(void*)) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_create(char* pProcNameString, u32 parameter, cXyz* pPos, int roomNo, csXyz* pAngle, cXyz* pScale, createFunc createFunc) {
|
||||
dStage_objectNameInf * nameInf = dStage_searchName(pProcNameString);
|
||||
if (nameInf == NULL)
|
||||
return -1;
|
||||
|
||||
return fopAcM_create(nameInf->mProcName, parameter, pPos, roomNo, pAngle, pScale, nameInf->mSubtype, createFunc);
|
||||
}
|
||||
|
||||
/* 80024614-8002468C .text fopAcM_fastCreate__FsUlP4cXyziP5csXyzP4cXyzScPFPv_iPv */
|
||||
void fopAcM_fastCreate(short, unsigned long, cXyz*, int, csXyz*, cXyz*, signed char, int (*)(void*), void*) {
|
||||
/* Nonmatching */
|
||||
void* fopAcM_fastCreate(s16 procName, u32 parameter, cXyz* pPos, int roomNo, csXyz* pAngle, cXyz* pScale, s8 subtype, createFunc createFunc, void* pUserData) {
|
||||
fopAcM_prm_class* params = createAppend(parameter, pPos, roomNo, pAngle, pScale, subtype, 0xFFFFFFFF);
|
||||
if (params == NULL)
|
||||
return NULL;
|
||||
|
||||
return fpcM_FastCreate(procName, createFunc, pUserData, params);
|
||||
}
|
||||
|
||||
/* 8002468C-80024710 .text fopAcM_fastCreate__FPcUlP4cXyziP5csXyzP4cXyzPFPv_iPv */
|
||||
void fopAcM_fastCreate(char*, unsigned long, cXyz*, int, csXyz*, cXyz*, int (*)(void*), void*) {
|
||||
/* Nonmatching */
|
||||
void* fopAcM_fastCreate(char* pProcNameString, u32 parameter, cXyz* pPos, int roomNo, csXyz* pAngle, cXyz* pScale, createFunc createFunc, void *pUserData) {
|
||||
dStage_objectNameInf * nameInf = dStage_searchName(pProcNameString);
|
||||
if (nameInf == NULL)
|
||||
return NULL;
|
||||
|
||||
return fopAcM_fastCreate(nameInf->mProcName, parameter, pPos, roomNo, pAngle, pScale, nameInf->mSubtype, createFunc, pUserData);
|
||||
}
|
||||
|
||||
/* 80024710-80024790 .text fopAcM_createChild__FsUiUlP4cXyziP5csXyzP4cXyzScPFPv_i */
|
||||
void fopAcM_createChild(short, unsigned int, unsigned long, cXyz*, int, csXyz*, cXyz*, signed char, int (*)(void*)) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_createChild(s16 procName, unsigned int parentPcId, u32 parameter, cXyz* pPos, int roomNo, csXyz* pAngle, cXyz* pScale, s8 subtype, createFunc createFunc) {
|
||||
fopAcM_prm_class* params = createAppend(parameter, pPos, roomNo, pAngle, pScale, subtype, parentPcId);
|
||||
if (params == NULL)
|
||||
return -1;
|
||||
|
||||
return fpcM_Create(procName, createFunc, params);
|
||||
}
|
||||
|
||||
/* 80024790-80024814 .text fopAcM_createChild__FPcUiUlP4cXyziP5csXyzP4cXyzPFPv_i */
|
||||
void fopAcM_createChild(char*, unsigned int, unsigned long, cXyz*, int, csXyz*, cXyz*, int (*)(void*)) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_createChild(char* pProcNameString, unsigned int parentPcId, u32 parameter, cXyz* pPos, int roomNo, csXyz* pAngle, cXyz* pScale, createFunc createFunc) {
|
||||
dStage_objectNameInf * nameInf = dStage_searchName(pProcNameString);
|
||||
if (nameInf == NULL)
|
||||
return -1;
|
||||
|
||||
return fopAcM_createChild(nameInf->mProcName, parentPcId, parameter, pPos, roomNo, pAngle, pScale, nameInf->mSubtype, createFunc);
|
||||
}
|
||||
|
||||
/* 80024814-800249D4 .text fopAcM_createChildFromOffset__FsUiUlP4cXyziP5csXyzP4cXyzScPFPv_i */
|
||||
void fopAcM_createChildFromOffset(short, unsigned int, unsigned long, cXyz*, int, csXyz*, cXyz*, signed char, int (*)(void*)) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_createChildFromOffset(s16 procName, unsigned int parentPcId, u32 parameter, cXyz* pPosOffs, int roomNo, csXyz* pAngleOffs, cXyz* pScale, s8 subtype, createFunc createFunc) {
|
||||
fopAc_ac_c * pParent = fopAcM_SearchByID(parentPcId);
|
||||
s16 parentAngleY = pParent->current.angle.y;
|
||||
|
||||
cXyz posOffs;
|
||||
if (pPosOffs == NULL)
|
||||
posOffs = cXyz::Zero;
|
||||
else
|
||||
posOffs = *pPosOffs;
|
||||
|
||||
csXyz angleOffs;
|
||||
if (pAngleOffs == NULL)
|
||||
angleOffs = csXyz::Zero;
|
||||
else
|
||||
angleOffs = *pAngleOffs;
|
||||
|
||||
cXyz pos = pParent->current.pos;
|
||||
|
||||
csXyz angle(angleOffs);
|
||||
angle.y += parentAngleY;
|
||||
|
||||
pos.x += posOffs.z * cM_ssin(parentAngleY) + posOffs.x * cM_scos(parentAngleY);
|
||||
pos.y += posOffs.y;
|
||||
pos.z += posOffs.z * cM_scos(parentAngleY) - posOffs.x * cM_ssin(parentAngleY);
|
||||
|
||||
fopAcM_prm_class* params = createAppend(parameter, &pos, roomNo, &angle, pScale, subtype, parentPcId);
|
||||
if (params == NULL)
|
||||
return -1;
|
||||
|
||||
return fpcM_Create(procName, createFunc, params);
|
||||
}
|
||||
|
||||
/* 800249D4-80024B78 .text fopAcM_createChildFromOffset__FPcUiUlP4cXyziP5csXyzP4cXyzPFPv_i */
|
||||
void fopAcM_createChildFromOffset(char*, unsigned int, unsigned long, cXyz*, int, csXyz*, cXyz*, int (*)(void*)) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_createChildFromOffset(char* pProcNameString, unsigned int parentPcId, u32 parameter, cXyz* pPosOffs, int roomNo, csXyz* pAngleOffs, cXyz* pScale, createFunc createFunc) {
|
||||
fopAc_ac_c * pParent = fopAcM_SearchByID(parentPcId);
|
||||
s16 parentAngleY = pParent->current.angle.y;
|
||||
|
||||
cXyz pos = pParent->current.pos;
|
||||
|
||||
cXyz posOffs;
|
||||
if (pPosOffs == NULL)
|
||||
posOffs = cXyz::Zero;
|
||||
else
|
||||
posOffs = *pPosOffs;
|
||||
|
||||
csXyz angleOffs;
|
||||
if (pAngleOffs == NULL)
|
||||
angleOffs = csXyz::Zero;
|
||||
else
|
||||
angleOffs = *pAngleOffs;
|
||||
|
||||
csXyz angle(angleOffs);
|
||||
angle.y += parentAngleY;
|
||||
|
||||
pos.x += posOffs.z * cM_ssin(parentAngleY) + posOffs.x * cM_scos(parentAngleY);
|
||||
pos.y += posOffs.y;
|
||||
pos.z += posOffs.z * cM_scos(parentAngleY) - posOffs.x * cM_ssin(parentAngleY);
|
||||
|
||||
return fopAcM_createChild(pProcNameString, parentPcId, parameter, &pos, roomNo, &angle, pScale, createFunc);
|
||||
}
|
||||
|
||||
/* 80024B78-80024CA0 .text fopAcM_createHeap__FP10fopAc_ac_cUlUl */
|
||||
void fopAcM_createHeap(fopAc_ac_c*, unsigned long, unsigned long) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_createHeap(fopAc_ac_c* i_this, u32 size, u32 align) {
|
||||
JUT_ASSERT(0x33b, i_this);
|
||||
JUT_ASSERT(0x33c, i_this->heap == 0);
|
||||
fopAcM_Log(i_this, "アクターのヒープの生成");
|
||||
if (align == 0)
|
||||
align = 0x20;
|
||||
|
||||
i_this->heap = mDoExt_createSolidHeapFromGameToCurrent(size, align);
|
||||
if (i_this->heap == 0) {
|
||||
OSReport_Error("fopAcM_createHeap 確保失敗\n");
|
||||
JUT_CONFIRM(0x34c, i_this->heap != 0);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 80024CA0-80024CD4 .text fopAcM_adjustHeap__FP10fopAc_ac_c */
|
||||
void fopAcM_adjustHeap(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_adjustHeap(fopAc_ac_c* i_this) {
|
||||
mDoExt_restoreCurrentHeap();
|
||||
mDoExt_adjustSolidHeap(i_this->heap);
|
||||
}
|
||||
|
||||
/* 80024CD4-80024D24 .text fopAcM_DeleteHeap__FP10fopAc_ac_c */
|
||||
void fopAcM_DeleteHeap(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_DeleteHeap(fopAc_ac_c* i_this) {
|
||||
/* "Destroying Actor Heap" */
|
||||
fopAcM_Log(i_this, "アクターのヒープの破壊");
|
||||
|
||||
if (i_this->heap != NULL) {
|
||||
mDoExt_destroySolidHeap(i_this->heap);
|
||||
i_this->heap = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
namespace fopAcM {
|
||||
bool HeapAdjustEntry;
|
||||
bool HeapAdjustVerbose;
|
||||
bool HeapAdjustQuiet;
|
||||
}
|
||||
|
||||
/* 80024D24-800250E4 .text fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl */
|
||||
void fopAcM_entrySolidHeap(fopAc_ac_c*, int (*)(fopAc_ac_c*), unsigned long) {
|
||||
/* Nonmatching */
|
||||
bool fopAcM_entrySolidHeap(fopAc_ac_c* i_this, heapCallbackFunc createHeapCB, u32 maxHeapSize) {
|
||||
const char * pProcNameString = fopAcM_getProcNameString(i_this);
|
||||
JKRSolidHeap * heap = NULL;
|
||||
|
||||
if (maxHeapSize != 0) {
|
||||
heap = mDoExt_createSolidHeapFromGameToCurrent(maxHeapSize, 0x20);
|
||||
if (heap != NULL) {
|
||||
bool result = createHeapCB(i_this);
|
||||
if (heap->getFreeSize() >= 0x20)
|
||||
JKRHeap::alloc(0x20, 0, NULL);
|
||||
|
||||
mDoExt_restoreCurrentHeap();
|
||||
|
||||
if (!result) {
|
||||
if (!fopAcM::HeapAdjustQuiet)
|
||||
OSReport_Error("見積もりヒープサイズ(%08x)で登録失敗しました。[%s]\n", maxHeapSize, pProcNameString);
|
||||
mDoExt_destroySolidHeap(heap);
|
||||
heap = NULL;
|
||||
} else {
|
||||
u32 allocSize = ALIGN_NEXT(heap->getSize() - heap->getFreeSize(), 0x20);
|
||||
if (maxHeapSize < allocSize + 0x40) {
|
||||
mDoExt_adjustSolidHeap(heap);
|
||||
i_this->heap = heap;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (fopAcM::HeapAdjustVerbose)
|
||||
OSReport_Warning("見積もりヒープサイズでは空きが多すぎます。 %08x %08x\n\x1b[m", allocSize, maxHeapSize);
|
||||
}
|
||||
} else {
|
||||
if (!fopAcM::HeapAdjustQuiet)
|
||||
OSReport_Warning("見積もりヒープが確保できませんでした。\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (heap == NULL) {
|
||||
heap = mDoExt_createSolidHeapFromGameToCurrent(-1, 0x20);
|
||||
JUT_ASSERT(0x453, heap);
|
||||
|
||||
bool result = createHeapCB(i_this);
|
||||
mDoExt_restoreCurrentHeap();
|
||||
|
||||
if (!result) {
|
||||
OSReport_Error("最大空きヒープサイズで登録失敗。[%s]\n", pProcNameString);
|
||||
mDoExt_destroySolidHeap(heap);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!fopAcM::HeapAdjustQuiet)
|
||||
heap->getFreeSize();
|
||||
}
|
||||
|
||||
if (heap != NULL) {
|
||||
if (!fopAcM::HeapAdjustEntry) {
|
||||
mDoExt_adjustSolidHeap(heap);
|
||||
i_this->heap = heap;
|
||||
return true;
|
||||
}
|
||||
|
||||
JKRSolidHeap * heap1 = NULL;
|
||||
u32 allocSize = ALIGN_NEXT(heap->getSize() - heap->getFreeSize(), 0x10);
|
||||
if (allocSize + 0x90 < mDoExt_getGameHeap()->getFreeSize())
|
||||
heap1 = mDoExt_createSolidHeapFromGameToCurrent(allocSize, 0x20);
|
||||
|
||||
if (heap1 != NULL) {
|
||||
if (heap1 < heap) {
|
||||
mDoExt_destroySolidHeap(heap);
|
||||
heap = NULL;
|
||||
bool result = createHeapCB(i_this);
|
||||
mDoExt_restoreCurrentHeap();
|
||||
JUT_ASSERT(0x48d, result != 0);
|
||||
if (result == 0) {
|
||||
OSReport_Error("ぴったりサイズで、登録失敗?(バグ)\n");
|
||||
mDoExt_destroySolidHeap(heap1);
|
||||
heap1 = NULL;
|
||||
}
|
||||
} else {
|
||||
mDoExt_restoreCurrentHeap();
|
||||
mDoExt_destroySolidHeap(heap1);
|
||||
heap1 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (heap1 != NULL) {
|
||||
mDoExt_adjustSolidHeap(heap1);
|
||||
i_this->heap = heap1;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (heap != NULL) {
|
||||
mDoExt_adjustSolidHeap(heap);
|
||||
i_this->heap = heap;
|
||||
return true;
|
||||
}
|
||||
|
||||
OSReport_Error("ばぐばぐです\n");
|
||||
JUT_ASSERT(0x4b5, 0);
|
||||
}
|
||||
|
||||
OSReport_Error("fopAcM_entrySolidHeap だめでした [%s]\n", pProcNameString);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 800250E4-80025100 .text fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff */
|
||||
void fopAcM_setCullSizeBox(fopAc_ac_c*, float, float, float, float, float, float) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_setCullSizeBox(fopAc_ac_c* i_this, float minX, float minY, float minZ, float maxX, float maxY, float maxZ) {
|
||||
i_this->mCull.mBox.mMin.x = minX;
|
||||
i_this->mCull.mBox.mMin.y = minY;
|
||||
i_this->mCull.mBox.mMin.z = minZ;
|
||||
i_this->mCull.mBox.mMax.x = maxX;
|
||||
i_this->mCull.mBox.mMax.y = maxY;
|
||||
i_this->mCull.mBox.mMax.z = maxZ;
|
||||
}
|
||||
|
||||
/* 80025100-80025114 .text fopAcM_setCullSizeSphere__FP10fopAc_ac_cffff */
|
||||
void fopAcM_setCullSizeSphere(fopAc_ac_c*, float, float, float, float) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_setCullSizeSphere(fopAc_ac_c* i_this, float x, float y, float z, float r) {
|
||||
i_this->mCull.mSphere.mCenter.x = x;
|
||||
i_this->mCull.mSphere.mCenter.y = y;
|
||||
i_this->mCull.mSphere.mCenter.z = z;
|
||||
i_this->mCull.mSphere.mRadius = r;
|
||||
}
|
||||
|
||||
/* 80025114-80025144 .text fopAcM_addAngleY__FP10fopAc_ac_css */
|
||||
void fopAcM_addAngleY(fopAc_ac_c*, short, short) {
|
||||
/* Nonmatching */
|
||||
bool fopAcM_addAngleY(fopAc_ac_c* i_this, short target, short step) {
|
||||
return cLib_chaseAngleS(&i_this->current.angle.y, target, step);
|
||||
}
|
||||
|
||||
/* 80025144-800251A0 .text fopAcM_calcSpeed__FP10fopAc_ac_c */
|
||||
void fopAcM_calcSpeed(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_calcSpeed(fopAc_ac_c* i_this) {
|
||||
f32 speedF = fopAcM_GetSpeedF(i_this);
|
||||
f32 gravity = fopAcM_GetGravity(i_this);
|
||||
f32 xSpeed = speedF * cM_ssin(i_this->current.angle.y);
|
||||
f32 ySpeed = i_this->speed.y + gravity;
|
||||
f32 zSpeed = speedF * cM_scos(i_this->current.angle.y);
|
||||
|
||||
if (ySpeed < fopAcM_GetMaxFallSpeed(i_this))
|
||||
ySpeed = fopAcM_GetMaxFallSpeed(i_this);
|
||||
|
||||
fopAcM_SetSpeed(i_this, xSpeed, ySpeed, zSpeed);
|
||||
}
|
||||
|
||||
/* 800251A0-8002520C .text fopAcM_posMove__FP10fopAc_ac_cPC4cXyz */
|
||||
void fopAcM_posMove(fopAc_ac_c*, const cXyz*) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_posMove(fopAc_ac_c* i_this, const cXyz* move) {
|
||||
i_this->current.pos.x += i_this->speed.x;
|
||||
i_this->current.pos.y += i_this->speed.y;
|
||||
i_this->current.pos.z += i_this->speed.z;
|
||||
|
||||
if (move != NULL) {
|
||||
i_this->current.pos.x += move->x;
|
||||
i_this->current.pos.y += move->y;
|
||||
i_this->current.pos.z += move->z;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8002520C-80025250 .text fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz */
|
||||
void fopAcM_posMoveF(fopAc_ac_c*, const cXyz*) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_posMoveF(fopAc_ac_c* i_this, const cXyz* move) {
|
||||
fopAcM_calcSpeed(i_this);
|
||||
fopAcM_posMove(i_this, move);
|
||||
}
|
||||
|
||||
/* 80025250-80025278 .text fopAcM_searchActorAngleY__FP10fopAc_ac_cP10fopAc_ac_c */
|
||||
void fopAcM_searchActorAngleY(fopAc_ac_c*, fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
s16 fopAcM_searchActorAngleY(fopAc_ac_c* i_this, fopAc_ac_c* i_other) {
|
||||
return cLib_targetAngleY(&i_this->current.pos, &i_other->current.pos);
|
||||
}
|
||||
|
||||
/* 80025278-800252BC .text fopAcM_seenActorAngleY__FP10fopAc_ac_cP10fopAc_ac_c */
|
||||
void fopAcM_seenActorAngleY(fopAc_ac_c*, fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_seenActorAngleY(fopAc_ac_c* i_this, fopAc_ac_c* i_other) {
|
||||
s16 angleY = cLib_targetAngleY(&i_this->current.pos, &i_other->current.pos);
|
||||
return abs((s16)(angleY - i_this->shape_angle.y));
|
||||
}
|
||||
|
||||
/* 800252BC-80025370 .text fopAcM_searchActorDistance__FP10fopAc_ac_cP10fopAc_ac_c */
|
||||
void fopAcM_searchActorDistance(fopAc_ac_c*, fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
f32 fopAcM_searchActorDistance(fopAc_ac_c* i_this, fopAc_ac_c* i_other) {
|
||||
cXyz delta = i_other->current.pos - i_this->current.pos;
|
||||
return delta.abs();
|
||||
}
|
||||
|
||||
/* 80025370-800253C0 .text fopAcM_searchActorDistance2__FP10fopAc_ac_cP10fopAc_ac_c */
|
||||
void fopAcM_searchActorDistance2(fopAc_ac_c*, fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
f32 fopAcM_searchActorDistance2(fopAc_ac_c* i_this, fopAc_ac_c* i_other) {
|
||||
cXyz delta = i_other->current.pos - i_this->current.pos;
|
||||
return delta.abs2();
|
||||
}
|
||||
|
||||
/* 800253C0-80025470 .text fopAcM_searchActorDistanceXZ__FP10fopAc_ac_cP10fopAc_ac_c */
|
||||
void fopAcM_searchActorDistanceXZ(fopAc_ac_c*, fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
f32 fopAcM_searchActorDistanceXZ(fopAc_ac_c* i_this, fopAc_ac_c* i_other) {
|
||||
cXyz delta = i_other->current.pos - i_this->current.pos;
|
||||
return delta.absXZ();
|
||||
}
|
||||
|
||||
/* 80025470-800254BC .text fopAcM_searchActorDistanceXZ2__FP10fopAc_ac_cP10fopAc_ac_c */
|
||||
void fopAcM_searchActorDistanceXZ2(fopAc_ac_c*, fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
f32 fopAcM_searchActorDistanceXZ2(fopAc_ac_c* i_this, fopAc_ac_c* i_other) {
|
||||
cXyz delta = i_other->current.pos - i_this->current.pos;
|
||||
return delta.abs2XZ();
|
||||
}
|
||||
|
||||
/* 800254BC-800255B4 .text fopAcM_rollPlayerCrash__FP10fopAc_ac_cfUl */
|
||||
void fopAcM_rollPlayerCrash(fopAc_ac_c*, float, unsigned long) {
|
||||
s32 fopAcM_rollPlayerCrash(fopAc_ac_c*, float, u32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800255B4-80025660 .text fopAcM_checkCullingBox__FPA4_fffffff */
|
||||
void fopAcM_checkCullingBox(float(*)[4], float, float, float, float, float, float) {
|
||||
/* Nonmatching */
|
||||
s32 fopAcM_checkCullingBox(Mtx pMtx, float x0, float y0, float z0, float x1, float y1, float z1) {
|
||||
Vec p0 = { x0, y0, z0 };
|
||||
Vec p1 = { x1, y1, z1 };
|
||||
Mtx viewMtx;
|
||||
MTXConcat(j3dSys.mViewMtx, pMtx, viewMtx);
|
||||
return mDoLib_clipper::clip(viewMtx, &p1, &p0) != 0;
|
||||
}
|
||||
|
||||
/* 80025660-800259A8 .text fopAcM_cullingCheck__FP10fopAc_ac_c */
|
||||
void fopAcM_cullingCheck(fopAc_ac_c*) {
|
||||
s32 fopAcM_cullingCheck(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -212,7 +533,7 @@ void fopAcM_orderZHintEvent(fopAc_ac_c*, fopAc_ac_c*) {
|
||||
}
|
||||
|
||||
/* 80025B3C-80025B8C .text fopAcM_orderSpeakEvent__FP10fopAc_ac_c */
|
||||
void fopAcM_orderSpeakEvent(fopAc_ac_c*) {
|
||||
s32 fopAcM_orderSpeakEvent(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -227,37 +548,37 @@ void fopAcM_orderCatchEvent(fopAc_ac_c*, fopAc_ac_c*) {
|
||||
}
|
||||
|
||||
/* 80025C34-80025CC8 .text fopAcM_orderOtherEvent2__FP10fopAc_ac_cPcUsUs */
|
||||
void fopAcM_orderOtherEvent2(fopAc_ac_c*, char*, unsigned short, unsigned short) {
|
||||
s32 fopAcM_orderOtherEvent2(fopAc_ac_c*, char*, u16, u16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80025CC8-80025D28 .text fopAcM_orderChangeEvent__FP10fopAc_ac_cPcUsUs */
|
||||
void fopAcM_orderChangeEvent(fopAc_ac_c*, char*, unsigned short, unsigned short) {
|
||||
void fopAcM_orderChangeEvent(fopAc_ac_c*, char*, u16, u16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80025D28-80025D94 .text fopAcM_orderChangeEvent__FP10fopAc_ac_cP10fopAc_ac_cPcUsUs */
|
||||
void fopAcM_orderChangeEvent(fopAc_ac_c*, fopAc_ac_c*, char*, unsigned short, unsigned short) {
|
||||
void fopAcM_orderChangeEvent(fopAc_ac_c*, fopAc_ac_c*, char*, u16, u16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80025D94-80025E1C .text fopAcM_orderChangeEventId__FP10fopAc_ac_csUsUs */
|
||||
void fopAcM_orderChangeEventId(fopAc_ac_c*, short, unsigned short, unsigned short) {
|
||||
s32 fopAcM_orderChangeEventId(fopAc_ac_c*, short, u16, u16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80025E1C-80025EA4 .text fopAcM_orderChangeEventId__FP10fopAc_ac_cP10fopAc_ac_csUsUs */
|
||||
void fopAcM_orderChangeEventId(fopAc_ac_c*, fopAc_ac_c*, short, unsigned short, unsigned short) {
|
||||
void fopAcM_orderChangeEventId(fopAc_ac_c*, fopAc_ac_c*, short, u16, u16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80025EA4-80025F3C .text fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs */
|
||||
void fopAcM_orderOtherEventId(fopAc_ac_c*, short, unsigned char, unsigned short, unsigned short, unsigned short) {
|
||||
s32 fopAcM_orderOtherEventId(fopAc_ac_c*, short, unsigned char, u16, u16, u16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80025F3C-80025F9C .text fopAcM_orderPotentialEvent__FP10fopAc_ac_cUsUsUs */
|
||||
void fopAcM_orderPotentialEvent(fopAc_ac_c*, unsigned short, unsigned short, unsigned short) {
|
||||
s32 fopAcM_orderPotentialEvent(fopAc_ac_c*, u16, u16, u16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -272,27 +593,27 @@ void fopAcM_orderTreasureEvent(fopAc_ac_c*, fopAc_ac_c*) {
|
||||
}
|
||||
|
||||
/* 80026044-80026074 .text fopAcM_getTalkEventPartner__FP10fopAc_ac_c */
|
||||
void fopAcM_getTalkEventPartner(fopAc_ac_c*) {
|
||||
fopAc_ac_c* fopAcM_getTalkEventPartner(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80026074-800260A4 .text fopAcM_getItemEventPartner__FP10fopAc_ac_c */
|
||||
void fopAcM_getItemEventPartner(fopAc_ac_c*) {
|
||||
fopAc_ac_c* fopAcM_getItemEventPartner(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800260A4-80026118 .text fopAcM_getEventPartner__FP10fopAc_ac_c */
|
||||
void fopAcM_getEventPartner(fopAc_ac_c*) {
|
||||
fopAc_ac_c* fopAcM_getEventPartner(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80026118-800261E8 .text fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz */
|
||||
void fopAcM_createItemForPresentDemo(cXyz*, int, unsigned char, int, int, csXyz*, cXyz*) {
|
||||
s32 fopAcM_createItemForPresentDemo(cXyz*, int, unsigned char, int, int, csXyz*, cXyz*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800261E8-800262B4 .text fopAcM_createItemForTrBoxDemo__FP4cXyziiiP5csXyzP4cXyz */
|
||||
void fopAcM_createItemForTrBoxDemo(cXyz*, int, int, int, csXyz*, cXyz*) {
|
||||
s32 fopAcM_createItemForTrBoxDemo(cXyz*, int, int, int, csXyz*, cXyz*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -307,7 +628,7 @@ void fopAcM_createRaceItemFromTable(cXyz*, int, int, int, csXyz*, cXyz*, int) {
|
||||
}
|
||||
|
||||
/* 800267C8-8002688C .text fopAcM_createShopItem__FP4cXyziP5csXyziP4cXyzPFPv_i */
|
||||
void fopAcM_createShopItem(cXyz*, int, csXyz*, int, cXyz*, int (*)(void*)) {
|
||||
void fopAcM_createShopItem(cXyz*, int, csXyz*, int, cXyz*, createFunc createFunc) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -317,17 +638,17 @@ void fopAcM_createRaceItem(cXyz*, int, int, csXyz*, int, cXyz*, int) {
|
||||
}
|
||||
|
||||
/* 80026980-80026A68 .text fopAcM_createDemoItem__FP4cXyziiP5csXyziP4cXyzUc */
|
||||
void fopAcM_createDemoItem(cXyz*, int, int, csXyz*, int, cXyz*, unsigned char) {
|
||||
s32 fopAcM_createDemoItem(cXyz*, int, int, csXyz*, int, cXyz*, unsigned char) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80026A68-80026ADC .text fopAcM_createItemForBoss__FP4cXyziiP5csXyzP4cXyzi */
|
||||
void fopAcM_createItemForBoss(cXyz*, int, int, csXyz*, cXyz*, int) {
|
||||
s32 fopAcM_createItemForBoss(cXyz*, int, int, csXyz*, cXyz*, int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80026ADC-80026C90 .text fopAcM_createItem__FP4cXyziiiiP5csXyziP4cXyz */
|
||||
void fopAcM_createItem(cXyz*, int, int, int, int, csXyz*, int, cXyz*) {
|
||||
s32 fopAcM_createItem(cXyz*, int, int, int, int, csXyz*, int, cXyz*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -337,17 +658,17 @@ void fopAcM_fastCreateItem2(cXyz*, int, int, int, int, csXyz*, int, cXyz*) {
|
||||
}
|
||||
|
||||
/* 80026E5C-80026F5C .text fopAcM_createItemForKP2__FP4cXyziiP5csXyzP4cXyzfffUs */
|
||||
void fopAcM_createItemForKP2(cXyz*, int, int, csXyz*, cXyz*, float, float, float, unsigned short) {
|
||||
void fopAcM_createItemForKP2(cXyz*, int, int, csXyz*, cXyz*, float, float, float, u16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80026F5C-80026F98 .text fopAcM_createItemForSimpleDemo__FP4cXyziiP5csXyzP4cXyzff */
|
||||
void fopAcM_createItemForSimpleDemo(cXyz*, int, int, csXyz*, cXyz*, float, float) {
|
||||
void* fopAcM_createItemForSimpleDemo(cXyz*, int, int, csXyz*, cXyz*, float, float) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80026F98-80027254 .text fopAcM_fastCreateItem__FP4cXyziiP5csXyzP4cXyzfffiPFPv_i */
|
||||
void fopAcM_fastCreateItem(cXyz*, int, int, csXyz*, cXyz*, float, float, float, int, int (*)(void*)) {
|
||||
void fopAcM_fastCreateItem(cXyz*, int, int, csXyz*, cXyz*, float, float, float, int, createFunc createFunc) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -362,12 +683,12 @@ void fopAcM_createStealItem(cXyz*, int, int, csXyz*, int) {
|
||||
}
|
||||
|
||||
/* 800273D4-8002777C .text fopAcM_createItemFromEnemyTable__FUsiiP4cXyzP5csXyz */
|
||||
void fopAcM_createItemFromEnemyTable(unsigned short, int, int, cXyz*, csXyz*) {
|
||||
void fopAcM_createItemFromEnemyTable(u16, int, int, cXyz*, csXyz*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8002777C-800278D8 .text fopAcM_createIball__FP4cXyziiP5csXyzi */
|
||||
void fopAcM_createIball(cXyz*, int, int, csXyz*, int) {
|
||||
s32 fopAcM_createIball(cXyz*, int, int, csXyz*, int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -382,12 +703,12 @@ void enemySearchJugge(void*, void*) {
|
||||
}
|
||||
|
||||
/* 80027970-80027A9C .text fopAcM_myRoomSearchEnemy__FSc */
|
||||
void fopAcM_myRoomSearchEnemy(signed char) {
|
||||
fopAc_ac_c* fopAcM_myRoomSearchEnemy(signed char) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80027A9C-80027B24 .text fopAcM_createDisappear__FP10fopAc_ac_cP4cXyzUcUcUc */
|
||||
void fopAcM_createDisappear(fopAc_ac_c*, cXyz*, unsigned char, unsigned char, unsigned char) {
|
||||
s32 fopAcM_createDisappear(fopAc_ac_c*, cXyz*, unsigned char, unsigned char, unsigned char) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -412,38 +733,39 @@ void fopAcM_viewCutoffCheck(fopAc_ac_c*, float) {
|
||||
}
|
||||
|
||||
/* 800281D8-800282F8 .text fopAcM_otoCheck__FP10fopAc_ac_cf */
|
||||
void fopAcM_otoCheck(fopAc_ac_c*, float) {
|
||||
s32 fopAcM_otoCheck(fopAc_ac_c*, float) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800282F8-8002833C .text fopAcM_getProcNameString__FP10fopAc_ac_c */
|
||||
void fopAcM_getProcNameString(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
const char * fopAcM_getProcNameString(fopAc_ac_c* i_this) {
|
||||
const char * pProcNameString = dStage_getName2(fpcM_GetProfName(i_this), i_this->mSubtype);
|
||||
if (pProcNameString != NULL)
|
||||
return pProcNameString;
|
||||
return "UNKOWN";
|
||||
}
|
||||
|
||||
/* 8002833C-80028410 .text fopAcM_findObjectCB__FP10fopAc_ac_cPv */
|
||||
void fopAcM_findObjectCB(fopAc_ac_c*, void*) {
|
||||
fopAc_ac_c* fopAcM_findObjectCB(fopAc_ac_c*, void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80028410-80028448 .text fopAcM_searchFromName__FPcUlUl */
|
||||
void fopAcM_searchFromName(char*, unsigned long, unsigned long) {
|
||||
fopAc_ac_c* fopAcM_searchFromName(char* pProcName, u32 paramMask, u32 parameter) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80028448-80028560 .text fopAcM_getWaterY__FPC4cXyzPf */
|
||||
void fopAcM_getWaterY(const cXyz*, float*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80028560-80028684 .text __dt__11dBgS_WtrChkFv */
|
||||
dBgS_WtrChk::~dBgS_WtrChk() {
|
||||
s32 fopAcM_getWaterY(const cXyz*, float*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80028684-80028724 .text fopAcM_setGbaName__FP10fopAc_ac_cUcUcUc */
|
||||
void fopAcM_setGbaName(fopAc_ac_c*, unsigned char, unsigned char, unsigned char) {
|
||||
/* Nonmatching */
|
||||
void fopAcM_setGbaName(fopAc_ac_c* i_this, u8 itemNo, u8 gbaName0, u8 gbaName1) {
|
||||
if (dComIfGs_checkGetItem(itemNo) || (itemNo == BOW && (dComIfGs_checkGetItem(MAGIC_ARROW) || dComIfGs_checkGetItem(LIGHT_ARROW))) || (itemNo == MAGIC_ARROW && dComIfGs_checkGetItem(LIGHT_ARROW)))
|
||||
i_this->mGbaName = gbaName1;
|
||||
else
|
||||
i_this->mGbaName = gbaName0;
|
||||
}
|
||||
|
||||
/* 80028724-800287D8 .text fpoAcM_absolutePos__FP10fopAc_ac_cP4cXyzP4cXyz */
|
||||
@@ -456,67 +778,20 @@ void fpoAcM_relativePos(fopAc_ac_c*, cXyz*, cXyz*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8002889C-80028998 .text __dt__14dBgS_SplGrpChkFv */
|
||||
dBgS_SplGrpChk::~dBgS_SplGrpChk() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80029178-80029198 .text __ct__20fopAc_cullSizeSphereF4cXyzf */
|
||||
fopAc_cullSizeSphere::fopAc_cullSizeSphere(cXyz, float) {
|
||||
/* Nonmatching */
|
||||
fopAc_cullSizeSphere::fopAc_cullSizeSphere(cXyz p, float r) {
|
||||
mCenter = p;
|
||||
mRadius = r;
|
||||
}
|
||||
|
||||
/* 80029198-800291CC .text __ct__17fopAc_cullSizeBoxFRC17fopAc_cullSizeBox */
|
||||
fopAc_cullSizeBox::fopAc_cullSizeBox(const fopAc_cullSizeBox&) {
|
||||
/* Nonmatching */
|
||||
fopAc_cullSizeBox::fopAc_cullSizeBox(const fopAc_cullSizeBox& box) {
|
||||
mMin = box.mMin;
|
||||
mMax = box.mMax;
|
||||
}
|
||||
|
||||
/* 800291CC-80029200 .text __ct__17fopAc_cullSizeBoxF4cXyz4cXyz */
|
||||
fopAc_cullSizeBox::fopAc_cullSizeBox(cXyz, cXyz) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80029200-8002923C .text __dt__5l_HIOFv */
|
||||
l_HIO::~l_HIO() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8002923C-80029244 .text @16@__dt__11dBgS_WtrChkFv */
|
||||
void @16@__dt__11dBgS_WtrChkFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80029244-8002924C .text @48@__dt__11dBgS_WtrChkFv */
|
||||
void @48@__dt__11dBgS_WtrChkFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8002924C-80029254 .text @36@__dt__11dBgS_WtrChkFv */
|
||||
void @36@__dt__11dBgS_WtrChkFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80029254-8002925C .text @16@__dt__14dBgS_SplGrpChkFv */
|
||||
void @16@__dt__14dBgS_SplGrpChkFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8002925C-80029264 .text @48@__dt__14dBgS_SplGrpChkFv */
|
||||
void @48@__dt__14dBgS_SplGrpChkFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80029264-8002926C .text @36@__dt__14dBgS_SplGrpChkFv */
|
||||
void @36@__dt__14dBgS_SplGrpChkFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8002926C-80029270 .text onFrollCrashFlg__9daPy_py_cFUl */
|
||||
void daPy_py_c::onFrollCrashFlg(unsigned long) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80029270-80029278 .text getGrabActorID__9daPy_py_cCFv */
|
||||
void daPy_py_c::getGrabActorID() const {
|
||||
/* Nonmatching */
|
||||
fopAc_cullSizeBox::fopAc_cullSizeBox(cXyz min, cXyz max) {
|
||||
mMin = min;
|
||||
mMax = max;
|
||||
}
|
||||
|
||||
+59
-10
@@ -4,29 +4,78 @@
|
||||
//
|
||||
|
||||
#include "f_op/f_op_camera.h"
|
||||
#include "f_op/f_op_draw_tag.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/d_meter.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
/* 80029278-800292CC .text fopCam_Draw__FP12camera_class */
|
||||
void fopCam_Draw(camera_class*) {
|
||||
/* Nonmatching */
|
||||
s32 fopCam_Draw(camera_class* camera) {
|
||||
s32 cam_proc = 1;
|
||||
|
||||
if (!dMenu_flag()) {
|
||||
cam_proc = fpcLf_DrawMethod(camera->mpMtd, camera);
|
||||
}
|
||||
return cam_proc;
|
||||
}
|
||||
|
||||
/* 800292CC-80029328 .text fopCam_Execute__FP12camera_class */
|
||||
void fopCam_Execute(camera_class*) {
|
||||
/* Nonmatching */
|
||||
s32 fopCam_Execute(camera_class* camera) {
|
||||
int ret;
|
||||
|
||||
if (!dMenu_flag() && !dScnPly_ply_c::isPause()) {
|
||||
ret = fpcMtd_Execute((process_method_class*)camera->mpMtd, camera);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 80029328-8002937C .text fopCam_IsDelete__FP12camera_class */
|
||||
void fopCam_IsDelete(camera_class*) {
|
||||
/* Nonmatching */
|
||||
s32 fopCam_IsDelete(camera_class* camera) {
|
||||
s32 ret = fpcMtd_IsDelete((process_method_class*)camera->mpMtd, camera);
|
||||
if (ret == 1)
|
||||
fopDwTg_DrawQTo(&camera->mDwTg);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 8002937C-800293D0 .text fopCam_Delete__FP12camera_class */
|
||||
void fopCam_Delete(camera_class*) {
|
||||
/* Nonmatching */
|
||||
s32 fopCam_Delete(camera_class* camera) {
|
||||
s32 ret = fpcMtd_Delete((process_method_class*)camera->mpMtd, camera);
|
||||
if (ret == 1)
|
||||
fopDwTg_DrawQTo(&camera->mDwTg);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 800293D0-80029468 .text fopCam_Create__FPv */
|
||||
void fopCam_Create(void*) {
|
||||
/* Nonmatching */
|
||||
s32 fopCam_Create(void* pProc) {
|
||||
camera_class* camera = (camera_class*)pProc;
|
||||
|
||||
if (fpcM_IsFirstCreating(pProc)) {
|
||||
camera_process_profile_definition* profile =
|
||||
(camera_process_profile_definition*)fpcM_GetProfile(pProc);
|
||||
camera->mpMtd = profile->mSubMtd;
|
||||
|
||||
fopDwTg_Init(&camera->mDwTg, camera);
|
||||
u32* append = (u32*)fpcM_GetAppend(camera);
|
||||
|
||||
if (append) {
|
||||
fpcM_SetParam(camera, *append);
|
||||
}
|
||||
}
|
||||
|
||||
s32 ret = fpcMtd_Create(&camera->mpMtd->mBase, camera);
|
||||
if (ret == cPhs_COMPLEATE_e) {
|
||||
s32 priority = fpcLf_GetPriority(camera);
|
||||
fopDwTg_ToDrawQ(&camera->mDwTg, priority);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
leafdraw_method_class g_fopCam_Method = {
|
||||
(process_method_func)fopCam_Create,
|
||||
(process_method_func)fopCam_Delete,
|
||||
(process_method_func)fopCam_Execute,
|
||||
(process_method_func)fopCam_IsDelete,
|
||||
(process_method_func)fopCam_Draw,
|
||||
};
|
||||
|
||||
@@ -29,7 +29,7 @@ static int fopKy_Execute(void* i_this) {
|
||||
int ret;
|
||||
kankyo_class* _this = (kankyo_class*)i_this;
|
||||
|
||||
if (dScnPly_ply_c::isPause() && (!dMenu_flag() || fpcM_GetName(i_this) == PROC_ENVSE || fpcM_GetName(i_this) == PROC_LEVEL_SE)) {
|
||||
if (!dScnPly_ply_c::isPause() && (!dMenu_flag() || fpcM_GetName(i_this) == PROC_ENVSE || fpcM_GetName(i_this) == PROC_LEVEL_SE)) {
|
||||
ret = fpcMtd_Execute(&_this->mSubMtd->mBase, i_this);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
/* 8002A688-8002A6B0 .text fopMsg_Draw__FPv */
|
||||
static int fopMsg_Draw(void* i_this) {
|
||||
int fopMsg_Draw(void* i_this) {
|
||||
msg_class* _this = static_cast<msg_class*>(i_this);
|
||||
return fpcLf_DrawMethod(_this->mSubMtd, i_this);
|
||||
}
|
||||
|
||||
/* 8002A6B0-8002A6E8 .text fopMsg_Execute__FPv */
|
||||
static int fopMsg_Execute(void* i_this) {
|
||||
int fopMsg_Execute(void* i_this) {
|
||||
msg_class* _this = static_cast<msg_class*>(i_this);
|
||||
|
||||
int stat = 1;
|
||||
if (dScnPly_ply_c::isPause()) {
|
||||
if (!dScnPly_ply_c::isPause()) {
|
||||
stat = fpcMtd_Execute(&_this->mSubMtd->mBase, i_this);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ static int fopMsg_Execute(void* i_this) {
|
||||
}
|
||||
|
||||
/* 8002A6E8-8002A73C .text fopMsg_IsDelete__FPv */
|
||||
static int fopMsg_IsDelete(void* i_this) {
|
||||
int fopMsg_IsDelete(void* i_this) {
|
||||
msg_class* _this = static_cast<msg_class*>(i_this);
|
||||
|
||||
int stat = fpcMtd_IsDelete(&_this->mSubMtd->mBase, i_this);
|
||||
@@ -40,7 +40,7 @@ static int fopMsg_IsDelete(void* i_this) {
|
||||
}
|
||||
|
||||
/* 8002A73C-8002A788 .text fopMsg_Delete__FPv */
|
||||
static int fopMsg_Delete(void* i_this) {
|
||||
int fopMsg_Delete(void* i_this) {
|
||||
msg_class* _this = static_cast<msg_class*>(i_this);
|
||||
|
||||
int stat = fpcMtd_Delete(&_this->mSubMtd->mBase, i_this);
|
||||
|
||||
@@ -81,12 +81,12 @@ s32 fpcBs_Delete(base_process_class* i_proc) {
|
||||
}
|
||||
|
||||
/* 8003CA60-8003CB5C .text fpcBs_Create__FsUiPv */
|
||||
base_process_class* fpcBs_Create(s16 i_procTypeID, unsigned int i_procID, void* i_data) {
|
||||
base_process_class* fpcBs_Create(s16 i_profName, unsigned int i_procID, void* i_data) {
|
||||
process_profile_definition* procProfDef;
|
||||
base_process_class* procClass;
|
||||
u32 size;
|
||||
|
||||
procProfDef = (process_profile_definition*)fpcPf_Get(i_procTypeID);
|
||||
procProfDef = (process_profile_definition*)fpcPf_Get(i_profName);
|
||||
size = procProfDef->mSize + procProfDef->mSizeOther;
|
||||
procClass = (base_process_class*)cMl::memalignB(-4, size);
|
||||
if (procClass == NULL) {
|
||||
@@ -101,7 +101,7 @@ base_process_class* fpcBs_Create(s16 i_procTypeID, unsigned int i_procID, void*
|
||||
procClass->mInitState = 0;
|
||||
procClass->mUnk0 = 0;
|
||||
procClass->mBsPcId = i_procID;
|
||||
procClass->mBsTypeId = i_procTypeID;
|
||||
procClass->mProfName = i_profName;
|
||||
procClass->mBsType = fpcBs_MakeOfType(&g_fpcBs_type);
|
||||
procClass->mProcName = procProfDef->mProcName;
|
||||
fpcPause_Init(procClass);
|
||||
|
||||
@@ -19,13 +19,13 @@ BOOL fpcDt_IsComplete() {
|
||||
/* 8003D2A0-8003D314 .text fpcDt_deleteMethod__FP18base_process_class */
|
||||
s32 fpcDt_deleteMethod(base_process_class* i_proc) {
|
||||
layer_class* layer = i_proc->mDtTg.mpLayer;
|
||||
s16 typeID = i_proc->mBsTypeId;
|
||||
s16 profName = i_proc->mProfName;
|
||||
|
||||
fpcLy_SetCurrentLayer(layer);
|
||||
fpcLnTg_QueueTo(&i_proc->mLnTg);
|
||||
if (fpcBs_Delete(i_proc) == 1) {
|
||||
fpcLy_DeletedMesg(layer);
|
||||
fpcLd_Free(typeID);
|
||||
fpcLd_Free(profName);
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user