prime/asm/MetroidPrime/Enemies/PatternedCastTo.s

257 lines
11 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax"
.global "CastTo<8CWarWasp>__10CPatternedFP7CEntity"
"CastTo<8CWarWasp>__10CPatternedFP7CEntity":
/* 800A533C 000A229C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A5340 000A22A0 7C 08 02 A6 */ mflr r0
/* 800A5344 000A22A4 7C 64 1B 78 */ mr r4, r3
/* 800A5348 000A22A8 38 60 00 27 */ li r3, 0x27
/* 800A534C 000A22AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A5350 000A22B0 80 84 00 00 */ lwz r4, 0(r4)
/* 800A5354 000A22B4 48 00 02 59 */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A5358 000A22B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A535C 000A22BC 7C 08 03 A6 */ mtlr r0
/* 800A5360 000A22C0 38 21 00 10 */ addi r1, r1, 0x10
/* 800A5364 000A22C4 4E 80 00 20 */ blr
.global sub_800a5368
sub_800a5368:
/* 800A5368 000A22C8 90 83 00 00 */ stw r4, 0(r3)
/* 800A536C 000A22CC 4E 80 00 20 */ blr
.global "CastTo<22CThardusRockProjectile>__10CPatternedFP7CEntity"
"CastTo<22CThardusRockProjectile>__10CPatternedFP7CEntity":
/* 800A5370 000A22D0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A5374 000A22D4 7C 08 02 A6 */ mflr r0
/* 800A5378 000A22D8 7C 64 1B 78 */ mr r4, r3
/* 800A537C 000A22DC 38 60 00 25 */ li r3, 0x25
/* 800A5380 000A22E0 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A5384 000A22E4 80 84 00 00 */ lwz r4, 0(r4)
/* 800A5388 000A22E8 48 00 02 25 */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A538C 000A22EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A5390 000A22F0 7C 08 03 A6 */ mtlr r0
/* 800A5394 000A22F4 38 21 00 10 */ addi r1, r1, 0x10
/* 800A5398 000A22F8 4E 80 00 20 */ blr
.global sub_800a539c
sub_800a539c:
/* 800A539C 000A22FC 90 83 00 00 */ stw r4, 0(r3)
/* 800A53A0 000A2300 4E 80 00 20 */ blr
.global "CastTo<12CSpacePirate>__10CPatternedFP7CEntity"
"CastTo<12CSpacePirate>__10CPatternedFP7CEntity":
/* 800A53A4 000A2304 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A53A8 000A2308 7C 08 02 A6 */ mflr r0
/* 800A53AC 000A230C 7C 64 1B 78 */ mr r4, r3
/* 800A53B0 000A2310 38 60 00 22 */ li r3, 0x22
/* 800A53B4 000A2314 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A53B8 000A2318 80 84 00 00 */ lwz r4, 0(r4)
/* 800A53BC 000A231C 48 00 01 F1 */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A53C0 000A2320 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A53C4 000A2324 7C 08 03 A6 */ mtlr r0
/* 800A53C8 000A2328 38 21 00 10 */ addi r1, r1, 0x10
/* 800A53CC 000A232C 4E 80 00 20 */ blr
.global sub_800a53d0
sub_800a53d0:
/* 800A53D0 000A2330 90 83 00 00 */ stw r4, 0(r3)
/* 800A53D4 000A2334 4E 80 00 20 */ blr
.global "CastTo<11CPuddleToad>__10CPatternedFP7CEntity"
"CastTo<11CPuddleToad>__10CPatternedFP7CEntity":
/* 800A53D8 000A2338 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A53DC 000A233C 7C 08 02 A6 */ mflr r0
/* 800A53E0 000A2340 7C 64 1B 78 */ mr r4, r3
/* 800A53E4 000A2344 38 60 00 1C */ li r3, 0x1c
/* 800A53E8 000A2348 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A53EC 000A234C 80 84 00 00 */ lwz r4, 0(r4)
/* 800A53F0 000A2350 48 00 01 BD */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A53F4 000A2354 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A53F8 000A2358 7C 08 03 A6 */ mtlr r0
/* 800A53FC 000A235C 38 21 00 10 */ addi r1, r1, 0x10
/* 800A5400 000A2360 4E 80 00 20 */ blr
.global sub_800a5404
sub_800a5404:
/* 800A5404 000A2364 90 83 00 00 */ stw r4, 0(r3)
/* 800A5408 000A2368 4E 80 00 20 */ blr
.global "CastTo<9CParasite>__10CPatternedFP7CEntity"
"CastTo<9CParasite>__10CPatternedFP7CEntity":
/* 800A540C 000A236C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A5410 000A2370 7C 08 02 A6 */ mflr r0
/* 800A5414 000A2374 7C 64 1B 78 */ mr r4, r3
/* 800A5418 000A2378 38 60 00 18 */ li r3, 0x18
/* 800A541C 000A237C 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A5420 000A2380 80 84 00 00 */ lwz r4, 0(r4)
/* 800A5424 000A2384 48 00 01 89 */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A5428 000A2388 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A542C 000A238C 7C 08 03 A6 */ mtlr r0
/* 800A5430 000A2390 38 21 00 10 */ addi r1, r1, 0x10
/* 800A5434 000A2394 4E 80 00 20 */ blr
.global sub_800a5438
sub_800a5438:
/* 800A5438 000A2398 90 83 00 00 */ stw r4, 0(r3)
/* 800A543C 000A239C 4E 80 00 20 */ blr
.global "CastTo<16CMetroidPrimeExo>__10CPatternedFP7CEntity"
"CastTo<16CMetroidPrimeExo>__10CPatternedFP7CEntity":
/* 800A5440 000A23A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A5444 000A23A4 7C 08 02 A6 */ mflr r0
/* 800A5448 000A23A8 7C 64 1B 78 */ mr r4, r3
/* 800A544C 000A23AC 38 60 00 15 */ li r3, 0x15
/* 800A5450 000A23B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A5454 000A23B4 80 84 00 00 */ lwz r4, 0(r4)
/* 800A5458 000A23B8 48 00 01 55 */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A545C 000A23BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A5460 000A23C0 7C 08 03 A6 */ mtlr r0
/* 800A5464 000A23C4 38 21 00 10 */ addi r1, r1, 0x10
/* 800A5468 000A23C8 4E 80 00 20 */ blr
.global sub_800a546c
sub_800a546c:
/* 800A546C 000A23CC 90 83 00 00 */ stw r4, 0(r3)
/* 800A5470 000A23D0 4E 80 00 20 */ blr
.global "CastTo<12CMetroidBeta>__10CPatternedFP7CEntity"
"CastTo<12CMetroidBeta>__10CPatternedFP7CEntity":
/* 800A5474 000A23D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A5478 000A23D8 7C 08 02 A6 */ mflr r0
/* 800A547C 000A23DC 7C 64 1B 78 */ mr r4, r3
/* 800A5480 000A23E0 38 60 00 14 */ li r3, 0x14
/* 800A5484 000A23E4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A5488 000A23E8 80 84 00 00 */ lwz r4, 0(r4)
/* 800A548C 000A23EC 48 00 01 21 */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A5490 000A23F0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A5494 000A23F4 7C 08 03 A6 */ mtlr r0
/* 800A5498 000A23F8 38 21 00 10 */ addi r1, r1, 0x10
/* 800A549C 000A23FC 4E 80 00 20 */ blr
.global sub_800a54a0
sub_800a54a0:
/* 800A54A0 000A2400 90 83 00 00 */ stw r4, 0(r3)
/* 800A54A4 000A2404 4E 80 00 20 */ blr
.global "CastTo<8CMetroid>__10CPatternedFP7CEntity"
"CastTo<8CMetroid>__10CPatternedFP7CEntity":
/* 800A54A8 000A2408 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A54AC 000A240C 7C 08 02 A6 */ mflr r0
/* 800A54B0 000A2410 7C 64 1B 78 */ mr r4, r3
/* 800A54B4 000A2414 38 60 00 13 */ li r3, 0x13
/* 800A54B8 000A2418 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A54BC 000A241C 80 84 00 00 */ lwz r4, 0(r4)
/* 800A54C0 000A2420 48 00 00 ED */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A54C4 000A2424 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A54C8 000A2428 7C 08 03 A6 */ mtlr r0
/* 800A54CC 000A242C 38 21 00 10 */ addi r1, r1, 0x10
/* 800A54D0 000A2430 4E 80 00 20 */ blr
.global sub_800a54d4
sub_800a54d4:
/* 800A54D4 000A2434 90 83 00 00 */ stw r4, 0(r3)
/* 800A54D8 000A2438 4E 80 00 20 */ blr
.global "CastTo<9CJellyZap>__10CPatternedFP7CEntity"
"CastTo<9CJellyZap>__10CPatternedFP7CEntity":
/* 800A54DC 000A243C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A54E0 000A2440 7C 08 02 A6 */ mflr r0
/* 800A54E4 000A2444 7C 64 1B 78 */ mr r4, r3
/* 800A54E8 000A2448 38 60 00 10 */ li r3, 0x10
/* 800A54EC 000A244C 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A54F0 000A2450 80 84 00 00 */ lwz r4, 0(r4)
/* 800A54F4 000A2454 48 00 00 B9 */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A54F8 000A2458 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A54FC 000A245C 7C 08 03 A6 */ mtlr r0
/* 800A5500 000A2460 38 21 00 10 */ addi r1, r1, 0x10
/* 800A5504 000A2464 4E 80 00 20 */ blr
.global sub_800a5508
sub_800a5508:
/* 800A5508 000A2468 90 83 00 00 */ stw r4, 0(r3)
/* 800A550C 000A246C 4E 80 00 20 */ blr
.global "CastTo<12CIceSheegoth>__10CPatternedFP7CEntity"
"CastTo<12CIceSheegoth>__10CPatternedFP7CEntity":
/* 800A5510 000A2470 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A5514 000A2474 7C 08 02 A6 */ mflr r0
/* 800A5518 000A2478 7C 64 1B 78 */ mr r4, r3
/* 800A551C 000A247C 38 60 00 0F */ li r3, 0xf
/* 800A5520 000A2480 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A5524 000A2484 80 84 00 00 */ lwz r4, 0(r4)
/* 800A5528 000A2488 48 00 00 85 */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A552C 000A248C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A5530 000A2490 7C 08 03 A6 */ mtlr r0
/* 800A5534 000A2494 38 21 00 10 */ addi r1, r1, 0x10
/* 800A5538 000A2498 4E 80 00 20 */ blr
.global sub_800a553c
sub_800a553c:
/* 800A553C 000A249C 90 83 00 00 */ stw r4, 0(r3)
/* 800A5540 000A24A0 4E 80 00 20 */ blr
.global "CastTo<11CFlickerBat>__10CPatternedFP7CEntity"
"CastTo<11CFlickerBat>__10CPatternedFP7CEntity":
/* 800A5544 000A24A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A5548 000A24A8 7C 08 02 A6 */ mflr r0
/* 800A554C 000A24AC 7C 64 1B 78 */ mr r4, r3
/* 800A5550 000A24B0 38 60 00 0D */ li r3, 0xd
/* 800A5554 000A24B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A5558 000A24B8 80 84 00 00 */ lwz r4, 0(r4)
/* 800A555C 000A24BC 48 00 00 51 */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A5560 000A24C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A5564 000A24C4 7C 08 03 A6 */ mtlr r0
/* 800A5568 000A24C8 38 21 00 10 */ addi r1, r1, 0x10
/* 800A556C 000A24CC 4E 80 00 20 */ blr
.global sub_800a5570
sub_800a5570:
/* 800A5570 000A24D0 90 83 00 00 */ stw r4, 0(r3)
/* 800A5574 000A24D4 4E 80 00 20 */ blr
.global "CastTo<11CEnergyBall>__10CPatternedFP7CEntity"
"CastTo<11CEnergyBall>__10CPatternedFP7CEntity":
/* 800A5578 000A24D8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800A557C 000A24DC 7C 08 02 A6 */ mflr r0
/* 800A5580 000A24E0 7C 64 1B 78 */ mr r4, r3
/* 800A5584 000A24E4 38 60 00 28 */ li r3, 0x28
/* 800A5588 000A24E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 800A558C 000A24EC 80 84 00 00 */ lwz r4, 0(r4)
/* 800A5590 000A24F0 48 00 00 1D */ bl CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
/* 800A5594 000A24F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800A5598 000A24F8 7C 08 03 A6 */ mtlr r0
/* 800A559C 000A24FC 38 21 00 10 */ addi r1, r1, 0x10
/* 800A55A0 000A2500 4E 80 00 20 */ blr
.global sub_800a55a4
sub_800a55a4:
/* 800A55A4 000A2504 90 83 00 00 */ stw r4, 0(r3)
/* 800A55A8 000A2508 4E 80 00 20 */ blr
.global CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity
CastPatternedCharacter__FQ210CPatterned10ECharacterP7CEntity:
/* 800A55AC 000A250C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800A55B0 000A2510 7C 08 02 A6 */ mflr r0
/* 800A55B4 000A2514 90 01 00 24 */ stw r0, 0x24(r1)
/* 800A55B8 000A2518 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800A55BC 000A251C 7C 7F 1B 78 */ mr r31, r3
/* 800A55C0 000A2520 38 61 00 08 */ addi r3, r1, 8
/* 800A55C4 000A2524 48 00 74 99 */ bl "__ct__16TCastToPtr<3CAi>FP7CEntity"
/* 800A55C8 000A2528 80 63 00 04 */ lwz r3, 4(r3)
/* 800A55CC 000A252C 28 03 00 00 */ cmplwi r3, 0
/* 800A55D0 000A2530 41 82 00 14 */ beq lbl_800A55E4
/* 800A55D4 000A2534 80 03 03 4C */ lwz r0, 0x34c(r3)
/* 800A55D8 000A2538 7C 1F 00 00 */ cmpw r31, r0
/* 800A55DC 000A253C 40 82 00 08 */ bne lbl_800A55E4
/* 800A55E0 000A2540 48 00 00 08 */ b lbl_800A55E8
lbl_800A55E4:
/* 800A55E4 000A2544 38 60 00 00 */ li r3, 0
lbl_800A55E8:
/* 800A55E8 000A2548 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800A55EC 000A254C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800A55F0 000A2550 7C 08 03 A6 */ mtlr r0
/* 800A55F4 000A2554 38 21 00 20 */ addi r1, r1, 0x20
/* 800A55F8 000A2558 4E 80 00 20 */ blr