tp/libs/SSystem/SComponent/c_cc_s.cpp

427 lines
15 KiB
C++

//
// Generated By: dol2asm
// Translation Unit: c_cc_s
//
#include "SSystem/SComponent/c_cc_s.h"
#include "dol2asm.h"
#include "global.h"
//
// Forward References:
//
extern "C" void __ct__4cCcSFv();
extern "C" void Ct__4cCcSFv();
extern "C" void Dt__4cCcSFv();
extern "C" void GetWt__4cCcSCFUc();
extern "C" void Set__4cCcSFP8cCcD_Obj();
extern "C" void ClrCoHitInf__4cCcSFv();
extern "C" void ClrTgHitInf__4cCcSFv();
extern "C" void ClrAtHitInf__4cCcSFv();
extern "C" void ChkNoHitAtTg__4cCcSFP8cCcD_ObjP8cCcD_Obj();
extern "C" void ChkAtTg__4cCcSFv();
extern "C" void ChkNoHitCo__4cCcSFP8cCcD_ObjP8cCcD_Obj();
extern "C" void ChkCo__4cCcSFv();
extern "C" void CalcTgPlusDmg__4cCcSFP8cCcD_ObjP8cCcD_ObjP9cCcD_SttsP9cCcD_Stts();
extern "C" void SetAtTgCommonHitInf__4cCcSFP8cCcD_ObjP8cCcD_ObjP4cXyz();
extern "C" void SetCoCommonHitInf__4cCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf();
extern "C" void SetPosCorrect__4cCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf();
extern "C" void CalcArea__4cCcSFv();
extern "C" void Move__4cCcSFv();
extern "C" void DrawClear__4cCcSFv();
extern "C" void SetCoGCorrectProc__4cCcSFP8cCcD_ObjP8cCcD_Obj();
extern "C" void
SetCoGObjInf__4cCcSFbbP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts();
extern "C" void
SetAtTgGObjInf__4cCcSFbbP8cCcD_ObjP8cCcD_ObjP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GSttsP4cXyz();
extern "C" bool ChkNoHitGAtTg__4cCcSFPC12cCcD_GObjInfPC12cCcD_GObjInfP10cCcD_GSttsP10cCcD_GStts();
extern "C" bool
ChkAtTgHitAfterCross__4cCcSFbbPC12cCcD_GObjInfPC12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts();
extern "C" bool ChkNoHitGCo__4cCcSFP8cCcD_ObjP8cCcD_Obj();
extern "C" void MoveAfterCheck__4cCcSFv();
//
// External References:
//
extern "C" void __dt__4cXyzFv();
extern "C" void __dt__4cCcSFv();
extern "C" void Chk__15cCcD_DivideInfoCFRC15cCcD_DivideInfo();
extern "C" void SetArea__15cCcD_DivideAreaFRC8cM3dGAab();
extern "C" void CalcDivideInfo__15cCcD_DivideAreaFP15cCcD_DivideInfoRC8cM3dGAabUl();
extern "C" void PlusCcMove__9cCcD_SttsFfff();
extern "C" void ClrCcMove__9cCcD_SttsFv();
extern "C" void PlusDmg__9cCcD_SttsFi();
extern "C" void GetWeightF__9cCcD_SttsCFv();
extern "C" void GetAc__8cCcD_ObjFv();
extern "C" void SetHit__10cCcD_ObjAtFP8cCcD_Obj();
extern "C" void SetHit__10cCcD_ObjTgFP8cCcD_Obj();
extern "C" void SetHit__10cCcD_ObjCoFP8cCcD_Obj();
extern "C" void ClearForMinMax__8cM3dGAabFv();
extern "C" void SetMinMax__8cM3dGAabFRC8cM3dGAab();
extern "C" void CalcCenter__8cM3dGAabCFP4cXyz();
extern "C" void __register_global_object();
extern "C" void _savegpr_21();
extern "C" void _savegpr_22();
extern "C" void _savegpr_25();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_21();
extern "C" void _restgpr_22();
extern "C" void _restgpr_25();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__15cCcD_DivideArea[3];
extern "C" extern void* __vt__8cM3dGAab[3];
extern "C" extern u8 data_80451158[8];
//
// Declarations:
//
/* ############################################################################################## */
/* 80451158-80451160 0008+00 s=0 e=1 z=0 None .sbss None */
u8 data_80451158[8];
/* 80264A6C-80264A94 25F3AC 0028+00 0/0 1/1 0/0 .text __ct__4cCcSFv */
cCcS::cCcS() {}
/* 80264A94-80264B60 25F3D4 00CC+00 1/1 1/1 0/0 .text Ct__4cCcSFv */
void cCcS::Ct() {
for (cCcD_Obj** obj = this->mpObjAt; obj < this->mpObjAt + ARRAY_SIZE(this->mpObjAt); ++obj) {
*obj = NULL;
}
this->mObjAtCount = 0;
for (cCcD_Obj** obj = this->mpObjTg; obj < this->mpObjTg + ARRAY_SIZE(this->mpObjTg); ++obj) {
*obj = NULL;
}
this->mObjTgCount = 0;
for (cCcD_Obj** obj = this->mpObjCo; obj < this->mpObjCo + ARRAY_SIZE(this->mpObjCo); ++obj) {
*obj = NULL;
}
this->mObjCoCount = 0;
for (cCcD_Obj** obj = this->mpObj; obj < this->mpObj + ARRAY_SIZE(this->mpObj); ++obj) {
*obj = NULL;
}
this->mObjCount = 0;
}
/* 80264B60-80264B80 25F4A0 0020+00 0/0 1/1 0/0 .text Dt__4cCcSFv */
void cCcS::Dt() {
this->Ct();
}
/* 80264B80-80264BA8 25F4C0 0028+00 1/1 0/0 0/0 .text GetWt__4cCcSCFUc */
WeightType cCcS::GetWt(u8 param_0) const {
if (param_0 == 0xFF) {
return WeightType_0;
}
if (param_0 == 0xFE) {
return WeightType_1;
}
return WeightType_2;
}
/* 80264BA8-80264C5C 25F4E8 00B4+00 0/0 7/7 454/454 .text Set__4cCcSFP8cCcD_Obj */
void cCcS::Set(cCcD_Obj* obj) {
if (obj->GetObjAt().getSPrm() & 1) {
if (mObjAtCount < ARRAY_SIZE(mpObjAt)) {
mpObjAt[mObjAtCount] = obj;
mObjAtCount++;
}
}
if (obj->GetObjTg().getSPrm() & 1) {
if (mObjTgCount < ARRAY_SIZE(mpObjTg)) {
mpObjTg[mObjTgCount] = obj;
mObjTgCount++;
}
}
if (obj->GetObjCo().getSPrm() & 1) {
if (mObjCoCount < ARRAY_SIZE(mpObjCo)) {
mpObjCo[mObjCoCount] = obj;
mObjCoCount++;
}
}
if (mObjCount < ARRAY_SIZE(mpObj)) {
mpObj[mObjCount] = obj;
mObjCount++;
}
}
/* 80264C5C-80264CF0 25F59C 0094+00 1/1 0/0 0/0 .text ClrCoHitInf__4cCcSFv */
void cCcS::ClrCoHitInf() {
for (cCcD_Obj** obj = this->mpObjCo; obj < this->mpObjCo + this->mObjCoCount; ++obj) {
if (*obj != NULL) {
(*obj)->GetGObjInf()->ClrCoHit();
cCcD_Stts* stts = (*obj)->GetStts();
if (stts != NULL) {
stts->ClrCcMove();
}
}
}
}
/* 80264CF0-80264D90 25F630 00A0+00 1/1 0/0 0/0 .text ClrTgHitInf__4cCcSFv */
void cCcS::ClrTgHitInf() {
for (cCcD_Obj** obj = this->mpObjTg; obj < this->mpObjTg + this->mObjTgCount; ++obj) {
if (*obj != NULL) {
(*obj)->GetGObjInf()->ClrTgHit();
cCcD_Stts* stts = (*obj)->GetStts();
if (stts != NULL) {
stts->ClrTg();
}
}
}
}
/* 80264D90-80264E2C 25F6D0 009C+00 1/1 0/0 0/0 .text ClrAtHitInf__4cCcSFv */
void cCcS::ClrAtHitInf() {
for (cCcD_Obj** obj = this->mpObjAt; obj < this->mpObjAt + this->mObjAtCount; ++obj) {
if (*obj != NULL) {
(*obj)->GetGObjInf()->ClrAtHit();
cCcD_Stts* stts = (*obj)->GetStts();
if (stts != NULL) {
stts->ClrAt();
}
}
}
}
/* 80264E2C-80264F40 25F76C 0114+00 1/1 0/0 0/0 .text ChkNoHitAtTg__4cCcSFP8cCcD_ObjP8cCcD_Obj */
#ifdef NON_MATCHING
int cCcS::ChkNoHitAtTg(cCcD_Obj* obj1, cCcD_Obj* obj2) {
fopAc_ac_c* ac1 = obj1->GetAc();
fopAc_ac_c* ac2 = obj2->GetAc();
if (((ac1 != NULL && ac2 != NULL) && ac1 == ac2) ||
(obj1->GetObjAt().getSPrm() & 0x1E & obj2->GetObjTg().getSPrm() & 0x1E) == 0 ||
(obj1->GetObjAt().GetType() & obj2->GetObjTg().GetType()) == 0) {
return 1;
} else {
return this->ChkNoHitGAtTg(obj1->GetGObjInf(), obj2->GetGObjInf(),
obj1->GetStts()->GetGStts(), obj2->GetStts()->GetGStts());
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int cCcS::ChkNoHitAtTg(cCcD_Obj* param_0, cCcD_Obj* param_1) {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/ChkNoHitAtTg__4cCcSFP8cCcD_ObjP8cCcD_Obj.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80430CC0-80430CCC 05D9E0 000C+00 1/1 0/0 0/0 .bss @2492 */
static u8 lit_2492[12];
/* 80430CCC-80430CD8 05D9EC 000C+00 1/1 0/0 0/0 .bss cross$2491 */
static u8 cross[12];
/* 80455038-8045503C 003638 0004+00 2/2 0/0 0/0 .sdata2 @2532 */
SECTION_SDATA2 static u8 lit_2532[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80264F40-8026515C 25F880 021C+00 1/1 0/0 0/0 .text ChkAtTg__4cCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cCcS::ChkAtTg() {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/ChkAtTg__4cCcSFv.s"
}
#pragma pop
/* 8026515C-80265230 25FA9C 00D4+00 1/1 0/0 0/0 .text ChkNoHitCo__4cCcSFP8cCcD_ObjP8cCcD_Obj */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cCcS::ChkNoHitCo(cCcD_Obj* param_0, cCcD_Obj* param_1) {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/ChkNoHitCo__4cCcSFP8cCcD_ObjP8cCcD_Obj.s"
}
#pragma pop
/* 80265230-802653A0 25FB70 0170+00 1/1 0/0 0/0 .text ChkCo__4cCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cCcS::ChkCo() {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/ChkCo__4cCcSFv.s"
}
#pragma pop
/* 802653A0-802653C8 25FCE0 0028+00 1/0 0/0 0/0 .text
* CalcTgPlusDmg__4cCcSFP8cCcD_ObjP8cCcD_ObjP9cCcD_SttsP9cCcD_Stts */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cCcS::CalcTgPlusDmg(cCcD_Obj* param_0, cCcD_Obj* param_1, cCcD_Stts* param_2,
cCcD_Stts* param_3) {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/CalcTgPlusDmg__4cCcSFP8cCcD_ObjP8cCcD_ObjP9cCcD_SttsP9cCcD_Stts.s"
}
#pragma pop
/* 802653C8-802655E4 25FD08 021C+00 1/1 0/0 0/0 .text
* SetAtTgCommonHitInf__4cCcSFP8cCcD_ObjP8cCcD_ObjP4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cCcS::SetAtTgCommonHitInf(cCcD_Obj* param_0, cCcD_Obj* param_1, cXyz* param_2) {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/SetAtTgCommonHitInf__4cCcSFP8cCcD_ObjP8cCcD_ObjP4cXyz.s"
}
#pragma pop
/* 802655E4-80265750 25FF24 016C+00 1/1 0/0 0/0 .text
* SetCoCommonHitInf__4cCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cCcS::SetCoCommonHitInf(cCcD_Obj* param_0, cXyz* param_1, cCcD_Obj* param_2, cXyz* param_3,
f32 param_4) {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/SetCoCommonHitInf__4cCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf.s"
}
#pragma pop
/* ############################################################################################## */
/* 8045503C-80455040 00363C 0004+00 1/1 0/0 0/0 .sdata2 @2759 */
SECTION_SDATA2 static f32 lit_2759 = 1.0f / 125.0f;
/* 80455040-80455044 003640 0004+00 1/1 0/0 0/0 .sdata2 @2760 */
SECTION_SDATA2 static f32 lit_2760 = 1.0f;
/* 80455044-80455048 003644 0004+00 1/1 0/0 0/0 .sdata2 @2761 */
SECTION_SDATA2 static f32 lit_2761 = 2.0f;
/* 80455048-80455050 003648 0004+04 1/1 0/1 0/0 .sdata2 @2762 */
SECTION_SDATA2 static f32 lit_2762[1 + 1 /* padding */] = {
0.5f,
/* padding */
0.0f,
};
/* 80455050-80455058 003650 0008+00 1/1 0/0 0/0 .sdata2 @2763 */
SECTION_SDATA2 static f64 lit_2763 = 0.5;
/* 80455058-80455060 003658 0008+00 1/1 0/0 0/0 .sdata2 @2764 */
SECTION_SDATA2 static f64 lit_2764 = 3.0;
/* 80455060-80455068 003660 0008+00 1/1 0/0 0/0 .sdata2 @2765 */
SECTION_SDATA2 static u8 lit_2765[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80455068-80455070 003668 0004+04 1/1 0/0 0/0 .sdata2 @2766 */
SECTION_SDATA2 static f32 lit_2766[1 + 1 /* padding */] = {
-1.0f,
/* padding */
0.0f,
};
/* 80265750-80265BB4 260090 0464+00 1/0 0/0 0/0 .text
* SetPosCorrect__4cCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cCcS::SetPosCorrect(cCcD_Obj* param_0, cXyz* param_1, cCcD_Obj* param_2, cXyz* param_3,
f32 param_4) {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/SetPosCorrect__4cCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf.s"
}
#pragma pop
/* 80265BB4-80265CCC 2604F4 0118+00 1/1 0/0 0/0 .text CalcArea__4cCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cCcS::CalcArea() {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/CalcArea__4cCcSFv.s"
}
#pragma pop
/* 80265CCC-80265D30 26060C 0064+00 0/0 1/1 0/0 .text Move__4cCcSFv */
void cCcS::Move() {
this->CalcArea();
this->ChkAtTg();
this->ChkCo();
this->MoveAfterCheck();
mObjAtCount = 0;
mObjTgCount = 0;
mObjCoCount = 0;
mObjCount = 0;
}
/* 80265D30-80265DF4 260670 00C4+00 0/0 1/1 0/0 .text DrawClear__4cCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cCcS::DrawClear() {
nofralloc
#include "asm/SSystem/SComponent/c_cc_s/DrawClear__4cCcSFv.s"
}
#pragma pop
/* 80265DF4-80265DF8 260734 0004+00 1/0 1/0 0/0 .text
* SetCoGCorrectProc__4cCcSFP8cCcD_ObjP8cCcD_Obj */
void cCcS::SetCoGCorrectProc(cCcD_Obj* param_0, cCcD_Obj* param_1) {
/* empty function */
}
/* 80265DF8-80265DFC 260738 0004+00 1/0 0/0 0/0 .text
* SetCoGObjInf__4cCcSFbbP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts
*/
void cCcS::SetCoGObjInf(bool param_0, bool param_1, cCcD_GObjInf* param_2, cCcD_GObjInf* param_3,
cCcD_Stts* param_4, cCcD_Stts* param_5, cCcD_GStts* param_6,
cCcD_GStts* param_7) {
/* empty function */
}
/* 80265DFC-80265E00 26073C 0004+00 1/0 0/0 0/0 .text
* SetAtTgGObjInf__4cCcSFbbP8cCcD_ObjP8cCcD_ObjP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GSttsP4cXyz
*/
void cCcS::SetAtTgGObjInf(bool param_0, bool param_1, cCcD_Obj* param_2, cCcD_Obj* param_3,
cCcD_GObjInf* param_4, cCcD_GObjInf* param_5, cCcD_Stts* param_6,
cCcD_Stts* param_7, cCcD_GStts* param_8, cCcD_GStts* param_9,
cXyz* param_10) {
/* empty function */
}
/* 80265E00-80265E08 260740 0008+00 1/0 0/0 0/0 .text
* ChkNoHitGAtTg__4cCcSFPC12cCcD_GObjInfPC12cCcD_GObjInfP10cCcD_GSttsP10cCcD_GStts */
bool cCcS::ChkNoHitGAtTg(cCcD_GObjInf const* param_0, cCcD_GObjInf const* param_1,
cCcD_GStts* param_2, cCcD_GStts* param_3) {
return false;
}
/* 80265E08-80265E10 260748 0008+00 1/0 0/0 0/0 .text
* ChkAtTgHitAfterCross__4cCcSFbbPC12cCcD_GObjInfPC12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts
*/
bool cCcS::ChkAtTgHitAfterCross(bool param_0, bool param_1, cCcD_GObjInf const* param_2,
cCcD_GObjInf const* param_3, cCcD_Stts* param_4, cCcD_Stts* param_5,
cCcD_GStts* param_6, cCcD_GStts* param_7) {
return false;
}
/* 80265E10-80265E18 260750 0008+00 1/0 0/0 0/0 .text ChkNoHitGCo__4cCcSFP8cCcD_ObjP8cCcD_Obj */
bool cCcS::ChkNoHitGCo(cCcD_Obj* param_0, cCcD_Obj* param_1) {
return false;
}
/* 80265E18-80265E1C 260758 0004+00 1/0 0/0 0/0 .text MoveAfterCheck__4cCcSFv */
void cCcS::MoveAfterCheck() {
/* empty function */
}