.include "macros.inc" .comm kDefaultPosition__6CLight, 0xC, 4 .comm lbl_805A53D4, 0xC, 4 # MWCC .comm bug .comm kDefaultDirection__6CLight, 0xC, 4 .section .ctors, "wa" lbl_ctor: .4byte __sinit_CLight_cpp .section .sdata .balign 8 .global lbl_805A8810 lbl_805A8810: # ROM: 0x3F61B0 .4byte 0x3D70F0F1 .global lbl_805A8814 lbl_805A8814: # ROM: 0x3F61B4 .float 0.2 .global lbl_805A8818 lbl_805A8818: # ROM: 0x3F61B8 .4byte 0x3D70F0F1 .global lbl_805A881C lbl_805A881C: # ROM: 0x3F61BC .float 0.2 .section .text, "ax" .global GetNormalIndependentLightingAtPoint__6CLightCFRC9CVector3f GetNormalIndependentLightingAtPoint__6CLightCFRC9CVector3f: /* 80306024 00302F84 94 21 FF B0 */ stwu r1, -0x50(r1) /* 80306028 00302F88 7C 08 02 A6 */ mflr r0 /* 8030602C 00302F8C 90 01 00 54 */ stw r0, 0x54(r1) /* 80306030 00302F90 DB E1 00 40 */ stfd f31, 0x40(r1) /* 80306034 00302F94 F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0 /* 80306038 00302F98 DB C1 00 30 */ stfd f30, 0x30(r1) /* 8030603C 00302F9C F3 C1 00 38 */ psq_st f30, 56(r1), 0, qr0 /* 80306040 00302FA0 DB A1 00 20 */ stfd f29, 0x20(r1) /* 80306044 00302FA4 F3 A1 00 28 */ psq_st f29, 40(r1), 0, qr0 /* 80306048 00302FA8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8030604C 00302FAC 93 C1 00 18 */ stw r30, 0x18(r1) /* 80306050 00302FB0 7C 7E 1B 78 */ mr r30, r3 /* 80306054 00302FB4 7C 9F 23 78 */ mr r31, r4 /* 80306058 00302FB8 E0 3F A0 1A */ psq_l f1, 26(r31), 1, qr2 /* 8030605C 00302FBC C0 02 C7 7C */ lfs f0, lbl_805AE49C@sda21(r2) /* 80306060 00302FC0 EF E0 00 72 */ fmuls f31, f0, f1 /* 80306064 00302FC4 E0 3F A0 19 */ psq_l f1, 25(r31), 1, qr2 /* 80306068 00302FC8 EF C0 00 72 */ fmuls f30, f0, f1 /* 8030606C 00302FCC E0 3F A0 18 */ psq_l f1, 24(r31), 1, qr2 /* 80306070 00302FD0 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80306074 00302FD4 EF A0 00 72 */ fmuls f29, f0, f1 /* 80306078 00302FD8 2C 00 00 03 */ cmpwi r0, 3 /* 8030607C 00302FDC 40 82 00 14 */ bne lbl_80306090 /* 80306080 00302FE0 D3 BE 00 00 */ stfs f29, 0(r30) /* 80306084 00302FE4 D3 DE 00 04 */ stfs f30, 4(r30) /* 80306088 00302FE8 D3 FE 00 08 */ stfs f31, 8(r30) /* 8030608C 00302FEC 48 00 00 98 */ b lbl_80306124 lbl_80306090: /* 80306090 00302FF0 C0 3F 00 04 */ lfs f1, 4(r31) /* 80306094 00302FF4 38 61 00 0C */ addi r3, r1, 0xc /* 80306098 00302FF8 C0 05 00 04 */ lfs f0, 4(r5) /* 8030609C 00302FFC C0 7F 00 08 */ lfs f3, 8(r31) /* 803060A0 00303000 C0 45 00 08 */ lfs f2, 8(r5) /* 803060A4 00303004 EC 81 00 28 */ fsubs f4, f1, f0 /* 803060A8 00303008 C0 3F 00 00 */ lfs f1, 0(r31) /* 803060AC 0030300C C0 05 00 00 */ lfs f0, 0(r5) /* 803060B0 00303010 EC 43 10 28 */ fsubs f2, f3, f2 /* 803060B4 00303014 D0 81 00 10 */ stfs f4, 0x10(r1) /* 803060B8 00303018 EC 01 00 28 */ fsubs f0, f1, f0 /* 803060BC 0030301C D0 41 00 14 */ stfs f2, 0x14(r1) /* 803060C0 00303020 D0 01 00 0C */ stfs f0, 0xc(r1) /* 803060C4 00303024 48 00 E7 F5 */ bl Magnitude__9CVector3fCFv /* 803060C8 00303028 FC 40 08 18 */ frsp f2, f1 /* 803060CC 0030302C C0 02 C7 78 */ lfs f0, gkEpsilon32@sda21(r2) /* 803060D0 00303030 D0 21 00 08 */ stfs f1, 8(r1) /* 803060D4 00303034 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 803060D8 00303038 40 80 00 0C */ bge lbl_803060E4 /* 803060DC 0030303C 38 62 C7 78 */ addi r3, r2, gkEpsilon32@sda21 /* 803060E0 00303040 48 00 00 08 */ b lbl_803060E8 lbl_803060E4: /* 803060E4 00303044 38 61 00 08 */ addi r3, r1, 8 lbl_803060E8: /* 803060E8 00303048 C0 83 00 00 */ lfs f4, 0(r3) /* 803060EC 0030304C C0 5F 00 2C */ lfs f2, 0x2c(r31) /* 803060F0 00303050 C0 3F 00 28 */ lfs f1, 0x28(r31) /* 803060F4 00303054 C0 1F 00 24 */ lfs f0, 0x24(r31) /* 803060F8 00303058 EC 42 01 32 */ fmuls f2, f2, f4 /* 803060FC 0030305C C0 62 C7 80 */ lfs f3, lbl_805AE4A0@sda21(r2) /* 80306100 00303060 EC 01 01 3A */ fmadds f0, f1, f4, f0 /* 80306104 00303064 EC 04 00 BA */ fmadds f0, f4, f2, f0 /* 80306108 00303068 EC 03 00 24 */ fdivs f0, f3, f0 /* 8030610C 0030306C EC 40 07 72 */ fmuls f2, f0, f29 /* 80306110 00303070 EC 20 07 B2 */ fmuls f1, f0, f30 /* 80306114 00303074 EC 00 07 F2 */ fmuls f0, f0, f31 /* 80306118 00303078 D0 5E 00 00 */ stfs f2, 0(r30) /* 8030611C 0030307C D0 3E 00 04 */ stfs f1, 4(r30) /* 80306120 00303080 D0 1E 00 08 */ stfs f0, 8(r30) lbl_80306124: /* 80306124 00303084 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0 /* 80306128 00303088 CB E1 00 40 */ lfd f31, 0x40(r1) /* 8030612C 0030308C E3 C1 00 38 */ psq_l f30, 56(r1), 0, qr0 /* 80306130 00303090 CB C1 00 30 */ lfd f30, 0x30(r1) /* 80306134 00303094 E3 A1 00 28 */ psq_l f29, 40(r1), 0, qr0 /* 80306138 00303098 CB A1 00 20 */ lfd f29, 0x20(r1) /* 8030613C 0030309C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80306140 003030A0 80 01 00 54 */ lwz r0, 0x54(r1) /* 80306144 003030A4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80306148 003030A8 7C 08 03 A6 */ mtlr r0 /* 8030614C 003030AC 38 21 00 50 */ addi r1, r1, 0x50 /* 80306150 003030B0 4E 80 00 20 */ blr .global GetIntensity__6CLightCFv GetIntensity__6CLightCFv: /* 80306154 003030B4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80306158 003030B8 88 83 00 4C */ lbz r4, 0x4c(r3) /* 8030615C 003030BC 54 80 CF FF */ rlwinm. r0, r4, 0x19, 0x1f, 0x1f /* 80306160 003030C0 41 82 00 84 */ beq lbl_803061E4 /* 80306164 003030C4 38 00 00 00 */ li r0, 0 /* 80306168 003030C8 C0 62 C7 80 */ lfs f3, lbl_805AE4A0@sda21(r2) /* 8030616C 003030CC 50 04 3E 30 */ rlwimi r4, r0, 7, 0x18, 0x18 /* 80306170 003030D0 98 83 00 4C */ stb r4, 0x4c(r3) /* 80306174 003030D4 80 03 00 1C */ lwz r0, 0x1c(r3) /* 80306178 003030D8 2C 00 00 04 */ cmpwi r0, 4 /* 8030617C 003030DC 40 82 00 08 */ bne lbl_80306184 /* 80306180 003030E0 C0 63 00 30 */ lfs f3, 0x30(r3) lbl_80306184: /* 80306184 003030E4 E0 23 A0 1A */ psq_l f1, 26(r3), 1, qr2 /* 80306188 003030E8 C0 02 C7 7C */ lfs f0, lbl_805AE49C@sda21(r2) /* 8030618C 003030EC EC 20 00 72 */ fmuls f1, f0, f1 /* 80306190 003030F0 D0 21 00 08 */ stfs f1, 8(r1) /* 80306194 003030F4 E0 43 A0 19 */ psq_l f2, 25(r3), 1, qr2 /* 80306198 003030F8 EC 00 00 B2 */ fmuls f0, f0, f2 /* 8030619C 003030FC FC 00 08 40 */ fcmpo cr0, f0, f1 /* 803061A0 00303100 D0 01 00 0C */ stfs f0, 0xc(r1) /* 803061A4 00303104 40 80 00 0C */ bge lbl_803061B0 /* 803061A8 00303108 38 81 00 08 */ addi r4, r1, 8 /* 803061AC 0030310C 48 00 00 08 */ b lbl_803061B4 lbl_803061B0: /* 803061B0 00303110 38 81 00 0C */ addi r4, r1, 0xc lbl_803061B4: /* 803061B4 00303114 E0 23 A0 18 */ psq_l f1, 24(r3), 1, qr2 /* 803061B8 00303118 C0 02 C7 7C */ lfs f0, lbl_805AE49C@sda21(r2) /* 803061BC 0030311C EC 20 00 72 */ fmuls f1, f0, f1 /* 803061C0 00303120 D0 21 00 10 */ stfs f1, 0x10(r1) /* 803061C4 00303124 C0 04 00 00 */ lfs f0, 0(r4) /* 803061C8 00303128 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 803061CC 0030312C 40 80 00 08 */ bge lbl_803061D4 /* 803061D0 00303130 48 00 00 08 */ b lbl_803061D8 lbl_803061D4: /* 803061D4 00303134 38 81 00 10 */ addi r4, r1, 0x10 lbl_803061D8: /* 803061D8 00303138 C0 04 00 00 */ lfs f0, 0(r4) /* 803061DC 0030313C EC 03 00 32 */ fmuls f0, f3, f0 /* 803061E0 00303140 D0 03 00 48 */ stfs f0, 0x48(r3) lbl_803061E4: /* 803061E4 00303144 C0 23 00 48 */ lfs f1, 0x48(r3) /* 803061E8 00303148 38 21 00 20 */ addi r1, r1, 0x20 /* 803061EC 0030314C 4E 80 00 20 */ blr .global CalculateLightRadius__6CLightCFv CalculateLightRadius__6CLightCFv: /* 803061F0 00303150 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803061F4 00303154 7C 08 02 A6 */ mflr r0 /* 803061F8 00303158 C0 22 C7 8C */ lfs f1, lbl_805AE4AC@sda21(r2) /* 803061FC 0030315C 90 01 00 14 */ stw r0, 0x14(r1) /* 80306200 00303160 93 E1 00 0C */ stw r31, 0xc(r1) /* 80306204 00303164 7C 7F 1B 78 */ mr r31, r3 /* 80306208 00303168 C0 03 00 28 */ lfs f0, 0x28(r3) /* 8030620C 0030316C FC 00 08 40 */ fcmpo cr0, f0, f1 /* 80306210 00303170 40 80 00 18 */ bge lbl_80306228 /* 80306214 00303174 C0 1F 00 2C */ lfs f0, 0x2c(r31) /* 80306218 00303178 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 8030621C 0030317C 40 80 00 0C */ bge lbl_80306228 /* 80306220 00303180 C0 22 C7 90 */ lfs f1, lbl_805AE4B0@sda21(r2) /* 80306224 00303184 48 00 00 9C */ b lbl_803062C0 lbl_80306228: /* 80306228 00303188 7F E3 FB 78 */ mr r3, r31 /* 8030622C 0030318C 4B FF FF 29 */ bl GetIntensity__6CLightCFv /* 80306230 00303190 C0 7F 00 2C */ lfs f3, 0x2c(r31) /* 80306234 00303194 C0 02 C7 8C */ lfs f0, lbl_805AE4AC@sda21(r2) /* 80306238 00303198 C0 82 C7 88 */ lfs f4, lbl_805AE4A8@sda21(r2) /* 8030623C 0030319C FC 03 00 40 */ fcmpo cr0, f3, f0 /* 80306240 003031A0 40 81 00 44 */ ble lbl_80306284 /* 80306244 003031A4 C0 4D 9C 54 */ lfs f2, lbl_805A8814@sda21(r13) /* 80306248 003031A8 C0 0D 9C 50 */ lfs f0, lbl_805A8810@sda21(r13) /* 8030624C 003031AC FC 02 00 40 */ fcmpo cr0, f2, f0 /* 80306250 003031B0 40 80 00 0C */ bge lbl_8030625C /* 80306254 003031B4 38 6D 9C 54 */ addi r3, r13, lbl_805A8814@sda21 /* 80306258 003031B8 48 00 00 08 */ b lbl_80306260 lbl_8030625C: /* 8030625C 003031BC 38 6D 9C 50 */ addi r3, r13, lbl_805A8810@sda21 lbl_80306260: /* 80306260 003031C0 C0 02 C7 8C */ lfs f0, lbl_805AE4AC@sda21(r2) /* 80306264 003031C4 C0 43 00 00 */ lfs f2, 0(r3) /* 80306268 003031C8 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8030626C 003031CC 40 81 00 50 */ ble lbl_803062BC /* 80306270 003031D0 EC 02 00 F2 */ fmuls f0, f2, f3 /* 80306274 003031D4 EC 21 00 24 */ fdivs f1, f1, f0 /* 80306278 003031D8 48 00 F2 89 */ bl SqrtF__5CMathFf /* 8030627C 003031DC FC 80 08 90 */ fmr f4, f1 /* 80306280 003031E0 48 00 00 3C */ b lbl_803062BC lbl_80306284: /* 80306284 003031E4 C0 4D 9C 5C */ lfs f2, lbl_805A881C@sda21(r13) /* 80306288 003031E8 C0 0D 9C 58 */ lfs f0, lbl_805A8818@sda21(r13) /* 8030628C 003031EC FC 02 00 40 */ fcmpo cr0, f2, f0 /* 80306290 003031F0 40 80 00 0C */ bge lbl_8030629C /* 80306294 003031F4 38 6D 9C 5C */ addi r3, r13, lbl_805A881C@sda21 /* 80306298 003031F8 48 00 00 08 */ b lbl_803062A0 lbl_8030629C: /* 8030629C 003031FC 38 6D 9C 58 */ addi r3, r13, lbl_805A8818@sda21 lbl_803062A0: /* 803062A0 00303200 C0 5F 00 28 */ lfs f2, 0x28(r31) /* 803062A4 00303204 C0 02 C7 8C */ lfs f0, lbl_805AE4AC@sda21(r2) /* 803062A8 00303208 C0 63 00 00 */ lfs f3, 0(r3) /* 803062AC 0030320C FC 02 00 40 */ fcmpo cr0, f2, f0 /* 803062B0 00303210 40 81 00 0C */ ble lbl_803062BC /* 803062B4 00303214 EC 03 00 B2 */ fmuls f0, f3, f2 /* 803062B8 00303218 EC 81 00 24 */ fdivs f4, f1, f0 lbl_803062BC: /* 803062BC 0030321C FC 20 20 90 */ fmr f1, f4 lbl_803062C0: /* 803062C0 00303220 80 01 00 14 */ lwz r0, 0x14(r1) /* 803062C4 00303224 83 E1 00 0C */ lwz r31, 0xc(r1) /* 803062C8 00303228 7C 08 03 A6 */ mtlr r0 /* 803062CC 0030322C 38 21 00 10 */ addi r1, r1, 0x10 /* 803062D0 00303230 4E 80 00 20 */ blr .global GetRadius__6CLightCFv GetRadius__6CLightCFv: /* 803062D4 00303234 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803062D8 00303238 7C 08 02 A6 */ mflr r0 /* 803062DC 0030323C 90 01 00 14 */ stw r0, 0x14(r1) /* 803062E0 00303240 93 E1 00 0C */ stw r31, 0xc(r1) /* 803062E4 00303244 7C 7F 1B 78 */ mr r31, r3 /* 803062E8 00303248 88 03 00 4C */ lbz r0, 0x4c(r3) /* 803062EC 0030324C 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f /* 803062F0 00303250 41 82 00 1C */ beq lbl_8030630C /* 803062F4 00303254 4B FF FE FD */ bl CalculateLightRadius__6CLightCFv /* 803062F8 00303258 D0 3F 00 44 */ stfs f1, 0x44(r31) /* 803062FC 0030325C 38 60 00 00 */ li r3, 0 /* 80306300 00303260 88 1F 00 4C */ lbz r0, 0x4c(r31) /* 80306304 00303264 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19 /* 80306308 00303268 98 1F 00 4C */ stb r0, 0x4c(r31) lbl_8030630C: /* 8030630C 0030326C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80306310 00303270 C0 3F 00 44 */ lfs f1, 0x44(r31) /* 80306314 00303274 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80306318 00303278 7C 08 03 A6 */ mtlr r0 /* 8030631C 0030327C 38 21 00 10 */ addi r1, r1, 0x10 /* 80306320 00303280 4E 80 00 20 */ blr .global SetDirection__6CLightFRC9CVector3f SetDirection__6CLightFRC9CVector3f: /* 80306324 00303284 C0 04 00 00 */ lfs f0, 0(r4) /* 80306328 00303288 D0 03 00 0C */ stfs f0, 0xc(r3) /* 8030632C 0030328C C0 04 00 04 */ lfs f0, 4(r4) /* 80306330 00303290 D0 03 00 10 */ stfs f0, 0x10(r3) /* 80306334 00303294 C0 04 00 08 */ lfs f0, 8(r4) /* 80306338 00303298 D0 03 00 14 */ stfs f0, 0x14(r3) /* 8030633C 0030329C 4E 80 00 20 */ blr .global SetPosition__6CLightFRC9CVector3f SetPosition__6CLightFRC9CVector3f: /* 80306340 003032A0 C0 04 00 00 */ lfs f0, 0(r4) /* 80306344 003032A4 D0 03 00 00 */ stfs f0, 0(r3) /* 80306348 003032A8 C0 04 00 04 */ lfs f0, 4(r4) /* 8030634C 003032AC D0 03 00 04 */ stfs f0, 4(r3) /* 80306350 003032B0 C0 04 00 08 */ lfs f0, 8(r4) /* 80306354 003032B4 D0 03 00 08 */ stfs f0, 8(r3) /* 80306358 003032B8 4E 80 00 20 */ blr .global SetColor__6CLightFRC6CColor SetColor__6CLightFRC6CColor: /* 8030635C 003032BC 80 04 00 00 */ lwz r0, 0(r4) /* 80306360 003032C0 38 80 00 01 */ li r4, 1 /* 80306364 003032C4 90 03 00 18 */ stw r0, 0x18(r3) /* 80306368 003032C8 88 03 00 4C */ lbz r0, 0x4c(r3) /* 8030636C 003032CC 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19 /* 80306370 003032D0 98 03 00 4C */ stb r0, 0x4c(r3) /* 80306374 003032D4 88 03 00 4C */ lbz r0, 0x4c(r3) /* 80306378 003032D8 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18 /* 8030637C 003032DC 98 03 00 4C */ stb r0, 0x4c(r3) /* 80306380 003032E0 4E 80 00 20 */ blr .global SetAngleAttenuation__6CLightFfff SetAngleAttenuation__6CLightFfff: /* 80306384 003032E4 D0 23 00 30 */ stfs f1, 0x30(r3) /* 80306388 003032E8 38 80 00 01 */ li r4, 1 /* 8030638C 003032EC D0 43 00 34 */ stfs f2, 0x34(r3) /* 80306390 003032F0 D0 63 00 38 */ stfs f3, 0x38(r3) /* 80306394 003032F4 88 03 00 4C */ lbz r0, 0x4c(r3) /* 80306398 003032F8 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19 /* 8030639C 003032FC 98 03 00 4C */ stb r0, 0x4c(r3) /* 803063A0 00303300 88 03 00 4C */ lbz r0, 0x4c(r3) /* 803063A4 00303304 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18 /* 803063A8 00303308 98 03 00 4C */ stb r0, 0x4c(r3) /* 803063AC 0030330C 4E 80 00 20 */ blr .global SetAttenuation__6CLightFfff SetAttenuation__6CLightFfff: /* 803063B0 00303310 D0 23 00 24 */ stfs f1, 0x24(r3) /* 803063B4 00303314 38 80 00 01 */ li r4, 1 /* 803063B8 00303318 D0 43 00 28 */ stfs f2, 0x28(r3) /* 803063BC 0030331C D0 63 00 2C */ stfs f3, 0x2c(r3) /* 803063C0 00303320 88 03 00 4C */ lbz r0, 0x4c(r3) /* 803063C4 00303324 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19 /* 803063C8 00303328 98 03 00 4C */ stb r0, 0x4c(r3) /* 803063CC 0030332C 88 03 00 4C */ lbz r0, 0x4c(r3) /* 803063D0 00303330 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18 /* 803063D4 00303334 98 03 00 4C */ stb r0, 0x4c(r3) /* 803063D8 00303338 4E 80 00 20 */ blr .global BuildCustom__6CLightFRC9CVector3fRC9CVector3fRC6CColorffffff BuildCustom__6CLightFRC9CVector3fRC9CVector3fRC6CColorffffff: /* 803063DC 0030333C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803063E0 00303340 7C 08 02 A6 */ mflr r0 /* 803063E4 00303344 90 01 00 14 */ stw r0, 0x14(r1) /* 803063E8 00303348 48 00 00 F5 */ bl __ct__6CLightFRC9CVector3fRC9CVector3fRC6CColorffffff /* 803063EC 0030334C 80 01 00 14 */ lwz r0, 0x14(r1) /* 803063F0 00303350 7C 08 03 A6 */ mtlr r0 /* 803063F4 00303354 38 21 00 10 */ addi r1, r1, 0x10 /* 803063F8 00303358 4E 80 00 20 */ blr .global BuildSpot__6CLightFRC9CVector3fRC9CVector3fRC6CColorf BuildSpot__6CLightFRC9CVector3fRC9CVector3fRC6CColorf: /* 803063FC 0030335C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80306400 00303360 7C 08 02 A6 */ mflr r0 /* 80306404 00303364 7C 88 23 78 */ mr r8, r4 /* 80306408 00303368 7C C7 33 78 */ mr r7, r6 /* 8030640C 0030336C 90 01 00 14 */ stw r0, 0x14(r1) /* 80306410 00303370 7C A0 2B 78 */ mr r0, r5 /* 80306414 00303374 38 80 00 00 */ li r4, 0 /* 80306418 00303378 7D 05 43 78 */ mr r5, r8 /* 8030641C 0030337C 7C 06 03 78 */ mr r6, r0 /* 80306420 00303380 48 00 01 51 */ bl __ct__6CLightF10ELightTypeRC9CVector3fRC9CVector3fRC6CColorf /* 80306424 00303384 80 01 00 14 */ lwz r0, 0x14(r1) /* 80306428 00303388 7C 08 03 A6 */ mtlr r0 /* 8030642C 0030338C 38 21 00 10 */ addi r1, r1, 0x10 /* 80306430 00303390 4E 80 00 20 */ blr .global BuildPoint__6CLightFRC9CVector3fRC6CColor BuildPoint__6CLightFRC9CVector3fRC6CColor: /* 80306434 00303394 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80306438 00303398 7C 08 02 A6 */ mflr r0 /* 8030643C 0030339C 3C C0 80 5A */ lis r6, kDefaultDirection__6CLight@ha /* 80306440 003033A0 7C A7 2B 78 */ mr r7, r5 /* 80306444 003033A4 90 01 00 14 */ stw r0, 0x14(r1) /* 80306448 003033A8 7C 85 23 78 */ mr r5, r4 /* 8030644C 003033AC C0 22 C7 94 */ lfs f1, lbl_805AE4B4@sda21(r2) /* 80306450 003033B0 38 C6 53 E0 */ addi r6, r6, kDefaultDirection__6CLight@l /* 80306454 003033B4 38 80 00 01 */ li r4, 1 /* 80306458 003033B8 48 00 01 19 */ bl __ct__6CLightF10ELightTypeRC9CVector3fRC9CVector3fRC6CColorf /* 8030645C 003033BC 80 01 00 14 */ lwz r0, 0x14(r1) /* 80306460 003033C0 7C 08 03 A6 */ mtlr r0 /* 80306464 003033C4 38 21 00 10 */ addi r1, r1, 0x10 /* 80306468 003033C8 4E 80 00 20 */ blr .global BuildDirectional__6CLightFRC9CVector3fRC6CColor BuildDirectional__6CLightFRC9CVector3fRC6CColor: /* 8030646C 003033CC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80306470 003033D0 7C 08 02 A6 */ mflr r0 /* 80306474 003033D4 3C C0 80 5A */ lis r6, kDefaultPosition__6CLight@ha /* 80306478 003033D8 7C A7 2B 78 */ mr r7, r5 /* 8030647C 003033DC 90 01 00 14 */ stw r0, 0x14(r1) /* 80306480 003033E0 38 A6 53 C8 */ addi r5, r6, kDefaultPosition__6CLight@l /* 80306484 003033E4 7C 86 23 78 */ mr r6, r4 /* 80306488 003033E8 C0 22 C7 94 */ lfs f1, lbl_805AE4B4@sda21(r2) /* 8030648C 003033EC 38 80 00 02 */ li r4, 2 /* 80306490 003033F0 48 00 00 E1 */ bl __ct__6CLightF10ELightTypeRC9CVector3fRC9CVector3fRC6CColorf /* 80306494 003033F4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80306498 003033F8 7C 08 03 A6 */ mtlr r0 /* 8030649C 003033FC 38 21 00 10 */ addi r1, r1, 0x10 /* 803064A0 00303400 4E 80 00 20 */ blr .global BuildLocalAmbient__6CLightFRC9CVector3fRC6CColor BuildLocalAmbient__6CLightFRC9CVector3fRC6CColor: /* 803064A4 00303404 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803064A8 00303408 7C 08 02 A6 */ mflr r0 /* 803064AC 0030340C 3C C0 80 5A */ lis r6, kDefaultDirection__6CLight@ha /* 803064B0 00303410 7C A7 2B 78 */ mr r7, r5 /* 803064B4 00303414 90 01 00 14 */ stw r0, 0x14(r1) /* 803064B8 00303418 7C 85 23 78 */ mr r5, r4 /* 803064BC 0030341C C0 22 C7 94 */ lfs f1, lbl_805AE4B4@sda21(r2) /* 803064C0 00303420 38 C6 53 E0 */ addi r6, r6, kDefaultDirection__6CLight@l /* 803064C4 00303424 38 80 00 03 */ li r4, 3 /* 803064C8 00303428 48 00 00 A9 */ bl __ct__6CLightF10ELightTypeRC9CVector3fRC9CVector3fRC6CColorf /* 803064CC 0030342C 80 01 00 14 */ lwz r0, 0x14(r1) /* 803064D0 00303430 7C 08 03 A6 */ mtlr r0 /* 803064D4 00303434 38 21 00 10 */ addi r1, r1, 0x10 /* 803064D8 00303438 4E 80 00 20 */ blr .global __ct__6CLightFRC9CVector3fRC9CVector3fRC6CColorffffff __ct__6CLightFRC9CVector3fRC9CVector3fRC6CColorffffff: /* 803064DC 0030343C C0 E4 00 00 */ lfs f7, 0(r4) /* 803064E0 00303440 39 00 00 04 */ li r8, 4 /* 803064E4 00303444 C0 02 C7 88 */ lfs f0, lbl_805AE4A8@sda21(r2) /* 803064E8 00303448 38 00 00 00 */ li r0, 0 /* 803064EC 0030344C D0 E3 00 00 */ stfs f7, 0(r3) /* 803064F0 00303450 38 E0 00 01 */ li r7, 1 /* 803064F4 00303454 C0 E4 00 04 */ lfs f7, 4(r4) /* 803064F8 00303458 D0 E3 00 04 */ stfs f7, 4(r3) /* 803064FC 0030345C C0 E4 00 08 */ lfs f7, 8(r4) /* 80306500 00303460 D0 E3 00 08 */ stfs f7, 8(r3) /* 80306504 00303464 C0 E5 00 00 */ lfs f7, 0(r5) /* 80306508 00303468 D0 E3 00 0C */ stfs f7, 0xc(r3) /* 8030650C 0030346C C0 E5 00 04 */ lfs f7, 4(r5) /* 80306510 00303470 D0 E3 00 10 */ stfs f7, 0x10(r3) /* 80306514 00303474 C0 E5 00 08 */ lfs f7, 8(r5) /* 80306518 00303478 D0 E3 00 14 */ stfs f7, 0x14(r3) /* 8030651C 0030347C 80 86 00 00 */ lwz r4, 0(r6) /* 80306520 00303480 90 83 00 18 */ stw r4, 0x18(r3) /* 80306524 00303484 91 03 00 1C */ stw r8, 0x1c(r3) /* 80306528 00303488 D0 03 00 20 */ stfs f0, 0x20(r3) /* 8030652C 0030348C D0 23 00 24 */ stfs f1, 0x24(r3) /* 80306530 00303490 D0 43 00 28 */ stfs f2, 0x28(r3) /* 80306534 00303494 D0 63 00 2C */ stfs f3, 0x2c(r3) /* 80306538 00303498 D0 83 00 30 */ stfs f4, 0x30(r3) /* 8030653C 0030349C D0 A3 00 34 */ stfs f5, 0x34(r3) /* 80306540 003034A0 D0 C3 00 38 */ stfs f6, 0x38(r3) /* 80306544 003034A4 90 03 00 3C */ stw r0, 0x3c(r3) /* 80306548 003034A8 90 03 00 40 */ stw r0, 0x40(r3) /* 8030654C 003034AC D0 03 00 44 */ stfs f0, 0x44(r3) /* 80306550 003034B0 D0 03 00 48 */ stfs f0, 0x48(r3) /* 80306554 003034B4 88 03 00 4C */ lbz r0, 0x4c(r3) /* 80306558 003034B8 50 E0 3E 30 */ rlwimi r0, r7, 7, 0x18, 0x18 /* 8030655C 003034BC 98 03 00 4C */ stb r0, 0x4c(r3) /* 80306560 003034C0 88 03 00 4C */ lbz r0, 0x4c(r3) /* 80306564 003034C4 50 E0 36 72 */ rlwimi r0, r7, 6, 0x19, 0x19 /* 80306568 003034C8 98 03 00 4C */ stb r0, 0x4c(r3) /* 8030656C 003034CC 4E 80 00 20 */ blr .global __ct__6CLightF10ELightTypeRC9CVector3fRC9CVector3fRC6CColorf __ct__6CLightF10ELightTypeRC9CVector3fRC9CVector3fRC6CColorf: /* 80306570 003034D0 C0 05 00 00 */ lfs f0, 0(r5) /* 80306574 003034D4 38 00 00 00 */ li r0, 0 /* 80306578 003034D8 C0 42 C7 88 */ lfs f2, lbl_805AE4A8@sda21(r2) /* 8030657C 003034DC 39 00 00 01 */ li r8, 1 /* 80306580 003034E0 D0 03 00 00 */ stfs f0, 0(r3) /* 80306584 003034E4 C0 02 C7 80 */ lfs f0, lbl_805AE4A0@sda21(r2) /* 80306588 003034E8 C0 65 00 04 */ lfs f3, 4(r5) /* 8030658C 003034EC D0 63 00 04 */ stfs f3, 4(r3) /* 80306590 003034F0 C0 65 00 08 */ lfs f3, 8(r5) /* 80306594 003034F4 D0 63 00 08 */ stfs f3, 8(r3) /* 80306598 003034F8 C0 66 00 00 */ lfs f3, 0(r6) /* 8030659C 003034FC D0 63 00 0C */ stfs f3, 0xc(r3) /* 803065A0 00303500 C0 66 00 04 */ lfs f3, 4(r6) /* 803065A4 00303504 D0 63 00 10 */ stfs f3, 0x10(r3) /* 803065A8 00303508 C0 66 00 08 */ lfs f3, 8(r6) /* 803065AC 0030350C D0 63 00 14 */ stfs f3, 0x14(r3) /* 803065B0 00303510 80 A7 00 00 */ lwz r5, 0(r7) /* 803065B4 00303514 90 A3 00 18 */ stw r5, 0x18(r3) /* 803065B8 00303518 90 83 00 1C */ stw r4, 0x1c(r3) /* 803065BC 0030351C D0 23 00 20 */ stfs f1, 0x20(r3) /* 803065C0 00303520 D0 43 00 24 */ stfs f2, 0x24(r3) /* 803065C4 00303524 D0 03 00 28 */ stfs f0, 0x28(r3) /* 803065C8 00303528 D0 43 00 2C */ stfs f2, 0x2c(r3) /* 803065CC 0030352C D0 43 00 30 */ stfs f2, 0x30(r3) /* 803065D0 00303530 D0 03 00 34 */ stfs f0, 0x34(r3) /* 803065D4 00303534 D0 43 00 38 */ stfs f2, 0x38(r3) /* 803065D8 00303538 90 03 00 3C */ stw r0, 0x3c(r3) /* 803065DC 0030353C 90 03 00 40 */ stw r0, 0x40(r3) /* 803065E0 00303540 D0 43 00 44 */ stfs f2, 0x44(r3) /* 803065E4 00303544 D0 43 00 48 */ stfs f2, 0x48(r3) /* 803065E8 00303548 88 03 00 4C */ lbz r0, 0x4c(r3) /* 803065EC 0030354C 51 00 3E 30 */ rlwimi r0, r8, 7, 0x18, 0x18 /* 803065F0 00303550 98 03 00 4C */ stb r0, 0x4c(r3) /* 803065F4 00303554 88 03 00 4C */ lbz r0, 0x4c(r3) /* 803065F8 00303558 51 00 36 72 */ rlwimi r0, r8, 6, 0x19, 0x19 /* 803065FC 0030355C 98 03 00 4C */ stb r0, 0x4c(r3) /* 80306600 00303560 4E 80 00 20 */ blr .global __sinit_CLight_cpp __sinit_CLight_cpp: /* 80306604 00303564 C0 22 C7 88 */ lfs f1, lbl_805AE4A8@sda21(r2) /* 80306608 00303568 3C 80 80 5A */ lis r4, kDefaultPosition__6CLight@ha /* 8030660C 0030356C 3C 60 80 5A */ lis r3, kDefaultDirection__6CLight@ha /* 80306610 00303570 C0 02 C7 84 */ lfs f0, lbl_805AE4A4@sda21(r2) /* 80306614 00303574 D4 24 53 C8 */ stfsu f1, kDefaultPosition__6CLight@l(r4) /* 80306618 00303578 D4 23 53 E0 */ stfsu f1, kDefaultDirection__6CLight@l(r3) /* 8030661C 0030357C D0 24 00 04 */ stfs f1, 4(r4) /* 80306620 00303580 D0 24 00 08 */ stfs f1, 8(r4) /* 80306624 00303584 D0 03 00 04 */ stfs f0, 4(r3) /* 80306628 00303588 D0 23 00 08 */ stfs f1, 8(r3) /* 8030662C 0030358C 4E 80 00 20 */ blr .section .sdata2, "a" .balign 8 .global gkEpsilon32 gkEpsilon32: # ROM: 0x3FAD38 .float 1.1920929E-7 .global lbl_805AE49C lbl_805AE49C: # ROM: 0x3FAD3C .float 0.003921569 .global lbl_805AE4A0 lbl_805AE4A0: # ROM: 0x3FAD40 .float 1.0 .global lbl_805AE4A4 lbl_805AE4A4: # ROM: 0x3FAD44 .float -1.0 .global lbl_805AE4A8 lbl_805AE4A8: # ROM: 0x3FAD48 .float 0.0 .global lbl_805AE4AC lbl_805AE4AC: # ROM: 0x3FAD4C .float 1.1920929E-7 .global lbl_805AE4B0 lbl_805AE4B0: # ROM: 0x3FAD50 .float 3.0E36 .global lbl_805AE4B4 lbl_805AE4B4: # ROM: 0x3FAD54 .float 180.0