Fix MSVC compiler and linker errors

- Fix struct/class forward declaration mismatches (JAIAudience, JASTrack) causing different MSVC mangled names and unresolved symbols
- Add jsystem_stubs.cpp with stubs for JASHeap, JASVoiceBank, J3DShapeTable, JAUSection, JHICommBuf, HIO/HIO2, JOR
This commit is contained in:
Lurs
2026-02-13 23:28:47 +01:00
parent 143c973b49
commit d069062c5c
60 changed files with 2780 additions and 815 deletions
+2 -2
View File
@@ -1246,7 +1246,7 @@ void daAlink_c::setWolfDigEffect() {
} else if (field_0x3198 == 7) {
var_r29 = 0;
var_r28 = ID_ZI_J_DASHWTRA_C;
setEmitterPolyColor(&field_0x32cc, ID_ZI_J_DASHWTRA_A, mPolyInfo2, &field_0x37d4, &sp18);
setEmitterPolyColor((u32*)&field_0x32cc, ID_ZI_J_DASHWTRA_A, mPolyInfo2, &field_0x37d4, &sp18);
setEmitterPolyColor(&field_0x31bc, ID_ZI_J_DASHWTRA_B, mPolyInfo2, &field_0x37d4, &sp18);
} else {
var_r29 = 0;
@@ -1281,7 +1281,7 @@ void daAlink_c::setWolfSwimEndEffect(JPABaseEmitter** param_0, JPABaseEmitter**
var_r30 = 1;
}
*param_0 = setEmitterColor(&field_0x32cc, name0[var_r30], &field_0x37c8, &shape_angle);
*param_0 = setEmitterColor((u32*)&field_0x32cc, name0[var_r30], &field_0x37c8, &shape_angle);
if (var_r30 != 0) {
*param_1 = setEmitterColor(&field_0x31bc, name1[var_r30], &field_0x37c8, &shape_angle);
+3
View File
@@ -5703,4 +5703,7 @@ actor_process_profile_definition g_profile_B_DS = {
fopAc_CULLBOX_CUSTOM_e,
};
cXyz daB_DS_c::getHandPosR() { return mHandPos[1]; }
cXyz daB_DS_c::getHandPosL() { return mHandPos[0]; }
AUDIO_INSTANCES;
+1 -1
View File
@@ -336,7 +336,7 @@ static BOOL way_bg_check(e_dd_class* i_this, f32 param_2) {
return FALSE;
}
u8 hio_set;
static u8 hio_set;
static daE_DD_HIO_c l_HIO;
+7 -7
View File
@@ -354,13 +354,13 @@ static BOOL other_bg_check2(e_dn_class* i_this, cXyz* i_pos) {
return FALSE;
}
u8 hio_set;
static u8 hio_set;
daE_DN_HIO_c l_HIO;
static daE_DN_HIO_c l_HIO;
fopAc_ac_c* target_info[10];
static fopAc_ac_c* target_info[10];
int target_info_count;
static int target_info_count;
static void* s_b_sub(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && dBomb_c::checkBombActor((fopAc_ac_c*)i_actor) && !((dBomb_c*)i_actor)->checkStateExplode() && target_info_count < 10) {
@@ -2978,7 +2978,7 @@ static void anm_se_set(e_dn_class* i_this) {
}
}
int c_start;
static int c_start;
static int daE_DN_Execute(e_dn_class* i_this) {
if (i_this->status != 0) {
@@ -3298,9 +3298,9 @@ static int daE_DN_Delete(e_dn_class* i_this) {
return 1;
}
Vec jv_offset = { 0.0f, 0.0f, 0.0f };
static Vec jv_offset = { 0.0f, 0.0f, 0.0f };
dJntColData_c jc_data[12] = {
static dJntColData_c jc_data[12] = {
{0, 1, 2, 40.0f, &jv_offset}, {0, 1, 3, 30.0f, &jv_offset},
{0, 1, 22, 40.0f, &jv_offset}, {0, 1, 11, 15.0f, &jv_offset},
{0, 1, 12, 10.0f, &jv_offset}, {0, 1, 17, 15.0f, &jv_offset},
+1 -1
View File
@@ -127,7 +127,7 @@ static f32 dummy_117095() {
}
#endif
bool hio_set;
static bool hio_set;
static daE_FB_HIO_c l_HIO;
+7 -7
View File
@@ -289,13 +289,13 @@ static BOOL other_bg_check2(e_mf_class* i_this, cXyz* param_2) {
return FALSE;
}
u8 hio_set;
static u8 hio_set;
daE_MF_HIO_c l_HIO;
static daE_MF_HIO_c l_HIO;
fopAc_ac_c* target_info[10];
static fopAc_ac_c* target_info[10];
int target_info_count;
static int target_info_count;
static void* s_b_sub(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && dBomb_c::checkBombActor((fopAc_ac_c*)i_actor) && !((dBomb_c*)i_actor)->checkStateExplode() && target_info_count < 10) {
@@ -2773,7 +2773,7 @@ static void anm_se_set(e_mf_class* i_this) {
}
}
int c_start;
static int c_start;
static int daE_MF_Execute(e_mf_class* i_this) {
fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->actor;
@@ -3085,9 +3085,9 @@ static int daE_MF_Delete(e_mf_class* i_this) {
return 1;
}
Vec jv_offset = { 0.0f, 0.0f, 0.0f };
static Vec jv_offset = { 0.0f, 0.0f, 0.0f };
dJntColData_c jc_data[12] = {
static dJntColData_c jc_data[12] = {
{0, 1, 2, 40.0f, &jv_offset}, {0, 1, 3, 30.0f, &jv_offset},
{0, 1, 22, 40.0f, &jv_offset}, {0, 1, 11, 15.0f, &jv_offset},
{0, 1, 12, 10.0f, &jv_offset}, {0, 1, 17, 15.0f, &jv_offset},
+1 -1
View File
@@ -137,7 +137,7 @@ static cXyz STAGE_CENTER_POS;
static s16 STAGE_ANGLE_Y;
u8 hio_set;
static u8 hio_set;
static daE_MK_HIO_c l_HIO;
+1 -1
View File
@@ -129,7 +129,7 @@ static int daE_NZ_Draw(e_nz_class* i_this) {
return 1;
}
bool hio_set;
static bool hio_set;
static daE_NZ_HIO_c l_HIO;
+1 -1
View File
@@ -873,7 +873,7 @@ void daE_VA_c::setFireEffect(int param_0) {
dComIfGp_particle_set(field_0x10f80[idx + 2], 0x3AE, &field_0x1140[param_0], NULL, &scale);
}
f32 dummy() {
static f32 dummy() {
return 3.2f;
}
+1 -1
View File
@@ -1716,7 +1716,7 @@ static void e_yr_su_wait_move(e_yr_class* i_this) {
}
}
f32 dummy() {
static f32 dummy() {
return -50.0f;
}
+1 -1
View File
@@ -16,7 +16,7 @@ static int l_bmdData[1][2] = {
{11, 1},
};
daNpcT_evtData_c l_evtList[11] = {
static daNpcT_evtData_c l_evtList[11] = {
{"", 0},
{"NO_RESPONSE", 0},
{"WILDGOAT", 2},
+1 -1
View File
@@ -192,7 +192,7 @@ enum Mode {
static NPC_GRO_HIO_CLASS l_HIO;
daNpc_Maro_c::actionFunc dummy_lit_3931() {
static daNpc_Maro_c::actionFunc dummy_lit_3931() {
return &daNpc_Maro_c::choccai;
}
+1 -1
View File
@@ -941,7 +941,7 @@ int daNpcKasiMich_c::getWolfPathNearIdx() {
return rv;
}
void dummy() {
static void dummy() {
daNpcKasiMich_c::actionFunc temp;
temp = &daNpcKasiMich_c::wait;
temp = &daNpcKasiMich_c::wait;
+1 -1
View File
@@ -116,7 +116,7 @@ static int l_bmdData[2][2] = {
{11, 1}, {5, 2},
};
daNpcT_evtData_c l_evtList[15] = {
static daNpcT_evtData_c l_evtList[15] = {
{"", 0},
{"DEFAULT_GETITEM", 0},
{"NO_RESPONSE", 0},
+1 -1
View File
@@ -20,7 +20,7 @@
#include "f_op/f_op_camera_mng.h"
#include <dolphin/types.h>
daNpc_Maro_c::actionFunc dummy_lit_3931() {
static daNpc_Maro_c::actionFunc dummy_lit_3931() {
return &daNpc_Maro_c::choccai;
}
+1 -1
View File
@@ -141,7 +141,7 @@ u32 bef_brk[2] = {
10,
};
int useHeapInit(fopAc_ac_c* i_this) {
static int useHeapInit(fopAc_ac_c* i_this) {
obj_brakeeff_class* a_this = static_cast<obj_brakeeff_class*>(i_this);
J3DModelData* modelData =
+1 -1
View File
@@ -14,7 +14,7 @@
#include "d/d_s_play.h"
#include <cmath>
f32 dummyLiteral() {
static f32 dummyLiteral() {
return 0.0f;
}
+2 -2
View File
@@ -149,11 +149,11 @@ static int daObjKAT_Delete(daObjKAT_c* i_this) {
return 1;
}
f32 dummy0() {
static f32 dummy0() {
return 0.0f;
}
f32 dummy1() {
static f32 dummy1() {
return 0.4f;
}
+1 -1
View File
@@ -109,7 +109,7 @@ static const int l_dzbidx[] = {9};
#endif
// force dCcD_Sph::~dCcD_Sph to be emitted earlier than it otherwise would
void dummy() {
static void dummy() {
delete (dCcD_Sph*)NULL;
delete (dCcD_Cyl*)NULL;
}
+1 -1
View File
@@ -146,7 +146,7 @@ int daObj_Maki_Delete(obj_maki_class* i_this) {
return 1;
}
int useHeapInit(fopAc_ac_c* i_this) {
static int useHeapInit(fopAc_ac_c* i_this) {
obj_maki_class* a_this = (obj_maki_class*)i_this;
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_maki", 4);
+1 -1
View File
@@ -89,7 +89,7 @@ void daObjSakuita_c::setBaseMtx() {
cMtx_copy(mDoMtx_stack_c::get(), mMtx);
}
f32 dummyLiteral() { return 0.5f; }
static f32 dummyLiteral() { return 0.5f; }
void daObjSakuita_c::setPlatePos() {
cXyz cStack_24;
+1 -1
View File
@@ -216,7 +216,7 @@ static int daObjTrnd_Create(daObjTrnd_c* i_this) {
return i_this->create();
}
void dummyString() {
static void dummyString() {
DEAD_STRING("");
}
+1 -1
View File
@@ -435,7 +435,7 @@ void daWdStick_c::mode_proc_roll() {
bgCheck();
}
f32 dummyLiteral() { return 100.0f; }
static f32 dummyLiteral() { return 100.0f; }
BOOL daWdStick_c::chkWaterLineIn() {
return mAcch.m_wtr.GetHeight() > current.pos.y + 40.0f;
+5
View File
@@ -58,8 +58,13 @@ int daPPolamp_c::draw() {
g_env_light.setLightTevColorType_MAJI(mModel1, &tevStr);
mDoExt_modelUpdateDL(mModel1);
g_env_light.setLightTevColorType_MAJI(mModel2, &tevStr);
#ifdef __MWERKS__
static J3DGXColorS10 TEV_COLOR_1 = (GXColorS10){0x48, 0x85, 0xff, 0xff};
static J3DGXColorS10 TEV_COLOR_2 = (GXColorS10){0, 0, 0xff, 0xff};
#else
static J3DGXColorS10 TEV_COLOR_1 = GXColorS10 {0x48, 0x85, 0xff, 0xff};
static J3DGXColorS10 TEV_COLOR_2 = GXColorS10 {0, 0, 0xff, 0xff};
#endif
J3DModelData* modelData = mModel2->getModelData();
for (u16 i = 0; i < modelData->getMaterialNum(); i++)
{
+1 -1
View File
@@ -264,7 +264,7 @@ void daTag_Msg_HIO_c::genMessage(JORMContext* ctx) {
}
#endif
void dummyString() {
static void dummyString() {
DEAD_STRING("Timer");
}
+2
View File
@@ -246,9 +246,11 @@ static int daTag_SSDrink_IsDelete(void* i_this) {
daTag_SSDrink_c::~daTag_SSDrink_c() {}
#ifdef __MWERKS__
void daObj_SSBase_c::setSoldOut() {
/* empty function */
}
#endif
static actor_method_class daTag_SSDrink_MethodTable = {
(process_method_func)daTag_SSDrink_Create, (process_method_func)daTag_SSDrink_Delete,