Merge remote-tracking branch 'upstream/main' into d_a_obj_boomerang

This commit is contained in:
robojumper
2025-07-23 00:20:43 +02:00
86 changed files with 5126 additions and 2443 deletions
+14
View File
@@ -29,6 +29,20 @@ force_active: [
"ModuleConstructorsX",
"ModuleDestructorsX",
]
block_relocations:
# OSInit
- source: 0x803a2a9c
- source: 0x803a2b04
add_relocations:
# bugged relocation pair in unreachable code
- source: .text:0x80306FCC
type: l
target: lbl_804F0A00
# TRK branches
- source: .init:0x80004844
type: rel24
target: __TRKreset
# TODO - all the TRK_InterruptHandler loads
extract:
- symbol: DOL_BACKUP_FONT
header: d/dol_backup_error_font.inc
@@ -64,7 +64,7 @@ __dt__12dAcNpcSltk_cFv = .text:0x00000C40; // type:function size:0x78
__sinit_\d_a_npc_saltalk_cpp = .text:0x00000CC0; // type:function size:0x124 scope:local
__dt__27sFStateID_c<12dAcNpcSltk_c>Fv = .text:0x00000DF0; // type:function size:0x58
__dt__34sFStateVirtualID_c<12dAcNpcSltk_c>Fv = .text:0x00000E50; // type:function size:0x5C
baseID_Wait<8dAcNpc_c>__Fv_RC10sStateID_c = .text:0x00000EB0; // type:function size:0xC
baseID_Wait<8dAcNpc_c>__Fv_RC12sStateIDIf_c = .text:0x00000EB0; // type:function size:0xC
number__34sFStateVirtualID_c<12dAcNpcSltk_c>CFv = .text:0x00000EC0; // type:function size:0xDC
superID__34sFStateVirtualID_c<12dAcNpcSltk_c>CFv = .text:0x00000FA0; // type:function size:0xE0
isSameName__27sFStateID_c<12dAcNpcSltk_c>CFPCc = .text:0x00001080; // type:function size:0x88
+58 -64
View File
@@ -8,21 +8,17 @@ __dt__24sFState_c<11dAcOChest_c>Fv = .text:0x000001F0; // type:function size:0x5
__dt__27sFStateFct_c<11dAcOChest_c>Fv = .text:0x00000250; // type:function size:0x6C
__dt__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000002C0; // type:function size:0xA0
__dt__50sFStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000360; // type:function size:0xA4
fn_326_410 = .text:0x00000410; // type:function size:0xC
fn_326_41C = .text:0x0000041C; // type:function size:0x4
fn_326_420 = .text:0x00000420; // type:function size:0xC
fn_326_42C = .text:0x0000042C; // type:function size:0x4
fn_326_430 = .text:0x00000430; // type:function size:0xC
fn_326_43C = .text:0x0000043C; // type:function size:0x4
fn_326_440 = .text:0x00000440; // type:function size:0xC
fn_326_44C = .text:0x0000044C; // type:function size:0x4
AcOChest__initModels = .text:0x00000450; // type:function size:0x1B0
AcOChest__init = .text:0x00000600; // type:function size:0x26C
changeStateOpenCallback__11dAcOChest_cFP11dAcOChest_c = .text:0x00000410; // type:function size:0x10
changeStateWaitCallback__11dAcOChest_cFP11dAcOChest_c = .text:0x00000420; // type:function size:0x10
changeStateFailCallback__11dAcOChest_cFP11dAcOChest_c = .text:0x00000430; // type:function size:0x10
changeStateWait2Callback__11dAcOChest_cFP11dAcOChest_c = .text:0x00000440; // type:function size:0x10
createHeap__11dAcOChest_cFv = .text:0x00000450; // type:function size:0x1B0
create__11dAcOChest_cFv = .text:0x00000600; // type:function size:0x26C
changeState__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000870; // type:function size:0x10
fn_326_880 = .text:0x00000880; // type:function size:0x8
AcOChest__update = .text:0x00000890; // type:function size:0x98
doDelete__11dAcOChest_cFv = .text:0x00000880; // type:function size:0x8
actorExecute__11dAcOChest_cFv = .text:0x00000890; // type:function size:0x98
executeState__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000930; // type:function size:0x10
AcOChest__draw = .text:0x00000940; // type:function size:0x50
draw__11dAcOChest_cFv = .text:0x00000940; // type:function size:0x50
initializeState_Wait__11dAcOChest_cFv = .text:0x00000990; // type:function size:0x4
executeState_Wait__11dAcOChest_cFv = .text:0x000009A0; // type:function size:0x2C
finalizeState_Wait__11dAcOChest_cFv = .text:0x000009D0; // type:function size:0x4
@@ -35,27 +31,25 @@ finalizeState_OrderOpenEventAfter__11dAcOChest_cFv = .text:0x00000B60; // type:f
initializeState_FailEvent__11dAcOChest_cFv = .text:0x00000B70; // type:function size:0x4
executeState_FailEvent__11dAcOChest_cFv = .text:0x00000B80; // type:function size:0x4
finalizeState_FailEvent__11dAcOChest_cFv = .text:0x00000B90; // type:function size:0x4
AcOChest__performInteraction = .text:0x00000BA0; // type:function size:0xE4
fn_326_C90 = .text:0x00000C90; // type:function size:0x68
fn_326_D00 = .text:0x00000D00; // type:function size:0x80
fn_326_D80 = .text:0x00000D80; // type:function size:0x5C
fn_326_DE0 = .text:0x00000DE0; // type:function size:0x48
fn_326_E30 = .text:0x00000E30; // type:function size:0x50
AcOChest__getName = .text:0x00000E80; // type:function size:0xC
AcOChest__getSubtypeName = .text:0x00000E90; // type:function size:0x78
AcOChest__getModelName = .text:0x00000F10; // type:function size:0xC
AcOChest__getOpenOrClose = .text:0x00000F20; // type:function size:0x34
fn_326_F60 = .text:0x00000F60; // type:function size:0x78
AcOChest__getSubtype = .text:0x00000FE0; // type:function size:0xC
AcOChest__hasBeenOpened = .text:0x00000FF0; // type:function size:0x8C
AcOChest__stateOpenUpdate2 = .text:0x00001080; // type:function size:0x39C
AcOChest__stateOpenEventEnter2 = .text:0x00001420; // type:function size:0x1C
fn_326_1440 = .text:0x00001440; // type:function size:0x1C
fn_326_1460 = .text:0x00001460; // type:function size:0x8
fn_326_1470 = .text:0x00001470; // type:function size:0x28
fn_326_1498 = .text:0x00001498; // type:function size:0x4
fn_326_14A0 = .text:0x000014A0; // type:function size:0x28
fn_326_14C8 = .text:0x000014C8; // type:function size:0x4
doInteraction__11dAcOChest_cFl = .text:0x00000BA0; // type:function size:0xE4
fn_326_C90__11dAcOChest_cFv = .text:0x00000C90; // type:function size:0x68
changeStateOpen__11dAcOChest_cFv = .text:0x00000D00; // type:function size:0x80
changeStateWait__11dAcOChest_cFv = .text:0x00000D80; // type:function size:0x5C
changeStateFail__11dAcOChest_cFv = .text:0x00000DE0; // type:function size:0x48
changeStateWait2__11dAcOChest_cFv = .text:0x00000E30; // type:function size:0x50
getName__11dAcOChest_cFv = .text:0x00000E80; // type:function size:0xC
getSubtypeName__11dAcOChest_cFv = .text:0x00000E90; // type:function size:0x78
getModelName__11dAcOChest_cFv = .text:0x00000F10; // type:function size:0xC
getOpenOrClose__11dAcOChest_cFUc = .text:0x00000F20; // type:function size:0x34
getDzbPlcName__11dAcOChest_cFv = .text:0x00000F60; // type:function size:0x78
getSubtype__11dAcOChest_cFv = .text:0x00000FE0; // type:function size:0xC
hasBeenOpened__11dAcOChest_cFv = .text:0x00000FF0; // type:function size:0x8C
stateOpenUpdate2__11dAcOChest_cFv = .text:0x00001080; // type:function size:0x39C
stateOpenEventEnter2__11dAcOChest_cFv = .text:0x00001420; // type:function size:0x1C
fn_326_1440__11dAcOChest_cFv = .text:0x00001440; // type:function size:0x1C
hasInsideModel__11dAcOChest_cFv = .text:0x00001460; // type:function size:0x8
fn_326_1470__11dAcOChest_cFv = .text:0x00001470; // type:function size:0x2C
fn_326_14A0__11dAcOChest_cFv = .text:0x000014A0; // type:function size:0x2C
__dt__11dAcOChest_cFv = .text:0x000014D0; // type:function size:0xFC
getStateID__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000015D0; // type:function size:0x10
build__27sFStateFct_c<11dAcOChest_c>FRC12sStateIDIf_c = .text:0x000015E0; // type:function size:0x60
@@ -78,36 +72,36 @@ isSameName__26sFStateID_c<11dAcOChest_c>CFPCc = .text:0x00001B40; // type:functi
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
lbl_326_rodata_0 = .rodata:0x00000000; // type:object size:0x3C data:float
lbl_326_rodata_3C = .rodata:0x0000003C; // type:object size:0x18 align:4 data:float
lbl_326_data_0 = .data:0x00000000; // type:object size:0xC data:4byte
lbl_326_data_C = .data:0x0000000C; // type:object size:0x4 data:4byte
lbl_326_data_10 = .data:0x00000010; // type:object size:0x10
lbl_326_data_20 = .data:0x00000020; // type:object size:0x4 data:4byte
lbl_326_data_24 = .data:0x00000024; // type:object size:0xC
lbl_326_data_30 = .data:0x00000030; // type:object size:0x8 data:4byte
AcOChest__OPEN_WARDROBE_INTERACTION = .data:0x00000038; // type:object size:0x30 align:4 data:float
lbl_326_rodata_0 = .rodata:0x00000000; // type:object size:0x3C scope:local data:float
lbl_326_rodata_3C = .rodata:0x0000003C; // type:object size:0x18 scope:local align:4 data:float
lbl_326_data_0 = .data:0x00000000; // type:object size:0xC scope:local data:4byte
lbl_326_data_C = .data:0x0000000C; // type:object size:0x4 scope:local data:4byte
lbl_326_data_10 = .data:0x00000010; // type:object size:0x10 scope:local
lbl_326_data_20 = .data:0x00000020; // type:object size:0x4 scope:local data:4byte
lbl_326_data_24 = .data:0x00000024; // type:object size:0xC scope:local
lbl_326_data_30 = .data:0x00000030; // type:object size:0x8 scope:local data:4byte
OPEN_WARDROBE_INTERACTION__11dAcOChest_c = .data:0x00000038; // type:object size:0x30 align:4 data:float
g_profile_OBJ_CHEST = .data:0x00000068; // type:object size:0x10
lbl_326_data_78 = .data:0x00000078; // type:object size:0x10
lbl_326_data_88 = .data:0x00000088; // type:object size:0x10
lbl_326_data_98 = .data:0x00000098; // type:object size:0x10
lbl_326_data_A8 = .data:0x000000A8; // type:object size:0x10
AcOChest__INSIDE_MODEL_NAMES = .data:0x000000B8; // type:object size:0x10
lbl_326_data_C8 = .data:0x000000C8; // type:object size:0xC data:string
lbl_326_data_D4 = .data:0x000000D4; // type:object size:0x1C
lbl_326_data_F0 = .data:0x000000F0; // type:object size:0x8
lbl_326_data_F8 = .data:0x000000F8; // type:object size:0x28
lbl_326_data_120 = .data:0x00000120; // type:object size:0xC
lbl_326_data_12C = .data:0x0000012C; // type:object size:0xC
AcOChest__vtable = .data:0x00000138; // type:object size:0x80
lbl_326_data_1B8 = .data:0x000001B8; // type:object size:0x30
lbl_326_data_1E8 = .data:0x000001E8; // type:object size:0x30
lbl_326_data_218 = .data:0x00000218; // type:object size:0x18
lbl_326_data_230 = .data:0x00000230; // type:object size:0x130
lbl_326_data_360 = .data:0x00000360; // type:object size:0x34
lbl_326_data_78 = .data:0x00000078; // type:object size:0x10 scope:local
lbl_326_data_88 = .data:0x00000088; // type:object size:0x10 scope:local
lbl_326_data_98 = .data:0x00000098; // type:object size:0x10 scope:local
lbl_326_data_A8 = .data:0x000000A8; // type:object size:0x10 scope:local
INSIDE_MODEL_NAMES__11dAcOChest_c = .data:0x000000B8; // type:object size:0x10
lbl_326_data_C8 = .data:0x000000C8; // type:object size:0xC scope:local data:string
lbl_326_data_D4 = .data:0x000000D4; // type:object size:0x1C scope:local
lbl_326_data_F0 = .data:0x000000F0; // type:object size:0x8 scope:local
lbl_326_data_F8 = .data:0x000000F8; // type:object size:0x28 scope:local
lbl_326_data_120 = .data:0x00000120; // type:object size:0xC scope:local
lbl_326_data_12C = .data:0x0000012C; // type:object size:0xC scope:local
__vt__11dAcOChest_c = .data:0x00000138; // type:object size:0x80
__vt__50sFStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c> = .data:0x000001B8; // type:object size:0x30
__vt__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000001E8; // type:object size:0x30
__vt__27sFStateFct_c<11dAcOChest_c> = .data:0x00000218; // type:object size:0x18
__vt__24sFState_c<11dAcOChest_c> = .data:0x00000230; // type:object size:0x130
__vt__26sFStateID_c<11dAcOChest_c> = .data:0x00000360; // type:object size:0x34
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_326_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte
AcOChest__STATE_WAIT = .bss:0x00000018; // type:object size:0x40 data:4byte
AcOChest__STATE_OPEN_EVENT = .bss:0x00000058; // type:object size:0x40 data:4byte
AcOChest__STATE_FAIL_EVENT = .bss:0x00000098; // type:object size:0x40 data:4byte
AcOChest__STATE_ORDER_OPEN_EVENT_AFTER = .bss:0x000000D8; // type:object size:0x30 data:4byte
StateID_Wait__11dAcOChest_c = .bss:0x00000018; // type:object size:0x30 data:4byte
StateID_OpenEvent__11dAcOChest_c = .bss:0x00000058; // type:object size:0x30 data:4byte
StateID_FailEvent__11dAcOChest_c = .bss:0x00000098; // type:object size:0x30 data:4byte
StateID_OrderOpenEventAfter__11dAcOChest_c = .bss:0x000000D8; // type:object size:0x30 data:4byte
@@ -8,21 +8,21 @@ __dt__28sFState_c<15dAcOcloudDive_c>Fv = .text:0x000001C0; // type:function size
__dt__31sFStateFct_c<15dAcOcloudDive_c>Fv = .text:0x00000220; // type:function size:0x6C
__dt__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000290; // type:function size:0xA0
__dt__54sFStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000330; // type:function size:0xA4
fn_350_3E0 = .text:0x000003E0; // type:function size:0x8
fn_350_3F0 = .text:0x000003F0; // type:function size:0x120
createHeap__15dAcOcloudDive_cFv = .text:0x000003E0; // type:function size:0x8
create__15dAcOcloudDive_cFv = .text:0x000003F0; // type:function size:0x120
changeState__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000510; // type:function size:0x10
fn_350_520 = .text:0x00000520; // type:function size:0x8
fn_350_530 = .text:0x00000530; // type:function size:0xB8
doDelete__15dAcOcloudDive_cFv = .text:0x00000520; // type:function size:0x8
actorExecute__15dAcOcloudDive_cFv = .text:0x00000530; // type:function size:0xB8
executeState__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000005F0; // type:function size:0x10
fn_350_600 = .text:0x00000600; // type:function size:0x8
draw__15dAcOcloudDive_cFv = .text:0x00000600; // type:function size:0x8
initializeState_Wait__15dAcOcloudDive_cFv = .text:0x00000610; // type:function size:0x4
executeState_Wait__15dAcOcloudDive_cFv = .text:0x00000620; // type:function size:0x8C
finalizeState_Wait__15dAcOcloudDive_cFv = .text:0x000006B0; // type:function size:0x4
initializeState_Dead__15dAcOcloudDive_cFv = .text:0x000006C0; // type:function size:0x4
executeState_Dead__15dAcOcloudDive_cFv = .text:0x000006D0; // type:function size:0x4
finalizeState_Dead__15dAcOcloudDive_cFv = .text:0x000006E0; // type:function size:0x4
fn_350_6F0 = .text:0x000006F0; // type:function size:0x6C
fn_350_760 = .text:0x00000760; // type:function size:0xDC
fn_350_6F0__15dAcOcloudDive_cFv = .text:0x000006F0; // type:function size:0x6C
fn_350_760__15dAcOcloudDive_cFv = .text:0x00000760; // type:function size:0xDC
__dt__15dAcOcloudDive_cFv = .text:0x00000840; // type:function size:0xD8
getStateID__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000920; // type:function size:0x10
build__31sFStateFct_c<15dAcOcloudDive_c>FRC12sStateIDIf_c = .text:0x00000930; // type:function size:0x60
@@ -45,19 +45,19 @@ isSameName__30sFStateID_c<15dAcOcloudDive_c>CFPCc = .text:0x00000D10; // type:fu
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
lbl_350_rodata_0 = .rodata:0x00000000; // type:object size:0x20 data:float
lbl_350_rodata_20 = .rodata:0x00000020; // type:object size:0x4 align:4 data:float
lbl_350_rodata_24 = .rodata:0x00000024; // type:object size:0x4 align:4 data:float
lbl_350_rodata_0 = .rodata:0x00000000; // type:object size:0x20 scope:local data:float
lbl_350_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 data:float
lbl_350_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local align:4 data:float
g_profile_OBJ_CLOUD_DIVE = .data:0x00000000; // type:object size:0x10 data:4byte
lbl_350_data_10 = .data:0x00000010; // type:object size:0x30
lbl_350_data_40 = .data:0x00000040; // type:object size:0x20
lbl_350_data_60 = .data:0x00000060; // type:object size:0x80
lbl_350_data_E0 = .data:0x000000E0; // type:object size:0x30
lbl_350_data_110 = .data:0x00000110; // type:object size:0x30
lbl_350_data_140 = .data:0x00000140; // type:object size:0x18
lbl_350_data_158 = .data:0x00000158; // type:object size:0xA0
lbl_350_data_1F8 = .data:0x000001F8; // type:object size:0x34
lbl_350_data_10 = .data:0x00000010; // type:object size:0x30 scope:local
lbl_350_data_40 = .data:0x00000040; // type:object size:0x20 scope:local
__vt__15dAcOcloudDive_c = .data:0x00000060; // type:object size:0x80
__vt__54sFStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c> = .data:0x000000E0; // type:object size:0x30
__vt__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000110; // type:object size:0x30
lbl_350_data_140 = .data:0x00000140; // type:object size:0x18 scope:local
lbl_350_data_158 = .data:0x00000158; // type:object size:0xA0 scope:local
__vt__30sFStateID_c<15dAcOcloudDive_c> = .data:0x000001F8; // type:object size:0x34
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_350_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte
lbl_350_bss_18 = .bss:0x00000018; // type:object size:0x40 data:4byte
lbl_350_bss_58 = .bss:0x00000058; // type:object size:0x30 data:4byte
lbl_350_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local data:4byte
lbl_350_bss_18 = .bss:0x00000018; // type:object size:0x40 scope:local data:4byte
lbl_350_bss_58 = .bss:0x00000058; // type:object size:0x30 scope:local data:4byte
+17 -17
View File
@@ -8,13 +8,13 @@ __dt__24sFState_c<11dAcODecoB_c>Fv = .text:0x000001B0; // type:function size:0x5
__dt__27sFStateFct_c<11dAcODecoB_c>Fv = .text:0x00000210; // type:function size:0x6C
__dt__80sStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000280; // type:function size:0xA0
__dt__50sFStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000320; // type:function size:0xA4
fn_611_3D0 = .text:0x000003D0; // type:function size:0x6C
fn_611_440 = .text:0x00000440; // type:function size:0xCC
createHeap__11dAcODecoB_cFv = .text:0x000003D0; // type:function size:0x6C
create__11dAcODecoB_cFv = .text:0x00000440; // type:function size:0xCC
changeState__80sStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000510; // type:function size:0x10
fn_611_520 = .text:0x00000520; // type:function size:0x8
fn_611_530 = .text:0x00000530; // type:function size:0x74
doDelete__11dAcODecoB_cFv = .text:0x00000520; // type:function size:0x8
actorExecute__11dAcODecoB_cFv = .text:0x00000530; // type:function size:0x74
executeState__80sStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000005B0; // type:function size:0x10
fn_611_5C0 = .text:0x000005C0; // type:function size:0x28
draw__11dAcODecoB_cFv = .text:0x000005C0; // type:function size:0x28
initializeState_Wait__11dAcODecoB_cFv = .text:0x000005F0; // type:function size:0x4
executeState_Wait__11dAcODecoB_cFv = .text:0x00000600; // type:function size:0x14C
finalizeState_Wait__11dAcODecoB_cFv = .text:0x00000750; // type:function size:0x4
@@ -40,17 +40,17 @@ isSameName__26sFStateID_c<11dAcODecoB_c>CFPCc = .text:0x00000B70; // type:functi
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
lbl_611_rodata_0 = .rodata:0x00000000; // type:object size:0x34 data:float
lbl_611_rodata_0 = .rodata:0x00000000; // type:object size:0x34 scope:local data:float
g_profile_OBJ_DECOB = .data:0x00000000; // type:object size:0x10 data:4byte
lbl_611_data_10 = .data:0x00000010; // type:object size:0x8
lbl_611_data_18 = .data:0x00000018; // type:object size:0x1C
lbl_611_data_34 = .data:0x00000034; // type:object size:0x4 align:4 data:float
lbl_611_data_38 = .data:0x00000038; // type:object size:0x80
lbl_611_data_B8 = .data:0x000000B8; // type:object size:0x30
lbl_611_data_E8 = .data:0x000000E8; // type:object size:0x30
lbl_611_data_118 = .data:0x00000118; // type:object size:0x18
lbl_611_data_130 = .data:0x00000130; // type:object size:0x58
lbl_611_data_188 = .data:0x00000188; // type:object size:0x34
lbl_611_data_10 = .data:0x00000010; // type:object size:0x8 scope:local
lbl_611_data_18 = .data:0x00000018; // type:object size:0x1C scope:local
lbl_611_data_34 = .data:0x00000034; // type:object size:0x4 scope:local align:4 data:float
__vt__11dAcODecoB_c = .data:0x00000038; // type:object size:0x80
__vt__50sFStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c> = .data:0x000000B8; // type:object size:0x30
__vt__80sStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000000E8; // type:object size:0x30
lbl_611_data_118 = .data:0x00000118; // type:object size:0x18 scope:local
lbl_611_data_130 = .data:0x00000130; // type:object size:0x58 scope:local
__vt__26sFStateID_c<11dAcODecoB_c> = .data:0x00000188; // type:object size:0x34
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_611_bss_8 = .bss:0x00000008; // type:object size:0x10
lbl_611_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte
lbl_611_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local
lbl_611_bss_18 = .bss:0x00000018; // type:object size:0x30 scope:local data:4byte
@@ -2,16 +2,16 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x00000030; // type:function size:0x2C scope:global
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
dAcOdesertDebris_c_classInit__Fv = .text:0x00000070; // type:function size:0x64
AcOdesertDebris__initModels = .text:0x000000E0; // type:function size:0x114
AcOdesertDebris__init = .text:0x00000200; // type:function size:0xF0
AcOdesertDebris__destroy = .text:0x000002F0; // type:function size:0x38
AcOdesertDebris__update = .text:0x00000330; // type:function size:0x40
AcOdesertDebris__draw = .text:0x00000370; // type:function size:0x28
AcOdesertDebris__checkStoryFlag = .text:0x000003A0; // type:function size:0x5C
createHeap__18dAcOdesertDebris_cFv = .text:0x000000E0; // type:function size:0x114
create__18dAcOdesertDebris_cFv = .text:0x00000200; // type:function size:0xF0
doDelete__18dAcOdesertDebris_cFv = .text:0x000002F0; // type:function size:0x38
actorExecute__18dAcOdesertDebris_cFv = .text:0x00000330; // type:function size:0x40
draw__18dAcOdesertDebris_cFv = .text:0x00000370; // type:function size:0x28
checkStoryFlag__18dAcOdesertDebris_cCFv = .text:0x000003A0; // type:function size:0x5C
__dt__18dAcOdesertDebris_cFv = .text:0x00000400; // type:function size:0x74
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
lbl_428_rodata_0 = .rodata:0x00000000; // type:object size:0x4 data:float
lbl_428_rodata_0 = .rodata:0x00000000; // type:object size:0x4 scope:local data:float
g_profile_OBJ_DESERT_DEBRIS = .data:0x00000000; // type:object size:0x70
lbl_428_data_70 = .data:0x00000070; // type:object size:0x20 data:string
AcOdesertDebris__vtable = .data:0x00000090; // type:object size:0x80
lbl_428_data_70 = .data:0x00000070; // type:object size:0x20 scope:local data:string
AcOdesertDebris__vtable = .data:0x00000090; // type:object size:0x80 scope:local
+17 -17
View File
@@ -8,13 +8,13 @@ __dt__23sFState_c<10dAcOhole_c>Fv = .text:0x000001C0; // type:function size:0x58
__dt__26sFStateFct_c<10dAcOhole_c>Fv = .text:0x00000220; // type:function size:0x6C
__dt__79sStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000290; // type:function size:0xA0
__dt__49sFStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000330; // type:function size:0xA4
fn_198_3E0 = .text:0x000003E0; // type:function size:0xA4
fn_198_490 = .text:0x00000490; // type:function size:0x128
createHeap__10dAcOhole_cFv = .text:0x000003E0; // type:function size:0xA4
create__10dAcOhole_cFv = .text:0x00000490; // type:function size:0x128
changeState__79sStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x000005C0; // type:function size:0x10
fn_198_5D0 = .text:0x000005D0; // type:function size:0x8
fn_198_5E0 = .text:0x000005E0; // type:function size:0x30
doDelete__10dAcOhole_cFv = .text:0x000005D0; // type:function size:0x8
actorExecute__10dAcOhole_cFv = .text:0x000005E0; // type:function size:0x30
executeState__79sStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000610; // type:function size:0x10
fn_198_620 = .text:0x00000620; // type:function size:0x28
draw__10dAcOhole_cFv = .text:0x00000620; // type:function size:0x28
initializeState_Wait__10dAcOhole_cFv = .text:0x00000650; // type:function size:0x4
executeState_Wait__10dAcOhole_cFv = .text:0x00000660; // type:function size:0x4
finalizeState_Wait__10dAcOhole_cFv = .text:0x00000670; // type:function size:0x4
@@ -40,17 +40,17 @@ isSameName__25sFStateID_c<10dAcOhole_c>CFPCc = .text:0x00000AB0; // type:functio
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
lbl_198_rodata_0 = .rodata:0x00000000; // type:object size:0xC data:float
lbl_198_rodata_0 = .rodata:0x00000000; // type:object size:0xC scope:local data:float
g_profile_OBJ_HOLE = .data:0x00000000; // type:object size:0x10 data:4byte
lbl_198_data_10 = .data:0x00000010; // type:object size:0x4
lbl_198_data_14 = .data:0x00000014; // type:object size:0x14
lbl_198_data_28 = .data:0x00000028; // type:object size:0x18 data:string
lbl_198_data_40 = .data:0x00000040; // type:object size:0x80
lbl_198_data_C0 = .data:0x000000C0; // type:object size:0x30
lbl_198_data_F0 = .data:0x000000F0; // type:object size:0x30
lbl_198_data_120 = .data:0x00000120; // type:object size:0x18
lbl_198_data_138 = .data:0x00000138; // type:object size:0x58
lbl_198_data_190 = .data:0x00000190; // type:object size:0x34
lbl_198_data_10 = .data:0x00000010; // type:object size:0x4 scope:local
lbl_198_data_14 = .data:0x00000014; // type:object size:0x14 scope:local
lbl_198_data_28 = .data:0x00000028; // type:object size:0x18 scope:local data:string
__vt__10dAcOhole_c = .data:0x00000040; // type:object size:0x80
__vt__49sFStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c> = .data:0x000000C0; // type:object size:0x30
__vt__79sStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000000F0; // type:object size:0x30
lbl_198_data_120 = .data:0x00000120; // type:object size:0x18 scope:local
lbl_198_data_138 = .data:0x00000138; // type:object size:0x58 scope:local
__vt__25sFStateID_c<10dAcOhole_c> = .data:0x00000190; // type:object size:0x34
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_198_bss_8 = .bss:0x00000008; // type:object size:0x10
lbl_198_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte
lbl_198_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local
lbl_198_bss_18 = .bss:0x00000018; // type:object size:0x30 scope:local data:4byte
@@ -8,16 +8,16 @@ __dt__27sFState_c<14dAcOOctGrass_c>Fv = .text:0x000001B0; // type:function size:
__dt__30sFStateFct_c<14dAcOOctGrass_c>Fv = .text:0x00000210; // type:function size:0x6C
__dt__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000280; // type:function size:0xA0
__dt__53sFStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000320; // type:function size:0xA4
AcOOctGrass__initModels = .text:0x000003D0; // type:function size:0xAC
AcOOctGrass__init = .text:0x00000480; // type:function size:0x130
createHeap__14dAcOOctGrass_cFv = .text:0x000003D0; // type:function size:0xAC
create__14dAcOOctGrass_cFv = .text:0x00000480; // type:function size:0x130
changeState__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x000005B0; // type:function size:0x10
fn_289_5C0 = .text:0x000005C0; // type:function size:0x8
fn_289_5D0 = .text:0x000005D0; // type:function size:0x8
AcOOctGrass__draw = .text:0x000005E0; // type:function size:0x28
doDelete__14dAcOOctGrass_cFv = .text:0x000005C0; // type:function size:0x8
actorExecute__14dAcOOctGrass_cFv = .text:0x000005D0; // type:function size:0x8
draw__14dAcOOctGrass_cFv = .text:0x000005E0; // type:function size:0x28
initializeState_Wait__14dAcOOctGrass_cFv = .text:0x00000610; // type:function size:0x4
executeState_Wait__14dAcOOctGrass_cFv = .text:0x00000620; // type:function size:0x4
finalizeState_Wait__14dAcOOctGrass_cFv = .text:0x00000630; // type:function size:0x4
AcOOctGrass__spawnOcGrsL = .text:0x00000640; // type:function size:0x98
spawnOcGrsL__14dAcOOctGrass_cFv = .text:0x00000640; // type:function size:0x98
__dt__14dAcOOctGrass_cFv = .text:0x000006E0; // type:function size:0xCC
executeState__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000007B0; // type:function size:0x10
getStateID__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000007C0; // type:function size:0x10
@@ -41,26 +41,37 @@ isSameName__29sFStateID_c<14dAcOOctGrass_c>CFPCc = .text:0x00000B00; // type:fun
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
lbl_289_rodata_0 = .rodata:0x00000000; // type:object size:0x1C data:float
lbl_289_rodata_0 = .rodata:0x00000000; // type:object size:0x4 scope:local align:4 data:float
lbl_289_rodata_4 = .rodata:0x00000004; // type:object size:0x4 scope:local
lbl_289_rodata_8 = .rodata:0x00000008; // type:object size:0x4 scope:local
lbl_289_rodata_C = .rodata:0x0000000C; // type:object size:0x4 scope:local
lbl_289_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
lbl_289_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local
lbl_289_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local
g_profile_OBJ_OCT_GRASS = .data:0x00000000; // type:object size:0x10 data:4byte
lbl_289_data_10 = .data:0x00000010; // type:object size:0xC
lbl_289_data_1C = .data:0x0000001C; // type:object size:0x10
lbl_289_data_2C = .data:0x0000002C; // type:object size:0xC
lbl_289_data_38 = .data:0x00000038; // type:object size:0x10
GRASS_OARCS = .data:0x00000048; // type:object size:0x10
lbl_289_data_58 = .data:0x00000058; // type:object size:0x10
lbl_289_data_68 = .data:0x00000068; // type:object size:0x10
lbl_289_data_78 = .data:0x00000078; // type:object size:0x10
lbl_289_data_88 = .data:0x00000088; // type:object size:0x10
GRASS_CUT_MODELS = .data:0x00000098; // type:object size:0x10
lbl_289_data_A8 = .data:0x000000A8; // type:object size:0x1C data:string
lbl_289_data_C4 = .data:0x000000C4; // type:object size:0xC
AcOOctGrass__vtable = .data:0x000000D0; // type:object size:0x80
lbl_289_data_150 = .data:0x00000150; // type:object size:0x30
lbl_289_data_180 = .data:0x00000180; // type:object size:0x30
lbl_289_data_1B0 = .data:0x000001B0; // type:object size:0x18
lbl_289_data_1C8 = .data:0x000001C8; // type:object size:0x5C
lbl_289_data_224 = .data:0x00000224; // type:object size:0x34
lbl_289_data_10 = .data:0x00000010; // type:object size:0xC scope:local
lbl_289_data_1C = .data:0x0000001C; // type:object size:0x10 scope:local
lbl_289_data_2C = .data:0x0000002C; // type:object size:0xC scope:local
lbl_289_data_38 = .data:0x00000038; // type:object size:0x10 scope:local
GRASS_OARCS__14dAcOOctGrass_c = .data:0x00000048; // type:object size:0x10
lbl_289_data_58 = .data:0x00000058; // type:object size:0x10 scope:local
lbl_289_data_68 = .data:0x00000068; // type:object size:0x10 scope:local
lbl_289_data_78 = .data:0x00000078; // type:object size:0x10 scope:local
lbl_289_data_88 = .data:0x00000088; // type:object size:0x10 scope:local
GRASS_CUT_MODELS__14dAcOOctGrass_c = .data:0x00000098; // type:object size:0x10
lbl_289_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local data:string
lbl_289_data_C4 = .data:0x000000C4; // type:object size:0xC scope:local
__vt__14dAcOOctGrass_c = .data:0x000000D0; // type:object size:0x80
__vt__53sFStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c> = .data:0x00000150; // type:object size:0x30
__vt__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000180; // type:object size:0x30
lbl_289_data_1B0 = .data:0x000001B0; // type:object size:0x18 scope:local
lbl_289_data_1C8 = .data:0x000001C8; // type:object size:0x18 scope:local
lbl_289_data_1E0 = .data:0x000001E0; // type:object size:0xC scope:local
lbl_289_data_1EC = .data:0x000001EC; // type:object size:0xC scope:local
lbl_289_data_1F8 = .data:0x000001F8; // type:object size:0xC scope:local
lbl_289_data_204 = .data:0x00000204; // type:object size:0x4 data:string
lbl_289_data_208 = .data:0x00000208; // type:object size:0x1C scope:local
__vt__29sFStateID_c<14dAcOOctGrass_c> = .data:0x00000224; // type:object size:0x34
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_289_bss_8 = .bss:0x00000008; // type:object size:0x10
AcOOctGrass__StateID_Wait = .bss:0x00000018; // type:object size:0x30 data:4byte
lbl_289_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local
AcOOctGrass__StateID_Wait = .bss:0x00000018; // type:object size:0x30 scope:local data:4byte
@@ -8,12 +8,12 @@ __dt__31sFState_c<18dAcOStoppingRope_c>Fv = .text:0x000001C0; // type:function s
__dt__34sFStateFct_c<18dAcOStoppingRope_c>Fv = .text:0x00000220; // type:function size:0x6C
__dt__87sStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000290; // type:function size:0xA0
__dt__57sFStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000330; // type:function size:0xA4
fn_295_3E0 = .text:0x000003E0; // type:function size:0xDC
fn_295_4C0 = .text:0x000004C0; // type:function size:0x8
fn_295_4D0 = .text:0x000004D0; // type:function size:0x8
fn_295_4E0 = .text:0x000004E0; // type:function size:0x30
createHeap__18dAcOStoppingRope_cFv = .text:0x000003E0; // type:function size:0xDC
create__18dAcOStoppingRope_cFv = .text:0x000004C0; // type:function size:0x8
doDelete__18dAcOStoppingRope_cFv = .text:0x000004D0; // type:function size:0x8
actorExecute__18dAcOStoppingRope_cFv = .text:0x000004E0; // type:function size:0x30
executeState__87sStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000510; // type:function size:0x10
fn_295_520 = .text:0x00000520; // type:function size:0x28
draw__18dAcOStoppingRope_cFv = .text:0x00000520; // type:function size:0x28
initializeState_Wait__18dAcOStoppingRope_cFv = .text:0x00000550; // type:function size:0x4
executeState_Wait__18dAcOStoppingRope_cFv = .text:0x00000560; // type:function size:0x4
finalizeState_Wait__18dAcOStoppingRope_cFv = .text:0x00000570; // type:function size:0x4
@@ -44,11 +44,11 @@ _ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
g_profile_OBJ_STOPPING_ROPE = .data:0x00000000; // type:object size:0x40 data:4byte
lbl_295_section4_40 = .data:0x00000040; // type:object size:0x80
lbl_295_section4_C0 = .data:0x000000C0; // type:object size:0x30
lbl_295_section4_F0 = .data:0x000000F0; // type:object size:0x30
lbl_295_section4_120 = .data:0x00000120; // type:object size:0x18
lbl_295_section4_138 = .data:0x00000138; // type:object size:0xAC
lbl_295_section4_1E4 = .data:0x000001E4; // type:object size:0x34
__vt__18dAcOStoppingRope_c = .data:0x00000040; // type:object size:0x80
__vt__57sFStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c> = .data:0x000000C0; // type:object size:0x30
__vt__87sStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000000F0; // type:object size:0x30
lbl_295_section4_120 = .data:0x00000120; // type:object size:0x18 scope:local
lbl_295_section4_138 = .data:0x00000138; // type:object size:0xAC scope:local
__vt__33sFStateID_c<18dAcOStoppingRope_c> = .data:0x000001E4; // type:object size:0x34
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_295_bss_8 = .bss:0x00000008; // type:object size:0x80 data:4byte
lbl_295_bss_8 = .bss:0x00000008; // type:object size:0x80 scope:local data:4byte
@@ -2,17 +2,17 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x00000030; // type:function size:0x2C scope:global
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
dAcOunderCloud_c_classInit__Fv = .text:0x00000070; // type:function size:0xA0
fn_411_110 = .text:0x00000110; // type:function size:0xE8
fn_411_200 = .text:0x00000200; // type:function size:0xE0
fn_411_2E0 = .text:0x000002E0; // type:function size:0x8
fn_411_2F0 = .text:0x000002F0; // type:function size:0x30
fn_411_320 = .text:0x00000320; // type:function size:0x12C
fn_411_450 = .text:0x00000450; // type:function size:0x78
createHeap__16dAcOunderCloud_cFv = .text:0x00000110; // type:function size:0xE8
create__16dAcOunderCloud_cFv = .text:0x00000200; // type:function size:0xE0
doDelete__16dAcOunderCloud_cFv = .text:0x000002E0; // type:function size:0x8
actorExecute__16dAcOunderCloud_cFv = .text:0x000002F0; // type:function size:0x30
actorExecuteInEvent__16dAcOunderCloud_cFv = .text:0x00000320; // type:function size:0x12C
draw__16dAcOunderCloud_cFv = .text:0x00000450; // type:function size:0x78
__dt__16dAcOunderCloud_cFv = .text:0x000004D0; // type:function size:0x80
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
lbl_411_rodata_0 = .rodata:0x00000000; // type:object size:0x14 data:float
lbl_411_rodata_0 = .rodata:0x00000000; // type:object size:0x14 scope:local data:float
g_profile_OBJ_UNDER_CLOUD = .data:0x00000000; // type:object size:0x10
lbl_411_data_10 = .data:0x00000010; // type:object size:0x10
lbl_411_data_20 = .data:0x00000020; // type:object size:0x20
lbl_411_data_40 = .data:0x00000040; // type:object size:0x80
lbl_411_data_10 = .data:0x00000010; // type:object size:0x10 scope:local
lbl_411_data_20 = .data:0x00000020; // type:object size:0x20 scope:local
__vt__16dAcOunderCloud_c = .data:0x00000040; // type:object size:0x80
+1285 -58
View File
File diff suppressed because it is too large Load Diff
+1936 -1858
View File
File diff suppressed because it is too large Load Diff
+341 -40
View File
@@ -456,7 +456,7 @@ config.libs = [
Object(NonMatching, "d/lyt/d_lyt_draw_mark.cpp"),
Object(Matching, "d/lyt/d_textbox.cpp"),
Object(Matching, "d/lyt/d_window.cpp"),
Object(Matching, "d/d_textunk.cpp"),
Object(Matching, "d/d_lyt_hio.cpp"),
Object(NonMatching, "d/d_textwindow_unk.cpp"),
Object(Matching, "d/d_tag_processor.cpp"),
Object(NonMatching, "toBeSorted/time_area_mgr.cpp"),
@@ -473,7 +473,7 @@ config.libs = [
Object(NonMatching, "toBeSorted/special_item_drop_mgr.cpp"),
Object(Matching, "toBeSorted/d_particle.cpp"),
Object(Matching, "d/lyt/meter/d_lyt_meter.cpp"),
Object(NonMatching, "d/lyt/meter/d_lyt_meter_unk.cpp"),
Object(NonMatching, "d/lyt/meter/d_lyt_meter_hio.cpp"),
Object(Matching, "d/lyt/meter/d_lyt_meter_a_btn.cpp"),
Object(Matching, "d/lyt/meter/d_lyt_meter_z_btn.cpp"),
Object(Matching, "d/lyt/meter/d_lyt_meter_key.cpp"),
@@ -794,6 +794,7 @@ config.libs = [
Object(Matching, "m/m_heap.cpp"),
Object(NonMatching, "m/m_mtx.cpp"),
Object(Matching, "m/m_pad.cpp"),
# probably two files due to sdata2 float duplication and gap
Object(NonMatching, "m/m_quat.cpp"),
Object(NonMatching, "m/m_thread.cpp"),
Object(NonMatching, "m/m_vec.cpp"),
@@ -828,7 +829,6 @@ config.libs = [
],
},
{
# TODO: Split up further
"lib": "hbm",
# no idea
"mw_version": "Wii/1.0",
@@ -1311,34 +1311,206 @@ config.libs = [
"progress_category": "sdk",
"host": False,
"objects": [
Object(NonMatching, "RVL_SDK/thp/THPDec.c"),
Object(NonMatching, "RVL_SDK/thp/THPAudio.c"),
Object(NonMatching, "RVL_SDK/kpr/KPR.c"),
Object(NonMatching, "RVL_SDK/ai/AI.c"),
Object(NonMatching, "RVL_SDK/arc/ARC.c"),
Object(NonMatching, "RVL_SDK/ax/AX.c"),
Object(NonMatching, "RVL_SDK/os/OS.c"),
Object(NonMatching, "RVL_SDK/exi/EXI.c"),
Object(NonMatching, "RVL_SDK/si/SI.c"),
Object(NonMatching, "RVL_SDK/vi/VI.c"),
Object(NonMatching, "RVL_SDK/mtx/MTX.c"),
Object(NonMatching, "RVL_SDK/gx/GX.c"),
Object(NonMatching, "RVL_SDK/dvd/DVD.c"),
Object(NonMatching, "RVL_SDK/mem/MEM.c"),
Object(NonMatching, "RVL_SDK/dsp/DSP.c"),
Object(NonMatching, "RVL_SDK/es/ES.c"),
Object(NonMatching, "RVL_SDK/cx/CX.c"),
Object(NonMatching, "RVL_SDK/nand/NAND.c"),
Object(NonMatching, "RVL_SDK/sc/SC.c"),
Object(NonMatching, "RVL_SDK/wpad/WPAD.c"),
Object(NonMatching, "RVL_SDK/kpad/KPAD.c"),
Object(NonMatching, "RVL_SDK/usb/USB.c"),
Object(NonMatching, "RVL_SDK/bte/BTE.c"),
Object(NonMatching, "RVL_SDK/ipc/IPC.c"),
Object(NonMatching, "RVL_SDK/fs/FS.c"),
Object(NonMatching, "RVL_SDK/euart/EUART.c"),
Object(NonMatching, "RVL_SDK/wenc/WENC.c"),
Object(NonMatching, "RVL_SDK/tpl/TPL.c"),
Object(NonMatching, "revolution/thp/THPDec.c"),
Object(NonMatching, "revolution/thp/THPAudio.c"),
Object(NonMatching, "revolution/kpr/kpr_lib.c"),
Object(NonMatching, "revolution/ai/ai.c"),
Object(NonMatching, "revolution/arc/arc.c"),
Object(NonMatching, "revolution/ax/AX.c"),
Object(NonMatching, "revolution/ax/AXAlloc.c"),
Object(NonMatching, "revolution/ax/AXAux.c"),
Object(NonMatching, "revolution/ax/AXCL.c"),
Object(NonMatching, "revolution/ax/AXOut.c"),
Object(NonMatching, "revolution/ax/AXSPB.c"),
Object(NonMatching, "revolution/ax/AXVPB.c"),
Object(NonMatching, "revolution/ax/AXComp.c"),
Object(NonMatching, "revolution/ax/DSPCode.c"),
Object(NonMatching, "revolution/ax/AXProf.c"),
Object(NonMatching, "revolution/axfx/AXFXReverbHi.c"),
Object(NonMatching, "revolution/axfx/AXFXReverbHiExp.c"),
Object(NonMatching, "revolution/axfx/AXFXReverbStdExp.c"),
Object(NonMatching, "revolution/axfx/AXFXReverbStdExpDpl2.c"),
Object(NonMatching, "revolution/axfx/AXFXHooks.c"),
Object(NonMatching, "revolution/base/PPCArch.c"),
Object(NonMatching, "revolution/os/OS.c"),
Object(NonMatching, "revolution/os/OSAlarm.c"),
Object(NonMatching, "revolution/os/OSAlloc.c"),
Object(NonMatching, "revolution/os/OSArena.c"),
Object(NonMatching, "revolution/os/OSAudioSystem.c"),
Object(NonMatching, "revolution/os/OSCache.c"),
Object(NonMatching, "revolution/os/OSContext.c"),
Object(NonMatching, "revolution/os/OSError.c"),
Object(NonMatching, "revolution/os/OSExec.c"),
Object(NonMatching, "revolution/os/OSFatal.c"),
Object(NonMatching, "revolution/os/OSFont.c"),
Object(NonMatching, "revolution/os/OSInterrupt.c"),
Object(NonMatching, "revolution/os/OSLink.c"),
Object(NonMatching, "revolution/os/OSMessage.c"),
Object(NonMatching, "revolution/os/OSMemory.c"),
Object(NonMatching, "revolution/os/OSMutex.c"),
Object(NonMatching, "revolution/os/OSReboot.c"),
Object(NonMatching, "revolution/os/OSReset.c"),
Object(NonMatching, "revolution/os/OSRtc.c"),
Object(NonMatching, "revolution/os/OSSync.c"),
Object(NonMatching, "revolution/os/OSThread.c"),
Object(NonMatching, "revolution/os/OSTime.c"),
Object(NonMatching, "revolution/os/OSUtf.c"),
Object(NonMatching, "revolution/os/OSIpc.c"),
Object(NonMatching, "revolution/os/OSStateTM.c"),
Object(NonMatching, "revolution/os/__start.c"),
Object(NonMatching, "revolution/os/OSPlayRecord.c"),
Object(NonMatching, "revolution/os/OSStateFlags.c"),
Object(NonMatching, "revolution/os/OSNet.c"),
Object(NonMatching, "revolution/os/OSNandbootInfo.c"),
Object(NonMatching, "revolution/os/OSPlayTime.c"),
Object(NonMatching, "revolution/os/OSCrc.c"),
Object(NonMatching, "revolution/os/OSLaunch.c"),
Object(NonMatching, "revolution/os/__ppc_eabi_init.c"),
Object(NonMatching, "revolution/exi/EXIBios.c"),
Object(NonMatching, "revolution/exi/EXIUart.c"),
Object(NonMatching, "revolution/exi/EXICommon.c"),
Object(NonMatching, "revolution/si/SIBios.c"),
Object(NonMatching, "revolution/si/SISamplingRate.c"),
Object(NonMatching, "revolution/vi/vi.c"),
Object(NonMatching, "revolution/vi/i2c.c"),
Object(NonMatching, "revolution/vi/vi3in1.c"),
Object(NonMatching, "revolution/mtx/mtx.c"),
Object(NonMatching, "revolution/mtx/mtxvec.c"),
Object(NonMatching, "revolution/mtx/mtx44.c"),
Object(NonMatching, "revolution/mtx/vec.c"),
Object(NonMatching, "revolution/mtx/quat.c"),
Object(NonMatching, "revolution/gx/GXInit.c"),
Object(NonMatching, "revolution/gx/GXFifo.c"),
Object(NonMatching, "revolution/gx/GXAttr.c"),
Object(NonMatching, "revolution/gx/GXMisc.c"),
Object(NonMatching, "revolution/gx/GXGeometry.c"),
Object(NonMatching, "revolution/gx/GXFrameBuf.c"),
Object(NonMatching, "revolution/gx/GXLight.c"),
Object(NonMatching, "revolution/gx/GXTexture.c"),
Object(NonMatching, "revolution/gx/GXBump.c"),
Object(NonMatching, "revolution/gx/GXTev.c"),
Object(NonMatching, "revolution/gx/GXPixel.c"),
Object(NonMatching, "revolution/gx/GXDraw.c"),
Object(NonMatching, "revolution/gx/GXDisplayList.c"),
Object(NonMatching, "revolution/gx/GXTransform.c"),
Object(NonMatching, "revolution/gx/GXPerf.c"),
Object(NonMatching, "revolution/dvd/dvdfs.c"),
Object(NonMatching, "revolution/dvd/dvd.c"),
Object(NonMatching, "revolution/dvd/dvdqueue.c"),
Object(NonMatching, "revolution/dvd/dvderror.c"),
Object(NonMatching, "revolution/dvd/dvdidutils.c"),
Object(NonMatching, "revolution/dvd/dvdFatal.c"),
Object(NonMatching, "revolution/dvd/dvdDeviceError.c"),
Object(NonMatching, "revolution/dvd/dvd_broadway.c"),
Object(NonMatching, "revolution/mem/mem_heapCommon.c"),
Object(NonMatching, "revolution/mem/mem_expHeap.c"),
Object(NonMatching, "revolution/mem/mem_frameHeap.c"),
Object(NonMatching, "revolution/mem/mem_allocator.c"),
Object(NonMatching, "revolution/mem/mem_list.c"),
Object(NonMatching, "revolution/dsp/dsp.c"),
Object(NonMatching, "revolution/dsp/dsp_debug.c"),
Object(NonMatching, "revolution/dsp/dsp_task.c"),
Object(NonMatching, "revolution/esp/esp.c"),
Object(NonMatching, "revolution/cx/CXStreamingUncompression.c"),
Object(NonMatching, "revolution/cx/CXUncompression.c"),
Object(NonMatching, "revolution/cx/CXSecureUncompression.c"),
Object(NonMatching, "revolution/nand/nand.c"),
Object(NonMatching, "revolution/nand/NANDOpenClose.c"),
Object(NonMatching, "revolution/nand/NANDCore.c"),
Object(NonMatching, "revolution/nand/NANDCheck.c"),
Object(NonMatching, "revolution/nand/NANDLogging.c"),
Object(NonMatching, "revolution/nand/NANDErrorMessage.c"),
Object(NonMatching, "revolution/sc/scsystem.c"),
Object(NonMatching, "revolution/sc/scapi.c"),
Object(NonMatching, "revolution/sc/scapi_prdinfo.c"),
Object(NonMatching, "revolution/pad/Pad.c"),
Object(NonMatching, "revolution/wpad/WPAD.c"),
Object(NonMatching, "revolution/wpad/WPADHIDParser.c"),
Object(NonMatching, "revolution/wpad/WPADEncrypt.c"),
Object(NonMatching, "revolution/wpad/WPADMem.c"),
Object(NonMatching, "revolution/wpad/lint.c"),
Object(NonMatching, "revolution/wpad/WUD.c"),
Object(NonMatching, "revolution/wpad/WUDHIDHost.c"),
Object(NonMatching, "revolution/kpad/KPAD.c"),
Object(NonMatching, "revolution/kpad/KMPLS.c"),
Object(NonMatching, "revolution/kpad/KZMplsTestSub.c"),
Object(NonMatching, "revolution/usb/usb.c"),
Object(NonMatching, "revolution/bte/gki_buffer.c"),
Object(NonMatching, "revolution/bte/gki_time.c"),
Object(NonMatching, "revolution/bte/gki_ppc.c"),
Object(NonMatching, "revolution/bte/hcisu_h2.c"),
Object(NonMatching, "revolution/bte/uusb_ppc.c"),
Object(NonMatching, "revolution/bte/bta_dm_cfg.c"),
Object(NonMatching, "revolution/bte/bta_hh_cfg.c"),
Object(NonMatching, "revolution/bte/bta_sys_cfg.c"),
Object(NonMatching, "revolution/bte/bte_hcisu.c"),
Object(NonMatching, "revolution/bte/bte_init.c"),
Object(NonMatching, "revolution/bte/bte_logmsg.c"),
Object(NonMatching, "revolution/bte/bte_main.c"),
Object(NonMatching, "revolution/bte/btu_task1.c"),
Object(NonMatching, "revolution/bte/bd.c"),
Object(NonMatching, "revolution/bte/bta_sys_conn.c"),
Object(NonMatching, "revolution/bte/bta_sys_main.c"),
Object(NonMatching, "revolution/bte/ptim.c"),
Object(NonMatching, "revolution/bte/utl.c"),
Object(NonMatching, "revolution/bte/bta_dm_act.c"),
Object(NonMatching, "revolution/bte/bta_dm_api.c"),
Object(NonMatching, "revolution/bte/bta_dm_main.c"),
Object(NonMatching, "revolution/bte/bta_dm_pm.c"),
Object(NonMatching, "revolution/bte/bta_hh_act.c"),
Object(NonMatching, "revolution/bte/bta_hh_api.c"),
Object(NonMatching, "revolution/bte/bta_hh_main.c"),
Object(NonMatching, "revolution/bte/bta_hh_utils.c"),
Object(NonMatching, "revolution/bte/btm_acl.c"),
Object(NonMatching, "revolution/bte/btm_dev.c"),
Object(NonMatching, "revolution/bte/btm_devctl.c"),
Object(NonMatching, "revolution/bte/btm_discovery.c"),
Object(NonMatching, "revolution/bte/btm_inq.c"),
Object(NonMatching, "revolution/bte/btm_main.c"),
Object(NonMatching, "revolution/bte/btm_pm.c"),
Object(NonMatching, "revolution/bte/btm_sco.c"),
Object(NonMatching, "revolution/bte/btm_sec.c"),
Object(NonMatching, "revolution/bte/btu_hcif.c"),
Object(NonMatching, "revolution/bte/btu_init.c"),
Object(NonMatching, "revolution/bte/wbt_ext.c"),
Object(NonMatching, "revolution/bte/gap_api.c"),
Object(NonMatching, "revolution/bte/gap_conn.c"),
Object(NonMatching, "revolution/bte/gap_utils.c"),
Object(NonMatching, "revolution/bte/hcicmds.c"),
Object(NonMatching, "revolution/bte/hidd_api.c"),
Object(NonMatching, "revolution/bte/hidd_conn.c"),
Object(NonMatching, "revolution/bte/hidd_mgmt.c"),
Object(NonMatching, "revolution/bte/hidd_pm.c"),
Object(NonMatching, "revolution/bte/hidh_api.c"),
Object(NonMatching, "revolution/bte/hidh_conn.c"),
Object(NonMatching, "revolution/bte/l2c_api.c"),
Object(NonMatching, "revolution/bte/l2c_csm.c"),
Object(NonMatching, "revolution/bte/l2c_link.c"),
Object(NonMatching, "revolution/bte/l2c_main.c"),
Object(NonMatching, "revolution/bte/l2c_utils.c"),
Object(NonMatching, "revolution/bte/port_api.c"),
Object(NonMatching, "revolution/bte/port_rfc.c"),
Object(NonMatching, "revolution/bte/port_utils.c"),
Object(NonMatching, "revolution/bte/rfc_l2cap_if.c"),
Object(NonMatching, "revolution/bte/rfc_mx_fsm.c"),
Object(NonMatching, "revolution/bte/rfc_port_fsm.c"),
Object(NonMatching, "revolution/bte/rfc_port_if.c"),
Object(NonMatching, "revolution/bte/rfc_ts_frames.c"),
Object(NonMatching, "revolution/bte/rfc_utils.c"),
Object(NonMatching, "revolution/bte/sdp_api.c"),
Object(NonMatching, "revolution/bte/sdp_db.c"),
Object(NonMatching, "revolution/bte/sdp_discovery.c"),
Object(NonMatching, "revolution/bte/sdp_main.c"),
Object(NonMatching, "revolution/bte/sdp_server.c"),
Object(NonMatching, "revolution/bte/sdp_utils.c"),
Object(NonMatching, "revolution/ipc/ipcMain.c"),
Object(NonMatching, "revolution/ipc/ipcclt.c"),
Object(NonMatching, "revolution/ipc/memory.c"),
Object(NonMatching, "revolution/ipc/ipcProfile.c"),
Object(NonMatching, "revolution/fs/fs.c"),
Object(NonMatching, "revolution/euart/euart.c"),
Object(NonMatching, "revolution/wenc/wenc.c"),
Object(NonMatching, "revolution/tpl/TPL.c"),
Object(NonMatching, "NdevExi2A/DebuggerDriver.c"),
Object(NonMatching, "NdevExi2A/exi2.c"),
],
@@ -1384,6 +1556,14 @@ config.libs = [
"progress_category": "runtime",
"host": False,
"objects": [
Object(
NonMatching,
"PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/alloc.c",
),
Object(
NonMatching,
"PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/errno.c",
),
Object(
NonMatching,
"PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/ansi_files.c",
@@ -1392,6 +1572,12 @@ config.libs = [
NonMatching,
"PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Src/ansi_fp.c",
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/ctype.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/locale.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/arith.c"
),
@@ -1415,7 +1601,7 @@ config.libs = [
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/mem_funcs.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/float.c"
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/math_api.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/misc_io.c"
@@ -1423,15 +1609,24 @@ config.libs = [
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/printf.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/float.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/scanf.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/string.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/strtold.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/strtoul.c"
),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wctype.c"
),
Object(NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wmem.c"),
Object(
NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wprintf.c"
@@ -1446,6 +1641,10 @@ config.libs = [
NonMatching,
"PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/uart_console_io_gcn.c",
),
Object(
NonMatching,
"PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/abort_exit_ppc_eabi.c",
),
Object(
NonMatching,
"PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/secure_error.c",
@@ -1590,8 +1789,110 @@ config.libs = [
"progress_category": "runtime",
"host": False,
"objects": [
# TODO, just here for progress tracking, split further
Object(NonMatching, "toBeSorted/TRK.c"),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Export/targsupp.s",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/gamedev/cust_connection/cc/exi2/GCN/EXI2_GDEV_GCN/main.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/gamedev/cust_connection/utils/gc/MWCriticalSection_gc.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/gamedev/cust_connection/utils/common/CircleBuffer.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/flush_cache.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/main_TRK.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mainloop.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mem_TRK.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/dispatch.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk_glue.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/notify.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/nubevent.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/nubinit.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/serpoll.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/string_TRK.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/support.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/targcont.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/mpc_7xx_603e.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msg.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msgbuf.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msghndlr.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Export/mslsupp.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/targimpl.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/target_options.c",
),
Object(
NonMatching,
"TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/exception.s",
),
],
},
# Begin RELs
@@ -2015,7 +2316,7 @@ config.libs = [
NonMatching, "d_a_obj_clearness_wall", "REL/d/a/obj/d_a_obj_clearness_wall.cpp"
),
Rel(NonMatching, "d_a_obj_clef", "REL/d/a/obj/d_a_obj_clef.cpp"),
Rel(NonMatching, "d_a_obj_cloud_dive", "REL/d/a/obj/d_a_obj_cloud_dive.cpp"),
Rel(Matching, "d_a_obj_cloud_dive", "REL/d/a/obj/d_a_obj_cloud_dive.cpp"),
Rel(NonMatching, "d_a_obj_col", "REL/d/a/obj/d_a_obj_col.cpp"),
Rel(NonMatching, "d_a_obj_control_panel", "REL/d/a/obj/d_a_obj_control_panel.cpp"),
Rel(NonMatching, "d_a_obj_cumul_cloud", "REL/d/a/obj/d_a_obj_cumul_cloud.cpp"),
@@ -2026,7 +2327,7 @@ config.libs = [
Rel(NonMatching, "d_a_obj_decoB", "REL/d/a/obj/d_a_obj_decoB.cpp"),
Rel(NonMatching, "d_a_obj_desert", "REL/d/a/obj/d_a_obj_desert.cpp"),
Rel(NonMatching, "d_a_obj_desert_ago", "REL/d/a/obj/d_a_obj_desert_ago.cpp"),
Rel(NonMatching, "d_a_obj_desert_debris", "REL/d/a/obj/d_a_obj_desert_debris.cpp"),
Rel(Matching, "d_a_obj_desert_debris", "REL/d/a/obj/d_a_obj_desert_debris.cpp"),
Rel(NonMatching, "d_a_obj_desert_meter", "REL/d/a/obj/d_a_obj_desert_meter.cpp"),
Rel(
NonMatching,
@@ -2114,7 +2415,7 @@ config.libs = [
Rel(NonMatching, "d_a_obj_harp_hint", "REL/d/a/obj/d_a_obj_harp_hint.cpp"),
Rel(NonMatching, "d_a_obj_himo", "REL/d/a/obj/d_a_obj_himo.cpp"),
Rel(NonMatching, "d_a_obj_hit_lever_sw", "REL/d/a/obj/d_a_obj_hit_lever_sw.cpp"),
Rel(NonMatching, "d_a_obj_hole", "REL/d/a/obj/d_a_obj_hole.cpp"),
Rel(Matching, "d_a_obj_hole", "REL/d/a/obj/d_a_obj_hole.cpp"),
Rel(NonMatching, "d_a_obj_hole_minigame", "REL/d/a/obj/d_a_obj_hole_minigame.cpp"),
Rel(Matching, "d_a_obj_impa_door", "REL/d/a/obj/d_a_obj_impa_door.cpp"),
Rel(NonMatching, "d_a_obj_insect_island", "REL/d/a/obj/d_a_obj_insect_island.cpp"),
@@ -2174,7 +2475,7 @@ config.libs = [
"d_a_obj_needle_underground",
"REL/d/a/obj/d_a_obj_needle_underground.cpp",
),
Rel(NonMatching, "d_a_obj_oct_grass", "REL/d/a/obj/d_a_obj_oct_grass.cpp"),
Rel(Matching, "d_a_obj_oct_grass", "REL/d/a/obj/d_a_obj_oct_grass.cpp"),
Rel(
NonMatching, "d_a_obj_oct_grass_leaf", "REL/d/a/obj/d_a_obj_oct_grass_leaf.cpp"
),
@@ -2283,7 +2584,7 @@ config.libs = [
),
Rel(NonMatching, "d_a_obj_stone_stand", "REL/d/a/obj/d_a_obj_stone_stand.cpp"),
Rel(NonMatching, "d_a_obj_stopper_rock", "REL/d/a/obj/d_a_obj_stopper_rock.cpp"),
Rel(NonMatching, "d_a_obj_stopping_rope", "REL/d/a/obj/d_a_obj_stopping_rope.cpp"),
Rel(Matching, "d_a_obj_stopping_rope", "REL/d/a/obj/d_a_obj_stopping_rope.cpp"),
Rel(NonMatching, "d_a_obj_stream_lava", "REL/d/a/obj/d_a_obj_stream_lava.cpp"),
Rel(Matching, "d_a_obj_sun_light", "REL/d/a/obj/d_a_obj_sun_light.cpp"),
Rel(NonMatching, "d_a_obj_swhit", "REL/d/a/obj/d_a_obj_swhit.cpp"),
@@ -2384,7 +2685,7 @@ config.libs = [
"d_a_obj_underground_switch",
"REL/d/a/obj/d_a_obj_underground_switch.cpp",
),
Rel(NonMatching, "d_a_obj_under_cloud", "REL/d/a/obj/d_a_obj_under_cloud.cpp"),
Rel(Matching, "d_a_obj_under_cloud", "REL/d/a/obj/d_a_obj_under_cloud.cpp"),
Rel(NonMatching, "d_a_obj_updown_lava", "REL/d/a/obj/d_a_obj_updown_lava.cpp"),
Rel(Matching, "d_a_obj_utajima", "REL/d/a/obj/d_a_obj_utajima.cpp"),
Rel(Matching, "d_a_obj_utajima_island", "REL/d/a/obj/d_a_obj_utajima_island.cpp"),
+3 -1
View File
@@ -16,8 +16,8 @@
#include "nw4r/ut/ut_Color.h"
#include "s/s_State.hpp"
#include "toBeSorted/actor_event.h"
#include "toBeSorted/dowsing_target.h"
#include "toBeSorted/d_emitter.h"
#include "toBeSorted/dowsing_target.h"
class dAcItem_0xB34 {
public:
@@ -46,6 +46,8 @@ public:
static void spawnItem(u16 item, u32 room, const mVec3_c &pos, const mAng3_c &rot, u32 params, u32 arg);
static void spawnDrop(u16 item, u32 room, const mVec3_c &pos, const mAng3_c &rot);
static void giveItem22(ITEM_ID, s32, s32);
static void giveItem(ITEM_ID, s32, s32);
static u32 checkFlag(u32 flag);
static bool hasItem(u32 flag) {
return checkFlag(flag);
+61 -3
View File
@@ -1,22 +1,80 @@
#ifndef D_A_OBJ_CHEST_H
#define D_A_OBJ_CHEST_H
#include "common.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_w.h"
#include "m/m3d/m_smdl.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
#include "toBeSorted/actor_event.h"
#include "toBeSorted/attention.h"
#include "toBeSorted/d_d3d.h"
#include "toBeSorted/dowsing_target.h"
class dAcOChest_c : public dAcObjBase_c {
public:
dAcOChest_c() : mStateMgr(*this, sStateID::null) {}
dAcOChest_c()
: mStateMgr(*this, sStateID::null), mEvent(*this, nullptr), mDowsingTarget(this, DowsingTarget::SLOT_NONE) {}
virtual ~dAcOChest_c() {}
static void changeStateOpenCallback(dAcOChest_c *);
static void changeStateWaitCallback(dAcOChest_c *);
static void changeStateFailCallback(dAcOChest_c *);
static void changeStateWait2Callback(dAcOChest_c *);
virtual bool createHeap() override;
virtual int create() override;
virtual int draw() override;
virtual int doDelete() override;
virtual int actorExecute() override;
STATE_FUNC_DECLARE(dAcOChest_c, Wait);
STATE_FUNC_DECLARE(dAcOChest_c, OpenEvent);
STATE_FUNC_DECLARE(dAcOChest_c, FailEvent);
STATE_FUNC_DECLARE(dAcOChest_c, OrderOpenEventAfter);
virtual void doInteraction(s32) override;
void fn_326_C90();
void changeStateOpen();
void changeStateWait();
void changeStateFail();
void changeStateWait2();
char *getName();
char *getSubtypeName();
char *getModelName();
char *getOpenOrClose(u8);
char *getDzbPlcName();
s32 getSubtype();
bool hasBeenOpened();
void stateOpenUpdate2();
void stateOpenEventEnter2();
void fn_326_1440();
bool hasInsideModel();
void fn_326_1470();
void fn_326_14A0();
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcOChest_c);
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ d3d::AnmMdlWrapper mAnmMdl;
/* 0x3A4 */ m3d::smdl_c mInsideMdl;
/* 0x3C0 */ dBgW mBgW;
/* 0x5D0 */ STATE_MGR_DECLARE(dAcOChest_c);
/* 0x60C */ ActorEventRelated mEvent;
/* 0x65C */ bool mGaveItem;
/* 0x65D */ bool mField_0x65D;
/* 0x65E */ bool mHasInsideModel;
/* 0x65F */ bool mIsLinksCloset;
/* 0x660 */ DowsingTarget mDowsingTarget;
static const f32 OPEN_WARDROBE_INTERACTION_FIELD_0x24;
static const char *CHEST_OPEN;
static const char *CHEST_OPEN_AFTER;
static const char *CHEST_FAIL;
static InteractionTargetDef OPEN_WARDROBE_INTERACTION;
static char *INSIDE_MODEL_NAMES[4];
static const u32 unused;
};
#endif
+24 -2
View File
@@ -2,19 +2,41 @@
#define D_A_OBJ_CLOUD_DIVE_H
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/cc/d_cc_d.h"
#include "m/m3d/m_smdl.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
class dAcOcloudDive_c : public dAcObjBase_c {
public:
dAcOcloudDive_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dAcOcloudDive_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int doDelete() override;
virtual int actorExecute() override;
virtual int draw() override;
bool fn_350_6F0();
bool fn_350_760();
STATE_FUNC_DECLARE(dAcOcloudDive_c, Wait);
STATE_FUNC_DECLARE(dAcOcloudDive_c, Dead);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcOcloudDive_c);
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mMdl;
/* 0x350 */ dCcD_Cyl mCollider;
/* 0x4A0 */ STATE_MGR_DECLARE(dAcOcloudDive_c);
/* 0x4DC */ u8 field_0x4DC;
/* 0x4DD */ u8 mItemID;
/* 0x4E0 */ f32 mRadius;
static const f32 mRadius1;
static const f32 mRadius2;
static const f32 height;
static dCcD_SrcCyl sCylSrc;
};
#endif
+17 -1
View File
@@ -2,6 +2,9 @@
#define D_A_OBJ_DECOB_H
#include "d/a/obj/d_a_obj_base.h"
#include "m/m3d/m_smdl.h"
#include "m/m_angle.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
@@ -10,10 +13,23 @@ public:
dAcODecoB_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dAcODecoB_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int doDelete() override;
virtual int actorExecute() override;
virtual int draw() override;
STATE_FUNC_DECLARE(dAcODecoB_c, Wait);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcODecoB_c);
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mMdl;
/* 0x350 */ STATE_MGR_DECLARE(dAcODecoB_c);
/* 0x38C */ u16 padding_0x38C;
/* 0x38E */ mAng field_0x38E;
static f32 lbl_611_data_34;
static const f32 lbl_611_rodata_30;
};
#endif
+15
View File
@@ -2,13 +2,28 @@
#define D_A_OBJ_DESERT_DEBRIS_H
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_w.h"
#include "m/m3d/m_smdl.h"
#include "nw4r/g3d/res/g3d_resfile.h"
class dAcOdesertDebris_c : public dAcObjBase_c {
public:
dAcOdesertDebris_c() {}
virtual ~dAcOdesertDebris_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int doDelete() override;
virtual int actorExecute() override;
virtual int draw() override;
private:
bool checkStoryFlag() const;
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mMdl;
/* 0x350 */ dBgW mBgW;
/* 0x560 */ u16 mStoryFlag;
};
#endif
+16 -1
View File
@@ -2,6 +2,9 @@
#define D_A_OBJ_HOLE_H
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_s_acch.h"
#include "m/m3d/m_smdl.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
@@ -10,10 +13,22 @@ public:
dAcOhole_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dAcOhole_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int doDelete() override;
virtual int actorExecute() override;
virtual int draw() override;
STATE_FUNC_DECLARE(dAcOhole_c, Wait);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcOhole_c);
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mMdl;
/* 0x350 */ STATE_MGR_DECLARE(dAcOhole_c);
/* 0x38C */ dBgS_AcchCir mAcchCir;
/* 0x3E8 */ dBgS_ObjAcch mObjAcch;
/* 0x798 */ u8 field_0x798;
/* 0x799 */ u8 field_0x799;
};
#endif
+20 -2
View File
@@ -2,18 +2,36 @@
#define D_A_OBJ_OCT_GRASS_H
#include "d/a/obj/d_a_obj_base.h"
#include "m/m3d/m_smdl.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
class dAcOOctGrass_c : public dAcObjBase_c {
public:
dAcOOctGrass_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dAcOOctGrass_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int doDelete() override;
virtual int actorExecute() override;
virtual int draw() override;
void spawnOcGrsL();
STATE_FUNC_DECLARE(dAcOOctGrass_c, Wait);
void executeState() {
mStateMgr.executeState();
}
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcOOctGrass_c);
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mMdl;
/* 0x350 */ STATE_MGR_DECLARE(dAcOOctGrass_c);
static const char *GRASS_OARCS[4];
static const char *GRASS_CUT_MODELS[4];
};
#endif
+21 -2
View File
@@ -2,19 +2,38 @@
#define D_A_OBJ_STOPPING_ROPE_H
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_w.h"
#include "d/col/cc/d_cc_d.h"
#include "m/m3d/m_smdl.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
#include "s/s_StateInterfaces.hpp"
class dAcOStoppingRope_c : public dAcObjBase_c {
public:
dAcOStoppingRope_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dAcOStoppingRope_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int doDelete() override;
virtual int actorExecute() override;
virtual int draw() override;
void changeState(const sStateIDIf_c &value) {
mStateMgr.changeState(value);
}
STATE_FUNC_DECLARE(dAcOStoppingRope_c, Wait);
STATE_FUNC_DECLARE(dAcOStoppingRope_c, SwitchOn);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcOStoppingRope_c);
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mMdl;
/* 0x350 */ dBgW mBgW;
/* 0x360 */ dCcD_Sph mCollider;
/* 0x6B0 */ STATE_MGR_DECLARE(dAcOStoppingRope_c);
/* 0x6EC */ u8 padding_0x6EC[16];
};
#endif
+16 -1
View File
@@ -2,13 +2,28 @@
#define D_A_OBJ_UNDER_CLOUD_H
#include "d/a/obj/d_a_obj_base.h"
#include "m/m3d/m_anmtexsrt.h"
#include "m/m3d/m_smdl.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "toBeSorted/actor_event.h"
class dAcOunderCloud_c : public dAcObjBase_c {
public:
dAcOunderCloud_c() {}
dAcOunderCloud_c() : mEvent(*this, nullptr) {}
virtual ~dAcOunderCloud_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int doDelete() override;
virtual int actorExecute() override;
virtual int actorExecuteInEvent() override;
virtual int draw() override;
private:
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mMdl;
/* 0x350 */ m3d::anmTexSrt_c mAnm;
/* 0x37C */ ActorEventRelated mEvent;
};
#endif
+3 -3
View File
@@ -11,9 +11,9 @@
#include "s/s_StateID.hpp"
#include "toBeSorted/d_emitter.h"
struct CsGameConfigMaybe {
CsGameConfigMaybe();
virtual ~CsGameConfigMaybe() {}
struct dCsGame_HIO_c {
dCsGame_HIO_c();
virtual ~dCsGame_HIO_c() {}
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
@@ -1,5 +1,5 @@
#ifndef D_TEXTUNK_H
#define D_TEXTUNK_H
#ifndef D_LYT_HIO_H
#define D_LYT_HIO_H
#include "common.h"
#include "libms/flowfile.h"
@@ -14,10 +14,10 @@
* for overriding the text and flow files being accessed. The actual
* implementation appears to have been stripped out though.
*/
class UnkTextThing {
class dLyt_HIO_c {
public:
UnkTextThing();
virtual ~UnkTextThing() {}
dLyt_HIO_c();
virtual ~dLyt_HIO_c() {}
void destroy();
@@ -149,7 +149,7 @@ public:
return 0;
}
static UnkTextThing *getInstance() {
static dLyt_HIO_c *getInstance() {
return sInstance;
}
@@ -209,7 +209,7 @@ public:
void destroyUnk(void *thing);
private:
static UnkTextThing *sInstance;
static dLyt_HIO_c *sInstance;
void destroyFlow(MsbfInfo *flow);
void destroyMsg(MsbtInfo *msg);
@@ -1,14 +1,14 @@
#ifndef D_LYT_METER_CONFIGURATION
#define D_LYT_METER_CONFIGURATION
#ifndef D_LYT_METER_HIO_H
#define D_LYT_METER_HIO_H
#include "common.h"
class dLytMeterConfiguration_c {
class dLytMeter_HIO_c {
public:
dLytMeterConfiguration_c();
virtual ~dLytMeterConfiguration_c();
dLytMeter_HIO_c();
virtual ~dLytMeter_HIO_c();
static const dLytMeterConfiguration_c *GetInstance() {
static const dLytMeter_HIO_c *GetInstance() {
return sInstance;
}
@@ -45,7 +45,7 @@ public:
}
static dLytMeterConfiguration_c *sInstance;
static dLytMeter_HIO_c *sInstance;
/* 0x004 */ u8 field_0x004;
/* 0x005 */ u8 field_0x005;
+1 -1
View File
@@ -24,7 +24,7 @@ public:
ExpHeap(MEMiHeapHead *heapHead);
static ExpHeap *create(void *block, size_t size, u16 attr);
static ExpHeap *create(size_t size, Heap *heap, u16 attr);
void setGroupID(u16 groupId);
void setAllocMode(u16 allocMode);
static u32 getSizeForMBlock(const void *block);
// Placement new for ::create
+1 -4
View File
@@ -6,9 +6,6 @@
#include "rvl/GX.h" // IWYU pragma: export
#include "rvl/VI.h" // IWYU pragma: export
extern "C" GXRenderModeObj lbl_8055FC64;
namespace EGG {
class Video {
@@ -32,7 +29,7 @@ public:
const GXRenderModeObj *getCurrentOrFallbackRenderModeObj() const {
if (pRenderMode == nullptr) {
return &lbl_8055FC64;
return &GXNtsc480Int;
}
return pRenderMode;
}
+1 -1
View File
@@ -33,7 +33,7 @@ private:
void internalDrawStandard(u16);
void internalDrawLite(u16);
void afterDraw(u16 x, u16 y, u16 width, u16 height);
void allocAndCaptureBlurBuffer(u16 x, u16 y, u16 width, u16 height);
/* 0x1C */ u16 field_0x1C;
/* 0x1E */ u8 field_0x1E;
+1 -1
View File
@@ -71,7 +71,7 @@ public:
}
private:
static void fn_804AE340(nw4r::g3d::ResMat, GXTexCoordID);
static void setupEnvmap(nw4r::g3d::ResMat, GXTexCoordID);
int getTextureIndex(const char *name) const;
bool getSomeTfRelatedBool() const {
+1 -1
View File
@@ -57,7 +57,7 @@ public:
}
private:
void drawInternal(u8, u8, f32, f32);
void setMaterialMulti(u8, u8, f32, f32);
/* 0x2C */ u8 field_0x2C;
/* 0x30 */ f32 field_0x30;
+2 -2
View File
@@ -99,13 +99,13 @@ public:
void CopyFromAnother(const Screen &other);
void Reset(f32, f32, f32, f32, CanvasMode);
void OnDirectEfb() const;
void GetPosSizeInEfb() const;
const DataEfb &GetDataEfb() const;
bool IsChangeEfb() const;
void CalcMatrixForDrawQuad(nw4r::math::MTX34 *, f32, f32, f32, f32) const;
void FillBufferGX(u32, GXColor, u32) const;
void GetGlobalPos(f32 *, f32 *) const;
void fn_804B2EE0(f32 *, f32 *, f32, f32) const;
void ConvertToEfb(f32, f32, f32 *, f32 *) const;
f32 ScaleByX(f32 val) const {
return val * StateGX::s_widthEfb / GetSizeXMax(GetComputedTVMode());
+2 -2
View File
@@ -31,7 +31,7 @@ private:
static s32 sPushCount;
static u32 sFlag;
static bool GetShouldCapture();
static bool isEnableDirtyBufferMode();
static bool GetUseTfRgb565();
public:
@@ -45,7 +45,7 @@ private:
// Unknown names
static void fn_804B4270(BufferType type, u32 userData);
static void fn_804B4310(BufferType type, u32 userData);
static void popWorkBuffer(bool b, u32 userData);
static f32 *fn_804B4550();
};
+1 -1
View File
@@ -81,7 +81,7 @@ public:
static void invalidateTexAllGX();
static void GXSetPixelFmt_(GXPixelFmt pixelFmt, GXZFmt16 zFmt);
static void setPixelFormatGX(GXPixelFmt pixelFmt, GXZFmt16 zFmt);
static bool GXSetColorUpdate_(bool);
static bool GXSetAlphaUpdate_(bool);
static bool GXSetDither_(bool);
+4
View File
@@ -235,6 +235,10 @@ public:
f32 squareMagXZ() const {
return x * x + z * z;
}
f32 squareDistanceToXZ(const mVec3_c &other) const {
return (*this - other).squareMagXZ();
}
void rotX(const mAng &angle);
void rotY(const mAng &angle);
void rotZ(const mAng &angle);
+1
View File
@@ -39,6 +39,7 @@ void GXCopyTex(void *data, GXBool bUpdate);
void GXPixModeSync();
extern GXRenderModeObj GXNtsc480IntDf;
extern GXRenderModeObj GXNtsc480Int;
extern GXRenderModeObj GXMpal480IntDf;
extern GXRenderModeObj GXPal528IntDf;
extern GXRenderModeObj GXEurgb60Hz480IntDf;
+1 -1
View File
@@ -52,7 +52,7 @@ void GXSetTexCoordBias(GXTexCoordID, GXBool, GXBool);
u16 GXGetTexObjWidth(const GXTexObj *obj);
u16 GXGetTexObjHeight(const GXTexObj *obj);
GXTexFmt GXGetTexObjFormat(const GXTexObj *obj);
GXTexFmt GXGetTexObjFmt(const GXTexObj *obj);
GXBool GXGetTexObjMipMap(const GXTexObj *obj);
GXTexWrapMode GXGetTexObjWrapS(const GXTexObj *obj);
u32 GXGetTexObjTlut(const GXTexObj *);
+3 -1
View File
@@ -56,10 +56,12 @@ void *MEMAllocFromExpHeapEx(struct MEMiHeapHead *heap, u32 size, s32 align);
u32 MEMResizeForMBlockExpHeap(struct MEMiHeapHead *heap, void *memBlock, u32 size);
void MEMFreeToExpHeap(struct MEMiHeapHead *heap, void *memBlock);
u32 MEMGetAllocatableSizeForExpHeap(struct MEMiHeapHead *heap);
u32 MEMGetTotalFreeSizeForExpHeap(struct MEMiHeapHead *heap);
u32 MEMGetAllocatableSizeForExpHeapEx(struct MEMiHeapHead *heap, s32 align);
void MEMSetGroupIdForExpHeap(MEMiHeapHead *mHeapHandle, u16 groupId);
void MEMSetGroupIdForExpHeap(struct MEMiHeapHead *mHeapHandle, u16 groupId);
u32 MEMAdjustExpHeap(struct MEMiHeapHead *heap);
u32 MEMGetSizeForMBlockExpHeap(const void *block);
void MEMSetAllocModeForExpHeap(struct MEMiHeapHead *heap, u16 allocMode);
static inline struct MEMiHeapHead *MEMCreateExpHeap(void *start, u32 size) {
return MEMCreateExpHeapEx(start, size, 0);
+1
View File
@@ -37,6 +37,7 @@ typedef struct MEMiHeapHead {
void MEMiInitHeapHead(MEMiHeapHead *heap, u32 magic, void *start, void *end, u16 opt);
void MEMiFinalizeHeap(MEMiHeapHead *heap);
MEMiHeapHead *MEMFindContainHeap(const void *memBlock);
MEMiHeapHead *MEMFindParentHeap(const MEMiHeapHead *pHandle);
static inline int GetUIntPtr(const void *p) {
return (int)p;
+1
View File
@@ -27,6 +27,7 @@ typedef struct OSContext {
f64 psfs[32]; // at 0x1C8
} OSContext;
void OSFillFPUContext(OSContext *ctx);
void OSSaveFPUContext(OSContext *ctx);
void OSSetCurrentContext(OSContext *ctx);
OSContext *OSGetCurrentContext(void);
+11
View File
@@ -11,11 +11,22 @@ extern "C" {
#define OS_MEM_IS_MEM1(addr) (((u32)(addr) & 0x30000000) == 0)
#define OS_MEM_IS_MEM2(addr) (((u32)(addr) & 0x30000000) == 0x10000000)
#define OS_PROTECT_CHAN0 0
#define OS_PROTECT_CHAN1 1
#define OS_PROTECT_CHAN2 2
#define OS_PROTECT_CHAN3 3
#define OS_PROTECT_CONTROL_NONE 0x00
#define OS_PROTECT_CONTROL_READ 0x01
#define OS_PROTECT_CONTROL_WRITE 0x02
#define OS_PROTECT_CONTROL_RDWR (OS_PROTECT_CONTROL_READ | OS_PROTECT_CONTROL_WRITE)
u32 OSGetPhysicalMem1Size(void);
u32 OSGetPhysicalMem2Size(void);
u32 OSGetConsoleSimulatedMem1Size(void);
u32 OSGetConsoleSimulatedMem2Size(void);
void __OSInitMemoryProtection(void);
void OSProtectRange(u32 chan, void* addr, u32 nBytes, u32 control);
#ifdef __cplusplus
}
+2 -2
View File
@@ -9,7 +9,7 @@ class sFStateVirtualID_c : public sFStateID_c<T> {
public:
typedef void (T::*stateFunc)();
sFStateVirtualID_c(
const sStateID_c *superState, const char *name, stateFunc initialize, stateFunc execute, stateFunc finalize
const sStateIDIf_c *superState, const char *name, stateFunc initialize, stateFunc execute, stateFunc finalize
)
: sFStateID_c<T>(name, initialize, execute, finalize), mpSuperState(superState) {}
@@ -29,7 +29,7 @@ public:
}
private:
const sStateID_c *mpSuperState;
const sStateIDIf_c *mpSuperState;
};
#endif
+2 -2
View File
@@ -65,11 +65,11 @@
#define STATE_VIRTUAL_DEFINE(class, name) \
template <typename T> \
static const sStateID_c &baseID_##name() { \
static const sStateIDIf_c &baseID_##name() { \
return T::StateID_##name; \
} \
template <> \
const sStateID_c &baseID_##name<sStateID_c>() { \
const sStateIDIf_c &baseID_##name<sStateID_c>() { \
return sStateID::null; \
} \
const sFStateVirtualID_c<class> class ::StateID_##name( \
+1
View File
@@ -18,6 +18,7 @@ public:
bool isAdvance();
int getSomeEventRelatedNumber();
int getSingleIntData(int *result, u32 code, u32);
int getSingleFloatData(f32 *result, u32 code, u32);
int getSingleVecData(mVec3_c *result, u32 code, u32);
+420 -7
View File
@@ -1,21 +1,434 @@
#include "d/a/obj/d_a_obj_chest.h"
#include "c/c_lib.h"
#include "common.h"
#include "d/a/d_a_item.h"
#include "d/a/d_a_itembase.h"
#include "d/a/d_a_player.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_s.h"
#include "d/d_message.h"
#include "d/d_sc_game.h"
#include "d/flag/sceneflag_manager.h"
#include "d/flag/storyflag_manager.h"
#include "f/f_base.h"
#include "m/m3d/m_fanm.h"
#include "m/m3d/m_mdl.h"
#include "m/m_angle.h"
#include "m/m_vec.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "nw4r/g3d/res/g3d_resmdl.h"
#include "s/s_Math.h"
#include "toBeSorted/attention.h"
#include "toBeSorted/dowsing_target.h"
#include "toBeSorted/event.h"
#include "toBeSorted/event_manager.h"
const char *dAcOChest_c::CHEST_OPEN = "ChestOpen";
const char *dAcOChest_c::CHEST_OPEN_AFTER = "ChestOpenAfter";
const char *dAcOChest_c::CHEST_FAIL = "ChestFail";
const f32 dAcOChest_c::OPEN_WARDROBE_INTERACTION_FIELD_0x24 = 10.0f;
InteractionTargetDef dAcOChest_c::OPEN_WARDROBE_INTERACTION = {0, 3, 1, OPEN, 0, 140.0f,
40.0f, 40.0f, -100.0f, 100.0f, 50.0f, 1.0f};
SPECIAL_ACTOR_PROFILE(OBJ_CHEST, dAcOChest_c, fProfile::OBJ_CHEST, 0x13E, 0, 3);
char *dAcOChest_c::INSIDE_MODEL_NAMES[4] = {
"TansuInsideA",
"TansuInsideB",
"TansuInsideC",
"TansuInsideD",
};
STATE_DEFINE(dAcOChest_c, Wait);
STATE_DEFINE(dAcOChest_c, OpenEvent);
STATE_DEFINE(dAcOChest_c, FailEvent);
STATE_DEFINE(dAcOChest_c, OrderOpenEventAfter);
void dAcOChest_c::changeStateOpenCallback(dAcOChest_c *chest) {
if (chest == nullptr) {
return;
}
chest->changeStateOpen();
}
void dAcOChest_c::changeStateWaitCallback(dAcOChest_c *chest) {
if (chest == nullptr) {
return;
}
chest->changeStateWait();
}
void dAcOChest_c::changeStateFailCallback(dAcOChest_c *chest) {
if (chest == nullptr) {
return;
}
chest->changeStateFail();
}
void dAcOChest_c::changeStateWait2Callback(dAcOChest_c *chest) {
if (chest == nullptr) {
return;
}
chest->changeStateWait2();
}
bool dAcOChest_c::createHeap() {
char *name = getName();
char *subtype = getSubtypeName();
char *modelName = getModelName();
char *openOrClose = getOpenOrClose(0);
void *mdlData = getOarcResFile(name);
void *anmData = getOarcResFile(modelName);
TRY_CREATE(mAnmMdl.create3(*this, mdlData, anmData, subtype, openOrClose, 0x120));
if (!getFromParams(0x1C, 0xFF)) {
mAnmMdl.getModel().setPriorityDraw(0x1C, 0xFFFFFFFF);
}
if ((s32)getFromParams(0x10, 0xFF) != 0xFF) {
void *insideMdlData = getOarcResFile("TansuInside");
mResFile = nw4r::g3d::ResFile(insideMdlData);
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl(INSIDE_MODEL_NAMES[getFromParams(0x10, 0xFF)]);
if (!mInsideMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr)) {
return false;
}
}
char *dzbPlcName = getDzbPlcName();
void *dzb = getOarcDZB(name, dzbPlcName);
void *plc = getOarcPLC(name, dzbPlcName);
fn_326_C90();
bool ok = !mBgW.Set((cBgD_t *)dzb, (PLC *)plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale);
if (!ok) {
return false;
}
return mBgW.InitMapStuff(&heap_allocator);
}
int dAcOChest_c::create() {
if (!initAllocatorWork1Heap(0x4000, "dAcOChest_c::m_allocator", 0x20)) {
return FAILED;
}
mBgW.Lock();
dBgS::GetInstance()->Regist(&mBgW, this);
dBgS::GetInstance()->RegistBg(&mBgW, this);
forwardAccel = 0.0f;
forwardMaxSpeed = 0.0f;
mStateMgr.changeState(StateID_Wait);
boundingBox.Set(mVec3_c(-200.0f, -0.0f, -100.0f), mVec3_c(200.0f, 500.0f, 100.0f));
mAnmMdl.setAnm(getOpenOrClose(0), m3d::PLAY_MODE_4);
mAnmMdl.setRate(0.0f);
poscopy2.y = position.y + 150.0f;
poscopy3 = poscopy2;
if ((s32)getFromParams(0x10, 0xFF) != 0xFF) {
mInsideMdl.setLocalMtx(mWorldMtx);
}
if (dScGame_c::isCurrentStage("F001r") && roomid == 1 && 900.0f < position.x && position.x < 1000.0f &&
-50.0f < position.y && position.y < 50.0f && -2730.0f < position.z && position.z < -2630.0f) {
mIsLinksCloset = true;
}
mVec3_c dowsingPos(0.0f, 150.0f, 0.0f);
ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, 0xFF);
bool isTreasure = dAcItem_c::isTreasure(itemId);
if (isTreasure) {
mDowsingTarget.initialize(DowsingTarget::SLOT_TREASURE, 0, &dowsingPos, 0.0f);
} else if (dAcItem_c::isRupee(itemId)) {
mDowsingTarget.initialize(DowsingTarget::SLOT_RUPEE, 0, &dowsingPos, 0.0f);
}
return SUCCEEDED;
}
int dAcOChest_c::doDelete() {
return SUCCEEDED;
}
int dAcOChest_c::actorExecute() {
ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, 0xFF);
if (!hasBeenOpened() && (dAcItem_c::isTreasure(itemId) || dAcItem_c::isRupee(itemId))) {
mDowsingTarget.doRegister();
} else {
mDowsingTarget.doUnregister();
}
mStateMgr.executeState();
fn_326_C90();
return SUCCEEDED;
}
int dAcOChest_c::draw() {
drawModelType1(&mAnmMdl.getModel());
if (hasInsideModel()) {
drawModelType1(&mInsideMdl);
}
return SUCCEEDED;
}
void dAcOChest_c::initializeState_Wait() {}
void dAcOChest_c::executeState_Wait() {}
void dAcOChest_c::executeState_Wait() {
OPEN_WARDROBE_INTERACTION.field_0x24 = OPEN_WARDROBE_INTERACTION_FIELD_0x24;
AttentionManager::GetInstance()->addTarget(*this, OPEN_WARDROBE_INTERACTION, 0, nullptr);
}
void dAcOChest_c::finalizeState_Wait() {}
void dAcOChest_c::initializeState_OpenEvent() {}
void dAcOChest_c::executeState_OpenEvent() {}
void dAcOChest_c::initializeState_OpenEvent() {
stateOpenEventEnter2();
}
void dAcOChest_c::executeState_OpenEvent() {
stateOpenUpdate2();
}
void dAcOChest_c::finalizeState_OpenEvent() {}
void dAcOChest_c::initializeState_FailEvent() {}
void dAcOChest_c::executeState_FailEvent() {}
void dAcOChest_c::finalizeState_FailEvent() {}
void dAcOChest_c::initializeState_OrderOpenEventAfter() {}
void dAcOChest_c::executeState_OrderOpenEventAfter() {}
void dAcOChest_c::executeState_OrderOpenEventAfter() {
if (mGaveItem && EventManager::sInstance->isInEvent0Or7()) {
char *name = getName();
void *data = getOarcZev(name);
Event event(CHEST_OPEN_AFTER, data, 400, 0x100001, nullptr, (void *)changeStateWaitCallback);
mEvent.scheduleEvent(event, 0);
} else if (EventManager::sInstance->isInEvent(this, CHEST_OPEN_AFTER)) {
ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, 0xFF);
if (dAcItem_c::isRupee(itemId)) {
dMessage_c::getInstance()->setField_0x2FC(0xFFFFFFFF);
}
mField_0x65D = true;
stateOpenUpdate2();
mStateMgr.changeState(StateID_OpenEvent);
}
}
void dAcOChest_c::finalizeState_OrderOpenEventAfter() {}
void dAcOChest_c::initializeState_FailEvent() {
stateOpenEventEnter2();
}
void dAcOChest_c::executeState_FailEvent() {
stateOpenUpdate2();
}
void dAcOChest_c::finalizeState_FailEvent() {}
void dAcOChest_c::doInteraction(s32 _unused) {
char *name = getName();
void *data = getOarcZev(name);
if (hasBeenOpened()) {
Event event(CHEST_FAIL, data, 100, 0x100001, (void *)changeStateFailCallback, (void *)changeStateWait2Callback);
mEvent.scheduleEvent(event, 0);
} else {
Event event(CHEST_OPEN, data, 100, 0x100001, (void *)changeStateOpenCallback, nullptr);
mEvent.scheduleEvent(event, 0);
}
}
void dAcOChest_c::fn_326_C90() {
mWorldMtx.transS(position);
mWorldMtx.ZXYrotM(rotation);
mAnmMdl.getModel().setLocalMtx(mWorldMtx);
mAnmMdl.getModel().calc(false);
}
void dAcOChest_c::changeStateOpen() {
if (mField_0x65D) {
return;
}
u32 flag = getFromParams(0, 0xFF);
if (flag < 0xFF) {
SceneflagManager::sInstance->setFlag(roomid, flag);
}
fn_326_1470();
mStateMgr.changeState(StateID_OpenEvent);
}
void dAcOChest_c::changeStateWait() {
if (!mField_0x65D) {
return;
}
fn_326_1440();
fn_326_14A0();
mStateMgr.changeState(StateID_Wait);
}
void dAcOChest_c::changeStateFail() {
fn_326_1470();
mStateMgr.changeState(StateID_FailEvent);
}
void dAcOChest_c::changeStateWait2() {
fn_326_1440();
fn_326_14A0();
mStateMgr.changeState(StateID_Wait);
}
char *dAcOChest_c::getName() {
return "Tansu";
}
char *dAcOChest_c::getSubtypeName() {
switch (getSubtype()) {
case 0: return "TansuA";
case 1: return "TansuB";
case 2: return "TansuC";
case 3: return "TansuD";
default: return "TansuA";
}
}
char *dAcOChest_c::getModelName() {
return "Tansu";
}
char *dAcOChest_c::getOpenOrClose(u8 openOrClose) {
switch (openOrClose) {
case 0: return "TansuOpen";
case 1: return "TansuClose";
default: return nullptr;
}
}
char *dAcOChest_c::getDzbPlcName() {
switch (getSubtype()) {
case 0: return "TansuA";
case 1: return "TansuB";
case 2: return "TansuC";
case 3: return "TansuD";
default: return "TansuA";
}
}
s32 dAcOChest_c::getSubtype() {
return getFromParams(0x1C, 0xFF);
}
bool dAcOChest_c::hasBeenOpened() {
if ((s32)getFromParams(8, 0xFF) == 0xFF) {
return true;
}
u32 flag = getFromParams(0, 0xFF);
if (flag >= 0xFF) {
return true;
}
return (flag < 0xFF) && SceneflagManager::sInstance->checkBoolFlag(roomid, flag);
}
void dAcOChest_c::stateOpenUpdate2() {
dAcPy_c *player = dAcPy_c::LINK;
switch (mEvent.getCurrentEventCommand()) {
case 'wait': {
mEvent.advanceNext();
break;
}
case 'move': {
if (mEvent.isAdvance()) {
int i;
mEvent.getSingleIntData(&i, 'type', 0);
if (i == 1) {
char *openOrClose = getOpenOrClose(0);
mAnmMdl.setAnm(openOrClose, m3d::PLAY_MODE_4);
mAnmMdl.setFrame(0.0f);
mAnmMdl.setRate(1.0f);
mAnmMdl.getAnm().setPlayState(m3d::PLAY_MODE_1);
} else if (i == 2) {
char *openOrClose = getOpenOrClose(1);
mAnmMdl.setAnm(openOrClose, m3d::PLAY_MODE_4);
mAnmMdl.setFrame(0.0f);
mAnmMdl.setRate(1.0f);
mAnmMdl.getAnm().setPlayState(m3d::PLAY_MODE_1);
}
} else {
mAnmMdl.play();
if (mAnmMdl.getAnm().isStop()) {
mEvent.advanceNext();
}
}
break;
}
case 'comp': {
mVec3_c targetPosition;
mVec3_c playerPosition;
mVec3_c t(0.0f, 0.0f, 122.35f);
s32 targetAngle = 0x7FFF;
targetPosition = t;
targetAngle += rotation.y;
targetPosition.rotY(rotation.y);
targetPosition += position;
if (player != nullptr) {
playerPosition = player->position;
cLib::addCalcPos(&playerPosition, targetPosition, 0.25f, 200.0f, 0.0f);
s16 YRot = rotation.y;
sLib::addCalcAngle(&YRot, targetAngle, 4, 0x7FFF, 0);
if ((targetPosition.squareDistanceToXZ(playerPosition) < 25.0f) &&
mAng::abs(YRot - mAng(targetAngle)) < 0xb6) {
playerPosition = targetPosition;
YRot = targetAngle;
mEvent.advanceNext();
}
player->setPosYRot(playerPosition, YRot, 0, 0, 0);
} else {
mEvent.advanceNext();
}
break;
}
case 'item': {
ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, 0xFF);
dAcItem_c::giveItem(itemId, 0, 0);
mGaveItem = true;
mStateMgr.changeState(StateID_OrderOpenEventAfter);
mEvent.advanceNext();
break;
}
case '????': {
break;
}
default: {
mEvent.advanceNext();
}
}
}
void dAcOChest_c::stateOpenEventEnter2() {
if ((s32)getFromParams(0x10, 0xFF) == 0xFF) {
return;
}
mHasInsideModel = true;
}
void dAcOChest_c::fn_326_1440() {
if ((s32)getFromParams(0x10, 0xFF) == 0xFF) {
return;
}
mHasInsideModel = false;
}
bool dAcOChest_c::hasInsideModel() {
return mHasInsideModel;
}
void dAcOChest_c::fn_326_1470() {
if (!mIsLinksCloset) {
return;
}
StoryflagManager::sInstance->setFlag(0x331);
}
void dAcOChest_c::fn_326_14A0() {
if (!mIsLinksCloset) {
return;
}
StoryflagManager::sInstance->unsetFlag(0x331);
}
const u32 dAcOChest_c::unused = 0;
+104 -2
View File
@@ -1,13 +1,115 @@
#include "d/a/obj/d_a_obj_cloud_dive.h"
#include "d/a/d_a_item.h"
#include "d/a/d_a_player.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/cc/d_cc_s.h"
#include "egg/math/eggMath.h"
#include "f/f_base.h"
#include "m/m_vec.h"
SPECIAL_ACTOR_PROFILE(OBJ_CLOUD_DIVE, dAcOcloudDive_c, fProfile::OBJ_CLOUD_DIVE, 0x1C2, 0, 0);
const f32 dAcOcloudDive_c::mRadius1 = 100.0f;
const f32 dAcOcloudDive_c::mRadius2 = 200.0f;
const f32 dAcOcloudDive_c::height = 40.0f;
dCcD_SrcCyl dAcOcloudDive_c::sCylSrc = {
/* mObjInf */
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
/* mObjTg */
{AT_TYPE_BOMB, 0x111, {0, 0, 0x407}, 0, 0},
/* mObjCo */ {0}},
/* mCylInf */
{100.f, 10.f}
};
STATE_DEFINE(dAcOcloudDive_c, Wait);
STATE_DEFINE(dAcOcloudDive_c, Dead);
bool dAcOcloudDive_c::createHeap() {
return true;
}
int dAcOcloudDive_c::create() {
CREATE_ALLOCATOR(dAcOcloudDive_c);
mStts.mRank = 0xD;
mCollider.Set(sCylSrc);
mCollider.mStts = &mStts;
field_0x4DC = getFromParams(0, 3);
mItemID = getFromParams(2, 0xFF);
if ((u16)getFromParams(2, 0xFF) == 0xFF) {
mItemID = 0;
}
if (field_0x4DC == 1) {
mRadius = mRadius2;
} else {
mRadius = mRadius1;
}
updateMatrix();
mStateMgr.changeState(StateID_Wait);
boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
return SUCCEEDED;
}
int dAcOcloudDive_c::doDelete() {
return SUCCEEDED;
}
int dAcOcloudDive_c::actorExecute() {
mStateMgr.executeState();
mCollider.SetR(mRadius);
mCollider.SetH(height);
mCollider.SetC(position - mVec3_c(0.0f, height / 2, 0.0f));
dCcS::GetInstance()->Set(&mCollider);
return SUCCEEDED;
}
int dAcOcloudDive_c::draw() {
return SUCCEEDED;
}
void dAcOcloudDive_c::initializeState_Wait() {}
void dAcOcloudDive_c::executeState_Wait() {}
void dAcOcloudDive_c::executeState_Wait() {
if (fn_350_6F0()) {
mStateMgr.changeState(StateID_Dead);
}
if (fn_350_760()) {
dAcItem_c::giveItem22((ITEM_ID)mItemID, 0, -1);
mStateMgr.changeState(StateID_Dead);
}
}
void dAcOcloudDive_c::finalizeState_Wait() {}
void dAcOcloudDive_c::initializeState_Dead() {}
void dAcOcloudDive_c::initializeState_Dead() {
deleteRequest();
}
void dAcOcloudDive_c::executeState_Dead() {}
void dAcOcloudDive_c::finalizeState_Dead() {}
bool dAcOcloudDive_c::fn_350_6F0() {
return mCollider.mTg.mRPrm & 1 && mCollider.mTg.GetActor() != nullptr && mCollider.ChkTgAtHitType(0x20);
}
bool dAcOcloudDive_c::fn_350_760() {
bool ret = false;
bool temp = false;
mVec3_c deltaPosition = dAcPy_c::GetLink()->position - position;
f32 distance = EGG::Math<f32>::sqrt(deltaPosition.squareMagXZ());
if (distance <= mRadius) {
if (deltaPosition.y <= height / 2) {
temp = true;
}
}
if (temp) {
if (deltaPosition.y >= -height / 2) {
ret = true;
}
}
return ret;
}
+63 -1
View File
@@ -1,9 +1,71 @@
#include "d/a/obj/d_a_obj_decoB.h"
#include "common.h"
#include "d/a/d_a_player.h"
#include "f/f_base.h"
#include "m/m_vec.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "nw4r/g3d/res/g3d_resmdl.h"
#include "rvl/MTX/mtx.h"
SPECIAL_ACTOR_PROFILE(OBJ_DECOB, dAcODecoB_c, fProfile::OBJ_DECOB, 0x161, 0, 3);
STATE_DEFINE(dAcODecoB_c, Wait);
bool dAcODecoB_c::createHeap() {
void *data = getOarcResFile("DecoB");
mResFile = nw4r::g3d::ResFile(data);
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("DecoB");
return mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr);
}
int dAcODecoB_c::create() {
if (!initAllocatorWork1Heap(0x1000, "dAcODecoB_c::m_allocator", 0x20)) {
return FAILED;
}
forwardAccel = 0.0f;
forwardMaxSpeed = 0.0f;
mStateMgr.changeState(StateID_Wait);
boundingBox.Set(mVec3_c(-350.0f, 100.0f, -100.0f), mVec3_c(350.0f, -300.0f, 100.0f));
return SUCCEEDED;
}
int dAcODecoB_c::doDelete() {
return SUCCEEDED;
}
int dAcODecoB_c::actorExecute() {
mStateMgr.executeState();
PSMTXTrans(mWorldMtx, position.x, position.y, position.z);
mWorldMtx.ZXYrotM(rotation);
mMdl.setLocalMtx(mWorldMtx);
return SUCCEEDED;
}
int dAcODecoB_c::draw() {
drawModelType1(&mMdl);
return SUCCEEDED;
}
void dAcODecoB_c::initializeState_Wait() {}
void dAcODecoB_c::executeState_Wait() {}
f32 dAcODecoB_c::lbl_611_data_34 = 0.95f;
void dAcODecoB_c::executeState_Wait() {
if (dAcPy_c::GetLink() != nullptr && dAcPy_c::GetLink()->checkFlags0x350(0x2000)) {
mVec3_c deltaPosition = dAcPy_c::GetLink()->position - position;
f32 distance = EGG::Math<f32>::sqrt(deltaPosition.squareMagXZ());
distance = (2000.0f - distance) / 2000.0f;
if (distance < 0.0f) {
distance = 0.0f;
}
field_0x38E = distance * 2048.0f;
}
field_0x38E -= rotation.x * 0.05f;
field_0x38E = field_0x38E * lbl_611_data_34;
rotation.x += field_0x38E;
}
const f32 dAcODecoB_c::lbl_611_rodata_30 = 2000.0f;
void dAcODecoB_c::finalizeState_Wait() {}
+61
View File
@@ -1,3 +1,64 @@
#include "d/a/obj/d_a_obj_desert_debris.h"
#include "common.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_s.h"
#include "d/flag/storyflag_manager.h"
#include "f/f_base.h"
#include "m/m_vec.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "nw4r/g3d/res/g3d_resmdl.h"
#include "toBeSorted/arc_managers/current_stage_arc_manager.h"
SPECIAL_ACTOR_PROFILE(OBJ_DESERT_DEBRIS, dAcOdesertDebris_c, fProfile::OBJ_DESERT_DEBRIS, 0x213, 0, 2);
bool dAcOdesertDebris_c::createHeap() {
void *data = CurrentStageArcManager::GetInstance()->getData("g3d/stage.brres");
mResFile = nw4r::g3d::ResFile(data);
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("StageF300_4Gareki");
TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr));
void *dzb = CurrentStageArcManager::GetInstance()->getData("dzb/StageF300_4Gareki.dzb");
void *plc = CurrentStageArcManager::GetInstance()->getData("dat/StageF300_4Gareki.plc");
updateMatrix();
mMdl.setLocalMtx(mWorldMtx);
TRY_CREATE(!mBgW.Set((cBgD_t *)dzb, (PLC *)plc, 1, &mWorldMtx, &mScale));
mBgW.Lock();
return mBgW.InitMapStuff(&heap_allocator);
}
int dAcOdesertDebris_c::create() {
CREATE_ALLOCATOR(dAcOdesertDebris_c);
dBgS::GetInstance()->Regist(&mBgW, this);
dBgS::GetInstance()->RegistBg(&mBgW, this);
mStoryFlag = getFromParams(0, 0x7FF);
if (checkStoryFlag()) {
return FAILED;
}
mMdl.setPriorityDraw(0x1C, 9);
mVec3_c min, max;
mMdl.getBounds(&min, &max);
boundingBox.Set(min, max);
mCullingDistance = 50000.0f;
return SUCCEEDED;
}
int dAcOdesertDebris_c::doDelete() {
dBgS::GetInstance()->UnRegist(&mBgW);
return SUCCEEDED;
}
int dAcOdesertDebris_c::actorExecute() {
if (checkStoryFlag()) {
deleteRequest();
}
return SUCCEEDED;
}
int dAcOdesertDebris_c::draw() {
drawModelType1(&mMdl);
return SUCCEEDED;
}
bool dAcOdesertDebris_c::checkStoryFlag() const {
return mStoryFlag < 0x7FF && StoryflagManager::sInstance->getCounterOrFlag(mStoryFlag);
}
+54
View File
@@ -1,9 +1,63 @@
#include "d/a/obj/d_a_obj_hole.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_s.h"
#include "d/col/bg/d_bg_s_gnd_chk.h"
#include "f/f_base.h"
#include "m/m_vec.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "nw4r/g3d/res/g3d_resmdl.h"
SPECIAL_ACTOR_PROFILE(OBJ_HOLE, dAcOhole_c, fProfile::OBJ_HOLE, 0xF7, 0, 258);
STATE_DEFINE(dAcOhole_c, Wait);
bool dAcOhole_c::createHeap() {
void *data = getOarcResFile("Or");
mResFile = nw4r::g3d::ResFile(data);
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("octarock_hole");
bool ok = mMdl.create(mdl, &heap_allocator, 0x20, 1, nullptr);
if (!ok) {
return ok;
}
updateMatrix();
mMdl.setScale(mScale);
mMdl.setLocalMtx(mWorldMtx);
return ok;
}
int dAcOhole_c::create() {
CREATE_ALLOCATOR(dAcOhole_c);
u8 params1 = getFromParams(0, 3);
field_0x798 = params1 != 3 ? params1 : 0;
u8 params2 = getFromParams(2, 0xF);
field_0x799 = params2 != (s8)0xF ? params2 : 0xFF;
boundingBox.Set(mVec3_c(-200.0f, -200.0f, -200.0f), mVec3_c(200.0f, 200.0f, 200.0f));
mObjAcch.Set(this, 1, &mAcchCir);
mAcchCir.SetWall(100.0f, 100.0f);
mObjAcch.CrrPos(*dBgS::GetInstance());
dBgS_ObjGndChk::CheckPos(position);
mStateMgr.changeState(StateID_Wait);
return SUCCEEDED;
}
int dAcOhole_c::doDelete() {
return SUCCEEDED;
}
int dAcOhole_c::actorExecute() {
mStateMgr.executeState();
return SUCCEEDED;
}
int dAcOhole_c::draw() {
drawModelType1(&mMdl);
return SUCCEEDED;
}
void dAcOhole_c::initializeState_Wait() {}
void dAcOhole_c::executeState_Wait() {}
void dAcOhole_c::finalizeState_Wait() {}
+77
View File
@@ -1,9 +1,86 @@
#include "d/a/obj/d_a_obj_oct_grass.h"
#include "common.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/d_stage.h"
#include "f/f_base.h"
#include "f/f_profile_name.h"
#include "m/m_vec.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "nw4r/g3d/res/g3d_resmdl.h"
SPECIAL_ACTOR_PROFILE(OBJ_OCT_GRASS, dAcOOctGrass_c, fProfile::OBJ_OCT_GRASS, 0x236, 0, 3);
STATE_DEFINE(dAcOOctGrass_c, Wait);
const char *dAcOOctGrass_c::GRASS_OARCS[4] = {
"GrassOcta",
"GrassRollGrow",
"GrassGerm",
"GrassMain",
};
const char *dAcOOctGrass_c::GRASS_CUT_MODELS[4] = {
"GrassOctaCut",
"GrassRollCut",
"GrassGermCut",
"GrassMainCut",
};
bool dAcOOctGrass_c::createHeap() {
u8 typeIdx = getFromParams(0, 0xF);
void *data = getOarcResFile(GRASS_OARCS[typeIdx]);
mResFile = nw4r::g3d::ResFile(data);
if (typeIdx == 3) {
dStage_c::bindSkyCmnToResFile(&mResFile);
}
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl(GRASS_CUT_MODELS[typeIdx]);
TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr));
return true;
}
int dAcOOctGrass_c::create() {
CREATE_ALLOCATOR(dAcOOctGrass_c);
forwardAccel = 0.0f;
forwardMaxSpeed = -40.0f;
if ((params & 0xF) != 0) {
mMdl.setPriorityDraw(0x1C, 9);
}
updateMatrix();
mMdl.setLocalMtx(mWorldMtx);
spawnOcGrsL();
poscopy2 = position;
poscopy3 = position;
poscopy3.y += 20.0f;
mStateMgr.changeState(StateID_Wait);
boundingBox.Set(mVec3_c(-50.0f, -10.0f, -50.0f), mVec3_c(50.0f, 100.0f, 50.0f));
return SUCCEEDED;
}
int dAcOOctGrass_c::doDelete() {
return SUCCEEDED;
}
int dAcOOctGrass_c::actorExecute() {
return SUCCEEDED;
}
int dAcOOctGrass_c::draw() {
drawModelType1(&mMdl);
return SUCCEEDED;
}
void dAcOOctGrass_c::initializeState_Wait() {}
void dAcOOctGrass_c::executeState_Wait() {}
void dAcOOctGrass_c::finalizeState_Wait() {}
void dAcOOctGrass_c::spawnOcGrsL() {
u32 type = getFromParams(0, 0xF);
if (type == 0xF) {
type = 0;
}
dAcObjBase_c::create(
"OcGrsL", getRoomId(), type & 0xF, &position, nullptr, nullptr, getParams2_ignoreLower(), 0xFFFF, viewclip_index
);
}
+35
View File
@@ -1,10 +1,45 @@
#include "d/a/obj/d_a_obj_stopping_rope.h"
#include "d/a/obj/d_a_obj_base.h"
#include "f/f_base.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "nw4r/g3d/res/g3d_resmdl.h"
SPECIAL_ACTOR_PROFILE(OBJ_STOPPING_ROPE, dAcOStoppingRope_c, fProfile::OBJ_STOPPING_ROPE, 0x23B, 0, 3);
STATE_DEFINE(dAcOStoppingRope_c, Wait);
STATE_DEFINE(dAcOStoppingRope_c, SwitchOn);
bool dAcOStoppingRope_c::createHeap() {
void *data = getOarcResFile("Crane");
mResFile = nw4r::g3d::ResFile(data);
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("CraneN");
TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr));
void *dzb = getOarcFile("Crane", "dzb/Crane.dzb");
void *plc = getOarcFile("Crane", "dat/Crane.plc");
updateMatrix();
mMdl.setScale(mScale);
return !mBgW.Set((cBgD_t *)dzb, (PLC *)plc, 1, &mWorldMtx, &mScale);
}
int dAcOStoppingRope_c::create() {
return FAILED;
}
int dAcOStoppingRope_c::doDelete() {
return SUCCEEDED;
}
int dAcOStoppingRope_c::actorExecute() {
mStateMgr.executeState();
return SUCCEEDED;
}
int dAcOStoppingRope_c::draw() {
drawModelType1(&mMdl);
return SUCCEEDED;
}
void dAcOStoppingRope_c::initializeState_Wait() {}
void dAcOStoppingRope_c::executeState_Wait() {}
void dAcOStoppingRope_c::finalizeState_Wait() {}
+74
View File
@@ -1,3 +1,77 @@
#include "d/a/obj/d_a_obj_under_cloud.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/d_light_env.h"
#include "d/d_stage.h"
#include "f/f_base.h"
#include "m/m_vec.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "nw4r/g3d/res/g3d_resmdl.h"
SPECIAL_ACTOR_PROFILE(OBJ_UNDER_CLOUD, dAcOunderCloud_c, fProfile::OBJ_UNDER_CLOUD, 0x202, 0, 4);
bool dAcOunderCloud_c::createHeap() {
void *data = getOarcResFile("F020UnderCloud");
mResFile = nw4r::g3d::ResFile(data);
dStage_c::bindStageResToFile(&mResFile);
dStage_c::bindSkyCmnToResFile(&mResFile);
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("F020UnderCloud");
TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x160));
nw4r::g3d::ResAnmTexSrt anm = mResFile.GetResAnmTexSrt("F020UnderCloud");
TRY_CREATE(mAnm.create(mdl, anm, &heap_allocator, nullptr, 1));
mMdl.setOption(0x30001, false);
return true;
}
int dAcOunderCloud_c::create() {
CREATE_ALLOCATOR(dAcOunderCloud_c);
mMdl.setAnm(mAnm);
updateMatrix();
mMdl.setLocalMtx(mWorldMtx);
mMdl.setPriorityDraw(0x1C, 9);
boundingBox.Set(mVec3_c(-550000.0f, -30000.0f, -500000.0f), mVec3_c(500000.0f, -10000.0f, 500000.0f));
return SUCCEEDED;
}
int dAcOunderCloud_c::doDelete() {
return SUCCEEDED;
}
int dAcOunderCloud_c::actorExecute() {
mAnm.play();
return SUCCEEDED;
}
int dAcOunderCloud_c::actorExecuteInEvent() {
nw4r::g3d::ScnMdl *mdl = nw4r::g3d::ScnObj::DynamicCast<nw4r::g3d::ScnMdl>(mMdl.getG3dObject());
nw4r::g3d::ScnMdl::CopiedVisAccess visAccess(mdl, 1);
switch (mEvent.getCurrentEventCommand()) {
case 'act0': {
actorExecute();
mEvent.advanceNext();
break;
};
case 'act1': {
actorExecute();
visAccess.SetVisibility(false);
break;
};
case '????': {
actorExecute();
break;
};
default: {
mEvent.advanceNext();
};
}
return SUCCEEDED;
}
int dAcOunderCloud_c::draw() {
dLightEnv_c &lightEnv = dLightEnv_c::GetInstance();
if (lightEnv.fn_80024770(6) && !lightEnv.fn_800247A0(6)) {
return SUCCEEDED;
}
drawModelType1(&mMdl);
return SUCCEEDED;
}
+2 -3
View File
@@ -9,9 +9,9 @@
SPECIAL_BASE_PROFILE(C_GAME, dCsGame_c, fProfile::C_GAME, 0x2BF, 0x06F9);
CsGameConfigMaybe sConfig;
dCsGame_HIO_c sConfig;
CsGameConfigMaybe::CsGameConfigMaybe() {
dCsGame_HIO_c::dCsGame_HIO_c() {
field_0x04 = 0.0f;
field_0x08 = 0.0f;
field_0x0C = 0.0f;
@@ -31,7 +31,6 @@ CsGameConfigMaybe::CsGameConfigMaybe() {
field_0x3C = 1.0f;
field_0x40 = 5;
}
// CsGameConfigMaybe::~CsGameConfigMaybe() {}
STATE_DEFINE(dCsGame_c::lytItemCursor_c, Invisible);
STATE_DEFINE(dCsGame_c::lytItemCursor_c, Bow);
+3 -3
View File
@@ -3,7 +3,7 @@
#include "d/d_dvd_unk.h"
#include "d/d_gfx.h"
#include "d/d_reset.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "egg/gfx/eggDrawGX.h"
#include "egg/gfx/eggScreen.h"
#include "m/m_mtx.h"
@@ -124,8 +124,8 @@ void dDvdDriveError_c::draw() {
textWriter.SetFont(dDvdUnk::FontUnk::GetInstance()->getFont());
textWriter.SetScale(
UnkTextThing::getFn800B1F70() * UnkTextThing::getFn800B1FD0(),
UnkTextThing::getFn800B1F70() * UnkTextThing::getFn800B1FD0()
dLyt_HIO_c::getFn800B1F70() * dLyt_HIO_c::getFn800B1FD0(),
dLyt_HIO_c::getFn800B1F70() * dLyt_HIO_c::getFn800B1FD0()
);
textWriter.SetupGX();
+1 -1
View File
@@ -32,7 +32,7 @@ void dHeapAllocator::onAlloc(EGG::HeapAllocArg *arg) {
EGG::ExpHeap *dHeap::init(const char *name, size_t size, EGG::Heap *parent) {
heap = EGG::ExpHeap::create(size, parent, 4);
if (heap != nullptr) {
heap->setGroupID(0);
heap->setAllocMode(0);
heap->mName = name;
}
return heap;
+21 -21
View File
@@ -1,4 +1,4 @@
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "common.h"
#include "nw4r/lyt/lyt_arcResourceAccessor.h"
@@ -9,11 +9,11 @@ void dummy_ArcResourceAccessor(nw4r::lyt::ArcResourceAccessor *arg) {
delete arg;
}
UnkTextThing textThing;
UnkTextThing *UnkTextThing::sInstance;
dLyt_HIO_c textThing;
dLyt_HIO_c *dLyt_HIO_c::sInstance;
// UnkTextThing::~UnkTextThing() {}
UnkTextThing::UnkTextThing() {
// dLyt_HIO_c::~dLyt_HIO_c() {}
dLyt_HIO_c::dLyt_HIO_c() {
sInstance = this;
field_0x754 = 0.0f;
@@ -85,7 +85,7 @@ UnkTextThing::UnkTextThing() {
field_0x794 = 100.0f;
}
void UnkTextThing::destroy() {
void dLyt_HIO_c::destroy() {
for (int i = 0; i < 82; i++) {
if (field_buf0[i] != nullptr) {
destroyUnk(field_buf0[i]);
@@ -133,55 +133,55 @@ void UnkTextThing::destroy() {
}
}
f32 UnkTextThing::fn_800B1F10() {
f32 dLyt_HIO_c::fn_800B1F10() {
return field_0x794 / 100.0f;
}
void *UnkTextThing::allocUnk(size_t size, int align) {
void *dLyt_HIO_c::allocUnk(size_t size, int align) {
return nullptr;
}
void UnkTextThing::destroyUnk(void *_thing) {}
void dLyt_HIO_c::destroyUnk(void *_thing) {}
f32 UnkTextThing::fn_800B1F70() {
f32 dLyt_HIO_c::fn_800B1F70() {
f32 v = fn_800B1FC0();
v *= fn_800B1FE0();
return v;
}
f32 UnkTextThing::fn_800B1FC0() {
f32 dLyt_HIO_c::fn_800B1FC0() {
return 1.0f;
}
f32 UnkTextThing::fn_800B1FD0() {
f32 dLyt_HIO_c::fn_800B1FD0() {
return 0.9f;
}
f32 UnkTextThing::fn_800B1FE0() {
f32 dLyt_HIO_c::fn_800B1FE0() {
return 1.0f;
}
f32 UnkTextThing::fn_800B1FF0() {
f32 dLyt_HIO_c::fn_800B1FF0() {
return 0.0f;
}
f32 UnkTextThing::fn_800B2000() {
f32 dLyt_HIO_c::fn_800B2000() {
return 0.0f;
}
f32 UnkTextThing::fn_800B2010() {
f32 dLyt_HIO_c::fn_800B2010() {
return -1.0f;
}
f32 UnkTextThing::fn_800B2020() {
f32 dLyt_HIO_c::fn_800B2020() {
return 0.0f;
}
f32 UnkTextThing::fn_800B2030() {
f32 dLyt_HIO_c::fn_800B2030() {
return 0.0f;
}
f32 UnkTextThing::fn_800B2040() {
f32 dLyt_HIO_c::fn_800B2040() {
return 0.0f;
}
void UnkTextThing::destroyMsg(MsbtInfo *msg) {
void dLyt_HIO_c::destroyMsg(MsbtInfo *msg) {
mShouldHookAllocations = true;
LMS_CloseMessage(msg);
mShouldHookAllocations = false;
}
void UnkTextThing::destroyFlow(MsbfInfo *flow) {
void dLyt_HIO_c::destroyFlow(MsbfInfo *flow) {
mShouldHookAllocations = true;
LMS_CloseFlow(flow);
mShouldHookAllocations = false;
+10 -10
View File
@@ -13,7 +13,7 @@
#include "d/d_stage.h"
#include "d/d_stage_mgr.h"
#include "d/d_tag_processor.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "d/flag/itemflag_manager.h"
#include "d/flag/sceneflag_manager.h"
#include "d/flag/storyflag_manager.h"
@@ -1418,18 +1418,18 @@ dMessage_c *dMessage_c::sInstance;
dTagProcessor_c *dMessage_c::sTagProcessor;
static void *msbAlloc(size_t size) {
if (UnkTextThing::getInstance()->getShouldHookAllocations() == false) {
if (dLyt_HIO_c::getInstance()->getShouldHookAllocations() == false) {
return EGG::Heap::alloc(size, 0x20, nullptr);
} else {
return UnkTextThing::getInstance()->allocUnk(size, 0x20);
return dLyt_HIO_c::getInstance()->allocUnk(size, 0x20);
}
}
static void msbFree(void *ptr) {
if (UnkTextThing::getInstance()->getShouldHookAllocations() == false) {
if (dLyt_HIO_c::getInstance()->getShouldHookAllocations() == false) {
EGG::Heap::free(ptr, nullptr);
} else {
UnkTextThing::getInstance()->destroyUnk(ptr);
dLyt_HIO_c::getInstance()->destroyUnk(ptr);
}
}
@@ -1475,7 +1475,7 @@ int dMessage_c::create() {
}
int dMessage_c::doDelete() {
UnkTextThing::getInstance()->destroy();
dLyt_HIO_c::getInstance()->destroy();
if (sTagProcessor != nullptr) {
delete sTagProcessor;
sTagProcessor = nullptr;
@@ -1688,7 +1688,7 @@ MsbtInfo *dMessage_c::getMsbtInfoForIndex(s32 index) {
}
MsbtInfo *dMessage_c::getMsbtInfoForIndexInternal(s32 index) {
UnkTextThing *thing = UnkTextThing::getInstance();
dLyt_HIO_c *thing = dLyt_HIO_c::getInstance();
MsbtInfo *overrideMsbt = thing->getOverrideMsbtInfo(index);
if (overrideMsbt != nullptr && thing->getShouldOverrideData() == true) {
return overrideMsbt;
@@ -1701,7 +1701,7 @@ MsbfInfo *dMessage_c::getMsbfInfoForIndex(s32 index) {
}
MsbfInfo *dMessage_c::getMsbfInfoForIndexInternal(s32 index) {
UnkTextThing *thing = UnkTextThing::getInstance();
dLyt_HIO_c *thing = dLyt_HIO_c::getInstance();
MsbfInfo *overrideMsbf = thing->getOverrideMsbfInfo(index);
if (overrideMsbf != nullptr && thing->getShouldOverrideData() == true) {
return overrideMsbf;
@@ -1865,7 +1865,7 @@ void *dMessage_c::sZev0;
void *dMessage_c::sZevStage;
void *dMessage_c::getZev0Internal() {
UnkTextThing *thing = UnkTextThing::getInstance();
dLyt_HIO_c *thing = dLyt_HIO_c::getInstance();
void *overrideZev = thing->getOverrideZev0();
if (overrideZev != nullptr && thing->getShouldOverrideData() == true) {
return overrideZev;
@@ -1874,7 +1874,7 @@ void *dMessage_c::getZev0Internal() {
}
void *dMessage_c::getZevStageInternal() {
UnkTextThing *thing = UnkTextThing::getInstance();
dLyt_HIO_c *thing = dLyt_HIO_c::getInstance();
void *overrideZev = thing->getOverrideStageZev();
if (overrideZev != nullptr && thing->getShouldOverrideData() == true) {
return overrideZev;
+50 -50
View File
@@ -4,7 +4,7 @@
#include "d/a/d_a_base.h"
#include "d/d_font_manager.h"
#include "d/d_message.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "d/d_textwindow_unk.h"
#include "d/lyt/d_lyt_util_items.h"
#include "d/lyt/d_textbox.h"
@@ -485,7 +485,7 @@ void dTagProcessor_c::formatV(
case 0x30000: {
if (textBox != nullptr) {
backupScale = currScale;
currScale *= UnkTextThing::getField0x768();
currScale *= dLyt_HIO_c::getField0x768();
currScale *= textBox->getMyScale();
}
writePtr = writeTextNormal(src, writePtr, &local_b4, cmdLen, state4);
@@ -672,7 +672,7 @@ beginning:
if (currScale != newScale) {
nw4r::lyt::Size fontSize = mpTextBox->GetFontSize();
posY -= (fontSize.height * ((currScale - newScale) / baseScale) / 2.0f) *
UnkTextThing::getField0x788();
dLyt_HIO_c::getField0x788();
currScale = newScale;
}
}
@@ -680,7 +680,7 @@ beginning:
case 0x30000: {
if (b2) {
backupScale = currScale;
f32 tmp = backupScale * UnkTextThing::getField0x768();
f32 tmp = backupScale * dLyt_HIO_c::getField0x768();
if (textBox != nullptr) {
tmp *= textBox->getMyScale();
}
@@ -695,7 +695,7 @@ beginning:
*writePtr = -1;
const nw4r::ut::Font *fnt = dFontMng_c::getFont(dFontMng_c::PICTURE);
s8 c = getAnimatedIconReplacement(READ_U8(endPtr, 0));
f32 tmp = UnkTextThing::getField0x764();
f32 tmp = dLyt_HIO_c::getField0x764();
f32 wid = tmp / fnt->GetWidth() * currScale;
f32 charSpace = textBox->GetCharSpace();
f32 charWidth = wid * fnt->GetCharWidth(c);
@@ -962,14 +962,14 @@ void dTagProcessor_c::fn_800B4FF0(nw4r::ut::Rect *rect, nw4r::ut::PrintContext<w
// the tmp vars, but control flow from the inlines remains
f32 w1 = fontSize.width * 0.5f;
f32 h1 = fontSize.height * 0.5f;
if (w1 < UnkTextThing::getField0x758() || h1 < UnkTextThing::getField0x758()) {
if (w1 < dLyt_HIO_c::getField0x758() || h1 < dLyt_HIO_c::getField0x758()) {
if (w1 < h1) {
f32 tmp = UnkTextThing::getField0x758();
f32 tmp = dLyt_HIO_c::getField0x758();
} else {
f32 tmp2 = UnkTextThing::getField0x758();
f32 tmp2 = dLyt_HIO_c::getField0x758();
}
}
f32 tmp3 = UnkTextThing::getField0x758();
f32 tmp3 = dLyt_HIO_c::getField0x758();
// End unused code
f32 f7 = (fontSize.height + getTextBox()->GetLineSpace()) / 2.0f;
@@ -1391,8 +1391,8 @@ void dTagProcessor_c::changeScale(nw4r::ut::Rect *rect, nw4r::ut::PrintContext<w
} else {
field_0x904 = ctx->writer->GetScaleV();
field_0x908 = ctx->writer->GetCursorY();
scale = field_0x904 * UnkTextThing::getField0x768();
posY = field_0x908 - ctx->writer->GetFontAscent() * UnkTextThing::getField0x76C();
scale = field_0x904 * dLyt_HIO_c::getField0x768();
posY = field_0x908 - ctx->writer->GetFontAscent() * dLyt_HIO_c::getField0x76C();
}
ctx->writer->SetCursorY(posY);
@@ -1402,7 +1402,7 @@ void dTagProcessor_c::changeScale(nw4r::ut::Rect *rect, nw4r::ut::PrintContext<w
void dTagProcessor_c::saveIconWidth(dTextBox_c *textBox, wchar_t *cmd, f32 arg) {
nw4r::ut::Font *f = dFontMng_c::getFont(dFontMng_c::PICTURE);
s8 c3 = getAnimatedIconReplacement(READ_U8(cmd, 0));
arg = UnkTextThing::getField0x764() / f->GetWidth() * arg;
arg = dLyt_HIO_c::getField0x764() / f->GetWidth() * arg;
mLineData.mLineWidths[mLineData.mNumLines] += arg * f->GetCharWidth(c3) + textBox->GetCharSpace();
}
@@ -1435,10 +1435,10 @@ void dTagProcessor_c::drawPicture(
) {
nw4r::ut::Font *font = dFontMng_c::getFont(dFontMng_c::PICTURE);
f32 f1 = UnkTextThing::getField0x764() * w->GetScaleV() / UnkTextThing::getFn800B1FC0();
f32 f3 = UnkTextThing::getFn800B1FC0();
f32 f4 = UnkTextThing::getField0x764();
f32 f5 = UnkTextThing::getFn800B1FC0();
f32 f1 = dLyt_HIO_c::getField0x764() * w->GetScaleV() / dLyt_HIO_c::getFn800B1FC0();
f32 f3 = dLyt_HIO_c::getFn800B1FC0();
f32 f4 = dLyt_HIO_c::getField0x764();
f32 f5 = dLyt_HIO_c::getFn800B1FC0();
f32 scaleY2 = w->GetScaleV();
s32 fontHeight = w->GetFont()->GetHeight();
@@ -1528,7 +1528,7 @@ void dTagProcessor_c::configureWriterForIcon(
) {
nw4r::ut::Font *font = dFontMng_c::getFont(dFontMng_c::PICTURE);
f32 f1 = UnkTextThing::getField0x764() * ctx->writer->GetScaleV() / UnkTextThing::getFn800B1FC0();
f32 f1 = dLyt_HIO_c::getField0x764() * ctx->writer->GetScaleV() / dLyt_HIO_c::getFn800B1FC0();
w->SetFont(*font);
w->SetFontSize(f1);
w->SetGradationMode(nw4r::ut::CharWriter::GRADMODE_V);
@@ -1656,39 +1656,39 @@ u8 dTagProcessor_c::symbolToFontIdx(s32 s) {
u8 dTagProcessor_c::getAnimatedIconReplacement(u8 arg) {
if (arg >= FONT_BTN_NUN_STK_UP && arg <= FONT_BTN_NUN_STK_RIGHT) {
if (mButtonPressAnimTimer >= UnkTextThing::getAnimBtnTotalDuration()) {
if (mButtonPressAnimTimer >= dLyt_HIO_c::getAnimBtnTotalDuration()) {
// Show base instead
return symbolToFontIdx(FONT_BTN_NUN_STK);
}
} else if (arg >= FONT_BTN_CROSS_UP && arg <= FONT_BTN_CROSS_RIGHT) {
if (mButtonPressAnimTimer >= UnkTextThing::getAnimBtnTotalDuration()) {
if (mButtonPressAnimTimer >= dLyt_HIO_c::getAnimBtnTotalDuration()) {
// Show base instead
// Empty Cross Btn
return '.';
}
} else if (arg == FONT_BTN_NUN_STK_WIGGLE_VERTICAL) {
if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration()) {
if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration()) {
return symbolToFontIdx(FONT_BTN_NUN_STK_UP);
}
if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) {
if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) {
return symbolToFontIdx(FONT_BTN_NUN_STK);
}
if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 3) {
if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 3) {
return symbolToFontIdx(FONT_BTN_NUN_STK_DOWN);
}
return symbolToFontIdx(FONT_BTN_NUN_STK);
} else if (arg == FONT_BTN_NUN_STK_WIGGLE_HORIZONTAL) {
if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration()) {
if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration()) {
return symbolToFontIdx(FONT_BTN_NUN_STK_LEFT);
}
if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) {
if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) {
return symbolToFontIdx(FONT_BTN_NUN_STK);
}
if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 3) {
if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 3) {
return symbolToFontIdx(FONT_BTN_NUN_STK_RIGHT);
}
return symbolToFontIdx(FONT_BTN_NUN_STK);
@@ -1699,13 +1699,13 @@ u8 dTagProcessor_c::getAnimatedIconReplacement(u8 arg) {
u8 dTagProcessor_c::getAnimatedWiggleIconReplacement(u8 arg) {
if (arg == FONT_BTN_NUN_STK_WIGGLE_VERTICAL) {
if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) {
if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) {
return symbolToFontIdx(FONT_BTN_NUN_STK_UP);
} else {
return symbolToFontIdx(FONT_BTN_NUN_STK_DOWN);
}
} else if (arg == FONT_BTN_NUN_STK_WIGGLE_HORIZONTAL) {
if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) {
if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) {
return symbolToFontIdx(FONT_BTN_NUN_STK_LEFT);
} else {
return symbolToFontIdx(FONT_BTN_NUN_STK_RIGHT);
@@ -1716,18 +1716,18 @@ u8 dTagProcessor_c::getAnimatedWiggleIconReplacement(u8 arg) {
u8 dTagProcessor_c::getAlphaForAnimatedIcon(u8 arg) {
f32 ret = 255.0f;
f32 duration = UnkTextThing::getAnimBtnTransitionDuration();
f32 duration = dLyt_HIO_c::getAnimBtnTransitionDuration();
if (arg >= FONT_BTN_NUN_STK_UP && arg <= FONT_BTN_NUN_STK_RIGHT) {
if (mButtonPressAnimTimer < UnkTextThing::getAnimBtnTransitionDuration()) {
if (mButtonPressAnimTimer < dLyt_HIO_c::getAnimBtnTransitionDuration()) {
// Ramp-up, become visible
ret = (mButtonPressAnimTimer / duration) * ret;
} else if (mButtonPressAnimTimer < UnkTextThing::getAnimBtnTotalDuration()) {
} else if (mButtonPressAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration()) {
// Fully visible
ret = 255.0f;
} else if (mButtonPressAnimTimer <
UnkTextThing::getAnimBtnTotalDuration() + UnkTextThing::getAnimBtnTransitionDuration()) {
dLyt_HIO_c::getAnimBtnTotalDuration() + dLyt_HIO_c::getAnimBtnTransitionDuration()) {
// Ramp-down, become invisible
ret = (UnkTextThing::getAnimBtnTotalDuration() + UnkTextThing::getAnimBtnTransitionDuration() -
ret = (dLyt_HIO_c::getAnimBtnTotalDuration() + dLyt_HIO_c::getAnimBtnTransitionDuration() -
mButtonPressAnimTimer) /
duration * ret;
} else {
@@ -1735,32 +1735,32 @@ u8 dTagProcessor_c::getAlphaForAnimatedIcon(u8 arg) {
ret = 0.0f;
}
} else if (arg >= FONT_BTN_NUN_STK_WIGGLE_VERTICAL && arg <= FONT_BTN_NUN_STK_WIGGLE_HORIZONTAL) {
if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTransitionDuration()) {
if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTransitionDuration()) {
// Ramp-up direction variant, become visible
ret = (mButtonWiggleAnimTimer / duration) * ret;
} else if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration()) {
} else if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration()) {
// Direction fully visible
ret = 255.0f;
} else if (mButtonWiggleAnimTimer <
UnkTextThing::getAnimBtnTotalDuration() + UnkTextThing::getAnimBtnTransitionDuration()) {
dLyt_HIO_c::getAnimBtnTotalDuration() + dLyt_HIO_c::getAnimBtnTransitionDuration()) {
// Ramp-down direction variant, become invisible
ret = (UnkTextThing::getAnimBtnTotalDuration() + UnkTextThing::getAnimBtnTransitionDuration() -
ret = (dLyt_HIO_c::getAnimBtnTotalDuration() + dLyt_HIO_c::getAnimBtnTransitionDuration() -
mButtonWiggleAnimTimer) /
duration * ret;
} else if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) {
} else if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) {
// Invisible
ret = 0.0f;
} else if (mButtonWiggleAnimTimer <
UnkTextThing::getAnimBtnTransitionDuration() + UnkTextThing::getAnimBtnTotalDuration() * 2) {
dLyt_HIO_c::getAnimBtnTransitionDuration() + dLyt_HIO_c::getAnimBtnTotalDuration() * 2) {
// Ramp-up base variant, become visible
ret = (mButtonWiggleAnimTimer - 2 * UnkTextThing::getAnimBtnTotalDuration()) / duration * ret;
} else if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 3) {
ret = (mButtonWiggleAnimTimer - 2 * dLyt_HIO_c::getAnimBtnTotalDuration()) / duration * ret;
} else if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 3) {
// Base variant fully visible
ret = 255.0f;
} else if (mButtonWiggleAnimTimer <
UnkTextThing::getAnimBtnTransitionDuration() + UnkTextThing::getAnimBtnTotalDuration() * 3) {
dLyt_HIO_c::getAnimBtnTransitionDuration() + dLyt_HIO_c::getAnimBtnTotalDuration() * 3) {
// Ramp-down base variant, become invisible
ret = ((UnkTextThing::getAnimBtnTransitionDuration() + 3 * UnkTextThing::getAnimBtnTotalDuration()) -
ret = ((dLyt_HIO_c::getAnimBtnTransitionDuration() + 3 * dLyt_HIO_c::getAnimBtnTotalDuration()) -
mButtonWiggleAnimTimer) /
duration * ret;
} else {
@@ -1780,7 +1780,7 @@ void dTagProcessor_c::setStringArg(const wchar_t *arg, s32 index) {
f32 dTagProcessor_c::fn_800B8040(s8 factor, u32 windowType) {
// Fun little recursion here
f32 f1 = UnkTextThing::getFn800B1F70();
f32 f1 = dLyt_HIO_c::getFn800B1F70();
if (windowType == dLytMsgWindow_c::MSG_WINDOW_WOOD) {
f32 f2 = fn_800B8040(0, 0);
f32 f3 = fn_800B8040(factor, 0);
@@ -1810,7 +1810,7 @@ f32 dTagProcessor_c::fn_800B8040(s8 factor, u32 windowType) {
case 1: x = 0.95f; break;
case 2: x = 1.1f; break;
}
x *= UnkTextThing::getFn800B1F10();
x *= dLyt_HIO_c::getFn800B1F10();
return x * f1;
}
}
@@ -1910,14 +1910,14 @@ f32 dTagProcessor_c::fn_800B85C0(s32 lineIdx) {
// the tmp vars, but control flow from the inlines remains
f32 w1 = fontSize.width * 0.5f;
f32 h1 = fontSize.height * 0.5f;
if (w1 < UnkTextThing::getField0x758() || h1 < UnkTextThing::getField0x758()) {
if (w1 < dLyt_HIO_c::getField0x758() || h1 < dLyt_HIO_c::getField0x758()) {
if (w1 < h1) {
f32 tmp = UnkTextThing::getField0x758();
f32 tmp = dLyt_HIO_c::getField0x758();
} else {
f32 tmp2 = UnkTextThing::getField0x758();
f32 tmp2 = dLyt_HIO_c::getField0x758();
}
}
f32 tmp3 = UnkTextThing::getField0x758();
f32 tmp3 = dLyt_HIO_c::getField0x758();
// End unused code
f32 f7 = (fontSize.height + getTextBox()->GetLineSpace()) / 2.0f;
@@ -2016,14 +2016,14 @@ void dTagProcessor_c::setNumericArgs(const s32 *args, s32 numArgs) {
void dTagProcessor_c::executeBtnPressTimer() {
mButtonPressAnimTimer++;
if (mButtonPressAnimTimer >= UnkTextThing::getAnimBtnTotalDuration() * 2) {
if (mButtonPressAnimTimer >= dLyt_HIO_c::getAnimBtnTotalDuration() * 2) {
mButtonPressAnimTimer = 0;
}
}
void dTagProcessor_c::executeBtnWiggleTimer() {
mButtonWiggleAnimTimer++;
if (mButtonWiggleAnimTimer >= UnkTextThing::getAnimBtnTotalDuration() * 4) {
if (mButtonWiggleAnimTimer >= dLyt_HIO_c::getAnimBtnTotalDuration() * 4) {
mButtonWiggleAnimTimer = 0;
}
}
+4 -4
View File
@@ -6,7 +6,7 @@
#include "d/d_gfx.h"
#include "d/d_message.h"
#include "d/d_tag_processor.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "d/lyt/d_textbox.h"
#include "d/lyt/msg_window/d_lyt_msg_window.h"
#include "m/m_vec.h"
@@ -49,13 +49,13 @@ bool TextWindowUnk::fn_800B2130(const char *label, dTextBox_c *textBox, dLytMsgW
}
}
UnkTextThing::getInstance()->setStr1(label);
dLyt_HIO_c::getInstance()->setStr1(label);
if (dLytMsgWindow_c::getInstance()->fn_80117390(true) != nullptr) {
// Regswap
UnkTextThing::getInstance()->setStr2(dLytMsgWindow_c::getInstance()->fn_80117390(true));
dLyt_HIO_c::getInstance()->setStr2(dLytMsgWindow_c::getInstance()->fn_80117390(true));
s32 idx = dMessage_c::getMsbtIndexForLabel(label);
if (idx >= 0) {
UnkTextThing::getInstance()->setStr3(dMessage_c::getMsbtFileName(idx));
dLyt_HIO_c::getInstance()->setStr3(dMessage_c::getMsbtFileName(idx));
}
}
return true;
+8 -8
View File
@@ -2,7 +2,7 @@
#include "d/d_font_manager.h"
#include "d/d_message.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "d/lyt/d_textbox.h"
#include "d/lyt/d_window.h"
#include "egg/gfx/eggScreen.h"
@@ -467,8 +467,8 @@ void LytBase_c::setProperties(nw4r::lyt::Pane *pane, f32 posX, f32 posY, f32 sca
}
nw4r::math::VEC3 t2 = textBox->GetTranslate();
t2.x += UnkTextThing::getFn800B2030();
t2.y += UnkTextThing::getFn800B2040();
t2.x += dLyt_HIO_c::getFn800B2030();
t2.y += dLyt_HIO_c::getFn800B2040();
textBox->SetTranslate(t2);
if (scale != -9999.0f) {
@@ -480,7 +480,7 @@ void LytBase_c::setProperties(nw4r::lyt::Pane *pane, f32 posX, f32 posY, f32 sca
} else {
const nw4r::ut::Font *f = textBox->GetFont();
if (f != nullptr) {
textBox->SetScale(UnkTextThing::getFn800B1FD0());
textBox->SetScale(dLyt_HIO_c::getFn800B1FD0());
}
}
@@ -490,17 +490,17 @@ void LytBase_c::setProperties(nw4r::lyt::Pane *pane, f32 posX, f32 posY, f32 sca
if (spaceX != -9999.0f) {
textBox->SetCharSpace(spaceX);
} else {
f6 = UnkTextThing::getFn800B2010();
f6 = dLyt_HIO_c::getFn800B2010();
}
if (spaceY != -9999.0f) {
textBox->SetLineSpace(spaceY);
} else {
f4 = UnkTextThing::getFn800B1FF0();
f4 = dLyt_HIO_c::getFn800B1FF0();
}
textBox->SetCharSpace(textBox->GetCharSpace() + UnkTextThing::getFn800B2020() + f6);
textBox->SetLineSpace(textBox->GetLineSpace() + UnkTextThing::getFn800B2000() + f4);
textBox->SetCharSpace(textBox->GetCharSpace() + dLyt_HIO_c::getFn800B2020() + f6);
textBox->SetLineSpace(textBox->GetLineSpace() + dLyt_HIO_c::getFn800B2000() + f4);
fn_800AB930(textBox);
}
+8 -8
View File
@@ -10,9 +10,9 @@
#include "sized_string.h"
#include "toBeSorted/event_manager.h"
struct DoButtonClass {
DoButtonClass();
virtual ~DoButtonClass();
struct dLytDoButton_HIO_c {
dLytDoButton_HIO_c();
virtual ~dLytDoButton_HIO_c();
u8 field_0x04;
u8 field_0x05;
@@ -26,9 +26,9 @@ struct DoButtonClass {
u8 field_0x16;
};
static DoButtonClass sDoButtonClass;
static dLytDoButton_HIO_c sHio;
DoButtonClass::DoButtonClass() {
dLytDoButton_HIO_c::dLytDoButton_HIO_c() {
field_0x04 = 0;
field_0x05 = 0x29;
field_0x06 = 0x5E;
@@ -40,7 +40,7 @@ DoButtonClass::DoButtonClass() {
field_0x15 = 0;
field_0x16 = 0;
}
DoButtonClass::~DoButtonClass() {}
dLytDoButton_HIO_c::~dLytDoButton_HIO_c() {}
dLytDobutton_c *dLytDobutton_c::sInstance;
@@ -172,7 +172,7 @@ void dLytDobutton_c::executeState_InvisibleTimeCnt() {
field_0x48C = 0;
}
} else {
if (field_0x48C < sDoButtonClass.field_0x15) {
if (field_0x48C < sHio.field_0x15) {
field_0x48C++;
} else {
realize();
@@ -777,7 +777,7 @@ void dLytDobutton_c::fn_8010E3D0(bool b) {
f32 tmp = (xBase - left);
w1 = mpTextBoxes[0]->GetLineWidth(nullptr) + tmp;
}
f32 w = w1 + sDoButtonClass.field_0x10;
f32 w = w1 + sHio.field_0x10;
sz3.width = w;
sz4.width = w;
mpPanes[3]->SetSize(sz3);
+1
View File
@@ -5,6 +5,7 @@
#include "d/lyt/meter/d_lyt_meter.h"
#include "toBeSorted/misc_actor.h"
// TODO: Rename _HIO_c when LytDoButtonRelated gets a better name?
class LytDoButtonRelatedClass {
public:
LytDoButtonRelatedClass();
+6 -6
View File
@@ -8,9 +8,9 @@
#include "sized_string.h"
#include "toBeSorted/arc_managers/layout_arc_manager.h"
struct LytMapConfigMaybe {
LytMapConfigMaybe();
virtual ~LytMapConfigMaybe();
struct dLytMap_HIO_c {
dLytMap_HIO_c();
virtual ~dLytMap_HIO_c();
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
@@ -40,9 +40,9 @@ struct LytMapConfigMaybe {
/* 0x2C */ f32 field_0x2C;
};
LytMapConfigMaybe sLytMapConfig;
dLytMap_HIO_c sHio;
LytMapConfigMaybe::LytMapConfigMaybe() {
dLytMap_HIO_c::dLytMap_HIO_c() {
field_0x04 = -10.0f;
field_0x10 = 14.0f;
field_0x14 = 32.0f;
@@ -71,7 +71,7 @@ LytMapConfigMaybe::LytMapConfigMaybe() {
field_0x2B = 10;
}
LytMapConfigMaybe::~LytMapConfigMaybe() {}
dLytMap_HIO_c::~dLytMap_HIO_c() {}
STATE_DEFINE(dLytMapPinIcon_c, Wait);
STATE_DEFINE(dLytMapPinIcon_c, ToSelect);
+5 -5
View File
@@ -5,7 +5,7 @@
#include "d/d_gfx.h"
#include "d/d_message.h"
#include "d/d_tag_processor.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "d/lyt/msg_window/d_lyt_msg_window.h"
#include "libms/msgfile.h"
#include "m/m_color.h"
@@ -405,7 +405,7 @@ f32 dTextBox_c::GetLinesHeight() const {
f32 assumedDefaultSize = 35.0f;
f32 f3 = UnkTextThing::getFn800B1F70();
f32 f3 = dLyt_HIO_c::getFn800B1F70();
nw4r::lyt::Size size = mMyFontSize;
int fontHeight = f->GetHeight();
f3 *= (size.height / assumedDefaultSize) * fontHeight;
@@ -493,7 +493,7 @@ void dTextBox_c::init() {
}
nw4r::lyt::Size sz = GetFontSize();
f32 scale = UnkTextThing::getFn800B1F70();
f32 scale = dLyt_HIO_c::getFn800B1F70();
f32 height = sz.height / f1;
sz.width = GetFont()->GetWidth() * height * scale;
@@ -625,11 +625,11 @@ void dTextBox_c::DrawSelf(const nw4r::lyt::DrawInfo &drawInfo) {
unk1 = field_0x1F8 == 1;
}
if (field_0x1F7 == 1 || (field_0x1F7 == 2 && unk1)) {
f32 f = GetFontSize().height * UnkTextThing::getField0x75C();
f32 f = GetFontSize().height * dLyt_HIO_c::getField0x75C();
textRect.top -= f;
textRect.bottom -= f;
} else if (field_0x1F7 == 3 && unk1) {
f32 f = GetFontSize().height * UnkTextThing::getField0x760();
f32 f = GetFontSize().height * dLyt_HIO_c::getField0x760();
textRect.top -= f;
textRect.bottom -= f;
}
+2 -2
View File
@@ -18,7 +18,7 @@
#include "d/lyt/d_lyt_control_game.h"
#include "d/lyt/d_lyt_do_button.h"
#include "d/lyt/d_lyt_map.h"
#include "d/lyt/d_lyt_meter_configuration.h"
#include "d/lyt/d_lyt_meter_hio.h"
#include "d/lyt/d_lyt_save_mgr.h"
#include "d/lyt/d_lyt_unknowns.h"
#include "d/lyt/d_window.h"
@@ -43,7 +43,7 @@
#include "toBeSorted/misc_actor.h"
// clang-format on
static dLytMeterConfiguration_c sConf;
static dLytMeter_HIO_c sHio;
dLytMeter_c *dLytMeter_c::sInstance;
STATE_DEFINE(dLytMeter1Button_c, Wait);
+10 -10
View File
@@ -4,7 +4,7 @@
#include "d/a/d_a_player.h"
#include "d/d_camera.h"
#include "d/d_sc_game.h"
#include "d/lyt/d_lyt_meter_configuration.h"
#include "d/lyt/d_lyt_meter_hio.h"
#include "m/m_vec.h"
#include "toBeSorted/d_d3d.h"
#include "toBeSorted/event_manager.h"
@@ -329,7 +329,7 @@ bool dLytMeterGanbariGauge_c::build(d2d::ResAccIf_c *resAcc) {
field_0x54C = 1.0f;
field_0x550 = 1.0f;
field_0x548 = dLytMeterConfiguration_c::sInstance->field_0x1C8;
field_0x548 = dLytMeter_HIO_c::sInstance->field_0x1C8;
field_0x558 = 0;
field_0x559 = 0;
@@ -343,7 +343,7 @@ bool dLytMeterGanbariGauge_c::build(d2d::ResAccIf_c *resAcc) {
field_0x540 = 0;
field_0x534 = 0;
if (dLytMeterConfiguration_c::sInstance->field_0x13C != 0) {
if (dLytMeter_HIO_c::sInstance->field_0x13C != 0) {
field_0x534 = 0;
} else {
field_0x534 = 1;
@@ -395,7 +395,7 @@ bool dLytMeterGanbariGauge_c::execute() {
if (fn_80104710(false) || (isCrawling() && !fn_801047B0())) {
field_0x534 = 1;
} else if (dLytMeterConfiguration_c::GetInstance()->field_0x13C) {
} else if (dLytMeter_HIO_c::GetInstance()->field_0x13C) {
field_0x534 = 0;
} else {
field_0x534 = 1;
@@ -503,7 +503,7 @@ bool dLytMeterGanbariGauge_c::execute() {
mVec2_c scaleV(scale, scale);
mLyt.getLayout()->GetRootPane()->SetScale(scaleV);
if (!field_0x534 && len <= dLytMeterConfiguration_c::GetInstance()->field_0x138 && !fn_80104710(false) &&
if (!field_0x534 && len <= dLytMeter_HIO_c::GetInstance()->field_0x138 && !fn_80104710(false) &&
!isCrawling()) {
field_0x530 = 1;
} else {
@@ -526,8 +526,8 @@ bool dLytMeterGanbariGauge_c::execute() {
if (field_0x544 != 0) {
if (mStaminaPercent < field_0x550 &&
mStaminaPercent < field_0x51C - dLytMeterConfiguration_c::GetInstance()->getField_0x1CC()) {
field_0x548 = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8();
mStaminaPercent < field_0x51C - dLytMeter_HIO_c::GetInstance()->getField_0x1CC()) {
field_0x548 = dLytMeter_HIO_c::GetInstance()->getField_0x1C8();
field_0x54C = field_0x51C;
field_0x550 = mStaminaPercent;
mAnm[GANBARI_ANIM_UPDOWN_1].setFrame(field_0x54C * 100.0f);
@@ -537,7 +537,7 @@ bool dLytMeterGanbariGauge_c::execute() {
field_0x548--;
}
if (field_0x548 == 0) {
field_0x54C -= dLytMeterConfiguration_c::GetInstance()->getField_0x1D0();
field_0x54C -= dLytMeter_HIO_c::GetInstance()->getField_0x1D0();
if (field_0x54C < mStaminaPercent) {
field_0x544 = 0;
mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(true);
@@ -552,11 +552,11 @@ bool dLytMeterGanbariGauge_c::execute() {
}
}
} else {
if (mStaminaPercent < field_0x51C - dLytMeterConfiguration_c::GetInstance()->getField_0x1C4()) {
if (mStaminaPercent < field_0x51C - dLytMeter_HIO_c::GetInstance()->getField_0x1C4()) {
field_0x544 = 1;
field_0x54C = field_0x51C;
field_0x550 = mStaminaPercent;
field_0x548 = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8();
field_0x548 = dLytMeter_HIO_c::GetInstance()->getField_0x1C8();
mAnm[GANBARI_ANIM_UPDOWN_1].setFrame(field_0x54C * 100.0f);
mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(true);
} else {
+9 -9
View File
@@ -3,7 +3,7 @@
#include "c/c_math.h"
#include "d/a/d_a_item.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_meter_configuration.h"
#include "d/lyt/d_lyt_meter_hio.h"
#include "d/snd/d_snd_small_effect_mgr.h"
#include "nw4r/math/math_types.h"
@@ -416,10 +416,10 @@ bool dLytMeterRupy_c::updateDisplayedAmount(bool suppressSound) {
if (amount != mDisplayedRupeeCount || suppressSound) {
bool b = false;
if (amount < mDisplayedRupeeCount) {
if (mDisplayedRupeeCount - amount >= dLytMeterConfiguration_c::sInstance->getField_0x1DC()) {
newNumDisplayed = mDisplayedRupeeCount - dLytMeterConfiguration_c::sInstance->getField_0x1E4();
} else if (mDisplayedRupeeCount - amount >= dLytMeterConfiguration_c::sInstance->getField_0x1D8()) {
newNumDisplayed = mDisplayedRupeeCount - dLytMeterConfiguration_c::sInstance->getField_0x1E0();
if (mDisplayedRupeeCount - amount >= dLytMeter_HIO_c::sInstance->getField_0x1DC()) {
newNumDisplayed = mDisplayedRupeeCount - dLytMeter_HIO_c::sInstance->getField_0x1E4();
} else if (mDisplayedRupeeCount - amount >= dLytMeter_HIO_c::sInstance->getField_0x1D8()) {
newNumDisplayed = mDisplayedRupeeCount - dLytMeter_HIO_c::sInstance->getField_0x1E0();
} else {
newNumDisplayed = mDisplayedRupeeCount - 1;
}
@@ -435,10 +435,10 @@ bool dLytMeterRupy_c::updateDisplayedAmount(bool suppressSound) {
field_0x8AD = 0;
}
} else if (amount > mDisplayedRupeeCount) {
if (amount - mDisplayedRupeeCount >= dLytMeterConfiguration_c::sInstance->getField_0x1DC()) {
newNumDisplayed = mDisplayedRupeeCount + dLytMeterConfiguration_c::sInstance->getField_0x1E4();
} else if (amount - mDisplayedRupeeCount >= dLytMeterConfiguration_c::sInstance->getField_0x1D8()) {
newNumDisplayed = mDisplayedRupeeCount + dLytMeterConfiguration_c::sInstance->getField_0x1E0();
if (amount - mDisplayedRupeeCount >= dLytMeter_HIO_c::sInstance->getField_0x1DC()) {
newNumDisplayed = mDisplayedRupeeCount + dLytMeter_HIO_c::sInstance->getField_0x1E4();
} else if (amount - mDisplayedRupeeCount >= dLytMeter_HIO_c::sInstance->getField_0x1D8()) {
newNumDisplayed = mDisplayedRupeeCount + dLytMeter_HIO_c::sInstance->getField_0x1E0();
} else {
newNumDisplayed = mDisplayedRupeeCount + 1;
}
+7 -7
View File
@@ -4,7 +4,7 @@
#include "d/a/d_a_itembase.h"
#include "d/d_pouch.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_meter_configuration.h"
#include "d/lyt/d_lyt_meter_hio.h"
#include "d/snd/d_snd_small_effect_mgr.h"
#include "toBeSorted/file_manager.h"
@@ -67,7 +67,7 @@ bool dLytMeterShieldGauge_c::build(d2d::ResAccIf_c *resAcc) {
mCurrentShieldPouchSlot = convertFilePouchSlot(FileManager::GetInstance()->getShieldPouchSlot());
field_0x300 = mAnimatingDurability;
field_0x304 = mCurrentDurability;
field_0x2FC = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8();
field_0x2FC = dLytMeter_HIO_c::GetInstance()->getField_0x1C8();
mMaxDurability = 80.0f;
field_0x2F4 = 80.0f;
@@ -229,15 +229,15 @@ bool dLytMeterShieldGauge_c::execute() {
}
}
f32 f1 = dLytMeterConfiguration_c::GetInstance()->getField_0x1CC() * 40.0f / 4.0f;
f32 f2 = dLytMeterConfiguration_c::GetInstance()->getField_0x1D0() * 40.0f / 4.0f;
f32 f3 = dLytMeterConfiguration_c::GetInstance()->getField_0x1C4() * 40.0f / 4.0f;
f32 f1 = dLytMeter_HIO_c::GetInstance()->getField_0x1CC() * 40.0f / 4.0f;
f32 f2 = dLytMeter_HIO_c::GetInstance()->getField_0x1D0() * 40.0f / 4.0f;
f32 f3 = dLytMeter_HIO_c::GetInstance()->getField_0x1C4() * 40.0f / 4.0f;
(void)calcUpdownRatio(mCurrentDurability);
if (field_0x31F) {
if (mCurrentDurability < field_0x304 && mCurrentDurability < mAnimatingDurability - f1) {
field_0x2FC = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8();
field_0x2FC = dLytMeter_HIO_c::GetInstance()->getField_0x1C8();
field_0x300 = mAnimatingDurability;
field_0x304 = mCurrentDurability;
field_0x2E4 = calcUpdownRatio(mAnimatingDurability);
@@ -262,7 +262,7 @@ bool dLytMeterShieldGauge_c::execute() {
field_0x31F = 1;
field_0x300 = mAnimatingDurability;
field_0x304 = mCurrentDurability;
field_0x2FC = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8();
field_0x2FC = dLytMeter_HIO_c::GetInstance()->getField_0x1C8();
field_0x2E4 = calcUpdownRatio(mAnimatingDurability);
mAnm[SHIELD_ANIM_USE].setFrame(field_0x2F8 - field_0x2E4);
mAnm[SHIELD_ANIM_USE].setAnimEnable(true);
+10 -10
View File
@@ -6,7 +6,7 @@
#include "d/d_pad.h"
#include "d/d_stage_mgr.h"
#include "d/d_tag_processor.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "d/d_textwindow_unk.h"
#include "d/lyt/d_lyt_control_game.h"
#include "d/lyt/d_lyt_map.h"
@@ -42,10 +42,10 @@
#include <cstring>
class MsgWindowUnkLocalClass {
class dLytMsgWindow_HIO_c {
public:
MsgWindowUnkLocalClass();
virtual ~MsgWindowUnkLocalClass();
dLytMsgWindow_HIO_c();
virtual ~dLytMsgWindow_HIO_c();
private:
/* 0x04 */ u32 field_0x04;
@@ -53,14 +53,14 @@ private:
/* 0x09 */ u8 field_0x09;
};
MsgWindowUnkLocalClass mUnk;
dLytMsgWindow_HIO_c sHio;
MsgWindowUnkLocalClass::MsgWindowUnkLocalClass() {
dLytMsgWindow_HIO_c::dLytMsgWindow_HIO_c() {
field_0x04 = 8;
field_0x08 = 0;
field_0x09 = 0;
}
MsgWindowUnkLocalClass::~MsgWindowUnkLocalClass() {}
dLytMsgWindow_HIO_c::~dLytMsgWindow_HIO_c() {}
STATE_DEFINE(dLytMsgWindow_c, Invisible);
STATE_DEFINE(dLytMsgWindow_c, In);
@@ -859,7 +859,7 @@ void dLytMsgWindow_c::removeSubMsgManagers() {
mpCurrentSubtype = nullptr;
field_0x1220 = 0;
UnkTextThing::getInstance()->setStr2("");
UnkTextThing::getInstance()->setStr1("");
UnkTextThing::getInstance()->setStr3("");
dLyt_HIO_c::getInstance()->setStr2("");
dLyt_HIO_c::getInstance()->setStr1("");
dLyt_HIO_c::getInstance()->setStr3("");
}
@@ -2,7 +2,7 @@
#include "common.h"
#include "d/d_tag_processor.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_textbox.h"
#include "d/lyt/msg_window/d_lyt_msg_window_common.h"
@@ -172,7 +172,7 @@ void dLytMsgWindowLink_c::executeState_In() {
void dLytMsgWindowLink_c::finalizeState_In() {}
void dLytMsgWindowLink_c::initializeState_Wait() {
mWaitDelay = UnkTextThing::getInstance()->getMsgWindowWaitDelay();
mWaitDelay = dLyt_HIO_c::getInstance()->getMsgWindowWaitDelay();
}
void dLytMsgWindowLink_c::executeState_Wait() {
if (--mWaitDelay > 0) {
@@ -3,7 +3,7 @@
#include "common.h"
#include "d/d_gfx.h"
#include "d/d_tag_processor.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_textbox.h"
#include "m/m_vec.h"
@@ -195,7 +195,7 @@ void dLytMsgWindowSword_c::executeState_In() {
void dLytMsgWindowSword_c::finalizeState_In() {}
void dLytMsgWindowSword_c::initializeState_Wait() {
mWaitDelay = UnkTextThing::getInstance()->getMsgWindowWaitDelay();
mWaitDelay = dLyt_HIO_c::getInstance()->getMsgWindowWaitDelay();
}
void dLytMsgWindowSword_c::executeState_Wait() {
if (--mWaitDelay > 0) {
@@ -2,7 +2,7 @@
#include "common.h"
#include "d/d_tag_processor.h"
#include "d/d_textunk.h"
#include "d/d_lyt_hio.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_textbox.h"
#include "d/lyt/msg_window/d_lyt_msg_window_common.h"
@@ -172,7 +172,7 @@ void dLytMsgWindowTalk_c::executeState_In() {
void dLytMsgWindowTalk_c::finalizeState_In() {}
void dLytMsgWindowTalk_c::initializeState_Wait() {
mWaitDelay = UnkTextThing::getInstance()->getMsgWindowWaitDelay();
mWaitDelay = dLyt_HIO_c::getInstance()->getMsgWindowWaitDelay();
}
void dLytMsgWindowTalk_c::executeState_Wait() {
if (--mWaitDelay > 0) {
+8 -9
View File
@@ -2,23 +2,22 @@
#include "egg/core/eggHeap.h"
/* 804952d0 */ static void *MEM_AllocFor_Heap(MEMAllocator *alloc, u32 size) {
/* 804952d0 */ static void *AllocatorAllocForHeap_(MEMAllocator *alloc, u32 size) {
return static_cast<EGG::Heap *>(static_cast<EGG::Allocator *>(alloc)->heap)->alloc(size, alloc->heapParam1);
}
/* 804952f0 */ static void MEM_FreeFor_Heap(MEMAllocator *alloc, void *block) {
/* 804952f0 */ static void AllocatorFreeForHeap_(MEMAllocator *alloc, void *block) {
return static_cast<EGG::Heap *>(static_cast<EGG::Allocator *>(alloc)->heap)->free(block);
}
const MEMAllocatorFuncs eggAllocatorFuncs = {
&MEM_AllocFor_Heap,
&MEM_FreeFor_Heap,
};
// TODO this is used from eggHeap for some reason. Figure out
// the correct privacy boundary later.
/* 80495310 */ void MEMInitAllocatorFor_Heap(MEMAllocator *alloc, s32 align, void *heap) {
alloc->funcs = &eggAllocatorFuncs;
static const MEMAllocatorFuncs sAllocatorFunc = {
&AllocatorAllocForHeap_,
&AllocatorFreeForHeap_,
};
alloc->funcs = &sAllocatorFunc;
alloc->heap = heap;
alloc->heapParam1 = align;
alloc->heapParam2 = 0;
+3 -3
View File
@@ -100,15 +100,15 @@ u32 ExpHeap::resizeForMBlock(void *block, u32 size) {
}
u32 ExpHeap::getTotalFreeSize() {
return MEMGetAllocatableSizeForExpHeap(mHeapHandle);
return MEMGetTotalFreeSizeForExpHeap(mHeapHandle);
}
u32 ExpHeap::getAllocatableSize(s32 align) {
return MEMGetAllocatableSizeForExpHeapEx(mHeapHandle, align);
}
void ExpHeap::setGroupID(u16 groupId) {
MEMSetGroupIdForExpHeap(mHeapHandle, groupId);
void ExpHeap::setAllocMode(u16 allocMode) {
MEMSetAllocModeForExpHeap(mHeapHandle, allocMode);
}
u32 ExpHeap::adjust() {
+3 -5
View File
@@ -106,7 +106,7 @@ Heap *Heap::findHeap(MEMiHeapHead *head) {
/* 80495730 */
Heap *Heap::findParentHeap() {
Heap *retHeap = nullptr;
MEMiHeapHead *heap = MEMFindContainHeap(mHeapHandle);
MEMiHeapHead *heap = MEMFindParentHeap(mHeapHandle);
if (heap) {
retHeap = findHeap(heap);
}
@@ -114,12 +114,10 @@ Heap *Heap::findParentHeap() {
return retHeap;
}
extern "C" MEMiHeapHead *findSomethingInListObject(const void *memBlock);
/* 80495780 */
Heap *Heap::findContainHeap(const void *memBlock) {
Heap *retHeap = nullptr;
MEMiHeapHead *heap = findSomethingInListObject(memBlock);
MEMiHeapHead *heap = MEMFindContainHeap(memBlock);
if (heap) {
retHeap = findHeap(heap);
}
@@ -130,7 +128,7 @@ Heap *Heap::findContainHeap(const void *memBlock) {
/* 804957c0 */
void Heap::free(void *ptr, Heap *heap) {
if (heap == nullptr) {
MEMiHeapHead *iheap = findSomethingInListObject(ptr);
MEMiHeapHead *iheap = MEMFindContainHeap(ptr);
if (iheap == nullptr) {
return;
}
+13 -26
View File
@@ -27,19 +27,16 @@ void calcColorGradient(GXColor &outColor, const GXColor &c1, const GXColor &c2,
}
}
void makeGradient(int op, GXColor *outColor, int size, int start, int end, const GXColor &c1, const GXColor &c2) {
int start_p1 = start + 1;
// Weird instruction calculation
for (int i = 0; i < start_p1; i++) {
void makeGradient(int op, GXColor *outColor, u16 size, u16 start, u16 end, const GXColor &c1, const GXColor &c2) {
for (int i = 0; i < start + 1; i++) {
outColor[i] = c1;
}
int end_1 = end - 1;
for (int i = end_1; i < size; i++) {
for (int i = end - 1; i < size; i++) {
outColor[i] = c2;
}
for (int i = start_p1; i < end_1; i++) {
for (int i = start + 1; i < end - 1; i++) {
f32 ratio = (f32)(i - start) / (f32)(end - start);
switch (op) {
case 0: break;
@@ -101,7 +98,7 @@ CpuTexture::CpuTexture(const GXTexObj *pObj) {
mWidth = GXGetTexObjWidth(pObj);
mHeight = GXGetTexObjHeight(pObj);
mTexFormat = GXGetTexObjFormat(pObj);
mTexFormat = GXGetTexObjFmt(pObj);
mWrapS = GXGetTexObjWrapS(pObj);
mWrapT = GXGetTexObjWrapT(pObj);
mMinFilt = GXGetTexObjMinFilt(pObj);
@@ -188,6 +185,7 @@ void CpuTexture::fillNormalMapSphere(f32 f1, f32 f2) {
vec(0) = fx;
vec(1) = fy;
// TODO: std::sqrtf?
vec(2) = fz < Math<f32>::zero() ? Math<f32>::zero() : (f32)sqrt(fz);
PSVECNormalize(vec, vec);
@@ -202,24 +200,19 @@ void CpuTexture::fillNormalMapSphere(f32 f1, f32 f2) {
void CpuTexture::fillGradient(
int op, int unk, u16 start, u16 end, const GXColor &c1, const GXColor &c2, bool b1, bool b2
) {
// NONMATCHING - regswaps
GXColor gradient[1024];
GXColor colors[256];
bool swapMode = unk == 0x73 || unk == 0x53;
u16 width = swapMode ? mWidth : mHeight;
u16 height = swapMode ? mHeight : mWidth;
u16 mid = width / 2;
makeGradient(op, gradient, width, start, end, c1, c2);
if (b1) {
// Regswaps here
for (int i2 = mid, i = 0; i < width; i2++, i++) {
colors[i].r = gradient[i < mid ? i2 : i - mid].r;
colors[i].g = gradient[i < mid ? i2 : i - mid].g;
colors[i].b = gradient[i < mid ? i2 : i - mid].b;
colors[i].a = gradient[i < mid ? i2 : i - mid].a;
for (int i = 0; i < width; i++) {
colors[i] = gradient[i < mid ? i + mid : i - mid];
}
for (int i = 0; i < width; i++) {
@@ -295,16 +288,10 @@ void CpuTexture::setColor(u16 x, u16 y, GXColor color) {
}
case GX_TF_I8:
case GX_TF_Z8: {
// Regswaps here
int pix = (x & 0x7);
int pix_y = (y & 0x3) * 8;
int offset = (x & 0x7) + (y & 0x3) * 8; // pixel
offset += ((x >> 3) + ((y >> 2) * (getWidth() / 8))) * 32; // block
int block = (x >> 3);
int block_y = (y >> 2) * (getWidth() / 8);
pix = pix + pix_y + (block + block_y) * 0x20;
u8 *dat = static_cast<u8 *>(getBuffer()) + pix;
u8 *dat = static_cast<u8 *>(getBuffer()) + offset;
dat[0] = color.r;
break;
@@ -328,7 +315,6 @@ void CpuTexture::setColor(u16 x, u16 y, GXColor color) {
}
GXColor CpuTexture::getColor(u16 x, u16 y) const {
// NONMATCHING
GXColor c;
switch (getFormat()) {
case GX_TF_RGBA8:
@@ -343,6 +329,7 @@ GXColor CpuTexture::getColor(u16 x, u16 y) const {
}
case GX_TF_I8:
case GX_TF_Z8: {
// TODO - probably fake
int idx = (x & 0x7);
int pixel_idx = (y & 0x3) * 8;
int block_idx = ((getWidth() / 8) * (y >> 2) + (x >> 3));
+4 -4
View File
@@ -130,7 +130,7 @@ void DrawPathDOF::internalDraw(u16 idx) {
switch (idx) {
case 1:
StateEfb::fn_804B4310(StateEfb::BUFFER_0, reinterpret_cast<u32>(this));
StateEfb::popWorkBuffer(StateEfb::BUFFER_0, reinterpret_cast<u32>(this));
StateEfb::releaseEfb(StateEfb::BUFFER_3, reinterpret_cast<u32>(this));
break;
case 2:
@@ -149,7 +149,7 @@ void DrawPathDOF::internalDrawLite(u16 idx) {
switch (idx) {
case 0: {
TextureBuffer *capturedBuf = StateEfb::captureEfb(StateEfb::BUFFER_3, false, reinterpret_cast<u32>(this));
StateGX::GXSetPixelFmt_(GX_PF_RGB8_Z24, GX_ZC_LINEAR);
StateGX::setPixelFormatGX(GX_PF_RGB8_Z24, GX_ZC_LINEAR);
StateGX::ScopedColor colorGuard(true);
StateGX::ScopedAlpha alphaGuard(false);
StateGX::ScopedDither ditherGuard(false);
@@ -184,8 +184,8 @@ void DrawPathDOF::internalDrawLite(u16 idx) {
if (pTex2 != nullptr) {
pTex2->free();
}
afterDraw(floats[0], floats[1], width, height);
StateGX::GXSetPixelFmt_(StateGX::s_pixFormat, StateGX::s_zFmt16);
allocAndCaptureBlurBuffer(floats[0], floats[1], width, height);
StateGX::setPixelFormatGX(StateGX::s_pixFormat, StateGX::s_zFmt16);
break;
}
case 2: {
+4 -4
View File
@@ -129,7 +129,7 @@ u16 LightTextureManager::replaceModelTexture(int tex, nw4r::g3d::ResMdl mdl) con
u16 res = G3DUtility::SetTexture(mat, nullptr, mpTextures[tex]->getName(), &obj, false, buf, 0xFF, 2);
for (int j = 0; j < res; j++) {
if (buf[j].texCoordId != -1) {
fn_804AE340(mat, static_cast<GXTexCoordID>(buf[j].texCoordId));
setupEnvmap(mat, static_cast<GXTexCoordID>(buf[j].texCoordId));
}
}
count += res;
@@ -214,7 +214,7 @@ void LightTextureManager::drawAndCaptureTexture(f32 ox, f32 oy, f32 sx, f32 sy)
}
if (b1) {
StateGX::GXSetPixelFmt_(GX_PF_RGB8_Z24, GX_ZC_LINEAR);
StateGX::setPixelFormatGX(GX_PF_RGB8_Z24, GX_ZC_LINEAR);
}
nw4r::ut::Color c(StateGX::s_clearEfb);
@@ -234,7 +234,7 @@ void LightTextureManager::drawAndCaptureTexture(f32 ox, f32 oy, f32 sx, f32 sy)
}
if (b1) {
StateGX::GXSetPixelFmt_(StateGX::s_pixFormat, StateGX::s_zFmt16);
StateGX::setPixelFormatGX(StateGX::s_pixFormat, StateGX::s_zFmt16);
}
if ((mFlags & 0x40) == 0 && buf != nullptr) {
@@ -307,7 +307,7 @@ const void *LightTextureManager::getLtexFromLmap(const void *lmap, u16 index) {
return buf;
}
void LightTextureManager::fn_804AE340(nw4r::g3d::ResMat mat, GXTexCoordID id) {
void LightTextureManager::setupEnvmap(nw4r::g3d::ResMat mat, GXTexCoordID id) {
nw4r::g3d::ResTexSrt dat = mat.GetResTexSrt();
dat.SetMapMode(id, 1, -1, -1);
nw4r::g3d::ResMatTexCoordGen coordGen = mat.GetResMatTexCoordGen();
+2 -2
View File
@@ -38,14 +38,14 @@ void PostEffectBlur::draw(f32 width, f32 height) {
for (u8 i = 0; i < field_0x2C; i++) {
int maxNum = (field_0x38[i].field_0x00 - 1) / 8;
for (u8 b = 0; b <= maxNum; b++) {
drawInternal(i, b, f1, f2);
setMaterialMulti(i, b, f1, f2);
drawScreenInternal(mOffsetX, mOffsetY, width * mScaleX, height * mScaleY);
DrawGX::SetBlendMode(DrawGX::BLEND_2);
}
}
}
void PostEffectBlur::drawInternal(u8 kernelIdx, u8 p2, f32 f1, f32 f2) {
void PostEffectBlur::setMaterialMulti(u8 kernelIdx, u8 p2, f32 f1, f32 f2) {
// NONMATCHING
nw4r::math::MTX34 mtx;
const Stage &k = field_0x38[kernelIdx];
+4 -4
View File
@@ -191,14 +191,14 @@ void Screen::SetUnkFlag8() {
mFlags |= FLAG_0x08;
}
void Screen::OnDirectEfb() const {
void Screen::GetPosSizeInEfb() const {
f32 &x1 = mDataEfb.vp.x1;
f32 &y1 = mDataEfb.vp.y1;
if (mParent == nullptr) {
x1 = mPosition.x * sCanvasScale.x;
y1 = mPosition.y * sCanvasScale.y;
} else {
mParent->fn_804B2EE0(&x1, &y1, mPosition.x, mPosition.y);
mParent->ConvertToEfb(mPosition.x, mPosition.y, &x1, &y1);
}
// TODO: Make this work without temporaries?
@@ -242,7 +242,7 @@ void Screen::OnDirectEfb() const {
const Screen::DataEfb &Screen::GetDataEfb() const {
if (IsChangeEfb()) {
OnDirectEfb();
GetPosSizeInEfb();
mDataEfb.vp.z1 = 0.0f;
mDataEfb.vp.z2 = 1.0f;
SetDirty(false);
@@ -325,7 +325,7 @@ void Screen::SetTVModeDefault() {
SetTVMode(SCGetAspectRatio() == SC_ASPECT_STD ? TV_MODE_4_3 : TV_MODE_16_9);
}
void Screen::fn_804B2EE0(f32 *ox, f32 *oy, f32 a, f32 b) const {
void Screen::ConvertToEfb(f32 a, f32 b, f32 *ox, f32 *oy) const {
GetGlobalPos(ox, oy);
ConvertToCanvasLU(a, b, &a, &b);
*ox = ScaleByX((*ox + a));
+6 -6
View File
@@ -88,7 +88,7 @@ TextureBuffer *StateEfb::captureEfb(BufferType type, bool noTransparencyMaybe, u
if (spBufferSet[type].buf != nullptr) {
spBufferSet[type].buf->setPixModeSync(false);
}
doCapture = GetShouldCapture();
doCapture = isEnableDirtyBufferMode();
break;
}
@@ -151,7 +151,7 @@ void StateEfb::fn_804B4270(BufferType type, u32 userData) {
}
}
void StateEfb::fn_804B4310(BufferType type, u32 userData) {
void StateEfb::popWorkBuffer(bool b, u32 userData) {
if (sWorkBuffer != -1) {
BufferType i = static_cast<BufferType>(-1);
if (sWorkBuffer == 0) {
@@ -161,7 +161,7 @@ void StateEfb::fn_804B4310(BufferType type, u32 userData) {
}
if (spBufferSet[i].userData == userData) {
if (type == BUFFER_0) {
if (!b) {
StateGX::ScopedColor colorGuard(true);
StateGX::ScopedAlpha alphaGuard(true);
StateGX::ScopedDither ditherGuard(false);
@@ -186,9 +186,9 @@ void StateEfb::fn_804B4310(BufferType type, u32 userData) {
nw4r::math::MTX34 mtx;
PSMTXScale(mtx, parentScreen.GetSize().x, parentScreen.GetSize().y, 1.0f);
DrawGX::BeginDrawScreen(true, GetShouldCapture(), false);
DrawGX::BeginDrawScreen(true, isEnableDirtyBufferMode(), false);
DrawGX::SetBlendMode(DrawGX::BLEND_14);
if (GetShouldCapture()) {
if (isEnableDirtyBufferMode()) {
TextureBuffer *buf = spBufferSet[i].buf;
buf->setFilt(GX_NEAR, GX_NEAR);
buf->load(DrawGX::GetTexMapDefault());
@@ -218,7 +218,7 @@ f32 *StateEfb::fn_804B4550() {
return sUnkBuffer;
}
bool StateEfb::GetShouldCapture() {
bool StateEfb::isEnableDirtyBufferMode() {
return ((sFlag >> 2) & 1) != 0;
}
+2 -2
View File
@@ -66,7 +66,7 @@ void StateGX::initialize(u16 width, u16 height, GXColor color, GXPixelFmt pixelF
}
void StateGX::frameInit() {
GXSetPixelFmt_(s_pixFormat, s_zFmt16);
setPixelFormatGX(s_pixFormat, s_zFmt16);
if (BaseSystem::mConfigData->getDisplay() != nullptr) {
s_clearEfb = BaseSystem::mConfigData->getDisplay()->getClearColor();
}
@@ -230,7 +230,7 @@ void StateGX::resetGXCache() {
GXSetDstAlpha_(false, 0);
}
void StateGX::GXSetPixelFmt_(GXPixelFmt pixelFmt, GXZFmt16 zFmt) {
void StateGX::setPixelFormatGX(GXPixelFmt pixelFmt, GXZFmt16 zFmt) {
GXPixelFmt oldPixelFmt;
GXZFmt16 oldZFmt;
+2
View File
@@ -8,6 +8,8 @@
namespace EGG {
TextureBuffer *TextureBuffer::spBufferTable[NUM_BUFFERS];
TextureBuffer::TextureBuffer() : mSize(0), mState(STATE_FREE), mpNext(nullptr), mpPrev(nullptr) {}
void TextureBuffer::configure() {
+1 -1
View File
@@ -149,7 +149,7 @@ mHeap::~mHeap() {
EGG::ExpHeap *mHeap::createHeap(size_t size, EGG::Heap *block, const char *name) {
EGG::ExpHeap *heap = EGG::ExpHeap::create(size, block, 4);
if (heap != nullptr) {
heap->setGroupID(0);
heap->setAllocMode(0);
if (name != nullptr) {
heap->mName = name;
}
+5 -9
View File
@@ -29,8 +29,6 @@ static struct ExceptionStruct sException;
static u8 sThreadBuffer[0x4000] ALIGN_DECL(0x20);
extern "C" u32 lbl_80574960;
const char *CPU_EXP_NAME[] = {
"SYSTEM RESET",
"MACHINE CHECK",
@@ -69,13 +67,11 @@ void Exception_Init() {
OSSetErrorHandler(3, ErrorHandler_);
OSSetErrorHandler(5, ErrorHandler_);
OSSetErrorHandler(15, ErrorHandler_);
lbl_80574960 = 0;
__OSFpscrEnableBits = 0;
OSSetErrorHandler(16, nullptr);
}
extern "C" u32 PPCMfmsr();
extern "C" void PPCMtmsr(u32);
extern "C" void OSFillFPUContext(OSContext *ctx);
extern "C" void fn_803AA2E0(u32, u32, u32, u32);
static void DumpException_(const ExceptionCallbackParam *);
@@ -85,10 +81,10 @@ void ErrorHandler_(u16 error, OSContext *ctx, u32 dsisr, u32 dar) {
OSFillFPUContext(ctx);
OSSetErrorHandler(error, nullptr);
if (error == 0xf) {
fn_803AA2E0(0, 0, 0, 3);
fn_803AA2E0(1, 0, 0, 3);
fn_803AA2E0(2, 0, 0, 3);
fn_803AA2E0(3, 0, 0, 3);
OSProtectRange(OS_PROTECT_CHAN0, 0, 0, OS_PROTECT_CONTROL_RDWR);
OSProtectRange(OS_PROTECT_CHAN1, 0, 0, OS_PROTECT_CONTROL_RDWR);
OSProtectRange(OS_PROTECT_CHAN2, 0, 0, OS_PROTECT_CONTROL_RDWR);
OSProtectRange(OS_PROTECT_CHAN3, 0, 0, OS_PROTECT_CONTROL_RDWR);
}
ExceptionCallbackParam param;
+1 -1
View File
@@ -213,7 +213,7 @@ void SetTMemLayout(TMemLayout layout) {
} // namespace nw4r
static GXTexRegion *TexRegionCallback(const GXTexObj *pObj, GXTexMapID map) {
GXTexFmt fmt = GXGetTexObjFormat(pObj);
GXTexFmt fmt = GXGetTexObjFmt(pObj);
GXBool mipmap = GXGetTexObjMipMap(pObj);
switch (fmt) {
+11 -11
View File
@@ -15,11 +15,11 @@ mVec3_c getPosCopy3(const dAcObjBase_c &actor) {
return actor.poscopy3;
}
class UnkAttnClass {
class dAttention_HIO_c {
public:
u8 field_0x00;
UnkAttnClass();
virtual ~UnkAttnClass() {}
dAttention_HIO_c();
virtual ~dAttention_HIO_c() {}
void init();
void remove();
@@ -33,11 +33,11 @@ public:
f32 field_0x14;
};
void UnkAttnClass::init() {}
void dAttention_HIO_c::init() {}
void UnkAttnClass::remove() {}
void dAttention_HIO_c::remove() {}
UnkAttnClass::UnkAttnClass()
dAttention_HIO_c::dAttention_HIO_c()
: field_0x00(0),
field_0x08(field_0x00 | 8),
field_0x0A(300),
@@ -46,14 +46,14 @@ UnkAttnClass::UnkAttnClass()
field_0x12(10),
field_0x14(1.0f) {}
UnkAttnClass attnClass;
dAttention_HIO_c sHio;
AttentionManager::AttentionManager() {
sInstance = this;
}
AttentionManager::~AttentionManager() {
attnClass.remove();
sHio.remove();
sInstance = nullptr;
}
@@ -76,7 +76,7 @@ bool AttentionManager::create() {
mModels.mState = NONE;
mTargeted = false;
field_0xB68 = 0;
attnClass.init();
sHio.init();
field_0xBDC = 0;
field_0xBD5 = 0;
field_0xBD4 = 0;
@@ -200,7 +200,7 @@ bool AttentionManager::switchTarget(s32 idx) {
mHoldingZ = checkZButtonHeld();
AttentionPool *left = mGroups[idx].getPool();
AttentionPool *right = mGroups[idx].getOtherPool();
if ((attnClass.field_0x08 & 8) != 0 && (mModels.mState == OFF || mModels.mState == NONE) && checkLink2() &&
if ((sHio.field_0x08 & 8) != 0 && (mModels.mState == OFF || mModels.mState == NONE) && checkLink2() &&
right->mNumUsedRefs != 0) {
zPressed = true;
}
@@ -252,7 +252,7 @@ bool AttentionManager::playTargetAnim(s32 idx) {
PSMTXTrans(mtx, v.x, v.y, v.z);
mModels.mMdls->mMdl.setLocalMtx(mtx);
mModels.mMdls->mMdl.setScale(attnClass.field_0x14, attnClass.field_0x14, attnClass.field_0x14);
mModels.mMdls->mMdl.setScale(sHio.field_0x14, sHio.field_0x14, sHio.field_0x14);
doSomething = true;
}