1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-16 12:06:35 +00:00

Decompiled ovl_En_Blkobj (#242)

* Decompiled ovl_En_Blkobj

* PR suggestions

* gfx commands
This commit is contained in:
Ethan Roseman 2020-07-14 01:15:43 -04:00 committed by GitHub
parent b251f3f7e3
commit eb10acb8ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 157 additions and 429 deletions

View file

@ -1,14 +0,0 @@
glabel EnBlkobj_Destroy
/* 000B8 809C2118 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 000BC 809C211C AFA40018 */ sw $a0, 0x0018($sp)
/* 000C0 809C2120 8FAE0018 */ lw $t6, 0x0018($sp)
/* 000C4 809C2124 AFBF0014 */ sw $ra, 0x0014($sp)
/* 000C8 809C2128 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 000CC 809C212C 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 000D0 809C2130 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 000D4 809C2134 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 000D8 809C2138 8FBF0014 */ lw $ra, 0x0014($sp)
/* 000DC 809C213C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 000E0 809C2140 03E00008 */ jr $ra
/* 000E4 809C2144 00000000 */ nop

View file

@ -1,107 +0,0 @@
.rdata
glabel D_809C25D8
.asciz "../z_en_blkobj.c"
.balign 4
glabel D_809C25EC
.asciz "../z_en_blkobj.c"
.balign 4
glabel D_809C2600
.asciz "../z_en_blkobj.c"
.balign 4
.text
glabel EnBlkobj_Draw
/* 00398 809C23F8 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
/* 0039C 809C23FC AFB10038 */ sw $s1, 0x0038($sp)
/* 003A0 809C2400 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 003A4 809C2404 AFBF003C */ sw $ra, 0x003C($sp)
/* 003A8 809C2408 AFB00034 */ sw $s0, 0x0034($sp)
/* 003AC 809C240C AFA40070 */ sw $a0, 0x0070($sp)
/* 003B0 809C2410 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 003B4 809C2414 3C06809C */ lui $a2, %hi(D_809C25D8) ## $a2 = 809C0000
/* 003B8 809C2418 24C625D8 */ addiu $a2, $a2, %lo(D_809C25D8) ## $a2 = 809C25D8
/* 003BC 809C241C 27A4004C */ addiu $a0, $sp, 0x004C ## $a0 = FFFFFFDC
/* 003C0 809C2420 2407015D */ addiu $a3, $zero, 0x015D ## $a3 = 0000015D
/* 003C4 809C2424 0C031AB1 */ jal Graph_OpenDisps
/* 003C8 809C2428 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 003CC 809C242C 0C024F61 */ jal func_80093D84
/* 003D0 809C2430 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 003D4 809C2434 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 003D8 809C2438 3C060001 */ lui $a2, 0x0001 ## $a2 = 00010000
/* 003DC 809C243C 00D13021 */ addu $a2, $a2, $s1
/* 003E0 809C2440 8CC61DE4 */ lw $a2, 0x1DE4($a2) ## 00011DE4
/* 003E4 809C2444 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
/* 003E8 809C2448 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 003EC 809C244C AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 003F0 809C2450 35EF0034 */ ori $t7, $t7, 0x0034 ## $t7 = DB060034
/* 003F4 809C2454 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 003F8 809C2458 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 003FC 809C245C 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020
/* 00400 809C2460 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
/* 00404 809C2464 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00408 809C2468 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020
/* 0040C 809C246C 240A0020 */ addiu $t2, $zero, 0x0020 ## $t2 = 00000020
/* 00410 809C2470 30C6007F */ andi $a2, $a2, 0x007F ## $a2 = 00000000
/* 00414 809C2474 AFA6001C */ sw $a2, 0x001C($sp)
/* 00418 809C2478 AFAA0028 */ sw $t2, 0x0028($sp)
/* 0041C 809C247C AFA90024 */ sw $t1, 0x0024($sp)
/* 00420 809C2480 AFA80018 */ sw $t0, 0x0018($sp)
/* 00424 809C2484 AFB90014 */ sw $t9, 0x0014($sp)
/* 00428 809C2488 AFB80010 */ sw $t8, 0x0010($sp)
/* 0042C 809C248C AFA00020 */ sw $zero, 0x0020($sp)
/* 00430 809C2490 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00434 809C2494 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00438 809C2498 0C0253D0 */ jal Gfx_TwoTexScroll
/* 0043C 809C249C AFA20048 */ sw $v0, 0x0048($sp)
/* 00440 809C24A0 8FA30048 */ lw $v1, 0x0048($sp)
/* 00444 809C24A4 3C0CDA38 */ lui $t4, 0xDA38 ## $t4 = DA380000
/* 00448 809C24A8 358C0003 */ ori $t4, $t4, 0x0003 ## $t4 = DA380003
/* 0044C 809C24AC AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00450 809C24B0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00454 809C24B4 3C05809C */ lui $a1, %hi(D_809C25EC) ## $a1 = 809C0000
/* 00458 809C24B8 24A525EC */ addiu $a1, $a1, %lo(D_809C25EC) ## $a1 = 809C25EC
/* 0045C 809C24BC 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 00460 809C24C0 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 00464 809C24C4 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 00468 809C24C8 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 0046C 809C24CC 2406016B */ addiu $a2, $zero, 0x016B ## $a2 = 0000016B
/* 00470 809C24D0 0C0346A2 */ jal Matrix_NewMtx
/* 00474 809C24D4 AFA20044 */ sw $v0, 0x0044($sp)
/* 00478 809C24D8 8FA30044 */ lw $v1, 0x0044($sp)
/* 0047C 809C24DC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00480 809C24E0 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00484 809C24E4 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00488 809C24E8 8FA20070 */ lw $v0, 0x0070($sp)
/* 0048C 809C24EC 84460164 */ lh $a2, 0x0164($v0) ## 00000164
/* 00490 809C24F0 50C00006 */ beql $a2, $zero, .L809C250C
/* 00494 809C24F4 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF
/* 00498 809C24F8 0C2708C9 */ jal func_809C2324
/* 0049C 809C24FC 24A514E0 */ addiu $a1, $a1, 0x14E0 ## $a1 = 060014E0
/* 004A0 809C2500 8FAD0070 */ lw $t5, 0x0070($sp)
/* 004A4 809C2504 85A60164 */ lh $a2, 0x0164($t5) ## 00000164
/* 004A8 809C2508 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF
.L809C250C:
/* 004AC 809C250C 01C63823 */ subu $a3, $t6, $a2
/* 004B0 809C2510 10E00005 */ beq $a3, $zero, .L809C2528
/* 004B4 809C2514 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 004B8 809C2518 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 004BC 809C251C 24A553D0 */ addiu $a1, $a1, 0x53D0 ## $a1 = 060053D0
/* 004C0 809C2520 0C2708C9 */ jal func_809C2324
/* 004C4 809C2524 00E03025 */ or $a2, $a3, $zero ## $a2 = 00000000
.L809C2528:
/* 004C8 809C2528 3C06809C */ lui $a2, %hi(D_809C2600) ## $a2 = 809C0000
/* 004CC 809C252C 24C62600 */ addiu $a2, $a2, %lo(D_809C2600) ## $a2 = 809C2600
/* 004D0 809C2530 27A4004C */ addiu $a0, $sp, 0x004C ## $a0 = FFFFFFDC
/* 004D4 809C2534 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 004D8 809C2538 0C031AD5 */ jal Graph_CloseDisps
/* 004DC 809C253C 24070177 */ addiu $a3, $zero, 0x0177 ## $a3 = 00000177
/* 004E0 809C2540 8FBF003C */ lw $ra, 0x003C($sp)
/* 004E4 809C2544 8FB00034 */ lw $s0, 0x0034($sp)
/* 004E8 809C2548 8FB10038 */ lw $s1, 0x0038($sp)
/* 004EC 809C254C 03E00008 */ jr $ra
/* 004F0 809C2550 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000
/* 004F4 809C2554 00000000 */ nop
/* 004F8 809C2558 00000000 */ nop
/* 004FC 809C255C 00000000 */ nop

View file

@ -1,51 +0,0 @@
glabel EnBlkobj_Init
/* 0000C 809C206C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00010 809C2070 AFA50034 */ sw $a1, 0x0034($sp)
/* 00014 809C2074 AFBF001C */ sw $ra, 0x001C($sp)
/* 00018 809C2078 AFB00018 */ sw $s0, 0x0018($sp)
/* 0001C 809C207C 3C05809C */ lui $a1, %hi(D_809C2580) ## $a1 = 809C0000
/* 00020 809C2080 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00024 809C2084 AFA00024 */ sw $zero, 0x0024($sp)
/* 00028 809C2088 0C01E037 */ jal Actor_ProcessInitChain
/* 0002C 809C208C 24A52580 */ addiu $a1, $a1, %lo(D_809C2580) ## $a1 = 809C2580
/* 00030 809C2090 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00034 809C2094 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 00038 809C2098 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 0003C 809C209C 8FA40034 */ lw $a0, 0x0034($sp)
/* 00040 809C20A0 0C00B337 */ jal Flags_GetClear
/* 00044 809C20A4 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 00048 809C20A8 10400009 */ beq $v0, $zero, .L809C20D0
/* 0004C 809C20AC 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00050 809C20B0 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF
/* 00054 809C20B4 3C05809C */ lui $a1, %hi(func_809C22F4) ## $a1 = 809C0000
/* 00058 809C20B8 A60E0164 */ sh $t6, 0x0164($s0) ## 00000164
/* 0005C 809C20BC 24A522F4 */ addiu $a1, $a1, %lo(func_809C22F4) ## $a1 = 809C22F4
/* 00060 809C20C0 0C270818 */ jal func_809C2060
/* 00064 809C20C4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00068 809C20C8 1000000F */ beq $zero, $zero, .L809C2108
/* 0006C 809C20CC 8FBF001C */ lw $ra, 0x001C($sp)
.L809C20D0:
/* 00070 809C20D0 24847564 */ addiu $a0, $a0, 0x7564 ## $a0 = 00007564
/* 00074 809C20D4 0C010620 */ jal DynaPolyInfo_Alloc
/* 00078 809C20D8 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 0007C 809C20DC 8FA40034 */ lw $a0, 0x0034($sp)
/* 00080 809C20E0 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00084 809C20E4 8FA70024 */ lw $a3, 0x0024($sp)
/* 00088 809C20E8 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 0008C 809C20EC 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00090 809C20F0 3C05809C */ lui $a1, %hi(func_809C2148) ## $a1 = 809C0000
/* 00094 809C20F4 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 00098 809C20F8 24A52148 */ addiu $a1, $a1, %lo(func_809C2148) ## $a1 = 809C2148
/* 0009C 809C20FC 0C270818 */ jal func_809C2060
/* 000A0 809C2100 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000A4 809C2104 8FBF001C */ lw $ra, 0x001C($sp)
.L809C2108:
/* 000A8 809C2108 8FB00018 */ lw $s0, 0x0018($sp)
/* 000AC 809C210C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 000B0 809C2110 03E00008 */ jr $ra
/* 000B4 809C2114 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel EnBlkobj_Update
/* 002A0 809C2300 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002A4 809C2304 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002A8 809C2308 8C990168 */ lw $t9, 0x0168($a0) ## 00000168
/* 002AC 809C230C 0320F809 */ jalr $ra, $t9
/* 002B0 809C2310 00000000 */ nop
/* 002B4 809C2314 8FBF0014 */ lw $ra, 0x0014($sp)
/* 002B8 809C2318 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 002BC 809C231C 03E00008 */ jr $ra
/* 002C0 809C2320 00000000 */ nop

View file

@ -1,4 +0,0 @@
glabel func_809C2060
/* 00000 809C2060 AC850168 */ sw $a1, 0x0168($a0) ## 00000168
/* 00004 809C2064 03E00008 */ jr $ra
/* 00008 809C2068 A4800166 */ sh $zero, 0x0166($a0) ## 00000166

View file

@ -1,24 +0,0 @@
glabel func_809C2148
/* 000E8 809C2148 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 000EC 809C214C AFBF0014 */ sw $ra, 0x0014($sp)
/* 000F0 809C2150 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 000F4 809C2154 44813000 */ mtc1 $at, $f6 ## $f6 = 120.00
/* 000F8 809C2158 C4840090 */ lwc1 $f4, 0x0090($a0) ## 00000090
/* 000FC 809C215C 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00100 809C2160 3C05809C */ lui $a1, %hi(func_809C21A0) ## $a1 = 809C0000
/* 00104 809C2164 4606203C */ c.lt.s $f4, $f6
/* 00108 809C2168 24A521A0 */ addiu $a1, $a1, %lo(func_809C21A0) ## $a1 = 809C21A0
/* 0010C 809C216C 45020005 */ bc1fl .L809C2184
/* 00110 809C2170 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 00114 809C2174 0C270818 */ jal func_809C2060
/* 00118 809C2178 AFA2001C */ sw $v0, 0x001C($sp)
/* 0011C 809C217C 8FA2001C */ lw $v0, 0x001C($sp)
/* 00120 809C2180 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
.L809C2184:
/* 00124 809C2184 3C010400 */ lui $at, 0x0400 ## $at = 04000000
/* 00128 809C2188 01C17825 */ or $t7, $t6, $at ## $t7 = 04000000
/* 0012C 809C218C AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
/* 00130 809C2190 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00134 809C2194 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00138 809C2198 03E00008 */ jr $ra
/* 0013C 809C219C 00000000 */ nop

View file

@ -1,33 +0,0 @@
glabel func_809C21A0
/* 00140 809C21A0 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00144 809C21A4 AFBF0034 */ sw $ra, 0x0034($sp)
/* 00148 809C21A8 AFB00030 */ sw $s0, 0x0030($sp)
/* 0014C 809C21AC 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004
/* 00150 809C21B0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00154 809C21B4 31CF0040 */ andi $t7, $t6, 0x0040 ## $t7 = 00000000
/* 00158 809C21B8 55E00013 */ bnel $t7, $zero, .L809C2208
/* 0015C 809C21BC 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00160 809C21C0 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 00164 809C21C4 8E070024 */ lw $a3, 0x0024($s0) ## 00000024
/* 00168 809C21C8 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24
/* 0016C 809C21CC E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00170 809C21D0 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 00174 809C21D4 AFA00018 */ sw $zero, 0x0018($sp)
/* 00178 809C21D8 24060033 */ addiu $a2, $zero, 0x0033 ## $a2 = 00000033
/* 0017C 809C21DC E7A60014 */ swc1 $f6, 0x0014($sp)
/* 00180 809C21E0 8618008A */ lh $t8, 0x008A($s0) ## 0000008A
/* 00184 809C21E4 AFA00024 */ sw $zero, 0x0024($sp)
/* 00188 809C21E8 AFA00020 */ sw $zero, 0x0020($sp)
/* 0018C 809C21EC 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00190 809C21F0 AFB8001C */ sw $t8, 0x001C($sp)
/* 00194 809C21F4 3C05809C */ lui $a1, %hi(func_809C2218) ## $a1 = 809C0000
/* 00198 809C21F8 24A52218 */ addiu $a1, $a1, %lo(func_809C2218) ## $a1 = 809C2218
/* 0019C 809C21FC 0C270818 */ jal func_809C2060
/* 001A0 809C2200 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001A4 809C2204 8FBF0034 */ lw $ra, 0x0034($sp)
.L809C2208:
/* 001A8 809C2208 8FB00030 */ lw $s0, 0x0030($sp)
/* 001AC 809C220C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 001B0 809C2210 03E00008 */ jr $ra
/* 001B4 809C2214 00000000 */ nop

View file

@ -1,63 +0,0 @@
glabel func_809C2218
/* 001B8 809C2218 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 001BC 809C221C AFBF001C */ sw $ra, 0x001C($sp)
/* 001C0 809C2220 AFB00018 */ sw $s0, 0x0018($sp)
/* 001C4 809C2224 84820166 */ lh $v0, 0x0166($a0) ## 00000166
/* 001C8 809C2228 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 001CC 809C222C 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 001D0 809C2230 1440000F */ bne $v0, $zero, .L809C2270
/* 001D4 809C2234 28430065 */ slti $v1, $v0, 0x0065
/* 001D8 809C2238 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24
/* 001DC 809C223C 24050033 */ addiu $a1, $zero, 0x0033 ## $a1 = 00000033
/* 001E0 809C2240 24060009 */ addiu $a2, $zero, 0x0009 ## $a2 = 00000009
/* 001E4 809C2244 0C00CB0F */ jal Actor_Find
/* 001E8 809C2248 AFA70024 */ sw $a3, 0x0024($sp)
/* 001EC 809C224C 14400024 */ bne $v0, $zero, .L809C22E0
/* 001F0 809C2250 8FA70024 */ lw $a3, 0x0024($sp)
/* 001F4 809C2254 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 001F8 809C2258 0C00B33C */ jal Flags_SetClear
/* 001FC 809C225C 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 00200 809C2260 860E0166 */ lh $t6, 0x0166($s0) ## 00000166
/* 00204 809C2264 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 00208 809C2268 1000001D */ beq $zero, $zero, .L809C22E0
/* 0020C 809C226C A60F0166 */ sh $t7, 0x0166($s0) ## 00000166
.L809C2270:
/* 00210 809C2270 38630001 */ xori $v1, $v1, 0x0001 ## $v1 = 00000001
/* 00214 809C2274 24580001 */ addiu $t8, $v0, 0x0001 ## $t8 = 00000001
/* 00218 809C2278 10600019 */ beq $v1, $zero, .L809C22E0
/* 0021C 809C227C A6180166 */ sh $t8, 0x0166($s0) ## 00000166
/* 00220 809C2280 86020166 */ lh $v0, 0x0166($s0) ## 00000166
/* 00224 809C2284 240A00FF */ addiu $t2, $zero, 0x00FF ## $t2 = 000000FF
/* 00228 809C2288 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0022C 809C228C 2442FF9C */ addiu $v0, $v0, 0xFF9C ## $v0 = FFFFFF9C
/* 00230 809C2290 00021083 */ sra $v0, $v0, 2
/* 00234 809C2294 28410006 */ slti $at, $v0, 0x0006
/* 00238 809C2298 14200002 */ bne $at, $zero, .L809C22A4
/* 0023C 809C229C 3C05809C */ lui $a1, %hi(func_809C22F4) ## $a1 = 809C0000
/* 00240 809C22A0 24020005 */ addiu $v0, $zero, 0x0005 ## $v0 = 00000005
.L809C22A4:
/* 00244 809C22A4 86190164 */ lh $t9, 0x0164($s0) ## 00000164
/* 00248 809C22A8 24A522F4 */ addiu $a1, $a1, %lo(func_809C22F4) ## $a1 = 809C22F4
/* 0024C 809C22AC 03224021 */ addu $t0, $t9, $v0
/* 00250 809C22B0 A6080164 */ sh $t0, 0x0164($s0) ## 00000164
/* 00254 809C22B4 86090164 */ lh $t1, 0x0164($s0) ## 00000164
/* 00258 809C22B8 29210100 */ slti $at, $t1, 0x0100
/* 0025C 809C22BC 54200009 */ bnel $at, $zero, .L809C22E4
/* 00260 809C22C0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00264 809C22C4 A60A0164 */ sh $t2, 0x0164($s0) ## 00000164
/* 00268 809C22C8 0C270818 */ jal func_809C2060
/* 0026C 809C22CC AFA70024 */ sw $a3, 0x0024($sp)
/* 00270 809C22D0 8FA40024 */ lw $a0, 0x0024($sp)
/* 00274 809C22D4 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C
/* 00278 809C22D8 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 0027C 809C22DC 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
.L809C22E0:
/* 00280 809C22E0 8FBF001C */ lw $ra, 0x001C($sp)
.L809C22E4:
/* 00284 809C22E4 8FB00018 */ lw $s0, 0x0018($sp)
/* 00288 809C22E8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 0028C 809C22EC 03E00008 */ jr $ra
/* 00290 809C22F0 00000000 */ nop

View file

@ -1,4 +0,0 @@
glabel func_809C22F4
/* 00294 809C22F4 AFA40000 */ sw $a0, 0x0000($sp)
/* 00298 809C22F8 03E00008 */ jr $ra
/* 0029C 809C22FC AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,66 +0,0 @@
.rdata
glabel D_809C25B0
.asciz "../z_en_blkobj.c"
.balign 4
glabel D_809C25C4
.asciz "../z_en_blkobj.c"
.balign 4
.text
glabel func_809C2324
/* 002C4 809C2324 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 002C8 809C2328 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002CC 809C232C AFA40040 */ sw $a0, 0x0040($sp)
/* 002D0 809C2330 AFA50044 */ sw $a1, 0x0044($sp)
/* 002D4 809C2334 AFA60048 */ sw $a2, 0x0048($sp)
/* 002D8 809C2338 8C850000 */ lw $a1, 0x0000($a0) ## 00000000
/* 002DC 809C233C 3C06809C */ lui $a2, %hi(D_809C25B0) ## $a2 = 809C0000
/* 002E0 809C2340 24C625B0 */ addiu $a2, $a2, %lo(D_809C25B0) ## $a2 = 809C25B0
/* 002E4 809C2344 27A40028 */ addiu $a0, $sp, 0x0028 ## $a0 = FFFFFFE8
/* 002E8 809C2348 24070142 */ addiu $a3, $zero, 0x0142 ## $a3 = 00000142
/* 002EC 809C234C 0C031AB1 */ jal Graph_OpenDisps
/* 002F0 809C2350 AFA50038 */ sw $a1, 0x0038($sp)
/* 002F4 809C2354 8FA50048 */ lw $a1, 0x0048($sp)
/* 002F8 809C2358 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 002FC 809C235C 8FA80038 */ lw $t0, 0x0038($sp)
/* 00300 809C2360 14A10004 */ bne $a1, $at, .L809C2374
/* 00304 809C2364 3C04809C */ lui $a0, %hi(D_809C25A0) ## $a0 = 809C0000
/* 00308 809C2368 3C04809C */ lui $a0, %hi(D_809C2590) ## $a0 = 809C0000
/* 0030C 809C236C 10000002 */ beq $zero, $zero, .L809C2378
/* 00310 809C2370 24842590 */ addiu $a0, $a0, %lo(D_809C2590) ## $a0 = 809C2590
.L809C2374:
/* 00314 809C2374 248425A0 */ addiu $a0, $a0, %lo(D_809C25A0) ## $a0 = 809C4B30
.L809C2378:
/* 00318 809C2378 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 0031C 809C237C 3C18DB06 */ lui $t8, 0xDB06 ## $t8 = DB060000
/* 00320 809C2380 37180020 */ ori $t8, $t8, 0x0020 ## $t8 = DB060020
/* 00324 809C2384 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00328 809C2388 AD0F02D0 */ sw $t7, 0x02D0($t0) ## 000002D0
/* 0032C 809C238C AC440004 */ sw $a0, 0x0004($v0) ## 00000004
/* 00330 809C2390 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00334 809C2394 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 00338 809C2398 3C09FB00 */ lui $t1, 0xFB00 ## $t1 = FB000000
/* 0033C 809C239C 30AA00FF */ andi $t2, $a1, 0x00FF ## $t2 = 00000000
/* 00340 809C23A0 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 00344 809C23A4 AD1902D0 */ sw $t9, 0x02D0($t0) ## 000002D0
/* 00348 809C23A8 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 0034C 809C23AC AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00350 809C23B0 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 00354 809C23B4 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
/* 00358 809C23B8 3C06809C */ lui $a2, %hi(D_809C25C4) ## $a2 = 809C0000
/* 0035C 809C23BC 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 00360 809C23C0 AD0B02D0 */ sw $t3, 0x02D0($t0) ## 000002D0
/* 00364 809C23C4 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 00368 809C23C8 8FAD0044 */ lw $t5, 0x0044($sp)
/* 0036C 809C23CC 24C625C4 */ addiu $a2, $a2, %lo(D_809C25C4) ## $a2 = 809C25C4
/* 00370 809C23D0 27A40028 */ addiu $a0, $sp, 0x0028 ## $a0 = FFFFFFE8
/* 00374 809C23D4 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 00378 809C23D8 8FAE0040 */ lw $t6, 0x0040($sp)
/* 0037C 809C23DC 2407014A */ addiu $a3, $zero, 0x014A ## $a3 = 0000014A
/* 00380 809C23E0 0C031AD5 */ jal Graph_CloseDisps
/* 00384 809C23E4 8DC50000 */ lw $a1, 0x0000($t6) ## 00000000
/* 00388 809C23E8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0038C 809C23EC 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 00390 809C23F0 03E00008 */ jr $ra
/* 00394 809C23F4 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_Blkobj_InitVars
.word 0x01360600, 0x00000030, 0x01250000, 0x0000016C
.word EnBlkobj_Init
.word EnBlkobj_Destroy
.word EnBlkobj_Update
.word EnBlkobj_Draw
glabel D_809C2580
.word 0xC0500001, 0xB0F40320, 0xB0F800C8, 0x30FC012C
glabel D_809C2590
.word 0xE200001C, 0xC8112078, 0xDF000000, 0x00000000
glabel D_809C25A0
.word 0xE200001C, 0xC81049D8, 0xDF000000, 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_809C2620
.incbin "baserom/ovl_En_Blkobj", 0x5C0, 0x000000B0

3
spec
View file

@ -2123,8 +2123,7 @@ endseg
beginseg
name "ovl_En_Blkobj"
include "build/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.o"
include "build/data/overlays/actors/z_en_blkobj.data.o"
include "build/data/overlays/actors/z_en_blkobj.reloc.o"
include "build/src/overlays/actors/ovl_En_Blkobj/ovl_En_Blkobj_reloc.o"
endseg
beginseg

View file

@ -15,7 +15,11 @@ void EnBlkobj_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnBlkobj_Update(Actor* thisx, GlobalContext* globalCtx);
void EnBlkobj_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void func_809C2148(EnBlkobj* this, GlobalContext* globalCtx);
void func_809C21A0(EnBlkobj* this, GlobalContext* globalCtx);
void func_809C2218(EnBlkobj* this, GlobalContext* globalCtx);
void func_809C22F4(EnBlkobj* this, GlobalContext* globalCtx);
const ActorInit En_Blkobj_InitVars = {
ACTOR_EN_BLKOBJ,
ACTORTYPE_PROP,
@ -27,23 +31,152 @@ const ActorInit En_Blkobj_InitVars = {
(ActorFunc)EnBlkobj_Update,
(ActorFunc)EnBlkobj_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/func_809C2060.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/EnBlkobj_Init.s")
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 800, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 300, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/EnBlkobj_Destroy.s")
Gfx D_809C2590[] = {
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/func_809C2148.s")
Gfx D_809C25A0[] = {
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/func_809C21A0.s")
extern Gfx D_060014E0[];
extern Gfx D_060053D0[];
extern UNK_TYPE D_06007564;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/func_809C2218.s")
void func_809C2060(EnBlkobj* this, EnBlkobjActionFunc actionFunc) {
this->actionFunc = actionFunc;
this->unk_166 = 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/func_809C22F4.s")
void EnBlkobj_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnBlkobj* this = THIS;
s32 localC = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/EnBlkobj_Update.s")
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
DynaPolyInfo_SetActorMove(&this->dyna, 0);
if (Flags_GetClear(globalCtx, this->dyna.actor.room)) {
this->unk_164 = 0xFF;
func_809C2060(this, func_809C22F4);
} else {
DynaPolyInfo_Alloc(&D_06007564, &localC);
this->dyna.dynaPolyId =
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, localC);
func_809C2060(this, func_809C2148);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/func_809C2324.s")
void EnBlkobj_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnBlkobj* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Blkobj/EnBlkobj_Draw.s")
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
void func_809C2148(EnBlkobj* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (this->dyna.actor.xzDistFromLink < 120.0f) {
func_809C2060(this, func_809C21A0);
}
player->stateFlags2 |= 0x4000000;
}
void func_809C21A0(EnBlkobj* this, GlobalContext* globalCtx) {
if (!(this->dyna.actor.flags & 0x40)) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_TORCH2, this->dyna.actor.posRot.pos.x,
this->dyna.actor.posRot.pos.y, this->dyna.actor.posRot.pos.z, 0, this->dyna.actor.yawTowardsLink, 0,
0);
func_809C2060(this, func_809C2218);
}
}
void func_809C2218(EnBlkobj* this, GlobalContext* globalCtx) {
s32 temp;
if (this->unk_166 == 0) {
if (Actor_Find(&globalCtx->actorCtx, ACTOR_EN_TORCH2, ACTORTYPE_BOSS) == NULL) {
Flags_SetClear(globalCtx, this->dyna.actor.room);
this->unk_166 += 1;
}
} else {
if ((this->unk_166++ < 0x65) ^ 1) {
temp = (this->unk_166 - 0x64) >> 2;
if (temp > 5) {
temp = 5;
}
this->unk_164 += temp;
if (this->unk_164 > 0xFF) {
this->unk_164 = 0xFF;
func_809C2060(this, func_809C22F4);
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
}
}
}
void func_809C22F4(EnBlkobj* this, GlobalContext* globalCtx) {
}
void EnBlkobj_Update(Actor* thisx, GlobalContext* globalCtx) {
EnBlkobj* this = THIS;
this->actionFunc(this, globalCtx);
}
void func_809C2324(GlobalContext* globalCtx, Gfx* dList, s32 alpha) {
Gfx* segment;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[4];
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_blkobj.c", 322);
if (alpha == 0xFF) {
segment = D_809C2590;
} else {
segment = D_809C25A0;
}
gSPSegment(gfxCtx->polyXlu.p++, 0x08, segment);
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0x00, 0x00, 0x00, alpha);
gSPDisplayList(gfxCtx->polyXlu.p++, dList);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_blkobj.c", 330);
}
void EnBlkobj_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnBlkobj* this = THIS;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
s32 temp_a3;
u32 gameplayFrames;
Gfx* dispRefs[5];
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_blkobj.c", 349);
func_80093D84(globalCtx->state.gfxCtx);
gameplayFrames = globalCtx->gameplayFrames % 128;
gSPSegment(gfxCtx->polyXlu.p++, 0x0D,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames, 0, 32, 32, 1, gameplayFrames, 0, 32, 32));
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_blkobj.c", 363),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
if (this->unk_164 != 0) {
func_809C2324(globalCtx, D_060014E0, this->unk_164);
}
temp_a3 = 0xFF - this->unk_164;
if (temp_a3 != 0) {
func_809C2324(globalCtx, D_060053D0, temp_a3);
}
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_blkobj.c", 375);
}

View file

@ -6,9 +6,13 @@
struct EnBlkobj;
typedef void (*EnBlkobjActionFunc)(struct EnBlkobj*, GlobalContext*);
typedef struct EnBlkobj {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x20];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ s16 unk_164;
/* 0x0166 */ s16 unk_166;
/* 0x0168 */ EnBlkobjActionFunc actionFunc;
} EnBlkobj; // size = 0x016C
extern const ActorInit En_Blkobj_InitVars;

View file

@ -286,6 +286,11 @@ D_04037880 = 0x04037880;
D_0600006C = 0x0600006C;
D_06002190 = 0x06002190;
// z_en_blkobj
D_060014E0 = 0x060014E0;
D_060053D0 = 0x060053D0;
D_06007564 = 0x06007564;
// z_en_lightbox
D_06001F10 = 0x06001F10;
D_06000B70 = 0x06000B70;