d_s_room / d_s_name / d_a_title debug work (#3123)

* d_s_room / d_s_name debug work

* camera_class rtti fix

* d_a_title debug / handle shield rel changes

* fix shield build

* fix regressions
This commit is contained in:
TakaRikka
2026-03-06 22:30:25 -08:00
committed by GitHub
parent a2b179f952
commit 8e2545f2ec
140 changed files with 1293 additions and 1042 deletions
+23 -23
View File
@@ -152,10 +152,10 @@ static int daNpc_Henna_Draw(npc_henna_class* i_this) {
g_env_light.settingTevStruct(0, &a_this->current.pos, &a_this->tevStr);
if (i_this->field_0x694 == 0) {
camera_class* camera = dComIfGp_getCamera(0);
f32 lookOffsetX = camera->lookat.eye.x - a_this->current.pos.x;
f32 lookOffsetY = camera->lookat.eye.y - a_this->current.pos.y;
f32 lookOffsetZ = camera->lookat.eye.z - a_this->current.pos.z;
camera_process_class* camera = dComIfGp_getCamera(0);
f32 lookOffsetX = camera->view.lookat.eye.x - a_this->current.pos.x;
f32 lookOffsetY = camera->view.lookat.eye.y - a_this->current.pos.y;
f32 lookOffsetZ = camera->view.lookat.eye.z - a_this->current.pos.z;
if (lookOffsetY > 190.0f + JREG_F(16) || lookOffsetY < 0.0f ||
lookOffsetX * lookOffsetX + lookOffsetZ * lookOffsetZ > 700.0f + JREG_F(17))
{
@@ -658,11 +658,11 @@ static void henna_ride(npc_henna_class* i_this) {
}
if (dComIfGp_checkPlayerStatus0(0, 0x2000) != 0) {
camera_class* camera = dComIfGp_getCamera(0);
camera_process_class* camera = dComIfGp_getCamera(0);
cXyz vecToPlayer;
vecToPlayer = actor->eyePos - camera->lookat.eye;
lookat_pos = camera->lookat.center - camera->lookat.eye;
vecToPlayer = actor->eyePos - camera->view.lookat.eye;
lookat_pos = camera->view.lookat.center - camera->view.lookat.eye;
s16 reg_r27 = (s16)cM_atan2s(lookat_pos.x, lookat_pos.z);
s16 sp_0x8 = (s16)cM_atan2s(vecToPlayer.x, vecToPlayer.z);
@@ -848,11 +848,11 @@ static void cam_3d_morf(npc_henna_class* i_this, f32 param_1) {
static void demo_camera(npc_henna_class* i_this) {
fopAc_ac_c* actor = &i_this->actor;
camera_class* camera;
camera_process_class* camera;
fopAc_ac_c* unused1 = dComIfGp_getPlayer(0);
camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
camera_class* unused2 = dComIfGp_getCamera(0);
camera_process_class* unused2 = dComIfGp_getCamera(0);
cXyz unkXyz;
cXyz unkXyz2; // unused
@@ -923,16 +923,16 @@ static int zoom_check(npc_henna_class* i_this, cXyz* target, s16 tolerance) {
// unused assignments are needed for debug match
fopAc_ac_c* a_this = &i_this->actor;
fopAc_ac_c* unusedPlayer = (fopAc_ac_c*)dComIfGp_getPlayer(0);
camera_class* unusedCamera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
camera_process_class* unusedCamera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
camera_class* camera = (camera_class*)dComIfGp_getCamera(0);
cXyz target_pos;
cXyz lookat_pos;
target_pos = *target - camera->lookat.eye;
target_pos = *target - camera->view.lookat.eye;
if (JMAFastSqrt(target_pos.x * target_pos.x + target_pos.z * target_pos.z) < 300.0f + XREG_F(10)) {
lookat_pos = camera->lookat.center - camera->lookat.eye;
lookat_pos = camera->view.lookat.center - camera->view.lookat.eye;
s16 lookat_angle = (s16)cM_atan2s(lookat_pos.x, lookat_pos.z);
s16 target_angle = (s16)cM_atan2s(target_pos.x, target_pos.z);
lookat_angle -= target_angle;
@@ -984,8 +984,8 @@ static void demo_camera_shop(npc_henna_class* i_this) {
fopAc_ac_c* actor = &i_this->actor;
fopAc_ac_c* player = dComIfGp_getPlayer(0);
camera_class* playerCamera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
camera_class* camera = dComIfGp_getCamera(0);
camera_process_class* playerCamera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
camera_process_class* camera = dComIfGp_getCamera(0);
cXyz unkXyz_78;
cXyz unkXyz_6c;
@@ -1407,14 +1407,14 @@ static void demo_camera_shop(npc_henna_class* i_this) {
i_this->field_0x7bc = 50.0f;
playerCamera->mCamera.SetTrimSize(1);
daPy_getPlayerActorClass()->onPlayerNoDraw();
unkXyz_78 = camera->lookat.center - camera->lookat.eye;
unkXyz_78 = camera->view.lookat.center - camera->view.lookat.eye;
i_this->field_0x758 = (s16) cM_atan2s(unkXyz_78.x, unkXyz_78.z);
i_this->field_0x75c = -cM_atan2s(
unkXyz_78.y, JMAFastSqrt(unkXyz_78.x * unkXyz_78.x + unkXyz_78.z * unkXyz_78.z));
i_this->field_0x7c4 = unkXyz_78.abs();
}
case 41: {
i_this->field_0x760 = camera->lookat.eye;
i_this->field_0x760 = camera->view.lookat.eye;
cMtx_YrotS(*calc_mtx, i_this->field_0x758);
cMtx_XrotM(*calc_mtx, i_this->field_0x75c);
unkXyz_78.x = 0.0f;
@@ -1422,7 +1422,7 @@ static void demo_camera_shop(npc_henna_class* i_this) {
unkXyz_78.z = i_this->field_0x7c4;
MtxPosition(&unkXyz_78, &i_this->field_0x76c);
i_this->field_0x76c += i_this->field_0x760;
unkXyz_78 = i_this->field_0x7a8 - camera->lookat.eye;
unkXyz_78 = i_this->field_0x7a8 - camera->view.lookat.eye;
if (i_this->field_0x7b4 != 8 && i_this->field_0x7b4 != 7) {
cLib_addCalcAngleS2(&i_this->field_0x758, cM_atan2s(unkXyz_78.x, unkXyz_78.z), 8,
0x800);
@@ -2272,7 +2272,7 @@ static void env_control(npc_henna_class* i_this) {
cXyz mae;
cXyz ato;
dScnKy_env_light_c* env = dKy_getEnvlight();
camera_class* camera = dComIfGp_getCamera(0);
camera_process_class* camera = dComIfGp_getCamera(0);
mae.x = -2591.0f - player->current.pos.x;
mae.z = -6742.0f - player->current.pos.z;
@@ -2532,14 +2532,14 @@ static int daNpc_Henna_Execute(npc_henna_class* i_this) {
i_this->field_0x694 = 0;
if (i_this->field_0x7e1 == 0) {
camera_class* camera = dComIfGp_getCamera(0);
camera_process_class* camera = dComIfGp_getCamera(0);
lookat_pos.x = camera->lookat.center.x - camera->lookat.eye.x;
lookat_pos.z = camera->lookat.center.z - camera->lookat.eye.z;
lookat_pos.x = camera->view.lookat.center.x - camera->view.lookat.eye.x;
lookat_pos.z = camera->view.lookat.center.z - camera->view.lookat.eye.z;
s16 camera_rot = cM_atan2s(lookat_pos.x, lookat_pos.z);
lookat_pos.x = actor->current.pos.x - camera->lookat.eye.x;
lookat_pos.z = actor->current.pos.z - camera->lookat.eye.z;
lookat_pos.x = actor->current.pos.x - camera->view.lookat.eye.x;
lookat_pos.z = actor->current.pos.z - camera->view.lookat.eye.z;
s16 angle_diff = cM_atan2s(lookat_pos.x, lookat_pos.z) - camera_rot;
if (i_this->cam_mode == 0 && (angle_diff > 0x4000 || angle_diff < -0x4000) &&