mirror of https://github.com/PrimeDecomp/prime.git
Match and link CGuiLight
This commit is contained in:
parent
dbbc6f3236
commit
129709bc0d
|
@ -15,7 +15,7 @@ lbl_803ECA50:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__16CAuiEnergyBarT01CFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -782,7 +782,7 @@ Create__16CAuiEnergyBarT01FP9CGuiFrameR12CInputStreamb:
|
|||
/* 802CBC14 002C8B74 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 802CBC18 002C8B78 7F A4 EB 78 */ mr r4, r29
|
||||
/* 802CBC1C 002C8B7C 7F C5 F3 78 */ mr r5, r30
|
||||
/* 802CBC20 002C8B80 4B FF F1 31 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802CBC20 002C8B80 4B FF F1 31 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802CBC24 002C8B84 83 81 00 08 */ lwz r28, 8(r1)
|
||||
/* 802CBC28 002C8B88 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802CBC2C 002C8B8C 89 81 00 0C */ lbz r12, 0xc(r1)
|
||||
|
|
|
@ -15,7 +15,7 @@ lbl_803ECA90:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__13CAuiImagePaneCFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__13CAuiImagePaneCFv
|
||||
|
@ -1511,7 +1511,7 @@ Create__13CAuiImagePaneFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802CD214 002CA174 38 61 00 14 */ addi r3, r1, 0x14
|
||||
/* 802CD218 002CA178 7F A4 EB 78 */ mr r4, r29
|
||||
/* 802CD21C 002CA17C 7F C5 F3 78 */ mr r5, r30
|
||||
/* 802CD220 002CA180 4B FF DB 31 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802CD220 002CA180 4B FF DB 31 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802CD224 002CA184 83 81 00 14 */ lwz r28, 0x14(r1)
|
||||
/* 802CD228 002CA188 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802CD22C 002CA18C 89 81 00 18 */ lbz r12, 0x18(r1)
|
||||
|
@ -1724,4 +1724,3 @@ lbl_803D69E0:
|
|||
# ROM: 0x3D39E0
|
||||
.asciz "??(??)"
|
||||
.balign 4
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ lbl_803EC6F8:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__9CAuiMeterCFv
|
||||
.4byte AddWorkerWidget__9CAuiMeterFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -515,4 +515,3 @@ lbl_803D6878:
|
|||
# ROM: 0x3D3878
|
||||
.asciz "??(??)"
|
||||
.balign 4
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ lbl_803EC738:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__10CGuiCameraCFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -58,7 +58,7 @@ lbl_803EC778:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__18CGuiCompoundWidgetCFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -86,7 +86,7 @@ lbl_803EC7C8:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__9CGuiGroupCFv
|
||||
.4byte AddWorkerWidget__9CGuiGroupFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -135,7 +135,7 @@ Create__9CAuiMeterFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C1260 002BE1C0 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 802C1264 002BE1C4 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802C1268 002BE1C8 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802C126C 002BE1CC 48 00 9A E5 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C126C 002BE1CC 48 00 9A E5 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C1270 002BE1D0 83 A1 00 08 */ lwz r29, 8(r1)
|
||||
/* 802C1274 002BE1D4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802C1278 002BE1D8 89 81 00 0C */ lbz r12, 0xc(r1)
|
||||
|
@ -549,7 +549,7 @@ Create__10CGuiCameraFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C1828 002BE788 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802C182C 002BE78C 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 802C1830 002BE790 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802C1834 002BE794 48 00 95 1D */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C1834 002BE794 48 00 95 1D */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C1838 002BE798 83 A1 00 08 */ lwz r29, 8(r1)
|
||||
/* 802C183C 002BE79C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802C1840 002BE7A0 89 81 00 0C */ lbz r12, 0xc(r1)
|
||||
|
@ -943,7 +943,7 @@ lbl_802C1D90:
|
|||
/* 802C1D90 002BECF0 7C 83 23 78 */ mr r3, r4
|
||||
/* 802C1D94 002BECF4 7C A4 2B 78 */ mr r4, r5
|
||||
/* 802C1D98 002BECF8 7C C5 33 78 */ mr r5, r6
|
||||
/* 802C1D9C 002BECFC 48 00 1F 29 */ bl Create__9CGuiLightFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C1D9C 002BECFC 48 00 1F 29 */ bl Create__9CGuiLightFP9CGuiFrameR12CInputStreamP12IObjectStore
|
||||
/* 802C1DA0 002BED00 48 00 00 44 */ b lbl_802C1DE4
|
||||
lbl_802C1DA4:
|
||||
/* 802C1DA4 002BED04 7C 83 23 78 */ mr r3, r4
|
||||
|
@ -2664,7 +2664,7 @@ Create__9CGuiGroupFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C34D8 002C0438 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 802C34DC 002C043C 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802C34E0 002C0440 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802C34E4 002C0444 48 00 78 6D */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C34E4 002C0444 48 00 78 6D */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C34E8 002C0448 83 A1 00 08 */ lwz r29, 8(r1)
|
||||
/* 802C34EC 002C044C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802C34F0 002C0450 89 81 00 0C */ lbz r12, 0xc(r1)
|
||||
|
|
|
@ -15,7 +15,7 @@ lbl_803EC808:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__14CGuiHeadWidgetCFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -54,7 +54,7 @@ Create__14CGuiHeadWidgetFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C360C 002C056C 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 802C3610 002C0570 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802C3614 002C0574 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802C3618 002C0578 48 00 77 39 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C3618 002C0578 48 00 77 39 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C361C 002C057C 83 61 00 08 */ lwz r27, 8(r1)
|
||||
/* 802C3620 002C0580 3C 60 80 3D */ lis r3, lbl_803D68A0@ha
|
||||
/* 802C3624 002C0584 8B 81 00 0C */ lbz r28, 0xc(r1)
|
||||
|
@ -144,4 +144,3 @@ lbl_803D68A0:
|
|||
# ROM: 0x3D38A0
|
||||
.asciz "??(??)"
|
||||
.balign 4
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
.section .data
|
||||
.balign 8
|
||||
|
||||
.global lbl_803EC848
|
||||
lbl_803EC848:
|
||||
.global __vt__9CGuiLight
|
||||
__vt__9CGuiLight:
|
||||
# ROM: 0x3E9848
|
||||
.4byte 0
|
||||
.4byte 0
|
||||
|
@ -15,7 +15,7 @@ lbl_803EC848:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__9CGuiLightCFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -338,9 +338,9 @@ __dt__9CGuiLightFv:
|
|||
/* 802C3BCC 002C0B2C 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 802C3BD0 002C0B30 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 802C3BD4 002C0B34 41 82 00 38 */ beq lbl_802C3C0C
|
||||
/* 802C3BD8 002C0B38 3C 60 80 3F */ lis r3, lbl_803EC848@ha
|
||||
/* 802C3BD8 002C0B38 3C 60 80 3F */ lis r3, __vt__9CGuiLight@ha
|
||||
/* 802C3BDC 002C0B3C 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802C3BE0 002C0B40 38 03 C8 48 */ addi r0, r3, lbl_803EC848@l
|
||||
/* 802C3BE0 002C0B40 38 03 C8 48 */ addi r0, r3, __vt__9CGuiLight@l
|
||||
/* 802C3BE4 002C0B44 90 1E 00 00 */ stw r0, 0(r30)
|
||||
/* 802C3BE8 002C0B48 80 7E 00 B0 */ lwz r3, 0xb0(r30)
|
||||
/* 802C3BEC 002C0B4C 4B FF E9 2D */ bl RemoveLight__9CGuiFrameFP9CGuiLight
|
||||
|
@ -370,8 +370,8 @@ __ct__9CGuiLightFRCQ210CGuiWidget15CGuiWidgetParmsRC6CLight:
|
|||
/* 802C3C3C 002C0B9C 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 802C3C40 002C0BA0 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802C3C44 002C0BA4 48 00 6F E1 */ bl __ct__10CGuiWidgetFRCQ210CGuiWidget15CGuiWidgetParms
|
||||
/* 802C3C48 002C0BA8 3C 60 80 3F */ lis r3, lbl_803EC848@ha
|
||||
/* 802C3C4C 002C0BAC 38 03 C8 48 */ addi r0, r3, lbl_803EC848@l
|
||||
/* 802C3C48 002C0BA8 3C 60 80 3F */ lis r3, __vt__9CGuiLight@ha
|
||||
/* 802C3C4C 002C0BAC 38 03 C8 48 */ addi r0, r3, __vt__9CGuiLight@l
|
||||
/* 802C3C50 002C0BB0 90 1E 00 00 */ stw r0, 0(r30)
|
||||
/* 802C3C54 002C0BB4 80 1F 00 1C */ lwz r0, 0x1c(r31)
|
||||
/* 802C3C58 002C0BB8 90 1E 00 B8 */ stw r0, 0xb8(r30)
|
||||
|
@ -402,8 +402,8 @@ __ct__9CGuiLightFRCQ210CGuiWidget15CGuiWidgetParmsRC6CLight:
|
|||
/* 802C3CBC 002C0C1C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802C3CC0 002C0C20 4E 80 00 20 */ blr
|
||||
|
||||
.global Create__9CGuiLightFP9CGuiFrameR12CInputStreamb
|
||||
Create__9CGuiLightFP9CGuiFrameR12CInputStreamb:
|
||||
.global Create__9CGuiLightFP9CGuiFrameR12CInputStreamP12IObjectStore
|
||||
Create__9CGuiLightFP9CGuiFrameR12CInputStreamP12IObjectStore:
|
||||
/* 802C3CC4 002C0C24 94 21 FD 90 */ stwu r1, -0x270(r1)
|
||||
/* 802C3CC8 002C0C28 7C 08 02 A6 */ mflr r0
|
||||
/* 802C3CCC 002C0C2C 90 01 02 74 */ stw r0, 0x274(r1)
|
||||
|
@ -415,7 +415,7 @@ Create__9CGuiLightFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C3CE4 002C0C44 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802C3CE8 002C0C48 38 61 00 0C */ addi r3, r1, 0xc
|
||||
/* 802C3CEC 002C0C4C 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802C3CF0 002C0C50 48 00 70 61 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C3CF0 002C0C50 48 00 70 61 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C3CF4 002C0C54 80 81 00 1C */ lwz r4, 0x1c(r1)
|
||||
/* 802C3CF8 002C0C58 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802C3CFC 002C0C5C 83 81 00 0C */ lwz r28, 0xc(r1)
|
||||
|
|
|
@ -15,7 +15,7 @@ lbl_803EC888:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__9CGuiModelCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__9CGuiModelCFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__9CGuiModelCFv
|
||||
|
@ -524,7 +524,7 @@ Create__9CGuiModelFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C464C 002C15AC 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 802C4650 002C15B0 7F A4 EB 78 */ mr r4, r29
|
||||
/* 802C4654 002C15B4 7F C5 F3 78 */ mr r5, r30
|
||||
/* 802C4658 002C15B8 48 00 66 F9 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C4658 002C15B8 48 00 66 F9 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C465C 002C15BC 83 81 00 08 */ lwz r28, 8(r1)
|
||||
/* 802C4660 002C15C0 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802C4664 002C15C4 89 81 00 0C */ lbz r12, 0xc(r1)
|
||||
|
|
|
@ -15,7 +15,7 @@ lbl_803EC8E0:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__8CGuiPaneCFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -424,7 +424,7 @@ Create__8CGuiPaneFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C5A74 002C29D4 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802C5A78 002C29D8 38 61 00 14 */ addi r3, r1, 0x14
|
||||
/* 802C5A7C 002C29DC 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802C5A80 002C29E0 48 00 52 D1 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C5A80 002C29E0 48 00 52 D1 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C5A84 002C29E4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 802C5A88 002C29E8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802C5A8C 002C29EC 89 81 00 18 */ lbz r12, 0x18(r1)
|
||||
|
@ -527,4 +527,3 @@ lbl_803D68B8:
|
|||
# ROM: 0x3D38B8
|
||||
.asciz "??(??)"
|
||||
.balign 4
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ lbl_803EC930:
|
|||
.4byte ProcessUserInput__15CGuiSliderGroupFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__15CGuiSliderGroupCFv
|
||||
.4byte AddWorkerWidget__15CGuiSliderGroupFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -591,7 +591,7 @@ Create__15CGuiSliderGroupFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C62EC 002C324C 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802C62F0 002C3250 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 802C62F4 002C3254 93 A1 00 44 */ stw r29, 0x44(r1)
|
||||
/* 802C62F8 002C3258 48 00 4A 59 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C62F8 002C3258 48 00 4A 59 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C62FC 002C325C 83 A1 00 08 */ lwz r29, 8(r1)
|
||||
/* 802C6300 002C3260 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802C6304 002C3264 89 81 00 0C */ lbz r12, 0xc(r1)
|
||||
|
|
|
@ -15,7 +15,7 @@ lbl_803EC970:
|
|||
.4byte ProcessUserInput__14CGuiTableGroupCFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__14CGuiTableGroupCFv
|
||||
.4byte AddWorkerWidget__14CGuiTableGroupFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -1042,7 +1042,7 @@ Create__14CGuiTableGroupFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C72F8 002C4258 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 802C72FC 002C425C 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802C7300 002C4260 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802C7304 002C4264 48 00 3A 4D */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C7304 002C4264 48 00 3A 4D */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C7308 002C4268 83 A1 00 08 */ lwz r29, 8(r1)
|
||||
/* 802C730C 002C426C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802C7310 002C4270 89 81 00 0C */ lbz r12, 0xc(r1)
|
||||
|
|
|
@ -15,7 +15,7 @@ lbl_803EC9B8:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__12CGuiTextPaneCFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__12CGuiTextPaneCFv
|
||||
|
@ -417,7 +417,7 @@ Create__12CGuiTextPaneFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802C7B10 002C4A70 38 61 00 44 */ addi r3, r1, 0x44
|
||||
/* 802C7B14 002C4A74 7F A4 EB 78 */ mr r4, r29
|
||||
/* 802C7B18 002C4A78 7F C5 F3 78 */ mr r5, r30
|
||||
/* 802C7B1C 002C4A7C 48 00 32 35 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802C7B1C 002C4A7C 48 00 32 35 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802C7B20 002C4A80 83 61 00 44 */ lwz r27, 0x44(r1)
|
||||
/* 802C7B24 002C4A84 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802C7B28 002C4A88 89 81 00 48 */ lbz r12, 0x48(r1)
|
||||
|
@ -570,4 +570,3 @@ lbl_803D68D8:
|
|||
# ROM: 0x3D38D8
|
||||
.asciz "??(??)"
|
||||
.balign 4
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ lbl_803ECA10:
|
|||
.4byte ProcessUserInput__10CGuiWidgetFRC11CFinalInput
|
||||
.4byte Touch__10CGuiWidgetCFv
|
||||
.4byte GetIsVisible__10CGuiWidgetCFv
|
||||
.4byte sub_80020464
|
||||
.4byte GetIsActive__10CGuiWidgetCFv
|
||||
.4byte GetWidgetTypeID__10CGuiWidgetCFv
|
||||
.4byte AddWorkerWidget__10CGuiWidgetFP10CGuiWidget
|
||||
.4byte GetIsFinishedLoadingWidgetSpecific__10CGuiWidgetCFv
|
||||
|
@ -584,8 +584,8 @@ __ct__10CGuiWidgetFRCQ210CGuiWidget15CGuiWidgetParms:
|
|||
/* 802CAD48 002C7CA8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802CAD4C 002C7CAC 4E 80 00 20 */ blr
|
||||
|
||||
.global ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb:
|
||||
.global ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream:
|
||||
/* 802CAD50 002C7CB0 94 21 FF 90 */ stwu r1, -0x70(r1)
|
||||
/* 802CAD54 002C7CB4 7C 08 02 A6 */ mflr r0
|
||||
/* 802CAD58 002C7CB8 90 01 00 74 */ stw r0, 0x74(r1)
|
||||
|
@ -664,7 +664,7 @@ Create__10CGuiWidgetFP9CGuiFrameR12CInputStreamb:
|
|||
/* 802CAE70 002C7DD0 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 802CAE74 002C7DD4 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802CAE78 002C7DD8 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802CAE7C 002C7DDC 4B FF FE D5 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStreamb
|
||||
/* 802CAE7C 002C7DDC 4B FF FE D5 */ bl ReadWidgetHeader__10CGuiWidgetFP9CGuiFrameR12CInputStream
|
||||
/* 802CAE80 002C7DE0 83 61 00 08 */ lwz r27, 8(r1)
|
||||
/* 802CAE84 002C7DE4 3C 60 80 3D */ lis r3, lbl_803D68F8@ha
|
||||
/* 802CAE88 002C7DE8 8B 81 00 0C */ lbz r28, 0xc(r1)
|
||||
|
|
|
@ -5767,8 +5767,8 @@ lbl_8002044C:
|
|||
/* 8002045C 0001D3BC 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80020460 0001D3C0 4E 80 00 20 */ blr
|
||||
|
||||
.global sub_80020464
|
||||
sub_80020464:
|
||||
.global GetIsActive__10CGuiWidgetCFv
|
||||
GetIsActive__10CGuiWidgetCFv:
|
||||
/* 80020464 0001D3C4 88 03 00 B6 */ lbz r0, 0xb6(r3)
|
||||
/* 80020468 0001D3C8 54 03 DF FE */ rlwinm r3, r0, 0x1b, 0x1f, 0x1f
|
||||
/* 8002046C 0001D3CC 4E 80 00 20 */ blr
|
||||
|
|
|
@ -424,7 +424,7 @@ LIBS = [
|
|||
"GuiSys/CAuiMeter",
|
||||
"GuiSys/CGuiGroup",
|
||||
"GuiSys/CGuiHeadWidget",
|
||||
"GuiSys/CGuiLight",
|
||||
["GuiSys/CGuiLight", True],
|
||||
"GuiSys/CGuiModel",
|
||||
["GuiSys/CGuiObject", False],
|
||||
"GuiSys/CGuiPane",
|
||||
|
|
|
@ -5,13 +5,15 @@
|
|||
|
||||
class CGuiWidget;
|
||||
class CGuiCamera;
|
||||
|
||||
class CGuiLight;
|
||||
class CGuiFrame {
|
||||
public:
|
||||
CGuiWidget* FindWidget(const char* name) const;
|
||||
CGuiWidget* FindWidget(const rstl::string& name) const;
|
||||
|
||||
CGuiCamera* GetFrameCamera() const { return x14_camera; }
|
||||
void AddLight(CGuiLight* light);
|
||||
void RemoveLight(CGuiLight* light);
|
||||
|
||||
private:
|
||||
char x0_pad[0x14];
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef _CGUILIGHT
|
||||
#define _CGUILIGHT
|
||||
|
||||
#include "GuiSys/CGuiWidget.hpp"
|
||||
#include "Kyoto/Graphics/CLight.hpp"
|
||||
|
||||
class IObjectStore;
|
||||
class CGuiLight : public CGuiWidget {
|
||||
public:
|
||||
static CGuiLight* Create(CGuiFrame* frame, CInputStream& in, IObjectStore* sp);
|
||||
CGuiLight(const CGuiWidgetParms& parms, const CLight& light);
|
||||
~CGuiLight();
|
||||
|
||||
virtual void SetIsVisible(const bool visible);
|
||||
CLight BuildLight() const;
|
||||
FourCC GetWidgetTypeID() const;
|
||||
public:
|
||||
ELightType xb8_type;
|
||||
float xbc_spotCutoff;
|
||||
float xc0_distC;
|
||||
float xc4_distL;
|
||||
float xc8_distQ;
|
||||
float xcc_angleC;
|
||||
float xd0_angleL;
|
||||
float xd4_angleQ;
|
||||
u32 xd8_lightId;
|
||||
CColor xdc_ambColor;
|
||||
};
|
||||
|
||||
#endif // _CGUILIGHT
|
|
@ -17,15 +17,16 @@ public:
|
|||
void MoveInWorld(const CVector3f& offset);
|
||||
CVector3f GetWorldPosition() const;
|
||||
CVector3f GetLocalPosition() const;
|
||||
const CTransform4f& GetWorldTransform() const { return x34_worldXF; }
|
||||
void SetLocalPosition(const CVector3f& pos);
|
||||
void SetLocalTransform(const CTransform4f& xf);
|
||||
void SetO2WTransform(const CTransform4f& xf);
|
||||
|
||||
void RotateReset();
|
||||
|
||||
CVector3f RotateO2P(const CVector3f& vec) const;
|
||||
CVector3f RotateW2O(const CVector3f& offset) const {
|
||||
CVector3f ret = x34_worldXF.TransposeRotate(offset);
|
||||
return ret;
|
||||
return x34_worldXF.TransposeRotate(offset);
|
||||
}
|
||||
CVector3f RotateTranslateW2O(const CVector3f& vec) const;
|
||||
void MultiplyO2P(const CTransform4f& xf);
|
||||
|
@ -37,6 +38,11 @@ public:
|
|||
x64_parent = obj;
|
||||
}
|
||||
|
||||
CGuiObject* Parent();
|
||||
const CGuiObject* GetChildObject() const;
|
||||
CGuiObject* ChildObject();
|
||||
const CGuiObject* GetNextSibling() const;
|
||||
CGuiObject* NextSibling();
|
||||
private:
|
||||
CTransform4f x4_localXF;
|
||||
CTransform4f x34_worldXF;
|
||||
|
|
|
@ -5,7 +5,10 @@
|
|||
#include "Kyoto/Graphics/CColor.hpp"
|
||||
#include "Kyoto/SObjectTag.hpp"
|
||||
|
||||
#include "rstl/string.hpp"
|
||||
|
||||
class CFinalInput;
|
||||
class CGuiFrame;
|
||||
|
||||
enum ETraversalMode {
|
||||
kTM_ChildrenAndSiblings = 0,
|
||||
|
@ -22,26 +25,47 @@ public:
|
|||
kGMDF_Additive = 3,
|
||||
kGMDF_AlphaAdditiveOverdraw = 4
|
||||
};
|
||||
class CGuiWidgetParms;
|
||||
class CGuiWidgetParms {
|
||||
public:
|
||||
CGuiWidgetParms(CGuiFrame*, const rstl::string&, bool, short, short, bool, bool, bool,
|
||||
const CColor&, CGuiWidget::EGuiModelDrawFlags, bool, bool);
|
||||
CGuiFrame* x0_frame;
|
||||
bool x4_useAnimController;
|
||||
short x6_selfId;
|
||||
short x8_parentId;
|
||||
bool xa_defaultVisible;
|
||||
bool xb_defaultActive;
|
||||
bool xc_cullFaces;
|
||||
bool xd_g;
|
||||
bool xe_h;
|
||||
CColor x10_color;
|
||||
EGuiModelDrawFlags x14_drawFlags;
|
||||
};
|
||||
|
||||
void Update(float dt) override;
|
||||
void Draw(const CGuiWidgetDrawParms& drawParms) override;
|
||||
void Initialize() override;
|
||||
|
||||
virtual void Reset(ETraversalMode mode);
|
||||
CGuiWidget(const CGuiWidgetParms& parms);
|
||||
~CGuiWidget();
|
||||
void Update(float dt);
|
||||
void Draw(const CGuiWidgetDrawParms& drawParms) const;
|
||||
void Initialize();
|
||||
virtual void ProcessUserInput(const CFinalInput& input);
|
||||
virtual void Touch();
|
||||
virtual void Touch() const;
|
||||
virtual bool GetIsVisible() const;
|
||||
virtual bool GetIsActive() const;
|
||||
virtual bool GetMouseActive() const;
|
||||
virtual FourCC GetWidgetTypeID() const { return 'BWIG'; }
|
||||
virtual bool AddWorkerWidget(CGuiWidget* worker);
|
||||
virtual bool GetIsFinishedLoadingWidgetSpecific();
|
||||
virtual void OnVisibleChange();
|
||||
virtual void OnActiveChange();
|
||||
virtual bool GetIsFinishedLoadingWidgetSpecific() const;
|
||||
virtual void OnVisible();
|
||||
virtual void OnActivate();
|
||||
|
||||
void SetIsVisible(bool visible);
|
||||
void SetColor(const CColor& color);
|
||||
const CColor& GetColor() const { return xa4_color; }
|
||||
void SetVisibility(bool visible, ETraversalMode mode);
|
||||
void ParseBaseInfo(CGuiFrame* frame, CInputStream& in, const CGuiWidgetParms& parms);
|
||||
|
||||
static CGuiWidgetParms ReadWidgetHeader(CGuiFrame* frame, CInputStream& in);
|
||||
|
||||
CGuiFrame* GetFrame() { return xb0_frame; }
|
||||
|
||||
private:
|
||||
short x70_selfId;
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
#include "GuiSys/CGuiLight.hpp"
|
||||
#include "GuiSys/CGuiFrame.hpp"
|
||||
|
||||
#include "Kyoto/Streams/CInputStream.hpp"
|
||||
|
||||
CGuiLight* CGuiLight::Create(CGuiFrame* parent, CInputStream& in, IObjectStore* sp) {
|
||||
CGuiWidgetParms parms = ReadWidgetHeader(parent, in);
|
||||
CColor color = parms.x10_color;
|
||||
ELightType type = (ELightType)in.ReadInt32();
|
||||
float distC = in.ReadFloat();
|
||||
float distL = in.ReadFloat();
|
||||
float distQ = in.ReadFloat();
|
||||
float angC = in.ReadFloat();
|
||||
float angL = in.ReadFloat();
|
||||
float angQ = in.ReadFloat();
|
||||
uint lightId = in.ReadInt32();
|
||||
|
||||
CGuiLight* ret = nullptr;
|
||||
|
||||
switch (type) {
|
||||
case kLT_Spot: {
|
||||
float cutoff = in.ReadFloat();
|
||||
CLight lt = CLight::BuildSpot(CVector3f::Zero(), CVector3f::Zero(), color, cutoff);
|
||||
lt.SetAttenuation(distC, distL, distQ);
|
||||
lt.SetAngleAttenuation(angC, angL, angQ);
|
||||
lt.SetLightId(lightId);
|
||||
|
||||
ret = new CGuiLight(parms, lt);
|
||||
break;
|
||||
}
|
||||
case kLT_Point: {
|
||||
CLight lt = CLight::BuildPoint(CVector3f::Zero(), color);
|
||||
lt.SetAttenuation(distC, distL, distQ);
|
||||
lt.SetLightId(lightId);
|
||||
ret = new CGuiLight(parms, lt);
|
||||
break;
|
||||
}
|
||||
case kLT_Directional: {
|
||||
CLight lt = CLight::BuildDirectional(CVector3f::Zero(), color);
|
||||
lt.SetLightId(lightId);
|
||||
ret = new CGuiLight(parms, lt);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
ret->ParseBaseInfo(parent, in, parms);
|
||||
parent->AddLight(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
CGuiLight::CGuiLight(const CGuiWidgetParms& parms, const CLight& light)
|
||||
: CGuiWidget(parms)
|
||||
, xb8_type(light.GetType())
|
||||
, xbc_spotCutoff(light.GetSpotCutoff())
|
||||
, xc0_distC(light.GetAttenuationConstant())
|
||||
, xc4_distL(light.GetAttenuationLinear())
|
||||
, xc8_distQ(light.GetAttenuationQuadratic())
|
||||
, xcc_angleC(light.GetAngleAttenuationConstant())
|
||||
, xd0_angleL(light.GetAngleAttenuationLinear())
|
||||
, xd4_angleQ(light.GetAngleAttenuationQuadratic())
|
||||
, xd8_lightId(light.GetId())
|
||||
, xdc_ambColor(CColor::Black()) {}
|
||||
|
||||
CGuiLight::~CGuiLight() { GetFrame()->RemoveLight(this); }
|
||||
|
||||
void CGuiLight::SetIsVisible(const bool visible) {
|
||||
if (visible) {
|
||||
GetFrame()->AddLight(this);
|
||||
} else {
|
||||
GetFrame()->RemoveLight(this);
|
||||
}
|
||||
|
||||
CGuiWidget::SetIsVisible(visible);
|
||||
}
|
||||
|
||||
CLight CGuiLight::BuildLight() const {
|
||||
CLight ret = CLight::BuildLocalAmbient(CVector3f::Zero(), CColor(0.f, 0.f, 0.f));
|
||||
CVector3f pos = GetWorldPosition();
|
||||
CVector3f dir = GetWorldTransform().GetColumn(kDY);
|
||||
CColor color = GetColor();
|
||||
switch (xb8_type) {
|
||||
case kLT_Spot:
|
||||
ret = CLight::BuildSpot(pos, dir, color, xbc_spotCutoff);
|
||||
break;
|
||||
case kLT_Point:
|
||||
ret = CLight::BuildPoint(pos, color);
|
||||
break;
|
||||
case kLT_Directional:
|
||||
ret = CLight::BuildDirectional(dir, color);
|
||||
break;
|
||||
case kLT_Custom:
|
||||
ret = CLight::BuildCustom(pos, dir, color, xc0_distC, xc4_distL, xc8_distQ, xcc_angleC,
|
||||
xd0_angleL, xd4_angleQ);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
ret.SetAttenuation(xc0_distC, xc4_distL, xc8_distQ);
|
||||
ret.SetAngleAttenuation(xcc_angleC, xd0_angleL, xd4_angleQ);
|
||||
ret.SetLightId(xd8_lightId);
|
||||
return ret;
|
||||
}
|
||||
|
||||
FourCC CGuiLight::GetWidgetTypeID() const {
|
||||
return 'LITE';
|
||||
}
|
|
@ -35,20 +35,17 @@ void CGuiObject::Draw(const CGuiWidgetDrawParms& parms) const {
|
|||
}
|
||||
|
||||
void CGuiObject::MoveInWorld(const CVector3f& offset) {
|
||||
CVector3f pos;
|
||||
if (x64_parent != nullptr) {
|
||||
CVector3f pos = x64_parent->RotateW2O(offset);
|
||||
pos = x64_parent->RotateW2O(offset);
|
||||
}
|
||||
x4_localXF.AddTranslation(offset);
|
||||
RecalculateTransforms();
|
||||
}
|
||||
|
||||
CVector3f CGuiObject::GetWorldPosition() const {
|
||||
return x34_worldXF.GetTranslation();
|
||||
}
|
||||
CVector3f CGuiObject::GetWorldPosition() const { return x34_worldXF.GetTranslation(); }
|
||||
|
||||
CVector3f CGuiObject::GetLocalPosition() const {
|
||||
return x4_localXF.GetTranslation();
|
||||
}
|
||||
CVector3f CGuiObject::GetLocalPosition() const { return x4_localXF.GetTranslation(); }
|
||||
|
||||
void CGuiObject::SetLocalPosition(const CVector3f& pos) {
|
||||
MoveInWorld(pos - x4_localXF.GetTranslation());
|
||||
|
@ -92,6 +89,28 @@ void CGuiObject::AddChildObject(CGuiObject* obj, bool makeWorldLocal, bool atEnd
|
|||
prev->x6c_nextSibling = obj;
|
||||
}
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const CGuiObject* CGuiObject::GetChildObject() const { return x68_child; }
|
||||
|
||||
CGuiObject* CGuiObject::ChildObject() { return x68_child; }
|
||||
const CGuiObject* CGuiObject::GetNextSibling() const { return x6c_nextSibling; }
|
||||
CGuiObject* CGuiObject::NextSibling() { return x6c_nextSibling; }
|
||||
|
||||
CGuiObject* CGuiObject::Parent() { return x64_parent; }
|
||||
|
||||
void CGuiObject::RecalculateTransforms() {
|
||||
|
||||
}
|
||||
|
||||
void CGuiObject::SetLocalTransform(const CTransform4f& xf) {
|
||||
x4_localXF = xf;
|
||||
RecalculateTransforms();
|
||||
}
|
||||
|
||||
void CGuiObject::SetO2WTransform(const CTransform4f& worldXf) {
|
||||
const CTransform4f invXf = x64_parent->x34_worldXF.GetQuickInverse();
|
||||
const CTransform4f localXf = invXf * worldXf;
|
||||
SetLocalTransform(localXf);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue