d_stage / d_lib (#136)

* d_lib move

* move / work on d_stage

* add mDoExt funcs to header

* d_kyeff/kyeff2, d_bg_s_poly_pass_chk

* use array_size in d_stage
This commit is contained in:
TakaRikka
2021-06-18 06:33:51 -07:00
committed by GitHub
parent 8c2a3ae7ea
commit ba5ad31b54
185 changed files with 1626 additions and 4873 deletions
+7
View File
@@ -3996,6 +3996,12 @@ asm void daAlink_matAnm_c::calc(J3DMaterial* param_0) const {
#pragma pop
/* 8009DA60-8009DA98 0983A0 0038+00 48/48 0/0 5/5 .text checkStageName__9daAlink_cFPCc */
// need gameinfo setup
#ifdef NONMATCHING
bool daAlink_c::checkStageName(const char* stage) {
return strcmp(dComIfGp_getStartStageName(), stage) == 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -4004,6 +4010,7 @@ asm bool daAlink_c::checkStageName(char const* param_0) {
#include "asm/d/a/d_a_alink/checkStageName__9daAlink_cFPCc.s"
}
#pragma pop
#endif
/* 8009DA98-8009DB64 0983D8 00CC+00 1/1 0/0 0/0 .text
* tgHitCallback__9daAlink_cFP10fopAc_ac_cP12dCcD_GObjInfP12dCcD_GObjInf */
+46 -175
View File
@@ -59,15 +59,9 @@ SECTION_DATA extern void* __vt__16cBgS_PolyPassChk[3] = {
(void*)__dt__16cBgS_PolyPassChkFv,
};
/* 80078D64-80078DB0 0736A4 004C+00 0/0 1/1 0/0 .text __ct__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dBgS_PolyPassChk::dBgS_PolyPassChk() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/__ct__16dBgS_PolyPassChkFv.s"
}
#pragma pop
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
@@ -79,207 +73,84 @@ asm dBgS_PolyPassChk::~dBgS_PolyPassChk() {
}
#pragma pop
/* 80078E0C-80078E68 07374C 005C+00 0/0 1/1 0/0 .text
* SetPassChkInfo__16dBgS_PolyPassChkFR16dBgS_PolyPassChk */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetPassChkInfo(dBgS_PolyPassChk& param_0) {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetPassChkInfo__16dBgS_PolyPassChkFR16dBgS_PolyPassChk.s"
void dBgS_PolyPassChk::SetPassChkInfo(dBgS_PolyPassChk& chk) {
*this = chk;
}
#pragma pop
/* 80078E68-80078E74 0737A8 000C+00 0/0 14/14 410/410 .text SetObj__16dBgS_PolyPassChkFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetObj() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetObj__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetObj() {
mObject = true;
}
#pragma pop
/* 80078E74-80078E80 0737B4 000C+00 0/0 4/4 2/2 .text ClrObj__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::ClrObj() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/ClrObj__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::ClrObj() {
mObject = false;
}
#pragma pop
/* 80078E80-80078E8C 0737C0 000C+00 0/0 6/6 0/0 .text SetCam__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetCam() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetCam__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetCam() {
mCamera = true;
}
#pragma pop
/* 80078E8C-80078E98 0737CC 000C+00 0/0 2/2 0/0 .text ClrCam__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::ClrCam() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/ClrCam__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::ClrCam() {
mCamera = false;
}
#pragma pop
/* 80078E98-80078EA4 0737D8 000C+00 0/0 3/3 3/3 .text SetLink__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetLink() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetLink__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetLink() {
mLink = true;
}
#pragma pop
/* 80078EA4-80078EB0 0737E4 000C+00 0/0 1/1 0/0 .text ClrLink__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::ClrLink() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/ClrLink__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::ClrLink() {
mLink = false;
}
#pragma pop
/* 80078EB0-80078EBC 0737F0 000C+00 0/0 1/1 0/0 .text SetArrow__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetArrow() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetArrow__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetArrow() {
mArrow = true;
}
#pragma pop
/* 80078EBC-80078EC8 0737FC 000C+00 0/0 2/2 2/2 .text SetBomb__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetBomb() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetBomb__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetBomb() {
mBomb = true;
}
#pragma pop
/* 80078EC8-80078ED4 073808 000C+00 0/0 1/1 0/0 .text ClrBomb__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::ClrBomb() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/ClrBomb__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::ClrBomb() {
mBomb = false;
}
#pragma pop
/* 80078ED4-80078EE0 073814 000C+00 0/0 1/1 0/0 .text SetBoomerang__16dBgS_PolyPassChkFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetBoomerang() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetBoomerang__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetBoomerang() {
mBoomerang = true;
}
#pragma pop
/* 80078EE0-80078EEC 073820 000C+00 0/0 1/1 8/8 .text SetRope__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetRope() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetRope__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetRope() {
mRope = true;
}
#pragma pop
/* 80078EEC-80078EF8 07382C 000C+00 0/0 3/3 0/0 .text SetUnderwaterRoof__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetUnderwaterRoof() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetUnderwaterRoof__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetUnderwaterRoof() {
mUnderwaterRoof = true;
}
#pragma pop
/* 80078EF8-80078F04 073838 000C+00 0/0 1/1 1/1 .text SetHorse__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetHorse() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetHorse__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetHorse() {
mHorse = true;
}
#pragma pop
/* 80078F04-80078F7C 073844 0078+00 0/0 2/2 0/0 .text ChkNoHorse__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dBgS_PolyPassChk::ChkNoHorse() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/ChkNoHorse__16dBgS_PolyPassChkFv.s"
bool dBgS_PolyPassChk::ChkNoHorse() {
if (ChkObj() || ChkCam() || ChkLink() || ChkArrow() || ChkBomb() || ChkBoomerang() ||
ChkRope() || ChkUnderwaterRoof()) {
return true;
}
return !ChkHorse();
}
#pragma pop
/* 80078F7C-80078F88 0738BC 000C+00 0/0 1/1 2/2 .text SetStatue__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetStatue() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetStatue__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetStatue() {
mStatue = true;
}
#pragma pop
/* 80078F88-80078F94 0738C8 000C+00 0/0 1/1 0/0 .text ClrStatue__16dBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::ClrStatue() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/ClrStatue__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::ClrStatue() {
mStatue = false;
}
#pragma pop
/* 80078F94-80078FA0 0738D4 000C+00 0/0 1/1 1/1 .text SetIronBall__16dBgS_PolyPassChkFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::SetIronBall() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/SetIronBall__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::SetIronBall() {
mIronBall = true;
}
#pragma pop
/* 80078FA0-80078FAC 0738E0 000C+00 0/0 0/0 9/9 .text ClrIronBall__16dBgS_PolyPassChkFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgS_PolyPassChk::ClrIronBall() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/ClrIronBall__16dBgS_PolyPassChkFv.s"
void dBgS_PolyPassChk::ClrIronBall() {
mIronBall = false;
}
#pragma pop
/* 80078FAC-80078FF4 0738EC 0048+00 1/0 0/0 0/0 .text __dt__16cBgS_PolyPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cBgS_PolyPassChk::~cBgS_PolyPassChk() {
nofralloc
#include "asm/d/bg/d_bg_s_poly_pass_chk/__dt__16cBgS_PolyPassChkFv.s"
}
#pragma pop
cBgS_PolyPassChk::~cBgS_PolyPassChk() {}
+50 -31
View File
@@ -4,6 +4,7 @@
//
#include "d/d_kyeff.h"
#include "d/kankyo/d_kankyo_wether.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -13,10 +14,6 @@
struct kankyo_class {};
struct dKyeff_c {
/* 801ADD5C */ void execute();
};
struct Z2EnvSeMgr {
/* 802C66B0 */ void framework();
};
@@ -58,15 +55,10 @@ extern "C" extern u8 g_mEnvSeMgr[780];
// Declarations:
//
/* 801ADD38-801ADD5C 1A8678 0024+00 1/0 0/0 0/0 .text dKyeff_Draw__FP8dKyeff_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKyeff_Draw(dKyeff_c* param_0) {
nofralloc
#include "asm/d/d_kyeff/dKyeff_Draw__FP8dKyeff_c.s"
static bool dKyeff_Draw(dKyeff_c* ptr) {
dKyw_wether_draw();
return true;
}
#pragma pop
/* ############################################################################################## */
/* 80394F38-80394F38 021598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -78,39 +70,42 @@ SECTION_DEAD static char const* const pad_80394F3D = "\0\0";
#pragma pop
/* 801ADD5C-801ADDB4 1A869C 0058+00 1/1 0/0 0/0 .text execute__8dKyeff_cFv */
// matching but need gameinfo setup
#ifdef NONMATCHING
bool dKyeff_c::execute() {
char* stageName = dComIfGp_getStartStageName();
int strcmp_result = strcmp(stageName, "Name"); // strcmp(stageName,"Name");
if (strcmp_result != 0) {
dKyw_wether_move();
}
dKyw_wether_move_draw();
dKy_FiveSenses_fullthrottle_dark();
mDoAud_mEnvse_framework();
return true;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKyeff_c::execute() {
asm bool dKyeff_c::execute() {
nofralloc
#include "asm/d/d_kyeff/execute__8dKyeff_cFv.s"
}
#pragma pop
#endif
/* 801ADDB4-801ADDD4 1A86F4 0020+00 1/0 0/0 0/0 .text dKyeff_Execute__FP8dKyeff_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKyeff_Execute(dKyeff_c* param_0) {
nofralloc
#include "asm/d/d_kyeff/dKyeff_Execute__FP8dKyeff_c.s"
static bool dKyeff_Execute(dKyeff_c* ptr) {
return ptr->execute();
}
#pragma pop
/* 801ADDD4-801ADDDC 1A8714 0008+00 1/0 0/0 0/0 .text dKyeff_IsDelete__FP8dKyeff_c */
static bool dKyeff_IsDelete(dKyeff_c* param_0) {
static bool dKyeff_IsDelete(dKyeff_c* ptr) {
return true;
}
/* 801ADDDC-801ADE00 1A871C 0024+00 1/0 0/0 0/0 .text dKyeff_Delete__FP8dKyeff_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKyeff_Delete(dKyeff_c* param_0) {
nofralloc
#include "asm/d/d_kyeff/dKyeff_Delete__FP8dKyeff_c.s"
static bool dKyeff_Delete(dKyeff_c* ptr) {
dKyw_wether_delete();
return true;
}
#pragma pop
/* ############################################################################################## */
/* 80453E58-80453E5C 002458 0004+00 1/1 0/0 0/0 .sdata2 @3804 */
@@ -134,6 +129,29 @@ SECTION_SDATA2 static f32 lit_3843 = 7.0f / 10.0f;
SECTION_SDATA2 static f32 lit_3844 = 15.0f;
/* 801ADE00-801ADEA0 1A8740 00A0+00 1/0 0/0 0/0 .text dKyeff_Create__FP12kankyo_class */
// matching but need gameinfo setup
#ifdef NONMATCHING
u32 dKyeff_Create(kankyo_class* kankyo_class_ptr) {
int strcmp_result;
OSTime Time;
OSCalendarTime CalendarTime;
dKyw_wether_init();
strcmp_result = strcmp(dComIfGp_getStartStageName(), "Name");
if (strcmp_result == 0) {
Time = OSGetTime();
OSTicksToCalendarTime(
Time,
&CalendarTime); // CONCAT44(iVar1,(int)((ulonglong)OVar2 >> 0x20)),&CalendarTime);
lbl_8042CA54.field_0xe48 = 1.0f;
lbl_8042CA54.field_0xe4c = 0.0f;
lbl_8042CA54.field_0xe50 = 0.0f;
lbl_8042CA54.field_0xe58 = 0.7f;
lbl_8042CA54.field_0x1244 = CalendarTime.hours * 15.0f;
}
return 4;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -142,6 +160,7 @@ static asm void dKyeff_Create(kankyo_class* param_0) {
#include "asm/d/d_kyeff/dKyeff_Create__FP12kankyo_class.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803BC158-803BC16C -00001 0014+00 1/0 0/0 0/0 .data l_dKyeff_Method */
+22 -52
View File
@@ -4,6 +4,7 @@
//
#include "d/d_kyeff2.h"
#include "d/kankyo/d_kankyo_wether.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -13,10 +14,6 @@
struct kankyo_class {};
struct dKyeff2_c {
/* 801ADEC4 */ void execute();
};
//
// Forward References:
//
@@ -44,60 +41,33 @@ extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
// Declarations:
//
/* 801ADEA0-801ADEC4 1A87E0 0024+00 1/0 0/0 0/0 .text dKyeff2_Draw__FP9dKyeff2_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKyeff2_Draw(dKyeff2_c* param_0) {
nofralloc
#include "asm/d/d_kyeff2/dKyeff2_Draw__FP9dKyeff2_c.s"
}
#pragma pop
/* 801ADEC4-801ADEE8 1A8804 0024+00 1/1 0/0 0/0 .text execute__9dKyeff2_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKyeff2_c::execute() {
nofralloc
#include "asm/d/d_kyeff2/execute__9dKyeff2_cFv.s"
}
#pragma pop
/* 801ADEE8-801ADF08 1A8828 0020+00 1/0 0/0 0/0 .text dKyeff2_Execute__FP9dKyeff2_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKyeff2_Execute(dKyeff2_c* param_0) {
nofralloc
#include "asm/d/d_kyeff2/dKyeff2_Execute__FP9dKyeff2_c.s"
}
#pragma pop
/* 801ADF08-801ADF10 1A8848 0008+00 1/0 0/0 0/0 .text dKyeff2_IsDelete__FP9dKyeff2_c */
static bool dKyeff2_IsDelete(dKyeff2_c* param_0) {
static bool dKyeff2_Draw(dKyeff2_c* ptr) {
dKyw_wether_draw2();
return true;
}
/* 801ADF10-801ADF34 1A8850 0024+00 1/0 0/0 0/0 .text dKyeff2_Delete__FP9dKyeff2_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKyeff2_Delete(dKyeff2_c* param_0) {
nofralloc
#include "asm/d/d_kyeff2/dKyeff2_Delete__FP9dKyeff2_c.s"
bool dKyeff2_c::execute() {
dKyw_wether_move_draw2();
return true;
}
#pragma pop
/* 801ADF34-801ADF58 1A8874 0024+00 1/0 0/0 0/0 .text dKyeff2_Create__FP12kankyo_class */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKyeff2_Create(kankyo_class* param_0) {
nofralloc
#include "asm/d/d_kyeff2/dKyeff2_Create__FP12kankyo_class.s"
static bool dKyeff2_Execute(dKyeff2_c* ptr) {
return ptr->execute();
}
static bool dKyeff2_IsDelete(dKyeff2_c* ptr) {
return true;
}
static bool dKyeff2_Delete(dKyeff2_c* ptr) {
dKyw_wether_delete2();
return true;
}
static int dKyeff2_Create(kankyo_class* ptr) {
dKyw_wether_init2();
return 4;
}
#pragma pop
/* ############################################################################################## */
/* 803BC198-803BC1AC -00001 0014+00 1/0 0/0 0/0 .data l_dKyeff2_Method */
+113 -141
View File
@@ -6,6 +6,8 @@
#include "d/d_lib.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "m_Do/m_Do_controller_pad.h"
//
// Types:
@@ -15,46 +17,10 @@ struct mDoMtx_stack_c {
static u8 now[48];
};
struct mDoCPd_c {
static u8 m_cpadInfo[256];
};
struct fopAc_ac_c {};
struct dLib_time_c {
/* 80032804 */ void getTime();
/* 80032880 */ void stopTime();
/* 800328BC */ void startTime();
static u8 m_diffTime[4];
static u8 m_stopTime[4];
};
struct dEvt_control_c {
/* 800434D8 */ void searchMapEventData(u8);
};
struct Vec {};
struct cXyz {
/* 80266B34 */ void operator-(Vec const&) const;
};
struct STControl {
/* 80032044 */ STControl(s16, s16, s16, s16, f32, f32, s16, s16);
/* 80032088 */ void setWaitParm(s16, s16, s16, s16, f32, f32, s16, s16);
/* 800320AC */ void init();
/* 800320FC */ void Xinit();
/* 8003212C */ void Yinit();
/* 8003215C */ void getValueStick();
/* 8003216C */ void getAngleStick();
/* 8003219C */ void checkTrigger();
/* 8003242C */ void checkLeftTrigger();
/* 800324A8 */ void checkRightTrigger();
/* 80032524 */ void checkUpTrigger();
/* 800325A0 */ void checkDownTrigger();
};
struct JKRHeap {};
struct JKRExpandSwitch {};
@@ -71,11 +37,6 @@ struct JKRAram {
/* 802D25B4 */ void aramToMainRam(u32, u8*, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*);
};
struct CSTControl {
/* 8003217C */ void getValueStick();
/* 8003218C */ void getAngleStick();
};
//
// Forward References:
//
@@ -114,7 +75,6 @@ extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl();
extern "C" void findFsResource__10JKRArchiveCFPCcUl();
extern "C" void getAramAddress__14JKRAramArchiveFPCc();
extern "C" void OSGetTime();
extern "C" void PSMTXMultVec();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
@@ -148,49 +108,57 @@ SECTION_DATA extern void* __vt__9STControl[4] = {
(void*)getAngleStick__9STControlFv,
};
/* 80032044-80032088 02C984 0044+00 0/0 6/6 0/0 .text __ct__9STControlFssssffss */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm STControl::STControl(s16 param_0, s16 param_1, s16 param_2, s16 param_3, f32 param_4,
f32 param_5, s16 param_6, s16 param_7) {
nofralloc
#include "asm/d/d_lib/__ct__9STControlFssssffss.s"
STControl::STControl(s16 param_0, s16 param_1, s16 param_2, s16 param_3, f32 param_4, f32 param_5,
s16 param_6, s16 param_7) {
setWaitParm(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7);
init();
}
#pragma pop
/* 80032088-800320AC 02C9C8 0024+00 1/1 3/3 0/0 .text setWaitParm__9STControlFssssffss */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void STControl::setWaitParm(s16 param_0, s16 param_1, s16 param_2, s16 param_3, f32 param_4,
f32 param_5, s16 param_6, s16 param_7) {
nofralloc
#include "asm/d/d_lib/setWaitParm__9STControlFssssffss.s"
void STControl::setWaitParm(s16 param_0, s16 param_1, s16 param_2, s16 param_3, f32 param_4,
f32 param_5, s16 param_6, s16 param_7) {
field_0x12 = param_0;
field_0x14 = param_1;
field_0x16 = param_2;
field_0x1c = param_3;
field_0x04 = param_4;
field_0x08 = param_5;
field_0x24 = param_6;
field_0x26 = param_7;
}
#pragma pop
/* 800320AC-800320FC 02C9EC 0050+00 1/1 1/1 0/0 .text init__9STControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void STControl::init() {
nofralloc
#include "asm/d/d_lib/init__9STControlFv.s"
void STControl::init() {
field_0x0e = 0;
field_0x10 = 0;
field_0x0d = 0;
field_0x0c = 0;
field_0x22 = 0;
mXwaitTimer = field_0x12;
mYwaitTimer = field_0x12;
field_0x1e = field_0x1c;
field_0x20 = field_0x1c;
mFirstWaitTime = 0;
field_0x2a = mFirstWaitTime;
field_0x2c = mFirstWaitTime;
}
#pragma pop
/* 800320FC-8003212C 02CA3C 0030+00 1/1 0/0 0/0 .text Xinit__9STControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void STControl::Xinit() {
nofralloc
#include "asm/d/d_lib/Xinit__9STControlFv.s"
void STControl::Xinit() {
field_0x0e = 0;
field_0x0c &= 0xfc;
mXwaitTimer = field_0x12;
field_0x1e = field_0x1c;
field_0x2a = mFirstWaitTime;
}
#pragma pop
/* 8003212C-8003215C 02CA6C 0030+00 1/1 0/0 0/0 .text Yinit__9STControlFv */
#ifdef NONMATCHING
void STControl::Yinit() {
field_0x10 = 0;
field_0x0c &= 0xf3;
mYwaitTimer = field_0x12;
field_0x20 = field_0x1c;
field_0x2c = mFirstWaitTime;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -199,46 +167,23 @@ asm void STControl::Yinit() {
#include "asm/d/d_lib/Yinit__9STControlFv.s"
}
#pragma pop
#endif
/* 8003215C-8003216C 02CA9C 0010+00 1/0 0/0 0/0 .text getValueStick__9STControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void STControl::getValueStick() {
nofralloc
#include "asm/d/d_lib/getValueStick__9STControlFv.s"
f32 STControl::getValueStick() {
return mDoCPd_c::getStickValue(mDoCPd_c::PAD_0);
}
#pragma pop
/* 8003216C-8003217C 02CAAC 0010+00 1/0 0/0 0/0 .text getAngleStick__9STControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void STControl::getAngleStick() {
nofralloc
#include "asm/d/d_lib/getAngleStick__9STControlFv.s"
s16 STControl::getAngleStick() {
return mDoCPd_c::getStickAngle(mDoCPd_c::PAD_0);
}
#pragma pop
/* 8003217C-8003218C 02CABC 0010+00 1/0 0/0 0/0 .text getValueStick__10CSTControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CSTControl::getValueStick() {
nofralloc
#include "asm/d/d_lib/getValueStick__10CSTControlFv.s"
f32 CSTControl::getValueStick() {
return mDoCPd_c::getSubStickValue(mDoCPd_c::PAD_0);
}
#pragma pop
/* 8003218C-8003219C 02CACC 0010+00 1/0 0/0 0/0 .text getAngleStick__10CSTControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CSTControl::getAngleStick() {
nofralloc
#include "asm/d/d_lib/getAngleStick__10CSTControlFv.s"
s16 CSTControl::getAngleStick() {
return mDoCPd_c::getSubStickAngle(mDoCPd_c::PAD_0);
}
#pragma pop
/* 8003219C-8003242C 02CADC 0290+00 0/0 24/24 0/0 .text checkTrigger__9STControlFv */
#pragma push
@@ -250,46 +195,73 @@ asm void STControl::checkTrigger() {
}
#pragma pop
/* 8003242C-800324A8 02CD6C 007C+00 0/0 14/14 0/0 .text checkLeftTrigger__9STControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void STControl::checkLeftTrigger() {
nofralloc
#include "asm/d/d_lib/checkLeftTrigger__9STControlFv.s"
bool STControl::checkLeftTrigger() {
if ((field_0x0e == 0) && ((field_0x0c & 1) != 0)) {
field_0x0e = mXwaitTimer + field_0x2a;
field_0x2a = 0;
if ((int)field_0x1e == 0) {
mXwaitTimer -= field_0x16;
if (mXwaitTimer < field_0x14) {
mXwaitTimer = field_0x14;
}
} else {
field_0x1e--;
}
return true;
}
return false;
}
#pragma pop
/* 800324A8-80032524 02CDE8 007C+00 0/0 14/14 0/0 .text checkRightTrigger__9STControlFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void STControl::checkRightTrigger() {
nofralloc
#include "asm/d/d_lib/checkRightTrigger__9STControlFv.s"
bool STControl::checkRightTrigger() {
if ((field_0x0e == 0) && ((field_0x0c & 2) != 0)) {
field_0x0e = mXwaitTimer + field_0x2a;
field_0x2a = 0;
if ((int)field_0x1e == 0) {
mXwaitTimer -= field_0x16;
if (mXwaitTimer < field_0x14) {
mXwaitTimer = field_0x14;
}
} else {
field_0x1e--;
}
return true;
}
return false;
}
#pragma pop
/* 80032524-800325A0 02CE64 007C+00 0/0 20/20 0/0 .text checkUpTrigger__9STControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void STControl::checkUpTrigger() {
nofralloc
#include "asm/d/d_lib/checkUpTrigger__9STControlFv.s"
bool STControl::checkUpTrigger() {
if ((field_0x10 == 0) && ((field_0x0c & 4) != 0)) {
field_0x10 = mYwaitTimer + field_0x2c;
field_0x2c = 0;
if ((int)field_0x20 == 0) {
mYwaitTimer -= field_0x16;
if (mYwaitTimer < field_0x14) {
mYwaitTimer = field_0x14;
}
} else {
field_0x20--;
}
return true;
}
return false;
}
#pragma pop
/* 800325A0-8003261C 02CEE0 007C+00 0/0 21/21 0/0 .text checkDownTrigger__9STControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void STControl::checkDownTrigger() {
nofralloc
#include "asm/d/d_lib/checkDownTrigger__9STControlFv.s"
bool STControl::checkDownTrigger() {
if ((field_0x10 == 0) && ((field_0x0c & 8) != 0)) {
field_0x10 = mYwaitTimer + field_0x2c;
field_0x2c = 0;
if ((int)field_0x20 == 0) {
mYwaitTimer -= field_0x16;
if (mYwaitTimer < field_0x14) {
mYwaitTimer = field_0x14;
}
} else {
field_0x20--;
}
return true;
}
return false;
}
#pragma pop
/* 8003261C-80032654 02CF5C 0038+00 0/0 0/0 1/1 .text dLib_getEventSwitchNo__Fi */
#pragma push
+1204 -2557
View File
File diff suppressed because it is too large Load Diff
+3 -5
View File
@@ -588,19 +588,17 @@ void* fopAcM_fastCreate(s16 procTypeID, u32 parameter, const cXyz* pPos, int roo
}
}
objectNameInfo* dStage_searchName(const char*);
/* 80019E6C-80019EF0 0147AC 0084+00 0/0 1/1 0/0 .text
* fopAcM_fastCreate__FPCcUlPC4cXyziPC5csXyzPC4cXyzPFPv_iPv */
void* fopAcM_fastCreate(const char* pActorName, u32 parameter, const cXyz* pActorPos, int roomNo,
const csXyz* pActorRot, const cXyz* pScale, createFunc pCreateFunc,
void* pCreateFuncData) {
objectNameInfo* nameInfo = dStage_searchName(pActorName);
dStage_objectNameInf* nameInfo = dStage_searchName(pActorName);
if (nameInfo == NULL) {
return NULL;
} else {
return fopAcM_fastCreate(nameInfo->mProcTypeID, parameter, pActorPos, roomNo, pActorRot,
pScale, nameInfo->unkA, pCreateFunc, pCreateFuncData);
return fopAcM_fastCreate(nameInfo->mProcName, parameter, pActorPos, roomNo, pActorRot,
pScale, nameInfo->mSubtype, pCreateFunc, pCreateFuncData);
}
}