general cleanup, d_menu_quit / d_a_obj_testcube mostly done, d_msg_scrn_explain debug (#3065)

* typedef for cPhs_Step

* make sdk includes consistent

* d_menu_quit / d_msg_scrn_explain debug

* d_a_obj_testcube mostly done

* d_debug_pad mostly done

* jstudio tool library headers

* some JStudioCameraEditor headers

* d_jcam_editor mostly done

* try fixing some shield regressions

* d_bg_parts mostly done

* fix merge errors

* debug fix
This commit is contained in:
TakaRikka
2026-01-24 23:36:23 -08:00
committed by GitHub
parent 6f73e18bd2
commit c9e2a73dda
612 changed files with 4052 additions and 1141 deletions
+377 -18
View File
@@ -1,25 +1,384 @@
/**
* @file d_a_obj_testcube.cpp
*
*/
*
*/
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_testcube.h"
actor_process_profile_definition g_profile_Obj_TestCube = {
fpcLy_CURRENT_e, // mLayerID
3, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_TestCube, // mProcName
&g_fpcLf_Method.base, // sub_method
0x000005A0, // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
442, // mPriority
NULL, // sub_method
0x00040100, // mStatus
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
#if DEBUG
const char* l_arcName[] = {
"K_cube00",
"K_cube01",
"K_cyli00",
};
class daObjCube_HIO_c : public mDoHIO_entry_c {
public:
daObjCube_HIO_c();
virtual ~daObjCube_HIO_c() {}
void genMessage(JORMContext*);
/* 0x6 */ GXColor mColor[255];
};
daObjCube_HIO_c l_HIO;
static const GXColor l_obj_color[] = {
{0x00, 0x00, 0x00, 0xFF}, {0x12, 0x09, 0x00, 0xFF}, {0x0c, 0x0c, 0x0c, 0xFF},
{0x1d, 0x14, 0x03, 0xFF}, {0x06, 0x14, 0x06, 0xFF}, {0x2b, 0x20, 0x16, 0xFF},
{0x17, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x39, 0xFF}, {0x1f, 0x2f, 0x3f, 0xFF},
{0x3f, 0x18, 0x0d, 0xFF}, {0x00, 0x07, 0x17, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x32, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x32, 0xFF},
{0x00, 0x32, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
};
daObjCube_HIO_c::daObjCube_HIO_c() {
for (int i = 0; i < 255; i++) {
mColor[i] = l_obj_color[i];
}
}
void daObjCube_HIO_c::genMessage(JORMContext* mctx) {
mctx->genLabel("テスト立方体", 0);
for (int i = 0; i < 255; i++) {
char label[256];
sprintf(label, "名前引数<%d>のカラー\n", i);
mctx->genLabel(label, 0);
mctx->genSlider("r", &mColor[i].r, 0, 0xFF);
mctx->genSlider("g", &mColor[i].g, 0, 0xFF);
mctx->genSlider("b", &mColor[i].b, 0, 0xFF);
mctx->genSlider("a", &mColor[i].a, 0, 0xFF);
}
}
void daObjCube_c::getDzbName(char* i_buffer) {
u8 arg = mNameArg;
switch (mShape) {
case 0:
case 1:
sprintf(i_buffer, "k_size_cube%02d.dzb", mNameArg);
break;
case 2:
if (arg == 100) {
arg = 0;
}
sprintf(i_buffer, "k_size_cyl%02d.dzb", arg);
break;
}
}
void daObjCube_c::getBmdName(char* i_buffer) {
switch (mShape) {
case 0:
case 1:
sprintf(i_buffer, "K_size_cube.bmd");
break;
case 2:
sprintf(i_buffer, "k_size_cylinder.bmd");
break;
}
}
void daObjCube_c::initBaseMtx() {
if (mShape == 2) {
scale.z = scale.x;
}
setBaseMtx();
}
void daObjCube_c::setBaseMtx() {
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::ZXYrotM(shape_angle);
mDoMtx_stack_c::scaleM(scale);
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
}
int daObjCube_c::Create() {
if (mNameArg == 100) {
scale.x *= 10.0f;
scale.y *= 10.0f;
scale.z *= 10.0f;
}
initBaseMtx();
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
cXyz cullMin;
cXyz cullMax;
J3DJoint* rootJnt = mpModel->getModelData()->getJointNodePointer(0);
cullMin.x = scale.x * rootJnt->getMin()->x;
cullMin.y = scale.y * rootJnt->getMin()->y;
cullMin.z = scale.z * rootJnt->getMin()->z;
cullMax.x = scale.x * rootJnt->getMax()->x;
cullMax.y = scale.y * rootJnt->getMax()->y;
cullMax.z = scale.z * rootJnt->getMax()->z;
fopAcM_setCullSizeBox(this, cullMin.x, cullMin.y, cullMin.z, cullMax.x, cullMax.y, cullMax.z);
fopAcM_setCullSizeFar(this, 10.0f);
return 1;
}
int daObjCube_c::CreateHeap() {
char resName[40];
getBmdName(resName);
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName[mShape], resName);
JUT_ASSERT(581, modelData != NULL);
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (mpModel == NULL) {
return 0;
}
return 1;
}
int daObjCube_c::create() {
fopAcM_ct(this, daObjCube_c);
mShape = daObjCube_prm::getShape(this);
mNameArg = daObjCube_prm::getNameArg(this);
int phase_state = dComIfG_resLoad(&mPhase, l_arcName[mShape]);
if (phase_state == cPhs_COMPLEATE_e) {
char resName[32];
getDzbName(resName);
int dzb_id = dComIfG_getObjctResName2Index(l_arcName[mShape], resName);
JUT_ASSERT(621, dzb_id != -1);
phase_state = MoveBGCreate(l_arcName[mShape], dzb_id, NULL, 0xC10, NULL);
if (phase_state == cPhs_ERROR_e) {
return phase_state;
}
MoveBGExecute();
l_HIO.entryHIO("テスト立方体");
}
return phase_state;
}
int daObjCube_c::Execute(Mtx** param_0) {
u8 arg0 = daObjCube_prm::getArg0(this);
u8 sw = daObjCube_prm::getSwitch(this);
BOOL isSwitch = fopAcM_isSwitch(this, sw);
if (sw != 0xFF) {
if (arg0 == 0) {
if (isSwitch) {
if (mpBgW->ChkUsed()) {
if (dComIfG_Bgsp().Release(mpBgW)) {
OSReport_Error("テスト立方体:MoveBG解除に失敗しました\n");
}
}
field_0x5b6 = 1;
} else {
if (!mpBgW->ChkUsed()) {
if (dComIfG_Bgsp().Regist(mpBgW, this)) {
OSReport_Error("テスト立方体:MoveBG登録に失敗しました\n");
}
}
field_0x5b6 = 0;
}
} else {
if (isSwitch) {
if (!mpBgW->ChkUsed()) {
if (dComIfG_Bgsp().Regist(mpBgW, this)) {
OSReport_Error("テスト立方体:MoveBG登録に失敗しました\n");
}
}
field_0x5b6 = 0;
} else {
if (mpBgW->ChkUsed()) {
if (dComIfG_Bgsp().Release(mpBgW)) {
OSReport_Error("テスト立方体:MoveBG解除に失敗しました\n");
}
}
field_0x5b6 = 1;
}
}
}
*param_0 = &mBgMtx;
return 1;
}
int daObjCube_c::Draw() {
if (field_0x5b6) {
return 1;
}
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
u8 arg = mNameArg;
if (arg == 100) {
arg = 0;
}
J3DModelData* modelData = mpModel->getModelData();
for (u16 i = 0; i < modelData->getMaterialNum(); i++) {
J3DMaterial* material = modelData->getMaterialNodePointer(i);
J3DGXColor* tevColor = material->getTevKColor(3);
tevColor->r = l_HIO.mColor[arg].r;
tevColor->g = l_HIO.mColor[arg].g;
tevColor->b = l_HIO.mColor[arg].b;
tevColor->a = l_HIO.mColor[arg].a;
}
dComIfGd_setListBG();
mDoExt_modelUpdateDL(mpModel);
dComIfGd_setList();
return 1;
}
int daObjCube_c::Delete() {
dComIfG_resDelete(&mPhase, l_arcName[mShape]);
l_HIO.removeHIO();
return 1;
}
static int daObjCube_Draw(daObjCube_c* i_this) {
return i_this->MoveBGDraw();
}
static int daObjCube_Execute(daObjCube_c* i_this) {
return i_this->MoveBGExecute();
}
static int daObjCube_Delete(daObjCube_c* i_this) {
fpc_ProcID id = fopAcM_GetID(i_this);
return i_this->MoveBGDelete();
}
static int daObjCube_Create(fopAc_ac_c* actor) {
daObjCube_c* i_this = (daObjCube_c*)actor;
fpc_ProcID id = fopAcM_GetID(actor);
return i_this->create();
}
static actor_method_class l_daObjCube_Method = {
(process_method_func)daObjCube_Create,
(process_method_func)daObjCube_Delete,
(process_method_func)daObjCube_Execute,
(process_method_func)NULL,
(process_method_func)daObjCube_Draw,
};
#endif
#if DEBUG
#define OBJCUBE_METHODS &l_daObjCube_Method
#else
#define OBJCUBE_METHODS NULL
#endif
actor_process_profile_definition g_profile_Obj_TestCube = {
fpcLy_CURRENT_e, // mLayerID
3, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_TestCube, // mProcName
&g_fpcLf_Method.base, // sub_method
sizeof(daObjCube_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
442, // mPriority
OBJCUBE_METHODS, // sub_method
0x00040100, // mStatus
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};