1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-02 17:44:25 +00:00

Elf_Msg, Elf_Msg2 OK (#317)

* matched func_809AD700, ElfMsg2_Init

* func_809AD968 done

* func_809AD978 and func_809AD9F4 done

* func_809ADA28 done

* ElfMsg2_Update Done, ElfMsg2_Draw Started

* whole file decomped

* Matching and all symbols defined

* Formatting changes, not currently building

* run format.sh

* fixed typos in comments

* Changes to reflect comments

* C file matching, polish needed

* making parenthesis usage consistent

* Documenting draw function, Vtx and Gfx arrays

* Added japanese translation comments

* line spacing fix

* renaming stuff

* Early return in Draw

* naming updates

* Cleaning up names, comments and formatting after the merge

* comment cleanup

* more cleanup

* More cleanup

* Adding commas at end of arrays so they look nicer :)

* more cleanup

* removing unnecessary parentheses

* comment and code changes

* Name changes

* Renamings

* Removing documentation at top
This commit is contained in:
AdamKiddle 2020-08-18 19:31:34 +01:00 committed by GitHub
parent 13891f1366
commit 7a9c51375b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 396 additions and 1136 deletions

View file

@ -1,4 +0,0 @@
glabel ElfMsg_Destroy
/* 002A0 809ACDC0 AFA40000 */ sw $a0, 0x0000($sp)
/* 002A4 809ACDC4 03E00008 */ jr $ra
/* 002A8 809ACDC8 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,132 +0,0 @@
.rdata
glabel D_809AD5C0
.asciz "../z_elf_msg.c"
.balign 4
glabel D_809AD5D0
.asciz "../z_elf_msg.c"
.balign 4
glabel D_809AD5E0
.asciz "../z_elf_msg.c"
.balign 4
.text
glabel ElfMsg_Draw
/* 00570 809AD090 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00574 809AD094 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00578 809AD098 AFA40048 */ sw $a0, 0x0048($sp)
/* 0057C 809AD09C AFA5004C */ sw $a1, 0x004C($sp)
/* 00580 809AD0A0 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00584 809AD0A4 3C06809B */ lui $a2, %hi(D_809AD5C0) ## $a2 = 809B0000
/* 00588 809AD0A8 24C6D5C0 */ addiu $a2, $a2, %lo(D_809AD5C0) ## $a2 = 809AD5C0
/* 0058C 809AD0AC 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 00590 809AD0B0 240701B4 */ addiu $a3, $zero, 0x01B4 ## $a3 = 000001B4
/* 00594 809AD0B4 0C031AB1 */ jal Graph_OpenDisps
/* 00598 809AD0B8 AFA50044 */ sw $a1, 0x0044($sp)
/* 0059C 809AD0BC 3C058016 */ lui $a1, %hi(gGameInfo)
/* 005A0 809AD0C0 24A5FA90 */ addiu $a1, %lo(gGameInfo)
/* 005A4 809AD0C4 8CAF0000 */ lw $t7, 0x0000($a1) ## 8015FA90
/* 005A8 809AD0C8 8FA80044 */ lw $t0, 0x0044($sp)
/* 005AC 809AD0CC 8FB9004C */ lw $t9, 0x004C($sp)
/* 005B0 809AD0D0 85F812C2 */ lh $t8, 0x12C2($t7) ## 000012C2
/* 005B4 809AD0D4 53000059 */ beql $t8, $zero, .L809AD23C
/* 005B8 809AD0D8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 005BC 809AD0DC 8F240000 */ lw $a0, 0x0000($t9) ## 00000000
/* 005C0 809AD0E0 0C024F46 */ jal func_80093D18
/* 005C4 809AD0E4 AFA80044 */ sw $t0, 0x0044($sp)
/* 005C8 809AD0E8 8FA90048 */ lw $t1, 0x0048($sp)
/* 005CC 809AD0EC 3C058016 */ lui $a1, %hi(gGameInfo)
/* 005D0 809AD0F0 24A5FA90 */ addiu $a1, %lo(gGameInfo)
/* 005D4 809AD0F4 852A001C */ lh $t2, 0x001C($t1) ## 0000001C
/* 005D8 809AD0F8 8FA80044 */ lw $t0, 0x0044($sp)
/* 005DC 809AD0FC 240601C0 */ addiu $a2, $zero, 0x01C0 ## $a2 = 000001C0
/* 005E0 809AD100 314B8000 */ andi $t3, $t2, 0x8000 ## $t3 = 00000000
/* 005E4 809AD104 5160000F */ beql $t3, $zero, .L809AD144
/* 005E8 809AD108 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 005EC 809AD10C 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 005F0 809AD110 3C0DFA00 */ lui $t5, 0xFA00 ## $t5 = FA000000
/* 005F4 809AD114 3C01FF64 */ lui $at, 0xFF64 ## $at = FF640000
/* 005F8 809AD118 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 005FC 809AD11C AD0C02D0 */ sw $t4, 0x02D0($t0) ## 000002D0
/* 00600 809AD120 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 00604 809AD124 8CAE0000 */ lw $t6, 0x0000($a1) ## 8015FA90
/* 00608 809AD128 34216400 */ ori $at, $at, 0x6400 ## $at = FF646400
/* 0060C 809AD12C 85CF12C2 */ lh $t7, 0x12C2($t6) ## 000012C2
/* 00610 809AD130 31F800FF */ andi $t8, $t7, 0x00FF ## $t8 = 00000000
/* 00614 809AD134 0301C825 */ or $t9, $t8, $at ## $t9 = FF646400
/* 00618 809AD138 1000000C */ beq $zero, $zero, .L809AD16C
/* 0061C 809AD13C AC590004 */ sw $t9, 0x0004($v0) ## 00000004
/* 00620 809AD140 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
.L809AD144:
/* 00624 809AD144 3C0AFA00 */ lui $t2, 0xFA00 ## $t2 = FA000000
/* 00628 809AD148 2401FF00 */ addiu $at, $zero, 0xFF00 ## $at = FFFFFF00
/* 0062C 809AD14C 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 00630 809AD150 AD0902D0 */ sw $t1, 0x02D0($t0) ## 000002D0
/* 00634 809AD154 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 00638 809AD158 8CAB0000 */ lw $t3, 0x0000($a1) ## 8015FA90
/* 0063C 809AD15C 856C12C2 */ lh $t4, 0x12C2($t3) ## 000012C2
/* 00640 809AD160 318D00FF */ andi $t5, $t4, 0x00FF ## $t5 = 00000008
/* 00644 809AD164 01A17025 */ or $t6, $t5, $at ## $t6 = FFFFFF08
/* 00648 809AD168 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
.L809AD16C:
/* 0064C 809AD16C 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 00650 809AD170 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000
/* 00654 809AD174 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003
/* 00658 809AD178 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 0065C 809AD17C AD0F02D0 */ sw $t7, 0x02D0($t0) ## 000002D0
/* 00660 809AD180 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00664 809AD184 8FB9004C */ lw $t9, 0x004C($sp)
/* 00668 809AD188 3C05809B */ lui $a1, %hi(D_809AD5D0) ## $a1 = 809B0000
/* 0066C 809AD18C 24A5D5D0 */ addiu $a1, $a1, %lo(D_809AD5D0) ## $a1 = 809AD5D0
/* 00670 809AD190 8F240000 */ lw $a0, 0x0000($t9) ## FF646400
/* 00674 809AD194 AFA80044 */ sw $t0, 0x0044($sp)
/* 00678 809AD198 0C0346A2 */ jal Matrix_NewMtx
/* 0067C 809AD19C AFA20028 */ sw $v0, 0x0028($sp)
/* 00680 809AD1A0 8FA30028 */ lw $v1, 0x0028($sp)
/* 00684 809AD1A4 8FA80044 */ lw $t0, 0x0044($sp)
/* 00688 809AD1A8 3C0A809B */ lui $t2, %hi(D_809AD278) ## $t2 = 809B0000
/* 0068C 809AD1AC AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00690 809AD1B0 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 00694 809AD1B4 254AD278 */ addiu $t2, $t2, %lo(D_809AD278) ## $t2 = 809AD278
/* 00698 809AD1B8 3C04DE00 */ lui $a0, 0xDE00 ## $a0 = DE000000
/* 0069C 809AD1BC 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 006A0 809AD1C0 AD0902D0 */ sw $t1, 0x02D0($t0) ## 000002D0
/* 006A4 809AD1C4 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 006A8 809AD1C8 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
/* 006AC 809AD1CC 8FAB0048 */ lw $t3, 0x0048($sp)
/* 006B0 809AD1D0 3C06809B */ lui $a2, %hi(D_809AD5E0) ## $a2 = 809B0000
/* 006B4 809AD1D4 24C6D5E0 */ addiu $a2, $a2, %lo(D_809AD5E0) ## $a2 = 809AD5E0
/* 006B8 809AD1D8 856C001C */ lh $t4, 0x001C($t3) ## 0000001C
/* 006BC 809AD1DC 240701C9 */ addiu $a3, $zero, 0x01C9 ## $a3 = 000001C9
/* 006C0 809AD1E0 318D4000 */ andi $t5, $t4, 0x4000 ## $t5 = 00000000
/* 006C4 809AD1E4 51A0000A */ beql $t5, $zero, .L809AD210
/* 006C8 809AD1E8 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 006CC 809AD1EC 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 006D0 809AD1F0 3C0F809B */ lui $t7, %hi(D_809AD4B8) ## $t7 = 809B0000
/* 006D4 809AD1F4 25EFD4B8 */ addiu $t7, $t7, %lo(D_809AD4B8) ## $t7 = 809AD4B8
/* 006D8 809AD1F8 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 006DC 809AD1FC AD0E02D0 */ sw $t6, 0x02D0($t0) ## 000002D0
/* 006E0 809AD200 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 006E4 809AD204 10000008 */ beq $zero, $zero, .L809AD228
/* 006E8 809AD208 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
/* 006EC 809AD20C 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
.L809AD210:
/* 006F0 809AD210 3C19809B */ lui $t9, %hi(D_809AD3B8) ## $t9 = 809B0000
/* 006F4 809AD214 2739D3B8 */ addiu $t9, $t9, %lo(D_809AD3B8) ## $t9 = 809AD3B8
/* 006F8 809AD218 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 006FC 809AD21C AD1802D0 */ sw $t8, 0x02D0($t0) ## 000002D0
/* 00700 809AD220 AC590004 */ sw $t9, 0x0004($v0) ## 00000004
/* 00704 809AD224 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
.L809AD228:
/* 00708 809AD228 8FA9004C */ lw $t1, 0x004C($sp)
/* 0070C 809AD22C 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 00710 809AD230 0C031AD5 */ jal Graph_CloseDisps
/* 00714 809AD234 8D250000 */ lw $a1, 0x0000($t1) ## 00000008
/* 00718 809AD238 8FBF0014 */ lw $ra, 0x0014($sp)
.L809AD23C:
/* 0071C 809AD23C 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 00720 809AD240 03E00008 */ jr $ra
/* 00724 809AD244 00000000 */ nop
/* 00728 809AD248 00000000 */ nop
/* 0072C 809AD24C 00000000 */ nop

View file

@ -1,121 +0,0 @@
.rdata
glabel D_809AD550
.asciz "\x1b[36m\n %d\x1b[m\n"
.balign 4
glabel D_809AD574
.asciz "\x1b[36m\nthisx->shape.angle.sy = %d\n\x1b[m"
.balign 4
glabel D_809AD59C
.asciz "\x1b[36m\n %d\x1b[m\n"
.balign 4
.late_rodata
glabel D_809AD5F0
.float 0.4
glabel D_809AD5F4
.float 0.04
glabel D_809AD5F8
.float 0.4
glabel D_809AD5FC
.float 0.04
.text
glabel ElfMsg_Init
/* 0015C 809ACC7C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00160 809ACC80 AFB00018 */ sw $s0, 0x0018($sp)
/* 00164 809ACC84 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00168 809ACC88 AFBF001C */ sw $ra, 0x001C($sp)
/* 0016C 809ACC8C AFA50024 */ sw $a1, 0x0024($sp)
/* 00170 809ACC90 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00174 809ACC94 3C04809B */ lui $a0, %hi(D_809AD550) ## $a0 = 809B0000
/* 00178 809ACC98 2484D550 */ addiu $a0, $a0, %lo(D_809AD550) ## $a0 = 809AD550
/* 0017C 809ACC9C 00052A03 */ sra $a1, $a1, 8
/* 00180 809ACCA0 0C00084C */ jal osSyncPrintf
/* 00184 809ACCA4 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00188 809ACCA8 3C04809B */ lui $a0, %hi(D_809AD574) ## $a0 = 809B0000
/* 0018C 809ACCAC 2484D574 */ addiu $a0, $a0, %lo(D_809AD574) ## $a0 = 809AD574
/* 00190 809ACCB0 0C00084C */ jal osSyncPrintf
/* 00194 809ACCB4 860500B6 */ lh $a1, 0x00B6($s0) ## 000000B6
/* 00198 809ACCB8 860200B6 */ lh $v0, 0x00B6($s0) ## 000000B6
/* 0019C 809ACCBC 3C04809B */ lui $a0, %hi(D_809AD59C) ## $a0 = 809B0000
/* 001A0 809ACCC0 2484D59C */ addiu $a0, $a0, %lo(D_809AD59C) ## $a0 = 809AD59C
/* 001A4 809ACCC4 28410041 */ slti $at, $v0, 0x0041
/* 001A8 809ACCC8 54200004 */ bnel $at, $zero, .L809ACCDC
/* 001AC 809ACCCC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001B0 809ACCD0 0C00084C */ jal osSyncPrintf
/* 001B4 809ACCD4 2445FFBF */ addiu $a1, $v0, 0xFFBF ## $a1 = FFFFFFBF
/* 001B8 809ACCD8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L809ACCDC:
/* 001BC 809ACCDC 0C26B2CA */ jal func_809ACB28
/* 001C0 809ACCE0 8FA50024 */ lw $a1, 0x0024($sp)
/* 001C4 809ACCE4 14400031 */ bne $v0, $zero, .L809ACDAC
/* 001C8 809ACCE8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001CC 809ACCEC 3C05809B */ lui $a1, %hi(D_809AD270) ## $a1 = 809B0000
/* 001D0 809ACCF0 0C01E037 */ jal Actor_ProcessInitChain
/* 001D4 809ACCF4 24A5D270 */ addiu $a1, $a1, %lo(D_809AD270) ## $a1 = 809AD270
/* 001D8 809ACCF8 86020030 */ lh $v0, 0x0030($s0) ## 00000030
/* 001DC 809ACCFC 3C01809B */ lui $at, %hi(D_809AD5F0) ## $at = 809B0000
/* 001E0 809ACD00 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001E4 809ACD04 14400005 */ bne $v0, $zero, .L809ACD1C
/* 001E8 809ACD08 3C05809B */ lui $a1, %hi(func_809ACF18) ## $a1 = 809B0000
/* 001EC 809ACD0C C420D5F0 */ lwc1 $f0, %lo(D_809AD5F0)($at)
/* 001F0 809ACD10 E6000058 */ swc1 $f0, 0x0058($s0) ## 00000058
/* 001F4 809ACD14 1000000A */ beq $zero, $zero, .L809ACD40
/* 001F8 809ACD18 E6000050 */ swc1 $f0, 0x0050($s0) ## 00000050
.L809ACD1C:
/* 001FC 809ACD1C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00200 809ACD20 3C01809B */ lui $at, %hi(D_809AD5F4) ## $at = 809B0000
/* 00204 809ACD24 C428D5F4 */ lwc1 $f8, %lo(D_809AD5F4)($at)
/* 00208 809ACD28 468021A0 */ cvt.s.w $f6, $f4
/* 0020C 809ACD2C 3C01809B */ lui $at, %hi(D_809AD5F8) ## $at = 809B0000
/* 00210 809ACD30 46083002 */ mul.s $f0, $f6, $f8
/* 00214 809ACD34 E6000058 */ swc1 $f0, 0x0058($s0) ## 00000058
/* 00218 809ACD38 E6000050 */ swc1 $f0, 0x0050($s0) ## 00000050
/* 0021C 809ACD3C C420D5F8 */ lwc1 $f0, %lo(D_809AD5F8)($at)
.L809ACD40:
/* 00220 809ACD40 86020034 */ lh $v0, 0x0034($s0) ## 00000034
/* 00224 809ACD44 54400004 */ bnel $v0, $zero, .L809ACD58
/* 00228 809ACD48 44825000 */ mtc1 $v0, $f10 ## $f10 = 0.00
/* 0022C 809ACD4C 10000007 */ beq $zero, $zero, .L809ACD6C
/* 00230 809ACD50 E6000054 */ swc1 $f0, 0x0054($s0) ## 00000054
/* 00234 809ACD54 44825000 */ mtc1 $v0, $f10 ## $f10 = 0.00
.L809ACD58:
/* 00238 809ACD58 3C01809B */ lui $at, %hi(D_809AD5FC) ## $at = 809B0000
/* 0023C 809ACD5C C432D5FC */ lwc1 $f18, %lo(D_809AD5FC)($at)
/* 00240 809ACD60 46805420 */ cvt.s.w $f16, $f10
/* 00244 809ACD64 46128102 */ mul.s $f4, $f16, $f18
/* 00248 809ACD68 E6040054 */ swc1 $f4, 0x0054($s0) ## 00000054
.L809ACD6C:
/* 0024C 809ACD6C 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00250 809ACD70 31CF4000 */ andi $t7, $t6, 0x4000 ## $t7 = 00000000
/* 00254 809ACD74 11E00007 */ beq $t7, $zero, .L809ACD94
/* 00258 809ACD78 00000000 */ nop
/* 0025C 809ACD7C 3C05809B */ lui $a1, %hi(func_809ACDF8) ## $a1 = 809B0000
/* 00260 809ACD80 24A5CDF8 */ addiu $a1, $a1, %lo(func_809ACDF8) ## $a1 = 809ACDF8
/* 00264 809ACD84 0C26B2C8 */ jal func_809ACB20
/* 00268 809ACD88 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0026C 809ACD8C 10000004 */ beq $zero, $zero, .L809ACDA0
/* 00270 809ACD90 A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8
.L809ACD94:
/* 00274 809ACD94 0C26B2C8 */ jal func_809ACB20
/* 00278 809ACD98 24A5CF18 */ addiu $a1, $a1, %lo(func_809ACF18) ## $a1 = FFFFCF18
/* 0027C 809ACD9C A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8
.L809ACDA0:
/* 00280 809ACDA0 860200B8 */ lh $v0, 0x00B8($s0) ## 000000B8
/* 00284 809ACDA4 A60200B6 */ sh $v0, 0x00B6($s0) ## 000000B6
/* 00288 809ACDA8 A60200B4 */ sh $v0, 0x00B4($s0) ## 000000B4
.L809ACDAC:
/* 0028C 809ACDAC 8FBF001C */ lw $ra, 0x001C($sp)
/* 00290 809ACDB0 8FB00018 */ lw $s0, 0x0018($sp)
/* 00294 809ACDB4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00298 809ACDB8 03E00008 */ jr $ra
/* 0029C 809ACDBC 00000000 */ nop

View file

@ -1,54 +0,0 @@
glabel ElfMsg_Update
/* 004BC 809ACFDC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 004C0 809ACFE0 AFBF001C */ sw $ra, 0x001C($sp)
/* 004C4 809ACFE4 AFB10018 */ sw $s1, 0x0018($sp)
/* 004C8 809ACFE8 AFB00014 */ sw $s0, 0x0014($sp)
/* 004CC 809ACFEC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 004D0 809ACFF0 0C26B2CA */ jal func_809ACB28
/* 004D4 809ACFF4 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 004D8 809ACFF8 14400020 */ bne $v0, $zero, .L809AD07C
/* 004DC 809ACFFC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004E0 809AD000 0C00BC65 */ jal func_8002F194
/* 004E4 809AD004 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 004E8 809AD008 5040000E */ beql $v0, $zero, .L809AD044
/* 004EC 809AD00C 86020032 */ lh $v0, 0x0032($s0) ## 00000032
/* 004F0 809AD010 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 004F4 809AD014 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F
/* 004F8 809AD018 00052A03 */ sra $a1, $a1, 8
/* 004FC 809AD01C 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00500 809AD020 10A10003 */ beq $a1, $at, .L809AD030
/* 00504 809AD024 00000000 */ nop
/* 00508 809AD028 0C00B2DD */ jal Flags_SetSwitch
/* 0050C 809AD02C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L809AD030:
/* 00510 809AD030 0C00B55C */ jal Actor_Kill
/* 00514 809AD034 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00518 809AD038 10000011 */ beq $zero, $zero, .L809AD080
/* 0051C 809AD03C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00520 809AD040 86020032 */ lh $v0, 0x0032($s0) ## 00000032
.L809AD044:
/* 00524 809AD044 28410042 */ slti $at, $v0, 0x0042
/* 00528 809AD048 14200007 */ bne $at, $zero, .L809AD068
/* 0052C 809AD04C 28410081 */ slti $at, $v0, 0x0081
/* 00530 809AD050 10200005 */ beq $at, $zero, .L809AD068
/* 00534 809AD054 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00538 809AD058 0C00B2D0 */ jal Flags_GetSwitch
/* 0053C 809AD05C 2445FFBF */ addiu $a1, $v0, 0xFFBF ## $a1 = FFFFFFBF
/* 00540 809AD060 50400007 */ beql $v0, $zero, .L809AD080
/* 00544 809AD064 8FBF001C */ lw $ra, 0x001C($sp)
.L809AD068:
/* 00548 809AD068 8E19014C */ lw $t9, 0x014C($s0) ## 0000014C
/* 0054C 809AD06C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00550 809AD070 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00554 809AD074 0320F809 */ jalr $ra, $t9
/* 00558 809AD078 00000000 */ nop
.L809AD07C:
/* 0055C 809AD07C 8FBF001C */ lw $ra, 0x001C($sp)
.L809AD080:
/* 00560 809AD080 8FB00014 */ lw $s0, 0x0014($sp)
/* 00564 809AD084 8FB10018 */ lw $s1, 0x0018($sp)
/* 00568 809AD088 03E00008 */ jr $ra
/* 0056C 809AD08C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000

View file

@ -1,3 +0,0 @@
glabel func_809ACB20
/* 00000 809ACB20 03E00008 */ jr $ra
/* 00004 809ACB24 AC85014C */ sw $a1, 0x014C($a0) ## 0000014C

View file

@ -1,131 +0,0 @@
.rdata
glabel D_809AD500
.asciz "../z_elf_msg.c"
.balign 4
glabel D_809AD510
.asciz "\"\" = %s\n"
.balign 4
glabel D_809AD520
.asciz ""
.balign 4
glabel D_809AD528
.asciz "../z_elf_msg.c"
.balign 4
glabel D_809AD538
.asciz "\"\" = %s\n"
.balign 4
glabel D_809AD548
.asciz ""
.balign 4
.text
glabel func_809ACB28
/* 00008 809ACB28 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0000C 809ACB2C AFBF001C */ sw $ra, 0x001C($sp)
/* 00010 809ACB30 AFB00018 */ sw $s0, 0x0018($sp)
/* 00014 809ACB34 AFA50024 */ sw $a1, 0x0024($sp)
/* 00018 809ACB38 84820032 */ lh $v0, 0x0032($a0) ## 00000032
/* 0001C 809ACB3C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00020 809ACB40 1840001B */ blez $v0, .L809ACBB0
/* 00024 809ACB44 28410041 */ slti $at, $v0, 0x0041
/* 00028 809ACB48 10200019 */ beq $at, $zero, .L809ACBB0
/* 0002C 809ACB4C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00030 809ACB50 0C00B2D0 */ jal Flags_GetSwitch
/* 00034 809ACB54 2445FFFF */ addiu $a1, $v0, 0xFFFF ## $a1 = FFFFFFFF
/* 00038 809ACB58 10400015 */ beq $v0, $zero, .L809ACBB0
/* 0003C 809ACB5C 3C04809B */ lui $a0, %hi(D_809AD500) ## $a0 = 809B0000
/* 00040 809ACB60 2484D500 */ addiu $a0, $a0, %lo(D_809AD500) ## $a0 = 809AD500
/* 00044 809ACB64 0C000B84 */ jal LogUtils_LogThreadId
/* 00048 809ACB68 240500A1 */ addiu $a1, $zero, 0x00A1 ## $a1 = 000000A1
/* 0004C 809ACB6C 3C04809B */ lui $a0, %hi(D_809AD510) ## $a0 = 809B0000
/* 00050 809ACB70 3C05809B */ lui $a1, %hi(D_809AD520) ## $a1 = 809B0000
/* 00054 809ACB74 24A5D520 */ addiu $a1, $a1, %lo(D_809AD520) ## $a1 = 809AD520
/* 00058 809ACB78 0C00084C */ jal osSyncPrintf
/* 0005C 809ACB7C 2484D510 */ addiu $a0, $a0, %lo(D_809AD510) ## $a0 = 809AD510
/* 00060 809ACB80 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00064 809ACB84 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F
/* 00068 809ACB88 00052A03 */ sra $a1, $a1, 8
/* 0006C 809ACB8C 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00070 809ACB90 10A10003 */ beq $a1, $at, .L809ACBA0
/* 00074 809ACB94 00000000 */ nop
/* 00078 809ACB98 0C00B2DD */ jal Flags_SetSwitch
/* 0007C 809ACB9C 8FA40024 */ lw $a0, 0x0024($sp)
.L809ACBA0:
/* 00080 809ACBA0 0C00B55C */ jal Actor_Kill
/* 00084 809ACBA4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00088 809ACBA8 1000002F */ beq $zero, $zero, .L809ACC68
/* 0008C 809ACBAC 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809ACBB0:
/* 00090 809ACBB0 860E0032 */ lh $t6, 0x0032($s0) ## 00000032
/* 00094 809ACBB4 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 00098 809ACBB8 8FA40024 */ lw $a0, 0x0024($sp)
/* 0009C 809ACBBC 55C1001A */ bnel $t6, $at, .L809ACC28
/* 000A0 809ACBC0 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 000A4 809ACBC4 0C00B337 */ jal Flags_GetClear
/* 000A8 809ACBC8 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 000AC 809ACBCC 10400015 */ beq $v0, $zero, .L809ACC24
/* 000B0 809ACBD0 3C04809B */ lui $a0, %hi(D_809AD528) ## $a0 = 809B0000
/* 000B4 809ACBD4 2484D528 */ addiu $a0, $a0, %lo(D_809AD528) ## $a0 = 809AD528
/* 000B8 809ACBD8 0C000B84 */ jal LogUtils_LogThreadId
/* 000BC 809ACBDC 240500AC */ addiu $a1, $zero, 0x00AC ## $a1 = 000000AC
/* 000C0 809ACBE0 3C04809B */ lui $a0, %hi(D_809AD538) ## $a0 = 809B0000
/* 000C4 809ACBE4 3C05809B */ lui $a1, %hi(D_809AD548) ## $a1 = 809B0000
/* 000C8 809ACBE8 24A5D548 */ addiu $a1, $a1, %lo(D_809AD548) ## $a1 = 809AD548
/* 000CC 809ACBEC 0C00084C */ jal osSyncPrintf
/* 000D0 809ACBF0 2484D538 */ addiu $a0, $a0, %lo(D_809AD538) ## $a0 = 809AD538
/* 000D4 809ACBF4 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 000D8 809ACBF8 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F
/* 000DC 809ACBFC 00052A03 */ sra $a1, $a1, 8
/* 000E0 809ACC00 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 000E4 809ACC04 10A10003 */ beq $a1, $at, .L809ACC14
/* 000E8 809ACC08 00000000 */ nop
/* 000EC 809ACC0C 0C00B2DD */ jal Flags_SetSwitch
/* 000F0 809ACC10 8FA40024 */ lw $a0, 0x0024($sp)
.L809ACC14:
/* 000F4 809ACC14 0C00B55C */ jal Actor_Kill
/* 000F8 809ACC18 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000FC 809ACC1C 10000012 */ beq $zero, $zero, .L809ACC68
/* 00100 809ACC20 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809ACC24:
/* 00104 809ACC24 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
.L809ACC28:
/* 00108 809ACC28 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F
/* 0010C 809ACC2C 00052A03 */ sra $a1, $a1, 8
/* 00110 809ACC30 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00114 809ACC34 14A10003 */ bne $a1, $at, .L809ACC44
/* 00118 809ACC38 00000000 */ nop
/* 0011C 809ACC3C 1000000A */ beq $zero, $zero, .L809ACC68
/* 00120 809ACC40 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809ACC44:
/* 00124 809ACC44 0C00B2D0 */ jal Flags_GetSwitch
/* 00128 809ACC48 8FA40024 */ lw $a0, 0x0024($sp)
/* 0012C 809ACC4C 50400006 */ beql $v0, $zero, .L809ACC68
/* 00130 809ACC50 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00134 809ACC54 0C00B55C */ jal Actor_Kill
/* 00138 809ACC58 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0013C 809ACC5C 10000002 */ beq $zero, $zero, .L809ACC68
/* 00140 809ACC60 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00144 809ACC64 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809ACC68:
/* 00148 809ACC68 8FBF001C */ lw $ra, 0x001C($sp)
/* 0014C 809ACC6C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00150 809ACC70 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00154 809ACC74 03E00008 */ jr $ra
/* 00158 809ACC78 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_809ACDCC
/* 002AC 809ACDCC 8483001C */ lh $v1, 0x001C($a0) ## 0000001C
/* 002B0 809ACDD0 2418FF00 */ addiu $t8, $zero, 0xFF00 ## $t8 = FFFFFF00
/* 002B4 809ACDD4 306E8000 */ andi $t6, $v1, 0x8000 ## $t6 = 00000000
/* 002B8 809ACDD8 11C00004 */ beq $t6, $zero, .L809ACDEC
/* 002BC 809ACDDC 306F00FF */ andi $t7, $v1, 0x00FF ## $t7 = 00000000
/* 002C0 809ACDE0 306200FF */ andi $v0, $v1, 0x00FF ## $v0 = 00000000
/* 002C4 809ACDE4 03E00008 */ jr $ra
/* 002C8 809ACDE8 24420100 */ addiu $v0, $v0, 0x0100 ## $v0 = 00000100
.L809ACDEC:
/* 002CC 809ACDEC 030F1023 */ subu $v0, $t8, $t7
/* 002D0 809ACDF0 03E00008 */ jr $ra
/* 002D4 809ACDF4 00000000 */ nop

View file

@ -1,54 +0,0 @@
glabel func_809ACDF8
/* 002D8 809ACDF8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 002DC 809ACDFC AFBF0014 */ sw $ra, 0x0014($sp)
/* 002E0 809ACE00 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
/* 002E4 809ACE04 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 002E8 809ACE08 44816000 */ mtc1 $at, $f12 ## $f12 = 100.00
/* 002EC 809ACE0C C4880050 */ lwc1 $f8, 0x0050($a0) ## 00000050
/* 002F0 809ACE10 C4860024 */ lwc1 $f6, 0x0024($a0) ## 00000024
/* 002F4 809ACE14 C4640024 */ lwc1 $f4, 0x0024($v1) ## 00000024
/* 002F8 809ACE18 46086282 */ mul.s $f10, $f12, $f8
/* 002FC 809ACE1C 8C66068C */ lw $a2, 0x068C($v1) ## 0000068C
/* 00300 809ACE20 46062001 */ sub.s $f0, $f4, $f6
/* 00304 809ACE24 46000005 */ abs.s $f0, $f0
/* 00308 809ACE28 460A003C */ c.lt.s $f0, $f10
/* 0030C 809ACE2C 00000000 */ nop
/* 00310 809ACE30 45020022 */ bc1fl .L809ACEBC
/* 00314 809ACE34 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00318 809ACE38 C4600028 */ lwc1 $f0, 0x0028($v1) ## 00000028
/* 0031C 809ACE3C C4820028 */ lwc1 $f2, 0x0028($a0) ## 00000028
/* 00320 809ACE40 4600103E */ c.le.s $f2, $f0
/* 00324 809ACE44 00000000 */ nop
/* 00328 809ACE48 4502001C */ bc1fl .L809ACEBC
/* 0032C 809ACE4C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00330 809ACE50 C4920054 */ lwc1 $f18, 0x0054($a0) ## 00000054
/* 00334 809ACE54 46020401 */ sub.s $f16, $f0, $f2
/* 00338 809ACE58 46126102 */ mul.s $f4, $f12, $f18
/* 0033C 809ACE5C 4604803C */ c.lt.s $f16, $f4
/* 00340 809ACE60 00000000 */ nop
/* 00344 809ACE64 45020015 */ bc1fl .L809ACEBC
/* 00348 809ACE68 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0034C 809ACE6C C48A0058 */ lwc1 $f10, 0x0058($a0) ## 00000058
/* 00350 809ACE70 C466002C */ lwc1 $f6, 0x002C($v1) ## 0000002C
/* 00354 809ACE74 C488002C */ lwc1 $f8, 0x002C($a0) ## 0000002C
/* 00358 809ACE78 460A6482 */ mul.s $f18, $f12, $f10
/* 0035C 809ACE7C 46083001 */ sub.s $f0, $f6, $f8
/* 00360 809ACE80 46000005 */ abs.s $f0, $f0
/* 00364 809ACE84 4612003C */ c.lt.s $f0, $f18
/* 00368 809ACE88 00000000 */ nop
/* 0036C 809ACE8C 4502000B */ bc1fl .L809ACEBC
/* 00370 809ACE90 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00374 809ACE94 AFA3001C */ sw $v1, 0x001C($sp)
/* 00378 809ACE98 AFA40020 */ sw $a0, 0x0020($sp)
/* 0037C 809ACE9C 0C26B373 */ jal func_809ACDCC
/* 00380 809ACEA0 AFA60018 */ sw $a2, 0x0018($sp)
/* 00384 809ACEA4 8FA3001C */ lw $v1, 0x001C($sp)
/* 00388 809ACEA8 8FA40020 */ lw $a0, 0x0020($sp)
/* 0038C 809ACEAC 8FA60018 */ lw $a2, 0x0018($sp)
/* 00390 809ACEB0 A4620690 */ sh $v0, 0x0690($v1) ## 00000690
/* 00394 809ACEB4 ACC40298 */ sw $a0, 0x0298($a2) ## 00000298
/* 00398 809ACEB8 8FBF0014 */ lw $ra, 0x0014($sp)
.L809ACEBC:
/* 0039C 809ACEBC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 003A0 809ACEC0 03E00008 */ jr $ra
/* 003A4 809ACEC4 00000000 */ nop

View file

@ -1,22 +0,0 @@
glabel func_809ACEC8
/* 003A8 809ACEC8 C4A40000 */ lwc1 $f4, 0x0000($a1) ## 00000000
/* 003AC 809ACECC C4860000 */ lwc1 $f6, 0x0000($a0) ## 00000000
/* 003B0 809ACED0 C4A80008 */ lwc1 $f8, 0x0008($a1) ## 00000008
/* 003B4 809ACED4 C48A0008 */ lwc1 $f10, 0x0008($a0) ## 00000008
/* 003B8 809ACED8 46062001 */ sub.s $f0, $f4, $f6
/* 003BC 809ACEDC 44866000 */ mtc1 $a2, $f12 ## $f12 = 0.00
/* 003C0 809ACEE0 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 003C4 809ACEE4 460A4081 */ sub.s $f2, $f8, $f10
/* 003C8 809ACEE8 46000402 */ mul.s $f16, $f0, $f0
/* 003CC 809ACEEC 00000000 */ nop
/* 003D0 809ACEF0 46021482 */ mul.s $f18, $f2, $f2
/* 003D4 809ACEF4 46128100 */ add.s $f4, $f16, $f18
/* 003D8 809ACEF8 460C6182 */ mul.s $f6, $f12, $f12
/* 003DC 809ACEFC 4606203C */ c.lt.s $f4, $f6
/* 003E0 809ACF00 00000000 */ nop
/* 003E4 809ACF04 45000002 */ bc1f .L809ACF10
/* 003E8 809ACF08 00000000 */ nop
/* 003EC 809ACF0C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809ACF10:
/* 003F0 809ACF10 03E00008 */ jr $ra
/* 003F4 809ACF14 00000000 */ nop

View file

@ -1,52 +0,0 @@
glabel func_809ACF18
/* 003F8 809ACF18 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 003FC 809ACF1C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00400 809ACF20 AFA50024 */ sw $a1, 0x0024($sp)
/* 00404 809ACF24 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
/* 00408 809ACF28 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 0040C 809ACF2C 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00410 809ACF30 8C6F068C */ lw $t7, 0x068C($v1) ## 0000068C
/* 00414 809ACF34 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00
/* 00418 809ACF38 24E50024 */ addiu $a1, $a3, 0x0024 ## $a1 = 00000024
/* 0041C 809ACF3C AFAF0018 */ sw $t7, 0x0018($sp)
/* 00420 809ACF40 C4E40050 */ lwc1 $f4, 0x0050($a3) ## 00000050
/* 00424 809ACF44 AFA70020 */ sw $a3, 0x0020($sp)
/* 00428 809ACF48 AFA3001C */ sw $v1, 0x001C($sp)
/* 0042C 809ACF4C 46062202 */ mul.s $f8, $f4, $f6
/* 00430 809ACF50 24640024 */ addiu $a0, $v1, 0x0024 ## $a0 = 00000024
/* 00434 809ACF54 44064000 */ mfc1 $a2, $f8
/* 00438 809ACF58 0C26B3B2 */ jal func_809ACEC8
/* 0043C 809ACF5C 00000000 */ nop
/* 00440 809ACF60 8FA3001C */ lw $v1, 0x001C($sp)
/* 00444 809ACF64 10400019 */ beq $v0, $zero, .L809ACFCC
/* 00448 809ACF68 8FA70020 */ lw $a3, 0x0020($sp)
/* 0044C 809ACF6C C4600028 */ lwc1 $f0, 0x0028($v1) ## 00000028
/* 00450 809ACF70 C4E20028 */ lwc1 $f2, 0x0028($a3) ## 00000028
/* 00454 809ACF74 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00458 809ACF78 4600103E */ c.le.s $f2, $f0
/* 0045C 809ACF7C 00000000 */ nop
/* 00460 809ACF80 45020013 */ bc1fl .L809ACFD0
/* 00464 809ACF84 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00468 809ACF88 44818000 */ mtc1 $at, $f16 ## $f16 = 100.00
/* 0046C 809ACF8C C4F20054 */ lwc1 $f18, 0x0054($a3) ## 00000054
/* 00470 809ACF90 46020281 */ sub.s $f10, $f0, $f2
/* 00474 809ACF94 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00478 809ACF98 46128102 */ mul.s $f4, $f16, $f18
/* 0047C 809ACF9C 4604503C */ c.lt.s $f10, $f4
/* 00480 809ACFA0 00000000 */ nop
/* 00484 809ACFA4 4502000A */ bc1fl .L809ACFD0
/* 00488 809ACFA8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0048C 809ACFAC AFA3001C */ sw $v1, 0x001C($sp)
/* 00490 809ACFB0 0C26B373 */ jal func_809ACDCC
/* 00494 809ACFB4 AFA70020 */ sw $a3, 0x0020($sp)
/* 00498 809ACFB8 8FA3001C */ lw $v1, 0x001C($sp)
/* 0049C 809ACFBC 8FA70020 */ lw $a3, 0x0020($sp)
/* 004A0 809ACFC0 A4620690 */ sh $v0, 0x0690($v1) ## 00000690
/* 004A4 809ACFC4 8FB80018 */ lw $t8, 0x0018($sp)
/* 004A8 809ACFC8 AF070298 */ sw $a3, 0x0298($t8) ## 00000298
.L809ACFCC:
/* 004AC 809ACFCC 8FBF0014 */ lw $ra, 0x0014($sp)
.L809ACFD0:
/* 004B0 809ACFD0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 004B4 809ACFD4 03E00008 */ jr $ra
/* 004B8 809ACFD8 00000000 */ nop

View file

@ -1,4 +0,0 @@
glabel ElfMsg2_Destroy
/* 0025C 809AD95C AFA40000 */ sw $a0, 0x0000($sp)
/* 00260 809AD960 03E00008 */ jr $ra
/* 00264 809AD964 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,93 +0,0 @@
.rdata
glabel D_809ADDE4
.asciz "../z_elf_msg2.c"
.balign 4
glabel D_809ADDF4
.asciz "../z_elf_msg2.c"
.balign 4
glabel D_809ADE04
.asciz "../z_elf_msg2.c"
.balign 4
.text
glabel ElfMsg2_Draw
/* 003DC 809ADADC 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 003E0 809ADAE0 AFBF001C */ sw $ra, 0x001C($sp)
/* 003E4 809ADAE4 AFB00018 */ sw $s0, 0x0018($sp)
/* 003E8 809ADAE8 AFA40048 */ sw $a0, 0x0048($sp)
/* 003EC 809ADAEC AFA5004C */ sw $a1, 0x004C($sp)
/* 003F0 809ADAF0 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 003F4 809ADAF4 3C06809B */ lui $a2, %hi(D_809ADDE4) ## $a2 = 809B0000
/* 003F8 809ADAF8 24C6DDE4 */ addiu $a2, $a2, %lo(D_809ADDE4) ## $a2 = 809ADDE4
/* 003FC 809ADAFC 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 00400 809ADB00 24070163 */ addiu $a3, $zero, 0x0163 ## $a3 = 00000163
/* 00404 809ADB04 0C031AB1 */ jal Graph_OpenDisps
/* 00408 809ADB08 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 0040C 809ADB0C 3C0F8016 */ lui $t7, %hi(gGameInfo)
/* 00410 809ADB10 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7)
/* 00414 809ADB14 8FB9004C */ lw $t9, 0x004C($sp)
/* 00418 809ADB18 85F812C2 */ lh $t8, 0x12C2($t7) ## 801612C2
/* 0041C 809ADB1C 53000036 */ beql $t8, $zero, .L809ADBF8
/* 00420 809ADB20 8FBF001C */ lw $ra, 0x001C($sp)
/* 00424 809ADB24 0C024F46 */ jal func_80093D18
/* 00428 809ADB28 8F240000 */ lw $a0, 0x0000($t9) ## 00000000
/* 0042C 809ADB2C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00430 809ADB30 3C09FA00 */ lui $t1, 0xFA00 ## $t1 = FA000000
/* 00434 809ADB34 3C0A8016 */ lui $t2, %hi(gGameInfo)
/* 00438 809ADB38 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
/* 0043C 809ADB3C AE0802D0 */ sw $t0, 0x02D0($s0) ## 000002D0
/* 00440 809ADB40 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00444 809ADB44 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2)
/* 00448 809ADB48 3C016464 */ lui $at, 0x6464 ## $at = 64640000
/* 0044C 809ADB4C 3421FF00 */ ori $at, $at, 0xFF00 ## $at = 6464FF00
/* 00450 809ADB50 854B12C2 */ lh $t3, 0x12C2($t2) ## 801612C2
/* 00454 809ADB54 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
/* 00458 809ADB58 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
/* 0045C 809ADB5C 316C00FF */ andi $t4, $t3, 0x00FF ## $t4 = 00000000
/* 00460 809ADB60 01816825 */ or $t5, $t4, $at ## $t5 = 6464FF00
/* 00464 809ADB64 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 00468 809ADB68 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0046C 809ADB6C 3C05809B */ lui $a1, %hi(D_809ADDF4) ## $a1 = 809B0000
/* 00470 809ADB70 24A5DDF4 */ addiu $a1, $a1, %lo(D_809ADDF4) ## $a1 = 809ADDF4
/* 00474 809ADB74 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00478 809ADB78 AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 0047C 809ADB7C AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00480 809ADB80 8FB8004C */ lw $t8, 0x004C($sp)
/* 00484 809ADB84 2406016A */ addiu $a2, $zero, 0x016A ## $a2 = 0000016A
/* 00488 809ADB88 8F040000 */ lw $a0, 0x0000($t8) ## 00000000
/* 0048C 809ADB8C 0C0346A2 */ jal Matrix_NewMtx
/* 00490 809ADB90 AFA2002C */ sw $v0, 0x002C($sp)
/* 00494 809ADB94 8FA3002C */ lw $v1, 0x002C($sp)
/* 00498 809ADB98 3C08809B */ lui $t0, %hi(D_809ADC38) ## $t0 = 809B0000
/* 0049C 809ADB9C 2508DC38 */ addiu $t0, $t0, %lo(D_809ADC38) ## $t0 = 809ADC38
/* 004A0 809ADBA0 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 004A4 809ADBA4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 004A8 809ADBA8 3C04DE00 */ lui $a0, 0xDE00 ## $a0 = DE000000
/* 004AC 809ADBAC 3C0A809B */ lui $t2, %hi(D_809ADCF8) ## $t2 = 809B0000
/* 004B0 809ADBB0 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 004B4 809ADBB4 AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
/* 004B8 809ADBB8 AC480004 */ sw $t0, 0x0004($v0) ## 00000004
/* 004BC 809ADBBC AC440000 */ sw $a0, 0x0000($v0) ## 00000000
/* 004C0 809ADBC0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 004C4 809ADBC4 254ADCF8 */ addiu $t2, $t2, %lo(D_809ADCF8) ## $t2 = 809ADCF8
/* 004C8 809ADBC8 3C06809B */ lui $a2, %hi(D_809ADE04) ## $a2 = 809B0000
/* 004CC 809ADBCC 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 004D0 809ADBD0 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0
/* 004D4 809ADBD4 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 004D8 809ADBD8 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
/* 004DC 809ADBDC 8FAB004C */ lw $t3, 0x004C($sp)
/* 004E0 809ADBE0 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 004E4 809ADBE4 24C6DE04 */ addiu $a2, $a2, %lo(D_809ADE04) ## $a2 = 809ADE04
/* 004E8 809ADBE8 2407016F */ addiu $a3, $zero, 0x016F ## $a3 = 0000016F
/* 004EC 809ADBEC 0C031AD5 */ jal Graph_CloseDisps
/* 004F0 809ADBF0 8D650000 */ lw $a1, 0x0000($t3) ## 00000000
/* 004F4 809ADBF4 8FBF001C */ lw $ra, 0x001C($sp)
.L809ADBF8:
/* 004F8 809ADBF8 8FB00018 */ lw $s0, 0x0018($sp)
/* 004FC 809ADBFC 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 00500 809ADC00 03E00008 */ jr $ra
/* 00504 809ADC04 00000000 */ nop
/* 00508 809ADC08 00000000 */ nop
/* 0050C 809ADC0C 00000000 */ nop

View file

@ -1,67 +0,0 @@
.rdata
glabel D_809ADDC0
.asciz "\x1b[36m Elf_Msg2_Actor_ct %04x\n\n\x1b[m"
.balign 4
.text
glabel ElfMsg2_Init
/* 00184 809AD884 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00188 809AD888 AFB00018 */ sw $s0, 0x0018($sp)
/* 0018C 809AD88C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00190 809AD890 AFBF001C */ sw $ra, 0x001C($sp)
/* 00194 809AD894 AFA50024 */ sw $a1, 0x0024($sp)
/* 00198 809AD898 3C04809B */ lui $a0, %hi(D_809ADDC0) ## $a0 = 809B0000
/* 0019C 809AD89C 2484DDC0 */ addiu $a0, $a0, %lo(D_809ADDC0) ## $a0 = 809ADDC0
/* 001A0 809AD8A0 0C00084C */ jal osSyncPrintf
/* 001A4 809AD8A4 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 001A8 809AD8A8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001AC 809AD8AC 0C26B5C2 */ jal func_809AD708
/* 001B0 809AD8B0 8FA50024 */ lw $a1, 0x0024($sp)
/* 001B4 809AD8B4 14400024 */ bne $v0, $zero, .L809AD948
/* 001B8 809AD8B8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001BC 809AD8BC 86020030 */ lh $v0, 0x0030($s0) ## 00000030
/* 001C0 809AD8C0 3C05809B */ lui $a1, %hi(D_809ADC30) ## $a1 = 809B0000
/* 001C4 809AD8C4 18400004 */ blez $v0, .L809AD8D8
/* 001C8 809AD8C8 28410008 */ slti $at, $v0, 0x0008
/* 001CC 809AD8CC 10200002 */ beq $at, $zero, .L809AD8D8
/* 001D0 809AD8D0 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 001D4 809AD8D4 A20E001F */ sb $t6, 0x001F($s0) ## 0000001F
.L809AD8D8:
/* 001D8 809AD8D8 0C01E037 */ jal Actor_ProcessInitChain
/* 001DC 809AD8DC 24A5DC30 */ addiu $a1, $a1, %lo(D_809ADC30) ## $a1 = 809ADC30
/* 001E0 809AD8E0 860F0032 */ lh $t7, 0x0032($s0) ## 00000032
/* 001E4 809AD8E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001E8 809AD8E8 3C05809B */ lui $a1, %hi(func_809AD9F4) ## $a1 = 809B0000
/* 001EC 809AD8EC 29E10041 */ slti $at, $t7, 0x0041
/* 001F0 809AD8F0 14200007 */ bne $at, $zero, .L809AD910
/* 001F4 809AD8F4 00000000 */ nop
/* 001F8 809AD8F8 3C05809B */ lui $a1, %hi(func_809ADA28) ## $a1 = 809B0000
/* 001FC 809AD8FC 24A5DA28 */ addiu $a1, $a1, %lo(func_809ADA28) ## $a1 = 809ADA28
/* 00200 809AD900 0C26B5C0 */ jal func_809AD700
/* 00204 809AD904 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00208 809AD908 1000000C */ beq $zero, $zero, .L809AD93C
/* 0020C 809AD90C A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8
.L809AD910:
/* 00210 809AD910 0C26B5C0 */ jal func_809AD700
/* 00214 809AD914 24A5D9F4 */ addiu $a1, $a1, %lo(func_809AD9F4) ## $a1 = FFFFD9F4
/* 00218 809AD918 8E180004 */ lw $t8, 0x0004($s0) ## 00000004
/* 0021C 809AD91C 3C010004 */ lui $at, 0x0004 ## $at = 00040000
/* 00220 809AD920 34210001 */ ori $at, $at, 0x0001 ## $at = 00040001
/* 00224 809AD924 0301C825 */ or $t9, $t8, $at ## $t9 = 00040001
/* 00228 809AD928 AE190004 */ sw $t9, 0x0004($s0) ## 00000004
/* 0022C 809AD92C 0C26B65A */ jal func_809AD968
/* 00230 809AD930 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00234 809AD934 A602010E */ sh $v0, 0x010E($s0) ## 0000010E
/* 00238 809AD938 A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8
.L809AD93C:
/* 0023C 809AD93C 860200B8 */ lh $v0, 0x00B8($s0) ## 000000B8
/* 00240 809AD940 A60200B6 */ sh $v0, 0x00B6($s0) ## 000000B6
/* 00244 809AD944 A60200B4 */ sh $v0, 0x00B4($s0) ## 000000B4
.L809AD948:
/* 00248 809AD948 8FBF001C */ lw $ra, 0x001C($sp)
/* 0024C 809AD94C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00250 809AD950 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00254 809AD954 03E00008 */ jr $ra
/* 00258 809AD958 00000000 */ nop

View file

@ -1,17 +0,0 @@
glabel ElfMsg2_Update
/* 003A0 809ADAA0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003A4 809ADAA4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 003A8 809ADAA8 AFA5001C */ sw $a1, 0x001C($sp)
/* 003AC 809ADAAC 0C26B5C2 */ jal func_809AD708
/* 003B0 809ADAB0 AFA40018 */ sw $a0, 0x0018($sp)
/* 003B4 809ADAB4 14400005 */ bne $v0, $zero, .L809ADACC
/* 003B8 809ADAB8 8FA40018 */ lw $a0, 0x0018($sp)
/* 003BC 809ADABC 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C
/* 003C0 809ADAC0 8FA5001C */ lw $a1, 0x001C($sp)
/* 003C4 809ADAC4 0320F809 */ jalr $ra, $t9
/* 003C8 809ADAC8 00000000 */ nop
.L809ADACC:
/* 003CC 809ADACC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 003D0 809ADAD0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 003D4 809ADAD4 03E00008 */ jr $ra
/* 003D8 809ADAD8 00000000 */ nop

View file

@ -1,3 +0,0 @@
glabel func_809AD700
/* 00000 809AD700 03E00008 */ jr $ra
/* 00004 809AD704 AC85014C */ sw $a1, 0x014C($a0) ## 0000014C

View file

@ -1,156 +0,0 @@
.rdata
glabel D_809ADD40
.asciz "../z_elf_msg2.c"
.balign 4
glabel D_809ADD50
.asciz "\"\" = %s\n"
.balign 4
glabel D_809ADD60
.asciz ""
.balign 4
glabel D_809ADD68
.asciz "../z_elf_msg2.c"
.balign 4
glabel D_809ADD78
.asciz "\"\" = %s\n"
.balign 4
glabel D_809ADD8C
.asciz ""
.balign 4
glabel D_809ADD98
.asciz "../z_elf_msg2.c"
.balign 4
glabel D_809ADDA8
.asciz "\"\" = %s\n"
.balign 4
glabel D_809ADDB8
.asciz ""
.balign 4
.text
glabel func_809AD708
/* 00008 809AD708 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0000C 809AD70C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00010 809AD710 AFA40018 */ sw $a0, 0x0018($sp)
/* 00014 809AD714 AFA5001C */ sw $a1, 0x001C($sp)
/* 00018 809AD718 84820032 */ lh $v0, 0x0032($a0) ## 00000032
/* 0001C 809AD71C 1840001C */ blez $v0, .L809AD790
/* 00020 809AD720 28410041 */ slti $at, $v0, 0x0041
/* 00024 809AD724 1020001A */ beq $at, $zero, .L809AD790
/* 00028 809AD728 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0002C 809AD72C 0C00B2D0 */ jal Flags_GetSwitch
/* 00030 809AD730 2445FFFF */ addiu $a1, $v0, 0xFFFF ## $a1 = FFFFFFFF
/* 00034 809AD734 10400016 */ beq $v0, $zero, .L809AD790
/* 00038 809AD738 3C04809B */ lui $a0, %hi(D_809ADD40) ## $a0 = 809B0000
/* 0003C 809AD73C 2484DD40 */ addiu $a0, $a0, %lo(D_809ADD40) ## $a0 = 809ADD40
/* 00040 809AD740 0C000B84 */ jal LogUtils_LogThreadId
/* 00044 809AD744 240500AB */ addiu $a1, $zero, 0x00AB ## $a1 = 000000AB
/* 00048 809AD748 3C04809B */ lui $a0, %hi(D_809ADD50) ## $a0 = 809B0000
/* 0004C 809AD74C 3C05809B */ lui $a1, %hi(D_809ADD60) ## $a1 = 809B0000
/* 00050 809AD750 24A5DD60 */ addiu $a1, $a1, %lo(D_809ADD60) ## $a1 = 809ADD60
/* 00054 809AD754 0C00084C */ jal osSyncPrintf
/* 00058 809AD758 2484DD50 */ addiu $a0, $a0, %lo(D_809ADD50) ## $a0 = 809ADD50
/* 0005C 809AD75C 8FAF0018 */ lw $t7, 0x0018($sp)
/* 00060 809AD760 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F
/* 00064 809AD764 85E5001C */ lh $a1, 0x001C($t7) ## 0000001C
/* 00068 809AD768 00052A03 */ sra $a1, $a1, 8
/* 0006C 809AD76C 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00070 809AD770 10A10003 */ beq $a1, $at, .L809AD780
/* 00074 809AD774 00000000 */ nop
/* 00078 809AD778 0C00B2DD */ jal Flags_SetSwitch
/* 0007C 809AD77C 8FA4001C */ lw $a0, 0x001C($sp)
.L809AD780:
/* 00080 809AD780 0C00B55C */ jal Actor_Kill
/* 00084 809AD784 8FA40018 */ lw $a0, 0x0018($sp)
/* 00088 809AD788 1000003A */ beq $zero, $zero, .L809AD874
/* 0008C 809AD78C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809AD790:
/* 00090 809AD790 8FB80018 */ lw $t8, 0x0018($sp)
/* 00094 809AD794 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 00098 809AD798 8FA4001C */ lw $a0, 0x001C($sp)
/* 0009C 809AD79C 87190032 */ lh $t9, 0x0032($t8) ## 00000032
/* 000A0 809AD7A0 5721001B */ bnel $t9, $at, .L809AD810
/* 000A4 809AD7A4 8FA90018 */ lw $t1, 0x0018($sp)
/* 000A8 809AD7A8 0C00B337 */ jal Flags_GetClear
/* 000AC 809AD7AC 83050003 */ lb $a1, 0x0003($t8) ## 00000003
/* 000B0 809AD7B0 10400016 */ beq $v0, $zero, .L809AD80C
/* 000B4 809AD7B4 3C04809B */ lui $a0, %hi(D_809ADD68) ## $a0 = 809B0000
/* 000B8 809AD7B8 2484DD68 */ addiu $a0, $a0, %lo(D_809ADD68) ## $a0 = 809ADD68
/* 000BC 809AD7BC 0C000B84 */ jal LogUtils_LogThreadId
/* 000C0 809AD7C0 240500B6 */ addiu $a1, $zero, 0x00B6 ## $a1 = 000000B6
/* 000C4 809AD7C4 3C04809B */ lui $a0, %hi(D_809ADD78) ## $a0 = 809B0000
/* 000C8 809AD7C8 3C05809B */ lui $a1, %hi(D_809ADD8C) ## $a1 = 809B0000
/* 000CC 809AD7CC 24A5DD8C */ addiu $a1, $a1, %lo(D_809ADD8C) ## $a1 = 809ADD8C
/* 000D0 809AD7D0 0C00084C */ jal osSyncPrintf
/* 000D4 809AD7D4 2484DD78 */ addiu $a0, $a0, %lo(D_809ADD78) ## $a0 = 809ADD78
/* 000D8 809AD7D8 8FA80018 */ lw $t0, 0x0018($sp)
/* 000DC 809AD7DC 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F
/* 000E0 809AD7E0 8505001C */ lh $a1, 0x001C($t0) ## 0000001C
/* 000E4 809AD7E4 00052A03 */ sra $a1, $a1, 8
/* 000E8 809AD7E8 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 000EC 809AD7EC 10A10003 */ beq $a1, $at, .L809AD7FC
/* 000F0 809AD7F0 00000000 */ nop
/* 000F4 809AD7F4 0C00B2DD */ jal Flags_SetSwitch
/* 000F8 809AD7F8 8FA4001C */ lw $a0, 0x001C($sp)
.L809AD7FC:
/* 000FC 809AD7FC 0C00B55C */ jal Actor_Kill
/* 00100 809AD800 8FA40018 */ lw $a0, 0x0018($sp)
/* 00104 809AD804 1000001B */ beq $zero, $zero, .L809AD874
/* 00108 809AD808 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809AD80C:
/* 0010C 809AD80C 8FA90018 */ lw $t1, 0x0018($sp)
.L809AD810:
/* 00110 809AD810 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F
/* 00114 809AD814 8525001C */ lh $a1, 0x001C($t1) ## 0000001C
/* 00118 809AD818 00052A03 */ sra $a1, $a1, 8
/* 0011C 809AD81C 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00120 809AD820 14A10003 */ bne $a1, $at, .L809AD830
/* 00124 809AD824 00000000 */ nop
/* 00128 809AD828 10000012 */ beq $zero, $zero, .L809AD874
/* 0012C 809AD82C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809AD830:
/* 00130 809AD830 0C00B2D0 */ jal Flags_GetSwitch
/* 00134 809AD834 8FA4001C */ lw $a0, 0x001C($sp)
/* 00138 809AD838 1040000D */ beq $v0, $zero, .L809AD870
/* 0013C 809AD83C 3C04809B */ lui $a0, %hi(D_809ADD98) ## $a0 = 809B0000
/* 00140 809AD840 2484DD98 */ addiu $a0, $a0, %lo(D_809ADD98) ## $a0 = 809ADD98
/* 00144 809AD844 0C000B84 */ jal LogUtils_LogThreadId
/* 00148 809AD848 240500C0 */ addiu $a1, $zero, 0x00C0 ## $a1 = 000000C0
/* 0014C 809AD84C 3C04809B */ lui $a0, %hi(D_809ADDA8) ## $a0 = 809B0000
/* 00150 809AD850 3C05809B */ lui $a1, %hi(D_809ADDB8) ## $a1 = 809B0000
/* 00154 809AD854 24A5DDB8 */ addiu $a1, $a1, %lo(D_809ADDB8) ## $a1 = 809ADDB8
/* 00158 809AD858 0C00084C */ jal osSyncPrintf
/* 0015C 809AD85C 2484DDA8 */ addiu $a0, $a0, %lo(D_809ADDA8) ## $a0 = 809ADDA8
/* 00160 809AD860 0C00B55C */ jal Actor_Kill
/* 00164 809AD864 8FA40018 */ lw $a0, 0x0018($sp)
/* 00168 809AD868 10000002 */ beq $zero, $zero, .L809AD874
/* 0016C 809AD86C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809AD870:
/* 00170 809AD870 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809AD874:
/* 00174 809AD874 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00178 809AD878 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0017C 809AD87C 03E00008 */ jr $ra
/* 00180 809AD880 00000000 */ nop

View file

@ -1,5 +0,0 @@
glabel func_809AD968
/* 00268 809AD968 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 0026C 809AD96C 304200FF */ andi $v0, $v0, 0x00FF ## $v0 = 00000000
/* 00270 809AD970 03E00008 */ jr $ra
/* 00274 809AD974 24420100 */ addiu $v0, $v0, 0x0100 ## $v0 = 00000100

View file

@ -1,37 +0,0 @@
glabel func_809AD978
/* 00278 809AD978 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0027C 809AD97C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00280 809AD980 AFA5001C */ sw $a1, 0x001C($sp)
/* 00284 809AD984 0C00BCCD */ jal func_8002F334
/* 00288 809AD988 AFA40018 */ sw $a0, 0x0018($sp)
/* 0028C 809AD98C 10400015 */ beq $v0, $zero, .L809AD9E4
/* 00290 809AD990 8FA40018 */ lw $a0, 0x0018($sp)
/* 00294 809AD994 848E0034 */ lh $t6, 0x0034($a0) ## 00000034
/* 00298 809AD998 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 0029C 809AD99C 3C05809B */ lui $a1, %hi(func_809AD9F4) ## $a1 = 809B0000
/* 002A0 809AD9A0 11C1000E */ beq $t6, $at, .L809AD9DC
/* 002A4 809AD9A4 00000000 */ nop
/* 002A8 809AD9A8 0C00B55C */ jal Actor_Kill
/* 002AC 809AD9AC AFA40018 */ sw $a0, 0x0018($sp)
/* 002B0 809AD9B0 8FA40018 */ lw $a0, 0x0018($sp)
/* 002B4 809AD9B4 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F
/* 002B8 809AD9B8 8485001C */ lh $a1, 0x001C($a0) ## 0000001C
/* 002BC 809AD9BC 00052A03 */ sra $a1, $a1, 8
/* 002C0 809AD9C0 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 002C4 809AD9C4 50A10008 */ beql $a1, $at, .L809AD9E8
/* 002C8 809AD9C8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 002CC 809AD9CC 0C00B2DD */ jal Flags_SetSwitch
/* 002D0 809AD9D0 8FA4001C */ lw $a0, 0x001C($sp)
/* 002D4 809AD9D4 10000004 */ beq $zero, $zero, .L809AD9E8
/* 002D8 809AD9D8 8FBF0014 */ lw $ra, 0x0014($sp)
.L809AD9DC:
/* 002DC 809AD9DC 0C26B5C0 */ jal func_809AD700
/* 002E0 809AD9E0 24A5D9F4 */ addiu $a1, $a1, %lo(func_809AD9F4) ## $a1 = FFFFD9F4
.L809AD9E4:
/* 002E4 809AD9E4 8FBF0014 */ lw $ra, 0x0014($sp)
.L809AD9E8:
/* 002E8 809AD9E8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 002EC 809AD9EC 03E00008 */ jr $ra
/* 002F0 809AD9F0 00000000 */ nop

View file

@ -1,15 +0,0 @@
glabel func_809AD9F4
/* 002F4 809AD9F4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002F8 809AD9F8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002FC 809AD9FC 0C00BC65 */ jal func_8002F194
/* 00300 809ADA00 AFA40018 */ sw $a0, 0x0018($sp)
/* 00304 809ADA04 10400004 */ beq $v0, $zero, .L809ADA18
/* 00308 809ADA08 8FA40018 */ lw $a0, 0x0018($sp)
/* 0030C 809ADA0C 3C05809B */ lui $a1, %hi(func_809AD978) ## $a1 = 809B0000
/* 00310 809ADA10 0C26B5C0 */ jal func_809AD700
/* 00314 809ADA14 24A5D978 */ addiu $a1, $a1, %lo(func_809AD978) ## $a1 = 809AD978
.L809ADA18:
/* 00318 809ADA18 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0031C 809ADA1C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00320 809ADA20 03E00008 */ jr $ra
/* 00324 809ADA24 00000000 */ nop

View file

@ -1,33 +0,0 @@
glabel func_809ADA28
/* 00328 809ADA28 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0032C 809ADA2C AFBF001C */ sw $ra, 0x001C($sp)
/* 00330 809ADA30 AFB00018 */ sw $s0, 0x0018($sp)
/* 00334 809ADA34 84820032 */ lh $v0, 0x0032($a0) ## 00000032
/* 00338 809ADA38 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0033C 809ADA3C 28410041 */ slti $at, $v0, 0x0041
/* 00340 809ADA40 14200012 */ bne $at, $zero, .L809ADA8C
/* 00344 809ADA44 28410081 */ slti $at, $v0, 0x0081
/* 00348 809ADA48 10200010 */ beq $at, $zero, .L809ADA8C
/* 0034C 809ADA4C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00350 809ADA50 0C00B2D0 */ jal Flags_GetSwitch
/* 00354 809ADA54 2445FFBF */ addiu $a1, $v0, 0xFFBF ## $a1 = FFFFFFBF
/* 00358 809ADA58 1040000C */ beq $v0, $zero, .L809ADA8C
/* 0035C 809ADA5C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00360 809ADA60 3C05809B */ lui $a1, %hi(func_809AD9F4) ## $a1 = 809B0000
/* 00364 809ADA64 0C26B5C0 */ jal func_809AD700
/* 00368 809ADA68 24A5D9F4 */ addiu $a1, $a1, %lo(func_809AD9F4) ## $a1 = 809AD9F4
/* 0036C 809ADA6C 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
/* 00370 809ADA70 3C010004 */ lui $at, 0x0004 ## $at = 00040000
/* 00374 809ADA74 34210001 */ ori $at, $at, 0x0001 ## $at = 00040001
/* 00378 809ADA78 01C17825 */ or $t7, $t6, $at ## $t7 = 00040001
/* 0037C 809ADA7C AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
/* 00380 809ADA80 0C26B65A */ jal func_809AD968
/* 00384 809ADA84 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00388 809ADA88 A602010E */ sh $v0, 0x010E($s0) ## 0000010E
.L809ADA8C:
/* 0038C 809ADA8C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00390 809ADA90 8FB00018 */ lw $s0, 0x0018($sp)
/* 00394 809ADA94 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00398 809ADA98 03E00008 */ jr $ra
/* 0039C 809ADA9C 00000000 */ nop

View file

@ -1,34 +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 Elf_Msg_InitVars
.word 0x011B0700, 0x00000010, 0x00010000, 0x00000150
.word ElfMsg_Init
.word ElfMsg_Destroy
.word ElfMsg_Update
.word ElfMsg_Draw
glabel D_809AD270
.word 0xC85003E8, 0x30F403E8
glabel D_809AD278
.word 0xE7000000, 0x00000000, 0xE3001001, 0x00000000, 0xD7000000, 0xFFFFFFFF, 0xFC327FFF, 0xFFFFF638, 0xE200001C, 0x0C1849D8, 0xD9F2FBFF, 0x00000000, 0xD9FFFFFF, 0x00020000, 0xDF000000, 0x00000000
glabel D_809AD2B8
.word 0x00640000, 0x00000000, 0x00000000, 0x59A700FF, 0x00460000, 0x00460000, 0x00000000, 0x49B749FF, 0x00000000, 0x00640000, 0x00000000, 0x00A759FF, 0xFFBA0000, 0x00460000, 0x00000000, 0xB7B749FF, 0xFF9C0000, 0x00000000, 0x00000000, 0xA7A700FF, 0xFFBA0000, 0xFFBA0000, 0x00000000, 0xB7B7B7FF, 0x00000000, 0xFF9C0000, 0x00000000, 0x00A7A7FF, 0x00460000, 0xFFBA0000, 0x00000000, 0x49B7B7FF, 0x00640064, 0x00000000, 0x00000000, 0x595900FF, 0x00460064, 0x00460000, 0x00000000, 0x494949FF, 0x00000064, 0x00640000, 0x00000000, 0x005959FF, 0xFFBA0064, 0x00460000, 0x00000000, 0xB74949FF, 0xFF9C0064, 0x00000000, 0x00000000, 0xA75900FF, 0xFFBA0064, 0xFFBA0000, 0x00000000, 0xB749B7FF, 0x00000064, 0xFF9C0000, 0x00000000, 0x0059A7FF, 0x00460064, 0xFFBA0000, 0x00000000, 0x4949B7FF
glabel D_809AD3B8
.word 0x01010020
.word D_809AD2B8
.word 0x06000204, 0x00000406, 0x06000608, 0x0000080A, 0x06000A0C, 0x00000C0E, 0x06101214, 0x00101416, 0x06101618, 0x0010181A, 0x06101A1C, 0x00101C1E, 0x06000210, 0x00021012, 0x06020412, 0x00041214, 0x06040614, 0x00061416, 0x06060816, 0x00081618, 0x06080A18, 0x000A181A, 0x060A0C1A, 0x000C1A1C, 0x060C0E1C, 0x000E1C1E, 0x060E001E, 0x00001E10, 0xDF000000, 0x00000000
glabel D_809AD438
.word 0x00640000, 0x00640000, 0x00000000, 0x49B749FF, 0x00640000, 0xFF9C0000, 0x00000000, 0x49B7B7FF, 0xFF9C0000, 0xFF9C0000, 0x00000000, 0xB7B7B7FF, 0xFF9C0000, 0x00640000, 0x00000000, 0xB7B749FF, 0x00640064, 0x00640000, 0x00000000, 0x494949FF, 0x00640064, 0xFF9C0000, 0x00000000, 0x4949B7FF, 0xFF9C0064, 0xFF9C0000, 0x00000000, 0xB749B7FF, 0xFF9C0064, 0x00640000, 0x00000000, 0xB74949FF
glabel D_809AD4B8
.word 0x01008010
.word D_809AD438
.word 0x06000204, 0x00000406, 0x06080A0C, 0x00080C0E, 0x06000208, 0x0002080A, 0x0602040A, 0x00040A0C, 0x0604060C, 0x00060C0E, 0x0606000E, 0x00000E08, 0xDF000000, 0x00000000, 0x00000000, 0x00000000

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_809AD600
.incbin "baserom/ovl_Elf_Msg", 0xAE0, 0x00000100

View file

@ -1,28 +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 Elf_Msg2_InitVars
.word 0x01730100, 0x00000010, 0x00010000, 0x00000150
.word ElfMsg2_Init
.word ElfMsg2_Destroy
.word ElfMsg2_Update
.word ElfMsg2_Draw
glabel D_809ADC30
.word 0xC85000C8, 0x30F403E8
glabel D_809ADC38
.word 0xE7000000, 0x00000000, 0xE3001001, 0x00000000, 0xD7000000, 0xFFFFFFFF, 0xFC327FFF, 0xFFFFF638, 0xE200001C, 0x0C1849D8, 0xD9F2FBFF, 0x00000000, 0xD9FFFFFF, 0x00020000, 0xDF000000, 0x00000000
glabel D_809ADC78
.word 0x00640000, 0x00640000, 0x00000000, 0x49B749FF, 0x00640000, 0xFF9C0000, 0x00000000, 0x49B7B7FF, 0xFF9C0000, 0xFF9C0000, 0x00000000, 0xB7B7B7FF, 0xFF9C0000, 0x00640000, 0x00000000, 0xB7B749FF, 0x00640064, 0x00640000, 0x00000000, 0x494949FF, 0x00640064, 0xFF9C0000, 0x00000000, 0x4949B7FF, 0xFF9C0064, 0xFF9C0000, 0x00000000, 0xB749B7FF, 0xFF9C0064, 0x00640000, 0x00000000, 0xB74949FF
glabel D_809ADCF8
.word 0x01008010
.word D_809ADC78
.word 0x06000204, 0x00000406, 0x06080A0C, 0x00080C0E, 0x06000208, 0x0002080A, 0x0602040A, 0x00040A0C, 0x0604060C, 0x00060C0E, 0x0606000E, 0x00000E08, 0xDF000000, 0x00000000, 0x00000000, 0x00000000

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_809ADE20
.incbin "baserom/ovl_Elf_Msg2", 0x720, 0x00000100

View file

@ -96,5 +96,6 @@
#define R_ITEM_ICON_WIDTH(i) VREG(76 + i) #define R_ITEM_ICON_WIDTH(i) VREG(76 + i)
#define R_ITEM_BTN_WIDTH(i) VREG(80 + i) #define R_ITEM_BTN_WIDTH(i) VREG(80 + i)
#define R_DISABLE_INPUT_DISPLAY HREG(47) #define R_DISABLE_INPUT_DISPLAY HREG(47)
#define R_NAVI_MSG_REGION_ALPHA nREG(87)
#endif #endif

6
spec
View file

@ -1947,15 +1947,13 @@ endseg
beginseg beginseg
name "ovl_Elf_Msg" name "ovl_Elf_Msg"
include "build/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.o" include "build/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.o"
include "build/data/overlays/actors/z_elf_msg.data.o" include "build/src/overlays/actors/ovl_Elf_Msg/ovl_Elf_Msg_reloc.o"
include "build/data/overlays/actors/z_elf_msg.reloc.o"
endseg endseg
beginseg beginseg
name "ovl_Elf_Msg2" name "ovl_Elf_Msg2"
include "build/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.o" include "build/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.o"
include "build/data/overlays/actors/z_elf_msg2.data.o" include "build/src/overlays/actors/ovl_Elf_Msg2/ovl_Elf_Msg2_reloc.o"
include "build/data/overlays/actors/z_elf_msg2.reloc.o"
endseg endseg
beginseg beginseg

View file

@ -1,4 +1,12 @@
/*
* File: z_elf_msg.c
* Overlay: ovl_Elf_Msg
* Description: Readable Navi call spot
*/
#include "z_elf_msg.h" #include "z_elf_msg.h"
#include <vt.h>
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
#define FLAGS 0x00000010 #define FLAGS 0x00000010
@ -9,7 +17,9 @@ void ElfMsg_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ElfMsg_Update(Actor* thisx, GlobalContext* globalCtx); void ElfMsg_Update(Actor* thisx, GlobalContext* globalCtx);
void ElfMsg_Draw(Actor* thisx, GlobalContext* globalCtx); void ElfMsg_Draw(Actor* thisx, GlobalContext* globalCtx);
/* void ElfMsg_CallNaviCuboid(ElfMsg* this, GlobalContext* globalCtx);
void ElfMsg_CallNaviCylinder(ElfMsg* this, GlobalContext* globalCtx);
const ActorInit Elf_Msg_InitVars = { const ActorInit Elf_Msg_InitVars = {
ACTOR_ELF_MSG, ACTOR_ELF_MSG,
ACTORTYPE_ITEMACTION, ACTORTYPE_ITEMACTION,
@ -21,23 +31,217 @@ const ActorInit Elf_Msg_InitVars = {
(ActorFunc)ElfMsg_Update, (ActorFunc)ElfMsg_Update,
(ActorFunc)ElfMsg_Draw, (ActorFunc)ElfMsg_Draw,
}; };
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/func_809ACB20.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/func_809ACB28.s") static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/ElfMsg_Init.s") // Draw properties
Gfx D_809AD278[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPSetCombineLERP(PRIMITIVE, 0, SHADE, 0, 0, 0, 0, PRIMITIVE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2),
gsSPClearGeometryMode(G_CULL_BACK | G_FOG | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/ElfMsg_Destroy.s") static Vtx sCylinderVertices[] = {
VTX(100, 0, 0, 0, 0, 0x59, 0xA7, 0x00, 0xFF), VTX(70, 0, 70, 0, 0, 0x49, 0xB7, 0x49, 0xFF),
VTX(0, 0, 100, 0, 0, 0x00, 0xA7, 0x59, 0xFF), VTX(-70, 0, 70, 0, 0, 0xB7, 0xB7, 0x49, 0xFF),
VTX(-100, 0, 0, 0, 0, 0xA7, 0xA7, 0x00, 0xFF), VTX(-70, 0, -70, 0, 0, 0xB7, 0xB7, 0xB7, 0xFF),
VTX(0, 0, -100, 0, 0, 0x00, 0xA7, 0xA7, 0xFF), VTX(70, 0, -70, 0, 0, 0x49, 0xB7, 0xB7, 0xFF),
VTX(100, 100, 0, 0, 0, 0x59, 0x59, 0x00, 0xFF), VTX(70, 100, 70, 0, 0, 0x49, 0x49, 0x49, 0xFF),
VTX(0, 100, 100, 0, 0, 0x00, 0x59, 0x59, 0xFF), VTX(-70, 100, 70, 0, 0, 0xB7, 0x49, 0x49, 0xFF),
VTX(-100, 100, 0, 0, 0, 0xA7, 0x59, 0x00, 0xFF), VTX(-70, 100, -70, 0, 0, 0xB7, 0x49, 0xB7, 0xFF),
VTX(0, 100, -100, 0, 0, 0x00, 0x59, 0xA7, 0xFF), VTX(70, 100, -70, 0, 0, 0x49, 0x49, 0xB7, 0xFF),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/func_809ACDCC.s") // Polygons for cylinder
Gfx D_809AD3B8[] = {
gsSPVertex(sCylinderVertices, 16, 0), gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), gsSP2Triangles(0, 5, 6, 0, 0, 6, 7, 0),
gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), gsSP2Triangles(8, 11, 12, 0, 8, 12, 13, 0),
gsSP2Triangles(8, 13, 14, 0, 8, 14, 15, 0), gsSP2Triangles(0, 1, 8, 0, 1, 8, 9, 0),
gsSP2Triangles(1, 2, 9, 0, 2, 9, 10, 0), gsSP2Triangles(2, 3, 10, 0, 3, 10, 11, 0),
gsSP2Triangles(3, 4, 11, 0, 4, 11, 12, 0), gsSP2Triangles(4, 5, 12, 0, 5, 12, 13, 0),
gsSP2Triangles(5, 6, 13, 0, 6, 13, 14, 0), gsSP2Triangles(6, 7, 14, 0, 7, 14, 15, 0),
gsSP2Triangles(7, 0, 15, 0, 0, 15, 8, 0), gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/func_809ACDF8.s") static Vtx sCuboidVertices[] = {
VTX(100, 0, 100, 0, 0, 0x49, 0xB7, 0x49, 0xFF), VTX(100, 0, -100, 0, 0, 0x49, 0xB7, 0xB7, 0xFF),
VTX(-100, 0, -100, 0, 0, 0xB7, 0xB7, 0xB7, 0xFF), VTX(-100, 0, 100, 0, 0, 0xB7, 0xB7, 0x49, 0xFF),
VTX(100, 100, 100, 0, 0, 0x49, 0x49, 0x49, 0xFF), VTX(100, 100, -100, 0, 0, 0x49, 0x49, 0xB7, 0xFF),
VTX(-100, 100, -100, 0, 0, 0xB7, 0x49, 0xB7, 0xFF), VTX(-100, 100, 100, 0, 0, 0xB7, 0x49, 0x49, 0xFF),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/func_809ACEC8.s") // Polygons for cuboid
Gfx D_809AD4B8[] = {
gsSPVertex(sCuboidVertices, 8, 0), gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), gsSP2Triangles(0, 1, 4, 0, 1, 4, 5, 0),
gsSP2Triangles(1, 2, 5, 0, 2, 5, 6, 0), gsSP2Triangles(2, 3, 6, 0, 3, 6, 7, 0),
gsSP2Triangles(3, 0, 7, 0, 0, 7, 4, 0), gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/func_809ACF18.s") void ElfMsg_SetupAction(ElfMsg* this, ElfMsgActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/ElfMsg_Update.s") /**
* Checks a scene flag - if flag is set, the actor is killed and function returns 1. Otherwise returns 0.
* Can also set a switch flag from params while killing.
*/
s32 ElfMsg_KillCheck(ElfMsg* this, GlobalContext* globalCtx) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg/ElfMsg_Draw.s") if ((this->actor.posRot.rot.y > 0) && (this->actor.posRot.rot.y < 0x41) &&
(Flags_GetSwitch(globalCtx, this->actor.posRot.rot.y - 1))) {
// "Mutual destruction"
LOG_STRING("共倒れ", "../z_elf_msg.c", 161);
if (((this->actor.params >> 8) & 0x3F) != 0x3F) {
Flags_SetSwitch(globalCtx, ((this->actor.params >> 8) & 0x3F));
}
Actor_Kill(&this->actor);
return 1;
} else if ((this->actor.posRot.rot.y == -1) && (Flags_GetClear(globalCtx, this->actor.room))) {
// "Mutual destruction"
LOG_STRING("共倒れ", "../z_elf_msg.c", 172);
if (((this->actor.params >> 8) & 0x3F) != 0x3F) {
Flags_SetSwitch(globalCtx, ((this->actor.params >> 8) & 0x3F));
}
Actor_Kill(&this->actor);
return 1;
} else if (((this->actor.params >> 8) & 0x3F) == 0x3F) {
return 0;
} else if (Flags_GetSwitch(globalCtx, ((this->actor.params >> 8) & 0x3F))) {
Actor_Kill(&this->actor);
return 1;
}
return 0;
}
void ElfMsg_Init(Actor* thisx, GlobalContext* globalCtx) {
ElfMsg* this = THIS;
// "Conditions for Elf Tag disappearing"
osSyncPrintf(VT_FGCOL(CYAN) "\nエルフ タグ 消える条件 %d" VT_RST "\n", (thisx->params >> 8) & 0x3F);
osSyncPrintf(VT_FGCOL(CYAN) "\nthisx->shape.angle.sy = %d\n" VT_RST, thisx->shape.rot.y);
if (thisx->shape.rot.y >= 0x41) {
// "Conditions for Elf Tag appearing"
osSyncPrintf(VT_FGCOL(CYAN) "\nエルフ タグ 出現条件 %d" VT_RST "\n", thisx->shape.rot.y - 0x41);
}
if (!ElfMsg_KillCheck(this, globalCtx)) {
Actor_ProcessInitChain(thisx, sInitChain);
if (thisx->posRot.rot.x == 0) {
thisx->scale.z = 0.4f;
thisx->scale.x = 0.4f;
} else {
thisx->scale.x = thisx->scale.z = thisx->posRot.rot.x * 0.04f;
}
if (thisx->posRot.rot.z == 0) {
thisx->scale.y = 0.4f;
} else {
thisx->scale.y = thisx->posRot.rot.z * 0.04f;
}
if (thisx->params & 0x4000) {
ElfMsg_SetupAction(this, ElfMsg_CallNaviCuboid);
} else {
ElfMsg_SetupAction(this, ElfMsg_CallNaviCylinder);
}
thisx->shape.rot.x = thisx->shape.rot.y = thisx->shape.rot.z = 0;
}
}
void ElfMsg_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
s32 ElfMsg_GetMessageId(ElfMsg* this) {
// Negative message ID forces link to talk to Navi
if (this->actor.params & 0x8000) {
return (this->actor.params & 0xFF) + 0x100;
} else {
return -((this->actor.params & 0xFF) + 0x100);
}
}
void ElfMsg_CallNaviCuboid(ElfMsg* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
EnElf* navi = (EnElf*)player->navi;
if ((fabsf(player->actor.posRot.pos.x - this->actor.posRot.pos.x) < (100.0f * this->actor.scale.x)) &&
(this->actor.posRot.pos.y <= player->actor.posRot.pos.y) &&
((player->actor.posRot.pos.y - this->actor.posRot.pos.y) < (100.0f * this->actor.scale.y)) &&
(fabsf(player->actor.posRot.pos.z - this->actor.posRot.pos.z) < (100.0f * this->actor.scale.z))) {
player->naviMessageId = ElfMsg_GetMessageId(this);
navi->unk_298 = &this->actor;
}
}
s32 ElfMsg_WithinXZDistance(Vec3f* pos1, Vec3f* pos2, f32 distance) {
return (SQ(pos2->x - pos1->x) + SQ(pos2->z - pos1->z)) < SQ(distance);
}
void ElfMsg_CallNaviCylinder(ElfMsg* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
EnElf* navi = (EnElf*)player->navi;
if (ElfMsg_WithinXZDistance(&player->actor.posRot.pos, &this->actor.posRot.pos, this->actor.scale.x * 100.0f) &&
(this->actor.posRot.pos.y <= player->actor.posRot.pos.y) &&
((player->actor.posRot.pos.y - this->actor.posRot.pos.y) < (100.0f * this->actor.scale.y))) {
player->naviMessageId = ElfMsg_GetMessageId(this);
navi->unk_298 = &this->actor;
}
}
void ElfMsg_Update(Actor* thisx, GlobalContext* globalCtx) {
ElfMsg* this = THIS;
if (!ElfMsg_KillCheck(this, globalCtx)) {
if (func_8002F194(&this->actor, globalCtx)) {
if (((this->actor.params >> 8) & 0x3F) != 0x3F) {
Flags_SetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F);
}
Actor_Kill(&this->actor);
return;
}
if ((this->actor.posRot.rot.y <= 0x41) || (this->actor.posRot.rot.y > 0x80) ||
Flags_GetSwitch(globalCtx, this->actor.posRot.rot.y - 0x41)) {
this->actionFunc(this, globalCtx);
}
}
}
void ElfMsg_Draw(Actor* thisx, GlobalContext* globalCtx) {
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[4];
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_elf_msg.c", 436);
if (R_NAVI_MSG_REGION_ALPHA == 0) {
return;
}
func_80093D18(globalCtx->state.gfxCtx);
if (thisx->params & 0x8000) {
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0, 0, 255, 100, 100, R_NAVI_MSG_REGION_ALPHA);
} else {
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0, 0, 255, 255, 255, R_NAVI_MSG_REGION_ALPHA);
}
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_elf_msg.c", 448),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, D_809AD278);
if (thisx->params & 0x4000) {
gSPDisplayList(gfxCtx->polyXlu.p++, D_809AD4B8);
} else {
gSPDisplayList(gfxCtx->polyXlu.p++, D_809AD3B8);
}
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_elf_msg.c", 457);
}

View file

@ -6,9 +6,11 @@
struct ElfMsg; struct ElfMsg;
typedef void (*ElfMsgActionFunc)(struct ElfMsg*, GlobalContext*);
typedef struct ElfMsg { typedef struct ElfMsg {
/* 0x0000 */ Actor actor; /* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x4]; /* 0x014C */ ElfMsgActionFunc actionFunc;
} ElfMsg; // size = 0x0150 } ElfMsg; // size = 0x0150
extern const ActorInit Elf_Msg_InitVars; extern const ActorInit Elf_Msg_InitVars;

View file

@ -1,4 +1,11 @@
/*
* File: z_elf_msg2.c
* Overlay: ovl_Elf_Msg2
* Description: Targetable Navi check spot
*/
#include "z_elf_msg2.h" #include "z_elf_msg2.h"
#include <vt.h>
#define FLAGS 0x00000010 #define FLAGS 0x00000010
@ -9,7 +16,10 @@ void ElfMsg2_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ElfMsg2_Update(Actor* thisx, GlobalContext* globalCtx); void ElfMsg2_Update(Actor* thisx, GlobalContext* globalCtx);
void ElfMsg2_Draw(Actor* thisx, GlobalContext* globalCtx); void ElfMsg2_Draw(Actor* thisx, GlobalContext* globalCtx);
/* s32 ElfMsg2_GetMessageId(ElfMsg2* this);
void ElfMsg2_WaitUntilActivated(ElfMsg2* this, GlobalContext* globalCtx);
void ElfMsg2_WaitForTextRead(ElfMsg2* this, GlobalContext* globalCtx);
const ActorInit Elf_Msg2_InitVars = { const ActorInit Elf_Msg2_InitVars = {
ACTOR_ELF_MSG2, ACTOR_ELF_MSG2,
ACTORTYPE_BG, ACTORTYPE_BG,
@ -21,23 +31,168 @@ const ActorInit Elf_Msg2_InitVars = {
(ActorFunc)ElfMsg2_Update, (ActorFunc)ElfMsg2_Update,
(ActorFunc)ElfMsg2_Draw, (ActorFunc)ElfMsg2_Draw,
}; };
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/func_809AD700.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/func_809AD708.s") static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/ElfMsg2_Init.s") // Draw properties
Gfx D_809ADC38[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPSetCombineLERP(PRIMITIVE, 0, SHADE, 0, 0, 0, 0, PRIMITIVE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2),
gsSPClearGeometryMode(G_CULL_BACK | G_FOG | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/ElfMsg2_Destroy.s") static Vtx sCuboidVertices[] = {
VTX(100, 0, 100, 0, 0, 0x49, 0xB7, 0x49, 0xFF), VTX(100, 0, -100, 0, 0, 0x49, 0xB7, 0xB7, 0xFF),
VTX(-100, 0, -100, 0, 0, 0xB7, 0xB7, 0xB7, 0xFF), VTX(-100, 0, 100, 0, 0, 0xB7, 0xB7, 0x49, 0xFF),
VTX(100, 100, 100, 0, 0, 0x49, 0x49, 0x49, 0xFF), VTX(100, 100, -100, 0, 0, 0x49, 0x49, 0xB7, 0xFF),
VTX(-100, 100, -100, 0, 0, 0xB7, 0x49, 0xB7, 0xFF), VTX(-100, 100, 100, 0, 0, 0xB7, 0x49, 0x49, 0xFF),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/func_809AD968.s") // Cuboid polygons
Gfx D_809ADCF8[] = {
gsSPVertex(sCuboidVertices, 8, 0), gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), gsSP2Triangles(0, 1, 4, 0, 1, 4, 5, 0),
gsSP2Triangles(1, 2, 5, 0, 2, 5, 6, 0), gsSP2Triangles(2, 3, 6, 0, 3, 6, 7, 0),
gsSP2Triangles(3, 0, 7, 0, 0, 7, 4, 0), gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/func_809AD978.s") void ElfMsg2_SetupAction(ElfMsg2* this, ElfMsg2ActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/func_809AD9F4.s") /**
* Checks a scene flag - if flag is set, the actor is killed and function returns 1. Otherwise returns 0.
* Can also set a switch flag from params while killing.
*/
s32 ElfMsg2_KillCheck(ElfMsg2* this, GlobalContext* globalCtx) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/func_809ADA28.s") if ((this->actor.posRot.rot.y > 0) && (this->actor.posRot.rot.y < 0x41) &&
(Flags_GetSwitch(globalCtx, this->actor.posRot.rot.y - 1))) {
// "Mutual destruction"
LOG_STRING("共倒れ", "../z_elf_msg2.c", 171);
if (((this->actor.params >> 8) & 0x3F) != 0x3F) {
Flags_SetSwitch(globalCtx, ((this->actor.params >> 8) & 0x3F));
}
Actor_Kill(&this->actor);
return 1;
} else if ((this->actor.posRot.rot.y == -1) && (Flags_GetClear(globalCtx, this->actor.room))) {
// "Mutual destruction 2"
LOG_STRING("共倒れ2", "../z_elf_msg2.c", 182);
if (((this->actor.params >> 8) & 0x3F) != 0x3F) {
Flags_SetSwitch(globalCtx, ((this->actor.params >> 8) & 0x3F));
}
Actor_Kill(&this->actor);
return 1;
} else if (((this->actor.params >> 8) & 0x3F) == 0x3F) {
return 0;
} else if (Flags_GetSwitch(globalCtx, ((this->actor.params >> 8) & 0x3F))) {
// "Mutual destruction"
LOG_STRING("共倒れ", "../z_elf_msg2.c", 192);
Actor_Kill(&this->actor);
return 1;
}
return 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/ElfMsg2_Update.s") void ElfMsg2_Init(Actor* thisx, GlobalContext* globalCtx) {
ElfMsg2* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Elf_Msg2/ElfMsg2_Draw.s") osSyncPrintf(VT_FGCOL(CYAN) " Elf_Msg2_Actor_ct %04x\n\n" VT_RST, this->actor.params);
if (!ElfMsg2_KillCheck(this, globalCtx)) {
if ((this->actor.posRot.rot.x > 0) && (this->actor.posRot.rot.x < 8)) {
this->actor.unk_1F = this->actor.posRot.rot.x - 1;
}
Actor_ProcessInitChain(thisx, sInitChain);
if (this->actor.posRot.rot.y >= 0x41) {
ElfMsg2_SetupAction(this, ElfMsg2_WaitUntilActivated);
} else {
ElfMsg2_SetupAction(this, ElfMsg2_WaitForTextRead);
this->actor.flags |= 0x00040001; // Make actor targetable and Navi-checkable
this->actor.textId = ElfMsg2_GetMessageId(this);
}
this->actor.shape.rot.x = this->actor.shape.rot.y = this->actor.shape.rot.z = 0;
}
}
void ElfMsg2_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
s32 ElfMsg2_GetMessageId(ElfMsg2* this) {
return (this->actor.params & 0xFF) + 0x100;
}
/**
* Runs while Navi text is up. Kills the actor upon closing the text box unless rot.z == 1, can also set a switch flag
* from params.
*/
void ElfMsg2_WaitForTextClose(ElfMsg2* this, GlobalContext* globalCtx) {
s32 switchFlag;
if (func_8002F334(&this->actor, globalCtx)) {
if (this->actor.posRot.rot.z != 1) {
Actor_Kill(&this->actor);
switchFlag = (this->actor.params >> 8) & 0x3F;
if (switchFlag != 0x3F) {
Flags_SetSwitch(globalCtx, switchFlag);
}
} else {
ElfMsg2_SetupAction(this, ElfMsg2_WaitForTextRead);
}
}
}
/**
* Runs while Navi text is not up.
*/
void ElfMsg2_WaitForTextRead(ElfMsg2* this, GlobalContext* globalCtx) {
if (func_8002F194(&this->actor, globalCtx)) {
ElfMsg2_SetupAction(this, ElfMsg2_WaitForTextClose);
}
}
/**
* Idles until a switch flag is set, at which point the actor becomes interactable
*/
void ElfMsg2_WaitUntilActivated(ElfMsg2* this, GlobalContext* globalCtx) {
// If (y >= 0x41) && (y <= 0x80), Idles until switch flag (actor.posRot.rot.y - 0x41) is set
// If (y > 0x80), Idles forever (Bug?)
if ((this->actor.posRot.rot.y >= 0x41) && (this->actor.posRot.rot.y <= 0x80) &&
(Flags_GetSwitch(globalCtx, (this->actor.posRot.rot.y - 0x41)))) {
ElfMsg2_SetupAction(this, ElfMsg2_WaitForTextRead);
this->actor.flags |= 0x00040001; // Make actor targetable and Navi-checkable
this->actor.textId = ElfMsg2_GetMessageId(this);
}
}
void ElfMsg2_Update(Actor* thisx, GlobalContext* globalCtx) {
ElfMsg2* this = THIS;
if (!ElfMsg2_KillCheck(this, globalCtx)) {
this->actionFunc(this, globalCtx);
}
}
void ElfMsg2_Draw(Actor* thisx, GlobalContext* globalCtx) {
GraphicsContext* gfxCtx;
Gfx* dispRefs[4];
gfxCtx = globalCtx->state.gfxCtx;
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_elf_msg2.c", 355);
if (R_NAVI_MSG_REGION_ALPHA == 0) {
return;
}
func_80093D18(globalCtx->state.gfxCtx);
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0, 0, 100, 100, 255, R_NAVI_MSG_REGION_ALPHA);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_elf_msg2.c", 362),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, D_809ADC38);
gSPDisplayList(gfxCtx->polyXlu.p++, D_809ADCF8);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_elf_msg2.c", 367);
}

View file

@ -6,9 +6,11 @@
struct ElfMsg2; struct ElfMsg2;
typedef void (*ElfMsg2ActionFunc)(struct ElfMsg2*, GlobalContext*);
typedef struct ElfMsg2 { typedef struct ElfMsg2 {
/* 0x0000 */ Actor actor; /* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x4]; /* 0x014C */ ElfMsg2ActionFunc actionFunc;
} ElfMsg2; // size = 0x0150 } ElfMsg2; // size = 0x0150
extern const ActorInit Elf_Msg2_InitVars; extern const ActorInit Elf_Msg2_InitVars;

View file

@ -8,7 +8,9 @@ struct EnElf;
typedef struct EnElf { typedef struct EnElf {
/* 0x0000 */ Actor actor; /* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x184]; /* 0x014C */ char unk_14C[0x14C];
/* 0x0298 */ Actor* unk_298;
/* 0x029C */ char unk_29C[0x34];
} EnElf; // size = 0x02D0 } EnElf; // size = 0x02D0
extern const ActorInit En_Elf_InitVars; extern const ActorInit En_Elf_InitVars;