mirror of https://github.com/PrimeDecomp/prime.git
Header merge & CScriptPickup progress
This commit is contained in:
parent
24acd9863f
commit
45c5450376
|
@ -4604,8 +4604,8 @@ __ct__Q211CSfxManager11CSfxChannelFv:
|
|||
|
||||
.section .sdata2, "a"
|
||||
.balign 8
|
||||
.global lbl_805AE318
|
||||
lbl_805AE318:
|
||||
.global kMaxPriority__11CSfxManager
|
||||
kMaxPriority__11CSfxManager:
|
||||
# ROM: 0x3FABB8
|
||||
.2byte 0x000000FF
|
||||
|
||||
|
@ -4614,8 +4614,8 @@ kMedPriority__11CSfxManager:
|
|||
# ROM: 0x3FABBA
|
||||
.2byte 0x0000007F
|
||||
|
||||
.global lbl_805AE31C
|
||||
lbl_805AE31C:
|
||||
.global kInternalInvalidSfxId__11CSfxManager
|
||||
kInternalInvalidSfxId__11CSfxManager:
|
||||
# ROM: 0x3FABBC
|
||||
.4byte 0xFFFF0000
|
||||
|
||||
|
|
|
@ -208,7 +208,7 @@ UpdateRainSounds__13CEnvFxManagerFR13CStateManager:
|
|||
/* 8020FFE0 0020CF40 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8020FFE4 0020CF44 40 82 00 6C */ bne lbl_80210050
|
||||
/* 8020FFE8 0020CF48 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
|
||||
/* 8020FFEC 0020CF4C A9 22 C5 F8 */ lha r9, lbl_805AE318@sda21(r2)
|
||||
/* 8020FFEC 0020CF4C A9 22 C5 F8 */ lha r9, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 8020FFF0 0020CF50 38 A3 66 A0 */ addi r5, r3, sZeroVector__9CVector3f@l
|
||||
/* 8020FFF4 0020CF54 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
|
||||
/* 8020FFF8 0020CF58 38 61 00 24 */ addi r3, r1, 0x24
|
||||
|
@ -220,7 +220,7 @@ UpdateRainSounds__13CEnvFxManagerFR13CStateManager:
|
|||
/* 80210010 0020CF70 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80210014 0020CF74 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
|
||||
/* 80210018 0020CF78 38 A3 66 A0 */ addi r5, r3, sZeroVector__9CVector3f@l
|
||||
/* 8021001C 0020CF7C A9 22 C5 F8 */ lha r9, lbl_805AE318@sda21(r2)
|
||||
/* 8021001C 0020CF7C A9 22 C5 F8 */ lha r9, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 80210020 0020CF80 90 1F 0B 6C */ stw r0, 0xb6c(r31)
|
||||
/* 80210024 0020CF84 7C A6 2B 78 */ mr r6, r5
|
||||
/* 80210028 0020CF88 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
|
||||
|
|
|
@ -915,7 +915,7 @@ sub_802099c0:
|
|||
/* 802099D8 00206938 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 802099DC 0020693C 40 82 00 3C */ bne lbl_80209A18
|
||||
/* 802099E0 00206940 A0 9F 00 24 */ lhz r4, 0x24(r31)
|
||||
/* 802099E4 00206944 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 802099E4 00206944 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 802099E8 00206948 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 802099EC 0020694C 41 82 00 2C */ beq lbl_80209A18
|
||||
/* 802099F0 00206950 88 BF 00 2C */ lbz r5, 0x2c(r31)
|
||||
|
|
|
@ -422,7 +422,7 @@ lbl_8023F79C:
|
|||
/* 8023F858 0023C7B8 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 8023F85C 0023C7BC 38 A0 00 00 */ li r5, 0
|
||||
/* 8023F860 0023C7C0 39 60 FF FF */ li r11, -1
|
||||
/* 8023F864 0023C7C4 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 8023F864 0023C7C4 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 8023F868 0023C7C8 90 61 00 10 */ stw r3, 0x10(r1)
|
||||
/* 8023F86C 0023C7CC 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8023F870 0023C7D0 38 9B 03 00 */ addi r4, r27, 0x300
|
||||
|
|
|
@ -483,7 +483,7 @@ lbl_80244ED4:
|
|||
/* 80244F5C 00241EBC 39 60 00 00 */ li r11, 0
|
||||
/* 80244F60 00241EC0 99 61 00 28 */ stb r11, 0x28(r1)
|
||||
/* 80244F64 00241EC4 38 01 00 10 */ addi r0, r1, 0x10
|
||||
/* 80244F68 00241EC8 A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 80244F68 00241EC8 A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80244F6C 00241ECC 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80244F70 00241ED0 D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 80244F74 00241ED4 7F A5 EB 78 */ mr r5, r29
|
||||
|
|
|
@ -6083,7 +6083,7 @@ lbl_802226BC:
|
|||
/* 802226FC 0021F65C 39 60 00 00 */ li r11, 0
|
||||
/* 80222700 0021F660 99 61 00 3C */ stb r11, 0x3c(r1)
|
||||
/* 80222704 0021F664 38 01 00 24 */ addi r0, r1, 0x24
|
||||
/* 80222708 0021F668 A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 80222708 0021F668 A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 8022270C 0021F66C 7F 63 DB 78 */ mr r3, r27
|
||||
/* 80222710 0021F670 D0 01 00 24 */ stfs f0, 0x24(r1)
|
||||
/* 80222714 0021F674 7F 85 E3 78 */ mr r5, r28
|
||||
|
|
|
@ -8171,7 +8171,7 @@ lbl_801B43A8:
|
|||
/* 801B43D0 001B1330 90 01 00 94 */ stw r0, 0x94(r1)
|
||||
/* 801B43D4 001B1334 39 81 00 50 */ addi r12, r1, 0x50
|
||||
/* 801B43D8 001B1338 39 61 00 40 */ addi r11, r1, 0x40
|
||||
/* 801B43DC 001B133C A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 801B43DC 001B133C A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801B43E0 001B1340 BE C1 00 68 */ stmw r22, 0x68(r1)
|
||||
/* 801B43E4 001B1344 3A C0 00 00 */ li r22, 0
|
||||
/* 801B43E8 001B1348 7C 9F 23 78 */ mr r31, r4
|
||||
|
|
|
@ -5521,7 +5521,7 @@ lbl_801F88DC:
|
|||
/* 801F8914 001F5874 39 01 00 48 */ addi r8, r1, 0x48
|
||||
/* 801F8918 001F5878 B0 01 00 38 */ sth r0, 0x38(r1)
|
||||
/* 801F891C 001F587C 39 60 00 00 */ li r11, 0
|
||||
/* 801F8920 001F5880 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 801F8920 001F5880 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801F8924 001F5884 7F C3 F3 78 */ mr r3, r30
|
||||
/* 801F8928 001F5888 90 A1 00 08 */ stw r5, 8(r1)
|
||||
/* 801F892C 001F588C 7F E5 FB 78 */ mr r5, r31
|
||||
|
@ -5695,7 +5695,7 @@ FireProjectile__13CFlyingPirateFR13CStateManagerRC9CVector3f:
|
|||
/* 801F8B90 001F5AF0 39 60 00 00 */ li r11, 0
|
||||
/* 801F8B94 001F5AF4 99 61 01 04 */ stb r11, 0x104(r1)
|
||||
/* 801F8B98 001F5AF8 38 01 00 EC */ addi r0, r1, 0xec
|
||||
/* 801F8B9C 001F5AFC A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 801F8B9C 001F5AFC A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801F8BA0 001F5B00 7F A3 EB 78 */ mr r3, r29
|
||||
/* 801F8BA4 001F5B04 D0 01 00 EC */ stfs f0, 0xec(r1)
|
||||
/* 801F8BA8 001F5B08 7F C5 F3 78 */ mr r5, r30
|
||||
|
@ -5899,7 +5899,7 @@ lbl_801F8D88:
|
|||
/* 801F8EB0 001F5E10 39 60 00 00 */ li r11, 0
|
||||
/* 801F8EB4 001F5E14 99 61 00 94 */ stb r11, 0x94(r1)
|
||||
/* 801F8EB8 001F5E18 38 01 00 7C */ addi r0, r1, 0x7c
|
||||
/* 801F8EBC 001F5E1C A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 801F8EBC 001F5E1C A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801F8EC0 001F5E20 7F A3 EB 78 */ mr r3, r29
|
||||
/* 801F8EC4 001F5E24 D0 01 00 7C */ stfs f0, 0x7c(r1)
|
||||
/* 801F8EC8 001F5E28 7F C5 F3 78 */ mr r5, r30
|
||||
|
|
|
@ -7361,7 +7361,7 @@ lbl_801A4734:
|
|||
/* 801A4774 001A16D4 39 60 00 00 */ li r11, 0
|
||||
/* 801A4778 001A16D8 99 61 00 40 */ stb r11, 0x40(r1)
|
||||
/* 801A477C 001A16DC 38 01 00 28 */ addi r0, r1, 0x28
|
||||
/* 801A4780 001A16E0 A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 801A4780 001A16E0 A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801A4784 001A16E4 7F 83 E3 78 */ mr r3, r28
|
||||
/* 801A4788 001A16E8 D0 01 00 28 */ stfs f0, 0x28(r1)
|
||||
/* 801A478C 001A16EC 7F A5 EB 78 */ mr r5, r29
|
||||
|
|
|
@ -734,7 +734,7 @@ sub_80234b20:
|
|||
/* 80234BD4 00231B34 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 80234BD8 00231B38 38 A0 00 00 */ li r5, 0
|
||||
/* 80234BDC 00231B3C 39 60 FF FF */ li r11, -1
|
||||
/* 80234BE0 00231B40 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 80234BE0 00231B40 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80234BE4 00231B44 90 61 00 10 */ stw r3, 0x10(r1)
|
||||
/* 80234BE8 00231B48 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80234BEC 00231B4C 38 9E 06 CC */ addi r4, r30, 0x6cc
|
||||
|
|
|
@ -10621,7 +10621,7 @@ lbl_80279CF4:
|
|||
/* 80279EE4 00276E44 38 81 01 BC */ addi r4, r1, 0x1bc
|
||||
/* 80279EE8 00276E48 90 61 00 10 */ stw r3, 0x10(r1)
|
||||
/* 80279EEC 00276E4C 39 81 01 C8 */ addi r12, r1, 0x1c8
|
||||
/* 80279EF0 00276E50 A1 62 C5 FC */ lhz r11, lbl_805AE31C@sda21(r2)
|
||||
/* 80279EF0 00276E50 A1 62 C5 FC */ lhz r11, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80279EF4 00276E54 7F 43 D3 78 */ mr r3, r26
|
||||
/* 80279EF8 00276E58 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80279EFC 00276E5C 38 00 00 00 */ li r0, 0
|
||||
|
@ -10807,7 +10807,7 @@ lbl_80279FE0:
|
|||
/* 8027A1BC 0027711C 38 C1 01 40 */ addi r6, r1, 0x140
|
||||
/* 8027A1C0 00277120 90 01 00 10 */ stw r0, 0x10(r1)
|
||||
/* 8027A1C4 00277124 39 61 01 4C */ addi r11, r1, 0x14c
|
||||
/* 8027A1C8 00277128 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 8027A1C8 00277128 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 8027A1CC 0027712C 38 E1 04 34 */ addi r7, r1, 0x434
|
||||
/* 8027A1D0 00277130 90 61 00 14 */ stw r3, 0x14(r1)
|
||||
/* 8027A1D4 00277134 7F 43 D3 78 */ mr r3, r26
|
||||
|
|
|
@ -2611,7 +2611,7 @@ lbl_80078F20:
|
|||
/* 80079014 00075F74 39 60 00 00 */ li r11, 0
|
||||
/* 80079018 00075F78 99 61 00 80 */ stb r11, 0x80(r1)
|
||||
/* 8007901C 00075F7C 38 01 00 68 */ addi r0, r1, 0x68
|
||||
/* 80079020 00075F80 A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 80079020 00075F80 A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80079024 00075F84 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80079028 00075F88 D0 01 00 68 */ stfs f0, 0x68(r1)
|
||||
/* 8007902C 00075F8C 7F A5 EB 78 */ mr r5, r29
|
||||
|
@ -2643,7 +2643,7 @@ lbl_80079088:
|
|||
/* 8007908C 00075FEC 39 60 00 00 */ li r11, 0
|
||||
/* 80079090 00075FF0 99 61 00 64 */ stb r11, 0x64(r1)
|
||||
/* 80079094 00075FF4 38 01 00 4C */ addi r0, r1, 0x4c
|
||||
/* 80079098 00075FF8 A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 80079098 00075FF8 A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 8007909C 00075FFC 7F 83 E3 78 */ mr r3, r28
|
||||
/* 800790A0 00076000 D0 01 00 4C */ stfs f0, 0x4c(r1)
|
||||
/* 800790A4 00076004 7F A5 EB 78 */ mr r5, r29
|
||||
|
@ -4505,7 +4505,7 @@ MassiveFrozenDeath__10CPatternedFR13CStateManager:
|
|||
/* 8007AB34 00077A94 94 21 FE E0 */ stwu r1, -0x120(r1)
|
||||
/* 8007AB38 00077A98 7C 08 02 A6 */ mflr r0
|
||||
/* 8007AB3C 00077A9C 90 01 01 24 */ stw r0, 0x124(r1)
|
||||
/* 8007AB40 00077AA0 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 8007AB40 00077AA0 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 8007AB44 00077AA4 93 E1 01 1C */ stw r31, 0x11c(r1)
|
||||
/* 8007AB48 00077AA8 7C 9F 23 78 */ mr r31, r4
|
||||
/* 8007AB4C 00077AAC 93 C1 01 18 */ stw r30, 0x118(r1)
|
||||
|
|
|
@ -184,7 +184,7 @@ lbl_80105AB4:
|
|||
/* 80105ACC 00102A2C 48 1E 2E E5 */ bl TranslateSFXID__11CSfxManagerFUs
|
||||
/* 80105AD0 00102A30 48 00 00 08 */ b lbl_80105AD8
|
||||
lbl_80105AD4:
|
||||
/* 80105AD4 00102A34 A0 62 C5 FC */ lhz r3, lbl_805AE31C@sda21(r2)
|
||||
/* 80105AD4 00102A34 A0 62 C5 FC */ lhz r3, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
lbl_80105AD8:
|
||||
/* 80105AD8 00102A38 54 60 04 3E */ clrlwi r0, r3, 0x10
|
||||
/* 80105ADC 00102A3C 7F A3 EB 78 */ mr r3, r29
|
||||
|
|
|
@ -1437,7 +1437,7 @@ lbl_80147AB0:
|
|||
/* 80147BD8 00144B38 39 81 00 6C */ addi r12, r1, 0x6c
|
||||
/* 80147BDC 00144B3C 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 80147BE0 00144B40 39 61 00 78 */ addi r11, r1, 0x78
|
||||
/* 80147BE4 00144B44 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 80147BE4 00144B44 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80147BE8 00144B48 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80147BEC 00144B4C 90 81 00 10 */ stw r4, 0x10(r1)
|
||||
/* 80147BF0 00144B50 7E E5 BB 78 */ mr r5, r23
|
||||
|
|
|
@ -5804,7 +5804,7 @@ lbl_80256F04:
|
|||
/* 80256FB0 00253F10 38 E0 00 01 */ li r7, 1
|
||||
/* 80256FB4 00253F14 C0 06 00 08 */ lfs f0, 8(r6)
|
||||
/* 80256FB8 00253F18 D0 A1 00 B0 */ stfs f5, 0xb0(r1)
|
||||
/* 80256FBC 00253F1C A8 C2 C5 F8 */ lha r6, lbl_805AE318@sda21(r2)
|
||||
/* 80256FBC 00253F1C A8 C2 C5 F8 */ lha r6, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 80256FC0 00253F20 D0 A1 00 B4 */ stfs f5, 0xb4(r1)
|
||||
/* 80256FC4 00253F24 81 02 C6 00 */ lwz r8, kAllAreas__11CSfxManager@sda21(r2)
|
||||
/* 80256FC8 00253F28 D0 A1 00 B8 */ stfs f5, 0xb8(r1)
|
||||
|
@ -7220,7 +7220,7 @@ lbl_80258428:
|
|||
/* 80258454 002553B4 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
|
||||
/* 80258458 002553B8 D0 A1 03 30 */ stfs f5, 0x330(r1)
|
||||
/* 8025845C 002553BC 39 03 66 A0 */ addi r8, r3, sZeroVector__9CVector3f@l
|
||||
/* 80258460 002553C0 A8 C2 C5 F8 */ lha r6, lbl_805AE318@sda21(r2)
|
||||
/* 80258460 002553C0 A8 C2 C5 F8 */ lha r6, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 80258464 002553C4 D0 A1 03 34 */ stfs f5, 0x334(r1)
|
||||
/* 80258468 002553C8 38 61 00 A4 */ addi r3, r1, 0xa4
|
||||
/* 8025846C 002553CC C0 48 00 00 */ lfs f2, 0(r8)
|
||||
|
@ -7405,7 +7405,7 @@ lbl_80258578:
|
|||
/* 80258714 00255674 39 61 01 0C */ addi r11, r1, 0x10c
|
||||
/* 80258718 00255678 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 8025871C 0025567C 7F 63 DB 78 */ mr r3, r27
|
||||
/* 80258720 00255680 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 80258720 00255680 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80258724 00255684 38 BC 0C 14 */ addi r5, r28, 0xc14
|
||||
/* 80258728 00255688 90 C1 00 0C */ stw r6, 0xc(r1)
|
||||
/* 8025872C 0025568C 38 E1 03 00 */ addi r7, r1, 0x300
|
||||
|
@ -7589,7 +7589,7 @@ lbl_80258828:
|
|||
/* 802589D0 00255930 39 61 00 CC */ addi r11, r1, 0xcc
|
||||
/* 802589D4 00255934 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 802589D8 00255938 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802589DC 0025593C A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 802589DC 0025593C A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 802589E0 00255940 38 BC 0C 3C */ addi r5, r28, 0xc3c
|
||||
/* 802589E4 00255944 90 C1 00 0C */ stw r6, 0xc(r1)
|
||||
/* 802589E8 00255948 38 E1 02 D0 */ addi r7, r1, 0x2d0
|
||||
|
|
|
@ -409,7 +409,7 @@ lbl_802662C0:
|
|||
/* 802662F0 00263250 38 61 00 2C */ addi r3, r1, 0x2c
|
||||
/* 802662F4 00263254 48 0D 77 ED */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
|
||||
/* 802662F8 00263258 38 00 00 00 */ li r0, 0
|
||||
/* 802662FC 0026325C A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 802662FC 0026325C A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80266300 00263260 98 01 00 28 */ stb r0, 0x28(r1)
|
||||
/* 80266304 00263264 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80266308 00263268 7F C5 F3 78 */ mr r5, r30
|
||||
|
|
|
@ -2738,7 +2738,7 @@ lbl_8023DAD4:
|
|||
/* 8023DAD8 0023AA38 90 7F 01 CC */ stw r3, 0x1cc(r31)
|
||||
/* 8023DADC 0023AA3C 7F 00 C3 78 */ mr r0, r24
|
||||
/* 8023DAE0 0023AA40 40 82 00 08 */ bne lbl_8023DAE8
|
||||
/* 8023DAE4 0023AA44 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 8023DAE4 0023AA44 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
lbl_8023DAE8:
|
||||
/* 8023DAE8 0023AA48 54 03 04 3E */ clrlwi r3, r0, 0x10
|
||||
/* 8023DAEC 0023AA4C 48 0A AE C5 */ bl TranslateSFXID__11CSfxManagerFUs
|
||||
|
@ -2746,7 +2746,7 @@ lbl_8023DAE8:
|
|||
/* 8023DAF4 0023AA54 B0 7F 01 D0 */ sth r3, 0x1d0(r31)
|
||||
/* 8023DAF8 0023AA58 7F 20 CB 78 */ mr r0, r25
|
||||
/* 8023DAFC 0023AA5C 40 82 00 08 */ bne lbl_8023DB04
|
||||
/* 8023DB00 0023AA60 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 8023DB00 0023AA60 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
lbl_8023DB04:
|
||||
/* 8023DB04 0023AA64 54 03 04 3E */ clrlwi r3, r0, 0x10
|
||||
/* 8023DB08 0023AA68 48 0A AE A9 */ bl TranslateSFXID__11CSfxManagerFUs
|
||||
|
@ -2754,7 +2754,7 @@ lbl_8023DB04:
|
|||
/* 8023DB10 0023AA70 B0 7F 01 D2 */ sth r3, 0x1d2(r31)
|
||||
/* 8023DB14 0023AA74 7F 40 D3 78 */ mr r0, r26
|
||||
/* 8023DB18 0023AA78 40 82 00 08 */ bne lbl_8023DB20
|
||||
/* 8023DB1C 0023AA7C A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 8023DB1C 0023AA7C A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
lbl_8023DB20:
|
||||
/* 8023DB20 0023AA80 54 03 04 3E */ clrlwi r3, r0, 0x10
|
||||
/* 8023DB24 0023AA84 48 0A AE 8D */ bl TranslateSFXID__11CSfxManagerFUs
|
||||
|
|
|
@ -2813,7 +2813,7 @@ FireProjectile__12CSpacePirateFfR13CStateManager:
|
|||
/* 8012212C 0011F08C 39 60 00 00 */ li r11, 0
|
||||
/* 80122130 0011F090 99 61 01 34 */ stb r11, 0x134(r1)
|
||||
/* 80122134 0011F094 38 01 01 1C */ addi r0, r1, 0x11c
|
||||
/* 80122138 0011F098 A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 80122138 0011F098 A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 8012213C 0011F09C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80122140 0011F0A0 D0 01 01 1C */ stfs f0, 0x11c(r1)
|
||||
/* 80122144 0011F0A4 7F C5 F3 78 */ mr r5, r30
|
||||
|
@ -3052,7 +3052,7 @@ lbl_801223B0:
|
|||
/* 801224D8 0011F438 39 60 00 00 */ li r11, 0
|
||||
/* 801224DC 0011F43C 99 61 00 94 */ stb r11, 0x94(r1)
|
||||
/* 801224E0 0011F440 38 01 00 7C */ addi r0, r1, 0x7c
|
||||
/* 801224E4 0011F444 A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 801224E4 0011F444 A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801224E8 0011F448 7F A3 EB 78 */ mr r3, r29
|
||||
/* 801224EC 0011F44C D0 01 00 7C */ stfs f0, 0x7c(r1)
|
||||
/* 801224F0 0011F450 7F C5 F3 78 */ mr r5, r30
|
||||
|
|
|
@ -7552,7 +7552,7 @@ lbl_801EDEC8:
|
|||
/* 801EE0A0 001EB000 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 801EE0A4 001EB004 90 0F 05 58 */ stw r0, 0x558(r15)
|
||||
/* 801EE0A8 001EB008 40 82 00 08 */ bne lbl_801EE0B0
|
||||
/* 801EE0AC 001EB00C A0 82 C5 FC */ lhz r4, lbl_805AE31C@sda21(r2)
|
||||
/* 801EE0AC 001EB00C A0 82 C5 FC */ lhz r4, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
lbl_801EE0B0:
|
||||
/* 801EE0B0 001EB010 54 83 04 3E */ clrlwi r3, r4, 0x10
|
||||
/* 801EE0B4 001EB014 48 0F A8 FD */ bl TranslateSFXID__11CSfxManagerFUs
|
||||
|
@ -7560,7 +7560,7 @@ lbl_801EE0B0:
|
|||
/* 801EE0BC 001EB01C B0 6F 05 5C */ sth r3, 0x55c(r15)
|
||||
/* 801EE0C0 001EB020 7F C0 F3 78 */ mr r0, r30
|
||||
/* 801EE0C4 001EB024 40 82 00 08 */ bne lbl_801EE0CC
|
||||
/* 801EE0C8 001EB028 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 801EE0C8 001EB028 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
lbl_801EE0CC:
|
||||
/* 801EE0CC 001EB02C 54 03 04 3E */ clrlwi r3, r0, 0x10
|
||||
/* 801EE0D0 001EB030 48 0F A8 E1 */ bl TranslateSFXID__11CSfxManagerFUs
|
||||
|
|
|
@ -1385,7 +1385,7 @@ lbl_800653E0:
|
|||
/* 80065418 00062378 40 82 00 64 */ bne lbl_8006547C
|
||||
/* 8006541C 0006237C 81 7A 08 4C */ lwz r11, 0x84c(r26)
|
||||
/* 80065420 00062380 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80065424 00062384 A9 22 C5 F8 */ lha r9, lbl_805AE318@sda21(r2)
|
||||
/* 80065424 00062384 A9 22 C5 F8 */ lha r9, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 80065428 00062388 38 A1 00 3C */ addi r5, r1, 0x3c
|
||||
/* 8006542C 0006238C C0 4B 00 58 */ lfs f2, 0x58(r11)
|
||||
/* 80065430 00062390 38 C1 00 30 */ addi r6, r1, 0x30
|
||||
|
|
|
@ -1095,7 +1095,7 @@ lbl_8003B02C:
|
|||
/* 8003B050 00037FB0 40 80 00 08 */ bge lbl_8003B058
|
||||
/* 8003B054 00037FB4 48 00 01 50 */ b lbl_8003B1A4
|
||||
lbl_8003B058:
|
||||
/* 8003B058 00037FB8 A9 02 C5 F8 */ lha r8, lbl_805AE318@sda21(r2)
|
||||
/* 8003B058 00037FB8 A9 02 C5 F8 */ lha r8, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 8003B05C 00037FBC 38 61 00 0C */ addi r3, r1, 0xc
|
||||
/* 8003B060 00037FC0 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
|
||||
/* 8003B064 00037FC4 38 80 06 EF */ li r4, 0x6ef
|
||||
|
@ -5667,7 +5667,7 @@ lbl_8003F100:
|
|||
/* 8003F168 0003C0C8 48 00 01 D9 */ bl Reset__10CPlayerGunFR13CStateManager
|
||||
/* 8003F16C 0003C0CC 57 C0 06 3F */ clrlwi. r0, r30, 0x18
|
||||
/* 8003F170 0003C0D0 41 82 00 28 */ beq lbl_8003F198
|
||||
/* 8003F174 0003C0D4 A9 02 C5 F8 */ lha r8, lbl_805AE318@sda21(r2)
|
||||
/* 8003F174 0003C0D4 A9 02 C5 F8 */ lha r8, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 8003F178 0003C0D8 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 8003F17C 0003C0DC 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
|
||||
/* 8003F180 0003C0E0 38 80 06 EE */ li r4, 0x6ee
|
||||
|
@ -8432,7 +8432,7 @@ PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb:
|
|||
/* 800418FC 0003E85C 4E 80 04 21 */ bctrl
|
||||
lbl_80041900:
|
||||
/* 80041900 0003E860 2C 1E 00 07 */ cmpwi r30, 7
|
||||
/* 80041904 0003E864 A0 62 C5 FC */ lhz r3, lbl_805AE31C@sda21(r2)
|
||||
/* 80041904 0003E864 A0 62 C5 FC */ lhz r3, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80041908 0003E868 41 82 00 80 */ beq lbl_80041988
|
||||
/* 8004190C 0003E86C 40 80 00 14 */ bge lbl_80041920
|
||||
/* 80041910 0003E870 2C 1E 00 05 */ cmpwi r30, 5
|
||||
|
@ -8471,7 +8471,7 @@ lbl_8004196C:
|
|||
/* 80041980 0003E8E0 54 00 08 3C */ slwi r0, r0, 1
|
||||
/* 80041984 0003E8E4 7C 63 02 2E */ lhzx r3, r3, r0
|
||||
lbl_80041988:
|
||||
/* 80041988 0003E8E8 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 80041988 0003E8E8 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 8004198C 0003E8EC 54 64 04 3E */ clrlwi r4, r3, 0x10
|
||||
/* 80041990 0003E8F0 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 80041994 0003E8F4 41 82 00 1C */ beq lbl_800419B0
|
||||
|
@ -10966,7 +10966,7 @@ __sinit_CPlayerGun_cpp:
|
|||
/* 80043D6C 00040CCC B0 65 00 1A */ sth r3, 0x1a(r5)
|
||||
/* 80043D70 00040CD0 90 05 00 1C */ stw r0, 0x1c(r5)
|
||||
/* 80043D74 00040CD4 48 30 62 39 */ bl White__6CColorFv
|
||||
/* 80043D78 00040CD8 A1 42 C5 FC */ lhz r10, lbl_805AE31C@sda21(r2)
|
||||
/* 80043D78 00040CD8 A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80043D7C 00040CDC 39 00 00 07 */ li r8, 7
|
||||
/* 80043D80 00040CE0 81 23 00 00 */ lwz r9, 0(r3)
|
||||
/* 80043D84 00040CE4 38 CD A1 C4 */ addi r6, r13, lbl_805A8D84@sda21
|
||||
|
|
|
@ -3304,7 +3304,7 @@ lbl_800C7EA0:
|
|||
/* 800C8000 000C4F60 39 81 01 64 */ addi r12, r1, 0x164
|
||||
/* 800C8004 000C4F64 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 800C8008 000C4F68 39 61 00 94 */ addi r11, r1, 0x94
|
||||
/* 800C800C 000C4F6C A3 22 C5 FC */ lhz r25, lbl_805AE31C@sda21(r2)
|
||||
/* 800C800C 000C4F6C A3 22 C5 FC */ lhz r25, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 800C8010 000C4F70 FC 40 E0 90 */ fmr f2, f28
|
||||
/* 800C8014 000C4F74 D0 21 00 0C */ stfs f1, 0xc(r1)
|
||||
/* 800C8018 000C4F78 FC 60 D8 90 */ fmr f3, f27
|
||||
|
@ -3920,7 +3920,7 @@ lbl_800C8844:
|
|||
/* 800C8928 000C5888 3B 20 00 01 */ li r25, 1
|
||||
/* 800C892C 000C588C 4B F8 47 B1 */ bl AllocateUniqueId__13CStateManagerFv
|
||||
/* 800C8930 000C5890 A0 01 00 30 */ lhz r0, 0x30(r1)
|
||||
/* 800C8934 000C5894 A3 62 C5 FC */ lhz r27, lbl_805AE31C@sda21(r2)
|
||||
/* 800C8934 000C5894 A3 62 C5 FC */ lhz r27, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 800C8938 000C5898 B0 01 00 34 */ sth r0, 0x34(r1)
|
||||
/* 800C893C 000C589C 48 28 16 79 */ bl Black__6CColorFv
|
||||
/* 800C8940 000C58A0 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
|
||||
|
@ -4516,7 +4516,7 @@ lbl_800C910C:
|
|||
/* 800C920C 000C616C 3B C1 01 5C */ addi r30, r1, 0x15c
|
||||
/* 800C9210 000C6170 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 800C9214 000C6174 39 81 00 8C */ addi r12, r1, 0x8c
|
||||
/* 800C9218 000C6178 A3 42 C5 FC */ lhz r26, lbl_805AE31C@sda21(r2)
|
||||
/* 800C9218 000C6178 A3 42 C5 FC */ lhz r26, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 800C921C 000C617C 39 60 FF FF */ li r11, -1
|
||||
/* 800C9220 000C6180 D0 21 00 0C */ stfs f1, 0xc(r1)
|
||||
/* 800C9224 000C6184 FC 40 E0 90 */ fmr f2, f28
|
||||
|
@ -5535,7 +5535,7 @@ lbl_800CA054:
|
|||
/* 800CA120 000C7080 3B 40 00 01 */ li r26, 1
|
||||
/* 800CA124 000C7084 4B F8 2F B9 */ bl AllocateUniqueId__13CStateManagerFv
|
||||
/* 800CA128 000C7088 A0 01 00 30 */ lhz r0, 0x30(r1)
|
||||
/* 800CA12C 000C708C A3 62 C5 FC */ lhz r27, lbl_805AE31C@sda21(r2)
|
||||
/* 800CA12C 000C708C A3 62 C5 FC */ lhz r27, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 800CA130 000C7090 B0 01 00 34 */ sth r0, 0x34(r1)
|
||||
/* 800CA134 000C7094 48 27 FE 81 */ bl Black__6CColorFv
|
||||
/* 800CA138 000C7098 90 61 00 08 */ stw r3, 8(r1)
|
||||
|
@ -5885,7 +5885,7 @@ lbl_800CA580:
|
|||
/* 800CA638 000C7598 3B C0 00 01 */ li r30, 1
|
||||
/* 800CA63C 000C759C 4B F8 2A A1 */ bl AllocateUniqueId__13CStateManagerFv
|
||||
/* 800CA640 000C75A0 A0 01 00 30 */ lhz r0, 0x30(r1)
|
||||
/* 800CA644 000C75A4 A3 42 C5 FC */ lhz r26, lbl_805AE31C@sda21(r2)
|
||||
/* 800CA644 000C75A4 A3 42 C5 FC */ lhz r26, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 800CA648 000C75A8 B0 01 00 34 */ sth r0, 0x34(r1)
|
||||
/* 800CA64C 000C75AC 48 27 F9 69 */ bl Black__6CColorFv
|
||||
/* 800CA650 000C75B0 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
|
||||
|
@ -8599,7 +8599,7 @@ lbl_800CCDBC:
|
|||
/* 800CCE2C 000C9D8C 54 7A 04 3E */ clrlwi r26, r3, 0x10
|
||||
/* 800CCE30 000C9D90 48 00 00 08 */ b lbl_800CCE38
|
||||
lbl_800CCE34:
|
||||
/* 800CCE34 000C9D94 A3 42 C5 FC */ lhz r26, lbl_805AE31C@sda21(r2)
|
||||
/* 800CCE34 000C9D94 A3 42 C5 FC */ lhz r26, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
lbl_800CCE38:
|
||||
/* 800CCE38 000C9D98 2C 11 00 0D */ cmpwi r17, 0xd
|
||||
/* 800CCE3C 000C9D9C 41 80 00 14 */ blt lbl_800CCE50
|
||||
|
@ -12320,7 +12320,7 @@ lbl_800D0368:
|
|||
/* 800D0450 000CD3B0 39 81 00 B0 */ addi r12, r1, 0xb0
|
||||
/* 800D0454 000CD3B4 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 800D0458 000CD3B8 39 60 FF FF */ li r11, -1
|
||||
/* 800D045C 000CD3BC A3 02 C5 FC */ lhz r24, lbl_805AE31C@sda21(r2)
|
||||
/* 800D045C 000CD3BC A3 02 C5 FC */ lhz r24, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 800D0460 000CD3C0 FC 20 B0 90 */ fmr f1, f22
|
||||
/* 800D0464 000CD3C4 D2 E1 00 0C */ stfs f23, 0xc(r1)
|
||||
/* 800D0468 000CD3C8 FC 40 A8 90 */ fmr f2, f21
|
||||
|
@ -15279,7 +15279,7 @@ lbl_800D2E70:
|
|||
/* 800D2FA8 000CFF08 A0 01 00 30 */ lhz r0, 0x30(r1)
|
||||
/* 800D2FAC 000CFF0C 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
|
||||
/* 800D2FB0 000CFF10 38 83 66 A0 */ addi r4, r3, sZeroVector__9CVector3f@l
|
||||
/* 800D2FB4 000CFF14 A3 82 C5 FC */ lhz r28, lbl_805AE31C@sda21(r2)
|
||||
/* 800D2FB4 000CFF14 A3 82 C5 FC */ lhz r28, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 800D2FB8 000CFF18 B0 01 00 34 */ sth r0, 0x34(r1)
|
||||
/* 800D2FBC 000CFF1C 38 61 00 98 */ addi r3, r1, 0x98
|
||||
/* 800D2FC0 000CFF20 38 A1 00 60 */ addi r5, r1, 0x60
|
||||
|
@ -20115,7 +20115,7 @@ lbl_800D767C:
|
|||
/* 800D76EC 000D464C 39 41 00 B0 */ addi r10, r1, 0xb0
|
||||
/* 800D76F0 000D4650 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 800D76F4 000D4654 90 01 00 18 */ stw r0, 0x18(r1)
|
||||
/* 800D76F8 000D4658 4B FE B9 FD */ bl "__ct__13CScriptPickupF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC6CAABoxiiiiffffb"
|
||||
/* 800D76F8 000D4658 4B FE B9 FD */ bl "__ct__13CScriptPickupF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC6CAABoxQ212CPlayerState9EItemTypeiiUiffffb"
|
||||
/* 800D76FC 000D465C 7C 72 1B 78 */ mr r18, r3
|
||||
lbl_800D7700:
|
||||
/* 800D7700 000D4660 38 61 02 44 */ addi r3, r1, 0x244
|
||||
|
|
|
@ -4713,7 +4713,7 @@ lbl_801D2090:
|
|||
/* 801D23BC 001CF31C 90 8F 01 F8 */ stw r4, 0x1f8(r15)
|
||||
/* 801D23C0 001CF320 90 8F 02 1C */ stw r4, 0x21c(r15)
|
||||
/* 801D23C4 001CF324 40 82 00 08 */ bne lbl_801D23CC
|
||||
/* 801D23C8 001CF328 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 801D23C8 001CF328 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
lbl_801D23CC:
|
||||
/* 801D23CC 001CF32C 54 03 04 3E */ clrlwi r3, r0, 0x10
|
||||
/* 801D23D0 001CF330 48 11 65 E1 */ bl TranslateSFXID__11CSfxManagerFUs
|
||||
|
|
|
@ -6979,7 +6979,7 @@ lbl_8021BA7C:
|
|||
/* 8021BAF8 00218A58 48 0C CE B9 */ bl TranslateSFXID__11CSfxManagerFUs
|
||||
/* 8021BAFC 00218A5C 48 00 00 08 */ b lbl_8021BB04
|
||||
lbl_8021BB00:
|
||||
/* 8021BB00 00218A60 A0 62 C5 FC */ lhz r3, lbl_805AE31C@sda21(r2)
|
||||
/* 8021BB00 00218A60 A0 62 C5 FC */ lhz r3, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
lbl_8021BB04:
|
||||
/* 8021BB04 00218A64 B0 7D 00 86 */ sth r3, 0x86(r29)
|
||||
/* 8021BB08 00218A68 7F C3 F3 78 */ mr r3, r30
|
||||
|
|
|
@ -8,7 +8,7 @@ lbl_803DF4F8:
|
|||
# ROM: 0x3DC4F8
|
||||
.4byte 0
|
||||
.4byte 0
|
||||
.4byte __dt__13CScriptPickup
|
||||
.4byte __dt__13CScriptPickupFv
|
||||
.4byte Accept__13CScriptPickupFR8IVisitor
|
||||
.4byte PreThink__7CEntityFfR13CStateManager
|
||||
.4byte Think__13CScriptPickupFfR13CStateManager
|
||||
|
@ -851,8 +851,8 @@ lbl_800C3028:
|
|||
/* 800C3054 000BFFB4 38 21 00 F0 */ addi r1, r1, 0xf0
|
||||
/* 800C3058 000BFFB8 4E 80 00 20 */ blr
|
||||
|
||||
.global __dt__13CScriptPickup
|
||||
__dt__13CScriptPickup:
|
||||
.global __dt__13CScriptPickupFv
|
||||
__dt__13CScriptPickupFv:
|
||||
/* 800C305C 000BFFBC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 800C3060 000BFFC0 7C 08 02 A6 */ mflr r0
|
||||
/* 800C3064 000BFFC4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
|
@ -895,8 +895,8 @@ lbl_800C30D8:
|
|||
/* 800C30EC 000C004C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 800C30F0 000C0050 4E 80 00 20 */ blr
|
||||
|
||||
.global "__ct__13CScriptPickupF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC6CAABoxiiiiffffb"
|
||||
"__ct__13CScriptPickupF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC6CAABoxiiiiffffb":
|
||||
.global "__ct__13CScriptPickupF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC6CAABoxQ212CPlayerState9EItemTypeiiUiffffb"
|
||||
"__ct__13CScriptPickupF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC6CAABoxQ212CPlayerState9EItemTypeiiUiffffb":
|
||||
/* 800C30F4 000C0054 94 21 FE E0 */ stwu r1, -0x120(r1)
|
||||
/* 800C30F8 000C0058 7C 08 02 A6 */ mflr r0
|
||||
/* 800C30FC 000C005C 90 01 01 24 */ stw r0, 0x124(r1)
|
||||
|
|
|
@ -1625,7 +1625,7 @@ lbl_80150638:
|
|||
/* 80150660 0014D5C0 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
|
||||
/* 80150664 0014D5C4 40 82 00 60 */ bne lbl_801506C4
|
||||
/* 80150668 0014D5C8 A0 98 01 74 */ lhz r4, 0x174(r24)
|
||||
/* 8015066C 0014D5CC A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 8015066C 0014D5CC A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80150670 0014D5D0 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 80150674 0014D5D4 41 82 00 40 */ beq lbl_801506B4
|
||||
/* 80150678 0014D5D8 C0 58 00 60 */ lfs f2, 0x60(r24)
|
||||
|
@ -1673,7 +1673,7 @@ lbl_801506F0:
|
|||
/* 80150710 0014D670 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
|
||||
/* 80150714 0014D674 40 82 00 60 */ bne lbl_80150774
|
||||
/* 80150718 0014D678 A0 98 01 72 */ lhz r4, 0x172(r24)
|
||||
/* 8015071C 0014D67C A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 8015071C 0014D67C A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80150720 0014D680 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 80150724 0014D684 41 82 00 40 */ beq lbl_80150764
|
||||
/* 80150728 0014D688 C0 58 00 60 */ lfs f2, 0x60(r24)
|
||||
|
@ -1727,7 +1727,7 @@ lbl_801507CC:
|
|||
/* 801507D4 0014D734 98 01 00 28 */ stb r0, 0x28(r1)
|
||||
/* 801507D8 0014D738 41 82 00 FC */ beq lbl_801508D4
|
||||
/* 801507DC 0014D73C A0 78 01 70 */ lhz r3, 0x170(r24)
|
||||
/* 801507E0 0014D740 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 801507E0 0014D740 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801507E4 0014D744 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 801507E8 0014D748 41 82 00 F8 */ beq lbl_801508E0
|
||||
/* 801507EC 0014D74C C0 02 9D 9C */ lfs f0, lbl_805ABABC@sda21(r2)
|
||||
|
|
|
@ -459,7 +459,7 @@ lbl_801D6BA8:
|
|||
/* 801D6F00 001D3E60 93 FD 00 38 */ stw r31, 0x38(r29)
|
||||
/* 801D6F04 001D3E64 C0 02 AC 48 */ lfs f0, lbl_805AC968@sda21(r2)
|
||||
/* 801D6F08 001D3E68 90 FD 00 3C */ stw r7, 0x3c(r29)
|
||||
/* 801D6F0C 001D3E6C A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 801D6F0C 001D3E6C A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801D6F10 001D3E70 88 DD 00 40 */ lbz r6, 0x40(r29)
|
||||
/* 801D6F14 001D3E74 50 E6 3E 30 */ rlwimi r6, r7, 7, 0x18, 0x18
|
||||
/* 801D6F18 001D3E78 98 DD 00 40 */ stb r6, 0x40(r29)
|
||||
|
@ -523,4 +523,3 @@ lbl_805AC968:
|
|||
# ROM: 0x3F9208
|
||||
.4byte 0
|
||||
.4byte 0
|
||||
|
||||
|
|
|
@ -636,7 +636,7 @@ lbl_801B919C:
|
|||
/* 801B91A8 001B6108 48 0D 18 7D */ bl GetShotDamageInfo__10CGunWeaponCFRC10SShotParamR13CStateManager
|
||||
/* 801B91AC 001B610C 92 41 00 08 */ stw r18, 8(r1)
|
||||
/* 801B91B0 001B6110 63 84 08 00 */ ori r4, r28, 0x800
|
||||
/* 801B91B4 001B6114 A1 62 C5 FC */ lhz r11, lbl_805AE31C@sda21(r2)
|
||||
/* 801B91B4 001B6114 A1 62 C5 FC */ lhz r11, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801B91B8 001B6118 38 00 00 00 */ li r0, 0
|
||||
/* 801B91BC 001B611C 92 61 00 0C */ stw r19, 0xc(r1)
|
||||
/* 801B91C0 001B6120 7E A3 AB 78 */ mr r3, r21
|
||||
|
@ -1491,4 +1491,3 @@ lbl_803D1699:
|
|||
.byte 0x42, 0x75
|
||||
.asciz "sterMuzzle"
|
||||
.balign 4
|
||||
|
||||
|
|
|
@ -545,7 +545,7 @@ lbl_80199484:
|
|||
/* 801994F8 00196458 3A E1 00 50 */ addi r23, r1, 0x50
|
||||
/* 801994FC 0019645C D0 01 00 58 */ stfs f0, 0x58(r1)
|
||||
/* 80199500 00196460 3B 01 00 40 */ addi r24, r1, 0x40
|
||||
/* 80199504 00196464 A3 22 C5 FC */ lhz r25, lbl_805AE31C@sda21(r2)
|
||||
/* 80199504 00196464 A3 22 C5 FC */ lhz r25, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80199508 00196468 FF C0 08 90 */ fmr f30, f1
|
||||
/* 8019950C 0019646C A0 A5 00 00 */ lhz r5, 0(r5)
|
||||
/* 80199510 00196470 FF E0 10 90 */ fmr f31, f2
|
||||
|
|
|
@ -1614,7 +1614,7 @@ lbl_80198AE8:
|
|||
/* 80198B4C 00195AAC A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
|
||||
/* 80198B50 00195AB0 9A A1 00 70 */ stb r21, 0x70(r1)
|
||||
/* 80198B54 00195AB4 B0 01 00 30 */ sth r0, 0x30(r1)
|
||||
/* 80198B58 00195AB8 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 80198B58 00195AB8 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 80198B5C 00195ABC D0 01 00 74 */ stfs f0, 0x74(r1)
|
||||
/* 80198B60 00195AC0 D0 01 00 78 */ stfs f0, 0x78(r1)
|
||||
/* 80198B64 00195AC4 D0 01 00 7C */ stfs f0, 0x7c(r1)
|
||||
|
|
|
@ -2162,7 +2162,7 @@ lbl_801BB9CC:
|
|||
/* 801BBA44 001B89A4 B0 61 00 34 */ sth r3, 0x34(r1)
|
||||
/* 801BBA48 001B89A8 39 61 00 58 */ addi r11, r1, 0x58
|
||||
/* 801BBA4C 001B89AC 39 01 00 48 */ addi r8, r1, 0x48
|
||||
/* 801BBA50 001B89B0 A0 C2 C5 FC */ lhz r6, lbl_805AE31C@sda21(r2)
|
||||
/* 801BBA50 001B89B0 A0 C2 C5 FC */ lhz r6, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801BBA54 001B89B4 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 801BBA58 001B89B8 38 00 00 00 */ li r0, 0
|
||||
/* 801BBA5C 001B89BC 7F C3 F3 78 */ mr r3, r30
|
||||
|
@ -4402,4 +4402,3 @@ lbl_803D19D7:
|
|||
.4byte 0x3F3F2900
|
||||
.asciz "Whole Body"
|
||||
.balign 4
|
||||
|
||||
|
|
|
@ -3776,7 +3776,7 @@ GetTouchBounds__16CNewFlameThrowerCFv:
|
|||
/* 8026447C 002613DC A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
|
||||
/* 80264480 002613E0 9B 01 00 DC */ stb r24, 0xdc(r1)
|
||||
/* 80264484 002613E4 B0 01 00 30 */ sth r0, 0x30(r1)
|
||||
/* 80264488 002613E8 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 80264488 002613E8 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 8026448C 002613EC D0 01 00 E0 */ stfs f0, 0xe0(r1)
|
||||
/* 80264490 002613F0 D0 01 00 E4 */ stfs f0, 0xe4(r1)
|
||||
/* 80264494 002613F4 D0 01 00 E8 */ stfs f0, 0xe8(r1)
|
||||
|
|
|
@ -150,7 +150,7 @@ lbl_8014D98C:
|
|||
/* 8014DA28 0014A988 4B EF AD 5D */ bl InformListeners__13CStateManagerFRC9CVector3f16EListenNoiseType
|
||||
/* 8014DA2C 0014A98C 48 00 00 7C */ b lbl_8014DAA8
|
||||
lbl_8014DA30:
|
||||
/* 8014DA30 0014A990 A9 02 C5 F8 */ lha r8, lbl_805AE318@sda21(r2)
|
||||
/* 8014DA30 0014A990 A9 02 C5 F8 */ lha r8, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 8014DA34 0014A994 38 61 00 1C */ addi r3, r1, 0x1c
|
||||
/* 8014DA38 0014A998 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
|
||||
/* 8014DA3C 0014A99C 38 80 07 3F */ li r4, 0x73f
|
||||
|
|
|
@ -414,7 +414,7 @@ Think__21CTargetableProjectileFfR13CStateManager:
|
|||
/* 8013BDC8 00138D28 39 81 00 80 */ addi r12, r1, 0x80
|
||||
/* 8013BDCC 00138D2C 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 8013BDD0 00138D30 39 61 00 8C */ addi r11, r1, 0x8c
|
||||
/* 8013BDD4 00138D34 A0 02 C5 FC */ lhz r0, lbl_805AE31C@sda21(r2)
|
||||
/* 8013BDD4 00138D34 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 8013BDD8 00138D38 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8013BDDC 00138D3C 90 81 00 10 */ stw r4, 0x10(r1)
|
||||
/* 8013BDE0 00138D40 7F 26 CB 78 */ mr r6, r25
|
||||
|
|
|
@ -449,7 +449,7 @@ lbl_800E04E4:
|
|||
/* 800E05CC 000DD52C 3A 21 00 54 */ addi r17, r1, 0x54
|
||||
/* 800E05D0 000DD530 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 800E05D4 000DD534 39 81 00 60 */ addi r12, r1, 0x60
|
||||
/* 800E05D8 000DD538 A1 62 C5 FC */ lhz r11, lbl_805AE31C@sda21(r2)
|
||||
/* 800E05D8 000DD538 A1 62 C5 FC */ lhz r11, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 800E05DC 000DD53C 38 00 00 00 */ li r0, 0
|
||||
/* 800E05E0 000DD540 90 61 00 10 */ stw r3, 0x10(r1)
|
||||
/* 800E05E4 000DD544 7F A3 EB 78 */ mr r3, r29
|
||||
|
@ -1095,4 +1095,3 @@ lbl_803CE568:
|
|||
.asciz "ve2nd_2"
|
||||
.asciz "Wave2nd_3"
|
||||
.balign 4
|
||||
|
||||
|
|
|
@ -2368,7 +2368,7 @@ sub_801bf6ec:
|
|||
/* 801BF89C 001BC7FC 88 1F 03 D0 */ lbz r0, 0x3d0(r31)
|
||||
/* 801BF8A0 001BC800 38 60 00 01 */ li r3, 1
|
||||
/* 801BF8A4 001BC804 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
|
||||
/* 801BF8A8 001BC808 A9 22 C5 F8 */ lha r9, lbl_805AE318@sda21(r2)
|
||||
/* 801BF8A8 001BC808 A9 22 C5 F8 */ lha r9, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 801BF8AC 001BC80C 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
|
||||
/* 801BF8B0 001BC810 98 1F 03 D0 */ stb r0, 0x3d0(r31)
|
||||
/* 801BF8B4 001BC814 38 C3 66 A0 */ addi r6, r3, sZeroVector__9CVector3f@l
|
||||
|
@ -2914,7 +2914,7 @@ SetNewTarget__11CWaveBusterF9TUniqueId:
|
|||
/* 801C009C 001BCFFC 98 03 03 D0 */ stb r0, 0x3d0(r3)
|
||||
/* 801C00A0 001BD000 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
|
||||
/* 801C00A4 001BD004 38 C4 66 A0 */ addi r6, r4, sZeroVector__9CVector3f@l
|
||||
/* 801C00A8 001BD008 A9 22 C5 F8 */ lha r9, lbl_805AE318@sda21(r2)
|
||||
/* 801C00A8 001BD008 A9 22 C5 F8 */ lha r9, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 801C00AC 001BD00C D0 03 03 A0 */ stfs f0, 0x3a0(r3)
|
||||
/* 801C00B0 001BD010 38 A1 00 10 */ addi r5, r1, 0x10
|
||||
/* 801C00B4 001BD014 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
|
||||
|
@ -3014,7 +3014,7 @@ sub_801c0144:
|
|||
/* 801C01F4 001BD154 D0 01 00 AC */ stfs f0, 0xac(r1)
|
||||
/* 801C01F8 001BD158 3A C1 00 A8 */ addi r22, r1, 0xa8
|
||||
/* 801C01FC 001BD15C 39 81 00 98 */ addi r12, r1, 0x98
|
||||
/* 801C0200 001BD160 A1 62 C5 FC */ lhz r11, lbl_805AE31C@sda21(r2)
|
||||
/* 801C0200 001BD160 A1 62 C5 FC */ lhz r11, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
|
||||
/* 801C0204 001BD164 D0 01 00 B0 */ stfs f0, 0xb0(r1)
|
||||
/* 801C0208 001BD168 7F E3 FB 78 */ mr r3, r31
|
||||
/* 801C020C 001BD16C 7E E5 BB 78 */ mr r5, r23
|
||||
|
|
|
@ -95,7 +95,7 @@ play_sfx__12NWeaponTypesFUsbbs:
|
|||
/* 8028AB04 00287A64 7C E6 3B 78 */ mr r6, r7
|
||||
/* 8028AB08 00287A68 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 8028AB0C 00287A6C 38 E0 00 01 */ li r7, 1
|
||||
/* 8028AB10 00287A70 A9 02 C5 F8 */ lha r8, lbl_805AE318@sda21(r2)
|
||||
/* 8028AB10 00287A70 A9 02 C5 F8 */ lha r8, kMaxPriority__11CSfxManager@sda21(r2)
|
||||
/* 8028AB14 00287A74 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 8028AB18 00287A78 7C BF 2B 78 */ mr r31, r5
|
||||
/* 8028AB1C 00287A7C 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
|
||||
|
|
|
@ -14,7 +14,8 @@ public:
|
|||
|
||||
static const s16 kMaxPriority; // 0xFF
|
||||
static const s16 kMedPriority; // 0x7F
|
||||
static const int kAllAreas; // 0xFFFF
|
||||
static const u16 kInternalInvalidSfxId; // 0xFFFF
|
||||
static const int kAllAreas; // 0xFFFFFFFF
|
||||
static CSfxHandle AddEmitter(u16 id, const CVector3f& pos, const CVector3f& dir,
|
||||
bool useAcoustics, bool looped, s16 prio = kMedPriority,
|
||||
int areaId = kAllAreas);
|
||||
|
|
|
@ -27,7 +27,7 @@ public:
|
|||
: x0_blendMode(trans)
|
||||
, x1_matSetIdx(0)
|
||||
, x2_flags(kF_DepthCompare | kF_DepthUpdate)
|
||||
, x4_color(rgba, rgba, rgba, rgba) {}
|
||||
, x4_color(1.f, 1.f, 1.f, rgba) {}
|
||||
CModelFlags(ETrans trans, CColor color)
|
||||
: x0_blendMode(trans)
|
||||
, x1_matSetIdx(0)
|
||||
|
@ -55,23 +55,33 @@ public:
|
|||
, 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) {
|
||||
uint flags = GetOtherFlags();
|
||||
// CModelFlags(const CModelFlags& other) : x0_blendMode(other.x0_blendMode),
|
||||
// x1_matSetIdx(other.x1_matSetIdx), x2_flags(other.x2_flags), x4_color(other.x4_color) {}
|
||||
CModelFlags& operator=(const CModelFlags& other) {
|
||||
x0_blendMode = other.x0_blendMode;
|
||||
x1_matSetIdx = other.x1_matSetIdx;
|
||||
x2_flags = other.x2_flags;
|
||||
x4_color = other.x4_color;
|
||||
return *this;
|
||||
}
|
||||
|
||||
CModelFlags UseShaderSet(int matSet) const { return CModelFlags(*this, false, matSet); }
|
||||
CModelFlags DontLoadTextures() const {
|
||||
return CModelFlags(*this, GetOtherFlags() | kF_NoTextureLock);
|
||||
}
|
||||
CModelFlags DepthCompareUpdate(bool compare, bool update) const {
|
||||
uint newFlags = 0;
|
||||
if (compare) {
|
||||
flags |= kF_DepthCompare;
|
||||
} else {
|
||||
flags &= ~kF_DepthCompare;
|
||||
newFlags |= kF_DepthCompare;
|
||||
}
|
||||
if (update) {
|
||||
flags |= kF_DepthUpdate;
|
||||
} else {
|
||||
flags &= ~kF_DepthUpdate;
|
||||
newFlags |= kF_DepthUpdate;
|
||||
}
|
||||
return CModelFlags(*this, flags);
|
||||
return CModelFlags(*this, (x2_flags & ~(kF_DepthCompare | kF_DepthUpdate)) | newFlags);
|
||||
}
|
||||
CModelFlags DepthBackwards() const {
|
||||
return CModelFlags(*this, GetOtherFlags() | kF_DepthGreater);
|
||||
}
|
||||
CModelFlags DepthBackwards() { return CModelFlags(*this, GetOtherFlags() | kF_DepthGreater); }
|
||||
|
||||
ETrans GetTrans() const { return static_cast< ETrans >(x0_blendMode); }
|
||||
int GetShaderSet() const { return x1_matSetIdx; }
|
||||
|
@ -79,7 +89,7 @@ public:
|
|||
CColor GetColor() const { return x4_color; }
|
||||
|
||||
static CModelFlags Normal() { return CModelFlags(kT_Opaque, 1.f); }
|
||||
static CModelFlags AlphaBlended(f32 f);
|
||||
static CModelFlags AlphaBlended(f32 alpha) { return CModelFlags(kT_Blend, alpha); }
|
||||
static CModelFlags AlphaBlended(const CColor& color);
|
||||
static CModelFlags Additive(f32 f);
|
||||
static CModelFlags Additive(const CColor& color);
|
||||
|
@ -87,7 +97,7 @@ public:
|
|||
static CModelFlags ColorModulate(const CColor& color);
|
||||
|
||||
private:
|
||||
s8 x0_blendMode;
|
||||
u8 x0_blendMode;
|
||||
u8 x1_matSetIdx;
|
||||
u16 x2_flags;
|
||||
CColor x4_color;
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
#ifndef _CABSANGLE_HPP
|
||||
#define _CABSANGLE_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "Kyoto/Math/CMath.hpp"
|
||||
|
||||
class CAbsAngle {
|
||||
public:
|
||||
f32 AsDegrees() const { return x0_angle * (180.f / M_PIF); }
|
||||
f32 AsRadians() const { return x0_angle; }
|
||||
// ArcCosine__9CAbsAngleFf weak
|
||||
// -> calls ArcCosineR__5CMathFf
|
||||
|
||||
CAbsAngle& operator+=(const CAbsAngle& v) {
|
||||
x0_angle += v.x0_angle;
|
||||
return *this;
|
||||
}
|
||||
CAbsAngle& operator-=(const CAbsAngle& v) {
|
||||
x0_angle -= v.x0_angle;
|
||||
return *this;
|
||||
}
|
||||
CAbsAngle& operator*=(f32 v) {
|
||||
x0_angle *= v;
|
||||
return *this;
|
||||
}
|
||||
CAbsAngle& operator/=(f32 v) {
|
||||
x0_angle /= v;
|
||||
return *this;
|
||||
}
|
||||
|
||||
// __apl__9CAbsAngleFRC9CRelAngle
|
||||
// __ami__9CAbsAngleFRC9CRelAngle
|
||||
|
||||
static CAbsAngle FromDegrees(f32 deg) {
|
||||
return CAbsAngle(CMath::ClampRadians(deg * (M_PIF / 180.f)));
|
||||
}
|
||||
static CAbsAngle FromRadians(f32 rad) { return CAbsAngle(CMath::ClampRadians(rad)); }
|
||||
|
||||
private:
|
||||
CAbsAngle(f32 rad) : x0_angle(rad) {}
|
||||
|
||||
float x0_angle;
|
||||
};
|
||||
CHECK_SIZEOF(CAbsAngle, 0x4)
|
||||
|
||||
// __mi__FRC9CAbsAngleRC9CAbsAngle
|
||||
|
||||
static inline f32 cosine(const CAbsAngle& angle) { return cos(angle.AsRadians()); }
|
||||
|
||||
#endif
|
|
@ -43,7 +43,13 @@ public:
|
|||
// SlowSineR__5CMathFf global
|
||||
// FastCosR__5CMathFf global
|
||||
// GetBezierPoint__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3ff global
|
||||
// ClampRadians__5CMathFf weak
|
||||
static f32 ClampRadians(f32 rad) {
|
||||
f32 value = rad - static_cast<int>(rad * (M_PIF * 2.f)) * (M_PIF * 2.f);
|
||||
if (value < 0.f) {
|
||||
value += (M_PIF * 2.f);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
// ModF__5CMathFff weak
|
||||
static f32 Deg2Rad(f32 deg) { return Deg2Rev(deg) * (M_PIF * 2.f); }
|
||||
static f32 Deg2Rev(f32 deg) { return deg * (1.f / 360.f); }
|
||||
|
|
|
@ -43,9 +43,9 @@ public:
|
|||
f32 Get21() const { return m2.GetY(); }
|
||||
f32 Get22() const { return m2.GetZ(); }
|
||||
f32 Get23() const { return posZ; }
|
||||
// GetColumn__12CTransform4fCF5EDimX
|
||||
// GetColumn__12CTransform4fCF5EDimY
|
||||
// GetColumn__12CTransform4fCF5EDimZ
|
||||
CVector3f GetColumn(EDimX) const { return CVector3f(m0.GetX(), m1.GetX(), m2.GetX()); }
|
||||
CVector3f GetColumn(EDimY) const { return CVector3f(m0.GetY(), m1.GetY(), m2.GetY()); }
|
||||
CVector3f GetColumn(EDimZ) const { return CVector3f(m0.GetZ(), m1.GetZ(), m2.GetZ()); }
|
||||
// GetColumn__12CTransform4fCFi
|
||||
// GetCStyleMatrix__12CTransform4fCFv
|
||||
CTransform4f GetInverse() const;
|
||||
|
|
|
@ -323,11 +323,13 @@ public:
|
|||
void SetMuted(bool b) { xe5_26_muted = b; }
|
||||
void SetRenderParticleDatabaseInside(bool b) { xe6_29_renderParticleDBInside = b; }
|
||||
|
||||
void RemoveMaterial(EMaterialTypes, EMaterialTypes, EMaterialTypes, EMaterialTypes, CStateManager&);
|
||||
void RemoveMaterial(EMaterialTypes, EMaterialTypes, EMaterialTypes, EMaterialTypes,
|
||||
CStateManager&);
|
||||
void RemoveMaterial(EMaterialTypes, EMaterialTypes, EMaterialTypes, CStateManager&);
|
||||
void RemoveMaterial(EMaterialTypes, EMaterialTypes, CStateManager&);
|
||||
void RemoveMaterial(EMaterialTypes, CStateManager&);
|
||||
void AddMaterial(EMaterialTypes, EMaterialTypes, EMaterialTypes, EMaterialTypes, EMaterialTypes, CStateManager&);
|
||||
void AddMaterial(EMaterialTypes, EMaterialTypes, EMaterialTypes, EMaterialTypes, EMaterialTypes,
|
||||
CStateManager&);
|
||||
void AddMaterial(EMaterialTypes, EMaterialTypes, EMaterialTypes, EMaterialTypes, CStateManager&);
|
||||
void AddMaterial(EMaterialTypes, EMaterialTypes, EMaterialTypes, CStateManager&);
|
||||
void AddMaterial(EMaterialTypes, EMaterialTypes, CStateManager&);
|
||||
|
|
|
@ -22,7 +22,16 @@ private:
|
|||
|
||||
public:
|
||||
CAnimPlaybackParms(int animA, int animB, float blendWeight, bool animating)
|
||||
: x0_animA(animA), x4_animB(animB), x8_blendWeight(blendWeight), xc_animating(animating) {}
|
||||
: x0_animA(animA)
|
||||
, x4_animB(animB)
|
||||
, x8_blendWeight(blendWeight)
|
||||
, xc_animating(animating)
|
||||
, x10_(0)
|
||||
, x14_targetPos(nullptr)
|
||||
, x18_useLocator(false)
|
||||
, x1c_deltaOrient(nullptr)
|
||||
, x20_objectXf(nullptr)
|
||||
, x24_objectScale(nullptr) {}
|
||||
};
|
||||
CHECK_SIZEOF(CAnimPlaybackParms, 0x28)
|
||||
|
||||
|
|
|
@ -59,9 +59,10 @@ public:
|
|||
const CTransform4f& xf, const CModelData& mData, const CMaterialList& matList,
|
||||
const CAABox& aabb, const SMoverData& moverData, const CActorParameters& actParams,
|
||||
f32 stepUp, f32 stepDown);
|
||||
~CPhysicsActor() override;
|
||||
|
||||
// CActor
|
||||
~CPhysicsActor() override;
|
||||
void Render(const CStateManager&) const override;
|
||||
CVector3f GetOrbitPosition(const CStateManager& mgr) const override;
|
||||
CVector3f GetAimPosition(const CStateManager& mgr, f32 val) const override;
|
||||
|
||||
|
|
|
@ -1,9 +1,27 @@
|
|||
#ifndef _CFIDGET_HPP
|
||||
#define _CFIDGET_HPP
|
||||
#pragma once
|
||||
|
||||
enum EFidgetType { kFT_Invalid = -1, kFT_Minor, kFT_Major };
|
||||
#include "types.h"
|
||||
|
||||
// TODO CGunMotion?
|
||||
namespace SamusGun {
|
||||
enum EAnimationState {
|
||||
kAS_Wander,
|
||||
kAS_Fidget,
|
||||
kAS_Struck,
|
||||
kAS_FreeLook,
|
||||
kAS_ComboFire,
|
||||
kAS_Idle,
|
||||
kAS_BasePosition,
|
||||
};
|
||||
enum EFidgetType {
|
||||
kFT_Invalid = -1,
|
||||
kFT_Minor,
|
||||
kFT_Major,
|
||||
};
|
||||
} // namespace SamusGun
|
||||
|
||||
class CStateManager;
|
||||
|
||||
class CFidget {
|
||||
public:
|
||||
enum EState {
|
||||
|
@ -14,12 +32,12 @@ public:
|
|||
kS_StillMinorFidget,
|
||||
kS_StillMajorFidget,
|
||||
kS_StillHolsterBeam,
|
||||
kS_Loading
|
||||
kS_Loading,
|
||||
};
|
||||
|
||||
private:
|
||||
EState x0_state;
|
||||
EFidgetType x4_type;
|
||||
SamusGun::EFidgetType x4_type;
|
||||
int x8_delayTriggerBits;
|
||||
// 0: panel, 1: panel reset, 2: adjust nozzle, 3: panel buttons
|
||||
int xc_animSet;
|
||||
|
@ -32,16 +50,17 @@ private:
|
|||
float x28_majorDelayTimer;
|
||||
float x2c_holsterTimeSinceFire;
|
||||
float x30_timeUntilHolster;
|
||||
bool x34_24_loading;
|
||||
bool x34_24_loading : 1;
|
||||
|
||||
public:
|
||||
EState GetState() const { return x0_state; }
|
||||
EFidgetType GetType() const { return x4_type; }
|
||||
SamusGun::EFidgetType GetType() const { return x4_type; }
|
||||
int GetAnimSet() const { return xc_animSet; }
|
||||
EState Update(int fireButtonStates, bool bobbing, bool inStrikeCooldown, float dt, CStateManager& mgr);
|
||||
EState Update(int fireButtonStates, bool bobbing, bool inStrikeCooldown, float dt,
|
||||
CStateManager& mgr);
|
||||
void ResetMinor();
|
||||
void ResetAll();
|
||||
|
||||
void DoneLoading() { x34_24_loading = false; }
|
||||
};
|
||||
|
||||
#endif // _CFIDGET_HPP
|
||||
CHECK_SIZEOF(CFidget, 0x38)
|
||||
|
|
|
@ -1,15 +1,21 @@
|
|||
#ifndef _CPLAYERCAMERABOB_HPP_
|
||||
#define _CPLAYERCAMERABOB_HPP_
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "Kyoto/Math/CTransform4f.hpp"
|
||||
#include "Kyoto/Math/CVector2f.hpp"
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
#include "Kyoto/Math/CTransform4f.hpp"
|
||||
|
||||
#include "rstl/reserved_vector.hpp"
|
||||
|
||||
class CStateManager;
|
||||
|
||||
class CPlayerCameraBob {
|
||||
public:
|
||||
enum ECameraBobType { kCBT_Zero, kCBT_One };
|
||||
|
||||
enum ECameraBobType {
|
||||
kCBT_Zero,
|
||||
kCBT_One,
|
||||
};
|
||||
enum ECameraBobState {
|
||||
kCBS_Walk,
|
||||
kCBS_Orbit,
|
||||
|
@ -19,63 +25,9 @@ public:
|
|||
kCBS_TurningNoBob,
|
||||
kCBS_FreeLookNoBob,
|
||||
kCBS_GrappleNoBob,
|
||||
kCBS_Unspecified
|
||||
kCBS_Unspecified,
|
||||
};
|
||||
|
||||
static CVector2f GetCameraBobExtent() { return CVector2f(kCameraBobExtentX, kCameraBobExtentY); }
|
||||
static float GetCameraBobPeriod() { return kCameraBobPeriod; }
|
||||
static float GetOrbitBobScale() { return kOrbitBobScale; }
|
||||
static float GetMaxOrbitBobScale() { return kMaxOrbitBobScale; }
|
||||
static float GetSlowSpeedPeriodScale() { return kSlowSpeedPeriodScale; }
|
||||
|
||||
private:
|
||||
static float kCameraBobExtentX;
|
||||
static float kCameraBobExtentY;
|
||||
static float kCameraBobPeriod;
|
||||
static float kOrbitBobScale;
|
||||
static float kMaxOrbitBobScale;
|
||||
static float kSlowSpeedPeriodScale;
|
||||
static float kTargetMagnitudeTrackingRate;
|
||||
static float kLandingBobSpringConstant;
|
||||
static float kLandingBobSpringConstant2;
|
||||
static float kViewWanderRadius;
|
||||
static float kViewWanderSpeedMin;
|
||||
static float kViewWanderSpeedMax;
|
||||
static float kViewWanderRollVariation;
|
||||
static float kGunBobMagnitude;
|
||||
static float kHelmetBobMagnitude;
|
||||
static const float kLandingBobDamping;
|
||||
static const float kLandingBobDamping2;
|
||||
static const float kCameraDamping;
|
||||
|
||||
ECameraBobType x0_type;
|
||||
CVector2f x4_vec;
|
||||
float xc_bobPeriod;
|
||||
float x10_targetBobMagnitude;
|
||||
float x14_bobMagnitude;
|
||||
float x18_bobTimeScale;
|
||||
float x1c_bobTime;
|
||||
ECameraBobState x20_oldState;
|
||||
ECameraBobState x24_curState;
|
||||
bool x28_applyLandingTrans;
|
||||
bool x29_hardLand;
|
||||
CTransform4f x2c_cameraBobTransform;
|
||||
CVector3f x5c_playerVelocity;
|
||||
float x68_playerPeakFallVel;
|
||||
float x6c_landingVelocity;
|
||||
float x70_landingTranslation;
|
||||
float x74_camVelocity;
|
||||
float x78_camTranslation;
|
||||
CVector3f x7c_wanderPoints[4];
|
||||
float xb0_wanderPitches[4];
|
||||
float xc4_wanderTime;
|
||||
float xc8_viewWanderSpeed;
|
||||
u32 xcc_wanderIndex;
|
||||
CTransform4f xd0_viewWanderXf;
|
||||
float x100_wanderMagnitude;
|
||||
float x104_targetWanderMagnitude;
|
||||
|
||||
public:
|
||||
CPlayerCameraBob(ECameraBobType type, const CVector2f& vec, float bobPeriod);
|
||||
|
||||
CTransform4f GetViewWanderTransform() const;
|
||||
|
@ -97,7 +49,58 @@ public:
|
|||
float CalculateLandingTranslation() const;
|
||||
CTransform4f CalculateCameraBobTransformation() const;
|
||||
static void ReadTweaks(CInputStream& in);
|
||||
|
||||
static CVector2f GetCameraBobExtent() { return CVector2f(kCameraBobExtentX, kCameraBobExtentY); }
|
||||
static float GetCameraBobPeriod() { return kCameraBobPeriod; }
|
||||
static float GetOrbitBobScale() { return kOrbitBobScale; }
|
||||
static float GetMaxOrbitBobScale() { return kMaxOrbitBobScale; }
|
||||
static float GetSlowSpeedPeriodScale() { return kSlowSpeedPeriodScale; }
|
||||
|
||||
private:
|
||||
ECameraBobType x0_type;
|
||||
CVector2f x4_vec;
|
||||
float xc_bobPeriod;
|
||||
float x10_targetBobMagnitude;
|
||||
float x14_bobMagnitude;
|
||||
float x18_bobTimeScale;
|
||||
float x1c_bobTime;
|
||||
ECameraBobState x20_oldState;
|
||||
ECameraBobState x24_curState;
|
||||
bool x28_applyLandingTrans;
|
||||
bool x29_hardLand;
|
||||
CTransform4f x2c_cameraBobTransform;
|
||||
CVector3f x5c_playerVelocity;
|
||||
float x68_playerPeakFallVel;
|
||||
float x6c_landingVelocity;
|
||||
float x70_landingTranslation;
|
||||
float x74_camVelocity;
|
||||
float x78_camTranslation;
|
||||
rstl::reserved_vector< CVector3f, 4 > x7c_wanderPoints;
|
||||
rstl::reserved_vector< float, 4 > xb0_wanderPitches;
|
||||
float xc4_wanderTime;
|
||||
float xc8_viewWanderSpeed;
|
||||
uint xcc_wanderIndex;
|
||||
CTransform4f xd0_viewWanderXf;
|
||||
float x100_wanderMagnitude;
|
||||
float x104_targetWanderMagnitude;
|
||||
|
||||
static float kCameraBobExtentX;
|
||||
static float kCameraBobExtentY;
|
||||
static float kCameraBobPeriod;
|
||||
static float kOrbitBobScale;
|
||||
static float kMaxOrbitBobScale;
|
||||
static float kSlowSpeedPeriodScale;
|
||||
static float kTargetMagnitudeTrackingRate;
|
||||
static float kLandingBobSpringConstant;
|
||||
static float kLandingBobSpringConstant2;
|
||||
static float kViewWanderRadius;
|
||||
static float kViewWanderSpeedMin;
|
||||
static float kViewWanderSpeedMax;
|
||||
static float kViewWanderRollVariation;
|
||||
static float kGunBobMagnitude;
|
||||
static float kHelmetBobMagnitude;
|
||||
static const float kLandingBobDamping;
|
||||
static const float kLandingBobDamping2;
|
||||
static const float kCameraDamping;
|
||||
};
|
||||
|
||||
|
||||
#endif // _CPLAYERCAMERABOB_HPP_
|
||||
CHECK_SIZEOF(CPlayerCameraBob, 0x108)
|
||||
|
|
|
@ -1,21 +1,25 @@
|
|||
#ifndef _CPLAYERGUN_HPP
|
||||
#define _CPLAYERGUN_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/CActorLights.hpp"
|
||||
#include "MetroidPrime/CModelData.hpp"
|
||||
#include "MetroidPrime/Player/CFidget.hpp"
|
||||
#include "MetroidPrime/Player/CPlayerCameraBob.hpp"
|
||||
#include "MetroidPrime/Player/CPlayerState.hpp"
|
||||
#include "MetroidPrime/Weapons/CGunWeapon.hpp"
|
||||
|
||||
#include "Kyoto/Audio/CSfxHandle.hpp"
|
||||
#include "Kyoto/Math/CAABox.hpp"
|
||||
#include "Kyoto/Math/CTransform4f.hpp"
|
||||
|
||||
#include "rstl/pair.hpp"
|
||||
#include "rstl/reserved_vector.hpp"
|
||||
#include "rstl/single_ptr.hpp"
|
||||
#include "rstl/vector.hpp"
|
||||
|
||||
#include "math.h"
|
||||
enum EChargeState {
|
||||
kCS_Normal,
|
||||
kCS_Charged,
|
||||
};
|
||||
|
||||
class CGunWeapon;
|
||||
class CGunMotion;
|
||||
|
@ -29,27 +33,37 @@ class CPlasmaBeam;
|
|||
class CPhazonBeam;
|
||||
class CElementGen;
|
||||
class CWorldShadow;
|
||||
class CGenDescription;
|
||||
|
||||
class CPlayerGun {
|
||||
static float skTractorBeamFactor;
|
||||
|
||||
public:
|
||||
enum EMissileMode { kMM_Inactive, kMM_Active };
|
||||
enum EBWeapon { kBW_Bomb, kBW_PowerBomb };
|
||||
enum EPhazonBeamState { kPBS_Inactive, kPBS_Entering, kPBS_Exiting, kPBS_Active };
|
||||
enum EMissileMode {
|
||||
kMM_Inactive,
|
||||
kMM_Active,
|
||||
};
|
||||
enum EBWeapon {
|
||||
kBW_Bomb,
|
||||
kBW_PowerBomb,
|
||||
};
|
||||
enum EPhazonBeamState {
|
||||
kKBS_Inactive,
|
||||
kKBS_Entering,
|
||||
kKBS_Exiting,
|
||||
kKBS_Active,
|
||||
};
|
||||
enum EChargePhase {
|
||||
kGP_NotCharging,
|
||||
kGP_ChargeRequested,
|
||||
kGP_AnimAndSfx,
|
||||
kGP_FxGrowing,
|
||||
kGP_FxGrown,
|
||||
kGP_ComboXfer,
|
||||
kGP_ComboXferDone,
|
||||
kGP_ComboFire,
|
||||
kGP_ComboFireDone,
|
||||
kGP_ChargeCooldown,
|
||||
kGP_ChargeDone
|
||||
kCP_NotCharging,
|
||||
kCP_ChargeRequested,
|
||||
kCP_AnimAndSfx,
|
||||
kCP_FxGrowing,
|
||||
kCP_FxGrown,
|
||||
kCP_ComboXfer,
|
||||
kCP_ComboXferDone,
|
||||
kCP_ComboFire,
|
||||
kCP_ComboFireDone,
|
||||
kCP_ChargeCooldown,
|
||||
kCP_ChargeDone,
|
||||
};
|
||||
enum ENextState {
|
||||
kNS_StatusQuo,
|
||||
|
@ -61,21 +75,51 @@ public:
|
|||
kNS_SetupBeam,
|
||||
kNS_Seven,
|
||||
kNS_EnterPhazonBeam,
|
||||
kNS_ExitPhazonBeam
|
||||
kNS_ExitPhazonBeam,
|
||||
};
|
||||
enum EIdleState {
|
||||
kIS_NotIdle,
|
||||
kIS_Wander,
|
||||
kIS_Idle,
|
||||
kIS_Three,
|
||||
kIS_Four,
|
||||
};
|
||||
enum EIdleState { kIS_NotIdle, kIS_Wander, kIS_Idle, kIS_Three, kIS_Four };
|
||||
|
||||
bool IsCharging() const;
|
||||
float GetChargeBeamFactor() const;
|
||||
bool IsCharging() const { return x834_24_charging; }
|
||||
float GetChargeBeamFactor() const { return x834_24_charging ? x340_chargeBeamFactor : 0.f; }
|
||||
|
||||
static float GetTractorBeamFactor() { return skTractorBeamFactor; }
|
||||
|
||||
private:
|
||||
class CGunMorph {
|
||||
public:
|
||||
enum EGunState { kGS_InWipeDone, kGS_OutWipeDone, kGS_InWipe, kGS_OutWipe };
|
||||
enum EMorphEvent { kME_None, kME_InWipeDone, kME_OutWipeDone };
|
||||
enum EDir { kD_In, kD_Out, kD_Done };
|
||||
enum EGunState {
|
||||
kGS_InWipeDone,
|
||||
kGS_OutWipeDone,
|
||||
kGS_InWipe,
|
||||
kGS_OutWipe,
|
||||
};
|
||||
enum EMorphEvent {
|
||||
kME_None,
|
||||
kME_InWipeDone,
|
||||
kME_OutWipeDone,
|
||||
};
|
||||
enum EDir {
|
||||
kD_In,
|
||||
kD_Out,
|
||||
kD_Done,
|
||||
};
|
||||
|
||||
CGunMorph(float gunTransformTime, float holoHoldTime)
|
||||
: x4_gunTransformTime(gunTransformTime), x10_holoHoldTime(fabs(holoHoldTime)) {}
|
||||
|
||||
EMorphEvent Update(float inY, float outY, float dt);
|
||||
void StartWipe(EDir dir);
|
||||
|
||||
float GetYLerp() const { return x0_yLerp; }
|
||||
float GetTransitionFactor() const { return x18_transitionFactor; }
|
||||
EGunState GetGunState() const { return x20_gunState; }
|
||||
void SetWeaponChanged() { x24_25_weaponChanged = true; }
|
||||
|
||||
private:
|
||||
float x0_yLerp;
|
||||
|
@ -89,26 +133,29 @@ private:
|
|||
EGunState x20_gunState;
|
||||
bool x24_24_morphing : 1;
|
||||
bool x24_25_weaponChanged : 1;
|
||||
|
||||
public:
|
||||
CGunMorph(float gunTransformTime, float holoHoldTime)
|
||||
: x4_gunTransformTime(gunTransformTime), x10_holoHoldTime(fabs(holoHoldTime)) {}
|
||||
float GetYLerp() const { return x0_yLerp; }
|
||||
float GetTransitionFactor() const { return x18_transitionFactor; }
|
||||
EGunState GetGunState() const { return x20_gunState; }
|
||||
void SetWeaponChanged() { x24_25_weaponChanged = true; }
|
||||
EMorphEvent Update(float inY, float outY, float dt);
|
||||
void StartWipe(EDir dir);
|
||||
};
|
||||
|
||||
class CMotionState {
|
||||
public:
|
||||
enum EMotionState { kMS_Zero, kMS_One, kMS_LockOn, kMS_CancelLockOn };
|
||||
enum EFireState { kFS_NotFiring, kFS_StartFire, kFS_Firing };
|
||||
enum EMotionState {
|
||||
kMS_Zero,
|
||||
kMS_One,
|
||||
kMS_LockOn,
|
||||
kMS_CancelLockOn,
|
||||
};
|
||||
enum EFireState {
|
||||
kFS_NotFiring,
|
||||
kFS_StartFire,
|
||||
kFS_Firing,
|
||||
};
|
||||
|
||||
static void SetExtendDistance(float d) { kGunExtendDistance = d; }
|
||||
|
||||
void SetState(EMotionState state) { x20_state = state; }
|
||||
void Update(bool firing, float dt, CTransform4f& xf, CStateManager& mgr);
|
||||
|
||||
private:
|
||||
static float gGunExtendDistance;
|
||||
bool x0_24_extendParabola;
|
||||
bool x0_24_extendParabola : 1;
|
||||
float x4_extendParabolaDelayTimer;
|
||||
float x8_fireTime;
|
||||
float xc_curExtendDist;
|
||||
|
@ -119,10 +166,7 @@ private:
|
|||
EMotionState x20_state;
|
||||
EFireState x24_fireState;
|
||||
|
||||
public:
|
||||
static void SetExtendDistance(float d) { gGunExtendDistance = d; }
|
||||
void SetState(EMotionState state) { x20_state = state; }
|
||||
void Update(bool firing, float dt, CTransform4f& xf, CStateManager& mgr);
|
||||
static float kGunExtendDistance;
|
||||
};
|
||||
|
||||
CActorLights x0_lights;
|
||||
|
@ -130,26 +174,26 @@ private:
|
|||
CSfxHandle x2e4_invalidSfx;
|
||||
CSfxHandle x2e8_phazonBeamSfx;
|
||||
// 0x1: FireOrBomb, 0x2: MissileOrPowerBomb
|
||||
u32 x2ec_lastFireButtonStates;
|
||||
u32 x2f0_pressedFireButtonStates;
|
||||
u32 x2f4_fireButtonStates;
|
||||
uint x2ec_lastFireButtonStates;
|
||||
uint x2f0_pressedFireButtonStates;
|
||||
uint x2f4_fireButtonStates;
|
||||
// 0x1: beam mode, 0x2: missile mode, 0x4: missile ready, 0x8: morphing, 0x10: combo fire
|
||||
u32 x2f8_stateFlags;
|
||||
u32 x2fc_fidgetAnimBits;
|
||||
u32 x300_remainingMissiles;
|
||||
u32 x304_;
|
||||
u32 x308_bombCount;
|
||||
u32 x30c_rapidFireShots;
|
||||
uint x2f8_stateFlags;
|
||||
uint x2fc_fidgetAnimBits;
|
||||
uint x300_remainingMissiles;
|
||||
uint x304_;
|
||||
uint x308_bombCount;
|
||||
uint x30c_rapidFireShots;
|
||||
CPlayerState::EBeamId x310_currentBeam;
|
||||
CPlayerState::EBeamId x314_nextBeam;
|
||||
u32 x318_comboAmmoIdx;
|
||||
uint x318_comboAmmoIdx;
|
||||
EMissileMode x31c_missileMode;
|
||||
CPlayerState::EBeamId x320_currentAuxBeam;
|
||||
EIdleState x324_idleState;
|
||||
float x328_animSfxPitch;
|
||||
EChargePhase x32c_chargePhase;
|
||||
EChargeState x330_chargeState;
|
||||
u32 x334_;
|
||||
uint x334_;
|
||||
ENextState x338_nextState;
|
||||
EPhazonBeamState x33c_phazonBeamState;
|
||||
float x340_chargeBeamFactor;
|
||||
|
@ -191,7 +235,7 @@ private:
|
|||
TUniqueId x53c_lightId;
|
||||
rstl::vector< CToken > x540_handAnimTokens;
|
||||
CPlayerCameraBob x550_camBob;
|
||||
u32 x658_;
|
||||
uint x658_;
|
||||
float x65c_;
|
||||
float x660_;
|
||||
float x664_;
|
||||
|
@ -216,12 +260,12 @@ private:
|
|||
rstl::single_ptr< CPlasmaBeam > x758_plasmaBeam;
|
||||
rstl::single_ptr< CPhazonBeam > x75c_phazonBeam;
|
||||
rstl::reserved_vector< CGunWeapon*, 4 > x760_selectableBeams;
|
||||
rstl::single_ptr< CElementGen > x774_holoTransitionGen;
|
||||
rstl::single_ptr< CElementGen > x77c_comboXferGen;
|
||||
rstl::auto_ptr< CElementGen > x774_holoTransitionGen;
|
||||
rstl::auto_ptr< CElementGen > x77c_comboXferGen;
|
||||
rstl::reserved_vector< rstl::reserved_vector< TLockedToken< CGenDescription >, 2 >, 2 >
|
||||
x784_bombEffects;
|
||||
rstl::reserved_vector< TLockedToken< CGenDescription >, 5 > x7c0_auxMuzzleEffects;
|
||||
rstl::reserved_vector< rstl::single_ptr< CElementGen >, 5 > x800_auxMuzzleGenerators;
|
||||
rstl::reserved_vector< rstl::auto_ptr< CElementGen >, 5 > x800_auxMuzzleGenerators;
|
||||
rstl::single_ptr< CWorldShadow > x82c_shadow;
|
||||
s16 x830_chargeRumbleHandle;
|
||||
|
||||
|
@ -258,8 +302,7 @@ private:
|
|||
bool x835_27_intoPhazonBeam : 1;
|
||||
bool x835_28_bombReady : 1;
|
||||
bool x835_29_powerBombReady : 1;
|
||||
bool x835_30_inPhazonPool : 1;
|
||||
bool x835_31_actorAttached : 1;
|
||||
};
|
||||
CHECK_SIZEOF(CPlayerGun, 0x838)
|
||||
|
||||
#endif // _CPLAYERGUN_HPP
|
||||
|
|
|
@ -18,25 +18,26 @@ class CScriptPickup : public CPhysicsActor {
|
|||
float x270_curTime;
|
||||
float x274_tractorTime;
|
||||
float x278_delayTimer;
|
||||
TLockedToken<CGenDescription> x27c_pickupParticleDesc;
|
||||
|
||||
rstl::optional_object< TCachedToken< CGenDescription > > x27c_pickupParticleDesc;
|
||||
bool x28c_24_generated : 1;
|
||||
bool x28c_25_inTractor : 1;
|
||||
bool x28c_26_enableTractorTest : 1;
|
||||
|
||||
public:
|
||||
CScriptPickup(TUniqueId uid, const rstl::string& name, const CEntityInfo& info, const CTransform4f& xf,
|
||||
const CModelData& mData, const CActorParameters& aParams, const CAABox& aabb,
|
||||
CPlayerState::EItemType itemType, int amount, int capacity, CAssetId pickupEffect, float possibility,
|
||||
float lifeTime, float fadeInTime, float startDelay, bool active);
|
||||
CScriptPickup(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
|
||||
const CTransform4f& xf, const CModelData& mData, const CActorParameters& aParams,
|
||||
const CAABox& aabb, CPlayerState::EItemType itemType, int amount, int capacity,
|
||||
CAssetId pickupEffect, float possibility, float lifeTime, float fadeInTime,
|
||||
float startDelay, bool active);
|
||||
~CScriptPickup();
|
||||
|
||||
void Think(float, CStateManager&) override;
|
||||
void Touch(CActor&, CStateManager&) override;
|
||||
rstl::optional_object<CAABox> GetTouchBounds() const override;
|
||||
rstl::optional_object< CAABox > GetTouchBounds() const override;
|
||||
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
|
||||
void Render(const CStateManager&) const override;
|
||||
void Accept(IVisitor& visitor) override;
|
||||
|
||||
float GetPossibility() const;
|
||||
CPlayerState::EItemType GetItem() const;
|
||||
void SetSpawned();
|
||||
|
|
|
@ -1,6 +1,98 @@
|
|||
#ifndef _CGUNWEAPON_HPP_
|
||||
#define _CGUNWEAPON_HPP_
|
||||
#pragma once
|
||||
|
||||
enum EChargeState { kGS_Normal, kGS_Charged };
|
||||
#include "types.h"
|
||||
|
||||
#endif // _CGUNWEAPON_HPP_
|
||||
#include "MetroidPrime/Player/CPlayerState.hpp"
|
||||
#include "MetroidPrime/Weapons/WeaponTypes.hpp"
|
||||
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
#include "Kyoto/TToken.hpp"
|
||||
|
||||
#include "Collision/CMaterialList.hpp"
|
||||
|
||||
#include "rstl/optional_object.hpp"
|
||||
#include "rstl/reserved_vector.hpp"
|
||||
#include "rstl/single_ptr.hpp"
|
||||
|
||||
class CModelData;
|
||||
class CGenDescription;
|
||||
class CGunController;
|
||||
class CAnimCharacterSet;
|
||||
class CWeaponDescription;
|
||||
class CElementGen;
|
||||
class CRainSplashGenerator;
|
||||
|
||||
class CVelocityInfo {
|
||||
public:
|
||||
const CVector3f& GetVelocity(int i) const { return x0_vel[i]; }
|
||||
bool GetTargetHoming(int i) const { return x1c_targetHoming[i]; }
|
||||
void Clear() {
|
||||
x0_vel.clear();
|
||||
x1c_targetHoming.clear();
|
||||
x24_trat.clear();
|
||||
}
|
||||
|
||||
private:
|
||||
rstl::reserved_vector< CVector3f, 2 > x0_vel;
|
||||
rstl::reserved_vector< bool, 2 > x1c_targetHoming;
|
||||
rstl::reserved_vector< float, 2 > x24_trat;
|
||||
};
|
||||
|
||||
class CGunWeapon {
|
||||
public:
|
||||
// TODO ctor
|
||||
virtual ~CGunWeapon();
|
||||
// TODO other virtual methods
|
||||
|
||||
enum ESecondaryFxType {
|
||||
kSFT_None,
|
||||
kSFT_Charge,
|
||||
kSFT_ToCombo,
|
||||
kSFT_CancelCharge,
|
||||
};
|
||||
enum EFrozenFxType {
|
||||
kFFT_None,
|
||||
kFFT_Frozen,
|
||||
kFFT_Thawed,
|
||||
};
|
||||
|
||||
private:
|
||||
CVector3f x4_scale;
|
||||
rstl::optional_object< CModelData > x10_solidModelData;
|
||||
rstl::optional_object< CModelData > x60_holoModelData;
|
||||
rstl::optional_object< CModelData > xb0_suitArmModelData;
|
||||
rstl::single_ptr< CGunController > x100_gunController;
|
||||
TToken< CAnimCharacterSet > x104_gunCharacter;
|
||||
rstl::vector< CToken > x10c_anims;
|
||||
rstl::vector< CToken > x12c_deps;
|
||||
TToken< CAnimCharacterSet > x13c_armCharacter;
|
||||
rstl::reserved_vector< TCachedToken< CWeaponDescription >, 2 > x144_weapons;
|
||||
TCachedToken< CGenDescription > x160_xferEffect;
|
||||
rstl::reserved_vector< TCachedToken< CGenDescription >, 2 > x16c_muzzleEffects;
|
||||
rstl::reserved_vector< TCachedToken< CGenDescription >, 2 > x188_frozenEffects;
|
||||
rstl::reserved_vector< rstl::single_ptr< CElementGen >, 2 > x1a4_muzzleGenerators;
|
||||
rstl::single_ptr< CElementGen > x1b8_frozenGenerator;
|
||||
CRainSplashGenerator* x1bc_rainSplashGenerator;
|
||||
EWeaponType x1c0_weaponType;
|
||||
TUniqueId x1c4_playerId;
|
||||
EMaterialTypes x1c8_playerMaterial;
|
||||
ESecondaryFxType x1cc_enabledSecondaryEffect;
|
||||
CVelocityInfo x1d0_velInfo;
|
||||
CPlayerState::EBeamId x200_beamId;
|
||||
EFrozenFxType x204_frozenEffect;
|
||||
uint x208_muzzleEffectIdx;
|
||||
uint x20c_shaderIdx;
|
||||
// 0x1: load request, 0x2: muzzle fx, 0x4: projectile data, 0x8: anims, 0x10: everything else
|
||||
uint x210_loadFlags;
|
||||
CAssetId x214_ancsId;
|
||||
bool x218_24 : 1;
|
||||
bool x218_25_enableCharge : 1;
|
||||
bool x218_26_loaded : 1;
|
||||
// Initialize in selected beam's pose, rather than power beam's pose
|
||||
bool x218_27_subtypeBasePose : 1;
|
||||
bool x218_28_suitArmLocked : 1;
|
||||
bool x218_29_drawHologram : 1;
|
||||
|
||||
static const int skShootAnim[32];
|
||||
};
|
||||
CHECK_SIZEOF(CGunWeapon, 0x218)
|
||||
|
|
|
@ -91,7 +91,7 @@ CPhysicsState CPhysicsActor::GetPhysicsState() const {
|
|||
|
||||
void CPhysicsActor::SetPhysicsState(const CPhysicsState& state) {
|
||||
SetTranslation(state.GetTranslation());
|
||||
CQuaternion quat = state.GetOrientationWR();
|
||||
const CQuaternion& quat = state.GetOrientationWR();
|
||||
SetTransform(quat.BuildTransform4f(GetTranslation()));
|
||||
xfc_constantForce = state.GetConstantForceWR();
|
||||
x108_angularMomentum = state.GetAngularMomentumWR();
|
||||
|
@ -187,8 +187,6 @@ void CPhysicsActor::UseCollisionImpulses() {
|
|||
}
|
||||
|
||||
void CPhysicsActor::MoveToWR(const CVector3f& trans, float d) {
|
||||
float f = (1.f / d);
|
||||
CVector3f diff = trans - GetTranslation();
|
||||
xfc_constantForce = f * GetMass() * diff;
|
||||
xfc_constantForce = (trans - GetTransform().GetTranslation()) * GetMass() * (1.f / d);
|
||||
ComputeDerivedQuantities();
|
||||
}
|
||||
|
|
|
@ -256,13 +256,13 @@ CScriptMazeNode::CScriptMazeNode(TUniqueId uid, const rstl::string& name, const
|
|||
|
||||
void CScriptMazeNode::Accept(IVisitor& visitor) { visitor.Visit(*this); }
|
||||
|
||||
// static inline TUniqueId GenerateObject(CStateManager& mgr, const TEditorId& eid) {
|
||||
// bool wasGeneratingObject = mgr.IsGeneratingObject();
|
||||
// mgr.SetIsGeneratingObject(true);
|
||||
// TUniqueId objUid = mgr.GenerateObject(eid).second;
|
||||
// mgr.SetIsGeneratingObject(wasGeneratingObject);
|
||||
// return objUid;
|
||||
// }
|
||||
static inline TUniqueId GenerateObject(CStateManager& mgr, const TEditorId& eid) {
|
||||
bool wasGeneratingObject = mgr.IsGeneratingObject();
|
||||
mgr.SetIsGeneratingObject(true);
|
||||
TUniqueId objUid = mgr.GenerateObject(eid).second;
|
||||
mgr.SetIsGeneratingObject(wasGeneratingObject);
|
||||
return objUid;
|
||||
}
|
||||
|
||||
// struct GenerateObjectGuard {
|
||||
// GenerateObjectGuard(CStateManager& mgr) : mgr(mgr), wasGenerating(mgr.IsGeneratingObject()) {}
|
||||
|
@ -274,16 +274,16 @@ void CScriptMazeNode::Accept(IVisitor& visitor) { visitor.Visit(*this); }
|
|||
// TODO non-matching
|
||||
// https://decomp.me/scratch/IvHBz
|
||||
void CScriptMazeNode::GenerateObjects(CStateManager& mgr) {
|
||||
rstl::vector< SConnection >::iterator conn = ConnectionList().begin();
|
||||
for (; conn != ConnectionList().end(); ++conn) {
|
||||
rstl::vector< SConnection >::const_iterator conn = GetConnectionList().begin();
|
||||
for (; conn != GetConnectionList().end(); ++conn) {
|
||||
if (conn->x0_state != kSS_MaxReached || conn->x4_msg != kSM_Activate) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const CEntity* ent = mgr.ObjectById(mgr.GetIdForScript(conn->x8_objId));
|
||||
const CScriptEffect* scriptEffect = TCastToConstPtr< CScriptEffect >(ent);
|
||||
const CScriptActor* scriptActor = TCastToConstPtr< CScriptActor >(ent);
|
||||
const CScriptTrigger* scriptTrigger = TCastToConstPtr< CScriptTrigger >(ent);
|
||||
CEntity* ent = mgr.ObjectById(mgr.GetIdForScript(conn->x8_objId));
|
||||
CScriptEffect* scriptEffect = TCastToPtr< CScriptEffect >(ent);
|
||||
CScriptActor* scriptActor = TCastToPtr< CScriptActor >(ent);
|
||||
CScriptTrigger* scriptTrigger = TCastToPtr< CScriptTrigger >(ent);
|
||||
if (!scriptEffect && !scriptActor && !scriptTrigger) {
|
||||
continue;
|
||||
}
|
||||
|
@ -291,12 +291,12 @@ void CScriptMazeNode::GenerateObjects(CStateManager& mgr) {
|
|||
continue;
|
||||
}
|
||||
|
||||
// TUniqueId objUid = GenerateObject(mgr, conn->x8_objId);
|
||||
TUniqueId objUid = GenerateObject(mgr, conn->x8_objId);
|
||||
// TUniqueId objUid = kInvalidUniqueId;
|
||||
bool wasGeneratingObject = mgr.IsGeneratingObject();
|
||||
mgr.SetIsGeneratingObject(true);
|
||||
TUniqueId objUid = mgr.GenerateObject(conn->x8_objId).second;
|
||||
mgr.SetIsGeneratingObject(wasGeneratingObject);
|
||||
// bool wasGeneratingObject = mgr.IsGeneratingObject();
|
||||
// mgr.SetIsGeneratingObject(true);
|
||||
// TUniqueId objUid = mgr.GenerateObject(conn->x8_objId).second;
|
||||
// mgr.SetIsGeneratingObject(wasGeneratingObject);
|
||||
|
||||
if (CActor* actor = static_cast< CActor* >(mgr.ObjectById(objUid))) {
|
||||
mgr.SendScriptMsg(actor, GetUniqueId(), kSM_Activate);
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
#include "MetroidPrime/HUD/CSamusHud.hpp"
|
||||
|
||||
#include "Kyoto/CResFactory.hpp"
|
||||
#include "Kyoto/Math/CAbsAngle.hpp"
|
||||
#include "Kyoto/Math/CMath.hpp"
|
||||
#include "Kyoto/Math/CRelAngle.hpp"
|
||||
#include "Kyoto/Text/CStringTable.hpp"
|
||||
|
||||
#include "rstl/math.hpp"
|
||||
|
@ -39,18 +39,22 @@ CScriptPickup::CScriptPickup(TUniqueId uid, const rstl::string& name, const CEnt
|
|||
, x264_possibility(possibility)
|
||||
, x268_fadeInTime(fadeInTime)
|
||||
, x26c_lifeTime(lifeTime)
|
||||
, x278_delayTimer(startDelay) {
|
||||
, x270_curTime(0.f)
|
||||
, x278_delayTimer(startDelay)
|
||||
, x28c_24_generated(false)
|
||||
, x28c_25_inTractor(false)
|
||||
, x28c_26_enableTractorTest(false) {
|
||||
if (pickupEffect != kInvalidAssetId) {
|
||||
x27c_pickupParticleDesc = gpSimplePool->GetObj(SObjectTag('PART', pickupEffect));
|
||||
x27c_pickupParticleDesc->Lock();
|
||||
}
|
||||
|
||||
if (!x64_modelData.null() && x64_modelData->GetAnimationData()) {
|
||||
x64_modelData->AnimationData()->SetAnimation(CAnimPlaybackParms(0, -1, 1.f, true), false);
|
||||
if (HasAnimation()) {
|
||||
AnimationData()->SetAnimation(CAnimPlaybackParms(0, -1, 1.f, true), false);
|
||||
}
|
||||
|
||||
if (x278_delayTimer != 0.f) {
|
||||
xb4_drawFlags = CModelFlags(CModelFlags::kT_Blend, 0, CModelFlags::kF_DepthCompare,
|
||||
CColor(1.f, 1.f, 1.f, 0.f));
|
||||
if (x268_fadeInTime) {
|
||||
SetModelFlags(CModelFlags::AlphaBlended(0.f).DepthCompareUpdate(true, false));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -69,19 +73,19 @@ void CScriptPickup::Think(float dt, CStateManager& mgr) {
|
|||
|
||||
x270_curTime += dt;
|
||||
if (x28c_25_inTractor && (x26c_lifeTime - x270_curTime) < 2.f) {
|
||||
x270_curTime = rstl::max_val(x270_curTime - 2.f * dt, x26c_lifeTime - 2.f - FLT_EPSILON);
|
||||
x270_curTime = rstl::max_val(x26c_lifeTime - 2.f - FLT_EPSILON, x270_curTime - 2.f * dt);
|
||||
}
|
||||
|
||||
CModelFlags drawFlags(CModelFlags::kT_Opaque, CColor(1.f, 1.f, 1.f, 1.f));
|
||||
CModelFlags drawFlags = CModelFlags::Normal();
|
||||
|
||||
if (x268_fadeInTime != 0.f) {
|
||||
if (x268_fadeInTime) {
|
||||
if (x270_curTime < x268_fadeInTime) {
|
||||
drawFlags = CModelFlags(CModelFlags::kT_Blend, 0, CModelFlags::kF_DepthCompare,
|
||||
CColor(1.f, 1.f, 1.f, x270_curTime / x268_fadeInTime));
|
||||
drawFlags =
|
||||
CModelFlags::AlphaBlended(x270_curTime / x268_fadeInTime).DepthCompareUpdate(true, false);
|
||||
} else {
|
||||
x268_fadeInTime = 0.f;
|
||||
}
|
||||
} else if (x26c_lifeTime != 0.f) {
|
||||
} else if (x26c_lifeTime) {
|
||||
float alpha = 1.f;
|
||||
if (x26c_lifeTime < 2.f) {
|
||||
alpha = 1.f - (x26c_lifeTime / x270_curTime);
|
||||
|
@ -89,13 +93,12 @@ void CScriptPickup::Think(float dt, CStateManager& mgr) {
|
|||
alpha = (x26c_lifeTime - x270_curTime) * 0.5f;
|
||||
}
|
||||
|
||||
drawFlags = CModelFlags(CModelFlags::kT_Blend, 0, CModelFlags::kF_DepthCompare,
|
||||
CColor(1.f, 1.f, 1.f, alpha));
|
||||
drawFlags = CModelFlags::AlphaBlended(alpha).DepthCompareUpdate(true, false);
|
||||
}
|
||||
|
||||
xb4_drawFlags = drawFlags;
|
||||
SetModelFlags(drawFlags);
|
||||
|
||||
if (!x64_modelData.null() && x64_modelData->HasAnimation()) {
|
||||
if (HasAnimation()) {
|
||||
SAdvancementDeltas deltas = UpdateAnimation(dt, mgr, true);
|
||||
MoveToOR(deltas.GetOffsetDelta(), dt);
|
||||
RotateToOR(deltas.GetOrientationDelta(), dt);
|
||||
|
@ -103,30 +106,24 @@ void CScriptPickup::Think(float dt, CStateManager& mgr) {
|
|||
|
||||
if (x28c_25_inTractor) {
|
||||
CVector3f posDelta =
|
||||
mgr.GetPlayer()->GetTranslation() + (CVector3f::Up() * 2.0) - GetTranslation();
|
||||
(mgr.GetPlayer()->GetTranslation() + CVector3f::Up()) * 2.0 - GetTranslation();
|
||||
x274_tractorTime += dt;
|
||||
posDelta = posDelta.AsNormalized() * (20.f * (0.5f * rstl::min_val(2.f, x274_tractorTime)));
|
||||
|
||||
if (x28c_26_enableTractorTest && (mgr.GetPlayer()->GetPlayerGun()->IsCharging()
|
||||
? mgr.GetPlayer()->GetPlayerGun()->GetChargeBeamFactor()
|
||||
: 0.f) < CPlayerGun::GetTractorBeamFactor()) {
|
||||
if (x28c_26_enableTractorTest && mgr.GetPlayer()->GetPlayerGun()->GetChargeBeamFactor() <
|
||||
CPlayerGun::GetTractorBeamFactor()) {
|
||||
x28c_26_enableTractorTest = false;
|
||||
x28c_25_inTractor = false;
|
||||
posDelta = CVector3f::Zero();
|
||||
}
|
||||
SetVelocityWR(posDelta);
|
||||
} else if (x28c_24_generated) {
|
||||
const float chargeFactor = mgr.GetPlayer()->GetPlayerGun()->IsCharging()
|
||||
? mgr.GetPlayer()->GetPlayerGun()->GetChargeBeamFactor()
|
||||
: 0.f;
|
||||
|
||||
if (chargeFactor > CPlayerGun::GetTractorBeamFactor()) {
|
||||
const CVector3f posDelta =
|
||||
GetTranslation() - mgr.GetCameraManager()->GetFirstPersonCamera()->GetTranslation();
|
||||
const float relFov = CRelAngle::FromDegrees(gpTweakGame->GetFirstPersonFOV()).AsRadians();
|
||||
if (CVector3f::Dot(
|
||||
mgr.GetCameraManager()->GetFirstPersonCamera()->GetTransform().GetForward(),
|
||||
posDelta.AsNormalized()) > cos(relFov) &&
|
||||
if (mgr.GetPlayer()->GetPlayerGun()->GetChargeBeamFactor() >
|
||||
CPlayerGun::GetTractorBeamFactor()) {
|
||||
const CFirstPersonCamera* camera = mgr.GetCameraManager()->GetFirstPersonCamera();
|
||||
CVector3f posDelta = GetTranslation() - camera->GetTranslation();
|
||||
CAbsAngle fov = CAbsAngle::FromDegrees(gpTweakGame->GetFirstPersonFOV());
|
||||
if (CVector3f::Dot(camera->GetTransform().GetColumn(kDY), posDelta.AsNormalized()) >
|
||||
cosine(fov) &&
|
||||
posDelta.MagSquared() < (30.f * 30.f)) {
|
||||
x28c_25_inTractor = true;
|
||||
x28c_26_enableTractorTest = true;
|
||||
|
@ -135,7 +132,7 @@ void CScriptPickup::Think(float dt, CStateManager& mgr) {
|
|||
}
|
||||
}
|
||||
|
||||
if (x26c_lifeTime != 0.f && x270_curTime > x26c_lifeTime) {
|
||||
if (x26c_lifeTime && x270_curTime > x26c_lifeTime) {
|
||||
mgr.FreeScriptObject(GetUniqueId());
|
||||
}
|
||||
}
|
||||
|
@ -201,8 +198,8 @@ void CScriptPickup::Render(const CStateManager& mgr) const override { CPhysicsAc
|
|||
|
||||
void CScriptPickup::Accept(IVisitor& visitor) { visitor.Visit(*this); }
|
||||
|
||||
float CScriptPickup::GetPossibility() const { return x264_possibility; }
|
||||
|
||||
CPlayerState::EItemType CScriptPickup::GetItem() const { return x258_itemType; }
|
||||
|
||||
float CScriptPickup::GetPossibility() const { return x264_possibility; }
|
||||
|
||||
void CScriptPickup::SetSpawned() { x28c_24_generated = true; }
|
||||
|
|
|
@ -826,7 +826,7 @@ void CScriptSpecialFunction::ThinkSpinnerController(float dt, CStateManager& mgr
|
|||
f28 = x138_ - f28; // always 0?
|
||||
if (close_enough(x138_, 1.f)) {
|
||||
if (!x1e4_27_sfx3Played) {
|
||||
if (x174_sfx3 != InvalidSfxId) {
|
||||
if (x174_sfx3 != CSfxManager::kInternalInvalidSfxId) {
|
||||
CSfxManager::AddEmitter(x174_sfx3, GetTranslation(), CVector3f::Zero(), true,
|
||||
false);
|
||||
}
|
||||
|
@ -842,7 +842,7 @@ void CScriptSpecialFunction::ThinkSpinnerController(float dt, CStateManager& mgr
|
|||
|
||||
if (close_enough(x138_, 0.f)) {
|
||||
if (!x1e4_26_sfx2Played) {
|
||||
if (x172_sfx2 != InvalidSfxId) {
|
||||
if (x172_sfx2 != CSfxManager::kInternalInvalidSfxId) {
|
||||
CSfxManager::AddEmitter(x172_sfx2, GetTranslation(), CVector3f::Zero(), true,
|
||||
false);
|
||||
}
|
||||
|
@ -859,10 +859,10 @@ void CScriptSpecialFunction::ThinkSpinnerController(float dt, CStateManager& mgr
|
|||
rstl::optional_object< float > unused = x184_.GetAverage();
|
||||
|
||||
if (noSfxPlayed) {
|
||||
if (x170_sfx1 != InvalidSfxId) {
|
||||
if (x170_sfx1 != CSfxManager::kInternalInvalidSfxId) {
|
||||
bool b = f28 >= 0.f;
|
||||
if (noSfxPlayed) {
|
||||
x184_.AddValue(b ? u8(100) : u8(0x7F));
|
||||
x184_.AddValue(b ? uchar(100) : uchar(0x7F));
|
||||
} else {
|
||||
x184_.AddValue(0.f);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue