Files
dusklight/src/d/d_bg_w_kcol.cpp
T
2024-10-31 17:36:11 -07:00

846 lines
29 KiB
C++

//
// Generated By: dol2asm
// Translation Unit: d/d_bg_w_kcol
//
#include "d/d_bg_w_kcol.h"
#include "d/d_com_inf_game.h"
#include "dol2asm.h"
#include "d/actor/d_a_horse.h"
//
// Forward References:
//
extern "C" void __ct__8dBgWKColFv();
extern "C" void __dt__8dBgWKColFv();
extern "C" void initKCollision__8dBgWKColFPv();
extern "C" void create__8dBgWKColFPvPv();
extern "C" void getTriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec();
extern "C" void ChkNotReady__8dBgWKColCFv();
extern "C" bool ChkLock__8dBgWKColCFv();
extern "C" bool ChkMoveBg__8dBgWKColCFv();
extern "C" bool ChkMoveFlag__8dBgWKColCFv();
extern "C" void GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo();
extern "C" void GetTriPla__8dBgWKColCFi();
extern "C" void GetTriPnt__8dBgWKColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz();
extern "C" void GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec();
extern "C" void GetTriPnt__8dBgWKColCFPC12KC_PrismDataP3VecP3VecP3Vec();
extern "C" void GetBnd__8dBgWKColCFv();
extern "C" void GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo();
extern "C" void OffMoveFlag__8dBgWKColFv();
extern "C" void getPolyCode__8dBgWKColCFiP5dBgPc();
extern "C" void chkPolyThrough__8dBgWKColCFP5dBgPcP16cBgS_PolyPassChkP15cBgS_GrpPassChkR4cXyz();
extern "C" void LineCheck__8dBgWKColFP11cBgS_LinChk();
extern "C" void GroundCross__8dBgWKColFP11cBgS_GndChk();
extern "C" void ShdwDraw__8dBgWKColFP13cBgS_ShdwDraw();
extern "C" void ChkShdwDrawThrough__8dBgWKColFP5dBgPc();
extern "C" void CaptPoly__8dBgWKColFR13dBgS_CaptPoly();
extern "C" void WallCorrectSort__8dBgWKColFP9dBgS_Acch();
extern "C" void WallCorrect__8dBgWKColFP9dBgS_Acch();
extern "C" void RoofChk__8dBgWKColFP12dBgS_RoofChk();
extern "C" void SplGrpChk__8dBgWKColFP14dBgS_SplGrpChk();
extern "C" void SphChk__8dBgWKColFP11dBgS_SphChkPv();
extern "C" void GetTopUnder__8dBgWKColCFPfPf();
extern "C" void GetGrpRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo();
extern "C" void GetExitId__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetPolyColor__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetHorseNoEntry__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetSpecialCode__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetSpecialCode__8dBgWKColFi();
extern "C" void GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetMonkeyBarsCode__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetPolyObjThrough__8dBgWKColFi();
extern "C" void GetPolyCamThrough__8dBgWKColFi();
extern "C" void GetPolyLinkThrough__8dBgWKColFi();
extern "C" void GetPolyArrowThrough__8dBgWKColFi();
extern "C" void GetPolyHSStick__8dBgWKColFi();
extern "C" void GetPolyBoomerangThrough__8dBgWKColFi();
extern "C" void GetPolyRopeThrough__8dBgWKColFi();
extern "C" void GetPolyBombThrough__8dBgWKColFi();
extern "C" void GetUnderwaterRoofCode__8dBgWKColFi();
extern "C" void GetShdwThrough__8dBgWKColFi();
extern "C" void GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetWallCode__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetGroundCode__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetIronBallThrough__8dBgWKColFi();
extern "C" void GetAttackThrough__8dBgWKColFi();
extern "C" void GetCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetRoomCamId__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetRoomPathId__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetRoomPathPntNo__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetPolyGrpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo();
extern "C" void CrrPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz();
extern "C" void TransPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz();
extern "C" void MatrixCrrPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz();
//
// External References:
//
extern "C" void setCode__5dBgPcFR5sBgPc();
extern "C" void __ct__6dBgPlcFv();
extern "C" void __dt__6dBgPlcFv();
extern "C" void setBase__6dBgPlcFPv();
extern "C" void getCode__6dBgPlcCFiPP5sBgPc();
extern "C" void getGrpCode__6dBgPlcCFi();
extern "C" void SetOldShapeAngleY__9dBgW_BaseFs();
extern "C" void GetSpeedY__9dBgS_AcchFv();
extern "C" void GetWallAddY__9dBgS_AcchFR3Vec();
extern "C" void SetWallPolyIndex__9dBgS_AcchFii();
extern "C" void CalcMovePosWork__9dBgS_AcchFv();
extern "C" void ChkNoHorse__16dBgS_PolyPassChkFv();
extern "C" void __ct__9dBgW_BaseFv();
extern "C" void __dt__9dBgW_BaseFv();
extern "C" void ClrDBgWBase__9dBgW_BaseFv();
extern "C" bool ChkMemoryError__9dBgW_BaseFv();
extern "C" void CallRideCallBack__9dBgW_BaseFP10fopAc_ac_cP10fopAc_ac_c();
extern "C" void CallArrowStickCallBack__9dBgW_BaseFP10fopAc_ac_cP10fopAc_ac_cR4cXyz();
extern "C" void cM_atan2s__Fff();
extern "C" void SetPolyIndex__13cBgS_PolyInfoFi();
extern "C" void cBgW_CheckBGround__Ff();
extern "C" void cBgW_CheckBRoof__Ff();
extern "C" void cBgW_CheckBWall__Ff();
extern "C" void cM2d_CrossCirLin__FR8cM2dGCirffffPfPf();
extern "C" void cM3d_Len2dSq__Fffff();
extern "C" void cM3d_Len2dSqPntAndSegLine__FffffffPfPfPf();
extern "C" void cM3d_Cross_SphTri__FPC8cM3dGSphPC8cM3dGTriP3Vec();
extern "C" void calcMinMax__8cM3dGCylFP4cXyzP4cXyz();
extern "C" void SetupNP__8cM3dGPlaFRC3VecRC3Vec();
extern "C" void GetMinMaxCube__8cM3dGSphCFR4cXyzR4cXyz();
extern "C" void set__8cM3dGTriFPC3VecPC3VecPC3VecPC3Vec();
extern "C" void __dl__FPv();
extern "C" void __ptmf_scall();
extern "C" void __cvt_fp2unsigned();
extern "C" void _savegpr_14();
extern "C" void _savegpr_19();
extern "C" void _savegpr_25();
extern "C" void _savegpr_29();
extern "C" void _restgpr_14();
extern "C" void _restgpr_19();
extern "C" void _restgpr_25();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8cM3dGPla[3];
extern "C" extern void* __vt__8cM3dGAab[3];
extern "C" extern void* __vt__8cM3dGTri[3];
extern "C" u8 sincosTable___5JMath[65536];
//
// Declarations:
//
/* 8007E6F4-8007E74C 079034 0058+00 0/0 0/0 1/1 .text __ct__8dBgWKColFv */
dBgWKCol::dBgWKCol() {
m_pkc_head = NULL;
}
/* 8007E74C-8007E7D0 07908C 0084+00 1/0 0/0 0/0 .text __dt__8dBgWKColFv */
dBgWKCol::~dBgWKCol() {}
/* 8007E7D0-8007E804 079110 0034+00 0/0 1/1 0/0 .text initKCollision__8dBgWKColFPv */
void* dBgWKCol::initKCollision(void* i_kclData) {
KCol_Header* header_p = (KCol_Header*)i_kclData;
header_p->pos_data_offset = (u32)header_p + header_p->pos_data_offset;
header_p->nrm_data_offset = (u32)header_p + header_p->nrm_data_offset;
header_p->prism_data_offset = (u32)header_p + header_p->prism_data_offset;
header_p->block_data_offset = (u32)header_p + header_p->block_data_offset;
return i_kclData;
}
/* 8007E804-8007E850 079144 004C+00 0/0 0/0 1/1 .text create__8dBgWKColFPvPv */
void dBgWKCol::create(void* pprism, void* plc) {
ClrDBgWBase();
m_pkc_head = (pkcdata*)pprism;
m_code.setBase(plc);
}
/* 8007E850-8007E86C 079190 001C+00 1/1 0/0 0/0 .text getTriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec
*/
void dBgWKCol::getTriNrm(KC_PrismData* pkc, Vec** nrm) const {
*nrm = &m_pkc_head->field_0x4[pkc->field_0x6];
}
/* 8007E86C-8007E87C 0791AC 0010+00 1/0 0/0 0/0 .text ChkNotReady__8dBgWKColCFv */
bool dBgWKCol::ChkNotReady() const {
return m_pkc_head == NULL;
}
/* 8007E87C-8007E884 0791BC 0008+00 1/0 0/0 0/0 .text ChkLock__8dBgWKColCFv */
bool dBgWKCol::ChkLock() const {
return false;
}
/* 8007E884-8007E88C 0791C4 0008+00 1/0 0/0 0/0 .text ChkMoveBg__8dBgWKColCFv */
bool dBgWKCol::ChkMoveBg() const {
return false;
}
/* 8007E88C-8007E894 0791CC 0008+00 1/0 0/0 0/0 .text ChkMoveFlag__8dBgWKColCFv */
u32 dBgWKCol::ChkMoveFlag() const {
return 0;
}
/* 8007E894-8007E8C0 0791D4 002C+00 1/0 0/0 0/0 .text GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo */
cM3dGPla dBgWKCol::GetTriPla(cBgS_PolyInfo const& poly) const {
int poly_index = poly.GetPolyIndex();
return GetTriPla(poly_index);
}
/* 8007E8C0-8007E980 079200 00C0+00 3/3 0/0 0/0 .text GetTriPla__8dBgWKColCFi */
cM3dGPla dBgWKCol::GetTriPla(int poly_index) const {
KC_PrismData* pd = getPrismData(poly_index);
Vec* tri_nrm;
getTriNrm(pd, &tri_nrm);
Vec* tri_pos;
getTri1Pos(pd, &tri_pos);
VECDotProduct(tri_nrm, tri_pos);
cM3dGPla plane;
plane.SetupNP(*tri_nrm, *tri_pos);
return plane;
}
/* 8007E980-8007E9A4 0792C0 0024+00 1/0 0/0 0/0 .text
* GetTriPnt__8dBgWKColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz */
bool dBgWKCol::GetTriPnt(cBgS_PolyInfo const& poly, cXyz* param_1, cXyz* param_2,
cXyz* param_3) const {
int poly_index = poly.GetPolyIndex();
return GetTriPnt(poly_index, param_1, param_2, param_3);
}
/* 8007E9A4-8007E9D4 0792E4 0030+00 3/3 0/0 0/0 .text GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec */
bool dBgWKCol::GetTriPnt(int poly_index, Vec* param_1, Vec* param_2, Vec* param_3) const {
KC_PrismData* pd = getPrismData(poly_index);
return GetTriPnt(pd, param_1, param_2, param_3);
}
/* 8007E9D4-8007EB28 079314 0154+00 3/3 0/0 0/0 .text
* GetTriPnt__8dBgWKColCFPC12KC_PrismDataP3VecP3VecP3Vec */
bool dBgWKCol::GetTriPnt(KC_PrismData const* param_1, Vec* param_2, Vec* param_3,
Vec* param_4) const {
pkcdata* pkcData = m_pkc_head;
*param_2 = pkcData->field_0x0[param_1->field_0x4];
Vec* vec6 = &pkcData->field_0x4[param_1->field_0x6];
Vec* veca = &pkcData->field_0x4[param_1->field_0xa];
Vec* vecc = &pkcData->field_0x4[param_1->field_0xc];
Vec auStack_64;
VECCrossProduct(vec6, &pkcData->field_0x4[param_1->field_0x8], &auStack_64);
Vec auStack_70;
VECCrossProduct(veca, vec6, &auStack_70);
f32 dVar11 = VECDotProduct(&auStack_64,vecc);
if (cM3d_IsZero(dVar11)) {
return false;
}
dVar11 = param_1->field_0x0 / dVar11;
VECScale(&auStack_64, &auStack_64, dVar11);
VECAdd(&auStack_64, param_2, param_4);
dVar11 = VECDotProduct(&auStack_70,vecc);
if (cM3d_IsZero(dVar11)) {
return false;
}
dVar11 = param_1->field_0x0 / dVar11;
VECScale(&auStack_70, &auStack_70, dVar11);
VECAdd(&auStack_70, param_2, param_3);
return true;
}
/* 8007EB28-8007EB30 079468 0008+00 1/0 0/0 0/0 .text GetBnd__8dBgWKColCFv */
cM3dGAab* dBgWKCol::GetBnd() const {
return (cM3dGAab*)&m_bnd;
}
/* 8007EB30-8007EB6C 079470 003C+00 1/0 0/0 0/0 .text GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo */
u32 dBgWKCol::GetGrpInf(cBgS_PolyInfo const& poly) const {
u16 poly_index = poly.GetPolyIndex();
KC_PrismData* pd = getPrismData(poly_index);
return m_code.getGrpCode(pd->field_0xe);
}
/* 8007EB6C-8007EB70 0794AC 0004+00 1/0 0/0 0/0 .text OffMoveFlag__8dBgWKColFv */
void dBgWKCol::OffMoveFlag() {}
/* 8007EB70-8007EBC4 0794B0 0054+00 39/39 0/0 0/0 .text getPolyCode__8dBgWKColCFiP5dBgPc
*/
void dBgWKCol::getPolyCode(int poly_index, dBgPc* pbgpc) const {
KC_PrismData* pd = getPrismData(poly_index);
sBgPc* code;
m_code.getCode(pd->field_0xe, &code);
pbgpc->setCode(*code);
}
/* 8007EBC4-8007EE34 079504 0270+00 8/8 0/0 0/0 .text
* chkPolyThrough__8dBgWKColCFP5dBgPcP16cBgS_PolyPassChkP15cBgS_GrpPassChkR4cXyz */
bool dBgWKCol::chkPolyThrough(dBgPc* ppoly, cBgS_PolyPassChk* param_2,
cBgS_GrpPassChk* param_3, cXyz& param_4) const {
JUT_ASSERT(279, ppoly != 0);
if (param_3 != NULL) {
if (ppoly->maskNrm() == 0) {
if (((dBgS_GrpPassChk*)param_3)->MaskNormalGrp() == 0) {
return true;
}
} else if (ppoly->getWtr() != 0 &&
(((dBgS_GrpPassChk*)param_3)->MaskWaterGrp() == 0))
{
return true;
}
}
if (param_2 != NULL) {
dBgS_PolyPassChk* polypass = (dBgS_PolyPassChk*)param_2;
if (polypass->ChkObj() && ppoly->getObjThrough() != 0) {
return true;
}
if (polypass->ChkCam() && ppoly->getCamThrough() != 0) {
return true;
}
if ((polypass->ChkLink() && ppoly->getLinkThrough() != 0) ||
(polypass->ChkHorse() && ppoly->getLinkThrough() != 0))
{
return true;
}
if (polypass->ChkArrow() && ppoly->getArrowThrough() != 0) {
return true;
}
if (polypass->ChkBomb() && ppoly->getBombThrough() != 0) {
return true;
}
if (polypass->ChkBoomerang() && ppoly->getBoomerangThrough() != 0) {
return true;
}
if (polypass->ChkRope() && ppoly->getRopeThrough() != 0) {
return true;
}
if (polypass->ChkUnderwaterRoof() && ppoly->getUnderwaterRoof() != 0) {
return true;
}
if (ppoly->getWallCode() == 8 && polypass->ChkNoHorse())
{
return true;
}
if (ppoly->getWallCode() == 9) {
if (polypass->ChkNoHorse()) {
return true;
}
if (polypass->ChkHorse() && dComIfGp_getHorseActor() != NULL) {
if (!dComIfGp_getHorseActor()->checkSpecialWallHit(param_4)) {
return true;
}
}
}
if (polypass->ChkStatue() && ppoly->getSpl() == 7) {
return true;
}
if (polypass->ChkIronBall() && ppoly->getIronBallThrough() != 0) {
return true;
}
}
return false;
}
/* ############################################################################################## */
/* 80452718-8045271C 000D18 0004+00 5/5 0/0 0/0 .sdata2 @4187 */
SECTION_SDATA2 static u8 lit_4187[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 8045271C-80452720 000D1C 0004+00 1/1 0/0 0/0 .sdata2 @4188 */
SECTION_SDATA2 static f32 lit_4188 = 500.0f;
/* 80452720-80452724 000D20 0004+00 6/6 0/0 0/0 .sdata2 @4189 */
SECTION_SDATA2 static f32 lit_4189 = 1.0f;
/* 80452724-80452728 000D24 0004+00 4/4 0/0 0/0 .sdata2 @4190 */
SECTION_SDATA2 static f32 lit_4190 = 0.007499999832361937f;
/* 80452728-8045272C 000D28 0004+00 4/4 0/0 0/0 .sdata2 @4191 */
SECTION_SDATA2 static f32 lit_4191 = -0.007499999832361937f;
/* 8007EE34-8007F628 079774 07F4+00 1/0 0/0 0/0 .text LineCheck__8dBgWKColFP11cBgS_LinChk
*/
bool dBgWKCol::LineCheck(cBgS_LinChk* param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 8045272C-80452730 000D2C 0004+00 1/1 0/0 0/0 .sdata2 @4293 */
SECTION_SDATA2 static f32 lit_4293 = 0.014000000432133675f;
/* 8007F628-8007F9A4 079F68 037C+00 1/0 0/0 0/0 .text GroundCross__8dBgWKColFP11cBgS_GndChk */
#ifdef NONMATCHING
bool dBgWKCol::GroundCross(cBgS_GndChk* i_chk) {
cXyz* point_p = (cXyz*)&i_chk->GetPointP();
cXyz sp20;
VECSubtract(point_p, &m_pkc_head->m_area_min_pos, &sp20);
u32 temp_r3 = (u32)sp20.x;
if (temp_r3 < 0) {
return 0;
}
if (temp_r3 > ~m_pkc_head->field_0x20) {
return 0;
}
u32 temp_r3_2 = (u32)sp20.z;
if (temp_r3_2 < 0) {
return 0;
}
if (temp_r3_2 > ~m_pkc_head->field_0x28) {
return 0;
}
u32 var_r25 = (u32)sp20.y;
if (var_r25 < 0) {
return 0;
}
if (var_r25 > ~m_pkc_head->field_0x24) {
var_r25 = (u32)~m_pkc_head->field_0x24;
}
bool var_r24 = 0;
int var_r23 = 0;
cXyz sp14;
while (var_r25 >= var_r23) {
u32 var_r22 = m_pkc_head->field_0x2c;
u32 var_r4 = ((temp_r3 >> var_r22) | (((temp_r3_2 >> var_r22) << m_pkc_head->field_0x34) | ((var_r25 >> var_r22) << m_pkc_head->field_0x30))) * 4;
KC_PrismData* data_p = &m_pkc_head->m_block_data[var_r4];
for (; data_p->field_0x0[0] >= 0; data_p++) {
var_r22--;
var_r4 = ((((((var_r25 >> var_r22) * 2) & 2 & ~4) | (((temp_r3_2 >> var_r22) << 2) & 4)) & ~1) | ((temp_r3 >> var_r22) & 1)) * 4;
}
u16* var_r21 = data_p->field_0x0;
while (var_r21[0]++ != 0) {
KC_PrismData* temp_r27 = &m_pkc_head->m_prism_data[var_r21[0]];
Vec* temp_r20 = &m_pkc_head->field_0x4[temp_r27->field_0x6];
if (temp_r20->y >= 0.014000000432133675f && !cM3d_IsZero(temp_r20->y) && (cBgW_CheckBWall(temp_r20->y) || i_chk->GetWallPrecheck())) {
Vec* temp_r19_2 = &m_pkc_head->field_0x0[temp_r27->field_0x4];
sp14.x = i_chk->m_pos.x - temp_r19_2->x;
sp14.z = i_chk->m_pos.z - temp_r19_2->z;
sp14.y = -(sp14.x * temp_r20->x + sp14.z * temp_r20->z) / temp_r19_2->y;
if (VECDotProduct(&sp14, &m_pkc_head->field_0x4[temp_r27->field_0x8]) <= 0.0075f &&
VECDotProduct(&sp14, &m_pkc_head->field_0x4[temp_r27->field_0xa]) <= 0.0075f &&
VECDotProduct(&sp14, &m_pkc_head->field_0x4[temp_r27->field_0xc]) <= 0.0075f)
{
dBgPc sp64;
getPolyCode(var_r21[0], &sp64);
cXyz sp40(*temp_r20);
if (!chkPolyThrough(&sp64, i_chk->GetPolyPassChk(), i_chk->GetGrpPassChk(), sp40)) {
f32 tmp_height_kcw = sp14.y + temp_r19_2->y;
f32 now_y = i_chk->GetNowY();
if (now_y < tmp_height_kcw && tmp_height_kcw < i_chk->m_pos.y) {
i_chk->SetPolyIndex(var_r21[0]);
i_chk->SetNowY(tmp_height_kcw);
var_r24 = 1;
var_r23 = (u32)(tmp_height_kcw - m_pkc_head->m_area_min_pos.y);
}
}
}
}
}
var_r25 = (var_r25 & ~((1 << var_r22) - 1)) - 1;
}
return var_r24;
}
#else
bool dBgWKCol::GroundCross(cBgS_GndChk* param_0) {
// NONMATCHING
}
#endif
/* 8007F9A4-8007FF00 07A2E4 055C+00 1/0 0/0 0/0 .text ShdwDraw__8dBgWKColFP13cBgS_ShdwDraw */
void dBgWKCol::ShdwDraw(cBgS_ShdwDraw* param_0) {
// NONMATCHING
}
/* 8007FF00-8007FF1C 07A840 001C+00 1/1 0/0 0/0 .text ChkShdwDrawThrough__8dBgWKColFP5dBgPc */
bool dBgWKCol::ChkShdwDrawThrough(dBgPc* pbgpc) {
if (pbgpc->getShdwThrough()) {
return true;
}
return pbgpc->getArrowThrough();
}
/* ############################################################################################## */
/* 80424F70-80424F94 051C90 0024+00 1/1 0/0 0/0 .bss vtx_tbl$4582 */
static Vec vtx_tbl_4582[3];
/* 8007FF1C-80080330 07A85C 0414+00 1/0 0/0 0/0 .text CaptPoly__8dBgWKColFR13dBgS_CaptPoly */
void dBgWKCol::CaptPoly(dBgS_CaptPoly& param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80424F94-80425384 051CB4 03F0+00 1/1 0/0 0/0 .bss l_wcsbuf */
static u8 l_wcsbuf[1008];
/* 80452730-80452738 000D30 0008+00 2/2 0/0 0/0 .sdata2 @5298 */
SECTION_SDATA2 static f64 lit_5298 = 0.5;
/* 80452738-80452740 000D38 0008+00 2/2 0/0 0/0 .sdata2 @5299 */
SECTION_SDATA2 static f64 lit_5299 = 3.0;
/* 80452740-80452748 000D40 0008+00 2/2 0/0 0/0 .sdata2 @5300 */
SECTION_SDATA2 static u8 lit_5300[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80452748-80452750 000D48 0004+04 2/2 0/0 0/0 .sdata2 @5301 */
SECTION_SDATA2 static f32 lit_5301[1 + 1 /* padding */] = {
1.0f / 125.0f,
/* padding */
0.0f,
};
/* 80080330-800811A0 07AC70 0E70+00 1/0 0/0 0/0 .text WallCorrectSort__8dBgWKColFP9dBgS_Acch */
bool dBgWKCol::WallCorrectSort(dBgS_Acch* param_0) {
// NONMATCHING
}
/* 800811A0-80081E18 07BAE0 0C78+00 1/0 0/0 0/0 .text WallCorrect__8dBgWKColFP9dBgS_Acch
*/
bool dBgWKCol::WallCorrect(dBgS_Acch* param_0) {
// NONMATCHING
}
/* 80081E18-80082184 07C758 036C+00 1/0 0/0 0/0 .text RoofChk__8dBgWKColFP12dBgS_RoofChk
*/
bool dBgWKCol::RoofChk(dBgS_RoofChk* param_0) {
// NONMATCHING
}
/* 80082184-800824EC 07CAC4 0368+00 1/0 0/0 0/0 .text SplGrpChk__8dBgWKColFP14dBgS_SplGrpChk */
bool dBgWKCol::SplGrpChk(dBgS_SplGrpChk* param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80425384-804253A8 0520A4 0024+00 1/1 0/0 0/0 .bss vtx_tbl$5950 */
static Vec vtx_tbl_5950[3];
/* 800824EC-800829AC 07CE2C 04C0+00 1/0 0/0 0/0 .text SphChk__8dBgWKColFP11dBgS_SphChkPv
*/
bool dBgWKCol::SphChk(dBgS_SphChk* param_0, void* param_1) {
// NONMATCHING
}
/* 800829AC-800829F0 07D2EC 0044+00 1/0 0/0 0/0 .text GetTopUnder__8dBgWKColCFPfPf */
void dBgWKCol::GetTopUnder(f32* param_0, f32* param_1) const {
*param_1 = m_pkc_head->m_area_min_pos.y;
*param_0 = *param_1 + (f32)~m_pkc_head->field_0x24;
}
/* 800829F0-80082A20 07D330 0030+00 1/0 0/0 0/0 .text
* GetGrpRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo */
s32 dBgWKCol::GetGrpRoomIndex(cBgS_PolyInfo const& poly) const {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getRoom();
}
/* 80082A20-80082A50 07D360 0030+00 1/0 0/0 0/0 .text GetExitId__8dBgWKColFRC13cBgS_PolyInfo */
s32 dBgWKCol::GetExitId(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getExit();
}
/* 80082A50-80082A80 07D390 0030+00 1/0 0/0 0/0 .text GetPolyColor__8dBgWKColFRC13cBgS_PolyInfo */
s32 dBgWKCol::GetPolyColor(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getPolyCol();
}
/* 80082A80-80082AB0 07D3C0 0030+00 1/0 0/0 0/0 .text GetHorseNoEntry__8dBgWKColFRC13cBgS_PolyInfo
*/
BOOL dBgWKCol::GetHorseNoEntry(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getHorseNoEntry();
}
/* 80082AB0-80082AE0 07D3F0 0030+00 1/0 0/0 0/0 .text GetSpecialCode__8dBgWKColFRC13cBgS_PolyInfo
*/
int dBgWKCol::GetSpecialCode(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
return GetSpecialCode(poly_index);
}
/* 80082AE0-80082B0C 07D420 002C+00 1/0 0/0 0/0 .text GetSpecialCode__8dBgWKColFi */
int dBgWKCol::GetSpecialCode(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getSpl();
}
/* 80082B0C-80082B3C 07D44C 0030+00 1/0 0/0 0/0 .text GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo
*/
int dBgWKCol::GetMagnetCode(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getMagnet();
}
/* 80082B3C-80082B6C 07D47C 0030+00 1/0 0/0 0/0 .text
* GetMonkeyBarsCode__8dBgWKColFRC13cBgS_PolyInfo */
int dBgWKCol::GetMonkeyBarsCode(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getMonkeyBars();
}
/* 80082B6C-80082B98 07D4AC 002C+00 1/0 0/0 0/0 .text GetPolyObjThrough__8dBgWKColFi */
u32 dBgWKCol::GetPolyObjThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getObjThrough();
}
/* 80082B98-80082BC4 07D4D8 002C+00 1/0 0/0 0/0 .text GetPolyCamThrough__8dBgWKColFi */
u32 dBgWKCol::GetPolyCamThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getCamThrough();
}
/* 80082BC4-80082BF0 07D504 002C+00 1/0 0/0 0/0 .text GetPolyLinkThrough__8dBgWKColFi */
u32 dBgWKCol::GetPolyLinkThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getLinkThrough();
}
/* 80082BF0-80082C1C 07D530 002C+00 1/0 0/0 0/0 .text GetPolyArrowThrough__8dBgWKColFi */
u32 dBgWKCol::GetPolyArrowThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getArrowThrough();
}
/* 80082C1C-80082C48 07D55C 002C+00 1/0 0/0 0/0 .text GetPolyHSStick__8dBgWKColFi */
u32 dBgWKCol::GetPolyHSStick(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getHSStick();
}
/* 80082C48-80082C74 07D588 002C+00 1/0 0/0 0/0 .text GetPolyBoomerangThrough__8dBgWKColFi */
u32 dBgWKCol::GetPolyBoomerangThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getBoomerangThrough();
}
/* 80082C74-80082CA0 07D5B4 002C+00 1/0 0/0 0/0 .text GetPolyRopeThrough__8dBgWKColFi */
u32 dBgWKCol::GetPolyRopeThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getRopeThrough();
}
/* 80082CA0-80082CCC 07D5E0 002C+00 1/0 0/0 0/0 .text GetPolyBombThrough__8dBgWKColFi */
u32 dBgWKCol::GetPolyBombThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getBombThrough();
}
/* 80082CCC-80082CF8 07D60C 002C+00 1/0 0/0 0/0 .text GetUnderwaterRoofCode__8dBgWKColFi
*/
u32 dBgWKCol::GetUnderwaterRoofCode(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getUnderwaterRoof();
}
/* 80082CF8-80082D24 07D638 002C+00 1/0 0/0 0/0 .text GetShdwThrough__8dBgWKColFi */
bool dBgWKCol::GetShdwThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getShdwThrough();
}
/* 80082D24-80082D54 07D664 0030+00 1/0 0/0 0/0 .text GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo */
int dBgWKCol::GetLinkNo(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getLinkNo();
}
/* 80082D54-80082D84 07D694 0030+00 1/0 0/0 0/0 .text GetWallCode__8dBgWKColFRC13cBgS_PolyInfo */
s32 dBgWKCol::GetWallCode(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getWallCode();
}
/* 80082D84-80082DB4 07D6C4 0030+00 1/0 0/0 0/0 .text GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo */
int dBgWKCol::GetPolyAtt0(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getAtt0Code();
}
/* 80082DB4-80082DE4 07D6F4 0030+00 1/0 0/0 0/0 .text GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo */
int dBgWKCol::GetPolyAtt1(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getAtt1Code();
}
/* 80082DE4-80082E14 07D724 0030+00 1/0 0/0 0/0 .text GetGroundCode__8dBgWKColFRC13cBgS_PolyInfo
*/
int dBgWKCol::GetGroundCode(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getGroundCode();
}
/* 80082E14-80082E40 07D754 002C+00 1/0 0/0 0/0 .text GetIronBallThrough__8dBgWKColFi */
u32 dBgWKCol::GetIronBallThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getIronBallThrough();
}
/* 80082E40-80082E6C 07D780 002C+00 1/0 0/0 0/0 .text GetAttackThrough__8dBgWKColFi */
u32 dBgWKCol::GetAttackThrough(int poly_index) {
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getAttackThrough();
}
/* 80082E6C-80082E9C 07D7AC 0030+00 1/0 0/0 0/0 .text GetCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo */
s32 dBgWKCol::GetCamMoveBG(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getCamMoveBG();
}
/* 80082E9C-80082ECC 07D7DC 0030+00 1/0 0/0 0/0 .text GetRoomCamId__8dBgWKColFRC13cBgS_PolyInfo */
s32 dBgWKCol::GetRoomCamId(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getRoomCam();
}
/* 80082ECC-80082EFC 07D80C 0030+00 1/0 0/0 0/0 .text GetRoomPathId__8dBgWKColFRC13cBgS_PolyInfo
*/
s32 dBgWKCol::GetRoomPathId(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getRoomPath();
}
/* 80082EFC-80082F2C 07D83C 0030+00 1/0 0/0 0/0 .text
* GetRoomPathPntNo__8dBgWKColFRC13cBgS_PolyInfo */
s32 dBgWKCol::GetRoomPathPntNo(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getRoomPathPnt();
}
/* 80082F2C-80082F5C 07D86C 0030+00 1/0 0/0 0/0 .text
* GetPolyGrpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo */
u8 dBgWKCol::GetPolyGrpRoomInfId(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getRoomInf();
}
/* 80082F5C-80082F8C 07D89C 0030+00 1/0 0/0 0/0 .text GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo
*/
int dBgWKCol::GetGrpSoundId(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
getPolyCode(poly_index, &bgpc);
return bgpc.getSnd();
}
/* 80082F8C-80082F90 07D8CC 0004+00 1/0 0/0 0/0 .text
* CrrPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz */
void dBgWKCol::CrrPos(cBgS_PolyInfo const& param_0, void* param_1, bool param_2, cXyz* param_3,
csXyz* param_4, csXyz* param_5) {}
/* 80082F90-80082F94 07D8D0 0004+00 1/0 0/0 0/0 .text
* TransPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz */
void dBgWKCol::TransPos(cBgS_PolyInfo const& param_0, void* param_1, bool param_2, cXyz* param_3,
csXyz* param_4, csXyz* param_5) {}
/* 80082F94-80082F98 07D8D4 0004+00 1/0 0/0 0/0 .text
* MatrixCrrPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz */
void dBgWKCol::MatrixCrrPos(cBgS_PolyInfo const& param_0, void* param_1, bool param_2,
cXyz* param_3, csXyz* param_4, csXyz* param_5) {}