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

Obj_Hamishi OK (#539)

* obj_hamishi OK

* Update src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* made suggested changes

Co-authored-by: Zelllll <elijah@DESKTOP-NMP1I89.localdomain>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
Zelllll 2020-12-20 12:39:06 -06:00 committed by GitHub
parent 5c8e745645
commit 06ceb6ad40
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 173 additions and 609 deletions

View file

@ -1,12 +0,0 @@
glabel ObjHamishi_Destroy
/* 00564 80B934F4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00568 80B934F8 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 0056C 80B934FC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00570 80B93500 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00574 80B93504 0C0170EB */ jal Collider_DestroyCylinder
/* 00578 80B93508 24E5014C */ addiu $a1, $a3, 0x014C ## $a1 = 0000014C
/* 0057C 80B9350C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00580 80B93510 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00584 80B93514 03E00008 */ jr $ra
/* 00588 80B93518 00000000 */ nop

View file

@ -1,73 +0,0 @@
.rdata
glabel D_80B937B0
.asciz "../z_obj_hamishi.c"
.balign 4
glabel D_80B937C4
.asciz "../z_obj_hamishi.c"
.balign 4
glabel D_80B937D8
.asciz "../z_obj_hamishi.c"
.balign 4
.text
glabel ObjHamishi_Draw
/* 006B8 80B93648 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 006BC 80B9364C AFBF001C */ sw $ra, 0x001C($sp)
/* 006C0 80B93650 AFB00018 */ sw $s0, 0x0018($sp)
/* 006C4 80B93654 AFA40048 */ sw $a0, 0x0048($sp)
/* 006C8 80B93658 AFA5004C */ sw $a1, 0x004C($sp)
/* 006CC 80B9365C 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 006D0 80B93660 3C0680B9 */ lui $a2, %hi(D_80B937B0) ## $a2 = 80B90000
/* 006D4 80B93664 24C637B0 */ addiu $a2, $a2, %lo(D_80B937B0) ## $a2 = 80B937B0
/* 006D8 80B93668 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 006DC 80B9366C 2407018F */ addiu $a3, $zero, 0x018F ## $a3 = 0000018F
/* 006E0 80B93670 0C031AB1 */ jal Graph_OpenDisps
/* 006E4 80B93674 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 006E8 80B93678 8FAF004C */ lw $t7, 0x004C($sp)
/* 006EC 80B9367C 0C024F46 */ jal func_80093D18
/* 006F0 80B93680 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 006F4 80B93684 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 006F8 80B93688 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000
/* 006FC 80B9368C 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003
/* 00700 80B93690 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00704 80B93694 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
/* 00708 80B93698 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 0070C 80B9369C 8FA8004C */ lw $t0, 0x004C($sp)
/* 00710 80B936A0 3C0580B9 */ lui $a1, %hi(D_80B937C4) ## $a1 = 80B90000
/* 00714 80B936A4 24A537C4 */ addiu $a1, $a1, %lo(D_80B937C4) ## $a1 = 80B937C4
/* 00718 80B936A8 8D040000 */ lw $a0, 0x0000($t0) ## 00000000
/* 0071C 80B936AC 24060194 */ addiu $a2, $zero, 0x0194 ## $a2 = 00000194
/* 00720 80B936B0 0C0346A2 */ jal Matrix_NewMtx
/* 00724 80B936B4 AFA20030 */ sw $v0, 0x0030($sp)
/* 00728 80B936B8 8FA30030 */ lw $v1, 0x0030($sp)
/* 0072C 80B936BC 3C0BFFAA */ lui $t3, 0xFFAA ## $t3 = FFAA0000
/* 00730 80B936C0 356B82FF */ ori $t3, $t3, 0x82FF ## $t3 = FFAA82FF
/* 00734 80B936C4 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00738 80B936C8 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 0073C 80B936CC 3C0AFA00 */ lui $t2, 0xFA00 ## $t2 = FA000000
/* 00740 80B936D0 3C0E0501 */ lui $t6, %hi(D_0500A3B8) ## $t6 = 05010000
/* 00744 80B936D4 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 00748 80B936D8 AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0
/* 0074C 80B936DC AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 00750 80B936E0 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 00754 80B936E4 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00758 80B936E8 25CEA3B8 */ addiu $t6, $t6, %lo(D_0500A3B8) ## $t6 = 0500A3B8
/* 0075C 80B936EC 3C0DDE00 */ lui $t5, 0xDE00 ## $t5 = DE000000
/* 00760 80B936F0 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 00764 80B936F4 AE0C02C0 */ sw $t4, 0x02C0($s0) ## 000002C0
/* 00768 80B936F8 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 0076C 80B936FC AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 00770 80B93700 8FAF004C */ lw $t7, 0x004C($sp)
/* 00774 80B93704 3C0680B9 */ lui $a2, %hi(D_80B937D8) ## $a2 = 80B90000
/* 00778 80B93708 24C637D8 */ addiu $a2, $a2, %lo(D_80B937D8) ## $a2 = 80B937D8
/* 0077C 80B9370C 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 00780 80B93710 2407019B */ addiu $a3, $zero, 0x019B ## $a3 = 0000019B
/* 00784 80B93714 0C031AD5 */ jal Graph_CloseDisps
/* 00788 80B93718 8DE50000 */ lw $a1, 0x0000($t7) ## 00000000
/* 0078C 80B9371C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00790 80B93720 8FB00018 */ lw $s0, 0x0018($sp)
/* 00794 80B93724 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 00798 80B93728 03E00008 */ jr $ra
/* 0079C 80B9372C 00000000 */ nop

View file

@ -1,66 +0,0 @@
glabel ObjHamishi_Init
/* 00480 80B93410 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00484 80B93414 AFA50024 */ sw $a1, 0x0024($sp)
/* 00488 80B93418 AFBF001C */ sw $ra, 0x001C($sp)
/* 0048C 80B9341C AFB00018 */ sw $s0, 0x0018($sp)
/* 00490 80B93420 3C0580B9 */ lui $a1, %hi(D_80B93798) ## $a1 = 80B90000
/* 00494 80B93424 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00498 80B93428 0C01E037 */ jal Actor_ProcessInitChain
/* 0049C 80B9342C 24A53798 */ addiu $a1, $a1, %lo(D_80B93798) ## $a1 = 80B93798
/* 004A0 80B93430 8FAE0024 */ lw $t6, 0x0024($sp)
/* 004A4 80B93434 3C01447A */ lui $at, 0x447A ## $at = 447A0000
/* 004A8 80B93438 91CF1D6C */ lbu $t7, 0x1D6C($t6) ## 00001D6C
/* 004AC 80B9343C 51E00007 */ beql $t7, $zero, .L80B9345C
/* 004B0 80B93440 861800B6 */ lh $t8, 0x00B6($s0) ## 000000B6
/* 004B4 80B93444 C60400F4 */ lwc1 $f4, 0x00F4($s0) ## 000000F4
/* 004B8 80B93448 44813000 */ mtc1 $at, $f6 ## $f6 = 1000.00
/* 004BC 80B9344C 00000000 */ nop
/* 004C0 80B93450 46062200 */ add.s $f8, $f4, $f6
/* 004C4 80B93454 E60800F4 */ swc1 $f8, 0x00F4($s0) ## 000000F4
/* 004C8 80B93458 861800B6 */ lh $t8, 0x00B6($s0) ## 000000B6
.L80B9345C:
/* 004CC 80B9345C 3C014780 */ lui $at, 0x4780 ## $at = 47800000
/* 004D0 80B93460 5700000B */ bnel $t8, $zero, .L80B93490
/* 004D4 80B93464 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004D8 80B93468 44816000 */ mtc1 $at, $f12 ## $f12 = 65536.00
/* 004DC 80B9346C 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 004E0 80B93470 00000000 */ nop
/* 004E4 80B93474 4600028D */ trunc.w.s $f10, $f0
/* 004E8 80B93478 44025000 */ mfc1 $v0, $f10
/* 004EC 80B9347C 00000000 */ nop
/* 004F0 80B93480 A6020016 */ sh $v0, 0x0016($s0) ## 00000016
/* 004F4 80B93484 A6020032 */ sh $v0, 0x0032($s0) ## 00000032
/* 004F8 80B93488 A60200B6 */ sh $v0, 0x00B6($s0) ## 000000B6
/* 004FC 80B9348C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B93490:
/* 00500 80B93490 0C2E4BE4 */ jal func_80B92F90
/* 00504 80B93494 8FA50024 */ lw $a1, 0x0024($sp)
/* 00508 80B93498 3C0680B9 */ lui $a2, %hi(D_80B9377C) ## $a2 = 80B90000
/* 0050C 80B9349C 24C6377C */ addiu $a2, $a2, %lo(D_80B9377C) ## $a2 = 80B9377C
/* 00510 80B934A0 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098
/* 00514 80B934A4 0C0187B5 */ jal func_80061ED4
/* 00518 80B934A8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 0051C 80B934AC 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00520 80B934B0 8FA40024 */ lw $a0, 0x0024($sp)
/* 00524 80B934B4 0C00B2D0 */ jal Flags_GetSwitch
/* 00528 80B934B8 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 0052C 80B934BC 10400005 */ beq $v0, $zero, .L80B934D4
/* 00530 80B934C0 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 00534 80B934C4 0C00B55C */ jal Actor_Kill
/* 00538 80B934C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0053C 80B934CC 10000005 */ beq $zero, $zero, .L80B934E4
/* 00540 80B934D0 8FBF001C */ lw $ra, 0x001C($sp)
.L80B934D4:
/* 00544 80B934D4 44818000 */ mtc1 $at, $f16 ## $f16 = 0.00
/* 00548 80B934D8 00000000 */ nop
/* 0054C 80B934DC E61000BC */ swc1 $f16, 0x00BC($s0) ## 000000BC
/* 00550 80B934E0 8FBF001C */ lw $ra, 0x001C($sp)
.L80B934E4:
/* 00554 80B934E4 8FB00018 */ lw $s0, 0x0018($sp)
/* 00558 80B934E8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 0055C 80B934EC 03E00008 */ jr $ra
/* 00560 80B934F0 00000000 */ nop

View file

@ -1,85 +0,0 @@
glabel ObjHamishi_Update
/* 0058C 80B9351C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00590 80B93520 AFBF001C */ sw $ra, 0x001C($sp)
/* 00594 80B93524 AFB10018 */ sw $s1, 0x0018($sp)
/* 00598 80B93528 AFB00014 */ sw $s0, 0x0014($sp)
/* 0059C 80B9352C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 005A0 80B93530 0C2E4BFA */ jal func_80B92FE8
/* 005A4 80B93534 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 005A8 80B93538 9202015D */ lbu $v0, 0x015D($s0) ## 0000015D
/* 005AC 80B9353C 304E0002 */ andi $t6, $v0, 0x0002 ## $t6 = 00000000
/* 005B0 80B93540 51C0002A */ beql $t6, $zero, .L80B935EC
/* 005B4 80B93544 3C014416 */ lui $at, 0x4416 ## $at = 44160000
/* 005B8 80B93548 8E0F0188 */ lw $t7, 0x0188($s0) ## 00000188
/* 005BC 80B9354C 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 005C0 80B93550 34210040 */ ori $at, $at, 0x0040 ## $at = 40000040
/* 005C4 80B93554 8DF80000 */ lw $t8, 0x0000($t7) ## 00000000
/* 005C8 80B93558 0301C824 */ and $t9, $t8, $at
/* 005CC 80B9355C 53200023 */ beql $t9, $zero, .L80B935EC
/* 005D0 80B93560 3C014416 */ lui $at, 0x4416 ## $at = 44160000
/* 005D4 80B93564 860901A6 */ lh $t1, 0x01A6($s0) ## 000001A6
/* 005D8 80B93568 3048FFFD */ andi $t0, $v0, 0xFFFD ## $t0 = 00000000
/* 005DC 80B9356C A208015D */ sb $t0, 0x015D($s0) ## 0000015D
/* 005E0 80B93570 252A0001 */ addiu $t2, $t1, 0x0001 ## $t2 = 00000001
/* 005E4 80B93574 A60A01A6 */ sh $t2, 0x01A6($s0) ## 000001A6
/* 005E8 80B93578 860B01A6 */ lh $t3, 0x01A6($s0) ## 000001A6
/* 005EC 80B9357C 240C000F */ addiu $t4, $zero, 0x000F ## $t4 = 0000000F
/* 005F0 80B93580 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 005F4 80B93584 29610002 */ slti $at, $t3, 0x0002
/* 005F8 80B93588 10200008 */ beq $at, $zero, .L80B935AC
/* 005FC 80B9358C 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 00600 80B93590 44812000 */ mtc1 $at, $f4 ## $f4 = 2.00
/* 00604 80B93594 3C0143C8 */ lui $at, 0x43C8 ## $at = 43C80000
/* 00608 80B93598 44813000 */ mtc1 $at, $f6 ## $f6 = 400.00
/* 0060C 80B9359C A60C01A0 */ sh $t4, 0x01A0($s0) ## 000001A0
/* 00610 80B935A0 E6040198 */ swc1 $f4, 0x0198($s0) ## 00000198
/* 00614 80B935A4 10000023 */ beq $zero, $zero, .L80B93634
/* 00618 80B935A8 E606019C */ swc1 $f6, 0x019C($s0) ## 0000019C
.L80B935AC:
/* 0061C 80B935AC 0C2E4C59 */ jal func_80B93164
/* 00620 80B935B0 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00624 80B935B4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00628 80B935B8 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 0062C 80B935BC 24060028 */ addiu $a2, $zero, 0x0028 ## $a2 = 00000028
/* 00630 80B935C0 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 00634 80B935C4 24072810 */ addiu $a3, $zero, 0x2810 ## $a3 = 00002810
/* 00638 80B935C8 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 0063C 80B935CC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00640 80B935D0 0C00B2DD */ jal Flags_SetSwitch
/* 00644 80B935D4 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00648 80B935D8 0C00B55C */ jal Actor_Kill
/* 0064C 80B935DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00650 80B935E0 10000015 */ beq $zero, $zero, .L80B93638
/* 00654 80B935E4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00658 80B935E8 3C014416 */ lui $at, 0x4416 ## $at = 44160000
.L80B935EC:
/* 0065C 80B935EC 44815000 */ mtc1 $at, $f10 ## $f10 = 600.00
/* 00660 80B935F0 C6080090 */ lwc1 $f8, 0x0090($s0) ## 00000090
/* 00664 80B935F4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00668 80B935F8 304DFFFD */ andi $t5, $v0, 0xFFFD ## $t5 = 00000000
/* 0066C 80B935FC 460A403C */ c.lt.s $f8, $f10
/* 00670 80B93600 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00674 80B93604 A20D015D */ sb $t5, 0x015D($s0) ## 0000015D
/* 00678 80B93608 02212821 */ addu $a1, $s1, $at
/* 0067C 80B9360C 45000009 */ bc1f .L80B93634
/* 00680 80B93610 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00684 80B93614 2606014C */ addiu $a2, $s0, 0x014C ## $a2 = 0000014C
/* 00688 80B93618 AFA60020 */ sw $a2, 0x0020($sp)
/* 0068C 80B9361C 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 00690 80B93620 AFA50024 */ sw $a1, 0x0024($sp)
/* 00694 80B93624 8FA50024 */ lw $a1, 0x0024($sp)
/* 00698 80B93628 8FA60020 */ lw $a2, 0x0020($sp)
/* 0069C 80B9362C 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 006A0 80B93630 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L80B93634:
/* 006A4 80B93634 8FBF001C */ lw $ra, 0x001C($sp)
.L80B93638:
/* 006A8 80B93638 8FB00014 */ lw $s0, 0x0014($sp)
/* 006AC 80B9363C 8FB10018 */ lw $s1, 0x0018($sp)
/* 006B0 80B93640 03E00008 */ jr $ra
/* 006B4 80B93644 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000

View file

@ -1,26 +0,0 @@
glabel func_80B92F90
/* 00000 80B92F90 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00004 80B92F94 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00008 80B92F98 AFA50024 */ sw $a1, 0x0024($sp)
/* 0000C 80B92F9C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00010 80B92FA0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00014 80B92FA4 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C
/* 00018 80B92FA8 AFA50018 */ sw $a1, 0x0018($sp)
/* 0001C 80B92FAC 0C0170D9 */ jal Collider_InitCylinder
/* 00020 80B92FB0 AFA60020 */ sw $a2, 0x0020($sp)
/* 00024 80B92FB4 3C0780B9 */ lui $a3, %hi(D_80B93750) ## $a3 = 80B90000
/* 00028 80B92FB8 8FA60020 */ lw $a2, 0x0020($sp)
/* 0002C 80B92FBC 24E73750 */ addiu $a3, $a3, %lo(D_80B93750) ## $a3 = 80B93750
/* 00030 80B92FC0 8FA40024 */ lw $a0, 0x0024($sp)
/* 00034 80B92FC4 0C01712B */ jal Collider_SetCylinder
/* 00038 80B92FC8 8FA50018 */ lw $a1, 0x0018($sp)
/* 0003C 80B92FCC 8FA40020 */ lw $a0, 0x0020($sp)
/* 00040 80B92FD0 0C0189B7 */ jal Collider_CylinderUpdate
/* 00044 80B92FD4 8FA50018 */ lw $a1, 0x0018($sp)
/* 00048 80B92FD8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0004C 80B92FDC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00050 80B92FE0 03E00008 */ jr $ra
/* 00054 80B92FE4 00000000 */ nop

View file

@ -1,108 +0,0 @@
glabel func_80B92FE8
/* 00058 80B92FE8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0005C 80B92FEC AFBF001C */ sw $ra, 0x001C($sp)
/* 00060 80B92FF0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00064 80B92FF4 848201A0 */ lh $v0, 0x01A0($a0) ## 000001A0
/* 00068 80B92FF8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0006C 80B92FFC 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00070 80B93000 18400044 */ blez $v0, .L80B93114
/* 00074 80B93004 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00078 80B93008 848F01A2 */ lh $t7, 0x01A2($a0) ## 000001A2
/* 0007C 80B9300C 849901A4 */ lh $t9, 0x01A4($a0) ## 000001A4
/* 00080 80B93010 3C063E19 */ lui $a2, 0x3E19 ## $a2 = 3E190000
/* 00084 80B93014 25F81388 */ addiu $t8, $t7, 0x1388 ## $t8 = 00001388
/* 00088 80B93018 27280E10 */ addiu $t0, $t9, 0x0E10 ## $t0 = 00000E10
/* 0008C 80B9301C A48E01A0 */ sh $t6, 0x01A0($a0) ## 000001A0
/* 00090 80B93020 A49801A2 */ sh $t8, 0x01A2($a0) ## 000001A2
/* 00094 80B93024 A48801A4 */ sh $t0, 0x01A4($a0) ## 000001A4
/* 00098 80B93028 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3E19999A
/* 0009C 80B9302C 24840198 */ addiu $a0, $a0, 0x0198 ## $a0 = 00000198
/* 000A0 80B93030 0C01DE80 */ jal Math_ApproxF
/* 000A4 80B93034 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 000A8 80B93038 2604019C */ addiu $a0, $s0, 0x019C ## $a0 = 0000019C
/* 000AC 80B9303C 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 000B0 80B93040 0C01DE80 */ jal Math_ApproxF
/* 000B4 80B93044 3C064220 */ lui $a2, 0x4220 ## $a2 = 42200000
/* 000B8 80B93048 860401A2 */ lh $a0, 0x01A2($s0) ## 000001A2
/* 000BC 80B9304C 00042080 */ sll $a0, $a0, 2
/* 000C0 80B93050 00042400 */ sll $a0, $a0, 16
/* 000C4 80B93054 0C01DE1C */ jal Math_Sins
## sins?
/* 000C8 80B93058 00042403 */ sra $a0, $a0, 16
/* 000CC 80B9305C C6040198 */ lwc1 $f4, 0x0198($s0) ## 00000198
/* 000D0 80B93060 860401A2 */ lh $a0, 0x01A2($s0) ## 000001A2
/* 000D4 80B93064 C6080008 */ lwc1 $f8, 0x0008($s0) ## 00000008
/* 000D8 80B93068 46040182 */ mul.s $f6, $f0, $f4
/* 000DC 80B9306C 00800821 */ addu $at, $a0, $zero
/* 000E0 80B93070 000420C0 */ sll $a0, $a0, 3
/* 000E4 80B93074 00812023 */ subu $a0, $a0, $at
/* 000E8 80B93078 00042400 */ sll $a0, $a0, 16
/* 000EC 80B9307C 00042403 */ sra $a0, $a0, 16
/* 000F0 80B93080 46083280 */ add.s $f10, $f6, $f8
/* 000F4 80B93084 0C01DE0D */ jal Math_Coss
## coss?
/* 000F8 80B93088 E60A0024 */ swc1 $f10, 0x0024($s0) ## 00000024
/* 000FC 80B9308C C6100198 */ lwc1 $f16, 0x0198($s0) ## 00000198
/* 00100 80B93090 C6040010 */ lwc1 $f4, 0x0010($s0) ## 00000010
/* 00104 80B93094 860401A4 */ lh $a0, 0x01A4($s0) ## 000001A4
/* 00108 80B93098 46100482 */ mul.s $f18, $f0, $f16
/* 0010C 80B9309C 00042080 */ sll $a0, $a0, 2
/* 00110 80B930A0 00042400 */ sll $a0, $a0, 16
/* 00114 80B930A4 00042403 */ sra $a0, $a0, 16
/* 00118 80B930A8 46049180 */ add.s $f6, $f18, $f4
/* 0011C 80B930AC 0C01DE1C */ jal Math_Sins
## sins?
/* 00120 80B930B0 E606002C */ swc1 $f6, 0x002C($s0) ## 0000002C
/* 00124 80B930B4 C608019C */ lwc1 $f8, 0x019C($s0) ## 0000019C
/* 00128 80B930B8 860401A4 */ lh $a0, 0x01A4($s0) ## 000001A4
/* 0012C 80B930BC 860D0014 */ lh $t5, 0x0014($s0) ## 00000014
/* 00130 80B930C0 46080282 */ mul.s $f10, $f0, $f8
/* 00134 80B930C4 00800821 */ addu $at, $a0, $zero
/* 00138 80B930C8 000420C0 */ sll $a0, $a0, 3
/* 0013C 80B930CC 00812023 */ subu $a0, $a0, $at
/* 00140 80B930D0 00042400 */ sll $a0, $a0, 16
/* 00144 80B930D4 00042403 */ sra $a0, $a0, 16
/* 00148 80B930D8 4600540D */ trunc.w.s $f16, $f10
/* 0014C 80B930DC 440C8000 */ mfc1 $t4, $f16
/* 00150 80B930E0 00000000 */ nop
/* 00154 80B930E4 018D7021 */ addu $t6, $t4, $t5
/* 00158 80B930E8 0C01DE0D */ jal Math_Coss
## coss?
/* 0015C 80B930EC A60E00B4 */ sh $t6, 0x00B4($s0) ## 000000B4
/* 00160 80B930F0 C612019C */ lwc1 $f18, 0x019C($s0) ## 0000019C
/* 00164 80B930F4 86090018 */ lh $t1, 0x0018($s0) ## 00000018
/* 00168 80B930F8 46120102 */ mul.s $f4, $f0, $f18
/* 0016C 80B930FC 4600218D */ trunc.w.s $f6, $f4
/* 00170 80B93100 44083000 */ mfc1 $t0, $f6
/* 00174 80B93104 00000000 */ nop
/* 00178 80B93108 01095021 */ addu $t2, $t0, $t1
/* 0017C 80B9310C 10000010 */ beq $zero, $zero, .L80B93150
/* 00180 80B93110 A60A00B8 */ sh $t2, 0x00B8($s0) ## 000000B8
.L80B93114:
/* 00184 80B93114 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 00188 80B93118 0C01DE80 */ jal Math_ApproxF
/* 0018C 80B9311C 8E050008 */ lw $a1, 0x0008($s0) ## 00000008
/* 00190 80B93120 2604002C */ addiu $a0, $s0, 0x002C ## $a0 = 0000002C
/* 00194 80B93124 8E050010 */ lw $a1, 0x0010($s0) ## 00000010
/* 00198 80B93128 0C01DE80 */ jal Math_ApproxF
/* 0019C 80B9312C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 001A0 80B93130 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 001A4 80B93134 86050014 */ lh $a1, 0x0014($s0) ## 00000014
/* 001A8 80B93138 0C01DE2B */ jal Math_ApproxUpdateScaledS
/* 001AC 80B9313C 24060BB8 */ addiu $a2, $zero, 0x0BB8 ## $a2 = 00000BB8
/* 001B0 80B93140 260400B8 */ addiu $a0, $s0, 0x00B8 ## $a0 = 000000B8
/* 001B4 80B93144 86050018 */ lh $a1, 0x0018($s0) ## 00000018
/* 001B8 80B93148 0C01DE2B */ jal Math_ApproxUpdateScaledS
/* 001BC 80B9314C 24060BB8 */ addiu $a2, $zero, 0x0BB8 ## $a2 = 00000BB8
.L80B93150:
/* 001C0 80B93150 8FBF001C */ lw $ra, 0x001C($sp)
/* 001C4 80B93154 8FB00018 */ lw $s0, 0x0018($sp)
/* 001C8 80B93158 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 001CC 80B9315C 03E00008 */ jr $ra
/* 001D0 80B93160 00000000 */ nop

View file

@ -1,186 +0,0 @@
glabel func_80B93164
/* 001D4 80B93164 27BDFF28 */ addiu $sp, $sp, 0xFF28 ## $sp = FFFFFF28
/* 001D8 80B93168 F7BE0070 */ sdc1 $f30, 0x0070($sp)
/* 001DC 80B9316C 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 001E0 80B93170 4481F000 */ mtc1 $at, $f30 ## $f30 = 2.00
/* 001E4 80B93174 F7BC0068 */ sdc1 $f28, 0x0068($sp)
/* 001E8 80B93178 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 001EC 80B9317C 4481E000 */ mtc1 $at, $f28 ## $f28 = 5.00
/* 001F0 80B93180 F7BA0060 */ sdc1 $f26, 0x0060($sp)
/* 001F4 80B93184 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 001F8 80B93188 4481D000 */ mtc1 $at, $f26 ## $f26 = 40.00
/* 001FC 80B9318C AFBE0098 */ sw $s8, 0x0098($sp)
/* 00200 80B93190 AFB30084 */ sw $s3, 0x0084($sp)
/* 00204 80B93194 F7B80058 */ sdc1 $f24, 0x0058($sp)
/* 00208 80B93198 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 0020C 80B9319C AFB70094 */ sw $s7, 0x0094($sp)
/* 00210 80B931A0 AFB60090 */ sw $s6, 0x0090($sp)
/* 00214 80B931A4 AFB5008C */ sw $s5, 0x008C($sp)
/* 00218 80B931A8 AFB40088 */ sw $s4, 0x0088($sp)
/* 0021C 80B931AC AFB20080 */ sw $s2, 0x0080($sp)
/* 00220 80B931B0 AFB1007C */ sw $s1, 0x007C($sp)
/* 00224 80B931B4 AFB00078 */ sw $s0, 0x0078($sp)
/* 00228 80B931B8 3C1380B9 */ lui $s3, %hi(D_80B93784) ## $s3 = 80B90000
/* 0022C 80B931BC 3C1E0501 */ lui $s8, %hi(D_0500A5E8) ## $s8 = 05010000
/* 00230 80B931C0 4481C000 */ mtc1 $at, $f24 ## $f24 = 10.00
/* 00234 80B931C4 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000
/* 00238 80B931C8 00A0A825 */ or $s5, $a1, $zero ## $s5 = 00000000
/* 0023C 80B931CC AFBF009C */ sw $ra, 0x009C($sp)
/* 00240 80B931D0 F7B60050 */ sdc1 $f22, 0x0050($sp)
/* 00244 80B931D4 F7B40048 */ sdc1 $f20, 0x0048($sp)
/* 00248 80B931D8 241003E8 */ addiu $s0, $zero, 0x03E8 ## $s0 = 000003E8
/* 0024C 80B931DC 27DEA5E8 */ addiu $s8, $s8, %lo(D_0500A5E8) ## $s8 = 0500A5E8
/* 00250 80B931E0 26733784 */ addiu $s3, $s3, %lo(D_80B93784) ## $s3 = 80B93784
/* 00254 80B931E4 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 00258 80B931E8 24940024 */ addiu $s4, $a0, 0x0024 ## $s4 = 00000024
/* 0025C 80B931EC 27B600BC */ addiu $s6, $sp, 0x00BC ## $s6 = FFFFFFE4
/* 00260 80B931F0 27B700C8 */ addiu $s7, $sp, 0x00C8 ## $s7 = FFFFFFF0
.L80B931F4:
/* 00264 80B931F4 26104E20 */ addiu $s0, $s0, 0x4E20 ## $s0 = 00005208
/* 00268 80B931F8 00108400 */ sll $s0, $s0, 16
/* 0026C 80B931FC 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00270 80B93200 00108403 */ sra $s0, $s0, 16
/* 00274 80B93204 46180502 */ mul.s $f20, $f0, $f24
/* 00278 80B93208 00102400 */ sll $a0, $s0, 16
/* 0027C 80B9320C 0C01DE1C */ jal Math_Sins
## sins?
/* 00280 80B93210 00042403 */ sra $a0, $a0, 16
/* 00284 80B93214 46140102 */ mul.s $f4, $f0, $f20
/* 00288 80B93218 C6460024 */ lwc1 $f6, 0x0024($s2) ## 00000024
/* 0028C 80B9321C 46062200 */ add.s $f8, $f4, $f6
/* 00290 80B93220 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00294 80B93224 E7A800BC */ swc1 $f8, 0x00BC($sp)
/* 00298 80B93228 461A0282 */ mul.s $f10, $f0, $f26
/* 0029C 80B9322C C6500028 */ lwc1 $f16, 0x0028($s2) ## 00000028
/* 002A0 80B93230 00102400 */ sll $a0, $s0, 16
/* 002A4 80B93234 00042403 */ sra $a0, $a0, 16
/* 002A8 80B93238 46105480 */ add.s $f18, $f10, $f16
/* 002AC 80B9323C 461C9100 */ add.s $f4, $f18, $f28
/* 002B0 80B93240 0C01DE0D */ jal Math_Coss
## coss?
/* 002B4 80B93244 E7A400C0 */ swc1 $f4, 0x00C0($sp)
/* 002B8 80B93248 46140182 */ mul.s $f6, $f0, $f20
/* 002BC 80B9324C C648002C */ lwc1 $f8, 0x002C($s2) ## 0000002C
/* 002C0 80B93250 46083280 */ add.s $f10, $f6, $f8
/* 002C4 80B93254 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 002C8 80B93258 E7AA00C4 */ swc1 $f10, 0x00C4($sp)
/* 002CC 80B9325C 46180402 */ mul.s $f16, $f0, $f24
/* 002D0 80B93260 00102400 */ sll $a0, $s0, 16
/* 002D4 80B93264 00042403 */ sra $a0, $a0, 16
/* 002D8 80B93268 0C01DE1C */ jal Math_Sins
## sins?
/* 002DC 80B9326C 461E8500 */ add.s $f20, $f16, $f30
/* 002E0 80B93270 46140482 */ mul.s $f18, $f0, $f20
/* 002E4 80B93274 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 002E8 80B93278 E7B200C8 */ swc1 $f18, 0x00C8($sp)
/* 002EC 80B9327C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 002F0 80B93280 46000586 */ mov.s $f22, $f0
/* 002F4 80B93284 44912000 */ mtc1 $s1, $f4 ## $f4 = 0.00
/* 002F8 80B93288 3C014020 */ lui $at, 0x4020 ## $at = 40200000
/* 002FC 80B9328C 44815000 */ mtc1 $at, $f10 ## $f10 = 2.50
/* 00300 80B93290 468021A0 */ cvt.s.w $f6, $f4
/* 00304 80B93294 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 00308 80B93298 44819000 */ mtc1 $at, $f18 ## $f18 = 15.00
/* 0030C 80B9329C 00102400 */ sll $a0, $s0, 16
/* 00310 80B932A0 00042403 */ sra $a0, $a0, 16
/* 00314 80B932A4 46060202 */ mul.s $f8, $f0, $f6
/* 00318 80B932A8 00000000 */ nop
/* 0031C 80B932AC 460A4402 */ mul.s $f16, $f8, $f10
/* 00320 80B932B0 00000000 */ nop
/* 00324 80B932B4 4612B102 */ mul.s $f4, $f22, $f18
/* 00328 80B932B8 46048180 */ add.s $f6, $f16, $f4
/* 0032C 80B932BC 0C01DE0D */ jal Math_Coss
## coss?
/* 00330 80B932C0 E7A600CC */ swc1 $f6, 0x00CC($sp)
/* 00334 80B932C4 46140202 */ mul.s $f8, $f0, $f20
/* 00338 80B932C8 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000000
/* 0033C 80B932CC 02C02825 */ or $a1, $s6, $zero ## $a1 = FFFFFFE4
/* 00340 80B932D0 02E03025 */ or $a2, $s7, $zero ## $a2 = FFFFFFF0
/* 00344 80B932D4 02803825 */ or $a3, $s4, $zero ## $a3 = 00000024
/* 00348 80B932D8 240E001E */ addiu $t6, $zero, 0x001E ## $t6 = 0000001E
/* 0034C 80B932DC 16200004 */ bne $s1, $zero, .L80B932F0
/* 00350 80B932E0 E7A800D0 */ swc1 $f8, 0x00D0($sp)
/* 00354 80B932E4 24020029 */ addiu $v0, $zero, 0x0029 ## $v0 = 00000029
/* 00358 80B932E8 10000008 */ beq $zero, $zero, .L80B9330C
/* 0035C 80B932EC 2403FE3E */ addiu $v1, $zero, 0xFE3E ## $v1 = FFFFFE3E
.L80B932F0:
/* 00360 80B932F0 2A210004 */ slti $at, $s1, 0x0004
/* 00364 80B932F4 10200004 */ beq $at, $zero, .L80B93308
/* 00368 80B932F8 24020045 */ addiu $v0, $zero, 0x0045 ## $v0 = 00000045
/* 0036C 80B932FC 24020025 */ addiu $v0, $zero, 0x0025 ## $v0 = 00000025
/* 00370 80B93300 10000002 */ beq $zero, $zero, .L80B9330C
/* 00374 80B93304 2403FE84 */ addiu $v1, $zero, 0xFE84 ## $v1 = FFFFFE84
.L80B93308:
/* 00378 80B93308 2403FEC0 */ addiu $v1, $zero, 0xFEC0 ## $v1 = FFFFFEC0
.L80B9330C:
/* 0037C 80B9330C 86780000 */ lh $t8, 0x0000($s3) ## 80B93784
/* 00380 80B93310 240F0005 */ addiu $t7, $zero, 0x0005 ## $t7 = 00000005
/* 00384 80B93314 24190003 */ addiu $t9, $zero, 0x0003 ## $t9 = 00000003
/* 00388 80B93318 24080046 */ addiu $t0, $zero, 0x0046 ## $t0 = 00000046
/* 0038C 80B9331C 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
/* 00390 80B93320 240A0002 */ addiu $t2, $zero, 0x0002 ## $t2 = 00000002
/* 00394 80B93324 AFAA0038 */ sw $t2, 0x0038($sp)
/* 00398 80B93328 AFA90034 */ sw $t1, 0x0034($sp)
/* 0039C 80B9332C AFA80030 */ sw $t0, 0x0030($sp)
/* 003A0 80B93330 AFB90028 */ sw $t9, 0x0028($sp)
/* 003A4 80B93334 AFAF001C */ sw $t7, 0x001C($sp)
/* 003A8 80B93338 AFA30010 */ sw $v1, 0x0010($sp)
/* 003AC 80B9333C AFA20014 */ sw $v0, 0x0014($sp)
/* 003B0 80B93340 AFAE0018 */ sw $t6, 0x0018($sp)
/* 003B4 80B93344 AFA00020 */ sw $zero, 0x0020($sp)
/* 003B8 80B93348 AFA0002C */ sw $zero, 0x002C($sp)
/* 003BC 80B9334C AFBE003C */ sw $s8, 0x003C($sp)
/* 003C0 80B93350 0C00A7A3 */ jal EffectSsKakera_Spawn
/* 003C4 80B93354 AFB80024 */ sw $t8, 0x0024($sp)
/* 003C8 80B93358 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
/* 003CC 80B9335C 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009
/* 003D0 80B93360 1621FFA4 */ bne $s1, $at, .L80B931F4
/* 003D4 80B93364 26730002 */ addiu $s3, $s3, 0x0002 ## $s3 = 80B93786
/* 003D8 80B93368 3C01430C */ lui $at, 0x430C ## $at = 430C0000
/* 003DC 80B9336C 4481A000 */ mtc1 $at, $f20 ## $f20 = 140.00
/* 003E0 80B93370 240B00B4 */ addiu $t3, $zero, 0x00B4 ## $t3 = 000000B4
/* 003E4 80B93374 240C005A */ addiu $t4, $zero, 0x005A ## $t4 = 0000005A
/* 003E8 80B93378 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001
/* 003EC 80B9337C 4406A000 */ mfc1 $a2, $f20
/* 003F0 80B93380 AFAD0018 */ sw $t5, 0x0018($sp)
/* 003F4 80B93384 AFAC0014 */ sw $t4, 0x0014($sp)
/* 003F8 80B93388 AFAB0010 */ sw $t3, 0x0010($sp)
/* 003FC 80B9338C 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000000
/* 00400 80B93390 02802825 */ or $a1, $s4, $zero ## $a1 = 00000024
/* 00404 80B93394 0C00CD20 */ jal func_80033480
/* 00408 80B93398 24070006 */ addiu $a3, $zero, 0x0006 ## $a3 = 00000006
/* 0040C 80B9339C 4406A000 */ mfc1 $a2, $f20
/* 00410 80B933A0 240E0050 */ addiu $t6, $zero, 0x0050 ## $t6 = 00000050
/* 00414 80B933A4 240F005A */ addiu $t7, $zero, 0x005A ## $t7 = 0000005A
/* 00418 80B933A8 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 0041C 80B933AC AFB80018 */ sw $t8, 0x0018($sp)
/* 00420 80B933B0 AFAF0014 */ sw $t7, 0x0014($sp)
/* 00424 80B933B4 AFAE0010 */ sw $t6, 0x0010($sp)
/* 00428 80B933B8 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000000
/* 0042C 80B933BC 02802825 */ or $a1, $s4, $zero ## $a1 = 00000024
/* 00430 80B933C0 0C00CD20 */ jal func_80033480
/* 00434 80B933C4 2407000C */ addiu $a3, $zero, 0x000C ## $a3 = 0000000C
/* 00438 80B933C8 8FBF009C */ lw $ra, 0x009C($sp)
/* 0043C 80B933CC D7B40048 */ ldc1 $f20, 0x0048($sp)
/* 00440 80B933D0 D7B60050 */ ldc1 $f22, 0x0050($sp)
/* 00444 80B933D4 D7B80058 */ ldc1 $f24, 0x0058($sp)
/* 00448 80B933D8 D7BA0060 */ ldc1 $f26, 0x0060($sp)
/* 0044C 80B933DC D7BC0068 */ ldc1 $f28, 0x0068($sp)
/* 00450 80B933E0 D7BE0070 */ ldc1 $f30, 0x0070($sp)
/* 00454 80B933E4 8FB00078 */ lw $s0, 0x0078($sp)
/* 00458 80B933E8 8FB1007C */ lw $s1, 0x007C($sp)
/* 0045C 80B933EC 8FB20080 */ lw $s2, 0x0080($sp)
/* 00460 80B933F0 8FB30084 */ lw $s3, 0x0084($sp)
/* 00464 80B933F4 8FB40088 */ lw $s4, 0x0088($sp)
/* 00468 80B933F8 8FB5008C */ lw $s5, 0x008C($sp)
/* 0046C 80B933FC 8FB60090 */ lw $s6, 0x0090($sp)
/* 00470 80B93400 8FB70094 */ lw $s7, 0x0094($sp)
/* 00474 80B93404 8FBE0098 */ lw $s8, 0x0098($sp)
/* 00478 80B93408 03E00008 */ jr $ra
/* 0047C 80B9340C 27BD00D8 */ addiu $sp, $sp, 0x00D8 ## $sp = 00000000

View file

@ -1,26 +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 Obj_Hamishi_InitVars
.word 0x01D20600, 0x00000000, 0x00020000, 0x000001A8
.word ObjHamishi_Init
.word ObjHamishi_Destroy
.word ObjHamishi_Update
.word ObjHamishi_Draw
glabel D_80B93750
.word 0x0C000D39, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x4FC1FFF6, 0x00000000, 0x00010100, 0x00320046, 0x00000000, 0x00000000
glabel D_80B9377C
.word 0x0000000C, 0x003CFF00
glabel D_80B93784
.word 0x00910087, 0x00730055, 0x004B0035, 0x002D0028, 0x00230000
glabel D_80B93798
.word 0xC8500190, 0xB0F407D0, 0xB0F800FA, 0x30FC01F4, 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_80B937F0
.incbin "baserom/ovl_Obj_Hamishi", 0x860, 0x00000070

3
spec
View file

@ -3385,8 +3385,7 @@ endseg
beginseg
name "ovl_Obj_Hamishi"
include "build/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.o"
include "build/data/overlays/actors/z_obj_hamishi.data.o"
include "build/data/overlays/actors/z_obj_hamishi.reloc.o"
include "build/src/overlays/actors/ovl_Obj_Hamishi/ovl_Obj_Hamishi_reloc.o"
endseg
beginseg

View file

@ -15,10 +15,9 @@ void ObjHamishi_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ObjHamishi_Update(Actor* thisx, GlobalContext* globalCtx);
void ObjHamishi_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_0500A3B8;
extern UNK_TYPE D_0500A5E8;
extern Gfx D_0500A3B8[];
extern Gfx D_0500A5E8[];
/*
const ActorInit Obj_Hamishi_InitVars = {
ACTOR_OBJ_HAMISHI,
ACTORTYPE_PROP,
@ -30,17 +29,172 @@ const ActorInit Obj_Hamishi_InitVars = {
(ActorFunc)ObjHamishi_Update,
(ActorFunc)ObjHamishi_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hamishi/func_80B92F90.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hamishi/func_80B92FE8.s")
static ColliderCylinderInit sCylinderInit = {
{ COLTYPE_UNK12, 0x00, 0x0D, 0x39, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x4FC1FFF6, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
{ 50, 70, 0, { 0, 0, 0 } },
};
static CollisionCheckInfoInit sColChkInfoInit = { 0, 0xC, 0x3C, 0xFF };
static s16 sEffectScales[] = {
145, 135, 115, 85, 75, 53, 45, 40, 35,
};
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 250, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 500, ICHAIN_STOP),
};
void ObjHamishi_InitCollision(Actor* thisx, GlobalContext* globalCtx) {
ObjHamishi* this = THIS;
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
Collider_CylinderUpdate(&this->actor, &this->collider);
}
void ObjHamishi_Shake(ObjHamishi* this) {
if (this->shakeFrames > 0) {
this->shakeFrames--;
this->shakePosPhase += 5000;
this->shakeRotPhase += 0xE10;
Math_ApproxF(&this->shakePosSize, 0.0f, 0.15f);
Math_ApproxF(&this->shakeRotSize, 0.0f, 40.0f);
this->actor.posRot.pos.x =
this->actor.initPosRot.pos.x + (Math_Sins(this->shakePosPhase * 4) * this->shakePosSize);
this->actor.posRot.pos.z =
this->actor.initPosRot.pos.z + (Math_Coss(this->shakePosPhase * 7) * this->shakePosSize);
this->actor.shape.rot.x =
this->actor.initPosRot.rot.x + (s16)(Math_Sins(this->shakeRotPhase * 4) * this->shakeRotSize);
this->actor.shape.rot.z =
this->actor.initPosRot.rot.z + (s16)(Math_Coss(this->shakeRotPhase * 7) * this->shakeRotSize);
} else {
Math_ApproxF(&this->actor.posRot.pos.x, this->actor.initPosRot.pos.x, 1.0f);
Math_ApproxF(&this->actor.posRot.pos.z, this->actor.initPosRot.pos.z, 1.0f);
Math_ApproxUpdateScaledS(&this->actor.shape.rot.x, this->actor.initPosRot.rot.x, 0xBB8);
Math_ApproxUpdateScaledS(&this->actor.shape.rot.z, this->actor.initPosRot.rot.z, 0xBB8);
}
}
void ObjHamishi_Break(ObjHamishi* this, GlobalContext* globalCtx) {
s32 pad;
Vec3f velocity;
Vec3f pos;
s16 phi_s0 = 1000;
s16 gravity;
s16 phi_v0;
f32 temp_f20;
f32 temp_f22;
s32 i;
for (i = 0; i < ARRAY_COUNT(sEffectScales); i++) {
phi_s0 += 20000;
temp_f20 = Math_Rand_ZeroOne() * 10.0f;
pos.x = (Math_Sins(phi_s0) * temp_f20) + this->actor.posRot.pos.x;
pos.y = (Math_Rand_ZeroOne() * 40.0f) + this->actor.posRot.pos.y + 5.0f;
pos.z = (Math_Coss(phi_s0) * temp_f20) + this->actor.posRot.pos.z;
temp_f20 = (Math_Rand_ZeroOne() * 10.0f) + 2.0f;
velocity.x = Math_Sins(phi_s0) * temp_f20;
temp_f22 = Math_Rand_ZeroOne();
velocity.y = (Math_Rand_ZeroOne() * i * 2.5f) + (temp_f22 * 15.0f);
velocity.z = Math_Coss(phi_s0) * temp_f20;
if (i == 0) {
phi_v0 = 41;
gravity = -450;
} else if (i < 4) {
phi_v0 = 37;
gravity = -380;
} else {
phi_v0 = 69;
gravity = -320;
}
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, &this->actor.posRot.pos, gravity, phi_v0, 30, 5, 0,
sEffectScales[i], 3, 0, 70, 1, OBJECT_GAMEPLAY_FIELD_KEEP, &D_0500A5E8);
}
func_80033480(globalCtx, &this->actor.posRot, 140.0f, 6, 180, 90, 1);
func_80033480(globalCtx, &this->actor.posRot, 140.0f, 12, 80, 90, 1);
}
void ObjHamishi_Init(Actor* thisx, GlobalContext* globalCtx) {
ObjHamishi* this = THIS;
Actor_ProcessInitChain(&this->actor, sInitChain);
if (globalCtx->csCtx.state != 0) {
this->actor.uncullZoneForward += 1000.0f;
}
if (this->actor.shape.rot.y == 0) {
this->actor.shape.rot.y = this->actor.posRot.rot.y = this->actor.initPosRot.rot.y =
Math_Rand_ZeroFloat(65536.0f);
}
ObjHamishi_InitCollision(&this->actor, globalCtx);
func_80061ED4(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
if (Flags_GetSwitch(globalCtx, this->actor.params & 0x3F)) {
Actor_Kill(&this->actor);
return;
}
this->actor.shape.unk_08 = 80.0f;
}
void ObjHamishi_Destroy(Actor* thisx, GlobalContext* globalCtx) {
GlobalContext* globalCtx2 = globalCtx;
ObjHamishi* this = THIS;
Collider_DestroyCylinder(globalCtx2, &this->collider);
}
void ObjHamishi_Update(Actor* thisx, GlobalContext* globalCtx) {
ObjHamishi* this = THIS;
CollisionCheckContext* colChkCtx = &globalCtx->colChkCtx;
ObjHamishi_Shake(this);
if ((this->collider.base.acFlags & 2) && (this->collider.body.acHitItem->toucher.flags & 0x40000040)) {
this->collider.base.acFlags &= ~2;
this->hitCount++;
if (this->hitCount < 2) {
this->shakeFrames = 15;
this->shakePosSize = 2.0f;
this->shakeRotSize = 400.0f;
} else {
ObjHamishi_Break(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_EV_WALL_BROKEN);
Flags_SetSwitch(globalCtx, this->actor.params & 0x3F);
Actor_Kill(&this->actor);
}
} else {
this->collider.base.acFlags &= ~2;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hamishi/func_80B93164.s")
if (this->actor.xzDistFromLink < 600.0f) {
CollisionCheck_SetAC(globalCtx, colChkCtx, &this->collider);
CollisionCheck_SetOC(globalCtx, colChkCtx, &this->collider);
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hamishi/ObjHamishi_Init.s")
void ObjHamishi_Draw(Actor* thisx, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_obj_hamishi.c", 399);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hamishi/ObjHamishi_Destroy.s")
func_80093D18(globalCtx->state.gfxCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hamishi/ObjHamishi_Update.s")
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_obj_hamishi.c", 404),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 170, 130, 255);
gSPDisplayList(POLY_OPA_DISP++, &D_0500A3B8);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hamishi/ObjHamishi_Draw.s")
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_obj_hamishi.c", 411);
}

View file

@ -8,7 +8,13 @@ struct ObjHamishi;
typedef struct ObjHamishi {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x5C];
/* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ f32 shakePosSize;
/* 0x019C */ f32 shakeRotSize;
/* 0x01A0 */ s16 shakeFrames;
/* 0x01A2 */ s16 shakePosPhase;
/* 0x01A4 */ s16 shakeRotPhase;
/* 0x01A6 */ s16 hitCount;
} ObjHamishi; // size = 0x01A8
extern const ActorInit Obj_Hamishi_InitVars;