Add more J3D_ASSERTs (#2491)

* Fix debug build

* Add more J3D_ASSERTs

* Move J3DShapeMtx to correct header for assert

* Add VSCode task for ninja changes_all
This commit is contained in:
LagoLunatic
2025-06-20 02:41:43 -04:00
committed by GitHub
parent 25d13c76e4
commit ac06966414
24 changed files with 268 additions and 174 deletions
+41 -41
View File
@@ -10,127 +10,127 @@
#ifdef DEBUG
void daNpcT_cmnListenPropertyEvent(char* param_0, int* param_1, daNpcT_HIOParam* param_2) {
sprintf(&param_0[*param_1], "%.3ff,\t// 注目オフセット\n", param_2->unk0);
sprintf(&param_0[*param_1], "%.3ff,\t// 注目オフセット\n", param_2->attention_offset);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 重力\n", param_2->unk4);
sprintf(&param_0[*param_1], "%.3ff,\t// 重力\n", param_2->gravity);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// スケ−ル\n", param_2->unk8);
sprintf(&param_0[*param_1], "%.3ff,\t// スケ−ル\n", param_2->scale);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// リアル影サイズ\n", param_2->unkC);
sprintf(&param_0[*param_1], "%.3ff,\t// リアル影サイズ\n", param_2->real_shadow_size);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 体重\n", param_2->unk10);
sprintf(&param_0[*param_1], "%.3ff,\t// 体重\n", param_2->weight);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 高さ\n", param_2->unk14);
sprintf(&param_0[*param_1], "%.3ff,\t// 高さ\n", param_2->height);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// ひざ丈\n", param_2->unk18);
sprintf(&param_0[*param_1], "%.3ff,\t// ひざ丈\n", param_2->knee_length);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 幅\n", param_2->unk1C);
sprintf(&param_0[*param_1], "%.3ff,\t// 幅\n", param_2->width);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 腰のX角上限\n", param_2->unk20);
sprintf(&param_0[*param_1], "%.3ff,\t// 腰のX角上限\n", param_2->body_angleX_max);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 腰のX角下限\n", param_2->unk24);
sprintf(&param_0[*param_1], "%.3ff,\t// 腰のX角下限\n", param_2->body_angleX_min);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 腰のY角上限\n", param_2->unk28);
sprintf(&param_0[*param_1], "%.3ff,\t// 腰のY角上限\n", param_2->body_angleY_max);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 腰のY角下限\n", param_2->unk2C);
sprintf(&param_0[*param_1], "%.3ff,\t// 腰のY角下限\n", param_2->body_angleY_min);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 頭のX角上限\n", param_2->unk30);
sprintf(&param_0[*param_1], "%.3ff,\t// 頭のX角上限\n", param_2->head_angleX_max);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 頭のX角下限\n", param_2->unk34);
sprintf(&param_0[*param_1], "%.3ff,\t// 頭のX角下限\n", param_2->head_angleX_min);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 頭のY角上限\n", param_2->unk38);
sprintf(&param_0[*param_1], "%.3ff,\t// 頭のY角上限\n", param_2->head_angleY_max);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 頭のY角下限\n", param_2->unk3C);
sprintf(&param_0[*param_1], "%.3ff,\t// 頭のY角下限\n", param_2->head_angleY_min);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 首の移動割合\n", param_2->unk40);
sprintf(&param_0[*param_1], "%.3ff,\t// 首の移動割合\n", param_2->neck_rotation_ratio);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 補間フレ−ム\n", param_2->unk44);
sprintf(&param_0[*param_1], "%.3ff,\t// 補間フレ−ム\n", param_2->morf_frame);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// 会話距離\n", param_2->unk48);
sprintf(&param_0[*param_1], "%d, \t// 会話距離\n", param_2->talk_distance);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// 会話角度\n", param_2->unk4A);
sprintf(&param_0[*param_1], "%d, \t// 会話角度\n", param_2->talk_angle);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// 注目距離\n", param_2->unk4C);
sprintf(&param_0[*param_1], "%d, \t// 注目距離\n", param_2->attention_distance);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// 注目角度\n", param_2->unk4E);
sprintf(&param_0[*param_1], "%d, \t// 注目角度\n", param_2->attention_angle);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 視界\n", param_2->unk50);
sprintf(&param_0[*param_1], "%.3ff,\t// 視界\n", param_2->fov);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// サ−チ距離\n", param_2->unk54);
sprintf(&param_0[*param_1], "%.3ff,\t// サ−チ距離\n", param_2->search_distance);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// サ−チ高さ\n", param_2->unk58);
sprintf(&param_0[*param_1], "%.3ff,\t// サ−チ高さ\n", param_2->search_height);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// サ−チ低さ\n", param_2->unk5C);
sprintf(&param_0[*param_1], "%.3ff,\t// サ−チ低さ\n", param_2->search_depth);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// \n", param_2->unk60);
sprintf(&param_0[*param_1], "%d, \t// \n", param_2->attention_time);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// \n", param_2->unk62);
sprintf(&param_0[*param_1], "%d, \t// \n", param_2->damage_time);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// 表情\n", param_2->unk64);
sprintf(&param_0[*param_1], "%d, \t// 表情\n", param_2->face_expression);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// 動作\n", param_2->unk66);
sprintf(&param_0[*param_1], "%d, \t// 動作\n", param_2->motion);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// 注視モ−ド\n", param_2->unk68);
sprintf(&param_0[*param_1], "%d, \t// 注視モ−ド\n", param_2->look_mode);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// デバグモ−ドON\n", param_2->unk6A);
sprintf(&param_0[*param_1], "%d, \t// デバグモ−ドON\n", param_2->debug_mode_ON);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%d, \t// デバグ情報ON\n", param_2->unk6B);
sprintf(&param_0[*param_1], "%d, \t// デバグ情報ON\n", param_2->debug_info_ON);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 表情補間フレ−ム\n", param_2->unk6C);
sprintf(&param_0[*param_1], "%.3ff,\t// 表情補間フレ−ム\n", param_2->expression_morf_frame);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最小x\n", param_2->unk70);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最小x\n", param_2->box_min_x);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最小y\n", param_2->unk74);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最小y\n", param_2->box_min_y);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最小z\n", param_2->unk78);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最小z\n", param_2->box_min_z);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最大x\n", param_2->unk7C);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最大x\n", param_2->box_max_x);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最大y\n", param_2->unk80);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最大y\n", param_2->box_max_y);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最大z\n", param_2->unk84);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱最大z\n", param_2->box_max_z);
*param_1 = strlen(param_0);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱オフセット\n", param_2->unk88);
sprintf(&param_0[*param_1], "%.3ff,\t// 箱オフセット\n", param_2->box_offset);
*param_1 = strlen(param_0);
}
#endif
+11
View File
@@ -0,0 +1,11 @@
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
static void dummy() {
((J3DAnmTextureSRTKey*)0)->getUpdateMaterialID(0);
((J3DAnmTextureSRTKey*)0)->getUpdateMaterialNum();
((J3DAnmTevRegKey*)0)->getKRegUpdateMaterialID(0);
((J3DAnmTevRegKey*)0)->getKRegUpdateMaterialNum();
((J3DAnmTevRegKey*)0)->getCRegUpdateMaterialID(0);
((J3DAnmTevRegKey*)0)->getCRegUpdateMaterialNum();
}
+20 -7
View File
@@ -4137,29 +4137,42 @@ void dFile_select3D_c::draw() {
}
/* 8019065C-8019095C 18AF9C 0300+00 2/2 0/0 0/0 .text setJ3D__16dFile_select3D_cFPCcPCcPCc */
// NONMATCHING regswap
// NONMATCHING extra mr
void dFile_select3D_c::setJ3D(char const* param_0, char const* param_1, char const* param_2) {
JKRArchive* archive = dComIfGp_getCollectResArchive();
J3DModelData* modelData = J3DModelLoaderDataBase::load(
archive->getResource('BMD ', param_0), 0x51020010);
J3DAnmTransform* pbck;
J3DAnmTevRegKey* pbrk;
void* res = archive->getResource('BMD ', param_0);
J3DModelData* modelData = J3DModelLoaderDataBase::load(res, 0x51020010);
JUT_ASSERT(8823, modelData != 0);
for (u16 i = 0; i < modelData->getMaterialNum(); i++) {
J3DMaterialAnm* material = new J3DMaterialAnm();
modelData->getMaterialNodePointer(i)->change();
modelData->getMaterialNodePointer(i)->setMaterialAnm(material);
}
mpModel = new J3DModel(modelData, 0, 1);
JUT_ASSERT(8836, mpModel != 0);
if (param_1) {
J3DAnmTransform* pbck =
(J3DAnmTransform*)J3DAnmLoaderDataBase::load(archive->getResource('BCK ', param_1));
void* res = archive->getResource('BCK ', param_1);
pbck = (J3DAnmTransform*)J3DAnmLoaderDataBase::load(res);
JUT_ASSERT(8846, pbck != 0);
mBckAnm = new mDoExt_bckAnm();
if (mBckAnm == NULL || !mBckAnm->init(pbck, 1, 2, 1.0f, 0, -1, false)) {
return;
}
}
if (param_2) {
J3DAnmTevRegKey* pbrk =
(J3DAnmTevRegKey*)J3DAnmLoaderDataBase::load(archive->getResource('BRK ', param_2));
void* res = archive->getResource('BRK ', param_2);
pbrk = (J3DAnmTevRegKey*)J3DAnmLoaderDataBase::load(res);
JUT_ASSERT(8859, pbrk != 0);
pbrk->searchUpdateMaterialID(modelData);
mBrkAnm = new mDoExt_brkAnm();
if (mBrkAnm == NULL || !mBrkAnm->init(modelData, pbrk, -1, 2, 1.0f, 0, -1)) {
return;
-1
View File
@@ -2340,7 +2340,6 @@ void dMenu_Collect3D_c::draw() {
}
/* 801B6A30-801B6D30 1B1370 0300+00 2/2 0/0 0/0 .text setJ3D__17dMenu_Collect3D_cFPCcPCcPCc */
// NONMATCHING regalloc
void dMenu_Collect3D_c::setJ3D(const char* param_0, const char* param_1, const char* param_2) {
JKRArchive* resArchive = dComIfGp_getCollectResArchive();
J3DModelData* modelData = J3DModelLoaderDataBase::load(