big d_a_alink pass (#214)

* d_a_alink pass1 wip

* more d_a_alink work

* remove asm

* more daalink work

* 20% dol code decompiled

* fixed some nonmatchings for building

* a few daalink functions and labeling some HIO data
This commit is contained in:
TakaRikka
2022-12-19 12:06:32 -07:00
committed by GitHub
parent 1114b13da8
commit ca71275bbe
727 changed files with 15610 additions and 33013 deletions
+2 -2
View File
@@ -531,7 +531,7 @@ static void action(b_go_class* b_go) {
break;
}
cLib_addCalcAngleS2(&b_go->mCollisionRot.y, b_go->current.angle.y, 4, 0x2000);
cLib_addCalcAngleS2(&b_go->shape_angle.y, b_go->current.angle.y, 4, 0x2000);
mDoMtx_stack_c::YrotS(b_go->current.angle.y);
cXyz speed;
@@ -579,7 +579,7 @@ static int daB_GO_Execute(b_go_class* b_go) {
damage_check(b_go);
mDoMtx_stack_c::transS(b_go->current.pos.x, b_go->current.pos.y, b_go->current.pos.z);
mDoMtx_stack_c::YrotM(b_go->mCollisionRot.y);
mDoMtx_stack_c::YrotM(b_go->shape_angle.y);
mDoMtx_stack_c::scaleM((*(daB_GO_HIO_c*)l_HIO).mSmallSize, (*(daB_GO_HIO_c*)l_HIO).mSmallSize, (*(daB_GO_HIO_c*)l_HIO).mSmallSize);
mDoMtx_stack_c::copy(b_go->mpMorf->getModel()->getBaseTRMtx());
b_go->mpMorf->play(0, dComIfGp_getReverb(b_go->current.mRoomNo));
+2 -2
View File
@@ -185,8 +185,8 @@ int daAlldie_c::create() {
mAction = ACT_WAIT;
}
mCollisionRot.z = 0;
mCollisionRot.x = 0;
shape_angle.z = 0;
shape_angle.x = 0;
current.angle.z = 0;
current.angle.x = 0;
+17 -319
View File
@@ -5,301 +5,7 @@
#include "rel/d/a/d_a_arrow/d_a_arrow.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct csXyz {
/* 802673F4 */ csXyz(s16, s16, s16);
};
struct mDoMtx_stack_c {
/* 8000CD9C */ void transM(f32, f32, f32);
/* 8000CF44 */ void ZXYrotM(csXyz const&);
static u8 now[48];
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct Vec {};
struct cXyz {
/* 80266AE4 */ void operator+(Vec const&) const;
/* 80266B34 */ void operator-(Vec const&) const;
/* 80266B84 */ void operator*(f32) const;
/* 80266F48 */ void normalizeZP();
/* 80267150 */ void atan2sY_XZ() const;
/* 8049A334 */ ~cXyz();
};
struct fopAcM_wt_c {
/* 8001DD84 */ void waterCheck(cXyz const*);
static u8 mWaterCheck[84 + 4 /* padding */];
static f32 mWaterY[1 + 1 /* padding */];
};
struct fopAcM_gc_c {
/* 8001DCBC */ void gndCheck(cXyz const*);
static u8 mGndCheck[84];
};
struct daPy_actorKeep_c {
/* 8015EC48 */ void setActor();
/* 8015ECB8 */ void setData(fopAc_ac_c*);
/* 8015ECFC */ void clearData();
};
struct dCcD_GObjInf {
/* 80083A28 */ dCcD_GObjInf();
/* 800840E4 */ ~dCcD_GObjInf();
/* 800842C0 */ void ChkAtHit();
/* 80084318 */ void ResetAtHit();
/* 800843A8 */ void GetAtHitGObj();
/* 80084460 */ void ChkTgHit();
/* 80084548 */ void GetTgHitGObj();
/* 80084658 */ void ChkCoHit();
};
struct daArrow_c {
/* 80499C6C */ void createHeap();
/* 80499D8C */ void atHitCallBack(dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80499FBC */ void decAlphaBlur();
/* 8049A04C */ void setBlur();
/* 8049A110 */ void setLightArrowHitMark(cXyz const*);
/* 8049A1EC */ void setLightChargeEffect(int);
/* 8049A370 */ void setArrowWaterNextPos(cXyz*, cXyz*);
/* 8049A76C */ void setArrowAt(f32);
/* 8049A9CC */ void arrowShooting();
/* 8049AC84 */ void setBombArrowExplode(cXyz*);
/* 8049ACE0 */ void setRoomInfo();
/* 8049AD74 */ void clearNearActorData();
/* 8049AD94 */ void getVibAngle();
/* 8049AE64 */ void setNormalMatrix();
/* 8049AF18 */ void setSmokePos();
/* 8049AFEC */ void setKeepMatrix();
/* 8049B120 */ void setStopActorMatrix();
/* 8049B214 */ void setBombMoveEffect();
/* 8049B370 */ void checkReget();
/* 8049B45C */ void procWait();
/* 8049B764 */ void procMove();
/* 8049C700 */ void procReturnInit(int);
/* 8049C874 */ void procReturn();
/* 8049CB70 */ void procBGStop();
/* 8049CC60 */ void procActorStop();
/* 8049CCCC */ void procActorControllStop();
/* 8049CCF0 */ void procSlingHitInit(cXyz*, dCcD_GObjInf*);
/* 8049CE50 */ void procSlingHit();
/* 8049CEA0 */ void execute();
/* 8049D0CC */ void draw();
/* 8049D440 */ void create();
/* 8049D98C */ ~daArrow_c();
};
struct cBgS_PolyInfo {};
struct daAlink_c {
/* 8009D884 */ void getAlinkArcName();
/* 800D1788 */ void notSwordHitVibActor(fopAc_ac_c*);
/* 800D6D94 */ void getFreezeR() const;
/* 800D6DA4 */ void getFreezeG() const;
/* 800D6DB4 */ void getFreezeB() const;
/* 800D7768 */ void checkIcePolygonDamage(cBgS_PolyInfo*);
/* 800DE64C */ void getArrowFlyData(f32*, f32*, int) const;
/* 800DE740 */ void getArrowIncAtR() const;
/* 800DE750 */ void getBombArrowFlyExplodeTime() const;
/* 800DE760 */ void getArrowIncAtMaxStart() const;
/* 800DE770 */ void getArrowIncAtMax() const;
/* 800DE884 */ void checkBowCameraArrowPosP(s16*, s16*);
/* 800E3760 */ void getBombExplodeTime() const;
};
struct dKy_tevstr_c {};
struct J3DModelData {};
struct dScnKy_env_light_c {
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
};
struct dRes_info_c {};
struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct dPa_levelEcallBack {
/* 8049D808 */ void cleanup();
/* 8049D80C */ ~dPa_levelEcallBack();
};
struct dPa_hermiteEcallBack_c {
/* 8004F6B8 */ void setOldPosP(cXyz const*, cXyz const*);
};
struct _GXColor {};
struct dPa_control_c {
struct level_c {
/* 8004B8B4 */ void forceOnEventMove(u32);
/* 8004B918 */ void getEmitter(u32);
};
/* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32);
/* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
_GXColor const*, cXyz const*, f32);
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
cXyz const*, f32);
static u8 mParticleTracePCB[4 + 4 /* padding */];
};
struct dJntCol_c {
/* 80036AEC */ void getArrowOffsetPosAndAngle(cXyz const*, csXyz const*, cXyz*, cXyz*) const;
/* 80036FA8 */ void setArrowPosAndAngle(cXyz const*, cXyz const*, int, cXyz*, csXyz*);
};
struct cCcD_Obj {};
struct dCcMassS_Mng {
/* 80085D98 */ void Set(cCcD_Obj*, u8);
};
struct dCcD_Stts {
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
};
struct dCcD_SrcSph {};
struct dCcD_SrcCps {};
struct dCcD_Sph {
/* 80084A34 */ void Set(dCcD_SrcSph const&);
};
struct dCcD_GStts {
/* 80083760 */ dCcD_GStts();
/* 8049D910 */ ~dCcD_GStts();
};
struct dCcD_GAtTgCoCommonBase {
/* 80083688 */ void GetAc();
};
struct dCcD_Cps {
/* 800847D0 */ void Set(dCcD_SrcCps const&);
/* 80084824 */ void CalcAtVec();
};
struct dBgS_ObjLinChk {
/* 80077F5C */ dBgS_ObjLinChk();
/* 80077FB8 */ ~dBgS_ObjLinChk();
};
struct dBgS_LinChk {
/* 80077D64 */ void Set(cXyz const*, cXyz const*, fopAc_ac_c const*);
};
struct dBgS_ArrowLinChk {
/* 800781D8 */ dBgS_ArrowLinChk();
/* 80078240 */ ~dBgS_ArrowLinChk();
};
struct dBgS {
/* 80074ABC */ void ChkMoveBG(cBgS_PolyInfo const&);
/* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&);
/* 80074E50 */ void GetPolyAtt0(cBgS_PolyInfo const&);
/* 80075100 */ void GetRoomId(cBgS_PolyInfo const&);
/* 80075880 */ void MoveBgTransPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
/* 80075BF4 */ void ArrowStickCallBack(cBgS_PolyInfo const&, fopAc_ac_c*, cXyz&);
};
struct cM3dGSph {
/* 8026F648 */ void SetC(cXyz const&);
/* 8049D880 */ ~cM3dGSph();
};
struct cM3dGPla {
/* 8049C6B8 */ ~cM3dGPla();
};
struct cM3dGCps {
/* 8026EF88 */ cM3dGCps();
/* 8026EFA4 */ ~cM3dGCps();
/* 8026F000 */ void Set(cXyz const&, cXyz const&, f32);
};
struct cM3dGAab {
/* 8049D8C8 */ ~cM3dGAab();
};
struct cCcS {
/* 80264BA8 */ void Set(cCcD_Obj*);
};
struct cCcD_GStts {
/* 8049DC00 */ ~cCcD_GStts();
};
struct cBgS_LinChk {};
struct cBgS {
/* 800743B4 */ void LineCross(cBgS_LinChk*);
/* 80074660 */ void ChkPolySafe(cBgS_PolyInfo const&);
/* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
};
struct Z2SoundObjBase {
/* 802BDFF8 */ void deleteObject();
};
struct Z2SoundObjArrow {
/* 802BEB38 */ Z2SoundObjArrow();
};
struct JAISoundID {};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
struct Z2DopplerSoundObjBase {
/* 802BE5FC */ ~Z2DopplerSoundObjBase();
};
struct Z2CreatureLink {
/* 802C4814 */ void startHitItemSE(u32, u32, Z2SoundObjBase*, f32);
};
struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
struct JPABaseEmitter {};
struct JPAEmitterCallBack {
/* 8027E6A4 */ ~JPAEmitterCallBack();
/* 8049DC48 */ void execute(JPABaseEmitter*);
/* 8049DC4C */ void executeAfter(JPABaseEmitter*);
/* 8049DC50 */ void draw(JPABaseEmitter*);
/* 8049DC54 */ void drawAfter(JPABaseEmitter*);
};
struct JMath {
static u8 sincosTable_[65536];
};
struct J3DModel {};
#include "d/com/d_com_inf_game.h"
//
// Forward References:
@@ -474,15 +180,6 @@ extern "C" void __dt__21Z2DopplerSoundObjBaseFv();
extern "C" void __ct__15Z2SoundObjArrowFv();
extern "C" void startHitItemSE__14Z2CreatureLinkFUlUlP14Z2SoundObjBasef();
extern "C" void __dl__FPv();
extern "C" void PSMTXCopy();
extern "C" void PSMTXConcat();
extern "C" void PSMTXTrans();
extern "C" void PSMTXMultVec();
extern "C" void PSVECAdd();
extern "C" void PSVECScale();
extern "C" void PSVECSquareMag();
extern "C" void C_VECReflect();
extern "C" void PSVECSquareDistance();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_24();
extern "C" void _savegpr_25();
@@ -497,7 +194,6 @@ extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__22dPa_hermiteEcallBack_c[9];
extern "C" extern void* __vt__8dCcD_Sph[36];
extern "C" extern void* __vt__8dCcD_Cps[36];
@@ -510,14 +206,8 @@ extern "C" extern void* __vt__15Z2SoundObjArrow[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
extern "C" u8 mWaterCheck__11fopAcM_wt_c[84 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern void* calc_mtx[1 + 1 /* padding */];
extern "C" extern u32 __float_nan;
extern "C" extern u32 __float_max;
extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" extern u8 m_count__9daArrow_c[4];
extern "C" u8 mParticleTracePCB__13dPa_control_c[4 + 4 /* padding */];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
@@ -728,7 +418,8 @@ asm void daArrow_c::setLightChargeEffect(int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cXyz::~cXyz() {
// asm cXyz::~cXyz() {
extern "C" asm void __dt__4cXyzFv() {
nofralloc
#include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__4cXyzFv.s"
}
@@ -1345,7 +1036,8 @@ asm void daArrow_c::procMove() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGPla::~cM3dGPla() {
// asm cM3dGPla::~cM3dGPla() {
extern "C" asm void __dt__8cM3dGPlaFv() {
nofralloc
#include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__8cM3dGPlaFv.s"
}
@@ -1583,7 +1275,8 @@ void dPa_levelEcallBack::cleanup() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dPa_levelEcallBack::~dPa_levelEcallBack() {
// asm dPa_levelEcallBack::~dPa_levelEcallBack() {
extern "C" asm void __dt__18dPa_levelEcallBackFv() {
nofralloc
#include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__18dPa_levelEcallBackFv.s"
}
@@ -1593,7 +1286,8 @@ asm dPa_levelEcallBack::~dPa_levelEcallBack() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGSph::~cM3dGSph() {
// asm cM3dGSph::~cM3dGSph() {
extern "C" asm void __dt__8cM3dGSphFv() {
nofralloc
#include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__8cM3dGSphFv.s"
}
@@ -1603,7 +1297,8 @@ asm cM3dGSph::~cM3dGSph() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGAab::~cM3dGAab() {
// asm cM3dGAab::~cM3dGAab() {
extern "C" asm void __dt__8cM3dGAabFv() {
nofralloc
#include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__8cM3dGAabFv.s"
}
@@ -1613,7 +1308,8 @@ asm cM3dGAab::~cM3dGAab() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dCcD_GStts::~dCcD_GStts() {
// asm dCcD_GStts::~dCcD_GStts() {
extern "C" asm void __dt__10dCcD_GSttsFv() {
nofralloc
#include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__10dCcD_GSttsFv.s"
}
@@ -1653,7 +1349,8 @@ static asm void daArrow_delete(daArrow_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cCcD_GStts::~cCcD_GStts() {
// asm cCcD_GStts::~cCcD_GStts() {
extern "C" asm void __dt__10cCcD_GSttsFv() {
nofralloc
#include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__10cCcD_GSttsFv.s"
}
@@ -1661,7 +1358,8 @@ asm cCcD_GStts::~cCcD_GStts() {
/* 8049DC48-8049DC4C 0040C8 0004+00 2/0 0/0 0/0 .text
* execute__18JPAEmitterCallBackFP14JPABaseEmitter */
void JPAEmitterCallBack::execute(JPABaseEmitter* param_0) {
// void JPAEmitterCallBack::execute(JPABaseEmitter* param_0) {
extern "C" void execute__18JPAEmitterCallBackFP14JPABaseEmitter() {
/* empty function */
}
+7 -106
View File
@@ -6,19 +6,12 @@
#include "rel/d/a/d_a_boomerang/d_a_boomerang.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
//
// Types:
//
struct mDoMtx_stack_c {
/* 8000CD64 */ void transS(cXyz const&);
/* 8000CD9C */ void transM(f32, f32, f32);
/* 8000CF44 */ void ZXYrotM(csXyz const&);
static u8 now[48];
};
struct daMirror_c {
/* 8003194C */ void entry(J3DModel*);
};
@@ -32,100 +25,6 @@ struct daBoomerang_HIO_c0 {
static f32 const m_lockWindScale;
};
struct daAlink_c {
/* 8009D884 */ void getAlinkArcName();
/* 800A9248 */ void simpleAnmPlay(J3DAnmBase*);
/* 800B26FC */ void itemActionTrigger();
/* 800DFFE0 */ void checkBoomerangLockAccept();
/* 800E0010 */ void getBoomSpeed();
/* 800E00B0 */ void getBoomCatchSpeed() const;
/* 800E00C0 */ void getBoomFlyMax() const;
/* 800E011C */ void getBoomLockMax();
/* 800E0190 */ void getBoomBgThroughTime() const;
/* 800E08C4 */ void returnBoomerang(int);
};
struct dPa_levelEcallBack {};
struct dPa_control_c {
struct level_c {
/* 8004B918 */ void getEmitter(u32);
};
/* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
_GXColor const*, cXyz const*, f32);
};
struct dBgS {
/* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&);
/* 80074DAC */ void GetUnderwaterRoofCode(cBgS_PolyInfo const&);
/* 80074E50 */ void GetPolyAtt0(cBgS_PolyInfo const&);
/* 80075100 */ void GetRoomId(cBgS_PolyInfo const&);
};
struct cCcD_Obj {};
struct dCcMassS_Mng {
/* 80085D98 */ void Set(cCcD_Obj*, u8);
};
struct dCcD_Stts {
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
};
struct dCcD_SrcCyl {};
struct dCcD_SrcCps {};
struct dCcD_GStts {
/* 80083760 */ dCcD_GStts();
/* 804A262C */ ~dCcD_GStts();
};
struct dCcD_GObjInf {
/* 80083A28 */ dCcD_GObjInf();
/* 800840E4 */ ~dCcD_GObjInf();
/* 80084318 */ void ResetAtHit();
};
struct dCcD_Cyl {
/* 800848B4 */ void Set(dCcD_SrcCyl const&);
};
struct dCcD_Cps {
/* 800847D0 */ void Set(dCcD_SrcCps const&);
/* 80084824 */ void CalcAtVec();
};
struct cM3dGCps {
/* 8026EF88 */ cM3dGCps();
/* 8026EFA4 */ ~cM3dGCps();
/* 8026F000 */ void Set(cXyz const&, cXyz const&, f32);
};
struct cM3dGAab {
/* 804A25E4 */ ~cM3dGAab();
};
struct cCcS {
/* 80264BA8 */ void Set(cCcD_Obj*);
};
struct cCcD_GStts {
/* 804A271C */ ~cCcD_GStts();
};
struct cBgS {
/* 800743B4 */ void LineCross(cBgS_LinChk*);
/* 800744A0 */ void GroundCross(cBgS_GndChk*);
/* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
};
struct J2DAnmLoaderDataBase {
/* 80308A6C */ void load(void const*);
};
//
// Forward References:
//
@@ -341,7 +240,6 @@ extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" extern void* __vt__16Z2SoundObjSimple[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mRoofCheck__11fopAcM_rc_c[80];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mCurrentMtx__6J3DSys[48];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" f32 mRoofY__11fopAcM_rc_c;
@@ -1591,7 +1489,8 @@ extern "C" asm void __dt__8cM3dGCylFv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGAab::~cM3dGAab() {
// asm cM3dGAab::~cM3dGAab() {
extern "C" asm void __dt__8cM3dGAabFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__8cM3dGAabFv.s"
}
@@ -1601,7 +1500,8 @@ asm cM3dGAab::~cM3dGAab() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dCcD_GStts::~dCcD_GStts() {
// asm dCcD_GStts::~dCcD_GStts() {
extern "C" asm void __dt__10dCcD_GSttsFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__10dCcD_GSttsFv.s"
}
@@ -1638,7 +1538,8 @@ void draw__12dDlst_base_cFv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cCcD_GStts::~cCcD_GStts() {
// asm cCcD_GStts::~cCcD_GStts() {
extern "C" asm void __dt__10cCcD_GSttsFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__10cCcD_GSttsFv.s"
}
+23 -295
View File
@@ -5,287 +5,20 @@
#include "rel/d/a/d_a_canoe/d_a_canoe.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
//
// Types:
//
struct request_of_phase_process_class {};
struct csXyz {};
struct mDoMtx_stack_c {
/* 8000CD9C */ void transM(f32, f32, f32);
/* 8000CF44 */ void ZXYrotM(csXyz const&);
static u8 now[48];
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct Vec {};
struct cXyz {
/* 80266AE4 */ void operator+(Vec const&) const;
/* 80266B34 */ void operator-(Vec const&) const;
/* 80266B84 */ void operator*(f32) const;
/* 80267128 */ void atan2sX_Z() const;
/* 80267150 */ void atan2sY_XZ() const;
/* 804DA5B8 */ ~cXyz();
static f32 Zero[3];
};
struct fopAcM_wt_c {
/* 8001DD84 */ void waterCheck(cXyz const*);
static u8 mWaterCheck[84 + 4 /* padding */];
static f32 mWaterY[1 + 1 /* padding */];
};
struct daTagWaterFall_c {
/* 80D64768 */ void checkHitWaterFall(cXyz);
};
struct daPy_py_c {
/* 8015EA20 */ void checkFishingRodItem(int);
};
struct daObjGOMIKABE_c {
/* 80BFE52C */ void BreakSet();
};
struct cBgS_PolyInfo {
/* 802680B0 */ ~cBgS_PolyInfo();
};
struct daCanoe_c {
/* 804DA5F4 */ void createHeap();
/* 804DA740 */ void create();
/* 804DAEA8 */ ~daCanoe_c();
/* 804DB008 */ void setRoomInfo();
/* 804DB0B0 */ void setMatrix();
/* 804DB3F4 */ void setCollision();
/* 804DB578 */ void posMove();
/* 804DB754 */ void checkGomikabe(cBgS_PolyInfo&);
/* 804DB7AC */ void setFrontBackPos();
/* 804DB828 */ void frontBackBgCheck();
/* 804DC330 */ void setPaddleEffect();
/* 804DC554 */ void setCanoeSliderEffect();
/* 804DC7B4 */ void execute();
/* 804DD35C */ void draw();
};
struct daAlink_c {
/* 800A21E0 */ void getMoveBGActorName(cBgS_PolyInfo&, int);
/* 800F3BB0 */ void getCanoeMaxSpeed() const;
/* 800F3BDC */ void getCanoeBackMaxSpeed() const;
/* 800F3BEC */ void getCanoeCres() const;
/* 800F3C44 */ void getCanoeMaxRotSpeed() const;
/* 800F3CCC */ void getCanoeLocalPaddleTop();
/* 800F3DFC */ void getCanoePaddleMatrix();
/* 800F3EB8 */ void checkCanoePaddleGrab(fopAc_ac_c*) const;
};
struct dVibration_c {
/* 8006FA24 */ void StartShock(int, int, cXyz);
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
};
struct dSv_event_c {
/* 800349BC */ void isEventBit(u16) const;
};
struct dKy_tevstr_c {};
struct J3DModelData {};
struct dScnKy_env_light_c {
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
};
struct dRes_info_c {};
struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct dPa_levelEcallBack {};
struct _GXColor {};
struct dPa_control_c {
struct level_c {
/* 8004B918 */ void getEmitter(u32);
};
/* 8004C838 */ void setWaterRipple(u32*, cBgS_PolyInfo&, cXyz const*, f32, dKy_tevstr_c const*,
cXyz const*, s8);
/* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
_GXColor const*, cXyz const*, f32);
};
struct dMeter2Info_c {
/* 8021E268 */ void setMiniGameCount(s8);
};
struct J3DModel {};
struct dDlst_shadowControl_c {
/* 80055F1C */ void addReal(u32, J3DModel*);
static u8 mSimpleTexObj[32];
};
struct dCcD_Stts {
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
};
struct dCcD_SrcCyl {};
struct dCcD_GStts {
/* 80083760 */ dCcD_GStts();
/* 80083830 */ void Move();
/* 804DAE2C */ ~dCcD_GStts();
};
struct dCcD_GObjInf {
/* 80083A28 */ dCcD_GObjInf();
/* 800840E4 */ ~dCcD_GObjInf();
/* 80084658 */ void ChkCoHit();
};
struct dCcD_GAtTgCoCommonBase {
/* 80083688 */ void GetAc();
};
struct dCcD_Cyl {
/* 800848B4 */ void Set(dCcD_SrcCyl const&);
/* 804DAB18 */ ~dCcD_Cyl();
/* 804DABE4 */ dCcD_Cyl();
};
struct dBgS_PolyPassChk {
/* 80078E98 */ void SetLink();
};
struct dBgS_LinkLinChk {
/* 80078030 */ dBgS_LinkLinChk();
/* 8007808C */ ~dBgS_LinkLinChk();
};
struct dBgS_LinkAcch {
/* 804DACF8 */ ~dBgS_LinkAcch();
/* 804DAD68 */ dBgS_LinkAcch();
};
struct dBgS_LinChk {
/* 80077D64 */ void Set(cXyz const*, cXyz const*, fopAc_ac_c const*);
};
struct dBgS_AcchCir {
/* 80075EAC */ dBgS_AcchCir();
/* 80075F58 */ void SetWall(f32, f32);
/* 804DADBC */ ~dBgS_AcchCir();
};
struct dBgS {
/* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&);
/* 80075100 */ void GetRoomId(cBgS_PolyInfo const&);
};
struct dBgS_Acch {
/* 80075F94 */ ~dBgS_Acch();
/* 800760A0 */ dBgS_Acch();
/* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*);
/* 80076288 */ void Set(fopAc_ac_c*, int, dBgS_AcchCir*);
/* 80076AAC */ void CrrPos(dBgS&);
};
struct cM3dGPla {
/* 804DC2E8 */ ~cM3dGPla();
};
struct cM3dGCyl {
/* 8026F1DC */ void SetC(cXyz const&);
/* 804DAC68 */ ~cM3dGCyl();
};
struct cM3dGCir {
/* 8026EF18 */ ~cM3dGCir();
};
struct cM3dGAab {
/* 804DACB0 */ ~cM3dGAab();
};
struct cCcD_Obj {};
struct cCcS {
/* 80264BA8 */ void Set(cCcD_Obj*);
};
struct cCcD_Stts {
/* 8026395C */ void ClrCcMove();
};
struct cCcD_ObjCo {
/* 8026491C */ void SetVsGrp(u32);
};
struct cCcD_GStts {
/* 804DD574 */ ~cCcD_GStts();
};
struct cBgS_LinChk {};
struct cBgS {
/* 800743B4 */ void LineCross(cBgS_LinChk*);
/* 80074618 */ void GetActorPointer(int) const;
/* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
};
struct _GXTexObj {};
struct Z2SoundObjSimple {
/* 802BE844 */ Z2SoundObjSimple();
};
struct Z2SoundObjBase {
/* 802BDF48 */ ~Z2SoundObjBase();
/* 802BDFF8 */ void deleteObject();
};
struct JAISoundID {};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
struct JMath {
static u8 sincosTable_[65536];
};
struct JGeometry {
template <typename A1>
struct TVec3 {};
/* TVec3<f32> */
struct TVec3__template0 {};
};
//
// Forward References:
//
@@ -419,13 +152,6 @@ extern "C" void __dt__14Z2SoundObjBaseFv();
extern "C" void deleteObject__14Z2SoundObjBaseFv();
extern "C" void __ct__16Z2SoundObjSimpleFv();
extern "C" void __dl__FPv();
extern "C" void PSMTXCopy();
extern "C" void PSMTXTrans();
extern "C" void PSMTXMultVec();
extern "C" void PSVECAdd();
extern "C" void PSVECSubtract();
extern "C" void PSVECScale();
extern "C" void PSVECSquareMag();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void __cvt_fp2unsigned();
@@ -443,10 +169,7 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void abs();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
@@ -456,16 +179,10 @@ extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" extern void* __vt__16Z2SoundObjSimple[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mWaterCheck__11fopAcM_wt_c[84 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
extern "C" extern u8 g_env_light[4880];
extern "C" extern u8 g_meter2_info[248];
extern "C" f32 Zero__4cXyz[3];
extern "C" extern u8 j3dSys[284];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 __float_nan;
extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
extern "C" void BreakSet__15daObjGOMIKABE_cFv();
@@ -490,7 +207,8 @@ static asm void daCanoe_searchTagWaterFall(fopAc_ac_c* param_0, void* param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cXyz::~cXyz() {
// asm cXyz::~cXyz() {
extern "C" asm void __dt__4cXyzFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__4cXyzFv.s"
}
@@ -744,7 +462,8 @@ SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dCcD_Cyl::~dCcD_Cyl() {
// asm dCcD_Cyl::~dCcD_Cyl() {
extern "C" asm void __dt__8dCcD_CylFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__8dCcD_CylFv.s"
}
@@ -754,7 +473,8 @@ asm dCcD_Cyl::~dCcD_Cyl() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dCcD_Cyl::dCcD_Cyl() {
// asm dCcD_Cyl::dCcD_Cyl() {
extern "C" asm void __ct__8dCcD_CylFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__ct__8dCcD_CylFv.s"
}
@@ -764,7 +484,8 @@ asm dCcD_Cyl::dCcD_Cyl() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGCyl::~cM3dGCyl() {
// asm cM3dGCyl::~cM3dGCyl() {
extern "C" asm void __dt__8cM3dGCylFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__8cM3dGCylFv.s"
}
@@ -774,7 +495,8 @@ asm cM3dGCyl::~cM3dGCyl() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGAab::~cM3dGAab() {
// asm cM3dGAab::~cM3dGAab() {
extern "C" asm void __dt__8cM3dGAabFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__8cM3dGAabFv.s"
}
@@ -784,7 +506,8 @@ asm cM3dGAab::~cM3dGAab() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dBgS_LinkAcch::~dBgS_LinkAcch() {
// asm dBgS_LinkAcch::~dBgS_LinkAcch() {
extern "C" asm void __dt__13dBgS_LinkAcchFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__13dBgS_LinkAcchFv.s"
}
@@ -794,7 +517,8 @@ asm dBgS_LinkAcch::~dBgS_LinkAcch() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dBgS_LinkAcch::dBgS_LinkAcch() {
// asm dBgS_LinkAcch::dBgS_LinkAcch() {
extern "C" asm void __ct__13dBgS_LinkAcchFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__ct__13dBgS_LinkAcchFv.s"
}
@@ -804,7 +528,8 @@ asm dBgS_LinkAcch::dBgS_LinkAcch() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dBgS_AcchCir::~dBgS_AcchCir() {
// asm dBgS_AcchCir::~dBgS_AcchCir() {
extern "C" asm void __dt__12dBgS_AcchCirFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__12dBgS_AcchCirFv.s"
}
@@ -814,7 +539,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dCcD_GStts::~dCcD_GStts() {
// asm dCcD_GStts::~dCcD_GStts() {
extern "C" asm void __dt__10dCcD_GSttsFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__10dCcD_GSttsFv.s"
}
@@ -1119,7 +845,8 @@ asm void daCanoe_c::frontBackBgCheck() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGPla::~cM3dGPla() {
// asm cM3dGPla::~cM3dGPla() {
extern "C" asm void __dt__8cM3dGPlaFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__8cM3dGPlaFv.s"
}
@@ -1414,7 +1141,8 @@ static asm void daCanoe_Draw(daCanoe_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cCcD_GStts::~cCcD_GStts() {
// asm cCcD_GStts::~cCcD_GStts() {
extern "C" asm void __dt__10cCcD_GSttsFv() {
nofralloc
#include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__10cCcD_GSttsFv.s"
}
+25 -361
View File
@@ -5,345 +5,7 @@
#include "rel/d/a/d_a_cstatue/d_a_cstatue.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct request_of_phase_process_class {};
struct csXyz {
/* 802673F4 */ csXyz(s16, s16, s16);
static u8 Zero[4];
};
struct Vec {};
struct cXyz {
/* 80266AE4 */ void operator+(Vec const&) const;
/* 80266B84 */ void operator*(f32) const;
/* 80267128 */ void atan2sX_Z() const;
/* 80663B34 */ ~cXyz();
};
struct mDoMtx_stack_c {
/* 8000CD64 */ void transS(cXyz const&);
/* 8000CD9C */ void transM(f32, f32, f32);
/* 8000CF44 */ void ZXYrotM(csXyz const&);
static u8 now[48];
};
struct mDoExt_morf_c {
/* 8000FB7C */ void setMorf(f32);
};
struct J3DModel {};
struct mDoExt_invisibleModel {
/* 8000E53C */ void create(J3DModel*, u8);
/* 8000E7C0 */ void entryDL(cXyz*);
};
struct J3DMaterialTable {};
struct J3DAnmTextureSRTKey {};
struct mDoExt_btkAnm {
/* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16);
/* 8000D6D8 */ void entry(J3DMaterialTable*, f32);
};
struct J3DAnmTevRegKey {};
struct mDoExt_brkAnm {
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
};
struct mDoExt_baseAnm {
/* 8000D428 */ void play();
};
struct mDoExt_McaMorfCallBack2_c {};
struct mDoExt_McaMorfCallBack1_c {};
struct J3DAnmTransform {};
struct J3DModelData {};
struct Z2Creature {
/* 802C03C8 */ Z2Creature();
/* 802C0420 */ ~Z2Creature();
/* 802C0530 */ void init(Vec*, Vec*, u8, u8);
};
struct mDoExt_McaMorfSO {
/* 800107D0 */ mDoExt_McaMorfSO(J3DModelData*, mDoExt_McaMorfCallBack1_c*,
mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int,
int, Z2Creature*, u32, u32);
/* 80010E70 */ void setAnm(J3DAnmTransform*, int, f32, f32, f32, f32);
/* 800110B0 */ void play(u32, s8);
/* 800111EC */ void modelCalc();
/* 80011310 */ void stopZelAnime();
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct fopAcM_lc_c {
/* 8001DC68 */ void lineCheck(cXyz const*, cXyz const*, fopAc_ac_c const*);
static u8 mLineCheck[112];
};
struct fopAcM_gc_c {
/* 8001DCBC */ void gndCheck(cXyz const*);
static u8 mGndCheck[84];
static f32 mGroundY;
};
struct daPy_actorKeep_c {
/* 8015ECFC */ void clearData();
};
struct daCstatue_c {
/* 806636AC */ void atHitCallback(fopAc_ac_c*);
/* 806636EC */ void createHeap();
/* 80663D28 */ void create();
/* 80664840 */ ~daCstatue_c();
/* 80664AA0 */ void setRoomInfo();
/* 80664B38 */ void setMatrix();
/* 80664C9C */ void posMove();
/* 8066555C */ void setCollision();
/* 80665E14 */ void checkHammerReverse();
/* 80665F80 */ void setDemo();
/* 80666390 */ void setAnime();
/* 80666B80 */ void initBrk(u16);
/* 80666BF8 */ void initStopBrkBtk();
/* 80666C38 */ void initStartBrkBtk();
/* 80666DE8 */ void execute();
/* 80667438 */ void draw();
static u8 const m_bckIdxTable[70 + 2 /* padding */];
};
struct daAlink_c {
/* 800E1330 */ void getCopyRodBallDisMax() const;
/* 800E1374 */ void getCopyRodControllActor();
};
struct dVibration_c {
/* 8006FA24 */ void StartShock(int, int, cXyz);
};
struct dTres_c {
/* 8009C3CC */ void setPosition(int, u8, Vec const*, int);
};
struct dSv_memBit_c {
/* 800347A0 */ void onTbox(int);
/* 800347C4 */ void offTbox(int);
/* 800347E8 */ void isTbox(int) const;
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
/* 80035360 */ void isSwitch(int, int) const;
};
struct dSv_event_c {
/* 8003498C */ void onEventBit(u16);
};
struct dKy_tevstr_c {};
struct dScnKy_env_light_c {
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
};
struct dRes_info_c {};
struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct dPa_levelEcallBack {};
struct _GXColor {};
struct dPa_control_c {
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
cXyz const*, f32);
};
struct cBgS_PolyInfo {
/* 802680B0 */ ~cBgS_PolyInfo();
};
struct dBgS {
/* 80074B40 */ void ChkMoveBG_NoDABg(cBgS_PolyInfo const&);
/* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&);
/* 80074E00 */ void GetWallCode(cBgS_PolyInfo const&);
/* 80075100 */ void GetRoomId(cBgS_PolyInfo const&);
};
struct dBgS_AcchCir {
/* 80075EAC */ dBgS_AcchCir();
/* 80075F58 */ void SetWall(f32, f32);
/* 80664768 */ ~dBgS_AcchCir();
};
struct dBgS_Acch {
/* 80075F94 */ ~dBgS_Acch();
/* 800760A0 */ dBgS_Acch();
/* 80076288 */ void Set(fopAc_ac_c*, int, dBgS_AcchCir*);
/* 80076AAC */ void CrrPos(dBgS&);
};
struct dPaPo_c {
/* 80050C9C */ void init(dBgS_Acch*, f32, f32);
/* 80051008 */ void setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
csXyz const*, cXyz const*, s8, f32, f32);
};
struct dEvt_control_c {
/* 80042468 */ void reset();
};
struct dDlst_shadowControl_c {
static u8 mSimpleTexObj[32];
};
struct dCcD_Stts {
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
};
struct dCcD_SrcSph {};
struct dCcD_SrcCyl {};
struct dCcD_SrcCps {};
struct dCcD_Sph {
/* 80084A34 */ void Set(dCcD_SrcSph const&);
/* 80084AC4 */ void MoveCAt(cXyz&);
/* 80663B70 */ ~dCcD_Sph();
/* 80663C3C */ dCcD_Sph();
};
struct dCcD_GStts {
/* 80083760 */ dCcD_GStts();
/* 80083830 */ void Move();
/* 8066469C */ ~dCcD_GStts();
};
struct dCcD_GObjInf {
/* 80083A28 */ dCcD_GObjInf();
/* 800840E4 */ ~dCcD_GObjInf();
/* 80084318 */ void ResetAtHit();
/* 80084460 */ void ChkTgHit();
/* 800844B8 */ void ResetTgHit();
/* 80084548 */ void GetTgHitGObj();
/* 8008457C */ void GetTgHitObjSe();
/* 800845B0 */ void getHitSeID(u8, int);
/* 800846B0 */ void ResetCoHit();
};
struct dCcD_Cyl {
/* 800848B4 */ void Set(dCcD_SrcCyl const&);
/* 80084908 */ void StartCAt(cXyz&);
/* 80084954 */ void MoveCAt(cXyz&);
};
struct dCcD_Cps {
/* 800847D0 */ void Set(dCcD_SrcCps const&);
};
struct dCamera_c {
/* 801614AC */ void Start();
/* 801614D0 */ void Stop();
/* 8016300C */ void SetTrimSize(s32);
/* 80180AA8 */ void Set(cXyz, cXyz);
};
struct dBgS_StatueAcch {
/* 806646F8 */ ~dBgS_StatueAcch();
};
struct dBgS_PolyPassChk {
/* 80078F7C */ void SetStatue();
};
struct cM3dGSph {
/* 8026F708 */ void SetR(f32);
/* 80663CC0 */ ~cM3dGSph();
};
struct cM3dGPla {
/* 80665514 */ ~cM3dGPla();
};
struct cM3dGLin {
/* 8026F2E8 */ void SetStartEnd(cXyz const&, cXyz const&);
};
struct cM3dGCyl {
/* 8026F1DC */ void SetC(cXyz const&);
/* 8026F1F8 */ void SetH(f32);
/* 8026F200 */ void SetR(f32);
/* 80663AA4 */ ~cM3dGCyl();
};
struct cM3dGCps {
/* 8026EF88 */ cM3dGCps();
};
struct cM3dGCir {
/* 8026EF18 */ ~cM3dGCir();
};
struct cM3dGAab {
/* 80663AEC */ ~cM3dGAab();
};
struct cCcD_Obj {};
struct cCcS {
/* 80264BA8 */ void Set(cCcD_Obj*);
};
struct cCcD_Stts {
/* 8026395C */ void ClrCcMove();
};
struct cCcD_GStts {
/* 80667630 */ ~cCcD_GStts();
};
struct cBgS {
/* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
};
struct _GXTexObj {};
struct JMath {
static u8 sincosTable_[65536];
};
struct J3DFrameCtrl {
/* 803283FC */ void init(s16);
/* 8032842C */ void checkPass(f32);
/* 806647D8 */ ~J3DFrameCtrl();
};
#include "d/com/d_com_inf_game.h"
//
// Forward References:
@@ -506,11 +168,6 @@ extern "C" void* __nwa__FUl();
extern "C" void __dl__FPv();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void checkPass__12J3DFrameCtrlFf();
extern "C" void PSMTXCopy();
extern "C" void PSMTXMultVec();
extern "C" void PSVECAdd();
extern "C" void PSVECSquareMag();
extern "C" void PSVECSquareDistance();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void __construct_new_array();
@@ -525,7 +182,6 @@ extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__8dCcD_Cps[36];
@@ -538,13 +194,9 @@ extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mLineCheck__11fopAcM_lc_c[112];
extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
extern "C" extern u8 g_env_light[4880];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 __float_nan;
extern "C" f32 mGroundY__11fopAcM_gc_c;
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" u8 Zero__5csXyz[4];
extern "C" void __register_global_object();
@@ -872,7 +524,8 @@ asm void daCstatue_c::createHeap() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGCyl::~cM3dGCyl() {
// asm cM3dGCyl::~cM3dGCyl() {
extern "C" asm void __dt__8cM3dGCylFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8cM3dGCylFv.s"
}
@@ -882,7 +535,8 @@ asm cM3dGCyl::~cM3dGCyl() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGAab::~cM3dGAab() {
// asm cM3dGAab::~cM3dGAab() {
extern "C" asm void __dt__8cM3dGAabFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8cM3dGAabFv.s"
}
@@ -892,7 +546,8 @@ asm cM3dGAab::~cM3dGAab() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cXyz::~cXyz() {
// asm cXyz::~cXyz() {
extern "C" asm void __dt__4cXyzFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__4cXyzFv.s"
}
@@ -902,7 +557,8 @@ asm cXyz::~cXyz() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dCcD_Sph::~dCcD_Sph() {
// asm dCcD_Sph::~dCcD_Sph() {
extern "C" asm void __dt__8dCcD_SphFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8dCcD_SphFv.s"
}
@@ -912,7 +568,8 @@ asm dCcD_Sph::~dCcD_Sph() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dCcD_Sph::dCcD_Sph() {
// asm dCcD_Sph::dCcD_Sph() {
extern "C" asm void __ct__8dCcD_SphFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__ct__8dCcD_SphFv.s"
}
@@ -922,7 +579,8 @@ asm dCcD_Sph::dCcD_Sph() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGSph::~cM3dGSph() {
// asm cM3dGSph::~cM3dGSph() {
extern "C" asm void __dt__8cM3dGSphFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8cM3dGSphFv.s"
}
@@ -1179,7 +837,8 @@ asm void daCstatue_c::create() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dCcD_GStts::~dCcD_GStts() {
// asm dCcD_GStts::~dCcD_GStts() {
extern "C" asm void __dt__10dCcD_GSttsFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__10dCcD_GSttsFv.s"
}
@@ -1189,7 +848,8 @@ asm dCcD_GStts::~dCcD_GStts() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dBgS_StatueAcch::~dBgS_StatueAcch() {
// asm dBgS_StatueAcch::~dBgS_StatueAcch() {
extern "C" asm void __dt__15dBgS_StatueAcchFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__15dBgS_StatueAcchFv.s"
}
@@ -1199,7 +859,8 @@ asm dBgS_StatueAcch::~dBgS_StatueAcch() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dBgS_AcchCir::~dBgS_AcchCir() {
// asm dBgS_AcchCir::~dBgS_AcchCir() {
extern "C" asm void __dt__12dBgS_AcchCirFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__12dBgS_AcchCirFv.s"
}
@@ -1209,7 +870,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DFrameCtrl::~J3DFrameCtrl() {
// asm J3DFrameCtrl::~J3DFrameCtrl() {
extern "C" asm void __dt__12J3DFrameCtrlFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__12J3DFrameCtrlFv.s"
}
@@ -1440,7 +1102,8 @@ asm void daCstatue_c::posMove() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGPla::~cM3dGPla() {
// asm cM3dGPla::~cM3dGPla() {
extern "C" asm void __dt__8cM3dGPlaFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8cM3dGPlaFv.s"
}
@@ -1932,7 +1595,8 @@ static asm void daCstatue_Draw(daCstatue_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cCcD_GStts::~cCcD_GStts() {
// asm cCcD_GStts::~cCcD_GStts() {
extern "C" asm void __dt__10cCcD_GSttsFv() {
nofralloc
#include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__10cCcD_GSttsFv.s"
}
+1 -1
View File
@@ -3,7 +3,7 @@
// Translation Unit: d_a_mg_rod
//
#include "rel/d/a/d_a_mg_rod/d_a_mg_rod.h"
// #include "rel/d/a/d_a_mg_rod/d_a_mg_rod.h"
#include "dol2asm.h"
#include "dolphin/types.h"
+6 -6
View File
@@ -85,7 +85,7 @@ static int daScex_Create(fopAc_ac_c* ac) {
daScex_c* scex = static_cast<daScex_c*>(ac);
mDoMtx_stack_c::transS(scex->current.pos.x, scex->current.pos.y, scex->current.pos.z);
mDoMtx_stack_c::YrotM(scex->mCollisionRot.y);
mDoMtx_stack_c::YrotM(scex->shape_angle.y);
PSMTXInverse(mDoMtx_stack_c::get(), scex->mMatrix);
scex->mScale.x *= 75.0f;
scex->mScale.z *= 75.0f;
@@ -145,25 +145,25 @@ COMPILER_STRIP_GATE(0x80485CA8, &lit_3842);
// regalloc
#ifdef NONMATCHING
int daScex_c::execute() {
Vec spC;
daPy_py_c* player = daPy_getPlayerActorClass();
cXyz spC;
if (checkWork()) {
PSMTXMultVec(mMatrix, &player->current.pos, &spC);
mDoMtx_multVec(mMatrix, &player->current.pos, &spC);
if (spC.y >= 0.0f && spC.y <= mScale.y && fabsf(spC.x) <= mScale.x && fabsf(spC.z) <= mScale.z) {
switch (getArg1()) {
case 0xFF:
case 1:
player->onSceneChangeArea(getArg0(), ((fopAcM_GetParam(this) >> 0x10) & 0xFF), this);
player->onSceneChangeArea(getArg0(), getPathID(), this);
break;
case 2:
case 0:
player->onSceneChangeAreaJump(getArg0(), ((fopAcM_GetParam(this) >> 0x10) & 0xFF), this);
player->onSceneChangeAreaJump(getArg0(), getPathID(), this);
break;
case 3:
case 4:
player->onSceneChangeAreaJump(getArg0(), ((fopAcM_GetParam(this) >> 0x10) & 0xFF), this);
player->onSceneChangeAreaJump(getArg0(), getPathID(), this);
break;
}
}
+82 -183
View File
@@ -1,73 +1,16 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_skip_2D
//
/**
* d_a_skip2D.cpp
*
*/
#include "rel/d/a/d_a_skip_2D/d_a_skip_2D.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daSkip2D_c {
/* 80D4D498 */ void createHeap();
/* 80D4D4F4 */ void create();
/* 80D4D588 */ bool destroy();
/* 80D4D590 */ void draw();
/* 80D4D5D0 */ bool execute();
/* 80D4D5D8 */ void initiate();
/* 80D4D674 */ ~daSkip2D_c();
};
struct dMeterButton_c {
/* 80201328 */ dMeterButton_c();
};
struct dDlst_base_c {};
struct dDlst_list_c {
/* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
};
//
// Forward References:
//
extern "C" static void daSkip2D_createHeap__FP10fopAc_ac_c();
extern "C" void createHeap__10daSkip2D_cFv();
extern "C" void create__10daSkip2D_cFv();
extern "C" bool destroy__10daSkip2D_cFv();
extern "C" void draw__10daSkip2D_cFv();
extern "C" bool execute__10daSkip2D_cFv();
extern "C" void initiate__10daSkip2D_cFv();
extern "C" static void daSkip2D_Create__FPv();
extern "C" static void daSkip2D_Delete__FPv();
extern "C" static void daSkip2D_Execute__FPv();
extern "C" static void daSkip2D_Draw__FPv();
extern "C" static bool daSkip2D_IsDelete__FPv();
extern "C" void __dt__10daSkip2D_cFv();
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c();
extern "C" void __ct__14dMeterButton_cFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
//
// Declarations:
@@ -75,33 +18,91 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
/* 80D4D478-80D4D498 000078 0020+00 1/1 0/0 0/0 .text daSkip2D_createHeap__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daSkip2D_createHeap(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_createHeap__FP10fopAc_ac_c.s"
static int daSkip2D_createHeap(fopAc_ac_c* i_this) {
return static_cast<daSkip2D_c*>(i_this)->createHeap();
}
#pragma pop
/* 80D4D498-80D4D4F4 000098 005C+00 1/1 0/0 0/0 .text createHeap__10daSkip2D_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSkip2D_c::createHeap() {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/createHeap__10daSkip2D_cFv.s"
int daSkip2D_c::createHeap() {
mpButton = new dMeterButton_c();
if (mpButton == NULL) {
return 0;
}
return 1;
}
/* 80D4D4F4-80D4D588 0000F4 0094+00 1/1 0/0 0/0 .text create__10daSkip2D_cFv */
int daSkip2D_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daSkip2D_c();
fopAcM_OnCondition(this, 8);
}
if (!fopAcM_entrySolidHeap(this, daSkip2D_createHeap, 0)) {
return cPhs_ERROR_e;
}
return cPhs_COMPLEATE_e;
}
/* 80D4D588-80D4D590 000188 0008+00 1/1 0/0 0/0 .text destroy__10daSkip2D_cFv */
int daSkip2D_c::destroy() {
return 1;
}
/* 80D4D590-80D4D5D0 000190 0040+00 1/1 0/0 0/0 .text draw__10daSkip2D_cFv */
int daSkip2D_c::draw() {
dComIfGd_set2DOpaTop((dDlst_base_c*)&mpButton); // ???
return 1;
}
/* 80D4D5D0-80D4D5D8 0001D0 0008+00 1/1 0/0 0/0 .text execute__10daSkip2D_cFv */
int daSkip2D_c::execute() {
return 1;
}
/* 80D4D5D8-80D4D5EC 0001D8 0014+00 1/1 0/0 0/0 .text initiate__10daSkip2D_cFv */
void daSkip2D_c::initiate() {
field_0x56c = 0;
mpButton = NULL;
field_0x574 = 0;
}
/* 80D4D5EC-80D4D60C 0001EC 0020+00 1/0 0/0 0/0 .text daSkip2D_Create__FPv */
static int daSkip2D_Create(void* i_this) {
return static_cast<daSkip2D_c*>(i_this)->create();
}
/* 80D4D60C-80D4D62C 00020C 0020+00 1/0 0/0 0/0 .text daSkip2D_Delete__FPv */
static int daSkip2D_Delete(void* i_this) {
return static_cast<daSkip2D_c*>(i_this)->destroy();
}
/* 80D4D62C-80D4D64C 00022C 0020+00 1/0 0/0 0/0 .text daSkip2D_Execute__FPv */
static int daSkip2D_Execute(void* i_this) {
return static_cast<daSkip2D_c*>(i_this)->execute();
}
/* 80D4D64C-80D4D66C 00024C 0020+00 1/0 0/0 0/0 .text daSkip2D_Draw__FPv */
static int daSkip2D_Draw(void* i_this) {
return static_cast<daSkip2D_c*>(i_this)->draw();
}
/* 80D4D66C-80D4D674 00026C 0008+00 1/0 0/0 0/0 .text daSkip2D_IsDelete__FPv */
static int daSkip2D_IsDelete(void*) {
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 80D4D6DC-80D4D6FC -00001 0020+00 1/0 0/0 0/0 .data daSkip2D_MethodTable */
SECTION_DATA static void* daSkip2D_MethodTable[8] = {
(void*)daSkip2D_Create__FPv,
(void*)daSkip2D_Delete__FPv,
(void*)daSkip2D_Execute__FPv,
(void*)daSkip2D_IsDelete__FPv,
(void*)daSkip2D_Draw__FPv,
(void*)daSkip2D_Create,
(void*)daSkip2D_Delete,
(void*)daSkip2D_Execute,
(void*)daSkip2D_IsDelete,
(void*)daSkip2D_Draw,
(void*)NULL,
(void*)NULL,
(void*)NULL,
@@ -115,106 +116,4 @@ SECTION_DATA extern void* g_profile_SKIP2D[12] = {
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x03040000, (void*)&daSkip2D_MethodTable,
(void*)0x00040000, (void*)NULL,
};
/* 80D4D72C-80D4D738 000050 000C+00 2/2 0/0 0/0 .data __vt__10daSkip2D_c */
SECTION_DATA extern void* __vt__10daSkip2D_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10daSkip2D_cFv,
};
/* 80D4D4F4-80D4D588 0000F4 0094+00 1/1 0/0 0/0 .text create__10daSkip2D_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSkip2D_c::create() {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/create__10daSkip2D_cFv.s"
}
#pragma pop
/* 80D4D588-80D4D590 000188 0008+00 1/1 0/0 0/0 .text destroy__10daSkip2D_cFv */
bool daSkip2D_c::destroy() {
return true;
}
/* 80D4D590-80D4D5D0 000190 0040+00 1/1 0/0 0/0 .text draw__10daSkip2D_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSkip2D_c::draw() {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/draw__10daSkip2D_cFv.s"
}
#pragma pop
/* 80D4D5D0-80D4D5D8 0001D0 0008+00 1/1 0/0 0/0 .text execute__10daSkip2D_cFv */
bool daSkip2D_c::execute() {
return true;
}
/* 80D4D5D8-80D4D5EC 0001D8 0014+00 1/1 0/0 0/0 .text initiate__10daSkip2D_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSkip2D_c::initiate() {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/initiate__10daSkip2D_cFv.s"
}
#pragma pop
/* 80D4D5EC-80D4D60C 0001EC 0020+00 1/0 0/0 0/0 .text daSkip2D_Create__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daSkip2D_Create(void* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_Create__FPv.s"
}
#pragma pop
/* 80D4D60C-80D4D62C 00020C 0020+00 1/0 0/0 0/0 .text daSkip2D_Delete__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daSkip2D_Delete(void* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_Delete__FPv.s"
}
#pragma pop
/* 80D4D62C-80D4D64C 00022C 0020+00 1/0 0/0 0/0 .text daSkip2D_Execute__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daSkip2D_Execute(void* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_Execute__FPv.s"
}
#pragma pop
/* 80D4D64C-80D4D66C 00024C 0020+00 1/0 0/0 0/0 .text daSkip2D_Draw__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daSkip2D_Draw(void* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_Draw__FPv.s"
}
#pragma pop
/* 80D4D66C-80D4D674 00026C 0008+00 1/0 0/0 0/0 .text daSkip2D_IsDelete__FPv */
static bool daSkip2D_IsDelete(void* param_0) {
return true;
}
/* 80D4D674-80D4D6D4 000274 0060+00 1/0 0/0 0/0 .text __dt__10daSkip2D_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daSkip2D_c::~daSkip2D_c() {
nofralloc
#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/__dt__10daSkip2D_cFv.s"
}
#pragma pop
};
+1 -1
View File
@@ -76,7 +76,7 @@ SECTION_RODATA static f32 const lit_3708 = -100.0f;
COMPILER_STRIP_GATE(0x805A1D94, &lit_3708);
inline u8 daSwc00_getCondition(daSwc00_c* i_this) {
return i_this->mCollisionRot.x;
return i_this->shape_angle.x;
}
inline int daSwc00_getShape(daSwc00_c* i_this) {
+2 -2
View File
@@ -521,8 +521,8 @@ static int daNPC_TR_Execute(npc_tr_class* npc_tr) {
action(npc_tr);
mDoMtx_stack_c::transS(npc_tr->current.pos.x, npc_tr->current.pos.y, npc_tr->current.pos.z);
mDoMtx_stack_c::YrotM(npc_tr->mCollisionRot.y + npc_tr->field_0x5f0);
mDoMtx_stack_c::XrotM(npc_tr->mCollisionRot.x);
mDoMtx_stack_c::YrotM(npc_tr->shape_angle.y + npc_tr->field_0x5f0);
mDoMtx_stack_c::XrotM(npc_tr->shape_angle.x);
f32 scale = npc_tr->mScale.x * l_HIO.field_0x8;
mDoMtx_stack_c::scaleM(scale, scale, scale);
@@ -753,7 +753,7 @@ void daTagTWGate_c::executeDemoFilone3() {
if (old_5e1 == 43) {
daPy_py_c* player = daPy_getPlayerActorClass();
csXyz sxyz(0, player->mCollisionRot.y + 0x8000, 0);
csXyz sxyz(0, player->shape_angle.y + 0x8000, 0);
mDoMtx_stack_c::transS(player->current.pos);
mDoMtx_stack_c::YrotM(sxyz.y);
@@ -1013,9 +1013,9 @@ void daTagTWGate_c::initBaseMtx() {
mCullMtx = mpMorf->getModel()->getBaseTRMtx();
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
mCollisionRot.y = player->mCollisionRot.y + 0x8000;
shape_angle.y = player->shape_angle.y + 0x8000;
mDoMtx_stack_c::transS(player->current.pos);
mDoMtx_stack_c::YrotM(mCollisionRot.y);
mDoMtx_stack_c::YrotM(shape_angle.y);
mDoMtx_stack_c::transM(0.0f, 250.0f, -840.0f);
current.pos.x = mDoMtx_stack_c::get()[0][3];
+54 -100
View File
@@ -1,150 +1,104 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_hinit
//
/**
* d_a_tag_hinit.cpp
*
*/
#include "rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTagHinit_c {
/* 805A3758 */ void create();
/* 805A3820 */ ~daTagHinit_c();
/* 805A389C */ void execute();
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
/* 80035360 */ void isSwitch(int, int) const;
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
};
struct dSv_event_c {
/* 800349BC */ void isEventBit(u16) const;
};
#include "rel/d/a/d_a_horse/d_a_horse.h"
//
// Forward References:
//
extern "C" void create__12daTagHinit_cFv();
extern "C" static void daTagHinit_Create__FP10fopAc_ac_c();
extern "C" void __dt__12daTagHinit_cFv();
extern "C" static void daTagHinit_Delete__FP12daTagHinit_c();
extern "C" void execute__12daTagHinit_cFv();
extern "C" static void daTagHinit_Execute__FP12daTagHinit_c();
extern "C" static bool daTagHinit_Draw__FP12daTagHinit_c();
extern "C" extern void* g_profile_Tag_Hinit[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void isEventBit__11dSv_event_cCFUs();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void __dl__FPv();
extern "C" void __ptmf_scall();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
//
// Declarations:
//
/* 805A3758-805A3800 000078 00A8+00 1/1 0/0 0/0 .text create__12daTagHinit_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagHinit_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/create__12daTagHinit_cFv.s"
int daTagHinit_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTagHinit_c();
fopAcM_OnCondition(this, 8);
}
field_0x569 = shape_angle.x;
if (field_0x569 != 0xFF && i_fopAcM_isSwitch(this, field_0x569)) {
return cPhs_ERROR_e;
}
field_0x568 = (shape_angle.x >> 8) & 0xFF;
field_0x56c = fopAcM_GetParam(this);
field_0x56e = (fopAcM_GetParam(this) >> 0x10);
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 805A3800-805A3820 000120 0020+00 1/0 0/0 0/0 .text daTagHinit_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagHinit_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/daTagHinit_Create__FP10fopAc_ac_c.s"
static int daTagHinit_Create(fopAc_ac_c* i_this) {
return static_cast<daTagHinit_c*>(i_this)->create();
}
#pragma pop
/* 805A3820-805A3874 000140 0054+00 1/1 0/0 0/0 .text __dt__12daTagHinit_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagHinit_c::~daTagHinit_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/__dt__12daTagHinit_cFv.s"
}
#pragma pop
daTagHinit_c::~daTagHinit_c() {}
/* 805A3874-805A389C 000194 0028+00 1/0 0/0 0/0 .text daTagHinit_Delete__FP12daTagHinit_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagHinit_Delete(daTagHinit_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/daTagHinit_Delete__FP12daTagHinit_c.s"
static int daTagHinit_Delete(daTagHinit_c* i_this) {
i_this->~daTagHinit_c();
return 1;
}
#pragma pop
/* 805A389C-805A39B8 0001BC 011C+00 1/1 0/0 0/0 .text execute__12daTagHinit_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagHinit_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/execute__12daTagHinit_cFv.s"
int daTagHinit_c::execute() {
if ((field_0x56c == 0xFFFF ||
i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x56c])) &&
(field_0x56e == 0xFFFF ||
!i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x56e])) &&
(field_0x568 == 0xFF || i_fopAcM_isSwitch(this, field_0x568))) {
if (field_0x569 != 0xFF) {
i_fopAcM_onSwitch(this, field_0x569);
}
daHorse_c* horse = i_dComIfGp_getHorseActor();
horse->i_setHorsePosAndAngle(&current.pos, shape_angle.y);
horse->offNoDrawWait();
fopAcM_delete(this);
}
return 1;
}
#pragma pop
/* 805A39B8-805A39D8 0002D8 0020+00 1/0 0/0 0/0 .text daTagHinit_Execute__FP12daTagHinit_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagHinit_Execute(daTagHinit_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/daTagHinit_Execute__FP12daTagHinit_c.s"
static int daTagHinit_Execute(daTagHinit_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 805A39D8-805A39E0 0002F8 0008+00 1/0 0/0 0/0 .text daTagHinit_Draw__FP12daTagHinit_c
*/
static bool daTagHinit_Draw(daTagHinit_c* param_0) {
return true;
static int daTagHinit_Draw(daTagHinit_c*) {
return 1;
}
/* ############################################################################################## */
/* 805A39E8-805A3A08 -00001 0020+00 1/0 0/0 0/0 .data l_daTagHinit_Method */
SECTION_DATA static void* l_daTagHinit_Method[8] = {
(void*)daTagHinit_Create__FP10fopAc_ac_c,
(void*)daTagHinit_Delete__FP12daTagHinit_c,
(void*)daTagHinit_Execute__FP12daTagHinit_c,
(void*)daTagHinit_Create,
(void*)daTagHinit_Delete,
(void*)daTagHinit_Execute,
(void*)NULL,
(void*)daTagHinit_Draw__FP12daTagHinit_c,
(void*)daTagHinit_Draw,
(void*)NULL,
(void*)NULL,
(void*)NULL,
+1 -1
View File
@@ -121,7 +121,7 @@ dMsgFlow_c daTagHstop_c::m_msgFlow;
int daTagHstop_c::execute() {
if (mEvtInfo.checkCommandTalk()) {
if (field_0x573 == 2) {
m_msgFlow.init(this, (u16)mCollisionRot.z, 0, NULL);
m_msgFlow.init(this, (u16)shape_angle.z, 0, NULL);
field_0x573 = 3;
} else if (m_msgFlow.doFlow(this, NULL, 0)) {
i_dComIfGp_getEvent().reset();
@@ -120,7 +120,7 @@ bool daTag_Lv5Soup_c::isAreaCheck() {
f32 boundX = mScale.x * 100.0f;
f32 boundY = mScale.y * 100.0f;
if (sqrtf(dist.abs2XZ()) < boundX && -boundY < dist.y && dist.y < boundY) {
if (dist.absXZ() < boundX && -boundY < dist.y && dist.y < boundY) {
return true;
} else {
return false;
@@ -1,201 +1,150 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_setrestart
//
/**
* d_a_tag_setrestart.cpp
* RMBack0
* Sets player room restart info
*/
#include "rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct mDoMtx_stack_c {
static u8 now[48];
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct Vec {};
struct cXyz {
/* 80266AE4 */ void operator+(Vec const&) const;
/* 80D60520 */ ~cXyz();
/* 80D6055C */ cXyz();
};
struct fopAcM_gc_c {
/* 8001DCBC */ void gndCheck(cXyz const*);
static f32 mGroundY;
};
struct daTagRestart_c {
/* 80D603F8 */ void Create();
/* 80D6048C */ void create();
/* 80D60560 */ void execute();
/* 80D60744 */ bool _delete();
};
struct dSv_restart_c {
/* 80034F80 */ void setRoom(cXyz const&, s16, s8);
};
//
// Forward References:
//
extern "C" void Create__14daTagRestart_cFv();
extern "C" void create__14daTagRestart_cFv();
extern "C" void __dt__4cXyzFv();
extern "C" void __ct__4cXyzFv();
extern "C" void execute__14daTagRestart_cFv();
extern "C" bool _delete__14daTagRestart_cFv();
extern "C" static void daTagRestart_Execute__FP14daTagRestart_c();
extern "C" static void daTagRestart_Delete__FP14daTagRestart_c();
extern "C" static void daTagRestart_Create__FP10fopAc_ac_c();
extern "C" extern void* g_profile_Tag_Restart[12];
//
// External References:
//
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
extern "C" void setRoom__13dSv_restart_cFRC4cXyzsSc();
extern "C" void __pl__4cXyzCFRC3Vec();
extern "C" void __dl__FPv();
extern "C" void PSMTXMultVec();
extern "C" void PSVECSubtract();
extern "C" void __construct_array();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" f32 mGroundY__11fopAcM_gc_c;
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
//
// Declarations:
//
/* ############################################################################################## */
/* 80D607B4-80D607B8 000000 0004+00 2/2 0/0 0/0 .rodata @3650 */
SECTION_RODATA static f32 const lit_3650 = -100.0f;
COMPILER_STRIP_GATE(0x80D607B4, &lit_3650);
/* 80D607B8-80D607BC 000004 0004+00 0/2 0/0 0/0 .rodata @3651 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3651 = 100.0f;
COMPILER_STRIP_GATE(0x80D607B8, &lit_3651);
#pragma pop
/* 80D607BC-80D607C0 000008 0004+00 0/2 0/0 0/0 .rodata @3652 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3652[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80D607BC, &lit_3652);
#pragma pop
/* 80D603F8-80D6048C 000078 0094+00 1/1 0/0 0/0 .text Create__14daTagRestart_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRestart_c::Create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/Create__14daTagRestart_cFv.s"
int daTagRestart_c::Create() {
field_0x56c[0].x = mScale.x * -100.0f;
field_0x56c[0].z = mScale.z * -100.0f;
field_0x56c[1].x = mScale.x * 100.0f;
field_0x56c[1].z = mScale.z * -100.0f;
field_0x56c[2].x = mScale.x * 100.0f;
field_0x56c[2].z = mScale.z * 100.0f;
field_0x56c[3].x = mScale.x * -100.0f;
field_0x56c[3].z = mScale.z * 100.0f;
field_0x56c[3].y = 0.0f;
field_0x56c[2].y = 0.0f;
field_0x56c[1].y = 0.0f;
field_0x56c[0].y = 0.0f;
mPlayerRoomNo = -1;
return 1;
}
#pragma pop
/* 80D6048C-80D60520 00010C 0094+00 1/1 0/0 0/0 .text create__14daTagRestart_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRestart_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/func_80D6048C.s"
int daTagRestart_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTagRestart_c();
fopAcM_OnCondition(this, 8);
}
if (!Create()) {
return cPhs_ERROR_e;
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 80D60520-80D6055C 0001A0 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cXyz::~cXyz() {
// asm cXyz::~cXyz() {
extern "C" asm void __dt__4cXyzFv() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/__dt__4cXyzFv.s"
}
#pragma pop
/* 80D6055C-80D60560 0001DC 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
cXyz::cXyz() {
/* empty function */
}
// cXyz::cXyz() {
extern "C" void __ct__4cXyzFv() {}
/* 80D60560-80D60744 0001E0 01E4+00 1/1 0/0 0/0 .text execute__14daTagRestart_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRestart_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/execute__14daTagRestart_cFv.s"
int daTagRestart_c::execute() {
fopAc_ac_c* player = dComIfGp_getPlayer(0);
cXyz player_pos = player->current.pos;
player_pos -= orig.pos;
mDoMtx_stack_c::YrotS(-current.angle.y);
mDoMtx_stack_c::multVec(&player_pos, &player_pos);
if (field_0x56c[0].x < player_pos.x && field_0x56c[0].z < player_pos.z &&
field_0x56c[2].x > player_pos.x && field_0x56c[2].z > player_pos.z) {
int roomNo = dComIfGp_roomControl_getStayNo();
if (roomNo != mPlayerRoomNo) {
cXyz pos_offset;
s16 restart_angle;
if (roomNo == daTagRestart_prm::getFRoomNo(this)) {
restart_angle = orig.angle.y;
pos_offset.set(0.0f, 0.0f, 100.0f);
} else {
restart_angle = orig.angle.y + 0x8000;
pos_offset.set(0.0f, 0.0f, -100.0f);
}
pos_offset.y += 100.0f;
mDoMtx_stack_c::YrotS(orig.angle.y);
mDoMtx_stack_c::multVec(&pos_offset, &pos_offset);
cXyz restart_pos = current.pos + pos_offset;
if (fopAcM_gc_c::gndCheck(&restart_pos)) {
restart_pos.y = fopAcM_gc_c::getGroundY();
}
s32 player_roomNo = fopAcM_GetRoomNo(player);
dComIfGs_setRestartRoom(restart_pos, restart_angle, player_roomNo);
}
}
mPlayerRoomNo = fopAcM_GetRoomNo(player);
return 1;
}
#pragma pop
/* 80D60744-80D6074C 0003C4 0008+00 1/1 0/0 0/0 .text _delete__14daTagRestart_cFv */
bool daTagRestart_c::_delete() {
return true;
int daTagRestart_c::_delete() {
return 1;
}
/* 80D6074C-80D6076C 0003CC 0020+00 1/0 0/0 0/0 .text daTagRestart_Execute__FP14daTagRestart_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagRestart_Execute(daTagRestart_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/daTagRestart_Execute__FP14daTagRestart_c.s"
static int daTagRestart_Execute(daTagRestart_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 80D6076C-80D6078C 0003EC 0020+00 1/0 0/0 0/0 .text daTagRestart_Delete__FP14daTagRestart_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagRestart_Delete(daTagRestart_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/daTagRestart_Delete__FP14daTagRestart_c.s"
static int daTagRestart_Delete(daTagRestart_c* i_this) {
return i_this->_delete();
}
#pragma pop
/* 80D6078C-80D607AC 00040C 0020+00 1/0 0/0 0/0 .text daTagRestart_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagRestart_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/daTagRestart_Create__FP10fopAc_ac_c.s"
static int daTagRestart_Create(fopAc_ac_c* i_this) {
return static_cast<daTagRestart_c*>(i_this)->create();
}
#pragma pop
/* ############################################################################################## */
/* 80D607C0-80D607E0 -00001 0020+00 1/0 0/0 0/0 .data l_daTagRestart_Method */
SECTION_DATA static void* l_daTagRestart_Method[8] = {
(void*)daTagRestart_Create__FP10fopAc_ac_c,
(void*)daTagRestart_Delete__FP14daTagRestart_c,
(void*)daTagRestart_Execute__FP14daTagRestart_c,
(void*)daTagRestart_Create,
(void*)daTagRestart_Delete,
(void*)daTagRestart_Execute,
(void*)NULL,
(void*)NULL,
(void*)NULL,
@@ -4,70 +4,114 @@
//
#include "rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTagWrHowl_c {
/* 80D63F38 */ daTagWrHowl_c();
/* 80D63F74 */ ~daTagWrHowl_c();
/* 80D63FD4 */ void create();
/* 80D6402C */ bool Delete();
/* 80D64034 */ bool draw();
/* 80D6403C */ void execute();
/* 80D64090 */ void init();
/* 80D640B4 */ void chkWlfInTag();
};
//
// Forward References:
//
extern "C" void __ct__13daTagWrHowl_cFv();
extern "C" void __dt__13daTagWrHowl_cFv();
extern "C" void create__13daTagWrHowl_cFv();
extern "C" bool Delete__13daTagWrHowl_cFv();
extern "C" bool draw__13daTagWrHowl_cFv();
extern "C" void execute__13daTagWrHowl_cFv();
extern "C" void init__13daTagWrHowl_cFv();
extern "C" void chkWlfInTag__13daTagWrHowl_cFv();
extern "C" static void daTagWrHowl_create__FP13daTagWrHowl_c();
extern "C" static void daTagWrHowl_Delete__FP13daTagWrHowl_c();
extern "C" static void daTagWrHowl_execute__FP13daTagWrHowl_c();
extern "C" static void daTagWrHowl_draw__FP13daTagWrHowl_c();
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void __dl__FPv();
extern "C" void PSVECSquareDistance();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
//
// Declarations:
//
/* 80D63F38-80D63F74 000078 003C+00 2/2 0/0 0/0 .text __ct__13daTagWrHowl_cFv */
daTagWrHowl_c::daTagWrHowl_c() {}
/* 80D63F74-80D63FD4 0000B4 0060+00 1/0 0/0 0/0 .text __dt__13daTagWrHowl_cFv */
daTagWrHowl_c::~daTagWrHowl_c() {}
/* 80D63FD4-80D6402C 000114 0058+00 1/1 0/0 0/0 .text create__13daTagWrHowl_cFv */
int daTagWrHowl_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTagWrHowl_c();
fopAcM_OnCondition(this, 8);
}
init();
return cPhs_COMPLEATE_e;
}
/* 80D6402C-80D64034 00016C 0008+00 1/1 0/0 0/0 .text Delete__13daTagWrHowl_cFv */
int daTagWrHowl_c::Delete() {
return 1;
}
/* 80D64034-80D6403C 000174 0008+00 1/1 0/0 0/0 .text draw__13daTagWrHowl_cFv */
int daTagWrHowl_c::draw() {
return 1;
}
/* 80D6403C-80D64090 00017C 0054+00 1/1 0/0 0/0 .text execute__13daTagWrHowl_cFv */
int daTagWrHowl_c::execute() {
mAttentionInfo.mFlags = 0;
if (chkWlfInTag()) {
mAttentionInfo.mFlags |= 0x80;
mAttentionInfo.field_0x4[3] = 65;
}
return 1;
}
/* 80D64090-80D640B4 0001D0 0024+00 1/1 0/0 0/0 .text init__13daTagWrHowl_cFv */
void daTagWrHowl_c::init() {
field_0x56c = 50.0f * mScale.x;
field_0x570 = field_0x56c * field_0x56c;
}
/* 80D640B4-80D64144 0001F4 0090+00 1/1 0/0 0/0 .text chkWlfInTag__13daTagWrHowl_cFv */
bool daTagWrHowl_c::chkWlfInTag() {
if (dComIfGp_getPlayer(0) == NULL) {
return false;
}
if (daPy_py_c::i_checkNowWolf()) {
cXyz player_pos = dComIfGp_getPlayer(0)->current.pos;
if (player_pos.abs2(current.pos) < field_0x570) {
return true;
}
}
return false;
}
/* 80D64144-80D64198 000284 0054+00 1/0 0/0 0/0 .text daTagWrHowl_create__FP13daTagWrHowl_c */
static int daTagWrHowl_create(daTagWrHowl_c* i_this) {
if (!fopAcM_CheckCondition(i_this, 8)) {
new (i_this) daTagWrHowl_c();
fopAcM_OnCondition(i_this, 8);
}
return i_this->create();
}
/* 80D64198-80D641B8 0002D8 0020+00 1/0 0/0 0/0 .text daTagWrHowl_Delete__FP13daTagWrHowl_c */
static int daTagWrHowl_Delete(daTagWrHowl_c* i_this) {
return i_this->Delete();
}
/* 80D641B8-80D641D8 0002F8 0020+00 1/0 0/0 0/0 .text daTagWrHowl_execute__FP13daTagWrHowl_c */
static int daTagWrHowl_execute(daTagWrHowl_c* i_this) {
return i_this->execute();
}
/* 80D641D8-80D641F8 000318 0020+00 1/0 0/0 0/0 .text daTagWrHowl_draw__FP13daTagWrHowl_c
*/
static int daTagWrHowl_draw(daTagWrHowl_c* i_this) {
return i_this->draw();
}
/* ############################################################################################## */
/* 80D64204-80D64224 -00001 0020+00 1/0 0/0 0/0 .data daTagWrHowl_METHODS */
SECTION_DATA static void* daTagWrHowl_METHODS[8] = {
(void*)daTagWrHowl_create__FP13daTagWrHowl_c,
(void*)daTagWrHowl_Delete__FP13daTagWrHowl_c,
(void*)daTagWrHowl_execute__FP13daTagWrHowl_c,
(void*)daTagWrHowl_create,
(void*)daTagWrHowl_Delete,
(void*)daTagWrHowl_execute,
(void*)NULL,
(void*)daTagWrHowl_draw__FP13daTagWrHowl_c,
(void*)daTagWrHowl_draw,
(void*)NULL,
(void*)NULL,
(void*)NULL,
@@ -81,127 +125,4 @@ SECTION_DATA extern void* g_profile_Tag_WaraHowl[12] = {
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x02DD0000, (void*)&daTagWrHowl_METHODS,
(void*)0x00040000, (void*)0x000E0000,
};
/* 80D64254-80D64260 000050 000C+00 2/2 0/0 0/0 .data __vt__13daTagWrHowl_c */
SECTION_DATA extern void* __vt__13daTagWrHowl_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__13daTagWrHowl_cFv,
};
/* 80D63F38-80D63F74 000078 003C+00 2/2 0/0 0/0 .text __ct__13daTagWrHowl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagWrHowl_c::daTagWrHowl_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/__ct__13daTagWrHowl_cFv.s"
}
#pragma pop
/* 80D63F74-80D63FD4 0000B4 0060+00 1/0 0/0 0/0 .text __dt__13daTagWrHowl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagWrHowl_c::~daTagWrHowl_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/__dt__13daTagWrHowl_cFv.s"
}
#pragma pop
/* 80D63FD4-80D6402C 000114 0058+00 1/1 0/0 0/0 .text create__13daTagWrHowl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWrHowl_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/create__13daTagWrHowl_cFv.s"
}
#pragma pop
/* 80D6402C-80D64034 00016C 0008+00 1/1 0/0 0/0 .text Delete__13daTagWrHowl_cFv */
bool daTagWrHowl_c::Delete() {
return true;
}
/* 80D64034-80D6403C 000174 0008+00 1/1 0/0 0/0 .text draw__13daTagWrHowl_cFv */
bool daTagWrHowl_c::draw() {
return true;
}
/* 80D6403C-80D64090 00017C 0054+00 1/1 0/0 0/0 .text execute__13daTagWrHowl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWrHowl_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/execute__13daTagWrHowl_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 80D64200-80D64204 000000 0004+00 1/1 0/0 0/0 .rodata @3680 */
SECTION_RODATA static f32 const lit_3680 = 50.0f;
COMPILER_STRIP_GATE(0x80D64200, &lit_3680);
/* 80D64090-80D640B4 0001D0 0024+00 1/1 0/0 0/0 .text init__13daTagWrHowl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWrHowl_c::init() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/init__13daTagWrHowl_cFv.s"
}
#pragma pop
/* 80D640B4-80D64144 0001F4 0090+00 1/1 0/0 0/0 .text chkWlfInTag__13daTagWrHowl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWrHowl_c::chkWlfInTag() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/chkWlfInTag__13daTagWrHowl_cFv.s"
}
#pragma pop
/* 80D64144-80D64198 000284 0054+00 1/0 0/0 0/0 .text daTagWrHowl_create__FP13daTagWrHowl_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWrHowl_create(daTagWrHowl_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/daTagWrHowl_create__FP13daTagWrHowl_c.s"
}
#pragma pop
/* 80D64198-80D641B8 0002D8 0020+00 1/0 0/0 0/0 .text daTagWrHowl_Delete__FP13daTagWrHowl_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWrHowl_Delete(daTagWrHowl_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/daTagWrHowl_Delete__FP13daTagWrHowl_c.s"
}
#pragma pop
/* 80D641B8-80D641D8 0002F8 0020+00 1/0 0/0 0/0 .text daTagWrHowl_execute__FP13daTagWrHowl_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWrHowl_execute(daTagWrHowl_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/daTagWrHowl_execute__FP13daTagWrHowl_c.s"
}
#pragma pop
/* 80D641D8-80D641F8 000318 0020+00 1/0 0/0 0/0 .text daTagWrHowl_draw__FP13daTagWrHowl_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWrHowl_draw(daTagWrHowl_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/daTagWrHowl_draw__FP13daTagWrHowl_c.s"
}
#pragma pop
};