Bg mori elevator one non matching (#293)

* BgMoriElevator Progress

* Decomp Progress

* Progress

* Progress

* Progress

* Progress

* Progress

* Finish Decomp for MoriElevator

* Test

* Update spec

* Update z_bg_mori_elevator.c

* PR fixes

* PR fixes

* PR fixes

* PR fixes

* Fixed a non matching

* Delete func_808A1800.s

* PR fixes

* PR fixes

* PR fixes

* PR fixes

* Run Clang-Format

* Change PlaceInGround to WaitAfterInit

* PR fixes

* Change a variable
This commit is contained in:
louist103 2020-08-20 21:53:43 -04:00 committed by GitHub
parent 888f1b315f
commit 8d5d644647
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 246 additions and 866 deletions

View File

@ -1,31 +0,0 @@
.rdata
glabel D_808A22B4
.asciz "殿 elevator DT\n"
.balign 4
.text
glabel BgMoriElevator_Destroy
/* 002AC 808A1AAC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002B0 808A1AB0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002B4 808A1AB4 AFA5001C */ sw $a1, 0x001C($sp)
/* 002B8 808A1AB8 848E0172 */ lh $t6, 0x0172($a0) ## 00000172
/* 002BC 808A1ABC 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 002C0 808A1AC0 3C04808A */ lui $a0, %hi(D_808A22B4) ## $a0 = 808A0000
/* 002C4 808A1AC4 15C0000A */ bne $t6, $zero, .L808A1AF0
/* 002C8 808A1AC8 248422B4 */ addiu $a0, $a0, %lo(D_808A22B4) ## $a0 = 808A22B4
/* 002CC 808A1ACC 0C00084C */ jal osSyncPrintf
/* 002D0 808A1AD0 AFA70018 */ sw $a3, 0x0018($sp)
/* 002D4 808A1AD4 8FA4001C */ lw $a0, 0x001C($sp)
/* 002D8 808A1AD8 8FA70018 */ lw $a3, 0x0018($sp)
/* 002DC 808A1ADC 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 002E0 808A1AE0 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 002E4 808A1AE4 8CE6014C */ lw $a2, 0x014C($a3) ## 0000014C
/* 002E8 808A1AE8 3C01808A */ lui $at, %hi(D_808A2210) ## $at = 808A0000
/* 002EC 808A1AEC A4202210 */ sh $zero, %lo(D_808A2210)($at)
.L808A1AF0:
/* 002F0 808A1AF0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 002F4 808A1AF4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 002F8 808A1AF8 03E00008 */ jr $ra
/* 002FC 808A1AFC 00000000 */ nop

View File

@ -1,102 +0,0 @@
.rdata
glabel D_808A2250
.asciz "Error : 殿 obj elevator (%s %d)\n"
.balign 4
glabel D_808A2284
.asciz "../z_bg_mori_elevator.c"
.balign 4
glabel D_808A229C
.asciz "殿 elevator CT\n"
.balign 4
.text
glabel BgMoriElevator_Init
/* 00184 808A1984 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00188 808A1988 3C0E808A */ lui $t6, %hi(D_808A2210) ## $t6 = 808A0000
/* 0018C 808A198C 85CE2210 */ lh $t6, %lo(D_808A2210)($t6)
/* 00190 808A1990 AFB00018 */ sw $s0, 0x0018($sp)
/* 00194 808A1994 AFBF001C */ sw $ra, 0x001C($sp)
/* 00198 808A1998 AFA50034 */ sw $a1, 0x0034($sp)
/* 0019C 808A199C AFA00024 */ sw $zero, 0x0024($sp)
/* 001A0 808A19A0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 001A4 808A19A4 A48E0172 */ sh $t6, 0x0172($a0) ## 00000172
/* 001A8 808A19A8 8FA40034 */ lw $a0, 0x0034($sp)
/* 001AC 808A19AC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 001B0 808A19B0 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 001B4 808A19B4 24050073 */ addiu $a1, $zero, 0x0073 ## $a1 = 00000073
/* 001B8 808A19B8 0C02604B */ jal Object_GetIndex
## ObjectIndex
/* 001BC 808A19BC 00812021 */ addu $a0, $a0, $at
/* 001C0 808A19C0 A2020171 */ sb $v0, 0x0171($s0) ## 00000171
/* 001C4 808A19C4 820F0171 */ lb $t7, 0x0171($s0) ## 00000171
/* 001C8 808A19C8 3C02808A */ lui $v0, %hi(D_808A2210) ## $v0 = 808A0000
/* 001CC 808A19CC 05E1000B */ bgez $t7, .L808A19FC
/* 001D0 808A19D0 00000000 */ nop
/* 001D4 808A19D4 0C00B55C */ jal Actor_Kill
/* 001D8 808A19D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001DC 808A19DC 3C04808A */ lui $a0, %hi(D_808A2250) ## $a0 = 808A0000
/* 001E0 808A19E0 3C05808A */ lui $a1, %hi(D_808A2284) ## $a1 = 808A0000
/* 001E4 808A19E4 24A52284 */ addiu $a1, $a1, %lo(D_808A2284) ## $a1 = 808A2284
/* 001E8 808A19E8 24842250 */ addiu $a0, $a0, %lo(D_808A2250) ## $a0 = 808A2250
/* 001EC 808A19EC 0C00084C */ jal osSyncPrintf
/* 001F0 808A19F0 24060115 */ addiu $a2, $zero, 0x0115 ## $a2 = 00000115
/* 001F4 808A19F4 10000029 */ beq $zero, $zero, .L808A1A9C
/* 001F8 808A19F8 8FBF001C */ lw $ra, 0x001C($sp)
.L808A19FC:
/* 001FC 808A19FC 84422210 */ lh $v0, %lo(D_808A2210)($v0)
/* 00200 808A1A00 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00204 808A1A04 3C04808A */ lui $a0, %hi(D_808A229C) ## $a0 = 808A0000
/* 00208 808A1A08 10400005 */ beq $v0, $zero, .L808A1A20
/* 0020C 808A1A0C 00000000 */ nop
/* 00210 808A1A10 1041001F */ beq $v0, $at, .L808A1A90
/* 00214 808A1A14 00000000 */ nop
/* 00218 808A1A18 10000020 */ beq $zero, $zero, .L808A1A9C
/* 0021C 808A1A1C 8FBF001C */ lw $ra, 0x001C($sp)
.L808A1A20:
/* 00220 808A1A20 0C00084C */ jal osSyncPrintf
/* 00224 808A1A24 2484229C */ addiu $a0, $a0, %lo(D_808A229C) ## $a0 = 808A229C
/* 00228 808A1A28 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 0022C 808A1A2C 3C01808A */ lui $at, %hi(D_808A2210) ## $at = 808A0000
/* 00230 808A1A30 A4382210 */ sh $t8, %lo(D_808A2210)($at)
/* 00234 808A1A34 2419FFFF */ addiu $t9, $zero, 0xFFFF ## $t9 = FFFFFFFF
/* 00238 808A1A38 3C05808A */ lui $a1, %hi(D_808A2234) ## $a1 = 808A0000
/* 0023C 808A1A3C A2190003 */ sb $t9, 0x0003($s0) ## 00000003
/* 00240 808A1A40 24A52234 */ addiu $a1, $a1, %lo(D_808A2234) ## $a1 = 808A2234
/* 00244 808A1A44 0C01E037 */ jal Actor_ProcessInitChain
/* 00248 808A1A48 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0024C 808A1A4C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00250 808A1A50 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 00254 808A1A54 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00258 808A1A58 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 0025C 808A1A5C 248435F8 */ addiu $a0, $a0, 0x35F8 ## $a0 = 060035F8
/* 00260 808A1A60 0C010620 */ jal DynaPolyInfo_Alloc
/* 00264 808A1A64 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 00268 808A1A68 8FA40034 */ lw $a0, 0x0034($sp)
/* 0026C 808A1A6C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00270 808A1A70 8FA70024 */ lw $a3, 0x0024($sp)
/* 00274 808A1A74 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 00278 808A1A78 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 0027C 808A1A7C AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 00280 808A1A80 0C2286D8 */ jal func_808A1B60
/* 00284 808A1A84 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00288 808A1A88 10000004 */ beq $zero, $zero, .L808A1A9C
/* 0028C 808A1A8C 8FBF001C */ lw $ra, 0x001C($sp)
.L808A1A90:
/* 00290 808A1A90 0C00B55C */ jal Actor_Kill
/* 00294 808A1A94 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00298 808A1A98 8FBF001C */ lw $ra, 0x001C($sp)
.L808A1A9C:
/* 0029C 808A1A9C 8FB00018 */ lw $s0, 0x0018($sp)
/* 002A0 808A1AA0 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 002A4 808A1AA4 03E00008 */ jr $ra
/* 002A8 808A1AA8 00000000 */ nop

View File

@ -1,22 +0,0 @@
glabel BgMoriElevator_Update
/* 008BC 808A20BC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 008C0 808A20C0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 008C4 808A20C4 AFA5001C */ sw $a1, 0x001C($sp)
/* 008C8 808A20C8 AFA40018 */ sw $a0, 0x0018($sp)
/* 008CC 808A20CC 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 008D0 808A20D0 0320F809 */ jalr $ra, $t9
/* 008D4 808A20D4 00000000 */ nop
/* 008D8 808A20D8 8FA60018 */ lw $a2, 0x0018($sp)
/* 008DC 808A20DC 90CE0160 */ lbu $t6, 0x0160($a2) ## 00000160
/* 008E0 808A20E0 84C5001C */ lh $a1, 0x001C($a2) ## 0000001C
/* 008E4 808A20E4 A0CE0170 */ sb $t6, 0x0170($a2) ## 00000170
/* 008E8 808A20E8 8FA4001C */ lw $a0, 0x001C($sp)
/* 008EC 808A20EC 0C00B2D0 */ jal Flags_GetSwitch
/* 008F0 808A20F0 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 008F4 808A20F4 8FA60018 */ lw $a2, 0x0018($sp)
/* 008F8 808A20F8 ACC2016C */ sw $v0, 0x016C($a2) ## 0000016C
/* 008FC 808A20FC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00900 808A2100 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00904 808A2104 03E00008 */ jr $ra
/* 00908 808A2108 00000000 */ nop

View File

@ -1,75 +0,0 @@
glabel func_808A1800
/* 00000 808A1800 AFA7000C */ sw $a3, 0x000C($sp)
/* 00004 808A1804 44856000 */ mtc1 $a1, $f12 ## $f12 = 0.00
/* 00008 808A1808 C4800000 */ lwc1 $f0, 0x0000($a0) ## 00000000
/* 0000C 808A180C 44867000 */ mtc1 $a2, $f14 ## $f14 = 0.00
/* 00010 808A1810 C7A6000C */ lwc1 $f6, 0x000C($sp)
/* 00014 808A1814 46006101 */ sub.s $f4, $f12, $f0
/* 00018 808A1818 460C003C */ c.lt.s $f0, $f12
/* 0001C 808A181C 460E2082 */ mul.s $f2, $f4, $f14
/* 00020 808A1820 45020017 */ bc1fl .L808A1880
/* 00024 808A1824 4600603C */ c.lt.s $f12, $f0
/* 00028 808A1828 4602303C */ c.lt.s $f6, $f2
/* 0002C 808A182C C7AE0010 */ lwc1 $f14, 0x0010($sp)
/* 00030 808A1830 45020004 */ bc1fl .L808A1844
/* 00034 808A1834 460E103C */ c.lt.s $f2, $f14
/* 00038 808A1838 10000006 */ beq $zero, $zero, .L808A1854
/* 0003C 808A183C 46003086 */ mov.s $f2, $f6
/* 00040 808A1840 460E103C */ c.lt.s $f2, $f14
.L808A1844:
/* 00044 808A1844 00000000 */ nop
/* 00048 808A1848 45020003 */ bc1fl .L808A1858
/* 0004C 808A184C 46020200 */ add.s $f8, $f0, $f2
/* 00050 808A1850 46007086 */ mov.s $f2, $f14
.L808A1854:
/* 00054 808A1854 46020200 */ add.s $f8, $f0, $f2
.L808A1858:
/* 00058 808A1858 E4880000 */ swc1 $f8, 0x0000($a0) ## 00000000
/* 0005C 808A185C C48A0000 */ lwc1 $f10, 0x0000($a0) ## 00000000
/* 00060 808A1860 460A603C */ c.lt.s $f12, $f10
/* 00064 808A1864 00000000 */ nop
/* 00068 808A1868 45000022 */ bc1f .L808A18F4
/* 0006C 808A186C 00000000 */ nop
/* 00070 808A1870 E48C0000 */ swc1 $f12, 0x0000($a0) ## 00000000
/* 00074 808A1874 03E00008 */ jr $ra
/* 00078 808A1878 46001006 */ mov.s $f0, $f2
.L808A187C:
/* 0007C 808A187C 4600603C */ c.lt.s $f12, $f0
.L808A1880:
/* 00080 808A1880 C7AE000C */ lwc1 $f14, 0x000C($sp)
/* 00084 808A1884 4502001A */ bc1fl .L808A18F0
/* 00088 808A1888 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
/* 0008C 808A188C 46007387 */ neg.s $f14, $f14
/* 00090 808A1890 460E103C */ c.lt.s $f2, $f14
/* 00094 808A1894 00000000 */ nop
/* 00098 808A1898 45020004 */ bc1fl .L808A18AC
/* 0009C 808A189C C7AE0010 */ lwc1 $f14, 0x0010($sp)
/* 000A0 808A18A0 10000008 */ beq $zero, $zero, .L808A18C4
/* 000A4 808A18A4 46007086 */ mov.s $f2, $f14
/* 000A8 808A18A8 C7AE0010 */ lwc1 $f14, 0x0010($sp)
.L808A18AC:
/* 000AC 808A18AC 46007407 */ neg.s $f16, $f14
/* 000B0 808A18B0 4602803C */ c.lt.s $f16, $f2
/* 000B4 808A18B4 00000000 */ nop
/* 000B8 808A18B8 45020003 */ bc1fl .L808A18C8
/* 000BC 808A18BC 46020480 */ add.s $f18, $f0, $f2
/* 000C0 808A18C0 46008086 */ mov.s $f2, $f16
.L808A18C4:
/* 000C4 808A18C4 46020480 */ add.s $f18, $f0, $f2
.L808A18C8:
/* 000C8 808A18C8 E4920000 */ swc1 $f18, 0x0000($a0) ## 00000000
/* 000CC 808A18CC C4840000 */ lwc1 $f4, 0x0000($a0) ## 00000000
/* 000D0 808A18D0 460C203C */ c.lt.s $f4, $f12
/* 000D4 808A18D4 00000000 */ nop
/* 000D8 808A18D8 45000006 */ bc1f .L808A18F4
/* 000DC 808A18DC 00000000 */ nop
/* 000E0 808A18E0 E48C0000 */ swc1 $f12, 0x0000($a0) ## 00000000
/* 000E4 808A18E4 03E00008 */ jr $ra
/* 000E8 808A18E8 46001006 */ mov.s $f0, $f2
.L808A18EC:
/* 000EC 808A18EC 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
.L808A18F0:
/* 000F0 808A18F0 00000000 */ nop
.L808A18F4:
/* 000F4 808A18F4 03E00008 */ jr $ra
/* 000F8 808A18F8 46001006 */ mov.s $f0, $f2

View File

@ -1,43 +0,0 @@
.late_rodata
glabel D_808A23B4
.word 0x3DB851EC
.text
glabel func_808A18FC
/* 000FC 808A18FC 44856000 */ mtc1 $a1, $f12 ## $f12 = 0.00
/* 00100 808A1900 3C01808A */ lui $at, %hi(D_808A23B4) ## $at = 808A0000
/* 00104 808A1904 C42423B4 */ lwc1 $f4, %lo(D_808A23B4)($at)
/* 00108 808A1908 46006005 */ abs.s $f0, $f12
/* 0010C 808A190C 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
/* 00110 808A1910 46040082 */ mul.s $f2, $f0, $f4
/* 00114 808A1914 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00118 808A1918 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 0011C 808A191C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00120 808A1920 24E400E4 */ addiu $a0, $a3, 0x00E4 ## $a0 = 000000E4
/* 00124 808A1924 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00128 808A1928 460E103C */ c.lt.s $f2, $f14
/* 0012C 808A192C 00000000 */ nop
/* 00130 808A1930 45020004 */ bc1fl .L808A1944
/* 00134 808A1934 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
/* 00138 808A1938 1000000B */ beq $zero, $zero, .L808A1968
/* 0013C 808A193C 46007006 */ mov.s $f0, $f14
/* 00140 808A1940 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
.L808A1944:
/* 00144 808A1944 00000000 */ nop
/* 00148 808A1948 4602003C */ c.lt.s $f0, $f2
/* 0014C 808A194C 00000000 */ nop
/* 00150 808A1950 45020004 */ bc1fl .L808A1964
/* 00154 808A1954 46001306 */ mov.s $f12, $f2
/* 00158 808A1958 10000002 */ beq $zero, $zero, .L808A1964
/* 0015C 808A195C 46000306 */ mov.s $f12, $f0
/* 00160 808A1960 46001306 */ mov.s $f12, $f2
.L808A1964:
/* 00164 808A1964 46006006 */ mov.s $f0, $f12
.L808A1968:
/* 00168 808A1968 44060000 */ mfc1 $a2, $f0
/* 0016C 808A196C 0C03D0DB */ jal func_800F436C
/* 00170 808A1970 24052079 */ addiu $a1, $zero, 0x2079 ## $a1 = 00002079
/* 00174 808A1974 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00178 808A1978 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0017C 808A197C 03E00008 */ jr $ra
/* 00180 808A1980 00000000 */ nop

View File

@ -1,26 +0,0 @@
glabel func_808A1B00
/* 00300 808A1B00 90820160 */ lbu $v0, 0x0160($a0) ## 00000160
/* 00304 808A1B04 30420002 */ andi $v0, $v0, 0x0002 ## $v0 = 00000000
/* 00308 808A1B08 0002102B */ sltu $v0, $zero, $v0
/* 0030C 808A1B0C 10400012 */ beq $v0, $zero, .L808A1B58
/* 00310 808A1B10 00000000 */ nop
/* 00314 808A1B14 90820170 */ lbu $v0, 0x0170($a0) ## 00000170
/* 00318 808A1B18 30420002 */ andi $v0, $v0, 0x0002 ## $v0 = 00000000
/* 0031C 808A1B1C 2C420001 */ sltiu $v0, $v0, 0x0001
/* 00320 808A1B20 1040000D */ beq $v0, $zero, .L808A1B58
/* 00324 808A1B24 00000000 */ nop
/* 00328 808A1B28 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44
/* 0032C 808A1B2C C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028
/* 00330 808A1B30 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 00334 808A1B34 C5C40028 */ lwc1 $f4, 0x0028($t6) ## 00000028
/* 00338 808A1B38 44815000 */ mtc1 $at, $f10 ## $f10 = 80.00
/* 0033C 808A1B3C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00340 808A1B40 46062201 */ sub.s $f8, $f4, $f6
/* 00344 808A1B44 460A403C */ c.lt.s $f8, $f10
/* 00348 808A1B48 00000000 */ nop
/* 0034C 808A1B4C 45000002 */ bc1f .L808A1B58
/* 00350 808A1B50 00000000 */ nop
/* 00354 808A1B54 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L808A1B58:
/* 00358 808A1B58 03E00008 */ jr $ra
/* 0035C 808A1B5C 00000000 */ nop

View File

@ -1,5 +0,0 @@
glabel func_808A1B60
/* 00360 808A1B60 3C0E808A */ lui $t6, %hi(func_808A1B70) ## $t6 = 808A0000
/* 00364 808A1B64 25CE1B70 */ addiu $t6, $t6, %lo(func_808A1B70) ## $t6 = 808A1B70
/* 00368 808A1B68 03E00008 */ jr $ra
/* 0036C 808A1B6C AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164

View File

@ -1,66 +0,0 @@
.rdata
glabel D_808A22CC
.asciz "Error : 殿 obj elevator (%s %d)\n"
.balign 4
glabel D_808A2304
.asciz "../z_bg_mori_elevator.c"
.balign 4
.text
glabel func_808A1B70
/* 00370 808A1B70 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00374 808A1B74 AFB00018 */ sw $s0, 0x0018($sp)
/* 00378 808A1B78 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0037C 808A1B7C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00380 808A1B80 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 00384 808A1B84 AFBF001C */ sw $ra, 0x001C($sp)
/* 00388 808A1B88 AFA50024 */ sw $a1, 0x0024($sp)
/* 0038C 808A1B8C 00A12021 */ addu $a0, $a1, $at
/* 00390 808A1B90 0C026062 */ jal Object_IsLoaded
/* 00394 808A1B94 82050171 */ lb $a1, 0x0171($s0) ## 00000171
/* 00398 808A1B98 50400021 */ beql $v0, $zero, .L808A1C20
/* 0039C 808A1B9C 8FBF001C */ lw $ra, 0x001C($sp)
/* 003A0 808A1BA0 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 003A4 808A1BA4 8FA40024 */ lw $a0, 0x0024($sp)
/* 003A8 808A1BA8 0C00B2D0 */ jal Flags_GetSwitch
/* 003AC 808A1BAC 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 003B0 808A1BB0 10400015 */ beq $v0, $zero, .L808A1C08
/* 003B4 808A1BB4 8FAE0024 */ lw $t6, 0x0024($sp)
/* 003B8 808A1BB8 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000
/* 003BC 808A1BBC 01EE7821 */ addu $t7, $t7, $t6
/* 003C0 808A1BC0 81EF1CBC */ lb $t7, 0x1CBC($t7) ## 00011CBC
/* 003C4 808A1BC4 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 003C8 808A1BC8 3C04808A */ lui $a0, %hi(D_808A22CC) ## $a0 = 808A0000
/* 003CC 808A1BCC 15E10008 */ bne $t7, $at, .L808A1BF0
/* 003D0 808A1BD0 248422CC */ addiu $a0, $a0, %lo(D_808A22CC) ## $a0 = 808A22CC
/* 003D4 808A1BD4 3C014292 */ lui $at, 0x4292 ## $at = 42920000
/* 003D8 808A1BD8 44812000 */ mtc1 $at, $f4 ## $f4 = 73.00
/* 003DC 808A1BDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 003E0 808A1BE0 0C228781 */ jal func_808A1E04
/* 003E4 808A1BE4 E6040028 */ swc1 $f4, 0x0028($s0) ## 00000028
/* 003E8 808A1BE8 10000009 */ beq $zero, $zero, .L808A1C10
/* 003EC 808A1BEC 00000000 */ nop
.L808A1BF0:
/* 003F0 808A1BF0 3C05808A */ lui $a1, %hi(D_808A2304) ## $a1 = 808A0000
/* 003F4 808A1BF4 24A52304 */ addiu $a1, $a1, %lo(D_808A2304) ## $a1 = 808A2304
/* 003F8 808A1BF8 0C00084C */ jal osSyncPrintf
/* 003FC 808A1BFC 24060173 */ addiu $a2, $zero, 0x0173 ## $a2 = 00000173
/* 00400 808A1C00 10000003 */ beq $zero, $zero, .L808A1C10
/* 00404 808A1C04 00000000 */ nop
.L808A1C08:
/* 00408 808A1C08 0C228781 */ jal func_808A1E04
/* 0040C 808A1C0C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L808A1C10:
/* 00410 808A1C10 3C18808A */ lui $t8, %hi(func_808A210C) ## $t8 = 808A0000
/* 00414 808A1C14 2718210C */ addiu $t8, $t8, %lo(func_808A210C) ## $t8 = 808A210C
/* 00418 808A1C18 AE180134 */ sw $t8, 0x0134($s0) ## 00000134
/* 0041C 808A1C1C 8FBF001C */ lw $ra, 0x001C($sp)
.L808A1C20:
/* 00420 808A1C20 8FB00018 */ lw $s0, 0x0018($sp)
/* 00424 808A1C24 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00428 808A1C28 03E00008 */ jr $ra
/* 0042C 808A1C2C 00000000 */ nop

View File

@ -1,5 +0,0 @@
glabel func_808A1C30
/* 00430 808A1C30 3C0E808A */ lui $t6, %hi(func_808A1C40) ## $t6 = 808A0000
/* 00434 808A1C34 25CE1C40 */ addiu $t6, $t6, %lo(func_808A1C40) ## $t6 = 808A1C40
/* 00438 808A1C38 03E00008 */ jr $ra
/* 0043C 808A1C3C AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164

View File

@ -1,54 +0,0 @@
.late_rodata
glabel D_808A23B8
.float 0.001
.text
glabel func_808A1C40
/* 00440 808A1C40 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00444 808A1C44 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00448 808A1C48 AFB00020 */ sw $s0, 0x0020($sp)
/* 0044C 808A1C4C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00450 808A1C50 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00454 808A1C54 AFA5002C */ sw $a1, 0x002C($sp)
/* 00458 808A1C58 3C063D4C */ lui $a2, 0x3D4C ## $a2 = 3D4C0000
/* 0045C 808A1C5C 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3D4CCCCD
/* 00460 808A1C60 3C054000 */ lui $a1, 0x4000 ## $a1 = 40000000
/* 00464 808A1C64 24840060 */ addiu $a0, $a0, 0x0060 ## $a0 = 00000060
/* 00468 808A1C68 3C073F80 */ lui $a3, 0x3F80 ## $a3 = 3F800000
/* 0046C 808A1C6C 0C228600 */ jal func_808A1800
/* 00470 808A1C70 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00474 808A1C74 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 00478 808A1C78 44813000 */ mtc1 $at, $f6 ## $f6 = 1.50
/* 0047C 808A1C7C 3C063DA3 */ lui $a2, 0x3DA3 ## $a2 = 3DA30000
/* 00480 808A1C80 8E070060 */ lw $a3, 0x0060($s0) ## 00000060
/* 00484 808A1C84 34C6D70A */ ori $a2, $a2, 0xD70A ## $a2 = 3DA3D70A
/* 00488 808A1C88 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028
/* 0048C 808A1C8C 3C054292 */ lui $a1, 0x4292 ## $a1 = 42920000
/* 00490 808A1C90 0C228600 */ jal func_808A1800
/* 00494 808A1C94 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00498 808A1C98 3C01808A */ lui $at, %hi(D_808A23B8) ## $at = 808A0000
/* 0049C 808A1C9C C42823B8 */ lwc1 $f8, %lo(D_808A23B8)($at)
/* 004A0 808A1CA0 46000086 */ mov.s $f2, $f0
/* 004A4 808A1CA4 46000005 */ abs.s $f0, $f0
/* 004A8 808A1CA8 4608003C */ c.lt.s $f0, $f8
/* 004AC 808A1CAC 00000000 */ nop
/* 004B0 808A1CB0 45020009 */ bc1fl .L808A1CD8
/* 004B4 808A1CB4 44051000 */ mfc1 $a1, $f2
/* 004B8 808A1CB8 0C228781 */ jal func_808A1E04
/* 004BC 808A1CBC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004C0 808A1CC0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004C4 808A1CC4 0C00BE0A */ jal Audio_PlayActorSound2
/* 004C8 808A1CC8 2405287A */ addiu $a1, $zero, 0x287A ## $a1 = 0000287A
/* 004CC 808A1CCC 10000005 */ beq $zero, $zero, .L808A1CE4
/* 004D0 808A1CD0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 004D4 808A1CD4 44051000 */ mfc1 $a1, $f2
.L808A1CD8:
/* 004D8 808A1CD8 0C22863F */ jal func_808A18FC
/* 004DC 808A1CDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004E0 808A1CE0 8FBF0024 */ lw $ra, 0x0024($sp)
.L808A1CE4:
/* 004E4 808A1CE4 8FB00020 */ lw $s0, 0x0020($sp)
/* 004E8 808A1CE8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 004EC 808A1CEC 03E00008 */ jr $ra
/* 004F0 808A1CF0 00000000 */ nop

View File

@ -1,24 +0,0 @@
glabel func_808A1CF4
/* 004F4 808A1CF4 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 004F8 808A1CF8 3C0E808A */ lui $t6, %hi(func_808A1D50) ## $t6 = 808A0000
/* 004FC 808A1CFC AFBF001C */ sw $ra, 0x001C($sp)
/* 00500 808A1D00 AFA50024 */ sw $a1, 0x0024($sp)
/* 00504 808A1D04 25CE1D50 */ addiu $t6, $t6, %lo(func_808A1D50) ## $t6 = 808A1D50
/* 00508 808A1D08 AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164
/* 0050C 808A1D0C 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00510 808A1D10 AFA70020 */ sw $a3, 0x0020($sp)
/* 00514 808A1D14 8FA40024 */ lw $a0, 0x0024($sp)
/* 00518 808A1D18 AFA00010 */ sw $zero, 0x0010($sp)
/* 0051C 808A1D1C 24050C9E */ addiu $a1, $zero, 0x0C9E ## $a1 = 00000C9E
/* 00520 808A1D20 0C02003E */ jal func_800800F8
/* 00524 808A1D24 24060046 */ addiu $a2, $zero, 0x0046 ## $a2 = 00000046
/* 00528 808A1D28 8FA70020 */ lw $a3, 0x0020($sp)
/* 0052C 808A1D2C 8FA40024 */ lw $a0, 0x0024($sp)
/* 00530 808A1D30 240503FC */ addiu $a1, $zero, 0x03FC ## $a1 = 000003FC
/* 00534 808A1D34 2406000F */ addiu $a2, $zero, 0x000F ## $a2 = 0000000F
/* 00538 808A1D38 0C02003E */ jal func_800800F8
/* 0053C 808A1D3C AFA00010 */ sw $zero, 0x0010($sp)
/* 00540 808A1D40 8FBF001C */ lw $ra, 0x001C($sp)
/* 00544 808A1D44 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00548 808A1D48 03E00008 */ jr $ra
/* 0054C 808A1D4C 00000000 */ nop

View File

@ -1,54 +0,0 @@
.late_rodata
glabel D_808A23BC
.float 0.001
.text
glabel func_808A1D50
/* 00550 808A1D50 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00554 808A1D54 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00558 808A1D58 AFB00020 */ sw $s0, 0x0020($sp)
/* 0055C 808A1D5C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00560 808A1D60 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00564 808A1D64 AFA5002C */ sw $a1, 0x002C($sp)
/* 00568 808A1D68 3C063D4C */ lui $a2, 0x3D4C ## $a2 = 3D4C0000
/* 0056C 808A1D6C 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3D4CCCCD
/* 00570 808A1D70 3C054000 */ lui $a1, 0x4000 ## $a1 = 40000000
/* 00574 808A1D74 24840060 */ addiu $a0, $a0, 0x0060 ## $a0 = 00000060
/* 00578 808A1D78 3C073F80 */ lui $a3, 0x3F80 ## $a3 = 3F800000
/* 0057C 808A1D7C 0C228600 */ jal func_808A1800
/* 00580 808A1D80 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00584 808A1D84 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 00588 808A1D88 44813000 */ mtc1 $at, $f6 ## $f6 = 1.50
/* 0058C 808A1D8C 3C063DA3 */ lui $a2, 0x3DA3 ## $a2 = 3DA30000
/* 00590 808A1D90 8E070060 */ lw $a3, 0x0060($s0) ## 00000060
/* 00594 808A1D94 34C6D70A */ ori $a2, $a2, 0xD70A ## $a2 = 3DA3D70A
/* 00598 808A1D98 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028
/* 0059C 808A1D9C 3C054369 */ lui $a1, 0x4369 ## $a1 = 43690000
/* 005A0 808A1DA0 0C228600 */ jal func_808A1800
/* 005A4 808A1DA4 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 005A8 808A1DA8 3C01808A */ lui $at, %hi(D_808A23BC) ## $at = 808A0000
/* 005AC 808A1DAC C42823BC */ lwc1 $f8, %lo(D_808A23BC)($at)
/* 005B0 808A1DB0 46000086 */ mov.s $f2, $f0
/* 005B4 808A1DB4 46000005 */ abs.s $f0, $f0
/* 005B8 808A1DB8 4608003C */ c.lt.s $f0, $f8
/* 005BC 808A1DBC 00000000 */ nop
/* 005C0 808A1DC0 45020009 */ bc1fl .L808A1DE8
/* 005C4 808A1DC4 44051000 */ mfc1 $a1, $f2
/* 005C8 808A1DC8 0C228781 */ jal func_808A1E04
/* 005CC 808A1DCC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 005D0 808A1DD0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 005D4 808A1DD4 0C00BE0A */ jal Audio_PlayActorSound2
/* 005D8 808A1DD8 2405287A */ addiu $a1, $zero, 0x287A ## $a1 = 0000287A
/* 005DC 808A1DDC 10000005 */ beq $zero, $zero, .L808A1DF4
/* 005E0 808A1DE0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 005E4 808A1DE4 44051000 */ mfc1 $a1, $f2
.L808A1DE8:
/* 005E8 808A1DE8 0C22863F */ jal func_808A18FC
/* 005EC 808A1DEC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 005F0 808A1DF0 8FBF0024 */ lw $ra, 0x0024($sp)
.L808A1DF4:
/* 005F4 808A1DF4 8FB00020 */ lw $s0, 0x0020($sp)
/* 005F8 808A1DF8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 005FC 808A1DFC 03E00008 */ jr $ra
/* 00600 808A1E00 00000000 */ nop

View File

@ -1,5 +0,0 @@
glabel func_808A1E04
/* 00604 808A1E04 3C0E808A */ lui $t6, %hi(func_808A1E14) ## $t6 = 808A0000
/* 00608 808A1E08 25CE1E14 */ addiu $t6, $t6, %lo(func_808A1E14) ## $t6 = 808A1E14
/* 0060C 808A1E0C 03E00008 */ jr $ra
/* 00610 808A1E10 AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164

View File

@ -1,152 +0,0 @@
.rdata
glabel D_808A231C
.asciz "Error : 殿 obj elevator (%s %d)\n"
.balign 4
glabel D_808A2354
.asciz "../z_bg_mori_elevator.c"
.balign 4
.late_rodata
glabel D_808A23C0
.word 0xC442C000
glabel D_808A23C4
.word 0xC3898000
glabel D_808A23C8
.word 0xC3898000
glabel D_808A23CC
.word 0xC442C000
.text
glabel func_808A1E14
/* 00614 808A1E14 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00618 808A1E18 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0061C 808A1E1C AFA50024 */ sw $a1, 0x0024($sp)
/* 00620 808A1E20 0C2286C0 */ jal func_808A1B00
/* 00624 808A1E24 AFA40020 */ sw $a0, 0x0020($sp)
/* 00628 808A1E28 10400020 */ beq $v0, $zero, .L808A1EAC
/* 0062C 808A1E2C 8FA60020 */ lw $a2, 0x0020($sp)
/* 00630 808A1E30 8FAE0024 */ lw $t6, 0x0024($sp)
/* 00634 808A1E34 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000
/* 00638 808A1E38 24070002 */ addiu $a3, $zero, 0x0002 ## $a3 = 00000002
/* 0063C 808A1E3C 004E1021 */ addu $v0, $v0, $t6
/* 00640 808A1E40 80421CBC */ lb $v0, 0x1CBC($v0) ## 00011CBC
/* 00644 808A1E44 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
/* 00648 808A1E48 14E20008 */ bne $a3, $v0, .L808A1E6C
/* 0064C 808A1E4C 00000000 */ nop
/* 00650 808A1E50 3C01808A */ lui $at, %hi(D_808A23C0) ## $at = 808A0000
/* 00654 808A1E54 C42423C0 */ lwc1 $f4, %lo(D_808A23C0)($at)
/* 00658 808A1E58 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0065C 808A1E5C 0C2287FC */ jal func_808A1FF0
/* 00660 808A1E60 E4C40168 */ swc1 $f4, 0x0168($a2) ## 00000168
/* 00664 808A1E64 1000005F */ beq $zero, $zero, .L808A1FE4
/* 00668 808A1E68 8FBF0014 */ lw $ra, 0x0014($sp)
.L808A1E6C:
/* 0066C 808A1E6C 14410008 */ bne $v0, $at, .L808A1E90
/* 00670 808A1E70 3C04808A */ lui $a0, %hi(D_808A231C) ## $a0 = 808A0000
/* 00674 808A1E74 3C014369 */ lui $at, 0x4369 ## $at = 43690000
/* 00678 808A1E78 44813000 */ mtc1 $at, $f6 ## $f6 = 233.00
/* 0067C 808A1E7C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00680 808A1E80 0C2287FC */ jal func_808A1FF0
/* 00684 808A1E84 E4C60168 */ swc1 $f6, 0x0168($a2) ## 00000168
/* 00688 808A1E88 10000056 */ beq $zero, $zero, .L808A1FE4
/* 0068C 808A1E8C 8FBF0014 */ lw $ra, 0x0014($sp)
.L808A1E90:
/* 00690 808A1E90 3C05808A */ lui $a1, %hi(D_808A2354) ## $a1 = 808A0000
/* 00694 808A1E94 24A52354 */ addiu $a1, $a1, %lo(D_808A2354) ## $a1 = 808A2354
/* 00698 808A1E98 2484231C */ addiu $a0, $a0, %lo(D_808A231C) ## $a0 = 0000231C
/* 0069C 808A1E9C 0C00084C */ jal osSyncPrintf
/* 006A0 808A1EA0 240601DF */ addiu $a2, $zero, 0x01DF ## $a2 = 000001DF
/* 006A4 808A1EA4 1000004F */ beq $zero, $zero, .L808A1FE4
/* 006A8 808A1EA8 8FBF0014 */ lw $ra, 0x0014($sp)
.L808A1EAC:
/* 006AC 808A1EAC 8FA40024 */ lw $a0, 0x0024($sp)
/* 006B0 808A1EB0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 006B4 808A1EB4 24070002 */ addiu $a3, $zero, 0x0002 ## $a3 = 00000002
/* 006B8 808A1EB8 00811821 */ addu $v1, $a0, $at
/* 006BC 808A1EBC 80621CBC */ lb $v0, 0x1CBC($v1) ## 00001CBC
/* 006C0 808A1EC0 3C01808A */ lui $at, %hi(D_808A23C4) ## $at = 808A0000
/* 006C4 808A1EC4 54E2000F */ bnel $a3, $v0, .L808A1F04
/* 006C8 808A1EC8 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
/* 006CC 808A1ECC C4C80028 */ lwc1 $f8, 0x0028($a2) ## 00000028
/* 006D0 808A1ED0 C42A23C4 */ lwc1 $f10, %lo(D_808A23C4)($at)
/* 006D4 808A1ED4 3C014369 */ lui $at, 0x4369 ## $at = 43690000
/* 006D8 808A1ED8 460A403C */ c.lt.s $f8, $f10
/* 006DC 808A1EDC 00000000 */ nop
/* 006E0 808A1EE0 45020008 */ bc1fl .L808A1F04
/* 006E4 808A1EE4 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
/* 006E8 808A1EE8 44818000 */ mtc1 $at, $f16 ## $f16 = 0.00
/* 006EC 808A1EEC 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 006F0 808A1EF0 0C2287FC */ jal func_808A1FF0
/* 006F4 808A1EF4 E4D00168 */ swc1 $f16, 0x0168($a2) ## 00000168
/* 006F8 808A1EF8 1000003A */ beq $zero, $zero, .L808A1FE4
/* 006FC 808A1EFC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00700 808A1F00 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
.L808A1F04:
/* 00704 808A1F04 1441000E */ bne $v0, $at, .L808A1F40
/* 00708 808A1F08 3C01808A */ lui $at, %hi(D_808A23C8) ## $at = 808A0000
/* 0070C 808A1F0C C43223C8 */ lwc1 $f18, %lo(D_808A23C8)($at)
/* 00710 808A1F10 C4C40028 */ lwc1 $f4, 0x0028($a2) ## 00000028
/* 00714 808A1F14 3C01808A */ lui $at, %hi(D_808A23CC) ## $at = 808A0000
/* 00718 808A1F18 4604903C */ c.lt.s $f18, $f4
/* 0071C 808A1F1C 00000000 */ nop
/* 00720 808A1F20 45000007 */ bc1f .L808A1F40
/* 00724 808A1F24 00000000 */ nop
/* 00728 808A1F28 C42623CC */ lwc1 $f6, %lo(D_808A23CC)($at)
/* 0072C 808A1F2C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00730 808A1F30 0C2287FC */ jal func_808A1FF0
/* 00734 808A1F34 E4C60168 */ swc1 $f6, 0x0168($a2) ## 00000168
/* 00738 808A1F38 1000002A */ beq $zero, $zero, .L808A1FE4
/* 0073C 808A1F3C 8FBF0014 */ lw $ra, 0x0014($sp)
.L808A1F40:
/* 00740 808A1F40 54E20015 */ bnel $a3, $v0, .L808A1F98
/* 00744 808A1F44 80781CBC */ lb $t8, 0x1CBC($v1) ## 00001CBC
/* 00748 808A1F48 84C5001C */ lh $a1, 0x001C($a2) ## 0000001C
/* 0074C 808A1F4C AFA60020 */ sw $a2, 0x0020($sp)
/* 00750 808A1F50 AFA30018 */ sw $v1, 0x0018($sp)
/* 00754 808A1F54 0C00B2D0 */ jal Flags_GetSwitch
/* 00758 808A1F58 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 0075C 808A1F5C 8FA30018 */ lw $v1, 0x0018($sp)
/* 00760 808A1F60 8FA60020 */ lw $a2, 0x0020($sp)
/* 00764 808A1F64 1040000B */ beq $v0, $zero, .L808A1F94
/* 00768 808A1F68 24070002 */ addiu $a3, $zero, 0x0002 ## $a3 = 00000002
/* 0076C 808A1F6C 8CCF016C */ lw $t7, 0x016C($a2) ## 0000016C
/* 00770 808A1F70 3C014292 */ lui $at, 0x4292 ## $at = 42920000
/* 00774 808A1F74 55E00008 */ bnel $t7, $zero, .L808A1F98
/* 00778 808A1F78 80781CBC */ lb $t8, 0x1CBC($v1) ## 00001CBC
/* 0077C 808A1F7C 44814000 */ mtc1 $at, $f8 ## $f8 = 73.00
/* 00780 808A1F80 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00784 808A1F84 0C22870C */ jal func_808A1C30
/* 00788 808A1F88 E4C80168 */ swc1 $f8, 0x0168($a2) ## 00000168
/* 0078C 808A1F8C 10000015 */ beq $zero, $zero, .L808A1FE4
/* 00790 808A1F90 8FBF0014 */ lw $ra, 0x0014($sp)
.L808A1F94:
/* 00794 808A1F94 80781CBC */ lb $t8, 0x1CBC($v1) ## 00001CBC
.L808A1F98:
/* 00798 808A1F98 8FA40024 */ lw $a0, 0x0024($sp)
/* 0079C 808A1F9C 54F80011 */ bnel $a3, $t8, .L808A1FE4
/* 007A0 808A1FA0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 007A4 808A1FA4 84C5001C */ lh $a1, 0x001C($a2) ## 0000001C
/* 007A8 808A1FA8 AFA60020 */ sw $a2, 0x0020($sp)
/* 007AC 808A1FAC 0C00B2D0 */ jal Flags_GetSwitch
/* 007B0 808A1FB0 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 007B4 808A1FB4 1440000A */ bne $v0, $zero, .L808A1FE0
/* 007B8 808A1FB8 8FA60020 */ lw $a2, 0x0020($sp)
/* 007BC 808A1FBC 8CD9016C */ lw $t9, 0x016C($a2) ## 0000016C
/* 007C0 808A1FC0 3C014369 */ lui $at, 0x4369 ## $at = 43690000
/* 007C4 808A1FC4 53200007 */ beql $t9, $zero, .L808A1FE4
/* 007C8 808A1FC8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 007CC 808A1FCC 44815000 */ mtc1 $at, $f10 ## $f10 = 233.00
/* 007D0 808A1FD0 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 007D4 808A1FD4 E4CA0168 */ swc1 $f10, 0x0168($a2) ## 00000168
/* 007D8 808A1FD8 0C22873D */ jal func_808A1CF4
/* 007DC 808A1FDC 8FA50024 */ lw $a1, 0x0024($sp)
.L808A1FE0:
/* 007E0 808A1FE0 8FBF0014 */ lw $ra, 0x0014($sp)
.L808A1FE4:
/* 007E4 808A1FE4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 007E8 808A1FE8 03E00008 */ jr $ra
/* 007EC 808A1FEC 00000000 */ nop

View File

@ -1,7 +0,0 @@
glabel func_808A1FF0
/* 007F0 808A1FF0 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 007F4 808A1FF4 3C0E808A */ lui $t6, %hi(func_808A2008) ## $t6 = 808A0000
/* 007F8 808A1FF8 25CE2008 */ addiu $t6, $t6, %lo(func_808A2008) ## $t6 = 808A2008
/* 007FC 808A1FFC AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164
/* 00800 808A2000 03E00008 */ jr $ra
/* 00804 808A2004 E4840060 */ swc1 $f4, 0x0060($a0) ## 00000060

View File

@ -1,57 +0,0 @@
.late_rodata
glabel D_808A23D0
.float 0.3
glabel D_808A23D4
.float 0.001
.text
glabel func_808A2008
/* 00808 808A2008 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 0080C 808A200C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00810 808A2010 AFB00020 */ sw $s0, 0x0020($sp)
/* 00814 808A2014 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00818 808A2018 AFBF0024 */ sw $ra, 0x0024($sp)
/* 0081C 808A201C AFA5002C */ sw $a1, 0x002C($sp)
/* 00820 808A2020 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000
/* 00824 808A2024 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD
/* 00828 808A2028 3C054140 */ lui $a1, 0x4140 ## $a1 = 41400000
/* 0082C 808A202C 24840060 */ addiu $a0, $a0, 0x0060 ## $a0 = 00000060
/* 00830 808A2030 3C073F80 */ lui $a3, 0x3F80 ## $a3 = 3F800000
/* 00834 808A2034 0C228600 */ jal func_808A1800
/* 00838 808A2038 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 0083C 808A203C 3C01808A */ lui $at, %hi(D_808A23D0) ## $at = 808A0000
/* 00840 808A2040 C42623D0 */ lwc1 $f6, %lo(D_808A23D0)($at)
/* 00844 808A2044 8E050168 */ lw $a1, 0x0168($s0) ## 00000168
/* 00848 808A2048 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000
/* 0084C 808A204C 8E070060 */ lw $a3, 0x0060($s0) ## 00000060
/* 00850 808A2050 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD
/* 00854 808A2054 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028
/* 00858 808A2058 0C228600 */ jal func_808A1800
/* 0085C 808A205C E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00860 808A2060 3C01808A */ lui $at, %hi(D_808A23D4) ## $at = 808A0000
/* 00864 808A2064 C42823D4 */ lwc1 $f8, %lo(D_808A23D4)($at)
/* 00868 808A2068 46000086 */ mov.s $f2, $f0
/* 0086C 808A206C 46000005 */ abs.s $f0, $f0
/* 00870 808A2070 4608003C */ c.lt.s $f0, $f8
/* 00874 808A2074 00000000 */ nop
/* 00878 808A2078 45020009 */ bc1fl .L808A20A0
/* 0087C 808A207C 44051000 */ mfc1 $a1, $f2
/* 00880 808A2080 0C228781 */ jal func_808A1E04
/* 00884 808A2084 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00888 808A2088 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0088C 808A208C 0C00BE0A */ jal Audio_PlayActorSound2
/* 00890 808A2090 2405287A */ addiu $a1, $zero, 0x287A ## $a1 = 0000287A
/* 00894 808A2094 10000005 */ beq $zero, $zero, .L808A20AC
/* 00898 808A2098 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0089C 808A209C 44051000 */ mfc1 $a1, $f2
.L808A20A0:
/* 008A0 808A20A0 0C22863F */ jal func_808A18FC
/* 008A4 808A20A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008A8 808A20A8 8FBF0024 */ lw $ra, 0x0024($sp)
.L808A20AC:
/* 008AC 808A20AC 8FB00020 */ lw $s0, 0x0020($sp)
/* 008B0 808A20B0 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 008B4 808A20B4 03E00008 */ jr $ra
/* 008B8 808A20B8 00000000 */ nop

View File

@ -1,80 +0,0 @@
.rdata
glabel D_808A236C
.asciz "../z_bg_mori_elevator.c"
.balign 4
glabel D_808A2384
.asciz "../z_bg_mori_elevator.c"
.balign 4
glabel D_808A239C
.asciz "../z_bg_mori_elevator.c"
.balign 4
.text
glabel func_808A210C
/* 0090C 808A210C 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 00910 808A2110 AFB10018 */ sw $s1, 0x0018($sp)
/* 00914 808A2114 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00918 808A2118 AFBF001C */ sw $ra, 0x001C($sp)
/* 0091C 808A211C AFB00014 */ sw $s0, 0x0014($sp)
/* 00920 808A2120 AFA40050 */ sw $a0, 0x0050($sp)
/* 00924 808A2124 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00928 808A2128 3C06808A */ lui $a2, %hi(D_808A236C) ## $a2 = 808A0000
/* 0092C 808A212C 24C6236C */ addiu $a2, $a2, %lo(D_808A236C) ## $a2 = 808A236C
/* 00930 808A2130 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4
/* 00934 808A2134 2407023F */ addiu $a3, $zero, 0x023F ## $a3 = 0000023F
/* 00938 808A2138 0C031AB1 */ jal Graph_OpenDisps
/* 0093C 808A213C 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00940 808A2140 0C024F46 */ jal func_80093D18
/* 00944 808A2144 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00948 808A2148 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 0094C 808A214C 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
/* 00950 808A2150 35EF0020 */ ori $t7, $t7, 0x0020 ## $t7 = DB060020
/* 00954 808A2154 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00958 808A2158 AE0E02C0 */ sw $t6, 0x02C0($s0) ## 000002C0
/* 0095C 808A215C AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00960 808A2160 8FB80050 */ lw $t8, 0x0050($sp)
/* 00964 808A2164 3C0A0001 */ lui $t2, 0x0001 ## $t2 = 00010000
/* 00968 808A2168 3C0CDA38 */ lui $t4, 0xDA38 ## $t4 = DA380000
/* 0096C 808A216C 83190171 */ lb $t9, 0x0171($t8) ## 00000171
/* 00970 808A2170 358C0003 */ ori $t4, $t4, 0x0003 ## $t4 = DA380003
/* 00974 808A2174 3C05808A */ lui $a1, %hi(D_808A2384) ## $a1 = 808A0000
/* 00978 808A2178 00194100 */ sll $t0, $t9, 4
/* 0097C 808A217C 01194021 */ addu $t0, $t0, $t9
/* 00980 808A2180 00084080 */ sll $t0, $t0, 2
/* 00984 808A2184 02284821 */ addu $t1, $s1, $t0
/* 00988 808A2188 01495021 */ addu $t2, $t2, $t1
/* 0098C 808A218C 8D4A17B4 */ lw $t2, 0x17B4($t2) ## 000117B4
/* 00990 808A2190 24A52384 */ addiu $a1, $a1, %lo(D_808A2384) ## $a1 = 808A2384
/* 00994 808A2194 24060244 */ addiu $a2, $zero, 0x0244 ## $a2 = 00000244
/* 00998 808A2198 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 0099C 808A219C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 009A0 808A21A0 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 009A4 808A21A4 AE0B02C0 */ sw $t3, 0x02C0($s0) ## 000002C0
/* 009A8 808A21A8 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 009AC 808A21AC 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 009B0 808A21B0 0C0346A2 */ jal Matrix_NewMtx
/* 009B4 808A21B4 AFA2002C */ sw $v0, 0x002C($sp)
/* 009B8 808A21B8 8FA3002C */ lw $v1, 0x002C($sp)
/* 009BC 808A21BC 3C0F0600 */ lui $t7, 0x0600 ## $t7 = 06000000
/* 009C0 808A21C0 25EF2AD0 */ addiu $t7, $t7, 0x2AD0 ## $t7 = 06002AD0
/* 009C4 808A21C4 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 009C8 808A21C8 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 009CC 808A21CC 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000
/* 009D0 808A21D0 3C06808A */ lui $a2, %hi(D_808A239C) ## $a2 = 808A0000
/* 009D4 808A21D4 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 009D8 808A21D8 AE0D02C0 */ sw $t5, 0x02C0($s0) ## 000002C0
/* 009DC 808A21DC AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 009E0 808A21E0 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 009E4 808A21E4 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 009E8 808A21E8 24C6239C */ addiu $a2, $a2, %lo(D_808A239C) ## $a2 = 808A239C
/* 009EC 808A21EC 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4
/* 009F0 808A21F0 0C031AD5 */ jal Graph_CloseDisps
/* 009F4 808A21F4 24070248 */ addiu $a3, $zero, 0x0248 ## $a3 = 00000248
/* 009F8 808A21F8 8FBF001C */ lw $ra, 0x001C($sp)
/* 009FC 808A21FC 8FB00014 */ lw $s0, 0x0014($sp)
/* 00A00 808A2200 8FB10018 */ lw $s1, 0x0018($sp)
/* 00A04 808A2204 03E00008 */ jr $ra
/* 00A08 808A2208 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 00A0C 808A220C 00000000 */ nop

View File

@ -1,22 +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 D_808A2210
.word 0x00000000
glabel Bg_Mori_Elevator_InitVars
.word 0x00870100, 0x00000010, 0x00720000, 0x00000174
.word BgMoriElevator_Init
.word BgMoriElevator_Destroy
.word BgMoriElevator_Update
.word 0x00000000
glabel D_808A2234
.word 0xB0F407D0, 0xB0F801F4, 0xB0FC0BB8, 0x485003E8, 0x00000000, 0x00000000, 0x00000000

View File

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

3
spec
View File

@ -1120,8 +1120,7 @@ endseg
beginseg
name "ovl_Bg_Mori_Elevator"
include "build/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.o"
include "build/data/overlays/actors/z_bg_mori_elevator.data.o"
include "build/data/overlays/actors/z_bg_mori_elevator.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Mori_Elevator/ovl_Bg_Mori_Elevator_reloc.o"
endseg
beginseg

View File

@ -8,7 +8,18 @@ void BgMoriElevator_Init(Actor* thisx, GlobalContext* globalCtx);
void BgMoriElevator_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgMoriElevator_Update(Actor* thisx, GlobalContext* globalCtx);
/*
void BgMoriElevator_SetupWaitAfterInit(BgMoriElevator* this);
void BgMoriElevator_WaitAfterInit(BgMoriElevator* this, GlobalContext* globalCtx);
void BgMoriElevator_SetupSetPosition(BgMoriElevator* this);
void BgMoriElevator_SetPosition(BgMoriElevator* this, GlobalContext* globalCtx);
void BgMoriElevator_Draw(Actor* thisx, GlobalContext* globalCtx);
void BgMoriElevator_StopMovement(BgMoriElevator* this);
void func_808A2008(BgMoriElevator* this, GlobalContext* globalCtx);
void BgMoriElevator_MoveIntoGround(BgMoriElevator* this, GlobalContext* globalCtx);
void BgMoriElevator_MoveAboveGround(BgMoriElevator* this, GlobalContext* globalCtx);
static s16 sIsSpawned = 0;
const ActorInit Bg_Mori_Elevator_InitVars = {
ACTOR_BG_MORI_ELEVATOR,
ACTORTYPE_BG,
@ -20,37 +31,239 @@ const ActorInit Bg_Mori_Elevator_InitVars = {
(ActorFunc)BgMoriElevator_Update,
NULL,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1800.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A18FC.s")
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 3000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/BgMoriElevator_Init.s")
extern UNK_TYPE D_060035F8;
extern Gfx D_06002AD0[];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/BgMoriElevator_Destroy.s")
f32 func_808A1800(f32* pValue, f32 target, f32 scale, f32 maxStep, f32 minStep) {
f32 var = (target - *pValue) * scale;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1B00.s")
if (*pValue < target) {
if (maxStep < var) {
var = maxStep;
} else {
if (var < minStep) {
var = minStep;
}
}
*pValue = (*pValue + var);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1B60.s")
if (target < *pValue) {
*pValue = target;
}
} else {
if (target < *pValue) {
if (var < (-maxStep)) {
var = (-maxStep);
} else {
if ((-minStep) < var) {
var = (-minStep);
}
}
*pValue = (*pValue + var);
if (*pValue < target) {
*pValue = target;
}
} else {
var = 0.0f;
}
}
return var;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1B70.s")
void func_808A18FC(BgMoriElevator* this, f32 distTo) {
f32 temp;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1C30.s")
temp = fabsf(distTo) * 0.09f;
func_800F436C(&this->dyna.actor.projectedPos, NA_SE_EV_ELEVATOR_MOVE2 - SFX_FLAG, CLAMP(temp, 0.0f, 1.0f));
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1C40.s")
void BgMoriElevator_Init(Actor* thisx, GlobalContext* globalCtx) {
BgMoriElevator* this = THIS;
s32 pad;
s32 localConst;
localConst = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1CF4.s")
this->unk_172 = sIsSpawned;
this->moriTexObjIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_MORI_TEX);
if (this->moriTexObjIndex < 0) {
Actor_Kill(thisx);
// Forest Temple obj elevator Bank Danger!
osSyncPrintf("Error : 森の神殿 obj elevator バンク危険!(%s %d)\n", "../z_bg_mori_elevator.c", 277);
} else {
switch (sIsSpawned) {
case 0:
// Forest Temple elevator CT
osSyncPrintf("森の神殿 elevator CT\n");
sIsSpawned = 1;
this->dyna.actor.room = -1;
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
DynaPolyInfo_SetActorMove(&this->dyna, DPM_PLAYER);
DynaPolyInfo_Alloc(&D_060035F8, &localConst);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, thisx, localConst);
BgMoriElevator_SetupWaitAfterInit(this);
break;
case 1:
Actor_Kill(thisx);
break;
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1D50.s")
void BgMoriElevator_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgMoriElevator* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1E04.s")
if (this->unk_172 == 0) {
// Forest Temple elevator DT
osSyncPrintf("森の神殿 elevator DT\n");
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
sIsSpawned = 0;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1E14.s")
s32 BgMoriElevator_IsPlayerRiding(BgMoriElevator* this, GlobalContext* globalCtx) {
return ((this->dyna.unk_160 & 2) && !(this->unk_170 & 2) &&
((PLAYER->actor.posRot.pos.y - this->dyna.actor.posRot.pos.y) < 80.0f));
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A1FF0.s")
void BgMoriElevator_SetupWaitAfterInit(BgMoriElevator* this) {
this->actionFunc = BgMoriElevator_WaitAfterInit;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A2008.s")
void BgMoriElevator_WaitAfterInit(BgMoriElevator* this, GlobalContext* globalCtx) {
if (Object_IsLoaded(&globalCtx->objectCtx, this->moriTexObjIndex)) {
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F)) {
if (globalCtx->roomCtx.curRoom.num == 2) {
this->dyna.actor.posRot.pos.y = 73.0f;
BgMoriElevator_SetupSetPosition(this);
} else {
// Error: Forest Temple obj elevator Room setting is dangerous
osSyncPrintf("Error : 森の神殿 obj elevator 部屋設定が危険(%s %d)\n", "../z_bg_mori_elevator.c", 371);
}
} else {
BgMoriElevator_SetupSetPosition(this);
}
this->dyna.actor.draw = BgMoriElevator_Draw;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/BgMoriElevator_Update.s")
void func_808A1C30(BgMoriElevator* this) {
this->actionFunc = BgMoriElevator_MoveIntoGround;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Elevator/func_808A210C.s")
void BgMoriElevator_MoveIntoGround(BgMoriElevator* this, GlobalContext* globalCtx) {
f32 distToTarget;
func_808A1800(&this->dyna.actor.velocity.y, 2.0f, 0.05f, 1.0f, 0.0f);
distToTarget = func_808A1800(&this->dyna.actor.posRot.pos.y, 73.0f, 0.08f, this->dyna.actor.velocity.y, 1.5f);
if (fabsf(distToTarget) < 0.001f) {
BgMoriElevator_SetupSetPosition(this);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_ELEVATOR_STOP);
} else {
func_808A18FC(this, distToTarget);
}
}
void func_808A1CF4(BgMoriElevator* this, GlobalContext* globalCtx) {
this->actionFunc = BgMoriElevator_MoveAboveGround;
func_800800F8(globalCtx, 0xC9E, 0x46, &this->dyna.actor, 0);
func_800800F8(globalCtx, 0x3FC, 0xF, &this->dyna.actor, 0);
}
void BgMoriElevator_MoveAboveGround(BgMoriElevator* this, GlobalContext* globalCtx) {
f32 distToTarget;
func_808A1800(&this->dyna.actor.velocity.y, 2.0f, 0.05f, 1.0f, 0.0f);
distToTarget = func_808A1800(&this->dyna.actor.posRot.pos.y, 233.0f, 0.08f, this->dyna.actor.velocity.y, 1.5f);
if (fabsf(distToTarget) < 0.001f) {
BgMoriElevator_SetupSetPosition(this);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_ELEVATOR_STOP);
} else {
func_808A18FC(this, distToTarget);
}
}
void BgMoriElevator_SetupSetPosition(BgMoriElevator* this) {
this->actionFunc = BgMoriElevator_SetPosition;
}
void BgMoriElevator_SetPosition(BgMoriElevator* this, GlobalContext* globalCtx) {
s32 pad;
if (BgMoriElevator_IsPlayerRiding(this, globalCtx)) {
if (globalCtx->roomCtx.curRoom.num == 2) {
this->targetY = -779.0f;
BgMoriElevator_StopMovement(this);
} else if (globalCtx->roomCtx.curRoom.num == 17) {
this->targetY = 233.0f;
BgMoriElevator_StopMovement(this);
} else {
// Error:Forest Temple obj elevator Room setting is dangerous(% s % d)
osSyncPrintf("Error : 森の神殿 obj elevator 部屋設定が危険(%s %d)\n", "../z_bg_mori_elevator.c", 479);
}
} else if ((globalCtx->roomCtx.curRoom.num == 2) && (this->dyna.actor.posRot.pos.y < -275.0f)) {
this->targetY = 233.0f;
BgMoriElevator_StopMovement(this);
} else if ((globalCtx->roomCtx.curRoom.num == 17) && (-275.0f < this->dyna.actor.posRot.pos.y)) {
this->targetY = -779.0f;
BgMoriElevator_StopMovement(this);
} else if ((globalCtx->roomCtx.curRoom.num == 2) && Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F) &&
(this->unk_16C == 0)) {
this->targetY = 73.0f;
func_808A1C30(this);
} else if ((globalCtx->roomCtx.curRoom.num == 2) && !Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F) &&
(this->unk_16C != 0)) {
this->targetY = 233.0f;
func_808A1CF4(this, globalCtx);
}
}
void BgMoriElevator_StopMovement(BgMoriElevator* this) {
this->actionFunc = func_808A2008;
this->dyna.actor.velocity.y = 0.0f;
}
void func_808A2008(BgMoriElevator* this, GlobalContext* globalCtx) {
f32 distTo;
func_808A1800(&this->dyna.actor.velocity.y, 12.0f, 0.1f, 1.0f, 0.0f);
distTo = func_808A1800(&this->dyna.actor.posRot.pos.y, this->targetY, 0.1f, this->dyna.actor.velocity.y, 0.3f);
if (fabsf(distTo) < 0.001f) {
BgMoriElevator_SetupSetPosition(this);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_ELEVATOR_STOP);
} else {
func_808A18FC(this, distTo);
}
}
void BgMoriElevator_Update(Actor* thisx, GlobalContext* globalCtx) {
BgMoriElevator* this = THIS;
this->actionFunc(this, globalCtx);
this->unk_170 = this->dyna.unk_160;
this->unk_16C = Flags_GetSwitch(globalCtx, (thisx->params & 0x3F));
}
void BgMoriElevator_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgMoriElevator* this = THIS;
GraphicsContext* gfxCtx;
Gfx* dispRefs[4];
gfxCtx = globalCtx->state.gfxCtx;
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_mori_elevator.c", 575);
func_80093D18(globalCtx->state.gfxCtx);
gSPSegment(gfxCtx->polyOpa.p++, 0x08, globalCtx->objectCtx.status[this->moriTexObjIndex].segment);
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_mori_elevator.c", 580),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyOpa.p++, D_06002AD0);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_mori_elevator.c", 584);
}

View File

@ -6,9 +6,16 @@
struct BgMoriElevator;
typedef void (*BgMoriElevatorActionFunc)(struct BgMoriElevator*, struct GlobalCtx*);
typedef struct BgMoriElevator {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x28];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgMoriElevatorActionFunc actionFunc;
/* 0x0168 */ f32 targetY;
/* 0x016C */ s32 unk_16C;
/* 0x0170 */ u8 unk_170;
/* 0x0171 */ s8 moriTexObjIndex;
/* 0x0172 */ s16 unk_172;
} BgMoriElevator; // size = 0x0174
extern const ActorInit Bg_Mori_Elevator_InitVars;

View File

@ -242,6 +242,10 @@ D_06003C64 = 0x06003C64;
// z_bg_mizu_uzu
D_060074EC = 0x060074EC;
// z_bg_mori_elevator
D_060035F8 = 0x060035F8;
D_06002AD0 = 0x06002AD0;
// z_bg_spot07_taki
D_060038FC = 0x060038FC;
D_06002590 = 0x06002590;