1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-04-05 14:24:17 +00:00

ovl_En_Gm OK (#407)

* im tired so done for tonight

* decompiled

* z_en_gm remove reloc

* added description

* weird formatting fixed

* MTXMODE_APPLY

* Made suggested changes

* update

* review 2

Co-authored-by: fig <fig02srl@gmail.com>
This commit is contained in:
Lucas Shaw 2020-12-02 13:00:24 -07:00 committed by GitHub
parent a7b6323228
commit a9dc747709
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 308 additions and 975 deletions

View file

@ -1,12 +0,0 @@
glabel EnGm_Destroy
/* 000C0 80A3D7A0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 000C4 80A3D7A4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 000C8 80A3D7A8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 000CC 80A3D7AC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 000D0 80A3D7B0 0C0170EB */ jal Collider_DestroyCylinder
/* 000D4 80A3D7B4 24C50270 */ addiu $a1, $a2, 0x0270 ## $a1 = 00000270
/* 000D8 80A3D7B8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 000DC 80A3D7BC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 000E0 80A3D7C0 03E00008 */ jr $ra
/* 000E4 80A3D7C4 00000000 */ nop

View file

@ -1,87 +0,0 @@
.rdata
glabel D_80A3E390
.asciz "\x1b[32m%s[%d] : [%d]\x1b[m\n"
.balign 4
glabel D_80A3E3B0
.asciz "../z_en_gm.c"
.balign 4
glabel D_80A3E3C0
.asciz "\x1b[41;37m"
.balign 4
glabel D_80A3E3CC
.asciz " \n"
.balign 4
glabel D_80A3E3F4
.asciz "\x1b[m"
.balign 4
glabel D_80A3E3F8
.asciz "0"
.balign 4
glabel D_80A3E3FC
.asciz "../z_en_gm.c"
.balign 4
.text
glabel EnGm_Init
/* 00000 80A3D6E0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00004 80A3D6E4 AFA50024 */ sw $a1, 0x0024($sp)
/* 00008 80A3D6E8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0000C 80A3D6EC AFB00018 */ sw $s0, 0x0018($sp)
/* 00010 80A3D6F0 3C0580A4 */ lui $a1, %hi(D_80A3E37C) ## $a1 = 80A40000
/* 00014 80A3D6F4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 80A3D6F8 0C01E037 */ jal Actor_ProcessInitChain
/* 0001C 80A3D6FC 24A5E37C */ addiu $a1, $a1, %lo(D_80A3E37C) ## $a1 = 80A3E37C
/* 00020 80A3D700 3C0480A4 */ lui $a0, %hi(D_80A3E390) ## $a0 = 80A40000
/* 00024 80A3D704 3C0580A4 */ lui $a1, %hi(D_80A3E3B0) ## $a1 = 80A40000
/* 00028 80A3D708 24A5E3B0 */ addiu $a1, $a1, %lo(D_80A3E3B0) ## $a1 = 80A3E3B0
/* 0002C 80A3D70C 2484E390 */ addiu $a0, $a0, %lo(D_80A3E390) ## $a0 = 80A3E390
/* 00030 80A3D710 24060085 */ addiu $a2, $zero, 0x0085 ## $a2 = 00000085
/* 00034 80A3D714 0C00084C */ jal osSyncPrintf
/* 00038 80A3D718 8607001C */ lh $a3, 0x001C($s0) ## 0000001C
/* 0003C 80A3D71C 8FA40024 */ lw $a0, 0x0024($sp)
/* 00040 80A3D720 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00044 80A3D724 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 00048 80A3D728 24050126 */ addiu $a1, $zero, 0x0126 ## $a1 = 00000126
/* 0004C 80A3D72C 0C02604B */ jal Object_GetIndex
## ObjectIndex
/* 00050 80A3D730 00812021 */ addu $a0, $a0, $at
/* 00054 80A3D734 A20202BC */ sb $v0, 0x02BC($s0) ## 000002BC
/* 00058 80A3D738 820E02BC */ lb $t6, 0x02BC($s0) ## 000002BC
/* 0005C 80A3D73C 3C0480A4 */ lui $a0, %hi(D_80A3E3C0) ## $a0 = 80A40000
/* 00060 80A3D740 05C1000F */ bgez $t6, .L80A3D780
/* 00064 80A3D744 00000000 */ nop
/* 00068 80A3D748 0C00084C */ jal osSyncPrintf
/* 0006C 80A3D74C 2484E3C0 */ addiu $a0, $a0, %lo(D_80A3E3C0) ## $a0 = 80A3E3C0
/* 00070 80A3D750 3C0480A4 */ lui $a0, %hi(D_80A3E3CC) ## $a0 = 80A40000
/* 00074 80A3D754 0C00084C */ jal osSyncPrintf
/* 00078 80A3D758 2484E3CC */ addiu $a0, $a0, %lo(D_80A3E3CC) ## $a0 = 80A3E3CC
/* 0007C 80A3D75C 3C0480A4 */ lui $a0, %hi(D_80A3E3F4) ## $a0 = 80A40000
/* 00080 80A3D760 0C00084C */ jal osSyncPrintf
/* 00084 80A3D764 2484E3F4 */ addiu $a0, $a0, %lo(D_80A3E3F4) ## $a0 = 80A3E3F4
/* 00088 80A3D768 3C0480A4 */ lui $a0, %hi(D_80A3E3F8) ## $a0 = 80A40000
/* 0008C 80A3D76C 3C0580A4 */ lui $a1, %hi(D_80A3E3FC) ## $a1 = 80A40000
/* 00090 80A3D770 24A5E3FC */ addiu $a1, $a1, %lo(D_80A3E3FC) ## $a1 = 80A3E3FC
/* 00094 80A3D774 2484E3F8 */ addiu $a0, $a0, %lo(D_80A3E3F8) ## $a0 = 80A3E3F8
/* 00098 80A3D778 0C0007FC */ jal __assert
/* 0009C 80A3D77C 24060091 */ addiu $a2, $zero, 0x0091 ## $a2 = 00000091
.L80A3D780:
/* 000A0 80A3D780 3C0F80A4 */ lui $t7, %hi(func_80A3D838) ## $t7 = 80A40000
/* 000A4 80A3D784 25EFD838 */ addiu $t7, $t7, %lo(func_80A3D838) ## $t7 = 80A3D838
/* 000A8 80A3D788 AE0F0268 */ sw $t7, 0x0268($s0) ## 00000268
/* 000AC 80A3D78C 8FBF001C */ lw $ra, 0x001C($sp)
/* 000B0 80A3D790 8FB00018 */ lw $s0, 0x0018($sp)
/* 000B4 80A3D794 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 000B8 80A3D798 03E00008 */ jr $ra
/* 000BC 80A3D79C 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel EnGm_Update
/* 0098C 80A3E06C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00990 80A3E070 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00994 80A3E074 8C990268 */ lw $t9, 0x0268($a0) ## 00000268
/* 00998 80A3E078 0320F809 */ jalr $ra, $t9
/* 0099C 80A3E07C 00000000 */ nop
/* 009A0 80A3E080 8FBF0014 */ lw $ra, 0x0014($sp)
/* 009A4 80A3E084 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 009A8 80A3E088 03E00008 */ jr $ra
/* 009AC 80A3E08C 00000000 */ nop

View file

@ -1,34 +0,0 @@
glabel func_80A3D7C8
/* 000E8 80A3D7C8 3C038016 */ lui $v1, %hi(gSaveContext)
/* 000EC 80A3D7CC 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 000F0 80A3D7D0 8C6E0004 */ lw $t6, 0x0004($v1) ## 8015E664
/* 000F4 80A3D7D4 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 000F8 80A3D7D8 24020011 */ addiu $v0, $zero, 0x0011 ## $v0 = 00000011
/* 000FC 80A3D7DC 11C00003 */ beq $t6, $zero, .L80A3D7EC
/* 00100 80A3D7E0 3C048012 */ lui $a0, %hi(gBitFlags)
/* 00104 80A3D7E4 10000001 */ beq $zero, $zero, .L80A3D7EC
/* 00108 80A3D7E8 24020005 */ addiu $v0, $zero, 0x0005 ## $v0 = 00000005
.L80A3D7EC:
/* 0010C 80A3D7EC 14410003 */ bne $v0, $at, .L80A3D7FC
/* 00110 80A3D7F0 24847120 */ addiu $a0, %lo(gBitFlags)
/* 00114 80A3D7F4 03E00008 */ jr $ra
/* 00118 80A3D7F8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80A3D7FC:
/* 0011C 80A3D7FC 9462009C */ lhu $v0, 0x009C($v1) ## 8015E6FC
/* 00120 80A3D800 8C8F0008 */ lw $t7, 0x0008($a0) ## 80127128
/* 00124 80A3D804 01E2C024 */ and $t8, $t7, $v0
/* 00128 80A3D808 57000004 */ bnel $t8, $zero, .L80A3D81C
/* 0012C 80A3D80C 8C99000C */ lw $t9, 0x000C($a0) ## 8012712C
/* 00130 80A3D810 03E00008 */ jr $ra
/* 00134 80A3D814 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80A3D818:
/* 00138 80A3D818 8C99000C */ lw $t9, 0x000C($a0) ## 8012712C
.L80A3D81C:
/* 0013C 80A3D81C 03224024 */ and $t0, $t9, $v0
/* 00140 80A3D820 11000003 */ beq $t0, $zero, .L80A3D830
/* 00144 80A3D824 24020003 */ addiu $v0, $zero, 0x0003 ## $v0 = 00000003
/* 00148 80A3D828 03E00008 */ jr $ra
/* 0014C 80A3D82C 24020002 */ addiu $v0, $zero, 0x0002 ## $v0 = 00000002
.L80A3D830:
/* 00150 80A3D830 03E00008 */ jr $ra
/* 00154 80A3D834 00000000 */ nop

View file

@ -1,112 +0,0 @@
glabel func_80A3D838
/* 00158 80A3D838 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 0015C 80A3D83C AFB00024 */ sw $s0, 0x0024($sp)
/* 00160 80A3D840 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00164 80A3D844 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00168 80A3D848 AFB10028 */ sw $s1, 0x0028($sp)
/* 0016C 80A3D84C 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 00170 80A3D850 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00174 80A3D854 AFBF002C */ sw $ra, 0x002C($sp)
/* 00178 80A3D858 00A12021 */ addu $a0, $a1, $at
/* 0017C 80A3D85C 0C026062 */ jal Object_IsLoaded
/* 00180 80A3D860 820502BC */ lb $a1, 0x02BC($s0) ## 000002BC
/* 00184 80A3D864 10400057 */ beq $v0, $zero, .L80A3D9C4
/* 00188 80A3D868 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 0018C 80A3D86C 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
/* 00190 80A3D870 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 00194 80A3D874 3C060601 */ lui $a2, 0x0601 ## $a2 = 06010000
/* 00198 80A3D878 01C17824 */ and $t7, $t6, $at
/* 0019C 80A3D87C AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
/* 001A0 80A3D880 26180190 */ addiu $t8, $s0, 0x0190 ## $t8 = 00000190
/* 001A4 80A3D884 261901FC */ addiu $t9, $s0, 0x01FC ## $t9 = 000001FC
/* 001A8 80A3D888 24080012 */ addiu $t0, $zero, 0x0012 ## $t0 = 00000012
/* 001AC 80A3D88C AFA80018 */ sw $t0, 0x0018($sp)
/* 001B0 80A3D890 AFB90014 */ sw $t9, 0x0014($sp)
/* 001B4 80A3D894 AFB80010 */ sw $t8, 0x0010($sp)
/* 001B8 80A3D898 AFA50030 */ sw $a1, 0x0030($sp)
/* 001BC 80A3D89C 24C6FEF0 */ addiu $a2, $a2, 0xFEF0 ## $a2 = 0600FEF0
/* 001C0 80A3D8A0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 001C4 80A3D8A4 0C0291BE */ jal SkelAnime_InitFlex
/* 001C8 80A3D8A8 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 001CC 80A3D8AC 820902BC */ lb $t1, 0x02BC($s0) ## 000002BC
/* 001D0 80A3D8B0 3C0C0001 */ lui $t4, 0x0001 ## $t4 = 00010000
/* 001D4 80A3D8B4 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 001D8 80A3D8B8 00095100 */ sll $t2, $t1, 4
/* 001DC 80A3D8BC 01495021 */ addu $t2, $t2, $t1
/* 001E0 80A3D8C0 000A5080 */ sll $t2, $t2, 2
/* 001E4 80A3D8C4 022A5821 */ addu $t3, $s1, $t2
/* 001E8 80A3D8C8 018B6021 */ addu $t4, $t4, $t3
/* 001EC 80A3D8CC 8D8C17B4 */ lw $t4, 0x17B4($t4) ## 000117B4
/* 001F0 80A3D8D0 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 001F4 80A3D8D4 248402B8 */ addiu $a0, $a0, 0x02B8 ## $a0 = 060002B8
/* 001F8 80A3D8D8 01816821 */ addu $t5, $t4, $at
/* 001FC 80A3D8DC 3C018016 */ lui $at, %hi(gSegments+0x18)
/* 00200 80A3D8E0 0C028800 */ jal SkelAnime_GetFrameCount
/* 00204 80A3D8E4 AC2D6FC0 */ sw $t5, %lo(gSegments+0x18)($at)
/* 00208 80A3D8E8 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 0020C 80A3D8EC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00210 80A3D8F0 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00214 80A3D8F4 468021A0 */ cvt.s.w $f6, $f4
/* 00218 80A3D8F8 44070000 */ mfc1 $a3, $f0
/* 0021C 80A3D8FC 24A502B8 */ addiu $a1, $a1, 0x02B8 ## $a1 = 060002B8
/* 00220 80A3D900 8FA40030 */ lw $a0, 0x0030($sp)
/* 00224 80A3D904 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00228 80A3D908 AFA00014 */ sw $zero, 0x0014($sp)
/* 0022C 80A3D90C E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00230 80A3D910 0C029468 */ jal SkelAnime_ChangeAnim
/* 00234 80A3D914 E7A00018 */ swc1 $f0, 0x0018($sp)
/* 00238 80A3D918 3C0E80A4 */ lui $t6, %hi(func_80A3E1EC) ## $t6 = 80A40000
/* 0023C 80A3D91C 25CEE1EC */ addiu $t6, $t6, %lo(func_80A3E1EC) ## $t6 = 80A3E1EC
/* 00240 80A3D920 AE0E0134 */ sw $t6, 0x0134($s0) ## 00000134
/* 00244 80A3D924 26050270 */ addiu $a1, $s0, 0x0270 ## $a1 = 00000270
/* 00248 80A3D928 AFA50030 */ sw $a1, 0x0030($sp)
/* 0024C 80A3D92C 0C0170D9 */ jal Collider_InitCylinder
/* 00250 80A3D930 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00254 80A3D934 3C0780A4 */ lui $a3, %hi(D_80A3E350) ## $a3 = 80A40000
/* 00258 80A3D938 8FA50030 */ lw $a1, 0x0030($sp)
/* 0025C 80A3D93C 24E7E350 */ addiu $a3, $a3, %lo(D_80A3E350) ## $a3 = 80A3E350
/* 00260 80A3D940 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00264 80A3D944 0C017114 */ jal Collider_SetCylinder_Set3
/* 00268 80A3D948 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 0026C 80A3D94C 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Circle)
/* 00270 80A3D950 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawFunc_Circle)
/* 00274 80A3D954 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 00278 80A3D958 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 0027C 80A3D95C 0C00AC78 */ jal ActorShape_Init
/* 00280 80A3D960 3C07420C */ lui $a3, 0x420C ## $a3 = 420C0000
/* 00284 80A3D964 3C053D4C */ lui $a1, 0x3D4C ## $a1 = 3D4C0000
/* 00288 80A3D968 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3D4CCCCD
/* 0028C 80A3D96C 0C00B58B */ jal Actor_SetScale
/* 00290 80A3D970 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00294 80A3D974 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 00298 80A3D978 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
/* 0029C 80A3D97C 44815000 */ mtc1 $at, $f10 ## $f10 = -1.00
/* 002A0 80A3D980 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00
/* 002A4 80A3D984 3C0880A4 */ lui $t0, %hi(func_80A3DFBC) ## $t0 = 80A40000
/* 002A8 80A3D988 3C0980A4 */ lui $t1, %hi(func_80A3DB04) ## $t1 = 80A40000
/* 002AC 80A3D98C 240F00FF */ addiu $t7, $zero, 0x00FF ## $t7 = 000000FF
/* 002B0 80A3D990 24180014 */ addiu $t8, $zero, 0x0014 ## $t8 = 00000014
/* 002B4 80A3D994 24193049 */ addiu $t9, $zero, 0x3049 ## $t9 = 00003049
/* 002B8 80A3D998 2508DFBC */ addiu $t0, $t0, %lo(func_80A3DFBC) ## $t0 = 80A3DFBC
/* 002BC 80A3D99C 2529DB04 */ addiu $t1, $t1, %lo(func_80A3DB04) ## $t1 = 80A3DB04
/* 002C0 80A3D9A0 A20F00AE */ sb $t7, 0x00AE($s0) ## 000000AE
/* 002C4 80A3D9A4 A20002C2 */ sb $zero, 0x02C2($s0) ## 000002C2
/* 002C8 80A3D9A8 A61802C0 */ sh $t8, 0x02C0($s0) ## 000002C0
/* 002CC 80A3D9AC A619010E */ sh $t9, 0x010E($s0) ## 0000010E
/* 002D0 80A3D9B0 AE080268 */ sw $t0, 0x0268($s0) ## 00000268
/* 002D4 80A3D9B4 AE09026C */ sw $t1, 0x026C($s0) ## 0000026C
/* 002D8 80A3D9B8 E6080068 */ swc1 $f8, 0x0068($s0) ## 00000068
/* 002DC 80A3D9BC E60A006C */ swc1 $f10, 0x006C($s0) ## 0000006C
/* 002E0 80A3D9C0 E6100060 */ swc1 $f16, 0x0060($s0) ## 00000060
.L80A3D9C4:
/* 002E4 80A3D9C4 8FBF002C */ lw $ra, 0x002C($sp)
/* 002E8 80A3D9C8 8FB00024 */ lw $s0, 0x0024($sp)
/* 002EC 80A3D9CC 8FB10028 */ lw $s1, 0x0028($sp)
/* 002F0 80A3D9D0 03E00008 */ jr $ra
/* 002F4 80A3D9D4 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,34 +0,0 @@
glabel func_80A3D9D8
/* 002F8 80A3D9D8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002FC 80A3D9DC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00300 80A3D9E0 848202C0 */ lh $v0, 0x02C0($a0) ## 000002C0
/* 00304 80A3D9E4 10400003 */ beq $v0, $zero, .L80A3D9F4
/* 00308 80A3D9E8 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 0030C 80A3D9EC 10000014 */ beq $zero, $zero, .L80A3DA40
/* 00310 80A3D9F0 A48E02C0 */ sh $t6, 0x02C0($a0) ## 000002C0
.L80A3D9F4:
/* 00314 80A3D9F4 908F02C2 */ lbu $t7, 0x02C2($a0) ## 000002C2
/* 00318 80A3D9F8 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 0031C 80A3D9FC 331900FF */ andi $t9, $t8, 0x00FF ## $t9 = 00000001
/* 00320 80A3DA00 2B210003 */ slti $at, $t9, 0x0003
/* 00324 80A3DA04 1420000E */ bne $at, $zero, .L80A3DA40
/* 00328 80A3DA08 A09802C2 */ sb $t8, 0x02C2($a0) ## 000002C2
/* 0032C 80A3DA0C 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00330 80A3DA10 A08002C2 */ sb $zero, 0x02C2($a0) ## 000002C2
/* 00334 80A3DA14 44816000 */ mtc1 $at, $f12 ## $f12 = 60.00
/* 00338 80A3DA18 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 0033C 80A3DA1C AFA40018 */ sw $a0, 0x0018($sp)
/* 00340 80A3DA20 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00344 80A3DA24 44812000 */ mtc1 $at, $f4 ## $f4 = 20.00
/* 00348 80A3DA28 8FA40018 */ lw $a0, 0x0018($sp)
/* 0034C 80A3DA2C 46040180 */ add.s $f6, $f0, $f4
/* 00350 80A3DA30 4600320D */ trunc.w.s $f8, $f6
/* 00354 80A3DA34 44094000 */ mfc1 $t1, $f8
/* 00358 80A3DA38 00000000 */ nop
/* 0035C 80A3DA3C A48902C0 */ sh $t1, 0x02C0($a0) ## 000002C0
.L80A3DA40:
/* 00360 80A3DA40 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00364 80A3DA44 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00368 80A3DA48 03E00008 */ jr $ra
/* 0036C 80A3DA4C 00000000 */ nop

View file

@ -1,54 +0,0 @@
glabel func_80A3DA50
/* 00370 80A3DA50 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00374 80A3DA54 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00378 80A3DA58 0C28F5F2 */ jal func_80A3D7C8
/* 0037C 80A3DA5C AFA40018 */ sw $a0, 0x0018($sp)
/* 00380 80A3DA60 1040000C */ beq $v0, $zero, .L80A3DA94
/* 00384 80A3DA64 8FA40018 */ lw $a0, 0x0018($sp)
/* 00388 80A3DA68 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 0038C 80A3DA6C 10410014 */ beq $v0, $at, .L80A3DAC0
/* 00390 80A3DA70 3C088016 */ lui $t0, %hi(gSaveContext+0xf0e)
/* 00394 80A3DA74 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00398 80A3DA78 1041001B */ beq $v0, $at, .L80A3DAE8
/* 0039C 80A3DA7C 240C304E */ addiu $t4, $zero, 0x304E ## $t4 = 0000304E
/* 003A0 80A3DA80 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 003A4 80A3DA84 1041001A */ beq $v0, $at, .L80A3DAF0
/* 003A8 80A3DA88 240D304D */ addiu $t5, $zero, 0x304D ## $t5 = 0000304D
/* 003AC 80A3DA8C 1000001A */ beq $zero, $zero, .L80A3DAF8
/* 003B0 80A3DA90 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A3DA94:
/* 003B4 80A3DA94 3C0E8016 */ lui $t6, %hi(gSaveContext+0xf0e)
/* 003B8 80A3DA98 95CEF56E */ lhu $t6, %lo(gSaveContext+0xf0e)($t6)
/* 003BC 80A3DA9C 2418304B */ addiu $t8, $zero, 0x304B ## $t8 = 0000304B
/* 003C0 80A3DAA0 2419304A */ addiu $t9, $zero, 0x304A ## $t9 = 0000304A
/* 003C4 80A3DAA4 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 003C8 80A3DAA8 11E00003 */ beq $t7, $zero, .L80A3DAB8
/* 003CC 80A3DAAC 00000000 */ nop
/* 003D0 80A3DAB0 10000010 */ beq $zero, $zero, .L80A3DAF4
/* 003D4 80A3DAB4 A498010E */ sh $t8, 0x010E($a0) ## 0000010E
.L80A3DAB8:
/* 003D8 80A3DAB8 1000000E */ beq $zero, $zero, .L80A3DAF4
/* 003DC 80A3DABC A499010E */ sh $t9, 0x010E($a0) ## 0000010E
.L80A3DAC0:
/* 003E0 80A3DAC0 9508F56E */ lhu $t0, %lo(gSaveContext+0xf0e)($t0)
/* 003E4 80A3DAC4 240A304F */ addiu $t2, $zero, 0x304F ## $t2 = 0000304F
/* 003E8 80A3DAC8 240B304C */ addiu $t3, $zero, 0x304C ## $t3 = 0000304C
/* 003EC 80A3DACC 31090002 */ andi $t1, $t0, 0x0002 ## $t1 = 00000000
/* 003F0 80A3DAD0 11200003 */ beq $t1, $zero, .L80A3DAE0
/* 003F4 80A3DAD4 00000000 */ nop
/* 003F8 80A3DAD8 10000006 */ beq $zero, $zero, .L80A3DAF4
/* 003FC 80A3DADC A48A010E */ sh $t2, 0x010E($a0) ## 0000010E
.L80A3DAE0:
/* 00400 80A3DAE0 10000004 */ beq $zero, $zero, .L80A3DAF4
/* 00404 80A3DAE4 A48B010E */ sh $t3, 0x010E($a0) ## 0000010E
.L80A3DAE8:
/* 00408 80A3DAE8 10000002 */ beq $zero, $zero, .L80A3DAF4
/* 0040C 80A3DAEC A48C010E */ sh $t4, 0x010E($a0) ## 0000010E
.L80A3DAF0:
/* 00410 80A3DAF0 A48D010E */ sh $t5, 0x010E($a0) ## 0000010E
.L80A3DAF4:
/* 00414 80A3DAF4 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A3DAF8:
/* 00418 80A3DAF8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0041C 80A3DAFC 03E00008 */ jr $ra
/* 00420 80A3DB00 00000000 */ nop

View file

@ -1,72 +0,0 @@
.late_rodata
glabel D_80A3E42C
.float 10000.0
.text
glabel func_80A3DB04
/* 00424 80A3DB04 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00428 80A3DB08 AFBF001C */ sw $ra, 0x001C($sp)
/* 0042C 80A3DB0C AFB00018 */ sw $s0, 0x0018($sp)
/* 00430 80A3DB10 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00434 80A3DB14 C48402C4 */ lwc1 $f4, 0x02C4($a0) ## 000002C4
/* 00438 80A3DB18 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0043C 80A3DB1C C4460024 */ lwc1 $f6, 0x0024($v0) ## 00000024
/* 00440 80A3DB20 00A03025 */ or $a2, $a1, $zero ## $a2 = 00000000
/* 00444 80A3DB24 46062201 */ sub.s $f8, $f4, $f6
/* 00448 80A3DB28 E7A80024 */ swc1 $f8, 0x0024($sp)
/* 0044C 80A3DB2C C48A02CC */ lwc1 $f10, 0x02CC($a0) ## 000002CC
/* 00450 80A3DB30 C450002C */ lwc1 $f16, 0x002C($v0) ## 0000002C
/* 00454 80A3DB34 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00458 80A3DB38 46105481 */ sub.s $f18, $f10, $f16
/* 0045C 80A3DB3C E7B20020 */ swc1 $f18, 0x0020($sp)
/* 00460 80A3DB40 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00464 80A3DB44 0C00B2D0 */ jal Flags_GetSwitch
/* 00468 80A3DB48 AFA6002C */ sw $a2, 0x002C($sp)
/* 0046C 80A3DB4C 10400007 */ beq $v0, $zero, .L80A3DB6C
/* 00470 80A3DB50 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00474 80A3DB54 0C28F694 */ jal func_80A3DA50
/* 00478 80A3DB58 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0047C 80A3DB5C 3C0E80A4 */ lui $t6, %hi(func_80A3DC44) ## $t6 = 80A40000
/* 00480 80A3DB60 25CEDC44 */ addiu $t6, $t6, %lo(func_80A3DC44) ## $t6 = 80A3DC44
/* 00484 80A3DB64 1000001E */ beq $zero, $zero, .L80A3DBE0
/* 00488 80A3DB68 AE0E026C */ sw $t6, 0x026C($s0) ## 0000026C
.L80A3DB6C:
/* 0048C 80A3DB6C 0C00BC65 */ jal func_8002F194
/* 00490 80A3DB70 8FA5002C */ lw $a1, 0x002C($sp)
/* 00494 80A3DB74 10400004 */ beq $v0, $zero, .L80A3DB88
/* 00498 80A3DB78 3C0F80A4 */ lui $t7, %hi(func_80A3DBF4) ## $t7 = 80A40000
/* 0049C 80A3DB7C 25EFDBF4 */ addiu $t7, $t7, %lo(func_80A3DBF4) ## $t7 = 80A3DBF4
/* 004A0 80A3DB80 10000017 */ beq $zero, $zero, .L80A3DBE0
/* 004A4 80A3DB84 AE0F026C */ sw $t7, 0x026C($s0) ## 0000026C
.L80A3DB88:
/* 004A8 80A3DB88 92180282 */ lbu $t8, 0x0282($s0) ## 00000282
/* 004AC 80A3DB8C C7A00024 */ lwc1 $f0, 0x0024($sp)
/* 004B0 80A3DB90 C7A20020 */ lwc1 $f2, 0x0020($sp)
/* 004B4 80A3DB94 33190002 */ andi $t9, $t8, 0x0002 ## $t9 = 00000000
/* 004B8 80A3DB98 1720000A */ bne $t9, $zero, .L80A3DBC4
/* 004BC 80A3DB9C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004C0 80A3DBA0 46000102 */ mul.s $f4, $f0, $f0
/* 004C4 80A3DBA4 3C0180A4 */ lui $at, %hi(D_80A3E42C) ## $at = 80A40000
/* 004C8 80A3DBA8 C42AE42C */ lwc1 $f10, %lo(D_80A3E42C)($at)
/* 004CC 80A3DBAC 46021182 */ mul.s $f6, $f2, $f2
/* 004D0 80A3DBB0 46062200 */ add.s $f8, $f4, $f6
/* 004D4 80A3DBB4 460A403C */ c.lt.s $f8, $f10
/* 004D8 80A3DBB8 00000000 */ nop
/* 004DC 80A3DBBC 45020009 */ bc1fl .L80A3DBE4
/* 004E0 80A3DBC0 8FBF001C */ lw $ra, 0x001C($sp)
.L80A3DBC4:
/* 004E4 80A3DBC4 92080281 */ lbu $t0, 0x0281($s0) ## 00000281
/* 004E8 80A3DBC8 3C0643CF */ lui $a2, 0x43CF ## $a2 = 43CF0000
/* 004EC 80A3DBCC 34C68000 */ ori $a2, $a2, 0x8000 ## $a2 = 43CF8000
/* 004F0 80A3DBD0 3109FFFD */ andi $t1, $t0, 0xFFFD ## $t1 = 00000000
/* 004F4 80A3DBD4 A2090281 */ sb $t1, 0x0281($s0) ## 00000281
/* 004F8 80A3DBD8 0C00BCB3 */ jal func_8002F2CC
/* 004FC 80A3DBDC 8FA5002C */ lw $a1, 0x002C($sp)
.L80A3DBE0:
/* 00500 80A3DBE0 8FBF001C */ lw $ra, 0x001C($sp)
.L80A3DBE4:
/* 00504 80A3DBE4 8FB00018 */ lw $s0, 0x0018($sp)
/* 00508 80A3DBE8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 0050C 80A3DBEC 03E00008 */ jr $ra
/* 00510 80A3DBF0 00000000 */ nop

View file

@ -1,23 +0,0 @@
glabel func_80A3DBF4
/* 00514 80A3DBF4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00518 80A3DBF8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0051C 80A3DBFC AFA40018 */ sw $a0, 0x0018($sp)
/* 00520 80A3DC00 AFA5001C */ sw $a1, 0x001C($sp)
/* 00524 80A3DC04 0C042F6F */ jal func_8010BDBC
/* 00528 80A3DC08 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 0052C 80A3DC0C 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00530 80A3DC10 54410009 */ bnel $v0, $at, .L80A3DC38
/* 00534 80A3DC14 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00538 80A3DC18 0C041AF2 */ jal func_80106BC8
/* 0053C 80A3DC1C 8FA4001C */ lw $a0, 0x001C($sp)
/* 00540 80A3DC20 10400004 */ beq $v0, $zero, .L80A3DC34
/* 00544 80A3DC24 8FAF0018 */ lw $t7, 0x0018($sp)
/* 00548 80A3DC28 3C0E80A4 */ lui $t6, %hi(func_80A3DB04) ## $t6 = 80A40000
/* 0054C 80A3DC2C 25CEDB04 */ addiu $t6, $t6, %lo(func_80A3DB04) ## $t6 = 80A3DB04
/* 00550 80A3DC30 ADEE026C */ sw $t6, 0x026C($t7) ## 0000026C
.L80A3DC34:
/* 00554 80A3DC34 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A3DC38:
/* 00558 80A3DC38 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0055C 80A3DC3C 03E00008 */ jr $ra
/* 00560 80A3DC40 00000000 */ nop

View file

@ -1,92 +0,0 @@
.late_rodata
glabel D_80A3E430
.float 10000.0
.text
glabel func_80A3DC44
/* 00564 80A3DC44 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00568 80A3DC48 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0056C 80A3DC4C AFA5002C */ sw $a1, 0x002C($sp)
/* 00570 80A3DC50 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00574 80A3DC54 AFA40028 */ sw $a0, 0x0028($sp)
/* 00578 80A3DC58 0C28F694 */ jal func_80A3DA50
/* 0057C 80A3DC5C AFA20018 */ sw $v0, 0x0018($sp)
/* 00580 80A3DC60 8FA20018 */ lw $v0, 0x0018($sp)
/* 00584 80A3DC64 8FA40028 */ lw $a0, 0x0028($sp)
/* 00588 80A3DC68 8FA5002C */ lw $a1, 0x002C($sp)
/* 0058C 80A3DC6C C4460024 */ lwc1 $f6, 0x0024($v0) ## 00000024
/* 00590 80A3DC70 C44A002C */ lwc1 $f10, 0x002C($v0) ## 0000002C
/* 00594 80A3DC74 C48402C4 */ lwc1 $f4, 0x02C4($a0) ## 000002C4
/* 00598 80A3DC78 C48802CC */ lwc1 $f8, 0x02CC($a0) ## 000002CC
/* 0059C 80A3DC7C 46062001 */ sub.s $f0, $f4, $f6
/* 005A0 80A3DC80 460A4081 */ sub.s $f2, $f8, $f10
/* 005A4 80A3DC84 E7A00024 */ swc1 $f0, 0x0024($sp)
/* 005A8 80A3DC88 0C00BC65 */ jal func_8002F194
/* 005AC 80A3DC8C E7A20020 */ swc1 $f2, 0x0020($sp)
/* 005B0 80A3DC90 8FA40028 */ lw $a0, 0x0028($sp)
/* 005B4 80A3DC94 C7A00024 */ lwc1 $f0, 0x0024($sp)
/* 005B8 80A3DC98 10400020 */ beq $v0, $zero, .L80A3DD1C
/* 005BC 80A3DC9C C7A20020 */ lwc1 $f2, 0x0020($sp)
/* 005C0 80A3DCA0 0C28F5F2 */ jal func_80A3D7C8
/* 005C4 80A3DCA4 AFA40028 */ sw $a0, 0x0028($sp)
/* 005C8 80A3DCA8 1040000B */ beq $v0, $zero, .L80A3DCD8
/* 005CC 80A3DCAC 8FA40028 */ lw $a0, 0x0028($sp)
/* 005D0 80A3DCB0 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 005D4 80A3DCB4 10410011 */ beq $v0, $at, .L80A3DCFC
/* 005D8 80A3DCB8 3C0A80A4 */ lui $t2, %hi(func_80A3DE10) ## $t2 = 80A40000
/* 005DC 80A3DCBC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 005E0 80A3DCC0 10410013 */ beq $v0, $at, .L80A3DD10
/* 005E4 80A3DCC4 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 005E8 80A3DCC8 10410008 */ beq $v0, $at, .L80A3DCEC
/* 005EC 80A3DCCC 00000000 */ nop
/* 005F0 80A3DCD0 10000027 */ beq $zero, $zero, .L80A3DD70
/* 005F4 80A3DCD4 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A3DCD8:
/* 005F8 80A3DCD8 3C028016 */ lui $v0, %hi(gSaveContext)
/* 005FC 80A3DCDC 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00600 80A3DCE0 944F0F0E */ lhu $t7, 0x0F0E($v0) ## 8015F56E
/* 00604 80A3DCE4 35F80001 */ ori $t8, $t7, 0x0001 ## $t8 = 00000001
/* 00608 80A3DCE8 A4580F0E */ sh $t8, 0x0F0E($v0) ## 8015F56E
.L80A3DCEC:
/* 0060C 80A3DCEC 3C1980A4 */ lui $t9, %hi(func_80A3DD7C) ## $t9 = 80A40000
/* 00610 80A3DCF0 2739DD7C */ addiu $t9, $t9, %lo(func_80A3DD7C) ## $t9 = 80A3DD7C
/* 00614 80A3DCF4 1000001D */ beq $zero, $zero, .L80A3DD6C
/* 00618 80A3DCF8 AC99026C */ sw $t9, 0x026C($a0) ## 0000026C
.L80A3DCFC:
/* 0061C 80A3DCFC 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00620 80A3DD00 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00624 80A3DD04 94480F0E */ lhu $t0, 0x0F0E($v0) ## 8015F56E
/* 00628 80A3DD08 35090002 */ ori $t1, $t0, 0x0002 ## $t1 = 00000002
/* 0062C 80A3DD0C A4490F0E */ sh $t1, 0x0F0E($v0) ## 8015F56E
.L80A3DD10:
/* 00630 80A3DD10 254ADE10 */ addiu $t2, $t2, %lo(func_80A3DE10) ## $t2 = 80A3DE10
/* 00634 80A3DD14 10000015 */ beq $zero, $zero, .L80A3DD6C
/* 00638 80A3DD18 AC8A026C */ sw $t2, 0x026C($a0) ## 0000026C
.L80A3DD1C:
/* 0063C 80A3DD1C 908B0282 */ lbu $t3, 0x0282($a0) ## 00000282
/* 00640 80A3DD20 316C0002 */ andi $t4, $t3, 0x0002 ## $t4 = 00000000
/* 00644 80A3DD24 5580000B */ bnel $t4, $zero, .L80A3DD54
/* 00648 80A3DD28 908D0281 */ lbu $t5, 0x0281($a0) ## 00000281
/* 0064C 80A3DD2C 46000402 */ mul.s $f16, $f0, $f0
/* 00650 80A3DD30 3C0180A4 */ lui $at, %hi(D_80A3E430) ## $at = 80A40000
/* 00654 80A3DD34 C426E430 */ lwc1 $f6, %lo(D_80A3E430)($at)
/* 00658 80A3DD38 46021482 */ mul.s $f18, $f2, $f2
/* 0065C 80A3DD3C 46128100 */ add.s $f4, $f16, $f18
/* 00660 80A3DD40 4606203C */ c.lt.s $f4, $f6
/* 00664 80A3DD44 00000000 */ nop
/* 00668 80A3DD48 45020009 */ bc1fl .L80A3DD70
/* 0066C 80A3DD4C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00670 80A3DD50 908D0281 */ lbu $t5, 0x0281($a0) ## 00000281
.L80A3DD54:
/* 00674 80A3DD54 3C0643CF */ lui $a2, 0x43CF ## $a2 = 43CF0000
/* 00678 80A3DD58 34C68000 */ ori $a2, $a2, 0x8000 ## $a2 = 43CF8000
/* 0067C 80A3DD5C 31AEFFFD */ andi $t6, $t5, 0xFFFD ## $t6 = 00000000
/* 00680 80A3DD60 A08E0281 */ sb $t6, 0x0281($a0) ## 00000281
/* 00684 80A3DD64 0C00BCB3 */ jal func_8002F2CC
/* 00688 80A3DD68 8FA5002C */ lw $a1, 0x002C($sp)
.L80A3DD6C:
/* 0068C 80A3DD6C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A3DD70:
/* 00690 80A3DD70 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00694 80A3DD74 03E00008 */ jr $ra
/* 00698 80A3DD78 00000000 */ nop

View file

@ -1,41 +0,0 @@
glabel func_80A3DD7C
/* 0069C 80A3DD7C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 006A0 80A3DD80 AFBF0014 */ sw $ra, 0x0014($sp)
/* 006A4 80A3DD84 AFA40020 */ sw $a0, 0x0020($sp)
/* 006A8 80A3DD88 AFA50024 */ sw $a1, 0x0024($sp)
/* 006AC 80A3DD8C 0C042F6F */ jal func_8010BDBC
/* 006B0 80A3DD90 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 006B4 80A3DD94 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 006B8 80A3DD98 10410004 */ beq $v0, $at, .L80A3DDAC
/* 006BC 80A3DD9C 304500FF */ andi $a1, $v0, 0x00FF ## $a1 = 00000000
/* 006C0 80A3DDA0 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 006C4 80A3DDA4 54410017 */ bnel $v0, $at, .L80A3DE04
/* 006C8 80A3DDA8 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A3DDAC:
/* 006CC 80A3DDAC 8FA40024 */ lw $a0, 0x0024($sp)
/* 006D0 80A3DDB0 0C041AF2 */ jal func_80106BC8
/* 006D4 80A3DDB4 A3A5001F */ sb $a1, 0x001F($sp)
/* 006D8 80A3DDB8 10400011 */ beq $v0, $zero, .L80A3DE00
/* 006DC 80A3DDBC 93A5001F */ lbu $a1, 0x001F($sp)
/* 006E0 80A3DDC0 8FAF0020 */ lw $t7, 0x0020($sp)
/* 006E4 80A3DDC4 3C0E80A4 */ lui $t6, %hi(func_80A3DC44) ## $t6 = 80A40000
/* 006E8 80A3DDC8 25CEDC44 */ addiu $t6, $t6, %lo(func_80A3DC44) ## $t6 = 80A3DC44
/* 006EC 80A3DDCC 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 006F0 80A3DDD0 14A1000B */ bne $a1, $at, .L80A3DE00
/* 006F4 80A3DDD4 ADEE026C */ sw $t6, 0x026C($t7) ## 0000026C
/* 006F8 80A3DDD8 8FB90024 */ lw $t9, 0x0024($sp)
/* 006FC 80A3DDDC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00700 80A3DDE0 24180036 */ addiu $t8, $zero, 0x0036 ## $t8 = 00000036
/* 00704 80A3DDE4 00390821 */ addu $at, $at, $t9
/* 00708 80A3DDE8 A03803DC */ sb $t8, 0x03DC($at) ## 000103DC
/* 0070C 80A3DDEC 8FA90024 */ lw $t1, 0x0024($sp)
/* 00710 80A3DDF0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00714 80A3DDF4 24080004 */ addiu $t0, $zero, 0x0004 ## $t0 = 00000004
/* 00718 80A3DDF8 00290821 */ addu $at, $at, $t1
/* 0071C 80A3DDFC A02804BF */ sb $t0, 0x04BF($at) ## 000104BF
.L80A3DE00:
/* 00720 80A3DE00 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A3DE04:
/* 00724 80A3DE04 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00728 80A3DE08 03E00008 */ jr $ra
/* 0072C 80A3DE0C 00000000 */ nop

View file

@ -1,66 +0,0 @@
glabel func_80A3DE10
/* 00730 80A3DE10 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00734 80A3DE14 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00738 80A3DE18 AFB00020 */ sw $s0, 0x0020($sp)
/* 0073C 80A3DE1C AFA40028 */ sw $a0, 0x0028($sp)
/* 00740 80A3DE20 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00744 80A3DE24 0C042F6F */ jal func_8010BDBC
/* 00748 80A3DE28 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 0074C 80A3DE2C 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00750 80A3DE30 5441002F */ bnel $v0, $at, .L80A3DEF0
/* 00754 80A3DE34 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00758 80A3DE38 0C041AF2 */ jal func_80106BC8
/* 0075C 80A3DE3C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00760 80A3DE40 1040002A */ beq $v0, $zero, .L80A3DEEC
/* 00764 80A3DE44 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000
/* 00768 80A3DE48 00501021 */ addu $v0, $v0, $s0
/* 0076C 80A3DE4C 904204BD */ lbu $v0, 0x04BD($v0) ## 000104BD
/* 00770 80A3DE50 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00774 80A3DE54 3C0E8016 */ lui $t6, %hi(gSaveContext+0x34)
/* 00778 80A3DE58 10400005 */ beq $v0, $zero, .L80A3DE70
/* 0077C 80A3DE5C 00000000 */ nop
/* 00780 80A3DE60 1041001C */ beq $v0, $at, .L80A3DED4
/* 00784 80A3DE64 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00788 80A3DE68 10000021 */ beq $zero, $zero, .L80A3DEF0
/* 0078C 80A3DE6C 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A3DE70:
/* 00790 80A3DE70 85CEE694 */ lh $t6, %lo(gSaveContext+0x34)($t6)
/* 00794 80A3DE74 8FA40028 */ lw $a0, 0x0028($sp)
/* 00798 80A3DE78 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0079C 80A3DE7C 29C100C8 */ slti $at, $t6, 0x00C8
/* 007A0 80A3DE80 10200009 */ beq $at, $zero, .L80A3DEA8
/* 007A4 80A3DE84 24060028 */ addiu $a2, $zero, 0x0028 ## $a2 = 00000028
/* 007A8 80A3DE88 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007AC 80A3DE8C 0C042DC8 */ jal func_8010B720
/* 007B0 80A3DE90 240500C8 */ addiu $a1, $zero, 0x00C8 ## $a1 = 000000C8
/* 007B4 80A3DE94 8FB80028 */ lw $t8, 0x0028($sp)
/* 007B8 80A3DE98 3C0F80A4 */ lui $t7, %hi(func_80A3DD7C) ## $t7 = 80A40000
/* 007BC 80A3DE9C 25EFDD7C */ addiu $t7, $t7, %lo(func_80A3DD7C) ## $t7 = 80A3DD7C
/* 007C0 80A3DEA0 10000012 */ beq $zero, $zero, .L80A3DEEC
/* 007C4 80A3DEA4 AF0F026C */ sw $t7, 0x026C($t8) ## 0000026C
.L80A3DEA8:
/* 007C8 80A3DEA8 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 007CC 80A3DEAC 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00
/* 007D0 80A3DEB0 3C0743CF */ lui $a3, 0x43CF ## $a3 = 43CF0000
/* 007D4 80A3DEB4 34E78000 */ ori $a3, $a3, 0x8000 ## $a3 = 43CF8000
/* 007D8 80A3DEB8 0C00BD0D */ jal func_8002F434
/* 007DC 80A3DEBC E7A40010 */ swc1 $f4, 0x0010($sp)
/* 007E0 80A3DEC0 8FA80028 */ lw $t0, 0x0028($sp)
/* 007E4 80A3DEC4 3C1980A4 */ lui $t9, %hi(func_80A3DF00) ## $t9 = 80A40000
/* 007E8 80A3DEC8 2739DF00 */ addiu $t9, $t9, %lo(func_80A3DF00) ## $t9 = 80A3DF00
/* 007EC 80A3DECC 10000007 */ beq $zero, $zero, .L80A3DEEC
/* 007F0 80A3DED0 AD19026C */ sw $t9, 0x026C($t0) ## 0000026C
.L80A3DED4:
/* 007F4 80A3DED4 0C042DC8 */ jal func_8010B720
/* 007F8 80A3DED8 24053050 */ addiu $a1, $zero, 0x3050 ## $a1 = 00003050
/* 007FC 80A3DEDC 8FAA0028 */ lw $t2, 0x0028($sp)
/* 00800 80A3DEE0 3C0980A4 */ lui $t1, %hi(func_80A3DD7C) ## $t1 = 80A40000
/* 00804 80A3DEE4 2529DD7C */ addiu $t1, $t1, %lo(func_80A3DD7C) ## $t1 = 80A3DD7C
/* 00808 80A3DEE8 AD49026C */ sw $t1, 0x026C($t2) ## 0000026C
.L80A3DEEC:
/* 0080C 80A3DEEC 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A3DEF0:
/* 00810 80A3DEF0 8FB00020 */ lw $s0, 0x0020($sp)
/* 00814 80A3DEF4 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00818 80A3DEF8 03E00008 */ jr $ra
/* 0081C 80A3DEFC 00000000 */ nop

View file

@ -1,27 +0,0 @@
glabel func_80A3DF00
/* 00820 80A3DF00 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00824 80A3DF04 AFBF001C */ sw $ra, 0x001C($sp)
/* 00828 80A3DF08 AFA50024 */ sw $a1, 0x0024($sp)
/* 0082C 80A3DF0C 0C00BD04 */ jal Actor_HasParent
/* 00830 80A3DF10 AFA40020 */ sw $a0, 0x0020($sp)
/* 00834 80A3DF14 10400006 */ beq $v0, $zero, .L80A3DF30
/* 00838 80A3DF18 8FA40020 */ lw $a0, 0x0020($sp)
/* 0083C 80A3DF1C 3C0E80A4 */ lui $t6, %hi(func_80A3DF60) ## $t6 = 80A40000
/* 00840 80A3DF20 25CEDF60 */ addiu $t6, $t6, %lo(func_80A3DF60) ## $t6 = 80A3DF60
/* 00844 80A3DF24 AC800118 */ sw $zero, 0x0118($a0) ## 00000118
/* 00848 80A3DF28 10000009 */ beq $zero, $zero, .L80A3DF50
/* 0084C 80A3DF2C AC8E026C */ sw $t6, 0x026C($a0) ## 0000026C
.L80A3DF30:
/* 00850 80A3DF30 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00854 80A3DF34 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00
/* 00858 80A3DF38 3C0743CF */ lui $a3, 0x43CF ## $a3 = 43CF0000
/* 0085C 80A3DF3C 34E78000 */ ori $a3, $a3, 0x8000 ## $a3 = 43CF8000
/* 00860 80A3DF40 8FA50024 */ lw $a1, 0x0024($sp)
/* 00864 80A3DF44 24060028 */ addiu $a2, $zero, 0x0028 ## $a2 = 00000028
/* 00868 80A3DF48 0C00BD0D */ jal func_8002F434
/* 0086C 80A3DF4C E7A40010 */ swc1 $f4, 0x0010($sp)
.L80A3DF50:
/* 00870 80A3DF50 8FBF001C */ lw $ra, 0x001C($sp)
/* 00874 80A3DF54 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00878 80A3DF58 03E00008 */ jr $ra
/* 0087C 80A3DF5C 00000000 */ nop

View file

@ -1,25 +0,0 @@
glabel func_80A3DF60
/* 00880 80A3DF60 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00884 80A3DF64 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00888 80A3DF68 AFA40018 */ sw $a0, 0x0018($sp)
/* 0088C 80A3DF6C AFA5001C */ sw $a1, 0x001C($sp)
/* 00890 80A3DF70 0C042F6F */ jal func_8010BDBC
/* 00894 80A3DF74 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 00898 80A3DF78 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 0089C 80A3DF7C 5441000C */ bnel $v0, $at, .L80A3DFB0
/* 008A0 80A3DF80 8FBF0014 */ lw $ra, 0x0014($sp)
/* 008A4 80A3DF84 0C041AF2 */ jal func_80106BC8
/* 008A8 80A3DF88 8FA4001C */ lw $a0, 0x001C($sp)
/* 008AC 80A3DF8C 50400008 */ beql $v0, $zero, .L80A3DFB0
/* 008B0 80A3DF90 8FBF0014 */ lw $ra, 0x0014($sp)
/* 008B4 80A3DF94 0C021CC3 */ jal Rupees_ChangeBy
/* 008B8 80A3DF98 2404FF38 */ addiu $a0, $zero, 0xFF38 ## $a0 = FFFFFF38
/* 008BC 80A3DF9C 8FAF0018 */ lw $t7, 0x0018($sp)
/* 008C0 80A3DFA0 3C0E80A4 */ lui $t6, %hi(func_80A3DC44) ## $t6 = 80A40000
/* 008C4 80A3DFA4 25CEDC44 */ addiu $t6, $t6, %lo(func_80A3DC44) ## $t6 = 80A3DC44
/* 008C8 80A3DFA8 ADEE026C */ sw $t6, 0x026C($t7) ## 0000026C
/* 008CC 80A3DFAC 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A3DFB0:
/* 008D0 80A3DFB0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 008D4 80A3DFB4 03E00008 */ jr $ra
/* 008D8 80A3DFB8 00000000 */ nop

View file

@ -1,47 +0,0 @@
glabel func_80A3DFBC
/* 008DC 80A3DFBC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 008E0 80A3DFC0 AFBF001C */ sw $ra, 0x001C($sp)
/* 008E4 80A3DFC4 AFB00018 */ sw $s0, 0x0018($sp)
/* 008E8 80A3DFC8 808E02BC */ lb $t6, 0x02BC($a0) ## 000002BC
/* 008EC 80A3DFCC 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000
/* 008F0 80A3DFD0 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 008F4 80A3DFD4 000E7900 */ sll $t7, $t6, 4
/* 008F8 80A3DFD8 01EE7821 */ addu $t7, $t7, $t6
/* 008FC 80A3DFDC 000F7880 */ sll $t7, $t7, 2
/* 00900 80A3DFE0 00AFC021 */ addu $t8, $a1, $t7
/* 00904 80A3DFE4 0338C821 */ addu $t9, $t9, $t8
/* 00908 80A3DFE8 8F3917B4 */ lw $t9, 0x17B4($t9) ## 000117B4
/* 0090C 80A3DFEC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00910 80A3DFF0 03214021 */ addu $t0, $t9, $at
/* 00914 80A3DFF4 3C018016 */ lui $at, %hi(gSegments+0x18)
/* 00918 80A3DFF8 AC286FC0 */ sw $t0, %lo(gSegments+0x18)($at)
/* 0091C 80A3DFFC 848902BE */ lh $t1, 0x02BE($a0) ## 000002BE
/* 00920 80A3E000 252A0001 */ addiu $t2, $t1, 0x0001 ## $t2 = 00000001
/* 00924 80A3E004 A48A02BE */ sh $t2, 0x02BE($a0) ## 000002BE
/* 00928 80A3E008 AFA50024 */ sw $a1, 0x0024($sp)
/* 0092C 80A3E00C 8E19026C */ lw $t9, 0x026C($s0) ## 0000026C
/* 00930 80A3E010 0320F809 */ jalr $ra, $t9
/* 00934 80A3E014 00000000 */ nop
/* 00938 80A3E018 860B0030 */ lh $t3, 0x0030($s0) ## 00000030
/* 0093C 80A3E01C 860C0032 */ lh $t4, 0x0032($s0) ## 00000032
/* 00940 80A3E020 860D0034 */ lh $t5, 0x0034($s0) ## 00000034
/* 00944 80A3E024 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00948 80A3E028 A60B0044 */ sh $t3, 0x0044($s0) ## 00000044
/* 0094C 80A3E02C A60C0046 */ sh $t4, 0x0046($s0) ## 00000046
/* 00950 80A3E030 0C28F676 */ jal func_80A3D9D8
/* 00954 80A3E034 A60D0048 */ sh $t5, 0x0048($s0) ## 00000048
/* 00958 80A3E038 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 0095C 80A3E03C 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00960 80A3E040 8FA40024 */ lw $a0, 0x0024($sp)
/* 00964 80A3E044 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00968 80A3E048 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 0096C 80A3E04C 26060270 */ addiu $a2, $s0, 0x0270 ## $a2 = 00000270
/* 00970 80A3E050 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 00974 80A3E054 00812821 */ addu $a1, $a0, $at
/* 00978 80A3E058 8FBF001C */ lw $ra, 0x001C($sp)
/* 0097C 80A3E05C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00980 80A3E060 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00984 80A3E064 03E00008 */ jr $ra
/* 00988 80A3E068 00000000 */ nop

View file

@ -1,88 +0,0 @@
glabel func_80A3E090
/* 009B0 80A3E090 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 009B4 80A3E094 AFBF0024 */ sw $ra, 0x0024($sp)
/* 009B8 80A3E098 AFB00020 */ sw $s0, 0x0020($sp)
/* 009BC 80A3E09C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 009C0 80A3E0A0 0C034213 */ jal Matrix_Push
/* 009C4 80A3E0A4 F7B40018 */ sdc1 $f20, 0x0018($sp)
/* 009C8 80A3E0A8 4480A000 */ mtc1 $zero, $f20 ## $f20 = 0.00
/* 009CC 80A3E0AC 3C064522 */ lui $a2, 0x4522 ## $a2 = 45220000
/* 009D0 80A3E0B0 34C68000 */ ori $a2, $a2, 0x8000 ## $a2 = 45228000
/* 009D4 80A3E0B4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 009D8 80A3E0B8 4600A306 */ mov.s $f12, $f20
/* 009DC 80A3E0BC 0C034261 */ jal Matrix_Translate
/* 009E0 80A3E0C0 4600A386 */ mov.s $f14, $f20
/* 009E4 80A3E0C4 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 009E8 80A3E0C8 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 009EC 80A3E0CC 86060034 */ lh $a2, 0x0034($s0) ## 00000034
/* 009F0 80A3E0D0 0C034421 */ jal Matrix_RotateRPY
/* 009F4 80A3E0D4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 009F8 80A3E0D8 E7B4003C */ swc1 $f20, 0x003C($sp)
/* 009FC 80A3E0DC E7B40038 */ swc1 $f20, 0x0038($sp)
/* 00A00 80A3E0E0 E7B40034 */ swc1 $f20, 0x0034($sp)
/* 00A04 80A3E0E4 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFF4
/* 00A08 80A3E0E8 0C0346BD */ jal Matrix_MultVec3f
/* 00A0C 80A3E0EC 27A50028 */ addiu $a1, $sp, 0x0028 ## $a1 = FFFFFFE8
/* 00A10 80A3E0F0 C7A40028 */ lwc1 $f4, 0x0028($sp)
/* 00A14 80A3E0F4 4600218D */ trunc.w.s $f6, $f4
/* 00A18 80A3E0F8 440F3000 */ mfc1 $t7, $f6
/* 00A1C 80A3E0FC 00000000 */ nop
/* 00A20 80A3E100 A60F02B6 */ sh $t7, 0x02B6($s0) ## 000002B6
/* 00A24 80A3E104 C7A8002C */ lwc1 $f8, 0x002C($sp)
/* 00A28 80A3E108 4600428D */ trunc.w.s $f10, $f8
/* 00A2C 80A3E10C 44195000 */ mfc1 $t9, $f10
/* 00A30 80A3E110 00000000 */ nop
/* 00A34 80A3E114 A61902B8 */ sh $t9, 0x02B8($s0) ## 000002B8
/* 00A38 80A3E118 C7B00030 */ lwc1 $f16, 0x0030($sp)
/* 00A3C 80A3E11C 4600848D */ trunc.w.s $f18, $f16
/* 00A40 80A3E120 44099000 */ mfc1 $t1, $f18
/* 00A44 80A3E124 0C034221 */ jal Matrix_Pull
/* 00A48 80A3E128 A60902BA */ sh $t1, 0x02BA($s0) ## 000002BA
/* 00A4C 80A3E12C 0C034213 */ jal Matrix_Push
/* 00A50 80A3E130 00000000 */ nop
/* 00A54 80A3E134 3C064586 */ lui $a2, 0x4586 ## $a2 = 45860000
/* 00A58 80A3E138 34C66000 */ ori $a2, $a2, 0x6000 ## $a2 = 45866000
/* 00A5C 80A3E13C 4600A306 */ mov.s $f12, $f20
/* 00A60 80A3E140 4600A386 */ mov.s $f14, $f20
/* 00A64 80A3E144 0C034261 */ jal Matrix_Translate
/* 00A68 80A3E148 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00A6C 80A3E14C 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 00A70 80A3E150 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 00A74 80A3E154 86060034 */ lh $a2, 0x0034($s0) ## 00000034
/* 00A78 80A3E158 0C034421 */ jal Matrix_RotateRPY
/* 00A7C 80A3E15C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00A80 80A3E160 E7B4003C */ swc1 $f20, 0x003C($sp)
/* 00A84 80A3E164 E7B40038 */ swc1 $f20, 0x0038($sp)
/* 00A88 80A3E168 E7B40034 */ swc1 $f20, 0x0034($sp)
/* 00A8C 80A3E16C 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFF4
/* 00A90 80A3E170 0C0346BD */ jal Matrix_MultVec3f
/* 00A94 80A3E174 260502C4 */ addiu $a1, $s0, 0x02C4 ## $a1 = 000002C4
/* 00A98 80A3E178 0C034221 */ jal Matrix_Pull
/* 00A9C 80A3E17C 00000000 */ nop
/* 00AA0 80A3E180 3C06456D */ lui $a2, 0x456D ## $a2 = 456D0000
/* 00AA4 80A3E184 34C68000 */ ori $a2, $a2, 0x8000 ## $a2 = 456D8000
/* 00AA8 80A3E188 4600A306 */ mov.s $f12, $f20
/* 00AAC 80A3E18C 4600A386 */ mov.s $f14, $f20
/* 00AB0 80A3E190 0C034261 */ jal Matrix_Translate
/* 00AB4 80A3E194 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00AB8 80A3E198 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 00ABC 80A3E19C 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 00AC0 80A3E1A0 86060034 */ lh $a2, 0x0034($s0) ## 00000034
/* 00AC4 80A3E1A4 0C034421 */ jal Matrix_RotateRPY
/* 00AC8 80A3E1A8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00ACC 80A3E1AC E7B4003C */ swc1 $f20, 0x003C($sp)
/* 00AD0 80A3E1B0 E7B40038 */ swc1 $f20, 0x0038($sp)
/* 00AD4 80A3E1B4 E7B40034 */ swc1 $f20, 0x0034($sp)
/* 00AD8 80A3E1B8 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFF4
/* 00ADC 80A3E1BC 0C0346BD */ jal Matrix_MultVec3f
/* 00AE0 80A3E1C0 26050038 */ addiu $a1, $s0, 0x0038 ## $a1 = 00000038
/* 00AE4 80A3E1C4 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00AE8 80A3E1C8 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00
/* 00AEC 80A3E1CC C604003C */ lwc1 $f4, 0x003C($s0) ## 0000003C
/* 00AF0 80A3E1D0 46062200 */ add.s $f8, $f4, $f6
/* 00AF4 80A3E1D4 E608003C */ swc1 $f8, 0x003C($s0) ## 0000003C
/* 00AF8 80A3E1D8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00AFC 80A3E1DC 8FB00020 */ lw $s0, 0x0020($sp)
/* 00B00 80A3E1E0 D7B40018 */ ldc1 $f20, 0x0018($sp)
/* 00B04 80A3E1E4 03E00008 */ jr $ra
/* 00B08 80A3E1E8 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000

View file

@ -1,92 +0,0 @@
.rdata
glabel D_80A3E40C
.asciz "../z_en_gm.c"
.balign 4
glabel D_80A3E41C
.asciz "../z_en_gm.c"
.balign 4
.text
glabel func_80A3E1EC
/* 00B0C 80A3E1EC 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 00B10 80A3E1F0 AFBF002C */ sw $ra, 0x002C($sp)
/* 00B14 80A3E1F4 AFB00028 */ sw $s0, 0x0028($sp)
/* 00B18 80A3E1F8 AFA5005C */ sw $a1, 0x005C($sp)
/* 00B1C 80A3E1FC 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00B20 80A3E200 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00B24 80A3E204 3C0680A4 */ lui $a2, %hi(D_80A3E40C) ## $a2 = 80A40000
/* 00B28 80A3E208 24C6E40C */ addiu $a2, $a2, %lo(D_80A3E40C) ## $a2 = 80A3E40C
/* 00B2C 80A3E20C 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFE4
/* 00B30 80A3E210 24070265 */ addiu $a3, $zero, 0x0265 ## $a3 = 00000265
/* 00B34 80A3E214 0C031AB1 */ jal Graph_OpenDisps
/* 00B38 80A3E218 AFA5004C */ sw $a1, 0x004C($sp)
/* 00B3C 80A3E21C 8FAF005C */ lw $t7, 0x005C($sp)
/* 00B40 80A3E220 0C024F46 */ jal func_80093D18
/* 00B44 80A3E224 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 00B48 80A3E228 8FA8004C */ lw $t0, 0x004C($sp)
/* 00B4C 80A3E22C 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
/* 00B50 80A3E230 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020
/* 00B54 80A3E234 8D0302C0 */ lw $v1, 0x02C0($t0) ## 000002C0
/* 00B58 80A3E238 3C0480A4 */ lui $a0, %hi(D_80A3E384) ## $a0 = 80A40000
/* 00B5C 80A3E23C 3C068016 */ lui $a2, %hi(gSegments)
/* 00B60 80A3E240 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008
/* 00B64 80A3E244 AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 00B68 80A3E248 AC790000 */ sw $t9, 0x0000($v1) ## 00000000
/* 00B6C 80A3E24C 920902C2 */ lbu $t1, 0x02C2($s0) ## 000002C2
/* 00B70 80A3E250 24C66FA8 */ addiu $a2, %lo(gSegments)
/* 00B74 80A3E254 3C0500FF */ lui $a1, 0x00FF ## $a1 = 00FF0000
/* 00B78 80A3E258 00095080 */ sll $t2, $t1, 2
/* 00B7C 80A3E25C 008A2021 */ addu $a0, $a0, $t2
/* 00B80 80A3E260 8C84E384 */ lw $a0, %lo(D_80A3E384)($a0)
/* 00B84 80A3E264 34A5FFFF */ ori $a1, $a1, 0xFFFF ## $a1 = 00FFFFFF
/* 00B88 80A3E268 3C078000 */ lui $a3, 0x8000 ## $a3 = 80000000
/* 00B8C 80A3E26C 00046100 */ sll $t4, $a0, 4
/* 00B90 80A3E270 000C6F02 */ srl $t5, $t4, 28
/* 00B94 80A3E274 000D7080 */ sll $t6, $t5, 2
/* 00B98 80A3E278 00CE7821 */ addu $t7, $a2, $t6
/* 00B9C 80A3E27C 8DF80000 */ lw $t8, 0x0000($t7) ## 00000000
/* 00BA0 80A3E280 00855824 */ and $t3, $a0, $a1
/* 00BA4 80A3E284 3C040601 */ lui $a0, 0x0601 ## $a0 = 06010000
/* 00BA8 80A3E288 0178C821 */ addu $t9, $t3, $t8
/* 00BAC 80A3E28C 03274821 */ addu $t1, $t9, $a3
/* 00BB0 80A3E290 AC690004 */ sw $t1, 0x0004($v1) ## 00000004
/* 00BB4 80A3E294 8D0302C0 */ lw $v1, 0x02C0($t0) ## 000002C0
/* 00BB8 80A3E298 2484DE80 */ addiu $a0, $a0, 0xDE80 ## $a0 = 0600DE80
/* 00BBC 80A3E29C 00046900 */ sll $t5, $a0, 4
/* 00BC0 80A3E2A0 000D7702 */ srl $t6, $t5, 28
/* 00BC4 80A3E2A4 3C0CDB06 */ lui $t4, 0xDB06 ## $t4 = DB060000
/* 00BC8 80A3E2A8 246A0008 */ addiu $t2, $v1, 0x0008 ## $t2 = 00000008
/* 00BCC 80A3E2AC 358C0024 */ ori $t4, $t4, 0x0024 ## $t4 = DB060024
/* 00BD0 80A3E2B0 000E7880 */ sll $t7, $t6, 2
/* 00BD4 80A3E2B4 AD0A02C0 */ sw $t2, 0x02C0($t0) ## 000002C0
/* 00BD8 80A3E2B8 00CF5821 */ addu $t3, $a2, $t7
/* 00BDC 80A3E2BC AC6C0000 */ sw $t4, 0x0000($v1) ## 00000000
/* 00BE0 80A3E2C0 8D780000 */ lw $t8, 0x0000($t3) ## 00000000
/* 00BE4 80A3E2C4 0085C824 */ and $t9, $a0, $a1
/* 00BE8 80A3E2C8 03194821 */ addu $t1, $t8, $t9
/* 00BEC 80A3E2CC 01275021 */ addu $t2, $t1, $a3
/* 00BF0 80A3E2D0 AC6A0004 */ sw $t2, 0x0004($v1) ## 00000004
/* 00BF4 80A3E2D4 9207014E */ lbu $a3, 0x014E($s0) ## 0000014E
/* 00BF8 80A3E2D8 8E06016C */ lw $a2, 0x016C($s0) ## 0000016C
/* 00BFC 80A3E2DC 8E050150 */ lw $a1, 0x0150($s0) ## 00000150
/* 00C00 80A3E2E0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00C04 80A3E2E4 AFA00014 */ sw $zero, 0x0014($sp)
/* 00C08 80A3E2E8 AFA00010 */ sw $zero, 0x0010($sp)
/* 00C0C 80A3E2EC 0C0286B2 */ jal SkelAnime_DrawFlexOpa
/* 00C10 80A3E2F0 8FA4005C */ lw $a0, 0x005C($sp)
/* 00C14 80A3E2F4 8FAC005C */ lw $t4, 0x005C($sp)
/* 00C18 80A3E2F8 3C0680A4 */ lui $a2, %hi(D_80A3E41C) ## $a2 = 80A40000
/* 00C1C 80A3E2FC 24C6E41C */ addiu $a2, $a2, %lo(D_80A3E41C) ## $a2 = 80A3E41C
/* 00C20 80A3E300 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFE4
/* 00C24 80A3E304 24070275 */ addiu $a3, $zero, 0x0275 ## $a3 = 00000275
/* 00C28 80A3E308 0C031AD5 */ jal Graph_CloseDisps
/* 00C2C 80A3E30C 8D850000 */ lw $a1, 0x0000($t4) ## 00000000
/* 00C30 80A3E310 0C28F824 */ jal func_80A3E090
/* 00C34 80A3E314 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C38 80A3E318 8FBF002C */ lw $ra, 0x002C($sp)
/* 00C3C 80A3E31C 8FB00028 */ lw $s0, 0x0028($sp)
/* 00C40 80A3E320 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000
/* 00C44 80A3E324 03E00008 */ jr $ra
/* 00C48 80A3E328 00000000 */ nop
/* 00C4C 80A3E32C 00000000 */ nop

View file

@ -1,24 +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_Gm_InitVars
.word 0x013D0400, 0x00000019, 0x00C90000, 0x000002D0
.word EnGm_Init
.word EnGm_Destroy
.word EnGm_Update
.word 0x00000000
glabel D_80A3E350
.word 0x0A000039, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00640078, 0x00000000, 0x00000000
glabel D_80A3E37C
.word 0x801F0005, 0x304C001E
glabel D_80A3E384
.word 0x0600CE80, 0x0600D280, 0x0600D680

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_80A3E440
.incbin "baserom/ovl_En_Gm", 0xD60, 0x00000130

3
spec
View file

@ -2396,8 +2396,7 @@ endseg
beginseg
name "ovl_En_Gm"
include "build/src/overlays/actors/ovl_En_Gm/z_en_gm.o"
include "build/data/overlays/actors/z_en_gm.data.o"
include "build/data/overlays/actors/z_en_gm.reloc.o"
include "build/src/overlays/actors/ovl_En_Gm/ovl_En_Gm_reloc.o"
endseg
beginseg

View file

@ -1,4 +1,11 @@
/*
* File: z_en_gm.c
* Overlay: ovl_En_Gm
* Description: Medi-Goron
*/
#include "z_en_gm.h"
#include "vt.h"
#define FLAGS 0x00000019
@ -7,8 +14,22 @@
void EnGm_Init(Actor* thisx, GlobalContext* globalCtx);
void EnGm_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnGm_Update(Actor* thisx, GlobalContext* globalCtx);
void EnGm_Draw(Actor* thisx, GlobalContext* globalCtx);
void func_80A3D838(EnGm* this, GlobalContext* globalCtx);
void func_80A3DFBC(EnGm* this, GlobalContext* globalCtx);
void func_80A3DB04(EnGm* this, GlobalContext* globalCtx);
void func_80A3DC44(EnGm* this, GlobalContext* globalCtx);
void func_80A3DBF4(EnGm* this, GlobalContext* globalCtx);
void func_80A3DD7C(EnGm* this, GlobalContext* globalCtx);
void EnGm_ProcessChoiceIndex(EnGm* this, GlobalContext* globalCtx);
void func_80A3DF00(EnGm* this, GlobalContext* globalCtx);
void func_80A3DF60(EnGm* this, GlobalContext* globalCtx);
extern UNK_TYPE D_0600DE80[];
extern FlexSkeletonHeader D_0600FEF0;
extern AnimationHeader D_060002B8;
/*
const ActorInit En_Gm_InitVars = {
ACTOR_EN_GM,
ACTORTYPE_NPC,
@ -20,37 +41,285 @@ const ActorInit En_Gm_InitVars = {
(ActorFunc)EnGm_Update,
NULL,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/EnGm_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/EnGm_Destroy.s")
static ColliderCylinderInit_Set3 sCylinderInit = {
{ COLTYPE_UNK10, 0x00, 0x00, 0x39, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
{ 100, 120, 0, { 0, 0, 0 } },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3D7C8.s")
static InitChainEntry sInitChain[] = {
ICHAIN_U8(unk_1F, 5, ICHAIN_CONTINUE),
ICHAIN_F32(unk_4C, 30, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3D838.s")
void EnGm_Init(Actor* thisx, GlobalContext* globalCtx) {
EnGm* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3D9D8.s")
Actor_ProcessInitChain(&this->actor, sInitChain);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3DA50.s")
// Medi Goron"
osSyncPrintf(VT_FGCOL(GREEN) "%s[%d] : 中ゴロン[%d]" VT_RST "\n", "../z_en_gm.c", 133, this->actor.params);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3DB04.s")
this->objGmBankIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_GM);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3DBF4.s")
if (this->objGmBankIndex < 0) {
osSyncPrintf(VT_COL(RED, WHITE));
// "There is no model bank! !! (Medi Goron)"
osSyncPrintf("モデル バンクが無いよ!!(中ゴロン)\n");
osSyncPrintf(VT_RST);
__assert("0", "../z_en_gm.c", 145);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3DC44.s")
this->updateFunc = func_80A3D838;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3DD7C.s")
void EnGm_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnGm* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3DE10.s")
Collider_DestroyCylinder(globalCtx, &this->collider);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3DF00.s")
s32 func_80A3D7C8(void) {
if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
return 0;
} else if (!(gBitFlags[2] & gSaveContext.inventory.equipment)) {
return 1;
} else if (gBitFlags[3] & gSaveContext.inventory.equipment) {
return 2;
} else {
return 3;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3DF60.s")
void func_80A3D838(EnGm* this, GlobalContext* globalCtx) {
if (Object_IsLoaded(&globalCtx->objectCtx, this->objGmBankIndex)) {
this->actor.flags &= ~0x10;
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_0600FEF0, NULL, this->limbDrawTable,
this->transitionDrawTable, 18);
gSegments[6] = VIRTUAL_TO_PHYSICAL(globalCtx->objectCtx.status[this->objGmBankIndex].segment);
SkelAnime_ChangeAnim(&this->skelAnime, &D_060002B8, 1.0f, 0.0f,
SkelAnime_GetFrameCount(&D_060002B8.genericHeader), 0, 0.0f);
this->actor.draw = EnGm_Draw;
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder_Set3(globalCtx, &this->collider, &this->actor, &sCylinderInit);
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 35.0f);
Actor_SetScale(&this->actor, 0.05f);
this->actor.colChkInfo.mass = 0xFF;
this->eyeTexIndex = 0;
this->blinkTimer = 20;
this->actor.textId = 0x3049;
this->updateFunc = func_80A3DFBC;
this->actionFunc = func_80A3DB04;
this->actor.speedXZ = 0.0f;
this->actor.gravity = -1.0f;
this->actor.velocity.y = 0.0f;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3DFBC.s")
void EnGm_UpdateEye(EnGm* this) {
if (this->blinkTimer != 0) {
this->blinkTimer--;
} else {
this->eyeTexIndex++;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/EnGm_Update.s")
if (this->eyeTexIndex >= 3) {
this->eyeTexIndex = 0;
this->blinkTimer = Math_Rand_ZeroFloat(60.0f) + 20.0f;
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3E090.s")
void EnGm_SetTextID(EnGm* this) {
switch (func_80A3D7C8()) {
case 0:
if (gSaveContext.infTable[11] & 1) {
this->actor.textId = 0x304B;
} else {
this->actor.textId = 0x304A;
}
break;
case 1:
if (gSaveContext.infTable[11] & 2) {
this->actor.textId = 0x304F;
} else {
this->actor.textId = 0x304C;
}
break;
case 2:
this->actor.textId = 0x304E;
break;
case 3:
this->actor.textId = 0x304D;
break;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Gm/func_80A3E1EC.s")
void func_80A3DB04(EnGm* this, GlobalContext* globalCtx) {
f32 dx;
f32 dz;
Player* player = PLAYER;
dx = this->talkPos.x - player->actor.posRot.pos.x;
dz = this->talkPos.z - player->actor.posRot.pos.z;
if (Flags_GetSwitch(globalCtx, this->actor.params)) {
EnGm_SetTextID(this);
this->actionFunc = func_80A3DC44;
} else if (func_8002F194(&this->actor, globalCtx)) {
this->actionFunc = func_80A3DBF4;
} else if ((this->collider.base.maskA & 2) || (SQ(dx) + SQ(dz)) < SQ(100.0f)) {
this->collider.base.acFlags &= ~2;
func_8002F2CC(&this->actor, globalCtx, 415.0f);
}
}
void func_80A3DBF4(EnGm* this, GlobalContext* globalCtx) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) {
this->actionFunc = func_80A3DB04;
}
}
void func_80A3DC44(EnGm* this, GlobalContext* globalCtx) {
f32 dx;
f32 dz;
s32 pad;
Player* player = PLAYER;
EnGm_SetTextID(this);
dx = this->talkPos.x - player->actor.posRot.pos.x;
dz = this->talkPos.z - player->actor.posRot.pos.z;
if (func_8002F194(&this->actor, globalCtx)) {
switch (func_80A3D7C8()) {
case 0:
gSaveContext.infTable[11] |= 1;
case 3:
this->actionFunc = func_80A3DD7C;
return;
case 1:
gSaveContext.infTable[11] |= 2;
case 2:
this->actionFunc = EnGm_ProcessChoiceIndex;
default:
return;
}
this->actionFunc = EnGm_ProcessChoiceIndex;
}
if ((this->collider.base.maskA & 2) || (SQ(dx) + SQ(dz)) < SQ(100.0f)) {
this->collider.base.acFlags &= ~2;
func_8002F2CC(&this->actor, globalCtx, 415.0f);
}
}
void func_80A3DD7C(EnGm* this, GlobalContext* globalCtx) {
u8 dialogState = func_8010BDBC(&globalCtx->msgCtx);
if ((dialogState == 6 || dialogState == 5) && func_80106BC8(globalCtx)) {
this->actionFunc = func_80A3DC44;
if (dialogState == 5) {
globalCtx->msgCtx.msgMode = 0x36;
globalCtx->msgCtx.unk_E3E7 = 4;
}
}
}
void EnGm_ProcessChoiceIndex(EnGm* this, GlobalContext* globalCtx) {
if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) {
switch (globalCtx->msgCtx.choiceIndex) {
case 0: // yes
if (gSaveContext.rupees < 200) {
func_8010B720(globalCtx, 0xC8);
this->actionFunc = func_80A3DD7C;
} else {
func_8002F434(&this->actor, globalCtx, GI_SWORD_KNIFE, 415.0f, 10.0f);
this->actionFunc = func_80A3DF00;
}
break;
case 1: // no
func_8010B720(globalCtx, 0x3050);
this->actionFunc = func_80A3DD7C;
break;
}
}
}
void func_80A3DF00(EnGm* this, GlobalContext* globalCtx) {
if (Actor_HasParent(&this->actor, globalCtx)) {
this->actor.parent = NULL;
this->actionFunc = func_80A3DF60;
} else {
func_8002F434(&this->actor, globalCtx, GI_SWORD_KNIFE, 415.0f, 10.0f);
}
}
void func_80A3DF60(EnGm* this, GlobalContext* globalCtx) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) {
Rupees_ChangeBy(-200);
this->actionFunc = func_80A3DC44;
}
}
void func_80A3DFBC(EnGm* this, GlobalContext* globalCtx) {
gSegments[6] = VIRTUAL_TO_PHYSICAL(globalCtx->objectCtx.status[this->objGmBankIndex].segment);
this->timer++;
this->actionFunc(this, globalCtx);
this->actor.posRot2.rot.x = this->actor.posRot.rot.x;
this->actor.posRot2.rot.y = this->actor.posRot.rot.y;
this->actor.posRot2.rot.z = this->actor.posRot.rot.z;
EnGm_UpdateEye(this);
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
void EnGm_Update(Actor* thisx, GlobalContext* globalCtx) {
EnGm* this = THIS;
this->updateFunc(this, globalCtx);
}
void func_80A3E090(EnGm* this) {
Vec3f vec1;
Vec3f vec2;
Matrix_Push();
Matrix_Translate(0.0f, 0.0f, 2600.0f, MTXMODE_APPLY);
Matrix_RotateRPY(this->actor.posRot.rot.x, this->actor.posRot.rot.y, this->actor.posRot.rot.z, MTXMODE_APPLY);
vec1.x = vec1.y = vec1.z = 0.0f;
Matrix_MultVec3f(&vec1, &vec2);
this->collider.dim.pos.x = vec2.x;
this->collider.dim.pos.y = vec2.y;
this->collider.dim.pos.z = vec2.z;
Matrix_Pull();
Matrix_Push();
Matrix_Translate(0.0f, 0.0f, 4300.0f, MTXMODE_APPLY);
Matrix_RotateRPY(this->actor.posRot.rot.x, this->actor.posRot.rot.y, this->actor.posRot.rot.z, MTXMODE_APPLY);
vec1.x = vec1.y = vec1.z = 0.0f;
Matrix_MultVec3f(&vec1, &this->talkPos);
Matrix_Pull();
Matrix_Translate(0.0f, 0.0f, 3800.0f, MTXMODE_APPLY);
Matrix_RotateRPY(this->actor.posRot.rot.x, this->actor.posRot.rot.y, this->actor.posRot.rot.z, MTXMODE_APPLY);
vec1.x = vec1.y = vec1.z = 0.0f;
Matrix_MultVec3f(&vec1, &this->actor.posRot2.pos);
this->actor.posRot2.pos.y += 100.0f;
}
void EnGm_Draw(Actor* thisx, GlobalContext* globalCtx) {
static UNK_PTR eyeTextures[] = { 0x0600CE80, 0x0600D280, 0x0600D680 };
EnGm* this = THIS;
s32 pad;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_gm.c", 613);
func_80093D18(globalCtx->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(eyeTextures[this->eyeTexIndex]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(D_0600DE80));
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount,
NULL, NULL, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_gm.c", 629);
func_80A3E090(this);
}

View file

@ -6,9 +6,22 @@
struct EnGm;
typedef void (*EnGmUpdateFunc)(struct EnGm*, GlobalContext*);
typedef void (*EnGmActionFunc)(struct EnGm*, GlobalContext*);
typedef struct EnGm {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x184];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s limbDrawTable[18];
/* 0x01FC */ Vec3s transitionDrawTable[18];
/* 0x0268 */ EnGmUpdateFunc updateFunc;
/* 0x026C */ EnGmActionFunc actionFunc;
/* 0x0270 */ ColliderCylinder collider;
/* 0x02BC */ s8 objGmBankIndex;
/* 0x02BE */ s16 timer;
/* 0x02C0 */ s16 blinkTimer;
/* 0x02C2 */ u8 eyeTexIndex;
/* 0x02C4 */ Vec3f talkPos;
} EnGm; // size = 0x02D0
extern const ActorInit En_Gm_InitVars;

View file

@ -1465,6 +1465,11 @@ D_06000498 = 0x06000498;
// z_bg_menkuri_eye
D_06002D20 = 0x06002D20;
// z_en_gm
D_060002B8 = 0x060002B8;
D_0600FEF0 = 0x0600FEF0;
D_0600DE80 = 0x0600DE80;
// z_en_vm
D_06003F60 = 0x06003F60;
D_06000068 = 0x06000068;