Merge pull request #74 from LagoLunatic/arrow

d_a_arrow 50%
This commit is contained in:
Jasper St. Pierre
2023-09-23 21:09:14 -07:00
committed by GitHub
12 changed files with 653 additions and 180 deletions
+5 -1
View File
@@ -346,10 +346,12 @@ public:
void setRPrm(s32 rprm) { mRPrm = rprm; }
s32 getRPrm() const { return mRPrm; }
cCcD_Obj* GetHitObj() { return mHitObj; }
void ClrObj() { mHitObj = NULL; }
u32 MskSPrm(u32 mask) const { return mSPrm & mask; }
u32 MskRPrm(u32 mask) { return mRPrm & mask; }
void OnSPrmBit(u32 flag) { mSPrm |= flag; }
void OffSPrmBit(u32 flag) { mSPrm &= ~flag; }
void ClrRPrm(u32 flag) { mRPrm &= ~flag; }
void Set(cCcD_SrcObjCommonBase const& src) {
mSPrm = src.mSPrm;
@@ -364,7 +366,7 @@ public:
virtual ~cCcD_ObjAt() {}
void SetHit(cCcD_Obj*);
void Set(cCcD_SrcObjAt const&);
void ClrHit();
void ClrHit() { ClrObj(); }
int GetType() const { return mType; }
u32 GetGrp() const { return MskSPrm(0x1E); }
bool ChkSet() const { return MskSPrm(1); }
@@ -373,6 +375,7 @@ public:
void SetType(u32 type) { mType = type; }
void SetAtp(int atp) { mAtp = atp; }
void ClrSet() { OffSPrmBit(1); }
void OffHitBit() { ClrRPrm(1); }
u32 ChkHit() { return MskRPrm(1); }
protected:
@@ -470,6 +473,7 @@ public:
void SetTgType(u32 type) { mObjTg.SetType(type); }
void OnTgSPrmBit(u32 flag) { mObjTg.OnSPrmBit(flag); }
void OffAtSetBit() { mObjAt.ClrSet(); }
void OffAtHitBit() { mObjAt.OffHitBit(); }
void OnTgSetBit() { mObjTg.OnSPrmBit(1); }
void OffTgSetBit() { mObjTg.ClrSet(); }
void OnCoSetBit() { mObjCo.OnSPrmBit(1); }
+4 -1
View File
@@ -15,7 +15,10 @@ public:
cM3dGLin() {}
cM3dGLin(const cXyz&, const cXyz&);
virtual ~cM3dGLin() {}
void SetStartEnd(const cXyz&, const cXyz&);
void SetStartEnd(const cXyz& start, const cXyz& end) {
mStart = start;
mEnd = end;
}
void SetStartEnd(const Vec&, const Vec&);
void CalcPos(Vec*, f32) const;
void CalcVec(Vec* pOut) const { VECSubtract(&this->mEnd, &this->mStart, pOut); }
+62 -16
View File
@@ -1,3 +1,5 @@
#ifndef D_A_ARROW_H
#define D_A_ARROW_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
@@ -6,15 +8,20 @@
#include "d/d_particle.h"
#include "dolphin/types.h"
class J3DAnmTextureSRTKey;
class J3DMaterial;
class daArrow_c : fopAc_ac_c {
public:
enum ArrowType {
NORMAL_ARROWS = 0,
FIRE_ARROWS = 1,
ICE_ARROWS = 2,
LIGHT_ARROWS = 3,
TYPE_NORMAL = 0,
TYPE_FIRE = 1,
TYPE_ICE = 2,
TYPE_LIGHT = 3,
};
typedef BOOL (daArrow_c::*daArrow_c_ProcFunc)();
BOOL _createHeap();
void _atHit(dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
void checkCreater();
@@ -33,26 +40,40 @@ public:
void setRoomInfo();
void setKeepMatrix();
void setStopActorMatrix();
void procWait();
void procMove();
void procReturn();
void procStop_BG();
void procStop_Actor();
void procWater();
BOOL procWait();
BOOL procMove();
BOOL procReturn();
BOOL procStop_BG();
BOOL procStop_Actor();
BOOL procWater();
void checkRestMp();
void setTypeByPlayer();
void createInit();
BOOL createInit();
BOOL _execute();
BOOL _draw();
s32 _create();
daArrow_c();
BOOL _delete();
// TODO inlines
// setAtHitPosBuff__9daArrow_cFP4cXyz
// setAtHitNormal__9daArrow_cFv
// setAtHitNormalActor__9daArrow_cFP10fopAc_ac_c
// clrAtHitNormal__9daArrow_cFv
// isSetByZelda__9daArrow_cFv
// clrAtHitPosBuff__9daArrow_cFP4cXyz
// getAtHitPosBuffP__9daArrow_cFv
// getAtHitNormalActor__9daArrow_cFv
// chkAtHitNormal__9daArrow_cFv
// isLinkReflect__9daArrow_cFv
// ArrowAtOff__9daArrow_cFv
public:
/* 0x290 */ bool mbShotByZelda;
/* 0x291 */ u8 field_0x291[0x294 - 0x291];
/* 0x294 */ J3DModel* mpModel;
/* 0x298 */ u8 field_0x298[0x2A0 - 0x298];
/* 0x298 */ J3DMaterial* mpTipMat;
/* 0x29C */ J3DAnmTextureSRTKey* mpBtk;
/* 0x2A0 */ dBgS_ArrowLinChk mLinChk;
/* 0x30C */ dBgS_ObjGndChk mGndChk;
/* 0x360 */ dCcD_Stts mStts;
@@ -62,20 +83,37 @@ public:
/* 0x601 */ u8 mArrowType;
/* 0x602 */ s16 field_0x602;
/* 0x604 */ s16 field_0x604;
/* 0x606 */ u8 field_0x606[0x610 - 0x606];
/* 0x606 */ u8 field_0x606[0x608 - 0x606];
/* 0x608 */ s16 field_0x608;
/* 0x60A */ u8 field_0x60A[0x60C - 0x60A];
/* 0x60C */ JPABaseEmitter* mpSparkleEmitter;
/* 0x610 */ s32 mHitActorProcID;
/* 0x614 */ s32 mHitJointIndex;
/* 0x618 */ cXyz field_0x618;
/* 0x624 */ u8 field_0x624[0x668 - 0x624];
/* 0x624 */ u8 field_0x624[0x660 - 0x624];
/* 0x660 */ f32 mBtkFrame;
/* 0x664 */ u8 field_0x664;
/* 0x665 */ u8 field_0x665[0x668 - 0x665];
/* 0x668 */ dPa_followEcallBack mPtclFollowCb;
/* 0x67C */ csXyz field_0x67c;
/* 0x682 */ u8 field_0x682;
/* 0x683 */ u8 field_0x683[0x684 - 0x683];
/* 0x684 */ u32 field_0x684;
/* 0x688 */ bool field_0x688;
/* 0x689 */ u8 field_0x689[0x6A8 - 0x689];
/* 0x689 */ u8 field_0x689[0x68C - 0x689];
/* 0x68C */ daArrow_c_ProcFunc mCurrProcFunc;
/* 0x698 */ u8 field_0x698;
/* 0x699 */ u8 field_0x699;
/* 0x69A */ u8 field_0x69a;
/* 0x69B */ u8 field_0x69B[0x69C - 0x69B];
/* 0x69C */ s16 field_0x69c;
/* 0x69E */ u8 field_0x69E[0x6A0 - 0x69E];
/* 0x6A0 */ s32 field_0x6a0;
/* 0x6A4 */ s32 mInWaterTimer;
/* 0x6A8 */ cXyz field_0x6a8;
/* 0x6B4 */ u8 field_0x6B4[0x6E6 - 0x6B4];
/* 0x6B4 */ u8 field_0x6B4[0x6E4 - 0x6B4];
/* 0x6E4 */ u8 field_0x6e4;
/* 0x6E5 */ u8 field_0x6E5[0x6E6 - 0x6E5];
/* 0x6E6 */ csXyz field_0x6e6;
/* 0x6EC */ fopAc_ac_c* field_0x6ec;
/* 0x6F0 */ cXyz mNearestHitPos;
@@ -84,7 +122,15 @@ public:
/* 0x701 */ u8 field_0x701[0x704 - 0x701];
static u8 m_keep_type;
static s16 m_count;
static const char m_arc_name[];
static const dCcD_SrcCps m_at_cps_src;
static const dCcD_SrcSph m_co_sph_src;
};
// Intellisense doesn't understand PTMF sizes
#ifndef __INTELLISENSE__
STATIC_ASSERT(sizeof(daArrow_c) == 0x704);
#endif
#endif /* D_A_ARROW_H */
+5 -1
View File
@@ -79,7 +79,8 @@ public:
/* 0x2A8 */ f32 field_0x2a8;
/* 0x2AC */ u8 field_0x2AC[0x2B0 - 0x2AC];
/* 0x2B0 */ f32 field_0x2b0;
/* 0x2B4 */ u8 field_0x2B4[0x2BC - 0x2B4];
/* 0x2B4 */ csXyz mBodyAngle;
/* 0x2BA */ u8 field_0x2BA[0x2BC - 0x2BA];
/* 0x2BC */ cXyz mHeadTopPos;
/* 0x2C8 */ cXyz mSwordTopPos;
/* 0x2D4 */ cXyz field_0x2d4;
@@ -90,6 +91,9 @@ public:
/* 0x300 */ f32 field_0x300;
/* 0x304 */ daPy_demo_c mDemo;
s16 getBodyAngleX() { return mBodyAngle.x; }
s16 getBodyAngleY() { return mBodyAngle.y; }
virtual MtxP getLeftHandMatrix() = 0;
virtual MtxP getRightHandMatrix() = 0;
virtual void getGroundY() = 0;
+6 -1
View File
@@ -1002,6 +1002,8 @@ public:
void checkNoControll() const;
J3DAnmTevRegKey* getBombBrk() { return mpBombBrk; }
J3DAnmTextureSRTKey* getIceArrowBtk() { return mpIceArrowBtk; }
J3DAnmTextureSRTKey* getLightArrowBtk() { return mpLightArrowBtk; }
virtual MtxP getLeftHandMatrix();
virtual MtxP getRightHandMatrix();
@@ -1099,7 +1101,10 @@ public:
/* 0x2EB0 */ J3DAnmTevRegKey* mpBombBrk;
/* 0x2EB4 */ J3DAnmTevRegKey* mpGwp00BrkData;
/* 0x2EB8 */ J3DAnmTextureSRTKey* mpGwp00BtkData;
/* 0x2EBC */ u8 field_0x2EBC[0x2ED4 - 0x2EBC];
/* 0x2EBC */ u8 field_0x2EBC[0x2EC0 - 0x2EBC];
/* 0x2EC0 */ J3DAnmTextureSRTKey* mpIceArrowBtk;
/* 0x2EC4 */ J3DAnmTextureSRTKey* mpLightArrowBtk;
/* 0x2EC8 */ u8 field_0x2EC8[0x2ED4 - 0x2EC8];
/* 0x2ED4 */ J3DAnmTextureSRTKey* mpHeldItemModelAnimTexEx;
/* 0x2ED8 */ J3DAnmTextureSRTKey* mpSwordAnimBTK;
/* 0x2EDC */ J3DAnmTevRegKey* mpHeldItemAnimBRK;
+19 -11
View File
@@ -68,7 +68,7 @@ struct dCcD_SrcCps {
class dCcD_GStts : public cCcD_GStts {
public:
dCcD_GStts();
virtual ~dCcD_GStts() {}
virtual ~dCcD_GStts();
void Ct();
void Move();
@@ -108,7 +108,7 @@ public:
virtual void Ct();
virtual void ClrAt();
virtual void ClrTg();
virtual ~dCcD_Stts() {}
virtual ~dCcD_Stts();
}; // Size = 0x3C
@@ -129,15 +129,18 @@ public:
public:
dCcD_GAtTgCoCommonBase() { ct(); }
void ClrActorInfo();
void ClrActorInfo() {
mApid = -1;
mAc = NULL;
}
void ct();
void SetHitApid(unsigned int);
fopAc_ac_c* GetAc();
void Set(dCcD_SrcGAtTgCoCommonBase const&);
void SetEffCounterTimer();
void SubtractEffCounter();
bool ChkEffCounter();
virtual ~dCcD_GAtTgCoCommonBase() {}
void SubtractEffCounter() { mEffCounter -= 1; }
bool ChkEffCounter() { return mEffCounter >= 0; }
virtual ~dCcD_GAtTgCoCommonBase();
void ClrEffCounter() { mEffCounter = 0; }
u32 GetGFlag() const { return mGFlag; }
@@ -152,14 +155,13 @@ public:
bool ChkRPrm(u32 flag) const { return MskRPrm(flag); }
void SetHitCallback(dCcD_HitCallback callback) { mHitCallback = callback; }
dCcD_HitCallback GetHitCallback() { return mHitCallback; }
void ClrHit() { ClrActorInfo(); }
}; // Size = 0x1C
// Attack (At) Collider
class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase {
public:
void Set(dCcD_SrcGObjAt const&);
virtual ~dCcD_GObjAt() {}
virtual ~dCcD_GObjAt();
void SetVec(cXyz& vec) { mVec = vec; }
cXyz& GetVec() { return mVec; }
cXyz* GetVecP() { return &mVec; }
@@ -174,6 +176,7 @@ public:
void SetRVec(cXyz& vec) { mRVec = vec; }
void SetHitPos(cXyz& pos) { mHitPos = pos; }
cXyz* GetHitPosP() { return &mHitPos; }
void ClrHit() { ClrActorInfo(); }
// private:
/* 0x1C */ u8 mSe;
@@ -189,7 +192,7 @@ public:
class dCcD_GObjTg : public dCcD_GAtTgCoCommonBase {
public:
void Set(dCcD_SrcGObjTg const&);
virtual ~dCcD_GObjTg() {}
virtual ~dCcD_GObjTg();
void SetSe(u8 se) { mSe = se; }
void SetVec(cXyz& vec) { mVec = vec; }
cXyz& GetVec() { return mVec; }
@@ -219,7 +222,7 @@ private:
// Correction (Co) Collider
class dCcD_GObjCo : public dCcD_GAtTgCoCommonBase {
public:
virtual ~dCcD_GObjCo() {}
virtual ~dCcD_GObjCo();
void Set(dCcD_SrcGObjCo const& pSrc) { dCcD_GAtTgCoCommonBase::Set(pSrc.mBase); }
}; // Size = 0x1C ?
@@ -363,6 +366,8 @@ public:
void Set(dCcD_SrcCyl const&);
cCcD_ShapeAttr* GetShapeAttr() { return this; }
void StartCAt(cXyz&);
void StartCTg(cXyz&);
void MoveCAtTg(cXyz&);
void MoveCAt(cXyz&);
void MoveCTg(cXyz&);
virtual ~dCcD_Cyl() {}
@@ -385,7 +390,10 @@ class dCcD_Cps : public dCcD_GObjInf, public cCcD_CpsAttr {
public:
void Set(dCcD_SrcCps const&);
cCcD_ShapeAttr* GetShapeAttr() { return (cCcD_ShapeAttr*)this; }
void CalcAtVec();
void CalcAtVec() {
cXyz* atVecP = GetAtVecP();
CalcVec(atVecP);
}
void CalcTgVec();
virtual ~dCcD_Cps() {}
dCcD_Cps() {}
+8 -1
View File
@@ -360,7 +360,9 @@ public:
/* 0x49B0 */ u8 field_0x49B0[0x4A24 - 0x49B0];
/* 0x4A24 */ daAgb_c* mpAgb;
/* 0x4A28 */ u32 mPlayerStatus[2][2];
/* 0x4A38 */ u8 field_0x4A38[0x4A40 - 0x4A38];
/* 0x4A38 */ u8 field_0x4A38[0x4A3A - 0x4A38];
/* 0x4A3A */ u8 mMiniGameType;
/* 0x4A3B */ u8 field_0x4A3B[0x4A40 - 0x4A3B];
/* 0x4A40 */ __d_timer_info_c mTimerInfo;
/* 0x4A54 */ dDlst_window_c* mCurrentWindow;
/* 0x4A58 */ view_class* mCurrentView;
@@ -1094,6 +1096,11 @@ inline void dComIfGp_setCurrentGrafPort(J2DOrthoGraph* i_graf) {
g_dComIfG_gameInfo.play.setCurrentGrafPort(i_graf);
}
inline u8 dComIfGp_getMiniGameType() {
// TODO add enum for minigame type.
// 0 for none, 8 for shooting the fishman, 2/6 for orca, 7 for mail sorting, etc
return g_dComIfG_gameInfo.play.mMiniGameType;
}
/**
* === EVENT ===*/
+2 -2
View File
@@ -537,8 +537,8 @@ inline f32 fopAcM_searchPlayerDistance(fopAc_ac_c* actor) {
s8 dComIfGp_getReverb(int roomNo);
inline void fopAcM_seStartCurrent(fopAc_ac_c* actor, u32 sfxID, u32 param_2) {
s8 roomNo = fopAcM_GetRoomNo(actor);
mDoAud_seStart(sfxID, &actor->current.pos, param_2, dComIfGp_getReverb(roomNo));
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(actor));
mDoAud_seStart(sfxID, &actor->current.pos, param_2, reverb);
}
inline void fopAcM_seStart(fopAc_ac_c* actor, u32 sfxID, u32 param_2) {
+355 -24
View File
@@ -9,12 +9,80 @@
#include "d/d_com_inf_game.h"
#include "d/d_procname.h"
#include "d/d_npc.h"
#include "d/d_item_data.h"
#include "d/actor/d_a_player.h"
#include "d/actor/d_a_player_link.h"
#include "d/d_jnt_hit.h"
#include "d/d_s_play.h"
#include "dolphin/types.h"
// Needed for the .data section to match.
static f32 dummy1[3] = {1.0f, 1.0f, 1.0f};
static f32 dummy2[3] = {1.0f, 1.0f, 1.0f};
s16 daArrow_c::m_count;
const char daArrow_c::m_arc_name[] = "Link";
const dCcD_SrcCps daArrow_c::m_at_cps_src = {
// dCcD_SrcGObjInf
{
/* Flags */ 0,
/* SrcObjAt Type */ AT_TYPE_NORMAL_ARROW,
/* SrcObjAt Atp */ 2,
/* SrcObjAt SPrm */ 0xB,
/* SrcObjTg Type */ 0,
/* SrcObjTg SPrm */ 0,
/* SrcObjCo SPrm */ 0,
/* SrcGObjAt Se */ 7,
/* SrcGObjAt HitMark */ 0xD,
/* SrcGObjAt Spl */ 0,
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt GFlag */ 0,
/* SrcGObjTg Se */ 0,
/* SrcGObjTg HitMark */ 0,
/* SrcGObjTg Spl */ 0,
/* SrcGObjTg Mtrl */ 0,
/* SrcGObjTg GFlag */ 0,
/* SrcGObjCo GFlag */ 0,
},
// cM3dGCpsS
{
/* Start */ 0.0f, 0.0f, 0.0f,
/* End */ 0.0f, 0.0f, 0.0f,
/* Radius */ 5.0f,
},
};
const dCcD_SrcSph daArrow_c::m_co_sph_src = {
// dCcD_SrcGObjInf
{
/* Flags */ 0,
/* SrcObjAt Type */ 0,
/* SrcObjAt Atp */ 0,
/* SrcObjAt SPrm */ 0,
/* SrcObjTg Type */ 0,
/* SrcObjTg SPrm */ 0,
/* SrcObjCo SPrm */ 0x119,
/* SrcGObjAt Se */ 7,
/* 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,
},
// cM3dGSphS
{
/* Center */ 0.0f, 0.0f, 0.0f,
/* Radius */ 25.0f,
},
};
/* 800D455C-800D457C .text createHeap_CB__FP10fopAc_ac_c */
static BOOL createHeap_CB(fopAc_ac_c* i_this) {
return ((daArrow_c*)i_this)->_createHeap();
@@ -23,7 +91,7 @@ static BOOL createHeap_CB(fopAc_ac_c* i_this) {
/* 800D457C-800D4648 .text _createHeap__9daArrow_cFv */
BOOL daArrow_c::_createHeap() {
// arrowglitter.bdl for Light Arrows, arrow.bdl otherwise.
s32 modelFileIndex = (mArrowType == LIGHT_ARROWS ? 0x38 : 0x37) & 0xFFFF;
s32 modelFileIndex = (mArrowType == TYPE_LIGHT ? 0x38 : 0x37) & 0xFFFF;
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_arc_name, modelFileIndex);
JUT_ASSERT(190, modelData != 0);
@@ -82,7 +150,7 @@ void daArrow_c::checkCreater() {
/* 800D4814-800D48E8 .text setLightEffect__9daArrow_cFv */
void daArrow_c::setLightEffect() {
if (field_0x682 == mArrowType) {
if (mArrowType == NORMAL_ARROWS) {
if (mArrowType == TYPE_NORMAL) {
return;
}
if (!field_0x688) {
@@ -129,17 +197,112 @@ void daArrow_c::createBlur() {
/* 800D4A04-800D4ADC .text setArrowShootSe__9daArrow_cFv */
void daArrow_c::setArrowShootSe() {
/* Nonmatching */
static const s32 se[8] = {
0,
0,
JA_SE_LK_FIT_FIRE_ARROW,
JA_SE_LK_SHOOT_FIRE_ARROW,
JA_SE_LK_FIT_ICE_ARROW,
JA_SE_LK_SHOOT_ICE_ARROW,
JA_SE_LK_FIT_LIGHT_ARROW,
JA_SE_LK_SHOOT_LIGHT_ARROW,
};
if (mArrowType == TYPE_NORMAL) {
return;
}
fopAcM_seStartCurrent(this, se[mArrowType*2+0], 0);
fopAcM_seStartCurrent(this, se[mArrowType*2+1], 0);
}
/* 800D4ADC-800D4B70 .text setDrawShapeMaterial__9daArrow_cFv */
void daArrow_c::setDrawShapeMaterial() {
/* Nonmatching */
struct ArrowAttackInfo {
u32 mAtType;
u8 mAtp;
u16 mTipJointIdx;
};
static const ArrowAttackInfo arrow_mat[] = {
{
/* mAtType */ AT_TYPE_NORMAL_ARROW,
/* mAtp */ 2,
/* mTipJointIdx */ 4,
},
{
/* mAtType */ AT_TYPE_FIRE_ARROW,
/* mAtp */ 4,
/* mTipJointIdx */ 2,
},
{
/* mAtType */ AT_TYPE_ICE_ARROW,
/* mAtp */ 4,
/* mTipJointIdx */ 3,
},
{
/* mAtType */ AT_TYPE_LIGHT_ARROW,
/* mAtp */ 0xFF,
/* mTipJointIdx */ 0,
},
};
mCps.SetAtType(arrow_mat[mArrowType].mAtType);
mCps.SetAtAtp(arrow_mat[mArrowType].mAtp);
if (mbShotByZelda) {
mCps.SetAtAtp(4);
mCps.SetAtType(arrow_mat[0].mAtType);
mCps.OnAtSPrmBit(0xE);
}
if (arrow_mat[mArrowType].mTipJointIdx != 0) {
J3DModelData* modelData = mpModel->getModelData();
J3DJoint* tipJoint = modelData->getJointNodePointer(arrow_mat[mArrowType].mTipJointIdx);
mpTipMat = tipJoint->getMesh();
}
}
/* 800D4B70-800D4D98 .text arrowShooting__9daArrow_cFv */
void daArrow_c::arrowShooting() {
/* Nonmatching */
field_0x6a8 = current.pos;
f32 xCos = cM_scos(current.angle.x);
speed.x = 200.0f * cM_ssin(current.angle.y) * xCos;
speed.y = 200.0f * cM_ssin(current.angle.x);
speed.z = 200.0f * cM_scos(current.angle.y) * xCos;
setArrowShootSe();
if (mArrowType == TYPE_LIGHT && !mbShotByZelda) {
if (strcmp(dComIfGp_getStartStageName(), "GanonK") != 0) {
// Not in Puppet Ganon's boss room.
mCps.SetAtSpl((dCcG_At_Spl)0xB);
}
}
field_0x67c = shape_angle;
createBlur();
field_0x602 = m_count;
m_count += 1;
if (m_count == 5) {
m_count = 0;
}
cXyz end = current.pos + speed*1.25f;
mCps.SetStartEnd(current.pos, end);
mCps.SetR(5.0f);
mCps.CalcAtVec();
dComIfG_Ccsp()->Set(&mCps);
// Using the dComIfG_Ccsp inline here breaks the match.
// dComIfG_Ccsp()->SetMass(&mCps, 1);
g_dComIfG_gameInfo.play.mCcS.SetMass(&mCps, 1);
mbHitActor = false;
mNearestHitPos = end;
mNearestHitDist = MAXFLOAT;
}
/* 800D4D98-800D4DC0 .text arrowUseMp__9daArrow_cFv */
@@ -151,13 +314,57 @@ void daArrow_c::arrowUseMp() {
-2, // Light Arrows
};
s32 magic = dComIfGp_getItemMagicCount();
dComIfGp_setItemMagicCount(magic + use_mp[mArrowType]);
dComIfGp_setItemMagicCount(use_mp[mArrowType]);
}
// This is a fake inline (not present in debug maps) which is required for ShieldReflect to match.
inline void setSphereCoordsFromXYAngles(cXyz& xyz, f32 mag, s16 targetAngleX, s16 targetAngleY) {
f32 normZ;
f32 normY;
f32 normX;
normX = cM_ssin(targetAngleY) * cM_scos(targetAngleX);
normY = -cM_ssin(targetAngleX);
normZ = cM_scos(targetAngleY) * cM_scos(targetAngleX);
xyz.x = normX * mag;
xyz.y = normY * mag;
xyz.z = normZ * mag;
}
/* 800D4DC0-800D50A0 .text ShieldReflect__9daArrow_cFv */
void daArrow_c::ShieldReflect() {
/* Nonmatching */
f32 vel = speed.abs();
daPy_lk_c* link = daPy_getPlayerLinkActorClass();
s16 targetAngleY = link->shape_angle.y + link->getBodyAngleY();
s16 targetAngleX = link->getBodyAngleX();
fopAc_ac_c* ganondorf;
if (fopAcM_SearchByName(PROC_GND, &ganondorf) && dComIfGp_getAttention().LockonTruth() && dComIfGp_getAttention().LockonTarget(0) == ganondorf) {
cXyz ganondorfChestPos = ganondorf->current.pos;
ganondorfChestPos.y = g_regHIO.mChild[8].mFloatRegs[0] + 130.0f;
targetAngleX = -cLib_targetAngleX(&link->current.pos, &ganondorfChestPos);
fpcM_SetParam(ganondorf, 0x23);
field_0x608 = g_regHIO.mChild[0].mShortRegs[3] + 15;
mpSparkleEmitter = dComIfGp_particle_set(0x3EE, &link->current.pos, NULL, NULL, 0xFF, NULL, -1, NULL, NULL, NULL);
}
// // Regswaps without creating a fake inline.
// // f1 -> f3: normY
// // f3 -> f1: normZ
// f32 normZ;
// f32 normY;
// f32 normX;
// normX = cM_ssin(targetAngleY) * cM_scos(targetAngleX);
// normY = -cM_ssin(targetAngleX);
// normZ = cM_scos(targetAngleY) * cM_scos(targetAngleX);
// speed.x = normX * vel;
// speed.y = normY * vel;
// speed.z = normZ * vel;
setSphereCoordsFromXYAngles(speed, vel, targetAngleX, targetAngleY);
shape_angle.x = cM_atan2s(-speed.y, -speed.absXZ());
shape_angle.y = cM_atan2s(-speed.x, -speed.z);
shape_angle.z = 0;
}
/* 800D50A0-800D5388 .text check_water_in__9daArrow_cFv */
@@ -178,7 +385,29 @@ void daArrow_c::changeArrowType() {
/* 800D553C-800D560C .text changeArrowTypeNotReady__9daArrow_cFv */
void daArrow_c::changeArrowTypeNotReady() {
/* Nonmatching */
if (m_keep_type == TYPE_NORMAL) {
if (dComIfGs_getMagic() < 1) {
return;
}
if (dComIfGs_getItem(0xC) == MAGIC_ARROW || dComIfGs_getItem(0xC) == LIGHT_ARROW) {
m_keep_type = TYPE_FIRE;
}
} else if (m_keep_type == TYPE_FIRE) {
if (dComIfGs_getMagic() < 1) {
return;
}
if (dComIfGs_getItem(0xC) == MAGIC_ARROW || dComIfGs_getItem(0xC) == LIGHT_ARROW) {
m_keep_type = TYPE_ICE;
}
} else if (m_keep_type == TYPE_ICE) {
if (dComIfGs_getMagic() >= 2 && dComIfGs_getItem(0xC) == LIGHT_ARROW) {
m_keep_type = TYPE_LIGHT;
} else {
m_keep_type = TYPE_NORMAL;
}
} else if (m_keep_type == TYPE_LIGHT) {
m_keep_type = TYPE_NORMAL;
}
}
/* 800D560C-800D56B0 .text setRoomInfo__9daArrow_cFv */
@@ -201,7 +430,6 @@ void daArrow_c::setRoomInfo() {
/* 800D56B0-800D5854 .text setKeepMatrix__9daArrow_cFv */
void daArrow_c::setKeepMatrix() {
/* Nonmatching */
// Transform the arrow onto its archer's hand.
if (mbShotByZelda) {
fopNpc_npc_c* zelda;
@@ -283,33 +511,39 @@ void daArrow_c::setStopActorMatrix() {
}
/* 800D5A70-800D5B20 .text procWait__9daArrow_cFv */
void daArrow_c::procWait() {
BOOL daArrow_c::procWait() {
/* Nonmatching */
}
/* 800D5B20-800D6BF4 .text procMove__9daArrow_cFv */
void daArrow_c::procMove() {
BOOL daArrow_c::procMove() {
/* Nonmatching */
}
/* 800D6BF4-800D6E70 .text procReturn__9daArrow_cFv */
void daArrow_c::procReturn() {
BOOL daArrow_c::procReturn() {
/* Nonmatching */
}
/* 800D6E70-800D71F8 .text procStop_BG__9daArrow_cFv */
void daArrow_c::procStop_BG() {
BOOL daArrow_c::procStop_BG() {
/* Nonmatching */
}
/* 800D71F8-800D727C .text procStop_Actor__9daArrow_cFv */
void daArrow_c::procStop_Actor() {
BOOL daArrow_c::procStop_Actor() {
/* Nonmatching */
}
/* 800D727C-800D72BC .text procWater__9daArrow_cFv */
void daArrow_c::procWater() {
/* Nonmatching */
BOOL daArrow_c::procWater() {
if (mInWaterTimer <= 0) {
fopAcM_delete(this);
return TRUE;
}
mInWaterTimer--;
return TRUE;
}
/* 800D72BC-800D72EC .text checkRestMp__9daArrow_cFv */
@@ -334,8 +568,54 @@ void daArrow_c::setTypeByPlayer() {
}
/* 800D7320-800D74FC .text createInit__9daArrow_cFv */
void daArrow_c::createInit() {
/* Nonmatching */
BOOL daArrow_c::createInit() {
if (mArrowType == TYPE_LIGHT) {
mpBtk = daPy_getPlayerLinkActorClass()->getLightArrowBtk();
} else {
mpBtk = daPy_getPlayerLinkActorClass()->getIceArrowBtk();
}
mCurrProcFunc = &procWait;
setKeepMatrix();
mCullMtx = mpModel->getBaseTRMtx();
mCull.mBox.mMin.x = -6.0f;
mCull.mBox.mMin.y = -6.0f;
mCull.mBox.mMin.z = 0.0f;
mCull.mBox.mMax.x = 6.0f;
mCull.mBox.mMax.y = 6.0f;
mCull.mBox.mMax.z = 65.0f;
mStts.Init(10, 0xFF, this);
mCps.Set(m_at_cps_src);
mCps.SetStts(&mStts);
mCps.SetAtHitCallback(&atHit_CB);
mSph.Set(m_co_sph_src);
mSph.SetStts(&mStts);
field_0x602 = -1;
if (mArrowType != TYPE_LIGHT) {
J3DModelData* modelData = mpModel->getModelData();
modelData->getJointNodePointer(4)->getMesh()->getShape()->hide();
modelData->getJointNodePointer(2)->getMesh()->getShape()->hide();
modelData->getJointNodePointer(3)->getMesh()->getShape()->hide();
modelData->getJointNodePointer(3)->getMesh()->getNext()->getShape()->hide();
}
setDrawShapeMaterial();
field_0x698 = 1;
field_0x699 = 0;
field_0x69a = 0;
field_0x69c = 0;
field_0x6a0 = 300;
mInWaterTimer = 0;
field_0x6e4 = 0;
field_0x688 = 0;
field_0x664 = 0;
field_0x604 = 0;
return TRUE;
}
/* 800D74FC-800D7820 .text _execute__9daArrow_cFv */
@@ -345,12 +625,66 @@ BOOL daArrow_c::_execute() {
/* 800D7820-800D7960 .text _draw__9daArrow_cFv */
BOOL daArrow_c::_draw() {
/* Nonmatching */
if (!field_0x698) {
return TRUE;
}
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, &current.pos, &mTevStr);
g_env_light.setLightTevColorType(mpModel, &mTevStr);
if (mArrowType != TYPE_LIGHT) {
mpTipMat->getShape()->show();
J3DMaterial* nextMat = mpTipMat->getNext();
if (nextMat) {
nextMat->getShape()->show();
}
}
mpBtk->setFrame(mBtkFrame);
dComIfGd_setListP1();
mDoExt_modelUpdateDL(mpModel);
dComIfGd_setList();
if (mArrowType != TYPE_LIGHT) {
mpTipMat->getShape()->hide();
J3DMaterial* nextMat = mpTipMat->getNext();
if (nextMat) {
nextMat->getShape()->hide();
}
}
return TRUE;
}
/* 800D7960-800D7A38 .text _create__9daArrow_cFv */
s32 daArrow_c::_create() {
/* Nonmatching */
fopAcM_SetupActor(this, daArrow_c);
checkCreater();
if (mbShotByZelda) {
mArrowType = TYPE_LIGHT;
} else {
setTypeByPlayer();
}
if (dComIfGp_getMiniGameType() == 8) {
mArrowType = TYPE_NORMAL;
}
const static u32 heap_size[] = {
0x1300,
0x1300,
0x1300,
0x820,
};
if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)&createHeap_CB, heap_size[mArrowType])) {
return cPhs_ERROR_e;
}
// Using the enum here breaks the match.
// return createInit() ? cPhs_COMPLEATE_e : cPhs_ERROR_e;
return createInit() ? 4 : 5;
}
/* 800D7A38-800D7DB4 .text __ct__9daArrow_cFv */
@@ -364,19 +698,16 @@ BOOL daArrow_c::_delete() {
/* 800D8200-800D8220 .text daArrowCreate__FPv */
s32 daArrowCreate(void* i_this) {
/* Nonmatching */
return ((daArrow_c*)i_this)->_create();
}
/* 800D8220-800D8240 .text daArrowDelete__FPv */
BOOL daArrowDelete(void* i_this) {
/* Nonmatching */
return ((daArrow_c*)i_this)->_delete();
}
/* 800D8240-800D8260 .text daArrowExecute__FPv */
BOOL daArrowExecute(void* i_this) {
/* Nonmatching */
return ((daArrow_c*)i_this)->_execute();
}
+1 -1
View File
@@ -238,7 +238,7 @@ s32 daMozo_c::CreateInit() {
// TODO: insert missing assignment here
mAnimMorf->getModel()->setUserArea(this);
mAnimMorf->getModel()->setUserArea((u32)this);
for (int i = 0; i < mdlData->getJointNum(); i++) {
if (i == 2) {
mdlData->getJointNodePointer(2)->setCallBack((J3DNodeCallBack)daMozo_nodeCallBack);
+34 -25
View File
@@ -15,7 +15,7 @@
struct daObjGryw00_c {
public:
f32 get_draw_water_lvl(void *i_this);
f32 get_draw_water_lv(void *i_this);
};
struct daObjYgush00_c : public fopAc_ac_c {
@@ -30,23 +30,29 @@ public:
bool _execute();
bool _draw();
bool create_heap();
static s32 solidHeapCB(fopAc_ac_c*);
static BOOL solidHeapCB(fopAc_ac_c*);
public:
request_of_phase_process_class mPhs;
J3DModel * mpModel;
mDoExt_btkAnm mBtkAnm;
mDoExt_bckAnm mBckAnm;
s32 mType;
daObjGryw00_c * mpGryw00;
/* 0x290 */ request_of_phase_process_class mPhs;
/* 0x298 */ J3DModel * mpModel;
/* 0x29C */ mDoExt_btkAnm mBtkAnm;
/* 0x2B0 */ mDoExt_bckAnm mBckAnm;
/* 0x2C0 */ s32 mType;
/* 0x2C4 */ daObjGryw00_c * mpGryw00;
};
namespace {
static const char l_arcname[] = "Ygush00";
};
// Needed for the .data section to match.
static f32 dummy1[3] = {1.0f, 1.0f, 1.0f};
static f32 dummy2[3] = {1.0f, 1.0f, 1.0f};
static u8 dummy3[4] = {0x02, 0x00, 0x02, 0x01};
static f64 dummy4[2] = {3.0, 0.5};
/* 00000078-0000009C .text solidHeapCB__14daObjYgush00_cFP10fopAc_ac_c */
s32 daObjYgush00_c::solidHeapCB(fopAc_ac_c* ac) {
BOOL daObjYgush00_c::solidHeapCB(fopAc_ac_c* ac) {
return ((daObjYgush00_c*)ac)->create_heap();
}
@@ -56,25 +62,28 @@ bool daObjYgush00_c::create_heap() {
static u32 btk_table[] = { 0x0E, 0x0D, 0x0D, 0x0D };
static u32 bck_table[] = { 0x06, 0x05, 0x05, 0x05 };
J3DModelData * pModelData;
bool ret = true;
J3DModelData * pModelData = (J3DModelData *)dComIfG_getObjectRes(l_arcname, mdl_table[mType]);
// TODO regswap
// r29 -> r30: g_dComIfG_gameInfo.mResControl.mObjectInfo / btkRet
// r30 -> r29: pModelData
pModelData = (J3DModelData *)dComIfG_getObjectRes(l_arcname, mdl_table[mType]);
J3DAnmTextureSRTKey * pBtk = (J3DAnmTextureSRTKey *)dComIfG_getObjectRes(l_arcname, btk_table[mType]);
J3DAnmTransform * pBck = (J3DAnmTransform *)dComIfG_getObjectRes(l_arcname, bck_table[mType]);
if (!pModelData || !pBtk || !pBck) {
JUT_ASSERT(207, 0);
ret = false;
return ret;
} else {
mpModel = mDoExt_J3DModel__create(pModelData, 0x80000, 0x11000222);
s32 btkRet = mBtkAnm.init(pModelData, pBtk, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
s32 bckRet = mBckAnm.init(pModelData, pBck, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false);
if (!mpModel || !btkRet || !bckRet)
ret = false;
}
mpModel = mDoExt_J3DModel__create(pModelData, 0x80000, 0x11000222);
s32 btkRet = mBtkAnm.init(pModelData, pBtk, true, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, false);
s32 bckRet = mBckAnm.init(pModelData, pBck, true, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false);
if (!mpModel || !btkRet || !bckRet)
ret = false;
return ret;
}
@@ -124,7 +133,7 @@ bool daObjYgush00_c::_execute() {
if (mType == 1) {
if (mpGryw00 != NULL) {
if (mpGryw00->get_draw_water_lvl(mpGryw00) <= getPosition().y) {
if (mpGryw00->get_draw_water_lv(mpGryw00) <= getPosition().y) {
fopAcM_seStartCurrent(this, 0x61fe, 0);
}
} else {
@@ -148,27 +157,27 @@ bool daObjYgush00_c::_draw() {
}
/* 000006FC-0000071C .text daObjYgush00_Create__FP14daObjYgush00_c */
s32 daObjYgush00_Create(daObjYgush00_c* i_this) {
static s32 daObjYgush00_Create(daObjYgush00_c* i_this) {
return i_this->_create();
}
/* 0000071C-00000740 .text daObjYgush00_Delete__FP14daObjYgush00_c */
s32 daObjYgush00_Delete(daObjYgush00_c* i_this) {
static s32 daObjYgush00_Delete(daObjYgush00_c* i_this) {
return i_this->_delete();
}
/* 00000740-00000764 .text daObjYgush00_Execute__FP14daObjYgush00_c */
s32 daObjYgush00_Execute(daObjYgush00_c* i_this) {
static s32 daObjYgush00_Execute(daObjYgush00_c* i_this) {
return i_this->_execute();
}
/* 00000764-00000788 .text daObjYgush00_Draw__FP14daObjYgush00_c */
s32 daObjYgush00_Draw(daObjYgush00_c* i_this) {
static s32 daObjYgush00_Draw(daObjYgush00_c* i_this) {
return i_this->_draw();
}
/* 00000788-00000790 .text daObjYgush00_IsDelete__FP14daObjYgush00_c */
s32 daObjYgush00_IsDelete(daObjYgush00_c* i_this) {
static s32 daObjYgush00_IsDelete(daObjYgush00_c* i_this) {
return 1;
}
+152 -96
View File
@@ -3,22 +3,41 @@
// Translation Unit: d_cc_d.cpp
//
#include "d_cc_d.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
#include "dolphin/types.h"
#include "JSystem/JUtility/JUTAssert.h"
/* 800AB2AC-800AB328 .text GetAc__22dCcD_GAtTgCoCommonBaseFv */
void dCcD_GAtTgCoCommonBase::GetAc() {
/* Nonmatching */
fopAc_ac_c* dCcD_GAtTgCoCommonBase::GetAc() {
if (mApid == -1) {
return NULL;
}
if (mAc == NULL) {
mAc = fopAcM_SearchByID(mApid);
if (mAc == NULL) {
mApid = -1;
}
}
return mAc;
}
/* 800AB328-800AB334 .text SetEffCounterTimer__22dCcD_GAtTgCoCommonBaseFv */
void dCcD_GAtTgCoCommonBase::SetEffCounterTimer() {
/* Nonmatching */
mEffCounter = 5;
}
/* 800AB334-800AB384 .text __ct__10dCcD_GSttsFv */
dCcD_GStts::dCcD_GStts() {
/* Nonmatching */
mAt = 0;
mTg = 0;
mRoomId = 0;
field_0x08 = -1;
mAtApid = -1;
mAtOldApid = -1;
mTgApid = -1;
mTgOldApid = -1;
field_0x1C = 0;
}
/* 800AB384-800AB3BC .text Ct__10dCcD_GSttsFv */
@@ -28,12 +47,34 @@ void dCcD_GStts::Ct() {
/* 800AB3BC-800AB3DC .text Move__10dCcD_GSttsFv */
void dCcD_GStts::Move() {
/* Nonmatching */
mAtOldApid = mAtApid;
mAtApid = NULL;
mTgOldApid = mTgApid;
mTgApid = NULL;
}
/* 800AB3DC-800AB46C .text Init__9dCcD_SttsFiiP10fopAc_ac_c */
void dCcD_Stts::Init(int, int, fopAc_ac_c*) {
/* Nonmatching */
void dCcD_Stts::Init(int param_0, int param_1, fopAc_ac_c* pActor) {
u32 procId;
if (pActor) {
procId = fpcM_GetID(pActor);
} else {
procId = -1;
}
cCcD_Stts::Init(param_0, param_1, pActor, procId);
s32 roomNo;
if (pActor) {
roomNo = pActor->current.roomNo;
} else {
roomNo = 0;
OnNoActor();
}
if (roomNo != -1) {
SetRoomId(roomNo);
} else {
SetRoomId(0);
}
}
/* 800AB46C-800AB4A0 .text Ct__9dCcD_SttsFv */
@@ -62,38 +103,53 @@ dCcD_GObjInf::~dCcD_GObjInf() {
}
/* 800AB7C0-800AB7C4 .text GetGObjInf__12dCcD_GObjInfFv */
void dCcD_GObjInf::GetGObjInf() {
/* Nonmatching */
cCcD_GObjInf* dCcD_GObjInf::GetGObjInf() {
return (cCcD_GObjInf*)this;
}
/* 800AB7C4-800AB81C .text ClrAtHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ClrAtHit() {
/* Nonmatching */
OffAtHitBit();
cCcD_Obj::ClrAtHit();
mGObjAt.ClrHit();
OffAtShieldHit();
OffAtHitNoActor();
SubtractAtEffCounter();
if (!ChkAtEffCounter()) {
ClrAtEffCounter();
}
}
#if VERSION != VERSION_JPN
/* 800AB81C-800AB874 .text ChkAtHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ChkAtHit() {
u32 dCcD_GObjInf::ChkAtHit() {
/* Nonmatching */
}
#endif
/* 800AB874-800AB8B4 .text ResetAtHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ResetAtHit() {
/* Nonmatching */
ClrAtHit();
ClrAtEffCounter();
}
/* 800AB8B4-800AB904 .text GetAtHitObj__12dCcD_GObjInfFv */
void dCcD_GObjInf::GetAtHitObj() {
cCcD_Obj* dCcD_GObjInf::GetAtHitObj() {
/* Nonmatching */
}
/* 800AB904-800AB938 .text GetAtHitGObj__12dCcD_GObjInfFv */
void dCcD_GObjInf::GetAtHitGObj() {
/* Nonmatching */
cCcD_GObjInf* dCcD_GObjInf::GetAtHitGObj() {
cCcD_Obj* atHitObj = GetAtHitObj();
if (atHitObj == NULL) {
return NULL;
}
return dCcD_GetGObjInf(atHitObj);
}
/* 800AB938-800AB958 .text ChkAtNoGuard__12dCcD_GObjInfFv */
void dCcD_GObjInf::ChkAtNoGuard() {
/* Nonmatching */
u8 dCcD_GObjInf::ChkAtNoGuard() {
return GetAtSpl() >= 8;
}
/* 800AB958-800AB9B0 .text ClrTgHit__12dCcD_GObjInfFv */
@@ -101,10 +157,12 @@ void dCcD_GObjInf::ClrTgHit() {
/* Nonmatching */
}
#if VERSION != VERSION_JPN
/* 800AB9B0-800ABA08 .text ChkTgHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ChkTgHit() {
u32 dCcD_GObjInf::ChkTgHit() {
/* Nonmatching */
}
#endif
/* 800ABA08-800ABA48 .text ResetTgHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ResetTgHit() {
@@ -112,17 +170,17 @@ void dCcD_GObjInf::ResetTgHit() {
}
/* 800ABA48-800ABA98 .text GetTgHitObj__12dCcD_GObjInfFv */
void dCcD_GObjInf::GetTgHitObj() {
cCcD_Obj* dCcD_GObjInf::GetTgHitObj() {
/* Nonmatching */
}
/* 800ABA98-800ABACC .text GetTgHitGObj__12dCcD_GObjInfFv */
void dCcD_GObjInf::GetTgHitGObj() {
dCcD_GObjInf* dCcD_GObjInf::GetTgHitGObj() {
/* Nonmatching */
}
/* 800ABACC-800ABB00 .text GetTgHitObjSe__12dCcD_GObjInfFv */
void dCcD_GObjInf::GetTgHitObjSe() {
u8 dCcD_GObjInf::GetTgHitObjSe() {
/* Nonmatching */
}
@@ -131,13 +189,15 @@ void dCcD_GObjInf::ClrCoHit() {
/* Nonmatching */
}
#if VERSION != VERSION_JPN
/* 800ABB4C-800ABBA4 .text ChkCoHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ChkCoHit() {
u32 dCcD_GObjInf::ChkCoHit() {
/* Nonmatching */
}
#endif
/* 800ABBA4-800ABBF4 .text GetCoHitObj__12dCcD_GObjInfFv */
void dCcD_GObjInf::GetCoHitObj() {
cCcD_Obj* dCcD_GObjInf::GetCoHitObj() {
/* Nonmatching */
}
@@ -147,8 +207,10 @@ void dCcD_GObjInf::Set(const dCcD_SrcGObjInf&) {
}
/* 800ABC54-800ABCC4 .text dCcD_GetGObjInf__FP8cCcD_Obj */
void dCcD_GetGObjInf(cCcD_Obj*) {
dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* pobj) {
/* Nonmatching */
JUT_ASSERT(531, pobj != 0);
return (dCcD_GObjInf*)pobj->GetGObjInf();
}
/* 800ABCC4-800ABD34 .text Set__8dCcD_CpsFRC11dCcD_SrcCps */
@@ -206,85 +268,85 @@ void dCcD_Sph::MoveCAt(cXyz&) {
/* Nonmatching */
}
/* 800AC0E8-800AC130 .text __dt__10cCcD_GSttsFv */
cCcD_GStts::~cCcD_GStts() {
/* Nonmatching */
}
// /* 800AC0E8-800AC130 .text __dt__10cCcD_GSttsFv */
// cCcD_GStts::~cCcD_GStts() {
// /* Nonmatching */
// }
/* 800AC130-800AC228 .text __dt__12cCcD_GObjInfFv */
cCcD_GObjInf::~cCcD_GObjInf() {
/* Nonmatching */
}
// /* 800AC130-800AC228 .text __dt__12cCcD_GObjInfFv */
// cCcD_GObjInf::~cCcD_GObjInf() {
// /* Nonmatching */
// }
/* 800AC228-800AC310 .text __dt__8cCcD_ObjFv */
cCcD_Obj::~cCcD_Obj() {
/* Nonmatching */
}
// /* 800AC228-800AC310 .text __dt__8cCcD_ObjFv */
// cCcD_Obj::~cCcD_Obj() {
// /* Nonmatching */
// }
/* 800AC310-800AC3D0 .text __dt__14cCcD_ObjHitInfFv */
cCcD_ObjHitInf::~cCcD_ObjHitInf() {
/* Nonmatching */
}
// /* 800AC310-800AC3D0 .text __dt__14cCcD_ObjHitInfFv */
// cCcD_ObjHitInf::~cCcD_ObjHitInf() {
// /* Nonmatching */
// }
/* 800AC3D0-800AC42C .text __dt__10cCcD_ObjCoFv */
cCcD_ObjCo::~cCcD_ObjCo() {
/* Nonmatching */
}
// /* 800AC3D0-800AC42C .text __dt__10cCcD_ObjCoFv */
// cCcD_ObjCo::~cCcD_ObjCo() {
// /* Nonmatching */
// }
/* 800AC42C-800AC488 .text __dt__10cCcD_ObjTgFv */
cCcD_ObjTg::~cCcD_ObjTg() {
/* Nonmatching */
}
// /* 800AC42C-800AC488 .text __dt__10cCcD_ObjTgFv */
// cCcD_ObjTg::~cCcD_ObjTg() {
// /* Nonmatching */
// }
/* 800AC488-800AC4E4 .text __dt__10cCcD_ObjAtFv */
cCcD_ObjAt::~cCcD_ObjAt() {
/* Nonmatching */
}
// /* 800AC488-800AC4E4 .text __dt__10cCcD_ObjAtFv */
// cCcD_ObjAt::~cCcD_ObjAt() {
// /* Nonmatching */
// }
/* 800AC4E4-800AC52C .text __dt__18cCcD_ObjCommonBaseFv */
cCcD_ObjCommonBase::~cCcD_ObjCommonBase() {
/* Nonmatching */
}
// /* 800AC4E4-800AC52C .text __dt__18cCcD_ObjCommonBaseFv */
// cCcD_ObjCommonBase::~cCcD_ObjCommonBase() {
// /* Nonmatching */
// }
/* 800AC52C-800AC534 .text GetGObjInf__8cCcD_ObjFv */
void cCcD_Obj::GetGObjInf() {
/* Nonmatching */
}
// /* 800AC52C-800AC534 .text GetGObjInf__8cCcD_ObjFv */
// cCcD_GObjInf* cCcD_Obj::GetGObjInf() {
// /* Nonmatching */
// }
/* 800AC534-800AC538 .text GetGObjInf__12cCcD_GObjInfCFv */
void cCcD_GObjInf::GetGObjInf() const {
/* Nonmatching */
}
// /* 800AC534-800AC538 .text GetGObjInf__12cCcD_GObjInfCFv */
// cCcD_GObjInf const* cCcD_GObjInf::GetGObjInf() const {
// /* Nonmatching */
// }
/* 800AC538-800AC540 .text GetShapeAttr__8cCcD_ObjCFv */
void cCcD_Obj::GetShapeAttr() const {
/* Nonmatching */
}
// /* 800AC538-800AC540 .text GetShapeAttr__8cCcD_ObjCFv */
// cCcD_ShapeAttr const* cCcD_Obj::GetShapeAttr() const {
// /* Nonmatching */
// }
/* 800AC540-800AC558 .text ClrAtHit__12cCcD_GObjInfFv */
void cCcD_GObjInf::ClrAtHit() {
/* Nonmatching */
}
// /* 800AC540-800AC558 .text ClrAtHit__12cCcD_GObjInfFv */
// void cCcD_GObjInf::ClrAtHit() {
// /* Nonmatching */
// }
/* 800AC558-800AC570 .text ClrTgHit__12cCcD_GObjInfFv */
void cCcD_GObjInf::ClrTgHit() {
/* Nonmatching */
}
// /* 800AC558-800AC570 .text ClrTgHit__12cCcD_GObjInfFv */
// void cCcD_GObjInf::ClrTgHit() {
// /* Nonmatching */
// }
/* 800AC570-800AC588 .text ClrCoHit__12cCcD_GObjInfFv */
void cCcD_GObjInf::ClrCoHit() {
/* Nonmatching */
}
// /* 800AC570-800AC588 .text ClrCoHit__12cCcD_GObjInfFv */
// void cCcD_GObjInf::ClrCoHit() {
// /* Nonmatching */
// }
/* 800AC588-800AC58C .text GetGObjInf__12cCcD_GObjInfFv */
void cCcD_GObjInf::GetGObjInf() {
/* Nonmatching */
}
// /* 800AC588-800AC58C .text GetGObjInf__12cCcD_GObjInfFv */
// cCcD_GObjInf* cCcD_GObjInf::GetGObjInf() {
// /* Nonmatching */
// }
/* 800AC58C-800AC594 .text GetGObjInf__8cCcD_ObjCFv */
void cCcD_Obj::GetGObjInf() const {
/* Nonmatching */
}
// /* 800AC58C-800AC594 .text GetGObjInf__8cCcD_ObjCFv */
// cCcD_GObjInf const* cCcD_Obj::GetGObjInf() const {
// /* Nonmatching */
// }
/* 800AC594-800AC5F0 .text __dt__11dCcD_GObjCoFv */
dCcD_GObjCo::~dCcD_GObjCo() {
@@ -307,7 +369,7 @@ dCcD_GAtTgCoCommonBase::~dCcD_GAtTgCoCommonBase() {
}
/* 800AC6F0-800AC700 .text GetGStts__9dCcD_SttsFv */
void dCcD_Stts::GetGStts() {
cCcD_GStts* dCcD_Stts::GetGStts() {
/* Nonmatching */
}
@@ -330,9 +392,3 @@ dCcD_Stts::~dCcD_Stts() {
dCcD_GStts::~dCcD_GStts() {
/* Nonmatching */
}
/* 800AC808-800AC810 .text @28@__dt__9dCcD_SttsFv */
void @28@__dt__9dCcD_SttsFv {
/* Nonmatching */
}