d_a_b_oh2 / d_a_obj_web0 / d_a_obj_web1 (#243)

* d_a_obj_web0 / d_a_obj_web1

* remove asm

* d_a_set_bgobj

* d_cc_s work

* remove asm

* build fix

* fix tp.py progress check and rel sha1 check

* clean up some bg files
This commit is contained in:
TakaRikka
2023-01-15 11:10:23 -08:00
committed by GitHub
parent c90f9dfde9
commit 5e05ae38f8
126 changed files with 2217 additions and 6277 deletions
+12 -1
View File
@@ -55,6 +55,17 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
// Declarations:
//
/* ############################################################################################## */
/* 80450C98-80450C9C -00001 0004+00 0/0 0/0 50/50 .sbss None */
extern u8 struct_80450C98[4];
u8 struct_80450C98[4];
/* 80450C9C-80450CA0 -00001 0004+00 0/0 0/0 6/6 .sbss None */
#pragma push
#pragma force_active on
u8 cDmr_SkipInfo;
#pragma pop
/* ############################################################################################## */
/* 80451BA8-80451BAC 0001A8 0004+00 1/1 0/0 0/0 .sdata2 @3731 */
SECTION_SDATA2 static f32 lit_3731 = 25.0f;
@@ -97,7 +108,7 @@ void JPTraceParticleCallBack4::draw(JPABaseEmitter* param_0, JPABaseParticle* pa
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cDmrNowMidnaTalk() {
asm BOOL cDmrNowMidnaTalk() {
nofralloc
#include "asm/c/c_damagereaction/cDmrNowMidnaTalk__Fv.s"
}
+128 -22
View File
@@ -4,13 +4,13 @@
//
#include "d/a/d_a_obj_item.h"
#include "SSystem/SComponent/c_math.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_item.h"
#include "d/d_item_data.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/d_item_data.h"
#include "d/d_item.h"
#include "d/com/d_com_inf_game.h"
#include "m_Do/m_Do_mtx.h"
#include "SSystem/SComponent/c_math.h"
//
// Forward References:
@@ -261,7 +261,7 @@ void daItem_c::initBaseMtx() {
void daItem_c::setBaseMtx() {
if (mpModel != NULL) {
mpModel->setBaseScale(mScale);
switch (m_itemNo) {
case GREEN_RUPEE:
case BLUE_RUPEE:
@@ -500,18 +500,25 @@ SECTION_DATA u8 daItem_c::mFuncPtr[120] = {
};
/* SECTION_DATA procFunc daItem_c::mFuncPtr[9] = {
&daItem_c::procMainNormal, &daItem_c::procMainEnemyCarry, &daItem_c::procMainSimpleGetDemo,
&daItem_c::procWaitGetDemoEvent, &daItem_c::procMainGetDemoEvent, &daItem_c::procMainBoomerangCarry,
&daItem_c::procMainSwOnWait, &daItem_c::procMainBoomHitWait, &daItem_c::procMainForceGet,
&daItem_c::procMainNormal, &daItem_c::procMainEnemyCarry, &daItem_c::procMainSimpleGetDemo,
&daItem_c::procWaitGetDemoEvent, &daItem_c::procMainGetDemoEvent,
&daItem_c::procMainBoomerangCarry, &daItem_c::procMainSwOnWait, &daItem_c::procMainBoomHitWait,
&daItem_c::procMainForceGet,
}; */
/* 803B9F10-803B9F54 017030 0044+00 1/1 0/0 0/0 .data m_cyl_src__8daItem_c */
SECTION_DATA u8 daItem_c::m_cyl_src[68] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x59,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00,
dCcD_SrcCyl daItem_c::m_cyl_src = {
{
{0, {{0, 0, 0}, {0xFFFFFFFF, 17}, 0x59}},
{dCcD_SE_NONE, 0, 0, 0, {0}},
{dCcD_SE_NONE, 0, 0, 0, {4}},
{0},
},
{
{0.0f, 0.0f, 0.0f},
10.0f,
50.0f,
},
};
/* 80453574-80453578 001B74 0004+00 1/1 0/0 0/0 .sdata2 @4067 */
@@ -534,6 +541,103 @@ SECTION_SDATA2 static f32 lit_4070[1 + 1 /* padding */] = {
SECTION_SDATA2 static f64 lit_4072 = 4503599627370496.0 /* cast u32 to float */;
/* 8015B3D8-8015B7BC 155D18 03E4+00 1/1 0/0 0/0 .text CreateInit__8daItem_cFv */
// matches with literals
#ifdef NONMATCHING
void daItem_c::CreateInit() {
mAcchCir.SetWall(30.0f, 30.0f);
mAcch.Set(&current.pos, &next.pos, this, 1, &mAcchCir, &mSpeed, NULL, NULL);
mAcch.ClrWaterNone();
mAcch.ClrRoofNone();
mAcch.SetWtrChkMode(2);
mAcch.SetWaterCheckOffset(10000.0f);
mColStatus.Init(0, 0xFF, this);
mCollider.Set(m_cyl_src);
mCollider.SetStts(&mColStatus);
mCollider.SetCoHitCallback(itemGetCoCallBack);
mCollider.SetTgHitCallback(itemGetTgCallBack);
f32 cylHeight = dItem_data::getH(m_itemNo);
f32 cylRadius = dItem_data::getR(m_itemNo);
if (mScale.x > 1.0f) {
cylHeight *= mScale.x;
cylRadius *= mScale.x;
}
mCollider.SetR(cylRadius);
mCollider.SetH(cylHeight);
setCullInfo();
field_0x942 = getData().field_0x16;
field_0x944 = getData().field_0x18;
procInitNormal();
show();
field_0x930.setAll(1.0f);
switch (daItem_prm::getType(this)) {
case 5:
hide();
procInitBoomHitWait();
break;
case 7:
procInitForceGet();
break;
case 4:
procInitSimpleGetDemo();
procMainSimpleGetDemo();
break;
default:
case 6:
field_0x93c = daItem_prm::getSwitchNo(this);
if (field_0x93c != 0xFF && !i_fopAcM_isSwitch(this, field_0x93c)) {
hide();
setFlag(8);
procInitSwOnWait();
}
break;
}
initAction();
initBaseMtx();
animPlay(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
if (m_itemNo == BOOMERANG) {
itemGetNextExecute();
} else if ((m_itemNo == ORANGE_RUPEE || m_itemNo == SILVER_RUPEE) &&
field_0x998.getEmitter() == NULL) {
dComIfGp_particle_set(0x0C14, &field_0x9ac, NULL, NULL, -1, &field_0x998, -1, NULL, NULL,
NULL);
}
field_0x978.init(&current.pos, 1);
f32 old_speedF = mSpeedF;
cXyz old_speed = mSpeed;
mAcch.CrrPos(dComIfG_Bgsp());
if (mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > orig.pos.y + 150.0f) {
field_0x9c0 = 1;
}
if (daItem_prm::checkInWater(this) == true) {
field_0x9c0 = 1;
}
mSpeedF = old_speedF;
mSpeed = old_speed;
mAcch.ClrGroundLanding();
mAcch.i_ClrGroundHit();
mAcch.ClrWaterHit();
mAcch.ClrWaterIn();
mAcch.ClrWallHit();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -542,6 +646,7 @@ asm void daItem_c::CreateInit() {
#include "asm/a/obj/d_a_obj_item/CreateInit__8daItem_cFv.s"
}
#pragma pop
#endif
/* 8015B7BC-8015B7D4 1560FC 0018+00 1/1 0/0 0/0 .text setCullInfo__8daItem_cFv */
void daItem_c::setCullInfo() {
@@ -668,7 +773,8 @@ int daItem_c::_daItem_create() {
phase_state = dComIfG_resLoad(&mPhase, dItem_data::getFieldArc(m_itemNo));
if (phase_state == cPhs_COMPLEATE_e) {
if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckFieldItemCreateHeap, dItem_data::getFieldHeapSize(m_itemNo))) {
if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckFieldItemCreateHeap,
dItem_data::getFieldHeapSize(m_itemNo))) {
return cPhs_ERROR_e;
} else {
CreateInit();
@@ -713,7 +819,7 @@ SECTION_SDATA2 static f32 lit_4321 = 18.0f;
int daItem_c::_daItem_execute() {
field_0x950 = mSpeed;
CountTimer();
mEyePos = current.pos;
mEyePos.y += (f32)dItem_data::getH(m_itemNo) * 0.5f;
@@ -750,7 +856,6 @@ int daItem_c::_daItem_execute() {
daPy_getPlayerActorClass()->setHookshotCarryOffset(fopAcM_GetID(this), &carry_pos);
}
animPlay(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
setBaseMtx();
field_0x978.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
@@ -910,7 +1015,8 @@ void daItem_c::procInitGetDemoEvent() {
fopAcM_orderItemEvent(this, 0, 0);
mEvtInfo.i_onCondition(8);
m_item_id = fopAcM_createItemForTrBoxDemo(&current.pos, m_itemNo, -1, fopAcM_GetRoomNo(this), NULL, NULL);
m_item_id = fopAcM_createItemForTrBoxDemo(&current.pos, m_itemNo, -1, fopAcM_GetRoomNo(this),
NULL, NULL);
setStatus(3);
}
@@ -1203,7 +1309,8 @@ void daItem_c::itemGetNextExecute() {
case ORANGE_RUPEE:
case SILVER_RUPEE:
case PACHINKO_SHOT:
if (daPy_getPlayerActorClass()->checkCanoeRide() || daPy_getPlayerActorClass()->checkHorseRide()) {
if (daPy_getPlayerActorClass()->checkCanoeRide() ||
daPy_getPlayerActorClass()->checkHorseRide()) {
if (checkItemGet(m_itemNo, 1)) {
haveItem = true;
}
@@ -1306,7 +1413,7 @@ BOOL daItem_c::checkCountTimer() {
if (i_dComIfGp_event_runCheck()) {
count = false;
}
if (mStatus == 5 || fopAcM_checkHookCarryNow(this)) {
count = false;
}
@@ -1578,8 +1685,7 @@ static asm void daItem_Create(fopAc_ac_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_a_obj_item_cpp() {
nofralloc
asm void __sinit_d_a_obj_item_cpp(){nofralloc
#include "asm/a/obj/d_a_obj_item/__sinit_d_a_obj_item_cpp.s"
}
#pragma pop
+5 -2
View File
@@ -1,6 +1,9 @@
/**
* d_bg_pc.cpp
*
*/
#include "d/bg/d_bg_pc.h"
#include "dol2asm.h"
#include "dolphin/types.h"
void dBgPc::setCode(sBgPc& code) {
m_code = code;
-21
View File
@@ -1048,27 +1048,6 @@ f32 dBgS_GetNY(cBgS_PolyInfo const& poly) {
return pla.mNormal.y;
}
/* ############################################################################################## */
/* 803AB608-803AB61C 008728 0014+00 0/0 3/3 0/0 .data __vt__4dBgS */
SECTION_DATA extern void* __vt__4dBgS[5] = {
(void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__4dBgSFv,
(void*)Ct__4dBgSFv, (void*)Dt__4dBgSFv,
};
/* 803AB61C-803AB630 00873C 0014+00 0/0 4/4 0/0 .data __vt__4cBgS */
SECTION_DATA extern void* __vt__4cBgS[5] = {
(void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__4cBgSFv,
(void*)Ct__4cBgSFv, (void*)Dt__4cBgSFv,
};
/* 803AB630-803AB640 008750 0010+00 0/0 2/2 0/0 .data __vt__11cBgS_ChkElm */
SECTION_DATA extern void* __vt__11cBgS_ChkElm[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__11cBgS_ChkElmFv,
(void*)Regist2__11cBgS_ChkElmFP9dBgW_BaseUiPv,
};
/* 80450F68-80450F70 000468 0008+00 0/0 1/1 0/0 .sbss None */
extern u8 data_80450F68[8];
u8 data_80450F68[8] ALIGN_DECL(8);
+5 -56
View File
@@ -1,56 +1,15 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s_chk
//
/**
* d_bg_s_chk.cpp
*
*/
#include "d/bg/d_bg_s_chk.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward 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" static void func_80077574();
//
// External References:
//
extern "C" void __ct__15dBgS_GrpPassChkFv();
extern "C" void __dt__15dBgS_GrpPassChkFv();
extern "C" void __ct__16dBgS_PolyPassChkFv();
extern "C" void __dt__16dBgS_PolyPassChkFv();
extern "C" void __dl__FPv();
//
// Declarations:
//
/* ############################################################################################## */
/* 803AB670-803AB688 008790 0018+00 2/2 0/0 0/0 .data __vt__8dBgS_Chk */
SECTION_DATA extern void* __vt__8dBgS_Chk[6] = {
(void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__8dBgS_ChkFv, (void*)NULL, (void*)NULL,
(void*)func_80077574,
};
/* 8007749C-800774E8 071DDC 004C+00 0/0 6/6 0/0 .text __ct__8dBgS_ChkFv */
dBgS_Chk::dBgS_Chk() {}
/* 800774E8-80077560 071E28 0078+00 2/1 6/6 0/0 .text __dt__8dBgS_ChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_Chk::~dBgS_Chk() {
extern "C" asm void __dt__8dBgS_ChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_chk/__dt__8dBgS_ChkFv.s"
}
#pragma pop
dBgS_Chk::~dBgS_Chk() {}
/* 80077560-80077564 071EA0 0004+00 0/0 6/6 0/0 .text GetPolyPassChkInfo__8dBgS_ChkFv */
cBgS_PolyPassChk* dBgS_Chk::GetPolyPassChkInfo() {
@@ -61,13 +20,3 @@ cBgS_PolyPassChk* dBgS_Chk::GetPolyPassChkInfo() {
cBgS_GrpPassChk* dBgS_Chk::GetGrpPassChkInfo() {
return this;
}
/* 80077574-8007757C 071EB4 0008+00 1/0 0/0 0/0 .text @16@__dt__8dBgS_ChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80077574() {
nofralloc
#include "asm/d/bg/d_bg_s_chk/func_80077574.s"
}
#pragma pop
-15
View File
@@ -56,21 +56,6 @@ extern "C" u8 now__14mDoMtx_stack_c[48];
// Declarations:
//
/* ############################################################################################## */
/* 803AB9A0-803AB9C8 008AC0 0028+00 1/1 0/0 34/34 .data __vt__16dBgS_MoveBgActor */
SECTION_DATA extern void* __vt__16dBgS_MoveBgActor[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__16dBgS_MoveBgActorFv,
(void*)Create__16dBgS_MoveBgActorFv,
(void*)Execute__16dBgS_MoveBgActorFPPA3_A4_f,
(void*)Draw__16dBgS_MoveBgActorFv,
(void*)Delete__16dBgS_MoveBgActorFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};
/* 80078624-80078668 072F64 0044+00 0/0 0/0 173/173 .text __ct__16dBgS_MoveBgActorFv */
dBgS_MoveBgActor::dBgS_MoveBgActor() {
field_0x568 = NULL;
+5 -92
View File
@@ -1,58 +1,9 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s_roof_chk
//
/**
* d_bg_s_roof_chk.cpp
*
*/
#include "d/bg/d_bg_s_roof_chk.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void __ct__12dBgS_RoofChkFv();
extern "C" void __dt__12dBgS_RoofChkFv();
extern "C" void Init__12dBgS_RoofChkFv();
extern "C" static void func_8007914C();
extern "C" static void func_80079154();
extern "C" static void func_8007915C();
//
// 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 __ct__8cBgS_ChkFv();
extern "C" void __dt__8cBgS_ChkFv();
extern "C" void __ct__13cBgS_PolyInfoFv();
extern "C" void __dt__13cBgS_PolyInfoFv();
extern "C" void ClearPi__13cBgS_PolyInfoFv();
extern "C" void __dl__FPv();
//
// Declarations:
//
/* ############################################################################################## */
/* 803ABA50-803ABA80 008B70 0030+00 2/2 0/0 0/0 .data __vt__12dBgS_RoofChk */
SECTION_DATA extern void* __vt__12dBgS_RoofChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_RoofChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_8007914C,
(void*)NULL,
(void*)NULL,
(void*)func_8007915C,
(void*)NULL,
(void*)NULL,
(void*)func_80079154,
};
/* 80078FF4-80079090 073934 009C+00 0/0 10/10 1/1 .text __ct__12dBgS_RoofChkFv */
dBgS_RoofChk::dBgS_RoofChk() {
@@ -66,48 +17,10 @@ dBgS_RoofChk::dBgS_RoofChk() {
}
/* 80079090-80079124 0739D0 0094+00 4/3 11/11 1/1 .text __dt__12dBgS_RoofChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_RoofChk::~dBgS_RoofChk() {
extern "C" asm void __dt__12dBgS_RoofChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_roof_chk/__dt__12dBgS_RoofChkFv.s"
}
#pragma pop
dBgS_RoofChk::~dBgS_RoofChk() {}
/* 80079124-8007914C 073A64 0028+00 0/0 1/1 0/0 .text Init__12dBgS_RoofChkFv */
void dBgS_RoofChk::Init() {
SetNowY(1000000000.0f);
ClearPi();
}
/* 8007914C-80079154 073A8C 0008+00 1/0 0/0 0/0 .text @16@__dt__12dBgS_RoofChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007914C() {
nofralloc
#include "asm/d/bg/d_bg_s_roof_chk/func_8007914C.s"
}
#pragma pop
/* 80079154-8007915C 073A94 0008+00 1/0 0/0 0/0 .text @52@__dt__12dBgS_RoofChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80079154() {
nofralloc
#include "asm/d/bg/d_bg_s_roof_chk/func_80079154.s"
}
#pragma pop
/* 8007915C-80079164 073A9C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_RoofChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8007915C() {
nofralloc
#include "asm/d/bg/d_bg_s_roof_chk/func_8007915C.s"
}
#pragma pop
+4 -99
View File
@@ -1,64 +1,9 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s_sph_chk
//
/**
* d_bg_s_sph_chk.cpp
*
*/
#include "d/bg/d_bg_s_sph_chk.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void __ct__11dBgS_SphChkFv();
extern "C" void __dt__11dBgS_SphChkFv();
extern "C" static void func_80078B70();
extern "C" static void func_80078B78();
extern "C" static void func_80078B80();
extern "C" static void func_80078B88();
//
// 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 __ct__8cBgS_ChkFv();
extern "C" void __dt__8cBgS_ChkFv();
extern "C" void __ct__13cBgS_PolyInfoFv();
extern "C" void __dt__13cBgS_PolyInfoFv();
extern "C" void ClearPi__13cBgS_PolyInfoFv();
extern "C" void __dl__FPv();
extern "C" extern void* __vt__8cM3dGSph[3];
//
// Declarations:
//
/* ############################################################################################## */
/* 803AB9C8-803ABA08 008AE8 003C+04 2/2 0/0 0/0 .data __vt__11dBgS_SphChk */
SECTION_DATA extern void* __vt__11dBgS_SphChk[15 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__11dBgS_SphChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_80078B70,
(void*)NULL,
(void*)NULL,
(void*)func_80078B78,
(void*)NULL,
(void*)NULL,
(void*)func_80078B88,
(void*)NULL,
(void*)NULL,
(void*)func_80078B80,
/* padding */
NULL,
};
/* 80078A14-80078AC0 073354 00AC+00 0/0 1/1 1/1 .text __ct__11dBgS_SphChkFv */
dBgS_SphChk::dBgS_SphChk() {
@@ -71,43 +16,3 @@ dBgS_SphChk::dBgS_SphChk() {
/* 80078AC0-80078B70 073400 00B0+00 5/4 2/2 0/0 .text __dt__11dBgS_SphChkFv */
dBgS_SphChk::~dBgS_SphChk() {}
/* 80078B70-80078B78 0734B0 0008+00 1/0 0/0 0/0 .text @20@__dt__11dBgS_SphChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078B70() {
nofralloc
#include "asm/d/bg/d_bg_s_sph_chk/func_80078B70.s"
}
#pragma pop
/* 80078B78-80078B80 0734B8 0008+00 1/0 0/0 0/0 .text @36@__dt__11dBgS_SphChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078B78() {
nofralloc
#include "asm/d/bg/d_bg_s_sph_chk/func_80078B78.s"
}
#pragma pop
/* 80078B80-80078B88 0734C0 0008+00 1/0 0/0 0/0 .text @72@__dt__11dBgS_SphChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078B80() {
nofralloc
#include "asm/d/bg/d_bg_s_sph_chk/func_80078B80.s"
}
#pragma pop
/* 80078B88-80078B90 0734C8 0008+00 1/0 0/0 0/0 .text @56@__dt__11dBgS_SphChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078B88() {
nofralloc
#include "asm/d/bg/d_bg_s_sph_chk/func_80078B88.s"
}
#pragma pop
+4 -84
View File
@@ -1,42 +1,9 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s_spl_grp_chk
//
/**
* d_bg_s_spl_grp_chk.cpp
*
*/
#include "d/bg/d_bg_s_spl_grp_chk.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void Set__14dBgS_SplGrpChkFR4cXyzf();
extern "C" void __ct__14dBgS_SplGrpChkFv();
extern "C" void __dt__14dBgS_SplGrpChkFv();
extern "C" void Init__14dBgS_SplGrpChkFv();
extern "C" static void func_80078D4C();
extern "C" static void func_80078D54();
extern "C" static void func_80078D5C();
//
// 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 __ct__8cBgS_ChkFv();
extern "C" void __dt__8cBgS_ChkFv();
extern "C" void __ct__13cBgS_PolyInfoFv();
extern "C" void __dt__13cBgS_PolyInfoFv();
extern "C" void ClearPi__13cBgS_PolyInfoFv();
extern "C" void __dl__FPv();
//
// Declarations:
//
/* 80078B90-80078BB0 0734D0 0020+00 0/0 2/2 3/3 .text Set__14dBgS_SplGrpChkFR4cXyzf */
void dBgS_SplGrpChk::Set(cXyz& ground, f32 roof) {
@@ -44,23 +11,6 @@ void dBgS_SplGrpChk::Set(cXyz& ground, f32 roof) {
m_roof = roof;
}
/* ############################################################################################## */
/* 803ABA08-803ABA38 008B28 0030+00 2/2 0/0 0/0 .data __vt__14dBgS_SplGrpChk */
SECTION_DATA extern void* __vt__14dBgS_SplGrpChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__14dBgS_SplGrpChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_80078D4C,
(void*)NULL,
(void*)NULL,
(void*)func_80078D5C,
(void*)NULL,
(void*)NULL,
(void*)func_80078D54,
};
/* 80078BB0-80078C78 0734F0 00C8+00 0/0 1/1 0/0 .text __ct__14dBgS_SplGrpChkFv */
dBgS_SplGrpChk::dBgS_SplGrpChk() {
SetPolyPassChk(GetPolyPassChkInfo());
@@ -88,33 +38,3 @@ void dBgS_SplGrpChk::Init() {
SetHeight(GetPosP().y);
ClearPi();
}
/* 80078D4C-80078D54 07368C 0008+00 1/0 0/0 0/0 .text @16@__dt__14dBgS_SplGrpChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078D4C() {
nofralloc
#include "asm/d/bg/d_bg_s_spl_grp_chk/func_80078D4C.s"
}
#pragma pop
/* 80078D54-80078D5C 073694 0008+00 1/0 0/0 0/0 .text @52@__dt__14dBgS_SplGrpChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078D54() {
nofralloc
#include "asm/d/bg/d_bg_s_spl_grp_chk/func_80078D54.s"
}
#pragma pop
/* 80078D5C-80078D64 07369C 0008+00 1/0 0/0 0/0 .text @36@__dt__14dBgS_SplGrpChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_80078D5C() {
nofralloc
#include "asm/d/bg/d_bg_s_spl_grp_chk/func_80078D5C.s"
}
#pragma pop
+5 -2
View File
@@ -1,6 +1,9 @@
/**
* d_bg_s_wtr_chk.cpp
*
*/
#include "d/bg/d_bg_s_wtr_chk.h"
#include "dol2asm.h"
#include "dolphin/types.h"
dBgS_WtrChk::dBgS_WtrChk() {
OnWaterGrp();
+5 -116
View File
@@ -1,128 +1,17 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_w_base
//
/**
* d_bg_w_base.cpp
*
*/
#include "d/bg/d_bg_w_base.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void __ct__9dBgW_BaseFv();
extern "C" void __dt__9cBgW_BgIdFv();
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 CalcDiffShapeAngleY__9dBgW_BaseFs();
//
// External References:
//
extern "C" void SetOldShapeAngleY__9dBgW_BaseFs();
extern "C" void __dl__FPv();
//
// Declarations:
//
/* ############################################################################################## */
/* 803ABCC8-803ABDB8 008DE8 00F0+00 2/2 0/0 0/0 .data __vt__9dBgW_Base */
SECTION_DATA extern void* __vt__9dBgW_Base[60] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__9dBgW_BaseFv,
(void*)ChkMemoryError__9dBgW_BaseFv,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)SetOldShapeAngleY__9dBgW_BaseFs,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)CallRideCallBack__9dBgW_BaseFP10fopAc_ac_cP10fopAc_ac_c,
(void*)CallArrowStickCallBack__9dBgW_BaseFP10fopAc_ac_cP10fopAc_ac_cR4cXyz,
};
/* 803ABDB8-803ABDC8 008ED8 000C+04 3/3 0/0 0/0 .data __vt__9cBgW_BgId */
SECTION_DATA extern void* __vt__9cBgW_BgId[3 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__9cBgW_BgIdFv,
/* padding */
NULL,
};
/* 8007E5A8-8007E5F8 078EE8 0050+00 0/0 2/2 0/0 .text __ct__9dBgW_BaseFv */
dBgW_Base::dBgW_Base() {
ClrDBgWBase();
}
/* 8007E5F8-8007E640 078F38 0048+00 1/0 0/0 0/0 .text __dt__9cBgW_BgIdFv */
cBgW_BgId::~cBgW_BgId() {}
/* 8007E640-8007E69C 078F80 005C+00 1/0 2/2 0/0 .text __dt__9dBgW_BaseFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgW_Base::~dBgW_Base() {
extern "C" asm void __dt__9dBgW_BaseFv() {
nofralloc
#include "asm/d/bg/d_bg_w_base/__dt__9dBgW_BaseFv.s"
}
#pragma pop
dBgW_Base::~dBgW_Base() {}
/* 8007E69C-8007E6D0 078FDC 0034+00 1/1 1/1 0/0 .text ClrDBgWBase__9dBgW_BaseFv */
void dBgW_Base::ClrDBgWBase() {
+6 -7
View File
@@ -1,13 +1,11 @@
//
// Generated By: dol2asm
// Translation Unit: d/cc/d_cc_mass_s
//
/**
* d_cc_mass_s.cpp
*
*/
#include "d/cc/d_cc_mass_s.h"
#include "SSystem/SComponent/c_math.h"
#include "d/cc/d_cc_d.h"
#include "dol2asm.h"
#include "dolphin/types.h"
/* 800852E0-800852F0 07FC20 0010+00 1/1 0/0 0/0 .text
* Set__12dCcMassS_ObjFP8cCcD_ObjUcPFP10fopAc_ac_cP4cXyzUl_v */
@@ -156,7 +154,8 @@ u32 dCcMassS_Mng::Chk(cXyz* p_xyz, fopAc_ac_c** p_actor, dCcMassS_HitInf* p_hitI
cCcD_ShapeAttr* objShape = obj->GetShapeAttr();
cXyz unusedVec;
if (obj->ChkAtSet() && !gobjInf->ChkAtNoMass() &&
mCylAttr.CrossAtTg(*objShape, &unusedVec) && (field_0x200 & 1)) {
mCylAttr.CrossAtTg(*objShape, &unusedVec) && (field_0x200 & 1))
{
flagsMaybe |= 1;
*p_actor = obj->GetStts()->GetAc();
if (p_hitInf != NULL) {
+559 -288
View File
@@ -1,12 +1,12 @@
//
// Generated By: dol2asm
// Translation Unit: d/cc/d_cc_s
//
/**
* d_cc_s.cpp
*
*/
#include "d/cc/d_cc_s.h"
#include "JSystem/JMath/JMath.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
@@ -111,38 +111,94 @@ void dCcS::Dt() {
cCcS::Dt();
}
/* ############################################################################################## */
/* 80452778-8045277C 000D78 0004+00 3/3 0/0 0/0 .sdata2 @3705 */
SECTION_SDATA2 static u8 lit_3705[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80085F28-800860F8 080868 01D0+00 1/1 0/0 0/0 .text
* ChkShieldFrontRange__4dCcSFP8cCcD_ObjP8cCcD_ObjiPC4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::ChkShieldFrontRange(cCcD_Obj* param_0, cCcD_Obj* param_1, int param_2,
cXyz const* param_3) {
nofralloc
#include "asm/d/cc/d_cc_s/ChkShieldFrontRange__4dCcSFP8cCcD_ObjP8cCcD_ObjiPC4cXyz.s"
bool dCcS::ChkShieldFrontRange(cCcD_Obj* i_atObj, cCcD_Obj* i_tgObj, int param_2,
cXyz const* i_hitPos) {
dCcD_GObjInf* atObj = (dCcD_GObjInf*)i_atObj->GetGObjInf();
if (atObj == NULL) {
return false;
}
dCcD_GObjInf* tgObj = (dCcD_GObjInf*)i_tgObj->GetGObjInf();
if (tgObj == NULL) {
return false;
}
fopAc_ac_c* tgActor = tgObj->GetAc();
if (tgActor == NULL) {
return false;
}
csXyz sp10;
CalcParticleAngle(atObj, i_atObj->GetStts(), i_tgObj->GetStts(), &sp10);
if (param_2 != 0) {
dJntCol_c* jntcol = fopAcM_GetJntCol(tgActor);
if (jntcol != NULL) {
cXyz pos;
csXyz angle;
int temp_r3 = jntcol->getHitmarkPosAndAngle(i_hitPos, &sp10, &pos, &angle, 0);
if (temp_r3 >= 0 && jntcol->checkShieldType(temp_r3)) {
cXyz sp18;
mDoMtx_stack_c::ZXYrotS(sp10);
mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &sp18);
mDoMtx_stack_c::ZXYrotS(angle);
mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &pos);
if (pos.inprod(sp18) > 0.0f) {
return true;
} else {
return false;
}
}
return false;
}
}
s16 var_r4;
if (tgObj->GetTgShieldFrontRangeYAngle() != NULL) {
var_r4 = *tgObj->GetTgShieldFrontRangeYAngle();
} else {
var_r4 = fopAcM_GetShapeAngle_p(tgActor).y;
}
s16 shield_range = tgObj->GetTgShieldRange();
if (param_2 != 0) {
shield_range >>= 1;
}
if (cLib_distanceAngleS(sp10.y - -0x8000, var_r4) > shield_range) {
return false;
}
return true;
}
#pragma pop
/* 800860F8-800861B0 080A38 00B8+00 1/1 0/0 0/0 .text
* ChkShield__4dCcSFP8cCcD_ObjP8cCcD_ObjP12dCcD_GObjInfP12dCcD_GObjInfPC4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::ChkShield(cCcD_Obj* param_0, cCcD_Obj* param_1, dCcD_GObjInf* param_2,
dCcD_GObjInf* param_3, cXyz const* param_4) {
nofralloc
#include "asm/d/cc/d_cc_s/ChkShield__4dCcSFP8cCcD_ObjP8cCcD_ObjP12dCcD_GObjInfP12dCcD_GObjInfPC4cXyz.s"
bool dCcS::ChkShield(cCcD_Obj* i_atObj, cCcD_Obj* i_tgObj, dCcD_GObjInf* i_atObjInf,
dCcD_GObjInf* i_tgObjInf, cXyz const* i_hitPos) {
if (i_atObjInf->ChkAtNoGuard()) {
return false;
}
if (i_tgObjInf->ChkTgShield() || i_tgObjInf->ChkTgSpShield() ||
(i_tgObjInf->ChkTgSmallShield() && i_atObjInf->GetAtSpl() == 8))
{
if (i_tgObjInf->ChkTgShieldFrontRange()) {
return ChkShieldFrontRange(i_atObj, i_tgObj, !i_tgObjInf->ChkTgShield(), i_hitPos);
}
return true;
}
return false;
}
#pragma pop
/* 800861B0-800861B4 080AF0 0004+00 1/0 0/0 0/0 .text
* CalcTgPlusDmg__4dCcSFP8cCcD_ObjP8cCcD_ObjP9cCcD_SttsP9cCcD_Stts */
@@ -154,20 +210,81 @@ void dCcS::CalcTgPlusDmg(cCcD_Obj* param_0, cCcD_Obj* param_1, cCcD_Stts* param_
/* 800861B4-80086240 080AF4 008C+00 1/0 0/0 0/0 .text
* ChkAtTgHitAfterCross__4dCcSFbbPC12cCcD_GObjInfPC12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dCcS::ChkAtTgHitAfterCross(bool param_0, bool param_1, cCcD_GObjInf const* param_2,
cCcD_GObjInf const* param_3, cCcD_Stts* param_4,
cCcD_Stts* param_5, cCcD_GStts* param_6, cCcD_GStts* param_7) {
nofralloc
#include "asm/d/cc/d_cc_s/func_800861B4.s"
bool dCcS::ChkAtTgHitAfterCross(bool i_setAt, bool i_setTg, cCcD_GObjInf const* i_atObjInf,
cCcD_GObjInf const* i_tgObjInf, cCcD_Stts* param_4,
cCcD_Stts* param_5, cCcD_GStts* param_6, cCcD_GStts* param_7) {
dCcD_GObjInf* atObjInf = (dCcD_GObjInf*)i_atObjInf;
dCcD_GObjInf* tgObjInf = (dCcD_GObjInf*)i_tgObjInf;
u32 tgApid = param_4->GetApid();
u32 atApid = param_5->GetApid();
if (i_setAt) {
static_cast<dCcD_GStts*>(param_6)->SetAtApid(atApid);
if (atObjInf->ChkAtNoConHit() && !tgObjInf->ChkTgStopNoConHit()) {
if (static_cast<dCcD_GStts*>(param_6)->GetAtOldApid() == param_5->GetApid()) {
return true;
}
}
}
if (i_setTg) {
static_cast<dCcD_GStts*>(param_7)->SetTgApid(tgApid);
if (tgObjInf->ChkTgNoConHit() && !atObjInf->ChkAtStopNoConHit()) {
if (static_cast<dCcD_GStts*>(param_7)->GetTgOldApid() == param_4->GetApid()) {
return true;
}
}
}
return false;
}
#pragma pop
/* 80086240-80086360 080B80 0120+00 1/0 0/0 0/0 .text
* SetCoGObjInf__4dCcSFbbP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts
*/
// weird reg alloc
#ifdef NONMATCHING
void dCcS::SetCoGObjInf(bool param_0, bool param_1, cCcD_GObjInf* param_2, cCcD_GObjInf* param_3,
cCcD_Stts* param_4, cCcD_Stts* param_5, cCcD_GStts* param_6,
cCcD_GStts* param_7) {
if (param_0) {
static_cast<dCcD_GObjInf*>(param_2)->SetCoHitApid(param_5->GetApid());
if (static_cast<dCcD_GStts*>(param_7)->ChkNoActor()) {
static_cast<dCcD_GObjInf*>(param_2)->OnCoHitNoActor();
}
}
if (param_1) {
static_cast<dCcD_GObjInf*>(param_3)->SetCoHitApid(param_4->GetApid());
if (static_cast<dCcD_GStts*>(param_6)->ChkNoActor()) {
static_cast<dCcD_GObjInf*>(param_3)->OnCoHitNoActor();
}
}
if (param_0) {
dCcD_HitCallback cb = static_cast<dCcD_GObjInf*>(param_2)->GetCoHitCallback();
if (cb != NULL) {
cb(param_2->GetAc(), static_cast<dCcD_GObjInf*>(param_2), param_3->GetAc(),
static_cast<dCcD_GObjInf*>(param_3));
}
}
if (param_1) {
dCcD_HitCallback cb = static_cast<dCcD_GObjInf*>(param_3)->GetCoHitCallback();
if (cb != NULL) {
cb(param_3->GetAc(), static_cast<dCcD_GObjInf*>(param_3), param_2->GetAc(),
static_cast<dCcD_GObjInf*>(param_2));
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -178,16 +295,52 @@ asm void dCcS::SetCoGObjInf(bool param_0, bool param_1, cCcD_GObjInf* param_2,
#include "asm/d/cc/d_cc_s/SetCoGObjInf__4dCcSFbbP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts.s"
}
#pragma pop
#endif
/* 80086360-80086404 080CA0 00A4+00 1/1 0/0 0/0 .text GetRank__4dCcSFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::GetRank(u8 param_0) {
nofralloc
#include "asm/d/cc/d_cc_s/GetRank__4dCcSFUc.s"
int dCcS::GetRank(u8 weight) {
if (weight == 255) {
return 10;
}
if (weight == 254) {
return 9;
}
if (weight >= 217) {
return 8;
}
if (weight >= 181) {
return 7;
}
if (weight >= 145) {
return 6;
}
if (weight >= 109) {
return 5;
}
if (weight >= 73) {
return 4;
}
if (weight >= 37) {
return 3;
}
if (weight >= 2) {
return 2;
}
if (weight == 1) {
return 1;
}
return 0;
}
#pragma pop
/* 80086404-8008640C 080D44 0008+00 1/0 0/0 0/0 .text ChkNoHitGCo__4dCcSFP8cCcD_ObjP8cCcD_Obj */
bool dCcS::ChkNoHitGCo(cCcD_Obj* param_0, cCcD_Obj* param_1) {
@@ -196,174 +349,208 @@ bool dCcS::ChkNoHitGCo(cCcD_Obj* param_0, cCcD_Obj* param_1) {
/* ############################################################################################## */
/* 803AC328-803AC3A4 009448 0079+03 1/1 0/0 0/0 .data rank_tbl */
SECTION_DATA static u8 rank_tbl[121 + 3 /* padding */] = {
0x00,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x00,
0x32,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x00,
0x00,
0x32,
0x4B,
0x5A,
0x64,
0x64,
0x64,
0x64,
0x64,
0x64,
0x00,
0x00,
0x19,
0x32,
0x4B,
0x5A,
0x64,
0x64,
0x64,
0x64,
0x64,
0x00,
0x00,
0x0A,
0x19,
0x32,
0x4B,
0x5A,
0x64,
0x64,
0x64,
0x64,
0x00,
0x00,
0x00,
0x0A,
0x19,
0x32,
0x4B,
0x5A,
0x64,
0x64,
0x64,
0x00,
0x00,
0x00,
0x00,
0x0A,
0x19,
0x32,
0x4B,
0x5A,
0x64,
0x64,
0x00,
0x00,
0x00,
0x00,
0x00,
0x0A,
0x19,
0x32,
0x4B,
0x64,
0x64,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x0A,
0x19,
0x32,
0x64,
0x64,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x32,
0x64,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
/* padding */
0x00,
0x00,
0x00,
static u8 rank_tbl[11][11] = {
0x00, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x00, 0x32, 0x64, 0x64, 0x64,
0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x00, 0x00, 0x32, 0x4B, 0x5A, 0x64, 0x64, 0x64, 0x64, 0x64,
0x64, 0x00, 0x00, 0x19, 0x32, 0x4B, 0x5A, 0x64, 0x64, 0x64, 0x64, 0x64, 0x00, 0x00, 0x0A, 0x19,
0x32, 0x4B, 0x5A, 0x64, 0x64, 0x64, 0x64, 0x00, 0x00, 0x00, 0x0A, 0x19, 0x32, 0x4B, 0x5A, 0x64,
0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x19, 0x32, 0x4B, 0x5A, 0x64, 0x64, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0A, 0x19, 0x32, 0x4B, 0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x19,
0x32, 0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x64, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 8045277C-80452780 000D7C 0004+00 1/1 0/0 0/0 .sdata2 @3924 */
SECTION_SDATA2 static f32 lit_3924 = 1.0f / 100.0f;
/* 80452780-80452788 000D80 0004+04 2/2 0/0 0/0 .sdata2 @3925 */
SECTION_SDATA2 static f32 lit_3925[1 + 1 /* padding */] = {
-1.0f,
/* padding */
0.0f,
};
/* 80452788-80452790 000D88 0008+00 1/1 0/0 0/0 .sdata2 @3927 */
SECTION_SDATA2 static f64 lit_3927 = 4503599627370496.0 /* cast u32 to float */;
/* 8008640C-80086754 080D4C 0348+00 1/0 0/0 0/0 .text
* SetPosCorrect__4dCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::SetPosCorrect(cCcD_Obj* param_0, cXyz* param_1, cCcD_Obj* param_2, cXyz* param_3,
f32 param_4) {
nofralloc
#include "asm/d/cc/d_cc_s/SetPosCorrect__4dCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf.s"
void dCcS::SetPosCorrect(cCcD_Obj* param_0, cXyz* param_1, cCcD_Obj* param_2, cXyz* param_3,
f32 param_4) {
if (param_0->ChkCoNoCrr() || param_2->ChkCoNoCrr()) {
return;
}
if (param_0->GetStts() == NULL || param_2->GetStts() == NULL) {
return;
}
if (cM3d_IsZero(param_4)) {
return;
}
SetCoGCorrectProc(param_0, param_2);
bool bvar2 = false;
if (param_0->ChkCoSph3DCrr() && param_2->ChkCoSph3DCrr()) {
bvar2 = true;
}
if ((param_0->GetStts()->GetWeightUc() == 0 && param_2->GetStts()->GetWeightUc() == 0) ||
(param_0->GetStts()->GetWeightUc() == 0xFF && param_2->GetStts()->GetWeightUc() == 0xFF))
{
return;
}
int weight1 = GetRank(param_0->GetStts()->GetWeightUc());
int weight2 = GetRank(param_2->GetStts()->GetWeightUc());
u8 rank = rank_tbl[weight1][weight2];
f32 fvar1 = rank * 0.01f;
f32 fvar2 = (u8)(100 - rank) * 0.01f;
cXyz local_b0;
cXyz local_bc;
Vec local_c8;
f32 fvar14;
if (bvar2) {
PSVECSubtract(param_3, param_1, &local_c8);
fvar14 = PSVECMag(&local_c8);
} else {
local_c8.x = param_3->x - param_1->x;
local_c8.y = 0.0f;
local_c8.z = param_3->z - param_1->z;
fvar14 = JMAFastSqrt((local_c8.x * local_c8.x) + (local_c8.z * local_c8.z));
}
if (!cM3d_IsZero(fvar14)) {
if (bvar2) {
PSVECScale(&local_c8, &local_c8, param_4 / fvar14);
fvar1 *= -1.0f;
PSVECScale(&local_c8, &local_b0, fvar1);
PSVECScale(&local_c8, &local_bc, fvar2);
} else {
fvar14 = param_4 / fvar14;
local_c8.x *= fvar14;
local_c8.z *= fvar14;
local_b0.x = -local_c8.x * fvar1;
local_b0.y = 0.0f;
local_b0.z = -local_c8.z * fvar1;
local_bc.x = local_c8.x * fvar2;
local_bc.y = 0.0f;
local_bc.z = local_c8.z * fvar2;
}
} else {
local_b0.y = 0.0f;
local_b0.z = 0.0f;
local_bc.y = 0.0f;
local_bc.z = 0.0f;
if (!cM3d_IsZero(param_4)) {
local_b0.x = -param_4 * fvar1;
local_bc.x = param_4 * fvar2;
} else {
local_b0.x = -fvar1;
local_bc.x = fvar2;
}
}
param_0->GetStts()->PlusCcMove(local_b0.x, local_b0.y, local_b0.z);
param_2->GetStts()->PlusCcMove(local_bc.x, local_bc.y, local_bc.z);
*param_1 += local_b0;
*param_3 += local_bc;
}
#pragma pop
/* 80086754-8008685C 081094 0108+00 1/0 0/0 0/0 .text
* CalcParticleAngle__4dCcSFP12dCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP5csXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::CalcParticleAngle(dCcD_GObjInf* param_0, cCcD_Stts* param_1, cCcD_Stts* param_2,
csXyz* param_3) {
nofralloc
#include "asm/d/cc/d_cc_s/CalcParticleAngle__4dCcSFP12dCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP5csXyz.s"
void dCcS::CalcParticleAngle(dCcD_GObjInf* i_atObjInf, cCcD_Stts* i_atStts, cCcD_Stts* i_tgStts,
csXyz* o_angle) {
cXyz vec(*i_atObjInf->GetAtVecP());
if (cM3d_IsZero(PSVECMag(&vec))) {
fopAc_ac_c* atActor = i_atStts->GetActor();
fopAc_ac_c* tgActor = i_tgStts->GetActor();
if (atActor == NULL || tgActor == NULL) {
vec.z = 0.0f;
vec.x = 0.0f;
vec.y = -1.0f;
} else {
PSVECSubtract(&tgActor->current.pos, &atActor->current.pos, &vec);
if (cM3d_IsZero(PSVECMag(&vec))) {
vec.z = 0.0f;
vec.x = 0.0f;
vec.y = -1.0f;
} else {
PSVECNormalize(&vec, &vec);
}
}
} else {
PSVECNormalize(&vec, &vec);
}
cM3d_CalcVecZAngle(vec, o_angle);
}
#pragma pop
/* 8008685C-80086AC0 08119C 0264+00 1/1 0/0 0/0 .text
* ProcAtTgHitmark__4dCcSFbbP8cCcD_ObjP8cCcD_ObjP12dCcD_GObjInfP12dCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10dCcD_GSttsP10dCcD_GSttsP4cXyzb
*/
// one branch issue
#ifdef NONMATCHING
void dCcS::ProcAtTgHitmark(bool i_setAt, bool i_setTg, cCcD_Obj* param_2, cCcD_Obj* param_3,
dCcD_GObjInf* i_atObjInf, dCcD_GObjInf* i_tgObjInf, cCcD_Stts* param_6,
cCcD_Stts* param_7, dCcD_GStts* param_8, dCcD_GStts* param_9,
cXyz* i_hitPos, bool i_chkShield) {
if (!i_atObjInf->ChkAtNoHitMark() && !i_tgObjInf->ChkTgNoHitMark() &&
(i_atObjInf->GetAtType() != AT_TYPE_10000000 || i_tgObjInf->GetAc() == NULL ||
fopAcM_checkStatus(i_tgObjInf->GetAc(), AT_TYPE_10000000)))
{
if ((i_atObjInf->GetAtType() &
(AT_TYPE_WOLF_ATTACK | AT_TYPE_WOLF_CUT_TURN | AT_TYPE_10000000 | AT_TYPE_MIDNA_LOCK |
AT_TYPE_HOOKSHOT | AT_TYPE_SHIELD_ATTACK | AT_TYPE_NORMAL_SWORD)) == 0 ||
i_tgObjInf->GetTgSpl() == 1)
{
return;
}
if ((i_atObjInf->GetAtType() != AT_TYPE_HOOKSHOT ||
!i_tgObjInf->ChkTgHookShotNoHitMark()) &&
(i_atObjInf->GetAtType() != AT_TYPE_ARROW || !i_tgObjInf->ChkTgArrowNoHitMark()) &&
param_9->ChkNoneActorPerfTblId())
{
if (!i_chkShield) {
if ((i_atObjInf->GetAtHitMark() != 0 || i_tgObjInf->GetTgHitMark() == 8) &&
(i_atObjInf->GetAtHitMark() != 4 || i_tgObjInf->GetTgHitMark() != 4))
{
csXyz sp10;
CalcParticleAngle(i_atObjInf, param_6, param_7, &sp10);
if (i_tgObjInf->GetTgHitMark() == 5 || i_tgObjInf->GetTgHitMark() == 8) {
u32 atType = i_atObjInf->GetAtType();
fopAc_ac_c* ac = i_tgObjInf->GetAc();
i_dComIfGp_setHitMark(2, ac, i_hitPos, &sp10, NULL, atType);
} else {
u16 hitmark;
if (i_tgObjInf->GetTgHitMark() == 3) {
hitmark = 3;
} else {
hitmark = i_atObjInf->GetAtHitMark();
}
if ((hitmark != 1 && hitmark != 3) || i_atObjInf->GetAtAtp() != 0) {
u32 atType = i_atObjInf->GetAtType();
fopAc_ac_c* ac = i_tgObjInf->GetAc();
i_dComIfGp_setHitMark(hitmark, ac, i_hitPos, &sp10, NULL, atType);
}
}
}
} else if (i_tgObjInf->GetTgHitMark() != 0) {
csXyz sp8;
CalcParticleAngle(i_atObjInf, param_6, param_7, &sp8);
u32 atType = i_atObjInf->GetAtType();
fopAc_ac_c* ac = i_tgObjInf->GetAc();
u16 hitmark = i_tgObjInf->GetTgHitMark();
i_dComIfGp_setHitMark(hitmark, ac, i_hitPos, &sp8, NULL, atType);
}
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -375,74 +562,179 @@ asm void dCcS::ProcAtTgHitmark(bool param_0, bool param_1, cCcD_Obj* param_2, cC
#include "asm/d/cc/d_cc_s/func_8008685C.s"
}
#pragma pop
#endif
/* 80086AC0-80086D8C 081400 02CC+00 1/0 0/0 0/0 .text
* SetAtTgGObjInf__4dCcSFbbP8cCcD_ObjP8cCcD_ObjP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GSttsP4cXyz
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::SetAtTgGObjInf(bool param_0, bool param_1, cCcD_Obj* param_2, cCcD_Obj* param_3,
cCcD_GObjInf* param_4, cCcD_GObjInf* param_5, cCcD_Stts* param_6,
cCcD_Stts* param_7, cCcD_GStts* param_8, cCcD_GStts* param_9,
cXyz* param_10) {
nofralloc
#include "asm/d/cc/d_cc_s/func_80086AC0.s"
void dCcS::SetAtTgGObjInf(bool i_setAt, bool i_setTg, cCcD_Obj* param_2, cCcD_Obj* param_3,
cCcD_GObjInf* i_atObjInf, cCcD_GObjInf* i_tgObjInf, cCcD_Stts* param_6,
cCcD_Stts* param_7, cCcD_GStts* param_8, cCcD_GStts* param_9,
cXyz* i_hitPos) {
dCcD_GObjInf* atObjInf = (dCcD_GObjInf*)i_atObjInf;
dCcD_GObjInf* tgObjInf = (dCcD_GObjInf*)i_tgObjInf;
dCcD_GStts* stts1 = (dCcD_GStts*)param_8;
dCcD_GStts* stts2 = (dCcD_GStts*)param_9;
bool chk_shield = ChkShield(param_2, param_3, atObjInf, tgObjInf, i_hitPos);
if (i_setAt) {
atObjInf->SetAtHitPos(*i_hitPos);
atObjInf->SetAtRVec(*tgObjInf->GetTgVecP());
if (stts1 != NULL && stts1->GetTgSpl() == 0) {
stts1->SetTgSpl(tgObjInf->GetTgSpl());
}
atObjInf->SetAtHitApid(param_7->GetApid());
if (chk_shield || tgObjInf->GetTgHitMark() == 8 && atObjInf->GetAtMtrl() != 2 &&
(atObjInf->GetAtSpl() == 0 || atObjInf->GetAtSpl() == 5 ||
atObjInf->GetAtSpl() == 8))
{
atObjInf->OnAtShieldHit();
}
if (stts2->ChkNoActor()) {
atObjInf->OnAtHitNoActor();
}
}
if (i_setTg) {
tgObjInf->SetTgHitPos(*i_hitPos);
tgObjInf->SetTgRVec(*atObjInf->GetAtVecP());
if (stts2 != NULL && stts1->GetAtSpl() == 0) {
stts2->SetAtSpl(atObjInf->GetAtSpl());
}
tgObjInf->SetTgHitApid(param_6->GetApid());
if (chk_shield) {
tgObjInf->OnTgShieldHit();
} else {
param_7->PlusDmg(param_2->GetAtAtp());
}
if (stts1->ChkNoActor()) {
tgObjInf->OnTgHitNoActor();
}
}
if (i_setAt) {
dCcD_HitCallback cb = atObjInf->GetAtHitCallback();
if (cb != NULL) {
cb(atObjInf->GetAc(), atObjInf, tgObjInf->GetAc(), tgObjInf);
}
}
if (i_setTg) {
dCcD_HitCallback cb = tgObjInf->GetTgHitCallback();
if (cb != NULL) {
cb(tgObjInf->GetAc(), tgObjInf, atObjInf->GetAc(), atObjInf);
}
}
if (i_setAt && i_setTg && (!atObjInf->ChkAtEffCounter() || !tgObjInf->ChkTgEffCounter())) {
atObjInf->SetAtEffCounterTimer();
tgObjInf->SetTgEffCounterTimer();
ProcAtTgHitmark(i_setAt, i_setTg, param_2, param_3, atObjInf, tgObjInf, param_6, param_7,
stts1, stts2, i_hitPos, chk_shield);
}
}
#pragma pop
/* 80086D8C-80086FBC 0816CC 0230+00 0/0 2/2 0/0 .text
* ChkCamera__4dCcSFR4cXyzR4cXyzfP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::ChkCamera(cXyz& param_0, cXyz& param_1, f32 param_2, fopAc_ac_c* param_3,
fopAc_ac_c* param_4, fopAc_ac_c* param_5) {
nofralloc
#include "asm/d/cc/d_cc_s/ChkCamera__4dCcSFR4cXyzR4cXyzfP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_c.s"
}
#pragma pop
bool dCcS::ChkCamera(cXyz& param_0, cXyz& param_1, f32 param_2, fopAc_ac_c* param_3,
fopAc_ac_c* param_4, fopAc_ac_c* param_5) {
if (mObjCoCount == 0) {
return false;
}
/* ############################################################################################## */
/* 80452790-80452798 000D90 0004+04 1/1 0/0 0/0 .sdata2 @4336 */
SECTION_SDATA2 static f32 lit_4336[1 + 1 /* padding */] = {
1.0f,
/* padding */
0.0f,
};
cCcD_Obj** temp_r29 = &mpObjCo[mObjCoCount];
cCcD_CpsAttr sp48;
sp48.Set(param_0, param_1, param_2);
sp48.CalcAabBox();
cCcD_DivideInfo sp18;
f32 sp14;
mDivideArea.CalcDivideInfoOverArea(&sp18, sp48.GetWorkAab());
for (cCcD_Obj** i = mpObjCo; i < temp_r29; i++) {
if ((*i)->ChkCoSet() && (*i)->GetAc() != param_3 && (*i)->GetAc() != param_4 &&
(*i)->GetAc() != param_5)
{
if ((*i)->GetPDivideInfo()->Chk(sp18)) {
dCcD_GObjInf* obj = (dCcD_GObjInf*)(*i)->GetGObjInf();
if (obj == NULL || !obj->ChkCoNoCamHit()) {
cCcD_ShapeAttr* shapeAttr = (*i)->GetShapeAttr();
if (sp48.CrossCo(*shapeAttr, &sp14)) {
return true;
}
}
}
}
}
return false;
}
/* 80086FBC-8008721C 0818FC 0260+00 0/0 1/1 0/0 .text
* chkCameraPoint__4dCcSFRC4cXyzPQ214cCcD_ShapeAttr5ShapeP10fopAc_ac_cP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::chkCameraPoint(cXyz const& param_0, cCcD_ShapeAttr::Shape* param_1,
fopAc_ac_c* param_2, fopAc_ac_c* param_3) {
nofralloc
#include "asm/d/cc/d_cc_s/chkCameraPoint__4dCcSFRC4cXyzPQ214cCcD_ShapeAttr5ShapeP10fopAc_ac_cP10fopAc_ac_c.s"
}
#pragma pop
bool dCcS::chkCameraPoint(cXyz const& param_0, cCcD_ShapeAttr::Shape* param_1, fopAc_ac_c* param_2,
fopAc_ac_c* param_3) {
if (mObjCoCount == 0) {
return false;
}
/* 8008721C-800872A8 081B5C 008C+00 0/0 2/1 0/0 .text __dt__12cCcD_SphAttrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm cCcD_SphAttr::~cCcD_SphAttr() {
extern "C" asm void __dt__12cCcD_SphAttrFv() {
nofralloc
#include "asm/d/cc/d_cc_s/__dt__12cCcD_SphAttrFv.s"
cCcD_Obj** temp_r29 = &mpObjCo[mObjCoCount];
cCcD_SphAttr sp48;
cCcD_SrcSphAttr sp1C;
sp1C.mCenter = param_0;
sp1C.mRadius = 1.0f;
sp48.Set(sp1C);
sp48.CalcAabBox();
cCcD_DivideInfo sp18;
f32 sp14;
mDivideArea.CalcDivideInfoOverArea(&sp18, sp48.GetWorkAab());
for (cCcD_Obj** i = mpObjCo; i < temp_r29; i++) {
if ((*i)->ChkCoSet() && (*i)->GetAc() != param_2 && (*i)->GetAc() != param_3) {
if ((*i)->GetPDivideInfo()->Chk(sp18)) {
dCcD_GObjInf* obj = (dCcD_GObjInf*)(*i)->GetGObjInf();
if (obj == NULL || !obj->ChkCoNoCamHit()) {
cCcD_ShapeAttr* shapeAttr = (*i)->GetShapeAttr();
if (sp48.CrossCo(*shapeAttr, &sp14)) {
shapeAttr->getShapeAccess(param_1);
if (param_1->_0 != 2) {
return true;
}
}
}
}
}
}
return false;
}
#pragma pop
/* 800872A8-800872AC 081BE8 0004+00 1/0 0/0 0/0 .text MoveAfterCheck__4dCcSFv */
void dCcS::MoveAfterCheck() {
/* empty function */
}
void dCcS::MoveAfterCheck() {}
/* 800872AC-800872B0 081BEC 0004+00 1/1 0/0 0/0 .text DrawAfter__4dCcSFv */
void dCcS::DrawAfter() {
/* empty function */
}
void dCcS::DrawAfter() {}
/* 800872B0-800872D0 081BF0 0020+00 0/0 1/1 0/0 .text Move__4dCcSFv */
void dCcS::Move() {
@@ -463,7 +755,7 @@ void dCcS::MassClear() {
/* ############################################################################################## */
/* 803AC3A4-803AC3E4 0094C4 0040+00 1/1 0/0 0/0 .data m_mtrl_hit_tbl__4dCcS */
SECTION_DATA u8 dCcS::m_mtrl_hit_tbl[64] = {
u8 dCcS::m_mtrl_hit_tbl[64] = {
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
@@ -471,44 +763,23 @@ SECTION_DATA u8 dCcS::m_mtrl_hit_tbl[64] = {
};
/* 80087330-8008734C 081C70 001C+00 1/1 0/0 0/0 .text ChkAtTgMtrlHit__4dCcSFUcUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::ChkAtTgMtrlHit(u8 param_0, u8 param_1) {
nofralloc
#include "asm/d/cc/d_cc_s/ChkAtTgMtrlHit__4dCcSFUcUc.s"
int dCcS::ChkAtTgMtrlHit(u8 i_atMtrl, u8 i_tgMtrl) {
return m_mtrl_hit_tbl[i_atMtrl + i_tgMtrl * 8];
}
#pragma pop
/* 8008734C-800873B0 081C8C 0064+00 1/0 0/0 0/0 .text
* ChkNoHitGAtTg__4dCcSFPC12cCcD_GObjInfPC12cCcD_GObjInfP10cCcD_GSttsP10cCcD_GStts */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dCcS::ChkNoHitGAtTg(cCcD_GObjInf const* param_0, cCcD_GObjInf const* param_1,
cCcD_GStts* param_2, cCcD_GStts* param_3) {
nofralloc
#include "asm/d/cc/d_cc_s/ChkNoHitGAtTg__4dCcSFPC12cCcD_GObjInfPC12cCcD_GObjInfP10cCcD_GSttsP10cCcD_GStts.s"
}
#pragma pop
bool dCcS::ChkNoHitGAtTg(cCcD_GObjInf const* i_atObjInf, cCcD_GObjInf const* i_tgObjInf,
cCcD_GStts*, cCcD_GStts*) {
dCcD_GObjInf* atObjInf = (dCcD_GObjInf*)i_atObjInf;
dCcD_GObjInf* tgObjInf = (dCcD_GObjInf*)i_tgObjInf;
/* ############################################################################################## */
/* 803AC3E4-803AC418 009504 0034+00 0/0 2/2 0/0 .data __vt__4dCcS */
SECTION_DATA extern void* __vt__4dCcS[13] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CalcTgPlusDmg__4dCcSFP8cCcD_ObjP8cCcD_ObjP9cCcD_SttsP9cCcD_Stts,
(void*)SetPosCorrect__4dCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf,
(void*)
SetCoGObjInf__4dCcSFbbP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts,
(void*)
SetAtTgGObjInf__4dCcSFbbP8cCcD_ObjP8cCcD_ObjP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GSttsP4cXyz,
(void*)ChkNoHitGAtTg__4dCcSFPC12cCcD_GObjInfPC12cCcD_GObjInfP10cCcD_GSttsP10cCcD_GStts,
(void*)
ChkAtTgHitAfterCross__4dCcSFbbPC12cCcD_GObjInfPC12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts,
(void*)ChkNoHitGCo__4dCcSFP8cCcD_ObjP8cCcD_Obj,
(void*)__dt__4dCcSFv,
(void*)MoveAfterCheck__4dCcSFv,
(void*)SetCoGCorrectProc__4cCcSFP8cCcD_ObjP8cCcD_Obj,
(void*)CalcParticleAngle__4dCcSFP12dCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP5csXyz,
};
if (tgObjInf->ChkTgWolfSpNoDamage() && atObjInf->GetAtMtrl() == 0 &&
atObjInf->GetAtType() &
(AT_TYPE_CSTATUE_BOSS_SWING | AT_TYPE_1000 | AT_TYPE_800 | AT_TYPE_CSTATUE_SWING))
{
return true;
}
return ChkAtTgMtrlHit(atObjInf->GetAtMtrl(), tgObjInf->GetTgMtrl()) == 0;
}
+2 -2
View File
@@ -462,10 +462,10 @@ u8 daYkgr_c::m_emitter[4];
/* 80031870-800318B4 02C1B0 0044+00 0/0 0/0 19/19 .text getArcName__12daSetBgObj_cFP10fopAc_ac_c
*/
const char* daSetBgObj_c::getArcName(fopAc_ac_c* param_0) {
const char* daSetBgObj_c::getArcName(fopAc_ac_c* i_this) {
static char arcName[8];
sprintf(arcName, "@bg%04x", (u16)fopAcM_GetParam(param_0));
sprintf(arcName, "@bg%04x", (u16)fopAcM_GetParam(i_this));
return arcName;
}
+10 -11
View File
@@ -92,13 +92,13 @@ dJntCol_c::dJntCol_c() {
/* 80035CA0-80035CC8 0305E0 0028+00 0/0 2/2 8/8 .text
* init__9dJntCol_cFP10fopAc_ac_cPC13dJntColData_cP8J3DModeli */
int dJntCol_c::init(fopAc_ac_c* i_actorP, dJntColData_c const* i_jntColP, J3DModel* i_modelP,
int param_3) {
int param_3) {
mData = (dJntColData_c*)i_jntColP;
mModel = i_modelP;
field_0x8 = param_3;
field_0xc = 0;
if (i_actorP) {
fopAcM_SetJntCol(i_actorP,this);
fopAcM_SetJntCol(i_actorP, this);
}
return 1;
}
@@ -112,18 +112,17 @@ SECTION_SDATA2 static f32 lit_3655 = 500.0f;
#ifdef NONMATCHING
// regalloc, parameters are loading in wrong?
void dJntCol_c::setNowLine(cM3dGLin* param_0, cXyz const* param_1, csXyz const* param_2,
cXyz* param_3) {
cXyz* param_3) {
if (param_2) {
mDoMtx_stack_c::ZXYrotS(*param_2);
mDoMtx_stack_c::multVec(&cXyz::BaseZ,param_3);
mDoMtx_stack_c::multVec(&cXyz::BaseZ, param_3);
} else {
*param_3 = cXyz::BaseZ;
}
cXyz start_pos = *param_1 - *param_3 * FLOAT_LABEL(lit_3655);
cXyz end_pos = *param_1 + *param_3 * FLOAT_LABEL(lit_3655);
param_0->SetStartEnd(start_pos,end_pos);
param_0->SetStartEnd(start_pos, end_pos);
}
#else
#pragma push
@@ -234,7 +233,7 @@ asm void dJntCol_c::getArrowOffsetPosAndAngle(cXyz const* param_0, csXyz const*
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dJntCol_c::getHitmarkPosAndAngle(cXyz const* param_0, csXyz const* param_1, cXyz* param_2,
asm int dJntCol_c::getHitmarkPosAndAngle(cXyz const* param_0, csXyz const* param_1, cXyz* param_2,
csXyz* param_3, int param_4) const {
nofralloc
#include "asm/d/d_jnt_col/getHitmarkPosAndAngle__9dJntCol_cCFPC4cXyzPC5csXyzP4cXyzP5csXyzi.s"
@@ -244,10 +243,10 @@ asm void dJntCol_c::getHitmarkPosAndAngle(cXyz const* param_0, csXyz const* para
/* 80036FA8-80037038 0318E8 0090+00 0/0 0/0 1/1 .text
* setArrowPosAndAngle__9dJntCol_cFPC4cXyzPC4cXyziP4cXyzP5csXyz */
void dJntCol_c::setArrowPosAndAngle(cXyz const* param_0, cXyz const* i_srcPos, int i_anmMtxIdx,
cXyz* param_3, csXyz* i_arrowPosP) {
cXyz dst_pos;
mDoMtx_multVecSR(mModel->i_getAnmMtx(i_anmMtxIdx),i_srcPos,&dst_pos);
cXyz* param_3, csXyz* i_arrowPosP) {
cXyz dst_pos;
mDoMtx_multVecSR(mModel->i_getAnmMtx(i_anmMtxIdx), i_srcPos, &dst_pos);
i_arrowPosP->x = dst_pos.atan2sY_XZ();
i_arrowPosP->y = dst_pos.atan2sX_Z();
mDoMtx_multVec(mModel->i_getAnmMtx(i_anmMtxIdx),param_0,param_3);
mDoMtx_multVec(mModel->i_getAnmMtx(i_anmMtxIdx), param_0, param_3);
}
-17
View File
@@ -121,21 +121,4 @@ void exception_addition(JUTConsole* pConsole) {
dispGameInfo();
}
/* ############################################################################################## */
/* 80450C98-80450C9C -00001 0004+00 0/0 0/0 50/50 .sbss None */
/* 80450C98 0001+00 data_80450C98 None */
/* 80450C99 0001+00 data_80450C99 None */
/* 80450C9A 0001+00 data_80450C9A None */
/* 80450C9B 0001+00 data_80450C9B None */
extern u8 struct_80450C98[4];
u8 struct_80450C98[4];
/* 80450C9C-80450CA0 -00001 0004+00 0/0 0/0 6/6 .sbss None */
/* 80450C9C 0001+00 data_80450C9C None */
/* 80450C9D 0001+00 data_80450C9D None */
/* 80450C9E 0001+00 data_80450C9E None */
/* 80450C9F 0001+00 data_80450C9F None */
extern u8 struct_80450C9C[4];
u8 struct_80450C9C[4];
/* 80374460-80374460 000AC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */