Fix d_s_name to use camera_class struct

This commit is contained in:
LagoLunatic
2026-08-17 23:43:12 -04:00
parent a1c70c7ede
commit 443b783b1e
3 changed files with 42 additions and 41 deletions
+6 -16
View File
@@ -2,6 +2,7 @@
#define D_S_NAME
#include "d/d_drawlist.h"
#include "f_op/f_op_camera.h"
#include "f_op/f_op_msg_mng.h"
#include "f_op/f_op_scene.h"
#include "m_Do/m_Do_MemCardRWmng.h"
@@ -16,6 +17,10 @@ class dMCloth_c;
class dName_c;
class mDoDvdThd_toMainRam_c;
class dScnName_camera_c : public camera_class {
public:
};
class dSn_HIO_c : public JORReflexible {
public:
dSn_HIO_c();
@@ -126,22 +131,7 @@ public:
/* 0x01C4 */ request_of_phase_process_class mPhs;
/* 0x01CC */ JKRHeap* heap;
/* 0x01D0 */ JKRHeap* oldHeap;
/* 0x01D4 */ u8 field_0x1d4[0x29C - 0x1D4];
/* 0x029C */ f32 field_0x29c;
/* 0x02A0 */ f32 field_0x2a0;
/* 0x02A4 */ f32 field_0x2a4;
/* 0x02A8 */ f32 field_0x2a8;
/* 0x02AC */ Vec field_0x2ac;
/* 0x02B8 */ Vec field_0x2b8;
/* 0x02C4 */ u8 field_0x2c4[0x2D0 - 0x2C4];
/* 0x02D0 */ s16 field_0x2d0;
/* 0x02D4 */ Mtx44 field_0x2d4;
/* 0x0314 */ Mtx field_0x314;
/* 0x0344 */ Mtx field_0x344;
/* 0x0374 */ Mtx field_0x374;
/* 0x03A4 */ u8 field_0x3a4[0x3B4 - 0x3A4];
/* 0x03B4 */ Mtx field_0x3b4;
/* 0x03E4 */ u8 field_0x3e4[0x40C - 0x3E4];
/* 0x01D4 */ dScnName_camera_c mCamera;
/* 0x040C */ JKRMemArchive* mArchive;
/* 0x0410 */ mDoDvdThd_toMainRam_c* field_0x410;
/* 0x0414 */ dDlst_BTICN_c btnIcon;
+2 -3
View File
@@ -17,12 +17,11 @@ public:
/* 0x22E */ s8 mPrm3;
/* 0x22F */ s8 field_0x22f;
/* 0x230 */ csXyz mAngle;
/* 0x238 */ int field_0x238;
}; // size = 0x23C
STATIC_ASSERT(sizeof(camera_class) == 0x23C);
}; // size = 0x238
class camera_process_class : public camera_class {
public:
/* 0x238 */ int field_0x238;
/* 0x23C */ request_of_phase_process_class phase_request;
/* 0x244 */ dCamera_c mCamera;
}; // size = 0xA44
+34 -22
View File
@@ -13,6 +13,7 @@
#include "d/d_menu_save.h"
#include "d/d_name.h"
#include "f_ap/f_ap_game.h"
#include "f_op/f_op_camera_mng.h"
#include "f_op/f_op_draw_iter.h"
#include "f_op/f_op_kankyo_mng.h"
#include "f_op/f_op_overlap_mng.h"
@@ -112,13 +113,16 @@ cPhs_State dScnName_c::create() {
oldHeap = mDoExt_setCurrentHeap(heap);
mArchive = new JKRMemArchive();
mArchive->mountFixed(dComIfG_getStageRes("Stage", 0x17), JKRMEMBREAK_FLAG_UNKNOWN0);
cloth_create();
buttonIconCreate();
dFs_c = new dFile_select_c();
JUT_ASSERT(470, dFs_c != NULL);
dFs_c->field_0x0 = mArchive;
savePicDatabuf = new (0x20) card_pictdata[3 * 3];
JUT_ASSERT(476, savePicDatabuf != NULL);
if (fpcM_GetName(this) == fpcNm_NAME_SCENE_e) {
dFs_c->setUseType(0);
dNm_c = new dName_c();
@@ -131,6 +135,7 @@ cPhs_State dScnName_c::create() {
dComIfGs_setNewFile(0);
dComIfGs_setNoFile(0);
}
if (fpcM_GetName(this) == fpcNm_NAMEEX_SCENE_e) {
dComIfGs_setClearCount(1);
dFs_c->setUseType(1);
@@ -141,34 +146,37 @@ cPhs_State dScnName_c::create() {
dFe_c = NULL;
dNm_c = NULL;
}
dFs_c->_create();
g_snHIO.mNo = mDoHIO_root.m_subroot.createChild("名前登録シーン", &g_snHIO);
dComIfGp_setWindowNum(1);
dComIfGp_setWindow(0, 0.0f, 0.0f, mDoMch_render_c::getFbWidth(), mDoMch_render_c::getEfbHeight(), 0.0f, 1.0f, 0, 2);
dComIfGp_setCamera(0, (camera_class*)&field_0x1d4);
field_0x29c = 5.0f;
field_0x2a0 = 160000.0f;
field_0x2a4 = 60.0f;
dComIfGp_setCamera(0, &mCamera);
fopCamM_SetNear(&mCamera, 5.0f);
fopCamM_SetFar(&mCamera, 160000.0f);
fopCamM_SetFovy(&mCamera, 60.0f);
f32 aspect = dComIfGp_getWindow(0)->getViewPort()->mWidth / dComIfGp_getWindow(0)->getViewPort()->mHeight;
field_0x2a8 = aspect * fapGmHIO_getAspectRatio();
field_0x2ac.x = 9377.0f;
field_0x2ac.y = 0.0;
field_0x2ac.z = 7644.0;
field_0x2b8.x = 0.0;
field_0x2b8.y = 6311.0;
field_0x2b8.z = 1000.0;
field_0x2d0 = 0;
fopCamM_SetAspect(&mCamera, aspect * fapGmHIO_getAspectRatio());
fopCamM_SetEye(&mCamera, 9377.0f, 0.0f, 7644.0f);
fopCamM_SetCenter(&mCamera, 0.0f, 6311.0f, 1000.0f);
fopCamM_SetBank(&mCamera, 0);
dComIfGp_setPlayer(0, NULL);
dComIfGd_setWindow(dComIfGp_getWindow(0));
dComIfGd_setViewport(dComIfGp_getWindow(0)->getViewPort());
dComIfGd_setView((view_class*)&field_0x1d4);
dComIfGd_setView(&mCamera.view);
mDoGph_gInf_c::offAutoForcus();
setView();
dKy_setLight_init();
fopKyM_Create(fpcNm_KYEFF_e, 0, 0);
fopKyM_Create(fpcNm_KYEFF2_e, 0, 0);
fpcSCtRq_Request(fpcLy_CurrentLayer(), fpcNm_VRBOX_e, NULL, NULL, NULL);
fpcSCtRq_Request(fpcLy_CurrentLayer(), fpcNm_VRBOX2_e, NULL, NULL, NULL);
g_env_light.mVrSkyColor.r = 0x50;
g_env_light.mVrSkyColor.g = 0x78;
g_env_light.mVrSkyColor.b = 0xff;
@@ -181,8 +189,10 @@ cPhs_State dScnName_c::create() {
g_env_light.mVrKasumiMaeColor.g = 0xe5;
g_env_light.mVrKasumiMaeColor.b = 0xff;
g_env_light.mVrKasumiMaeColor.a = 0xff;
field_0x558 = g_snHIO.field_0x5;
field_0x1bb8 = 0;
if (fpcM_GetName(this) == fpcNm_NAME_SCENE_e) {
mMainProc = 0;
field_0x556 = 0;
@@ -191,6 +201,7 @@ cPhs_State dScnName_c::create() {
mMainProc = 10;
mDrawProc = 3;
}
JFWDisplay::getManager()->setTickRate(OS_TIMER_CLOCK / 30);
}
return rt;
@@ -336,15 +347,16 @@ BOOL dScnName_c::execute() {
/* 80230678-80230714 .text setView__10dScnName_cFv */
void dScnName_c::setView() {
C_MTXPerspective(field_0x2d4, field_0x2a4, field_0x2a8, field_0x29c, field_0x2a0);
mDoMtx_lookAt(field_0x314, &field_0x2ac, &field_0x2b8, field_0x2d0);
mDoMtx_inverse(field_0x314, field_0x344);
mDoMtx_copy(field_0x314, field_0x3b4);
field_0x3b4[0][3] = 0.0f;
field_0x3b4[1][3] = 0.0f;
field_0x3b4[2][3] = 0.0f;
j3dSys.setViewMtx(field_0x314);
mDoMtx_concatProjView(field_0x2d4, field_0x314, field_0x374);
camera_class* camera = &mCamera;
C_MTXPerspective(camera->view.mProjMtx, camera->view.mFovy, camera->view.mAspect, camera->view.mNear, camera->view.mFar);
mDoMtx_lookAt(camera->view.mViewMtx, &camera->view.mLookat.mEye, &camera->view.mLookat.mCenter, camera->view.mBank);
cMtx_inverse(camera->view.mViewMtx, camera->view.mInvViewMtx);
MTXCopy(camera->view.mViewMtx, camera->view.mViewMtxNoTrans);
camera->view.mViewMtxNoTrans[0][3] = 0.0f;
camera->view.mViewMtxNoTrans[1][3] = 0.0f;
camera->view.mViewMtxNoTrans[2][3] = 0.0f;
j3dSys.setViewMtx(camera->view.mViewMtx);
cMtx_concatProjView(camera->view.mProjMtx, camera->view.mViewMtx, camera->view.mProjViewMtx);
}
/* 80230714-802307EC .text draw__10dScnName_cFv */