Fix weak function order of dBgS_MoveBgActor::Draw

fixes #217
fixes #239
fixes #389
fixes #418
fixes #428
fixes #147
This commit is contained in:
LagoLunatic
2025-05-19 18:41:23 -04:00
parent 3d5131231f
commit fd6cb6e4ca
15 changed files with 44 additions and 33 deletions
+8 -8
View File
@@ -1353,7 +1353,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_kanban"),
ActorRel(NonMatching, "d_a_ki"),
ActorRel(NonMatching, "d_a_knob00"),
ActorRel(Matching, "d_a_kui"),
ActorRel(Matching, "d_a_kui"),
ActorRel(Matching, "d_a_kytag00"),
ActorRel(Matching, "d_a_kytag01"),
ActorRel(NonMatching, "d_a_kytag02"),
@@ -1390,7 +1390,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_leaves"),
ActorRel(NonMatching, "d_a_obj_lpalm"),
ActorRel(Matching, "d_a_obj_monument"),
ActorRel(Equivalent, "d_a_obj_movebox", extra_cflags=['-pragma "nosyminline on"']), # weak func order
ActorRel(Matching, "d_a_obj_movebox", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(NonMatching, "d_a_obj_mshokki"),
ActorRel(NonMatching, "d_a_obj_ohatch"),
ActorRel(NonMatching, "d_a_obj_otble"),
@@ -1463,7 +1463,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_gy_ctrl"),
ActorRel(NonMatching, "d_a_himo3"),
ActorRel(NonMatching, "d_a_hmlif"),
ActorRel(Equivalent, "d_a_hys", extra_cflags=['-pragma "nosyminline on"']), # weak func order
ActorRel(Matching, "d_a_hys", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(NonMatching, "d_a_kamome"),
ActorRel(NonMatching, "d_a_kantera"),
ActorRel(NonMatching, "d_a_kn"),
@@ -1485,7 +1485,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_majyuu_door"),
ActorRel(NonMatching, "d_a_obj_stair"),
ActorRel(NonMatching, "d_a_obj_swflat"),
ActorRel(Equivalent, "d_a_obj_swhammer"), # weak func order
ActorRel(Matching, "d_a_obj_swhammer", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(Matching, "d_a_obj_swheavy"),
ActorRel(NonMatching, "d_a_obj_swlight"),
ActorRel(NonMatching, "d_a_oq"),
@@ -1547,7 +1547,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_icelift"),
ActorRel(NonMatching, "d_a_kb"),
ActorRel(NonMatching, "d_a_kddoor"),
ActorRel(Matching, "d_a_kita", extra_cflags=['-pragma "sym off"']),
ActorRel(Matching, "d_a_kita", extra_cflags=['-pragma "sym off"']),
ActorRel(NonMatching, "d_a_klft"),
ActorRel(NonMatching, "d_a_kmon"),
ActorRel(Matching, "d_a_komore", extra_cflags=['-pragma "nosyminline on"']),
@@ -1637,7 +1637,7 @@ config.libs = [
ActorRel(Matching, "d_a_obj_eayogn"),
ActorRel(Matching, "d_a_obj_ebomzo", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(NonMatching, "d_a_obj_ekskz"),
ActorRel(Equivalent, "d_a_obj_eskban", extra_cflags=['-pragma "nosyminline on"']), # weak func order
ActorRel(Matching, "d_a_obj_eskban", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(Matching, "d_a_obj_ferris", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(NonMatching, "d_a_obj_figure", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(NonMatching, "d_a_obj_firewall"),
@@ -1666,7 +1666,7 @@ config.libs = [
ActorRel(Matching, "d_a_obj_iceisland", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(NonMatching, "d_a_obj_jump"),
ActorRel(NonMatching, "d_a_obj_kanoke"),
ActorRel(Equivalent, "d_a_obj_ladder", extra_cflags=['-pragma "nosyminline on"']), # weak func order
ActorRel(Matching, "d_a_obj_ladder", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(NonMatching, "d_a_obj_light"),
ActorRel(NonMatching, "d_a_obj_mkie"),
ActorRel(NonMatching, "d_a_obj_mkiek"),
@@ -1676,7 +1676,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_msdan2"),
ActorRel(NonMatching, "d_a_obj_msdan_sub"),
ActorRel(NonMatching, "d_a_obj_msdan_sub2"),
ActorRel(Equivalent, "d_a_obj_mtest", extra_cflags=['-pragma "nosyminline on"']), # weak func order
ActorRel(Matching, "d_a_obj_mtest", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(NonMatching, "d_a_obj_nest"),
ActorRel(Matching, "d_a_obj_ojtree"),
ActorRel(NonMatching, "d_a_obj_ospbox"),
-2
View File
@@ -2,8 +2,6 @@
#define D_A_HYS_H
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_cc_d.h"
#include "m_Do/m_Do_ext.h"
class daHys_c : public dBgS_MoveBgActor {
public:
-4
View File
@@ -1,11 +1,7 @@
#ifndef D_A_OBJ_ESKBAN_H
#define D_A_OBJ_ESKBAN_H
#include "f_op/f_op_actor.h"
#include "d/d_a_obj.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_particle.h"
namespace daObjEskban {
+1 -3
View File
@@ -1,10 +1,8 @@
#ifndef D_A_OBJ_LADDER_H
#define D_A_OBJ_LADDER_H
#include "d/d_a_obj.h"
#include "d/d_bg_s_gnd_chk.h"
#include "d/d_bg_s_movebg_actor.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_s_gnd_chk.h"
namespace daObjLadder {
enum Type_e {
+2 -3
View File
@@ -1,14 +1,13 @@
#ifndef D_A_OBJ_MOVEBOX_H
#define D_A_OBJ_MOVEBOX_H
#include "d/d_a_obj.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_bg_s_gnd_chk.h"
#include "d/d_bg_s_wtr_chk.h"
#include "d/d_bg_s_lin_chk.h"
#include "d/d_particle.h"
#include "d/d_bg_w.h"
#include "d/d_path.h"
struct dPath;
namespace daObjMovebox {
class Act_c;
-3
View File
@@ -1,10 +1,7 @@
#ifndef D_A_OBJ_MTEST_H
#define D_A_OBJ_MTEST_H
#include "f_op/f_op_actor.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_cc_d.h"
#include "d/d_a_obj.h"
namespace daObjMtest {
class Act_c : public dBgS_MoveBgActor {
-2
View File
@@ -1,9 +1,7 @@
#ifndef D_A_OBJ_SWHAMMER_H
#define D_A_OBJ_SWHAMMER_H
#include "d/d_a_obj.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_particle.h"
class J3DNode;
+7
View File
@@ -3,6 +3,13 @@
#include "SSystem/SComponent/c_bg_s_poly_info.h"
#include "f_op/f_op_actor.h"
// Fakematch to fix weak func order/.text section splitting of some TUs that include this header.
// Some affected TUs: d_a_hys, d_a_obj_swhammer, d_a_obj_eskban, d_a_obj_mtest, d_a_obj_movebox.
#pragma push
#pragma sym off
#include "d/d_a_obj.h"
#include "d/d_particle.h"
#pragma pop
class dBgW;
typedef void (*MoveBGActor_SetFunc)(dBgW*, void*, cBgS_PolyInfo&, bool, cXyz*, csXyz*, csXyz*);
+3
View File
@@ -222,6 +222,9 @@ static BOOL daHys_Draw(void* i_this) {
return ((daHys_c*)i_this)->MoveBGDraw();
}
// Fakematch to fix weak func order/.text section splitting of dBgS_MoveBgActor::Draw().
#pragma nosyminline off
/* 00000C08-00000C28 .text daHys_Execute__FPv */
static BOOL daHys_Execute(void* i_this) {
return ((daHys_c*)i_this)->MoveBGExecute();
+5 -2
View File
@@ -3,10 +3,10 @@
// Translation Unit: d_a_obj_eskban.cpp
//
#include "d/d_procname.h"
#include "d/d_com_inf_game.h"
#include "d/actor/d_a_obj_eskban.h"
#include "d/res/res_eskban.h"
#include "d/d_procname.h"
#include "d/d_com_inf_game.h"
#include "f_op/f_op_actor_mng.h"
#include "weak_bss_936_to_1036.h" // IWYU pragma: keep
@@ -408,6 +408,9 @@ BOOL Mthd_Draw(void* i_this) {
return ((Act_c*)i_this)->MoveBGDraw();
}
// Fakematch to fix weak func order/.text section splitting of dBgS_MoveBgActor::Draw().
#pragma nosyminline off
/* 00001540-0000156C .text Mthd_IsDelete__Q211daObjEskban28@unnamed@d_a_obj_eskban_cpp@FPv */
BOOL Mthd_IsDelete(void* i_this) {
return ((Act_c*)i_this)->MoveBGIsDelete();
+3
View File
@@ -323,6 +323,9 @@ static BOOL Mthd_Draw(void* i_this) {
return static_cast<Act_c*>(i_this)->MoveBGDraw();
}
// Fakematch to fix weak func order/.text section splitting of dBgS_MoveBgActor::Draw().
#pragma nosyminline off
/* 000011CC-000011F8 .text Mthd_IsDelete__Q211daObjLadder28@unnamed@d_a_obj_ladder_cpp@FPv */
static BOOL Mthd_IsDelete(void* i_this) {
return static_cast<Act_c*>(i_this)->MoveBGIsDelete();
+8 -6
View File
@@ -3,12 +3,6 @@
* Object - Pushable Box
*/
#include "global.h"
#include "d/d_procname.h"
#include "weak_bss_936_to_1036.h" // IWYU pragma: keep
#include "weak_data_1811.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_movebox.h"
#include "d/res/res_ecube.h"
#include "d/res/res_hbox2.h"
@@ -17,6 +11,7 @@
#include "d/res/res_mmirror.h"
#include "d/res/res_mpwrb.h"
#include "d/res/res_osiblk.h"
#include "d/d_path.h"
#include "d/d_cc_d.h"
#include "d/d_procname.h"
#include "JSystem/JUtility/JUTAssert.h"
@@ -28,6 +23,9 @@
#include "d/actor/d_a_obj_mkie.h"
#include "d/actor/d_a_player.h"
#include "weak_bss_936_to_1036.h" // IWYU pragma: keep
#include "weak_data_1811.h" // IWYU pragma: keep
namespace daObjMovebox {
dBgS_ObjGndChk Bgc_c::M_gnd_work[23];
dBgS_WtrChk Bgc_c::M_wrt_work;
@@ -1894,6 +1892,10 @@ namespace daObjMovebox {
cPhs_State Mthd_Create(void* i_this) {
return static_cast<Act_c*>(i_this)->Mthd_Create();
}
// Fakematch to fix weak func order/.text section splitting of daObjMovebox::EffSmokeCB's ctor and dtor.
// Also fixes weak func order/.text section splitting of dBgS_MoveBgActor::Draw().
#pragma nosyminline off
/* 000044E0-00004544 .text Mthd_Delete__Q212daObjMovebox29@unnamed@d_a_obj_movebox_cpp@FPv */
BOOL Mthd_Delete(void* i_this) {
+3
View File
@@ -366,6 +366,9 @@ namespace daObjMtest {
return ((Act_c*)i_this)->MoveBGDraw();
}
// Fakematch to fix weak func order/.text section splitting of dBgS_MoveBgActor::Draw().
#pragma nosyminline off
BOOL Mthd_IsDelete(void* i_this) {
return ((Act_c*)i_this)->MoveBGIsDelete();
}
+3
View File
@@ -461,6 +461,9 @@ BOOL Mthd_Draw(void* i_this) {
return static_cast<daObjSwhammer::Act_c*>(i_this)->MoveBGDraw();
}
// Fakematch to fix weak func order/.text section splitting of dBgS_MoveBgActor::Draw().
#pragma nosyminline off
/* 000015F4-00001620 .text Mthd_IsDelete__Q213daObjSwhammer30@unnamed@d_a_obj_swhammer_cpp@FPv */
BOOL Mthd_IsDelete(void* i_this) {
return static_cast<daObjSwhammer::Act_c*>(i_this)->MoveBGIsDelete();
+1
View File
@@ -16,6 +16,7 @@
#include "d/d_com_inf_game.h"
#include "d/d_com_lib_game.h"
#include "d/d_kankyo_wether.h"
#include "d/d_path.h"
#include "d/d_procname.h"
#include "d/d_kankyo.h"
#include "JSystem/JKernel/JKRSolidHeap.h"