kankyo fixes, d_envse start

This commit is contained in:
Jasper St. Pierre
2023-10-14 15:35:20 -07:00
parent 07904b00da
commit 8845e983e1
7 changed files with 88 additions and 52 deletions
+6 -2
View File
@@ -4,11 +4,15 @@
#include "SSystem/SComponent/c_xyz.h"
#include "f_pc/f_pc_leaf.h"
struct kankyo_method_class {
/* 0x00 */ leafdraw_method_class base;
};
class kankyo_class : public leafdraw_class {
public:
/* 0xC0 */ int mBsType;
/* 0xC4 */ create_tag_class mDwTg;
/* 0xD8 */ leafdraw_method_class* mSubMtd;
/* 0xD8 */ kankyo_method_class* mSubMtd;
/* 0xDC */ cXyz mPos;
/* 0xE8 */ cXyz mScale;
/* 0xF4 */ u32 mParam;
@@ -16,7 +20,7 @@ public:
struct kankyo_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition base;
/* 0x24 */ leafdraw_method_class* mSubMtd;
/* 0x24 */ kankyo_method_class* mSubMtd;
}; // Size: 0x28
extern leafdraw_method_class g_fopKy_Method;
+46 -13
View File
@@ -3,12 +3,23 @@
// Translation Unit: d_envse.cpp
//
#include "d_envse.h"
#include "dolphin/types.h"
#include "f_op/f_op_kankyo.h"
#include "f_op/f_op_kankyo_mng.h"
#include "d/d_procname.h"
#include "d/d_stage.h"
#include "m_Do/m_Do_audio.h"
class dEnvSe_c : public kankyo_class {
public:
BOOL execute();
/* 0xF8 */ u32 field_0xf8;
/* 0xFC */ u32 field_0xfc;
};
/* 8017D4C0-8017D4C8 .text dEnvSe_Draw__FP8dEnvSe_c */
void dEnvSe_Draw(dEnvSe_c*) {
/* Nonmatching */
BOOL dEnvSe_Draw(dEnvSe_c* i_this) {
return TRUE;
}
/* 8017D4C8-8017D700 .text dEnvSe_getNearPathPos__FP4cXyzP4cXyzP5dPath */
@@ -17,27 +28,49 @@ void dEnvSe_getNearPathPos(cXyz*, cXyz*, dPath*) {
}
/* 8017D700-8017DAE0 .text execute__8dEnvSe_cFv */
void dEnvSe_c::execute() {
BOOL dEnvSe_c::execute() {
/* Nonmatching */
}
/* 8017DAE0-8017DB00 .text dEnvSe_Execute__FP8dEnvSe_c */
void dEnvSe_Execute(dEnvSe_c*) {
/* Nonmatching */
BOOL dEnvSe_Execute(dEnvSe_c* i_this) {
return i_this->execute();
}
/* 8017DB00-8017DB08 .text dEnvSe_IsDelete__FP8dEnvSe_c */
void dEnvSe_IsDelete(dEnvSe_c*) {
/* Nonmatching */
BOOL dEnvSe_IsDelete(dEnvSe_c* i_this) {
return TRUE;
}
/* 8017DB08-8017DB38 .text dEnvSe_Delete__FP8dEnvSe_c */
void dEnvSe_Delete(dEnvSe_c*) {
/* Nonmatching */
BOOL dEnvSe_Delete(dEnvSe_c* i_this) {
mDoAud_seDeleteObject(&i_this->mPos);
return TRUE;
}
/* 8017DB38-8017DB40 .text dEnvSe_Create__FP12kankyo_class */
void dEnvSe_Create(kankyo_class*) {
/* Nonmatching */
s32 dEnvSe_Create(kankyo_class*) {
return cPhs_COMPLEATE_e;
}
kankyo_method_class l_dEnvSe_Method = {
(process_method_func)dEnvSe_Create,
(process_method_func)dEnvSe_Delete,
(process_method_func)dEnvSe_Execute,
(process_method_func)dEnvSe_IsDelete,
(process_method_func)dEnvSe_Draw,
};
kankyo_process_profile_definition g_profile_EnvSe = {
fpcLy_CURRENT_e,
2,
fpcPi_CURRENT_e,
PROC_ENVSE,
&g_fpcLf_Method.mBase,
sizeof(dEnvSe_c),
0,
0,
&g_fopKy_Method,
0xA9,
&l_dEnvSe_Method,
};
+2 -2
View File
@@ -2967,7 +2967,7 @@ BOOL dKyr_player_overhead_bg_chk() {
class sub_kankyo__class : public kankyo_class {
};
static leafdraw_method_class l_dKy_Method = {
kankyo_method_class l_dKy_Method = {
(process_method_func)dKy_Create,
(process_method_func)dKy_Delete,
(process_method_func)dKy_Execute,
@@ -2975,7 +2975,7 @@ static leafdraw_method_class l_dKy_Method = {
(process_method_func)dKy_Draw,
};
extern kankyo_process_profile_definition g_profile_KANKYO = {
kankyo_process_profile_definition g_profile_KANKYO = {
fpcLy_CURRENT_e,
1,
fpcPi_CURRENT_e,
+2 -2
View File
@@ -164,7 +164,7 @@ s32 dKyeff_Create(kankyo_class* i_ky) {
return cPhs_COMPLEATE_e;
}
leafdraw_method_class l_dKyeff_Method = {
kankyo_method_class l_dKyeff_Method = {
(process_method_func)dKyeff_Create,
(process_method_func)dKyeff_Delete,
(process_method_func)dKyeff_Execute,
@@ -172,7 +172,7 @@ leafdraw_method_class l_dKyeff_Method = {
(process_method_func)dKyeff_Draw,
};
extern kankyo_process_profile_definition g_profile_KYEFF = {
kankyo_process_profile_definition g_profile_KYEFF = {
fpcLy_CURRENT_e,
12,
fpcPi_CURRENT_e,
+2 -2
View File
@@ -53,7 +53,7 @@ s32 dKyeff2_Create(kankyo_class*) {
return cPhs_COMPLEATE_e;
}
leafdraw_method_class l_dKyeff2_Method = {
kankyo_method_class l_dKyeff2_Method = {
(process_method_func)dKyeff2_Create,
(process_method_func)dKyeff2_Delete,
(process_method_func)dKyeff2_Execute,
@@ -61,7 +61,7 @@ leafdraw_method_class l_dKyeff2_Method = {
(process_method_func)dKyeff2_Draw,
};
extern kankyo_process_profile_definition g_profile_KYEFF2 = {
kankyo_process_profile_definition g_profile_KYEFF2 = {
fpcLy_CURRENT_e,
12,
fpcPi_CURRENT_e,
+1 -1
View File
@@ -2015,7 +2015,7 @@ void dStage_Create() {
// NONMATCHING - almost
void dStage_Delete() {
if (*dStage_roomControl_c::getDemoArcName() != 0) {
dComIfG_deleteObjectResMain(dStage_roomControl_c::getDemoArcName());
dComIfG_deleteObjectRes(dStage_roomControl_c::getDemoArcName());
}
dStage_roomControl_c::destroyMemoryBlock();
+29 -30
View File
@@ -13,48 +13,48 @@
extern bool dMenu_flag(void);
/* 8002A454-8002A4A4 .text fopKy_Draw__FPv */
static int fopKy_Draw(void* i_this) {
static int fopKy_Draw(void* i_ky) {
int ret;
kankyo_class* _this = (kankyo_class*)i_this;
kankyo_class* i_this = (kankyo_class*)i_ky;
if (!dMenu_flag()) {
ret = fpcLf_DrawMethod(_this->mSubMtd, i_this);
ret = fpcLf_DrawMethod((leafdraw_method_class*)i_this->mSubMtd, i_this);
}
return ret;
}
/* 8002A4A4-8002A514 .text fopKy_Execute__FPv */
static int fopKy_Execute(void* i_this) {
static int fopKy_Execute(void* i_ky) {
int ret;
kankyo_class* _this = (kankyo_class*)i_this;
kankyo_class* i_this = (kankyo_class*)i_ky;
if (!dScnPly_ply_c::isPause() && (!dMenu_flag() || fpcM_GetName(i_this) == PROC_ENVSE || fpcM_GetName(i_this) == PROC_LEVEL_SE)) {
ret = fpcMtd_Execute(&_this->mSubMtd->mBase, i_this);
if (!dScnPly_ply_c::isPause() && (!dMenu_flag() || fpcM_GetName(i_ky) == PROC_ENVSE || fpcM_GetName(i_ky) == PROC_LEVEL_SE)) {
ret = fpcMtd_Execute((process_method_class*)i_this->mSubMtd, i_ky);
}
return ret;
}
/* 8002A514-8002A568 .text fopKy_IsDelete__FPv */
static int fopKy_IsDelete(void* i_this) {
static int fopKy_IsDelete(void* i_ky) {
int ret;
kankyo_class* _this = (kankyo_class*)i_this;
kankyo_class* i_this = (kankyo_class*)i_ky;
ret = fpcMtd_IsDelete(&_this->mSubMtd->mBase, _this);
ret = fpcMtd_IsDelete((process_method_class*)i_this->mSubMtd, i_this);
if (ret == 1) {
fopDwTg_DrawQTo(&_this->mDwTg);
fopDwTg_DrawQTo(&i_this->mDwTg);
}
return ret;
}
/* 8002A568-8002A5B4 .text fopKy_Delete__FPv */
static int fopKy_Delete(void* i_this) {
kankyo_class* _this = (kankyo_class*)i_this;
static int fopKy_Delete(void* i_ky) {
kankyo_class* i_this = (kankyo_class*)i_ky;
int ret = fpcMtd_Delete(&_this->mSubMtd->mBase, _this);
fopDwTg_DrawQTo(&_this->mDwTg);
int ret = fpcMtd_Delete((process_method_class*)i_this->mSubMtd, i_this);
fopDwTg_DrawQTo(&i_this->mDwTg);
return ret;
}
@@ -62,30 +62,29 @@ static int fopKy_Delete(void* i_this) {
static int fopKy_KANKYO_TYPE;
/* 8002A5B4-8002A688 .text fopKy_Create__FPv */
static int fopKy_Create(void* i_this) {
kankyo_class* _this = (kankyo_class*)i_this;
static int fopKy_Create(void* i_ky) {
kankyo_class* i_this = (kankyo_class*)i_ky;
if (fpcM_IsFirstCreating(i_this)) {
kankyo_process_profile_definition* profile =
(kankyo_process_profile_definition*)fpcM_GetProfile(i_this);
if (fpcM_IsFirstCreating(i_ky)) {
kankyo_process_profile_definition* profile = (kankyo_process_profile_definition*)fpcM_GetProfile(i_ky);
_this->mBsType = fpcBs_MakeOfType(&fopKy_KANKYO_TYPE);
_this->mSubMtd = profile->mSubMtd;
i_this->mBsType = fpcBs_MakeOfType(&fopKy_KANKYO_TYPE);
i_this->mSubMtd = profile->mSubMtd;
fopDwTg_Init(&_this->mDwTg, _this);
fopKyM_prm_class* append = (fopKyM_prm_class*)fopKyM_GetAppend(_this);
fopDwTg_Init(&i_this->mDwTg, i_this);
fopKyM_prm_class* append = (fopKyM_prm_class*)fopKyM_GetAppend(i_this);
if (append != NULL) {
_this->mPos = append->mPos;
_this->mScale = append->mScale;
_this->mParam = append->mParam;
i_this->mPos = append->mPos;
i_this->mScale = append->mScale;
i_this->mParam = append->mParam;
}
}
int ret = fpcMtd_Create(&_this->mSubMtd->mBase, _this);
int ret = fpcMtd_Create((process_method_class*)i_this->mSubMtd, i_this);
if (ret == cPhs_COMPLEATE_e) {
s32 priority = fpcLf_GetPriority(_this);
fopDwTg_ToDrawQ(&_this->mDwTg, priority);
s32 priority = fpcLf_GetPriority(i_this);
fopDwTg_ToDrawQ(&i_this->mDwTg, priority);
}
return ret;