mirror of
https://github.com/zeldaret/oot.git
synced 2024-12-29 16:26:18 +00:00
Bg_Mori_Hashigo (#400)
* Darkmeiro decompilation Bg_Gnd_Darkmeiro decompiled, matched, and documented. * give this a shot * fix conflict * one more try * All but one * OK * merge and cleanup * wait for mori tex
This commit is contained in:
parent
a7beb8814b
commit
e93d604ff7
24 changed files with 272 additions and 701 deletions
|
@ -1,26 +0,0 @@
|
|||
glabel BgMoriHashigo_Destroy
|
||||
/* 003C0 808A2920 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 003C4 808A2924 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 003C8 808A2928 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 003CC 808A292C 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
|
||||
/* 003D0 808A2930 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 003D4 808A2934 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 003D8 808A2938 14400006 */ bne $v0, $zero, .L808A2954
|
||||
/* 003DC 808A293C 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
|
||||
/* 003E0 808A2940 8CE6014C */ lw $a2, 0x014C($a3) ## 0000014C
|
||||
/* 003E4 808A2944 0C00FB56 */ jal DynaPolyInfo_Free
|
||||
## DynaPolyInfo_delReserve
|
||||
/* 003E8 808A2948 AFA70018 */ sw $a3, 0x0018($sp)
|
||||
/* 003EC 808A294C 8FA70018 */ lw $a3, 0x0018($sp)
|
||||
/* 003F0 808A2950 84E2001C */ lh $v0, 0x001C($a3) ## 0000001C
|
||||
.L808A2954:
|
||||
/* 003F4 808A2954 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
||||
/* 003F8 808A2958 14410003 */ bne $v0, $at, .L808A2968
|
||||
/* 003FC 808A295C 8FA4001C */ lw $a0, 0x001C($sp)
|
||||
/* 00400 808A2960 0C016F32 */ jal Collider_DestroyJntSph
|
||||
/* 00404 808A2964 24E50164 */ addiu $a1, $a3, 0x0164 ## $a1 = 00000164
|
||||
.L808A2968:
|
||||
/* 00408 808A2968 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0040C 808A296C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00410 808A2970 03E00008 */ jr $ra
|
||||
/* 00414 808A2974 00000000 */ nop
|
|
@ -1,84 +0,0 @@
|
|||
.rdata
|
||||
glabel D_808A2EB0
|
||||
.asciz "Error : バンク危険!(arg_data 0x%04x)(%s %d)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_808A2EE0
|
||||
.asciz "../z_bg_mori_hashigo.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_808A2EF8
|
||||
.asciz "(森の神殿 梯子とその留め金)(arg_data 0x%04x)\n"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel BgMoriHashigo_Init
|
||||
/* 002D8 808A2838 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 002DC 808A283C AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 002E0 808A2840 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 002E4 808A2844 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 002E8 808A2848 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
|
||||
/* 002EC 808A284C 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
||||
/* 002F0 808A2850 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 002F4 808A2854 14410009 */ bne $v0, $at, .L808A287C
|
||||
/* 002F8 808A2858 00000000 */ nop
|
||||
/* 002FC 808A285C 0C2289DC */ jal func_808A2770
|
||||
/* 00300 808A2860 00000000 */ nop
|
||||
/* 00304 808A2864 54400010 */ bnel $v0, $zero, .L808A28A8
|
||||
/* 00308 808A2868 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
/* 0030C 808A286C 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00310 808A2870 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00314 808A2874 10000026 */ beq $zero, $zero, .L808A2910
|
||||
/* 00318 808A2878 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L808A287C:
|
||||
/* 0031C 808A287C 14400009 */ bne $v0, $zero, .L808A28A4
|
||||
/* 00320 808A2880 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00324 808A2884 0C2289FE */ jal func_808A27F8
|
||||
/* 00328 808A2888 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 0032C 808A288C 54400006 */ bnel $v0, $zero, .L808A28A8
|
||||
/* 00330 808A2890 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
/* 00334 808A2894 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00338 808A2898 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0033C 808A289C 1000001C */ beq $zero, $zero, .L808A2910
|
||||
/* 00340 808A28A0 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L808A28A4:
|
||||
/* 00344 808A28A4 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
.L808A28A8:
|
||||
/* 00348 808A28A8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 0034C 808A28AC 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
|
||||
/* 00350 808A28B0 24050073 */ addiu $a1, $zero, 0x0073 ## $a1 = 00000073
|
||||
/* 00354 808A28B4 0C02604B */ jal Object_GetIndex
|
||||
## ObjectIndex
|
||||
/* 00358 808A28B8 00812021 */ addu $a0, $a0, $at
|
||||
/* 0035C 808A28BC A20201CC */ sb $v0, 0x01CC($s0) ## 000001CC
|
||||
/* 00360 808A28C0 820E01CC */ lb $t6, 0x01CC($s0) ## 000001CC
|
||||
/* 00364 808A28C4 3C04808A */ lui $a0, %hi(D_808A2EB0) ## $a0 = 808A0000
|
||||
/* 00368 808A28C8 24842EB0 */ addiu $a0, $a0, %lo(D_808A2EB0) ## $a0 = 808A2EB0
|
||||
/* 0036C 808A28CC 05C10009 */ bgez $t6, .L808A28F4
|
||||
/* 00370 808A28D0 3C06808A */ lui $a2, %hi(D_808A2EE0) ## $a2 = 808A0000
|
||||
/* 00374 808A28D4 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
||||
/* 00378 808A28D8 24C62EE0 */ addiu $a2, $a2, %lo(D_808A2EE0) ## $a2 = 808A2EE0
|
||||
/* 0037C 808A28DC 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 00380 808A28E0 24070138 */ addiu $a3, $zero, 0x0138 ## $a3 = 00000138
|
||||
/* 00384 808A28E4 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00388 808A28E8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0038C 808A28EC 10000008 */ beq $zero, $zero, .L808A2910
|
||||
/* 00390 808A28F0 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L808A28F4:
|
||||
/* 00394 808A28F4 0C228A5E */ jal func_808A2978
|
||||
/* 00398 808A28F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0039C 808A28FC 3C04808A */ lui $a0, %hi(D_808A2EF8) ## $a0 = 808A0000
|
||||
/* 003A0 808A2900 24842EF8 */ addiu $a0, $a0, %lo(D_808A2EF8) ## $a0 = 808A2EF8
|
||||
/* 003A4 808A2904 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 003A8 808A2908 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
||||
/* 003AC 808A290C 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L808A2910:
|
||||
/* 003B0 808A2910 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 003B4 808A2914 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 003B8 808A2918 03E00008 */ jr $ra
|
||||
/* 003BC 808A291C 00000000 */ nop
|
|
@ -1,18 +0,0 @@
|
|||
glabel BgMoriHashigo_Update
|
||||
/* 0068C 808A2BEC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00690 808A2BF0 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00694 808A2BF4 848201C8 */ lh $v0, 0x01C8($a0) ## 000001C8
|
||||
/* 00698 808A2BF8 18400002 */ blez $v0, .L808A2C04
|
||||
/* 0069C 808A2BFC 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
|
||||
/* 006A0 808A2C00 A48E01C8 */ sh $t6, 0x01C8($a0) ## 000001C8
|
||||
.L808A2C04:
|
||||
/* 006A4 808A2C04 8C8201C4 */ lw $v0, 0x01C4($a0) ## 000001C4
|
||||
/* 006A8 808A2C08 50400004 */ beql $v0, $zero, .L808A2C1C
|
||||
/* 006AC 808A2C0C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 006B0 808A2C10 0040F809 */ jalr $ra, $v0
|
||||
/* 006B4 808A2C14 00000000 */ nop
|
||||
/* 006B8 808A2C18 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L808A2C1C:
|
||||
/* 006BC 808A2C1C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 006C0 808A2C20 03E00008 */ jr $ra
|
||||
/* 006C4 808A2C24 00000000 */ nop
|
|
@ -1,50 +0,0 @@
|
|||
.rdata
|
||||
glabel D_808A2E10
|
||||
.asciz "Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_808A2E50
|
||||
.asciz "../z_bg_mori_hashigo.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel func_808A2560
|
||||
/* 00000 808A2560 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 00004 808A2564 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00008 808A2568 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 0000C 808A256C AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 00010 808A2570 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00014 808A2574 AFA60040 */ sw $a2, 0x0040($sp)
|
||||
/* 00018 808A2578 AFA00030 */ sw $zero, 0x0030($sp)
|
||||
/* 0001C 808A257C 0C010D20 */ jal DynaPolyInfo_SetActorMove
|
||||
|
||||
/* 00020 808A2580 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
|
||||
/* 00024 808A2584 8FA40040 */ lw $a0, 0x0040($sp)
|
||||
/* 00028 808A2588 0C010620 */ jal DynaPolyInfo_Alloc
|
||||
|
||||
/* 0002C 808A258C 27A50030 */ addiu $a1, $sp, 0x0030 ## $a1 = FFFFFFF8
|
||||
/* 00030 808A2590 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00034 808A2594 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 00038 808A2598 8FA70030 */ lw $a3, 0x0030($sp)
|
||||
/* 0003C 808A259C 0C00FA9D */ jal DynaPolyInfo_RegisterActor
|
||||
## DynaPolyInfo_setActor
|
||||
/* 00040 808A25A0 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
|
||||
/* 00044 808A25A4 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
|
||||
/* 00048 808A25A8 1441000A */ bne $v0, $at, .L808A25D4
|
||||
/* 0004C 808A25AC AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
|
||||
/* 00050 808A25B0 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
|
||||
/* 00054 808A25B4 3C04808A */ lui $a0, %hi(D_808A2E10) ## $a0 = 808A0000
|
||||
/* 00058 808A25B8 3C05808A */ lui $a1, %hi(D_808A2E50) ## $a1 = 808A0000
|
||||
/* 0005C 808A25BC 86070000 */ lh $a3, 0x0000($s0) ## 00000000
|
||||
/* 00060 808A25C0 24A52E50 */ addiu $a1, $a1, %lo(D_808A2E50) ## $a1 = 808A2E50
|
||||
/* 00064 808A25C4 24842E10 */ addiu $a0, $a0, %lo(D_808A2E10) ## $a0 = 808A2E10
|
||||
/* 00068 808A25C8 240600A4 */ addiu $a2, $zero, 0x00A4 ## $a2 = 000000A4
|
||||
/* 0006C 808A25CC 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 00070 808A25D0 AFAE0010 */ sw $t6, 0x0010($sp)
|
||||
.L808A25D4:
|
||||
/* 00074 808A25D4 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00078 808A25D8 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 0007C 808A25DC 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
||||
/* 00080 808A25E0 03E00008 */ jr $ra
|
||||
/* 00084 808A25E4 00000000 */ nop
|
|
@ -1,45 +0,0 @@
|
|||
glabel func_808A25E8
|
||||
/* 00088 808A25E8 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 0008C 808A25EC 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
|
||||
/* 00090 808A25F0 AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00094 808A25F4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00098 808A25F8 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 0009C 808A25FC 24C50164 */ addiu $a1, $a2, 0x0164 ## $a1 = 00000164
|
||||
/* 000A0 808A2600 AFA50020 */ sw $a1, 0x0020($sp)
|
||||
/* 000A4 808A2604 0C016EFE */ jal Collider_InitJntSph
|
||||
/* 000A8 808A2608 AFA60028 */ sw $a2, 0x0028($sp)
|
||||
/* 000AC 808A260C 8FA60028 */ lw $a2, 0x0028($sp)
|
||||
/* 000B0 808A2610 3C07808A */ lui $a3, %hi(D_808A2DC4) ## $a3 = 808A0000
|
||||
/* 000B4 808A2614 8FA50020 */ lw $a1, 0x0020($sp)
|
||||
/* 000B8 808A2618 24CE0184 */ addiu $t6, $a2, 0x0184 ## $t6 = 00000184
|
||||
/* 000BC 808A261C AFAE0010 */ sw $t6, 0x0010($sp)
|
||||
/* 000C0 808A2620 24E72DC4 */ addiu $a3, $a3, %lo(D_808A2DC4) ## $a3 = 808A2DC4
|
||||
/* 000C4 808A2624 0C017014 */ jal Collider_SetJntSph
|
||||
/* 000C8 808A2628 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 000CC 808A262C 8FA60028 */ lw $a2, 0x0028($sp)
|
||||
/* 000D0 808A2630 C4C40024 */ lwc1 $f4, 0x0024($a2) ## 00000024
|
||||
/* 000D4 808A2634 8CD90180 */ lw $t9, 0x0180($a2) ## 00000180
|
||||
/* 000D8 808A2638 4600218D */ trunc.w.s $f6, $f4
|
||||
/* 000DC 808A263C 44183000 */ mfc1 $t8, $f6
|
||||
/* 000E0 808A2640 00000000 */ nop
|
||||
/* 000E4 808A2644 A7380030 */ sh $t8, 0x0030($t9) ## 00000030
|
||||
/* 000E8 808A2648 C4C80028 */ lwc1 $f8, 0x0028($a2) ## 00000028
|
||||
/* 000EC 808A264C 8CCD0180 */ lw $t5, 0x0180($a2) ## 00000180
|
||||
/* 000F0 808A2650 24190013 */ addiu $t9, $zero, 0x0013 ## $t9 = 00000013
|
||||
/* 000F4 808A2654 4600428D */ trunc.w.s $f10, $f8
|
||||
/* 000F8 808A2658 440B5000 */ mfc1 $t3, $f10
|
||||
/* 000FC 808A265C 00000000 */ nop
|
||||
/* 00100 808A2660 256C0015 */ addiu $t4, $t3, 0x0015 ## $t4 = 00000015
|
||||
/* 00104 808A2664 A5AC0032 */ sh $t4, 0x0032($t5) ## 00000032
|
||||
/* 00108 808A2668 C4D0002C */ lwc1 $f16, 0x002C($a2) ## 0000002C
|
||||
/* 0010C 808A266C 8CD80180 */ lw $t8, 0x0180($a2) ## 00000180
|
||||
/* 00110 808A2670 4600848D */ trunc.w.s $f18, $f16
|
||||
/* 00114 808A2674 440F9000 */ mfc1 $t7, $f18
|
||||
/* 00118 808A2678 00000000 */ nop
|
||||
/* 0011C 808A267C A70F0034 */ sh $t7, 0x0034($t8) ## 00000034
|
||||
/* 00120 808A2680 8CC80180 */ lw $t0, 0x0180($a2) ## 00000180
|
||||
/* 00124 808A2684 A5190036 */ sh $t9, 0x0036($t0) ## 00000036
|
||||
/* 00128 808A2688 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 0012C 808A268C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 00130 808A2690 03E00008 */ jr $ra
|
||||
/* 00134 808A2694 00000000 */ nop
|
|
@ -1,71 +0,0 @@
|
|||
.rdata
|
||||
glabel D_808A2E68
|
||||
.asciz "Error : 梯子の発生失敗(%s %d)(arg_data 0x%04x)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_808A2E98
|
||||
.asciz "../z_bg_mori_hashigo.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel func_808A2698
|
||||
/* 00138 808A2698 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
|
||||
/* 0013C 808A269C AFB00038 */ sw $s0, 0x0038($sp)
|
||||
/* 00140 808A26A0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00144 808A26A4 AFBF003C */ sw $ra, 0x003C($sp)
|
||||
/* 00148 808A26A8 AFA5004C */ sw $a1, 0x004C($sp)
|
||||
/* 0014C 808A26AC 0C01DE0D */ jal Math_Coss
|
||||
## coss?
|
||||
/* 00150 808A26B0 848400B6 */ lh $a0, 0x00B6($a0) ## 000000B6
|
||||
/* 00154 808A26B4 E7A00040 */ swc1 $f0, 0x0040($sp)
|
||||
/* 00158 808A26B8 0C01DE1C */ jal Math_Sins
|
||||
## sins?
|
||||
/* 0015C 808A26BC 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
|
||||
/* 00160 808A26C0 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
|
||||
/* 00164 808A26C4 44818000 */ mtc1 $at, $f16 ## $f16 = 6.00
|
||||
/* 00168 808A26C8 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
|
||||
/* 0016C 808A26CC C7B20040 */ lwc1 $f18, 0x0040($sp)
|
||||
/* 00170 808A26D0 46008102 */ mul.s $f4, $f16, $f0
|
||||
/* 00174 808A26D4 3C01C352 */ lui $at, 0xC352 ## $at = C3520000
|
||||
/* 00178 808A26D8 44815000 */ mtc1 $at, $f10 ## $f10 = -210.00
|
||||
/* 0017C 808A26DC C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
|
||||
/* 00180 808A26E0 8FA6004C */ lw $a2, 0x004C($sp)
|
||||
/* 00184 808A26E4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00188 808A26E8 460A4300 */ add.s $f12, $f8, $f10
|
||||
/* 0018C 808A26EC 240700E2 */ addiu $a3, $zero, 0x00E2 ## $a3 = 000000E2
|
||||
/* 00190 808A26F0 24C41C24 */ addiu $a0, $a2, 0x1C24 ## $a0 = 00001C24
|
||||
/* 00194 808A26F4 46062080 */ add.s $f2, $f4, $f6
|
||||
/* 00198 808A26F8 46128102 */ mul.s $f4, $f16, $f18
|
||||
/* 0019C 808A26FC C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
|
||||
/* 001A0 808A2700 E7AC0014 */ swc1 $f12, 0x0014($sp)
|
||||
/* 001A4 808A2704 E7A20010 */ swc1 $f2, 0x0010($sp)
|
||||
/* 001A8 808A2708 46062380 */ add.s $f14, $f4, $f6
|
||||
/* 001AC 808A270C E7AE0018 */ swc1 $f14, 0x0018($sp)
|
||||
/* 001B0 808A2710 860E0030 */ lh $t6, 0x0030($s0) ## 00000030
|
||||
/* 001B4 808A2714 AFAE001C */ sw $t6, 0x001C($sp)
|
||||
/* 001B8 808A2718 860F0032 */ lh $t7, 0x0032($s0) ## 00000032
|
||||
/* 001BC 808A271C AFAF0020 */ sw $t7, 0x0020($sp)
|
||||
/* 001C0 808A2720 86180034 */ lh $t8, 0x0034($s0) ## 00000034
|
||||
/* 001C4 808A2724 AFA00028 */ sw $zero, 0x0028($sp)
|
||||
/* 001C8 808A2728 0C00C916 */ jal Actor_SpawnAsChild
|
||||
|
||||
/* 001CC 808A272C AFB80024 */ sw $t8, 0x0024($sp)
|
||||
/* 001D0 808A2730 10400003 */ beq $v0, $zero, .L808A2740
|
||||
/* 001D4 808A2734 3C04808A */ lui $a0, %hi(D_808A2E68) ## $a0 = 808A0000
|
||||
/* 001D8 808A2738 10000008 */ beq $zero, $zero, .L808A275C
|
||||
/* 001DC 808A273C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
|
||||
.L808A2740:
|
||||
/* 001E0 808A2740 3C05808A */ lui $a1, %hi(D_808A2E98) ## $a1 = 808A0000
|
||||
/* 001E4 808A2744 24A52E98 */ addiu $a1, $a1, %lo(D_808A2E98) ## $a1 = 808A2E98
|
||||
/* 001E8 808A2748 24842E68 */ addiu $a0, $a0, %lo(D_808A2E68) ## $a0 = 808A2E68
|
||||
/* 001EC 808A274C 240600DC */ addiu $a2, $zero, 0x00DC ## $a2 = 000000DC
|
||||
/* 001F0 808A2750 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 001F4 808A2754 8607001C */ lh $a3, 0x001C($s0) ## 0000001C
|
||||
/* 001F8 808A2758 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
|
||||
.L808A275C:
|
||||
/* 001FC 808A275C 8FBF003C */ lw $ra, 0x003C($sp)
|
||||
/* 00200 808A2760 8FB00038 */ lw $s0, 0x0038($sp)
|
||||
/* 00204 808A2764 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
|
||||
/* 00208 808A2768 03E00008 */ jr $ra
|
||||
/* 0020C 808A276C 00000000 */ nop
|
|
@ -1,38 +0,0 @@
|
|||
glabel func_808A2770
|
||||
/* 00210 808A2770 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00214 808A2774 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00218 808A2778 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 0021C 808A277C AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00220 808A2780 3C05808A */ lui $a1, %hi(D_808A2DD4) ## $a1 = 808A0000
|
||||
/* 00224 808A2784 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00228 808A2788 0C01E037 */ jal Actor_ProcessInitChain
|
||||
|
||||
/* 0022C 808A278C 24A52DD4 */ addiu $a1, $a1, %lo(D_808A2DD4) ## $a1 = 808A2DD4
|
||||
/* 00230 808A2790 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
|
||||
/* 00234 808A2794 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00238 808A2798 3C05425C */ lui $a1, 0x425C ## $a1 = 425C0000
|
||||
/* 0023C 808A279C 35CF0001 */ ori $t7, $t6, 0x0001 ## $t7 = 00000001
|
||||
/* 00240 808A27A0 0C00B56E */ jal Actor_SetHeight
|
||||
|
||||
/* 00244 808A27A4 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
|
||||
/* 00248 808A27A8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0024C 808A27AC 0C22897A */ jal func_808A25E8
|
||||
/* 00250 808A27B0 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00254 808A27B4 8618001C */ lh $t8, 0x001C($s0) ## 0000001C
|
||||
/* 00258 808A27B8 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
||||
/* 0025C 808A27BC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00260 808A27C0 57010008 */ bnel $t8, $at, .L808A27E4
|
||||
/* 00264 808A27C4 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
|
||||
/* 00268 808A27C8 0C2289A6 */ jal func_808A2698
|
||||
/* 0026C 808A27CC 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00270 808A27D0 54400004 */ bnel $v0, $zero, .L808A27E4
|
||||
/* 00274 808A27D4 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
|
||||
/* 00278 808A27D8 10000002 */ beq $zero, $zero, .L808A27E4
|
||||
/* 0027C 808A27DC 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
|
||||
/* 00280 808A27E0 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
|
||||
.L808A27E4:
|
||||
/* 00284 808A27E4 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00288 808A27E8 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 0028C 808A27EC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 00290 808A27F0 03E00008 */ jr $ra
|
||||
/* 00294 808A27F4 00000000 */ nop
|
|
@ -1,18 +0,0 @@
|
|||
glabel func_808A27F8
|
||||
/* 00298 808A27F8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 0029C 808A27FC AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 002A0 808A2800 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000
|
||||
/* 002A4 808A2804 AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 002A8 808A2808 24C637D8 */ addiu $a2, $a2, 0x37D8 ## $a2 = 060037D8
|
||||
/* 002AC 808A280C 0C228958 */ jal func_808A2560
|
||||
/* 002B0 808A2810 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 002B4 808A2814 3C05808A */ lui $a1, %hi(D_808A2DEC) ## $a1 = 808A0000
|
||||
/* 002B8 808A2818 24A52DEC */ addiu $a1, $a1, %lo(D_808A2DEC) ## $a1 = 808A2DEC
|
||||
/* 002BC 808A281C 0C01E037 */ jal Actor_ProcessInitChain
|
||||
|
||||
/* 002C0 808A2820 8FA40018 */ lw $a0, 0x0018($sp)
|
||||
/* 002C4 808A2824 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 002C8 808A2828 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 002CC 808A282C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
|
||||
/* 002D0 808A2830 03E00008 */ jr $ra
|
||||
/* 002D4 808A2834 00000000 */ nop
|
|
@ -1,5 +0,0 @@
|
|||
glabel func_808A2978
|
||||
/* 00418 808A2978 3C0E808A */ lui $t6, %hi(func_808A2988) ## $t6 = 808A0000
|
||||
/* 0041C 808A297C 25CE2988 */ addiu $t6, $t6, %lo(func_808A2988) ## $t6 = 808A2988
|
||||
/* 00420 808A2980 03E00008 */ jr $ra
|
||||
/* 00424 808A2984 AC8E01C4 */ sw $t6, 0x01C4($a0) ## 000001C4
|
|
@ -1,36 +0,0 @@
|
|||
glabel func_808A2988
|
||||
/* 00428 808A2988 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 0042C 808A298C AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00430 808A2990 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00434 808A2994 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00438 808A2998 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
|
||||
/* 0043C 808A299C AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00440 808A29A0 00A12021 */ addu $a0, $a1, $at
|
||||
/* 00444 808A29A4 0C026062 */ jal Object_IsLoaded
|
||||
|
||||
/* 00448 808A29A8 820501CC */ lb $a1, 0x01CC($s0) ## 000001CC
|
||||
/* 0044C 808A29AC 50400011 */ beql $v0, $zero, .L808A29F4
|
||||
/* 00450 808A29B0 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00454 808A29B4 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
|
||||
/* 00458 808A29B8 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
||||
/* 0045C 808A29BC 14410005 */ bne $v0, $at, .L808A29D4
|
||||
/* 00460 808A29C0 00000000 */ nop
|
||||
/* 00464 808A29C4 0C228A81 */ jal func_808A2A04
|
||||
/* 00468 808A29C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0046C 808A29CC 10000005 */ beq $zero, $zero, .L808A29E4
|
||||
/* 00470 808A29D0 00000000 */ nop
|
||||
.L808A29D4:
|
||||
/* 00474 808A29D4 14400003 */ bne $v0, $zero, .L808A29E4
|
||||
/* 00478 808A29D8 00000000 */ nop
|
||||
/* 0047C 808A29DC 0C228A9E */ jal func_808A2A78
|
||||
/* 00480 808A29E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L808A29E4:
|
||||
/* 00484 808A29E4 3C0E808A */ lui $t6, %hi(func_808A2C28) ## $t6 = 808A0000
|
||||
/* 00488 808A29E8 25CE2C28 */ addiu $t6, $t6, %lo(func_808A2C28) ## $t6 = 808A2C28
|
||||
/* 0048C 808A29EC AE0E0134 */ sw $t6, 0x0134($s0) ## 00000134
|
||||
/* 00490 808A29F0 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L808A29F4:
|
||||
/* 00494 808A29F4 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00498 808A29F8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 0049C 808A29FC 03E00008 */ jr $ra
|
||||
/* 004A0 808A2A00 00000000 */ nop
|
|
@ -1,5 +0,0 @@
|
|||
glabel func_808A2A04
|
||||
/* 004A4 808A2A04 3C0E808A */ lui $t6, %hi(func_808A2A14) ## $t6 = 808A0000
|
||||
/* 004A8 808A2A08 25CE2A14 */ addiu $t6, $t6, %lo(func_808A2A14) ## $t6 = 808A2A14
|
||||
/* 004AC 808A2A0C 03E00008 */ jr $ra
|
||||
/* 004B0 808A2A10 AC8E01C4 */ sw $t6, 0x01C4($a0) ## 000001C4
|
|
@ -1,30 +0,0 @@
|
|||
glabel func_808A2A14
|
||||
/* 004B4 808A2A14 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 004B8 808A2A18 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 004BC 808A2A1C AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 004C0 808A2A20 848E01C8 */ lh $t6, 0x01C8($a0) ## 000001C8
|
||||
/* 004C4 808A2A24 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 004C8 808A2A28 5DC00010 */ bgtzl $t6, .L808A2A6C
|
||||
/* 004CC 808A2A2C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 004D0 808A2A30 90820175 */ lbu $v0, 0x0175($a0) ## 00000175
|
||||
/* 004D4 808A2A34 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 004D8 808A2A38 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 004DC 808A2A3C 304F0002 */ andi $t7, $v0, 0x0002 ## $t7 = 00000000
|
||||
/* 004E0 808A2A40 11E00005 */ beq $t7, $zero, .L808A2A58
|
||||
/* 004E4 808A2A44 3058FFFD */ andi $t8, $v0, 0xFFFD ## $t8 = 00000000
|
||||
/* 004E8 808A2A48 2419000A */ addiu $t9, $zero, 0x000A ## $t9 = 0000000A
|
||||
/* 004EC 808A2A4C A0980175 */ sb $t8, 0x0175($a0) ## 00000175
|
||||
/* 004F0 808A2A50 10000005 */ beq $zero, $zero, .L808A2A68
|
||||
/* 004F4 808A2A54 A49901C8 */ sh $t9, 0x01C8($a0) ## 000001C8
|
||||
.L808A2A58:
|
||||
/* 004F8 808A2A58 8FA4001C */ lw $a0, 0x001C($sp)
|
||||
/* 004FC 808A2A5C 24E60164 */ addiu $a2, $a3, 0x0164 ## $a2 = 00000164
|
||||
/* 00500 808A2A60 0C01767D */ jal CollisionCheck_SetAC
|
||||
## CollisionCheck_setAC
|
||||
/* 00504 808A2A64 00812821 */ addu $a1, $a0, $at
|
||||
.L808A2A68:
|
||||
/* 00508 808A2A68 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L808A2A6C:
|
||||
/* 0050C 808A2A6C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00510 808A2A70 03E00008 */ jr $ra
|
||||
/* 00514 808A2A74 00000000 */ nop
|
|
@ -1,5 +0,0 @@
|
|||
glabel func_808A2A78
|
||||
/* 00518 808A2A78 3C0E808A */ lui $t6, %hi(func_808A2A88) ## $t6 = 808A0000
|
||||
/* 0051C 808A2A7C 25CE2A88 */ addiu $t6, $t6, %lo(func_808A2A88) ## $t6 = 808A2A88
|
||||
/* 00520 808A2A80 03E00008 */ jr $ra
|
||||
/* 00524 808A2A84 AC8E01C4 */ sw $t6, 0x01C4($a0) ## 000001C4
|
|
@ -1,15 +0,0 @@
|
|||
glabel func_808A2A88
|
||||
/* 00528 808A2A88 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 0052C 808A2A8C AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00530 808A2A90 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 00534 808A2A94 8C820118 */ lw $v0, 0x0118($a0) ## 00000118
|
||||
/* 00538 808A2A98 844E01C8 */ lh $t6, 0x01C8($v0) ## 000001C8
|
||||
/* 0053C 808A2A9C 59C00004 */ blezl $t6, .L808A2AB0
|
||||
/* 00540 808A2AA0 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00544 808A2AA4 0C228AAF */ jal func_808A2ABC
|
||||
/* 00548 808A2AA8 00000000 */ nop
|
||||
/* 0054C 808A2AAC 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L808A2AB0:
|
||||
/* 00550 808A2AB0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00554 808A2AB4 03E00008 */ jr $ra
|
||||
/* 00558 808A2AB8 00000000 */ nop
|
|
@ -1,15 +0,0 @@
|
|||
glabel func_808A2ABC
|
||||
/* 0055C 808A2ABC 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
|
||||
/* 00560 808A2AC0 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
|
||||
/* 00564 808A2AC4 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
|
||||
/* 00568 808A2AC8 44813000 */ mtc1 $at, $f6 ## $f6 = -10.00
|
||||
/* 0056C 808A2ACC 3C014000 */ lui $at, 0x4000 ## $at = 40000000
|
||||
/* 00570 808A2AD0 44814000 */ mtc1 $at, $f8 ## $f8 = 2.00
|
||||
/* 00574 808A2AD4 3C0E808A */ lui $t6, %hi(func_808A2AF4) ## $t6 = 808A0000
|
||||
/* 00578 808A2AD8 25CE2AF4 */ addiu $t6, $t6, %lo(func_808A2AF4) ## $t6 = 808A2AF4
|
||||
/* 0057C 808A2ADC A48001CA */ sh $zero, 0x01CA($a0) ## 000001CA
|
||||
/* 00580 808A2AE0 AC8E01C4 */ sw $t6, 0x01C4($a0) ## 000001C4
|
||||
/* 00584 808A2AE4 E484006C */ swc1 $f4, 0x006C($a0) ## 0000006C
|
||||
/* 00588 808A2AE8 E4860070 */ swc1 $f6, 0x0070($a0) ## 00000070
|
||||
/* 0058C 808A2AEC 03E00008 */ jr $ra
|
||||
/* 00590 808A2AF0 E4880060 */ swc1 $f8, 0x0060($a0) ## 00000060
|
|
@ -1,61 +0,0 @@
|
|||
glabel func_808A2AF4
|
||||
/* 00594 808A2AF4 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 00598 808A2AF8 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 0059C 808A2AFC AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 005A0 808A2B00 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 005A4 808A2B04 0C00B638 */ jal Actor_MoveForward
|
||||
|
||||
/* 005A8 808A2B08 AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 005AC 808A2B0C 960E0088 */ lhu $t6, 0x0088($s0) ## 00000088
|
||||
/* 005B0 808A2B10 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 005B4 808A2B14 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 005B8 808A2B18 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
|
||||
/* 005BC 808A2B1C 51E00021 */ beql $t7, $zero, .L808A2BA4
|
||||
/* 005C0 808A2B20 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 005C4 808A2B24 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 005C8 808A2B28 C6040060 */ lwc1 $f4, 0x0060($s0) ## 00000060
|
||||
/* 005CC 808A2B2C 4600203C */ c.lt.s $f4, $f0
|
||||
/* 005D0 808A2B30 00000000 */ nop
|
||||
/* 005D4 808A2B34 4502001B */ bc1fl .L808A2BA4
|
||||
/* 005D8 808A2B38 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 005DC 808A2B3C 861801CA */ lh $t8, 0x01CA($s0) ## 000001CA
|
||||
/* 005E0 808A2B40 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 005E4 808A2B44 2419001C */ addiu $t9, $zero, 0x001C ## $t9 = 0000001C
|
||||
/* 005E8 808A2B48 2B010003 */ slti $at, $t8, 0x0003
|
||||
/* 005EC 808A2B4C 54200006 */ bnel $at, $zero, .L808A2B68
|
||||
/* 005F0 808A2B50 44060000 */ mfc1 $a2, $f0
|
||||
/* 005F4 808A2B54 0C228AF4 */ jal func_808A2BD0
|
||||
/* 005F8 808A2B58 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 005FC 808A2B5C 10000018 */ beq $zero, $zero, .L808A2BC0
|
||||
/* 00600 808A2B60 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00604 808A2B64 44060000 */ mfc1 $a2, $f0
|
||||
.L808A2B68:
|
||||
/* 00608 808A2B68 44070000 */ mfc1 $a3, $f0
|
||||
/* 0060C 808A2B6C E7A00010 */ swc1 $f0, 0x0010($sp)
|
||||
/* 00610 808A2B70 0C00B92D */ jal func_8002E4B4
|
||||
/* 00614 808A2B74 AFB90014 */ sw $t9, 0x0014($sp)
|
||||
/* 00618 808A2B78 860801CA */ lh $t0, 0x01CA($s0) ## 000001CA
|
||||
/* 0061C 808A2B7C 860A01CA */ lh $t2, 0x01CA($s0) ## 000001CA
|
||||
/* 00620 808A2B80 3C01808A */ lui $at, %hi(D_808A2DFC) ## $at = 808A0000
|
||||
/* 00624 808A2B84 00084880 */ sll $t1, $t0, 2
|
||||
/* 00628 808A2B88 00290821 */ addu $at, $at, $t1
|
||||
/* 0062C 808A2B8C C4262DFC */ lwc1 $f6, %lo(D_808A2DFC)($at)
|
||||
/* 00630 808A2B90 254B0001 */ addiu $t3, $t2, 0x0001 ## $t3 = 00000001
|
||||
/* 00634 808A2B94 A60B01CA */ sh $t3, 0x01CA($s0) ## 000001CA
|
||||
/* 00638 808A2B98 10000008 */ beq $zero, $zero, .L808A2BBC
|
||||
/* 0063C 808A2B9C E6060060 */ swc1 $f6, 0x0060($s0) ## 00000060
|
||||
/* 00640 808A2BA0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
.L808A2BA4:
|
||||
/* 00644 808A2BA4 240C001C */ addiu $t4, $zero, 0x001C ## $t4 = 0000001C
|
||||
/* 00648 808A2BA8 AFAC0014 */ sw $t4, 0x0014($sp)
|
||||
/* 0064C 808A2BAC 44060000 */ mfc1 $a2, $f0
|
||||
/* 00650 808A2BB0 44070000 */ mfc1 $a3, $f0
|
||||
/* 00654 808A2BB4 0C00B92D */ jal func_8002E4B4
|
||||
/* 00658 808A2BB8 E7A00010 */ swc1 $f0, 0x0010($sp)
|
||||
.L808A2BBC:
|
||||
/* 0065C 808A2BBC 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L808A2BC0:
|
||||
/* 00660 808A2BC0 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 00664 808A2BC4 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 00668 808A2BC8 03E00008 */ jr $ra
|
||||
/* 0066C 808A2BCC 00000000 */ nop
|
|
@ -1,8 +0,0 @@
|
|||
glabel func_808A2BD0
|
||||
/* 00670 808A2BD0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 00674 808A2BD4 C4840080 */ lwc1 $f4, 0x0080($a0) ## 00000080
|
||||
/* 00678 808A2BD8 AC8001C4 */ sw $zero, 0x01C4($a0) ## 000001C4
|
||||
/* 0067C 808A2BDC E480006C */ swc1 $f0, 0x006C($a0) ## 0000006C
|
||||
/* 00680 808A2BE0 E4800060 */ swc1 $f0, 0x0060($a0) ## 00000060
|
||||
/* 00684 808A2BE4 03E00008 */ jr $ra
|
||||
/* 00688 808A2BE8 E4840028 */ swc1 $f4, 0x0028($a0) ## 00000028
|
|
@ -1,105 +0,0 @@
|
|||
.rdata
|
||||
glabel D_808A2F28
|
||||
.asciz "../z_bg_mori_hashigo.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_808A2F40
|
||||
.asciz "../z_bg_mori_hashigo.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_808A2F58
|
||||
.asciz "../z_bg_mori_hashigo.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel func_808A2C28
|
||||
/* 006C8 808A2C28 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
|
||||
/* 006CC 808A2C2C AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 006D0 808A2C30 AFA40050 */ sw $a0, 0x0050($sp)
|
||||
/* 006D4 808A2C34 AFA50054 */ sw $a1, 0x0054($sp)
|
||||
/* 006D8 808A2C38 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
|
||||
/* 006DC 808A2C3C 3C06808A */ lui $a2, %hi(D_808A2F28) ## $a2 = 808A0000
|
||||
/* 006E0 808A2C40 24C62F28 */ addiu $a2, $a2, %lo(D_808A2F28) ## $a2 = 808A2F28
|
||||
/* 006E4 808A2C44 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4
|
||||
/* 006E8 808A2C48 24070204 */ addiu $a3, $zero, 0x0204 ## $a3 = 00000204
|
||||
/* 006EC 808A2C4C 0C031AB1 */ jal Graph_OpenDisps
|
||||
/* 006F0 808A2C50 AFA50044 */ sw $a1, 0x0044($sp)
|
||||
/* 006F4 808A2C54 8FAF0054 */ lw $t7, 0x0054($sp)
|
||||
/* 006F8 808A2C58 0C024F46 */ jal func_80093D18
|
||||
/* 006FC 808A2C5C 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
|
||||
/* 00700 808A2C60 8FA80044 */ lw $t0, 0x0044($sp)
|
||||
/* 00704 808A2C64 8FA70054 */ lw $a3, 0x0054($sp)
|
||||
/* 00708 808A2C68 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
|
||||
/* 0070C 808A2C6C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
|
||||
/* 00710 808A2C70 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020
|
||||
/* 00714 808A2C74 3C0D0001 */ lui $t5, 0x0001 ## $t5 = 00010000
|
||||
/* 00718 808A2C78 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
|
||||
/* 0071C 808A2C7C AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
|
||||
/* 00720 808A2C80 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
|
||||
/* 00724 808A2C84 8FA90050 */ lw $t1, 0x0050($sp)
|
||||
/* 00728 808A2C88 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
|
||||
/* 0072C 808A2C8C 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
|
||||
/* 00730 808A2C90 812A01CC */ lb $t2, 0x01CC($t1) ## 000001CC
|
||||
/* 00734 808A2C94 3C05808A */ lui $a1, %hi(D_808A2F40) ## $a1 = 808A0000
|
||||
/* 00738 808A2C98 24A52F40 */ addiu $a1, $a1, %lo(D_808A2F40) ## $a1 = 808A2F40
|
||||
/* 0073C 808A2C9C 000A5900 */ sll $t3, $t2, 4
|
||||
/* 00740 808A2CA0 016A5821 */ addu $t3, $t3, $t2
|
||||
/* 00744 808A2CA4 000B5880 */ sll $t3, $t3, 2
|
||||
/* 00748 808A2CA8 00EB6021 */ addu $t4, $a3, $t3
|
||||
/* 0074C 808A2CAC 01AC6821 */ addu $t5, $t5, $t4
|
||||
/* 00750 808A2CB0 8DAD17B4 */ lw $t5, 0x17B4($t5) ## 000117B4
|
||||
/* 00754 808A2CB4 24060209 */ addiu $a2, $zero, 0x0209 ## $a2 = 00000209
|
||||
/* 00758 808A2CB8 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
|
||||
/* 0075C 808A2CBC 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
|
||||
/* 00760 808A2CC0 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
|
||||
/* 00764 808A2CC4 AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0
|
||||
/* 00768 808A2CC8 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
|
||||
/* 0076C 808A2CCC 8CE40000 */ lw $a0, 0x0000($a3) ## 00000000
|
||||
/* 00770 808A2CD0 AFA80044 */ sw $t0, 0x0044($sp)
|
||||
/* 00774 808A2CD4 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 00778 808A2CD8 AFA2002C */ sw $v0, 0x002C($sp)
|
||||
/* 0077C 808A2CDC 8FA3002C */ lw $v1, 0x002C($sp)
|
||||
/* 00780 808A2CE0 8FA80044 */ lw $t0, 0x0044($sp)
|
||||
/* 00784 808A2CE4 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
||||
/* 00788 808A2CE8 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 0078C 808A2CEC 8FB80050 */ lw $t8, 0x0050($sp)
|
||||
/* 00790 808A2CF0 3C06808A */ lui $a2, %hi(D_808A2F58) ## $a2 = 808A0000
|
||||
/* 00794 808A2CF4 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000
|
||||
/* 00798 808A2CF8 8702001C */ lh $v0, 0x001C($t8) ## 0000001C
|
||||
/* 0079C 808A2CFC 24C62F58 */ addiu $a2, $a2, %lo(D_808A2F58) ## $a2 = 808A2F58
|
||||
/* 007A0 808A2D00 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4
|
||||
/* 007A4 808A2D04 50410006 */ beql $v0, $at, .L808A2D20
|
||||
/* 007A8 808A2D08 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
|
||||
/* 007AC 808A2D0C 1040000B */ beq $v0, $zero, .L808A2D3C
|
||||
/* 007B0 808A2D10 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
|
||||
/* 007B4 808A2D14 10000011 */ beq $zero, $zero, .L808A2D5C
|
||||
/* 007B8 808A2D18 8FAE0054 */ lw $t6, 0x0054($sp)
|
||||
/* 007BC 808A2D1C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
|
||||
.L808A2D20:
|
||||
/* 007C0 808A2D20 3C0A0600 */ lui $t2, 0x0600 ## $t2 = 06000000
|
||||
/* 007C4 808A2D24 254A4770 */ addiu $t2, $t2, 0x4770 ## $t2 = 06004770
|
||||
/* 007C8 808A2D28 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
|
||||
/* 007CC 808A2D2C AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0
|
||||
/* 007D0 808A2D30 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
|
||||
/* 007D4 808A2D34 10000008 */ beq $zero, $zero, .L808A2D58
|
||||
/* 007D8 808A2D38 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
|
||||
.L808A2D3C:
|
||||
/* 007DC 808A2D3C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
|
||||
/* 007E0 808A2D40 3C0D0600 */ lui $t5, 0x0600 ## $t5 = 06000000
|
||||
/* 007E4 808A2D44 25AD36B0 */ addiu $t5, $t5, 0x36B0 ## $t5 = 060036B0
|
||||
/* 007E8 808A2D48 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
|
||||
/* 007EC 808A2D4C AD0B02C0 */ sw $t3, 0x02C0($t0) ## 000002C0
|
||||
/* 007F0 808A2D50 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
|
||||
/* 007F4 808A2D54 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
|
||||
.L808A2D58:
|
||||
/* 007F8 808A2D58 8FAE0054 */ lw $t6, 0x0054($sp)
|
||||
.L808A2D5C:
|
||||
/* 007FC 808A2D5C 24070213 */ addiu $a3, $zero, 0x0213 ## $a3 = 00000213
|
||||
/* 00800 808A2D60 0C031AD5 */ jal Graph_CloseDisps
|
||||
/* 00804 808A2D64 8DC50000 */ lw $a1, 0x0000($t6) ## 00000000
|
||||
/* 00808 808A2D68 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0080C 808A2D6C 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
|
||||
/* 00810 808A2D70 03E00008 */ jr $ra
|
||||
/* 00814 808A2D74 00000000 */ nop
|
||||
/* 00818 808A2D78 00000000 */ nop
|
||||
/* 0081C 808A2D7C 00000000 */ nop
|
|
@ -1,29 +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 Bg_Mori_Hashigo_InitVars
|
||||
.word 0x00E20100, 0x00000000, 0x00720000, 0x000001D0
|
||||
.word BgMoriHashigo_Init
|
||||
.word BgMoriHashigo_Destroy
|
||||
.word BgMoriHashigo_Update
|
||||
.word 0x00000000
|
||||
glabel D_808A2DA0
|
||||
.word 0x04000000, 0x00000000, 0x00000000, 0x0001F820, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00190064
|
||||
glabel D_808A2DC4
|
||||
.word 0x0A000900, 0x00000000, 0x00000001
|
||||
.word D_808A2DA0
|
||||
glabel D_808A2DD4
|
||||
.word 0xB0F403E8, 0xB0F80190, 0xB0FC03E8, 0x801F0003, 0xB04C0028, 0x485003E8
|
||||
glabel D_808A2DEC
|
||||
.word 0xB0F403E8, 0xB0F80190, 0xB0FC03E8, 0x485003E8
|
||||
glabel D_808A2DFC
|
||||
.word 0x40800000, 0x402CCCCD, 0x3FD9999A, 0x00000000, 0x00000000
|
||||
|
|
@ -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_808A2F70
|
||||
.incbin "baserom/ovl_Bg_Mori_Hashigo", 0xA10, 0x000000F0
|
3
spec
3
spec
|
@ -1111,8 +1111,7 @@ endseg
|
|||
beginseg
|
||||
name "ovl_Bg_Mori_Hashigo"
|
||||
include "build/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.o"
|
||||
include "build/data/overlays/actors/z_bg_mori_hashigo.data.o"
|
||||
include "build/data/overlays/actors/z_bg_mori_hashigo.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Bg_Mori_Hashigo/ovl_Bg_Mori_Hashigo_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
/*
|
||||
* File: z_bg_mori_hashigo.c
|
||||
* Overlay: ovl_Bg_Mori_Hashigo
|
||||
* Description: Falling ladder and clasp that holds it. Unused.
|
||||
*/
|
||||
|
||||
#include "z_bg_mori_hashigo.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
@ -7,8 +13,22 @@
|
|||
void BgMoriHashigo_Init(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgMoriHashigo_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgMoriHashigo_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgMoriHashigo_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
void BgMoriHashigo_SetupWaitForMoriTex(BgMoriHashigo* this);
|
||||
void BgMoriHashigo_WaitForMoriTex(BgMoriHashigo* this, GlobalContext* globalCtx);
|
||||
void BgMoriHashigo_SetupClasp(BgMoriHashigo* this);
|
||||
void BgMoriHashigo_Clasp(BgMoriHashigo* this, GlobalContext* globalCtx);
|
||||
void BgMoriHashigo_SetupLadderWait(BgMoriHashigo* this);
|
||||
void BgMoriHashigo_LadderWait(BgMoriHashigo* this, GlobalContext* globalCtx);
|
||||
void BgMoriHashigo_SetupLadderFall(BgMoriHashigo* this);
|
||||
void BgMoriHashigo_LadderFall(BgMoriHashigo* this, GlobalContext* globalCtx);
|
||||
void BgMoriHashigo_SetupLadderRest(BgMoriHashigo* this);
|
||||
|
||||
extern ColHeader D_060037D8;
|
||||
extern Gfx D_060036B0[];
|
||||
extern Gfx D_06004770[];
|
||||
|
||||
/*
|
||||
const ActorInit Bg_Mori_Hashigo_InitVars = {
|
||||
ACTOR_BG_MORI_HASHIGO,
|
||||
ACTORTYPE_BG,
|
||||
|
@ -20,39 +40,256 @@ const ActorInit Bg_Mori_Hashigo_InitVars = {
|
|||
(ActorFunc)BgMoriHashigo_Update,
|
||||
NULL,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2560.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A25E8.s")
|
||||
static ColliderJntSphItemInit sJntSphItemsInit[1] = {
|
||||
{
|
||||
{ 0x04, { 0x00000000, 0x00, 0x00 }, { 0x0001F820, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
|
||||
{ 0, { { 0, 0, 0 }, 25 }, 100 },
|
||||
},
|
||||
};
|
||||
|
||||
static ColliderJntSphInit sJntSphInit = {
|
||||
{ COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x00, COLSHAPE_JNTSPH },
|
||||
1,
|
||||
sJntSphItemsInit,
|
||||
};
|
||||
|
||||
static InitChainEntry sInitChainClasp[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_U8(unk_1F, 3, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(unk_4C, 40, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static InitChainEntry sInitChainLadder[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgMoriHashigo_InitDynapoly(BgMoriHashigo* this, GlobalContext* globalCtx, ColHeader* collision, s32 moveFlag) {
|
||||
s32 pad;
|
||||
ColHeader* colHeader;
|
||||
s32 pad2;
|
||||
|
||||
colHeader = NULL;
|
||||
DynaPolyInfo_SetActorMove(&this->dyna, moveFlag);
|
||||
DynaPolyInfo_Alloc(collision, &colHeader);
|
||||
this->dyna.dynaPolyId =
|
||||
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
if (this->dyna.dynaPolyId == 0x32) {
|
||||
// Warning : move BG login failed
|
||||
osSyncPrintf("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n", "../z_bg_mori_hashigo.c", 164,
|
||||
this->dyna.actor.id, this->dyna.actor.params);
|
||||
}
|
||||
}
|
||||
|
||||
void BgMoriHashigo_InitCollider(BgMoriHashigo* this, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
|
||||
Collider_InitJntSph(globalCtx, &this->collider);
|
||||
Collider_SetJntSph(globalCtx, &this->collider, &this->dyna.actor, &sJntSphInit, this->colliderItems);
|
||||
|
||||
this->collider.list[0].dim.worldSphere.center.x = (s16)this->dyna.actor.posRot.pos.x;
|
||||
this->collider.list[0].dim.worldSphere.center.y = (s16)this->dyna.actor.posRot.pos.y + 21;
|
||||
this->collider.list[0].dim.worldSphere.center.z = (s16)this->dyna.actor.posRot.pos.z;
|
||||
this->collider.list[0].dim.worldSphere.radius = 19;
|
||||
}
|
||||
|
||||
s32 BgMoriHashigo_SpawnLadder(BgMoriHashigo* this, GlobalContext* globalCtx) {
|
||||
f32 sn;
|
||||
f32 cs;
|
||||
Vec3f pos;
|
||||
Actor* ladder;
|
||||
|
||||
cs = Math_Coss(this->dyna.actor.shape.rot.y);
|
||||
sn = Math_Sins(this->dyna.actor.shape.rot.y);
|
||||
|
||||
pos.x = 6.0f * sn + this->dyna.actor.posRot.pos.x;
|
||||
pos.y = -210.0f + this->dyna.actor.posRot.pos.y;
|
||||
pos.z = 6.0f * cs + this->dyna.actor.posRot.pos.z;
|
||||
|
||||
ladder = Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_BG_MORI_HASHIGO, pos.x, pos.y,
|
||||
pos.z, this->dyna.actor.posRot.rot.x, this->dyna.actor.posRot.rot.y,
|
||||
this->dyna.actor.posRot.rot.z, 0);
|
||||
if (ladder != NULL) {
|
||||
return true;
|
||||
} else {
|
||||
// Ladder failure
|
||||
osSyncPrintf("Error : 梯子の発生失敗(%s %d)(arg_data 0x%04x)\n", "../z_bg_mori_hashigo.c", 220,
|
||||
this->dyna.actor.params);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
s32 BgMoriHashigo_InitClasp(BgMoriHashigo* this, GlobalContext* globalCtx) {
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChainClasp);
|
||||
this->dyna.actor.flags |= 1;
|
||||
Actor_SetHeight(&this->dyna.actor, 55.0f);
|
||||
BgMoriHashigo_InitCollider(this, globalCtx);
|
||||
if ((this->dyna.actor.params == -1) && !BgMoriHashigo_SpawnLadder(this, globalCtx)) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
s32 BgMoriHashigo_InitLadder(BgMoriHashigo* this, GlobalContext* globalCtx) {
|
||||
BgMoriHashigo_InitDynapoly(this, globalCtx, &D_060037D8, DPM_UNK);
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChainLadder);
|
||||
return true;
|
||||
}
|
||||
|
||||
void BgMoriHashigo_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgMoriHashigo* this = THIS;
|
||||
|
||||
if (this->dyna.actor.params == -1) {
|
||||
if (!BgMoriHashigo_InitClasp(this, globalCtx)) {
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
return;
|
||||
}
|
||||
} else if (this->dyna.actor.params == 0) {
|
||||
if (!BgMoriHashigo_InitLadder(this, globalCtx)) {
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
return;
|
||||
}
|
||||
}
|
||||
this->moriTexObjIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_MORI_TEX);
|
||||
if (this->moriTexObjIndex < 0) {
|
||||
// Bank danger!
|
||||
osSyncPrintf("Error : バンク危険!(arg_data 0x%04x)(%s %d)\n", this->dyna.actor.params,
|
||||
"../z_bg_mori_hashigo.c", 312);
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
} else {
|
||||
BgMoriHashigo_SetupWaitForMoriTex(this);
|
||||
// (Forest Temple Ladder and its clasp)
|
||||
osSyncPrintf("(森の神殿 梯子とその留め金)(arg_data 0x%04x)\n", this->dyna.actor.params);
|
||||
}
|
||||
}
|
||||
|
||||
void BgMoriHashigo_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgMoriHashigo* this = THIS;
|
||||
|
||||
if (this->dyna.actor.params == 0) {
|
||||
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||
}
|
||||
if (this->dyna.actor.params == -1) {
|
||||
Collider_DestroyJntSph(globalCtx, &this->collider);
|
||||
}
|
||||
}
|
||||
|
||||
void BgMoriHashigo_SetupWaitForMoriTex(BgMoriHashigo* this) {
|
||||
this->actionFunc = BgMoriHashigo_WaitForMoriTex;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2698.s")
|
||||
void BgMoriHashigo_WaitForMoriTex(BgMoriHashigo* this, GlobalContext* globalCtx) {
|
||||
if (Object_IsLoaded(&globalCtx->objectCtx, this->moriTexObjIndex)) {
|
||||
if (this->dyna.actor.params == -1) {
|
||||
BgMoriHashigo_SetupClasp(this);
|
||||
} else if (this->dyna.actor.params == 0) {
|
||||
BgMoriHashigo_SetupLadderWait(this);
|
||||
}
|
||||
this->dyna.actor.draw = BgMoriHashigo_Draw;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2770.s")
|
||||
void BgMoriHashigo_SetupClasp(BgMoriHashigo* this) {
|
||||
this->actionFunc = BgMoriHashigo_Clasp;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A27F8.s")
|
||||
void BgMoriHashigo_Clasp(BgMoriHashigo* this, GlobalContext* globalCtx) {
|
||||
if (this->hitTimer <= 0) {
|
||||
if (this->collider.base.acFlags & 2) {
|
||||
this->collider.base.acFlags &= ~2;
|
||||
this->hitTimer = 10;
|
||||
} else {
|
||||
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Init.s")
|
||||
void BgMoriHashigo_SetupLadderWait(BgMoriHashigo* this) {
|
||||
this->actionFunc = BgMoriHashigo_LadderWait;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Destroy.s")
|
||||
void BgMoriHashigo_LadderWait(BgMoriHashigo* this, GlobalContext* globalCtx) {
|
||||
BgMoriHashigo* clasp = (BgMoriHashigo*)this->dyna.actor.parent;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2978.s")
|
||||
if (clasp->hitTimer > 0) {
|
||||
BgMoriHashigo_SetupLadderFall(this);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2988.s")
|
||||
void BgMoriHashigo_SetupLadderFall(BgMoriHashigo* this) {
|
||||
this->bounceCounter = 0;
|
||||
this->actionFunc = BgMoriHashigo_LadderFall;
|
||||
this->dyna.actor.gravity = -1.0f;
|
||||
this->dyna.actor.minVelocityY = -10.0f;
|
||||
this->dyna.actor.velocity.y = 2.0f;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A04.s")
|
||||
void BgMoriHashigo_LadderFall(BgMoriHashigo* this, GlobalContext* globalCtx) {
|
||||
static f32 bounceSpeed[3] = { 4.0f, 2.7f, 1.7f };
|
||||
Actor* thisx = &this->dyna.actor;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A14.s")
|
||||
Actor_MoveForward(thisx);
|
||||
if ((thisx->bgCheckFlags & 1) && (thisx->velocity.y < 0.0f)) {
|
||||
if (this->bounceCounter >= ARRAY_COUNT(bounceSpeed)) {
|
||||
BgMoriHashigo_SetupLadderRest(this);
|
||||
} else {
|
||||
func_8002E4B4(globalCtx, thisx, 0.0f, 0.0f, 0.0f, 0x1C);
|
||||
thisx->velocity.y = bounceSpeed[this->bounceCounter];
|
||||
this->bounceCounter++;
|
||||
}
|
||||
} else {
|
||||
func_8002E4B4(globalCtx, thisx, 0.0f, 0.0f, 0.0f, 0x1C);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A78.s")
|
||||
void BgMoriHashigo_SetupLadderRest(BgMoriHashigo* this) {
|
||||
this->actionFunc = NULL;
|
||||
this->dyna.actor.gravity = 0.0f;
|
||||
this->dyna.actor.velocity.y = 0.0f;
|
||||
this->dyna.actor.posRot.pos.y = this->dyna.actor.groundY;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A88.s")
|
||||
void BgMoriHashigo_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgMoriHashigo* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2ABC.s")
|
||||
if (this->hitTimer > 0) {
|
||||
this->hitTimer--;
|
||||
}
|
||||
if (this->actionFunc != NULL) {
|
||||
this->actionFunc(this, globalCtx);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2AF4.s")
|
||||
void BgMoriHashigo_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgMoriHashigo* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2BD0.s")
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_mori_hashigo.c", 516);
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
if (1) {}
|
||||
gSPSegment(oGfxCtx->polyOpa.p++, 0x08, globalCtx->objectCtx.status[this->moriTexObjIndex].segment);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Update.s")
|
||||
gSPMatrix(oGfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_mori_hashigo.c", 521),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2C28.s")
|
||||
switch (this->dyna.actor.params) {
|
||||
case -1:
|
||||
gSPDisplayList(oGfxCtx->polyOpa.p++, D_06004770);
|
||||
break;
|
||||
case 0:
|
||||
gSPDisplayList(oGfxCtx->polyOpa.p++, D_060036B0);
|
||||
break;
|
||||
}
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_mori_hashigo.c", 531);
|
||||
}
|
||||
|
|
|
@ -6,9 +6,16 @@
|
|||
|
||||
struct BgMoriHashigo;
|
||||
|
||||
typedef void (*BgMoriHashigoActionFunc)(struct BgMoriHashigo*, GlobalContext*);
|
||||
|
||||
typedef struct BgMoriHashigo {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x84];
|
||||
/* 0x0000 */ DynaPolyActor dyna;
|
||||
/* 0x0164 */ ColliderJntSph collider;
|
||||
/* 0x0184 */ ColliderJntSphItem colliderItems[1];
|
||||
/* 0x01C4 */ BgMoriHashigoActionFunc actionFunc;
|
||||
/* 0x01C8 */ s16 hitTimer;
|
||||
/* 0x01CA */ s16 bounceCounter;
|
||||
/* 0x01CC */ s8 moriTexObjIndex;
|
||||
} BgMoriHashigo; // size = 0x01D0
|
||||
|
||||
extern const ActorInit Bg_Mori_Hashigo_InitVars;
|
||||
|
|
|
@ -1123,6 +1123,11 @@ D_06000498 = 0x06000498;
|
|||
// z_bg_menkuri_eye
|
||||
D_06002D20 = 0x06002D20;
|
||||
|
||||
// z_bg_mori_hashigo
|
||||
D_060037D8 = 0x060037D8;
|
||||
D_060036B0 = 0x060036B0;
|
||||
D_06004770 = 0x06004770;
|
||||
|
||||
// z_bg_mori_bigst
|
||||
D_0600221C = 0x0600221C;
|
||||
D_06001E50 = 0x06001E50;
|
||||
|
|
Loading…
Reference in a new issue