diff --git a/.gitignore b/.gitignore index e04f0eb4..72281a18 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ tools/mwcc_compiler/* .ninja_log objdiff.json /tools/objdiff.exe +.vscode/c_cpp_properties.json +tools/dtk diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 1696f692..b9d2f980 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -1,3 +1,7 @@ +d/d_base.cpp: + .text start:0x80050800 end:0x80050A14 + .data start:0x80503380 end:0x805033CC + unk_flag_stuff.cpp: .text start:0x800BEF90 end:0x800BF200 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 90d3d1e0..1d33fa3d 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -1028,7 +1028,7 @@ fn_8002C250 = .text:0x8002C250; // type:function size:0xB8 fn_8002C310 = .text:0x8002C310; // type:function size:0x90 fn_8002C3A0 = .text:0x8002C3A0; // type:function size:0x8 fn_8002C3B0 = .text:0x8002C3B0; // type:function size:0x178 -fn_8002C530 = .text:0x8002C530; // type:function size:0x58 +__dt__7dBase_cFv = .text:0x8002C530; // type:function size:0x58 fn_8002C590 = .text:0x8002C590; // type:function size:0xB4 fn_8002C650 = .text:0x8002C650; // type:function size:0x34 fn_8002C690 = .text:0x8002C690; // type:function size:0x78 @@ -2092,18 +2092,18 @@ fn_800506E0 = .text:0x800506E0; // type:function size:0x88 fn_80050770 = .text:0x80050770; // type:function size:0x30 fn_800507A0 = .text:0x800507A0; // type:function size:0x30 fn_800507D0 = .text:0x800507D0; // type:function size:0x30 -fn_80050800 = .text:0x80050800; // type:function size:0x54 -fn_80050860 = .text:0x80050860; // type:function size:0x28 -fn_80050890 = .text:0x80050890; // type:function size:0x60 -fn_800508F0 = .text:0x800508F0; // type:function size:0x28 -fn_80050920 = .text:0x80050920; // type:function size:0x60 -fn_80050980 = .text:0x80050980; // type:function size:0x14 -fn_800509A0 = .text:0x800509A0; // type:function size:0x14 -fn_800509C0 = .text:0x800509C0; // type:function size:0x8 -fn_800509D0 = .text:0x800509D0; // type:function size:0x4 -fn_800509E0 = .text:0x800509E0; // type:function size:0x1C -fn_80050A00 = .text:0x80050A00; // type:function size:0x4 -fn_80050A10 = .text:0x80050A10; // type:function size:0x4 +__ct__7dBase_cFv = .text:0x80050800; // type:function size:0x54 +postDraw__7dBase_cFQ27fBase_c12MAIN_STATE_e = .text:0x80050860; // type:function size:0x28 +preExecute__7dBase_cFv = .text:0x80050890; // type:function size:0x60 +postExecute__7dBase_cFQ27fBase_c12MAIN_STATE_e = .text:0x800508F0; // type:function size:0x28 +preDraw__7dBase_cFv = .text:0x80050920; // type:function size:0x60 +resetFlags__7dBase_cFv = .text:0x80050980; // type:function size:0x14 +isActorPlayer__7dBase_cFR7dBase_c = .text:0x800509A0; // type:function size:0x14 +loadAsyncCallback__7dBase_cFv = .text:0x800509C0; // type:function size:0x8 +unloadCallback__7dBase_cFv = .text:0x800509D0; // type:function size:0x4 +initLoader__7dBase_cFv = .text:0x800509E0; // type:function size:0x1C +createBase__7dBase_cFUsP7dBase_cUlUc = .text:0x80050A00; // type:function size:0x4 +createRoot__7dBase_cFUsUlUc = .text:0x80050A10; // type:function size:0x4 fn_80050A20 = .text:0x80050A20; // type:function size:0x118 fn_80050B40 = .text:0x80050B40; // type:function size:0x80 fn_80050BC0 = .text:0x80050BC0; // type:function size:0xB4 @@ -17312,48 +17312,48 @@ fn_802E1100 = .text:0x802E1100; // type:function size:0x40 fn_802E1140 = .text:0x802E1140; // type:function size:0x8C fn_802E11D0 = .text:0x802E11D0; // type:function size:0xBC fn_802E1290 = .text:0x802E1290; // type:function size:0x58 -fn_802E12F0 = .text:0x802E12F0; // type:function size:0x190 -fn_802E1480 = .text:0x802E1480; // type:function size:0x78 -fn_802E1500 = .text:0x802E1500; // type:function size:0xB4 -fn_802E15C0 = .text:0x802E15C0; // type:function size:0x8 -fn_802E15D0 = .text:0x802E15D0; // type:function size:0x8 -fn_802E15E0 = .text:0x802E15E0; // type:function size:0x90 -fn_802E1670 = .text:0x802E1670; // type:function size:0x8 -fn_802E1680 = .text:0x802E1680; // type:function size:0xA8 -fn_802E1730 = .text:0x802E1730; // type:function size:0x68 -fn_802E17A0 = .text:0x802E17A0; // type:function size:0xBC -fn_802E1860 = .text:0x802E1860; // type:function size:0xA8 -fn_802E1910 = .text:0x802E1910; // type:function size:0x8 -fn_802E1920 = .text:0x802E1920; // type:function size:0x28 -fn_802E1950 = .text:0x802E1950; // type:function size:0x4 -fn_802E1960 = .text:0x802E1960; // type:function size:0x12C -fn_802E1A90 = .text:0x802E1A90; // type:function size:0x8 -fn_802E1AA0 = .text:0x802E1AA0; // type:function size:0x28 -fn_802E1AD0 = .text:0x802E1AD0; // type:function size:0x4 -fn_802E1AE0 = .text:0x802E1AE0; // type:function size:0xA8 -fn_802E1B90 = .text:0x802E1B90; // type:function size:0x4 -fn_802E1BA0 = .text:0x802E1BA0; // type:function size:0x25C -fn_802E1E00 = .text:0x802E1E00; // type:function size:0x74 +__ct__7fBase_cFv = .text:0x802E12F0; // type:function size:0x190 +__dt__7fBase_cFv = .text:0x802E1480; // type:function size:0x78 +commonPack__7fBase_cFM7fBase_cFPCvPv_iM7fBase_cFPCvPv_iM7fBase_cFPCvPvQ27fBase_c12MAIN_STATE_e_v = .text:0x802E1500; // type:function size:0xB4 +create__7fBase_cFv = .text:0x802E15C0; // type:function size:0x8 +preCreate__7fBase_cFv = .text:0x802E15D0; // type:function size:0x8 +postCreate__7fBase_cFQ27fBase_c12MAIN_STATE_e = .text:0x802E15E0; // type:function size:0x90 +doDelete__7fBase_cFv = .text:0x802E1670; // type:function size:0x8 +createPack__7fBase_cFv = .text:0x802E1680; // type:function size:0xA8 +preDelete__7fBase_cFv = .text:0x802E1730; // type:function size:0x68 +postDelete__7fBase_cFQ27fBase_c12MAIN_STATE_e = .text:0x802E17A0; // type:function size:0xBC +deletePack__7fBase_cFv = .text:0x802E1860; // type:function size:0xA8 +execute__7fBase_cFv = .text:0x802E1910; // type:function size:0x8 +preExecute__7fBase_cFv = .text:0x802E1920; // type:function size:0x28 +postExecute__7fBase_cFQ27fBase_c12MAIN_STATE_e = .text:0x802E1950; // type:function size:0x4 +executePack__7fBase_cFv = .text:0x802E1960; // type:function size:0x12C +draw__7fBase_cFv = .text:0x802E1A90; // type:function size:0x8 +preDraw__7fBase_cFv = .text:0x802E1AA0; // type:function size:0x28 +postDraw__7fBase_cFQ27fBase_c12MAIN_STATE_e = .text:0x802E1AD0; // type:function size:0x4 +drawPack__7fBase_cFv = .text:0x802E1AE0; // type:function size:0xA8 +deleteReady__7fBase_cFv = .text:0x802E1B90; // type:function size:0x4 +connectProc__7fBase_cFv = .text:0x802E1BA0; // type:function size:0x25C +deleteRequest__7fBase_cFv = .text:0x802E1E00; // type:function size:0x74 fn_802E1E80 = .text:0x802E1E80; // type:function size:0x8C fn_802E1F10 = .text:0x802E1F10; // type:function size:0x20 fn_802E1F30 = .text:0x802E1F30; // type:function size:0x54 -fn_802E1F90 = .text:0x802E1F90; // type:function size:0x1C -fn_802E1FB0 = .text:0x802E1FB0; // type:function size:0x1C -fn_802E1FD0 = .text:0x802E1FD0; // type:function size:0x1C +getConnectParent__7fBase_cCFv = .text:0x802E1F90; // type:function size:0x1C +getConnectChild__7fBase_cCFv = .text:0x802E1FB0; // type:function size:0x1C +getConnectBrNext__7fBase_cCFv = .text:0x802E1FD0; // type:function size:0x1C fn_802E1FF0 = .text:0x802E1FF0; // type:function size:0x98 fn_802E2090 = .text:0x802E2090; // type:function size:0x50 -fn_802E20E0 = .text:0x802E20E0; // type:function size:0x1FC -fn_802E22E0 = .text:0x802E22E0; // type:function size:0xC0 -fn_802E23A0 = .text:0x802E23A0; // type:function size:0x8 -fn_802E23B0 = .text:0x802E23B0; // type:function size:0x5C -fn_802E2410 = .text:0x802E2410; // type:function size:0xC -fn_802E2420 = .text:0x802E2420; // type:function size:0x78 -fn_802E24A0 = .text:0x802E24A0; // type:function size:0x70 +entryFrmHeap__7fBase_cFUlPQ23EGG4Heap = .text:0x802E20E0; // type:function size:0x1FC +entryFrmHeapNonAdjust__7fBase_cFUlPQ23EGG4Heap = .text:0x802E22E0; // type:function size:0xC0 +createHeap__7fBase_cFv = .text:0x802E23A0; // type:function size:0x8 +__nw__7fBase_cFUl = .text:0x802E23B0; // type:function size:0x5C +__dl__7fBase_cFPv = .text:0x802E2410; // type:function size:0xC +runCreate__7fBase_cFv = .text:0x802E2420; // type:function size:0x78 +getChildProcessCreateState__7fBase_cCFv = .text:0x802E24A0; // type:function size:0x70 fn_802E2510 = .text:0x802E2510; // type:function size:0x2C -fn_802E2540 = .text:0x802E2540; // type:function size:0x1C -fn_802E2560 = .text:0x802E2560; // type:function size:0x98 -fn_802E2600 = .text:0x802E2600; // type:function size:0x3C -fn_802E2640 = .text:0x802E2640; // type:function size:0x14 +setTmpCtData__7fBase_cFUsP9fTrNdBa_cUlUc = .text:0x802E2540; // type:function size:0x1C +fBase_make__7fBase_cFUsP9fTrNdBa_cUlUc = .text:0x802E2560; // type:function size:0x98 +createChild__7fBase_cFUsP7fBase_cUlUc = .text:0x802E2600; // type:function size:0x3C +createRoot__7fBase_cFUsUlUc = .text:0x802E2640; // type:function size:0x14 fn_802E2660 = .text:0x802E2660; // type:function size:0x14 fn_802E2680 = .text:0x802E2680; // type:function size:0x60 fn_802E26E0 = .text:0x802E26E0; // type:function size:0x74 @@ -29923,7 +29923,7 @@ lbl_805014E8 = .data:0x805014E8; // type:object size:0x18 lbl_80501500 = .data:0x80501500; // type:object size:0x28 lbl_80501528 = .data:0x80501528; // type:object size:0x10 lbl_80501538 = .data:0x80501538; // type:object size:0xC data:string -lbl_80501544 = .data:0x80501544; // type:object size:0x74 +__vt__9dAcBase_c = .data:0x80501544; // type:object size:0x74 lbl_805015B8 = .data:0x805015B8; // type:object size:0x80 lbl_80501638 = .data:0x80501638; // type:object size:0xC lbl_80501644 = .data:0x80501644; // type:object size:0xC data:4byte @@ -30066,7 +30066,7 @@ lbl_80502E70 = .data:0x80502E70; // type:object size:0x3D8 lbl_80503248 = .data:0x80503248; // type:object size:0x30 lbl_80503278 = .data:0x80503278; // type:object size:0x9C lbl_80503314 = .data:0x80503314; // type:object size:0x6C -lbl_80503380 = .data:0x80503380; // type:object size:0x50 +__vt__7dBase_c = .data:0x80503380; // type:object size:0x50 lbl_805033D0 = .data:0x805033D0; // type:object size:0x10 lbl_805033E0 = .data:0x805033E0; // type:object size:0x10 lbl_805033F0 = .data:0x805033F0; // type:object size:0x10 @@ -35677,7 +35677,7 @@ lbl_80541A40 = .data:0x80541A40; // type:object size:0x30 lbl_80541A70 = .data:0x80541A70; // type:object size:0x808 lbl_80542278 = .data:0x80542278; // type:object size:0xB4 data:4byte lbl_8054232C = .data:0x8054232C; // type:object size:0x30 -lbl_8054235C = .data:0x8054235C; // type:object size:0x4C +__vt__7fBase_c = .data:0x8054235C; // type:object size:0x4C lbl_805423A8 = .data:0x805423A8; // type:object size:0x40 data:4byte lbl_805423E8 = .data:0x805423E8; // type:object size:0x20 lbl_80542408 = .data:0x80542408; // type:object size:0x18 @@ -39017,7 +39017,7 @@ lbl_80573FA0 = .sdata:0x80573FA0; // type:object size:0x8 lbl_80573FA8 = .sdata:0x80573FA8; // type:object size:0x8 lbl_80573FB0 = .sdata:0x80573FB0; // type:object size:0x4 data:4byte lbl_80573FB4 = .sdata:0x80573FB4; // type:object size:0x4 data:4byte -lbl_80573FB8 = .sdata:0x80573FB8; // type:object size:0x8 data:4byte +m_rootUniqueID__7fBase_c = .sdata:0x80573FB8; // type:object size:0x8 data:4byte lbl_80573FC0 = .sdata:0x80573FC0; // type:object size:0x8 data:4byte lbl_80573FC8 = .sdata:0x80573FC8; // type:object size:0x8 data:4byte lbl_80573FD0 = .sdata:0x80573FD0; // type:object size:0x4 @@ -39679,9 +39679,9 @@ lbl_805750A0 = .sbss:0x805750A0; // type:object size:0x8 data:4byte lbl_805750A8 = .sbss:0x805750A8; // type:object size:0x8 data:4byte lbl_805750B0 = .sbss:0x805750B0; // type:object size:0x8 data:2byte lbl_805750B8 = .sbss:0x805750B8; // type:object size:0x8 data:byte -lbl_805750C0 = .sbss:0x805750C0; // type:object size:0x4 data:4byte -lbl_805750C4 = .sbss:0x805750C4; // type:object size:0x4 data:4byte -lbl_805750C8 = .sbss:0x805750C8; // type:object size:0x8 data:4byte +ACTOR_SHOULD_UPDATE_FLAGS = .sbss:0x805750C0; // type:object size:0x4 data:4byte +ACTOR_SHOULD_DRAW_FLAGS = .sbss:0x805750C4; // type:object size:0x4 data:4byte +ACTOR_SHOULD_UNK_FLAGS = .sbss:0x805750C8; // type:object size:0x8 data:4byte lbl_805750D0 = .sbss:0x805750D0; // type:object size:0x8 data:4byte lbl_805750D8 = .sbss:0x805750D8; // type:object size:0x8 data:4byte lbl_805750E0 = .sbss:0x805750E0; // type:object size:0x4 data:4byte @@ -40235,10 +40235,10 @@ lbl_80575B98 = .sbss:0x80575B98; // type:object size:0x4 data:4byte lbl_80575B9C = .sbss:0x80575B9C; // type:object size:0x4 data:4byte lbl_80575BA0 = .sbss:0x80575BA0; // type:object size:0x8 data:4byte lbl_80575BA8 = .sbss:0x80575BA8; // type:object size:0x8 data:4byte -lbl_80575BB0 = .sbss:0x80575BB0; // type:object size:0x4 data:4byte -lbl_80575BB4 = .sbss:0x80575BB4; // type:object size:0x4 data:4byte +sLoadAsyncCallback__7fBase_c = .sbss:0x80575BB0; // type:object size:0x4 data:4byte +sUnloadCallback__7fBase_c = .sbss:0x80575BB4; // type:object size:0x4 data:4byte lbl_80575BB8 = .sbss:0x80575BB8; // type:object size:0x8 data:4byte -lbl_80575BC0 = .sbss:0x80575BC0; // type:object size:0x8 data:4byte +DAT_ACTOR_ALLOCATION_FUNCTIONS = .sbss:0x80575BC0; // type:object size:0x8 data:4byte lbl_80575BC8 = .sbss:0x80575BC8; // type:object size:0x4 data:4byte lbl_80575BCC = .sbss:0x80575BCC; // type:object size:0x1 data:byte lbl_80575BD0 = .sbss:0x80575BD0; // type:object size:0x4 data:4byte @@ -49032,7 +49032,10 @@ lbl_805B83A0 = .bss:0x805B83A0; // type:object size:0x100 lbl_805B84A0 = .bss:0x805B84A0; // type:object size:0x10 data:4byte lbl_805B84B0 = .bss:0x805B84B0; // type:object size:0xC lbl_805B84BC = .bss:0x805B84BC; // type:object size:0xC -lbl_805B84C8 = .bss:0x805B84C8; // type:object size:0x10 data:2byte +m_tmpCtProfName__7fBase_c = .bss:0x805B84C8; // type:object size:0x4 data:2byte +m_tmpCtConnectParent__7fBase_c = .bss:0x805B84CC; // type:object size:0x4 data:4byte +m_tmpCtParam__7fBase_c = .bss:0x805B84D0; // type:object size:0x4 data:4byte +m_tmpCtGroupType__7fBase_c = .bss:0x805B84D4; // type:object size:0x4 data:byte lbl_805B84D8 = .bss:0x805B84D8; // type:object size:0x10 data:4byte lbl_805B84E8 = .bss:0x805B84E8; // type:object size:0x14 data:4byte lbl_805B84FC = .bss:0x805B84FC; // type:object size:0x14 data:4byte diff --git a/configure.py b/configure.py index b416e89f..99386011 100644 --- a/configure.py +++ b/configure.py @@ -7,7 +7,8 @@ LIBS = [ "host": False, "objects": [ ["Runtime/__init_cpp_exceptions.cpp", False], - ["unk_flag_stuff.cpp", True] + ["unk_flag_stuff.cpp", True], + ["d/d_base.cpp", False] ], }, ] diff --git a/src/d/a/d_a_base.cpp b/src/d/a/d_a_base.cpp new file mode 100644 index 00000000..7b3a8cd9 --- /dev/null +++ b/src/d/a/d_a_base.cpp @@ -0,0 +1,293 @@ +#include + + +// .sdata +/* 0x80571920 */ u32 dAcBase_c::s_Create_RoomId = -1; +/* 0x80571924 */ u32 dAcBase_c::s_Create_Params2 = -1; +/* 0x80571928 */ u16 dAcBase_c::s_Create_UnkFlags = -1; +/* 0x8057192A */ u8 dAcBase_c::s_Create_ViewClipIdx = -1; + +// .sbss +/* 0x80575080 */ Vec3f* dAcBase_c::s_Create_Position; +/* 0x80575084 */ Vec3s* dAcBase_c::s_Create_Rotation; +/* 0x80575088 */ Vec3f* dAcBase_c::s_Create_Scale; +/* 0x8057508C */ dAcBase_c* dAcBase_c::s_Create_Parent; +/* 0x80575090 */ ObjInfoPtr* dAcBase_c::s_Create_ObjInfo; +/* 0x80575094 */ u8 dAcBase_c::s_Create_Subtype; + +/* 8002c3a0 */ +bool dAcBase_c::createHeap() { + return true; +} + +/* 8002c3b0 */ +dAcBase_c::dAcBase_c() {} + +/* 8002c530 */ // dont know how this got here +dBase_c::~dBase_c() {} + +/* 8002c590 */ +dAcBase_c::~dAcBase_c() {} + +/* 8002c650 */ +void dAcBase_c::setTempCreateParams( \ + Vec3f* pos, Vec3s* rot, Vec3f* scale, \ + s32 roomId, u32 params2, dAcBase_c* parent, \ + u8 subtype, s16 unkFlag, u8 viewClipIdx,\ + ObjInfoPtr* objInfo ) +{ + s_Create_Position = pos; + s_Create_Rotation = rot; + s_Create_Scale = scale; + s_Create_RoomId = roomId; + s_Create_Params2 = params2; + s_Create_Parent = parent; + s_Create_Subtype = subtype; + s_Create_UnkFlags = unkFlag; + s_Create_ViewClipIdx = viewClipIdx; + s_Create_ObjInfo = objInfo; +} + +/* 8002c690 */ +void* dAcBase_c::FUN_8002c690() {} + +/* 8002c710 */ +int dAcBase_c::initAllocatorWork1Heap(int size, char* name) { + initAllocator(size, name, dHeap::work1Heap); +} + +extern "C" int FUN_802ee510(mAllocator*, int size, EGG::Heap* heap, char* name, int align, int unk); + +/* 8002c720 */ +int dAcBase_c::initAllocator(int size, char* name, EGG::Heap* heap) { + if (FUN_802ee510(&mHeapAllocator, size, heap, name, 0x20, 0) == 0){ + return 0; + } + soundRelated = FUN_8002c690(); + int success = createHeap(); + mHeapAllocator.adjustFrmHeapRestoreCurrent(); + return success; +} + +/* 8002c7b0 */ +bool dAcBase_c::addActorToRoom(s32 roomId) {} + +/* 8002c840 */ +void dAcBase_c::setBit_field_0xE8(s32) {} + +/* 8002c860 */ // virt func, initiates the allocator +int dAcBase_c::actorCreate() {} + +/* 8002c870 */ // virt func +int dAcBase_c::actorReCreate() {} + +/* 8002c880 */ +int dAcBase_c::create() {} + +/* 8002c8f0 */ +void dAcBase_c::postCreate(fBase_c::MAIN_STATE_e state) {} + +/* 8002c940 */ +int dAcBase_c::preDelete() {} + +/* 8002cb10 */ +int dAcBase_c::preExecute() {} + +/* 8002cc10 */ +int dAcBase_c::execute() {} + +/* 8002cca0 */ +int dAcBase_c::actorExecute() {} + +/* 8002ccb0 */ +int dAcBase_c::actorExecuteInEvent() {} + +/* 8002ccc0 */ +void dAcBase_c::postExecute(fBase_c::MAIN_STATE_e state) {} + +/* 8002ce90 */ +void dAcBase_c::unkVirtFunc_0x5C() { return; } + +/* 8002cea0 */ +void dAcBase_c::unkVirtFunc_0x60() { return; } + +/* 8002ceb0 */ +bool dAcBase_c::restorePosRotFromCopy() {} + +/* 8002cf10 */ +u32 dAcBase_c::itemDroppingAndGivingRelated(Vec3f* spawnPos, int subtype) {} + +/* 8002cf90 */ +void dAcBase_c::fillUpperParams2Byte() {} + +/* 8002cfa0 */ +u32 dAcBase_c::getParams2_ignoreLower() {} + +/* 8002cfb0 */ +void dAcBase_c::setParams2Upper_ignoreLower(u32 val) {} + +/* 8002cfc0 */ +u8 dAcBase_c::getParams2UpperByte() {} + +/* 8002cfd0 */ +void dAcBase_c::setParams2UpperByte(u32 val) {} + +/* 8002cff0 */ +u32 dAcBase_c::buildParams2(u32 lower, u8 upper) {} + +/* 8002d010 */ +u32 dAcBase_c::getParams2Lower() {} + +/* 8002d020 */ +dAcBase_c* dAcBase_c::findActor(char* objName, dAcBase_c* parent) {} + +/* 8002d0a0 */ // searches for actor based on groupType +dAcBase_c* dAcBase_c::searchActor(dAcBase_c& optionalParent) {} + +/* 8002d130 */ +void dAcBase_c::forEachActor(void*, dAcBase_c&) {} + +/* 8002d190 */ +void dAcBase_c::getXZAngleToPlayer(s16&, dAcBase_c&) {} + +/* 8002d1d0 */ +bool dAcBase_c::getDistanceToActor(dAcBase_c& actor, f32 distThresh, f32* outDist) {} + +/* 8002d290 */ +bool dAcBase_c::getDistanceAndAngleToActor( \ + dAcBase_c& actor, f32 distThresh, s16 yAngle, s16 xAngle, \ + f32* outDist, s16* outDiffAngleY, s16* outDiffAngleX) +{ + +} + +/* 8002d3e0 */ +bool dAcBase_c::isWithinPlayerRadius(f32 radius) {} + +/* 8002d440 */ +bool dAcBase_c::getDistanceAndAngleToPlayer( \ + f32 distThresh, s16 yAngle, s16 xAngle, \ + f32* outDist, s16* outDiffAngleY, s16* outDiffAngleX) +{ + // return getDistanceAndAngleToActor(PLAYER, distThresh, yAngle, xAngle, outDist, outDiffAngleY, outDiffAngleX); +} + +/* 8002d470 */ +f32 dAcBase_c::getDistToPlayer() {} + +/* 8002d4a0 */ +f32 dAcBase_c::getSquareDistToPlayer() {} + +/* 8002d4b0 */ +void dAcBase_c::updateRoomId(f32 yOffs) {} + +/* 8002d540 */ // currently named Global__isRoomFlags_6not0 +bool dAcBase_c::isRoomFlags_0x6_Set() {} + +/* 8002d590 */ +void dAcBase_c::FUN_8002d590() {} + +/* 8002d5b0 */ +void dAcBase_c::FUN_8002d5b0() {} + +/* 8002d5d0*/ +void dAcBase_c::playSound() {} + +/* 8002d600 */ +void dAcBase_c::FUN_8002d600() {} + +/* 8002d630 */ +void dAcBase_c::FUN_8002d630() {} + +/* 8002d6d0 */ +void dAcBase_c::FUN_8002d6d0() {} + +/* 8002d710 */ // currently named ActorBase__playSoundEffect1 +void dAcBase_c::playSoundEffect1() {} + +/* 8002d740 */ +void dAcBase_c::FUN_8002d740() {} + +/* 8002d770 */ +void dAcBase_c::FUN_8002d770() {} + +/* 8002d7a0 */ +void dAcBase_c::FUN_8002d7a0() {} + +/* 8002d7d0 */ +void dAcBase_c::FUN_8002d7d0() {} + +/* 8002d7f0 */ +void dAcBase_c::FUN_8002d7f0() {} + +/* 8002d810 */ +void dAcBase_c::FUN_8002d810() {} + +/* 8002d830 */ +void dAcBase_c::FUN_8002d830() {} + +/* 8002d860 */ +void dAcBase_c::FUN_8002d860() {} + +/* 8002d880 */ +void dAcBase_c::FUN_8002d880() {} + +/* 8002d890 */ // first param is not dAcBase_c +void dAcBase_c::FUN_8002d890() {} + +/* 8002d920 */ // current name is Global__setActorRef +void dAcBase_c::setActorRef(dBase_c&) {} + +/* 8002d930 */ // May not be only purpose +void dAcBase_c::setUnkFlag() {} + +/* 8002d940 */ +void dAcBase_c::FUN_8002d940() {} + +/* 8002d960 */ +void dAcBase_c::FUN_8002d960() {} + +/* 8002d980 */ // spawns GroupType2 (ACTOR) +dAcBase_c dAcBase_c::createActor( \ + ProfileName actorId, u32 params1, \ + Vec3f* pos, Vec3s* rot, Vec3f* scale, \ + u32 params2, s32 roomId, dBase_c* ref) {} + +/* 8002da80 */ // spawns GroupType3 (TG_FORCE_LINE ? ) +dAcBase_c dAcBase_c::createActorUnkGroup3( \ + ProfileName actorId, u32 params1, \ + Vec3f* pos, Vec3s* rot, Vec3f* scale, \ + u32 params2, s32 roomId, dBase_c* ref) {} + +/* 8002db80 */ +void* dAcBase_c::getCurrentEventActor() {} + +/* 8002db90 */ +void dAcBase_c::unkVirtFunc_0x6C() {} + +/* 8002dba0 */ +void dAcBase_c::doInteraction(s32) {} + +/* 8002dc20 */ +void dAcBase_c::FUN_8002dc20(s16*, s16*) {} + +/* 8002dc50 */ +void dAcBase_c::incrementKillCounter() {} + +/* 8002dcd0 */ +void dAcBase_c::FUN_8002dcd0() {} + +/* 8002dd10 */ +void dAcBase_c::FUN_8002dd10() {} + +/* 8002dd50 */ +void dAcBase_c::FUN_8002dd50() {} + +/* 8002dd90 */ +void dAcBase_c::FUN_8002dd90() {} + +/* 8002ddd0 */ +void dAcBase_c::FUN_8002ddd0() {} + +/* 8002de30 */ +void dAcBase_c::FUN_8002de30() {} \ No newline at end of file diff --git a/src/d/d_base.cpp b/src/d/d_base.cpp new file mode 100644 index 00000000..5a7abc2b --- /dev/null +++ b/src/d/d_base.cpp @@ -0,0 +1,81 @@ +#include + +extern "C" fProfile::fBaseProfile_c** DAT_ACTOR_ALLOCATION_FUNCTIONS; +extern "C" /* 805750c0 */ u32 ACTOR_SHOULD_UPDATE_FLAGS; +extern "C" /* 805750c4 */ u32 ACTOR_SHOULD_DRAW_FLAGS; +extern "C" /* 805750c0 */ u32 ACTOR_SHOULD_UNK_FLAGS; + +dBase_c::dBase_c() : fBase_c() { + baseProperties = DAT_ACTOR_ALLOCATION_FUNCTIONS[mProfName]->mBaseProperties; +} + +void dBase_c::postDraw(fBase_c::MAIN_STATE_e status) { + if (status != CANCELED) { + baseProperties |= 0x100; + } else { + baseProperties &= ~0x100; + } + fBase_c::postDraw(status); +} + +int dBase_c::preExecute() { + if (fBase_c::preExecute() == 0) { + return NOT_READY; + } + if (ACTOR_SHOULD_UPDATE_FLAGS && !isProcControlFlag(ACTOR_SHOULD_UPDATE_FLAGS)) { + return NOT_READY; + } + return SUCCEEDED; +} + +void dBase_c::postExecute(fBase_c::MAIN_STATE_e status) { + if (status != CANCELED) { + baseProperties |= 0x4; + } else { + baseProperties &= ~0x4; + } + fBase_c::postExecute(status); +} + +int dBase_c::preDraw() { + if (fBase_c::preDraw() == NOT_READY) { + return NOT_READY; + } + if (ACTOR_SHOULD_DRAW_FLAGS && !isProcControlFlag(ACTOR_SHOULD_DRAW_FLAGS)) { + return NOT_READY; + } + return SUCCEEDED; +} + +void dBase_c::resetFlags() { + ACTOR_SHOULD_UPDATE_FLAGS = 0; + ACTOR_SHOULD_DRAW_FLAGS = 0; + ACTOR_SHOULD_UNK_FLAGS = 0; +} + +bool dBase_c::isActorPlayer(dBase_c& base) { + return base.mProfName == fProfile::PLAYER; +} + +int dBase_c::loadAsyncCallback() { + return 2; +} + +void dBase_c::unloadCallback() { + return; +} + +void dBase_c::initLoader() { + fBase_c::sLoadAsyncCallback = loadAsyncCallback; + fBase_c::sUnloadCallback = unloadCallback; +} + +dBase_c* dBase_c::createBase(ProfileName profName, dBase_c* parent, unsigned long param, u8 grouptype) { + return static_cast(fBase_c::createChild(profName, parent, param, grouptype)); +} + +dBase_c* dBase_c::createRoot(ProfileName profName, unsigned long param, u8 groupType) { + return static_cast(fBase_c::createRoot(profName, param, groupType)); +} + +// dBase_c::~dBase_c() {} diff --git a/src/f/f_base.cpp b/src/f/f_base.cpp new file mode 100644 index 00000000..bffbfabb --- /dev/null +++ b/src/f/f_base.cpp @@ -0,0 +1,145 @@ +#include + +/* +.text File Range: + [802e12f0 - 802e2680] +*/ + +// This file will be ported from https://github.com/NSMBW-Community/NSMBW-Decomp/blob/master/source/dol/framework/f_base.cpp + +fBaseID_e fBase_c::m_rootUniqueID = FIRST_ID; +ProfileName fBase_c::m_tmpCtProfName; +u32 fBase_c::m_tmpCtParam; +u8 fBase_c::m_tmpCtGroupType; +fTrNdBa_c *fBase_c::m_tmpCtConnectParent; + +// 0x80575bb0: sLoadAsyncCallback__7fBase_c +// 0x80575bb4: sUnloadCallback__7fBase_c +int (*fBase_c::sLoadAsyncCallback)(); +void (*fBase_c::sUnloadCallback)(); + +/* 802e12f0 */ +fBase_c::fBase_c() : mMng(this) {} + +/* 802e1480 */ +fBase_c::~fBase_c() {} + +/* 802e1500 */ +int fBase_c::commonPack(int (fBase_c::*doFunc)(), int (fBase_c::*preFunc)(), void (fBase_c::*postFunc)(MAIN_STATE_e)) {} + +/* 802e15c0 */ +int fBase_c::create() {} + +/* 802e15d0 */ +int fBase_c::preCreate() {} + +/* 802e15e0 */ +void fBase_c::postCreate(MAIN_STATE_e state) {} + +/* 802e1670 */ +int fBase_c::doDelete() {} + +/* 802e1680 */ +int fBase_c::createPack() {} + +/* 802e1730 */ +int fBase_c::preDelete() {} + +/* 802e17a0 */ +void fBase_c::postDelete(MAIN_STATE_e state) {} + +/* 802e15d0 */ +int fBase_c::deletePack() {} + +/* 802e1910 */ +int fBase_c::execute() {} + +/* 802e1920 */ +int fBase_c::preExecute() {} + +/* 802e1950 */ +void fBase_c::postExecute(MAIN_STATE_e state) {} + +/* 802e1960 */ +int fBase_c::executePack() {} + +/* 802e1a90 */ +int fBase_c::draw() {} + +/* 802e1aa0 */ +int fBase_c::preDraw() {} + +/* 802e1ad0 */ +void fBase_c::postDraw(MAIN_STATE_e state) {} + +/* 802e1ae0 */ +int fBase_c::drawPack() {} + +/* 802e1b90 */ +void fBase_c::deleteReady() {} + +/* 802e1ba0 */ +int fBase_c::connectProc() {} + +/* 802e1e00 */ +void fBase_c::deleteRequest() {} + +/* 802e1e80 */ +// addNewActorToDrawList + +/* 802e1f10 */ +// getFirstActor + +/* 802e1f30 */ +// getNextActor + +/* 802e1f90 */ +fBase_c* fBase_c::getConnectParent() const {} + +/* 802e1fb0 */ +fBase_c* fBase_c::getConnectChild() const {} + +/* 802e1fd0 */ +fBase_c* fBase_c::getConnectBrNext() const {} + +/* 802e1ff0 */ +// FUN_802e1ff0 + +/* 802e2090 */ +// addActorToRoom + +/* 802e20e0 */ +bool fBase_c::entryFrmHeap(unsigned long size, EGG::Heap *parentHeap) {} + +/* 802e22e0 */ +bool fBase_c::entryFrmHeapNonAdjust(unsigned long size, EGG::Heap *parentHeap) {} + +/* 802e23a0 */ +bool fBase_c::createHeap() {} + +/* 802e23b0 */ +void* fBase_c::operator new(size_t) {} + +/* 802e2410 */ +void fBase_c::operator delete(void*) {} + +/* 802e2420 */ +void fBase_c::runCreate() {} + +/* 802e24a0 */ +fBase_c* fBase_c::getChildProcessCreateState() const {} + +/* 802e2510 */ +bool fBase_c::checkChildProcessCreateState() const {} + +/* 802e2540 */ +void fBase_c::setTmpCtData(ProfileName profName, fTrNdBa_c *connectParent, unsigned long param, u8 groupType) {} + +/* 802e2560 */ +fBase_c* fBase_c::fBase_make(ProfileName profName, fTrNdBa_c *connectParent, unsigned long param, u8 groupType) {} + +/* 802e2600 */ +fBase_c* fBase_c::createChild(ProfileName profName, fBase_c *parent, unsigned long param, u8 groupType) {} + +/* 802e2640 */ +fBase_c* fBase_c::createRoot(ProfileName profName, unsigned long param, u8 groupType) {} diff --git a/src/toBeSorted/save_file.cpp b/src/toBeSorted/save_file.cpp new file mode 100644 index 00000000..6b6ec66e --- /dev/null +++ b/src/toBeSorted/save_file.cpp @@ -0,0 +1,88 @@ +#include + +// 0x800099b0 getStoryFlags0__8SaveFileFv +u16* SaveFile::getStoryFlags0() { + return story_flags; +} +// 0x800099c0 getStoryFlags1__8SaveFileFv +u16* SaveFile::getStoryFlags1() { + return story_flags; +} +// 0x800099d0 getItemFlags0__8SaveFileFv +u16* SaveFile::getItemFlags0() { + return item_flags; +} +// 0x800099e0 getItemFlags1__8SaveFileFv +u16* SaveFile::getItemFlags1() { + return item_flags; +} +// 0x800099F0 getDungeonFlags0__8SaveFileFv +u16* SaveFile::getDungeonFlags0() { + return dungeon_flags[0]; +} +// 0x80009A00 getDungeonFlags1__8SaveFileFv +u16* SaveFile::getDungeonFlags1() { + return dungeon_flags[0]; +} +// 0x80009A10 getSceneFlags0__8SaveFileFv +u16* SaveFile::getSceneFlags0() { + return scene_flags; +} +// 0x80009A20 getSceneFlags1__8SaveFileFv +u16* SaveFile::getSceneFlags1() { + return scene_flags; +} +// 0x80009A30 getTboxFlags0__8SaveFileFv +u16* SaveFile::getTboxFlags0() { + return tbox_flags; +} +// 0x80009A40 getTboxFlags1__8SaveFileFv +u16* SaveFile::getTboxFlags1() { + return tbox_flags; +} +// 0x80009A50 getTempFlags0__8SaveFileFv +u16* SaveFile::getTempFlags0() { + return temp_flags; +} +// 0x80009A60 getTempFlags1__8SaveFileFv +u16* SaveFile::getTempFlags1() { + return temp_flags; +} +// 0x80009A70 getZoneFlags0__8SaveFileFv +u16* SaveFile::getZoneFlags0() { + return zone_flags; +} +// 0x80009A80 getZoneFlags1__8SaveFileFv +u16* SaveFile::getZoneFlags1() { + return zone_flags; +} +// 0x80009A90 getUnkFlags0__8SaveFileFv +u16* SaveFile::getUnkFlags0() { + return unk_flags; +} +// 0x80009AA0 getUnkFlags1__8SaveFileFv +u16* SaveFile::getUnkFlags1() { + return unk_flags; +} +// 0x80009AB0 getPlayerName__8SaveFileFv +s16* SaveFile::getPlayerName() { + return player_name; +} // using Shift JIS i assume +// 0x80009AC0 setAreaT1__8SaveFileFv +void SaveFile::setAreaT1() {} +// 0x80009BE0 getAreaT1__8SaveFileFv +s8* SaveFile::getAreaT1() { + return area_t1; +} +// 0x80009BF0 setAreaT2__8SaveFileFv +void SaveFile::setAreaT2() { + +} +// 0x80009D10 getAreaT2__8SaveFileFv +s8* SaveFile::getAreaT2() { + return area_t2; +} +// 0x80009D20 getAreaT3__8SaveFileFv +s8* SaveFile::getAreaT3() { + return area_t3; +} \ No newline at end of file diff --git a/tools/dtk b/tools/dtk deleted file mode 100755 index f230bf05..00000000 Binary files a/tools/dtk and /dev/null differ