mirror of https://github.com/PrimeDecomp/prime.git
More main progress; tons of headers & stuff
This commit is contained in:
parent
38acae22fe
commit
a6e365791b
|
@ -8,16 +8,15 @@ lbl_ctor:
|
|||
.balign 8
|
||||
|
||||
.lcomm lbl_804BFD58, 0xC, 4
|
||||
.lcomm lbl_804BFD64, 0xC4, 4
|
||||
.lcomm gGameAllocator, 0xC0, 4
|
||||
|
||||
.section .sdata
|
||||
.balign 8
|
||||
|
||||
.global lbl_805A8868
|
||||
lbl_805A8868:
|
||||
.global mpAllocator__7CMemory
|
||||
mpAllocator__7CMemory:
|
||||
# ROM: 0x3F6208
|
||||
.4byte lbl_804BFD64
|
||||
.4byte 0
|
||||
.4byte gGameAllocator
|
||||
|
||||
.section .sbss, "wa"
|
||||
.balign 8
|
||||
|
@ -88,7 +87,7 @@ OffsetFakeStatics__7CMemoryFi:
|
|||
/* 803158C4 00312824 7C 08 02 A6 */ mflr r0
|
||||
/* 803158C8 00312828 7C 64 1B 78 */ mr r4, r3
|
||||
/* 803158CC 0031282C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 803158D0 00312830 80 6D 9C A8 */ lwz r3, lbl_805A8868@sda21(r13)
|
||||
/* 803158D0 00312830 80 6D 9C A8 */ lwz r3, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 803158D4 00312834 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 803158D8 00312838 81 8C 00 38 */ lwz r12, 0x38(r12)
|
||||
/* 803158DC 0031283C 7D 89 03 A6 */ mtctr r12
|
||||
|
@ -106,7 +105,7 @@ SetOutOfMemoryCallback__7CMemoryFPFPCvUi_CbPCv:
|
|||
/* 80315900 00312860 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80315904 00312864 7C 60 1B 78 */ mr r0, r3
|
||||
/* 80315908 00312868 7C 04 03 78 */ mr r4, r0
|
||||
/* 8031590C 0031286C 80 6D 9C A8 */ lwz r3, lbl_805A8868@sda21(r13)
|
||||
/* 8031590C 0031286C 80 6D 9C A8 */ lwz r3, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 80315910 00312870 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 80315914 00312874 81 8C 00 2C */ lwz r12, 0x2c(r12)
|
||||
/* 80315918 00312878 7D 89 03 A6 */ mtctr r12
|
||||
|
@ -130,7 +129,7 @@ Free__7CMemoryFPCv:
|
|||
/* 80315954 003128B4 54 00 0F FE */ srwi r0, r0, 0x1f
|
||||
/* 80315958 003128B8 98 01 00 08 */ stb r0, 8(r1)
|
||||
/* 8031595C 003128BC 41 82 00 1C */ beq lbl_80315978
|
||||
/* 80315960 003128C0 80 6D 9C A8 */ lwz r3, lbl_805A8868@sda21(r13)
|
||||
/* 80315960 003128C0 80 6D 9C A8 */ lwz r3, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 80315964 003128C4 7F E4 FB 78 */ mr r4, r31
|
||||
/* 80315968 003128C8 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 8031596C 003128CC 81 8C 00 18 */ lwz r12, 0x18(r12)
|
||||
|
@ -160,7 +159,7 @@ Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeR
|
|||
/* 803159BC 0031291C 7C 03 00 D0 */ neg r0, r3
|
||||
/* 803159C0 00312920 7F 64 DB 78 */ mr r4, r27
|
||||
/* 803159C4 00312924 7C 00 1B 78 */ or r0, r0, r3
|
||||
/* 803159C8 00312928 80 6D 9C A8 */ lwz r3, lbl_805A8868@sda21(r13)
|
||||
/* 803159C8 00312928 80 6D 9C A8 */ lwz r3, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 803159CC 0031292C 54 00 0F FE */ srwi r0, r0, 0x1f
|
||||
/* 803159D0 00312930 7F 85 E3 78 */ mr r5, r28
|
||||
/* 803159D4 00312934 81 83 00 00 */ lwz r12, 0(r3)
|
||||
|
@ -195,7 +194,7 @@ Shutdown__7CMemoryFv:
|
|||
/* 80315A38 00312998 90 01 00 64 */ stw r0, 0x64(r1)
|
||||
/* 80315A3C 0031299C 38 00 00 00 */ li r0, 0
|
||||
/* 80315A40 003129A0 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80315A44 003129A4 80 8D 9C A8 */ lwz r4, lbl_805A8868@sda21(r13)
|
||||
/* 80315A44 003129A4 80 8D 9C A8 */ lwz r4, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 80315A48 003129A8 98 0D A8 A0 */ stb r0, lbl_805A9460@sda21(r13)
|
||||
/* 80315A4C 003129AC 81 84 00 00 */ lwz r12, 0(r4)
|
||||
/* 80315A50 003129B0 81 8C 00 3C */ lwz r12, 0x3c(r12)
|
||||
|
@ -208,7 +207,7 @@ Shutdown__7CMemoryFv:
|
|||
/* 80315A6C 003129CC 3C 60 80 31 */ lis r3, cmemory_enum_alloc_cb__FRCQ210IAllocator10SAllocInfoPCv@ha
|
||||
/* 80315A70 003129D0 38 83 5A BC */ addi r4, r3, cmemory_enum_alloc_cb__FRCQ210IAllocator10SAllocInfoPCv@l
|
||||
/* 80315A74 003129D4 90 0D A8 A4 */ stw r0, lbl_805A9464@sda21(r13)
|
||||
/* 80315A78 003129D8 80 6D 9C A8 */ lwz r3, lbl_805A8868@sda21(r13)
|
||||
/* 80315A78 003129D8 80 6D 9C A8 */ lwz r3, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 80315A7C 003129DC 38 A0 00 00 */ li r5, 0
|
||||
/* 80315A80 003129E0 90 0D A8 A8 */ stw r0, lbl_805A9468@sda21(r13)
|
||||
/* 80315A84 003129E4 38 C0 00 00 */ li r6, 0
|
||||
|
@ -217,7 +216,7 @@ Shutdown__7CMemoryFv:
|
|||
/* 80315A90 003129F0 7D 89 03 A6 */ mtctr r12
|
||||
/* 80315A94 003129F4 4E 80 04 21 */ bctrl
|
||||
lbl_80315A98:
|
||||
/* 80315A98 003129F8 80 6D 9C A8 */ lwz r3, lbl_805A8868@sda21(r13)
|
||||
/* 80315A98 003129F8 80 6D 9C A8 */ lwz r3, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 80315A9C 003129FC 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 80315AA0 00312A00 81 8C 00 10 */ lwz r12, 0x10(r12)
|
||||
/* 80315AA4 00312A04 7D 89 03 A6 */ mtctr r12
|
||||
|
@ -255,7 +254,7 @@ SetAllocator__7CMemoryFR10COsContextR10IAllocator:
|
|||
/* 80315B08 00312A68 7C 9F 23 78 */ mr r31, r4
|
||||
/* 80315B0C 00312A6C 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 80315B10 00312A70 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 80315B14 00312A74 80 0D 9C A8 */ lwz r0, lbl_805A8868@sda21(r13)
|
||||
/* 80315B14 00312A74 80 0D 9C A8 */ lwz r0, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 80315B18 00312A78 7C 00 F8 40 */ cmplw r0, r31
|
||||
/* 80315B1C 00312A7C 41 82 00 3C */ beq lbl_80315B58
|
||||
/* 80315B20 00312A80 28 00 00 00 */ cmplwi r0, 0
|
||||
|
@ -266,7 +265,7 @@ SetAllocator__7CMemoryFR10COsContextR10IAllocator:
|
|||
/* 80315B34 00312A94 7D 89 03 A6 */ mtctr r12
|
||||
/* 80315B38 00312A98 4E 80 04 21 */ bctrl
|
||||
lbl_80315B3C:
|
||||
/* 80315B3C 00312A9C 93 ED 9C A8 */ stw r31, lbl_805A8868@sda21(r13)
|
||||
/* 80315B3C 00312A9C 93 ED 9C A8 */ stw r31, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 80315B40 00312AA0 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80315B44 00312AA4 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80315B48 00312AA8 81 9F 00 00 */ lwz r12, 0(r31)
|
||||
|
@ -287,7 +286,7 @@ Startup__7CMemoryFR10COsContext:
|
|||
/* 80315B74 00312AD4 7C 08 02 A6 */ mflr r0
|
||||
/* 80315B78 00312AD8 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80315B7C 00312ADC 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80315B80 00312AE0 80 6D 9C A8 */ lwz r3, lbl_805A8868@sda21(r13)
|
||||
/* 80315B80 00312AE0 80 6D 9C A8 */ lwz r3, mpAllocator__7CMemory@sda21(r13)
|
||||
/* 80315B84 00312AE4 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 80315B88 00312AE8 81 8C 00 0C */ lwz r12, 0xc(r12)
|
||||
/* 80315B8C 00312AEC 7D 89 03 A6 */ mtctr r12
|
||||
|
@ -300,8 +299,8 @@ Startup__7CMemoryFR10COsContext:
|
|||
|
||||
.global GetGameAllocator__10CMemorySysFv
|
||||
GetGameAllocator__10CMemorySysFv:
|
||||
/* 80315BA8 00312B08 3C 60 80 4C */ lis r3, lbl_804BFD64@ha
|
||||
/* 80315BAC 00312B0C 38 63 FD 64 */ addi r3, r3, lbl_804BFD64@l
|
||||
/* 80315BA8 00312B08 3C 60 80 4C */ lis r3, gGameAllocator@ha
|
||||
/* 80315BAC 00312B0C 38 63 FD 64 */ addi r3, r3, gGameAllocator@l
|
||||
/* 80315BB0 00312B10 4E 80 00 20 */ blr
|
||||
|
||||
.global __dt__10CMemorySysFv
|
||||
|
@ -357,9 +356,9 @@ __ct__10CMemorySysFR10COsContextR10IAllocator:
|
|||
__sinit_CMemory_cpp:
|
||||
/* 80315C5C 00312BBC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80315C60 00312BC0 7C 08 02 A6 */ mflr r0
|
||||
/* 80315C64 00312BC4 3C 60 80 4C */ lis r3, lbl_804BFD64@ha
|
||||
/* 80315C64 00312BC4 3C 60 80 4C */ lis r3, gGameAllocator@ha
|
||||
/* 80315C68 00312BC8 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80315C6C 00312BCC 38 63 FD 64 */ addi r3, r3, lbl_804BFD64@l
|
||||
/* 80315C6C 00312BCC 38 63 FD 64 */ addi r3, r3, gGameAllocator@l
|
||||
/* 80315C70 00312BD0 48 03 C9 5D */ bl __ct__14CGameAllocatorFv
|
||||
/* 80315C74 00312BD4 3C 80 80 35 */ lis r4, __dt__14CGameAllocatorFv@ha
|
||||
/* 80315C78 00312BD8 3C A0 80 4C */ lis r5, lbl_804BFD58@ha
|
||||
|
|
|
@ -7,8 +7,8 @@ lbl_ctor:
|
|||
.section .sdata
|
||||
.balign 8
|
||||
|
||||
.global lbl_805A8920
|
||||
lbl_805A8920:
|
||||
.global mPreInitializeAlloc__12CARAMManager
|
||||
mPreInitializeAlloc__12CARAMManager:
|
||||
# ROM: 0x3F62C0
|
||||
.4byte 0x00004000
|
||||
.4byte 0
|
||||
|
@ -595,7 +595,7 @@ Initialize__12CARAMManagerFUi:
|
|||
/* 80344D24 00341C84 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 80344D28 00341C88 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 80344D2C 00341C8C 48 02 8E 91 */ bl ARGetSize
|
||||
/* 80344D30 00341C90 80 0D 9D 60 */ lwz r0, lbl_805A8920@sda21(r13)
|
||||
/* 80344D30 00341C90 80 0D 9D 60 */ lwz r0, mPreInitializeAlloc__12CARAMManager@sda21(r13)
|
||||
/* 80344D34 00341C94 93 CD A9 68 */ stw r30, lbl_805A9528@sda21(r13)
|
||||
/* 80344D38 00341C98 7C 00 18 50 */ subf r0, r0, r3
|
||||
/* 80344D3C 00341C9C 7F E0 F3 96 */ divwu r31, r0, r30
|
||||
|
|
|
@ -28,8 +28,9 @@ lbl_803ED594:
|
|||
.section .sbss, "wa"
|
||||
.balign 8
|
||||
|
||||
.global lbl_805A9330
|
||||
lbl_805A9330:
|
||||
# TODO CDvdRequestManager
|
||||
.global mManagerInstalled__14CDvdRequestSys
|
||||
mManagerInstalled__14CDvdRequestSys:
|
||||
.skip 0x8
|
||||
|
||||
.section .text, "ax"
|
||||
|
|
|
@ -260,8 +260,8 @@ lbl_8036CD34:
|
|||
/* 8036CD50 00369CB0 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8036CD54 00369CB4 4E 80 00 20 */ blr
|
||||
|
||||
.global sub_8036cd58
|
||||
sub_8036cd58:
|
||||
.global ShutDown__19CFrameDelayedKillerFv
|
||||
ShutDown__19CFrameDelayedKillerFv:
|
||||
/* 8036CD58 00369CB8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8036CD5C 00369CBC 7C 08 02 A6 */ mflr r0
|
||||
/* 8036CD60 00369CC0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
|
@ -271,8 +271,8 @@ sub_8036cd58:
|
|||
/* 8036CD70 00369CD0 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8036CD74 00369CD4 4E 80 00 20 */ blr
|
||||
|
||||
.global sub_8036cd78
|
||||
sub_8036cd78:
|
||||
.global Initialize__19CFrameDelayedKillerFv
|
||||
Initialize__19CFrameDelayedKillerFv:
|
||||
/* 8036CD78 00369CD8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8036CD7C 00369CDC 7C 08 02 A6 */ mflr r0
|
||||
/* 8036CD80 00369CE0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
|
|
|
@ -1241,8 +1241,8 @@ lbl_8034E4A4:
|
|||
/* 8034E4B8 0034B418 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8034E4BC 0034B41C 4E 80 00 20 */ blr
|
||||
|
||||
.global Initialize__14CMemoryCardSysFv
|
||||
Initialize__14CMemoryCardSysFv:
|
||||
.global __ct__14CMemoryCardSysFv
|
||||
__ct__14CMemoryCardSysFv:
|
||||
/* 8034E4C0 0034B420 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8034E4C4 0034B424 7C 08 02 A6 */ mflr r0
|
||||
/* 8034E4C8 0034B428 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
|
|
|
@ -2567,7 +2567,6 @@ HandleAnimatedUV__FPCUi9_GXTexMtx11_GXPTTexMtx:
|
|||
/* 80347A50 003449B0 7C 03 00 2E */ lwzx r0, r3, r0
|
||||
/* 80347A54 003449B4 7C 09 03 A6 */ mtctr r0
|
||||
/* 80347A58 003449B8 4E 80 04 20 */ bctr
|
||||
.global lbl_80347A5C
|
||||
lbl_80347A5C:
|
||||
/* 80347A5C 003449BC 3C 80 80 5A */ lis r4, mViewMatrix__9CGraphics@ha
|
||||
/* 80347A60 003449C0 38 61 00 CC */ addi r3, r1, 0xcc
|
||||
|
@ -2599,7 +2598,6 @@ lbl_80347A5C:
|
|||
/* 80347AC8 00344A28 48 03 49 C9 */ bl GXLoadTexMtxImm
|
||||
/* 80347ACC 00344A2C 38 60 00 01 */ li r3, 1
|
||||
/* 80347AD0 00344A30 48 00 05 14 */ b lbl_80347FE4
|
||||
.global lbl_80347AD4
|
||||
lbl_80347AD4:
|
||||
/* 80347AD4 00344A34 3C 80 80 5A */ lis r4, mViewMatrix__9CGraphics@ha
|
||||
/* 80347AD8 00344A38 38 61 00 6C */ addi r3, r1, 0x6c
|
||||
|
@ -2623,7 +2621,6 @@ lbl_80347AD4:
|
|||
/* 80347B20 00344A80 48 03 49 71 */ bl GXLoadTexMtxImm
|
||||
/* 80347B24 00344A84 38 60 00 01 */ li r3, 1
|
||||
/* 80347B28 00344A88 48 00 04 BC */ b lbl_80347FE4
|
||||
.global lbl_80347B2C
|
||||
lbl_80347B2C:
|
||||
/* 80347B2C 00344A8C C3 FC 00 04 */ lfs f31, 4(r28)
|
||||
/* 80347B30 00344A90 C3 DC 00 08 */ lfs f30, 8(r28)
|
||||
|
@ -2641,7 +2638,6 @@ lbl_80347B2C:
|
|||
/* 80347B60 00344AC0 48 03 49 31 */ bl GXLoadTexMtxImm
|
||||
/* 80347B64 00344AC4 38 60 00 05 */ li r3, 5
|
||||
/* 80347B68 00344AC8 48 00 04 7C */ b lbl_80347FE4
|
||||
.global lbl_80347B6C
|
||||
lbl_80347B6C:
|
||||
/* 80347B6C 00344ACC C3 9C 00 04 */ lfs f28, 4(r28)
|
||||
/* 80347B70 00344AD0 C3 BC 00 08 */ lfs f29, 8(r28)
|
||||
|
@ -2697,7 +2693,6 @@ lbl_80347B6C:
|
|||
/* 80347C38 00344B98 48 03 48 59 */ bl GXLoadTexMtxImm
|
||||
/* 80347C3C 00344B9C 38 60 00 03 */ li r3, 3
|
||||
/* 80347C40 00344BA0 48 00 03 A4 */ b lbl_80347FE4
|
||||
.global lbl_80347C44
|
||||
lbl_80347C44:
|
||||
/* 80347C44 00344BA4 C3 9C 00 04 */ lfs f28, 4(r28)
|
||||
/* 80347C48 00344BA8 C3 BC 00 08 */ lfs f29, 8(r28)
|
||||
|
@ -2751,7 +2746,6 @@ lbl_80347CF0:
|
|||
/* 80347D00 00344C60 48 03 47 91 */ bl GXLoadTexMtxImm
|
||||
/* 80347D04 00344C64 38 60 00 05 */ li r3, 5
|
||||
/* 80347D08 00344C68 48 00 02 DC */ b lbl_80347FE4
|
||||
.global lbl_80347D0C
|
||||
lbl_80347D0C:
|
||||
/* 80347D0C 00344C6C 3C 60 80 5A */ lis r3, mModelMatrix__9CGraphics@ha
|
||||
/* 80347D10 00344C70 83 9F 00 60 */ lwz r28, 0x60(r31)
|
||||
|
@ -2837,7 +2831,6 @@ lbl_80347D0C:
|
|||
/* 80347E50 00344DB0 48 03 46 41 */ bl GXLoadTexMtxImm
|
||||
/* 80347E54 00344DB4 38 60 00 01 */ li r3, 1
|
||||
/* 80347E58 00344DB8 48 00 01 8C */ b lbl_80347FE4
|
||||
.global lbl_80347E5C
|
||||
lbl_80347E5C:
|
||||
/* 80347E5C 00344DBC 3C 80 80 5A */ lis r4, mViewMatrix__9CGraphics@ha
|
||||
/* 80347E60 00344DC0 38 61 00 0C */ addi r3, r1, 0xc
|
||||
|
|
|
@ -15601,7 +15601,7 @@ lbl_80324EB4:
|
|||
/* 80324EC4 00321E24 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80324EC8 00321E28 3B 01 00 70 */ addi r24, r1, 0x70
|
||||
/* 80324ECC 00321E2C 38 61 00 10 */ addi r3, r1, 0x10
|
||||
/* 80324ED0 00321E30 4B CE 2B 5D */ bl "GetNewDerivedObject__35TObjOwnerDerivedFromIObj<8CTexture>FP8CTexture"
|
||||
/* 80324ED0 00321E30 4B CE 2B 5D */ bl "GetIObjObjectFor__17TToken<8CTexture>FP8CTexture"
|
||||
/* 80324ED4 00321E34 38 00 00 00 */ li r0, 0
|
||||
/* 80324ED8 00321E38 80 81 00 14 */ lwz r4, 0x14(r1)
|
||||
/* 80324EDC 00321E3C 98 01 00 10 */ stb r0, 0x10(r1)
|
||||
|
@ -15732,7 +15732,7 @@ lbl_80325044:
|
|||
/* 803250B0 00322010 7C 64 1B 78 */ mr r4, r3
|
||||
/* 803250B4 00322014 3B 01 00 60 */ addi r24, r1, 0x60
|
||||
/* 803250B8 00322018 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 803250BC 0032201C 4B CE 29 71 */ bl "GetNewDerivedObject__35TObjOwnerDerivedFromIObj<8CTexture>FP8CTexture"
|
||||
/* 803250BC 0032201C 4B CE 29 71 */ bl "GetIObjObjectFor__17TToken<8CTexture>FP8CTexture"
|
||||
/* 803250C0 00322020 38 00 00 00 */ li r0, 0
|
||||
/* 803250C4 00322024 80 81 00 0C */ lwz r4, 0xc(r1)
|
||||
/* 803250C8 00322028 98 01 00 08 */ stb r0, 8(r1)
|
||||
|
|
|
@ -944,7 +944,6 @@ AcceptScriptMsg__6CActorF20EScriptObjectMessage9TUniqueIdR13CStateManager:
|
|||
/* 80053648 000505A8 7C 04 00 2E */ lwzx r0, r4, r0
|
||||
/* 8005364C 000505AC 7C 09 03 A6 */ mtctr r0
|
||||
/* 80053650 000505B0 4E 80 04 20 */ bctr
|
||||
.global lbl_80053654
|
||||
lbl_80053654:
|
||||
/* 80053654 000505B4 88 1C 00 30 */ lbz r0, 0x30(r28)
|
||||
/* 80053658 000505B8 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
|
||||
|
@ -952,11 +951,9 @@ lbl_80053654:
|
|||
/* 80053660 000505C0 48 2B 68 81 */ bl GetSecondsMod900__9CGraphicsFv
|
||||
/* 80053664 000505C4 D0 3C 00 BC */ stfs f1, 0xbc(r28)
|
||||
/* 80053668 000505C8 48 00 01 B4 */ b lbl_8005381C
|
||||
.global lbl_8005366C
|
||||
lbl_8005366C:
|
||||
/* 8005366C 000505CC 48 00 1B D9 */ bl RemoveEmitter__6CActorFv
|
||||
/* 80053670 000505D0 48 00 01 AC */ b lbl_8005381C
|
||||
.global lbl_80053674
|
||||
lbl_80053674:
|
||||
/* 80053674 000505D4 48 00 1B D1 */ bl RemoveEmitter__6CActorFv
|
||||
/* 80053678 000505D8 80 9C 00 64 */ lwz r4, 0x64(r28)
|
||||
|
@ -981,7 +978,6 @@ lbl_800536A4:
|
|||
/* 800536BC 0005061C 38 63 01 20 */ addi r3, r3, 0x120
|
||||
/* 800536C0 00050620 48 06 46 71 */ bl DeleteAllLights__17CParticleDatabaseCFR13CStateManager
|
||||
/* 800536C4 00050624 48 00 01 58 */ b lbl_8005381C
|
||||
.global lbl_800536C8
|
||||
lbl_800536C8:
|
||||
/* 800536C8 00050628 80 1C 00 98 */ lwz r0, 0x98(r28)
|
||||
/* 800536CC 0005062C 28 00 00 00 */ cmplwi r0, 0
|
||||
|
@ -1024,7 +1020,6 @@ lbl_80053710:
|
|||
/* 80053754 000506B4 80 63 00 10 */ lwz r3, 0x10(r3)
|
||||
/* 80053758 000506B8 4B FD 77 15 */ bl InitializeEffects__9CAnimDataFR13CStateManager7TAreaIdRC9CVector3f
|
||||
/* 8005375C 000506BC 48 00 00 C0 */ b lbl_8005381C
|
||||
.global lbl_80053760
|
||||
lbl_80053760:
|
||||
/* 80053760 000506C0 A0 1E 00 00 */ lhz r0, 0(r30)
|
||||
/* 80053764 000506C4 38 A1 00 18 */ addi r5, r1, 0x18
|
||||
|
@ -1032,7 +1027,6 @@ lbl_80053760:
|
|||
/* 8005376C 000506CC B0 01 00 18 */ sth r0, 0x18(r1)
|
||||
/* 80053770 000506D0 4B FF FB 51 */ bl SetInFluid__6CActorFb9TUniqueId
|
||||
/* 80053774 000506D4 48 00 00 A8 */ b lbl_8005381C
|
||||
.global lbl_80053778
|
||||
lbl_80053778:
|
||||
/* 80053778 000506D8 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
|
||||
/* 8005377C 000506DC 38 A1 00 14 */ addi r5, r1, 0x14
|
||||
|
@ -1040,7 +1034,6 @@ lbl_80053778:
|
|||
/* 80053784 000506E4 B0 01 00 14 */ sth r0, 0x14(r1)
|
||||
/* 80053788 000506E8 4B FF FB 39 */ bl SetInFluid__6CActorFb9TUniqueId
|
||||
/* 8005378C 000506EC 48 00 00 90 */ b lbl_8005381C
|
||||
.global lbl_80053790
|
||||
lbl_80053790:
|
||||
/* 80053790 000506F0 83 7C 00 2C */ lwz r27, 0x2c(r28)
|
||||
/* 80053794 000506F4 48 00 00 70 */ b lbl_80053804
|
||||
|
@ -1080,7 +1073,6 @@ lbl_80053804:
|
|||
/* 80053810 00050770 7C 03 02 14 */ add r0, r3, r0
|
||||
/* 80053814 00050774 7C 1B 00 40 */ cmplw r27, r0
|
||||
/* 80053818 00050778 40 82 FF 80 */ bne lbl_80053798
|
||||
.global lbl_8005381C
|
||||
lbl_8005381C:
|
||||
/* 8005381C 0005077C A0 1E 00 00 */ lhz r0, 0(r30)
|
||||
/* 80053820 00050780 7F 83 E3 78 */ mr r3, r28
|
||||
|
@ -2799,9 +2791,6 @@ lbl_80055010:
|
|||
/* 80055020 00051F80 83 81 00 B0 */ lwz r28, 0xb0(r1)
|
||||
/* 80055024 00051F84 7C 08 03 A6 */ mtlr r0
|
||||
/* 80055028 00051F88 38 21 00 C0 */ addi r1, r1, 0xc0
|
||||
|
||||
.global sub_8005502c
|
||||
sub_8005502c:
|
||||
/* 8005502C 00051F8C 4E 80 00 20 */ blr
|
||||
|
||||
.global SetModelData__6CActorFRC10CModelData
|
||||
|
|
|
@ -2967,7 +2967,7 @@ lbl_80027824:
|
|||
/* 80027824 00024784 3B 1F 00 50 */ addi r24, r31, 0x50
|
||||
/* 80027828 00024788 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 8002782C 0002478C 38 80 00 00 */ li r4, 0
|
||||
/* 80027830 00024790 4B FE 05 A9 */ bl sub_80007dd8
|
||||
/* 80027830 00024790 4B FE 05 A9 */ bl "GetIObjObjectFor__21TToken<11CRasterFont>FP11CRasterFont"
|
||||
/* 80027834 00024794 38 00 00 00 */ li r0, 0
|
||||
/* 80027838 00024798 80 81 00 0C */ lwz r4, 0xc(r1)
|
||||
/* 8002783C 0002479C 98 01 00 08 */ stb r0, 8(r1)
|
||||
|
|
|
@ -5412,12 +5412,12 @@ lbl_8001FE1C:
|
|||
/* 8001FE24 0001CD84 80 6D A0 84 */ lwz r3, gpMemoryCard@sda21(r13)
|
||||
/* 8001FE28 0001CD88 3B 20 00 00 */ li r25, 0
|
||||
/* 8001FE2C 0001CD8C 80 9A 00 08 */ lwz r4, 8(r26)
|
||||
/* 8001FE30 0001CD90 48 22 91 89 */ bl HasSaveWorldMemory__15CMemoryCardSysFi
|
||||
/* 8001FE30 0001CD90 48 22 91 89 */ bl HasSaveWorldMemory__11CMemoryCardFi
|
||||
/* 8001FE34 0001CD94 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 8001FE38 0001CD98 41 82 00 18 */ beq lbl_8001FE50
|
||||
/* 8001FE3C 0001CD9C 80 6D A0 84 */ lwz r3, gpMemoryCard@sda21(r13)
|
||||
/* 8001FE40 0001CDA0 80 9A 00 08 */ lwz r4, 8(r26)
|
||||
/* 8001FE44 0001CDA4 48 22 90 C9 */ bl GetSaveWorldMemory__14CMemoryCardSysCFi
|
||||
/* 8001FE44 0001CDA4 48 22 90 C9 */ bl GetSaveWorldMemory__11CMemoryCardCFi
|
||||
/* 8001FE48 0001CDA8 48 22 90 81 */ bl GetFrontEndName__16CSaveWorldMemoryCFv
|
||||
/* 8001FE4C 0001CDAC 7C 79 1B 78 */ mr r25, r3
|
||||
lbl_8001FE50:
|
||||
|
|
|
@ -717,12 +717,12 @@ lbl_80024258:
|
|||
/* 80024264 000211C4 80 6D A0 84 */ lwz r3, gpMemoryCard@sda21(r13)
|
||||
/* 80024268 000211C8 7C 1E 03 78 */ mr r30, r0
|
||||
/* 8002426C 000211CC 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80024270 000211D0 48 22 4D 49 */ bl HasSaveWorldMemory__15CMemoryCardSysFi
|
||||
/* 80024270 000211D0 48 22 4D 49 */ bl HasSaveWorldMemory__11CMemoryCardFi
|
||||
/* 80024274 000211D4 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 80024278 000211D8 41 82 00 58 */ beq lbl_800242D0
|
||||
/* 8002427C 000211DC 80 6D A0 84 */ lwz r3, gpMemoryCard@sda21(r13)
|
||||
/* 80024280 000211E0 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80024284 000211E4 48 22 4C 89 */ bl GetSaveWorldMemory__14CMemoryCardSysCFi
|
||||
/* 80024284 000211E4 48 22 4C 89 */ bl GetSaveWorldMemory__11CMemoryCardCFi
|
||||
/* 80024288 000211E8 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8002428C 000211EC 80 63 00 00 */ lwz r3, 0(r3)
|
||||
/* 80024290 000211F0 3C 03 00 01 */ addis r0, r3, 1
|
||||
|
|
|
@ -1125,7 +1125,7 @@ PutTo__13CMapWorldInfoCFR13COutputStreamRC10CSaveWorldi:
|
|||
/* 80168BB4 00165B14 7C BD 2B 78 */ mr r29, r5
|
||||
/* 80168BB8 00165B18 7C C4 33 78 */ mr r4, r6
|
||||
/* 80168BBC 00165B1C 80 6D A0 84 */ lwz r3, gpMemoryCard@sda21(r13)
|
||||
/* 80168BC0 00165B20 48 0E 03 4D */ bl GetSaveWorldMemory__14CMemoryCardSysCFi
|
||||
/* 80168BC0 00165B20 48 0E 03 4D */ bl GetSaveWorldMemory__11CMemoryCardCFi
|
||||
/* 80168BC4 00165B24 83 E3 00 08 */ lwz r31, 8(r3)
|
||||
/* 80168BC8 00165B28 3B C0 00 00 */ li r30, 0
|
||||
/* 80168BCC 00165B2C 48 00 00 88 */ b lbl_80168C54
|
||||
|
@ -1394,7 +1394,7 @@ __ct__13CMapWorldInfoFR16CBitStreamReaderRC10CSaveWorldUi:
|
|||
/* 80168F90 00165EF0 90 03 00 34 */ stw r0, 0x34(r3)
|
||||
/* 80168F94 00165EF4 98 03 00 38 */ stb r0, 0x38(r3)
|
||||
/* 80168F98 00165EF8 80 6D A0 84 */ lwz r3, gpMemoryCard@sda21(r13)
|
||||
/* 80168F9C 00165EFC 48 0D FF 71 */ bl GetSaveWorldMemory__14CMemoryCardSysCFi
|
||||
/* 80168F9C 00165EFC 48 0D FF 71 */ bl GetSaveWorldMemory__11CMemoryCardCFi
|
||||
/* 80168FA0 00165F00 83 83 00 08 */ lwz r28, 8(r3)
|
||||
/* 80168FA4 00165F04 38 78 00 04 */ addi r3, r24, 4
|
||||
/* 80168FA8 00165F08 57 80 D8 08 */ slwi r0, r28, 0x1b
|
||||
|
|
|
@ -106,8 +106,8 @@ lbl_80248EFC:
|
|||
/* 80248F04 00245E64 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80248F08 00245E68 4E 80 00 20 */ blr
|
||||
|
||||
.global GetSaveWorldMemory__14CMemoryCardSysCFi
|
||||
GetSaveWorldMemory__14CMemoryCardSysCFi:
|
||||
.global GetSaveWorldMemory__11CMemoryCardCFi
|
||||
GetSaveWorldMemory__11CMemoryCardCFi:
|
||||
/* 80248F0C 00245E6C 94 21 FF C0 */ stwu r1, -0x40(r1)
|
||||
/* 80248F10 00245E70 7C 08 02 A6 */ mflr r0
|
||||
/* 80248F14 00245E74 90 01 00 44 */ stw r0, 0x44(r1)
|
||||
|
@ -154,8 +154,8 @@ lbl_80248FA0:
|
|||
/* 80248FB0 00245F10 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 80248FB4 00245F14 4E 80 00 20 */ blr
|
||||
|
||||
.global HasSaveWorldMemory__15CMemoryCardSysFi
|
||||
HasSaveWorldMemory__15CMemoryCardSysFi:
|
||||
.global HasSaveWorldMemory__11CMemoryCardFi
|
||||
HasSaveWorldMemory__11CMemoryCardFi:
|
||||
/* 80248FB8 00245F18 94 21 FF C0 */ stwu r1, -0x40(r1)
|
||||
/* 80248FBC 00245F1C 7C 08 02 A6 */ mflr r0
|
||||
/* 80248FC0 00245F20 90 01 00 44 */ stw r0, 0x44(r1)
|
||||
|
@ -212,8 +212,8 @@ lbl_80249054:
|
|||
/* 80249084 00245FE4 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 80249088 00245FE8 4E 80 00 20 */ blr
|
||||
|
||||
.global InitializePump__14CMemoryCardSysFv
|
||||
InitializePump__14CMemoryCardSysFv:
|
||||
.global InitializePump__11CMemoryCardFv
|
||||
InitializePump__11CMemoryCardFv:
|
||||
/* 8024908C 00245FEC 94 21 FF 80 */ stwu r1, -0x80(r1)
|
||||
/* 80249090 00245FF0 7C 08 02 A6 */ mflr r0
|
||||
/* 80249094 00245FF4 90 01 00 84 */ stw r0, 0x84(r1)
|
||||
|
@ -301,7 +301,7 @@ lbl_8024919C:
|
|||
/* 802491B4 00246114 41 82 03 28 */ beq lbl_802494DC
|
||||
/* 802491B8 00246118 80 9D 00 00 */ lwz r4, 0(r29)
|
||||
/* 802491BC 0024611C 7F 03 C3 78 */ mr r3, r24
|
||||
/* 802491C0 00246120 4B FF FD 4D */ bl GetSaveWorldMemory__14CMemoryCardSysCFi
|
||||
/* 802491C0 00246120 4B FF FD 4D */ bl GetSaveWorldMemory__11CMemoryCardCFi
|
||||
/* 802491C4 00246124 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802491C8 00246128 80 63 00 04 */ lwz r3, 4(r3)
|
||||
/* 802491CC 0024612C 3C 03 00 01 */ addis r0, r3, 1
|
||||
|
@ -1184,8 +1184,8 @@ lbl_80249DDC:
|
|||
/* 80249DFC 00246D5C 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 80249E00 00246D60 4E 80 00 20 */ blr
|
||||
|
||||
.global __dt__14CMemoryCardSysFv
|
||||
__dt__14CMemoryCardSysFv:
|
||||
.global __dt__11CMemoryCardFv
|
||||
__dt__11CMemoryCardFv:
|
||||
/* 80249E04 00246D64 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80249E08 00246D68 7C 08 02 A6 */ mflr r0
|
||||
/* 80249E0C 00246D6C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
|
@ -1490,8 +1490,8 @@ lbl_8024A1F0:
|
|||
/* 8024A204 00247164 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8024A208 00247168 4E 80 00 20 */ blr
|
||||
|
||||
.global __ct__14CMemoryCardSysFv
|
||||
__ct__14CMemoryCardSysFv:
|
||||
.global __ct__11CMemoryCardFv
|
||||
__ct__11CMemoryCardFv:
|
||||
/* 8024A20C 0024716C 94 21 FE B0 */ stwu r1, -0x150(r1)
|
||||
/* 8024A210 00247170 7C 08 02 A6 */ mflr r0
|
||||
/* 8024A214 00247174 3C A0 80 3D */ lis r5, lbl_803D4780@ha
|
||||
|
|
|
@ -1395,8 +1395,8 @@ lbl_80036B94:
|
|||
/* 80036BA8 00033B08 38 21 01 50 */ addi r1, r1, 0x150
|
||||
/* 80036BAC 00033B0C 4E 80 00 20 */ blr
|
||||
|
||||
.global sub_80036bb0
|
||||
sub_80036bb0:
|
||||
.global __dt__7CTweaksFv
|
||||
__dt__7CTweaksFv:
|
||||
/* 80036BB0 00033B10 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80036BB4 00033B14 7C 08 02 A6 */ mflr r0
|
||||
/* 80036BB8 00033B18 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
|
|
|
@ -3506,7 +3506,7 @@ lbl_800058F8:
|
|||
/* 800058FC 0000285C 41 82 00 10 */ beq lbl_8000590C
|
||||
/* 80005900 00002860 80 7E 01 38 */ lwz r3, 0x138(r30)
|
||||
/* 80005904 00002864 38 80 00 01 */ li r4, 1
|
||||
/* 80005908 00002868 48 24 44 FD */ bl __dt__14CMemoryCardSysFv
|
||||
/* 80005908 00002868 48 24 44 FD */ bl __dt__11CMemoryCardFv
|
||||
lbl_8000590C:
|
||||
/* 8000590C 0000286C 38 7E 01 34 */ addi r3, r30, 0x134
|
||||
/* 80005910 00002870 38 80 FF FF */ li r4, -1
|
||||
|
@ -5063,19 +5063,19 @@ MemoryCardInitializePump__5CMainFv:
|
|||
/* 80006688 000035E8 48 30 F1 E5 */ bl __nw__FUlPCcPCc
|
||||
/* 8000668C 000035EC 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 80006690 000035F0 41 82 00 0C */ beq lbl_8000669C
|
||||
/* 80006694 000035F4 48 24 3B 79 */ bl __ct__14CMemoryCardSysFv
|
||||
/* 80006694 000035F4 48 24 3B 79 */ bl __ct__11CMemoryCardFv
|
||||
/* 80006698 000035F8 7C 7E 1B 78 */ mr r30, r3
|
||||
lbl_8000669C:
|
||||
/* 8000669C 000035FC 83 FD 01 28 */ lwz r31, 0x128(r29)
|
||||
/* 800066A0 00003600 38 80 00 01 */ li r4, 1
|
||||
/* 800066A4 00003604 80 7F 01 38 */ lwz r3, 0x138(r31)
|
||||
/* 800066A8 00003608 48 24 37 5D */ bl __dt__14CMemoryCardSysFv
|
||||
/* 800066A8 00003608 48 24 37 5D */ bl __dt__11CMemoryCardFv
|
||||
/* 800066AC 0000360C 93 DF 01 38 */ stw r30, 0x138(r31)
|
||||
lbl_800066B0:
|
||||
/* 800066B0 00003610 80 7D 01 28 */ lwz r3, 0x128(r29)
|
||||
/* 800066B4 00003614 83 C3 01 38 */ lwz r30, 0x138(r3)
|
||||
/* 800066B8 00003618 7F C3 F3 78 */ mr r3, r30
|
||||
/* 800066BC 0000361C 48 24 29 D1 */ bl InitializePump__14CMemoryCardSysFv
|
||||
/* 800066BC 0000361C 48 24 29 D1 */ bl InitializePump__11CMemoryCardFv
|
||||
/* 800066C0 00003620 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 800066C4 00003624 41 82 00 10 */ beq lbl_800066D4
|
||||
/* 800066C8 00003628 93 CD A0 84 */ stw r30, gpMemoryCard@sda21(r13)
|
||||
|
@ -6269,8 +6269,8 @@ lbl_8000775C:
|
|||
/* 80007784 000046E4 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80007788 000046E8 4E 80 00 20 */ blr
|
||||
|
||||
.global sub_8000778c
|
||||
sub_8000778c:
|
||||
.global LoadDefaultFont__18CGameGlobalObjectsFv
|
||||
LoadDefaultFont__18CGameGlobalObjectsFv:
|
||||
/* 8000778C 000046EC 94 21 FF 60 */ stwu r1, -0xa0(r1)
|
||||
/* 80007790 000046F0 7C 08 02 A6 */ mflr r0
|
||||
/* 80007794 000046F4 3C 80 80 3D */ lis r4, lbl_803CBE74@ha
|
||||
|
@ -6373,7 +6373,7 @@ lbl_800078D0:
|
|||
lbl_80007904:
|
||||
/* 80007904 00004864 3B C1 00 20 */ addi r30, r1, 0x20
|
||||
/* 80007908 00004868 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 8000790C 0000486C 48 00 01 21 */ bl "GetNewDerivedObject__35TObjOwnerDerivedFromIObj<8CTexture>FP8CTexture"
|
||||
/* 8000790C 0000486C 48 00 01 21 */ bl "GetIObjObjectFor__17TToken<8CTexture>FP8CTexture"
|
||||
/* 80007910 00004870 38 00 00 00 */ li r0, 0
|
||||
/* 80007914 00004874 80 81 00 0C */ lwz r4, 0xc(r1)
|
||||
/* 80007918 00004878 98 01 00 08 */ stb r0, 8(r1)
|
||||
|
@ -6453,8 +6453,8 @@ lbl_80007A10:
|
|||
/* 80007A24 00004984 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80007A28 00004988 4E 80 00 20 */ blr
|
||||
|
||||
.global "GetNewDerivedObject__35TObjOwnerDerivedFromIObj<8CTexture>FP8CTexture"
|
||||
"GetNewDerivedObject__35TObjOwnerDerivedFromIObj<8CTexture>FP8CTexture":
|
||||
.global "GetIObjObjectFor__17TToken<8CTexture>FP8CTexture"
|
||||
"GetIObjObjectFor__17TToken<8CTexture>FP8CTexture":
|
||||
/* 80007A2C 0000498C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80007A30 00004990 7C 08 02 A6 */ mflr r0
|
||||
/* 80007A34 00004994 3C A0 80 3D */ lis r5, lbl_803CBE74@ha
|
||||
|
@ -6504,7 +6504,7 @@ __ct__18CGameGlobalObjectsFR10COsContextR10CMemorySys:
|
|||
/* 80007AD4 00004A34 7C BE 2B 78 */ mr r30, r5
|
||||
/* 80007AD8 00004A38 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 80007ADC 00004A3C 7C 9D 23 78 */ mr r29, r4
|
||||
/* 80007AE0 00004A40 48 34 69 E1 */ bl Initialize__14CMemoryCardSysFv
|
||||
/* 80007AE0 00004A40 48 34 69 E1 */ bl __ct__14CMemoryCardSysFv
|
||||
/* 80007AE4 00004A44 38 7F 00 04 */ addi r3, r31, 4
|
||||
/* 80007AE8 00004A48 48 33 2C 09 */ bl __ct__11CResFactoryFv
|
||||
/* 80007AEC 00004A4C 38 7F 00 CC */ addi r3, r31, 0xcc
|
||||
|
@ -6549,11 +6549,11 @@ lbl_80007B4C:
|
|||
/* 80007B84 00004AE4 7C 60 1B 78 */ mr r0, r3
|
||||
lbl_80007B88:
|
||||
/* 80007B88 00004AE8 90 1F 01 50 */ stw r0, 0x150(r31)
|
||||
/* 80007B8C 00004AEC 4B FF FC 01 */ bl sub_8000778c
|
||||
/* 80007B8C 00004AEC 4B FF FC 01 */ bl LoadDefaultFont__18CGameGlobalObjectsFv
|
||||
/* 80007B90 00004AF0 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80007B94 00004AF4 3B BF 01 54 */ addi r29, r31, 0x154
|
||||
/* 80007B98 00004AF8 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80007B9C 00004AFC 48 00 02 3D */ bl sub_80007dd8
|
||||
/* 80007B9C 00004AFC 48 00 02 3D */ bl "GetIObjObjectFor__21TToken<11CRasterFont>FP11CRasterFont"
|
||||
/* 80007BA0 00004B00 38 00 00 00 */ li r0, 0
|
||||
/* 80007BA4 00004B04 80 81 00 0C */ lwz r4, 0xc(r1)
|
||||
/* 80007BA8 00004B08 98 01 00 08 */ stb r0, 8(r1)
|
||||
|
@ -6717,8 +6717,8 @@ lbl_80007DBC:
|
|||
/* 80007DD0 00004D30 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80007DD4 00004D34 4E 80 00 20 */ blr
|
||||
|
||||
.global sub_80007dd8
|
||||
sub_80007dd8:
|
||||
.global "GetIObjObjectFor__21TToken<11CRasterFont>FP11CRasterFont"
|
||||
"GetIObjObjectFor__21TToken<11CRasterFont>FP11CRasterFont":
|
||||
/* 80007DD8 00004D38 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80007DDC 00004D3C 7C 08 02 A6 */ mflr r0
|
||||
/* 80007DE0 00004D40 3C A0 80 3D */ lis r5, lbl_803CBE74@ha
|
||||
|
@ -6762,7 +6762,7 @@ ShutdownSubsystems__5CMainFv:
|
|||
/* 80007E68 00004DC8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80007E6C 00004DCC 7C 08 02 A6 */ mflr r0
|
||||
/* 80007E70 00004DD0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80007E74 00004DD4 48 36 4E E5 */ bl sub_8036cd58
|
||||
/* 80007E74 00004DD4 48 36 4E E5 */ bl ShutDown__19CFrameDelayedKillerFv
|
||||
/* 80007E78 00004DD8 48 10 F9 8D */ bl ShutDown__13CDecalManagerFv
|
||||
/* 80007E7C 00004DDC 48 31 72 E1 */ bl ShutDown__11CElementGenFv
|
||||
/* 80007E80 00004DE0 48 02 62 E9 */ bl FreeCache__9CAnimDataFv
|
||||
|
@ -6815,10 +6815,10 @@ InitializeSubsystems__5CMainFv:
|
|||
/* 80007F28 00004E88 3C 60 00 60 */ lis r3, 0x005FC000@ha
|
||||
/* 80007F2C 00004E8C 38 63 C0 00 */ addi r3, r3, 0x005FC000@l
|
||||
/* 80007F30 00004E90 48 36 5A E5 */ bl ARAlloc
|
||||
/* 80007F34 00004E94 80 6D 9D 60 */ lwz r3, lbl_805A8920@sda21(r13)
|
||||
/* 80007F34 00004E94 80 6D 9D 60 */ lwz r3, mPreInitializeAlloc__12CARAMManager@sda21(r13)
|
||||
/* 80007F38 00004E98 3C 63 00 60 */ addis r3, r3, 0x60
|
||||
/* 80007F3C 00004E9C 38 03 C0 00 */ addi r0, r3, -16384
|
||||
/* 80007F40 00004EA0 90 0D 9D 60 */ stw r0, lbl_805A8920@sda21(r13)
|
||||
/* 80007F40 00004EA0 90 0D 9D 60 */ stw r0, mPreInitializeAlloc__12CARAMManager@sda21(r13)
|
||||
/* 80007F44 00004EA4 48 36 76 BD */ bl ARQInit
|
||||
/* 80007F48 00004EA8 48 37 C6 8D */ bl OSGetCurrentThread
|
||||
/* 80007F4C 00004EAC 3C 80 80 3D */ lis r4, lbl_803CBE74@ha
|
||||
|
@ -6884,7 +6884,7 @@ lbl_80008000:
|
|||
/* 80008028 00004F88 38 60 08 00 */ li r3, 0x800
|
||||
/* 8000802C 00004F8C 48 33 CC E9 */ bl Initialize__12CARAMManagerFUi
|
||||
/* 80008030 00004F90 48 10 F9 25 */ bl Initialize__13CDecalManagerFv
|
||||
/* 80008034 00004F94 48 36 4D 45 */ bl sub_8036cd78
|
||||
/* 80008034 00004F94 48 36 4D 45 */ bl Initialize__19CFrameDelayedKillerFv
|
||||
/* 80008038 00004F98 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8000803C 00004F9C 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80008040 00004FA0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
|
@ -6993,14 +6993,14 @@ lbl_80008190:
|
|||
lbl_80008198:
|
||||
/* 80008198 000050F8 38 7E 00 70 */ addi r3, r30, 0x70
|
||||
/* 8000819C 000050FC 38 80 FF FF */ li r4, -1
|
||||
/* 800081A0 00005100 48 02 EA 11 */ bl sub_80036bb0
|
||||
/* 800081A0 00005100 48 02 EA 11 */ bl __dt__7CTweaksFv
|
||||
/* 800081A4 00005104 34 1E 00 6E */ addic. r0, r30, 0x6e
|
||||
/* 800081A8 00005108 41 82 00 18 */ beq lbl_800081C0
|
||||
/* 800081AC 0000510C 88 0D A7 70 */ lbz r0, lbl_805A9330@sda21(r13)
|
||||
/* 800081AC 0000510C 88 0D A7 70 */ lbz r0, mManagerInstalled__14CDvdRequestSys@sda21(r13)
|
||||
/* 800081B0 00005110 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 800081B4 00005114 40 82 00 0C */ bne lbl_800081C0
|
||||
/* 800081B8 00005118 38 00 00 00 */ li r0, 0
|
||||
/* 800081BC 0000511C 98 0D A7 70 */ stb r0, lbl_805A9330@sda21(r13)
|
||||
/* 800081BC 0000511C 98 0D A7 70 */ stb r0, mManagerInstalled__14CDvdRequestSys@sda21(r13)
|
||||
lbl_800081C0:
|
||||
/* 800081C0 00005120 38 7E 00 6D */ addi r3, r30, 0x6d
|
||||
/* 800081C4 00005124 38 80 FF FF */ li r4, -1
|
||||
|
@ -7043,11 +7043,11 @@ __ct__5CMainFv:
|
|||
/* 80008248 000051A8 7F C5 F3 78 */ mr r5, r30
|
||||
/* 8000824C 000051AC 38 7F 00 6D */ addi r3, r31, 0x6d
|
||||
/* 80008250 000051B0 48 30 D9 B5 */ bl __ct__10CMemorySysFR10COsContextR10IAllocator
|
||||
/* 80008254 000051B4 88 0D A7 70 */ lbz r0, lbl_805A9330@sda21(r13)
|
||||
/* 80008254 000051B4 88 0D A7 70 */ lbz r0, mManagerInstalled__14CDvdRequestSys@sda21(r13)
|
||||
/* 80008258 000051B8 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8000825C 000051BC 41 82 00 0C */ beq lbl_80008268
|
||||
/* 80008260 000051C0 38 00 00 01 */ li r0, 1
|
||||
/* 80008264 000051C4 98 0D A7 70 */ stb r0, lbl_805A9330@sda21(r13)
|
||||
/* 80008264 000051C4 98 0D A7 70 */ stb r0, mManagerInstalled__14CDvdRequestSys@sda21(r13)
|
||||
lbl_80008268:
|
||||
/* 80008268 000051C8 38 7F 00 70 */ addi r3, r31, 0x70
|
||||
/* 8000826C 000051CC 48 02 EA 35 */ bl __ct__7CTweaksFv
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
#ifndef _CGUISYS_HPP
|
||||
#define _CGUISYS_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class IFactory;
|
||||
class CSimplePool;
|
||||
|
||||
class CGuiSys {
|
||||
public:
|
||||
enum EUsageMode {
|
||||
kUM_Zero,
|
||||
kUM_One,
|
||||
kUM_Two,
|
||||
};
|
||||
|
||||
CGuiSys(IFactory*, CSimplePool*, EUsageMode);
|
||||
|
||||
private:
|
||||
u8 pad[0x14];
|
||||
};
|
||||
|
||||
#endif
|
|
@ -11,14 +11,10 @@ void Free(const void* ptr);
|
|||
void* operator new(unsigned long sz, const char*, const char*);
|
||||
void* operator new[](unsigned long sz, const char*, const char*);
|
||||
inline void* operator new(unsigned long sz) {
|
||||
const char* fileAndLineNo = "??(??)";
|
||||
const char* type = nullptr;
|
||||
return operator new(sz, fileAndLineNo, type);
|
||||
return operator new(sz, "??(??)", nullptr);
|
||||
}
|
||||
inline void* operator new[](unsigned long sz) {
|
||||
const char* fileAndLineNo = "??(??)";
|
||||
const char* type = nullptr;
|
||||
return operator new[](sz, fileAndLineNo, type);
|
||||
return operator new[](sz, "??(??)", nullptr);
|
||||
}
|
||||
// placement new
|
||||
inline void* operator new(unsigned long n, void* ptr) { return ptr; };
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
#ifndef _CSKINNEDMODEL_HPP
|
||||
#define _CSKINNEDMODEL_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class CSkinnedModel {
|
||||
public:
|
||||
static void ClearPointGeneratorFunc();
|
||||
|
||||
private:
|
||||
// TODO
|
||||
};
|
||||
|
||||
#endif
|
|
@ -3,8 +3,27 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
enum ETRKSampleRate {
|
||||
kTSR_Zero,
|
||||
kTSR_One,
|
||||
// TODO
|
||||
};
|
||||
|
||||
enum ETRKRepeatMode {
|
||||
// TODO
|
||||
};
|
||||
|
||||
class CAudioSys {
|
||||
public:
|
||||
CAudioSys(u8, u8, u8, u8, uint);
|
||||
|
||||
static void SysSetVolume(u8, uint, u8);
|
||||
static void SetDefaultVolumeScale(s16);
|
||||
static void SetVolumeScale(s16);
|
||||
static void TrkSetSampleRate(ETRKSampleRate);
|
||||
|
||||
static s16 GetDefaultVolumeScale();
|
||||
|
||||
static const u8 kMaxVolume;
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef _CDSPSTREAMMANAGER_HPP
|
||||
#define _CDSPSTREAMMANAGER_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class CDSPStreamManager {
|
||||
public:
|
||||
static void Initialize();
|
||||
};
|
||||
|
||||
#endif
|
|
@ -7,6 +7,7 @@ class CStreamAudioManager {
|
|||
public:
|
||||
static void Update(f32 dt);
|
||||
static void StopAll();
|
||||
static void SetMusicVolume(u8);
|
||||
|
||||
private:
|
||||
};
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
#define __CCAST_HPP__
|
||||
|
||||
#include "types.h"
|
||||
#include "Dolphin/os/OSFastCast.h"
|
||||
|
||||
#include "dolphin/os/OSFastCast.h"
|
||||
|
||||
namespace CCast {
|
||||
#ifdef __MWERKS__
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
|
||||
class COsContext {
|
||||
public:
|
||||
COsContext(bool, bool);
|
||||
~COsContext();
|
||||
|
||||
private:
|
||||
int x0_right;
|
||||
int x4_bottom;
|
||||
|
@ -22,5 +25,6 @@ private:
|
|||
int x2c_frameBufferSize;
|
||||
GXRenderModeObj x30_renderMode;
|
||||
};
|
||||
CHECK_SIZEOF(COsContext, 0x6c)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#include "Dolphin/os.h"
|
||||
#include "dolphin/os.h"
|
||||
|
||||
class CStopwatch {
|
||||
public:
|
||||
|
|
|
@ -7,6 +7,13 @@ class CARAMManager {
|
|||
public:
|
||||
static void Shutdown();
|
||||
static void CollectGarbage();
|
||||
static void PreInitializeAlloc(uint size) {
|
||||
mPreInitializeAlloc += size;
|
||||
}
|
||||
static void Initialize(uint);
|
||||
|
||||
private:
|
||||
static u32 mPreInitializeAlloc;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef _CFRAMEDELAYEDKILLER_HPP
|
||||
#define _CFRAMEDELAYEDKILLER_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class CFrameDelayedKiller {
|
||||
public:
|
||||
static void Initialize();
|
||||
static void ShutDown();
|
||||
};
|
||||
|
||||
#endif
|
|
@ -5,12 +5,13 @@
|
|||
|
||||
class CMemoryCardSys {
|
||||
public:
|
||||
CMemoryCardSys();
|
||||
~CMemoryCardSys();
|
||||
|
||||
void Initialize();
|
||||
|
||||
private:
|
||||
// TODO
|
||||
};
|
||||
|
||||
extern CMemoryCardSys* gpMemoryCard;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -3,8 +3,16 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#include "Kyoto/Alloc/CMemory.hpp"
|
||||
#include "Kyoto/Alloc/IAllocator.hpp"
|
||||
|
||||
class CMemorySys {
|
||||
public:
|
||||
CMemorySys(COsContext&, IAllocator&);
|
||||
~CMemorySys();
|
||||
|
||||
static IAllocator& GetGameAllocator();
|
||||
|
||||
private:
|
||||
u8 x0_unk;
|
||||
};
|
||||
|
|
|
@ -8,8 +8,13 @@
|
|||
#include "Kyoto/CFactoryMgr.hpp"
|
||||
#include "Kyoto/CResLoader.hpp"
|
||||
|
||||
class CResFactory {
|
||||
class IFactory {
|
||||
// TODO
|
||||
};
|
||||
|
||||
class CResFactory : public IFactory {
|
||||
public:
|
||||
CResFactory();
|
||||
virtual ~CResFactory() {}
|
||||
|
||||
void AsyncIdle(uint time);
|
||||
|
@ -28,6 +33,7 @@ private:
|
|||
uint xac_;
|
||||
rstl::list< void > xb0_;
|
||||
};
|
||||
CHECK_SIZEOF(CResFactory, 0xc8);
|
||||
|
||||
extern CResFactory* gpResourceFactory;
|
||||
|
||||
|
|
|
@ -3,13 +3,18 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#include "rstl/map.hpp"
|
||||
#include "rstl/hash_map.hpp"
|
||||
#include "rstl/rc_ptr.hpp"
|
||||
|
||||
#include "Kyoto/CToken.hpp"
|
||||
#include "Kyoto/IObjectStore.hpp"
|
||||
|
||||
class CSimplePool {
|
||||
class IFactory;
|
||||
|
||||
class CSimplePool : public IObjectStore {
|
||||
public:
|
||||
CSimplePool(IFactory& factory);
|
||||
|
||||
virtual CToken GetObj(const SObjectTag& tag, CVParamTransfer xfer);
|
||||
virtual CToken GetObj(const SObjectTag& tag);
|
||||
virtual CToken GetObj(const char* name);
|
||||
|
@ -23,10 +28,11 @@ public:
|
|||
private:
|
||||
u8 x4_;
|
||||
u8 x5_;
|
||||
rstl::map< unkptr, unkptr > x8_resources;
|
||||
rstl::hash_map< unkptr, unkptr, void, void > x8_resources;
|
||||
unkptr x18_factory;
|
||||
CVParamTransfer x1c_paramXfr;
|
||||
rstl::rc_ptr< CVParamTransfer > x1c_paramXfr;
|
||||
};
|
||||
CHECK_SIZEOF(CSimplePool, 0x20)
|
||||
|
||||
extern CSimplePool* gpSimplePool;
|
||||
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef _CTIMEPROVIDER_HPP
|
||||
#define _CTIMEPROVIDER_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class CTimeProvider {
|
||||
public:
|
||||
CTimeProvider(const float& time);
|
||||
~CTimeProvider();
|
||||
|
||||
private:
|
||||
u8 pad[0xc];
|
||||
};
|
||||
|
||||
#endif
|
|
@ -3,15 +3,20 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#include "Kyoto/IObjectStore.hpp"
|
||||
#include "Kyoto/IObj.hpp"
|
||||
|
||||
class CObjectReference;
|
||||
|
||||
class CToken {
|
||||
public:
|
||||
CToken() {}
|
||||
CToken(IObj* obj) : x0_objRef(new CObjectReference(obj)), x4_lockHeld(false) {}
|
||||
CToken(IObj* obj); // : x0_objRef(new CObjectReference(obj)), x4_lockHeld(false) {}
|
||||
CToken(const CToken& other);
|
||||
~CToken();
|
||||
|
||||
CToken& operator=(const CToken&);
|
||||
|
||||
CObjOwnerDerivedFromIObjUntyped* GetObj();
|
||||
void Lock();
|
||||
|
||||
private:
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
class CGraphicsSys {
|
||||
public:
|
||||
CGraphicsSys(const COsContext& osContext, const CMemorySys& memorySys, uint, void*);
|
||||
~CGraphicsSys();
|
||||
|
||||
private:
|
||||
|
|
|
@ -9,6 +9,7 @@ class CModelFlags {
|
|||
public:
|
||||
enum ETrans {
|
||||
kT_Opaque = 0,
|
||||
kT_Two = 2, // ?
|
||||
kT_Blend = 5,
|
||||
kT_Additive = 7,
|
||||
};
|
||||
|
@ -31,6 +32,10 @@ public:
|
|||
CModelFlags(const CModelFlags& flags, bool b /* TODO what's this? */, int shaderSet)
|
||||
: x0_blendMode(flags.x0_blendMode), x1_matSetIdx(shaderSet), x2_flags(flags.x2_flags), x4_color(flags.x4_color) {}
|
||||
|
||||
// ?
|
||||
CModelFlags(const CModelFlags& flags, ETrans trans, CColor color)
|
||||
: x0_blendMode(trans), x1_matSetIdx(flags.x1_matSetIdx), x2_flags(flags.x2_flags), x4_color(color) {}
|
||||
|
||||
CModelFlags UseShaderSet(int matSet) { return CModelFlags(*this, false, matSet); }
|
||||
CModelFlags DontLoadTextures() { return CModelFlags(*this, GetOtherFlags() | kF_NoTextureLock); }
|
||||
CModelFlags DepthCompareUpdate(bool compare, bool update) {
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
#include <dolphin/gx/GXEnum.h>
|
||||
|
||||
class CInputStream;
|
||||
|
||||
class CTexture {
|
||||
public:
|
||||
enum EClampMode {
|
||||
|
@ -12,10 +14,21 @@ public:
|
|||
Repeat,
|
||||
Mirror,
|
||||
};
|
||||
enum EAutoMipmap {
|
||||
kAM_Zero,
|
||||
};
|
||||
enum EBlackKey {
|
||||
kBK_Zero,
|
||||
};
|
||||
|
||||
CTexture(CInputStream& stream, EAutoMipmap mip, EBlackKey bk);
|
||||
|
||||
void Load(GXTexMapID texMapId, EClampMode clampMode) const;
|
||||
|
||||
static void InvalidateTexmap(GXTexMapID id);
|
||||
|
||||
private:
|
||||
u8 pad[0x68];
|
||||
};
|
||||
|
||||
#endif
|
|
@ -17,22 +17,28 @@ public:
|
|||
template < typename T >
|
||||
CObjOwnerDerivedFromIObjUntyped(const rstl::auto_ptr< T >& obj) : m_objPtr(obj.release()) {}
|
||||
|
||||
void* GetContents() { return m_objPtr; }
|
||||
|
||||
protected:
|
||||
void* m_objPtr;
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
class TObjOwnerDerivedFromIObj : public CObjOwnerDerivedFromIObjUntyped {
|
||||
TObjOwnerDerivedFromIObj(T* obj) : CObjOwnerDerivedFromIObjUntyped(obj) {}
|
||||
TObjOwnerDerivedFromIObj(const rstl::auto_ptr< T >& obj) : CObjOwnerDerivedFromIObjUntyped(obj) {}
|
||||
|
||||
public:
|
||||
static rstl::auto_ptr< TObjOwnerDerivedFromIObj< T > > GetNewDerivedObject(T* obj) { return new TObjOwnerDerivedFromIObj< T >(obj); }
|
||||
static rstl::auto_ptr< TObjOwnerDerivedFromIObj< T > > GetNewDerivedObject(const rstl::auto_ptr< T >& obj) {
|
||||
return new TObjOwnerDerivedFromIObj< T >(obj);
|
||||
}
|
||||
~TObjOwnerDerivedFromIObj() override { delete Owned(); }
|
||||
T* Owned() { return static_cast< T* >(m_objPtr); }
|
||||
|
||||
static inline rstl::auto_ptr< TObjOwnerDerivedFromIObj< T > > GetNewDerivedObject(T* obj) {
|
||||
return new TObjOwnerDerivedFromIObj< T >(obj);
|
||||
}
|
||||
static inline rstl::auto_ptr< TObjOwnerDerivedFromIObj< T > > GetNewDerivedObject(const rstl::auto_ptr< T >& obj) {
|
||||
return new TObjOwnerDerivedFromIObj< T >(obj);
|
||||
}
|
||||
|
||||
private:
|
||||
TObjOwnerDerivedFromIObj(T* obj) : CObjOwnerDerivedFromIObjUntyped(obj) {}
|
||||
TObjOwnerDerivedFromIObj(const rstl::auto_ptr< T >& obj) : CObjOwnerDerivedFromIObjUntyped(obj) {}
|
||||
};
|
||||
|
||||
#endif
|
|
@ -51,4 +51,17 @@ private:
|
|||
CVParamTransfer x14_params;
|
||||
};
|
||||
|
||||
class IObjectStore {
|
||||
public:
|
||||
virtual CToken GetObj(const SObjectTag& tag, CVParamTransfer xfer) = 0;
|
||||
virtual CToken GetObj(const SObjectTag& tag) = 0;
|
||||
virtual CToken GetObj(const char* name) = 0;
|
||||
virtual CToken GetObj(const char* name, CVParamTransfer xfer) = 0;
|
||||
virtual bool HasObject(const SObjectTag& tag) = 0;
|
||||
virtual bool ObjectIsLive(const SObjectTag& tag) = 0;
|
||||
virtual unkptr GetFactory() = 0;
|
||||
virtual void Flush() = 0;
|
||||
virtual void ObjectUnreferenced(const SObjectTag& tag) = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -11,6 +11,9 @@ public:
|
|||
int v = static_cast< int >(x * (1.f / y));
|
||||
return x - v * y;
|
||||
}
|
||||
template < typename T >
|
||||
static const T& Clamp(const T& min, const T& val, const T& max);
|
||||
// ClampRadians__5CMathFf
|
||||
};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef _CELEMENTGEN_HPP
|
||||
#define _CELEMENTGEN_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class CElementGen {
|
||||
public:
|
||||
static void Initialize();
|
||||
static void ShutDown();
|
||||
};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,22 @@
|
|||
#ifndef _CZIPINPUTSTREAM_HPP
|
||||
#define _CZIPINPUTSTREAM_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "Kyoto/Streams/CInputStream.hpp"
|
||||
|
||||
#include "rstl/auto_ptr.hpp"
|
||||
|
||||
class CZipInputStream : public CInputStream {
|
||||
public:
|
||||
CZipInputStream(rstl::auto_ptr< CInputStream > in);
|
||||
~CZipInputStream() override;
|
||||
uint Read(void* dest, uint len) override;
|
||||
|
||||
private:
|
||||
u8* x24_compBuf;
|
||||
rstl::auto_ptr< CInputStream > x28_stream;
|
||||
unkptr x30_zstream;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -9,6 +9,7 @@
|
|||
template < typename T, int N >
|
||||
class TReservedAverage : rstl::reserved_vector< T, N > {
|
||||
public:
|
||||
TReservedAverage() {}
|
||||
TReservedAverage(const T& value) {
|
||||
// resize(value, N); TODO
|
||||
}
|
||||
|
|
|
@ -17,10 +17,13 @@ public:
|
|||
TToken(T* obj) : CToken(GetIObjObjectFor(obj).release()) {}
|
||||
TToken(const rstl::auto_ptr< T >& obj) : CToken(GetIObjObjectFor(obj).release()) {}
|
||||
|
||||
static rstl::auto_ptr< TObjOwnerDerivedFromIObj< T > > GetIObjObjectFor(T* obj) {
|
||||
T* GetT() { return reinterpret_cast< T* >(CToken::GetObj()->GetContents()); }
|
||||
T* operator*() { return GetT(); }
|
||||
|
||||
static inline rstl::auto_ptr< TObjOwnerDerivedFromIObj< T > > GetIObjObjectFor(T* obj) {
|
||||
return TObjOwnerDerivedFromIObj< T >::GetNewDerivedObject(obj);
|
||||
}
|
||||
static rstl::auto_ptr< TObjOwnerDerivedFromIObj< T > > GetIObjObjectFor(const rstl::auto_ptr< T >& obj) {
|
||||
static inline rstl::auto_ptr< TObjOwnerDerivedFromIObj< T > > GetIObjObjectFor(const rstl::auto_ptr< T >& obj) {
|
||||
return TObjOwnerDerivedFromIObj< T >::GetNewDerivedObject(obj);
|
||||
}
|
||||
};
|
||||
|
@ -29,23 +32,33 @@ template < typename T >
|
|||
class TCachedToken : public TToken< T > {
|
||||
public:
|
||||
TCachedToken() {}
|
||||
TCachedToken(const CToken& token) : TToken< T >(token), x8_item(nullptr) {}
|
||||
TCachedToken(const CToken& token) : TToken< T >(token), x8_item(GetT()) {}
|
||||
|
||||
// TODO
|
||||
operator const TToken< T >&() const;
|
||||
T* operator*() { return x8_item; }
|
||||
|
||||
private:
|
||||
T* x8_item;
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
class TLockedToken : public TCachedToken< T > {
|
||||
class TLockedToken {
|
||||
public:
|
||||
TLockedToken() {}
|
||||
TLockedToken(const CToken& token) : TCachedToken< T >(token) { this->Lock(); }
|
||||
TLockedToken(const CToken& token) : x0_token(token), x8_item(*x0_token) {}
|
||||
TLockedToken(const TLockedToken< T >& token) : x0_token(token), x8_item(*token) { x0_token.Lock(); }
|
||||
|
||||
// TODO
|
||||
operator const TToken< T >&() const;
|
||||
TLockedToken& operator=(const TLockedToken< T >& token) {
|
||||
x0_token = token;
|
||||
x8_item = *token;
|
||||
return *this;
|
||||
}
|
||||
|
||||
operator const TToken< T >&() const { return x0_token; }
|
||||
T* operator*() const { return x8_item; }
|
||||
|
||||
private:
|
||||
TToken< T > x0_token;
|
||||
T* x8_item;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -3,6 +3,44 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
class CRasterFont;
|
||||
#include "rstl/pair.hpp"
|
||||
#include "rstl/vector.hpp"
|
||||
|
||||
class CGlyph;
|
||||
class CKernPair;
|
||||
class CTexture;
|
||||
|
||||
class CFontInfo {
|
||||
private:
|
||||
bool x0_;
|
||||
bool x1_;
|
||||
int x4_;
|
||||
int x8_fontSize;
|
||||
char xc_name[64];
|
||||
};
|
||||
|
||||
class CRasterFont {
|
||||
public:
|
||||
CRasterFont(CInputStream&, IObjectStore*);
|
||||
~CRasterFont();
|
||||
|
||||
void SetTexture(TToken<CTexture> token) {
|
||||
x7c_texture = token;
|
||||
}
|
||||
|
||||
private:
|
||||
bool x0_initialized;
|
||||
int x4_monoWidth;
|
||||
int x8_monoHeight;
|
||||
rstl::vector< rstl::pair< wchar_t, CGlyph > > xc_glyphs;
|
||||
rstl::vector< CKernPair > x1c_kerning;
|
||||
int mode;
|
||||
CFontInfo x30_fontInfo;
|
||||
TLockedToken< CTexture > x7c_texture;
|
||||
int x88_;
|
||||
int x8c_baseline;
|
||||
int x90_lineMargin;
|
||||
};
|
||||
CHECK_SIZEOF(CRasterFont, 0x94)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -5,21 +5,14 @@
|
|||
|
||||
#include <dolphin/gx/GXEnum.h>
|
||||
|
||||
#include "MetaRender/Renderer.hpp"
|
||||
|
||||
#include "Kyoto/Graphics/CColor.hpp"
|
||||
#include "Kyoto/Math/CAABox.hpp"
|
||||
#include "Kyoto/Math/CTransform4f.hpp"
|
||||
#include "Kyoto/Math/CVector2f.hpp"
|
||||
#include "rstl/pair.hpp"
|
||||
|
||||
class IRenderer {
|
||||
public:
|
||||
enum EDrawableSorting {
|
||||
kDS_SortedCallback,
|
||||
kDS_UnsortedCallback,
|
||||
};
|
||||
|
||||
// TODO vtable
|
||||
};
|
||||
|
||||
class CCubeRenderer {
|
||||
public:
|
||||
virtual ~CCubeRenderer();
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef _RENDERER_HPP
|
||||
#define _RENDERER_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class IRenderer {
|
||||
public:
|
||||
enum EDrawableSorting {
|
||||
kDS_SortedCallback,
|
||||
kDS_UnsortedCallback,
|
||||
};
|
||||
|
||||
virtual ~IRenderer();
|
||||
// TODO vtable
|
||||
};
|
||||
|
||||
class COsContext;
|
||||
class CMemorySys;
|
||||
class CResFactory;
|
||||
|
||||
namespace Renderer {
|
||||
IRenderer* AllocateRenderer(IObjectStore&, COsContext&, CMemorySys&, CResFactory&);
|
||||
};
|
||||
|
||||
#endif
|
|
@ -244,10 +244,15 @@ public:
|
|||
void EnsureRendered(const CStateManager& mgr) const;
|
||||
void EnsureRendered(const CStateManager& mgr, const CVector3f& pos, const CAABox& bounds) const;
|
||||
void DrawTouchBounds() const;
|
||||
bool IsModelOpaque(const CStateManager& mgr) const;
|
||||
void RenderInternal(const CStateManager& mgr) const;
|
||||
|
||||
const CTransform4f& GetTransform() const { return x34_transform; }
|
||||
CVector3f GetTranslation() const { return x34_transform.GetTranslation(); }
|
||||
|
||||
/// ????
|
||||
bool NullModel() const { return !GetAnimationData() && !GetModelData()->HasNormalModel(); }
|
||||
|
||||
bool HasModelData() const { return GetModelData() && (GetModelData()->HasAnimation() || GetModelData()->HasNormalModel()); }
|
||||
CModelData* ModelData() { return x64_modelData.get(); }
|
||||
const CModelData* GetModelData() const { return x64_modelData.get(); }
|
||||
|
@ -256,7 +261,7 @@ public:
|
|||
CAnimData* AnimationData() { return ModelData()->AnimationData(); }
|
||||
const CAnimData* GetAnimationData() const { return GetModelData()->GetAnimationData(); }
|
||||
|
||||
bool HasShadow() const { return !x94_simpleShadow.null(); }
|
||||
bool HasShadow() const { return GetShadow() != nullptr; }
|
||||
CSimpleShadow* Shadow() { return x94_simpleShadow.get(); }
|
||||
const CSimpleShadow* GetShadow() const { return x94_simpleShadow.get(); }
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ public:
|
|||
bool BuildAreaLightList(const CStateManager& mgr, const CGameArea& area, const CAABox& bounds);
|
||||
void BuildDynamicLightList(const CStateManager& mgr, const CAABox& bounds);
|
||||
|
||||
bool GetNeedsRelight() const { return x298_24_dirty; }
|
||||
bool GetNeedsRelight() const { return x298_24_dirty == TRUE; }
|
||||
|
||||
private:
|
||||
rstl::reserved_vector< CLight, 4 > x0_areaLights;
|
||||
|
|
|
@ -3,7 +3,13 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
class CActor;
|
||||
class CStateManager;
|
||||
|
||||
class CActorModelParticles {
|
||||
public:
|
||||
void Render(const CStateManager& mgr, const CActor& actor) const;
|
||||
|
||||
private:
|
||||
// TODO
|
||||
};
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "MetroidPrime/CPoseAsTransforms.hpp"
|
||||
|
||||
#include "Kyoto/TToken.hpp"
|
||||
#include "Kyoto/Animation/CSkinnedModel.hpp"
|
||||
|
||||
#include "rstl/reserved_vector.hpp"
|
||||
|
||||
|
@ -56,6 +57,8 @@ public:
|
|||
return mSoundPOINodes.data();
|
||||
}
|
||||
|
||||
CParticleDatabase& GetParticleDB() { return x120_particleDB; }
|
||||
const CParticleDatabase& GetParticleDB() const { return x120_particleDB; }
|
||||
// SetIsAnimating__9CAnimDataFb
|
||||
// SetAnimDir__9CAnimDataFQ29CAnimData8EAnimDir
|
||||
// GetBoundingBox__9CAnimDataCFv
|
||||
|
@ -113,7 +116,6 @@ public:
|
|||
|
||||
// GetCharacterInfo__9CAnimDataCFv
|
||||
// GetCharLayoutInfo__9CAnimDataCFv
|
||||
// GetParticleDB__9CAnimDataFv
|
||||
// GetDeltaRotation__9CAnimDataCFv
|
||||
// GetDeltaOffset__9CAnimDataCFv
|
||||
// IsDeltaOffsetInUse__9CAnimDataCFv
|
||||
|
@ -130,7 +132,6 @@ public:
|
|||
// GetAnimationManager__9CAnimDataCFv
|
||||
// GetPoseValid__9CAnimDataCFv
|
||||
// GetPoseBuilderValid__9CAnimDataCFv
|
||||
// GetParticleDB__9CAnimDataCFv
|
||||
// GetAnimSysContext__9CAnimDataCFv
|
||||
// CacheInt32PoiList__9CAnimDataFRC13CCharAnimTimeiRCQ24rstl25ncrc_ptr<13CAnimTreeNode>
|
||||
|
||||
|
@ -152,6 +153,9 @@ public:
|
|||
// CacheBoolPoiList__9CAnimDataFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC13CCharAnimTimei
|
||||
// CacheInt32PoiList__9CAnimDataFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC13CCharAnimTimei
|
||||
|
||||
static void InitializeCache();
|
||||
static void FreeCache();
|
||||
|
||||
private:
|
||||
TLockedToken< CCharacterFactory > x0_charFactory;
|
||||
CCharacterInfo xc_charInfo;
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef _CDECALMANAGER_HPP
|
||||
#define _CDECALMANAGER_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class CDecalManager {
|
||||
public:
|
||||
static void Initialize();
|
||||
static void ShutDown();
|
||||
};
|
||||
|
||||
#endif
|
|
@ -35,6 +35,9 @@ private:
|
|||
};
|
||||
|
||||
class CEnvFxManager {
|
||||
public:
|
||||
static void Initialize();
|
||||
|
||||
private:
|
||||
CAABox x0_particleBounds;
|
||||
CVector3f x18_focusCellPosition;
|
||||
|
@ -49,8 +52,8 @@ private:
|
|||
rstl::reserved_vector< CEnvFxManagerGrid, 64 > x50_grids;
|
||||
f32 xb54_baseSplashRate;
|
||||
TLockedToken< CGenDescription > xb58_envRainSplash;
|
||||
bool xb64_ = true;
|
||||
TUniqueId xb68_envRainSplashId = kInvalidUniqueId;
|
||||
bool xb64_;
|
||||
TUniqueId xb68_envRainSplashId;
|
||||
bool xb6a_rainSoundActive;
|
||||
CSfxHandle xb6c_leftRainSound;
|
||||
CSfxHandle xb70_rightRainSound;
|
||||
|
|
|
@ -3,10 +3,20 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#include "GuiSys/CGuiSys.hpp"
|
||||
#include "Kyoto/Audio/CAudioSys.hpp"
|
||||
#include "Kyoto/Basics/COsContext.hpp"
|
||||
#include "Kyoto/Basics/CStopwatch.hpp"
|
||||
#include "Kyoto/TOneStatic.hpp"
|
||||
#include "MetroidPrime/CIOWinManager.hpp"
|
||||
#include "MetroidPrime/CInputGenerator.hpp"
|
||||
|
||||
class CSavableState;
|
||||
|
||||
class Unknown {
|
||||
private:
|
||||
u8 pad[0x2c];
|
||||
};
|
||||
|
||||
class CGameArchitectureSupport : public TOneStatic< CGameArchitectureSupport > {
|
||||
public:
|
||||
|
@ -24,10 +34,26 @@ public:
|
|||
inline int& GetFramesDrawn() const { return *(int*)(((u8*)this) + 0x78); }
|
||||
|
||||
private:
|
||||
u8 pad[0x20];
|
||||
CAudioSys x0_audioSys;
|
||||
rstl::list< CSavableState > x8_;
|
||||
u32 pad;
|
||||
CStopwatch x20_stopwatch1;
|
||||
CStopwatch x28_stopwatch2;
|
||||
u8 pad2[0xa0];
|
||||
CInputGenerator x30_inputGenerator;
|
||||
CGuiSys x44_guiSys;
|
||||
CIOWinManager x58_ioWinMgr;
|
||||
uint x78_gameFrameCount;
|
||||
f32 x7c_;
|
||||
f32 x80_;
|
||||
f32 x84_;
|
||||
uint x88_;
|
||||
uint x8c_; // unused?
|
||||
uint x90_;
|
||||
uint x94_;
|
||||
uint x98_;
|
||||
rstl::optional_object< Unknown > x9c_;
|
||||
u8 pad2[0x4];
|
||||
};
|
||||
CHECK_SIZEOF(CGameArchitectureSupport, 0xd0)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -13,23 +13,30 @@
|
|||
#include "Kyoto/CSimplePool.hpp"
|
||||
#include "Kyoto/CToken.hpp"
|
||||
#include "Kyoto/Graphics/CGraphicsSys.hpp"
|
||||
#include "Kyoto/Text/CRasterFont.hpp"
|
||||
#include "Kyoto/TOneStatic.hpp"
|
||||
#include "Kyoto/Text/CRasterFont.hpp"
|
||||
#include "MetroidPrime/CInGameTweakManager.hpp"
|
||||
#include "MetroidPrime/Enemies/CAiFuncMap.hpp"
|
||||
#include "MetroidPrime/Factories/CCharacterFactoryBuilder.hpp"
|
||||
#include "MetroidPrime/Player/CGameState.hpp"
|
||||
|
||||
class IRenderer;
|
||||
class CStringTable;
|
||||
|
||||
class CGameGlobalObjects : public TOneStatic< CGameGlobalObjects > {
|
||||
public:
|
||||
CGameGlobalObjects(COsContext&, CMemorySys&);
|
||||
|
||||
void PostInitialize(COsContext&, CMemorySys&);
|
||||
void AddPaksAndFactories();
|
||||
void LoadStringTable();
|
||||
|
||||
rstl::single_ptr< CGameState >& GameState() { return x134_gameState; }
|
||||
|
||||
static CRasterFont* LoadDefaultFont();
|
||||
|
||||
private:
|
||||
rstl::single_ptr< CMemoryCardSys > x0_memoryCardSys;
|
||||
CMemoryCardSys x0_memoryCardSys;
|
||||
CResFactory x4_resFactory;
|
||||
CSimplePool xcc_simplePool;
|
||||
CCharacterFactoryBuilder xec_characterFactoryBuilder;
|
||||
|
@ -37,11 +44,12 @@ private:
|
|||
CGraphicsSys x130_graphicsSys;
|
||||
rstl::single_ptr< CGameState > x134_gameState;
|
||||
uint x138_;
|
||||
rstl::optional_object< TCachedToken< unkptr > > x13c_;
|
||||
uint x14c_;
|
||||
rstl::optional_object< TLockedToken< CStringTable > > x13c_stringTable;
|
||||
rstl::single_ptr< IRenderer > x14c_renderer;
|
||||
rstl::single_ptr< CInGameTweakManager > x150_inGameTweakManager;
|
||||
TToken< CRasterFont > x154_defaultFont;
|
||||
};
|
||||
CHECK_SIZEOF(CGameGlobalObjects, 0x15c)
|
||||
|
||||
// TODO move to related headers
|
||||
extern unkptr gGuiSystem;
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef _CIOWIN_HPP
|
||||
#define _CIOWIN_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "rstl/string.hpp"
|
||||
|
||||
class CArchitectureMessage;
|
||||
class CArchitectureQueue;
|
||||
|
||||
class CIOWin {
|
||||
public:
|
||||
enum EMessageReturn {
|
||||
kMR_Normal = 0,
|
||||
kMR_Exit = 1,
|
||||
kMR_RemoveIOWinAndExit = 2,
|
||||
kMR_RemoveIOWin = 3,
|
||||
};
|
||||
|
||||
virtual ~CIOWin();
|
||||
virtual EMessageReturn OnMessage(const CArchitectureMessage&, CArchitectureQueue&) = 0;
|
||||
virtual bool GetIsContinueDraw() const;
|
||||
virtual void Draw();
|
||||
virtual void PreDraw();
|
||||
|
||||
private:
|
||||
rstl::string x4_name;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -4,10 +4,16 @@
|
|||
#include "types.h"
|
||||
|
||||
#include "rstl/list.hpp"
|
||||
#include "rstl/rc_ptr.hpp"
|
||||
|
||||
class CIOWin;
|
||||
|
||||
class CIOWinManager {
|
||||
public:
|
||||
CIOWinManager();
|
||||
|
||||
void Draw() const;
|
||||
void AddIOWin(rstl::ncrc_ptr< CIOWin >, int, int);
|
||||
|
||||
inline bool IsEmpty() const { return x4_ == 0 && x0_ == 0; }
|
||||
|
||||
|
@ -16,5 +22,6 @@ private:
|
|||
uint x4_;
|
||||
rstl::list< unkptr > x8_;
|
||||
};
|
||||
CHECK_SIZEOF(CIOWinManager, 0x20)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -7,9 +7,12 @@
|
|||
|
||||
class CInGameTweakManager {
|
||||
public:
|
||||
CInGameTweakManager();
|
||||
|
||||
bool ReadFromMemoryCard(const rstl::string&);
|
||||
|
||||
private:
|
||||
u8 pad[0x10];
|
||||
};
|
||||
|
||||
extern CInGameTweakManager* gpTweakManager;
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
#ifndef _CINPUTGENERATOR_HPP
|
||||
#define _CINPUTGENERATOR_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class COsContext;
|
||||
|
||||
class CInputGenerator {
|
||||
public:
|
||||
CInputGenerator(COsContext*, f32, f32);
|
||||
|
||||
private:
|
||||
u8 pad[0x14];
|
||||
};
|
||||
|
||||
#endif
|
|
@ -15,8 +15,52 @@
|
|||
#include "MetroidPrime/TGameTypes.hpp"
|
||||
#include "MetroidPrime/Tweaks/CTweaks.hpp"
|
||||
|
||||
class CMain;
|
||||
|
||||
// TODO
|
||||
class UnkClassArena {
|
||||
public:
|
||||
UnkClassArena(CMain*);
|
||||
};
|
||||
|
||||
// TODO move to new header
|
||||
class CDvdRequestSys {
|
||||
public:
|
||||
CDvdRequestSys() {
|
||||
if (mManagerInstalled != true) {
|
||||
mManagerInstalled = true;
|
||||
}
|
||||
}
|
||||
~CDvdRequestSys() {
|
||||
if (mManagerInstalled == true) {
|
||||
mManagerInstalled = false;
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
static bool mManagerInstalled;
|
||||
};
|
||||
|
||||
// TODO where?
|
||||
enum EFlowState {
|
||||
kFS_None,
|
||||
kFS_WinBad,
|
||||
kFS_WinGood,
|
||||
kFS_WinBest,
|
||||
kFS_LoseGame,
|
||||
kFS_Default,
|
||||
kFS_StateSetter,
|
||||
kFS_PreFrontEnd,
|
||||
kFS_FrontEnd,
|
||||
kFS_Game,
|
||||
kFS_GameExit,
|
||||
};
|
||||
|
||||
class CMain {
|
||||
public:
|
||||
CMain();
|
||||
~CMain();
|
||||
|
||||
void UpdateStreamedAudio();
|
||||
void RegisterResourceTweaks();
|
||||
void ResetGameState();
|
||||
|
@ -33,16 +77,30 @@ public:
|
|||
void DrawDebugMetrics(double dt, CStopwatch& stopWatch);
|
||||
bool CheckTerminate();
|
||||
bool CheckReset();
|
||||
void OpenWindow();
|
||||
|
||||
void SetMaxSpeed(bool v) {
|
||||
// ?
|
||||
x160_26_screenFading = v;
|
||||
}
|
||||
|
||||
static void EnsureWorldPaksReady();
|
||||
static void EnsureWorldPakReady(CAssetId id);
|
||||
|
||||
// TODO
|
||||
COsContext& InitOsContext() {
|
||||
OpenWindow();
|
||||
return x0_osContext;
|
||||
}
|
||||
|
||||
private:
|
||||
COsContext x0_osContext;
|
||||
u8 x6c_unk;
|
||||
UnkClassArena x6c_unk;
|
||||
CMemorySys x6d_memorySys;
|
||||
CDvdRequestSys x6e_dvdRequestSys;
|
||||
CTweaks x70_tweaks;
|
||||
u8 pad[0x7c];
|
||||
u8 pad[0x14];
|
||||
f64 xe8_;
|
||||
TReservedAverage< f32, 4 > xf0_;
|
||||
TReservedAverage< f32, 4 > x104_;
|
||||
f32 x118_;
|
||||
|
@ -50,7 +108,7 @@ private:
|
|||
f32 x120_;
|
||||
f32 x124_;
|
||||
CGameGlobalObjects* x128_gameGlobalObjects;
|
||||
uint x12c_flowState; // EFlowState
|
||||
EFlowState x12c_flowState;
|
||||
rstl::reserved_vector< uint, 10 > x130_frameTimes;
|
||||
int x15c_frameTimeIdx;
|
||||
bool x160_24_finished : 1;
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef _CMEMORYCARD_HPP
|
||||
#define _CMEMORYCARD_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class CMemoryCard {
|
||||
// TODO
|
||||
};
|
||||
|
||||
extern CMemoryCard* gpMemoryCard;
|
||||
|
||||
#endif
|
|
@ -51,6 +51,9 @@ public:
|
|||
void AdvanceParticles(const CTransform4f& xf, float dt, CStateManager& mgr);
|
||||
void RenderParticles(const CFrustumPlanes& planes) const;
|
||||
void RenderUnsortedParts(EWhichModel which, const CTransform4f& xf, const CActorLights* lights, const CModelFlags& flags) const;
|
||||
void RenderThermal(const CTransform4f& xf, const CColor& mulColor, const CColor& addColor, const CModelFlags& flags) const;
|
||||
void Render(const CStateManager&, const CTransform4f&, const CActorLights*, const CModelFlags&) const;
|
||||
void Render(CModelData::EWhichModel, const CTransform4f&, const CActorLights*, const CModelFlags&) const;
|
||||
|
||||
const CAnimData* GetAnimationData() const { return xc_animData.get(); }
|
||||
CAnimData* AnimationData() { return xc_animData.get(); }
|
||||
|
@ -62,7 +65,9 @@ public:
|
|||
|
||||
void SetXRayModel(const rstl::pair< CAssetId, CAssetId >& assets);
|
||||
void SetInfraModel(const rstl::pair< CAssetId, CAssetId >& assets);
|
||||
|
||||
void SetAmbientColor(const CColor& color) { x18_ambientColor = color; }
|
||||
bool GetSortThermal() const { return x14_25_sortThermal; }
|
||||
void SetSortThermal(bool b) { x14_25_sortThermal = b; }
|
||||
|
||||
static EWhichModel GetRenderingModel(const CStateManager& mgr);
|
||||
|
|
|
@ -22,6 +22,10 @@ public:
|
|||
typedef rstl::map< rstl::string, rstl::auto_ptr< CParticleGenInfo > > DrawMap;
|
||||
|
||||
void SetParticleEffectState(const rstl::string& name, bool active, CStateManager& mgr);
|
||||
void RenderSystemsToBeDrawnFirst() const;
|
||||
void RenderSystemsToBeDrawnLast() const;
|
||||
|
||||
bool AreAnySystemsDrawnWithModel() const { return xb4_25_anySystemsDrawnWithModel; }
|
||||
|
||||
private:
|
||||
rstl::map< CAssetId, rstl::rc_ptr< TLockedToken< CGenDescription > > > x0_particleDescs;
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
#ifndef _CSPLASHSCREEN_HPP
|
||||
#define _CSPLASHSCREEN_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/CIOWin.hpp"
|
||||
|
||||
class CSplashScreen : public CIOWin {
|
||||
public:
|
||||
enum ESplashScreen {
|
||||
Nintendo,
|
||||
Retro,
|
||||
Dolby,
|
||||
};
|
||||
|
||||
CSplashScreen(ESplashScreen);
|
||||
~CSplashScreen() override;
|
||||
|
||||
virtual EMessageReturn OnMessage(const CArchitectureMessage&, CArchitectureQueue&);
|
||||
virtual void Draw();
|
||||
};
|
||||
|
||||
#endif
|
|
@ -38,6 +38,7 @@ class CStateManager {
|
|||
public:
|
||||
void SendScriptMsg(TUniqueId uid, TEditorId target, EScriptObjectMessage msg, EScriptObjectState state);
|
||||
bool AddDrawableActor(const CActor& actor, const CVector3f& pos, const CAABox& bounds) const;
|
||||
void SetupParticleHook(const CActor& actor) const;
|
||||
|
||||
CCameraManager* CameraManager() { return x870_cameraManager; }
|
||||
const CCameraManager* GetCameraManager() const { return x870_cameraManager; }
|
||||
|
@ -45,6 +46,11 @@ public:
|
|||
const CPlayerState* GetPlayerState() const { return x8b8_playerState.GetPtr(); }
|
||||
CWorld* World() { return x850_world.get(); }
|
||||
const CWorld* GetWorld() const { return x850_world.get(); }
|
||||
CActorModelParticles* ActorModelParticles() { return x884_actorModelParticles.get(); }
|
||||
const CActorModelParticles* GetActorModelParticles() const { return x884_actorModelParticles.get(); }
|
||||
|
||||
f32 GetThermalColdScale1() const { return xf24_thermColdScale1; }
|
||||
f32 GetThermalColdScale2() const { return xf28_thermColdScale2; }
|
||||
|
||||
private:
|
||||
u16 x0_nextFreeIndex;
|
||||
|
@ -69,6 +75,9 @@ private:
|
|||
rstl::rc_ptr< CScriptMailbox > x8bc_mailbox;
|
||||
rstl::rc_ptr< CMapWorldInfo > x8c0_mapWorldInfo;
|
||||
rstl::rc_ptr< CWorldTransManager > x8c4_worldTransManager;
|
||||
u8 pad2[0x658];
|
||||
f32 xf24_thermColdScale1;
|
||||
f32 xf28_thermColdScale2;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
class CAiFuncMap {
|
||||
public:
|
||||
CAiFuncMap();
|
||||
~CAiFuncMap();
|
||||
|
||||
private:
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
class CCharacterFactoryBuilder {
|
||||
public:
|
||||
CCharacterFactoryBuilder();
|
||||
~CCharacterFactoryBuilder();
|
||||
|
||||
private:
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef _CSCRIPTMAZENODE_HPP
|
||||
#define _CSCRIPTMAZENODE_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/CActor.hpp"
|
||||
|
||||
class CScriptMazeNode : public CActor {
|
||||
public:
|
||||
static void LoadMazeSeeds();
|
||||
};
|
||||
|
||||
#endif
|
|
@ -3,15 +3,56 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/Tweaks/ITweakObject.hpp"
|
||||
|
||||
#include "rstl/string.hpp"
|
||||
|
||||
class CTweakGame {
|
||||
class CTweakGame : public ITweakObject {
|
||||
public:
|
||||
~CTweakGame() override;
|
||||
|
||||
const rstl::string& GetWorldPrefix() { return x4_worldPrefix; }
|
||||
const rstl::string& GetDefaultRoom() const { return x14_defaultRoom; }
|
||||
bool GetSplashScreensDisabled() const { return x2b_splashScreensDisabled; }
|
||||
f32 GetFirstPersonFOV() const { return x24_fov; }
|
||||
f32 GetPressStartDelay() const { return x30_pressStartDelay; }
|
||||
f32 GetWavecapIntensityNormal() const { return x34_wavecapIntensityNormal; }
|
||||
f32 GetWavecapIntensityPoison() const { return x38_wavecapIntensityPoison; }
|
||||
f32 GetWavecapIntensityLava() const { return x3c_wavecapIntensityLava; }
|
||||
f32 GetRippleIntensityNormal() const { return x40_rippleIntensityNormal; }
|
||||
f32 GetRippleIntensityPoison() const { return x44_rippleIntensityPoison; }
|
||||
f32 GetRippleIntensityLava() const { return x48_rippleIntensityLava; }
|
||||
f32 GetFluidEnvBumpScale() const { return x4c_fluidEnvBumpScale; }
|
||||
f32 GetWaterFogDistanceBase() const { return x50_waterFogDistanceBase; }
|
||||
f32 GetWaterFogDistanceRange() const { return x54_waterFogDistanceRange; }
|
||||
f32 GetGravityWaterFogDistanceBase() const { return x58_gravityWaterFogDistanceBase; }
|
||||
f32 GetGravityWaterFogDistanceRange() const { return x5c_gravityWaterFogDistanceRange; }
|
||||
f32 GetHardModeDamageMultiplier() const { return x60_hardmodeDamageMult; }
|
||||
f32 GetHardModeWeaponMultiplier() const { return x64_hardmodeWeaponMult; }
|
||||
|
||||
private:
|
||||
uint x0_;
|
||||
rstl::string x4_worldPrefix;
|
||||
rstl::string x14_defaultRoom;
|
||||
f32 x24_fov;
|
||||
bool x28_unknown1;
|
||||
bool x29_unknown2;
|
||||
bool x2a_unknown3;
|
||||
bool x2b_splashScreensDisabled;
|
||||
f32 x2c_unknown5;
|
||||
f32 x30_pressStartDelay;
|
||||
f32 x34_wavecapIntensityNormal;
|
||||
f32 x38_wavecapIntensityPoison;
|
||||
f32 x3c_wavecapIntensityLava;
|
||||
f32 x40_rippleIntensityNormal;
|
||||
f32 x44_rippleIntensityPoison;
|
||||
f32 x48_rippleIntensityLava;
|
||||
f32 x4c_fluidEnvBumpScale;
|
||||
f32 x50_waterFogDistanceBase;
|
||||
f32 x54_waterFogDistanceRange;
|
||||
f32 x58_gravityWaterFogDistanceBase;
|
||||
f32 x5c_gravityWaterFogDistanceRange;
|
||||
f32 x60_hardmodeDamageMult;
|
||||
f32 x64_hardmodeWeaponMult;
|
||||
};
|
||||
|
||||
extern CTweakGame* gpTweakGame;
|
||||
|
|
|
@ -0,0 +1,318 @@
|
|||
#ifndef _CTWEAKPLAYER_HPP
|
||||
#define _CTWEAKPLAYER_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/Tweaks/ITweakObject.hpp"
|
||||
|
||||
#include "rstl/string.hpp"
|
||||
|
||||
class CTweakPlayer : public ITweakObject {
|
||||
public:
|
||||
~CTweakPlayer() override;
|
||||
|
||||
// TODO CPlayer::ESurfaceRestraints
|
||||
f32 GetMaxTranslationalAcceleration(int s) const { return x4_maxTranslationalAcceleration[s]; }
|
||||
f32 GetMaxRotationalAcceleration(int s) const { return x24_maxRotationalAcceleration[s]; }
|
||||
f32 GetPlayerTranslationFriction(int s) const { return x44_translationFriction[s]; }
|
||||
f32 GetPlayerRotationFriction(int s) const { return x64_rotationFriction[s]; }
|
||||
f32 GetPlayerRotationMaxSpeed(int s) const { return x84_rotationMaxSpeed[s]; }
|
||||
f32 GetPlayerTranslationMaxSpeed(int s) const { return xa4_translationMaxSpeed[s]; }
|
||||
f32 GetNormalGravAccel() const { return xc4_normalGravAccel; }
|
||||
f32 GetFluidGravAccel() const { return xc8_fluidGravAccel; }
|
||||
f32 GetVerticalJumpAccel() const { return xcc_verticalJumpAccel; }
|
||||
f32 GetHorizontalJumpAccel() const { return xd0_horizontalJumpAccel; }
|
||||
f32 GetVerticalDoubleJumpAccel() const { return xd4_verticalDoubleJumpAccel; }
|
||||
f32 GetHorizontalDoubleJumpAccel() const { return xd8_horizontalDoubleJumpAccel; }
|
||||
f32 GetWaterJumpFactor() const { return xdc_waterJumpFactor; }
|
||||
f32 GetWaterBallJumpFactor() const { return xe0_waterBallJumpFactor; }
|
||||
f32 GetLavaJumpFactor() const { return xe4_lavaJumpFactor; }
|
||||
f32 GetLavaBallJumpFactor() const { return xe8_lavaBallJumpFactor; }
|
||||
f32 GetPhazonJumpFactor() const { return xec_phazonJumpFactor; }
|
||||
f32 GetPhazonBallJumpFactor() const { return xf0_phazonBallJumpFactor; }
|
||||
f32 GetAllowedJumpTime() const { return xf4_allowedJumpTime; }
|
||||
f32 GetAllowedDoubleJumpTime() const { return xf8_allowedDoubleJumpTime; }
|
||||
f32 GetMinDoubleJumpWindow() const { return xfc_minDoubleJumpWindow; }
|
||||
f32 GetMaxDoubleJumpWindow() const { return x100_maxDoubleJumpWindow; }
|
||||
f32 GetMinJumpTime() const { return x108_minJumpTime; }
|
||||
f32 GetMinDoubleJumpTime() const { return x10c_minDoubleJumpTime; }
|
||||
f32 GetAllowedLedgeTime() const { return x110_allowedLedgeTime; }
|
||||
f32 GetDoubleJumpImpulse() const { return x114_doubleJumpImpulse; }
|
||||
f32 GetBackwardsForceMultiplier() const { return x118_backwardsForceMultiplier; }
|
||||
f32 GetBombJumpRadius() const { return x11c_bombJumpRadius; }
|
||||
f32 GetBombJumpHeight() const { return x120_bombJumpHeight; }
|
||||
f32 GetEyeOffset() const { return x124_eyeOffset; }
|
||||
f32 GetTurnSpeedMultiplier() const { return x128_turnSpeedMultiplier; }
|
||||
f32 GetFreeLookTurnSpeedMultiplier() const { return x12c_freeLookTurnSpeedMultiplier; }
|
||||
f32 GetFreeLookSpeed() const { return x138_freeLookSpeed; }
|
||||
f32 GetFreeLookSnapSpeed() const { return x13c_freeLookSnapSpeed; }
|
||||
f32 GetFreeLookCenteredThresholdAngle() const { return x144_freeLookCenteredThresholdAngle; }
|
||||
f32 GetFreeLookCenteredTime() const { return x148_freeLookCenteredTime; }
|
||||
f32 GetOrbitModeTimer() const { return x180_orbitModeTimer; }
|
||||
f32 GetOrbitUpperAngle() const { return x188_orbitUpperAngle; }
|
||||
f32 GetOrbitLowerAngle() const { return x18c_orbitLowerAngle; }
|
||||
f32 GetOrbitHorizAngle() const { return x190_orbitHorizAngle; }
|
||||
f32 GetOrbitMaxTargetDistance() const { return x19c_orbitMaxTargetDistance; }
|
||||
f32 GetOrbitMaxLockDistance() const { return x1a0_orbitMaxLockDistance; }
|
||||
f32 GetOrbitDistanceThreshold() const { return x1a4_orbitDistanceThreshold; }
|
||||
uint GetOrbitScreenBoxHalfExtentX(int zone) const { return x1a8_orbitScreenBoxHalfExtentX[zone]; }
|
||||
uint GetOrbitScreenBoxHalfExtentY(int zone) const { return x1b0_orbitScreenBoxHalfExtentY[zone]; }
|
||||
uint GetOrbitScreenBoxCenterX(int zone) const { return x1b8_orbitScreenBoxCenterX[zone]; }
|
||||
uint GetOrbitScreenBoxCenterY(int zone) const { return x1c0_orbitScreenBoxCenterY[zone]; }
|
||||
uint GetOrbitZoneIdealX(int zone) const { return x1c8_orbitZoneIdealX[zone]; }
|
||||
uint GetOrbitZoneIdealY(int zone) const { return x1d0_orbitZoneIdealY[zone]; }
|
||||
f32 GetOrbitNearX() const { return x1d8_orbitNearX; }
|
||||
f32 GetOrbitNearZ() const { return x1dc_orbitNearZ; }
|
||||
f32 GetOrbitFixedOffsetZDiff() const { return x1e8_orbitFixedOffsetZDiff; }
|
||||
f32 GetOrbitZRange() const { return x1ec_orbitZRange; }
|
||||
bool GetDashEnabled() const { return x200_24_dashEnabled; }
|
||||
bool GetDashOnButtonRelease() const { return x200_25_dashOnButtonRelease; }
|
||||
f32 GetDashButtonHoldCancelTime() const { return x204_dashButtonHoldCancelTime; }
|
||||
f32 GetDashStrafeInputThreshold() const { return x208_dashStrafeInputThreshold; }
|
||||
f32 GetSidewaysDoubleJumpImpulse() const { return x20c_sidewaysDoubleJumpImpulse; }
|
||||
f32 GetSidewaysVerticalDoubleJumpAccel() const { return x210_sidewaysVerticalDoubleJumpAccel; }
|
||||
f32 GetSidewaysHorizontalDoubleJumpAccel() const { return x214_sidewaysHorizontalDoubleJumpAccel; }
|
||||
f32 GetScanningRange() const { return x218_scanningRange; }
|
||||
bool GetScanRetention() const { return x21c_24_scanRetention; }
|
||||
bool GetScanFreezesGame() const { return x21c_25_scanFreezesGame; }
|
||||
bool GetOrbitWhileScanning() const { return x21c_26_orbitWhileScanning; }
|
||||
f32 GetScanMaxTargetDistance() const { return x220_scanMaxTargetDistance; }
|
||||
f32 GetScanMaxLockDistance() const { return x224_scanMaxLockDistance; }
|
||||
bool GetMoveDuringFreeLook() const { return x228_27_moveDuringFreeLook; }
|
||||
bool GetHoldButtonsForFreeLook() const { return x228_28_holdButtonsForFreeLook; }
|
||||
bool GetTwoButtonsForFreeLook() const { return x228_29_twoButtonsForFreeLook; }
|
||||
bool GetAimWhenOrbitingPoint() const { return x229_25_aimWhenOrbitingPoint; }
|
||||
bool GetStayInFreeLookWhileFiring() const { return x229_26_stayInFreeLookWhileFiring; }
|
||||
bool GetOrbitFixedOffset() const { return x229_29_orbitFixedOffset; }
|
||||
bool GetGunButtonTogglesHolster() const { return x229_30_gunButtonTogglesHolster; }
|
||||
bool GetGunNotFiringHolstersGun() const { return x229_31_gunNotFiringHolstersGun; }
|
||||
bool GetFallingDoubleJump() const { return x22a_24_fallingDoubleJump; }
|
||||
bool GetImpulseDoubleJump() const { return x22a_25_impulseDoubleJump; }
|
||||
bool GetFiringCancelsCameraPitch() const { return x22a_26_firingCancelsCameraPitch; }
|
||||
bool GetAssistedAimingIgnoreHorizontal() const { return x22a_27_assistedAimingIgnoreHorizontal; }
|
||||
bool GetAssistedAimingIgnoreVertical() const { return x22a_28_assistedAimingIgnoreVertical; }
|
||||
f32 GetAimMaxDistance() const { return x234_aimMaxDistance; }
|
||||
f32 GetAimThresholdDistance() const { return x24c_aimThresholdDistance; }
|
||||
f32 GetAimBoxWidth() const { return x258_aimBoxWidth; }
|
||||
f32 GetAimBoxHeight() const { return x25c_aimBoxHeight; }
|
||||
f32 GetAimTargetTimer() const { return x260_aimTargetTimer; }
|
||||
f32 GetAimAssistHorizontalAngle() const { return x264_aimAssistHorizontalAngle; }
|
||||
f32 GetAimAssistVerticalAngle() const { return x268_aimAssistVerticalAngle; }
|
||||
f32 GetPlayerHeight() const { return x26c_playerHeight; }
|
||||
f32 GetPlayerXYHalfExtent() const { return x270_playerXYHalfExtent; }
|
||||
f32 GetStepUpHeight() const { return x274_stepUpHeight; }
|
||||
f32 GetStepDownHeight() const { return x278_stepDownHeight; }
|
||||
f32 GetPlayerBallHalfExtent() const { return x27c_playerBallHalfExtent; }
|
||||
f32 GetOrbitDistanceMax() const { return x2a0_orbitDistanceMax; }
|
||||
f32 GetGrappleSwingLength() const { return x2a4_grappleSwingLength; }
|
||||
f32 GetGrappleSwingPeriod() const { return x2a8_grappleSwingPeriod; }
|
||||
f32 GetGrapplePullSpeedMin() const { return x2ac_grapplePullSpeedMin; }
|
||||
f32 GetMaxGrappleLockedTurnAlignDistance() const { return x2b4_maxGrappleLockedTurnAlignDistance; }
|
||||
f32 GetGrapplePullSpeedProportion() const { return x2b8_grapplePullSpeedProportion; }
|
||||
f32 GetGrapplePullSpeedMax() const { return x2bc_grapplePullSpeedMax; }
|
||||
f32 GetGrappleLookCenterSpeed() const { return x2c0_grappleLookCenterSpeed; }
|
||||
f32 GetMaxGrappleTurnSpeed() const { return x2c4_maxGrappleTurnSpeed; }
|
||||
f32 GetGrappleJumpForce() const { return x2c8_grappleJumpForce; }
|
||||
f32 GetGrappleReleaseTime() const { return x2cc_grappleReleaseTime; }
|
||||
uint GetGrappleJumpMode() const { return x2d0_grappleJumpMode; }
|
||||
bool GetOrbitReleaseBreaksGrapple() const { return x2d4_orbitReleaseBreaksGrapple; }
|
||||
bool GetInvertGrappleTurn() const { return x2d5_invertGrappleTurn; }
|
||||
f32 GetGrappleBeamSpeed() const { return x2d8_grappleBeamSpeed; }
|
||||
f32 GetGrappleBeamXWaveAmplitude() const { return x2dc_grappleBeamXWaveAmplitude; }
|
||||
f32 GetGrappleBeamZWaveAmplitude() const { return x2e0_grappleBeamZWaveAmplitude; }
|
||||
f32 GetGrappleBeamAnglePhaseDelta() const { return x2e4_grappleBeamAnglePhaseDelta; }
|
||||
f32 GetHorizontalFreeLookAngleVel() const { return x130_horizontalFreeLookAngleVel; }
|
||||
f32 GetVerticalFreeLookAngleVel() const { return x134_verticalFreeLookAngleVel; }
|
||||
f32 GetOrbitCameraSpeed() const { return x184_orbitCameraSpeed; }
|
||||
f32 GetOrbitPreventionTime() const { return x1fc_orbitPreventionTime; }
|
||||
bool GetFreeLookTurnsPlayer() const { return x228_24_freelookTurnsPlayer; }
|
||||
f32 GetJumpCameraPitchDownStart() const { return x288_jumpCameraPitchDownStart; }
|
||||
f32 GetJumpCameraPitchDownFull() const { return x28c_jumpCameraPitchDownFull; }
|
||||
f32 GetJumpCameraPitchDownAngle() const { return x290_jumpCameraPitchDownAngle; }
|
||||
f32 GetFallCameraPitchDownStart() const { return x294_fallCameraPitchDownStart; }
|
||||
f32 GetFallCameraPitchDownFull() const { return x298_fallCameraPitchDownFull; }
|
||||
f32 GetFallCameraPitchDownAngle() const { return x29c_fallCameraPitchDownAngle; }
|
||||
f32 GetFirstPersonCameraSpeed() const { return x280_firstPersonCameraSpeed; }
|
||||
f32 GetGrappleCameraSpeed() const { return x2b0_grappleCameraSpeed; }
|
||||
f32 GetFreeLookDampenFactor() const { return x14c_freeLookDampenFactor; }
|
||||
f32 GetLeftAnalogMax() const { return x150_leftDiv; }
|
||||
f32 GetRightAnalogMax() const { return x154_rightDiv; }
|
||||
f32 GetOrbitMinDistance(int type) const { return x158_orbitMinDistance[type]; }
|
||||
f32 GetOrbitNormalDistance(int type) const { return x164_orbitNormalDistance[type]; }
|
||||
f32 GetOrbitMaxDistance(int type) const { return x170_orbitMaxDistance[type]; }
|
||||
f32 GetFrozenTimeout() const { return x2f8_frozenTimeout; }
|
||||
uint GetIceBreakJumpCount() const { return x2fc_iceBreakJumpCount; }
|
||||
f32 GetVariaDamageReduction() const { return x300_variaDamageReduction; }
|
||||
f32 GetGravityDamageReduction() const { return x304_gravityDamageReduction; }
|
||||
f32 GetPhazonDamageReduction() const { return x308_phazonDamageReduction; }
|
||||
|
||||
private:
|
||||
f32 x4_maxTranslationalAcceleration[8];
|
||||
f32 x24_maxRotationalAcceleration[8];
|
||||
f32 x44_translationFriction[8];
|
||||
f32 x64_rotationFriction[8];
|
||||
f32 x84_rotationMaxSpeed[8];
|
||||
f32 xa4_translationMaxSpeed[8];
|
||||
f32 xc4_normalGravAccel;
|
||||
f32 xc8_fluidGravAccel;
|
||||
f32 xcc_verticalJumpAccel;
|
||||
f32 xd0_horizontalJumpAccel;
|
||||
f32 xd4_verticalDoubleJumpAccel;
|
||||
f32 xd8_horizontalDoubleJumpAccel;
|
||||
f32 xdc_waterJumpFactor;
|
||||
f32 xe0_waterBallJumpFactor;
|
||||
f32 xe4_lavaJumpFactor;
|
||||
f32 xe8_lavaBallJumpFactor;
|
||||
f32 xec_phazonJumpFactor;
|
||||
f32 xf0_phazonBallJumpFactor;
|
||||
f32 xf4_allowedJumpTime;
|
||||
f32 xf8_allowedDoubleJumpTime;
|
||||
f32 xfc_minDoubleJumpWindow;
|
||||
f32 x100_maxDoubleJumpWindow;
|
||||
f32 x104_;
|
||||
f32 x108_minJumpTime;
|
||||
f32 x10c_minDoubleJumpTime;
|
||||
f32 x110_allowedLedgeTime;
|
||||
f32 x114_doubleJumpImpulse;
|
||||
f32 x118_backwardsForceMultiplier;
|
||||
f32 x11c_bombJumpRadius;
|
||||
f32 x120_bombJumpHeight;
|
||||
f32 x124_eyeOffset;
|
||||
f32 x128_turnSpeedMultiplier;
|
||||
f32 x12c_freeLookTurnSpeedMultiplier;
|
||||
f32 x130_horizontalFreeLookAngleVel;
|
||||
f32 x134_verticalFreeLookAngleVel;
|
||||
f32 x138_freeLookSpeed;
|
||||
f32 x13c_freeLookSnapSpeed;
|
||||
f32 x140_;
|
||||
f32 x144_freeLookCenteredThresholdAngle;
|
||||
f32 x148_freeLookCenteredTime;
|
||||
f32 x14c_freeLookDampenFactor;
|
||||
f32 x150_leftDiv;
|
||||
f32 x154_rightDiv;
|
||||
f32 x158_orbitMinDistance[3];
|
||||
f32 x164_orbitNormalDistance[3];
|
||||
f32 x170_orbitMaxDistance[3];
|
||||
f32 x17c_;
|
||||
f32 x180_orbitModeTimer;
|
||||
f32 x184_orbitCameraSpeed;
|
||||
f32 x188_orbitUpperAngle;
|
||||
f32 x18c_orbitLowerAngle;
|
||||
f32 x190_orbitHorizAngle;
|
||||
f32 x194_;
|
||||
f32 x198_;
|
||||
f32 x19c_orbitMaxTargetDistance;
|
||||
f32 x1a0_orbitMaxLockDistance;
|
||||
f32 x1a4_orbitDistanceThreshold;
|
||||
uint x1a8_orbitScreenBoxHalfExtentX[2];
|
||||
uint x1b0_orbitScreenBoxHalfExtentY[2];
|
||||
uint x1b8_orbitScreenBoxCenterX[2];
|
||||
uint x1c0_orbitScreenBoxCenterY[2];
|
||||
uint x1c8_orbitZoneIdealX[2];
|
||||
uint x1d0_orbitZoneIdealY[2];
|
||||
f32 x1d8_orbitNearX;
|
||||
f32 x1dc_orbitNearZ;
|
||||
f32 x1e0_;
|
||||
f32 x1e4_;
|
||||
f32 x1e8_orbitFixedOffsetZDiff;
|
||||
f32 x1ec_orbitZRange;
|
||||
f32 x1f0_;
|
||||
f32 x1f4_;
|
||||
f32 x1f8_;
|
||||
f32 x1fc_orbitPreventionTime;
|
||||
bool x200_24_dashEnabled : 1;
|
||||
bool x200_25_dashOnButtonRelease : 1;
|
||||
f32 x204_dashButtonHoldCancelTime;
|
||||
f32 x208_dashStrafeInputThreshold;
|
||||
f32 x20c_sidewaysDoubleJumpImpulse;
|
||||
f32 x210_sidewaysVerticalDoubleJumpAccel;
|
||||
f32 x214_sidewaysHorizontalDoubleJumpAccel;
|
||||
f32 x218_scanningRange;
|
||||
bool x21c_24_scanRetention : 1;
|
||||
bool x21c_25_scanFreezesGame : 1;
|
||||
bool x21c_26_orbitWhileScanning : 1;
|
||||
f32 x220_scanMaxTargetDistance;
|
||||
f32 x224_scanMaxLockDistance;
|
||||
bool x228_24_freelookTurnsPlayer : 1;
|
||||
bool x228_25_ : 1;
|
||||
bool x228_26_ : 1;
|
||||
bool x228_27_moveDuringFreeLook : 1;
|
||||
bool x228_28_holdButtonsForFreeLook : 1;
|
||||
bool x228_29_twoButtonsForFreeLook : 1;
|
||||
bool x228_30_ : 1;
|
||||
bool x228_31_ : 1;
|
||||
bool x229_24_ : 1;
|
||||
bool x229_25_aimWhenOrbitingPoint : 1;
|
||||
bool x229_26_stayInFreeLookWhileFiring : 1;
|
||||
bool x229_27_ : 1;
|
||||
bool x229_28_ : 1;
|
||||
bool x229_29_orbitFixedOffset : 1;
|
||||
bool x229_30_gunButtonTogglesHolster : 1;
|
||||
bool x229_31_gunNotFiringHolstersGun : 1;
|
||||
bool x22a_24_fallingDoubleJump : 1;
|
||||
bool x22a_25_impulseDoubleJump : 1;
|
||||
bool x22a_26_firingCancelsCameraPitch : 1;
|
||||
bool x22a_27_assistedAimingIgnoreHorizontal : 1;
|
||||
bool x22a_28_assistedAimingIgnoreVertical : 1;
|
||||
f32 x22c_;
|
||||
f32 x230_;
|
||||
f32 x234_aimMaxDistance;
|
||||
f32 x238_;
|
||||
f32 x23c_;
|
||||
f32 x240_;
|
||||
f32 x244_;
|
||||
f32 x248_;
|
||||
f32 x24c_aimThresholdDistance;
|
||||
f32 x250_;
|
||||
f32 x254_;
|
||||
f32 x258_aimBoxWidth;
|
||||
f32 x25c_aimBoxHeight;
|
||||
f32 x260_aimTargetTimer;
|
||||
f32 x264_aimAssistHorizontalAngle;
|
||||
f32 x268_aimAssistVerticalAngle;
|
||||
f32 x26c_playerHeight;
|
||||
f32 x270_playerXYHalfExtent;
|
||||
f32 x274_stepUpHeight;
|
||||
f32 x278_stepDownHeight;
|
||||
f32 x27c_playerBallHalfExtent;
|
||||
f32 x280_firstPersonCameraSpeed;
|
||||
f32 x284_;
|
||||
f32 x288_jumpCameraPitchDownStart;
|
||||
f32 x28c_jumpCameraPitchDownFull;
|
||||
f32 x290_jumpCameraPitchDownAngle;
|
||||
f32 x294_fallCameraPitchDownStart;
|
||||
f32 x298_fallCameraPitchDownFull;
|
||||
f32 x29c_fallCameraPitchDownAngle;
|
||||
f32 x2a0_orbitDistanceMax;
|
||||
f32 x2a4_grappleSwingLength;
|
||||
f32 x2a8_grappleSwingPeriod;
|
||||
f32 x2ac_grapplePullSpeedMin;
|
||||
f32 x2b0_grappleCameraSpeed;
|
||||
f32 x2b4_maxGrappleLockedTurnAlignDistance;
|
||||
f32 x2b8_grapplePullSpeedProportion;
|
||||
f32 x2bc_grapplePullSpeedMax;
|
||||
f32 x2c0_grappleLookCenterSpeed;
|
||||
f32 x2c4_maxGrappleTurnSpeed;
|
||||
f32 x2c8_grappleJumpForce;
|
||||
f32 x2cc_grappleReleaseTime;
|
||||
uint x2d0_grappleJumpMode;
|
||||
bool x2d4_orbitReleaseBreaksGrapple;
|
||||
bool x2d5_invertGrappleTurn;
|
||||
f32 x2d8_grappleBeamSpeed;
|
||||
f32 x2dc_grappleBeamXWaveAmplitude;
|
||||
f32 x2e0_grappleBeamZWaveAmplitude;
|
||||
f32 x2e4_grappleBeamAnglePhaseDelta;
|
||||
f32 x2e8_;
|
||||
f32 x2ec_;
|
||||
f32 x2f0_;
|
||||
bool x2f4_;
|
||||
f32 x2f8_frozenTimeout;
|
||||
uint x2fc_iceBreakJumpCount;
|
||||
f32 x300_variaDamageReduction;
|
||||
f32 x304_gravityDamageReduction;
|
||||
f32 x308_phazonDamageReduction;
|
||||
};
|
||||
|
||||
extern CTweakPlayer* gpTweakPlayer;
|
||||
|
||||
#endif
|
|
@ -3,13 +3,22 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#include "rstl/auto_ptr.hpp"
|
||||
#include "rstl/reserved_vector.hpp"
|
||||
|
||||
class ITweakObject;
|
||||
|
||||
class CTweaks {
|
||||
public:
|
||||
CTweaks();
|
||||
~CTweaks();
|
||||
|
||||
void RegisterResourceTweaks();
|
||||
void RegisterTweaks();
|
||||
|
||||
private:
|
||||
uint x0_unk;
|
||||
rstl::reserved_vector< rstl::auto_ptr< ITweakObject >, 12 > x0_;
|
||||
};
|
||||
CHECK_SIZEOF(CTweaks, 0x64)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef _ITWEAKOBJECT_HPP
|
||||
#define _ITWEAKOBJECT_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class ITweakObject {
|
||||
public:
|
||||
virtual ~ITweakObject() = 0;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,4 +1,4 @@
|
|||
#include "Dolphin/db.h"
|
||||
#include "dolphin/db.h"
|
||||
#include "types.h"
|
||||
|
||||
#define PAD3_BUTTON_ADDR 0x800030E4
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef __AR_H__
|
||||
#define __AR_H__
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
u32 ARInit(u32* stack_index_addr, u32 num_entries);
|
||||
u32 ARAlloc(u32 length);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __AR_H__
|
|
@ -0,0 +1,18 @@
|
|||
#ifndef __ARQ_H__
|
||||
#define __ARQ_H__
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "dolphin/ar.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void ARQInit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __ARQ_H__
|
|
@ -17,6 +17,8 @@ typedef struct DVDDiskID {
|
|||
u8 padding[22]; // 0's are stored
|
||||
} DVDDiskID;
|
||||
|
||||
void DVDSetAutoFatalMessaging(BOOL);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -53,6 +53,7 @@ u32 __OSCoreClock AT_ADDRESS(OS_BASE_CACHED | 0x00FC); // sync with OSLoMem.h
|
|||
#define OSRoundUp32B(v) (((u32)(v + 31) & ~31))
|
||||
|
||||
OSTime OSGetTime();
|
||||
void OSReport(const char* msg, ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
void DCFlushRange(void* addr, u32 nBytes);
|
||||
|
||||
void LCEnable();
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef _OSMEMORY_H_
|
||||
#define _OSMEMORY_H_
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#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)
|
||||
|
||||
void OSProtectRange(u32 chan, void* addr, u32 nBytes, u32 control);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -0,0 +1,23 @@
|
|||
#ifndef _OSMUTEX_H_
|
||||
#define _OSMUTEX_H_
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "dolphin/os/OSThread.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct OSMutex {
|
||||
OSThreadQueue queue;
|
||||
OSThread* thread; // the current owner
|
||||
s32 count; // lock count
|
||||
OSMutexLink link; // for OSThread.queueMutex
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -62,6 +62,8 @@ struct OSThread {
|
|||
void* specific[OS_THREAD_SPECIFIC_MAX];
|
||||
};
|
||||
|
||||
OSThread* OSGetCurrentThread(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -66,6 +66,7 @@ inline void uninitialized_copy_2(S* begin, D* out, S* end) {
|
|||
}
|
||||
|
||||
template < typename S, typename D >
|
||||
// inline void uninitialized_copy_n(S* src, int count, D* dest) {
|
||||
inline void uninitialized_copy_n(D* dest, S* src, int count) {
|
||||
for (int i = 0; i < count; ++dest, ++i, ++src) {
|
||||
construct(dest, *src);
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#ifndef _RSTL_HASH_MAP_HPP
|
||||
#define _RSTL_HASH_MAP_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "rstl/list.hpp"
|
||||
#include "rstl/pair.hpp"
|
||||
#include "rstl/red_black_tree.hpp"
|
||||
#include "rstl/rmemory_allocator.hpp"
|
||||
#include "rstl/vector.hpp"
|
||||
|
||||
namespace rstl {
|
||||
template < typename K, typename P, int unk, typename Select, typename Hash, typename Equal, typename Alloc = rmemory_allocator >
|
||||
class hash_table {
|
||||
private:
|
||||
rstl::vector< rstl::list< P, Alloc > /*::iterator*/, Alloc > x;
|
||||
};
|
||||
|
||||
template < typename K, typename V, typename Hash, typename Equal, typename Alloc = rmemory_allocator >
|
||||
class hash_map {
|
||||
typedef rstl::pair< K, V > Pair;
|
||||
|
||||
private:
|
||||
hash_table< K, Pair, 0, select1st< Pair >, Hash, Equal, Alloc > table;
|
||||
};
|
||||
} // namespace rstl
|
||||
|
||||
#endif
|
|
@ -9,6 +9,7 @@ namespace rstl {
|
|||
template < typename T, typename Alloc = rmemory_allocator >
|
||||
class list {
|
||||
public:
|
||||
list() : x4_start(&xc_empty), x8_end(&xc_empty), xc_empty(x8_end, nullptr) {}
|
||||
~list() {
|
||||
node* cur = x4_start;
|
||||
while (cur != nullptr) {
|
||||
|
@ -25,6 +26,8 @@ private:
|
|||
T* x8_item;
|
||||
u32 x8_count;
|
||||
};
|
||||
|
||||
node(node* prev, node* next) : x0_prev(prev), x4_next(next), x8_count(0) {}
|
||||
};
|
||||
|
||||
Alloc x0_allocator;
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef _RSTL_MATH_HPP
|
||||
#define _RSTL_MATH_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
namespace rstl {
|
||||
template < typename T >
|
||||
static inline const T& max_val(const T& a, const T& b) {
|
||||
return a > b ? a : b;
|
||||
}
|
||||
template < typename T >
|
||||
static inline const T& min_val(const T& a, const T& b) {
|
||||
return a < b ? a : b;
|
||||
}
|
||||
} // namespace rstl
|
||||
|
||||
#endif
|
|
@ -13,16 +13,33 @@ public:
|
|||
optional_object(const T& item) : x0_item(item), x4_valid(true) {}
|
||||
~optional_object() { clear(); }
|
||||
|
||||
optional_object& operator=(const T& item) {
|
||||
assign(item);
|
||||
return *this;
|
||||
}
|
||||
|
||||
T& data() { return x0_item; }
|
||||
T* get_ptr() { return &x0_item; }
|
||||
operator bool() const { return x4_valid; }
|
||||
void clear() {
|
||||
rstl::destroy(&x0_item);
|
||||
x4_valid = false;
|
||||
}
|
||||
|
||||
T& operator*() { return data(); }
|
||||
|
||||
private:
|
||||
T x0_item;
|
||||
bool x4_valid;
|
||||
|
||||
void assign(const T& item) {
|
||||
if (!x4_valid) {
|
||||
rstl::construct(get_ptr(), item);
|
||||
x4_valid = true;
|
||||
} else {
|
||||
data() = item;
|
||||
}
|
||||
}
|
||||
};
|
||||
} // namespace rstl
|
||||
|
||||
|
|
|
@ -3,29 +3,34 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
template < typename T >
|
||||
class CRefData {
|
||||
public:
|
||||
T* x0_ptr;
|
||||
CRefData(void* ptr) : x0_ptr(ptr), x4_refCount(1) {}
|
||||
CRefData(void* ptr, int refCount) : x0_ptr(ptr), x4_refCount(refCount) {}
|
||||
|
||||
void* x0_ptr;
|
||||
unsigned int x4_refCount;
|
||||
};
|
||||
|
||||
namespace rstl {
|
||||
template < typename T >
|
||||
class rc_ptr {
|
||||
CRefData< T >* x0_refData;
|
||||
|
||||
public:
|
||||
rc_ptr(T* ptr) : x0_refData(new CRefData(ptr)) {}
|
||||
~rc_ptr();
|
||||
T* GetPtr() const { return x0_refData->x0_ptr; }
|
||||
T* GetPtr() const { return reinterpret_cast< T* >(x0_refData->x0_ptr); }
|
||||
// TODO ReleaseData__Q24rstl20rc_ptr
|
||||
T* operator->() const { return GetPtr(); }
|
||||
T& operator*() const { return *GetPtr(); }
|
||||
|
||||
private:
|
||||
CRefData* x0_refData;
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
class ncrc_ptr : public rc_ptr< T > {
|
||||
// TODO
|
||||
public:
|
||||
ncrc_ptr(T* ptr) : rc_ptr(ptr) {}
|
||||
};
|
||||
} // namespace rstl
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ public:
|
|||
reserved_vector(const T& value) : x0_count(N) { rstl::uninitialized_fill_n(data(), N, value); }
|
||||
reserved_vector(const reserved_vector& other) {
|
||||
x0_count = other.size();
|
||||
// rstl::uninitialized_copy_n(other.data(), size(), data());
|
||||
rstl::uninitialized_copy_n(data(), other.data(), size());
|
||||
}
|
||||
reserved_vector& operator=(const reserved_vector& other) {
|
||||
|
|
|
@ -16,9 +16,10 @@ public:
|
|||
// const T* get() const { return x0_ptr; }
|
||||
T* operator->() { return x0_ptr; }
|
||||
const T* operator->() const { return x0_ptr; }
|
||||
void operator=(T* ptr) {
|
||||
single_ptr& operator=(T* ptr) {
|
||||
delete x0_ptr;
|
||||
x0_ptr = ptr;
|
||||
return *this;
|
||||
}
|
||||
bool null() const { return x0_ptr == nullptr; }
|
||||
T& operator*() { return *x0_ptr; }
|
||||
|
|
|
@ -7,6 +7,22 @@
|
|||
#include "rstl/rmemory_allocator.hpp"
|
||||
|
||||
namespace rstl {
|
||||
// template < typename T, typename Alloc >
|
||||
// struct allocator_auto_ptr {
|
||||
// allocator_auto_ptr(T* ptr, Alloc* alloc) : ptr(ptr) {}
|
||||
// ~allocator_auto_ptr() {
|
||||
// if (ptr != nullptr) {
|
||||
// Alloc::deallocate(ptr);
|
||||
// ptr = nullptr;
|
||||
// }
|
||||
// }
|
||||
|
||||
// T* release() { T* v = ptr; ptr = nullptr; return v; }
|
||||
|
||||
// private:
|
||||
// T* ptr;
|
||||
// };
|
||||
|
||||
template < typename T, typename Alloc = rmemory_allocator >
|
||||
class vector {
|
||||
Alloc x0_allocator;
|
||||
|
@ -36,6 +52,7 @@ public:
|
|||
} else {
|
||||
x0_allocator.allocate(xc_items, sz);
|
||||
}
|
||||
// rstl::uninitialized_copy_n(other.data(), x4_count, data());
|
||||
rstl::uninitialized_copy_n(data(), other.data(), x4_count);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,19 +1,11 @@
|
|||
// C++98 static assert
|
||||
|
||||
template < bool expr >
|
||||
struct do_static_assert;
|
||||
|
||||
template <>
|
||||
struct do_static_assert< true > {
|
||||
static const char test;
|
||||
};
|
||||
|
||||
struct false_type {
|
||||
static const bool value = false;
|
||||
static const int value = 0;
|
||||
};
|
||||
|
||||
struct true_type {
|
||||
static const bool value = true;
|
||||
static const int value = 1;
|
||||
};
|
||||
|
||||
template < int A, int B >
|
||||
|
@ -27,7 +19,7 @@ struct check_sizeof : _n_is_equal< sizeof(T), N > {};
|
|||
|
||||
#ifdef __MWERKS__
|
||||
#define CHECK_SIZEOF(cls, size) \
|
||||
static void cls##_check() { do_static_assert< check_sizeof< cls, size >::value >::test; }
|
||||
extern int cls##_check[check_sizeof< cls, size >::value];
|
||||
#else
|
||||
#define CHECK_SIZEOF(cls, size)
|
||||
#endif
|
|
@ -12,7 +12,9 @@ extern "C" {
|
|||
|
||||
typedef unsigned long __file_handle;
|
||||
typedef unsigned long fpos_t;
|
||||
#ifndef __cplusplus
|
||||
typedef unsigned short wchar_t;
|
||||
#endif
|
||||
|
||||
enum __file_kinds { __closed_file, __disk_file, __console_file, __unavailable_file };
|
||||
enum __file_orientation { __unoriented, __char_oriented, __wide_oriented };
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "Dolphin/dsp.h"
|
||||
#include "Dolphin/os.h"
|
||||
#include "dolphin/dsp.h"
|
||||
#include "dolphin/os.h"
|
||||
|
||||
#include "Dolphin/dsp_regs.h"
|
||||
#include "dolphin/dsp_regs.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "Dolphin/__start.h"
|
||||
#include "dolphin/__start.h"
|
||||
|
||||
void __check_pad3(void) {
|
||||
if ((Pad3Button & 0x0eef) == 0x0eef) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "Kyoto/Basics/CStopwatch.hpp"
|
||||
|
||||
#include "Dolphin/os.h"
|
||||
#include "dolphin/os.h"
|
||||
|
||||
void CStopwatch::CSWData::Wait(f32 v) const {
|
||||
OSTime duration = OSSecondsToTicks(v);
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include "MetaRender/CCubeRenderer.hpp"
|
||||
#include "MetroidPrime/CActorLights.hpp"
|
||||
#include "MetroidPrime/CActorModelParticles.hpp"
|
||||
#include "MetroidPrime/CActorParameters.hpp"
|
||||
#include "MetroidPrime/CAnimData.hpp"
|
||||
#include "MetroidPrime/CGameArea.hpp"
|
||||
|
@ -15,8 +16,12 @@
|
|||
|
||||
#include "Kyoto/Audio/CAudioSys.hpp"
|
||||
#include "Kyoto/Audio/CSfxManager.hpp"
|
||||
#include "Kyoto/CTimeProvider.hpp"
|
||||
#include "Kyoto/Graphics/CGraphics.hpp"
|
||||
#include "Kyoto/Math/CFrustumPlanes.hpp"
|
||||
#include "Kyoto/Math/CMath.hpp"
|
||||
|
||||
#include "rstl/math.hpp"
|
||||
|
||||
static CMaterialList MakeActorMaterialList(const CMaterialList& in, const CActorParameters& params) {
|
||||
CMaterialList ret = in;
|
||||
|
@ -194,11 +199,6 @@ void CActor::CalculateRenderBounds() {
|
|||
|
||||
void CActor::SetModelData(const CModelData& modelData) { x64_modelData = modelData.IsNull() ? nullptr : new CModelData(modelData); }
|
||||
|
||||
// Unreferenced
|
||||
extern "C" {
|
||||
void sub_8005502c() {}
|
||||
}
|
||||
|
||||
// TODO nonmatching
|
||||
void CActor::PreRender(CStateManager& mgr, const CFrustumPlanes& planes) {
|
||||
if (HasModelData()) {
|
||||
|
@ -215,7 +215,8 @@ void CActor::PreRender(CStateManager& mgr, const CFrustumPlanes& planes) {
|
|||
lightsDirty = true;
|
||||
}
|
||||
|
||||
if (GetShadowDirty() && GetDrawShadow() && HasShadow()) {
|
||||
// TODO why doesn't GetDrawShadow() work?
|
||||
if (GetShadowDirty() && xe5_24_shadowEnabled && HasShadow()) {
|
||||
Shadow()->Calculate(GetModelData()->GetBounds(), GetTransform(), mgr);
|
||||
SetShadowDirty(false);
|
||||
}
|
||||
|
@ -225,13 +226,17 @@ void CActor::PreRender(CStateManager& mgr, const CFrustumPlanes& planes) {
|
|||
if (mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::kPV_Thermal) {
|
||||
ActorLights()->BuildConstantAmbientLighting();
|
||||
} else {
|
||||
if (lightsDirty) {
|
||||
if (lightsDirty == true) {
|
||||
if (x4_areaId != kInvalidAreaId) {
|
||||
TAreaId aid = x4_areaId;
|
||||
if (aid != kInvalidAreaId && mgr.GetWorld()->IsAreaValid(aid) &&
|
||||
ActorLights()->BuildAreaLightList(mgr, *mgr.GetWorld()->GetArea(aid), bounds)) {
|
||||
if (mgr.GetWorld()->IsAreaValid(aid)) {
|
||||
const CGameArea* area = mgr.GetWorld()->GetArea(aid);
|
||||
if (ActorLights()->BuildAreaLightList(mgr, *area, bounds)) {
|
||||
xe7_28_worldLightingDirty = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ActorLights()->BuildDynamicLightList(mgr, bounds);
|
||||
}
|
||||
}
|
||||
|
@ -244,7 +249,8 @@ void CActor::PreRender(CStateManager& mgr, const CFrustumPlanes& planes) {
|
|||
SetPreRenderHasMoved(false);
|
||||
SetShadowDirty(true);
|
||||
}
|
||||
if (GetShadowDirty() && GetDrawShadow() && HasShadow()) {
|
||||
// TODO why doesn't GetDrawShadow() work?
|
||||
if (GetShadowDirty() && xe5_24_shadowEnabled && HasShadow()) {
|
||||
if (planes.BoxInFrustumPlanes(GetShadow()->GetMaxShadowBox(GetModelData()->GetBounds(GetTransform()))) == true) {
|
||||
Shadow()->Calculate(GetModelData()->GetBounds(), GetTransform(), mgr);
|
||||
SetShadowDirty(false);
|
||||
|
@ -295,6 +301,77 @@ void CActor::EnsureRendered(const CStateManager& mgr) const {
|
|||
void CActor::DrawTouchBounds() const {}
|
||||
|
||||
bool CActor::CanRenderUnsorted(const CStateManager& mgr) const {
|
||||
// if (GetModelData()->IsNull() && )
|
||||
return false;
|
||||
bool result = HasAnimation();
|
||||
if (result && GetAnimationData()->GetParticleDB().AreAnySystemsDrawnWithModel() && GetRenderParticleDatabaseInside()) {
|
||||
result = false;
|
||||
} else {
|
||||
result = xe5_30_renderUnsorted || IsModelOpaque(mgr);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void CActor::Render(const CStateManager& mgr) const {
|
||||
if (GetModelData() && !NullModel()) {
|
||||
bool renderPrePostParticles = GetRenderParticleDatabaseInside() && HasAnimation();
|
||||
if (renderPrePostParticles) {
|
||||
x64_modelData->GetAnimationData()->GetParticleDB().RenderSystemsToBeDrawnFirst();
|
||||
}
|
||||
|
||||
if (xe7_27_enableRender) {
|
||||
if (xe5_31_pointGeneratorParticles) {
|
||||
mgr.SetupParticleHook(*this);
|
||||
}
|
||||
if (xe5_29_globalTimeProvider) {
|
||||
RenderInternal(mgr);
|
||||
} else {
|
||||
const f32 timeSince = CGraphics::GetSecondsMod900() - xbc_time;
|
||||
const f32 tpTime = CMath::FastFmod(timeSince, 900.f);
|
||||
CTimeProvider tp(tpTime);
|
||||
RenderInternal(mgr);
|
||||
}
|
||||
if (xe5_31_pointGeneratorParticles) {
|
||||
CSkinnedModel::ClearPointGeneratorFunc();
|
||||
mgr.GetActorModelParticles()->Render(mgr, *this);
|
||||
}
|
||||
}
|
||||
|
||||
if (renderPrePostParticles) {
|
||||
x64_modelData->GetAnimationData()->GetParticleDB().RenderSystemsToBeDrawnLast();
|
||||
}
|
||||
}
|
||||
DrawTouchBounds();
|
||||
}
|
||||
|
||||
void CActor::RenderInternal(const CStateManager& mgr) const {
|
||||
CModelData::EWhichModel which = CModelData::GetRenderingModel(mgr);
|
||||
if (which == CModelData::kWM_ThermalHot) {
|
||||
if (GetModelData()->GetSortThermal()) {
|
||||
u8 addMag;
|
||||
u8 mulMag = 255;
|
||||
if (xd0_damageMag <= 1.f) {
|
||||
mulMag = CCast::ToUint8(xd0_damageMag * 255.f);
|
||||
addMag = 0.f;
|
||||
} else if (xd0_damageMag < 2.f) {
|
||||
addMag = CCast::ToUint8((xd0_damageMag - 1.f) * 255.f);
|
||||
} else {
|
||||
addMag = 255;
|
||||
}
|
||||
|
||||
const u8 rgb = mulMag * xb4_drawFlags.GetColor().GetAlphau8();
|
||||
CColor mulColor(rgb, rgb, rgb, xb4_drawFlags.GetColor().GetAlphau8());
|
||||
CColor addColor(addMag, addMag, addMag, xb4_drawFlags.GetColor().GetAlphau8() / 4);
|
||||
GetModelData()->RenderThermal(x34_transform, mulColor, addColor, xb4_drawFlags);
|
||||
return;
|
||||
} else if (mgr.GetThermalColdScale2() > 0.0001f && xb4_drawFlags.GetTrans() == 0) {
|
||||
const f32 scale = rstl::min_val< f32 >((mgr.GetThermalColdScale2() + mgr.GetThermalColdScale1()) * mgr.GetThermalColdScale2(),
|
||||
mgr.GetThermalColdScale2());
|
||||
const f32 rgbf = CMath::Clamp(0.f, scale * 255.f, 255.f);
|
||||
const u8 rgb = CCast::ToUint8(rgbf);
|
||||
CColor color(rgb, rgb, rgb, 255);
|
||||
CModelFlags flags(xb4_drawFlags, CModelFlags::kT_Two, color);
|
||||
GetModelData()->Render(which, x34_transform, x90_actorLights.get(), flags);
|
||||
return;
|
||||
}
|
||||
}
|
||||
GetModelData()->Render(which, x34_transform, x90_actorLights.get(), xb4_drawFlags);
|
||||
};
|
|
@ -1,38 +1,60 @@
|
|||
#include "MetroidPrime/CMain.hpp"
|
||||
|
||||
#include "Dolphin/os.h"
|
||||
#include "Dolphin/OSCache.h"
|
||||
#include "Dolphin/PPCArch.h"
|
||||
#include "stdint.h"
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
|
||||
#include "dolphin/PPCArch.h"
|
||||
#include "dolphin/ar.h"
|
||||
#include "dolphin/arq.h"
|
||||
#include "dolphin/dvd.h"
|
||||
#include "dolphin/os.h"
|
||||
#include "dolphin/os/OSCache.h"
|
||||
#include "dolphin/os/OSMemory.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
#include "dolphin/pad.h"
|
||||
|
||||
#include "Kyoto/Alloc/CMemory.hpp"
|
||||
#include "Kyoto/Audio/CDSPStreamManager.hpp"
|
||||
#include "Kyoto/Audio/CSfxManager.hpp"
|
||||
#include "Kyoto/Audio/CStreamAudioManager.hpp"
|
||||
#include "Kyoto/Basics/CBasics.hpp"
|
||||
#include "Kyoto/CARAMManager.hpp"
|
||||
#include "Kyoto/CARAMToken.hpp"
|
||||
#include "Kyoto/CFrameDelayedKiller.hpp"
|
||||
#include "Kyoto/CMemoryCardSys.hpp"
|
||||
#include "Kyoto/CPakFile.hpp"
|
||||
#include "Kyoto/CResFactory.hpp"
|
||||
#include "Kyoto/CSimplePool.hpp"
|
||||
#include "Kyoto/Graphics/CGraphics.hpp"
|
||||
#include "Kyoto/Graphics/CTexture.hpp"
|
||||
#include "Kyoto/Particles/CElementGen.hpp"
|
||||
#include "Kyoto/Streams/CMemoryInStream.hpp"
|
||||
#include "Kyoto/Streams/CZipInputStream.hpp"
|
||||
#include "Kyoto/Text/CStringTable.hpp"
|
||||
#include "MetaRender/CCubeRenderer.hpp"
|
||||
#include "MetroidPrime/CAnimData.hpp"
|
||||
#include "MetroidPrime/CDecalManager.hpp"
|
||||
#include "MetroidPrime/CEnvFxManager.hpp"
|
||||
#include "MetroidPrime/CGameGlobalObjects.hpp"
|
||||
#include "MetroidPrime/CInGameTweakManager.hpp"
|
||||
#include "MetroidPrime/CMemoryCard.hpp"
|
||||
#include "MetroidPrime/CSplashScreen.hpp"
|
||||
#include "MetroidPrime/Factories/CCharacterFactoryBuilder.hpp"
|
||||
#include "MetroidPrime/Player/CGameOptions.hpp"
|
||||
#include "MetroidPrime/Player/CGameState.hpp"
|
||||
#include "MetroidPrime/Player/CPlayerState.hpp"
|
||||
#include "MetroidPrime/Player/CSystemOptions.hpp"
|
||||
#include "MetroidPrime/ScriptObjects/CScriptMazeNode.hpp"
|
||||
#include "MetroidPrime/Tweaks/CTweakGame.hpp"
|
||||
#include "MetroidPrime/Tweaks/CTweakPlayer.hpp"
|
||||
|
||||
extern "C" {
|
||||
// something pad
|
||||
void PADRecalibrate(u32);
|
||||
// something gx
|
||||
void sub_8036ccfc();
|
||||
// part of CMain but lazy
|
||||
void nullsub_2(CMain*);
|
||||
// RAssertDolphin
|
||||
void SetErrorHandlers();
|
||||
}
|
||||
|
||||
CResFactory* gpResourceFactory;
|
||||
|
@ -44,7 +66,7 @@ CStringTable* gpStringTable;
|
|||
CMain* gpMain;
|
||||
unkptr gpController;
|
||||
CGameState* gpGameState;
|
||||
CMemoryCardSys* gpMemoryCard;
|
||||
CMemoryCard* gpMemoryCard;
|
||||
CInGameTweakManager* gpTweakManager;
|
||||
unkptr gpDefaultFont;
|
||||
unkptr lbl_805A8C50;
|
||||
|
@ -52,9 +74,325 @@ unkptr lbl_805A8C54;
|
|||
bool lbl_805A8C58;
|
||||
u32 sARAMMemArray[2];
|
||||
|
||||
#define GRAPHICS_FIFO_SIZE 0x60000
|
||||
static u8 sGraphicsFifo[GRAPHICS_FIFO_SIZE];
|
||||
static u8 sMainSpace[sizeof(CMain)];
|
||||
|
||||
const char* s0 = "Misc_AGSC";
|
||||
const char* s1 = "MiscSamus_AGSC";
|
||||
const char* s2 = "UI_AGSC";
|
||||
const char* s3 = "Weapons_AGSC";
|
||||
const char* s4 = "ZZZ_AGSC";
|
||||
const char* s5 = "??(??)";
|
||||
const char* s6 = "";
|
||||
const char* s7 = "%d";
|
||||
const char* st8 = ".pak";
|
||||
const char* s9 = "AudioTweaks";
|
||||
const char* s10 = "Loaded audio tweaks from memory card\n";
|
||||
const char* s11 = "FAILED to load audio tweaks from memory card\n";
|
||||
const char* s12 = "aram:Tweaks";
|
||||
const char* s13 = "NoARAM";
|
||||
const char* s14 = "AudioGrp";
|
||||
const char* s15 = "aram:MiscData";
|
||||
const char* st16 = "aram:SamusGun";
|
||||
const char* s17 = "aram:TestAnim";
|
||||
const char* s18 = "aram:SamGunFx";
|
||||
const char* s19 = "aram:MidiData";
|
||||
const char* s20 = "aram:GGuiSys";
|
||||
const char* s21 = "sound_lookup";
|
||||
const char* s22 = "INFINITE LOOP";
|
||||
const char* s23 = "STRG_Main";
|
||||
const char* s24 = "Initializing renderer...\n";
|
||||
const char* s25 = "Stack usage: %d bytes (%dk)\n";
|
||||
const char* s26 = "Protecting stack... ";
|
||||
const char* s27 = "Stack: 0x%8.8x down to 0x%8.8x\n";
|
||||
const char* s28 = "Metaforce";
|
||||
|
||||
// sdata
|
||||
bool lbl_805A6BC0;
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
DVDSetAutoFatalMessaging(TRUE);
|
||||
SetErrorHandlers();
|
||||
CMain* main = reinterpret_cast< CMain* >(&sMainSpace);
|
||||
new (&sMainSpace) CMain();
|
||||
gpMain->RsMain(argc, argv);
|
||||
main->~CMain();
|
||||
return 0;
|
||||
}
|
||||
|
||||
CMain::CMain()
|
||||
: x0_osContext(true, true)
|
||||
, x6c_unk(this)
|
||||
, x6d_memorySys(InitOsContext(), CMemorySys::GetGameAllocator())
|
||||
, xe8_(0.0)
|
||||
, x118_(0.f)
|
||||
, x11c_(0.f)
|
||||
, x120_(0.f)
|
||||
, x124_(0.f)
|
||||
, x128_gameGlobalObjects(nullptr)
|
||||
, x12c_flowState(kFS_Default)
|
||||
, x130_frameTimes(0xF4240)
|
||||
, x15c_frameTimeIdx(0)
|
||||
, x160_24_finished(false)
|
||||
, x160_25_mfGameBuilt(false)
|
||||
, x160_26_screenFading(false)
|
||||
, x160_27_(false)
|
||||
, x160_28_manageCard(false)
|
||||
, x160_29_(false)
|
||||
, x160_30_(false)
|
||||
, x160_31_cardBusy(false)
|
||||
, x161_24_gameFrameDrawn(false)
|
||||
, x164_(nullptr) {
|
||||
gpMain = this;
|
||||
}
|
||||
|
||||
CMain::~CMain() {}
|
||||
|
||||
#define ALIGN_UP(x, a) (((x) + (a - 1)) & ~(a - 1))
|
||||
#define UNUSED_STACK_VAL 0x7337D00D
|
||||
|
||||
void CMain::InitializeSubsystems() {
|
||||
ARInit(sARAMMemArray, 2);
|
||||
ARAlloc(0x5fc000);
|
||||
CARAMManager::PreInitializeAlloc(0x5fc000);
|
||||
ARQInit();
|
||||
OSThread* thread = OSGetCurrentThread();
|
||||
printf("Protecting stack... ");
|
||||
u8* stackEnd = reinterpret_cast< u8* >(ALIGN_UP(reinterpret_cast< uintptr_t >(thread->stackEnd), 0x400));
|
||||
u8* stackBase = thread->stackBase;
|
||||
OSProtectRange(OS_PROTECT_CHAN3, stackEnd, 0x400, OS_PROTECT_CONTROL_NONE);
|
||||
|
||||
u8* end = stackBase - 0x2000;
|
||||
u8* ptr = stackEnd + 0x400;
|
||||
for (; ptr < end; ptr += 4) {
|
||||
*reinterpret_cast< int* >(ptr) = UNUSED_STACK_VAL;
|
||||
}
|
||||
|
||||
DCFlushRange(stackEnd + 0x400, static_cast< u32 >(end - (stackEnd + 0x400)));
|
||||
printf("Stack: 0x%8.8x down to 0x%8.8x\n", thread->stackBase, thread->stackEnd);
|
||||
CElementGen::Initialize();
|
||||
CAnimData::InitializeCache();
|
||||
CARAMManager::Initialize(0x800);
|
||||
CDecalManager::Initialize();
|
||||
CFrameDelayedKiller::Initialize();
|
||||
}
|
||||
|
||||
void CMain::ShutdownSubsystems() {
|
||||
CFrameDelayedKiller::ShutDown();
|
||||
CDecalManager::ShutDown();
|
||||
CElementGen::ShutDown();
|
||||
CAnimData::FreeCache();
|
||||
|
||||
OSThread* thread = OSGetCurrentThread();
|
||||
u8* stackEnd = reinterpret_cast< u8* >(ALIGN_UP(reinterpret_cast< uintptr_t >(thread->stackEnd), 0x400));
|
||||
u8* stackBase = thread->stackBase;
|
||||
|
||||
u8* ptr = stackEnd + 0x400;
|
||||
u8* end = stackBase - 0x2000;
|
||||
for (; ptr < end; ptr += 4) {
|
||||
if (*reinterpret_cast< u32* >(ptr) != UNUSED_STACK_VAL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
OSReport("Stack usage: %d bytes (%dk)\n", (int)(stackBase - ptr), ((u32)((int)stackBase - (int)ptr) / 1024));
|
||||
}
|
||||
|
||||
CGameGlobalObjects::CGameGlobalObjects(COsContext& osContext, CMemorySys& memorySys)
|
||||
: xcc_simplePool(x4_resFactory)
|
||||
, x130_graphicsSys(osContext, memorySys, GRAPHICS_FIFO_SIZE, sGraphicsFifo)
|
||||
, x134_gameState(new CGameState())
|
||||
, x138_(0)
|
||||
, x14c_renderer(0)
|
||||
, x150_inGameTweakManager(new CInGameTweakManager())
|
||||
, x154_defaultFont(LoadDefaultFont()) {
|
||||
gpResourceFactory = &x4_resFactory;
|
||||
gpSimplePool = &xcc_simplePool;
|
||||
gpCharacterFactoryBuilder = &xec_characterFactoryBuilder;
|
||||
gpGameState = x134_gameState.get();
|
||||
gpTweakManager = x150_inGameTweakManager.get();
|
||||
gpDefaultFont = &x154_defaultFont;
|
||||
}
|
||||
|
||||
const u8 sDefaultFontData[] = {
|
||||
0x78, 0xDA, 0x8D, 0x57, 0x5B, 0x6F, 0x54, 0x55, 0x14, 0x5E, 0xA5, 0x74, 0x3A, 0x9D, 0x96, 0x82, 0x18, 0x85, 0x48, 0xD2, 0x40, 0xB9,
|
||||
0x28, 0xD7, 0x52, 0x29, 0xA5, 0xB7, 0xD9, 0x5B, 0x6B, 0x69, 0xA1, 0x42, 0xB9, 0xB4, 0x94, 0x8A, 0xD0, 0xD2, 0x4E, 0xE7, 0xD6, 0x4E,
|
||||
0x67, 0xDA, 0xB9, 0x74, 0x68, 0x45, 0x99, 0x28, 0xF3, 0x40, 0xD4, 0xF0, 0x0B, 0x8C, 0x31, 0xC6, 0xF8, 0xA2, 0xF1, 0xC5, 0xC4, 0x18,
|
||||
0x35, 0xC6, 0xC4, 0x17, 0xE3, 0x83, 0x31, 0x4A, 0x7C, 0x21, 0x31, 0x26, 0x26, 0x86, 0xE8, 0xA3, 0xC6, 0x17, 0x93, 0xBA, 0xF7, 0xDA,
|
||||
0xDF, 0x39, 0x73, 0x66, 0x98, 0x72, 0xCE, 0x21, 0x3B, 0x1F, 0xFB, 0xCC, 0xB7, 0xBF, 0x59, 0x7B, 0xDD, 0xBA, 0x66, 0xF0, 0xDC, 0xC8,
|
||||
0x18, 0x11, 0x6D, 0x50, 0x6B, 0x8B, 0x5A, 0x9B, 0xD5, 0x6A, 0x52, 0xAB, 0x8E, 0xF4, 0x53, 0xAF, 0xD6, 0xA6, 0x81, 0x70, 0x64, 0x3A,
|
||||
0x14, 0x6E, 0x3F, 0xD6, 0x4F, 0xD7, 0xC3, 0x45, 0x49, 0xE6, 0x99, 0xA2, 0x9D, 0xE2, 0x4D, 0x22, 0x39, 0x42, 0x24, 0xEE, 0x2A, 0x1C,
|
||||
0x27, 0xEB, 0xA9, 0xC1, 0xE9, 0x1A, 0x2C, 0xFD, 0x14, 0x69, 0x97, 0xF8, 0x4D, 0xB1, 0x0E, 0x28, 0xF6, 0x03, 0x85, 0x93, 0x36, 0xB3,
|
||||
0x56, 0xAD, 0x66, 0x60, 0x13, 0x56, 0x91, 0x5A, 0x65, 0x43, 0x81, 0xD9, 0x72, 0xAB, 0xC2, 0x1E, 0x5B, 0xDB, 0xEF, 0xC0, 0x5A, 0x9B,
|
||||
0xBD, 0xBB, 0x57, 0x81, 0xF8, 0x9D, 0x28, 0x38, 0xA1, 0x4E, 0xB4, 0xD8, 0xEC, 0x46, 0x7C, 0x87, 0x66, 0x05, 0xB0, 0x2F, 0xD2, 0x1E,
|
||||
0x39, 0xA9, 0x34, 0x5B, 0x15, 0x33, 0x52, 0x60, 0xFB, 0xC1, 0xAA, 0x87, 0x17, 0xEA, 0xC1, 0x0E, 0x30, 0x7B, 0xAF, 0xE8, 0x37, 0xDA,
|
||||
0x22, 0x49, 0x7C, 0x0A, 0x4F, 0xC0, 0x81, 0x8D, 0xB6, 0xF6, 0x3E, 0x79, 0x09, 0xDA, 0xD7, 0x3C, 0x68, 0x3F, 0x2D, 0x6B, 0x14, 0x6B,
|
||||
0x58, 0xB1, 0x7D, 0x0A, 0xAF, 0xD8, 0xDA, 0x1B, 0x1D, 0x68, 0xDD, 0x92, 0xE8, 0x19, 0x79, 0x08, 0xDA, 0xC7, 0x0A, 0x96, 0x07, 0xC9,
|
||||
0xE1, 0x6B, 0x1F, 0x3C, 0x69, 0x7C, 0xB2, 0x5F, 0x06, 0xC1, 0x1E, 0xF0, 0xC0, 0x3E, 0xC0, 0x96, 0x68, 0x7F, 0xFB, 0x15, 0xF6, 0xDB,
|
||||
0x6C, 0x9F, 0x83, 0x5D, 0x67, 0xB3, 0x0F, 0x8A, 0x4F, 0x14, 0x73, 0x9F, 0xF2, 0xC9, 0xD7, 0x64, 0xB1, 0xAD, 0xDB, 0x35, 0x00, 0x7D,
|
||||
0x88, 0x52, 0x91, 0x0E, 0x71, 0x2C, 0x85, 0x62, 0x36, 0x17, 0xAC, 0x3C, 0xA9, 0xC1, 0xED, 0x2C, 0xAC, 0xC3, 0x4D, 0x8B, 0x74, 0x98,
|
||||
0xFD, 0xAC, 0x7C, 0x22, 0xEE, 0x90, 0x93, 0x5D, 0x0F, 0xF4, 0xE3, 0xBB, 0x7C, 0xCC, 0x3E, 0xC2, 0x96, 0x68, 0xF6, 0xE7, 0x64, 0x79,
|
||||
0xB0, 0x52, 0xBB, 0xD6, 0xD6, 0x6E, 0x13, 0x5B, 0x11, 0x4B, 0x51, 0x16, 0xCB, 0x06, 0xB0, 0xAD, 0x58, 0x9A, 0x5B, 0x1E, 0xE5, 0xAC,
|
||||
0x8A, 0xA9, 0xAC, 0xEA, 0x52, 0x78, 0xBF, 0x2C, 0xF2, 0x16, 0xBB, 0x94, 0xB1, 0xED, 0xF2, 0x2C, 0xFC, 0x3D, 0x56, 0x76, 0x4B, 0xA7,
|
||||
0x07, 0x2D, 0x76, 0x0D, 0x3D, 0x1B, 0x3C, 0x05, 0xED, 0x2F, 0x3D, 0x68, 0x1F, 0x13, 0x11, 0xC3, 0xD6, 0x3E, 0x71, 0x65, 0x77, 0xE8,
|
||||
0xBA, 0x64, 0xF6, 0x7B, 0x1E, 0xD8, 0xC7, 0xC5, 0xFB, 0x8A, 0x75, 0xC3, 0x78, 0x50, 0xFB, 0xE6, 0x91, 0xEC, 0x4E, 0xF1, 0x05, 0xD8,
|
||||
0x3F, 0x7A, 0x60, 0x9F, 0x10, 0x3F, 0x81, 0xFD, 0xC0, 0x03, 0xBB, 0x4B, 0x52, 0x81, 0xFA, 0xD4, 0x7F, 0x65, 0x63, 0x81, 0xC4, 0x84,
|
||||
0x0B, 0xBB, 0x5B, 0x36, 0x81, 0xBD, 0xCD, 0x03, 0xBB, 0x47, 0xFC, 0x6B, 0xBA, 0x8F, 0xFE, 0x0E, 0xD4, 0x25, 0x55, 0xE4, 0x89, 0xDF,
|
||||
0xAE, 0xCB, 0x5E, 0xF1, 0x27, 0x7A, 0xD5, 0x3F, 0x0A, 0x2F, 0x56, 0x65, 0x37, 0xD8, 0xEC, 0x3E, 0xF1, 0x2E, 0xAA, 0xE1, 0x63, 0x93,
|
||||
0x8B, 0x55, 0x6A, 0xA7, 0xA4, 0x1D, 0xE4, 0xFC, 0xD6, 0xDA, 0x45, 0x85, 0x83, 0x55, 0xD9, 0x3E, 0xE8, 0x17, 0x55, 0xA2, 0xDE, 0x85,
|
||||
0xF6, 0x3B, 0x1E, 0xB4, 0xA5, 0xCE, 0x2A, 0x9D, 0x83, 0xC1, 0x8F, 0xCA, 0x6A, 0xC7, 0xEF, 0xC0, 0x92, 0x4F, 0x9E, 0x93, 0x51, 0x64,
|
||||
0x6C, 0xCA, 0x43, 0xAF, 0x7A, 0x5E, 0x6E, 0x87, 0xBF, 0x77, 0x7B, 0xF0, 0x77, 0xBF, 0xDC, 0x03, 0x76, 0x9B, 0x2B, 0xBB, 0x9E, 0x5E,
|
||||
0xE0, 0x88, 0xAB, 0xFC, 0x90, 0x4F, 0x14, 0xF8, 0xB6, 0x60, 0x35, 0x38, 0xB0, 0xA4, 0x3D, 0x20, 0x8F, 0x42, 0xBB, 0xD7, 0x83, 0x25,
|
||||
0x27, 0x65, 0x1F, 0xD8, 0x43, 0x36, 0xBB, 0xA6, 0xA2, 0x7F, 0x97, 0xD8, 0x83, 0xF2, 0x49, 0x58, 0xB2, 0xD3, 0xB6, 0x84, 0xD6, 0xB5,
|
||||
0x64, 0x48, 0x9E, 0x82, 0xF6, 0xA8, 0x07, 0x4B, 0x4E, 0xE9, 0xCE, 0xC0, 0xEC, 0x29, 0x0F, 0xEC, 0xD3, 0xE2, 0x17, 0x44, 0xFE, 0xD7,
|
||||
0xB2, 0xCE, 0x56, 0xEB, 0x40, 0x8B, 0xED, 0xA7, 0x61, 0x79, 0x1D, 0xDA, 0xF3, 0x1E, 0x6E, 0xF9, 0xA2, 0x48, 0xA3, 0x0F, 0xBE, 0x4D,
|
||||
0xEE, 0xFE, 0x3E, 0xA3, 0xAB, 0x81, 0xD9, 0x6B, 0x65, 0x6C, 0x7F, 0x55, 0xF6, 0x59, 0xDD, 0x35, 0xB5, 0x25, 0xC1, 0xDB, 0xE4, 0xB4,
|
||||
0x64, 0xB3, 0x03, 0x2D, 0x76, 0x03, 0x8D, 0xC8, 0x04, 0xEC, 0xCE, 0x7B, 0xF0, 0xC9, 0x39, 0x5D, 0xBD, 0xBA, 0xB3, 0x71, 0xBE, 0xDC,
|
||||
0x77, 0xB9, 0xE5, 0x79, 0xDD, 0x21, 0x98, 0xBD, 0xAD, 0xE0, 0xD6, 0x07, 0x03, 0x74, 0x41, 0xA8, 0x29, 0x43, 0xE8, 0xAE, 0x3C, 0x43,
|
||||
0x4E, 0x6D, 0xA7, 0x4F, 0x4A, 0x7F, 0x2F, 0x2F, 0xEA, 0x6A, 0x60, 0xED, 0xDD, 0xAE, 0xDA, 0x8D, 0x34, 0xAA, 0xAB, 0x81, 0xD9, 0x6D,
|
||||
0xAE, 0xEC, 0x26, 0x1A, 0xD3, 0x9D, 0x41, 0xFB, 0x44, 0xD7, 0x7C, 0x15, 0x9F, 0x34, 0x3A, 0xD8, 0xCD, 0x74, 0x49, 0x57, 0x03, 0x6B,
|
||||
0xF7, 0x16, 0xDC, 0xBB, 0xFD, 0xB8, 0xAE, 0x06, 0x66, 0x0F, 0x79, 0x60, 0x5F, 0x0E, 0xBE, 0x05, 0x4B, 0x7C, 0xAE, 0xB1, 0xDC, 0x42,
|
||||
0x13, 0xBA, 0x1A, 0x58, 0x7B, 0xD4, 0x83, 0xF6, 0x4B, 0x1C, 0x4B, 0x5D, 0x69, 0x01, 0x0F, 0x35, 0x7F, 0x45, 0xF7, 0x58, 0xB6, 0xE4,
|
||||
0x33, 0xAA, 0x96, 0xDF, 0x8D, 0x65, 0xEC, 0x97, 0xF9, 0xEF, 0xBB, 0xAE, 0x1D, 0xD5, 0xBB, 0xE5, 0x4C, 0xD5, 0xA9, 0xA0, 0x14, 0xCB,
|
||||
0xAB, 0x72, 0x17, 0xFA, 0xE0, 0xC1, 0xB2, 0x3E, 0xE8, 0xCC, 0xEF, 0xD2, 0xF4, 0x78, 0x4D, 0x2E, 0x82, 0xBD, 0x5C, 0x70, 0xCE, 0xB1,
|
||||
0x1B, 0x1D, 0x93, 0x6F, 0x49, 0x7B, 0x52, 0x3E, 0x8E, 0xB9, 0x6A, 0x47, 0xD9, 0x1C, 0x5B, 0xE7, 0xE8, 0xB5, 0xA5, 0x39, 0x76, 0x4A,
|
||||
0x6E, 0xC6, 0xA4, 0xF4, 0x54, 0xC1, 0xEA, 0xF6, 0x95, 0xF9, 0xBD, 0x01, 0xAB, 0x48, 0xD7, 0x59, 0x73, 0x18, 0xBD, 0xAA, 0x34, 0x7F,
|
||||
0xD7, 0x3A, 0x2C, 0xDA, 0x60, 0x6B, 0x4F, 0xEB, 0x5B, 0xB2, 0xBF, 0xF5, 0x14, 0xD9, 0x52, 0x35, 0x3A, 0xD6, 0x7A, 0x8C, 0x66, 0x74,
|
||||
0xAF, 0xE2, 0x58, 0x4E, 0xB9, 0xC6, 0x72, 0x3B, 0x85, 0xE4, 0x61, 0x68, 0x77, 0xD9, 0xDA, 0x95, 0x76, 0x5B, 0x6B, 0x07, 0xCD, 0xEA,
|
||||
0x5E, 0xC5, 0xDA, 0xF3, 0xAE, 0x55, 0xBC, 0x97, 0xC2, 0xB2, 0x1B, 0xDA, 0x03, 0xAE, 0xDA, 0xFB, 0x29, 0x22, 0x4F, 0x22, 0x3A, 0x67,
|
||||
0x5C, 0xA7, 0xB0, 0xA3, 0x14, 0xD5, 0x33, 0x0F, 0x67, 0xD5, 0x0F, 0x66, 0x62, 0xAA, 0xA2, 0xBD, 0x09, 0xD8, 0x41, 0x31, 0xDD, 0xAB,
|
||||
0xD8, 0xEE, 0xBC, 0xAB, 0x4F, 0x7A, 0x29, 0x2E, 0xBE, 0x47, 0x0E, 0xDE, 0x5B, 0x77, 0x86, 0xB0, 0xEC, 0x96, 0x34, 0x27, 0x5A, 0xC1,
|
||||
0xEE, 0xA1, 0x6A, 0xD3, 0x7A, 0x9D, 0xC3, 0x92, 0x93, 0x34, 0x1F, 0xFC, 0xD6, 0xF4, 0x28, 0xD1, 0xFC, 0xD0, 0x6F, 0x92, 0x4A, 0x4B,
|
||||
0x06, 0x29, 0x21, 0xC6, 0xA1, 0x3D, 0x47, 0x95, 0xBF, 0x32, 0x2C, 0x4B, 0x2C, 0xF6, 0x10, 0x2D, 0x88, 0x00, 0x7C, 0xA2, 0x66, 0x13,
|
||||
0xD1, 0x65, 0xB3, 0x9B, 0xC1, 0x6E, 0x76, 0xD8, 0x3D, 0x42, 0x49, 0xED, 0x6F, 0x8E, 0xCE, 0x79, 0xD7, 0xAC, 0xBA, 0x40, 0x29, 0x79,
|
||||
0x01, 0xEC, 0xAB, 0xAE, 0xEC, 0x09, 0x5A, 0xD4, 0x33, 0x26, 0x5B, 0xF2, 0x87, 0x1D, 0x9D, 0x4A, 0xB6, 0xE5, 0x93, 0x59, 0x5A, 0xD2,
|
||||
0x33, 0x26, 0xB3, 0xD7, 0x5C, 0x63, 0x19, 0xA5, 0xB4, 0xFE, 0x7D, 0xC6, 0x96, 0xC4, 0x1E, 0xB2, 0xA4, 0x32, 0xAB, 0x62, 0x94, 0x91,
|
||||
0x71, 0xB0, 0xB3, 0xAE, 0x76, 0x2F, 0x50, 0x56, 0x76, 0x20, 0x07, 0xFB, 0xAA, 0xE6, 0x60, 0xBD, 0xC3, 0xDF, 0x69, 0xCA, 0xE9, 0x09,
|
||||
0x4F, 0xFC, 0xA5, 0xD6, 0x07, 0xEB, 0xC6, 0xD2, 0x5A, 0x39, 0x5A, 0x16, 0x1F, 0x82, 0xFD, 0x95, 0x2B, 0xFB, 0x26, 0xE5, 0xC5, 0x30,
|
||||
0x7C, 0xF2, 0x86, 0x1D, 0x4B, 0x2B, 0x86, 0x54, 0x11, 0xCB, 0x5B, 0x74, 0x43, 0xFF, 0x9A, 0x63, 0xED, 0x7B, 0xAE, 0xDA, 0x45, 0x5A,
|
||||
0xD1, 0x79, 0xC2, 0x7F, 0x2F, 0x3B, 0xD5, 0xFA, 0xF9, 0x91, 0xD1, 0x79, 0x9D, 0x56, 0xF5, 0x54, 0xC0, 0x93, 0x69, 0x17, 0x39, 0x7B,
|
||||
0x6C, 0x35, 0x7F, 0xDF, 0xA6, 0x57, 0x74, 0x85, 0xB1, 0x07, 0x6F, 0x79, 0x98, 0x4C, 0x6F, 0x8A, 0x6F, 0x90, 0xDF, 0xDF, 0xD9, 0xDD,
|
||||
0x9E, 0x2A, 0x26, 0xA5, 0x52, 0x47, 0x7E, 0x35, 0xF8, 0xA9, 0x61, 0x07, 0xFF, 0xB6, 0xEB, 0x72, 0x7D, 0xED, 0xD7, 0x82, 0xFF, 0x41,
|
||||
0xBB, 0xC5, 0x03, 0x9B, 0x7F, 0xD3, 0xD3, 0x11, 0x66, 0xB5, 0xAB, 0xFE, 0x62, 0xB0, 0x63, 0x4D, 0x3D, 0x0A, 0x8F, 0x63, 0xDF, 0x09,
|
||||
0x3C, 0x81, 0xF7, 0xDD, 0xBC, 0xEF, 0xA7, 0x30, 0xEF, 0x4F, 0x53, 0x88, 0xF7, 0x67, 0x29, 0xCC, 0x78, 0x9E, 0x4C, 0x2E, 0x5F, 0xC4,
|
||||
0xE7, 0xA3, 0x14, 0x02, 0x9A, 0xFD, 0x18, 0x4D, 0x03, 0xCD, 0xFE, 0x32, 0x70, 0x1A, 0xBC, 0x69, 0x9A, 0x05, 0x46, 0x81, 0x19, 0xD6,
|
||||
0x9B, 0xA6, 0x2C, 0xF6, 0x79, 0xE0, 0x2A, 0xE3, 0x0C, 0xCE, 0xCF, 0xD0, 0x1C, 0x30, 0xC5, 0x18, 0x82, 0x3D, 0x21, 0xD8, 0x13, 0xA2,
|
||||
0x79, 0x60, 0x02, 0x98, 0x02, 0x2E, 0x01, 0xD3, 0xC0, 0x2C, 0x30, 0x07, 0x5C, 0x61, 0x9C, 0xA5, 0x38, 0xFB, 0x72, 0x16, 0xE7, 0x67,
|
||||
0x29, 0x09, 0x34, 0xF6, 0x85, 0xF1, 0x7D, 0x61, 0xD8, 0x11, 0x06, 0x2F, 0xAC, 0x2A, 0xCC, 0x60, 0x16, 0xB8, 0x02, 0x5C, 0x65, 0x8C,
|
||||
0xC0, 0x1F, 0x11, 0xDC, 0x23, 0xA2, 0xFE, 0x99, 0xF7, 0x71, 0xC6, 0x28, 0xEC, 0x8F, 0xDA, 0xFB, 0x04, 0x30, 0x09, 0x4C, 0x01, 0x73,
|
||||
0x40, 0xA3, 0x1F, 0x53, 0x1E, 0x32, 0x68, 0x74, 0x63, 0x38, 0x1F, 0x83, 0x1D, 0x71, 0xF8, 0x3B, 0xAE, 0x6E, 0x60, 0xF6, 0x61, 0x60,
|
||||
0x04, 0x18, 0x05, 0x1A, 0x3F, 0xCF, 0xE1, 0xF3, 0x79, 0xE8, 0x25, 0xA0, 0x9F, 0x40, 0xBC, 0x12, 0xF6, 0xFB, 0x08, 0xDE, 0xC7, 0x81,
|
||||
0x59, 0xBC, 0xCF, 0xF3, 0x7E, 0x01, 0xE7, 0x16, 0xC0, 0x5F, 0xA0, 0x45, 0xDE, 0x27, 0xF1, 0x3E, 0x09, 0xBB, 0x92, 0xD0, 0x4D, 0x82,
|
||||
0x97, 0x84, 0x6E, 0x12, 0x79, 0x91, 0x84, 0x6E, 0x0A, 0xE7, 0x52, 0x38, 0x97, 0xC2, 0xB9, 0x14, 0xCE, 0xA5, 0x28, 0x02, 0x8C, 0x02,
|
||||
0xE7, 0x80, 0x09, 0x9C, 0xCB, 0x00, 0x2D, 0xBD, 0x3C, 0xD0, 0xDC, 0x7B, 0x11, 0xFA, 0x8B, 0xD0, 0x5B, 0x04, 0x6F, 0x09, 0xFE, 0x4E,
|
||||
0xE3, 0xF3, 0x34, 0xEA, 0x20, 0x0D, 0x3F, 0xA5, 0x71, 0xFF, 0x34, 0xF4, 0x33, 0xB0, 0x2F, 0x03, 0x9D, 0x8C, 0xFD, 0x3E, 0x8B, 0xBD,
|
||||
0xF1, 0x4F, 0x16, 0x7A, 0x59, 0xE8, 0x65, 0xC1, 0xCF, 0xE1, 0x7C, 0x0E, 0xF7, 0xCB, 0xD9, 0xEF, 0xA3, 0x40, 0x73, 0x9F, 0x1C, 0x65,
|
||||
0xB0, 0x37, 0x71, 0x5E, 0x86, 0xDE, 0x32, 0xF8, 0xCB, 0xB0, 0x2B, 0x8F, 0xF7, 0x79, 0xE4, 0x57, 0x1E, 0xEF, 0x57, 0xF0, 0xBD, 0x2B,
|
||||
0xB8, 0xC7, 0xAA, 0xC1, 0xFF, 0x01, 0xCB, 0xC9, 0xBA, 0xB0,
|
||||
};
|
||||
const u8 sDefaultFontTexture[] = {
|
||||
0x78, 0xDA, 0xED, 0x59, 0xDB, 0x92, 0x14, 0x31, 0x08, 0x05, 0xCB, 0x07, 0x1F, 0xC3, 0x1F, 0xF9, 0xAB, 0x7E, 0xA9, 0x4E, 0x37, 0x77,
|
||||
0x02, 0xE9, 0x99, 0xD2, 0x37, 0xB7, 0xB7, 0x70, 0xA7, 0x77, 0x12, 0x42, 0x08, 0x07, 0x0E, 0x11, 0x00, 0xBE, 0x23, 0xC0, 0x4F, 0x00,
|
||||
0x78, 0xFD, 0x82, 0x6F, 0xAF, 0x7F, 0x17, 0xC0, 0xEF, 0xDF, 0xBF, 0x7E, 0xC0, 0xF9, 0x21, 0x22, 0xBC, 0x05, 0xB0, 0x8A, 0x7C, 0xBD,
|
||||
0xE8, 0x7A, 0x00, 0x37, 0xE1, 0xF9, 0x6B, 0x16, 0xFE, 0x9A, 0x26, 0xB9, 0xBE, 0xBF, 0x3F, 0xE2, 0x2D, 0x50, 0x45, 0xD6, 0xE7, 0x67,
|
||||
0x98, 0x0F, 0xCD, 0xBC, 0x34, 0xFF, 0x69, 0x7D, 0x94, 0xF5, 0x9B, 0x1D, 0xF0, 0xFA, 0x3C, 0x78, 0xDD, 0xB6, 0x66, 0xE1, 0xE5, 0xD9,
|
||||
0x7F, 0xE2, 0x77, 0xBA, 0x0D, 0x82, 0xEB, 0x9D, 0x1D, 0xC0, 0x2F, 0xEC, 0xAF, 0x25, 0x02, 0x26, 0xF7, 0xFE, 0x6E, 0x1F, 0x4F, 0x0E,
|
||||
0x44, 0x3F, 0x1F, 0xA8, 0x62, 0xFA, 0x6D, 0x13, 0x59, 0xC2, 0xF9, 0xAD, 0xB0, 0xBC, 0xCB, 0xA8, 0xDF, 0xF6, 0x24, 0xFE, 0xEB, 0xF4,
|
||||
0xC3, 0x68, 0xBF, 0xAD, 0x99, 0xE3, 0x0B, 0xEA, 0x1A, 0x6C, 0x3F, 0xBE, 0x67, 0xFF, 0xA0, 0xFF, 0xD9, 0x3F, 0xEF, 0xEA, 0x8F, 0x90,
|
||||
0xE0, 0x33, 0x3F, 0xD8, 0x7F, 0xBD, 0x27, 0xFB, 0xD3, 0xCE, 0x82, 0xFE, 0xEE, 0x5C, 0xCB, 0x9A, 0x78, 0x90, 0x83, 0xFF, 0xDF, 0x8B,
|
||||
0x9F, 0xD3, 0x33, 0x61, 0xDE, 0x80, 0x37, 0x61, 0x5E, 0xF6, 0x9D, 0x97, 0x93, 0x21, 0x3E, 0x3D, 0x63, 0x4F, 0x9E, 0xB8, 0x7E, 0xC2,
|
||||
0x6B, 0x30, 0xCA, 0x9C, 0x5C, 0xB1, 0xEE, 0xEE, 0xC4, 0x4B, 0x64, 0xEE, 0x3D, 0x24, 0xAC, 0xEB, 0xF9, 0x6A, 0x58, 0xD7, 0x06, 0x3A,
|
||||
0xCE, 0xA3, 0x58, 0xDE, 0x98, 0x30, 0xCF, 0x79, 0x0B, 0x49, 0xA1, 0xCE, 0x70, 0xE2, 0x83, 0xD8, 0x3C, 0xCC, 0x3E, 0xD3, 0xC5, 0xD2,
|
||||
0x1A, 0x39, 0x16, 0xEC, 0x73, 0x99, 0xBD, 0xC7, 0x9F, 0xCF, 0x96, 0x58, 0x48, 0x3A, 0xD3, 0xF2, 0xAB, 0xC5, 0xFF, 0xEE, 0xEA, 0x84,
|
||||
0x79, 0x3B, 0xFF, 0x14, 0x4D, 0x31, 0xA6, 0xE5, 0xFC, 0xF7, 0x98, 0x8E, 0xD3, 0xA1, 0xC3, 0x25, 0x84, 0xBC, 0x39, 0xC5, 0xB4, 0xE6,
|
||||
0xB5, 0x67, 0xFD, 0xB3, 0xFD, 0x6C, 0x5D, 0xD1, 0x1F, 0xE3, 0x77, 0x21, 0xD5, 0x70, 0xC8, 0x79, 0x60, 0x43, 0x75, 0x3A, 0xDF, 0xF7,
|
||||
0xF4, 0x3F, 0x60, 0x72, 0x45, 0xEC, 0xED, 0xF1, 0x53, 0x75, 0x7F, 0xAC, 0xFF, 0x11, 0xFF, 0x7D, 0xDE, 0x54, 0x69, 0x0A, 0x63, 0xDE,
|
||||
0x6F, 0x9F, 0x97, 0x3F, 0x31, 0xA0, 0x13, 0xA9, 0x9F, 0x60, 0x38, 0x8F, 0xA2, 0x8B, 0xB3, 0x03, 0x90, 0x46, 0xE9, 0xF0, 0x88, 0x35,
|
||||
0x47, 0x71, 0x1E, 0x57, 0x91, 0x19, 0xFA, 0x0E, 0x5D, 0xD1, 0xF4, 0x7C, 0x12, 0x67, 0x94, 0x3C, 0xE8, 0xB5, 0x13, 0x03, 0xE6, 0xC9,
|
||||
0x4A, 0x8B, 0xAD, 0xC7, 0x3E, 0x8B, 0xF9, 0x45, 0xF3, 0xD7, 0x8A, 0xFA, 0x27, 0xEA, 0xB6, 0xD8, 0x53, 0xD3, 0xF9, 0xFD, 0x9B, 0xF3,
|
||||
0x3F, 0x08, 0x8D, 0xB5, 0x6D, 0xD0, 0x9F, 0x73, 0x59, 0x87, 0x1F, 0x2D, 0xBD, 0xEA, 0xCA, 0x82, 0xD1, 0x54, 0xEB, 0x4E, 0xB6, 0xBF,
|
||||
0x63, 0xFF, 0x89, 0xBC, 0xBE, 0xBE, 0x0E, 0xFA, 0xAF, 0x78, 0x0B, 0xE1, 0x75, 0xEF, 0x81, 0x47, 0xA8, 0x28, 0xAF, 0x5B, 0xA5, 0x56,
|
||||
0x76, 0xFC, 0x25, 0x13, 0xE4, 0x99, 0xBF, 0x3C, 0xDB, 0xFF, 0xD7, 0xF5, 0x7F, 0xAF, 0x5B, 0x48, 0xA8, 0xE7, 0xD4, 0xE6, 0x35, 0x10,
|
||||
0x76, 0x4B, 0x53, 0xDE, 0x7C, 0x84, 0x3B, 0x3A, 0x7F, 0x8A, 0x9A, 0x62, 0x5A, 0x54, 0x2C, 0x2C, 0x68, 0xA3, 0x5F, 0xEA, 0x2E, 0x77,
|
||||
0x05, 0x79, 0xAB, 0xD7, 0xA1, 0x5C, 0x65, 0xEF, 0x92, 0x18, 0x34, 0xB1, 0x6E, 0x69, 0xC5, 0xCE, 0x4C, 0x1D, 0x76, 0xBA, 0x36, 0xA0,
|
||||
0x49, 0x93, 0x41, 0x0D, 0x4C, 0x5F, 0xE3, 0x5A, 0xFC, 0x3E, 0x21, 0xCF, 0x2B, 0x71, 0xBC, 0xA8, 0x2C, 0x39, 0x65, 0x8D, 0xFA, 0x2B,
|
||||
0xEE, 0x45, 0x06, 0xBC, 0x6F, 0x5C, 0xA6, 0xF3, 0xED, 0x82, 0xB1, 0xAE, 0x59, 0x4D, 0xEA, 0xCF, 0x1F, 0x43, 0xD2, 0xEB, 0xDA, 0x49,
|
||||
0x2E, 0x12, 0x97, 0xAA, 0x96, 0xB3, 0x04, 0x42, 0xD6, 0xF1, 0x8A, 0x9C, 0xA3, 0x9B, 0xBA, 0xCF, 0x00, 0xB3, 0x1C, 0x5D, 0xED, 0x8F,
|
||||
0xCE, 0x94, 0x5C, 0x92, 0x0F, 0x2F, 0x98, 0xAF, 0x07, 0x93, 0xAB, 0x3E, 0xE7, 0x6C, 0xD7, 0xBF, 0xD9, 0x6F, 0xF9, 0xB9, 0xE3, 0x2D,
|
||||
0xD9, 0x3D, 0xAD, 0xFD, 0xF4, 0x60, 0xFF, 0x47, 0xFA, 0x2B, 0xD6, 0x3F, 0x62, 0x01, 0x2F, 0x08, 0xA8, 0x18, 0x7F, 0xD2, 0xBF, 0x95,
|
||||
0x40, 0x52, 0xA4, 0x8E, 0x81, 0xD5, 0xC3, 0x54, 0xF6, 0xD9, 0xE7, 0x38, 0xC3, 0xB9, 0xEF, 0x42, 0x0B, 0x2D, 0x73, 0xFE, 0xD0, 0x31,
|
||||
0x47, 0xB2, 0xEE, 0x5C, 0xDC, 0x33, 0xA5, 0x42, 0xFA, 0x35, 0x93, 0xB9, 0x82, 0x72, 0xF4, 0xA6, 0x2F, 0xB3, 0xCC, 0x6E, 0xA4, 0x46,
|
||||
0x8E, 0xA0, 0x36, 0x79, 0x7D, 0xD7, 0x7C, 0x03, 0x16, 0x99, 0x60, 0xAC, 0x22, 0x1A, 0xBC, 0x97, 0x66, 0xDC, 0x13, 0x3A, 0x59, 0x4E,
|
||||
0x23, 0x8B, 0x05, 0xB2, 0x3A, 0x6F, 0xAC, 0xC5, 0xB7, 0x9D, 0x7C, 0xBD, 0x76, 0x70, 0xD3, 0x49, 0xBA, 0xFE, 0x25, 0xF2, 0x8C, 0xDC,
|
||||
0xFB, 0xA9, 0x13, 0x42, 0x2D, 0x2F, 0xB2, 0x0A, 0xD1, 0x39, 0xF5, 0xAE, 0x1A, 0xB4, 0x1E, 0x3F, 0x82, 0x85, 0x9A, 0x9C, 0xB0, 0x72,
|
||||
0x28, 0xC7, 0x7F, 0xC3, 0xC9, 0xF4, 0x1D, 0x61, 0xDE, 0x97, 0xF7, 0x7B, 0x91, 0x8F, 0x4D, 0xFA, 0xBD, 0xBF, 0xA4, 0xD0, 0xFA, 0x93,
|
||||
0xC6, 0xCF, 0x24, 0xF3, 0xDD, 0x57, 0xD6, 0x8F, 0x1D, 0xC7, 0x4C, 0xFA, 0x61, 0xBC, 0x5B, 0xEA, 0xFA, 0xEA, 0xAD, 0xD6, 0x14, 0x0E,
|
||||
0xB8, 0xD5, 0xB3, 0xB7, 0x38, 0x20, 0x51, 0xBA, 0xBB, 0x42, 0x2F, 0xBC, 0xF5, 0xFE, 0xAA, 0xDC, 0x59, 0x48, 0x5E, 0xA8, 0xFC, 0x9C,
|
||||
0xCD, 0xA9, 0x26, 0x57, 0x67, 0xD4, 0xDE, 0xAB, 0xFE, 0x3C, 0xF4, 0x09, 0x10, 0x79, 0x3C, 0x51, 0x77, 0xBF, 0x27, 0x1C, 0x89, 0x6B,
|
||||
0xB2, 0x39, 0x4E, 0xDF, 0xBB, 0xA2, 0x19, 0xDF, 0x6D, 0x79, 0xF3, 0x71, 0x4E, 0x54, 0x75, 0x80, 0xBA, 0xCD, 0xC6, 0x96, 0xA4, 0x6C,
|
||||
0x5C, 0x69, 0xE3, 0x2C, 0x7B, 0x9C, 0xE8, 0xFD, 0x52, 0xE4, 0x13, 0x55, 0x32, 0x8C, 0xF6, 0x9A, 0x95, 0x38, 0x85, 0xEC, 0x7F, 0xEF,
|
||||
0x20, 0x4A, 0x65, 0x42, 0xF9, 0xCD, 0x29, 0x6C, 0x8F, 0x3B, 0xE5, 0x55, 0x00, 0x5A, 0xE7, 0x23, 0xAF, 0x48, 0xE5, 0x96, 0x1A, 0xEE,
|
||||
0xB1, 0xD5, 0x0E, 0x5C, 0x61, 0x29, 0x4A, 0x2F, 0x21, 0xD6, 0x42, 0xDA, 0x70, 0x9E, 0xAD, 0x18, 0xEA, 0xEF, 0x56, 0x73, 0xAC, 0xEE,
|
||||
0xB7, 0x1F, 0x66, 0x93, 0xC1, 0xA6, 0xBB, 0x1F, 0x0E, 0xD9, 0x03, 0x97, 0xB3, 0x93, 0xFB, 0xB3, 0xE3, 0xA3, 0x17, 0xF5, 0xD1, 0x25,
|
||||
0xAB, 0x91, 0x13, 0x36, 0xC8, 0xEF, 0xBF, 0x5B, 0x6C, 0x28, 0x3E, 0x6C, 0x53, 0x73, 0x7B, 0x31, 0xCE, 0x9F, 0xEF, 0xAD, 0x22, 0x9D,
|
||||
0x36, 0x55, 0x86, 0xF9, 0x70, 0xBE, 0x58, 0xFC, 0x9B, 0xA3, 0xAB, 0x24, 0xED, 0xBD, 0x7F, 0x95, 0x9F, 0xA9, 0x87, 0x68, 0x30, 0xAF,
|
||||
0xA7, 0x7D, 0xBC, 0xDB, 0xB7, 0x03, 0xC8, 0x78, 0xAF, 0x56, 0xA4, 0xCF, 0x4D, 0x27, 0x72, 0xE3, 0x78, 0x1D, 0xFF, 0xEF, 0xE4, 0x61,
|
||||
0xC0, 0xAE, 0x9F, 0x08, 0x4E, 0xB8, 0xCF, 0x74, 0x61, 0xC3, 0x7B, 0x4E, 0x1C, 0xE5, 0x2E, 0x1A, 0xD3, 0x8D, 0x63, 0xC1, 0xFD, 0x7A,
|
||||
0xDB, 0xC0, 0xD5, 0x1B, 0x8D, 0xFB, 0x5E, 0xC7, 0xBB, 0xD5, 0x36, 0xA7, 0x12, 0x34, 0xCE, 0xA2, 0x2E, 0xAE, 0xE2, 0x1D, 0x6B, 0xE8,
|
||||
0xA5, 0xA3, 0x60, 0x0D, 0x10, 0x45, 0x01, 0x95, 0x7B, 0xDA, 0xA6, 0xA7, 0xA2, 0x7C, 0xB7, 0x1E, 0xA4, 0xCC, 0x57, 0xCC, 0x2F, 0xCF,
|
||||
0x52, 0x54, 0x8C, 0x77, 0x0F, 0x35, 0xF1, 0xB3, 0xE2, 0x7D, 0x55, 0x67, 0xD3, 0xC3, 0x15, 0xCF, 0x11, 0x1B, 0x03, 0xFF, 0x88, 0x40,
|
||||
0x7C, 0x9C, 0xFF, 0xF5, 0x7C, 0x3D, 0x5F, 0xCF, 0x7F, 0xFB, 0xFC, 0x01, 0x92, 0xD9, 0xBE, 0x26,
|
||||
};
|
||||
|
||||
CRasterFont* CGameGlobalObjects::LoadDefaultFont() {
|
||||
CZipInputStream fontDataStream(new CMemoryInStream(sDefaultFontData, sizeof(sDefaultFontData)));
|
||||
CRasterFont* font = new CRasterFont(fontDataStream, nullptr);
|
||||
CZipInputStream fontTextureStream(new CMemoryInStream(sDefaultFontTexture, sizeof(sDefaultFontTexture)));
|
||||
font->SetTexture(new CTexture(fontTextureStream, CTexture::kAM_Zero, CTexture::kBK_Zero));
|
||||
return font;
|
||||
}
|
||||
|
||||
void CGameGlobalObjects::PostInitialize(COsContext& osContext, CMemorySys& memorySys) {
|
||||
AddPaksAndFactories();
|
||||
LoadStringTable();
|
||||
printf("Initializing renderer...\n");
|
||||
x14c_renderer = Renderer::AllocateRenderer(xcc_simplePool, osContext, memorySys, x4_resFactory);
|
||||
gpRender = reinterpret_cast< CCubeRenderer* >(x14c_renderer.get());
|
||||
CEnvFxManager::Initialize();
|
||||
CScriptMazeNode::LoadMazeSeeds();
|
||||
}
|
||||
|
||||
void CGameGlobalObjects::LoadStringTable() {
|
||||
x13c_stringTable = gpSimplePool->GetObj("STRG_Main");
|
||||
gpStringTable = **x13c_stringTable;
|
||||
}
|
||||
|
||||
CGameArchitectureSupport::CGameArchitectureSupport(COsContext& osContext)
|
||||
: x0_audioSys(0, 0, 0, 0, 0x5fc000)
|
||||
, x30_inputGenerator(&osContext, gpTweakPlayer->GetLeftAnalogMax(), gpTweakPlayer->GetRightAnalogMax())
|
||||
, x44_guiSys(gpResourceFactory, gpSimplePool, CGuiSys::kUM_Zero)
|
||||
, x78_gameFrameCount(0)
|
||||
, x7c_(0.f)
|
||||
, x80_(0.f)
|
||||
, x84_(0.f)
|
||||
, x88_(2)
|
||||
, x90_(0)
|
||||
, x94_(0)
|
||||
, x98_(0) {
|
||||
CAudioSys::SysSetVolume(0x7F, 0, 0xFF);
|
||||
CAudioSys::SetDefaultVolumeScale(0x75);
|
||||
CAudioSys::SetVolumeScale(CAudioSys::GetDefaultVolumeScale());
|
||||
CDSPStreamManager::Initialize();
|
||||
CStreamAudioManager::SetMusicVolume(0x7F);
|
||||
CAudioSys::TrkSetSampleRate(kTSR_One);
|
||||
gpMain->SetMaxSpeed(false);
|
||||
gpMain->ResetGameState();
|
||||
if (!gpTweakGame->GetSplashScreensDisabled()) {
|
||||
x58_ioWinMgr.AddIOWin(new CSplashScreen(CSplashScreen::Nintendo), 1000, 10000);
|
||||
}
|
||||
// TODO
|
||||
}
|
||||
|
||||
// 80003658
|
||||
void CMain::UpdateStreamedAudio() { CStreamAudioManager::Update(1.f / 60.f); }
|
||||
|
||||
|
@ -265,7 +603,7 @@ int CMain::RsMain(int argc, const char* const* argv) {
|
|||
needsReset = true;
|
||||
}
|
||||
if (needsReset) {
|
||||
x12c_flowState = 5; // Default
|
||||
x12c_flowState = kFS_Default;
|
||||
CStreamAudioManager::StopAll();
|
||||
PADRecalibrate(0xf0000000);
|
||||
CGraphics::SetIsBeginSceneClearFb(true);
|
||||
|
|
Loading…
Reference in New Issue