Merge decomp/main into dusk

Merges 44 upstream commits from zeldaret/tp decomp/main.

Conflict resolutions:
- .github/workflows/build.yml: keep deleted (not needed for PC port)
- README.md: keep PC port README
- J3DAnimation.h: keep OFFSET_PTR macro + add upstream forward decl
- J3DModelLoader.h: keep BE(u32) mBlockNum + add field_0x1c
- d_com_inf_game.h: keep PC port inlines + add upstream declarations
- global.h: keep MULTI_CHAR macro + add FABSF macro
- JUTConsole.cpp: keep uintptr_t cast for 64-bit
- JUTDbPrint.cpp: keep PC enter_() helper + add cstring include
- JUTResFont.cpp: take upstream loop/struct improvements with BE types
- JUTCacheFont.cpp: take upstream decomp fix
- float.h: use upstream !PLATFORM_GCN guard
- d_a_npc_bouS/theB.cpp: keep MULTI_CHAR() for PC portability
- d_a_npc_henna.cpp: keep uintptr_t + use upstream var name
- d_demo.cpp: keep near_/far_ field renames for PC
- d_resorce.cpp: keep uintptr_t + fix var name to res
- d_s_room.cpp, m_Do_graphic.cpp: keep dusk includes + add cstring
- m_Do_main.cpp: keep JHIComPortManager + use JAS_GLOBAL_INSTANCE_INIT
- angle_utils.h: remove redundant types.h include
This commit is contained in:
Luke Street
2026-02-28 13:28:42 -07:00
3803 changed files with 240344 additions and 16831 deletions
+32 -8
View File
@@ -13,6 +13,19 @@
#include "d/d_s_play.h"
#include "f_op/f_op_camera_mng.h"
#include "m_Do/m_Do_lib.h"
#include <cstring>
class daObj_KatHIO_c : public JORReflexible {
public:
daObj_KatHIO_c();
virtual ~daObj_KatHIO_c() {}
void genMessage(JORMContext* ctx);
s8 field_0x4;
f32 mScaleFemale;
f32 mScaleMale;
};
static u8 hio_set;
@@ -24,6 +37,17 @@ daObj_KatHIO_c::daObj_KatHIO_c() {
mScaleFemale = 1.0f;
}
#if DEBUG
void daObj_KatHIO_c::genMessage(JORMContext* ctx) {
// Golden Snail
ctx->genLabel("黄金蟲(カタツムリ)", 0x80000001);
// Model scale (male)
ctx->genSlider("モデルスケール(オス)", &mScaleMale, 0.1f, 4.0f);
// Model scale (female)
ctx->genSlider("モデルスケール(メス)", &mScaleFemale, 0.1f, 4.0f);
}
#endif
static u8 const l_kat_itemno[2] = {
fpcNm_ITEM_M_SNAIL,
fpcNm_ITEM_F_SNAIL,
@@ -83,7 +107,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return kat->CreateHeap();
}
int daObjKAT_c::CreateHeap() {
inline int daObjKAT_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Kat", 9);
JUT_ASSERT(0x136, modelData != NULL);
mpMorfSO =
@@ -139,12 +163,12 @@ int daObjKAT_c::CreateHeap() {
static int daObjKAT_Create(fopAc_ac_c* i_this) {
daObjKAT_c* kat = (daObjKAT_c*)i_this;
fpc_ProcID unused = fopAcM_GetID(i_this);
fopAcM_RegisterCreateID(i_this, "Obj_KAT");
return kat->create();
}
static int daObjKAT_Delete(daObjKAT_c* i_this) {
fpc_ProcID unused = fopAcM_GetID(i_this);
fopAcM_RegisterDeleteID(i_this, "Obj_KAT");
i_this->Delete();
return 1;
}
@@ -233,7 +257,7 @@ void daObjKAT_c::WallWalk() {
field_0x7c2.x = cM_atan2s(unkXyzP2->z, unkXyzP2->y);
field_0x7f6 = cM_atan2s(unkXyzP2->x, unkXyzP2->z);
} else {
field_0x7e0 += (s16)0x100;
ANGLE_ADD(field_0x7e0, 0x100);
}
}
@@ -622,7 +646,7 @@ void daObjKAT_c::Z_BufferChk() {
field_0x800 = ((near_ + far_ * near_ / projected.z) / (far_ - near_) + 1.0f) * 16777215.0f;
}
int daObjKAT_c::Delete() {
inline int daObjKAT_c::Delete() {
dComIfG_resDelete(&mPhase, "Kat");
if (field_0xa70 != 0) {
hio_set = 0;
@@ -693,16 +717,16 @@ bool daObjKAT_c::CreateChk() {
return true;
}
int daObjKAT_c::create() {
inline int daObjKAT_c::create() {
fopAcM_ct(this, daObjKAT_c);
s32 loadResult = dComIfG_resLoad(&mPhase, "Kat");
if (loadResult == cPhs_COMPLEATE_e) {
OS_REPORT("KAT PARAM: %x", fopAcM_GetParam(this));
OS_REPORT("KAT PARAM %x\n", fopAcM_GetParam(this));
field_0x808 = fopAcM_GetParam(this) & 0xf;
if (field_0x808 == 2) {
field_0x56c = 0;
shape_angle.x += (s16)-0x2000;
ANGLE_ADD(shape_angle.x, -0x2000);
fopAcM_OnStatus(this, 0x4000);
} else {
mDraw = true;