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

En_Ex_Item (#567)

* first go

* match

* vt

* docs

* one last thing

* formatted

* bowling, why not

* header

* Update src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.h

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

* Update src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c

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

* press FFFF

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
petrie911 2020-12-31 18:56:02 -06:00 committed by GitHub
parent 600bad1f20
commit 7daadc5ea1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 554 additions and 1329 deletions

View file

@ -1,4 +0,0 @@
glabel EnExItem_Destroy
/* 00000 80A08EA0 AFA40000 */ sw $a0, 0x0000($sp)
/* 00004 80A08EA4 03E00008 */ jr $ra
/* 00008 80A08EA8 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,78 +0,0 @@
.late_rodata
.late_rodata_alignment 8
glabel jtbl_80A0A130
.word L80A09B04
.word L80A09B14
.word L80A09B04
.word L80A09B04
.word L80A09B24
.word L80A09B04
.word L80A09B14
.word L80A09B04
.word L80A09B04
.word L80A09B24
.word L80A09B24
.word L80A09B24
.word L80A09B24
.word L80A09B24
.word L80A09B24
.word L80A09B34
.word L80A09B48
.word L80A09B48
.word L80A09B48
.word L80A09B04
.text
glabel EnExItem_Draw
/* 00C1C 80A09ABC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C20 80A09AC0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C24 80A09AC4 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 00C28 80A09AC8 8C850164 */ lw $a1, 0x0164($a0) ## 00000164
/* 00C2C 80A09ACC AFA7001C */ sw $a3, 0x001C($sp)
/* 00C30 80A09AD0 0C00B58B */ jal Actor_SetScale
/* 00C34 80A09AD4 AFA40018 */ sw $a0, 0x0018($sp)
/* 00C38 80A09AD8 8FA40018 */ lw $a0, 0x0018($sp)
/* 00C3C 80A09ADC 8FA7001C */ lw $a3, 0x001C($sp)
/* 00C40 80A09AE0 84830152 */ lh $v1, 0x0152($a0) ## 00000152
/* 00C44 80A09AE4 2C610014 */ sltiu $at, $v1, 0x0014
/* 00C48 80A09AE8 1020001C */ beq $at, $zero, .L80A09B5C
/* 00C4C 80A09AEC 00037080 */ sll $t6, $v1, 2
/* 00C50 80A09AF0 3C0180A1 */ lui $at, %hi(jtbl_80A0A130) ## $at = 80A10000
/* 00C54 80A09AF4 002E0821 */ addu $at, $at, $t6
/* 00C58 80A09AF8 8C2EA130 */ lw $t6, %lo(jtbl_80A0A130)($at)
/* 00C5C 80A09AFC 01C00008 */ jr $t6
/* 00C60 80A09B00 00000000 */ nop
glabel L80A09B04
/* 00C64 80A09B04 0C2826DB */ jal func_80A09B6C
/* 00C68 80A09B08 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
/* 00C6C 80A09B0C 10000014 */ beq $zero, $zero, .L80A09B60
/* 00C70 80A09B10 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80A09B14
/* 00C74 80A09B14 0C2826F3 */ jal func_80A09BCC
/* 00C78 80A09B18 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
/* 00C7C 80A09B1C 10000010 */ beq $zero, $zero, .L80A09B60
/* 00C80 80A09B20 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80A09B24
/* 00C84 80A09B24 0C28275B */ jal func_80A09D6C
/* 00C88 80A09B28 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
/* 00C8C 80A09B2C 1000000C */ beq $zero, $zero, .L80A09B60
/* 00C90 80A09B30 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80A09B34
/* 00C94 80A09B34 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
/* 00C98 80A09B38 0C282710 */ jal func_80A09C40
/* 00C9C 80A09B3C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00CA0 80A09B40 10000007 */ beq $zero, $zero, .L80A09B60
/* 00CA4 80A09B44 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80A09B48
/* 00CA8 80A09B48 2462FFF0 */ addiu $v0, $v1, 0xFFF0 ## $v0 = FFFFFFF0
/* 00CAC 80A09B4C 00023400 */ sll $a2, $v0, 16
/* 00CB0 80A09B50 00063403 */ sra $a2, $a2, 16
/* 00CB4 80A09B54 0C2826FF */ jal func_80A09BFC
/* 00CB8 80A09B58 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
.L80A09B5C:
/* 00CBC 80A09B5C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A09B60:
/* 00CC0 80A09B60 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00CC4 80A09B64 03E00008 */ jr $ra
/* 00CC8 80A09B68 00000000 */ nop

View file

@ -1,173 +0,0 @@
.rdata
glabel D_80A09E10
.asciz "\n\n"
.balign 4
glabel D_80A09E14
.asciz "\x1b[32m %d\n\x1b[m"
.balign 4
glabel D_80A09E48
.asciz "\x1b[33m %d\n\x1b[m"
.balign 4
glabel D_80A09E7C
.asciz " %d\n"
.balign 4
glabel D_80A09E8C
.asciz "\x1b[35m %d\n\x1b[m\n"
.balign 4
.late_rodata
glabel jtbl_80A0A084
.word L80A08F58
.word L80A08F64
.word L80A08F70
.word L80A08F7C
.word L80A08F88
.word L80A08F58
.word L80A08F64
.word L80A08F70
.word L80A08F7C
.word L80A08F88
.word L80A08F88
.word L80A08F88
.word L80A08F88
.word L80A08F88
.word L80A08F88
.word L80A08F94
.word L80A08FC4
.word L80A08FC4
.word L80A08FC4
.word L80A08FD0
glabel D_80A0A0D4
.float 0.05
.text
glabel EnExItem_Init
/* 0000C 80A08EAC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00010 80A08EB0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00014 80A08EB4 AFB00018 */ sw $s0, 0x0018($sp)
/* 00018 80A08EB8 AFA50024 */ sw $a1, 0x0024($sp)
/* 0001C 80A08EBC 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 00020 80A08EC0 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004
/* 00024 80A08EC4 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00028 80A08EC8 0002CA03 */ sra $t9, $v0, 8
/* 0002C 80A08ECC 332800FF */ andi $t0, $t9, 0x00FF ## $t0 = 00000000
/* 00030 80A08ED0 305800FF */ andi $t8, $v0, 0x00FF ## $t8 = 00000000
/* 00034 80A08ED4 01C17824 */ and $t7, $t6, $at
/* 00038 80A08ED8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0003C 80A08EDC AC8F0004 */ sw $t7, 0x0004($a0) ## 00000004
/* 00040 80A08EE0 A4980152 */ sh $t8, 0x0152($a0) ## 00000152
/* 00044 80A08EE4 A4880154 */ sh $t0, 0x0154($a0) ## 00000154
/* 00048 80A08EE8 3C0480A1 */ lui $a0, %hi(D_80A09E10) ## $a0 = 80A10000
/* 0004C 80A08EEC 0C00084C */ jal osSyncPrintf
/* 00050 80A08EF0 24849E10 */ addiu $a0, $a0, %lo(D_80A09E10) ## $a0 = 80A09E10
/* 00054 80A08EF4 3C0480A1 */ lui $a0, %hi(D_80A09E14) ## $a0 = 80A10000
/* 00058 80A08EF8 24849E14 */ addiu $a0, $a0, %lo(D_80A09E14) ## $a0 = 80A09E14
/* 0005C 80A08EFC 0C00084C */ jal osSyncPrintf
/* 00060 80A08F00 86050152 */ lh $a1, 0x0152($s0) ## 00000152
/* 00064 80A08F04 3C0480A1 */ lui $a0, %hi(D_80A09E48) ## $a0 = 80A10000
/* 00068 80A08F08 24849E48 */ addiu $a0, $a0, %lo(D_80A09E48) ## $a0 = 80A09E48
/* 0006C 80A08F0C 0C00084C */ jal osSyncPrintf
/* 00070 80A08F10 86050154 */ lh $a1, 0x0154($s0) ## 00000154
/* 00074 80A08F14 8E0A0024 */ lw $t2, 0x0024($s0) ## 00000024
/* 00078 80A08F18 960C0152 */ lhu $t4, 0x0152($s0) ## 00000152
/* 0007C 80A08F1C 8E090028 */ lw $t1, 0x0028($s0) ## 00000028
/* 00080 80A08F20 AE0A0170 */ sw $t2, 0x0170($s0) ## 00000170
/* 00084 80A08F24 8E0A002C */ lw $t2, 0x002C($s0) ## 0000002C
/* 00088 80A08F28 240BFFFF */ addiu $t3, $zero, 0xFFFF ## $t3 = FFFFFFFF
/* 0008C 80A08F2C 2D810014 */ sltiu $at, $t4, 0x0014
/* 00090 80A08F30 A60B0150 */ sh $t3, 0x0150($s0) ## 00000150
/* 00094 80A08F34 AE090174 */ sw $t1, 0x0174($s0) ## 00000174
/* 00098 80A08F38 10200027 */ beq $at, $zero, .L80A08FD8
/* 0009C 80A08F3C AE0A0178 */ sw $t2, 0x0178($s0) ## 00000178
/* 000A0 80A08F40 000C6080 */ sll $t4, $t4, 2
/* 000A4 80A08F44 3C0180A1 */ lui $at, %hi(jtbl_80A0A084) ## $at = 80A10000
/* 000A8 80A08F48 002C0821 */ addu $at, $at, $t4
/* 000AC 80A08F4C 8C2CA084 */ lw $t4, %lo(jtbl_80A0A084)($at)
/* 000B0 80A08F50 01800008 */ jr $t4
/* 000B4 80A08F54 00000000 */ nop
glabel L80A08F58
/* 000B8 80A08F58 240D00BF */ addiu $t5, $zero, 0x00BF ## $t5 = 000000BF
/* 000BC 80A08F5C 1000001E */ beq $zero, $zero, .L80A08FD8
/* 000C0 80A08F60 A60D0150 */ sh $t5, 0x0150($s0) ## 00000150
glabel L80A08F64
/* 000C4 80A08F64 240E00BD */ addiu $t6, $zero, 0x00BD ## $t6 = 000000BD
/* 000C8 80A08F68 1000001B */ beq $zero, $zero, .L80A08FD8
/* 000CC 80A08F6C A60E0150 */ sh $t6, 0x0150($s0) ## 00000150
glabel L80A08F70
/* 000D0 80A08F70 240F00D9 */ addiu $t7, $zero, 0x00D9 ## $t7 = 000000D9
/* 000D4 80A08F74 10000018 */ beq $zero, $zero, .L80A08FD8
/* 000D8 80A08F78 A60F0150 */ sh $t7, 0x0150($s0) ## 00000150
glabel L80A08F7C
/* 000DC 80A08F7C 241800CE */ addiu $t8, $zero, 0x00CE ## $t8 = 000000CE
/* 000E0 80A08F80 10000015 */ beq $zero, $zero, .L80A08FD8
/* 000E4 80A08F84 A6180150 */ sh $t8, 0x0150($s0) ## 00000150
glabel L80A08F88
/* 000E8 80A08F88 2419017F */ addiu $t9, $zero, 0x017F ## $t9 = 0000017F
/* 000EC 80A08F8C 10000012 */ beq $zero, $zero, .L80A08FD8
/* 000F0 80A08F90 A6190150 */ sh $t9, 0x0150($s0) ## 00000150
glabel L80A08F94
/* 000F4 80A08F94 3C0180A1 */ lui $at, %hi(D_80A0A0D4) ## $at = 80A10000
/* 000F8 80A08F98 C424A0D4 */ lwc1 $f4, %lo(D_80A0A0D4)($at)
/* 000FC 80A08F9C 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00100 80A08FA0 44813000 */ mtc1 $at, $f6 ## $f6 = 10.00
/* 00104 80A08FA4 3C0980A1 */ lui $t1, %hi(func_80A096A8) ## $t1 = 80A10000
/* 00108 80A08FA8 24080007 */ addiu $t0, $zero, 0x0007 ## $t0 = 00000007
/* 0010C 80A08FAC 252996A8 */ addiu $t1, $t1, %lo(func_80A096A8) ## $t1 = 80A096A8
/* 00110 80A08FB0 A608015A */ sh $t0, 0x015A($s0) ## 0000015A
/* 00114 80A08FB4 AE09014C */ sw $t1, 0x014C($s0) ## 0000014C
/* 00118 80A08FB8 E6040164 */ swc1 $f4, 0x0164($s0) ## 00000164
/* 0011C 80A08FBC 10000006 */ beq $zero, $zero, .L80A08FD8
/* 00120 80A08FC0 E6060060 */ swc1 $f6, 0x0060($s0) ## 00000060
glabel L80A08FC4
/* 00124 80A08FC4 240A015D */ addiu $t2, $zero, 0x015D ## $t2 = 0000015D
/* 00128 80A08FC8 10000003 */ beq $zero, $zero, .L80A08FD8
/* 0012C 80A08FCC A60A0150 */ sh $t2, 0x0150($s0) ## 00000150
glabel L80A08FD0
/* 00130 80A08FD0 240B017B */ addiu $t3, $zero, 0x017B ## $t3 = 0000017B
/* 00134 80A08FD4 A60B0150 */ sh $t3, 0x0150($s0) ## 00000150
.L80A08FD8:
/* 00138 80A08FD8 86050150 */ lh $a1, 0x0150($s0) ## 00000150
/* 0013C 80A08FDC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00140 80A08FE0 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 00144 80A08FE4 04A00016 */ bltz $a1, .L80A09040
/* 00148 80A08FE8 8FA40024 */ lw $a0, 0x0024($sp)
/* 0014C 80A08FEC 0C02604B */ jal Object_GetIndex
## ObjectIndex
/* 00150 80A08FF0 00812021 */ addu $a0, $a0, $at
/* 00154 80A08FF4 A202016C */ sb $v0, 0x016C($s0) ## 0000016C
/* 00158 80A08FF8 820C016C */ lb $t4, 0x016C($s0) ## 0000016C
/* 0015C 80A08FFC 3C0D80A1 */ lui $t5, %hi(func_80A09054) ## $t5 = 80A10000
/* 00160 80A09000 AE000134 */ sw $zero, 0x0134($s0) ## 00000134
/* 00164 80A09004 0581000D */ bgez $t4, .L80A0903C
/* 00168 80A09008 25AD9054 */ addiu $t5, $t5, %lo(func_80A09054) ## $t5 = 80A09054
/* 0016C 80A0900C 0C00B55C */ jal Actor_Kill
/* 00170 80A09010 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00174 80A09014 3C0480A1 */ lui $a0, %hi(D_80A09E7C) ## $a0 = 80A10000
/* 00178 80A09018 24849E7C */ addiu $a0, $a0, %lo(D_80A09E7C) ## $a0 = 80A09E7C
/* 0017C 80A0901C 0C00084C */ jal osSyncPrintf
/* 00180 80A09020 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00184 80A09024 3C0480A1 */ lui $a0, %hi(D_80A09E8C) ## $a0 = 80A10000
/* 00188 80A09028 24849E8C */ addiu $a0, $a0, %lo(D_80A09E8C) ## $a0 = 80A09E8C
/* 0018C 80A0902C 0C00084C */ jal osSyncPrintf
/* 00190 80A09030 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00194 80A09034 10000003 */ beq $zero, $zero, .L80A09044
/* 00198 80A09038 8FBF001C */ lw $ra, 0x001C($sp)
.L80A0903C:
/* 0019C 80A0903C AE0D014C */ sw $t5, 0x014C($s0) ## 0000014C
.L80A09040:
/* 001A0 80A09040 8FBF001C */ lw $ra, 0x001C($sp)
.L80A09044:
/* 001A4 80A09044 8FB00018 */ lw $s0, 0x0018($sp)
/* 001A8 80A09048 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 001AC 80A0904C 03E00008 */ jr $ra
/* 001B0 80A09050 00000000 */ nop

View file

@ -1,25 +0,0 @@
glabel EnExItem_Update
/* 00BC8 80A09A68 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00BCC 80A09A6C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00BD0 80A09A70 8482015A */ lh $v0, 0x015A($a0) ## 0000015A
/* 00BD4 80A09A74 10400002 */ beq $v0, $zero, .L80A09A80
/* 00BD8 80A09A78 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00BDC 80A09A7C A48E015A */ sh $t6, 0x015A($a0) ## 0000015A
.L80A09A80:
/* 00BE0 80A09A80 8482015C */ lh $v0, 0x015C($a0) ## 0000015C
/* 00BE4 80A09A84 10400002 */ beq $v0, $zero, .L80A09A90
/* 00BE8 80A09A88 244FFFFF */ addiu $t7, $v0, 0xFFFF ## $t7 = FFFFFFFF
/* 00BEC 80A09A8C A48F015C */ sh $t7, 0x015C($a0) ## 0000015C
.L80A09A90:
/* 00BF0 80A09A90 8482015E */ lh $v0, 0x015E($a0) ## 0000015E
/* 00BF4 80A09A94 10400002 */ beq $v0, $zero, .L80A09AA0
/* 00BF8 80A09A98 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
/* 00BFC 80A09A9C A498015E */ sh $t8, 0x015E($a0) ## 0000015E
.L80A09AA0:
/* 00C00 80A09AA0 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C
/* 00C04 80A09AA4 0320F809 */ jalr $ra, $t9
/* 00C08 80A09AA8 00000000 */ nop
/* 00C0C 80A09AAC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00C10 80A09AB0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00C14 80A09AB4 03E00008 */ jr $ra
/* 00C18 80A09AB8 00000000 */ nop

View file

@ -1,327 +0,0 @@
.rdata
glabel D_80A09EB0
.asciz "\x1b[32m %d\n\x1b[m"
.balign 4
glabel D_80A09EDC
.asciz "\x1b[33m %d\n\x1b[m"
.balign 4
glabel D_80A09F08
.asciz "\x1b[34m %d\n\x1b[m"
.balign 4
glabel D_80A09F34
.asciz "\x1b[35m %d\n\x1b[m"
.balign 4
glabel D_80A09F60
.asciz "\x1b[36m %d\n\n\x1b[m"
.balign 4
.late_rodata
glabel jtbl_80A0A0D8
.word L80A0912C
.word L80A09190
.word L80A091FC
.word L80A09250
.word L80A092B8
.word L80A09128
.word L80A0918C
.word L80A091F8
.word L80A09250
.word L80A092B8
.word L80A0932C
.word L80A0932C
.word L80A0932C
.word L80A0932C
.word L80A0932C
.word L80A09424
.word L80A093CC
.word L80A093CC
.word L80A093CC
.word L80A093E8
glabel D_80A0A128
.word 0x3EB33333
glabel D_80A0A12C
.float 0.1
.text
glabel func_80A09054
/* 001B4 80A09054 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 001B8 80A09058 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 001BC 80A0905C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 001C0 80A09060 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 001C4 80A09064 AFBF0014 */ sw $ra, 0x0014($sp)
/* 001C8 80A09068 00A12021 */ addu $a0, $a1, $at
/* 001CC 80A0906C 80C5016C */ lb $a1, 0x016C($a2) ## 0000016C
/* 001D0 80A09070 0C026062 */ jal Object_IsLoaded
/* 001D4 80A09074 AFA60018 */ sw $a2, 0x0018($sp)
/* 001D8 80A09078 104000EA */ beq $v0, $zero, .L80A09424
/* 001DC 80A0907C 8FA60018 */ lw $a2, 0x0018($sp)
/* 001E0 80A09080 3C0480A1 */ lui $a0, %hi(D_80A09EB0) ## $a0 = 80A10000
/* 001E4 80A09084 84C5001C */ lh $a1, 0x001C($a2) ## 0000001C
/* 001E8 80A09088 AFA60018 */ sw $a2, 0x0018($sp)
/* 001EC 80A0908C 0C00084C */ jal osSyncPrintf
/* 001F0 80A09090 24849EB0 */ addiu $a0, $a0, %lo(D_80A09EB0) ## $a0 = 80A09EB0
/* 001F4 80A09094 8FA60018 */ lw $a2, 0x0018($sp)
/* 001F8 80A09098 3C0480A1 */ lui $a0, %hi(D_80A09EDC) ## $a0 = 80A10000
/* 001FC 80A0909C 24849EDC */ addiu $a0, $a0, %lo(D_80A09EDC) ## $a0 = 80A09EDC
/* 00200 80A090A0 0C00084C */ jal osSyncPrintf
/* 00204 80A090A4 84C5001C */ lh $a1, 0x001C($a2) ## 0000001C
/* 00208 80A090A8 8FA60018 */ lw $a2, 0x0018($sp)
/* 0020C 80A090AC 3C0480A1 */ lui $a0, %hi(D_80A09F08) ## $a0 = 80A10000
/* 00210 80A090B0 24849F08 */ addiu $a0, $a0, %lo(D_80A09F08) ## $a0 = 80A09F08
/* 00214 80A090B4 0C00084C */ jal osSyncPrintf
/* 00218 80A090B8 84C5001C */ lh $a1, 0x001C($a2) ## 0000001C
/* 0021C 80A090BC 8FA60018 */ lw $a2, 0x0018($sp)
/* 00220 80A090C0 3C0480A1 */ lui $a0, %hi(D_80A09F34) ## $a0 = 80A10000
/* 00224 80A090C4 24849F34 */ addiu $a0, $a0, %lo(D_80A09F34) ## $a0 = 80A09F34
/* 00228 80A090C8 0C00084C */ jal osSyncPrintf
/* 0022C 80A090CC 84C5001C */ lh $a1, 0x001C($a2) ## 0000001C
/* 00230 80A090D0 8FA60018 */ lw $a2, 0x0018($sp)
/* 00234 80A090D4 3C0480A1 */ lui $a0, %hi(D_80A09F60) ## $a0 = 80A10000
/* 00238 80A090D8 24849F60 */ addiu $a0, $a0, %lo(D_80A09F60) ## $a0 = 80A09F60
/* 0023C 80A090DC 0C00084C */ jal osSyncPrintf
/* 00240 80A090E0 84C5001C */ lh $a1, 0x001C($a2) ## 0000001C
/* 00244 80A090E4 8FA60018 */ lw $a2, 0x0018($sp)
/* 00248 80A090E8 3C0F80A1 */ lui $t7, %hi(EnExItem_Draw) ## $t7 = 80A10000
/* 0024C 80A090EC 25EF9ABC */ addiu $t7, $t7, %lo(EnExItem_Draw) ## $t7 = 80A09ABC
/* 00250 80A090F0 84C30152 */ lh $v1, 0x0152($a2) ## 00000152
/* 00254 80A090F4 80CE016C */ lb $t6, 0x016C($a2) ## 0000016C
/* 00258 80A090F8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 0025C 80A090FC 2C610014 */ sltiu $at, $v1, 0x0014
/* 00260 80A09100 ACCF0134 */ sw $t7, 0x0134($a2) ## 00000134
/* 00264 80A09104 A4C00158 */ sh $zero, 0x0158($a2) ## 00000158
/* 00268 80A09108 102000C6 */ beq $at, $zero, .L80A09424
/* 0026C 80A0910C A0CE001E */ sb $t6, 0x001E($a2) ## 0000001E
/* 00270 80A09110 0003C080 */ sll $t8, $v1, 2
/* 00274 80A09114 3C0180A1 */ lui $at, %hi(jtbl_80A0A0D8) ## $at = 80A10000
/* 00278 80A09118 00380821 */ addu $at, $at, $t8
/* 0027C 80A0911C 8C38A0D8 */ lw $t8, %lo(jtbl_80A0A0D8)($at)
/* 00280 80A09120 03000008 */ jr $t8
/* 00284 80A09124 00000000 */ nop
glabel L80A09128
/* 00288 80A09128 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
glabel L80A0912C
/* 0028C 80A0912C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00290 80A09130 44810000 */ mtc1 $at, $f0 ## $f0 = 0.50
/* 00294 80A09134 3C198003 */ lui $t9, %hi(func_8002EBCC)
/* 00298 80A09138 2739EBCC */ addiu $t9, %lo(func_8002EBCC)
/* 0029C 80A0913C 24080018 */ addiu $t0, $zero, 0x0018 ## $t0 = 00000018
/* 002A0 80A09140 24090041 */ addiu $t1, $zero, 0x0041 ## $t1 = 00000041
/* 002A4 80A09144 240A0023 */ addiu $t2, $zero, 0x0023 ## $t2 = 00000023
/* 002A8 80A09148 ACD9017C */ sw $t9, 0x017C($a2) ## 0000017C
/* 002AC 80A0914C A4C80156 */ sh $t0, 0x0156($a2) ## 00000156
/* 002B0 80A09150 A4C9015A */ sh $t1, 0x015A($a2) ## 0000015A
/* 002B4 80A09154 A4CA015E */ sh $t2, 0x015E($a2) ## 0000015E
/* 002B8 80A09158 14400005 */ bne $v0, $zero, .L80A09170
/* 002BC 80A0915C E4C00164 */ swc1 $f0, 0x0164($a2) ## 00000164
/* 002C0 80A09160 3C0B80A1 */ lui $t3, %hi(func_80A09434) ## $t3 = 80A10000
/* 002C4 80A09164 256B9434 */ addiu $t3, $t3, %lo(func_80A09434) ## $t3 = 80A09434
/* 002C8 80A09168 100000AE */ beq $zero, $zero, .L80A09424
/* 002CC 80A0916C ACCB014C */ sw $t3, 0x014C($a2) ## 0000014C
.L80A09170:
/* 002D0 80A09170 3C01C190 */ lui $at, 0xC190 ## $at = C1900000
/* 002D4 80A09174 44812000 */ mtc1 $at, $f4 ## $f4 = -18.00
/* 002D8 80A09178 3C0C80A1 */ lui $t4, %hi(func_80A0964C) ## $t4 = 80A10000
/* 002DC 80A0917C 258C964C */ addiu $t4, $t4, %lo(func_80A0964C) ## $t4 = 80A0964C
/* 002E0 80A09180 ACCC014C */ sw $t4, 0x014C($a2) ## 0000014C
/* 002E4 80A09184 100000A7 */ beq $zero, $zero, .L80A09424
/* 002E8 80A09188 E4C400BC */ swc1 $f4, 0x00BC($a2) ## 000000BC
glabel L80A0918C
/* 002EC 80A0918C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
glabel L80A09190
/* 002F0 80A09190 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 002F4 80A09194 44810000 */ mtc1 $at, $f0 ## $f0 = 0.50
/* 002F8 80A09198 3C0D8003 */ lui $t5, %hi(func_8002ED80)
/* 002FC 80A0919C 25ADED80 */ addiu $t5, %lo(func_8002ED80)
/* 00300 80A091A0 240E0041 */ addiu $t6, $zero, 0x0041 ## $t6 = 00000041
/* 00304 80A091A4 240F0023 */ addiu $t7, $zero, 0x0023 ## $t7 = 00000023
/* 00308 80A091A8 ACCD017C */ sw $t5, 0x017C($a2) ## 0000017C
/* 0030C 80A091AC A4CE015A */ sh $t6, 0x015A($a2) ## 0000015A
/* 00310 80A091B0 A4CF015E */ sh $t7, 0x015E($a2) ## 0000015E
/* 00314 80A091B4 14400009 */ bne $v0, $zero, .L80A091DC
/* 00318 80A091B8 E4C00164 */ swc1 $f0, 0x0164($a2) ## 00000164
/* 0031C 80A091BC 24044823 */ addiu $a0, $zero, 0x4823 ## $a0 = 00004823
/* 00320 80A091C0 0C01E221 */ jal func_80078884
/* 00324 80A091C4 AFA60018 */ sw $a2, 0x0018($sp)
/* 00328 80A091C8 8FA60018 */ lw $a2, 0x0018($sp)
/* 0032C 80A091CC 3C1880A1 */ lui $t8, %hi(func_80A09434) ## $t8 = 80A10000
/* 00330 80A091D0 27189434 */ addiu $t8, $t8, %lo(func_80A09434) ## $t8 = 80A09434
/* 00334 80A091D4 10000093 */ beq $zero, $zero, .L80A09424
/* 00338 80A091D8 ACD8014C */ sw $t8, 0x014C($a2) ## 0000014C
.L80A091DC:
/* 0033C 80A091DC 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 00340 80A091E0 44813000 */ mtc1 $at, $f6 ## $f6 = -10.00
/* 00344 80A091E4 3C1980A1 */ lui $t9, %hi(func_80A0964C) ## $t9 = 80A10000
/* 00348 80A091E8 2739964C */ addiu $t9, $t9, %lo(func_80A0964C) ## $t9 = 80A0964C
/* 0034C 80A091EC ACD9014C */ sw $t9, 0x014C($a2) ## 0000014C
/* 00350 80A091F0 1000008C */ beq $zero, $zero, .L80A09424
/* 00354 80A091F4 E4C600BC */ swc1 $f6, 0x00BC($a2) ## 000000BC
glabel L80A091F8
/* 00358 80A091F8 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
glabel L80A091FC
/* 0035C 80A091FC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00360 80A09200 44810000 */ mtc1 $at, $f0 ## $f0 = 0.50
/* 00364 80A09204 3C088003 */ lui $t0, %hi(func_8002EBCC)
/* 00368 80A09208 2508EBCC */ addiu $t0, %lo(func_8002EBCC)
/* 0036C 80A0920C 24090027 */ addiu $t1, $zero, 0x0027 ## $t1 = 00000027
/* 00370 80A09210 240A0041 */ addiu $t2, $zero, 0x0041 ## $t2 = 00000041
/* 00374 80A09214 240B0023 */ addiu $t3, $zero, 0x0023 ## $t3 = 00000023
/* 00378 80A09218 ACC8017C */ sw $t0, 0x017C($a2) ## 0000017C
/* 0037C 80A0921C A4C90156 */ sh $t1, 0x0156($a2) ## 00000156
/* 00380 80A09220 A4CA015A */ sh $t2, 0x015A($a2) ## 0000015A
/* 00384 80A09224 A4CB015E */ sh $t3, 0x015E($a2) ## 0000015E
/* 00388 80A09228 14400005 */ bne $v0, $zero, .L80A09240
/* 0038C 80A0922C E4C00164 */ swc1 $f0, 0x0164($a2) ## 00000164
/* 00390 80A09230 3C0C80A1 */ lui $t4, %hi(func_80A09434) ## $t4 = 80A10000
/* 00394 80A09234 258C9434 */ addiu $t4, $t4, %lo(func_80A09434) ## $t4 = 80A09434
/* 00398 80A09238 1000007A */ beq $zero, $zero, .L80A09424
/* 0039C 80A0923C ACCC014C */ sw $t4, 0x014C($a2) ## 0000014C
.L80A09240:
/* 003A0 80A09240 3C0D80A1 */ lui $t5, %hi(func_80A0964C) ## $t5 = 80A10000
/* 003A4 80A09244 25AD964C */ addiu $t5, $t5, %lo(func_80A0964C) ## $t5 = 80A0964C
/* 003A8 80A09248 10000076 */ beq $zero, $zero, .L80A09424
/* 003AC 80A0924C ACCD014C */ sw $t5, 0x014C($a2) ## 0000014C
glabel L80A09250
/* 003B0 80A09250 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 003B4 80A09254 44810000 */ mtc1 $at, $f0 ## $f0 = 0.50
/* 003B8 80A09258 3C0E8003 */ lui $t6, %hi(func_8002EBCC)
/* 003BC 80A0925C 25CEEBCC */ addiu $t6, %lo(func_8002EBCC)
/* 003C0 80A09260 240F001F */ addiu $t7, $zero, 0x001F ## $t7 = 0000001F
/* 003C4 80A09264 24180041 */ addiu $t8, $zero, 0x0041 ## $t8 = 00000041
/* 003C8 80A09268 24190023 */ addiu $t9, $zero, 0x0023 ## $t9 = 00000023
/* 003CC 80A0926C 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 003D0 80A09270 ACCE017C */ sw $t6, 0x017C($a2) ## 0000017C
/* 003D4 80A09274 A4CF0156 */ sh $t7, 0x0156($a2) ## 00000156
/* 003D8 80A09278 A4D8015A */ sh $t8, 0x015A($a2) ## 0000015A
/* 003DC 80A0927C A4D9015E */ sh $t9, 0x015E($a2) ## 0000015E
/* 003E0 80A09280 E4C00164 */ swc1 $f0, 0x0164($a2) ## 00000164
/* 003E4 80A09284 14610005 */ bne $v1, $at, .L80A0929C
/* 003E8 80A09288 E4C00168 */ swc1 $f0, 0x0168($a2) ## 00000168
/* 003EC 80A0928C 3C0880A1 */ lui $t0, %hi(func_80A09434) ## $t0 = 80A10000
/* 003F0 80A09290 25089434 */ addiu $t0, $t0, %lo(func_80A09434) ## $t0 = 80A09434
/* 003F4 80A09294 10000063 */ beq $zero, $zero, .L80A09424
/* 003F8 80A09298 ACC8014C */ sw $t0, 0x014C($a2) ## 0000014C
.L80A0929C:
/* 003FC 80A0929C 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00400 80A092A0 44814000 */ mtc1 $at, $f8 ## $f8 = 10.00
/* 00404 80A092A4 3C0980A1 */ lui $t1, %hi(func_80A0964C) ## $t1 = 80A10000
/* 00408 80A092A8 2529964C */ addiu $t1, $t1, %lo(func_80A0964C) ## $t1 = 80A0964C
/* 0040C 80A092AC ACC9014C */ sw $t1, 0x014C($a2) ## 0000014C
/* 00410 80A092B0 1000005C */ beq $zero, $zero, .L80A09424
/* 00414 80A092B4 E4C800BC */ swc1 $f8, 0x00BC($a2) ## 000000BC
glabel L80A092B8
/* 00418 80A092B8 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 0041C 80A092BC 44810000 */ mtc1 $at, $f0 ## $f0 = 0.50
/* 00420 80A092C0 3C0A8003 */ lui $t2, %hi(func_8002EBCC)
/* 00424 80A092C4 3C0B8003 */ lui $t3, %hi(func_8002ED80)
/* 00428 80A092C8 254AEBCC */ addiu $t2, %lo(func_8002EBCC)
/* 0042C 80A092CC 256BED80 */ addiu $t3, %lo(func_8002ED80)
/* 00430 80A092D0 240C0070 */ addiu $t4, $zero, 0x0070 ## $t4 = 00000070
/* 00434 80A092D4 240D0041 */ addiu $t5, $zero, 0x0041 ## $t5 = 00000041
/* 00438 80A092D8 240E0023 */ addiu $t6, $zero, 0x0023 ## $t6 = 00000023
/* 0043C 80A092DC 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00440 80A092E0 ACCA017C */ sw $t2, 0x017C($a2) ## 0000017C
/* 00444 80A092E4 ACCB0180 */ sw $t3, 0x0180($a2) ## 00000180
/* 00448 80A092E8 A4CC0156 */ sh $t4, 0x0156($a2) ## 00000156
/* 0044C 80A092EC A4CD015A */ sh $t5, 0x015A($a2) ## 0000015A
/* 00450 80A092F0 A4CE015E */ sh $t6, 0x015E($a2) ## 0000015E
/* 00454 80A092F4 E4C00164 */ swc1 $f0, 0x0164($a2) ## 00000164
/* 00458 80A092F8 14610005 */ bne $v1, $at, .L80A09310
/* 0045C 80A092FC E4C00168 */ swc1 $f0, 0x0168($a2) ## 00000168
/* 00460 80A09300 3C0F80A1 */ lui $t7, %hi(func_80A09434) ## $t7 = 80A10000
/* 00464 80A09304 25EF9434 */ addiu $t7, $t7, %lo(func_80A09434) ## $t7 = 80A09434
/* 00468 80A09308 10000046 */ beq $zero, $zero, .L80A09424
/* 0046C 80A0930C ACCF014C */ sw $t7, 0x014C($a2) ## 0000014C
.L80A09310:
/* 00470 80A09310 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00474 80A09314 44815000 */ mtc1 $at, $f10 ## $f10 = 40.00
/* 00478 80A09318 3C1880A1 */ lui $t8, %hi(func_80A0964C) ## $t8 = 80A10000
/* 0047C 80A0931C 2718964C */ addiu $t8, $t8, %lo(func_80A0964C) ## $t8 = 80A0964C
/* 00480 80A09320 ACD8014C */ sw $t8, 0x014C($a2) ## 0000014C
/* 00484 80A09324 1000003F */ beq $zero, $zero, .L80A09424
/* 00488 80A09328 E4CA00BC */ swc1 $f10, 0x00BC($a2) ## 000000BC
glabel L80A0932C
/* 0048C 80A0932C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00490 80A09330 44810000 */ mtc1 $at, $f0 ## $f0 = 0.50
/* 00494 80A09334 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00498 80A09338 44818000 */ mtc1 $at, $f16 ## $f16 = 10.00
/* 0049C 80A0933C 3C198003 */ lui $t9, %hi(func_8002EBCC)
/* 004A0 80A09340 3C088003 */ lui $t0, %hi(func_8002ED80)
/* 004A4 80A09344 2739EBCC */ addiu $t9, %lo(func_8002EBCC)
/* 004A8 80A09348 2508ED80 */ addiu $t0, %lo(func_8002ED80)
/* 004AC 80A0934C 24090007 */ addiu $t1, $zero, 0x0007 ## $t1 = 00000007
/* 004B0 80A09350 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
/* 004B4 80A09354 ACD9017C */ sw $t9, 0x017C($a2) ## 0000017C
/* 004B8 80A09358 ACC80180 */ sw $t0, 0x0180($a2) ## 00000180
/* 004BC 80A0935C A4C9015A */ sh $t1, 0x015A($a2) ## 0000015A
/* 004C0 80A09360 E4C00164 */ swc1 $f0, 0x0164($a2) ## 00000164
/* 004C4 80A09364 E4C00168 */ swc1 $f0, 0x0168($a2) ## 00000168
/* 004C8 80A09368 1061000C */ beq $v1, $at, .L80A0939C
/* 004CC 80A0936C E4D00060 */ swc1 $f16, 0x0060($a2) ## 00000060
/* 004D0 80A09370 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B
/* 004D4 80A09374 1061000C */ beq $v1, $at, .L80A093A8
/* 004D8 80A09378 240B006D */ addiu $t3, $zero, 0x006D ## $t3 = 0000006D
/* 004DC 80A0937C 2401000C */ addiu $at, $zero, 0x000C ## $at = 0000000C
/* 004E0 80A09380 1061000B */ beq $v1, $at, .L80A093B0
/* 004E4 80A09384 240C006E */ addiu $t4, $zero, 0x006E ## $t4 = 0000006E
/* 004E8 80A09388 2401000E */ addiu $at, $zero, 0x000E ## $at = 0000000E
/* 004EC 80A0938C 1061000A */ beq $v1, $at, .L80A093B8
/* 004F0 80A09390 240D0070 */ addiu $t5, $zero, 0x0070 ## $t5 = 00000070
/* 004F4 80A09394 10000009 */ beq $zero, $zero, .L80A093BC
/* 004F8 80A09398 00000000 */ nop
.L80A0939C:
/* 004FC 80A0939C 240A006C */ addiu $t2, $zero, 0x006C ## $t2 = 0000006C
/* 00500 80A093A0 10000006 */ beq $zero, $zero, .L80A093BC
/* 00504 80A093A4 A4CA0156 */ sh $t2, 0x0156($a2) ## 00000156
.L80A093A8:
/* 00508 80A093A8 10000004 */ beq $zero, $zero, .L80A093BC
/* 0050C 80A093AC A4CB0156 */ sh $t3, 0x0156($a2) ## 00000156
.L80A093B0:
/* 00510 80A093B0 10000002 */ beq $zero, $zero, .L80A093BC
/* 00514 80A093B4 A4CC0156 */ sh $t4, 0x0156($a2) ## 00000156
.L80A093B8:
/* 00518 80A093B8 A4CD0156 */ sh $t5, 0x0156($a2) ## 00000156
.L80A093BC:
/* 0051C 80A093BC 3C0E80A1 */ lui $t6, %hi(func_80A096A8) ## $t6 = 80A10000
/* 00520 80A093C0 25CE96A8 */ addiu $t6, $t6, %lo(func_80A096A8) ## $t6 = 80A096A8
/* 00524 80A093C4 10000017 */ beq $zero, $zero, .L80A09424
/* 00528 80A093C8 ACCE014C */ sw $t6, 0x014C($a2) ## 0000014C
glabel L80A093CC
/* 0052C 80A093CC 3C0180A1 */ lui $at, %hi(D_80A0A128) ## $at = 80A10000
/* 00530 80A093D0 C432A128 */ lwc1 $f18, %lo(D_80A0A128)($at)
/* 00534 80A093D4 3C0F80A1 */ lui $t7, %hi(func_80A09710) ## $t7 = 80A10000
/* 00538 80A093D8 25EF9710 */ addiu $t7, $t7, %lo(func_80A09710) ## $t7 = 80A09710
/* 0053C 80A093DC ACCF014C */ sw $t7, 0x014C($a2) ## 0000014C
/* 00540 80A093E0 10000010 */ beq $zero, $zero, .L80A09424
/* 00544 80A093E4 E4D20164 */ swc1 $f18, 0x0164($a2) ## 00000164
glabel L80A093E8
/* 00548 80A093E8 3C188003 */ lui $t8, %hi(func_8002EBCC)
/* 0054C 80A093EC 2718EBCC */ addiu $t8, %lo(func_8002EBCC)
/* 00550 80A093F0 2419006B */ addiu $t9, $zero, 0x006B ## $t9 = 0000006B
/* 00554 80A093F4 ACD8017C */ sw $t8, 0x017C($a2) ## 0000017C
/* 00558 80A093F8 A4D90156 */ sh $t9, 0x0156($a2) ## 00000156
/* 0055C 80A093FC 3C0180A1 */ lui $at, %hi(D_80A0A12C) ## $at = 80A10000
/* 00560 80A09400 C424A12C */ lwc1 $f4, %lo(D_80A0A12C)($at)
/* 00564 80A09404 3C0A80A1 */ lui $t2, %hi(func_80A09724) ## $t2 = 80A10000
/* 00568 80A09408 24080050 */ addiu $t0, $zero, 0x0050 ## $t0 = 00000050
/* 0056C 80A0940C 24090023 */ addiu $t1, $zero, 0x0023 ## $t1 = 00000023
/* 00570 80A09410 254A9724 */ addiu $t2, $t2, %lo(func_80A09724) ## $t2 = 80A09724
/* 00574 80A09414 A4C8015A */ sh $t0, 0x015A($a2) ## 0000015A
/* 00578 80A09418 A4C9015E */ sh $t1, 0x015E($a2) ## 0000015E
/* 0057C 80A0941C ACCA014C */ sw $t2, 0x014C($a2) ## 0000014C
/* 00580 80A09420 E4C40164 */ swc1 $f4, 0x0164($a2) ## 00000164
glabel L80A09424
.L80A09424:
/* 00584 80A09424 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00588 80A09428 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0058C 80A0942C 03E00008 */ jr $ra
/* 00590 80A09430 00000000 */ nop

View file

@ -1,162 +0,0 @@
.rdata
glabel D_80A09F8C
.asciz "\x1b[32m %x\n\x1b[m"
.balign 4
glabel D_80A09FBC
.asciz "\x1b[32m %x\n\x1b[m"
.balign 4
glabel D_80A09FEC
.asciz "\x1b[32m \n\x1b[m"
.balign 4
.text
glabel func_80A09434
/* 00594 80A09434 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
/* 00598 80A09438 AFBF0024 */ sw $ra, 0x0024($sp)
/* 0059C 80A0943C AFB10020 */ sw $s1, 0x0020($sp)
/* 005A0 80A09440 AFB0001C */ sw $s0, 0x001C($sp)
/* 005A4 80A09444 84880158 */ lh $t0, 0x0158($a0) ## 00000158
/* 005A8 80A09448 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 005AC 80A0944C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 005B0 80A09450 1500000F */ bne $t0, $zero, .L80A09490
/* 005B4 80A09454 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 005B8 80A09458 848900B6 */ lh $t1, 0x00B6($a0) ## 000000B6
/* 005BC 80A0945C 848B015E */ lh $t3, 0x015E($a0) ## 0000015E
/* 005C0 80A09460 252A1000 */ addiu $t2, $t1, 0x1000 ## $t2 = 00001000
/* 005C4 80A09464 1560000F */ bne $t3, $zero, .L80A094A4
/* 005C8 80A09468 A48A00B6 */ sh $t2, 0x00B6($a0) ## 000000B6
/* 005CC 80A0946C 848C00B6 */ lh $t4, 0x00B6($a0) ## 000000B6
/* 005D0 80A09470 34019000 */ ori $at, $zero, 0x9000 ## $at = 00009000
/* 005D4 80A09474 318DFFFF */ andi $t5, $t4, 0xFFFF ## $t5 = 00000000
/* 005D8 80A09478 55A1000B */ bnel $t5, $at, .L80A094A8
/* 005DC 80A0947C 8618015A */ lh $t8, 0x015A($s0) ## 0000015A
/* 005E0 80A09480 848E0158 */ lh $t6, 0x0158($a0) ## 00000158
/* 005E4 80A09484 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 005E8 80A09488 10000006 */ beq $zero, $zero, .L80A094A4
/* 005EC 80A0948C A48F0158 */ sh $t7, 0x0158($a0) ## 00000158
.L80A09490:
/* 005F0 80A09490 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
/* 005F4 80A09494 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 005F8 80A09498 24071000 */ addiu $a3, $zero, 0x1000 ## $a3 = 00001000
/* 005FC 80A0949C 0C01E1A7 */ jal Math_SmoothStepToS
/* 00600 80A094A0 AFA00010 */ sw $zero, 0x0010($sp)
.L80A094A4:
/* 00604 80A094A4 8618015A */ lh $t8, 0x015A($s0) ## 0000015A
.L80A094A8:
/* 00608 80A094A8 3C0480A1 */ lui $a0, %hi(D_80A09F8C) ## $a0 = 80A10000
/* 0060C 80A094AC 24849F8C */ addiu $a0, $a0, %lo(D_80A09F8C) ## $a0 = 80A09F8C
/* 00610 80A094B0 1300004E */ beq $t8, $zero, .L80A095EC
/* 00614 80A094B4 00000000 */ nop
/* 00618 80A094B8 8619015E */ lh $t9, 0x015E($s0) ## 0000015E
/* 0061C 80A094BC 3C01437A */ lui $at, 0x437A ## $at = 437A0000
/* 00620 80A094C0 5320005E */ beql $t9, $zero, .L80A0963C
/* 00624 80A094C4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00628 80A094C8 44815000 */ mtc1 $at, $f10 ## $f10 = 250.00
/* 0062C 80A094CC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00630 80A094D0 E7AA003C */ swc1 $f10, 0x003C($sp)
/* 00634 80A094D4 86080152 */ lh $t0, 0x0152($s0) ## 00000152
/* 00638 80A094D8 15010004 */ bne $t0, $at, .L80A094EC
/* 0063C 80A094DC 3C01435C */ lui $at, 0x435C ## $at = 435C0000
/* 00640 80A094E0 44812000 */ mtc1 $at, $f4 ## $f4 = 220.00
/* 00644 80A094E4 00000000 */ nop
/* 00648 80A094E8 E7A4003C */ swc1 $f4, 0x003C($sp)
.L80A094EC:
/* 0064C 80A094EC C62C00E0 */ lwc1 $f12, 0x00E0($s1) ## 000000E0
/* 00650 80A094F0 C62800EC */ lwc1 $f8, 0x00EC($s1) ## 000000EC
/* 00654 80A094F4 C62A00E8 */ lwc1 $f10, 0x00E8($s1) ## 000000E8
/* 00658 80A094F8 C63000E4 */ lwc1 $f16, 0x00E4($s1) ## 000000E4
/* 0065C 80A094FC C62600F0 */ lwc1 $f6, 0x00F0($s1) ## 000000F0
/* 00660 80A09500 460C4081 */ sub.s $f2, $f8, $f12
/* 00664 80A09504 E7AA0038 */ swc1 $f10, 0x0038($sp)
/* 00668 80A09508 C62400F4 */ lwc1 $f4, 0x00F4($s1) ## 000000F4
/* 0066C 80A0950C C7A8003C */ lwc1 $f8, 0x003C($sp)
/* 00670 80A09510 46103381 */ sub.s $f14, $f6, $f16
/* 00674 80A09514 C7AA0038 */ lwc1 $f10, 0x0038($sp)
/* 00678 80A09518 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 0067C 80A0951C 46082180 */ add.s $f6, $f4, $f8
/* 00680 80A09520 46021102 */ mul.s $f4, $f2, $f2
/* 00684 80A09524 00000000 */ nop
/* 00688 80A09528 460E7202 */ mul.s $f8, $f14, $f14
/* 0068C 80A0952C 460A3481 */ sub.s $f18, $f6, $f10
/* 00690 80A09530 46082180 */ add.s $f6, $f4, $f8
/* 00694 80A09534 46129102 */ mul.s $f4, $f18, $f18
/* 00698 80A09538 46043000 */ add.s $f0, $f6, $f4
/* 0069C 80A0953C 44813000 */ mtc1 $at, $f6 ## $f6 = 5.00
/* 006A0 80A09540 46000004 */ sqrt.s $f0, $f0
/* 006A4 80A09544 46009203 */ div.s $f8, $f18, $f0
/* 006A8 80A09548 46064102 */ mul.s $f4, $f8, $f6
/* 006AC 80A0954C 46001183 */ div.s $f6, $f2, $f0
/* 006B0 80A09550 E7A40040 */ swc1 $f4, 0x0040($sp)
/* 006B4 80A09554 C6080024 */ lwc1 $f8, 0x0024($s0) ## 00000024
/* 006B8 80A09558 E7A80034 */ swc1 $f8, 0x0034($sp)
/* 006BC 80A0955C 44814000 */ mtc1 $at, $f8 ## $f8 = 5.00
/* 006C0 80A09560 00000000 */ nop
/* 006C4 80A09564 46083182 */ mul.s $f6, $f6, $f8
/* 006C8 80A09568 46066200 */ add.s $f8, $f12, $f6
/* 006CC 80A0956C C7A60034 */ lwc1 $f6, 0x0034($sp)
/* 006D0 80A09570 46064081 */ sub.s $f2, $f8, $f6
/* 006D4 80A09574 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 006D8 80A09578 E7AA0028 */ swc1 $f10, 0x0028($sp)
/* 006DC 80A0957C 44815000 */ mtc1 $at, $f10 ## $f10 = 5.00
/* 006E0 80A09580 E7A80030 */ swc1 $f8, 0x0030($sp)
/* 006E4 80A09584 46007203 */ div.s $f8, $f14, $f0
/* 006E8 80A09588 C60C002C */ lwc1 $f12, 0x002C($s0) ## 0000002C
/* 006EC 80A0958C 460A4202 */ mul.s $f8, $f8, $f10
/* 006F0 80A09590 46088280 */ add.s $f10, $f16, $f8
/* 006F4 80A09594 C7A80030 */ lwc1 $f8, 0x0030($sp)
/* 006F8 80A09598 46085381 */ sub.s $f14, $f10, $f8
/* 006FC 80A0959C C7AA0028 */ lwc1 $f10, 0x0028($sp)
/* 00700 80A095A0 46045200 */ add.s $f8, $f10, $f4
/* 00704 80A095A4 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 00708 80A095A8 46001283 */ div.s $f10, $f2, $f0
/* 0070C 80A095AC 460C4481 */ sub.s $f18, $f8, $f12
/* 00710 80A095B0 46045202 */ mul.s $f8, $f10, $f4
/* 00714 80A095B4 46007103 */ div.s $f4, $f14, $f0
/* 00718 80A095B8 46083280 */ add.s $f10, $f6, $f8
/* 0071C 80A095BC 44813000 */ mtc1 $at, $f6 ## $f6 = 5.00
/* 00720 80A095C0 E60A0024 */ swc1 $f10, 0x0024($s0) ## 00000024
/* 00724 80A095C4 C7AA0030 */ lwc1 $f10, 0x0030($sp)
/* 00728 80A095C8 46062202 */ mul.s $f8, $f4, $f6
/* 0072C 80A095CC 46009183 */ div.s $f6, $f18, $f0
/* 00730 80A095D0 46085100 */ add.s $f4, $f10, $f8
/* 00734 80A095D4 44815000 */ mtc1 $at, $f10 ## $f10 = 5.00
/* 00738 80A095D8 E6040028 */ swc1 $f4, 0x0028($s0) ## 00000028
/* 0073C 80A095DC 460A3202 */ mul.s $f8, $f6, $f10
/* 00740 80A095E0 46086100 */ add.s $f4, $f12, $f8
/* 00744 80A095E4 10000014 */ beq $zero, $zero, .L80A09638
/* 00748 80A095E8 E604002C */ swc1 $f4, 0x002C($s0) ## 0000002C
.L80A095EC:
/* 0074C 80A095EC 0C00084C */ jal osSyncPrintf
/* 00750 80A095F0 8E050118 */ lw $a1, 0x0118($s0) ## 00000118
/* 00754 80A095F4 8E090118 */ lw $t1, 0x0118($s0) ## 00000118
/* 00758 80A095F8 3C0480A1 */ lui $a0, %hi(D_80A09FBC) ## $a0 = 80A10000
/* 0075C 80A095FC 24849FBC */ addiu $a0, $a0, %lo(D_80A09FBC) ## $a0 = 80A09FBC
/* 00760 80A09600 0C00084C */ jal osSyncPrintf
/* 00764 80A09604 8D250130 */ lw $a1, 0x0130($t1) ## 00000130
/* 00768 80A09608 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
/* 0076C 80A0960C 10400008 */ beq $v0, $zero, .L80A09630
/* 00770 80A09610 00000000 */ nop
/* 00774 80A09614 8C4A0130 */ lw $t2, 0x0130($v0) ## 00000130
/* 00778 80A09618 3C0480A1 */ lui $a0, %hi(D_80A09FEC) ## $a0 = 80A10000
/* 0077C 80A0961C 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 00780 80A09620 11400003 */ beq $t2, $zero, .L80A09630
/* 00784 80A09624 24849FEC */ addiu $a0, $a0, %lo(D_80A09FEC) ## $a0 = 80A09FEC
/* 00788 80A09628 0C00084C */ jal osSyncPrintf
/* 0078C 80A0962C A44B0156 */ sh $t3, 0x0156($v0) ## 00000156
.L80A09630:
/* 00790 80A09630 0C00B55C */ jal Actor_Kill
/* 00794 80A09634 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A09638:
/* 00798 80A09638 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A0963C:
/* 0079C 80A0963C 8FB0001C */ lw $s0, 0x001C($sp)
/* 007A0 80A09640 8FB10020 */ lw $s1, 0x0020($sp)
/* 007A4 80A09644 03E00008 */ jr $ra
/* 007A8 80A09648 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000

View file

@ -1,10 +0,0 @@
glabel func_80A0964C
/* 007AC 80A0964C AFA50004 */ sw $a1, 0x0004($sp)
/* 007B0 80A09650 240E4268 */ addiu $t6, $zero, 0x4268 ## $t6 = 00004268
/* 007B4 80A09654 A48E00B6 */ sh $t6, 0x00B6($a0) ## 000000B6
/* 007B8 80A09658 848F00B6 */ lh $t7, 0x00B6($a0) ## 000000B6
/* 007BC 80A0965C 3C1880A1 */ lui $t8, %hi(func_80A09670) ## $t8 = 80A10000
/* 007C0 80A09660 27189670 */ addiu $t8, $t8, %lo(func_80A09670) ## $t8 = 80A09670
/* 007C4 80A09664 AC98014C */ sw $t8, 0x014C($a0) ## 0000014C
/* 007C8 80A09668 03E00008 */ jr $ra
/* 007CC 80A0966C A48F0032 */ sh $t7, 0x0032($a0) ## 00000032

View file

@ -1,17 +0,0 @@
glabel func_80A09670
/* 007D0 80A09670 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 007D4 80A09674 AFBF0014 */ sw $ra, 0x0014($sp)
/* 007D8 80A09678 AFA5001C */ sw $a1, 0x001C($sp)
/* 007DC 80A0967C 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 007E0 80A09680 84980160 */ lh $t8, 0x0160($a0) ## 00000160
/* 007E4 80A09684 25CF0800 */ addiu $t7, $t6, 0x0800 ## $t7 = 00000800
/* 007E8 80A09688 13000003 */ beq $t8, $zero, .L80A09698
/* 007EC 80A0968C A48F00B6 */ sh $t7, 0x00B6($a0) ## 000000B6
/* 007F0 80A09690 0C00B55C */ jal Actor_Kill
/* 007F4 80A09694 00000000 */ nop
.L80A09698:
/* 007F8 80A09698 8FBF0014 */ lw $ra, 0x0014($sp)
/* 007FC 80A0969C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00800 80A096A0 03E00008 */ jr $ra
/* 00804 80A096A4 00000000 */ nop

View file

@ -1,31 +0,0 @@
glabel func_80A096A8
/* 00808 80A096A8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0080C 80A096AC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00810 80A096B0 AFA5001C */ sw $a1, 0x001C($sp)
/* 00814 80A096B4 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 00818 80A096B8 8482015A */ lh $v0, 0x015A($a0) ## 0000015A
/* 0081C 80A096BC 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00820 80A096C0 25CF1000 */ addiu $t7, $t6, 0x1000 ## $t7 = 00001000
/* 00824 80A096C4 10400005 */ beq $v0, $zero, .L80A096DC
/* 00828 80A096C8 A48F00B6 */ sh $t7, 0x00B6($a0) ## 000000B6
/* 0082C 80A096CC 1441000A */ bne $v0, $at, .L80A096F8
/* 00830 80A096D0 24180014 */ addiu $t8, $zero, 0x0014 ## $t8 = 00000014
/* 00834 80A096D4 10000008 */ beq $zero, $zero, .L80A096F8
/* 00838 80A096D8 A498015C */ sh $t8, 0x015C($a0) ## 0000015C
.L80A096DC:
/* 0083C 80A096DC 8499015C */ lh $t9, 0x015C($a0) ## 0000015C
/* 00840 80A096E0 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00844 80A096E4 17200004 */ bne $t9, $zero, .L80A096F8
/* 00848 80A096E8 E4840060 */ swc1 $f4, 0x0060($a0) ## 00000060
/* 0084C 80A096EC 0C00B55C */ jal Actor_Kill
/* 00850 80A096F0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00854 80A096F4 8FA40018 */ lw $a0, 0x0018($sp)
.L80A096F8:
/* 00858 80A096F8 0C00B638 */ jal Actor_MoveForward
/* 0085C 80A096FC 00000000 */ nop
/* 00860 80A09700 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00864 80A09704 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00868 80A09708 03E00008 */ jr $ra
/* 0086C 80A0970C 00000000 */ nop

View file

@ -1,6 +0,0 @@
glabel func_80A09710
/* 00870 80A09710 AFA50004 */ sw $a1, 0x0004($sp)
/* 00874 80A09714 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 00878 80A09718 25CF0800 */ addiu $t7, $t6, 0x0800 ## $t7 = 00000800
/* 0087C 80A0971C 03E00008 */ jr $ra
/* 00880 80A09720 A48F00B6 */ sh $t7, 0x00B6($a0) ## 000000B6

View file

@ -1,160 +0,0 @@
glabel func_80A09724
/* 00884 80A09724 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
/* 00888 80A09728 AFB10020 */ sw $s1, 0x0020($sp)
/* 0088C 80A0972C 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00890 80A09730 AFB0001C */ sw $s0, 0x001C($sp)
/* 00894 80A09734 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00898 80A09738 AFBF0024 */ sw $ra, 0x0024($sp)
/* 0089C 80A0973C 3C053F4C */ lui $a1, 0x3F4C ## $a1 = 3F4C0000
/* 008A0 80A09740 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000
/* 008A4 80A09744 3C073CA3 */ lui $a3, 0x3CA3 ## $a3 = 3CA30000
/* 008A8 80A09748 34E7D70A */ ori $a3, $a3, 0xD70A ## $a3 = 3CA3D70A
/* 008AC 80A0974C 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD
/* 008B0 80A09750 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3F4CCCCD
/* 008B4 80A09754 0C01E107 */ jal Math_ApproachF
/* 008B8 80A09758 24840164 */ addiu $a0, $a0, 0x0164 ## $a0 = 00000164
/* 008BC 80A0975C 860A0158 */ lh $t2, 0x0158($s0) ## 00000158
/* 008C0 80A09760 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
/* 008C4 80A09764 2405C000 */ addiu $a1, $zero, 0xC000 ## $a1 = FFFFC000
/* 008C8 80A09768 1540000F */ bne $t2, $zero, .L80A097A8
/* 008CC 80A0976C 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 008D0 80A09770 860B00B6 */ lh $t3, 0x00B6($s0) ## 000000B6
/* 008D4 80A09774 860D015E */ lh $t5, 0x015E($s0) ## 0000015E
/* 008D8 80A09778 256C1000 */ addiu $t4, $t3, 0x1000 ## $t4 = 00001000
/* 008DC 80A0977C 15A0000D */ bne $t5, $zero, .L80A097B4
/* 008E0 80A09780 A60C00B6 */ sh $t4, 0x00B6($s0) ## 000000B6
/* 008E4 80A09784 860E00B6 */ lh $t6, 0x00B6($s0) ## 000000B6
/* 008E8 80A09788 34019000 */ ori $at, $zero, 0x9000 ## $at = 00009000
/* 008EC 80A0978C 31CFFFFF */ andi $t7, $t6, 0xFFFF ## $t7 = 00000000
/* 008F0 80A09790 55E10009 */ bnel $t7, $at, .L80A097B8
/* 008F4 80A09794 8608015A */ lh $t0, 0x015A($s0) ## 0000015A
/* 008F8 80A09798 86180158 */ lh $t8, 0x0158($s0) ## 00000158
/* 008FC 80A0979C 27190001 */ addiu $t9, $t8, 0x0001 ## $t9 = 00000001
/* 00900 80A097A0 10000004 */ beq $zero, $zero, .L80A097B4
/* 00904 80A097A4 A6190158 */ sh $t9, 0x0158($s0) ## 00000158
.L80A097A8:
/* 00908 80A097A8 24071000 */ addiu $a3, $zero, 0x1000 ## $a3 = 00001000
/* 0090C 80A097AC 0C01E1A7 */ jal Math_SmoothStepToS
/* 00910 80A097B0 AFA00010 */ sw $zero, 0x0010($sp)
.L80A097B4:
/* 00914 80A097B4 8608015A */ lh $t0, 0x015A($s0) ## 0000015A
.L80A097B8:
/* 00918 80A097B8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0091C 80A097BC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00920 80A097C0 1100004E */ beq $t0, $zero, .L80A098FC
/* 00924 80A097C4 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007
/* 00928 80A097C8 8609015E */ lh $t1, 0x015E($s0) ## 0000015E
/* 0092C 80A097CC 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00930 80A097D0 51200065 */ beql $t1, $zero, .L80A09968
/* 00934 80A097D4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00938 80A097D8 C62C00E0 */ lwc1 $f12, 0x00E0($s1) ## 000000E0
/* 0093C 80A097DC C62400EC */ lwc1 $f4, 0x00EC($s1) ## 000000EC
/* 00940 80A097E0 C62800F0 */ lwc1 $f8, 0x00F0($s1) ## 000000F0
/* 00944 80A097E4 44813000 */ mtc1 $at, $f6 ## $f6 = 10.00
/* 00948 80A097E8 460C2081 */ sub.s $f2, $f4, $f12
/* 0094C 80A097EC C62400E8 */ lwc1 $f4, 0x00E8($s1) ## 000000E8
/* 00950 80A097F0 C63000E4 */ lwc1 $f16, 0x00E4($s1) ## 000000E4
/* 00954 80A097F4 46064281 */ sub.s $f10, $f8, $f6
/* 00958 80A097F8 E7A4003C */ swc1 $f4, 0x003C($sp)
/* 0095C 80A097FC C62800F4 */ lwc1 $f8, 0x00F4($s1) ## 000000F4
/* 00960 80A09800 44813000 */ mtc1 $at, $f6 ## $f6 = 10.00
/* 00964 80A09804 46105381 */ sub.s $f14, $f10, $f16
/* 00968 80A09808 C7A4003C */ lwc1 $f4, 0x003C($sp)
/* 0096C 80A0980C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00970 80A09810 46064280 */ add.s $f10, $f8, $f6
/* 00974 80A09814 46021202 */ mul.s $f8, $f2, $f2
/* 00978 80A09818 00000000 */ nop
/* 0097C 80A0981C 460E7182 */ mul.s $f6, $f14, $f14
/* 00980 80A09820 46045481 */ sub.s $f18, $f10, $f4
/* 00984 80A09824 46064280 */ add.s $f10, $f8, $f6
/* 00988 80A09828 46129202 */ mul.s $f8, $f18, $f18
/* 0098C 80A0982C 46085000 */ add.s $f0, $f10, $f8
/* 00990 80A09830 44815000 */ mtc1 $at, $f10 ## $f10 = 5.00
/* 00994 80A09834 46000004 */ sqrt.s $f0, $f0
/* 00998 80A09838 46009183 */ div.s $f6, $f18, $f0
/* 0099C 80A0983C 460A3202 */ mul.s $f8, $f6, $f10
/* 009A0 80A09840 46001283 */ div.s $f10, $f2, $f0
/* 009A4 80A09844 E7A80044 */ swc1 $f8, 0x0044($sp)
/* 009A8 80A09848 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 009AC 80A0984C E7A60038 */ swc1 $f6, 0x0038($sp)
/* 009B0 80A09850 44813000 */ mtc1 $at, $f6 ## $f6 = 5.00
/* 009B4 80A09854 00000000 */ nop
/* 009B8 80A09858 46065282 */ mul.s $f10, $f10, $f6
/* 009BC 80A0985C 460A6180 */ add.s $f6, $f12, $f10
/* 009C0 80A09860 C7AA0038 */ lwc1 $f10, 0x0038($sp)
/* 009C4 80A09864 460A3081 */ sub.s $f2, $f6, $f10
/* 009C8 80A09868 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 009CC 80A0986C E7A40028 */ swc1 $f4, 0x0028($sp)
/* 009D0 80A09870 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 009D4 80A09874 E7A60034 */ swc1 $f6, 0x0034($sp)
/* 009D8 80A09878 46007183 */ div.s $f6, $f14, $f0
/* 009DC 80A0987C 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 009E0 80A09880 C60C002C */ lwc1 $f12, 0x002C($s0) ## 0000002C
/* 009E4 80A09884 46043182 */ mul.s $f6, $f6, $f4
/* 009E8 80A09888 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00
/* 009EC 80A0988C 00000000 */ nop
/* 009F0 80A09890 46048101 */ sub.s $f4, $f16, $f4
/* 009F4 80A09894 46062100 */ add.s $f4, $f4, $f6
/* 009F8 80A09898 C7A60034 */ lwc1 $f6, 0x0034($sp)
/* 009FC 80A0989C 46062381 */ sub.s $f14, $f4, $f6
/* 00A00 80A098A0 44813000 */ mtc1 $at, $f6 ## $f6 = 10.00
/* 00A04 80A098A4 C7A40028 */ lwc1 $f4, 0x0028($sp)
/* 00A08 80A098A8 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00A0C 80A098AC 46062100 */ add.s $f4, $f4, $f6
/* 00A10 80A098B0 46082180 */ add.s $f6, $f4, $f8
/* 00A14 80A098B4 44814000 */ mtc1 $at, $f8 ## $f8 = 5.00
/* 00A18 80A098B8 46001103 */ div.s $f4, $f2, $f0
/* 00A1C 80A098BC 460C3481 */ sub.s $f18, $f6, $f12
/* 00A20 80A098C0 46082182 */ mul.s $f6, $f4, $f8
/* 00A24 80A098C4 46007203 */ div.s $f8, $f14, $f0
/* 00A28 80A098C8 46065100 */ add.s $f4, $f10, $f6
/* 00A2C 80A098CC 44815000 */ mtc1 $at, $f10 ## $f10 = 5.00
/* 00A30 80A098D0 E6040024 */ swc1 $f4, 0x0024($s0) ## 00000024
/* 00A34 80A098D4 C7A40034 */ lwc1 $f4, 0x0034($sp)
/* 00A38 80A098D8 460A4182 */ mul.s $f6, $f8, $f10
/* 00A3C 80A098DC 46009283 */ div.s $f10, $f18, $f0
/* 00A40 80A098E0 46062200 */ add.s $f8, $f4, $f6
/* 00A44 80A098E4 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 00A48 80A098E8 E6080028 */ swc1 $f8, 0x0028($s0) ## 00000028
/* 00A4C 80A098EC 46045182 */ mul.s $f6, $f10, $f4
/* 00A50 80A098F0 46066200 */ add.s $f8, $f12, $f6
/* 00A54 80A098F4 1000001B */ beq $zero, $zero, .L80A09964
/* 00A58 80A098F8 E608002C */ swc1 $f8, 0x002C($s0) ## 0000002C
.L80A098FC:
/* 00A5C 80A098FC 0C00B7D5 */ jal func_8002DF54
/* 00A60 80A09900 AE000134 */ sw $zero, 0x0134($s0) ## 00000134
/* 00A64 80A09904 AE000118 */ sw $zero, 0x0118($s0) ## 00000118
/* 00A68 80A09908 3C0A8016 */ lui $t2, %hi(gSaveContext+0xa0)
/* 00A6C 80A0990C 3C0B8012 */ lui $t3, %hi(gUpgradeMasks+0x14)
/* 00A70 80A09910 8D6B71C4 */ lw $t3, %lo(gUpgradeMasks+0x14)($t3)
/* 00A74 80A09914 8D4AE700 */ lw $t2, %lo(gSaveContext+0xa0)($t2)
/* 00A78 80A09918 3C0D8012 */ lui $t5, %hi(gUpgradeShifts+5)
/* 00A7C 80A0991C 91AD71F9 */ lbu $t5, %lo(gUpgradeShifts+5)($t5)
/* 00A80 80A09920 014B6024 */ and $t4, $t2, $t3
/* 00A84 80A09924 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00A88 80A09928 01AC7007 */ srav $t6, $t4, $t5
/* 00A8C 80A0992C 15C10003 */ bne $t6, $at, .L80A0993C
/* 00A90 80A09930 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A94 80A09934 10000002 */ beq $zero, $zero, .L80A09940
/* 00A98 80A09938 24060060 */ addiu $a2, $zero, 0x0060 ## $a2 = 00000060
.L80A0993C:
/* 00A9C 80A0993C 2406007B */ addiu $a2, $zero, 0x007B ## $a2 = 0000007B
.L80A09940:
/* 00AA0 80A09940 3C01447A */ lui $at, 0x447A ## $at = 447A0000
/* 00AA4 80A09944 44815000 */ mtc1 $at, $f10 ## $f10 = 1000.00
/* 00AA8 80A09948 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00AAC 80A0994C 3C0744FA */ lui $a3, 0x44FA ## $a3 = 44FA0000
/* 00AB0 80A09950 0C00BD0D */ jal func_8002F434
/* 00AB4 80A09954 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 00AB8 80A09958 3C0F80A1 */ lui $t7, %hi(func_80A09978) ## $t7 = 80A10000
/* 00ABC 80A0995C 25EF9978 */ addiu $t7, $t7, %lo(func_80A09978) ## $t7 = 80A09978
/* 00AC0 80A09960 AE0F014C */ sw $t7, 0x014C($s0) ## 0000014C
.L80A09964:
/* 00AC4 80A09964 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A09968:
/* 00AC8 80A09968 8FB0001C */ lw $s0, 0x001C($sp)
/* 00ACC 80A0996C 8FB10020 */ lw $s1, 0x0020($sp)
/* 00AD0 80A09970 03E00008 */ jr $ra
/* 00AD4 80A09974 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000

View file

@ -1,39 +0,0 @@
glabel func_80A09978
/* 00AD8 80A09978 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00ADC 80A0997C AFBF001C */ sw $ra, 0x001C($sp)
/* 00AE0 80A09980 AFA50024 */ sw $a1, 0x0024($sp)
/* 00AE4 80A09984 0C00BD04 */ jal Actor_HasParent
/* 00AE8 80A09988 AFA40020 */ sw $a0, 0x0020($sp)
/* 00AEC 80A0998C 10400005 */ beq $v0, $zero, .L80A099A4
/* 00AF0 80A09990 8FA40020 */ lw $a0, 0x0020($sp)
/* 00AF4 80A09994 3C0E80A1 */ lui $t6, %hi(func_80A09A00) ## $t6 = 80A10000
/* 00AF8 80A09998 25CE9A00 */ addiu $t6, $t6, %lo(func_80A09A00) ## $t6 = 80A09A00
/* 00AFC 80A0999C 10000014 */ beq $zero, $zero, .L80A099F0
/* 00B00 80A099A0 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C
.L80A099A4:
/* 00B04 80A099A4 3C0F8016 */ lui $t7, %hi(gSaveContext+0xa0)
/* 00B08 80A099A8 3C188012 */ lui $t8, %hi(gUpgradeMasks+0x14)
/* 00B0C 80A099AC 8F1871C4 */ lw $t8, %lo(gUpgradeMasks+0x14)($t8)
/* 00B10 80A099B0 8DEFE700 */ lw $t7, %lo(gSaveContext+0xa0)($t7)
/* 00B14 80A099B4 3C088012 */ lui $t0, %hi(gUpgradeShifts+5)
/* 00B18 80A099B8 910871F9 */ lbu $t0, %lo(gUpgradeShifts+5)($t0)
/* 00B1C 80A099BC 01F8C824 */ and $t9, $t7, $t8
/* 00B20 80A099C0 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00B24 80A099C4 01194807 */ srav $t1, $t9, $t0
/* 00B28 80A099C8 15210003 */ bne $t1, $at, .L80A099D8
/* 00B2C 80A099CC 8FA50024 */ lw $a1, 0x0024($sp)
/* 00B30 80A099D0 10000002 */ beq $zero, $zero, .L80A099DC
/* 00B34 80A099D4 2406007B */ addiu $a2, $zero, 0x007B ## $a2 = 0000007B
.L80A099D8:
/* 00B38 80A099D8 24060060 */ addiu $a2, $zero, 0x0060 ## $a2 = 00000060
.L80A099DC:
/* 00B3C 80A099DC 3C01447A */ lui $at, 0x447A ## $at = 447A0000
/* 00B40 80A099E0 44812000 */ mtc1 $at, $f4 ## $f4 = 1000.00
/* 00B44 80A099E4 3C0744FA */ lui $a3, 0x44FA ## $a3 = 44FA0000
/* 00B48 80A099E8 0C00BD0D */ jal func_8002F434
/* 00B4C 80A099EC E7A40010 */ swc1 $f4, 0x0010($sp)
.L80A099F0:
/* 00B50 80A099F0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00B54 80A099F4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00B58 80A099F8 03E00008 */ jr $ra
/* 00B5C 80A099FC 00000000 */ nop

View file

@ -1,37 +0,0 @@
.rdata
glabel D_80A0A01C
.asciz "\x1b[32m \n\x1b[m"
.balign 4
.text
glabel func_80A09A00
/* 00B60 80A09A00 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00B64 80A09A04 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00B68 80A09A08 AFA40018 */ sw $a0, 0x0018($sp)
/* 00B6C 80A09A0C AFA5001C */ sw $a1, 0x001C($sp)
/* 00B70 80A09A10 0C042F6F */ jal func_8010BDBC
/* 00B74 80A09A14 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 00B78 80A09A18 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00B7C 80A09A1C 5441000F */ bnel $v0, $at, .L80A09A5C
/* 00B80 80A09A20 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00B84 80A09A24 0C041AF2 */ jal func_80106BC8
/* 00B88 80A09A28 8FA4001C */ lw $a0, 0x001C($sp)
/* 00B8C 80A09A2C 1040000A */ beq $v0, $zero, .L80A09A58
/* 00B90 80A09A30 3C0480A1 */ lui $a0, %hi(D_80A0A01C) ## $a0 = 80A10000
/* 00B94 80A09A34 0C00084C */ jal osSyncPrintf
/* 00B98 80A09A38 2484A01C */ addiu $a0, $a0, %lo(D_80A0A01C) ## $a0 = 80A0A01C
/* 00B9C 80A09A3C 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00BA0 80A09A40 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00BA4 80A09A44 944E0EF2 */ lhu $t6, 0x0EF2($v0) ## 8015F552
/* 00BA8 80A09A48 8FA40018 */ lw $a0, 0x0018($sp)
/* 00BAC 80A09A4C 35CF2000 */ ori $t7, $t6, 0x2000 ## $t7 = 00002000
/* 00BB0 80A09A50 0C00B55C */ jal Actor_Kill
/* 00BB4 80A09A54 A44F0EF2 */ sh $t7, 0x0EF2($v0) ## 8015F552
.L80A09A58:
/* 00BB8 80A09A58 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A09A5C:
/* 00BBC 80A09A5C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00BC0 80A09A60 03E00008 */ jr $ra
/* 00BC4 80A09A64 00000000 */ nop

View file

@ -1,26 +0,0 @@
glabel func_80A09B6C
/* 00CCC 80A09B6C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00CD0 80A09B70 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00CD4 80A09B74 AFA5001C */ sw $a1, 0x001C($sp)
/* 00CD8 80A09B78 8C82017C */ lw $v0, 0x017C($a0) ## 0000017C
/* 00CDC 80A09B7C 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00CE0 80A09B80 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00CE4 80A09B84 50400005 */ beql $v0, $zero, .L80A09B9C
/* 00CE8 80A09B88 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00CEC 80A09B8C 0040F809 */ jalr $ra, $v0
/* 00CF0 80A09B90 AFA70018 */ sw $a3, 0x0018($sp)
/* 00CF4 80A09B94 8FA70018 */ lw $a3, 0x0018($sp)
/* 00CF8 80A09B98 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
.L80A09B9C:
/* 00CFC 80A09B9C 8FA5001C */ lw $a1, 0x001C($sp)
/* 00D00 80A09BA0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00D04 80A09BA4 0C00BB60 */ jal func_8002ED80
/* 00D08 80A09BA8 AFA70018 */ sw $a3, 0x0018($sp)
/* 00D0C 80A09BAC 8FA70018 */ lw $a3, 0x0018($sp)
/* 00D10 80A09BB0 8FA4001C */ lw $a0, 0x001C($sp)
/* 00D14 80A09BB4 0C01A528 */ jal func_800694A0
/* 00D18 80A09BB8 84E50156 */ lh $a1, 0x0156($a3) ## 00000156
/* 00D1C 80A09BBC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00D20 80A09BC0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00D24 80A09BC4 03E00008 */ jr $ra
/* 00D28 80A09BC8 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_80A09BCC
/* 00D2C 80A09BCC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00D30 80A09BD0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00D34 80A09BD4 AFA5001C */ sw $a1, 0x001C($sp)
/* 00D38 80A09BD8 0C00BB60 */ jal func_8002ED80
/* 00D3C 80A09BDC 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00D40 80A09BE0 8FA4001C */ lw $a0, 0x001C($sp)
/* 00D44 80A09BE4 0C01A528 */ jal func_800694A0
/* 00D48 80A09BE8 24050013 */ addiu $a1, $zero, 0x0013 ## $a1 = 00000013
/* 00D4C 80A09BEC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00D50 80A09BF0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00D54 80A09BF4 03E00008 */ jr $ra
/* 00D58 80A09BF8 00000000 */ nop

View file

@ -1,18 +0,0 @@
glabel func_80A09BFC
/* 00D5C 80A09BFC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00D60 80A09C00 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00D64 80A09C04 AFA60020 */ sw $a2, 0x0020($sp)
/* 00D68 80A09C08 AFA5001C */ sw $a1, 0x001C($sp)
/* 00D6C 80A09C0C 0C00BB60 */ jal func_8002ED80
/* 00D70 80A09C10 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00D74 80A09C14 87AE0022 */ lh $t6, 0x0022($sp)
/* 00D78 80A09C18 3C0580A1 */ lui $a1, %hi(D_80A09E00) ## $a1 = 80A10000
/* 00D7C 80A09C1C 8FA4001C */ lw $a0, 0x001C($sp)
/* 00D80 80A09C20 000E7840 */ sll $t7, $t6, 1
/* 00D84 80A09C24 00AF2821 */ addu $a1, $a1, $t7
/* 00D88 80A09C28 0C01A528 */ jal func_800694A0
/* 00D8C 80A09C2C 84A59E00 */ lh $a1, %lo(D_80A09E00)($a1)
/* 00D90 80A09C30 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00D94 80A09C34 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00D98 80A09C38 03E00008 */ jr $ra
/* 00D9C 80A09C3C 00000000 */ nop

View file

@ -1,90 +0,0 @@
.rdata
glabel D_80A0A048
.asciz "../z_en_ex_item.c"
.balign 4
glabel D_80A0A05C
.asciz "../z_en_ex_item.c"
.balign 4
glabel D_80A0A070
.asciz "../z_en_ex_item.c"
.balign 4
.text
glabel func_80A09C40
/* 00DA0 80A09C40 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00DA4 80A09C44 AFBF001C */ sw $ra, 0x001C($sp)
/* 00DA8 80A09C48 AFB00018 */ sw $s0, 0x0018($sp)
/* 00DAC 80A09C4C AFA40048 */ sw $a0, 0x0048($sp)
/* 00DB0 80A09C50 AFA5004C */ sw $a1, 0x004C($sp)
/* 00DB4 80A09C54 AFA60050 */ sw $a2, 0x0050($sp)
/* 00DB8 80A09C58 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00DBC 80A09C5C 3C0680A1 */ lui $a2, %hi(D_80A0A048) ## $a2 = 80A10000
/* 00DC0 80A09C60 24C6A048 */ addiu $a2, $a2, %lo(D_80A0A048) ## $a2 = 80A0A048
/* 00DC4 80A09C64 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 00DC8 80A09C68 24070370 */ addiu $a3, $zero, 0x0370 ## $a3 = 00000370
/* 00DCC 80A09C6C 0C031AB1 */ jal Graph_OpenDisps
/* 00DD0 80A09C70 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00DD4 80A09C74 8FAF004C */ lw $t7, 0x004C($sp)
/* 00DD8 80A09C78 0C025183 */ jal func_8009460C
/* 00DDC 80A09C7C 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 00DE0 80A09C80 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00DE4 80A09C84 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000
/* 00DE8 80A09C88 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003
/* 00DEC 80A09C8C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00DF0 80A09C90 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
/* 00DF4 80A09C94 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00DF8 80A09C98 8FA8004C */ lw $t0, 0x004C($sp)
/* 00DFC 80A09C9C 3C0580A1 */ lui $a1, %hi(D_80A0A05C) ## $a1 = 80A10000
/* 00E00 80A09CA0 24A5A05C */ addiu $a1, $a1, %lo(D_80A0A05C) ## $a1 = 80A0A05C
/* 00E04 80A09CA4 8D040000 */ lw $a0, 0x0000($t0) ## 00000000
/* 00E08 80A09CA8 24060377 */ addiu $a2, $zero, 0x0377 ## $a2 = 00000377
/* 00E0C 80A09CAC 0C0346A2 */ jal Matrix_NewMtx
/* 00E10 80A09CB0 AFA20030 */ sw $v0, 0x0030($sp)
/* 00E14 80A09CB4 8FA30030 */ lw $v1, 0x0030($sp)
/* 00E18 80A09CB8 3C0ADB06 */ lui $t2, 0xDB06 ## $t2 = DB060000
/* 00E1C 80A09CBC 354A0020 */ ori $t2, $t2, 0x0020 ## $t2 = DB060020
/* 00E20 80A09CC0 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00E24 80A09CC4 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00E28 80A09CC8 3C0480A1 */ lui $a0, %hi(D_80A09E08) ## $a0 = 80A10000
/* 00E2C 80A09CCC 3C198016 */ lui $t9, %hi(gSegments)
/* 00E30 80A09CD0 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 00E34 80A09CD4 AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0
/* 00E38 80A09CD8 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 00E3C 80A09CDC 8FAB0050 */ lw $t3, 0x0050($sp)
/* 00E40 80A09CE0 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 00E44 80A09CE4 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 00E48 80A09CE8 000B6080 */ sll $t4, $t3, 2
/* 00E4C 80A09CEC 008C2021 */ addu $a0, $a0, $t4
/* 00E50 80A09CF0 8C849E08 */ lw $a0, %lo(D_80A09E08)($a0)
/* 00E54 80A09CF4 3C0C0404 */ lui $t4, %hi(D_0403F070) ## $t4 = 04040000
/* 00E58 80A09CF8 258CF070 */ addiu $t4, $t4, %lo(D_0403F070) ## $t4 = 0403F070
/* 00E5C 80A09CFC 00047100 */ sll $t6, $a0, 4
/* 00E60 80A09D00 000E7F02 */ srl $t7, $t6, 28
/* 00E64 80A09D04 000FC080 */ sll $t8, $t7, 2
/* 00E68 80A09D08 0338C821 */ addu $t9, $t9, $t8
/* 00E6C 80A09D0C 8F396FA8 */ lw $t9, %lo(gSegments)($t9)
/* 00E70 80A09D10 00816824 */ and $t5, $a0, $at
/* 00E74 80A09D14 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00E78 80A09D18 01B94021 */ addu $t0, $t5, $t9
/* 00E7C 80A09D1C 01014821 */ addu $t1, $t0, $at
/* 00E80 80A09D20 AC490004 */ sw $t1, 0x0004($v0) ## 00000004
/* 00E84 80A09D24 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00E88 80A09D28 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000
/* 00E8C 80A09D2C 3C0680A1 */ lui $a2, %hi(D_80A0A070) ## $a2 = 80A10000
/* 00E90 80A09D30 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 00E94 80A09D34 AE0A02C0 */ sw $t2, 0x02C0($s0) ## 000002C0
/* 00E98 80A09D38 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 00E9C 80A09D3C AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 00EA0 80A09D40 8FAE004C */ lw $t6, 0x004C($sp)
/* 00EA4 80A09D44 24C6A070 */ addiu $a2, $a2, %lo(D_80A0A070) ## $a2 = 80A0A070
/* 00EA8 80A09D48 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 00EAC 80A09D4C 2407037D */ addiu $a3, $zero, 0x037D ## $a3 = 0000037D
/* 00EB0 80A09D50 0C031AD5 */ jal Graph_CloseDisps
/* 00EB4 80A09D54 8DC50000 */ lw $a1, 0x0000($t6) ## 00000000
/* 00EB8 80A09D58 8FBF001C */ lw $ra, 0x001C($sp)
/* 00EBC 80A09D5C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00EC0 80A09D60 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 00EC4 80A09D64 03E00008 */ jr $ra
/* 00EC8 80A09D68 00000000 */ nop

View file

@ -1,32 +0,0 @@
glabel func_80A09D6C
/* 00ECC 80A09D6C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00ED0 80A09D70 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00ED4 80A09D74 AFA5001C */ sw $a1, 0x001C($sp)
/* 00ED8 80A09D78 8C82017C */ lw $v0, 0x017C($a0) ## 0000017C
/* 00EDC 80A09D7C 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00EE0 80A09D80 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00EE4 80A09D84 50400005 */ beql $v0, $zero, .L80A09D9C
/* 00EE8 80A09D88 8CE20180 */ lw $v0, 0x0180($a3) ## 00000180
/* 00EEC 80A09D8C 0040F809 */ jalr $ra, $v0
/* 00EF0 80A09D90 AFA70018 */ sw $a3, 0x0018($sp)
/* 00EF4 80A09D94 8FA70018 */ lw $a3, 0x0018($sp)
/* 00EF8 80A09D98 8CE20180 */ lw $v0, 0x0180($a3) ## 00000180
.L80A09D9C:
/* 00EFC 80A09D9C 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00F00 80A09DA0 8FA5001C */ lw $a1, 0x001C($sp)
/* 00F04 80A09DA4 10400004 */ beq $v0, $zero, .L80A09DB8
/* 00F08 80A09DA8 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00F0C 80A09DAC 0040F809 */ jalr $ra, $v0
/* 00F10 80A09DB0 AFA70018 */ sw $a3, 0x0018($sp)
/* 00F14 80A09DB4 8FA70018 */ lw $a3, 0x0018($sp)
.L80A09DB8:
/* 00F18 80A09DB8 8FA4001C */ lw $a0, 0x001C($sp)
/* 00F1C 80A09DBC 0C01A528 */ jal func_800694A0
/* 00F20 80A09DC0 84E50156 */ lh $a1, 0x0156($a3) ## 00000156
/* 00F24 80A09DC4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00F28 80A09DC8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00F2C 80A09DCC 03E00008 */ jr $ra
/* 00F30 80A09DD0 00000000 */ nop
/* 00F34 80A09DD4 00000000 */ nop
/* 00F38 80A09DD8 00000000 */ nop
/* 00F3C 80A09DDC 00000000 */ nop

View file

@ -1,22 +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 En_Ex_Item_InitVars
.word 0x01680600, 0x00000030, 0x00010000, 0x00000184
.word EnExItem_Init
.word EnExItem_Destroy
.word EnExItem_Update
.word EnExItem_Draw
glabel D_80A09E00
.word 0x00630064, 0x00650000
glabel D_80A09E08
.word 0x0403F140, 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_80A0A180
.incbin "baserom/ovl_En_Ex_Item", 0x12E0, 0x00000290

View file

@ -1221,6 +1221,7 @@ Gfx* func_800944A0(Gfx* gfx);
void func_80094520(GraphicsContext* gfxCtx);
void func_8009457C(Gfx** gfxp);
void func_800945A0(GraphicsContext* gfxCtx);
void func_8009460C(GraphicsContext* gfxCtx);
void func_80094678(GraphicsContext* gfxCtx);
Gfx* func_800946E4(Gfx* gfx);
Gfx* func_800947AC(Gfx* gfx);

View file

@ -49,7 +49,7 @@ extern u8 D_04038FB0[];
extern u32 D_0403B030;
extern u32 D_0403BBA0;
extern u32 D_0403BCD8;
extern u32 D_0403F070;
extern Gfx D_0403F070[];
extern Gfx D_04042440[];
//extern ? D_04048160;
extern u32 D_04048180;

3
spec
View file

@ -2215,8 +2215,7 @@ endseg
beginseg
name "ovl_En_Ex_Item"
include "build/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.o"
include "build/data/overlays/actors/z_en_ex_item.data.o"
include "build/data/overlays/actors/z_en_ex_item.reloc.o"
include "build/src/overlays/actors/ovl_En_Ex_Item/ovl_En_Ex_Item_reloc.o"
endseg
beginseg

View file

@ -782,7 +782,7 @@ void func_8001F080(EnItem00* this, GlobalContext* globalCtx) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_item00.c", 1607),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_OPA_DISP++, &D_0403F070);
gSPDisplayList(POLY_OPA_DISP++, D_0403F070);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1611);
}

View file

@ -1,6 +1,7 @@
#include "z_en_bom_bowl_man.h"
#include "vt.h"
#include "overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.h"
#include "overlays/actors/ovl_En_Ex_Item/z_en_ex_item.h"
#define FLAGS 0x08000039
@ -249,8 +250,8 @@ void EnBomBowMan_RunGame(EnBomBowlMan* this, GlobalContext* globalCtx) {
this->actor.textId = 0x1A;
this->dialogState = 4;
this->minigamePlayStatus = 0;
if ((this->exItem != NULL) && (this->exItem->actor.update != 0)) {
this->exItem->unk_160 = 1;
if ((this->exItem != NULL) && (this->exItem->actor.update != NULL)) {
this->exItem->killItem = true;
this->exItem = NULL;
}
globalCtx->bombchuBowlingStatus = 0;
@ -379,35 +380,36 @@ void EnBomBowMan_ChooseShowPrize(EnBomBowlMan* this, GlobalContext* globalCtx) {
if (this->prizeRevealTimer == 0) {
switch (this->prizeSelect) {
case 0:
prizeTemp = 0;
prizeTemp = EXITEM_BOMB_BAG_BOWLING;
if (gSaveContext.itemGetInf[1] & 2) {
prizeTemp = 4;
prizeTemp = EXITEM_PURPLE_RUPEE_BOWLING;
}
break;
case 1:
prizeTemp = 4;
prizeTemp = EXITEM_PURPLE_RUPEE_BOWLING;
break;
case 2:
prizeTemp = 2;
prizeTemp = EXITEM_BOMBCHUS_BOWLING;
break;
case 3:
prizeTemp = 1;
prizeTemp = EXITEM_HEART_PIECE_BOWLING;
if (gSaveContext.itemGetInf[1] & 4) {
prizeTemp = 4;
prizeTemp = EXITEM_PURPLE_RUPEE_BOWLING;
}
break;
case 4:
prizeTemp = 3;
prizeTemp = EXITEM_BOMBS_BOWLING;
break;
}
this->prizeIndex = prizeTemp;
if (BREG(7)) {
this->prizeIndex = BREG(7) - 1;
}
this->exItem = (EnExItem*)Actor_SpawnAsChild(
&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_EX_ITEM,
sPrizePosOffset[this->prizeIndex].x + 148.0f, sPrizePosOffset[this->prizeIndex].y + 40.0f,
sPrizePosOffset[this->prizeIndex].z + 300.0f, 0, sPrizeRot[this->prizeIndex], 0, this->prizeIndex + 5);
this->exItem = (EnExItem*)Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_EX_ITEM,
sPrizePosOffset[this->prizeIndex].x + 148.0f,
sPrizePosOffset[this->prizeIndex].y + 40.0f,
sPrizePosOffset[this->prizeIndex].z + 300.0f, 0,
sPrizeRot[this->prizeIndex], 0, this->prizeIndex + EXITEM_COUNTER);
if (!this->startedPlaying) {
this->bowlPit = (EnBomBowlPit*)Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx,
ACTOR_EN_BOM_BOWL_PIT, 0.0f, 90.0f, -860.0f, 0, 0, 0, 0);

View file

@ -1,6 +1,7 @@
#include "z_en_bom_bowl_pit.h"
#include "vt.h"
#include "overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.h"
#include "overlays/actors/ovl_En_Ex_Item/z_en_ex_item.h"
#define FLAGS 0x00000010
@ -155,12 +156,12 @@ void EnBomBowlPit_SpawnPrize(EnBomBowlPit* this, GlobalContext* globalCtx) {
}
void EnBomBowlPit_SetupGivePrize(EnBomBowlPit* this, GlobalContext* globalCtx) {
if (this->unk_156 != 0) {
if (this->exItemDone != 0) {
switch (this->prizeIndex) {
case 0:
case EXITEM_BOMB_BAG_BOWLING:
gSaveContext.itemGetInf[1] |= 2;
break;
case 1:
case EXITEM_HEART_PIECE_BOWLING:
gSaveContext.itemGetInf[1] |= 4;
break;
}
@ -206,7 +207,7 @@ void EnBomBowlPit_Reset(EnBomBowlPit* this, GlobalContext* globalCtx) {
// Ah recovery! (?)
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ あぁ回復! ☆☆☆☆☆ \n" VT_RST);
}
this->unk_156 = 0;
this->exItemDone = 0;
this->status = 2;
this->actionFunc = EnBomBowlPit_SetupDetectHit;
}

View file

@ -15,7 +15,7 @@ typedef struct EnBomBowlPit {
/* 0x0150 */ u16 unk_150;
/* 0x0152 */ s16 camId;
/* 0x0154 */ s16 unk_154;
/* 0x0156 */ s16 unk_156; // Set by EnExItem?
/* 0x0156 */ s16 exItemDone; // Set by EnExItem?
/* 0x0158 */ s16 timer;
/* 0x015A */ s16 prizeIndex;
/* 0x015C */ s16 start;

View file

@ -7,6 +7,7 @@
#include "z_en_changer.h"
#include "vt.h"
#include "overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h"
#include "overlays/actors/ovl_En_Ex_Item/z_en_ex_item.h"
#define FLAGS 0x00000000
@ -246,7 +247,7 @@ void EnChanger_OpenChests(EnChanger* this, GlobalContext* globalCtx) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_EX_ITEM, xPos, yPos, zPos, 0, 0, 0, 0xF);
Flags_SetSwitch(globalCtx, 0x32);
} else {
temp_s0_2 = (s16)(this->rightChestGetItemId - 0x72) + 0xA;
temp_s0_2 = (s16)(this->rightChestGetItemId - GI_RUPEE_GREEN_LOSE) + EXITEM_CHEST;
// Open right treasure (chest)
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 右宝開く ☆☆☆☆☆ %d\n" VT_RST, temp_s0_2);
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_EX_ITEM, xPos, yPos, zPos, 0, 0, 0,

View file

@ -1,4 +1,12 @@
/*
* File: z_en_ex_item.c
* Overlay: ovl_En_Ex_Item
* Description: Minigame prize items
*/
#include "z_en_ex_item.h"
#include "vt.h"
#include "overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.h"
#define FLAGS 0x00000030
@ -9,7 +17,22 @@ void EnExItem_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnExItem_Update(Actor* thisx, GlobalContext* globalCtx);
void EnExItem_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void EnExItem_DrawItems(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_DrawHeartPiece(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_DrawRupee(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_DrawKey(EnExItem* this, GlobalContext* globalCtx, s32 index);
void EnExItem_DrawMagic(EnExItem* this, GlobalContext* globalCtx, s16 magicIndex);
void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_BowlPrize(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_SetupBowlCounter(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_BowlCounter(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_ExitChest(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_FairyMagic(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_TargetPrizeApproach(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_TargetPrizeGive(EnExItem* this, GlobalContext* globalCtx);
void EnExItem_TargetPrizeFinish(EnExItem* this, GlobalContext* globalCtx);
const ActorInit En_Ex_Item_InitVars = {
ACTOR_EN_EX_ITEM,
ACTORTYPE_PROP,
@ -21,39 +44,477 @@ const ActorInit En_Ex_Item_InitVars = {
(ActorFunc)EnExItem_Update,
(ActorFunc)EnExItem_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/EnExItem_Destroy.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/EnExItem_Init.s")
void EnExItem_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
void EnExItem_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnExItem* this = THIS;
this->actor.flags &= ~1;
this->type = this->actor.params & 0xFF;
this->unusedParam = (this->actor.params >> 8) & 0xFF;
osSyncPrintf("\n\n");
// What will come out?
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ なにがでるかな? ☆☆☆☆☆ %d\n" VT_RST, this->type);
// What will come out?
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ なにがでるかな? ☆☆☆☆☆ %d\n" VT_RST, this->unusedParam);
this->initPos = this->actor.posRot.pos;
this->getItemObjId = -1;
switch (this->type) {
case EXITEM_BOMB_BAG_BOWLING:
case EXITEM_BOMB_BAG_COUNTER:
this->getItemObjId = OBJECT_GI_BOMBPOUCH;
break;
case EXITEM_HEART_PIECE_BOWLING:
case EXITEM_HEART_PIECE_COUNTER:
this->getItemObjId = OBJECT_GI_HEARTS;
break;
case EXITEM_BOMBCHUS_BOWLING:
case EXITEM_BOMBCHUS_COUNTER:
this->getItemObjId = OBJECT_GI_BOMB_2;
break;
case EXITEM_BOMBS_BOWLING:
case EXITEM_BOMBS_COUNTER:
this->getItemObjId = OBJECT_GI_BOMB_1;
break;
case EXITEM_PURPLE_RUPEE_BOWLING:
case EXITEM_PURPLE_RUPEE_COUNTER:
case EXITEM_GREEN_RUPEE_CHEST:
case EXITEM_BLUE_RUPEE_CHEST:
case EXITEM_RED_RUPEE_CHEST:
case EXITEM_13:
case EXITEM_14:
this->getItemObjId = OBJECT_GI_RUPY;
break;
case EXITEM_SMALL_KEY_CHEST:
this->scale = 0.05f;
this->actor.velocity.y = 10.0f;
this->timer = 7;
this->actionFunc = EnExItem_ExitChest;
break;
case EXITEM_MAGIC_FIRE:
case EXITEM_MAGIC_WIND:
case EXITEM_MAGIC_DARK:
this->getItemObjId = OBJECT_GI_GODDESS;
break;
case EXITEM_BULLET_BAG:
this->getItemObjId = OBJECT_GI_DEKUPOUCH;
}
if (this->getItemObjId >= 0) {
this->objectIdx = Object_GetIndex(&globalCtx->objectCtx, this->getItemObjId);
this->actor.draw = NULL;
if (this->objectIdx < 0) {
Actor_Kill(&this->actor);
// What?
osSyncPrintf("なにみの? %d\n", this->actor.params);
// bank is funny
osSyncPrintf(VT_FGCOL(PURPLE) " バンクおかしいしぞ!%d\n" VT_RST "\n", this->actor.params);
return;
}
this->actionFunc = EnExItem_WaitForObject;
}
}
void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx) {
s32 onCounter;
if (Object_IsLoaded(&globalCtx->objectCtx, this->objectIdx)) {
// End of transfer
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 転送終了 ☆☆☆☆☆ %d\n" VT_RST, this->actor.params, this);
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ 転送終了 ☆☆☆☆☆ %d\n" VT_RST, this->actor.params, this);
osSyncPrintf(VT_FGCOL(BLUE) "☆☆☆☆☆ 転送終了 ☆☆☆☆☆ %d\n" VT_RST, this->actor.params, this);
osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 転送終了 ☆☆☆☆☆ %d\n" VT_RST, this->actor.params, this);
osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 転送終了 ☆☆☆☆☆ %d\n\n" VT_RST, this->actor.params, this);
this->actor.objBankIndex = this->objectIdx;
this->actor.draw = EnExItem_Draw;
this->stopRotate = false;
onCounter = false;
switch (this->type) {
case EXITEM_BOMB_BAG_COUNTER:
onCounter = true;
case EXITEM_BOMB_BAG_BOWLING:
this->unk_17C = func_8002EBCC;
this->drawItemId = 0x18;
this->timer = 65;
this->prizeRotateTimer = 35;
this->scale = 0.5f;
if (onCounter == 0) {
this->actionFunc = EnExItem_BowlPrize;
} else {
this->actionFunc = EnExItem_SetupBowlCounter;
this->actor.shape.unk_08 = -18.0f;
}
break;
case EXITEM_HEART_PIECE_COUNTER:
onCounter = true;
case EXITEM_HEART_PIECE_BOWLING:
this->unk_17C = func_8002ED80;
this->timer = 65;
this->prizeRotateTimer = 35;
this->scale = 0.5f;
if (!onCounter) {
func_80078884(NA_SE_SY_PIECE_OF_HEART);
this->actionFunc = EnExItem_BowlPrize;
} else {
this->actionFunc = EnExItem_SetupBowlCounter;
this->actor.shape.unk_08 = -10.0f;
}
break;
case EXITEM_BOMBCHUS_COUNTER:
onCounter = true;
case EXITEM_BOMBCHUS_BOWLING:
this->unk_17C = func_8002EBCC;
this->drawItemId = 39;
this->timer = 65;
this->prizeRotateTimer = 35;
this->scale = 0.5f;
if (!onCounter) {
this->actionFunc = EnExItem_BowlPrize;
} else {
this->actionFunc = EnExItem_SetupBowlCounter;
}
break;
case EXITEM_BOMBS_BOWLING:
case EXITEM_BOMBS_COUNTER:
this->unk_17C = func_8002EBCC;
this->drawItemId = 0x1F;
this->timer = 65;
this->prizeRotateTimer = 35;
this->scale = 0.5f;
this->unkFloat = 0.5f;
if (this->type == EXITEM_BOMBS_BOWLING) {
this->actionFunc = EnExItem_BowlPrize;
} else {
this->actionFunc = EnExItem_SetupBowlCounter;
this->actor.shape.unk_08 = 10.0f;
}
break;
case EXITEM_PURPLE_RUPEE_BOWLING:
case EXITEM_PURPLE_RUPEE_COUNTER:
this->unk_17C = func_8002EBCC;
this->unk_180 = func_8002ED80;
this->drawItemId = 0x70;
this->timer = 65;
this->prizeRotateTimer = 35;
this->scale = 0.5f;
this->unkFloat = 0.5f;
if (this->type == EXITEM_PURPLE_RUPEE_BOWLING) {
this->actionFunc = EnExItem_BowlPrize;
} else {
this->actionFunc = EnExItem_SetupBowlCounter;
this->actor.shape.unk_08 = 40.0f;
}
break;
case EXITEM_GREEN_RUPEE_CHEST:
case EXITEM_BLUE_RUPEE_CHEST:
case EXITEM_RED_RUPEE_CHEST:
case EXITEM_13:
case EXITEM_14:
this->unk_17C = func_8002EBCC;
this->unk_180 = func_8002ED80;
this->timer = 7;
this->scale = 0.5f;
this->unkFloat = 0.5f;
this->actor.velocity.y = 10.0f;
switch (this->type) {
case EXITEM_GREEN_RUPEE_CHEST:
this->drawItemId = 0x6C;
break;
case EXITEM_BLUE_RUPEE_CHEST:
this->drawItemId = 0x6D;
break;
case EXITEM_RED_RUPEE_CHEST:
this->drawItemId = 0x6E;
break;
case EXITEM_14:
this->drawItemId = 0x70;
break;
}
this->actionFunc = EnExItem_ExitChest;
break;
case EXITEM_MAGIC_FIRE:
case EXITEM_MAGIC_WIND:
case EXITEM_MAGIC_DARK:
this->scale = 0.35f;
this->actionFunc = EnExItem_FairyMagic;
break;
case EXITEM_BULLET_BAG:
this->unk_17C = func_8002EBCC;
this->drawItemId = 0x6B;
this->scale = 0.1f;
this->timer = 80;
this->prizeRotateTimer = 35;
this->actionFunc = EnExItem_TargetPrizeApproach;
break;
case EXITEM_SMALL_KEY_CHEST:
break;
}
}
}
void EnExItem_BowlPrize(EnExItem* this, GlobalContext* globalCtx) {
s32 pad;
f32 tmpf1;
f32 tmpf2;
f32 tmpf3;
f32 tmpf4;
f32 tmpf5;
f32 tmpf6;
f32 tmpf7;
f32 sp3C;
if (!this->stopRotate) {
this->actor.shape.rot.y += 0x1000;
if ((this->prizeRotateTimer == 0) && ((this->actor.shape.rot.y & 0xFFFF) == 0x9000)) {
this->stopRotate++;
}
} else {
Math_SmoothStepToS(&this->actor.shape.rot.y, 0, 5, 0x1000, 0);
}
if (this->timer != 0) {
if (this->prizeRotateTimer != 0) {
sp3C = 250.0f;
if (this->type == EXITEM_BOMBCHUS_BOWLING) {
sp3C = 220.0f;
}
tmpf1 = globalCtx->view.lookAt.x - globalCtx->view.eye.x;
tmpf2 = globalCtx->view.lookAt.y - globalCtx->view.eye.y;
tmpf3 = globalCtx->view.lookAt.z + sp3C - globalCtx->view.eye.z;
tmpf4 = sqrtf(SQ(tmpf1) + SQ(tmpf2) + SQ(tmpf3));
tmpf5 = (tmpf1 / tmpf4) * 5.0f;
tmpf6 = (tmpf2 / tmpf4) * 5.0f;
tmpf7 = (tmpf3 / tmpf4) * 5.0f;
tmpf1 = globalCtx->view.eye.x + tmpf5 - this->actor.posRot.pos.x;
tmpf2 = globalCtx->view.eye.y + tmpf6 - this->actor.posRot.pos.y;
tmpf3 = globalCtx->view.eye.z + tmpf7 - this->actor.posRot.pos.z;
this->actor.posRot.pos.x += (tmpf1 / tmpf4) * 5.0f;
this->actor.posRot.pos.y += (tmpf2 / tmpf4) * 5.0f;
this->actor.posRot.pos.z += (tmpf3 / tmpf4) * 5.0f;
}
} else {
// parent
osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 母親ー? ☆☆☆☆☆ %x\n" VT_RST, this->actor.parent);
// Can it move?
osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 動いてねー? ☆☆☆☆☆ %x\n" VT_RST, this->actor.parent->update);
if ((this->actor.parent != NULL) && (this->actor.parent->update != NULL)) {
((EnBomBowlPit*)this->actor.parent)->exItemDone = 1;
// It can't move!
osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ さぁきえるぞ! ☆☆☆☆☆ \n" VT_RST);
}
Actor_Kill(&this->actor);
}
}
void EnExItem_SetupBowlCounter(EnExItem* this, GlobalContext* globalCtx) {
this->actor.posRot.rot.y = this->actor.shape.rot.y = 0x4268;
this->actionFunc = EnExItem_BowlCounter;
}
void EnExItem_BowlCounter(EnExItem* this, GlobalContext* globalCtx) {
this->actor.shape.rot.y += 0x800;
if (this->killItem) {
Actor_Kill(&this->actor);
}
}
void EnExItem_ExitChest(EnExItem* this, GlobalContext* globalCtx) {
this->actor.shape.rot.y += 0x1000;
if (this->timer != 0) {
if (this->timer == 1) {
this->chestKillTimer = 20;
}
} else {
this->actor.velocity.y = 0.0f;
if (this->chestKillTimer == 0) {
Actor_Kill(&this->actor);
}
}
Actor_MoveForward(&this->actor);
}
void EnExItem_FairyMagic(EnExItem* this, GlobalContext* globalCtx) {
this->actor.shape.rot.y += 0x800;
}
void EnExItem_TargetPrizeApproach(EnExItem* this, GlobalContext* globalCtx) {
f32 tmpf1;
f32 tmpf2;
f32 tmpf3;
f32 tmpf4;
f32 tmpf5;
f32 tmpf6;
f32 tmpf7;
Math_ApproachF(&this->scale, 0.8f, 0.1f, 0.02f);
if (!this->stopRotate) {
this->actor.shape.rot.y += 0x1000;
if ((this->prizeRotateTimer == 0) && ((this->actor.shape.rot.y & 0xFFFF) == 0x9000)) {
this->stopRotate++;
}
} else {
Math_SmoothStepToS(&this->actor.shape.rot.y, -0x4000, 5, 0x1000, 0);
}
if (this->timer != 0) {
if (this->prizeRotateTimer != 0) {
tmpf1 = globalCtx->view.lookAt.x - globalCtx->view.eye.x;
tmpf2 = globalCtx->view.lookAt.y - 10.0f - globalCtx->view.eye.y;
tmpf3 = globalCtx->view.lookAt.z + 10.0f - globalCtx->view.eye.z;
tmpf4 = sqrtf(SQ(tmpf1) + SQ(tmpf2) + SQ(tmpf3));
tmpf5 = (tmpf1 / tmpf4) * 5.0f;
tmpf6 = (tmpf2 / tmpf4) * 5.0f;
tmpf7 = (tmpf3 / tmpf4) * 5.0f;
tmpf1 = globalCtx->view.eye.x + tmpf5 - this->actor.posRot.pos.x;
tmpf2 = globalCtx->view.eye.y - 10.0f + tmpf6 - this->actor.posRot.pos.y;
tmpf3 = globalCtx->view.eye.z + 10.0f + tmpf7 - this->actor.posRot.pos.z;
this->actor.posRot.pos.x += (tmpf1 / tmpf4) * 5.0f;
this->actor.posRot.pos.y += (tmpf2 / tmpf4) * 5.0f;
this->actor.posRot.pos.z += (tmpf3 / tmpf4) * 5.0f;
}
} else {
s32 itemId;
this->actor.draw = NULL;
func_8002DF54(globalCtx, NULL, 7);
this->actor.parent = NULL;
if (CUR_UPG_VALUE(UPG_BULLET_BAG) == 1) {
itemId = GI_BULLET_BAG_40;
} else {
itemId = GI_BULLET_BAG_50;
}
func_8002F434(&this->actor, globalCtx, itemId, 2000.0f, 1000.0f);
this->actionFunc = EnExItem_TargetPrizeGive;
}
}
void EnExItem_TargetPrizeGive(EnExItem* this, GlobalContext* globalCtx) {
s32 itemId;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09054.s")
if (Actor_HasParent(&this->actor, globalCtx)) {
this->actionFunc = EnExItem_TargetPrizeFinish;
} else {
itemId = (CUR_UPG_VALUE(UPG_BULLET_BAG) == 2) ? GI_BULLET_BAG_50 : GI_BULLET_BAG_40;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09434.s")
func_8002F434(&this->actor, globalCtx, itemId, 2000.0f, 1000.0f);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A0964C.s")
void EnExItem_TargetPrizeFinish(EnExItem* this, GlobalContext* globalCtx) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) {
// Successful completion
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST);
gSaveContext.itemGetInf[1] |= 0x2000;
Actor_Kill(&this->actor);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09670.s")
void EnExItem_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnExItem* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A096A8.s")
if (this->timer != 0) {
this->timer--;
}
if (this->chestKillTimer != 0) {
this->chestKillTimer--;
}
if (this->prizeRotateTimer != 0) {
this->prizeRotateTimer--;
}
this->actionFunc(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09710.s")
void EnExItem_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnExItem* this = THIS;
s32 magicType;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09724.s")
Actor_SetScale(&this->actor, this->scale);
switch (this->type) {
case EXITEM_BOMB_BAG_BOWLING:
case EXITEM_BOMBCHUS_BOWLING:
case EXITEM_BOMBS_BOWLING:
case EXITEM_BOMB_BAG_COUNTER:
case EXITEM_BOMBCHUS_COUNTER:
case EXITEM_BOMBS_COUNTER:
case EXITEM_BULLET_BAG:
EnExItem_DrawItems(this, globalCtx);
break;
case EXITEM_HEART_PIECE_BOWLING:
case EXITEM_HEART_PIECE_COUNTER:
EnExItem_DrawHeartPiece(this, globalCtx);
break;
case EXITEM_PURPLE_RUPEE_BOWLING:
case EXITEM_PURPLE_RUPEE_COUNTER:
case EXITEM_GREEN_RUPEE_CHEST:
case EXITEM_BLUE_RUPEE_CHEST:
case EXITEM_RED_RUPEE_CHEST:
case EXITEM_13:
case EXITEM_14:
EnExItem_DrawRupee(this, globalCtx);
break;
case EXITEM_SMALL_KEY_CHEST:
EnExItem_DrawKey(this, globalCtx, 0);
break;
case EXITEM_MAGIC_FIRE:
case EXITEM_MAGIC_WIND:
case EXITEM_MAGIC_DARK:
magicType = this->type - EXITEM_MAGIC_FIRE;
EnExItem_DrawMagic(this, globalCtx, magicType);
break;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09978.s")
void EnExItem_DrawItems(EnExItem* this, GlobalContext* globalCtx) {
if (this->unk_17C != NULL) {
this->unk_17C(&this->actor, globalCtx, 0);
}
if (this) {}
func_8002ED80(&this->actor, globalCtx, 0);
func_800694A0(globalCtx, this->drawItemId);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09A00.s")
void EnExItem_DrawHeartPiece(EnExItem* this, GlobalContext* globalCtx) {
func_8002ED80(&this->actor, globalCtx, 0);
func_800694A0(globalCtx, 0x13);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/EnExItem_Update.s")
void EnExItem_DrawMagic(EnExItem* this, GlobalContext* globalCtx, s16 magicIndex) {
static s16 drawItemIds[] = { 0x63, 0x64, 0x65 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/EnExItem_Draw.s")
func_8002ED80(&this->actor, globalCtx, 0);
func_800694A0(globalCtx, drawItemIds[magicIndex]);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09B6C.s")
void EnExItem_DrawKey(EnExItem* this, GlobalContext* globalCtx, s32 index) {
static s32 keySegments[] = { 0x0403F140 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09BCC.s")
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ex_item.c", 880);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09BFC.s")
func_8009460C(globalCtx->state.gfxCtx);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_ex_item.c", 887),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(keySegments[index]));
gSPDisplayList(POLY_OPA_DISP++, D_0403F070);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09C40.s")
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ex_item.c", 893);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Item/func_80A09D6C.s")
void EnExItem_DrawRupee(EnExItem* this, GlobalContext* globalCtx) {
if (this->unk_17C != NULL) {
this->unk_17C(&this->actor, globalCtx, 0);
}
if (this->unk_180 != NULL) {
this->unk_180(&this->actor, globalCtx, 0);
}
func_800694A0(globalCtx, this->drawItemId);
}

View file

@ -6,13 +6,56 @@
struct EnExItem;
typedef void (*EnExItemActionFunc)(struct EnExItem* this, GlobalContext* globalCtx);
typedef void (*EnExItemLightFunc)(Actor*, GlobalContext*, s32);
typedef struct EnExItem {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x14];
/* 0x0160 */ s16 unk_160;
/* 0x0162 */ char unk_165[0x22];
/* 0x014C */ EnExItemActionFunc actionFunc;
/* 0x0150 */ s16 getItemObjId;
/* 0x0152 */ s16 type;
/* 0x0152 */ s16 unusedParam;
/* 0x0156 */ s16 drawItemId;
/* 0x0158 */ s16 stopRotate;
/* 0x015A */ s16 timer;
/* 0x015A */ s16 chestKillTimer;
/* 0x015A */ s16 prizeRotateTimer;
/* 0x0160 */ s16 killItem;
/* 0x0164 */ f32 scale;
/* 0x0168 */ f32 unkFloat; // set to the same value as scale, but unused
/* 0x016C */ s8 objectIdx;
/* 0x0170 */ Vec3f initPos; // unused
/* 0x017C */ EnExItemLightFunc unk_17C;
/* 0x0180 */ EnExItemLightFunc unk_180;
} EnExItem; // size = 0x0184
extern const ActorInit En_Ex_Item_InitVars;
typedef enum {
/* 0 */ EXITEM_BOMB_BAG_BOWLING,
/* 1 */ EXITEM_HEART_PIECE_BOWLING,
/* 2 */ EXITEM_BOMBCHUS_BOWLING,
/* 3 */ EXITEM_BOMBS_BOWLING,
/* 4 */ EXITEM_PURPLE_RUPEE_BOWLING,
/* 5 */ EXITEM_BOMB_BAG_COUNTER,
/* 6 */ EXITEM_HEART_PIECE_COUNTER,
/* 7 */ EXITEM_BOMBCHUS_COUNTER,
/* 8 */ EXITEM_BOMBS_COUNTER,
/* 9 */ EXITEM_PURPLE_RUPEE_COUNTER,
/* 10 */ EXITEM_GREEN_RUPEE_CHEST,
/* 11 */ EXITEM_BLUE_RUPEE_CHEST,
/* 12 */ EXITEM_RED_RUPEE_CHEST,
/* 13 */ EXITEM_13,
/* 14 */ EXITEM_14,
/* 15 */ EXITEM_SMALL_KEY_CHEST,
/* 16 */ EXITEM_MAGIC_FIRE,
/* 17 */ EXITEM_MAGIC_WIND,
/* 18 */ EXITEM_MAGIC_DARK,
/* 19 */ EXITEM_BULLET_BAG
} EnExItemType;
#define EXITEM_COUNTER 5
#define EXITEM_CHEST 10
#define EXITEM_MAGIC 16
#endif