1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

ovl_En_Butte (#440)

* ovl_En_Butte

* Delete asm and inline static data

* Style

* PR review
This commit is contained in:
maekclena 2020-10-11 15:21:12 +02:00 committed by GitHub
parent 6b3b4aa883
commit 9d35542207
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 400 additions and 1479 deletions

View File

@ -1,11 +0,0 @@
glabel EnButte_Destroy
/* 004D4 809CD544 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 004D8 809CD548 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 004DC 809CD54C AFBF0014 */ sw $ra, 0x0014($sp)
/* 004E0 809CD550 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 004E4 809CD554 0C016F32 */ jal Collider_DestroyJntSph
/* 004E8 809CD558 24E5014C */ addiu $a1, $a3, 0x014C ## $a1 = 0000014C
/* 004EC 809CD55C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 004F0 809CD560 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 004F4 809CD564 03E00008 */ jr $ra
/* 004F8 809CD568 00000000 */ nop

View File

@ -1,42 +0,0 @@
glabel EnButte_Draw
/* 011EC 809CE25C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 011F0 809CE260 AFBF0024 */ sw $ra, 0x0024($sp)
/* 011F4 809CE264 AFB00020 */ sw $s0, 0x0020($sp)
/* 011F8 809CE268 AFA5002C */ sw $a1, 0x002C($sp)
/* 011FC 809CE26C 908E0258 */ lbu $t6, 0x0258($a0) ## 00000258
/* 01200 809CE270 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 01204 809CE274 51C0000E */ beql $t6, $zero, .L809CE2B0
/* 01208 809CE278 8618001C */ lh $t8, 0x001C($s0) ## 0000001C
/* 0120C 809CE27C 0C024F46 */ jal func_80093D18
/* 01210 809CE280 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000
/* 01214 809CE284 8E0501B0 */ lw $a1, 0x01B0($s0) ## 000001B0
/* 01218 809CE288 8E0601CC */ lw $a2, 0x01CC($s0) ## 000001CC
/* 0121C 809CE28C AFA00014 */ sw $zero, 0x0014($sp)
/* 01220 809CE290 AFA00010 */ sw $zero, 0x0010($sp)
/* 01224 809CE294 8FA4002C */ lw $a0, 0x002C($sp)
/* 01228 809CE298 0C028572 */ jal SkelAnime_Draw
/* 0122C 809CE29C 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 01230 809CE2A0 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 01234 809CE2A4 0C018A29 */ jal func_800628A4
/* 01238 809CE2A8 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 0123C 809CE2AC 8618001C */ lh $t8, 0x001C($s0) ## 0000001C
.L809CE2B0:
/* 01240 809CE2B0 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 01244 809CE2B4 33190001 */ andi $t9, $t8, 0x0001 ## $t9 = 00000000
/* 01248 809CE2B8 57210009 */ bnel $t9, $at, .L809CE2E0
/* 0124C 809CE2BC 8FBF0024 */ lw $ra, 0x0024($sp)
/* 01250 809CE2C0 8E090250 */ lw $t1, 0x0250($s0) ## 00000250
/* 01254 809CE2C4 3C08809D */ lui $t0, %hi(func_809CE014) ## $t0 = 809D0000
/* 01258 809CE2C8 2508E014 */ addiu $t0, $t0, %lo(func_809CE014) ## $t0 = 809CE014
/* 0125C 809CE2CC 15090003 */ bne $t0, $t1, .L809CE2DC
/* 01260 809CE2D0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01264 809CE2D4 0C273451 */ jal func_809CD144
/* 01268 809CE2D8 8FA5002C */ lw $a1, 0x002C($sp)
.L809CE2DC:
/* 0126C 809CE2DC 8FBF0024 */ lw $ra, 0x0024($sp)
.L809CE2E0:
/* 01270 809CE2E0 8FB00020 */ lw $s0, 0x0020($sp)
/* 01274 809CE2E4 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 01278 809CE2E8 03E00008 */ jr $ra
/* 0127C 809CE2EC 00000000 */ nop

View File

@ -1,122 +0,0 @@
.rdata
glabel D_809CE450
.asciz "(field keep )(%x)(arg_data 0x%04x)\n"
.balign 4
.late_rodata
glabel D_809CE48C
.word 0x477FFF00
glabel D_809CE490
.word 0x477FFF00
glabel D_809CE494
.word 0x477FFF00
.text
glabel EnButte_Init
/* 0034C 809CD3BC 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 00350 809CD3C0 AFBF002C */ sw $ra, 0x002C($sp)
/* 00354 809CD3C4 AFB00028 */ sw $s0, 0x0028($sp)
/* 00358 809CD3C8 AFA50044 */ sw $a1, 0x0044($sp)
/* 0035C 809CD3CC 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 00360 809CD3D0 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 00364 809CD3D4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00368 809CD3D8 15C10002 */ bne $t6, $at, .L809CD3E4
/* 0036C 809CD3DC 3C05809D */ lui $a1, %hi(D_809CE3D0) ## $a1 = 809D0000
/* 00370 809CD3E0 A480001C */ sh $zero, 0x001C($a0) ## 0000001C
.L809CD3E4:
/* 00374 809CD3E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00378 809CD3E8 0C01E037 */ jal Actor_ProcessInitChain
/* 0037C 809CD3EC 24A5E3D0 */ addiu $a1, $a1, %lo(D_809CE3D0) ## $a1 = 809CE3D0
/* 00380 809CD3F0 860F001C */ lh $t7, 0x001C($s0) ## 0000001C
/* 00384 809CD3F4 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00388 809CD3F8 260501AC */ addiu $a1, $s0, 0x01AC ## $a1 = 000001AC
/* 0038C 809CD3FC 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
/* 00390 809CD400 17010005 */ bne $t8, $at, .L809CD418
/* 00394 809CD404 3C060500 */ lui $a2, 0x0500 ## $a2 = 05000000
/* 00398 809CD408 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 0039C 809CD40C 44812000 */ mtc1 $at, $f4 ## $f4 = 200.00
/* 003A0 809CD410 00000000 */ nop
/* 003A4 809CD414 E60400F8 */ swc1 $f4, 0x00F8($s0) ## 000000F8
.L809CD418:
/* 003A8 809CD418 3C070500 */ lui $a3, 0x0500 ## $a3 = 05000000
/* 003AC 809CD41C 261901F0 */ addiu $t9, $s0, 0x01F0 ## $t9 = 000001F0
/* 003B0 809CD420 26080220 */ addiu $t0, $s0, 0x0220 ## $t0 = 00000220
/* 003B4 809CD424 24090008 */ addiu $t1, $zero, 0x0008 ## $t1 = 00000008
/* 003B8 809CD428 AFA90018 */ sw $t1, 0x0018($sp)
/* 003BC 809CD42C AFA80014 */ sw $t0, 0x0014($sp)
/* 003C0 809CD430 AFB90010 */ sw $t9, 0x0010($sp)
/* 003C4 809CD434 24E72470 */ addiu $a3, $a3, 0x2470 ## $a3 = 05002470
/* 003C8 809CD438 8FA40044 */ lw $a0, 0x0044($sp)
/* 003CC 809CD43C 24C636F0 */ addiu $a2, $a2, 0x36F0 ## $a2 = 050036F0
/* 003D0 809CD440 0C02915F */ jal SkelAnime_Init
/* 003D4 809CD444 AFA50038 */ sw $a1, 0x0038($sp)
/* 003D8 809CD448 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 003DC 809CD44C AFA50034 */ sw $a1, 0x0034($sp)
/* 003E0 809CD450 0C016EFE */ jal Collider_InitJntSph
/* 003E4 809CD454 8FA40044 */ lw $a0, 0x0044($sp)
/* 003E8 809CD458 3C07809D */ lui $a3, %hi(D_809CE314) ## $a3 = 809D0000
/* 003EC 809CD45C 260A016C */ addiu $t2, $s0, 0x016C ## $t2 = 0000016C
/* 003F0 809CD460 8FA50034 */ lw $a1, 0x0034($sp)
/* 003F4 809CD464 AFAA0010 */ sw $t2, 0x0010($sp)
/* 003F8 809CD468 24E7E314 */ addiu $a3, $a3, %lo(D_809CE314) ## $a3 = 809CE314
/* 003FC 809CD46C 8FA40044 */ lw $a0, 0x0044($sp)
/* 00400 809CD470 0C017014 */ jal Collider_SetJntSph
/* 00404 809CD474 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00408 809CD478 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 0040C 809CD47C A20000AE */ sb $zero, 0x00AE($s0) ## 000000AE
/* 00410 809CD480 3C01809D */ lui $at, %hi(D_809CE48C) ## $at = 809D0000
/* 00414 809CD484 C426E48C */ lwc1 $f6, %lo(D_809CE48C)($at)
/* 00418 809CD488 46060202 */ mul.s $f8, $f0, $f6
/* 0041C 809CD48C 4600428D */ trunc.w.s $f10, $f8
/* 00420 809CD490 440C5000 */ mfc1 $t4, $f10
/* 00424 809CD494 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00428 809CD498 A60C025C */ sh $t4, 0x025C($s0) ## 0000025C
/* 0042C 809CD49C 3C01809D */ lui $at, %hi(D_809CE490) ## $at = 809D0000
/* 00430 809CD4A0 C430E490 */ lwc1 $f16, %lo(D_809CE490)($at)
/* 00434 809CD4A4 46100482 */ mul.s $f18, $f0, $f16
/* 00438 809CD4A8 4600910D */ trunc.w.s $f4, $f18
/* 0043C 809CD4AC 440E2000 */ mfc1 $t6, $f4
/* 00440 809CD4B0 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00444 809CD4B4 A60E025E */ sh $t6, 0x025E($s0) ## 0000025E
/* 00448 809CD4B8 3C01809D */ lui $at, %hi(D_809CE494) ## $at = 809D0000
/* 0044C 809CD4BC C426E494 */ lwc1 $f6, %lo(D_809CE494)($at)
/* 00450 809CD4C0 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
/* 00454 809CD4C4 3C050500 */ lui $a1, 0x0500 ## $a1 = 05000000
/* 00458 809CD4C8 46060202 */ mul.s $f8, $f0, $f6
/* 0045C 809CD4CC 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 00460 809CD4D0 44071000 */ mfc1 $a3, $f2
/* 00464 809CD4D4 24A52470 */ addiu $a1, $a1, 0x2470 ## $a1 = 05002470
/* 00468 809CD4D8 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 0046C 809CD4DC 4600428D */ trunc.w.s $f10, $f8
/* 00470 809CD4E0 44185000 */ mfc1 $t8, $f10
/* 00474 809CD4E4 00000000 */ nop
/* 00478 809CD4E8 A6180260 */ sh $t8, 0x0260($s0) ## 00000260
/* 0047C 809CD4EC AFB90014 */ sw $t9, 0x0014($sp)
/* 00480 809CD4F0 8FA40038 */ lw $a0, 0x0038($sp)
/* 00484 809CD4F4 E7A20018 */ swc1 $f2, 0x0018($sp)
/* 00488 809CD4F8 0C029468 */ jal SkelAnime_ChangeAnim
/* 0048C 809CD4FC E7A20010 */ swc1 $f2, 0x0010($sp)
/* 00490 809CD500 0C2735E7 */ jal func_809CD79C
/* 00494 809CD504 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00498 809CD508 860800B4 */ lh $t0, 0x00B4($s0) ## 000000B4
/* 0049C 809CD50C 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 004A0 809CD510 3C04809D */ lui $a0, %hi(D_809CE450) ## $a0 = 809D0000
/* 004A4 809CD514 2509DCE0 */ addiu $t1, $t0, 0xDCE0 ## $t1 = FFFFDCE0
/* 004A8 809CD518 A60900B4 */ sh $t1, 0x00B4($s0) ## 000000B4
/* 004AC 809CD51C A20A0258 */ sb $t2, 0x0258($s0) ## 00000258
/* 004B0 809CD520 2484E450 */ addiu $a0, $a0, %lo(D_809CE450) ## $a0 = 809CE450
/* 004B4 809CD524 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 004B8 809CD528 0C00084C */ jal osSyncPrintf
/* 004BC 809CD52C 8606001C */ lh $a2, 0x001C($s0) ## 0000001C
/* 004C0 809CD530 8FBF002C */ lw $ra, 0x002C($sp)
/* 004C4 809CD534 8FB00028 */ lw $s0, 0x0028($sp)
/* 004C8 809CD538 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 004CC 809CD53C 03E00008 */ jr $ra
/* 004D0 809CD540 00000000 */ nop

View File

@ -1,95 +0,0 @@
.late_rodata
glabel D_809CE4C8
.float 5000.0
.text
glabel EnButte_Update
/* 010AC 809CE11C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 010B0 809CE120 AFBF001C */ sw $ra, 0x001C($sp)
/* 010B4 809CE124 AFB00018 */ sw $s0, 0x0018($sp)
/* 010B8 809CE128 8C82011C */ lw $v0, 0x011C($a0) ## 0000011C
/* 010BC 809CE12C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 010C0 809CE130 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 010C4 809CE134 50400008 */ beql $v0, $zero, .L809CE158
/* 010C8 809CE138 86020254 */ lh $v0, 0x0254($s0) ## 00000254
/* 010CC 809CE13C 8C4E0130 */ lw $t6, 0x0130($v0) ## 00000130
/* 010D0 809CE140 55C00005 */ bnel $t6, $zero, .L809CE158
/* 010D4 809CE144 86020254 */ lh $v0, 0x0254($s0) ## 00000254
/* 010D8 809CE148 50820003 */ beql $a0, $v0, .L809CE158
/* 010DC 809CE14C 86020254 */ lh $v0, 0x0254($s0) ## 00000254
/* 010E0 809CE150 AC80011C */ sw $zero, 0x011C($a0) ## 0000011C
/* 010E4 809CE154 86020254 */ lh $v0, 0x0254($s0) ## 00000254
.L809CE158:
/* 010E8 809CE158 18400002 */ blez $v0, .L809CE164
/* 010EC 809CE15C 244FFFFF */ addiu $t7, $v0, 0xFFFF ## $t7 = FFFFFFFF
/* 010F0 809CE160 A60F0254 */ sh $t7, 0x0254($s0) ## 00000254
.L809CE164:
/* 010F4 809CE164 8618025C */ lh $t8, 0x025C($s0) ## 0000025C
/* 010F8 809CE168 8608025E */ lh $t0, 0x025E($s0) ## 0000025E
/* 010FC 809CE16C 860A0260 */ lh $t2, 0x0260($s0) ## 00000260
/* 01100 809CE170 860C001C */ lh $t4, 0x001C($s0) ## 0000001C
/* 01104 809CE174 27190222 */ addiu $t9, $t8, 0x0222 ## $t9 = 00000222
/* 01108 809CE178 25091000 */ addiu $t1, $t0, 0x1000 ## $t1 = 00001000
/* 0110C 809CE17C 254B0600 */ addiu $t3, $t2, 0x0600 ## $t3 = 00000600
/* 01110 809CE180 318D0001 */ andi $t5, $t4, 0x0001 ## $t5 = 00000000
/* 01114 809CE184 A619025C */ sh $t9, 0x025C($s0) ## 0000025C
/* 01118 809CE188 A609025E */ sh $t1, 0x025E($s0) ## 0000025E
/* 0111C 809CE18C 15A1000C */ bne $t5, $at, .L809CE1C0
/* 01120 809CE190 A60B0260 */ sh $t3, 0x0260($s0) ## 00000260
/* 01124 809CE194 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44
/* 01128 809CE198 24190050 */ addiu $t9, $zero, 0x0050 ## $t9 = 00000050
/* 0112C 809CE19C 81CF0843 */ lb $t7, 0x0843($t6) ## 00000843
/* 01130 809CE1A0 55E00007 */ bnel $t7, $zero, .L809CE1C0
/* 01134 809CE1A4 A619025A */ sh $t9, 0x025A($s0) ## 0000025A
/* 01138 809CE1A8 8602025A */ lh $v0, 0x025A($s0) ## 0000025A
/* 0113C 809CE1AC 18400004 */ blez $v0, .L809CE1C0
/* 01140 809CE1B0 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
/* 01144 809CE1B4 10000002 */ beq $zero, $zero, .L809CE1C0
/* 01148 809CE1B8 A618025A */ sh $t8, 0x025A($s0) ## 0000025A
/* 0114C 809CE1BC A619025A */ sh $t9, 0x025A($s0) ## 0000025A
.L809CE1C0:
/* 01150 809CE1C0 AFA50024 */ sw $a1, 0x0024($sp)
/* 01154 809CE1C4 8E190250 */ lw $t9, 0x0250($s0) ## 00000250
/* 01158 809CE1C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0115C 809CE1CC 0320F809 */ jalr $ra, $t9
/* 01160 809CE1D0 00000000 */ nop
/* 01164 809CE1D4 8E080130 */ lw $t0, 0x0130($s0) ## 00000130
/* 01168 809CE1D8 5100001C */ beql $t0, $zero, .L809CE24C
/* 0116C 809CE1DC 8FBF001C */ lw $ra, 0x001C($sp)
/* 01170 809CE1E0 0C00B638 */ jal Actor_MoveForward
/* 01174 809CE1E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01178 809CE1E8 3C063F19 */ lui $a2, 0x3F19 ## $a2 = 3F190000
/* 0117C 809CE1EC 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3F19999A
/* 01180 809CE1F0 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028
/* 01184 809CE1F4 0C01DE80 */ jal Math_ApproxF
/* 01188 809CE1F8 8E050264 */ lw $a1, 0x0264($s0) ## 00000264
/* 0118C 809CE1FC 3C01809D */ lui $at, %hi(D_809CE4C8) ## $at = 809D0000
/* 01190 809CE200 C426E4C8 */ lwc1 $f6, %lo(D_809CE4C8)($at)
/* 01194 809CE204 C604008C */ lwc1 $f4, 0x008C($s0) ## 0000008C
/* 01198 809CE208 8FA40024 */ lw $a0, 0x0024($sp)
/* 0119C 809CE20C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 011A0 809CE210 4606203C */ c.lt.s $f4, $f6
/* 011A4 809CE214 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 011A8 809CE218 00812821 */ addu $a1, $a0, $at
/* 011AC 809CE21C 45020004 */ bc1fl .L809CE230
/* 011B0 809CE220 C60800BC */ lwc1 $f8, 0x00BC($s0) ## 000000BC
/* 011B4 809CE224 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 011B8 809CE228 2606014C */ addiu $a2, $s0, 0x014C ## $a2 = 0000014C
/* 011BC 809CE22C C60800BC */ lwc1 $f8, 0x00BC($s0) ## 000000BC
.L809CE230:
/* 011C0 809CE230 C60A0054 */ lwc1 $f10, 0x0054($s0) ## 00000054
/* 011C4 809CE234 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 011C8 809CE238 460A4402 */ mul.s $f16, $f8, $f10
/* 011CC 809CE23C 44058000 */ mfc1 $a1, $f16
/* 011D0 809CE240 0C00B56E */ jal Actor_SetHeight
/* 011D4 809CE244 00000000 */ nop
/* 011D8 809CE248 8FBF001C */ lw $ra, 0x001C($sp)
.L809CE24C:
/* 011DC 809CE24C 8FB00018 */ lw $s0, 0x0018($sp)
/* 011E0 809CE250 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 011E4 809CE254 03E00008 */ jr $ra
/* 011E8 809CE258 00000000 */ nop

View File

@ -1,44 +0,0 @@
.late_rodata
glabel D_809CE478
.float 0.6
.text
glabel func_809CD070
/* 00000 809CD070 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00004 809CD074 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00008 809CD078 908E0256 */ lbu $t6, 0x0256($a0) ## 00000256
/* 0000C 809CD07C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00010 809CD080 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 00014 809CD084 55C00012 */ bnel $t6, $zero, .L809CD0D0
/* 00018 809CD088 A0C00256 */ sb $zero, 0x0256($a2) ## 00000256
/* 0001C 809CD08C AFA40018 */ sw $a0, 0x0018($sp)
/* 00020 809CD090 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00024 809CD094 AFA5001C */ sw $a1, 0x001C($sp)
/* 00028 809CD098 3C01809D */ lui $at, %hi(D_809CE478) ## $at = 809D0000
/* 0002C 809CD09C C424E478 */ lwc1 $f4, %lo(D_809CE478)($at)
/* 00030 809CD0A0 8FA60018 */ lw $a2, 0x0018($sp)
/* 00034 809CD0A4 8FA7001C */ lw $a3, 0x001C($sp)
/* 00038 809CD0A8 4604003C */ c.lt.s $f0, $f4
/* 0003C 809CD0AC 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 00040 809CD0B0 24180002 */ addiu $t8, $zero, 0x0002 ## $t8 = 00000002
/* 00044 809CD0B4 45000003 */ bc1f .L809CD0C4
/* 00048 809CD0B8 00000000 */ nop
/* 0004C 809CD0BC 10000004 */ beq $zero, $zero, .L809CD0D0
/* 00050 809CD0C0 A0CF0256 */ sb $t7, 0x0256($a2) ## 00000256
.L809CD0C4:
/* 00054 809CD0C4 10000002 */ beq $zero, $zero, .L809CD0D0
/* 00058 809CD0C8 A0D80256 */ sb $t8, 0x0256($a2) ## 00000256
/* 0005C 809CD0CC A0C00256 */ sb $zero, 0x0256($a2) ## 00000256
.L809CD0D0:
/* 00060 809CD0D0 84E40000 */ lh $a0, 0x0000($a3) ## 00000000
/* 00064 809CD0D4 84E50002 */ lh $a1, 0x0002($a3) ## 00000002
/* 00068 809CD0D8 0C01DF64 */ jal Math_Rand_S16Offset
/* 0006C 809CD0DC AFA60018 */ sw $a2, 0x0018($sp)
/* 00070 809CD0E0 8FA60018 */ lw $a2, 0x0018($sp)
/* 00074 809CD0E4 A4C20254 */ sh $v0, 0x0254($a2) ## 00000254
/* 00078 809CD0E8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0007C 809CD0EC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00080 809CD0F0 03E00008 */ jr $ra
/* 00084 809CD0F4 00000000 */ nop

View File

@ -1,7 +0,0 @@
glabel func_809CD0F8
/* 00088 809CD0F8 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 0008C 809CD0FC 3C01809D */ lui $at, %hi(D_809CE3BC) ## $at = 809D0000
/* 00090 809CD100 E424E3BC */ swc1 $f4, %lo(D_809CE3BC)($at)
/* 00094 809CD104 3C01809D */ lui $at, %hi(D_809CE3C0) ## $at = 809D0000
/* 00098 809CD108 03E00008 */ jr $ra
/* 0009C 809CD10C A420E3C0 */ sh $zero, %lo(D_809CE3C0)($at)

View File

@ -1,19 +0,0 @@
.late_rodata
glabel D_809CE47C
.word 0x3B449BA6
.text
glabel func_809CD110
/* 000A0 809CD110 3C02809D */ lui $v0, %hi(D_809CE3BC) ## $v0 = 809D0000
/* 000A4 809CD114 2442E3BC */ addiu $v0, $v0, %lo(D_809CE3BC) ## $v0 = 809CE3BC
/* 000A8 809CD118 3C01809D */ lui $at, %hi(D_809CE47C) ## $at = 809D0000
/* 000AC 809CD11C C426E47C */ lwc1 $f6, %lo(D_809CE47C)($at)
/* 000B0 809CD120 C4440000 */ lwc1 $f4, 0x0000($v0) ## 809CE3BC
/* 000B4 809CD124 3C03809D */ lui $v1, %hi(D_809CE3C0) ## $v1 = 809D0000
/* 000B8 809CD128 2463E3C0 */ addiu $v1, $v1, %lo(D_809CE3C0) ## $v1 = 809CE3C0
/* 000BC 809CD12C 846E0000 */ lh $t6, 0x0000($v1) ## 809CE3C0
/* 000C0 809CD130 46062200 */ add.s $f8, $f4, $f6
/* 000C4 809CD134 25CF0FA0 */ addiu $t7, $t6, 0x0FA0 ## $t7 = 00000FA0
/* 000C8 809CD138 A46F0000 */ sh $t7, 0x0000($v1) ## 809CE3C0
/* 000CC 809CD13C 03E00008 */ jr $ra
/* 000D0 809CD140 E4480000 */ swc1 $f8, 0x0000($v0) ## 809CE3BC

View File

@ -1,187 +0,0 @@
.rdata
glabel D_809CE420
.asciz "../z_en_choo.c"
.balign 4
glabel D_809CE430
.asciz "../z_en_choo.c"
.balign 4
glabel D_809CE440
.asciz "../z_en_choo.c"
.balign 4
.late_rodata
glabel D_809CE480
.float 9.58738019108e-05
glabel D_809CE484
.float 9.58738019108e-05
glabel D_809CE488
.float 9.58738019108e-05
.text
glabel func_809CD144
/* 000D4 809CD144 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 000D8 809CD148 AFBF001C */ sw $ra, 0x001C($sp)
/* 000DC 809CD14C AFB00018 */ sw $s0, 0x0018($sp)
/* 000E0 809CD150 AFA40068 */ sw $a0, 0x0068($sp)
/* 000E4 809CD154 AFA5006C */ sw $a1, 0x006C($sp)
/* 000E8 809CD158 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 000EC 809CD15C 3C06809D */ lui $a2, %hi(D_809CE420) ## $a2 = 809D0000
/* 000F0 809CD160 24C6E420 */ addiu $a2, $a2, %lo(D_809CE420) ## $a2 = 809CE420
/* 000F4 809CD164 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFD4
/* 000F8 809CD168 24070127 */ addiu $a3, $zero, 0x0127 ## $a3 = 00000127
/* 000FC 809CD16C 0C031AB1 */ jal Graph_OpenDisps
/* 00100 809CD170 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00104 809CD174 8FAF006C */ lw $t7, 0x006C($sp)
/* 00108 809CD178 0C024F05 */ jal func_80093C14
/* 0010C 809CD17C 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 00110 809CD180 3C04809D */ lui $a0, %hi(D_809CE3C0) ## $a0 = 809D0000
/* 00114 809CD184 0C01DE1C */ jal Math_Sins
## sins?
/* 00118 809CD188 8484E3C0 */ lh $a0, %lo(D_809CE3C0)($a0)
/* 0011C 809CD18C 3C01437A */ lui $at, 0x437A ## $at = 437A0000
/* 00120 809CD190 44812000 */ mtc1 $at, $f4 ## $f4 = 250.00
/* 00124 809CD194 00000000 */ nop
/* 00128 809CD198 46040182 */ mul.s $f6, $f0, $f4
/* 0012C 809CD19C 4600320D */ trunc.w.s $f8, $f6
/* 00130 809CD1A0 44024000 */ mfc1 $v0, $f8
/* 00134 809CD1A4 00000000 */ nop
/* 00138 809CD1A8 04410003 */ bgez $v0, .L809CD1B8
/* 0013C 809CD1AC 28410100 */ slti $at, $v0, 0x0100
/* 00140 809CD1B0 10000006 */ beq $zero, $zero, .L809CD1CC
/* 00144 809CD1B4 AFA00058 */ sw $zero, 0x0058($sp)
.L809CD1B8:
/* 00148 809CD1B8 14200003 */ bne $at, $zero, .L809CD1C8
/* 0014C 809CD1BC 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
/* 00150 809CD1C0 10000001 */ beq $zero, $zero, .L809CD1C8
/* 00154 809CD1C4 240300FF */ addiu $v1, $zero, 0x00FF ## $v1 = 000000FF
.L809CD1C8:
/* 00158 809CD1C8 AFA30058 */ sw $v1, 0x0058($sp)
.L809CD1CC:
/* 0015C 809CD1CC 8FA2006C */ lw $v0, 0x006C($sp)
/* 00160 809CD1D0 27A40050 */ addiu $a0, $sp, 0x0050 ## $a0 = FFFFFFE8
/* 00164 809CD1D4 845907A0 */ lh $t9, 0x07A0($v0) ## 000007A0
/* 00168 809CD1D8 00194080 */ sll $t0, $t9, 2
/* 0016C 809CD1DC 00484821 */ addu $t1, $v0, $t0
/* 00170 809CD1E0 0C016A5C */ jal func_8005A970
/* 00174 809CD1E4 8D250790 */ lw $a1, 0x0790($t1) ## 00000790
/* 00178 809CD1E8 87AA0052 */ lh $t2, 0x0052($sp)
/* 0017C 809CD1EC 3C01809D */ lui $at, %hi(D_809CE480) ## $at = 809D0000
/* 00180 809CD1F0 C432E480 */ lwc1 $f18, %lo(D_809CE480)($at)
/* 00184 809CD1F4 448A5000 */ mtc1 $t2, $f10 ## $f10 = 0.00
/* 00188 809CD1F8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 0018C 809CD1FC 46805420 */ cvt.s.w $f16, $f10
/* 00190 809CD200 46128302 */ mul.s $f12, $f16, $f18
/* 00194 809CD204 0C034348 */ jal Matrix_RotateY
/* 00198 809CD208 00000000 */ nop
/* 0019C 809CD20C 87AB0050 */ lh $t3, 0x0050($sp)
/* 001A0 809CD210 3C01809D */ lui $at, %hi(D_809CE484) ## $at = 809D0000
/* 001A4 809CD214 C428E484 */ lwc1 $f8, %lo(D_809CE484)($at)
/* 001A8 809CD218 448B2000 */ mtc1 $t3, $f4 ## $f4 = 0.00
/* 001AC 809CD21C 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 001B0 809CD220 468021A0 */ cvt.s.w $f6, $f4
/* 001B4 809CD224 46083302 */ mul.s $f12, $f6, $f8
/* 001B8 809CD228 0C0342DC */ jal Matrix_RotateX
/* 001BC 809CD22C 00000000 */ nop
/* 001C0 809CD230 87AC0054 */ lh $t4, 0x0054($sp)
/* 001C4 809CD234 3C01809D */ lui $at, %hi(D_809CE488) ## $at = 809D0000
/* 001C8 809CD238 C432E488 */ lwc1 $f18, %lo(D_809CE488)($at)
/* 001CC 809CD23C 448C5000 */ mtc1 $t4, $f10 ## $f10 = 0.00
/* 001D0 809CD240 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 001D4 809CD244 46805420 */ cvt.s.w $f16, $f10
/* 001D8 809CD248 46128302 */ mul.s $f12, $f16, $f18
/* 001DC 809CD24C 0C0343B5 */ jal Matrix_RotateZ
/* 001E0 809CD250 00000000 */ nop
/* 001E4 809CD254 3C04809D */ lui $a0, %hi(D_809CE3C4) ## $a0 = 809D0000
/* 001E8 809CD258 2484E3C4 */ addiu $a0, $a0, %lo(D_809CE3C4) ## $a0 = 809CE3C4
/* 001EC 809CD25C 0C0346BD */ jal Matrix_MultVec3f
/* 001F0 809CD260 27A5005C */ addiu $a1, $sp, 0x005C ## $a1 = FFFFFFF4
/* 001F4 809CD264 8FA20068 */ lw $v0, 0x0068($sp)
/* 001F8 809CD268 C7B20064 */ lwc1 $f18, 0x0064($sp)
/* 001FC 809CD26C C7B0005C */ lwc1 $f16, 0x005C($sp)
/* 00200 809CD270 C44A0040 */ lwc1 $f10, 0x0040($v0) ## 00000040
/* 00204 809CD274 C4480038 */ lwc1 $f8, 0x0038($v0) ## 00000038
/* 00208 809CD278 C446003C */ lwc1 $f6, 0x003C($v0) ## 0000003C
/* 0020C 809CD27C 46125480 */ add.s $f18, $f10, $f18
/* 00210 809CD280 C7AA0060 */ lwc1 $f10, 0x0060($sp)
/* 00214 809CD284 27A70050 */ addiu $a3, $sp, 0x0050 ## $a3 = FFFFFFE8
/* 00218 809CD288 46104300 */ add.s $f12, $f8, $f16
/* 0021C 809CD28C 44069000 */ mfc1 $a2, $f18
/* 00220 809CD290 0C0345A5 */ jal func_800D1694
/* 00224 809CD294 460A3380 */ add.s $f14, $f6, $f10
/* 00228 809CD298 3C01809D */ lui $at, %hi(D_809CE3BC) ## $at = 809D0000
/* 0022C 809CD29C C42CE3BC */ lwc1 $f12, %lo(D_809CE3BC)($at)
/* 00230 809CD2A0 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00234 809CD2A4 44066000 */ mfc1 $a2, $f12
/* 00238 809CD2A8 0C0342A3 */ jal Matrix_Scale
/* 0023C 809CD2AC 46006386 */ mov.s $f14, $f12
/* 00240 809CD2B0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00244 809CD2B4 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000
/* 00248 809CD2B8 35CE0003 */ ori $t6, $t6, 0x0003 ## $t6 = DA380003
/* 0024C 809CD2BC 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 00250 809CD2C0 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 00254 809CD2C4 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 00258 809CD2C8 8FAF006C */ lw $t7, 0x006C($sp)
/* 0025C 809CD2CC 3C05809D */ lui $a1, %hi(D_809CE430) ## $a1 = 809D0000
/* 00260 809CD2D0 24A5E430 */ addiu $a1, $a1, %lo(D_809CE430) ## $a1 = 809CE430
/* 00264 809CD2D4 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 00268 809CD2D8 2406013D */ addiu $a2, $zero, 0x013D ## $a2 = 0000013D
/* 0026C 809CD2DC 0C0346A2 */ jal Matrix_NewMtx
/* 00270 809CD2E0 AFA20038 */ sw $v0, 0x0038($sp)
/* 00274 809CD2E4 8FA30038 */ lw $v1, 0x0038($sp)
/* 00278 809CD2E8 3C19FA00 */ lui $t9, 0xFA00 ## $t9 = FA000000
/* 0027C 809CD2EC 37398080 */ ori $t9, $t9, 0x8080 ## $t9 = FA008080
/* 00280 809CD2F0 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00284 809CD2F4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00288 809CD2F8 3C01C8C8 */ lui $at, 0xC8C8 ## $at = C8C80000
/* 0028C 809CD2FC 3421B400 */ ori $at, $at, 0xB400 ## $at = C8C8B400
/* 00290 809CD300 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00294 809CD304 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 00298 809CD308 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 0029C 809CD30C 8FA80058 */ lw $t0, 0x0058($sp)
/* 002A0 809CD310 3C0DC8C8 */ lui $t5, 0xC8C8 ## $t5 = C8C80000
/* 002A4 809CD314 35ADD2FF */ ori $t5, $t5, 0xD2FF ## $t5 = C8C8D2FF
/* 002A8 809CD318 310900FF */ andi $t1, $t0, 0x00FF ## $t1 = 00000000
/* 002AC 809CD31C 01215025 */ or $t2, $t1, $at ## $t2 = C8C8B400
/* 002B0 809CD320 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 002B4 809CD324 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 002B8 809CD328 3C0CFB00 */ lui $t4, 0xFB00 ## $t4 = FB000000
/* 002BC 809CD32C 3C040401 */ lui $a0, 0x0401 ## $a0 = 04010000
/* 002C0 809CD330 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 002C4 809CD334 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 002C8 809CD338 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 002CC 809CD33C AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 002D0 809CD340 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 002D4 809CD344 24840130 */ addiu $a0, $a0, 0x0130 ## $a0 = 04010130
/* 002D8 809CD348 0004C100 */ sll $t8, $a0, 4
/* 002DC 809CD34C 0018CF02 */ srl $t9, $t8, 28
/* 002E0 809CD350 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 002E4 809CD354 AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 002E8 809CD358 00194080 */ sll $t0, $t9, 2
/* 002EC 809CD35C 3C098016 */ lui $t1, %hi(gSegments)
/* 002F0 809CD360 3C0FDE00 */ lui $t7, 0xDE00 ## $t7 = DE000000
/* 002F4 809CD364 01284821 */ addu $t1, $t1, $t0
/* 002F8 809CD368 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 002FC 809CD36C AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00300 809CD370 8D296FA8 */ lw $t1, %lo(gSegments)($t1)
/* 00304 809CD374 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 00308 809CD378 00815024 */ and $t2, $a0, $at
/* 0030C 809CD37C 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00310 809CD380 012A5821 */ addu $t3, $t1, $t2
/* 00314 809CD384 01616021 */ addu $t4, $t3, $at
/* 00318 809CD388 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 0031C 809CD38C 8FAD006C */ lw $t5, 0x006C($sp)
/* 00320 809CD390 3C06809D */ lui $a2, %hi(D_809CE440) ## $a2 = 809D0000
/* 00324 809CD394 24C6E440 */ addiu $a2, $a2, %lo(D_809CE440) ## $a2 = 809CE440
/* 00328 809CD398 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFD4
/* 0032C 809CD39C 24070146 */ addiu $a3, $zero, 0x0146 ## $a3 = 00000146
/* 00330 809CD3A0 0C031AD5 */ jal Graph_CloseDisps
/* 00334 809CD3A4 8DA50000 */ lw $a1, 0x0000($t5) ## C8C8D2FF
/* 00338 809CD3A8 8FBF001C */ lw $ra, 0x001C($sp)
/* 0033C 809CD3AC 8FB00018 */ lw $s0, 0x0018($sp)
/* 00340 809CD3B0 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000
/* 00344 809CD3B4 03E00008 */ jr $ra
/* 00348 809CD3B8 00000000 */ nop

View File

@ -1,56 +0,0 @@
glabel func_809CD56C
/* 004FC 809CD56C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00500 809CD570 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00504 809CD574 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000
/* 00508 809CD578 8484025E */ lh $a0, 0x025E($a0) ## 0000025E
/* 0050C 809CD57C 0C01DE1C */ jal Math_Sins
## sins?
/* 00510 809CD580 AFA50020 */ sw $a1, 0x0020($sp)
/* 00514 809CD584 8FA50020 */ lw $a1, 0x0020($sp)
/* 00518 809CD588 E7A00018 */ swc1 $f0, 0x0018($sp)
/* 0051C 809CD58C 0C01DE1C */ jal Math_Sins
## sins?
/* 00520 809CD590 84A4025C */ lh $a0, 0x025C($a1) ## 0000025C
/* 00524 809CD594 8FA50020 */ lw $a1, 0x0020($sp)
/* 00528 809CD598 3C01C4FA */ lui $at, 0xC4FA ## $at = C4FA0000
/* 0052C 809CD59C 44816000 */ mtc1 $at, $f12 ## $f12 = -2000.00
/* 00530 809CD5A0 90A20256 */ lbu $v0, 0x0256($a1) ## 00000256
/* 00534 809CD5A4 3C01809D */ lui $at, %hi(D_809CE3EC) ## $at = 809D0000
/* 00538 809CD5A8 C7A40018 */ lwc1 $f4, 0x0018($sp)
/* 0053C 809CD5AC 00021080 */ sll $v0, $v0, 2
/* 00540 809CD5B0 00220821 */ addu $at, $at, $v0
/* 00544 809CD5B4 C426E3EC */ lwc1 $f6, %lo(D_809CE3EC)($at)
/* 00548 809CD5B8 3C01809D */ lui $at, %hi(D_809CE3E0) ## $at = 809D0000
/* 0054C 809CD5BC 00220821 */ addu $at, $at, $v0
/* 00550 809CD5C0 46062202 */ mul.s $f8, $f4, $f6
/* 00554 809CD5C4 C42AE3E0 */ lwc1 $f10, %lo(D_809CE3E0)($at)
/* 00558 809CD5C8 C4A400BC */ lwc1 $f4, 0x00BC($a1) ## 000000BC
/* 0055C 809CD5CC 3C0144FA */ lui $at, 0x44FA ## $at = 44FA0000
/* 00560 809CD5D0 460A0402 */ mul.s $f16, $f0, $f10
/* 00564 809CD5D4 46088480 */ add.s $f18, $f16, $f8
/* 00568 809CD5D8 46122180 */ add.s $f6, $f4, $f18
/* 0056C 809CD5DC E4A600BC */ swc1 $f6, 0x00BC($a1) ## 000000BC
/* 00570 809CD5E0 C4A200BC */ lwc1 $f2, 0x00BC($a1) ## 000000BC
/* 00574 809CD5E4 460C103C */ c.lt.s $f2, $f12
/* 00578 809CD5E8 00000000 */ nop
/* 0057C 809CD5EC 45020004 */ bc1fl .L809CD600
/* 00580 809CD5F0 44816000 */ mtc1 $at, $f12 ## $f12 = 2000.00
/* 00584 809CD5F4 1000000B */ beq $zero, $zero, .L809CD624
/* 00588 809CD5F8 E4AC00BC */ swc1 $f12, 0x00BC($a1) ## 000000BC
/* 0058C 809CD5FC 44816000 */ mtc1 $at, $f12 ## $f12 = 2000.00
.L809CD600:
/* 00590 809CD600 00000000 */ nop
/* 00594 809CD604 4602603C */ c.lt.s $f12, $f2
/* 00598 809CD608 00000000 */ nop
/* 0059C 809CD60C 45020004 */ bc1fl .L809CD620
/* 005A0 809CD610 46001006 */ mov.s $f0, $f2
/* 005A4 809CD614 10000002 */ beq $zero, $zero, .L809CD620
/* 005A8 809CD618 46006006 */ mov.s $f0, $f12
/* 005AC 809CD61C 46001006 */ mov.s $f0, $f2
.L809CD620:
/* 005B0 809CD620 E4A000BC */ swc1 $f0, 0x00BC($a1) ## 000000BC
.L809CD624:
/* 005B4 809CD624 8FBF0014 */ lw $ra, 0x0014($sp)
/* 005B8 809CD628 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 005BC 809CD62C 03E00008 */ jr $ra
/* 005C0 809CD630 00000000 */ nop

View File

@ -1,56 +0,0 @@
glabel func_809CD634
/* 005C4 809CD634 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 005C8 809CD638 AFBF0014 */ sw $ra, 0x0014($sp)
/* 005CC 809CD63C 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000
/* 005D0 809CD640 8484025E */ lh $a0, 0x025E($a0) ## 0000025E
/* 005D4 809CD644 0C01DE1C */ jal Math_Sins
## sins?
/* 005D8 809CD648 AFA50020 */ sw $a1, 0x0020($sp)
/* 005DC 809CD64C 8FA50020 */ lw $a1, 0x0020($sp)
/* 005E0 809CD650 E7A00018 */ swc1 $f0, 0x0018($sp)
/* 005E4 809CD654 0C01DE1C */ jal Math_Sins
## sins?
/* 005E8 809CD658 84A4025C */ lh $a0, 0x025C($a1) ## 0000025C
/* 005EC 809CD65C 8FA50020 */ lw $a1, 0x0020($sp)
/* 005F0 809CD660 3C01C3FA */ lui $at, 0xC3FA ## $at = C3FA0000
/* 005F4 809CD664 44816000 */ mtc1 $at, $f12 ## $f12 = -500.00
/* 005F8 809CD668 90A20256 */ lbu $v0, 0x0256($a1) ## 00000256
/* 005FC 809CD66C 3C01809D */ lui $at, %hi(D_809CE404) ## $at = 809D0000
/* 00600 809CD670 C7A40018 */ lwc1 $f4, 0x0018($sp)
/* 00604 809CD674 00021080 */ sll $v0, $v0, 2
/* 00608 809CD678 00220821 */ addu $at, $at, $v0
/* 0060C 809CD67C C426E404 */ lwc1 $f6, %lo(D_809CE404)($at)
/* 00610 809CD680 3C01809D */ lui $at, %hi(D_809CE3F8) ## $at = 809D0000
/* 00614 809CD684 00220821 */ addu $at, $at, $v0
/* 00618 809CD688 46062202 */ mul.s $f8, $f4, $f6
/* 0061C 809CD68C C42AE3F8 */ lwc1 $f10, %lo(D_809CE3F8)($at)
/* 00620 809CD690 C4A400BC */ lwc1 $f4, 0x00BC($a1) ## 000000BC
/* 00624 809CD694 3C0143FA */ lui $at, 0x43FA ## $at = 43FA0000
/* 00628 809CD698 460A0402 */ mul.s $f16, $f0, $f10
/* 0062C 809CD69C 46088480 */ add.s $f18, $f16, $f8
/* 00630 809CD6A0 46122180 */ add.s $f6, $f4, $f18
/* 00634 809CD6A4 E4A600BC */ swc1 $f6, 0x00BC($a1) ## 000000BC
/* 00638 809CD6A8 C4A200BC */ lwc1 $f2, 0x00BC($a1) ## 000000BC
/* 0063C 809CD6AC 460C103C */ c.lt.s $f2, $f12
/* 00640 809CD6B0 00000000 */ nop
/* 00644 809CD6B4 45020004 */ bc1fl .L809CD6C8
/* 00648 809CD6B8 44816000 */ mtc1 $at, $f12 ## $f12 = 500.00
/* 0064C 809CD6BC 1000000B */ beq $zero, $zero, .L809CD6EC
/* 00650 809CD6C0 E4AC00BC */ swc1 $f12, 0x00BC($a1) ## 000000BC
/* 00654 809CD6C4 44816000 */ mtc1 $at, $f12 ## $f12 = 500.00
.L809CD6C8:
/* 00658 809CD6C8 00000000 */ nop
/* 0065C 809CD6CC 4602603C */ c.lt.s $f12, $f2
/* 00660 809CD6D0 00000000 */ nop
/* 00664 809CD6D4 45020004 */ bc1fl .L809CD6E8
/* 00668 809CD6D8 46001006 */ mov.s $f0, $f2
/* 0066C 809CD6DC 10000002 */ beq $zero, $zero, .L809CD6E8
/* 00670 809CD6E0 46006006 */ mov.s $f0, $f12
/* 00674 809CD6E4 46001006 */ mov.s $f0, $f2
.L809CD6E8:
/* 00678 809CD6E8 E4A000BC */ swc1 $f0, 0x00BC($a1) ## 000000BC
.L809CD6EC:
/* 0067C 809CD6EC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00680 809CD6F0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00684 809CD6F4 03E00008 */ jr $ra
/* 00688 809CD6F8 00000000 */ nop

View File

@ -1,45 +0,0 @@
glabel func_809CD6FC
/* 0068C 809CD6FC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00690 809CD700 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00694 809CD704 84850032 */ lh $a1, 0x0032($a0) ## 00000032
/* 00698 809CD708 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 0069C 809CD70C 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 006A0 809CD710 00A12821 */ addu $a1, $a1, $at
/* 006A4 809CD714 00052C00 */ sll $a1, $a1, 16
/* 006A8 809CD718 00052C03 */ sra $a1, $a1, 16
/* 006AC 809CD71C 00AE1023 */ subu $v0, $a1, $t6
/* 006B0 809CD720 00021400 */ sll $v0, $v0, 16
/* 006B4 809CD724 00021403 */ sra $v0, $v0, 16
/* 006B8 809CD728 04400003 */ bltz $v0, .L809CD738
/* 006BC 809CD72C 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 006C0 809CD730 10000002 */ beq $zero, $zero, .L809CD73C
/* 006C4 809CD734 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L809CD738:
/* 006C8 809CD738 00021823 */ subu $v1, $zero, $v0
.L809CD73C:
/* 006CC 809CD73C 000330C3 */ sra $a2, $v1, 3
/* 006D0 809CD740 00063400 */ sll $a2, $a2, 16
/* 006D4 809CD744 00063403 */ sra $a2, $a2, 16
/* 006D8 809CD748 24E400B6 */ addiu $a0, $a3, 0x00B6 ## $a0 = 000000B6
/* 006DC 809CD74C 0C01DE2B */ jal Math_ApproxUpdateScaledS
/* 006E0 809CD750 AFA70018 */ sw $a3, 0x0018($sp)
/* 006E4 809CD754 8FA70018 */ lw $a3, 0x0018($sp)
/* 006E8 809CD758 84EF0260 */ lh $t7, 0x0260($a3) ## 00000260
/* 006EC 809CD75C 448F2000 */ mtc1 $t7, $f4 ## $f4 = 0.00
/* 006F0 809CD760 0C0400A4 */ jal sinf
/* 006F4 809CD764 46802320 */ cvt.s.w $f12, $f4
/* 006F8 809CD768 3C014416 */ lui $at, 0x4416 ## $at = 44160000
/* 006FC 809CD76C 44813000 */ mtc1 $at, $f6 ## $f6 = 600.00
/* 00700 809CD770 8FA70018 */ lw $a3, 0x0018($sp)
/* 00704 809CD774 46060202 */ mul.s $f8, $f0, $f6
/* 00708 809CD778 4600428D */ trunc.w.s $f10, $f8
/* 0070C 809CD77C 44095000 */ mfc1 $t1, $f10
/* 00710 809CD780 00000000 */ nop
/* 00714 809CD784 252ADCE0 */ addiu $t2, $t1, 0xDCE0 ## $t2 = FFFFDCE0
/* 00718 809CD788 A4EA00B4 */ sh $t2, 0x00B4($a3) ## 000000B4
/* 0071C 809CD78C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00720 809CD790 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00724 809CD794 03E00008 */ jr $ra
/* 00728 809CD798 00000000 */ nop

View File

@ -1,20 +0,0 @@
glabel func_809CD79C
/* 0072C 809CD79C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00730 809CD7A0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00734 809CD7A4 908E0256 */ lbu $t6, 0x0256($a0) ## 00000256
/* 00738 809CD7A8 3C18809D */ lui $t8, %hi(D_809CE344) ## $t8 = 809D0000
/* 0073C 809CD7AC 2718E344 */ addiu $t8, $t8, %lo(D_809CE344) ## $t8 = 809CE344
/* 00740 809CD7B0 000E7880 */ sll $t7, $t6, 2
/* 00744 809CD7B4 01EE7821 */ addu $t7, $t7, $t6
/* 00748 809CD7B8 000F7880 */ sll $t7, $t7, 2
/* 0074C 809CD7BC 01F82821 */ addu $a1, $t7, $t8
/* 00750 809CD7C0 0C27341C */ jal func_809CD070
/* 00754 809CD7C4 AFA40018 */ sw $a0, 0x0018($sp)
/* 00758 809CD7C8 8FA40018 */ lw $a0, 0x0018($sp)
/* 0075C 809CD7CC 3C19809D */ lui $t9, %hi(func_809CD7E8) ## $t9 = 809D0000
/* 00760 809CD7D0 2739D7E8 */ addiu $t9, $t9, %lo(func_809CD7E8) ## $t9 = 809CD7E8
/* 00764 809CD7D4 AC990250 */ sw $t9, 0x0250($a0) ## 00000250
/* 00768 809CD7D8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0076C 809CD7DC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00770 809CD7E0 03E00008 */ jr $ra
/* 00774 809CD7E4 00000000 */ nop

View File

@ -1,299 +0,0 @@
.late_rodata
glabel D_809CE498
.float 10000.0
glabel D_809CE49C
.word 0x44992000
glabel D_809CE4A0
.float 0.3
glabel D_809CE4A4
.float 0.4
glabel D_809CE4A8
.float 0.2
glabel D_809CE4AC
.float 0.15
glabel D_809CE4B0
.float 0.3
.text
glabel func_809CD7E8
/* 00778 809CD7E8 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 0077C 809CD7EC AFBF0024 */ sw $ra, 0x0024($sp)
/* 00780 809CD7F0 AFB00020 */ sw $s0, 0x0020($sp)
/* 00784 809CD7F4 908E0256 */ lbu $t6, 0x0256($a0) ## 00000256
/* 00788 809CD7F8 3C18809D */ lui $t8, %hi(D_809CE344) ## $t8 = 809D0000
/* 0078C 809CD7FC 2718E344 */ addiu $t8, $t8, %lo(D_809CE344) ## $t8 = 809CE344
/* 00790 809CD800 000E7880 */ sll $t7, $t6, 2
/* 00794 809CD804 01EE7821 */ addu $t7, $t7, $t6
/* 00798 809CD808 000F7880 */ sll $t7, $t7, 2
/* 0079C 809CD80C 01F8C821 */ addu $t9, $t7, $t8
/* 007A0 809CD810 AFB9004C */ sw $t9, 0x004C($sp)
/* 007A4 809CD814 8CA81C44 */ lw $t0, 0x1C44($a1) ## 00001C44
/* 007A8 809CD818 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 007AC 809CD81C AFA80044 */ sw $t0, 0x0044($sp)
/* 007B0 809CD820 8C870010 */ lw $a3, 0x0010($a0) ## 00000010
/* 007B4 809CD824 8C860008 */ lw $a2, 0x0008($a0) ## 00000008
/* 007B8 809CD828 C48E002C */ lwc1 $f14, 0x002C($a0) ## 0000002C
/* 007BC 809CD82C 0C032D65 */ jal Math3D_Dist2DSq
/* 007C0 809CD830 C48C0024 */ lwc1 $f12, 0x0024($a0) ## 00000024
/* 007C4 809CD834 E7A00040 */ swc1 $f0, 0x0040($sp)
/* 007C8 809CD838 0C27355B */ jal func_809CD56C
/* 007CC 809CD83C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007D0 809CD840 8FA2004C */ lw $v0, 0x004C($sp)
/* 007D4 809CD844 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 007D8 809CD848 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 007DC 809CD84C 8C450004 */ lw $a1, 0x0004($v0) ## 00000004
/* 007E0 809CD850 8C460008 */ lw $a2, 0x0008($v0) ## 00000008
/* 007E4 809CD854 8C47000C */ lw $a3, 0x000C($v0) ## 0000000C
/* 007E8 809CD858 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
/* 007EC 809CD85C E7A40010 */ swc1 $f4, 0x0010($sp)
/* 007F0 809CD860 92090257 */ lbu $t1, 0x0257($s0) ## 00000257
/* 007F4 809CD864 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 007F8 809CD868 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 007FC 809CD86C 14E90005 */ bne $a3, $t1, .L809CD884
/* 00800 809CD870 3C01809D */ lui $at, %hi(D_809CE49C) ## $at = 809D0000
/* 00804 809CD874 3C01809D */ lui $at, %hi(D_809CE498) ## $at = 809D0000
/* 00808 809CD878 C420E498 */ lwc1 $f0, %lo(D_809CE498)($at)
/* 0080C 809CD87C 10000003 */ beq $zero, $zero, .L809CD88C
/* 00810 809CD880 240603E8 */ addiu $a2, $zero, 0x03E8 ## $a2 = 000003E8
.L809CD884:
/* 00814 809CD884 C420E49C */ lwc1 $f0, %lo(D_809CE49C)($at)
/* 00818 809CD888 24060258 */ addiu $a2, $zero, 0x0258 ## $a2 = 00000258
.L809CD88C:
/* 0081C 809CD88C E7A60038 */ swc1 $f6, 0x0038($sp)
/* 00820 809CD890 920A0256 */ lbu $t2, 0x0256($s0) ## 00000256
/* 00824 809CD894 C608000C */ lwc1 $f8, 0x000C($s0) ## 0000000C
/* 00828 809CD898 11400018 */ beq $t2, $zero, .L809CD8FC
/* 0082C 809CD89C E6080264 */ swc1 $f8, 0x0264($s0) ## 00000264
/* 00830 809CD8A0 C7AA0040 */ lwc1 $f10, 0x0040($sp)
/* 00834 809CD8A4 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 00838 809CD8A8 460A003C */ c.lt.s $f0, $f10
/* 0083C 809CD8AC 00000000 */ nop
/* 00840 809CD8B0 45010005 */ bc1t .L809CD8C8
/* 00844 809CD8B4 00000000 */ nop
/* 00848 809CD8B8 860B0254 */ lh $t3, 0x0254($s0) ## 00000254
/* 0084C 809CD8BC 29610004 */ slti $at, $t3, 0x0004
/* 00850 809CD8C0 5020000F */ beql $at, $zero, .L809CD900
/* 00854 809CD8C4 92030257 */ lbu $v1, 0x0257($s0) ## 00000257
.L809CD8C8:
/* 00858 809CD8C8 0C01E01A */ jal Math_Vec3f_Yaw
/* 0085C 809CD8CC 26050008 */ addiu $a1, $s0, 0x0008 ## $a1 = 00000008
/* 00860 809CD8D0 8FAC004C */ lw $t4, 0x004C($sp)
/* 00864 809CD8D4 00022C00 */ sll $a1, $v0, 16
/* 00868 809CD8D8 00052C03 */ sra $a1, $a1, 16
/* 0086C 809CD8DC 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 00870 809CD8E0 0C01DE2B */ jal Math_ApproxUpdateScaledS
/* 00874 809CD8E4 85860010 */ lh $a2, 0x0010($t4) ## 00000010
/* 00878 809CD8E8 14400041 */ bne $v0, $zero, .L809CD9F0
/* 0087C 809CD8EC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00880 809CD8F0 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50
/* 00884 809CD8F4 1000003E */ beq $zero, $zero, .L809CD9F0
/* 00888 809CD8F8 E7B20038 */ swc1 $f18, 0x0038($sp)
.L809CD8FC:
/* 0088C 809CD8FC 92030257 */ lbu $v1, 0x0257($s0) ## 00000257
.L809CD900:
/* 00890 809CD900 14600013 */ bne $v1, $zero, .L809CD950
/* 00894 809CD904 00000000 */ nop
/* 00898 809CD908 8E02011C */ lw $v0, 0x011C($s0) ## 0000011C
/* 0089C 809CD90C 10400010 */ beq $v0, $zero, .L809CD950
/* 008A0 809CD910 00000000 */ nop
/* 008A4 809CD914 1202000E */ beq $s0, $v0, .L809CD950
/* 008A8 809CD918 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 008AC 809CD91C 24450024 */ addiu $a1, $v0, 0x0024 ## $a1 = 00000024
/* 008B0 809CD920 0C01E01A */ jal Math_Vec3f_Yaw
/* 008B4 809CD924 A7A60032 */ sh $a2, 0x0032($sp)
/* 008B8 809CD928 00022C00 */ sll $a1, $v0, 16
/* 008BC 809CD92C 87A60032 */ lh $a2, 0x0032($sp)
/* 008C0 809CD930 00052C03 */ sra $a1, $a1, 16
/* 008C4 809CD934 0C01DE2B */ jal Math_ApproxUpdateScaledS
/* 008C8 809CD938 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 008CC 809CD93C 1440002C */ bne $v0, $zero, .L809CD9F0
/* 008D0 809CD940 3C01809D */ lui $at, %hi(D_809CE4A0) ## $at = 809D0000
/* 008D4 809CD944 C424E4A0 */ lwc1 $f4, %lo(D_809CE4A0)($at)
/* 008D8 809CD948 10000029 */ beq $zero, $zero, .L809CD9F0
/* 008DC 809CD94C E7A40038 */ swc1 $f4, 0x0038($sp)
.L809CD950:
/* 008E0 809CD950 54E3001B */ bnel $a3, $v1, .L809CD9C0
/* 008E4 809CD954 8608025C */ lh $t0, 0x025C($s0) ## 0000025C
/* 008E8 809CD958 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 008EC 809CD95C A7A60032 */ sh $a2, 0x0032($sp)
/* 008F0 809CD960 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 008F4 809CD964 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50
/* 008F8 809CD968 3C0146C0 */ lui $at, 0x46C0 ## $at = 46C00000
/* 008FC 809CD96C 44815000 */ mtc1 $at, $f10 ## $f10 = 24576.00
/* 00900 809CD970 46060201 */ sub.s $f8, $f0, $f6
/* 00904 809CD974 8619008A */ lh $t9, 0x008A($s0) ## 0000008A
/* 00908 809CD978 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 0090C 809CD97C 87A60032 */ lh $a2, 0x0032($sp)
/* 00910 809CD980 460A4482 */ mul.s $f18, $f8, $f10
/* 00914 809CD984 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 00918 809CD988 4600910D */ trunc.w.s $f4, $f18
/* 0091C 809CD98C 44182000 */ mfc1 $t8, $f4
/* 00920 809CD990 00000000 */ nop
/* 00924 809CD994 03192821 */ addu $a1, $t8, $t9
/* 00928 809CD998 00A12821 */ addu $a1, $a1, $at
/* 0092C 809CD99C 00052C00 */ sll $a1, $a1, 16
/* 00930 809CD9A0 0C01DE2B */ jal Math_ApproxUpdateScaledS
/* 00934 809CD9A4 00052C03 */ sra $a1, $a1, 16
/* 00938 809CD9A8 14400011 */ bne $v0, $zero, .L809CD9F0
/* 0093C 809CD9AC 3C01809D */ lui $at, %hi(D_809CE4A4) ## $at = 809D0000
/* 00940 809CD9B0 C426E4A4 */ lwc1 $f6, %lo(D_809CE4A4)($at)
/* 00944 809CD9B4 1000000E */ beq $zero, $zero, .L809CD9F0
/* 00948 809CD9B8 E7A60038 */ swc1 $f6, 0x0038($sp)
/* 0094C 809CD9BC 8608025C */ lh $t0, 0x025C($s0) ## 0000025C
.L809CD9C0:
/* 00950 809CD9C0 44884000 */ mtc1 $t0, $f8 ## $f8 = 0.00
/* 00954 809CD9C4 0C0400A4 */ jal sinf
/* 00958 809CD9C8 46804320 */ cvt.s.w $f12, $f8
/* 0095C 809CD9CC 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00960 809CD9D0 44815000 */ mtc1 $at, $f10 ## $f10 = 100.00
/* 00964 809CD9D4 86090032 */ lh $t1, 0x0032($s0) ## 00000032
/* 00968 809CD9D8 460A0482 */ mul.s $f18, $f0, $f10
/* 0096C 809CD9DC 4600910D */ trunc.w.s $f4, $f18
/* 00970 809CD9E0 440D2000 */ mfc1 $t5, $f4
/* 00974 809CD9E4 00000000 */ nop
/* 00978 809CD9E8 012D7021 */ addu $t6, $t1, $t5
/* 0097C 809CD9EC A60E0032 */ sh $t6, 0x0032($s0) ## 00000032
.L809CD9F0:
/* 00980 809CD9F0 0C2735BF */ jal func_809CD6FC
/* 00984 809CD9F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00988 809CD9F8 0C01DE1C */ jal Math_Sins
## sins?
/* 0098C 809CD9FC 86040260 */ lh $a0, 0x0260($s0) ## 00000260
/* 00990 809CDA00 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00994 809CDA04 E7A00028 */ swc1 $f0, 0x0028($sp)
/* 00998 809CDA08 8604025E */ lh $a0, 0x025E($s0) ## 0000025E
/* 0099C 809CDA0C 0C01DE1C */ jal Math_Sins
## sins?
/* 009A0 809CDA10 E7A0002C */ swc1 $f0, 0x002C($sp)
/* 009A4 809CDA14 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 009A8 809CDA18 44817000 */ mtc1 $at, $f14 ## $f14 = 1.00
/* 009AC 809CDA1C 3C01809D */ lui $at, %hi(D_809CE4A8) ## $at = 809D0000
/* 009B0 809CDA20 C430E4A8 */ lwc1 $f16, %lo(D_809CE4A8)($at)
/* 009B4 809CDA24 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 009B8 809CDA28 44814000 */ mtc1 $at, $f8 ## $f8 = 0.50
/* 009BC 809CDA2C C6060068 */ lwc1 $f6, 0x0068($s0) ## 00000068
/* 009C0 809CDA30 C7A2002C */ lwc1 $f2, 0x002C($sp)
/* 009C4 809CDA34 3C01809D */ lui $at, %hi(D_809CE4AC) ## $at = 809D0000
/* 009C8 809CDA38 46083282 */ mul.s $f10, $f6, $f8
/* 009CC 809CDA3C C7A60028 */ lwc1 $f6, 0x0028($sp)
/* 009D0 809CDA40 46101482 */ mul.s $f18, $f2, $f16
/* 009D4 809CDA44 46067201 */ sub.s $f8, $f14, $f6
/* 009D8 809CDA48 46125100 */ add.s $f4, $f10, $f18
/* 009DC 809CDA4C C42AE4AC */ lwc1 $f10, %lo(D_809CE4AC)($at)
/* 009E0 809CDA50 3C01809D */ lui $at, %hi(D_809CE4B0) ## $at = 809D0000
/* 009E4 809CDA54 460A4482 */ mul.s $f18, $f8, $f10
/* 009E8 809CDA58 46007201 */ sub.s $f8, $f14, $f0
/* 009EC 809CDA5C C42AE4B0 */ lwc1 $f10, %lo(D_809CE4B0)($at)
/* 009F0 809CDA60 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 009F4 809CDA64 46122180 */ add.s $f6, $f4, $f18
/* 009F8 809CDA68 460A4102 */ mul.s $f4, $f8, $f10
/* 009FC 809CDA6C C7A80038 */ lwc1 $f8, 0x0038($sp)
/* 00A00 809CDA70 46062480 */ add.s $f18, $f4, $f6
/* 00A04 809CDA74 46089300 */ add.s $f12, $f18, $f8
/* 00A08 809CDA78 4610603C */ c.lt.s $f12, $f16
/* 00A0C 809CDA7C 00000000 */ nop
/* 00A10 809CDA80 45020004 */ bc1fl .L809CDA94
/* 00A14 809CDA84 44810000 */ mtc1 $at, $f0 ## $f0 = 1.50
/* 00A18 809CDA88 1000000B */ beq $zero, $zero, .L809CDAB8
/* 00A1C 809CDA8C E61001C8 */ swc1 $f16, 0x01C8($s0) ## 000001C8
/* 00A20 809CDA90 44810000 */ mtc1 $at, $f0 ## $f0 = 1.50
.L809CDA94:
/* 00A24 809CDA94 00000000 */ nop
/* 00A28 809CDA98 460C003C */ c.lt.s $f0, $f12
/* 00A2C 809CDA9C 00000000 */ nop
/* 00A30 809CDAA0 45020004 */ bc1fl .L809CDAB4
/* 00A34 809CDAA4 46006086 */ mov.s $f2, $f12
/* 00A38 809CDAA8 10000002 */ beq $zero, $zero, .L809CDAB4
/* 00A3C 809CDAAC 46000086 */ mov.s $f2, $f0
/* 00A40 809CDAB0 46006086 */ mov.s $f2, $f12
.L809CDAB4:
/* 00A44 809CDAB4 E60201C8 */ swc1 $f2, 0x01C8($s0) ## 000001C8
.L809CDAB8:
/* 00A48 809CDAB8 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00A4C 809CDABC 260401AC */ addiu $a0, $s0, 0x01AC ## $a0 = 000001AC
/* 00A50 809CDAC0 860F0254 */ lh $t7, 0x0254($s0) ## 00000254
/* 00A54 809CDAC4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A58 809CDAC8 5DE0000A */ bgtzl $t7, .L809CDAF4
/* 00A5C 809CDACC 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
/* 00A60 809CDAD0 92180256 */ lbu $t8, 0x0256($s0) ## 00000256
/* 00A64 809CDAD4 3C08809D */ lui $t0, %hi(D_809CE344) ## $t0 = 809D0000
/* 00A68 809CDAD8 2508E344 */ addiu $t0, $t0, %lo(D_809CE344) ## $t0 = 809CE344
/* 00A6C 809CDADC 0018C880 */ sll $t9, $t8, 2
/* 00A70 809CDAE0 0338C821 */ addu $t9, $t9, $t8
/* 00A74 809CDAE4 0019C880 */ sll $t9, $t9, 2
/* 00A78 809CDAE8 0C27341C */ jal func_809CD070
/* 00A7C 809CDAEC 03282821 */ addu $a1, $t9, $t0
/* 00A80 809CDAF0 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
.L809CDAF4:
/* 00A84 809CDAF4 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00A88 809CDAF8 8FA20044 */ lw $v0, 0x0044($sp)
/* 00A8C 809CDAFC 314B0001 */ andi $t3, $t2, 0x0001 ## $t3 = 00000000
/* 00A90 809CDB00 55610021 */ bnel $t3, $at, .L809CDB88
/* 00A94 809CDB04 C6120090 */ lwc1 $f18, 0x0090($s0) ## 00000090
/* 00A98 809CDB08 804C0151 */ lb $t4, 0x0151($v0) ## 00000151
/* 00A9C 809CDB0C 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00AA0 809CDB10 5581001D */ bnel $t4, $at, .L809CDB88
/* 00AA4 809CDB14 C6120090 */ lwc1 $f18, 0x0090($s0) ## 00000090
/* 00AA8 809CDB18 8609025A */ lh $t1, 0x025A($s0) ## 0000025A
/* 00AAC 809CDB1C 5D20001A */ bgtzl $t1, .L809CDB88
/* 00AB0 809CDB20 C6120090 */ lwc1 $f18, 0x0090($s0) ## 00000090
/* 00AB4 809CDB24 C44C0024 */ lwc1 $f12, 0x0024($v0) ## 00000024
/* 00AB8 809CDB28 C44E002C */ lwc1 $f14, 0x002C($v0) ## 0000002C
/* 00ABC 809CDB2C 8E060008 */ lw $a2, 0x0008($s0) ## 00000008
/* 00AC0 809CDB30 0C032D65 */ jal Math3D_Dist2DSq
/* 00AC4 809CDB34 8E070010 */ lw $a3, 0x0010($s0) ## 00000010
/* 00AC8 809CDB38 3C014661 */ lui $at, 0x4661 ## $at = 46610000
/* 00ACC 809CDB3C 44815000 */ mtc1 $at, $f10 ## $f10 = 14400.00
/* 00AD0 809CDB40 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00AD4 809CDB44 460A003C */ c.lt.s $f0, $f10
/* 00AD8 809CDB48 00000000 */ nop
/* 00ADC 809CDB4C 45010008 */ bc1t .L809CDB70
/* 00AE0 809CDB50 00000000 */ nop
/* 00AE4 809CDB54 C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090
/* 00AE8 809CDB58 44813000 */ mtc1 $at, $f6 ## $f6 = 60.00
/* 00AEC 809CDB5C 00000000 */ nop
/* 00AF0 809CDB60 4606203C */ c.lt.s $f4, $f6
/* 00AF4 809CDB64 00000000 */ nop
/* 00AF8 809CDB68 45020007 */ bc1fl .L809CDB88
/* 00AFC 809CDB6C C6120090 */ lwc1 $f18, 0x0090($s0) ## 00000090
.L809CDB70:
/* 00B00 809CDB70 0C2736F3 */ jal func_809CDBCC
/* 00B04 809CDB74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B08 809CDB78 240D0002 */ addiu $t5, $zero, 0x0002 ## $t5 = 00000002
/* 00B0C 809CDB7C 1000000E */ beq $zero, $zero, .L809CDBB8
/* 00B10 809CDB80 A20D0257 */ sb $t5, 0x0257($s0) ## 00000257
/* 00B14 809CDB84 C6120090 */ lwc1 $f18, 0x0090($s0) ## 00000090
.L809CDB88:
/* 00B18 809CDB88 3C01405E */ lui $at, 0x405E ## $at = 405E0000
/* 00B1C 809CDB8C 44815800 */ mtc1 $at, $f11 ## $f11 = 3.47
/* 00B20 809CDB90 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
/* 00B24 809CDB94 46009221 */ cvt.d.s $f8, $f18
/* 00B28 809CDB98 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00B2C 809CDB9C 462A403C */ c.lt.d $f8, $f10
/* 00B30 809CDBA0 00000000 */ nop
/* 00B34 809CDBA4 45020004 */ bc1fl .L809CDBB8
/* 00B38 809CDBA8 A2000257 */ sb $zero, 0x0257($s0) ## 00000257
/* 00B3C 809CDBAC 10000002 */ beq $zero, $zero, .L809CDBB8
/* 00B40 809CDBB0 A20E0257 */ sb $t6, 0x0257($s0) ## 00000257
/* 00B44 809CDBB4 A2000257 */ sb $zero, 0x0257($s0) ## 00000257
.L809CDBB8:
/* 00B48 809CDBB8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00B4C 809CDBBC 8FB00020 */ lw $s0, 0x0020($sp)
/* 00B50 809CDBC0 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 00B54 809CDBC4 03E00008 */ jr $ra
/* 00B58 809CDBC8 00000000 */ nop

View File

@ -1,20 +0,0 @@
glabel func_809CDBCC
/* 00B5C 809CDBCC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00B60 809CDBD0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00B64 809CDBD4 908E0256 */ lbu $t6, 0x0256($a0) ## 00000256
/* 00B68 809CDBD8 3C18809D */ lui $t8, %hi(D_809CE380) ## $t8 = 809D0000
/* 00B6C 809CDBDC 2718E380 */ addiu $t8, $t8, %lo(D_809CE380) ## $t8 = 809CE380
/* 00B70 809CDBE0 000E7880 */ sll $t7, $t6, 2
/* 00B74 809CDBE4 01EE7821 */ addu $t7, $t7, $t6
/* 00B78 809CDBE8 000F7880 */ sll $t7, $t7, 2
/* 00B7C 809CDBEC 01F82821 */ addu $a1, $t7, $t8
/* 00B80 809CDBF0 0C27341C */ jal func_809CD070
/* 00B84 809CDBF4 AFA40018 */ sw $a0, 0x0018($sp)
/* 00B88 809CDBF8 8FA40018 */ lw $a0, 0x0018($sp)
/* 00B8C 809CDBFC 3C19809D */ lui $t9, %hi(func_809CDC18) ## $t9 = 809D0000
/* 00B90 809CDC00 2739DC18 */ addiu $t9, $t9, %lo(func_809CDC18) ## $t9 = 809CDC18
/* 00B94 809CDC04 AC990250 */ sw $t9, 0x0250($a0) ## 00000250
/* 00B98 809CDC08 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00B9C 809CDC0C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00BA0 809CDC10 03E00008 */ jr $ra
/* 00BA4 809CDC14 00000000 */ nop

View File

@ -1,275 +0,0 @@
.late_rodata
glabel D_809CE4B4
.float 0.3
glabel D_809CE4B8
.float 0.2
glabel D_809CE4BC
.float 0.15
glabel D_809CE4C0
.float 0.3
glabel D_809CE4C4
.word 0x3FE66666
.text
glabel func_809CDC18
/* 00BA8 809CDC18 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
/* 00BAC 809CDC1C AFBF0024 */ sw $ra, 0x0024($sp)
/* 00BB0 809CDC20 AFB10020 */ sw $s1, 0x0020($sp)
/* 00BB4 809CDC24 AFB0001C */ sw $s0, 0x001C($sp)
/* 00BB8 809CDC28 AFA50064 */ sw $a1, 0x0064($sp)
/* 00BBC 809CDC2C 908E0256 */ lbu $t6, 0x0256($a0) ## 00000256
/* 00BC0 809CDC30 3C18809D */ lui $t8, %hi(D_809CE380) ## $t8 = 809D0000
/* 00BC4 809CDC34 2718E380 */ addiu $t8, $t8, %lo(D_809CE380) ## $t8 = 809CE380
/* 00BC8 809CDC38 000E7880 */ sll $t7, $t6, 2
/* 00BCC 809CDC3C 01EE7821 */ addu $t7, $t7, $t6
/* 00BD0 809CDC40 000F7880 */ sll $t7, $t7, 2
/* 00BD4 809CDC44 01F81021 */ addu $v0, $t7, $t8
/* 00BD8 809CDC48 8CB11C44 */ lw $s1, 0x1C44($a1) ## 00001C44
/* 00BDC 809CDC4C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00BE0 809CDC50 0C27358D */ jal func_809CD634
/* 00BE4 809CDC54 AFA2005C */ sw $v0, 0x005C($sp)
/* 00BE8 809CDC58 8FA2005C */ lw $v0, 0x005C($sp)
/* 00BEC 809CDC5C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00BF0 809CDC60 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 00BF4 809CDC64 8C450004 */ lw $a1, 0x0004($v0) ## 00000004
/* 00BF8 809CDC68 8C460008 */ lw $a2, 0x0008($v0) ## 00000008
/* 00BFC 809CDC6C 8C47000C */ lw $a3, 0x000C($v0) ## 0000000C
/* 00C00 809CDC70 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
/* 00C04 809CDC74 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00C08 809CDC78 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00C0C 809CDC7C 00000000 */ nop
/* 00C10 809CDC80 E7A60040 */ swc1 $f6, 0x0040($sp)
/* 00C14 809CDC84 92080256 */ lbu $t0, 0x0256($s0) ## 00000256
/* 00C18 809CDC88 51000045 */ beql $t0, $zero, .L809CDDA0
/* 00C1C 809CDC8C 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00C20 809CDC90 86090254 */ lh $t1, 0x0254($s0) ## 00000254
/* 00C24 809CDC94 2921000C */ slti $at, $t1, 0x000C
/* 00C28 809CDC98 50200041 */ beql $at, $zero, .L809CDDA0
/* 00C2C 809CDC9C 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00C30 809CDCA0 0C01DE1C */ jal Math_Sins
## sins?
/* 00C34 809CDCA4 862400B6 */ lh $a0, 0x00B6($s1) ## 000000B6
/* 00C38 809CDCA8 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00C3C 809CDCAC 44814000 */ mtc1 $at, $f8 ## $f8 = 10.00
/* 00C40 809CDCB0 C63208B8 */ lwc1 $f18, 0x08B8($s1) ## 000008B8
/* 00C44 809CDCB4 46080282 */ mul.s $f10, $f0, $f8
/* 00C48 809CDCB8 46125100 */ add.s $f4, $f10, $f18
/* 00C4C 809CDCBC E7A40048 */ swc1 $f4, 0x0048($sp)
/* 00C50 809CDCC0 C62608BC */ lwc1 $f6, 0x08BC($s1) ## 000008BC
/* 00C54 809CDCC4 E7A6004C */ swc1 $f6, 0x004C($sp)
/* 00C58 809CDCC8 0C01DE0D */ jal Math_Coss
## coss?
/* 00C5C 809CDCCC 862400B6 */ lh $a0, 0x00B6($s1) ## 000000B6
/* 00C60 809CDCD0 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00C64 809CDCD4 44814000 */ mtc1 $at, $f8 ## $f8 = 10.00
/* 00C68 809CDCD8 C63208C0 */ lwc1 $f18, 0x08C0($s1) ## 000008C0
/* 00C6C 809CDCDC 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 00C70 809CDCE0 46080282 */ mul.s $f10, $f0, $f8
/* 00C74 809CDCE4 27A50048 */ addiu $a1, $sp, 0x0048 ## $a1 = FFFFFFE8
/* 00C78 809CDCE8 46125100 */ add.s $f4, $f10, $f18
/* 00C7C 809CDCEC 0C01E01A */ jal Math_Vec3f_Yaw
/* 00C80 809CDCF0 E7A40050 */ swc1 $f4, 0x0050($sp)
/* 00C84 809CDCF4 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00C88 809CDCF8 A7A20038 */ sh $v0, 0x0038($sp)
/* 00C8C 809CDCFC 3C0A809D */ lui $t2, %hi(D_809CE410) ## $t2 = 809D0000
/* 00C90 809CDD00 8D4AE410 */ lw $t2, %lo(D_809CE410)($t2)
/* 00C94 809CDD04 87AF0038 */ lh $t7, 0x0038($sp)
/* 00C98 809CDD08 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 00C9C 809CDD0C 448A3000 */ mtc1 $t2, $f6 ## $f6 = -0.00
/* 00CA0 809CDD10 240607D0 */ addiu $a2, $zero, 0x07D0 ## $a2 = 000007D0
/* 00CA4 809CDD14 46803220 */ cvt.s.w $f8, $f6
/* 00CA8 809CDD18 46080282 */ mul.s $f10, $f0, $f8
/* 00CAC 809CDD1C 4600548D */ trunc.w.s $f18, $f10
/* 00CB0 809CDD20 440E9000 */ mfc1 $t6, $f18
/* 00CB4 809CDD24 00000000 */ nop
/* 00CB8 809CDD28 01CF2821 */ addu $a1, $t6, $t7
/* 00CBC 809CDD2C 00052C00 */ sll $a1, $a1, 16
/* 00CC0 809CDD30 0C01DE2B */ jal Math_ApproxUpdateScaledS
/* 00CC4 809CDD34 00052C03 */ sra $a1, $a1, 16
/* 00CC8 809CDD38 10400016 */ beq $v0, $zero, .L809CDD94
/* 00CCC 809CDD3C 3C01809D */ lui $at, %hi(D_809CE4B4) ## $at = 809D0000
/* 00CD0 809CDD40 8FB80064 */ lw $t8, 0x0064($sp)
/* 00CD4 809CDD44 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000
/* 00CD8 809CDD48 0338C821 */ addu $t9, $t9, $t8
/* 00CDC 809CDD4C 8F391DE4 */ lw $t9, 0x1DE4($t9) ## 00011DE4
/* 00CE0 809CDD50 33280001 */ andi $t0, $t9, 0x0001 ## $t0 = 00000000
/* 00CE4 809CDD54 51000012 */ beql $t0, $zero, .L809CDDA0
/* 00CE8 809CDD58 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00CEC 809CDD5C 8609025C */ lh $t1, 0x025C($s0) ## 0000025C
/* 00CF0 809CDD60 44892000 */ mtc1 $t1, $f4 ## $f4 = 0.00
/* 00CF4 809CDD64 0C0400A4 */ jal sinf
/* 00CF8 809CDD68 46802320 */ cvt.s.w $f12, $f4
/* 00CFC 809CDD6C 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00D00 809CDD70 44813000 */ mtc1 $at, $f6 ## $f6 = 60.00
/* 00D04 809CDD74 860A0032 */ lh $t2, 0x0032($s0) ## 00000032
/* 00D08 809CDD78 46060202 */ mul.s $f8, $f0, $f6
/* 00D0C 809CDD7C 4600428D */ trunc.w.s $f10, $f8
/* 00D10 809CDD80 440E5000 */ mfc1 $t6, $f10
/* 00D14 809CDD84 00000000 */ nop
/* 00D18 809CDD88 014E7821 */ addu $t7, $t2, $t6
/* 00D1C 809CDD8C 10000003 */ beq $zero, $zero, .L809CDD9C
/* 00D20 809CDD90 A60F0032 */ sh $t7, 0x0032($s0) ## 00000032
.L809CDD94:
/* 00D24 809CDD94 C432E4B4 */ lwc1 $f18, %lo(D_809CE4B4)($at)
/* 00D28 809CDD98 E7B20040 */ swc1 $f18, 0x0040($sp)
.L809CDD9C:
/* 00D2C 809CDD9C 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
.L809CDDA0:
/* 00D30 809CDDA0 44813000 */ mtc1 $at, $f6 ## $f6 = 30.00
/* 00D34 809CDDA4 C6240028 */ lwc1 $f4, 0x0028($s1) ## 00000028
/* 00D38 809CDDA8 C62008BC */ lwc1 $f0, 0x08BC($s1) ## 000008BC
/* 00D3C 809CDDAC 46062080 */ add.s $f2, $f4, $f6
/* 00D40 809CDDB0 4602003C */ c.lt.s $f0, $f2
/* 00D44 809CDDB4 00000000 */ nop
/* 00D48 809CDDB8 45020004 */ bc1fl .L809CDDCC
/* 00D4C 809CDDBC E6000264 */ swc1 $f0, 0x0264($s0) ## 00000264
/* 00D50 809CDDC0 10000002 */ beq $zero, $zero, .L809CDDCC
/* 00D54 809CDDC4 E6020264 */ swc1 $f2, 0x0264($s0) ## 00000264
/* 00D58 809CDDC8 E6000264 */ swc1 $f0, 0x0264($s0) ## 00000264
.L809CDDCC:
/* 00D5C 809CDDCC 0C2735BF */ jal func_809CD6FC
/* 00D60 809CDDD0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D64 809CDDD4 0C01DE1C */ jal Math_Sins
## sins?
/* 00D68 809CDDD8 86040260 */ lh $a0, 0x0260($s0) ## 00000260
/* 00D6C 809CDDDC 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00D70 809CDDE0 E7A00030 */ swc1 $f0, 0x0030($sp)
/* 00D74 809CDDE4 8604025E */ lh $a0, 0x025E($s0) ## 0000025E
/* 00D78 809CDDE8 0C01DE1C */ jal Math_Sins
## sins?
/* 00D7C 809CDDEC E7A00034 */ swc1 $f0, 0x0034($sp)
/* 00D80 809CDDF0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00D84 809CDDF4 44817000 */ mtc1 $at, $f14 ## $f14 = 1.00
/* 00D88 809CDDF8 3C01809D */ lui $at, %hi(D_809CE4B8) ## $at = 809D0000
/* 00D8C 809CDDFC C430E4B8 */ lwc1 $f16, %lo(D_809CE4B8)($at)
/* 00D90 809CDE00 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00D94 809CDE04 44815000 */ mtc1 $at, $f10 ## $f10 = 0.50
/* 00D98 809CDE08 C6080068 */ lwc1 $f8, 0x0068($s0) ## 00000068
/* 00D9C 809CDE0C C7A20034 */ lwc1 $f2, 0x0034($sp)
/* 00DA0 809CDE10 3C01809D */ lui $at, %hi(D_809CE4BC) ## $at = 809D0000
/* 00DA4 809CDE14 460A4482 */ mul.s $f18, $f8, $f10
/* 00DA8 809CDE18 C7A80030 */ lwc1 $f8, 0x0030($sp)
/* 00DAC 809CDE1C 46101102 */ mul.s $f4, $f2, $f16
/* 00DB0 809CDE20 46087281 */ sub.s $f10, $f14, $f8
/* 00DB4 809CDE24 46049180 */ add.s $f6, $f18, $f4
/* 00DB8 809CDE28 C432E4BC */ lwc1 $f18, %lo(D_809CE4BC)($at)
/* 00DBC 809CDE2C 3C01809D */ lui $at, %hi(D_809CE4C0) ## $at = 809D0000
/* 00DC0 809CDE30 46125102 */ mul.s $f4, $f10, $f18
/* 00DC4 809CDE34 46007281 */ sub.s $f10, $f14, $f0
/* 00DC8 809CDE38 C432E4C0 */ lwc1 $f18, %lo(D_809CE4C0)($at)
/* 00DCC 809CDE3C 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 00DD0 809CDE40 46043200 */ add.s $f8, $f6, $f4
/* 00DD4 809CDE44 46125182 */ mul.s $f6, $f10, $f18
/* 00DD8 809CDE48 C7AA0040 */ lwc1 $f10, 0x0040($sp)
/* 00DDC 809CDE4C 46083100 */ add.s $f4, $f6, $f8
/* 00DE0 809CDE50 460A2300 */ add.s $f12, $f4, $f10
/* 00DE4 809CDE54 4610603C */ c.lt.s $f12, $f16
/* 00DE8 809CDE58 00000000 */ nop
/* 00DEC 809CDE5C 45020004 */ bc1fl .L809CDE70
/* 00DF0 809CDE60 44810000 */ mtc1 $at, $f0 ## $f0 = 1.50
/* 00DF4 809CDE64 1000000B */ beq $zero, $zero, .L809CDE94
/* 00DF8 809CDE68 E61001C8 */ swc1 $f16, 0x01C8($s0) ## 000001C8
/* 00DFC 809CDE6C 44810000 */ mtc1 $at, $f0 ## $f0 = 1.50
.L809CDE70:
/* 00E00 809CDE70 00000000 */ nop
/* 00E04 809CDE74 460C003C */ c.lt.s $f0, $f12
/* 00E08 809CDE78 00000000 */ nop
/* 00E0C 809CDE7C 45020004 */ bc1fl .L809CDE90
/* 00E10 809CDE80 46006086 */ mov.s $f2, $f12
/* 00E14 809CDE84 10000002 */ beq $zero, $zero, .L809CDE90
/* 00E18 809CDE88 46000086 */ mov.s $f2, $f0
/* 00E1C 809CDE8C 46006086 */ mov.s $f2, $f12
.L809CDE90:
/* 00E20 809CDE90 E60201C8 */ swc1 $f2, 0x01C8($s0) ## 000001C8
.L809CDE94:
/* 00E24 809CDE94 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00E28 809CDE98 260401AC */ addiu $a0, $s0, 0x01AC ## $a0 = 000001AC
/* 00E2C 809CDE9C 86180254 */ lh $t8, 0x0254($s0) ## 00000254
/* 00E30 809CDEA0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E34 809CDEA4 5F00000F */ bgtzl $t8, .L809CDEE4
/* 00E38 809CDEA8 C60C0024 */ lwc1 $f12, 0x0024($s0) ## 00000024
/* 00E3C 809CDEAC 92190256 */ lbu $t9, 0x0256($s0) ## 00000256
/* 00E40 809CDEB0 3C09809D */ lui $t1, %hi(D_809CE380) ## $t1 = 809D0000
/* 00E44 809CDEB4 2529E380 */ addiu $t1, $t1, %lo(D_809CE380) ## $t1 = 809CE380
/* 00E48 809CDEB8 00194080 */ sll $t0, $t9, 2
/* 00E4C 809CDEBC 01194021 */ addu $t0, $t0, $t9
/* 00E50 809CDEC0 00084080 */ sll $t0, $t0, 2
/* 00E54 809CDEC4 0C27341C */ jal func_809CD070
/* 00E58 809CDEC8 01092821 */ addu $a1, $t0, $t1
/* 00E5C 809CDECC 3C0B809D */ lui $t3, %hi(D_809CE410) ## $t3 = 809D0000
/* 00E60 809CDED0 8D6BE410 */ lw $t3, %lo(D_809CE410)($t3)
/* 00E64 809CDED4 3C01809D */ lui $at, %hi(D_809CE410) ## $at = 809D0000
/* 00E68 809CDED8 000B6023 */ subu $t4, $zero, $t3
/* 00E6C 809CDEDC AC2CE410 */ sw $t4, %lo(D_809CE410)($at)
/* 00E70 809CDEE0 C60C0024 */ lwc1 $f12, 0x0024($s0) ## 00000024
.L809CDEE4:
/* 00E74 809CDEE4 C60E002C */ lwc1 $f14, 0x002C($s0) ## 0000002C
/* 00E78 809CDEE8 8E060008 */ lw $a2, 0x0008($s0) ## 00000008
/* 00E7C 809CDEEC 0C032D65 */ jal Math3D_Dist2DSq
/* 00E80 809CDEF0 8E070010 */ lw $a3, 0x0010($s0) ## 00000010
/* 00E84 809CDEF4 822D0151 */ lb $t5, 0x0151($s1) ## 00000151
/* 00E88 809CDEF8 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00E8C 809CDEFC 46000086 */ mov.s $f2, $f0
/* 00E90 809CDF00 15A10013 */ bne $t5, $at, .L809CDF50
/* 00E94 809CDF04 00000000 */ nop
/* 00E98 809CDF08 C6200068 */ lwc1 $f0, 0x0068($s1) ## 00000068
/* 00E9C 809CDF0C 3C01809D */ lui $at, %hi(D_809CE4C4) ## $at = 809D0000
/* 00EA0 809CDF10 C432E4C4 */ lwc1 $f18, %lo(D_809CE4C4)($at)
/* 00EA4 809CDF14 46000005 */ abs.s $f0, $f0
/* 00EA8 809CDF18 4612003C */ c.lt.s $f0, $f18
/* 00EAC 809CDF1C 00000000 */ nop
/* 00EB0 809CDF20 4500000B */ bc1f .L809CDF50
/* 00EB4 809CDF24 00000000 */ nop
/* 00EB8 809CDF28 860A025A */ lh $t2, 0x025A($s0) ## 0000025A
/* 00EBC 809CDF2C 3C0147C8 */ lui $at, 0x47C8 ## $at = 47C80000
/* 00EC0 809CDF30 1D400007 */ bgtz $t2, .L809CDF50
/* 00EC4 809CDF34 00000000 */ nop
/* 00EC8 809CDF38 44813000 */ mtc1 $at, $f6 ## $f6 = 102400.00
/* 00ECC 809CDF3C 3C014761 */ lui $at, 0x4761 ## $at = 47610000
/* 00ED0 809CDF40 4606103C */ c.lt.s $f2, $f6
/* 00ED4 809CDF44 00000000 */ nop
/* 00ED8 809CDF48 45030006 */ bc1tl .L809CDF64
/* 00EDC 809CDF4C 44814000 */ mtc1 $at, $f8 ## $f8 = 57600.00
.L809CDF50:
/* 00EE0 809CDF50 0C2735E7 */ jal func_809CD79C
/* 00EE4 809CDF54 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00EE8 809CDF58 10000016 */ beq $zero, $zero, .L809CDFB4
/* 00EEC 809CDF5C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00EF0 809CDF60 44814000 */ mtc1 $at, $f8 ## $f8 = 0.00
.L809CDF64:
/* 00EF4 809CDF64 00000000 */ nop
/* 00EF8 809CDF68 4602403C */ c.lt.s $f8, $f2
/* 00EFC 809CDF6C 00000000 */ nop
/* 00F00 809CDF70 45020010 */ bc1fl .L809CDFB4
/* 00F04 809CDF74 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00F08 809CDF78 C62C08B8 */ lwc1 $f12, 0x08B8($s1) ## 000008B8
/* 00F0C 809CDF7C C62E08C0 */ lwc1 $f14, 0x08C0($s1) ## 000008C0
/* 00F10 809CDF80 8E060024 */ lw $a2, 0x0024($s0) ## 00000024
/* 00F14 809CDF84 0C032D65 */ jal Math3D_Dist2DSq
/* 00F18 809CDF88 8E07002C */ lw $a3, 0x002C($s0) ## 0000002C
/* 00F1C 809CDF8C 3C014561 */ lui $at, 0x4561 ## $at = 45610000
/* 00F20 809CDF90 44812000 */ mtc1 $at, $f4 ## $f4 = 3600.00
/* 00F24 809CDF94 00000000 */ nop
/* 00F28 809CDF98 4604003C */ c.lt.s $f0, $f4
/* 00F2C 809CDF9C 00000000 */ nop
/* 00F30 809CDFA0 45020004 */ bc1fl .L809CDFB4
/* 00F34 809CDFA4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00F38 809CDFA8 0C2737F1 */ jal func_809CDFC4
/* 00F3C 809CDFAC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F40 809CDFB0 8FBF0024 */ lw $ra, 0x0024($sp)
.L809CDFB4:
/* 00F44 809CDFB4 8FB0001C */ lw $s0, 0x001C($sp)
/* 00F48 809CDFB8 8FB10020 */ lw $s1, 0x0020($sp)
/* 00F4C 809CDFBC 03E00008 */ jr $ra
/* 00F50 809CDFC0 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000

View File

@ -1,21 +0,0 @@
glabel func_809CDFC4
/* 00F54 809CDFC4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00F58 809CDFC8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00F5C 809CDFCC 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 00F60 809CDFD0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00F64 809CDFD4 44812000 */ mtc1 $at, $f4 ## $f4 = 1.00
/* 00F68 809CDFD8 240E0009 */ addiu $t6, $zero, 0x0009 ## $t6 = 00000009
/* 00F6C 809CDFDC 35F80010 */ ori $t8, $t7, 0x0010 ## $t8 = 00000010
/* 00F70 809CDFE0 A48E0254 */ sh $t6, 0x0254($a0) ## 00000254
/* 00F74 809CDFE4 AC980004 */ sw $t8, 0x0004($a0) ## 00000004
/* 00F78 809CDFE8 E48401C8 */ swc1 $f4, 0x01C8($a0) ## 000001C8
/* 00F7C 809CDFEC 0C27343E */ jal func_809CD0F8
/* 00F80 809CDFF0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00F84 809CDFF4 8FA40018 */ lw $a0, 0x0018($sp)
/* 00F88 809CDFF8 3C19809D */ lui $t9, %hi(func_809CE014) ## $t9 = 809D0000
/* 00F8C 809CDFFC 2739E014 */ addiu $t9, $t9, %lo(func_809CE014) ## $t9 = 809CE014
/* 00F90 809CE000 AC990250 */ sw $t9, 0x0250($a0) ## 00000250
/* 00F94 809CE004 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00F98 809CE008 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00F9C 809CE00C 03E00008 */ jr $ra
/* 00FA0 809CE010 00000000 */ nop

View File

@ -1,55 +0,0 @@
glabel func_809CE014
/* 00FA4 809CE014 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00FA8 809CE018 AFB00030 */ sw $s0, 0x0030($sp)
/* 00FAC 809CE01C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00FB0 809CE020 AFBF0034 */ sw $ra, 0x0034($sp)
/* 00FB4 809CE024 AFA5003C */ sw $a1, 0x003C($sp)
/* 00FB8 809CE028 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00FBC 809CE02C 248401AC */ addiu $a0, $a0, 0x01AC ## $a0 = 000001AC
/* 00FC0 809CE030 0C273444 */ jal func_809CD110
/* 00FC4 809CE034 00000000 */ nop
/* 00FC8 809CE038 86020254 */ lh $v0, 0x0254($s0) ## 00000254
/* 00FCC 809CE03C 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00FD0 809CE040 8FA4003C */ lw $a0, 0x003C($sp)
/* 00FD4 809CE044 14410006 */ bne $v0, $at, .L809CE060
/* 00FD8 809CE048 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 00FDC 809CE04C 2406003C */ addiu $a2, $zero, 0x003C ## $a2 = 0000003C
/* 00FE0 809CE050 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 00FE4 809CE054 240728E7 */ addiu $a3, $zero, 0x28E7 ## $a3 = 000028E7
/* 00FE8 809CE058 10000019 */ beq $zero, $zero, .L809CE0C0
/* 00FEC 809CE05C 8FBF0034 */ lw $ra, 0x0034($sp)
.L809CE060:
/* 00FF0 809CE060 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00FF4 809CE064 14410011 */ bne $v0, $at, .L809CE0AC
/* 00FF8 809CE068 8FA5003C */ lw $a1, 0x003C($sp)
/* 00FFC 809CE06C C604003C */ lwc1 $f4, 0x003C($s0) ## 0000003C
/* 01000 809CE070 8E070038 */ lw $a3, 0x0038($s0) ## 00000038
/* 01004 809CE074 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002
/* 01008 809CE078 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 0100C 809CE07C C6060040 */ lwc1 $f6, 0x0040($s0) ## 00000040
/* 01010 809CE080 AFA00018 */ sw $zero, 0x0018($sp)
/* 01014 809CE084 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24
/* 01018 809CE088 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 0101C 809CE08C 860E00B6 */ lh $t6, 0x00B6($s0) ## 000000B6
/* 01020 809CE090 AFAF0024 */ sw $t7, 0x0024($sp)
/* 01024 809CE094 AFA00020 */ sw $zero, 0x0020($sp)
/* 01028 809CE098 24060018 */ addiu $a2, $zero, 0x0018 ## $a2 = 00000018
/* 0102C 809CE09C 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 01030 809CE0A0 AFAE001C */ sw $t6, 0x001C($sp)
/* 01034 809CE0A4 10000005 */ beq $zero, $zero, .L809CE0BC
/* 01038 809CE0A8 A2000258 */ sb $zero, 0x0258($s0) ## 00000258
.L809CE0AC:
/* 0103C 809CE0AC 5C400004 */ bgtzl $v0, .L809CE0C0
/* 01040 809CE0B0 8FBF0034 */ lw $ra, 0x0034($sp)
/* 01044 809CE0B4 0C273834 */ jal func_809CE0D0
/* 01048 809CE0B8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L809CE0BC:
/* 0104C 809CE0BC 8FBF0034 */ lw $ra, 0x0034($sp)
.L809CE0C0:
/* 01050 809CE0C0 8FB00030 */ lw $s0, 0x0030($sp)
/* 01054 809CE0C4 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 01058 809CE0C8 03E00008 */ jr $ra
/* 0105C 809CE0CC 00000000 */ nop

View File

@ -1,8 +0,0 @@
glabel func_809CE0D0
/* 01060 809CE0D0 3C0F809D */ lui $t7, %hi(func_809CE0EC) ## $t7 = 809D0000
/* 01064 809CE0D4 240E0040 */ addiu $t6, $zero, 0x0040 ## $t6 = 00000040
/* 01068 809CE0D8 25EFE0EC */ addiu $t7, $t7, %lo(func_809CE0EC) ## $t7 = 809CE0EC
/* 0106C 809CE0DC A48E0254 */ sh $t6, 0x0254($a0) ## 00000254
/* 01070 809CE0E0 AC8F0250 */ sw $t7, 0x0250($a0) ## 00000250
/* 01074 809CE0E4 03E00008 */ jr $ra
/* 01078 809CE0E8 AC800134 */ sw $zero, 0x0134($a0) ## 00000134

View File

@ -1,15 +0,0 @@
glabel func_809CE0EC
/* 0107C 809CE0EC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 01080 809CE0F0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 01084 809CE0F4 AFA5001C */ sw $a1, 0x001C($sp)
/* 01088 809CE0F8 848E0254 */ lh $t6, 0x0254($a0) ## 00000254
/* 0108C 809CE0FC 5DC00004 */ bgtzl $t6, .L809CE110
/* 01090 809CE100 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01094 809CE104 0C00B55C */ jal Actor_Kill
/* 01098 809CE108 00000000 */ nop
/* 0109C 809CE10C 8FBF0014 */ lw $ra, 0x0014($sp)
.L809CE110:
/* 010A0 809CE110 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 010A4 809CE114 03E00008 */ jr $ra
/* 010A8 809CE118 00000000 */ nop

View File

@ -1,45 +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_809CE2F0
.word 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00050064
glabel D_809CE314
.word 0x0A000019, 0x10000000, 0x00000001
.word D_809CE2F0
glabel En_Butte_InitVars
.word 0x001E0700, 0x00000000, 0x00020000, 0x00000268
.word EnButte_Init
.word EnButte_Destroy
.word EnButte_Update
.word EnButte_Draw
glabel D_809CE344
.word 0x00050023, 0x00000000, 0x3DCCCCCD, 0x3F000000, 0x00000000, 0x000A002D, 0x3F8CCCCD, 0x3DCCCCCD, 0x3E800000, 0x03E80000, 0x000A0028, 0x3FC00000, 0x3DCCCCCD, 0x3E99999A, 0x07D00000
glabel D_809CE380
.word 0x00030003, 0x3F4CCCCD, 0x3DCCCCCD, 0x3E4CCCCD, 0x00000000, 0x000A0014, 0x40000000, 0x3E99999A, 0x3F800000, 0x00000000, 0x000A0014, 0x4019999A, 0x3E99999A, 0x3F800000, 0x00000000
glabel D_809CE3BC
.word 0x00000000
glabel D_809CE3C0
.word 0x00000000
glabel D_809CE3C4
.word 0x00000000, 0x00000000, 0xC0400000
glabel D_809CE3D0
.word 0xC850000A, 0xB0F402BC, 0xB0F80014, 0x30FC0258
glabel D_809CE3E0
.word 0x42480000, 0x42A00000, 0x42C80000
glabel D_809CE3EC
.word 0x41F00000, 0x42200000, 0x42480000
glabel D_809CE3F8
.word 0x41700000, 0x41A00000, 0x41C80000
glabel D_809CE404
.word 0x40F00000, 0x41200000, 0x41480000
glabel D_809CE410
.word 0x000005DC, 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_809CE4D0
.incbin "baserom/ovl_En_Butte", 0x1460, 0x00000210

3
spec
View File

@ -2051,8 +2051,7 @@ endseg
beginseg
name "ovl_En_Butte"
include "build/src/overlays/actors/ovl_En_Butte/z_en_butte.o"
include "build/data/overlays/actors/z_en_butte.data.o"
include "build/data/overlays/actors/z_en_butte.reloc.o"
include "build/src/overlays/actors/ovl_En_Butte/ovl_En_Butte_reloc.o"
endseg
beginseg

View File

@ -1,3 +1,9 @@
/*
* File: z_en_butte.c
* Overlay: ovl_En_Butte
* Description: Butterfly
*/
#include "z_en_butte.h"
#define FLAGS 0x00000000
@ -9,7 +15,25 @@ void EnButte_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnButte_Update(Actor* thisx, GlobalContext* globalCtx);
void EnButte_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void EnButte_SetupFlyAround(EnButte* this);
void EnButte_FlyAround(EnButte* this, GlobalContext* globalCtx);
void EnButte_SetupFollowLink(EnButte* this);
void EnButte_FollowLink(EnButte* this, GlobalContext* globalCtx);
void EnButte_SetupTransformIntoFairy(EnButte* this);
void EnButte_TransformIntoFairy(EnButte* this, GlobalContext* globalCtx);
void EnButte_SetupWaitToDie(EnButte* this);
void EnButte_WaitToDie(EnButte* this, GlobalContext* globalCtx);
static ColliderJntSphItemInit sColliderItemInit[] = {
{ { 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x000, 0x00 }, 0x00, 0x00, 0x01 },
{ 0, { { 0, 0, 0 }, 5 }, 100 } }
};
static ColliderJntSphInit sColliderInit = {
{ COLTYPE_UNK10, 0x00, 0x00, 0x19, 0x10, COLSHAPE_JNTSPH },
1,
sColliderItemInit,
};
const ActorInit En_Butte_InitVars = {
ACTOR_EN_BUTTE,
ACTORTYPE_ITEMACTION,
@ -21,41 +45,374 @@ const ActorInit En_Butte_InitVars = {
(ActorFunc)EnButte_Update,
(ActorFunc)EnButte_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CD070.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CD0F8.s")
typedef struct {
/* 0x00 */ s16 minTime;
/* 0x02 */ s16 maxTime;
/* 0x04 */ f32 speedXZTarget;
/* 0x08 */ f32 speedXZScale;
/* 0x0C */ f32 speedXZStep;
/* 0x10 */ s16 rotYStep;
} EnButteFlightParams; // size = 0x14
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CD110.s")
static EnButteFlightParams sFlyAroundParams[] = {
{ 5, 35, 0.0f, 0.1f, 0.5f, 0 },
{ 10, 45, 1.1f, 0.1f, 0.25f, 1000 },
{ 10, 40, 1.5f, 0.1f, 0.3f, 2000 },
};
static EnButteFlightParams sFollowLinkParams[] = {
{ 3, 3, 0.8f, 0.1f, 0.2f, 0 },
{ 10, 20, 2.0f, 0.3f, 1.0f, 0 },
{ 10, 20, 2.4f, 0.3f, 1.0f, 0 },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CD144.s")
extern AnimationHeader D_05002470;
extern SkeletonHeader D_050036F0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/EnButte_Init.s")
void EnButte_SelectFlightParams(EnButte* this, EnButteFlightParams* flightParams) {
if (this->flightParamsIdx == 0) {
if (Math_Rand_ZeroOne() < 0.6f) {
this->flightParamsIdx = 1;
} else {
this->flightParamsIdx = 2;
}
} else {
this->flightParamsIdx = 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/EnButte_Destroy.s")
this->timer = Math_Rand_S16Offset(flightParams->minTime, flightParams->maxTime);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CD56C.s")
static f32 sTransformationEffectScale = 0.0f;
static s16 sTransformationEffectAlpha = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CD634.s")
void EnButte_ResetTransformationEffect(void) {
sTransformationEffectScale = 0.0f;
sTransformationEffectAlpha = 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CD6FC.s")
void EnButte_UpdateTransformationEffect(void) {
sTransformationEffectScale += 0.003f;
sTransformationEffectAlpha += 4000;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CD79C.s")
void EnButte_DrawTransformationEffect(EnButte* this, GlobalContext* globalCtx) {
static Vec3f D_809CE3C4 = { 0.0f, 0.0f, -3.0f };
Vec3f sp5C;
s32 alpha;
Vec3s camDir;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CD7E8.s")
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_choo.c", 295);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CDBCC.s")
func_80093C14(globalCtx->state.gfxCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CDC18.s")
alpha = Math_Sins(sTransformationEffectAlpha) * 250;
alpha = CLAMP(alpha, 0, 255);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CDFC4.s")
func_8005A970(&camDir, ACTIVE_CAM);
Matrix_RotateY(camDir.y * (M_PI / 0x8000), MTXMODE_NEW);
Matrix_RotateX(camDir.x * (M_PI / 0x8000), MTXMODE_APPLY);
Matrix_RotateZ(camDir.z * (M_PI / 0x8000), MTXMODE_APPLY);
Matrix_MultVec3f(&D_809CE3C4, &sp5C);
func_800D1694(this->actor.posRot2.pos.x + sp5C.x, this->actor.posRot2.pos.y + sp5C.y,
this->actor.posRot2.pos.z + sp5C.z, &camDir);
Matrix_Scale(sTransformationEffectScale, sTransformationEffectScale, sTransformationEffectScale, MTXMODE_APPLY);
gSPMatrix(oGfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_choo.c", 317),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(oGfxCtx->polyXlu.p++, 0x80, 0x80, 200, 200, 180, alpha);
gDPSetEnvColor(oGfxCtx->polyXlu.p++, 200, 200, 210, 255);
gSPDisplayList(oGfxCtx->polyXlu.p++, SEGMENTED_TO_VIRTUAL(&D_04010130));
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CE014.s")
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_choo.c", 326);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CE0D0.s")
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 700, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 20, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 600, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/func_809CE0EC.s")
void EnButte_Init(Actor* thisx, GlobalContext* globalCtx) {
EnButte* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/EnButte_Update.s")
if (this->actor.params == -1) {
this->actor.params = 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Butte/EnButte_Draw.s")
Actor_ProcessInitChain(&this->actor, sInitChain);
if ((this->actor.params & 1) == 1) {
this->actor.uncullZoneScale = 200.0f;
}
SkelAnime_Init(globalCtx, &this->skelAnime, &D_050036F0, &D_05002470, this->limbDrawTable,
this->transitionDrawTable, 8);
Collider_InitJntSph(globalCtx, &this->collider);
Collider_SetJntSph(globalCtx, &this->collider, &this->actor, &sColliderInit, this->colliderItems);
this->actor.colChkInfo.mass = 0;
this->unk_25C = Math_Rand_ZeroOne() * 0xFFFF;
this->unk_25E = Math_Rand_ZeroOne() * 0xFFFF;
this->unk_260 = Math_Rand_ZeroOne() * 0xFFFF;
SkelAnime_ChangeAnim(&this->skelAnime, &D_05002470, 1.0f, 0.0f, 0.0f, 1, 0.0f);
EnButte_SetupFlyAround(this);
this->actor.shape.rot.x -= 0x2320;
this->drawSkelAnime = true;
// "field keep butterfly"
osSyncPrintf("(field keep 蝶)(%x)(arg_data 0x%04x)\n", this, this->actor.params);
}
void EnButte_Destroy(Actor* thisx, GlobalContext* globalCtx) {
Collider_DestroyJntSph(globalCtx, &THIS->collider);
}
void func_809CD56C(EnButte* this) {
static f32 D_809CE3E0[] = { 50.0f, 80.0f, 100.0f };
static f32 D_809CE3EC[] = { 30.0f, 40.0f, 50.0f };
this->actor.shape.unk_08 += Math_Sins(this->unk_25C) * D_809CE3E0[this->flightParamsIdx] +
Math_Sins(this->unk_25E) * D_809CE3EC[this->flightParamsIdx];
this->actor.shape.unk_08 = CLAMP(this->actor.shape.unk_08, -2000.0f, 2000.0f);
}
void func_809CD634(EnButte* this) {
static f32 D_809CE3F8[] = { 15.0f, 20.0f, 25.0f };
static f32 D_809CE404[] = { 7.5f, 10.0f, 12.5f };
this->actor.shape.unk_08 += Math_Sins(this->unk_25C) * D_809CE3F8[this->flightParamsIdx] +
Math_Sins(this->unk_25E) * D_809CE404[this->flightParamsIdx];
this->actor.shape.unk_08 = CLAMP(this->actor.shape.unk_08, -500.0f, 500.0f);
}
void EnButte_Turn(EnButte* this) {
s16 target = this->actor.posRot.rot.y + 0x8000;
s16 diff = target - this->actor.shape.rot.y;
Math_ApproxUpdateScaledS(&this->actor.shape.rot.y, target, ABS(diff) >> 3);
this->actor.shape.rot.x = (s16)(sinf(this->unk_260) * 600.0f) - 0x2320;
}
void EnButte_SetupFlyAround(EnButte* this) {
EnButte_SelectFlightParams(this, &sFlyAroundParams[this->flightParamsIdx]);
this->actionFunc = EnButte_FlyAround;
}
void EnButte_FlyAround(EnButte* this, GlobalContext* globalCtx) {
EnButteFlightParams* flightParams = &sFlyAroundParams[this->flightParamsIdx];
s16 yaw;
Player* player = PLAYER;
f32 distSqFromHome;
f32 maxDistSqFromHome;
f32 minAnimSpeed;
f32 animSpeed;
s16 rotStep;
distSqFromHome = Math3D_Dist2DSq(this->actor.posRot.pos.x, this->actor.posRot.pos.z, this->actor.initPosRot.pos.x,
this->actor.initPosRot.pos.z);
func_809CD56C(this);
Math_SmoothScaleMaxMinF(&this->actor.speedXZ, flightParams->speedXZTarget, flightParams->speedXZScale,
flightParams->speedXZStep, 0.0f);
if (this->unk_257 == 1) {
maxDistSqFromHome = SQ(100.0f);
rotStep = 1000;
} else {
maxDistSqFromHome = SQ(35.0f);
rotStep = 600;
}
minAnimSpeed = 0.0f;
this->posYTarget = this->actor.initPosRot.pos.y;
if ((this->flightParamsIdx != 0) && ((distSqFromHome > maxDistSqFromHome) || (this->timer < 4))) {
yaw = Math_Vec3f_Yaw(&this->actor.posRot.pos, &this->actor.initPosRot.pos);
if (Math_ApproxUpdateScaledS(&this->actor.posRot.rot.y, yaw, flightParams->rotYStep) == 0) {
minAnimSpeed = 0.5f;
}
} else if ((this->unk_257 == 0) && (this->actor.child != NULL) && (this->actor.child != &this->actor)) {
yaw = Math_Vec3f_Yaw(&this->actor.posRot.pos, &this->actor.child->posRot.pos);
if (Math_ApproxUpdateScaledS(&this->actor.posRot.rot.y, yaw, rotStep) == 0) {
minAnimSpeed = 0.3f;
}
} else if (this->unk_257 == 1) {
yaw = this->actor.yawTowardsLink + 0x8000 + (s16)((Math_Rand_ZeroOne() - 0.5f) * 0x6000);
if (Math_ApproxUpdateScaledS(&this->actor.posRot.rot.y, yaw, rotStep) == 0) {
minAnimSpeed = 0.4f;
}
} else {
this->actor.posRot.rot.y += (s16)(sinf(this->unk_25C) * 100.0f);
}
EnButte_Turn(this);
animSpeed = this->actor.speedXZ / 2.0f + Math_Rand_ZeroOne() * 0.2f + (1.0f - Math_Sins(this->unk_260)) * 0.15f +
(1.0f - Math_Sins(this->unk_25E)) * 0.3f + minAnimSpeed;
this->skelAnime.animPlaybackSpeed = CLAMP(animSpeed, 0.2f, 1.5f);
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
if (this->timer <= 0) {
EnButte_SelectFlightParams(this, &sFlyAroundParams[this->flightParamsIdx]);
}
if (((this->actor.params & 1) == 1) && (player->heldItemActionParam == 6) && (this->swordDownTimer <= 0) &&
((Math3D_Dist2DSq(player->actor.posRot.pos.x, player->actor.posRot.pos.z, this->actor.initPosRot.pos.x,
this->actor.initPosRot.pos.z) < SQ(120.0f)) ||
(this->actor.xzDistFromLink < 60.0f))) {
EnButte_SetupFollowLink(this);
this->unk_257 = 2;
} else if (this->actor.xzDistFromLink < 120.0) {
this->unk_257 = 1;
} else {
this->unk_257 = 0;
}
}
void EnButte_SetupFollowLink(EnButte* this) {
EnButte_SelectFlightParams(this, &sFollowLinkParams[this->flightParamsIdx]);
this->actionFunc = EnButte_FollowLink;
}
void EnButte_FollowLink(EnButte* this, GlobalContext* globalCtx) {
static s32 D_809CE410 = 1500;
EnButteFlightParams* flightParams = &sFollowLinkParams[this->flightParamsIdx];
Player* player = PLAYER;
f32 distSqFromHome;
Vec3f swordTip;
f32 animSpeed;
f32 minAnimSpeed;
f32 distSqFromSword;
s16 yaw;
func_809CD634(this);
Math_SmoothScaleMaxMinF(&this->actor.speedXZ, flightParams->speedXZTarget, flightParams->speedXZScale,
flightParams->speedXZStep, 0.0f);
minAnimSpeed = 0.0f;
if ((this->flightParamsIdx != 0) && (this->timer < 12)) {
swordTip.x = player->swordInfo[0].tip.x + Math_Sins(player->actor.shape.rot.y) * 10.0f;
swordTip.y = player->swordInfo[0].tip.y;
swordTip.z = player->swordInfo[0].tip.z + Math_Coss(player->actor.shape.rot.y) * 10.0f;
yaw = Math_Vec3f_Yaw(&this->actor.posRot.pos, &swordTip) + (s16)(Math_Rand_ZeroOne() * D_809CE410);
if (Math_ApproxUpdateScaledS(&this->actor.posRot.rot.y, yaw, 2000) != 0) {
if (globalCtx->gameplayFrames % 2) {
this->actor.posRot.rot.y += (s16)(sinf(this->unk_25C) * 60.0f);
}
} else {
minAnimSpeed = 0.3f;
}
}
this->posYTarget = MAX(player->actor.posRot.pos.y + 30.0f, player->swordInfo[0].tip.y);
EnButte_Turn(this);
animSpeed = this->actor.speedXZ / 2.0f + Math_Rand_ZeroOne() * 0.2f + (1.0f - Math_Sins(this->unk_260)) * 0.15f +
(1.0f - Math_Sins(this->unk_25E)) * 0.3f + minAnimSpeed;
this->skelAnime.animPlaybackSpeed = CLAMP(animSpeed, 0.2f, 1.5f);
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
if (this->timer <= 0) {
EnButte_SelectFlightParams(this, &sFollowLinkParams[this->flightParamsIdx]);
D_809CE410 = -D_809CE410;
}
distSqFromHome = Math3D_Dist2DSq(this->actor.posRot.pos.x, this->actor.posRot.pos.z, this->actor.initPosRot.pos.x,
this->actor.initPosRot.pos.z);
if (!((player->heldItemActionParam == 6) && (fabsf(player->actor.speedXZ) < 1.8f) && (this->swordDownTimer <= 0) &&
(distSqFromHome < SQ(320.0f)))) {
EnButte_SetupFlyAround(this);
} else if (distSqFromHome > SQ(240.0f)) {
distSqFromSword = Math3D_Dist2DSq(player->swordInfo[0].tip.x, player->swordInfo[0].tip.z,
this->actor.posRot.pos.x, this->actor.posRot.pos.z);
if (distSqFromSword < SQ(60.0f)) {
EnButte_SetupTransformIntoFairy(this);
}
}
}
void EnButte_SetupTransformIntoFairy(EnButte* this) {
this->timer = 9;
this->actor.flags |= 0x10;
this->skelAnime.animPlaybackSpeed = 1.0f;
EnButte_ResetTransformationEffect();
this->actionFunc = EnButte_TransformIntoFairy;
}
void EnButte_TransformIntoFairy(EnButte* this, GlobalContext* globalCtx) {
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
EnButte_UpdateTransformationEffect();
if (this->timer == 5) {
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 60, NA_SE_EV_BUTTERFRY_TO_FAIRY);
} else if (this->timer == 4) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, this->actor.posRot2.pos.x, this->actor.posRot2.pos.y,
this->actor.posRot2.pos.z, 0, this->actor.shape.rot.y, 0, 2);
this->drawSkelAnime = false;
} else if (this->timer <= 0) {
EnButte_SetupWaitToDie(this);
}
}
void EnButte_SetupWaitToDie(EnButte* this) {
this->timer = 64;
this->actionFunc = EnButte_WaitToDie;
this->actor.draw = NULL;
}
void EnButte_WaitToDie(EnButte* this, GlobalContext* globalCtx) {
if (this->timer <= 0) {
Actor_Kill(&this->actor);
}
}
void EnButte_Update(Actor* thisx, GlobalContext* globalCtx) {
EnButte* this = THIS;
if ((this->actor.child != NULL) && (this->actor.child->update == NULL) && (this->actor.child != &this->actor)) {
this->actor.child = NULL;
}
if (this->timer > 0) {
this->timer--;
}
this->unk_25C += 0x222;
this->unk_25E += 0x1000;
this->unk_260 += 0x600;
if ((this->actor.params & 1) == 1) {
if (PLAYER->swordState == 0) {
if (this->swordDownTimer > 0) {
this->swordDownTimer--;
}
} else {
this->swordDownTimer = 80;
}
}
this->actionFunc(this, globalCtx);
if (this->actor.update != NULL) {
Actor_MoveForward(&this->actor);
Math_ApproxF(&this->actor.posRot.pos.y, this->posYTarget, 0.6f);
if (this->actor.xyzDistFromLinkSq < 5000.0f) {
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
Actor_SetHeight(&this->actor, this->actor.shape.unk_08 * this->actor.scale.y);
}
}
void EnButte_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnButte* this = THIS;
if (this->drawSkelAnime) {
func_80093D18(globalCtx->state.gfxCtx);
SkelAnime_Draw(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, NULL, NULL, NULL);
func_800628A4(0, &this->collider);
}
if (((this->actor.params & 1) == 1) && (this->actionFunc == EnButte_TransformIntoFairy)) {
EnButte_DrawTransformationEffect(this, globalCtx);
}
}

View File

@ -6,9 +6,25 @@
struct EnButte;
typedef void (*EnButteActionFunc)(struct EnButte*, GlobalContext*);
typedef struct EnButte {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x11C];
/* 0x014C */ ColliderJntSph collider;
/* 0x016C */ ColliderJntSphItem colliderItems[1];
/* 0x01AC */ SkelAnime skelAnime;
/* 0x01F0 */ Vec3s limbDrawTable[8];
/* 0x0220 */ Vec3s transitionDrawTable[8];
/* 0x0250 */ EnButteActionFunc actionFunc;
/* 0x0254 */ s16 timer;
/* 0x0256 */ u8 flightParamsIdx;
/* 0x0257 */ u8 unk_257;
/* 0x0258 */ u8 drawSkelAnime;
/* 0x025A */ s16 swordDownTimer;
/* 0x025C */ s16 unk_25C;
/* 0x025E */ s16 unk_25E;
/* 0x0260 */ s16 unk_260;
/* 0x0264 */ f32 posYTarget;
} EnButte; // size = 0x0268
extern const ActorInit En_Butte_InitVars;

View File

@ -1028,6 +1028,10 @@ D_06001678 = 0x06001678;
D_060047D8 = 0x060047D8;
D_06005FC8 = 0x06005FC8;
// z_en_butte
D_05002470 = 0x05002470;
D_050036F0 = 0x050036F0;
// z_eff_ss_dust
D_04010050 = 0x04010050;