mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-27 04:10:30 +00:00
BgSpot08Iceblock OK, some documentation (#641)
* OK, spec * all functions and variables named, some docs on the complicated function * delete asm * updated to reflect Actor changes * simplify one thing into a ternary * Address review comments
This commit is contained in:
parent
7eaf57be59
commit
ced724fb9b
@ -1,14 +0,0 @@
|
||||
glabel BgSpot08Iceblock_Destroy
|
||||
/* 009F8 808B1358 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 009FC 808B135C AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 00A00 808B1360 8FAE0018 */ lw $t6, 0x0018($sp)
|
||||
/* 00A04 808B1364 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00A08 808B1368 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00A0C 808B136C 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
|
||||
/* 00A10 808B1370 0C00FB56 */ jal DynaPoly_DeleteBgActor
|
||||
## DynaPoly_DeleteBgActor
|
||||
/* 00A14 808B1374 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
|
||||
/* 00A18 808B1378 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00A1C 808B137C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00A20 808B1380 03E00008 */ jr $ra
|
||||
/* 00A24 808B1384 00000000 */ nop
|
@ -1,30 +0,0 @@
|
||||
glabel BgSpot08Iceblock_Draw
|
||||
/* 00CCC 808B162C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00CD0 808B1630 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00CD4 808B1634 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
|
||||
/* 00CD8 808B1638 00A03025 */ or $a2, $a1, $zero ## $a2 = 00000000
|
||||
/* 00CDC 808B163C 3C0E0600 */ lui $t6, %hi(D_06002BD0) ## $t6 = 06000000
|
||||
/* 00CE0 808B1640 30420200 */ andi $v0, $v0, 0x0200 ## $v0 = 00000000
|
||||
/* 00CE4 808B1644 10400006 */ beq $v0, $zero, .L808B1660
|
||||
/* 00CE8 808B1648 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
|
||||
/* 00CEC 808B164C 24010200 */ addiu $at, $zero, 0x0200 ## $at = 00000200
|
||||
/* 00CF0 808B1650 10410006 */ beq $v0, $at, .L808B166C
|
||||
/* 00CF4 808B1654 3C0F0600 */ lui $t7, %hi(D_06000DE0) ## $t7 = 06000000
|
||||
/* 00CF8 808B1658 10000006 */ beq $zero, $zero, .L808B1674
|
||||
/* 00CFC 808B165C 00000000 */ nop
|
||||
.L808B1660:
|
||||
/* 00D00 808B1660 25CE2BD0 */ addiu $t6, $t6, %lo(D_06002BD0) ## $t6 = 06002BD0
|
||||
/* 00D04 808B1664 10000003 */ beq $zero, $zero, .L808B1674
|
||||
/* 00D08 808B1668 AFAE001C */ sw $t6, 0x001C($sp)
|
||||
.L808B166C:
|
||||
/* 00D0C 808B166C 25EF0DE0 */ addiu $t7, $t7, %lo(D_06000DE0) ## $t7 = 06000DE0
|
||||
/* 00D10 808B1670 AFAF001C */ sw $t7, 0x001C($sp)
|
||||
.L808B1674:
|
||||
/* 00D14 808B1674 0C00D498 */ jal Gfx_DrawDListOpa
|
||||
|
||||
/* 00D18 808B1678 8FA5001C */ lw $a1, 0x001C($sp)
|
||||
/* 00D1C 808B167C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00D20 808B1680 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 00D24 808B1684 03E00008 */ jr $ra
|
||||
/* 00D28 808B1688 00000000 */ nop
|
||||
/* 00D2C 808B168C 00000000 */ nop
|
@ -1,179 +0,0 @@
|
||||
.rdata
|
||||
|
||||
glabel D_808B17C4
|
||||
.asciz "(spot08 流氷)(arg_data 0x%04x)\n"
|
||||
.balign 4
|
||||
|
||||
.late_rodata
|
||||
|
||||
glabel D_808B1890
|
||||
.float 65535.5
|
||||
|
||||
glabel D_808B1894
|
||||
.float 65535.5
|
||||
|
||||
glabel jtbl_808B1898
|
||||
.word L808B1308
|
||||
.word L808B1308
|
||||
.word L808B1318
|
||||
.word L808B1328
|
||||
.word L808B133C
|
||||
|
||||
.text
|
||||
glabel BgSpot08Iceblock_Init
|
||||
/* 007F4 808B1154 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 007F8 808B1158 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 007FC 808B115C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00800 808B1160 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00804 808B1164 AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00808 808B1168 3C04808B */ lui $a0, %hi(D_808B17C4) ## $a0 = 808B0000
|
||||
/* 0080C 808B116C 248417C4 */ addiu $a0, $a0, %lo(D_808B17C4) ## $a0 = 808B17C4
|
||||
/* 00810 808B1170 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 00814 808B1174 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
||||
/* 00818 808B1178 0C22C27C */ jal func_808B09F0
|
||||
/* 0081C 808B117C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00820 808B1180 8603001C */ lh $v1, 0x001C($s0) ## 0000001C
|
||||
/* 00824 808B1184 24010200 */ addiu $at, $zero, 0x0200 ## $at = 00000200
|
||||
/* 00828 808B1188 3C060600 */ lui $a2, %hi(D_06002FD8) ## $a2 = 06000000
|
||||
/* 0082C 808B118C 30620200 */ andi $v0, $v1, 0x0200 ## $v0 = 00000000
|
||||
/* 00830 808B1190 10400005 */ beq $v0, $zero, .L808B11A8
|
||||
/* 00834 808B1194 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00838 808B1198 10410005 */ beq $v0, $at, .L808B11B0
|
||||
/* 0083C 808B119C 3C060600 */ lui $a2, %hi(D_06001904) ## $a2 = 06000000
|
||||
/* 00840 808B11A0 10000004 */ beq $zero, $zero, .L808B11B4
|
||||
/* 00844 808B11A4 8FA60020 */ lw $a2, 0x0020($sp)
|
||||
.L808B11A8:
|
||||
/* 00848 808B11A8 10000002 */ beq $zero, $zero, .L808B11B4
|
||||
/* 0084C 808B11AC 24C62FD8 */ addiu $a2, $a2, %lo(D_06002FD8) ## $a2 = 06002FD8
|
||||
.L808B11B0:
|
||||
/* 00850 808B11B0 24C61904 */ addiu $a2, $a2, %lo(D_06001904) ## $a2 = 06001904
|
||||
.L808B11B4:
|
||||
/* 00854 808B11B4 3062000F */ andi $v0, $v1, 0x000F ## $v0 = 00000000
|
||||
/* 00858 808B11B8 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
|
||||
/* 0085C 808B11BC 10410004 */ beq $v0, $at, .L808B11D0
|
||||
/* 00860 808B11C0 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 00864 808B11C4 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
|
||||
/* 00868 808B11C8 14410005 */ bne $v0, $at, .L808B11E0
|
||||
/* 0086C 808B11CC 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
.L808B11D0:
|
||||
/* 00870 808B11D0 0C22C25A */ jal func_808B0968
|
||||
/* 00874 808B11D4 24070003 */ addiu $a3, $zero, 0x0003 ## $a3 = 00000003
|
||||
/* 00878 808B11D8 10000004 */ beq $zero, $zero, .L808B11EC
|
||||
/* 0087C 808B11DC 00000000 */ nop
|
||||
.L808B11E0:
|
||||
/* 00880 808B11E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00884 808B11E4 0C22C25A */ jal func_808B0968
|
||||
/* 00888 808B11E8 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
.L808B11EC:
|
||||
/* 0088C 808B11EC 3C0E8016 */ lui $t6, %hi(gSaveContext+4)
|
||||
/* 00890 808B11F0 8DCEE664 */ lw $t6, %lo(gSaveContext+4)($t6)
|
||||
/* 00894 808B11F4 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
|
||||
/* 00898 808B11F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0089C 808B11FC 11C00003 */ beq $t6, $zero, .L808B120C
|
||||
/* 008A0 808B1200 3C05808B */ lui $a1, %hi(D_808B16F8) ## $a1 = 808B0000
|
||||
/* 008A4 808B1204 10000002 */ beq $zero, $zero, .L808B1210
|
||||
/* 008A8 808B1208 24020005 */ addiu $v0, $zero, 0x0005 ## $v0 = 00000005
|
||||
.L808B120C:
|
||||
/* 008AC 808B120C 24020011 */ addiu $v0, $zero, 0x0011 ## $v0 = 00000011
|
||||
.L808B1210:
|
||||
/* 008B0 808B1210 14410005 */ bne $v0, $at, .L808B1228
|
||||
/* 008B4 808B1214 00000000 */ nop
|
||||
/* 008B8 808B1218 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 008BC 808B121C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 008C0 808B1220 10000049 */ beq $zero, $zero, .L808B1348
|
||||
/* 008C4 808B1224 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L808B1228:
|
||||
/* 008C8 808B1228 0C01E037 */ jal Actor_ProcessInitChain
|
||||
|
||||
/* 008CC 808B122C 24A516F8 */ addiu $a1, $a1, %lo(D_808B16F8) ## $a1 = 000016F8
|
||||
/* 008D0 808B1230 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
|
||||
/* 008D4 808B1234 24010010 */ addiu $at, $zero, 0x0010 ## $at = 00000010
|
||||
/* 008D8 808B1238 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 008DC 808B123C 304200F0 */ andi $v0, $v0, 0x00F0 ## $v0 = 00000000
|
||||
/* 008E0 808B1240 10400008 */ beq $v0, $zero, .L808B1264
|
||||
/* 008E4 808B1244 3C053E4C */ lui $a1, 0x3E4C ## $a1 = 3E4C0000
|
||||
/* 008E8 808B1248 1041000A */ beq $v0, $at, .L808B1274
|
||||
/* 008EC 808B124C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 008F0 808B1250 24010020 */ addiu $at, $zero, 0x0020 ## $at = 00000020
|
||||
/* 008F4 808B1254 1041000C */ beq $v0, $at, .L808B1288
|
||||
/* 008F8 808B1258 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 008FC 808B125C 1000000D */ beq $zero, $zero, .L808B1294
|
||||
/* 00900 808B1260 00000000 */ nop
|
||||
.L808B1264:
|
||||
/* 00904 808B1264 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 00908 808B1268 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3E4CCCCD
|
||||
/* 0090C 808B126C 10000009 */ beq $zero, $zero, .L808B1294
|
||||
/* 00910 808B1270 00000000 */ nop
|
||||
.L808B1274:
|
||||
/* 00914 808B1274 3C053DCC */ lui $a1, 0x3DCC ## $a1 = 3DCC0000
|
||||
/* 00918 808B1278 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 0091C 808B127C 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3DCCCCCD
|
||||
/* 00920 808B1280 10000004 */ beq $zero, $zero, .L808B1294
|
||||
/* 00924 808B1284 00000000 */ nop
|
||||
.L808B1288:
|
||||
/* 00928 808B1288 3C053D4C */ lui $a1, 0x3D4C ## $a1 = 3D4C0000
|
||||
/* 0092C 808B128C 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 00930 808B1290 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3D4CCCCD
|
||||
.L808B1294:
|
||||
/* 00934 808B1294 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00938 808B1298 00000000 */ nop
|
||||
/* 0093C 808B129C 3C01808B */ lui $at, %hi(D_808B1890) ## $at = 808B0000
|
||||
/* 00940 808B12A0 C4241890 */ lwc1 $f4, %lo(D_808B1890)($at)
|
||||
/* 00944 808B12A4 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 00948 808B12A8 4600320D */ trunc.w.s $f8, $f6
|
||||
/* 0094C 808B12AC 44184000 */ mfc1 $t8, $f8
|
||||
/* 00950 808B12B0 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00954 808B12B4 A618018C */ sh $t8, 0x018C($s0) ## 0000018C
|
||||
/* 00958 808B12B8 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
||||
/* 0095C 808B12BC 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
|
||||
/* 00960 808B12C0 3C01808B */ lui $at, %hi(D_808B1894) ## $at = 808B0000
|
||||
/* 00964 808B12C4 C42A1894 */ lwc1 $f10, %lo(D_808B1894)($at)
|
||||
/* 00968 808B12C8 8609001C */ lh $t1, 0x001C($s0) ## 0000001C
|
||||
/* 0096C 808B12CC E602016C */ swc1 $f2, 0x016C($s0) ## 0000016C
|
||||
/* 00970 808B12D0 460A0402 */ mul.s $f16, $f0, $f10
|
||||
/* 00974 808B12D4 312A000F */ andi $t2, $t1, 0x000F ## $t2 = 00000000
|
||||
/* 00978 808B12D8 2D410005 */ sltiu $at, $t2, 0x0005
|
||||
/* 0097C 808B12DC 000A5080 */ sll $t2, $t2, 2
|
||||
/* 00980 808B12E0 E6020180 */ swc1 $f2, 0x0180($s0) ## 00000180
|
||||
/* 00984 808B12E4 4600848D */ trunc.w.s $f18, $f16
|
||||
/* 00988 808B12E8 44089000 */ mfc1 $t0, $f18
|
||||
/* 0098C 808B12EC 10200015 */ beq $at, $zero, .L808B1344
|
||||
/* 00990 808B12F0 A608018E */ sh $t0, 0x018E($s0) ## 0000018E
|
||||
/* 00994 808B12F4 3C01808B */ lui $at, %hi(jtbl_808B1898) ## $at = 808B0000
|
||||
/* 00998 808B12F8 002A0821 */ addu $at, $at, $t2
|
||||
/* 0099C 808B12FC 8C2A1898 */ lw $t2, %lo(jtbl_808B1898)($at)
|
||||
/* 009A0 808B1300 01400008 */ jr $t2
|
||||
/* 009A4 808B1304 00000000 */ nop
|
||||
glabel L808B1308
|
||||
/* 009A8 808B1308 0C22C4E2 */ jal func_808B1388
|
||||
/* 009AC 808B130C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 009B0 808B1310 1000000D */ beq $zero, $zero, .L808B1348
|
||||
/* 009B4 808B1314 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
glabel L808B1318
|
||||
/* 009B8 808B1318 0C22C4FF */ jal func_808B13FC
|
||||
/* 009BC 808B131C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 009C0 808B1320 10000009 */ beq $zero, $zero, .L808B1348
|
||||
/* 009C4 808B1324 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
glabel L808B1328
|
||||
/* 009C8 808B1328 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 009CC 808B132C 0C22C415 */ jal func_808B1054
|
||||
/* 009D0 808B1330 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 009D4 808B1334 10000004 */ beq $zero, $zero, .L808B1348
|
||||
/* 009D8 808B1338 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
glabel L808B133C
|
||||
/* 009DC 808B133C 0C22C55D */ jal func_808B1574
|
||||
/* 009E0 808B1340 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L808B1344:
|
||||
/* 009E4 808B1344 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L808B1348:
|
||||
/* 009E8 808B1348 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 009EC 808B134C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 009F0 808B1350 03E00008 */ jr $ra
|
||||
/* 009F4 808B1354 00000000 */ nop
|
@ -1,50 +0,0 @@
|
||||
.late_rodata
|
||||
|
||||
glabel D_808B18AC
|
||||
.float 0.05
|
||||
|
||||
.text
|
||||
glabel BgSpot08Iceblock_Update
|
||||
/* 00C34 808B1594 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00C38 808B1598 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00C3C 808B159C AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00C40 808B15A0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00C44 808B15A4 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00C48 808B15A8 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00C4C 808B15AC 3C01808B */ lui $at, %hi(D_808B18AC) ## $at = 808B0000
|
||||
/* 00C50 808B15B0 C42418AC */ lwc1 $f4, %lo(D_808B18AC)($at)
|
||||
/* 00C54 808B15B4 2404012C */ addiu $a0, $zero, 0x012C ## $a0 = 0000012C
|
||||
/* 00C58 808B15B8 4604003C */ c.lt.s $f0, $f4
|
||||
/* 00C5C 808B15BC 00000000 */ nop
|
||||
/* 00C60 808B15C0 45020009 */ bc1fl .L808B15E8
|
||||
/* 00C64 808B15C4 860E018C */ lh $t6, 0x018C($s0) ## 0000018C
|
||||
/* 00C68 808B15C8 0C01DF64 */ jal Rand_S16Offset
|
||||
|
||||
/* 00C6C 808B15CC 24050064 */ addiu $a1, $zero, 0x0064 ## $a1 = 00000064
|
||||
/* 00C70 808B15D0 A6020190 */ sh $v0, 0x0190($s0) ## 00000190
|
||||
/* 00C74 808B15D4 24040320 */ addiu $a0, $zero, 0x0320 ## $a0 = 00000320
|
||||
/* 00C78 808B15D8 0C01DF64 */ jal Rand_S16Offset
|
||||
|
||||
/* 00C7C 808B15DC 24050190 */ addiu $a1, $zero, 0x0190 ## $a1 = 00000190
|
||||
/* 00C80 808B15E0 A6020192 */ sh $v0, 0x0192($s0) ## 00000192
|
||||
/* 00C84 808B15E4 860E018C */ lh $t6, 0x018C($s0) ## 0000018C
|
||||
.L808B15E8:
|
||||
/* 00C88 808B15E8 860F0190 */ lh $t7, 0x0190($s0) ## 00000190
|
||||
/* 00C8C 808B15EC 8619018E */ lh $t9, 0x018E($s0) ## 0000018E
|
||||
/* 00C90 808B15F0 86080192 */ lh $t0, 0x0192($s0) ## 00000192
|
||||
/* 00C94 808B15F4 8E020164 */ lw $v0, 0x0164($s0) ## 00000164
|
||||
/* 00C98 808B15F8 01CFC021 */ addu $t8, $t6, $t7
|
||||
/* 00C9C 808B15FC 03284821 */ addu $t1, $t9, $t0
|
||||
/* 00CA0 808B1600 A618018C */ sh $t8, 0x018C($s0) ## 0000018C
|
||||
/* 00CA4 808B1604 10400004 */ beq $v0, $zero, .L808B1618
|
||||
/* 00CA8 808B1608 A609018E */ sh $t1, 0x018E($s0) ## 0000018E
|
||||
/* 00CAC 808B160C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00CB0 808B1610 0040F809 */ jalr $ra, $v0
|
||||
/* 00CB4 808B1614 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
.L808B1618:
|
||||
/* 00CB8 808B1618 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00CBC 808B161C 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00CC0 808B1620 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 00CC4 808B1624 03E00008 */ jr $ra
|
||||
/* 00CC8 808B1628 00000000 */ nop
|
@ -1,3 +0,0 @@
|
||||
glabel func_808B0960
|
||||
/* 00000 808B0960 03E00008 */ jr $ra
|
||||
/* 00004 808B0964 AC850164 */ sw $a1, 0x0164($a0) ## 00000164
|
@ -1,50 +0,0 @@
|
||||
.rdata
|
||||
glabel D_808B1710
|
||||
.asciz "Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_808B1750
|
||||
.asciz "../z_bg_spot08_iceblock.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel func_808B0968
|
||||
/* 00008 808B0968 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 0000C 808B096C AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00010 808B0970 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 00014 808B0974 AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 00018 808B0978 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 0001C 808B097C AFA60040 */ sw $a2, 0x0040($sp)
|
||||
/* 00020 808B0980 AFA00030 */ sw $zero, 0x0030($sp)
|
||||
/* 00024 808B0984 0C010D20 */ jal DynaPolyActor_Init
|
||||
|
||||
/* 00028 808B0988 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
|
||||
/* 0002C 808B098C 8FA40040 */ lw $a0, 0x0040($sp)
|
||||
/* 00030 808B0990 0C010620 */ jal CollisionHeader_GetVirtual
|
||||
|
||||
/* 00034 808B0994 27A50030 */ addiu $a1, $sp, 0x0030 ## $a1 = FFFFFFF8
|
||||
/* 00038 808B0998 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 0003C 808B099C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 00040 808B09A0 8FA70030 */ lw $a3, 0x0030($sp)
|
||||
/* 00044 808B09A4 0C00FA9D */ jal DynaPoly_SetBgActor
|
||||
## DynaPoly_SetBgActor
|
||||
/* 00048 808B09A8 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
|
||||
/* 0004C 808B09AC 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
|
||||
/* 00050 808B09B0 1441000A */ bne $v0, $at, .L808B09DC
|
||||
/* 00054 808B09B4 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
|
||||
/* 00058 808B09B8 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
|
||||
/* 0005C 808B09BC 3C04808B */ lui $a0, %hi(D_808B1710) ## $a0 = 808B0000
|
||||
/* 00060 808B09C0 3C05808B */ lui $a1, %hi(D_808B1750) ## $a1 = 808B0000
|
||||
/* 00064 808B09C4 86070000 */ lh $a3, 0x0000($s0) ## 00000000
|
||||
/* 00068 808B09C8 24A51750 */ addiu $a1, $a1, %lo(D_808B1750) ## $a1 = 808B1750
|
||||
/* 0006C 808B09CC 24841710 */ addiu $a0, $a0, %lo(D_808B1710) ## $a0 = 808B1710
|
||||
/* 00070 808B09D0 240600D9 */ addiu $a2, $zero, 0x00D9 ## $a2 = 000000D9
|
||||
/* 00074 808B09D4 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 00078 808B09D8 AFAE0010 */ sw $t6, 0x0010($sp)
|
||||
.L808B09DC:
|
||||
/* 0007C 808B09DC 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00080 808B09E0 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 00084 808B09E4 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
||||
/* 00088 808B09E8 03E00008 */ jr $ra
|
||||
/* 0008C 808B09EC 00000000 */ nop
|
@ -1,96 +0,0 @@
|
||||
.rdata
|
||||
|
||||
glabel D_808B176C
|
||||
.asciz "Error : arg_data 設定ミスです。(%s %d)(arg_data 0x%04x)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_808B17A8
|
||||
.asciz "../z_bg_spot08_iceblock.c"
|
||||
.balign 4
|
||||
|
||||
.late_rodata
|
||||
|
||||
glabel jtbl_808B17E4
|
||||
.word L808B0A74
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A74
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A74
|
||||
.word L808B0A74
|
||||
.word L808B0A74
|
||||
.word L808B0A50
|
||||
.word L808B0A74
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A74
|
||||
.word L808B0A50
|
||||
.word L808B0A50
|
||||
.word L808B0A74
|
||||
.word L808B0A74
|
||||
|
||||
.text
|
||||
glabel func_808B09F0
|
||||
/* 00090 808B09F0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00094 808B09F4 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00098 808B09F8 AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 0009C 808B09FC 8487001C */ lh $a3, 0x001C($a0) ## 0000001C
|
||||
/* 000A0 808B0A00 30E200FF */ andi $v0, $a3, 0x00FF ## $v0 = 00000000
|
||||
/* 000A4 808B0A04 28410025 */ slti $at, $v0, 0x0025
|
||||
/* 000A8 808B0A08 14200006 */ bne $at, $zero, .L808B0A24
|
||||
/* 000AC 808B0A0C 244FFFFF */ addiu $t7, $v0, 0xFFFF ## $t7 = FFFFFFFF
|
||||
/* 000B0 808B0A10 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
|
||||
/* 000B4 808B0A14 1041000B */ beq $v0, $at, .L808B0A44
|
||||
/* 000B8 808B0A18 8FB90018 */ lw $t9, 0x0018($sp)
|
||||
/* 000BC 808B0A1C 1000000C */ beq $zero, $zero, .L808B0A50
|
||||
/* 000C0 808B0A20 00000000 */ nop
|
||||
.L808B0A24:
|
||||
/* 000C4 808B0A24 2DE10024 */ sltiu $at, $t7, 0x0024
|
||||
/* 000C8 808B0A28 10200009 */ beq $at, $zero, .L808B0A50
|
||||
/* 000CC 808B0A2C 000F7880 */ sll $t7, $t7, 2
|
||||
/* 000D0 808B0A30 3C01808B */ lui $at, %hi(jtbl_808B17E4) ## $at = 808B0000
|
||||
/* 000D4 808B0A34 002F0821 */ addu $at, $at, $t7
|
||||
/* 000D8 808B0A38 8C2F17E4 */ lw $t7, %lo(jtbl_808B17E4)($at)
|
||||
/* 000DC 808B0A3C 01E00008 */ jr $t7
|
||||
/* 000E0 808B0A40 00000000 */ nop
|
||||
.L808B0A44:
|
||||
/* 000E4 808B0A44 24180010 */ addiu $t8, $zero, 0x0010 ## $t8 = 00000010
|
||||
/* 000E8 808B0A48 1000000A */ beq $zero, $zero, .L808B0A74
|
||||
/* 000EC 808B0A4C A738001C */ sh $t8, 0x001C($t9) ## 0000001C
|
||||
glabel L808B0A50
|
||||
.L808B0A50:
|
||||
/* 000F0 808B0A50 3C04808B */ lui $a0, %hi(D_808B176C) ## $a0 = 808B0000
|
||||
/* 000F4 808B0A54 3C05808B */ lui $a1, %hi(D_808B17A8) ## $a1 = 808B0000
|
||||
/* 000F8 808B0A58 24A517A8 */ addiu $a1, $a1, %lo(D_808B17A8) ## $a1 = 808B17A8
|
||||
/* 000FC 808B0A5C 2484176C */ addiu $a0, $a0, %lo(D_808B176C) ## $a0 = 808B176C
|
||||
/* 00100 808B0A60 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 00104 808B0A64 240600F6 */ addiu $a2, $zero, 0x00F6 ## $a2 = 000000F6
|
||||
/* 00108 808B0A68 8FA90018 */ lw $t1, 0x0018($sp)
|
||||
/* 0010C 808B0A6C 24080010 */ addiu $t0, $zero, 0x0010 ## $t0 = 00000010
|
||||
/* 00110 808B0A70 A528001C */ sh $t0, 0x001C($t1) ## 0000001C
|
||||
glabel L808B0A74
|
||||
.L808B0A74:
|
||||
/* 00114 808B0A74 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00118 808B0A78 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 0011C 808B0A7C 03E00008 */ jr $ra
|
||||
/* 00120 808B0A80 00000000 */ nop
|
@ -1,26 +0,0 @@
|
||||
glabel func_808B0A84
|
||||
/* 00124 808B0A84 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00128 808B0A88 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0012C 808B0A8C AFA40020 */ sw $a0, 0x0020($sp)
|
||||
/* 00130 808B0A90 0C01DE1C */ jal Math_SinS
|
||||
## sins?
|
||||
/* 00134 808B0A94 8484018C */ lh $a0, 0x018C($a0) ## 0000018C
|
||||
/* 00138 808B0A98 8FAF0020 */ lw $t7, 0x0020($sp)
|
||||
/* 0013C 808B0A9C E7A0001C */ swc1 $f0, 0x001C($sp)
|
||||
/* 00140 808B0AA0 0C01DE1C */ jal Math_SinS
|
||||
## sins?
|
||||
/* 00144 808B0AA4 85E4018E */ lh $a0, 0x018E($t7) ## 0000018E
|
||||
/* 00148 808B0AA8 3C014080 */ lui $at, 0x4080 ## $at = 40800000
|
||||
/* 0014C 808B0AAC 44813000 */ mtc1 $at, $f6 ## $f6 = 4.00
|
||||
/* 00150 808B0AB0 C7A4001C */ lwc1 $f4, 0x001C($sp)
|
||||
/* 00154 808B0AB4 3C014040 */ lui $at, 0x4040 ## $at = 40400000
|
||||
/* 00158 808B0AB8 44815000 */ mtc1 $at, $f10 ## $f10 = 3.00
|
||||
/* 0015C 808B0ABC 46062202 */ mul.s $f8, $f4, $f6
|
||||
/* 00160 808B0AC0 8FB80020 */ lw $t8, 0x0020($sp)
|
||||
/* 00164 808B0AC4 460A0402 */ mul.s $f16, $f0, $f10
|
||||
/* 00168 808B0AC8 46088480 */ add.s $f18, $f16, $f8
|
||||
/* 0016C 808B0ACC E7120198 */ swc1 $f18, 0x0198($t8) ## 00000198
|
||||
/* 00170 808B0AD0 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00174 808B0AD4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 00178 808B0AD8 03E00008 */ jr $ra
|
||||
/* 0017C 808B0ADC 00000000 */ nop
|
@ -1,63 +0,0 @@
|
||||
.late_rodata
|
||||
|
||||
glabel D_808B1874
|
||||
.float 0.15
|
||||
|
||||
glabel D_808B1878
|
||||
.float 0.2
|
||||
|
||||
glabel D_808B187C
|
||||
.float 0.4
|
||||
|
||||
.text
|
||||
glabel func_808B0AE0
|
||||
/* 00180 808B0AE0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00184 808B0AE4 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00188 808B0AE8 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
|
||||
/* 0018C 808B0AEC 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 00190 808B0AF0 3C01808B */ lui $at, %hi(D_808B1874) ## $at = 808B0000
|
||||
/* 00194 808B0AF4 304200F0 */ andi $v0, $v0, 0x00F0 ## $v0 = 00000000
|
||||
/* 00198 808B0AF8 10400008 */ beq $v0, $zero, .L808B0B1C
|
||||
/* 0019C 808B0AFC 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
|
||||
/* 001A0 808B0B00 24010010 */ addiu $at, $zero, 0x0010 ## $at = 00000010
|
||||
/* 001A4 808B0B04 10410008 */ beq $v0, $at, .L808B0B28
|
||||
/* 001A8 808B0B08 24010020 */ addiu $at, $zero, 0x0020 ## $at = 00000020
|
||||
/* 001AC 808B0B0C 1041000A */ beq $v0, $at, .L808B0B38
|
||||
/* 001B0 808B0B10 00000000 */ nop
|
||||
/* 001B4 808B0B14 1000000B */ beq $zero, $zero, .L808B0B44
|
||||
/* 001B8 808B0B18 00000000 */ nop
|
||||
.L808B0B1C:
|
||||
/* 001BC 808B0B1C C4241874 */ lwc1 $f4, %lo(D_808B1874)($at)
|
||||
/* 001C0 808B0B20 10000008 */ beq $zero, $zero, .L808B0B44
|
||||
/* 001C4 808B0B24 E7A40018 */ swc1 $f4, 0x0018($sp)
|
||||
.L808B0B28:
|
||||
/* 001C8 808B0B28 3C01808B */ lui $at, %hi(D_808B1878) ## $at = 808B0000
|
||||
/* 001CC 808B0B2C C4261878 */ lwc1 $f6, %lo(D_808B1878)($at)
|
||||
/* 001D0 808B0B30 10000004 */ beq $zero, $zero, .L808B0B44
|
||||
/* 001D4 808B0B34 E7A60018 */ swc1 $f6, 0x0018($sp)
|
||||
.L808B0B38:
|
||||
/* 001D8 808B0B38 3C01808B */ lui $at, %hi(D_808B187C) ## $at = 808B0000
|
||||
/* 001DC 808B0B3C C428187C */ lwc1 $f8, %lo(D_808B187C)($at)
|
||||
/* 001E0 808B0B40 E7A80018 */ swc1 $f8, 0x0018($sp)
|
||||
.L808B0B44:
|
||||
/* 001E4 808B0B44 0C010D52 */ jal func_80043548
|
||||
/* 001E8 808B0B48 AFA70020 */ sw $a3, 0x0020($sp)
|
||||
/* 001EC 808B0B4C 10400005 */ beq $v0, $zero, .L808B0B64
|
||||
/* 001F0 808B0B50 8FA70020 */ lw $a3, 0x0020($sp)
|
||||
/* 001F4 808B0B54 3C01C080 */ lui $at, 0xC080 ## $at = C0800000
|
||||
/* 001F8 808B0B58 44810000 */ mtc1 $at, $f0 ## $f0 = -4.00
|
||||
/* 001FC 808B0B5C 10000004 */ beq $zero, $zero, .L808B0B70
|
||||
/* 00200 808B0B60 44050000 */ mfc1 $a1, $f0
|
||||
.L808B0B64:
|
||||
/* 00204 808B0B64 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 00208 808B0B68 00000000 */ nop
|
||||
/* 0020C 808B0B6C 44050000 */ mfc1 $a1, $f0
|
||||
.L808B0B70:
|
||||
/* 00210 808B0B70 24E40194 */ addiu $a0, $a3, 0x0194 ## $a0 = 00000194
|
||||
/* 00214 808B0B74 0C01DE80 */ jal Math_StepToF
|
||||
|
||||
/* 00218 808B0B78 8FA60018 */ lw $a2, 0x0018($sp)
|
||||
/* 0021C 808B0B7C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00220 808B0B80 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 00224 808B0B84 03E00008 */ jr $ra
|
||||
/* 00228 808B0B88 00000000 */ nop
|
@ -1,8 +0,0 @@
|
||||
glabel func_808B0B8C
|
||||
/* 0022C 808B0B8C C4840194 */ lwc1 $f4, 0x0194($a0) ## 00000194
|
||||
/* 00230 808B0B90 C4860198 */ lwc1 $f6, 0x0198($a0) ## 00000198
|
||||
/* 00234 808B0B94 C48A000C */ lwc1 $f10, 0x000C($a0) ## 0000000C
|
||||
/* 00238 808B0B98 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 0023C 808B0B9C 460A4400 */ add.s $f16, $f8, $f10
|
||||
/* 00240 808B0BA0 03E00008 */ jr $ra
|
||||
/* 00244 808B0BA4 E4900028 */ swc1 $f16, 0x0028($a0) ## 00000028
|
@ -1,12 +0,0 @@
|
||||
glabel func_808B0BA8
|
||||
/* 00248 808B0BA8 44866000 */ mtc1 $a2, $f12 ## $f12 = 0.00
|
||||
/* 0024C 808B0BAC C4A40000 */ lwc1 $f4, 0x0000($a1) ## 00000000
|
||||
/* 00250 808B0BB0 460C2182 */ mul.s $f6, $f4, $f12
|
||||
/* 00254 808B0BB4 E4860000 */ swc1 $f6, 0x0000($a0) ## 00000000
|
||||
/* 00258 808B0BB8 C4A80004 */ lwc1 $f8, 0x0004($a1) ## 00000004
|
||||
/* 0025C 808B0BBC 460C4282 */ mul.s $f10, $f8, $f12
|
||||
/* 00260 808B0BC0 E48A0004 */ swc1 $f10, 0x0004($a0) ## 00000004
|
||||
/* 00264 808B0BC4 C4B00008 */ lwc1 $f16, 0x0008($a1) ## 00000008
|
||||
/* 00268 808B0BC8 460C8482 */ mul.s $f18, $f16, $f12
|
||||
/* 0026C 808B0BCC 03E00008 */ jr $ra
|
||||
/* 00270 808B0BD0 E4920008 */ swc1 $f18, 0x0008($a0) ## 00000008
|
@ -1,29 +0,0 @@
|
||||
glabel func_808B0BD4
|
||||
/* 00274 808B0BD4 C4A40004 */ lwc1 $f4, 0x0004($a1) ## 00000004
|
||||
/* 00278 808B0BD8 C4C60008 */ lwc1 $f6, 0x0008($a2) ## 00000008
|
||||
/* 0027C 808B0BDC C4AA0008 */ lwc1 $f10, 0x0008($a1) ## 00000008
|
||||
/* 00280 808B0BE0 C4D00004 */ lwc1 $f16, 0x0004($a2) ## 00000004
|
||||
/* 00284 808B0BE4 46062202 */ mul.s $f8, $f4, $f6
|
||||
/* 00288 808B0BE8 00000000 */ nop
|
||||
/* 0028C 808B0BEC 46105482 */ mul.s $f18, $f10, $f16
|
||||
/* 00290 808B0BF0 46124101 */ sub.s $f4, $f8, $f18
|
||||
/* 00294 808B0BF4 E4840000 */ swc1 $f4, 0x0000($a0) ## 00000000
|
||||
/* 00298 808B0BF8 C4CA0000 */ lwc1 $f10, 0x0000($a2) ## 00000000
|
||||
/* 0029C 808B0BFC C4A60008 */ lwc1 $f6, 0x0008($a1) ## 00000008
|
||||
/* 002A0 808B0C00 C4A80000 */ lwc1 $f8, 0x0000($a1) ## 00000000
|
||||
/* 002A4 808B0C04 C4D20008 */ lwc1 $f18, 0x0008($a2) ## 00000008
|
||||
/* 002A8 808B0C08 460A3402 */ mul.s $f16, $f6, $f10
|
||||
/* 002AC 808B0C0C 00000000 */ nop
|
||||
/* 002B0 808B0C10 46124102 */ mul.s $f4, $f8, $f18
|
||||
/* 002B4 808B0C14 46048181 */ sub.s $f6, $f16, $f4
|
||||
/* 002B8 808B0C18 E4860004 */ swc1 $f6, 0x0004($a0) ## 00000004
|
||||
/* 002BC 808B0C1C C4C80004 */ lwc1 $f8, 0x0004($a2) ## 00000004
|
||||
/* 002C0 808B0C20 C4AA0000 */ lwc1 $f10, 0x0000($a1) ## 00000000
|
||||
/* 002C4 808B0C24 C4C40000 */ lwc1 $f4, 0x0000($a2) ## 00000000
|
||||
/* 002C8 808B0C28 C4B00004 */ lwc1 $f16, 0x0004($a1) ## 00000004
|
||||
/* 002CC 808B0C2C 46085482 */ mul.s $f18, $f10, $f8
|
||||
/* 002D0 808B0C30 00000000 */ nop
|
||||
/* 002D4 808B0C34 46048182 */ mul.s $f6, $f16, $f4
|
||||
/* 002D8 808B0C38 46069281 */ sub.s $f10, $f18, $f6
|
||||
/* 002DC 808B0C3C 03E00008 */ jr $ra
|
||||
/* 002E0 808B0C40 E48A0008 */ swc1 $f10, 0x0008($a0) ## 00000008
|
@ -1,48 +0,0 @@
|
||||
.late_rodata
|
||||
|
||||
glabel D_808B1880
|
||||
.float 0.001
|
||||
|
||||
.text
|
||||
glabel func_808B0C44
|
||||
/* 002E4 808B0C44 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 002E8 808B0C48 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 002EC 808B0C4C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
|
||||
/* 002F0 808B0C50 AFA60018 */ sw $a2, 0x0018($sp)
|
||||
/* 002F4 808B0C54 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 002F8 808B0C58 0C032D8A */ jal Math3D_Vec3fMagnitude
|
||||
/* 002FC 808B0C5C AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 00300 808B0C60 3C01808B */ lui $at, %hi(D_808B1880) ## $at = 808B0000
|
||||
/* 00304 808B0C64 C4241880 */ lwc1 $f4, %lo(D_808B1880)($at)
|
||||
/* 00308 808B0C68 8FA5001C */ lw $a1, 0x001C($sp)
|
||||
/* 0030C 808B0C6C 8FA60018 */ lw $a2, 0x0018($sp)
|
||||
/* 00310 808B0C70 4604003C */ c.lt.s $f0, $f4
|
||||
/* 00314 808B0C74 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
|
||||
/* 00318 808B0C78 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
||||
/* 0031C 808B0C7C 45020009 */ bc1fl .L808B0CA4
|
||||
/* 00320 808B0C80 44814000 */ mtc1 $at, $f8 ## $f8 = 1.00
|
||||
/* 00324 808B0C84 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 00328 808B0C88 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
||||
/* 0032C 808B0C8C 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
|
||||
/* 00330 808B0C90 E4C00004 */ swc1 $f0, 0x0004($a2) ## 00000004
|
||||
/* 00334 808B0C94 E4C00000 */ swc1 $f0, 0x0000($a2) ## 00000000
|
||||
/* 00338 808B0C98 1000000D */ beq $zero, $zero, .L808B0CD0
|
||||
/* 0033C 808B0C9C E4C60008 */ swc1 $f6, 0x0008($a2) ## 00000008
|
||||
/* 00340 808B0CA0 44814000 */ mtc1 $at, $f8 ## $f8 = 1.00
|
||||
.L808B0CA4:
|
||||
/* 00344 808B0CA4 C4AA0000 */ lwc1 $f10, 0x0000($a1) ## 00000000
|
||||
/* 00348 808B0CA8 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
|
||||
/* 0034C 808B0CAC 46004083 */ div.s $f2, $f8, $f0
|
||||
/* 00350 808B0CB0 46025402 */ mul.s $f16, $f10, $f2
|
||||
/* 00354 808B0CB4 E4D00000 */ swc1 $f16, 0x0000($a2) ## 00000000
|
||||
/* 00358 808B0CB8 C4B20004 */ lwc1 $f18, 0x0004($a1) ## 00000004
|
||||
/* 0035C 808B0CBC 46029102 */ mul.s $f4, $f18, $f2
|
||||
/* 00360 808B0CC0 E4C40004 */ swc1 $f4, 0x0004($a2) ## 00000004
|
||||
/* 00364 808B0CC4 C4A60008 */ lwc1 $f6, 0x0008($a1) ## 00000008
|
||||
/* 00368 808B0CC8 46023202 */ mul.s $f8, $f6, $f2
|
||||
/* 0036C 808B0CCC E4C80008 */ swc1 $f8, 0x0008($a2) ## 00000008
|
||||
.L808B0CD0:
|
||||
/* 00370 808B0CD0 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00374 808B0CD4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00378 808B0CD8 03E00008 */ jr $ra
|
||||
/* 0037C 808B0CDC 00000000 */ nop
|
@ -1,251 +0,0 @@
|
||||
.late_rodata
|
||||
|
||||
glabel D_808B1884
|
||||
.float 0.0016
|
||||
|
||||
glabel D_808B1888
|
||||
.float 0.0016
|
||||
|
||||
glabel D_808B188C
|
||||
.float 9.58738019108e-05
|
||||
|
||||
.text
|
||||
glabel func_808B0CE0
|
||||
/* 00380 808B0CE0 27BDFF18 */ addiu $sp, $sp, 0xFF18 ## $sp = FFFFFF18
|
||||
/* 00384 808B0CE4 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00388 808B0CE8 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 0038C 808B0CEC 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
|
||||
/* 00390 808B0CF0 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
|
||||
/* 00394 808B0CF4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00398 808B0CF8 304200FF */ andi $v0, $v0, 0x00FF ## $v0 = 00000000
|
||||
/* 0039C 808B0CFC 10410008 */ beq $v0, $at, .L808B0D20
|
||||
/* 003A0 808B0D00 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
|
||||
/* 003A4 808B0D04 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
|
||||
/* 003A8 808B0D08 10410003 */ beq $v0, $at, .L808B0D18
|
||||
/* 003AC 808B0D0C 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
|
||||
/* 003B0 808B0D10 10000005 */ beq $zero, $zero, .L808B0D28
|
||||
/* 003B4 808B0D14 AFAE0084 */ sw $t6, 0x0084($sp)
|
||||
.L808B0D18:
|
||||
/* 003B8 808B0D18 10000003 */ beq $zero, $zero, .L808B0D28
|
||||
/* 003BC 808B0D1C AFA00084 */ sw $zero, 0x0084($sp)
|
||||
.L808B0D20:
|
||||
/* 003C0 808B0D20 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
|
||||
/* 003C4 808B0D24 AFAF0084 */ sw $t7, 0x0084($sp)
|
||||
.L808B0D28:
|
||||
/* 003C8 808B0D28 24640024 */ addiu $a0, $v1, 0x0024 ## $a0 = 00000024
|
||||
/* 003CC 808B0D2C 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
|
||||
/* 003D0 808B0D30 0C01DFB4 */ jal Math_Vec3f_Diff
|
||||
## Vec3f_Sub
|
||||
/* 003D4 808B0D34 27A600C8 */ addiu $a2, $sp, 0x00C8 ## $a2 = FFFFFFE0
|
||||
/* 003D8 808B0D38 3C014316 */ lui $at, 0x4316 ## $at = 43160000
|
||||
/* 003DC 808B0D3C 44812000 */ mtc1 $at, $f4 ## $f4 = 150.00
|
||||
/* 003E0 808B0D40 C6060054 */ lwc1 $f6, 0x0054($s0) ## 00000054
|
||||
/* 003E4 808B0D44 C7AA00CC */ lwc1 $f10, 0x00CC($sp)
|
||||
/* 003E8 808B0D48 27A400C8 */ addiu $a0, $sp, 0x00C8 ## $a0 = FFFFFFE0
|
||||
/* 003EC 808B0D4C 46062202 */ mul.s $f8, $f4, $f6
|
||||
/* 003F0 808B0D50 46085401 */ sub.s $f16, $f10, $f8
|
||||
/* 003F4 808B0D54 0C032D8A */ jal Math3D_Vec3fMagnitude
|
||||
/* 003F8 808B0D58 E7B000CC */ swc1 $f16, 0x00CC($sp)
|
||||
/* 003FC 808B0D5C 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00400 808B0D60 E7A00088 */ swc1 $f0, 0x0088($sp)
|
||||
/* 00404 808B0D64 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
|
||||
/* 00408 808B0D68 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50
|
||||
/* 0040C 808B0D6C 3C01808B */ lui $at, %hi(D_808B1884) ## $at = 808B0000
|
||||
/* 00410 808B0D70 C4261884 */ lwc1 $f6, %lo(D_808B1884)($at)
|
||||
/* 00414 808B0D74 46120101 */ sub.s $f4, $f0, $f18
|
||||
/* 00418 808B0D78 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
|
||||
/* 0041C 808B0D7C 46062282 */ mul.s $f10, $f4, $f6
|
||||
/* 00420 808B0D80 E7A800A8 */ swc1 $f8, 0x00A8($sp)
|
||||
/* 00424 808B0D84 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00428 808B0D88 E7AA00A4 */ swc1 $f10, 0x00A4($sp)
|
||||
/* 0042C 808B0D8C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
|
||||
/* 00430 808B0D90 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
|
||||
/* 00434 808B0D94 3C01808B */ lui $at, %hi(D_808B1888) ## $at = 808B0000
|
||||
/* 00438 808B0D98 C4241888 */ lwc1 $f4, %lo(D_808B1888)($at)
|
||||
/* 0043C 808B0D9C 46100481 */ sub.s $f18, $f0, $f16
|
||||
/* 00440 808B0DA0 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
|
||||
/* 00444 808B0DA4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00448 808B0DA8 46049182 */ mul.s $f6, $f18, $f4
|
||||
/* 0044C 808B0DAC E7A600AC */ swc1 $f6, 0x00AC($sp)
|
||||
/* 00450 808B0DB0 C60A0168 */ lwc1 $f10, 0x0168($s0) ## 00000168
|
||||
/* 00454 808B0DB4 E7A800D8 */ swc1 $f8, 0x00D8($sp)
|
||||
/* 00458 808B0DB8 E7AA00D4 */ swc1 $f10, 0x00D4($sp)
|
||||
/* 0045C 808B0DBC C6100170 */ lwc1 $f16, 0x0170($s0) ## 00000170
|
||||
/* 00460 808B0DC0 0C010D5B */ jal func_8004356C
|
||||
/* 00464 808B0DC4 E7B000DC */ swc1 $f16, 0x00DC($sp)
|
||||
/* 00468 808B0DC8 1040001C */ beq $v0, $zero, .L808B0E3C
|
||||
/* 0046C 808B0DCC 3C014040 */ lui $at, 0x4040 ## $at = 40400000
|
||||
/* 00470 808B0DD0 44819000 */ mtc1 $at, $f18 ## $f18 = 3.00
|
||||
/* 00474 808B0DD4 C7A40088 */ lwc1 $f4, 0x0088($sp)
|
||||
/* 00478 808B0DD8 27A400C8 */ addiu $a0, $sp, 0x00C8 ## $a0 = FFFFFFE0
|
||||
/* 0047C 808B0DDC 27A500D4 */ addiu $a1, $sp, 0x00D4 ## $a1 = FFFFFFEC
|
||||
/* 00480 808B0DE0 4604903C */ c.lt.s $f18, $f4
|
||||
/* 00484 808B0DE4 00000000 */ nop
|
||||
/* 00488 808B0DE8 45000014 */ bc1f .L808B0E3C
|
||||
/* 0048C 808B0DEC 00000000 */ nop
|
||||
/* 00490 808B0DF0 0C01DFB4 */ jal Math_Vec3f_Diff
|
||||
## Vec3f_Sub
|
||||
/* 00494 808B0DF4 27A600BC */ addiu $a2, $sp, 0x00BC ## $a2 = FFFFFFD4
|
||||
/* 00498 808B0DF8 8FA20084 */ lw $v0, 0x0084($sp)
|
||||
/* 0049C 808B0DFC 3C01808B */ lui $at, %hi(D_808B16C8) ## $at = 808B0000
|
||||
/* 004A0 808B0E00 C7AA0088 */ lwc1 $f10, 0x0088($sp)
|
||||
/* 004A4 808B0E04 00021080 */ sll $v0, $v0, 2
|
||||
/* 004A8 808B0E08 00220821 */ addu $at, $at, $v0
|
||||
/* 004AC 808B0E0C C42616C8 */ lwc1 $f6, %lo(D_808B16C8)($at)
|
||||
/* 004B0 808B0E10 C6100050 */ lwc1 $f16, 0x0050($s0) ## 00000050
|
||||
/* 004B4 808B0E14 27A400BC */ addiu $a0, $sp, 0x00BC ## $a0 = FFFFFFD4
|
||||
/* 004B8 808B0E18 460A3202 */ mul.s $f8, $f6, $f10
|
||||
/* 004BC 808B0E1C 00802825 */ or $a1, $a0, $zero ## $a1 = FFFFFFD4
|
||||
/* 004C0 808B0E20 AFA2002C */ sw $v0, 0x002C($sp)
|
||||
/* 004C4 808B0E24 46104483 */ div.s $f18, $f8, $f16
|
||||
/* 004C8 808B0E28 44069000 */ mfc1 $a2, $f18
|
||||
/* 004CC 808B0E2C 0C22C2EA */ jal func_808B0BA8
|
||||
/* 004D0 808B0E30 00000000 */ nop
|
||||
/* 004D4 808B0E34 1000000E */ beq $zero, $zero, .L808B0E70
|
||||
/* 004D8 808B0E38 3C06BC23 */ lui $a2, 0xBC23 ## $a2 = BC230000
|
||||
.L808B0E3C:
|
||||
/* 004DC 808B0E3C 3C19808B */ lui $t9, %hi(D_808B16BC) ## $t9 = 808B0000
|
||||
/* 004E0 808B0E40 273916BC */ addiu $t9, $t9, %lo(D_808B16BC) ## $t9 = 808B16BC
|
||||
/* 004E4 808B0E44 8F290000 */ lw $t1, 0x0000($t9) ## 808B16BC
|
||||
/* 004E8 808B0E48 27B800BC */ addiu $t8, $sp, 0x00BC ## $t8 = FFFFFFD4
|
||||
/* 004EC 808B0E4C 8F280004 */ lw $t0, 0x0004($t9) ## 808B16C0
|
||||
/* 004F0 808B0E50 AF090000 */ sw $t1, 0x0000($t8) ## FFFFFFD4
|
||||
/* 004F4 808B0E54 8F290008 */ lw $t1, 0x0008($t9) ## 808B16C4
|
||||
/* 004F8 808B0E58 AF080004 */ sw $t0, 0x0004($t8) ## FFFFFFD8
|
||||
/* 004FC 808B0E5C AF090008 */ sw $t1, 0x0008($t8) ## FFFFFFDC
|
||||
/* 00500 808B0E60 8FAA0084 */ lw $t2, 0x0084($sp)
|
||||
/* 00504 808B0E64 000A5880 */ sll $t3, $t2, 2
|
||||
/* 00508 808B0E68 AFAB002C */ sw $t3, 0x002C($sp)
|
||||
/* 0050C 808B0E6C 3C06BC23 */ lui $a2, 0xBC23 ## $a2 = BC230000
|
||||
.L808B0E70:
|
||||
/* 00510 808B0E70 34C6D70A */ ori $a2, $a2, 0xD70A ## $a2 = BC23D70A
|
||||
/* 00514 808B0E74 27A400B0 */ addiu $a0, $sp, 0x00B0 ## $a0 = FFFFFFC8
|
||||
/* 00518 808B0E78 0C22C2EA */ jal func_808B0BA8
|
||||
/* 0051C 808B0E7C 27A500D4 */ addiu $a1, $sp, 0x00D4 ## $a1 = FFFFFFEC
|
||||
/* 00520 808B0E80 26070174 */ addiu $a3, $s0, 0x0174 ## $a3 = 00000174
|
||||
/* 00524 808B0E84 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000174
|
||||
/* 00528 808B0E88 00E03025 */ or $a2, $a3, $zero ## $a2 = 00000174
|
||||
/* 0052C 808B0E8C AFA70028 */ sw $a3, 0x0028($sp)
|
||||
/* 00530 808B0E90 0C01DFA7 */ jal Math_Vec3f_Sum
|
||||
## Vec3f_Add
|
||||
/* 00534 808B0E94 27A500BC */ addiu $a1, $sp, 0x00BC ## $a1 = FFFFFFD4
|
||||
/* 00538 808B0E98 8FA60028 */ lw $a2, 0x0028($sp)
|
||||
/* 0053C 808B0E9C 27A500B0 */ addiu $a1, $sp, 0x00B0 ## $a1 = FFFFFFC8
|
||||
/* 00540 808B0EA0 0C01DFA7 */ jal Math_Vec3f_Sum
|
||||
## Vec3f_Add
|
||||
/* 00544 808B0EA4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
|
||||
/* 00548 808B0EA8 8FA60028 */ lw $a2, 0x0028($sp)
|
||||
/* 0054C 808B0EAC 27A500A4 */ addiu $a1, $sp, 0x00A4 ## $a1 = FFFFFFBC
|
||||
/* 00550 808B0EB0 0C01DFA7 */ jal Math_Vec3f_Sum
|
||||
## Vec3f_Add
|
||||
/* 00554 808B0EB4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
|
||||
/* 00558 808B0EB8 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
|
||||
/* 0055C 808B0EBC 8FA50028 */ lw $a1, 0x0028($sp)
|
||||
/* 00560 808B0EC0 26040168 */ addiu $a0, $s0, 0x0168 ## $a0 = 00000168
|
||||
/* 00564 808B0EC4 E6040178 */ swc1 $f4, 0x0178($s0) ## 00000178
|
||||
/* 00568 808B0EC8 AFA40024 */ sw $a0, 0x0024($sp)
|
||||
/* 0056C 808B0ECC 0C01DFA7 */ jal Math_Vec3f_Sum
|
||||
## Vec3f_Add
|
||||
/* 00570 808B0ED0 27A60098 */ addiu $a2, $sp, 0x0098 ## $a2 = FFFFFFB0
|
||||
/* 00574 808B0ED4 8FAC002C */ lw $t4, 0x002C($sp)
|
||||
/* 00578 808B0ED8 3C01808B */ lui $at, %hi(D_808B16D4) ## $at = 808B0000
|
||||
/* 0057C 808B0EDC C7A60098 */ lwc1 $f6, 0x0098($sp)
|
||||
/* 00580 808B0EE0 002C0821 */ addu $at, $at, $t4
|
||||
/* 00584 808B0EE4 C42016D4 */ lwc1 $f0, %lo(D_808B16D4)($at)
|
||||
/* 00588 808B0EE8 C7A800A0 */ lwc1 $f8, 0x00A0($sp)
|
||||
/* 0058C 808B0EEC 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
/* 00590 808B0EF0 46003282 */ mul.s $f10, $f6, $f0
|
||||
/* 00594 808B0EF4 27A50098 */ addiu $a1, $sp, 0x0098 ## $a1 = FFFFFFB0
|
||||
/* 00598 808B0EF8 46004402 */ mul.s $f16, $f8, $f0
|
||||
/* 0059C 808B0EFC E7AA0098 */ swc1 $f10, 0x0098($sp)
|
||||
/* 005A0 808B0F00 0C22C311 */ jal func_808B0C44
|
||||
/* 005A4 808B0F04 E7B000A0 */ swc1 $f16, 0x00A0($sp)
|
||||
/* 005A8 808B0F08 1040002A */ beq $v0, $zero, .L808B0FB4
|
||||
/* 005AC 808B0F0C 8FA80024 */ lw $t0, 0x0024($sp)
|
||||
/* 005B0 808B0F10 C60C0170 */ lwc1 $f12, 0x0170($s0) ## 00000170
|
||||
/* 005B4 808B0F14 0C032D57 */ jal Math3D_Dist1DSq
|
||||
/* 005B8 808B0F18 C60E0168 */ lwc1 $f14, 0x0168($s0) ## 00000168
|
||||
/* 005BC 808B0F1C 8FAD002C */ lw $t5, 0x002C($sp)
|
||||
/* 005C0 808B0F20 3C01808B */ lui $at, %hi(D_808B16E0) ## $at = 808B0000
|
||||
/* 005C4 808B0F24 3C05808B */ lui $a1, %hi(D_808B16B0) ## $a1 = 808B0000
|
||||
/* 005C8 808B0F28 002D0821 */ addu $at, $at, $t5
|
||||
/* 005CC 808B0F2C C42C16E0 */ lwc1 $f12, %lo(D_808B16E0)($at)
|
||||
/* 005D0 808B0F30 24A516B0 */ addiu $a1, $a1, %lo(D_808B16B0) ## $a1 = 808B16B0
|
||||
/* 005D4 808B0F34 27A40098 */ addiu $a0, $sp, 0x0098 ## $a0 = FFFFFFB0
|
||||
/* 005D8 808B0F38 4600603C */ c.lt.s $f12, $f0
|
||||
/* 005DC 808B0F3C 00000000 */ nop
|
||||
/* 005E0 808B0F40 4500000D */ bc1f .L808B0F78
|
||||
/* 005E4 808B0F44 00000000 */ nop
|
||||
/* 005E8 808B0F48 46006083 */ div.s $f2, $f12, $f0
|
||||
/* 005EC 808B0F4C C6120168 */ lwc1 $f18, 0x0168($s0) ## 00000168
|
||||
/* 005F0 808B0F50 C60A0170 */ lwc1 $f10, 0x0170($s0) ## 00000170
|
||||
/* 005F4 808B0F54 3C01808B */ lui $at, %hi(D_808B16EC) ## $at = 808B0000
|
||||
/* 005F8 808B0F58 46029102 */ mul.s $f4, $f18, $f2
|
||||
/* 005FC 808B0F5C E6040168 */ swc1 $f4, 0x0168($s0) ## 00000168
|
||||
/* 00600 808B0F60 46025202 */ mul.s $f8, $f10, $f2
|
||||
/* 00604 808B0F64 8FAE002C */ lw $t6, 0x002C($sp)
|
||||
/* 00608 808B0F68 002E0821 */ addu $at, $at, $t6
|
||||
/* 0060C 808B0F6C C42616EC */ lwc1 $f6, %lo(D_808B16EC)($at)
|
||||
/* 00610 808B0F70 E6080170 */ swc1 $f8, 0x0170($s0) ## 00000170
|
||||
/* 00614 808B0F74 E606016C */ swc1 $f6, 0x016C($s0) ## 0000016C
|
||||
.L808B0F78:
|
||||
/* 00618 808B0F78 0C22C2F5 */ jal func_808B0BD4
|
||||
/* 0061C 808B0F7C 8FA60024 */ lw $a2, 0x0024($sp)
|
||||
/* 00620 808B0F80 27A4008C */ addiu $a0, $sp, 0x008C ## $a0 = FFFFFFA4
|
||||
/* 00624 808B0F84 0C22C311 */ jal func_808B0C44
|
||||
/* 00628 808B0F88 27A50098 */ addiu $a1, $sp, 0x0098 ## $a1 = FFFFFFB0
|
||||
/* 0062C 808B0F8C 10400007 */ beq $v0, $zero, .L808B0FAC
|
||||
/* 00630 808B0F90 27AF008C */ addiu $t7, $sp, 0x008C ## $t7 = FFFFFFA4
|
||||
/* 00634 808B0F94 8DF90000 */ lw $t9, 0x0000($t7) ## FFFFFFA4
|
||||
/* 00638 808B0F98 AE190180 */ sw $t9, 0x0180($s0) ## 00000180
|
||||
/* 0063C 808B0F9C 8DF80004 */ lw $t8, 0x0004($t7) ## FFFFFFA8
|
||||
/* 00640 808B0FA0 AE180184 */ sw $t8, 0x0184($s0) ## 00000184
|
||||
/* 00644 808B0FA4 8DF90008 */ lw $t9, 0x0008($t7) ## FFFFFFAC
|
||||
/* 00648 808B0FA8 AE190188 */ sw $t9, 0x0188($s0) ## 00000188
|
||||
.L808B0FAC:
|
||||
/* 0064C 808B0FAC 1000000A */ beq $zero, $zero, .L808B0FD8
|
||||
/* 00650 808B0FB0 26070180 */ addiu $a3, $s0, 0x0180 ## $a3 = 00000180
|
||||
.L808B0FB4:
|
||||
/* 00654 808B0FB4 3C09808B */ lui $t1, %hi(D_808B16B0) ## $t1 = 808B0000
|
||||
/* 00658 808B0FB8 252916B0 */ addiu $t1, $t1, %lo(D_808B16B0) ## $t1 = 808B16B0
|
||||
/* 0065C 808B0FBC 8D2B0000 */ lw $t3, 0x0000($t1) ## 808B16B0
|
||||
/* 00660 808B0FC0 26070180 */ addiu $a3, $s0, 0x0180 ## $a3 = 00000180
|
||||
/* 00664 808B0FC4 AD0B0000 */ sw $t3, 0x0000($t0) ## 00000000
|
||||
/* 00668 808B0FC8 8D2A0004 */ lw $t2, 0x0004($t1) ## 808B16B4
|
||||
/* 0066C 808B0FCC AD0A0004 */ sw $t2, 0x0004($t0) ## 00000004
|
||||
/* 00670 808B0FD0 8D2B0008 */ lw $t3, 0x0008($t1) ## 808B16B8
|
||||
/* 00674 808B0FD4 AD0B0008 */ sw $t3, 0x0008($t0) ## 00000008
|
||||
.L808B0FD8:
|
||||
/* 00678 808B0FD8 3C04808B */ lui $a0, %hi(D_808B16B0) ## $a0 = 808B0000
|
||||
/* 0067C 808B0FDC 248416B0 */ addiu $a0, $a0, %lo(D_808B16B0) ## $a0 = 808B16B0
|
||||
/* 00680 808B0FE0 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00684 808B0FE4 0C032BFB */ jal Math3D_Cos
|
||||
/* 00688 808B0FE8 AFA7002C */ sw $a3, 0x002C($sp)
|
||||
/* 0068C 808B0FEC 0C03F4DA */ jal Math_FAcosF
|
||||
/* 00690 808B0FF0 46000306 */ mov.s $f12, $f0
|
||||
/* 00694 808B0FF4 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 00698 808B0FF8 46000306 */ mov.s $f12, $f0
|
||||
/* 0069C 808B0FFC 0C0348FF */ jal func_800D23FC
|
||||
/* 006A0 808B1000 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
|
||||
/* 006A4 808B1004 860C00B6 */ lh $t4, 0x00B6($s0) ## 000000B6
|
||||
/* 006A8 808B1008 3C01808B */ lui $at, %hi(D_808B188C) ## $at = 808B0000
|
||||
/* 006AC 808B100C C424188C */ lwc1 $f4, %lo(D_808B188C)($at)
|
||||
/* 006B0 808B1010 448C8000 */ mtc1 $t4, $f16 ## $f16 = 0.00
|
||||
/* 006B4 808B1014 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
|
||||
/* 006B8 808B1018 468084A0 */ cvt.s.w $f18, $f16
|
||||
/* 006BC 808B101C 46049302 */ mul.s $f12, $f18, $f4
|
||||
/* 006C0 808B1020 0C034348 */ jal Matrix_RotateY
|
||||
/* 006C4 808B1024 00000000 */ nop
|
||||
/* 006C8 808B1028 0C034236 */ jal Matrix_Get
|
||||
/* 006CC 808B102C 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFF5C
|
||||
/* 006D0 808B1030 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFF5C
|
||||
/* 006D4 808B1034 260500B4 */ addiu $a1, $s0, 0x00B4 ## $a1 = 000000B4
|
||||
/* 006D8 808B1038 0C034833 */ jal func_800D20CC
|
||||
/* 006DC 808B103C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
|
||||
/* 006E0 808B1040 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 006E4 808B1044 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 006E8 808B1048 27BD00E8 */ addiu $sp, $sp, 0x00E8 ## $sp = 00000000
|
||||
/* 006EC 808B104C 03E00008 */ jr $ra
|
||||
/* 006F0 808B1050 00000000 */ nop
|
@ -1,70 +0,0 @@
|
||||
glabel func_808B1054
|
||||
/* 006F4 808B1054 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
|
||||
/* 006F8 808B1058 AFB00038 */ sw $s0, 0x0038($sp)
|
||||
/* 006FC 808B105C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00700 808B1060 AFBF003C */ sw $ra, 0x003C($sp)
|
||||
/* 00704 808B1064 AFA50054 */ sw $a1, 0x0054($sp)
|
||||
/* 00708 808B1068 0C01DE1C */ jal Math_SinS
|
||||
## sins?
|
||||
/* 0070C 808B106C 84840016 */ lh $a0, 0x0016($a0) ## 00000016
|
||||
/* 00710 808B1070 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
||||
/* 00714 808B1074 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00
|
||||
/* 00718 808B1078 00000000 */ nop
|
||||
/* 0071C 808B107C 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 00720 808B1080 E7A60044 */ swc1 $f6, 0x0044($sp)
|
||||
/* 00724 808B1084 0C01DE0D */ jal Math_CosS
|
||||
## coss?
|
||||
/* 00728 808B1088 86040016 */ lh $a0, 0x0016($s0) ## 00000016
|
||||
/* 0072C 808B108C 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
||||
/* 00730 808B1090 44814000 */ mtc1 $at, $f8 ## $f8 = 100.00
|
||||
/* 00734 808B1094 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
|
||||
/* 00738 808B1098 C7A40044 */ lwc1 $f4, 0x0044($sp)
|
||||
/* 0073C 808B109C 46080082 */ mul.s $f2, $f0, $f8
|
||||
/* 00740 808B10A0 31CF0100 */ andi $t7, $t6, 0x0100 ## $t7 = 00000000
|
||||
/* 00744 808B10A4 15E0001E */ bne $t7, $zero, .L808B1120
|
||||
/* 00748 808B10A8 46001306 */ mov.s $f12, $f2
|
||||
/* 0074C 808B10AC C60A0008 */ lwc1 $f10, 0x0008($s0) ## 00000008
|
||||
/* 00750 808B10B0 8FA60054 */ lw $a2, 0x0054($sp)
|
||||
/* 00754 808B10B4 24090123 */ addiu $t1, $zero, 0x0123 ## $t1 = 00000123
|
||||
/* 00758 808B10B8 E7AA0010 */ swc1 $f10, 0x0010($sp)
|
||||
/* 0075C 808B10BC C610000C */ lwc1 $f16, 0x000C($s0) ## 0000000C
|
||||
/* 00760 808B10C0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00764 808B10C4 240700D1 */ addiu $a3, $zero, 0x00D1 ## $a3 = 000000D1
|
||||
/* 00768 808B10C8 E7B00014 */ swc1 $f16, 0x0014($sp)
|
||||
/* 0076C 808B10CC C6120010 */ lwc1 $f18, 0x0010($s0) ## 00000010
|
||||
/* 00770 808B10D0 24C41C24 */ addiu $a0, $a2, 0x1C24 ## $a0 = 00001C24
|
||||
/* 00774 808B10D4 E7B20018 */ swc1 $f18, 0x0018($sp)
|
||||
/* 00778 808B10D8 86180014 */ lh $t8, 0x0014($s0) ## 00000014
|
||||
/* 0077C 808B10DC AFB8001C */ sw $t8, 0x001C($sp)
|
||||
/* 00780 808B10E0 86190016 */ lh $t9, 0x0016($s0) ## 00000016
|
||||
/* 00784 808B10E4 AFB90020 */ sw $t9, 0x0020($sp)
|
||||
/* 00788 808B10E8 86080018 */ lh $t0, 0x0018($s0) ## 00000018
|
||||
/* 0078C 808B10EC E7AC0040 */ swc1 $f12, 0x0040($sp)
|
||||
/* 00790 808B10F0 AFA90028 */ sw $t1, 0x0028($sp)
|
||||
/* 00794 808B10F4 0C00C916 */ jal Actor_SpawnAsChild
|
||||
|
||||
/* 00798 808B10F8 AFA80024 */ sw $t0, 0x0024($sp)
|
||||
/* 0079C 808B10FC C7AC0040 */ lwc1 $f12, 0x0040($sp)
|
||||
/* 007A0 808B1100 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
|
||||
/* 007A4 808B1104 C7A60044 */ lwc1 $f6, 0x0044($sp)
|
||||
/* 007A8 808B1108 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C
|
||||
/* 007AC 808B110C 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 007B0 808B1110 460C5400 */ add.s $f16, $f10, $f12
|
||||
/* 007B4 808B1114 E6080024 */ swc1 $f8, 0x0024($s0) ## 00000024
|
||||
/* 007B8 808B1118 10000007 */ beq $zero, $zero, .L808B1138
|
||||
/* 007BC 808B111C E610002C */ swc1 $f16, 0x002C($s0) ## 0000002C
|
||||
.L808B1120:
|
||||
/* 007C0 808B1120 C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024
|
||||
/* 007C4 808B1124 C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C
|
||||
/* 007C8 808B1128 46049181 */ sub.s $f6, $f18, $f4
|
||||
/* 007CC 808B112C 46024281 */ sub.s $f10, $f8, $f2
|
||||
/* 007D0 808B1130 E6060024 */ swc1 $f6, 0x0024($s0) ## 00000024
|
||||
/* 007D4 808B1134 E60A002C */ swc1 $f10, 0x002C($s0) ## 0000002C
|
||||
.L808B1138:
|
||||
/* 007D8 808B1138 0C22C51F */ jal func_808B147C
|
||||
/* 007DC 808B113C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 007E0 808B1140 8FBF003C */ lw $ra, 0x003C($sp)
|
||||
/* 007E4 808B1144 8FB00038 */ lw $s0, 0x0038($sp)
|
||||
/* 007E8 808B1148 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
|
||||
/* 007EC 808B114C 03E00008 */ jr $ra
|
||||
/* 007F0 808B1150 00000000 */ nop
|
@ -1,10 +0,0 @@
|
||||
glabel func_808B1388
|
||||
/* 00A28 808B1388 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00A2C 808B138C AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00A30 808B1390 3C05808B */ lui $a1, %hi(func_808B13AC) ## $a1 = 808B0000
|
||||
/* 00A34 808B1394 0C22C258 */ jal func_808B0960
|
||||
/* 00A38 808B1398 24A513AC */ addiu $a1, $a1, %lo(func_808B13AC) ## $a1 = 808B13AC
|
||||
/* 00A3C 808B139C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00A40 808B13A0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00A44 808B13A4 03E00008 */ jr $ra
|
||||
/* 00A48 808B13A8 00000000 */ nop
|
@ -1,21 +0,0 @@
|
||||
glabel func_808B13AC
|
||||
/* 00A4C 808B13AC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00A50 808B13B0 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00A54 808B13B4 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00A58 808B13B8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00A5C 808B13BC 0C22C2A1 */ jal func_808B0A84
|
||||
/* 00A60 808B13C0 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00A64 808B13C4 0C22C2B8 */ jal func_808B0AE0
|
||||
/* 00A68 808B13C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00A6C 808B13CC 0C22C2E3 */ jal func_808B0B8C
|
||||
/* 00A70 808B13D0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00A74 808B13D4 860E0016 */ lh $t6, 0x0016($s0) ## 00000016
|
||||
/* 00A78 808B13D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00A7C 808B13DC A60E00B6 */ sh $t6, 0x00B6($s0) ## 000000B6
|
||||
/* 00A80 808B13E0 0C22C338 */ jal func_808B0CE0
|
||||
/* 00A84 808B13E4 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00A88 808B13E8 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00A8C 808B13EC 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00A90 808B13F0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 00A94 808B13F4 03E00008 */ jr $ra
|
||||
/* 00A98 808B13F8 00000000 */ nop
|
@ -1,10 +0,0 @@
|
||||
glabel func_808B13FC
|
||||
/* 00A9C 808B13FC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00AA0 808B1400 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00AA4 808B1404 3C05808B */ lui $a1, %hi(func_808B1420) ## $a1 = 808B0000
|
||||
/* 00AA8 808B1408 0C22C258 */ jal func_808B0960
|
||||
/* 00AAC 808B140C 24A51420 */ addiu $a1, $a1, %lo(func_808B1420) ## $a1 = 808B1420
|
||||
/* 00AB0 808B1410 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00AB4 808B1414 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00AB8 808B1418 03E00008 */ jr $ra
|
||||
/* 00ABC 808B141C 00000000 */ nop
|
@ -1,24 +0,0 @@
|
||||
glabel func_808B1420
|
||||
/* 00AC0 808B1420 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00AC4 808B1424 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00AC8 808B1428 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00ACC 808B142C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00AD0 808B1430 0C22C2A1 */ jal func_808B0A84
|
||||
/* 00AD4 808B1434 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00AD8 808B1438 0C22C2B8 */ jal func_808B0AE0
|
||||
/* 00ADC 808B143C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00AE0 808B1440 0C22C2E3 */ jal func_808B0B8C
|
||||
/* 00AE4 808B1444 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00AE8 808B1448 860E0032 */ lh $t6, 0x0032($s0) ## 00000032
|
||||
/* 00AEC 808B144C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00AF0 808B1450 25CF0190 */ addiu $t7, $t6, 0x0190 ## $t7 = 00000190
|
||||
/* 00AF4 808B1454 A60F0032 */ sh $t7, 0x0032($s0) ## 00000032
|
||||
/* 00AF8 808B1458 86180032 */ lh $t8, 0x0032($s0) ## 00000032
|
||||
/* 00AFC 808B145C A61800B6 */ sh $t8, 0x00B6($s0) ## 000000B6
|
||||
/* 00B00 808B1460 0C22C338 */ jal func_808B0CE0
|
||||
/* 00B04 808B1464 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00B08 808B1468 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00B0C 808B146C 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00B10 808B1470 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 00B14 808B1474 03E00008 */ jr $ra
|
||||
/* 00B18 808B1478 00000000 */ nop
|
@ -1,10 +0,0 @@
|
||||
glabel func_808B147C
|
||||
/* 00B1C 808B147C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00B20 808B1480 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00B24 808B1484 3C05808B */ lui $a1, %hi(func_808B14A0) ## $a1 = 808B0000
|
||||
/* 00B28 808B1488 0C22C258 */ jal func_808B0960
|
||||
/* 00B2C 808B148C 24A514A0 */ addiu $a1, $a1, %lo(func_808B14A0) ## $a1 = 808B14A0
|
||||
/* 00B30 808B1490 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00B34 808B1494 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00B38 808B1498 03E00008 */ jr $ra
|
||||
/* 00B3C 808B149C 00000000 */ nop
|
@ -1,58 +0,0 @@
|
||||
glabel func_808B14A0
|
||||
/* 00B40 808B14A0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 00B44 808B14A4 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00B48 808B14A8 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00B4C 808B14AC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00B50 808B14B0 0C22C2A1 */ jal func_808B0A84
|
||||
/* 00B54 808B14B4 AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00B58 808B14B8 0C22C2B8 */ jal func_808B0AE0
|
||||
/* 00B5C 808B14BC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00B60 808B14C0 0C22C2E3 */ jal func_808B0B8C
|
||||
/* 00B64 808B14C4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00B68 808B14C8 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
|
||||
/* 00B6C 808B14CC 31CF0100 */ andi $t7, $t6, 0x0100 ## $t7 = 00000000
|
||||
/* 00B70 808B14D0 55E0001F */ bnel $t7, $zero, .L808B1550
|
||||
/* 00B74 808B14D4 86090016 */ lh $t1, 0x0016($s0) ## 00000016
|
||||
/* 00B78 808B14D8 86180032 */ lh $t8, 0x0032($s0) ## 00000032
|
||||
/* 00B7C 808B14DC 27190190 */ addiu $t9, $t8, 0x0190 ## $t9 = 00000190
|
||||
/* 00B80 808B14E0 A6190032 */ sh $t9, 0x0032($s0) ## 00000032
|
||||
/* 00B84 808B14E4 0C01DE1C */ jal Math_SinS
|
||||
## sins?
|
||||
/* 00B88 808B14E8 86040032 */ lh $a0, 0x0032($s0) ## 00000032
|
||||
/* 00B8C 808B14EC 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
||||
/* 00B90 808B14F0 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00
|
||||
/* 00B94 808B14F4 86040032 */ lh $a0, 0x0032($s0) ## 00000032
|
||||
/* 00B98 808B14F8 46040082 */ mul.s $f2, $f0, $f4
|
||||
/* 00B9C 808B14FC 0C01DE0D */ jal Math_CosS
|
||||
## coss?
|
||||
/* 00BA0 808B1500 E7A20020 */ swc1 $f2, 0x0020($sp)
|
||||
/* 00BA4 808B1504 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
||||
/* 00BA8 808B1508 44814000 */ mtc1 $at, $f8 ## $f8 = 100.00
|
||||
/* 00BAC 808B150C C7A20020 */ lwc1 $f2, 0x0020($sp)
|
||||
/* 00BB0 808B1510 C60E0008 */ lwc1 $f14, 0x0008($s0) ## 00000008
|
||||
/* 00BB4 808B1514 46080302 */ mul.s $f12, $f0, $f8
|
||||
/* 00BB8 808B1518 C60A0010 */ lwc1 $f10, 0x0010($s0) ## 00000010
|
||||
/* 00BBC 808B151C 46027180 */ add.s $f6, $f14, $f2
|
||||
/* 00BC0 808B1520 8E02011C */ lw $v0, 0x011C($s0) ## 0000011C
|
||||
/* 00BC4 808B1524 E6060024 */ swc1 $f6, 0x0024($s0) ## 00000024
|
||||
/* 00BC8 808B1528 460C5400 */ add.s $f16, $f10, $f12
|
||||
/* 00BCC 808B152C 10400007 */ beq $v0, $zero, .L808B154C
|
||||
/* 00BD0 808B1530 E610002C */ swc1 $f16, 0x002C($s0) ## 0000002C
|
||||
/* 00BD4 808B1534 46027481 */ sub.s $f18, $f14, $f2
|
||||
/* 00BD8 808B1538 E4520024 */ swc1 $f18, 0x0024($v0) ## 00000024
|
||||
/* 00BDC 808B153C C6040010 */ lwc1 $f4, 0x0010($s0) ## 00000010
|
||||
/* 00BE0 808B1540 8E08011C */ lw $t0, 0x011C($s0) ## 0000011C
|
||||
/* 00BE4 808B1544 460C2181 */ sub.s $f6, $f4, $f12
|
||||
/* 00BE8 808B1548 E506002C */ swc1 $f6, 0x002C($t0) ## 0000002C
|
||||
.L808B154C:
|
||||
/* 00BEC 808B154C 86090016 */ lh $t1, 0x0016($s0) ## 00000016
|
||||
.L808B1550:
|
||||
/* 00BF0 808B1550 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00BF4 808B1554 A60900B6 */ sh $t1, 0x00B6($s0) ## 000000B6
|
||||
/* 00BF8 808B1558 0C22C338 */ jal func_808B0CE0
|
||||
/* 00BFC 808B155C 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 00C00 808B1560 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00C04 808B1564 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00C08 808B1568 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 00C0C 808B156C 03E00008 */ jr $ra
|
||||
/* 00C10 808B1570 00000000 */ nop
|
@ -1,9 +0,0 @@
|
||||
glabel func_808B1574
|
||||
/* 00C14 808B1574 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00C18 808B1578 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00C1C 808B157C 0C22C258 */ jal func_808B0960
|
||||
/* 00C20 808B1580 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00C24 808B1584 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00C28 808B1588 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00C2C 808B158C 03E00008 */ jr $ra
|
||||
/* 00C30 808B1590 00000000 */ nop
|
@ -1,32 +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_Spot08_Iceblock_InitVars
|
||||
.word 0x00D10100, 0x00000000, 0x00740000, 0x0000019C
|
||||
.word BgSpot08Iceblock_Init
|
||||
.word BgSpot08Iceblock_Destroy
|
||||
.word BgSpot08Iceblock_Update
|
||||
.word BgSpot08Iceblock_Draw
|
||||
glabel D_808B16B0
|
||||
.word 0x00000000, 0x3F800000, 0x00000000
|
||||
glabel D_808B16BC
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
glabel D_808B16C8
|
||||
.word 0x32756D3C, 0x31C45764, 0x30C45764
|
||||
glabel D_808B16D4
|
||||
.word 0x3F75C28F, 0x3F75C28F, 0x3F7AE148
|
||||
glabel D_808B16E0
|
||||
.word 0x3E665991, 0x3E665991, 0x3D0EF2BF
|
||||
glabel D_808B16EC
|
||||
.word 0x3F797051, 0x3F797051, 0x3F7FD814
|
||||
glabel D_808B16F8
|
||||
.word 0xB0F40BB8, 0xB0F803E8, 0x30FC0898, 0x00000000, 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_808B18B0
|
||||
.incbin "baserom/ovl_Bg_Spot08_Iceblock", 0xF50, 0x00000230
|
3
spec
3
spec
@ -1213,8 +1213,7 @@ endseg
|
||||
beginseg
|
||||
name "ovl_Bg_Spot08_Iceblock"
|
||||
include "build/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.o"
|
||||
include "build/data/overlays/actors/z_bg_spot08_iceblock.data.o"
|
||||
include "build/data/overlays/actors/z_bg_spot08_iceblock.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Bg_Spot08_Iceblock/ovl_Bg_Spot08_Iceblock_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
@ -1,3 +1,9 @@
|
||||
/*
|
||||
* File: z_bg_spot08_iceblock.c
|
||||
* Overlay: ovl_Bg_Spot08_Iceblock
|
||||
* Description: Floating ice platforms
|
||||
*/
|
||||
|
||||
#include "z_bg_spot08_iceblock.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
@ -9,12 +15,14 @@ void BgSpot08Iceblock_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgSpot08Iceblock_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgSpot08Iceblock_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
extern UNK_TYPE D_06000DE0;
|
||||
extern UNK_TYPE D_06002BD0;
|
||||
extern UNK_TYPE D_06002FD8;
|
||||
extern UNK_TYPE D_06001904;
|
||||
void BgSpot08Iceblock_SetupFloatNonrotating(BgSpot08Iceblock* this);
|
||||
void BgSpot08Iceblock_FloatNonrotating(BgSpot08Iceblock* this, GlobalContext* globalCtx);
|
||||
void BgSpot08Iceblock_SetupFloatRotating(BgSpot08Iceblock* this);
|
||||
void BgSpot08Iceblock_FloatRotating(BgSpot08Iceblock* this, GlobalContext* globalCtx);
|
||||
void BgSpot08Iceblock_SetupFloatOrbitingTwins(BgSpot08Iceblock* this);
|
||||
void BgSpot08Iceblock_FloatOrbitingTwins(BgSpot08Iceblock* this, GlobalContext* globalCtx);
|
||||
void BgSpot08Iceblock_SetupNoAction(BgSpot08Iceblock* this);
|
||||
|
||||
/*
|
||||
const ActorInit Bg_Spot08_Iceblock_InitVars = {
|
||||
ACTOR_BG_SPOT08_ICEBLOCK,
|
||||
ACTORCAT_BG,
|
||||
@ -26,47 +34,418 @@ const ActorInit Bg_Spot08_Iceblock_InitVars = {
|
||||
(ActorFunc)BgSpot08Iceblock_Update,
|
||||
(ActorFunc)BgSpot08Iceblock_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B0960.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B0968.s")
|
||||
extern Gfx D_06000DE0[]; // Large iceberg spawned in place of Jabu
|
||||
extern CollisionHeader D_06001904; // Large iceberg spawned in place of Jabu
|
||||
extern Gfx D_06002BD0[]; // Hexagonal ice floe
|
||||
extern CollisionHeader D_06002FD8; // Hexagonal ice floe
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B09F0.s")
|
||||
void BgSpot08Iceblock_SetupAction(BgSpot08Iceblock* this, BgSpot08IceblockActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B0A84.s")
|
||||
void BgSpot08Iceblock_InitDynaPoly(BgSpot08Iceblock* this, GlobalContext* globalCtx, CollisionHeader* collision,
|
||||
DynaPolyMoveFlag flags) {
|
||||
s32 pad;
|
||||
CollisionHeader* colHeader = NULL;
|
||||
s32 pad2;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B0AE0.s")
|
||||
DynaPolyActor_Init(&this->dyna, flags);
|
||||
CollisionHeader_GetVirtual(collision, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
if (this->dyna.bgId == BG_ACTOR_MAX) {
|
||||
// Warning: move BG registration failed
|
||||
osSyncPrintf("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n", "../z_bg_spot08_iceblock.c", 0xD9,
|
||||
this->dyna.actor.id, this->dyna.actor.params);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B0B8C.s")
|
||||
// Sets params to 0x10 (medium, nonrotating) if not in the cases listed.
|
||||
void BgSpot08Iceblock_CheckParams(BgSpot08Iceblock* this) {
|
||||
switch (this->dyna.actor.params & 0xFF) {
|
||||
case 0xFF:
|
||||
this->dyna.actor.params = 0x10;
|
||||
break;
|
||||
default:
|
||||
// Error: arg_data setting error
|
||||
osSyncPrintf("Error : arg_data 設定ミスです。(%s %d)(arg_data 0x%04x)\n", "../z_bg_spot08_iceblock.c", 0xF6,
|
||||
this->dyna.actor.params);
|
||||
this->dyna.actor.params = 0x10;
|
||||
break;
|
||||
case 1:
|
||||
case 4:
|
||||
case 0x10:
|
||||
case 0x11:
|
||||
case 0x12:
|
||||
case 0x14:
|
||||
case 0x20:
|
||||
case 0x23:
|
||||
case 0x24:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B0BA8.s")
|
||||
void BgSpot08Iceblock_Bobbing(BgSpot08Iceblock* this) {
|
||||
this->bobOffset = (Math_SinS(this->bobPhaseSlow) * 4.0f) + (Math_SinS(this->bobPhaseFast) * 3.0f);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B0BD4.s")
|
||||
void BgSpot08Iceblock_SinkUnderPlayer(BgSpot08Iceblock* this) {
|
||||
f32 target;
|
||||
f32 step;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B0C44.s")
|
||||
switch (this->dyna.actor.params & 0xF0) {
|
||||
case 0:
|
||||
step = 0.15f;
|
||||
break;
|
||||
case 0x10:
|
||||
step = 0.2f;
|
||||
break;
|
||||
case 0x20:
|
||||
step = 0.4f;
|
||||
break;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B0CE0.s")
|
||||
// Sink under Player's weight if standing on it
|
||||
target = (func_80043548(&this->dyna) ? -4.0f : 0.0f);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B1054.s")
|
||||
Math_StepToF(&this->sinkOffset, target, step);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/BgSpot08Iceblock_Init.s")
|
||||
void BgSpot08Iceblock_SetWaterline(BgSpot08Iceblock* this) {
|
||||
this->dyna.actor.world.pos.y = this->sinkOffset + this->bobOffset + this->dyna.actor.home.pos.y;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/BgSpot08Iceblock_Destroy.s")
|
||||
void BgSpot08Iceblock_MultVectorScalar(Vec3f* dest, Vec3f* v, f32 scale) {
|
||||
dest->x = v->x * scale;
|
||||
dest->y = v->y * scale;
|
||||
dest->z = v->z * scale;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B1388.s")
|
||||
void BgSpot08Iceblock_CrossProduct(Vec3f* dest, Vec3f* v1, Vec3f* v2) {
|
||||
dest->x = (v1->y * v2->z) - (v1->z * v2->y);
|
||||
dest->y = (v1->z * v2->x) - (v1->x * v2->z);
|
||||
dest->z = (v1->x * v2->y) - (v1->y * v2->x);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B13AC.s")
|
||||
s32 BgSpot08Iceblock_NormalizeVector(Vec3f* dest, Vec3f* v) {
|
||||
f32 magnitude;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B13FC.s")
|
||||
magnitude = Math3D_Vec3fMagnitude(v);
|
||||
if (magnitude < 0.001f) {
|
||||
dest->x = dest->y = 0.0f;
|
||||
dest->z = 1.0f;
|
||||
return false;
|
||||
} else {
|
||||
dest->x = v->x * (1.0f / magnitude);
|
||||
dest->y = v->y * (1.0f / magnitude);
|
||||
dest->z = v->z * (1.0f / magnitude);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B1420.s")
|
||||
static Vec3f sVerticalVector = { 0.0f, 1.0f, 0.0f };
|
||||
static Vec3f sZeroVector = { 0.0f, 0.0f, 0.0f };
|
||||
static f32 sInertias[] = { 1.0f / 70000000, 1.0f / 175000000, 1.0f / 700000000 };
|
||||
static f32 sDampingFactors[] = { 0.96f, 0.96f, 0.98f };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B147C.s")
|
||||
static f32 sRollSins[] = {
|
||||
0.22495104f, // sin(13 degrees)
|
||||
0.22495104f, // sin(13 degrees)
|
||||
0.03489947f, // sin(2 degrees)
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B14A0.s")
|
||||
static f32 sRollCoss[] = {
|
||||
0.97437006f, // cos(13 degrees)
|
||||
0.97437006f, // cos(13 degrees)
|
||||
0.99939084f, // cos(2 degrees)
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/func_808B1574.s")
|
||||
/**
|
||||
* Handles all the factors that influence rolling: inertia, random oscillations, and most significantly, player weight,
|
||||
* and combines them to produce a matrix that rotates the actor to match the surface normal
|
||||
*/
|
||||
void BgSpot08Iceblock_Roll(BgSpot08Iceblock* this, GlobalContext* globalCtx) {
|
||||
f32 deviationFromVertSq;
|
||||
f32 stabilityCorrection;
|
||||
Vec3f surfaceNormalHorizontal;
|
||||
Vec3f playerCentroidDiff;
|
||||
Vec3f playerMoment;
|
||||
Vec3f surfaceNormalHorizontalScaled;
|
||||
Vec3f randomNutation;
|
||||
Vec3f tempVec; // reused with different meanings
|
||||
Vec3f torqueDirection;
|
||||
f32 playerCentroidDist;
|
||||
s32 rollDataIndex;
|
||||
MtxF mtx;
|
||||
s32 pad;
|
||||
Player* player = PLAYER;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/BgSpot08Iceblock_Update.s")
|
||||
switch (this->dyna.actor.params & 0xFF) {
|
||||
case 0x11: // Medium nonrotating
|
||||
rollDataIndex = 0;
|
||||
break;
|
||||
case 1:
|
||||
rollDataIndex = 1; // Large nonrotating
|
||||
break;
|
||||
default:
|
||||
rollDataIndex = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot08_Iceblock/BgSpot08Iceblock_Draw.s")
|
||||
Math_Vec3f_Diff(&player->actor.world.pos, &this->dyna.actor.world.pos, &playerCentroidDiff);
|
||||
playerCentroidDiff.y -= (150.0f * this->dyna.actor.scale.y);
|
||||
playerCentroidDist = Math3D_Vec3fMagnitude(&playerCentroidDiff);
|
||||
|
||||
randomNutation.x = (Rand_ZeroOne() - 0.5f) * (1.0f / 625);
|
||||
randomNutation.y = 0.0f;
|
||||
randomNutation.z = (Rand_ZeroOne() - 0.5f) * (1.0f / 625);
|
||||
|
||||
surfaceNormalHorizontal.x = this->surfaceNormal.x;
|
||||
surfaceNormalHorizontal.y = 0.0f;
|
||||
surfaceNormalHorizontal.z = this->surfaceNormal.z;
|
||||
|
||||
// If player is standing on it or holding the edge
|
||||
if (func_8004356C(&this->dyna) && (playerCentroidDist > 3.0f)) {
|
||||
Math_Vec3f_Diff(&playerCentroidDiff, &surfaceNormalHorizontal, &playerMoment);
|
||||
BgSpot08Iceblock_MultVectorScalar(&playerMoment, &playerMoment,
|
||||
(sInertias[rollDataIndex] * playerCentroidDist) / this->dyna.actor.scale.x);
|
||||
} else {
|
||||
playerMoment = sZeroVector;
|
||||
}
|
||||
|
||||
BgSpot08Iceblock_MultVectorScalar(&surfaceNormalHorizontalScaled, &surfaceNormalHorizontal, -0.01f);
|
||||
|
||||
// Add all three deviations
|
||||
Math_Vec3f_Sum(&this->normalDelta, &playerMoment, &this->normalDelta);
|
||||
Math_Vec3f_Sum(&this->normalDelta, &surfaceNormalHorizontalScaled, &this->normalDelta);
|
||||
Math_Vec3f_Sum(&this->normalDelta, &randomNutation, &this->normalDelta);
|
||||
|
||||
this->normalDelta.y = 0.0f;
|
||||
|
||||
Math_Vec3f_Sum(&this->surfaceNormal, &this->normalDelta, &tempVec);
|
||||
|
||||
tempVec.x *= sDampingFactors[rollDataIndex];
|
||||
tempVec.z *= sDampingFactors[rollDataIndex];
|
||||
|
||||
// Set up roll axis and final new angle
|
||||
if (BgSpot08Iceblock_NormalizeVector(&this->surfaceNormal, &tempVec)) {
|
||||
deviationFromVertSq = Math3D_Dist1DSq(this->surfaceNormal.z, this->surfaceNormal.x);
|
||||
|
||||
// Prevent overrolling
|
||||
if (sRollSins[rollDataIndex] < deviationFromVertSq) {
|
||||
stabilityCorrection = sRollSins[rollDataIndex] / deviationFromVertSq;
|
||||
|
||||
this->surfaceNormal.x *= stabilityCorrection;
|
||||
this->surfaceNormal.y = sRollCoss[rollDataIndex];
|
||||
this->surfaceNormal.z *= stabilityCorrection;
|
||||
}
|
||||
|
||||
BgSpot08Iceblock_CrossProduct(&tempVec, &sVerticalVector, &this->surfaceNormal);
|
||||
|
||||
if (BgSpot08Iceblock_NormalizeVector(&torqueDirection, &tempVec)) {
|
||||
this->rotationAxis = torqueDirection;
|
||||
}
|
||||
} else {
|
||||
this->surfaceNormal = sVerticalVector;
|
||||
}
|
||||
|
||||
// Rotation by the angle between surfaceNormal and the vertical about rotationAxis
|
||||
func_800D23FC(Math_FAcosF(Math3D_Cos(&sVerticalVector, &this->surfaceNormal)), &this->rotationAxis, MTXMODE_NEW);
|
||||
Matrix_RotateY(this->dyna.actor.shape.rot.y * (M_PI / 32768), MTXMODE_APPLY);
|
||||
Matrix_Get(&mtx);
|
||||
func_800D20CC(&mtx, &this->dyna.actor.shape.rot, MTXMODE_NEW);
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_SpawnTwinFloe(BgSpot08Iceblock* this, GlobalContext* globalCtx) {
|
||||
s32 pad[2];
|
||||
f32 sin;
|
||||
f32 cos;
|
||||
|
||||
sin = Math_SinS(this->dyna.actor.home.rot.y) * 100.0f;
|
||||
cos = Math_CosS(this->dyna.actor.home.rot.y) * 100.0f;
|
||||
|
||||
if (!(this->dyna.actor.params & 0x100)) {
|
||||
Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_BG_SPOT08_ICEBLOCK,
|
||||
this->dyna.actor.home.pos.x, this->dyna.actor.home.pos.y, this->dyna.actor.home.pos.z,
|
||||
this->dyna.actor.home.rot.x, this->dyna.actor.home.rot.y, this->dyna.actor.home.rot.z,
|
||||
0x123);
|
||||
|
||||
this->dyna.actor.world.pos.x += sin;
|
||||
this->dyna.actor.world.pos.z += cos;
|
||||
} else {
|
||||
this->dyna.actor.world.pos.x -= sin;
|
||||
this->dyna.actor.world.pos.z -= cos;
|
||||
}
|
||||
BgSpot08Iceblock_SetupFloatOrbitingTwins(this);
|
||||
}
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 2200, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgSpot08Iceblock_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot08Iceblock* this = THIS;
|
||||
CollisionHeader* colHeader;
|
||||
|
||||
// spot08 ice floe
|
||||
osSyncPrintf("(spot08 流氷)(arg_data 0x%04x)\n", this->dyna.actor.params);
|
||||
BgSpot08Iceblock_CheckParams(this);
|
||||
|
||||
switch (this->dyna.actor.params & 0x200) {
|
||||
case 0:
|
||||
colHeader = &D_06002FD8;
|
||||
break;
|
||||
case 0x200:
|
||||
colHeader = &D_06001904;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (this->dyna.actor.params & 0xF) {
|
||||
case 2:
|
||||
case 3:
|
||||
BgSpot08Iceblock_InitDynaPoly(this, globalCtx, colHeader, DPM_UNK3);
|
||||
break;
|
||||
default:
|
||||
BgSpot08Iceblock_InitDynaPoly(this, globalCtx, colHeader, DPM_UNK);
|
||||
break;
|
||||
}
|
||||
|
||||
if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
return;
|
||||
}
|
||||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
|
||||
switch (this->dyna.actor.params & 0xF0) {
|
||||
case 0:
|
||||
Actor_SetScale(&this->dyna.actor, 0.2f);
|
||||
break;
|
||||
case 0x10:
|
||||
Actor_SetScale(&this->dyna.actor, 0.1f);
|
||||
break;
|
||||
case 0x20:
|
||||
Actor_SetScale(&this->dyna.actor, 0.05f);
|
||||
break;
|
||||
}
|
||||
|
||||
this->bobPhaseSlow = (s32)(Rand_ZeroOne() * 65535.5f);
|
||||
this->bobPhaseFast = (s32)(Rand_ZeroOne() * 65535.5f);
|
||||
this->surfaceNormal.y = 1.0f;
|
||||
this->rotationAxis.x = 1.0f;
|
||||
|
||||
switch (this->dyna.actor.params & 0xF) {
|
||||
case 0:
|
||||
case 1:
|
||||
BgSpot08Iceblock_SetupFloatNonrotating(this);
|
||||
break;
|
||||
case 2:
|
||||
BgSpot08Iceblock_SetupFloatRotating(this);
|
||||
break;
|
||||
case 3:
|
||||
BgSpot08Iceblock_SpawnTwinFloe(this, globalCtx);
|
||||
break;
|
||||
case 4:
|
||||
BgSpot08Iceblock_SetupNoAction(this);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot08Iceblock* this = THIS;
|
||||
|
||||
DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_SetupFloatNonrotating(BgSpot08Iceblock* this) {
|
||||
BgSpot08Iceblock_SetupAction(this, BgSpot08Iceblock_FloatNonrotating);
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_FloatNonrotating(BgSpot08Iceblock* this, GlobalContext* globalCtx) {
|
||||
BgSpot08Iceblock_Bobbing(this);
|
||||
BgSpot08Iceblock_SinkUnderPlayer(this);
|
||||
BgSpot08Iceblock_SetWaterline(this);
|
||||
this->dyna.actor.shape.rot.y = this->dyna.actor.home.rot.y;
|
||||
BgSpot08Iceblock_Roll(this, globalCtx);
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_SetupFloatRotating(BgSpot08Iceblock* this) {
|
||||
BgSpot08Iceblock_SetupAction(this, BgSpot08Iceblock_FloatRotating);
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_FloatRotating(BgSpot08Iceblock* this, GlobalContext* globalCtx) {
|
||||
BgSpot08Iceblock_Bobbing(this);
|
||||
BgSpot08Iceblock_SinkUnderPlayer(this);
|
||||
BgSpot08Iceblock_SetWaterline(this);
|
||||
this->dyna.actor.world.rot.y = this->dyna.actor.world.rot.y + 0x190;
|
||||
this->dyna.actor.shape.rot.y = this->dyna.actor.world.rot.y;
|
||||
BgSpot08Iceblock_Roll(this, globalCtx);
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_SetupFloatOrbitingTwins(BgSpot08Iceblock* this) {
|
||||
BgSpot08Iceblock_SetupAction(this, BgSpot08Iceblock_FloatOrbitingTwins);
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_FloatOrbitingTwins(BgSpot08Iceblock* this, GlobalContext* globalCtx) {
|
||||
f32 cos;
|
||||
f32 sin;
|
||||
|
||||
BgSpot08Iceblock_Bobbing(this);
|
||||
BgSpot08Iceblock_SinkUnderPlayer(this);
|
||||
BgSpot08Iceblock_SetWaterline(this);
|
||||
|
||||
// parent handles rotations of both
|
||||
if (!(this->dyna.actor.params & 0x100)) {
|
||||
this->dyna.actor.world.rot.y += 0x190;
|
||||
sin = Math_SinS(this->dyna.actor.world.rot.y) * 100.0f;
|
||||
cos = Math_CosS(this->dyna.actor.world.rot.y) * 100.0f;
|
||||
|
||||
this->dyna.actor.world.pos.x = this->dyna.actor.home.pos.x + sin;
|
||||
this->dyna.actor.world.pos.z = this->dyna.actor.home.pos.z + cos;
|
||||
|
||||
if (this->dyna.actor.child != NULL) {
|
||||
this->dyna.actor.child->world.pos.x = this->dyna.actor.home.pos.x - sin;
|
||||
this->dyna.actor.child->world.pos.z = this->dyna.actor.home.pos.z - cos;
|
||||
}
|
||||
}
|
||||
|
||||
this->dyna.actor.shape.rot.y = this->dyna.actor.home.rot.y;
|
||||
BgSpot08Iceblock_Roll(this, globalCtx);
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_SetupNoAction(BgSpot08Iceblock* this) {
|
||||
BgSpot08Iceblock_SetupAction(this, NULL);
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot08Iceblock* this = THIS;
|
||||
|
||||
if (Rand_ZeroOne() < 0.05f) {
|
||||
this->bobIncrSlow = Rand_S16Offset(300, 100);
|
||||
this->bobIncrFast = Rand_S16Offset(800, 400);
|
||||
}
|
||||
|
||||
this->bobPhaseSlow += this->bobIncrSlow;
|
||||
this->bobPhaseFast += this->bobIncrFast;
|
||||
if (this->actionFunc != NULL) {
|
||||
this->actionFunc(this, globalCtx);
|
||||
}
|
||||
}
|
||||
|
||||
void BgSpot08Iceblock_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx* dList;
|
||||
BgSpot08Iceblock* this = THIS;
|
||||
|
||||
switch (this->dyna.actor.params & 0x200) {
|
||||
case 0:
|
||||
dList = D_06002BD0;
|
||||
break;
|
||||
case 0x200:
|
||||
dList = D_06000DE0;
|
||||
break;
|
||||
}
|
||||
|
||||
Gfx_DrawDListOpa(globalCtx, dList);
|
||||
}
|
||||
|
@ -6,11 +6,49 @@
|
||||
|
||||
struct BgSpot08Iceblock;
|
||||
|
||||
typedef void (*BgSpot08IceblockActionFunc)(struct BgSpot08Iceblock*, GlobalContext*);
|
||||
|
||||
typedef struct BgSpot08Iceblock {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x50];
|
||||
/* 0x0000 */ DynaPolyActor dyna;
|
||||
/* 0x0164 */ BgSpot08IceblockActionFunc actionFunc;
|
||||
/* 0x0168 */ Vec3f surfaceNormal;
|
||||
/* 0x0170 */ Vec3f normalDelta; // y always 0
|
||||
/* 0x0180 */ Vec3f rotationAxis;
|
||||
/* 0x018C */ s16 bobPhaseSlow;
|
||||
/* 0x018E */ s16 bobPhaseFast;
|
||||
/* 0x0190 */ s16 bobIncrSlow;
|
||||
/* 0x0192 */ s16 bobIncrFast;
|
||||
/* 0x0194 */ f32 sinkOffset;
|
||||
/* 0x0198 */ f32 bobOffset;
|
||||
} BgSpot08Iceblock; // size = 0x019C
|
||||
|
||||
extern const ActorInit Bg_Spot08_Iceblock_InitVars;
|
||||
|
||||
// Params
|
||||
/**
|
||||
* 0x200: Shape
|
||||
* 0x200 is the ice ramp where Jabu is as child
|
||||
*/
|
||||
|
||||
/**
|
||||
* 0x100: Twins
|
||||
* 0x100 is the spawned twin platform
|
||||
*/
|
||||
|
||||
/**
|
||||
* 0xF0: Size
|
||||
* 0x00 is large
|
||||
* 0x10 is medium
|
||||
* 0x20 is small
|
||||
*/
|
||||
|
||||
/**
|
||||
* 0xF: Action
|
||||
* 0 Floating, nonrotating
|
||||
* 1 same as 0, but does not roll as much (?)
|
||||
* 2 Floating, rotating
|
||||
* 3 Floating orbiting twins
|
||||
* 4 Completely static, does nothing
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user