1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-11 03:39:59 +00:00

Fix non matchings in En_Item00 and En_A_Obj (the 2 "code" actors) (#112)

This commit is contained in:
Roman971 2020-05-03 23:04:11 +02:00 committed by GitHub
parent e36015837b
commit e4846409f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 62 additions and 1435 deletions

View file

@ -1,254 +0,0 @@
.late_rodata
glabel jtbl_80134D6C
.word L8001CEC8
.word L8001CEE0
.word L8001CEF8
.word L8001CF10
.word L8001CF28
.word L8001CEF8
.word L8001CEF8
glabel jtbl_80134D88
.word L8001CFD4
.word L8001CFD4
.word L8001D004
.word L8001D004
.word L8001D128
.word L8001D034
.word L8001D074
.word L8001D074
.word L8001D08C
.word L8001D08C
.word L8001D104
.text
glabel EnAObj_Init
/* A94008 8001CE68 27BDFFC8 */ addiu $sp, $sp, -0x38
/* A9400C 8001CE6C 3C0140C0 */ li $at, 0x40C00000 # 0.000000
/* A94010 8001CE70 44812000 */ mtc1 $at, $f4
/* A94014 8001CE74 AFBF001C */ sw $ra, 0x1c($sp)
/* A94018 8001CE78 AFB00018 */ sw $s0, 0x18($sp)
/* A9401C 8001CE7C AFA5003C */ sw $a1, 0x3c($sp)
/* A94020 8001CE80 AFA00034 */ sw $zero, 0x34($sp)
/* A94024 8001CE84 E7A40028 */ swc1 $f4, 0x28($sp)
/* A94028 8001CE88 8486001C */ lh $a2, 0x1c($a0)
/* A9402C 8001CE8C 00808025 */ move $s0, $a0
/* A94030 8001CE90 30D800FF */ andi $t8, $a2, 0xff
/* A94034 8001CE94 3319FFFF */ andi $t9, $t8, 0xffff
/* A94038 8001CE98 00067203 */ sra $t6, $a2, 8
/* A9403C 8001CE9C 31CF00FF */ andi $t7, $t6, 0xff
/* A94040 8001CEA0 2F210007 */ sltiu $at, $t9, 7
/* A94044 8001CEA4 A48F016C */ sh $t7, 0x16c($a0)
/* A94048 8001CEA8 1020001F */ beqz $at, .L8001CF28
/* A9404C 8001CEAC A498001C */ sh $t8, 0x1c($a0)
/* A94050 8001CEB0 0019C880 */ sll $t9, $t9, 2
/* A94054 8001CEB4 3C018013 */ lui $at, %hi(jtbl_80134D6C)
/* A94058 8001CEB8 00390821 */ addu $at, $at, $t9
/* A9405C 8001CEBC 8C394D6C */ lw $t9, %lo(jtbl_80134D6C)($at)
/* A94060 8001CEC0 03200008 */ jr $t9
/* A94064 8001CEC4 00000000 */ nop
glabel L8001CEC8
/* A94068 8001CEC8 3C053CCC */ lui $a1, (0x3CCCCCCD >> 16) # lui $a1, 0x3ccc
/* A9406C 8001CECC 34A5CCCD */ ori $a1, (0x3CCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd
/* A94070 8001CED0 0C00B58B */ jal Actor_SetScale
/* A94074 8001CED4 02002025 */ move $a0, $s0
/* A94078 8001CED8 10000018 */ b .L8001CF3C
/* A9407C 8001CEDC 8608001C */ lh $t0, 0x1c($s0)
glabel L8001CEE0
/* A94080 8001CEE0 3C053D4C */ lui $a1, (0x3D4CCCCD >> 16) # lui $a1, 0x3d4c
/* A94084 8001CEE4 34A5CCCD */ ori $a1, (0x3D4CCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd
/* A94088 8001CEE8 0C00B58B */ jal Actor_SetScale
/* A9408C 8001CEEC 02002025 */ move $a0, $s0
/* A94090 8001CEF0 10000012 */ b .L8001CF3C
/* A94094 8001CEF4 8608001C */ lh $t0, 0x1c($s0)
glabel L8001CEF8
/* A94098 8001CEF8 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc
/* A9409C 8001CEFC 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd
/* A940A0 8001CF00 0C00B58B */ jal Actor_SetScale
/* A940A4 8001CF04 02002025 */ move $a0, $s0
/* A940A8 8001CF08 1000000C */ b .L8001CF3C
/* A940AC 8001CF0C 8608001C */ lh $t0, 0x1c($s0)
glabel L8001CF10
/* A940B0 8001CF10 3C053BA3 */ lui $a1, (0x3BA3D70A >> 16) # lui $a1, 0x3ba3
/* A940B4 8001CF14 34A5D70A */ ori $a1, (0x3BA3D70A & 0xFFFF) # ori $a1, $a1, 0xd70a
/* A940B8 8001CF18 0C00B58B */ jal Actor_SetScale
/* A940BC 8001CF1C 02002025 */ move $a0, $s0
/* A940C0 8001CF20 10000006 */ b .L8001CF3C
/* A940C4 8001CF24 8608001C */ lh $t0, 0x1c($s0)
glabel L8001CF28
.L8001CF28:
/* A940C8 8001CF28 3C053C23 */ lui $a1, (0x3C23D70A >> 16) # lui $a1, 0x3c23
/* A940CC 8001CF2C 34A5D70A */ ori $a1, (0x3C23D70A & 0xFFFF) # ori $a1, $a1, 0xd70a
/* A940D0 8001CF30 0C00B58B */ jal Actor_SetScale
/* A940D4 8001CF34 02002025 */ move $a0, $s0
/* A940D8 8001CF38 8608001C */ lh $t0, 0x1c($s0)
.L8001CF3C:
/* A940DC 8001CF3C 260400B4 */ addiu $a0, $s0, 0xb4
/* A940E0 8001CF40 24050000 */ li $a1, 0
/* A940E4 8001CF44 29010009 */ slti $at, $t0, 9
/* A940E8 8001CF48 14200005 */ bnez $at, .L8001CF60
/* A940EC 8001CF4C 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Circle) # $a2, 0x8003
/* A940F0 8001CF50 3C014140 */ li $at, 0x41400000 # 0.000000
/* A940F4 8001CF54 44813000 */ mtc1 $at, $f6
/* A940F8 8001CF58 00000000 */ nop
/* A940FC 8001CF5C E7A60028 */ swc1 $f6, 0x28($sp)
.L8001CF60:
/* A94100 8001CF60 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawFunc_Circle) # addiu $a2, $a2, -0x4a14
/* A94104 8001CF64 0C00AC78 */ jal ActorShape_Init
/* A94108 8001CF68 8FA70028 */ lw $a3, 0x28($sp)
/* A9410C 8001CF6C 8E0A0024 */ lw $t2, 0x24($s0)
/* A94110 8001CF70 3C014496 */ li $at, 0x44960000 # 0.000000
/* A94114 8001CF74 44814000 */ mtc1 $at, $f8
/* A94118 8001CF78 8606001C */ lh $a2, 0x1c($s0)
/* A9411C 8001CF7C 3C014348 */ li $at, 0x43480000 # 0.000000
/* A94120 8001CF80 44815000 */ mtc1 $at, $f10
/* A94124 8001CF84 AE0A0038 */ sw $t2, 0x38($s0)
/* A94128 8001CF88 8E0A002C */ lw $t2, 0x2c($s0)
/* A9412C 8001CF8C 8E090028 */ lw $t1, 0x28($s0)
/* A94130 8001CF90 24CCFFFF */ addiu $t4, $a2, -1
/* A94134 8001CF94 240BFFFF */ li $t3, -1
/* A94138 8001CF98 2D81000B */ sltiu $at, $t4, 0xb
/* A9413C 8001CF9C AE0B014C */ sw $t3, 0x14c($s0)
/* A94140 8001CFA0 A2000160 */ sb $zero, 0x160($s0)
/* A94144 8001CFA4 AE00015C */ sw $zero, 0x15c($s0)
/* A94148 8001CFA8 E60800FC */ swc1 $f8, 0xfc($s0)
/* A9414C 8001CFAC E60A00F8 */ swc1 $f10, 0xf8($s0)
/* A94150 8001CFB0 AE0A0040 */ sw $t2, 0x40($s0)
/* A94154 8001CFB4 1020005C */ beqz $at, .L8001D128
/* A94158 8001CFB8 AE09003C */ sw $t1, 0x3c($s0)
/* A9415C 8001CFBC 000C6080 */ sll $t4, $t4, 2
/* A94160 8001CFC0 3C018013 */ lui $at, %hi(jtbl_80134D88)
/* A94164 8001CFC4 002C0821 */ addu $at, $at, $t4
/* A94168 8001CFC8 8C2C4D88 */ lw $t4, %lo(jtbl_80134D88)($at)
/* A9416C 8001CFCC 01800008 */ jr $t4
/* A94170 8001CFD0 00000000 */ nop
glabel L8001CFD4
/* A94174 8001CFD4 8FA4003C */ lw $a0, 0x3c($sp)
/* A94178 8001CFD8 240D0001 */ li $t5, 1
/* A9417C 8001CFDC AE0D014C */ sw $t5, 0x14c($s0)
/* A94180 8001CFE0 02003025 */ move $a2, $s0
/* A94184 8001CFE4 24070001 */ li $a3, 1
/* A94188 8001CFE8 0C00CDD2 */ jal Actor_ChangeType
/* A9418C 8001CFEC 24851C24 */ addiu $a1, $a0, 0x1c24
/* A94190 8001CFF0 02002025 */ move $a0, $s0
/* A94194 8001CFF4 0C007572 */ jal func_8001D5C8
/* A94198 8001CFF8 8605001C */ lh $a1, 0x1c($s0)
/* A9419C 8001CFFC 10000052 */ b .L8001D148
/* A941A0 8001D000 860F001C */ lh $t7, 0x1c($s0)
glabel L8001D004
/* A941A4 8001D004 240E0003 */ li $t6, 3
/* A941A8 8001D008 AE0E014C */ sw $t6, 0x14c($s0)
/* A941AC 8001D00C 8FA4003C */ lw $a0, 0x3c($sp)
/* A941B0 8001D010 02003025 */ move $a2, $s0
/* A941B4 8001D014 24070001 */ li $a3, 1
/* A941B8 8001D018 0C00CDD2 */ jal Actor_ChangeType
/* A941BC 8001D01C 24851C24 */ addiu $a1, $a0, 0x1c24
/* A941C0 8001D020 02002025 */ move $a0, $s0
/* A941C4 8001D024 0C0074C4 */ jal func_8001D310
/* A941C8 8001D028 8605001C */ lh $a1, 0x1c($s0)
/* A941CC 8001D02C 10000046 */ b .L8001D148
/* A941D0 8001D030 860F001C */ lh $t7, 0x1c($s0)
glabel L8001D034
/* A941D4 8001D034 3C014120 */ li $at, 0x41200000 # 0.000000
/* A941D8 8001D038 44818000 */ mtc1 $at, $f16
/* A941DC 8001D03C 8E180004 */ lw $t8, 4($s0)
/* A941E0 8001D040 3C01C000 */ li $at, 0xC0000000 # 0.000000
/* A941E4 8001D044 44819000 */ mtc1 $at, $f18
/* A941E8 8001D048 24080005 */ li $t0, 5
/* A941EC 8001D04C 37190001 */ ori $t9, $t8, 1
/* A941F0 8001D050 AE190004 */ sw $t9, 4($s0)
/* A941F4 8001D054 AE08014C */ sw $t0, 0x14c($s0)
/* A941F8 8001D058 02002025 */ move $a0, $s0
/* A941FC 8001D05C 8605001C */ lh $a1, 0x1c($s0)
/* A94200 8001D060 E6100178 */ swc1 $f16, 0x178($s0)
/* A94204 8001D064 0C00748D */ jal func_8001D234
/* A94208 8001D068 E612006C */ swc1 $f18, 0x6c($s0)
/* A9420C 8001D06C 10000036 */ b .L8001D148
/* A94210 8001D070 860F001C */ lh $t7, 0x1c($s0)
glabel L8001D074
/* A94214 8001D074 AE00014C */ sw $zero, 0x14c($s0)
/* A94218 8001D078 02002025 */ move $a0, $s0
/* A9421C 8001D07C 0C00748D */ jal func_8001D234
/* A94220 8001D080 8605001C */ lh $a1, 0x1c($s0)
/* A94224 8001D084 10000030 */ b .L8001D148
/* A94228 8001D088 860F001C */ lh $t7, 0x1c($s0)
glabel L8001D08C
/* A9422C 8001D08C 8609016C */ lh $t1, 0x16c($s0)
/* A94230 8001D090 3C0143FA */ li $at, 0x43FA0000 # 0.000000
/* A94234 8001D094 44812000 */ mtc1 $at, $f4
/* A94238 8001D098 8E0C0004 */ lw $t4, 4($s0)
/* A9423C 8001D09C 3C014234 */ li $at, 0x42340000 # 0.000000
/* A94240 8001D0A0 44813000 */ mtc1 $at, $f6
/* A94244 8001D0A4 312A00FF */ andi $t2, $t1, 0xff
/* A94248 8001D0A8 354B0300 */ ori $t3, $t2, 0x300
/* A9424C 8001D0AC 358D0009 */ ori $t5, $t4, 9
/* A94250 8001D0B0 A60B010E */ sh $t3, 0x10e($s0)
/* A94254 8001D0B4 AE0D0004 */ sw $t5, 4($s0)
/* A94258 8001D0B8 02002025 */ move $a0, $s0
/* A9425C 8001D0BC 8605001C */ lh $a1, 0x1c($s0)
/* A94260 8001D0C0 E604004C */ swc1 $f4, 0x4c($s0)
/* A94264 8001D0C4 0C00748D */ jal func_8001D234
/* A94268 8001D0C8 E6060178 */ swc1 $f6, 0x178($s0)
/* A9426C 8001D0CC 2605017C */ addiu $a1, $s0, 0x17c
/* A94270 8001D0D0 AFA50024 */ sw $a1, 0x24($sp)
/* A94274 8001D0D4 0C0170D9 */ jal Collider_InitCylinder
/* A94278 8001D0D8 8FA4003C */ lw $a0, 0x3c($sp)
/* A9427C 8001D0DC 3C078011 */ lui $a3, %hi(D_80115440) # $a3, 0x8011
/* A94280 8001D0E0 8FA50024 */ lw $a1, 0x24($sp)
/* A94284 8001D0E4 24E75440 */ addiu $a3, %lo(D_80115440) # addiu $a3, $a3, 0x5440
/* A94288 8001D0E8 8FA4003C */ lw $a0, 0x3c($sp)
/* A9428C 8001D0EC 0C01712B */ jal Collider_SetCylinder
/* A94290 8001D0F0 02003025 */ move $a2, $s0
/* A94294 8001D0F4 240E00FF */ li $t6, 255
/* A94298 8001D0F8 A20E00AE */ sb $t6, 0xae($s0)
/* A9429C 8001D0FC 10000011 */ b .L8001D144
/* A942A0 8001D100 A200001F */ sb $zero, 0x1f($s0)
glabel L8001D104
/* A942A4 8001D104 3C01BFC0 */ li $at, 0xBFC00000 # 0.000000
/* A942A8 8001D108 44814000 */ mtc1 $at, $f8
/* A942AC 8001D10C 00062C00 */ sll $a1, $a2, 0x10
/* A942B0 8001D110 00052C03 */ sra $a1, $a1, 0x10
/* A942B4 8001D114 02002025 */ move $a0, $s0
/* A942B8 8001D118 0C007520 */ jal func_8001D480
/* A942BC 8001D11C E608006C */ swc1 $f8, 0x6c($s0)
/* A942C0 8001D120 10000009 */ b .L8001D148
/* A942C4 8001D124 860F001C */ lh $t7, 0x1c($s0)
glabel L8001D128
.L8001D128:
/* A942C8 8001D128 3C01C000 */ li $at, 0xC0000000 # 0.000000
/* A942CC 8001D12C 44815000 */ mtc1 $at, $f10
/* A942D0 8001D130 00062C00 */ sll $a1, $a2, 0x10
/* A942D4 8001D134 00052C03 */ sra $a1, $a1, 0x10
/* A942D8 8001D138 02002025 */ move $a0, $s0
/* A942DC 8001D13C 0C00748D */ jal func_8001D234
/* A942E0 8001D140 E60A006C */ swc1 $f10, 0x6c($s0)
.L8001D144:
/* A942E4 8001D144 860F001C */ lh $t7, 0x1c($s0)
.L8001D148:
/* A942E8 8001D148 241800FF */ li $t8, 255
/* A942EC 8001D14C 3C048011 */ lui $a0, %hi(D_8011546C)
/* A942F0 8001D150 29E10005 */ slti $at, $t7, 5
/* A942F4 8001D154 10200002 */ beqz $at, .L8001D160
/* A942F8 8001D158 27A50034 */ addiu $a1, $sp, 0x34
/* A942FC 8001D15C A21800AE */ sb $t8, 0xae($s0)
.L8001D160:
/* A94300 8001D160 8E02014C */ lw $v0, 0x14c($s0)
/* A94304 8001D164 2401FFFF */ li $at, -1
/* A94308 8001D168 1041000A */ beq $v0, $at, .L8001D194
/* A9430C 8001D16C 0002C880 */ sll $t9, $v0, 2
/* A94310 8001D170 00992021 */ addu $a0, $a0, $t9
/* A94314 8001D174 0C010620 */ jal DynaPolyInfo_Alloc
/* A94318 8001D178 8C84546C */ lw $a0, %lo(D_8011546C)($a0)
/* A9431C 8001D17C 8FA4003C */ lw $a0, 0x3c($sp)
/* A94320 8001D180 02003025 */ move $a2, $s0
/* A94324 8001D184 8FA70034 */ lw $a3, 0x34($sp)
/* A94328 8001D188 0C00FA9D */ jal DynaPolyInfo_RegisterActor
/* A9432C 8001D18C 24850810 */ addiu $a1, $a0, 0x810
/* A94330 8001D190 AE02014C */ sw $v0, 0x14c($s0)
.L8001D194:
/* A94334 8001D194 8FBF001C */ lw $ra, 0x1c($sp)
/* A94338 8001D198 8FB00018 */ lw $s0, 0x18($sp)
/* A9433C 8001D19C 27BD0038 */ addiu $sp, $sp, 0x38
/* A94340 8001D1A0 03E00008 */ jr $ra
/* A94344 8001D1A4 00000000 */ nop

View file

@ -1,571 +0,0 @@
.late_rodata
glabel jtbl_80134EC4
.word L8001DA18
.word L8001DA18
.word L8001DA18
.word L8001DAA0
.word L8001DB74
.word L8001DB1C
.word L8001DA6C
.word L8001DAE8
.word L8001DB4C
.word L8001DB4C
.word L8001DB4C
.word L8001DB74
.word L8001DB74
.word L8001DB74
.word L8001DB9C
.word L8001DB74
.word L8001DB74
.word L8001DA40
.word L8001DC14
.word L8001DBC4
.word L8001DBEC
.word L8001DC44
.word L8001DCA0
.word L8001DCFC
.word L8001DCFC
.word L8001DB74
glabel D_80134F2C
.float 0.015
glabel D_80134F30
.float 750
glabel D_80134F34
.float 0.03
glabel D_80134F38
.float 650
glabel D_80134F3C
.float 0.02
glabel D_80134F40
.float 65535
glabel D_80134F44
.float 0.02
glabel D_80134F48
.float 0.02
glabel D_80134F4C
.float 0.02
glabel D_80134F50
.float 0.035
glabel D_80134F54
.float 0.03
glabel D_80134F58
.float 0.044999998
glabel D_80134F5C
.float 0.044999998
glabel D_80134F60
.float 750
glabel D_80134F64
.float 0.03
glabel D_80134F68
.float 750
glabel D_80134F6C
.float 0.01
glabel D_80134F70
.float 0.6
glabel D_80134F74
.float 0.6
glabel D_80134F78
.float 0.6
glabel jtbl_80134F7C
.word L8001DE00
.word L8001DE14
.word L8001DE28
.word L8001DE64
.word L8001DE8C
.word L8001DEA0
.word L8001DF3C
.word L8001DF3C
.word L8001DEB4
.word L8001DEC8
.word L8001DEDC
.word L8001DE8C
.word L8001DF28
.word L8001DF34
.word L8001DEF0
.word L8001DEFC
.word L8001DF1C
.word L8001DF08
.word L8001DE78
.word L8001DE50
.word L8001DE3C
.word L8001DF3C
.word L8001DF3C
.word L8001DF3C
.word L8001DF3C
.word L8001DF3C
.text
glabel EnItem00_Init
/* A94AD8 8001D938 3C014475 */ li $at, 0x44750000 # 0.000000
/* A94ADC 8001D93C 44811000 */ mtc1 $at, $f2
/* A94AE0 8001D940 27BDFFC0 */ addiu $sp, $sp, -0x40
/* A94AE4 8001D944 3C0140C0 */ li $at, 0x40C00000 # 0.000000
/* A94AE8 8001D948 44812000 */ mtc1 $at, $f4
/* A94AEC 8001D94C AFBF001C */ sw $ra, 0x1c($sp)
/* A94AF0 8001D950 AFB00018 */ sw $s0, 0x18($sp)
/* A94AF4 8001D954 AFA50044 */ sw $a1, 0x44($sp)
/* A94AF8 8001D958 AFA0002C */ sw $zero, 0x2c($sp)
/* A94AFC 8001D95C E7A40030 */ swc1 $f4, 0x30($sp)
/* A94B00 8001D960 8482001C */ lh $v0, 0x1c($a0)
/* A94B04 8001D964 00808025 */ move $s0, $a0
/* A94B08 8001D968 304E8000 */ andi $t6, $v0, 0x8000
/* A94B0C 8001D96C A7AE002A */ sh $t6, 0x2a($sp)
/* A94B10 8001D970 304F3F00 */ andi $t7, $v0, 0x3f00
/* A94B14 8001D974 000FC203 */ sra $t8, $t7, 8
/* A94B18 8001D978 305900FF */ andi $t9, $v0, 0xff
/* A94B1C 8001D97C A4980150 */ sh $t8, 0x150($a0)
/* A94B20 8001D980 A499001C */ sh $t9, 0x1c($a0)
/* A94B24 8001D984 86050150 */ lh $a1, 0x150($s0)
/* A94B28 8001D988 8FA40044 */ lw $a0, 0x44($sp)
/* A94B2C 8001D98C 0C00B35B */ jal Flags_GetCollectible
/* A94B30 8001D990 E7A20034 */ swc1 $f2, 0x34($sp)
/* A94B34 8001D994 10400005 */ beqz $v0, .L8001D9AC
/* A94B38 8001D998 C7A20034 */ lwc1 $f2, 0x34($sp)
/* A94B3C 8001D99C 0C00B55C */ jal Actor_Kill
/* A94B40 8001D9A0 02002025 */ move $a0, $s0
/* A94B44 8001D9A4 1000017A */ b .L8001DF90
/* A94B48 8001D9A8 8FBF001C */ lw $ra, 0x1c($sp)
.L8001D9AC:
/* A94B4C 8001D9AC 3C058011 */ lui $a1, %hi(D_8011550C) # $a1, 0x8011
/* A94B50 8001D9B0 24A5550C */ addiu $a1, %lo(D_8011550C) # addiu $a1, $a1, 0x550c
/* A94B54 8001D9B4 02002025 */ move $a0, $s0
/* A94B58 8001D9B8 0C01E037 */ jal Actor_ProcessInitChain
/* A94B5C 8001D9BC E7A20034 */ swc1 $f2, 0x34($sp)
/* A94B60 8001D9C0 26050160 */ addiu $a1, $s0, 0x160
/* A94B64 8001D9C4 AFA50020 */ sw $a1, 0x20($sp)
/* A94B68 8001D9C8 0C0170D9 */ jal Collider_InitCylinder
/* A94B6C 8001D9CC 8FA40044 */ lw $a0, 0x44($sp)
/* A94B70 8001D9D0 3C078011 */ lui $a3, %hi(D_801154E0) # $a3, 0x8011
/* A94B74 8001D9D4 8FA50020 */ lw $a1, 0x20($sp)
/* A94B78 8001D9D8 24E754E0 */ addiu $a3, %lo(D_801154E0) # addiu $a3, $a3, 0x54e0
/* A94B7C 8001D9DC 8FA40044 */ lw $a0, 0x44($sp)
/* A94B80 8001D9E0 0C01712B */ jal Collider_SetCylinder
/* A94B84 8001D9E4 02003025 */ move $a2, $s0
/* A94B88 8001D9E8 9609001C */ lhu $t1, 0x1c($s0)
/* A94B8C 8001D9EC C7A20034 */ lwc1 $f2, 0x34($sp)
/* A94B90 8001D9F0 24080001 */ li $t0, 1
/* A94B94 8001D9F4 2D21001A */ sltiu $at, $t1, 0x1a
/* A94B98 8001D9F8 102000D6 */ beqz $at, .L8001DD54
/* A94B9C 8001D9FC A6080158 */ sh $t0, 0x158($s0)
/* A94BA0 8001DA00 00094880 */ sll $t1, $t1, 2
/* A94BA4 8001DA04 3C018013 */ lui $at, %hi(jtbl_80134EC4)
/* A94BA8 8001DA08 00290821 */ addu $at, $at, $t1
/* A94BAC 8001DA0C 8C294EC4 */ lw $t1, %lo(jtbl_80134EC4)($at)
/* A94BB0 8001DA10 01200008 */ jr $t1
/* A94BB4 8001DA14 00000000 */ nop
glabel L8001DA18
/* A94BB8 8001DA18 3C053C75 */ lui $a1, (0x3C75C28F >> 16) # lui $a1, 0x3c75
/* A94BBC 8001DA1C 34A5C28F */ ori $a1, (0x3C75C28F & 0xFFFF) # ori $a1, $a1, 0xc28f
/* A94BC0 8001DA20 0C00B58B */ jal Actor_SetScale
/* A94BC4 8001DA24 02002025 */ move $a0, $s0
/* A94BC8 8001DA28 3C018013 */ lui $at, %hi(D_80134F2C)
/* A94BCC 8001DA2C C4264F2C */ lwc1 $f6, %lo(D_80134F2C)($at)
/* A94BD0 8001DA30 3C018013 */ lui $at, %hi(D_80134F30)
/* A94BD4 8001DA34 E606015C */ swc1 $f6, 0x15c($s0)
/* A94BD8 8001DA38 100000C6 */ b .L8001DD54
/* A94BDC 8001DA3C C4224F30 */ lwc1 $f2, %lo(D_80134F30)($at)
glabel L8001DA40
/* A94BE0 8001DA40 3C053CF5 */ lui $a1, (0x3CF5C28F >> 16) # lui $a1, 0x3cf5
/* A94BE4 8001DA44 A6000158 */ sh $zero, 0x158($s0)
/* A94BE8 8001DA48 34A5C28F */ ori $a1, (0x3CF5C28F & 0xFFFF) # ori $a1, $a1, 0xc28f
/* A94BEC 8001DA4C 0C00B58B */ jal Actor_SetScale
/* A94BF0 8001DA50 02002025 */ move $a0, $s0
/* A94BF4 8001DA54 3C018013 */ lui $at, %hi(D_80134F34)
/* A94BF8 8001DA58 C4284F34 */ lwc1 $f8, %lo(D_80134F34)($at)
/* A94BFC 8001DA5C 3C0143AF */ li $at, 0x43AF0000 # 0.000000
/* A94C00 8001DA60 44811000 */ mtc1 $at, $f2
/* A94C04 8001DA64 100000BB */ b .L8001DD54
/* A94C08 8001DA68 E608015C */ swc1 $f8, 0x15c($s0)
glabel L8001DA6C
/* A94C0C 8001DA6C A6000158 */ sh $zero, 0x158($s0)
/* A94C10 8001DA70 3C018013 */ lui $at, %hi(D_80134F38)
/* A94C14 8001DA74 C4224F38 */ lwc1 $f2, %lo(D_80134F38)($at)
/* A94C18 8001DA78 3C053CA3 */ lui $a1, (0x3CA3D70A >> 16) # lui $a1, 0x3ca3
/* A94C1C 8001DA7C 34A5D70A */ ori $a1, (0x3CA3D70A & 0xFFFF) # ori $a1, $a1, 0xd70a
/* A94C20 8001DA80 02002025 */ move $a0, $s0
/* A94C24 8001DA84 0C00B58B */ jal Actor_SetScale
/* A94C28 8001DA88 E7A20034 */ swc1 $f2, 0x34($sp)
/* A94C2C 8001DA8C 3C018013 */ lui $at, %hi(D_80134F3C)
/* A94C30 8001DA90 C42A4F3C */ lwc1 $f10, %lo(D_80134F3C)($at)
/* A94C34 8001DA94 C7A20034 */ lwc1 $f2, 0x34($sp)
/* A94C38 8001DA98 100000AE */ b .L8001DD54
/* A94C3C 8001DA9C E60A015C */ swc1 $f10, 0x15c($s0)
glabel L8001DAA0
/* A94C40 8001DAA0 3C018013 */ lui $at, %hi(D_80134F40)
/* A94C44 8001DAA4 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* A94C48 8001DAA8 C42C4F40 */ lwc1 $f12, %lo(D_80134F40)($at)
/* A94C4C 8001DAAC 4600040D */ trunc.w.s $f16, $f0
/* A94C50 8001DAB0 3C0143D7 */ li $at, 0x43D70000 # 0.000000
/* A94C54 8001DAB4 44811000 */ mtc1 $at, $f2
/* A94C58 8001DAB8 3C053CA3 */ lui $a1, (0x3CA3D70A >> 16) # lui $a1, 0x3ca3
/* A94C5C 8001DABC 440B8000 */ mfc1 $t3, $f16
/* A94C60 8001DAC0 34A5D70A */ ori $a1, (0x3CA3D70A & 0xFFFF) # ori $a1, $a1, 0xd70a
/* A94C64 8001DAC4 02002025 */ move $a0, $s0
/* A94C68 8001DAC8 A60B0018 */ sh $t3, 0x18($s0)
/* A94C6C 8001DACC 0C00B58B */ jal Actor_SetScale
/* A94C70 8001DAD0 E7A20034 */ swc1 $f2, 0x34($sp)
/* A94C74 8001DAD4 3C018013 */ lui $at, %hi(D_80134F44)
/* A94C78 8001DAD8 C4324F44 */ lwc1 $f18, %lo(D_80134F44)($at)
/* A94C7C 8001DADC C7A20034 */ lwc1 $f2, 0x34($sp)
/* A94C80 8001DAE0 1000009C */ b .L8001DD54
/* A94C84 8001DAE4 E612015C */ swc1 $f18, 0x15c($s0)
glabel L8001DAE8
/* A94C88 8001DAE8 3C0143D7 */ li $at, 0x43D70000 # 0.000000
/* A94C8C 8001DAEC 44811000 */ mtc1 $at, $f2
/* A94C90 8001DAF0 A6000158 */ sh $zero, 0x158($s0)
/* A94C94 8001DAF4 3C053CA3 */ lui $a1, (0x3CA3D70A >> 16) # lui $a1, 0x3ca3
/* A94C98 8001DAF8 34A5D70A */ ori $a1, (0x3CA3D70A & 0xFFFF) # ori $a1, $a1, 0xd70a
/* A94C9C 8001DAFC 02002025 */ move $a0, $s0
/* A94CA0 8001DB00 0C00B58B */ jal Actor_SetScale
/* A94CA4 8001DB04 E7A20034 */ swc1 $f2, 0x34($sp)
/* A94CA8 8001DB08 3C018013 */ lui $at, %hi(D_80134F48)
/* A94CAC 8001DB0C C4244F48 */ lwc1 $f4, %lo(D_80134F48)($at)
/* A94CB0 8001DB10 C7A20034 */ lwc1 $f2, 0x34($sp)
/* A94CB4 8001DB14 1000008F */ b .L8001DD54
/* A94CB8 8001DB18 E604015C */ swc1 $f4, 0x15c($s0)
glabel L8001DB1C
/* A94CBC 8001DB1C 3C0143C8 */ li $at, 0x43C80000 # 0.000000
/* A94CC0 8001DB20 44811000 */ mtc1 $at, $f2
/* A94CC4 8001DB24 3C053CA3 */ lui $a1, (0x3CA3D70A >> 16) # lui $a1, 0x3ca3
/* A94CC8 8001DB28 34A5D70A */ ori $a1, (0x3CA3D70A & 0xFFFF) # ori $a1, $a1, 0xd70a
/* A94CCC 8001DB2C 02002025 */ move $a0, $s0
/* A94CD0 8001DB30 0C00B58B */ jal Actor_SetScale
/* A94CD4 8001DB34 E7A20034 */ swc1 $f2, 0x34($sp)
/* A94CD8 8001DB38 3C018013 */ lui $at, %hi(D_80134F4C)
/* A94CDC 8001DB3C C4264F4C */ lwc1 $f6, %lo(D_80134F4C)($at)
/* A94CE0 8001DB40 C7A20034 */ lwc1 $f2, 0x34($sp)
/* A94CE4 8001DB44 10000083 */ b .L8001DD54
/* A94CE8 8001DB48 E606015C */ swc1 $f6, 0x15c($s0)
glabel L8001DB4C
/* A94CEC 8001DB4C 3C053D0F */ lui $a1, (0x3D0F5C29 >> 16) # lui $a1, 0x3d0f
/* A94CF0 8001DB50 34A55C29 */ ori $a1, (0x3D0F5C29 & 0xFFFF) # ori $a1, $a1, 0x5c29
/* A94CF4 8001DB54 0C00B58B */ jal Actor_SetScale
/* A94CF8 8001DB58 02002025 */ move $a0, $s0
/* A94CFC 8001DB5C 3C018013 */ lui $at, %hi(D_80134F50)
/* A94D00 8001DB60 C4284F50 */ lwc1 $f8, %lo(D_80134F50)($at)
/* A94D04 8001DB64 3C01437A */ li $at, 0x437A0000 # 0.000000
/* A94D08 8001DB68 44811000 */ mtc1 $at, $f2
/* A94D0C 8001DB6C 10000079 */ b .L8001DD54
/* A94D10 8001DB70 E608015C */ swc1 $f8, 0x15c($s0)
glabel L8001DB74
/* A94D14 8001DB74 3C053CF5 */ lui $a1, (0x3CF5C28F >> 16) # lui $a1, 0x3cf5
/* A94D18 8001DB78 34A5C28F */ ori $a1, (0x3CF5C28F & 0xFFFF) # ori $a1, $a1, 0xc28f
/* A94D1C 8001DB7C 0C00B58B */ jal Actor_SetScale
/* A94D20 8001DB80 02002025 */ move $a0, $s0
/* A94D24 8001DB84 3C018013 */ lui $at, %hi(D_80134F54)
/* A94D28 8001DB88 C42A4F54 */ lwc1 $f10, %lo(D_80134F54)($at)
/* A94D2C 8001DB8C 3C0143A0 */ li $at, 0x43A00000 # 0.000000
/* A94D30 8001DB90 44811000 */ mtc1 $at, $f2
/* A94D34 8001DB94 1000006F */ b .L8001DD54
/* A94D38 8001DB98 E60A015C */ swc1 $f10, 0x15c($s0)
glabel L8001DB9C
/* A94D3C 8001DB9C 3C053D38 */ lui $a1, (0x3D3851EB >> 16) # lui $a1, 0x3d38
/* A94D40 8001DBA0 34A551EB */ ori $a1, (0x3D3851EB & 0xFFFF) # ori $a1, $a1, 0x51eb
/* A94D44 8001DBA4 0C00B58B */ jal Actor_SetScale
/* A94D48 8001DBA8 02002025 */ move $a0, $s0
/* A94D4C 8001DBAC 3C018013 */ lui $at, %hi(D_80134F58)
/* A94D50 8001DBB0 C4304F58 */ lwc1 $f16, %lo(D_80134F58)($at)
/* A94D54 8001DBB4 3C0143A0 */ li $at, 0x43A00000 # 0.000000
/* A94D58 8001DBB8 44811000 */ mtc1 $at, $f2
/* A94D5C 8001DBBC 10000065 */ b .L8001DD54
/* A94D60 8001DBC0 E610015C */ swc1 $f16, 0x15c($s0)
glabel L8001DBC4
/* A94D64 8001DBC4 3C053D38 */ lui $a1, (0x3D3851EB >> 16) # lui $a1, 0x3d38
/* A94D68 8001DBC8 34A551EB */ ori $a1, (0x3D3851EB & 0xFFFF) # ori $a1, $a1, 0x51eb
/* A94D6C 8001DBCC 0C00B58B */ jal Actor_SetScale
/* A94D70 8001DBD0 02002025 */ move $a0, $s0
/* A94D74 8001DBD4 3C018013 */ lui $at, %hi(D_80134F5C)
/* A94D78 8001DBD8 C4324F5C */ lwc1 $f18, %lo(D_80134F5C)($at)
/* A94D7C 8001DBDC 3C018013 */ lui $at, %hi(D_80134F60)
/* A94D80 8001DBE0 E612015C */ swc1 $f18, 0x15c($s0)
/* A94D84 8001DBE4 1000005B */ b .L8001DD54
/* A94D88 8001DBE8 C4224F60 */ lwc1 $f2, %lo(D_80134F60)($at)
glabel L8001DBEC
/* A94D8C 8001DBEC 3C053CF5 */ lui $a1, (0x3CF5C28F >> 16) # lui $a1, 0x3cf5
/* A94D90 8001DBF0 34A5C28F */ ori $a1, (0x3CF5C28F & 0xFFFF) # ori $a1, $a1, 0xc28f
/* A94D94 8001DBF4 0C00B58B */ jal Actor_SetScale
/* A94D98 8001DBF8 02002025 */ move $a0, $s0
/* A94D9C 8001DBFC 3C018013 */ lui $at, %hi(D_80134F64)
/* A94DA0 8001DC00 C4244F64 */ lwc1 $f4, %lo(D_80134F64)($at)
/* A94DA4 8001DC04 3C018013 */ lui $at, %hi(D_80134F68)
/* A94DA8 8001DC08 E604015C */ swc1 $f4, 0x15c($s0)
/* A94DAC 8001DC0C 10000051 */ b .L8001DD54
/* A94DB0 8001DC10 C4224F68 */ lwc1 $f2, %lo(D_80134F68)($at)
glabel L8001DC14
/* A94DB4 8001DC14 3C0143FA */ li $at, 0x43FA0000 # 0.000000
/* A94DB8 8001DC18 44811000 */ mtc1 $at, $f2
/* A94DBC 8001DC1C 3C053C23 */ lui $a1, (0x3C23D70A >> 16) # lui $a1, 0x3c23
/* A94DC0 8001DC20 34A5D70A */ ori $a1, (0x3C23D70A & 0xFFFF) # ori $a1, $a1, 0xd70a
/* A94DC4 8001DC24 02002025 */ move $a0, $s0
/* A94DC8 8001DC28 0C00B58B */ jal Actor_SetScale
/* A94DCC 8001DC2C E7A20034 */ swc1 $f2, 0x34($sp)
/* A94DD0 8001DC30 3C018013 */ lui $at, %hi(D_80134F6C)
/* A94DD4 8001DC34 C4264F6C */ lwc1 $f6, %lo(D_80134F6C)($at)
/* A94DD8 8001DC38 C7A20034 */ lwc1 $f2, 0x34($sp)
/* A94DDC 8001DC3C 10000045 */ b .L8001DD54
/* A94DE0 8001DC40 E606015C */ swc1 $f6, 0x15c($s0)
glabel L8001DC44
/* A94DE4 8001DC44 8FA40044 */ lw $a0, 0x44($sp)
/* A94DE8 8001DC48 3C010001 */ lui $at, (0x000117A4 >> 16) # lui $at, 1
/* A94DEC 8001DC4C 342117A4 */ ori $at, (0x000117A4 & 0xFFFF) # ori $at, $at, 0x17a4
/* A94DF0 8001DC50 240500CB */ li $a1, 203
/* A94DF4 8001DC54 0C02604B */ jal Object_GetIndex
/* A94DF8 8001DC58 00812021 */ addu $a0, $a0, $at
/* A94DFC 8001DC5C A202001E */ sb $v0, 0x1e($s0)
/* A94E00 8001DC60 8FA40044 */ lw $a0, 0x44($sp)
/* A94E04 8001DC64 0C00B591 */ jal Actor_SetObjectDependency
/* A94E08 8001DC68 02002825 */ move $a1, $s0
/* A94E0C 8001DC6C 02002025 */ move $a0, $s0
/* A94E10 8001DC70 0C00B58B */ jal Actor_SetScale
/* A94E14 8001DC74 3C053F00 */ lui $a1, 0x3f00
/* A94E18 8001DC78 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* A94E1C 8001DC7C 44814000 */ mtc1 $at, $f8
/* A94E20 8001DC80 3C018013 */ lui $at, %hi(D_80134F70)
/* A94E24 8001DC84 44801000 */ mtc1 $zero, $f2
/* A94E28 8001DC88 E608015C */ swc1 $f8, 0x15c($s0)
/* A94E2C 8001DC8C C42A4F70 */ lwc1 $f10, %lo(D_80134F70)($at)
/* A94E30 8001DC90 240C4000 */ li $t4, 16384
/* A94E34 8001DC94 E7AA0030 */ swc1 $f10, 0x30($sp)
/* A94E38 8001DC98 1000002E */ b .L8001DD54
/* A94E3C 8001DC9C A60C0030 */ sh $t4, 0x30($s0)
glabel L8001DCA0
/* A94E40 8001DCA0 8FA40044 */ lw $a0, 0x44($sp)
/* A94E44 8001DCA4 3C010001 */ lui $at, (0x000117A4 >> 16) # lui $at, 1
/* A94E48 8001DCA8 342117A4 */ ori $at, (0x000117A4 & 0xFFFF) # ori $at, $at, 0x17a4
/* A94E4C 8001DCAC 240500DC */ li $a1, 220
/* A94E50 8001DCB0 0C02604B */ jal Object_GetIndex
/* A94E54 8001DCB4 00812021 */ addu $a0, $a0, $at
/* A94E58 8001DCB8 A202001E */ sb $v0, 0x1e($s0)
/* A94E5C 8001DCBC 8FA40044 */ lw $a0, 0x44($sp)
/* A94E60 8001DCC0 0C00B591 */ jal Actor_SetObjectDependency
/* A94E64 8001DCC4 02002825 */ move $a1, $s0
/* A94E68 8001DCC8 02002025 */ move $a0, $s0
/* A94E6C 8001DCCC 0C00B58B */ jal Actor_SetScale
/* A94E70 8001DCD0 3C053F00 */ lui $a1, 0x3f00
/* A94E74 8001DCD4 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* A94E78 8001DCD8 44818000 */ mtc1 $at, $f16
/* A94E7C 8001DCDC 3C018013 */ lui $at, %hi(D_80134F74)
/* A94E80 8001DCE0 44801000 */ mtc1 $zero, $f2
/* A94E84 8001DCE4 E610015C */ swc1 $f16, 0x15c($s0)
/* A94E88 8001DCE8 C4324F74 */ lwc1 $f18, %lo(D_80134F74)($at)
/* A94E8C 8001DCEC 240D4000 */ li $t5, 16384
/* A94E90 8001DCF0 E7B20030 */ swc1 $f18, 0x30($sp)
/* A94E94 8001DCF4 10000017 */ b .L8001DD54
/* A94E98 8001DCF8 A60D0030 */ sh $t5, 0x30($s0)
glabel L8001DCFC
/* A94E9C 8001DCFC 8FA40044 */ lw $a0, 0x44($sp)
/* A94EA0 8001DD00 3C010001 */ lui $at, (0x000117A4 >> 16) # lui $at, 1
/* A94EA4 8001DD04 342117A4 */ ori $at, (0x000117A4 & 0xFFFF) # ori $at, $at, 0x17a4
/* A94EA8 8001DD08 240500F2 */ li $a1, 242
/* A94EAC 8001DD0C 0C02604B */ jal Object_GetIndex
/* A94EB0 8001DD10 00812021 */ addu $a0, $a0, $at
/* A94EB4 8001DD14 A202001E */ sb $v0, 0x1e($s0)
/* A94EB8 8001DD18 8FA40044 */ lw $a0, 0x44($sp)
/* A94EBC 8001DD1C 0C00B591 */ jal Actor_SetObjectDependency
/* A94EC0 8001DD20 02002825 */ move $a1, $s0
/* A94EC4 8001DD24 02002025 */ move $a0, $s0
/* A94EC8 8001DD28 0C00B58B */ jal Actor_SetScale
/* A94ECC 8001DD2C 3C053F00 */ lui $a1, 0x3f00
/* A94ED0 8001DD30 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* A94ED4 8001DD34 44812000 */ mtc1 $at, $f4
/* A94ED8 8001DD38 3C018013 */ lui $at, %hi(D_80134F78)
/* A94EDC 8001DD3C 240E4000 */ li $t6, 16384
/* A94EE0 8001DD40 E604015C */ swc1 $f4, 0x15c($s0)
/* A94EE4 8001DD44 C4264F78 */ lwc1 $f6, %lo(D_80134F78)($at)
/* A94EE8 8001DD48 44801000 */ mtc1 $zero, $f2
/* A94EEC 8001DD4C E7A60030 */ swc1 $f6, 0x30($sp)
/* A94EF0 8001DD50 A60E0030 */ sh $t6, 0x30($s0)
.L8001DD54:
/* A94EF4 8001DD54 A6000156 */ sh $zero, 0x156($s0)
/* A94EF8 8001DD58 44051000 */ mfc1 $a1, $f2
/* A94EFC 8001DD5C 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Circle)
/* A94F00 8001DD60 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawFunc_Circle) # addiu $a2, $a2, -0x4a14
/* A94F04 8001DD64 8FA70030 */ lw $a3, 0x30($sp)
/* A94F08 8001DD68 0C00AC78 */ jal ActorShape_Init
/* A94F0C 8001DD6C 260400B4 */ addiu $a0, $s0, 0xb4
/* A94F10 8001DD70 8E190024 */ lw $t9, 0x24($s0)
/* A94F14 8001DD74 8E180028 */ lw $t8, 0x28($s0)
/* A94F18 8001DD78 240F00B4 */ li $t7, 180
/* A94F1C 8001DD7C AE190038 */ sw $t9, 0x38($s0)
/* A94F20 8001DD80 8E19002C */ lw $t9, 0x2c($s0)
/* A94F24 8001DD84 A20F00C8 */ sb $t7, 0xc8($s0)
/* A94F28 8001DD88 A6000152 */ sh $zero, 0x152($s0)
/* A94F2C 8001DD8C AE18003C */ sw $t8, 0x3c($s0)
/* A94F30 8001DD90 AE190040 */ sw $t9, 0x40($s0)
/* A94F34 8001DD94 87A8002A */ lh $t0, 0x2a($sp)
/* A94F38 8001DD98 240A000F */ li $t2, 15
/* A94F3C 8001DD9C 240B0023 */ li $t3, 35
/* A94F40 8001DDA0 55000009 */ bnezl $t0, .L8001DDC8
/* A94F44 8001DDA4 44800000 */ mtc1 $zero, $f0
/* A94F48 8001DDA8 3C058002 */ lui $a1, %hi(func_8001DFC8)
/* A94F4C 8001DDAC 24A5DFC8 */ addiu $a1, %lo(func_8001DFC8) # addiu $a1, $a1, -0x2038
/* A94F50 8001DDB0 0C00764C */ jal EnItem00_SetupAction
/* A94F54 8001DDB4 02002025 */ move $a0, $s0
/* A94F58 8001DDB8 2409FFFF */ li $t1, -1
/* A94F5C 8001DDBC 10000073 */ b .L8001DF8C
/* A94F60 8001DDC0 A609015A */ sh $t1, 0x15a($s0)
/* A94F64 8001DDC4 44800000 */ mtc1 $zero, $f0
.L8001DDC8:
/* A94F68 8001DDC8 960C001C */ lhu $t4, 0x1c($s0)
/* A94F6C 8001DDCC A60A015A */ sh $t2, 0x15a($s0)
/* A94F70 8001DDD0 A60B0154 */ sh $t3, 0x154($s0)
/* A94F74 8001DDD4 2D81001A */ sltiu $at, $t4, 0x1a
/* A94F78 8001DDD8 E6000068 */ swc1 $f0, 0x68($s0)
/* A94F7C 8001DDDC E6000060 */ swc1 $f0, 0x60($s0)
/* A94F80 8001DDE0 10200056 */ beqz $at, .L8001DF3C
/* A94F84 8001DDE4 E600006C */ swc1 $f0, 0x6c($s0)
/* A94F88 8001DDE8 000C6080 */ sll $t4, $t4, 2
/* A94F8C 8001DDEC 3C018013 */ lui $at, %hi(jtbl_80134F7C)
/* A94F90 8001DDF0 002C0821 */ addu $at, $at, $t4
/* A94F94 8001DDF4 8C2C4F7C */ lw $t4, %lo(jtbl_80134F7C)($at)
/* A94F98 8001DDF8 01800008 */ jr $t4
/* A94F9C 8001DDFC 00000000 */ nop
glabel L8001DE00
/* A94FA0 8001DE00 8FA40044 */ lw $a0, 0x44($sp)
/* A94FA4 8001DE04 0C021344 */ jal Item_Give
/* A94FA8 8001DE08 24050084 */ li $a1, 132
/* A94FAC 8001DE0C 1000004C */ b .L8001DF40
/* A94FB0 8001DE10 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DE14
/* A94FB4 8001DE14 8FA40044 */ lw $a0, 0x44($sp)
/* A94FB8 8001DE18 0C021344 */ jal Item_Give
/* A94FBC 8001DE1C 24050085 */ li $a1, 133
/* A94FC0 8001DE20 10000047 */ b .L8001DF40
/* A94FC4 8001DE24 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DE28
/* A94FC8 8001DE28 8FA40044 */ lw $a0, 0x44($sp)
/* A94FCC 8001DE2C 0C021344 */ jal Item_Give
/* A94FD0 8001DE30 24050086 */ li $a1, 134
/* A94FD4 8001DE34 10000042 */ b .L8001DF40
/* A94FD8 8001DE38 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DE3C
/* A94FDC 8001DE3C 8FA40044 */ lw $a0, 0x44($sp)
/* A94FE0 8001DE40 0C021344 */ jal Item_Give
/* A94FE4 8001DE44 24050087 */ li $a1, 135
/* A94FE8 8001DE48 1000003D */ b .L8001DF40
/* A94FEC 8001DE4C 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DE50
/* A94FF0 8001DE50 8FA40044 */ lw $a0, 0x44($sp)
/* A94FF4 8001DE54 0C021344 */ jal Item_Give
/* A94FF8 8001DE58 24050088 */ li $a1, 136
/* A94FFC 8001DE5C 10000038 */ b .L8001DF40
/* A95000 8001DE60 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DE64
/* A95004 8001DE64 8FA40044 */ lw $a0, 0x44($sp)
/* A95008 8001DE68 0C021344 */ jal Item_Give
/* A9500C 8001DE6C 24050083 */ li $a1, 131
/* A95010 8001DE70 10000033 */ b .L8001DF40
/* A95014 8001DE74 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DE78
/* A95018 8001DE78 8FA40044 */ lw $a0, 0x44($sp)
/* A9501C 8001DE7C 0C021C5D */ jal Health_ChangeBy
/* A95020 8001DE80 24050070 */ li $a1, 112
/* A95024 8001DE84 1000002E */ b .L8001DF40
/* A95028 8001DE88 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DE8C
/* A9502C 8001DE8C 8FA40044 */ lw $a0, 0x44($sp)
/* A95030 8001DE90 0C021344 */ jal Item_Give
/* A95034 8001DE94 2405008E */ li $a1, 142
/* A95038 8001DE98 10000029 */ b .L8001DF40
/* A9503C 8001DE9C 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DEA0
/* A95040 8001DEA0 8FA40044 */ lw $a0, 0x44($sp)
/* A95044 8001DEA4 0C021344 */ jal Item_Give
/* A95048 8001DEA8 24050003 */ li $a1, 3
/* A9504C 8001DEAC 10000024 */ b .L8001DF40
/* A95050 8001DEB0 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DEB4
/* A95054 8001DEB4 8FA40044 */ lw $a0, 0x44($sp)
/* A95058 8001DEB8 0C021344 */ jal Item_Give
/* A9505C 8001DEBC 24050092 */ li $a1, 146
/* A95060 8001DEC0 1000001F */ b .L8001DF40
/* A95064 8001DEC4 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DEC8
/* A95068 8001DEC8 8FA40044 */ lw $a0, 0x44($sp)
/* A9506C 8001DECC 0C021344 */ jal Item_Give
/* A95070 8001DED0 24050093 */ li $a1, 147
/* A95074 8001DED4 1000001A */ b .L8001DF40
/* A95078 8001DED8 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DEDC
/* A9507C 8001DEDC 8FA40044 */ lw $a0, 0x44($sp)
/* A95080 8001DEE0 0C021344 */ jal Item_Give
/* A95084 8001DEE4 24050094 */ li $a1, 148
/* A95088 8001DEE8 10000015 */ b .L8001DF40
/* A9508C 8001DEEC 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DEF0
/* A95090 8001DEF0 240D0043 */ li $t5, 67
/* A95094 8001DEF4 10000011 */ b .L8001DF3C
/* A95098 8001DEF8 AFAD002C */ sw $t5, 0x2c($sp)
glabel L8001DEFC
/* A9509C 8001DEFC 240E0044 */ li $t6, 68
/* A950A0 8001DF00 1000000E */ b .L8001DF3C
/* A950A4 8001DF04 AFAE002C */ sw $t6, 0x2c($sp)
glabel L8001DF08
/* A950A8 8001DF08 8FA40044 */ lw $a0, 0x44($sp)
/* A950AC 8001DF0C 0C021344 */ jal Item_Give
/* A950B0 8001DF10 24050077 */ li $a1, 119
/* A950B4 8001DF14 1000000A */ b .L8001DF40
/* A950B8 8001DF18 8FA8002C */ lw $t0, 0x2c($sp)
glabel L8001DF1C
/* A950BC 8001DF1C 240F003C */ li $t7, 60
/* A950C0 8001DF20 10000006 */ b .L8001DF3C
/* A950C4 8001DF24 AFAF002C */ sw $t7, 0x2c($sp)
glabel L8001DF28
/* A950C8 8001DF28 24180002 */ li $t8, 2
/* A950CC 8001DF2C 10000003 */ b .L8001DF3C
/* A950D0 8001DF30 AFB8002C */ sw $t8, 0x2c($sp)
glabel L8001DF34
/* A950D4 8001DF34 24190007 */ li $t9, 7
/* A950D8 8001DF38 AFB9002C */ sw $t9, 0x2c($sp)
glabel L8001DF3C
.L8001DF3C:
/* A950DC 8001DF3C 8FA8002C */ lw $t0, 0x2c($sp)
.L8001DF40:
/* A950E0 8001DF40 02002025 */ move $a0, $s0
/* A950E4 8001DF44 11000008 */ beqz $t0, .L8001DF68
/* A950E8 8001DF48 00000000 */ nop
/* A950EC 8001DF4C 0C00BD04 */ jal func_8002F410
/* A950F0 8001DF50 8FA50044 */ lw $a1, 0x44($sp)
/* A950F4 8001DF54 14400004 */ bnez $v0, .L8001DF68
/* A950F8 8001DF58 02002025 */ move $a0, $s0
/* A950FC 8001DF5C 8FA50044 */ lw $a1, 0x44($sp)
/* A95100 8001DF60 0C00BD55 */ jal func_8002F554
/* A95104 8001DF64 8FA6002C */ lw $a2, 0x2c($sp)
.L8001DF68:
/* A95108 8001DF68 3C058002 */ lui $a1, %hi(func_8001E5C8) # $a1, 0x8002
/* A9510C 8001DF6C 24A5E5C8 */ addiu $a1, %lo(func_8001E5C8) # addiu $a1, $a1, -0x1a38
/* A95110 8001DF70 0C00764C */ jal EnItem00_SetupAction
/* A95114 8001DF74 02002025 */ move $a0, $s0
/* A95118 8001DF78 8E19014C */ lw $t9, 0x14c($s0)
/* A9511C 8001DF7C 02002025 */ move $a0, $s0
/* A95120 8001DF80 8FA50044 */ lw $a1, 0x44($sp)
/* A95124 8001DF84 0320F809 */ jalr $t9
/* A95128 8001DF88 00000000 */ nop
.L8001DF8C:
/* A9512C 8001DF8C 8FBF001C */ lw $ra, 0x1c($sp)
.L8001DF90:
/* A95130 8001DF90 8FB00018 */ lw $s0, 0x18($sp)
/* A95134 8001DF94 27BD0040 */ addiu $sp, $sp, 0x40
/* A95138 8001DF98 03E00008 */ jr $ra
/* A9513C 8001DF9C 00000000 */ nop

View file

@ -1,529 +0,0 @@
.late_rodata
glabel D_80134FF4
.float 0.1
glabel D_80134FF8
.float -10000
glabel jtbl_80134FFC
.word L8001EA90
.word L8001EAA4
.word L8001EAB8
.word L8001EB0C
.word L8001EB34
.word L8001EB48
.word L8001EBB0
.word L8001EBBC
.word L8001EB5C
.word L8001EB70
.word L8001EB84
.word L8001EB34
.word L8001EB00
.word L8001EAF4
.word L8001EBC8
.word L8001EBD4
.word L8001EB98
.word L8001EBA4
.word L8001EB20
.word L8001EAE0
.word L8001EACC
.word L8001EBE0
.word L8001EBEC
.word L8001EBF8
.word L8001EC04
.word L8001EC0C
glabel jtbl_80135064
.word L8001EC60
.word L8001EC60
.word L8001EC8C
.word L8001EC8C
.word L8001EC8C
.word L8001EC8C
.word L8001EC8C
.word L8001EC8C
.word L8001EC8C
.word L8001EC8C
.word L8001EC8C
.word L8001EC60
.word L8001EC8C
.word L8001EC8C
.word L8001EC8C
.word L8001EC60
.word L8001EC60
.word L8001EC60
.word L8001EC60
.text
glabel EnItem00_Update
/* A958BC 8001E71C 27BDFFB8 */ addiu $sp, $sp, -0x48
/* A958C0 8001E720 AFBF0024 */ sw $ra, 0x24($sp)
/* A958C4 8001E724 AFB10020 */ sw $s1, 0x20($sp)
/* A958C8 8001E728 AFB0001C */ sw $s0, 0x1c($sp)
/* A958CC 8001E72C AFA0003C */ sw $zero, 0x3c($sp)
/* A958D0 8001E730 A7A0003A */ sh $zero, 0x3a($sp)
/* A958D4 8001E734 8482015A */ lh $v0, 0x15a($a0)
/* A958D8 8001E738 00808025 */ move $s0, $a0
/* A958DC 8001E73C 00A08825 */ move $s1, $a1
/* A958E0 8001E740 18400003 */ blez $v0, .L8001E750
/* A958E4 8001E744 244EFFFF */ addiu $t6, $v0, -1
/* A958E8 8001E748 A48E015A */ sh $t6, 0x15a($a0)
/* A958EC 8001E74C 8482015A */ lh $v0, 0x15a($a0)
.L8001E750:
/* A958F0 8001E750 18400007 */ blez $v0, .L8001E770
/* A958F4 8001E754 28410029 */ slti $at, $v0, 0x29
/* A958F8 8001E758 50200006 */ beql $at, $zero, .L8001E774
/* A958FC 8001E75C 8E19014C */ lw $t9, 0x14c($s0)
/* A95900 8001E760 860F0154 */ lh $t7, 0x154($s0)
/* A95904 8001E764 5DE00003 */ bgtzl $t7, .L8001E774
/* A95908 8001E768 8E19014C */ lw $t9, 0x14c($s0)
/* A9590C 8001E76C A6020156 */ sh $v0, 0x156($s0)
.L8001E770:
/* A95910 8001E770 8E19014C */ lw $t9, 0x14c($s0)
.L8001E774:
/* A95914 8001E774 02002025 */ move $a0, $s0
/* A95918 8001E778 02202825 */ move $a1, $s1
/* A9591C 8001E77C 0320F809 */ jalr $t9
/* A95920 8001E780 00000000 */ nop
/* A95924 8001E784 3C018013 */ lui $at, %hi(D_80134FF4)
/* A95928 8001E788 C4224FF4 */ lwc1 $f2, %lo(D_80134FF4)($at)
/* A9592C 8001E78C C600015C */ lwc1 $f0, 0x15c($s0)
/* A95930 8001E790 44803000 */ mtc1 $zero, $f6
/* A95934 8001E794 44061000 */ mfc1 $a2, $f2
/* A95938 8001E798 46020102 */ mul.s $f4, $f0, $f2
/* A9593C 8001E79C 44050000 */ mfc1 $a1, $f0
/* A95940 8001E7A0 26040050 */ addiu $a0, $s0, 0x50
/* A95944 8001E7A4 E7A60010 */ swc1 $f6, 0x10($sp)
/* A95948 8001E7A8 44072000 */ mfc1 $a3, $f4
/* A9594C 8001E7AC 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
/* A95950 8001E7B0 00000000 */ nop
/* A95954 8001E7B4 44804000 */ mtc1 $zero, $f8
/* A95958 8001E7B8 C60A006C */ lwc1 $f10, 0x6c($s0)
/* A9595C 8001E7BC C6020050 */ lwc1 $f2, 0x50($s0)
/* A95960 8001E7C0 460A4032 */ c.eq.s $f8, $f10
/* A95964 8001E7C4 E6020058 */ swc1 $f2, 0x58($s0)
/* A95968 8001E7C8 E6020054 */ swc1 $f2, 0x54($s0)
/* A9596C 8001E7CC 45030062 */ bc1tl .L8001E958
/* A95970 8001E7D0 26060160 */ addiu $a2, $s0, 0x160
/* A95974 8001E7D4 96180088 */ lhu $t8, 0x88($s0)
/* A95978 8001E7D8 3C020001 */ lui $v0, 1
/* A9597C 8001E7DC 00511021 */ addu $v0, $v0, $s1
/* A95980 8001E7E0 33080003 */ andi $t0, $t8, 3
/* A95984 8001E7E4 1100003B */ beqz $t0, .L8001E8D4
/* A95988 8001E7E8 3C098015 */ lui $t1, %hi(D_80157D90) # $t1, 0x8015
/* A9598C 8001E7EC 8C421DE4 */ lw $v0, 0x1de4($v0)
/* A95990 8001E7F0 8D297D90 */ lw $t1, %lo(D_80157D90)($t1)
/* A95994 8001E7F4 3C058015 */ lui $a1, %hi(D_80157D94) # $a1, 0x8015
/* A95998 8001E7F8 24A57D94 */ addiu $a1, %lo(D_80157D94) # addiu $a1, $a1, 0x7d94
/* A9599C 8001E7FC 10490032 */ beq $v0, $t1, .L8001E8C8
/* A959A0 8001E800 3C018015 */ lui $at, %hi(D_80157D90) # $at, 0x8015
/* A959A4 8001E804 AC227D90 */ sw $v0, %lo(D_80157D90)($at)
/* A959A8 8001E808 A4A00000 */ sh $zero, ($a1)
/* A959AC 8001E80C 00001825 */ move $v1, $zero
/* A959B0 8001E810 24040064 */ li $a0, 100
/* A959B4 8001E814 00035040 */ sll $t2, $v1, 1
.L8001E818:
/* A959B8 8001E818 022A5821 */ addu $t3, $s1, $t2
/* A959BC 8001E81C 956C1B9C */ lhu $t4, 0x1b9c($t3)
/* A959C0 8001E820 318D0001 */ andi $t5, $t4, 1
/* A959C4 8001E824 51A00023 */ beql $t5, $zero, .L8001E8B4
/* A959C8 8001E828 24630001 */ addiu $v1, $v1, 1
/* A959CC 8001E82C 00640019 */ multu $v1, $a0
/* A959D0 8001E830 00007012 */ mflo $t6
/* A959D4 8001E834 022E7821 */ addu $t7, $s1, $t6
/* A959D8 8001E838 8DE20814 */ lw $v0, 0x814($t7)
/* A959DC 8001E83C 5040001D */ beql $v0, $zero, .L8001E8B4
/* A959E0 8001E840 24630001 */ addiu $v1, $v1, 1
/* A959E4 8001E844 8C590130 */ lw $t9, 0x130($v0)
/* A959E8 8001E848 5320001A */ beql $t9, $zero, .L8001E8B4
/* A959EC 8001E84C 24630001 */ addiu $v1, $v1, 1
/* A959F0 8001E850 C4500100 */ lwc1 $f16, 0x100($v0)
/* A959F4 8001E854 C4520024 */ lwc1 $f18, 0x24($v0)
/* A959F8 8001E858 46128032 */ c.eq.s $f16, $f18
/* A959FC 8001E85C 00000000 */ nop
/* A95A00 8001E860 4502000E */ bc1fl .L8001E89C
/* A95A04 8001E864 84B80000 */ lh $t8, ($a1)
/* A95A08 8001E868 C4440104 */ lwc1 $f4, 0x104($v0)
/* A95A0C 8001E86C C4460028 */ lwc1 $f6, 0x28($v0)
/* A95A10 8001E870 46062032 */ c.eq.s $f4, $f6
/* A95A14 8001E874 00000000 */ nop
/* A95A18 8001E878 45020008 */ bc1fl .L8001E89C
/* A95A1C 8001E87C 84B80000 */ lh $t8, ($a1)
/* A95A20 8001E880 C4480108 */ lwc1 $f8, 0x108($v0)
/* A95A24 8001E884 C44A002C */ lwc1 $f10, 0x2c($v0)
/* A95A28 8001E888 460A4032 */ c.eq.s $f8, $f10
/* A95A2C 8001E88C 00000000 */ nop
/* A95A30 8001E890 45030008 */ bc1tl .L8001E8B4
/* A95A34 8001E894 24630001 */ addiu $v1, $v1, 1
/* A95A38 8001E898 84B80000 */ lh $t8, ($a1)
.L8001E89C:
/* A95A3C 8001E89C 27080001 */ addiu $t0, $t8, 1
/* A95A40 8001E8A0 A4A80000 */ sh $t0, ($a1)
/* A95A44 8001E8A4 3C058015 */ lui $a1, %hi(D_80157D94) # $a1, 0x8015
/* A95A48 8001E8A8 10000010 */ b .L8001E8EC
/* A95A4C 8001E8AC 24A57D94 */ addiu $a1, %lo(D_80157D94) # addiu $a1, $a1, 0x7d94
/* A95A50 8001E8B0 24630001 */ addiu $v1, $v1, 1
.L8001E8B4:
/* A95A54 8001E8B4 00031C00 */ sll $v1, $v1, 0x10
/* A95A58 8001E8B8 00031C03 */ sra $v1, $v1, 0x10
/* A95A5C 8001E8BC 28610032 */ slti $at, $v1, 0x32
/* A95A60 8001E8C0 5420FFD5 */ bnezl $at, .L8001E818
/* A95A64 8001E8C4 00035040 */ sll $t2, $v1, 1
.L8001E8C8:
/* A95A68 8001E8C8 3C058015 */ lui $a1, %hi(D_80157D94) # $a1, 0x8015
/* A95A6C 8001E8CC 10000007 */ b .L8001E8EC
/* A95A70 8001E8D0 24A57D94 */ addiu $a1, %lo(D_80157D94) # addiu $a1, $a1, 0x7d94
.L8001E8D4:
/* A95A74 8001E8D4 24090001 */ li $t1, 1
/* A95A78 8001E8D8 A7A9003A */ sh $t1, 0x3a($sp)
/* A95A7C 8001E8DC 0C00B638 */ jal Actor_MoveForward
/* A95A80 8001E8E0 02002025 */ move $a0, $s0
/* A95A84 8001E8E4 3C058015 */ lui $a1, %hi(D_80157D94) # $a1, 0x8015
/* A95A88 8001E8E8 24A57D94 */ addiu $a1, %lo(D_80157D94) # addiu $a1, $a1, 0x7d94
.L8001E8EC:
/* A95A8C 8001E8EC 87AA003A */ lh $t2, 0x3a($sp)
/* A95A90 8001E8F0 3C014170 */ lui $at, 0x4170
/* A95A94 8001E8F4 02202025 */ move $a0, $s1
/* A95A98 8001E8F8 15400004 */ bnez $t2, .L8001E90C
/* A95A9C 8001E8FC 3C064120 */ li $a2, 0x41200000 # 0.000000
/* A95AA0 8001E900 84AB0000 */ lh $t3, ($a1)
/* A95AA4 8001E904 51600014 */ beql $t3, $zero, .L8001E958
/* A95AA8 8001E908 26060160 */ addiu $a2, $s0, 0x160
.L8001E90C:
/* A95AAC 8001E90C 44810000 */ mtc1 $at, $f0
/* A95AB0 8001E910 240C001D */ li $t4, 29
/* A95AB4 8001E914 AFAC0014 */ sw $t4, 0x14($sp)
/* A95AB8 8001E918 44070000 */ mfc1 $a3, $f0
/* A95ABC 8001E91C 02002825 */ move $a1, $s0
/* A95AC0 8001E920 0C00B92D */ jal func_8002E4B4
/* A95AC4 8001E924 E7A00010 */ swc1 $f0, 0x10($sp)
/* A95AC8 8001E928 3C018013 */ lui $at, %hi(D_80134FF8)
/* A95ACC 8001E92C C4304FF8 */ lwc1 $f16, %lo(D_80134FF8)($at)
/* A95AD0 8001E930 C6120080 */ lwc1 $f18, 0x80($s0)
/* A95AD4 8001E934 4610903E */ c.le.s $f18, $f16
/* A95AD8 8001E938 00000000 */ nop
/* A95ADC 8001E93C 45020006 */ bc1fl .L8001E958
/* A95AE0 8001E940 26060160 */ addiu $a2, $s0, 0x160
/* A95AE4 8001E944 0C00B55C */ jal Actor_Kill
/* A95AE8 8001E948 02002025 */ move $a0, $s0
/* A95AEC 8001E94C 1000010F */ b .L8001ED8C
/* A95AF0 8001E950 8FBF0024 */ lw $ra, 0x24($sp)
/* A95AF4 8001E954 26060160 */ addiu $a2, $s0, 0x160
.L8001E958:
/* A95AF8 8001E958 00C02825 */ move $a1, $a2
/* A95AFC 8001E95C AFA60028 */ sw $a2, 0x28($sp)
/* A95B00 8001E960 0C0189B7 */ jal Collider_CylinderUpdate
/* A95B04 8001E964 02002025 */ move $a0, $s0
/* A95B08 8001E968 3C010001 */ li $at, 0x00010000 # 0.000000
/* A95B0C 8001E96C 34211E60 */ ori $at, (0x00011E60 & 0xFFFF) # ori $at, $at, 0x1e60
/* A95B10 8001E970 8FA60028 */ lw $a2, 0x28($sp)
/* A95B14 8001E974 02212821 */ addu $a1, $s1, $at
/* A95B18 8001E978 0C01767D */ jal CollisionCheck_SetAC
/* A95B1C 8001E97C 02202025 */ move $a0, $s1
/* A95B20 8001E980 8603001C */ lh $v1, 0x1c($s0)
/* A95B24 8001E984 24010015 */ li $at, 21
/* A95B28 8001E988 10610007 */ beq $v1, $at, .L8001E9A8
/* A95B2C 8001E98C 24010016 */ li $at, 22
/* A95B30 8001E990 10610005 */ beq $v1, $at, .L8001E9A8
/* A95B34 8001E994 24010017 */ li $at, 23
/* A95B38 8001E998 10610003 */ beq $v1, $at, .L8001E9A8
/* A95B3C 8001E99C 24010018 */ li $at, 24
/* A95B40 8001E9A0 54610012 */ bnel $v1, $at, .L8001E9EC
/* A95B44 8001E9A4 860D0154 */ lh $t5, 0x154($s0)
.L8001E9A8:
/* A95B48 8001E9A8 0C01DE0D */ jal Math_Coss
/* A95B4C 8001E9AC 860400B4 */ lh $a0, 0xb4($s0)
/* A95B50 8001E9B0 3C014214 */ li $at, 0x42140000 # 0.000000
/* A95B54 8001E9B4 44812000 */ mtc1 $at, $f4
/* A95B58 8001E9B8 44803000 */ mtc1 $zero, $f6
/* A95B5C 8001E9BC 46040082 */ mul.s $f2, $f0, $f4
/* A95B60 8001E9C0 4602303E */ c.le.s $f6, $f2
/* A95B64 8001E9C4 E60200BC */ swc1 $f2, 0xbc($s0)
/* A95B68 8001E9C8 45020005 */ bc1fl .L8001E9E0
/* A95B6C 8001E9CC C60A00BC */ lwc1 $f10, 0xbc($s0)
/* A95B70 8001E9D0 C60800BC */ lwc1 $f8, 0xbc($s0)
/* A95B74 8001E9D4 10000004 */ b .L8001E9E8
/* A95B78 8001E9D8 E60800BC */ swc1 $f8, 0xbc($s0)
/* A95B7C 8001E9DC C60A00BC */ lwc1 $f10, 0xbc($s0)
.L8001E9E0:
/* A95B80 8001E9E0 46005407 */ neg.s $f16, $f10
/* A95B84 8001E9E4 E61000BC */ swc1 $f16, 0xbc($s0)
.L8001E9E8:
/* A95B88 8001E9E8 860D0154 */ lh $t5, 0x154($s0)
.L8001E9EC:
/* A95B8C 8001E9EC 3C0141F0 */ li $at, 0x41F00000 # 0.000000
/* A95B90 8001E9F0 5DA000E6 */ bgtzl $t5, .L8001ED8C
/* A95B94 8001E9F4 8FBF0024 */ lw $ra, 0x24($sp)
/* A95B98 8001E9F8 44819000 */ mtc1 $at, $f18
/* A95B9C 8001E9FC C6040090 */ lwc1 $f4, 0x90($s0)
/* A95BA0 8001EA00 3C01C248 */ li $at, 0xC2480000 # 0.000000
/* A95BA4 8001EA04 4612203E */ c.le.s $f4, $f18
/* A95BA8 8001EA08 00000000 */ nop
/* A95BAC 8001EA0C 4502000F */ bc1fl .L8001EA4C
/* A95BB0 8001EA10 02002025 */ move $a0, $s0
/* A95BB4 8001EA14 C6000094 */ lwc1 $f0, 0x94($s0)
/* A95BB8 8001EA18 44813000 */ mtc1 $at, $f6
/* A95BBC 8001EA1C 3C014248 */ li $at, 0x42480000 # 0.000000
/* A95BC0 8001EA20 4600303E */ c.le.s $f6, $f0
/* A95BC4 8001EA24 00000000 */ nop
/* A95BC8 8001EA28 45020008 */ bc1fl .L8001EA4C
/* A95BCC 8001EA2C 02002025 */ move $a0, $s0
/* A95BD0 8001EA30 44814000 */ mtc1 $at, $f8
/* A95BD4 8001EA34 00000000 */ nop
/* A95BD8 8001EA38 4608003E */ c.le.s $f0, $f8
/* A95BDC 8001EA3C 00000000 */ nop
/* A95BE0 8001EA40 45030006 */ bc1tl .L8001EA5C
/* A95BE4 8001EA44 3C0E0001 */ lui $t6, 1
/* A95BE8 8001EA48 02002025 */ move $a0, $s0
.L8001EA4C:
/* A95BEC 8001EA4C 0C00BD04 */ jal func_8002F410
/* A95BF0 8001EA50 02202825 */ move $a1, $s1
/* A95BF4 8001EA54 104000CC */ beqz $v0, .L8001ED88
/* A95BF8 8001EA58 3C0E0001 */ lui $t6, 1
.L8001EA5C:
/* A95BFC 8001EA5C 01D17021 */ addu $t6, $t6, $s1
/* A95C00 8001EA60 95CE0A20 */ lhu $t6, 0xa20($t6)
/* A95C04 8001EA64 55C000C9 */ bnezl $t6, .L8001ED8C
/* A95C08 8001EA68 8FBF0024 */ lw $ra, 0x24($sp)
/* A95C0C 8001EA6C 960F001C */ lhu $t7, 0x1c($s0)
/* A95C10 8001EA70 2DE1001A */ sltiu $at, $t7, 0x1a
/* A95C14 8001EA74 10200065 */ beqz $at, .L8001EC0C
/* A95C18 8001EA78 000F7880 */ sll $t7, $t7, 2
/* A95C1C 8001EA7C 3C018013 */ lui $at, %hi(jtbl_80134FFC)
/* A95C20 8001EA80 002F0821 */ addu $at, $at, $t7
/* A95C24 8001EA84 8C2F4FFC */ lw $t7, %lo(jtbl_80134FFC)($at)
/* A95C28 8001EA88 01E00008 */ jr $t7
/* A95C2C 8001EA8C 00000000 */ nop
glabel L8001EA90
/* A95C30 8001EA90 02202025 */ move $a0, $s1
/* A95C34 8001EA94 0C021344 */ jal Item_Give
/* A95C38 8001EA98 24050084 */ li $a1, 132
/* A95C3C 8001EA9C 1000005C */ b .L8001EC10
/* A95C40 8001EAA0 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EAA4
/* A95C44 8001EAA4 02202025 */ move $a0, $s1
/* A95C48 8001EAA8 0C021344 */ jal Item_Give
/* A95C4C 8001EAAC 24050085 */ li $a1, 133
/* A95C50 8001EAB0 10000057 */ b .L8001EC10
/* A95C54 8001EAB4 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EAB8
/* A95C58 8001EAB8 02202025 */ move $a0, $s1
/* A95C5C 8001EABC 0C021344 */ jal Item_Give
/* A95C60 8001EAC0 24050086 */ li $a1, 134
/* A95C64 8001EAC4 10000052 */ b .L8001EC10
/* A95C68 8001EAC8 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EACC
/* A95C6C 8001EACC 02202025 */ move $a0, $s1
/* A95C70 8001EAD0 0C021344 */ jal Item_Give
/* A95C74 8001EAD4 24050087 */ li $a1, 135
/* A95C78 8001EAD8 1000004D */ b .L8001EC10
/* A95C7C 8001EADC 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EAE0
/* A95C80 8001EAE0 02202025 */ move $a0, $s1
/* A95C84 8001EAE4 0C021344 */ jal Item_Give
/* A95C88 8001EAE8 24050088 */ li $a1, 136
/* A95C8C 8001EAEC 10000048 */ b .L8001EC10
/* A95C90 8001EAF0 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EAF4
/* A95C94 8001EAF4 24190007 */ li $t9, 7
/* A95C98 8001EAF8 10000044 */ b .L8001EC0C
/* A95C9C 8001EAFC AFB9003C */ sw $t9, 0x3c($sp)
glabel L8001EB00
/* A95CA0 8001EB00 24180002 */ li $t8, 2
/* A95CA4 8001EB04 10000041 */ b .L8001EC0C
/* A95CA8 8001EB08 AFB8003C */ sw $t8, 0x3c($sp)
glabel L8001EB0C
/* A95CAC 8001EB0C 02202025 */ move $a0, $s1
/* A95CB0 8001EB10 0C021344 */ jal Item_Give
/* A95CB4 8001EB14 24050083 */ li $a1, 131
/* A95CB8 8001EB18 1000003D */ b .L8001EC10
/* A95CBC 8001EB1C 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EB20
/* A95CC0 8001EB20 02202025 */ move $a0, $s1
/* A95CC4 8001EB24 0C021C5D */ jal Health_ChangeBy
/* A95CC8 8001EB28 24050070 */ li $a1, 112
/* A95CCC 8001EB2C 10000038 */ b .L8001EC10
/* A95CD0 8001EB30 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EB34
/* A95CD4 8001EB34 02202025 */ move $a0, $s1
/* A95CD8 8001EB38 0C021344 */ jal Item_Give
/* A95CDC 8001EB3C 2405008E */ li $a1, 142
/* A95CE0 8001EB40 10000033 */ b .L8001EC10
/* A95CE4 8001EB44 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EB48
/* A95CE8 8001EB48 02202025 */ move $a0, $s1
/* A95CEC 8001EB4C 0C021344 */ jal Item_Give
/* A95CF0 8001EB50 24050003 */ li $a1, 3
/* A95CF4 8001EB54 1000002E */ b .L8001EC10
/* A95CF8 8001EB58 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EB5C
/* A95CFC 8001EB5C 02202025 */ move $a0, $s1
/* A95D00 8001EB60 0C021344 */ jal Item_Give
/* A95D04 8001EB64 24050092 */ li $a1, 146
/* A95D08 8001EB68 10000029 */ b .L8001EC10
/* A95D0C 8001EB6C 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EB70
/* A95D10 8001EB70 02202025 */ move $a0, $s1
/* A95D14 8001EB74 0C021344 */ jal Item_Give
/* A95D18 8001EB78 24050093 */ li $a1, 147
/* A95D1C 8001EB7C 10000024 */ b .L8001EC10
/* A95D20 8001EB80 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EB84
/* A95D24 8001EB84 02202025 */ move $a0, $s1
/* A95D28 8001EB88 0C021344 */ jal Item_Give
/* A95D2C 8001EB8C 24050094 */ li $a1, 148
/* A95D30 8001EB90 1000001F */ b .L8001EC10
/* A95D34 8001EB94 8FA8003C */ lw $t0, 0x3c($sp)
glabel L8001EB98
/* A95D38 8001EB98 2408003C */ li $t0, 60
/* A95D3C 8001EB9C 1000001B */ b .L8001EC0C
/* A95D40 8001EBA0 AFA8003C */ sw $t0, 0x3c($sp)
glabel L8001EBA4
/* A95D44 8001EBA4 24090042 */ li $t1, 66
/* A95D48 8001EBA8 10000018 */ b .L8001EC0C
/* A95D4C 8001EBAC AFA9003C */ sw $t1, 0x3c($sp)
glabel L8001EBB0
/* A95D50 8001EBB0 240A003E */ li $t2, 62
/* A95D54 8001EBB4 10000015 */ b .L8001EC0C
/* A95D58 8001EBB8 AFAA003C */ sw $t2, 0x3c($sp)
glabel L8001EBBC
/* A95D5C 8001EBBC 240B003D */ li $t3, 61
/* A95D60 8001EBC0 10000012 */ b .L8001EC0C
/* A95D64 8001EBC4 AFAB003C */ sw $t3, 0x3c($sp)
glabel L8001EBC8
/* A95D68 8001EBC8 240C0044 */ li $t4, 68
/* A95D6C 8001EBCC 1000000F */ b .L8001EC0C
/* A95D70 8001EBD0 AFAC003C */ sw $t4, 0x3c($sp)
glabel L8001EBD4
/* A95D74 8001EBD4 240D0043 */ li $t5, 67
/* A95D78 8001EBD8 1000000C */ b .L8001EC0C
/* A95D7C 8001EBDC AFAD003C */ sw $t5, 0x3c($sp)
glabel L8001EBE0
/* A95D80 8001EBE0 240E0029 */ li $t6, 41
/* A95D84 8001EBE4 10000009 */ b .L8001EC0C
/* A95D88 8001EBE8 AFAE003C */ sw $t6, 0x3c($sp)
glabel L8001EBEC
/* A95D8C 8001EBEC 240F002A */ li $t7, 42
/* A95D90 8001EBF0 10000006 */ b .L8001EC0C
/* A95D94 8001EBF4 AFAF003C */ sw $t7, 0x3c($sp)
glabel L8001EBF8
/* A95D98 8001EBF8 2419002D */ li $t9, 45
/* A95D9C 8001EBFC 10000003 */ b .L8001EC0C
/* A95DA0 8001EC00 AFB9003C */ sw $t9, 0x3c($sp)
glabel L8001EC04
/* A95DA4 8001EC04 2418002C */ li $t8, 44
/* A95DA8 8001EC08 AFB8003C */ sw $t8, 0x3c($sp)
glabel L8001EC0C
.L8001EC0C:
/* A95DAC 8001EC0C 8FA8003C */ lw $t0, 0x3c($sp)
.L8001EC10:
/* A95DB0 8001EC10 5100000A */ beql $t0, $zero, .L8001EC3C
/* A95DB4 8001EC14 8602001C */ lh $v0, 0x1c($s0)
/* A95DB8 8001EC18 02002025 */ move $a0, $s0
/* A95DBC 8001EC1C 0C00BD04 */ jal func_8002F410
/* A95DC0 8001EC20 02202825 */ move $a1, $s1
/* A95DC4 8001EC24 14400004 */ bnez $v0, .L8001EC38
/* A95DC8 8001EC28 8FA6003C */ lw $a2, 0x3c($sp)
/* A95DCC 8001EC2C 02002025 */ move $a0, $s0
/* A95DD0 8001EC30 0C00BD55 */ jal func_8002F554
/* A95DD4 8001EC34 02202825 */ move $a1, $s1
.L8001EC38:
/* A95DD8 8001EC38 8602001C */ lh $v0, 0x1c($s0)
.L8001EC3C:
/* A95DDC 8001EC3C 2449FFFA */ addiu $t1, $v0, -6
/* A95DE0 8001EC40 2D210013 */ sltiu $at, $t1, 0x13
/* A95DE4 8001EC44 10200011 */ beqz $at, .L8001EC8C
/* A95DE8 8001EC48 00094880 */ sll $t1, $t1, 2
/* A95DEC 8001EC4C 3C018013 */ lui $at, %hi(jtbl_80135064)
/* A95DF0 8001EC50 00290821 */ addu $at, $at, $t1
/* A95DF4 8001EC54 8C295064 */ lw $t1, %lo(jtbl_80135064)($at)
/* A95DF8 8001EC58 01200008 */ jr $t1
/* A95DFC 8001EC5C 00000000 */ nop
glabel L8001EC60
/* A95E00 8001EC60 02002025 */ move $a0, $s0
/* A95E04 8001EC64 0C00BD04 */ jal func_8002F410
/* A95E08 8001EC68 02202825 */ move $a1, $s1
/* A95E0C 8001EC6C 10400046 */ beqz $v0, .L8001ED88
/* A95E10 8001EC70 02202025 */ move $a0, $s1
/* A95E14 8001EC74 0C00B368 */ jal Flags_SetCollectible
/* A95E18 8001EC78 86050150 */ lh $a1, 0x150($s0)
/* A95E1C 8001EC7C 0C00B55C */ jal Actor_Kill
/* A95E20 8001EC80 02002025 */ move $a0, $s0
/* A95E24 8001EC84 10000041 */ b .L8001ED8C
/* A95E28 8001EC88 8FBF0024 */ lw $ra, 0x24($sp)
glabel L8001EC8C
.L8001EC8C:
/* A95E2C 8001EC8C 28410003 */ slti $at, $v0, 3
/* A95E30 8001EC90 14200004 */ bnez $at, .L8001ECA4
/* A95E34 8001EC94 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013
/* A95E38 8001EC98 24010013 */ li $at, 19
/* A95E3C 8001EC9C 1441000D */ bne $v0, $at, .L8001ECD4
/* A95E40 8001ECA0 8FAB003C */ lw $t3, 0x3c($sp)
.L8001ECA4:
/* A95E44 8001ECA4 3C0A8013 */ lui $t2, %hi(D_801333E8) # $t2, 0x8013
/* A95E48 8001ECA8 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0
/* A95E4C 8001ECAC 254A33E8 */ addiu $t2, %lo(D_801333E8) # addiu $t2, $t2, 0x33e8
/* A95E50 8001ECB0 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013
/* A95E54 8001ECB4 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4
/* A95E58 8001ECB8 AFAA0014 */ sw $t2, 0x14($sp)
/* A95E5C 8001ECBC AFA70010 */ sw $a3, 0x10($sp)
/* A95E60 8001ECC0 24044803 */ li $a0, 18435
/* A95E64 8001ECC4 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* A95E68 8001ECC8 24060004 */ li $a2, 4
/* A95E6C 8001ECCC 10000019 */ b .L8001ED34
/* A95E70 8001ECD0 02202025 */ move $a0, $s1
.L8001ECD4:
/* A95E74 8001ECD4 1160000C */ beqz $t3, .L8001ED08
/* A95E78 8001ECD8 3C078013 */ lui $a3, %hi(D_801333E0) # lui $a1, 0x8013
/* A95E7C 8001ECDC 02002025 */ move $a0, $s0
/* A95E80 8001ECE0 0C00BD04 */ jal func_8002F410
/* A95E84 8001ECE4 02202825 */ move $a1, $s1
/* A95E88 8001ECE8 10400027 */ beqz $v0, .L8001ED88
/* A95E8C 8001ECEC 02202025 */ move $a0, $s1
/* A95E90 8001ECF0 0C00B368 */ jal Flags_SetCollectible
/* A95E94 8001ECF4 86050150 */ lh $a1, 0x150($s0)
/* A95E98 8001ECF8 0C00B55C */ jal Actor_Kill
/* A95E9C 8001ECFC 02002025 */ move $a0, $s0
/* A95EA0 8001ED00 10000022 */ b .L8001ED8C
/* A95EA4 8001ED04 8FBF0024 */ lw $ra, 0x24($sp)
.L8001ED08:
/* A95EA8 8001ED08 3C0C8013 */ lui $t4, %hi(D_801333E8) # lui $a1, 0x8013
/* A95EAC 8001ED0C 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0
/* A95EB0 8001ED10 258C33E8 */ addiu $t4, %lo(D_801333E8) # addiu $t4, $t4, 0x33e8
/* A95EB4 8001ED14 3C058013 */ lui $a1, %hi(D_801333D4) # lui $a1, 0x8013
/* A95EB8 8001ED18 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4
/* A95EBC 8001ED1C AFAC0014 */ sw $t4, 0x14($sp)
/* A95EC0 8001ED20 AFA70010 */ sw $a3, 0x10($sp)
/* A95EC4 8001ED24 24044824 */ li $a0, 18468
/* A95EC8 8001ED28 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* A95ECC 8001ED2C 24060004 */ li $a2, 4
/* A95ED0 8001ED30 02202025 */ move $a0, $s1
.L8001ED34:
/* A95ED4 8001ED34 0C00B368 */ jal Flags_SetCollectible
/* A95ED8 8001ED38 86050150 */ lh $a1, 0x150($s0)
/* A95EDC 8001ED3C 44805000 */ mtc1 $zero, $f10
/* A95EE0 8001ED40 44808000 */ mtc1 $zero, $f16
/* A95EE4 8001ED44 44809000 */ mtc1 $zero, $f18
/* A95EE8 8001ED48 240D000F */ li $t5, 15
/* A95EEC 8001ED4C 240E0023 */ li $t6, 35
/* A95EF0 8001ED50 A60D015A */ sh $t5, 0x15a($s0)
/* A95EF4 8001ED54 A60E0154 */ sh $t6, 0x154($s0)
/* A95EF8 8001ED58 A60000B8 */ sh $zero, 0xb8($s0)
/* A95EFC 8001ED5C 02002025 */ move $a0, $s0
/* A95F00 8001ED60 8E05015C */ lw $a1, 0x15c($s0)
/* A95F04 8001ED64 E60A0068 */ swc1 $f10, 0x68($s0)
/* A95F08 8001ED68 E6100060 */ swc1 $f16, 0x60($s0)
/* A95F0C 8001ED6C 0C00B58B */ jal Actor_SetScale
/* A95F10 8001ED70 E612006C */ swc1 $f18, 0x6c($s0)
/* A95F14 8001ED74 3C058002 */ lui $a1, %hi(func_8001E5C8) # $a1, 0x8002
/* A95F18 8001ED78 A6000152 */ sh $zero, 0x152($s0)
/* A95F1C 8001ED7C 24A5E5C8 */ addiu $a1, %lo(func_8001E5C8) # addiu $a1, $a1, -0x1a38
/* A95F20 8001ED80 0C00764C */ jal EnItem00_SetupAction
/* A95F24 8001ED84 02002025 */ move $a0, $s0
.L8001ED88:
/* A95F28 8001ED88 8FBF0024 */ lw $ra, 0x24($sp)
.L8001ED8C:
/* A95F2C 8001ED8C 8FB0001C */ lw $s0, 0x1c($sp)
/* A95F30 8001ED90 8FB10020 */ lw $s1, 0x20($sp)
/* A95F34 8001ED94 03E00008 */ jr $ra
/* A95F38 8001ED98 27BD0048 */ addiu $sp, $sp, 0x48

View file

@ -68,24 +68,19 @@ void EnAObj_SetupAction(EnAObj* this, ActorFunc actionFunc) {
this->actionFunc = actionFunc; this->actionFunc = actionFunc;
} }
#ifdef NON_MATCHING
// minor ordering and regalloc differences
void EnAObj_Init(EnAObj* this, GlobalContext* globalCtx) { void EnAObj_Init(EnAObj* this, GlobalContext* globalCtx) {
u32 sp34; u32 sp34;
s16 type; s32 pad;
s16 initialParams; EnAObj* this2 = this;
s32 params;
f32 sp28; f32 sp28;
sp34 = 0; sp34 = 0;
sp28 = 6.0f; sp28 = 6.0f;
initialParams = this->dyna.actor.params; this->textId = (this->dyna.actor.params >> 8) & 0xFF;
type = initialParams & 0xFF; this->dyna.actor.params &= 0xFF;
this->textId = (initialParams >> 8) & 0xFF;
this->dyna.actor.params = type;
switch (type & 0xFFFF) { switch (this->dyna.actor.params) {
case A_OBJ_BLOCK_SMALL: case A_OBJ_BLOCK_SMALL:
Actor_SetScale(&this->dyna.actor, 0.025f); Actor_SetScale(&this->dyna.actor, 0.025f);
break; break;
@ -112,58 +107,58 @@ void EnAObj_Init(EnAObj* this, GlobalContext* globalCtx) {
ActorShape_Init(&this->dyna.actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, sp28); ActorShape_Init(&this->dyna.actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, sp28);
this->dyna.actor.posRot2.pos = this->dyna.actor.posRot.pos;
this->dyna.dynaPolyId = -1; this->dyna.dynaPolyId = -1;
this->dyna.unk_160 = 0; this->dyna.unk_160 = 0;
this->dyna.unk_15C = 0; this->dyna.unk_15C = 0;
this->dyna.actor.unk_FC = 1200.0f; this->dyna.actor.unk_FC = 1200.0f;
this->dyna.actor.unk_F8 = 200.0f; this->dyna.actor.unk_F8 = 200.0f;
params = this->dyna.actor.params;
this->dyna.actor.posRot2.pos = this->dyna.actor.posRot.pos;
switch (params) { switch (this->dyna.actor.params) {
case A_OBJ_BLOCK_LARGE: case A_OBJ_BLOCK_LARGE:
case A_OBJ_BLOCK_HUGE: case A_OBJ_BLOCK_HUGE:
this->dyna.dynaPolyId = 1; this2->dyna.dynaPolyId = 1;
Actor_ChangeType(globalCtx, &globalCtx->actorCtx, &this->dyna.actor, ACTORTYPE_BG); Actor_ChangeType(globalCtx, &globalCtx->actorCtx, &this->dyna.actor, ACTORTYPE_BG);
func_8001D5C8(this, this->dyna.actor.params); func_8001D5C8(this2, this->dyna.actor.params);
break; break;
case A_OBJ_BLOCK_SMALL_ROT: case A_OBJ_BLOCK_SMALL_ROT:
case A_OBJ_BLOCK_LARGE_ROT: case A_OBJ_BLOCK_LARGE_ROT:
this->dyna.dynaPolyId = 3; this2->dyna.dynaPolyId = 3;
Actor_ChangeType(globalCtx, &globalCtx->actorCtx, &this->dyna.actor, ACTORTYPE_BG); Actor_ChangeType(globalCtx, &globalCtx->actorCtx, &this->dyna.actor, ACTORTYPE_BG);
func_8001D310(this, this->dyna.actor.params); func_8001D310(this2, this->dyna.actor.params);
break; break;
case A_OBJ_UNKNOWN_6: case A_OBJ_UNKNOWN_6:
this->dyna.actor.flags |= 0x1; // clang-format off
this->dyna.dynaPolyId = 5; this->dyna.actor.flags |= 0x1; this2->dyna.dynaPolyId = 5; this2->unk_178 = 10.0f;
this->unk_178 = 10.0f; // clang-format on
this->dyna.actor.gravity = -2.0f; this->dyna.actor.gravity = -2.0f;
func_8001D234(this, this->dyna.actor.params); func_8001D234(this2, this->dyna.actor.params);
break; break;
case A_OBJ_GRASS_CLUMP: case A_OBJ_GRASS_CLUMP:
case A_OBJ_TREE_STUMP: case A_OBJ_TREE_STUMP:
this->dyna.dynaPolyId = 0; this2->dyna.dynaPolyId = 0;
func_8001D234(this, this->dyna.actor.params); func_8001D234(this2, this->dyna.actor.params);
break; break;
case A_OBJ_SIGNPOST_OBLONG: case A_OBJ_SIGNPOST_OBLONG:
case A_OBJ_SIGNPOST_ARROW: case A_OBJ_SIGNPOST_ARROW:
this->dyna.actor.textId = (this->textId & 0xFF) | 0x300; this->dyna.actor.textId = (this2->textId & 0xFF) | 0x300;
this->dyna.actor.flags |= 0x8 | 0x1; // clang-format off
this->dyna.actor.unk_4C = 500.0f; this->dyna.actor.flags |= 0x1 | 0x8; this->dyna.actor.unk_4C = 500.0f;
this->unk_178 = 45.0f; // clang-format on
func_8001D234(this, this->dyna.actor.params); this2->unk_178 = 45.0f;
Collider_InitCylinder(globalCtx, &this->collider); func_8001D234(this2, this->dyna.actor.params);
Collider_SetCylinder(globalCtx, &this->collider, &this->dyna.actor, &D_80115440); Collider_InitCylinder(globalCtx, &this2->collider);
Collider_SetCylinder(globalCtx, &this2->collider, &this->dyna.actor, &D_80115440);
this->dyna.actor.colChkInfo.mass = 0xFF; this->dyna.actor.colChkInfo.mass = 0xFF;
this->dyna.actor.unk_1F = 0; this->dyna.actor.unk_1F = 0;
break; break;
case A_OBJ_KNOB: case A_OBJ_KNOB:
this->dyna.actor.gravity = -1.5f; this->dyna.actor.gravity = -1.5f;
func_8001D480(this, params); func_8001D480(this2, this->dyna.actor.params);
break; break;
default: default:
this->dyna.actor.gravity = -2.0f; this->dyna.actor.gravity = -2.0f;
func_8001D234(this, params); func_8001D234(this2, this->dyna.actor.params);
break; break;
} }
@ -176,9 +171,6 @@ void EnAObj_Init(EnAObj* this, GlobalContext* globalCtx) {
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, sp34); this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, sp34);
} }
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s")
#endif
void EnAObj_Destroy(EnAObj* this, GlobalContext* globalCtx) { void EnAObj_Destroy(EnAObj* this, GlobalContext* globalCtx) {
ColliderCylinder* collider = &this->collider; ColliderCylinder* collider = &this->collider;

View file

@ -85,25 +85,23 @@ void EnItem00_SetupAction(EnItem00* this, ActorFunc actionFunc) {
this->actionFunc = actionFunc; this->actionFunc = actionFunc;
} }
#ifdef NON_MATCHING
// Very close to matching, just a single ordering issue
void EnItem00_Init(EnItem00* this, GlobalContext* globalCtx) { void EnItem00_Init(EnItem00* this, GlobalContext* globalCtx) {
s32 pad1; s32 pad1;
s32 pad2; s32 pad2;
f32 sp34; f32 sp34;
f32 sp30; f32 sp30;
s32 sp2C; s32 getItemId;
s16 spawnParam8000; s16 spawnParam8000;
s32 pad3; s32 pad3;
sp34 = 980.0f; sp34 = 980.0f;
sp30 = 6.0f; sp30 = 6.0f;
sp2C = 0; getItemId = 0;
spawnParam8000 = this->actor.params & 0x8000; spawnParam8000 = this->actor.params & 0x8000;
this->collectibleFlag = (this->actor.params & 0x3F00) >> 8; this->collectibleFlag = (this->actor.params & 0x3F00) >> 8;
this->actor.params = this->actor.params & 0x00FF; this->actor.params &= 0xFF;
if (Flags_GetCollectible(globalCtx, this->collectibleFlag)) { if (Flags_GetCollectible(globalCtx, this->collectibleFlag)) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
@ -227,7 +225,6 @@ void EnItem00_Init(EnItem00* this, GlobalContext* globalCtx) {
this->actor.posRot2.pos = this->actor.posRot.pos; this->actor.posRot2.pos = this->actor.posRot.pos;
this->unk_152 = 0; this->unk_152 = 0;
// MISMATCH: minor ordering issues here
if (!spawnParam8000) { if (!spawnParam8000) {
EnItem00_SetupAction(this, (ActorFunc)func_8001DFC8); EnItem00_SetupAction(this, (ActorFunc)func_8001DFC8);
this->unk_15A = -1; this->unk_15A = -1;
@ -279,23 +276,23 @@ void EnItem00_Init(EnItem00* this, GlobalContext* globalCtx) {
case ITEM00_ARROWS_LARGE: case ITEM00_ARROWS_LARGE:
Item_Give(globalCtx, ITEM_ARROWS_LARGE); Item_Give(globalCtx, ITEM_ARROWS_LARGE);
break; break;
case ITEM00_MAGIC_SMALL:
sp2C = GI_MAGIC_SMALL;
break;
case ITEM00_MAGIC_LARGE: case ITEM00_MAGIC_LARGE:
sp2C = GI_MAGIC_LARGE; getItemId = GI_MAGIC_SMALL;
break;
case ITEM00_MAGIC_SMALL:
getItemId = GI_MAGIC_LARGE;
break; break;
case ITEM00_SMALL_KEY: case ITEM00_SMALL_KEY:
Item_Give(globalCtx, ITEM_KEY_SMALL); Item_Give(globalCtx, ITEM_KEY_SMALL);
break; break;
case ITEM00_SEEDS: case ITEM00_SEEDS:
sp2C = GI_SEEDS_5; getItemId = GI_SEEDS_5;
break; break;
case ITEM00_NUTS: case ITEM00_NUTS:
sp2C = GI_NUTS_5; getItemId = GI_NUTS_5;
break; break;
case ITEM00_STICK: case ITEM00_STICK:
sp2C = GI_STICKS_1; getItemId = GI_STICKS_1;
break; break;
case ITEM00_HEART_PIECE: case ITEM00_HEART_PIECE:
case ITEM00_HEART_CONTAINER: case ITEM00_HEART_CONTAINER:
@ -307,16 +304,13 @@ void EnItem00_Init(EnItem00* this, GlobalContext* globalCtx) {
break; break;
} }
if ((sp2C != 0) && !func_8002F410(&this->actor, globalCtx)) { if ((getItemId != 0) && !func_8002F410(&this->actor, globalCtx)) {
func_8002F554(&this->actor, globalCtx, sp2C); func_8002F554(&this->actor, globalCtx, getItemId);
} }
EnItem00_SetupAction(this, (ActorFunc)func_8001E5C8); EnItem00_SetupAction(this, (ActorFunc)func_8001E5C8);
this->actionFunc(this, globalCtx); this->actionFunc(this, globalCtx);
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_en_item00/EnItem00_Init.s")
#endif
void EnItem00_Destroy(EnItem00* this, GlobalContext* globalCtx) { void EnItem00_Destroy(EnItem00* this, GlobalContext* globalCtx) {
ColliderCylinder* collider = &this->collider; ColliderCylinder* collider = &this->collider;
@ -486,17 +480,15 @@ extern s32 D_80157D90;
extern u32 D_80157D90_; // these must be defined separately for EnItem00_Update to match extern u32 D_80157D90_; // these must be defined separately for EnItem00_Update to match
extern s16 D_80157D94; extern s16 D_80157D94;
#ifdef NON_MATCHING
// Almost matching, just a few minor ordering issues
void EnItem00_Update(EnItem00* this, GlobalContext* globalCtx) { void EnItem00_Update(EnItem00* this, GlobalContext* globalCtx) {
s32 pad1; s32 pad;
s32 pad2; s16* params;
s32 sp3C; s32 getItemId;
s16 sp3A; s16 sp3A;
Actor* dynaActor; Actor* dynaActor;
s16 i; s16 i;
sp3C = 0; getItemId = 0;
sp3A = 0; sp3A = 0;
if (this->unk_15A > 0) { if (this->unk_15A > 0) {
@ -565,7 +557,6 @@ void EnItem00_Update(EnItem00* this, GlobalContext* globalCtx) {
return; return;
} }
// MISMATCH: The first function argument is loaded too early here
if (!((this->actor.xzDistanceFromLink <= 30.0f) && (this->actor.yDistanceFromLink >= -50.0f) && if (!((this->actor.xzDistanceFromLink <= 30.0f) && (this->actor.yDistanceFromLink >= -50.0f) &&
(this->actor.yDistanceFromLink <= 50.0f))) { (this->actor.yDistanceFromLink <= 50.0f))) {
if (!func_8002F410(&this->actor, globalCtx)) { if (!func_8002F410(&this->actor, globalCtx)) {
@ -594,10 +585,10 @@ void EnItem00_Update(EnItem00* this, GlobalContext* globalCtx) {
Item_Give(globalCtx, ITEM_RUPEE_GOLD); Item_Give(globalCtx, ITEM_RUPEE_GOLD);
break; break;
case ITEM00_STICK: case ITEM00_STICK:
sp3C = GI_STICKS_1; getItemId = GI_STICKS_1;
break; break;
case ITEM00_NUTS: case ITEM00_NUTS:
sp3C = GI_NUTS_5; getItemId = GI_NUTS_5;
break; break;
case ITEM00_HEART: case ITEM00_HEART:
Item_Give(globalCtx, ITEM_HEART); Item_Give(globalCtx, ITEM_HEART);
@ -622,45 +613,46 @@ void EnItem00_Update(EnItem00* this, GlobalContext* globalCtx) {
Item_Give(globalCtx, ITEM_ARROWS_LARGE); Item_Give(globalCtx, ITEM_ARROWS_LARGE);
break; break;
case ITEM00_SEEDS: case ITEM00_SEEDS:
sp3C = GI_SEEDS_5; getItemId = GI_SEEDS_5;
break; break;
case ITEM00_SMALL_KEY: case ITEM00_SMALL_KEY:
sp3C = GI_KEY_SMALL; getItemId = GI_KEY_SMALL;
break; break;
case ITEM00_HEART_PIECE: case ITEM00_HEART_PIECE:
sp3C = GI_HEART_PIECE; getItemId = GI_HEART_PIECE;
break; break;
case ITEM00_HEART_CONTAINER: case ITEM00_HEART_CONTAINER:
sp3C = GI_HEART_CONTAINER; getItemId = GI_HEART_CONTAINER;
break; break;
case ITEM00_MAGIC_LARGE: case ITEM00_MAGIC_LARGE:
sp3C = GI_MAGIC_LARGE; getItemId = GI_MAGIC_LARGE;
break; break;
case ITEM00_MAGIC_SMALL: case ITEM00_MAGIC_SMALL:
sp3C = GI_MAGIC_SMALL; getItemId = GI_MAGIC_SMALL;
break; break;
case ITEM00_SHIELD_DEKU: case ITEM00_SHIELD_DEKU:
sp3C = GI_SHIELD_DEKU; getItemId = GI_SHIELD_DEKU;
break; break;
case ITEM00_SHIELD_HYLIAN: case ITEM00_SHIELD_HYLIAN:
sp3C = GI_SHIELD_HYLIAN; getItemId = GI_SHIELD_HYLIAN;
break; break;
case ITEM00_TUNIC_ZORA: case ITEM00_TUNIC_ZORA:
sp3C = GI_TUNIC_ZORA; getItemId = GI_TUNIC_ZORA;
break; break;
case ITEM00_TUNIC_GORON: case ITEM00_TUNIC_GORON:
sp3C = GI_TUNIC_GORON; getItemId = GI_TUNIC_GORON;
break; break;
case ITEM00_BOMBS_SPECIAL: case ITEM00_BOMBS_SPECIAL:
break; break;
} }
// MISMATCH: The first function argument is also loaded too early here params = &this->actor.params;
if ((sp3C != 0) && !func_8002F410(&this->actor, globalCtx)) {
func_8002F554(&this->actor, globalCtx, sp3C); if ((getItemId != 0) && !func_8002F410(&this->actor, globalCtx)) {
func_8002F554(&this->actor, globalCtx, getItemId);
} }
switch (this->actor.params) { switch (*params) {
case ITEM00_HEART_PIECE: case ITEM00_HEART_PIECE:
case ITEM00_HEART_CONTAINER: case ITEM00_HEART_CONTAINER:
case ITEM00_SMALL_KEY: case ITEM00_SMALL_KEY:
@ -675,9 +667,9 @@ void EnItem00_Update(EnItem00* this, GlobalContext* globalCtx) {
return; return;
} }
if ((this->actor.params <= ITEM00_RUPEE_RED) || (this->actor.params == ITEM00_RUPEE_ORANGE)) { if ((*params <= ITEM00_RUPEE_RED) || (*params == ITEM00_RUPEE_ORANGE)) {
Audio_PlaySoundGeneral(NA_SE_SY_GET_RUPY, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); Audio_PlaySoundGeneral(NA_SE_SY_GET_RUPY, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
} else if (sp3C != 0) { } else if (getItemId != 0) {
if (func_8002F410(&this->actor, globalCtx)) { if (func_8002F410(&this->actor, globalCtx)) {
Flags_SetCollectible(globalCtx, this->collectibleFlag); Flags_SetCollectible(globalCtx, this->collectibleFlag);
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
@ -701,9 +693,6 @@ void EnItem00_Update(EnItem00* this, GlobalContext* globalCtx) {
this->unk_152 = 0; this->unk_152 = 0;
EnItem00_SetupAction(this, (ActorFunc)func_8001E5C8); EnItem00_SetupAction(this, (ActorFunc)func_8001E5C8);
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_en_item00/EnItem00_Update.s")
#endif
// Draw Function prototypes (used in EnItem00_Draw) // Draw Function prototypes (used in EnItem00_Draw)
void func_8001EF30(EnItem00* this, GlobalContext* globalCtx); void func_8001EF30(EnItem00* this, GlobalContext* globalCtx);