Misc. framework/d/ improvements (#2572)

This commit is contained in:
Max Roncace
2025-08-06 21:46:07 -07:00
committed by GitHub
parent ee608ceaac
commit 57c9d64308
8 changed files with 212 additions and 214 deletions
+2 -1
View File
@@ -21819,7 +21819,8 @@ m_mode__7dDemo_c = .sbss:0x80450E38; // type:object size:0x4 scope:global align:
m_status__7dDemo_c = .sbss:0x80450E3C; // type:object size:0x4 scope:global align:4 data:4byte
m_branchType__7dDemo_c = .sbss:0x80450E40; // type:object size:0x2 scope:global align:2 data:2byte
m_branchData__7dDemo_c = .sbss:0x80450E44; // type:object size:0x4 scope:global align:4 data:4byte
struct_80450E48 = .sbss:0x80450E48; // type:object size:0x4 scope:local align:4 data:byte
init$1867 = .sbss:0x80450E48; // type:object size:0x1 scope:local align:1 data:byte
init$1870 = .sbss:0x80450E49; // type:object size:0x1 scope:local align:1 data:byte
it = .sbss:0x80450E4C; // type:object size:0x4 scope:local align:4 data:4byte
init$1672 = .sbss:0x80450E50; // type:object size:0x1 scope:local align:1 data:byte
mNowStayFloorNo__10dMapInfo_c = .sbss:0x80450E58; // type:object size:0x1 scope:global align:1 data:byte
+1 -1
View File
@@ -548,7 +548,7 @@ config.libs = [
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_a_item_static.cpp"),
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_a_shop_item_static.cpp"),
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_a_horse_static.cpp"),
Object(NonMatching, "d/d_demo.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_demo.cpp"),
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_door_param2.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(NonMatching, "d/d_resorce.cpp"),
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_map_path.cpp"),
+1 -1
View File
@@ -160,7 +160,7 @@ public:
void setGlobalParticleScale(f32 scaleX, f32 scaleY) {
mGlobalPScl.set(scaleX, scaleY);
}
void getGlobalParticleScale(JGeometry::TVec3<f32>& scale) {
void getGlobalParticleScale(JGeometry::TVec3<f32>& scale) const {
scale.set(mGlobalPScl.x, mGlobalPScl.y, 1.0f);
}
void setGlobalScale(const JGeometry::TVec3<f32>& scale) {
+17 -17
View File
@@ -94,19 +94,8 @@ public:
cMtx_copy(mModel->getAnmMtx((u16)param_0), param_1);
return true;
}
/* 8003A0D8 */ virtual void JSGGetTranslation(Vec* o_trans) const {
*o_trans = mTrans;
}
/* 80038920 */ virtual void JSGSetTranslation(Vec const&);
/* 8003A0F4 */ virtual void JSGGetScaling(Vec* o_scale) const {
*o_scale = mScale;
}
/* 80038980 */ virtual void JSGSetScaling(Vec const&);
/* 8003A110 */ virtual void JSGGetRotation(Vec* param_0) const {
param_0->x = mRotate.x * 0.005493164f;
param_0->y = mRotate.y * 0.005493164f;
param_0->z = mRotate.z * 0.005493164f;
}
/* 800389A8 */ virtual void JSGSetRotation(Vec const&);
/* 80038A0C */ virtual void JSGSetShape(u32);
/* 80038A20 */ virtual void JSGSetAnimation(u32);
@@ -120,6 +109,17 @@ public:
/* 8003A0D0 */ virtual f32 JSGGetTextureAnimationFrameMax() const {
return mTexAnmFrameMax;
}
/* 8003A0D8 */ virtual void JSGGetTranslation(Vec* o_trans) const {
*o_trans = mTrans;
}
/* 8003A0F4 */ virtual void JSGGetScaling(Vec* o_scale) const {
*o_scale = mScale;
}
/* 8003A110 */ virtual void JSGGetRotation(Vec* param_0) const {
param_0->x = mRotate.x * 0.005493164f;
param_0->y = mRotate.y * 0.005493164f;
param_0->z = mRotate.z * 0.005493164f;
}
void setModel(J3DModel* p_model) { mModel = p_model; }
BOOL checkEnable(u16 flag) { return mFlags & flag; }
@@ -164,10 +164,10 @@ class dDemo_system_c : public JStage::TSystem {
public:
dDemo_system_c() { mpObject = NULL; }
/* 80039AAC */ virtual ~dDemo_system_c();
/* 80039528 */ virtual int JSGFindObject(JStage::TObject**, char const*,
JStage::TEObject) const;
/* 80039AAC */ virtual ~dDemo_system_c();
void setObject(dDemo_object_c* i_object) { mpObject = i_object; }
private:
@@ -198,13 +198,13 @@ public:
mFlags = 0;
}
/* 80039468 */ virtual ~dDemo_light_c();
/* 80038E20 */ virtual void JSGSetLightType(JStage::TELight);
/* 80038E34 */ virtual void JSGSetPosition(Vec const&);
/* 80038E5C */ virtual void JSGSetColor(GXColor);
/* 80038E8C */ virtual void JSGSetDistanceAttenuation(f32, f32, GXDistAttnFn);
/* 80038EA8 */ virtual void JSGSetAngleAttenuation(f32, GXSpotFn);
/* 80038EC0 */ virtual void JSGSetDirection(Vec const&);
/* 80039468 */ virtual ~dDemo_light_c();
void onEnable(u8 flag) { mFlags |= flag; }
@@ -234,11 +234,11 @@ public:
mFlags = 0;
}
/* 80039408 */ virtual ~dDemo_fog_c();
/* 80038EE8 */ virtual void JSGSetFogFunction(GXFogType);
/* 80038EFC */ virtual void JSGSetStartZ(f32);
/* 80038F10 */ virtual void JSGSetEndZ(f32);
/* 80038F24 */ virtual void JSGSetColor(GXColor);
/* 80039408 */ virtual ~dDemo_fog_c();
void onEnable(u8 flag) { mFlags |= flag; }
@@ -267,7 +267,6 @@ public:
mFlags = 0;
}
/* 80039FFC */ virtual ~dDemo_camera_c();
/* 80038AC4 */ virtual f32 JSGGetProjectionNear() const;
/* 80038AF8 */ virtual void JSGSetProjectionNear(f32);
/* 80038B0C */ virtual f32 JSGGetProjectionFar() const;
@@ -284,6 +283,7 @@ public:
/* 80038D5C */ virtual void JSGSetViewTargetPosition(Vec const&);
/* 80038D84 */ virtual f32 JSGGetViewRoll() const;
/* 80038DDC */ virtual void JSGSetViewRoll(f32);
/* 80039FFC */ virtual ~dDemo_camera_c();
void onEnable(u8 flag) { mFlags |= flag; }
bool checkEnable(u8 flag) { return mFlags & flag; }
@@ -316,8 +316,8 @@ public:
mFlags = 0;
}
/* 800394C8 */ virtual ~dDemo_ambient_c();
/* 80038DF0 */ virtual void JSGSetColor(GXColor);
/* 800394C8 */ virtual ~dDemo_ambient_c();
void onEnable(u8 flag) { mFlags |= flag; }
+11 -7
View File
@@ -255,7 +255,9 @@ int dDemo_actor_c::getDemoIDData(int* param_0, int* param_1, int* param_2, u16*
return 1;
}
#if DEBUG
s16 dDemo_c::m_branchNum = 0;
#endif
/* 80038490-80038518 032DD0 0088+00 1/1 0/0 0/0 .text dDemo_getJaiPointer__FPCcUliPUs */
static void* dDemo_getJaiPointer(char const* arcName, u32 anmID, int param_2, u16* param_3) {
@@ -287,8 +289,7 @@ int dDemo_setDemoData(fopAc_ac_c* i_actor, u8 i_flags, mDoExt_McaMorf* i_morf, c
u8 flags = demo_actor->checkEnable(i_flags);
if (flags & dDemo_actor_c::ENABLE_TRANS_e) {
i_actor->current.pos = demo_actor->getTrans();
i_actor->old.pos = i_actor->current.pos;
i_actor->old.pos = i_actor->current.pos = demo_actor->getTrans();
}
if (flags & dDemo_actor_c::ENABLE_ROTATE_e) {
@@ -311,24 +312,26 @@ int dDemo_setDemoData(fopAc_ac_c* i_actor, u8 i_flags, mDoExt_McaMorf* i_morf, c
if (flags & dDemo_actor_c::ENABLE_ANM_e) {
u32 anmID = demo_actor->getAnmId();
void* ptr;
if (anmID != demo_actor->getOldAnmId()) {
const char* a_name;
if (anmID & 0x10000) {
a_name = dStage_roomControl_c::getDemoArcName();
JUT_ASSERT(267, a_name != NULL);
JUT_ASSERT(0x267, a_name != NULL);
} else {
a_name = i_arcName;
}
demo_actor->setOldAnmId(anmID);
J3DAnmTransform* i_key = (J3DAnmTransform*)dComIfG_getObjectIDRes(a_name, anmID);
J3DAnmTransform* i_key = (J3DAnmTransform*)dComIfG_getObjectIDRes(a_name, anmID & 0xffff);
JUT_ASSERT(272, i_key != 0);
void* ptr = dDemo_getJaiPointer(a_name, anmID, param_4, param_5);
ptr = dDemo_getJaiPointer(a_name, anmID & 0xffff, param_4, param_5);
i_morf->setAnm(i_key, -1, demo_actor->getPrm_Morf(), 1.0f, 0.0f, -1.0f, ptr);
f32 prmMorf = demo_actor->getPrm_Morf();
i_morf->setAnm(i_key, -1, prmMorf, 1.0f, 0.0f, -1.0f, ptr);
demo_actor->setAnmFrameMax(i_morf->getEndFrame());
}
}
@@ -337,7 +340,8 @@ int dDemo_setDemoData(fopAc_ac_c* i_actor, u8 i_flags, mDoExt_McaMorf* i_morf, c
f32 anm_frame = demo_actor->getAnmFrame();
if (anm_frame > 1.0f) {
i_morf->setFrame(anm_frame - 1.0f);
anm_frame -= 1.0f;
i_morf->setFrame(anm_frame);
i_morf->play(&i_actor->current.pos, param_6, i_reverb);
} else {
i_morf->setFrame(anm_frame);
+163 -164
View File
File diff suppressed because it is too large Load Diff
+16 -22
View File
@@ -1112,22 +1112,19 @@ void renderingPlusDoorAndCursor_c::drawTreasure() {
int group_num = getIconGroupNumber(tmp);
if (group_num != 0) {
JUT_ASSERT(0xaf9, typeGroupData_p != 0);
f32 icon_size = getIconSize(tmp) * mCmPerTexel;
f32 icon_size_2 = icon_size;
GXInvalidateTexAll();
GXTexObj* texObj_p =
dMpath_n::m_texObjAgg.getTexObjPointer(l_treasureDispList[i].field_0x4);
GXLoadTexObj(texObj_p, GX_TEXMAP0);
GXLoadTexObj(dMpath_n::m_texObjAgg.getTexObjPointer(l_treasureDispList[i].field_0x4), GX_TEXMAP0);
GXColor sp18;
const GXColor* temp_r3_2 = l_treasureDispList[i].field_0x8;
sp18.r = temp_r3_2->r;
sp18.g = temp_r3_2->g;
sp18.b = temp_r3_2->b;
sp18.a = temp_r3_2->a;
sp18 = *l_treasureDispList[i].field_0x8;
GXSetTevColor(GX_TEVREG1, sp18);
sp18.r += 4;
sp18.r += (u8)4;
GXSetTevColor(GX_TEVREG2, sp18);
for (int j = 0; j < group_num && typeGroupData_p != NULL; j++) {
@@ -1142,7 +1139,7 @@ void renderingPlusDoorAndCursor_c::drawTreasure() {
GXSetTevColor(GX_TEVREG1, sp18);
sp18.r += 4;
sp18.r += (u8)4;
GXSetTevColor(GX_TEVREG2, sp18);
}
@@ -1150,7 +1147,7 @@ void renderingPlusDoorAndCursor_c::drawTreasure() {
isDrawIconSingle(typeGroupData_p->getConstDataPointer(), mRoomNoSingle,
mRenderedFloor, rend_all_room, true, icon_pos))
{
drawIconSingle(*icon_pos, icon_size, icon_size);
drawIconSingle(*icon_pos, icon_size, icon_size_2);
}
typeGroupData_p = getNextData(typeGroupData_p);
@@ -1191,22 +1188,19 @@ void renderingPlusDoorAndCursor_c::drawTreasureAfterPlayer() {
int group_num = getIconGroupNumber(tmp);
if (group_num != 0) {
JUT_ASSERT(0xb7e, typeGroupData_p != 0);
f32 icon_size = getIconSize(tmp) * mCmPerTexel;
f32 icon_size_2 = icon_size;
GXInvalidateTexAll();
GXTexObj* texObj_p =
dMpath_n::m_texObjAgg.getTexObjPointer(l_treasureDispList[i].field_0x4);
GXLoadTexObj(texObj_p, GX_TEXMAP0);
GXLoadTexObj(dMpath_n::m_texObjAgg.getTexObjPointer(l_treasureDispList[i].field_0x4), GX_TEXMAP0);
GXColor sp18;
const GXColor* temp_r3_2 = l_treasureDispList[i].field_0x8;
sp18.r = temp_r3_2->r;
sp18.g = temp_r3_2->g;
sp18.b = temp_r3_2->b;
sp18.a = temp_r3_2->a;
sp18 = *l_treasureDispList[i].field_0x8;
GXSetTevColor(GX_TEVREG1, sp18);
sp18.r += 4;
sp18.r += (u8)4;
GXSetTevColor(GX_TEVREG2, sp18);
for (int j = 0; j < group_num && typeGroupData_p != NULL; j++) {
@@ -1221,7 +1215,7 @@ void renderingPlusDoorAndCursor_c::drawTreasureAfterPlayer() {
GXSetTevColor(GX_TEVREG1, sp18);
sp18.r += 4;
sp18.r += (u8)4;
GXSetTevColor(GX_TEVREG2, sp18);
}
@@ -1229,7 +1223,7 @@ void renderingPlusDoorAndCursor_c::drawTreasureAfterPlayer() {
isDrawIconSingle(typeGroupData_p->getConstDataPointer(), mRoomNoSingle,
mRenderedFloor, rend_all_room, true, icon_pos))
{
drawIconSingle(*icon_pos, icon_size, icon_size);
drawIconSingle(*icon_pos, icon_size, icon_size_2);
}
typeGroupData_p = getNextData(typeGroupData_p);
+1 -1
View File
@@ -404,7 +404,7 @@ bool dMenu_StageMapCtrl_c::getTreasureList(f32* o_posX, f32* o_posY, s8* param_2
Vec sp10;
sp10 = *field_0x8c->getPos();
if (getRendPointer(0)->isDrawIconSingle(field_0x8c->getDataPointer(), (s8)dComIfGp_roomControl_getStayNo(), field_0xf7, true, true, &sp10)) {
if (getRendPointer(0)->isDrawIconSingle(field_0x8c->getDataPointer(), (s8)dComIfGp_roomControl_getStayNo(), field_0xf7, 1, true, &sp10)) {
cnvPosTo2Dpos(sp10.x, sp10.z, o_posX, o_posY);
if (param_2 != NULL) {