d_a_e_yd_leaf and d_a_e_ph done (#2070)

* d_a_e_yd_leaf done

* d_a_e_ph OK

* remove asm

* some e_ph doc

* match dBgS_Acch, fix f_op_actor_mng weak funcs

* dBgS_Acch done

* cleanup dBgS Chk TUs

* d_a_obj done
This commit is contained in:
TakaRikka
2024-02-13 10:21:57 -08:00
committed by GitHub
parent 956699083c
commit d14757be50
201 changed files with 5249 additions and 11440 deletions
-4
View File
@@ -98,10 +98,6 @@ int daNocrm_c::execute() {
return 1;
}
inline int fopAcM_gc_c::getRoomId() {
return dComIfG_Bgsp().GetRoomId(*(dBgS_GndChk*)mGndCheck);
}
/* 80145508-801455A8 13FE48 00A0+00 1/1 0/0 0/0 .text getRoomNo__9daNocrm_cFi */
int daNocrm_c::getRoomNo(int param_0) {
if (mRoomNo[param_0] < 0) {
+162 -267
View File
@@ -1,330 +1,227 @@
//
// Generated By: dol2asm
// Translation Unit: d/a/d_a_obj
//
/**
* d_a_obj.cpp
*
*/
#include "d/a/d_a_obj.h"
#include "dol2asm.h"
#include "JSystem/JMath/JMath.h"
#include "SSystem/SComponent/c_math.h"
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "f_op/f_op_actor_mng.h"
//
// Forward References:
//
extern "C" void eff_break_tsubo__5daObjFP10fopAc_ac_c4cXyzi();
extern "C" void make_eff_break_kotubo__5daObjFP10fopAc_ac_c();
extern "C" void make_eff_break_kotubo2__5daObjFP10fopAc_ac_c();
extern "C" void make_eff_break_gm_kotubo__5daObjFP10fopAc_ac_c();
extern "C" void make_eff_break_gm_ootubo__5daObjFP10fopAc_ac_c();
extern "C" void posMoveF_stream__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzff();
extern "C" static void func_800373F0();
extern "C" static void func_800374EC();
extern "C" void posMoveF_grade__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzffPC4cXyzffPC4cXyz();
extern "C" void quat_rotBaseY__5daObjFP10QuaternionRC4cXyz();
extern "C" void HitSeStart__5daObjFPC4cXyziPC12dCcD_GObjInfUl();
extern "C" void GetCoCP__12cCcD_CylAttrFv();
extern "C" void GetCoCP__12cCcD_SphAttrFv();
extern "C" extern char const* const d_a_d_a_obj__stringBase0;
//
// External References:
//
extern "C" void __dt__4cXyzFv();
extern "C" void fopAcM_posMove__FP10fopAc_ac_cPC4cXyz();
extern "C" void dComIfGp_getReverb__Fi();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void
setModel__18dPa_modelEcallBackFP14JPABaseEmitterP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc();
extern "C" void
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void GetAc__22dCcD_GAtTgCoCommonBaseFv();
extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
extern "C" void GetTgHitObjSe__12dCcD_GObjInfFv();
extern "C" void checkMasterSwordEquip__9daPy_py_cFv();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void __ml__4cXyzCFf();
extern "C" void __dv__4cXyzCFf();
extern "C" void outprod__4cXyzCFRC3Vec();
extern "C" void cM_atan2s__Fff();
extern "C" void cM3d_CrawVec__FRC3VecRC3VecP3Vec();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __register_global_object();
extern "C" void _savegpr_25();
extern "C" void _savegpr_26();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_25();
extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 mTsubo__13dPa_control_c[64];
extern "C" f32 Zero__4cXyz[3];
extern "C" u8 BaseY__4cXyz[12];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u8 struct_80450DF0[8];
extern "C" u8 mEcallback__18dPa_modelEcallBack[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 803792A8-803792A8 005908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_803792A8 = "Always";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_803792AF = "";
#pragma pop
/* 80451D98-80451D9C 000398 0004+00 6/6 0/0 0/0 .sdata2 @3671 */
SECTION_SDATA2 static f32 lit_3671 = 1.0f;
namespace daObj {
/* 80037038-80037180 031978 0148+00 4/4 0/0 0/0 .text eff_break_tsubo__5daObjFP10fopAc_ac_c4cXyzi
*/
#ifdef NONMATCHING
// Matches with literals
void daObj::eff_break_tsubo(fopAc_ac_c* param_0, cXyz param_1, int param_2) {
void eff_break_tsubo(fopAc_ac_c* i_actor, cXyz i_scale, int i_type) {
J3DModelData* tubo_bmd = (J3DModelData*)dComIfG_getObjectRes("Always", 0x20);
J3DAnmTexPattern* tubo_btp = (J3DAnmTexPattern*)dComIfG_getObjectRes("Always", 0x42);
s32 roomNo = fopAcM_GetRoomNo(param_0);
s32 roomNo = fopAcM_GetRoomNo(i_actor);
// not sure what's up with mEcallback. Probably the argument type for dComIfGp_particle_set is wrong.
JPABaseEmitter* emitter = (JPABaseEmitter*)dComIfGp_particle_set(
0x15C, &param_0->current.pos, NULL, NULL, 0xFF, (dPa_modelEcallBack*)&dPa_modelEcallBack::mEcallback,
roomNo, NULL, NULL, &param_1);
JPABaseEmitter* emitter = dComIfGp_particle_set(
dPa_name::ZI_J_M_tuboHahen_e, &i_actor->current.pos, NULL, NULL, 0xFF,
(dPa_modelEcallBack*)&dPa_modelEcallBack::mEcallback, roomNo, NULL, NULL, &i_scale);
dPa_modelEcallBack::setModel(emitter, tubo_bmd, param_0->mTevStr, 3, tubo_btp, 0, param_2);
dPa_modelEcallBack::setModel(emitter, tubo_bmd, i_actor->mTevStr, 3, tubo_btp, 0, i_type);
s32 roomNo2 = fopAcM_GetRoomNo(param_0);
dComIfGp_particle_set(0x15D, &param_0->current.pos, NULL, NULL, 0xFF,
dPa_control_c::getTsuboSelectTexEcallBack(param_2),
roomNo2, NULL, NULL, &param_1);
s32 roomNo2 = fopAcM_GetRoomNo(i_actor);
dComIfGp_particle_set(dPa_name::ZI_J_tuboHahen_e, &i_actor->current.pos, NULL, NULL, 0xFF,
dPa_control_c::getTsuboSelectTexEcallBack(i_type), roomNo2, NULL, NULL,
&i_scale);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObj::eff_break_tsubo(fopAc_ac_c* param_0, cXyz param_1, int param_2) {
nofralloc
#include "asm/d/a/d_a_obj/eff_break_tsubo__5daObjFP10fopAc_ac_c4cXyzi.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 804245E8-804245F4 051308 000C+00 1/1 0/0 0/0 .bss @3677 */
static u8 lit_3677[12];
/* 804245F4-80424600 051314 000C+00 1/1 0/0 0/0 .bss scale$3676 */
static f32 scale_3676[3];
/* 80037180-80037210 031AC0 0090+00 0/0 0/0 2/2 .text make_eff_break_kotubo__5daObjFP10fopAc_ac_c
*/
// matches with literals
#ifdef NONMATCHING
void daObj::make_eff_break_kotubo(fopAc_ac_c* param_0) {
void make_eff_break_kotubo(fopAc_ac_c* i_actor) {
static cXyz scale(1.0f, 1.0f, 1.0f);
eff_break_tsubo(param_0, scale, 0);
eff_break_tsubo(i_actor, scale, 0);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObj::make_eff_break_kotubo(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/a/d_a_obj/make_eff_break_kotubo__5daObjFP10fopAc_ac_c.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80424600-8042460C 051320 000C+00 1/1 0/0 0/0 .bss @3692 */
static u8 lit_3692[12];
/* 8042460C-80424618 05132C 000C+00 1/1 0/0 0/0 .bss scale$3691 */
static f32 scale_3691[3];
/* 80037210-800372A0 031B50 0090+00 0/0 0/0 2/2 .text make_eff_break_kotubo2__5daObjFP10fopAc_ac_c
*/
// matches with literals
#ifdef NONMATCHING
void daObj::make_eff_break_kotubo2(fopAc_ac_c* param_0) {
void make_eff_break_kotubo2(fopAc_ac_c* i_actor) {
static cXyz scale(1.0f, 1.0f, 1.0f);
eff_break_tsubo(param_0, scale, 1);
eff_break_tsubo(i_actor, scale, 1);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObj::make_eff_break_kotubo2(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/a/d_a_obj/make_eff_break_kotubo2__5daObjFP10fopAc_ac_c.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80424618-80424624 051338 000C+00 1/1 0/0 0/0 .bss @3719 */
static u8 lit_3719[12];
/* 80424624-80424630 051344 000C+00 1/1 0/0 0/0 .bss scale$3718 */
static f32 scale_3718[3];
/* 800372A0-80037330 031BE0 0090+00 0/0 0/0 1/1 .text
* make_eff_break_gm_kotubo__5daObjFP10fopAc_ac_c */
// matches with literals
#ifdef NONMATCHING
void daObj::make_eff_break_gm_kotubo(fopAc_ac_c* param_0) {
void make_eff_break_gm_kotubo(fopAc_ac_c* i_actor) {
static cXyz scale(1.0f, 1.0f, 1.0f);
eff_break_tsubo(param_0, scale, 3);
eff_break_tsubo(i_actor, scale, 3);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObj::make_eff_break_gm_kotubo(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/a/d_a_obj/make_eff_break_gm_kotubo__5daObjFP10fopAc_ac_c.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80424630-8042463C 051350 000C+00 1/1 0/0 0/0 .bss @3732 */
static u8 lit_3732[12];
/* 8042463C-80424648 05135C 000C+00 1/1 0/0 0/0 .bss scale$3731 */
static f32 scale_3731[3];
/* 80451D9C-80451DA0 00039C 0004+00 1/1 0/0 0/0 .sdata2 @3714 */
SECTION_SDATA2 static f32 lit_3714 = 2.0f;
/* 80037330-800373C0 031C70 0090+00 0/0 0/0 1/1 .text
* make_eff_break_gm_ootubo__5daObjFP10fopAc_ac_c */
// matches with literals
#ifdef NONMATCHING
void daObj::make_eff_break_gm_ootubo(fopAc_ac_c* param_0) {
void make_eff_break_gm_ootubo(fopAc_ac_c* i_actor) {
static cXyz scale(2.0f, 2.0f, 2.0f);
eff_break_tsubo(param_0, scale, 4);
eff_break_tsubo(i_actor, scale, 4);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObj::make_eff_break_gm_ootubo(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/a/d_a_obj/make_eff_break_gm_ootubo__5daObjFP10fopAc_ac_c.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80451DA0-80451DA4 0003A0 0004+00 4/4 0/0 0/0 .sdata2 @3801 */
SECTION_SDATA2 static u8 lit_3801[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 800373C0-800373F0 031D00 0030+00 0/0 0/0 4/4 .text
* posMoveF_stream__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObj::posMoveF_stream(fopAc_ac_c* param_0, cXyz const* param_1, cXyz const* param_2,
f32 param_3, f32 param_4) {
nofralloc
#include "asm/d/a/d_a_obj/posMoveF_stream__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzff.s"
void posMoveF_stream(fopAc_ac_c* i_actor, cXyz const* param_1, cXyz const* param_2, f32 param_3,
f32 param_4) {
posMoveF_grade(i_actor, param_1, param_2, param_3, param_4, NULL, 0.0f, 0.0f, NULL);
}
#pragma pop
/* ############################################################################################## */
/* 80451DA4-80451DA8 0003A4 0004+00 2/2 0/0 0/0 .sdata2 @3836 */
SECTION_SDATA2 static f32 lit_3836 = -1.0f;
/* 800373F0-800374EC 031D30 00FC+00 1/1 0/0 0/0 .text
* posMoveF_resist_acc__Q25daObj21@unnamed@d_a_obj_cpp@FP4cXyzPC10fopAc_ac_cPC4cXyzff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800373F0() {
nofralloc
#include "asm/d/a/d_a_obj/func_800373F0.s"
namespace {
void posMoveF_resist_acc(cXyz* pos, const fopAc_ac_c* i_actor, cXyz const* stream_spd, f32 param_3,
f32 param_4) {
const cXyz sp20 = i_actor->speed - *stream_spd;
cXyz sp14(sp20.x * param_3, sp20.y * param_3, sp20.z * param_3);
sp14.x += param_4 * (sp20.x * fabsf(sp20.x));
sp14.y += param_4 * (sp20.y * fabsf(sp20.y));
sp14.z += param_4 * (sp20.z * fabsf(sp20.z));
sp14 *= -1.0f;
pos->set(sp14);
}
#pragma pop
/* 800374EC-80037620 031E2C 0134+00 1/1 0/0 0/0 .text
* posMoveF_grade_acc__Q25daObj21@unnamed@d_a_obj_cpp@FP4cXyzPC10fopAc_ac_cPC4cXyzffPC4cXyzPC4cXyz
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800374EC() {
nofralloc
#include "asm/d/a/d_a_obj/func_800374EC.s"
void posMoveF_grade_acc(cXyz* pos, const fopAc_ac_c* i_actor, cXyz const* param_2, f32 friction,
f32 no_grade_cos, const cXyz* param_5, const cXyz* param_6) {
pos->set(cXyz::Zero);
if (param_2 != NULL) {
cXyz sp28(*param_5);
sp28.y += i_actor->mGravity;
if (param_6 != NULL) {
sp28 += *param_6;
}
if (sp28.inprod(*param_2) < 0.0f) {
if (param_2->y <= no_grade_cos) {
cXyz sp34;
cM3d_CrawVec(*param_2, sp28, &sp34);
*pos += sp34;
}
cXyz sp40;
cM3d_CrawVec(*param_2, i_actor->speed, &sp40);
*pos -= sp40 * friction;
}
}
}
#pragma pop
} // namespace
/* 80037620-80037788 031F60 0168+00 1/1 0/0 0/0 .text
* posMoveF_grade__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzffPC4cXyzffPC4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObj::posMoveF_grade(fopAc_ac_c* param_0, cXyz const* param_1, cXyz const* param_2,
f32 param_3, f32 param_4, cXyz const* param_5, f32 param_6,
f32 param_7, cXyz const* param_8) {
nofralloc
#include "asm/d/a/d_a_obj/posMoveF_grade__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzffPC4cXyzffPC4cXyz.s"
void posMoveF_grade(fopAc_ac_c* i_actor, cXyz const* param_1, cXyz const* stream_spd, f32 param_3,
f32 param_4, cXyz const* param_5, f32 friction, f32 no_grade_cos,
cXyz const* param_8) {
JUT_ASSERT(stream_spd != 0);
cXyz spAC;
posMoveF_resist_acc(&spAC, i_actor, stream_spd, param_3, param_4);
JUT_ASSERT((friction >= 0.0f) && (friction < 1.0f) && (no_grade_cos >= 0.0f) &&
(no_grade_cos <= 1.0f));
cXyz spB8;
posMoveF_grade_acc(&spB8, i_actor, param_5, friction, no_grade_cos, &spAC, param_8);
f32 speedF = fopAcM_GetSpeedF(i_actor);
f32 gravity = fopAcM_GetGravity(i_actor);
cXyz& speed_p = fopAcM_GetSpeed_p(i_actor);
f32 speed_x = spB8.x + (spAC.x + (speedF * cM_ssin(i_actor->current.angle.y)));
f32 speed_y = spB8.y + (spAC.y + (speed_p.y + gravity));
f32 speed_z = spB8.z + (spAC.z + (speedF * cM_scos(i_actor->current.angle.y)));
if (param_8 != NULL) {
speed_x += param_8->x;
speed_y += param_8->y;
speed_z += param_8->z;
}
if (speed_y < fopAcM_GetMaxFallSpeed(i_actor)) {
speed_y = fopAcM_GetMaxFallSpeed(i_actor);
}
fopAcM_SetSpeed(i_actor, speed_x, speed_y, speed_z);
fopAcM_SetSpeedF(i_actor, JMAFastSqrt((speed_x * speed_x) + (speed_z * speed_z)));
i_actor->current.angle.y = cM_atan2s(speed_x, speed_z);
fopAcM_posMove(i_actor, param_1);
}
#pragma pop
/* ############################################################################################## */
/* 80379298-803792A8 0058F8 0010+00 1/1 0/0 0/0 .rodata zero_quat$3920 */
SECTION_RODATA static f32 const zero_quat[4] = {
0.0f,
0.0f,
0.0f,
1.0f,
};
COMPILER_STRIP_GATE(0x80379298, &zero_quat);
/* 80451DA8-80451DB0 0003A8 0004+04 1/1 0/0 0/0 .sdata2 @3956 */
SECTION_SDATA2 static f32 lit_3956[1 + 1 /* padding */] = {
9.99999905104687e-09f,
/* padding */
0.0f,
};
/* 80037788-80037900 0320C8 0178+00 0/0 0/0 1/1 .text quat_rotBaseY__5daObjFP10QuaternionRC4cXyz
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObj::quat_rotBaseY(Quaternion* param_0, cXyz const& param_1) {
nofralloc
#include "asm/d/a/d_a_obj/quat_rotBaseY__5daObjFP10QuaternionRC4cXyz.s"
void quat_rotBaseY(Quaternion* quat, cXyz const& param_1) {
static const Quaternion zero_quat = {0.0f, 0.0f, 0.0f, 1.0f};
f32 var_f31 = param_1.abs2();
if (var_f31 > 9.999999E-9f) {
cXyz sp4C = cXyz::BaseY.outprod(param_1);
f32 var_f30 = sp4C.abs2();
if (var_f30 > 9.999999E-9f) {
cXyz sp58 = param_1 / var_f31;
f32 var_f1 = acos(cXyz::BaseY.inprod(sp58));
sp4C /= JMAFastSqrt(var_f30);
mDoMtx_quatRotAxisRad(quat, &sp4C, var_f1);
} else {
*quat = zero_quat;
}
} else {
*quat = zero_quat;
}
}
#pragma pop
/* 80037900-80037A4C 032240 014C+00 0/0 0/0 3/3 .text
* HitSeStart__5daObjFPC4cXyziPC12dCcD_GObjInfUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObj::HitSeStart(cXyz const* param_0, int param_1, dCcD_GObjInf const* param_2,
u32 param_3) {
nofralloc
#include "asm/d/a/d_a_obj/HitSeStart__5daObjFPC4cXyziPC12dCcD_GObjInfUl.s"
void HitSeStart(cXyz const* i_sePos, int i_roomNo, dCcD_GObjInf const* i_CcObj, u32 param_3) {
int hit_se = const_cast<dCcD_GObjInf*>(i_CcObj)->GetTgHitObjSe();
fopAc_ac_c* hit_actor = const_cast<dCcD_GObjInf*>(i_CcObj)->GetTgHitAc();
cCcD_Obj* hit_obj = const_cast<dCcD_GObjInf*>(i_CcObj)->GetTgHitObj();
bool master_sword_hit = false;
u32 sfx;
if (hit_se != dCcD_SE_NONE) {
if (hit_actor != NULL && hit_obj != NULL) {
if (hit_obj->ChkAtType(AT_TYPE_8000)) {
sfx = Z2SE_HIT_HAMMER;
} else if (hit_obj->ChkAtType(AT_TYPE_ARROW)) {
sfx = Z2SE_HIT_ARROW_REBOUND;
} else if (hit_obj->ChkAtType(AT_TYPE_HOOKSHOT)) {
sfx = Z2SE_HIT_HOOKSHOT_REBOUND;
} else {
if (fopAcM_GetProfName(hit_actor) == PROC_ALINK &&
daPy_py_c::checkMasterSwordEquip())
{
master_sword_hit = true;
}
if (hit_se == dCcD_SE_WOOD) {
sfx = Z2SE_HIT_WOOD_WEAPON;
} else if (hit_se == dCcD_SE_METAL) {
sfx = Z2SE_HIT_HOOKSHOT_REBOUND;
} else if (master_sword_hit) {
sfx = Z2SE_HIT_SWORD;
} else {
sfx = Z2SE_HIT_SWORD;
}
}
}
s8 reverb = dComIfGp_getReverb(i_roomNo);
mDoAud_seStart(sfx, i_sePos, param_3 & 0xFF, (s8)reverb);
}
}
#pragma pop
} // namespace daObj
/* 80037A4C-80037A54 03238C 0008+00 0/0 2/0 0/0 .text GetCoCP__12cCcD_CylAttrFv */
#pragma push
@@ -347,5 +244,3 @@ extern "C" asm void GetCoCP__12cCcD_SphAttrFv() {
#include "asm/d/a/d_a_obj/GetCoCP__12cCcD_SphAttrFv.s"
}
#pragma pop
/* 803792A8-803792A8 005908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+263 -428
View File
@@ -1,164 +1,24 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s_acch
//
// Temporary fix until the TU matches
#define __dt__12dBgS_AcchCirFv_DEFINED
/**
* d_bg_s_acch.cpp
* BG collision Actor Check
*/
#include "d/bg/d_bg_s_acch.h"
#include "d/a/d_a_player.h"
#include "d/bg/d_bg_s.h"
#include "dol2asm.h"
#include "d/com/d_com_inf_game.h"
#include "f_op/f_op_actor_mng.h"
#include "global.h"
//
// Forward References:
//
extern "C" void __ct__12dBgS_AcchCirFv();
extern "C" void ClrWallHit__12dBgS_AcchCirFv();
extern "C" void SetWallR__12dBgS_AcchCirFf();
extern "C" void CalcWallRR__12dBgS_AcchCirFv();
extern "C" void SetWall__12dBgS_AcchCirFff();
extern "C" void SetWallHDirect__12dBgS_AcchCirFf();
extern "C" void __dt__9dBgS_AcchFv();
extern "C" void __ct__9dBgS_AcchFv();
extern "C" void Init__9dBgS_AcchFv();
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
extern "C" void Set__9dBgS_AcchFP10fopAc_ac_ciP12dBgS_AcchCir();
extern "C" void GroundCheckInit__9dBgS_AcchFR4dBgS();
extern "C" void GroundCheck__9dBgS_AcchFR4dBgS();
extern "C" void GroundRoofProc__9dBgS_AcchFR4dBgS();
extern "C" void LineCheck__9dBgS_AcchFR4dBgS();
extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
extern "C" void GetWallAllR__9dBgS_AcchFv();
extern "C" void SetWallCir__9dBgS_AcchFv();
extern "C" void CalcWallBmdCyl__9dBgS_AcchFv();
extern "C" void SetGroundUpY__9dBgS_AcchFf();
extern "C" void GetWallAllLowH__9dBgS_AcchFv();
extern "C" void GetWallAllLowH_R__9dBgS_AcchFv();
extern "C" void GetSpeedY__9dBgS_AcchFv();
extern "C" void GetWallAddY__9dBgS_AcchFR3Vec();
extern "C" void SetNowActorInfo__9dBgS_AcchFiPvUi();
extern "C" void SetWallPolyIndex__9dBgS_AcchFii();
extern "C" void CalcMovePosWork__9dBgS_AcchFv();
extern "C" void CalcWallRR__9dBgS_AcchFv();
extern "C" void SetMoveBGOnly__9dBgS_AcchFv();
extern "C" void ClrMoveBGOnly__9dBgS_AcchFv();
extern "C" void SetGndThinCellingOff__9dBgS_AcchFv();
extern "C" void ClrGndThinCellingOff__9dBgS_AcchFv();
extern "C" void ChkGndThinCellingOff__9dBgS_AcchFv();
extern "C" void OnWallSort__9dBgS_AcchFv();
extern "C" void ChkWallSort__9dBgS_AcchFv();
extern "C" void ChkLineDown__9dBgS_AcchFv();
extern "C" void __dt__12dBgS_AcchCirFv();
extern "C" static void func_80077484();
extern "C" static void func_8007748C();
extern "C" u32 checkPlayerFly__9daPy_py_cCFv();
//
// External References:
//
extern "C" void LineCross__4cBgSFP11cBgS_LinChk();
extern "C" void GroundCross__4cBgSFP11cBgS_GndChk();
extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
extern "C" void WallCorrect__4dBgSFP9dBgS_Acch();
extern "C" void WallCorrectSort__4dBgSFP9dBgS_Acch();
extern "C" void RoofChk__4dBgSFP12dBgS_RoofChk();
extern "C" void SplGrpChk__4dBgSFP14dBgS_SplGrpChk();
extern "C" void MoveBgCrrPos__4dBgSFRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyzbb();
extern "C" void RideCallBack__4dBgSFRC13cBgS_PolyInfoP10fopAc_ac_c();
extern "C" void __ct__8dBgS_ChkFv();
extern "C" void __dt__8dBgS_ChkFv();
extern "C" void GetPolyPassChkInfo__8dBgS_ChkFv();
extern "C" void GetGrpPassChkInfo__8dBgS_ChkFv();
extern "C" void __ct__11dBgS_GndChkFv();
extern "C" void __dt__11dBgS_GndChkFv();
extern "C" void Set__14dBgS_SplGrpChkFR4cXyzf();
extern "C" void __dt__14dBgS_SplGrpChkFv();
extern "C" void SetPassChkInfo__16dBgS_PolyPassChkFR16dBgS_PolyPassChk();
extern "C" void SetUnderwaterRoof__16dBgS_PolyPassChkFv();
extern "C" void __ct__12dBgS_RoofChkFv();
extern "C" void __dt__12dBgS_RoofChkFv();
extern "C" void __ct__11dBgS_WtrChkFv();
extern "C" void __ct__8cBgS_ChkFv();
extern "C" void __dt__8cBgS_ChkFv();
extern "C" void SetExtChk__8cBgS_ChkFR8cBgS_Chk();
extern "C" void SetPos__11cBgS_GndChkFPC4cXyz();
extern "C" void __ct__11cBgS_LinChkFv();
extern "C" void __dt__11cBgS_LinChkFv();
extern "C" void Set2__11cBgS_LinChkFPC4cXyzPC4cXyzUi();
extern "C" void __ct__13cBgS_PolyInfoFv();
extern "C" void __dt__13cBgS_PolyInfoFv();
extern "C" void ClearPi__13cBgS_PolyInfoFv();
extern "C" void SetActorInfo__13cBgS_PolyInfoFiPvUi();
extern "C" void SetPolyIndex__13cBgS_PolyInfoFi();
extern "C" void cBgW_CheckBGround__Ff();
extern "C" void __ct__8cM3dGCirFv();
extern "C" void __dt__8cM3dGCirFv();
extern "C" void Set__8cM3dGCirFffff();
extern "C" void Set__8cM3dGCylFRC4cXyzff();
extern "C" void SetStartEnd__8cM3dGLinFRC4cXyzRC4cXyz();
extern "C" void getCrossYLessD__8cM3dGPlaCFRC3VecPf();
extern "C" void __dl__FPv();
extern "C" void __register_global_object();
extern "C" void _savegpr_25();
extern "C" void _savegpr_29();
extern "C" void _restgpr_25();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8cM3dGPla[3];
extern "C" extern void* __vt__11dBgS_WtrChk[12];
extern "C" extern void* __vt__8cM3dGCyl[3];
extern "C" extern void* __vt__8cM3dGLin[3];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern s8 data_80450F68;
//
// Declarations:
//
/* ############################################################################################## */
/* 803AB640-803AB664 008760 0024+00 2/2 0/0 0/0 .data __vt__9dBgS_Acch */
SECTION_DATA extern void* __vt__9dBgS_Acch[9] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__9dBgS_AcchFv,
(void*)NULL,
(void*)NULL,
(void*)func_8007748C,
(void*)NULL,
(void*)NULL,
(void*)func_80077484,
};
/* 803AB664-803AB670 008784 000C+00 2/2 3/3 0/0 .data __vt__12dBgS_AcchCir */
SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_AcchCirFv,
};
/* 804526C0-804526C4 000CC0 0004+00 11/11 0/0 0/0 .sdata2 @4025 */
SECTION_SDATA2 static u8 lit_4025[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80075EAC-80075F14 0707EC 0068+00 0/0 4/4 336/336 .text __ct__12dBgS_AcchCirFv */
dBgS_AcchCir::dBgS_AcchCir() {
m_flags = 0;
f32 tmp_0 = FLOAT_LABEL(lit_4025);
m_wall_rr = tmp_0;
field_0x2c = tmp_0;
m_wall_h = tmp_0;
m_wall_r = tmp_0;
m_wall_rr = 0.0f;
field_0x2c = 0.0f;
m_wall_h = 0.0f;
m_wall_r = 0.0f;
m_wall_angle_y = 0;
m_wall_h_direct = tmp_0;
m_wall_h_direct = 0.0f;
}
/* 80075F14-80075F40 070854 002C+00 1/1 0/0 0/0 .text ClrWallHit__12dBgS_AcchCirFv */
@@ -168,8 +28,8 @@ void dBgS_AcchCir::ClrWallHit() {
}
/* 80075F40-80075F48 070880 0008+00 1/1 2/2 109/109 .text SetWallR__12dBgS_AcchCirFf */
void dBgS_AcchCir::SetWallR(f32 r) {
m_wall_r = r;
void dBgS_AcchCir::SetWallR(f32 i_wall_r) {
m_wall_r = i_wall_r;
}
/* 80075F48-80075F58 070888 0010+00 1/1 0/0 0/0 .text CalcWallRR__12dBgS_AcchCirFv */
@@ -178,44 +38,21 @@ void dBgS_AcchCir::CalcWallRR() {
}
/* 80075F58-80075F80 070898 0028+00 0/0 3/3 272/272 .text SetWall__12dBgS_AcchCirFff */
void dBgS_AcchCir::SetWall(f32 wall_h, f32 wall_r) {
SetWallH(wall_h);
SetWallR(wall_r);
void dBgS_AcchCir::SetWall(f32 i_wall_h, f32 i_wall_r) {
SetWallH(i_wall_h);
SetWallR(i_wall_r);
}
/* 80075F80-80075F94 0708C0 0014+00 1/1 0/0 1/1 .text SetWallHDirect__12dBgS_AcchCirFf */
void dBgS_AcchCir::SetWallHDirect(f32 h_direct) {
void dBgS_AcchCir::SetWallHDirect(f32 i_h_direct) {
m_flags |= WALL_H_DIRECT;
m_wall_h_direct = h_direct;
m_wall_h_direct = i_h_direct;
}
/* 80075F94-800760A0 0708D4 010C+00 3/2 6/6 468/468 .text __dt__9dBgS_AcchFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_Acch::~dBgS_Acch() {
extern "C" asm void __dt__9dBgS_AcchFv() {
nofralloc
#include "asm/d/bg/d_bg_s_acch/__dt__9dBgS_AcchFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 804526C4-804526C8 000CC4 0004+00 5/5 0/0 0/0 .sdata2 @4089 */
SECTION_SDATA2 static f32 lit_4089 = -1000000000.0f;
/* 804526C8-804526CC 000CC8 0004+00 1/1 0/0 0/0 .sdata2 @4090 */
SECTION_SDATA2 static f32 lit_4090 = 60.0f;
/* 804526CC-804526D0 000CCC 0004+00 3/3 0/0 0/0 .sdata2 @4091 */
SECTION_SDATA2 static f32 lit_4091 = 1000000000.0f;
/* 804526D0-804526D4 000CD0 0004+00 1/1 0/0 0/0 .sdata2 @4092 */
SECTION_SDATA2 static f32 lit_4092 = 1000.0f;
dBgS_Acch::~dBgS_Acch() {}
/* 800760A0-800761CC 0709E0 012C+00 0/0 4/4 338/338 .text __ct__9dBgS_AcchFv */
// matches with literals
#ifdef NONMATCHING
dBgS_Acch::dBgS_Acch() {
SetPolyPassChk(GetPolyPassChkInfo());
SetGrpPassChk(GetGrpPassChkInfo());
@@ -235,7 +72,7 @@ dBgS_Acch::dBgS_Acch() {
field_0xbc = 0.0f;
m_tbl_size = 0;
field_0x8c = NULL;
pm_acch_cir = NULL;
m_roof_height = 1000000000.0f;
m_roof_crr_height = 0.0f;
@@ -247,65 +84,59 @@ dBgS_Acch::dBgS_Acch() {
pm_angle = NULL;
pm_shape_angle = NULL;
m_my_ac = NULL;
field_0xd4 = 0;
pm_out_poly_info = NULL;
field_0xd8 = -1000000000.0f;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dBgS_Acch::dBgS_Acch() {
nofralloc
#include "asm/d/bg/d_bg_s_acch/__ct__9dBgS_AcchFv.s"
}
#pragma pop
#endif
/* 800761CC-80076248 070B0C 007C+00 1/1 0/0 0/0 .text Init__9dBgS_AcchFv */
void dBgS_Acch::Init() {
ClrWallHit();
for (int i = 0; i < m_tbl_size; i++) {
static_cast<dBgS_AcchCir*>(field_0x8c + i)->ClrWallHit();
static_cast<dBgS_AcchCir*>(field_0x8c + i)->ClrWallHDirect();
pm_acch_cir[i].ClrWallHit();
pm_acch_cir[i].ClrWallHDirect();
}
}
/* 80076248-80076288 070B88 0040+00 0/0 2/2 314/314 .text
* Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz */
void dBgS_Acch::Set(cXyz* p_pos, cXyz* p_old_pos, fopAc_ac_c* p_actor, int table_size,
dBgS_AcchCir* param_4, cXyz* p_speed, csXyz* p_angle, csXyz* p_shape_angle) {
pm_pos = p_pos;
pm_old_pos = p_old_pos;
m_my_ac = p_actor;
SetActorPid(fopAcM_GetID(p_actor));
pm_speed = p_speed;
m_tbl_size = table_size;
field_0x8c = param_4;
pm_angle = p_angle;
pm_shape_angle = p_shape_angle;
void dBgS_Acch::Set(cXyz* i_pos, cXyz* i_old_pos, fopAc_ac_c* i_actor, int i_tbl_size,
dBgS_AcchCir* i_acchcir, cXyz* i_speed, csXyz* i_angle, csXyz* i_shape_angle) {
pm_pos = i_pos;
pm_old_pos = i_old_pos;
JUT_ASSERT(pm_pos != 0);
JUT_ASSERT(pm_old_pos != 0);
m_my_ac = i_actor;
SetActorPid(fopAcM_GetID(i_actor));
pm_speed = i_speed;
m_tbl_size = i_tbl_size;
pm_acch_cir = i_acchcir;
pm_angle = i_angle;
pm_shape_angle = i_shape_angle;
}
/* 80076288-800762D8 070BC8 0050+00 0/0 1/1 7/7 .text
* Set__9dBgS_AcchFP10fopAc_ac_ciP12dBgS_AcchCir */
void dBgS_Acch::Set(fopAc_ac_c* p_actor, int table_size, dBgS_AcchCir* param_2) {
m_tbl_size = table_size;
field_0x8c = param_2;
m_my_ac = p_actor;
void dBgS_Acch::Set(fopAc_ac_c* i_actor, int i_tbl_size, dBgS_AcchCir* i_acchcir) {
m_tbl_size = i_tbl_size;
pm_acch_cir = i_acchcir;
m_my_ac = i_actor;
SetActorPid(fopAcM_GetID(p_actor));
pm_pos = &fopAcM_GetPosition_p(p_actor);
pm_old_pos = &fopAcM_GetOldPosition_p(p_actor);
pm_speed = &fopAcM_GetSpeed_p(p_actor);
pm_angle = &fopAcM_GetAngle_p(p_actor);
pm_shape_angle = &fopAcM_GetShapeAngle_p(p_actor);
SetActorPid(fopAcM_GetID(i_actor));
pm_pos = &fopAcM_GetPosition_p(i_actor);
pm_old_pos = &fopAcM_GetOldPosition_p(i_actor);
pm_speed = &fopAcM_GetSpeed_p(i_actor);
pm_angle = &fopAcM_GetAngle_p(i_actor);
pm_shape_angle = &fopAcM_GetShapeAngle_p(i_actor);
}
/* 800762D8-80076350 070C18 0078+00 1/1 0/0 0/0 .text GroundCheckInit__9dBgS_AcchFR4dBgS
*/
void dBgS_Acch::GroundCheckInit(dBgS& param_0) {
void dBgS_Acch::GroundCheckInit(dBgS& i_bgs) {
if (!(m_flags & 2)) {
m_ground_h = lit_4089;
m_gnd.SetExtChk(static_cast<cBgS_Chk&>(*this));
m_ground_h = -1000000000.0f;
m_gnd.SetExtChk(*this);
field_0xb4 = ChkGroundHit();
i_ClrGroundHit();
ClrGroundLanding();
@@ -313,150 +144,219 @@ void dBgS_Acch::GroundCheckInit(dBgS& param_0) {
}
}
/* 80450F68-80450F70 000468 0008+00 0/0 1/1 0/0 .sbss None */
s8 data_80450F68;
/* 80076350-8007654C 070C90 01FC+00 2/2 0/0 0/0 .text GroundCheck__9dBgS_AcchFR4dBgS */
// issues with tmpRoofChk
#ifdef NONMATCHING
/* 80424B2C-80424B80 05184C 0050+04 1/1 0/0 0/0 .bss tmpRoofChk$4165 */
static dBgS_RoofChk tmpRoofChk;
void dBgS_Acch::GroundCheck(dBgS& param_0) {
void dBgS_Acch::GroundCheck(dBgS& i_bgs) {
if (!(m_flags & GRND_NONE)) {
cXyz grnd_pos;
grnd_pos.x = pm_pos->x;
grnd_pos.y = pm_pos->y;
grnd_pos.z = pm_pos->z;
grnd_pos = *pm_pos;
grnd_pos.y += field_0x94 + (field_0x9c - field_0x90);
if (!ChkGndThinCellingOff()) {
if (data_80450F68 == 0) {
dBgS_RoofChk tmpRoofChk;
data_80450F68 = 1;
}
static dBgS_RoofChk tmpRoofChk;
tmpRoofChk.SetActorPid(m_gnd.GetActorPid());
tmpRoofChk.i_SetPos(*pm_pos);
f32 tmp = param_0.RoofChk(&tmpRoofChk);
if (grnd_pos.y > tmp) {
grnd_pos.y = tmp;
f32 roof_chk = i_bgs.RoofChk(&tmpRoofChk);
if (grnd_pos.y > roof_chk) {
grnd_pos.y = roof_chk;
}
}
field_0x94 = 0.0f;
m_gnd.SetPos(&grnd_pos);
m_ground_h = param_0.GroundCross(&m_gnd);
m_ground_h = i_bgs.GroundCross(&m_gnd);
if (lit_4089 != m_ground_h) {
if (m_ground_h != -1000000000.0f) {
field_0xbc = m_ground_h + field_0x90;
if (field_0xbc > field_0xb8) {
pm_pos->y = field_0xbc;
if (ChkClrSpeedY() && pm_speed != NULL) {
pm_speed->y = 0.0f;
}
param_0.GetTriPla(m_gnd, &field_0xa0);
i_bgs.GetTriPla(m_gnd, &field_0xa0);
SetGroundFind();
SetGroundHit();
if (field_0xc0 == 0) {
field_0xc0 = 1;
param_0.RideCallBack(m_gnd, m_my_ac);
i_bgs.RideCallBack(m_gnd, m_my_ac);
}
if (field_0xb4 == 0) {
SetGroundLanding();
}
}
if (field_0xb4 && !ChkGroundHit()) {
SetGroundAway();
}
}
if (field_0xb4 && !i_ChkGroundHit()) {
SetGroundAway();
}
}
}
#else
/* ############################################################################################## */
/* 80424B20-80424B2C 051840 000C+00 1/1 0/0 0/0 .bss @4166 */
static u8 lit_4166[12];
/* 80424B2C-80424B80 05184C 0050+04 1/1 0/0 0/0 .bss tmpRoofChk$4165 */
static u8 tmpRoofChk[80 + 4 /* padding */];
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_Acch::GroundCheck(dBgS& param_0) {
nofralloc
#include "asm/d/bg/d_bg_s_acch/GroundCheck__9dBgS_AcchFR4dBgS.s"
}
#pragma pop
#endif
/* 8007654C-80076624 070E8C 00D8+00 1/1 0/0 0/0 .text GroundRoofProc__9dBgS_AcchFR4dBgS
*/
void dBgS_Acch::GroundRoofProc(dBgS& param_0) {
if (lit_4089 != m_ground_h) {
void dBgS_Acch::GroundRoofProc(dBgS& i_bgs) {
if (m_ground_h != -1000000000.0f) {
if (field_0xbc < field_0xcc && field_0xcc < pm_pos->y) {
pm_pos->y = field_0xcc;
}
if (!(m_flags & ROOF_NONE) && m_ground_h >= m_roof_height) {
m_roof.SetExtChk(static_cast<cBgS_Chk&>(*this));
m_roof.SetExtChk(*this);
ClrRoofHit();
cXyz roof_pos;
roof_pos.x = pm_pos->x;
roof_pos.y = pm_pos->y;
roof_pos.z = pm_pos->z;
cXyz roof_pos(*pm_pos);
m_roof.i_SetPos(roof_pos);
m_roof_height = param_0.RoofChk(&m_roof);
m_roof_height = i_bgs.RoofChk(&m_roof);
}
}
}
/* ############################################################################################## */
/* 804526D4-804526D8 000CD4 0004+00 1/1 0/0 0/0 .sdata2 @4424 */
SECTION_SDATA2 static f32 lit_4424 = 1.0f;
/* 80076624-80076AAC 070F64 0488+00 1/1 0/0 0/0 .text LineCheck__9dBgS_AcchFR4dBgS */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_Acch::LineCheck(dBgS& param_0) {
nofralloc
#include "asm/d/bg/d_bg_s_acch/LineCheck__9dBgS_AcchFR4dBgS.s"
void dBgS_Acch::LineCheck(dBgS& i_bgs) {
dBgS_RoofChk roof_chk;
roof_chk.SetActorPid(m_gnd.GetActorPid());
roof_chk.i_SetPos(*GetOldPos());
f32 temp_f31 = dComIfG_Bgsp().RoofChk(&roof_chk);
f32 var_f30 = 1000000000.0f;
bool var_r30 = false;
bool var_r29 = false;
for (int i = 0; i < GetTblSize(); i++) {
cBgS_LinChk lin_chk;
cXyz old_pos;
cXyz pos;
old_pos = *pm_old_pos;
pos = *pm_pos;
f32 temp_f0 = GetWallH(i);
f32 var_f2 = temp_f0;
if (temp_f31 < old_pos.y + temp_f0) {
if (var_r29) {
continue;
} else {
var_f2 = (temp_f31 - old_pos.y) - 1.0f;
var_r29 = true;
}
}
if (var_f30 > var_f2) {
var_f30 = var_f2;
}
old_pos.y += var_f2;
pos.y += var_f2;
if (GetSpeedY() < 0.0f) {
if (m_my_ac != NULL && fopAcM_GetName(m_my_ac) == PROC_ALINK &&
!static_cast<daPy_py_c*>(m_my_ac)->checkPlayerFly() && ChkLink())
{
pos.y -= GetSpeedY();
}
}
lin_chk.Set2(&old_pos, &pos, GetActorPid());
lin_chk.SetExtChk(*this);
if (i_bgs.LineCross(&lin_chk)) {
*GetPos() = lin_chk.i_GetCross();
OnLineCheckHit();
if (pm_out_poly_info != NULL)
*pm_out_poly_info = lin_chk;
cM3dGPla plane;
i_bgs.GetTriPla(lin_chk, &plane);
if (!cBgW_CheckBGround(plane.mNormal.y)) {
VECAdd(GetPos(), &plane.mNormal, GetPos());
if (!cM3d_IsZero(JMAFastSqrt(plane.mNormal.x * plane.mNormal.x +
plane.mNormal.z * plane.mNormal.z)))
{
pm_acch_cir[i].SetWallHDirect(GetPos()->y);
}
GetPos()->y -= pm_acch_cir[i].GetWallH();
} else {
GetPos()->y -= 1.0f;
GroundCheck(i_bgs);
var_r30 = true;
}
}
}
if (ChkLineDown()) {
f32 temp_f1 = GetOldPos()->y - GetPos()->y;
if (var_f30 != 1000000000.0f && !var_r30 && !cM3d_IsZero(temp_f1)) {
cBgS_LinChk lin_chk;
cXyz old_pos;
cXyz pos;
old_pos = *GetPos();
pos = old_pos;
old_pos.y += var_f30;
lin_chk.Set2(&old_pos, &pos, GetActorPid());
lin_chk.SetExtChk(*this);
if (i_bgs.LineCross(&lin_chk)) {
*GetPos() = lin_chk.i_GetCross();
OnLineCheckHit();
if (pm_out_poly_info != NULL)
*pm_out_poly_info = lin_chk;
GetPos()->y -= 1.0f;
GroundCheck(i_bgs);
}
}
}
}
#pragma pop
/* ############################################################################################## */
/* 804526D8-804526DC 000CD8 0004+00 1/1 0/0 0/0 .sdata2 @4554 */
SECTION_SDATA2 static f32 lit_4554 = 50.0f;
/* 804526DC-804526E0 000CDC 0004+00 1/1 0/0 0/0 .sdata2 @4555 */
SECTION_SDATA2 static f32 lit_4555 = 1000000.0f;
/* 80076AAC-80076F84 0713EC 04D8+00 0/0 15/15 414/414 .text CrrPos__9dBgS_AcchFR4dBgS */
// close
#ifdef NONMATCHING
void dBgS_Acch::CrrPos(dBgS& param_0) {
void dBgS_Acch::CrrPos(dBgS& i_bgs) {
bool bvar9;
if (!(m_flags & 1)) {
param_0.MoveBgCrrPos(m_gnd, ChkGroundHit(), pm_pos, pm_angle, pm_shape_angle, false, false);
JUT_ASSERT(pm_pos != 0);
JUT_ASSERT(pm_old_pos != 0);
JUT_ASSERT(fpclassify(pm_pos->x) == 1);
JUT_ASSERT(fpclassify(pm_pos->y) == 1);
JUT_ASSERT(fpclassify(pm_pos->z) == 1);
JUT_ASSERT(-1.0e32f < pm_pos->x && pm_pos->x < 1.0e32f);
JUT_ASSERT(-1.0e32f < pm_pos->y);
JUT_ASSERT(pm_pos->y < 1.0e32f);
JUT_ASSERT(-1.0e32f < pm_pos->z && pm_pos->z < 1.0e32f);
i_bgs.MoveBgCrrPos(m_gnd, ChkGroundHit(), pm_pos, pm_angle, pm_shape_angle, false, false);
if (!ChkGroundHit()) {
bvar9 = false;
if (ChkWallHit()) {
for (int i = 0; i < m_tbl_size; i++) {
if (static_cast<dBgS_AcchCir*>(field_0x8c + i)->ChkWallHit()) {
param_0.MoveBgCrrPos(*static_cast<dBgS_AcchCir*>(field_0x8c + i), true,
pm_pos, pm_angle, pm_shape_angle, true, false);
if (pm_acch_cir[i].ChkWallHit()) {
i_bgs.MoveBgCrrPos(pm_acch_cir[i], true, pm_pos, pm_angle, pm_shape_angle,
true, false);
bvar9 = true;
break;
}
}
}
if (!bvar9 && ChkRoofHit()) {
param_0.MoveBgCrrPos(m_roof, true, pm_pos, pm_angle, pm_shape_angle, false, true);
i_bgs.MoveBgCrrPos(m_roof, true, pm_pos, pm_angle, pm_shape_angle, false, true);
}
}
GroundCheckInit(param_0);
GroundCheckInit(i_bgs);
Init();
f32 tmp = GetWallAllLowH_R();
@@ -472,26 +372,27 @@ void dBgS_Acch::CrrPos(dBgS& param_0) {
OffLineCheckHit();
if (!ChkLineCheckNone() && !cM3d_IsZero(tmp) &&
(dvar10 > (tmp * tmp) || fvar12 > fvar1 || dvar11 > field_0x9c || ChkLineCheck())) {
(dvar10 > (tmp * tmp) || fvar12 > fvar1 || dvar11 > field_0x9c || ChkLineCheck()))
{
bvar2 = true;
LineCheck(param_0);
LineCheck(i_bgs);
}
if (!(m_flags & WALL_NONE)) {
if (ChkWallSort()) {
param_0.WallCorrectSort(this);
i_bgs.WallCorrectSort(this);
} else {
param_0.WallCorrect(this);
i_bgs.WallCorrect(this);
}
}
if (ChkWallHit() && bvar2) {
LineCheck(param_0);
LineCheck(i_bgs);
}
field_0xcc = 1000000000.0f;
if (!(m_flags & ROOF_NONE)) {
m_roof.SetExtChk(static_cast<cBgS_Chk&>(*this));
m_roof.SetExtChk(*this);
ClrRoofHit();
cXyz roof_pos;
roof_pos.x = pm_pos->x;
@@ -499,19 +400,22 @@ void dBgS_Acch::CrrPos(dBgS& param_0) {
roof_pos.z = pm_pos->z;
m_roof.i_SetPos(roof_pos);
m_roof_height = param_0.RoofChk(&m_roof);
m_roof_height = i_bgs.RoofChk(&m_roof);
// register issues
if (1000000000.0f != m_roof_height && GetPos()->y > 1000000000.0f + m_roof_crr_height) {
field_0xcc = m_roof_height - m_roof_crr_height;
SetRoofHit();
if (m_roof_height != 1000000000.0f) {
f32 y = GetPos()->y;
if (y + m_roof_crr_height > m_roof_height) {
field_0xcc = m_roof_height - m_roof_crr_height;
SetRoofHit();
}
}
}
if (!(m_flags & GRND_NONE)) {
ClrGroundFind();
GroundCheck(param_0);
GroundRoofProc(param_0);
GroundCheck(i_bgs);
GroundRoofProc(i_bgs);
} else {
if (field_0xcc < GetPos()->y) {
GetPos()->y = field_0xcc;
@@ -521,36 +425,39 @@ void dBgS_Acch::CrrPos(dBgS& param_0) {
if (!(m_flags & 0x400)) {
ClrWaterHit();
ClrWaterIn();
f32 tmp4 = -1000000000.0f;
m_wtr.SetHeight(-1000000000.0f);
f32 tmp3 = m_ground_h;
if (tmp4 == tmp3) {
tmp3 = GetPos()->y - 50.0f; // register issues
f32 var_f29;
f32 var_f30;
f32 temp_f1_5 = m_ground_h;
if (temp_f1_5 == -1000000000.0f) {
var_f29 = GetPos()->y - 50.0f;
} else {
tmp3 = 50.0f; // needs to be fmr
var_f29 = temp_f1_5;
}
if (m_wtr_mode == 1) {
tmp4 = tmp3 + m_wtr_chk_offset;
var_f30 = var_f29 + m_wtr_chk_offset;
} else {
dBgS_RoofChk roof_chk;
roof_chk.SetUnderwaterRoof();
roof_chk.i_SetPos(*pm_pos);
tmp4 = param_0.RoofChk(&roof_chk);
if (1000000000.0f == tmp4) {
tmp4 = GetPos()->y + 1000000.0f;
var_f30 = i_bgs.RoofChk(&roof_chk);
if (var_f30 == 1000000000.0f) {
var_f30 = GetPos()->y + 1000000.0f;
}
}
cXyz xyz;
xyz.x = pm_pos->x;
xyz.y = pm_pos->y;
xyz.z = pm_pos->z;
xyz.y = tmp3;
m_wtr.Set(xyz, tmp4);
m_wtr.SetPassChkInfo(static_cast<dBgS_PolyPassChk&>(*this));
if (param_0.WaterChk(&m_wtr)) {
cXyz wtr_pos;
wtr_pos = *pm_pos;
wtr_pos.y = var_f29;
m_wtr.Set(wtr_pos, var_f30);
m_wtr.SetPassChkInfo(*this);
if (i_bgs.WaterChk(&m_wtr)) {
SetWaterHit();
if (m_wtr.GetHeight() > GetPos()->y) {
SetWaterIn();
@@ -559,23 +466,13 @@ void dBgS_Acch::CrrPos(dBgS& param_0) {
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_Acch::CrrPos(dBgS& param_0) {
nofralloc
#include "asm/d/bg/d_bg_s_acch/CrrPos__9dBgS_AcchFR4dBgS.s"
}
#pragma pop
#endif
/* 80076F84-80076FC0 0718C4 003C+00 1/1 0/0 0/0 .text GetWallAllR__9dBgS_AcchFv */
f32 dBgS_Acch::GetWallAllR() {
f32 ret = FLOAT_LABEL(lit_4025);
f32 ret = 0.0f;
for (int i = 0; i < m_tbl_size; i++) {
f32 wall_r = static_cast<dBgS_AcchCir*>(field_0x8c + i)->GetWallR();
f32 wall_r = pm_acch_cir[i].GetWallR();
if (ret < wall_r) {
ret = wall_r;
}
@@ -586,33 +483,33 @@ f32 dBgS_Acch::GetWallAllR() {
/* 80076FC0-8007703C 071900 007C+00 1/1 0/0 0/0 .text SetWallCir__9dBgS_AcchFv */
void dBgS_Acch::SetWallCir() {
for (int i = 0; i < m_tbl_size; i++) {
static_cast<dBgS_AcchCir*>(field_0x8c + i)->SetCir(*pm_pos);
pm_acch_cir[i].SetCir(*pm_pos);
}
}
/* 8007703C-80077114 07197C 00D8+00 1/1 0/0 0/0 .text CalcWallBmdCyl__9dBgS_AcchFv */
// matches with literals
#ifdef NONMATCHING
void dBgS_Acch::CalcWallBmdCyl() {
if (m_tbl_size <= 0) {
m_wall_cyl.Set(*pm_pos, 0.0f, 0.0f);
} else {
f32 dvar8 = GetWallAllR();
f32 dvar9 = field_0x8c->GetWallH();
f32 dvar10 = field_0x8c->GetWallH();
f32 dvar9 = pm_acch_cir->GetWallH();
f32 dvar10 = pm_acch_cir->GetWallH();
if (m_tbl_size >= 1) {
for (int i = 0; i < m_tbl_size; i++) {
f32 tmp = static_cast<dBgS_AcchCir*>(field_0x8c + i)->GetWallH();
f32 tmp = pm_acch_cir[i].GetWallH();
if (dvar9 > tmp) {
dvar9 = static_cast<dBgS_AcchCir*>(field_0x8c + i)->GetWallH();
dvar9 = pm_acch_cir[i].GetWallH();
}
f32 tmp2 = static_cast<dBgS_AcchCir*>(field_0x8c + i)->GetWallH();
f32 tmp2 = pm_acch_cir[i].GetWallH();
if (dvar10 < tmp2) {
dvar10 = static_cast<dBgS_AcchCir*>(field_0x8c + i)->GetWallH();
dvar10 = pm_acch_cir[i].GetWallH();
}
}
}
cXyz xyz;
xyz.x = pm_pos->x;
xyz.y = pm_pos->y;
@@ -622,16 +519,6 @@ void dBgS_Acch::CalcWallBmdCyl() {
m_wall_cyl.Set(xyz, dvar8, dvar10 - dvar9);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_Acch::CalcWallBmdCyl() {
nofralloc
#include "asm/d/bg/d_bg_s_acch/CalcWallBmdCyl__9dBgS_AcchFv.s"
}
#pragma pop
#endif
/* 80077114-80077128 071A54 0014+00 0/0 0/0 24/24 .text SetGroundUpY__9dBgS_AcchFf */
void dBgS_Acch::SetGroundUpY(f32 param_0) {
@@ -642,35 +529,37 @@ void dBgS_Acch::SetGroundUpY(f32 param_0) {
/* 80077128-80077178 071A68 0050+00 1/1 0/0 0/0 .text GetWallAllLowH__9dBgS_AcchFv */
f32 dBgS_Acch::GetWallAllLowH() {
if (m_tbl_size <= 0) {
return FLOAT_LABEL(lit_4025);
return 0.0f;
}
f32 tmp = field_0x8c->GetWallH();
f32 tmp = pm_acch_cir->GetWallH();
for (int i = 1; i < m_tbl_size; i++) {
f32 tmp2 = static_cast<dBgS_AcchCir*>(field_0x8c + i)->GetWallH();
f32 tmp2 = pm_acch_cir[i].GetWallH();
if (tmp > tmp2) {
tmp = static_cast<dBgS_AcchCir*>(field_0x8c + i)->GetWallH();
tmp = pm_acch_cir[i].GetWallH();
}
}
return tmp;
}
/* 80077178-800771E4 071AB8 006C+00 1/1 0/0 0/0 .text GetWallAllLowH_R__9dBgS_AcchFv */
f32 dBgS_Acch::GetWallAllLowH_R() {
if (m_tbl_size <= 0) {
return FLOAT_LABEL(lit_4025);
return 0.0f;
}
int index = 0;
f32 tmp = field_0x8c->GetWallH();
f32 tmp = pm_acch_cir->GetWallH();
for (int i = 1; i < m_tbl_size; i++) {
f32 tmp2 = static_cast<dBgS_AcchCir*>(field_0x8c + i)->GetWallH();
f32 tmp2 = pm_acch_cir[i].GetWallH();
if (tmp > tmp2) {
tmp = static_cast<dBgS_AcchCir*>(field_0x8c + i)->GetWallH();
tmp = pm_acch_cir[i].GetWallH();
index = i;
}
}
return static_cast<dBgS_AcchCir*>(field_0x8c + index)->GetWallR();
return pm_acch_cir[index].GetWallR();
}
/* 800771E4-80077200 071B24 001C+00 1/1 4/4 0/0 .text GetSpeedY__9dBgS_AcchFv */
@@ -678,20 +567,11 @@ f32 dBgS_Acch::GetSpeedY() {
if (pm_speed != NULL) {
return pm_speed->y;
}
return FLOAT_LABEL(lit_4025);
return 0.0f;
}
/* ############################################################################################## */
/* 804526E0-804526E8 000CE0 0004+04 1/1 0/0 0/0 .sdata2 @4762 */
SECTION_SDATA2 static f32 lit_4762[1 + 1 /* padding */] = {
0.5f,
/* padding */
0.0f,
};
/* 80077200-80077278 071B40 0078+00 0/0 4/4 0/0 .text GetWallAddY__9dBgS_AcchFR3Vec */
// matches with literals
#ifdef NONMATCHING
f32 dBgS_Acch::GetWallAddY(Vec& param_0) {
if (!ChkGroundFind() || field_0xa0.mNormal.y < 0.5f) {
return 0.0f;
@@ -704,18 +584,9 @@ f32 dBgS_Acch::GetWallAddY(Vec& param_0) {
}
return -tmp;
}
return 0.0f;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 dBgS_Acch::GetWallAddY(Vec& param_0) {
nofralloc
#include "asm/d/bg/d_bg_s_acch/GetWallAddY__9dBgS_AcchFR3Vec.s"
}
#pragma pop
#endif
/* 80077278-80077288 071BB8 0010+00 0/0 2/2 0/0 .text SetNowActorInfo__9dBgS_AcchFiPvUi
*/
@@ -727,9 +598,8 @@ void dBgS_Acch::SetNowActorInfo(int bg_index, void* param_1, unsigned int param_
/* 80077288-800772E8 071BC8 0060+00 0/0 4/4 0/0 .text SetWallPolyIndex__9dBgS_AcchFii */
void dBgS_Acch::SetWallPolyIndex(int index, int poly_index) {
static_cast<dBgS_AcchCir*>(field_0x8c + index)
->SetActorInfo(m_bg_index, field_0x7c, field_0x80);
static_cast<dBgS_AcchCir*>(field_0x8c + index)->SetPolyIndex(poly_index);
pm_acch_cir[index].SetActorInfo(m_bg_index, field_0x7c, field_0x80);
pm_acch_cir[index].SetPolyIndex(poly_index);
}
/* 800772E8-8007732C 071C28 0044+00 0/0 6/6 0/0 .text CalcMovePosWork__9dBgS_AcchFv */
@@ -742,7 +612,7 @@ void dBgS_Acch::CalcMovePosWork() {
/* 8007732C-80077388 071C6C 005C+00 0/0 2/2 0/0 .text CalcWallRR__9dBgS_AcchFv */
void dBgS_Acch::CalcWallRR() {
for (int i = 0; i < m_tbl_size; i++) {
static_cast<dBgS_AcchCir*>(field_0x8c + i)->CalcWallRR();
pm_acch_cir[i].CalcWallRR();
}
}
@@ -791,39 +661,4 @@ bool dBgS_Acch::ChkLineDown() {
return m_flags & LINE_DOWN;
}
/* 80077414-80077484 071D54 0070+00 1/0 2/2 0/0 .text __dt__12dBgS_AcchCirFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_AcchCir::~dBgS_AcchCir() {
extern "C" asm void __dt__12dBgS_AcchCirFv() {
nofralloc
#include "asm/d/bg/d_bg_s_acch/__dt__12dBgS_AcchCirFv.s"
}
#pragma pop
/* 80077484-8007748C 071DC4 0008+00 1/0 0/0 0/0 .text @36@__dt__9dBgS_AcchFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077484() {
nofralloc
#include "asm/d/bg/d_bg_s_acch/func_80077484.s"
}
#pragma pop
/* 8007748C-80077494 071DCC 0008+00 1/0 0/0 0/0 .text @20@__dt__9dBgS_AcchFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007748C() {
nofralloc
#include "asm/d/bg/d_bg_s_acch/func_8007748C.s"
}
#pragma pop
/* 80077494-8007749C 071DD4 0008+00 0/0 1/0 0/0 .text checkPlayerFly__9daPy_py_cCFv */
// u32 daPy_py_c::checkPlayerFly() const {
extern "C" u32 checkPlayerFly__9daPy_py_cCFv() {
return 0;
}
#pragma nosyminline on
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* d_bg_s_chk.cpp
*
* BG Collision Check Base
*/
#include "d/bg/d_bg_s_chk.h"
+10 -388
View File
@@ -1,159 +1,9 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s_gnd_chk
//
/**
* d_bg_s_gnd_chk.cpp
* BG Collision Ground Check
*/
#include "d/bg/d_bg_s_gnd_chk.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" void __ct__11dBgS_GndChkFv();
extern "C" void __dt__11dBgS_GndChkFv();
extern "C" void __ct__18dBgS_ObjGndChk_WtrFv();
extern "C" void __dt__18dBgS_ObjGndChk_WtrFv();
extern "C" void __ct__18dBgS_ObjGndChk_SplFv();
extern "C" void __dt__18dBgS_ObjGndChk_SplFv();
extern "C" void __dt__18dBgS_ObjGndChk_AllFv();
extern "C" void __dt__14dBgS_CamGndChkFv();
extern "C" void __ct__18dBgS_CamGndChk_WtrFv();
extern "C" void __dt__18dBgS_CamGndChk_WtrFv();
extern "C" static void func_80077B10();
extern "C" static void func_80077B18();
extern "C" static void func_80077B20();
extern "C" static void func_80077B28();
extern "C" static void func_80077B30();
extern "C" static void func_80077B38();
extern "C" static void func_80077B40();
extern "C" static void func_80077B48();
extern "C" static void func_80077B50();
extern "C" static void func_80077B58();
extern "C" static void func_80077B60();
extern "C" static void func_80077B68();
extern "C" static void func_80077B70();
extern "C" static void func_80077B78();
extern "C" static void func_80077B80();
extern "C" static void func_80077B88();
extern "C" static void func_80077B90();
extern "C" static void func_80077B98();
//
// External References:
//
extern "C" void __ct__8dBgS_ChkFv();
extern "C" void __dt__8dBgS_ChkFv();
extern "C" void GetPolyPassChkInfo__8dBgS_ChkFv();
extern "C" void GetGrpPassChkInfo__8dBgS_ChkFv();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void SetCam__16dBgS_PolyPassChkFv();
extern "C" void __ct__11cBgS_GndChkFv();
extern "C" void __dt__11cBgS_GndChkFv();
extern "C" void __dl__FPv();
extern "C" extern void* __vt__14dBgS_ObjGndChk[12 + 1 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 803AB688-803AB6B8 0087A8 0030+00 2/2 0/0 0/0 .data __vt__18dBgS_CamGndChk_Wtr */
SECTION_DATA extern void* __vt__18dBgS_CamGndChk_Wtr[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__18dBgS_CamGndChk_WtrFv,
(void*)NULL,
(void*)NULL,
(void*)func_80077B88,
(void*)NULL,
(void*)NULL,
(void*)func_80077B98,
(void*)NULL,
(void*)NULL,
(void*)func_80077B90,
};
/* 803AB6B8-803AB6E8 0087D8 0030+00 2/2 2/2 0/0 .data __vt__14dBgS_CamGndChk */
SECTION_DATA extern void* __vt__14dBgS_CamGndChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__14dBgS_CamGndChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_80077B70,
(void*)NULL,
(void*)NULL,
(void*)func_80077B80,
(void*)NULL,
(void*)NULL,
(void*)func_80077B78,
};
/* 803AB6E8-803AB718 008808 0030+00 1/1 3/3 8/8 .data __vt__18dBgS_ObjGndChk_All */
SECTION_DATA extern void* __vt__18dBgS_ObjGndChk_All[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__18dBgS_ObjGndChk_AllFv,
(void*)NULL,
(void*)NULL,
(void*)func_80077B58,
(void*)NULL,
(void*)NULL,
(void*)func_80077B68,
(void*)NULL,
(void*)NULL,
(void*)func_80077B60,
};
/* 803AB718-803AB748 008838 0030+00 2/2 0/0 0/0 .data __vt__18dBgS_ObjGndChk_Spl */
SECTION_DATA extern void* __vt__18dBgS_ObjGndChk_Spl[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__18dBgS_ObjGndChk_SplFv,
(void*)NULL,
(void*)NULL,
(void*)func_80077B40,
(void*)NULL,
(void*)NULL,
(void*)func_80077B50,
(void*)NULL,
(void*)NULL,
(void*)func_80077B48,
};
/* 803AB748-803AB778 008868 0030+00 2/2 0/0 0/0 .data __vt__18dBgS_ObjGndChk_Wtr */
SECTION_DATA extern void* __vt__18dBgS_ObjGndChk_Wtr[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__18dBgS_ObjGndChk_WtrFv,
(void*)NULL,
(void*)NULL,
(void*)func_80077B28,
(void*)NULL,
(void*)NULL,
(void*)func_80077B38,
(void*)NULL,
(void*)NULL,
(void*)func_80077B30,
};
/* 803AB778-803AB7A8 008898 0030+00 2/2 0/0 0/0 .data __vt__11dBgS_GndChk */
SECTION_DATA extern void* __vt__11dBgS_GndChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__11dBgS_GndChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_80077B10,
(void*)NULL,
(void*)NULL,
(void*)func_80077B20,
(void*)NULL,
(void*)NULL,
(void*)func_80077B18,
};
/* 8007757C-800775F0 071EBC 0074+00 3/3 15/15 289/289 .text __ct__11dBgS_GndChkFv */
dBgS_GndChk::dBgS_GndChk() {
@@ -162,15 +12,7 @@ dBgS_GndChk::dBgS_GndChk() {
}
/* 800775F0-80077678 071F30 0088+00 8/7 13/13 295/295 .text __dt__11dBgS_GndChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_GndChk::~dBgS_GndChk() {
extern "C" asm void __dt__11dBgS_GndChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/__dt__11dBgS_GndChkFv.s"
}
#pragma pop
dBgS_GndChk::~dBgS_GndChk() {}
/* 80077678-80077710 071FB8 0098+00 0/0 0/0 1/1 .text __ct__18dBgS_ObjGndChk_WtrFv */
dBgS_ObjGndChk_Wtr::dBgS_ObjGndChk_Wtr() {
@@ -179,15 +21,7 @@ dBgS_ObjGndChk_Wtr::dBgS_ObjGndChk_Wtr() {
}
/* 80077710-800777B0 072050 00A0+00 4/3 0/0 1/1 .text __dt__18dBgS_ObjGndChk_WtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_ObjGndChk_Wtr::~dBgS_ObjGndChk_Wtr() {
extern "C" asm void __dt__18dBgS_ObjGndChk_WtrFv() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/__dt__18dBgS_ObjGndChk_WtrFv.s"
}
#pragma pop
dBgS_ObjGndChk_Wtr::~dBgS_ObjGndChk_Wtr() {}
/* 800777B0-80077848 0720F0 0098+00 0/0 0/0 61/61 .text __ct__18dBgS_ObjGndChk_SplFv */
dBgS_ObjGndChk_Spl::dBgS_ObjGndChk_Spl() {
@@ -196,37 +30,13 @@ dBgS_ObjGndChk_Spl::dBgS_ObjGndChk_Spl() {
}
/* 80077848-800778E8 072188 00A0+00 4/3 0/0 61/61 .text __dt__18dBgS_ObjGndChk_SplFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_ObjGndChk_Spl::~dBgS_ObjGndChk_Spl() {
extern "C" asm void __dt__18dBgS_ObjGndChk_SplFv() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/__dt__18dBgS_ObjGndChk_SplFv.s"
}
#pragma pop
dBgS_ObjGndChk_Spl::~dBgS_ObjGndChk_Spl() {}
/* 800778E8-80077988 072228 00A0+00 4/3 3/3 7/7 .text __dt__18dBgS_ObjGndChk_AllFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_ObjGndChk_All::~dBgS_ObjGndChk_All() {
extern "C" asm void __dt__18dBgS_ObjGndChk_AllFv() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/__dt__18dBgS_ObjGndChk_AllFv.s"
}
#pragma pop
dBgS_ObjGndChk_All::~dBgS_ObjGndChk_All() {}
/* 80077988-80077A00 0722C8 0078+00 5/4 2/2 0/0 .text __dt__14dBgS_CamGndChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_CamGndChk::~dBgS_CamGndChk() {
extern "C" asm void __dt__14dBgS_CamGndChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/__dt__14dBgS_CamGndChkFv.s"
}
#pragma pop
dBgS_CamGndChk::~dBgS_CamGndChk() {}
/* 80077A00-80077A98 072340 0098+00 0/0 5/5 1/1 .text __ct__18dBgS_CamGndChk_WtrFv */
dBgS_CamGndChk_Wtr::dBgS_CamGndChk_Wtr() {
@@ -235,192 +45,4 @@ dBgS_CamGndChk_Wtr::dBgS_CamGndChk_Wtr() {
}
/* 80077A98-80077B10 0723D8 0078+00 4/3 5/5 1/1 .text __dt__18dBgS_CamGndChk_WtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_CamGndChk_Wtr::~dBgS_CamGndChk_Wtr() {
extern "C" asm void __dt__18dBgS_CamGndChk_WtrFv() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/__dt__18dBgS_CamGndChk_WtrFv.s"
}
#pragma pop
/* 80077B10-80077B18 072450 0008+00 1/0 0/0 0/0 .text @20@__dt__11dBgS_GndChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B10() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B10.s"
}
#pragma pop
/* 80077B18-80077B20 072458 0008+00 1/0 0/0 0/0 .text @76@__dt__11dBgS_GndChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B18() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B18.s"
}
#pragma pop
/* 80077B20-80077B28 072460 0008+00 1/0 0/0 0/0 .text @60@__dt__11dBgS_GndChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B20() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B20.s"
}
#pragma pop
/* 80077B28-80077B30 072468 0008+00 1/0 0/0 0/0 .text @20@__dt__18dBgS_ObjGndChk_WtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B28() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B28.s"
}
#pragma pop
/* 80077B30-80077B38 072470 0008+00 1/0 0/0 0/0 .text @76@__dt__18dBgS_ObjGndChk_WtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B30() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B30.s"
}
#pragma pop
/* 80077B38-80077B40 072478 0008+00 1/0 0/0 0/0 .text @60@__dt__18dBgS_ObjGndChk_WtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B38() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B38.s"
}
#pragma pop
/* 80077B40-80077B48 072480 0008+00 1/0 0/0 0/0 .text @20@__dt__18dBgS_ObjGndChk_SplFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B40() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B40.s"
}
#pragma pop
/* 80077B48-80077B50 072488 0008+00 1/0 0/0 0/0 .text @76@__dt__18dBgS_ObjGndChk_SplFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B48() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B48.s"
}
#pragma pop
/* 80077B50-80077B58 072490 0008+00 1/0 0/0 0/0 .text @60@__dt__18dBgS_ObjGndChk_SplFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B50() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B50.s"
}
#pragma pop
/* 80077B58-80077B60 072498 0008+00 1/0 0/0 0/0 .text @20@__dt__18dBgS_ObjGndChk_AllFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B58() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B58.s"
}
#pragma pop
/* 80077B60-80077B68 0724A0 0008+00 1/0 0/0 0/0 .text @76@__dt__18dBgS_ObjGndChk_AllFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B60() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B60.s"
}
#pragma pop
/* 80077B68-80077B70 0724A8 0008+00 1/0 0/0 0/0 .text @60@__dt__18dBgS_ObjGndChk_AllFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B68() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B68.s"
}
#pragma pop
/* 80077B70-80077B78 0724B0 0008+00 1/0 0/0 0/0 .text @20@__dt__14dBgS_CamGndChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B70() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B70.s"
}
#pragma pop
/* 80077B78-80077B80 0724B8 0008+00 1/0 0/0 0/0 .text @76@__dt__14dBgS_CamGndChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B78() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B78.s"
}
#pragma pop
/* 80077B80-80077B88 0724C0 0008+00 1/0 0/0 0/0 .text @60@__dt__14dBgS_CamGndChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B80() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B80.s"
}
#pragma pop
/* 80077B88-80077B90 0724C8 0008+00 1/0 0/0 0/0 .text @20@__dt__18dBgS_CamGndChk_WtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B88() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B88.s"
}
#pragma pop
/* 80077B90-80077B98 0724D0 0008+00 1/0 0/0 0/0 .text @76@__dt__18dBgS_CamGndChk_WtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B90() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B90.s"
}
#pragma pop
/* 80077B98-80077BA0 0724D8 0008+00 1/0 0/0 0/0 .text @60@__dt__18dBgS_CamGndChk_WtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077B98() {
nofralloc
#include "asm/d/bg/d_bg_s_gnd_chk/func_80077B98.s"
}
#pragma pop
dBgS_CamGndChk_Wtr::~dBgS_CamGndChk_Wtr() {}
+4 -3
View File
@@ -1,6 +1,7 @@
//
// d/bg/d_bg_s_grp_pass_chk.cpp
//
/**
* d_bg_s_grp_pass_chk.cpp
*
*/
#include "d/bg/d_bg_s_grp_pass_chk.h"
+14 -642
View File
@@ -1,254 +1,11 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s_lin_chk
//
/**
* d_bg_s_lin_chk.cpp
* BG Collision Line Check
*/
#include "d/bg/d_bg_s_lin_chk.h"
#include "dol2asm.h"
#include "f_op/f_op_actor_mng.h"
//
// Forward References:
//
extern "C" void __ct__11dBgS_LinChkFv();
extern "C" void __dt__11dBgS_LinChkFv();
extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c();
extern "C" void __ct__14dBgS_CamLinChkFv();
extern "C" void __dt__14dBgS_CamLinChkFv();
extern "C" void __ct__21dBgS_CamLinChk_NorWtrFv();
extern "C" void __dt__21dBgS_CamLinChk_NorWtrFv();
extern "C" void __ct__14dBgS_ObjLinChkFv();
extern "C" void __dt__14dBgS_ObjLinChkFv();
extern "C" void __ct__15dBgS_LinkLinChkFv();
extern "C" void __dt__15dBgS_LinkLinChkFv();
extern "C" void __ct__15dBgS_BombLinChkFv();
extern "C" void __dt__15dBgS_BombLinChkFv();
extern "C" void __ct__16dBgS_ArrowLinChkFv();
extern "C" void __dt__16dBgS_ArrowLinChkFv();
extern "C" void __ct__20dBgS_BoomerangLinChkFv();
extern "C" void __dt__20dBgS_BoomerangLinChkFv();
extern "C" void __ct__15dBgS_RopeLinChkFv();
extern "C" void __dt__15dBgS_RopeLinChkFv();
extern "C" void __ct__16dBgS_HorseLinChkFv();
extern "C" void __dt__16dBgS_HorseLinChkFv();
extern "C" static void func_80078534();
extern "C" static void func_8007853C();
extern "C" static void func_80078544();
extern "C" static void func_8007854C();
extern "C" static void func_80078554();
extern "C" static void func_8007855C();
extern "C" static void func_80078564();
extern "C" static void func_8007856C();
extern "C" static void func_80078574();
extern "C" static void func_8007857C();
extern "C" static void func_80078584();
extern "C" static void func_8007858C();
extern "C" static void func_80078594();
extern "C" static void func_8007859C();
extern "C" static void func_800785A4();
extern "C" static void func_800785AC();
extern "C" static void func_800785B4();
extern "C" static void func_800785BC();
extern "C" static void func_800785C4();
extern "C" static void func_800785CC();
extern "C" static void func_800785D4();
extern "C" static void func_800785DC();
extern "C" static void func_800785E4();
extern "C" static void func_800785EC();
extern "C" static void func_800785F4();
extern "C" static void func_800785FC();
extern "C" static void func_80078604();
extern "C" static void func_8007860C();
extern "C" static void func_80078614();
extern "C" static void func_8007861C();
//
// External References:
//
extern "C" void __ct__8dBgS_ChkFv();
extern "C" void __dt__8dBgS_ChkFv();
extern "C" void GetPolyPassChkInfo__8dBgS_ChkFv();
extern "C" void GetGrpPassChkInfo__8dBgS_ChkFv();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void SetCam__16dBgS_PolyPassChkFv();
extern "C" void SetLink__16dBgS_PolyPassChkFv();
extern "C" void SetArrow__16dBgS_PolyPassChkFv();
extern "C" void SetBomb__16dBgS_PolyPassChkFv();
extern "C" void SetBoomerang__16dBgS_PolyPassChkFv();
extern "C" void SetRope__16dBgS_PolyPassChkFv();
extern "C" void SetHorse__16dBgS_PolyPassChkFv();
extern "C" void __ct__11cBgS_LinChkFv();
extern "C" void __dt__11cBgS_LinChkFv();
extern "C" void Set2__11cBgS_LinChkFPC4cXyzPC4cXyzUi();
extern "C" void __dl__FPv();
//
// Declarations:
//
/* ############################################################################################## */
/* 803AB7C0-803AB7F0 0088E0 0030+00 2/2 0/0 0/0 .data __vt__16dBgS_HorseLinChk */
SECTION_DATA extern void* __vt__16dBgS_HorseLinChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__16dBgS_HorseLinChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_8007860C,
(void*)NULL,
(void*)NULL,
(void*)func_8007861C,
(void*)NULL,
(void*)NULL,
(void*)func_80078614,
};
/* 803AB7F0-803AB820 008910 0030+00 2/2 0/0 0/0 .data __vt__15dBgS_RopeLinChk */
SECTION_DATA extern void* __vt__15dBgS_RopeLinChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15dBgS_RopeLinChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_800785F4,
(void*)NULL,
(void*)NULL,
(void*)func_80078604,
(void*)NULL,
(void*)NULL,
(void*)func_800785FC,
};
/* 803AB820-803AB850 008940 0030+00 2/2 0/0 0/0 .data __vt__20dBgS_BoomerangLinChk */
SECTION_DATA extern void* __vt__20dBgS_BoomerangLinChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__20dBgS_BoomerangLinChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_800785DC,
(void*)NULL,
(void*)NULL,
(void*)func_800785EC,
(void*)NULL,
(void*)NULL,
(void*)func_800785E4,
};
/* 803AB850-803AB880 008970 0030+00 2/2 0/0 0/0 .data __vt__16dBgS_ArrowLinChk */
SECTION_DATA extern void* __vt__16dBgS_ArrowLinChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__16dBgS_ArrowLinChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_800785C4,
(void*)NULL,
(void*)NULL,
(void*)func_800785D4,
(void*)NULL,
(void*)NULL,
(void*)func_800785CC,
};
/* 803AB880-803AB8B0 0089A0 0030+00 2/2 0/0 0/0 .data __vt__15dBgS_BombLinChk */
SECTION_DATA extern void* __vt__15dBgS_BombLinChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15dBgS_BombLinChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_800785AC,
(void*)NULL,
(void*)NULL,
(void*)func_800785BC,
(void*)NULL,
(void*)NULL,
(void*)func_800785B4,
};
/* 803AB8B0-803AB8E0 0089D0 0030+00 2/2 0/0 0/0 .data __vt__15dBgS_LinkLinChk */
SECTION_DATA extern void* __vt__15dBgS_LinkLinChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15dBgS_LinkLinChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_80078594,
(void*)NULL,
(void*)NULL,
(void*)func_800785A4,
(void*)NULL,
(void*)NULL,
(void*)func_8007859C,
};
/* 803AB8E0-803AB910 008A00 0030+00 2/2 0/0 0/0 .data __vt__14dBgS_ObjLinChk */
SECTION_DATA extern void* __vt__14dBgS_ObjLinChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__14dBgS_ObjLinChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_8007857C,
(void*)NULL,
(void*)NULL,
(void*)func_8007858C,
(void*)NULL,
(void*)NULL,
(void*)func_80078584,
};
/* 803AB910-803AB940 008A30 0030+00 2/2 0/0 0/0 .data __vt__21dBgS_CamLinChk_NorWtr */
SECTION_DATA extern void* __vt__21dBgS_CamLinChk_NorWtr[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__21dBgS_CamLinChk_NorWtrFv,
(void*)NULL,
(void*)NULL,
(void*)func_80078564,
(void*)NULL,
(void*)NULL,
(void*)func_80078574,
(void*)NULL,
(void*)NULL,
(void*)func_8007856C,
};
/* 803AB940-803AB970 008A60 0030+00 2/2 0/0 0/0 .data __vt__14dBgS_CamLinChk */
SECTION_DATA extern void* __vt__14dBgS_CamLinChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__14dBgS_CamLinChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_8007854C,
(void*)NULL,
(void*)NULL,
(void*)func_8007855C,
(void*)NULL,
(void*)NULL,
(void*)func_80078554,
};
/* 803AB970-803AB9A0 008A90 0030+00 2/2 0/0 0/0 .data __vt__11dBgS_LinChk */
SECTION_DATA extern void* __vt__11dBgS_LinChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__11dBgS_LinChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_80078534,
(void*)NULL,
(void*)NULL,
(void*)func_80078544,
(void*)NULL,
(void*)NULL,
(void*)func_8007853C,
};
/* 80077C68-80077CDC 0725A8 0074+00 8/8 3/3 388/388 .text __ct__11dBgS_LinChkFv */
dBgS_LinChk::dBgS_LinChk() {
SetPolyPassChk(GetPolyPassChkInfo());
@@ -256,15 +13,7 @@ dBgS_LinChk::dBgS_LinChk() {
}
/* 80077CDC-80077D64 07261C 0088+00 12/11 5/5 378/378 .text __dt__11dBgS_LinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_LinChk::~dBgS_LinChk() {
extern "C" asm void __dt__11dBgS_LinChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__11dBgS_LinChkFv.s"
}
#pragma pop
dBgS_LinChk::~dBgS_LinChk() {}
/* 80077D64-80077DA4 0726A4 0040+00 0/0 15/15 307/307 .text
* Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c */
@@ -285,15 +34,7 @@ dBgS_CamLinChk::dBgS_CamLinChk() {
}
/* 80077E00-80077E78 072740 0078+00 5/4 12/12 1/1 .text __dt__14dBgS_CamLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_CamLinChk::~dBgS_CamLinChk() {
extern "C" asm void __dt__14dBgS_CamLinChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__14dBgS_CamLinChkFv.s"
}
#pragma pop
dBgS_CamLinChk::~dBgS_CamLinChk() {}
/* 80077E78-80077EE4 0727B8 006C+00 0/0 0/0 1/1 .text __ct__21dBgS_CamLinChk_NorWtrFv */
dBgS_CamLinChk_NorWtr::dBgS_CamLinChk_NorWtr() {
@@ -302,15 +43,7 @@ dBgS_CamLinChk_NorWtr::dBgS_CamLinChk_NorWtr() {
}
/* 80077EE4-80077F5C 072824 0078+00 4/3 0/0 1/1 .text __dt__21dBgS_CamLinChk_NorWtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_CamLinChk_NorWtr::~dBgS_CamLinChk_NorWtr() {
extern "C" asm void __dt__21dBgS_CamLinChk_NorWtrFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__21dBgS_CamLinChk_NorWtrFv.s"
}
#pragma pop
dBgS_CamLinChk_NorWtr::~dBgS_CamLinChk_NorWtr() {}
/* 80077F5C-80077FB8 07289C 005C+00 0/0 4/4 9/9 .text __ct__14dBgS_ObjLinChkFv */
dBgS_ObjLinChk::dBgS_ObjLinChk() {
@@ -318,15 +51,7 @@ dBgS_ObjLinChk::dBgS_ObjLinChk() {
}
/* 80077FB8-80078030 0728F8 0078+00 4/3 2/2 11/11 .text __dt__14dBgS_ObjLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_ObjLinChk::~dBgS_ObjLinChk() {
extern "C" asm void __dt__14dBgS_ObjLinChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__14dBgS_ObjLinChkFv.s"
}
#pragma pop
dBgS_ObjLinChk::~dBgS_ObjLinChk() {}
/* 80078030-8007808C 072970 005C+00 0/0 1/1 4/4 .text __ct__15dBgS_LinkLinChkFv */
dBgS_LinkLinChk::dBgS_LinkLinChk() {
@@ -334,15 +59,7 @@ dBgS_LinkLinChk::dBgS_LinkLinChk() {
}
/* 8007808C-80078104 0729CC 0078+00 4/3 1/1 5/5 .text __dt__15dBgS_LinkLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_LinkLinChk::~dBgS_LinkLinChk() {
extern "C" asm void __dt__15dBgS_LinkLinChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__15dBgS_LinkLinChkFv.s"
}
#pragma pop
dBgS_LinkLinChk::~dBgS_LinkLinChk() {}
/* 80078104-80078160 072A44 005C+00 0/0 0/0 1/1 .text __ct__15dBgS_BombLinChkFv */
dBgS_BombLinChk::dBgS_BombLinChk() {
@@ -350,15 +67,7 @@ dBgS_BombLinChk::dBgS_BombLinChk() {
}
/* 80078160-800781D8 072AA0 0078+00 4/3 0/0 1/1 .text __dt__15dBgS_BombLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_BombLinChk::~dBgS_BombLinChk() {
extern "C" asm void __dt__15dBgS_BombLinChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__15dBgS_BombLinChkFv.s"
}
#pragma pop
dBgS_BombLinChk::~dBgS_BombLinChk() {}
/* 800781D8-80078240 072B18 0068+00 0/0 1/1 2/2 .text __ct__16dBgS_ArrowLinChkFv */
dBgS_ArrowLinChk::dBgS_ArrowLinChk() {
@@ -367,15 +76,7 @@ dBgS_ArrowLinChk::dBgS_ArrowLinChk() {
}
/* 80078240-800782B8 072B80 0078+00 4/3 1/1 2/2 .text __dt__16dBgS_ArrowLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_ArrowLinChk::~dBgS_ArrowLinChk() {
extern "C" asm void __dt__16dBgS_ArrowLinChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__16dBgS_ArrowLinChkFv.s"
}
#pragma pop
dBgS_ArrowLinChk::~dBgS_ArrowLinChk() {}
/* 800782B8-80078314 072BF8 005C+00 0/0 1/1 1/1 .text __ct__20dBgS_BoomerangLinChkFv */
dBgS_BoomerangLinChk::dBgS_BoomerangLinChk() {
@@ -383,15 +84,7 @@ dBgS_BoomerangLinChk::dBgS_BoomerangLinChk() {
}
/* 80078314-8007838C 072C54 0078+00 4/3 1/1 1/1 .text __dt__20dBgS_BoomerangLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_BoomerangLinChk::~dBgS_BoomerangLinChk() {
extern "C" asm void __dt__20dBgS_BoomerangLinChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__20dBgS_BoomerangLinChkFv.s"
}
#pragma pop
dBgS_BoomerangLinChk::~dBgS_BoomerangLinChk() {}
/* 8007838C-800783E8 072CCC 005C+00 0/0 1/1 0/0 .text __ct__15dBgS_RopeLinChkFv */
dBgS_RopeLinChk::dBgS_RopeLinChk() {
@@ -399,15 +92,7 @@ dBgS_RopeLinChk::dBgS_RopeLinChk() {
}
/* 800783E8-80078460 072D28 0078+00 4/3 1/1 0/0 .text __dt__15dBgS_RopeLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_RopeLinChk::~dBgS_RopeLinChk() {
extern "C" asm void __dt__15dBgS_RopeLinChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__15dBgS_RopeLinChkFv.s"
}
#pragma pop
dBgS_RopeLinChk::~dBgS_RopeLinChk() {}
/* 80078460-800784BC 072DA0 005C+00 0/0 0/0 1/1 .text __ct__16dBgS_HorseLinChkFv */
dBgS_HorseLinChk::dBgS_HorseLinChk() {
@@ -415,317 +100,4 @@ dBgS_HorseLinChk::dBgS_HorseLinChk() {
}
/* 800784BC-80078534 072DFC 0078+00 4/3 0/0 1/1 .text __dt__16dBgS_HorseLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_HorseLinChk::~dBgS_HorseLinChk() {
extern "C" asm void __dt__16dBgS_HorseLinChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/__dt__16dBgS_HorseLinChkFv.s"
}
#pragma pop
/* 80078534-8007853C 072E74 0008+00 1/0 0/0 0/0 .text @20@__dt__11dBgS_LinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078534() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_80078534.s"
}
#pragma pop
/* 8007853C-80078544 072E7C 0008+00 1/0 0/0 0/0 .text @104@__dt__11dBgS_LinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007853C() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_8007853C.s"
}
#pragma pop
/* 80078544-8007854C 072E84 0008+00 1/0 0/0 0/0 .text @88@__dt__11dBgS_LinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078544() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_80078544.s"
}
#pragma pop
/* 8007854C-80078554 072E8C 0008+00 1/0 0/0 0/0 .text @20@__dt__14dBgS_CamLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007854C() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_8007854C.s"
}
#pragma pop
/* 80078554-8007855C 072E94 0008+00 1/0 0/0 0/0 .text @104@__dt__14dBgS_CamLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078554() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_80078554.s"
}
#pragma pop
/* 8007855C-80078564 072E9C 0008+00 1/0 0/0 0/0 .text @88@__dt__14dBgS_CamLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007855C() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_8007855C.s"
}
#pragma pop
/* 80078564-8007856C 072EA4 0008+00 1/0 0/0 0/0 .text @20@__dt__21dBgS_CamLinChk_NorWtrFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078564() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_80078564.s"
}
#pragma pop
/* 8007856C-80078574 072EAC 0008+00 1/0 0/0 0/0 .text @104@__dt__21dBgS_CamLinChk_NorWtrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007856C() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_8007856C.s"
}
#pragma pop
/* 80078574-8007857C 072EB4 0008+00 1/0 0/0 0/0 .text @88@__dt__21dBgS_CamLinChk_NorWtrFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078574() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_80078574.s"
}
#pragma pop
/* 8007857C-80078584 072EBC 0008+00 1/0 0/0 0/0 .text @20@__dt__14dBgS_ObjLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007857C() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_8007857C.s"
}
#pragma pop
/* 80078584-8007858C 072EC4 0008+00 1/0 0/0 0/0 .text @104@__dt__14dBgS_ObjLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078584() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_80078584.s"
}
#pragma pop
/* 8007858C-80078594 072ECC 0008+00 1/0 0/0 0/0 .text @88@__dt__14dBgS_ObjLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007858C() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_8007858C.s"
}
#pragma pop
/* 80078594-8007859C 072ED4 0008+00 1/0 0/0 0/0 .text @20@__dt__15dBgS_LinkLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078594() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_80078594.s"
}
#pragma pop
/* 8007859C-800785A4 072EDC 0008+00 1/0 0/0 0/0 .text @104@__dt__15dBgS_LinkLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007859C() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_8007859C.s"
}
#pragma pop
/* 800785A4-800785AC 072EE4 0008+00 1/0 0/0 0/0 .text @88@__dt__15dBgS_LinkLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785A4() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785A4.s"
}
#pragma pop
/* 800785AC-800785B4 072EEC 0008+00 1/0 0/0 0/0 .text @20@__dt__15dBgS_BombLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785AC() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785AC.s"
}
#pragma pop
/* 800785B4-800785BC 072EF4 0008+00 1/0 0/0 0/0 .text @104@__dt__15dBgS_BombLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785B4() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785B4.s"
}
#pragma pop
/* 800785BC-800785C4 072EFC 0008+00 1/0 0/0 0/0 .text @88@__dt__15dBgS_BombLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785BC() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785BC.s"
}
#pragma pop
/* 800785C4-800785CC 072F04 0008+00 1/0 0/0 0/0 .text @20@__dt__16dBgS_ArrowLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785C4() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785C4.s"
}
#pragma pop
/* 800785CC-800785D4 072F0C 0008+00 1/0 0/0 0/0 .text @104@__dt__16dBgS_ArrowLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785CC() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785CC.s"
}
#pragma pop
/* 800785D4-800785DC 072F14 0008+00 1/0 0/0 0/0 .text @88@__dt__16dBgS_ArrowLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785D4() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785D4.s"
}
#pragma pop
/* 800785DC-800785E4 072F1C 0008+00 1/0 0/0 0/0 .text @20@__dt__20dBgS_BoomerangLinChkFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785DC() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785DC.s"
}
#pragma pop
/* 800785E4-800785EC 072F24 0008+00 1/0 0/0 0/0 .text @104@__dt__20dBgS_BoomerangLinChkFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785E4() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785E4.s"
}
#pragma pop
/* 800785EC-800785F4 072F2C 0008+00 1/0 0/0 0/0 .text @88@__dt__20dBgS_BoomerangLinChkFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785EC() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785EC.s"
}
#pragma pop
/* 800785F4-800785FC 072F34 0008+00 1/0 0/0 0/0 .text @20@__dt__15dBgS_RopeLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785F4() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785F4.s"
}
#pragma pop
/* 800785FC-80078604 072F3C 0008+00 1/0 0/0 0/0 .text @104@__dt__15dBgS_RopeLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_800785FC() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_800785FC.s"
}
#pragma pop
/* 80078604-8007860C 072F44 0008+00 1/0 0/0 0/0 .text @88@__dt__15dBgS_RopeLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078604() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_80078604.s"
}
#pragma pop
/* 8007860C-80078614 072F4C 0008+00 1/0 0/0 0/0 .text @20@__dt__16dBgS_HorseLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007860C() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_8007860C.s"
}
#pragma pop
/* 80078614-8007861C 072F54 0008+00 1/0 0/0 0/0 .text @104@__dt__16dBgS_HorseLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078614() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_80078614.s"
}
#pragma pop
/* 8007861C-80078624 072F5C 0008+00 1/0 0/0 0/0 .text @88@__dt__16dBgS_HorseLinChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007861C() {
nofralloc
#include "asm/d/bg/d_bg_s_lin_chk/func_8007861C.s"
}
#pragma pop
dBgS_HorseLinChk::~dBgS_HorseLinChk() {}
+21 -73
View File
@@ -1,77 +1,25 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s_poly_pass_chk
//
/**
* d_bg_s_poly_pass_chk.h
* BG Collision Poly Passthrough Check
*/
#include "d/bg/d_bg_s_poly_pass_chk.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" void __ct__16dBgS_PolyPassChkFv();
extern "C" void __dt__16dBgS_PolyPassChkFv();
extern "C" void SetPassChkInfo__16dBgS_PolyPassChkFR16dBgS_PolyPassChk();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void ClrObj__16dBgS_PolyPassChkFv();
extern "C" void SetCam__16dBgS_PolyPassChkFv();
extern "C" void ClrCam__16dBgS_PolyPassChkFv();
extern "C" void SetLink__16dBgS_PolyPassChkFv();
extern "C" void ClrLink__16dBgS_PolyPassChkFv();
extern "C" void SetArrow__16dBgS_PolyPassChkFv();
extern "C" void SetBomb__16dBgS_PolyPassChkFv();
extern "C" void ClrBomb__16dBgS_PolyPassChkFv();
extern "C" void SetBoomerang__16dBgS_PolyPassChkFv();
extern "C" void SetRope__16dBgS_PolyPassChkFv();
extern "C" void SetUnderwaterRoof__16dBgS_PolyPassChkFv();
extern "C" void SetHorse__16dBgS_PolyPassChkFv();
extern "C" void ChkNoHorse__16dBgS_PolyPassChkFv();
extern "C" void SetStatue__16dBgS_PolyPassChkFv();
extern "C" void ClrStatue__16dBgS_PolyPassChkFv();
extern "C" void SetIronBall__16dBgS_PolyPassChkFv();
extern "C" void ClrIronBall__16dBgS_PolyPassChkFv();
extern "C" void __dt__16cBgS_PolyPassChkFv();
//
// External References:
//
extern "C" void __dl__FPv();
//
// Declarations:
//
/* ############################################################################################## */
/* 803ABA38-803ABA44 008B58 000C+00 2/2 0/0 0/0 .data __vt__16dBgS_PolyPassChk */
SECTION_DATA extern void* __vt__16dBgS_PolyPassChk[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__16dBgS_PolyPassChkFv,
};
/* 803ABA44-803ABA50 008B64 000C+00 3/3 0/0 0/0 .data __vt__16cBgS_PolyPassChk */
SECTION_DATA extern void* __vt__16cBgS_PolyPassChk[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__16cBgS_PolyPassChkFv,
};
dBgS_PolyPassChk::dBgS_PolyPassChk()
: mObject(false), mCamera(false), mLink(false), mArrow(false), mBomb(false), mBoomerang(false),
mRope(false), mUnderwaterRoof(false), mHorse(false), mStatue(false), mIronBall(false) {}
/* 80078DB0-80078E0C 0736F0 005C+00 1/0 1/1 0/0 .text __dt__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_PolyPassChk::~dBgS_PolyPassChk() {
extern "C" asm void __dt__16dBgS_PolyPassChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/__dt__16dBgS_PolyPassChkFv.s"
dBgS_PolyPassChk::dBgS_PolyPassChk() {
mObject = false;
mCamera = false;
mLink = false;
mArrow = false;
mBomb = false;
mBoomerang = false;
mRope = false;
mUnderwaterRoof = false;
mHorse = false;
mStatue = false;
mIronBall = false;
}
#pragma pop
dBgS_PolyPassChk::~dBgS_PolyPassChk() {}
void dBgS_PolyPassChk::SetPassChkInfo(dBgS_PolyPassChk& chk) {
*this = chk;
@@ -131,9 +79,11 @@ void dBgS_PolyPassChk::SetHorse() {
bool dBgS_PolyPassChk::ChkNoHorse() {
if (ChkObj() || ChkCam() || ChkLink() || ChkArrow() || ChkBomb() || ChkBoomerang() ||
ChkRope() || ChkUnderwaterRoof()) {
ChkRope() || ChkUnderwaterRoof())
{
return true;
}
return !ChkHorse();
}
@@ -152,5 +102,3 @@ void dBgS_PolyPassChk::SetIronBall() {
void dBgS_PolyPassChk::ClrIronBall() {
mIronBall = false;
}
cBgS_PolyPassChk::~cBgS_PolyPassChk() {}
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* d_bg_s_roof_chk.cpp
*
* BG Collision Roof Check
*/
#include "d/bg/d_bg_s_roof_chk.h"
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* d_bg_s_sph_chk.cpp
*
* BG Collision Sphere Check
*/
#include "d/bg/d_bg_s_sph_chk.h"
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* d_bg_s_spl_grp_chk.cpp
*
* BG Collision Special Group Check
*/
#include "d/bg/d_bg_s_spl_grp_chk.h"
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* d_bg_s_wtr_chk.cpp
*
* BG Collision Water Check
*/
#include "d/bg/d_bg_s_wtr_chk.h"
-4
View File
@@ -88,10 +88,6 @@ static int dkWmark_Delete(dkWmark_c* i_this) {
return 1;
}
inline bool fopAcM_gc_c::getTriPla(cM3dGPla* i_plane) {
return dComIfG_Bgsp().GetTriPla(*(dBgS_GndChk*)mGndCheck, i_plane);
}
/* 802616C4-80261964 25C004 02A0+00 2/2 0/0 0/0 .text setMatrix__9dkWmark_cFv */
BOOL dkWmark_c::setMatrix() {
cXyz chk_pos(mPos.x, mPos.y + 100.0f, mPos.z);
-8
View File
@@ -15,14 +15,6 @@
/* 80454FF0-80454FF8 0035F0 0007+01 1/1 0/0 0/0 .sdata2 l_arcName */
static const char l_arcName[] = "Always";
inline int fopAcM_gc_c::getRoomId() {
return dComIfG_Bgsp().GetRoomId(*(dBgS_GndChk*)mGndCheck);
}
inline int fopAcM_gc_c::getPolyColor() {
return dComIfG_Bgsp().GetPolyColor(*(dBgS_GndChk*)mGndCheck);
}
/* 80261B54-80261F04 25C494 03B0+00 1/1 0/0 0/0 .text create__11dkWpillar_cFv */
int dkWpillar_c::create() {
new (this) dkWpillar_c();
-9
View File
@@ -385,12 +385,3 @@ void dLib_time_c::startTime() {
m_timeStopped = false;
}
}
/* ############################################################################################## */
/* 80450DF0-80450DF8 -00001 0008+00 0/0 4/4 0/0 .sbss None */
/* 80450DF0 0001+00 data_80450DF0 None */
/* 80450DF1 0001+00 data_80450DF1 None */
/* 80450DF2 0001+00 data_80450DF2 None */
/* 80450DF3 0005+00 data_80450DF3 None */
extern u8 struct_80450DF0[8];
u8 struct_80450DF0[8] ALIGN_DECL(8);