1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

ObjWarp2block OK (#685)

* ObjWarp2block OK

* Address petrie's comments

* Rename unused temp to reflect that it's padding

* Address fig comments

* Use a single byte in offset and size comments

* Address roman's comments
This commit is contained in:
DefinedBehavior 2021-02-13 17:51:08 -05:00 committed by GitHub
parent f214743494
commit 12348ca3df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 283 additions and 842 deletions

View File

@ -1,19 +0,0 @@
glabel ObjWarp2block_Destroy
/* 00698 80BA2488 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0069C 80BA248C AFBF0014 */ sw $ra, 0x0014($sp)
/* 006A0 80BA2490 AFA5001C */ sw $a1, 0x001C($sp)
/* 006A4 80BA2494 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 006A8 80BA2498 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 006AC 80BA249C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 006B0 80BA24A0 000E7BC3 */ sra $t7, $t6, 15
/* 006B4 80BA24A4 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
/* 006B8 80BA24A8 13000003 */ beq $t8, $zero, .L80BA24B8
/* 006BC 80BA24AC 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 006C0 80BA24B0 0C00FB56 */ jal DynaPoly_DeleteBgActor
## DynaPoly_DeleteBgActor
/* 006C4 80BA24B4 8CE6014C */ lw $a2, 0x014C($a3) ## 0000014C
.L80BA24B8:
/* 006C8 80BA24B8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 006CC 80BA24BC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 006D0 80BA24C0 03E00008 */ jr $ra
/* 006D4 80BA24C4 00000000 */ nop

View File

@ -1,90 +0,0 @@
.rdata
glabel D_80BA294C
.asciz "../z_obj_warp2block.c"
.balign 4
glabel D_80BA2964
.asciz "../z_obj_warp2block.c"
.balign 4
glabel D_80BA297C
.asciz "../z_obj_warp2block.c"
.balign 4
.text
glabel ObjWarp2block_Draw
/* 00904 80BA26F4 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00908 80BA26F8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0090C 80BA26FC AFB00018 */ sw $s0, 0x0018($sp)
/* 00910 80BA2700 AFA40048 */ sw $a0, 0x0048($sp)
/* 00914 80BA2704 AFA5004C */ sw $a1, 0x004C($sp)
/* 00918 80BA2708 848F0018 */ lh $t7, 0x0018($a0) ## 00000018
/* 0091C 80BA270C 3C0880BA */ lui $t0, %hi(D_80BA2884) ## $t0 = 80BA0000
/* 00920 80BA2710 25082884 */ addiu $t0, $t0, %lo(D_80BA2884) ## $t0 = 80BA2884
/* 00924 80BA2714 31F80007 */ andi $t8, $t7, 0x0007 ## $t8 = 00000000
/* 00928 80BA2718 0018C880 */ sll $t9, $t8, 2
/* 0092C 80BA271C 0338C823 */ subu $t9, $t9, $t8
/* 00930 80BA2720 03284821 */ addu $t1, $t9, $t0
/* 00934 80BA2724 AFA90044 */ sw $t1, 0x0044($sp)
/* 00938 80BA2728 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 0093C 80BA272C 3C0680BA */ lui $a2, %hi(D_80BA294C) ## $a2 = 80BA0000
/* 00940 80BA2730 24C6294C */ addiu $a2, $a2, %lo(D_80BA294C) ## $a2 = 80BA294C
/* 00944 80BA2734 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8
/* 00948 80BA2738 24070248 */ addiu $a3, $zero, 0x0248 ## $a3 = 00000248
/* 0094C 80BA273C 0C031AB1 */ jal Graph_OpenDisps
/* 00950 80BA2740 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00954 80BA2744 8FAB004C */ lw $t3, 0x004C($sp)
/* 00958 80BA2748 0C024F46 */ jal func_80093D18
/* 0095C 80BA274C 8D640000 */ lw $a0, 0x0000($t3) ## 00000000
/* 00960 80BA2750 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00964 80BA2754 3C0DDA38 */ lui $t5, 0xDA38 ## $t5 = DA380000
/* 00968 80BA2758 35AD0003 */ ori $t5, $t5, 0x0003 ## $t5 = DA380003
/* 0096C 80BA275C 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 00970 80BA2760 AE0C02C0 */ sw $t4, 0x02C0($s0) ## 000002C0
/* 00974 80BA2764 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 00978 80BA2768 8FAE004C */ lw $t6, 0x004C($sp)
/* 0097C 80BA276C 3C0580BA */ lui $a1, %hi(D_80BA2964) ## $a1 = 80BA0000
/* 00980 80BA2770 24A52964 */ addiu $a1, $a1, %lo(D_80BA2964) ## $a1 = 80BA2964
/* 00984 80BA2774 8DC40000 */ lw $a0, 0x0000($t6) ## 00000000
/* 00988 80BA2778 2406024C */ addiu $a2, $zero, 0x024C ## $a2 = 0000024C
/* 0098C 80BA277C 0C0346A2 */ jal Matrix_NewMtx
/* 00990 80BA2780 AFA2002C */ sw $v0, 0x002C($sp)
/* 00994 80BA2784 8FA3002C */ lw $v1, 0x002C($sp)
/* 00998 80BA2788 3C18FA00 */ lui $t8, 0xFA00 ## $t8 = FA000000
/* 0099C 80BA278C 3C0680BA */ lui $a2, %hi(D_80BA297C) ## $a2 = 80BA0000
/* 009A0 80BA2790 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 009A4 80BA2794 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 009A8 80BA2798 8FA40044 */ lw $a0, 0x0044($sp)
/* 009AC 80BA279C 24C6297C */ addiu $a2, $a2, %lo(D_80BA297C) ## $a2 = 80BA297C
/* 009B0 80BA27A0 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 009B4 80BA27A4 AE0F02C0 */ sw $t7, 0x02C0($s0) ## 000002C0
/* 009B8 80BA27A8 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 009BC 80BA27AC 908B0001 */ lbu $t3, 0x0001($a0) ## 00000001
/* 009C0 80BA27B0 90880000 */ lbu $t0, 0x0000($a0) ## 00000000
/* 009C4 80BA27B4 908F0002 */ lbu $t7, 0x0002($a0) ## 00000002
/* 009C8 80BA27B8 000B6400 */ sll $t4, $t3, 16
/* 009CC 80BA27BC 00084E00 */ sll $t1, $t0, 24
/* 009D0 80BA27C0 012C6825 */ or $t5, $t1, $t4 ## $t5 = 00000000
/* 009D4 80BA27C4 000FC200 */ sll $t8, $t7, 8
/* 009D8 80BA27C8 01B8C825 */ or $t9, $t5, $t8 ## $t9 = FA000000
/* 009DC 80BA27CC 372800FF */ ori $t0, $t9, 0x00FF ## $t0 = FA0000FF
/* 009E0 80BA27D0 AC480004 */ sw $t0, 0x0004($v0) ## 00000004
/* 009E4 80BA27D4 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 009E8 80BA27D8 3C090600 */ lui $t1, %hi(D_06000980) ## $t1 = 06000000
/* 009EC 80BA27DC 25290980 */ addiu $t1, $t1, %lo(D_06000980) ## $t1 = 06000980
/* 009F0 80BA27E0 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 009F4 80BA27E4 AE0A02C0 */ sw $t2, 0x02C0($s0) ## 000002C0
/* 009F8 80BA27E8 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000
/* 009FC 80BA27EC AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 00A00 80BA27F0 AC490004 */ sw $t1, 0x0004($v0) ## 00000004
/* 00A04 80BA27F4 8FAC004C */ lw $t4, 0x004C($sp)
/* 00A08 80BA27F8 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8
/* 00A0C 80BA27FC 24070252 */ addiu $a3, $zero, 0x0252 ## $a3 = 00000252
/* 00A10 80BA2800 0C031AD5 */ jal Graph_CloseDisps
/* 00A14 80BA2804 8D850000 */ lw $a1, 0x0000($t4) ## 00000000
/* 00A18 80BA2808 8FBF001C */ lw $ra, 0x001C($sp)
/* 00A1C 80BA280C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00A20 80BA2810 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 00A24 80BA2814 03E00008 */ jr $ra
/* 00A28 80BA2818 00000000 */ nop
/* 00A2C 80BA281C 00000000 */ nop

View File

@ -1,98 +0,0 @@
.rdata
glabel D_80BA28A0
.asciz "() (<arg> %04xH <type> color:%d range:%d)\n"
.balign 4
.text
glabel ObjWarp2block_Init
/* 00558 80BA2348 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 0055C 80BA234C AFBF001C */ sw $ra, 0x001C($sp)
/* 00560 80BA2350 AFB00018 */ sw $s0, 0x0018($sp)
/* 00564 80BA2354 AFA50034 */ sw $a1, 0x0034($sp)
/* 00568 80BA2358 AFA00024 */ sw $zero, 0x0024($sp)
/* 0056C 80BA235C A48000B8 */ sh $zero, 0x00B8($a0) ## 000000B8
/* 00570 80BA2360 848E00B8 */ lh $t6, 0x00B8($a0) ## 000000B8
/* 00574 80BA2364 3C0580BA */ lui $a1, %hi(D_80BA2878) ## $a1 = 80BA0000
/* 00578 80BA2368 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0057C 80BA236C 24A52878 */ addiu $a1, $a1, %lo(D_80BA2878) ## $a1 = 80BA2878
/* 00580 80BA2370 0C01E037 */ jal Actor_ProcessInitChain
/* 00584 80BA2374 A48E0034 */ sh $t6, 0x0034($a0) ## 00000034
/* 00588 80BA2378 860F001C */ lh $t7, 0x001C($s0) ## 0000001C
/* 0058C 80BA237C 3C0580BA */ lui $a1, %hi(D_80BA2840) ## $a1 = 80BA0000
/* 00590 80BA2380 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00594 80BA2384 000FC203 */ sra $t8, $t7, 8
/* 00598 80BA2388 33190001 */ andi $t9, $t8, 0x0001 ## $t9 = 00000000
/* 0059C 80BA238C 00194080 */ sll $t0, $t9, 2
/* 005A0 80BA2390 01194023 */ subu $t0, $t0, $t9
/* 005A4 80BA2394 00084080 */ sll $t0, $t0, 2
/* 005A8 80BA2398 00A82821 */ addu $a1, $a1, $t0
/* 005AC 80BA239C 0C00B58B */ jal Actor_SetScale
/* 005B0 80BA23A0 8CA52840 */ lw $a1, %lo(D_80BA2840)($a1)
/* 005B4 80BA23A4 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
/* 005B8 80BA23A8 3C0980BA */ lui $t1, %hi(func_80BA2218) ## $t1 = 80BA0000
/* 005BC 80BA23AC 25292218 */ addiu $t1, $t1, %lo(func_80BA2218) ## $t1 = 80BA2218
/* 005C0 80BA23B0 000A5A03 */ sra $t3, $t2, 8
/* 005C4 80BA23B4 316C0001 */ andi $t4, $t3, 0x0001 ## $t4 = 00000000
/* 005C8 80BA23B8 000C6880 */ sll $t5, $t4, 2
/* 005CC 80BA23BC 01AC6823 */ subu $t5, $t5, $t4
/* 005D0 80BA23C0 000D6880 */ sll $t5, $t5, 2
/* 005D4 80BA23C4 3C0580BA */ lui $a1, %hi(D_80BA2844) ## $a1 = 80BA0000
/* 005D8 80BA23C8 AE090168 */ sw $t1, 0x0168($s0) ## 00000168
/* 005DC 80BA23CC 00AD2821 */ addu $a1, $a1, $t5
/* 005E0 80BA23D0 8CA52844 */ lw $a1, %lo(D_80BA2844)($a1)
/* 005E4 80BA23D4 0C00B56E */ jal Actor_SetFocus
/* 005E8 80BA23D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 005EC 80BA23DC 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 005F0 80BA23E0 000E7BC3 */ sra $t7, $t6, 15
/* 005F4 80BA23E4 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
/* 005F8 80BA23E8 13000017 */ beq $t8, $zero, .L80BA2448
/* 005FC 80BA23EC 00000000 */ nop
/* 00600 80BA23F0 0C2E893A */ jal func_80BA24E8
/* 00604 80BA23F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00608 80BA23F8 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 0060C 80BA23FC 8FA40034 */ lw $a0, 0x0034($sp)
/* 00610 80BA2400 0C00B2D0 */ jal Flags_GetSwitch
/* 00614 80BA2404 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00618 80BA2408 10400002 */ beq $v0, $zero, .L80BA2414
/* 0061C 80BA240C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00620 80BA2410 AE000134 */ sw $zero, 0x0134($s0) ## 00000134
.L80BA2414:
/* 00624 80BA2414 0C010D20 */ jal DynaPolyActor_Init
/* 00628 80BA2418 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 0062C 80BA241C 3C040600 */ lui $a0, %hi(D_06000B30) ## $a0 = 06000000
/* 00630 80BA2420 24840B30 */ addiu $a0, $a0, %lo(D_06000B30) ## $a0 = 06000B30
/* 00634 80BA2424 0C010620 */ jal CollisionHeader_GetVirtual
/* 00638 80BA2428 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 0063C 80BA242C 8FA40034 */ lw $a0, 0x0034($sp)
/* 00640 80BA2430 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00644 80BA2434 8FA70024 */ lw $a3, 0x0024($sp)
/* 00648 80BA2438 0C00FA9D */ jal DynaPoly_SetBgActor
## DynaPoly_SetBgActor
/* 0064C 80BA243C 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00650 80BA2440 10000003 */ beq $zero, $zero, .L80BA2450
/* 00654 80BA2444 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
.L80BA2448:
/* 00658 80BA2448 0C2E8932 */ jal func_80BA24C8
/* 0065C 80BA244C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80BA2450:
/* 00660 80BA2450 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00664 80BA2454 86060018 */ lh $a2, 0x0018($s0) ## 00000018
/* 00668 80BA2458 3C0480BA */ lui $a0, %hi(D_80BA28A0) ## $a0 = 80BA0000
/* 0066C 80BA245C 00023AC3 */ sra $a3, $v0, 11
/* 00670 80BA2460 30E70007 */ andi $a3, $a3, 0x0007 ## $a3 = 00000000
/* 00674 80BA2464 248428A0 */ addiu $a0, $a0, %lo(D_80BA28A0) ## $a0 = 80BA28A0
/* 00678 80BA2468 3045FFFF */ andi $a1, $v0, 0xFFFF ## $a1 = 00000000
/* 0067C 80BA246C 0C00084C */ jal osSyncPrintf
/* 00680 80BA2470 30C60007 */ andi $a2, $a2, 0x0007 ## $a2 = 00000000
/* 00684 80BA2474 8FBF001C */ lw $ra, 0x001C($sp)
/* 00688 80BA2478 8FB00018 */ lw $s0, 0x0018($sp)
/* 0068C 80BA247C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00690 80BA2480 03E00008 */ jr $ra
/* 00694 80BA2484 00000000 */ nop

View File

@ -1,17 +0,0 @@
glabel ObjWarp2block_Update
/* 008C8 80BA26B8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 008CC 80BA26BC AFBF0014 */ sw $ra, 0x0014($sp)
/* 008D0 80BA26C0 AFA40018 */ sw $a0, 0x0018($sp)
/* 008D4 80BA26C4 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 008D8 80BA26C8 0320F809 */ jalr $ra, $t9
/* 008DC 80BA26CC 00000000 */ nop
/* 008E0 80BA26D0 8FA40018 */ lw $a0, 0x0018($sp)
/* 008E4 80BA26D4 8482016C */ lh $v0, 0x016C($a0) ## 0000016C
/* 008E8 80BA26D8 18400002 */ blez $v0, .L80BA26E4
/* 008EC 80BA26DC 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 008F0 80BA26E0 A48E016C */ sh $t6, 0x016C($a0) ## 0000016C
.L80BA26E4:
/* 008F4 80BA26E4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 008F8 80BA26E8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 008FC 80BA26EC 03E00008 */ jr $ra
/* 00900 80BA26F0 00000000 */ nop

View File

@ -1,58 +0,0 @@
glabel func_80BA1DF0
/* 00000 80BA1DF0 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 00004 80BA1DF4 AFB00030 */ sw $s0, 0x0030($sp)
/* 00008 80BA1DF8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0000C 80BA1DFC AFBF0034 */ sw $ra, 0x0034($sp)
/* 00010 80BA1E00 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 00014 80BA1E04 8E070024 */ lw $a3, 0x0024($s0) ## 00000024
/* 00018 80BA1E08 3C0880BA */ lui $t0, %hi(D_80BA2848) ## $t0 = 80BA0000
/* 0001C 80BA1E0C E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00020 80BA1E10 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 00024 80BA1E14 AFA00020 */ sw $zero, 0x0020($sp)
/* 00028 80BA1E18 AFA0001C */ sw $zero, 0x001C($sp)
/* 0002C 80BA1E1C AFA00018 */ sw $zero, 0x0018($sp)
/* 00030 80BA1E20 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 00034 80BA1E24 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00038 80BA1E28 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24
/* 0003C 80BA1E2C AFA4003C */ sw $a0, 0x003C($sp)
/* 00040 80BA1E30 000E7A03 */ sra $t7, $t6, 8
/* 00044 80BA1E34 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
/* 00048 80BA1E38 0018C880 */ sll $t9, $t8, 2
/* 0004C 80BA1E3C 0338C823 */ subu $t9, $t9, $t8
/* 00050 80BA1E40 0019C880 */ sll $t9, $t9, 2
/* 00054 80BA1E44 01194021 */ addu $t0, $t0, $t9
/* 00058 80BA1E48 85082848 */ lh $t0, %lo(D_80BA2848)($t0)
/* 0005C 80BA1E4C AFA50044 */ sw $a1, 0x0044($sp)
/* 00060 80BA1E50 2406008B */ addiu $a2, $zero, 0x008B ## $a2 = 0000008B
/* 00064 80BA1E54 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00068 80BA1E58 AFA80024 */ sw $t0, 0x0024($sp)
/* 0006C 80BA1E5C 8E02011C */ lw $v0, 0x011C($s0) ## 0000011C
/* 00070 80BA1E60 3C0D80BA */ lui $t5, %hi(D_80BA2848) ## $t5 = 80BA0000
/* 00074 80BA1E64 8FA4003C */ lw $a0, 0x003C($sp)
/* 00078 80BA1E68 C4480028 */ lwc1 $f8, 0x0028($v0) ## 00000028
/* 0007C 80BA1E6C 8C470024 */ lw $a3, 0x0024($v0) ## 00000024
/* 00080 80BA1E70 8FA50044 */ lw $a1, 0x0044($sp)
/* 00084 80BA1E74 E7A80010 */ swc1 $f8, 0x0010($sp)
/* 00088 80BA1E78 C44A002C */ lwc1 $f10, 0x002C($v0) ## 0000002C
/* 0008C 80BA1E7C AFA00020 */ sw $zero, 0x0020($sp)
/* 00090 80BA1E80 AFA0001C */ sw $zero, 0x001C($sp)
/* 00094 80BA1E84 AFA00018 */ sw $zero, 0x0018($sp)
/* 00098 80BA1E88 E7AA0014 */ swc1 $f10, 0x0014($sp)
/* 0009C 80BA1E8C 8449001C */ lh $t1, 0x001C($v0) ## 0000001C
/* 000A0 80BA1E90 2406008B */ addiu $a2, $zero, 0x008B ## $a2 = 0000008B
/* 000A4 80BA1E94 00095203 */ sra $t2, $t1, 8
/* 000A8 80BA1E98 314B0001 */ andi $t3, $t2, 0x0001 ## $t3 = 00000000
/* 000AC 80BA1E9C 000B6080 */ sll $t4, $t3, 2
/* 000B0 80BA1EA0 018B6023 */ subu $t4, $t4, $t3
/* 000B4 80BA1EA4 000C6080 */ sll $t4, $t4, 2
/* 000B8 80BA1EA8 01AC6821 */ addu $t5, $t5, $t4
/* 000BC 80BA1EAC 85AD2848 */ lh $t5, %lo(D_80BA2848)($t5)
/* 000C0 80BA1EB0 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 000C4 80BA1EB4 AFAD0024 */ sw $t5, 0x0024($sp)
/* 000C8 80BA1EB8 8FBF0034 */ lw $ra, 0x0034($sp)
/* 000CC 80BA1EBC 8FB00030 */ lw $s0, 0x0030($sp)
/* 000D0 80BA1EC0 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 000D4 80BA1EC4 03E00008 */ jr $ra
/* 000D8 80BA1EC8 00000000 */ nop

View File

@ -1,101 +0,0 @@
glabel func_80BA1ECC
/* 000DC 80BA1ECC 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 000E0 80BA1ED0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 000E4 80BA1ED4 AFA5003C */ sw $a1, 0x003C($sp)
/* 000E8 80BA1ED8 0C010D64 */ jal func_80043590
/* 000EC 80BA1EDC AFA40038 */ sw $a0, 0x0038($sp)
/* 000F0 80BA1EE0 10400003 */ beq $v0, $zero, .L80BA1EF0
/* 000F4 80BA1EE4 8FA40038 */ lw $a0, 0x0038($sp)
/* 000F8 80BA1EE8 10000053 */ beq $zero, $zero, .L80BA2038
/* 000FC 80BA1EEC 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80BA1EF0:
/* 00100 80BA1EF0 848F001C */ lh $t7, 0x001C($a0) ## 0000001C
/* 00104 80BA1EF4 3C0380BA */ lui $v1, %hi(D_80BA2858) ## $v1 = 80BA0000
/* 00108 80BA1EF8 24632858 */ addiu $v1, $v1, %lo(D_80BA2858) ## $v1 = 80BA2858
/* 0010C 80BA1EFC 000FC2C3 */ sra $t8, $t7, 11
/* 00110 80BA1F00 33190007 */ andi $t9, $t8, 0x0007 ## $t9 = 00000000
/* 00114 80BA1F04 00194080 */ sll $t0, $t9, 2
/* 00118 80BA1F08 00684821 */ addu $t1, $v1, $t0
/* 0011C 80BA1F0C C5240000 */ lwc1 $f4, 0x0000($t1) ## 00000000
/* 00120 80BA1F10 C4860090 */ lwc1 $f6, 0x0090($a0) ## 00000090
/* 00124 80BA1F14 8FAE003C */ lw $t6, 0x003C($sp)
/* 00128 80BA1F18 8C87011C */ lw $a3, 0x011C($a0) ## 0000011C
/* 0012C 80BA1F1C 4604303E */ c.le.s $f6, $f4
/* 00130 80BA1F20 8DC21C44 */ lw $v0, 0x1C44($t6) ## 00001C44
/* 00134 80BA1F24 27A50020 */ addiu $a1, $sp, 0x0020 ## $a1 = FFFFFFE8
/* 00138 80BA1F28 4501000C */ bc1t .L80BA1F5C
/* 0013C 80BA1F2C 24460024 */ addiu $a2, $v0, 0x0024 ## $a2 = 00000024
/* 00140 80BA1F30 84EA001C */ lh $t2, 0x001C($a3) ## 0000001C
/* 00144 80BA1F34 C4EA0090 */ lwc1 $f10, 0x0090($a3) ## 00000090
/* 00148 80BA1F38 000A5AC3 */ sra $t3, $t2, 11
/* 0014C 80BA1F3C 316C0007 */ andi $t4, $t3, 0x0007 ## $t4 = 00000000
/* 00150 80BA1F40 000C6880 */ sll $t5, $t4, 2
/* 00154 80BA1F44 006D7021 */ addu $t6, $v1, $t5
/* 00158 80BA1F48 C5C80000 */ lwc1 $f8, 0x0000($t6) ## 00000000
/* 0015C 80BA1F4C 4608503E */ c.le.s $f10, $f8
/* 00160 80BA1F50 00000000 */ nop
/* 00164 80BA1F54 45000036 */ bc1f .L80BA2030
/* 00168 80BA1F58 00000000 */ nop
.L80BA1F5C:
/* 0016C 80BA1F5C AFA40038 */ sw $a0, 0x0038($sp)
/* 00170 80BA1F60 AFA60018 */ sw $a2, 0x0018($sp)
/* 00174 80BA1F64 0C00B6F4 */ jal func_8002DBD0
/* 00178 80BA1F68 AFA70030 */ sw $a3, 0x0030($sp)
/* 0017C 80BA1F6C 8FA40038 */ lw $a0, 0x0038($sp)
/* 00180 80BA1F70 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00184 80BA1F74 44819000 */ mtc1 $at, $f18 ## $f18 = 50.00
/* 00188 80BA1F78 C4900050 */ lwc1 $f16, 0x0050($a0) ## 00000050
/* 0018C 80BA1F7C 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 00190 80BA1F80 44813000 */ mtc1 $at, $f6 ## $f6 = 6.00
/* 00194 80BA1F84 46128102 */ mul.s $f4, $f16, $f18
/* 00198 80BA1F88 C7A00020 */ lwc1 $f0, 0x0020($sp)
/* 0019C 80BA1F8C 8FA70030 */ lw $a3, 0x0030($sp)
/* 001A0 80BA1F90 8FA60018 */ lw $a2, 0x0018($sp)
/* 001A4 80BA1F94 46000005 */ abs.s $f0, $f0
/* 001A8 80BA1F98 27A50020 */ addiu $a1, $sp, 0x0020 ## $a1 = FFFFFFE8
/* 001AC 80BA1F9C 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 001B0 80BA1FA0 46062080 */ add.s $f2, $f4, $f6
/* 001B4 80BA1FA4 4600103C */ c.lt.s $f2, $f0
/* 001B8 80BA1FA8 C7A00028 */ lwc1 $f0, 0x0028($sp)
/* 001BC 80BA1FAC 45010008 */ bc1t .L80BA1FD0
/* 001C0 80BA1FB0 00000000 */ nop
/* 001C4 80BA1FB4 46000005 */ abs.s $f0, $f0
/* 001C8 80BA1FB8 4600103C */ c.lt.s $f2, $f0
/* 001CC 80BA1FBC 00000000 */ nop
/* 001D0 80BA1FC0 45010003 */ bc1t .L80BA1FD0
/* 001D4 80BA1FC4 00000000 */ nop
/* 001D8 80BA1FC8 1000001B */ beq $zero, $zero, .L80BA2038
/* 001DC 80BA1FCC 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80BA1FD0:
/* 001E0 80BA1FD0 0C00B6F4 */ jal func_8002DBD0
/* 001E4 80BA1FD4 AFA70030 */ sw $a3, 0x0030($sp)
/* 001E8 80BA1FD8 8FA70030 */ lw $a3, 0x0030($sp)
/* 001EC 80BA1FDC 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 001F0 80BA1FE0 44815000 */ mtc1 $at, $f10 ## $f10 = 50.00
/* 001F4 80BA1FE4 C4E80050 */ lwc1 $f8, 0x0050($a3) ## 00000050
/* 001F8 80BA1FE8 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 001FC 80BA1FEC 44819000 */ mtc1 $at, $f18 ## $f18 = 6.00
/* 00200 80BA1FF0 460A4402 */ mul.s $f16, $f8, $f10
/* 00204 80BA1FF4 C7A00020 */ lwc1 $f0, 0x0020($sp)
/* 00208 80BA1FF8 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 0020C 80BA1FFC 46000005 */ abs.s $f0, $f0
/* 00210 80BA2000 46128080 */ add.s $f2, $f16, $f18
/* 00214 80BA2004 4600103C */ c.lt.s $f2, $f0
/* 00218 80BA2008 C7A00028 */ lwc1 $f0, 0x0028($sp)
/* 0021C 80BA200C 4501000A */ bc1t .L80BA2038
/* 00220 80BA2010 00000000 */ nop
/* 00224 80BA2014 46000005 */ abs.s $f0, $f0
/* 00228 80BA2018 4600103C */ c.lt.s $f2, $f0
/* 0022C 80BA201C 00000000 */ nop
/* 00230 80BA2020 45010005 */ bc1t .L80BA2038
/* 00234 80BA2024 00000000 */ nop
/* 00238 80BA2028 10000003 */ beq $zero, $zero, .L80BA2038
/* 0023C 80BA202C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80BA2030:
/* 00240 80BA2030 10000001 */ beq $zero, $zero, .L80BA2038
/* 00244 80BA2034 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80BA2038:
/* 00248 80BA2038 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0024C 80BA203C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00250 80BA2040 03E00008 */ jr $ra
/* 00254 80BA2044 00000000 */ nop

View File

@ -1,135 +0,0 @@
.late_rodata
glabel D_80BA2994
.float 0.01
.text
glabel func_80BA2048
/* 00258 80BA2048 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 0025C 80BA204C AFB00014 */ sw $s0, 0x0014($sp)
/* 00260 80BA2050 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00264 80BA2054 AFB10018 */ sw $s1, 0x0018($sp)
/* 00268 80BA2058 AFA5004C */ sw $a1, 0x004C($sp)
/* 0026C 80BA205C 27B1003C */ addiu $s1, $sp, 0x003C ## $s1 = FFFFFFF4
/* 00270 80BA2060 AFBF001C */ sw $ra, 0x001C($sp)
/* 00274 80BA2064 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 00278 80BA2068 AFA5002C */ sw $a1, 0x002C($sp)
/* 0027C 80BA206C 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00280 80BA2070 02202025 */ or $a0, $s1, $zero ## $a0 = FFFFFFF4
/* 00284 80BA2074 8E05011C */ lw $a1, 0x011C($s0) ## 0000011C
/* 00288 80BA2078 8FA4002C */ lw $a0, 0x002C($sp)
/* 0028C 80BA207C 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00290 80BA2080 24A50024 */ addiu $a1, $a1, 0x0024 ## $a1 = 00000024
/* 00294 80BA2084 8E04011C */ lw $a0, 0x011C($s0) ## 0000011C
/* 00298 80BA2088 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFF4
/* 0029C 80BA208C 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 002A0 80BA2090 24840024 */ addiu $a0, $a0, 0x0024 ## $a0 = 00000024
/* 002A4 80BA2094 8E02011C */ lw $v0, 0x011C($s0) ## 0000011C
/* 002A8 80BA2098 86030032 */ lh $v1, 0x0032($s0) ## 00000032
/* 002AC 80BA209C 26060050 */ addiu $a2, $s0, 0x0050 ## $a2 = 00000050
/* 002B0 80BA20A0 844E0032 */ lh $t6, 0x0032($v0) ## 00000032
/* 002B4 80BA20A4 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000050
/* 002B8 80BA20A8 02202025 */ or $a0, $s1, $zero ## $a0 = FFFFFFF4
/* 002BC 80BA20AC A60E0032 */ sh $t6, 0x0032($s0) ## 00000032
/* 002C0 80BA20B0 A4430032 */ sh $v1, 0x0032($v0) ## 00000032
/* 002C4 80BA20B4 8E02011C */ lw $v0, 0x011C($s0) ## 0000011C
/* 002C8 80BA20B8 860300B6 */ lh $v1, 0x00B6($s0) ## 000000B6
/* 002CC 80BA20BC 844F00B6 */ lh $t7, 0x00B6($v0) ## 000000B6
/* 002D0 80BA20C0 A60F00B6 */ sh $t7, 0x00B6($s0) ## 000000B6
/* 002D4 80BA20C4 A44300B6 */ sh $v1, 0x00B6($v0) ## 000000B6
/* 002D8 80BA20C8 8E02011C */ lw $v0, 0x011C($s0) ## 0000011C
/* 002DC 80BA20CC 86030018 */ lh $v1, 0x0018($s0) ## 00000018
/* 002E0 80BA20D0 84580018 */ lh $t8, 0x0018($v0) ## 00000018
/* 002E4 80BA20D4 A6180018 */ sh $t8, 0x0018($s0) ## 00000018
/* 002E8 80BA20D8 A4430018 */ sh $v1, 0x0018($v0) ## 00000018
/* 002EC 80BA20DC 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 002F0 80BA20E0 AFA60028 */ sw $a2, 0x0028($sp)
/* 002F4 80BA20E4 8E05011C */ lw $a1, 0x011C($s0) ## 0000011C
/* 002F8 80BA20E8 8FA40028 */ lw $a0, 0x0028($sp)
/* 002FC 80BA20EC 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00300 80BA20F0 24A50050 */ addiu $a1, $a1, 0x0050 ## $a1 = 00000050
/* 00304 80BA20F4 8E04011C */ lw $a0, 0x011C($s0) ## 0000011C
/* 00308 80BA20F8 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFF4
/* 0030C 80BA20FC 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00310 80BA2100 24840050 */ addiu $a0, $a0, 0x0050 ## $a0 = 00000050
/* 00314 80BA2104 26060038 */ addiu $a2, $s0, 0x0038 ## $a2 = 00000038
/* 00318 80BA2108 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000038
/* 0031C 80BA210C AFA60028 */ sw $a2, 0x0028($sp)
/* 00320 80BA2110 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00324 80BA2114 02202025 */ or $a0, $s1, $zero ## $a0 = FFFFFFF4
/* 00328 80BA2118 8E05011C */ lw $a1, 0x011C($s0) ## 0000011C
/* 0032C 80BA211C 8FA40028 */ lw $a0, 0x0028($sp)
/* 00330 80BA2120 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00334 80BA2124 24A50038 */ addiu $a1, $a1, 0x0038 ## $a1 = 00000038
/* 00338 80BA2128 8E04011C */ lw $a0, 0x011C($s0) ## 0000011C
/* 0033C 80BA212C 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFF4
/* 00340 80BA2130 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00344 80BA2134 24840038 */ addiu $a0, $a0, 0x0038 ## $a0 = 00000038
/* 00348 80BA2138 26060044 */ addiu $a2, $s0, 0x0044 ## $a2 = 00000044
/* 0034C 80BA213C 88C90000 */ lwl $t1, 0x0000($a2) ## 00000044
/* 00350 80BA2140 98C90003 */ lwr $t1, 0x0003($a2) ## 00000047
/* 00354 80BA2144 27A80034 */ addiu $t0, $sp, 0x0034 ## $t0 = FFFFFFEC
/* 00358 80BA2148 26050008 */ addiu $a1, $s0, 0x0008 ## $a1 = 00000008
/* 0035C 80BA214C AD090000 */ sw $t1, 0x0000($t0) ## FFFFFFEC
/* 00360 80BA2150 94C90004 */ lhu $t1, 0x0004($a2) ## 00000048
/* 00364 80BA2154 A5090004 */ sh $t1, 0x0004($t0) ## FFFFFFF0
/* 00368 80BA2158 8E0A011C */ lw $t2, 0x011C($s0) ## 0000011C
/* 0036C 80BA215C 894C0044 */ lwl $t4, 0x0044($t2) ## 00000044
/* 00370 80BA2160 994C0047 */ lwr $t4, 0x0047($t2) ## 00000047
/* 00374 80BA2164 A8CC0000 */ swl $t4, 0x0000($a2) ## 00000044
/* 00378 80BA2168 B8CC0003 */ swr $t4, 0x0003($a2) ## 00000047
/* 0037C 80BA216C 954C0048 */ lhu $t4, 0x0048($t2) ## 00000048
/* 00380 80BA2170 A4CC0004 */ sh $t4, 0x0004($a2) ## 00000048
/* 00384 80BA2174 8E0D011C */ lw $t5, 0x011C($s0) ## 0000011C
/* 00388 80BA2178 8D0F0000 */ lw $t7, 0x0000($t0) ## FFFFFFEC
/* 0038C 80BA217C A9AF0044 */ swl $t7, 0x0044($t5) ## 00000044
/* 00390 80BA2180 B9AF0047 */ swr $t7, 0x0047($t5) ## 00000047
/* 00394 80BA2184 950F0004 */ lhu $t7, 0x0004($t0) ## FFFFFFF0
/* 00398 80BA2188 A5AF0048 */ sh $t7, 0x0048($t5) ## 00000048
/* 0039C 80BA218C 8E02011C */ lw $v0, 0x011C($s0) ## 0000011C
/* 003A0 80BA2190 8603001C */ lh $v1, 0x001C($s0) ## 0000001C
/* 003A4 80BA2194 8459001C */ lh $t9, 0x001C($v0) ## 0000001C
/* 003A8 80BA2198 30788000 */ andi $t8, $v1, 0x8000 ## $t8 = 00000000
/* 003AC 80BA219C 306D7FFF */ andi $t5, $v1, 0x7FFF ## $t5 = 00000000
/* 003B0 80BA21A0 33297FFF */ andi $t1, $t9, 0x7FFF ## $t1 = 00000000
/* 003B4 80BA21A4 03095025 */ or $t2, $t8, $t1 ## $t2 = 00000000
/* 003B8 80BA21A8 A60A001C */ sh $t2, 0x001C($s0) ## 0000001C
/* 003BC 80BA21AC 844B001C */ lh $t3, 0x001C($v0) ## 0000001C
/* 003C0 80BA21B0 316C8000 */ andi $t4, $t3, 0x8000 ## $t4 = 00000000
/* 003C4 80BA21B4 018D7025 */ or $t6, $t4, $t5 ## $t6 = 00000000
/* 003C8 80BA21B8 A44E001C */ sh $t6, 0x001C($v0) ## 0000001C
/* 003CC 80BA21BC 0C032D94 */ jal Math3D_Vec3fDistSq
/* 003D0 80BA21C0 8FA4002C */ lw $a0, 0x002C($sp)
/* 003D4 80BA21C4 3C0180BA */ lui $at, %hi(D_80BA2994) ## $at = 80BA0000
/* 003D8 80BA21C8 C4242994 */ lwc1 $f4, %lo(D_80BA2994)($at)
/* 003DC 80BA21CC 4604003C */ c.lt.s $f0, $f4
/* 003E0 80BA21D0 00000000 */ nop
/* 003E4 80BA21D4 45020008 */ bc1fl .L80BA21F8
/* 003E8 80BA21D8 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 003EC 80BA21DC 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 003F0 80BA21E0 8FA4004C */ lw $a0, 0x004C($sp)
/* 003F4 80BA21E4 0C00B2ED */ jal Flags_UnsetSwitch
/* 003F8 80BA21E8 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 003FC 80BA21EC 10000006 */ beq $zero, $zero, .L80BA2208
/* 00400 80BA21F0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00404 80BA21F4 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
.L80BA21F8:
/* 00408 80BA21F8 8FA4004C */ lw $a0, 0x004C($sp)
/* 0040C 80BA21FC 0C00B2DD */ jal Flags_SetSwitch
/* 00410 80BA2200 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00414 80BA2204 8FBF001C */ lw $ra, 0x001C($sp)
.L80BA2208:
/* 00418 80BA2208 8FB00014 */ lw $s0, 0x0014($sp)
/* 0041C 80BA220C 8FB10018 */ lw $s1, 0x0018($sp)
/* 00420 80BA2210 03E00008 */ jr $ra
/* 00424 80BA2214 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000

View File

@ -1,32 +0,0 @@
glabel func_80BA2218
/* 00428 80BA2218 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0042C 80BA221C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00430 80BA2220 AFA40020 */ sw $a0, 0x0020($sp)
/* 00434 80BA2224 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
/* 00438 80BA2228 AFA50024 */ sw $a1, 0x0024($sp)
/* 0043C 80BA222C 0C2E87B3 */ jal func_80BA1ECC
/* 00440 80BA2230 AFA3001C */ sw $v1, 0x001C($sp)
/* 00444 80BA2234 8FA3001C */ lw $v1, 0x001C($sp)
/* 00448 80BA2238 1040000F */ beq $v0, $zero, .L80BA2278
/* 0044C 80BA223C 8FA60024 */ lw $a2, 0x0024($sp)
/* 00450 80BA2240 8C620680 */ lw $v0, 0x0680($v1) ## 00000680
/* 00454 80BA2244 3C010080 */ lui $at, 0x0080 ## $at = 00800000
/* 00458 80BA2248 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0045C 80BA224C 000271C0 */ sll $t6, $v0, 7
/* 00460 80BA2250 05C10008 */ bgez $t6, .L80BA2274
/* 00464 80BA2254 0041C825 */ or $t9, $v0, $at ## $t9 = 00800000
/* 00468 80BA2258 0C042F56 */ jal func_8010BD58
/* 0046C 80BA225C 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00470 80BA2260 8FB80020 */ lw $t8, 0x0020($sp)
/* 00474 80BA2264 3C0F80BA */ lui $t7, %hi(func_80BA228C) ## $t7 = 80BA0000
/* 00478 80BA2268 25EF228C */ addiu $t7, $t7, %lo(func_80BA228C) ## $t7 = 80BA228C
/* 0047C 80BA226C 10000002 */ beq $zero, $zero, .L80BA2278
/* 00480 80BA2270 AF0F0168 */ sw $t7, 0x0168($t8) ## 00000168
.L80BA2274:
/* 00484 80BA2274 AC790680 */ sw $t9, 0x0680($v1) ## 00000680
.L80BA2278:
/* 00488 80BA2278 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0048C 80BA227C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00490 80BA2280 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00494 80BA2284 03E00008 */ jr $ra
/* 00498 80BA2288 00000000 */ nop

View File

@ -1,34 +0,0 @@
glabel func_80BA228C
/* 0049C 80BA228C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 004A0 80BA2290 00A11021 */ addu $v0, $a1, $at
/* 004A4 80BA2294 944E04C6 */ lhu $t6, 0x04C6($v0) ## 000004C6
/* 004A8 80BA2298 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 004AC 80BA229C 3C0F80BA */ lui $t7, %hi(func_80BA2218) ## $t7 = 80BA0000
/* 004B0 80BA22A0 15C10002 */ bne $t6, $at, .L80BA22AC
/* 004B4 80BA22A4 25EF2218 */ addiu $t7, $t7, %lo(func_80BA2218) ## $t7 = 80BA2218
/* 004B8 80BA22A8 AC8F0168 */ sw $t7, 0x0168($a0) ## 00000168
.L80BA22AC:
/* 004BC 80BA22AC 945804C4 */ lhu $t8, 0x04C4($v0) ## 000004C4
/* 004C0 80BA22B0 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
/* 004C4 80BA22B4 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 004C8 80BA22B8 17010010 */ bne $t8, $at, .L80BA22FC
/* 004CC 80BA22BC 00000000 */ nop
/* 004D0 80BA22C0 94990172 */ lhu $t9, 0x0172($a0) ## 00000172
/* 004D4 80BA22C4 240100FE */ addiu $at, $zero, 0x00FE ## $at = 000000FE
/* 004D8 80BA22C8 2408006E */ addiu $t0, $zero, 0x006E ## $t0 = 0000006E
/* 004DC 80BA22CC 57210004 */ bnel $t9, $at, .L80BA22E0
/* 004E0 80BA22D0 8489016E */ lh $t1, 0x016E($a0) ## 0000016E
/* 004E4 80BA22D4 10000009 */ beq $zero, $zero, .L80BA22FC
/* 004E8 80BA22D8 A488016E */ sh $t0, 0x016E($a0) ## 0000016E
/* 004EC 80BA22DC 8489016E */ lh $t1, 0x016E($a0) ## 0000016E
.L80BA22E0:
/* 004F0 80BA22E0 252AFFFF */ addiu $t2, $t1, 0xFFFF ## $t2 = FFFFFFFF
/* 004F4 80BA22E4 A48A016E */ sh $t2, 0x016E($a0) ## 0000016E
/* 004F8 80BA22E8 848B016E */ lh $t3, 0x016E($a0) ## 0000016E
/* 004FC 80BA22EC 15600003 */ bne $t3, $zero, .L80BA22FC
/* 00500 80BA22F0 00000000 */ nop
/* 00504 80BA22F4 03E00008 */ jr $ra
/* 00508 80BA22F8 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80BA22FC:
/* 0050C 80BA22FC 03E00008 */ jr $ra
/* 00510 80BA2300 00000000 */ nop

View File

@ -1,18 +0,0 @@
glabel func_80BA2304
/* 00514 80BA2304 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00518 80BA2308 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0051C 80BA230C AFA5001C */ sw $a1, 0x001C($sp)
/* 00520 80BA2310 AFA40018 */ sw $a0, 0x0018($sp)
/* 00524 80BA2314 8C990168 */ lw $t9, 0x0168($a0) ## 00000168
/* 00528 80BA2318 0320F809 */ jalr $ra, $t9
/* 0052C 80BA231C 00000000 */ nop
/* 00530 80BA2320 8FAE001C */ lw $t6, 0x001C($sp)
/* 00534 80BA2324 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000
/* 00538 80BA2328 8FA40018 */ lw $a0, 0x0018($sp)
/* 0053C 80BA232C 01EE7821 */ addu $t7, $t7, $t6
/* 00540 80BA2330 95EF04C4 */ lhu $t7, 0x04C4($t7) ## 000104C4
/* 00544 80BA2334 A48F0172 */ sh $t7, 0x0172($a0) ## 00000172
/* 00548 80BA2338 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0054C 80BA233C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00550 80BA2340 03E00008 */ jr $ra
/* 00554 80BA2344 00000000 */ nop

View File

@ -1,6 +0,0 @@
glabel func_80BA24C8
/* 006D8 80BA24C8 3C0E80BA */ lui $t6, %hi(func_80BA24DC) ## $t6 = 80BA0000
/* 006DC 80BA24CC 25CE24DC */ addiu $t6, $t6, %lo(func_80BA24DC) ## $t6 = 80BA24DC
/* 006E0 80BA24D0 AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164
/* 006E4 80BA24D4 03E00008 */ jr $ra
/* 006E8 80BA24D8 AC800134 */ sw $zero, 0x0134($a0) ## 00000134

View File

@ -1,4 +0,0 @@
glabel func_80BA24DC
/* 006EC 80BA24DC AFA40000 */ sw $a0, 0x0000($sp)
/* 006F0 80BA24E0 03E00008 */ jr $ra
/* 006F4 80BA24E4 AFA50004 */ sw $a1, 0x0004($sp)

View File

@ -1,5 +0,0 @@
glabel func_80BA24E8
/* 006F8 80BA24E8 3C0E80BA */ lui $t6, %hi(func_80BA24F8) ## $t6 = 80BA0000
/* 006FC 80BA24EC 25CE24F8 */ addiu $t6, $t6, %lo(func_80BA24F8) ## $t6 = 80BA24F8
/* 00700 80BA24F0 03E00008 */ jr $ra
/* 00704 80BA24F4 AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164

View File

@ -1,95 +0,0 @@
.rdata
glabel D_80BA28E0
.asciz "\x1b[41;37m"
.balign 4
glabel D_80BA28EC
.asciz "Error : ()(%s %d)\n"
.balign 4
glabel D_80BA2930
.asciz "../z_obj_warp2block.c"
.balign 4
glabel D_80BA2948
.asciz "\x1b[m"
.balign 4
.text
glabel func_80BA24F8
/* 00708 80BA24F8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0070C 80BA24FC AFBF001C */ sw $ra, 0x001C($sp)
/* 00710 80BA2500 AFB00018 */ sw $s0, 0x0018($sp)
/* 00714 80BA2504 8CA21C6C */ lw $v0, 0x1C6C($a1) ## 00001C6C
/* 00718 80BA2508 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0071C 80BA250C 00A03025 */ or $a2, $a1, $zero ## $a2 = 00000000
/* 00720 80BA2510 10400021 */ beq $v0, $zero, .L80BA2598
/* 00724 80BA2514 240401D6 */ addiu $a0, $zero, 0x01D6 ## $a0 = 000001D6
/* 00728 80BA2518 844E0000 */ lh $t6, 0x0000($v0) ## 00000000
.L80BA251C:
/* 0072C 80BA251C 548E001C */ bnel $a0, $t6, .L80BA2590
/* 00730 80BA2520 8C420124 */ lw $v0, 0x0124($v0) ## 00000124
/* 00734 80BA2524 8443001C */ lh $v1, 0x001C($v0) ## 0000001C
/* 00738 80BA2528 00037BC3 */ sra $t7, $v1, 15
/* 0073C 80BA252C 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
/* 00740 80BA2530 57000017 */ bnel $t8, $zero, .L80BA2590
/* 00744 80BA2534 8C420124 */ lw $v0, 0x0124($v0) ## 00000124
/* 00748 80BA2538 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 0074C 80BA253C 3079003F */ andi $t9, $v1, 0x003F ## $t9 = 00000000
/* 00750 80BA2540 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00754 80BA2544 57250012 */ bnel $t9, $a1, .L80BA2590
/* 00758 80BA2548 8C420124 */ lw $v0, 0x0124($v0) ## 00000124
/* 0075C 80BA254C AE02011C */ sw $v0, 0x011C($s0) ## 0000011C
/* 00760 80BA2550 AFA60024 */ sw $a2, 0x0024($sp)
/* 00764 80BA2554 0C00B2D0 */ jal Flags_GetSwitch
/* 00768 80BA2558 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0076C 80BA255C 10400007 */ beq $v0, $zero, .L80BA257C
/* 00770 80BA2560 8FA60024 */ lw $a2, 0x0024($sp)
/* 00774 80BA2564 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00778 80BA2568 0C2E8812 */ jal func_80BA2048
/* 0077C 80BA256C 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000
/* 00780 80BA2570 3C0880BA */ lui $t0, %hi(ObjWarp2block_Draw) ## $t0 = 80BA0000
/* 00784 80BA2574 250826F4 */ addiu $t0, $t0, %lo(ObjWarp2block_Draw) ## $t0 = 80BA26F4
/* 00788 80BA2578 AE080134 */ sw $t0, 0x0134($s0) ## 00000134
.L80BA257C:
/* 0078C 80BA257C 0C2E8980 */ jal func_80BA2600
/* 00790 80BA2580 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00794 80BA2584 1000001A */ beq $zero, $zero, .L80BA25F0
/* 00798 80BA2588 8FBF001C */ lw $ra, 0x001C($sp)
/* 0079C 80BA258C 8C420124 */ lw $v0, 0x0124($v0) ## 00000124
.L80BA2590:
/* 007A0 80BA2590 5440FFE2 */ bnel $v0, $zero, .L80BA251C
/* 007A4 80BA2594 844E0000 */ lh $t6, 0x0000($v0) ## 00000000
.L80BA2598:
/* 007A8 80BA2598 86090174 */ lh $t1, 0x0174($s0) ## 00000174
/* 007AC 80BA259C 3C0480BA */ lui $a0, %hi(D_80BA28E0) ## $a0 = 80BA0000
/* 007B0 80BA25A0 252A0001 */ addiu $t2, $t1, 0x0001 ## $t2 = 00000001
/* 007B4 80BA25A4 A60A0174 */ sh $t2, 0x0174($s0) ## 00000174
/* 007B8 80BA25A8 860B0174 */ lh $t3, 0x0174($s0) ## 00000174
/* 007BC 80BA25AC 2961003D */ slti $at, $t3, 0x003D
/* 007C0 80BA25B0 5420000F */ bnel $at, $zero, .L80BA25F0
/* 007C4 80BA25B4 8FBF001C */ lw $ra, 0x001C($sp)
/* 007C8 80BA25B8 0C00084C */ jal osSyncPrintf
/* 007CC 80BA25BC 248428E0 */ addiu $a0, $a0, %lo(D_80BA28E0) ## $a0 = 80BA28E0
/* 007D0 80BA25C0 3C0480BA */ lui $a0, %hi(D_80BA28EC) ## $a0 = 80BA0000
/* 007D4 80BA25C4 3C0580BA */ lui $a1, %hi(D_80BA2930) ## $a1 = 80BA0000
/* 007D8 80BA25C8 24A52930 */ addiu $a1, $a1, %lo(D_80BA2930) ## $a1 = 80BA2930
/* 007DC 80BA25CC 248428EC */ addiu $a0, $a0, %lo(D_80BA28EC) ## $a0 = 80BA28EC
/* 007E0 80BA25D0 0C00084C */ jal osSyncPrintf
/* 007E4 80BA25D4 240601F9 */ addiu $a2, $zero, 0x01F9 ## $a2 = 000001F9
/* 007E8 80BA25D8 3C0480BA */ lui $a0, %hi(D_80BA2948) ## $a0 = 80BA0000
/* 007EC 80BA25DC 0C00084C */ jal osSyncPrintf
/* 007F0 80BA25E0 24842948 */ addiu $a0, $a0, %lo(D_80BA2948) ## $a0 = 80BA2948
/* 007F4 80BA25E4 0C00B55C */ jal Actor_Kill
/* 007F8 80BA25E8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007FC 80BA25EC 8FBF001C */ lw $ra, 0x001C($sp)
.L80BA25F0:
/* 00800 80BA25F0 8FB00018 */ lw $s0, 0x0018($sp)
/* 00804 80BA25F4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00808 80BA25F8 03E00008 */ jr $ra
/* 0080C 80BA25FC 00000000 */ nop

View File

@ -1,5 +0,0 @@
glabel func_80BA2600
/* 00810 80BA2600 3C0E80BA */ lui $t6, %hi(func_80BA2610) ## $t6 = 80BA0000
/* 00814 80BA2604 25CE2610 */ addiu $t6, $t6, %lo(func_80BA2610) ## $t6 = 80BA2610
/* 00818 80BA2608 03E00008 */ jr $ra
/* 0081C 80BA260C AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164

View File

@ -1,47 +0,0 @@
glabel func_80BA2610
/* 00820 80BA2610 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00824 80BA2614 AFBF001C */ sw $ra, 0x001C($sp)
/* 00828 80BA2618 AFB00018 */ sw $s0, 0x0018($sp)
/* 0082C 80BA261C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00830 80BA2620 0C2E88C1 */ jal func_80BA2304
/* 00834 80BA2624 AFA50024 */ sw $a1, 0x0024($sp)
/* 00838 80BA2628 5040000F */ beql $v0, $zero, .L80BA2668
/* 0083C 80BA262C 86020170 */ lh $v0, 0x0170($s0) ## 00000170
/* 00840 80BA2630 860E016C */ lh $t6, 0x016C($s0) ## 0000016C
/* 00844 80BA2634 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00848 80BA2638 5DC0000B */ bgtzl $t6, .L80BA2668
/* 0084C 80BA263C 86020170 */ lh $v0, 0x0170($s0) ## 00000170
/* 00850 80BA2640 0C2E877C */ jal func_80BA1DF0
/* 00854 80BA2644 8FA50024 */ lw $a1, 0x0024($sp)
/* 00858 80BA2648 240F00A0 */ addiu $t7, $zero, 0x00A0 ## $t7 = 000000A0
/* 0085C 80BA264C A60F016C */ sh $t7, 0x016C($s0) ## 0000016C
/* 00860 80BA2650 8FA40024 */ lw $a0, 0x0024($sp)
/* 00864 80BA2654 0C020120 */ jal func_80080480
/* 00868 80BA2658 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0086C 80BA265C 2418000C */ addiu $t8, $zero, 0x000C ## $t8 = 0000000C
/* 00870 80BA2660 A6180170 */ sh $t8, 0x0170($s0) ## 00000170
/* 00874 80BA2664 86020170 */ lh $v0, 0x0170($s0) ## 00000170
.L80BA2668:
/* 00878 80BA2668 18400008 */ blez $v0, .L80BA268C
/* 0087C 80BA266C 2459FFFF */ addiu $t9, $v0, 0xFFFF ## $t9 = FFFFFFFF
/* 00880 80BA2670 A6190170 */ sh $t9, 0x0170($s0) ## 00000170
/* 00884 80BA2674 86080170 */ lh $t0, 0x0170($s0) ## 00000170
/* 00888 80BA2678 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0088C 80BA267C 55000004 */ bnel $t0, $zero, .L80BA2690
/* 00890 80BA2680 8609016C */ lh $t1, 0x016C($s0) ## 0000016C
/* 00894 80BA2684 0C2E8812 */ jal func_80BA2048
/* 00898 80BA2688 8FA50024 */ lw $a1, 0x0024($sp)
.L80BA268C:
/* 0089C 80BA268C 8609016C */ lh $t1, 0x016C($s0) ## 0000016C
.L80BA2690:
/* 008A0 80BA2690 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
/* 008A4 80BA2694 55210004 */ bnel $t1, $at, .L80BA26A8
/* 008A8 80BA2698 8FBF001C */ lw $ra, 0x001C($sp)
/* 008AC 80BA269C 0C01E221 */ jal func_80078884
/* 008B0 80BA26A0 24044807 */ addiu $a0, $zero, 0x4807 ## $a0 = 00004807
/* 008B4 80BA26A4 8FBF001C */ lw $ra, 0x001C($sp)
.L80BA26A8:
/* 008B8 80BA26A8 8FB00018 */ lw $s0, 0x0018($sp)
/* 008BC 80BA26AC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 008C0 80BA26B0 03E00008 */ jr $ra
/* 008C4 80BA26B4 00000000 */ nop

View File

@ -1,30 +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 Obj_Warp2block_InitVars
.word 0x01D60700, 0x0A000011, 0x01900000, 0x00000178
.word ObjWarp2block_Init
.word ObjWarp2block_Destroy
.word ObjWarp2block_Update
.word ObjWarp2block_Draw
glabel D_80BA2840
.word 0x3F800000
glabel D_80BA2844
.word 0x42700000
glabel D_80BA2848
.word 0x00180000, 0x3F19999A, 0x42200000, 0x00190000
glabel D_80BA2858
.word 0x42700000, 0x42C80000, 0x430C0000, 0x43340000, 0x435C0000, 0x43820000, 0x43960000, 0x43960000
glabel D_80BA2878
.word 0xB0F40708, 0xB0F8012C, 0x30FC05DC
glabel D_80BA2884
.word 0x64788C50, 0x8CC86496, 0xC864C8F0, 0x506E8C46, 0xA0E15064, 0x82646EBE, 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_80BA29A0
.incbin "baserom/ovl_Obj_Warp2block", 0xBB0, 0x00000100

3
spec
View File

@ -3439,8 +3439,7 @@ endseg
beginseg
name "ovl_Obj_Warp2block"
include "build/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.o"
include "build/data/overlays/actors/z_obj_warp2block.data.o"
include "build/data/overlays/actors/z_obj_warp2block.reloc.o"
include "build/src/overlays/actors/ovl_Obj_Warp2block/ovl_Obj_Warp2block_reloc.o"
endseg
beginseg

View File

@ -5,6 +5,7 @@
*/
#include "z_obj_warp2block.h"
#include "vt.h"
#define FLAGS 0x0A000011
@ -15,23 +16,22 @@ void ObjWarp2block_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ObjWarp2block_Update(Actor* thisx, GlobalContext* globalCtx);
void ObjWarp2block_Draw(Actor* thisx, GlobalContext* globalCtx);
// func_80BA1DF0
// func_80BA1EEC
void func_80BA2048(ObjWarp2block* this, GlobalContext* globalCtx);
void func_80BA2218(ObjWarp2block* this, GlobalContext* globalCtx);
void func_80BA228C(ObjWarp2block* this, GlobalContext* globalCtx);
void func_80BA2304(ObjWarp2block* this, GlobalContext* globalCtx);
// func_80BA24C8
void func_80BA24DC(ObjWarp2block* this, GlobalContext* globalCtx);
// func_80BA24E8
void ObjWarp2block_Spawn(ObjWarp2block* this, GlobalContext* globalCtx);
s32 func_80BA1ECC(ObjWarp2block* this, GlobalContext* globalCtx);
void ObjWarp2block_SwapWithChild(ObjWarp2block* this, GlobalContext* globalCtx);
s32 func_80BA2218(ObjWarp2block* this, GlobalContext* globalCtx);
s32 func_80BA228C(ObjWarp2block* this, GlobalContext* globalCtx);
s32 func_80BA2304(ObjWarp2block* this, GlobalContext* globalCtx);
void ObjWarp2block_SetInactive(ObjWarp2block* this);
void ObjWarp2block_DoNothing(ObjWarp2block* this, GlobalContext* globalCtx);
void func_80BA24E8(ObjWarp2block* this);
void func_80BA24F8(ObjWarp2block* this, GlobalContext* globalCtx);
// func_80BA2600
void func_80BA2600(ObjWarp2block* this);
void func_80BA2610(ObjWarp2block* this, GlobalContext* globalCtx);
extern UNK_TYPE D_06000980;
extern UNK_TYPE D_06000B30;
extern Gfx D_06000980[];
extern CollisionHeader D_06000B30;
/*
const ActorInit Obj_Warp2block_InitVars = {
ACTOR_OBJ_WARP2BLOCK,
ACTORCAT_ITEMACTION,
@ -43,36 +43,280 @@ const ActorInit Obj_Warp2block_InitVars = {
(ActorFunc)ObjWarp2block_Update,
(ActorFunc)ObjWarp2block_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA1DF0.s")
typedef struct {
/* 0x00 */ f32 scale;
/* 0x04 */ f32 focus;
/* 0x08 */ s16 params;
} Warp2BlockSpawnData; // size = 0x0C
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA1ECC.s")
static Warp2BlockSpawnData sSpawnData[] = {
{ 1.0f, 60.0f, 0x0018 },
{ 0.6f, 40.0f, 0x0019 },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA2048.s")
static f32 sDistances[] = { 60.0f, 100.0f, 140.0f, 180.0f, 220.0f, 260.0f, 300.0f, 300.0f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA2218.s")
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 1800, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA228C.s")
static Color_RGB8 sColors[] = {
{ 100, 120, 140 }, { 80, 140, 200 }, { 100, 150, 200 }, { 100, 200, 240 },
{ 80, 110, 140 }, { 70, 160, 225 }, { 80, 100, 130 }, { 100, 110, 190 },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA2304.s")
void ObjWarp2block_Spawn(ObjWarp2block* this, GlobalContext* globalCtx) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_DEMO_EFFECT, this->dyna.actor.world.pos.x,
this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, 0, 0, 0,
sSpawnData[(this->dyna.actor.params >> 8) & 1].params);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/ObjWarp2block_Init.s")
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_DEMO_EFFECT, this->dyna.actor.child->world.pos.x,
this->dyna.actor.child->world.pos.y, this->dyna.actor.child->world.pos.z, 0, 0, 0,
sSpawnData[(this->dyna.actor.child->params >> 8) & 1].params);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/ObjWarp2block_Destroy.s")
s32 func_80BA1ECC(ObjWarp2block* this, GlobalContext* globalCtx) {
s32 pad;
Actor* temp_a3;
Player* player;
Vec3f sp20;
f32 temp_f2;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA24C8.s")
if (func_80043590(&this->dyna)) {
return 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA24DC.s")
temp_a3 = this->dyna.actor.child;
player = PLAYER;
if ((this->dyna.actor.xzDistToPlayer <= sDistances[(((this->dyna.actor.params >> 0xB) & 7))]) ||
(temp_a3->xzDistToPlayer <= sDistances[(((temp_a3->params >> 0xB) & 7))])) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA24E8.s")
func_8002DBD0(&this->dyna.actor, &sp20, &player->actor.world.pos);
temp_f2 = (this->dyna.actor.scale.x * 50.0f) + 6.0f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA24F8.s")
if (!(temp_f2 < fabsf(sp20.x)) && !(temp_f2 < fabsf(sp20.z))) {
return 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA2600.s")
func_8002DBD0(temp_a3, &sp20, &player->actor.world.pos);
temp_f2 = (temp_a3->scale.x * 50.0f) + 6.0f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/func_80BA2610.s")
if (!(temp_f2 < fabsf(sp20.x)) && !(temp_f2 < fabsf(sp20.z))) {
return 0;
}
} else {
return 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/ObjWarp2block_Update.s")
return 1;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Warp2block/ObjWarp2block_Draw.s")
void ObjWarp2block_SwapWithChild(ObjWarp2block* this, GlobalContext* globalCtx) {
Vec3f tempVec;
Vec3s tempRot;
s32 temp;
Math_Vec3f_Copy(&tempVec, &this->dyna.actor.world.pos);
Math_Vec3f_Copy(&this->dyna.actor.world.pos, &this->dyna.actor.child->world.pos);
Math_Vec3f_Copy(&this->dyna.actor.child->world.pos, &tempVec);
temp = this->dyna.actor.world.rot.y;
this->dyna.actor.world.rot.y = this->dyna.actor.child->world.rot.y;
this->dyna.actor.child->world.rot.y = temp;
temp = this->dyna.actor.shape.rot.y;
this->dyna.actor.shape.rot.y = this->dyna.actor.child->shape.rot.y;
this->dyna.actor.child->shape.rot.y = temp;
temp = this->dyna.actor.home.rot.z;
this->dyna.actor.home.rot.z = this->dyna.actor.child->home.rot.z;
this->dyna.actor.child->home.rot.z = temp;
Math_Vec3f_Copy(&tempVec, &this->dyna.actor.scale);
Math_Vec3f_Copy(&this->dyna.actor.scale, &this->dyna.actor.child->scale);
Math_Vec3f_Copy(&this->dyna.actor.child->scale, &tempVec);
Math_Vec3f_Copy(&tempVec, &this->dyna.actor.focus.pos);
Math_Vec3f_Copy(&this->dyna.actor.focus.pos, &this->dyna.actor.child->focus.pos);
Math_Vec3f_Copy(&this->dyna.actor.child->focus.pos, &tempVec);
tempRot = this->dyna.actor.focus.rot;
this->dyna.actor.focus.rot = this->dyna.actor.child->focus.rot;
this->dyna.actor.child->focus.rot = tempRot;
temp = this->dyna.actor.params & 0x7FFF;
this->dyna.actor.params = (this->dyna.actor.params & 0x8000) | (this->dyna.actor.child->params & 0x7FFF);
this->dyna.actor.child->params = (this->dyna.actor.child->params & 0x8000) | (temp & 0x7FFF);
if (Math3D_Vec3fDistSq(&this->dyna.actor.world.pos, &this->dyna.actor.home.pos) < 0.01f) {
Flags_UnsetSwitch(globalCtx, this->dyna.actor.params & 0x3F);
} else {
Flags_SetSwitch(globalCtx, this->dyna.actor.params & 0x3F);
}
}
s32 func_80BA2218(ObjWarp2block* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (func_80BA1ECC(this, globalCtx)) {
if (player->stateFlags2 & 0x1000000) {
func_8010BD58(globalCtx, 1);
this->func_168 = func_80BA228C;
} else {
player->stateFlags2 |= 0x800000;
}
}
return 0;
}
s32 func_80BA228C(ObjWarp2block* this, GlobalContext* globalCtx) {
if (globalCtx->msgCtx.unk_E3EE == 4) {
this->func_168 = func_80BA2218;
}
if (globalCtx->msgCtx.unk_E3EC == 0xA) {
if (this->unk_172 == 0xFE) {
this->unk_16E = 0x6E;
} else {
this->unk_16E--;
if (this->unk_16E == 0) {
return 1;
}
}
}
return 0;
}
s32 func_80BA2304(ObjWarp2block* this, GlobalContext* globalCtx) {
s32 ret = this->func_168(this, globalCtx);
this->unk_172 = globalCtx->msgCtx.unk_E3EC;
return ret;
}
void ObjWarp2block_Init(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx = globalCtx2;
ObjWarp2block* this = THIS;
CollisionHeader* collisionHeader;
collisionHeader = NULL;
this->dyna.actor.world.rot.z = this->dyna.actor.shape.rot.z = 0;
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
Actor_SetScale(&this->dyna.actor, sSpawnData[(this->dyna.actor.params >> 8) & 1].scale);
this->func_168 = func_80BA2218;
Actor_SetFocus(&this->dyna.actor, sSpawnData[(this->dyna.actor.params >> 8) & 1].focus);
if ((this->dyna.actor.params >> 0xF) & 1) {
func_80BA24E8(this);
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F)) {
this->dyna.actor.draw = NULL;
}
DynaPolyActor_Init(&this->dyna, 0);
CollisionHeader_GetVirtual(&D_06000B30, &collisionHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, collisionHeader);
} else {
ObjWarp2block_SetInactive(this);
}
osSyncPrintf("時のブロック(ワープ2) (<arg> %04xH <type> color:%d range:%d)\n", this->dyna.actor.params & 0xFFFF,
this->dyna.actor.home.rot.z & 7, (this->dyna.actor.params >> 0xB) & 7);
}
void ObjWarp2block_Destroy(Actor* thisx, GlobalContext* globalCtx) {
ObjWarp2block* this = THIS;
if ((this->dyna.actor.params >> 0xF) & 1) {
DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
}
}
void ObjWarp2block_SetInactive(ObjWarp2block* this) {
this->actionFunc = ObjWarp2block_DoNothing;
this->dyna.actor.draw = NULL;
}
void ObjWarp2block_DoNothing(ObjWarp2block* this, GlobalContext* globalCtx) {
}
void func_80BA24E8(ObjWarp2block* this) {
this->actionFunc = func_80BA24F8;
}
void func_80BA24F8(ObjWarp2block* this, GlobalContext* globalCtx) {
Actor* current = globalCtx->actorCtx.actorLists[ACTORCAT_ITEMACTION].head;
while (current != NULL) {
if (current->id == ACTOR_OBJ_WARP2BLOCK && !((current->params >> 0xF) & 1) &&
((this->dyna.actor.params & 0x3F) == (current->params & 0x3F))) {
this->dyna.actor.child = current;
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F)) {
ObjWarp2block_SwapWithChild(this, globalCtx);
this->dyna.actor.draw = ObjWarp2block_Draw;
}
func_80BA2600(this);
return;
}
current = current->next;
}
this->unk_174++;
if (this->unk_174 > 60) {
osSyncPrintf(VT_COL(RED, WHITE));
osSyncPrintf("Error : 時のブロック(ワープ2)が対でセットされていません(%s %d)\n", "../z_obj_warp2block.c", 505);
osSyncPrintf(VT_RST);
Actor_Kill(&this->dyna.actor);
}
}
void func_80BA2600(ObjWarp2block* this) {
this->actionFunc = func_80BA2610;
}
void func_80BA2610(ObjWarp2block* this, GlobalContext* globalCtx) {
if ((func_80BA2304(this, globalCtx) != 0) && (this->unk_16C <= 0)) {
ObjWarp2block_Spawn(this, globalCtx);
this->unk_16C = 0xA0;
func_80080480(globalCtx, &this->dyna.actor);
this->unk_170 = 0xC;
}
if (this->unk_170 > 0) {
this->unk_170--;
if (this->unk_170 == 0) {
ObjWarp2block_SwapWithChild(this, globalCtx);
}
}
if (this->unk_16C == 0x32) {
func_80078884(NA_SE_SY_TRE_BOX_APPEAR);
}
}
void ObjWarp2block_Update(Actor* thisx, GlobalContext* globalCtx) {
ObjWarp2block* this = THIS;
this->actionFunc(this, globalCtx);
if (this->unk_16C > 0) {
this->unk_16C--;
}
}
void ObjWarp2block_Draw(Actor* thisx, GlobalContext* globalCtx) {
Color_RGB8* sp44;
sp44 = &sColors[thisx->home.rot.z & 7];
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_obj_warp2block.c", 584);
func_80093D18(globalCtx->state.gfxCtx);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_obj_warp2block.c", 588),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sp44->r, sp44->g, sp44->b, 255);
gSPDisplayList(POLY_OPA_DISP++, D_06000980);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_obj_warp2block.c", 594);
}

View File

@ -7,12 +7,17 @@
struct ObjWarp2block;
typedef void (*ObjWarp2blockActionFunc)(struct ObjWarp2block*, GlobalContext*);
typedef s32 (*ObjWarp2blockFunc168)(struct ObjWarp2block*, GlobalContext*);
typedef struct ObjWarp2block {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ObjWarp2blockActionFunc actionFunc_164;
/* 0x0168 */ ObjWarp2blockActionFunc actionFunc_168;
/* 0x016C */ char unk_16C[0xC];
/* 0x0164 */ ObjWarp2blockActionFunc actionFunc;
/* 0x0168 */ ObjWarp2blockFunc168 func_168;
/* 0x016C */ s16 unk_16C;
/* 0x016E */ s16 unk_16E;
/* 0x0170 */ s16 unk_170;
/* 0x0172 */ u16 unk_172;
/* 0x0174 */ s16 unk_174;
} ObjWarp2block; // size = 0x0178
extern const ActorInit Obj_Warp2block_InitVars;