mirror of
https://github.com/zeldaret/ss
synced 2026-07-09 14:15:23 -04:00
Merge remote-tracking branch 'upstream/main' into d_a_obj_boomerang
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
+1936
-1858
File diff suppressed because it is too large
Load Diff
+341
-40
@@ -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"),
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 *);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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( \
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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() {}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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() {}
|
||||
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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() {}
|
||||
|
||||
@@ -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
@@ -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,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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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,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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user