1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-04-06 14:46:21 +00:00

En_Heishi1 and Eff_Ss_Solder_Srch_Ball OK (#234)

* progress

* init ok and merge master

* enheishi1 and srchball OK

* cleanup

* cleanup

* cleanup

* more cleanup

* done

* more comments

* add file headers

* some review comments

* move vectors

* more review comments

* angle in decimal

* add prototype

* semicolon would be good

* fix

* make unset actor ids 0

* reword comment

* no &
This commit is contained in:
fig02 2020-07-09 15:12:03 -04:00 committed by GitHub
parent b4a7ac9d71
commit 8b6e86649d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
54 changed files with 636 additions and 1880 deletions

View file

@ -1,28 +0,0 @@
glabel func_80029E24
/* AA0FC4 80029E24 27BDFFB8 */ addiu $sp, $sp, -0x48
/* AA0FC8 80029E28 AFBF0014 */ sw $ra, 0x14($sp)
/* AA0FCC 80029E2C AFA40048 */ sw $a0, 0x48($sp)
/* AA0FD0 80029E30 AFA60050 */ sw $a2, 0x50($sp)
/* AA0FD4 80029E34 AFA70054 */ sw $a3, 0x54($sp)
/* AA0FD8 80029E38 0C01DF90 */ jal Math_Vec3f_Copy
/* AA0FDC 80029E3C 27A4001C */ addiu $a0, $sp, 0x1c
/* AA0FE0 80029E40 27A40028 */ addiu $a0, $sp, 0x28
/* AA0FE4 80029E44 0C01DF90 */ jal Math_Vec3f_Copy
/* AA0FE8 80029E48 8FA50050 */ lw $a1, 0x50($sp)
/* AA0FEC 80029E4C 27A40034 */ addiu $a0, $sp, 0x34
/* AA0FF0 80029E50 0C01DF90 */ jal Math_Vec3f_Copy
/* AA0FF4 80029E54 8FA50054 */ lw $a1, 0x54($sp)
/* AA0FF8 80029E58 87AE005A */ lh $t6, 0x5a($sp)
/* AA0FFC 80029E5C 8FAF005C */ lw $t7, 0x5c($sp)
/* AA1000 80029E60 8FA40048 */ lw $a0, 0x48($sp)
/* AA1004 80029E64 24050018 */ li $a1, 24
/* AA1008 80029E68 24060080 */ li $a2, 128
/* AA100C 80029E6C 27A7001C */ addiu $a3, $sp, 0x1c
/* AA1010 80029E70 A7AE0040 */ sh $t6, 0x40($sp)
/* AA1014 80029E74 0C009DE6 */ jal EffectSs_Spawn
/* AA1018 80029E78 AFAF0044 */ sw $t7, 0x44($sp)
/* AA101C 80029E7C 8FBF0014 */ lw $ra, 0x14($sp)
/* AA1020 80029E80 27BD0048 */ addiu $sp, $sp, 0x48
/* AA1024 80029E84 03E00008 */ jr $ra
/* AA1028 80029E88 00000000 */ nop

View file

@ -1,4 +0,0 @@
glabel EnHeishi1_Destroy
/* 00350 80A51620 AFA40000 */ sw $a0, 0x0000($sp)
/* 00354 80A51624 03E00008 */ jr $ra
/* 00358 80A51628 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,78 +0,0 @@
glabel EnHeishi1_Draw
/* 013AC 80A5267C 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 013B0 80A52680 3C0F80A5 */ lui $t7, %hi(D_80A52918) ## $t7 = 80A50000
/* 013B4 80A52684 AFBF004C */ sw $ra, 0x004C($sp)
/* 013B8 80A52688 AFB00048 */ sw $s0, 0x0048($sp)
/* 013BC 80A5268C AFA5006C */ sw $a1, 0x006C($sp)
/* 013C0 80A52690 25EF2918 */ addiu $t7, $t7, %lo(D_80A52918) ## $t7 = 80A52918
/* 013C4 80A52694 8DF90000 */ lw $t9, 0x0000($t7) ## 80A52918
/* 013C8 80A52698 27AE0054 */ addiu $t6, $sp, 0x0054 ## $t6 = FFFFFFEC
/* 013CC 80A5269C 8DF80004 */ lw $t8, 0x0004($t7) ## 80A5291C
/* 013D0 80A526A0 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFEC
/* 013D4 80A526A4 8DF90008 */ lw $t9, 0x0008($t7) ## 80A52920
/* 013D8 80A526A8 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF0
/* 013DC 80A526AC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 013E0 80A526B0 ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFF4
/* 013E4 80A526B4 8FA8006C */ lw $t0, 0x006C($sp)
/* 013E8 80A526B8 0C024F46 */ jal func_80093D18
/* 013EC 80A526BC 8D040000 */ lw $a0, 0x0000($t0) ## 00000000
/* 013F0 80A526C0 8E050150 */ lw $a1, 0x0150($s0) ## 00000150
/* 013F4 80A526C4 8E06016C */ lw $a2, 0x016C($s0) ## 0000016C
/* 013F8 80A526C8 3C0780A5 */ lui $a3, %hi(func_80A5263C) ## $a3 = 80A50000
/* 013FC 80A526CC 24E7263C */ addiu $a3, $a3, %lo(func_80A5263C) ## $a3 = 80A5263C
/* 01400 80A526D0 AFB00014 */ sw $s0, 0x0014($sp)
/* 01404 80A526D4 AFA00010 */ sw $zero, 0x0010($sp)
/* 01408 80A526D8 0C028572 */ jal SkelAnime_Draw
/* 0140C 80A526DC 8FA4006C */ lw $a0, 0x006C($sp)
/* 01410 80A526E0 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 01414 80A526E4 27A50054 */ addiu $a1, $sp, 0x0054 ## $a1 = FFFFFFEC
/* 01418 80A526E8 240600FF */ addiu $a2, $zero, 0x00FF ## $a2 = 000000FF
/* 0141C 80A526EC 0C00CF0C */ jal func_80033C30
/* 01420 80A526F0 8FA7006C */ lw $a3, 0x006C($sp)
/* 01424 80A526F4 3C028016 */ lui $v0, %hi(gGameInfo)
/* 01428 80A526F8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 0142C 80A526FC 8609026C */ lh $t1, 0x026C($s0) ## 0000026C
/* 01430 80A52700 844A12D6 */ lh $t2, 0x12D6($v0) ## 801612D6
/* 01434 80A52704 552A0020 */ bnel $t1, $t2, .L80A52788
/* 01438 80A52708 8FBF004C */ lw $ra, 0x004C($sp)
/* 0143C 80A5270C 844B12D4 */ lh $t3, 0x12D4($v0) ## 801612D4
/* 01440 80A52710 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 01444 80A52714 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF
/* 01448 80A52718 1160001A */ beq $t3, $zero, .L80A52784
/* 0144C 80A5271C 240F00FF */ addiu $t7, $zero, 0x00FF ## $t7 = 000000FF
/* 01450 80A52720 860C0032 */ lh $t4, 0x0032($s0) ## 00000032
/* 01454 80A52724 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 01458 80A52728 C60C0024 */ lwc1 $f12, 0x0024($s0) ## 00000024
/* 0145C 80A5272C 8E06002C */ lw $a2, 0x002C($s0) ## 0000002C
/* 01460 80A52730 AFAC0010 */ sw $t4, 0x0010($sp)
/* 01464 80A52734 860D0034 */ lh $t5, 0x0034($s0) ## 00000034
/* 01468 80A52738 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
/* 0146C 80A5273C 8FB9006C */ lw $t9, 0x006C($sp)
/* 01470 80A52740 24180004 */ addiu $t8, $zero, 0x0004 ## $t8 = 00000004
/* 01474 80A52744 AFB80034 */ sw $t8, 0x0034($sp)
/* 01478 80A52748 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 0147C 80A5274C AFAF0030 */ sw $t7, 0x0030($sp)
/* 01480 80A52750 AFA0002C */ sw $zero, 0x002C($sp)
/* 01484 80A52754 AFA00028 */ sw $zero, 0x0028($sp)
/* 01488 80A52758 AFAE0024 */ sw $t6, 0x0024($sp)
/* 0148C 80A5275C AFAD0014 */ sw $t5, 0x0014($sp)
/* 01490 80A52760 E7A00018 */ swc1 $f0, 0x0018($sp)
/* 01494 80A52764 E7A0001C */ swc1 $f0, 0x001C($sp)
/* 01498 80A52768 E7A00020 */ swc1 $f0, 0x0020($sp)
/* 0149C 80A5276C 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00
/* 014A0 80A52770 8F280000 */ lw $t0, 0x0000($t9) ## 00000000
/* 014A4 80A52774 24074268 */ addiu $a3, $zero, 0x4268 ## $a3 = 00004268
/* 014A8 80A52778 46062380 */ add.s $f14, $f4, $f6
/* 014AC 80A5277C 0C018FA7 */ jal DebugDisplay_AddObject
/* 014B0 80A52780 AFA80038 */ sw $t0, 0x0038($sp)
.L80A52784:
/* 014B4 80A52784 8FBF004C */ lw $ra, 0x004C($sp)
.L80A52788:
/* 014B8 80A52788 8FB00048 */ lw $s0, 0x0048($sp)
/* 014BC 80A5278C 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000
/* 014C0 80A52790 03E00008 */ jr $ra
/* 014C4 80A52794 00000000 */ nop
/* 014C8 80A52798 00000000 */ nop
/* 014CC 80A5279C 00000000 */ nop

View file

@ -1,295 +0,0 @@
.rdata
glabel D_80A52930
.asciz " %d\n"
.balign 4
glabel D_80A5295C
.asciz " %d\n"
.balign 4
glabel D_80A52988
.asciz " anime_frame_speed %f\n"
.balign 4
glabel D_80A529B4
.asciz " %f\n"
.balign 4
glabel D_80A529E0
.asciz " point %f\n"
.balign 4
glabel D_80A52A0C
.asciz " point %f\n"
.balign 4
glabel D_80A52A38
.asciz " () %f\n"
.balign 4
glabel D_80A52A64
.asciz " () %f\n"
.balign 4
glabel D_80A52A90
.asciz " () %f\n"
.balign 4
glabel D_80A52ABC
.asciz " () %f\n"
.balign 4
glabel D_80A52AE8
.asciz " %d\n"
.balign 4
glabel D_80A52AFC
.asciz " %d\n"
.balign 4
glabel D_80A52B18
.asciz "\n\n"
.balign 4
.text
glabel EnHeishi1_Init
/* 00000 80A512D0 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
/* 00004 80A512D4 AFB20040 */ sw $s2, 0x0040($sp)
/* 00008 80A512D8 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 0000C 80A512DC AFBF0044 */ sw $ra, 0x0044($sp)
/* 00010 80A512E0 AFB1003C */ sw $s1, 0x003C($sp)
/* 00014 80A512E4 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 00018 80A512E8 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 0001C 80A512EC AFB00038 */ sw $s0, 0x0038($sp)
/* 00020 80A512F0 0C00B58B */ jal Actor_SetScale
/* 00024 80A512F4 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 00028 80A512F8 3C060601 */ lui $a2, 0x0601 ## $a2 = 06010000
/* 0002C 80A512FC 3C070600 */ lui $a3, 0x0600 ## $a3 = 06000000
/* 00030 80A51300 262E0190 */ addiu $t6, $s1, 0x0190 ## $t6 = 00000190
/* 00034 80A51304 262F01F6 */ addiu $t7, $s1, 0x01F6 ## $t7 = 000001F6
/* 00038 80A51308 24180011 */ addiu $t8, $zero, 0x0011 ## $t8 = 00000011
/* 0003C 80A5130C AFB80018 */ sw $t8, 0x0018($sp)
/* 00040 80A51310 AFAF0014 */ sw $t7, 0x0014($sp)
/* 00044 80A51314 AFAE0010 */ sw $t6, 0x0010($sp)
/* 00048 80A51318 24E75C30 */ addiu $a3, $a3, 0x5C30 ## $a3 = 06005C30
/* 0004C 80A5131C 24C6BAC8 */ addiu $a2, $a2, 0xBAC8 ## $a2 = 0600BAC8
/* 00050 80A51320 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 00054 80A51324 0C02915F */ jal SkelAnime_Init
/* 00058 80A51328 2625014C */ addiu $a1, $s1, 0x014C ## $a1 = 0000014C
/* 0005C 80A5132C 8624001C */ lh $a0, 0x001C($s1) ## 0000001C
/* 00060 80A51330 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00064 80A51334 02201825 */ or $v1, $s1, $zero ## $v1 = 00000000
/* 00068 80A51338 0004CA03 */ sra $t9, $a0, 8
/* 0006C 80A5133C 308900FF */ andi $t1, $a0, 0x00FF ## $t1 = 00000000
/* 00070 80A51340 332800FF */ andi $t0, $t9, 0x00FF ## $t0 = 00000000
/* 00074 80A51344 3C0480A5 */ lui $a0, %hi(D_80A527C4) ## $a0 = 80A50000
/* 00078 80A51348 A628026A */ sh $t0, 0x026A($s1) ## 0000026A
/* 0007C 80A5134C A629026C */ sh $t1, 0x026C($s1) ## 0000026C
/* 00080 80A51350 248427C4 */ addiu $a0, $a0, %lo(D_80A527C4) ## $a0 = 80A527C4
.L80A51354:
/* 00084 80A51354 862A026A */ lh $t2, 0x026A($s1) ## 0000026A
/* 00088 80A51358 24630004 */ addiu $v1, $v1, 0x0004 ## $v1 = 00000004
/* 0008C 80A5135C 000A5940 */ sll $t3, $t2, 5
/* 00090 80A51360 008B6021 */ addu $t4, $a0, $t3
/* 00094 80A51364 01826821 */ addu $t5, $t4, $v0
/* 00098 80A51368 C5A40000 */ lwc1 $f4, 0x0000($t5) ## 00000000
/* 0009C 80A5136C 24420004 */ addiu $v0, $v0, 0x0004 ## $v0 = 00000004
/* 000A0 80A51370 28410020 */ slti $at, $v0, 0x0020
/* 000A4 80A51374 1420FFF7 */ bne $at, $zero, .L80A51354
/* 000A8 80A51378 E4640280 */ swc1 $f4, 0x0280($v1) ## 00000284
/* 000AC 80A5137C 3C0480A5 */ lui $a0, %hi(D_80A52930) ## $a0 = 80A50000
/* 000B0 80A51380 24842930 */ addiu $a0, $a0, %lo(D_80A52930) ## $a0 = 80A52930
/* 000B4 80A51384 0C00084C */ jal osSyncPrintf
/* 000B8 80A51388 8625026A */ lh $a1, 0x026A($s1) ## 0000026A
/* 000BC 80A5138C 3C0480A5 */ lui $a0, %hi(D_80A5295C) ## $a0 = 80A50000
/* 000C0 80A51390 2484295C */ addiu $a0, $a0, %lo(D_80A5295C) ## $a0 = 80A5295C
/* 000C4 80A51394 0C00084C */ jal osSyncPrintf
/* 000C8 80A51398 8625026C */ lh $a1, 0x026C($s1) ## 0000026C
/* 000CC 80A5139C C6260284 */ lwc1 $f6, 0x0284($s1) ## 00000284
/* 000D0 80A513A0 3C0480A5 */ lui $a0, %hi(D_80A52988) ## $a0 = 80A50000
/* 000D4 80A513A4 24842988 */ addiu $a0, $a0, %lo(D_80A52988) ## $a0 = 80A52988
/* 000D8 80A513A8 46003221 */ cvt.d.s $f8, $f6
/* 000DC 80A513AC 44074000 */ mfc1 $a3, $f8
/* 000E0 80A513B0 44064800 */ mfc1 $a2, $f9
/* 000E4 80A513B4 0C00084C */ jal osSyncPrintf
/* 000E8 80A513B8 00000000 */ nop
/* 000EC 80A513BC C62A0288 */ lwc1 $f10, 0x0288($s1) ## 00000288
/* 000F0 80A513C0 3C0480A5 */ lui $a0, %hi(D_80A529B4) ## $a0 = 80A50000
/* 000F4 80A513C4 248429B4 */ addiu $a0, $a0, %lo(D_80A529B4) ## $a0 = 80A529B4
/* 000F8 80A513C8 46005421 */ cvt.d.s $f16, $f10
/* 000FC 80A513CC 44078000 */ mfc1 $a3, $f16
/* 00100 80A513D0 44068800 */ mfc1 $a2, $f17
/* 00104 80A513D4 0C00084C */ jal osSyncPrintf
/* 00108 80A513D8 00000000 */ nop
/* 0010C 80A513DC C632028C */ lwc1 $f18, 0x028C($s1) ## 0000028C
/* 00110 80A513E0 3C0480A5 */ lui $a0, %hi(D_80A529E0) ## $a0 = 80A50000
/* 00114 80A513E4 248429E0 */ addiu $a0, $a0, %lo(D_80A529E0) ## $a0 = 80A529E0
/* 00118 80A513E8 46009121 */ cvt.d.s $f4, $f18
/* 0011C 80A513EC 44072000 */ mfc1 $a3, $f4
/* 00120 80A513F0 44062800 */ mfc1 $a2, $f5
/* 00124 80A513F4 0C00084C */ jal osSyncPrintf
/* 00128 80A513F8 00000000 */ nop
/* 0012C 80A513FC C6260290 */ lwc1 $f6, 0x0290($s1) ## 00000290
/* 00130 80A51400 3C0480A5 */ lui $a0, %hi(D_80A52A0C) ## $a0 = 80A50000
/* 00134 80A51404 24842A0C */ addiu $a0, $a0, %lo(D_80A52A0C) ## $a0 = 80A52A0C
/* 00138 80A51408 46003221 */ cvt.d.s $f8, $f6
/* 0013C 80A5140C 44074000 */ mfc1 $a3, $f8
/* 00140 80A51410 44064800 */ mfc1 $a2, $f9
/* 00144 80A51414 0C00084C */ jal osSyncPrintf
/* 00148 80A51418 00000000 */ nop
/* 0014C 80A5141C C62A0294 */ lwc1 $f10, 0x0294($s1) ## 00000294
/* 00150 80A51420 3C0480A5 */ lui $a0, %hi(D_80A52A38) ## $a0 = 80A50000
/* 00154 80A51424 24842A38 */ addiu $a0, $a0, %lo(D_80A52A38) ## $a0 = 80A52A38
/* 00158 80A51428 46005421 */ cvt.d.s $f16, $f10
/* 0015C 80A5142C 44078000 */ mfc1 $a3, $f16
/* 00160 80A51430 44068800 */ mfc1 $a2, $f17
/* 00164 80A51434 0C00084C */ jal osSyncPrintf
/* 00168 80A51438 00000000 */ nop
/* 0016C 80A5143C C6320298 */ lwc1 $f18, 0x0298($s1) ## 00000298
/* 00170 80A51440 3C0480A5 */ lui $a0, %hi(D_80A52A64) ## $a0 = 80A50000
/* 00174 80A51444 24842A64 */ addiu $a0, $a0, %lo(D_80A52A64) ## $a0 = 80A52A64
/* 00178 80A51448 46009121 */ cvt.d.s $f4, $f18
/* 0017C 80A5144C 44072000 */ mfc1 $a3, $f4
/* 00180 80A51450 44062800 */ mfc1 $a2, $f5
/* 00184 80A51454 0C00084C */ jal osSyncPrintf
/* 00188 80A51458 00000000 */ nop
/* 0018C 80A5145C C626029C */ lwc1 $f6, 0x029C($s1) ## 0000029C
/* 00190 80A51460 3C0480A5 */ lui $a0, %hi(D_80A52A90) ## $a0 = 80A50000
/* 00194 80A51464 24842A90 */ addiu $a0, $a0, %lo(D_80A52A90) ## $a0 = 80A52A90
/* 00198 80A51468 46003221 */ cvt.d.s $f8, $f6
/* 0019C 80A5146C 44074000 */ mfc1 $a3, $f8
/* 001A0 80A51470 44064800 */ mfc1 $a2, $f9
/* 001A4 80A51474 0C00084C */ jal osSyncPrintf
/* 001A8 80A51478 00000000 */ nop
/* 001AC 80A5147C C62A02A0 */ lwc1 $f10, 0x02A0($s1) ## 000002A0
/* 001B0 80A51480 3C0480A5 */ lui $a0, %hi(D_80A52ABC) ## $a0 = 80A50000
/* 001B4 80A51484 24842ABC */ addiu $a0, $a0, %lo(D_80A52ABC) ## $a0 = 80A52ABC
/* 001B8 80A51488 46005421 */ cvt.d.s $f16, $f10
/* 001BC 80A5148C 44078000 */ mfc1 $a3, $f16
/* 001C0 80A51490 44068800 */ mfc1 $a2, $f17
/* 001C4 80A51494 0C00084C */ jal osSyncPrintf
/* 001C8 80A51498 00000000 */ nop
/* 001CC 80A5149C 3C028016 */ lui $v0, %hi(gSaveContext+0xc)
/* 001D0 80A514A0 3C0480A5 */ lui $a0, %hi(D_80A52AE8) ## $a0 = 80A50000
/* 001D4 80A514A4 24842AE8 */ addiu $a0, $a0, %lo(D_80A52AE8) ## $a0 = 80A52AE8
/* 001D8 80A514A8 0C00084C */ jal osSyncPrintf
/* 001DC 80A514AC 9445E66C */ lhu $a1, %lo(gSaveContext+0xc)($v0)
/* 001E0 80A514B0 3C0480A5 */ lui $a0, %hi(D_80A52AFC) ## $a0 = 80A50000
/* 001E4 80A514B4 24842AFC */ addiu $a0, $a0, %lo(D_80A52AFC) ## $a0 = 80A52AFC
/* 001E8 80A514B8 0C00084C */ jal osSyncPrintf
/* 001EC 80A514BC 3405BAAA */ ori $a1, $zero, 0xBAAA ## $a1 = 0000BAAA
/* 001F0 80A514C0 3C0480A5 */ lui $a0, %hi(D_80A52B18) ## $a0 = 80A50000
/* 001F4 80A514C4 0C00084C */ jal osSyncPrintf
/* 001F8 80A514C8 24842B18 */ addiu $a0, $a0, %lo(D_80A52B18) ## $a0 = 80A52B18
/* 001FC 80A514CC 862E026C */ lh $t6, 0x026C($s1) ## 0000026C
/* 00200 80A514D0 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00204 80A514D4 3C1080A5 */ lui $s0, %hi(D_80A52850) ## $s0 = 80A50000
/* 00208 80A514D8 15C1001F */ bne $t6, $at, .L80A51558
/* 0020C 80A514DC 26102850 */ addiu $s0, $s0, %lo(D_80A52850) ## $s0 = 80A52850
/* 00210 80A514E0 26441C24 */ addiu $a0, $s2, 0x1C24 ## $a0 = 00001C24
/* 00214 80A514E4 AFA4004C */ sw $a0, 0x004C($sp)
/* 00218 80A514E8 8E190000 */ lw $t9, 0x0000($s0) ## 80A52850
.L80A514EC:
/* 0021C 80A514EC 8FA4004C */ lw $a0, 0x004C($sp)
/* 00220 80A514F0 27AF005C */ addiu $t7, $sp, 0x005C ## $t7 = FFFFFFEC
/* 00224 80A514F4 ADF90000 */ sw $t9, 0x0000($t7) ## FFFFFFEC
/* 00228 80A514F8 8E180004 */ lw $t8, 0x0004($s0) ## 80A52854
/* 0022C 80A514FC 24080003 */ addiu $t0, $zero, 0x0003 ## $t0 = 00000003
/* 00230 80A51500 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00234 80A51504 ADF80004 */ sw $t8, 0x0004($t7) ## FFFFFFF0
/* 00238 80A51508 8E190008 */ lw $t9, 0x0008($s0) ## 80A52858
/* 0023C 80A5150C 02403025 */ or $a2, $s2, $zero ## $a2 = 00000000
/* 00240 80A51510 24070131 */ addiu $a3, $zero, 0x0131 ## $a3 = 00000131
/* 00244 80A51514 ADF90008 */ sw $t9, 0x0008($t7) ## FFFFFFF4
/* 00248 80A51518 C7A60064 */ lwc1 $f6, 0x0064($sp)
/* 0024C 80A5151C C7A40060 */ lwc1 $f4, 0x0060($sp)
/* 00250 80A51520 C7B2005C */ lwc1 $f18, 0x005C($sp)
/* 00254 80A51524 AFA80028 */ sw $t0, 0x0028($sp)
/* 00258 80A51528 AFA00024 */ sw $zero, 0x0024($sp)
/* 0025C 80A5152C AFA00020 */ sw $zero, 0x0020($sp)
/* 00260 80A51530 AFA0001C */ sw $zero, 0x001C($sp)
/* 00264 80A51534 E7A60018 */ swc1 $f6, 0x0018($sp)
/* 00268 80A51538 E7A40014 */ swc1 $f4, 0x0014($sp)
/* 0026C 80A5153C 0C00C916 */ jal Actor_SpawnAttached
/* 00270 80A51540 E7B20010 */ swc1 $f18, 0x0010($sp)
/* 00274 80A51544 3C0980A5 */ lui $t1, %hi(D_80A528B0) ## $t1 = 80A50000
/* 00278 80A51548 252928B0 */ addiu $t1, $t1, %lo(D_80A528B0) ## $t1 = 80A528B0
/* 0027C 80A5154C 2610000C */ addiu $s0, $s0, 0x000C ## $s0 = 80A5285C
/* 00280 80A51550 5609FFE6 */ bnel $s0, $t1, .L80A514EC
/* 00284 80A51554 8E190000 */ lw $t9, 0x0000($s0) ## 80A5285C
.L80A51558:
/* 00288 80A51558 862A026A */ lh $t2, 0x026A($s1) ## 0000026A
/* 0028C 80A5155C 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00290 80A51560 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00294 80A51564 11410017 */ beq $t2, $at, .L80A515C4
/* 00298 80A51568 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 0029C 80A5156C 3C028016 */ lui $v0, %hi(gSaveContext)
/* 002A0 80A51570 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 002A4 80A51574 944B000C */ lhu $t3, 0x000C($v0) ## 8015E66C
/* 002A8 80A51578 3401B888 */ ori $at, $zero, 0xB888 ## $at = 0000B888
/* 002AC 80A5157C 0161082A */ slt $at, $t3, $at
/* 002B0 80A51580 54200005 */ bnel $at, $zero, .L80A51598
/* 002B4 80A51584 944D0EE4 */ lhu $t5, 0x0EE4($v0) ## 8015F544
/* 002B8 80A51588 8C4C0010 */ lw $t4, 0x0010($v0) ## 8015E670
/* 002BC 80A5158C 15800009 */ bne $t4, $zero, .L80A515B4
/* 002C0 80A51590 00000000 */ nop
/* 002C4 80A51594 944D0EE4 */ lhu $t5, 0x0EE4($v0) ## 8015F544
.L80A51598:
/* 002C8 80A51598 3C0F80A5 */ lui $t7, %hi(func_80A5162C) ## $t7 = 80A50000
/* 002CC 80A5159C 25EF162C */ addiu $t7, $t7, %lo(func_80A5162C) ## $t7 = 80A5162C
/* 002D0 80A515A0 31AE0001 */ andi $t6, $t5, 0x0001 ## $t6 = 00000000
/* 002D4 80A515A4 15C00003 */ bne $t6, $zero, .L80A515B4
/* 002D8 80A515A8 00000000 */ nop
/* 002DC 80A515AC 10000016 */ beq $zero, $zero, .L80A51608
/* 002E0 80A515B0 AE2F025C */ sw $t7, 0x025C($s1) ## 0000025C
.L80A515B4:
/* 002E4 80A515B4 0C00B55C */ jal Actor_Kill
/* 002E8 80A515B8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 002EC 80A515BC 10000013 */ beq $zero, $zero, .L80A5160C
/* 002F0 80A515C0 8FBF0044 */ lw $ra, 0x0044($sp)
.L80A515C4:
/* 002F4 80A515C4 9458000C */ lhu $t8, 0x000C($v0) ## 0000000C
/* 002F8 80A515C8 3401B889 */ ori $at, $zero, 0xB889 ## $at = 0000B889
/* 002FC 80A515CC 3C0A80A5 */ lui $t2, %hi(func_80A521FC) ## $t2 = 80A50000
/* 00300 80A515D0 0301082A */ slt $at, $t8, $at
/* 00304 80A515D4 10200008 */ beq $at, $zero, .L80A515F8
/* 00308 80A515D8 254A21FC */ addiu $t2, $t2, %lo(func_80A521FC) ## $t2 = 80A521FC
/* 0030C 80A515DC 8C590010 */ lw $t9, 0x0010($v0) ## 00000010
/* 00310 80A515E0 17200005 */ bne $t9, $zero, .L80A515F8
/* 00314 80A515E4 00000000 */ nop
/* 00318 80A515E8 94480EE4 */ lhu $t0, 0x0EE4($v0) ## 00000EE4
/* 0031C 80A515EC 31090001 */ andi $t1, $t0, 0x0001 ## $t1 = 00000000
/* 00320 80A515F0 11200003 */ beq $t1, $zero, .L80A51600
/* 00324 80A515F4 00000000 */ nop
.L80A515F8:
/* 00328 80A515F8 10000003 */ beq $zero, $zero, .L80A51608
/* 0032C 80A515FC AE2A025C */ sw $t2, 0x025C($s1) ## 0000025C
.L80A51600:
/* 00330 80A51600 0C00B55C */ jal Actor_Kill
/* 00334 80A51604 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L80A51608:
/* 00338 80A51608 8FBF0044 */ lw $ra, 0x0044($sp)
.L80A5160C:
/* 0033C 80A5160C 8FB00038 */ lw $s0, 0x0038($sp)
/* 00340 80A51610 8FB1003C */ lw $s1, 0x003C($sp)
/* 00344 80A51614 8FB20040 */ lw $s2, 0x0040($sp)
/* 00348 80A51618 03E00008 */ jr $ra
/* 0034C 80A5161C 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000

View file

@ -1,227 +0,0 @@
.rdata
glabel D_80A52C00
.asciz " \n"
.balign 4
.late_rodata
glabel D_80A52C38
.word 0x44098000
glabel D_80A52C3C
.float 3.14159274101
glabel D_80A52C40
.word 0xC079999A, 0x00000000, 0x00000000, 0x00000000
.text
glabel EnHeishi1_Update
/* 0104C 80A5231C 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88
/* 01050 80A52320 AFBF0024 */ sw $ra, 0x0024($sp)
/* 01054 80A52324 AFB00020 */ sw $s0, 0x0020($sp)
/* 01058 80A52328 848E0260 */ lh $t6, 0x0260($a0) ## 00000260
/* 0105C 80A5232C 8CA71C44 */ lw $a3, 0x1C44($a1) ## 00001C44
/* 01060 80A52330 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 01064 80A52334 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 01068 80A52338 A48F0260 */ sh $t7, 0x0260($a0) ## 00000260
/* 0106C 80A5233C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 01070 80A52340 0002C040 */ sll $t8, $v0, 1
.L80A52344:
/* 01074 80A52344 02181821 */ addu $v1, $s0, $t8
/* 01078 80A52348 846402A4 */ lh $a0, 0x02A4($v1) ## 000002A4
/* 0107C 80A5234C 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
/* 01080 80A52350 304200FF */ andi $v0, $v0, 0x00FF ## $v0 = 00000001
/* 01084 80A52354 10800003 */ beq $a0, $zero, .L80A52364
/* 01088 80A52358 28410003 */ slti $at, $v0, 0x0003
/* 0108C 80A5235C 2499FFFF */ addiu $t9, $a0, 0xFFFF ## $t9 = FFFFFFFF
/* 01090 80A52360 A47902A4 */ sh $t9, 0x02A4($v1) ## 000002A4
.L80A52364:
/* 01094 80A52364 5420FFF7 */ bnel $at, $zero, .L80A52344
/* 01098 80A52368 0002C040 */ sll $t8, $v0, 1
/* 0109C 80A5236C 86020270 */ lh $v0, 0x0270($s0) ## 00000270
/* 010A0 80A52370 10400002 */ beq $v0, $zero, .L80A5237C
/* 010A4 80A52374 2448FFFF */ addiu $t0, $v0, 0xFFFF ## $t0 = 00000000
/* 010A8 80A52378 A6080270 */ sh $t0, 0x0270($s0) ## 00000270
.L80A5237C:
/* 010AC 80A5237C 84A907A0 */ lh $t1, 0x07A0($a1) ## 000007A0
/* 010B0 80A52380 94EC0110 */ lhu $t4, 0x0110($a3) ## 00000110
/* 010B4 80A52384 00095080 */ sll $t2, $t1, 2
/* 010B8 80A52388 00AA5821 */ addu $t3, $a1, $t2
/* 010BC 80A5238C 158000A6 */ bne $t4, $zero, .L80A52628
/* 010C0 80A52390 8D660790 */ lw $a2, 0x0790($t3) ## 00000790
/* 010C4 80A52394 AFA5007C */ sw $a1, 0x007C($sp)
/* 010C8 80A52398 AFA60060 */ sw $a2, 0x0060($sp)
/* 010CC 80A5239C AFA70068 */ sw $a3, 0x0068($sp)
/* 010D0 80A523A0 8E19025C */ lw $t9, 0x025C($s0) ## 0000025C
/* 010D4 80A523A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 010D8 80A523A8 0320F809 */ jalr $ra, $t9
/* 010DC 80A523AC 00000000 */ nop
/* 010E0 80A523B0 3C0180A5 */ lui $at, %hi(D_80A52C38) ## $at = 80A50000
/* 010E4 80A523B4 C4242C38 */ lwc1 $f4, %lo(D_80A52C38)($at)
/* 010E8 80A523B8 3C0143AF */ lui $at, 0x43AF ## $at = 43AF0000
/* 010EC 80A523BC 44813000 */ mtc1 $at, $f6 ## $f6 = 350.00
/* 010F0 80A523C0 3C01442F */ lui $at, 0x442F ## $at = 442F0000
/* 010F4 80A523C4 44814000 */ mtc1 $at, $f8 ## $f8 = 700.00
/* 010F8 80A523C8 860D026A */ lh $t5, 0x026A($s0) ## 0000026A
/* 010FC 80A523CC 8FA60060 */ lw $a2, 0x0060($sp)
/* 01100 80A523D0 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 01104 80A523D4 E60400F4 */ swc1 $f4, 0x00F4($s0) ## 000000F4
/* 01108 80A523D8 E60600F8 */ swc1 $f6, 0x00F8($s0) ## 000000F8
/* 0110C 80A523DC 11A10092 */ beq $t5, $at, .L80A52628
/* 01110 80A523E0 E60800FC */ swc1 $f8, 0x00FC($s0) ## 000000FC
/* 01114 80A523E4 8602026C */ lh $v0, 0x026C($s0) ## 0000026C
/* 01118 80A523E8 3C0F80A5 */ lui $t7, %hi(D_80A528B0) ## $t7 = 80A50000
/* 0111C 80A523EC 25EF28B0 */ addiu $t7, $t7, %lo(D_80A528B0) ## $t7 = 80A528B0
/* 01120 80A523F0 00021040 */ sll $v0, $v0, 1
/* 01124 80A523F4 00021400 */ sll $v0, $v0, 16
/* 01128 80A523F8 00021403 */ sra $v0, $v0, 16
/* 0112C 80A523FC 00027080 */ sll $t6, $v0, 2
/* 01130 80A52400 01CF2021 */ addu $a0, $t6, $t7
/* 01134 80A52404 8C980000 */ lw $t8, 0x0000($a0) ## 00000000
/* 01138 80A52408 84C30148 */ lh $v1, 0x0148($a2) ## 00000148
/* 0113C 80A5240C 3C0980A5 */ lui $t1, %hi(D_80A527A0) ## $t1 = 80A50000
/* 01140 80A52410 10780004 */ beq $v1, $t8, .L80A52424
/* 01144 80A52414 00000000 */ nop
/* 01148 80A52418 8C880004 */ lw $t0, 0x0004($a0) ## 00000004
/* 0114C 80A5241C 54680083 */ bnel $v1, $t0, .L80A5262C
/* 01150 80A52420 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A52424:
/* 01154 80A52424 8D2927A0 */ lw $t1, %lo(D_80A527A0)($t1)
/* 01158 80A52428 55200080 */ bnel $t1, $zero, .L80A5262C
/* 0115C 80A5242C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 01160 80A52430 8E02025C */ lw $v0, 0x025C($s0) ## 0000025C
/* 01164 80A52434 3C0A80A5 */ lui $t2, %hi(func_80A516E4) ## $t2 = 80A50000
/* 01168 80A52438 254A16E4 */ addiu $t2, $t2, %lo(func_80A516E4) ## $t2 = 80A516E4
/* 0116C 80A5243C 11420003 */ beq $t2, $v0, .L80A5244C
/* 01170 80A52440 3C0B80A5 */ lui $t3, %hi(func_80A51D18) ## $t3 = 80A50000
/* 01174 80A52444 256B1D18 */ addiu $t3, $t3, %lo(func_80A51D18) ## $t3 = 80A51D18
/* 01178 80A52448 15620077 */ bne $t3, $v0, .L80A52628
.L80A5244C:
/* 0117C 80A5244C 3C1980A5 */ lui $t9, %hi(D_80A52900) ## $t9 = 80A50000
/* 01180 80A52450 27392900 */ addiu $t9, $t9, %lo(D_80A52900) ## $t9 = 80A52900
/* 01184 80A52454 8F2E0000 */ lw $t6, 0x0000($t9) ## 80A52900
/* 01188 80A52458 27AC0048 */ addiu $t4, $sp, 0x0048 ## $t4 = FFFFFFD0
/* 0118C 80A5245C 8F2D0004 */ lw $t5, 0x0004($t9) ## 80A52904
/* 01190 80A52460 AD8E0000 */ sw $t6, 0x0000($t4) ## FFFFFFD0
/* 01194 80A52464 8F2E0008 */ lw $t6, 0x0008($t9) ## 80A52908
/* 01198 80A52468 3C1880A5 */ lui $t8, %hi(D_80A5290C) ## $t8 = 80A50000
/* 0119C 80A5246C 2718290C */ addiu $t8, $t8, %lo(D_80A5290C) ## $t8 = 80A5290C
/* 011A0 80A52470 AD8D0004 */ sw $t5, 0x0004($t4) ## FFFFFFD4
/* 011A4 80A52474 AD8E0008 */ sw $t6, 0x0008($t4) ## FFFFFFD8
/* 011A8 80A52478 8F090000 */ lw $t1, 0x0000($t8) ## 80A5290C
/* 011AC 80A5247C 27AF003C */ addiu $t7, $sp, 0x003C ## $t7 = FFFFFFC4
/* 011B0 80A52480 8F080004 */ lw $t0, 0x0004($t8) ## 80A52910
/* 011B4 80A52484 ADE90000 */ sw $t1, 0x0000($t7) ## FFFFFFC4
/* 011B8 80A52488 8F090008 */ lw $t1, 0x0008($t8) ## 80A52914
/* 011BC 80A5248C ADE80004 */ sw $t0, 0x0004($t7) ## FFFFFFC8
/* 011C0 80A52490 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 011C4 80A52494 ADE90008 */ sw $t1, 0x0008($t7) ## FFFFFFCC
/* 011C8 80A52498 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 011CC 80A5249C 44819000 */ mtc1 $at, $f18 ## $f18 = 60.00
/* 011D0 80A524A0 E7AA0030 */ swc1 $f10, 0x0030($sp)
/* 011D4 80A524A4 C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 011D8 80A524A8 46128100 */ add.s $f4, $f16, $f18
/* 011DC 80A524AC E7A40034 */ swc1 $f4, 0x0034($sp)
/* 011E0 80A524B0 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 011E4 80A524B4 0C034213 */ jal Matrix_Push
/* 011E8 80A524B8 E7A60038 */ swc1 $f6, 0x0038($sp)
/* 011EC 80A524BC 860A00B6 */ lh $t2, 0x00B6($s0) ## 000000B6
/* 011F0 80A524C0 C610027C */ lwc1 $f16, 0x027C($s0) ## 0000027C
/* 011F4 80A524C4 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 011F8 80A524C8 448A4000 */ mtc1 $t2, $f8 ## $f8 = 0.00
/* 011FC 80A524CC 44812000 */ mtc1 $at, $f4 ## $f4 = 32768.00
/* 01200 80A524D0 3C0180A5 */ lui $at, %hi(D_80A52C3C) ## $at = 80A50000
/* 01204 80A524D4 468042A0 */ cvt.s.w $f10, $f8
/* 01208 80A524D8 C4282C3C */ lwc1 $f8, %lo(D_80A52C3C)($at)
/* 0120C 80A524DC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 01210 80A524E0 46105480 */ add.s $f18, $f10, $f16
/* 01214 80A524E4 46049183 */ div.s $f6, $f18, $f4
/* 01218 80A524E8 46083302 */ mul.s $f12, $f6, $f8
/* 0121C 80A524EC 0C034348 */ jal Matrix_RotateY
/* 01220 80A524F0 00000000 */ nop
/* 01224 80A524F4 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 01228 80A524F8 44815000 */ mtc1 $at, $f10 ## $f10 = 30.00
/* 0122C 80A524FC 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFC4
/* 01230 80A52500 27A50054 */ addiu $a1, $sp, 0x0054 ## $a1 = FFFFFFDC
/* 01234 80A52504 0C0346BD */ jal Matrix_MultVec3f
/* 01238 80A52508 E7AA0044 */ swc1 $f10, 0x0044($sp)
/* 0123C 80A5250C 0C034221 */ jal Matrix_Pull
/* 01240 80A52510 00000000 */ nop
/* 01244 80A52514 240B0002 */ addiu $t3, $zero, 0x0002 ## $t3 = 00000002
/* 01248 80A52518 260C0266 */ addiu $t4, $s0, 0x0266 ## $t4 = 00000266
/* 0124C 80A5251C AFAC0014 */ sw $t4, 0x0014($sp)
/* 01250 80A52520 AFAB0010 */ sw $t3, 0x0010($sp)
/* 01254 80A52524 8FA4007C */ lw $a0, 0x007C($sp)
/* 01258 80A52528 27A50030 */ addiu $a1, $sp, 0x0030 ## $a1 = FFFFFFB8
/* 0125C 80A5252C 27A60054 */ addiu $a2, $sp, 0x0054 ## $a2 = FFFFFFDC
/* 01260 80A52530 0C00A789 */ jal func_80029E24
/* 01264 80A52534 27A70048 */ addiu $a3, $sp, 0x0048 ## $a3 = FFFFFFD0
/* 01268 80A52538 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 0126C 80A5253C 44811000 */ mtc1 $at, $f2 ## $f2 = 60.00
/* 01270 80A52540 C6000090 */ lwc1 $f0, 0x0090($s0) ## 00000090
/* 01274 80A52544 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 01278 80A52548 3C01428C */ lui $at, 0x428C ## $at = 428C0000
/* 0127C 80A5254C 4602003C */ c.lt.s $f0, $f2
/* 01280 80A52550 00000000 */ nop
/* 01284 80A52554 45020004 */ bc1fl .L80A52568
/* 01288 80A52558 44818000 */ mtc1 $at, $f16 ## $f16 = 70.00
/* 0128C 80A5255C 1000000F */ beq $zero, $zero, .L80A5259C
/* 01290 80A52560 A6190266 */ sh $t9, 0x0266($s0) ## 00000266
/* 01294 80A52564 44818000 */ mtc1 $at, $f16 ## $f16 = 70.00
.L80A52568:
/* 01298 80A52568 8FAD0068 */ lw $t5, 0x0068($sp)
/* 0129C 80A5256C 4610003C */ c.lt.s $f0, $f16
/* 012A0 80A52570 00000000 */ nop
/* 012A4 80A52574 45000009 */ bc1f .L80A5259C
/* 012A8 80A52578 3C01C080 */ lui $at, 0xC080 ## $at = C0800000
/* 012AC 80A5257C 44819000 */ mtc1 $at, $f18 ## $f18 = -4.00
/* 012B0 80A52580 C5A40060 */ lwc1 $f4, 0x0060($t5) ## 00000060
/* 012B4 80A52584 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 012B8 80A52588 4604903C */ c.lt.s $f18, $f4
/* 012BC 80A5258C 00000000 */ nop
/* 012C0 80A52590 45020003 */ bc1fl .L80A525A0
/* 012C4 80A52594 860F0266 */ lh $t7, 0x0266($s0) ## 00000266
/* 012C8 80A52598 A60E0266 */ sh $t6, 0x0266($s0) ## 00000266
.L80A5259C:
/* 012CC 80A5259C 860F0266 */ lh $t7, 0x0266($s0) ## 00000266
.L80A525A0:
/* 012D0 80A525A0 8FA20068 */ lw $v0, 0x0068($sp)
/* 012D4 80A525A4 3C0180A5 */ lui $at, %hi(D_80A52C40) ## $at = 80A50000
/* 012D8 80A525A8 51E00020 */ beql $t7, $zero, .L80A5262C
/* 012DC 80A525AC 8FBF0024 */ lw $ra, 0x0024($sp)
/* 012E0 80A525B0 C4262C40 */ lwc1 $f6, %lo(D_80A52C40)($at)
/* 012E4 80A525B4 C4480060 */ lwc1 $f8, 0x0060($v0) ## 00000060
/* 012E8 80A525B8 4608303C */ c.lt.s $f6, $f8
/* 012EC 80A525BC 00000000 */ nop
/* 012F0 80A525C0 4503001A */ bc1tl .L80A5262C
/* 012F4 80A525C4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 012F8 80A525C8 A6000266 */ sh $zero, 0x0266($s0) ## 00000266
/* 012FC 80A525CC C44A0028 */ lwc1 $f10, 0x0028($v0) ## 00000028
/* 01300 80A525D0 C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 01304 80A525D4 46105001 */ sub.s $f0, $f10, $f16
/* 01308 80A525D8 46000005 */ abs.s $f0, $f0
/* 0130C 80A525DC 4602003C */ c.lt.s $f0, $f2
/* 01310 80A525E0 00000000 */ nop
/* 01314 80A525E4 45020011 */ bc1fl .L80A5262C
/* 01318 80A525E8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0131C 80A525EC 0C01E221 */ jal func_80078884
/* 01320 80A525F0 2404482C */ addiu $a0, $zero, 0x482C ## $a0 = 0000482C
/* 01324 80A525F4 3C0480A5 */ lui $a0, %hi(D_80A52C00) ## $a0 = 80A50000
/* 01328 80A525F8 0C00084C */ jal osSyncPrintf
/* 0132C 80A525FC 24842C00 */ addiu $a0, $a0, %lo(D_80A52C00) ## $a0 = 80A52C00
/* 01330 80A52600 8FA4007C */ lw $a0, 0x007C($sp)
/* 01334 80A52604 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 01338 80A52608 0C00B7D5 */ jal func_8002DF54
/* 0133C 80A5260C 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
/* 01340 80A52610 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 01344 80A52614 3C0180A5 */ lui $at, %hi(D_80A527A0) ## $at = 80A50000
/* 01348 80A52618 3C0880A5 */ lui $t0, %hi(func_80A51A98) ## $t0 = 80A50000
/* 0134C 80A5261C AC3827A0 */ sw $t8, %lo(D_80A527A0)($at)
/* 01350 80A52620 25081A98 */ addiu $t0, $t0, %lo(func_80A51A98) ## $t0 = 80A51A98
/* 01354 80A52624 AE08025C */ sw $t0, 0x025C($s0) ## 0000025C
.L80A52628:
/* 01358 80A52628 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A5262C:
/* 0135C 80A5262C 8FB00020 */ lw $s0, 0x0020($sp)
/* 01360 80A52630 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000
/* 01364 80A52634 03E00008 */ jr $ra
/* 01368 80A52638 00000000 */ nop

View file

@ -1,55 +0,0 @@
.late_rodata
glabel D_80A52C28
.float 1.99000000954
.text
glabel func_80A5162C
/* 0035C 80A5162C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00360 80A51630 AFB00028 */ sw $s0, 0x0028($sp)
/* 00364 80A51634 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00368 80A51638 AFBF002C */ sw $ra, 0x002C($sp)
/* 0036C 80A5163C 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00370 80A51640 AFA50034 */ sw $a1, 0x0034($sp)
/* 00374 80A51644 0C028800 */ jal SkelAnime_GetFrameCount
/* 00378 80A51648 24845880 */ addiu $a0, $a0, 0x5880 ## $a0 = 06005880
/* 0037C 80A5164C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00380 80A51650 8E060284 */ lw $a2, 0x0284($s0) ## 00000284
/* 00384 80A51654 AFA00014 */ sw $zero, 0x0014($sp)
/* 00388 80A51658 468021A0 */ cvt.s.w $f6, $f4
/* 0038C 80A5165C 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00390 80A51660 24A55880 */ addiu $a1, $a1, 0x5880 ## $a1 = 06005880
/* 00394 80A51664 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00398 80A51668 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 0039C 80A5166C 4600320D */ trunc.w.s $f8, $f6
/* 003A0 80A51670 440F4000 */ mfc1 $t7, $f8
/* 003A4 80A51674 00000000 */ nop
/* 003A8 80A51678 000FC400 */ sll $t8, $t7, 16
/* 003AC 80A5167C 0018CC03 */ sra $t9, $t8, 16
/* 003B0 80A51680 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 003B4 80A51684 00000000 */ nop
/* 003B8 80A51688 46805420 */ cvt.s.w $f16, $f10
/* 003BC 80A5168C E7B00010 */ swc1 $f16, 0x0010($sp)
/* 003C0 80A51690 C6120288 */ lwc1 $f18, 0x0288($s0) ## 00000288
/* 003C4 80A51694 0C029468 */ jal SkelAnime_ChangeAnim
/* 003C8 80A51698 E7B20018 */ swc1 $f18, 0x0018($sp)
/* 003CC 80A5169C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 003D0 80A516A0 3C0180A5 */ lui $at, %hi(D_80A52C28) ## $at = 80A50000
/* 003D4 80A516A4 E6000278 */ swc1 $f0, 0x0278($s0) ## 00000278
/* 003D8 80A516A8 E6000274 */ swc1 $f0, 0x0274($s0) ## 00000274
/* 003DC 80A516AC 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 003E0 80A516B0 C42C2C28 */ lwc1 $f12, %lo(D_80A52C28)($at)
/* 003E4 80A516B4 4600010D */ trunc.w.s $f4, $f0
/* 003E8 80A516B8 3C0A80A5 */ lui $t2, %hi(func_80A516E4) ## $t2 = 80A50000
/* 003EC 80A516BC 254A16E4 */ addiu $t2, $t2, %lo(func_80A516E4) ## $t2 = 80A516E4
/* 003F0 80A516C0 AE0A025C */ sw $t2, 0x025C($s0) ## 0000025C
/* 003F4 80A516C4 44092000 */ mfc1 $t1, $f4
/* 003F8 80A516C8 00000000 */ nop
/* 003FC 80A516CC A6090262 */ sh $t1, 0x0262($s0) ## 00000262
/* 00400 80A516D0 8FBF002C */ lw $ra, 0x002C($sp)
/* 00404 80A516D4 8FB00028 */ lw $s0, 0x0028($sp)
/* 00408 80A516D8 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 0040C 80A516DC 03E00008 */ jr $ra
/* 00410 80A516E0 00000000 */ nop

View file

@ -1,296 +0,0 @@
.rdata
glabel D_80A52B1C
.asciz " %d\n"
.balign 4
glabel D_80A52B30
.asciz " %d\n"
.balign 4
glabel D_80A52B44
.asciz " %d\n"
.balign 4
glabel D_80A52B58
.asciz " %d\n"
.balign 4
glabel D_80A52B6C
.asciz " %d\n"
.balign 4
glabel D_80A52B80
.asciz "\n\n"
.balign 4
.late_rodata
glabel D_80A52C2C
.word 0x4622F983
glabel D_80A52C30
.float 1.99000000954
.text
glabel func_80A516E4
/* 00414 80A516E4 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00418 80A516E8 AFB00020 */ sw $s0, 0x0020($sp)
/* 0041C 80A516EC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00420 80A516F0 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00424 80A516F4 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00428 80A516F8 AFA5004C */ sw $a1, 0x004C($sp)
/* 0042C 80A516FC 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00430 80A51700 AFA4002C */ sw $a0, 0x002C($sp)
/* 00434 80A51704 8FA4002C */ lw $a0, 0x002C($sp)
/* 00438 80A51708 0C0295B2 */ jal func_800A56C8
/* 0043C 80A5170C 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 00440 80A51710 14400004 */ bne $v0, $zero, .L80A51724
/* 00444 80A51714 8FA4002C */ lw $a0, 0x002C($sp)
/* 00448 80A51718 0C0295B2 */ jal func_800A56C8
/* 0044C 80A5171C 3C054188 */ lui $a1, 0x4188 ## $a1 = 41880000
/* 00450 80A51720 10400003 */ beq $v0, $zero, .L80A51730
.L80A51724:
/* 00454 80A51724 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00458 80A51728 0C00BE0A */ jal Audio_PlayActorSound2
/* 0045C 80A5172C 240528F0 */ addiu $a1, $zero, 0x28F0 ## $a1 = 000028F0
.L80A51730:
/* 00460 80A51730 3C0E80A5 */ lui $t6, %hi(D_80A527A0) ## $t6 = 80A50000
/* 00464 80A51734 8DCE27A0 */ lw $t6, %lo(D_80A527A0)($t6)
/* 00468 80A51738 8FAF004C */ lw $t7, 0x004C($sp)
/* 0046C 80A5173C 3C180001 */ lui $t8, 0x0001 ## $t8 = 00010000
/* 00470 80A51740 15C000D0 */ bne $t6, $zero, .L80A51A84
/* 00474 80A51744 030FC021 */ addu $t8, $t8, $t7
/* 00478 80A51748 8619026C */ lh $t9, 0x026C($s0) ## 0000026C
/* 0047C 80A5174C 8F181E08 */ lw $t8, 0x1E08($t8) ## 00011E08
/* 00480 80A51750 3C0D8016 */ lui $t5, %hi(gSegments)
/* 00484 80A51754 001948C0 */ sll $t1, $t9, 3
/* 00488 80A51758 03094021 */ addu $t0, $t8, $t1
/* 0048C 80A5175C 8D030004 */ lw $v1, 0x0004($t0) ## 00000004
/* 00490 80A51760 860F02AA */ lh $t7, 0x02AA($s0) ## 000002AA
/* 00494 80A51764 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 00498 80A51768 00035100 */ sll $t2, $v1, 4
/* 0049C 80A5176C 000A5F02 */ srl $t3, $t2, 28
/* 004A0 80A51770 000B6080 */ sll $t4, $t3, 2
/* 004A4 80A51774 01AC6821 */ addu $t5, $t5, $t4
/* 004A8 80A51778 8DAD6FA8 */ lw $t5, %lo(gSegments)($t5)
/* 004AC 80A5177C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 004B0 80A51780 00617024 */ and $t6, $v1, $at
/* 004B4 80A51784 000FC880 */ sll $t9, $t7, 2
/* 004B8 80A51788 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 004BC 80A5178C 032FC823 */ subu $t9, $t9, $t7
/* 004C0 80A51790 01AE1021 */ addu $v0, $t5, $t6
/* 004C4 80A51794 00411021 */ addu $v0, $v0, $at
/* 004C8 80A51798 0019C840 */ sll $t9, $t9, 1
/* 004CC 80A5179C 00591021 */ addu $v0, $v0, $t9
/* 004D0 80A517A0 84580000 */ lh $t8, 0x0000($v0) ## 00000000
/* 004D4 80A517A4 8E070274 */ lw $a3, 0x0274($s0) ## 00000274
/* 004D8 80A517A8 AFA80044 */ sw $t0, 0x0044($sp)
/* 004DC 80A517AC 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00
/* 004E0 80A517B0 AFA20040 */ sw $v0, 0x0040($sp)
/* 004E4 80A517B4 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 004E8 80A517B8 46802120 */ cvt.s.w $f4, $f4
/* 004EC 80A517BC 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 004F0 80A517C0 44052000 */ mfc1 $a1, $f4
/* 004F4 80A517C4 0C01E107 */ jal Math_SmoothScaleMaxF
/* 004F8 80A517C8 00000000 */ nop
/* 004FC 80A517CC 8FA20040 */ lw $v0, 0x0040($sp)
/* 00500 80A517D0 2604002C */ addiu $a0, $s0, 0x002C ## $a0 = 0000002C
/* 00504 80A517D4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00508 80A517D8 84490004 */ lh $t1, 0x0004($v0) ## 00000004
/* 0050C 80A517DC 8E070274 */ lw $a3, 0x0274($s0) ## 00000274
/* 00510 80A517E0 44893000 */ mtc1 $t1, $f6 ## $f6 = 0.00
/* 00514 80A517E4 00000000 */ nop
/* 00518 80A517E8 468031A0 */ cvt.s.w $f6, $f6
/* 0051C 80A517EC 44053000 */ mfc1 $a1, $f6
/* 00520 80A517F0 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00524 80A517F4 00000000 */ nop
/* 00528 80A517F8 26040274 */ addiu $a0, $s0, 0x0274 ## $a0 = 00000274
/* 0052C 80A517FC 8E05028C */ lw $a1, 0x028C($s0) ## 0000028C
/* 00530 80A51800 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00534 80A51804 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00538 80A51808 8E070290 */ lw $a3, 0x0290($s0) ## 00000290
/* 0053C 80A5180C 8FA20040 */ lw $v0, 0x0040($sp)
/* 00540 80A51810 C6100024 */ lwc1 $f16, 0x0024($s0) ## 00000024
/* 00544 80A51814 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 00548 80A51818 844A0000 */ lh $t2, 0x0000($v0) ## 00000000
/* 0054C 80A5181C 844B0004 */ lh $t3, 0x0004($v0) ## 00000004
/* 00550 80A51820 448A4000 */ mtc1 $t2, $f8 ## $f8 = 0.00
/* 00554 80A51824 448B9000 */ mtc1 $t3, $f18 ## $f18 = 0.00
/* 00558 80A51828 468042A0 */ cvt.s.w $f10, $f8
/* 0055C 80A5182C 46809120 */ cvt.s.w $f4, $f18
/* 00560 80A51830 46105301 */ sub.s $f12, $f10, $f16
/* 00564 80A51834 46062381 */ sub.s $f14, $f4, $f6
/* 00568 80A51838 E7AC003C */ swc1 $f12, 0x003C($sp)
/* 0056C 80A5183C 0C03F494 */ jal Math_atan2f
/* 00570 80A51840 E7AE0038 */ swc1 $f14, 0x0038($sp)
/* 00574 80A51844 3C0180A5 */ lui $at, %hi(D_80A52C2C) ## $at = 80A50000
/* 00578 80A51848 C4282C2C */ lwc1 $f8, %lo(D_80A52C2C)($at)
/* 0057C 80A5184C C6120278 */ lwc1 $f18, 0x0278($s0) ## 00000278
/* 00580 80A51850 AFA00010 */ sw $zero, 0x0010($sp)
/* 00584 80A51854 46080282 */ mul.s $f10, $f0, $f8
/* 00588 80A51858 4600910D */ trunc.w.s $f4, $f18
/* 0058C 80A5185C 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
/* 00590 80A51860 24060003 */ addiu $a2, $zero, 0x0003 ## $a2 = 00000003
/* 00594 80A51864 44072000 */ mfc1 $a3, $f4
/* 00598 80A51868 4600540D */ trunc.w.s $f16, $f10
/* 0059C 80A5186C 00073C00 */ sll $a3, $a3, 16
/* 005A0 80A51870 00073C03 */ sra $a3, $a3, 16
/* 005A4 80A51874 44058000 */ mfc1 $a1, $f16
/* 005A8 80A51878 00000000 */ nop
/* 005AC 80A5187C 00052C00 */ sll $a1, $a1, 16
/* 005B0 80A51880 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 005B4 80A51884 00052C03 */ sra $a1, $a1, 16
/* 005B8 80A51888 26040278 */ addiu $a0, $s0, 0x0278 ## $a0 = 00000278
/* 005BC 80A5188C 8E050294 */ lw $a1, 0x0294($s0) ## 00000294
/* 005C0 80A51890 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 005C4 80A51894 0C01E107 */ jal Math_SmoothScaleMaxF
/* 005C8 80A51898 8E070298 */ lw $a3, 0x0298($s0) ## 00000298
/* 005CC 80A5189C 860E02A4 */ lh $t6, 0x02A4($s0) ## 000002A4
/* 005D0 80A518A0 55C00020 */ bnel $t6, $zero, .L80A51924
/* 005D4 80A518A4 2604027C */ addiu $a0, $s0, 0x027C ## $a0 = 0000027C
/* 005D8 80A518A8 860F0262 */ lh $t7, 0x0262($s0) ## 00000262
/* 005DC 80A518AC 3C014600 */ lui $at, 0x4600 ## $at = 46000000
/* 005E0 80A518B0 44813000 */ mtc1 $at, $f6 ## $f6 = 8192.00
/* 005E4 80A518B4 25F90001 */ addiu $t9, $t7, 0x0001 ## $t9 = 00000001
/* 005E8 80A518B8 A6190262 */ sh $t9, 0x0262($s0) ## 00000262
/* 005EC 80A518BC 86180262 */ lh $t8, 0x0262($s0) ## 00000262
/* 005F0 80A518C0 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 005F4 80A518C4 E6060280 */ swc1 $f6, 0x0280($s0) ## 00000280
/* 005F8 80A518C8 33090001 */ andi $t1, $t8, 0x0001 ## $t1 = 00000000
/* 005FC 80A518CC 51200007 */ beql $t1, $zero, .L80A518EC
/* 00600 80A518D0 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00604 80A518D4 C6080280 */ lwc1 $f8, 0x0280($s0) ## 00000280
/* 00608 80A518D8 44815000 */ mtc1 $at, $f10 ## $f10 = 30.00
/* 0060C 80A518DC 00000000 */ nop
/* 00610 80A518E0 460A4402 */ mul.s $f16, $f8, $f10
/* 00614 80A518E4 E6100280 */ swc1 $f16, 0x0280($s0) ## 00000280
/* 00618 80A518E8 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
.L80A518EC:
/* 0061C 80A518EC 44816000 */ mtc1 $at, $f12 ## $f12 = 30.00
/* 00620 80A518F0 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00624 80A518F4 00000000 */ nop
/* 00628 80A518F8 860A026A */ lh $t2, 0x026A($s0) ## 0000026A
/* 0062C 80A518FC 4600048D */ trunc.w.s $f18, $f0
/* 00630 80A51900 3C0C80A5 */ lui $t4, %hi(D_80A52844) ## $t4 = 80A50000
/* 00634 80A51904 000A5840 */ sll $t3, $t2, 1
/* 00638 80A51908 018B6021 */ addu $t4, $t4, $t3
/* 0063C 80A5190C 858C2844 */ lh $t4, %lo(D_80A52844)($t4)
/* 00640 80A51910 44199000 */ mfc1 $t9, $f18
/* 00644 80A51914 00000000 */ nop
/* 00648 80A51918 0199C021 */ addu $t8, $t4, $t9
/* 0064C 80A5191C A61802A4 */ sh $t8, 0x02A4($s0) ## 000002A4
/* 00650 80A51920 2604027C */ addiu $a0, $s0, 0x027C ## $a0 = 0000027C
.L80A51924:
/* 00654 80A51924 8E050280 */ lw $a1, 0x0280($s0) ## 00000280
/* 00658 80A51928 8E06029C */ lw $a2, 0x029C($s0) ## 0000029C
/* 0065C 80A5192C 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00660 80A51930 8E0702A0 */ lw $a3, 0x02A0($s0) ## 000002A0
/* 00664 80A51934 3C028016 */ lui $v0, %hi(gGameInfo)
/* 00668 80A51938 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 0066C 80A5193C 8605026C */ lh $a1, 0x026C($s0) ## 0000026C
/* 00670 80A51940 844912D6 */ lh $t1, 0x12D6($v0) ## 801612D6
/* 00674 80A51944 54A90020 */ bnel $a1, $t1, .L80A519C8
/* 00678 80A51948 C7A0003C */ lwc1 $f0, 0x003C($sp)
/* 0067C 80A5194C 844A12D4 */ lh $t2, 0x12D4($v0) ## 801612D4
/* 00680 80A51950 3C0480A5 */ lui $a0, %hi(D_80A52B1C) ## $a0 = 80A50000
/* 00684 80A51954 5140001C */ beql $t2, $zero, .L80A519C8
/* 00688 80A51958 C7A0003C */ lwc1 $f0, 0x003C($sp)
/* 0068C 80A5195C 0C00084C */ jal osSyncPrintf
/* 00690 80A51960 24842B1C */ addiu $a0, $a0, %lo(D_80A52B1C) ## $a0 = 80A52B1C
/* 00694 80A51964 3C0480A5 */ lui $a0, %hi(D_80A52B30) ## $a0 = 80A50000
/* 00698 80A51968 24842B30 */ addiu $a0, $a0, %lo(D_80A52B30) ## $a0 = 80A52B30
/* 0069C 80A5196C 0C00084C */ jal osSyncPrintf
/* 006A0 80A51970 860502AA */ lh $a1, 0x02AA($s0) ## 000002AA
/* 006A4 80A51974 C6040278 */ lwc1 $f4, 0x0278($s0) ## 00000278
/* 006A8 80A51978 3C0480A5 */ lui $a0, %hi(D_80A52B44) ## $a0 = 80A50000
/* 006AC 80A5197C 24842B44 */ addiu $a0, $a0, %lo(D_80A52B44) ## $a0 = 80A52B44
/* 006B0 80A51980 460021A1 */ cvt.d.s $f6, $f4
/* 006B4 80A51984 44073000 */ mfc1 $a3, $f6
/* 006B8 80A51988 44063800 */ mfc1 $a2, $f7
/* 006BC 80A5198C 0C00084C */ jal osSyncPrintf
/* 006C0 80A51990 00000000 */ nop
/* 006C4 80A51994 3C0480A5 */ lui $a0, %hi(D_80A52B58) ## $a0 = 80A50000
/* 006C8 80A51998 24842B58 */ addiu $a0, $a0, %lo(D_80A52B58) ## $a0 = 80A52B58
/* 006CC 80A5199C 0C00084C */ jal osSyncPrintf
/* 006D0 80A519A0 86050270 */ lh $a1, 0x0270($s0) ## 00000270
/* 006D4 80A519A4 8FAB0044 */ lw $t3, 0x0044($sp)
/* 006D8 80A519A8 3C0480A5 */ lui $a0, %hi(D_80A52B6C) ## $a0 = 80A50000
/* 006DC 80A519AC 24842B6C */ addiu $a0, $a0, %lo(D_80A52B6C) ## $a0 = 80A52B6C
/* 006E0 80A519B0 0C00084C */ jal osSyncPrintf
/* 006E4 80A519B4 91650000 */ lbu $a1, 0x0000($t3) ## 00000000
/* 006E8 80A519B8 3C0480A5 */ lui $a0, %hi(D_80A52B80) ## $a0 = 80A50000
/* 006EC 80A519BC 0C00084C */ jal osSyncPrintf
/* 006F0 80A519C0 24842B80 */ addiu $a0, $a0, %lo(D_80A52B80) ## $a0 = 80A52B80
/* 006F4 80A519C4 C7A0003C */ lwc1 $f0, 0x003C($sp)
.L80A519C8:
/* 006F8 80A519C8 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 006FC 80A519CC 44811000 */ mtc1 $at, $f2 ## $f2 = 20.00
/* 00700 80A519D0 46000005 */ abs.s $f0, $f0
/* 00704 80A519D4 4602003C */ c.lt.s $f0, $f2
/* 00708 80A519D8 C7A00038 */ lwc1 $f0, 0x0038($sp)
/* 0070C 80A519DC 4502002A */ bc1fl .L80A51A88
/* 00710 80A519E0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00714 80A519E4 46000005 */ abs.s $f0, $f0
/* 00718 80A519E8 4602003C */ c.lt.s $f0, $f2
/* 0071C 80A519EC 00000000 */ nop
/* 00720 80A519F0 45020025 */ bc1fl .L80A51A88
/* 00724 80A519F4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00728 80A519F8 860D0270 */ lh $t5, 0x0270($s0) ## 00000270
/* 0072C 80A519FC 55A00022 */ bnel $t5, $zero, .L80A51A88
/* 00730 80A51A00 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00734 80A51A04 860E026A */ lh $t6, 0x026A($s0) ## 0000026A
/* 00738 80A51A08 29C10002 */ slti $at, $t6, 0x0002
/* 0073C 80A51A0C 1420001A */ bne $at, $zero, .L80A51A78
/* 00740 80A51A10 00000000 */ nop
/* 00744 80A51A14 860F02AA */ lh $t7, 0x02AA($s0) ## 000002AA
/* 00748 80A51A18 29E10004 */ slti $at, $t7, 0x0004
/* 0074C 80A51A1C 14200016 */ bne $at, $zero, .L80A51A78
/* 00750 80A51A20 3C0180A5 */ lui $at, %hi(D_80A52C30) ## $at = 80A50000
/* 00754 80A51A24 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00758 80A51A28 C42C2C30 */ lwc1 $f12, %lo(D_80A52C30)($at)
/* 0075C 80A51A2C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00760 80A51A30 44814000 */ mtc1 $at, $f8 ## $f8 = 1.00
/* 00764 80A51A34 24190005 */ addiu $t9, $zero, 0x0005 ## $t9 = 00000005
/* 00768 80A51A38 4600403C */ c.lt.s $f8, $f0
/* 0076C 80A51A3C 00000000 */ nop
/* 00770 80A51A40 4500000D */ bc1f .L80A51A78
/* 00774 80A51A44 00000000 */ nop
/* 00778 80A51A48 860202AA */ lh $v0, 0x02AA($s0) ## 000002AA
/* 0077C 80A51A4C 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
/* 00780 80A51A50 54410004 */ bnel $v0, $at, .L80A51A64
/* 00784 80A51A54 28410004 */ slti $at, $v0, 0x0004
/* 00788 80A51A58 A60002AA */ sh $zero, 0x02AA($s0) ## 000002AA
/* 0078C 80A51A5C 860202AA */ lh $v0, 0x02AA($s0) ## 000002AA
/* 00790 80A51A60 28410004 */ slti $at, $v0, 0x0004
.L80A51A64:
/* 00794 80A51A64 14200002 */ bne $at, $zero, .L80A51A70
/* 00798 80A51A68 244CFFFD */ addiu $t4, $v0, 0xFFFD ## $t4 = FFFFFFFD
/* 0079C 80A51A6C A60C02AA */ sh $t4, 0x02AA($s0) ## 000002AA
.L80A51A70:
/* 007A0 80A51A70 10000004 */ beq $zero, $zero, .L80A51A84
/* 007A4 80A51A74 A6190270 */ sh $t9, 0x0270($s0) ## 00000270
.L80A51A78:
/* 007A8 80A51A78 3C1880A5 */ lui $t8, %hi(func_80A51C4C) ## $t8 = 80A50000
/* 007AC 80A51A7C 27181C4C */ addiu $t8, $t8, %lo(func_80A51C4C) ## $t8 = 80A51C4C
/* 007B0 80A51A80 AE18025C */ sw $t8, 0x025C($s0) ## 0000025C
.L80A51A84:
/* 007B4 80A51A84 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A51A88:
/* 007B8 80A51A88 8FB00020 */ lw $s0, 0x0020($sp)
/* 007BC 80A51A8C 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 007C0 80A51A90 03E00008 */ jr $ra
/* 007C4 80A51A94 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_80A51A98
/* 007C8 80A51A98 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 007CC 80A51A9C AFB00028 */ sw $s0, 0x0028($sp)
/* 007D0 80A51AA0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 007D4 80A51AA4 AFBF002C */ sw $ra, 0x002C($sp)
/* 007D8 80A51AA8 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 007DC 80A51AAC AFA50034 */ sw $a1, 0x0034($sp)
/* 007E0 80A51AB0 0C028800 */ jal SkelAnime_GetFrameCount
/* 007E4 80A51AB4 24845880 */ addiu $a0, $a0, 0x5880 ## $a0 = 06005880
/* 007E8 80A51AB8 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 007EC 80A51ABC 3C01C040 */ lui $at, 0xC040 ## $at = C0400000
/* 007F0 80A51AC0 44819000 */ mtc1 $at, $f18 ## $f18 = -3.00
/* 007F4 80A51AC4 468021A0 */ cvt.s.w $f6, $f4
/* 007F8 80A51AC8 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 007FC 80A51ACC 24A55880 */ addiu $a1, $a1, 0x5880 ## $a1 = 06005880
/* 00800 80A51AD0 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00804 80A51AD4 3C064040 */ lui $a2, 0x4040 ## $a2 = 40400000
/* 00808 80A51AD8 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 0080C 80A51ADC 4600320D */ trunc.w.s $f8, $f6
/* 00810 80A51AE0 AFA00014 */ sw $zero, 0x0014($sp)
/* 00814 80A51AE4 E7B20018 */ swc1 $f18, 0x0018($sp)
/* 00818 80A51AE8 440F4000 */ mfc1 $t7, $f8
/* 0081C 80A51AEC 00000000 */ nop
/* 00820 80A51AF0 000FC400 */ sll $t8, $t7, 16
/* 00824 80A51AF4 0018CC03 */ sra $t9, $t8, 16
/* 00828 80A51AF8 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 0082C 80A51AFC 00000000 */ nop
/* 00830 80A51B00 46805420 */ cvt.s.w $f16, $f10
/* 00834 80A51B04 0C029468 */ jal SkelAnime_ChangeAnim
/* 00838 80A51B08 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 0083C 80A51B0C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00840 80A51B10 2405702D */ addiu $a1, $zero, 0x702D ## $a1 = 0000702D
/* 00844 80A51B14 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00848 80A51B18 E6000278 */ swc1 $f0, 0x0278($s0) ## 00000278
/* 0084C 80A51B1C E6000274 */ swc1 $f0, 0x0274($s0) ## 00000274
/* 00850 80A51B20 0C042DA0 */ jal func_8010B680
/* 00854 80A51B24 8FA40034 */ lw $a0, 0x0034($sp)
/* 00858 80A51B28 8FA40034 */ lw $a0, 0x0034($sp)
/* 0085C 80A51B2C 0C021BC0 */ jal Interface_SetDoAction
/* 00860 80A51B30 24050012 */ addiu $a1, $zero, 0x0012 ## $a1 = 00000012
/* 00864 80A51B34 3C0880A5 */ lui $t0, %hi(func_80A51B54) ## $t0 = 80A50000
/* 00868 80A51B38 25081B54 */ addiu $t0, $t0, %lo(func_80A51B54) ## $t0 = 80A51B54
/* 0086C 80A51B3C AE08025C */ sw $t0, 0x025C($s0) ## 0000025C
/* 00870 80A51B40 8FBF002C */ lw $ra, 0x002C($sp)
/* 00874 80A51B44 8FB00028 */ lw $s0, 0x0028($sp)
/* 00878 80A51B48 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 0087C 80A51B4C 03E00008 */ jr $ra
/* 00880 80A51B50 00000000 */ nop

View file

@ -1,71 +0,0 @@
glabel func_80A51B54
/* 00884 80A51B54 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00888 80A51B58 AFBF0024 */ sw $ra, 0x0024($sp)
/* 0088C 80A51B5C AFB00020 */ sw $s0, 0x0020($sp)
/* 00890 80A51B60 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44
/* 00894 80A51B64 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00898 80A51B68 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 0089C 80A51B6C 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 008A0 80A51B70 AFAE002C */ sw $t6, 0x002C($sp)
/* 008A4 80A51B74 8FAF002C */ lw $t7, 0x002C($sp)
/* 008A8 80A51B78 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 008AC 80A51B7C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 008B0 80A51B80 8E070274 */ lw $a3, 0x0274($s0) ## 00000274
/* 008B4 80A51B84 0C01E107 */ jal Math_SmoothScaleMaxF
/* 008B8 80A51B88 8DE50024 */ lw $a1, 0x0024($t7) ## 00000024
/* 008BC 80A51B8C 8FB8002C */ lw $t8, 0x002C($sp)
/* 008C0 80A51B90 2604002C */ addiu $a0, $s0, 0x002C ## $a0 = 0000002C
/* 008C4 80A51B94 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 008C8 80A51B98 8E070274 */ lw $a3, 0x0274($s0) ## 00000274
/* 008CC 80A51B9C 0C01E107 */ jal Math_SmoothScaleMaxF
/* 008D0 80A51BA0 8F05002C */ lw $a1, 0x002C($t8) ## 0000002C
/* 008D4 80A51BA4 3C073ECC */ lui $a3, 0x3ECC ## $a3 = 3ECC0000
/* 008D8 80A51BA8 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3ECCCCCD
/* 008DC 80A51BAC 26040274 */ addiu $a0, $s0, 0x0274 ## $a0 = 00000274
/* 008E0 80A51BB0 3C0540C0 */ lui $a1, 0x40C0 ## $a1 = 40C00000
/* 008E4 80A51BB4 0C01E107 */ jal Math_SmoothScaleMaxF
/* 008E8 80A51BB8 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 008EC 80A51BBC C6040278 */ lwc1 $f4, 0x0278($s0) ## 00000278
/* 008F0 80A51BC0 8605008A */ lh $a1, 0x008A($s0) ## 0000008A
/* 008F4 80A51BC4 AFA00010 */ sw $zero, 0x0010($sp)
/* 008F8 80A51BC8 4600218D */ trunc.w.s $f6, $f4
/* 008FC 80A51BCC 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
/* 00900 80A51BD0 24060003 */ addiu $a2, $zero, 0x0003 ## $a2 = 00000003
/* 00904 80A51BD4 44073000 */ mfc1 $a3, $f6
/* 00908 80A51BD8 00000000 */ nop
/* 0090C 80A51BDC 00073C00 */ sll $a3, $a3, 16
/* 00910 80A51BE0 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 00914 80A51BE4 00073C03 */ sra $a3, $a3, 16
/* 00918 80A51BE8 3C05453B */ lui $a1, 0x453B ## $a1 = 453B0000
/* 0091C 80A51BEC 34A58000 */ ori $a1, $a1, 0x8000 ## $a1 = 453B8000
/* 00920 80A51BF0 26040278 */ addiu $a0, $s0, 0x0278 ## $a0 = 00000278
/* 00924 80A51BF4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00928 80A51BF8 0C01E107 */ jal Math_SmoothScaleMaxF
/* 0092C 80A51BFC 3C074396 */ lui $a3, 0x4396 ## $a3 = 43960000
/* 00930 80A51C00 2604027C */ addiu $a0, $s0, 0x027C ## $a0 = 0000027C
/* 00934 80A51C04 3C053F00 */ lui $a1, 0x3F00 ## $a1 = 3F000000
/* 00938 80A51C08 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 0093C 80A51C0C 3C0644FA */ lui $a2, 0x44FA ## $a2 = 44FA0000
/* 00940 80A51C10 3C01428C */ lui $at, 0x428C ## $at = 428C0000
/* 00944 80A51C14 44815000 */ mtc1 $at, $f10 ## $f10 = 70.00
/* 00948 80A51C18 C6080090 */ lwc1 $f8, 0x0090($s0) ## 00000090
/* 0094C 80A51C1C 3C0880A5 */ lui $t0, %hi(func_80A51F50) ## $t0 = 80A50000
/* 00950 80A51C20 25081F50 */ addiu $t0, $t0, %lo(func_80A51F50) ## $t0 = 80A51F50
/* 00954 80A51C24 460A403C */ c.lt.s $f8, $f10
/* 00958 80A51C28 00000000 */ nop
/* 0095C 80A51C2C 45020003 */ bc1fl .L80A51C3C
/* 00960 80A51C30 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00964 80A51C34 AE08025C */ sw $t0, 0x025C($s0) ## 0000025C
/* 00968 80A51C38 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A51C3C:
/* 0096C 80A51C3C 8FB00020 */ lw $s0, 0x0020($sp)
/* 00970 80A51C40 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00974 80A51C44 03E00008 */ jr $ra
/* 00978 80A51C48 00000000 */ nop

View file

@ -1,61 +0,0 @@
.late_rodata
glabel D_80A52C34
.float 1.99000000954
.text
glabel func_80A51C4C
/* 0097C 80A51C4C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00980 80A51C50 AFB00028 */ sw $s0, 0x0028($sp)
/* 00984 80A51C54 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00988 80A51C58 AFBF002C */ sw $ra, 0x002C($sp)
/* 0098C 80A51C5C 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00990 80A51C60 AFA50034 */ sw $a1, 0x0034($sp)
/* 00994 80A51C64 0C028800 */ jal SkelAnime_GetFrameCount
/* 00998 80A51C68 24845C30 */ addiu $a0, $a0, 0x5C30 ## $a0 = 06005C30
/* 0099C 80A51C6C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 009A0 80A51C70 8E060284 */ lw $a2, 0x0284($s0) ## 00000284
/* 009A4 80A51C74 AFA00014 */ sw $zero, 0x0014($sp)
/* 009A8 80A51C78 468021A0 */ cvt.s.w $f6, $f4
/* 009AC 80A51C7C 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 009B0 80A51C80 24A55C30 */ addiu $a1, $a1, 0x5C30 ## $a1 = 06005C30
/* 009B4 80A51C84 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 009B8 80A51C88 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 009BC 80A51C8C 4600320D */ trunc.w.s $f8, $f6
/* 009C0 80A51C90 440F4000 */ mfc1 $t7, $f8
/* 009C4 80A51C94 00000000 */ nop
/* 009C8 80A51C98 000FC400 */ sll $t8, $t7, 16
/* 009CC 80A51C9C 0018CC03 */ sra $t9, $t8, 16
/* 009D0 80A51CA0 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 009D4 80A51CA4 00000000 */ nop
/* 009D8 80A51CA8 46805420 */ cvt.s.w $f16, $f10
/* 009DC 80A51CAC E7B00010 */ swc1 $f16, 0x0010($sp)
/* 009E0 80A51CB0 C6120288 */ lwc1 $f18, 0x0288($s0) ## 00000288
/* 009E4 80A51CB4 0C029468 */ jal SkelAnime_ChangeAnim
/* 009E8 80A51CB8 E7B20018 */ swc1 $f18, 0x0018($sp)
/* 009EC 80A51CBC A6000264 */ sh $zero, 0x0264($s0) ## 00000264
/* 009F0 80A51CC0 3C0180A5 */ lui $at, %hi(D_80A52C34) ## $at = 80A50000
/* 009F4 80A51CC4 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 009F8 80A51CC8 C42C2C34 */ lwc1 $f12, %lo(D_80A52C34)($at)
/* 009FC 80A51CCC 4600010D */ trunc.w.s $f4, $f0
/* 00A00 80A51CD0 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00A04 80A51CD4 44816000 */ mtc1 $at, $f12 ## $f12 = 50.00
/* 00A08 80A51CD8 44092000 */ mfc1 $t1, $f4
/* 00A0C 80A51CDC 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00A10 80A51CE0 A6090262 */ sh $t1, 0x0262($s0) ## 00000262
/* 00A14 80A51CE4 4600018D */ trunc.w.s $f6, $f0
/* 00A18 80A51CE8 3C0F80A5 */ lui $t7, %hi(func_80A51D18) ## $t7 = 80A50000
/* 00A1C 80A51CEC 25EF1D18 */ addiu $t7, $t7, %lo(func_80A51D18) ## $t7 = 80A51D18
/* 00A20 80A51CF0 AE0F025C */ sw $t7, 0x025C($s0) ## 0000025C
/* 00A24 80A51CF4 440D3000 */ mfc1 $t5, $f6
/* 00A28 80A51CF8 00000000 */ nop
/* 00A2C 80A51CFC 25AE0032 */ addiu $t6, $t5, 0x0032 ## $t6 = 00000032
/* 00A30 80A51D00 A60E02A6 */ sh $t6, 0x02A6($s0) ## 000002A6
/* 00A34 80A51D04 8FBF002C */ lw $ra, 0x002C($sp)
/* 00A38 80A51D08 8FB00028 */ lw $s0, 0x0028($sp)
/* 00A3C 80A51D0C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00A40 80A51D10 03E00008 */ jr $ra
/* 00A44 80A51D14 00000000 */ nop

View file

@ -1,187 +0,0 @@
.rdata
glabel D_80A52B84
.asciz " %d\n"
.balign 4
glabel D_80A52B98
.asciz " %d\n"
.balign 4
glabel D_80A52BAC
.asciz " %d\n"
.balign 4
glabel D_80A52BC0
.asciz " %d\n"
.balign 4
glabel D_80A52BD4
.asciz "\n\n"
.balign 4
.text
glabel func_80A51D18
/* 00A48 80A51D18 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00A4C 80A51D1C AFB00018 */ sw $s0, 0x0018($sp)
/* 00A50 80A51D20 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00A54 80A51D24 AFBF001C */ sw $ra, 0x001C($sp)
/* 00A58 80A51D28 AFA50024 */ sw $a1, 0x0024($sp)
/* 00A5C 80A51D2C 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00A60 80A51D30 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00A64 80A51D34 3C0E80A5 */ lui $t6, %hi(D_80A527A0) ## $t6 = 80A50000
/* 00A68 80A51D38 8DCE27A0 */ lw $t6, %lo(D_80A527A0)($t6)
/* 00A6C 80A51D3C 55C00080 */ bnel $t6, $zero, .L80A51F40
/* 00A70 80A51D40 8FBF001C */ lw $ra, 0x001C($sp)
/* 00A74 80A51D44 86020264 */ lh $v0, 0x0264($s0) ## 00000264
/* 00A78 80A51D48 24030001 */ addiu $v1, $zero, 0x0001 ## $v1 = 00000001
/* 00A7C 80A51D4C 50400006 */ beql $v0, $zero, .L80A51D68
/* 00A80 80A51D50 860F0262 */ lh $t7, 0x0262($s0) ## 00000262
/* 00A84 80A51D54 50430023 */ beql $v0, $v1, .L80A51DE4
/* 00A88 80A51D58 861902A4 */ lh $t9, 0x02A4($s0) ## 000002A4
/* 00A8C 80A51D5C 10000051 */ beq $zero, $zero, .L80A51EA4
/* 00A90 80A51D60 C60002A0 */ lwc1 $f0, 0x02A0($s0) ## 000002A0
/* 00A94 80A51D64 860F0262 */ lh $t7, 0x0262($s0) ## 00000262
.L80A51D68:
/* 00A98 80A51D68 3C01C614 */ lui $at, 0xC614 ## $at = C6140000
/* 00A9C 80A51D6C 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 00AA0 80A51D70 A6180262 */ sh $t8, 0x0262($s0) ## 00000262
/* 00AA4 80A51D74 86190262 */ lh $t9, 0x0262($s0) ## 00000262
/* 00AA8 80A51D78 33280001 */ andi $t0, $t9, 0x0001 ## $t0 = 00000000
/* 00AAC 80A51D7C 51000006 */ beql $t0, $zero, .L80A51D98
/* 00AB0 80A51D80 44813000 */ mtc1 $at, $f6 ## $f6 = -9472.00
/* 00AB4 80A51D84 3C014614 */ lui $at, 0x4614 ## $at = 46140000
/* 00AB8 80A51D88 44812000 */ mtc1 $at, $f4 ## $f4 = 9472.00
/* 00ABC 80A51D8C 10000004 */ beq $zero, $zero, .L80A51DA0
/* 00AC0 80A51D90 E6040280 */ swc1 $f4, 0x0280($s0) ## 00000280
/* 00AC4 80A51D94 44813000 */ mtc1 $at, $f6 ## $f6 = 9472.00
.L80A51D98:
/* 00AC8 80A51D98 00000000 */ nop
/* 00ACC 80A51D9C E6060280 */ swc1 $f6, 0x0280($s0) ## 00000280
.L80A51DA0:
/* 00AD0 80A51DA0 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00AD4 80A51DA4 44816000 */ mtc1 $at, $f12 ## $f12 = 30.00
/* 00AD8 80A51DA8 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00ADC 80A51DAC 00000000 */ nop
/* 00AE0 80A51DB0 8609026A */ lh $t1, 0x026A($s0) ## 0000026A
/* 00AE4 80A51DB4 4600020D */ trunc.w.s $f8, $f0
/* 00AE8 80A51DB8 3C0B80A5 */ lui $t3, %hi(D_80A52844) ## $t3 = 80A50000
/* 00AEC 80A51DBC 00095040 */ sll $t2, $t1, 1
/* 00AF0 80A51DC0 016A5821 */ addu $t3, $t3, $t2
/* 00AF4 80A51DC4 856B2844 */ lh $t3, %lo(D_80A52844)($t3)
/* 00AF8 80A51DC8 440F4000 */ mfc1 $t7, $f8
/* 00AFC 80A51DCC 24030001 */ addiu $v1, $zero, 0x0001 ## $v1 = 00000001
/* 00B00 80A51DD0 A6030264 */ sh $v1, 0x0264($s0) ## 00000264
/* 00B04 80A51DD4 016FC021 */ addu $t8, $t3, $t7
/* 00B08 80A51DD8 10000031 */ beq $zero, $zero, .L80A51EA0
/* 00B0C 80A51DDC A61802A4 */ sh $t8, 0x02A4($s0) ## 000002A4
/* 00B10 80A51DE0 861902A4 */ lh $t9, 0x02A4($s0) ## 000002A4
.L80A51DE4:
/* 00B14 80A51DE4 5720002F */ bnel $t9, $zero, .L80A51EA4
/* 00B18 80A51DE8 C60002A0 */ lwc1 $f0, 0x02A0($s0) ## 000002A0
/* 00B1C 80A51DEC 860802A6 */ lh $t0, 0x02A6($s0) ## 000002A6
/* 00B20 80A51DF0 3C1880A5 */ lui $t8, %hi(func_80A5162C) ## $t8 = 80A50000
/* 00B24 80A51DF4 2718162C */ addiu $t8, $t8, %lo(func_80A5162C) ## $t8 = 80A5162C
/* 00B28 80A51DF8 55000029 */ bnel $t0, $zero, .L80A51EA0
/* 00B2C 80A51DFC A6000264 */ sh $zero, 0x0264($s0) ## 00000264
/* 00B30 80A51E00 8602026A */ lh $v0, 0x026A($s0) ## 0000026A
/* 00B34 80A51E04 50400004 */ beql $v0, $zero, .L80A51E18
/* 00B38 80A51E08 860902AA */ lh $t1, 0x02AA($s0) ## 000002AA
/* 00B3C 80A51E0C 1462000A */ bne $v1, $v0, .L80A51E38
/* 00B40 80A51E10 3C0480A5 */ lui $a0, %hi(D_80A52900) ## $a0 = 80A50000
/* 00B44 80A51E14 860902AA */ lh $t1, 0x02AA($s0) ## 000002AA
.L80A51E18:
/* 00B48 80A51E18 252A0001 */ addiu $t2, $t1, 0x0001 ## $t2 = 00000001
/* 00B4C 80A51E1C A60A02AA */ sh $t2, 0x02AA($s0) ## 000002AA
/* 00B50 80A51E20 860C02AA */ lh $t4, 0x02AA($s0) ## 000002AA
/* 00B54 80A51E24 29810004 */ slti $at, $t4, 0x0004
/* 00B58 80A51E28 1420001A */ bne $at, $zero, .L80A51E94
/* 00B5C 80A51E2C 00000000 */ nop
/* 00B60 80A51E30 10000018 */ beq $zero, $zero, .L80A51E94
/* 00B64 80A51E34 A60002AA */ sh $zero, 0x02AA($s0) ## 000002AA
.L80A51E38:
/* 00B68 80A51E38 3C0280A5 */ lui $v0, %hi(D_80A528F0) ## $v0 = 80A50000
/* 00B6C 80A51E3C 244228F0 */ addiu $v0, $v0, %lo(D_80A528F0) ## $v0 = 80A528F0
/* 00B70 80A51E40 860302AA */ lh $v1, 0x02AA($s0) ## 000002AA
/* 00B74 80A51E44 24842900 */ addiu $a0, $a0, %lo(D_80A52900) ## $a0 = 80A52900
/* 00B78 80A51E48 844D0000 */ lh $t5, 0x0000($v0) ## 80A528F0
.L80A51E4C:
/* 00B7C 80A51E4C 146D000B */ bne $v1, $t5, .L80A51E7C
/* 00B80 80A51E50 3C0E80A5 */ lui $t6, %hi(D_80A52900) ## $t6 = 80A50000
/* 00B84 80A51E54 24420002 */ addiu $v0, $v0, 0x0002 ## $v0 = 80A528F2
/* 00B88 80A51E58 25CE2900 */ addiu $t6, $t6, %lo(D_80A52900) ## $t6 = 80A52900
/* 00B8C 80A51E5C 004E082B */ sltu $at, $v0, $t6
/* 00B90 80A51E60 54200004 */ bnel $at, $zero, .L80A51E74
/* 00B94 80A51E64 844B0000 */ lh $t3, 0x0000($v0) ## 80A528F2
/* 00B98 80A51E68 3C0280A5 */ lui $v0, %hi(D_80A528F0) ## $v0 = 80A50000
/* 00B9C 80A51E6C 244228F0 */ addiu $v0, $v0, %lo(D_80A528F0) ## $v0 = 80A528F0
/* 00BA0 80A51E70 844B0000 */ lh $t3, 0x0000($v0) ## 80A528F0
.L80A51E74:
/* 00BA4 80A51E74 10000005 */ beq $zero, $zero, .L80A51E8C
/* 00BA8 80A51E78 A60B02AA */ sh $t3, 0x02AA($s0) ## 000002AA
.L80A51E7C:
/* 00BAC 80A51E7C 24420002 */ addiu $v0, $v0, 0x0002 ## $v0 = 80A528F2
/* 00BB0 80A51E80 0044082B */ sltu $at, $v0, $a0
/* 00BB4 80A51E84 5420FFF1 */ bnel $at, $zero, .L80A51E4C
/* 00BB8 80A51E88 844D0000 */ lh $t5, 0x0000($v0) ## 80A528F2
.L80A51E8C:
/* 00BBC 80A51E8C 240F0005 */ addiu $t7, $zero, 0x0005 ## $t7 = 00000005
/* 00BC0 80A51E90 A60F0270 */ sh $t7, 0x0270($s0) ## 00000270
.L80A51E94:
/* 00BC4 80A51E94 10000002 */ beq $zero, $zero, .L80A51EA0
/* 00BC8 80A51E98 AE18025C */ sw $t8, 0x025C($s0) ## 0000025C
/* 00BCC 80A51E9C A6000264 */ sh $zero, 0x0264($s0) ## 00000264
.L80A51EA0:
/* 00BD0 80A51EA0 C60002A0 */ lwc1 $f0, 0x02A0($s0) ## 000002A0
.L80A51EA4:
/* 00BD4 80A51EA4 2604027C */ addiu $a0, $s0, 0x027C ## $a0 = 0000027C
/* 00BD8 80A51EA8 8E050280 */ lw $a1, 0x0280($s0) ## 00000280
/* 00BDC 80A51EAC 46000280 */ add.s $f10, $f0, $f0
/* 00BE0 80A51EB0 8E06029C */ lw $a2, 0x029C($s0) ## 0000029C
/* 00BE4 80A51EB4 44075000 */ mfc1 $a3, $f10
/* 00BE8 80A51EB8 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00BEC 80A51EBC 00000000 */ nop
/* 00BF0 80A51EC0 3C028016 */ lui $v0, %hi(gGameInfo)
/* 00BF4 80A51EC4 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 00BF8 80A51EC8 8605026C */ lh $a1, 0x026C($s0) ## 0000026C
/* 00BFC 80A51ECC 845912D6 */ lh $t9, 0x12D6($v0) ## 801612D6
/* 00C00 80A51ED0 54B9001B */ bnel $a1, $t9, .L80A51F40
/* 00C04 80A51ED4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00C08 80A51ED8 844812D4 */ lh $t0, 0x12D4($v0) ## 801612D4
/* 00C0C 80A51EDC 3C0480A5 */ lui $a0, %hi(D_80A52B84) ## $a0 = 80A50000
/* 00C10 80A51EE0 51000017 */ beql $t0, $zero, .L80A51F40
/* 00C14 80A51EE4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00C18 80A51EE8 0C00084C */ jal osSyncPrintf
/* 00C1C 80A51EEC 24842B84 */ addiu $a0, $a0, %lo(D_80A52B84) ## $a0 = 80A52B84
/* 00C20 80A51EF0 3C0480A5 */ lui $a0, %hi(D_80A52B98) ## $a0 = 80A50000
/* 00C24 80A51EF4 24842B98 */ addiu $a0, $a0, %lo(D_80A52B98) ## $a0 = 80A52B98
/* 00C28 80A51EF8 0C00084C */ jal osSyncPrintf
/* 00C2C 80A51EFC 860502AA */ lh $a1, 0x02AA($s0) ## 000002AA
/* 00C30 80A51F00 C6100278 */ lwc1 $f16, 0x0278($s0) ## 00000278
/* 00C34 80A51F04 3C0480A5 */ lui $a0, %hi(D_80A52BAC) ## $a0 = 80A50000
/* 00C38 80A51F08 24842BAC */ addiu $a0, $a0, %lo(D_80A52BAC) ## $a0 = 80A52BAC
/* 00C3C 80A51F0C 460084A1 */ cvt.d.s $f18, $f16
/* 00C40 80A51F10 44079000 */ mfc1 $a3, $f18
/* 00C44 80A51F14 44069800 */ mfc1 $a2, $f19
/* 00C48 80A51F18 0C00084C */ jal osSyncPrintf
/* 00C4C 80A51F1C 00000000 */ nop
/* 00C50 80A51F20 3C0480A5 */ lui $a0, %hi(D_80A52BC0) ## $a0 = 80A50000
/* 00C54 80A51F24 24842BC0 */ addiu $a0, $a0, %lo(D_80A52BC0) ## $a0 = 80A52BC0
/* 00C58 80A51F28 0C00084C */ jal osSyncPrintf
/* 00C5C 80A51F2C 86050270 */ lh $a1, 0x0270($s0) ## 00000270
/* 00C60 80A51F30 3C0480A5 */ lui $a0, %hi(D_80A52BD4) ## $a0 = 80A50000
/* 00C64 80A51F34 0C00084C */ jal osSyncPrintf
/* 00C68 80A51F38 24842BD4 */ addiu $a0, $a0, %lo(D_80A52BD4) ## $a0 = 80A52BD4
/* 00C6C 80A51F3C 8FBF001C */ lw $ra, 0x001C($sp)
.L80A51F40:
/* 00C70 80A51F40 8FB00018 */ lw $s0, 0x0018($sp)
/* 00C74 80A51F44 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00C78 80A51F48 03E00008 */ jr $ra
/* 00C7C 80A51F4C 00000000 */ nop

View file

@ -1,42 +0,0 @@
glabel func_80A51F50
/* 00C80 80A51F50 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00C84 80A51F54 AFA40028 */ sw $a0, 0x0028($sp)
/* 00C88 80A51F58 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00C8C 80A51F5C 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00C90 80A51F60 AFA5002C */ sw $a1, 0x002C($sp)
/* 00C94 80A51F64 0C028800 */ jal SkelAnime_GetFrameCount
/* 00C98 80A51F68 24845C30 */ addiu $a0, $a0, 0x5C30 ## $a0 = 06005C30
/* 00C9C 80A51F6C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00CA0 80A51F70 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 00CA4 80A51F74 44819000 */ mtc1 $at, $f18 ## $f18 = -10.00
/* 00CA8 80A51F78 468021A0 */ cvt.s.w $f6, $f4
/* 00CAC 80A51F7C 8FA40028 */ lw $a0, 0x0028($sp)
/* 00CB0 80A51F80 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00CB4 80A51F84 24A55C30 */ addiu $a1, $a1, 0x5C30 ## $a1 = 06005C30
/* 00CB8 80A51F88 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00CBC 80A51F8C 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00CC0 80A51F90 4600320D */ trunc.w.s $f8, $f6
/* 00CC4 80A51F94 AFA00014 */ sw $zero, 0x0014($sp)
/* 00CC8 80A51F98 E7B20018 */ swc1 $f18, 0x0018($sp)
/* 00CCC 80A51F9C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00CD0 80A51FA0 440F4000 */ mfc1 $t7, $f8
/* 00CD4 80A51FA4 00000000 */ nop
/* 00CD8 80A51FA8 000FC400 */ sll $t8, $t7, 16
/* 00CDC 80A51FAC 0018CC03 */ sra $t9, $t8, 16
/* 00CE0 80A51FB0 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 00CE4 80A51FB4 00000000 */ nop
/* 00CE8 80A51FB8 46805420 */ cvt.s.w $f16, $f10
/* 00CEC 80A51FBC 0C029468 */ jal SkelAnime_ChangeAnim
/* 00CF0 80A51FC0 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 00CF4 80A51FC4 8FA20028 */ lw $v0, 0x0028($sp)
/* 00CF8 80A51FC8 3C0980A5 */ lui $t1, %hi(func_80A51FEC) ## $t1 = 80A50000
/* 00CFC 80A51FCC 2408001E */ addiu $t0, $zero, 0x001E ## $t0 = 0000001E
/* 00D00 80A51FD0 25291FEC */ addiu $t1, $t1, %lo(func_80A51FEC) ## $t1 = 80A51FEC
/* 00D04 80A51FD4 A44802A8 */ sh $t0, 0x02A8($v0) ## 000002A8
/* 00D08 80A51FD8 AC49025C */ sw $t1, 0x025C($v0) ## 0000025C
/* 00D0C 80A51FDC 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00D10 80A51FE0 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00D14 80A51FE4 03E00008 */ jr $ra
/* 00D18 80A51FE8 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_80A51FEC
/* 00D1C 80A51FEC 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00D20 80A51FF0 AFB00020 */ sw $s0, 0x0020($sp)
/* 00D24 80A51FF4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00D28 80A51FF8 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00D2C 80A51FFC AFA5002C */ sw $a1, 0x002C($sp)
/* 00D30 80A52000 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00D34 80A52004 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00D38 80A52008 860E026A */ lh $t6, 0x026A($s0) ## 0000026A
/* 00D3C 80A5200C 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00D40 80A52010 51C10017 */ beql $t6, $at, .L80A52070
/* 00D44 80A52014 861802A8 */ lh $t8, 0x02A8($s0) ## 000002A8
/* 00D48 80A52018 C6040278 */ lwc1 $f4, 0x0278($s0) ## 00000278
/* 00D4C 80A5201C 8605008A */ lh $a1, 0x008A($s0) ## 0000008A
/* 00D50 80A52020 AFA00010 */ sw $zero, 0x0010($sp)
/* 00D54 80A52024 4600218D */ trunc.w.s $f6, $f4
/* 00D58 80A52028 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
/* 00D5C 80A5202C 24060003 */ addiu $a2, $zero, 0x0003 ## $a2 = 00000003
/* 00D60 80A52030 44073000 */ mfc1 $a3, $f6
/* 00D64 80A52034 00000000 */ nop
/* 00D68 80A52038 00073C00 */ sll $a3, $a3, 16
/* 00D6C 80A5203C 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 00D70 80A52040 00073C03 */ sra $a3, $a3, 16
/* 00D74 80A52044 3C05453B */ lui $a1, 0x453B ## $a1 = 453B0000
/* 00D78 80A52048 34A58000 */ ori $a1, $a1, 0x8000 ## $a1 = 453B8000
/* 00D7C 80A5204C 26040278 */ addiu $a0, $s0, 0x0278 ## $a0 = 00000278
/* 00D80 80A52050 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00D84 80A52054 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00D88 80A52058 3C074396 */ lui $a3, 0x4396 ## $a3 = 43960000
/* 00D8C 80A5205C 2604027C */ addiu $a0, $s0, 0x027C ## $a0 = 0000027C
/* 00D90 80A52060 3C053F00 */ lui $a1, 0x3F00 ## $a1 = 3F000000
/* 00D94 80A52064 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 00D98 80A52068 3C0644FA */ lui $a2, 0x44FA ## $a2 = 44FA0000
/* 00D9C 80A5206C 861802A8 */ lh $t8, 0x02A8($s0) ## 000002A8
.L80A52070:
/* 00DA0 80A52070 3C1980A5 */ lui $t9, %hi(func_80A52098) ## $t9 = 80A50000
/* 00DA4 80A52074 27392098 */ addiu $t9, $t9, %lo(func_80A52098) ## $t9 = 80A52098
/* 00DA8 80A52078 57000003 */ bnel $t8, $zero, .L80A52088
/* 00DAC 80A5207C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00DB0 80A52080 AE19025C */ sw $t9, 0x025C($s0) ## 0000025C
/* 00DB4 80A52084 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A52088:
/* 00DB8 80A52088 8FB00020 */ lw $s0, 0x0020($sp)
/* 00DBC 80A5208C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00DC0 80A52090 03E00008 */ jr $ra
/* 00DC4 80A52094 00000000 */ nop

View file

@ -1,40 +0,0 @@
glabel func_80A52098
/* 00DC8 80A52098 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00DCC 80A5209C AFA40028 */ sw $a0, 0x0028($sp)
/* 00DD0 80A520A0 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00DD4 80A520A4 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00DD8 80A520A8 AFA5002C */ sw $a1, 0x002C($sp)
/* 00DDC 80A520AC 0C028800 */ jal SkelAnime_GetFrameCount
/* 00DE0 80A520B0 24845C30 */ addiu $a0, $a0, 0x5C30 ## $a0 = 06005C30
/* 00DE4 80A520B4 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00DE8 80A520B8 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 00DEC 80A520BC 44819000 */ mtc1 $at, $f18 ## $f18 = -10.00
/* 00DF0 80A520C0 468021A0 */ cvt.s.w $f6, $f4
/* 00DF4 80A520C4 8FA40028 */ lw $a0, 0x0028($sp)
/* 00DF8 80A520C8 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00DFC 80A520CC 24A55C30 */ addiu $a1, $a1, 0x5C30 ## $a1 = 06005C30
/* 00E00 80A520D0 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00E04 80A520D4 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00E08 80A520D8 4600320D */ trunc.w.s $f8, $f6
/* 00E0C 80A520DC AFA00014 */ sw $zero, 0x0014($sp)
/* 00E10 80A520E0 E7B20018 */ swc1 $f18, 0x0018($sp)
/* 00E14 80A520E4 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00E18 80A520E8 440F4000 */ mfc1 $t7, $f8
/* 00E1C 80A520EC 00000000 */ nop
/* 00E20 80A520F0 000FC400 */ sll $t8, $t7, 16
/* 00E24 80A520F4 0018CC03 */ sra $t9, $t8, 16
/* 00E28 80A520F8 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 00E2C 80A520FC 00000000 */ nop
/* 00E30 80A52100 46805420 */ cvt.s.w $f16, $f10
/* 00E34 80A52104 0C029468 */ jal SkelAnime_ChangeAnim
/* 00E38 80A52108 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 00E3C 80A5210C 8FA90028 */ lw $t1, 0x0028($sp)
/* 00E40 80A52110 3C0880A5 */ lui $t0, %hi(func_80A5212C) ## $t0 = 80A50000
/* 00E44 80A52114 2508212C */ addiu $t0, $t0, %lo(func_80A5212C) ## $t0 = 80A5212C
/* 00E48 80A52118 AD28025C */ sw $t0, 0x025C($t1) ## 0000025C
/* 00E4C 80A5211C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00E50 80A52120 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00E54 80A52124 03E00008 */ jr $ra
/* 00E58 80A52128 00000000 */ nop

View file

@ -1,56 +0,0 @@
glabel func_80A5212C
/* 00E5C 80A5212C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00E60 80A52130 AFBF001C */ sw $ra, 0x001C($sp)
/* 00E64 80A52134 AFB00018 */ sw $s0, 0x0018($sp)
/* 00E68 80A52138 AFA40020 */ sw $a0, 0x0020($sp)
/* 00E6C 80A5213C 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00E70 80A52140 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00E74 80A52144 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00E78 80A52148 8FAE0020 */ lw $t6, 0x0020($sp)
/* 00E7C 80A5214C 85CF0268 */ lh $t7, 0x0268($t6) ## 00000268
/* 00E80 80A52150 55E00026 */ bnel $t7, $zero, .L80A521EC
/* 00E84 80A52154 8FBF001C */ lw $ra, 0x001C($sp)
/* 00E88 80A52158 0C042F6F */ jal func_8010BDBC
/* 00E8C 80A5215C 260420D8 */ addiu $a0, $s0, 0x20D8 ## $a0 = 000020D8
/* 00E90 80A52160 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00E94 80A52164 54410021 */ bnel $v0, $at, .L80A521EC
/* 00E98 80A52168 8FBF001C */ lw $ra, 0x001C($sp)
/* 00E9C 80A5216C 0C041AF2 */ jal func_80106BC8
/* 00EA0 80A52170 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00EA4 80A52174 5040001D */ beql $v0, $zero, .L80A521EC
/* 00EA8 80A52178 8FBF001C */ lw $ra, 0x001C($sp)
/* 00EAC 80A5217C 0C041B33 */ jal func_80106CCC
/* 00EB0 80A52180 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00EB4 80A52184 8FA40020 */ lw $a0, 0x0020($sp)
/* 00EB8 80A52188 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00EBC 80A5218C 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00EC0 80A52190 84980268 */ lh $t8, 0x0268($a0) ## 00000268
/* 00EC4 80A52194 2403002E */ addiu $v1, $zero, 0x002E ## $v1 = 0000002E
/* 00EC8 80A52198 240904FA */ addiu $t1, $zero, 0x04FA ## $t1 = 000004FA
/* 00ECC 80A5219C 17000012 */ bne $t8, $zero, .L80A521E8
/* 00ED0 80A521A0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00ED4 80A521A4 94590EDC */ lhu $t9, 0x0EDC($v0) ## 8015F53C
/* 00ED8 80A521A8 00300821 */ addu $at, $at, $s0
/* 00EDC 80A521AC 240A0014 */ addiu $t2, $zero, 0x0014 ## $t2 = 00000014
/* 00EE0 80A521B0 37284000 */ ori $t0, $t9, 0x4000 ## $t0 = 00004000
/* 00EE4 80A521B4 A4480EDC */ sh $t0, 0x0EDC($v0) ## 8015F53C
/* 00EE8 80A521B8 A4291E1A */ sh $t1, 0x1E1A($at) ## 00011E1A
/* 00EEC 80A521BC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00EF0 80A521C0 00300821 */ addu $at, $at, $s0
/* 00EF4 80A521C4 A02A1E15 */ sb $t2, 0x1E15($at) ## 00011E15
/* 00EF8 80A521C8 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 00EFC 80A521CC A48B0268 */ sh $t3, 0x0268($a0) ## 00000268
/* 00F00 80A521D0 3C0180A5 */ lui $at, %hi(D_80A527A0) ## $at = 80A50000
/* 00F04 80A521D4 AC2027A0 */ sw $zero, %lo(D_80A527A0)($at)
/* 00F08 80A521D8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00F0C 80A521DC 00300821 */ addu $at, $at, $s0
/* 00F10 80A521E0 A0231E5E */ sb $v1, 0x1E5E($at) ## 00011E5E
/* 00F14 80A521E4 A043141D */ sb $v1, 0x141D($v0) ## 8015FA7D
.L80A521E8:
/* 00F18 80A521E8 8FBF001C */ lw $ra, 0x001C($sp)
.L80A521EC:
/* 00F1C 80A521EC 8FB00018 */ lw $s0, 0x0018($sp)
/* 00F20 80A521F0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00F24 80A521F4 03E00008 */ jr $ra
/* 00F28 80A521F8 00000000 */ nop

View file

@ -1,40 +0,0 @@
glabel func_80A521FC
/* 00F2C 80A521FC 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00F30 80A52200 AFA40028 */ sw $a0, 0x0028($sp)
/* 00F34 80A52204 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00F38 80A52208 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00F3C 80A5220C AFA5002C */ sw $a1, 0x002C($sp)
/* 00F40 80A52210 0C028800 */ jal SkelAnime_GetFrameCount
/* 00F44 80A52214 24845C30 */ addiu $a0, $a0, 0x5C30 ## $a0 = 06005C30
/* 00F48 80A52218 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00F4C 80A5221C 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 00F50 80A52220 44819000 */ mtc1 $at, $f18 ## $f18 = -10.00
/* 00F54 80A52224 468021A0 */ cvt.s.w $f6, $f4
/* 00F58 80A52228 8FA40028 */ lw $a0, 0x0028($sp)
/* 00F5C 80A5222C 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00F60 80A52230 24A55C30 */ addiu $a1, $a1, 0x5C30 ## $a1 = 06005C30
/* 00F64 80A52234 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00F68 80A52238 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00F6C 80A5223C 4600320D */ trunc.w.s $f8, $f6
/* 00F70 80A52240 AFA00014 */ sw $zero, 0x0014($sp)
/* 00F74 80A52244 E7B20018 */ swc1 $f18, 0x0018($sp)
/* 00F78 80A52248 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00F7C 80A5224C 440F4000 */ mfc1 $t7, $f8
/* 00F80 80A52250 00000000 */ nop
/* 00F84 80A52254 000FC400 */ sll $t8, $t7, 16
/* 00F88 80A52258 0018CC03 */ sra $t9, $t8, 16
/* 00F8C 80A5225C 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 00F90 80A52260 00000000 */ nop
/* 00F94 80A52264 46805420 */ cvt.s.w $f16, $f10
/* 00F98 80A52268 0C029468 */ jal SkelAnime_ChangeAnim
/* 00F9C 80A5226C E7B00010 */ swc1 $f16, 0x0010($sp)
/* 00FA0 80A52270 8FA90028 */ lw $t1, 0x0028($sp)
/* 00FA4 80A52274 3C0880A5 */ lui $t0, %hi(func_80A52290) ## $t0 = 80A50000
/* 00FA8 80A52278 25082290 */ addiu $t0, $t0, %lo(func_80A52290) ## $t0 = 80A52290
/* 00FAC 80A5227C AD28025C */ sw $t0, 0x025C($t1) ## 0000025C
/* 00FB0 80A52280 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00FB4 80A52284 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00FB8 80A52288 03E00008 */ jr $ra
/* 00FBC 80A5228C 00000000 */ nop

View file

@ -1,45 +0,0 @@
.rdata
glabel D_80A52BD8
.asciz " \n"
.balign 4
.text
glabel func_80A52290
/* 00FC0 80A52290 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00FC4 80A52294 AFB00018 */ sw $s0, 0x0018($sp)
/* 00FC8 80A52298 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00FCC 80A5229C AFBF001C */ sw $ra, 0x001C($sp)
/* 00FD0 80A522A0 AFA50024 */ sw $a1, 0x0024($sp)
/* 00FD4 80A522A4 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00FD8 80A522A8 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00FDC 80A522AC 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00FE0 80A522B0 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00
/* 00FE4 80A522B4 C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090
/* 00FE8 80A522B8 8FA40024 */ lw $a0, 0x0024($sp)
/* 00FEC 80A522BC 2405702D */ addiu $a1, $zero, 0x702D ## $a1 = 0000702D
/* 00FF0 80A522C0 4606203C */ c.lt.s $f4, $f6
/* 00FF4 80A522C4 00000000 */ nop
/* 00FF8 80A522C8 45020010 */ bc1fl .L80A5230C
/* 00FFC 80A522CC 8FBF001C */ lw $ra, 0x001C($sp)
/* 01000 80A522D0 0C042DA0 */ jal func_8010B680
/* 01004 80A522D4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 01008 80A522D8 0C01E221 */ jal func_80078884
/* 0100C 80A522DC 2404482C */ addiu $a0, $zero, 0x482C ## $a0 = 0000482C
/* 01010 80A522E0 3C0480A5 */ lui $a0, %hi(D_80A52BD8) ## $a0 = 80A50000
/* 01014 80A522E4 0C00084C */ jal osSyncPrintf
/* 01018 80A522E8 24842BD8 */ addiu $a0, $a0, %lo(D_80A52BD8) ## $a0 = 80A52BD8
/* 0101C 80A522EC 8FA40024 */ lw $a0, 0x0024($sp)
/* 01020 80A522F0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 01024 80A522F4 0C00B7D5 */ jal func_8002DF54
/* 01028 80A522F8 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
/* 0102C 80A522FC 3C0E80A5 */ lui $t6, %hi(func_80A52098) ## $t6 = 80A50000
/* 01030 80A52300 25CE2098 */ addiu $t6, $t6, %lo(func_80A52098) ## $t6 = 80A52098
/* 01034 80A52304 AE0E025C */ sw $t6, 0x025C($s0) ## 0000025C
/* 01038 80A52308 8FBF001C */ lw $ra, 0x001C($sp)
.L80A5230C:
/* 0103C 80A5230C 8FB00018 */ lw $s0, 0x0018($sp)
/* 01040 80A52310 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 01044 80A52314 03E00008 */ jr $ra
/* 01048 80A52318 00000000 */ nop

View file

@ -1,18 +0,0 @@
glabel func_80A5263C
/* 0136C 80A5263C 24010010 */ addiu $at, $zero, 0x0010 ## $at = 00000010
/* 01370 80A52640 AFA40000 */ sw $a0, 0x0000($sp)
/* 01374 80A52644 AFA60008 */ sw $a2, 0x0008($sp)
/* 01378 80A52648 14A1000A */ bne $a1, $at, .L80A52674
/* 0137C 80A5264C AFA7000C */ sw $a3, 0x000C($sp)
/* 01380 80A52650 8FAF0014 */ lw $t7, 0x0014($sp)
/* 01384 80A52654 8FA20010 */ lw $v0, 0x0010($sp)
/* 01388 80A52658 C5E4027C */ lwc1 $f4, 0x027C($t7) ## 0000027C
/* 0138C 80A5265C 844E0000 */ lh $t6, 0x0000($v0) ## 00000000
/* 01390 80A52660 4600218D */ trunc.w.s $f6, $f4
/* 01394 80A52664 44093000 */ mfc1 $t1, $f6
/* 01398 80A52668 00000000 */ nop
/* 0139C 80A5266C 01C95021 */ addu $t2, $t6, $t1
/* 013A0 80A52670 A44A0000 */ sh $t2, 0x0000($v0) ## 00000000
.L80A52674:
/* 013A4 80A52674 03E00008 */ jr $ra
/* 013A8 80A52678 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000

View file

@ -1,32 +0,0 @@
glabel func_809AC130
/* 00000 809AC130 AFA40000 */ sw $a0, 0x0000($sp)
/* 00004 809AC134 AFA50004 */ sw $a1, 0x0004($sp)
/* 00008 809AC138 8CEF0000 */ lw $t7, 0x0000($a3) ## 00000000
/* 0000C 809AC13C 3C0A809B */ lui $t2, %hi(func_809AC1AC) ## $t2 = 809B0000
/* 00010 809AC140 254AC1AC */ addiu $t2, $t2, %lo(func_809AC1AC) ## $t2 = 809AC1AC
/* 00014 809AC144 ACCF0000 */ sw $t7, 0x0000($a2) ## 00000000
/* 00018 809AC148 8CEE0004 */ lw $t6, 0x0004($a3) ## 00000004
/* 0001C 809AC14C 240B0064 */ addiu $t3, $zero, 0x0064 ## $t3 = 00000064
/* 00020 809AC150 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00024 809AC154 ACCE0004 */ sw $t6, 0x0004($a2) ## 00000004
/* 00028 809AC158 8CEF0008 */ lw $t7, 0x0008($a3) ## 00000008
/* 0002C 809AC15C ACCF0008 */ sw $t7, 0x0008($a2) ## 00000008
/* 00030 809AC160 8CF9000C */ lw $t9, 0x000C($a3) ## 0000000C
/* 00034 809AC164 ACD9000C */ sw $t9, 0x000C($a2) ## 0000000C
/* 00038 809AC168 8CF80010 */ lw $t8, 0x0010($a3) ## 00000010
/* 0003C 809AC16C ACD80010 */ sw $t8, 0x0010($a2) ## 00000010
/* 00040 809AC170 8CF90014 */ lw $t9, 0x0014($a3) ## 00000014
/* 00044 809AC174 ACD90014 */ sw $t9, 0x0014($a2) ## 00000014
/* 00048 809AC178 8CE90018 */ lw $t1, 0x0018($a3) ## 00000018
/* 0004C 809AC17C ACC90018 */ sw $t1, 0x0018($a2) ## 00000018
/* 00050 809AC180 8CE8001C */ lw $t0, 0x001C($a3) ## 0000001C
/* 00054 809AC184 ACC8001C */ sw $t0, 0x001C($a2) ## 0000001C
/* 00058 809AC188 8CE90020 */ lw $t1, 0x0020($a3) ## 00000020
/* 0005C 809AC18C ACCA0024 */ sw $t2, 0x0024($a2) ## 00000024
/* 00060 809AC190 A4CB005C */ sh $t3, 0x005C($a2) ## 0000005C
/* 00064 809AC194 ACC90020 */ sw $t1, 0x0020($a2) ## 00000020
/* 00068 809AC198 84EC0024 */ lh $t4, 0x0024($a3) ## 00000024
/* 0006C 809AC19C A4CC0042 */ sh $t4, 0x0042($a2) ## 00000042
/* 00070 809AC1A0 8CED0028 */ lw $t5, 0x0028($a3) ## 00000028
/* 00074 809AC1A4 03E00008 */ jr $ra
/* 00078 809AC1A8 ACCD003C */ sw $t5, 0x003C($a2) ## 0000003C

View file

@ -1,61 +0,0 @@
glabel func_809AC1AC
/* 0007C 809AC1AC 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00080 809AC1B0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00084 809AC1B4 AFA40030 */ sw $a0, 0x0030($sp)
/* 00088 809AC1B8 AFA50034 */ sw $a1, 0x0034($sp)
/* 0008C 809AC1BC 8CCF003C */ lw $t7, 0x003C($a2) ## 0000003C
/* 00090 809AC1C0 8C821C44 */ lw $v0, 0x1C44($a0) ## 00001C44
/* 00094 809AC1C4 00C03825 */ or $a3, $a2, $zero ## $a3 = 00000000
/* 00098 809AC1C8 AFAF001C */ sw $t7, 0x001C($sp)
/* 0009C 809AC1CC C4C60000 */ lwc1 $f6, 0x0000($a2) ## 00000000
/* 000A0 809AC1D0 C4CA0004 */ lwc1 $f10, 0x0004($a2) ## 00000004
/* 000A4 809AC1D4 C4D20008 */ lwc1 $f18, 0x0008($a2) ## 00000008
/* 000A8 809AC1D8 C4440024 */ lwc1 $f4, 0x0024($v0) ## 00000024
/* 000AC 809AC1DC C4480028 */ lwc1 $f8, 0x0028($v0) ## 00000028
/* 000B0 809AC1E0 C450002C */ lwc1 $f16, 0x002C($v0) ## 0000002C
/* 000B4 809AC1E4 46062081 */ sub.s $f2, $f4, $f6
/* 000B8 809AC1E8 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000
/* 000BC 809AC1EC 3C0641F0 */ lui $a2, 0x41F0 ## $a2 = 41F00000
/* 000C0 809AC1F0 460A4301 */ sub.s $f12, $f8, $f10
/* 000C4 809AC1F4 E7A20028 */ swc1 $f2, 0x0028($sp)
/* 000C8 809AC1F8 AFA70038 */ sw $a3, 0x0038($sp)
/* 000CC 809AC1FC 46128381 */ sub.s $f14, $f16, $f18
/* 000D0 809AC200 E7AC0024 */ swc1 $f12, 0x0024($sp)
/* 000D4 809AC204 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0
/* 000D8 809AC208 0C00F8C3 */ jal func_8003E30C
/* 000DC 809AC20C E7AE0020 */ swc1 $f14, 0x0020($sp)
/* 000E0 809AC210 8FA70038 */ lw $a3, 0x0038($sp)
/* 000E4 809AC214 C7A20028 */ lwc1 $f2, 0x0028($sp)
/* 000E8 809AC218 C7AC0024 */ lwc1 $f12, 0x0024($sp)
/* 000EC 809AC21C 14400011 */ bne $v0, $zero, .L809AC264
/* 000F0 809AC220 C7AE0020 */ lwc1 $f14, 0x0020($sp)
/* 000F4 809AC224 46021102 */ mul.s $f4, $f2, $f2
/* 000F8 809AC228 3C01428C */ lui $at, 0x428C ## $at = 428C0000
/* 000FC 809AC22C 44818000 */ mtc1 $at, $f16 ## $f16 = 70.00
/* 00100 809AC230 460C6182 */ mul.s $f6, $f12, $f12
/* 00104 809AC234 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00108 809AC238 8FB9001C */ lw $t9, 0x001C($sp)
/* 0010C 809AC23C 460E7282 */ mul.s $f10, $f14, $f14
/* 00110 809AC240 46062200 */ add.s $f8, $f4, $f6
/* 00114 809AC244 460A4000 */ add.s $f0, $f8, $f10
/* 00118 809AC248 46000004 */ sqrt.s $f0, $f0
/* 0011C 809AC24C 4610003C */ c.lt.s $f0, $f16
/* 00120 809AC250 00000000 */ nop
/* 00124 809AC254 4502000A */ bc1fl .L809AC280
/* 00128 809AC258 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0012C 809AC25C 10000007 */ beq $zero, $zero, .L809AC27C
/* 00130 809AC260 A7380000 */ sh $t8, 0x0000($t9) ## 00000000
.L809AC264:
/* 00134 809AC264 84E8005C */ lh $t0, 0x005C($a3) ## 0000005C
/* 00138 809AC268 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
/* 0013C 809AC26C 29010002 */ slti $at, $t0, 0x0002
/* 00140 809AC270 54200003 */ bnel $at, $zero, .L809AC280
/* 00144 809AC274 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00148 809AC278 A4E9005C */ sh $t1, 0x005C($a3) ## 0000005C
.L809AC27C:
/* 0014C 809AC27C 8FBF0014 */ lw $ra, 0x0014($sp)
.L809AC280:
/* 00150 809AC280 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00154 809AC284 03E00008 */ jr $ra
/* 00158 809AC288 00000000 */ nop
/* 0015C 809AC28C 00000000 */ nop

View file

@ -1,36 +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 purpose registers
.section .data
.balign 16
glabel D_80A527A0
.word 0x00000000
glabel En_Heishi1_InitVars
.word 0x00000400, 0x00000010, 0x00970000, 0x000002AC
.word EnHeishi1_Init
.word EnHeishi1_Destroy
.word EnHeishi1_Update
.word EnHeishi1_Draw
glabel D_80A527C4
.word 0x3F800000, 0xC1200000, 0x40400000, 0x3F000000, 0x447A0000, 0x43480000, 0x3E99999A, 0x447A0000, 0x40400000, 0xC0400000, 0x40C00000, 0x3F4CCCCD, 0x44FA0000, 0x43C80000, 0x3F000000, 0x44FA0000, 0x3F800000, 0xC1200000, 0x40400000, 0x3F000000, 0x447A0000, 0x43480000, 0x3E99999A, 0x447A0000, 0x40400000, 0xC0400000, 0x40C00000, 0x3F4CCCCD, 0x44FA0000, 0x43C80000, 0x3F000000, 0x44FA0000
glabel D_80A52844
.word 0x0014000A, 0x0014000A, 0x000D0000
glabel D_80A52850
.word 0x00000000, 0x00000000, 0x42B40000, 0xC25C0000, 0x00000000, 0x42B40000, 0xC25C0000, 0x00000000, 0x41F00000, 0xC25C0000, 0x00000000, 0xC1F00000, 0x00000000, 0x00000000, 0xC1F00000, 0x425C0000, 0x00000000, 0xC1F00000, 0x425C0000, 0x00000000, 0x41F00000, 0x425C0000, 0x00000000, 0x42B40000
glabel D_80A528B0
.word 0x00000007, 0x00000007, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000003, 0x00000003, 0x00000004, 0x00000004, 0x00000005, 0x00000006, 0x00000004, 0x00000004, 0x00000005, 0x00000006
glabel D_80A528F0
.word 0x00000004, 0x00010005, 0x00020006, 0x00030007
glabel D_80A52900
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80A5290C
.word 0x00000000, 0x00000000, 0x41A00000
glabel D_80A52918
.word 0x3E99999A, 0x3E99999A, 0x3E99999A, 0x00000000, 0x00000000, 0x00000000

View file

@ -1,13 +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 purpose registers
.section .rodata
.balign 16
glabel D_80A52C50
.incbin "baserom/ovl_En_Heishi1", 0x1980, 0x00000250

View file

@ -1,16 +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 purpose registers
.section .data
.balign 16
glabel Effect_Ss_Solder_Srch_Ball_InitVars
.word 0x00000018
.word func_809AC130
.word 0x00000000, 0x00000000

View file

@ -1,13 +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 purpose registers
.section .rodata
.balign 16
glabel D_809AC2A0
.incbin "baserom/ovl_Effect_Ss_Solder_Srch_Ball", 0x170, 0x00000030

0
first_diff.py Normal file → Executable file
View file

View file

@ -261,10 +261,11 @@ void func_80029CA4(GlobalContext* globalCtx, s32 a, Vec3f* pos);
// ? func_80029CF0(?);
// ? func_80029D5C(?);
// ? func_80029DBC(?);
// ? func_80029E24(?);
void func_80029E8C(GlobalContext* globalCtx, Vec3f* burstDepthY, Vec3f* burstDepthX, Vec3f* burstOrigin,
s16 gravityInfluence, s16 u0, s16 rotSpeed, s16 burstVel, u8 u1, s16 scale, u8 u2, s16 jitter,
s32 duration, s16 u3, s16 objectId, u32 dList);
void EffectSsSolderSrchBall_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 arg4,
s16* linkDetected);
// ? func_80029F44(?);
// ? func_80029FAC(?);
// ? func_8002A140(?);
@ -536,6 +537,7 @@ s32 func_8003DF10(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u3
// ? func_8003E0FC(?);
// ? func_8003E188(?);
// ? func_8003E214(?);
s32 func_8003E30C(CollisionContext* colCtx, Vec3f* center, f32 radius);
// ? func_8003E398(?);
// ? func_8003E3AC(?);
// ? func_8003E4DC(?);
@ -2525,7 +2527,7 @@ void func_80106CCC(GlobalContext*);
// ? func_80109968(?);
// ? func_80109B3C(?);
// ? func_8010B0C0(?);
void func_8010B680(GlobalContext*, u16, s32);
void func_8010B680(GlobalContext*, u16 textID, Actor* actor);
void func_8010B720(GlobalContext* globalCtx, u16 textId);
// ? func_8010B820(?);
// ? func_8010BD58(?);

View file

@ -146,7 +146,7 @@ typedef struct Actor {
/* 0x10C */ u8 unk_10C; // Z-Target related
/* 0x10D */ u8 unk_10D; // Z-Target related
/* 0x10E */ u16 textId; // Text id to pass to link/display when interacting with an actor
/* 0x110 */ u16 freeze;
/* 0x110 */ u16 freezeTimer;
/* 0x112 */ u16 dmgEffectParams; // Specifies damage effect color (white/red/blue) and if opaque or translucent
/* 0x114 */ u8 dmgEffectTimer;
/* 0x115 */ u8 isDrawn; // Indicates whether the actor is currently being drawn (but not seen through lens)

View file

@ -215,7 +215,7 @@ typedef struct EffectSs {
/* 0x28 */ void (*draw)(struct GlobalContext* globalCtx, u32 index, struct EffectSs* effectSs);
/* 0x2C */ Vec3f unk_2C;
/* 0x38 */ u32 unk_38;
/* 0x3C */ u32 unk_3C;
/* 0x3C */ UNK_PTR unk_3C;
/* 0x40 */ s16 regs[13]; // specific per effect
/* 0x5A */ u16 flags;
/* 0x5C */ s16 life; // -1 means this entry is free

6
spec
View file

@ -1989,8 +1989,7 @@ endseg
beginseg
name "ovl_Effect_Ss_Solder_Srch_Ball"
include "build/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.o"
include "build/data/overlays/effects/z_eff_ss_solder_srch_ball.data.o"
include "build/data/overlays/effects/z_eff_ss_solder_srch_ball.reloc.o"
include "build/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/ovl_Effect_Ss_Solder_Srch_Ball_reloc.o"
endseg
beginseg
@ -2613,8 +2612,7 @@ endseg
beginseg
name "ovl_En_Heishi1"
include "build/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.o"
include "build/data/overlays/actors/z_en_heishi1.data.o"
include "build/data/overlays/actors/z_en_heishi1.reloc.o"
include "build/src/overlays/actors/ovl_En_Heishi1/ovl_En_Heishi1_reloc.o"
endseg
beginseg

View file

@ -2106,7 +2106,7 @@ void Actor_UpdateAll(GlobalContext* globalCtx, ActorContext* actorCtx) {
actor->yawTowardsLink = func_8002DA78(actor, &player->actor);
actor->flags &= ~0x1000000;
if ((DECR(actor->freeze) == 0) && (actor->flags & 0x50)) {
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & 0x50)) {
if (actor == player->unk_664) {
actor->unk_10C = 1;
} else {
@ -2499,14 +2499,14 @@ void func_80031A28(GlobalContext* globalCtx, ActorContext* actorCtx) {
u8 sEnemyActorTypes[] = { ACTORTYPE_ENEMY, ACTORTYPE_BOSS };
void Actor_FreezeAllEnemies(GlobalContext* globalCtx, ActorContext* actorCtx, s32 freezeValue) {
void Actor_FreezeAllEnemies(GlobalContext* globalCtx, ActorContext* actorCtx, s32 duration) {
Actor* actor;
s32 i;
for (i = 0; i < ARRAY_COUNT(sEnemyActorTypes); i++) {
actor = actorCtx->actorList[sEnemyActorTypes[i]].first;
while (actor != NULL) {
actor->freeze = freezeValue;
actor->freezeTimer = duration;
actor = actor->next;
}
}
@ -4050,7 +4050,7 @@ void func_80035650(Actor* actor, ColliderBody* colBody, s32 freezeFlag) {
if (colBody->acHitItem == NULL) {
actor->unk_116 = 0x00;
} else if (freezeFlag && (colBody->acHitItem->toucher.flags & 0x10060000)) {
actor->freeze = colBody->acHitItem->toucher.damage;
actor->freezeTimer = colBody->acHitItem->toucher.damage;
actor->unk_116 = 0x00;
} else if (colBody->acHitItem->toucher.flags & 0x0800) {
actor->unk_116 = 0x01;
@ -4066,7 +4066,7 @@ void func_80035650(Actor* actor, ColliderBody* colBody, s32 freezeFlag) {
actor->unk_116 = 0x20;
} else if ((colBody->acHitItem->toucher.flags << 0xC) < 0) {
if (freezeFlag) {
actor->freeze = colBody->acHitItem->toucher.damage;
actor->freezeTimer = colBody->acHitItem->toucher.damage;
}
actor->unk_116 = 0x40;
} else {
@ -4086,7 +4086,7 @@ void func_8003573C(Actor* actor, ColliderJntSph* jntSph, s32 freezeFlag) {
if (curColBody->acHitItem == NULL) {
flag = 0x00;
} else if (freezeFlag && (curColBody->acHitItem->toucher.flags & 0x10060000)) {
actor->freeze = curColBody->acHitItem->toucher.damage;
actor->freezeTimer = curColBody->acHitItem->toucher.damage;
flag = 0x00;
} else if (curColBody->acHitItem->toucher.flags & 0x0800) {
flag = 0x01;
@ -4102,7 +4102,7 @@ void func_8003573C(Actor* actor, ColliderJntSph* jntSph, s32 freezeFlag) {
flag = 0x20;
} else if (curColBody->acHitItem->toucher.flags & 0x80000) {
if (freezeFlag) {
actor->freeze = curColBody->acHitItem->toucher.damage;
actor->freezeTimer = curColBody->acHitItem->toucher.damage;
}
flag = 0x40;
} else {

View file

@ -3366,7 +3366,7 @@ void func_80059EC8(Camera* camera) {
Gameplay_ChangeCameraStatus(camera->globalCtx, camera->unk_162, 7);
if ((camera->unk_162 == 0) && (camera->unk_168 != 0)) {
player->actor.freeze = 0;
player->actor.freezeTimer = 0;
player->stateFlags1 &= ~0x20000000;
if (player->action != 0) {

View file

@ -1440,11 +1440,11 @@ void Cutscene_Command_Textbox(GlobalContext* globalCtx, CutsceneContext* csCtx,
if (D_8011E1C0 != cmd->base) {
D_8011E1C0 = cmd->base;
if ((cmd->type == 3) && CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) {
func_8010B680(globalCtx, cmd->textId1, 0);
func_8010B680(globalCtx, cmd->textId1, NULL);
} else if ((cmd->type == 4) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
func_8010B680(globalCtx, cmd->textId1, 0);
func_8010B680(globalCtx, cmd->textId1, NULL);
} else {
func_8010B680(globalCtx, cmd->base, 0);
func_8010B680(globalCtx, cmd->base, NULL);
}
return;
}

View file

@ -89,7 +89,7 @@ void EffectSs_Reset(EffectSs* effectSs) {
effectSs->draw = NULL;
effectSs->update = NULL;
effectSs->unk_38 = 0;
effectSs->unk_3C = 0;
effectSs->unk_3C = NULL;
for (i = 0; i < ARRAY_COUNT(effectSs->regs); i++) {
effectSs->regs[i] = 0;

View file

@ -1,5 +1,6 @@
#include <ultra64.h>
#include <global.h>
#include "overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.h"
// Draw utility for some G effects
#pragma GLOBAL_ASM("asm/non_matchings/code/z_effect_soft_sprite_old_init/func_80027F80.s")
@ -168,9 +169,18 @@
#pragma GLOBAL_ASM("asm/non_matchings/code/z_effect_soft_sprite_old_init/func_80029DBC.s")
// EffectSsSolderSrchBall Spawn Functions
void EffectSsSolderSrchBall_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 arg4,
s16* linkDetected) {
EffectSsSolderSrchBallInitParams initParams;
#pragma GLOBAL_ASM("asm/non_matchings/code/z_effect_soft_sprite_old_init/func_80029E24.s")
Math_Vec3f_Copy(&initParams.pos, pos);
Math_Vec3f_Copy(&initParams.velocity, velocity);
Math_Vec3f_Copy(&initParams.accel, accel);
initParams.unk_24 = arg4;
initParams.linkDetected = linkDetected;
EffectSs_Spawn(globalCtx, EFFECT_SS_SOLDER_SRCH_BALL, 128, &initParams);
}
// EffectSsKakera Spawn Functions

View file

@ -3829,7 +3829,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
gSaveContext.timer2State = 5;
gSaveContext.cutsceneIndex = 0;
D_8015FFE6 = 40;
func_8010B680(globalCtx, 0x71B0, 0);
func_8010B680(globalCtx, 0x71B0, NULL);
func_8002DF54(globalCtx, 0, 8);
} else {
gSaveContext.timer2State = 6;
@ -3855,7 +3855,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
gSaveContext.timer2Value++;
if (gSaveContext.eventInf[1] & 1) {
if (gSaveContext.timer2Value == 240) {
func_8010B680(globalCtx, 0x6083, 0);
func_8010B680(globalCtx, 0x6083, NULL);
gSaveContext.timer2State = 0;
gSaveContext.eventInf[1] &= ~1;
}

View file

@ -323,7 +323,7 @@ void Gameplay_Init(GlobalContext* globalCtx) {
gSaveContext.dogIsLost = true;
if (Inventory_ReplaceItem(globalCtx, ITEM_WEIRD_EGG, ITEM_CHICKEN) ||
Inventory_ReplaceItem(globalCtx, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO)) {
func_8010B680(globalCtx, 0x3066, 0);
func_8010B680(globalCtx, 0x3066, NULL);
}
gSaveContext.nextDayTime = 0xFFFE;
} else {

View file

@ -389,7 +389,7 @@ s32 func_8008F2F8(GlobalContext* globalCtx) {
if (temp_a3->unk_0 != 0 && !(gSaveContext.unk_13C6 & temp_a3->unk_0) &&
((phi_v1 == 0 && player->currentTunic != 1) ||
((phi_v1 == 1 || phi_v1 == 3) && player->currentBoots == 1 && player->currentTunic != 2))) {
func_8010B680(globalCtx, temp_a3->unk_2, 0);
func_8010B680(globalCtx, temp_a3->unk_2, NULL);
gSaveContext.unk_13C6 |= temp_a3->unk_0;
}
}

View file

@ -17,7 +17,7 @@ void EnBdfire_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
const ActorInit En_Bdfire_InitVars = {
ACTOR_PLAYER,
0,
ACTORTYPE_ENEMY,
FLAGS,
OBJECT_KINGDODONGO,

View file

@ -11,7 +11,7 @@ void EnFhgFire_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
const ActorInit En_Fhg_Fire_InitVars = {
ACTOR_PLAYER,
0,
ACTORTYPE_BOSS,
FLAGS,
OBJECT_FHG,

View file

@ -1053,7 +1053,7 @@ void EnFloormas_Update(Actor* thisx, GlobalContext* globalCtx) {
}
if (this->actionFunc != EnFloormas_GrabLink) {
if (this->actionFunc != EnFloormas_Split && this->actionFunc != EnFloormas_TakeDamage &&
this->actor.freeze == 0) {
this->actor.freezeTimer == 0) {
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider);
}

View file

@ -222,7 +222,7 @@ void EnFu_WaitAdult(EnFu* this, GlobalContext* globalCtx) {
func_80A1D94C(this, globalCtx, 0x508E, func_80A1DBA0);
} else if (player->stateFlags2 & 0x1000000) {
this->actor.textId = 0x5035;
func_8010B680(globalCtx, this->actor.textId, 0);
func_8010B680(globalCtx, this->actor.textId, NULL);
this->actionFunc = EnFu_TeachSong;
this->behaviorFlags |= FU_WAIT;
} else if (func_8002F194(&this->actor, globalCtx) != 0) {

View file

@ -1,4 +1,11 @@
/*
* File: z_en_heishi1.c
* Overlay: ovl_En_Heishi1
* Description: Courtyard Guards
*/
#include "z_en_heishi1.h"
#include <vt.h>
#define FLAGS 0x00000010
@ -9,9 +16,24 @@ void EnHeishi1_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnHeishi1_Update(Actor* thisx, GlobalContext* globalCtx);
void EnHeishi1_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void EnHeishi1_SetupWait(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_SetupWalk(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_SetupMoveToLink(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_SetupTurnTowardLink(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_SetupKick(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_SetupWaitNight(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_Wait(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_Walk(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_MoveToLink(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_TurnTowardLink(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_Kick(EnHeishi1* this, GlobalContext* globalCtx);
void EnHeishi1_WaitNight(EnHeishi1* this, GlobalContext* globalCtx);
s32 sPlayerIsCaught = false;
const ActorInit En_Heishi1_InitVars = {
ACTOR_PLAYER,
0,
ACTORTYPE_NPC,
FLAGS,
OBJECT_SD,
@ -21,37 +43,467 @@ const ActorInit En_Heishi1_InitVars = {
(ActorFunc)EnHeishi1_Update,
(ActorFunc)EnHeishi1_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/EnHeishi1_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/EnHeishi1_Destroy.s")
f32 sAnimParamsInit[][8] = {
{ 1.0f, -10.0f, 3.0f, 0.5f, 1000.0f, 200.0f, 0.3f, 1000.0f },
{ 3.0f, -3.0f, 6.0f, 0.8f, 2000.0f, 400.0f, 0.5f, 2000.0f },
{ 1.0f, -10.0f, 3.0f, 0.5f, 1000.0f, 200.0f, 0.3f, 1000.0f },
{ 3.0f, -3.0f, 6.0f, 0.8f, 2000.0f, 400.0f, 0.5f, 2000.0f },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A5162C.s")
s16 sBaseHeadTimers[] = { 20, 10, 20, 10, 13, 0 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A516E4.s")
Vec3f sRupeePositions[] = {
{ 0.0f, 0.0f, 90.0f }, { -55.0f, 0.0f, 90.0f }, { -55.0f, 0.0f, 30.0f }, { -55.0f, 0.0f, -30.0f },
{ 0.0f, 0.0f, -30.0f }, { 55.0f, 0.0f, -30.0f }, { 55.0f, 0.0f, 30.0f }, { 55.0f, 0.0f, 90.0f },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A51A98.s")
s32 sCamDataIdxs[] = {
7, 7, 2, 2, 2, 2, 3, 3, 4, 4, 5, 6, 4, 4, 5, 6,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A51B54.s")
s16 sWaypoints[] = { 0, 4, 1, 5, 2, 6, 3, 7 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A51C4C.s")
extern AnimationHeader D_06005880;
extern AnimationHeader D_06005C30;
extern SkeletonHeader D_0600BAC8;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A51D18.s")
void EnHeishi1_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnHeishi1* this = THIS;
Vec3f rupeePos;
s32 i;
u16 time;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A51F50.s")
Actor_SetScale(&this->actor, 0.01f);
SkelAnime_Init(globalCtx, &this->skelAnime, &D_0600BAC8, &D_06005C30, this->limbDrawTable,
this->transitionDrawTable, 17);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A51FEC.s")
this->type = (this->actor.params >> 8) & 0xFF;
this->path = this->actor.params & 0xFF;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A52098.s")
for (i = 0; i < ARRAY_COUNT(sAnimParamsInit[0]); i++) {
this->animParams[i] = sAnimParamsInit[this->type][i];
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A5212C.s")
// "type"
osSyncPrintf(VT_FGCOL(GREEN) " 種類☆☆☆☆☆☆☆☆☆☆☆☆☆ %d\n" VT_RST, this->type);
// "path data"
osSyncPrintf(VT_FGCOL(YELLOW) " れえるでぇたぁ☆☆☆☆☆☆☆☆ %d\n" VT_RST, this->path);
osSyncPrintf(VT_FGCOL(PURPLE) " anime_frame_speed ☆☆☆☆☆☆ %f\n" VT_RST, this->animSpeed);
// "interpolation frame"
osSyncPrintf(VT_FGCOL(PURPLE) " 補間フレーム☆☆☆☆☆☆☆☆☆ %f\n" VT_RST, this->transitionRate);
// "targeted movement speed value between points"
osSyncPrintf(VT_FGCOL(PURPLE) " point間の移動スピード目標値 ☆ %f\n" VT_RST, this->moveSpeedTarget);
// "maximum movement speed value between points"
osSyncPrintf(VT_FGCOL(PURPLE) " point間の移動スピード最大 ☆☆ %f\n" VT_RST, this->moveSpeedMax);
// "(body) targeted turning angle speed value"
osSyncPrintf(VT_FGCOL(PURPLE) " (体)反転アングルスピード目標値 %f\n" VT_RST, this->bodyTurnSpeedTarget);
// "(body) maximum turning angle speed"
osSyncPrintf(VT_FGCOL(PURPLE) " (体)反転アングルスピード最大☆ %f\n" VT_RST, this->bodyTurnSpeedMax);
// "(head) targeted turning angle speed value"
osSyncPrintf(VT_FGCOL(PURPLE) " (頭)反転アングルスピード加算値 %f\n" VT_RST, this->headTurnSpeedScale);
// "(head) maximum turning angle speed"
osSyncPrintf(VT_FGCOL(PURPLE) " (頭)反転アングルスピード最大☆ %f\n" VT_RST, this->headTurnSpeedMax);
// "current time"
// clang-format off
time = gSaveContext.dayTime; osSyncPrintf(VT_FGCOL(GREEN) " 今時間 %d\n" VT_RST, time);
// clang-format on
// "check time"
osSyncPrintf(VT_FGCOL(YELLOW) " チェック時間 %d\n" VT_RST, 0xBAAA);
osSyncPrintf("\n\n");
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A521FC.s")
if (this->path == 3) {
for (i = 0; i < ARRAY_COUNT(sRupeePositions); i++) {
rupeePos = sRupeePositions[i];
Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_EX_RUPPY, rupeePos.x,
rupeePos.y, rupeePos.z, 0, 0, 0, 3);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A52290.s")
if (this->type != 5) {
if (((gSaveContext.dayTime < 0xB888) || (!gSaveContext.nightFlag)) && !(gSaveContext.eventChkInf[8] & 1)) {
this->actionFunc = EnHeishi1_SetupWalk;
} else {
Actor_Kill(&this->actor);
}
} else {
if ((gSaveContext.dayTime >= 0xB889) || (gSaveContext.nightFlag) || (gSaveContext.eventChkInf[8] & 1)) {
this->actionFunc = EnHeishi1_SetupWaitNight;
} else {
Actor_Kill(&this->actor);
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/EnHeishi1_Update.s")
void EnHeishi1_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/func_80A5263C.s")
void EnHeishi1_SetupWalk(EnHeishi1* this, GlobalContext* globalCtx) {
s16 frameCount = (f32)SkelAnime_GetFrameCount(&D_06005880.genericHeader);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Heishi1/EnHeishi1_Draw.s")
SkelAnime_ChangeAnim(&this->skelAnime, &D_06005880, this->animSpeed, 0.0f, frameCount, 0, this->transitionRate);
this->bodyTurnSpeed = 0.0f;
this->moveSpeed = 0.0f;
this->headDirection = Math_Rand_ZeroFloat(1.99f);
this->actionFunc = EnHeishi1_Walk;
}
void EnHeishi1_Walk(EnHeishi1* this, GlobalContext* globalCtx) {
Path* path;
Vec3s* pointPos;
f32 pathDiffX;
f32 pathDiffZ;
s16 randOffset;
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
if (func_800A56C8(&this->skelAnime, 1.0f) || func_800A56C8(&this->skelAnime, 17.0f)) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_KNIGHT_WALK);
}
if (!sPlayerIsCaught) {
path = &globalCtx->setupPathList[this->path];
pointPos = SEGMENTED_TO_VIRTUAL(path->points);
pointPos += this->waypoint;
Math_SmoothScaleMaxF(&this->actor.posRot.pos.x, pointPos->x, 1.0f, this->moveSpeed);
Math_SmoothScaleMaxF(&this->actor.posRot.pos.z, pointPos->z, 1.0f, this->moveSpeed);
Math_SmoothScaleMaxF(&this->moveSpeed, this->moveSpeedTarget, 1.0f, this->moveSpeedMax);
pathDiffX = pointPos->x - this->actor.posRot.pos.x;
pathDiffZ = pointPos->z - this->actor.posRot.pos.z;
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.y, (Math_atan2f(pathDiffX, pathDiffZ) * 10430.378f), 3,
this->bodyTurnSpeed, 0);
Math_SmoothScaleMaxF(&this->bodyTurnSpeed, this->bodyTurnSpeedTarget, 1.0f, this->bodyTurnSpeedMax);
if (this->headTimer == 0) {
this->headDirection++;
this->headAngleTarget = 0x2000;
// if headDirection is odd, face 45 degrees left
if ((this->headDirection & 1) != 0) {
this->headAngleTarget *= -1;
}
randOffset = Math_Rand_ZeroFloat(30.0f);
this->headTimer = sBaseHeadTimers[this->type] + randOffset;
}
Math_SmoothScaleMaxF(&this->headAngle, this->headAngleTarget, this->headTurnSpeedScale, this->headTurnSpeedMax);
if ((this->path == BREG(1)) && (BREG(0) != 0)) {
osSyncPrintf(VT_FGCOL(RED) " 種類 %d\n" VT_RST, this->path);
osSyncPrintf(VT_FGCOL(RED) " ぱす %d\n" VT_RST, this->waypoint);
osSyncPrintf(VT_FGCOL(RED) " 反転 %d\n" VT_RST, this->bodyTurnSpeed);
osSyncPrintf(VT_FGCOL(RED) " 時間 %d\n" VT_RST, this->waypointTimer);
osSyncPrintf(VT_FGCOL(RED) " 点座 %d\n" VT_RST, path->count);
osSyncPrintf("\n\n");
}
// when 20 units away from a middle waypoint, decide whether or not to skip it
if ((fabsf(pathDiffX) < 20.0f) && (fabsf(pathDiffZ) < 20.0f)) {
if (this->waypointTimer == 0) {
if (this->type >= 2) {
if ((this->waypoint >= 4) && (Math_Rand_ZeroFloat(1.99f) > 1.0f)) {
if (this->waypoint == 7) {
this->waypoint = 0;
}
if (this->waypoint >= 4) {
this->waypoint -= 3;
}
this->waypointTimer = 5;
return;
}
}
this->actionFunc = EnHeishi1_SetupWait;
}
}
}
}
void EnHeishi1_SetupMoveToLink(EnHeishi1* this, GlobalContext* globalCtx) {
s16 frameCount = (f32)SkelAnime_GetFrameCount(&D_06005880.genericHeader);
SkelAnime_ChangeAnim(&this->skelAnime, &D_06005880, 3.0f, 0.0f, frameCount, 0, -3.0f);
this->bodyTurnSpeed = 0.0f;
this->moveSpeed = 0.0f;
func_8010B680(globalCtx, 0x702D, &this->actor);
Interface_SetDoAction(globalCtx, 0x12);
this->actionFunc = EnHeishi1_MoveToLink;
}
void EnHeishi1_MoveToLink(EnHeishi1* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
Math_SmoothScaleMaxF(&this->actor.posRot.pos.x, player->actor.posRot.pos.x, 1.0f, this->moveSpeed);
Math_SmoothScaleMaxF(&this->actor.posRot.pos.z, player->actor.posRot.pos.z, 1.0f, this->moveSpeed);
Math_SmoothScaleMaxF(&this->moveSpeed, 6.0f, 1.0f, 0.4f);
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.y, this->actor.yawTowardsLink, 3, this->bodyTurnSpeed, 0);
Math_SmoothScaleMaxF(&this->bodyTurnSpeed, 3000.0f, 1.0f, 300.0f);
Math_SmoothDownscaleMaxF(&this->headAngle, 0.5f, 2000.0f);
if (this->actor.xzDistFromLink < 70.0f) {
this->actionFunc = EnHeishi1_SetupTurnTowardLink;
}
}
void EnHeishi1_SetupWait(EnHeishi1* this, GlobalContext* globalCtx) {
s16 rand;
s16 frameCount = (f32)SkelAnime_GetFrameCount(&D_06005C30.genericHeader);
SkelAnime_ChangeAnim(&this->skelAnime, &D_06005C30, this->animSpeed, 0.0f, frameCount, 0, this->transitionRate);
this->headBehaviorDecided = false;
this->headDirection = Math_Rand_ZeroFloat(1.99f);
rand = Math_Rand_ZeroFloat(50.0f);
this->waitTimer = rand + 50;
this->actionFunc = EnHeishi1_Wait;
}
void EnHeishi1_Wait(EnHeishi1* this, GlobalContext* globalCtx) {
s16 randOffset;
s32 i;
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
if (!sPlayerIsCaught) {
switch (this->headBehaviorDecided) {
case false:
this->headDirection++;
// if headDirection is odd, face 52 degrees left
this->headAngleTarget = (this->headDirection & 1) ? 0x2500 : -0x2500;
randOffset = Math_Rand_ZeroFloat(30.0f);
this->headTimer = sBaseHeadTimers[this->type] + randOffset;
this->headBehaviorDecided = true;
break;
case true:
if (this->headTimer == 0) {
if (this->waitTimer == 0) {
if ((this->type == 0) || (this->type == 1)) {
this->waypoint++;
if (this->waypoint >= 4) {
this->waypoint = 0;
}
} else {
// waypoints are defined with corners as 0-3 and middle points as 4-7
// to choose the next waypoint, the order "04152637" is hardcoded in an array
for (i = 0; i < ARRAY_COUNT(sWaypoints); i++) {
if (this->waypoint == sWaypoints[i]) {
i++;
if (i >= ARRAY_COUNT(sWaypoints)) {
i = 0;
}
this->waypoint = sWaypoints[i];
break;
}
}
this->waypointTimer = 5;
}
this->actionFunc = EnHeishi1_SetupWalk;
} else {
this->headBehaviorDecided = false;
}
}
break;
}
Math_SmoothScaleMaxF(&this->headAngle, this->headAngleTarget, this->headTurnSpeedScale,
this->headTurnSpeedMax + this->headTurnSpeedMax);
if ((this->path == BREG(1)) && (BREG(0) != 0)) {
osSyncPrintf(VT_FGCOL(GREEN) " 種類 %d\n" VT_RST, this->path);
osSyncPrintf(VT_FGCOL(GREEN) " ぱす %d\n" VT_RST, this->waypoint);
osSyncPrintf(VT_FGCOL(GREEN) " 反転 %d\n" VT_RST, this->bodyTurnSpeed);
osSyncPrintf(VT_FGCOL(GREEN) " 時間 %d\n" VT_RST, this->waypointTimer);
osSyncPrintf("\n\n");
}
}
}
void EnHeishi1_SetupTurnTowardLink(EnHeishi1* this, GlobalContext* globalCtx) {
s16 frameCount = (f32)SkelAnime_GetFrameCount(&D_06005C30.genericHeader);
SkelAnime_ChangeAnim(&this->skelAnime, &D_06005C30, 1.0f, 0.0f, frameCount, 0, -10.0f);
this->kickTimer = 30;
this->actionFunc = EnHeishi1_TurnTowardLink;
}
void EnHeishi1_TurnTowardLink(EnHeishi1* this, GlobalContext* globalCtx) {
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
if (this->type != 5) {
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.y, this->actor.yawTowardsLink, 3, this->bodyTurnSpeed, 0);
Math_SmoothScaleMaxF(&this->bodyTurnSpeed, 3000.0f, 1.0f, 300.0f);
Math_SmoothDownscaleMaxF(&this->headAngle, 0.5f, 2000.0f);
}
if (this->kickTimer == 0) {
this->actionFunc = EnHeishi1_SetupKick;
}
}
void EnHeishi1_SetupKick(EnHeishi1* this, GlobalContext* globalCtx) {
s16 frameCount = (f32)SkelAnime_GetFrameCount(&D_06005C30.genericHeader);
SkelAnime_ChangeAnim(&this->skelAnime, &D_06005C30, 1.0f, 0.0f, frameCount, 0, -10.0f);
this->actionFunc = EnHeishi1_Kick;
}
void EnHeishi1_Kick(EnHeishi1* this, GlobalContext* globalCtx) {
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
if (!this->loadStarted) {
// if dialog state is 5 and textbox has been advanced, kick player out
if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx))) {
func_80106CCC(globalCtx);
if (!this->loadStarted) {
gSaveContext.eventChkInf[4] |= 0x4000;
globalCtx->nextEntranceIndex = 0x4FA;
globalCtx->sceneLoadFlag = 0x14;
this->loadStarted = true;
sPlayerIsCaught = false;
globalCtx->fadeTransition = 0x2E;
gSaveContext.nextTransition = 0x2E;
}
}
}
}
void EnHeishi1_SetupWaitNight(EnHeishi1* this, GlobalContext* globalCtx) {
s16 frameCount = (f32)SkelAnime_GetFrameCount(&D_06005C30.genericHeader);
SkelAnime_ChangeAnim(&this->skelAnime, &D_06005C30, 1.0f, 0.0f, frameCount, 0, -10.0f);
this->actionFunc = EnHeishi1_WaitNight;
}
void EnHeishi1_WaitNight(EnHeishi1* this, GlobalContext* globalCtx) {
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
if (this->actor.xzDistFromLink < 100.0f) {
func_8010B680(globalCtx, 0x702D, &this->actor);
func_80078884(NA_SE_SY_FOUND);
// "Discovered!"
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発見! ☆☆☆☆☆ \n" VT_RST);
func_8002DF54(globalCtx, &this->actor, 1);
this->actionFunc = EnHeishi1_SetupKick;
}
}
void EnHeishi1_Update(Actor* thisx, GlobalContext* globalCtx) {
EnHeishi1* this = THIS;
s16 path;
u8 i;
s32 pad;
Player* player = PLAYER;
s32 pad2;
Camera* activeCam;
this->activeTimer++;
for (i = 0; i < ARRAY_COUNT(this->timers); i++) {
if (this->timers[i] != 0) {
this->timers[i]--;
}
}
if (this->waypointTimer != 0) {
this->waypointTimer--;
}
activeCam = ACTIVE_CAM;
if (player->actor.freezeTimer == 0) {
this->actionFunc(this, globalCtx);
this->actor.uncullZoneForward = 550.0f;
this->actor.uncullZoneScale = 350.0f;
this->actor.uncullZoneDownward = 700.0f;
if (this->type != 5) {
path = this->path * 2;
if ((sCamDataIdxs[path] == activeCam->unk_148) || (sCamDataIdxs[path + 1] == activeCam->unk_148)) {
if (!sPlayerIsCaught) {
if ((this->actionFunc == EnHeishi1_Walk) || (this->actionFunc == EnHeishi1_Wait)) {
Vec3f searchBallVel;
Vec3f searchBallAccel = { 0.0f, 0.0f, 0.0f };
Vec3f searchBallMult = { 0.0f, 0.0f, 20.0f };
Vec3f searchBallPos;
searchBallPos.x = this->actor.posRot.pos.x;
searchBallPos.y = this->actor.posRot.pos.y + 60.0f;
searchBallPos.z = this->actor.posRot.pos.z;
Matrix_Push();
Matrix_RotateY(((this->actor.shape.rot.y + this->headAngle) / 32768.0f) * M_PI, 0);
searchBallMult.z = 30.0f;
Matrix_MultVec3f(&searchBallMult, &searchBallVel);
Matrix_Pull();
EffectSsSolderSrchBall_Spawn(globalCtx, &searchBallPos, &searchBallVel, &searchBallAccel, 2,
&this->linkDetected);
if (this->actor.xzDistFromLink < 60.0f) {
this->linkDetected = true;
} else if (this->actor.xzDistFromLink < 70.0f) {
// this case probably exists to detect link making a jump sound
// from slightly further away than the previous 60 unit check
if (player->actor.velocity.y > -4.0f) {
this->linkDetected = true;
}
}
if (this->linkDetected) {
// ! @bug This appears to be a check to make sure that link is standing on the ground
// before getting caught. However this is an issue for two reasons:
// 1: When doing a backflip or falling from the upper path, links y velocity will reach
// less than -4.0 before even touching the ground.
// 2: There is one frame when landing from a sidehop where you can sidehop again without
// letting y velocity reach -4.0 or less. This enables the player to do frame perfect
// sidehops onto the next screen and prevent getting caught.
if (!(player->actor.velocity.y > -3.9f)) {
this->linkDetected = false;
// this 60 unit height check is so the player doesnt get caught when on the upper path
if (fabsf(player->actor.posRot.pos.y - this->actor.posRot.pos.y) < 60.0f) {
func_80078884(NA_SE_SY_FOUND);
// "Discovered!"
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発見! ☆☆☆☆☆ \n" VT_RST);
func_8002DF54(globalCtx, &this->actor, 1);
sPlayerIsCaught = true;
this->actionFunc = EnHeishi1_SetupMoveToLink;
}
}
}
}
}
}
}
}
}
s32 EnHeishi1_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
Actor* thisx) {
EnHeishi1* this = THIS;
// turn the guards head to match the direction he is looking
if (limbIndex == 16) {
rot->x += (s16)this->headAngle;
}
return 0;
}
void EnHeishi1_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnHeishi1* this = THIS;
Vec3f matrixScale = { 0.3f, 0.3f, 0.3f };
func_80093D18(globalCtx->state.gfxCtx);
SkelAnime_Draw(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, EnHeishi1_OverrideLimbDraw, NULL,
&this->actor);
func_80033C30(&this->actor.posRot.pos, &matrixScale, 0xFF, globalCtx);
if ((this->path == BREG(1)) && (BREG(0) != 0)) {
DebugDisplay_AddObject(this->actor.posRot.pos.x, this->actor.posRot.pos.y + 100.0f, this->actor.posRot.pos.z,
17000, this->actor.posRot.rot.y, this->actor.posRot.rot.z, 1.0f, 1.0f, 1.0f, 255, 0, 0,
255, 4, globalCtx->state.gfxCtx);
}
}

View file

@ -6,9 +6,50 @@
struct EnHeishi1;
typedef void (*EnHeishi1ActionFunc)(struct EnHeishi1*, GlobalContext*);
typedef struct EnHeishi1 {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x160];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s limbDrawTable[17];
/* 0x01F6 */ Vec3s transitionDrawTable[17];
/* 0x025C */ EnHeishi1ActionFunc actionFunc;
/* 0x0260 */ s16 activeTimer;
/* 0x0262 */ s16 headDirection;
/* 0x0264 */ s16 headBehaviorDecided;
/* 0x0266 */ s16 linkDetected;
/* 0x0268 */ s16 loadStarted;
/* 0x026A */ s16 type;
/* 0x026C */ s16 path;
/* 0x026E */ s16 unused1;
/* 0x0270 */ s16 waypointTimer;
/* 0x0272 */ s16 unused2;
/* 0x0274 */ f32 moveSpeed;
/* 0x0278 */ f32 bodyTurnSpeed;
/* 0x027C */ f32 headAngle;
/* 0x0280 */ f32 headAngleTarget;
union {
struct {
/* 0x0284 */ f32 animSpeed;
/* 0x0288 */ f32 transitionRate;
/* 0x028C */ f32 moveSpeedTarget;
/* 0x0290 */ f32 moveSpeedMax;
/* 0x0294 */ f32 bodyTurnSpeedTarget;
/* 0x0298 */ f32 bodyTurnSpeedMax;
/* 0x029C */ f32 headTurnSpeedScale;
/* 0x02A0 */ f32 headTurnSpeedMax;
};
f32 animParams[8];
};
union {
struct {
/* 0x02A4 */ s16 headTimer;
/* 0x02A6 */ s16 waitTimer;
/* 0x02A8 */ s16 kickTimer;
};
s16 timers[3];
};
/* 0x02AA */ s16 waypoint;
} EnHeishi1; // size = 0x02AC
extern const ActorInit En_Heishi1_InitVars;

View file

@ -631,7 +631,7 @@ void func_80A544AC(EnHeishi2* this, GlobalContext* globalCtx) {
Math_SmoothScaleMaxF(&this->unk_2E4, 3000.0f, 1.0f, 500.0f);
this->actor.posRot.rot.z = this->actor.shape.rot.z;
if (this->actor.shape.rot.z < -6000) {
func_8010B680(globalCtx, 0x708F, 0);
func_8010B680(globalCtx, 0x708F, NULL);
this->actor.flags |= 0x10000;
this->actionFunc = func_80A5455C;
this->unk_2E4 = 0.0f;

View file

@ -338,7 +338,7 @@ void func_80AA0F44(EnMa1* this, GlobalContext* globalCtx) {
player->stateFlags2 |= 0x2000000;
player->unk_6A8 = &this->actor;
this->actor.textId = 0x2061;
func_8010B680(globalCtx, this->actor.textId, 0);
func_8010B680(globalCtx, this->actor.textId, NULL);
this->unk_1E8.unk_00 = 1;
this->actor.flags |= 0x10000;
this->actionFunc = func_80AA106C;

View file

@ -656,7 +656,7 @@ void func_80AF390C(EnRu2* this, GlobalContext* globalCtx) {
func_80AF37AC();
} else if (*unk_2C4 > kREG(4) + 50.0f) {
this->actor.textId = 0x403E;
func_8010B680(globalCtx, this->actor.textId, 0);
func_8010B680(globalCtx, this->actor.textId, NULL);
this->action = 17;
}
}

View file

@ -83,7 +83,7 @@ void func_80AFB768(EnSi* this, GlobalContext* globalCtx) {
if (this->collider.base.maskB & 0x1) {
this->collider.base.maskB &= ~0x1;
Item_Give(globalCtx, ITEM_SKULL_TOKEN);
player->actor.freeze = 10;
player->actor.freezeTimer = 10;
func_8010B680(globalCtx, 0xB4, 0);
func_800F5C64(0x39);
this->actionFunc = func_80AFB950;
@ -105,7 +105,7 @@ void func_80AFB89C(EnSi* this, GlobalContext* globalCtx) {
if ((this->actor.flags & 0x2000) != 0x2000) {
Item_Give(globalCtx, ITEM_SKULL_TOKEN);
player->actor.freeze = 10;
player->actor.freezeTimer = 10;
func_8010B680(globalCtx, 0xB4, 0);
func_800F5C64(0x39);
this->actionFunc = func_80AFB950;
@ -118,7 +118,7 @@ void func_80AFB950(EnSi* this, GlobalContext* globalCtx) {
s16 params;
if (func_8010BDBC(&globalCtx->msgCtx) != 2) {
player->actor.freeze = 10;
player->actor.freezeTimer = 10;
} else {
params = this->actor.params;
temp = (params & 0x1F00) >> 8;

View file

@ -661,7 +661,7 @@ void EnTk_Dig(EnTk* this, GlobalContext* globalCtx) {
if (func_800A56C8(&this->skelAnim, this->skelAnim.animFrameCount) != 0) {
if (this->currentReward < 0) {
/* "Nope, nothing here!" */
func_8010B680(globalCtx, 0x501A, 0);
func_8010B680(globalCtx, 0x501A, NULL);
} else {
func_80106CCC(globalCtx);
}

View file

@ -17,7 +17,7 @@ void EnVbBall_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
const ActorInit En_Vb_Ball_InitVars = {
ACTOR_PLAYER,
0,
ACTORTYPE_BOSS,
FLAGS,
OBJECT_FD,

View file

@ -539,7 +539,7 @@ void EnWallmas_Update(Actor* thisx, GlobalContext* globalCtx) {
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider);
if ((this->actionFunc != EnWallmas_TakeDamage) && (this->actor.bgCheckFlags & 1) != 0 &&
(this->actor.freeze == 0)) {
(this->actor.freezeTimer == 0)) {
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider);
}
}

View file

@ -229,7 +229,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
animationHeader = &D_06011348;
sp3C = 1;
this->actor.textId = 0x702E;
func_8010B680(globalCtx, this->actor.textId, 0);
func_8010B680(globalCtx, this->actor.textId, NULL);
this->unk_1E2 += 1;
break;
}
@ -422,7 +422,7 @@ void func_80B4BBC4(EnZl1* this, GlobalContext* globalCtx) {
func_8002DF54(globalCtx, &this->actor, 1);
func_8002F7DC(&player->actor, NA_SE_VO_LI_SURPRISE_KID);
this->actor.textId = 0x7039;
func_8010B680(globalCtx, this->actor.textId, 0);
func_8010B680(globalCtx, this->actor.textId, NULL);
this->unk_1E2 = 0;
this->actionFunc = func_80B4BF2C;
}

View file

@ -1,6 +1,53 @@
#include <ultra64.h>
#include <global.h>
/*
* File: z_eff_ss_solder_srch_ball.c
* Overlay: ovl_Effect_Ss_Solder_Srch_Ball
* Description: Vision sphere for courtyard guards
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/func_809AC130.s")
#include "z_eff_ss_solder_srch_ball.h"
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/func_809AC1AC.s")
u32 EffectSsSolderSrchBall_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
void EffectSsSolderSrchBall_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
EffectSsInit Effect_Ss_Solder_Srch_Ball_InitVars = {
EFFECT_SS_SOLDER_SRCH_BALL,
EffectSsSolderSrchBall_Init,
};
u32 EffectSsSolderSrchBall_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsSolderSrchBallInitParams* initParams = (EffectSsSolderSrchBallInitParams*)initParamsx;
this->pos = initParams->pos;
this->velocity = initParams->velocity;
this->accel = initParams->accel;
this->update = EffectSsSolderSrchBall_Update;
this->life = 100;
this->regs[1] = initParams->unk_24;
this->unk_3C = initParams->linkDetected;
return 1;
}
void EffectSsSolderSrchBall_Update(GlobalContext* globalCtx, u32 index, EffectSs* this) {
s32 pad;
f32 playerPosDiffX;
f32 playerPosDiffY;
f32 playerPosDiffZ;
s16* linkDetected;
Player* player = PLAYER;
linkDetected = this->unk_3C;
playerPosDiffX = player->actor.posRot.pos.x - this->pos.x;
playerPosDiffY = player->actor.posRot.pos.y - this->pos.y;
playerPosDiffZ = player->actor.posRot.pos.z - this->pos.z;
if (!func_8003E30C(&globalCtx->colCtx, &this->pos, 30.0f)) {
if (sqrtf(SQ(playerPosDiffX) + SQ(playerPosDiffY) + SQ(playerPosDiffZ)) < 70.0f) {
*linkDetected = true;
}
} else {
if (this->life > 1) {
this->life = 1;
}
}
}

View file

@ -0,0 +1,15 @@
#ifndef _Z_EFF_SS_SOLDERSRCHBALL_H_
#define _Z_EFF_SS_SOLDERSRCHBALL_H_
#include <ultra64.h>
#include <global.h>
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ Vec3f velocity;
/* 0x18 */ Vec3f accel;
/* 0x24 */ s16 unk_24;
/* 0x28 */ s16* linkDetected;
} EffectSsSolderSrchBallInitParams;
#endif

View file

@ -685,6 +685,11 @@ D_06003128 = 0x06003128;
D_060042AC = 0x060042AC;
D_060059B0 = 0x060059B0;
// z_en_heishi1
D_06005880 = 0x06005880;
D_06005C30 = 0x06005C30;
D_0600BAC8 = 0x0600BAC8;
// z_Bg_Spot16_Doughnut
D_06000660 = 0x06000660;
D_06000FC0 = 0x06000FC0;