mirror of https://github.com/zeldaret/tp.git
466 lines
13 KiB
C++
466 lines
13 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: d/d_cc_d
|
|
//
|
|
|
|
#include "d/dolzel.h" // IWYU pragma: keep
|
|
|
|
#include "d/d_cc_d.h"
|
|
#include "f_op/f_op_actor_mng.h"
|
|
#include "f_pc/f_pc_searcher.h"
|
|
|
|
/* 8008364C-80083660 07DF8C 0014+00 3/3 0/0 0/0 .text ClrActorInfo__22dCcD_GAtTgCoCommonBaseFv */
|
|
void dCcD_GAtTgCoCommonBase::ClrActorInfo() {
|
|
mApid = -1;
|
|
mAc = NULL;
|
|
}
|
|
|
|
/* 80083660-80083678 07DFA0 0018+00 1/1 0/0 0/0 .text ct__22dCcD_GAtTgCoCommonBaseFv */
|
|
void dCcD_GAtTgCoCommonBase::ct() {
|
|
mGFlag = 0;
|
|
mRPrm = 0;
|
|
mHitCallback = NULL;
|
|
mEffCounter = 0;
|
|
}
|
|
|
|
/* 80083678-80083688 07DFB8 0010+00 0/0 2/2 0/0 .text SetHitApid__22dCcD_GAtTgCoCommonBaseFUi */
|
|
void dCcD_GAtTgCoCommonBase::SetHitApid(fpc_ProcID hitApid) {
|
|
mApid = hitApid;
|
|
mAc = NULL;
|
|
}
|
|
|
|
/* 80083688-80083704 07DFC8 007C+00 6/6 17/17 43/43 .text GetAc__22dCcD_GAtTgCoCommonBaseFv */
|
|
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;
|
|
}
|
|
|
|
/* 80083704-80083718 07E044 0014+00 3/3 0/0 0/0 .text
|
|
* Set__22dCcD_GAtTgCoCommonBaseFRC25dCcD_SrcGAtTgCoCommonBase */
|
|
void dCcD_GAtTgCoCommonBase::Set(dCcD_SrcGAtTgCoCommonBase const& src) {
|
|
mGFlag = src.mGFlag;
|
|
mEffCounter = 0;
|
|
}
|
|
|
|
/* 80083718-80083724 07E058 000C+00 0/0 1/1 0/0 .text
|
|
* SetEffCounterTimer__22dCcD_GAtTgCoCommonBaseFv */
|
|
void dCcD_GAtTgCoCommonBase::SetEffCounterTimer() {
|
|
mEffCounter = 5;
|
|
}
|
|
|
|
/* 80083724-80083748 07E064 0024+00 3/3 0/0 0/0 .text
|
|
* SubtractEffCounter__22dCcD_GAtTgCoCommonBaseFv */
|
|
void dCcD_GAtTgCoCommonBase::SubtractEffCounter() {
|
|
mEffCounter--;
|
|
if (mEffCounter < 0) {
|
|
mEffCounter = 0;
|
|
}
|
|
}
|
|
|
|
/* 80083748-80083760 07E088 0018+00 0/0 1/1 0/0 .text ChkEffCounter__22dCcD_GAtTgCoCommonBaseFv */
|
|
bool dCcD_GAtTgCoCommonBase::ChkEffCounter() {
|
|
return mEffCounter > 0;
|
|
}
|
|
|
|
/* 80083760-800837B0 07E0A0 0050+00 0/0 3/3 446/446 .text __ct__10dCcD_GSttsFv */
|
|
dCcD_GStts::dCcD_GStts() {
|
|
mAt = 0;
|
|
mTg = 0;
|
|
mRoomId = 0;
|
|
field_0x08 = -1;
|
|
mAtApid = -1;
|
|
mAtOldApid = -1;
|
|
mTgApid = -1;
|
|
mTgOldApid = -1;
|
|
field_0x1C = 0;
|
|
}
|
|
|
|
/* 800837F8-80083830 07E138 0038+00 1/1 0/0 0/0 .text Ct__10dCcD_GSttsFv */
|
|
void dCcD_GStts::Ct() {
|
|
mAt = 0;
|
|
mTg = 0;
|
|
mRoomId = 0;
|
|
field_0x08 = -1;
|
|
mAtApid = -1;
|
|
mAtOldApid = -1;
|
|
mTgApid = -1;
|
|
mTgOldApid = -1;
|
|
field_0x1C = 0;
|
|
}
|
|
|
|
/* 80083830-80083850 07E170 0020+00 0/0 3/3 160/160 .text Move__10dCcD_GSttsFv */
|
|
void dCcD_GStts::Move() {
|
|
mAtOldApid = mAtApid;
|
|
mAtApid = 0;
|
|
mTgOldApid = mTgApid;
|
|
mTgApid = 0;
|
|
}
|
|
|
|
/* 80083850-80083860 07E190 0010+00 1/0 0/0 0/0 .text GetGStts__9dCcD_SttsFv */
|
|
cCcD_GStts* dCcD_Stts::GetGStts() {
|
|
return this;
|
|
}
|
|
|
|
/* 80083860-800838F4 07E1A0 0094+00 0/0 3/3 416/416 .text Init__9dCcD_SttsFiiP10fopAc_ac_c */
|
|
void dCcD_Stts::Init(int param_0, int param_1, fopAc_ac_c* pActor) {
|
|
u32 actorPid;
|
|
if (pActor != NULL) {
|
|
actorPid = fopAcM_GetID(pActor);
|
|
} else {
|
|
actorPid = -1;
|
|
}
|
|
|
|
cCcD_Stts::Init(param_0, param_1, pActor, actorPid);
|
|
|
|
s32 roomNo;
|
|
if (pActor != NULL) {
|
|
roomNo = fopAcM_GetRoomNo(pActor);
|
|
} else {
|
|
roomNo = 0;
|
|
OnNoActor();
|
|
}
|
|
|
|
if (roomNo != -1) {
|
|
SetRoomId(roomNo);
|
|
} else {
|
|
SetRoomId(0);
|
|
}
|
|
}
|
|
|
|
/* 800838F4-80083928 07E234 0034+00 1/0 0/0 0/0 .text Ct__9dCcD_SttsFv */
|
|
void dCcD_Stts::Ct() {
|
|
cCcD_Stts::Ct();
|
|
dCcD_GStts::Ct();
|
|
}
|
|
|
|
/* 80083928-80083934 07E268 000C+00 1/0 0/0 0/0 .text ClrAt__9dCcD_SttsFv */
|
|
void dCcD_Stts::ClrAt() {
|
|
cCcD_Stts::ClrAt();
|
|
dCcD_GStts::ClrAt();
|
|
}
|
|
|
|
/* 80083934-80083944 07E274 0010+00 1/0 0/0 0/0 .text ClrTg__9dCcD_SttsFv */
|
|
void dCcD_Stts::ClrTg() {
|
|
cCcD_Stts::ClrTg();
|
|
dCcD_GStts::ClrTg();
|
|
}
|
|
|
|
/* 80083944-800839A0 07E284 005C+00 1/1 0/0 0/0 .text Set__11dCcD_GObjAtFRC14dCcD_SrcGObjAt */
|
|
void dCcD_GObjAt::Set(dCcD_SrcGObjAt const& src) {
|
|
dCcD_GAtTgCoCommonBase::Set(src.mBase);
|
|
mSe = src.mSe;
|
|
mMtrl = src.mMtrl;
|
|
mHitMark = src.mHitMark;
|
|
mSpl = src.mSpl;
|
|
}
|
|
|
|
/* 800839A0-80083A28 07E2E0 0088+00 1/1 0/0 0/0 .text Set__11dCcD_GObjTgFRC14dCcD_SrcGObjTg */
|
|
void dCcD_GObjTg::Set(dCcD_SrcGObjTg const& src) {
|
|
dCcD_GAtTgCoCommonBase::Set(src.mBase);
|
|
mSe = src.mSe;
|
|
mMtrl = src.mMtrl;
|
|
mHitMark = src.mHitMark;
|
|
mSpl = src.mSpl;
|
|
mHitPos = cXyz::Zero;
|
|
mShieldFrontRangeYAngle = NULL;
|
|
mShieldRange = 0x4000;
|
|
}
|
|
|
|
/* 80083A28-80083B8C 07E368 0164+00 0/0 4/4 496/496 .text __ct__12dCcD_GObjInfFv */
|
|
dCcD_GObjInf::dCcD_GObjInf() {}
|
|
|
|
dCcD_GObjInf::~dCcD_GObjInf() {}
|
|
|
|
cCcD_GObjInf* dCcD_GObjInf::GetGObjInf() {
|
|
return this;
|
|
}
|
|
|
|
/* 8008426C-800842C0 07EBAC 0054+00 5/0 0/0 0/0 .text ClrAtHit__12dCcD_GObjInfFv */
|
|
void dCcD_GObjInf::ClrAtHit() {
|
|
cCcD_ObjHitInf::ClrAtHit();
|
|
mGObjAt.ClrHit();
|
|
OffAtShieldHit();
|
|
OffAtHitNoActor();
|
|
SubtractAtEffCounter();
|
|
}
|
|
|
|
/* 800842C0-80084318 07EC00 0058+00 0/0 12/12 78/78 .text ChkAtHit__12dCcD_GObjInfFv */
|
|
u32 dCcD_GObjInf::ChkAtHit() {
|
|
if (cCcD_ObjHitInf::ChkAtHit() == 0) {
|
|
return 0;
|
|
} else if (ChkAtHitNoActor() == 0 && GetAtHitAc() == NULL) {
|
|
return 0;
|
|
} else {
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
/* 80084318-80084358 07EC58 0040+00 0/0 10/10 7/7 .text ResetAtHit__12dCcD_GObjInfFv */
|
|
void dCcD_GObjInf::ResetAtHit() {
|
|
ClrAtHit();
|
|
ClrAtEffCounter();
|
|
}
|
|
|
|
/* 80084358-800843A8 07EC98 0050+00 1/1 0/0 31/31 .text GetAtHitObj__12dCcD_GObjInfFv */
|
|
cCcD_Obj* dCcD_GObjInf::GetAtHitObj() {
|
|
if (ChkAtHitNoActor() == 0 && GetAtHitAc() == NULL) {
|
|
return NULL;
|
|
} else {
|
|
return cCcD_ObjHitInf::GetAtHitObj();
|
|
}
|
|
}
|
|
|
|
/* 800843A8-800843DC 07ECE8 0034+00 0/0 2/2 3/3 .text GetAtHitGObj__12dCcD_GObjInfFv */
|
|
cCcD_GObjInf* dCcD_GObjInf::GetAtHitGObj() {
|
|
cCcD_Obj* obj = GetAtHitObj();
|
|
if (obj == NULL) {
|
|
return NULL;
|
|
} else {
|
|
return dCcD_GetGObjInf(obj);
|
|
}
|
|
}
|
|
|
|
/* 800843DC-800843FC 07ED1C 0020+00 0/0 1/1 0/0 .text ChkAtNoGuard__12dCcD_GObjInfFv */
|
|
u8 dCcD_GObjInf::ChkAtNoGuard() {
|
|
return GetAtSpl() >= 12;
|
|
}
|
|
|
|
/* 800843FC-80084460 07ED3C 0064+00 5/0 0/0 0/0 .text ClrTgHit__12dCcD_GObjInfFv */
|
|
void dCcD_GObjInf::ClrTgHit() {
|
|
cCcD_ObjHitInf::ClrTgHit();
|
|
mGObjTg.ClrHit();
|
|
OffTgHitNoActor();
|
|
OffTgShieldHit();
|
|
OffTgMagneHit();
|
|
SubtractTgEffCounter();
|
|
}
|
|
|
|
/* 80084460-800844B8 07EDA0 0058+00 0/0 6/6 305/305 .text ChkTgHit__12dCcD_GObjInfFv */
|
|
u32 dCcD_GObjInf::ChkTgHit() {
|
|
if (cCcD_ObjHitInf::ChkTgHit() == 0) {
|
|
return false;
|
|
} else if (ChkTgHitNoActor() == 0 && GetTgHitAc() == NULL) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
/* 800844B8-800844F8 07EDF8 0040+00 0/0 1/1 5/5 .text ResetTgHit__12dCcD_GObjInfFv */
|
|
void dCcD_GObjInf::ResetTgHit() {
|
|
ClrTgHit();
|
|
ClrTgEffCounter();
|
|
}
|
|
|
|
/* 800844F8-80084548 07EE38 0050+00 1/1 3/3 228/228 .text GetTgHitObj__12dCcD_GObjInfFv
|
|
*/
|
|
cCcD_Obj* dCcD_GObjInf::GetTgHitObj() {
|
|
if (ChkTgHitNoActor() == 0 && GetTgHitAc() == NULL) {
|
|
return NULL;
|
|
} else {
|
|
return cCcD_ObjHitInf::GetTgHitObj();
|
|
}
|
|
}
|
|
|
|
/* 80084548-8008457C 07EE88 0034+00 1/1 5/5 63/63 .text GetTgHitGObj__12dCcD_GObjInfFv */
|
|
dCcD_GObjInf* dCcD_GObjInf::GetTgHitGObj() {
|
|
cCcD_Obj* obj = GetTgHitObj();
|
|
if (obj == NULL) {
|
|
return NULL;
|
|
} else {
|
|
return dCcD_GetGObjInf(obj);
|
|
}
|
|
}
|
|
|
|
/* 8008457C-800845B0 07EEBC 0034+00 0/0 2/2 18/18 .text GetTgHitObjSe__12dCcD_GObjInfFv
|
|
*/
|
|
u8 dCcD_GObjInf::GetTgHitObjSe() {
|
|
dCcD_GObjInf* objInf = GetTgHitGObj();
|
|
if (objInf == NULL) {
|
|
return NULL;
|
|
} else {
|
|
return objInf->GetAtSe();
|
|
}
|
|
}
|
|
|
|
/* 8037A780-8037A7E0 006DE0 0060+00 1/1 0/0 0/0 .rodata m_hitSeID__12dCcD_GObjInf */
|
|
Z2SoundID const dCcD_GObjInf::m_hitSeID[24] = {
|
|
Z2SE_HIT_DUMMY_CANCEL, Z2SE_HIT_SWORD, Z2SE_HIT_SHIELD_ATTACK,
|
|
Z2SE_HIT_WOLFKICK, Z2SE_HIT_WOLFBITE, Z2SE_HIT_WOOD_WEAPON,
|
|
Z2SE_HIT_HAMMER, Z2SE_HIT_ARROW_STICK, Z2SE_HIT_HOOKSHOT_STICK,
|
|
Z2SE_HIT_METAL_WEAPON, Z2SE_HIT_STONE_WEAPON, Z2SE_HIT_HARD_BODY,
|
|
Z2SE_HIT_SOFT_BODY, Z2SE_HIT_DUMMY_CANCEL, Z2SE_HIT_SWORD_STAB,
|
|
Z2SE_HIT_WOLFKICK, Z2SE_HIT_SWORD_RUN, Z2SE_HIT_EN_WOOD_WEAPON,
|
|
Z2SE_HIT_THOROW_OBJ, Z2SE_HIT_SPINNER, Z2SE_HIT_COPYROD,
|
|
Z2SE_HIT_STATUE_HAMMER, Z2SE_HIT_PACHINKO, Z2SE_HIT_AL_ARROW_STICK,
|
|
};
|
|
|
|
/* 800845B0-8008460C 07EEF0 005C+00 0/0 3/3 32/32 .text getHitSeID__12dCcD_GObjInfFUci */
|
|
Z2SoundID dCcD_GObjInf::getHitSeID(u8 seIdx, int useRebound) {
|
|
if (useRebound) {
|
|
if (seIdx == 23) {
|
|
return Z2SE_HIT_AL_ARROW_REBOUND;
|
|
}
|
|
if (seIdx == 7) {
|
|
return Z2SE_HIT_ARROW_REBOUND;
|
|
}
|
|
if (seIdx == 8) {
|
|
return Z2SE_HIT_HOOKSHOT_REBOUND;
|
|
}
|
|
}
|
|
return m_hitSeID[seIdx];
|
|
}
|
|
|
|
/* 8008460C-80084658 07EF4C 004C+00 5/0 0/0 0/0 .text ClrCoHit__12dCcD_GObjInfFv */
|
|
void dCcD_GObjInf::ClrCoHit() {
|
|
cCcD_ObjHitInf::ClrCoHit();
|
|
mGObjCo.ClrHit();
|
|
OffCoHitNoActor();
|
|
SubtractCoEffCounter();
|
|
}
|
|
|
|
/* 80084658-800846B0 07EF98 0058+00 0/0 5/5 74/74 .text ChkCoHit__12dCcD_GObjInfFv */
|
|
u32 dCcD_GObjInf::ChkCoHit() {
|
|
if (cCcD_ObjHitInf::ChkCoHit() == 0) {
|
|
return false;
|
|
} else if (ChkCoHitNoActor() == 0 && GetCoHitAc() == NULL) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
/* 800846B0-800846F0 07EFF0 0040+00 0/0 1/1 2/2 .text ResetCoHit__12dCcD_GObjInfFv */
|
|
void dCcD_GObjInf::ResetCoHit() {
|
|
ClrCoHit();
|
|
ClrCoEffCounter();
|
|
}
|
|
|
|
/* 800846F0-80084740 07F030 0050+00 0/0 0/0 36/36 .text GetCoHitObj__12dCcD_GObjInfFv */
|
|
cCcD_Obj* dCcD_GObjInf::GetCoHitObj() {
|
|
if (ChkCoHitNoActor() == 0 && GetCoHitAc() == NULL) {
|
|
return NULL;
|
|
} else {
|
|
return cCcD_ObjHitInf::GetCoHitObj();
|
|
}
|
|
}
|
|
|
|
/* 80084740-8008479C 07F080 005C+00 4/4 0/0 0/0 .text Set__12dCcD_GObjInfFRC15dCcD_SrcGObjInf */
|
|
void dCcD_GObjInf::Set(dCcD_SrcGObjInf const& src) {
|
|
cCcD_Obj::Set(src.mObj);
|
|
mGObjAt.Set(src.mGObjAt);
|
|
mGObjTg.Set(src.mGObjTg);
|
|
mGObjCo.Set(src.mGObjCo);
|
|
}
|
|
|
|
/* 8008479C-800847C8 07F0DC 002C+00 2/2 1/1 3/3 .text dCcD_GetGObjInf__FP8cCcD_Obj */
|
|
dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* p_obj) {
|
|
return (dCcD_GObjInf*)p_obj->GetGObjInf();
|
|
}
|
|
|
|
cCcD_ShapeAttr* dCcD_Pnt::GetShapeAttr() {
|
|
return this;
|
|
}
|
|
|
|
/* 800847D0-80084814 07F110 0044+00 0/0 1/1 20/20 .text Set__8dCcD_CpsFRC11dCcD_SrcCps */
|
|
void dCcD_Cps::Set(dCcD_SrcCps const& src) {
|
|
dCcD_GObjInf::Set(src.mObjInf);
|
|
cCcD_CpsAttr::Set(src.mCpsAttr);
|
|
}
|
|
|
|
/* 80084814-80084824 07F154 0010+00 1/0 0/0 0/0 .text GetShapeAttr__8dCcD_CpsFv */
|
|
cCcD_ShapeAttr* dCcD_Cps::GetShapeAttr() {
|
|
return this;
|
|
}
|
|
|
|
/* 80084824-80084854 07F164 0030+00 0/0 0/0 6/6 .text CalcAtVec__8dCcD_CpsFv */
|
|
void dCcD_Cps::CalcAtVec() {
|
|
cXyz* dest = GetAtVecP();
|
|
CalcVec(dest);
|
|
}
|
|
|
|
/* 80084854-80084884 07F194 0030+00 0/0 0/0 2/2 .text CalcTgVec__8dCcD_CpsFv */
|
|
void dCcD_Cps::CalcTgVec() {
|
|
cXyz* dest = GetTgVecP();
|
|
CalcVec(dest);
|
|
}
|
|
|
|
/* 80084884-800848A4 07F1C4 0020+00 0/0 0/0 5/5 .text Set__8dCcD_TriFRC11dCcD_SrcTri */
|
|
void dCcD_Tri::Set(dCcD_SrcTri const& src) {
|
|
dCcD_GObjInf::Set(src.mObjInf);
|
|
}
|
|
|
|
/* 800848A4-800848B4 07F1E4 0010+00 1/0 0/0 0/0 .text GetShapeAttr__8dCcD_TriFv */
|
|
cCcD_ShapeAttr* dCcD_Tri::GetShapeAttr() {
|
|
return this;
|
|
}
|
|
|
|
/* 800848B4-800848F8 07F1F4 0044+00 0/0 2/2 245/245 .text Set__8dCcD_CylFRC11dCcD_SrcCyl
|
|
*/
|
|
void dCcD_Cyl::Set(dCcD_SrcCyl const& src) {
|
|
dCcD_GObjInf::Set(src.mObjInf);
|
|
cCcD_CylAttr::Set(src.mCyl);
|
|
}
|
|
|
|
/* 800848F8-80084908 07F238 0010+00 1/0 0/0 0/0 .text GetShapeAttr__8dCcD_CylFv */
|
|
cCcD_ShapeAttr* dCcD_Cyl::GetShapeAttr() {
|
|
return this;
|
|
}
|
|
|
|
/* 80084908-80084954 07F248 004C+00 0/0 3/3 3/3 .text StartCAt__8dCcD_CylFR4cXyz */
|
|
void dCcD_Cyl::StartCAt(cXyz& pos) {
|
|
cXyz zero(cXyz::Zero);
|
|
SetAtVec(zero);
|
|
SetC(pos);
|
|
}
|
|
|
|
/* 80084954-800849C4 07F294 0070+00 0/0 3/3 4/4 .text MoveCAt__8dCcD_CylFR4cXyz */
|
|
void dCcD_Cyl::MoveCAt(cXyz& pos) {
|
|
const cXyz* center = GetCP();
|
|
cXyz diff = pos - *center;
|
|
SetAtVec(diff);
|
|
SetC(pos);
|
|
}
|
|
|
|
/* 800849C4-80084A34 07F304 0070+00 0/0 0/0 1/1 .text MoveCTg__8dCcD_CylFR4cXyz */
|
|
void dCcD_Cyl::MoveCTg(cXyz& pos) {
|
|
const cXyz* center = GetCP();
|
|
cXyz diff = pos - *center;
|
|
SetTgVec(diff);
|
|
SetC(pos);
|
|
}
|
|
|
|
/* 80084A34-80084A78 07F374 0044+00 0/0 2/2 196/196 .text Set__8dCcD_SphFRC11dCcD_SrcSph
|
|
*/
|
|
void dCcD_Sph::Set(dCcD_SrcSph const& src) {
|
|
dCcD_GObjInf::Set(src.mObjInf);
|
|
cCcD_SphAttr::Set(src.mSphAttr);
|
|
}
|
|
|
|
/* 80084A78-80084AC4 07F3B8 004C+00 0/0 3/3 25/25 .text StartCAt__8dCcD_SphFR4cXyz */
|
|
void dCcD_Sph::StartCAt(cXyz& pos) {
|
|
cXyz zero(cXyz::Zero);
|
|
SetAtVec(zero);
|
|
cM3dGSph::SetC(pos);
|
|
}
|
|
|
|
/* 80084AC4-80084B34 07F404 0070+00 0/0 2/2 23/23 .text MoveCAt__8dCcD_SphFR4cXyz */
|
|
void dCcD_Sph::MoveCAt(cXyz& pos) {
|
|
const cXyz* center = GetCP();
|
|
cXyz diff = pos - *center;
|
|
SetAtVec(diff);
|
|
SetC(pos);
|
|
}
|
|
|
|
cCcD_ShapeAttr* dCcD_Sph::GetShapeAttr() {
|
|
return this;
|
|
}
|