1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-29 16:26:18 +00:00

Decompiled ovl_En_Ma3 (re-created) (#114)

* Decompiled ovl_En_Ma3

* PR suggestions
This commit is contained in:
Ethan Roseman 2020-05-04 12:03:12 -04:00 committed by GitHub
parent a65554d586
commit ca20f56c09
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 392 additions and 1162 deletions

View file

@ -1,16 +0,0 @@
glabel EnMa3_Destroy
/* 00728 80AA31C8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0072C 80AA31CC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00730 80AA31D0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00734 80AA31D4 AFA5001C */ sw $a1, 0x001C($sp)
/* 00738 80AA31D8 0C0295BC */ jal SkelAnime_Free
/* 0073C 80AA31DC 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00740 80AA31E0 8FA50018 */ lw $a1, 0x0018($sp)
/* 00744 80AA31E4 8FA4001C */ lw $a0, 0x001C($sp)
/* 00748 80AA31E8 0C0170EB */ jal Collider_DestroyCylinder
/* 0074C 80AA31EC 24A50194 */ addiu $a1, $a1, 0x0194 ## $a1 = 00000194
/* 00750 80AA31F0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00754 80AA31F4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00758 80AA31F8 03E00008 */ jr $ra
/* 0075C 80AA31FC 00000000 */ nop

View file

@ -1,109 +0,0 @@
.rdata
glabel D_80AA38E0
.asciz "../z_en_ma3.c"
.balign 4
glabel D_80AA38F0
.asciz "../z_en_ma3.c"
.balign 4
.text
glabel EnMa3_Draw
/* 00BCC 80AA366C 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 00BD0 80AA3670 AFB20030 */ sw $s2, 0x0030($sp)
/* 00BD4 80AA3674 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 00BD8 80AA3678 AFBF0034 */ sw $ra, 0x0034($sp)
/* 00BDC 80AA367C AFB1002C */ sw $s1, 0x002C($sp)
/* 00BE0 80AA3680 AFB00028 */ sw $s0, 0x0028($sp)
/* 00BE4 80AA3684 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00BE8 80AA3688 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00BEC 80AA368C 3C0680AA */ lui $a2, %hi(D_80AA38E0) ## $a2 = 80AA0000
/* 00BF0 80AA3690 24C638E0 */ addiu $a2, $a2, %lo(D_80AA38E0) ## $a2 = 80AA38E0
/* 00BF4 80AA3694 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFDC
/* 00BF8 80AA3698 240703D2 */ addiu $a3, $zero, 0x03D2 ## $a3 = 000003D2
/* 00BFC 80AA369C 0C031AB1 */ jal Graph_OpenDisps
/* 00C00 80AA36A0 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00C04 80AA36A4 864E07A0 */ lh $t6, 0x07A0($s2) ## 000007A0
/* 00C08 80AA36A8 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 00C0C 80AA36AC 000E7880 */ sll $t7, $t6, 2
/* 00C10 80AA36B0 024FC021 */ addu $t8, $s2, $t7
/* 00C14 80AA36B4 8F020790 */ lw $v0, 0x0790($t8) ## 00000790
/* 00C18 80AA36B8 0C01E00A */ jal Math_Vec3f_DistXZ
/* 00C1C 80AA36BC 2445005C */ addiu $a1, $v0, 0x005C ## $a1 = 0000005C
/* 00C20 80AA36C0 46000306 */ mov.s $f12, $f0
/* 00C24 80AA36C4 0C03D89A */ jal func_800F6268
/* 00C28 80AA36C8 2405002F */ addiu $a1, $zero, 0x002F ## $a1 = 0000002F
/* 00C2C 80AA36CC 0C024F46 */ jal func_80093D18
/* 00C30 80AA36D0 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 00C34 80AA36D4 8E2302C0 */ lw $v1, 0x02C0($s1) ## 000002C0
/* 00C38 80AA36D8 3C08DB06 */ lui $t0, 0xDB06 ## $t0 = DB060000
/* 00C3C 80AA36DC 35080024 */ ori $t0, $t0, 0x0024 ## $t0 = DB060024
/* 00C40 80AA36E0 24790008 */ addiu $t9, $v1, 0x0008 ## $t9 = 00000008
/* 00C44 80AA36E4 AE3902C0 */ sw $t9, 0x02C0($s1) ## 000002C0
/* 00C48 80AA36E8 AC680000 */ sw $t0, 0x0000($v1) ## 00000000
/* 00C4C 80AA36EC 86090210 */ lh $t1, 0x0210($s0) ## 00000210
/* 00C50 80AA36F0 3C0480AA */ lui $a0, %hi(D_80AA38A4) ## $a0 = 80AA0000
/* 00C54 80AA36F4 3C068016 */ lui $a2, %hi(gSegments)
/* 00C58 80AA36F8 00095080 */ sll $t2, $t1, 2
/* 00C5C 80AA36FC 008A2021 */ addu $a0, $a0, $t2
/* 00C60 80AA3700 8C8438A4 */ lw $a0, %lo(D_80AA38A4)($a0)
/* 00C64 80AA3704 24C66FA8 */ addiu $a2, %lo(gSegments)
/* 00C68 80AA3708 3C0500FF */ lui $a1, 0x00FF ## $a1 = 00FF0000
/* 00C6C 80AA370C 00046100 */ sll $t4, $a0, 4
/* 00C70 80AA3710 000C6F02 */ srl $t5, $t4, 28
/* 00C74 80AA3714 000D7080 */ sll $t6, $t5, 2
/* 00C78 80AA3718 00CE7821 */ addu $t7, $a2, $t6
/* 00C7C 80AA371C 8DF80000 */ lw $t8, 0x0000($t7) ## 00000000
/* 00C80 80AA3720 34A5FFFF */ ori $a1, $a1, 0xFFFF ## $a1 = 00FFFFFF
/* 00C84 80AA3724 00855824 */ and $t3, $a0, $a1
/* 00C88 80AA3728 3C078000 */ lui $a3, 0x8000 ## $a3 = 80000000
/* 00C8C 80AA372C 0178C821 */ addu $t9, $t3, $t8
/* 00C90 80AA3730 03274021 */ addu $t0, $t9, $a3
/* 00C94 80AA3734 AC680004 */ sw $t0, 0x0004($v1) ## 00000004
/* 00C98 80AA3738 8E2302C0 */ lw $v1, 0x02C0($s1) ## 000002C0
/* 00C9C 80AA373C 3C0ADB06 */ lui $t2, 0xDB06 ## $t2 = DB060000
/* 00CA0 80AA3740 354A0020 */ ori $t2, $t2, 0x0020 ## $t2 = DB060020
/* 00CA4 80AA3744 24690008 */ addiu $t1, $v1, 0x0008 ## $t1 = 00000008
/* 00CA8 80AA3748 AE2902C0 */ sw $t1, 0x02C0($s1) ## 000002C0
/* 00CAC 80AA374C AC6A0000 */ sw $t2, 0x0000($v1) ## 00000000
/* 00CB0 80AA3750 860C020E */ lh $t4, 0x020E($s0) ## 0000020E
/* 00CB4 80AA3754 3C0480AA */ lui $a0, %hi(D_80AA38B0) ## $a0 = 80AA0000
/* 00CB8 80AA3758 000C6880 */ sll $t5, $t4, 2
/* 00CBC 80AA375C 008D2021 */ addu $a0, $a0, $t5
/* 00CC0 80AA3760 8C8438B0 */ lw $a0, %lo(D_80AA38B0)($a0)
/* 00CC4 80AA3764 3C0D80AA */ lui $t5, %hi(func_80AA3580) ## $t5 = 80AA0000
/* 00CC8 80AA3768 3C0C80AA */ lui $t4, %hi(func_80AA3344) ## $t4 = 80AA0000
/* 00CCC 80AA376C 00047900 */ sll $t7, $a0, 4
/* 00CD0 80AA3770 000F5F02 */ srl $t3, $t7, 28
/* 00CD4 80AA3774 000BC080 */ sll $t8, $t3, 2
/* 00CD8 80AA3778 00D8C821 */ addu $t9, $a2, $t8
/* 00CDC 80AA377C 8F280000 */ lw $t0, 0x0000($t9) ## 00000008
/* 00CE0 80AA3780 00857024 */ and $t6, $a0, $a1
/* 00CE4 80AA3784 258C3344 */ addiu $t4, $t4, %lo(func_80AA3344) ## $t4 = 80AA3344
/* 00CE8 80AA3788 01C84821 */ addu $t1, $t6, $t0
/* 00CEC 80AA378C 01275021 */ addu $t2, $t1, $a3
/* 00CF0 80AA3790 AC6A0004 */ sw $t2, 0x0004($v1) ## 00000004
/* 00CF4 80AA3794 9207014E */ lbu $a3, 0x014E($s0) ## 0000014E
/* 00CF8 80AA3798 8E06016C */ lw $a2, 0x016C($s0) ## 0000016C
/* 00CFC 80AA379C 8E050150 */ lw $a1, 0x0150($s0) ## 00000150
/* 00D00 80AA37A0 25AD3580 */ addiu $t5, $t5, %lo(func_80AA3580) ## $t5 = 80AA3580
/* 00D04 80AA37A4 AFAD0014 */ sw $t5, 0x0014($sp)
/* 00D08 80AA37A8 AFB00018 */ sw $s0, 0x0018($sp)
/* 00D0C 80AA37AC AFAC0010 */ sw $t4, 0x0010($sp)
/* 00D10 80AA37B0 0C0286B2 */ jal SkelAnime_DrawSV
/* 00D14 80AA37B4 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 00D18 80AA37B8 3C0680AA */ lui $a2, %hi(D_80AA38F0) ## $a2 = 80AA0000
/* 00D1C 80AA37BC 24C638F0 */ addiu $a2, $a2, %lo(D_80AA38F0) ## $a2 = 80AA38F0
/* 00D20 80AA37C0 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFDC
/* 00D24 80AA37C4 8E450000 */ lw $a1, 0x0000($s2) ## 00000000
/* 00D28 80AA37C8 0C031AD5 */ jal Graph_CloseDisps
/* 00D2C 80AA37CC 240703F5 */ addiu $a3, $zero, 0x03F5 ## $a3 = 000003F5
/* 00D30 80AA37D0 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00D34 80AA37D4 8FB00028 */ lw $s0, 0x0028($sp)
/* 00D38 80AA37D8 8FB1002C */ lw $s1, 0x002C($sp)
/* 00D3C 80AA37DC 8FB20030 */ lw $s2, 0x0030($sp)
/* 00D40 80AA37E0 03E00008 */ jr $ra
/* 00D44 80AA37E4 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000
/* 00D48 80AA37E8 00000000 */ nop
/* 00D4C 80AA37EC 00000000 */ nop

View file

@ -1,97 +0,0 @@
glabel EnMa3_Init
/* 005D4 80AA3074 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 005D8 80AA3078 AFB00028 */ sw $s0, 0x0028($sp)
/* 005DC 80AA307C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 005E0 80AA3080 AFBF002C */ sw $ra, 0x002C($sp)
/* 005E4 80AA3084 AFA50044 */ sw $a1, 0x0044($sp)
/* 005E8 80AA3088 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Circle)
/* 005EC 80AA308C 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawFunc_Circle)
/* 005F0 80AA3090 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 005F4 80AA3094 248400B4 */ addiu $a0, $a0, 0x00B4 ## $a0 = 000000B4
/* 005F8 80AA3098 0C00AC78 */ jal ActorShape_Init
/* 005FC 80AA309C 3C074190 */ lui $a3, 0x4190 ## $a3 = 41900000
/* 00600 80AA30A0 3C060601 */ lui $a2, 0x0601 ## $a2 = 06010000
/* 00604 80AA30A4 24C68D90 */ addiu $a2, $a2, 0x8D90 ## $a2 = 06008D90
/* 00608 80AA30A8 8FA40044 */ lw $a0, 0x0044($sp)
/* 0060C 80AA30AC 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 00610 80AA30B0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00614 80AA30B4 AFA00010 */ sw $zero, 0x0010($sp)
/* 00618 80AA30B8 AFA00014 */ sw $zero, 0x0014($sp)
/* 0061C 80AA30BC 0C0291BE */ jal SkelAnime_InitSV
/* 00620 80AA30C0 AFA00018 */ sw $zero, 0x0018($sp)
/* 00624 80AA30C4 26050194 */ addiu $a1, $s0, 0x0194 ## $a1 = 00000194
/* 00628 80AA30C8 AFA50030 */ sw $a1, 0x0030($sp)
/* 0062C 80AA30CC 0C0170D9 */ jal Collider_InitCylinder
/* 00630 80AA30D0 8FA40044 */ lw $a0, 0x0044($sp)
/* 00634 80AA30D4 3C0780AA */ lui $a3, %hi(D_80AA3810) ## $a3 = 80AA0000
/* 00638 80AA30D8 8FA50030 */ lw $a1, 0x0030($sp)
/* 0063C 80AA30DC 24E73810 */ addiu $a3, $a3, %lo(D_80AA3810) ## $a3 = 80AA3810
/* 00640 80AA30E0 8FA40044 */ lw $a0, 0x0044($sp)
/* 00644 80AA30E4 0C01712B */ jal Collider_SetCylinder
/* 00648 80AA30E8 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 0064C 80AA30EC 0C016C80 */ jal DamageTable_Get
/* 00650 80AA30F0 24040016 */ addiu $a0, $zero, 0x0016 ## $a0 = 00000016
/* 00654 80AA30F4 3C0680AA */ lui $a2, %hi(D_80AA383C) ## $a2 = 80AA0000
/* 00658 80AA30F8 24C6383C */ addiu $a2, $a2, %lo(D_80AA383C) ## $a2 = 80AA383C
/* 0065C 80AA30FC 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098
/* 00660 80AA3100 0C0187BF */ jal func_80061EFC
/* 00664 80AA3104 00402825 */ or $a1, $v0, $zero ## $a1 = 00000000
/* 00668 80AA3108 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0066C 80AA310C 0C2A8BB2 */ jal func_80AA2EC8
/* 00670 80AA3110 8FA50044 */ lw $a1, 0x0044($sp)
/* 00674 80AA3114 10400009 */ beq $v0, $zero, .L80AA313C
/* 00678 80AA3118 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0067C 80AA311C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00680 80AA3120 1041000C */ beq $v0, $at, .L80AA3154
/* 00684 80AA3124 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00688 80AA3128 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 0068C 80AA312C 1041000F */ beq $v0, $at, .L80AA316C
/* 00690 80AA3130 00000000 */ nop
/* 00694 80AA3134 10000012 */ beq $zero, $zero, .L80AA3180
/* 00698 80AA3138 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
.L80AA313C:
/* 0069C 80AA313C 0C2A8C01 */ jal func_80AA3004
/* 006A0 80AA3140 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 006A4 80AA3144 3C0E80AA */ lui $t6, %hi(func_80AA3200) ## $t6 = 80AA0000
/* 006A8 80AA3148 25CE3200 */ addiu $t6, $t6, %lo(func_80AA3200) ## $t6 = 80AA3200
/* 006AC 80AA314C 1000000B */ beq $zero, $zero, .L80AA317C
/* 006B0 80AA3150 AE0E0190 */ sw $t6, 0x0190($s0) ## 00000190
.L80AA3154:
/* 006B4 80AA3154 0C2A8C01 */ jal func_80AA3004
/* 006B8 80AA3158 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 006BC 80AA315C 3C0F80AA */ lui $t7, %hi(func_80AA3200) ## $t7 = 80AA0000
/* 006C0 80AA3160 25EF3200 */ addiu $t7, $t7, %lo(func_80AA3200) ## $t7 = 80AA3200
/* 006C4 80AA3164 10000005 */ beq $zero, $zero, .L80AA317C
/* 006C8 80AA3168 AE0F0190 */ sw $t7, 0x0190($s0) ## 00000190
.L80AA316C:
/* 006CC 80AA316C 0C00B55C */ jal Actor_Kill
/* 006D0 80AA3170 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006D4 80AA3174 10000010 */ beq $zero, $zero, .L80AA31B8
/* 006D8 80AA3178 8FBF002C */ lw $ra, 0x002C($sp)
.L80AA317C:
/* 006DC 80AA317C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
.L80AA3180:
/* 006E0 80AA3180 24180004 */ addiu $t8, $zero, 0x0004 ## $t8 = 00000004
/* 006E4 80AA3184 AFB80014 */ sw $t8, 0x0014($sp)
/* 006E8 80AA3188 44060000 */ mfc1 $a2, $f0
/* 006EC 80AA318C 44070000 */ mfc1 $a3, $f0
/* 006F0 80AA3190 8FA40044 */ lw $a0, 0x0044($sp)
/* 006F4 80AA3194 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 006F8 80AA3198 0C00B92D */ jal func_8002E4B4
/* 006FC 80AA319C E7A00010 */ swc1 $f0, 0x0010($sp)
/* 00700 80AA31A0 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 00704 80AA31A4 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 00708 80AA31A8 0C00B58B */ jal Actor_SetScale
/* 0070C 80AA31AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00710 80AA31B0 A60001E0 */ sh $zero, 0x01E0($s0) ## 000001E0
/* 00714 80AA31B4 8FBF002C */ lw $ra, 0x002C($sp)
.L80AA31B8:
/* 00718 80AA31B8 8FB00028 */ lw $s0, 0x0028($sp)
/* 0071C 80AA31BC 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 00720 80AA31C0 03E00008 */ jr $ra
/* 00724 80AA31C4 00000000 */ nop

View file

@ -1,75 +0,0 @@
glabel EnMa3_Update
/* 00794 80AA3234 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00798 80AA3238 AFB0001C */ sw $s0, 0x001C($sp)
/* 0079C 80AA323C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 007A0 80AA3240 AFB10020 */ sw $s1, 0x0020($sp)
/* 007A4 80AA3244 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 007A8 80AA3248 AFBF0024 */ sw $ra, 0x0024($sp)
/* 007AC 80AA324C 26060194 */ addiu $a2, $s0, 0x0194 ## $a2 = 00000194
/* 007B0 80AA3250 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000194
/* 007B4 80AA3254 0C0189B7 */ jal Collider_CylinderUpdate
/* 007B8 80AA3258 AFA6002C */ sw $a2, 0x002C($sp)
/* 007BC 80AA325C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 007C0 80AA3260 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 007C4 80AA3264 8FA6002C */ lw $a2, 0x002C($sp)
/* 007C8 80AA3268 02212821 */ addu $a1, $s1, $at
/* 007CC 80AA326C 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 007D0 80AA3270 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 007D4 80AA3274 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 007D8 80AA3278 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 007DC 80AA327C 0C2A8BE0 */ jal func_80AA2F80
/* 007E0 80AA3280 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007E4 80AA3284 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
/* 007E8 80AA3288 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007EC 80AA328C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 007F0 80AA3290 0320F809 */ jalr $ra, $t9
/* 007F4 80AA3294 00000000 */ nop
/* 007F8 80AA3298 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007FC 80AA329C 0C2A8B95 */ jal func_80AA2E54
/* 00800 80AA32A0 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00804 80AA32A4 860E01D4 */ lh $t6, 0x01D4($s0) ## 000001D4
/* 00808 80AA32A8 3C014316 */ lui $at, 0x4316 ## $at = 43160000
/* 0080C 80AA32AC 44814000 */ mtc1 $at, $f8 ## $f8 = 150.00
/* 00810 80AA32B0 448E2000 */ mtc1 $t6, $f4 ## $f4 = 0.00
/* 00814 80AA32B4 3C0F80AA */ lui $t7, %hi(func_80AA2AA0) ## $t7 = 80AA0000
/* 00818 80AA32B8 3C1880AA */ lui $t8, %hi(func_80AA2BD4) ## $t8 = 80AA0000
/* 0081C 80AA32BC 468021A0 */ cvt.s.w $f6, $f4
/* 00820 80AA32C0 27182BD4 */ addiu $t8, $t8, %lo(func_80AA2BD4) ## $t8 = 80AA2BD4
/* 00824 80AA32C4 25EF2AA0 */ addiu $t7, $t7, %lo(func_80AA2AA0) ## $t7 = 80AA2AA0
/* 00828 80AA32C8 AFAF0010 */ sw $t7, 0x0010($sp)
/* 0082C 80AA32CC AFB80014 */ sw $t8, 0x0014($sp)
/* 00830 80AA32D0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00834 80AA32D4 46083280 */ add.s $f10, $f6, $f8
/* 00838 80AA32D8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0083C 80AA32DC 260601E0 */ addiu $a2, $s0, 0x01E0 ## $a2 = 000001E0
/* 00840 80AA32E0 44075000 */ mfc1 $a3, $f10
/* 00844 80AA32E4 0C00D0F3 */ jal func_800343CC
/* 00848 80AA32E8 00000000 */ nop
/* 0084C 80AA32EC 860801E0 */ lh $t0, 0x01E0($s0) ## 000001E0
/* 00850 80AA32F0 55000009 */ bnel $t0, $zero, .L80AA3318
/* 00854 80AA32F4 860A020A */ lh $t2, 0x020A($s0) ## 0000020A
/* 00858 80AA32F8 8609020A */ lh $t1, 0x020A($s0) ## 0000020A
/* 0085C 80AA32FC 5120000D */ beql $t1, $zero, .L80AA3334
/* 00860 80AA3300 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00864 80AA3304 0C03D961 */ jal func_800F6584
/* 00868 80AA3308 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 0086C 80AA330C 10000008 */ beq $zero, $zero, .L80AA3330
/* 00870 80AA3310 A600020A */ sh $zero, 0x020A($s0) ## 0000020A
/* 00874 80AA3314 860A020A */ lh $t2, 0x020A($s0) ## 0000020A
.L80AA3318:
/* 00878 80AA3318 55400006 */ bnel $t2, $zero, .L80AA3334
/* 0087C 80AA331C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00880 80AA3320 0C03D961 */ jal func_800F6584
/* 00884 80AA3324 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 00888 80AA3328 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 0088C 80AA332C A60B020A */ sh $t3, 0x020A($s0) ## 0000020A
.L80AA3330:
/* 00890 80AA3330 8FBF0024 */ lw $ra, 0x0024($sp)
.L80AA3334:
/* 00894 80AA3334 8FB0001C */ lw $s0, 0x001C($sp)
/* 00898 80AA3338 8FB10020 */ lw $s1, 0x0020($sp)
/* 0089C 80AA333C 03E00008 */ jr $ra
/* 008A0 80AA3340 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,89 +0,0 @@
glabel func_80AA2AA0
/* 00000 80AA2AA0 3C038016 */ lui $v1, %hi(gSaveContext)
/* 00004 80AA2AA4 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 00008 80AA2AA8 946E0F0E */ lhu $t6, 0x0F0E($v1) ## 8015F56E
/* 0000C 80AA2AAC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00010 80AA2AB0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00014 80AA2AB4 31CF0100 */ andi $t7, $t6, 0x0100 ## $t7 = 00000000
/* 00018 80AA2AB8 15E00003 */ bne $t7, $zero, .L80AA2AC8
/* 0001C 80AA2ABC 8C821C44 */ lw $v0, 0x1C44($a0) ## 00001C44
/* 00020 80AA2AC0 10000040 */ beq $zero, $zero, .L80AA2BC4
/* 00024 80AA2AC4 24022000 */ addiu $v0, $zero, 0x2000 ## $v0 = 00002000
.L80AA2AC8:
/* 00028 80AA2AC8 947813FA */ lhu $t8, 0x13FA($v1) ## 8015FA5A
/* 0002C 80AA2ACC 33190400 */ andi $t9, $t8, 0x0400 ## $t9 = 00000000
/* 00030 80AA2AD0 53200027 */ beql $t9, $zero, .L80AA2B70
/* 00034 80AA2AD4 8C4F067C */ lw $t7, 0x067C($v0) ## 0000267C
/* 00038 80AA2AD8 846813D0 */ lh $t0, 0x13D0($v1) ## 8015FA30
/* 0003C 80AA2ADC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00040 80AA2AE0 A46813D0 */ sh $t0, 0x13D0($v1) ## 8015FA30
/* 00044 80AA2AE4 8CA90004 */ lw $t1, 0x0004($a1) ## 00000004
/* 00048 80AA2AE8 01215025 */ or $t2, $t1, $at ## $t2 = 00010000
/* 0004C 80AA2AEC ACAA0004 */ sw $t2, 0x0004($a1) ## 00000004
/* 00050 80AA2AF0 846213D0 */ lh $v0, 0x13D0($v1) ## 8015FA30
/* 00054 80AA2AF4 284100D3 */ slti $at, $v0, 0x00D3
/* 00058 80AA2AF8 54200004 */ bnel $at, $zero, .L80AA2B0C
/* 0005C 80AA2AFC 8C640EC4 */ lw $a0, 0x0EC4($v1) ## 8015F524
/* 00060 80AA2B00 10000030 */ beq $zero, $zero, .L80AA2BC4
/* 00064 80AA2B04 2402208E */ addiu $v0, $zero, 0x208E ## $v0 = 0000208E
/* 00068 80AA2B08 8C640EC4 */ lw $a0, 0x0EC4($v1) ## 8015F524
.L80AA2B0C:
/* 0006C 80AA2B0C 240B00B4 */ addiu $t3, $zero, 0x00B4 ## $t3 = 000000B4
/* 00070 80AA2B10 10800003 */ beq $a0, $zero, .L80AA2B20
/* 00074 80AA2B14 288100B4 */ slti $at, $a0, 0x00B4
/* 00078 80AA2B18 54200004 */ bnel $at, $zero, .L80AA2B2C
/* 0007C 80AA2B1C 946C0ED6 */ lhu $t4, 0x0ED6($v1) ## 8015F536
.L80AA2B20:
/* 00080 80AA2B20 AC6B0EC4 */ sw $t3, 0x0EC4($v1) ## 8015F524
/* 00084 80AA2B24 846213D0 */ lh $v0, 0x13D0($v1) ## 8015FA30
/* 00088 80AA2B28 946C0ED6 */ lhu $t4, 0x0ED6($v1) ## 8015F536
.L80AA2B2C:
/* 0008C 80AA2B2C 28410032 */ slti $at, $v0, 0x0032
/* 00090 80AA2B30 318D4000 */ andi $t5, $t4, 0x4000 ## $t5 = 00000000
/* 00094 80AA2B34 55A00006 */ bnel $t5, $zero, .L80AA2B50
/* 00098 80AA2B38 8C6E0EC4 */ lw $t6, 0x0EC4($v1) ## 8015F524
/* 0009C 80AA2B3C 50200004 */ beql $at, $zero, .L80AA2B50
/* 000A0 80AA2B40 8C6E0EC4 */ lw $t6, 0x0EC4($v1) ## 8015F524
/* 000A4 80AA2B44 1000001F */ beq $zero, $zero, .L80AA2BC4
/* 000A8 80AA2B48 2402208F */ addiu $v0, $zero, 0x208F ## $v0 = 0000208F
/* 000AC 80AA2B4C 8C6E0EC4 */ lw $t6, 0x0EC4($v1) ## 8015F524
.L80AA2B50:
/* 000B0 80AA2B50 004E082A */ slt $at, $v0, $t6
/* 000B4 80AA2B54 10200003 */ beq $at, $zero, .L80AA2B64
/* 000B8 80AA2B58 00000000 */ nop
/* 000BC 80AA2B5C 10000019 */ beq $zero, $zero, .L80AA2BC4
/* 000C0 80AA2B60 24022012 */ addiu $v0, $zero, 0x2012 ## $v0 = 00002012
.L80AA2B64:
/* 000C4 80AA2B64 10000017 */ beq $zero, $zero, .L80AA2BC4
/* 000C8 80AA2B68 24022004 */ addiu $v0, $zero, 0x2004 ## $v0 = 00002004
/* 000CC 80AA2B6C 8C4F067C */ lw $t7, 0x067C($v0) ## 00002680
.L80AA2B70:
/* 000D0 80AA2B70 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014
/* 000D4 80AA2B74 3C014496 */ lui $at, 0x4496 ## $at = 44960000
/* 000D8 80AA2B78 000FC200 */ sll $t8, $t7, 8
/* 000DC 80AA2B7C 0702000B */ bltzl $t8, .L80AA2BAC
/* 000E0 80AA2B80 94790F0E */ lhu $t9, 0x0F0E($v1) ## 8015F56E
/* 000E4 80AA2B84 44812000 */ mtc1 $at, $f4 ## $f4 = 1200.00
/* 000E8 80AA2B88 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 000EC 80AA2B8C 0C00D4FD */ jal Actor_FindNearby
/* 000F0 80AA2B90 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 000F4 80AA2B94 3C038016 */ lui $v1, %hi(gSaveContext)
/* 000F8 80AA2B98 14400003 */ bne $v0, $zero, .L80AA2BA8
/* 000FC 80AA2B9C 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 00100 80AA2BA0 10000008 */ beq $zero, $zero, .L80AA2BC4
/* 00104 80AA2BA4 24022001 */ addiu $v0, $zero, 0x2001 ## $v0 = 00002001
.L80AA2BA8:
/* 00108 80AA2BA8 94790F0E */ lhu $t9, 0x0F0E($v1) ## 8015F56E
.L80AA2BAC:
/* 0010C 80AA2BAC 24022003 */ addiu $v0, $zero, 0x2003 ## $v0 = 00002003
/* 00110 80AA2BB0 33280200 */ andi $t0, $t9, 0x0200 ## $t0 = 00000000
/* 00114 80AA2BB4 15000003 */ bne $t0, $zero, .L80AA2BC4
/* 00118 80AA2BB8 00000000 */ nop
/* 0011C 80AA2BBC 10000001 */ beq $zero, $zero, .L80AA2BC4
/* 00120 80AA2BC0 24022002 */ addiu $v0, $zero, 0x2002 ## $v0 = 00002002
.L80AA2BC4:
/* 00124 80AA2BC4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00128 80AA2BC8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 0012C 80AA2BCC 03E00008 */ jr $ra
/* 00130 80AA2BD0 00000000 */ nop

View file

@ -1,213 +0,0 @@
.late_rodata
glabel jtbl_80AA3900
.word L80AA2E40
.word L80AA2E40
.word L80AA2D20
.word L80AA2E40
.word L80AA2C8C
.word L80AA2C20
.word L80AA2E40
.word L80AA2E40
.word L80AA2E40
.word L80AA2E40
glabel jtbl_80AA3928
.word L80AA2D80
.word L80AA2E3C
.word L80AA2E08
.word L80AA2E1C
.word L80AA2DB0
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2E3C
.word L80AA2DB0
.text
glabel func_80AA2BD4
/* 00134 80AA2BD4 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00138 80AA2BD8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0013C 80AA2BDC 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00140 80AA2BE0 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00144 80AA2BE4 A7AE001E */ sh $t6, 0x001E($sp)
/* 00148 80AA2BE8 AFA60020 */ sw $a2, 0x0020($sp)
/* 0014C 80AA2BEC 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8
/* 00150 80AA2BF0 0C042F6F */ jal func_8010BDBC
/* 00154 80AA2BF4 AFA50024 */ sw $a1, 0x0024($sp)
/* 00158 80AA2BF8 2C41000A */ sltiu $at, $v0, 0x000A
/* 0015C 80AA2BFC 8FA50024 */ lw $a1, 0x0024($sp)
/* 00160 80AA2C00 1020008F */ beq $at, $zero, .L80AA2E40
/* 00164 80AA2C04 8FA60020 */ lw $a2, 0x0020($sp)
/* 00168 80AA2C08 00027880 */ sll $t7, $v0, 2
/* 0016C 80AA2C0C 3C0180AA */ lui $at, %hi(jtbl_80AA3900) ## $at = 80AA0000
/* 00170 80AA2C10 002F0821 */ addu $at, $at, $t7
/* 00174 80AA2C14 8C2F3900 */ lw $t7, %lo(jtbl_80AA3900)($at)
/* 00178 80AA2C18 01E00008 */ jr $t7
/* 0017C 80AA2C1C 00000000 */ nop
glabel L80AA2C20
/* 00180 80AA2C20 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00184 80AA2C24 0C041AF2 */ jal func_80106BC8
/* 00188 80AA2C28 AFA60020 */ sw $a2, 0x0020($sp)
/* 0018C 80AA2C2C 10400084 */ beq $v0, $zero, .L80AA2E40
/* 00190 80AA2C30 8FA60020 */ lw $a2, 0x0020($sp)
/* 00194 80AA2C34 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00198 80AA2C38 00260821 */ addu $at, $at, $a2
/* 0019C 80AA2C3C 24180157 */ addiu $t8, $zero, 0x0157 ## $t8 = 00000157
/* 001A0 80AA2C40 3C028016 */ lui $v0, %hi(gSaveContext)
/* 001A4 80AA2C44 A4381E1A */ sh $t8, 0x1E1A($at) ## 00011E1A
/* 001A8 80AA2C48 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 001AC 80AA2C4C 3419FFF0 */ ori $t9, $zero, 0xFFF0 ## $t9 = 0000FFF0
/* 001B0 80AA2C50 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 001B4 80AA2C54 A4591412 */ sh $t9, 0x1412($v0) ## 8015FA72
/* 001B8 80AA2C58 00260821 */ addu $at, $at, $a2
/* 001BC 80AA2C5C 24080026 */ addiu $t0, $zero, 0x0026 ## $t0 = 00000026
/* 001C0 80AA2C60 A0281E5E */ sb $t0, 0x1E5E($at) ## 00011E5E
/* 001C4 80AA2C64 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 001C8 80AA2C68 00260821 */ addu $at, $at, $a2
/* 001CC 80AA2C6C 24090014 */ addiu $t1, $zero, 0x0014 ## $t1 = 00000014
/* 001D0 80AA2C70 A0291E15 */ sb $t1, 0x1E15($at) ## 00011E15
/* 001D4 80AA2C74 944A13FA */ lhu $t2, 0x13FA($v0) ## 8015FA5A
/* 001D8 80AA2C78 240C000F */ addiu $t4, $zero, 0x000F ## $t4 = 0000000F
/* 001DC 80AA2C7C A44C13CE */ sh $t4, 0x13CE($v0) ## 8015FA2E
/* 001E0 80AA2C80 354B0400 */ ori $t3, $t2, 0x0400 ## $t3 = 00000400
/* 001E4 80AA2C84 1000006E */ beq $zero, $zero, .L80AA2E40
/* 001E8 80AA2C88 A44B13FA */ sh $t3, 0x13FA($v0) ## 8015FA5A
glabel L80AA2C8C
/* 001EC 80AA2C8C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 001F0 80AA2C90 0C041AF2 */ jal func_80106BC8
/* 001F4 80AA2C94 AFA60020 */ sw $a2, 0x0020($sp)
/* 001F8 80AA2C98 10400069 */ beq $v0, $zero, .L80AA2E40
/* 001FC 80AA2C9C 8FA60020 */ lw $a2, 0x0020($sp)
/* 00200 80AA2CA0 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00204 80AA2CA4 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00208 80AA2CA8 944D0F0E */ lhu $t5, 0x0F0E($v0) ## 8015F56E
/* 0020C 80AA2CAC 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000
/* 00210 80AA2CB0 01E67821 */ addu $t7, $t7, $a2
/* 00214 80AA2CB4 35AE0200 */ ori $t6, $t5, 0x0200 ## $t6 = 00000200
/* 00218 80AA2CB8 A44E0F0E */ sh $t6, 0x0F0E($v0) ## 8015F56E
/* 0021C 80AA2CBC 91EF04BD */ lbu $t7, 0x04BD($t7) ## 000104BD
/* 00220 80AA2CC0 55E00060 */ bnel $t7, $zero, .L80AA2E44
/* 00224 80AA2CC4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00228 80AA2CC8 94580ED6 */ lhu $t8, 0x0ED6($v0) ## 8015F536
/* 0022C 80AA2CCC 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00230 80AA2CD0 33194000 */ andi $t9, $t8, 0x4000 ## $t9 = 00000000
/* 00234 80AA2CD4 53200006 */ beql $t9, $zero, .L80AA2CF0
/* 00238 80AA2CD8 8C480EC4 */ lw $t0, 0x0EC4($v0) ## 8015F524
/* 0023C 80AA2CDC 0C042DC8 */ jal func_8010B720
/* 00240 80AA2CE0 24052091 */ addiu $a1, $zero, 0x2091 ## $a1 = 00002091
/* 00244 80AA2CE4 10000057 */ beq $zero, $zero, .L80AA2E44
/* 00248 80AA2CE8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0024C 80AA2CEC 8C480EC4 */ lw $t0, 0x0EC4($v0) ## 00000EC4
.L80AA2CF0:
/* 00250 80AA2CF0 24052092 */ addiu $a1, $zero, 0x2092 ## $a1 = 00002092
/* 00254 80AA2CF4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00258 80AA2CF8 15000005 */ bne $t0, $zero, .L80AA2D10
/* 0025C 80AA2CFC 00000000 */ nop
/* 00260 80AA2D00 0C042DC8 */ jal func_8010B720
/* 00264 80AA2D04 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00268 80AA2D08 1000004E */ beq $zero, $zero, .L80AA2E44
/* 0026C 80AA2D0C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80AA2D10:
/* 00270 80AA2D10 0C042DC8 */ jal func_8010B720
/* 00274 80AA2D14 24052090 */ addiu $a1, $zero, 0x2090 ## $a1 = 00002090
/* 00278 80AA2D18 1000004A */ beq $zero, $zero, .L80AA2E44
/* 0027C 80AA2D1C 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80AA2D20
/* 00280 80AA2D20 94A2010E */ lhu $v0, 0x010E($a1) ## 0000010E
/* 00284 80AA2D24 2841208F */ slti $at, $v0, 0x208F
/* 00288 80AA2D28 14200006 */ bne $at, $zero, .L80AA2D44
/* 0028C 80AA2D2C 2449E000 */ addiu $t1, $v0, 0xE000 ## $t1 = FFFFE000
/* 00290 80AA2D30 2401208F */ addiu $at, $zero, 0x208F ## $at = 0000208F
/* 00294 80AA2D34 10410019 */ beq $v0, $at, .L80AA2D9C
/* 00298 80AA2D38 00000000 */ nop
/* 0029C 80AA2D3C 10000040 */ beq $zero, $zero, .L80AA2E40
/* 002A0 80AA2D40 A7A0001E */ sh $zero, 0x001E($sp)
.L80AA2D44:
/* 002A4 80AA2D44 28412013 */ slti $at, $v0, 0x2013
/* 002A8 80AA2D48 14200005 */ bne $at, $zero, .L80AA2D60
/* 002AC 80AA2D4C 2401208E */ addiu $at, $zero, 0x208E ## $at = 0000208E
/* 002B0 80AA2D50 1041001F */ beq $v0, $at, .L80AA2DD0
/* 002B4 80AA2D54 00000000 */ nop
/* 002B8 80AA2D58 10000039 */ beq $zero, $zero, .L80AA2E40
/* 002BC 80AA2D5C A7A0001E */ sh $zero, 0x001E($sp)
.L80AA2D60:
/* 002C0 80AA2D60 2D210013 */ sltiu $at, $t1, 0x0013
/* 002C4 80AA2D64 10200035 */ beq $at, $zero, .L80AA2E3C
/* 002C8 80AA2D68 00094880 */ sll $t1, $t1, 2
/* 002CC 80AA2D6C 3C0180AA */ lui $at, %hi(jtbl_80AA3928) ## $at = 80AA0000
/* 002D0 80AA2D70 00290821 */ addu $at, $at, $t1
/* 002D4 80AA2D74 8C293928 */ lw $t1, %lo(jtbl_80AA3928)($at)
/* 002D8 80AA2D78 01200008 */ jr $t1
/* 002DC 80AA2D7C 00000000 */ nop
glabel L80AA2D80
/* 002E0 80AA2D80 3C028016 */ lui $v0, %hi(gSaveContext)
/* 002E4 80AA2D84 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 002E8 80AA2D88 944A0F0E */ lhu $t2, 0x0F0E($v0) ## 8015F56E
/* 002EC 80AA2D8C A7A0001E */ sh $zero, 0x001E($sp)
/* 002F0 80AA2D90 354B0100 */ ori $t3, $t2, 0x0100 ## $t3 = 00000100
/* 002F4 80AA2D94 1000002A */ beq $zero, $zero, .L80AA2E40
/* 002F8 80AA2D98 A44B0F0E */ sh $t3, 0x0F0E($v0) ## 8015F56E
.L80AA2D9C:
/* 002FC 80AA2D9C 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00300 80AA2DA0 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00304 80AA2DA4 944C0ED6 */ lhu $t4, 0x0ED6($v0) ## 8015F536
/* 00308 80AA2DA8 358D4000 */ ori $t5, $t4, 0x4000 ## $t5 = 00004000
/* 0030C 80AA2DAC A44D0ED6 */ sh $t5, 0x0ED6($v0) ## 8015F536
glabel L80AA2DB0
/* 00310 80AA2DB0 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00314 80AA2DB4 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00318 80AA2DB8 844313D0 */ lh $v1, 0x13D0($v0) ## 8015FA30
/* 0031C 80AA2DBC 8C4E0EC4 */ lw $t6, 0x0EC4($v0) ## 8015F524
/* 00320 80AA2DC0 006E082A */ slt $at, $v1, $t6
/* 00324 80AA2DC4 10200002 */ beq $at, $zero, .L80AA2DD0
/* 00328 80AA2DC8 00000000 */ nop
/* 0032C 80AA2DCC AC430EC4 */ sw $v1, 0x0EC4($v0) ## 8015F524
.L80AA2DD0:
/* 00330 80AA2DD0 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00334 80AA2DD4 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00338 80AA2DD8 944F13FA */ lhu $t7, 0x13FA($v0) ## 8015FA5A
/* 0033C 80AA2DDC 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000
/* 00340 80AA2DE0 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF
/* 00344 80AA2DE4 31F8FBFF */ andi $t8, $t7, 0xFBFF ## $t8 = 00000000
/* 00348 80AA2DE8 A45813FA */ sh $t8, 0x13FA($v0) ## 8015FA5A
/* 0034C 80AA2DEC 8CB90004 */ lw $t9, 0x0004($a1) ## 00000004
/* 00350 80AA2DF0 2409000A */ addiu $t1, $zero, 0x000A ## $t1 = 0000000A
/* 00354 80AA2DF4 03214024 */ and $t0, $t9, $at
/* 00358 80AA2DF8 ACA80004 */ sw $t0, 0x0004($a1) ## 00000004
/* 0035C 80AA2DFC A7A0001E */ sh $zero, 0x001E($sp)
/* 00360 80AA2E00 1000000F */ beq $zero, $zero, .L80AA2E40
/* 00364 80AA2E04 A44913CE */ sh $t1, 0x13CE($v0) ## 8015FA2E
glabel L80AA2E08
/* 00368 80AA2E08 3C028016 */ lui $v0, %hi(gSaveContext)
/* 0036C 80AA2E0C 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00370 80AA2E10 944A0F0E */ lhu $t2, 0x0F0E($v0) ## 8015F56E
/* 00374 80AA2E14 354B0200 */ ori $t3, $t2, 0x0200 ## $t3 = 00000200
/* 00378 80AA2E18 A44B0F0E */ sh $t3, 0x0F0E($v0) ## 8015F56E
glabel L80AA2E1C
/* 0037C 80AA2E1C 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00380 80AA2E20 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00384 80AA2E24 944C13FA */ lhu $t4, 0x13FA($v0) ## 8015FA5A
/* 00388 80AA2E28 318D0400 */ andi $t5, $t4, 0x0400 ## $t5 = 00000000
/* 0038C 80AA2E2C 55A00005 */ bnel $t5, $zero, .L80AA2E44
/* 00390 80AA2E30 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00394 80AA2E34 10000002 */ beq $zero, $zero, .L80AA2E40
/* 00398 80AA2E38 A7A0001E */ sh $zero, 0x001E($sp)
glabel L80AA2E3C
.L80AA2E3C:
/* 0039C 80AA2E3C A7A0001E */ sh $zero, 0x001E($sp)
glabel L80AA2E40
.L80AA2E40:
/* 003A0 80AA2E40 8FBF0014 */ lw $ra, 0x0014($sp)
.L80AA2E44:
/* 003A4 80AA2E44 87A2001E */ lh $v0, 0x001E($sp)
/* 003A8 80AA2E48 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 003AC 80AA2E4C 03E00008 */ jr $ra
/* 003B0 80AA2E50 00000000 */ nop

View file

@ -1,31 +0,0 @@
glabel func_80AA2E54
/* 003B4 80AA2E54 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003B8 80AA2E58 AFBF0014 */ sw $ra, 0x0014($sp)
/* 003BC 80AA2E5C 848E01E0 */ lh $t6, 0x01E0($a0) ## 000001E0
/* 003C0 80AA2E60 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 003C4 80AA2E64 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 003C8 80AA2E68 15C00008 */ bne $t6, $zero, .L80AA2E8C
/* 003CC 80AA2E6C 00000000 */ nop
/* 003D0 80AA2E70 8C980154 */ lw $t8, 0x0154($a0) ## 00000154
/* 003D4 80AA2E74 3C0F0601 */ lui $t7, 0x0601 ## $t7 = 06010000
/* 003D8 80AA2E78 25EF9EE0 */ addiu $t7, $t7, 0x9EE0 ## $t7 = 06009EE0
/* 003DC 80AA2E7C 15F80003 */ bne $t7, $t8, .L80AA2E8C
/* 003E0 80AA2E80 00000000 */ nop
/* 003E4 80AA2E84 10000001 */ beq $zero, $zero, .L80AA2E8C
/* 003E8 80AA2E88 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
.L80AA2E8C:
/* 003EC 80AA2E8C 8C480024 */ lw $t0, 0x0024($v0) ## 00000024
/* 003F0 80AA2E90 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 003F4 80AA2E94 248501E0 */ addiu $a1, $a0, 0x01E0 ## $a1 = 000001E0
/* 003F8 80AA2E98 AC8801F8 */ sw $t0, 0x01F8($a0) ## 000001F8
/* 003FC 80AA2E9C 8C590028 */ lw $t9, 0x0028($v0) ## 00000028
/* 00400 80AA2EA0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00404 80AA2EA4 AC9901FC */ sw $t9, 0x01FC($a0) ## 000001FC
/* 00408 80AA2EA8 8C48002C */ lw $t0, 0x002C($v0) ## 0000002C
/* 0040C 80AA2EAC E48401F4 */ swc1 $f4, 0x01F4($a0) ## 000001F4
/* 00410 80AA2EB0 0C00D285 */ jal func_80034A14
/* 00414 80AA2EB4 AC880200 */ sw $t0, 0x0200($a0) ## 00000200
/* 00418 80AA2EB8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0041C 80AA2EBC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00420 80AA2EC0 03E00008 */ jr $ra
/* 00424 80AA2EC4 00000000 */ nop

View file

@ -1,29 +0,0 @@
glabel func_80AA2EC8
/* 00428 80AA2EC8 3C028016 */ lui $v0, %hi(gSaveContext)
/* 0042C 80AA2ECC 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00430 80AA2ED0 8C4E0004 */ lw $t6, 0x0004($v0) ## 8015E664
/* 00434 80AA2ED4 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00438 80AA2ED8 AFA40000 */ sw $a0, 0x0000($sp)
/* 0043C 80AA2EDC 15C10003 */ bne $t6, $at, .L80AA2EEC
/* 00440 80AA2EE0 AFA50004 */ sw $a1, 0x0004($sp)
/* 00444 80AA2EE4 03E00008 */ jr $ra
/* 00448 80AA2EE8 24020002 */ addiu $v0, $zero, 0x0002 ## $v0 = 00000002
.L80AA2EEC:
/* 0044C 80AA2EEC 944F0ED6 */ lhu $t7, 0x0ED6($v0) ## 00000ED8
/* 00450 80AA2EF0 31F80100 */ andi $t8, $t7, 0x0100 ## $t8 = 00000000
/* 00454 80AA2EF4 57000004 */ bnel $t8, $zero, .L80AA2F08
/* 00458 80AA2EF8 945913FA */ lhu $t9, 0x13FA($v0) ## 000013FC
/* 0045C 80AA2EFC 03E00008 */ jr $ra
/* 00460 80AA2F00 24020002 */ addiu $v0, $zero, 0x0002 ## $v0 = 00000002
.L80AA2F04:
/* 00464 80AA2F04 945913FA */ lhu $t9, 0x13FA($v0) ## 000013FC
.L80AA2F08:
/* 00468 80AA2F08 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 0046C 80AA2F0C 33280400 */ andi $t0, $t9, 0x0400 ## $t0 = 00000000
/* 00470 80AA2F10 11000003 */ beq $t0, $zero, .L80AA2F20
/* 00474 80AA2F14 00000000 */ nop
/* 00478 80AA2F18 03E00008 */ jr $ra
/* 0047C 80AA2F1C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80AA2F20:
/* 00480 80AA2F20 03E00008 */ jr $ra
/* 00484 80AA2F24 00000000 */ nop

View file

@ -1,28 +0,0 @@
glabel func_80AA2F28
/* 00488 80AA2F28 8C8F0154 */ lw $t7, 0x0154($a0) ## 00000154
/* 0048C 80AA2F2C 3C0E0601 */ lui $t6, 0x0601 ## $t6 = 06010000
/* 00490 80AA2F30 25CE9EE0 */ addiu $t6, $t6, 0x9EE0 ## $t6 = 06009EE0
/* 00494 80AA2F34 51CF0004 */ beql $t6, $t7, .L80AA2F48
/* 00498 80AA2F38 849801E0 */ lh $t8, 0x01E0($a0) ## 000001E0
/* 0049C 80AA2F3C 03E00008 */ jr $ra
/* 004A0 80AA2F40 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80AA2F44:
/* 004A4 80AA2F44 849801E0 */ lh $t8, 0x01E0($a0) ## 000001E0
.L80AA2F48:
/* 004A8 80AA2F48 53000004 */ beql $t8, $zero, .L80AA2F5C
/* 004AC 80AA2F4C 8499020E */ lh $t9, 0x020E($a0) ## 0000020E
/* 004B0 80AA2F50 03E00008 */ jr $ra
/* 004B4 80AA2F54 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80AA2F58:
/* 004B8 80AA2F58 8499020E */ lh $t9, 0x020E($a0) ## 0000020E
.L80AA2F5C:
/* 004BC 80AA2F5C 24030002 */ addiu $v1, $zero, 0x0002 ## $v1 = 00000002
/* 004C0 80AA2F60 A480020C */ sh $zero, 0x020C($a0) ## 0000020C
/* 004C4 80AA2F64 10790003 */ beq $v1, $t9, .L80AA2F74
/* 004C8 80AA2F68 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 004CC 80AA2F6C 03E00008 */ jr $ra
/* 004D0 80AA2F70 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80AA2F74:
/* 004D4 80AA2F74 A4830210 */ sh $v1, 0x0210($a0) ## 00000210
/* 004D8 80AA2F78 03E00008 */ jr $ra
/* 004DC 80AA2F7C 00000000 */ nop

View file

@ -1,39 +0,0 @@
glabel func_80AA2F80
/* 004E0 80AA2F80 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 004E4 80AA2F84 AFBF0014 */ sw $ra, 0x0014($sp)
/* 004E8 80AA2F88 0C2A8BCA */ jal func_80AA2F28
/* 004EC 80AA2F8C AFA40018 */ sw $a0, 0x0018($sp)
/* 004F0 80AA2F90 14400018 */ bne $v0, $zero, .L80AA2FF4
/* 004F4 80AA2F94 8FA60018 */ lw $a2, 0x0018($sp)
/* 004F8 80AA2F98 84C2020C */ lh $v0, 0x020C($a2) ## 0000020C
/* 004FC 80AA2F9C 14400003 */ bne $v0, $zero, .L80AA2FAC
/* 00500 80AA2FA0 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00504 80AA2FA4 10000003 */ beq $zero, $zero, .L80AA2FB4
/* 00508 80AA2FA8 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
.L80AA2FAC:
/* 0050C 80AA2FAC A4CE020C */ sh $t6, 0x020C($a2) ## 0000020C
/* 00510 80AA2FB0 84C3020C */ lh $v1, 0x020C($a2) ## 0000020C
.L80AA2FB4:
/* 00514 80AA2FB4 54600010 */ bnel $v1, $zero, .L80AA2FF8
/* 00518 80AA2FB8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0051C 80AA2FBC 84CF020E */ lh $t7, 0x020E($a2) ## 0000020E
/* 00520 80AA2FC0 2404001E */ addiu $a0, $zero, 0x001E ## $a0 = 0000001E
/* 00524 80AA2FC4 2405001E */ addiu $a1, $zero, 0x001E ## $a1 = 0000001E
/* 00528 80AA2FC8 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 0052C 80AA2FCC A4D8020E */ sh $t8, 0x020E($a2) ## 0000020E
/* 00530 80AA2FD0 84D9020E */ lh $t9, 0x020E($a2) ## 0000020E
/* 00534 80AA2FD4 2B210003 */ slti $at, $t9, 0x0003
/* 00538 80AA2FD8 54200007 */ bnel $at, $zero, .L80AA2FF8
/* 0053C 80AA2FDC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00540 80AA2FE0 0C01DF64 */ jal Math_Rand_S16Offset
/* 00544 80AA2FE4 AFA60018 */ sw $a2, 0x0018($sp)
/* 00548 80AA2FE8 8FA60018 */ lw $a2, 0x0018($sp)
/* 0054C 80AA2FEC A4C2020C */ sh $v0, 0x020C($a2) ## 0000020C
/* 00550 80AA2FF0 A4C0020E */ sh $zero, 0x020E($a2) ## 0000020E
.L80AA2FF4:
/* 00554 80AA2FF4 8FBF0014 */ lw $ra, 0x0014($sp)
.L80AA2FF8:
/* 00558 80AA2FF8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0055C 80AA2FFC 03E00008 */ jr $ra
/* 00560 80AA3000 00000000 */ nop

View file

@ -1,31 +0,0 @@
glabel func_80AA3004
/* 00564 80AA3004 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00568 80AA3008 3C0F80AA */ lui $t7, %hi(D_80AA3848) ## $t7 = 80AA0000
/* 0056C 80AA300C 25EF3848 */ addiu $t7, $t7, %lo(D_80AA3848) ## $t7 = 80AA3848
/* 00570 80AA3010 00057100 */ sll $t6, $a1, 4
/* 00574 80AA3014 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00578 80AA3018 AFA40030 */ sw $a0, 0x0030($sp)
/* 0057C 80AA301C 01CF1821 */ addu $v1, $t6, $t7
/* 00580 80AA3020 8C640000 */ lw $a0, 0x0000($v1) ## 00000000
/* 00584 80AA3024 0C028800 */ jal SkelAnime_GetFrameCount
/* 00588 80AA3028 AFA30028 */ sw $v1, 0x0028($sp)
/* 0058C 80AA302C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00590 80AA3030 8FA30028 */ lw $v1, 0x0028($sp)
/* 00594 80AA3034 8FA40030 */ lw $a0, 0x0030($sp)
/* 00598 80AA3038 468021A0 */ cvt.s.w $f6, $f4
/* 0059C 80AA303C 90780008 */ lbu $t8, 0x0008($v1) ## 00000008
/* 005A0 80AA3040 C468000C */ lwc1 $f8, 0x000C($v1) ## 0000000C
/* 005A4 80AA3044 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 005A8 80AA3048 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 005AC 80AA304C 8C650000 */ lw $a1, 0x0000($v1) ## 00000000
/* 005B0 80AA3050 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 005B4 80AA3054 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 005B8 80AA3058 AFB80014 */ sw $t8, 0x0014($sp)
/* 005BC 80AA305C 0C029468 */ jal SkelAnime_ChangeAnim
/* 005C0 80AA3060 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 005C4 80AA3064 8FBF0024 */ lw $ra, 0x0024($sp)
/* 005C8 80AA3068 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 005CC 80AA306C 03E00008 */ jr $ra
/* 005D0 80AA3070 00000000 */ nop

View file

@ -1,15 +0,0 @@
glabel func_80AA3200
/* 00760 80AA3200 AFA50004 */ sw $a1, 0x0004($sp)
/* 00764 80AA3204 848E01E0 */ lh $t6, 0x01E0($a0) ## 000001E0
/* 00768 80AA3208 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 0076C 80AA320C 15C10007 */ bne $t6, $at, .L80AA322C
/* 00770 80AA3210 00000000 */ nop
/* 00774 80AA3214 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 00778 80AA3218 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000
/* 0077C 80AA321C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF
/* 00780 80AA3220 01E1C024 */ and $t8, $t7, $at
/* 00784 80AA3224 AC980004 */ sw $t8, 0x0004($a0) ## 00000004
/* 00788 80AA3228 A48001E0 */ sh $zero, 0x01E0($a0) ## 000001E0
.L80AA322C:
/* 0078C 80AA322C 03E00008 */ jr $ra
/* 00790 80AA3230 00000000 */ nop

View file

@ -1,166 +0,0 @@
.late_rodata
glabel D_80AA3974
.float 3.14159274101
glabel D_80AA3978
.float 3.14159274101
glabel D_80AA397C
.float 3.14159274101
glabel D_80AA3980
.float 3.14159274101
.text
glabel func_80AA3344
/* 008A4 80AA3344 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 008A8 80AA3348 AFB00018 */ sw $s0, 0x0018($sp)
/* 008AC 80AA334C 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 008B0 80AA3350 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 008B4 80AA3354 AFBF001C */ sw $ra, 0x001C($sp)
/* 008B8 80AA3358 AFA40038 */ sw $a0, 0x0038($sp)
/* 008BC 80AA335C 10A10004 */ beq $a1, $at, .L80AA3370
/* 008C0 80AA3360 AFA70044 */ sw $a3, 0x0044($sp)
/* 008C4 80AA3364 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 008C8 80AA3368 54A10003 */ bnel $a1, $at, .L80AA3378
/* 008CC 80AA336C 24010012 */ addiu $at, $zero, 0x0012 ## $at = 00000012
.L80AA3370:
/* 008D0 80AA3370 ACC00000 */ sw $zero, 0x0000($a2) ## 00000000
/* 008D4 80AA3374 24010012 */ addiu $at, $zero, 0x0012 ## $at = 00000012
.L80AA3378:
/* 008D8 80AA3378 5601002E */ bnel $s0, $at, .L80AA3434
/* 008DC 80AA337C 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B
/* 008E0 80AA3380 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
/* 008E4 80AA3384 3C0144AF */ lui $at, 0x44AF ## $at = 44AF0000
/* 008E8 80AA3388 44816000 */ mtc1 $at, $f12 ## $f12 = 1400.00
/* 008EC 80AA338C 44067000 */ mfc1 $a2, $f14
/* 008F0 80AA3390 0C034261 */ jal Matrix_Translate
/* 008F4 80AA3394 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 008F8 80AA3398 8FAF004C */ lw $t7, 0x004C($sp)
/* 008FC 80AA339C 27AE002C */ addiu $t6, $sp, 0x002C ## $t6 = FFFFFFF4
/* 00900 80AA33A0 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 00904 80AA33A4 89F901E8 */ lwl $t9, 0x01E8($t7) ## 000001E8
/* 00908 80AA33A8 99F901EB */ lwr $t9, 0x01EB($t7) ## 000001EB
/* 0090C 80AA33AC 44814000 */ mtc1 $at, $f8 ## $f8 = 32768.00
/* 00910 80AA33B0 3C0180AA */ lui $at, %hi(D_80AA3974) ## $at = 80AA0000
/* 00914 80AA33B4 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF4
/* 00918 80AA33B8 95F901EC */ lhu $t9, 0x01EC($t7) ## 000001EC
/* 0091C 80AA33BC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00920 80AA33C0 A5D90004 */ sh $t9, 0x0004($t6) ## FFFFFFF8
/* 00924 80AA33C4 87A8002E */ lh $t0, 0x002E($sp)
/* 00928 80AA33C8 C4303974 */ lwc1 $f16, %lo(D_80AA3974)($at)
/* 0092C 80AA33CC 44882000 */ mtc1 $t0, $f4 ## $f4 = 0.00
/* 00930 80AA33D0 00000000 */ nop
/* 00934 80AA33D4 468021A0 */ cvt.s.w $f6, $f4
/* 00938 80AA33D8 46083283 */ div.s $f10, $f6, $f8
/* 0093C 80AA33DC 46105302 */ mul.s $f12, $f10, $f16
/* 00940 80AA33E0 0C0342DC */ jal Matrix_RotateX
/* 00944 80AA33E4 00000000 */ nop
/* 00948 80AA33E8 87A9002C */ lh $t1, 0x002C($sp)
/* 0094C 80AA33EC 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 00950 80AA33F0 44813000 */ mtc1 $at, $f6 ## $f6 = 32768.00
/* 00954 80AA33F4 44899000 */ mtc1 $t1, $f18 ## $f18 = 0.00
/* 00958 80AA33F8 3C0180AA */ lui $at, %hi(D_80AA3978) ## $at = 80AA0000
/* 0095C 80AA33FC C42A3978 */ lwc1 $f10, %lo(D_80AA3978)($at)
/* 00960 80AA3400 46809120 */ cvt.s.w $f4, $f18
/* 00964 80AA3404 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00968 80AA3408 46062203 */ div.s $f8, $f4, $f6
/* 0096C 80AA340C 460A4302 */ mul.s $f12, $f8, $f10
/* 00970 80AA3410 0C0343B5 */ jal Matrix_RotateZ
/* 00974 80AA3414 00000000 */ nop
/* 00978 80AA3418 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
/* 0097C 80AA341C 3C01C4AF */ lui $at, 0xC4AF ## $at = C4AF0000
/* 00980 80AA3420 44816000 */ mtc1 $at, $f12 ## $f12 = -1400.00
/* 00984 80AA3424 44067000 */ mfc1 $a2, $f14
/* 00988 80AA3428 0C034261 */ jal Matrix_Translate
/* 0098C 80AA342C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00990 80AA3430 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B
.L80AA3434:
/* 00994 80AA3434 16010022 */ bne $s0, $at, .L80AA34C0
/* 00998 80AA3438 8FAB004C */ lw $t3, 0x004C($sp)
/* 0099C 80AA343C 896D01EE */ lwl $t5, 0x01EE($t3) ## 000001EE
/* 009A0 80AA3440 996D01F1 */ lwr $t5, 0x01F1($t3) ## 000001F1
/* 009A4 80AA3444 27AA002C */ addiu $t2, $sp, 0x002C ## $t2 = FFFFFFF4
/* 009A8 80AA3448 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 009AC 80AA344C AD4D0000 */ sw $t5, 0x0000($t2) ## FFFFFFF4
/* 009B0 80AA3450 956D01F2 */ lhu $t5, 0x01F2($t3) ## 000001F2
/* 009B4 80AA3454 44812000 */ mtc1 $at, $f4 ## $f4 = 32768.00
/* 009B8 80AA3458 3C0180AA */ lui $at, %hi(D_80AA397C) ## $at = 80AA0000
/* 009BC 80AA345C A54D0004 */ sh $t5, 0x0004($t2) ## FFFFFFF8
/* 009C0 80AA3460 87AE002E */ lh $t6, 0x002E($sp)
/* 009C4 80AA3464 C428397C */ lwc1 $f8, %lo(D_80AA397C)($at)
/* 009C8 80AA3468 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 009CC 80AA346C 000E7823 */ subu $t7, $zero, $t6
/* 009D0 80AA3470 448F8000 */ mtc1 $t7, $f16 ## $f16 = 0.00
/* 009D4 80AA3474 00000000 */ nop
/* 009D8 80AA3478 468084A0 */ cvt.s.w $f18, $f16
/* 009DC 80AA347C 46049183 */ div.s $f6, $f18, $f4
/* 009E0 80AA3480 46083302 */ mul.s $f12, $f6, $f8
/* 009E4 80AA3484 0C034348 */ jal Matrix_RotateY
/* 009E8 80AA3488 00000000 */ nop
/* 009EC 80AA348C 87B8002C */ lh $t8, 0x002C($sp)
/* 009F0 80AA3490 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 009F4 80AA3494 44819000 */ mtc1 $at, $f18 ## $f18 = 32768.00
/* 009F8 80AA3498 0018C823 */ subu $t9, $zero, $t8
/* 009FC 80AA349C 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 00A00 80AA34A0 3C0180AA */ lui $at, %hi(D_80AA3980) ## $at = 80AA0000
/* 00A04 80AA34A4 C4263980 */ lwc1 $f6, %lo(D_80AA3980)($at)
/* 00A08 80AA34A8 46805420 */ cvt.s.w $f16, $f10
/* 00A0C 80AA34AC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00A10 80AA34B0 46128103 */ div.s $f4, $f16, $f18
/* 00A14 80AA34B4 46062302 */ mul.s $f12, $f4, $f6
/* 00A18 80AA34B8 0C0342DC */ jal Matrix_RotateX
/* 00A1C 80AA34BC 00000000 */ nop
.L80AA34C0:
/* 00A20 80AA34C0 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B
/* 00A24 80AA34C4 12010005 */ beq $s0, $at, .L80AA34DC
/* 00A28 80AA34C8 8FA8004C */ lw $t0, 0x004C($sp)
/* 00A2C 80AA34CC 2401000C */ addiu $at, $zero, 0x000C ## $at = 0000000C
/* 00A30 80AA34D0 12010002 */ beq $s0, $at, .L80AA34DC
/* 00A34 80AA34D4 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
/* 00A38 80AA34D8 16010024 */ bne $s0, $at, .L80AA356C
.L80AA34DC:
/* 00A3C 80AA34DC 00104880 */ sll $t1, $s0, 2
/* 00A40 80AA34E0 01304823 */ subu $t1, $t1, $s0
/* 00A44 80AA34E4 00094840 */ sll $t1, $t1, 1
/* 00A48 80AA34E8 01091821 */ addu $v1, $t0, $t1
/* 00A4C 80AA34EC 84640214 */ lh $a0, 0x0214($v1) ## 00000214
/* 00A50 80AA34F0 0C01DE1C */ jal Math_Sins
## sins?
/* 00A54 80AA34F4 AFA30024 */ sw $v1, 0x0024($sp)
/* 00A58 80AA34F8 8FA20048 */ lw $v0, 0x0048($sp)
/* 00A5C 80AA34FC 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00A60 80AA3500 44818000 */ mtc1 $at, $f16 ## $f16 = 200.00
/* 00A64 80AA3504 844A0002 */ lh $t2, 0x0002($v0) ## 00000002
/* 00A68 80AA3508 8FA30024 */ lw $v1, 0x0024($sp)
/* 00A6C 80AA350C 46100482 */ mul.s $f18, $f0, $f16
/* 00A70 80AA3510 448A4000 */ mtc1 $t2, $f8 ## $f8 = 0.00
/* 00A74 80AA3514 00000000 */ nop
/* 00A78 80AA3518 468042A0 */ cvt.s.w $f10, $f8
/* 00A7C 80AA351C 46125100 */ add.s $f4, $f10, $f18
/* 00A80 80AA3520 4600218D */ trunc.w.s $f6, $f4
/* 00A84 80AA3524 440C3000 */ mfc1 $t4, $f6
/* 00A88 80AA3528 00000000 */ nop
/* 00A8C 80AA352C A44C0002 */ sh $t4, 0x0002($v0) ## 00000002
/* 00A90 80AA3530 0C01DE0D */ jal Math_Coss
## coss?
/* 00A94 80AA3534 84640216 */ lh $a0, 0x0216($v1) ## 00000216
/* 00A98 80AA3538 8FA20048 */ lw $v0, 0x0048($sp)
/* 00A9C 80AA353C 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00AA0 80AA3540 44815000 */ mtc1 $at, $f10 ## $f10 = 200.00
/* 00AA4 80AA3544 844D0004 */ lh $t5, 0x0004($v0) ## 00000004
/* 00AA8 80AA3548 460A0482 */ mul.s $f18, $f0, $f10
/* 00AAC 80AA354C 448D4000 */ mtc1 $t5, $f8 ## $f8 = 0.00
/* 00AB0 80AA3550 00000000 */ nop
/* 00AB4 80AA3554 46804420 */ cvt.s.w $f16, $f8
/* 00AB8 80AA3558 46128100 */ add.s $f4, $f16, $f18
/* 00ABC 80AA355C 4600218D */ trunc.w.s $f6, $f4
/* 00AC0 80AA3560 440F3000 */ mfc1 $t7, $f6
/* 00AC4 80AA3564 00000000 */ nop
/* 00AC8 80AA3568 A44F0004 */ sh $t7, 0x0004($v0) ## 00000004
.L80AA356C:
/* 00ACC 80AA356C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00AD0 80AA3570 8FB00018 */ lw $s0, 0x0018($sp)
/* 00AD4 80AA3574 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00AD8 80AA3578 03E00008 */ jr $ra
/* 00ADC 80AA357C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000

View file

@ -1,73 +0,0 @@
.rdata
glabel D_80AA38C0
.asciz "../z_en_ma3.c"
.balign 4
glabel D_80AA38D0
.asciz "../z_en_ma3.c"
.balign 4
.text
glabel func_80AA3580
/* 00AE0 80AA3580 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00AE4 80AA3584 3C0F80AA */ lui $t7, %hi(D_80AA3898) ## $t7 = 80AA0000
/* 00AE8 80AA3588 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00AEC 80AA358C AFA40048 */ sw $a0, 0x0048($sp)
/* 00AF0 80AA3590 AFA5004C */ sw $a1, 0x004C($sp)
/* 00AF4 80AA3594 AFA60050 */ sw $a2, 0x0050($sp)
/* 00AF8 80AA3598 AFA70054 */ sw $a3, 0x0054($sp)
/* 00AFC 80AA359C 25EF3898 */ addiu $t7, $t7, %lo(D_80AA3898) ## $t7 = 80AA3898
/* 00B00 80AA35A0 8DF90000 */ lw $t9, 0x0000($t7) ## 80AA3898
/* 00B04 80AA35A4 27AE0038 */ addiu $t6, $sp, 0x0038 ## $t6 = FFFFFFF0
/* 00B08 80AA35A8 8DF80004 */ lw $t8, 0x0004($t7) ## 80AA389C
/* 00B0C 80AA35AC ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF0
/* 00B10 80AA35B0 8DF90008 */ lw $t9, 0x0008($t7) ## 80AA38A0
/* 00B14 80AA35B4 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF4
/* 00B18 80AA35B8 3C0680AA */ lui $a2, %hi(D_80AA38C0) ## $a2 = 80AA0000
/* 00B1C 80AA35BC ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFF8
/* 00B20 80AA35C0 8FA80048 */ lw $t0, 0x0048($sp)
/* 00B24 80AA35C4 24C638C0 */ addiu $a2, $a2, %lo(D_80AA38C0) ## $a2 = 80AA38C0
/* 00B28 80AA35C8 2407039F */ addiu $a3, $zero, 0x039F ## $a3 = 0000039F
/* 00B2C 80AA35CC 8D050000 */ lw $a1, 0x0000($t0) ## 00000000
/* 00B30 80AA35D0 27A40024 */ addiu $a0, $sp, 0x0024 ## $a0 = FFFFFFDC
/* 00B34 80AA35D4 0C031AB1 */ jal Graph_OpenDisps
/* 00B38 80AA35D8 AFA50034 */ sw $a1, 0x0034($sp)
/* 00B3C 80AA35DC 8FA9004C */ lw $t1, 0x004C($sp)
/* 00B40 80AA35E0 8FA50058 */ lw $a1, 0x0058($sp)
/* 00B44 80AA35E4 24010012 */ addiu $at, $zero, 0x0012 ## $at = 00000012
/* 00B48 80AA35E8 15210003 */ bne $t1, $at, .L80AA35F8
/* 00B4C 80AA35EC 24A50038 */ addiu $a1, $a1, 0x0038 ## $a1 = 00000038
/* 00B50 80AA35F0 0C0346BD */ jal Matrix_MultVec3f
/* 00B54 80AA35F4 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFF0
.L80AA35F8:
/* 00B58 80AA35F8 8FAA004C */ lw $t2, 0x004C($sp)
/* 00B5C 80AA35FC 2401000E */ addiu $at, $zero, 0x000E ## $at = 0000000E
/* 00B60 80AA3600 3C0680AA */ lui $a2, %hi(D_80AA38D0) ## $a2 = 80AA0000
/* 00B64 80AA3604 15410010 */ bne $t2, $at, .L80AA3648
/* 00B68 80AA3608 24C638D0 */ addiu $a2, $a2, %lo(D_80AA38D0) ## $a2 = 80AA38D0
/* 00B6C 80AA360C 8FAC0058 */ lw $t4, 0x0058($sp)
/* 00B70 80AA3610 3C0B0601 */ lui $t3, 0x0601 ## $t3 = 06010000
/* 00B74 80AA3614 256B93BC */ addiu $t3, $t3, 0x93BC ## $t3 = 060093BC
/* 00B78 80AA3618 8D8D0154 */ lw $t5, 0x0154($t4) ## 00000154
/* 00B7C 80AA361C 8FA40034 */ lw $a0, 0x0034($sp)
/* 00B80 80AA3620 3C0FDE00 */ lui $t7, 0xDE00 ## $t7 = DE000000
/* 00B84 80AA3624 556D0009 */ bnel $t3, $t5, .L80AA364C
/* 00B88 80AA3628 8FB90048 */ lw $t9, 0x0048($sp)
/* 00B8C 80AA362C 8C8302C0 */ lw $v1, 0x02C0($a0) ## 000002C0
/* 00B90 80AA3630 3C180600 */ lui $t8, 0x0600 ## $t8 = 06000000
/* 00B94 80AA3634 27185420 */ addiu $t8, $t8, 0x5420 ## $t8 = 06005420
/* 00B98 80AA3638 246E0008 */ addiu $t6, $v1, 0x0008 ## $t6 = 00000008
/* 00B9C 80AA363C AC8E02C0 */ sw $t6, 0x02C0($a0) ## 000002C0
/* 00BA0 80AA3640 AC780004 */ sw $t8, 0x0004($v1) ## 00000004
/* 00BA4 80AA3644 AC6F0000 */ sw $t7, 0x0000($v1) ## 00000000
.L80AA3648:
/* 00BA8 80AA3648 8FB90048 */ lw $t9, 0x0048($sp)
.L80AA364C:
/* 00BAC 80AA364C 27A40024 */ addiu $a0, $sp, 0x0024 ## $a0 = FFFFFFDC
/* 00BB0 80AA3650 240703B6 */ addiu $a3, $zero, 0x03B6 ## $a3 = 000003B6
/* 00BB4 80AA3654 0C031AD5 */ jal Graph_CloseDisps
/* 00BB8 80AA3658 8F250000 */ lw $a1, 0x0000($t9) ## 00000000
/* 00BBC 80AA365C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00BC0 80AA3660 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 00BC4 80AA3664 03E00008 */ jr $ra
/* 00BC8 80AA3668 00000000 */ nop

View file

@ -1,28 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .data
glabel En_Ma3_InitVars
.word 0x01C50400, 0x00000039, 0x00D00000, 0x00000284
.word EnMa3_Init
.word EnMa3_Destroy
.word EnMa3_Update
.word EnMa3_Draw
glabel D_80AA3810
.word 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x0012002E, 0x00000000, 0x00000000
glabel D_80AA383C
.word 0x00000000, 0x00000000, 0xFF000000
glabel D_80AA3848
.word 0x060007D4, 0x3F800000, 0x00000000, 0x00000000, 0x060007D4, 0x3F800000, 0x00000000, 0xC1200000, 0x060093BC, 0x3F800000, 0x00000000, 0x00000000, 0x06009EE0, 0x3F800000, 0x00000000, 0x00000000, 0x06009EE0, 0x3F800000, 0x00000000, 0xC1200000
glabel D_80AA3898
.word 0x44610000, 0x00000000, 0x00000000
glabel D_80AA38A4
.word 0x06002970, 0x06003570, 0x06003770
glabel D_80AA38B0
.word 0x06002570, 0x06002C70, 0x06003070, 0x00000000

View file

@ -1,11 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .rodata
glabel D_80AA3990
.incbin "baserom/ovl_En_Ma3", 0xEF0, 0x00000170

View file

@ -2153,6 +2153,7 @@ void func_800F59E8(u16);
// ? func_800F5E18(?);
// ? func_800F5E90(?);
void func_800F6268(f32, UNK_TYPE);
void func_800F6584(UNK_TYPE);
// ? func_800F64E0(?);
void func_800F6584(UNK_TYPE);
// ? func_800F66C0(?);

View file

@ -143,7 +143,9 @@ typedef struct {
} fw;
/* 0x0E8C */ char unk_E8C[0x0010];
/* 0x0E9C */ u8 gsFlags[24];
/* 0x0EB4 */ char unk_EB4[0x0020];
/* 0x0EB4 */ char unk_EB4[0x0010];
/* 0x0EC4 */ s32 unk_EC4;
/* 0x0EC8 */ char unk_EC8[0x000C];
/* 0x0ED4 */ u16 eventChkInf[14]; // "event_chk_inf"
/* 0x0EF0 */ u16 itemGetInf[4]; // "item_get_inf"
/* 0x0EF8 */ u16 infTable[30]; // "inf_table"

3
spec
View file

@ -2917,8 +2917,7 @@ endseg
beginseg
name "ovl_En_Ma3"
include "build/src/overlays/actors/ovl_En_Ma3/z_en_ma3.o"
include "build/data/overlays/actors/z_en_ma3.data.o"
include "build/data/overlays/actors/z_en_ma3.reloc.o"
include "build/src/overlays/actors/ovl_En_Ma3/z_en_ma3_reloc.o"
endseg
beginseg

View file

@ -110,28 +110,28 @@ s16 func_80AA0778(GlobalContext* globalCtx, Actor* this) {
s16 ret = 1;
switch (func_8010BDBC(&globalCtx->msgCtx)) {
case 2:
switch (this->textId - 0x2041) {
case 0:
switch (this->textId) {
case 0x2041:
gSaveContext.infTable[8] |= 0x10;
gSaveContext.eventChkInf[1] |= 1;
ret = 0;
break;
case 2:
case 0x2043:
ret = 1;
break;
case 6:
case 0x2047:
gSaveContext.eventChkInf[1] |= 0x20;
ret = 0;
break;
case 7:
case 0x2048:
gSaveContext.infTable[8] |= 0x20;
ret = 0;
break;
case 8:
case 0x2049:
gSaveContext.eventChkInf[1] |= 0x40;
ret = 0;
break;
case 32:
case 0x2061:
ret = 2;
break;
default:

View file

@ -1,3 +1,9 @@
/*
* File: z_en_ma3.c
* Overlay: En_Ma3
* Description:
*/
#include "z_en_ma3.h"
#define FLAGS 0x00000039
@ -7,7 +13,16 @@ void EnMa3_Destroy(EnMa3* this, GlobalContext* globalCtx);
void EnMa3_Update(EnMa3* this, GlobalContext* globalCtx);
void EnMa3_Draw(EnMa3* this, GlobalContext* globalCtx);
/*
u16 func_80AA2AA0(GlobalContext* globalCtx, Actor* this);
s16 func_80AA2BD4(GlobalContext* globalCtx, Actor* this);
void func_80AA2E54(EnMa3* this, GlobalContext* globalCtx);
s32 func_80AA2EC8(EnMa3* this, GlobalContext* globalCtx);
s32 func_80AA2F28(EnMa3* this);
void func_80AA2F80(EnMa3* this);
void func_80AA3004(EnMa3* this, s32 arg1);
void func_80AA3200(EnMa3* this, GlobalContext* globalCtx);
const ActorInit En_Ma3_InitVars = {
ACTOR_EN_MA3,
ACTORTYPE_NPC,
@ -19,31 +34,359 @@ const ActorInit En_Ma3_InitVars = {
(ActorFunc)EnMa3_Update,
(ActorFunc)EnMa3_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA2AA0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA2BD4.s")
ColliderCylinderInit cylinderInit = {
{ COLTYPE_UNK10, 0x00, 0x00, 0x39, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
{ 18, 46, 0, { 0, 0, 0 } },
};
CollisionCheckInfoInit2 D_80AA383C = { 0x00, 0x0000, 0x0000, 0x0000, 0xFF };
struct_D_80AA1678 D_80AA3848[] = {
{
0x060007D4,
1.0f,
0x00,
0.0f,
},
{
0x060007D4,
1.0f,
0x00,
-10.0f,
},
{
0x060093BC,
1.0f,
0x00,
0.0f,
},
{
0x06009EE0,
1.0f,
0x00,
0.0f,
},
{
0x06009EE0,
1.0f,
0x00,
-10.0f,
},
};
Vec3f D_80AA3898 = { 900.0f, 0.0f, 0.0f };
u32 D_80AA38A4[] = {
0x06002970,
0x06003570,
0x06003770,
};
u32 D_80AA38B0[] = {
0x06002570,
0x06002C70,
0x06003070,
};
extern u32 D_06005420;
extern SkeletonHeader D_06008D90;
extern AnimationHeader D_060093BC;
extern AnimationHeader D_06009EE0;
u16 func_80AA2AA0(GlobalContext* globalCtx, Actor* this) {
Player* player = PLAYER;
s16* timer1ValuePtr; // weirdness with this necessary to match
if (!(gSaveContext.infTable[11] & 0x100)) {
return 0x2000;
}
timer1ValuePtr = &gSaveContext.timer1Value;
if (gSaveContext.eventInf[0] & 0x400) {
gSaveContext.timer1Value = gSaveContext.timer1Value;
this->flags |= 0x10000;
if (gSaveContext.timer1Value >= 0xD3) {
return 0x208E;
}
if ((gSaveContext.unk_EC4 == 0) || (gSaveContext.unk_EC4 >= 0xB4)) {
gSaveContext.unk_EC4 = 0xB4;
gSaveContext.timer1Value = *timer1ValuePtr;
}
if (!(gSaveContext.eventChkInf[1] & 0x4000) && (gSaveContext.timer1Value < 0x32)) {
return 0x208F;
} else if (gSaveContext.timer1Value < gSaveContext.unk_EC4) {
return 0x2012;
} else {
return 0x2004;
}
}
if ((!(player->stateFlags1 & 0x800000)) &&
(Actor_FindNearby(globalCtx, this, ACTOR_EN_HORSE, 1, 1200.0f) == NULL)) {
return 0x2001;
}
if (!(gSaveContext.infTable[11] & 0x200)) {
return 0x2002;
} else {
return 0x2003;
}
}
s16 func_80AA2BD4(GlobalContext* globalCtx, Actor* this) {
s16 ret = 1;
switch (func_8010BDBC(&globalCtx->msgCtx)) {
case 5:
if (func_80106BC8(globalCtx) != 0) {
globalCtx->nextEntranceIndex = 0x157;
gSaveContext.nextCutsceneIndex = 0xFFF0;
globalCtx->fadeTransition = 0x26;
globalCtx->sceneLoadFlag = 0x14;
gSaveContext.eventInf[0] |= 0x400;
gSaveContext.timer1State = 0xF;
}
break;
case 4:
if (func_80106BC8(globalCtx) != 0) {
gSaveContext.infTable[11] |= 0x200;
if (globalCtx->msgCtx.choiceIndex == 0) {
if (gSaveContext.eventChkInf[1] & 0x4000) {
func_8010B720(globalCtx, 0x2091);
} else if (gSaveContext.unk_EC4 == 0) {
func_8010B720(globalCtx, 0x2092);
} else {
func_8010B720(globalCtx, 0x2090);
}
}
}
break;
case 2:
switch (this->textId) {
case 0x2000:
gSaveContext.infTable[11] |= 0x100;
ret = 0;
break;
case 0x208F:
gSaveContext.eventChkInf[1] |= 0x4000;
case 0x2004:
case 0x2012:
if (gSaveContext.unk_EC4 > gSaveContext.timer1Value) {
gSaveContext.unk_EC4 = gSaveContext.timer1Value;
}
case 0x208E:
gSaveContext.eventInf[0] &= ~0x400;
this->flags &= ~0x10000;
ret = 0;
gSaveContext.timer1State = 0xA;
break;
case 0x2002:
gSaveContext.infTable[11] |= 0x200;
case 0x2003:
if (!(gSaveContext.eventInf[0] & 0x400)) {
ret = 0;
}
break;
default:
ret = 0;
}
break;
case 0:
case 1:
case 3:
case 6:
case 7:
case 8:
case 9:
break;
}
return ret;
}
void func_80AA2E54(EnMa3* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s16 phi_a3;
if ((this->unk_1E0.unk_00 == 0) && (this->skelAnime.animCurrentSeg == &D_06009EE0)) {
phi_a3 = 1;
} else {
phi_a3 = 0;
}
this->unk_1E0.unk_18 = player->actor.posRot.pos;
this->unk_1E0.unk_14 = 0.0f;
func_80034A14(&this->actor, &this->unk_1E0, 0, phi_a3);
}
s32 func_80AA2EC8(EnMa3* this, GlobalContext* globalCtx) {
if (gSaveContext.linkAge == 1) {
return 2;
}
if (!(gSaveContext.eventChkInf[1] & 0x100)) {
return 2;
}
if (gSaveContext.eventInf[0] & 0x400) {
return 1;
}
return 0;
}
s32 func_80AA2F28(EnMa3* this) {
if (this->skelAnime.animCurrentSeg != &D_06009EE0) {
return 0;
}
if (this->unk_1E0.unk_00 != 0) {
return 0;
}
this->unk_20C = 0;
if (this->unk_20E != 2) {
return 0;
}
this->unk_210 = 2;
return 1;
}
void func_80AA2F80(EnMa3* this) {
if ((!func_80AA2F28(this)) && (DECR(this->unk_20C) == 0)) {
this->unk_20E += 1;
if (this->unk_20E >= 3) {
this->unk_20C = Math_Rand_S16Offset(0x1E, 0x1E);
this->unk_20E = 0;
}
}
}
void func_80AA3004(EnMa3* this, s32 idx) {
f32 frameCount = SkelAnime_GetFrameCount(&D_80AA3848[idx].animation->genericHeader);
SkelAnime_ChangeAnim(&this->skelAnime, D_80AA3848[idx].animation, 1.0f, 0.0f, frameCount, D_80AA3848[idx].unk_08,
D_80AA3848[idx].transitionRate);
}
void EnMa3_Init(EnMa3* this, GlobalContext* globalCtx) {
ColliderCylinder* collider;
s32 pad;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 18.0f);
SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_06008D90, NULL, 0, 0, 0);
collider = &this->collider;
Collider_InitCylinder(globalCtx, collider);
Collider_SetCylinder(globalCtx, collider, &this->actor, &cylinderInit);
func_80061EFC(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80AA383C);
switch (func_80AA2EC8(this, globalCtx)) {
case 0:
func_80AA3004(this, 0);
this->actionFunc = (ActorFunc)func_80AA3200;
break;
case 1:
func_80AA3004(this, 0);
this->actionFunc = (ActorFunc)func_80AA3200;
break;
case 2:
Actor_Kill(&this->actor);
return;
}
func_8002E4B4(globalCtx, &this->actor, 0.0f, 0.0f, 0.0f, 4);
Actor_SetScale(&this->actor, 0.01f);
this->unk_1E0.unk_00 = (u16)0;
}
void EnMa3_Destroy(EnMa3* this, GlobalContext* globalCtx) {
SkelAnime_Free(&this->skelAnime, globalCtx);
Collider_DestroyCylinder(globalCtx, &this->collider);
}
void func_80AA3200(EnMa3* this, GlobalContext* globalCtx) {
if (this->unk_1E0.unk_00 == 2) {
this->actor.flags &= ~0x10000;
this->unk_1E0.unk_00 = 0;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA2E54.s")
void EnMa3_Update(EnMa3* this, GlobalContext* globalCtx) {
s32 pad;
ColliderCylinder* collider = &this->collider;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA2EC8.s")
Collider_CylinderUpdate(&this->actor, collider);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &collider->base);
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
func_80AA2F80(this);
this->actionFunc(this, globalCtx);
func_80AA2E54(this, globalCtx);
func_800343CC(globalCtx, &this->actor, &this->unk_1E0.unk_00, (f32)this->collider.dim.radius + 150.0f,
&func_80AA2AA0, &func_80AA2BD4);
if (this->unk_1E0.unk_00 == 0) {
if (this->unk_20A != 0) {
func_800F6584(0);
this->unk_20A = 0;
}
} else if (this->unk_20A == 0) {
func_800F6584(1);
this->unk_20A = 1;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA2F28.s")
s32 EnMa3_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
EnMa3* this = (EnMa3*)thisx;
Vec3s tempVec;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA2F80.s")
if ((limbIndex == 3) || (limbIndex == 6)) {
*dList = NULL;
}
if (limbIndex == 18) {
Matrix_Translate(1400.0f, 0.0f, 0.0f, MTXMODE_APPLY);
tempVec = this->unk_1E0.unk_08;
Matrix_RotateX((tempVec.y / 32768.0f) * M_PI, MTXMODE_APPLY);
Matrix_RotateZ((tempVec.x / 32768.0f) * M_PI, MTXMODE_APPLY);
Matrix_Translate(-1400.0f, 0.0f, 0.0f, MTXMODE_APPLY);
}
if (limbIndex == 11) {
tempVec = this->unk_1E0.unk_0E;
Matrix_RotateY((-tempVec.y / 32768.0f) * M_PI, MTXMODE_APPLY);
Matrix_RotateX((-tempVec.x / 32768.0f) * M_PI, MTXMODE_APPLY);
}
if ((limbIndex == 11) || (limbIndex == 12) || (limbIndex == 15)) {
rot->y += Math_Sins(this->unk_212[limbIndex].y) * 200.0f;
rot->z += Math_Coss(this->unk_212[limbIndex].z) * 200.0f;
}
return 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA3004.s")
void EnMa3_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnMa3* this = (EnMa3*)thisx;
Vec3f vec = D_80AA3898;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[4];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/EnMa3_Init.s")
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ma3.c", 927);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/EnMa3_Destroy.s")
if (limbIndex == 18) {
Matrix_MultVec3f(&vec, &thisx->posRot2.pos);
}
if ((limbIndex == 14) && (this->skelAnime.animCurrentSeg == &D_060093BC)) {
gSPDisplayList(gfxCtx->polyOpa.p++, &D_06005420);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA3200.s")
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ma3.c", 950);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/EnMa3_Update.s")
void EnMa3_Draw(EnMa3* this, GlobalContext* globalCtx) {
Camera* camera;
f32 someFloat;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[6];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA3344.s")
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ma3.c", 978);
camera = globalCtx->cameraPtrs[globalCtx->activeCamera];
someFloat = Math_Vec3f_DistXZ(&this->actor.posRot.pos, &camera->eye);
func_800F6268(someFloat, 0x2F);
func_80093D18(globalCtx->state.gfxCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/func_80AA3580.s")
gSPSegment(gfxCtx->polyOpa.p++, 0x09, SEGMENTED_TO_VIRTUAL(D_80AA38A4[this->unk_210]));
gSPSegment(gfxCtx->polyOpa.p++, 0x08, SEGMENTED_TO_VIRTUAL(D_80AA38B0[this->unk_20E]));
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma3/EnMa3_Draw.s")
SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount,
EnMa3_OverrideLimbDraw, EnMa3_PostLimbDraw, &this->actor);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ma3.c", 1013);
}

View file

@ -6,7 +6,16 @@
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x138];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ ActorFunc actionFunc;
/* 0x0194 */ ColliderCylinder collider;
/* 0x01E0 */ struct_80034A14_arg1 unk_1E0;
/* 0x0208 */ s16 unk_208;
/* 0x020A */ s16 unk_20A;
/* 0x020C */ s16 unk_20C;
/* 0x020E */ s16 unk_20E;
/* 0x0210 */ s16 unk_210;
/* 0x0212 */ Vec3s unk_212[0x13];
} EnMa3; // size = 0x0284
extern const ActorInit En_Ma3_InitVars;

View file

@ -3,9 +3,6 @@
import os
import sys
import subprocess
import re
import shlex
from disassemble import get_z_name
script_dir = os.path.dirname(os.path.realpath(__file__))
root_dir = script_dir + "/../"
@ -13,77 +10,10 @@ build_dir = root_dir + "build/"
src_dir = root_dir + "src/"
def find_build_command_line(c_file):
rel_c_file = os.path.relpath(c_file, root_dir)
make_cmd = ["make", "--always-make", "--dry-run", "--debug=j", "PERMUTER=1"]
debug_output = (
subprocess.check_output(make_cmd, cwd=root_dir).decode("utf-8").split("\n")
)
output = []
for line in debug_output:
while "//" in line:
line = line.replace("//", "/")
while "/./" in line:
line = line.replace("/./", "/")
if rel_c_file not in line:
continue
parts = shlex.split(line)
if rel_c_file not in parts:
continue
if "-o" not in parts:
continue
if "-fsyntax-only" in parts:
continue
output.append(line)
if len(output) > 1:
output_lines = "\n".join(output)
print(
f"Error: found multiple compile commands for {rel_c_file}:\n{output_lines}\n"
"Please modify the makefile such that if PERMUTER = 1, "
"only a single compile command is included.",
file=sys.stderr,
)
sys.exit(1)
return output[0]
def import_c_file(compiler, in_file):
def import_c_file(in_file):
in_file = os.path.relpath(in_file, root_dir)
include_next = 0
cpp_command = ["cpp", "-P"]
compiler_split = compiler.split(" ")
for arg in compiler_split:
if include_next > 0:
include_next -= 1
cpp_command.append(arg)
continue
if arg in ["-D", "-U", "-I"]:
cpp_command.append(arg)
include_next = 1
continue
if (
arg.startswith("-D")
or arg.startswith("-U")
or arg.startswith("-I")
or arg in ["-nostdinc"]
):
cpp_command.append(arg)
cpp_command.extend(
[
"-undef",
"-D__sgi",
"-D_LANGUAGE_C",
"-DNON_MATCHING",
"-D_Static_assert(x, y)=",
"-D__attribute__(x)=",
]
)
cpp_command.append(in_file)
cpp_command = ["cpp", "-P", "-Iinclude", "-Isrc", "-undef", "-D__sgi", "-D_LANGUAGE_C",
"-DNON_MATCHING", "-D_Static_assert(x, y)=", "-D__attribute__(x)=", in_file]
try:
return subprocess.check_output(cpp_command, cwd=root_dir, encoding="utf-8")
except subprocess.CalledProcessError:
@ -91,39 +21,35 @@ def import_c_file(compiler, in_file):
"Failed to preprocess input file, when running command:\n"
+ cpp_command,
file=sys.stderr,
)
)
sys.exit(1)
def get_c_dir(dirname):
for root, dirs, files in os.walk(src_dir):
for dir in dirs:
if dir == dirname:
return os.path.join(root, dir)
for directory in dirs:
if directory == dirname:
return os.path.join(root, directory)
def get_c_file(dir):
for root, dirs, files in os.walk(dir):
def get_c_file(directory):
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith(".c") and "data" not in file:
return file
def main():
target_script = sys.argv[1]
this_dir = os.getcwd().split("/")[-1]
c_dir_path = get_c_dir(this_dir)
c_file = get_c_file(c_dir_path)
c_file_path = os.path.join(c_dir_path, c_file)
compiler = find_build_command_line(c_file_path)
output = import_c_file(compiler, c_file_path)
output = import_c_file(c_file_path)
with open(os.path.join(build_dir, "ctx.c"), "w") as f:
f.write(output)
if __name__ == "__main__":
main()