diff --git a/asm/non_matchings/code/z_kankyo/func_80073A5C.s b/asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s similarity index 99% rename from asm/non_matchings/code/z_kankyo/func_80073A5C.s rename to asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s index 0c5b47c24b..fde3b33b6d 100644 --- a/asm/non_matchings/code/z_kankyo/func_80073A5C.s +++ b/asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s @@ -35,7 +35,7 @@ glabel D_8013C7D8 .float 0.1 .text -glabel func_80073A5C +glabel Environment_DrawLensFlare /* AEABFC 80073A5C 27BDFE50 */ addiu $sp, $sp, -0x1b0 /* AEAC00 80073A60 3C0B8012 */ lui $t3, %hi(D_8011FE00) # $t3, 0x8012 /* AEAC04 80073A64 AFBF004C */ sw $ra, 0x4c($sp) @@ -348,7 +348,7 @@ glabel func_80073A5C /* AEB0AC 80073F0C 00000000 */ nop .L80073F10: /* AEB0B0 80073F10 44D8F800 */ ctc1 $t8, $31 -/* AEB0B4 80073F14 0C01BE4F */ jal func_8006F93C +/* AEB0B4 80073F14 0C01BE4F */ jal Environment_LerpWeight /* AEB0B8 80073F18 30C6FFFF */ andi $a2, $a2, 0xffff /* AEB0BC 80073F1C E7A0013C */ swc1 $f0, 0x13c($sp) /* AEB0C0 80073F20 44913000 */ mtc1 $s1, $f6 @@ -600,8 +600,8 @@ glabel func_80073A5C /* AEB468 800742C8 2A21000A */ slti $at, $s1, 0xa .L800742CC: /* AEB46C 800742CC 8E0702D0 */ lw $a3, 0x2d0($s0) -/* AEB470 800742D0 3C030403 */ lui $v1, %hi(gEffBurnMark1DL) # $v1, 0x403 -/* AEB474 800742D4 24637730 */ addiu $v1, %lo(gEffBurnMark1DL) # addiu $v1, $v1, 0x7730 +/* AEB470 800742D0 3C030403 */ lui $v1, %hi(gLensFlareCircleDL) # $v1, 0x403 +/* AEB474 800742D4 24637730 */ addiu $v1, %lo(gLensFlareCircleDL) # addiu $v1, $v1, 0x7730 /* AEB478 800742D8 24E80008 */ addiu $t0, $a3, 8 /* AEB47C 800742DC AE0802D0 */ sw $t0, 0x2d0($s0) /* AEB480 800742E0 3C0FDE00 */ lui $t7, 0xde00 diff --git a/asm/non_matchings/code/z_kankyo/func_80074704.s b/asm/non_matchings/code/z_kankyo/Environment_DrawRain.s similarity index 99% rename from asm/non_matchings/code/z_kankyo/func_80074704.s rename to asm/non_matchings/code/z_kankyo/Environment_DrawRain.s index a70264682c..61203b66e7 100644 --- a/asm/non_matchings/code/z_kankyo/func_80074704.s +++ b/asm/non_matchings/code/z_kankyo/Environment_DrawRain.s @@ -35,7 +35,7 @@ glabel D_8013C7F0 .float 0.02 .text -glabel func_80074704 +glabel Environment_DrawRain /* AEB8A4 80074704 27BDFED8 */ addiu $sp, $sp, -0x128 /* AEB8A8 80074708 3C0F8012 */ lui $t7, %hi(D_8011FE70) # $t7, 0x8012 /* AEB8AC 8007470C AFBF006C */ sw $ra, 0x6c($sp) diff --git a/asm/non_matchings/code/z_kankyo/func_80070C24.s b/asm/non_matchings/code/z_kankyo/Environment_Update.s similarity index 99% rename from asm/non_matchings/code/z_kankyo/func_80070C24.s rename to asm/non_matchings/code/z_kankyo/Environment_Update.s index 908bd361d2..a0ba2c5eff 100644 --- a/asm/non_matchings/code/z_kankyo/func_80070C24.s +++ b/asm/non_matchings/code/z_kankyo/Environment_Update.s @@ -39,7 +39,7 @@ glabel D_8013C7A8 .float 0.005 .text -glabel func_80070C24 +glabel Environment_Update /* AE7DC4 80070C24 27BDFF70 */ addiu $sp, $sp, -0x90 /* AE7DC8 80070C28 3C0D8016 */ lui $t5, %hi(gSaveContext) # $t5, 0x8016 /* AE7DCC 80070C2C 25ADE660 */ addiu $t5, %lo(gSaveContext) # addiu $t5, $t5, -0x19a0 @@ -200,16 +200,16 @@ glabel func_80070C24 /* AE8014 80070E74 8DAF1360 */ lw $t7, 0x1360($t5) /* AE8018 80070E78 8DB80010 */ lw $t8, 0x10($t5) .L80070E7C: -/* AE801C 80070E7C 3C038012 */ lui $v1, %hi(D_8011FB40) # $v1, 0x8012 -/* AE8020 80070E80 2463FB40 */ addiu $v1, %lo(D_8011FB40) # addiu $v1, $v1, -0x4c0 +/* AE801C 80070E7C 3C038012 */ lui $v1, %hi(gTimeIncrement) # $v1, 0x8012 +/* AE8020 80070E80 2463FB40 */ addiu $v1, %lo(gTimeIncrement) # addiu $v1, $v1, -0x4c0 /* AE8024 80070E84 13000004 */ beqz $t8, .L80070E98 /* AE8028 80070E88 00000000 */ nop /* AE802C 80070E8C 94620000 */ lhu $v0, ($v1) /* AE8030 80070E90 28410190 */ slti $at, $v0, 0x190 /* AE8034 80070E94 14200007 */ bnez $at, .L80070EB4 .L80070E98: -/* AE8038 80070E98 3C038012 */ lui $v1, %hi(D_8011FB40) # $v1, 0x8012 -/* AE803C 80070E9C 2463FB40 */ addiu $v1, %lo(D_8011FB40) # addiu $v1, $v1, -0x4c0 +/* AE8038 80070E98 3C038012 */ lui $v1, %hi(gTimeIncrement) # $v1, 0x8012 +/* AE803C 80070E9C 2463FB40 */ addiu $v1, %lo(gTimeIncrement) # addiu $v1, $v1, -0x4c0 /* AE8040 80070EA0 94790000 */ lhu $t9, ($v1) /* AE8044 80070EA4 95AE000C */ lhu $t6, 0xc($t5) /* AE8048 80070EA8 01D97821 */ addu $t7, $t6, $t9 @@ -223,8 +223,8 @@ glabel func_80070C24 .L80070EC4: /* AE8064 80070EC4 8DAF1360 */ lw $t7, 0x1360($t5) .L80070EC8: -/* AE8068 80070EC8 3C038012 */ lui $v1, %hi(D_8011FB40) # $v1, 0x8012 -/* AE806C 80070ECC 2463FB40 */ addiu $v1, %lo(D_8011FB40) # addiu $v1, $v1, -0x4c0 +/* AE8068 80070EC8 3C038012 */ lui $v1, %hi(gTimeIncrement) # $v1, 0x8012 +/* AE806C 80070ECC 2463FB40 */ addiu $v1, %lo(gTimeIncrement) # addiu $v1, $v1, -0x4c0 /* AE8070 80070ED0 29E10005 */ slti $at, $t7, 5 /* AE8074 80070ED4 10200004 */ beqz $at, .L80070EE8 /* AE8078 80070ED8 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 @@ -297,7 +297,7 @@ glabel func_80070C24 /* AE8164 80070FC4 AC790004 */ sw $t9, 4($v1) /* AE8168 80070FC8 8FA40090 */ lw $a0, 0x90($sp) /* AE816C 80070FCC AFAA007C */ sw $t2, 0x7c($sp) -/* AE8170 80070FD0 0C01C1C6 */ jal func_80070718 +/* AE8170 80070FD0 0C01C1C6 */ jal Environment_PrintDebugInfo /* AE8174 80070FD4 E7AE0088 */ swc1 $f14, 0x88($sp) /* AE8178 80070FD8 8FAF0074 */ lw $t7, 0x74($sp) /* AE817C 80070FDC 8FAA007C */ lw $t2, 0x7c($sp) @@ -405,7 +405,7 @@ glabel func_80070C24 /* AE8300 80071160 30E5FFFF */ andi $a1, $a3, 0xffff /* AE8304 80071164 AFA80034 */ sw $t0, 0x34($sp) /* AE8308 80071168 AFAA007C */ sw $t2, 0x7c($sp) -/* AE830C 8007116C 0C01BE4F */ jal func_8006F93C +/* AE830C 8007116C 0C01BE4F */ jal Environment_LerpWeight /* AE8310 80071170 E7AE0088 */ swc1 $f14, 0x88($sp) /* AE8314 80071174 920F001F */ lbu $t7, 0x1f($s0) /* AE8318 80071178 8FA80034 */ lw $t0, 0x34($sp) diff --git a/asm/non_matchings/code/z_kankyo/func_8006FC88.s b/asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s similarity index 96% rename from asm/non_matchings/code/z_kankyo/func_8006FC88.s rename to asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s index 834392d26f..99743ec871 100644 --- a/asm/non_matchings/code/z_kankyo/func_8006FC88.s +++ b/asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s @@ -29,7 +29,7 @@ glabel D_8013C380 .balign 4 .text -glabel func_8006FC88 +glabel Environment_UpdateSkybox /* AE6E28 8006FC88 27BDFFA0 */ addiu $sp, $sp, -0x60 /* AE6E2C 8006FC8C AFB00030 */ sw $s0, 0x30($sp) /* AE6E30 8006FC90 308200FF */ andi $v0, $a0, 0xff @@ -78,7 +78,7 @@ glabel func_8006FC88 /* AE6ED4 8006FD34 3146FFFF */ andi $a2, $t2, 0xffff /* AE6ED8 8006FD38 11C00029 */ beqz $t6, .L8006FDE0 /* AE6EDC 8006FD3C 00000000 */ nop -/* AE6EE0 8006FD40 0C01BE4F */ jal func_8006F93C +/* AE6EE0 8006FD40 0C01BE4F */ jal Environment_LerpWeight /* AE6EE4 8006FD44 30E4FFFF */ andi $a0, $a3, 0xffff /* AE6EE8 8006FD48 3C01437F */ li $at, 0x437F0000 # 0.000000 /* AE6EEC 8006FD4C 44812000 */ mtc1 $at, $f4 @@ -165,8 +165,8 @@ glabel func_8006FC88 .L8006FE74: /* AE7014 8006FE74 906F0005 */ lbu $t7, 5($v1) /* AE7018 8006FE78 90780006 */ lbu $t8, 6($v1) -/* AE701C 8006FE7C 3C028012 */ lui $v0, %hi(D_8011FB3C) # $v0, 0x8012 -/* AE7020 8006FE80 2442FB3C */ addiu $v0, %lo(D_8011FB3C) # addiu $v0, $v0, -0x4c4 +/* AE701C 8006FE7C 3C028012 */ lui $v0, %hi(gSkyboxBlendingEnabled) # $v0, 0x8012 +/* AE7020 8006FE80 2442FB3C */ addiu $v0, %lo(gSkyboxBlendingEnabled) # addiu $v0, $v0, -0x4c4 /* AE7024 8006FE84 332B00FF */ andi $t3, $t9, 0xff /* AE7028 8006FE88 A0590000 */ sb $t9, ($v0) /* AE702C 8006FE8C A3AF005A */ sb $t7, 0x5a($sp) @@ -183,7 +183,7 @@ glabel func_8006FC88 /* AE7058 8006FEB8 94640002 */ lhu $a0, 2($v1) /* AE705C 8006FEBC 94650000 */ lhu $a1, ($v1) /* AE7060 8006FEC0 A3A8005B */ sb $t0, 0x5b($sp) -/* AE7064 8006FEC4 0C01BE4F */ jal func_8006F93C +/* AE7064 8006FEC4 0C01BE4F */ jal Environment_LerpWeight /* AE7068 8006FEC8 3146FFFF */ andi $a2, $t2, 0xffff /* AE706C 8006FECC 3C01437F */ li $at, 0x437F0000 # 0.000000 /* AE7070 8006FED0 44815000 */ mtc1 $at, $f10 @@ -239,7 +239,7 @@ glabel func_8006FC88 /* AE7128 8006FF88 94640002 */ lhu $a0, 2($v1) /* AE712C 8006FF8C 94650000 */ lhu $a1, ($v1) /* AE7130 8006FF90 A3A8005B */ sb $t0, 0x5b($sp) -/* AE7134 8006FF94 0C01BE4F */ jal func_8006F93C +/* AE7134 8006FF94 0C01BE4F */ jal Environment_LerpWeight /* AE7138 8006FF98 3146FFFF */ andi $a2, $t2, 0xffff /* AE713C 8006FF9C 3C01437F */ li $at, 0x437F0000 # 0.000000 /* AE7140 8006FFA0 44812000 */ mtc1 $at, $f4 @@ -412,10 +412,10 @@ glabel func_8006FC88 /* AE73A8 80070208 530B0027 */ beql $t8, $t3, .L800702A8 /* AE73AC 8007020C 93B80059 */ lbu $t8, 0x59($sp) /* AE73B0 80070210 820C0044 */ lb $t4, 0x44($s0) -/* AE73B4 80070214 3C0F8012 */ lui $t7, %hi(D_8011FD3C) # $t7, 0x8012 +/* AE73B4 80070214 3C0F8012 */ lui $t7, %hi(gSkyboxFiles) # $t7, 0x8012 /* AE73B8 80070218 240D0001 */ li $t5, 1 /* AE73BC 8007021C 15800021 */ bnez $t4, .L800702A4 -/* AE73C0 80070220 25EFFD3C */ addiu $t7, %lo(D_8011FD3C) # addiu $t7, $t7, -0x2c4 +/* AE73C0 80070220 25EFFD3C */ addiu $t7, %lo(gSkyboxFiles) # addiu $t7, $t7, -0x2c4 /* AE73C4 80070224 A20D0044 */ sb $t5, 0x44($s0) /* AE73C8 80070228 93AE005A */ lbu $t6, 0x5a($sp) /* AE73CC 8007022C 26040068 */ addiu $a0, $s0, 0x68 @@ -460,8 +460,8 @@ glabel func_8006FC88 /* AE7460 800702C0 240C000B */ li $t4, 11 /* AE7464 800702C4 A20C0044 */ sb $t4, 0x44($s0) /* AE7468 800702C8 93AD0059 */ lbu $t5, 0x59($sp) -/* AE746C 800702CC 3C198012 */ lui $t9, %hi(D_8011FD3C) # $t9, 0x8012 -/* AE7470 800702D0 2739FD3C */ addiu $t9, %lo(D_8011FD3C) # addiu $t9, $t9, -0x2c4 +/* AE746C 800702CC 3C198012 */ lui $t9, %hi(gSkyboxFiles) # $t9, 0x8012 +/* AE7470 800702D0 2739FD3C */ addiu $t9, %lo(gSkyboxFiles) # addiu $t9, $t9, -0x2c4 /* AE7474 800702D4 000D7100 */ sll $t6, $t5, 4 /* AE7478 800702D8 01D91021 */ addu $v0, $t6, $t9 /* AE747C 800702DC 8C4F0004 */ lw $t7, 4($v0) @@ -503,11 +503,11 @@ glabel func_8006FC88 /* AE7504 80070364 A2180044 */ sb $t8, 0x44($s0) /* AE7508 80070368 8FB90050 */ lw $t9, 0x50($sp) /* AE750C 8007036C 93AB005A */ lbu $t3, 0x5a($sp) -/* AE7510 80070370 3C0D8012 */ lui $t5, %hi(D_8011FD3C) # $t5, 0x8012 +/* AE7510 80070370 3C0D8012 */ lui $t5, %hi(gSkyboxFiles) # $t5, 0x8012 /* AE7514 80070374 33380004 */ andi $t8, $t9, 4 /* AE7518 80070378 000B6100 */ sll $t4, $t3, 4 /* AE751C 8007037C 00185883 */ sra $t3, $t8, 2 -/* AE7520 80070380 25ADFD3C */ addiu $t5, %lo(D_8011FD3C) # addiu $t5, $t5, -0x2c4 +/* AE7520 80070380 25ADFD3C */ addiu $t5, %lo(gSkyboxFiles) # addiu $t5, $t5, -0x2c4 /* AE7524 80070384 260E0048 */ addiu $t6, $s0, 0x48 /* AE7528 80070388 332F0001 */ andi $t7, $t9, 1 /* AE752C 8007038C AFAE0040 */ sw $t6, 0x40($sp) @@ -577,10 +577,10 @@ glabel func_8006FC88 /* AE7624 80070484 93AE0059 */ lbu $t6, 0x59($sp) /* AE7628 80070488 260D0048 */ addiu $t5, $s0, 0x48 /* AE762C 8007048C AFAD0040 */ sw $t5, 0x40($sp) -/* AE7630 80070490 3C188012 */ lui $t8, %hi(D_8011FD3C) # $t8, 0x8012 +/* AE7630 80070490 3C188012 */ lui $t8, %hi(gSkyboxFiles) # $t8, 0x8012 /* AE7634 80070494 31EC0004 */ andi $t4, $t7, 4 /* AE7638 80070498 000C6883 */ sra $t5, $t4, 2 -/* AE763C 8007049C 2718FD3C */ addiu $t8, %lo(D_8011FD3C) # addiu $t8, $t8, -0x2c4 +/* AE763C 8007049C 2718FD3C */ addiu $t8, %lo(gSkyboxFiles) # addiu $t8, $t8, -0x2c4 /* AE7640 800704A0 31EB0001 */ andi $t3, $t7, 1 /* AE7644 800704A4 000EC900 */ sll $t9, $t6, 4 /* AE7648 800704A8 03381021 */ addu $v0, $t9, $t8 diff --git a/asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s b/asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s deleted file mode 100644 index 1c44515305..0000000000 --- a/asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s +++ /dev/null @@ -1,181 +0,0 @@ -glabel Kankyo_FadeInGameOverLights -/* AED294 800760F4 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* AED298 800760F8 AFBF002C */ sw $ra, 0x2c($sp) -/* AED29C 800760FC AFB00028 */ sw $s0, 0x28($sp) -/* AED2A0 80076100 8C831C44 */ lw $v1, 0x1c44($a0) -/* AED2A4 80076104 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AED2A8 80076108 44810000 */ mtc1 $at, $f0 -/* AED2AC 8007610C C4640024 */ lwc1 $f4, 0x24($v1) -/* AED2B0 80076110 3C028016 */ lui $v0, %hi(D_8015FDAE) -/* AED2B4 80076114 9042FDAE */ lbu $v0, %lo(D_8015FDAE)($v0) -/* AED2B8 80076118 4600218D */ trunc.w.s $f6, $f4 -/* AED2BC 8007611C C4640028 */ lwc1 $f4, 0x28($v1) -/* AED2C0 80076120 00808025 */ move $s0, $a0 -/* AED2C4 80076124 3C048016 */ lui $a0, %hi(D_8015FD88) -/* AED2C8 80076128 440F3000 */ mfc1 $t7, $f6 -/* AED2CC 8007612C 4600218D */ trunc.w.s $f6, $f4 -/* AED2D0 80076130 C464002C */ lwc1 $f4, 0x2c($v1) -/* AED2D4 80076134 000FC400 */ sll $t8, $t7, 0x10 -/* AED2D8 80076138 0018CC03 */ sra $t9, $t8, 0x10 -/* AED2DC 8007613C 44994000 */ mtc1 $t9, $f8 -/* AED2E0 80076140 440A3000 */ mfc1 $t2, $f6 -/* AED2E4 80076144 4600218D */ trunc.w.s $f6, $f4 -/* AED2E8 80076148 240900FF */ li $t1, 255 -/* AED2EC 8007614C 000A5C00 */ sll $t3, $t2, 0x10 -/* AED2F0 80076150 468042A0 */ cvt.s.w $f10, $f8 -/* AED2F4 80076154 000B6403 */ sra $t4, $t3, 0x10 -/* AED2F8 80076158 448C4000 */ mtc1 $t4, $f8 -/* AED2FC 8007615C 440F3000 */ mfc1 $t7, $f6 -/* AED300 80076160 AFA9001C */ sw $t1, 0x1c($sp) -/* AED304 80076164 2484FD88 */ addiu $a0, %lo(D_8015FD88) -/* AED308 80076168 46005401 */ sub.s $f16, $f10, $f0 -/* AED30C 8007616C 000FC400 */ sll $t8, $t7, 0x10 -/* AED310 80076170 0018CC03 */ sra $t9, $t8, 0x10 -/* AED314 80076174 468042A0 */ cvt.s.w $f10, $f8 -/* AED318 80076178 44994000 */ mtc1 $t9, $f8 -/* AED31C 8007617C AFA30034 */ sw $v1, 0x34($sp) -/* AED320 80076180 AFA20018 */ sw $v0, 0x18($sp) -/* AED324 80076184 AFA20014 */ sw $v0, 0x14($sp) -/* AED328 80076188 4600848D */ trunc.w.s $f18, $f16 -/* AED32C 8007618C AFA20010 */ sw $v0, 0x10($sp) -/* AED330 80076190 46005400 */ add.s $f16, $f10, $f0 -/* AED334 80076194 44059000 */ mfc1 $a1, $f18 -/* AED338 80076198 468042A0 */ cvt.s.w $f10, $f8 -/* AED33C 8007619C 00052C00 */ sll $a1, $a1, 0x10 -/* AED340 800761A0 00052C03 */ sra $a1, $a1, 0x10 -/* AED344 800761A4 4600848D */ trunc.w.s $f18, $f16 -/* AED348 800761A8 46005401 */ sub.s $f16, $f10, $f0 -/* AED34C 800761AC 44069000 */ mfc1 $a2, $f18 -/* AED350 800761B0 4600848D */ trunc.w.s $f18, $f16 -/* AED354 800761B4 00063400 */ sll $a2, $a2, 0x10 -/* AED358 800761B8 00063403 */ sra $a2, $a2, 0x10 -/* AED35C 800761BC 44079000 */ mfc1 $a3, $f18 -/* AED360 800761C0 00000000 */ nop -/* AED364 800761C4 00073C00 */ sll $a3, $a3, 0x10 -/* AED368 800761C8 0C01E763 */ jal Lights_PointNoGlowSetInfo -/* AED36C 800761CC 00073C03 */ sra $a3, $a3, 0x10 -/* AED370 800761D0 8FA30034 */ lw $v1, 0x34($sp) -/* AED374 800761D4 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AED378 800761D8 44810000 */ mtc1 $at, $f0 -/* AED37C 800761DC C4640024 */ lwc1 $f4, 0x24($v1) -/* AED380 800761E0 3C028016 */ lui $v0, %hi(D_8015FDAE) -/* AED384 800761E4 9042FDAE */ lbu $v0, %lo(D_8015FDAE)($v0) -/* AED388 800761E8 4600218D */ trunc.w.s $f6, $f4 -/* AED38C 800761EC C4640028 */ lwc1 $f4, 0x28($v1) -/* AED390 800761F0 3C048016 */ lui $a0, %hi(D_8015FDA0) -/* AED394 800761F4 240F00FF */ li $t7, 255 -/* AED398 800761F8 440B3000 */ mfc1 $t3, $f6 -/* AED39C 800761FC 4600218D */ trunc.w.s $f6, $f4 -/* AED3A0 80076200 C464002C */ lwc1 $f4, 0x2c($v1) -/* AED3A4 80076204 000B6400 */ sll $t4, $t3, 0x10 -/* AED3A8 80076208 000C6C03 */ sra $t5, $t4, 0x10 -/* AED3AC 8007620C 448D4000 */ mtc1 $t5, $f8 -/* AED3B0 80076210 44183000 */ mfc1 $t8, $f6 -/* AED3B4 80076214 4600218D */ trunc.w.s $f6, $f4 -/* AED3B8 80076218 AFAF001C */ sw $t7, 0x1c($sp) -/* AED3BC 8007621C 0018CC00 */ sll $t9, $t8, 0x10 -/* AED3C0 80076220 468042A0 */ cvt.s.w $f10, $f8 -/* AED3C4 80076224 00194403 */ sra $t0, $t9, 0x10 -/* AED3C8 80076228 44884000 */ mtc1 $t0, $f8 -/* AED3CC 8007622C 440B3000 */ mfc1 $t3, $f6 -/* AED3D0 80076230 2484FDA0 */ addiu $a0, %lo(D_8015FDA0) -/* AED3D4 80076234 AFA20018 */ sw $v0, 0x18($sp) -/* AED3D8 80076238 46005400 */ add.s $f16, $f10, $f0 -/* AED3DC 8007623C 000B6400 */ sll $t4, $t3, 0x10 -/* AED3E0 80076240 000C6C03 */ sra $t5, $t4, 0x10 -/* AED3E4 80076244 468042A0 */ cvt.s.w $f10, $f8 -/* AED3E8 80076248 448D4000 */ mtc1 $t5, $f8 -/* AED3EC 8007624C AFA20014 */ sw $v0, 0x14($sp) -/* AED3F0 80076250 AFA20010 */ sw $v0, 0x10($sp) -/* AED3F4 80076254 4600848D */ trunc.w.s $f18, $f16 -/* AED3F8 80076258 46005400 */ add.s $f16, $f10, $f0 -/* AED3FC 8007625C 44059000 */ mfc1 $a1, $f18 -/* AED400 80076260 468042A0 */ cvt.s.w $f10, $f8 -/* AED404 80076264 00052C00 */ sll $a1, $a1, 0x10 -/* AED408 80076268 00052C03 */ sra $a1, $a1, 0x10 -/* AED40C 8007626C 4600848D */ trunc.w.s $f18, $f16 -/* AED410 80076270 46005400 */ add.s $f16, $f10, $f0 -/* AED414 80076274 44069000 */ mfc1 $a2, $f18 -/* AED418 80076278 4600848D */ trunc.w.s $f18, $f16 -/* AED41C 8007627C 00063400 */ sll $a2, $a2, 0x10 -/* AED420 80076280 00063403 */ sra $a2, $a2, 0x10 -/* AED424 80076284 44079000 */ mfc1 $a3, $f18 -/* AED428 80076288 00000000 */ nop -/* AED42C 8007628C 00073C00 */ sll $a3, $a3, 0x10 -/* AED430 80076290 0C01E763 */ jal Lights_PointNoGlowSetInfo -/* AED434 80076294 00073C03 */ sra $a3, $a3, 0x10 -/* AED438 80076298 3C038016 */ lui $v1, %hi(D_8015FDAE) # $v1, 0x8016 -/* AED43C 8007629C 2463FDAE */ addiu $v1, %lo(D_8015FDAE) # addiu $v1, $v1, -0x252 -/* AED440 800762A0 90620000 */ lbu $v0, ($v1) -/* AED444 800762A4 284100FE */ slti $at, $v0, 0xfe -/* AED448 800762A8 10200002 */ beqz $at, .L800762B4 -/* AED44C 800762AC 24580002 */ addiu $t8, $v0, 2 -/* AED450 800762B0 A0780000 */ sb $t8, ($v1) -.L800762B4: -/* AED454 800762B4 0C03032E */ jal func_800C0CB8 -/* AED458 800762B8 02002025 */ move $a0, $s0 -/* AED45C 800762BC 3C038016 */ lui $v1, %hi(D_8015FDAE) # $v1, 0x8016 -/* AED460 800762C0 10400029 */ beqz $v0, .L80076368 -/* AED464 800762C4 2463FDAE */ addiu $v1, %lo(D_8015FDAE) # addiu $v1, $v1, -0x252 -/* AED468 800762C8 00001825 */ move $v1, $zero -/* AED46C 800762CC 3C060001 */ lui $a2, 1 -/* AED470 800762D0 2405FF01 */ li $a1, -255 -.L800762D4: -/* AED474 800762D4 0003C840 */ sll $t9, $v1, 1 -/* AED478 800762D8 02194021 */ addu $t0, $s0, $t9 -/* AED47C 800762DC 01061021 */ addu $v0, $t0, $a2 -/* AED480 800762E0 84440AB0 */ lh $a0, 0xab0($v0) -/* AED484 800762E4 24630001 */ addiu $v1, $v1, 1 -/* AED488 800762E8 00031C00 */ sll $v1, $v1, 0x10 -/* AED48C 800762EC 2881FF02 */ slti $at, $a0, -0xfe -/* AED490 800762F0 14200006 */ bnez $at, .L8007630C -/* AED494 800762F4 00031C03 */ sra $v1, $v1, 0x10 -/* AED498 800762F8 844A0AB6 */ lh $t2, 0xab6($v0) -/* AED49C 800762FC 2489FFF4 */ addiu $t1, $a0, -0xc -/* AED4A0 80076300 A4490AB0 */ sh $t1, 0xab0($v0) -/* AED4A4 80076304 254BFFF4 */ addiu $t3, $t2, -0xc -/* AED4A8 80076308 A44B0AB6 */ sh $t3, 0xab6($v0) -.L8007630C: -/* AED4AC 8007630C 28610003 */ slti $at, $v1, 3 -/* AED4B0 80076310 1420FFF0 */ bnez $at, .L800762D4 -/* AED4B4 80076314 A4450ABC */ sh $a1, 0xabc($v0) -/* AED4B8 80076318 02061021 */ addu $v0, $s0, $a2 -/* AED4BC 8007631C 84430AC4 */ lh $v1, 0xac4($v0) -/* AED4C0 80076320 844C0AF8 */ lh $t4, 0xaf8($v0) -/* AED4C4 80076324 246EFF9C */ addiu $t6, $v1, -0x64 -/* AED4C8 80076328 01836821 */ addu $t5, $t4, $v1 -/* AED4CC 8007632C 29A10385 */ slti $at, $t5, 0x385 -/* AED4D0 80076330 14200003 */ bnez $at, .L80076340 -/* AED4D4 80076334 3C010001 */ lui $at, 1 -/* AED4D8 80076338 00300821 */ addu $at, $at, $s0 -/* AED4DC 8007633C A42E0AC4 */ sh $t6, 0xac4($at) -.L80076340: -/* AED4E0 80076340 84430AC2 */ lh $v1, 0xac2($v0) -/* AED4E4 80076344 844F0AF6 */ lh $t7, 0xaf6($v0) -/* AED4E8 80076348 2479FFF6 */ addiu $t9, $v1, -0xa -/* AED4EC 8007634C 01E3C021 */ addu $t8, $t7, $v1 -/* AED4F0 80076350 2B0103B7 */ slti $at, $t8, 0x3b7 -/* AED4F4 80076354 1420000F */ bnez $at, .L80076394 -/* AED4F8 80076358 3C010001 */ lui $at, 1 -/* AED4FC 8007635C 00300821 */ addu $at, $at, $s0 -/* AED500 80076360 1000000C */ b .L80076394 -/* AED504 80076364 A4390AC2 */ sh $t9, 0xac2($at) -.L80076368: -/* AED508 80076368 3C010001 */ lui $at, 1 -/* AED50C 8007636C 3C060001 */ lui $a2, 1 -/* AED510 80076370 00300821 */ addu $at, $at, $s0 -/* AED514 80076374 24080001 */ li $t0, 1 -/* AED518 80076378 A0280B05 */ sb $t0, 0xb05($at) -/* AED51C 8007637C 02061021 */ addu $v0, $s0, $a2 -/* AED520 80076380 A0400B06 */ sb $zero, 0xb06($v0) -/* AED524 80076384 A0400B07 */ sb $zero, 0xb07($v0) -/* AED528 80076388 A0400B08 */ sb $zero, 0xb08($v0) -/* AED52C 8007638C 90690000 */ lbu $t1, ($v1) -/* AED530 80076390 A0490B09 */ sb $t1, 0xb09($v0) -.L80076394: -/* AED534 80076394 8FBF002C */ lw $ra, 0x2c($sp) -/* AED538 80076398 8FB00028 */ lw $s0, 0x28($sp) -/* AED53C 8007639C 27BD0038 */ addiu $sp, $sp, 0x38 -/* AED540 800763A0 03E00008 */ jr $ra -/* AED544 800763A4 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s b/asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s deleted file mode 100644 index be3a7630cf..0000000000 --- a/asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s +++ /dev/null @@ -1,209 +0,0 @@ -glabel Kankyo_FadeOutGameOverLights -/* AED548 800763A8 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* AED54C 800763AC AFB2002C */ sw $s2, 0x2c($sp) -/* AED550 800763B0 3C128016 */ lui $s2, %hi(D_8015FDAE) -/* AED554 800763B4 2652FDAE */ addiu $s2, %lo(D_8015FDAE) # addiu $s2, $s2, -0x252 -/* AED558 800763B8 92420000 */ lbu $v0, ($s2) -/* AED55C 800763BC AFBF003C */ sw $ra, 0x3c($sp) -/* AED560 800763C0 AFB50038 */ sw $s5, 0x38($sp) -/* AED564 800763C4 AFB40034 */ sw $s4, 0x34($sp) -/* AED568 800763C8 AFB30030 */ sw $s3, 0x30($sp) -/* AED56C 800763CC AFB10028 */ sw $s1, 0x28($sp) -/* AED570 800763D0 AFB00024 */ sw $s0, 0x24($sp) -/* AED574 800763D4 28410003 */ slti $at, $v0, 3 -/* AED578 800763D8 0080A825 */ move $s5, $a0 -/* AED57C 800763DC 14200004 */ bnez $at, .L800763F0 -/* AED580 800763E0 8C911C44 */ lw $s1, 0x1c44($a0) -/* AED584 800763E4 244EFFFD */ addiu $t6, $v0, -3 -/* AED588 800763E8 10000002 */ b .L800763F4 -/* AED58C 800763EC A24E0000 */ sb $t6, ($s2) -.L800763F0: -/* AED590 800763F0 A2400000 */ sb $zero, ($s2) -.L800763F4: -/* AED594 800763F4 92500000 */ lbu $s0, ($s2) -/* AED598 800763F8 24010001 */ li $at, 1 -/* AED59C 800763FC 02A02025 */ move $a0, $s5 -/* AED5A0 80076400 1601000D */ bne $s0, $at, .L80076438 -/* AED5A4 80076404 02001025 */ move $v0, $s0 -/* AED5A8 80076408 26B007A8 */ addiu $s0, $s5, 0x7a8 -/* AED5AC 8007640C 3C068016 */ lui $a2, %hi(D_8015FD84) -/* AED5B0 80076410 8CC6FD84 */ lw $a2, %lo(D_8015FD84)($a2) -/* AED5B4 80076414 0C01E9F1 */ jal LightContext_RemoveLight -/* AED5B8 80076418 02002825 */ move $a1, $s0 -/* AED5BC 8007641C 3C068016 */ lui $a2, %hi(D_8015FD98) -/* AED5C0 80076420 8CC6FD98 */ lw $a2, %lo(D_8015FD98)($a2) -/* AED5C4 80076424 02A02025 */ move $a0, $s5 -/* AED5C8 80076428 0C01E9F1 */ jal LightContext_RemoveLight -/* AED5CC 8007642C 02002825 */ move $a1, $s0 -/* AED5D0 80076430 10000063 */ b .L800765C0 -/* AED5D4 80076434 00000000 */ nop -.L80076438: -/* AED5D8 80076438 28410002 */ slti $at, $v0, 2 -/* AED5DC 8007643C 14200060 */ bnez $at, .L800765C0 -/* AED5E0 80076440 00000000 */ nop -/* AED5E4 80076444 C6240024 */ lwc1 $f4, 0x24($s1) -/* AED5E8 80076448 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AED5EC 8007644C 44810000 */ mtc1 $at, $f0 -/* AED5F0 80076450 4600218D */ trunc.w.s $f6, $f4 -/* AED5F4 80076454 C6240028 */ lwc1 $f4, 0x28($s1) -/* AED5F8 80076458 3C048016 */ lui $a0, %hi(D_8015FD88) -/* AED5FC 8007645C 240A00FF */ li $t2, 255 -/* AED600 80076460 44183000 */ mfc1 $t8, $f6 -/* AED604 80076464 4600218D */ trunc.w.s $f6, $f4 -/* AED608 80076468 C624002C */ lwc1 $f4, 0x2c($s1) -/* AED60C 8007646C 0018CC00 */ sll $t9, $t8, 0x10 -/* AED610 80076470 00194403 */ sra $t0, $t9, 0x10 -/* AED614 80076474 44884000 */ mtc1 $t0, $f8 -/* AED618 80076478 440B3000 */ mfc1 $t3, $f6 -/* AED61C 8007647C 4600218D */ trunc.w.s $f6, $f4 -/* AED620 80076480 AFAA001C */ sw $t2, 0x1c($sp) -/* AED624 80076484 000B6400 */ sll $t4, $t3, 0x10 -/* AED628 80076488 468042A0 */ cvt.s.w $f10, $f8 -/* AED62C 8007648C 000C6C03 */ sra $t5, $t4, 0x10 -/* AED630 80076490 448D4000 */ mtc1 $t5, $f8 -/* AED634 80076494 44183000 */ mfc1 $t8, $f6 -/* AED638 80076498 AFB00018 */ sw $s0, 0x18($sp) -/* AED63C 8007649C AFB00014 */ sw $s0, 0x14($sp) -/* AED640 800764A0 46005401 */ sub.s $f16, $f10, $f0 -/* AED644 800764A4 0018CC00 */ sll $t9, $t8, 0x10 -/* AED648 800764A8 00194403 */ sra $t0, $t9, 0x10 -/* AED64C 800764AC 468042A0 */ cvt.s.w $f10, $f8 -/* AED650 800764B0 44884000 */ mtc1 $t0, $f8 -/* AED654 800764B4 AFB00010 */ sw $s0, 0x10($sp) -/* AED658 800764B8 2484FD88 */ addiu $a0, %lo(D_8015FD88) -/* AED65C 800764BC 4600848D */ trunc.w.s $f18, $f16 -/* AED660 800764C0 46005400 */ add.s $f16, $f10, $f0 -/* AED664 800764C4 44059000 */ mfc1 $a1, $f18 -/* AED668 800764C8 468042A0 */ cvt.s.w $f10, $f8 -/* AED66C 800764CC 00052C00 */ sll $a1, $a1, 0x10 -/* AED670 800764D0 00052C03 */ sra $a1, $a1, 0x10 -/* AED674 800764D4 4600848D */ trunc.w.s $f18, $f16 -/* AED678 800764D8 46005401 */ sub.s $f16, $f10, $f0 -/* AED67C 800764DC 44069000 */ mfc1 $a2, $f18 -/* AED680 800764E0 4600848D */ trunc.w.s $f18, $f16 -/* AED684 800764E4 00063400 */ sll $a2, $a2, 0x10 -/* AED688 800764E8 00063403 */ sra $a2, $a2, 0x10 -/* AED68C 800764EC 44079000 */ mfc1 $a3, $f18 -/* AED690 800764F0 00000000 */ nop -/* AED694 800764F4 00073C00 */ sll $a3, $a3, 0x10 -/* AED698 800764F8 0C01E763 */ jal Lights_PointNoGlowSetInfo -/* AED69C 800764FC 00073C03 */ sra $a3, $a3, 0x10 -/* AED6A0 80076500 C6240024 */ lwc1 $f4, 0x24($s1) -/* AED6A4 80076504 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AED6A8 80076508 44810000 */ mtc1 $at, $f0 -/* AED6AC 8007650C 4600218D */ trunc.w.s $f6, $f4 -/* AED6B0 80076510 C6240028 */ lwc1 $f4, 0x28($s1) -/* AED6B4 80076514 92500000 */ lbu $s0, ($s2) -/* AED6B8 80076518 3C048016 */ lui $a0, %hi(D_8015FDA0) -/* AED6BC 8007651C 440C3000 */ mfc1 $t4, $f6 -/* AED6C0 80076520 4600218D */ trunc.w.s $f6, $f4 -/* AED6C4 80076524 C624002C */ lwc1 $f4, 0x2c($s1) -/* AED6C8 80076528 000C6C00 */ sll $t5, $t4, 0x10 -/* AED6CC 8007652C 000D7403 */ sra $t6, $t5, 0x10 -/* AED6D0 80076530 448E4000 */ mtc1 $t6, $f8 -/* AED6D4 80076534 44193000 */ mfc1 $t9, $f6 -/* AED6D8 80076538 4600218D */ trunc.w.s $f6, $f4 -/* AED6DC 8007653C 241800FF */ li $t8, 255 -/* AED6E0 80076540 00194400 */ sll $t0, $t9, 0x10 -/* AED6E4 80076544 468042A0 */ cvt.s.w $f10, $f8 -/* AED6E8 80076548 00084C03 */ sra $t1, $t0, 0x10 -/* AED6EC 8007654C 44894000 */ mtc1 $t1, $f8 -/* AED6F0 80076550 440C3000 */ mfc1 $t4, $f6 -/* AED6F4 80076554 AFB8001C */ sw $t8, 0x1c($sp) -/* AED6F8 80076558 2484FDA0 */ addiu $a0, %lo(D_8015FDA0) -/* AED6FC 8007655C 46005400 */ add.s $f16, $f10, $f0 -/* AED700 80076560 000C6C00 */ sll $t5, $t4, 0x10 -/* AED704 80076564 000D7403 */ sra $t6, $t5, 0x10 -/* AED708 80076568 468042A0 */ cvt.s.w $f10, $f8 -/* AED70C 8007656C 448E4000 */ mtc1 $t6, $f8 -/* AED710 80076570 AFB00018 */ sw $s0, 0x18($sp) -/* AED714 80076574 AFB00014 */ sw $s0, 0x14($sp) -/* AED718 80076578 AFB00010 */ sw $s0, 0x10($sp) -/* AED71C 8007657C 4600848D */ trunc.w.s $f18, $f16 -/* AED720 80076580 46005400 */ add.s $f16, $f10, $f0 -/* AED724 80076584 44059000 */ mfc1 $a1, $f18 -/* AED728 80076588 468042A0 */ cvt.s.w $f10, $f8 -/* AED72C 8007658C 00052C00 */ sll $a1, $a1, 0x10 -/* AED730 80076590 00052C03 */ sra $a1, $a1, 0x10 -/* AED734 80076594 4600848D */ trunc.w.s $f18, $f16 -/* AED738 80076598 46005400 */ add.s $f16, $f10, $f0 -/* AED73C 8007659C 44069000 */ mfc1 $a2, $f18 -/* AED740 800765A0 4600848D */ trunc.w.s $f18, $f16 -/* AED744 800765A4 00063400 */ sll $a2, $a2, 0x10 -/* AED748 800765A8 00063403 */ sra $a2, $a2, 0x10 -/* AED74C 800765AC 44079000 */ mfc1 $a3, $f18 -/* AED750 800765B0 00000000 */ nop -/* AED754 800765B4 00073C00 */ sll $a3, $a3, 0x10 -/* AED758 800765B8 0C01E763 */ jal Lights_PointNoGlowSetInfo -/* AED75C 800765BC 00073C03 */ sra $a3, $a3, 0x10 -.L800765C0: -/* AED760 800765C0 0C03032E */ jal func_800C0CB8 -/* AED764 800765C4 02A02025 */ move $a0, $s5 -/* AED768 800765C8 10400025 */ beqz $v0, .L80076660 -/* AED76C 800765CC 3C140001 */ lui $s4, 1 -/* AED770 800765D0 3C130001 */ lui $s3, (0x00010AB6 >> 16) # lui $s3, 1 -/* AED774 800765D4 3C120001 */ lui $s2, (0x00010AB0 >> 16) # lui $s2, 1 -/* AED778 800765D8 36520AB0 */ ori $s2, (0x00010AB0 & 0xFFFF) # ori $s2, $s2, 0xab0 -/* AED77C 800765DC 36730AB6 */ ori $s3, (0x00010AB6 & 0xFFFF) # ori $s3, $s3, 0xab6 -/* AED780 800765E0 00008025 */ move $s0, $zero -/* AED784 800765E4 3C140001 */ lui $s4, 1 -.L800765E8: -/* AED788 800765E8 0010C840 */ sll $t9, $s0, 1 -/* AED78C 800765EC 02B98821 */ addu $s1, $s5, $t9 -/* AED790 800765F0 24080001 */ li $t0, 1 -/* AED794 800765F4 AFA80010 */ sw $t0, 0x10($sp) -/* AED798 800765F8 02322021 */ addu $a0, $s1, $s2 -/* AED79C 800765FC 00002825 */ move $a1, $zero -/* AED7A0 80076600 24060005 */ li $a2, 5 -/* AED7A4 80076604 0C01E1A7 */ jal Math_SmoothStepToS -/* AED7A8 80076608 2407000C */ li $a3, 12 -/* AED7AC 8007660C 24090001 */ li $t1, 1 -/* AED7B0 80076610 AFA90010 */ sw $t1, 0x10($sp) -/* AED7B4 80076614 02332021 */ addu $a0, $s1, $s3 -/* AED7B8 80076618 00002825 */ move $a1, $zero -/* AED7BC 8007661C 24060005 */ li $a2, 5 -/* AED7C0 80076620 0C01E1A7 */ jal Math_SmoothStepToS -/* AED7C4 80076624 2407000C */ li $a3, 12 -/* AED7C8 80076628 26100001 */ addiu $s0, $s0, 1 -/* AED7CC 8007662C 00108400 */ sll $s0, $s0, 0x10 -/* AED7D0 80076630 00108403 */ sra $s0, $s0, 0x10 -/* AED7D4 80076634 2A010003 */ slti $at, $s0, 3 -/* AED7D8 80076638 02345021 */ addu $t2, $s1, $s4 -/* AED7DC 8007663C 1420FFEA */ bnez $at, .L800765E8 -/* AED7E0 80076640 A5400ABC */ sh $zero, 0xabc($t2) -/* AED7E4 80076644 3C010001 */ lui $at, 1 -/* AED7E8 80076648 00350821 */ addu $at, $at, $s5 -/* AED7EC 8007664C A4200AC4 */ sh $zero, 0xac4($at) -/* AED7F0 80076650 3C010001 */ lui $at, 1 -/* AED7F4 80076654 00350821 */ addu $at, $at, $s5 -/* AED7F8 80076658 10000011 */ b .L800766A0 -/* AED7FC 8007665C A4200AC2 */ sh $zero, 0xac2($at) -.L80076660: -/* AED800 80076660 3C010001 */ lui $at, 1 -/* AED804 80076664 00350821 */ addu $at, $at, $s5 -/* AED808 80076668 240B0001 */ li $t3, 1 -/* AED80C 8007666C A02B0B05 */ sb $t3, 0xb05($at) -/* AED810 80076670 02B41021 */ addu $v0, $s5, $s4 -/* AED814 80076674 A0400B06 */ sb $zero, 0xb06($v0) -/* AED818 80076678 A0400B07 */ sb $zero, 0xb07($v0) -/* AED81C 8007667C A0400B08 */ sb $zero, 0xb08($v0) -/* AED820 80076680 924C0000 */ lbu $t4, ($s2) -/* AED824 80076684 3C010001 */ lui $at, 1 -/* AED828 80076688 00350821 */ addu $at, $at, $s5 -/* AED82C 8007668C A04C0B09 */ sb $t4, 0xb09($v0) -/* AED830 80076690 924D0000 */ lbu $t5, ($s2) -/* AED834 80076694 55A00003 */ bnezl $t5, .L800766A4 -/* AED838 80076698 8FBF003C */ lw $ra, 0x3c($sp) -/* AED83C 8007669C A0200B05 */ sb $zero, 0xb05($at) -.L800766A0: -/* AED840 800766A0 8FBF003C */ lw $ra, 0x3c($sp) -.L800766A4: -/* AED844 800766A4 8FB00024 */ lw $s0, 0x24($sp) -/* AED848 800766A8 8FB10028 */ lw $s1, 0x28($sp) -/* AED84C 800766AC 8FB2002C */ lw $s2, 0x2c($sp) -/* AED850 800766B0 8FB30030 */ lw $s3, 0x30($sp) -/* AED854 800766B4 8FB40034 */ lw $s4, 0x34($sp) -/* AED858 800766B8 8FB50038 */ lw $s5, 0x38($sp) -/* AED85C 800766BC 03E00008 */ jr $ra -/* AED860 800766C0 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s b/asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s deleted file mode 100644 index 111039aee1..0000000000 --- a/asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s +++ /dev/null @@ -1,122 +0,0 @@ -glabel Kankyo_InitGameOverLights -/* AED0B4 80075F14 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* AED0B8 80075F18 AFBF0024 */ sw $ra, 0x24($sp) -/* AED0BC 80075F1C AFA40038 */ sw $a0, 0x38($sp) -/* AED0C0 80075F20 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AED0C4 80075F24 44810000 */ mtc1 $at, $f0 -/* AED0C8 80075F28 8C831C44 */ lw $v1, 0x1c44($a0) -/* AED0CC 80075F2C 3C018016 */ lui $at, %hi(D_8015FDAE) -/* AED0D0 80075F30 A020FDAE */ sb $zero, %lo(D_8015FDAE)($at) -/* AED0D4 80075F34 C4640024 */ lwc1 $f4, 0x24($v1) -/* AED0D8 80075F38 3C048016 */ lui $a0, %hi(D_8015FD88) -/* AED0DC 80075F3C 240A00FF */ li $t2, 255 -/* AED0E0 80075F40 4600218D */ trunc.w.s $f6, $f4 -/* AED0E4 80075F44 C4640028 */ lwc1 $f4, 0x28($v1) -/* AED0E8 80075F48 2484FD88 */ addiu $a0, %lo(D_8015FD88) # addiu $a0, $a0, -0x278 -/* AED0EC 80075F4C 44183000 */ mfc1 $t8, $f6 -/* AED0F0 80075F50 4600218D */ trunc.w.s $f6, $f4 -/* AED0F4 80075F54 C464002C */ lwc1 $f4, 0x2c($v1) -/* AED0F8 80075F58 0018CC00 */ sll $t9, $t8, 0x10 -/* AED0FC 80075F5C 00194403 */ sra $t0, $t9, 0x10 -/* AED100 80075F60 44884000 */ mtc1 $t0, $f8 -/* AED104 80075F64 440B3000 */ mfc1 $t3, $f6 -/* AED108 80075F68 4600218D */ trunc.w.s $f6, $f4 -/* AED10C 80075F6C AFAA001C */ sw $t2, 0x1c($sp) -/* AED110 80075F70 000B6400 */ sll $t4, $t3, 0x10 -/* AED114 80075F74 468042A0 */ cvt.s.w $f10, $f8 -/* AED118 80075F78 000C6C03 */ sra $t5, $t4, 0x10 -/* AED11C 80075F7C 448D4000 */ mtc1 $t5, $f8 -/* AED120 80075F80 44183000 */ mfc1 $t8, $f6 -/* AED124 80075F84 AFA00018 */ sw $zero, 0x18($sp) -/* AED128 80075F88 AFA00014 */ sw $zero, 0x14($sp) -/* AED12C 80075F8C 46005401 */ sub.s $f16, $f10, $f0 -/* AED130 80075F90 0018CC00 */ sll $t9, $t8, 0x10 -/* AED134 80075F94 00194403 */ sra $t0, $t9, 0x10 -/* AED138 80075F98 468042A0 */ cvt.s.w $f10, $f8 -/* AED13C 80075F9C 44884000 */ mtc1 $t0, $f8 -/* AED140 80075FA0 AFA00010 */ sw $zero, 0x10($sp) -/* AED144 80075FA4 AFA30030 */ sw $v1, 0x30($sp) -/* AED148 80075FA8 4600848D */ trunc.w.s $f18, $f16 -/* AED14C 80075FAC 46005400 */ add.s $f16, $f10, $f0 -/* AED150 80075FB0 44059000 */ mfc1 $a1, $f18 -/* AED154 80075FB4 468042A0 */ cvt.s.w $f10, $f8 -/* AED158 80075FB8 00052C00 */ sll $a1, $a1, 0x10 -/* AED15C 80075FBC 00052C03 */ sra $a1, $a1, 0x10 -/* AED160 80075FC0 4600848D */ trunc.w.s $f18, $f16 -/* AED164 80075FC4 46005401 */ sub.s $f16, $f10, $f0 -/* AED168 80075FC8 44069000 */ mfc1 $a2, $f18 -/* AED16C 80075FCC 4600848D */ trunc.w.s $f18, $f16 -/* AED170 80075FD0 00063400 */ sll $a2, $a2, 0x10 -/* AED174 80075FD4 00063403 */ sra $a2, $a2, 0x10 -/* AED178 80075FD8 44079000 */ mfc1 $a3, $f18 -/* AED17C 80075FDC 00000000 */ nop -/* AED180 80075FE0 00073C00 */ sll $a3, $a3, 0x10 -/* AED184 80075FE4 0C01E763 */ jal Lights_PointNoGlowSetInfo -/* AED188 80075FE8 00073C03 */ sra $a3, $a3, 0x10 -/* AED18C 80075FEC 8FA40038 */ lw $a0, 0x38($sp) -/* AED190 80075FF0 3C068016 */ lui $a2, %hi(D_8015FD88) -/* AED194 80075FF4 24C6FD88 */ addiu $a2, %lo(D_8015FD88) # addiu $a2, $a2, -0x278 -/* AED198 80075FF8 248507A8 */ addiu $a1, $a0, 0x7a8 -/* AED19C 80075FFC 0C01E9D9 */ jal LightContext_InsertLight -/* AED1A0 80076000 AFA5002C */ sw $a1, 0x2c($sp) -/* AED1A4 80076004 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AED1A8 80076008 44810000 */ mtc1 $at, $f0 -/* AED1AC 8007600C 8FA30030 */ lw $v1, 0x30($sp) -/* AED1B0 80076010 3C018016 */ lui $at, %hi(D_8015FD84) -/* AED1B4 80076014 AC22FD84 */ sw $v0, %lo(D_8015FD84)($at) -/* AED1B8 80076018 C4640024 */ lwc1 $f4, 0x24($v1) -/* AED1BC 8007601C 3C048016 */ lui $a0, %hi(D_8015FDA0) -/* AED1C0 80076020 241800FF */ li $t8, 255 -/* AED1C4 80076024 4600218D */ trunc.w.s $f6, $f4 -/* AED1C8 80076028 C4640028 */ lwc1 $f4, 0x28($v1) -/* AED1CC 8007602C 2484FDA0 */ addiu $a0, %lo(D_8015FDA0) # addiu $a0, $a0, -0x260 -/* AED1D0 80076030 440C3000 */ mfc1 $t4, $f6 -/* AED1D4 80076034 4600218D */ trunc.w.s $f6, $f4 -/* AED1D8 80076038 C464002C */ lwc1 $f4, 0x2c($v1) -/* AED1DC 8007603C 000C6C00 */ sll $t5, $t4, 0x10 -/* AED1E0 80076040 000D7403 */ sra $t6, $t5, 0x10 -/* AED1E4 80076044 448E4000 */ mtc1 $t6, $f8 -/* AED1E8 80076048 44193000 */ mfc1 $t9, $f6 -/* AED1EC 8007604C 4600218D */ trunc.w.s $f6, $f4 -/* AED1F0 80076050 AFB8001C */ sw $t8, 0x1c($sp) -/* AED1F4 80076054 00194400 */ sll $t0, $t9, 0x10 -/* AED1F8 80076058 468042A0 */ cvt.s.w $f10, $f8 -/* AED1FC 8007605C 00084C03 */ sra $t1, $t0, 0x10 -/* AED200 80076060 44894000 */ mtc1 $t1, $f8 -/* AED204 80076064 440C3000 */ mfc1 $t4, $f6 -/* AED208 80076068 AFA00018 */ sw $zero, 0x18($sp) -/* AED20C 8007606C AFA00014 */ sw $zero, 0x14($sp) -/* AED210 80076070 46005400 */ add.s $f16, $f10, $f0 -/* AED214 80076074 000C6C00 */ sll $t5, $t4, 0x10 -/* AED218 80076078 000D7403 */ sra $t6, $t5, 0x10 -/* AED21C 8007607C 468042A0 */ cvt.s.w $f10, $f8 -/* AED220 80076080 448E4000 */ mtc1 $t6, $f8 -/* AED224 80076084 AFA00010 */ sw $zero, 0x10($sp) -/* AED228 80076088 4600848D */ trunc.w.s $f18, $f16 -/* AED22C 8007608C 46005400 */ add.s $f16, $f10, $f0 -/* AED230 80076090 44059000 */ mfc1 $a1, $f18 -/* AED234 80076094 468042A0 */ cvt.s.w $f10, $f8 -/* AED238 80076098 00052C00 */ sll $a1, $a1, 0x10 -/* AED23C 8007609C 00052C03 */ sra $a1, $a1, 0x10 -/* AED240 800760A0 4600848D */ trunc.w.s $f18, $f16 -/* AED244 800760A4 46005400 */ add.s $f16, $f10, $f0 -/* AED248 800760A8 44069000 */ mfc1 $a2, $f18 -/* AED24C 800760AC 4600848D */ trunc.w.s $f18, $f16 -/* AED250 800760B0 00063400 */ sll $a2, $a2, 0x10 -/* AED254 800760B4 00063403 */ sra $a2, $a2, 0x10 -/* AED258 800760B8 44079000 */ mfc1 $a3, $f18 -/* AED25C 800760BC 00000000 */ nop -/* AED260 800760C0 00073C00 */ sll $a3, $a3, 0x10 -/* AED264 800760C4 0C01E763 */ jal Lights_PointNoGlowSetInfo -/* AED268 800760C8 00073C03 */ sra $a3, $a3, 0x10 -/* AED26C 800760CC 3C068016 */ lui $a2, %hi(D_8015FDA0) # $a2, 0x8016 -/* AED270 800760D0 24C6FDA0 */ addiu $a2, %lo(D_8015FDA0) # addiu $a2, $a2, -0x260 -/* AED274 800760D4 8FA40038 */ lw $a0, 0x38($sp) -/* AED278 800760D8 0C01E9D9 */ jal LightContext_InsertLight -/* AED27C 800760DC 8FA5002C */ lw $a1, 0x2c($sp) -/* AED280 800760E0 8FBF0024 */ lw $ra, 0x24($sp) -/* AED284 800760E4 3C018016 */ lui $at, %hi(D_8015FD98) # $at, 0x8016 -/* AED288 800760E8 AC22FD98 */ sw $v0, %lo(D_8015FD98)($at) -/* AED28C 800760EC 03E00008 */ jr $ra -/* AED290 800760F0 27BD0038 */ addiu $sp, $sp, 0x38 - diff --git a/asm/non_matchings/code/z_kankyo/func_8006F0A0.s b/asm/non_matchings/code/z_kankyo/func_8006F0A0.s deleted file mode 100644 index bed1af931f..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_8006F0A0.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8006F0A0 -/* AE6240 8006F0A0 000473C3 */ sra $t6, $a0, 0xf -/* AE6244 8006F0A4 31CF0007 */ andi $t7, $t6, 7 -/* AE6248 8006F0A8 3C198012 */ lui $t9, %hi(D_8011FAF0) # $t9, 0x8012 -/* AE624C 8006F0AC 2739FAF0 */ addiu $t9, %lo(D_8011FAF0) # addiu $t9, $t9, -0x510 -/* AE6250 8006F0B0 000FC0C0 */ sll $t8, $t7, 3 -/* AE6254 8006F0B4 03192821 */ addu $a1, $t8, $t9 -/* AE6258 8006F0B8 8CAA0000 */ lw $t2, ($a1) -/* AE625C 8006F0BC 00044103 */ sra $t0, $a0, 4 -/* AE6260 8006F0C0 8CAC0004 */ lw $t4, 4($a1) -/* AE6264 8006F0C4 310907FF */ andi $t1, $t0, 0x7ff -/* AE6268 8006F0C8 01495804 */ sllv $t3, $t1, $t2 -/* AE626C 8006F0CC 03E00008 */ jr $ra -/* AE6270 8006F0D0 018B1021 */ addu $v0, $t4, $t3 - diff --git a/asm/non_matchings/code/z_kankyo/func_8006F0D4.s b/asm/non_matchings/code/z_kankyo/func_8006F0D4.s deleted file mode 100644 index 71f82606c9..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_8006F0D4.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel func_8006F0D4 -/* AE6274 8006F0D4 00057080 */ sll $t6, $a1, 2 -/* AE6278 8006F0D8 01C57021 */ addu $t6, $t6, $a1 -/* AE627C 8006F0DC 000E71C0 */ sll $t6, $t6, 7 -/* AE6280 8006F0E0 00047840 */ sll $t7, $a0, 1 -/* AE6284 8006F0E4 01CFC021 */ addu $t8, $t6, $t7 -/* AE6288 8006F0E8 3C038017 */ lui $v1, %hi(gZBuffer) -/* AE628C 8006F0EC 00781821 */ addu $v1, $v1, $t8 -/* AE6290 8006F0F0 946359C0 */ lhu $v1, %lo(gZBuffer)($v1) -/* AE6294 8006F0F4 03E00008 */ jr $ra -/* AE6298 8006F0F8 3062FFFF */ andi $v0, $v1, 0xffff - diff --git a/asm/non_matchings/code/z_kankyo/func_8006F0FC.s b/asm/non_matchings/code/z_kankyo/func_8006F0FC.s deleted file mode 100644 index 664e097b7d..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_8006F0FC.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_8006F0FC -/* AE629C 8006F0FC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AE62A0 8006F100 AFA40018 */ sw $a0, 0x18($sp) -/* AE62A4 8006F104 AFA5001C */ sw $a1, 0x1c($sp) -/* AE62A8 8006F108 AFBF0014 */ sw $ra, 0x14($sp) -/* AE62AC 8006F10C 3C058016 */ lui $a1, %hi(D_8015FD80) # $a1, 0x8016 -/* AE62B0 8006F110 3C048016 */ lui $a0, %hi(D_8015FD7E) # $a0, 0x8016 -/* AE62B4 8006F114 8484FD7E */ lh $a0, %lo(D_8015FD7E)($a0) -/* AE62B8 8006F118 0C01BC35 */ jal func_8006F0D4 -/* AE62BC 8006F11C 84A5FD80 */ lh $a1, %lo(D_8015FD80)($a1) -/* AE62C0 8006F120 3C018012 */ lui $at, %hi(D_8011FB44) # $at, 0x8012 -/* AE62C4 8006F124 A422FB44 */ sh $v0, %lo(D_8011FB44)($at) -/* AE62C8 8006F128 0C01EA6D */ jal Lights_GlowCheck -/* AE62CC 8006F12C 8FA4001C */ lw $a0, 0x1c($sp) -/* AE62D0 8006F130 8FBF0014 */ lw $ra, 0x14($sp) -/* AE62D4 8006F134 27BD0018 */ addiu $sp, $sp, 0x18 -/* AE62D8 8006F138 03E00008 */ jr $ra -/* AE62DC 8006F13C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_8006F140.s b/asm/non_matchings/code/z_kankyo/func_8006F140.s deleted file mode 100644 index 78aa242a6d..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_8006F140.s +++ /dev/null @@ -1,564 +0,0 @@ -.rdata -glabel D_8013C240 - .asciz "\x1b[43;30m\n\nフィールド常駐以外、太陽設定!よって強制解除!\n\x1b[m" - # EUC-JP: フィールド常駐以外、太陽設定!よって強制解除! | "Sun setting except field resident! So forced release!"? - .balign 4 - -.late_rodata -glabel jtbl_8013C790 - .word L8006F4A8 - .word L8006F4CC - .word L8006F4CC - .word L8006F4CC - .word L8006F4F0 - -.text -glabel func_8006F140 -/* AE62E0 8006F140 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016 -/* AE62E4 8006F144 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0 -/* AE62E8 8006F148 9502000C */ lhu $v0, 0xc($t0) -/* AE62EC 8006F14C 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* AE62F0 8006F150 3401C001 */ li $at, 49153 -/* AE62F4 8006F154 AFB10028 */ sw $s1, 0x28($sp) -/* AE62F8 8006F158 AFB00024 */ sw $s0, 0x24($sp) -/* AE62FC 8006F15C 0041082A */ slt $at, $v0, $at -/* AE6300 8006F160 00A08025 */ move $s0, $a1 -/* AE6304 8006F164 00808825 */ move $s1, $a0 -/* AE6308 8006F168 AFBF002C */ sw $ra, 0x2c($sp) -/* AE630C 8006F16C AFA60060 */ sw $a2, 0x60($sp) -/* AE6310 8006F170 10200003 */ beqz $at, .L8006F180 -/* AE6314 8006F174 A5001422 */ sh $zero, 0x1422($t0) -/* AE6318 8006F178 28414555 */ slti $at, $v0, 0x4555 -/* AE631C 8006F17C 10200003 */ beqz $at, .L8006F18C -.L8006F180: -/* AE6320 8006F180 240E0001 */ li $t6, 1 -/* AE6324 8006F184 10000002 */ b .L8006F190 -/* AE6328 8006F188 AD0E0010 */ sw $t6, 0x10($t0) -.L8006F18C: -/* AE632C 8006F18C AD000010 */ sw $zero, 0x10($t0) -.L8006F190: -/* AE6330 8006F190 8E380000 */ lw $t8, ($s1) -/* AE6334 8006F194 3C0F8007 */ lui $t7, %hi(func_8006F0FC) -/* AE6338 8006F198 25EFF0FC */ addiu $t7, %lo(func_8006F0FC) # addiu $t7, $t7, -0xf04 -/* AE633C 8006F19C AF0F02EC */ sw $t7, 0x2ec($t8) -/* AE6340 8006F1A0 8E390000 */ lw $t9, ($s1) -/* AE6344 8006F1A4 26040028 */ addiu $a0, $s0, 0x28 -/* AE6348 8006F1A8 240B0050 */ li $t3, 80 -/* AE634C 8006F1AC AF3102F0 */ sw $s1, 0x2f0($t9) -/* AE6350 8006F1B0 240C0050 */ li $t4, 80 -/* AE6354 8006F1B4 240D0050 */ li $t5, 80 -/* AE6358 8006F1B8 AFAD0018 */ sw $t5, 0x18($sp) -/* AE635C 8006F1BC AFAC0014 */ sw $t4, 0x14($sp) -/* AE6360 8006F1C0 AFA40038 */ sw $a0, 0x38($sp) -/* AE6364 8006F1C4 AFAB0010 */ sw $t3, 0x10($sp) -/* AE6368 8006F1C8 24050050 */ li $a1, 80 -/* AE636C 8006F1CC 24060050 */ li $a2, 80 -/* AE6370 8006F1D0 0C01E79F */ jal Lights_DirectionalSetInfo -/* AE6374 8006F1D4 24070050 */ li $a3, 80 -/* AE6378 8006F1D8 262507A8 */ addiu $a1, $s1, 0x7a8 -/* AE637C 8006F1DC AFA50034 */ sw $a1, 0x34($sp) -/* AE6380 8006F1E0 02202025 */ move $a0, $s1 -/* AE6384 8006F1E4 0C01E9D9 */ jal LightContext_InsertLight -/* AE6388 8006F1E8 8FA60038 */ lw $a2, 0x38($sp) -/* AE638C 8006F1EC 26040036 */ addiu $a0, $s0, 0x36 -/* AE6390 8006F1F0 240E0050 */ li $t6, 80 -/* AE6394 8006F1F4 240F0050 */ li $t7, 80 -/* AE6398 8006F1F8 24180050 */ li $t8, 80 -/* AE639C 8006F1FC AFB80018 */ sw $t8, 0x18($sp) -/* AE63A0 8006F200 AFAF0014 */ sw $t7, 0x14($sp) -/* AE63A4 8006F204 AFAE0010 */ sw $t6, 0x10($sp) -/* AE63A8 8006F208 AFA40038 */ sw $a0, 0x38($sp) -/* AE63AC 8006F20C 24050050 */ li $a1, 80 -/* AE63B0 8006F210 24060050 */ li $a2, 80 -/* AE63B4 8006F214 0C01E79F */ jal Lights_DirectionalSetInfo -/* AE63B8 8006F218 24070050 */ li $a3, 80 -/* AE63BC 8006F21C 02202025 */ move $a0, $s1 -/* AE63C0 8006F220 8FA50034 */ lw $a1, 0x34($sp) -/* AE63C4 8006F224 0C01E9D9 */ jal LightContext_InsertLight -/* AE63C8 8006F228 8FA60038 */ lw $a2, 0x38($sp) -/* AE63CC 8006F22C 44800000 */ mtc1 $zero, $f0 -/* AE63D0 8006F230 24030063 */ li $v1, 99 -/* AE63D4 8006F234 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AE63D8 8006F238 44812000 */ mtc1 $at, $f4 -/* AE63DC 8006F23C A2030010 */ sb $v1, 0x10($s0) -/* AE63E0 8006F240 A2030011 */ sb $v1, 0x11($s0) -/* AE63E4 8006F244 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016 -/* AE63E8 8006F248 A2000019 */ sb $zero, 0x19($s0) -/* AE63EC 8006F24C A600001A */ sh $zero, 0x1a($s0) -/* AE63F0 8006F250 A2000021 */ sb $zero, 0x21($s0) -/* AE63F4 8006F254 A6000022 */ sh $zero, 0x22($s0) -/* AE63F8 8006F258 A2000044 */ sb $zero, 0x44($s0) -/* AE63FC 8006F25C A200001F */ sb $zero, 0x1f($s0) -/* AE6400 8006F260 A2000020 */ sb $zero, 0x20($s0) -/* AE6404 8006F264 A20000BD */ sb $zero, 0xbd($s0) -/* AE6408 8006F268 A20000BE */ sb $zero, 0xbe($s0) -/* AE640C 8006F26C A20000DC */ sb $zero, 0xdc($s0) -/* AE6410 8006F270 A20000DD */ sb $zero, 0xdd($s0) -/* AE6414 8006F274 A20000DE */ sb $zero, 0xde($s0) -/* AE6418 8006F278 A20000DF */ sb $zero, 0xdf($s0) -/* AE641C 8006F27C A20000E0 */ sb $zero, 0xe0($s0) -/* AE6420 8006F280 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290 -/* AE6424 8006F284 A20000E1 */ sb $zero, 0xe1($s0) -/* AE6428 8006F288 A20000E2 */ sb $zero, 0xe2($s0) -/* AE642C 8006F28C A20000E3 */ sb $zero, 0xe3($s0) -/* AE6430 8006F290 A20000E4 */ sb $zero, 0xe4($s0) -/* AE6434 8006F294 A20000E5 */ sb $zero, 0xe5($s0) -/* AE6438 8006F298 A20000E9 */ sb $zero, 0xe9($s0) -/* AE643C 8006F29C A20000EA */ sb $zero, 0xea($s0) -/* AE6440 8006F2A0 A20000EB */ sb $zero, 0xeb($s0) -/* AE6444 8006F2A4 A20000EC */ sb $zero, 0xec($s0) -/* AE6448 8006F2A8 A20000ED */ sb $zero, 0xed($s0) -/* AE644C 8006F2AC A20000E6 */ sb $zero, 0xe6($s0) -/* AE6450 8006F2B0 A20000E7 */ sb $zero, 0xe7($s0) -/* AE6454 8006F2B4 A20000E8 */ sb $zero, 0xe8($s0) -/* AE6458 8006F2B8 E6000084 */ swc1 $f0, 0x84($s0) -/* AE645C 8006F2BC E6000088 */ swc1 $f0, 0x88($s0) -/* AE6460 8006F2C0 E60400D8 */ swc1 $f4, 0xd8($s0) -/* AE6464 8006F2C4 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016 -/* AE6468 8006F2C8 A0600000 */ sb $zero, ($v1) -/* AE646C 8006F2CC A0600001 */ sb $zero, 1($v1) -/* AE6470 8006F2D0 A0600002 */ sb $zero, 2($v1) -/* AE6474 8006F2D4 A0600003 */ sb $zero, 3($v1) -/* AE6478 8006F2D8 3C018016 */ lui $at, %hi(D_8015FD7C) # $at, 0x8016 -/* AE647C 8006F2DC 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0 -/* AE6480 8006F2E0 A420FD7C */ sh $zero, %lo(D_8015FD7C)($at) -/* AE6484 8006F2E4 A1001410 */ sb $zero, 0x1410($t0) -/* AE6488 8006F2E8 A60000A0 */ sh $zero, 0xa0($s0) -/* AE648C 8006F2EC 860200A0 */ lh $v0, 0xa0($s0) -/* AE6490 8006F2F0 24018000 */ li $at, -32768 -/* AE6494 8006F2F4 A602009E */ sh $v0, 0x9e($s0) -/* AE6498 8006F2F8 A602009C */ sh $v0, 0x9c($s0) -/* AE649C 8006F2FC A602009A */ sh $v0, 0x9a($s0) -/* AE64A0 8006F300 A6020098 */ sh $v0, 0x98($s0) -/* AE64A4 8006F304 A6020096 */ sh $v0, 0x96($s0) -/* AE64A8 8006F308 A6020094 */ sh $v0, 0x94($s0) -/* AE64AC 8006F30C A6020092 */ sh $v0, 0x92($s0) -/* AE64B0 8006F310 A6020090 */ sh $v0, 0x90($s0) -/* AE64B4 8006F314 A602008E */ sh $v0, 0x8e($s0) -/* AE64B8 8006F318 A602008C */ sh $v0, 0x8c($s0) -/* AE64BC 8006F31C 8503000C */ lh $v1, 0xc($t0) -/* AE64C0 8006F320 00612021 */ addu $a0, $v1, $at -/* AE64C4 8006F324 00042400 */ sll $a0, $a0, 0x10 -/* AE64C8 8006F328 0C01DE1C */ jal Math_SinS -/* AE64CC 8006F32C 00042403 */ sra $a0, $a0, 0x10 -/* AE64D0 8006F330 3C0142F0 */ li $at, 0x42F00000 # 0.000000 -/* AE64D4 8006F334 44813000 */ mtc1 $at, $f6 -/* AE64D8 8006F338 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AE64DC 8006F33C 44818000 */ mtc1 $at, $f16 -/* AE64E0 8006F340 46060202 */ mul.s $f8, $f0, $f6 -/* AE64E4 8006F344 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016 -/* AE64E8 8006F348 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0 -/* AE64EC 8006F34C 24018000 */ li $at, -32768 -/* AE64F0 8006F350 46004287 */ neg.s $f10, $f8 -/* AE64F4 8006F354 46105482 */ mul.s $f18, $f10, $f16 -/* AE64F8 8006F358 E6120004 */ swc1 $f18, 4($s0) -/* AE64FC 8006F35C 9503000C */ lhu $v1, 0xc($t0) -/* AE6500 8006F360 00612021 */ addu $a0, $v1, $at -/* AE6504 8006F364 00042400 */ sll $a0, $a0, 0x10 -/* AE6508 8006F368 0C01DE0D */ jal Math_CosS -/* AE650C 8006F36C 00042403 */ sra $a0, $a0, 0x10 -/* AE6510 8006F370 3C0142F0 */ li $at, 0x42F00000 # 0.000000 -/* AE6514 8006F374 44812000 */ mtc1 $at, $f4 -/* AE6518 8006F378 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AE651C 8006F37C 44814000 */ mtc1 $at, $f8 -/* AE6520 8006F380 46040182 */ mul.s $f6, $f0, $f4 -/* AE6524 8006F384 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016 -/* AE6528 8006F388 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0 -/* AE652C 8006F38C 24018000 */ li $at, -32768 -/* AE6530 8006F390 46083282 */ mul.s $f10, $f6, $f8 -/* AE6534 8006F394 E60A0008 */ swc1 $f10, 8($s0) -/* AE6538 8006F398 9503000C */ lhu $v1, 0xc($t0) -/* AE653C 8006F39C 00612021 */ addu $a0, $v1, $at -/* AE6540 8006F3A0 00042400 */ sll $a0, $a0, 0x10 -/* AE6544 8006F3A4 0C01DE0D */ jal Math_CosS -/* AE6548 8006F3A8 00042403 */ sra $a0, $a0, 0x10 -/* AE654C 8006F3AC 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* AE6550 8006F3B0 44818000 */ mtc1 $at, $f16 -/* AE6554 8006F3B4 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AE6558 8006F3B8 44812000 */ mtc1 $at, $f4 -/* AE655C 8006F3BC 46100482 */ mul.s $f18, $f0, $f16 -/* AE6560 8006F3C0 24070050 */ li $a3, 80 -/* AE6564 8006F3C4 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AE6568 8006F3C8 240500FF */ li $a1, 255 -/* AE656C 8006F3CC 3419FFFF */ li $t9, 65535 -/* AE6570 8006F3D0 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* AE6574 8006F3D4 A60700A8 */ sh $a3, 0xa8($s0) -/* AE6578 8006F3D8 46049182 */ mul.s $f6, $f18, $f4 -/* AE657C 8006F3DC A60700AA */ sh $a3, 0xaa($s0) -/* AE6580 8006F3E0 A60700AC */ sh $a3, 0xac($s0) -/* AE6584 8006F3E4 A20000BC */ sb $zero, 0xbc($s0) -/* AE6588 8006F3E8 A20500BF */ sb $a1, 0xbf($s0) -/* AE658C 8006F3EC A61900D6 */ sh $t9, 0xd6($s0) -/* AE6590 8006F3F0 A6000002 */ sh $zero, 2($s0) -/* AE6594 8006F3F4 E606000C */ swc1 $f6, 0xc($s0) -/* AE6598 8006F3F8 8C6D0000 */ lw $t5, ($v1) -/* AE659C 8006F3FC 3C048012 */ lui $a0, %hi(D_8011FB40) # $a0, 0x8012 -/* AE65A0 8006F400 2484FB40 */ addiu $a0, %lo(D_8011FB40) # addiu $a0, $a0, -0x4c0 -/* AE65A4 8006F404 A4800000 */ sh $zero, ($a0) -/* AE65A8 8006F408 A5A00032 */ sh $zero, 0x32($t5) -/* AE65AC 8006F40C 8C6E0000 */ lw $t6, ($v1) -/* AE65B0 8006F410 240A0001 */ li $t2, 1 -/* AE65B4 8006F414 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016 -/* AE65B8 8006F418 A5CA0026 */ sh $t2, 0x26($t6) -/* AE65BC 8006F41C 8C6F0000 */ lw $t7, ($v1) -/* AE65C0 8006F420 3C010001 */ lui $at, 1 -/* AE65C4 8006F424 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0 -/* AE65C8 8006F428 85E2085A */ lh $v0, 0x85a($t7) -/* AE65CC 8006F42C 02213021 */ addu $a2, $s1, $at -/* AE65D0 8006F430 3C048012 */ lui $a0, %hi(D_8011FB30) # $a0, 0x8012 -/* AE65D4 8006F434 10400002 */ beqz $v0, .L8006F440 -/* AE65D8 8006F438 2458FFFF */ addiu $t8, $v0, -1 -/* AE65DC 8006F43C A1181415 */ sb $t8, 0x1415($t0) -.L8006F440: -/* AE65E0 8006F440 A0C00B12 */ sb $zero, 0xb12($a2) -/* AE65E4 8006F444 A0C00B13 */ sb $zero, 0xb13($a2) -/* AE65E8 8006F448 A0C00B14 */ sb $zero, 0xb14($a2) -/* AE65EC 8006F44C A0C00B15 */ sb $zero, 0xb15($a2) -/* AE65F0 8006F450 A0C00B16 */ sb $zero, 0xb16($a2) -/* AE65F4 8006F454 911913C3 */ lbu $t9, 0x13c3($t0) -/* AE65F8 8006F458 2484FB30 */ addiu $a0, %lo(D_8011FB30) # addiu $a0, $a0, -0x4d0 -/* AE65FC 8006F45C 24090001 */ li $t1, 1 -/* AE6600 8006F460 53200046 */ beql $t9, $zero, .L8006F57C -/* AE6604 8006F464 A0800000 */ sb $zero, ($a0) -/* AE6608 8006F468 8D0B1360 */ lw $t3, 0x1360($t0) -/* AE660C 8006F46C 3C048012 */ lui $a0, %hi(D_8011FB30) # $a0, 0x8012 -/* AE6610 8006F470 2484FB30 */ addiu $a0, %lo(D_8011FB30) # addiu $a0, $a0, -0x4d0 -/* AE6614 8006F474 29610004 */ slti $at, $t3, 4 -/* AE6618 8006F478 1020003D */ beqz $at, .L8006F570 -/* AE661C 8006F47C 00000000 */ nop -/* AE6620 8006F480 908C0000 */ lbu $t4, ($a0) -/* AE6624 8006F484 258DFFFF */ addiu $t5, $t4, -1 -/* AE6628 8006F488 2DA10005 */ sltiu $at, $t5, 5 -/* AE662C 8006F48C 10200021 */ beqz $at, .L8006F514 -/* AE6630 8006F490 000D6880 */ sll $t5, $t5, 2 -/* AE6634 8006F494 3C018014 */ lui $at, %hi(jtbl_8013C790) -/* AE6638 8006F498 002D0821 */ addu $at, $at, $t5 -/* AE663C 8006F49C 8C2DC790 */ lw $t5, %lo(jtbl_8013C790)($at) -/* AE6640 8006F4A0 01A00008 */ jr $t5 -/* AE6644 8006F4A4 00000000 */ nop -glabel L8006F4A8 -/* AE6648 8006F4A8 24020003 */ li $v0, 3 -/* AE664C 8006F4AC 24090001 */ li $t1, 1 -/* AE6650 8006F4B0 A2090017 */ sb $t1, 0x17($s0) -/* AE6654 8006F4B4 A2090018 */ sb $t1, 0x18($s0) -/* AE6658 8006F4B8 A202001F */ sb $v0, 0x1f($s0) -/* AE665C 8006F4BC A2020020 */ sb $v0, 0x20($s0) -/* AE6660 8006F4C0 A0C00B15 */ sb $zero, 0xb15($a2) -/* AE6664 8006F4C4 10000013 */ b .L8006F514 -/* AE6668 8006F4C8 A0C00B14 */ sb $zero, 0xb14($a2) -glabel L8006F4CC -/* AE666C 8006F4CC 24020002 */ li $v0, 2 -/* AE6670 8006F4D0 24090001 */ li $t1, 1 -/* AE6674 8006F4D4 A2090017 */ sb $t1, 0x17($s0) -/* AE6678 8006F4D8 A2090018 */ sb $t1, 0x18($s0) -/* AE667C 8006F4DC A202001F */ sb $v0, 0x1f($s0) -/* AE6680 8006F4E0 A2020020 */ sb $v0, 0x20($s0) -/* AE6684 8006F4E4 A0C00B15 */ sb $zero, 0xb15($a2) -/* AE6688 8006F4E8 1000000A */ b .L8006F514 -/* AE668C 8006F4EC A0C00B14 */ sb $zero, 0xb14($a2) -glabel L8006F4F0 -/* AE6690 8006F4F0 24020004 */ li $v0, 4 -/* AE6694 8006F4F4 24090001 */ li $t1, 1 -/* AE6698 8006F4F8 A2090017 */ sb $t1, 0x17($s0) -/* AE669C 8006F4FC A2090018 */ sb $t1, 0x18($s0) -/* AE66A0 8006F500 A202001F */ sb $v0, 0x1f($s0) -/* AE66A4 8006F504 A2020020 */ sb $v0, 0x20($s0) -/* AE66A8 8006F508 A0C00B15 */ sb $zero, 0xb15($a2) -/* AE66AC 8006F50C 10000001 */ b .L8006F514 -/* AE66B0 8006F510 A0C00B14 */ sb $zero, 0xb14($a2) -.L8006F514: -/* AE66B4 8006F514 90CE1E14 */ lbu $t6, 0x1e14($a2) -/* AE66B8 8006F518 154E0015 */ bne $t2, $t6, .L8006F570 -/* AE66BC 8006F51C 00000000 */ nop -/* AE66C0 8006F520 90820000 */ lbu $v0, ($a0) -/* AE66C4 8006F524 24010003 */ li $at, 3 -/* AE66C8 8006F528 24180040 */ li $t8, 64 -/* AE66CC 8006F52C 14410004 */ bne $v0, $at, .L8006F540 -/* AE66D0 8006F530 24090001 */ li $t1, 1 -/* AE66D4 8006F534 A0D80B15 */ sb $t8, 0xb15($a2) -/* AE66D8 8006F538 10000010 */ b .L8006F57C -/* AE66DC 8006F53C A0D80B14 */ sb $t8, 0xb14($a2) -.L8006F540: -/* AE66E0 8006F540 24010004 */ li $at, 4 -/* AE66E4 8006F544 14410005 */ bne $v0, $at, .L8006F55C -/* AE66E8 8006F548 24090001 */ li $t1, 1 -/* AE66EC 8006F54C 24020014 */ li $v0, 20 -/* AE66F0 8006F550 A0C20B12 */ sb $v0, 0xb12($a2) -/* AE66F4 8006F554 10000009 */ b .L8006F57C -/* AE66F8 8006F558 A0C20B13 */ sb $v0, 0xb13($a2) -.L8006F55C: -/* AE66FC 8006F55C 24010005 */ li $at, 5 -/* AE6700 8006F560 14410003 */ bne $v0, $at, .L8006F570 -/* AE6704 8006F564 2402001E */ li $v0, 30 -/* AE6708 8006F568 A0C20B12 */ sb $v0, 0xb12($a2) -/* AE670C 8006F56C A0C20B13 */ sb $v0, 0xb13($a2) -.L8006F570: -/* AE6710 8006F570 10000002 */ b .L8006F57C -/* AE6714 8006F574 24090001 */ li $t1, 1 -/* AE6718 8006F578 A0800000 */ sb $zero, ($a0) -.L8006F57C: -/* AE671C 8006F57C 3C018012 */ lui $at, %hi(D_8011FB38) # $at, 0x8012 -/* AE6720 8006F580 A020FB38 */ sb $zero, %lo(D_8011FB38)($at) -/* AE6724 8006F584 3C018012 */ lui $at, %hi(D_8011FB34) # $at, 0x8012 -/* AE6728 8006F588 A020FB34 */ sb $zero, %lo(D_8011FB34)($at) -/* AE672C 8006F58C 3C018012 */ lui $at, %hi(D_8011FB3C) # $at, 0x8012 -/* AE6730 8006F590 A020FB3C */ sb $zero, %lo(D_8011FB3C)($at) -/* AE6734 8006F594 8C790000 */ lw $t9, ($v1) -/* AE6738 8006F598 A10013C3 */ sb $zero, 0x13c3($t0) -/* AE673C 8006F59C 2404FFB0 */ li $a0, -80 -/* AE6740 8006F5A0 A7270B5A */ sh $a3, 0xb5a($t9) -/* AE6744 8006F5A4 8C6B0000 */ lw $t3, ($v1) -/* AE6748 8006F5A8 2418000A */ li $t8, 10 -/* AE674C 8006F5AC 3C018016 */ lui $at, %hi(D_8015FCC8) # $at, 0x8016 -/* AE6750 8006F5B0 A5670B5C */ sh $a3, 0xb5c($t3) -/* AE6754 8006F5B4 8C6C0000 */ lw $t4, ($v1) -/* AE6758 8006F5B8 00001025 */ move $v0, $zero -/* AE675C 8006F5BC A5870B5E */ sh $a3, 0xb5e($t4) -/* AE6760 8006F5C0 8C6D0000 */ lw $t5, ($v1) -/* AE6764 8006F5C4 A5A40B60 */ sh $a0, 0xb60($t5) -/* AE6768 8006F5C8 8C6E0000 */ lw $t6, ($v1) -/* AE676C 8006F5CC A5C40B62 */ sh $a0, 0xb62($t6) -/* AE6770 8006F5D0 8C6F0000 */ lw $t7, ($v1) -/* AE6774 8006F5D4 A5E40B64 */ sh $a0, 0xb64($t7) -/* AE6778 8006F5D8 8C790000 */ lw $t9, ($v1) -/* AE677C 8006F5DC A7380B66 */ sh $t8, 0xb66($t9) -/* AE6780 8006F5E0 8C6B0000 */ lw $t3, ($v1) -/* AE6784 8006F5E4 A5600B68 */ sh $zero, 0xb68($t3) -/* AE6788 8006F5E8 8C6C0000 */ lw $t4, ($v1) -/* AE678C 8006F5EC A5800B6A */ sh $zero, 0xb6a($t4) -/* AE6790 8006F5F0 8C6D0000 */ lw $t5, ($v1) -/* AE6794 8006F5F4 A5A00B6C */ sh $zero, 0xb6c($t5) -/* AE6798 8006F5F8 8C6E0000 */ lw $t6, ($v1) -/* AE679C 8006F5FC A5C00B6E */ sh $zero, 0xb6e($t6) -/* AE67A0 8006F600 8C6F0000 */ lw $t7, ($v1) -/* AE67A4 8006F604 3C038016 */ lui $v1, %hi(D_8015FD10) # $v1, 0x8016 -/* AE67A8 8006F608 2463FD10 */ addiu $v1, %lo(D_8015FD10) # addiu $v1, $v1, -0x2f0 -/* AE67AC 8006F60C A5E00B70 */ sh $zero, 0xb70($t7) -/* AE67B0 8006F610 A029FCC8 */ sb $t1, %lo(D_8015FCC8)($at) -.L8006F614: -/* AE67B4 8006F614 0002C140 */ sll $t8, $v0, 5 -/* AE67B8 8006F618 24420001 */ addiu $v0, $v0, 1 -/* AE67BC 8006F61C 304200FF */ andi $v0, $v0, 0xff -/* AE67C0 8006F620 28410003 */ slti $at, $v0, 3 -/* AE67C4 8006F624 0078C821 */ addu $t9, $v1, $t8 -/* AE67C8 8006F628 1420FFFA */ bnez $at, .L8006F614 -/* AE67CC 8006F62C A3250000 */ sb $a1, ($t9) -/* AE67D0 8006F630 A4C01D30 */ sh $zero, 0x1d30($a2) -/* AE67D4 8006F634 A4C01D32 */ sh $zero, 0x1d32($a2) -/* AE67D8 8006F638 00001025 */ move $v0, $zero -.L8006F63C: -/* AE67DC 8006F63C 00025880 */ sll $t3, $v0, 2 -/* AE67E0 8006F640 24420001 */ addiu $v0, $v0, 1 -/* AE67E4 8006F644 304200FF */ andi $v0, $v0, 0xff -/* AE67E8 8006F648 2841000A */ slti $at, $v0, 0xa -/* AE67EC 8006F64C 022B6021 */ addu $t4, $s1, $t3 -/* AE67F0 8006F650 1420FFFA */ bnez $at, .L8006F63C -/* AE67F4 8006F654 AD801D8C */ sw $zero, 0x1d8c($t4) -/* AE67F8 8006F658 3C010001 */ lui $at, (0x000117A4 >> 16) # lui $at, 1 -/* AE67FC 8006F65C 342117A4 */ ori $at, (0x000117A4 & 0xFFFF) # ori $at, $at, 0x17a4 -/* AE6800 8006F660 02212021 */ addu $a0, $s1, $at -/* AE6804 8006F664 24050002 */ li $a1, 2 -/* AE6808 8006F668 0C02604B */ jal Object_GetIndex -/* AE680C 8006F66C AFA60034 */ sw $a2, 0x34($sp) -/* AE6810 8006F670 8FA60034 */ lw $a2, 0x34($sp) -/* AE6814 8006F674 04410009 */ bgez $v0, .L8006F69C -/* AE6818 8006F678 24090001 */ li $t1, 1 -/* AE681C 8006F67C 90CD0A3A */ lbu $t5, 0xa3a($a2) -/* AE6820 8006F680 3C010001 */ lui $at, 1 -/* AE6824 8006F684 00310821 */ addu $at, $at, $s1 -/* AE6828 8006F688 15A00004 */ bnez $t5, .L8006F69C -/* AE682C 8006F68C 3C048014 */ lui $a0, %hi(D_8013C240) # $a0, 0x8014 -/* AE6830 8006F690 A0290A3A */ sb $t1, 0xa3a($at) -/* AE6834 8006F694 0C00084C */ jal osSyncPrintf -/* AE6838 8006F698 2484C240 */ addiu $a0, %lo(D_8013C240) # addiu $a0, $a0, -0x3dc0 -.L8006F69C: -/* AE683C 8006F69C 3C018016 */ lui $at, %hi(D_8015FCF0) # $at, 0x8016 -/* AE6840 8006F6A0 0C02A857 */ jal func_800AA15C -/* AE6844 8006F6A4 A020FCF0 */ sb $zero, %lo(D_8015FCF0)($at) -/* AE6848 8006F6A8 8FBF002C */ lw $ra, 0x2c($sp) -/* AE684C 8006F6AC 8FB00024 */ lw $s0, 0x24($sp) -/* AE6850 8006F6B0 8FB10028 */ lw $s1, 0x28($sp) -/* AE6854 8006F6B4 03E00008 */ jr $ra -/* AE6858 8006F6B8 27BD0058 */ addiu $sp, $sp, 0x58 - -/* AE685C 8006F6BC AFA50004 */ sw $a1, 4($sp) -/* AE6860 8006F6C0 AFA60008 */ sw $a2, 8($sp) -/* AE6864 8006F6C4 AFA7000C */ sw $a3, 0xc($sp) -/* AE6868 8006F6C8 90890000 */ lbu $t1, ($a0) -/* AE686C 8006F6CC 30A500FF */ andi $a1, $a1, 0xff -/* AE6870 8006F6D0 30C600FF */ andi $a2, $a2, 0xff -/* AE6874 8006F6D4 00A91823 */ subu $v1, $a1, $t1 -/* AE6878 8006F6D8 00031C00 */ sll $v1, $v1, 0x10 -/* AE687C 8006F6DC 00031C03 */ sra $v1, $v1, 0x10 -/* AE6880 8006F6E0 10A90043 */ beq $a1, $t1, .L8006F7F0 -/* AE6884 8006F6E4 00A04025 */ move $t0, $a1 -/* AE6888 8006F6E8 0066001A */ div $zero, $v1, $a2 -/* AE688C 8006F6EC 93AB0013 */ lbu $t3, 0x13($sp) -/* AE6890 8006F6F0 14C00002 */ bnez $a2, .L8006F6FC -/* AE6894 8006F6F4 00000000 */ nop -/* AE6898 8006F6F8 0007000D */ break 7 -.L8006F6FC: -/* AE689C 8006F6FC 2401FFFF */ li $at, -1 -/* AE68A0 8006F700 14C10004 */ bne $a2, $at, .L8006F714 -/* AE68A4 8006F704 3C018000 */ lui $at, 0x8000 -/* AE68A8 8006F708 14610002 */ bne $v1, $at, .L8006F714 -/* AE68AC 8006F70C 00000000 */ nop -/* AE68B0 8006F710 0006000D */ break 6 -.L8006F714: -/* AE68B4 8006F714 00003812 */ mflo $a3 -/* AE68B8 8006F718 00075400 */ sll $t2, $a3, 0x10 -/* AE68BC 8006F71C 000B6400 */ sll $t4, $t3, 0x10 -/* AE68C0 8006F720 000C6403 */ sra $t4, $t4, 0x10 -/* AE68C4 8006F724 000A5403 */ sra $t2, $t2, 0x10 -/* AE68C8 8006F728 00071400 */ sll $v0, $a3, 0x10 -/* AE68CC 8006F72C 014C082A */ slt $at, $t2, $t4 -/* AE68D0 8006F730 10200007 */ beqz $at, .L8006F750 -/* AE68D4 8006F734 00021403 */ sra $v0, $v0, 0x10 -/* AE68D8 8006F738 000B3023 */ negu $a2, $t3 -/* AE68DC 8006F73C 00063400 */ sll $a2, $a2, 0x10 -/* AE68E0 8006F740 00063403 */ sra $a2, $a2, 0x10 -/* AE68E4 8006F744 00CA082A */ slt $at, $a2, $t2 -/* AE68E8 8006F748 54200016 */ bnezl $at, .L8006F7A4 -/* AE68EC 8006F74C 014C082A */ slt $at, $t2, $t4 -.L8006F750: -/* AE68F0 8006F750 93A5000F */ lbu $a1, 0xf($sp) -/* AE68F4 8006F754 00057400 */ sll $t6, $a1, 0x10 -/* AE68F8 8006F758 000E7C03 */ sra $t7, $t6, 0x10 -/* AE68FC 8006F75C 01EA082A */ slt $at, $t7, $t2 -/* AE6900 8006F760 10200003 */ beqz $at, .L8006F770 -/* AE6904 8006F764 00053023 */ negu $a2, $a1 -/* AE6908 8006F768 00051400 */ sll $v0, $a1, 0x10 -/* AE690C 8006F76C 00021403 */ sra $v0, $v0, 0x10 -.L8006F770: -/* AE6910 8006F770 0006C400 */ sll $t8, $a2, 0x10 -/* AE6914 8006F774 0018CC03 */ sra $t9, $t8, 0x10 -/* AE6918 8006F778 0059082A */ slt $at, $v0, $t9 -/* AE691C 8006F77C 50200004 */ beql $at, $zero, .L8006F790 -/* AE6920 8006F780 00406825 */ move $t5, $v0 -/* AE6924 8006F784 00061400 */ sll $v0, $a2, 0x10 -/* AE6928 8006F788 00021403 */ sra $v0, $v0, 0x10 -/* AE692C 8006F78C 00406825 */ move $t5, $v0 -.L8006F790: -/* AE6930 8006F790 012D7021 */ addu $t6, $t1, $t5 -/* AE6934 8006F794 A08E0000 */ sb $t6, ($a0) -/* AE6938 8006F798 03E00008 */ jr $ra -/* AE693C 8006F79C 306200FF */ andi $v0, $v1, 0xff - -/* AE6940 8006F7A0 014C082A */ slt $at, $t2, $t4 -.L8006F7A4: -/* AE6944 8006F7A4 10200008 */ beqz $at, .L8006F7C8 -/* AE6948 8006F7A8 012CC021 */ addu $t8, $t1, $t4 -/* AE694C 8006F7AC 331900FF */ andi $t9, $t8, 0xff -/* AE6950 8006F7B0 000B1400 */ sll $v0, $t3, 0x10 -/* AE6954 8006F7B4 0119082A */ slt $at, $t0, $t9 -/* AE6958 8006F7B8 00021403 */ sra $v0, $v0, 0x10 -/* AE695C 8006F7BC 10200002 */ beqz $at, .L8006F7C8 -/* AE6960 8006F7C0 A0980000 */ sb $t8, ($a0) -/* AE6964 8006F7C4 A0850000 */ sb $a1, ($a0) -.L8006F7C8: -/* AE6968 8006F7C8 00C2082A */ slt $at, $a2, $v0 -/* AE696C 8006F7CC 10200008 */ beqz $at, .L8006F7F0 -/* AE6970 8006F7D0 00000000 */ nop -/* AE6974 8006F7D4 908D0000 */ lbu $t5, ($a0) -/* AE6978 8006F7D8 01A67821 */ addu $t7, $t5, $a2 -/* AE697C 8006F7DC 31F800FF */ andi $t8, $t7, 0xff -/* AE6980 8006F7E0 0308082A */ slt $at, $t8, $t0 -/* AE6984 8006F7E4 10200002 */ beqz $at, .L8006F7F0 -/* AE6988 8006F7E8 A08F0000 */ sb $t7, ($a0) -/* AE698C 8006F7EC A0850000 */ sb $a1, ($a0) -.L8006F7F0: -/* AE6990 8006F7F0 03E00008 */ jr $ra -/* AE6994 8006F7F4 306200FF */ andi $v0, $v1, 0xff - -/* AE6998 8006F7F8 AFA50004 */ sw $a1, 4($sp) -/* AE699C 8006F7FC AFA60008 */ sw $a2, 8($sp) -/* AE69A0 8006F800 AFA7000C */ sw $a3, 0xc($sp) -/* AE69A4 8006F804 80880000 */ lb $t0, ($a0) -/* AE69A8 8006F808 00052E00 */ sll $a1, $a1, 0x18 -/* AE69AC 8006F80C 00052E03 */ sra $a1, $a1, 0x18 -/* AE69B0 8006F810 00A81823 */ subu $v1, $a1, $t0 -/* AE69B4 8006F814 00031C00 */ sll $v1, $v1, 0x10 -/* AE69B8 8006F818 30C600FF */ andi $a2, $a2, 0xff -/* AE69BC 8006F81C 10A80045 */ beq $a1, $t0, .L8006F934 -/* AE69C0 8006F820 00031C03 */ sra $v1, $v1, 0x10 -/* AE69C4 8006F824 0066001A */ div $zero, $v1, $a2 -/* AE69C8 8006F828 93AA0013 */ lbu $t2, 0x13($sp) -/* AE69CC 8006F82C 14C00002 */ bnez $a2, .L8006F838 -/* AE69D0 8006F830 00000000 */ nop -/* AE69D4 8006F834 0007000D */ break 7 -.L8006F838: -/* AE69D8 8006F838 2401FFFF */ li $at, -1 -/* AE69DC 8006F83C 14C10004 */ bne $a2, $at, .L8006F850 -/* AE69E0 8006F840 3C018000 */ lui $at, 0x8000 -/* AE69E4 8006F844 14610002 */ bne $v1, $at, .L8006F850 -/* AE69E8 8006F848 00000000 */ nop -/* AE69EC 8006F84C 0006000D */ break 6 -.L8006F850: -/* AE69F0 8006F850 00003812 */ mflo $a3 -/* AE69F4 8006F854 00074C00 */ sll $t1, $a3, 0x10 -/* AE69F8 8006F858 000A5C00 */ sll $t3, $t2, 0x10 -/* AE69FC 8006F85C 000B5C03 */ sra $t3, $t3, 0x10 -/* AE6A00 8006F860 00094C03 */ sra $t1, $t1, 0x10 -/* AE6A04 8006F864 00071400 */ sll $v0, $a3, 0x10 -/* AE6A08 8006F868 012B082A */ slt $at, $t1, $t3 -/* AE6A0C 8006F86C 10200007 */ beqz $at, .L8006F88C -/* AE6A10 8006F870 00021403 */ sra $v0, $v0, 0x10 -/* AE6A14 8006F874 000A3023 */ negu $a2, $t2 -/* AE6A18 8006F878 00063400 */ sll $a2, $a2, 0x10 -/* AE6A1C 8006F87C 00063403 */ sra $a2, $a2, 0x10 -/* AE6A20 8006F880 00C9082A */ slt $at, $a2, $t1 -/* AE6A24 8006F884 54200016 */ bnezl $at, .L8006F8E0 -/* AE6A28 8006F888 012B082A */ slt $at, $t1, $t3 -.L8006F88C: -/* AE6A2C 8006F88C 93A5000F */ lbu $a1, 0xf($sp) -/* AE6A30 8006F890 00057400 */ sll $t6, $a1, 0x10 -/* AE6A34 8006F894 000E7C03 */ sra $t7, $t6, 0x10 -/* AE6A38 8006F898 01E9082A */ slt $at, $t7, $t1 -/* AE6A3C 8006F89C 10200003 */ beqz $at, .L8006F8AC -/* AE6A40 8006F8A0 00053023 */ negu $a2, $a1 -/* AE6A44 8006F8A4 00051400 */ sll $v0, $a1, 0x10 -/* AE6A48 8006F8A8 00021403 */ sra $v0, $v0, 0x10 -.L8006F8AC: -/* AE6A4C 8006F8AC 0006C400 */ sll $t8, $a2, 0x10 -/* AE6A50 8006F8B0 0018CC03 */ sra $t9, $t8, 0x10 -/* AE6A54 8006F8B4 0059082A */ slt $at, $v0, $t9 -/* AE6A58 8006F8B8 50200004 */ beql $at, $zero, .L8006F8CC -/* AE6A5C 8006F8BC 00406825 */ move $t5, $v0 -/* AE6A60 8006F8C0 00061400 */ sll $v0, $a2, 0x10 -/* AE6A64 8006F8C4 00021403 */ sra $v0, $v0, 0x10 -/* AE6A68 8006F8C8 00406825 */ move $t5, $v0 -.L8006F8CC: -/* AE6A6C 8006F8CC 010D7021 */ addu $t6, $t0, $t5 -/* AE6A70 8006F8D0 A08E0000 */ sb $t6, ($a0) -/* AE6A74 8006F8D4 03E00008 */ jr $ra -/* AE6A78 8006F8D8 306200FF */ andi $v0, $v1, 0xff - -/* AE6A7C 8006F8DC 012B082A */ slt $at, $t1, $t3 -.L8006F8E0: -/* AE6A80 8006F8E0 10200009 */ beqz $at, .L8006F908 -/* AE6A84 8006F8E4 010BC821 */ addu $t9, $t0, $t3 -/* AE6A88 8006F8E8 A0990000 */ sb $t9, ($a0) -/* AE6A8C 8006F8EC 808C0000 */ lb $t4, ($a0) -/* AE6A90 8006F8F0 000A1400 */ sll $v0, $t2, 0x10 -/* AE6A94 8006F8F4 00021403 */ sra $v0, $v0, 0x10 -/* AE6A98 8006F8F8 00AC082A */ slt $at, $a1, $t4 -/* AE6A9C 8006F8FC 50200003 */ beql $at, $zero, .L8006F90C -/* AE6AA0 8006F900 00C2082A */ slt $at, $a2, $v0 -/* AE6AA4 8006F904 A0850000 */ sb $a1, ($a0) -.L8006F908: -/* AE6AA8 8006F908 00C2082A */ slt $at, $a2, $v0 -.L8006F90C: -/* AE6AAC 8006F90C 10200009 */ beqz $at, .L8006F934 -/* AE6AB0 8006F910 00000000 */ nop -/* AE6AB4 8006F914 808D0000 */ lb $t5, ($a0) -/* AE6AB8 8006F918 01A6C021 */ addu $t8, $t5, $a2 -/* AE6ABC 8006F91C A0980000 */ sb $t8, ($a0) -/* AE6AC0 8006F920 80990000 */ lb $t9, ($a0) -/* AE6AC4 8006F924 0325082A */ slt $at, $t9, $a1 -/* AE6AC8 8006F928 10200002 */ beqz $at, .L8006F934 -/* AE6ACC 8006F92C 00000000 */ nop -/* AE6AD0 8006F930 A0850000 */ sb $a1, ($a0) -.L8006F934: -/* AE6AD4 8006F934 03E00008 */ jr $ra -/* AE6AD8 8006F938 306200FF */ andi $v0, $v1, 0xff - diff --git a/asm/non_matchings/code/z_kankyo/func_8006F93C.s b/asm/non_matchings/code/z_kankyo/func_8006F93C.s deleted file mode 100644 index c01ed57aae..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_8006F93C.s +++ /dev/null @@ -1,35 +0,0 @@ -glabel func_8006F93C -/* AE6ADC 8006F93C AFA40000 */ sw $a0, ($sp) -/* AE6AE0 8006F940 AFA50004 */ sw $a1, 4($sp) -/* AE6AE4 8006F944 30A5FFFF */ andi $a1, $a1, 0xffff -/* AE6AE8 8006F948 3084FFFF */ andi $a0, $a0, 0xffff -/* AE6AEC 8006F94C 00857023 */ subu $t6, $a0, $a1 -/* AE6AF0 8006F950 448E2000 */ mtc1 $t6, $f4 -/* AE6AF4 8006F954 44803000 */ mtc1 $zero, $f6 -/* AE6AF8 8006F958 AFA60008 */ sw $a2, 8($sp) -/* AE6AFC 8006F95C 46802020 */ cvt.s.w $f0, $f4 -/* AE6B00 8006F960 30C6FFFF */ andi $a2, $a2, 0xffff -/* AE6B04 8006F964 00867823 */ subu $t7, $a0, $a2 -/* AE6B08 8006F968 46003032 */ c.eq.s $f6, $f0 -/* AE6B0C 8006F96C 00000000 */ nop -/* AE6B10 8006F970 4503000E */ bc1tl .L8006F9AC -/* AE6B14 8006F974 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AE6B18 8006F978 448F4000 */ mtc1 $t7, $f8 -/* AE6B1C 8006F97C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AE6B20 8006F980 44816000 */ mtc1 $at, $f12 -/* AE6B24 8006F984 468042A0 */ cvt.s.w $f10, $f8 -/* AE6B28 8006F988 46005403 */ div.s $f16, $f10, $f0 -/* AE6B2C 8006F98C 46106081 */ sub.s $f2, $f12, $f16 -/* AE6B30 8006F990 4602603E */ c.le.s $f12, $f2 -/* AE6B34 8006F994 00000000 */ nop -/* AE6B38 8006F998 45030004 */ bc1tl .L8006F9AC -/* AE6B3C 8006F99C 3C013F80 */ lui $at, 0x3f80 -/* AE6B40 8006F9A0 03E00008 */ jr $ra -/* AE6B44 8006F9A4 46001006 */ mov.s $f0, $f2 - -/* AE6B48 8006F9A8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -.L8006F9AC: -/* AE6B4C 8006F9AC 44810000 */ mtc1 $at, $f0 -/* AE6B50 8006F9B0 00000000 */ nop -/* AE6B54 8006F9B4 03E00008 */ jr $ra -/* AE6B58 8006F9B8 00000000 */ nop diff --git a/asm/non_matchings/code/z_kankyo/func_8006F9BC.s b/asm/non_matchings/code/z_kankyo/func_8006F9BC.s deleted file mode 100644 index a74e6f7f92..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_8006F9BC.s +++ /dev/null @@ -1,142 +0,0 @@ -.rdata -glabel D_8013C280 - .asciz "\x1b[41;37m\nend_frameとstart_frameのフレーム関係がおかしい!!!\x1b[m" - # EUC-JP: とstart_frameのフレーム関係がおかしい!!! | The frame relation between end_frame and start_frame is wrong - .balign 4 - -glabel D_8013C2C0 - .asciz "\x1b[41;37m\nby get_parcent_forAccelBrake!!!!!!!!!\x1b[m" - .balign 4 - -.text -glabel func_8006F9BC -/* AE6B5C 8006F9BC 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* AE6B60 8006F9C0 30A3FFFF */ andi $v1, $a1, 0xffff -/* AE6B64 8006F9C4 30C2FFFF */ andi $v0, $a2, 0xffff -/* AE6B68 8006F9C8 AFA7004C */ sw $a3, 0x4c($sp) -/* AE6B6C 8006F9CC 0062082A */ slt $at, $v1, $v0 -/* AE6B70 8006F9D0 30E7FFFF */ andi $a3, $a3, 0xffff -/* AE6B74 8006F9D4 AFBF001C */ sw $ra, 0x1c($sp) -/* AE6B78 8006F9D8 F7B40010 */ sdc1 $f20, 0x10($sp) -/* AE6B7C 8006F9DC AFA40040 */ sw $a0, 0x40($sp) -/* AE6B80 8006F9E0 AFA50044 */ sw $a1, 0x44($sp) -/* AE6B84 8006F9E4 14200004 */ bnez $at, .L8006F9F8 -/* AE6B88 8006F9E8 AFA60048 */ sw $a2, 0x48($sp) -/* AE6B8C 8006F9EC 44800000 */ mtc1 $zero, $f0 -/* AE6B90 8006F9F0 10000064 */ b .L8006FB84 -/* AE6B94 8006F9F4 8FBF001C */ lw $ra, 0x1c($sp) -.L8006F9F8: -/* AE6B98 8006F9F8 97A40042 */ lhu $a0, 0x42($sp) -/* AE6B9C 8006F9FC 0044082A */ slt $at, $v0, $a0 -/* AE6BA0 8006FA00 14200004 */ bnez $at, .L8006FA14 -/* AE6BA4 8006FA04 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AE6BA8 8006FA08 44810000 */ mtc1 $at, $f0 -/* AE6BAC 8006FA0C 1000005D */ b .L8006FB84 -/* AE6BB0 8006FA10 8FBF001C */ lw $ra, 0x1c($sp) -.L8006FA14: -/* AE6BB4 8006FA14 44832000 */ mtc1 $v1, $f4 -/* AE6BB8 8006FA18 44843000 */ mtc1 $a0, $f6 -/* AE6BBC 8006FA1C 3C048014 */ lui $a0, %hi(D_8013C280) -/* AE6BC0 8006FA20 46802020 */ cvt.s.w $f0, $f4 -/* AE6BC4 8006FA24 468030A0 */ cvt.s.w $f2, $f6 -/* AE6BC8 8006FA28 4600103E */ c.le.s $f2, $f0 -/* AE6BCC 8006FA2C 00000000 */ nop -/* AE6BD0 8006FA30 4501000C */ bc1t .L8006FA64 -/* AE6BD4 8006FA34 00000000 */ nop -/* AE6BD8 8006FA38 97AE0052 */ lhu $t6, 0x52($sp) -/* AE6BDC 8006FA3C 44874000 */ mtc1 $a3, $f8 -/* AE6BE0 8006FA40 46001481 */ sub.s $f18, $f2, $f0 -/* AE6BE4 8006FA44 448E5000 */ mtc1 $t6, $f10 -/* AE6BE8 8006FA48 468043A0 */ cvt.s.w $f14, $f8 -/* AE6BEC 8006FA4C 46805520 */ cvt.s.w $f20, $f10 -/* AE6BF0 8006FA50 46147100 */ add.s $f4, $f14, $f20 -/* AE6BF4 8006FA54 4604903C */ c.lt.s $f18, $f4 -/* AE6BF8 8006FA58 00000000 */ nop -/* AE6BFC 8006FA5C 4502000A */ bc1fl .L8006FA88 -/* AE6C00 8006FA60 46129200 */ add.s $f8, $f18, $f18 -.L8006FA64: -/* AE6C04 8006FA64 0C00084C */ jal osSyncPrintf -/* AE6C08 8006FA68 2484C280 */ addiu $a0, %lo(D_8013C280) -/* AE6C0C 8006FA6C 3C048014 */ lui $a0, %hi(D_8013C2C0) -/* AE6C10 8006FA70 0C00084C */ jal osSyncPrintf -/* AE6C14 8006FA74 2484C2C0 */ addiu $a0, %lo(D_8013C2C0) # addiu $a0, $a0, -0x3d40 -/* AE6C18 8006FA78 44800000 */ mtc1 $zero, $f0 -/* AE6C1C 8006FA7C 10000041 */ b .L8006FB84 -/* AE6C20 8006FA80 8FBF001C */ lw $ra, 0x1c($sp) -/* AE6C24 8006FA84 46129200 */ add.s $f8, $f18, $f18 -.L8006FA88: -/* AE6C28 8006FA88 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AE6C2C 8006FA8C 44813000 */ mtc1 $at, $f6 -/* AE6C30 8006FA90 460E4281 */ sub.s $f10, $f8, $f14 -/* AE6C34 8006FA94 44804000 */ mtc1 $zero, $f8 -/* AE6C38 8006FA98 46145101 */ sub.s $f4, $f10, $f20 -/* AE6C3C 8006FA9C 46087032 */ c.eq.s $f14, $f8 -/* AE6C40 8006FAA0 46043403 */ div.s $f16, $f6, $f4 -/* AE6C44 8006FAA4 45010011 */ bc1t .L8006FAEC -/* AE6C48 8006FAA8 E7B00024 */ swc1 $f16, 0x24($sp) -/* AE6C4C 8006FAAC 44825000 */ mtc1 $v0, $f10 -/* AE6C50 8006FAB0 00000000 */ nop -/* AE6C54 8006FAB4 468051A0 */ cvt.s.w $f6, $f10 -/* AE6C58 8006FAB8 46003301 */ sub.s $f12, $f6, $f0 -/* AE6C5C 8006FABC 460E603E */ c.le.s $f12, $f14 -/* AE6C60 8006FAC0 00000000 */ nop -/* AE6C64 8006FAC4 45000006 */ bc1f .L8006FAE0 -/* AE6C68 8006FAC8 00000000 */ nop -/* AE6C6C 8006FACC 460C8102 */ mul.s $f4, $f16, $f12 -/* AE6C70 8006FAD0 00000000 */ nop -/* AE6C74 8006FAD4 460C2202 */ mul.s $f8, $f4, $f12 -/* AE6C78 8006FAD8 10000029 */ b .L8006FB80 -/* AE6C7C 8006FADC 460E4003 */ div.s $f0, $f8, $f14 -.L8006FAE0: -/* AE6C80 8006FAE0 460E8082 */ mul.s $f2, $f16, $f14 -/* AE6C84 8006FAE4 10000006 */ b .L8006FB00 -/* AE6C88 8006FAE8 46149101 */ sub.s $f4, $f18, $f20 -.L8006FAEC: -/* AE6C8C 8006FAEC 44825000 */ mtc1 $v0, $f10 -/* AE6C90 8006FAF0 44801000 */ mtc1 $zero, $f2 -/* AE6C94 8006FAF4 468051A0 */ cvt.s.w $f6, $f10 -/* AE6C98 8006FAF8 46003301 */ sub.s $f12, $f6, $f0 -/* AE6C9C 8006FAFC 46149101 */ sub.s $f4, $f18, $f20 -.L8006FB00: -/* AE6CA0 8006FB00 4604603E */ c.le.s $f12, $f4 -/* AE6CA4 8006FB04 00000000 */ nop -/* AE6CA8 8006FB08 45020008 */ bc1fl .L8006FB2C -/* AE6CAC 8006FB0C 460E9201 */ sub.s $f8, $f18, $f14 -/* AE6CB0 8006FB10 46108200 */ add.s $f8, $f16, $f16 -/* AE6CB4 8006FB14 460E6281 */ sub.s $f10, $f12, $f14 -/* AE6CB8 8006FB18 460A4182 */ mul.s $f6, $f8, $f10 -/* AE6CBC 8006FB1C 46061080 */ add.s $f2, $f2, $f6 -/* AE6CC0 8006FB20 10000017 */ b .L8006FB80 -/* AE6CC4 8006FB24 46001006 */ mov.s $f0, $f2 -/* AE6CC8 8006FB28 460E9201 */ sub.s $f8, $f18, $f14 -.L8006FB2C: -/* AE6CCC 8006FB2C 46108100 */ add.s $f4, $f16, $f16 -/* AE6CD0 8006FB30 46144281 */ sub.s $f10, $f8, $f20 -/* AE6CD4 8006FB34 44804000 */ mtc1 $zero, $f8 -/* AE6CD8 8006FB38 460A2182 */ mul.s $f6, $f4, $f10 -/* AE6CDC 8006FB3C 4608A032 */ c.eq.s $f20, $f8 -/* AE6CE0 8006FB40 00000000 */ nop -/* AE6CE4 8006FB44 4501000D */ bc1t .L8006FB7C -/* AE6CE8 8006FB48 46061080 */ add.s $f2, $f2, $f6 -/* AE6CEC 8006FB4C 46148102 */ mul.s $f4, $f16, $f20 -/* AE6CF0 8006FB50 4612603C */ c.lt.s $f12, $f18 -/* AE6CF4 8006FB54 00000000 */ nop -/* AE6CF8 8006FB58 45000008 */ bc1f .L8006FB7C -/* AE6CFC 8006FB5C 46041080 */ add.s $f2, $f2, $f4 -/* AE6D00 8006FB60 460C9001 */ sub.s $f0, $f18, $f12 -/* AE6D04 8006FB64 C7AA0024 */ lwc1 $f10, 0x24($sp) -/* AE6D08 8006FB68 46005182 */ mul.s $f6, $f10, $f0 -/* AE6D0C 8006FB6C 00000000 */ nop -/* AE6D10 8006FB70 46003202 */ mul.s $f8, $f6, $f0 -/* AE6D14 8006FB74 46144103 */ div.s $f4, $f8, $f20 -/* AE6D18 8006FB78 46041081 */ sub.s $f2, $f2, $f4 -.L8006FB7C: -/* AE6D1C 8006FB7C 46001006 */ mov.s $f0, $f2 -.L8006FB80: -/* AE6D20 8006FB80 8FBF001C */ lw $ra, 0x1c($sp) -.L8006FB84: -/* AE6D24 8006FB84 D7B40010 */ ldc1 $f20, 0x10($sp) -/* AE6D28 8006FB88 27BD0040 */ addiu $sp, $sp, 0x40 -/* AE6D2C 8006FB8C 03E00008 */ jr $ra -/* AE6D30 8006FB90 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_8006FB94.s b/asm/non_matchings/code/z_kankyo/func_8006FB94.s deleted file mode 100644 index 7387ad722a..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_8006FB94.s +++ /dev/null @@ -1,68 +0,0 @@ -glabel func_8006FB94 -/* AE6D34 8006FB94 AFA50004 */ sw $a1, 4($sp) -/* AE6D38 8006FB98 908200DD */ lbu $v0, 0xdd($a0) -/* AE6D3C 8006FB9C 10400038 */ beqz $v0, .L8006FC80 -/* AE6D40 8006FBA0 00000000 */ nop -/* AE6D44 8006FBA4 908300DE */ lbu $v1, 0xde($a0) -/* AE6D48 8006FBA8 24010001 */ li $at, 1 -/* AE6D4C 8006FBAC 10600006 */ beqz $v1, .L8006FBC8 -/* AE6D50 8006FBB0 00000000 */ nop -/* AE6D54 8006FBB4 24010001 */ li $at, 1 -/* AE6D58 8006FBB8 10610019 */ beq $v1, $at, .L8006FC20 -/* AE6D5C 8006FBBC 3C088012 */ lui $t0, %hi(D_8011FB3C) -/* AE6D60 8006FBC0 03E00008 */ jr $ra -/* AE6D64 8006FBC4 00000000 */ nop - -.L8006FBC8: -/* AE6D68 8006FBC8 1441002D */ bne $v0, $at, .L8006FC80 -/* AE6D6C 8006FBCC 3C0E8012 */ lui $t6, %hi(D_8011FB3C) # $t6, 0x8012 -/* AE6D70 8006FBD0 91CEFB3C */ lbu $t6, %lo(D_8011FB3C)($t6) -/* AE6D74 8006FBD4 24020001 */ li $v0, 1 -/* AE6D78 8006FBD8 240F0064 */ li $t7, 100 -/* AE6D7C 8006FBDC 15C00028 */ bnez $t6, .L8006FC80 -/* AE6D80 8006FBE0 24050002 */ li $a1, 2 -/* AE6D84 8006FBE4 A0820019 */ sb $v0, 0x19($a0) -/* AE6D88 8006FBE8 A0800017 */ sb $zero, 0x17($a0) -/* AE6D8C 8006FBEC A0820018 */ sb $v0, 0x18($a0) -/* AE6D90 8006FBF0 A48F001A */ sh $t7, 0x1a($a0) -/* AE6D94 8006FBF4 A0820021 */ sb $v0, 0x21($a0) -/* AE6D98 8006FBF8 A080001F */ sb $zero, 0x1f($a0) -/* AE6D9C 8006FBFC A0850020 */ sb $a1, 0x20($a0) -/* AE6DA0 8006FC00 3C018012 */ lui $at, %hi(D_8011FB34) # $at, 0x8012 -/* AE6DA4 8006FC04 A025FB34 */ sb $a1, %lo(D_8011FB34)($at) -/* AE6DA8 8006FC08 909800DE */ lbu $t8, 0xde($a0) -/* AE6DAC 8006FC0C A48F0022 */ sh $t7, 0x22($a0) -/* AE6DB0 8006FC10 A48F0024 */ sh $t7, 0x24($a0) -/* AE6DB4 8006FC14 27190001 */ addiu $t9, $t8, 1 -/* AE6DB8 8006FC18 03E00008 */ jr $ra -/* AE6DBC 8006FC1C A09900DE */ sb $t9, 0xde($a0) - -.L8006FC20: -/* AE6DC0 8006FC20 9108FB3C */ lbu $t0, %lo(D_8011FB3C)($t0) -/* AE6DC4 8006FC24 24010002 */ li $at, 2 -/* AE6DC8 8006FC28 15000015 */ bnez $t0, .L8006FC80 -/* AE6DCC 8006FC2C 00000000 */ nop -/* AE6DD0 8006FC30 14410013 */ bne $v0, $at, .L8006FC80 -/* AE6DD4 8006FC34 24090064 */ li $t1, 100 -/* AE6DD8 8006FC38 3C018012 */ lui $at, %hi(D_8011FB30) # $at, 0x8012 -/* AE6DDC 8006FC3C A020FB30 */ sb $zero, %lo(D_8011FB30)($at) -/* AE6DE0 8006FC40 24020001 */ li $v0, 1 -/* AE6DE4 8006FC44 24050002 */ li $a1, 2 -/* AE6DE8 8006FC48 A0820019 */ sb $v0, 0x19($a0) -/* AE6DEC 8006FC4C A0820017 */ sb $v0, 0x17($a0) -/* AE6DF0 8006FC50 A0800018 */ sb $zero, 0x18($a0) -/* AE6DF4 8006FC54 A489001A */ sh $t1, 0x1a($a0) -/* AE6DF8 8006FC58 A0820021 */ sb $v0, 0x21($a0) -/* AE6DFC 8006FC5C A085001F */ sb $a1, 0x1f($a0) -/* AE6E00 8006FC60 A0800020 */ sb $zero, 0x20($a0) -/* AE6E04 8006FC64 3C018012 */ lui $at, %hi(D_8011FB34) # $at, 0x8012 -/* AE6E08 8006FC68 A020FB34 */ sb $zero, %lo(D_8011FB34)($at) -/* AE6E0C 8006FC6C A4890022 */ sh $t1, 0x22($a0) -/* AE6E10 8006FC70 A4890024 */ sh $t1, 0x24($a0) -/* AE6E14 8006FC74 A08000EE */ sb $zero, 0xee($a0) -/* AE6E18 8006FC78 A08000DD */ sb $zero, 0xdd($a0) -/* AE6E1C 8006FC7C A08000DE */ sb $zero, 0xde($a0) -.L8006FC80: -/* AE6E20 8006FC80 03E00008 */ jr $ra -/* AE6E24 8006FC84 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_80070600.s b/asm/non_matchings/code/z_kankyo/func_80070600.s deleted file mode 100644 index 5a28337980..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80070600.s +++ /dev/null @@ -1,53 +0,0 @@ -.rdata -glabel D_8013C390 - .asciz "\x1b[43;30m\n水ポリゴンデータに水中カラーが設定されておりません!\x1b[m" - # EUC-JP: 水ポリゴンデータに水中カラーが設定されておりません | Underwater color is not set in the water poly data - .balign 4 - -.text -glabel func_80070600 -/* AE77A0 80070600 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AE77A4 80070604 2401001F */ li $at, 31 -/* AE77A8 80070608 AFBF0014 */ sw $ra, 0x14($sp) -/* AE77AC 8007060C 14A10008 */ bne $a1, $at, .L80070630 -/* AE77B0 80070610 00803025 */ move $a2, $a0 -/* AE77B4 80070614 3C048014 */ lui $a0, %hi(D_8013C390) # $a0, 0x8014 -/* AE77B8 80070618 2484C390 */ addiu $a0, %lo(D_8013C390) # addiu $a0, $a0, -0x3c70 -/* AE77BC 8007061C AFA0001C */ sw $zero, 0x1c($sp) -/* AE77C0 80070620 0C00084C */ jal osSyncPrintf -/* AE77C4 80070624 AFA60018 */ sw $a2, 0x18($sp) -/* AE77C8 80070628 8FA5001C */ lw $a1, 0x1c($sp) -/* AE77CC 8007062C 8FA60018 */ lw $a2, 0x18($sp) -.L80070630: -/* AE77D0 80070630 3C010001 */ lui $at, 1 -/* AE77D4 80070634 00C11021 */ addu $v0, $a2, $at -/* AE77D8 80070638 904E0A42 */ lbu $t6, 0xa42($v0) -/* AE77DC 8007063C 3C010001 */ lui $at, 1 -/* AE77E0 80070640 00260821 */ addu $at, $at, $a2 -/* AE77E4 80070644 55C0000F */ bnezl $t6, .L80070684 -/* AE77E8 80070648 A0200AE0 */ sb $zero, 0xae0($at) -/* AE77EC 8007064C 904F0A44 */ lbu $t7, 0xa44($v0) -/* AE77F0 80070650 3C018012 */ lui $at, %hi(D_8011FB34) # $at, 0x8012 -/* AE77F4 80070654 A02FFB34 */ sb $t7, %lo(D_8011FB34)($at) -/* AE77F8 80070658 90580A43 */ lbu $t8, 0xa43($v0) -/* AE77FC 8007065C 3C010001 */ lui $at, 1 -/* AE7800 80070660 00260821 */ addu $at, $at, $a2 -/* AE7804 80070664 50B8000B */ beql $a1, $t8, .L80070694 -/* AE7808 80070668 8FBF0014 */ lw $ra, 0x14($sp) -/* AE780C 8007066C A0250A43 */ sb $a1, 0xa43($at) -/* AE7810 80070670 3C010001 */ lui $at, 1 -/* AE7814 80070674 00260821 */ addu $at, $at, $a2 -/* AE7818 80070678 10000005 */ b .L80070690 -/* AE781C 8007067C A0250A44 */ sb $a1, 0xa44($at) -/* AE7820 80070680 A0200AE0 */ sb $zero, 0xae0($at) -.L80070684: -/* AE7824 80070684 3C010001 */ lui $at, 1 -/* AE7828 80070688 00260821 */ addu $at, $at, $a2 -/* AE782C 8007068C A0250AE3 */ sb $a1, 0xae3($at) -.L80070690: -/* AE7830 80070690 8FBF0014 */ lw $ra, 0x14($sp) -.L80070694: -/* AE7834 80070694 27BD0018 */ addiu $sp, $sp, 0x18 -/* AE7838 80070698 03E00008 */ jr $ra -/* AE783C 8007069C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_800706A0.s b/asm/non_matchings/code/z_kankyo/func_800706A0.s deleted file mode 100644 index b41533d05d..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_800706A0.s +++ /dev/null @@ -1,34 +0,0 @@ -glabel func_800706A0 -/* AE7840 800706A0 3C0E0001 */ lui $t6, 1 -/* AE7844 800706A4 01C47021 */ addu $t6, $t6, $a0 -/* AE7848 800706A8 91CE0A42 */ lbu $t6, 0xa42($t6) -/* AE784C 800706AC 3C028012 */ lui $v0, %hi(D_8011FB34) # $v0, 0x8012 -/* AE7850 800706B0 2442FB34 */ addiu $v0, %lo(D_8011FB34) # addiu $v0, $v0, -0x4cc -/* AE7854 800706B4 55C0000B */ bnezl $t6, .L800706E4 -/* AE7858 800706B8 3C010001 */ lui $at, 1 -/* AE785C 800706BC 904F0000 */ lbu $t7, ($v0) -/* AE7860 800706C0 3C010001 */ lui $at, 1 -/* AE7864 800706C4 00240821 */ addu $at, $at, $a0 -/* AE7868 800706C8 A02F0A43 */ sb $t7, 0xa43($at) -/* AE786C 800706CC 90580000 */ lbu $t8, ($v0) -/* AE7870 800706D0 3C010001 */ lui $at, 1 -/* AE7874 800706D4 00240821 */ addu $at, $at, $a0 -/* AE7878 800706D8 03E00008 */ jr $ra -/* AE787C 800706DC A0380A44 */ sb $t8, 0xa44($at) - -/* AE7880 800706E0 3C010001 */ lui $at, 1 -.L800706E4: -/* AE7884 800706E4 00240821 */ addu $at, $at, $a0 -/* AE7888 800706E8 A0200AE0 */ sb $zero, 0xae0($at) -/* AE788C 800706EC 3C010001 */ lui $at, 1 -/* AE7890 800706F0 00240821 */ addu $at, $at, $a0 -/* AE7894 800706F4 241900FF */ li $t9, 255 -/* AE7898 800706F8 A0390AE3 */ sb $t9, 0xae3($at) -/* AE789C 800706FC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AE78A0 80070700 44812000 */ mtc1 $at, $f4 -/* AE78A4 80070704 3C010001 */ lui $at, 1 -/* AE78A8 80070708 00240821 */ addu $at, $at, $a0 -/* AE78AC 8007070C E4240AFC */ swc1 $f4, 0xafc($at) -/* AE78B0 80070710 03E00008 */ jr $ra -/* AE78B4 80070714 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_80070718.s b/asm/non_matchings/code/z_kankyo/func_80070718.s deleted file mode 100644 index b40164a2ea..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80070718.s +++ /dev/null @@ -1,433 +0,0 @@ -.rdata -glabel D_8013C3D0 - .asciz "T%03d " - .balign 4 - -glabel D_8013C3D8 - .asciz "E%03d" - .balign 4 - -glabel D_8013C3E0 - .asciz "%s" - .balign 4 - -glabel D_8013C3E4 - .asciz "ZELDATIME " - .balign 4 - -glabel D_8013C3F0 - .asciz "%02d" - .balign 4 - -glabel D_8013C3F8 - .asciz "%s" - .balign 4 - -glabel D_8013C3FC - .asciz ":" - .balign 4 - -glabel D_8013C400 - .asciz "%s" - .balign 4 - -glabel D_8013C404 - .asciz " " - .balign 4 - -glabel D_8013C408 - .asciz "%02d" - .balign 4 - -glabel D_8013C410 - .asciz "%s" - .balign 4 - -glabel D_8013C414 - .asciz "VRBOXTIME " - .balign 4 - -glabel D_8013C420 - .asciz "%02d" - .balign 4 - -glabel D_8013C428 - .asciz "%s" - .balign 4 - -glabel D_8013C42C - .asciz ":" - .balign 4 - -glabel D_8013C430 - .asciz "%s" - .balign 4 - -glabel D_8013C434 - .asciz " " - .balign 4 - -glabel D_8013C438 - .asciz "%02d" - .balign 4 - -glabel D_8013C440 - .asciz "%s" - .balign 4 - -glabel D_8013C444 - .asciz "YORU" - .balign 4 - -glabel D_8013C44C - .asciz "%s" - .balign 4 - -glabel D_8013C450 - .asciz "HIRU" - .balign 4 - -.text -glabel func_80070718 -/* AE78B8 80070718 27BDFF98 */ addiu $sp, $sp, -0x68 -/* AE78BC 8007071C AFB00020 */ sw $s0, 0x20($sp) -/* AE78C0 80070720 27B00038 */ addiu $s0, $sp, 0x38 -/* AE78C4 80070724 AFBF0024 */ sw $ra, 0x24($sp) -/* AE78C8 80070728 AFA40068 */ sw $a0, 0x68($sp) -/* AE78CC 8007072C AFA5006C */ sw $a1, 0x6c($sp) -/* AE78D0 80070730 0C03EEE3 */ jal GfxPrint_Init -/* AE78D4 80070734 02002025 */ move $a0, $s0 -/* AE78D8 80070738 8FAE006C */ lw $t6, 0x6c($sp) -/* AE78DC 8007073C 02002025 */ move $a0, $s0 -/* AE78E0 80070740 0C03EF07 */ jal GfxPrint_Open -/* AE78E4 80070744 8DC50000 */ lw $a1, ($t6) -/* AE78E8 80070748 02002025 */ move $a0, $s0 -/* AE78EC 8007074C 24050016 */ li $a1, 22 -/* AE78F0 80070750 0C03ED07 */ jal GfxPrint_SetPos -/* AE78F4 80070754 24060007 */ li $a2, 7 -/* AE78F8 80070758 240F0040 */ li $t7, 64 -/* AE78FC 8007075C AFAF0010 */ sw $t7, 0x10($sp) -/* AE7900 80070760 02002025 */ move $a0, $s0 -/* AE7904 80070764 2405009B */ li $a1, 155 -/* AE7908 80070768 2406009B */ li $a2, 155 -/* AE790C 8007076C 0C03ECEB */ jal GfxPrint_SetColor -/* AE7910 80070770 240700FF */ li $a3, 255 -/* AE7914 80070774 3C068016 */ lui $a2, %hi(gSaveContext+0x14) # $a2, 0x8016 -/* AE7918 80070778 3C058014 */ lui $a1, %hi(D_8013C3D0) # $a1, 0x8014 -/* AE791C 8007077C 24A5C3D0 */ addiu $a1, %lo(D_8013C3D0) # addiu $a1, $a1, -0x3c30 -/* AE7920 80070780 8CC6E674 */ lw $a2, %lo(gSaveContext+0x14)($a2) -/* AE7924 80070784 0C03EF2D */ jal GfxPrint_Printf -/* AE7928 80070788 02002025 */ move $a0, $s0 -/* AE792C 8007078C 3C068016 */ lui $a2, %hi(gSaveContext+0x18) # $a2, 0x8016 -/* AE7930 80070790 3C058014 */ lui $a1, %hi(D_8013C3D8) # $a1, 0x8014 -/* AE7934 80070794 24A5C3D8 */ addiu $a1, %lo(D_8013C3D8) # addiu $a1, $a1, -0x3c28 -/* AE7938 80070798 8CC6E678 */ lw $a2, %lo(gSaveContext+0x18)($a2) -/* AE793C 8007079C 0C03EF2D */ jal GfxPrint_Printf -/* AE7940 800707A0 02002025 */ move $a0, $s0 -/* AE7944 800707A4 24180040 */ li $t8, 64 -/* AE7948 800707A8 AFB80010 */ sw $t8, 0x10($sp) -/* AE794C 800707AC 02002025 */ move $a0, $s0 -/* AE7950 800707B0 240500FF */ li $a1, 255 -/* AE7954 800707B4 240600FF */ li $a2, 255 -/* AE7958 800707B8 0C03ECEB */ jal GfxPrint_SetColor -/* AE795C 800707BC 24070037 */ li $a3, 55 -/* AE7960 800707C0 02002025 */ move $a0, $s0 -/* AE7964 800707C4 24050016 */ li $a1, 22 -/* AE7968 800707C8 0C03ED07 */ jal GfxPrint_SetPos -/* AE796C 800707CC 24060008 */ li $a2, 8 -/* AE7970 800707D0 3C058014 */ lui $a1, %hi(D_8013C3E0) # $a1, 0x8014 -/* AE7974 800707D4 3C068014 */ lui $a2, %hi(D_8013C3E4) # $a2, 0x8014 -/* AE7978 800707D8 24C6C3E4 */ addiu $a2, %lo(D_8013C3E4) # addiu $a2, $a2, -0x3c1c -/* AE797C 800707DC 24A5C3E0 */ addiu $a1, %lo(D_8013C3E0) # addiu $a1, $a1, -0x3c20 -/* AE7980 800707E0 0C03EF2D */ jal GfxPrint_Printf -/* AE7984 800707E4 02002025 */ move $a0, $s0 -/* AE7988 800707E8 24190040 */ li $t9, 64 -/* AE798C 800707EC AFB90010 */ sw $t9, 0x10($sp) -/* AE7990 800707F0 02002025 */ move $a0, $s0 -/* AE7994 800707F4 240500FF */ li $a1, 255 -/* AE7998 800707F8 240600FF */ li $a2, 255 -/* AE799C 800707FC 0C03ECEB */ jal GfxPrint_SetColor -/* AE79A0 80070800 240700FF */ li $a3, 255 -/* AE79A4 80070804 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016 -/* AE79A8 80070808 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AE79AC 8007080C 3C058014 */ lui $a1, %hi(D_8013C3F0) -/* AE79B0 80070810 24A5C3F0 */ addiu $a1, %lo(D_8013C3F0) # addiu $a1, $a1, -0x3c10 -/* AE79B4 80070814 44822000 */ mtc1 $v0, $f4 -/* AE79B8 80070818 02002025 */ move $a0, $s0 -/* AE79BC 8007081C 04410005 */ bgez $v0, .L80070834 -/* AE79C0 80070820 468021A0 */ cvt.s.w $f6, $f4 -/* AE79C4 80070824 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AE79C8 80070828 44814000 */ mtc1 $at, $f8 -/* AE79CC 8007082C 00000000 */ nop -/* AE79D0 80070830 46083180 */ add.s $f6, $f6, $f8 -.L80070834: -/* AE79D4 80070834 3C013CB4 */ li $at, 0x3CB40000 # 0.000000 -/* AE79D8 80070838 44815000 */ mtc1 $at, $f10 -/* AE79DC 8007083C 3C014270 */ li $at, 0x42700000 # 0.000000 -/* AE79E0 80070840 44819000 */ mtc1 $at, $f18 -/* AE79E4 80070844 460A3402 */ mul.s $f16, $f6, $f10 -/* AE79E8 80070848 24060001 */ li $a2, 1 -/* AE79EC 8007084C 46128103 */ div.s $f4, $f16, $f18 -/* AE79F0 80070850 4448F800 */ cfc1 $t0, $31 -/* AE79F4 80070854 44C6F800 */ ctc1 $a2, $31 -/* AE79F8 80070858 00000000 */ nop -/* AE79FC 8007085C 46002224 */ cvt.w.s $f8, $f4 -/* AE7A00 80070860 4446F800 */ cfc1 $a2, $31 -/* AE7A04 80070864 00000000 */ nop -/* AE7A08 80070868 30C60078 */ andi $a2, $a2, 0x78 -/* AE7A0C 8007086C 10C00012 */ beqz $a2, .L800708B8 -/* AE7A10 80070870 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AE7A14 80070874 44814000 */ mtc1 $at, $f8 -/* AE7A18 80070878 24060001 */ li $a2, 1 -/* AE7A1C 8007087C 46082201 */ sub.s $f8, $f4, $f8 -/* AE7A20 80070880 44C6F800 */ ctc1 $a2, $31 -/* AE7A24 80070884 00000000 */ nop -/* AE7A28 80070888 46004224 */ cvt.w.s $f8, $f8 -/* AE7A2C 8007088C 4446F800 */ cfc1 $a2, $31 -/* AE7A30 80070890 00000000 */ nop -/* AE7A34 80070894 30C60078 */ andi $a2, $a2, 0x78 -/* AE7A38 80070898 14C00005 */ bnez $a2, .L800708B0 -/* AE7A3C 8007089C 00000000 */ nop -/* AE7A40 800708A0 44064000 */ mfc1 $a2, $f8 -/* AE7A44 800708A4 3C018000 */ lui $at, 0x8000 -/* AE7A48 800708A8 10000007 */ b .L800708C8 -/* AE7A4C 800708AC 00C13025 */ or $a2, $a2, $at -.L800708B0: -/* AE7A50 800708B0 10000005 */ b .L800708C8 -/* AE7A54 800708B4 2406FFFF */ li $a2, -1 -.L800708B8: -/* AE7A58 800708B8 44064000 */ mfc1 $a2, $f8 -/* AE7A5C 800708BC 00000000 */ nop -/* AE7A60 800708C0 04C0FFFB */ bltz $a2, .L800708B0 -/* AE7A64 800708C4 00000000 */ nop -.L800708C8: -/* AE7A68 800708C8 44C8F800 */ ctc1 $t0, $31 -/* AE7A6C 800708CC 0C03EF2D */ jal GfxPrint_Printf -/* AE7A70 800708D0 30C600FF */ andi $a2, $a2, 0xff -/* AE7A74 800708D4 3C098016 */ lui $t1, %hi(gSaveContext+0xc) # $t1, 0x8016 -/* AE7A78 800708D8 9529E66C */ lhu $t1, %lo(gSaveContext+0xc)($t1) -/* AE7A7C 800708DC 312A001F */ andi $t2, $t1, 0x1f -/* AE7A80 800708E0 29410010 */ slti $at, $t2, 0x10 -/* AE7A84 800708E4 10200007 */ beqz $at, .L80070904 -/* AE7A88 800708E8 3C0B8012 */ lui $t3, %hi(D_8011FB40) # $t3, 0x8012 -/* AE7A8C 800708EC 956BFB40 */ lhu $t3, %lo(D_8011FB40)($t3) -/* AE7A90 800708F0 3C058014 */ lui $a1, %hi(D_8013C400) # $a1, 0x8014 -/* AE7A94 800708F4 24A5C400 */ addiu $a1, %lo(D_8013C400) # addiu $a1, $a1, -0x3c00 -/* AE7A98 800708F8 29610006 */ slti $at, $t3, 6 -/* AE7A9C 800708FC 14200009 */ bnez $at, .L80070924 -/* AE7AA0 80070900 02002025 */ move $a0, $s0 -.L80070904: -/* AE7AA4 80070904 3C058014 */ lui $a1, %hi(D_8013C3F8) # $a1, 0x8014 -/* AE7AA8 80070908 3C068014 */ lui $a2, %hi(D_8013C3FC) # $a2, 0x8014 -/* AE7AAC 8007090C 24C6C3FC */ addiu $a2, %lo(D_8013C3FC) # addiu $a2, $a2, -0x3c04 -/* AE7AB0 80070910 24A5C3F8 */ addiu $a1, %lo(D_8013C3F8) # addiu $a1, $a1, -0x3c08 -/* AE7AB4 80070914 0C03EF2D */ jal GfxPrint_Printf -/* AE7AB8 80070918 02002025 */ move $a0, $s0 -/* AE7ABC 8007091C 10000004 */ b .L80070930 -/* AE7AC0 80070920 00000000 */ nop -.L80070924: -/* AE7AC4 80070924 3C068014 */ lui $a2, %hi(D_8013C404) # $a2, 0x8014 -/* AE7AC8 80070928 0C03EF2D */ jal GfxPrint_Printf -/* AE7ACC 8007092C 24C6C404 */ addiu $a2, %lo(D_8013C404) # addiu $a2, $a2, -0x3bfc -.L80070930: -/* AE7AD0 80070930 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016 -/* AE7AD4 80070934 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AE7AD8 80070938 3C058014 */ lui $a1, %hi(D_8013C408) -/* AE7ADC 8007093C 24A5C408 */ addiu $a1, %lo(D_8013C408) # addiu $a1, $a1, -0x3bf8 -/* AE7AE0 80070940 44823000 */ mtc1 $v0, $f6 -/* AE7AE4 80070944 02002025 */ move $a0, $s0 -/* AE7AE8 80070948 04410005 */ bgez $v0, .L80070960 -/* AE7AEC 8007094C 468032A0 */ cvt.s.w $f10, $f6 -/* AE7AF0 80070950 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AE7AF4 80070954 44818000 */ mtc1 $at, $f16 -/* AE7AF8 80070958 00000000 */ nop -/* AE7AFC 8007095C 46105280 */ add.s $f10, $f10, $f16 -.L80070960: -/* AE7B00 80070960 3C013CB4 */ li $at, 0x3CB40000 # 0.000000 -/* AE7B04 80070964 44819000 */ mtc1 $at, $f18 -/* AE7B08 80070968 2401003C */ li $at, 60 -/* AE7B0C 8007096C 46125102 */ mul.s $f4, $f10, $f18 -/* AE7B10 80070970 4600220D */ trunc.w.s $f8, $f4 -/* AE7B14 80070974 44064000 */ mfc1 $a2, $f8 -/* AE7B18 80070978 00000000 */ nop -/* AE7B1C 8007097C 00063400 */ sll $a2, $a2, 0x10 -/* AE7B20 80070980 00063403 */ sra $a2, $a2, 0x10 -/* AE7B24 80070984 00C1001A */ div $zero, $a2, $at -/* AE7B28 80070988 00003010 */ mfhi $a2 -/* AE7B2C 8007098C 0C03EF2D */ jal GfxPrint_Printf -/* AE7B30 80070990 00000000 */ nop -/* AE7B34 80070994 240D0040 */ li $t5, 64 -/* AE7B38 80070998 AFAD0010 */ sw $t5, 0x10($sp) -/* AE7B3C 8007099C 02002025 */ move $a0, $s0 -/* AE7B40 800709A0 240500FF */ li $a1, 255 -/* AE7B44 800709A4 240600FF */ li $a2, 255 -/* AE7B48 800709A8 0C03ECEB */ jal GfxPrint_SetColor -/* AE7B4C 800709AC 24070037 */ li $a3, 55 -/* AE7B50 800709B0 02002025 */ move $a0, $s0 -/* AE7B54 800709B4 24050016 */ li $a1, 22 -/* AE7B58 800709B8 0C03ED07 */ jal GfxPrint_SetPos -/* AE7B5C 800709BC 24060009 */ li $a2, 9 -/* AE7B60 800709C0 3C058014 */ lui $a1, %hi(D_8013C410) # $a1, 0x8014 -/* AE7B64 800709C4 3C068014 */ lui $a2, %hi(D_8013C414) # $a2, 0x8014 -/* AE7B68 800709C8 24C6C414 */ addiu $a2, %lo(D_8013C414) # addiu $a2, $a2, -0x3bec -/* AE7B6C 800709CC 24A5C410 */ addiu $a1, %lo(D_8013C410) # addiu $a1, $a1, -0x3bf0 -/* AE7B70 800709D0 0C03EF2D */ jal GfxPrint_Printf -/* AE7B74 800709D4 02002025 */ move $a0, $s0 -/* AE7B78 800709D8 240E0040 */ li $t6, 64 -/* AE7B7C 800709DC AFAE0010 */ sw $t6, 0x10($sp) -/* AE7B80 800709E0 02002025 */ move $a0, $s0 -/* AE7B84 800709E4 240500FF */ li $a1, 255 -/* AE7B88 800709E8 240600FF */ li $a2, 255 -/* AE7B8C 800709EC 0C03ECEB */ jal GfxPrint_SetColor -/* AE7B90 800709F0 240700FF */ li $a3, 255 -/* AE7B94 800709F4 3C028016 */ lui $v0, %hi(gSaveContext+0x141a) # $v0, 0x8016 -/* AE7B98 800709F8 9442FA7A */ lhu $v0, %lo(gSaveContext+0x141a)($v0) -/* AE7B9C 800709FC 3C058014 */ lui $a1, %hi(D_8013C420) -/* AE7BA0 80070A00 24A5C420 */ addiu $a1, %lo(D_8013C420) # addiu $a1, $a1, -0x3be0 -/* AE7BA4 80070A04 44823000 */ mtc1 $v0, $f6 -/* AE7BA8 80070A08 02002025 */ move $a0, $s0 -/* AE7BAC 80070A0C 04410005 */ bgez $v0, .L80070A24 -/* AE7BB0 80070A10 46803420 */ cvt.s.w $f16, $f6 -/* AE7BB4 80070A14 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AE7BB8 80070A18 44815000 */ mtc1 $at, $f10 -/* AE7BBC 80070A1C 00000000 */ nop -/* AE7BC0 80070A20 460A8400 */ add.s $f16, $f16, $f10 -.L80070A24: -/* AE7BC4 80070A24 3C013CB4 */ li $at, 0x3CB40000 # 0.000000 -/* AE7BC8 80070A28 44819000 */ mtc1 $at, $f18 -/* AE7BCC 80070A2C 3C014270 */ li $at, 0x42700000 # 0.000000 -/* AE7BD0 80070A30 44814000 */ mtc1 $at, $f8 -/* AE7BD4 80070A34 46128102 */ mul.s $f4, $f16, $f18 -/* AE7BD8 80070A38 24060001 */ li $a2, 1 -/* AE7BDC 80070A3C 46082183 */ div.s $f6, $f4, $f8 -/* AE7BE0 80070A40 444FF800 */ cfc1 $t7, $31 -/* AE7BE4 80070A44 44C6F800 */ ctc1 $a2, $31 -/* AE7BE8 80070A48 00000000 */ nop -/* AE7BEC 80070A4C 460032A4 */ cvt.w.s $f10, $f6 -/* AE7BF0 80070A50 4446F800 */ cfc1 $a2, $31 -/* AE7BF4 80070A54 00000000 */ nop -/* AE7BF8 80070A58 30C60078 */ andi $a2, $a2, 0x78 -/* AE7BFC 80070A5C 10C00012 */ beqz $a2, .L80070AA8 -/* AE7C00 80070A60 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AE7C04 80070A64 44815000 */ mtc1 $at, $f10 -/* AE7C08 80070A68 24060001 */ li $a2, 1 -/* AE7C0C 80070A6C 460A3281 */ sub.s $f10, $f6, $f10 -/* AE7C10 80070A70 44C6F800 */ ctc1 $a2, $31 -/* AE7C14 80070A74 00000000 */ nop -/* AE7C18 80070A78 460052A4 */ cvt.w.s $f10, $f10 -/* AE7C1C 80070A7C 4446F800 */ cfc1 $a2, $31 -/* AE7C20 80070A80 00000000 */ nop -/* AE7C24 80070A84 30C60078 */ andi $a2, $a2, 0x78 -/* AE7C28 80070A88 14C00005 */ bnez $a2, .L80070AA0 -/* AE7C2C 80070A8C 00000000 */ nop -/* AE7C30 80070A90 44065000 */ mfc1 $a2, $f10 -/* AE7C34 80070A94 3C018000 */ lui $at, 0x8000 -/* AE7C38 80070A98 10000007 */ b .L80070AB8 -/* AE7C3C 80070A9C 00C13025 */ or $a2, $a2, $at -.L80070AA0: -/* AE7C40 80070AA0 10000005 */ b .L80070AB8 -/* AE7C44 80070AA4 2406FFFF */ li $a2, -1 -.L80070AA8: -/* AE7C48 80070AA8 44065000 */ mfc1 $a2, $f10 -/* AE7C4C 80070AAC 00000000 */ nop -/* AE7C50 80070AB0 04C0FFFB */ bltz $a2, .L80070AA0 -/* AE7C54 80070AB4 00000000 */ nop -.L80070AB8: -/* AE7C58 80070AB8 44CFF800 */ ctc1 $t7, $31 -/* AE7C5C 80070ABC 0C03EF2D */ jal GfxPrint_Printf -/* AE7C60 80070AC0 30C600FF */ andi $a2, $a2, 0xff -/* AE7C64 80070AC4 3C188016 */ lui $t8, %hi(gSaveContext+0x141a) # $t8, 0x8016 -/* AE7C68 80070AC8 9718FA7A */ lhu $t8, %lo(gSaveContext+0x141a)($t8) -/* AE7C6C 80070ACC 3C088012 */ lui $t0, %hi(D_8011FB40) # $t0, 0x8012 -/* AE7C70 80070AD0 02002025 */ move $a0, $s0 -/* AE7C74 80070AD4 3319001F */ andi $t9, $t8, 0x1f -/* AE7C78 80070AD8 2B210010 */ slti $at, $t9, 0x10 -/* AE7C7C 80070ADC 10200007 */ beqz $at, .L80070AFC -/* AE7C80 80070AE0 3C058014 */ lui $a1, %hi(D_8013C428) # $a1, 0x8014 -/* AE7C84 80070AE4 9508FB40 */ lhu $t0, %lo(D_8011FB40)($t0) -/* AE7C88 80070AE8 3C068014 */ lui $a2, %hi(D_8013C434) # $a2, 0x8014 -/* AE7C8C 80070AEC 24C6C434 */ addiu $a2, %lo(D_8013C434) # addiu $a2, $a2, -0x3bcc -/* AE7C90 80070AF0 29010006 */ slti $at, $t0, 6 -/* AE7C94 80070AF4 14200007 */ bnez $at, .L80070B14 -/* AE7C98 80070AF8 00000000 */ nop -.L80070AFC: -/* AE7C9C 80070AFC 3C068014 */ lui $a2, %hi(D_8013C42C) # $a2, 0x8014 -/* AE7CA0 80070B00 24C6C42C */ addiu $a2, %lo(D_8013C42C) # addiu $a2, $a2, -0x3bd4 -/* AE7CA4 80070B04 0C03EF2D */ jal GfxPrint_Printf -/* AE7CA8 80070B08 24A5C428 */ addiu $a1, %lo(D_8013C428) # addiu $a1, $a1, -0x3bd8 -/* AE7CAC 80070B0C 10000005 */ b .L80070B24 -/* AE7CB0 80070B10 00000000 */ nop -.L80070B14: -/* AE7CB4 80070B14 3C058014 */ lui $a1, %hi(D_8013C430) # $a1, 0x8014 -/* AE7CB8 80070B18 24A5C430 */ addiu $a1, %lo(D_8013C430) # addiu $a1, $a1, -0x3bd0 -/* AE7CBC 80070B1C 0C03EF2D */ jal GfxPrint_Printf -/* AE7CC0 80070B20 02002025 */ move $a0, $s0 -.L80070B24: -/* AE7CC4 80070B24 3C028016 */ lui $v0, %hi(gSaveContext+0x141a) # $v0, 0x8016 -/* AE7CC8 80070B28 9442FA7A */ lhu $v0, %lo(gSaveContext+0x141a)($v0) -/* AE7CCC 80070B2C 3C058014 */ lui $a1, %hi(D_8013C438) -/* AE7CD0 80070B30 24A5C438 */ addiu $a1, %lo(D_8013C438) # addiu $a1, $a1, -0x3bc8 -/* AE7CD4 80070B34 44828000 */ mtc1 $v0, $f16 -/* AE7CD8 80070B38 02002025 */ move $a0, $s0 -/* AE7CDC 80070B3C 04410005 */ bgez $v0, .L80070B54 -/* AE7CE0 80070B40 468084A0 */ cvt.s.w $f18, $f16 -/* AE7CE4 80070B44 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AE7CE8 80070B48 44812000 */ mtc1 $at, $f4 -/* AE7CEC 80070B4C 00000000 */ nop -/* AE7CF0 80070B50 46049480 */ add.s $f18, $f18, $f4 -.L80070B54: -/* AE7CF4 80070B54 3C013CB4 */ li $at, 0x3CB40000 # 0.000000 -/* AE7CF8 80070B58 44814000 */ mtc1 $at, $f8 -/* AE7CFC 80070B5C 2401003C */ li $at, 60 -/* AE7D00 80070B60 46089182 */ mul.s $f6, $f18, $f8 -/* AE7D04 80070B64 4600328D */ trunc.w.s $f10, $f6 -/* AE7D08 80070B68 44065000 */ mfc1 $a2, $f10 -/* AE7D0C 80070B6C 00000000 */ nop -/* AE7D10 80070B70 00063400 */ sll $a2, $a2, 0x10 -/* AE7D14 80070B74 00063403 */ sra $a2, $a2, 0x10 -/* AE7D18 80070B78 00C1001A */ div $zero, $a2, $at -/* AE7D1C 80070B7C 00003010 */ mfhi $a2 -/* AE7D20 80070B80 0C03EF2D */ jal GfxPrint_Printf -/* AE7D24 80070B84 00000000 */ nop -/* AE7D28 80070B88 240A0040 */ li $t2, 64 -/* AE7D2C 80070B8C AFAA0010 */ sw $t2, 0x10($sp) -/* AE7D30 80070B90 02002025 */ move $a0, $s0 -/* AE7D34 80070B94 24050037 */ li $a1, 55 -/* AE7D38 80070B98 240600FF */ li $a2, 255 -/* AE7D3C 80070B9C 0C03ECEB */ jal GfxPrint_SetColor -/* AE7D40 80070BA0 240700FF */ li $a3, 255 -/* AE7D44 80070BA4 02002025 */ move $a0, $s0 -/* AE7D48 80070BA8 24050016 */ li $a1, 22 -/* AE7D4C 80070BAC 0C03ED07 */ jal GfxPrint_SetPos -/* AE7D50 80070BB0 24060006 */ li $a2, 6 -/* AE7D54 80070BB4 3C0B8016 */ lui $t3, %hi(gSaveContext+0x10) # $t3, 0x8016 -/* AE7D58 80070BB8 8D6BE670 */ lw $t3, %lo(gSaveContext+0x10)($t3) -/* AE7D5C 80070BBC 3C058014 */ lui $a1, %hi(D_8013C44C) # $a1, 0x8014 -/* AE7D60 80070BC0 24A5C44C */ addiu $a1, %lo(D_8013C44C) # addiu $a1, $a1, -0x3bb4 -/* AE7D64 80070BC4 11600009 */ beqz $t3, .L80070BEC -/* AE7D68 80070BC8 02002025 */ move $a0, $s0 -/* AE7D6C 80070BCC 3C058014 */ lui $a1, %hi(D_8013C440) # $a1, 0x8014 -/* AE7D70 80070BD0 3C068014 */ lui $a2, %hi(D_8013C444) # $a2, 0x8014 -/* AE7D74 80070BD4 24C6C444 */ addiu $a2, %lo(D_8013C444) # addiu $a2, $a2, -0x3bbc -/* AE7D78 80070BD8 24A5C440 */ addiu $a1, %lo(D_8013C440) # addiu $a1, $a1, -0x3bc0 -/* AE7D7C 80070BDC 0C03EF2D */ jal GfxPrint_Printf -/* AE7D80 80070BE0 02002025 */ move $a0, $s0 -/* AE7D84 80070BE4 10000004 */ b .L80070BF8 -/* AE7D88 80070BE8 00000000 */ nop -.L80070BEC: -/* AE7D8C 80070BEC 3C068014 */ lui $a2, %hi(D_8013C450) # $a2, 0x8014 -/* AE7D90 80070BF0 0C03EF2D */ jal GfxPrint_Printf -/* AE7D94 80070BF4 24C6C450 */ addiu $a2, %lo(D_8013C450) # addiu $a2, $a2, -0x3bb0 -.L80070BF8: -/* AE7D98 80070BF8 0C03EF19 */ jal GfxPrint_Close -/* AE7D9C 80070BFC 02002025 */ move $a0, $s0 -/* AE7DA0 80070C00 8FAC006C */ lw $t4, 0x6c($sp) -/* AE7DA4 80070C04 02002025 */ move $a0, $s0 -/* AE7DA8 80070C08 0C03EF05 */ jal GfxPrint_Destroy -/* AE7DAC 80070C0C AD820000 */ sw $v0, ($t4) -/* AE7DB0 80070C10 8FBF0024 */ lw $ra, 0x24($sp) -/* AE7DB4 80070C14 8FB00020 */ lw $s0, 0x20($sp) -/* AE7DB8 80070C18 27BD0068 */ addiu $sp, $sp, 0x68 -/* AE7DBC 80070C1C 03E00008 */ jr $ra -/* AE7DC0 80070C20 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_800730DC.s b/asm/non_matchings/code/z_kankyo/func_800730DC.s deleted file mode 100644 index 820b014715..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_800730DC.s +++ /dev/null @@ -1,610 +0,0 @@ -.rdata -glabel D_8013C55C - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C56C - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C57C - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C58C - .asciz "../z_kankyo.c" - .balign 4 - -.late_rodata -glabel D_8013C7AC - .float 0.8 - -glabel D_8013C7B0 - .float 0.8 - -glabel D_8013C7B4 - .float 0.8 - -.text -glabel func_800730DC -/* AEA27C 800730DC 27BDFF78 */ addiu $sp, $sp, -0x88 -/* AEA280 800730E0 AFBF0024 */ sw $ra, 0x24($sp) -/* AEA284 800730E4 AFB10020 */ sw $s1, 0x20($sp) -/* AEA288 800730E8 AFB0001C */ sw $s0, 0x1c($sp) -/* AEA28C 800730EC 8C850000 */ lw $a1, ($a0) -/* AEA290 800730F0 00808825 */ move $s1, $a0 -/* AEA294 800730F4 3C068014 */ lui $a2, %hi(D_8013C55C) # $a2, 0x8014 -/* AEA298 800730F8 24C6C55C */ addiu $a2, %lo(D_8013C55C) # addiu $a2, $a2, -0x3aa4 -/* AEA29C 800730FC 27A40060 */ addiu $a0, $sp, 0x60 -/* AEA2A0 80073100 240708DA */ li $a3, 2266 -/* AEA2A4 80073104 0C031AB1 */ jal Graph_OpenDisps -/* AEA2A8 80073108 00A08025 */ move $s0, $a1 -/* AEA2AC 8007310C 922E1D6C */ lbu $t6, 0x1d6c($s1) -/* AEA2B0 80073110 3C028016 */ lui $v0, %hi(gSaveContext+0xc) -/* AEA2B4 80073114 11C0004C */ beqz $t6, .L80073248 -/* AEA2B8 80073118 00000000 */ nop -/* AEA2BC 8007311C 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016 -/* AEA2C0 80073120 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AEA2C4 80073124 24018000 */ li $at, -32768 -/* AEA2C8 80073128 00412021 */ addu $a0, $v0, $at -/* AEA2CC 8007312C 00042400 */ sll $a0, $a0, 0x10 -/* AEA2D0 80073130 0C01DE1C */ jal Math_SinS -/* AEA2D4 80073134 00042403 */ sra $a0, $a0, 0x10 -/* AEA2D8 80073138 3C018014 */ lui $at, %hi(D_8013C7AC) -/* AEA2DC 8007313C C422C7AC */ lwc1 $f2, %lo(D_8013C7AC)($at) -/* AEA2E0 80073140 3C010001 */ lui $at, (0x00010A28 >> 16) # lui $at, 1 -/* AEA2E4 80073144 34210A28 */ ori $at, (0x00010A28 & 0xFFFF) # ori $at, $at, 0xa28 -/* AEA2E8 80073148 02212021 */ addu $a0, $s1, $at -/* AEA2EC 8007314C 3C0142F0 */ li $at, 0x42F00000 # 0.000000 -/* AEA2F0 80073150 44812000 */ mtc1 $at, $f4 -/* AEA2F4 80073154 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AEA2F8 80073158 44815000 */ mtc1 $at, $f10 -/* AEA2FC 8007315C 46040182 */ mul.s $f6, $f0, $f4 -/* AEA300 80073160 44071000 */ mfc1 $a3, $f2 -/* AEA304 80073164 3C063F80 */ lui $a2, 0x3f80 -/* AEA308 80073168 E7A20010 */ swc1 $f2, 0x10($sp) -/* AEA30C 8007316C 46003207 */ neg.s $f8, $f6 -/* AEA310 80073170 460A4102 */ mul.s $f4, $f8, $f10 -/* AEA314 80073174 44052000 */ mfc1 $a1, $f4 -/* AEA318 80073178 0C01E0C4 */ jal Math_SmoothStepToF -/* AEA31C 8007317C 00000000 */ nop -/* AEA320 80073180 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016 -/* AEA324 80073184 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AEA328 80073188 24018000 */ li $at, -32768 -/* AEA32C 8007318C 00412021 */ addu $a0, $v0, $at -/* AEA330 80073190 00042400 */ sll $a0, $a0, 0x10 -/* AEA334 80073194 0C01DE0D */ jal Math_CosS -/* AEA338 80073198 00042403 */ sra $a0, $a0, 0x10 -/* AEA33C 8007319C 3C018014 */ lui $at, %hi(D_8013C7B0) -/* AEA340 800731A0 C422C7B0 */ lwc1 $f2, %lo(D_8013C7B0)($at) -/* AEA344 800731A4 3C010001 */ lui $at, (0x00010A2C >> 16) # lui $at, 1 -/* AEA348 800731A8 34210A2C */ ori $at, (0x00010A2C & 0xFFFF) # ori $at, $at, 0xa2c -/* AEA34C 800731AC 02212021 */ addu $a0, $s1, $at -/* AEA350 800731B0 3C0142F0 */ li $at, 0x42F00000 # 0.000000 -/* AEA354 800731B4 44813000 */ mtc1 $at, $f6 -/* AEA358 800731B8 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AEA35C 800731BC 44815000 */ mtc1 $at, $f10 -/* AEA360 800731C0 46060202 */ mul.s $f8, $f0, $f6 -/* AEA364 800731C4 44071000 */ mfc1 $a3, $f2 -/* AEA368 800731C8 AFA40030 */ sw $a0, 0x30($sp) -/* AEA36C 800731CC 3C063F80 */ lui $a2, 0x3f80 -/* AEA370 800731D0 E7A20010 */ swc1 $f2, 0x10($sp) -/* AEA374 800731D4 460A4102 */ mul.s $f4, $f8, $f10 -/* AEA378 800731D8 44052000 */ mfc1 $a1, $f4 -/* AEA37C 800731DC 0C01E0C4 */ jal Math_SmoothStepToF -/* AEA380 800731E0 00000000 */ nop -/* AEA384 800731E4 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016 -/* AEA388 800731E8 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AEA38C 800731EC 24018000 */ li $at, -32768 -/* AEA390 800731F0 00412021 */ addu $a0, $v0, $at -/* AEA394 800731F4 00042400 */ sll $a0, $a0, 0x10 -/* AEA398 800731F8 0C01DE0D */ jal Math_CosS -/* AEA39C 800731FC 00042403 */ sra $a0, $a0, 0x10 -/* AEA3A0 80073200 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* AEA3A4 80073204 44813000 */ mtc1 $at, $f6 -/* AEA3A8 80073208 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AEA3AC 8007320C 44815000 */ mtc1 $at, $f10 -/* AEA3B0 80073210 46060202 */ mul.s $f8, $f0, $f6 -/* AEA3B4 80073214 3C018014 */ lui $at, %hi(D_8013C7B4) -/* AEA3B8 80073218 C426C7B4 */ lwc1 $f6, %lo(D_8013C7B4)($at) -/* AEA3BC 8007321C 3C073F4C */ lui $a3, (0x3F4CCCCD >> 16) # lui $a3, 0x3f4c -/* AEA3C0 80073220 34E7CCCD */ ori $a3, (0x3F4CCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AEA3C4 80073224 8FA40030 */ lw $a0, 0x30($sp) -/* AEA3C8 80073228 3C063F80 */ lui $a2, 0x3f80 -/* AEA3CC 8007322C 460A4102 */ mul.s $f4, $f8, $f10 -/* AEA3D0 80073230 E7A60010 */ swc1 $f6, 0x10($sp) -/* AEA3D4 80073234 44052000 */ mfc1 $a1, $f4 -/* AEA3D8 80073238 0C01E0C4 */ jal Math_SmoothStepToF -/* AEA3DC 8007323C 00000000 */ nop -/* AEA3E0 80073240 10000031 */ b .L80073308 -/* AEA3E4 80073244 00000000 */ nop -.L80073248: -/* AEA3E8 80073248 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AEA3EC 8007324C 24018000 */ li $at, -32768 -/* AEA3F0 80073250 00412021 */ addu $a0, $v0, $at -/* AEA3F4 80073254 00042400 */ sll $a0, $a0, 0x10 -/* AEA3F8 80073258 0C01DE1C */ jal Math_SinS -/* AEA3FC 8007325C 00042403 */ sra $a0, $a0, 0x10 -/* AEA400 80073260 3C0142F0 */ li $at, 0x42F00000 # 0.000000 -/* AEA404 80073264 44814000 */ mtc1 $at, $f8 -/* AEA408 80073268 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AEA40C 8007326C 44813000 */ mtc1 $at, $f6 -/* AEA410 80073270 46080282 */ mul.s $f10, $f0, $f8 -/* AEA414 80073274 3C010001 */ lui $at, 1 -/* AEA418 80073278 00310821 */ addu $at, $at, $s1 -/* AEA41C 8007327C 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016 -/* AEA420 80073280 46005107 */ neg.s $f4, $f10 -/* AEA424 80073284 46062202 */ mul.s $f8, $f4, $f6 -/* AEA428 80073288 E4280A28 */ swc1 $f8, 0xa28($at) -/* AEA42C 8007328C 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AEA430 80073290 24018000 */ li $at, -32768 -/* AEA434 80073294 00412021 */ addu $a0, $v0, $at -/* AEA438 80073298 00042400 */ sll $a0, $a0, 0x10 -/* AEA43C 8007329C 0C01DE0D */ jal Math_CosS -/* AEA440 800732A0 00042403 */ sra $a0, $a0, 0x10 -/* AEA444 800732A4 3C0142F0 */ li $at, 0x42F00000 # 0.000000 -/* AEA448 800732A8 44815000 */ mtc1 $at, $f10 -/* AEA44C 800732AC 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AEA450 800732B0 44813000 */ mtc1 $at, $f6 -/* AEA454 800732B4 460A0102 */ mul.s $f4, $f0, $f10 -/* AEA458 800732B8 3C010001 */ lui $at, 1 -/* AEA45C 800732BC 00310821 */ addu $at, $at, $s1 -/* AEA460 800732C0 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016 -/* AEA464 800732C4 46062202 */ mul.s $f8, $f4, $f6 -/* AEA468 800732C8 E4280A2C */ swc1 $f8, 0xa2c($at) -/* AEA46C 800732CC 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AEA470 800732D0 24018000 */ li $at, -32768 -/* AEA474 800732D4 00412021 */ addu $a0, $v0, $at -/* AEA478 800732D8 00042400 */ sll $a0, $a0, 0x10 -/* AEA47C 800732DC 0C01DE0D */ jal Math_CosS -/* AEA480 800732E0 00042403 */ sra $a0, $a0, 0x10 -/* AEA484 800732E4 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* AEA488 800732E8 44815000 */ mtc1 $at, $f10 -/* AEA48C 800732EC 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AEA490 800732F0 44813000 */ mtc1 $at, $f6 -/* AEA494 800732F4 460A0102 */ mul.s $f4, $f0, $f10 -/* AEA498 800732F8 3C010001 */ lui $at, 1 -/* AEA49C 800732FC 00310821 */ addu $at, $at, $s1 -/* AEA4A0 80073300 46062202 */ mul.s $f8, $f4, $f6 -/* AEA4A4 80073304 E4280A30 */ swc1 $f8, 0xa30($at) -.L80073308: -/* AEA4A8 80073308 3C028016 */ lui $v0, %hi(gSaveContext) # $v0, 0x8016 -/* AEA4AC 8007330C 2442E660 */ addiu $v0, %lo(gSaveContext) # addiu $v0, $v0, -0x19a0 -/* AEA4B0 80073310 8C4F0000 */ lw $t7, ($v0) -/* AEA4B4 80073314 240100CD */ li $at, 205 -/* AEA4B8 80073318 55E10006 */ bnel $t7, $at, .L80073334 -/* AEA4BC 8007331C C63200E8 */ lwc1 $f18, 0xe8($s1) -/* AEA4C0 80073320 8C581360 */ lw $t8, 0x1360($v0) -/* AEA4C4 80073324 24010005 */ li $at, 5 -/* AEA4C8 80073328 1301018C */ beq $t8, $at, .L8007395C -/* AEA4CC 8007332C 00000000 */ nop -/* AEA4D0 80073330 C63200E8 */ lwc1 $f18, 0xe8($s1) -.L80073334: -/* AEA4D4 80073334 C63000E0 */ lwc1 $f16, 0xe0($s1) -/* AEA4D8 80073338 C62A00E4 */ lwc1 $f10, 0xe4($s1) -/* AEA4DC 8007333C 3C010001 */ li $at, 0x00010000 # 0.000000 -/* AEA4E0 80073340 02214021 */ addu $t0, $s1, $at -/* AEA4E4 80073344 C5080A30 */ lwc1 $f8, 0xa30($t0) -/* AEA4E8 80073348 C5060A28 */ lwc1 $f6, 0xa28($t0) -/* AEA4EC 8007334C C5040A2C */ lwc1 $f4, 0xa2c($t0) -/* AEA4F0 80073350 46089200 */ add.s $f8, $f18, $f8 -/* AEA4F4 80073354 00003825 */ move $a3, $zero -/* AEA4F8 80073358 AFA80030 */ sw $t0, 0x30($sp) -/* AEA4FC 8007335C 46068300 */ add.s $f12, $f16, $f6 -/* AEA500 80073360 44064000 */ mfc1 $a2, $f8 -/* AEA504 80073364 0C034261 */ jal Matrix_Translate -/* AEA508 80073368 46045380 */ add.s $f14, $f10, $f4 -/* AEA50C 8007336C 8FA80030 */ lw $t0, 0x30($sp) -/* AEA510 80073370 3C01437F */ li $at, 0x437F0000 # 0.000000 -/* AEA514 80073374 44818000 */ mtc1 $at, $f16 -/* AEA518 80073378 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AEA51C 8007337C 44815000 */ mtc1 $at, $f10 -/* AEA520 80073380 C5080A2C */ lwc1 $f8, 0xa2c($t0) -/* AEA524 80073384 3C0142A0 */ li $at, 0x42A00000 # 0.000000 -/* AEA528 80073388 44809000 */ mtc1 $zero, $f18 -/* AEA52C 8007338C 460A4103 */ div.s $f4, $f8, $f10 -/* AEA530 80073390 44814000 */ mtc1 $at, $f8 -/* AEA534 80073394 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AEA538 80073398 44815000 */ mtc1 $at, $f10 -/* AEA53C 8007339C E7A4007C */ swc1 $f4, 0x7c($sp) -/* AEA540 800733A0 C7A6007C */ lwc1 $f6, 0x7c($sp) -/* AEA544 800733A4 46083083 */ div.s $f2, $f6, $f8 -/* AEA548 800733A8 46101302 */ mul.s $f12, $f2, $f16 -/* AEA54C 800733AC 4612603C */ c.lt.s $f12, $f18 -/* AEA550 800733B0 00000000 */ nop -/* AEA554 800733B4 45020003 */ bc1fl .L800733C4 -/* AEA558 800733B8 460C803C */ c.lt.s $f16, $f12 -/* AEA55C 800733BC 46009306 */ mov.s $f12, $f18 -/* AEA560 800733C0 460C803C */ c.lt.s $f16, $f12 -.L800733C4: -/* AEA564 800733C4 00000000 */ nop -/* AEA568 800733C8 45020003 */ bc1fl .L800733D8 -/* AEA56C 800733CC 4612103C */ c.lt.s $f2, $f18 -/* AEA570 800733D0 46008306 */ mov.s $f12, $f16 -/* AEA574 800733D4 4612103C */ c.lt.s $f2, $f18 -.L800733D8: -/* AEA578 800733D8 46001006 */ mov.s $f0, $f2 -/* AEA57C 800733DC 460C8301 */ sub.s $f12, $f16, $f12 -/* AEA580 800733E0 45020003 */ bc1fl .L800733F0 -/* AEA584 800733E4 4600503C */ c.lt.s $f10, $f0 -/* AEA588 800733E8 46009006 */ mov.s $f0, $f18 -/* AEA58C 800733EC 4600503C */ c.lt.s $f10, $f0 -.L800733F0: -/* AEA590 800733F0 00000000 */ nop -/* AEA594 800733F4 45000003 */ bc1f .L80073404 -/* AEA598 800733F8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AEA59C 800733FC 44810000 */ mtc1 $at, $f0 -/* AEA5A0 80073400 00000000 */ nop -.L80073404: -/* AEA5A4 80073404 3C014296 */ li $at, 0x42960000 # 0.000000 -/* AEA5A8 80073408 44812000 */ mtc1 $at, $f4 -/* AEA5AC 8007340C 240B0001 */ li $t3, 1 -/* AEA5B0 80073410 8E0302C0 */ lw $v1, 0x2c0($s0) -/* AEA5B4 80073414 46040182 */ mul.s $f6, $f0, $f4 -/* AEA5B8 80073418 3C09FA00 */ lui $t1, 0xfa00 -/* AEA5BC 8007341C 24790008 */ addiu $t9, $v1, 8 -/* AEA5C0 80073420 AE1902C0 */ sw $t9, 0x2c0($s0) -/* AEA5C4 80073424 3C05FF00 */ lui $a1, 0xff00 -/* AEA5C8 80073428 AC690000 */ sw $t1, ($v1) -/* AEA5CC 8007342C 444AF800 */ cfc1 $t2, $31 -/* AEA5D0 80073430 44CBF800 */ ctc1 $t3, $31 -/* AEA5D4 80073434 00000000 */ nop -/* AEA5D8 80073438 46003224 */ cvt.w.s $f8, $f6 -/* AEA5DC 8007343C 444BF800 */ cfc1 $t3, $31 -/* AEA5E0 80073440 00000000 */ nop -/* AEA5E4 80073444 316B0078 */ andi $t3, $t3, 0x78 -/* AEA5E8 80073448 11600012 */ beqz $t3, .L80073494 -/* AEA5EC 8007344C 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AEA5F0 80073450 44814000 */ mtc1 $at, $f8 -/* AEA5F4 80073454 240B0001 */ li $t3, 1 -/* AEA5F8 80073458 46083201 */ sub.s $f8, $f6, $f8 -/* AEA5FC 8007345C 44CBF800 */ ctc1 $t3, $31 -/* AEA600 80073460 00000000 */ nop -/* AEA604 80073464 46004224 */ cvt.w.s $f8, $f8 -/* AEA608 80073468 444BF800 */ cfc1 $t3, $31 -/* AEA60C 8007346C 00000000 */ nop -/* AEA610 80073470 316B0078 */ andi $t3, $t3, 0x78 -/* AEA614 80073474 15600005 */ bnez $t3, .L8007348C -/* AEA618 80073478 00000000 */ nop -/* AEA61C 8007347C 440B4000 */ mfc1 $t3, $f8 -/* AEA620 80073480 3C018000 */ lui $at, 0x8000 -/* AEA624 80073484 10000007 */ b .L800734A4 -/* AEA628 80073488 01615825 */ or $t3, $t3, $at -.L8007348C: -/* AEA62C 8007348C 10000005 */ b .L800734A4 -/* AEA630 80073490 240BFFFF */ li $t3, -1 -.L80073494: -/* AEA634 80073494 440B4000 */ mfc1 $t3, $f8 -/* AEA638 80073498 00000000 */ nop -/* AEA63C 8007349C 0560FFFB */ bltz $t3, .L8007348C -/* AEA640 800734A0 00000000 */ nop -.L800734A4: -/* AEA644 800734A4 3C01431B */ li $at, 0x431B0000 # 0.000000 -/* AEA648 800734A8 44CAF800 */ ctc1 $t2, $31 -/* AEA64C 800734AC 44815000 */ mtc1 $at, $f10 -/* AEA650 800734B0 24090001 */ li $t1, 1 -/* AEA654 800734B4 256D00B4 */ addiu $t5, $t3, 0xb4 -/* AEA658 800734B8 460A0102 */ mul.s $f4, $f0, $f10 -/* AEA65C 800734BC 31AE00FF */ andi $t6, $t5, 0xff -/* AEA660 800734C0 000E7C00 */ sll $t7, $t6, 0x10 -/* AEA664 800734C4 01E5C025 */ or $t8, $t7, $a1 -/* AEA668 800734C8 4459F800 */ cfc1 $t9, $31 -/* AEA66C 800734CC 44C9F800 */ ctc1 $t1, $31 -/* AEA670 800734D0 00000000 */ nop -/* AEA674 800734D4 460021A4 */ cvt.w.s $f6, $f4 -/* AEA678 800734D8 4449F800 */ cfc1 $t1, $31 -/* AEA67C 800734DC 00000000 */ nop -/* AEA680 800734E0 31290078 */ andi $t1, $t1, 0x78 -/* AEA684 800734E4 11200012 */ beqz $t1, .L80073530 -/* AEA688 800734E8 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AEA68C 800734EC 44813000 */ mtc1 $at, $f6 -/* AEA690 800734F0 24090001 */ li $t1, 1 -/* AEA694 800734F4 46062181 */ sub.s $f6, $f4, $f6 -/* AEA698 800734F8 44C9F800 */ ctc1 $t1, $31 -/* AEA69C 800734FC 00000000 */ nop -/* AEA6A0 80073500 460031A4 */ cvt.w.s $f6, $f6 -/* AEA6A4 80073504 4449F800 */ cfc1 $t1, $31 -/* AEA6A8 80073508 00000000 */ nop -/* AEA6AC 8007350C 31290078 */ andi $t1, $t1, 0x78 -/* AEA6B0 80073510 15200005 */ bnez $t1, .L80073528 -/* AEA6B4 80073514 00000000 */ nop -/* AEA6B8 80073518 44093000 */ mfc1 $t1, $f6 -/* AEA6BC 8007351C 3C018000 */ lui $at, 0x8000 -/* AEA6C0 80073520 10000007 */ b .L80073540 -/* AEA6C4 80073524 01214825 */ or $t1, $t1, $at -.L80073528: -/* AEA6C8 80073528 10000005 */ b .L80073540 -/* AEA6CC 8007352C 2409FFFF */ li $t1, -1 -.L80073530: -/* AEA6D0 80073530 44093000 */ mfc1 $t1, $f6 -/* AEA6D4 80073534 00000000 */ nop -/* AEA6D8 80073538 0520FFFB */ bltz $t1, .L80073528 -/* AEA6DC 8007353C 00000000 */ nop -.L80073540: -/* AEA6E0 80073540 44D9F800 */ ctc1 $t9, $31 -/* AEA6E4 80073544 01205025 */ move $t2, $t1 -/* AEA6E8 80073548 254B0064 */ addiu $t3, $t2, 0x64 -/* AEA6EC 8007354C 46100202 */ mul.s $f8, $f0, $f16 -/* AEA6F0 80073550 24040001 */ li $a0, 1 -/* AEA6F4 80073554 316C00FF */ andi $t4, $t3, 0xff -/* AEA6F8 80073558 000C6A00 */ sll $t5, $t4, 8 -/* AEA6FC 8007355C 030D7025 */ or $t6, $t8, $t5 -/* AEA700 80073560 35CF00FF */ ori $t7, $t6, 0xff -/* AEA704 80073564 AC6F0004 */ sw $t7, 4($v1) -/* AEA708 80073568 444AF800 */ cfc1 $t2, $31 -/* AEA70C 8007356C 44C4F800 */ ctc1 $a0, $31 -/* AEA710 80073570 8E0302C0 */ lw $v1, 0x2c0($s0) -/* AEA714 80073574 3C09FB00 */ lui $t1, 0xfb00 -/* AEA718 80073578 460042A4 */ cvt.w.s $f10, $f8 -/* AEA71C 8007357C 24790008 */ addiu $t9, $v1, 8 -/* AEA720 80073580 AE1902C0 */ sw $t9, 0x2c0($s0) -/* AEA724 80073584 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AEA728 80073588 4444F800 */ cfc1 $a0, $31 -/* AEA72C 8007358C AC690000 */ sw $t1, ($v1) -/* AEA730 80073590 30840078 */ andi $a0, $a0, 0x78 -/* AEA734 80073594 50800013 */ beql $a0, $zero, .L800735E4 -/* AEA738 80073598 44045000 */ mfc1 $a0, $f10 -/* AEA73C 8007359C 44815000 */ mtc1 $at, $f10 -/* AEA740 800735A0 24040001 */ li $a0, 1 -/* AEA744 800735A4 460A4281 */ sub.s $f10, $f8, $f10 -/* AEA748 800735A8 44C4F800 */ ctc1 $a0, $31 -/* AEA74C 800735AC 00000000 */ nop -/* AEA750 800735B0 460052A4 */ cvt.w.s $f10, $f10 -/* AEA754 800735B4 4444F800 */ cfc1 $a0, $31 -/* AEA758 800735B8 00000000 */ nop -/* AEA75C 800735BC 30840078 */ andi $a0, $a0, 0x78 -/* AEA760 800735C0 14800005 */ bnez $a0, .L800735D8 -/* AEA764 800735C4 00000000 */ nop -/* AEA768 800735C8 44045000 */ mfc1 $a0, $f10 -/* AEA76C 800735CC 3C018000 */ lui $at, 0x8000 -/* AEA770 800735D0 10000007 */ b .L800735F0 -/* AEA774 800735D4 00812025 */ or $a0, $a0, $at -.L800735D8: -/* AEA778 800735D8 10000005 */ b .L800735F0 -/* AEA77C 800735DC 2404FFFF */ li $a0, -1 -/* AEA780 800735E0 44045000 */ mfc1 $a0, $f10 -.L800735E4: -/* AEA784 800735E4 00000000 */ nop -/* AEA788 800735E8 0480FFFB */ bltz $a0, .L800735D8 -/* AEA78C 800735EC 00000000 */ nop -.L800735F0: -/* AEA790 800735F0 44CAF800 */ ctc1 $t2, $31 -/* AEA794 800735F4 240F0001 */ li $t7, 1 -/* AEA798 800735F8 308400FF */ andi $a0, $a0, 0xff -/* AEA79C 800735FC 00045C00 */ sll $t3, $a0, 0x10 -/* AEA7A0 80073600 444EF800 */ cfc1 $t6, $31 -/* AEA7A4 80073604 44CFF800 */ ctc1 $t7, $31 -/* AEA7A8 80073608 01656025 */ or $t4, $t3, $a1 -/* AEA7AC 8007360C 0004C200 */ sll $t8, $a0, 8 -/* AEA7B0 80073610 46006124 */ cvt.w.s $f4, $f12 -/* AEA7B4 80073614 01986825 */ or $t5, $t4, $t8 -/* AEA7B8 80073618 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AEA7BC 8007361C 444FF800 */ cfc1 $t7, $31 -/* AEA7C0 80073620 00000000 */ nop -/* AEA7C4 80073624 31EF0078 */ andi $t7, $t7, 0x78 -/* AEA7C8 80073628 51E00013 */ beql $t7, $zero, .L80073678 -/* AEA7CC 8007362C 440F2000 */ mfc1 $t7, $f4 -/* AEA7D0 80073630 44812000 */ mtc1 $at, $f4 -/* AEA7D4 80073634 240F0001 */ li $t7, 1 -/* AEA7D8 80073638 46046101 */ sub.s $f4, $f12, $f4 -/* AEA7DC 8007363C 44CFF800 */ ctc1 $t7, $31 -/* AEA7E0 80073640 00000000 */ nop -/* AEA7E4 80073644 46002124 */ cvt.w.s $f4, $f4 -/* AEA7E8 80073648 444FF800 */ cfc1 $t7, $31 -/* AEA7EC 8007364C 00000000 */ nop -/* AEA7F0 80073650 31EF0078 */ andi $t7, $t7, 0x78 -/* AEA7F4 80073654 15E00005 */ bnez $t7, .L8007366C -/* AEA7F8 80073658 00000000 */ nop -/* AEA7FC 8007365C 440F2000 */ mfc1 $t7, $f4 -/* AEA800 80073660 3C018000 */ lui $at, 0x8000 -/* AEA804 80073664 10000007 */ b .L80073684 -/* AEA808 80073668 01E17825 */ or $t7, $t7, $at -.L8007366C: -/* AEA80C 8007366C 10000005 */ b .L80073684 -/* AEA810 80073670 240FFFFF */ li $t7, -1 -/* AEA814 80073674 440F2000 */ mfc1 $t7, $f4 -.L80073678: -/* AEA818 80073678 00000000 */ nop -/* AEA81C 8007367C 05E0FFFB */ bltz $t7, .L8007366C -/* AEA820 80073680 00000000 */ nop -.L80073684: -/* AEA824 80073684 44CEF800 */ ctc1 $t6, $31 -/* AEA828 80073688 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AEA82C 8007368C 44814000 */ mtc1 $at, $f8 -/* AEA830 80073690 46000180 */ add.s $f6, $f0, $f0 -/* AEA834 80073694 31F900FF */ andi $t9, $t7, 0xff -/* AEA838 80073698 01B94825 */ or $t1, $t5, $t9 -/* AEA83C 8007369C AC690004 */ sw $t1, 4($v1) -/* AEA840 800736A0 46083300 */ add.s $f12, $f6, $f8 -/* AEA844 800736A4 AFA80030 */ sw $t0, 0x30($sp) -/* AEA848 800736A8 24070001 */ li $a3, 1 -/* AEA84C 800736AC 44066000 */ mfc1 $a2, $f12 -/* AEA850 800736B0 0C0342A3 */ jal Matrix_Scale -/* AEA854 800736B4 46006386 */ mov.s $f14, $f12 -/* AEA858 800736B8 8E0202C0 */ lw $v0, 0x2c0($s0) -/* AEA85C 800736BC 8FA80030 */ lw $t0, 0x30($sp) -/* AEA860 800736C0 3C0BDA38 */ lui $t3, (0xDA380003 >> 16) # lui $t3, 0xda38 -/* AEA864 800736C4 244A0008 */ addiu $t2, $v0, 8 -/* AEA868 800736C8 AE0A02C0 */ sw $t2, 0x2c0($s0) -/* AEA86C 800736CC 356B0003 */ ori $t3, (0xDA380003 & 0xFFFF) # ori $t3, $t3, 3 -/* AEA870 800736D0 AC4B0000 */ sw $t3, ($v0) -/* AEA874 800736D4 8E240000 */ lw $a0, ($s1) -/* AEA878 800736D8 3C058014 */ lui $a1, %hi(D_8013C56C) # $a1, 0x8014 -/* AEA87C 800736DC 24A5C56C */ addiu $a1, %lo(D_8013C56C) # addiu $a1, $a1, -0x3a94 -/* AEA880 800736E0 2406093C */ li $a2, 2364 -/* AEA884 800736E4 AFA20054 */ sw $v0, 0x54($sp) -/* AEA888 800736E8 0C0346A2 */ jal Matrix_NewMtx -/* AEA88C 800736EC AFA80030 */ sw $t0, 0x30($sp) -/* AEA890 800736F0 8FA30054 */ lw $v1, 0x54($sp) -/* AEA894 800736F4 8FA80030 */ lw $t0, 0x30($sp) -/* AEA898 800736F8 AC620004 */ sw $v0, 4($v1) -/* AEA89C 800736FC 8E240000 */ lw $a0, ($s1) -/* AEA8A0 80073700 0C024EB4 */ jal func_80093AD0 -/* AEA8A4 80073704 AFA80030 */ sw $t0, 0x30($sp) -/* AEA8A8 80073708 8E0202C0 */ lw $v0, 0x2c0($s0) -/* AEA8AC 8007370C 8FA80030 */ lw $t0, 0x30($sp) -/* AEA8B0 80073710 3C0E0405 */ li $t6, 0x04050000 # 0.000000 -/* AEA8B4 80073714 244C0008 */ addiu $t4, $v0, 8 -/* AEA8B8 80073718 AE0C02C0 */ sw $t4, 0x2c0($s0) -/* AEA8BC 8007371C 25CED1C0 */ addiu $t6, %lo(gSunDL) # addiu $t6, $t6, -0x2e40 -/* AEA8C0 80073720 3C18DE00 */ li $t8, 0xDE000000 # 0.000000 -/* AEA8C4 80073724 AC580000 */ sw $t8, ($v0) -/* AEA8C8 80073728 AC4E0004 */ sw $t6, 4($v0) -/* AEA8CC 8007372C C62A00E0 */ lwc1 $f10, 0xe0($s1) -/* AEA8D0 80073730 C5040A28 */ lwc1 $f4, 0xa28($t0) -/* AEA8D4 80073734 C62600E4 */ lwc1 $f6, 0xe4($s1) -/* AEA8D8 80073738 C5080A2C */ lwc1 $f8, 0xa2c($t0) -/* AEA8DC 8007373C 46045301 */ sub.s $f12, $f10, $f4 -/* AEA8E0 80073740 C62A00E8 */ lwc1 $f10, 0xe8($s1) -/* AEA8E4 80073744 C5040A30 */ lwc1 $f4, 0xa30($t0) -/* AEA8E8 80073748 46083381 */ sub.s $f14, $f6, $f8 -/* AEA8EC 8007374C 00003825 */ move $a3, $zero -/* AEA8F0 80073750 46045181 */ sub.s $f6, $f10, $f4 -/* AEA8F4 80073754 44063000 */ mfc1 $a2, $f6 -/* AEA8F8 80073758 0C034261 */ jal Matrix_Translate -/* AEA8FC 8007375C 00000000 */ nop -/* AEA900 80073760 C7B0007C */ lwc1 $f16, 0x7c($sp) -/* AEA904 80073764 3C0142F0 */ li $at, 0x42F00000 # 0.000000 -/* AEA908 80073768 44814000 */ mtc1 $at, $f8 -/* AEA90C 8007376C 46008407 */ neg.s $f16, $f16 -/* AEA910 80073770 44809000 */ mtc1 $zero, $f18 -/* AEA914 80073774 46088003 */ div.s $f0, $f16, $f8 -/* AEA918 80073778 3C01C170 */ li $at, 0xC1700000 # 0.000000 -/* AEA91C 8007377C 44815000 */ mtc1 $at, $f10 -/* AEA920 80073780 4612003C */ c.lt.s $f0, $f18 -/* AEA924 80073784 00000000 */ nop -/* AEA928 80073788 45000002 */ bc1f .L80073794 -/* AEA92C 8007378C 00000000 */ nop -/* AEA930 80073790 46009006 */ mov.s $f0, $f18 -.L80073794: -/* AEA934 80073794 46005102 */ mul.s $f4, $f10, $f0 -/* AEA938 80073798 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AEA93C 8007379C 44813000 */ mtc1 $at, $f6 -/* AEA940 800737A0 24070001 */ li $a3, 1 -/* AEA944 800737A4 E7B00030 */ swc1 $f16, 0x30($sp) -/* AEA948 800737A8 46062300 */ add.s $f12, $f4, $f6 -/* AEA94C 800737AC 44066000 */ mfc1 $a2, $f12 -/* AEA950 800737B0 0C0342A3 */ jal Matrix_Scale -/* AEA954 800737B4 46006386 */ mov.s $f14, $f12 -/* AEA958 800737B8 3C0142A0 */ li $at, 0x42A00000 # 0.000000 -/* AEA95C 800737BC C7B00030 */ lwc1 $f16, 0x30($sp) -/* AEA960 800737C0 44814000 */ mtc1 $at, $f8 -/* AEA964 800737C4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AEA968 800737C8 44815000 */ mtc1 $at, $f10 -/* AEA96C 800737CC 46088083 */ div.s $f2, $f16, $f8 -/* AEA970 800737D0 44809000 */ mtc1 $zero, $f18 -/* AEA974 800737D4 3C0DDA38 */ lui $t5, (0xDA380003 >> 16) # lui $t5, 0xda38 -/* AEA978 800737D8 3C013F80 */ lui $at, 0x3f80 -/* AEA97C 800737DC 35AD0003 */ ori $t5, (0xDA380003 & 0xFFFF) # ori $t5, $t5, 3 -/* AEA980 800737E0 3C058014 */ lui $a1, %hi(D_8013C57C) # $a1, 0x8014 -/* AEA984 800737E4 4602503C */ c.lt.s $f10, $f2 -/* AEA988 800737E8 00000000 */ nop -/* AEA98C 800737EC 45020004 */ bc1fl .L80073800 -/* AEA990 800737F0 3C01437F */ li $at, 0x437F0000 # 0.000000 -/* AEA994 800737F4 44811000 */ mtc1 $at, $f2 -/* AEA998 800737F8 00000000 */ nop -/* AEA99C 800737FC 3C01437F */ li $at, 0x437F0000 # 0.000000 -.L80073800: -/* AEA9A0 80073800 44812000 */ mtc1 $at, $f4 -/* AEA9A4 80073804 00000000 */ nop -/* AEA9A8 80073808 46041002 */ mul.s $f0, $f2, $f4 -/* AEA9AC 8007380C 4600903C */ c.lt.s $f18, $f0 -/* AEA9B0 80073810 00000000 */ nop -/* AEA9B4 80073814 45000051 */ bc1f .L8007395C -/* AEA9B8 80073818 00000000 */ nop -/* AEA9BC 8007381C 8E0202C0 */ lw $v0, 0x2c0($s0) -/* AEA9C0 80073820 24A5C57C */ addiu $a1, %lo(D_8013C57C) # addiu $a1, $a1, -0x3a84 -/* AEA9C4 80073824 24060966 */ li $a2, 2406 -/* AEA9C8 80073828 244F0008 */ addiu $t7, $v0, 8 -/* AEA9CC 8007382C AE0F02C0 */ sw $t7, 0x2c0($s0) -/* AEA9D0 80073830 AC4D0000 */ sw $t5, ($v0) -/* AEA9D4 80073834 8E240000 */ lw $a0, ($s1) -/* AEA9D8 80073838 E7A00030 */ swc1 $f0, 0x30($sp) -/* AEA9DC 8007383C 0C0346A2 */ jal Matrix_NewMtx -/* AEA9E0 80073840 AFA2004C */ sw $v0, 0x4c($sp) -/* AEA9E4 80073844 8FA3004C */ lw $v1, 0x4c($sp) -/* AEA9E8 80073848 C7A00030 */ lwc1 $f0, 0x30($sp) -/* AEA9EC 8007384C AC620004 */ sw $v0, 4($v1) -/* AEA9F0 80073850 8E240000 */ lw $a0, ($s1) -/* AEA9F4 80073854 0C024E63 */ jal func_8009398C -/* AEA9F8 80073858 E7A00030 */ swc1 $f0, 0x30($sp) -/* AEA9FC 8007385C 8E0202C0 */ lw $v0, 0x2c0($s0) -/* AEAA00 80073860 444CF800 */ cfc1 $t4, $31 -/* AEAA04 80073864 24040001 */ li $a0, 1 -/* AEAA08 80073868 44C4F800 */ ctc1 $a0, $31 -/* AEAA0C 8007386C C7A00030 */ lwc1 $f0, 0x30($sp) -/* AEAA10 80073870 24590008 */ addiu $t9, $v0, 8 -/* AEAA14 80073874 AE1902C0 */ sw $t9, 0x2c0($s0) -/* AEAA18 80073878 460001A4 */ cvt.w.s $f6, $f0 -/* AEAA1C 8007387C 3C09E700 */ lui $t1, 0xe700 -/* AEAA20 80073880 AC490000 */ sw $t1, ($v0) -/* AEAA24 80073884 AC400004 */ sw $zero, 4($v0) -/* AEAA28 80073888 8E0302C0 */ lw $v1, 0x2c0($s0) -/* AEAA2C 8007388C 4444F800 */ cfc1 $a0, $31 -/* AEAA30 80073890 3C0BFA00 */ lui $t3, 0xfa00 -/* AEAA34 80073894 246A0008 */ addiu $t2, $v1, 8 -/* AEAA38 80073898 AE0A02C0 */ sw $t2, 0x2c0($s0) -/* AEAA3C 8007389C 30840078 */ andi $a0, $a0, 0x78 -/* AEAA40 800738A0 10800013 */ beqz $a0, .L800738F0 -/* AEAA44 800738A4 AC6B0000 */ sw $t3, ($v1) -/* AEAA48 800738A8 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AEAA4C 800738AC 44813000 */ mtc1 $at, $f6 -/* AEAA50 800738B0 24040001 */ li $a0, 1 -/* AEAA54 800738B4 46060181 */ sub.s $f6, $f0, $f6 -/* AEAA58 800738B8 44C4F800 */ ctc1 $a0, $31 -/* AEAA5C 800738BC 00000000 */ nop -/* AEAA60 800738C0 460031A4 */ cvt.w.s $f6, $f6 -/* AEAA64 800738C4 4444F800 */ cfc1 $a0, $31 -/* AEAA68 800738C8 00000000 */ nop -/* AEAA6C 800738CC 30840078 */ andi $a0, $a0, 0x78 -/* AEAA70 800738D0 14800005 */ bnez $a0, .L800738E8 -/* AEAA74 800738D4 00000000 */ nop -/* AEAA78 800738D8 44043000 */ mfc1 $a0, $f6 -/* AEAA7C 800738DC 3C018000 */ lui $at, 0x8000 -/* AEAA80 800738E0 10000007 */ b .L80073900 -/* AEAA84 800738E4 00812025 */ or $a0, $a0, $at -.L800738E8: -/* AEAA88 800738E8 10000005 */ b .L80073900 -/* AEAA8C 800738EC 2404FFFF */ li $a0, -1 -.L800738F0: -/* AEAA90 800738F0 44043000 */ mfc1 $a0, $f6 -/* AEAA94 800738F4 00000000 */ nop -/* AEAA98 800738F8 0480FFFB */ bltz $a0, .L800738E8 -/* AEAA9C 800738FC 00000000 */ nop -.L80073900: -/* AEAAA0 80073900 3C01F0FF */ lui $at, (0xF0FFB400 >> 16) # lui $at, 0xf0ff -/* AEAAA4 80073904 3421B400 */ ori $at, (0xF0FFB400 & 0xFFFF) # ori $at, $at, 0xb400 -/* AEAAA8 80073908 308400FF */ andi $a0, $a0, 0xff -/* AEAAAC 8007390C 0081C025 */ or $t8, $a0, $at -/* AEAAB0 80073910 AC780004 */ sw $t8, 4($v1) -/* AEAAB4 80073914 8E0202C0 */ lw $v0, 0x2c0($s0) -/* AEAAB8 80073918 3C015046 */ lui $at, (0x50461400 >> 16) # lui $at, 0x5046 -/* AEAABC 8007391C 34211400 */ ori $at, (0x50461400 & 0xFFFF) # ori $at, $at, 0x1400 -/* AEAAC0 80073920 244E0008 */ addiu $t6, $v0, 8 -/* AEAAC4 80073924 AE0E02C0 */ sw $t6, 0x2c0($s0) -/* AEAAC8 80073928 00816825 */ or $t5, $a0, $at -/* AEAACC 8007392C 3C0FFB00 */ lui $t7, 0xfb00 -/* AEAAD0 80073930 AC4F0000 */ sw $t7, ($v0) -/* AEAAD4 80073934 AC4D0004 */ sw $t5, 4($v0) -/* AEAAD8 80073938 8E0202C0 */ lw $v0, 0x2c0($s0) -/* AEAADC 8007393C 3C0A0404 */ lui $t2, %hi(gMoonDL) # $t2, 0x404 -/* AEAAE0 80073940 44CCF800 */ ctc1 $t4, $31 -/* AEAAE4 80073944 24590008 */ addiu $t9, $v0, 8 -/* AEAAE8 80073948 AE1902C0 */ sw $t9, 0x2c0($s0) -/* AEAAEC 8007394C 254A8F00 */ addiu $t2, %lo(gMoonDL) # addiu $t2, $t2, -0x7100 -/* AEAAF0 80073950 3C09DE00 */ lui $t1, 0xde00 -/* AEAAF4 80073954 AC490000 */ sw $t1, ($v0) -/* AEAAF8 80073958 AC4A0004 */ sw $t2, 4($v0) -.L8007395C: -/* AEAAFC 8007395C 3C068014 */ lui $a2, %hi(D_8013C58C) # $a2, 0x8014 -/* AEAB00 80073960 24C6C58C */ addiu $a2, %lo(D_8013C58C) # addiu $a2, $a2, -0x3a74 -/* AEAB04 80073964 27A40060 */ addiu $a0, $sp, 0x60 -/* AEAB08 80073968 8E250000 */ lw $a1, ($s1) -/* AEAB0C 8007396C 0C031AD5 */ jal Graph_CloseDisps -/* AEAB10 80073970 2407097D */ li $a3, 2429 -/* AEAB14 80073974 8FBF0024 */ lw $ra, 0x24($sp) -/* AEAB18 80073978 8FB0001C */ lw $s0, 0x1c($sp) -/* AEAB1C 8007397C 8FB10020 */ lw $s1, 0x20($sp) -/* AEAB20 80073980 03E00008 */ jr $ra -/* AEAB24 80073984 27BD0088 */ addiu $sp, $sp, 0x88 - diff --git a/asm/non_matchings/code/z_kankyo/func_80073988.s b/asm/non_matchings/code/z_kankyo/func_80073988.s deleted file mode 100644 index 823ed52cb4..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80073988.s +++ /dev/null @@ -1,56 +0,0 @@ -glabel func_80073988 -/* AEAB28 80073988 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* AEAB2C 8007398C 3C010001 */ lui $at, 1 -/* AEAB30 80073990 AFBF003C */ sw $ra, 0x3c($sp) -/* AEAB34 80073994 AFB00038 */ sw $s0, 0x38($sp) -/* AEAB38 80073998 AFA50044 */ sw $a1, 0x44($sp) -/* AEAB3C 8007399C AFA60048 */ sw $a2, 0x48($sp) -/* AEAB40 800739A0 AFA7004C */ sw $a3, 0x4c($sp) -/* AEAB44 800739A4 00811021 */ addu $v0, $a0, $at -/* AEAB48 800739A8 904E0B13 */ lbu $t6, 0xb13($v0) -/* AEAB4C 800739AC 00808025 */ move $s0, $a0 -/* AEAB50 800739B0 55C00026 */ bnezl $t6, .L80073A4C -/* AEAB54 800739B4 8FBF003C */ lw $ra, 0x3c($sp) -/* AEAB58 800739B8 904F0A3B */ lbu $t7, 0xa3b($v0) -/* AEAB5C 800739BC 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016 -/* AEAB60 800739C0 55E00022 */ bnezl $t7, .L80073A4C -/* AEAB64 800739C4 8FBF003C */ lw $ra, 0x3c($sp) -/* AEAB68 800739C8 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AEAB6C 800739CC 24018000 */ li $at, -32768 -/* AEAB70 800739D0 00412021 */ addu $a0, $v0, $at -/* AEAB74 800739D4 00042400 */ sll $a0, $a0, 0x10 -/* AEAB78 800739D8 0C01DE0D */ jal Math_CosS -/* AEAB7C 800739DC 00042403 */ sra $a0, $a0, 0x10 -/* AEAB80 800739E0 27B80050 */ addiu $t8, $sp, 0x50 -/* AEAB84 800739E4 8F080000 */ lw $t0, ($t8) -/* AEAB88 800739E8 3C010001 */ lui $at, (0x00010A24 >> 16) # lui $at, 1 -/* AEAB8C 800739EC 34210A24 */ ori $at, (0x00010A24 & 0xFFFF) # ori $at, $at, 0xa24 -/* AEAB90 800739F0 02012821 */ addu $a1, $s0, $at -/* AEAB94 800739F4 8E070000 */ lw $a3, ($s0) -/* AEAB98 800739F8 3C0142F0 */ li $at, 0x42F00000 # 0.000000 -/* AEAB9C 800739FC AFA80010 */ sw $t0, 0x10($sp) -/* AEABA0 80073A00 8F190004 */ lw $t9, 4($t8) -/* AEABA4 80073A04 44812000 */ mtc1 $at, $f4 -/* AEABA8 80073A08 240907D0 */ li $t1, 2000 -/* AEABAC 80073A0C AFB90014 */ sw $t9, 0x14($sp) -/* AEABB0 80073A10 46040182 */ mul.s $f6, $f0, $f4 -/* AEABB4 80073A14 8F080008 */ lw $t0, 8($t8) -/* AEABB8 80073A18 240A0172 */ li $t2, 370 -/* AEABBC 80073A1C 240B0190 */ li $t3, 400 -/* AEABC0 80073A20 240C0001 */ li $t4, 1 -/* AEABC4 80073A24 AFAC002C */ sw $t4, 0x2c($sp) -/* AEABC8 80073A28 AFAB0028 */ sw $t3, 0x28($sp) -/* AEABCC 80073A2C AFAA0020 */ sw $t2, 0x20($sp) -/* AEABD0 80073A30 E7A60024 */ swc1 $f6, 0x24($sp) -/* AEABD4 80073A34 AFA9001C */ sw $t1, 0x1c($sp) -/* AEABD8 80073A38 02002025 */ move $a0, $s0 -/* AEABDC 80073A3C 260600B8 */ addiu $a2, $s0, 0xb8 -/* AEABE0 80073A40 0C01CE97 */ jal func_80073A5C -/* AEABE4 80073A44 AFA80018 */ sw $t0, 0x18($sp) -/* AEABE8 80073A48 8FBF003C */ lw $ra, 0x3c($sp) -.L80073A4C: -/* AEABEC 80073A4C 8FB00038 */ lw $s0, 0x38($sp) -/* AEABF0 80073A50 27BD0040 */ addiu $sp, $sp, 0x40 -/* AEABF4 80073A54 03E00008 */ jr $ra -/* AEABF8 80073A58 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_80074CE8.s b/asm/non_matchings/code/z_kankyo/func_80074CE8.s deleted file mode 100644 index 7204b339b5..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80074CE8.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel func_80074CE8 -/* AEBE88 80074CE8 3C010001 */ li $at, 0x00010000 # 0.000000 -/* AEBE8C 80074CEC 00811021 */ addu $v0, $a0, $at -/* AEBE90 80074CF0 904E0AE1 */ lbu $t6, 0xae1($v0) -/* AEBE94 80074CF4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AEBE98 80074CF8 10AE001A */ beq $a1, $t6, .L80074D64 -/* AEBE9C 80074CFC 00000000 */ nop -/* AEBEA0 80074D00 C4440AFC */ lwc1 $f4, 0xafc($v0) -/* AEBEA4 80074D04 44813000 */ mtc1 $at, $f6 -/* AEBEA8 80074D08 00000000 */ nop -/* AEBEAC 80074D0C 4604303E */ c.le.s $f6, $f4 -/* AEBEB0 80074D10 00000000 */ nop -/* AEBEB4 80074D14 45000013 */ bc1f .L80074D64 -/* AEBEB8 80074D18 00000000 */ nop -/* AEBEBC 80074D1C 904F0AE3 */ lbu $t7, 0xae3($v0) -/* AEBEC0 80074D20 240100FF */ li $at, 255 -/* AEBEC4 80074D24 15E1000F */ bne $t7, $at, .L80074D64 -/* AEBEC8 80074D28 2CA1001F */ sltiu $at, $a1, 0x1f -/* AEBECC 80074D2C 54200003 */ bnezl $at, .L80074D3C -/* AEBED0 80074D30 44804000 */ mtc1 $zero, $f8 -/* AEBED4 80074D34 00002825 */ move $a1, $zero -/* AEBED8 80074D38 44804000 */ mtc1 $zero, $f8 -.L80074D3C: -/* AEBEDC 80074D3C 3C010001 */ lui $at, 1 -/* AEBEE0 80074D40 00240821 */ addu $at, $at, $a0 -/* AEBEE4 80074D44 E4280AFC */ swc1 $f8, 0xafc($at) -/* AEBEE8 80074D48 90580AE1 */ lbu $t8, 0xae1($v0) -/* AEBEEC 80074D4C 3C010001 */ lui $at, 1 -/* AEBEF0 80074D50 00240821 */ addu $at, $at, $a0 -/* AEBEF4 80074D54 A0380AE2 */ sb $t8, 0xae2($at) -/* AEBEF8 80074D58 3C010001 */ lui $at, 1 -/* AEBEFC 80074D5C 00240821 */ addu $at, $at, $a0 -/* AEBF00 80074D60 A0250AE1 */ sb $a1, 0xae1($at) -.L80074D64: -/* AEBF04 80074D64 03E00008 */ jr $ra -/* AEBF08 80074D68 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_80074D6C.s b/asm/non_matchings/code/z_kankyo/func_80074D6C.s deleted file mode 100644 index 3d554658e2..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80074D6C.s +++ /dev/null @@ -1,195 +0,0 @@ -.rdata -glabel D_8013C60C - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C61C - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C62C - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C63C - .asciz "../z_kankyo.c" - .balign 4 - -.late_rodata -glabel D_8013C7F4 - .float 0.02 - -.text -glabel func_80074D6C -/* AEBF0C 80074D6C 27BDFF98 */ addiu $sp, $sp, -0x68 -/* AEBF10 80074D70 3C010001 */ lui $at, 1 -/* AEBF14 80074D74 AFBF001C */ sw $ra, 0x1c($sp) -/* AEBF18 80074D78 AFB00018 */ sw $s0, 0x18($sp) -/* AEBF1C 80074D7C 00814821 */ addu $t1, $a0, $at -/* AEBF20 80074D80 91221E14 */ lbu $v0, 0x1e14($t1) -/* AEBF24 80074D84 00808025 */ move $s0, $a0 -/* AEBF28 80074D88 50400005 */ beql $v0, $zero, .L80074DA0 -/* AEBF2C 80074D8C 2401001D */ li $at, 29 -/* AEBF30 80074D90 848E07B2 */ lh $t6, 0x7b2($a0) -/* AEBF34 80074D94 29C103D4 */ slti $at, $t6, 0x3d4 -/* AEBF38 80074D98 14200003 */ bnez $at, .L80074DA8 -/* AEBF3C 80074D9C 2401001D */ li $at, 29 -.L80074DA0: -/* AEBF40 80074DA0 54410065 */ bnel $v0, $at, .L80074F38 -/* AEBF44 80074DA4 912E0B0D */ lbu $t6, 0xb0d($t1) -.L80074DA8: -/* AEBF48 80074DA8 8E050000 */ lw $a1, ($s0) -/* AEBF4C 80074DAC 3C068014 */ lui $a2, %hi(D_8013C60C) # $a2, 0x8014 -/* AEBF50 80074DB0 24C6C60C */ addiu $a2, %lo(D_8013C60C) # addiu $a2, $a2, -0x39f4 -/* AEBF54 80074DB4 AFA90028 */ sw $t1, 0x28($sp) -/* AEBF58 80074DB8 27A40050 */ addiu $a0, $sp, 0x50 -/* AEBF5C 80074DBC 24070BD8 */ li $a3, 3032 -/* AEBF60 80074DC0 0C031AB1 */ jal Graph_OpenDisps -/* AEBF64 80074DC4 AFA50060 */ sw $a1, 0x60($sp) -/* AEBF68 80074DC8 0C024E2D */ jal func_800938B4 -/* AEBF6C 80074DCC 8E040000 */ lw $a0, ($s0) -/* AEBF70 80074DD0 860F07B2 */ lh $t7, 0x7b2($s0) -/* AEBF74 80074DD4 241803E8 */ li $t8, 1000 -/* AEBF78 80074DD8 8FA90028 */ lw $t1, 0x28($sp) -/* AEBF7C 80074DDC 030FC823 */ subu $t9, $t8, $t7 -/* AEBF80 80074DE0 44992000 */ mtc1 $t9, $f4 -/* AEBF84 80074DE4 3C018014 */ lui $at, %hi(D_8013C7F4) -/* AEBF88 80074DE8 C428C7F4 */ lwc1 $f8, %lo(D_8013C7F4)($at) -/* AEBF8C 80074DEC 468021A0 */ cvt.s.w $f6, $f4 -/* AEBF90 80074DF0 912A1E14 */ lbu $t2, 0x1e14($t1) -/* AEBF94 80074DF4 2401001D */ li $at, 29 -/* AEBF98 80074DF8 8FA80060 */ lw $t0, 0x60($sp) -/* AEBF9C 80074DFC 3C0CFA00 */ lui $t4, 0xfa00 -/* AEBFA0 80074E00 27A40050 */ addiu $a0, $sp, 0x50 -/* AEBFA4 80074E04 46083002 */ mul.s $f0, $f6, $f8 -/* AEBFA8 80074E08 15410004 */ bne $t2, $at, .L80074E1C -/* AEBFAC 80074E0C 3C068014 */ lui $a2, %hi(D_8013C61C) # $a2, 0x8014 -/* AEBFB0 80074E10 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AEBFB4 80074E14 44810000 */ mtc1 $at, $f0 -/* AEBFB8 80074E18 00000000 */ nop -.L80074E1C: -/* AEBFBC 80074E1C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AEBFC0 80074E20 44811000 */ mtc1 $at, $f2 -/* AEBFC4 80074E24 24C6C61C */ addiu $a2, %lo(D_8013C61C) # addiu $a2, $a2, -0x39e4 -/* AEBFC8 80074E28 24070BE3 */ li $a3, 3043 -/* AEBFCC 80074E2C 4600103C */ c.lt.s $f2, $f0 -/* AEBFD0 80074E30 00000000 */ nop -/* AEBFD4 80074E34 45020003 */ bc1fl .L80074E44 -/* AEBFD8 80074E38 8D0202C0 */ lw $v0, 0x2c0($t0) -/* AEBFDC 80074E3C 46001006 */ mov.s $f0, $f2 -/* AEBFE0 80074E40 8D0202C0 */ lw $v0, 0x2c0($t0) -.L80074E44: -/* AEBFE4 80074E44 3C01437F */ li $at, 0x437F0000 # 0.000000 -/* AEBFE8 80074E48 44815000 */ mtc1 $at, $f10 -/* AEBFEC 80074E4C 244B0008 */ addiu $t3, $v0, 8 -/* AEBFF0 80074E50 AD0B02C0 */ sw $t3, 0x2c0($t0) -/* AEBFF4 80074E54 46005402 */ mul.s $f16, $f10, $f0 -/* AEBFF8 80074E58 AC4C0000 */ sw $t4, ($v0) -/* AEBFFC 80074E5C 921907AF */ lbu $t9, 0x7af($s0) -/* AEC000 80074E60 920E07B1 */ lbu $t6, 0x7b1($s0) -/* AEC004 80074E64 920D07B0 */ lbu $t5, 0x7b0($s0) -/* AEC008 80074E68 00195600 */ sll $t2, $t9, 0x18 -/* AEC00C 80074E6C 000EC200 */ sll $t8, $t6, 8 -/* AEC010 80074E70 030A5825 */ or $t3, $t8, $t2 -/* AEC014 80074E74 24180001 */ li $t8, 1 -/* AEC018 80074E78 4459F800 */ cfc1 $t9, $31 -/* AEC01C 80074E7C 44D8F800 */ ctc1 $t8, $31 -/* AEC020 80074E80 000D7400 */ sll $t6, $t5, 0x10 -/* AEC024 80074E84 016E7825 */ or $t7, $t3, $t6 -/* AEC028 80074E88 460084A4 */ cvt.w.s $f18, $f16 -/* AEC02C 80074E8C 3C014F00 */ lui $at, 0x4f00 -/* AEC030 80074E90 3C0BF64F */ li $t3, 0xF64F0000 # 0.000000 -/* AEC034 80074E94 4458F800 */ cfc1 $t8, $31 -/* AEC038 80074E98 00000000 */ nop -/* AEC03C 80074E9C 33180078 */ andi $t8, $t8, 0x78 -/* AEC040 80074EA0 53000013 */ beql $t8, $zero, .L80074EF0 -/* AEC044 80074EA4 44189000 */ mfc1 $t8, $f18 -/* AEC048 80074EA8 44819000 */ mtc1 $at, $f18 -/* AEC04C 80074EAC 24180001 */ li $t8, 1 -/* AEC050 80074EB0 46128481 */ sub.s $f18, $f16, $f18 -/* AEC054 80074EB4 44D8F800 */ ctc1 $t8, $31 -/* AEC058 80074EB8 00000000 */ nop -/* AEC05C 80074EBC 460094A4 */ cvt.w.s $f18, $f18 -/* AEC060 80074EC0 4458F800 */ cfc1 $t8, $31 -/* AEC064 80074EC4 00000000 */ nop -/* AEC068 80074EC8 33180078 */ andi $t8, $t8, 0x78 -/* AEC06C 80074ECC 17000005 */ bnez $t8, .L80074EE4 -/* AEC070 80074ED0 00000000 */ nop -/* AEC074 80074ED4 44189000 */ mfc1 $t8, $f18 -/* AEC078 80074ED8 3C018000 */ lui $at, 0x8000 -/* AEC07C 80074EDC 10000007 */ b .L80074EFC -/* AEC080 80074EE0 0301C025 */ or $t8, $t8, $at -.L80074EE4: -/* AEC084 80074EE4 10000005 */ b .L80074EFC -/* AEC088 80074EE8 2418FFFF */ li $t8, -1 -/* AEC08C 80074EEC 44189000 */ mfc1 $t8, $f18 -.L80074EF0: -/* AEC090 80074EF0 00000000 */ nop -/* AEC094 80074EF4 0700FFFB */ bltz $t8, .L80074EE4 -/* AEC098 80074EF8 00000000 */ nop -.L80074EFC: -/* AEC09C 80074EFC 330A00FF */ andi $t2, $t8, 0xff -/* AEC0A0 80074F00 01EA6025 */ or $t4, $t7, $t2 -/* AEC0A4 80074F04 AC4C0004 */ sw $t4, 4($v0) -/* AEC0A8 80074F08 8D0302C0 */ lw $v1, 0x2c0($t0) -/* AEC0AC 80074F0C 356BC3BC */ ori $t3, $t3, 0xc3bc -/* AEC0B0 80074F10 44D9F800 */ ctc1 $t9, $31 -/* AEC0B4 80074F14 246D0008 */ addiu $t5, $v1, 8 -/* AEC0B8 80074F18 AD0D02C0 */ sw $t5, 0x2c0($t0) -/* AEC0BC 80074F1C AC600004 */ sw $zero, 4($v1) -/* AEC0C0 80074F20 AC6B0000 */ sw $t3, ($v1) -/* AEC0C4 80074F24 8E050000 */ lw $a1, ($s0) -/* AEC0C8 80074F28 0C031AD5 */ jal Graph_CloseDisps -/* AEC0CC 80074F2C AFA90028 */ sw $t1, 0x28($sp) -/* AEC0D0 80074F30 8FA90028 */ lw $t1, 0x28($sp) -/* AEC0D4 80074F34 912E0B0D */ lbu $t6, 0xb0d($t1) -.L80074F38: -/* AEC0D8 80074F38 3C068014 */ lui $a2, %hi(D_8013C62C) # $a2, 0x8014 -/* AEC0DC 80074F3C 24C6C62C */ addiu $a2, %lo(D_8013C62C) # addiu $a2, $a2, -0x39d4 -/* AEC0E0 80074F40 11C00027 */ beqz $t6, .L80074FE0 -/* AEC0E4 80074F44 27A40034 */ addiu $a0, $sp, 0x34 -/* AEC0E8 80074F48 8E050000 */ lw $a1, ($s0) -/* AEC0EC 80074F4C AFA90028 */ sw $t1, 0x28($sp) -/* AEC0F0 80074F50 24070BE8 */ li $a3, 3048 -/* AEC0F4 80074F54 0C031AB1 */ jal Graph_OpenDisps -/* AEC0F8 80074F58 AFA50044 */ sw $a1, 0x44($sp) -/* AEC0FC 80074F5C 0C024E2D */ jal func_800938B4 -/* AEC100 80074F60 8E040000 */ lw $a0, ($s0) -/* AEC104 80074F64 8FA80044 */ lw $t0, 0x44($sp) -/* AEC108 80074F68 8FA90028 */ lw $t1, 0x28($sp) -/* AEC10C 80074F6C 3C18FA00 */ lui $t8, 0xfa00 -/* AEC110 80074F70 8D0302C0 */ lw $v1, 0x2c0($t0) -/* AEC114 80074F74 3C068014 */ lui $a2, %hi(D_8013C63C) # $a2, 0x8014 -/* AEC118 80074F78 24C6C63C */ addiu $a2, %lo(D_8013C63C) # addiu $a2, $a2, -0x39c4 -/* AEC11C 80074F7C 24790008 */ addiu $t9, $v1, 8 -/* AEC120 80074F80 AD1902C0 */ sw $t9, 0x2c0($t0) -/* AEC124 80074F84 AC780000 */ sw $t8, ($v1) -/* AEC128 80074F88 912D0B0E */ lbu $t5, 0xb0e($t1) -/* AEC12C 80074F8C 912A0B11 */ lbu $t2, 0xb11($t1) -/* AEC130 80074F90 91380B0F */ lbu $t8, 0xb0f($t1) -/* AEC134 80074F94 000D5E00 */ sll $t3, $t5, 0x18 -/* AEC138 80074F98 014B7025 */ or $t6, $t2, $t3 -/* AEC13C 80074F9C 912A0B10 */ lbu $t2, 0xb10($t1) -/* AEC140 80074FA0 00187C00 */ sll $t7, $t8, 0x10 -/* AEC144 80074FA4 01CF6025 */ or $t4, $t6, $t7 -/* AEC148 80074FA8 000A5A00 */ sll $t3, $t2, 8 -/* AEC14C 80074FAC 018BC825 */ or $t9, $t4, $t3 -/* AEC150 80074FB0 AC790004 */ sw $t9, 4($v1) -/* AEC154 80074FB4 8D0302C0 */ lw $v1, 0x2c0($t0) -/* AEC158 80074FB8 3C0EF64F */ lui $t6, (0xF64FC3BC >> 16) # lui $t6, 0xf64f -/* AEC15C 80074FBC 35CEC3BC */ ori $t6, (0xF64FC3BC & 0xFFFF) # ori $t6, $t6, 0xc3bc -/* AEC160 80074FC0 24780008 */ addiu $t8, $v1, 8 -/* AEC164 80074FC4 AD1802C0 */ sw $t8, 0x2c0($t0) -/* AEC168 80074FC8 AC600004 */ sw $zero, 4($v1) -/* AEC16C 80074FCC AC6E0000 */ sw $t6, ($v1) -/* AEC170 80074FD0 8E050000 */ lw $a1, ($s0) -/* AEC174 80074FD4 27A40034 */ addiu $a0, $sp, 0x34 -/* AEC178 80074FD8 0C031AD5 */ jal Graph_CloseDisps -/* AEC17C 80074FDC 24070BF0 */ li $a3, 3056 -.L80074FE0: -/* AEC180 80074FE0 8FBF001C */ lw $ra, 0x1c($sp) -/* AEC184 80074FE4 8FB00018 */ lw $s0, 0x18($sp) -/* AEC188 80074FE8 27BD0068 */ addiu $sp, $sp, 0x68 -/* AEC18C 80074FEC 03E00008 */ jr $ra -/* AEC190 80074FF0 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_80074FF4.s b/asm/non_matchings/code/z_kankyo/func_80074FF4.s deleted file mode 100644 index 475c93f93c..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80074FF4.s +++ /dev/null @@ -1,63 +0,0 @@ -.rdata -glabel D_8013C64C - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C65C - .asciz "../z_kankyo.c" - .balign 4 - -.text -glabel func_80074FF4 -/* AEC194 80074FF4 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* AEC198 80074FF8 AFBF0014 */ sw $ra, 0x14($sp) -/* AEC19C 80074FFC AFA40038 */ sw $a0, 0x38($sp) -/* AEC1A0 80075000 AFA5003C */ sw $a1, 0x3c($sp) -/* AEC1A4 80075004 AFA60040 */ sw $a2, 0x40($sp) -/* AEC1A8 80075008 AFA70044 */ sw $a3, 0x44($sp) -/* AEC1AC 8007500C 8C850000 */ lw $a1, ($a0) -/* AEC1B0 80075010 3C068014 */ lui $a2, %hi(D_8013C64C) # $a2, 0x8014 -/* AEC1B4 80075014 24C6C64C */ addiu $a2, %lo(D_8013C64C) # addiu $a2, $a2, -0x39b4 -/* AEC1B8 80075018 27A40024 */ addiu $a0, $sp, 0x24 -/* AEC1BC 8007501C 24070BFD */ li $a3, 3069 -/* AEC1C0 80075020 0C031AB1 */ jal Graph_OpenDisps -/* AEC1C4 80075024 AFA50034 */ sw $a1, 0x34($sp) -/* AEC1C8 80075028 8FAF0038 */ lw $t7, 0x38($sp) -/* AEC1CC 8007502C 0C024E2D */ jal func_800938B4 -/* AEC1D0 80075030 8DE40000 */ lw $a0, ($t7) -/* AEC1D4 80075034 8FA80034 */ lw $t0, 0x34($sp) -/* AEC1D8 80075038 3C19FA00 */ lui $t9, 0xfa00 -/* AEC1DC 8007503C 3C068014 */ lui $a2, %hi(D_8013C65C) # $a2, 0x8014 -/* AEC1E0 80075040 8D0302C0 */ lw $v1, 0x2c0($t0) -/* AEC1E4 80075044 24C6C65C */ addiu $a2, %lo(D_8013C65C) # addiu $a2, $a2, -0x39a4 -/* AEC1E8 80075048 27A40024 */ addiu $a0, $sp, 0x24 -/* AEC1EC 8007504C 24780008 */ addiu $t8, $v1, 8 -/* AEC1F0 80075050 AD1802C0 */ sw $t8, 0x2c0($t0) -/* AEC1F4 80075054 AC790000 */ sw $t9, ($v1) -/* AEC1F8 80075058 93AD0043 */ lbu $t5, 0x43($sp) -/* AEC1FC 8007505C 93AA003F */ lbu $t2, 0x3f($sp) -/* AEC200 80075060 93B90047 */ lbu $t9, 0x47($sp) -/* AEC204 80075064 000D7400 */ sll $t6, $t5, 0x10 -/* AEC208 80075068 93AD004B */ lbu $t5, 0x4b($sp) -/* AEC20C 8007506C 000A5E00 */ sll $t3, $t2, 0x18 -/* AEC210 80075070 016E7825 */ or $t7, $t3, $t6 -/* AEC214 80075074 00194A00 */ sll $t1, $t9, 8 -/* AEC218 80075078 01E95025 */ or $t2, $t7, $t1 -/* AEC21C 8007507C 014D5825 */ or $t3, $t2, $t5 -/* AEC220 80075080 AC6B0004 */ sw $t3, 4($v1) -/* AEC224 80075084 8D0302C0 */ lw $v1, 0x2c0($t0) -/* AEC228 80075088 3C18F64F */ lui $t8, (0xF64FC3BC >> 16) # lui $t8, 0xf64f -/* AEC22C 8007508C 3718C3BC */ ori $t8, (0xF64FC3BC & 0xFFFF) # ori $t8, $t8, 0xc3bc -/* AEC230 80075090 246E0008 */ addiu $t6, $v1, 8 -/* AEC234 80075094 AD0E02C0 */ sw $t6, 0x2c0($t0) -/* AEC238 80075098 AC600004 */ sw $zero, 4($v1) -/* AEC23C 8007509C AC780000 */ sw $t8, ($v1) -/* AEC240 800750A0 8FB90038 */ lw $t9, 0x38($sp) -/* AEC244 800750A4 24070C07 */ li $a3, 3079 -/* AEC248 800750A8 0C031AD5 */ jal Graph_CloseDisps -/* AEC24C 800750AC 8F250000 */ lw $a1, ($t9) -/* AEC250 800750B0 8FBF0014 */ lw $ra, 0x14($sp) -/* AEC254 800750B4 27BD0038 */ addiu $sp, $sp, 0x38 -/* AEC258 800750B8 03E00008 */ jr $ra -/* AEC25C 800750BC 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_800750C0.s b/asm/non_matchings/code/z_kankyo/func_800750C0.s deleted file mode 100644 index 6093ab05e7..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_800750C0.s +++ /dev/null @@ -1,215 +0,0 @@ -.late_rodata -glabel D_8013C7F8 - .float 0.1 - -glabel D_8013C7FC - .float 2.9 - -.text -glabel func_800750C0 -/* AEC260 800750C0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* AEC264 800750C4 3C010001 */ lui $at, 1 -/* AEC268 800750C8 AFBF001C */ sw $ra, 0x1c($sp) -/* AEC26C 800750CC AFA40020 */ sw $a0, 0x20($sp) -/* AEC270 800750D0 00811021 */ addu $v0, $a0, $at -/* AEC274 800750D4 904E0B03 */ lbu $t6, 0xb03($v0) -/* AEC278 800750D8 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016 -/* AEC27C 800750DC 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290 -/* AEC280 800750E0 11C000A6 */ beqz $t6, .L8007537C -/* AEC284 800750E4 00000000 */ nop -/* AEC288 800750E8 90640000 */ lbu $a0, ($v1) -/* AEC28C 800750EC 24010001 */ li $at, 1 -/* AEC290 800750F0 10800008 */ beqz $a0, .L80075114 -/* AEC294 800750F4 00000000 */ nop -/* AEC298 800750F8 1081005E */ beq $a0, $at, .L80075274 -/* AEC29C 800750FC 3C088016 */ lui $t0, %hi(D_8015FD7C) -/* AEC2A0 80075100 24050002 */ li $a1, 2 -/* AEC2A4 80075104 5085007E */ beql $a0, $a1, .L80075300 -/* AEC2A8 80075108 84440AB0 */ lh $a0, 0xab0($v0) -/* AEC2AC 8007510C 1000009B */ b .L8007537C -/* AEC2B0 80075110 00000000 */ nop -.L80075114: -/* AEC2B4 80075114 0C03F66B */ jal Rand_ZeroOne -/* AEC2B8 80075118 00000000 */ nop -/* AEC2BC 8007511C 3C018014 */ lui $at, %hi(D_8013C7F8) -/* AEC2C0 80075120 C424C7F8 */ lwc1 $f4, %lo(D_8013C7F8)($at) -/* AEC2C4 80075124 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016 -/* AEC2C8 80075128 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290 -/* AEC2CC 8007512C 4604003C */ c.lt.s $f0, $f4 -/* AEC2D0 80075130 3C014248 */ li $at, 0x42480000 # 0.000000 -/* AEC2D4 80075134 45000006 */ bc1f .L80075150 -/* AEC2D8 80075138 00000000 */ nop -/* AEC2DC 8007513C C4660008 */ lwc1 $f6, 8($v1) -/* AEC2E0 80075140 44814000 */ mtc1 $at, $f8 -/* AEC2E4 80075144 00000000 */ nop -/* AEC2E8 80075148 46083280 */ add.s $f10, $f6, $f8 -/* AEC2EC 8007514C E46A0008 */ swc1 $f10, 8($v1) -.L80075150: -/* AEC2F0 80075150 0C03F66B */ jal Rand_ZeroOne -/* AEC2F4 80075154 00000000 */ nop -/* AEC2F8 80075158 3C038016 */ lui $v1, %hi(D_8015FD70) -/* AEC2FC 8007515C 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290 -/* AEC300 80075160 C4700008 */ lwc1 $f16, 8($v1) -/* AEC304 80075164 3C0143FA */ li $at, 0x43FA0000 # 0.000000 -/* AEC308 80075168 44812000 */ mtc1 $at, $f4 -/* AEC30C 8007516C 46008480 */ add.s $f18, $f16, $f0 -/* AEC310 80075170 240400C8 */ li $a0, 200 -/* AEC314 80075174 240F00FF */ li $t7, 255 -/* AEC318 80075178 E4720008 */ swc1 $f18, 8($v1) -/* AEC31C 8007517C C4660008 */ lwc1 $f6, 8($v1) -/* AEC320 80075180 4606203C */ c.lt.s $f4, $f6 -/* AEC324 80075184 00000000 */ nop -/* AEC328 80075188 45000038 */ bc1f .L8007526C -/* AEC32C 8007518C 00000000 */ nop -/* AEC330 80075190 44804000 */ mtc1 $zero, $f8 -/* AEC334 80075194 A0640001 */ sb $a0, 1($v1) -/* AEC338 80075198 A0640002 */ sb $a0, 2($v1) -/* AEC33C 8007519C A06F0003 */ sb $t7, 3($v1) -/* AEC340 800751A0 A0640004 */ sb $a0, 4($v1) -/* AEC344 800751A4 0C03F66B */ jal Rand_ZeroOne -/* AEC348 800751A8 E4680008 */ swc1 $f8, 8($v1) -/* AEC34C 800751AC 3C018014 */ lui $at, %hi(D_8013C7FC) -/* AEC350 800751B0 C42AC7FC */ lwc1 $f10, %lo(D_8013C7FC)($at) -/* AEC354 800751B4 24050001 */ li $a1, 1 -/* AEC358 800751B8 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AEC35C 800751BC 460A0402 */ mul.s $f16, $f0, $f10 -/* AEC360 800751C0 8FA40020 */ lw $a0, 0x20($sp) -/* AEC364 800751C4 4458F800 */ cfc1 $t8, $31 -/* AEC368 800751C8 44C5F800 */ ctc1 $a1, $31 -/* AEC36C 800751CC 00000000 */ nop -/* AEC370 800751D0 460084A4 */ cvt.w.s $f18, $f16 -/* AEC374 800751D4 4445F800 */ cfc1 $a1, $31 -/* AEC378 800751D8 00000000 */ nop -/* AEC37C 800751DC 30A50078 */ andi $a1, $a1, 0x78 -/* AEC380 800751E0 50A00013 */ beql $a1, $zero, .L80075230 -/* AEC384 800751E4 44059000 */ mfc1 $a1, $f18 -/* AEC388 800751E8 44819000 */ mtc1 $at, $f18 -/* AEC38C 800751EC 24050001 */ li $a1, 1 -/* AEC390 800751F0 46128481 */ sub.s $f18, $f16, $f18 -/* AEC394 800751F4 44C5F800 */ ctc1 $a1, $31 -/* AEC398 800751F8 00000000 */ nop -/* AEC39C 800751FC 460094A4 */ cvt.w.s $f18, $f18 -/* AEC3A0 80075200 4445F800 */ cfc1 $a1, $31 -/* AEC3A4 80075204 00000000 */ nop -/* AEC3A8 80075208 30A50078 */ andi $a1, $a1, 0x78 -/* AEC3AC 8007520C 14A00005 */ bnez $a1, .L80075224 -/* AEC3B0 80075210 00000000 */ nop -/* AEC3B4 80075214 44059000 */ mfc1 $a1, $f18 -/* AEC3B8 80075218 3C018000 */ lui $at, 0x8000 -/* AEC3BC 8007521C 10000007 */ b .L8007523C -/* AEC3C0 80075220 00A12825 */ or $a1, $a1, $at -.L80075224: -/* AEC3C4 80075224 10000005 */ b .L8007523C -/* AEC3C8 80075228 2405FFFF */ li $a1, -1 -/* AEC3CC 8007522C 44059000 */ mfc1 $a1, $f18 -.L80075230: -/* AEC3D0 80075230 00000000 */ nop -/* AEC3D4 80075234 04A0FFFB */ bltz $a1, .L80075224 -/* AEC3D8 80075238 00000000 */ nop -.L8007523C: -/* AEC3DC 8007523C 44D8F800 */ ctc1 $t8, $31 -/* AEC3E0 80075240 24A50001 */ addiu $a1, $a1, 1 -/* AEC3E4 80075244 0C01D4F1 */ jal func_800753C4 -/* AEC3E8 80075248 30A500FF */ andi $a1, $a1, 0xff -/* AEC3EC 8007524C 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016 -/* AEC3F0 80075250 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290 -/* AEC3F4 80075254 90790000 */ lbu $t9, ($v1) -/* AEC3F8 80075258 3C088016 */ lui $t0, %hi(D_8015FD7C) # $t0, 0x8016 -/* AEC3FC 8007525C 2508FD7C */ addiu $t0, %lo(D_8015FD7C) # addiu $t0, $t0, -0x284 -/* AEC400 80075260 27290001 */ addiu $t1, $t9, 1 -/* AEC404 80075264 A5000000 */ sh $zero, ($t0) -/* AEC408 80075268 A0690000 */ sb $t1, ($v1) -.L8007526C: -/* AEC40C 8007526C 10000043 */ b .L8007537C -/* AEC410 80075270 00000000 */ nop -.L80075274: -/* AEC414 80075274 240400C8 */ li $a0, 200 -/* AEC418 80075278 240A00FF */ li $t2, 255 -/* AEC41C 8007527C A0640001 */ sb $a0, 1($v1) -/* AEC420 80075280 A0640002 */ sb $a0, 2($v1) -/* AEC424 80075284 A06A0003 */ sb $t2, 3($v1) -/* AEC428 80075288 844B0AB0 */ lh $t3, 0xab0($v0) -/* AEC42C 8007528C 844D0AB2 */ lh $t5, 0xab2($v0) -/* AEC430 80075290 844F0AB4 */ lh $t7, 0xab4($v0) -/* AEC434 80075294 256C0050 */ addiu $t4, $t3, 0x50 -/* AEC438 80075298 25AE0050 */ addiu $t6, $t5, 0x50 -/* AEC43C 8007529C 25F80064 */ addiu $t8, $t7, 0x64 -/* AEC440 800752A0 2508FD7C */ addiu $t0, %lo(D_8015FD7C) -/* AEC444 800752A4 A44C0AB0 */ sh $t4, 0xab0($v0) -/* AEC448 800752A8 A44E0AB2 */ sh $t6, 0xab2($v0) -/* AEC44C 800752AC A4580AB4 */ sh $t8, 0xab4($v0) -/* AEC450 800752B0 85190000 */ lh $t9, ($t0) -/* AEC454 800752B4 906B0004 */ lbu $t3, 4($v1) -/* AEC458 800752B8 2404000F */ li $a0, 15 -/* AEC45C 800752BC 27290064 */ addiu $t1, $t9, 0x64 -/* AEC460 800752C0 A5090000 */ sh $t1, ($t0) -/* AEC464 800752C4 850A0000 */ lh $t2, ($t0) -/* AEC468 800752C8 00002825 */ move $a1, $zero -/* AEC46C 800752CC 014B082A */ slt $at, $t2, $t3 -/* AEC470 800752D0 1420002A */ bnez $at, .L8007537C -/* AEC474 800752D4 00000000 */ nop -/* AEC478 800752D8 0C03DB56 */ jal func_800F6D58 -/* AEC47C 800752DC 00003025 */ move $a2, $zero -/* AEC480 800752E0 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016 -/* AEC484 800752E4 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290 -/* AEC488 800752E8 906C0000 */ lbu $t4, ($v1) -/* AEC48C 800752EC A0600004 */ sb $zero, 4($v1) -/* AEC490 800752F0 258D0001 */ addiu $t5, $t4, 1 -/* AEC494 800752F4 10000021 */ b .L8007537C -/* AEC498 800752F8 A06D0000 */ sb $t5, ($v1) -/* AEC49C 800752FC 84440AB0 */ lh $a0, 0xab0($v0) -.L80075300: -/* AEC4A0 80075300 3C088016 */ lui $t0, %hi(D_8015FD7C) # $t0, 0x8016 -/* AEC4A4 80075304 2508FD7C */ addiu $t0, %lo(D_8015FD7C) # addiu $t0, $t0, -0x284 -/* AEC4A8 80075308 58800007 */ blezl $a0, .L80075328 -/* AEC4AC 8007530C 84440AB4 */ lh $a0, 0xab4($v0) -/* AEC4B0 80075310 844F0AB2 */ lh $t7, 0xab2($v0) -/* AEC4B4 80075314 248EFFF6 */ addiu $t6, $a0, -0xa -/* AEC4B8 80075318 A44E0AB0 */ sh $t6, 0xab0($v0) -/* AEC4BC 8007531C 25F8FFF6 */ addiu $t8, $t7, -0xa -/* AEC4C0 80075320 A4580AB2 */ sh $t8, 0xab2($v0) -/* AEC4C4 80075324 84440AB4 */ lh $a0, 0xab4($v0) -.L80075328: -/* AEC4C8 80075328 18800002 */ blez $a0, .L80075334 -/* AEC4CC 8007532C 2499FFF6 */ addiu $t9, $a0, -0xa -/* AEC4D0 80075330 A4590AB4 */ sh $t9, 0xab4($v0) -.L80075334: -/* AEC4D4 80075334 85090000 */ lh $t1, ($t0) -/* AEC4D8 80075338 906B0004 */ lbu $t3, 4($v1) -/* AEC4DC 8007533C 252AFFF6 */ addiu $t2, $t1, -0xa -/* AEC4E0 80075340 A50A0000 */ sh $t2, ($t0) -/* AEC4E4 80075344 850C0000 */ lh $t4, ($t0) -/* AEC4E8 80075348 016C082A */ slt $at, $t3, $t4 -/* AEC4EC 8007534C 1420000B */ bnez $at, .L8007537C -/* AEC4F0 80075350 00000000 */ nop -/* AEC4F4 80075354 A4400AB0 */ sh $zero, 0xab0($v0) -/* AEC4F8 80075358 A4400AB2 */ sh $zero, 0xab2($v0) -/* AEC4FC 8007535C A4400AB4 */ sh $zero, 0xab4($v0) -/* AEC500 80075360 A0600000 */ sb $zero, ($v1) -/* AEC504 80075364 904D0B03 */ lbu $t5, 0xb03($v0) -/* AEC508 80075368 8FAE0020 */ lw $t6, 0x20($sp) -/* AEC50C 8007536C 3C010001 */ lui $at, 1 -/* AEC510 80075370 14AD0002 */ bne $a1, $t5, .L8007537C -/* AEC514 80075374 002E0821 */ addu $at, $at, $t6 -/* AEC518 80075378 A0200B03 */ sb $zero, 0xb03($at) -.L8007537C: -/* AEC51C 8007537C 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016 -/* AEC520 80075380 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290 -/* AEC524 80075384 906F0000 */ lbu $t7, ($v1) -/* AEC528 80075388 3C088016 */ lui $t0, %hi(D_8015FD7C) # $t0, 0x8016 -/* AEC52C 8007538C 2508FD7C */ addiu $t0, %lo(D_8015FD7C) # addiu $t0, $t0, -0x284 -/* AEC530 80075390 51E00009 */ beql $t7, $zero, .L800753B8 -/* AEC534 80075394 8FBF001C */ lw $ra, 0x1c($sp) -/* AEC538 80075398 85180000 */ lh $t8, ($t0) -/* AEC53C 8007539C 8FA40020 */ lw $a0, 0x20($sp) -/* AEC540 800753A0 90650001 */ lbu $a1, 1($v1) -/* AEC544 800753A4 90660002 */ lbu $a2, 2($v1) -/* AEC548 800753A8 90670003 */ lbu $a3, 3($v1) -/* AEC54C 800753AC 0C01D3FD */ jal func_80074FF4 -/* AEC550 800753B0 AFB80010 */ sw $t8, 0x10($sp) -/* AEC554 800753B4 8FBF001C */ lw $ra, 0x1c($sp) -.L800753B8: -/* AEC558 800753B8 27BD0020 */ addiu $sp, $sp, 0x20 -/* AEC55C 800753BC 03E00008 */ jr $ra -/* AEC560 800753C0 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_800753C4.s b/asm/non_matchings/code/z_kankyo/func_800753C4.s deleted file mode 100644 index 2aab62e480..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_800753C4.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel func_800753C4 -/* AEC564 800753C4 AFA50004 */ sw $a1, 4($sp) -/* AEC568 800753C8 3C078016 */ lui $a3, %hi(D_8015FD10) # $a3, 0x8016 -/* AEC56C 800753CC 30A500FF */ andi $a1, $a1, 0xff -/* AEC570 800753D0 AFA40000 */ sw $a0, ($sp) -/* AEC574 800753D4 00001025 */ move $v0, $zero -/* AEC578 800753D8 24E7FD10 */ addiu $a3, %lo(D_8015FD10) # addiu $a3, $a3, -0x2f0 -/* AEC57C 800753DC 00001825 */ move $v1, $zero -/* AEC580 800753E0 240600FF */ li $a2, 255 -/* AEC584 800753E4 00037140 */ sll $t6, $v1, 5 -.L800753E8: -/* AEC588 800753E8 00EE2021 */ addu $a0, $a3, $t6 -/* AEC58C 800753EC 908F0000 */ lbu $t7, ($a0) -/* AEC590 800753F0 24630001 */ addiu $v1, $v1, 1 -/* AEC594 800753F4 00031C00 */ sll $v1, $v1, 0x10 -/* AEC598 800753F8 14CF0007 */ bne $a2, $t7, .L80075418 -/* AEC59C 800753FC 00031C03 */ sra $v1, $v1, 0x10 -/* AEC5A0 80075400 24420001 */ addiu $v0, $v0, 1 -/* AEC5A4 80075404 00021400 */ sll $v0, $v0, 0x10 -/* AEC5A8 80075408 00021403 */ sra $v0, $v0, 0x10 -/* AEC5AC 8007540C 0045082A */ slt $at, $v0, $a1 -/* AEC5B0 80075410 10200004 */ beqz $at, .L80075424 -/* AEC5B4 80075414 A0800000 */ sb $zero, ($a0) -.L80075418: -/* AEC5B8 80075418 28610003 */ slti $at, $v1, 3 -/* AEC5BC 8007541C 5420FFF2 */ bnezl $at, .L800753E8 -/* AEC5C0 80075420 00037140 */ sll $t6, $v1, 5 -.L80075424: -/* AEC5C4 80075424 03E00008 */ jr $ra -/* AEC5C8 80075428 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_8007542C.s b/asm/non_matchings/code/z_kankyo/func_8007542C.s deleted file mode 100644 index 846c6af305..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_8007542C.s +++ /dev/null @@ -1,323 +0,0 @@ -.rdata -glabel D_8013C66C - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C67C - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C68C - .asciz "../z_kankyo.c" - .balign 4 - -.late_rodata -glabel D_8013C800 - .float 5000 - -glabel D_8013C804 - .float 9500 - -glabel D_8013C808 - .float 0.017453292 - -.text -glabel func_8007542C -/* AEC5CC 8007542C 27BDFF20 */ addiu $sp, $sp, -0xe0 -/* AEC5D0 80075430 3C0F8012 */ lui $t7, %hi(D_8011FE88) # $t7, 0x8012 -/* AEC5D4 80075434 AFBF0064 */ sw $ra, 0x64($sp) -/* AEC5D8 80075438 AFB70060 */ sw $s7, 0x60($sp) -/* AEC5DC 8007543C AFB6005C */ sw $s6, 0x5c($sp) -/* AEC5E0 80075440 AFB50058 */ sw $s5, 0x58($sp) -/* AEC5E4 80075444 AFB40054 */ sw $s4, 0x54($sp) -/* AEC5E8 80075448 AFB30050 */ sw $s3, 0x50($sp) -/* AEC5EC 8007544C AFB2004C */ sw $s2, 0x4c($sp) -/* AEC5F0 80075450 AFB10048 */ sw $s1, 0x48($sp) -/* AEC5F4 80075454 AFB00044 */ sw $s0, 0x44($sp) -/* AEC5F8 80075458 F7BE0038 */ sdc1 $f30, 0x38($sp) -/* AEC5FC 8007545C F7BC0030 */ sdc1 $f28, 0x30($sp) -/* AEC600 80075460 F7BA0028 */ sdc1 $f26, 0x28($sp) -/* AEC604 80075464 F7B80020 */ sdc1 $f24, 0x20($sp) -/* AEC608 80075468 F7B60018 */ sdc1 $f22, 0x18($sp) -/* AEC60C 8007546C F7B40010 */ sdc1 $f20, 0x10($sp) -/* AEC610 80075470 AFA500E4 */ sw $a1, 0xe4($sp) -/* AEC614 80075474 25EFFE88 */ addiu $t7, %lo(D_8011FE88) # addiu $t7, $t7, -0x178 -/* AEC618 80075478 8DF90000 */ lw $t9, ($t7) -/* AEC61C 8007547C 27AE00B8 */ addiu $t6, $sp, 0xb8 -/* AEC620 80075480 8DF80004 */ lw $t8, 4($t7) -/* AEC624 80075484 ADD90000 */ sw $t9, ($t6) -/* AEC628 80075488 8DF90008 */ lw $t9, 8($t7) -/* AEC62C 8007548C 3C098012 */ lui $t1, %hi(D_8011FE94) # $t1, 0x8012 -/* AEC630 80075490 2529FE94 */ addiu $t1, %lo(D_8011FE94) # addiu $t1, $t1, -0x16c -/* AEC634 80075494 ADD80004 */ sw $t8, 4($t6) -/* AEC638 80075498 ADD90008 */ sw $t9, 8($t6) -/* AEC63C 8007549C 8D2B0000 */ lw $t3, ($t1) -/* AEC640 800754A0 27A800AC */ addiu $t0, $sp, 0xac -/* AEC644 800754A4 8D2A0004 */ lw $t2, 4($t1) -/* AEC648 800754A8 AD0B0000 */ sw $t3, ($t0) -/* AEC64C 800754AC 8D2B0008 */ lw $t3, 8($t1) -/* AEC650 800754B0 AD0A0004 */ sw $t2, 4($t0) -/* AEC654 800754B4 00809825 */ move $s3, $a0 -/* AEC658 800754B8 AD0B0008 */ sw $t3, 8($t0) -/* AEC65C 800754BC 8C850000 */ lw $a1, ($a0) -/* AEC660 800754C0 3C068014 */ lui $a2, %hi(D_8013C66C) # $a2, 0x8014 -/* AEC664 800754C4 24C6C66C */ addiu $a2, %lo(D_8013C66C) # addiu $a2, $a2, -0x3994 -/* AEC668 800754C8 27A40098 */ addiu $a0, $sp, 0x98 -/* AEC66C 800754CC 24070CB5 */ li $a3, 3253 -/* AEC670 800754D0 0C031AB1 */ jal Graph_OpenDisps -/* AEC674 800754D4 00A09025 */ move $s2, $a1 -/* AEC678 800754D8 3C018014 */ lui $at, %hi(D_8013C800) -/* AEC67C 800754DC C43EC800 */ lwc1 $f30, %lo(D_8013C800)($at) -/* AEC680 800754E0 3C018014 */ lui $at, %hi(D_8013C804) -/* AEC684 800754E4 C43CC804 */ lwc1 $f28, %lo(D_8013C804)($at) -/* AEC688 800754E8 3C0141B0 */ li $at, 0x41B00000 # 0.000000 -/* AEC68C 800754EC 4481D000 */ mtc1 $at, $f26 -/* AEC690 800754F0 3C018014 */ lui $at, %hi(D_8013C808) -/* AEC694 800754F4 C438C808 */ lwc1 $f24, %lo(D_8013C808)($at) -/* AEC698 800754F8 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AEC69C 800754FC 4481B000 */ mtc1 $at, $f22 -/* AEC6A0 80075500 0000A025 */ move $s4, $zero -/* AEC6A4 80075504 24170002 */ li $s7, 2 -.L80075508: -/* AEC6A8 80075508 3C0D8016 */ lui $t5, %hi(D_8015FD10) -/* AEC6AC 8007550C 25ADFD10 */ addiu $t5, %lo(D_8015FD10) # addiu $t5, $t5, -0x2f0 -/* AEC6B0 80075510 00146140 */ sll $t4, $s4, 5 -/* AEC6B4 80075514 018D8021 */ addu $s0, $t4, $t5 -/* AEC6B8 80075518 92030000 */ lbu $v1, ($s0) -/* AEC6BC 8007551C 24010001 */ li $at, 1 -/* AEC6C0 80075520 50600008 */ beql $v1, $zero, .L80075544 -/* AEC6C4 80075524 C66E00E0 */ lwc1 $f14, 0xe0($s3) -/* AEC6C8 80075528 50610047 */ beql $v1, $at, .L80075648 -/* AEC6CC 8007552C 920C001F */ lbu $t4, 0x1f($s0) -/* AEC6D0 80075530 5077004F */ beql $v1, $s7, .L80075670 -/* AEC6D4 80075534 9202001E */ lbu $v0, 0x1e($s0) -/* AEC6D8 80075538 10000055 */ b .L80075690 -/* AEC6DC 8007553C 00000000 */ nop -/* AEC6E0 80075540 C66E00E0 */ lwc1 $f14, 0xe0($s3) -.L80075544: -/* AEC6E4 80075544 C66400EC */ lwc1 $f4, 0xec($s3) -/* AEC6E8 80075548 C66600F4 */ lwc1 $f6, 0xf4($s3) -/* AEC6EC 8007554C C66800E8 */ lwc1 $f8, 0xe8($s3) -/* AEC6F0 80075550 460E2081 */ sub.s $f2, $f4, $f14 -/* AEC6F4 80075554 46083301 */ sub.s $f12, $f6, $f8 -/* AEC6F8 80075558 46021282 */ mul.s $f10, $f2, $f2 -/* AEC6FC 8007555C 00000000 */ nop -/* AEC700 80075560 460C6402 */ mul.s $f16, $f12, $f12 -/* AEC704 80075564 46105000 */ add.s $f0, $f10, $f16 -/* AEC708 80075568 46000004 */ sqrt.s $f0, $f0 -/* AEC70C 8007556C 46001483 */ div.s $f18, $f2, $f0 -/* AEC710 80075570 46006503 */ div.s $f20, $f12, $f0 -/* AEC714 80075574 461C9102 */ mul.s $f4, $f18, $f28 -/* AEC718 80075578 46047180 */ add.s $f6, $f14, $f4 -/* AEC71C 8007557C 0C03F66B */ jal Rand_ZeroOne -/* AEC720 80075580 E6060010 */ swc1 $f6, 0x10($s0) -/* AEC724 80075584 3C01447A */ li $at, 0x447A0000 # 0.000000 -/* AEC728 80075588 44814000 */ mtc1 $at, $f8 -/* AEC72C 8007558C 3C01457A */ li $at, 0x457A0000 # 0.000000 -/* AEC730 80075590 44818000 */ mtc1 $at, $f16 -/* AEC734 80075594 46080282 */ mul.s $f10, $f0, $f8 -/* AEC738 80075598 46105480 */ add.s $f18, $f10, $f16 -/* AEC73C 8007559C 461CA182 */ mul.s $f6, $f20, $f28 -/* AEC740 800755A0 E6120014 */ swc1 $f18, 0x14($s0) -/* AEC744 800755A4 C66400E8 */ lwc1 $f4, 0xe8($s3) -/* AEC748 800755A8 46062200 */ add.s $f8, $f4, $f6 -/* AEC74C 800755AC 0C03F66B */ jal Rand_ZeroOne -/* AEC750 800755B0 E6080018 */ swc1 $f8, 0x18($s0) -/* AEC754 800755B4 46160281 */ sub.s $f10, $f0, $f22 -/* AEC758 800755B8 44809000 */ mtc1 $zero, $f18 -/* AEC75C 800755BC 461E5402 */ mul.s $f16, $f10, $f30 -/* AEC760 800755C0 E6120008 */ swc1 $f18, 8($s0) -/* AEC764 800755C4 0C03F66B */ jal Rand_ZeroOne -/* AEC768 800755C8 E6100004 */ swc1 $f16, 4($s0) -/* AEC76C 800755CC 46160101 */ sub.s $f4, $f0, $f22 -/* AEC770 800755D0 A200001E */ sb $zero, 0x1e($s0) -/* AEC774 800755D4 461E2182 */ mul.s $f6, $f4, $f30 -/* AEC778 800755D8 0C03F66B */ jal Rand_ZeroOne -/* AEC77C 800755DC E606000C */ swc1 $f6, 0xc($s0) -/* AEC780 800755E0 46160201 */ sub.s $f8, $f0, $f22 -/* AEC784 800755E4 3C014220 */ li $at, 0x42200000 # 0.000000 -/* AEC788 800755E8 44815000 */ mtc1 $at, $f10 -/* AEC78C 800755EC 00000000 */ nop -/* AEC790 800755F0 460A4402 */ mul.s $f16, $f8, $f10 -/* AEC794 800755F4 4600848D */ trunc.w.s $f18, $f16 -/* AEC798 800755F8 440F9000 */ mfc1 $t7, $f18 -/* AEC79C 800755FC 0C03F66B */ jal Rand_ZeroOne -/* AEC7A0 80075600 A20F001C */ sb $t7, 0x1c($s0) -/* AEC7A4 80075604 46160101 */ sub.s $f4, $f0, $f22 -/* AEC7A8 80075608 3C014220 */ li $at, 0x42200000 # 0.000000 -/* AEC7AC 8007560C 44813000 */ mtc1 $at, $f6 -/* AEC7B0 80075610 920A0000 */ lbu $t2, ($s0) -/* AEC7B4 80075614 00144080 */ sll $t0, $s4, 2 -/* AEC7B8 80075618 46062202 */ mul.s $f8, $f4, $f6 -/* AEC7BC 8007561C 01144023 */ subu $t0, $t0, $s4 -/* AEC7C0 80075620 25090003 */ addiu $t1, $t0, 3 -/* AEC7C4 80075624 254B0001 */ addiu $t3, $t2, 1 -/* AEC7C8 80075628 A209001F */ sb $t1, 0x1f($s0) -/* AEC7CC 8007562C A20B0000 */ sb $t3, ($s0) -/* AEC7D0 80075630 316300FF */ andi $v1, $t3, 0xff -/* AEC7D4 80075634 4600428D */ trunc.w.s $f10, $f8 -/* AEC7D8 80075638 44195000 */ mfc1 $t9, $f10 -/* AEC7DC 8007563C 10000014 */ b .L80075690 -/* AEC7E0 80075640 A219001D */ sb $t9, 0x1d($s0) -/* AEC7E4 80075644 920C001F */ lbu $t4, 0x1f($s0) -.L80075648: -/* AEC7E8 80075648 258DFFFF */ addiu $t5, $t4, -1 -/* AEC7EC 8007564C 31AE00FF */ andi $t6, $t5, 0xff -/* AEC7F0 80075650 1DC00004 */ bgtz $t6, .L80075664 -/* AEC7F4 80075654 A20D001F */ sb $t5, 0x1f($s0) -/* AEC7F8 80075658 920F0000 */ lbu $t7, ($s0) -/* AEC7FC 8007565C 25F80001 */ addiu $t8, $t7, 1 -/* AEC800 80075660 A2180000 */ sb $t8, ($s0) -.L80075664: -/* AEC804 80075664 1000000A */ b .L80075690 -/* AEC808 80075668 92030000 */ lbu $v1, ($s0) -/* AEC80C 8007566C 9202001E */ lbu $v0, 0x1e($s0) -.L80075670: -/* AEC810 80075670 240800FF */ li $t0, 255 -/* AEC814 80075674 28410007 */ slti $at, $v0, 7 -/* AEC818 80075678 10200003 */ beqz $at, .L80075688 -/* AEC81C 8007567C 24590001 */ addiu $t9, $v0, 1 -/* AEC820 80075680 10000002 */ b .L8007568C -/* AEC824 80075684 A219001E */ sb $t9, 0x1e($s0) -.L80075688: -/* AEC828 80075688 A2080000 */ sb $t0, ($s0) -.L8007568C: -/* AEC82C 8007568C 92030000 */ lbu $v1, ($s0) -.L80075690: -/* AEC830 80075690 16E30069 */ bne $s7, $v1, .L80075838 -/* AEC834 80075694 00003825 */ move $a3, $zero -/* AEC838 80075698 C6100004 */ lwc1 $f16, 4($s0) -/* AEC83C 8007569C C6120010 */ lwc1 $f18, 0x10($s0) -/* AEC840 800756A0 C608000C */ lwc1 $f8, 0xc($s0) -/* AEC844 800756A4 C60A0018 */ lwc1 $f10, 0x18($s0) -/* AEC848 800756A8 46128300 */ add.s $f12, $f16, $f18 -/* AEC84C 800756AC C6040008 */ lwc1 $f4, 8($s0) -/* AEC850 800756B0 C6060014 */ lwc1 $f6, 0x14($s0) -/* AEC854 800756B4 460A4400 */ add.s $f16, $f8, $f10 -/* AEC858 800756B8 3C150100 */ lui $s5, 0x100 -/* AEC85C 800756BC 3C160403 */ lui $s6, %hi(gEffLightningDL) # $s6, 0x403 -/* AEC860 800756C0 26D6CF30 */ addiu $s6, %lo(gEffLightningDL) # addiu $s6, $s6, -0x30d0 -/* AEC864 800756C4 44068000 */ mfc1 $a2, $f16 -/* AEC868 800756C8 26B50000 */ addiu $s5, $s5, 0 -/* AEC86C 800756CC 0C034261 */ jal Matrix_Translate -/* AEC870 800756D0 46062380 */ add.s $f14, $f4, $f6 -/* AEC874 800756D4 8209001C */ lb $t1, 0x1c($s0) -/* AEC878 800756D8 24050001 */ li $a1, 1 -/* AEC87C 800756DC 44899000 */ mtc1 $t1, $f18 -/* AEC880 800756E0 00000000 */ nop -/* AEC884 800756E4 46809120 */ cvt.s.w $f4, $f18 -/* AEC888 800756E8 46182302 */ mul.s $f12, $f4, $f24 -/* AEC88C 800756EC 0C0342DC */ jal Matrix_RotateX -/* AEC890 800756F0 00000000 */ nop -/* AEC894 800756F4 820A001D */ lb $t2, 0x1d($s0) -/* AEC898 800756F8 24050001 */ li $a1, 1 -/* AEC89C 800756FC 448A3000 */ mtc1 $t2, $f6 -/* AEC8A0 80075700 00000000 */ nop -/* AEC8A4 80075704 46803220 */ cvt.s.w $f8, $f6 -/* AEC8A8 80075708 46184302 */ mul.s $f12, $f8, $f24 -/* AEC8AC 8007570C 0C0343B5 */ jal Matrix_RotateZ -/* AEC8B0 80075710 00000000 */ nop -/* AEC8B4 80075714 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AEC8B8 80075718 44817000 */ mtc1 $at, $f14 -/* AEC8BC 8007571C 4406D000 */ mfc1 $a2, $f26 -/* AEC8C0 80075720 4600D306 */ mov.s $f12, $f26 -/* AEC8C4 80075724 0C0342A3 */ jal Matrix_Scale -/* AEC8C8 80075728 24070001 */ li $a3, 1 -/* AEC8CC 8007572C 8E4202D0 */ lw $v0, 0x2d0($s2) -/* AEC8D0 80075730 3C0CFA00 */ lui $t4, 0xfa00 -/* AEC8D4 80075734 240DFF80 */ li $t5, -128 -/* AEC8D8 80075738 244B0008 */ addiu $t3, $v0, 8 -/* AEC8DC 8007573C AE4B02D0 */ sw $t3, 0x2d0($s2) -/* AEC8E0 80075740 AC4C0000 */ sw $t4, ($v0) -/* AEC8E4 80075744 AC4D0004 */ sw $t5, 4($v0) -/* AEC8E8 80075748 8E4202D0 */ lw $v0, 0x2d0($s2) -/* AEC8EC 8007574C 3C1800FF */ lui $t8, (0x00FFFF80 >> 16) # lui $t8, 0xff -/* AEC8F0 80075750 3718FF80 */ ori $t8, (0x00FFFF80 & 0xFFFF) # ori $t8, $t8, 0xff80 -/* AEC8F4 80075754 244E0008 */ addiu $t6, $v0, 8 -/* AEC8F8 80075758 AE4E02D0 */ sw $t6, 0x2d0($s2) -/* AEC8FC 8007575C 3C0FFB00 */ lui $t7, 0xfb00 -/* AEC900 80075760 AC4F0000 */ sw $t7, ($v0) -/* AEC904 80075764 AC580004 */ sw $t8, 4($v0) -/* AEC908 80075768 8E4202D0 */ lw $v0, 0x2d0($s2) -/* AEC90C 8007576C 3C08DA38 */ lui $t0, (0xDA380003 >> 16) # lui $t0, 0xda38 -/* AEC910 80075770 35080003 */ ori $t0, (0xDA380003 & 0xFFFF) # ori $t0, $t0, 3 -/* AEC914 80075774 24590008 */ addiu $t9, $v0, 8 -/* AEC918 80075778 AE5902D0 */ sw $t9, 0x2d0($s2) -/* AEC91C 8007577C 3C058014 */ lui $a1, %hi(D_8013C67C) # $a1, 0x8014 -/* AEC920 80075780 AC480000 */ sw $t0, ($v0) -/* AEC924 80075784 8E640000 */ lw $a0, ($s3) -/* AEC928 80075788 24A5C67C */ addiu $a1, %lo(D_8013C67C) # addiu $a1, $a1, -0x3984 -/* AEC92C 8007578C 24060D05 */ li $a2, 3333 -/* AEC930 80075790 0C0346A2 */ jal Matrix_NewMtx -/* AEC934 80075794 00408825 */ move $s1, $v0 -/* AEC938 80075798 AE220004 */ sw $v0, 4($s1) -/* AEC93C 8007579C 8E4202D0 */ lw $v0, 0x2d0($s2) -/* AEC940 800757A0 3C0ADB06 */ lui $t2, (0xDB060020 >> 16) # lui $t2, 0xdb06 -/* AEC944 800757A4 354A0020 */ ori $t2, (0xDB060020 & 0xFFFF) # ori $t2, $t2, 0x20 -/* AEC948 800757A8 24490008 */ addiu $t1, $v0, 8 -/* AEC94C 800757AC AE4902D0 */ sw $t1, 0x2d0($s2) -/* AEC950 800757B0 AC4A0000 */ sw $t2, ($v0) -/* AEC954 800757B4 920B001E */ lbu $t3, 0x1e($s0) -/* AEC958 800757B8 3C048012 */ lui $a0, %hi(D_8011FEA0) -/* AEC95C 800757BC 3C198016 */ lui $t9, %hi(gSegments) -/* AEC960 800757C0 000B6080 */ sll $t4, $t3, 2 -/* AEC964 800757C4 008C2021 */ addu $a0, $a0, $t4 -/* AEC968 800757C8 8C84FEA0 */ lw $a0, %lo(D_8011FEA0)($a0) -/* AEC96C 800757CC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* AEC970 800757D0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* AEC974 800757D4 00047100 */ sll $t6, $a0, 4 -/* AEC978 800757D8 000E7F02 */ srl $t7, $t6, 0x1c -/* AEC97C 800757DC 000FC080 */ sll $t8, $t7, 2 -/* AEC980 800757E0 0338C821 */ addu $t9, $t9, $t8 -/* AEC984 800757E4 8F396FA8 */ lw $t9, %lo(gSegments)($t9) -/* AEC988 800757E8 00816824 */ and $t5, $a0, $at -/* AEC98C 800757EC 3C018000 */ lui $at, 0x8000 -/* AEC990 800757F0 01B94021 */ addu $t0, $t5, $t9 -/* AEC994 800757F4 01014821 */ addu $t1, $t0, $at -/* AEC998 800757F8 AC490004 */ sw $t1, 4($v0) -/* AEC99C 800757FC 0C025314 */ jal func_80094C50 -/* AEC9A0 80075800 8E640000 */ lw $a0, ($s3) -/* AEC9A4 80075804 8E4202D0 */ lw $v0, 0x2d0($s2) -/* AEC9A8 80075808 3C0BDA38 */ lui $t3, (0xDA380001 >> 16) # lui $t3, 0xda38 -/* AEC9AC 8007580C 356B0001 */ ori $t3, (0xDA380001 & 0xFFFF) # ori $t3, $t3, 1 -/* AEC9B0 80075810 244A0008 */ addiu $t2, $v0, 8 -/* AEC9B4 80075814 AE4A02D0 */ sw $t2, 0x2d0($s2) -/* AEC9B8 80075818 AC550004 */ sw $s5, 4($v0) -/* AEC9BC 8007581C AC4B0000 */ sw $t3, ($v0) -/* AEC9C0 80075820 8E4202D0 */ lw $v0, 0x2d0($s2) -/* AEC9C4 80075824 3C0EDE00 */ lui $t6, 0xde00 -/* AEC9C8 80075828 244C0008 */ addiu $t4, $v0, 8 -/* AEC9CC 8007582C AE4C02D0 */ sw $t4, 0x2d0($s2) -/* AEC9D0 80075830 AC560004 */ sw $s6, 4($v0) -/* AEC9D4 80075834 AC4E0000 */ sw $t6, ($v0) -.L80075838: -/* AEC9D8 80075838 26940001 */ addiu $s4, $s4, 1 -/* AEC9DC 8007583C 0014A400 */ sll $s4, $s4, 0x10 -/* AEC9E0 80075840 0014A403 */ sra $s4, $s4, 0x10 -/* AEC9E4 80075844 2A810003 */ slti $at, $s4, 3 -/* AEC9E8 80075848 1420FF2F */ bnez $at, .L80075508 -/* AEC9EC 8007584C 00000000 */ nop -/* AEC9F0 80075850 3C068014 */ lui $a2, %hi(D_8013C68C) # $a2, 0x8014 -/* AEC9F4 80075854 24C6C68C */ addiu $a2, %lo(D_8013C68C) # addiu $a2, $a2, -0x3974 -/* AEC9F8 80075858 27A40098 */ addiu $a0, $sp, 0x98 -/* AEC9FC 8007585C 8E650000 */ lw $a1, ($s3) -/* AECA00 80075860 0C031AD5 */ jal Graph_CloseDisps -/* AECA04 80075864 24070D19 */ li $a3, 3353 -/* AECA08 80075868 8FBF0064 */ lw $ra, 0x64($sp) -/* AECA0C 8007586C D7B40010 */ ldc1 $f20, 0x10($sp) -/* AECA10 80075870 D7B60018 */ ldc1 $f22, 0x18($sp) -/* AECA14 80075874 D7B80020 */ ldc1 $f24, 0x20($sp) -/* AECA18 80075878 D7BA0028 */ ldc1 $f26, 0x28($sp) -/* AECA1C 8007587C D7BC0030 */ ldc1 $f28, 0x30($sp) -/* AECA20 80075880 D7BE0038 */ ldc1 $f30, 0x38($sp) -/* AECA24 80075884 8FB00044 */ lw $s0, 0x44($sp) -/* AECA28 80075888 8FB10048 */ lw $s1, 0x48($sp) -/* AECA2C 8007588C 8FB2004C */ lw $s2, 0x4c($sp) -/* AECA30 80075890 8FB30050 */ lw $s3, 0x50($sp) -/* AECA34 80075894 8FB40054 */ lw $s4, 0x54($sp) -/* AECA38 80075898 8FB50058 */ lw $s5, 0x58($sp) -/* AECA3C 8007589C 8FB6005C */ lw $s6, 0x5c($sp) -/* AECA40 800758A0 8FB70060 */ lw $s7, 0x60($sp) -/* AECA44 800758A4 03E00008 */ jr $ra -/* AECA48 800758A8 27BD00E0 */ addiu $sp, $sp, 0xe0 - diff --git a/asm/non_matchings/code/z_kankyo/func_800758AC.s b/asm/non_matchings/code/z_kankyo/func_800758AC.s deleted file mode 100644 index 734c32d4ba..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_800758AC.s +++ /dev/null @@ -1,214 +0,0 @@ -.rdata -glabel D_8013C69C - .asciz "\n\n\nBGM設定game_play->sound_info.BGM=[%d] old_bgm=[%d]\n\n" - # EUC-JP: 設定 | Configuration - .balign 4 - -glabel D_8013C6D4 - .asciz "\n-----------------\n" - .balign 4 - -glabel D_8013C6E8 - .asciz "\n 強制BGM=[%d]" - # EUC-JP: 強制BGM | Forced BGM - .balign 4 - -glabel D_8013C6FC - .asciz "\n BGM=[%d]" - # EUC-JP: BGM - .balign 4 - -glabel D_8013C710 - .asciz "\n エンブ=[%d]" - # EUC-JP: エンブ | Emblem? - .balign 4 - -glabel D_8013C724 - .asciz "\n status=[%d]" - .balign 4 - -.text -glabel func_800758AC -/* AECA4C 800758AC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* AECA50 800758B0 3C010001 */ lui $at, 1 -/* AECA54 800758B4 AFBF0014 */ sw $ra, 0x14($sp) -/* AECA58 800758B8 AFA40020 */ sw $a0, 0x20($sp) -/* AECA5C 800758BC 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016 -/* AECA60 800758C0 00240821 */ addu $at, $at, $a0 -/* AECA64 800758C4 240E00FF */ li $t6, 255 -/* AECA68 800758C8 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0 -/* AECA6C 800758CC A02E0B04 */ sb $t6, 0xb04($at) -/* AECA70 800758D0 8D020000 */ lw $v0, ($t0) -/* AECA74 800758D4 240104DE */ li $at, 1246 -/* AECA78 800758D8 10410003 */ beq $v0, $at, .L800758E8 -/* AECA7C 800758DC 240105E0 */ li $at, 1504 -/* AECA80 800758E0 54410007 */ bnel $v0, $at, .L80075900 -/* AECA84 800758E4 9503140E */ lhu $v1, 0x140e($t0) -.L800758E8: -/* AECA88 800758E8 0C03DBED */ jal func_800F6FB4 -/* AECA8C 800758EC 24040004 */ li $a0, 4 -/* AECA90 800758F0 3C038016 */ lui $v1, %hi(gSaveContext+0x140e) # $v1, 0x8016 -/* AECA94 800758F4 10000071 */ b .L80075ABC -/* AECA98 800758F8 9463FA6E */ lhu $v1, %lo(gSaveContext+0x140e)($v1) -/* AECA9C 800758FC 9503140E */ lhu $v1, 0x140e($t0) -.L80075900: -/* AECAA0 80075900 8FB80020 */ lw $t8, 0x20($sp) -/* AECAA4 80075904 5060000C */ beql $v1, $zero, .L80075938 -/* AECAA8 80075908 930407A4 */ lbu $a0, 0x7a4($t8) -/* AECAAC 8007590C 0C01DD80 */ jal func_80077600 -/* AECAB0 80075910 00000000 */ nop -/* AECAB4 80075914 14400003 */ bnez $v0, .L80075924 -/* AECAB8 80075918 3C028016 */ lui $v0, %hi(gSaveContext+0x140e) # $v0, 0x8016 -/* AECABC 8007591C 0C03E803 */ jal Audio_QueueSeqCmd -/* AECAC0 80075920 9444FA6E */ lhu $a0, %lo(gSaveContext+0x140e)($v0) -.L80075924: -/* AECAC4 80075924 3C018016 */ lui $at, %hi(gSaveContext+0x140e) # $at, 0x8016 -/* AECAC8 80075928 A420FA6E */ sh $zero, %lo(gSaveContext+0x140e)($at) -/* AECACC 8007592C 10000063 */ b .L80075ABC -/* AECAD0 80075930 00001825 */ move $v1, $zero -/* AECAD4 80075934 930407A4 */ lbu $a0, 0x7a4($t8) -.L80075938: -/* AECAD8 80075938 2401007F */ li $at, 127 -/* AECADC 8007593C 8FA90020 */ lw $t1, 0x20($sp) -/* AECAE0 80075940 1481000D */ bne $a0, $at, .L80075978 -/* AECAE4 80075944 00803825 */ move $a3, $a0 -/* AECAE8 80075948 930507A5 */ lbu $a1, 0x7a5($t8) -/* AECAEC 8007594C 24010013 */ li $at, 19 -/* AECAF0 80075950 50A10079 */ beql $a1, $at, .L80075B38 -/* AECAF4 80075954 8FBF0014 */ lw $ra, 0x14($sp) -/* AECAF8 80075958 911913E1 */ lbu $t9, 0x13e1($t0) -/* AECAFC 8007595C 10B90057 */ beq $a1, $t9, .L80075ABC -/* AECB00 80075960 00000000 */ nop -/* AECB04 80075964 0C03DBED */ jal func_800F6FB4 -/* AECB08 80075968 30A400FF */ andi $a0, $a1, 0xff -/* AECB0C 8007596C 3C038016 */ lui $v1, %hi(gSaveContext+0x140e) # $v1, 0x8016 -/* AECB10 80075970 10000052 */ b .L80075ABC -/* AECB14 80075974 9463FA6E */ lhu $v1, %lo(gSaveContext+0x140e)($v1) -.L80075978: -/* AECB18 80075978 912507A5 */ lbu $a1, 0x7a5($t1) -/* AECB1C 8007597C 24010013 */ li $at, 19 -/* AECB20 80075980 14A10011 */ bne $a1, $at, .L800759C8 -/* AECB24 80075984 00A03025 */ move $a2, $a1 -/* AECB28 80075988 3C048014 */ lui $a0, %hi(D_8013C69C) # $a0, 0x8014 -/* AECB2C 8007598C 2484C69C */ addiu $a0, %lo(D_8013C69C) # addiu $a0, $a0, -0x3964 -/* AECB30 80075990 910613E0 */ lbu $a2, 0x13e0($t0) -/* AECB34 80075994 0C00084C */ jal osSyncPrintf -/* AECB38 80075998 00E02825 */ move $a1, $a3 -/* AECB3C 8007599C 8FAA0020 */ lw $t2, 0x20($sp) -/* AECB40 800759A0 3C0B8016 */ lui $t3, %hi(gSaveContext+0x13e0) # $t3, 0x8016 -/* AECB44 800759A4 916BFA40 */ lbu $t3, %lo(gSaveContext+0x13e0)($t3) -/* AECB48 800759A8 914407A4 */ lbu $a0, 0x7a4($t2) -/* AECB4C 800759AC 108B0003 */ beq $a0, $t3, .L800759BC -/* AECB50 800759B0 00000000 */ nop -/* AECB54 800759B4 0C03D554 */ jal func_800F5550 -/* AECB58 800759B8 00000000 */ nop -.L800759BC: -/* AECB5C 800759BC 3C038016 */ lui $v1, %hi(gSaveContext+0x140e) # $v1, 0x8016 -/* AECB60 800759C0 1000003E */ b .L80075ABC -/* AECB64 800759C4 9463FA6E */ lhu $v1, %lo(gSaveContext+0x140e)($v1) -.L800759C8: -/* AECB68 800759C8 9502000C */ lhu $v0, 0xc($t0) -/* AECB6C 800759CC 28414AAB */ slti $at, $v0, 0x4aab -/* AECB70 800759D0 14200012 */ bnez $at, .L80075A1C -/* AECB74 800759D4 3401B71D */ li $at, 46877 -/* AECB78 800759D8 0041082A */ slt $at, $v0, $at -/* AECB7C 800759DC 50200010 */ beql $at, $zero, .L80075A20 -/* AECB80 800759E0 910F13E1 */ lbu $t7, 0x13e1($t0) -/* AECB84 800759E4 910C13E0 */ lbu $t4, 0x13e0($t0) -/* AECB88 800759E8 50EC0006 */ beql $a3, $t4, .L80075A04 -/* AECB8C 800759EC 8FAE0020 */ lw $t6, 0x20($sp) -/* AECB90 800759F0 0C03D554 */ jal func_800F5550 -/* AECB94 800759F4 00000000 */ nop -/* AECB98 800759F8 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016 -/* AECB9C 800759FC 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0 -/* AECBA0 80075A00 8FAE0020 */ lw $t6, 0x20($sp) -.L80075A04: -/* AECBA4 80075A04 3C010001 */ lui $at, 1 -/* AECBA8 80075A08 240D0001 */ li $t5, 1 -/* AECBAC 80075A0C 002E0821 */ addu $at, $at, $t6 -/* AECBB0 80075A10 A02D0B04 */ sb $t5, 0xb04($at) -/* AECBB4 80075A14 10000029 */ b .L80075ABC -/* AECBB8 80075A18 9503140E */ lhu $v1, 0x140e($t0) -.L80075A1C: -/* AECBBC 80075A1C 910F13E1 */ lbu $t7, 0x13e1($t0) -.L80075A20: -/* AECBC0 80075A20 50CF0008 */ beql $a2, $t7, .L80075A44 -/* AECBC4 80075A24 3401B71D */ li $at, 46877 -/* AECBC8 80075A28 0C03DBED */ jal func_800F6FB4 -/* AECBCC 80075A2C 30A400FF */ andi $a0, $a1, 0xff -/* AECBD0 80075A30 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016 -/* AECBD4 80075A34 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016 -/* AECBD8 80075A38 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0 -/* AECBDC 80075A3C 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0) -/* AECBE0 80075A40 3401B71D */ li $at, 46877 -.L80075A44: -/* AECBE4 80075A44 0041082A */ slt $at, $v0, $at -/* AECBE8 80075A48 1420000A */ bnez $at, .L80075A74 -/* AECBEC 80075A4C 3401CAAC */ li $at, 51884 -/* AECBF0 80075A50 0041082A */ slt $at, $v0, $at -/* AECBF4 80075A54 10200007 */ beqz $at, .L80075A74 -/* AECBF8 80075A58 8FB90020 */ lw $t9, 0x20($sp) -/* AECBFC 80075A5C 3C010001 */ lui $at, 1 -/* AECC00 80075A60 00390821 */ addu $at, $at, $t9 -/* AECC04 80075A64 24180003 */ li $t8, 3 -/* AECC08 80075A68 A0380B04 */ sb $t8, 0xb04($at) -/* AECC0C 80075A6C 10000013 */ b .L80075ABC -/* AECC10 80075A70 9503140E */ lhu $v1, 0x140e($t0) -.L80075A74: -/* AECC14 80075A74 3401CAAD */ li $at, 51885 -/* AECC18 80075A78 0041082A */ slt $at, $v0, $at -/* AECC1C 80075A7C 10200004 */ beqz $at, .L80075A90 -/* AECC20 80075A80 8FAA0020 */ lw $t2, 0x20($sp) -/* AECC24 80075A84 28414555 */ slti $at, $v0, 0x4555 -/* AECC28 80075A88 10200007 */ beqz $at, .L80075AA8 -/* AECC2C 80075A8C 8FAC0020 */ lw $t4, 0x20($sp) -.L80075A90: -/* AECC30 80075A90 3C010001 */ lui $at, 1 -/* AECC34 80075A94 002A0821 */ addu $at, $at, $t2 -/* AECC38 80075A98 24090005 */ li $t1, 5 -/* AECC3C 80075A9C A0290B04 */ sb $t1, 0xb04($at) -/* AECC40 80075AA0 10000006 */ b .L80075ABC -/* AECC44 80075AA4 9503140E */ lhu $v1, 0x140e($t0) -.L80075AA8: -/* AECC48 80075AA8 3C010001 */ lui $at, 1 -/* AECC4C 80075AAC 002C0821 */ addu $at, $at, $t4 -/* AECC50 80075AB0 240B0007 */ li $t3, 7 -/* AECC54 80075AB4 A02B0B04 */ sb $t3, 0xb04($at) -/* AECC58 80075AB8 9503140E */ lhu $v1, 0x140e($t0) -.L80075ABC: -/* AECC5C 80075ABC 3C048014 */ lui $a0, %hi(D_8013C6D4) # $a0, 0x8014 -/* AECC60 80075AC0 2484C6D4 */ addiu $a0, %lo(D_8013C6D4) # addiu $a0, $a0, -0x392c -/* AECC64 80075AC4 0C00084C */ jal osSyncPrintf -/* AECC68 80075AC8 3065FFFF */ andi $a1, $v1, 0xffff -/* AECC6C 80075ACC 3C028016 */ lui $v0, %hi(gSaveContext+0x140e) # $v0, 0x8016 -/* AECC70 80075AD0 3C048014 */ lui $a0, %hi(D_8013C6E8) # $a0, 0x8014 -/* AECC74 80075AD4 2484C6E8 */ addiu $a0, %lo(D_8013C6E8) # addiu $a0, $a0, -0x3918 -/* AECC78 80075AD8 0C00084C */ jal osSyncPrintf -/* AECC7C 80075ADC 9445FA6E */ lhu $a1, %lo(gSaveContext+0x140e)($v0) -/* AECC80 80075AE0 8FAD0020 */ lw $t5, 0x20($sp) -/* AECC84 80075AE4 3C048014 */ lui $a0, %hi(D_8013C6FC) # $a0, 0x8014 -/* AECC88 80075AE8 2484C6FC */ addiu $a0, %lo(D_8013C6FC) # addiu $a0, $a0, -0x3904 -/* AECC8C 80075AEC 0C00084C */ jal osSyncPrintf -/* AECC90 80075AF0 91A507A4 */ lbu $a1, 0x7a4($t5) -/* AECC94 80075AF4 8FAE0020 */ lw $t6, 0x20($sp) -/* AECC98 80075AF8 3C048014 */ lui $a0, %hi(D_8013C710) # $a0, 0x8014 -/* AECC9C 80075AFC 2484C710 */ addiu $a0, %lo(D_8013C710) # addiu $a0, $a0, -0x38f0 -/* AECCA0 80075B00 0C00084C */ jal osSyncPrintf -/* AECCA4 80075B04 91C507A5 */ lbu $a1, 0x7a5($t6) -/* AECCA8 80075B08 8FA20020 */ lw $v0, 0x20($sp) -/* AECCAC 80075B0C 3C010001 */ lui $at, 1 -/* AECCB0 80075B10 3C048014 */ lui $a0, %hi(D_8013C724) # $a0, 0x8014 -/* AECCB4 80075B14 00411021 */ addu $v0, $v0, $at -/* AECCB8 80075B18 90450B04 */ lbu $a1, 0xb04($v0) -/* AECCBC 80075B1C AFA20018 */ sw $v0, 0x18($sp) -/* AECCC0 80075B20 0C00084C */ jal osSyncPrintf -/* AECCC4 80075B24 2484C724 */ addiu $a0, %lo(D_8013C724) # addiu $a0, $a0, -0x38dc -/* AECCC8 80075B28 8FA20018 */ lw $v0, 0x18($sp) -/* AECCCC 80075B2C 0C03D9B0 */ jal Audio_SetEnvReverb -/* AECCD0 80075B30 80441CC0 */ lb $a0, 0x1cc0($v0) -/* AECCD4 80075B34 8FBF0014 */ lw $ra, 0x14($sp) -.L80075B38: -/* AECCD8 80075B38 27BD0020 */ addiu $sp, $sp, 0x20 -/* AECCDC 80075B3C 03E00008 */ jr $ra -/* AECCE0 80075B40 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_80075B44.s b/asm/non_matchings/code/z_kankyo/func_80075B44.s deleted file mode 100644 index 61ae2c47bc..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80075B44.s +++ /dev/null @@ -1,240 +0,0 @@ -.rdata -glabel D_8013C738 - .asciz "\n\n\nNa_StartMorinigBgm\n\n" - .balign 4 - -.late_rodata -glabel jtbl_8013C80C - .word L80075B84 - .word L80075BD8 - .word L80075C30 - .word L80075C6C - .word L80075CB4 - .word L80075CE0 - .word L80075D30 - .word L80075DE4 - .word L80075E34 - -.text -glabel func_80075B44 -/* AECCE4 80075B44 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* AECCE8 80075B48 AFB00014 */ sw $s0, 0x14($sp) -/* AECCEC 80075B4C 3C010001 */ lui $at, 1 -/* AECCF0 80075B50 AFBF001C */ sw $ra, 0x1c($sp) -/* AECCF4 80075B54 AFB10018 */ sw $s1, 0x18($sp) -/* AECCF8 80075B58 00818021 */ addu $s0, $a0, $at -/* AECCFC 80075B5C 92020B04 */ lbu $v0, 0xb04($s0) -/* AECD00 80075B60 00808825 */ move $s1, $a0 -/* AECD04 80075B64 2C410009 */ sltiu $at, $v0, 9 -/* AECD08 80075B68 102000BA */ beqz $at, .L80075E54 -/* AECD0C 80075B6C 00027080 */ sll $t6, $v0, 2 -/* AECD10 80075B70 3C018014 */ lui $at, %hi(jtbl_8013C80C) -/* AECD14 80075B74 002E0821 */ addu $at, $at, $t6 -/* AECD18 80075B78 8C2EC80C */ lw $t6, %lo(jtbl_8013C80C)($at) -/* AECD1C 80075B7C 01C00008 */ jr $t6 -/* AECD20 80075B80 00000000 */ nop -glabel L80075B84 -/* AECD24 80075B84 24040056 */ li $a0, 86 -/* AECD28 80075B88 24050001 */ li $a1, 1 -/* AECD2C 80075B8C 0C03DB56 */ jal func_800F6D58 -/* AECD30 80075B90 00003025 */ move $a2, $zero -/* AECD34 80075B94 920F0B12 */ lbu $t7, 0xb12($s0) -/* AECD38 80075B98 55E0000A */ bnezl $t7, .L80075BC4 -/* AECD3C 80075B9C 92190B04 */ lbu $t9, 0xb04($s0) -/* AECD40 80075BA0 92180B16 */ lbu $t8, 0xb16($s0) -/* AECD44 80075BA4 3C048014 */ lui $a0, %hi(D_8013C738) # $a0, 0x8014 -/* AECD48 80075BA8 57000006 */ bnezl $t8, .L80075BC4 -/* AECD4C 80075BAC 92190B04 */ lbu $t9, 0xb04($s0) -/* AECD50 80075BB0 0C00084C */ jal osSyncPrintf -/* AECD54 80075BB4 2484C738 */ addiu $a0, %lo(D_8013C738) # addiu $a0, $a0, -0x38c8 -/* AECD58 80075BB8 0C03D544 */ jal func_800F5510 -/* AECD5C 80075BBC 922407A4 */ lbu $a0, 0x7a4($s1) -/* AECD60 80075BC0 92190B04 */ lbu $t9, 0xb04($s0) -.L80075BC4: -/* AECD64 80075BC4 3C010001 */ lui $at, 1 -/* AECD68 80075BC8 00310821 */ addu $at, $at, $s1 -/* AECD6C 80075BCC 27280001 */ addiu $t0, $t9, 1 -/* AECD70 80075BD0 100000A0 */ b .L80075E54 -/* AECD74 80075BD4 A0280B04 */ sb $t0, 0xb04($at) -glabel L80075BD8 -/* AECD78 80075BD8 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* AECD7C 80075BDC 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* AECD80 80075BE0 9469000C */ lhu $t1, 0xc($v1) -/* AECD84 80075BE4 3401B71D */ li $at, 46877 -/* AECD88 80075BE8 0121082A */ slt $at, $t1, $at -/* AECD8C 80075BEC 5420009A */ bnezl $at, .L80075E58 -/* AECD90 80075BF0 8FBF001C */ lw $ra, 0x1c($sp) -/* AECD94 80075BF4 920A0B12 */ lbu $t2, 0xb12($s0) -/* AECD98 80075BF8 55400009 */ bnezl $t2, .L80075C20 -/* AECD9C 80075BFC 3C010001 */ lui $at, 1 -/* AECDA0 80075C00 920B0B16 */ lbu $t3, 0xb16($s0) -/* AECDA4 80075C04 3C0410F0 */ lui $a0, (0x10F000FF >> 16) # lui $a0, 0x10f0 -/* AECDA8 80075C08 55600005 */ bnezl $t3, .L80075C20 -/* AECDAC 80075C0C 3C010001 */ lui $at, 1 -/* AECDB0 80075C10 0C03E803 */ jal Audio_QueueSeqCmd -/* AECDB4 80075C14 348400FF */ ori $a0, (0x10F000FF & 0xFFFF) # ori $a0, $a0, 0xff -/* AECDB8 80075C18 92020B04 */ lbu $v0, 0xb04($s0) -/* AECDBC 80075C1C 3C010001 */ lui $at, 1 -.L80075C20: -/* AECDC0 80075C20 00310821 */ addu $at, $at, $s1 -/* AECDC4 80075C24 244C0001 */ addiu $t4, $v0, 1 -/* AECDC8 80075C28 1000008A */ b .L80075E54 -/* AECDCC 80075C2C A02C0B04 */ sb $t4, 0xb04($at) -glabel L80075C30 -/* AECDD0 80075C30 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* AECDD4 80075C34 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* AECDD8 80075C38 946D000C */ lhu $t5, 0xc($v1) -/* AECDDC 80075C3C 3401C001 */ li $at, 49153 -/* AECDE0 80075C40 01A1082A */ slt $at, $t5, $at -/* AECDE4 80075C44 54200084 */ bnezl $at, .L80075E58 -/* AECDE8 80075C48 8FBF001C */ lw $ra, 0x1c($sp) -/* AECDEC 80075C4C 0C01E233 */ jal func_800788CC -/* AECDF0 80075C50 240428AE */ li $a0, 10414 -/* AECDF4 80075C54 920E0B04 */ lbu $t6, 0xb04($s0) -/* AECDF8 80075C58 3C010001 */ lui $at, 1 -/* AECDFC 80075C5C 00310821 */ addu $at, $at, $s1 -/* AECE00 80075C60 25CF0001 */ addiu $t7, $t6, 1 -/* AECE04 80075C64 1000007B */ b .L80075E54 -/* AECE08 80075C68 A02F0B04 */ sb $t7, 0xb04($at) -glabel L80075C6C -/* AECE0C 80075C6C 92180B12 */ lbu $t8, 0xb12($s0) -/* AECE10 80075C70 5700000C */ bnezl $t8, .L80075CA4 -/* AECE14 80075C74 3C010001 */ lui $at, 1 -/* AECE18 80075C78 92190B16 */ lbu $t9, 0xb16($s0) -/* AECE1C 80075C7C 57200009 */ bnezl $t9, .L80075CA4 -/* AECE20 80075C80 3C010001 */ lui $at, 1 -/* AECE24 80075C84 0C03DBED */ jal func_800F6FB4 -/* AECE28 80075C88 922407A5 */ lbu $a0, 0x7a5($s1) -/* AECE2C 80075C8C 24040001 */ li $a0, 1 -/* AECE30 80075C90 24050001 */ li $a1, 1 -/* AECE34 80075C94 0C03DB56 */ jal func_800F6D58 -/* AECE38 80075C98 24060001 */ li $a2, 1 -/* AECE3C 80075C9C 92020B04 */ lbu $v0, 0xb04($s0) -/* AECE40 80075CA0 3C010001 */ lui $at, 1 -.L80075CA4: -/* AECE44 80075CA4 00310821 */ addu $at, $at, $s1 -/* AECE48 80075CA8 24480001 */ addiu $t0, $v0, 1 -/* AECE4C 80075CAC 10000069 */ b .L80075E54 -/* AECE50 80075CB0 A0280B04 */ sb $t0, 0xb04($at) -glabel L80075CB4 -/* AECE54 80075CB4 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* AECE58 80075CB8 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* AECE5C 80075CBC 9469000C */ lhu $t1, 0xc($v1) -/* AECE60 80075CC0 3401CAAC */ li $at, 51884 -/* AECE64 80075CC4 244A0001 */ addiu $t2, $v0, 1 -/* AECE68 80075CC8 0121082A */ slt $at, $t1, $at -/* AECE6C 80075CCC 14200061 */ bnez $at, .L80075E54 -/* AECE70 80075CD0 3C010001 */ lui $at, 1 -/* AECE74 80075CD4 00310821 */ addu $at, $at, $s1 -/* AECE78 80075CD8 1000005E */ b .L80075E54 -/* AECE7C 80075CDC A02A0B04 */ sb $t2, 0xb04($at) -glabel L80075CE0 -/* AECE80 80075CE0 24040001 */ li $a0, 1 -/* AECE84 80075CE4 24050001 */ li $a1, 1 -/* AECE88 80075CE8 0C03DB56 */ jal func_800F6D58 -/* AECE8C 80075CEC 00003025 */ move $a2, $zero -/* AECE90 80075CF0 920B0B12 */ lbu $t3, 0xb12($s0) -/* AECE94 80075CF4 55600009 */ bnezl $t3, .L80075D1C -/* AECE98 80075CF8 920D0B04 */ lbu $t5, 0xb04($s0) -/* AECE9C 80075CFC 920C0B16 */ lbu $t4, 0xb16($s0) -/* AECEA0 80075D00 24040024 */ li $a0, 36 -/* AECEA4 80075D04 24050001 */ li $a1, 1 -/* AECEA8 80075D08 55800004 */ bnezl $t4, .L80075D1C -/* AECEAC 80075D0C 920D0B04 */ lbu $t5, 0xb04($s0) -/* AECEB0 80075D10 0C03DB56 */ jal func_800F6D58 -/* AECEB4 80075D14 24060001 */ li $a2, 1 -/* AECEB8 80075D18 920D0B04 */ lbu $t5, 0xb04($s0) -.L80075D1C: -/* AECEBC 80075D1C 3C010001 */ lui $at, 1 -/* AECEC0 80075D20 00310821 */ addu $at, $at, $s1 -/* AECEC4 80075D24 25AE0001 */ addiu $t6, $t5, 1 -/* AECEC8 80075D28 1000004A */ b .L80075E54 -/* AECECC 80075D2C A02E0B04 */ sb $t6, 0xb04($at) -glabel L80075D30 -/* AECED0 80075D30 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* AECED4 80075D34 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* AECED8 80075D38 9462000C */ lhu $v0, 0xc($v1) -/* AECEDC 80075D3C 3401CAAC */ li $at, 51884 -/* AECEE0 80075D40 0041082A */ slt $at, $v0, $at -/* AECEE4 80075D44 10200043 */ beqz $at, .L80075E54 -/* AECEE8 80075D48 28414556 */ slti $at, $v0, 0x4556 -/* AECEEC 80075D4C 14200041 */ bnez $at, .L80075E54 -/* AECEF0 80075D50 24090001 */ li $t1, 1 -/* AECEF4 80075D54 8C6F0014 */ lw $t7, 0x14($v1) -/* AECEF8 80075D58 8C790018 */ lw $t9, 0x18($v1) -/* AECEFC 80075D5C A069141C */ sb $t1, 0x141c($v1) -/* AECF00 80075D60 25F80001 */ addiu $t8, $t7, 1 -/* AECF04 80075D64 27280001 */ addiu $t0, $t9, 1 -/* AECF08 80075D68 AC780014 */ sw $t8, 0x14($v1) -/* AECF0C 80075D6C AC680018 */ sw $t0, 0x18($v1) -/* AECF10 80075D70 0C01E221 */ jal func_80078884 -/* AECF14 80075D74 24042813 */ li $a0, 10259 -/* AECF18 80075D78 02202025 */ move $a0, $s1 -/* AECF1C 80075D7C 24050021 */ li $a1, 33 -/* AECF20 80075D80 0C021A79 */ jal Inventory_ReplaceItem -/* AECF24 80075D84 24060022 */ li $a2, 34 -/* AECF28 80075D88 14400006 */ bnez $v0, .L80075DA4 -/* AECF2C 80075D8C 02202025 */ move $a0, $s1 -/* AECF30 80075D90 2405002D */ li $a1, 45 -/* AECF34 80075D94 0C021A79 */ jal Inventory_ReplaceItem -/* AECF38 80075D98 2406002E */ li $a2, 46 -/* AECF3C 80075D9C 5040000C */ beql $v0, $zero, .L80075DD0 -/* AECF40 80075DA0 920B0B04 */ lbu $t3, 0xb04($s0) -.L80075DA4: -/* AECF44 80075DA4 922A1D6C */ lbu $t2, 0x1d6c($s1) -/* AECF48 80075DA8 55400009 */ bnezl $t2, .L80075DD0 -/* AECF4C 80075DAC 920B0B04 */ lbu $t3, 0xb04($s0) -/* AECF50 80075DB0 0C023A62 */ jal Player_InCsMode -/* AECF54 80075DB4 02202025 */ move $a0, $s1 -/* AECF58 80075DB8 14400004 */ bnez $v0, .L80075DCC -/* AECF5C 80075DBC 02202025 */ move $a0, $s1 -/* AECF60 80075DC0 24053066 */ li $a1, 12390 -/* AECF64 80075DC4 0C042DA0 */ jal func_8010B680 -/* AECF68 80075DC8 00003025 */ move $a2, $zero -.L80075DCC: -/* AECF6C 80075DCC 920B0B04 */ lbu $t3, 0xb04($s0) -.L80075DD0: -/* AECF70 80075DD0 3C010001 */ lui $at, 1 -/* AECF74 80075DD4 00310821 */ addu $at, $at, $s1 -/* AECF78 80075DD8 256C0001 */ addiu $t4, $t3, 1 -/* AECF7C 80075DDC 1000001D */ b .L80075E54 -/* AECF80 80075DE0 A02C0B04 */ sb $t4, 0xb04($at) -glabel L80075DE4 -/* AECF84 80075DE4 24040024 */ li $a0, 36 -/* AECF88 80075DE8 24050001 */ li $a1, 1 -/* AECF8C 80075DEC 0C03DB56 */ jal func_800F6D58 -/* AECF90 80075DF0 00003025 */ move $a2, $zero -/* AECF94 80075DF4 920D0B12 */ lbu $t5, 0xb12($s0) -/* AECF98 80075DF8 55A00009 */ bnezl $t5, .L80075E20 -/* AECF9C 80075DFC 920F0B04 */ lbu $t7, 0xb04($s0) -/* AECFA0 80075E00 920E0B16 */ lbu $t6, 0xb16($s0) -/* AECFA4 80075E04 24040056 */ li $a0, 86 -/* AECFA8 80075E08 24050001 */ li $a1, 1 -/* AECFAC 80075E0C 55C00004 */ bnezl $t6, .L80075E20 -/* AECFB0 80075E10 920F0B04 */ lbu $t7, 0xb04($s0) -/* AECFB4 80075E14 0C03DB56 */ jal func_800F6D58 -/* AECFB8 80075E18 24060001 */ li $a2, 1 -/* AECFBC 80075E1C 920F0B04 */ lbu $t7, 0xb04($s0) -.L80075E20: -/* AECFC0 80075E20 3C010001 */ lui $at, 1 -/* AECFC4 80075E24 00310821 */ addu $at, $at, $s1 -/* AECFC8 80075E28 25F80001 */ addiu $t8, $t7, 1 -/* AECFCC 80075E2C 10000009 */ b .L80075E54 -/* AECFD0 80075E30 A0380B04 */ sb $t8, 0xb04($at) -glabel L80075E34 -/* AECFD4 80075E34 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* AECFD8 80075E38 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* AECFDC 80075E3C 9479000C */ lhu $t9, 0xc($v1) -/* AECFE0 80075E40 2B214AAC */ slti $at, $t9, 0x4aac -/* AECFE4 80075E44 14200003 */ bnez $at, .L80075E54 -/* AECFE8 80075E48 3C010001 */ lui $at, 1 -/* AECFEC 80075E4C 00310821 */ addu $at, $at, $s1 -/* AECFF0 80075E50 A0200B04 */ sb $zero, 0xb04($at) -.L80075E54: -/* AECFF4 80075E54 8FBF001C */ lw $ra, 0x1c($sp) -.L80075E58: -/* AECFF8 80075E58 8FB00014 */ lw $s0, 0x14($sp) -/* AECFFC 80075E5C 8FB10018 */ lw $s1, 0x18($sp) -/* AED000 80075E60 03E00008 */ jr $ra -/* AED004 80075E64 27BD0020 */ addiu $sp, $sp, 0x20 - diff --git a/asm/non_matchings/code/z_kankyo/func_80075E68.s b/asm/non_matchings/code/z_kankyo/func_80075E68.s deleted file mode 100644 index 121fd0aad8..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80075E68.s +++ /dev/null @@ -1,46 +0,0 @@ -glabel func_80075E68 -/* AED008 80075E68 3C0E8016 */ lui $t6, %hi(D_8015FCF0) # $t6, 0x8016 -/* AED00C 80075E6C 91CEFCF0 */ lbu $t6, %lo(D_8015FCF0)($t6) -/* AED010 80075E70 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* AED014 80075E74 AFBF0034 */ sw $ra, 0x34($sp) -/* AED018 80075E78 11C00022 */ beqz $t6, .L80075F04 -/* AED01C 80075E7C 3C028016 */ lui $v0, %hi(D_8015FCF8) # $v0, 0x8016 -/* AED020 80075E80 2442FCF8 */ addiu $v0, %lo(D_8015FCF8) # addiu $v0, $v0, -0x308 -/* AED024 80075E84 C4440000 */ lwc1 $f4, ($v0) -/* AED028 80075E88 C4460004 */ lwc1 $f6, 4($v0) -/* AED02C 80075E8C C4480008 */ lwc1 $f8, 8($v0) -/* AED030 80075E90 27AF003C */ addiu $t7, $sp, 0x3c -/* AED034 80075E94 E7A4003C */ swc1 $f4, 0x3c($sp) -/* AED038 80075E98 E7A60040 */ swc1 $f6, 0x40($sp) -/* AED03C 80075E9C E7A80044 */ swc1 $f8, 0x44($sp) -/* AED040 80075EA0 8DF90000 */ lw $t9, ($t7) -/* AED044 80075EA4 8C870000 */ lw $a3, ($a0) -/* AED048 80075EA8 3C010001 */ lui $at, (0x00010A24 >> 16) # lui $at, 1 -/* AED04C 80075EAC AFB90010 */ sw $t9, 0x10($sp) -/* AED050 80075EB0 8DF80004 */ lw $t8, 4($t7) -/* AED054 80075EB4 34210A24 */ ori $at, (0x00010A24 & 0xFFFF) # ori $at, $at, 0xa24 -/* AED058 80075EB8 00812821 */ addu $a1, $a0, $at -/* AED05C 80075EBC AFB80014 */ sw $t8, 0x14($sp) -/* AED060 80075EC0 8DF90008 */ lw $t9, 8($t7) -/* AED064 80075EC4 3C018016 */ lui $at, %hi(D_8015FD08) -/* AED068 80075EC8 3C088016 */ lui $t0, %hi(D_8015FD04) # $t0, 0x8016 -/* AED06C 80075ECC 3C098016 */ lui $t1, %hi(D_8015FD06) # $t1, 0x8016 -/* AED070 80075ED0 3C0A8016 */ lui $t2, %hi(D_8015FD0C) # $t2, 0x8016 -/* AED074 80075ED4 854AFD0C */ lh $t2, %lo(D_8015FD0C)($t2) -/* AED078 80075ED8 8529FD06 */ lh $t1, %lo(D_8015FD06)($t1) -/* AED07C 80075EDC 8508FD04 */ lh $t0, %lo(D_8015FD04)($t0) -/* AED080 80075EE0 C42AFD08 */ lwc1 $f10, %lo(D_8015FD08)($at) -/* AED084 80075EE4 AFA0002C */ sw $zero, 0x2c($sp) -/* AED088 80075EE8 248600B8 */ addiu $a2, $a0, 0xb8 -/* AED08C 80075EEC AFB90018 */ sw $t9, 0x18($sp) -/* AED090 80075EF0 AFAA0028 */ sw $t2, 0x28($sp) -/* AED094 80075EF4 AFA90020 */ sw $t1, 0x20($sp) -/* AED098 80075EF8 AFA8001C */ sw $t0, 0x1c($sp) -/* AED09C 80075EFC 0C01CE97 */ jal func_80073A5C -/* AED0A0 80075F00 E7AA0024 */ swc1 $f10, 0x24($sp) -.L80075F04: -/* AED0A4 80075F04 8FBF0034 */ lw $ra, 0x34($sp) -/* AED0A8 80075F08 27BD0048 */ addiu $sp, $sp, 0x48 -/* AED0AC 80075F0C 03E00008 */ jr $ra -/* AED0B0 80075F10 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_800766C4.s b/asm/non_matchings/code/z_kankyo/func_800766C4.s deleted file mode 100644 index 8e2251421d..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_800766C4.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel func_800766C4 -/* AED864 800766C4 3C010001 */ lui $at, 1 -/* AED868 800766C8 00811021 */ addu $v0, $a0, $at -/* AED86C 800766CC 90430B16 */ lbu $v1, 0xb16($v0) -/* AED870 800766D0 90450B12 */ lbu $a1, 0xb12($v0) -/* AED874 800766D4 306600FF */ andi $a2, $v1, 0xff -/* AED878 800766D8 0065082A */ slt $at, $v1, $a1 -/* AED87C 800766DC 10200003 */ beqz $at, .L800766EC -/* AED880 800766E0 00000000 */ nop -/* AED884 800766E4 10000001 */ b .L800766EC -/* AED888 800766E8 30A600FF */ andi $a2, $a1, 0xff -.L800766EC: -/* AED88C 800766EC 90450B13 */ lbu $a1, 0xb13($v0) -/* AED890 800766F0 10C5000C */ beq $a2, $a1, .L80076724 -/* AED894 800766F4 00000000 */ nop -/* AED898 800766F8 8C8E009C */ lw $t6, 0x9c($a0) -/* AED89C 800766FC 00A6082A */ slt $at, $a1, $a2 -/* AED8A0 80076700 31CF0007 */ andi $t7, $t6, 7 -/* AED8A4 80076704 15E00007 */ bnez $t7, .L80076724 -/* AED8A8 80076708 00000000 */ nop -/* AED8AC 8007670C 10200004 */ beqz $at, .L80076720 -/* AED8B0 80076710 24B9FFFE */ addiu $t9, $a1, -2 -/* AED8B4 80076714 24B80002 */ addiu $t8, $a1, 2 -/* AED8B8 80076718 03E00008 */ jr $ra -/* AED8BC 8007671C A0580B13 */ sb $t8, 0xb13($v0) - -.L80076720: -/* AED8C0 80076720 A0590B13 */ sb $t9, 0xb13($v0) -.L80076724: -/* AED8C4 80076724 03E00008 */ jr $ra -/* AED8C8 80076728 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_8007672C.s b/asm/non_matchings/code/z_kankyo/func_8007672C.s deleted file mode 100644 index 29fa3e46c5..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_8007672C.s +++ /dev/null @@ -1,146 +0,0 @@ -.rdata -glabel D_8013C750 - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C760 - .asciz "../z_kankyo.c" - .balign 4 - -.text -glabel func_8007672C -/* AED8CC 8007672C 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* AED8D0 80076730 93AE0073 */ lbu $t6, 0x73($sp) -/* AED8D4 80076734 AFB00018 */ sw $s0, 0x18($sp) -/* AED8D8 80076738 00808025 */ move $s0, $a0 -/* AED8DC 8007673C AFBF001C */ sw $ra, 0x1c($sp) -/* AED8E0 80076740 AFA50064 */ sw $a1, 0x64($sp) -/* AED8E4 80076744 AFA60068 */ sw $a2, 0x68($sp) -/* AED8E8 80076748 11C00075 */ beqz $t6, .L80076920 -/* AED8EC 8007674C AFA7006C */ sw $a3, 0x6c($sp) -/* AED8F0 80076750 3C068014 */ lui $a2, %hi(D_8013C750) # $a2, 0x8014 -/* AED8F4 80076754 24C6C750 */ addiu $a2, %lo(D_8013C750) # addiu $a2, $a2, -0x38b0 -/* AED8F8 80076758 27A4004C */ addiu $a0, $sp, 0x4c -/* AED8FC 8007675C 02002825 */ move $a1, $s0 -/* AED900 80076760 0C031AB1 */ jal Graph_OpenDisps -/* AED904 80076764 24070EFB */ li $a3, 3835 -/* AED908 80076768 93A50077 */ lbu $a1, 0x77($sp) -/* AED90C 8007676C 30AF0001 */ andi $t7, $a1, 1 -/* AED910 80076770 51E0002D */ beql $t7, $zero, .L80076828 -/* AED914 80076774 30AB0002 */ andi $t3, $a1, 2 -/* AED918 80076778 8E0402C0 */ lw $a0, 0x2c0($s0) -/* AED91C 8007677C 0C024DF0 */ jal func_800937C0 -/* AED920 80076780 AFA50024 */ sw $a1, 0x24($sp) -/* AED924 80076784 8FA50024 */ lw $a1, 0x24($sp) -/* AED928 80076788 AE0202C0 */ sw $v0, 0x2c0($s0) -/* AED92C 8007678C 24580008 */ addiu $t8, $v0, 8 -/* AED930 80076790 AE1802C0 */ sw $t8, 0x2c0($s0) -/* AED934 80076794 3C19FA00 */ lui $t9, 0xfa00 -/* AED938 80076798 AC590000 */ sw $t9, ($v0) -/* AED93C 8007679C 93AC006B */ lbu $t4, 0x6b($sp) -/* AED940 800767A0 93A90067 */ lbu $t1, 0x67($sp) -/* AED944 800767A4 93B8006F */ lbu $t8, 0x6f($sp) -/* AED948 800767A8 93AB0073 */ lbu $t3, 0x73($sp) -/* AED94C 800767AC 000C6C00 */ sll $t5, $t4, 0x10 -/* AED950 800767B0 00095600 */ sll $t2, $t1, 0x18 -/* AED954 800767B4 014D7025 */ or $t6, $t2, $t5 -/* AED958 800767B8 0018CA00 */ sll $t9, $t8, 8 -/* AED95C 800767BC 01D94025 */ or $t0, $t6, $t9 -/* AED960 800767C0 010B6025 */ or $t4, $t0, $t3 -/* AED964 800767C4 AC4C0004 */ sw $t4, 4($v0) -/* AED968 800767C8 8E0202C0 */ lw $v0, 0x2c0($s0) -/* AED96C 800767CC 3C0DE300 */ lui $t5, (0xE3001A01 >> 16) # lui $t5, 0xe300 -/* AED970 800767D0 35AD1A01 */ ori $t5, (0xE3001A01 & 0xFFFF) # ori $t5, $t5, 0x1a01 -/* AED974 800767D4 244A0008 */ addiu $t2, $v0, 8 -/* AED978 800767D8 AE0A02C0 */ sw $t2, 0x2c0($s0) -/* AED97C 800767DC 240F0030 */ li $t7, 48 -/* AED980 800767E0 AC4F0004 */ sw $t7, 4($v0) -/* AED984 800767E4 AC4D0000 */ sw $t5, ($v0) -/* AED988 800767E8 8E0202C0 */ lw $v0, 0x2c0($s0) -/* AED98C 800767EC 3C0EE300 */ lui $t6, (0xE3001801 >> 16) # lui $t6, 0xe300 -/* AED990 800767F0 35CE1801 */ ori $t6, (0xE3001801 & 0xFFFF) # ori $t6, $t6, 0x1801 -/* AED994 800767F4 24580008 */ addiu $t8, $v0, 8 -/* AED998 800767F8 AE1802C0 */ sw $t8, 0x2c0($s0) -/* AED99C 800767FC 241900C0 */ li $t9, 192 -/* AED9A0 80076800 AC590004 */ sw $t9, 4($v0) -/* AED9A4 80076804 AC4E0000 */ sw $t6, ($v0) -/* AED9A8 80076808 8E0202C0 */ lw $v0, 0x2c0($s0) -/* AED9AC 8007680C 3C08F64F */ lui $t0, (0xF64FC3BC >> 16) # lui $t0, 0xf64f -/* AED9B0 80076810 3508C3BC */ ori $t0, (0xF64FC3BC & 0xFFFF) # ori $t0, $t0, 0xc3bc -/* AED9B4 80076814 24490008 */ addiu $t1, $v0, 8 -/* AED9B8 80076818 AE0902C0 */ sw $t1, 0x2c0($s0) -/* AED9BC 8007681C AC400004 */ sw $zero, 4($v0) -/* AED9C0 80076820 AC480000 */ sw $t0, ($v0) -/* AED9C4 80076824 30AB0002 */ andi $t3, $a1, 2 -.L80076828: -/* AED9C8 80076828 11600037 */ beqz $t3, .L80076908 -/* AED9CC 8007682C 93AA0067 */ lbu $t2, 0x67($sp) -/* AED9D0 80076830 93B8006B */ lbu $t8, 0x6b($sp) -/* AED9D4 80076834 93A8006F */ lbu $t0, 0x6f($sp) -/* AED9D8 80076838 93AF0073 */ lbu $t7, 0x73($sp) -/* AED9DC 8007683C 000A6E00 */ sll $t5, $t2, 0x18 -/* AED9E0 80076840 00187400 */ sll $t6, $t8, 0x10 -/* AED9E4 80076844 01AEC825 */ or $t9, $t5, $t6 -/* AED9E8 80076848 00085A00 */ sll $t3, $t0, 8 -/* AED9EC 8007684C 032B6025 */ or $t4, $t9, $t3 -/* AED9F0 80076850 8E0402D0 */ lw $a0, 0x2d0($s0) -/* AED9F4 80076854 018FC025 */ or $t8, $t4, $t7 -/* AED9F8 80076858 0C024DF0 */ jal func_800937C0 -/* AED9FC 8007685C AFB80024 */ sw $t8, 0x24($sp) -/* AEDA00 80076860 AE0202D0 */ sw $v0, 0x2d0($s0) -/* AEDA04 80076864 244D0008 */ addiu $t5, $v0, 8 -/* AEDA08 80076868 AE0D02D0 */ sw $t5, 0x2d0($s0) -/* AEDA0C 8007686C 3C0EFA00 */ lui $t6, 0xfa00 -/* AEDA10 80076870 AC4E0000 */ sw $t6, ($v0) -/* AEDA14 80076874 8FA90024 */ lw $t1, 0x24($sp) -/* AEDA18 80076878 240100FF */ li $at, 255 -/* AEDA1C 8007687C 3C0BE200 */ lui $t3, (0xE200001C >> 16) # lui $t3, 0xe200 -/* AEDA20 80076880 AC490004 */ sw $t1, 4($v0) -/* AEDA24 80076884 93A80073 */ lbu $t0, 0x73($sp) -/* AEDA28 80076888 3C0FE300 */ lui $t7, (0xE3001A01 >> 16) # lui $t7, 0xe300 -/* AEDA2C 8007688C 356B001C */ ori $t3, (0xE200001C & 0xFFFF) # ori $t3, $t3, 0x1c -/* AEDA30 80076890 15010008 */ bne $t0, $at, .L800768B4 -/* AEDA34 80076894 35EF1A01 */ ori $t7, (0xE3001A01 & 0xFFFF) # ori $t7, $t7, 0x1a01 -/* AEDA38 80076898 8E0202D0 */ lw $v0, 0x2d0($s0) -/* AEDA3C 8007689C 3C0A0F0A */ lui $t2, (0x0F0A4000 >> 16) # lui $t2, 0xf0a -/* AEDA40 800768A0 354A4000 */ ori $t2, (0x0F0A4000 & 0xFFFF) # ori $t2, $t2, 0x4000 -/* AEDA44 800768A4 24590008 */ addiu $t9, $v0, 8 -/* AEDA48 800768A8 AE1902D0 */ sw $t9, 0x2d0($s0) -/* AEDA4C 800768AC AC4A0004 */ sw $t2, 4($v0) -/* AEDA50 800768B0 AC4B0000 */ sw $t3, ($v0) -.L800768B4: -/* AEDA54 800768B4 8E0202D0 */ lw $v0, 0x2d0($s0) -/* AEDA58 800768B8 24180030 */ li $t8, 48 -/* AEDA5C 800768BC 3C0EE300 */ lui $t6, (0xE3001801 >> 16) # lui $t6, 0xe300 -/* AEDA60 800768C0 244C0008 */ addiu $t4, $v0, 8 -/* AEDA64 800768C4 AE0C02D0 */ sw $t4, 0x2d0($s0) -/* AEDA68 800768C8 AC580004 */ sw $t8, 4($v0) -/* AEDA6C 800768CC AC4F0000 */ sw $t7, ($v0) -/* AEDA70 800768D0 8E0202D0 */ lw $v0, 0x2d0($s0) -/* AEDA74 800768D4 35CE1801 */ ori $t6, (0xE3001801 & 0xFFFF) # ori $t6, $t6, 0x1801 -/* AEDA78 800768D8 240900C0 */ li $t1, 192 -/* AEDA7C 800768DC 244D0008 */ addiu $t5, $v0, 8 -/* AEDA80 800768E0 AE0D02D0 */ sw $t5, 0x2d0($s0) -/* AEDA84 800768E4 AC490004 */ sw $t1, 4($v0) -/* AEDA88 800768E8 AC4E0000 */ sw $t6, ($v0) -/* AEDA8C 800768EC 8E0202D0 */ lw $v0, 0x2d0($s0) -/* AEDA90 800768F0 3C19F64F */ lui $t9, (0xF64FC3BC >> 16) # lui $t9, 0xf64f -/* AEDA94 800768F4 3739C3BC */ ori $t9, (0xF64FC3BC & 0xFFFF) # ori $t9, $t9, 0xc3bc -/* AEDA98 800768F8 24480008 */ addiu $t0, $v0, 8 -/* AEDA9C 800768FC AE0802D0 */ sw $t0, 0x2d0($s0) -/* AEDAA0 80076900 AC400004 */ sw $zero, 4($v0) -/* AEDAA4 80076904 AC590000 */ sw $t9, ($v0) -.L80076908: -/* AEDAA8 80076908 3C068014 */ lui $a2, %hi(D_8013C760) # $a2, 0x8014 -/* AEDAAC 8007690C 24C6C760 */ addiu $a2, %lo(D_8013C760) # addiu $a2, $a2, -0x38a0 -/* AEDAB0 80076910 27A4004C */ addiu $a0, $sp, 0x4c -/* AEDAB4 80076914 02002825 */ move $a1, $s0 -/* AEDAB8 80076918 0C031AD5 */ jal Graph_CloseDisps -/* AEDABC 8007691C 24070F17 */ li $a3, 3863 -.L80076920: -/* AEDAC0 80076920 8FBF001C */ lw $ra, 0x1c($sp) -/* AEDAC4 80076924 8FB00018 */ lw $s0, 0x18($sp) -/* AEDAC8 80076928 27BD0060 */ addiu $sp, $sp, 0x60 -/* AEDACC 8007692C 03E00008 */ jr $ra -/* AEDAD0 80076930 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_80076934.s b/asm/non_matchings/code/z_kankyo/func_80076934.s deleted file mode 100644 index 16f522e35e..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80076934.s +++ /dev/null @@ -1,742 +0,0 @@ -.rdata -glabel D_8013C770 - .asciz "../z_kankyo.c" - .balign 4 - -glabel D_8013C780 - .asciz "../z_kankyo.c" - .balign 4 - -.late_rodata -glabel D_8013C830 - .float 0.16666667 - -glabel D_8013C834 - .float 1.8333334 - -.text -glabel func_80076934 -/* AEDAD4 80076934 27BDFF48 */ addiu $sp, $sp, -0xb8 -/* AEDAD8 80076938 3C010001 */ lui $at, 1 -/* AEDADC 8007693C AFBF0034 */ sw $ra, 0x34($sp) -/* AEDAE0 80076940 AFA400B8 */ sw $a0, 0xb8($sp) -/* AEDAE4 80076944 AFA500BC */ sw $a1, 0xbc($sp) -/* AEDAE8 80076948 00816021 */ addu $t4, $a0, $at -/* AEDAEC 8007694C 91870B0B */ lbu $a3, 0xb0b($t4) -/* AEDAF0 80076950 91860B0C */ lbu $a2, 0xb0c($t4) -/* AEDAF4 80076954 30A500FF */ andi $a1, $a1, 0xff -/* AEDAF8 80076958 24010001 */ li $at, 1 -/* AEDAFC 8007695C 00E04025 */ move $t0, $a3 -/* AEDB00 80076960 10A10023 */ beq $a1, $at, .L800769F0 -/* AEDB04 80076964 00C04825 */ move $t1, $a2 -/* AEDB08 80076968 24010002 */ li $at, 2 -/* AEDB0C 8007696C 10A10027 */ beq $a1, $at, .L80076A0C -/* AEDB10 80076970 24010003 */ li $at, 3 -/* AEDB14 80076974 10A10006 */ beq $a1, $at, .L80076990 -/* AEDB18 80076978 8FAE00B8 */ lw $t6, 0xb8($sp) -/* AEDB1C 8007697C 24010004 */ li $at, 4 -/* AEDB20 80076980 10A1003A */ beq $a1, $at, .L80076A6C -/* AEDB24 80076984 8FA300B4 */ lw $v1, 0xb4($sp) -/* AEDB28 80076988 10000043 */ b .L80076A98 -/* AEDB2C 8007698C 8FA500B0 */ lw $a1, 0xb0($sp) -.L80076990: -/* AEDB30 80076990 85CF00A4 */ lh $t7, 0xa4($t6) -/* AEDB34 80076994 2401005E */ li $at, 94 -/* AEDB38 80076998 8FB900B8 */ lw $t9, 0xb8($sp) -/* AEDB3C 8007699C 15E1000B */ bne $t7, $at, .L800769CC -/* AEDB40 800769A0 24050080 */ li $a1, 128 -/* AEDB44 800769A4 81981CBC */ lb $t8, 0x1cbc($t4) -/* AEDB48 800769A8 28C10081 */ slti $at, $a2, 0x81 -/* AEDB4C 800769AC 57000008 */ bnezl $t8, .L800769D0 -/* AEDB50 800769B0 8F23009C */ lw $v1, 0x9c($t9) -/* AEDB54 800769B4 14200003 */ bnez $at, .L800769C4 -/* AEDB58 800769B8 00002825 */ move $a1, $zero -/* AEDB5C 800769BC 10000036 */ b .L80076A98 -/* AEDB60 800769C0 240300FF */ li $v1, 255 -.L800769C4: -/* AEDB64 800769C4 10000034 */ b .L80076A98 -/* AEDB68 800769C8 00061843 */ sra $v1, $a2, 1 -.L800769CC: -/* AEDB6C 800769CC 8F23009C */ lw $v1, 0x9c($t9) -.L800769D0: -/* AEDB70 800769D0 240E0080 */ li $t6, 128 -/* AEDB74 800769D4 3063007F */ andi $v1, $v1, 0x7f -/* AEDB78 800769D8 28610041 */ slti $at, $v1, 0x41 -/* AEDB7C 800769DC 14200002 */ bnez $at, .L800769E8 -/* AEDB80 800769E0 00000000 */ nop -/* AEDB84 800769E4 01C31823 */ subu $v1, $t6, $v1 -.L800769E8: -/* AEDB88 800769E8 1000002B */ b .L80076A98 -/* AEDB8C 800769EC 24630049 */ addiu $v1, $v1, 0x49 -.L800769F0: -/* AEDB90 800769F0 28E100FF */ slti $at, $a3, 0xff -/* AEDB94 800769F4 14200003 */ bnez $at, .L80076A04 -/* AEDB98 800769F8 240300FF */ li $v1, 255 -/* AEDB9C 800769FC 10000026 */ b .L80076A98 -/* AEDBA0 80076A00 240500FF */ li $a1, 255 -.L80076A04: -/* AEDBA4 80076A04 10000024 */ b .L80076A98 -/* AEDBA8 80076A08 24050080 */ li $a1, 128 -.L80076A0C: -/* AEDBAC 80076A0C 28C10081 */ slti $at, $a2, 0x81 -/* AEDBB0 80076A10 14200003 */ bnez $at, .L80076A20 -/* AEDBB4 80076A14 24050080 */ li $a1, 128 -/* AEDBB8 80076A18 1000000A */ b .L80076A44 -/* AEDBBC 80076A1C 240300FF */ li $v1, 255 -.L80076A20: -/* AEDBC0 80076A20 8FAF00B8 */ lw $t7, 0xb8($sp) -/* AEDBC4 80076A24 24180080 */ li $t8, 128 -/* AEDBC8 80076A28 8DE3009C */ lw $v1, 0x9c($t7) -/* AEDBCC 80076A2C 3063007F */ andi $v1, $v1, 0x7f -/* AEDBD0 80076A30 28610041 */ slti $at, $v1, 0x41 -/* AEDBD4 80076A34 54200003 */ bnezl $at, .L80076A44 -/* AEDBD8 80076A38 24630049 */ addiu $v1, $v1, 0x49 -/* AEDBDC 80076A3C 03031823 */ subu $v1, $t8, $v1 -/* AEDBE0 80076A40 24630049 */ addiu $v1, $v1, 0x49 -.L80076A44: -/* AEDBE4 80076A44 0068082A */ slt $at, $v1, $t0 -/* AEDBE8 80076A48 14200013 */ bnez $at, .L80076A98 -/* AEDBEC 80076A4C 240100FF */ li $at, 255 -/* AEDBF0 80076A50 10610011 */ beq $v1, $at, .L80076A98 -/* AEDBF4 80076A54 8FAE00B8 */ lw $t6, 0xb8($sp) -/* AEDBF8 80076A58 3C010001 */ lui $at, 1 -/* AEDBFC 80076A5C 002E0821 */ addu $at, $at, $t6 -/* AEDC00 80076A60 24190003 */ li $t9, 3 -/* AEDC04 80076A64 1000000C */ b .L80076A98 -/* AEDC08 80076A68 A0390B0A */ sb $t9, 0xb0a($at) -.L80076A6C: -/* AEDC0C 80076A6C 28C10081 */ slti $at, $a2, 0x81 -/* AEDC10 80076A70 14200003 */ bnez $at, .L80076A80 -/* AEDC14 80076A74 00002825 */ move $a1, $zero -/* AEDC18 80076A78 10000002 */ b .L80076A84 -/* AEDC1C 80076A7C 240300FF */ li $v1, 255 -.L80076A80: -/* AEDC20 80076A80 00061843 */ sra $v1, $a2, 1 -.L80076A84: -/* AEDC24 80076A84 15000004 */ bnez $t0, .L80076A98 -/* AEDC28 80076A88 8FAF00B8 */ lw $t7, 0xb8($sp) -/* AEDC2C 80076A8C 3C010001 */ li $at, 0x00010000 # 0.000000 -/* AEDC30 80076A90 002F0821 */ addu $at, $at, $t7 -/* AEDC34 80076A94 A0200B0A */ sb $zero, 0xb0a($at) -.L80076A98: -/* AEDC38 80076A98 01032023 */ subu $a0, $t0, $v1 -/* AEDC3C 80076A9C 04800003 */ bltz $a0, .L80076AAC -/* AEDC40 80076AA0 8FB800B8 */ lw $t8, 0xb8($sp) -/* AEDC44 80076AA4 10000002 */ b .L80076AB0 -/* AEDC48 80076AA8 00801025 */ move $v0, $a0 -.L80076AAC: -/* AEDC4C 80076AAC 00041023 */ negu $v0, $a0 -.L80076AB0: -/* AEDC50 80076AB0 28410009 */ slti $at, $v0, 9 -/* AEDC54 80076AB4 50200004 */ beql $at, $zero, .L80076AC8 -/* AEDC58 80076AB8 0068082A */ slt $at, $v1, $t0 -/* AEDC5C 80076ABC 10000007 */ b .L80076ADC -/* AEDC60 80076AC0 00604025 */ move $t0, $v1 -/* AEDC64 80076AC4 0068082A */ slt $at, $v1, $t0 -.L80076AC8: -/* AEDC68 80076AC8 50200004 */ beql $at, $zero, .L80076ADC -/* AEDC6C 80076ACC 25080009 */ addiu $t0, $t0, 9 -/* AEDC70 80076AD0 10000002 */ b .L80076ADC -/* AEDC74 80076AD4 2508FFF7 */ addiu $t0, $t0, -9 -/* AEDC78 80076AD8 25080009 */ addiu $t0, $t0, 9 -.L80076ADC: -/* AEDC7C 80076ADC 01251823 */ subu $v1, $t1, $a1 -/* AEDC80 80076AE0 04600003 */ bltz $v1, .L80076AF0 -/* AEDC84 80076AE4 00031023 */ negu $v0, $v1 -/* AEDC88 80076AE8 10000001 */ b .L80076AF0 -/* AEDC8C 80076AEC 00601025 */ move $v0, $v1 -.L80076AF0: -/* AEDC90 80076AF0 28410009 */ slti $at, $v0, 9 -/* AEDC94 80076AF4 10200003 */ beqz $at, .L80076B04 -/* AEDC98 80076AF8 3C0D8012 */ lui $t5, %hi(D_8011FEC4) -/* AEDC9C 80076AFC 10000007 */ b .L80076B1C -/* AEDCA0 80076B00 00A04825 */ move $t1, $a1 -.L80076B04: -/* AEDCA4 80076B04 00A9082A */ slt $at, $a1, $t1 -/* AEDCA8 80076B08 50200004 */ beql $at, $zero, .L80076B1C -/* AEDCAC 80076B0C 25290009 */ addiu $t1, $t1, 9 -/* AEDCB0 80076B10 10000002 */ b .L80076B1C -/* AEDCB4 80076B14 2529FFF7 */ addiu $t1, $t1, -9 -/* AEDCB8 80076B18 25290009 */ addiu $t1, $t1, 9 -.L80076B1C: -/* AEDCBC 80076B1C 3C0140C0 */ li $at, 0x40C00000 # 0.000000 -/* AEDCC0 80076B20 44818000 */ mtc1 $at, $f16 -/* AEDCC4 80076B24 3C010001 */ li $at, 0x00010000 # 0.000000 -/* AEDCC8 80076B28 00380821 */ addu $at, $at, $t8 -/* AEDCCC 80076B2C A0280B0B */ sb $t0, 0xb0b($at) -/* AEDCD0 80076B30 01097021 */ addu $t6, $t0, $t1 -/* AEDCD4 80076B34 8FB900B8 */ lw $t9, 0xb8($sp) -/* AEDCD8 80076B38 448E3000 */ mtc1 $t6, $f6 -/* AEDCDC 80076B3C 3C010001 */ li $at, 0x00010000 # 0.000000 -/* AEDCE0 80076B40 00390821 */ addu $at, $at, $t9 -/* AEDCE4 80076B44 46803220 */ cvt.s.w $f8, $f6 -/* AEDCE8 80076B48 A0290B0C */ sb $t1, 0xb0c($at) -/* AEDCEC 80076B4C 3C014400 */ li $at, 0x44000000 # 0.000000 -/* AEDCF0 80076B50 44812000 */ mtc1 $at, $f4 -/* AEDCF4 80076B54 3C013CC0 */ li $at, 0x3CC00000 # 0.000000 -/* AEDCF8 80076B58 44819000 */ mtc1 $at, $f18 -/* AEDCFC 80076B5C 46082281 */ sub.s $f10, $f4, $f8 -/* AEDD00 80076B60 3C1F8012 */ lui $ra, %hi(D_8011FED0) -/* AEDD04 80076B64 27FFFED0 */ addiu $ra, %lo(D_8011FED0) # addiu $ra, $ra, -0x130 -/* AEDD08 80076B68 25ADFEC4 */ addiu $t5, %lo(D_8011FEC4) # addiu $t5, $t5, -0x13c -/* AEDD0C 80076B6C 46125382 */ mul.s $f14, $f10, $f18 -/* AEDD10 80076B70 460E803C */ c.lt.s $f16, $f14 -/* AEDD14 80076B74 00000000 */ nop -/* AEDD18 80076B78 45020003 */ bc1fl .L80076B88 -/* AEDD1C 80076B7C 918F0A42 */ lbu $t7, 0xa42($t4) -/* AEDD20 80076B80 46008386 */ mov.s $f14, $f16 -/* AEDD24 80076B84 918F0A42 */ lbu $t7, 0xa42($t4) -.L80076B88: -/* AEDD28 80076B88 55E00006 */ bnezl $t7, .L80076BA4 -/* AEDD2C 80076B8C 91B90003 */ lbu $t9, 3($t5) -/* AEDD30 80076B90 91980AE3 */ lbu $t8, 0xae3($t4) -/* AEDD34 80076B94 240100FF */ li $at, 255 -/* AEDD38 80076B98 5301000D */ beql $t8, $at, .L80076BD0 -/* AEDD3C 80076B9C AFAC0058 */ sw $t4, 0x58($sp) -/* AEDD40 80076BA0 91B90003 */ lbu $t9, 3($t5) -.L80076BA4: -/* AEDD44 80076BA4 91AE0004 */ lbu $t6, 4($t5) -/* AEDD48 80076BA8 91AF0005 */ lbu $t7, 5($t5) -/* AEDD4C 80076BAC 93E90003 */ lbu $t1, 3($ra) -/* AEDD50 80076BB0 93EA0004 */ lbu $t2, 4($ra) -/* AEDD54 80076BB4 93EB0005 */ lbu $t3, 5($ra) -/* AEDD58 80076BB8 AFAC0058 */ sw $t4, 0x58($sp) -/* AEDD5C 80076BBC A3B900A4 */ sb $t9, 0xa4($sp) -/* AEDD60 80076BC0 A3AE00A5 */ sb $t6, 0xa5($sp) -/* AEDD64 80076BC4 100000AF */ b .L80076E84 -/* AEDD68 80076BC8 A3AF00A6 */ sb $t7, 0xa6($sp) -/* AEDD6C 80076BCC AFAC0058 */ sw $t4, 0x58($sp) -.L80076BD0: -/* AEDD70 80076BD0 3C0C8012 */ lui $t4, %hi(D_8011FDD0) -/* AEDD74 80076BD4 3C088012 */ lui $t0, %hi(D_8011FDCC) -/* AEDD78 80076BD8 9108FDCC */ lbu $t0, %lo(D_8011FDCC)($t0) -/* AEDD7C 80076BDC 918CFDD0 */ lbu $t4, %lo(D_8011FDD0)($t4) -/* AEDD80 80076BE0 15880012 */ bne $t4, $t0, .L80076C2C -/* AEDD84 80076BE4 3C0D8012 */ lui $t5, %hi(D_8011FEC4) -/* AEDD88 80076BE8 00083080 */ sll $a2, $t0, 2 -/* AEDD8C 80076BEC 25ADFEC4 */ addiu $t5, %lo(D_8011FEC4) # addiu $t5, $t5, -0x13c -/* AEDD90 80076BF0 00C83023 */ subu $a2, $a2, $t0 -/* AEDD94 80076BF4 01A61021 */ addu $v0, $t5, $a2 -/* AEDD98 80076BF8 3C1F8012 */ lui $ra, %hi(D_8011FED0) -/* AEDD9C 80076BFC 27FFFED0 */ addiu $ra, %lo(D_8011FED0) # addiu $ra, $ra, -0x130 -/* AEDDA0 80076C00 90580000 */ lbu $t8, ($v0) -/* AEDDA4 80076C04 90590001 */ lbu $t9, 1($v0) -/* AEDDA8 80076C08 904E0002 */ lbu $t6, 2($v0) -/* AEDDAC 80076C0C 03E61821 */ addu $v1, $ra, $a2 -/* AEDDB0 80076C10 90690000 */ lbu $t1, ($v1) -/* AEDDB4 80076C14 906A0001 */ lbu $t2, 1($v1) -/* AEDDB8 80076C18 906B0002 */ lbu $t3, 2($v1) -/* AEDDBC 80076C1C A3B800A4 */ sb $t8, 0xa4($sp) -/* AEDDC0 80076C20 A3B900A5 */ sb $t9, 0xa5($sp) -/* AEDDC4 80076C24 10000097 */ b .L80076E84 -/* AEDDC8 80076C28 A3AE00A6 */ sb $t6, 0xa6($sp) -.L80076C2C: -/* AEDDCC 80076C2C 3C0D8012 */ lui $t5, %hi(D_8011FEC4) -/* AEDDD0 80076C30 25ADFEC4 */ addiu $t5, %lo(D_8011FEC4) # addiu $t5, $t5, -0x13c -/* AEDDD4 80076C34 000C3880 */ sll $a3, $t4, 2 -/* AEDDD8 80076C38 00EC3823 */ subu $a3, $a3, $t4 -/* AEDDDC 80076C3C 01A72021 */ addu $a0, $t5, $a3 -/* AEDDE0 80076C40 908F0000 */ lbu $t7, ($a0) -/* AEDDE4 80076C44 3C018012 */ lui $at, %hi(D_8011FDD4) -/* AEDDE8 80076C48 C420FDD4 */ lwc1 $f0, %lo(D_8011FDD4)($at) -/* AEDDEC 80076C4C 448F9000 */ mtc1 $t7, $f18 -/* AEDDF0 80076C50 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AEDDF4 80076C54 44816000 */ mtc1 $at, $f12 -/* AEDDF8 80076C58 46809220 */ cvt.s.w $f8, $f18 -/* AEDDFC 80076C5C 00083080 */ sll $a2, $t0, 2 -/* AEDE00 80076C60 3C1F8012 */ lui $ra, %hi(D_8011FED0) -/* AEDE04 80076C64 00C83023 */ subu $a2, $a2, $t0 -/* AEDE08 80076C68 27FFFED0 */ addiu $ra, %lo(D_8011FED0) # addiu $ra, $ra, -0x130 -/* AEDE0C 80076C6C 46006081 */ sub.s $f2, $f12, $f0 -/* AEDE10 80076C70 05E10005 */ bgez $t7, .L80076C88 -/* AEDE14 80076C74 01A61021 */ addu $v0, $t5, $a2 -/* AEDE18 80076C78 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDE1C 80076C7C 44815000 */ mtc1 $at, $f10 -/* AEDE20 80076C80 00000000 */ nop -/* AEDE24 80076C84 460A4200 */ add.s $f8, $f8, $f10 -.L80076C88: -/* AEDE28 80076C88 90580000 */ lbu $t8, ($v0) -/* AEDE2C 80076C8C 46004482 */ mul.s $f18, $f8, $f0 -/* AEDE30 80076C90 44983000 */ mtc1 $t8, $f6 -/* AEDE34 80076C94 07010005 */ bgez $t8, .L80076CAC -/* AEDE38 80076C98 46803120 */ cvt.s.w $f4, $f6 -/* AEDE3C 80076C9C 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDE40 80076CA0 44815000 */ mtc1 $at, $f10 -/* AEDE44 80076CA4 00000000 */ nop -/* AEDE48 80076CA8 460A2100 */ add.s $f4, $f4, $f10 -.L80076CAC: -/* AEDE4C 80076CAC 46022202 */ mul.s $f8, $f4, $f2 -/* AEDE50 80076CB0 908F0001 */ lbu $t7, 1($a0) -/* AEDE54 80076CB4 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDE58 80076CB8 448F2000 */ mtc1 $t7, $f4 -/* AEDE5C 80076CBC 46089180 */ add.s $f6, $f18, $f8 -/* AEDE60 80076CC0 468024A0 */ cvt.s.w $f18, $f4 -/* AEDE64 80076CC4 4600328D */ trunc.w.s $f10, $f6 -/* AEDE68 80076CC8 440E5000 */ mfc1 $t6, $f10 -/* AEDE6C 80076CCC 05E10004 */ bgez $t7, .L80076CE0 -/* AEDE70 80076CD0 A3AE00A4 */ sb $t6, 0xa4($sp) -/* AEDE74 80076CD4 44814000 */ mtc1 $at, $f8 -/* AEDE78 80076CD8 00000000 */ nop -/* AEDE7C 80076CDC 46089480 */ add.s $f18, $f18, $f8 -.L80076CE0: -/* AEDE80 80076CE0 90580001 */ lbu $t8, 1($v0) -/* AEDE84 80076CE4 46009182 */ mul.s $f6, $f18, $f0 -/* AEDE88 80076CE8 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDE8C 80076CEC 44985000 */ mtc1 $t8, $f10 -/* AEDE90 80076CF0 07010004 */ bgez $t8, .L80076D04 -/* AEDE94 80076CF4 46805120 */ cvt.s.w $f4, $f10 -/* AEDE98 80076CF8 44814000 */ mtc1 $at, $f8 -/* AEDE9C 80076CFC 00000000 */ nop -/* AEDEA0 80076D00 46082100 */ add.s $f4, $f4, $f8 -.L80076D04: -/* AEDEA4 80076D04 46022482 */ mul.s $f18, $f4, $f2 -/* AEDEA8 80076D08 908F0002 */ lbu $t7, 2($a0) -/* AEDEAC 80076D0C 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDEB0 80076D10 448F2000 */ mtc1 $t7, $f4 -/* AEDEB4 80076D14 46123280 */ add.s $f10, $f6, $f18 -/* AEDEB8 80076D18 468021A0 */ cvt.s.w $f6, $f4 -/* AEDEBC 80076D1C 4600520D */ trunc.w.s $f8, $f10 -/* AEDEC0 80076D20 440E4000 */ mfc1 $t6, $f8 -/* AEDEC4 80076D24 05E10004 */ bgez $t7, .L80076D38 -/* AEDEC8 80076D28 A3AE00A5 */ sb $t6, 0xa5($sp) -/* AEDECC 80076D2C 44819000 */ mtc1 $at, $f18 -/* AEDED0 80076D30 00000000 */ nop -/* AEDED4 80076D34 46123180 */ add.s $f6, $f6, $f18 -.L80076D38: -/* AEDED8 80076D38 90580002 */ lbu $t8, 2($v0) -/* AEDEDC 80076D3C 46003282 */ mul.s $f10, $f6, $f0 -/* AEDEE0 80076D40 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDEE4 80076D44 44984000 */ mtc1 $t8, $f8 -/* AEDEE8 80076D48 07010004 */ bgez $t8, .L80076D5C -/* AEDEEC 80076D4C 46804120 */ cvt.s.w $f4, $f8 -/* AEDEF0 80076D50 44819000 */ mtc1 $at, $f18 -/* AEDEF4 80076D54 00000000 */ nop -/* AEDEF8 80076D58 46122100 */ add.s $f4, $f4, $f18 -.L80076D5C: -/* AEDEFC 80076D5C 46022182 */ mul.s $f6, $f4, $f2 -/* AEDF00 80076D60 03E72821 */ addu $a1, $ra, $a3 -/* AEDF04 80076D64 90AF0000 */ lbu $t7, ($a1) -/* AEDF08 80076D68 03E61821 */ addu $v1, $ra, $a2 -/* AEDF0C 80076D6C 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDF10 80076D70 448F2000 */ mtc1 $t7, $f4 -/* AEDF14 80076D74 46065200 */ add.s $f8, $f10, $f6 -/* AEDF18 80076D78 468022A0 */ cvt.s.w $f10, $f4 -/* AEDF1C 80076D7C 4600448D */ trunc.w.s $f18, $f8 -/* AEDF20 80076D80 440E9000 */ mfc1 $t6, $f18 -/* AEDF24 80076D84 05E10004 */ bgez $t7, .L80076D98 -/* AEDF28 80076D88 A3AE00A6 */ sb $t6, 0xa6($sp) -/* AEDF2C 80076D8C 44813000 */ mtc1 $at, $f6 -/* AEDF30 80076D90 00000000 */ nop -/* AEDF34 80076D94 46065280 */ add.s $f10, $f10, $f6 -.L80076D98: -/* AEDF38 80076D98 90780000 */ lbu $t8, ($v1) -/* AEDF3C 80076D9C 46005202 */ mul.s $f8, $f10, $f0 -/* AEDF40 80076DA0 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDF44 80076DA4 44989000 */ mtc1 $t8, $f18 -/* AEDF48 80076DA8 07010004 */ bgez $t8, .L80076DBC -/* AEDF4C 80076DAC 46809120 */ cvt.s.w $f4, $f18 -/* AEDF50 80076DB0 44813000 */ mtc1 $at, $f6 -/* AEDF54 80076DB4 00000000 */ nop -/* AEDF58 80076DB8 46062100 */ add.s $f4, $f4, $f6 -.L80076DBC: -/* AEDF5C 80076DBC 46022282 */ mul.s $f10, $f4, $f2 -/* AEDF60 80076DC0 90AE0001 */ lbu $t6, 1($a1) -/* AEDF64 80076DC4 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDF68 80076DC8 448E2000 */ mtc1 $t6, $f4 -/* AEDF6C 80076DCC 460A4480 */ add.s $f18, $f8, $f10 -/* AEDF70 80076DD0 46802220 */ cvt.s.w $f8, $f4 -/* AEDF74 80076DD4 4600918D */ trunc.w.s $f6, $f18 -/* AEDF78 80076DD8 44093000 */ mfc1 $t1, $f6 -/* AEDF7C 80076DDC 05C10004 */ bgez $t6, .L80076DF0 -/* AEDF80 80076DE0 312900FF */ andi $t1, $t1, 0xff -/* AEDF84 80076DE4 44815000 */ mtc1 $at, $f10 -/* AEDF88 80076DE8 00000000 */ nop -/* AEDF8C 80076DEC 460A4200 */ add.s $f8, $f8, $f10 -.L80076DF0: -/* AEDF90 80076DF0 906F0001 */ lbu $t7, 1($v1) -/* AEDF94 80076DF4 46004482 */ mul.s $f18, $f8, $f0 -/* AEDF98 80076DF8 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDF9C 80076DFC 448F3000 */ mtc1 $t7, $f6 -/* AEDFA0 80076E00 05E10004 */ bgez $t7, .L80076E14 -/* AEDFA4 80076E04 46803120 */ cvt.s.w $f4, $f6 -/* AEDFA8 80076E08 44815000 */ mtc1 $at, $f10 -/* AEDFAC 80076E0C 00000000 */ nop -/* AEDFB0 80076E10 460A2100 */ add.s $f4, $f4, $f10 -.L80076E14: -/* AEDFB4 80076E14 46022202 */ mul.s $f8, $f4, $f2 -/* AEDFB8 80076E18 90B90002 */ lbu $t9, 2($a1) -/* AEDFBC 80076E1C 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDFC0 80076E20 44992000 */ mtc1 $t9, $f4 -/* AEDFC4 80076E24 46089180 */ add.s $f6, $f18, $f8 -/* AEDFC8 80076E28 468024A0 */ cvt.s.w $f18, $f4 -/* AEDFCC 80076E2C 4600328D */ trunc.w.s $f10, $f6 -/* AEDFD0 80076E30 440A5000 */ mfc1 $t2, $f10 -/* AEDFD4 80076E34 07210004 */ bgez $t9, .L80076E48 -/* AEDFD8 80076E38 314A00FF */ andi $t2, $t2, 0xff -/* AEDFDC 80076E3C 44814000 */ mtc1 $at, $f8 -/* AEDFE0 80076E40 00000000 */ nop -/* AEDFE4 80076E44 46089480 */ add.s $f18, $f18, $f8 -.L80076E48: -/* AEDFE8 80076E48 906E0002 */ lbu $t6, 2($v1) -/* AEDFEC 80076E4C 46009182 */ mul.s $f6, $f18, $f0 -/* AEDFF0 80076E50 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEDFF4 80076E54 448E5000 */ mtc1 $t6, $f10 -/* AEDFF8 80076E58 05C10004 */ bgez $t6, .L80076E6C -/* AEDFFC 80076E5C 46805120 */ cvt.s.w $f4, $f10 -/* AEE000 80076E60 44814000 */ mtc1 $at, $f8 -/* AEE004 80076E64 00000000 */ nop -/* AEE008 80076E68 46082100 */ add.s $f4, $f4, $f8 -.L80076E6C: -/* AEE00C 80076E6C 46022482 */ mul.s $f18, $f4, $f2 -/* AEE010 80076E70 46123280 */ add.s $f10, $f6, $f18 -/* AEE014 80076E74 4600520D */ trunc.w.s $f8, $f10 -/* AEE018 80076E78 440B4000 */ mfc1 $t3, $f8 -/* AEE01C 80076E7C 00000000 */ nop -/* AEE020 80076E80 316B00FF */ andi $t3, $t3, 0xff -.L80076E84: -/* AEE024 80076E84 44892000 */ mtc1 $t1, $f4 -/* AEE028 80076E88 3C018014 */ lui $at, %hi(D_8013C830) -/* AEE02C 80076E8C C42CC830 */ lwc1 $f12, %lo(D_8013C830)($at) -/* AEE030 80076E90 460E8001 */ sub.s $f0, $f16, $f14 -/* AEE034 80076E94 05210005 */ bgez $t1, .L80076EAC -/* AEE038 80076E98 468021A0 */ cvt.s.w $f6, $f4 -/* AEE03C 80076E9C 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE040 80076EA0 44819000 */ mtc1 $at, $f18 -/* AEE044 80076EA4 00000000 */ nop -/* AEE048 80076EA8 46123180 */ add.s $f6, $f6, $f18 -.L80076EAC: -/* AEE04C 80076EAC 93B800A4 */ lbu $t8, 0xa4($sp) -/* AEE050 80076EB0 460E3282 */ mul.s $f10, $f6, $f14 -/* AEE054 80076EB4 44984000 */ mtc1 $t8, $f8 -/* AEE058 80076EB8 07010005 */ bgez $t8, .L80076ED0 -/* AEE05C 80076EBC 46804120 */ cvt.s.w $f4, $f8 -/* AEE060 80076EC0 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE064 80076EC4 44819000 */ mtc1 $at, $f18 -/* AEE068 80076EC8 00000000 */ nop -/* AEE06C 80076ECC 46122100 */ add.s $f4, $f4, $f18 -.L80076ED0: -/* AEE070 80076ED0 46040182 */ mul.s $f6, $f0, $f4 -/* AEE074 80076ED4 24090001 */ li $t1, 1 -/* AEE078 80076ED8 46065200 */ add.s $f8, $f10, $f6 -/* AEE07C 80076EDC 460C4482 */ mul.s $f18, $f8, $f12 -/* AEE080 80076EE0 4459F800 */ cfc1 $t9, $31 -/* AEE084 80076EE4 44C9F800 */ ctc1 $t1, $31 -/* AEE088 80076EE8 00000000 */ nop -/* AEE08C 80076EEC 46009124 */ cvt.w.s $f4, $f18 -/* AEE090 80076EF0 4449F800 */ cfc1 $t1, $31 -/* AEE094 80076EF4 00000000 */ nop -/* AEE098 80076EF8 31290078 */ andi $t1, $t1, 0x78 -/* AEE09C 80076EFC 11200012 */ beqz $t1, .L80076F48 -/* AEE0A0 80076F00 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AEE0A4 80076F04 44812000 */ mtc1 $at, $f4 -/* AEE0A8 80076F08 24090001 */ li $t1, 1 -/* AEE0AC 80076F0C 46049101 */ sub.s $f4, $f18, $f4 -/* AEE0B0 80076F10 44C9F800 */ ctc1 $t1, $31 -/* AEE0B4 80076F14 00000000 */ nop -/* AEE0B8 80076F18 46002124 */ cvt.w.s $f4, $f4 -/* AEE0BC 80076F1C 4449F800 */ cfc1 $t1, $31 -/* AEE0C0 80076F20 00000000 */ nop -/* AEE0C4 80076F24 31290078 */ andi $t1, $t1, 0x78 -/* AEE0C8 80076F28 15200005 */ bnez $t1, .L80076F40 -/* AEE0CC 80076F2C 00000000 */ nop -/* AEE0D0 80076F30 44092000 */ mfc1 $t1, $f4 -/* AEE0D4 80076F34 3C018000 */ li $at, 0x80000000 # 0.000000 -/* AEE0D8 80076F38 10000007 */ b .L80076F58 -/* AEE0DC 80076F3C 01214825 */ or $t1, $t1, $at -.L80076F40: -/* AEE0E0 80076F40 10000005 */ b .L80076F58 -/* AEE0E4 80076F44 2409FFFF */ li $t1, -1 -.L80076F48: -/* AEE0E8 80076F48 44092000 */ mfc1 $t1, $f4 -/* AEE0EC 80076F4C 00000000 */ nop -/* AEE0F0 80076F50 0520FFFB */ bltz $t1, .L80076F40 -/* AEE0F4 80076F54 00000000 */ nop -.L80076F58: -/* AEE0F8 80076F58 44D9F800 */ ctc1 $t9, $31 -/* AEE0FC 80076F5C 448A5000 */ mtc1 $t2, $f10 -/* AEE100 80076F60 312900FF */ andi $t1, $t1, 0xff -/* AEE104 80076F64 05410005 */ bgez $t2, .L80076F7C -/* AEE108 80076F68 468051A0 */ cvt.s.w $f6, $f10 -/* AEE10C 80076F6C 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE110 80076F70 44814000 */ mtc1 $at, $f8 -/* AEE114 80076F74 00000000 */ nop -/* AEE118 80076F78 46083180 */ add.s $f6, $f6, $f8 -.L80076F7C: -/* AEE11C 80076F7C 93AE00A5 */ lbu $t6, 0xa5($sp) -/* AEE120 80076F80 460E3482 */ mul.s $f18, $f6, $f14 -/* AEE124 80076F84 448E2000 */ mtc1 $t6, $f4 -/* AEE128 80076F88 05C10005 */ bgez $t6, .L80076FA0 -/* AEE12C 80076F8C 468022A0 */ cvt.s.w $f10, $f4 -/* AEE130 80076F90 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE134 80076F94 44814000 */ mtc1 $at, $f8 -/* AEE138 80076F98 00000000 */ nop -/* AEE13C 80076F9C 46085280 */ add.s $f10, $f10, $f8 -.L80076FA0: -/* AEE140 80076FA0 460A0182 */ mul.s $f6, $f0, $f10 -/* AEE144 80076FA4 240A0001 */ li $t2, 1 -/* AEE148 80076FA8 3C0E8016 */ lui $t6, %hi(D_8015FDB0) # $t6, 0x8016 -/* AEE14C 80076FAC 46069100 */ add.s $f4, $f18, $f6 -/* AEE150 80076FB0 460C2202 */ mul.s $f8, $f4, $f12 -/* AEE154 80076FB4 444FF800 */ cfc1 $t7, $31 -/* AEE158 80076FB8 44CAF800 */ ctc1 $t2, $31 -/* AEE15C 80076FBC 00000000 */ nop -/* AEE160 80076FC0 460042A4 */ cvt.w.s $f10, $f8 -/* AEE164 80076FC4 444AF800 */ cfc1 $t2, $31 -/* AEE168 80076FC8 00000000 */ nop -/* AEE16C 80076FCC 314A0078 */ andi $t2, $t2, 0x78 -/* AEE170 80076FD0 11400012 */ beqz $t2, .L8007701C -/* AEE174 80076FD4 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AEE178 80076FD8 44815000 */ mtc1 $at, $f10 -/* AEE17C 80076FDC 240A0001 */ li $t2, 1 -/* AEE180 80076FE0 460A4281 */ sub.s $f10, $f8, $f10 -/* AEE184 80076FE4 44CAF800 */ ctc1 $t2, $31 -/* AEE188 80076FE8 00000000 */ nop -/* AEE18C 80076FEC 460052A4 */ cvt.w.s $f10, $f10 -/* AEE190 80076FF0 444AF800 */ cfc1 $t2, $31 -/* AEE194 80076FF4 00000000 */ nop -/* AEE198 80076FF8 314A0078 */ andi $t2, $t2, 0x78 -/* AEE19C 80076FFC 15400005 */ bnez $t2, .L80077014 -/* AEE1A0 80077000 00000000 */ nop -/* AEE1A4 80077004 440A5000 */ mfc1 $t2, $f10 -/* AEE1A8 80077008 3C018000 */ li $at, 0x80000000 # 0.000000 -/* AEE1AC 8007700C 10000007 */ b .L8007702C -/* AEE1B0 80077010 01415025 */ or $t2, $t2, $at -.L80077014: -/* AEE1B4 80077014 10000005 */ b .L8007702C -/* AEE1B8 80077018 240AFFFF */ li $t2, -1 -.L8007701C: -/* AEE1BC 8007701C 440A5000 */ mfc1 $t2, $f10 -/* AEE1C0 80077020 00000000 */ nop -/* AEE1C4 80077024 0540FFFB */ bltz $t2, .L80077014 -/* AEE1C8 80077028 00000000 */ nop -.L8007702C: -/* AEE1CC 8007702C 44CFF800 */ ctc1 $t7, $31 -/* AEE1D0 80077030 448B9000 */ mtc1 $t3, $f18 -/* AEE1D4 80077034 314A00FF */ andi $t2, $t2, 0xff -/* AEE1D8 80077038 05610005 */ bgez $t3, .L80077050 -/* AEE1DC 8007703C 468091A0 */ cvt.s.w $f6, $f18 -/* AEE1E0 80077040 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE1E4 80077044 44812000 */ mtc1 $at, $f4 -/* AEE1E8 80077048 00000000 */ nop -/* AEE1EC 8007704C 46043180 */ add.s $f6, $f6, $f4 -.L80077050: -/* AEE1F0 80077050 93B800A6 */ lbu $t8, 0xa6($sp) -/* AEE1F4 80077054 460E3202 */ mul.s $f8, $f6, $f14 -/* AEE1F8 80077058 44985000 */ mtc1 $t8, $f10 -/* AEE1FC 8007705C 07010005 */ bgez $t8, .L80077074 -/* AEE200 80077060 468054A0 */ cvt.s.w $f18, $f10 -/* AEE204 80077064 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE208 80077068 44812000 */ mtc1 $at, $f4 -/* AEE20C 8007706C 00000000 */ nop -/* AEE210 80077070 46049480 */ add.s $f18, $f18, $f4 -.L80077074: -/* AEE214 80077074 46120182 */ mul.s $f6, $f0, $f18 -/* AEE218 80077078 240B0001 */ li $t3, 1 -/* AEE21C 8007707C 46064280 */ add.s $f10, $f8, $f6 -/* AEE220 80077080 460C5102 */ mul.s $f4, $f10, $f12 -/* AEE224 80077084 4459F800 */ cfc1 $t9, $31 -/* AEE228 80077088 44CBF800 */ ctc1 $t3, $31 -/* AEE22C 8007708C 00000000 */ nop -/* AEE230 80077090 460024A4 */ cvt.w.s $f18, $f4 -/* AEE234 80077094 444BF800 */ cfc1 $t3, $31 -/* AEE238 80077098 00000000 */ nop -/* AEE23C 8007709C 316B0078 */ andi $t3, $t3, 0x78 -/* AEE240 800770A0 11600012 */ beqz $t3, .L800770EC -/* AEE244 800770A4 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* AEE248 800770A8 44819000 */ mtc1 $at, $f18 -/* AEE24C 800770AC 240B0001 */ li $t3, 1 -/* AEE250 800770B0 46122481 */ sub.s $f18, $f4, $f18 -/* AEE254 800770B4 44CBF800 */ ctc1 $t3, $31 -/* AEE258 800770B8 00000000 */ nop -/* AEE25C 800770BC 460094A4 */ cvt.w.s $f18, $f18 -/* AEE260 800770C0 444BF800 */ cfc1 $t3, $31 -/* AEE264 800770C4 00000000 */ nop -/* AEE268 800770C8 316B0078 */ andi $t3, $t3, 0x78 -/* AEE26C 800770CC 15600005 */ bnez $t3, .L800770E4 -/* AEE270 800770D0 00000000 */ nop -/* AEE274 800770D4 440B9000 */ mfc1 $t3, $f18 -/* AEE278 800770D8 3C018000 */ lui $at, 0x8000 -/* AEE27C 800770DC 10000007 */ b .L800770FC -/* AEE280 800770E0 01615825 */ or $t3, $t3, $at -.L800770E4: -/* AEE284 800770E4 10000005 */ b .L800770FC -/* AEE288 800770E8 240BFFFF */ li $t3, -1 -.L800770EC: -/* AEE28C 800770EC 440B9000 */ mfc1 $t3, $f18 -/* AEE290 800770F0 00000000 */ nop -/* AEE294 800770F4 0560FFFB */ bltz $t3, .L800770E4 -/* AEE298 800770F8 00000000 */ nop -.L800770FC: -/* AEE29C 800770FC 95CEFDB0 */ lhu $t6, %lo(D_8015FDB0)($t6) -/* AEE2A0 80077100 44D9F800 */ ctc1 $t9, $31 -/* AEE2A4 80077104 316B00FF */ andi $t3, $t3, 0xff -/* AEE2A8 80077108 448E4000 */ mtc1 $t6, $f8 -/* AEE2AC 8007710C 05C10005 */ bgez $t6, .L80077124 -/* AEE2B0 80077110 468040A0 */ cvt.s.w $f2, $f8 -/* AEE2B4 80077114 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE2B8 80077118 44813000 */ mtc1 $at, $f6 -/* AEE2BC 8007711C 00000000 */ nop -/* AEE2C0 80077120 46061080 */ add.s $f2, $f2, $f6 -.L80077124: -/* AEE2C4 80077124 3C018014 */ lui $at, %hi(D_8013C834) -/* AEE2C8 80077128 C42AC834 */ lwc1 $f10, %lo(D_8013C834)($at) -/* AEE2CC 8007712C 3C013FC0 */ li $at, 0x3FC00000 # 0.000000 -/* AEE2D0 80077130 44814000 */ mtc1 $at, $f8 -/* AEE2D4 80077134 460A1102 */ mul.s $f4, $f2, $f10 -/* AEE2D8 80077138 3C013F80 */ lui $at, 0x3f80 -/* AEE2DC 8007713C 8FB900B8 */ lw $t9, 0xb8($sp) -/* AEE2E0 80077140 46081182 */ mul.s $f6, $f2, $f8 -/* AEE2E4 80077144 3C068014 */ lui $a2, %hi(D_8013C770) -/* AEE2E8 80077148 24C6C770 */ addiu $a2, %lo(D_8013C770) # addiu $a2, $a2, -0x3890 -/* AEE2EC 8007714C 27A4007C */ addiu $a0, $sp, 0x7c -/* AEE2F0 80077150 24070FCC */ li $a3, 4044 -/* AEE2F4 80077154 4600248D */ trunc.w.s $f18, $f4 -/* AEE2F8 80077158 44812000 */ mtc1 $at, $f4 -/* AEE2FC 8007715C 4600328D */ trunc.w.s $f10, $f6 -/* AEE300 80077160 44189000 */ mfc1 $t8, $f18 -/* AEE304 80077164 46041482 */ mul.s $f18, $f2, $f4 -/* AEE308 80077168 A7B80096 */ sh $t8, 0x96($sp) -/* AEE30C 8007716C 440E5000 */ mfc1 $t6, $f10 -/* AEE310 80077170 00000000 */ nop -/* AEE314 80077174 A7AE0094 */ sh $t6, 0x94($sp) -/* AEE318 80077178 4600920D */ trunc.w.s $f8, $f18 -/* AEE31C 8007717C 44184000 */ mfc1 $t8, $f8 -/* AEE320 80077180 00000000 */ nop -/* AEE324 80077184 A7B80092 */ sh $t8, 0x92($sp) -/* AEE328 80077188 8F250000 */ lw $a1, ($t9) -/* AEE32C 8007718C E7AE0098 */ swc1 $f14, 0x98($sp) -/* AEE330 80077190 A3AB00A2 */ sb $t3, 0xa2($sp) -/* AEE334 80077194 A3AA00A1 */ sb $t2, 0xa1($sp) -/* AEE338 80077198 A3A900A0 */ sb $t1, 0xa0($sp) -/* AEE33C 8007719C 0C031AB1 */ jal Graph_OpenDisps -/* AEE340 800771A0 AFA5008C */ sw $a1, 0x8c($sp) -/* AEE344 800771A4 8FA3008C */ lw $v1, 0x8c($sp) -/* AEE348 800771A8 0C024FCD */ jal func_80093F34 -/* AEE34C 800771AC 8C6402D0 */ lw $a0, 0x2d0($v1) -/* AEE350 800771B0 8FA3008C */ lw $v1, 0x8c($sp) -/* AEE354 800771B4 93A900A0 */ lbu $t1, 0xa0($sp) -/* AEE358 800771B8 93AA00A1 */ lbu $t2, 0xa1($sp) -/* AEE35C 800771BC 93AB00A2 */ lbu $t3, 0xa2($sp) -/* AEE360 800771C0 C7AE0098 */ lwc1 $f14, 0x98($sp) -/* AEE364 800771C4 244E0008 */ addiu $t6, $v0, 8 -/* AEE368 800771C8 AC6202D0 */ sw $v0, 0x2d0($v1) -/* AEE36C 800771CC 3C0FE300 */ lui $t7, (0xE3001A01 >> 16) # lui $t7, 0xe300 -/* AEE370 800771D0 AC6E02D0 */ sw $t6, 0x2d0($v1) -/* AEE374 800771D4 35EF1A01 */ ori $t7, (0xE3001A01 & 0xFFFF) # ori $t7, $t7, 0x1a01 -/* AEE378 800771D8 24180020 */ li $t8, 32 -/* AEE37C 800771DC AC580004 */ sw $t8, 4($v0) -/* AEE380 800771E0 AC4F0000 */ sw $t7, ($v0) -/* AEE384 800771E4 8C6202D0 */ lw $v0, 0x2d0($v1) -/* AEE388 800771E8 3C0EE300 */ lui $t6, (0xE3001801 >> 16) # lui $t6, 0xe300 -/* AEE38C 800771EC 35CE1801 */ ori $t6, (0xE3001801 & 0xFFFF) # ori $t6, $t6, 0x1801 -/* AEE390 800771F0 24590008 */ addiu $t9, $v0, 8 -/* AEE394 800771F4 AC7902D0 */ sw $t9, 0x2d0($v1) -/* AEE398 800771F8 240F0080 */ li $t7, 128 -/* AEE39C 800771FC AC4F0004 */ sw $t7, 4($v0) -/* AEE3A0 80077200 AC4E0000 */ sw $t6, ($v0) -/* AEE3A4 80077204 8C6202D0 */ lw $v0, 0x2d0($v1) -/* AEE3A8 80077208 3C19FA00 */ lui $t9, (0xFA000080 >> 16) # lui $t9, 0xfa00 -/* AEE3AC 8007720C 37390080 */ ori $t9, (0xFA000080 & 0xFFFF) # ori $t9, $t9, 0x80 -/* AEE3B0 80077210 24580008 */ addiu $t8, $v0, 8 -/* AEE3B4 80077214 AC7802D0 */ sw $t8, 0x2d0($v1) -/* AEE3B8 80077218 AC590000 */ sw $t9, ($v0) -/* AEE3BC 8007721C 93AF00A4 */ lbu $t7, 0xa4($sp) -/* AEE3C0 80077220 93AE00A5 */ lbu $t6, 0xa5($sp) -/* AEE3C4 80077224 00002825 */ move $a1, $zero -/* AEE3C8 80077228 000FC600 */ sll $t8, $t7, 0x18 -/* AEE3CC 8007722C 000E7C00 */ sll $t7, $t6, 0x10 -/* AEE3D0 80077230 030FC825 */ or $t9, $t8, $t7 -/* AEE3D4 80077234 93B800A6 */ lbu $t8, 0xa6($sp) -/* AEE3D8 80077238 00003825 */ move $a3, $zero -/* AEE3DC 8007723C 00187A00 */ sll $t7, $t8, 8 -/* AEE3E0 80077240 8FB80058 */ lw $t8, 0x58($sp) -/* AEE3E4 80077244 032F7025 */ or $t6, $t9, $t7 -/* AEE3E8 80077248 930F0B0B */ lbu $t7, 0xb0b($t8) -/* AEE3EC 8007724C 01CFC025 */ or $t8, $t6, $t7 -/* AEE3F0 80077250 AC580004 */ sw $t8, 4($v0) -/* AEE3F4 80077254 8C6202D0 */ lw $v0, 0x2d0($v1) -/* AEE3F8 80077258 3C0EFB00 */ lui $t6, 0xfb00 -/* AEE3FC 8007725C 0009C600 */ sll $t8, $t1, 0x18 -/* AEE400 80077260 24590008 */ addiu $t9, $v0, 8 -/* AEE404 80077264 AC7902D0 */ sw $t9, 0x2d0($v1) -/* AEE408 80077268 AC4E0000 */ sw $t6, ($v0) -/* AEE40C 8007726C 000A7400 */ sll $t6, $t2, 0x10 -/* AEE410 80077270 8FB90058 */ lw $t9, 0x58($sp) -/* AEE414 80077274 030E7825 */ or $t7, $t8, $t6 -/* AEE418 80077278 000BC200 */ sll $t8, $t3, 8 -/* AEE41C 8007727C 01F87025 */ or $t6, $t7, $t8 -/* AEE420 80077280 93380B0C */ lbu $t8, 0xb0c($t9) -/* AEE424 80077284 01D8C825 */ or $t9, $t6, $t8 -/* AEE428 80077288 AC590004 */ sw $t9, 4($v0) -/* AEE42C 8007728C 8C6202D0 */ lw $v0, 0x2d0($v1) -/* AEE430 80077290 3C0EDB06 */ lui $t6, (0xDB060020 >> 16) # lui $t6, 0xdb06 -/* AEE434 80077294 35CE0020 */ ori $t6, (0xDB060020 & 0xFFFF) # ori $t6, $t6, 0x20 -/* AEE438 80077298 244F0008 */ addiu $t7, $v0, 8 -/* AEE43C 8007729C AC6F02D0 */ sw $t7, 0x2d0($v1) -/* AEE440 800772A0 AC4E0000 */ sw $t6, ($v0) -/* AEE444 800772A4 8FB800B8 */ lw $t8, 0xb8($sp) -/* AEE448 800772A8 240F0020 */ li $t7, 32 -/* AEE44C 800772AC 24190200 */ li $t9, 512 -/* AEE450 800772B0 8F040000 */ lw $a0, ($t8) -/* AEE454 800772B4 97B80094 */ lhu $t8, 0x94($sp) -/* AEE458 800772B8 AFAF0014 */ sw $t7, 0x14($sp) -/* AEE45C 800772BC 97AF0092 */ lhu $t7, 0x92($sp) -/* AEE460 800772C0 AFB90010 */ sw $t9, 0x10($sp) -/* AEE464 800772C4 240E0001 */ li $t6, 1 -/* AEE468 800772C8 33190FFF */ andi $t9, $t8, 0xfff -/* AEE46C 800772CC AFAE0018 */ sw $t6, 0x18($sp) -/* AEE470 800772D0 AFB9001C */ sw $t9, 0x1c($sp) -/* AEE474 800772D4 24180FFF */ li $t8, 4095 -/* AEE478 800772D8 31EE0FFF */ andi $t6, $t7, 0xfff -/* AEE47C 800772DC 97A60096 */ lhu $a2, 0x96($sp) -/* AEE480 800772E0 030EC823 */ subu $t9, $t8, $t6 -/* AEE484 800772E4 24180040 */ li $t8, 64 -/* AEE488 800772E8 240F0100 */ li $t7, 256 -/* AEE48C 800772EC AFAF0024 */ sw $t7, 0x24($sp) -/* AEE490 800772F0 AFB80028 */ sw $t8, 0x28($sp) -/* AEE494 800772F4 AFB90020 */ sw $t9, 0x20($sp) -/* AEE498 800772F8 AFA3008C */ sw $v1, 0x8c($sp) -/* AEE49C 800772FC E7AE0098 */ swc1 $f14, 0x98($sp) -/* AEE4A0 80077300 AFA20068 */ sw $v0, 0x68($sp) -/* AEE4A4 80077304 0C0253D0 */ jal Gfx_TwoTexScroll -/* AEE4A8 80077308 30C60FFF */ andi $a2, $a2, 0xfff -/* AEE4AC 8007730C 8FA80068 */ lw $t0, 0x68($sp) -/* AEE4B0 80077310 8FA3008C */ lw $v1, 0x8c($sp) -/* AEE4B4 80077314 C7AE0098 */ lwc1 $f14, 0x98($sp) -/* AEE4B8 80077318 AD020004 */ sw $v0, 4($t0) -/* AEE4BC 8007731C 8C6202D0 */ lw $v0, 0x2d0($v1) -/* AEE4C0 80077320 3C19E300 */ lui $t9, (0xE3001001 >> 16) # lui $t9, 0xe300 -/* AEE4C4 80077324 37391001 */ ori $t9, (0xE3001001 & 0xFFFF) # ori $t9, $t9, 0x1001 -/* AEE4C8 80077328 244E0008 */ addiu $t6, $v0, 8 -/* AEE4CC 8007732C AC6E02D0 */ sw $t6, 0x2d0($v1) -/* AEE4D0 80077330 AC400004 */ sw $zero, 4($v0) -/* AEE4D4 80077334 AC590000 */ sw $t9, ($v0) -/* AEE4D8 80077338 8C6202D0 */ lw $v0, 0x2d0($v1) -/* AEE4DC 8007733C 3C0E0501 */ lui $t6, %hi(gFieldDL_00CA70) # $t6, 0x501 -/* AEE4E0 80077340 25CECA70 */ addiu $t6, %lo(gFieldDL_00CA70) # addiu $t6, $t6, -0x3590 -/* AEE4E4 80077344 244F0008 */ addiu $t7, $v0, 8 -/* AEE4E8 80077348 AC6F02D0 */ sw $t7, 0x2d0($v1) -/* AEE4EC 8007734C 3C18DE00 */ lui $t8, 0xde00 -/* AEE4F0 80077350 AC580000 */ sw $t8, ($v0) -/* AEE4F4 80077354 AC4E0004 */ sw $t6, 4($v0) -/* AEE4F8 80077358 8FB900B8 */ lw $t9, 0xb8($sp) -/* AEE4FC 8007735C 3C068014 */ lui $a2, %hi(D_8013C780) # $a2, 0x8014 -/* AEE500 80077360 24C6C780 */ addiu $a2, %lo(D_8013C780) # addiu $a2, $a2, -0x3880 -/* AEE504 80077364 8F250000 */ lw $a1, ($t9) -/* AEE508 80077368 27A4007C */ addiu $a0, $sp, 0x7c -/* AEE50C 8007736C 24070FE4 */ li $a3, 4068 -/* AEE510 80077370 0C031AD5 */ jal Graph_CloseDisps -/* AEE514 80077374 E7AE0098 */ swc1 $f14, 0x98($sp) -/* AEE518 80077378 C7AE0098 */ lwc1 $f14, 0x98($sp) -/* AEE51C 8007737C 3C028016 */ lui $v0, %hi(D_8015FDB0) # $v0, 0x8016 -/* AEE520 80077380 2442FDB0 */ addiu $v0, %lo(D_8015FDB0) # addiu $v0, $v0, -0x250 -/* AEE524 80077384 4600718D */ trunc.w.s $f6, $f14 -/* AEE528 80077388 944F0000 */ lhu $t7, ($v0) -/* AEE52C 8007738C 8FBF0034 */ lw $ra, 0x34($sp) -/* AEE530 80077390 27BD00B8 */ addiu $sp, $sp, 0xb8 -/* AEE534 80077394 440E3000 */ mfc1 $t6, $f6 -/* AEE538 80077398 00000000 */ nop -/* AEE53C 8007739C 01EEC821 */ addu $t9, $t7, $t6 -/* AEE540 800773A0 03E00008 */ jr $ra -/* AEE544 800773A4 A4590000 */ sh $t9, ($v0) - diff --git a/asm/non_matchings/code/z_kankyo/func_800773A8.s b/asm/non_matchings/code/z_kankyo/func_800773A8.s deleted file mode 100644 index 9360508444..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_800773A8.s +++ /dev/null @@ -1,152 +0,0 @@ -glabel func_800773A8 -/* AEE548 800773A8 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* AEE54C 800773AC 3C010001 */ li $at, 0x00010000 # 0.000000 -/* AEE550 800773B0 AFBF0014 */ sw $ra, 0x14($sp) -/* AEE554 800773B4 AFA40028 */ sw $a0, 0x28($sp) -/* AEE558 800773B8 AFA60030 */ sw $a2, 0x30($sp) -/* AEE55C 800773BC AFA70034 */ sw $a3, 0x34($sp) -/* AEE560 800773C0 00811821 */ addu $v1, $a0, $at -/* AEE564 800773C4 906E1CBF */ lbu $t6, 0x1cbf($v1) -/* AEE568 800773C8 44856000 */ mtc1 $a1, $f12 -/* AEE56C 800773CC 24010005 */ li $at, 5 -/* AEE570 800773D0 11C1007A */ beq $t6, $at, .L800775BC -/* AEE574 800773D4 00803025 */ move $a2, $a0 -/* AEE578 800773D8 AFA3001C */ sw $v1, 0x1c($sp) -/* AEE57C 800773DC AFA60028 */ sw $a2, 0x28($sp) -/* AEE580 800773E0 0C03032E */ jal func_800C0CB8 -/* AEE584 800773E4 E7AC002C */ swc1 $f12, 0x2c($sp) -/* AEE588 800773E8 8FA3001C */ lw $v1, 0x1c($sp) -/* AEE58C 800773EC 8FA60028 */ lw $a2, 0x28($sp) -/* AEE590 800773F0 C7A20034 */ lwc1 $f2, 0x34($sp) -/* AEE594 800773F4 10400071 */ beqz $v0, .L800775BC -/* AEE598 800773F8 C7AC002C */ lwc1 $f12, 0x2c($sp) -/* AEE59C 800773FC 44808000 */ mtc1 $zero, $f16 -/* AEE5A0 80077400 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AEE5A4 80077404 44817000 */ mtc1 $at, $f14 -/* AEE5A8 80077408 4610603C */ c.lt.s $f12, $f16 -/* AEE5AC 8007740C 00002025 */ move $a0, $zero -/* AEE5B0 80077410 24050003 */ li $a1, 3 -/* AEE5B4 80077414 45020003 */ bc1fl .L80077424 -/* AEE5B8 80077418 460C703C */ c.lt.s $f14, $f12 -/* AEE5BC 8007741C 46008306 */ mov.s $f12, $f16 -/* AEE5C0 80077420 460C703C */ c.lt.s $f14, $f12 -.L80077424: -/* AEE5C4 80077424 00000000 */ nop -/* AEE5C8 80077428 45020003 */ bc1fl .L80077438 -/* AEE5CC 8007742C 4602603C */ c.lt.s $f12, $f2 -/* AEE5D0 80077430 46007306 */ mov.s $f12, $f14 -/* AEE5D4 80077434 4602603C */ c.lt.s $f12, $f2 -.L80077438: -/* AEE5D8 80077438 46026001 */ sub.s $f0, $f12, $f2 -/* AEE5DC 8007743C 45020003 */ bc1fl .L8007744C -/* AEE5E0 80077440 846F0AF6 */ lh $t7, 0xaf6($v1) -/* AEE5E4 80077444 46008006 */ mov.s $f0, $f16 -/* AEE5E8 80077448 846F0AF6 */ lh $t7, 0xaf6($v1) -.L8007744C: -/* AEE5EC 8007744C C7A40030 */ lwc1 $f4, 0x30($sp) -/* AEE5F0 80077450 46106032 */ c.eq.s $f12, $f16 -/* AEE5F4 80077454 448F3000 */ mtc1 $t7, $f6 -/* AEE5F8 80077458 3C010001 */ lui $at, 1 -/* AEE5FC 8007745C 00260821 */ addu $at, $at, $a2 -/* AEE600 80077460 46803220 */ cvt.s.w $f8, $f6 -/* AEE604 80077464 46082281 */ sub.s $f10, $f4, $f8 -/* AEE608 80077468 46005482 */ mul.s $f18, $f10, $f0 -/* AEE60C 8007746C 4600918D */ trunc.w.s $f6, $f18 -/* AEE610 80077470 44193000 */ mfc1 $t9, $f6 -/* AEE614 80077474 4500000B */ bc1f .L800774A4 -/* AEE618 80077478 A4390AC2 */ sh $t9, 0xac2($at) -/* AEE61C 8007747C 3C010001 */ lui $at, 1 -/* AEE620 80077480 00C11821 */ addu $v1, $a2, $at -/* AEE624 80077484 00002025 */ move $a0, $zero -/* AEE628 80077488 24050003 */ li $a1, 3 -.L8007748C: -/* AEE62C 8007748C 24840001 */ addiu $a0, $a0, 1 -/* AEE630 80077490 24630002 */ addiu $v1, $v1, 2 -/* AEE634 80077494 1485FFFD */ bne $a0, $a1, .L8007748C -/* AEE638 80077498 A4600ABA */ sh $zero, 0xaba($v1) -/* AEE63C 8007749C 1000001F */ b .L8007751C -/* AEE640 800774A0 C7A00038 */ lwc1 $f0, 0x38($sp) -.L800774A4: -/* AEE644 800774A4 3C0140A0 */ li $at, 0x40A00000 # 0.000000 -/* AEE648 800774A8 44812000 */ mtc1 $at, $f4 -/* AEE64C 800774AC 3C010001 */ li $at, 0x00010000 # 0.000000 -/* AEE650 800774B0 00C11821 */ addu $v1, $a2, $at -/* AEE654 800774B4 46046002 */ mul.s $f0, $f12, $f4 -/* AEE658 800774B8 00C11021 */ addu $v0, $a2, $at -/* AEE65C 800774BC 4600703C */ c.lt.s $f14, $f0 -/* AEE660 800774C0 00000000 */ nop -/* AEE664 800774C4 45000002 */ bc1f .L800774D0 -/* AEE668 800774C8 00000000 */ nop -/* AEE66C 800774CC 46007006 */ mov.s $f0, $f14 -.L800774D0: -/* AEE670 800774D0 90480AF3 */ lbu $t0, 0xaf3($v0) -/* AEE674 800774D4 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE678 800774D8 44884000 */ mtc1 $t0, $f8 -/* AEE67C 800774DC 05010004 */ bgez $t0, .L800774F0 -/* AEE680 800774E0 468042A0 */ cvt.s.w $f10, $f8 -/* AEE684 800774E4 44819000 */ mtc1 $at, $f18 -/* AEE688 800774E8 00000000 */ nop -/* AEE68C 800774EC 46125280 */ add.s $f10, $f10, $f18 -.L800774F0: -/* AEE690 800774F0 46005182 */ mul.s $f6, $f10, $f0 -/* AEE694 800774F4 24840001 */ addiu $a0, $a0, 1 -/* AEE698 800774F8 24630002 */ addiu $v1, $v1, 2 -/* AEE69C 800774FC 24420001 */ addiu $v0, $v0, 1 -/* AEE6A0 80077500 4600310D */ trunc.w.s $f4, $f6 -/* AEE6A4 80077504 440C2000 */ mfc1 $t4, $f4 -/* AEE6A8 80077508 00000000 */ nop -/* AEE6AC 8007750C 000C6823 */ negu $t5, $t4 -/* AEE6B0 80077510 1485FFEF */ bne $a0, $a1, .L800774D0 -/* AEE6B4 80077514 A46D0ABA */ sh $t5, 0xaba($v1) -/* AEE6B8 80077518 C7A00038 */ lwc1 $f0, 0x38($sp) -.L8007751C: -/* AEE6BC 8007751C 3C010001 */ li $at, 0x00010000 # 0.000000 -/* AEE6C0 80077520 00C11821 */ addu $v1, $a2, $at -/* AEE6C4 80077524 4610003E */ c.le.s $f0, $f16 -/* AEE6C8 80077528 00002025 */ move $a0, $zero -/* AEE6CC 8007752C 45030024 */ bc1tl .L800775C0 -/* AEE6D0 80077530 8FBF0014 */ lw $ra, 0x14($sp) -/* AEE6D4 80077534 46006302 */ mul.s $f12, $f12, $f0 -/* AEE6D8 80077538 00C11021 */ addu $v0, $a2, $at -.L8007753C: -/* AEE6DC 8007753C 904E0AE4 */ lbu $t6, 0xae4($v0) -/* AEE6E0 80077540 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE6E4 80077544 448E4000 */ mtc1 $t6, $f8 -/* AEE6E8 80077548 05C10004 */ bgez $t6, .L8007755C -/* AEE6EC 8007754C 468044A0 */ cvt.s.w $f18, $f8 -/* AEE6F0 80077550 44815000 */ mtc1 $at, $f10 -/* AEE6F4 80077554 00000000 */ nop -/* AEE6F8 80077558 460A9480 */ add.s $f18, $f18, $f10 -.L8007755C: -/* AEE6FC 8007755C 460C9182 */ mul.s $f6, $f18, $f12 -/* AEE700 80077560 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* AEE704 80077564 4600310D */ trunc.w.s $f4, $f6 -/* AEE708 80077568 44082000 */ mfc1 $t0, $f4 -/* AEE70C 8007756C 00000000 */ nop -/* AEE710 80077570 00084823 */ negu $t1, $t0 -/* AEE714 80077574 A4690AB0 */ sh $t1, 0xab0($v1) -/* AEE718 80077578 904A0AEA */ lbu $t2, 0xaea($v0) -/* AEE71C 8007757C 448A4000 */ mtc1 $t2, $f8 -/* AEE720 80077580 05410004 */ bgez $t2, .L80077594 -/* AEE724 80077584 468042A0 */ cvt.s.w $f10, $f8 -/* AEE728 80077588 44819000 */ mtc1 $at, $f18 -/* AEE72C 8007758C 00000000 */ nop -/* AEE730 80077590 46125280 */ add.s $f10, $f10, $f18 -.L80077594: -/* AEE734 80077594 460C5182 */ mul.s $f6, $f10, $f12 -/* AEE738 80077598 24840001 */ addiu $a0, $a0, 1 -/* AEE73C 8007759C 24630002 */ addiu $v1, $v1, 2 -/* AEE740 800775A0 24420001 */ addiu $v0, $v0, 1 -/* AEE744 800775A4 4600310D */ trunc.w.s $f4, $f6 -/* AEE748 800775A8 440E2000 */ mfc1 $t6, $f4 -/* AEE74C 800775AC 00000000 */ nop -/* AEE750 800775B0 000E7823 */ negu $t7, $t6 -/* AEE754 800775B4 1485FFE1 */ bne $a0, $a1, .L8007753C -/* AEE758 800775B8 A46F0AB4 */ sh $t7, 0xab4($v1) -.L800775BC: -/* AEE75C 800775BC 8FBF0014 */ lw $ra, 0x14($sp) -.L800775C0: -/* AEE760 800775C0 27BD0028 */ addiu $sp, $sp, 0x28 -/* AEE764 800775C4 03E00008 */ jr $ra -/* AEE768 800775C8 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_80077600.s b/asm/non_matchings/code/z_kankyo/func_80077600.s deleted file mode 100644 index 755c20bc92..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80077600.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel func_80077600 -/* AEE7A0 80077600 3C0E8016 */ lui $t6, %hi(gSaveContext+0x140e) # $t6, 0x8016 -/* AEE7A4 80077604 95CEFA6E */ lhu $t6, %lo(gSaveContext+0x140e)($t6) -/* AEE7A8 80077608 3401FFFF */ li $at, 65535 -/* AEE7AC 8007760C 00001825 */ move $v1, $zero -/* AEE7B0 80077610 15C10002 */ bne $t6, $at, .L8007761C -/* AEE7B4 80077614 00000000 */ nop -/* AEE7B8 80077618 24030001 */ li $v1, 1 -.L8007761C: -/* AEE7BC 8007761C 03E00008 */ jr $ra -/* AEE7C0 80077620 00601025 */ move $v0, $v1 - diff --git a/asm/non_matchings/code/z_kankyo/func_80077624.s b/asm/non_matchings/code/z_kankyo/func_80077624.s deleted file mode 100644 index 18661be1dc..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80077624.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_80077624 -/* AEE7C4 80077624 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AEE7C8 80077628 AFBF0014 */ sw $ra, 0x14($sp) -/* AEE7CC 8007762C 908507A5 */ lbu $a1, 0x7a5($a0) -/* AEE7D0 80077630 24010013 */ li $at, 19 -/* AEE7D4 80077634 14A10005 */ bne $a1, $at, .L8007764C -/* AEE7D8 80077638 00000000 */ nop -/* AEE7DC 8007763C 0C03DBED */ jal func_800F6FB4 -/* AEE7E0 80077640 24040005 */ li $a0, 5 -/* AEE7E4 80077644 10000004 */ b .L80077658 -/* AEE7E8 80077648 2404000E */ li $a0, 14 -.L8007764C: -/* AEE7EC 8007764C 0C03DBED */ jal func_800F6FB4 -/* AEE7F0 80077650 30A400FF */ andi $a0, $a1, 0xff -/* AEE7F4 80077654 2404000E */ li $a0, 14 -.L80077658: -/* AEE7F8 80077658 24050001 */ li $a1, 1 -/* AEE7FC 8007765C 0C03DB56 */ jal func_800F6D58 -/* AEE800 80077660 24060001 */ li $a2, 1 -/* AEE804 80077664 2404000F */ li $a0, 15 -/* AEE808 80077668 24050001 */ li $a1, 1 -/* AEE80C 8007766C 0C03DB56 */ jal func_800F6D58 -/* AEE810 80077670 24060001 */ li $a2, 1 -/* AEE814 80077674 8FBF0014 */ lw $ra, 0x14($sp) -/* AEE818 80077678 27BD0018 */ addiu $sp, $sp, 0x18 -/* AEE81C 8007767C 03E00008 */ jr $ra -/* AEE820 80077680 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_80077684.s b/asm/non_matchings/code/z_kankyo/func_80077684.s deleted file mode 100644 index 0fd7c48486..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_80077684.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel func_80077684 -/* AEE824 80077684 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AEE828 80077688 AFBF0014 */ sw $ra, 0x14($sp) -/* AEE82C 8007768C AFA40018 */ sw $a0, 0x18($sp) -/* AEE830 80077690 2404000E */ li $a0, 14 -/* AEE834 80077694 24050001 */ li $a1, 1 -/* AEE838 80077698 0C03DB56 */ jal func_800F6D58 -/* AEE83C 8007769C 00003025 */ move $a2, $zero -/* AEE840 800776A0 2404000F */ li $a0, 15 -/* AEE844 800776A4 24050001 */ li $a1, 1 -/* AEE848 800776A8 0C03DB56 */ jal func_800F6D58 -/* AEE84C 800776AC 00003025 */ move $a2, $zero -/* AEE850 800776B0 0C03E82D */ jal func_800FA0B4 -/* AEE854 800776B4 00002025 */ move $a0, $zero -/* AEE858 800776B8 24010001 */ li $at, 1 -/* AEE85C 800776BC 14410005 */ bne $v0, $at, .L800776D4 -/* AEE860 800776C0 240E0080 */ li $t6, 128 -/* AEE864 800776C4 3C018016 */ lui $at, %hi(gSaveContext+0x13e0) # $at, 0x8016 -/* AEE868 800776C8 A02EFA40 */ sb $t6, %lo(gSaveContext+0x13e0)($at) -/* AEE86C 800776CC 0C01D62B */ jal func_800758AC -/* AEE870 800776D0 8FA40018 */ lw $a0, 0x18($sp) -.L800776D4: -/* AEE874 800776D4 8FBF0014 */ lw $ra, 0x14($sp) -/* AEE878 800776D8 27BD0018 */ addiu $sp, $sp, 0x18 -/* AEE87C 800776DC 03E00008 */ jr $ra -/* AEE880 800776E0 00000000 */ nop - diff --git a/asm/non_matchings/code/z_kankyo/func_800776E4.s b/asm/non_matchings/code/z_kankyo/func_800776E4.s deleted file mode 100644 index 198fc1fde0..0000000000 --- a/asm/non_matchings/code/z_kankyo/func_800776E4.s +++ /dev/null @@ -1,67 +0,0 @@ -glabel func_800776E4 -/* AEE884 800776E4 3C018012 */ lui $at, %hi(D_8011FB30) # $at, 0x8012 -/* AEE888 800776E8 3C028016 */ lui $v0, %hi(gSaveContext) # $v0, 0x8016 -/* AEE88C 800776EC A020FB30 */ sb $zero, %lo(D_8011FB30)($at) -/* AEE890 800776F0 2442E660 */ addiu $v0, %lo(gSaveContext) # addiu $v0, $v0, -0x19a0 -/* AEE894 800776F4 844F1394 */ lh $t7, 0x1394($v0) -/* AEE898 800776F8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AEE89C 800776FC 240EFFFD */ li $t6, -3 -/* AEE8A0 80077700 3C010001 */ lui $at, 1 -/* AEE8A4 80077704 AFBF0014 */ sw $ra, 0x14($sp) -/* AEE8A8 80077708 AC400008 */ sw $zero, 8($v0) -/* AEE8AC 8007770C AC4E1364 */ sw $t6, 0x1364($v0) -/* AEE8B0 80077710 00240821 */ addu $at, $at, $a0 -/* AEE8B4 80077714 A42F1E1A */ sh $t7, 0x1e1a($at) -/* AEE8B8 80077718 3C010001 */ lui $at, 1 -/* AEE8BC 8007771C 00240821 */ addu $at, $at, $a0 -/* AEE8C0 80077720 24180014 */ li $t8, 20 -/* AEE8C4 80077724 A0381E15 */ sb $t8, 0x1e15($at) -/* AEE8C8 80077728 3C010001 */ lui $at, 1 -/* AEE8CC 8007772C 24050003 */ li $a1, 3 -/* AEE8D0 80077730 00240821 */ addu $at, $at, $a0 -/* AEE8D4 80077734 A0251E5E */ sb $a1, 0x1e5e($at) -/* AEE8D8 80077738 3C030001 */ lui $v1, 1 -/* AEE8DC 8007773C A045141D */ sb $a1, 0x141d($v0) -/* AEE8E0 80077740 00641821 */ addu $v1, $v1, $a0 -/* AEE8E4 80077744 84631E1A */ lh $v1, 0x1e1a($v1) -/* AEE8E8 80077748 24010053 */ li $at, 83 -/* AEE8EC 8007774C 1061001B */ beq $v1, $at, .L800777BC -/* AEE8F0 80077750 240100E4 */ li $at, 228 -/* AEE8F4 80077754 10610015 */ beq $v1, $at, .L800777AC -/* AEE8F8 80077758 240100FC */ li $at, 252 -/* AEE8FC 8007775C 10610019 */ beq $v1, $at, .L800777C4 -/* AEE900 80077760 24010102 */ li $at, 258 -/* AEE904 80077764 10610009 */ beq $v1, $at, .L8007778C -/* AEE908 80077768 24010123 */ li $at, 291 -/* AEE90C 8007776C 1061000B */ beq $v1, $at, .L8007779C -/* AEE910 80077770 24010147 */ li $at, 327 -/* AEE914 80077774 54610014 */ bnel $v1, $at, .L800777C8 -/* AEE918 80077778 8FBF0014 */ lw $ra, 0x14($sp) -/* AEE91C 8007777C 0C00D6DD */ jal Flags_SetEventChkInf -/* AEE920 80077780 240400B9 */ li $a0, 185 -/* AEE924 80077784 10000010 */ b .L800777C8 -/* AEE928 80077788 8FBF0014 */ lw $ra, 0x14($sp) -.L8007778C: -/* AEE92C 8007778C 0C00D6DD */ jal Flags_SetEventChkInf -/* AEE930 80077790 240400B1 */ li $a0, 177 -/* AEE934 80077794 1000000C */ b .L800777C8 -/* AEE938 80077798 8FBF0014 */ lw $ra, 0x14($sp) -.L8007779C: -/* AEE93C 8007779C 0C00D6DD */ jal Flags_SetEventChkInf -/* AEE940 800777A0 240400B8 */ li $a0, 184 -/* AEE944 800777A4 10000008 */ b .L800777C8 -/* AEE948 800777A8 8FBF0014 */ lw $ra, 0x14($sp) -.L800777AC: -/* AEE94C 800777AC 0C00D6DD */ jal Flags_SetEventChkInf -/* AEE950 800777B0 240400B6 */ li $a0, 182 -/* AEE954 800777B4 10000004 */ b .L800777C8 -/* AEE958 800777B8 8FBF0014 */ lw $ra, 0x14($sp) -.L800777BC: -/* AEE95C 800777BC 0C00D6DD */ jal Flags_SetEventChkInf -/* AEE960 800777C0 240400A7 */ li $a0, 167 -.L800777C4: -/* AEE964 800777C4 8FBF0014 */ lw $ra, 0x14($sp) -.L800777C8: -/* AEE968 800777C8 27BD0018 */ addiu $sp, $sp, 0x18 -/* AEE96C 800777CC 03E00008 */ jr $ra -/* AEE970 800777D0 00000000 */ nop diff --git a/asm/non_matchings/code/z_vr_box/Skybox_Setup.s b/asm/non_matchings/code/z_vr_box/Skybox_Setup.s index b94c8b1f11..d60fd0ff01 100644 --- a/asm/non_matchings/code/z_vr_box/Skybox_Setup.s +++ b/asm/non_matchings/code/z_vr_box/Skybox_Setup.s @@ -984,11 +984,11 @@ glabel L800AF25C /* B26410 800AF270 11E0000C */ beqz $t7, .L800AF2A4 /* B26414 800AF274 2529FC1C */ addiu $t1, %lo(D_8011FC1C) # addiu $t1, $t1, -0x3e4 /* B26418 800AF278 8D181360 */ lw $t8, 0x1360($t0) -/* B2641C 800AF27C 3C028012 */ lui $v0, %hi(D_8011FB30) # $v0, 0x8012 +/* B2641C 800AF27C 3C028012 */ lui $v0, %hi(gWeatherMode) # $v0, 0x8012 /* B26420 800AF280 2B010004 */ slti $at, $t8, 4 /* B26424 800AF284 50200008 */ beql $at, $zero, .L800AF2A8 /* B26428 800AF288 0003C8C0 */ sll $t9, $v1, 3 -/* B2642C 800AF28C 9042FB30 */ lbu $v0, %lo(D_8011FB30)($v0) +/* B2642C 800AF28C 9042FB30 */ lbu $v0, %lo(gWeatherMode)($v0) /* B26430 800AF290 18400004 */ blez $v0, .L800AF2A4 /* B26434 800AF294 28410006 */ slti $at, $v0, 6 /* B26438 800AF298 50200003 */ beql $at, $zero, .L800AF2A8 @@ -1038,7 +1038,7 @@ glabel L800AF25C /* B264D8 800AF338 002D0821 */ addu $at, $at, $t5 /* B264DC 800AF33C 9506141A */ lhu $a2, 0x141a($t0) /* B264E0 800AF340 94E40002 */ lhu $a0, 2($a3) -/* B264E4 800AF344 0C01BE4F */ jal func_8006F93C +/* B264E4 800AF344 0C01BE4F */ jal Environment_LerpWeight /* B264E8 800AF348 94E50000 */ lhu $a1, ($a3) /* B264EC 800AF34C 3C01437F */ li $at, 0x437F0000 # 0.000000 /* B264F0 800AF350 44812000 */ mtc1 $at, $f4 @@ -1094,8 +1094,8 @@ glabel L800AF25C /* B265A0 800AF400 000250C0 */ sll $t2, $v0, 3 .L800AF404: /* B265A4 800AF404 93AE0041 */ lbu $t6, 0x41($sp) -/* B265A8 800AF408 3C188012 */ lui $t8, %hi(D_8011FD3C) # $t8, 0x8012 -/* B265AC 800AF40C 2718FD3C */ addiu $t8, %lo(D_8011FD3C) # addiu $t8, $t8, -0x2c4 +/* B265A8 800AF408 3C188012 */ lui $t8, %hi(gSkyboxFiles) # $t8, 0x8012 +/* B265AC 800AF40C 2718FD3C */ addiu $t8, %lo(gSkyboxFiles) # addiu $t8, $t8, -0x2c4 /* B265B0 800AF410 000E7900 */ sll $t7, $t6, 4 /* B265B4 800AF414 01F81021 */ addu $v0, $t7, $t8 /* B265B8 800AF418 8C590004 */ lw $t9, 4($v0) @@ -1127,8 +1127,8 @@ glabel L800AF25C /* B2661C 800AF47C 0C0006A8 */ jal DmaMgr_SendRequest1 /* B26620 800AF480 8FA60044 */ lw $a2, 0x44($sp) /* B26624 800AF484 93AC0040 */ lbu $t4, 0x40($sp) -/* B26628 800AF488 3C0E8012 */ lui $t6, %hi(D_8011FD3C) # $t6, 0x8012 -/* B2662C 800AF48C 25CEFD3C */ addiu $t6, %lo(D_8011FD3C) # addiu $t6, $t6, -0x2c4 +/* B26628 800AF488 3C0E8012 */ lui $t6, %hi(gSkyboxFiles) # $t6, 0x8012 +/* B2662C 800AF48C 25CEFD3C */ addiu $t6, %lo(gSkyboxFiles) # addiu $t6, $t6, -0x2c4 /* B26630 800AF490 000C6900 */ sll $t5, $t4, 4 /* B26634 800AF494 01AE1821 */ addu $v1, $t5, $t6 /* B26638 800AF498 8C6F0004 */ lw $t7, 4($v1) diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Draw.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Draw.s index be262c52a7..d09ce5e5ed 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Draw.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Draw.s @@ -91,7 +91,7 @@ glabel BossGanon_Draw /* 0A59C 808E0E0C E61002F4 */ swc1 $f16, 0x02F4($s0) ## 000002F4 /* 0A5A0 808E0E10 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 /* 0A5A4 808E0E14 E60A02F0 */ swc1 $f10, 0x02F0($s0) ## 000002F0 -/* 0A5A8 808E0E18 0C02F228 */ jal func_800BC8A0 +/* 0A5A8 808E0E18 0C02F228 */ jal Gameplay_SetFog /* 0A5AC 808E0E1C 8E4502C0 */ lw $a1, 0x02C0($s2) ## 000002C0 /* 0A5B0 808E0E20 AE4202C0 */ sw $v0, 0x02C0($s2) ## 000002C0 /* 0A5B4 808E0E24 0C238F61 */ jal func_808E3D84 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Update.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Update.s index 3fd4f6ab3f..e3c7ac7e49 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Update.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Update.s @@ -1204,18 +1204,18 @@ glabel L808DE3B0 /* 07D14 808DE584 92AE066C */ lbu $t6, 0x066C($s5) ## 0000066C .L808DE588: /* 07D18 808DE588 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001 -/* 07D1C 808DE58C 3C018016 */ lui $at, %hi(D_8015FCF0) +/* 07D1C 808DE58C 3C018016 */ lui $at, %hi(gCustomLensFlareOn) /* 07D20 808DE590 11C0001C */ beq $t6, $zero, .L808DE604 /* 07D24 808DE594 00000000 */ nop -/* 07D28 808DE598 3C018016 */ lui $at, %hi(D_8015FCF0) -/* 07D2C 808DE59C A02FFCF0 */ sb $t7, %lo(D_8015FCF0)($at) +/* 07D28 808DE598 3C018016 */ lui $at, %hi(gCustomLensFlareOn) +/* 07D2C 808DE59C A02FFCF0 */ sb $t7, %lo(gCustomLensFlareOn)($at) /* 07D30 808DE5A0 92B8066C */ lbu $t8, 0x066C($s5) ## 0000066C /* 07D34 808DE5A4 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 /* 07D38 808DE5A8 5701000A */ bnel $t8, $at, .L808DE5D4 /* 07D3C 808DE5AC C6A60670 */ lwc1 $f6, 0x0670($s5) ## 00000670 /* 07D40 808DE5B0 8EA90024 */ lw $t1, 0x0024($s5) ## 00000024 -/* 07D44 808DE5B4 3C198016 */ lui $t9, %hi(D_8015FCF8) -/* 07D48 808DE5B8 2739FCF8 */ addiu $t9, %lo(D_8015FCF8) +/* 07D44 808DE5B4 3C198016 */ lui $t9, %hi(gCustomLensFlarePos) +/* 07D48 808DE5B8 2739FCF8 */ addiu $t9, %lo(gCustomLensFlarePos) /* 07D4C 808DE5BC AF290000 */ sw $t1, 0x0000($t9) ## 8015FCF8 /* 07D50 808DE5C0 8EA80028 */ lw $t0, 0x0028($s5) ## 00000028 /* 07D54 808DE5C4 AF280004 */ sw $t0, 0x0004($t9) ## 8015FCFC @@ -1236,7 +1236,7 @@ glabel L808DE3B0 /* 07D8C 808DE5FC 10000002 */ beq $zero, $zero, .L808DE608 /* 07D90 808DE600 A420FD0C */ sh $zero, %lo(D_8015FD0C)($at) .L808DE604: -/* 07D94 808DE604 A020FCF0 */ sb $zero, %lo(D_8015FCF0)($at) +/* 07D94 808DE604 A020FCF0 */ sb $zero, %lo(gCustomLensFlareOn)($at) .L808DE608: /* 07D98 808DE608 92A20274 */ lbu $v0, 0x0274($s5) ## 00000274 /* 07D9C 808DE60C 3C014248 */ lui $at, 0x4248 ## $at = 42480000 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DB2E8.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DB2E8.s index f9c1227b77..e097e2d58f 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DB2E8.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DB2E8.s @@ -305,10 +305,10 @@ glabel L808DB498 /* 04E78 808DB6E8 8E2B0278 */ lw $t3, 0x0278($s1) ## 00000278 /* 04E7C 808DB6EC 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001 /* 04E80 808DB6F0 24080002 */ addiu $t0, $zero, 0x0002 ## $t0 = 00000002 -/* 04E84 808DB6F4 3C098016 */ lui $t1, %hi(D_8015FCF8) +/* 04E84 808DB6F4 3C098016 */ lui $t1, %hi(gCustomLensFlarePos) /* 04E88 808DB6F8 A639066E */ sh $t9, 0x066E($s1) ## 0000066E /* 04E8C 808DB6FC A228066C */ sb $t0, 0x066C($s1) ## 0000066C -/* 04E90 808DB700 2529FCF8 */ addiu $t1, %lo(D_8015FCF8) +/* 04E90 808DB700 2529FCF8 */ addiu $t1, %lo(gCustomLensFlarePos) /* 04E94 808DB704 AD2B0000 */ sw $t3, 0x0000($t1) ## 8015FCF8 /* 04E98 808DB708 8E2A027C */ lw $t2, 0x027C($s1) ## 0000027C /* 04E9C 808DB70C AD2A0004 */ sw $t2, 0x0004($t1) ## 8015FCFC diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DC14C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DC14C.s index 953db3d2be..217f27f1cd 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DC14C.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DC14C.s @@ -44,12 +44,12 @@ glabel func_808DC14C /* 05960 808DC1D0 3C014140 */ lui $at, 0x4140 ## $at = 41400000 /* 05964 808DC1D4 44810000 */ mtc1 $at, $f0 ## $f0 = 12.00 /* 05968 808DC1D8 C6040168 */ lwc1 $f4, 0x0168($s0) ## 00000168 -/* 0596C 808DC1DC 3C088016 */ lui $t0, %hi(D_8015FCF8) +/* 0596C 808DC1DC 3C088016 */ lui $t0, %hi(gCustomLensFlarePos) /* 05970 808DC1E0 44050000 */ mfc1 $a1, $f0 /* 05974 808DC1E4 4600203E */ c.le.s $f4, $f0 /* 05978 808DC1E8 24180002 */ addiu $t8, $zero, 0x0002 ## $t8 = 00000002 /* 0597C 808DC1EC 24190002 */ addiu $t9, $zero, 0x0002 ## $t9 = 00000002 -/* 05980 808DC1F0 2508FCF8 */ addiu $t0, %lo(D_8015FCF8) +/* 05980 808DC1F0 2508FCF8 */ addiu $t0, %lo(gCustomLensFlarePos) /* 05984 808DC1F4 45000009 */ bc1f .L808DC21C /* 05988 808DC1F8 00000000 */ nop /* 0598C 808DC1FC 8E0A0260 */ lw $t2, 0x0260($s0) ## 00000260 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E1034.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E1034.s index 8cb04a6d6c..690abd032d 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E1034.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E1034.s @@ -68,8 +68,8 @@ glabel func_808E1034 /* 0A840 808E10B0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 .L808E10B4: /* 0A844 808E10B4 862900B6 */ lh $t1, 0x00B6($s1) ## 000000B6 -/* 0A848 808E10B8 3C0B8016 */ lui $t3, %hi(D_8015FCF8) -/* 0A84C 808E10BC 256BFCF8 */ addiu $t3, %lo(D_8015FCF8) +/* 0A848 808E10B8 3C0B8016 */ lui $t3, %hi(gCustomLensFlarePos) +/* 0A84C 808E10BC 256BFCF8 */ addiu $t3, %lo(gCustomLensFlarePos) /* 0A850 808E10C0 252A1000 */ addiu $t2, $t1, 0x1000 ## $t2 = 00001000 /* 0A854 808E10C4 A62A00B6 */ sh $t2, 0x00B6($s1) ## 000000B6 /* 0A858 808E10C8 A467066E */ sh $a3, 0x066E($v1) ## 0000066E diff --git a/asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4D7C.s b/asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4D7C.s index 6449d1db45..b9008a2e60 100644 --- a/asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4D7C.s +++ b/asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4D7C.s @@ -124,7 +124,7 @@ glabel func_80BA4D7C /* 02454 80BA4EF4 E7B20074 */ swc1 $f18, 0x0074($sp) /* 02458 80BA4EF8 E7B00070 */ swc1 $f16, 0x0070($sp) /* 0245C 80BA4EFC E7A2006C */ swc1 $f2, 0x006C($sp) -/* 02460 80BA4F00 0C01BE4F */ jal func_8006F93C +/* 02460 80BA4F00 0C01BE4F */ jal Environment_LerpWeight /* 02464 80BA4F04 AFA80058 */ sw $t0, 0x0058($sp) /* 02468 80BA4F08 C7A2006C */ lwc1 $f2, 0x006C($sp) /* 0246C 80BA4F0C C7AA0060 */ lwc1 $f10, 0x0060($sp) diff --git a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_8080F560.s b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_8080F560.s index efcd77f2c1..9d7a6815dd 100644 --- a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_8080F560.s +++ b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_8080F560.s @@ -97,7 +97,7 @@ glabel func_8080F560 /* 0B98C 8080F6CC 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001 /* 0B990 8080F6D0 018D7021 */ addu $t6, $t4, $t5 /* 0B994 8080F6D4 A44E07AA */ sh $t6, 0x07AA($v0) ## 801607AA -/* 0B998 8080F6D8 0C01BF22 */ jal func_8006FC88 +/* 0B998 8080F6D8 0C01BF22 */ jal Environment_UpdateSkybox /* 0B99C 8080F6DC 8FA60044 */ lw $a2, 0x0044($sp) /* 0B9A0 8080F6E0 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 /* 0B9A4 8080F6E4 3C18E700 */ lui $t8, 0xE700 ## $t8 = E7000000 diff --git a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808109B8.s b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808109B8.s index a4ff6135bc..360b20c8ce 100644 --- a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808109B8.s +++ b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808109B8.s @@ -97,7 +97,7 @@ glabel func_808109B8 /* 0CDE4 80810B24 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001 /* 0CDE8 80810B28 018D7021 */ addu $t6, $t4, $t5 /* 0CDEC 80810B2C A44E07AA */ sh $t6, 0x07AA($v0) ## 801607AA -/* 0CDF0 80810B30 0C01BF22 */ jal func_8006FC88 +/* 0CDF0 80810B30 0C01BF22 */ jal Environment_UpdateSkybox /* 0CDF4 80810B34 8FA60038 */ lw $a2, 0x0038($sp) /* 0CDF8 80810B38 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 /* 0CDFC 80810B3C 3C18E700 */ lui $t8, 0xE700 ## $t8 = E7000000 diff --git a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808113A8.s b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808113A8.s index 281b2b31b8..a9e4537f30 100644 --- a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808113A8.s +++ b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808113A8.s @@ -351,9 +351,9 @@ glabel func_808113A8 /* 0DBDC 8081191C 3C080001 */ lui $t0, 0x0001 ## $t0 = 00010000 /* 0DBE0 80811920 3508C8E8 */ ori $t0, $t0, 0xC8E8 ## $t0 = 0001C8E8 /* 0DBE4 80811924 2419000A */ addiu $t9, $zero, 0x000A ## $t9 = 0000000A -/* 0DBE8 80811928 3C018012 */ lui $at, %hi(D_8011FB40) +/* 0DBE8 80811928 3C018012 */ lui $at, %hi(gTimeIncrement) /* 0DBEC 8081192C 8FA6002C */ lw $a2, 0x002C($sp) -/* 0DBF0 80811930 A439FB40 */ sh $t9, %lo(D_8011FB40)($at) +/* 0DBF0 80811930 A439FB40 */ sh $t9, %lo(gTimeIncrement)($at) /* 0DBF4 80811934 02081021 */ addu $v0, $s0, $t0 /* 0DBF8 80811938 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 /* 0DBFC 8081193C 24090063 */ addiu $t1, $zero, 0x0063 ## $t1 = 00000063 @@ -374,7 +374,7 @@ glabel func_808113A8 /* 0DC38 80811978 02082821 */ addu $a1, $s0, $t0 /* 0DC3C 8081197C 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001 /* 0DC40 80811980 E4400084 */ swc1 $f0, 0x0084($v0) ## 00000084 -/* 0DC44 80811984 0C01BF22 */ jal func_8006FC88 +/* 0DC44 80811984 0C01BF22 */ jal Environment_UpdateSkybox /* 0DC48 80811988 E4400088 */ swc1 $f0, 0x0088($v0) ## 00000088 /* 0DC4C 8081198C 8FA30030 */ lw $v1, 0x0030($sp) /* 0DC50 80811990 A22013E6 */ sb $zero, 0x13E6($s1) ## 8015FA46 diff --git a/assets/xml/objects/gameplay_field_keep.xml b/assets/xml/objects/gameplay_field_keep.xml index c9a2378cbb..63dbdfa040 100644 --- a/assets/xml/objects/gameplay_field_keep.xml +++ b/assets/xml/objects/gameplay_field_keep.xml @@ -53,8 +53,9 @@ - - + + + diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml index ce960a3765..41dac9a41a 100644 --- a/assets/xml/objects/gameplay_keep.xml +++ b/assets/xml/objects/gameplay_keep.xml @@ -843,10 +843,10 @@ - - - - + + + + diff --git a/data/z_kankyo.bss.s b/data/z_kankyo.bss.s deleted file mode 100644 index 37c15ab9b3..0000000000 --- a/data/z_kankyo.bss.s +++ /dev/null @@ -1,61 +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 .bss - -.balign 16 - -glabel D_8015FCF0 - .space 0x8 - -glabel D_8015FCF8 - .space 0xC - -glabel D_8015FD04 - .space 0x2 - -glabel D_8015FD06 - .space 0x2 - -glabel D_8015FD08 - .space 0x4 - -glabel D_8015FD0C - .space 0x4 - -glabel D_8015FD10 - .space 0x60 - -glabel D_8015FD70 - .space 0xC - -glabel D_8015FD7C - .space 0x2 - -glabel D_8015FD7E - .space 0x2 - -glabel D_8015FD80 - .space 0x4 - -glabel D_8015FD84 - .space 0x4 - -glabel D_8015FD88 - .space 0x10 - -glabel D_8015FD98 - .space 0x8 - -glabel D_8015FDA0 - .space 0xE - -glabel D_8015FDAE - .space 0x2 - -glabel D_8015FDB0 - .space 0x10 diff --git a/data/z_kankyo.data.s b/data/z_kankyo.data.s deleted file mode 100644 index 27a94266e5..0000000000 --- a/data/z_kankyo.data.s +++ /dev/null @@ -1,117 +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_8011FAF0 - .incbin "baserom.z64", 0xB96C90, 0x40 - -glabel D_8011FB30 - .incbin "baserom.z64", 0xB96CD0, 0x4 - -glabel D_8011FB34 - .incbin "baserom.z64", 0xB96CD4, 0x4 - -glabel D_8011FB38 - .incbin "baserom.z64", 0xB96CD8, 0x4 - -glabel D_8011FB3C - .incbin "baserom.z64", 0xB96CDC, 0x4 - -glabel D_8011FB40 - .incbin "baserom.z64", 0xB96CE0, 0x4 - -glabel D_8011FB44 - .incbin "baserom.z64", 0xB96CE4, 0x4 - -glabel D_8011FB48 - .incbin "baserom.z64", 0xB96CE8, 0xD4 - -glabel D_8011FC1C - .incbin "baserom.z64", 0xB96DBC, 0x120 - -glabel D_8011FD3C - .word _vr_fine0_staticSegmentRomStart - .word _vr_fine0_staticSegmentRomEnd - .word _vr_fine0_pal_staticSegmentRomStart - .word _vr_fine0_pal_staticSegmentRomEnd - .word _vr_fine1_staticSegmentRomStart - .word _vr_fine1_staticSegmentRomEnd - .word _vr_fine1_pal_staticSegmentRomStart - .word _vr_fine1_pal_staticSegmentRomEnd - .word _vr_fine2_staticSegmentRomStart - .word _vr_fine2_staticSegmentRomEnd - .word _vr_fine2_pal_staticSegmentRomStart - .word _vr_fine2_pal_staticSegmentRomEnd - .word _vr_fine3_staticSegmentRomStart - .word _vr_fine3_staticSegmentRomEnd - .word _vr_fine3_pal_staticSegmentRomStart - .word _vr_fine3_pal_staticSegmentRomEnd - .word _vr_cloud0_staticSegmentRomStart - .word _vr_cloud0_staticSegmentRomEnd - .word _vr_cloud0_pal_staticSegmentRomStart - .word _vr_cloud0_pal_staticSegmentRomEnd - .word _vr_cloud1_staticSegmentRomStart - .word _vr_cloud1_staticSegmentRomEnd - .word _vr_cloud1_pal_staticSegmentRomStart - .word _vr_cloud1_pal_staticSegmentRomEnd - .word _vr_cloud2_staticSegmentRomStart - .word _vr_cloud2_staticSegmentRomEnd - .word _vr_cloud2_pal_staticSegmentRomStart - .word _vr_cloud2_pal_staticSegmentRomEnd - .word _vr_cloud3_staticSegmentRomStart - .word _vr_cloud3_staticSegmentRomEnd - .word _vr_cloud3_pal_staticSegmentRomStart - .word _vr_cloud3_pal_staticSegmentRomEnd - .word _vr_holy0_staticSegmentRomStart - .word _vr_holy0_staticSegmentRomEnd - .word _vr_holy0_pal_staticSegmentRomStart - .word _vr_holy0_pal_staticSegmentRomEnd - -glabel D_8011FDCC - .incbin "baserom.z64", 0xB96F6C, 0x4 - -glabel D_8011FDD0 - .incbin "baserom.z64", 0xB96F70, 0x4 - -glabel D_8011FDD4 - .incbin "baserom.z64", 0xB96F74, 0x4 - -glabel D_8011FDD8 - .incbin "baserom.z64", 0xB96F78, 0x28 - -glabel D_8011FE00 - .incbin "baserom.z64", 0xB96FA0, 0x20 - -glabel D_8011FE20 - .incbin "baserom.z64", 0xB96FC0, 0x28 - -glabel D_8011FE48 - .incbin "baserom.z64", 0xB96FE8, 0x28 - -glabel D_8011FE70 - .incbin "baserom.z64", 0xB97010, 0xC - -glabel D_8011FE7C - .incbin "baserom.z64", 0xB9701C, 0xC - -glabel D_8011FE88 - .incbin "baserom.z64", 0xB97028, 0xC - -glabel D_8011FE94 - .incbin "baserom.z64", 0xB97034, 0xC - -glabel D_8011FEA0 - .incbin "baserom.z64", 0xB97040, 0x24 - -glabel D_8011FEC4 - .incbin "baserom.z64", 0xB97064, 0xC - -glabel D_8011FED0 - .incbin "baserom.z64", 0xB97070, 0x10 diff --git a/include/functions.h b/include/functions.h index 880efeb5dd..8d9b0fd6fb 100644 --- a/include/functions.h +++ b/include/functions.h @@ -871,47 +871,44 @@ void Font_LoadChar(Font* font, u8 character, u16 codePointIndex); void Font_LoadMessageBoxEndIcon(Font* font, u16 icon); void Font_LoadOrderedFont(Font* font); s32 func_8006F0A0(s32 arg0); -// ? func_8006F0D4(?); -// ? func_8006F0FC(?); -u8 func_8006F140(GlobalContext*, EnvironmentContext*, UNK_TYPE); -f32 func_8006F93C(u16, u16, u16); -f32 func_8006F9BC(u16 endFrame, u16 startFrame, u16 frames, u16, u16); -// ? func_8006FB94(?); -void func_8006FC88(u8 skyboxId, EnvironmentContext* envCtx, SkyboxContext* skyboxCtx); -void func_80070600(GlobalContext* globalCtx, s32 waterboxProperties); -void func_800706A0(GlobalContext* globalCtx); -// ? func_80070718(?); -void func_80070C24(GlobalContext* globalCtx, EnvironmentContext* envCtx, LightContext* lightCtx, PauseContext* pauseCtx, - MessageContext* msgCtx, GameOverContext* gameOverCtx, GraphicsContext* gfxCtx); -void func_800730DC(GlobalContext*); -void func_80073988(GlobalContext*, EnvironmentContext*, View*, GraphicsContext*, Vec3f, UNK_TYPE); -// ? func_80073A5C(?); -f32 func_800746DC(); -void func_80074704(GlobalContext*, View*, GraphicsContext*); -void func_80074CE8(GlobalContext* globalCtx, s32 arg1); -void func_80074D6C(GlobalContext*); -// ? func_80074FF4(?); -void func_800750C0(GlobalContext*); -void func_800753C4(GlobalContext*, u8); -void func_8007542C(GlobalContext*, u8); +u16 Environment_GetPixelDepth(s32 x, s32 y); +void Environment_GraphCallback(GraphicsContext* gfxCtx, void* param); +void Environment_Init(GlobalContext* globalCtx, EnvironmentContext* envCtx, s32 unused); +u8 Environment_SmoothStepToU8(u8* pvalue, u8 target, u8 scale, u8 step, u8 minStep); +u8 Environment_SmoothStepToS8(s8* pvalue, s8 target, u8 scale, u8 step, u8 minStep); +f32 Environment_LerpWeight(u16 max, u16 min, u16 val); +f32 Environment_LerpWeightAccelDecel(u16 endFrame, u16 startFrame, u16 curFrame, u16 accelDuration, u16 decelDuration); +void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, SkyboxContext* skyboxCtx); +void Environment_EnableUnderwaterLights(GlobalContext* globalCtx, s32 waterLightsIndex); +void Environment_DisableUnderwaterLights(GlobalContext* globalCtx); +void Environment_Update(GlobalContext* globalCtx, EnvironmentContext* envCtx, LightContext* lightCtx, + PauseContext* pauseCtx, MessageContext* msgCtx, GameOverContext* gameOverCtx, + GraphicsContext* gfxCtx); +void Environment_DrawSunAndMoon(GlobalContext* globalCtx); +void Environment_DrawSunLensFlare(GlobalContext* globalCtx, EnvironmentContext* envCtx, View* view, + GraphicsContext* gfxCtx, Vec3f pos, s32 unused); +void Environment_DrawLensFlare(GlobalContext* globalCtx, EnvironmentContext* envCtx, View* view, + GraphicsContext* gfxCtx, Vec3f pos, s32 unused, s16 arg6, f32 arg7, s16 arg8, u8 arg9); +void Environment_DrawRain(GlobalContext* globalCtx, View* view, GraphicsContext* gfxCtx); +void func_80074CE8(GlobalContext* globalCtx, u32 arg1); +void Environment_DrawSkyboxFilters(GlobalContext* globalCtx); +void Environment_UpdateLightningStrike(GlobalContext* globalCtx); +void Environment_AddLightningBolts(GlobalContext* globalCtx, u8 num); +void Environment_DrawLightning(GlobalContext* globalCtx, s32 unused); void func_800758AC(GlobalContext* globalCtx); -// ? func_80075B44(?); -void func_80075E68(GlobalContext* globalCtx); -void Kankyo_InitGameOverLights(GlobalContext* globalCtx); -void Kankyo_FadeInGameOverLights(GlobalContext* globalCtx); -void Kankyo_FadeOutGameOverLights(GlobalContext* globalCtx); -// ? func_800766C4(?); -void func_8007672C(GraphicsContext*, u8, u8, u8, u8, UNK_TYPE); -void func_80076934(GlobalContext* globalCtx, u8); -void func_800773A8(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4); -s32 func_800775CC(); -void func_800775D8(); -s32 func_800775E4(); +void Environment_DrawCustomLensFlare(GlobalContext* globalCtx); +void Environment_InitGameOverLights(GlobalContext* globalCtx); +void Environment_FadeInGameOverLights(GlobalContext* globalCtx); +void Environment_FadeOutGameOverLights(GlobalContext* globalCtx); +void Environment_FillScreen(GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue, u8 alpha, u8 drawFlags); +void Environment_DrawSandstorm(GlobalContext* globalCtx, u8 sandstormState); +void Environment_AdjustLights(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4); +s32 Environment_GetBgsDayCount(void); +void Environment_ClearBgsDayCount(void); +s32 Environment_GetTotalDays(void); void func_800775F0(u16); s32 func_80077600(void); -void func_80077624(GlobalContext* globalCtx); -void func_80077684(GlobalContext* globalCtx); -void func_800776E4(GlobalContext* globalCtx); +void Environment_WarpSongLeave(GlobalContext* globalCtx); void Lib_MemSet(u8* dest, size_t size, u8 val); f32 Math_CosS(s16 angle); f32 Math_SinS(s16 angle); @@ -962,7 +959,7 @@ void Lights_Draw(Lights* lights, GraphicsContext* gfxCtx); void Lights_BindAll(Lights* lights, LightNode* listHead, Vec3f* vec); void LightContext_Init(GlobalContext* globalCtx, LightContext* lightCtx); void LightContext_SetAmbientColor(LightContext* lightCtx, u8 r, u8 g, u8 b); -void func_8007A698(LightContext* lightCtx, u8 arg1, u8 arg2, u8 arg3, s16 numLights, s16 arg5); +void LightContext_SetFog(LightContext* lightCtx, u8 arg1, u8 arg2, u8 arg3, s16 numLights, s16 arg5); Lights* LightContext_NewLights(LightContext* lightCtx, GraphicsContext* gfxCtx); void LightContext_InitList(GlobalContext* globalCtx, LightContext* lightCtx); void LightContext_DestroyList(GlobalContext* globalCtx, LightContext* lightCtx); @@ -1128,9 +1125,9 @@ void Quake_Init(void); s16 Quake_Add(Camera* cam, u32 callbackIdx); u32 Quake_RemoveFromIdx(s16 idx); s16 Quake_Calc(Camera* camera, QuakeCamCalc* camData); -Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); -Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); -Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); +Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far); +Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far); +Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far); Gfx* Gfx_CallSetupDL(Gfx* gfx, u32 i); Gfx* func_800937C0(Gfx* gfx); Gfx* func_80093808(Gfx* gfx); @@ -1392,7 +1389,7 @@ void func_800AD950(struct_80166500* this); void func_800AD958(struct_80166500* this, Gfx** gfxp); void Skybox_Init(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skyboxId); Mtx* SkyboxDraw_UpdateMatrix(SkyboxContext* skyboxCtx, f32 x, f32 y, f32 z); -void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 alpha, f32 x, f32 y, f32 z); +void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 blend, f32 x, f32 y, f32 z); void SkyboxDraw_Update(SkyboxContext* skyboxCtx); void PlayerCall_InitFuncPtrs(void); void TransitionUnk_InitGraphics(TransitionUnk* this); @@ -1499,7 +1496,7 @@ void func_800BC490(GlobalContext* globalCtx, s16 point); s32 func_800BC56C(GlobalContext* globalCtx, s16 arg1); void func_800BC590(GlobalContext* globalCtx); void func_800BC5E0(GlobalContext* globalCtx, s32 arg1); -Gfx* func_800BC8A0(GlobalContext* globalCtx, Gfx* gfx); +Gfx* Gameplay_SetFog(GlobalContext* globalCtx, Gfx* gfx); void Gameplay_Destroy(GameState* thisx); void Gameplay_Init(GameState* thisx); void Gameplay_Main(GameState* thisx); @@ -2125,8 +2122,6 @@ void func_800F89A0(u8, Vec3f*); void func_800F89E8(Vec3f*); void func_800F9280(u8 seqIdx, u8 seqId, u8 arg2, u16 fadeTimer); void Audio_QueueSeqCmd(u32 bgmID); -u16 func_800FA0B4(u8 a0); -s32 func_800FA11C(u32, u32); void func_800F8A44(Vec3f* pos, u16 sfxId); void func_800F8BA0(u8, u16); void Audio_StopSfx(u32 sfxId); @@ -2137,8 +2132,11 @@ void func_800F8F88(void); u8 Audio_IsSfxPlaying(u32 sfxId); void func_800F905C(void); void func_800F9474(u8, u16); +void func_800F94FC(u32); void Audio_ProcessSeqCmd(u32); void Audio_ProcessSeqCmds(void); +u16 func_800FA0B4(u8 a0); +s32 func_800FA11C(u32 arg0, u32 arg1); void func_800FA174(u8); void func_800FA18C(u8, u8); void Audio_SetVolScale(u8 seqIdx, u8 scaleIdx, u8 targetVol, u8 volFadeTimer); diff --git a/include/regs.h b/include/regs.h index 7b30363079..a282977bda 100644 --- a/include/regs.h +++ b/include/regs.h @@ -38,6 +38,14 @@ #define kREG(r) BASE_REG(27, r) #define bREG(r) BASE_REG(28, r) +#define R_ENV_AMBIENT_COLOR(i) REG(0 + i) +#define R_ENV_LIGHT1_COLOR(i) REG(3 + i) +#define R_ENV_LIGHT2_COLOR(i) REG(6 + i) +#define R_ENV_DISABLE_DBG REG(9) +#define R_ENV_FOG_COLOR(i) REG(10 + i) +#define R_ENV_FOG_FAR REG(13) +#define R_ENV_FOG_NEAR REG(14) +#define R_ENV_TIME_INCREMENT REG(15) #define R_RUN_SPEED_LIMIT REG(45) #define R_ENABLE_ARENA_DBG SREG(0) #define R_UPDATE_RATE SREG(30) @@ -55,7 +63,7 @@ #define R_CAM_MIN_PHI2 OREG(35) #define R_AT_LERP_MIN OREG(41) #define R_AT_LERP_SCALE OREG(42) -#define R_CAM_YOFFSET_NORM OREG(46) +#define R_CAM_YOFFSET_NORM OREG(46) #define R_CAM_FIXED3_FOV PREG(7) #define R_DBG_CAM_UPDATE PREG(80) #define R_DBG_REG_UPDATE PREG(82) @@ -78,6 +86,8 @@ #define R_ITEM_ICON_X(i) ZREG(82 + i) #define R_ITEM_ICON_Y(i) ZREG(86 + i) #define R_ITEM_ICON_DD(i) ZREG(90 + i) +#define R_ENV_WIND_DIR(i) CREG(16 + i) +#define R_ENV_WIND_SPEED CREG(19) #define R_A_BTN_Y XREG(16) #define R_A_BTN_X XREG(17) #define R_A_ICON_Y XREG(19) @@ -87,6 +97,8 @@ #define R_MAGIC_BAR_X XREG(49) #define R_MAGIC_BAR_LARGE_Y XREG(50) #define R_MAGIC_FILL_X XREG(51) +#define R_ENV_LIGHT1_DIR(i) cREG(3 + i) +#define R_ENV_LIGHT2_DIR(i) cREG(6 + i) #define R_B_LABEL_DD WREG(0) #define R_OW_MINIMAP_X WREG(29) #define R_OW_MINIMAP_Y WREG(30) diff --git a/include/variables.h b/include/variables.h index bf552a29b3..3fa5077b93 100644 --- a/include/variables.h +++ b/include/variables.h @@ -4,6 +4,7 @@ #include "z64.h" #include "segment_symbols.h" +extern Mtx D_01000000; extern Gfx D_06025218[]; extern Gfx D_060252D8[]; extern Gfx D_06025438[]; @@ -158,27 +159,13 @@ extern s32 gDbgCamEnabled; extern s16 D_8011E0B0; //extern ? D_8011E0D4; extern GameStateOverlay gGameStateOverlayTable[6]; -//extern ? D_8011FAF0; -extern u8 D_8011FB30; +extern u8 gWeatherMode; extern u8 D_8011FB34; extern u8 D_8011FB38; -extern u8 D_8011FB3C; -extern u16 D_8011FB40; -//extern ? D_8011FB44; -//extern ? D_8011FB48; -//extern ? D_8011FC1C; -//extern ? D_8011FD3C; -//extern ? D_8011FDCC; -//extern ? D_8011FDD0; -//extern ? D_8011FE00; -//extern ? D_8011FE20; -//extern ? D_8011FE48; -//extern ? D_8011FE70; -//extern ? D_8011FE7C; -//extern ? D_8011FE88; -//extern ? D_8011FE94; -//extern ? D_8011FEC4; -//extern ? D_8011FED0; +extern u8 gSkyboxBlendingEnabled; +extern u16 gTimeIncrement; +extern struct_8011FC1C D_8011FC1C[][9]; +extern SkyboxFile gSkyboxFiles[]; extern s32 gZeldaArenaLogSeverity; extern MapData gMapDataTable; extern s16 gSpoilingItems[3]; @@ -2948,23 +2935,12 @@ extern u16 D_8015FCC4; //extern ? D_8015FCC6; extern u8 D_8015FCC8; //extern ? D_8015FCCA; -extern u8 D_8015FCF0; -extern Vec3f D_8015FCF8; -extern s16 D_8015FD04; +extern u8 gCustomLensFlareOn; +extern Vec3f gCustomLensFlarePos; extern s16 D_8015FD06; extern f32 D_8015FD08; extern s16 D_8015FD0C; -//extern ? D_8015FD10; -extern u8 D_8015FD70; -//extern ? D_8015FD7C; -//extern ? D_8015FD7E; -//extern ? D_8015FD80; -//extern ? D_8015FD84; -//extern ? D_8015FD88; -//extern ? D_8015FD98; -//extern ? D_8015FDA0; -//extern ? D_8015FDAE; -//extern ? D_8015FDB0; +extern LightningStrike gLightningStrike; //extern ? D_8015FDF8; extern MapData* gMapData; //extern ? D_80160020; diff --git a/include/z64.h b/include/z64.h index 24f404df2f..060ca295ee 100644 --- a/include/z64.h +++ b/include/z64.h @@ -11,6 +11,7 @@ #include "z64audio.h" #include "z64object.h" #include "z64camera.h" +#include "z64environment.h" #include "z64cutscene.h" #include "z64collision_check.h" #include "z64scene.h" @@ -130,16 +131,16 @@ typedef struct GraphicsContext { /* 0x01C4 */ char unk_01C4[0xC0]; /* 0x0284 */ OSViMode* viMode; /* 0x0288 */ char unk_0288[0x20]; // Unused, could this be Zelda 2/3 ? - /* 0x02A8 */ TwoHeadGfxArena overlay; // "Zelda 4" - /* 0x02B8 */ TwoHeadGfxArena polyOpa; // "Zelda 0" - /* 0x02C8 */ TwoHeadGfxArena polyXlu; // "Zelda 1" + /* 0x02A8 */ TwoHeadGfxArena overlay; // "Zelda 4" + /* 0x02B8 */ TwoHeadGfxArena polyOpa; // "Zelda 0" + /* 0x02C8 */ TwoHeadGfxArena polyXlu; // "Zelda 1" /* 0x02D8 */ u32 gfxPoolIdx; /* 0x02DC */ u16* curFrameBuffer; /* 0x02E0 */ char unk_2E0[0x04]; /* 0x02E4 */ u32 viFeatures; /* 0x02E8 */ s32 fbIdx; - /* 0x02EC */ void (*callback)(struct GraphicsContext*, u32); - /* 0x02F0 */ u32 callbackParam; + /* 0x02EC */ void (*callback)(struct GraphicsContext*, void*); + /* 0x02F0 */ void* callbackParam; /* 0x02F4 */ f32 xScale; /* 0x02F8 */ f32 yScale; /* 0x02FC */ char unk_2FC[0x04]; @@ -575,71 +576,7 @@ typedef enum { typedef struct { /* 0x00 */ u16 state; -} GameOverContext; // size = 0x02 - -typedef struct { - /* 0x00 */ char unk_00[0x02]; - /* 0x02 */ u16 unk_02; - /* 0x04 */ Vec3f unk_04; - /* 0x10 */ u8 unk_10; - /* 0x11 */ u8 unk_11; - /* 0x12 */ char unk_12[0x1]; - /* 0x13 */ u8 unk_13; - /* 0x14 */ char unk_14[0x01]; - /* 0x15 */ u8 skyDisabled; - /* 0x16 */ u8 sunMoonDisabled; - /* 0x17 */ u8 gloomySky; - /* 0x18 */ u8 unk_18; - /* 0x19 */ u8 unk_19; - /* 0x1A */ u16 unk_1A; - /* 0x1C */ char unk_1C[0x02]; - /* 0x1E */ u8 unk_1E; - /* 0x1F */ u8 unk_1F; - /* 0x20 */ u8 unk_20; - /* 0x21 */ u8 unk_21; - /* 0x22 */ u16 unk_22; - /* 0x24 */ u16 unk_24; - /* 0x26 */ char unk_26[0x04]; - /* 0x2A */ s8 unk_2A; - /* 0x2B */ s8 unk_2B; - /* 0x2C */ s8 unk_2C; - /* 0x2D */ char unk_2D[0x5E]; - /* 0x8C */ s16 unk_8C[3][3]; - /* 0x9E */ s16 unk_9E; - /* 0xA0 */ s16 unk_A0; - /* 0xA2 */ char unk_A2[0x06]; - /* 0xA8 */ s16 unk_A8; - /* 0xAA */ s16 unk_AA; - /* 0xAC */ s16 unk_AC; - /* 0xB0 */ f32 unk_B0; - /* 0xB4 */ u8 numLightSettings; - /* 0xB8 */ UNK_PTR lightSettingsList; - /* 0xBC */ u8 unk_BC; - /* 0xBD */ u8 unk_BD; - /* 0xBE */ u8 unk_BE; - /* 0xBF */ u8 unk_BF; - /* 0xC0 */ char unk_C0[0x0F]; - /* 0xCF */ u8 unk_CF[3]; - /* 0xD2 */ s16 unk_D2; - /* 0xD4 */ char unk_D4[0x02]; - /* 0xD6 */ u16 unk_D6; - /* 0xD8 */ f32 unk_D8; - /* 0xDC */ u8 unk_DC; - /* 0xDD */ u8 gloomySkyEvent; - /* 0xDE */ u8 unk_DE; - /* 0xDF */ u8 lightning; - /* 0xE0 */ u8 unk_E0; - /* 0xE1 */ u8 unk_E1; - /* 0xE2 */ u8 unk_E2[4]; - /* 0xE6 */ u8 unk_E6; - /* 0xE7 */ u8 unk_E7; - /* 0xE8 */ u8 unk_E8; - /* 0xE9 */ u8 unk_E9; - /* 0xEA */ u8 unk_EA[4]; - /* 0xEE */ u8 unk_EE[4]; - /* 0xF2 */ u8 unk_F2[4]; - /* 0xF6 */ char unk_F6[0x06]; -} EnvironmentContext; // size = 0xFC +} GameOverContext; // size = 0x2 typedef struct { /* 0x00 */ s16 id; @@ -1837,4 +1774,16 @@ typedef struct { /* 0x04 */ const char* name; } FlagSetEntry; // size = 0x08 +typedef struct { + /* 0x00 */ RomFile file; + /* 0x08 */ RomFile pallete; +} SkyboxFile; // size = 0x10 + +#define ROM_FILE(name) \ + { (u32) _##name##SegmentRomStart, (u32)_##name##SegmentRomEnd } +#define ROM_FILE_EMPTY(name) \ + { (u32) _##name##SegmentRomStart, (u32)_##name##SegmentRomStart } +#define ROM_FILE_UNSET \ + { 0 } + #endif diff --git a/include/z64environment.h b/include/z64environment.h new file mode 100644 index 0000000000..6369b95750 --- /dev/null +++ b/include/z64environment.h @@ -0,0 +1,129 @@ +#ifndef _Z64ENVIRONMENT_H_ +#define _Z64ENVIRONMENT_H_ + +#include "z64math.h" +#include "z64light.h" +#include "z64dma.h" + +#define FILL_SCREEN_OPA (1 << 0) +#define FILL_SCREEN_XLU (1 << 1) + +typedef enum { + /* 0 */ LIGHTNING_MODE_OFF, // no lightning + /* 1 */ LIGHTNING_MODE_ON, // request ligtning strikes at random intervals + /* 2 */ LIGHTNING_MODE_LAST // request one lightning strike before turning off +} LightningMode; + +typedef enum { + /* 0 */ LIGHTNING_STRIKE_WAIT, // wait between lightning strikes. request bolts when timer hits 0 + /* 1 */ LIGHTNING_STRIKE_START, // fade in the flash. note: bolts are requested in the previous state + /* 2 */ LIGHTNING_STRIKE_END // fade out the flash and go back to wait +} LightningStrikeState; + +typedef enum { + /* 0 */ SKYBOX_DMA_INACTIVE, + /* 1 */ SKYBOX_DMA_FILE1_START, + /* 2 */ SKYBOX_DMA_FILE1_DONE, + /* 3 */ SKYBOX_DMA_PAL1_START, + /* 11 */ SKYBOX_DMA_FILE2_START = 11, + /* 12 */ SKYBOX_DMA_FILE2_DONE, + /* 13 */ SKYBOX_DMA_PAL2_START +} SkyboxDmaState; + +typedef struct { + /* 0x00 */ u8 state; + /* 0x01 */ u8 flashRed; + /* 0x02 */ u8 flashGreen; + /* 0x03 */ u8 flashBlue; + /* 0x04 */ u8 flashAlphaTarget; + /* 0x08 */ f32 delayTimer; +} LightningStrike; // size = 0xC + +// describes what skybox files and blending modes to use depending on time of day +typedef struct { + /* 0x00 */ u16 startTime; + /* 0x02 */ u16 endTime; + /* 0x04 */ u8 blend; // if true, blend between.. skyboxes? palletes? + /* 0x05 */ u8 skybox1Index; // whats the difference between _pal and non _pal files? + /* 0x06 */ u8 skybox2Index; +} struct_8011FC1C; // size = 0x8 + +typedef struct { + /* 0x00 */ u8 ambientColor[3]; + /* 0x03 */ s8 light1Dir[3]; + /* 0x06 */ u8 light1Color[3]; + /* 0x09 */ s8 light2Dir[3]; + /* 0x0C */ u8 light2Color[3]; + /* 0x0F */ u8 fogColor[3]; + /* 0x12 */ s16 fogNear; + /* 0x14 */ s16 fogFar; +} EnvLightSettings; // size = 0x16 + +// 1.0: 801D8EC4 +// dbg: 80222A44 +typedef struct { + /* 0x00 */ char unk_00[0x02]; + /* 0x02 */ u16 timeIncrement; // how many units of time that pass every update + /* 0x04 */ Vec3f sunPos; // moon position can be found by negating the sun position + /* 0x10 */ u8 skybox1Index; + /* 0x11 */ u8 skybox2Index; + /* 0x12 */ char unk_12[0x01]; + /* 0x13 */ u8 skyboxBlend; + /* 0x14 */ char unk_14[0x01]; + /* 0x15 */ u8 skyboxDisabled; + /* 0x16 */ u8 sunMoonDisabled; + /* 0x17 */ u8 unk_17; // currentWeatherMode for skybox? (prev called gloomySky) + /* 0x18 */ u8 unk_18; // nextWeatherMode for skybox? + /* 0x19 */ u8 unk_19; + /* 0x1A */ u16 unk_1A; + /* 0x1C */ char unk_1C[0x02]; + /* 0x1E */ u8 indoors; // when set, day time has no effect on lighting + /* 0x1F */ u8 unk_1F; // outdoor light index + /* 0x20 */ u8 unk_20; // prev outdoor light index? + /* 0x21 */ u8 unk_21; + /* 0x22 */ u16 unk_22; + /* 0x24 */ u16 unk_24; + /* 0x26 */ char unk_26[0x02]; + /* 0x28 */ LightInfo dirLight1; // used for sunlight outdoors + /* 0x36 */ LightInfo dirLight2; // used for moonlight outdoors + /* 0x44 */ s8 skyboxDmaState; + /* 0x48 */ DmaRequest dmaRequest; + /* 0x68 */ OSMesgQueue loadQueue; + /* 0x80 */ OSMesg loadMsg; + /* 0x84 */ f32 unk_84; + /* 0x88 */ f32 unk_88; + /* 0x8C */ s16 adjAmbientColor[3]; + /* 0x92 */ s16 adjLight1Color[3]; + /* 0x98 */ s16 adjFogColor[3]; + /* 0x9E */ s16 adjFogNear; + /* 0xA0 */ s16 adjFogFar; + /* 0xA2 */ char unk_A2[0x06]; + /* 0xA8 */ Vec3s windDirection; + /* 0xB0 */ f32 windSpeed; + /* 0xB4 */ u8 numLightSettings; + /* 0xB8 */ EnvLightSettings* lightSettingsList; // list of light settings from the scene file + /* 0xBC */ u8 blendIndoorLights; // when true, blend between indoor light settings when switching + /* 0xBD */ u8 unk_BD; // indoor light index + /* 0xBE */ u8 unk_BE; // prev indoor light index? + /* 0xBF */ u8 unk_BF; + /* 0xC0 */ EnvLightSettings lightSettings; + /* 0xD6 */ u16 unk_D6; + /* 0xD8 */ f32 unk_D8; // indoor light blend weight? + /* 0xDC */ u8 unk_DC; + /* 0xDD */ u8 gloomySkyMode; + /* 0xDE */ u8 unk_DE; // gloomy sky state + /* 0xDF */ u8 lightningMode; + /* 0xE0 */ u8 unk_E0; // env sounds state + /* 0xE1 */ u8 fillScreen; + /* 0xE2 */ u8 screenFillColor[4]; + /* 0xE6 */ u8 sandstormState; + /* 0xE7 */ u8 sandstormPrimA; + /* 0xE8 */ u8 sandstormEnvA; + /* 0xE9 */ u8 customSkyboxFilter; + /* 0xEA */ u8 skyboxFilterColor[4]; + /* 0xEE */ u8 unk_EE[4]; + /* 0xF2 */ u8 unk_F2[4]; + /* 0xF6 */ char unk_F6[0x06]; +} EnvironmentContext; // size = 0xFC + +#endif diff --git a/include/z64light.h b/include/z64light.h index 079418d883..639490022a 100644 --- a/include/z64light.h +++ b/include/z64light.h @@ -45,12 +45,10 @@ typedef struct LightNode { typedef struct { /* 0x0 */ LightNode* listHead; - /* 0x4 */ Color_RGB8 ambient; - /* 0x7 */ u8 unk_07; - /* 0x8 */ u8 unk_08; - /* 0x9 */ u8 unk_09; - /* 0xA */ s16 unk_0A; - /* 0xC */ s16 unk_0C; + /* 0x4 */ u8 ambientColor[3]; + /* 0x7 */ u8 fogColor[3]; + /* 0xA */ s16 fogNear; // how close until fog starts taking effect. range 0 - 1000 + /* 0xC */ s16 fogFar; // how far until fog starts to saturate. range 0 - 1000 } LightContext; // size = 0x10 typedef enum { diff --git a/include/z64math.h b/include/z64math.h index 2b4ae68d31..5d6227d4c5 100644 --- a/include/z64math.h +++ b/include/z64math.h @@ -76,7 +76,9 @@ typedef struct { /* 0x06 */ s16 yaw; // azimuthal angle } VecSph; // size = 0x08 -#define F32_LERP(v0,v1,t) ((1.0f - (t)) * (v0) + (t) * (v1)) +#define LERP(x, y, scale) (((y) - (x)) * (scale) + (x)) +#define LERP32(x, y, scale) ((s32)(((y) - (x)) * (scale)) + (x)) +#define F32_LERP(v0,v1,t) ((v0) * (1.0f - (t)) + (v1) * (t)) #define F32_LERPIMP(v0, v1, t) (v0 + ((v1 - v0) * t)) #define F32_LERPIMPINV(v0, v1, t) ((v0) + (((v1) - (v0)) / (t))) #define BINANG_LERPIMP(v0, v1, t) ((v0) + (s16)(BINANG_SUB((v1), (v0)) * (t))) diff --git a/include/z64save.h b/include/z64save.h index 5771d6ffba..ea97d93b5a 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -66,8 +66,8 @@ typedef struct { /* 0x0008 */ s32 cutsceneIndex; /* 0x000C */ u16 dayTime; // "zelda_time" /* 0x0010 */ s32 nightFlag; - /* 0x0014 */ s32 numDays; - /* 0x0018 */ s32 unk_18; // increments with numDays, gets reset by goron for bgs and one other use + /* 0x0014 */ s32 totalDays; + /* 0x0018 */ s32 bgsDayCount; // increments with totalDays, can be cleared with `Environment_ClearBgsDayCount` /* 0x001C */ char newf[6]; // string "ZELDAZ". start of `info` substruct, originally called "information" /* 0x0022 */ u16 deaths; /* 0x0024 */ char playerName[8]; @@ -166,12 +166,12 @@ typedef struct { /* 0x1416 */ u16 nextDayTime; // "next_zelda_time" /* 0x1418 */ u8 fadeDuration; /* 0x1419 */ u8 unk_1419; // transition related - /* 0x141A */ u16 environmentTime; + /* 0x141A */ u16 skyboxTime; /* 0x141C */ u8 dogIsLost; /* 0x141D */ u8 nextTransition; /* 0x141E */ char unk_141E[0x0002]; /* 0x1420 */ s16 worldMapArea; - /* 0x1422 */ s16 unk_1422; // day time related + /* 0x1422 */ s16 sunsSongState; // controls the effects of suns song /* 0x1424 */ s16 healthAccumulator; } SaveContext; // size = 0x1428 @@ -205,4 +205,11 @@ typedef enum { /* 0x06 */ HS_DAMPE_RACE } HighScores; +typedef enum { + /* 0 */ SUNSSONG_INACTIVE, + /* 1 */ SUNSSONG_START, // the suns ocarina effect signals that the song has finished playing + /* 2 */ SUNSSONG_SPEED_TIME, // suns was played where time passes, speed up the advancement of time + /* 3 */ SUNSSONG_SPECIAL // time does not advance, but signals the song was played. used for freezing redeads +} SunsSongState; + #endif diff --git a/include/z64scene.h b/include/z64scene.h index 3ffac37e7a..8d3f0802e2 100644 --- a/include/z64scene.h +++ b/include/z64scene.h @@ -57,9 +57,9 @@ typedef struct { /* 0x00 */ u8 code; /* 0x01 */ u8 data1; /* 0x02 */ char pad[2]; - /* 0x04 */ s8 unk_04; - /* 0x05 */ s8 unk_05; - /* 0x06 */ s8 unk_06; + /* 0x04 */ u8 x; + /* 0x05 */ u8 y; + /* 0x06 */ u8 z; /* 0x07 */ u8 unk_07; } SCmdWindSettings; diff --git a/spec b/spec index e48f433cb2..5ac03d6dda 100644 --- a/spec +++ b/spec @@ -320,8 +320,6 @@ beginseg include "build/src/code/z_kaleido_setup.o" include "build/src/code/z_kanfont.o" include "build/src/code/z_kankyo.o" - include "build/data/z_kankyo.data.o" - include "build/data/z_kankyo.bss.o" include "build/src/code/z_lib.o" include "build/src/code/z_lifemeter.o" include "build/src/code/z_lights.o" diff --git a/src/boot/is_debug.c b/src/boot/is_debug.c index 1c8e49e5d5..2b4fb87d86 100644 --- a/src/boot/is_debug.c +++ b/src/boot/is_debug.c @@ -26,7 +26,7 @@ void osSyncPrintf(const char* fmt, ...) { va_start(args, fmt); _Printf(is_proutSyncPrintf, NULL, fmt, args); - + va_end(args); } @@ -36,7 +36,7 @@ void rmonPrintf(const char* fmt, ...) { va_start(args, fmt); _Printf(is_proutSyncPrintf, NULL, fmt, args); - + va_end(args); } diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 87686f8520..83ccc2dd29 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1355,9 +1355,9 @@ void func_8002EBCC(Actor* actor, GlobalContext* globalCtx, s32 flag) { Gfx* displayListHead; Gfx* displayList; - lightDir.x = globalCtx->envCtx.unk_2A; - lightDir.y = globalCtx->envCtx.unk_2B; - lightDir.z = globalCtx->envCtx.unk_2C; + lightDir.x = globalCtx->envCtx.dirLight1.params.dir.x; + lightDir.y = globalCtx->envCtx.dirLight1.params.dir.y; + lightDir.z = globalCtx->envCtx.dirLight1.params.dir.z; if (HREG(80) == 6) { osSyncPrintf("z_actor.c 3637 game_play->view.eye=[%f(%f) %f %f]\n", globalCtx->view.eye.x, @@ -1386,9 +1386,9 @@ void func_8002ED80(Actor* actor, GlobalContext* globalCtx, s32 flag) { Gfx* displayListHead; Gfx* displayList; - lightDir.x = globalCtx->envCtx.unk_2A; - lightDir.y = globalCtx->envCtx.unk_2B; - lightDir.z = globalCtx->envCtx.unk_2C; + lightDir.x = globalCtx->envCtx.dirLight1.params.dir.x; + lightDir.y = globalCtx->envCtx.dirLight1.params.dir.y; + lightDir.z = globalCtx->envCtx.dirLight1.params.dir.z; hilite = func_8002EB44(&actor->world.pos, &globalCtx->view.eye, &lightDir, globalCtx->state.gfxCtx); @@ -3568,9 +3568,9 @@ void Actor_SetColorFilter(Actor* actor, s16 colorFlag, s16 colorIntensityMax, s1 Hilite* func_800342EC(Vec3f* object, GlobalContext* globalCtx) { Vec3f lightDir; - lightDir.x = globalCtx->envCtx.unk_2A; - lightDir.y = globalCtx->envCtx.unk_2B; - lightDir.z = globalCtx->envCtx.unk_2C; + lightDir.x = globalCtx->envCtx.dirLight1.params.dir.x; + lightDir.y = globalCtx->envCtx.dirLight1.params.dir.y; + lightDir.z = globalCtx->envCtx.dirLight1.params.dir.z; return func_8002EABC(object, &globalCtx->view.eye, &lightDir, globalCtx->state.gfxCtx); } @@ -3578,9 +3578,9 @@ Hilite* func_800342EC(Vec3f* object, GlobalContext* globalCtx) { Hilite* func_8003435C(Vec3f* object, GlobalContext* globalCtx) { Vec3f lightDir; - lightDir.x = globalCtx->envCtx.unk_2A; - lightDir.y = globalCtx->envCtx.unk_2B; - lightDir.z = globalCtx->envCtx.unk_2C; + lightDir.x = globalCtx->envCtx.dirLight1.params.dir.x; + lightDir.y = globalCtx->envCtx.dirLight1.params.dir.y; + lightDir.z = globalCtx->envCtx.dirLight1.params.dir.z; return func_8002EB44(object, &globalCtx->view.eye, &lightDir, globalCtx->state.gfxCtx); } diff --git a/src/code/z_camera.c b/src/code/z_camera.c index 77197662e8..ece32d45a9 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -547,7 +547,7 @@ f32 Camera_GetWaterSurface(Camera* camera, Vec3f* chkPos, s32* envProp) { if (waterY < chkPos->y) { // the water's y position is below the check position - // the aka the position is NOT in the water. + // meaning the position is NOT in the water. return BGCHECK_Y_MIN; } @@ -1778,7 +1778,7 @@ s32 Camera_Normal2(Camera* camera) { if (camera->status == CAM_STAT_ACTIVE) { bgChk.pos = *eyeNext; - if ((camera->globalCtx->envCtx.skyDisabled == 0) || norm2->interfaceFlags & 0x10) { + if (!camera->globalCtx->envCtx.skyboxDisabled || norm2->interfaceFlags & 0x10) { Camera_BGCheckInfo(camera, at, &bgChk); *eye = bgChk.pos; } else { @@ -2110,7 +2110,7 @@ s32 Camera_Parallel1(Camera* camera) { Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spA8); if (camera->status == CAM_STAT_ACTIVE) { sp6C.pos = *eyeNext; - if (camera->globalCtx->envCtx.skyDisabled == 0 || para1->interfaceFlags & 0x10) { + if (!camera->globalCtx->envCtx.skyboxDisabled || para1->interfaceFlags & 0x10) { Camera_BGCheckInfo(camera, at, &sp6C); *eye = sp6C.pos; } else { @@ -2903,7 +2903,7 @@ s32 Camera_Battle1(Camera* camera) { Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spB4); spBC.pos = *eyeNext; if (camera->status == CAM_STAT_ACTIVE) { - if (camera->globalCtx->envCtx.skyDisabled == 0 || batt1->flags & 1) { + if (!camera->globalCtx->envCtx.skyboxDisabled || batt1->flags & 1) { Camera_BGCheckInfo(camera, at, &spBC); } else if (batt1->flags & 2) { func_80043F94(camera, at, &spBC); @@ -3225,7 +3225,7 @@ s32 Camera_KeepOn1(Camera* camera) { Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spD8); sp8C.pos = *eyeNext; if (camera->status == CAM_STAT_ACTIVE) { - if ((camera->globalCtx->envCtx.skyDisabled == 0) || keep1->interfaceFlags & 1) { + if (!camera->globalCtx->envCtx.skyboxDisabled || keep1->interfaceFlags & 1) { Camera_BGCheckInfo(camera, at, &sp8C); } else if (keep1->interfaceFlags & 2) { func_80043F94(camera, at, &sp8C); @@ -4205,7 +4205,7 @@ s32 Camera_Subj3(Camera* camera) { *eye = *eyeNext; anim->animTimer--; - if (camera->globalCtx->envCtx.skyDisabled == 0) { + if (!camera->globalCtx->envCtx.skyboxDisabled) { Camera_BGCheck(camera, at, eye); } else { func_80044340(camera, at, eye); @@ -7047,7 +7047,7 @@ void Camera_PrintSettings(Camera* camera) { s32 Camera_CheckWater(Camera* camera) { f32 waterY; s16 newQuakeId; - s32 waterBoxProp; + s32 waterLightsIndex; s32* waterPrevCamSetting = &camera->waterPrevCamSetting; s16 waterCamIdx; s16* quakeId = (s16*)&camera->waterQuakeId; @@ -7115,12 +7115,12 @@ s32 Camera_CheckWater(Camera* camera) { } } - if (waterY = Camera_GetWaterSurface(camera, &camera->eye, &waterBoxProp), waterY != BGCHECK_Y_MIN) { + if (waterY = Camera_GetWaterSurface(camera, &camera->eye, &waterLightsIndex), waterY != BGCHECK_Y_MIN) { camera->waterYPos = waterY; if (!(camera->unk_14C & 0x100)) { camera->unk_14C |= 0x100; osSyncPrintf("kankyo changed water, sound on\n"); - func_80070600(camera->globalCtx, waterBoxProp); + Environment_EnableUnderwaterLights(camera->globalCtx, waterLightsIndex); camera->unk_150 = 0x50; } @@ -7152,7 +7152,7 @@ s32 Camera_CheckWater(Camera* camera) { if (camera->unk_14C & 0x100) { camera->unk_14C &= ~0x100; osSyncPrintf("kankyo changed water off, sound off\n"); - func_800706A0(camera->globalCtx); + Environment_DisableUnderwaterLights(camera->globalCtx); if (*quakeId != 0) { Quake_RemoveFromIdx(*quakeId); } @@ -7567,7 +7567,7 @@ void Camera_Finish(Camera* camera) { camera->childCamIdx = camera->parentCamIdx = SUBCAM_FREE; camera->timer = -1; - camera->globalCtx->envCtx.unk_E1 = 0; + camera->globalCtx->envCtx.fillScreen = false; Gameplay_ClearCamera(camera->globalCtx, camera->thisIdx); } diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index 4923e56f17..43611d9d05 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -15,7 +15,7 @@ void SaveContext_Init(void) { gSaveContext.cutsceneTrigger = 0; gSaveContext.chamberCutsceneNum = 0; gSaveContext.nextDayTime = 0xFFFF; - gSaveContext.environmentTime = 0; + gSaveContext.skyboxTime = 0; gSaveContext.dogIsLost = true; gSaveContext.nextTransition = 0xFF; gSaveContext.unk_13EE = 50; diff --git a/src/code/z_construct.c b/src/code/z_construct.c index 1d14c7c629..fb2241d2fc 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -10,7 +10,7 @@ void func_801109B0(GlobalContext* globalCtx) { u16 doActionOffset; u8 temp; - gSaveContext.unk_1422 = 0; + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; gSaveContext.unk_13E8 = gSaveContext.unk_13EA = 0; View_Init(&interfaceCtx->view, globalCtx->state.gfxCtx); diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 09ada34433..8b750641f8 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -170,7 +170,7 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase* return; } - temp = func_8006F93C(cmd->endFrame - 1, cmd->startFrame, csCtx->frames); + temp = Environment_LerpWeight(cmd->endFrame - 1, cmd->startFrame, csCtx->frames); if (csCtx->frames == cmd->startFrame) { sp3F = 1; @@ -187,9 +187,9 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase* case 2: if (sp3F != 0) { func_800F6D58(0xF, 0, 0); - func_800753C4(globalCtx, 3); + Environment_AddLightningBolts(globalCtx, 3); if (1) {} - D_8015FD70 = 1; + gLightningStrike.state = LIGHTNING_STRIKE_START; } break; case 3: @@ -201,14 +201,14 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase* } break; case 6: - if (globalCtx->envCtx.unk_A0 < 0x3200) { - globalCtx->envCtx.unk_A0 += 0x23; + if (globalCtx->envCtx.adjFogFar < 12800) { + globalCtx->envCtx.adjFogFar += 35; } break; case 7: if (sp3F != 0) { globalCtx->envCtx.unk_19 = 1; - globalCtx->envCtx.gloomySky = 1; + globalCtx->envCtx.unk_17 = 1; globalCtx->envCtx.unk_18 = 0; globalCtx->envCtx.unk_1A = 0x3C; globalCtx->envCtx.unk_21 = 1; @@ -279,12 +279,12 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase* break; case 18: globalCtx->envCtx.unk_EE[0] = 0; - globalCtx->envCtx.gloomySkyEvent = 2; + globalCtx->envCtx.gloomySkyMode = 2; if (gSaveContext.dayTime < 0x4AAB) { gSaveContext.dayTime += 30; } if (globalCtx->envCtx.unk_EE[1] == 0) { - D_8011FB30 = 0; + gWeatherMode = 0; func_800F6D58(14, 1, 0); } break; @@ -331,16 +331,16 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase* break; case 27: if (globalCtx->state.frames & 8) { - if (globalCtx->envCtx.unk_8C[0][0] < 40) { - globalCtx->envCtx.unk_8C[0][0] += 2; - globalCtx->envCtx.unk_8C[1][1] -= 3; - globalCtx->envCtx.unk_8C[1][2] -= 3; + if (globalCtx->envCtx.adjAmbientColor[0] < 40) { + globalCtx->envCtx.adjAmbientColor[0] += 2; + globalCtx->envCtx.adjLight1Color[1] -= 3; + globalCtx->envCtx.adjLight1Color[2] -= 3; } } else { - if (globalCtx->envCtx.unk_8C[0][0] > 2) { - globalCtx->envCtx.unk_8C[0][0] -= 2; - globalCtx->envCtx.unk_8C[1][1] += 3; - globalCtx->envCtx.unk_8C[1][2] += 3; + if (globalCtx->envCtx.adjAmbientColor[0] > 2) { + globalCtx->envCtx.adjAmbientColor[0] -= 2; + globalCtx->envCtx.adjLight1Color[1] += 3; + globalCtx->envCtx.adjLight1Color[2] += 3; } } break; @@ -358,18 +358,18 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase* break; case 32: if (sp3F != 0) { - globalCtx->envCtx.unk_E6 = 1; + globalCtx->envCtx.sandstormState = 1; } func_800788CC(NA_SE_EV_SAND_STORM - SFX_FLAG); break; case 33: - gSaveContext.unk_1422 = 1; + gSaveContext.sunsSongState = SUNSSONG_START; break; case 34: if (IS_DAY) { - gSaveContext.dayTime -= D_8011FB40; + gSaveContext.dayTime -= gTimeIncrement; } else { - gSaveContext.dayTime -= D_8011FB40 * 2; + gSaveContext.dayTime -= gTimeIncrement * 2; } break; case 35: @@ -433,7 +433,7 @@ void func_80065134(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdDayTim temp2 = (cmd->minute + 1) / (360.0f / 0x4000); gSaveContext.dayTime = temp1 + temp2; - gSaveContext.environmentTime = temp1 + temp2; + gSaveContext.skyboxTime = temp1 + temp2; } } @@ -1174,7 +1174,7 @@ void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCt break; case 119: gSaveContext.dayTime = 0x8000; - gSaveContext.environmentTime = 0x8000; + gSaveContext.skyboxTime = 0x8000; globalCtx->nextEntranceIndex = 0x05F0; globalCtx->sceneLoadFlag = 0x14; globalCtx->fadeTransition = 3; @@ -1188,17 +1188,17 @@ void Cutscene_Command_TransitionFX(GlobalContext* globalCtx, CutsceneContext* cs f32 temp; if ((csCtx->frames >= cmd->startFrame) && (csCtx->frames <= cmd->endFrame)) { - globalCtx->envCtx.unk_E1 = 1; - temp = func_8006F93C(cmd->endFrame, cmd->startFrame, csCtx->frames); + globalCtx->envCtx.fillScreen = true; + temp = Environment_LerpWeight(cmd->endFrame, cmd->startFrame, csCtx->frames); switch (cmd->base) { case 1: case 5: - globalCtx->envCtx.unk_E2[0] = 0xA0; - globalCtx->envCtx.unk_E2[1] = 0xA0; - globalCtx->envCtx.unk_E2[2] = 0xA0; + globalCtx->envCtx.screenFillColor[0] = 160; + globalCtx->envCtx.screenFillColor[1] = 160; + globalCtx->envCtx.screenFillColor[2] = 160; if (cmd->base == 1) { - globalCtx->envCtx.unk_E2[3] = 255.0f * temp; + globalCtx->envCtx.screenFillColor[3] = 255.0f * temp; if ((temp == 0.0f) && (gSaveContext.entranceIndex == 0x006B)) { Audio_PlaySoundGeneral(NA_SE_SY_WHITE_OUT_S, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); @@ -1211,40 +1211,40 @@ void Cutscene_Command_TransitionFX(GlobalContext* globalCtx, CutsceneContext* cs func_800788CC(NA_SE_EV_WHITE_OUT); } } else { - globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f; + globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; } break; case 2: case 6: - globalCtx->envCtx.unk_E2[0] = 0; - globalCtx->envCtx.unk_E2[1] = 0; - globalCtx->envCtx.unk_E2[2] = 0xFF; + globalCtx->envCtx.screenFillColor[0] = 0; + globalCtx->envCtx.screenFillColor[1] = 0; + globalCtx->envCtx.screenFillColor[2] = 255; if (cmd->base == 2) { - globalCtx->envCtx.unk_E2[3] = 255.0f * temp; + globalCtx->envCtx.screenFillColor[3] = 255.0f * temp; } else { - globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f; + globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; } break; case 3: case 7: - globalCtx->envCtx.unk_E2[0] = 0xFF; - globalCtx->envCtx.unk_E2[1] = 0; - globalCtx->envCtx.unk_E2[2] = 0; + globalCtx->envCtx.screenFillColor[0] = 255; + globalCtx->envCtx.screenFillColor[1] = 0; + globalCtx->envCtx.screenFillColor[2] = 0; if (cmd->base == 3) { - globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f; + globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; } else { - globalCtx->envCtx.unk_E2[3] = 255.0f * temp; + globalCtx->envCtx.screenFillColor[3] = 255.0f * temp; } break; case 4: case 8: - globalCtx->envCtx.unk_E2[0] = 0; - globalCtx->envCtx.unk_E2[1] = 0xFF; - globalCtx->envCtx.unk_E2[2] = 0; + globalCtx->envCtx.screenFillColor[0] = 0; + globalCtx->envCtx.screenFillColor[1] = 255; + globalCtx->envCtx.screenFillColor[2] = 0; if (cmd->base == 4) { - globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f; + globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; } else { - globalCtx->envCtx.unk_E2[3] = 255.0f * temp; + globalCtx->envCtx.screenFillColor[3] = 255.0f * temp; } break; case 9: @@ -1252,23 +1252,23 @@ void Cutscene_Command_TransitionFX(GlobalContext* globalCtx, CutsceneContext* cs break; case 10: case 11: - globalCtx->envCtx.unk_E2[0] = 0; - globalCtx->envCtx.unk_E2[1] = 0; - globalCtx->envCtx.unk_E2[2] = 0; + globalCtx->envCtx.screenFillColor[0] = 0; + globalCtx->envCtx.screenFillColor[1] = 0; + globalCtx->envCtx.screenFillColor[2] = 0; if (cmd->base == 10) { - globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f; + globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; } else { - globalCtx->envCtx.unk_E2[3] = 255.0f * temp; + globalCtx->envCtx.screenFillColor[3] = 255.0f * temp; } break; case 12: gSaveContext.unk_1410 = 255.0f - (155.0f * temp); break; case 13: - globalCtx->envCtx.unk_E2[0] = 0; - globalCtx->envCtx.unk_E2[1] = 0; - globalCtx->envCtx.unk_E2[2] = 0; - globalCtx->envCtx.unk_E2[3] = 255.0f - ((1.0f - temp) * 155.0f); + globalCtx->envCtx.screenFillColor[0] = 0; + globalCtx->envCtx.screenFillColor[1] = 0; + globalCtx->envCtx.screenFillColor[2] = 0; + globalCtx->envCtx.screenFillColor[3] = 255.0f - ((1.0f - temp) * 155.0f); break; } } diff --git a/src/code/z_eff_ss_dead.c b/src/code/z_eff_ss_dead.c index aebee67b38..b3978547be 100644 --- a/src/code/z_eff_ss_dead.c +++ b/src/code/z_eff_ss_dead.c @@ -56,7 +56,7 @@ void func_80026608(GlobalContext* globalCtx) { OPEN_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead.c", 159); gDPPipeSync(POLY_OPA_DISP++); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead.c", 164); } @@ -115,7 +115,7 @@ void func_80026A6C(GlobalContext* globalCtx) { OPEN_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead.c", 217); gDPPipeSync(POLY_XLU_DISP++); - POLY_XLU_DISP = func_800BC8A0(globalCtx, POLY_XLU_DISP); + POLY_XLU_DISP = Gameplay_SetFog(globalCtx, POLY_XLU_DISP); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead.c", 222); } diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 35fd673871..f83bb8456b 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -1036,7 +1036,7 @@ void EnItem00_DrawCollectible(EnItem00* this, GlobalContext* globalCtx) { OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1594); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); if (this->actor.params == ITEM00_BOMBS_SPECIAL) { texIndex = 1; diff --git a/src/code/z_frame_advance.c b/src/code/z_frame_advance.c index c8a2c64ff2..930db59b32 100644 --- a/src/code/z_frame_advance.c +++ b/src/code/z_frame_advance.c @@ -7,7 +7,7 @@ void FrameAdvance_Init(FrameAdvanceContext* frameAdvCtx) { /** * Frame advance allows you to advance through the game one frame at a time on command. - * To enable, hold R and press Dpad Down on the provided controller. + * To enable, hold R and press Dpad Down on the specified controller. * To advance a frame, hold Z and press R. * Holding Z and R will advance a frame every half second. * diff --git a/src/code/z_game_over.c b/src/code/z_game_over.c index c978b69cfe..c41a8e5b8d 100644 --- a/src/code/z_game_over.c +++ b/src/code/z_game_over.c @@ -9,7 +9,7 @@ void GameOver_FadeInLights(GlobalContext* globalCtx) { if ((gameOverCtx->state >= GAMEOVER_DEATH_WAIT_GROUND && gameOverCtx->state < GAMEOVER_REVIVE_START) || (gameOverCtx->state >= GAMEOVER_REVIVE_RUMBLE && gameOverCtx->state < GAMEOVER_REVIVE_FADE_OUT)) { - Kankyo_FadeInGameOverLights(globalCtx); + Environment_FadeInGameOverLights(globalCtx); } } @@ -74,7 +74,7 @@ void GameOver_Update(GlobalContext* globalCtx) { gSaveContext.buttonStatus[3] = gSaveContext.buttonStatus[4] = BTN_ENABLED; gSaveContext.unk_13E7 = gSaveContext.unk_13E8 = gSaveContext.unk_13EA = gSaveContext.unk_13EC = 0; - Kankyo_InitGameOverLights(globalCtx); + Environment_InitGameOverLights(globalCtx); D_80153D80 = 20; if (1) {} v90 = VREG(90); @@ -103,7 +103,7 @@ void GameOver_Update(GlobalContext* globalCtx) { case GAMEOVER_REVIVE_START: gameOverCtx->state++; D_80153D80 = 0; - Kankyo_InitGameOverLights(globalCtx); + Environment_InitGameOverLights(globalCtx); ShrinkWindow_SetVal(0x20); return; @@ -139,7 +139,7 @@ void GameOver_Update(GlobalContext* globalCtx) { break; case GAMEOVER_REVIVE_FADE_OUT: - Kankyo_FadeOutGameOverLights(globalCtx); + Environment_FadeOutGameOverLights(globalCtx); D_80153D80--; if (D_80153D80 == 0) { diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 61e9b2f78c..ee0ab613be 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -1,94 +1,2499 @@ #include "global.h" +#include "ultra64.h" +#include "vt.h" +#include "objects/gameplay_keep/gameplay_keep.h" #include "objects/gameplay_field_keep/gameplay_field_keep.h" -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F0A0.s") +typedef enum { + /* 0 */ LENS_FLARE_CIRCLE0, + /* 1 */ LENS_FLARE_CIRCLE1, + /* 2 */ LENS_FLARE_RING +} LensFlareType; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F0D4.s") +typedef enum { + /* 0x00 */ LIGHTNING_BOLT_START, + /* 0x01 */ LIGHTNING_BOLT_WAIT, + /* 0x02 */ LIGHTNING_BOLT_DRAW, + /* 0xFF */ LIGHTNING_BOLT_INACTIVE = 0xFF +} LightningBoltState; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F0FC.s") +typedef struct { + /* 0x00 */ u16 startTime; + /* 0x02 */ u16 endTime; + /* 0x04 */ u8 unk_04; + /* 0x05 */ u8 unk_05; +} struct_8011FB48; // size = 0x6 -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F140.s") +typedef struct { + /* 0x00 */ u8 state; + /* 0x04 */ Vec3f offset; + /* 0x10 */ Vec3f pos; + /* 0x1C */ s8 pitch; + /* 0x1D */ s8 roll; + /* 0x1E */ u8 textureIndex; + /* 0x1F */ u8 delayTimer; +} LightningBolt; // size = 0x20 -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F93C.s") +typedef struct { + /* 0x00 */ s32 unk0; + /* 0x04 */ s32 unk1; +} Struct_8011FAF0; // size = 0x8 -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F9BC.s") +Struct_8011FAF0 D_8011FAF0[] = { + { 6, 0x00000000 }, { 5, 0x00020000 }, { 4, 0x00030000 }, { 3, 0x00038000 }, + { 2, 0x0003C000 }, { 1, 0x0003E000 }, { 0, 0x0003F000 }, { 0, 0x0003F800 }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006FB94.s") +u8 gWeatherMode = 0; // "E_wether_flg" -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006FC88.s") +u8 D_8011FB34 = 0; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80070600.s") +u8 D_8011FB38 = 0; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800706A0.s") +u8 gSkyboxBlendingEnabled = false; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80070718.s") +u16 gTimeIncrement = 0; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80070C24.s") +u16 D_8011FB44 = 0xFFFC; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800730DC.s") +struct_8011FB48 D_8011FB48[][7] = { + { + { 0x0000, 0x2AAC, 3, 3 }, + { 0x2AAC, 0x4000, 3, 0 }, + { 0x4000, 0x5556, 0, 1 }, + { 0x5556, 0xAAAB, 1, 1 }, + { 0xAAAB, 0xB556, 1, 2 }, + { 0xB556, 0xCAAC, 2, 3 }, + { 0xCAAC, 0xFFFF, 3, 3 }, + }, + { + { 0x0000, 0x2AAC, 7, 7 }, + { 0x2AAC, 0x4000, 7, 4 }, + { 0x4000, 0x5556, 4, 5 }, + { 0x5556, 0xAAAB, 5, 5 }, + { 0xAAAB, 0xB556, 5, 6 }, + { 0xB556, 0xCAAC, 6, 7 }, + { 0xCAAC, 0xFFFF, 7, 7 }, + }, + { + { 0x0000, 0x2AAC, 11, 11 }, + { 0x2AAC, 0x4000, 11, 8 }, + { 0x4000, 0x5556, 8, 9 }, + { 0x5556, 0xAAAB, 9, 9 }, + { 0xAAAB, 0xB556, 9, 10 }, + { 0xB556, 0xCAAC, 10, 11 }, + { 0xCAAC, 0xFFFF, 11, 11 }, + }, + { + { 0x0000, 0x2AAC, 15, 15 }, + { 0x2AAC, 0x4000, 15, 12 }, + { 0x4000, 0x5556, 12, 13 }, + { 0x5556, 0xAAAB, 13, 13 }, + { 0xAAAB, 0xB556, 13, 14 }, + { 0xB556, 0xCAAC, 14, 15 }, + { 0xCAAC, 0xFFFF, 15, 15 }, + }, + { + { 0x0000, 0x2AAC, 23, 23 }, + { 0x2AAC, 0x4000, 23, 20 }, + { 0x4000, 0x5556, 20, 21 }, + { 0x5556, 0xAAAB, 21, 21 }, + { 0xAAAB, 0xB556, 21, 22 }, + { 0xB556, 0xCAAC, 22, 23 }, + { 0xCAAC, 0xFFFF, 23, 23 }, + }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80073988.s") +struct_8011FC1C D_8011FC1C[][9] = { + { + { 0x0000, 0x2AAC, 0, 3, 3 }, + { 0x2AAC, 0x3556, 1, 3, 0 }, + { 0x3556, 0x4000, 0, 0, 0 }, + { 0x4000, 0x5556, 1, 0, 1 }, + { 0x5556, 0xAAAB, 0, 1, 1 }, + { 0xAAAB, 0xB556, 1, 1, 2 }, + { 0xB556, 0xC001, 0, 2, 2 }, + { 0xC001, 0xCAAC, 1, 2, 3 }, + { 0xCAAC, 0xFFFF, 0, 3, 3 }, + }, + { + { 0x0000, 0x2AAC, 0, 7, 7 }, + { 0x2AAC, 0x3556, 1, 7, 4 }, + { 0x3556, 0x4000, 0, 4, 4 }, + { 0x4000, 0x5556, 1, 4, 5 }, + { 0x5556, 0xAAAB, 0, 5, 5 }, + { 0xAAAB, 0xB556, 1, 5, 6 }, + { 0xB556, 0xC001, 0, 6, 6 }, + { 0xC001, 0xCAAC, 1, 6, 7 }, + { 0xCAAC, 0xFFFF, 0, 7, 7 }, + }, + { + { 0x0000, 0x1556, 0, 3, 3 }, + { 0x1556, 0x2AAC, 1, 3, 0 }, + { 0x2AAC, 0x5556, 0, 0, 0 }, + { 0x5556, 0x6AAB, 1, 0, 1 }, + { 0x6AAB, 0x9556, 0, 1, 1 }, + { 0x9556, 0xAAAB, 1, 1, 2 }, + { 0xAAAB, 0xD556, 0, 2, 2 }, + { 0xD556, 0xEAAB, 1, 2, 3 }, + { 0xEAAB, 0xFFFF, 0, 3, 3 }, + }, + { + { 0x0000, 0x3556, 0, 11, 11 }, + { 0x3556, 0x4000, 1, 11, 8 }, + { 0x4000, 0x4AAB, 0, 8, 8 }, + { 0x4AAB, 0x5556, 1, 8, 9 }, + { 0x5556, 0xAAAB, 0, 9, 9 }, + { 0xAAAB, 0xB556, 1, 9, 10 }, + { 0xB556, 0xC001, 0, 10, 10 }, + { 0xC001, 0xCAAC, 1, 10, 11 }, + { 0xCAAC, 0xFFFF, 0, 11, 11 }, + }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80073A5C.s") +SkyboxFile gSkyboxFiles[] = { + { + ROM_FILE(vr_fine0_static), + ROM_FILE(vr_fine0_pal_static), + }, + { + ROM_FILE(vr_fine1_static), + ROM_FILE(vr_fine1_pal_static), + }, + { + ROM_FILE(vr_fine2_static), + ROM_FILE(vr_fine2_pal_static), + }, + { + ROM_FILE(vr_fine3_static), + ROM_FILE(vr_fine3_pal_static), + }, + { + ROM_FILE(vr_cloud0_static), + ROM_FILE(vr_cloud0_pal_static), + }, + { + ROM_FILE(vr_cloud1_static), + ROM_FILE(vr_cloud1_pal_static), + }, + { + ROM_FILE(vr_cloud2_static), + ROM_FILE(vr_cloud2_pal_static), + }, + { + ROM_FILE(vr_cloud3_static), + ROM_FILE(vr_cloud3_pal_static), + }, + { + ROM_FILE(vr_holy0_static), + ROM_FILE(vr_holy0_pal_static), + }, +}; -f32 func_800746DC() { +u8 D_8011FDCC = 0; +u8 D_8011FDD0 = 0; +f32 D_8011FDD4 = 0.0f; + +u8 gCustomLensFlareOn; +Vec3f gCustomLensFlarePos; +s16 D_8015FD04; +s16 D_8015FD06; +f32 D_8015FD08; +s16 D_8015FD0C; +LightningBolt sLightningBolts[3]; +LightningStrike gLightningStrike; +s16 sLightningFlashAlpha; +s16 D_8015FD7E; +s16 D_8015FD80; +LightNode* sNGameOverLightNode; +LightInfo sNGameOverLightInfo; +LightNode* sSGameOverLightNode; +LightInfo sSGameOverLightInfo; +u8 sGameOverLightsIntensity; +u16 D_8015FDB0; + +s32 func_8006F0A0(s32 a0) { + s32 ret = ((a0 >> 4 & 0x7FF) << D_8011FAF0[a0 >> 15 & 7].unk0) + D_8011FAF0[a0 >> 15 & 7].unk1; + + return ret; +} + +u16 Environment_GetPixelDepth(s32 x, s32 y) { + s32 pixelDepth = gZBuffer[y][x]; + + return pixelDepth; +} + +void Environment_GraphCallback(GraphicsContext* gfxCtx, void* param) { + GlobalContext* globalCtx = (GlobalContext*)param; + + D_8011FB44 = Environment_GetPixelDepth(D_8015FD7E, D_8015FD80); + Lights_GlowCheck(globalCtx); +} + +void Environment_Init(GlobalContext* globalCtx2, EnvironmentContext* envCtx, s32 unused) { + u8 i; + GlobalContext* globalCtx = globalCtx2; + + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; + + if (((void)0, gSaveContext.dayTime) > 0xC000 || ((void)0, gSaveContext.dayTime) < 0x4555) { + ((void)0, gSaveContext.nightFlag = true); + } else { + ((void)0, gSaveContext.nightFlag = false); + } + + globalCtx->state.gfxCtx->callback = Environment_GraphCallback; + globalCtx->state.gfxCtx->callbackParam = globalCtx; + + Lights_DirectionalSetInfo(&envCtx->dirLight1, 80, 80, 80, 80, 80, 80); + LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &envCtx->dirLight1); + + Lights_DirectionalSetInfo(&envCtx->dirLight2, 80, 80, 80, 80, 80, 80); + LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &envCtx->dirLight2); + + envCtx->skybox1Index = 99; + envCtx->skybox2Index = 99; + envCtx->unk_19 = 0; + envCtx->unk_1A = 0; + envCtx->unk_21 = 0; + envCtx->unk_22 = 0; + envCtx->skyboxDmaState = SKYBOX_DMA_INACTIVE; + envCtx->unk_1F = 0; + envCtx->unk_20 = 0; + envCtx->unk_84 = 0.0f; + envCtx->unk_88 = 0.0f; + envCtx->unk_BD = 0; + envCtx->unk_BE = 0; + envCtx->unk_D8 = 1.0f; + envCtx->unk_DC = 0; + envCtx->gloomySkyMode = 0; + envCtx->unk_DE = 0; + envCtx->lightningMode = LIGHTNING_MODE_OFF; + envCtx->unk_E0 = 0; + envCtx->fillScreen = false; + envCtx->screenFillColor[0] = 0; + envCtx->screenFillColor[1] = 0; + envCtx->screenFillColor[2] = 0; + envCtx->screenFillColor[3] = 0; + envCtx->customSkyboxFilter = false; + envCtx->skyboxFilterColor[0] = 0; + envCtx->skyboxFilterColor[1] = 0; + envCtx->skyboxFilterColor[2] = 0; + envCtx->skyboxFilterColor[3] = 0; + envCtx->sandstormState = 0; + envCtx->sandstormPrimA = 0; + envCtx->sandstormEnvA = 0; + + gLightningStrike.state = LIGHTNING_STRIKE_WAIT; + gLightningStrike.flashRed = 0; + gLightningStrike.flashGreen = 0; + gLightningStrike.flashBlue = 0; + + sLightningFlashAlpha = 0; + + gSaveContext.unk_1410 = 0; + + envCtx->adjAmbientColor[0] = envCtx->adjAmbientColor[1] = envCtx->adjAmbientColor[2] = envCtx->adjLight1Color[0] = + envCtx->adjLight1Color[1] = envCtx->adjLight1Color[2] = envCtx->adjFogColor[0] = envCtx->adjFogColor[1] = + envCtx->adjFogColor[2] = envCtx->adjFogNear = envCtx->adjFogFar = 0; + + envCtx->sunPos.x = -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f; + envCtx->sunPos.y = +(Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f; + envCtx->sunPos.z = +(Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f) * 25.0f; + + envCtx->windDirection.x = 80; + envCtx->windDirection.y = 80; + envCtx->windDirection.z = 80; + + envCtx->blendIndoorLights = false; + envCtx->unk_BF = 0xFF; + envCtx->unk_D6 = 0xFFFF; + R_ENV_TIME_INCREMENT = gTimeIncrement = envCtx->timeIncrement = 0; + R_ENV_DISABLE_DBG = true; + + if (CREG(3) != 0) { + gSaveContext.chamberCutsceneNum = CREG(3) - 1; + } + + globalCtx->envCtx.unk_EE[0] = 0; + globalCtx->envCtx.unk_EE[1] = 0; + globalCtx->envCtx.unk_EE[2] = 0; + globalCtx->envCtx.unk_EE[3] = 0; + + globalCtx->envCtx.unk_F2[0] = 0; + + if (gSaveContext.unk_13C3 != 0) { + if (((void)0, gSaveContext.sceneSetupIndex) < 4) { + switch (gWeatherMode) { + case 1: + envCtx->unk_17 = 1; + envCtx->unk_18 = 1; + envCtx->unk_1F = 3; + envCtx->unk_20 = 3; + globalCtx->envCtx.unk_EE[3] = 0; + globalCtx->envCtx.unk_EE[2] = 0; + break; + case 2: + case 3: + case 4: + envCtx->unk_17 = 1; + envCtx->unk_18 = 1; + envCtx->unk_1F = 2; + envCtx->unk_20 = 2; + globalCtx->envCtx.unk_EE[3] = 0; + globalCtx->envCtx.unk_EE[2] = 0; + break; + case 5: + envCtx->unk_17 = 1; + envCtx->unk_18 = 1; + envCtx->unk_1F = 4; + envCtx->unk_20 = 4; + globalCtx->envCtx.unk_EE[3] = 0; + globalCtx->envCtx.unk_EE[2] = 0; + break; + default: + break; + } + + if (globalCtx->skyboxId == SKYBOX_NORMAL_SKY) { + if (gWeatherMode == 3) { + globalCtx->envCtx.unk_EE[2] = globalCtx->envCtx.unk_EE[3] = 0x40; + } else if (gWeatherMode == 4) { + globalCtx->envCtx.unk_EE[0] = 0x14; + globalCtx->envCtx.unk_EE[1] = 0x14; + } else if (gWeatherMode == 5) { + globalCtx->envCtx.unk_EE[0] = 0x1E; + globalCtx->envCtx.unk_EE[1] = 0x1E; + } + } + } + } else { + gWeatherMode = 0; + } + + D_8011FB38 = 0; + D_8011FB34 = 0; + gSkyboxBlendingEnabled = false; + gSaveContext.unk_13C3 = 0; + R_ENV_LIGHT1_DIR(0) = 80; + R_ENV_LIGHT1_DIR(1) = 80; + R_ENV_LIGHT1_DIR(2) = 80; + R_ENV_LIGHT2_DIR(0) = -80; + R_ENV_LIGHT2_DIR(1) = -80; + R_ENV_LIGHT2_DIR(2) = -80; + cREG(9) = 10; + cREG(10) = 0; + cREG(11) = 0; + cREG(12) = 0; + cREG(13) = 0; + cREG(14) = 0; + D_8015FCC8 = 1; + + for (i = 0; i < ARRAY_COUNT(sLightningBolts); i++) { + sLightningBolts[i].state = LIGHTNING_BOLT_INACTIVE; + } + + globalCtx->roomCtx.unk_74[0] = 0; + globalCtx->roomCtx.unk_74[1] = 0; + + for (i = 0; i < ARRAY_COUNT(globalCtx->csCtx.npcActions); i++) { + globalCtx->csCtx.npcActions[i] = 0; + } + + if (Object_GetIndex(&globalCtx->objectCtx, OBJECT_GAMEPLAY_FIELD_KEEP) < 0 && !globalCtx->envCtx.sunMoonDisabled) { + globalCtx->envCtx.sunMoonDisabled = true; + // "Sun setting other than field keep! So forced release!" + osSyncPrintf(VT_COL(YELLOW, BLACK) "\n\nフィールド常駐以外、太陽設定!よって強制解除!\n" VT_RST); + } + + gCustomLensFlareOn = false; + func_800AA15C(); +} + +u8 Environment_SmoothStepToU8(u8* pvalue, u8 target, u8 scale, u8 step, u8 minStep) { + s16 stepSize = 0; + s16 diff = target - *pvalue; + + if (target != *pvalue) { + stepSize = diff / scale; + if ((stepSize >= (s16)minStep) || ((s16)-minStep >= stepSize)) { + if ((s16)step < stepSize) { + stepSize = step; + } + if ((s16)-step > stepSize) { + stepSize = -step; + } + *pvalue += (u8)stepSize; + } else { + if (stepSize < (s16)minStep) { + stepSize = minStep; + *pvalue += (u8)stepSize; + if (target < *pvalue) { + *pvalue = target; + } + } + if ((s16)-minStep < stepSize) { + stepSize = -minStep; + *pvalue += (u8)stepSize; + if (*pvalue < target) { + *pvalue = target; + } + } + } + } + return diff; +} + +u8 Environment_SmoothStepToS8(s8* pvalue, s8 target, u8 scale, u8 step, u8 minStep) { + s16 stepSize = 0; + s16 diff = target - *pvalue; + + if (target != *pvalue) { + stepSize = diff / scale; + if ((stepSize >= (s16)minStep) || ((s16)-minStep >= stepSize)) { + if ((s16)step < stepSize) { + stepSize = step; + } + if ((s16)-step > stepSize) { + stepSize = -step; + } + *pvalue += (s8)stepSize; + } else { + if (stepSize < (s16)minStep) { + stepSize = minStep; + *pvalue += (s8)stepSize; + if (target < *pvalue) { + *pvalue = target; + } + } + if ((s16)-minStep < stepSize) { + stepSize = -minStep; + *pvalue += (s8)stepSize; + if (*pvalue < target) { + *pvalue = target; + } + } + } + } + return diff; +} + +f32 Environment_LerpWeight(u16 max, u16 min, u16 val) { + f32 diff = max - min; + f32 ret; + + if (diff != 0.0f) { + ret = 1.0f - (max - val) / diff; + + if (!(ret >= 1.0f)) { + return ret; + } + } + + return 1.0f; +} + +f32 Environment_LerpWeightAccelDecel(u16 endFrame, u16 startFrame, u16 curFrame, u16 accelDuration, u16 decelDuration) { + f32 endFrameF; + f32 startFrameF; + f32 curFrameF; + f32 accelDurationF; + f32 decelDurationF; + f32 totalFrames; + f32 temp; + f32 framesElapsed; + f32 ret; + + if (curFrame <= startFrame) { + return 0.0f; + } + + if (curFrame >= endFrame) { + return 1.0f; + } + + endFrameF = (s32)endFrame; + startFrameF = (s32)startFrame; + curFrameF = (s32)curFrame; + totalFrames = endFrameF - startFrameF; + framesElapsed = curFrameF - startFrameF; + accelDurationF = (s32)accelDuration; + decelDurationF = (s32)decelDuration; + + if ((startFrameF >= endFrameF) || (accelDurationF + decelDurationF > totalFrames)) { + // "The frame relation between end_frame and start_frame is wrong!!!" + osSyncPrintf(VT_COL(RED, WHITE) "\nend_frameとstart_frameのフレーム関係がおかしい!!!" VT_RST); + osSyncPrintf(VT_COL(RED, WHITE) "\nby get_parcent_forAccelBrake!!!!!!!!!" VT_RST); + + return 0.0f; + } + + temp = 1.0f / ((totalFrames * 2.0f) - accelDurationF - decelDurationF); + + if (accelDurationF != 0.0f) { + if (framesElapsed <= accelDurationF) { + return temp * framesElapsed * framesElapsed / accelDurationF; + } + ret = temp * accelDurationF; + } else { + ret = 0.0f; + } + + if (framesElapsed <= totalFrames - decelDurationF) { + ret += 2.0f * temp * (framesElapsed - accelDurationF); + return ret; + } + + ret += 2.0f * temp * (totalFrames - accelDurationF - decelDurationF); + + if (decelDurationF != 0.0f) { + ret += temp * decelDurationF; + if (framesElapsed < totalFrames) { + ret -= temp * (totalFrames - framesElapsed) * (totalFrames - framesElapsed) / decelDurationF; + } + } + + return ret; +} + +void func_8006FB94(EnvironmentContext* envCtx, u8 unused) { + if (envCtx->gloomySkyMode != 0) { + switch (envCtx->unk_DE) { + case 0: + if ((envCtx->gloomySkyMode == 1) && !gSkyboxBlendingEnabled) { + envCtx->unk_19 = 1; + envCtx->unk_17 = 0; + envCtx->unk_18 = 1; + envCtx->unk_1A = 100; + envCtx->unk_21 = 1; + envCtx->unk_1F = 0; + envCtx->unk_20 = 2; + D_8011FB34 = 2; + envCtx->unk_22 = envCtx->unk_24 = 100; + envCtx->unk_DE++; + } + break; + case 1: + if (!gSkyboxBlendingEnabled && (envCtx->gloomySkyMode == 2)) { + gWeatherMode = 0; + envCtx->unk_19 = 1; + envCtx->unk_17 = 1; + envCtx->unk_18 = 0; + envCtx->unk_1A = 100; + envCtx->unk_21 = 1; + envCtx->unk_1F = 2; + envCtx->unk_20 = 0; + D_8011FB34 = 0; + envCtx->unk_22 = envCtx->unk_24 = 100; + envCtx->unk_EE[0] = 0; + envCtx->gloomySkyMode = 0; + envCtx->unk_DE = 0; + } + break; + } + } +} + +#ifdef NON_MATCHING +void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, SkyboxContext* skyboxCtx) { + u32 size; + u8 i; + u8 newSkybox1Index = 0xFF; + u8 newSkybox2Index = 0xFF; + u8 skyboxBlend = 0; + struct_8011FC1C* entry; + + if (skyboxId == SKYBOX_CUTSCENE_MAP) { // C18 + envCtx->unk_17 = 3; + + for (i = 0; i < ARRAY_COUNT(D_8011FC1C[envCtx->unk_17]); i++) { + entry = &D_8011FC1C[envCtx->unk_17][i]; + if (((void)0, gSaveContext.skyboxTime) >= entry->startTime && + (((void)0, gSaveContext.skyboxTime) < entry->endTime || entry->endTime == 0xFFFF)) { + if (entry->blend) { + envCtx->skyboxBlend = + Environment_LerpWeight(entry->endTime, entry->startTime, ((void)0, gSaveContext.skyboxTime)) * + 255; + } else { + envCtx->skyboxBlend = 0; + } + break; + } + } + } else if (skyboxId == SKYBOX_NORMAL_SKY && !envCtx->skyboxDisabled) { // d60 && d74 + for (i = 0; i < ARRAY_COUNT(D_8011FC1C[envCtx->unk_17]); i++) { + entry = D_8011FC1C[envCtx->unk_17] + i; + + if (((void)0, gSaveContext.skyboxTime) >= entry->startTime && + (((void)0, gSaveContext.skyboxTime) < entry->endTime || entry->endTime == 0xFFFF)) { + gSkyboxBlendingEnabled = entry->blend; + newSkybox1Index = entry->skybox1Index; + newSkybox2Index = entry->skybox2Index; + + if (entry->blend) { + entry = &D_8011FC1C[envCtx->unk_17][i]; + + skyboxBlend = + Environment_LerpWeight(entry->endTime, entry->startTime, ((void)0, gSaveContext.skyboxTime)) * + 255; + } else { + entry = &D_8011FC1C[envCtx->unk_17][i]; + skyboxBlend = + Environment_LerpWeight(entry->endTime, entry->startTime, ((void)0, gSaveContext.skyboxTime)) * + 255; + + skyboxBlend = (skyboxBlend < 0x80) ? 0xFF : 0; + + if ((envCtx->unk_19 != 0) && (envCtx->unk_19 < 3)) { + envCtx->unk_19++; + skyboxBlend = 0; + } + } + break; + } + } + + func_8006FB94(envCtx, skyboxBlend); + + if (envCtx->unk_19 >= 3) { + newSkybox1Index = D_8011FC1C[envCtx->unk_17][i].skybox1Index; + newSkybox2Index = D_8011FC1C[envCtx->unk_18][i].skybox2Index; + + skyboxBlend = ((f32)envCtx->unk_24 - envCtx->unk_1A--) / (f32)envCtx->unk_24 * 255; + + if (envCtx->unk_1A <= 0) { + envCtx->unk_19 = 0; + envCtx->unk_17 = envCtx->unk_18; + } + } + + if (newSkybox1Index == 0xFF) { + // "Environment VR data acquisition failed! Report to Sasaki!" + osSyncPrintf(VT_COL(RED, WHITE) "\n環境VRデータ取得失敗! ささきまでご報告を!" VT_RST); + } + + if ((envCtx->skybox1Index != newSkybox1Index) && (envCtx->skyboxDmaState == SKYBOX_DMA_INACTIVE)) { + envCtx->skyboxDmaState = SKYBOX_DMA_FILE1_START; + size = gSkyboxFiles[newSkybox1Index].file.vromEnd - gSkyboxFiles[newSkybox1Index].file.vromStart; + + osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1); + DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[0], + gSkyboxFiles[newSkybox1Index].file.vromStart, size, 0, &envCtx->loadQueue, NULL, + "../z_kankyo.c", 1264); + envCtx->skybox1Index = newSkybox1Index; + } + + if ((envCtx->skybox2Index != newSkybox2Index) && (envCtx->skyboxDmaState == SKYBOX_DMA_INACTIVE)) { + envCtx->skyboxDmaState = SKYBOX_DMA_FILE2_START; + size = gSkyboxFiles[newSkybox2Index].file.vromEnd - gSkyboxFiles[newSkybox2Index].file.vromStart; + + osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1); + DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[1], + gSkyboxFiles[newSkybox2Index].file.vromStart, size, 0, &envCtx->loadQueue, NULL, + "../z_kankyo.c", 1281); + envCtx->skybox2Index = newSkybox2Index; + } + + if (envCtx->skyboxDmaState == SKYBOX_DMA_FILE1_DONE) { + envCtx->skyboxDmaState = SKYBOX_DMA_PAL1_START; + + if (((newSkybox1Index & 4) >> 2) != (newSkybox1Index & 1)) { // & 1 at 12e8 + size = gSkyboxFiles[newSkybox1Index].pallete.vromEnd - gSkyboxFiles[newSkybox1Index].pallete.vromStart; + osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1); + DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2], + gSkyboxFiles[newSkybox1Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL, + "../z_kankyo.c", 1307); + } else { + size = gSkyboxFiles[newSkybox1Index].pallete.vromEnd - gSkyboxFiles[newSkybox1Index].pallete.vromStart; + osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1); + DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2] + size, + gSkyboxFiles[newSkybox1Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL, + "../z_kankyo.c", 1320); + } + } + + if (envCtx->skyboxDmaState == SKYBOX_DMA_FILE2_DONE) { + envCtx->skyboxDmaState = SKYBOX_DMA_PAL2_START; + + if (((newSkybox2Index & 4) >> 2) != (newSkybox2Index & 1)) { + size = gSkyboxFiles[newSkybox2Index].pallete.vromEnd - gSkyboxFiles[newSkybox2Index].pallete.vromStart; + osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1); + DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2], + gSkyboxFiles[newSkybox2Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL, + "../z_kankyo.c", 1342); + } else { + size = gSkyboxFiles[newSkybox2Index].pallete.vromEnd - gSkyboxFiles[newSkybox2Index].pallete.vromStart; + osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1); + DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2] + size, + gSkyboxFiles[newSkybox2Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL, + "../z_kankyo.c", 1355); + } + } + + if ((envCtx->skyboxDmaState == SKYBOX_DMA_FILE1_START) || (envCtx->skyboxDmaState == SKYBOX_DMA_FILE2_START)) { + if (osRecvMesg(&envCtx->loadQueue, 0, OS_MESG_NOBLOCK) == 0) { + envCtx->skyboxDmaState++; + } + } else if (envCtx->skyboxDmaState >= SKYBOX_DMA_FILE1_DONE) { + if (osRecvMesg(&envCtx->loadQueue, 0, OS_MESG_NOBLOCK) == 0) { + envCtx->skyboxDmaState = SKYBOX_DMA_INACTIVE; + } + } + + envCtx->skyboxBlend = skyboxBlend; + } +} +#else +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s") +#endif + +void Environment_EnableUnderwaterLights(GlobalContext* globalCtx, s32 waterLightsIndex) { + if (waterLightsIndex == 0x1F) { + waterLightsIndex = 0; + // "Underwater color is not set in the water poly data!" + osSyncPrintf(VT_COL(YELLOW, BLACK) "\n水ポリゴンデータに水中カラーが設定されておりません!" VT_RST); + } + + if (!globalCtx->envCtx.indoors) { + D_8011FB34 = globalCtx->envCtx.unk_20; + + if (globalCtx->envCtx.unk_1F != waterLightsIndex) { + globalCtx->envCtx.unk_1F = waterLightsIndex; + globalCtx->envCtx.unk_20 = waterLightsIndex; + } + } else { + globalCtx->envCtx.blendIndoorLights = false; // instantly switch to water lights + globalCtx->envCtx.unk_BF = waterLightsIndex; + } +} + +void Environment_DisableUnderwaterLights(GlobalContext* globalCtx) { + if (!globalCtx->envCtx.indoors) { + globalCtx->envCtx.unk_1F = D_8011FB34; + globalCtx->envCtx.unk_20 = D_8011FB34; + } else { + globalCtx->envCtx.blendIndoorLights = false; // instantly switch to previous lights + globalCtx->envCtx.unk_BF = 0xFF; + globalCtx->envCtx.unk_D8 = 1.0f; + } +} + +void Environment_PrintDebugInfo(GlobalContext* globalCtx, Gfx** gfx) { + GfxPrint printer; + u32 time; + s32 pad; + + GfxPrint_Init(&printer); + GfxPrint_Open(&printer, *gfx); + + GfxPrint_SetPos(&printer, 22, 7); + GfxPrint_SetColor(&printer, 155, 155, 255, 64); + GfxPrint_Printf(&printer, "T%03d ", ((void)0, gSaveContext.totalDays)); + GfxPrint_Printf(&printer, "E%03d", ((void)0, gSaveContext.bgsDayCount)); + + GfxPrint_SetColor(&printer, 255, 255, 55, 64); + GfxPrint_SetPos(&printer, 22, 8); + GfxPrint_Printf(&printer, "%s", "ZELDATIME "); + + GfxPrint_SetColor(&printer, 255, 255, 255, 64); + time = gSaveContext.dayTime; + GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * time / 60.0f)); + + if ((gSaveContext.dayTime & 0x1F) >= 0x10 || gTimeIncrement >= 6) { + GfxPrint_Printf(&printer, "%s", ":"); + } else { + GfxPrint_Printf(&printer, "%s", " "); + } + + time = gSaveContext.dayTime; + GfxPrint_Printf(&printer, "%02d", (s16)(24 * 60 / (f32)0x10000 * time) % 60); + + GfxPrint_SetColor(&printer, 255, 255, 55, 64); + GfxPrint_SetPos(&printer, 22, 9); + GfxPrint_Printf(&printer, "%s", "VRBOXTIME "); + + GfxPrint_SetColor(&printer, 255, 255, 255, 64); + time = ((void)0, gSaveContext.skyboxTime); + GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * time / 60.0f)); + + if ((((void)0, gSaveContext.skyboxTime) & 0x1F) >= 0x10 || gTimeIncrement >= 6) { + GfxPrint_Printf(&printer, "%s", ":"); + } else { + GfxPrint_Printf(&printer, "%s", " "); + } + + time = ((void)0, gSaveContext.skyboxTime); + GfxPrint_Printf(&printer, "%02d", (s16)(45.0f / 2048.0f * time) % 60); + + GfxPrint_SetColor(&printer, 55, 255, 255, 64); + GfxPrint_SetPos(&printer, 22, 6); + + if (gSaveContext.nightFlag) { + GfxPrint_Printf(&printer, "%s", "YORU"); // "night" + } else { + GfxPrint_Printf(&printer, "%s", "HIRU"); // "day" + } + + *gfx = GfxPrint_Close(&printer); + GfxPrint_Destroy(&printer); +} + +#define TIME_ENTRY_1F_1 (D_8011FB48[envCtx->unk_1F] + i) +#define TIME_ENTRY_1F_2 (&D_8011FB48[envCtx->unk_1F][i]) +#define TIME_ENTRY_20 (&D_8011FB48[envCtx->unk_20][i]) + +void func_80075B44(GlobalContext* globalCtx); +void func_800766C4(GlobalContext* globalCtx); + +#ifdef NON_MATCHING +// Reordering in light color and fog near and far blends +void Environment_Update(GlobalContext* globalCtx, EnvironmentContext* envCtx, LightContext* lightCtx, + PauseContext* pauseCtx, MessageContext* msgCtx, GameOverContext* gameOverCtx, + GraphicsContext* gfxCtx) { + f32 sp8C; + f32 sp88 = 0.0f; + u16 i; + u16 j; + s16 lightAdj; + u16 time; + EnvLightSettings* lightSettingsList = globalCtx->envCtx.lightSettingsList; // 7C + s32 adjustment; + + if ((((void)0, gSaveContext.gameMode) != 0) && (((void)0, gSaveContext.gameMode) != 3)) { + func_800AA16C(globalCtx); + } + + if (pauseCtx->state == 0) { + if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0)) { + if (globalCtx->skyboxId == SKYBOX_NORMAL_SKY) { + globalCtx->skyboxCtx.rot.y -= 0.001f; + } else if (globalCtx->skyboxId == SKYBOX_CUTSCENE_MAP) { + globalCtx->skyboxCtx.rot.y -= 0.005f; + } + } + + func_800766C4(globalCtx); // increments or decrements unk_EE[1] depending on some condition + func_80075B44(globalCtx); // updates bgm/sfx and other things as the day progresses + + if (((void)0, gSaveContext.nextDayTime) >= 0xFF00 && ((void)0, gSaveContext.nextDayTime) != 0xFFFF) { + gSaveContext.nextDayTime -= 0x10; + osSyncPrintf("\nnext_zelda_time=[%x]", ((void)0, gSaveContext.nextDayTime)); + + if (((void)0, gSaveContext.nextDayTime) == 0xFF0E) { + func_80078884(NA_SE_EV_CHICKEN_CRY_M); + gSaveContext.nextDayTime = 0xFFFF; + } else if (((void)0, gSaveContext.nextDayTime) == 0xFF0D) { + func_800788CC(NA_SE_EV_DOG_CRY_EVENING); + gSaveContext.nextDayTime = 0xFFFF; + } + } + + if ((pauseCtx->state == 0) && (gameOverCtx->state == GAMEOVER_INACTIVE)) { + if (((msgCtx->unk_E300 == 0) && (msgCtx->msgMode == 0)) || (((void)0, gSaveContext.gameMode) == 3)) { + if ((envCtx->unk_1A == 0) && !FrameAdvance_IsEnabled(globalCtx) && + (globalCtx->transitionMode == 0 || ((void)0, gSaveContext.gameMode) != 0)) { + + if (!((void)0, gSaveContext.nightFlag) || gTimeIncrement >= 0x190) { + gSaveContext.dayTime += gTimeIncrement; + } else { + gSaveContext.dayTime += gTimeIncrement * 2; // time moves twice as fast at night + } + } + } + } + + //! @bug `gTimeIncrement` is unsigned, it can't be negative + if (((((void)0, gSaveContext.sceneSetupIndex) >= 5 || gTimeIncrement != 0) && + ((void)0, gSaveContext.dayTime) > ((void)0, gSaveContext.skyboxTime)) || + (((void)0, gSaveContext.dayTime) < 0xAAB || gTimeIncrement < 0)) { + + gSaveContext.skyboxTime = ((void)0, gSaveContext.dayTime); + } + time = gSaveContext.dayTime; + + if (time > 0xC000 || time < 0x4555) { + gSaveContext.nightFlag = true; + } else { + gSaveContext.nightFlag = false; + } + + if (SREG(0) != 0 || CREG(2) != 0) { + Gfx* displayList; + Gfx* prevDisplayList; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 1682); + + prevDisplayList = POLY_OPA_DISP; + displayList = Graph_GfxPlusOne(POLY_OPA_DISP); + gSPDisplayList(OVERLAY_DISP++, displayList); + Environment_PrintDebugInfo(globalCtx, &displayList); + gSPEndDisplayList(displayList++); + Graph_BranchDlist(prevDisplayList, displayList); + POLY_OPA_DISP = displayList; + if (1) {} + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 1690); + } + + if ((envCtx->unk_BF != 0xFF) && (envCtx->unk_DC != 2) && (envCtx->unk_BD != envCtx->unk_BF) && + (envCtx->unk_D8 >= 1.0f) && (envCtx->unk_BF < 0x20)) { + envCtx->unk_BE = envCtx->unk_BD; + envCtx->unk_BD = envCtx->unk_BF; + envCtx->unk_D8 = 0.0f; + } + + if (envCtx->unk_BF != 0xFE) { + if (!envCtx->indoors && (envCtx->unk_BF == 0xFF)) { + for (i = 0; i < ARRAY_COUNT(D_8011FB48[envCtx->unk_1F]); i++) { + if ((((void)0, gSaveContext.skyboxTime) >= TIME_ENTRY_1F_1->startTime) && + ((((void)0, gSaveContext.skyboxTime) < TIME_ENTRY_1F_1->endTime) || + TIME_ENTRY_1F_1->endTime == 0xFFFF)) { + u8 blend8[2]; + s16 blend16[2]; + + sp8C = Environment_LerpWeight(TIME_ENTRY_1F_1->endTime, TIME_ENTRY_1F_1->startTime, + ((void)0, gSaveContext.skyboxTime)); + + D_8011FDCC = TIME_ENTRY_1F_2->unk_04 & 3; + D_8011FDD0 = TIME_ENTRY_1F_2->unk_05 & 3; + D_8011FDD4 = sp8C; + + if (envCtx->unk_21) { + sp88 = ((f32)envCtx->unk_24 - envCtx->unk_22) / envCtx->unk_24; + envCtx->unk_22--; + + if (envCtx->unk_22 <= 0) { + envCtx->unk_21 = 0; + envCtx->unk_1F = envCtx->unk_20; + } + } + + for (j = 0; j < 3; j++) { + // blend ambient color + blend8[0] = LERP(lightSettingsList[TIME_ENTRY_1F_2->unk_04].ambientColor[j], + lightSettingsList[TIME_ENTRY_1F_2->unk_05].ambientColor[j], sp8C); + blend8[1] = LERP(lightSettingsList[TIME_ENTRY_20->unk_04].ambientColor[j], + lightSettingsList[TIME_ENTRY_20->unk_05].ambientColor[j], sp8C); + envCtx->lightSettings.ambientColor[j] = LERP(blend8[0], blend8[1], sp88); + } + + // set light1 direction for the sun + envCtx->lightSettings.light1Dir[0] = + -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f); + envCtx->lightSettings.light1Dir[1] = + Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f; + envCtx->lightSettings.light1Dir[2] = + (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f); + + // set light2 direction for the moon + envCtx->lightSettings.light2Dir[0] = -envCtx->lightSettings.light1Dir[0]; + envCtx->lightSettings.light2Dir[1] = -envCtx->lightSettings.light1Dir[1]; + envCtx->lightSettings.light2Dir[2] = -envCtx->lightSettings.light1Dir[2]; + + for (j = 0; j < 3; j++) { + // blend light1Color + blend8[0] = LERP(lightSettingsList[TIME_ENTRY_1F_2->unk_04].light1Color[j], + lightSettingsList[TIME_ENTRY_1F_2->unk_05].light1Color[j], sp8C); + blend8[1] = LERP(lightSettingsList[TIME_ENTRY_20->unk_04].light1Color[j], + lightSettingsList[TIME_ENTRY_20->unk_05].light1Color[j], sp8C); + envCtx->lightSettings.light1Color[j] = LERP(blend8[0], blend8[1], sp88); + + // blend light2Color + blend8[0] = LERP(lightSettingsList[TIME_ENTRY_1F_2->unk_04].light2Color[j], + lightSettingsList[TIME_ENTRY_1F_2->unk_05].light2Color[j], sp8C); + blend8[1] = LERP(lightSettingsList[TIME_ENTRY_20->unk_04].light2Color[j], + lightSettingsList[TIME_ENTRY_20->unk_05].light2Color[j], sp8C); + envCtx->lightSettings.light2Color[j] = LERP(blend8[0], blend8[1], sp88); + } + + // blend fogColor + for (j = 0; j < 3; j++) { + blend8[0] = LERP(lightSettingsList[TIME_ENTRY_1F_2->unk_04].fogColor[j], + lightSettingsList[TIME_ENTRY_1F_2->unk_05].fogColor[j], sp8C); + blend8[1] = LERP(lightSettingsList[TIME_ENTRY_20->unk_04].fogColor[j], + lightSettingsList[TIME_ENTRY_20->unk_05].fogColor[j], sp8C); + envCtx->lightSettings.fogColor[j] = LERP(blend8[0], blend8[1], sp88); + } + + blend16[0] = LERP32(lightSettingsList[TIME_ENTRY_1F_2->unk_04].fogNear & 0x3FF, + lightSettingsList[TIME_ENTRY_1F_2->unk_05].fogNear & 0x3FF, sp8C); + blend16[1] = LERP32(lightSettingsList[TIME_ENTRY_20->unk_04].fogNear & 0x3FF, + lightSettingsList[TIME_ENTRY_20->unk_05].fogNear & 0x3FF, sp8C); + + envCtx->lightSettings.fogNear = LERP32(blend16[0], blend16[1], sp88); + + blend16[0] = LERP32(lightSettingsList[TIME_ENTRY_1F_2->unk_04].fogFar, + lightSettingsList[TIME_ENTRY_1F_2->unk_05].fogFar, sp8C); + blend16[1] = LERP32(lightSettingsList[TIME_ENTRY_20->unk_04].fogFar, + lightSettingsList[TIME_ENTRY_20->unk_05].fogFar, sp8C); + + envCtx->lightSettings.fogFar = LERP32(blend16[0], blend16[1], sp88); + + if (TIME_ENTRY_20->unk_05 >= envCtx->numLightSettings) { + // "The color palette setting seems to be wrong!" + osSyncPrintf(VT_COL(RED, WHITE) "\nカラーパレットの設定がおかしいようです!" VT_RST); + + // "Palette setting = [] Last palette number = []" + osSyncPrintf(VT_COL(RED, WHITE) "\n設定パレット=[%d] 最後パレット番号=[%d]\n" VT_RST, + TIME_ENTRY_20->unk_05, envCtx->numLightSettings - 1); + } + break; + } + } + } else { + // 3200 (l 1608) + if (!envCtx->blendIndoorLights) { + for (i = 0; i < 3; i++) { + envCtx->lightSettings.ambientColor[i] = lightSettingsList[envCtx->unk_BD].ambientColor[i]; + envCtx->lightSettings.light1Dir[i] = lightSettingsList[envCtx->unk_BD].light1Dir[i]; + envCtx->lightSettings.light1Color[i] = lightSettingsList[envCtx->unk_BD].light1Color[i]; + envCtx->lightSettings.light2Dir[i] = lightSettingsList[envCtx->unk_BD].light2Dir[i]; + envCtx->lightSettings.light2Color[i] = lightSettingsList[envCtx->unk_BD].light2Color[i]; + envCtx->lightSettings.fogColor[i] = lightSettingsList[envCtx->unk_BD].fogColor[i]; + } + + envCtx->lightSettings.fogNear = lightSettingsList[envCtx->unk_BD].fogNear & 0x3FF; + envCtx->lightSettings.fogFar = lightSettingsList[envCtx->unk_BD].fogFar; + envCtx->unk_D8 = 1.0f; + } else { + // 3344 (l 1689) + u8 blendRate = (lightSettingsList[envCtx->unk_BD].fogNear >> 0xA) * 4; + + if (blendRate == 0) { + blendRate++; + } + + if (envCtx->unk_D6 != 0xFFFF) { + blendRate = envCtx->unk_D6; + } + + if (envCtx->unk_DC == 0) { + envCtx->unk_D8 += blendRate / 255.0f; + } + + if (envCtx->unk_D8 > 1.0f) { + envCtx->unk_D8 = 1.0f; + } + + for (j = 0; j < 3; j++) { + envCtx->lightSettings.ambientColor[j] = + LERP(lightSettingsList[envCtx->unk_BE].ambientColor[j], + lightSettingsList[envCtx->unk_BD].ambientColor[j], envCtx->unk_D8); + envCtx->lightSettings.light1Dir[j] = + LERP32(lightSettingsList[envCtx->unk_BE].light1Dir[j], + lightSettingsList[envCtx->unk_BD].light1Dir[j], envCtx->unk_D8); + envCtx->lightSettings.light1Color[j] = + LERP(lightSettingsList[envCtx->unk_BE].light1Color[j], + lightSettingsList[envCtx->unk_BD].light1Color[j], envCtx->unk_D8); + envCtx->lightSettings.light2Dir[j] = + LERP32(lightSettingsList[envCtx->unk_BE].light2Dir[j], + lightSettingsList[envCtx->unk_BD].light2Dir[j], envCtx->unk_D8); + envCtx->lightSettings.light2Color[j] = + LERP(lightSettingsList[envCtx->unk_BE].light2Color[j], + lightSettingsList[envCtx->unk_BD].light2Color[j], envCtx->unk_D8); + envCtx->lightSettings.fogColor[j] = + LERP(lightSettingsList[envCtx->unk_BE].fogColor[j], + lightSettingsList[envCtx->unk_BD].fogColor[j], envCtx->unk_D8); + } + envCtx->lightSettings.fogNear = + LERP32(lightSettingsList[envCtx->unk_BE].fogNear & 0x3FF, + lightSettingsList[envCtx->unk_BD].fogNear & 0x3FF, envCtx->unk_D8); + envCtx->lightSettings.fogFar = LERP32(lightSettingsList[envCtx->unk_BE].fogFar, + lightSettingsList[envCtx->unk_BD].fogFar, envCtx->unk_D8); + } + + if (envCtx->unk_BD >= envCtx->numLightSettings) { + // "The color palette seems to be wrong!" + osSyncPrintf(VT_FGCOL(RED) "\nカラーパレットがおかしいようです!"); + + // "Palette setting = [] Last palette number = []" + osSyncPrintf(VT_FGCOL(YELLOW) "\n設定パレット=[%d] パレット数=[%d]\n" VT_RST, envCtx->unk_BD, + envCtx->numLightSettings); + } + } + } + + envCtx->blendIndoorLights = true; + + // Apply lighting adjustments + for (i = 0; i < 3; i++) { + lightAdj = envCtx->lightSettings.ambientColor[i] + envCtx->adjAmbientColor[i]; + + if (lightAdj > 255) { + lightCtx->ambientColor[i] = 255; + } else if (lightAdj < 0) { + lightCtx->ambientColor[i] = 0; + } else { + lightCtx->ambientColor[i] = lightAdj; + } + + lightAdj = envCtx->lightSettings.light1Color[i] + envCtx->adjLight1Color[i]; + + if (lightAdj > 255) { + envCtx->dirLight1.params.dir.color[i] = 255; + } else if (lightAdj < 0) { + envCtx->dirLight1.params.dir.color[i] = 0; + } else { + envCtx->dirLight1.params.dir.color[i] = lightAdj; + } + + lightAdj = envCtx->lightSettings.light2Color[i] + envCtx->adjLight1Color[i]; + + if (lightAdj > 255) { + envCtx->dirLight2.params.dir.color[i] = 255; + } else if (lightAdj < 0) { + envCtx->dirLight2.params.dir.color[i] = 0; + } else { + envCtx->dirLight2.params.dir.color[i] = lightAdj; + } + + lightAdj = envCtx->lightSettings.fogColor[i] + envCtx->adjFogColor[i]; + + if (lightAdj > 255) { + lightCtx->fogColor[i] = 255; + } else if (lightAdj < 0) { + lightCtx->fogColor[i] = 0; + } else { + lightCtx->fogColor[i] = lightAdj; + } + } + + // Set both directional light directions + envCtx->dirLight1.params.dir.x = envCtx->lightSettings.light1Dir[0]; + envCtx->dirLight1.params.dir.y = envCtx->lightSettings.light1Dir[1]; + envCtx->dirLight1.params.dir.z = envCtx->lightSettings.light1Dir[2]; + + envCtx->dirLight2.params.dir.x = envCtx->lightSettings.light2Dir[0]; + envCtx->dirLight2.params.dir.y = envCtx->lightSettings.light2Dir[1]; + envCtx->dirLight2.params.dir.z = envCtx->lightSettings.light2Dir[2]; + + // Adjust fog near and far if necessary + adjustment = envCtx->lightSettings.fogNear + envCtx->adjFogNear; + + if (adjustment <= 996) { + lightCtx->fogNear = adjustment; + } else { + lightCtx->fogNear = 996; + } + + adjustment = envCtx->lightSettings.fogFar + envCtx->adjFogFar; + + if (adjustment <= 12800) { + lightCtx->fogFar = adjustment; + } else { + lightCtx->fogFar = 12800; + } + + // When environment debug is enabled, various environment related variables can be configured via the reg editor + if (R_ENV_DISABLE_DBG) { + R_ENV_AMBIENT_COLOR(0) = lightCtx->ambientColor[0]; + R_ENV_AMBIENT_COLOR(1) = lightCtx->ambientColor[1]; + R_ENV_AMBIENT_COLOR(2) = lightCtx->ambientColor[2]; + + R_ENV_LIGHT1_COLOR(0) = envCtx->dirLight1.params.dir.color[0]; + R_ENV_LIGHT1_COLOR(1) = envCtx->dirLight1.params.dir.color[1]; + R_ENV_LIGHT1_COLOR(2) = envCtx->dirLight1.params.dir.color[2]; + + R_ENV_LIGHT2_COLOR(0) = envCtx->dirLight2.params.dir.color[0]; + R_ENV_LIGHT2_COLOR(1) = envCtx->dirLight2.params.dir.color[1]; + R_ENV_LIGHT2_COLOR(2) = envCtx->dirLight2.params.dir.color[2]; + + R_ENV_FOG_COLOR(0) = lightCtx->fogColor[0]; + R_ENV_FOG_COLOR(1) = lightCtx->fogColor[1]; + R_ENV_FOG_COLOR(2) = lightCtx->fogColor[2]; + + R_ENV_FOG_FAR = lightCtx->fogFar; + R_ENV_FOG_NEAR = lightCtx->fogNear; + + R_ENV_LIGHT1_DIR(0) = envCtx->dirLight1.params.dir.x; + R_ENV_LIGHT1_DIR(1) = envCtx->dirLight1.params.dir.y; + R_ENV_LIGHT1_DIR(2) = envCtx->dirLight1.params.dir.z; + + R_ENV_LIGHT2_DIR(0) = envCtx->dirLight2.params.dir.x; + R_ENV_LIGHT2_DIR(1) = envCtx->dirLight2.params.dir.y; + R_ENV_LIGHT2_DIR(2) = envCtx->dirLight2.params.dir.z; + + R_ENV_WIND_DIR(0) = envCtx->windDirection.x; + R_ENV_WIND_DIR(1) = envCtx->windDirection.y; + R_ENV_WIND_DIR(2) = envCtx->windDirection.z; + R_ENV_WIND_SPEED = envCtx->windSpeed; + } else { + lightCtx->ambientColor[0] = R_ENV_AMBIENT_COLOR(0); + lightCtx->ambientColor[1] = R_ENV_AMBIENT_COLOR(1); + lightCtx->ambientColor[2] = R_ENV_AMBIENT_COLOR(2); + + envCtx->dirLight1.params.dir.color[0] = R_ENV_LIGHT1_COLOR(0); + envCtx->dirLight1.params.dir.color[1] = R_ENV_LIGHT1_COLOR(1); + envCtx->dirLight1.params.dir.color[2] = R_ENV_LIGHT1_COLOR(2); + + envCtx->dirLight2.params.dir.color[0] = R_ENV_LIGHT2_COLOR(0); + envCtx->dirLight2.params.dir.color[1] = R_ENV_LIGHT2_COLOR(1); + envCtx->dirLight2.params.dir.color[2] = R_ENV_LIGHT2_COLOR(2); + lightCtx->fogColor[0] = R_ENV_FOG_COLOR(0); + lightCtx->fogColor[1] = R_ENV_FOG_COLOR(1); + lightCtx->fogColor[2] = R_ENV_FOG_COLOR(2); + lightCtx->fogNear = R_ENV_FOG_NEAR; + lightCtx->fogFar = R_ENV_FOG_FAR; + + if (cREG(14)) { + R_ENV_LIGHT1_DIR(0) = Math_CosS(cREG(10)) * Math_CosS(cREG(11)) * 120.0f; + envCtx->dirLight1.params.dir.x = R_ENV_LIGHT1_DIR(0); + R_ENV_LIGHT1_DIR(1) = Math_CosS(cREG(10)) * Math_SinS(cREG(11)) * 120.0f; + envCtx->dirLight1.params.dir.y = R_ENV_LIGHT1_DIR(1); + R_ENV_LIGHT1_DIR(2) = Math_SinS(cREG(11)) * 120.0f; + envCtx->dirLight1.params.dir.z = R_ENV_LIGHT1_DIR(2); + + R_ENV_LIGHT2_DIR(0) = Math_CosS(cREG(12)) * Math_CosS(cREG(13)) * 120.0f; + envCtx->dirLight2.params.dir.x = R_ENV_LIGHT2_DIR(0); + R_ENV_LIGHT2_DIR(1) = Math_CosS(cREG(12)) * Math_SinS(cREG(13)) * 120.0f; + envCtx->dirLight2.params.dir.y = R_ENV_LIGHT2_DIR(1); + R_ENV_LIGHT2_DIR(2) = Math_SinS(cREG(13)) * 120.0f; + envCtx->dirLight2.params.dir.z = R_ENV_LIGHT2_DIR(2); + } else { + envCtx->dirLight1.params.dir.x = R_ENV_LIGHT1_DIR(0); + envCtx->dirLight1.params.dir.y = R_ENV_LIGHT1_DIR(1); + envCtx->dirLight1.params.dir.z = R_ENV_LIGHT1_DIR(2); + + envCtx->dirLight2.params.dir.x = R_ENV_LIGHT2_DIR(0); + envCtx->dirLight2.params.dir.y = R_ENV_LIGHT2_DIR(1); + envCtx->dirLight2.params.dir.z = R_ENV_LIGHT2_DIR(2); + } + + envCtx->windDirection.x = R_ENV_WIND_DIR(0); + envCtx->windDirection.y = R_ENV_WIND_DIR(1); + envCtx->windDirection.z = R_ENV_WIND_DIR(2); + envCtx->windSpeed = R_ENV_WIND_SPEED; + } + + if ((envCtx->dirLight1.params.dir.x == 0) && (envCtx->dirLight1.params.dir.y == 0) && + (envCtx->dirLight1.params.dir.z == 0)) { + envCtx->dirLight1.params.dir.x = 1; + } + + if ((envCtx->dirLight2.params.dir.x == 0) && (envCtx->dirLight2.params.dir.y == 0) && + (envCtx->dirLight2.params.dir.z == 0)) { + envCtx->dirLight2.params.dir.x = 1; + } + } +} +#else +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_Update.s") +#endif + +void Environment_DrawSunAndMoon(GlobalContext* globalCtx) { + f32 alpha; + f32 color; + f32 y; + f32 scale; + f32 temp; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 2266); + + if (globalCtx->csCtx.state != 0) { + Math_SmoothStepToF(&globalCtx->envCtx.sunPos.x, + -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f, 1.0f, 0.8f, 0.8f); + Math_SmoothStepToF(&globalCtx->envCtx.sunPos.y, + (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f, 1.0f, 0.8f, 0.8f); + //! @bug This should be z. + Math_SmoothStepToF(&globalCtx->envCtx.sunPos.y, + (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f) * 25.0f, 1.0f, 0.8f, 0.8f); + } else { + globalCtx->envCtx.sunPos.x = -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f; + globalCtx->envCtx.sunPos.y = +(Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f; + globalCtx->envCtx.sunPos.z = +(Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f) * 25.0f; + } + + if (gSaveContext.entranceIndex != 0xCD || ((void)0, gSaveContext.sceneSetupIndex) != 5) { + Matrix_Translate(globalCtx->view.eye.x + globalCtx->envCtx.sunPos.x, + globalCtx->view.eye.y + globalCtx->envCtx.sunPos.y, + globalCtx->view.eye.z + globalCtx->envCtx.sunPos.z, MTXMODE_NEW); + + y = globalCtx->envCtx.sunPos.y / 25.0f; + temp = y / 80.0f; + + alpha = temp * 255.0f; + if (alpha < 0.0f) { + alpha = 0.0f; + } + if (alpha > 255.0f) { + alpha = 255.0f; + } + + alpha = 255.0f - alpha; + + color = temp; + if (color < 0.0f) { + color = 0.0f; + } + + if (color > 1.0f) { + color = 1.0f; + } + + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, (u8)(color * 75.0f) + 180, (u8)(color * 155.0f) + 100, 255); + gDPSetEnvColor(POLY_OPA_DISP++, 255, (u8)(color * 255.0f), (u8)(color * 255.0f), alpha); + + scale = (color * 2.0f) + 10.0f; + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_kankyo.c", 2364), G_MTX_LOAD); + func_80093AD0(globalCtx->state.gfxCtx); + gSPDisplayList(POLY_OPA_DISP++, gSunDL); + + Matrix_Translate(globalCtx->view.eye.x - globalCtx->envCtx.sunPos.x, + globalCtx->view.eye.y - globalCtx->envCtx.sunPos.y, + globalCtx->view.eye.z - globalCtx->envCtx.sunPos.z, MTXMODE_NEW); + + color = -y / 120.0f; + color = CLAMP_MIN(color, 0.0f); + + scale = -15.0f * color + 25.0f; + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); + + temp = -y / 80.0f; + temp = CLAMP_MAX(temp, 1.0f); + + alpha = temp * 255.0f; + + if (alpha > 0.0f) { + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_kankyo.c", 2406), G_MTX_LOAD); + func_8009398C(globalCtx->state.gfxCtx); + gDPPipeSync(POLY_OPA_DISP++); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 240, 255, 180, alpha); + gDPSetEnvColor(POLY_OPA_DISP++, 80, 70, 20, alpha); + gSPDisplayList(POLY_OPA_DISP++, gMoonDL); + } + } + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 2429); +} + +void Environment_DrawSunLensFlare(GlobalContext* globalCtx, EnvironmentContext* envCtx, View* view, + GraphicsContext* gfxCtx, Vec3f pos, s32 unused) { + if ((globalCtx->envCtx.unk_EE[1] == 0) && (globalCtx->envCtx.unk_17 == 0)) { + Environment_DrawLensFlare(globalCtx, &globalCtx->envCtx, &globalCtx->view, globalCtx->state.gfxCtx, pos, 2000, + 370, Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f, 400, 1); + } +} + +#ifdef NON_MATCHING +// isOffScreen shouldn't be on the stack +void Environment_DrawLensFlare(GlobalContext* globalCtx, EnvironmentContext* envCtx, View* view, + GraphicsContext* gfxCtx, Vec3f pos, s32 unused, s16 arg6, f32 arg7, s16 arg8, u8 arg9) { + static f32 lensFlareScales[] = { 23.0f, 12.0f, 7.0f, 5.0f, 3.0f, 10.0f, 6.0f, 2.0f, 3.0f, 1.0f }; + + s16 i; + f32 tempX; + f32 tempY; + f32 tempZ; // 1A0 // + f32 lookDirX; // 19C + f32 lookDirY; // 198 + f32 lookDirZ; + f32 tempX2; // 190 // + f32 tempY2; + f32 tempZ2; + f32 posDirX; // 184 + f32 posDirY; // 180 + f32 posDirZ; // 17C + f32 length; + f32 dist; + f32 halfPosX; // 170 + f32 halfPosY; // 16C + f32 halfPosZ; // 168 + f32 cosAngle; // 164 + f32 pad160; // 160 // + f32 unk88Target; // 15C + u32 isOffScreen = false; + f32 alpha; + f32 scale; // 150 // + Vec3f screenPos; // 144 + f32 fogInfluence; // 140 // + f32 temp; // 13C + f32 alphaScale; + Color_RGB8 lensFlareColors[] = { + // 118 + { 155, 205, 255 }, // blue + { 255, 255, 205 }, // yellow + { 255, 255, 205 }, // yellow + { 255, 255, 205 }, // yellow + { 155, 255, 205 }, // green + { 205, 255, 255 }, // light blue + { 155, 155, 255 }, // dark blue + { 205, 175, 255 }, // purple + { 175, 255, 205 }, // light green + { 255, 155, 235 }, // pink + }; + u32 lensFlareAlphas[] = { + // F0 + 50, 10, 25, 40, 70, 30, 50, 70, 50, 40, + }; + u32 lensFlareTypes[] = { + // C8 + LENS_FLARE_RING, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, + LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, + }; + + OPEN_DISPS(gfxCtx, "../z_kankyo.c", 2516); // C4 + + dist = Math3D_Vec3f_DistXYZ(&pos, &view->eye) / 12.0f; + + // compute a unit vector in the look direction + tempX = view->lookAt.x - view->eye.x; + tempY = view->lookAt.y - view->eye.y; + tempZ = view->lookAt.z - view->eye.z; + + length = sqrtf(SQ(tempX) + SQ(tempY) + SQ(tempZ)); + + lookDirX = tempX / length; + lookDirY = tempY / length; + lookDirZ = tempZ / length; + + // compute a position along the look vector half as far as pos + halfPosX = view->eye.x + lookDirX * (dist * 6.0f); + halfPosY = view->eye.y + lookDirY * (dist * 6.0f); + halfPosZ = view->eye.z + lookDirZ * (dist * 6.0f); + + // compute a unit vector in the direction from halfPos to pos + tempX2 = pos.x - halfPosX; + tempY2 = pos.y - halfPosY; + tempZ2 = pos.z - halfPosZ; + + length = sqrtf(SQ(tempX2) + SQ(tempY2) + SQ(tempZ2)); + + posDirX = tempX2 / length; + posDirY = tempY2 / length; + posDirZ = tempZ2 / length; + + // compute the cosine of the angle between lookDir and posDir + cosAngle = (lookDirX * posDirX + lookDirY * posDirY + lookDirZ * posDirZ) / + sqrtf((SQ(lookDirX) + SQ(lookDirY) + SQ(lookDirZ)) * (SQ(posDirX) + SQ(posDirY) + SQ(posDirZ))); + + unk88Target = cosAngle * 3.5f; + unk88Target = CLAMP_MAX(unk88Target, 1.0f); + + if (arg9 == 0) { + unk88Target = cosAngle; + } + + if (cosAngle < 0.0f) { + + } else { + if (arg9) { + func_800C016C(globalCtx, &pos, &screenPos); + D_8015FD7E = (s16)screenPos.x; + D_8015FD80 = (s16)screenPos.y - 5.0f; + if (D_8011FB44 != 0xFFFC || screenPos.x < 0.0f || screenPos.y < 0.0f || screenPos.x > SCREEN_WIDTH || + screenPos.y > SCREEN_HEIGHT) { + isOffScreen = true; + } + } + + for (i = 0; i < ARRAY_COUNT(lensFlareTypes); i++) { + Matrix_Translate(pos.x, pos.y, pos.z, MTXMODE_NEW); + + if (arg9) { + temp = Environment_LerpWeight(60, 15, globalCtx->view.fovy); + } + + Matrix_Translate(-posDirX * i * dist, -posDirY * i * dist, -posDirZ * i * dist, MTXMODE_APPLY); + scale = lensFlareScales[i] * cosAngle; + + if (arg9) { + scale *= 0.001 * (arg6 + 630.0f * temp); + } else { + scale *= 0.0001f * arg6 * (2.0f * dist); + } + + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); + + alpha = arg7 / 10.0f; + alpha = CLAMP_MAX(alpha, 1.0f); + alpha = alpha * lensFlareAlphas[i]; + alpha = CLAMP_MIN(alpha, 0.0f); + + fogInfluence = (996 - globalCtx->lightCtx.fogNear) / 50.0f; + + fogInfluence = CLAMP_MAX(fogInfluence, 1.0f); + + alpha *= 1.0f - fogInfluence; + + if (!isOffScreen) { // 5088 + Math_SmoothStepToF(&envCtx->unk_88, unk88Target, 0.5f, 0.05f, 0.001f); + } else { + Math_SmoothStepToF(&envCtx->unk_88, 0.0f, 0.5f, 0.05f, 0.001f); + } + + POLY_XLU_DISP = func_800947AC(POLY_XLU_DISP++); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, lensFlareColors[i].r, lensFlareColors[i].g, lensFlareColors[i].b, + alpha * envCtx->unk_88); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_kankyo.c", 2662), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, + 0, PRIMITIVE, 0); + gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_DISABLE); + gDPSetColorDither(POLY_XLU_DISP++, G_CD_DISABLE); + gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + + switch (lensFlareTypes[i]) { + case LENS_FLARE_CIRCLE0: + case LENS_FLARE_CIRCLE1: + gSPDisplayList(POLY_XLU_DISP++, gLensFlareCircleDL); + break; + case LENS_FLARE_RING: + gSPDisplayList(POLY_XLU_DISP++, gLensFlareRingDL); + break; + } + } + + alphaScale = cosAngle - (1.5f - cosAngle); + + if (arg8) { + if (alphaScale > 0.0f) { + POLY_XLU_DISP = func_800937C0(POLY_XLU_DISP); + + alpha = arg7 / 10.0f; + alpha = CLAMP_MAX(alpha, 1.0f); + alpha = alpha * arg8; + alpha = CLAMP_MIN(alpha, 0.0f); + + fogInfluence = (996 - globalCtx->lightCtx.fogNear) / 50.0f; + + fogInfluence = CLAMP_MAX(fogInfluence, 1.0f); + + alpha *= 1.0f - fogInfluence; + + gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_DISABLE); + gDPSetColorDither(POLY_XLU_DISP++, G_CD_DISABLE); + + if (!isOffScreen) { + Math_SmoothStepToF(&envCtx->unk_84, alpha * alphaScale, 0.5f, 50.0f, 0.1f); + } else { + Math_SmoothStepToF(&envCtx->unk_84, 0.0f, 0.5f, 50.0f, 0.1f); + } + + temp = arg7 / 120.0f; + temp = CLAMP_MIN(temp, 0.0f); + + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, (u8)(temp * 75.0f) + 180, (u8)(temp * 155.0f) + 100, + envCtx->unk_84); + gDPFillRectangle(POLY_XLU_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); + } else { + envCtx->unk_84 = 0.0f; + } + } + } + + CLOSE_DISPS(gfxCtx, "../z_kankyo.c", 2750); +} +#else +f32 D_8011FDD8[] = { 23.0f, 12.0f, 7.0f, 5.0f, 3.0f, 10.0f, 6.0f, 2.0f, 3.0f, 1.0f }; +Color_RGB8 D_8011FE00[] = { + { 155, 205, 255 }, { 255, 255, 205 }, { 255, 255, 205 }, { 255, 255, 205 }, { 155, 255, 205 }, + { 205, 255, 255 }, { 155, 155, 255 }, { 205, 175, 255 }, { 175, 255, 205 }, { 255, 155, 235 }, +}; +u32 D_8011FE20[] = { 0x32, 0xA, 0x19, 0x28, 0x46, 0x1E, 0x32, 0x46, 0x32, 0x28 }; +u32 D_8011FE48[] = { 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s") +#endif + +f32 func_800746DC(void) { return Rand_ZeroOne() - 0.5f; } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80074704.s") +#ifdef NON_MATCHING +// float regalloc, but appears to be equivalent +void Environment_DrawRain(GlobalContext* globalCtx, View* view, GraphicsContext* gfxCtx) { + s16 i; + Vec3f vec; + f32 length; + Vec3f norm; + f32 rotX; + f32 rotY; + f32 tempY; + f32 x50; + f32 y50; + f32 z50; + f32 x280; + f32 z280; + f32 temp; + f32 temp2; + Vec3f unused = { 0.0f, 0.0f, 0.0f }; + Vec3f windDirection = { 0.0f, 0.0f, 0.0f }; + Player* player = GET_PLAYER(globalCtx); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80074CE8.s") + if (!(globalCtx->cameraPtrs[0]->unk_14C & 0x100) && (globalCtx->envCtx.unk_EE[2] == 0)) { + OPEN_DISPS(gfxCtx, "../z_kankyo.c", 2799); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80074D6C.s") + vec.x = view->lookAt.x - view->eye.x; + vec.y = view->lookAt.y - view->eye.y; + vec.z = view->lookAt.z - view->eye.z; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80074FF4.s") + length = sqrtf(SQXYZ(vec)); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800750C0.s") + norm.x = vec.x / length; + norm.y = vec.y / length; + norm.z = vec.z / length; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800753C4.s") + x50 = view->eye.x + norm.x * 50.0f; + y50 = view->eye.y + norm.y * 50.0f; + z50 = view->eye.z + norm.z * 50.0f; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8007542C.s") + x280 = view->eye.x + norm.x * 280.0f; + z280 = view->eye.z + norm.z * 280.0f; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800758AC.s") + if (globalCtx->envCtx.unk_EE[1]) { + gDPPipeSync(POLY_XLU_DISP++); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 150, 255, 255, 30); + POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 20); + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80075B44.s") + // draw rain drops + for (i = 0; i < globalCtx->envCtx.unk_EE[1]; i++) { + vec.x = Rand_ZeroOne(); + vec.y = Rand_ZeroOne(); + vec.z = Rand_ZeroOne(); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80075E68.s") + Matrix_Translate((vec.x - 0.7f) * 100.0f + x50, (vec.y - 0.7f) * 100.0f + y50, + (vec.z - 0.7f) * 100.0f + z50, MTXMODE_NEW); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s") + temp = windDirection.x = globalCtx->envCtx.windDirection.x; + windDirection.y = globalCtx->envCtx.windDirection.y; + temp2 = windDirection.z = globalCtx->envCtx.windDirection.z; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s") + tempY = windDirection.y + 500.0f + Rand_ZeroOne() * 200.0f; + // float regalloc is bad around here. + z50 = temp2; + length = sqrtf(SQ(temp) + SQ(z50)); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s") + gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + rotX = Math_Atan2F(length, -tempY); + rotY = Math_Atan2F(z50, temp); + Matrix_RotateY(-rotY, MTXMODE_APPLY); + Matrix_RotateX(M_PI / 2 - rotX, MTXMODE_APPLY); + Matrix_Scale(0.4f, 1.2f, 0.4f, MTXMODE_APPLY); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_kankyo.c", 2887), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_XLU_DISP++, gRaindropDL); + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800766C4.s") + // draw droplet rings on the ground + if (player->actor.world.pos.y < view->eye.y) { + u8 firstDone = false; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8007672C.s") + for (i = 0; i < globalCtx->envCtx.unk_EE[1]; i++) { + if (!firstDone) { + func_80093D84(gfxCtx); + gDPSetEnvColor(POLY_XLU_DISP++, 155, 155, 155, 0); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 120); + firstDone++; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80076934.s") + Matrix_Translate(func_800746DC() * 280.0f + x280, player->actor.world.pos.y + 2.0f, + func_800746DC() * 280.0f + z280, MTXMODE_NEW); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800773A8.s") + if ((LINK_IS_ADULT && ((player->actor.world.pos.y + 2.0f - view->eye.y) > -48.0f)) || + (!LINK_IS_ADULT && ((player->actor.world.pos.y + 2.0f - view->eye.y) > -30.0f))) { + Matrix_Scale(0.02f, 0.02f, 0.02f, MTXMODE_APPLY); + } else { + Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY); + } -s32 func_800775CC() { - return gSaveContext.unk_18; + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_kankyo.c", 2940), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_XLU_DISP++, gEffShockwaveDL); + } + } + + CLOSE_DISPS(gfxCtx, "../z_kankyo.c", 2946); + } +} +#else +Vec3f D_8011FE70 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_8011FE7C = { 0.0f, 0.0f, 0.0f }; +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawRain.s") +#endif + +void func_80074CE8(GlobalContext* globalCtx, u32 arg1) { + if ((globalCtx->envCtx.unk_BD != arg1) && (globalCtx->envCtx.unk_D8 >= 1.0f) && + (globalCtx->envCtx.unk_BF == 0xFF)) { + if (arg1 > 30) { + arg1 = 0; + } + + globalCtx->envCtx.unk_D8 = 0.0f; + globalCtx->envCtx.unk_BE = globalCtx->envCtx.unk_BD; + globalCtx->envCtx.unk_BD = arg1; + } } -void func_800775D8() { - gSaveContext.unk_18 = 0; +/** + * Draw color filters over the skybox. There are two filters. + * The first uses the global fog color, and an alpha calculated with `fogNear`. + * This filter draws unconditionally for skybox 29 at full alpha. + * (note: skybox 29 is unused in the original game) + * For the rest of the skyboxes it will draw if fogNear is less than 980. + * + * The second filter uses a custom color specified in `skyboxFilterColor` + * and can be enabled with `customSkyboxFilter`. + * + * An example usage of a filter is to dim the skybox in cloudy conditions. + */ +void Environment_DrawSkyboxFilters(GlobalContext* globalCtx) { + if (((globalCtx->skyboxId != SKYBOX_NONE) && (globalCtx->lightCtx.fogNear < 980)) || + (globalCtx->skyboxId == SKYBOX_UNSET_1D)) { + f32 alpha; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3032); + + func_800938B4(globalCtx->state.gfxCtx); + + alpha = (1000 - globalCtx->lightCtx.fogNear) * 0.02f; + + if (globalCtx->skyboxId == SKYBOX_UNSET_1D) { + alpha = 1.0f; + } + + if (alpha > 1.0f) { + alpha = 1.0f; + } + + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, globalCtx->lightCtx.fogColor[0], globalCtx->lightCtx.fogColor[1], + globalCtx->lightCtx.fogColor[2], 255.0f * alpha); + gDPFillRectangle(POLY_OPA_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3043); + } + + if (globalCtx->envCtx.customSkyboxFilter) { + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3048); + + func_800938B4(globalCtx->state.gfxCtx); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, globalCtx->envCtx.skyboxFilterColor[0], + globalCtx->envCtx.skyboxFilterColor[1], globalCtx->envCtx.skyboxFilterColor[2], + globalCtx->envCtx.skyboxFilterColor[3]); + gDPFillRectangle(POLY_OPA_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3056); + } } -s32 func_800775E4() { - return gSaveContext.numDays; +void Environment_DrawLightningFlash(GlobalContext* globalCtx, u8 red, u8 green, u8 blue, u8 alpha) { + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3069); + + func_800938B4(globalCtx->state.gfxCtx); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, red, green, blue, alpha); + gDPFillRectangle(POLY_OPA_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3079); +} + +void Environment_UpdateLightningStrike(GlobalContext* globalCtx) { + if (globalCtx->envCtx.lightningMode != LIGHTNING_MODE_OFF) { + switch (gLightningStrike.state) { + case LIGHTNING_STRIKE_WAIT: + // every frame theres a 10% chance of the timer advancing 50 units + if (Rand_ZeroOne() < 0.1f) { + gLightningStrike.delayTimer += 50.0f; + } + + gLightningStrike.delayTimer += Rand_ZeroOne(); + + if (gLightningStrike.delayTimer > 500.0f) { + gLightningStrike.flashRed = 200; + gLightningStrike.flashGreen = 200; + gLightningStrike.flashBlue = 255; + gLightningStrike.flashAlphaTarget = 200; + + gLightningStrike.delayTimer = 0.0f; + Environment_AddLightningBolts(globalCtx, + (u8)(Rand_ZeroOne() * (ARRAY_COUNT(sLightningBolts) - 0.1f)) + 1); + sLightningFlashAlpha = 0; + gLightningStrike.state++; + } + break; + case LIGHTNING_STRIKE_START: + gLightningStrike.flashRed = 200; + gLightningStrike.flashGreen = 200; + gLightningStrike.flashBlue = 255; + + globalCtx->envCtx.adjAmbientColor[0] += 80; + globalCtx->envCtx.adjAmbientColor[1] += 80; + globalCtx->envCtx.adjAmbientColor[2] += 100; + + sLightningFlashAlpha += 100; + + if (sLightningFlashAlpha >= gLightningStrike.flashAlphaTarget) { + func_800F6D58(15, 0, 0); + gLightningStrike.state++; + gLightningStrike.flashAlphaTarget = 0; + } + break; + case LIGHTNING_STRIKE_END: + if (globalCtx->envCtx.adjAmbientColor[0] > 0) { + globalCtx->envCtx.adjAmbientColor[0] -= 10; + globalCtx->envCtx.adjAmbientColor[1] -= 10; + } + + if (globalCtx->envCtx.adjAmbientColor[2] > 0) { + globalCtx->envCtx.adjAmbientColor[2] -= 10; + } + + sLightningFlashAlpha -= 10; + + if (sLightningFlashAlpha <= gLightningStrike.flashAlphaTarget) { + globalCtx->envCtx.adjAmbientColor[0] = 0; + globalCtx->envCtx.adjAmbientColor[1] = 0; + globalCtx->envCtx.adjAmbientColor[2] = 0; + + gLightningStrike.state = LIGHTNING_STRIKE_WAIT; + + if (globalCtx->envCtx.lightningMode == LIGHTNING_MODE_LAST) { + globalCtx->envCtx.lightningMode = LIGHTNING_MODE_OFF; + } + } + break; + } + } + + if (gLightningStrike.state != LIGHTNING_STRIKE_WAIT) { + Environment_DrawLightningFlash(globalCtx, gLightningStrike.flashRed, gLightningStrike.flashGreen, + gLightningStrike.flashBlue, sLightningFlashAlpha); + } +} + +/** + * Request the number of lightning bolts specified by `num` + * Note: only 3 lightning bolts can be active at the same time. + */ +void Environment_AddLightningBolts(GlobalContext* globalCtx, u8 num) { + s16 boltsAdded = 0; + s16 i; + + for (i = 0; i < ARRAY_COUNT(sLightningBolts); i++) { + if (sLightningBolts[i].state == LIGHTNING_BOLT_INACTIVE) { + sLightningBolts[i].state = LIGHTNING_BOLT_START; + boltsAdded++; + + if (boltsAdded >= num) { + break; + } + } + } +} + +/** + * Draw any active lightning bolt entries contained in `sLightningBolts` + */ +void Environment_DrawLightning(GlobalContext* globalCtx, s32 unused) { + static void* lightningTextures[] = { + gEffLightning1Tex, gEffLightning2Tex, gEffLightning3Tex, + gEffLightning4Tex, gEffLightning5Tex, gEffLightning6Tex, + gEffLightning7Tex, gEffLightning8Tex, NULL, + }; + s16 i; + f32 dx; + f32 dz; + f32 x; + f32 z; + s32 pad[2]; + Vec3f unused1 = { 0.0f, 0.0f, 0.0f }; + Vec3f unused2 = { 0.0f, 0.0f, 0.0f }; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3253); + + for (i = 0; i < ARRAY_COUNT(sLightningBolts); i++) { + switch (sLightningBolts[i].state) { + case LIGHTNING_BOLT_START: + dx = globalCtx->view.lookAt.x - globalCtx->view.eye.x; + dz = globalCtx->view.lookAt.z - globalCtx->view.eye.z; + + x = dx / sqrtf(SQ(dx) + SQ(dz)); + z = dz / sqrtf(SQ(dx) + SQ(dz)); + + sLightningBolts[i].pos.x = globalCtx->view.eye.x + x * 9500.0f; + sLightningBolts[i].pos.y = Rand_ZeroOne() * 1000.0f + 4000.0f; + sLightningBolts[i].pos.z = globalCtx->view.eye.z + z * 9500.0f; + + sLightningBolts[i].offset.x = (Rand_ZeroOne() - 0.5f) * 5000.0f; + sLightningBolts[i].offset.y = 0.0f; + sLightningBolts[i].offset.z = (Rand_ZeroOne() - 0.5f) * 5000.0f; + + sLightningBolts[i].textureIndex = 0; + sLightningBolts[i].pitch = (Rand_ZeroOne() - 0.5f) * 40.0f; + sLightningBolts[i].roll = (Rand_ZeroOne() - 0.5f) * 40.0f; + sLightningBolts[i].delayTimer = 3 * (i + 1); + sLightningBolts[i].state++; + break; + case LIGHTNING_BOLT_WAIT: + sLightningBolts[i].delayTimer--; + + if (sLightningBolts[i].delayTimer <= 0) { + sLightningBolts[i].state++; + } + break; + case LIGHTNING_BOLT_DRAW: + if (sLightningBolts[i].textureIndex < 7) { + sLightningBolts[i].textureIndex++; + } else { + sLightningBolts[i].state = LIGHTNING_BOLT_INACTIVE; + } + break; + } + + if (sLightningBolts[i].state == LIGHTNING_BOLT_DRAW) { + Matrix_Translate(sLightningBolts[i].pos.x + sLightningBolts[i].offset.x, + sLightningBolts[i].pos.y + sLightningBolts[i].offset.y, + sLightningBolts[i].pos.z + sLightningBolts[i].offset.z, MTXMODE_NEW); + Matrix_RotateX(sLightningBolts[i].pitch * (M_PI / 180.0f), MTXMODE_APPLY); + Matrix_RotateZ(sLightningBolts[i].roll * (M_PI / 180.0f), MTXMODE_APPLY); + Matrix_Scale(22.0f, 100.0f, 22.0f, MTXMODE_APPLY); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 128); + gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 255, 128); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_kankyo.c", 3333), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(lightningTextures[sLightningBolts[i].textureIndex])); + func_80094C50(globalCtx->state.gfxCtx); + gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPDisplayList(POLY_XLU_DISP++, gEffLightningDL); + } + } + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3353); +} + +void func_800758AC(GlobalContext* globalCtx) { + globalCtx->envCtx.unk_E0 = 0xFF; + + // both lost woods exits on the bridge from kokiri to hyrule field + if (((void)0, gSaveContext.entranceIndex) == 0x4DE || ((void)0, gSaveContext.entranceIndex) == 0x5E0) { + func_800F6FB4(4); + } else if (((void)0, gSaveContext.unk_140E) != 0) { + if (!func_80077600()) { + Audio_QueueSeqCmd((s32)((void)0, gSaveContext.unk_140E)); + } + gSaveContext.unk_140E = 0; + } else if (globalCtx->soundCtx.seqIndex == 0x7F) { + if (globalCtx->soundCtx.nightSeqIndex == 0x13) { + return; + } + if (((void)0, gSaveContext.nightSeqIndex) != globalCtx->soundCtx.nightSeqIndex) { + func_800F6FB4(globalCtx->soundCtx.nightSeqIndex); + } + } else if (globalCtx->soundCtx.nightSeqIndex == 0x13) { + // "BGM Configuration" + osSyncPrintf("\n\n\nBGM設定game_play->sound_info.BGM=[%d] old_bgm=[%d]\n\n", globalCtx->soundCtx.seqIndex, + ((void)0, gSaveContext.seqIndex)); + if (((void)0, gSaveContext.seqIndex) != globalCtx->soundCtx.seqIndex) { + func_800F5550(globalCtx->soundCtx.seqIndex); + } + } else if (((void)0, gSaveContext.dayTime) > 0x4AAA && ((void)0, gSaveContext.dayTime) < 0xB71D) { + if (((void)0, gSaveContext.seqIndex) != globalCtx->soundCtx.seqIndex) { + func_800F5550(globalCtx->soundCtx.seqIndex); + } + + globalCtx->envCtx.unk_E0 = 1; + } else { + if (((void)0, gSaveContext.nightSeqIndex) != globalCtx->soundCtx.nightSeqIndex) { + func_800F6FB4(globalCtx->soundCtx.nightSeqIndex); + } + + if (((void)0, gSaveContext.dayTime) > 0xB71C && ((void)0, gSaveContext.dayTime) < 0xCAAC) { + globalCtx->envCtx.unk_E0 = 3; + } else if (((void)0, gSaveContext.dayTime) > 0xCAAC || ((void)0, gSaveContext.dayTime) < 0x4555) { + globalCtx->envCtx.unk_E0 = 5; + } else { + globalCtx->envCtx.unk_E0 = 7; + } + } + + osSyncPrintf("\n-----------------\n", ((void)0, gSaveContext.unk_140E)); + osSyncPrintf("\n 強制BGM=[%d]", ((void)0, gSaveContext.unk_140E)); // "Forced BGM" + osSyncPrintf("\n BGM=[%d]", globalCtx->soundCtx.seqIndex); + osSyncPrintf("\n エンブ=[%d]", globalCtx->soundCtx.nightSeqIndex); + osSyncPrintf("\n status=[%d]", globalCtx->envCtx.unk_E0); + + Audio_SetEnvReverb(globalCtx->roomCtx.curRoom.echo); +} + +// updates bgm/sfx and other things as the day progresses +void func_80075B44(GlobalContext* globalCtx) { + switch (globalCtx->envCtx.unk_E0) { + case 0: + func_800F6D58(86, 1, 0); + if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) { + osSyncPrintf("\n\n\nNa_StartMorinigBgm\n\n"); + func_800F5510(globalCtx->soundCtx.seqIndex); + } + globalCtx->envCtx.unk_E0++; + break; + case 1: + if (gSaveContext.dayTime > 0xB71C) { + if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) { + Audio_QueueSeqCmd(0x10F000FF); + } + globalCtx->envCtx.unk_E0++; + } + break; + case 2: + if (gSaveContext.dayTime > 0xC000) { + func_800788CC(NA_SE_EV_DOG_CRY_EVENING); + globalCtx->envCtx.unk_E0++; + } + break; + case 3: + if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) { + func_800F6FB4(globalCtx->soundCtx.nightSeqIndex); + func_800F6D58(1, 1, 1); + } + globalCtx->envCtx.unk_E0++; + break; + case 4: + if (gSaveContext.dayTime > 0xCAAB) { + globalCtx->envCtx.unk_E0++; + } + break; + case 5: + func_800F6D58(1, 1, 0); + if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) { + func_800F6D58(36, 1, 1); + } + globalCtx->envCtx.unk_E0++; + break; + case 6: + if ((gSaveContext.dayTime < 0xCAAC) && (gSaveContext.dayTime > 0x4555)) { + gSaveContext.totalDays++; + gSaveContext.bgsDayCount++; + gSaveContext.dogIsLost = true; + func_80078884(NA_SE_EV_CHICKEN_CRY_M); + if ((Inventory_ReplaceItem(globalCtx, ITEM_WEIRD_EGG, ITEM_CHICKEN) || + Inventory_ReplaceItem(globalCtx, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO)) && + globalCtx->csCtx.state == 0 && !Player_InCsMode(globalCtx)) { + func_8010B680(globalCtx, 0x3066, NULL); + } + globalCtx->envCtx.unk_E0++; + } + break; + case 7: + func_800F6D58(36, 1, 0); + if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) { + func_800F6D58(86, 1, 1); + } + globalCtx->envCtx.unk_E0++; + break; + case 8: + if (gSaveContext.dayTime > 0x4AAB) { + globalCtx->envCtx.unk_E0 = 0; + } + break; + } +} + +void Environment_DrawCustomLensFlare(GlobalContext* globalCtx) { + Vec3f pos; + + if (gCustomLensFlareOn) { + pos.x = gCustomLensFlarePos.x; + pos.y = gCustomLensFlarePos.y; + pos.z = gCustomLensFlarePos.z; + + Environment_DrawLensFlare(globalCtx, &globalCtx->envCtx, &globalCtx->view, globalCtx->state.gfxCtx, pos, + D_8015FD04, D_8015FD06, D_8015FD08, D_8015FD0C, 0); + } +} + +void Environment_InitGameOverLights(GlobalContext* globalCtx) { + s32 pad; + Player* player = GET_PLAYER(globalCtx); + + sGameOverLightsIntensity = 0; + + Lights_PointNoGlowSetInfo(&sNGameOverLightInfo, (s16)player->actor.world.pos.x - 10.0f, + (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z - 10.0f, 0, 0, 0, + 255); + sNGameOverLightNode = LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &sNGameOverLightInfo); + + Lights_PointNoGlowSetInfo(&sSGameOverLightInfo, (s16)player->actor.world.pos.x + 10.0f, + (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z + 10.0f, 0, 0, 0, + 255); + sSGameOverLightNode = LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &sSGameOverLightInfo); +} + +void Environment_FadeInGameOverLights(GlobalContext* globalCtx) { + Player* player = GET_PLAYER(globalCtx); + s16 i; + + Lights_PointNoGlowSetInfo(&sNGameOverLightInfo, (s16)player->actor.world.pos.x - 10.0f, + (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z - 10.0f, + sGameOverLightsIntensity, sGameOverLightsIntensity, sGameOverLightsIntensity, 255); + Lights_PointNoGlowSetInfo(&sSGameOverLightInfo, (s16)player->actor.world.pos.x + 10.0f, + (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z + 10.0f, + sGameOverLightsIntensity, sGameOverLightsIntensity, sGameOverLightsIntensity, 255); + + if (sGameOverLightsIntensity < 254) { + sGameOverLightsIntensity += 2; + } + + if (func_800C0CB8(globalCtx)) { + for (i = 0; i < 3; i++) { + if (globalCtx->envCtx.adjAmbientColor[i] > -255) { + globalCtx->envCtx.adjAmbientColor[i] -= 12; + globalCtx->envCtx.adjLight1Color[i] -= 12; + } + globalCtx->envCtx.adjFogColor[i] = -255; + } + + if (globalCtx->envCtx.lightSettings.fogFar + globalCtx->envCtx.adjFogFar > 900) { + globalCtx->envCtx.adjFogFar -= 100; + } + + if (globalCtx->envCtx.lightSettings.fogNear + globalCtx->envCtx.adjFogNear > 950) { + globalCtx->envCtx.adjFogNear -= 10; + } + } else { + globalCtx->envCtx.fillScreen = true; + globalCtx->envCtx.screenFillColor[0] = 0; + globalCtx->envCtx.screenFillColor[1] = 0; + globalCtx->envCtx.screenFillColor[2] = 0; + globalCtx->envCtx.screenFillColor[3] = sGameOverLightsIntensity; + } +} + +void Environment_FadeOutGameOverLights(GlobalContext* globalCtx) { + Player* player = GET_PLAYER(globalCtx); + s16 i; + + if (sGameOverLightsIntensity >= 3) { + sGameOverLightsIntensity -= 3; + } else { + sGameOverLightsIntensity = 0; + } + + if (sGameOverLightsIntensity == 1) { + LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, sNGameOverLightNode); + LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, sSGameOverLightNode); + } else if (sGameOverLightsIntensity >= 2) { + Lights_PointNoGlowSetInfo(&sNGameOverLightInfo, (s16)player->actor.world.pos.x - 10.0f, + (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z - 10.0f, + sGameOverLightsIntensity, sGameOverLightsIntensity, sGameOverLightsIntensity, 255); + Lights_PointNoGlowSetInfo(&sSGameOverLightInfo, (s16)player->actor.world.pos.x + 10.0f, + (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z + 10.0f, + sGameOverLightsIntensity, sGameOverLightsIntensity, sGameOverLightsIntensity, 255); + } + + if (func_800C0CB8(globalCtx)) { + for (i = 0; i < 3; i++) { + Math_SmoothStepToS(&globalCtx->envCtx.adjAmbientColor[i], 0, 5, 12, 1); + Math_SmoothStepToS(&globalCtx->envCtx.adjLight1Color[i], 0, 5, 12, 1); + globalCtx->envCtx.adjFogColor[i] = 0; + } + globalCtx->envCtx.adjFogFar = 0; + globalCtx->envCtx.adjFogNear = 0; + } else { + globalCtx->envCtx.fillScreen = true; + globalCtx->envCtx.screenFillColor[0] = 0; + globalCtx->envCtx.screenFillColor[1] = 0; + globalCtx->envCtx.screenFillColor[2] = 0; + globalCtx->envCtx.screenFillColor[3] = sGameOverLightsIntensity; + if (sGameOverLightsIntensity == 0) { + globalCtx->envCtx.fillScreen = false; + } + } +} + +void func_800766C4(GlobalContext* globalCtx) { + u8 max = MAX(globalCtx->envCtx.unk_EE[0], globalCtx->envCtx.unk_F2[0]); + + if (globalCtx->envCtx.unk_EE[1] != max && ((globalCtx->state.frames % 8) == 0)) { + if (globalCtx->envCtx.unk_EE[1] < max) { + globalCtx->envCtx.unk_EE[1] += 2; + } else { + globalCtx->envCtx.unk_EE[1] -= 2; + } + } +} + +void Environment_FillScreen(GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue, u8 alpha, u8 drawFlags) { + if (alpha != 0) { + OPEN_DISPS(gfxCtx, "../z_kankyo.c", 3835); + + if (drawFlags & FILL_SCREEN_OPA) { + POLY_OPA_DISP = func_800937C0(POLY_OPA_DISP); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, red, green, blue, alpha); + gDPSetAlphaDither(POLY_OPA_DISP++, G_AD_DISABLE); + gDPSetColorDither(POLY_OPA_DISP++, G_CD_DISABLE); + gDPFillRectangle(POLY_OPA_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); + } + + if (drawFlags & FILL_SCREEN_XLU) { + POLY_XLU_DISP = func_800937C0(POLY_XLU_DISP); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, red, green, blue, alpha); + + if ((u32)alpha == 255) { + gDPSetRenderMode(POLY_XLU_DISP++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + } + + gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_DISABLE); + gDPSetColorDither(POLY_XLU_DISP++, G_CD_DISABLE); + gDPFillRectangle(POLY_XLU_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); + } + + CLOSE_DISPS(gfxCtx, "../z_kankyo.c", 3863); + } +} + +Color_RGB8 sSandstormPrimColors[] = { + { 210, 156, 85 }, + { 255, 200, 100 }, + { 225, 160, 50 }, + { 105, 90, 40 }, +}; + +Color_RGB8 sSandstormEnvColors[] = { + { 155, 106, 35 }, + { 200, 150, 50 }, + { 170, 110, 0 }, + { 50, 40, 0 }, +}; + +void Environment_DrawSandstorm(GlobalContext* globalCtx, u8 sandstormState) { + s32 primA1; + s32 envA1; + s32 primA = globalCtx->envCtx.sandstormPrimA; + s32 envA = globalCtx->envCtx.sandstormEnvA; + Color_RGBA8 primColor; + Color_RGBA8 envColor; + s32 pad; + f32 sp98; + u16 sp96; + u16 sp94; + u16 sp92; + + switch (sandstormState) { + case 3: + if ((globalCtx->sceneNum == SCENE_SPOT13) && (globalCtx->roomCtx.curRoom.num == 0)) { + envA1 = 0; + primA1 = (globalCtx->envCtx.sandstormEnvA > 128) ? 255 : globalCtx->envCtx.sandstormEnvA >> 1; + } else { + primA1 = globalCtx->state.frames % 128; + if (primA1 > 64) { + primA1 = 128 - primA1; + } + primA1 += 73; + envA1 = 128; + } + break; + case 1: + primA1 = 255; + envA1 = (globalCtx->envCtx.sandstormPrimA >= 255) ? 255 : 128; + break; + case 2: + envA1 = 128; + if (globalCtx->envCtx.sandstormEnvA > 128) { + primA1 = 0xFF; + } else { + primA1 = globalCtx->state.frames % 128; + if (primA1 > 64) { + primA1 = 128 - primA1; + } + primA1 += 73; + } + if ((primA1 >= primA) && (primA1 != 255)) { + globalCtx->envCtx.sandstormState = 3; + } + break; + case 4: + envA1 = 0; + primA1 = (globalCtx->envCtx.sandstormEnvA > 128) ? 255 : globalCtx->envCtx.sandstormEnvA >> 1; + + if (primA == 0) { + globalCtx->envCtx.sandstormState = 0; + } + break; + } + + if (ABS(primA - primA1) < 9) { + primA = primA1; + } else if (primA1 < primA) { + primA = primA - 9; + } else { + primA = primA + 9; + } + if (ABS(envA - envA1) < 9) { + envA = envA1; + } else if (envA1 < envA) { + envA = envA - 9; + } else { + envA = envA + 9; + } + globalCtx->envCtx.sandstormPrimA = primA; + globalCtx->envCtx.sandstormEnvA = envA; + + sp98 = (512.0f - (primA + envA)) * (3.0f / 128.0f); + if (sp98 > 6.0f) { + sp98 = 6.0f; + } + if (globalCtx->envCtx.indoors || (globalCtx->envCtx.unk_BF != 0xFF)) { + primColor.r = sSandstormPrimColors[1].r; + primColor.g = sSandstormPrimColors[1].g; + primColor.b = sSandstormPrimColors[1].b; + envColor.r = sSandstormEnvColors[1].r; + envColor.g = sSandstormEnvColors[1].g; + envColor.b = sSandstormEnvColors[1].b; + } else if (D_8011FDCC == D_8011FDD0) { + primColor.r = sSandstormPrimColors[D_8011FDCC].r; + primColor.g = sSandstormPrimColors[D_8011FDCC].g; + primColor.b = sSandstormPrimColors[D_8011FDCC].b; + envColor.r = sSandstormEnvColors[D_8011FDCC].r; + envColor.g = sSandstormEnvColors[D_8011FDCC].g; + envColor.b = sSandstormEnvColors[D_8011FDCC].b; + } else { + primColor.r = (s32)F32_LERP(sSandstormPrimColors[D_8011FDCC].r, sSandstormPrimColors[D_8011FDD0].r, D_8011FDD4); + primColor.g = (s32)F32_LERP(sSandstormPrimColors[D_8011FDCC].g, sSandstormPrimColors[D_8011FDD0].g, D_8011FDD4); + primColor.b = (s32)F32_LERP(sSandstormPrimColors[D_8011FDCC].b, sSandstormPrimColors[D_8011FDD0].b, D_8011FDD4); + envColor.r = (s32)F32_LERP(sSandstormEnvColors[D_8011FDCC].r, sSandstormEnvColors[D_8011FDD0].r, D_8011FDD4); + envColor.g = (s32)F32_LERP(sSandstormEnvColors[D_8011FDCC].g, sSandstormEnvColors[D_8011FDD0].g, D_8011FDD4); + envColor.b = (s32)F32_LERP(sSandstormEnvColors[D_8011FDCC].b, sSandstormEnvColors[D_8011FDD0].b, D_8011FDD4); + } + + envColor.r = ((envColor.r * sp98) + ((6.0f - sp98) * primColor.r)) * (1.0f / 6.0f); + envColor.g = ((envColor.g * sp98) + ((6.0f - sp98) * primColor.g)) * (1.0f / 6.0f); + envColor.b = ((envColor.b * sp98) + ((6.0f - sp98) * primColor.b)) * (1.0f / 6.0f); + + sp96 = (s32)(D_8015FDB0 * (11.0f / 6.0f)); + sp94 = (s32)(D_8015FDB0 * (9.0f / 6.0f)); + sp92 = (s32)(D_8015FDB0 * (6.0f / 6.0f)); + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 4044); + + POLY_XLU_DISP = func_80093F34(POLY_XLU_DISP); + gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_NOISE); + gDPSetColorDither(POLY_XLU_DISP++, G_CD_NOISE); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, primColor.r, primColor.g, primColor.b, globalCtx->envCtx.sandstormPrimA); + gDPSetEnvColor(POLY_XLU_DISP++, envColor.r, envColor.g, envColor.b, globalCtx->envCtx.sandstormEnvA); + gSPSegment(POLY_XLU_DISP++, 0x08, + Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (u32)sp96 % 0x1000, 0, 0x200, 0x20, 1, (u32)sp94 % 0x1000, + 0xFFF - ((u32)sp92 % 0x1000), 0x100, 0x40)); + gDPSetTextureLUT(POLY_XLU_DISP++, G_TT_NONE); + gSPDisplayList(POLY_XLU_DISP++, gFieldSandstormDL); + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 4068); + + D_8015FDB0 += (s32)sp98; +} + +void Environment_AdjustLights(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { + f32 temp; + s32 i; + + if (globalCtx->roomCtx.curRoom.unk_03 != 5 && func_800C0CB8(globalCtx)) { + arg1 = CLAMP_MIN(arg1, 0.0f); + arg1 = CLAMP_MAX(arg1, 1.0f); + + temp = arg1 - arg3; + if (arg1 < arg3) { + temp = 0.0f; + } + + globalCtx->envCtx.adjFogNear = (arg2 - globalCtx->envCtx.lightSettings.fogNear) * temp; + + if (arg1 == 0.0f) { + for (i = 0; i < 3; i++) { + globalCtx->envCtx.adjFogColor[i] = 0; + } + } else { + temp = arg1 * 5.0f; + temp = CLAMP_MAX(temp, 1.0f); + + for (i = 0; i < 3; i++) { + globalCtx->envCtx.adjFogColor[i] = -(s16)(globalCtx->envCtx.lightSettings.fogColor[i] * temp); + } + } + + if (arg4 <= 0.0f) { + return; + } + + arg1 *= arg4; + + for (i = 0; i < 3; i++) { + globalCtx->envCtx.adjAmbientColor[i] = -(s16)(globalCtx->envCtx.lightSettings.ambientColor[i] * arg1); + globalCtx->envCtx.adjLight1Color[i] = -(s16)(globalCtx->envCtx.lightSettings.light1Color[i] * arg1); + } + } +} + +s32 Environment_GetBgsDayCount(void) { + return gSaveContext.bgsDayCount; +} + +void Environment_ClearBgsDayCount(void) { + gSaveContext.bgsDayCount = 0; +} + +s32 Environment_GetTotalDays(void) { + return gSaveContext.totalDays; } void func_800775F0(u16 arg0) { gSaveContext.unk_140E = arg0; } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80077600.s") +s32 func_80077600(void) { + s32 ret = false; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80077624.s") + if (gSaveContext.unk_140E == 0xFFFF) { + ret = true; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80077684.s") + return ret; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800776E4.s") +void func_80077624(GlobalContext* globalCtx) { + if (globalCtx->soundCtx.nightSeqIndex == 19) { + func_800F6FB4(5); + } else { + func_800F6FB4(globalCtx->soundCtx.nightSeqIndex); + } + + func_800F6D58(14, 1, 1); + func_800F6D58(15, 1, 1); +} + +void func_80077684(GlobalContext* globalCtx) { + func_800F6D58(14, 1, 0); + func_800F6D58(15, 1, 0); + + if (func_800FA0B4(0) == 1) { + gSaveContext.seqIndex = 0x80; + func_800758AC(globalCtx); + } +} + +void Environment_WarpSongLeave(GlobalContext* globalCtx) { + gWeatherMode = 0; + gSaveContext.cutsceneIndex = 0; + gSaveContext.respawnFlag = -3; + globalCtx->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_RETURN].entranceIndex; + globalCtx->sceneLoadFlag = 0x14; + globalCtx->fadeTransition = 3; + gSaveContext.nextTransition = 3; + + switch (globalCtx->nextEntranceIndex) { + case 0x147: + Flags_SetEventChkInf(0xB9); + break; + case 0x0102: + Flags_SetEventChkInf(0xB1); + break; + case 0x0123: + Flags_SetEventChkInf(0xB8); + break; + case 0x00E4: + Flags_SetEventChkInf(0xB6); + break; + case 0x0053: + Flags_SetEventChkInf(0xA7); + break; + case 0x00FC: + break; + } +} diff --git a/src/code/z_lights.c b/src/code/z_lights.c index 8ea2955240..3067b712b1 100644 --- a/src/code/z_lights.c +++ b/src/code/z_lights.c @@ -198,29 +198,29 @@ s32 Lights_FreeNode(LightNode* light) { void LightContext_Init(GlobalContext* globalCtx, LightContext* lightCtx) { LightContext_InitList(globalCtx, lightCtx); LightContext_SetAmbientColor(lightCtx, 80, 80, 80); - func_8007A698(lightCtx, 0, 0, 0, 0x3E4, 0x3200); + LightContext_SetFog(lightCtx, 0, 0, 0, 996, 12800); bzero(&sLightsBuffer, sizeof(sLightsBuffer)); } void LightContext_SetAmbientColor(LightContext* lightCtx, u8 r, u8 g, u8 b) { - lightCtx->ambient.r = r; - lightCtx->ambient.g = g; - lightCtx->ambient.b = b; + lightCtx->ambientColor[0] = r; + lightCtx->ambientColor[1] = g; + lightCtx->ambientColor[2] = b; } -void func_8007A698(LightContext* lightCtx, u8 arg1, u8 arg2, u8 arg3, s16 numLights, s16 arg5) { - lightCtx->unk_07 = arg1; - lightCtx->unk_08 = arg2; - lightCtx->unk_09 = arg3; - lightCtx->unk_0A = numLights; - lightCtx->unk_0C = arg5; +void LightContext_SetFog(LightContext* lightCtx, u8 r, u8 g, u8 b, s16 fogNear, s16 fogFar) { + lightCtx->fogColor[0] = r; + lightCtx->fogColor[1] = g; + lightCtx->fogColor[2] = b; + lightCtx->fogNear = fogNear; + lightCtx->fogFar = fogFar; } /** * Allocate a new Lights group and initilize the ambient color with that provided by LightContext */ Lights* LightContext_NewLights(LightContext* lightCtx, GraphicsContext* gfxCtx) { - return Lights_New(gfxCtx, lightCtx->ambient.r, lightCtx->ambient.g, lightCtx->ambient.b); + return Lights_New(gfxCtx, lightCtx->ambientColor[0], lightCtx->ambientColor[1], lightCtx->ambientColor[2]); } void LightContext_InitList(GlobalContext* globalCtx, LightContext* lightCtx) { diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c index fe13ea7675..0aedbe8cd2 100644 --- a/src/code/z_map_exp.c +++ b/src/code/z_map_exp.c @@ -212,8 +212,8 @@ void Map_InitRoomData(GlobalContext* globalCtx, s16 room) { interfaceCtx->mapRoomNum = 0; } - if (gSaveContext.unk_1422 != 2) { - gSaveContext.unk_1422 = 0; + if (gSaveContext.sunsSongState != SUNSSONG_SPEED_TIME) { + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; } } @@ -559,7 +559,7 @@ void Map_Update(GlobalContext* globalCtx) { osSyncPrintf("階層切替=%x\n", interfaceCtx->mapRoomNum); osSyncPrintf(VT_RST); Map_InitData(globalCtx, interfaceCtx->mapRoomNum); - gSaveContext.unk_1422 = 0; + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; Map_SavePlayerInitialInfo(globalCtx); } } diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 8e3dda4c8d..e896cddccc 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -3789,7 +3789,7 @@ void Interface_Draw(GlobalContext* globalCtx) { void Interface_Update(GlobalContext* globalCtx) { static u8 D_80125B60 = 0; - static s16 D_80125B64 = 0; + static s16 sPrevTimeIncrement = 0; MessageContext* msgCtx = &globalCtx->msgCtx; InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; Player* player = GET_PLAYER(globalCtx); @@ -4098,30 +4098,32 @@ void Interface_Update(GlobalContext* globalCtx) { } } - if (gSaveContext.unk_1422 != 0) { - if ((msgCtx->unk_E3F0 != 0x31) && (gSaveContext.unk_1422 == 1)) { + if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE) { + // exit out of ocarina mode after suns song finishes playing + if ((msgCtx->unk_E3F0 != 0x31) && (gSaveContext.sunsSongState == SUNSSONG_START)) { globalCtx->msgCtx.unk_E3EE = 4; } - if (globalCtx->envCtx.unk_02 != 0) { - if (gSaveContext.unk_1422 != 2) { + // handle suns song in areas where time moves + if (globalCtx->envCtx.timeIncrement != 0) { + if (gSaveContext.sunsSongState != SUNSSONG_SPEED_TIME) { D_80125B60 = 0; if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime <= 0xC001)) { D_80125B60 = 1; } - gSaveContext.unk_1422 = 2; - D_80125B64 = D_8011FB40; - D_8011FB40 = 400; + gSaveContext.sunsSongState = SUNSSONG_SPEED_TIME; + sPrevTimeIncrement = gTimeIncrement; + gTimeIncrement = 400; } else if (D_80125B60 == 0) { if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime <= 0xC001)) { - gSaveContext.unk_1422 = 0; - D_8011FB40 = D_80125B64; + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; + gTimeIncrement = sPrevTimeIncrement; globalCtx->msgCtx.unk_E3EE = 4; } } else if (gSaveContext.dayTime > 0xC001) { - gSaveContext.unk_1422 = 0; - D_8011FB40 = D_80125B64; + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; + gTimeIncrement = sPrevTimeIncrement; globalCtx->msgCtx.unk_E3EE = 4; } } else if ((globalCtx->roomCtx.curRoom.unk_03 != 1) && (interfaceCtx->restrictions.sunsSong != 3)) { @@ -4145,12 +4147,12 @@ void Interface_Update(GlobalContext* globalCtx) { gSaveContext.respawnFlag = -2; globalCtx->nextEntranceIndex = gSaveContext.entranceIndex; globalCtx->sceneLoadFlag = 0x14; - gSaveContext.unk_1422 = 0; + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; func_800F6964(30); gSaveContext.seqIndex = 0xFF; gSaveContext.nightSeqIndex = 0xFF; } else { - gSaveContext.unk_1422 = 3; + gSaveContext.sunsSongState = SUNSSONG_SPECIAL; } } } diff --git a/src/code/z_play.c b/src/code/z_play.c index 52f72c83da..6d45532ae4 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -135,9 +135,9 @@ void func_800BC88C(GlobalContext* globalCtx) { globalCtx->transitionCtx.transitionType = -1; } -Gfx* func_800BC8A0(GlobalContext* globalCtx, Gfx* gfx) { - return Gfx_SetFog2(gfx, globalCtx->lightCtx.unk_07, globalCtx->lightCtx.unk_08, globalCtx->lightCtx.unk_09, 0, - globalCtx->lightCtx.unk_0A, 1000); +Gfx* Gameplay_SetFog(GlobalContext* globalCtx, Gfx* gfx) { + return Gfx_SetFog2(gfx, globalCtx->lightCtx.fogColor[0], globalCtx->lightCtx.fogColor[1], + globalCtx->lightCtx.fogColor[2], 0, globalCtx->lightCtx.fogNear, 1000); } void Gameplay_Destroy(GameState* thisx) { @@ -246,7 +246,7 @@ void Gameplay_Init(GameState* thisx) { if (gSaveContext.nextDayTime != 0xFFFFU) { gSaveContext.dayTime = gSaveContext.nextDayTime; - gSaveContext.environmentTime = gSaveContext.nextDayTime; + gSaveContext.skyboxTime = gSaveContext.nextDayTime; } if (gSaveContext.dayTime > 0xC000 || gSaveContext.dayTime < 0x4555) { @@ -306,8 +306,8 @@ void Gameplay_Init(GameState* thisx) { if (gSaveContext.nextDayTime != 0xFFFF) { if (gSaveContext.nextDayTime == 0x8001) { - gSaveContext.numDays++; - gSaveContext.unk_18++; + gSaveContext.totalDays++; + gSaveContext.bgsDayCount++; gSaveContext.dogIsLost = true; if (Inventory_ReplaceItem(globalCtx, ITEM_WEIRD_EGG, ITEM_CHICKEN) || Inventory_ReplaceItem(globalCtx, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO)) { @@ -606,21 +606,21 @@ void Gameplay_Update(GlobalContext* globalCtx) { switch (globalCtx->transitionMode) { case 4: D_801614C8 = 0; - globalCtx->envCtx.unk_E1 = 1; - globalCtx->envCtx.unk_E2[0] = 0xA0; - globalCtx->envCtx.unk_E2[1] = 0xA0; - globalCtx->envCtx.unk_E2[2] = 0xA0; + globalCtx->envCtx.fillScreen = true; + globalCtx->envCtx.screenFillColor[0] = 160; + globalCtx->envCtx.screenFillColor[1] = 160; + globalCtx->envCtx.screenFillColor[2] = 160; if (globalCtx->sceneLoadFlag != -0x14) { - globalCtx->envCtx.unk_E2[3] = 0; + globalCtx->envCtx.screenFillColor[3] = 0; globalCtx->transitionMode = 5; } else { - globalCtx->envCtx.unk_E2[3] = 0xFF; + globalCtx->envCtx.screenFillColor[3] = 255; globalCtx->transitionMode = 6; } break; case 5: - globalCtx->envCtx.unk_E2[3] = (D_801614C8 / 20.0f) * 255.0f; + globalCtx->envCtx.screenFillColor[3] = (D_801614C8 / 20.0f) * 255.0f; if (D_801614C8 >= 20 && 1) { globalCtx->state.running = 0; SET_NEXT_GAMESTATE(&globalCtx->state, Gameplay_Init, GlobalContext); @@ -633,13 +633,13 @@ void Gameplay_Update(GlobalContext* globalCtx) { break; case 6: - globalCtx->envCtx.unk_E2[3] = (1 - D_801614C8 / 20.0f) * 255.0f; + globalCtx->envCtx.screenFillColor[3] = (1 - D_801614C8 / 20.0f) * 255.0f; if (D_801614C8 >= 20 && 1) { gTrnsnUnkState = 0; R_UPDATE_RATE = 3; globalCtx->sceneLoadFlag = 0; globalCtx->transitionMode = 0; - globalCtx->envCtx.unk_E1 = 0; + globalCtx->envCtx.fillScreen = false; } else { D_801614C8++; } @@ -647,15 +647,15 @@ void Gameplay_Update(GlobalContext* globalCtx) { case 7: D_801614C8 = 0; - globalCtx->envCtx.unk_E1 = 1; - globalCtx->envCtx.unk_E2[0] = 0xAA; - globalCtx->envCtx.unk_E2[1] = 0xA0; - globalCtx->envCtx.unk_E2[2] = 0x96; + globalCtx->envCtx.fillScreen = true; + globalCtx->envCtx.screenFillColor[0] = 170; + globalCtx->envCtx.screenFillColor[1] = 160; + globalCtx->envCtx.screenFillColor[2] = 150; if (globalCtx->sceneLoadFlag != -0x14) { - globalCtx->envCtx.unk_E2[3] = 0; + globalCtx->envCtx.screenFillColor[3] = 0; globalCtx->transitionMode = 5; } else { - globalCtx->envCtx.unk_E2[3] = 0xFF; + globalCtx->envCtx.screenFillColor[3] = 255; globalCtx->transitionMode = 6; } break; @@ -683,12 +683,12 @@ void Gameplay_Update(GlobalContext* globalCtx) { case 12: if (globalCtx->sceneLoadFlag != -0x14) { - globalCtx->envCtx.unk_E6 = 1; + globalCtx->envCtx.sandstormState = 1; globalCtx->transitionMode = 13; } else { - globalCtx->envCtx.unk_E6 = 2; - globalCtx->envCtx.unk_E7 = 0xFF; - globalCtx->envCtx.unk_E8 = 0xFF; + globalCtx->envCtx.sandstormState = 2; + globalCtx->envCtx.sandstormPrimA = 255; + globalCtx->envCtx.sandstormEnvA = 255; globalCtx->transitionMode = 13; } break; @@ -697,14 +697,14 @@ void Gameplay_Update(GlobalContext* globalCtx) { Audio_PlaySoundGeneral(NA_SE_EV_SAND_STORM - SFX_FLAG, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); if (globalCtx->sceneLoadFlag == -0x14) { - if (globalCtx->envCtx.unk_E7 < 0x6E) { + if (globalCtx->envCtx.sandstormPrimA < 110) { gTrnsnUnkState = 0; R_UPDATE_RATE = 3; globalCtx->sceneLoadFlag = 0; globalCtx->transitionMode = 0; } } else { - if (globalCtx->envCtx.unk_E8 == 0xFF) { + if (globalCtx->envCtx.sandstormEnvA == 255) { globalCtx->state.running = 0; SET_NEXT_GAMESTATE(&globalCtx->state, Gameplay_Init, GlobalContext); gSaveContext.entranceIndex = globalCtx->nextEntranceIndex; @@ -716,9 +716,9 @@ void Gameplay_Update(GlobalContext* globalCtx) { case 14: if (globalCtx->sceneLoadFlag == -0x14) { - globalCtx->envCtx.unk_E6 = 4; - globalCtx->envCtx.unk_E7 = 0xFF; - globalCtx->envCtx.unk_E8 = 0xFF; + globalCtx->envCtx.sandstormState = 4; + globalCtx->envCtx.sandstormPrimA = 255; + globalCtx->envCtx.sandstormEnvA = 255; // "It's here!!!!!!!!!" LOG_STRING("来た!!!!!!!!!!!!!!!!!!!!!", "../z_play.c", 3471); globalCtx->transitionMode = 15; @@ -731,7 +731,7 @@ void Gameplay_Update(GlobalContext* globalCtx) { Audio_PlaySoundGeneral(NA_SE_EV_SAND_STORM - SFX_FLAG, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); if (globalCtx->sceneLoadFlag == -0x14) { - if (globalCtx->envCtx.unk_E7 <= 0) { + if (globalCtx->envCtx.sandstormPrimA <= 0) { gTrnsnUnkState = 0; R_UPDATE_RATE = 3; globalCtx->sceneLoadFlag = 0; @@ -742,17 +742,17 @@ void Gameplay_Update(GlobalContext* globalCtx) { case 16: D_801614C8 = 0; - globalCtx->envCtx.unk_E1 = 1; - globalCtx->envCtx.unk_E2[0] = 0; - globalCtx->envCtx.unk_E2[1] = 0; - globalCtx->envCtx.unk_E2[2] = 0; - globalCtx->envCtx.unk_E2[3] = 0xFF; + globalCtx->envCtx.fillScreen = true; + globalCtx->envCtx.screenFillColor[0] = 0; + globalCtx->envCtx.screenFillColor[1] = 0; + globalCtx->envCtx.screenFillColor[2] = 0; + globalCtx->envCtx.screenFillColor[3] = 255; globalCtx->transitionMode = 17; break; case 17: if (gSaveContext.unk_1410 != 0) { - globalCtx->envCtx.unk_E2[3] = gSaveContext.unk_1410; + globalCtx->envCtx.screenFillColor[3] = gSaveContext.unk_1410; if (gSaveContext.unk_1410 < 0x65) { gTrnsnUnkState = 0; R_UPDATE_RATE = 3; @@ -813,11 +813,12 @@ void Gameplay_Update(GlobalContext* globalCtx) { osSyncPrintf("FINISH=%d\n", globalCtx->actorCtx.freezeFlashTimer); if ((globalCtx->actorCtx.freezeFlashTimer > 0) && ((globalCtx->actorCtx.freezeFlashTimer % 2) != 0)) { - globalCtx->envCtx.unk_E1 = 1; - globalCtx->envCtx.unk_E2[0] = globalCtx->envCtx.unk_E2[1] = globalCtx->envCtx.unk_E2[2] = 150; - globalCtx->envCtx.unk_E2[3] = 80; + globalCtx->envCtx.fillScreen = true; + globalCtx->envCtx.screenFillColor[0] = globalCtx->envCtx.screenFillColor[1] = + globalCtx->envCtx.screenFillColor[2] = 150; + globalCtx->envCtx.screenFillColor[3] = 80; } else { - globalCtx->envCtx.unk_E1 = 0; + globalCtx->envCtx.fillScreen = false; } } else { if (1 && HREG(63)) { @@ -1031,8 +1032,8 @@ skip: LOG_NUM("1", 1, "../z_play.c", 3816); } - func_80070C24(globalCtx, &globalCtx->envCtx, &globalCtx->lightCtx, &globalCtx->pauseCtx, &globalCtx->msgCtx, - &globalCtx->gameOverCtx, globalCtx->state.gfxCtx); + Environment_Update(globalCtx, &globalCtx->envCtx, &globalCtx->lightCtx, &globalCtx->pauseCtx, &globalCtx->msgCtx, + &globalCtx->gameOverCtx, globalCtx->state.gfxCtx); } void Gameplay_DrawOverlayElements(GlobalContext* globalCtx) { @@ -1081,10 +1082,10 @@ void Gameplay_Draw(GlobalContext* globalCtx) { func_80095248(gfxCtx, 0, 0, 0); if ((HREG(80) != 10) || (HREG(82) != 0)) { - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); - POLY_XLU_DISP = func_800BC8A0(globalCtx, POLY_XLU_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); + POLY_XLU_DISP = Gameplay_SetFog(globalCtx, POLY_XLU_DISP); - func_800AA460(&globalCtx->view, globalCtx->view.fovy, globalCtx->view.zNear, globalCtx->lightCtx.unk_0C); + func_800AA460(&globalCtx->view, globalCtx->view.fovy, globalCtx->view.zNear, globalCtx->lightCtx.fogFar); func_800AAA50(&globalCtx->view, 15); Matrix_MtxToMtxF(&globalCtx->view.viewing, &globalCtx->mf_11DA0); @@ -1092,12 +1093,8 @@ void Gameplay_Draw(GlobalContext* globalCtx) { Matrix_Mult(&globalCtx->mf_11D60, MTXMODE_NEW); Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY); Matrix_Get(&globalCtx->mf_11D60); - globalCtx->mf_11DA0.mf[3][2] = 0.0f; - globalCtx->mf_11DA0.mf[3][1] = 0.0f; - globalCtx->mf_11DA0.mf[3][0] = 0.0f; - globalCtx->mf_11DA0.mf[2][3] = 0.0f; - globalCtx->mf_11DA0.mf[1][3] = 0.0f; - globalCtx->mf_11DA0.mf[0][3] = 0.0f; + globalCtx->mf_11DA0.mf[0][3] = globalCtx->mf_11DA0.mf[1][3] = globalCtx->mf_11DA0.mf[2][3] = + globalCtx->mf_11DA0.mf[3][0] = globalCtx->mf_11DA0.mf[3][1] = globalCtx->mf_11DA0.mf[3][2] = 0.0f; Matrix_Transpose(&globalCtx->mf_11DA0); globalCtx->unk_11DE0 = Matrix_MtxFToMtx(Matrix_CheckFloats(&globalCtx->mf_11DA0, "../z_play.c", 4005), Graph_Alloc(gfxCtx, sizeof(Mtx))); @@ -1165,12 +1162,12 @@ void Gameplay_Draw(GlobalContext* globalCtx) { if ((HREG(80) != 10) || (HREG(83) != 0)) { if (globalCtx->skyboxId && (globalCtx->skyboxId != SKYBOX_UNSET_1D) && - !globalCtx->envCtx.skyDisabled) { + !globalCtx->envCtx.skyboxDisabled) { if ((globalCtx->skyboxId == SKYBOX_NORMAL_SKY) || (globalCtx->skyboxId == SKYBOX_CUTSCENE_MAP)) { - func_8006FC88(globalCtx->skyboxId, &globalCtx->envCtx, &globalCtx->skyboxCtx); + Environment_UpdateSkybox(globalCtx->skyboxId, &globalCtx->envCtx, &globalCtx->skyboxCtx); SkyboxDraw_Draw(&globalCtx->skyboxCtx, gfxCtx, globalCtx->skyboxId, - globalCtx->envCtx.unk_13, globalCtx->view.eye.x, globalCtx->view.eye.y, + globalCtx->envCtx.skyboxBlend, globalCtx->view.eye.x, globalCtx->view.eye.y, globalCtx->view.eye.z); } else if (globalCtx->skyboxCtx.unk_140 == 0) { SkyboxDraw_Draw(&globalCtx->skyboxCtx, gfxCtx, globalCtx->skyboxId, 0, @@ -1181,17 +1178,17 @@ void Gameplay_Draw(GlobalContext* globalCtx) { if ((HREG(80) != 10) || (HREG(90) & 2)) { if (!globalCtx->envCtx.sunMoonDisabled) { - func_800730DC(globalCtx); + Environment_DrawSunAndMoon(globalCtx); } } if ((HREG(80) != 10) || (HREG(90) & 1)) { - func_80074D6C(globalCtx); + Environment_DrawSkyboxFilters(globalCtx); } if ((HREG(80) != 10) || (HREG(90) & 4)) { - func_800750C0(globalCtx); - func_8007542C(globalCtx, 0); + Environment_UpdateLightningStrike(globalCtx); + Environment_DrawLightning(globalCtx, 0); } if ((HREG(80) != 10) || (HREG(90) & 8)) { @@ -1226,11 +1223,11 @@ void Gameplay_Draw(GlobalContext* globalCtx) { } if (globalCtx->envCtx.unk_EE[1] != 0) { - func_80074704(globalCtx, &globalCtx->view, gfxCtx); + Environment_DrawRain(globalCtx, &globalCtx->view, gfxCtx); } if ((HREG(80) != 10) || (HREG(84) != 0)) { - func_8007672C(gfxCtx, 0, 0, 0, globalCtx->unk_11E18, 1); + Environment_FillScreen(gfxCtx, 0, 0, 0, globalCtx->unk_11E18, FILL_SCREEN_OPA); } if ((HREG(80) != 10) || (HREG(85) != 0)) { @@ -1239,23 +1236,26 @@ void Gameplay_Draw(GlobalContext* globalCtx) { if ((HREG(80) != 10) || (HREG(86) != 0)) { if (!globalCtx->envCtx.sunMoonDisabled) { - sp21C.x = globalCtx->view.eye.x + globalCtx->envCtx.unk_04.x; - sp21C.y = globalCtx->view.eye.y + globalCtx->envCtx.unk_04.y; - sp21C.z = globalCtx->view.eye.z + globalCtx->envCtx.unk_04.z; - func_80073988(globalCtx, &globalCtx->envCtx, &globalCtx->view, gfxCtx, sp21C, 0); + sp21C.x = globalCtx->view.eye.x + globalCtx->envCtx.sunPos.x; + sp21C.y = globalCtx->view.eye.y + globalCtx->envCtx.sunPos.y; + sp21C.z = globalCtx->view.eye.z + globalCtx->envCtx.sunPos.z; + Environment_DrawSunLensFlare(globalCtx, &globalCtx->envCtx, &globalCtx->view, gfxCtx, sp21C, 0); } - func_80075E68(globalCtx); + Environment_DrawCustomLensFlare(globalCtx); } if ((HREG(80) != 10) || (HREG(87) != 0)) { if (MREG(64) != 0) { - func_8007672C(gfxCtx, MREG(65), MREG(66), MREG(67), MREG(68), 3); + Environment_FillScreen(gfxCtx, MREG(65), MREG(66), MREG(67), MREG(68), + FILL_SCREEN_OPA | FILL_SCREEN_XLU); } - switch (globalCtx->envCtx.unk_E1) { + switch (globalCtx->envCtx.fillScreen) { case 1: - func_8007672C(gfxCtx, globalCtx->envCtx.unk_E2[0], globalCtx->envCtx.unk_E2[1], - globalCtx->envCtx.unk_E2[2], globalCtx->envCtx.unk_E2[3], 3); + Environment_FillScreen( + gfxCtx, globalCtx->envCtx.screenFillColor[0], globalCtx->envCtx.screenFillColor[1], + globalCtx->envCtx.screenFillColor[2], globalCtx->envCtx.screenFillColor[3], + FILL_SCREEN_OPA | FILL_SCREEN_XLU); break; default: break; @@ -1263,8 +1263,8 @@ void Gameplay_Draw(GlobalContext* globalCtx) { } if ((HREG(80) != 10) || (HREG(88) != 0)) { - if (globalCtx->envCtx.unk_E6 != 0) { - func_80076934(globalCtx, globalCtx->envCtx.unk_E6); + if (globalCtx->envCtx.sandstormState != 0) { + Environment_DrawSandstorm(globalCtx, globalCtx->envCtx.sandstormState); } } @@ -1274,7 +1274,6 @@ void Gameplay_Draw(GlobalContext* globalCtx) { if ((R_PAUSE_MENU_MODE == 1) || (gTrnsnUnkState == 1)) { Gfx* sp70 = OVERLAY_DISP; - s32 pad[4]; globalCtx->pauseBgPreRender.fbuf = gfxCtx->curFrameBuffer; globalCtx->pauseBgPreRender.fbufSave = (u16*)gZBuffer; @@ -1303,7 +1302,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) { Camera_Update(GET_ACTIVE_CAM(globalCtx)); func_800AB944(&globalCtx->view); globalCtx->view.unk_124 = 0; - if (globalCtx->skyboxId && (globalCtx->skyboxId != SKYBOX_UNSET_1D) && !globalCtx->envCtx.skyDisabled) { + if (globalCtx->skyboxId && (globalCtx->skyboxId != SKYBOX_UNSET_1D) && !globalCtx->envCtx.skyboxDisabled) { SkyboxDraw_UpdateMatrix(&globalCtx->skyboxCtx, globalCtx->view.eye.x, globalCtx->view.eye.y, globalCtx->view.eye.z); } @@ -1439,9 +1438,9 @@ void* Gameplay_LoadFile(GlobalContext* globalCtx, RomFile* file) { return allocp; } -void Gameplay_InitSkybox(GlobalContext* globalCtx, s16 skyboxId) { +void Gameplay_InitEnvironment(GlobalContext* globalCtx, s16 skyboxId) { Skybox_Init(globalCtx, &globalCtx->skyboxCtx, skyboxId); - func_8006F140(globalCtx, &globalCtx->envCtx, 0); + Environment_Init(globalCtx, &globalCtx->envCtx, 0); } void Gameplay_InitScene(GlobalContext* globalCtx, s32 spawn) { @@ -1460,7 +1459,7 @@ void Gameplay_InitScene(GlobalContext* globalCtx, s32 spawn) { YREG(15) = 0; gSaveContext.worldMapArea = 0; Scene_ExecuteCommands(globalCtx, globalCtx->sceneSegment); - Gameplay_InitSkybox(globalCtx, globalCtx->skyboxId); + Gameplay_InitEnvironment(globalCtx, globalCtx->skyboxId); } void Gameplay_SpawnScene(GlobalContext* globalCtx, s32 sceneNum, s32 spawn) { diff --git a/src/code/z_rcp.c b/src/code/z_rcp.c index d0709b44fc..c2410f5631 100644 --- a/src/code/z_rcp.c +++ b/src/code/z_rcp.c @@ -847,51 +847,52 @@ Gfx gEmptyDL[] = { gsSPEndDisplayList(), }; -Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f) { - if (f == n) { - f++; +Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) { + if (far == near) { + far++; } - ASSERT(n != f, "n != f", "../z_rcp.c", 1155); + + ASSERT(near != far, "n != f", "../z_rcp.c", 1155); gDPSetFogColor(gfx++, r, g, b, a); - if (n >= 1000) { + if (near >= 1000) { gSPFogFactor(gfx++, 0, 0); - } else if (n >= 997) { + } else if (near >= 997) { gSPFogFactor(gfx++, 0x7FFF, 0x8100); - } else if (n < 0) { + } else if (near < 0) { gSPFogFactor(gfx++, 0, 255); } else { - gSPFogPosition(gfx++, n, f); + gSPFogPosition(gfx++, near, far); } return gfx; } -Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f) { - if (f == n) { - f++; +Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) { + if (far == near) { + far++; } - ASSERT(n != f, "n != f", "../z_rcp.c", 1187); + ASSERT(near != far, "n != f", "../z_rcp.c", 1187); gDPPipeSync(gfx++); gDPSetFogColor(gfx++, r, g, b, a); - if (n >= 1000) { + if (near >= 1000) { gSPFogFactor(gfx++, 0, 0); - } else if (n >= 997) { + } else if (near >= 997) { gSPFogFactor(gfx++, 0x7FFF, 0x8100); - } else if (n < 0) { + } else if (near < 0) { gSPFogFactor(gfx++, 0, 255); } else { - gSPFogPosition(gfx++, n, f); + gSPFogPosition(gfx++, near, far); } return gfx; } -Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f) { - return Gfx_SetFog(gfx, r, g, b, a, n, f); +Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) { + return Gfx_SetFog(gfx, r, g, b, a, near, far); } Gfx* Gfx_CallSetupDLImpl(Gfx* gfx, u32 i) { diff --git a/src/code/z_room.c b/src/code/z_room.c index acad1905a5..80e724368a 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -131,7 +131,7 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) { SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->mf_11D60, &sp90, &sp84, &sp80); if (-(f32)polygonDlist->unk_06 < sp84.z) { temp_f2 = sp84.z - polygonDlist->unk_06; - if (temp_f2 < globalCtx->lightCtx.unk_0C) { + if (temp_f2 < globalCtx->lightCtx.fogFar) { phi_v0 = spB4; spA4->unk_00 = polygonDlist; spA4->unk_04 = temp_f2; diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 370a0eb0bc..572cb488cb 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -343,67 +343,63 @@ void func_80098CC8(GlobalContext* globalCtx, SceneCmd* cmd) { // Scene Command 0x11: Skybox Settings void func_80098D1C(GlobalContext* globalCtx, SceneCmd* cmd) { globalCtx->skyboxId = cmd->skyboxSettings.skyboxId; - globalCtx->envCtx.gloomySky = globalCtx->envCtx.unk_18 = cmd->skyboxSettings.unk_05; - globalCtx->envCtx.unk_1E = cmd->skyboxSettings.unk_06; + globalCtx->envCtx.unk_17 = globalCtx->envCtx.unk_18 = cmd->skyboxSettings.unk_05; + globalCtx->envCtx.indoors = cmd->skyboxSettings.unk_06; } // Scene Command 0x12: Skybox Disables void func_80098D5C(GlobalContext* globalCtx, SceneCmd* cmd) { - globalCtx->envCtx.skyDisabled = cmd->skyboxDisables.unk_04; + globalCtx->envCtx.skyboxDisabled = cmd->skyboxDisables.unk_04; globalCtx->envCtx.sunMoonDisabled = cmd->skyboxDisables.unk_05; } // Scene Command 0x10: Time Settings void func_80098D80(GlobalContext* globalCtx, SceneCmd* cmd) { - u32 dayTime; - if ((cmd->timeSettings.hour != 0xFF) && (cmd->timeSettings.min != 0xFF)) { - gSaveContext.environmentTime = gSaveContext.dayTime = - ((cmd->timeSettings.hour + (cmd->timeSettings.min / 60.0f)) * 60.0f) / (360.0f / 0x4000); + gSaveContext.skyboxTime = gSaveContext.dayTime = + ((cmd->timeSettings.hour + (cmd->timeSettings.min / 60.0f)) * 60.0f) / ((f32)(24 * 60) / 0x10000); } if (cmd->timeSettings.unk_06 != 0xFF) { - globalCtx->envCtx.unk_02 = cmd->timeSettings.unk_06; + globalCtx->envCtx.timeIncrement = cmd->timeSettings.unk_06; } else { - globalCtx->envCtx.unk_02 = 0; + globalCtx->envCtx.timeIncrement = 0; } - if (gSaveContext.unk_1422 == 0) { - D_8011FB40 = globalCtx->envCtx.unk_02; + if (gSaveContext.sunsSongState == SUNSSONG_INACTIVE) { + gTimeIncrement = globalCtx->envCtx.timeIncrement; } - dayTime = gSaveContext.dayTime; - globalCtx->envCtx.unk_04.x = -(Math_SinS(dayTime - 0x8000) * 120.0f) * 25.0f; - dayTime = gSaveContext.dayTime; - globalCtx->envCtx.unk_04.y = (Math_CosS(dayTime - 0x8000) * 120.0f) * 25.0f; - dayTime = gSaveContext.dayTime; - globalCtx->envCtx.unk_04.z = (Math_CosS(dayTime - 0x8000) * 20.0f) * 25.0f; + globalCtx->envCtx.sunPos.x = -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f; + globalCtx->envCtx.sunPos.y = (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f; + globalCtx->envCtx.sunPos.z = (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f) * 25.0f; - if (((globalCtx->envCtx.unk_02 == 0) && (gSaveContext.cutsceneIndex < 0xFFF0)) || + if (((globalCtx->envCtx.timeIncrement == 0) && (gSaveContext.cutsceneIndex < 0xFFF0)) || (gSaveContext.entranceIndex == 0x0604)) { - gSaveContext.environmentTime = gSaveContext.dayTime; - if ((gSaveContext.environmentTime >= 0x2AAC) && (gSaveContext.environmentTime < 0x4555)) { - gSaveContext.environmentTime = 0x3556; - } else if ((gSaveContext.environmentTime >= 0x4555) && (gSaveContext.environmentTime < 0x5556)) { - gSaveContext.environmentTime = 0x5556; - } else if ((gSaveContext.environmentTime >= 0xAAAB) && (gSaveContext.environmentTime < 0xB556)) { - gSaveContext.environmentTime = 0xB556; - } else if ((gSaveContext.environmentTime >= 0xC001) && (gSaveContext.environmentTime < 0xCAAC)) { - gSaveContext.environmentTime = 0xCAAC; + gSaveContext.skyboxTime = ((void)0, gSaveContext.dayTime); + if ((gSaveContext.skyboxTime >= 0x2AAC) && (gSaveContext.skyboxTime < 0x4555)) { + gSaveContext.skyboxTime = 0x3556; + } else if ((gSaveContext.skyboxTime >= 0x4555) && (gSaveContext.skyboxTime < 0x5556)) { + gSaveContext.skyboxTime = 0x5556; + } else if ((gSaveContext.skyboxTime >= 0xAAAB) && (gSaveContext.skyboxTime < 0xB556)) { + gSaveContext.skyboxTime = 0xB556; + } else if ((gSaveContext.skyboxTime >= 0xC001) && (gSaveContext.skyboxTime < 0xCAAC)) { + gSaveContext.skyboxTime = 0xCAAC; } } } // Scene Command 0x05: Wind Settings void func_80099090(GlobalContext* globalCtx, SceneCmd* cmd) { - s8 temp1 = cmd->windSettings.unk_04; - s8 temp2 = cmd->windSettings.unk_05; - s8 temp3 = cmd->windSettings.unk_06; + s8 x = cmd->windSettings.x; + s8 y = cmd->windSettings.y; + s8 z = cmd->windSettings.z; - globalCtx->envCtx.unk_A8 = temp1; - globalCtx->envCtx.unk_AA = temp2; - globalCtx->envCtx.unk_AC = temp3; - globalCtx->envCtx.unk_B0 = cmd->windSettings.unk_07; + globalCtx->envCtx.windDirection.x = x; + globalCtx->envCtx.windDirection.y = y; + globalCtx->envCtx.windDirection.z = z; + + globalCtx->envCtx.windSpeed = cmd->windSettings.unk_07; } // Scene Command 0x13: Exit List @@ -501,13 +497,6 @@ void (*gSceneCmdHandlers[])(GlobalContext*, SceneCmd*) = { func_80099140, func_8009918C, func_8009934C, func_800991A0, func_800993C0, }; -#define ROM_FILE(name) \ - { (u32) _##name##SegmentRomStart, (u32)_##name##SegmentRomEnd } -#define ROM_FILE_EMPTY(name) \ - { (u32) _##name##SegmentRomStart, (u32)_##name##SegmentRomStart } -#define ROM_FILE_UNSET \ - { 0 } - RomFile sNaviMsgFiles[] = { ROM_FILE(elf_message_field), ROM_FILE(elf_message_ydan), diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c index 38fe6c95ab..44bb75e2b4 100644 --- a/src/code/z_scene_table.c +++ b/src/code/z_scene_table.c @@ -1088,10 +1088,10 @@ void func_80099BD8(GlobalContext* globalCtx) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5145); if (gSaveContext.sceneSetupIndex == 5) { - D_8015FCF0 = 1; - D_8015FCF8.x = -20.0f; - D_8015FCF8.y = 1220.0f; - D_8015FCF8.z = -684.0f; + gCustomLensFlareOn = true; + gCustomLensFlarePos.x = -20.0f; + gCustomLensFlarePos.y = 1220.0f; + gCustomLensFlarePos.z = -684.0f; D_8015FD06 = 10; D_8015FD08 = 8.0f; D_8015FD0C = 200; diff --git a/src/code/z_sram.c b/src/code/z_sram.c index a9312c0617..356ffee17e 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -63,8 +63,8 @@ typedef struct { /* 0x08 */ s32 cutsceneIndex; /* 0x0C */ u16 dayTime; // "zelda_time" /* 0x10 */ s32 nightFlag; - /* 0x14 */ s32 numDays; - /* 0x18 */ s32 unk_18; // increments with numDays, gets reset by goron for bgs and one other use + /* 0x14 */ s32 totalDays; + /* 0x18 */ s32 unk_18; // increments with totalDays, gets reset by goron for bgs and one other use /* 0x1C */ SaveInfo info; // "information" } Save; // size = 0x1354 @@ -161,8 +161,8 @@ void Sram_InitNewSave(void) { SaveContext* temp = &gSaveContext; bzero(&SAVE_INFO, sizeof(SaveInfo)); - gSaveContext.numDays = 0; - gSaveContext.unk_18 = 0; + gSaveContext.totalDays = 0; + gSaveContext.bgsDayCount = 0; SAVE_PLAYER_DATA = sNewSavePlayerData; gSaveContext.equips = sNewSaveEquips; @@ -250,8 +250,8 @@ void Sram_InitDebugSave(void) { SaveContext* temp = &gSaveContext; bzero(&SAVE_INFO, sizeof(SaveInfo)); - gSaveContext.numDays = 0; - gSaveContext.unk_18 = 0; + gSaveContext.totalDays = 0; + gSaveContext.bgsDayCount = 0; SAVE_PLAYER_DATA = sDebugSavePlayerData; gSaveContext.equips = sDebugSaveEquips; @@ -561,8 +561,8 @@ void Sram_VerifyAndLoadAllSaves(FileChooseContext* fileChooseCtx, SramContext* s // note that gSaveContext.dayTime is not actually the sizeof(s32) bzero(&gSaveContext.dayTime, sizeof(s32)); bzero(&gSaveContext.nightFlag, sizeof(s32)); - bzero(&gSaveContext.numDays, sizeof(s32)); - bzero(&gSaveContext.unk_18, sizeof(s32)); + bzero(&gSaveContext.totalDays, sizeof(s32)); + bzero(&gSaveContext.bgsDayCount, sizeof(s32)); if (!slotNum) { Sram_InitDebugSave(); diff --git a/src/code/z_vr_box.c b/src/code/z_vr_box.c index 2400152f77..b1755f2b67 100644 --- a/src/code/z_vr_box.c +++ b/src/code/z_vr_box.c @@ -1,5 +1,6 @@ #include "global.h" #include "vt.h" +#include "z64environment.h" typedef struct { /* 0x000 */ s32 unk_0; @@ -11,17 +12,7 @@ typedef struct { extern Struct_8012AF0C D_8012AF0C[6]; extern Struct_8012AF0C D_8012AEBC[4]; - -typedef struct { - /* 0x00 */ u16 unk_0; // start - /* 0x02 */ u16 unk_2; // end - /* 0x04 */ u8 unk_4; - /* 0x05 */ u8 unk_5; // img idx 1 - /* 0x06 */ u8 unk_6; // img idx 2 - /* 0x07 */ char unk_7[0x1]; -} Struct_8011FC1C; // size = 0x8 - -extern Struct_8011FC1C D_8011FC1C[8][9]; +extern struct_8011FC1C D_8011FC1C[][9]; typedef struct { /* 0x00 */ u32 unk_0; // start @@ -30,8 +21,6 @@ typedef struct { /* 0x0C */ u32 unk_C; // pal end } Struct_8011FD3C; // size = 0x10 -extern Struct_8011FD3C D_8011FD3C[]; - s32 func_800ADBB0(SkyboxContext* skyboxCtx, Vtx* roomVtx, s32, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, s32, s32); #pragma GLOBAL_ASM("asm/non_matchings/code/z_vr_box/func_800ADBB0.s") @@ -85,64 +74,69 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox switch (skyboxId) { case SKYBOX_NORMAL_SKY: phi_v1 = 0; - if (gSaveContext.unk_13C3 != 0 && gSaveContext.sceneSetupIndex < 4 && D_8011FB30 > 0 && D_8011FB30 < 6) { + if (gSaveContext.unk_13C3 != 0 && gSaveContext.sceneSetupIndex < 4 && gWeatherMode > 0 && + gWeatherMode < 6) { phi_v1 = 1; } for (i = 0; i < 9; i++) { - if (gSaveContext.environmentTime >= D_8011FC1C[phi_v1][i].unk_0 && - (gSaveContext.environmentTime < D_8011FC1C[phi_v1][i].unk_2 || - D_8011FC1C[phi_v1][i].unk_2 == 0xFFFF)) { - globalCtx->envCtx.unk_10 = sp41 = D_8011FC1C[phi_v1][i].unk_5; - globalCtx->envCtx.unk_11 = sp40 = D_8011FC1C[phi_v1][i].unk_6; - if (D_8011FC1C[phi_v1][i].unk_4 != 0) { - globalCtx->envCtx.unk_13 = - func_8006F93C(D_8011FC1C[phi_v1][i].unk_2, D_8011FC1C[phi_v1][i].unk_0, - ((void)0, gSaveContext.environmentTime)) * + if (gSaveContext.skyboxTime >= D_8011FC1C[phi_v1][i].startTime && + (gSaveContext.skyboxTime < D_8011FC1C[phi_v1][i].endTime || + D_8011FC1C[phi_v1][i].endTime == 0xFFFF)) { + globalCtx->envCtx.skybox1Index = sp41 = D_8011FC1C[phi_v1][i].skybox1Index; + globalCtx->envCtx.skybox2Index = sp40 = D_8011FC1C[phi_v1][i].skybox2Index; + if (D_8011FC1C[phi_v1][i].blend != 0) { + globalCtx->envCtx.skyboxBlend = + Environment_LerpWeight(D_8011FC1C[phi_v1][i].endTime, D_8011FC1C[phi_v1][i].startTime, + ((void)0, gSaveContext.skyboxTime)) * 255.0f; } else { - globalCtx->envCtx.unk_13 = 0; + globalCtx->envCtx.skyboxBlend = 0; } break; } } - size = D_8011FD3C[sp41].unk_4 - D_8011FD3C[sp41].unk_0; + size = gSkyboxFiles[sp41].file.vromEnd - gSkyboxFiles[sp41].file.vromStart; skyboxCtx->staticSegments[0] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1054); ASSERT(skyboxCtx->staticSegments[0] != NULL, "vr_box->vr_box_staticSegment[0] != NULL", "../z_vr_box.c", 1055); - DmaMgr_SendRequest1(skyboxCtx->staticSegments[0], D_8011FD3C[sp41].unk_0, size, "../z_vr_box.c", 1058); + DmaMgr_SendRequest1(skyboxCtx->staticSegments[0], gSkyboxFiles[sp41].file.vromStart, size, "../z_vr_box.c", + 1058); - size = D_8011FD3C[sp40].unk_4 - D_8011FD3C[sp40].unk_0; + size = gSkyboxFiles[sp40].file.vromEnd - gSkyboxFiles[sp40].file.vromStart; skyboxCtx->staticSegments[1] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1060); ASSERT(skyboxCtx->staticSegments[1] != NULL, "vr_box->vr_box_staticSegment[1] != NULL", "../z_vr_box.c", 1061); - DmaMgr_SendRequest1(skyboxCtx->staticSegments[1], D_8011FD3C[sp40].unk_0, size, "../z_vr_box.c", 1064); + DmaMgr_SendRequest1(skyboxCtx->staticSegments[1], gSkyboxFiles[sp40].file.vromStart, size, "../z_vr_box.c", + 1064); // reorderings in the rest of this case if (((u8)(sp41 & 4) >> 2) != (sp41 & 1)) { - size = D_8011FD3C[sp41].unk_C - D_8011FD3C[sp41].unk_8; + size = gSkyboxFiles[sp41].pallete.vromEnd - gSkyboxFiles[sp41].pallete.vromStart; skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1072); ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c", 1073); - DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], D_8011FD3C[sp41].unk_8, size, "../z_vr_box.c", 1075); - DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, D_8011FD3C[sp40].unk_8, size, - "../z_vr_box.c", 1077); + DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], gSkyboxFiles[sp41].pallete.vromStart, size, + "../z_vr_box.c", 1075); + DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, gSkyboxFiles[sp40].pallete.vromStart, + size, "../z_vr_box.c", 1077); } else { - size = D_8011FD3C[sp41].unk_C - D_8011FD3C[sp41].unk_8; + size = gSkyboxFiles[sp41].pallete.vromEnd - gSkyboxFiles[sp41].pallete.vromStart; skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1085); ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c", 1086); - DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], D_8011FD3C[sp40].unk_8, size, "../z_vr_box.c", 1088); - DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, D_8011FD3C[sp41].unk_8, size, - "../z_vr_box.c", 1090); + DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], gSkyboxFiles[sp40].pallete.vromStart, size, + "../z_vr_box.c", 1088); + DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, gSkyboxFiles[sp41].pallete.vromStart, + size, "../z_vr_box.c", 1090); } break; diff --git a/src/code/z_vr_box_draw.c b/src/code/z_vr_box_draw.c index b1f1c1bc39..14ad03d662 100644 --- a/src/code/z_vr_box_draw.c +++ b/src/code/z_vr_box_draw.c @@ -11,7 +11,7 @@ Mtx* SkyboxDraw_UpdateMatrix(SkyboxContext* skyboxCtx, f32 x, f32 y, f32 z) { return Matrix_ToMtx(sSkyboxDrawMatrix, "../z_vr_box_draw.c", 42); } -void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 alpha, f32 x, f32 y, f32 z) { +void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 blend, f32 x, f32 y, f32 z) { OPEN_DISPS(gfxCtx, "../z_vr_box_draw.c", 52); func_800945A0(gfxCtx); @@ -20,7 +20,7 @@ void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyb gSPSegment(POLY_OPA_DISP++, 0x8, skyboxCtx->staticSegments[1]); gSPSegment(POLY_OPA_DISP++, 0x9, skyboxCtx->staticSegments[2]); - gDPSetPrimColor(POLY_OPA_DISP++, 0x00, 0x00, 0, 0, 0, alpha); + gDPSetPrimColor(POLY_OPA_DISP++, 0x00, 0x00, 0, 0, 0, blend); gSPTexture(POLY_OPA_DISP++, 0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON); sSkyboxDrawMatrix = Graph_Alloc(gfxCtx, sizeof(Mtx)); diff --git a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c index 46eb5fff1d..caf583f503 100644 --- a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c +++ b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c @@ -229,7 +229,7 @@ void BgSpot00Hanebasi_Update(Actor* thisx, GlobalContext* globalCtx) { globalCtx->sceneLoadFlag = 0x14; globalCtx->fadeTransition = 4; } else if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 3000.0f, 0x7530)) { - globalCtx->envCtx.gloomySkyEvent = 1; + globalCtx->envCtx.gloomySkyMode = 1; } } } @@ -238,20 +238,20 @@ void BgSpot00Hanebasi_Update(Actor* thisx, GlobalContext* globalCtx) { u16 dayTime; s32 tmp; - if (D_8011FB40 == 50) { + if (gTimeIncrement == 50) { tmp = 0xD556; if (gSaveContext.dayTime >= 0xD557) { tmp = 0x1D556; } - D_8011FB40 = (tmp - gSaveContext.dayTime) * (1.0f / 350.0f); + gTimeIncrement = (tmp - gSaveContext.dayTime) * (1.0f / 350.0f); } dayTime = gSaveContext.dayTime; if ((dayTime >= 0x2AAC) && (dayTime < 0x3000) && (gSaveContext.sceneSetupIndex == 5)) { - D_8011FB40 = 0; + gTimeIncrement = 0; } } } diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c index 6207a92cda..a56ce91ee4 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c @@ -199,7 +199,7 @@ s32 func_808AB29C(BgSpot01Idohashira* this, GlobalContext* globalCtx) { npcAction = BgSpot01Idohashira_GetNpcAction(globalCtx, 2); if (npcAction != NULL) { - temp_f0 = func_8006F93C(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames); + temp_f0 = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames); initPos = this->dyna.actor.home.pos; endX = npcAction->endPos.x; tempY = ((kREG(10) + 1100.0f) / 10.0f) + npcAction->endPos.y; diff --git a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c index 63355a8136..98723f1163 100644 --- a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c @@ -298,8 +298,8 @@ void func_808AD450(Actor* thisx, GlobalContext* globalCtx) { } } - lerp = func_8006F93C(globalCtx->csCtx.npcActions[2]->endFrame, globalCtx->csCtx.npcActions[2]->startFrame, - globalCtx->csCtx.frames); + lerp = Environment_LerpWeight(globalCtx->csCtx.npcActions[2]->endFrame, + globalCtx->csCtx.npcActions[2]->startFrame, globalCtx->csCtx.frames); // should be able to remove & 0xFFFF with some other change if ((globalCtx->csCtx.npcActions[2]->action & 0xFFFF) == 2) { diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index efb3c2bb03..514916291f 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -894,11 +894,11 @@ void BossDodongo_Update(Actor* thisx, GlobalContext* globalCtx2) { Math_SmoothStepToF(&this->unk_240, 0.0f, 1, 10.0f, 0.0); } - if ((globalCtx->envCtx.unk_8C[1][2] == 0) && (globalCtx->envCtx.unk_8C[0][2] == 0)) { - globalCtx->envCtx.unk_8C[1][0] = (u8)this->unk_240; - globalCtx->envCtx.unk_8C[1][1] = (u8)(this->unk_240 * 0.1f); - globalCtx->envCtx.unk_8C[0][0] = (u8)this->unk_240; - globalCtx->envCtx.unk_8C[0][1] = (u8)(this->unk_240 * 0.1f); + if ((globalCtx->envCtx.adjLight1Color[2] == 0) && (globalCtx->envCtx.adjAmbientColor[2] == 0)) { + globalCtx->envCtx.adjLight1Color[0] = (u8)this->unk_240; + globalCtx->envCtx.adjLight1Color[1] = (u8)(this->unk_240 * 0.1f); + globalCtx->envCtx.adjAmbientColor[0] = (u8)this->unk_240; + globalCtx->envCtx.adjAmbientColor[1] = (u8)(this->unk_240 * 0.1f); } } @@ -916,10 +916,10 @@ void BossDodongo_Update(Actor* thisx, GlobalContext* globalCtx2) { Math_SmoothStepToF(&this->colorFilterMin, 900.0f, 1, 10.0f, 0.0); Math_SmoothStepToF(&this->colorFilterMax, 1099.0f, 1, 10.0f, 0.0); } else { - Math_SmoothStepToF(&this->colorFilterR, globalCtx->lightCtx.unk_07, 1, 5.0f, 0.0); - Math_SmoothStepToF(&this->colorFilterG, globalCtx->lightCtx.unk_08, 1.0f, 5.0f, 0.0); - Math_SmoothStepToF(&this->colorFilterB, globalCtx->lightCtx.unk_09, 1.0f, 5.0f, 0.0); - Math_SmoothStepToF(&this->colorFilterMin, globalCtx->lightCtx.unk_0A, 1.0, 5.0f, 0.0); + Math_SmoothStepToF(&this->colorFilterR, globalCtx->lightCtx.fogColor[0], 1, 5.0f, 0.0); + Math_SmoothStepToF(&this->colorFilterG, globalCtx->lightCtx.fogColor[1], 1.0f, 5.0f, 0.0); + Math_SmoothStepToF(&this->colorFilterB, globalCtx->lightCtx.fogColor[2], 1.0f, 5.0f, 0.0); + Math_SmoothStepToF(&this->colorFilterMin, globalCtx->lightCtx.fogNear, 1.0, 5.0f, 0.0); Math_SmoothStepToF(&this->colorFilterMax, 1000.0f, 1, 5.0f, 0.0); } @@ -1137,7 +1137,7 @@ void BossDodongo_Draw(Actor* thisx, GlobalContext* globalCtx) { SkelAnime_DrawOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, BossDodongo_OverrideLimbDraw, BossDodongo_PostLimbDraw, this); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_boss_dodongo.c", 3981); diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index fe2b9f7173..6ca2592906 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -1644,7 +1644,7 @@ void BossFd_Draw(Actor* thisx, GlobalContext* globalCtx) { } BossFd_DrawBody(globalCtx, this); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_boss_fd.c", 4243); } diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index f56ad12833..abf0750a51 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -1213,7 +1213,7 @@ void BossFd2_Draw(Actor* thisx, GlobalContext* globalCtx) { SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, BossFd2_OverrideLimbDraw, BossFd2_PostLimbDraw, &this->actor); BossFd2_DrawMane(this, globalCtx); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); } CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_boss_fd2.c", 2688); } diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index af09ff6b80..b7b4df40ce 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -712,11 +712,12 @@ void func_808FD5F4(BossGanon2* this, GlobalContext* globalCtx) { func_800A9F6C(0.0f, 0xFF, 0xA, 0x32); } if (this->unk_398 >= 229) { - globalCtx->envCtx.unk_E1 = 1; - globalCtx->envCtx.unk_E2[0] = globalCtx->envCtx.unk_E2[1] = globalCtx->envCtx.unk_E2[2] = 0xFF; - globalCtx->envCtx.unk_E2[3] = 0x64; + globalCtx->envCtx.fillScreen = true; + globalCtx->envCtx.screenFillColor[0] = globalCtx->envCtx.screenFillColor[1] = + globalCtx->envCtx.screenFillColor[2] = 255; + globalCtx->envCtx.screenFillColor[3] = 100; if (this->unk_398 == 234) { - globalCtx->envCtx.unk_E1 = 0; + globalCtx->envCtx.fillScreen = false; this->unk_39C = 24; this->unk_398 = 0; sp68 = player->actor.world.pos; @@ -2078,13 +2079,13 @@ void BossGanon2_Update(Actor* thisx, GlobalContext* globalCtx) { this->unk_332--; } if ((globalCtx->envCtx.unk_D8 > 0.0f) && (this->unk_336 != 0)) { - globalCtx->envCtx.unk_E9 = 1; - globalCtx->envCtx.unk_EA[0] = 0xFF; - globalCtx->envCtx.unk_EA[1] = 0xFF; - globalCtx->envCtx.unk_EA[2] = 0xFF; - globalCtx->envCtx.unk_EA[3] = (s16)(globalCtx->envCtx.unk_D8 * 200.0f); + globalCtx->envCtx.customSkyboxFilter = 1; + globalCtx->envCtx.skyboxFilterColor[0] = 255; + globalCtx->envCtx.skyboxFilterColor[1] = 255; + globalCtx->envCtx.skyboxFilterColor[2] = 255; + globalCtx->envCtx.skyboxFilterColor[3] = (s16)(globalCtx->envCtx.unk_D8 * 200.0f); } else { - globalCtx->envCtx.unk_E9 = 0; + globalCtx->envCtx.customSkyboxFilter = 0; } globalCtx->envCtx.unk_BF = 0; globalCtx->envCtx.unk_DC = 2; @@ -2749,7 +2750,7 @@ void BossGanon2_Draw(Actor* thisx, GlobalContext* globalCtx) { SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, BossGanon2_OverrideLimbDraw, BossGanon2_PostLimbDraw, this); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); BossGanon2_GenShadowTexture(shadowTexture, this, globalCtx); BossGanon2_DrawShadowTexture(shadowTexture, this, globalCtx); break; @@ -2872,9 +2873,9 @@ void func_809060E8(GlobalContext* globalCtx) { f32 angle; func_80093D84(globalCtx->state.gfxCtx); - spA0.x = globalCtx->envCtx.unk_2A; - spA0.y = globalCtx->envCtx.unk_2B; - spA0.z = globalCtx->envCtx.unk_2C; + spA0.x = globalCtx->envCtx.dirLight1.params.dir.x; + spA0.y = globalCtx->envCtx.dirLight1.params.dir.y; + spA0.z = globalCtx->envCtx.dirLight1.params.dir.z; func_8002EABC(&effect->position, &globalCtx->view.eye, &spA0, globalCtx->state.gfxCtx); Matrix_Translate(effect->position.x, effect->position.y, effect->position.z, MTXMODE_NEW); Matrix_Scale(0.03f, 0.03f, 0.03f, MTXMODE_APPLY); diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index d766a0ccfe..c9d34c1084 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -1519,7 +1519,7 @@ void BossGanondrof_Draw(Actor* thisx, GlobalContext* globalCtx) { SkelAnime_DrawOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, BossGanondrof_OverrideLimbDraw, BossGanondrof_PostLimbDraw, this); osSyncPrintf("DRAW 22\n"); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_boss_ganondrof.c", 3814); osSyncPrintf("DRAW END %d\n", this->actor.params); } diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index d892e3cd8d..3ef8766825 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -1198,57 +1198,57 @@ void BossGoma_Defeated(BossGoma* this, GlobalContext* globalCtx) { if (this->blinkTimer != 0) { this->blinkTimer--; - globalCtx->envCtx.unk_8C[0][0] += 40; - globalCtx->envCtx.unk_8C[0][1] += 40; - globalCtx->envCtx.unk_8C[0][2] += 80; - globalCtx->envCtx.unk_8C[2][0] += 10; - globalCtx->envCtx.unk_8C[2][1] += 10; - globalCtx->envCtx.unk_8C[2][2] += 20; + globalCtx->envCtx.adjAmbientColor[0] += 40; + globalCtx->envCtx.adjAmbientColor[1] += 40; + globalCtx->envCtx.adjAmbientColor[2] += 80; + globalCtx->envCtx.adjFogColor[0] += 10; + globalCtx->envCtx.adjFogColor[1] += 10; + globalCtx->envCtx.adjFogColor[2] += 20; } else { - globalCtx->envCtx.unk_8C[0][0] -= 20; - globalCtx->envCtx.unk_8C[0][1] -= 20; - globalCtx->envCtx.unk_8C[0][2] -= 40; - globalCtx->envCtx.unk_8C[2][0] -= 5; - globalCtx->envCtx.unk_8C[2][1] -= 5; - globalCtx->envCtx.unk_8C[2][2] -= 10; + globalCtx->envCtx.adjAmbientColor[0] -= 20; + globalCtx->envCtx.adjAmbientColor[1] -= 20; + globalCtx->envCtx.adjAmbientColor[2] -= 40; + globalCtx->envCtx.adjFogColor[0] -= 5; + globalCtx->envCtx.adjFogColor[1] -= 5; + globalCtx->envCtx.adjFogColor[2] -= 10; } - if (globalCtx->envCtx.unk_8C[0][0] > 200) { - globalCtx->envCtx.unk_8C[0][0] = 200; + if (globalCtx->envCtx.adjAmbientColor[0] > 200) { + globalCtx->envCtx.adjAmbientColor[0] = 200; } - if (globalCtx->envCtx.unk_8C[0][1] > 200) { - globalCtx->envCtx.unk_8C[0][1] = 200; + if (globalCtx->envCtx.adjAmbientColor[1] > 200) { + globalCtx->envCtx.adjAmbientColor[1] = 200; } - if (globalCtx->envCtx.unk_8C[0][2] > 200) { - globalCtx->envCtx.unk_8C[0][2] = 200; + if (globalCtx->envCtx.adjAmbientColor[2] > 200) { + globalCtx->envCtx.adjAmbientColor[2] = 200; } - if (globalCtx->envCtx.unk_8C[2][0] > 70) { - globalCtx->envCtx.unk_8C[2][0] = 70; + if (globalCtx->envCtx.adjFogColor[0] > 70) { + globalCtx->envCtx.adjFogColor[0] = 70; } - if (globalCtx->envCtx.unk_8C[2][1] > 70) { - globalCtx->envCtx.unk_8C[2][1] = 70; + if (globalCtx->envCtx.adjFogColor[1] > 70) { + globalCtx->envCtx.adjFogColor[1] = 70; } - if (globalCtx->envCtx.unk_8C[2][2] > 140) { - globalCtx->envCtx.unk_8C[2][2] = 140; + if (globalCtx->envCtx.adjFogColor[2] > 140) { + globalCtx->envCtx.adjFogColor[2] = 140; } - if (globalCtx->envCtx.unk_8C[0][0] < 0) { - globalCtx->envCtx.unk_8C[0][0] = 0; + if (globalCtx->envCtx.adjAmbientColor[0] < 0) { + globalCtx->envCtx.adjAmbientColor[0] = 0; } - if (globalCtx->envCtx.unk_8C[0][1] < 0) { - globalCtx->envCtx.unk_8C[0][1] = 0; + if (globalCtx->envCtx.adjAmbientColor[1] < 0) { + globalCtx->envCtx.adjAmbientColor[1] = 0; } - if (globalCtx->envCtx.unk_8C[0][2] < 0) { - globalCtx->envCtx.unk_8C[0][2] = 0; + if (globalCtx->envCtx.adjAmbientColor[2] < 0) { + globalCtx->envCtx.adjAmbientColor[2] = 0; } - if (globalCtx->envCtx.unk_8C[2][0] < 0) { - globalCtx->envCtx.unk_8C[2][0] = 0; + if (globalCtx->envCtx.adjFogColor[0] < 0) { + globalCtx->envCtx.adjFogColor[0] = 0; } - if (globalCtx->envCtx.unk_8C[2][1] < 0) { - globalCtx->envCtx.unk_8C[2][1] = 0; + if (globalCtx->envCtx.adjFogColor[1] < 0) { + globalCtx->envCtx.adjFogColor[1] = 0; } - if (globalCtx->envCtx.unk_8C[2][2] < 0) { - globalCtx->envCtx.unk_8C[2][2] = 0; + if (globalCtx->envCtx.adjFogColor[2] < 0) { + globalCtx->envCtx.adjFogColor[2] = 0; } } diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index ba07ad4dbe..da926a8b78 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -1100,7 +1100,8 @@ void BossMo_Tentacle(BossMo* this, GlobalContext* globalCtx) { ((300 - indS1) * .0015f) + 0.13f); } Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, - this->actor.world.pos.x, -280.0f, this->actor.world.pos.z, 0, 0, 0, WARP_DUNGEON_ADULT); + this->actor.world.pos.x, -280.0f, this->actor.world.pos.z, 0, 0, 0, + WARP_DUNGEON_ADULT); Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_ITEM_B_HEART, this->actor.world.pos.x + 200.0f, -280.0f, this->actor.world.pos.z, 0, 0, 0, 0); Audio_QueueSeqCmd(0x21); @@ -2437,9 +2438,9 @@ void BossMo_DrawTentacle(BossMo* this, GlobalContext* globalCtx) { OPEN_DISPS(globalCtx->state.gfxCtx, "../z_boss_mo.c", 6366); - sp110.x = globalCtx->envCtx.unk_2A; - sp110.y = globalCtx->envCtx.unk_2B; - sp110.z = globalCtx->envCtx.unk_2C; + sp110.x = globalCtx->envCtx.dirLight1.params.dir.x; + sp110.y = globalCtx->envCtx.dirLight1.params.dir.y; + sp110.z = globalCtx->envCtx.dirLight1.params.dir.z; Matrix_Push(); diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index d16263860a..df630315c9 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -585,10 +585,10 @@ void BossTw_Init(Actor* thisx, GlobalContext* globalCtx2) { } } - this->fogR = globalCtx->lightCtx.unk_07; - this->fogG = globalCtx->lightCtx.unk_08; - this->fogB = globalCtx->lightCtx.unk_09; - this->fogNear = globalCtx->lightCtx.unk_0A; + this->fogR = globalCtx->lightCtx.fogColor[0]; + this->fogG = globalCtx->lightCtx.fogColor[1]; + this->fogB = globalCtx->lightCtx.fogColor[2]; + this->fogNear = globalCtx->lightCtx.fogNear; this->fogFar = 1000.0f; } @@ -2852,10 +2852,10 @@ void BossTw_Update(Actor* thisx, GlobalContext* globalCtx) { s32 pad; this->collider.base.colType = COLTYPE_HIT3; - Math_ApproachF(&this->fogR, globalCtx->lightCtx.unk_07, 1.0f, 10.0f); - Math_ApproachF(&this->fogG, globalCtx->lightCtx.unk_08, 1.0f, 10.0f); - Math_ApproachF(&this->fogB, globalCtx->lightCtx.unk_09, 1.0f, 10.0f); - Math_ApproachF(&this->fogNear, globalCtx->lightCtx.unk_0A, 1.0f, 10.0f); + Math_ApproachF(&this->fogR, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f); + Math_ApproachF(&this->fogG, globalCtx->lightCtx.fogColor[1], 1.0f, 10.0f); + Math_ApproachF(&this->fogB, globalCtx->lightCtx.fogColor[2], 1.0f, 10.0f); + Math_ApproachF(&this->fogNear, globalCtx->lightCtx.fogNear, 1.0f, 10.0f); Math_ApproachF(&this->fogFar, 1000.0f, 1.0f, 10.0f); this->work[CS_TIMER_1]++; this->work[CS_TIMER_2]++; @@ -2979,10 +2979,10 @@ void BossTw_TwinrovaUpdate(Actor* thisx, GlobalContext* globalCtx2) { this->unk_5F8 = 0; this->collider.base.colType = COLTYPE_HIT3; - Math_ApproachF(&this->fogR, globalCtx->lightCtx.unk_07, 1.0f, 10.0f); - Math_ApproachF(&this->fogG, globalCtx->lightCtx.unk_08, 1.0f, 10.0f); - Math_ApproachF(&this->fogB, globalCtx->lightCtx.unk_09, 1.0f, 10.0f); - Math_ApproachF(&this->fogNear, globalCtx->lightCtx.unk_0A, 1.0f, 10.0f); + Math_ApproachF(&this->fogR, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f); + Math_ApproachF(&this->fogG, globalCtx->lightCtx.fogColor[1], 1.0f, 10.0f); + Math_ApproachF(&this->fogB, globalCtx->lightCtx.fogColor[2], 1.0f, 10.0f); + Math_ApproachF(&this->fogNear, globalCtx->lightCtx.fogNear, 1.0f, 10.0f); Math_ApproachF(&this->fogFar, 1000.0f, 1.0f, 10.0f); this->work[CS_TIMER_1]++; @@ -3529,7 +3529,7 @@ void BossTw_Draw(Actor* thisx, GlobalContext* globalCtx2) { SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, BossTw_OverrideLimbDraw, BossTw_PostLimbDraw, this); Matrix_Pop(); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); } if (this->actor.params == TW_KOTAKE) { @@ -3888,8 +3888,8 @@ void BossTw_TwinrovaDraw(Actor* thisx, GlobalContext* globalCtx2) { Matrix_Pop(); Matrix_MultVec3f(&D_8094A9EC, &this->beamOrigin); - POLY_OPA_DISP = Gfx_SetFog2(POLY_OPA_DISP, globalCtx->lightCtx.unk_07, globalCtx->lightCtx.unk_08, - globalCtx->lightCtx.unk_09, 0, globalCtx->lightCtx.unk_0A, 1000); + POLY_OPA_DISP = Gfx_SetFog2(POLY_OPA_DISP, globalCtx->lightCtx.fogColor[0], globalCtx->lightCtx.fogColor[1], + globalCtx->lightCtx.fogColor[2], 0, globalCtx->lightCtx.fogNear, 1000); } BossTw_DrawEffects(globalCtx); diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index 43115ab545..550a150170 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -508,33 +508,33 @@ void BossVa_Tumor(GlobalContext* globalCtx, BossVa* this, s32 count, s16 scale, } void BossVa_SetSparkEnv(GlobalContext* globalCtx) { - globalCtx->envCtx.unk_8C[0][0] = 0xA; - globalCtx->envCtx.unk_8C[0][1] = 0xA; - globalCtx->envCtx.unk_8C[0][2] = 0xA; - globalCtx->envCtx.unk_8C[1][0] = 0x73; - globalCtx->envCtx.unk_8C[1][1] = 0x41; - globalCtx->envCtx.unk_8C[1][2] = 0x64; - globalCtx->envCtx.unk_8C[2][0] = 0x78; - globalCtx->envCtx.unk_8C[2][1] = 0x78; - globalCtx->envCtx.unk_8C[2][2] = 0x46; + globalCtx->envCtx.adjAmbientColor[0] = 0xA; + globalCtx->envCtx.adjAmbientColor[1] = 0xA; + globalCtx->envCtx.adjAmbientColor[2] = 0xA; + globalCtx->envCtx.adjLight1Color[0] = 0x73; + globalCtx->envCtx.adjLight1Color[1] = 0x41; + globalCtx->envCtx.adjLight1Color[2] = 0x64; + globalCtx->envCtx.adjFogColor[0] = 0x78; + globalCtx->envCtx.adjFogColor[1] = 0x78; + globalCtx->envCtx.adjFogColor[2] = 0x46; } void BossVa_SetDeathEnv(GlobalContext* globalCtx) { - globalCtx->envCtx.unk_8C[2][0] = 0xDC; - globalCtx->envCtx.unk_8C[2][1] = 0xDC; - globalCtx->envCtx.unk_8C[2][2] = 0x96; - globalCtx->envCtx.unk_9E = -0x3E8; - globalCtx->envCtx.unk_A0 = -0x384; - globalCtx->envCtx.unk_8C[0][0] = 0xC8; - globalCtx->envCtx.unk_8C[0][1] = 0xC8; - globalCtx->envCtx.unk_8C[0][2] = 0xC8; - globalCtx->envCtx.unk_8C[1][0] = 0xD7; - globalCtx->envCtx.unk_8C[1][1] = 0xA5; - globalCtx->envCtx.unk_8C[1][2] = 0xC8; - globalCtx->envCtx.unk_E2[0] = 0xDC; - globalCtx->envCtx.unk_E2[1] = 0xDC; - globalCtx->envCtx.unk_E2[2] = 0x96; - globalCtx->envCtx.unk_E2[3] = 0x64; + globalCtx->envCtx.adjFogColor[0] = 0xDC; + globalCtx->envCtx.adjFogColor[1] = 0xDC; + globalCtx->envCtx.adjFogColor[2] = 0x96; + globalCtx->envCtx.adjFogNear = -0x3E8; + globalCtx->envCtx.adjFogFar = -0x384; + globalCtx->envCtx.adjAmbientColor[0] = 0xC8; + globalCtx->envCtx.adjAmbientColor[1] = 0xC8; + globalCtx->envCtx.adjAmbientColor[2] = 0xC8; + globalCtx->envCtx.adjLight1Color[0] = 0xD7; + globalCtx->envCtx.adjLight1Color[1] = 0xA5; + globalCtx->envCtx.adjLight1Color[2] = 0xC8; + globalCtx->envCtx.screenFillColor[0] = 0xDC; + globalCtx->envCtx.screenFillColor[1] = 0xDC; + globalCtx->envCtx.screenFillColor[2] = 0x96; + globalCtx->envCtx.screenFillColor[3] = 0x64; } EnBoom* BossVa_FindBoomerang(GlobalContext* globalCtx) { @@ -630,7 +630,8 @@ void BossVa_Init(Actor* thisx, GlobalContext* globalCtx2) { warpId = ACTOR_DOOR_WARP1; } Actor_Spawn(&globalCtx->actorCtx, globalCtx, warpId, this->actor.world.pos.x, this->actor.world.pos.y, - this->actor.world.pos.z, 0, 0, 0, 0); //! params could be WARP_DUNGEON_CHILD however this can also spawn Ru1 + this->actor.world.pos.z, 0, 0, 0, + 0); //! params could be WARP_DUNGEON_CHILD however this can also spawn Ru1 Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_ITEM_B_HEART, this->actor.world.pos.x + 160.0f, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 0); sDoorState = 100; @@ -642,10 +643,10 @@ void BossVa_Init(Actor* thisx, GlobalContext* globalCtx2) { sCsState = INTRO_CALL_BARI; sDoorState = 100; func_8002DF54(globalCtx, &this->actor, 1); - globalCtx->envCtx.unk_E2[0] = 0xDC; - globalCtx->envCtx.unk_E2[1] = 0xDC; - globalCtx->envCtx.unk_E2[2] = 0xBE; - globalCtx->envCtx.unk_E2[3] = 0xD2; + globalCtx->envCtx.screenFillColor[0] = 0xDC; + globalCtx->envCtx.screenFillColor[1] = 0xDC; + globalCtx->envCtx.screenFillColor[2] = 0xBE; + globalCtx->envCtx.screenFillColor[3] = 0xD2; func_80064520(globalCtx, &globalCtx->csCtx); sCsCamera = Gameplay_CreateSubCamera(globalCtx); Gameplay_ChangeCameraStatus(globalCtx, MAIN_CAM, CAM_STAT_WAIT); @@ -778,10 +779,10 @@ void BossVa_BodyIntro(BossVa* this, GlobalContext* globalCtx) { } break; case INTRO_START: - globalCtx->envCtx.unk_E2[0] = 0xDC; - globalCtx->envCtx.unk_E2[1] = 0xDC; - globalCtx->envCtx.unk_E2[2] = 0xBE; - globalCtx->envCtx.unk_E2[3] = 0xD2; + globalCtx->envCtx.screenFillColor[0] = 0xDC; + globalCtx->envCtx.screenFillColor[1] = 0xDC; + globalCtx->envCtx.screenFillColor[2] = 0xBE; + globalCtx->envCtx.screenFillColor[3] = 0xD2; func_8002DF54(globalCtx, &this->actor, 8); player->actor.world.rot.y = player->actor.shape.rot.y = 0x7FFF; sCsState++; @@ -1552,9 +1553,10 @@ void BossVa_BodyDeath(BossVa* this, GlobalContext* globalCtx) { this->unk_1AC = Math_Vec3f_Yaw(&sCameraEye, &sCameraNextAt) - 0x100; this->unk_1B0 = 15; - globalCtx->envCtx.unk_E2[0] = globalCtx->envCtx.unk_E2[1] = globalCtx->envCtx.unk_E2[2] = 0xFF; - globalCtx->envCtx.unk_E2[3] = 0; - globalCtx->envCtx.unk_E1 = 1; + globalCtx->envCtx.screenFillColor[0] = globalCtx->envCtx.screenFillColor[1] = + globalCtx->envCtx.screenFillColor[2] = 0xFF; + globalCtx->envCtx.screenFillColor[3] = 0; + globalCtx->envCtx.fillScreen = true; sCsState++; case DEATH_BODY_TUMORS: this->unk_1AC += 0x100; @@ -1652,7 +1654,7 @@ void BossVa_BodyDeath(BossVa* this, GlobalContext* globalCtx) { } case DEATH_FINISH: Rand_CenteredFloat(0.5f); - globalCtx->envCtx.unk_E1 = 0; + globalCtx->envCtx.fillScreen = false; break; } @@ -1671,8 +1673,8 @@ void BossVa_BodyDeath(BossVa* this, GlobalContext* globalCtx) { Math_SmoothStepToS(&this->vaBodySpinRate, 0, 1, 0xC8, 0); Math_SmoothStepToS(&this->vaCamRotMod, 0, 1, 0xC8, 0); Math_SmoothStepToS(&this->bodyGlow, 200, 1, 10, 0); - if (globalCtx->envCtx.unk_E2[3] != 0) { - globalCtx->envCtx.unk_E2[3] -= 50; + if (globalCtx->envCtx.screenFillColor[3] != 0) { + globalCtx->envCtx.screenFillColor[3] -= 50; } Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); @@ -2818,22 +2820,22 @@ void BossVa_Update(Actor* thisx, GlobalContext* globalCtx2) { BossVa_UpdateEffects(globalCtx); for (i = 2; i >= 0; i--) { - if ((globalCtx->envCtx.unk_8C[0][i] - 1) > 0) { - globalCtx->envCtx.unk_8C[0][i] -= 1; + if ((globalCtx->envCtx.adjAmbientColor[i] - 1) > 0) { + globalCtx->envCtx.adjAmbientColor[i] -= 1; } else { - globalCtx->envCtx.unk_8C[0][i] = 0; + globalCtx->envCtx.adjAmbientColor[i] = 0; } - if ((globalCtx->envCtx.unk_8C[1][i] - 10) > 0) { - globalCtx->envCtx.unk_8C[1][i] -= 10; + if ((globalCtx->envCtx.adjLight1Color[i] - 10) > 0) { + globalCtx->envCtx.adjLight1Color[i] -= 10; } else { - globalCtx->envCtx.unk_8C[1][i] = 0; + globalCtx->envCtx.adjLight1Color[i] = 0; } - if ((globalCtx->envCtx.unk_8C[2][i] - 10) > 0) { - globalCtx->envCtx.unk_8C[2][i] -= 10; + if ((globalCtx->envCtx.adjFogColor[i] - 10) > 0) { + globalCtx->envCtx.adjFogColor[i] -= 10; } else { - globalCtx->envCtx.unk_8C[2][i] = 0; + globalCtx->envCtx.adjFogColor[i] = 0; } } @@ -3187,17 +3189,17 @@ void BossVa_Draw(Actor* thisx, GlobalContext* globalCtx) { switch (this->actor.params) { case BOSSVA_BODY: - if (globalCtx->envCtx.unk_9E != 0) { - globalCtx->envCtx.unk_9E += 0x15E; - if (globalCtx->envCtx.unk_9E > 0) { - globalCtx->envCtx.unk_9E = 0; + if (globalCtx->envCtx.adjFogNear != 0) { + globalCtx->envCtx.adjFogNear += 0x15E; + if (globalCtx->envCtx.adjFogNear > 0) { + globalCtx->envCtx.adjFogNear = 0; } } - if (globalCtx->envCtx.unk_A0 != 0) { - globalCtx->envCtx.unk_A0 += 0x15E; - if (globalCtx->envCtx.unk_A0 > 0) { - globalCtx->envCtx.unk_A0 = 0; + if (globalCtx->envCtx.adjFogFar != 0) { + globalCtx->envCtx.adjFogFar += 0x15E; + if (globalCtx->envCtx.adjFogFar > 0) { + globalCtx->envCtx.adjFogFar = 0; } } diff --git a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c index d99d0da5b0..ac04a78843 100644 --- a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c +++ b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c @@ -811,7 +811,7 @@ void func_809691BC(Demo6K* this, GlobalContext* globalCtx, s32 params) { endPos.y = csAction->endPos.y; endPos.z = csAction->endPos.z; - temp = func_8006F93C(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames); + temp = Environment_LerpWeight(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames); this->actor.world.pos.x = (((endPos.x - startPos.x) * temp) + startPos.x); this->actor.world.pos.y = (((endPos.y - startPos.y) * temp) + startPos.y); diff --git a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c index 80c9229780..a60de41bfd 100644 --- a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c +++ b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c @@ -172,7 +172,8 @@ void DemoDu_CsFireMedallion_SpawnDoorWarp(DemoDu* this, GlobalContext* globalCtx f32 posY = this->actor.world.pos.y; f32 posZ = this->actor.world.pos.z; - Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES); + Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, + WARP_SAGES); } // Gives the Fire Medallion to Link. @@ -445,7 +446,7 @@ void DemoDu_CsGoronsRuby_DaruniaFalling(DemoDu* this, GlobalContext* globalCtx) Vec3f* pos = &this->actor.world.pos; if (npcAction != NULL) { - f32 traveledPercent = func_8006F93C(npcAction->endFrame, npcAction->startFrame, csCtx->frames); + f32 traveledPercent = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, csCtx->frames); startPos.x = npcAction->startPos.x; startPos.y = npcAction->startPos.y; diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index c774f60a2a..07dbbca9d8 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -128,8 +128,9 @@ void DemoEffect_SetupUpdate(DemoEffect* this, DemoEffectFunc updateFunc) { * Gives a number on the range of 0.0f - 1.0f representing current cutscene action completion percentage. */ f32 DemoEffect_InterpolateCsFrames(GlobalContext* globalCtx, s32 csActionId) { - f32 interpolated = func_8006F93C(globalCtx->csCtx.npcActions[csActionId]->endFrame, - globalCtx->csCtx.npcActions[csActionId]->startFrame, globalCtx->csCtx.frames); + f32 interpolated = + Environment_LerpWeight(globalCtx->csCtx.npcActions[csActionId]->endFrame, + globalCtx->csCtx.npcActions[csActionId]->startFrame, globalCtx->csCtx.frames); if (interpolated > 1.0f) { interpolated = 1.0f; } diff --git a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c index d6dcd182be..f050b65d30 100644 --- a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c +++ b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c @@ -136,7 +136,7 @@ void func_8097CB0C(DemoGo* this, GlobalContext* globalCtx) { if (globalCtx->csCtx.state != CS_STATE_IDLE) { npcAction = csCtx->npcActions[func_8097C870(this)]; if (npcAction != NULL) { - temp_ret = func_8006F93C(npcAction->endFrame, npcAction->startFrame, csCtx->frames); + temp_ret = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, csCtx->frames); startPos.x = npcAction->startPos.x; startPos.y = npcAction->startPos.y; startPos.z = npcAction->startPos.z; diff --git a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c index 8a8635340f..2685623422 100644 --- a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c +++ b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c @@ -334,7 +334,8 @@ void func_8097E744(DemoGt* this, GlobalContext* globalCtx, u32 actionIdx) { f32 someFloat; if (npcAction != NULL) { - someFloat = func_8006F9BC(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 8, 0); + someFloat = + Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 8, 0); startX = npcAction->startPos.x; startY = npcAction->startPos.y; startZ = npcAction->startPos.z; @@ -579,7 +580,7 @@ void func_8097F280(DemoGt* this, GlobalContext* globalCtx) { unk198[0]++; unk198[1]--; } else if (globalCtx->csCtx.frames < 170) { - temp_f0 = func_8006F9BC(170, 160, globalCtx->csCtx.frames, 0, 0); + temp_f0 = Environment_LerpWeightAccelDecel(170, 160, globalCtx->csCtx.frames, 0, 0); unk178[0] = (temp_f0 * -63.0f) + 163.0f; unk178[1] = (temp_f0 * -155.0f) + 255.0f; @@ -817,7 +818,7 @@ void func_8097FDDC(DemoGt* this, GlobalContext* globalCtx) { unk198[0]++; unk198[1]--; } else if (globalCtx->csCtx.frames < 620) { - f32 temp_f0 = func_8006F9BC(620, 610, globalCtx->csCtx.frames, 0, 0); + f32 temp_f0 = Environment_LerpWeightAccelDecel(620, 610, globalCtx->csCtx.frames, 0, 0); unk178[0] = (temp_f0 * (-13.0f)) + 163.0f; unk178[1] = (temp_f0 * (-43.0f)) + 193.0f; diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c index 41f53b8583..122b9d8659 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -305,7 +305,8 @@ void func_80985358(DemoIm* this, GlobalContext* globalCtx) { f32 posY = this->actor.world.pos.y; f32 posZ = this->actor.world.pos.z; - Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES); + Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, + WARP_SAGES); } void func_809853B4(DemoIm* this, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c index f0eb882d7f..1d826e92d5 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c @@ -174,8 +174,6 @@ static s16 D_8098CF80; static s16 sRainScale; static s16 D_8098CF84; -extern Mtx D_01000000; // perspective mtx - extern Gfx D_06000080[]; // rain DL extern Gfx D_06000DE0[]; // rocks DL extern Gfx D_06007440[]; // DoT DL left @@ -305,19 +303,19 @@ void DemoKankyo_SetupType(DemoKankyo* this, GlobalContext* globalCtx) { } break; case DEMOKANKYO_WARP_OUT: - globalCtx->envCtx.unk_E2[0] = 0xFF; - globalCtx->envCtx.unk_E2[1] = 0xFF; - globalCtx->envCtx.unk_E2[2] = 0xFF; - globalCtx->envCtx.unk_E1 = 0; + globalCtx->envCtx.screenFillColor[0] = 0xFF; + globalCtx->envCtx.screenFillColor[1] = 0xFF; + globalCtx->envCtx.screenFillColor[2] = 0xFF; + globalCtx->envCtx.fillScreen = false; if (this->warpTimer < 21 && this->warpTimer >= 15) { temp = (this->warpTimer - 15.0f) / 5.0f; - globalCtx->envCtx.unk_E1 = 1; - globalCtx->envCtx.unk_E2[3] = 255 - 255 * temp; + globalCtx->envCtx.fillScreen = true; + globalCtx->envCtx.screenFillColor[3] = 255 - 255 * temp; } if (this->warpTimer < 15 && this->warpTimer >= 4) { temp = (this->warpTimer - 4.0f) / 10.0f; - globalCtx->envCtx.unk_E1 = 1; - globalCtx->envCtx.unk_E2[3] = 255 * temp; + globalCtx->envCtx.fillScreen = true; + globalCtx->envCtx.screenFillColor[3] = 255 * temp; } if (this->warpTimer == 15) { player->actor.draw = NULL; @@ -390,7 +388,7 @@ void DemoKankyo_SetRockPos(DemoKankyo* this, GlobalContext* globalCtx, s32 param endPos.x = csAction->endPos.x; endPos.y = csAction->endPos.y; endPos.z = csAction->endPos.z; - temp_f0 = func_8006F93C(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames); + temp_f0 = Environment_LerpWeight(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames); this->actor.world.pos.x = ((endPos.x - startPos.x) * temp_f0) + startPos.x; this->actor.world.pos.y = ((endPos.y - startPos.y) * temp_f0) + startPos.y; this->actor.world.pos.z = ((endPos.z - startPos.z) * temp_f0) + startPos.z; @@ -822,7 +820,7 @@ void DemoKankyo_DrawWarpSparkles(Actor* thisx, GlobalContext* globalCtx) { case 2: if (this->actor.params == DEMOKANKYO_WARP_OUT) { if (i == 0) { - func_800776E4(globalCtx); + Environment_WarpSongLeave(globalCtx); this->unk_150[i].unk_22++; } } else if (i + 1 == this->sparkleCounter && globalCtx->csCtx.state == CS_STATE_IDLE) { diff --git a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c index 677bcccbf3..36a268d1a3 100644 --- a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c +++ b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c @@ -229,7 +229,8 @@ void func_8098E86C(DemoSa* this, GlobalContext* globalCtx) { f32 posY = world->y; f32 posZ = world->z; - Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES); + Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, + WARP_SAGES); } void func_8098E8C8(DemoSa* this, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c index 74e4a526fe..48d0a4545c 100644 --- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c +++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c @@ -91,7 +91,8 @@ void DoorWarp1_Destroy(Actor* thisx, GlobalContext* globalCtx) { LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, this->lowerLight); for (i = 0; i < 3; i++) { - globalCtx->envCtx.unk_8C[0][i] = globalCtx->envCtx.unk_8C[2][i] = globalCtx->envCtx.unk_8C[1][i] = 0; + globalCtx->envCtx.adjAmbientColor[i] = globalCtx->envCtx.adjFogColor[i] = globalCtx->envCtx.adjLight1Color[i] = + 0; } //! @bug SkelAnime_Free is not called for crystal variants } @@ -204,10 +205,10 @@ void DoorWarp1_SetupAdultDungeonWarp(DoorWarp1* this, GlobalContext* globalCtx) this->crystalAlpha = 0.0f; this->unk_19C = 0.0f; - Lights_PointNoGlowSetInfo(&this->upperLightInfo, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, - 200, 255, 255, 255); - Lights_PointNoGlowSetInfo(&this->lowerLightInfo, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, - 200, 255, 255, 255); + Lights_PointNoGlowSetInfo(&this->upperLightInfo, this->actor.world.pos.x, this->actor.world.pos.y, + this->actor.world.pos.z, 200, 255, 255, 255); + Lights_PointNoGlowSetInfo(&this->lowerLightInfo, this->actor.world.pos.x, this->actor.world.pos.y, + this->actor.world.pos.z, 200, 255, 255, 255); DoorWarp1_SetupAction(this, func_8099A3A4); } @@ -234,10 +235,11 @@ void DoorWarp1_SetupBlueCrystal(DoorWarp1* this, GlobalContext* globalCtx) { this->actor.shape.yOffset = 800.0f; for (i = 0; i < 3; i++) { - globalCtx->envCtx.unk_8C[0][i] = globalCtx->envCtx.unk_8C[2][i] = globalCtx->envCtx.unk_8C[1][i] = -255; + globalCtx->envCtx.adjAmbientColor[i] = globalCtx->envCtx.adjFogColor[i] = globalCtx->envCtx.adjLight1Color[i] = + -255; } - globalCtx->envCtx.unk_9E = -500; + globalCtx->envCtx.adjFogNear = -500; this->warpTimer = 30; this->unk_1B8 = 4000; DoorWarp1_SetupAction(this, DoorWarp1_BlueCrystal); @@ -294,22 +296,22 @@ void DoorWarp1_BlueCrystal(DoorWarp1* this, GlobalContext* globalCtx) { void func_80999214(DoorWarp1* this, GlobalContext* globalCtx) { s32 temp_f4; - f32 phi_f0; + f32 darkness; s16 i; Math_SmoothStepToF(&this->crystalAlpha, 255.0f, 0.2f, 5.0f, 0.1f); - phi_f0 = (f32)(40 - this->warpTimer) / 40.0f; - phi_f0 = CLAMP_MIN(phi_f0, 0); + darkness = (f32)(40 - this->warpTimer) / 40.0f; + darkness = CLAMP_MIN(darkness, 0); for (i = 0; i < 3; i++) { - globalCtx->envCtx.unk_8C[0][i] = globalCtx->envCtx.unk_8C[2][i] = - globalCtx->envCtx.unk_8C[1][i] = -255.0f * phi_f0; + globalCtx->envCtx.adjAmbientColor[i] = globalCtx->envCtx.adjFogColor[i] = globalCtx->envCtx.adjLight1Color[i] = + -255 * darkness; } - globalCtx->envCtx.unk_9E = -500.0f * phi_f0; + globalCtx->envCtx.adjFogNear = -500.0f * darkness; this->warpTimer++; - if (phi_f0 <= 0) { + if (darkness <= 0) { DoorWarp1_SetupAction(this, func_80999348); } this->actor.shape.rot.y += 0x320; @@ -780,20 +782,20 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, GlobalContext* globalCtx) { gSaveContext.nextTransition = 7; } if (this->warpTimer >= 141) { - f32 phi_f0; + f32 screenFillAlpha; - globalCtx->envCtx.unk_E1 = 1; - phi_f0 = (f32)(this->warpTimer - 140) / 20.0f; + globalCtx->envCtx.fillScreen = true; + screenFillAlpha = (f32)(this->warpTimer - 140) / 20.0f; - if (phi_f0 > 1.0f) { - phi_f0 = 1.0f; + if (screenFillAlpha > 1.0f) { + screenFillAlpha = 1.0f; } - globalCtx->envCtx.unk_E2[0] = 160; - globalCtx->envCtx.unk_E2[1] = 160; - globalCtx->envCtx.unk_E2[2] = 160; - globalCtx->envCtx.unk_E2[3] = (u32)(255.0f * phi_f0); + globalCtx->envCtx.screenFillColor[0] = 160; + globalCtx->envCtx.screenFillColor[1] = 160; + globalCtx->envCtx.screenFillColor[2] = 160; + globalCtx->envCtx.screenFillColor[3] = (u32)(255.0f * screenFillAlpha); - osSyncPrintf("\nparcent=[%f]", phi_f0); + osSyncPrintf("\nparcent=[%f]", screenFillAlpha); } Lights_PointNoGlowSetInfo(&this->upperLightInfo, (s16)player->actor.world.pos.x + 10.0f, (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z + 10.0f, 235, 255, @@ -817,12 +819,12 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, GlobalContext* globalCtx) { s16 i; for (i = 0; i < 3; i++) { - globalCtx->envCtx.unk_8C[0][i] = globalCtx->envCtx.unk_8C[2][i] = - globalCtx->envCtx.unk_8C[1][i] = -255.0f * temp_f0_2; + globalCtx->envCtx.adjAmbientColor[i] = globalCtx->envCtx.adjFogColor[i] = + globalCtx->envCtx.adjLight1Color[i] = -255.0f * temp_f0_2; } - globalCtx->envCtx.unk_9E = -500.0f * temp_f0_2; - if (globalCtx->envCtx.unk_9E < -300) { + globalCtx->envCtx.adjFogNear = -500.0f * temp_f0_2; + if (globalCtx->envCtx.adjFogNear < -300) { globalCtx->roomCtx.curRoom.segment = NULL; } } @@ -928,8 +930,8 @@ void DoorWarp1_DrawWarp(DoorWarp1* this, GlobalContext* globalCtx) { OPEN_DISPS(globalCtx->state.gfxCtx, "../z_door_warp1.c", 2173); temp_f0 = 1.0f - (2.0f - this->unk_194) / 1.7f; - if (this->actor.params != WARP_YELLOW && this->actor.params != WARP_DESTINATION && this->actor.params != WARP_ORANGE && - this->actor.params != WARP_GREEN && this->actor.params != WARP_RED) { + if (this->actor.params != WARP_YELLOW && this->actor.params != WARP_DESTINATION && + this->actor.params != WARP_ORANGE && this->actor.params != WARP_GREEN && this->actor.params != WARP_RED) { this->unk_19C += (s16)(temp_f0 * 15.0f); } if (this->actor.params == WARP_DESTINATION) { diff --git a/src/overlays/actors/ovl_En_Bom/z_en_bom.c b/src/overlays/actors/ovl_En_Bom/z_en_bom.c index 39f5ed8cd5..81cc71bf19 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -181,28 +181,28 @@ void EnBom_Explode(EnBom* this, GlobalContext* globalCtx) { CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->explosionCollider.base); } - if (globalCtx->envCtx.unk_8C[1][0] != 0) { - globalCtx->envCtx.unk_8C[1][0] -= 0x19; + if (globalCtx->envCtx.adjLight1Color[0] != 0) { + globalCtx->envCtx.adjLight1Color[0] -= 25; } - if (globalCtx->envCtx.unk_8C[1][1] != 0) { - globalCtx->envCtx.unk_8C[1][1] -= 0x19; + if (globalCtx->envCtx.adjLight1Color[1] != 0) { + globalCtx->envCtx.adjLight1Color[1] -= 25; } - if (globalCtx->envCtx.unk_8C[1][2] != 0) { - globalCtx->envCtx.unk_8C[1][2] -= 0x19; + if (globalCtx->envCtx.adjLight1Color[2] != 0) { + globalCtx->envCtx.adjLight1Color[2] -= 25; } - if (globalCtx->envCtx.unk_8C[0][0] != 0) { - globalCtx->envCtx.unk_8C[0][0] -= 0x19; + if (globalCtx->envCtx.adjAmbientColor[0] != 0) { + globalCtx->envCtx.adjAmbientColor[0] -= 25; } - if (globalCtx->envCtx.unk_8C[0][1] != 0) { - globalCtx->envCtx.unk_8C[0][1] -= 0x19; + if (globalCtx->envCtx.adjAmbientColor[1] != 0) { + globalCtx->envCtx.adjAmbientColor[1] -= 25; } - if (globalCtx->envCtx.unk_8C[0][2] != 0) { - globalCtx->envCtx.unk_8C[0][2] -= 0x19; + if (globalCtx->envCtx.adjAmbientColor[2] != 0) { + globalCtx->envCtx.adjAmbientColor[2] -= 25; } if (this->timer == 0) { @@ -315,8 +315,13 @@ void EnBom_Update(Actor* thisx, GlobalContext* globalCtx2) { } Audio_PlayActorSound2(thisx, NA_SE_IT_BOMB_EXPLOSION); - globalCtx->envCtx.unk_8C[1][0] = globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = 0xFA; - globalCtx->envCtx.unk_8C[0][0] = globalCtx->envCtx.unk_8C[0][1] = globalCtx->envCtx.unk_8C[0][2] = 0xFA; + + globalCtx->envCtx.adjLight1Color[0] = globalCtx->envCtx.adjLight1Color[1] = + globalCtx->envCtx.adjLight1Color[2] = 250; + + globalCtx->envCtx.adjAmbientColor[0] = globalCtx->envCtx.adjAmbientColor[1] = + globalCtx->envCtx.adjAmbientColor[2] = 250; + Camera_AddQuake(&globalCtx->mainCamera, 2, 0xB, 8); thisx->params = BOMB_EXPLOSION; this->timer = 10; diff --git a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c index 258ca8d403..aaf9ef69e5 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -276,28 +276,28 @@ void EnBombf_Explode(EnBombf* this, GlobalContext* globalCtx) { CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->explosionCollider.base); } - if (globalCtx->envCtx.unk_8C[1][0] != 0) { - globalCtx->envCtx.unk_8C[1][0] -= 0x19; + if (globalCtx->envCtx.adjLight1Color[0] != 0) { + globalCtx->envCtx.adjLight1Color[0] -= 25; } - if (globalCtx->envCtx.unk_8C[1][1] != 0) { - globalCtx->envCtx.unk_8C[1][1] -= 0x19; + if (globalCtx->envCtx.adjLight1Color[1] != 0) { + globalCtx->envCtx.adjLight1Color[1] -= 25; } - if (globalCtx->envCtx.unk_8C[1][2] != 0) { - globalCtx->envCtx.unk_8C[1][2] -= 0x19; + if (globalCtx->envCtx.adjLight1Color[2] != 0) { + globalCtx->envCtx.adjLight1Color[2] -= 25; } - if (globalCtx->envCtx.unk_8C[0][0] != 0) { - globalCtx->envCtx.unk_8C[0][0] -= 0x19; + if (globalCtx->envCtx.adjAmbientColor[0] != 0) { + globalCtx->envCtx.adjAmbientColor[0] -= 25; } - if (globalCtx->envCtx.unk_8C[0][1] != 0) { - globalCtx->envCtx.unk_8C[0][1] -= 0x19; + if (globalCtx->envCtx.adjAmbientColor[1] != 0) { + globalCtx->envCtx.adjAmbientColor[1] -= 25; } - if (globalCtx->envCtx.unk_8C[0][2] != 0) { - globalCtx->envCtx.unk_8C[0][2] -= 0x19; + if (globalCtx->envCtx.adjAmbientColor[2] != 0) { + globalCtx->envCtx.adjAmbientColor[2] -= 25; } if (this->timer == 0) { @@ -425,8 +425,10 @@ void EnBombf_Update(Actor* thisx, GlobalContext* globalCtx) { } Audio_PlayActorSound2(thisx, NA_SE_IT_BOMB_EXPLOSION); - globalCtx->envCtx.unk_8C[1][0] = globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = 0xFA; - globalCtx->envCtx.unk_8C[0][0] = globalCtx->envCtx.unk_8C[0][1] = globalCtx->envCtx.unk_8C[0][2] = 0xFA; + globalCtx->envCtx.adjLight1Color[0] = globalCtx->envCtx.adjLight1Color[1] = + globalCtx->envCtx.adjLight1Color[2] = 250; + globalCtx->envCtx.adjAmbientColor[0] = globalCtx->envCtx.adjAmbientColor[1] = + globalCtx->envCtx.adjAmbientColor[2] = 250; Camera_AddQuake(&globalCtx->mainCamera, 2, 0xB, 8); thisx->params = BOMBFLOWER_EXPLOSION; this->timer = 10; diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c index b2a0d7cb27..e12208b697 100644 --- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c +++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c @@ -113,7 +113,7 @@ void EnDs_BrewOddPotion3(EnDs* this, GlobalContext* globalCtx) { } Math_StepToF(&this->unk_1E4, 0, 0.03f); - func_800773A8(globalCtx, this->unk_1E4 * (2.0f - this->unk_1E4), 0.0f, 0.1f, 1.0f); + Environment_AdjustLights(globalCtx, this->unk_1E4 * (2.0f - this->unk_1E4), 0.0f, 0.1f, 1.0f); } void EnDs_BrewOddPotion2(EnDs* this, GlobalContext* globalCtx) { @@ -135,7 +135,7 @@ void EnDs_BrewOddPotion1(EnDs* this, GlobalContext* globalCtx) { } Math_StepToF(&this->unk_1E4, 1.0f, 0.01f); - func_800773A8(globalCtx, this->unk_1E4 * (2.0f - this->unk_1E4), 0.0f, 0.1f, 1.0f); + Environment_AdjustLights(globalCtx, this->unk_1E4 * (2.0f - this->unk_1E4), 0.0f, 0.1f, 1.0f); } void EnDs_OfferOddPotion(EnDs* this, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index f5c1c216fa..93b118b454 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -1248,7 +1248,7 @@ void func_80A04F94(EnElf* this, GlobalContext* globalCtx) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->unk_2BC, 5, 0x1000, 0x400); this->timer++; Math_StepToF(&this->unk_2A4, 1.0f, 0.05f); - func_800773A8(globalCtx, SQ(this->unk_2A4), player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f); + Environment_AdjustLights(globalCtx, SQ(this->unk_2A4), player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f); } // ask to talk to saria again @@ -1429,7 +1429,8 @@ void func_80A053F0(Actor* thisx, GlobalContext* globalCtx) { if (this->unk_2A4 > 0.0f) { Math_StepToF(&this->unk_2A4, 0.0f, 0.05f); - func_800773A8(globalCtx, SQ(this->unk_2A4) * this->unk_2A4, player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f); + Environment_AdjustLights(globalCtx, SQ(this->unk_2A4) * this->unk_2A4, player->actor.projectedPos.z + 780.0f, + 0.2f, 0.5f); } // temp probably fake match @@ -1547,7 +1548,7 @@ void EnElf_GetCutsceneNextPos(Vec3f* vec, GlobalContext* globalCtx, s32 action) endPos.y = npcAction->endPos.y; endPos.z = npcAction->endPos.z; - lerp = func_8006F93C(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames); + lerp = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames); vec->x = ((endPos.x - startPos.x) * lerp) + startPos.x; vec->y = ((endPos.y - startPos.y) * lerp) + startPos.y; diff --git a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c index 350965ba25..26fa50fde9 100644 --- a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c +++ b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c @@ -269,16 +269,16 @@ void EnEncount2_Update(Actor* thisx, GlobalContext* globalCtx2) { if (!this->isNotDeathMountain) { this->unk17C = this->envEffectsTimer / 60.0f; this->unk160 = this->unk17C * -50.0f; - globalCtx->envCtx.unk_8C[0][0] = (s16)this->unk160 * -1.5f; - globalCtx->envCtx.unk_8C[0][1] = globalCtx->envCtx.unk_8C[0][2] = this->unk160; + globalCtx->envCtx.adjAmbientColor[0] = (s16)this->unk160 * -1.5f; + globalCtx->envCtx.adjAmbientColor[1] = globalCtx->envCtx.adjAmbientColor[2] = this->unk160; this->unk168 = this->unk17C * -20.0f; - globalCtx->envCtx.unk_8C[1][0] = (s16)this->unk168 * -1.5f; - globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = this->unk168; + globalCtx->envCtx.adjLight1Color[0] = (s16)this->unk168 * -1.5f; + globalCtx->envCtx.adjLight1Color[1] = globalCtx->envCtx.adjLight1Color[2] = this->unk168; this->unk170 = this->unk17C * -50.0f; - globalCtx->envCtx.unk_9E = this->unk170; - globalCtx->envCtx.unk_8C[2][0] = (u8)((160.0f - globalCtx->envCtx.unk_CF[0]) * this->unk17C); - globalCtx->envCtx.unk_8C[2][1] = (u8)((160.0f - globalCtx->envCtx.unk_CF[1]) * this->unk17C); - globalCtx->envCtx.unk_8C[2][2] = (u8)((150.0f - globalCtx->envCtx.unk_CF[2]) * this->unk17C); + globalCtx->envCtx.adjFogNear = this->unk170; + globalCtx->envCtx.adjFogColor[0] = (u8)((160.0f - globalCtx->envCtx.lightSettings.fogColor[0]) * this->unk17C); + globalCtx->envCtx.adjFogColor[1] = (u8)((160.0f - globalCtx->envCtx.lightSettings.fogColor[1]) * this->unk17C); + globalCtx->envCtx.adjFogColor[2] = (u8)((150.0f - globalCtx->envCtx.lightSettings.fogColor[2]) * this->unk17C); } } diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c index 9c97f060cd..b6199f5d26 100644 --- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c +++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c @@ -312,7 +312,7 @@ void EnFhgFire_LightningShock(EnFhgFire* this, GlobalContext* globalCtx) { void EnFhgFire_LightningBurst(EnFhgFire* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - globalCtx->envCtx.unk_E1 = 0x01; + globalCtx->envCtx.fillScreen = true; this->actor.shape.rot.y += 0x1000; if (this->work[FHGFIRE_FX_TIMER] == 49) { @@ -324,15 +324,16 @@ void EnFhgFire_LightningBurst(EnFhgFire* this, GlobalContext* globalCtx) { globalCtx->envCtx.unk_D6 = 0x14; } if (this->work[FHGFIRE_FX_TIMER] >= 48) { - globalCtx->envCtx.unk_E2[0] = globalCtx->envCtx.unk_E2[1] = globalCtx->envCtx.unk_E2[2] = 0xFF; + globalCtx->envCtx.screenFillColor[0] = globalCtx->envCtx.screenFillColor[1] = + globalCtx->envCtx.screenFillColor[2] = 255; if ((this->work[FHGFIRE_TIMER] % 2) != 0) { - globalCtx->envCtx.unk_E2[3] = 0x46; + globalCtx->envCtx.screenFillColor[3] = 70; } else { - globalCtx->envCtx.unk_E2[3] = 0x00; + globalCtx->envCtx.screenFillColor[3] = 0; } } else { - globalCtx->envCtx.unk_E2[3] = 0x00; + globalCtx->envCtx.screenFillColor[3] = 0; } if (this->work[FHGFIRE_TIMER] <= 20) { @@ -352,7 +353,7 @@ void EnFhgFire_LightningBurst(EnFhgFire* this, GlobalContext* globalCtx) { if (this->work[FHGFIRE_TIMER] == 0) { Actor_Kill(&this->actor); - globalCtx->envCtx.unk_E1 = 0; + globalCtx->envCtx.fillScreen = false; } if (this->lensFlareTimer != 0) { @@ -366,8 +367,10 @@ void EnFhgFire_LightningBurst(EnFhgFire* this, GlobalContext* globalCtx) { } } - D_8015FCF0 = this->lensFlareOn; - D_8015FCF8 = this->actor.world.pos; + // Related to scene draw config 30, only used in BossGanon_Update and + // loaded in z_kankyo + gCustomLensFlareOn = this->lensFlareOn; + gCustomLensFlarePos = this->actor.world.pos; D_8015FD06 = this->lensFlareScale; D_8015FD08 = 10.0f; D_8015FD0C = 0; diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c index a36993704f..f447aa2776 100644 --- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c +++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c @@ -665,7 +665,7 @@ void EnFish_UpdateCutscene(EnFish* this, GlobalContext* globalCtx) { endPos.y = csAction->endPos.y; endPos.z = csAction->endPos.z; - progress = func_8006F93C(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames); + progress = Environment_LerpWeight(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames); this->actor.world.pos.x = (endPos.x - startPos.x) * progress + startPos.x; this->actor.world.pos.y = (endPos.y - startPos.y) * progress + startPos.y + D_80A17014; diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index c1926e707f..f42eb5d8b3 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -97,7 +97,7 @@ u16 EnGo_GetTextID(GlobalContext* globalCtx, Actor* thisx) { if (gSaveContext.bgsFlag) { return 0x305E; } else if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_CLAIM_CHECK) { - if (func_800775CC(globalCtx) >= 3) { + if (Environment_GetBgsDayCount() >= 3) { return 0x305E; } else { return 0x305D; @@ -992,7 +992,7 @@ void func_80A40C78(EnGo* this, GlobalContext* globalCtx) { this->actor.textId = 0x305C; func_8010B720(globalCtx, this->actor.textId); this->unk_1E0.unk_00 = 1; - func_800775D8(); + Environment_ClearBgsDayCount(); } } } diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index dbed3614e4..d7eccc3d2b 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -1004,14 +1004,14 @@ void EnGo2_BiggoronSetTextId(EnGo2* this, GlobalContext* globalCtx, Player* play } else if (!gSaveContext.bgsFlag && (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_CLAIM_CHECK)) { if (func_8002F368(globalCtx) == EXCH_ITEM_CLAIM_CHECK) { - if (func_800775CC() >= 3) { + if (Environment_GetBgsDayCount() >= 3) { textId = 0x305E; } else { textId = 0x305D; } this->actor.textId = textId; } else { - if (func_800775CC() >= 3) { + if (Environment_GetBgsDayCount() >= 3) { textId = 0x3002; } else { textId = 0x305D; @@ -1760,7 +1760,7 @@ void EnGo2_SetGetItem(EnGo2* this, GlobalContext* globalCtx) { this->unk_194.unk_00 = 0; switch (this->getItemId) { case GI_CLAIM_CHECK: - func_800775D8(); + Environment_ClearBgsDayCount(); EnGo2_GetItemAnimation(this, globalCtx); return; case GI_TUNIC_GORON: diff --git a/src/overlays/actors/ovl_En_Hata/z_en_hata.c b/src/overlays/actors/ovl_En_Hata/z_en_hata.c index 3f75b6bc05..897d223dec 100644 --- a/src/overlays/actors/ovl_En_Hata/z_en_hata.c +++ b/src/overlays/actors/ovl_En_Hata/z_en_hata.c @@ -88,19 +88,18 @@ void EnHata_Update(Actor* thisx, GlobalContext* globalCtx2) { f32 sin; SkelAnime_Update(&this->skelAnime); - // Rotate to hang down by default this->limbs[FLAGPOLE_LIMB_FLAG_1_BASE].y = this->limbs[FLAGPOLE_LIMB_FLAG_2_BASE].y = -0x4000; - windVec.x = globalCtx->envCtx.unk_A8; - windVec.y = globalCtx->envCtx.unk_AA; - windVec.z = globalCtx->envCtx.unk_AC; + windVec.x = globalCtx->envCtx.windDirection.x; + windVec.y = globalCtx->envCtx.windDirection.y; + windVec.z = globalCtx->envCtx.windDirection.z; - if (globalCtx->envCtx.unk_B0 > 255.0f) { - globalCtx->envCtx.unk_B0 = 255.0f; + if (globalCtx->envCtx.windSpeed > 255.0f) { + globalCtx->envCtx.windSpeed = 255.0f; } - if (globalCtx->envCtx.unk_B0 < 0.0f) { - globalCtx->envCtx.unk_B0 = 0.0f; + if (globalCtx->envCtx.windSpeed < 0.0f) { + globalCtx->envCtx.windSpeed = 0.0f; } if (Rand_ZeroOne() > 0.5f) { @@ -112,13 +111,13 @@ void EnHata_Update(Actor* thisx, GlobalContext* globalCtx2) { // Mimic varying wind gusts sin = Math_SinS(this->unk_278) * 80.0f; pitch = -Math_Vec3f_Pitch(&zeroVec, &windVec); - pitch = ((s32)((15000 - pitch) * (1.0f - (globalCtx->envCtx.unk_B0 / (255.0f - sin))))) + pitch; + pitch = ((s32)((15000 - pitch) * (1.0f - (globalCtx->envCtx.windSpeed / (255.0f - sin))))) + pitch; Math_SmoothStepToS(&this->limbs[FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE].y, pitch, this->invScale, this->maxStep, this->minStep); this->limbs[FLAGPOLE_LIMB_FLAG_2_HOIST_END_BASE].y = this->limbs[FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE].y; this->limbs[FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE].z = -Math_Vec3f_Yaw(&zeroVec, &windVec); this->limbs[FLAGPOLE_LIMB_FLAG_2_HOIST_END_BASE].z = this->limbs[FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE].z; - this->skelAnime.playSpeed = (Rand_ZeroFloat(1.25f) + 2.75f) * (globalCtx->envCtx.unk_B0 / 255.0f); + this->skelAnime.playSpeed = (Rand_ZeroFloat(1.25f) + 2.75f) * (globalCtx->envCtx.windSpeed / 255.0f); } s32 EnHata_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) { diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c index 7465dd3273..eb3e19cf56 100644 --- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c +++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c @@ -126,7 +126,7 @@ void EnMThunder_Destroy(Actor* thisx, GlobalContext* globalCtx) { } void func_80A9F314(GlobalContext* globalCtx, f32 arg1) { - func_800773A8(globalCtx, arg1, 850.0f, 0.2f, 0.0f); + Environment_AdjustLights(globalCtx, arg1, 850.0f, 0.2f, 0.0f); } void func_80A9F350(EnMThunder* this, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c index 6686c4a912..394132f421 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -313,7 +313,8 @@ void EnNb_SpawnBlueWarp(EnNb* this, GlobalContext* globalCtx) { f32 posY = this->actor.world.pos.y; f32 posZ = this->actor.world.pos.z; - Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES); + Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, + WARP_SAGES); } void EnNb_GiveMedallion(EnNb* this, GlobalContext* globalCtx) { @@ -588,7 +589,8 @@ void EnNb_SetPosInPortal(EnNb* this, GlobalContext* globalCtx) { Vec3f endPos; if (csCmdNPCAction != NULL) { - f0 = func_8006F9BC(csCmdNPCAction->endFrame, csCmdNPCAction->startFrame, globalCtx->csCtx.frames, 4, 4); + f0 = Environment_LerpWeightAccelDecel(csCmdNPCAction->endFrame, csCmdNPCAction->startFrame, + globalCtx->csCtx.frames, 4, 4); startPos.x = csCmdNPCAction->startPos.x; startPos.y = csCmdNPCAction->startPos.y; startPos.z = csCmdNPCAction->startPos.z; @@ -1134,7 +1136,7 @@ void func_80AB359C(EnNb* this) { temp_t1 += 25; if (temp_t1 >= this->movementTimer) { - f0 = func_8006F9BC(temp_t1, 0, this->movementTimer, 3, 3); + f0 = Environment_LerpWeightAccelDecel(temp_t1, 0, this->movementTimer, 3, 3); world->pos.x = initialPos->x + (f0 * (finalPos->x - initialPos->x)); world->pos.y = initialPos->y + (f0 * (finalPos->y - initialPos->y)); world->pos.z = initialPos->z + (f0 * (finalPos->z - initialPos->z)); diff --git a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c index 377598bca3..16d074095b 100644 --- a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c +++ b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c @@ -38,11 +38,11 @@ void EnOkarinaEffect_Destroy(Actor* thisx, GlobalContext* globalCtx) { EnOkarinaEffect* this = THIS; globalCtx->envCtx.unk_F2[0] = 0; - if ((D_8011FB30 != 4) && (D_8011FB30 != 5) && (globalCtx->envCtx.gloomySkyEvent == 1)) { - globalCtx->envCtx.gloomySkyEvent = 2; // end gloomy sky + if ((gWeatherMode != 4) && (gWeatherMode != 5) && (globalCtx->envCtx.gloomySkyMode == 1)) { + globalCtx->envCtx.gloomySkyMode = 2; // end gloomy sky func_80077684(globalCtx); } - globalCtx->envCtx.lightning = 2; // end lightning + globalCtx->envCtx.lightningMode = LIGHTNING_MODE_LAST; } void EnOkarinaEffect_Init(Actor* thisx, GlobalContext* globalCtx) { @@ -53,19 +53,19 @@ void EnOkarinaEffect_Init(Actor* thisx, GlobalContext* globalCtx) { osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ オカリナあらし効果ビカビカビカ〜 ☆☆☆☆☆ \n" VT_RST); osSyncPrintf("\n\n"); if (globalCtx->envCtx.unk_EE[1] != 0) { - Actor_Kill(&this->actor); // kill if an instance is already spawned + Actor_Kill(&this->actor); } EnOkarinaEffect_SetupAction(this, EnOkarinaEffect_TriggerStorm); } void EnOkarinaEffect_TriggerStorm(EnOkarinaEffect* this, GlobalContext* globalCtx) { - this->timer = 400; // 20 seconds - globalCtx->envCtx.unk_F2[0] = 20; // rain intensity target - globalCtx->envCtx.gloomySkyEvent = 1; // start gloomy sky - if ((D_8011FB30 != 0) || globalCtx->envCtx.gloomySky != 0) { + this->timer = 400; // 20 seconds + globalCtx->envCtx.unk_F2[0] = 20; // rain intensity target + globalCtx->envCtx.gloomySkyMode = 1; // start gloomy sky + if ((gWeatherMode != 0) || globalCtx->envCtx.unk_17 != 0) { globalCtx->envCtx.unk_DE = 1; } - globalCtx->envCtx.lightning = 1; // start lightning + globalCtx->envCtx.lightningMode = LIGHTNING_MODE_ON; func_80077624(globalCtx); EnOkarinaEffect_SetupAction(this, EnOkarinaEffect_ManageStorm); } @@ -76,7 +76,7 @@ void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, GlobalContext* globalCtx (globalCtx->msgCtx.unk_E300 == 0) && (!FrameAdvance_IsEnabled(globalCtx)) && ((globalCtx->transitionMode == 0) || (gSaveContext.gameMode != 0))) || (this->timer >= 250)) { - if (globalCtx->envCtx.unk_1E != 0 || globalCtx->envCtx.unk_1F != 1) { + if (globalCtx->envCtx.indoors || globalCtx->envCtx.unk_1F != 1) { this->timer--; } osSyncPrintf("\nthis->timer=[%d]", this->timer); @@ -98,15 +98,15 @@ void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, GlobalContext* globalCtx func_800F6D58(0xF, 1, 0); func_800F6D58(0xE, 1, 0); } - osSyncPrintf("\n\n\nE_wether_flg=[%d]", D_8011FB30); - osSyncPrintf("\nrain_evt_trg=[%d]\n\n", globalCtx->envCtx.gloomySkyEvent); - if (D_8011FB30 == 0 && (globalCtx->envCtx.gloomySkyEvent == 1)) { - globalCtx->envCtx.gloomySkyEvent = 2; // end gloomy sky + osSyncPrintf("\n\n\nE_wether_flg=[%d]", gWeatherMode); + osSyncPrintf("\nrain_evt_trg=[%d]\n\n", globalCtx->envCtx.gloomySkyMode); + if (gWeatherMode == 0 && (globalCtx->envCtx.gloomySkyMode == 1)) { + globalCtx->envCtx.gloomySkyMode = 2; // end gloomy sky } else { - globalCtx->envCtx.gloomySkyEvent = 0; + globalCtx->envCtx.gloomySkyMode = 0; globalCtx->envCtx.unk_DE = 0; } - globalCtx->envCtx.lightning = 2; // end lightning + globalCtx->envCtx.lightningMode = LIGHTNING_MODE_LAST; Actor_Kill(&this->actor); } } diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index 79069ddac6..451033c02c 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -958,7 +958,7 @@ void func_80ACC00C(EnOwl* this, GlobalContext* globalCtx) { this->actionFunc = EnOwl_WaitDefault; this->unk_40A = 0; this->actionFlags |= 0x80; - D_8011FB40 = 0; + gTimeIncrement = 0; } } @@ -1348,8 +1348,8 @@ void func_80ACD130(EnOwl* this, GlobalContext* globalCtx, s32 idx) { } f32 func_80ACD1C4(GlobalContext* globalCtx, s32 idx) { - f32 ret = func_8006F93C(globalCtx->csCtx.npcActions[idx]->endFrame, globalCtx->csCtx.npcActions[idx]->startFrame, - globalCtx->csCtx.frames); + f32 ret = Environment_LerpWeight(globalCtx->csCtx.npcActions[idx]->endFrame, + globalCtx->csCtx.npcActions[idx]->startFrame, globalCtx->csCtx.frames); ret = CLAMP_MAX(ret, 1.0f); return ret; diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index 362ecc831d..46aa62227c 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -172,8 +172,8 @@ void EnRd_Init(Actor* thisx, GlobalContext* globalCtx) { void EnRd_Destroy(Actor* thisx, GlobalContext* globalCtx) { EnRd* this = THIS; - if (gSaveContext.unk_1422 != 0) { - gSaveContext.unk_1422 = 0; + if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE) { + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; } Collider_DestroyCylinder(globalCtx, &this->collider); } @@ -676,7 +676,7 @@ void func_80AE3DE4(EnRd* this) { this->unk_31B = 1; this->actor.speedXZ = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; - if (gSaveContext.unk_1422 != 0) { + if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE) { this->unk_318 = 1; this->unk_316 = 0x258; Audio_PlayActorSound2(&this->actor, NA_SE_EN_LIGHT_ARROW_HIT); @@ -698,7 +698,7 @@ void func_80AE3ECC(EnRd* this, GlobalContext* globalCtx) { } if (this->unk_316 == 0) { this->unk_318 = 0; - gSaveContext.unk_1422 = 0; + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; } } @@ -740,7 +740,7 @@ void func_80AE4114(EnRd* this, GlobalContext* globalCtx) { s32 pad; Player* player = GET_PLAYER(globalCtx); - if ((gSaveContext.unk_1422 != 0) && (this->actor.shape.rot.x == 0) && (this->unk_318 == 0) && + if ((gSaveContext.sunsSongState != SUNSSONG_INACTIVE) && (this->actor.shape.rot.x == 0) && (this->unk_318 == 0) && (this->unk_31B != 9) && (this->unk_31B != 10) && (this->unk_31B != 1)) { func_80AE3DE4(this); return; @@ -794,8 +794,8 @@ void EnRd_Update(Actor* thisx, GlobalContext* globalCtx) { func_80AE4114(this, globalCtx); - if (gSaveContext.unk_1422 != 0 && this->unk_318 == 0) { - gSaveContext.unk_1422 = 0; + if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE && this->unk_318 == 0) { + gSaveContext.sunsSongState = SUNSSONG_INACTIVE; } if (this->unk_31C != 6 && ((this->unk_31B != 11) || (this->unk_31C != 14))) { diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c index 62a1185c93..7a5428c044 100644 --- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c +++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c @@ -248,7 +248,8 @@ void func_80AF29DC(EnRu2* this, GlobalContext* globalCtx) { f32 posY = thisx->world.pos.y; f32 posZ = thisx->world.pos.z; - Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES); + Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, + WARP_SAGES); } void func_80AF2A38(EnRu2* this, GlobalContext* globalCtx) { @@ -616,7 +617,7 @@ void func_80AF37CC(EnRu2* this) { f32 funcFloat; this->unk_2C0++; - funcFloat = func_8006F9BC((kREG(2) + 0x96) & 0xFFFF, 0, this->unk_2C0, 8, 0); + funcFloat = Environment_LerpWeightAccelDecel((kREG(2) + 0x96) & 0xFFFF, 0, this->unk_2C0, 8, 0); this->actor.world.pos.y = this->actor.home.pos.y + (300.0f * funcFloat); } diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index a3af338a22..ad04148ce4 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -999,7 +999,7 @@ void EnSkj_WaitForSong(EnSkj* this, GlobalContext* globalCtx) { player->stateFlags2 |= 0x800000; } else { if (globalCtx->msgCtx.unk_E3EE >= 5) { - gSaveContext.unk_1422 = 0; + gSaveContext.sunsSongState = 0; if (gSaveContext.itemGetInf[1] & 0x40) { globalCtx->msgCtx.unk_E3EE = 4; player->unk_6A8 = &this->actor; diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c index d1b1ec21b8..34f5c0b8d3 100644 --- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c +++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c @@ -984,7 +984,7 @@ void func_80B0EEA4(GlobalContext* globalCtx) { OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_sw.c", 2205); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_sw.c", 2207); } diff --git a/src/overlays/actors/ovl_En_Tr/z_en_tr.c b/src/overlays/actors/ovl_En_Tr/z_en_tr.c index be8b7d1ca5..328f1f23a8 100644 --- a/src/overlays/actors/ovl_En_Tr/z_en_tr.c +++ b/src/overlays/actors/ovl_En_Tr/z_en_tr.c @@ -449,8 +449,8 @@ void EnTr_Draw(Actor* thisx, GlobalContext* globalCtx) { } f32 func_80B23FDC(GlobalContext* globalCtx, s32 actionIndex) { - f32 phi_f2 = func_8006F93C(globalCtx->csCtx.npcActions[actionIndex]->endFrame, - globalCtx->csCtx.npcActions[actionIndex]->startFrame, globalCtx->csCtx.frames); + f32 phi_f2 = Environment_LerpWeight(globalCtx->csCtx.npcActions[actionIndex]->endFrame, + globalCtx->csCtx.npcActions[actionIndex]->startFrame, globalCtx->csCtx.frames); phi_f2 = CLAMP_MAX(phi_f2, 1.0f); return phi_f2; } diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c index a7ea06ad89..63b9381233 100644 --- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c +++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c @@ -41,8 +41,6 @@ void func_80B2B8FC(EnViewer* this, GlobalContext* globalCtx); void func_80B2BA38(EnViewer* this, GlobalContext* globalCtx); void func_80B2C130(EnViewer* this, GlobalContext* globalCtx); -extern Mtx D_01000000; - static u8 D_80B2CEC0 = false; const ActorInit En_Viewer_InitVars = { @@ -710,8 +708,8 @@ void EnViewer_GetCutsceneNextPos(EnViewer* this, GlobalContext* globalCtx) { endPos.x = globalCtx->csCtx.npcActions[0]->endPos.x; endPos.y = globalCtx->csCtx.npcActions[0]->endPos.y; endPos.z = globalCtx->csCtx.npcActions[0]->endPos.z; - interpolated = func_8006F93C(globalCtx->csCtx.npcActions[0]->endFrame, - globalCtx->csCtx.npcActions[0]->startFrame, globalCtx->csCtx.frames); + interpolated = Environment_LerpWeight(globalCtx->csCtx.npcActions[0]->endFrame, + globalCtx->csCtx.npcActions[0]->startFrame, globalCtx->csCtx.frames); this->actor.world.pos.x = ((endPos.x - startPos.x) * interpolated) + startPos.x; this->actor.world.pos.y = ((endPos.y - startPos.y) * interpolated) + startPos.y; this->actor.world.pos.z = ((endPos.z - startPos.z) * interpolated) + startPos.z; @@ -725,8 +723,8 @@ void EnViewer_GetCutsceneNextPos(EnViewer* this, GlobalContext* globalCtx) { endPos.x = globalCtx->csCtx.npcActions[1]->endPos.x; endPos.y = globalCtx->csCtx.npcActions[1]->endPos.y; endPos.z = globalCtx->csCtx.npcActions[1]->endPos.z; - interpolated = func_8006F93C(globalCtx->csCtx.npcActions[1]->endFrame, - globalCtx->csCtx.npcActions[1]->startFrame, globalCtx->csCtx.frames); + interpolated = Environment_LerpWeight(globalCtx->csCtx.npcActions[1]->endFrame, + globalCtx->csCtx.npcActions[1]->startFrame, globalCtx->csCtx.frames); this->actor.world.pos.x = ((endPos.x - startPos.x) * interpolated) + startPos.x; this->actor.world.pos.y = ((endPos.y - startPos.y) * interpolated) + startPos.y; this->actor.world.pos.z = ((endPos.z - startPos.z) * interpolated) + startPos.z; diff --git a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c index e07a2e04d3..eae2c4f006 100644 --- a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c +++ b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c @@ -136,17 +136,17 @@ u8 WeatherTag_CheckEnableWeatherEffect(EnWeatherTag* this, GlobalContext* global Player* player = GET_PLAYER(globalCtx); if (Actor_WorldDistXZToActor(&player->actor, &this->actor) < WEATHER_TAG_RANGE100(this->actor.params)) { - if ((globalCtx->envCtx.unk_1E != 0) || !D_8011FB3C || + if ((globalCtx->envCtx.indoors != 0) || !gSkyboxBlendingEnabled || (globalCtx->skyboxId != SKYBOX_NORMAL_SKY && globalCtx->envCtx.unk_1F == globalCtx->envCtx.unk_20)) { D_8011FB38 = 1; - if (globalCtx->envCtx.gloomySkyEvent == 0 && - (globalCtx->envCtx.unk_1E != 0 || (globalCtx->envCtx.unk_1F != 1 && globalCtx->envCtx.unk_21 == 0))) { + if (globalCtx->envCtx.gloomySkyMode == 0 && + (globalCtx->envCtx.indoors != 0 || (globalCtx->envCtx.unk_1F != 1 && globalCtx->envCtx.unk_21 == 0))) { D_8011FB38 = 0; - if (D_8011FB30 != weatherMode) { - D_8011FB30 = weatherMode; - if (globalCtx->envCtx.gloomySkyEvent == 0) { + if (gWeatherMode != weatherMode) { + gWeatherMode = weatherMode; + if (globalCtx->envCtx.gloomySkyMode == 0) { globalCtx->envCtx.unk_19 = 1; - globalCtx->envCtx.gloomySky = arg2; + globalCtx->envCtx.unk_17 = arg2; globalCtx->envCtx.unk_18 = arg3; globalCtx->envCtx.unk_1A = arg6; globalCtx->envCtx.unk_21 = 1; @@ -160,7 +160,7 @@ u8 WeatherTag_CheckEnableWeatherEffect(EnWeatherTag* this, GlobalContext* global ret = true; } } else { - if (D_8011FB40 != 0) { + if (gTimeIncrement != 0) { gSaveContext.dayTime += 0x14; } } @@ -176,15 +176,15 @@ u8 WeatherTag_CheckRestoreWeather(EnWeatherTag* this, GlobalContext* globalCtx, Player* player = GET_PLAYER(globalCtx); if ((WEATHER_TAG_RANGE100(this->actor.params) + 100.0f) < Actor_WorldDistXZToActor(&player->actor, &this->actor)) { - if (globalCtx->envCtx.unk_1E != 0 || !D_8011FB3C || + if (globalCtx->envCtx.indoors != 0 || !gSkyboxBlendingEnabled || (globalCtx->skyboxId != SKYBOX_NORMAL_SKY && globalCtx->envCtx.unk_1F == globalCtx->envCtx.unk_20)) { D_8011FB38 = 1; - if ((globalCtx->envCtx.gloomySkyEvent == 0) && - (globalCtx->envCtx.unk_1E != 0 || (globalCtx->envCtx.unk_1F != 1 && globalCtx->envCtx.unk_21 == 0))) { + if ((globalCtx->envCtx.gloomySkyMode == 0) && + (globalCtx->envCtx.indoors != 0 || (globalCtx->envCtx.unk_1F != 1 && globalCtx->envCtx.unk_21 == 0))) { D_8011FB38 = 0; - D_8011FB30 = 0; + gWeatherMode = 0; globalCtx->envCtx.unk_19 = 1; - globalCtx->envCtx.gloomySky = arg2; + globalCtx->envCtx.unk_17 = arg2; globalCtx->envCtx.unk_18 = arg3; globalCtx->envCtx.unk_1A = arg6; globalCtx->envCtx.unk_21 = 1; @@ -196,7 +196,7 @@ u8 WeatherTag_CheckRestoreWeather(EnWeatherTag* this, GlobalContext* globalCtx, ret = true; } - } else if (D_8011FB40 != 0) { + } else if (gTimeIncrement != 0) { gSaveContext.dayTime += 0x14; } } @@ -272,7 +272,7 @@ void EnWeatherTag_EnabledRainLakeHylia(EnWeatherTag* this, GlobalContext* global void EnWeatherTag_DisabledCloudyRainThunderKakariko(EnWeatherTag* this, GlobalContext* globalCtx) { if (WeatherTag_CheckEnableWeatherEffect(this, globalCtx, 0, 1, 0, 4, 100, 5)) { func_80077624(globalCtx); - globalCtx->envCtx.lightning = 1; + globalCtx->envCtx.lightningMode = LIGHTNING_MODE_ON; globalCtx->envCtx.unk_EE[0] = 30; EnWeatherTag_SetupAction(this, EnWeatherTag_EnabledCloudyRainThunderKakariko); } @@ -281,7 +281,7 @@ void EnWeatherTag_DisabledCloudyRainThunderKakariko(EnWeatherTag* this, GlobalCo void EnWeatherTag_EnabledCloudyRainThunderKakariko(EnWeatherTag* this, GlobalContext* globalCtx) { if (WeatherTag_CheckRestoreWeather(this, globalCtx, 1, 0, 4, 0, 100)) { func_80077684(globalCtx); - globalCtx->envCtx.lightning = 2; + globalCtx->envCtx.lightningMode = LIGHTNING_MODE_LAST; globalCtx->envCtx.unk_EE[0] = 0; EnWeatherTag_SetupAction(this, EnWeatherTag_DisabledCloudyRainThunderKakariko); } @@ -291,11 +291,11 @@ void EnWeatherTag_SetSandstormIntensity(EnWeatherTag* this, GlobalContext* globa Player* player = GET_PLAYER(globalCtx); if (Actor_WorldDistXZToActor(&player->actor, &this->actor) < WEATHER_TAG_RANGE100(this->actor.params)) { - Math_SmoothStepToS(&globalCtx->envCtx.unk_9E, -0x50, 1, 2, 1); - Math_SmoothStepToS(&globalCtx->envCtx.unk_A0, -0x7D0, 1, 50, 1); + Math_SmoothStepToS(&globalCtx->envCtx.adjFogNear, -0x50, 1, 2, 1); + Math_SmoothStepToS(&globalCtx->envCtx.adjFogFar, -0x7D0, 1, 50, 1); } else { - Math_SmoothStepToS(&globalCtx->envCtx.unk_9E, 0, 1, 1, 1); - Math_SmoothStepToS(&globalCtx->envCtx.unk_A0, 0, 1, 25, 1); + Math_SmoothStepToS(&globalCtx->envCtx.adjFogNear, 0, 1, 1, 1); + Math_SmoothStepToS(&globalCtx->envCtx.adjFogFar, 0, 1, 25, 1); } } @@ -304,7 +304,7 @@ void EnWeatherTag_DisabledRainThunder(EnWeatherTag* this, GlobalContext* globalC if (Actor_WorldDistXZToActor(&player->actor, &this->actor) < WEATHER_TAG_RANGE100(this->actor.params)) { func_80077624(globalCtx); - globalCtx->envCtx.lightning = 1; + globalCtx->envCtx.lightningMode = LIGHTNING_MODE_ON; globalCtx->envCtx.unk_EE[0] = 25; EnWeatherTag_SetupAction(this, EnWeatherTag_EnabledRainThunder); } @@ -315,7 +315,7 @@ void EnWeatherTag_EnabledRainThunder(EnWeatherTag* this, GlobalContext* globalCt if ((WEATHER_TAG_RANGE100(this->actor.params) + 10.0f) < Actor_WorldDistXZToActor(&player->actor, &this->actor)) { func_80077684(globalCtx); - globalCtx->envCtx.lightning = 2; + globalCtx->envCtx.lightningMode = LIGHTNING_MODE_LAST; globalCtx->envCtx.unk_EE[0] = 0; globalCtx->envCtx.unk_EE[1] = 10; EnWeatherTag_SetupAction(this, EnWeatherTag_DisabledRainThunder); diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index fa361556fd..52bc37aa39 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -173,7 +173,8 @@ void func_80B3C620(EnXc* this, GlobalContext* globalCtx, s32 npcActionIdx) { f32 unk; if (npcAction != NULL) { - unk = func_8006F9BC(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 0, 0); + unk = + Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 0, 0); startX = npcAction->startPos.x; startY = npcAction->startPos.y; startZ = npcAction->startPos.z; @@ -1392,7 +1393,8 @@ void func_80B3F534(GlobalContext* globalCtx) { u16 frameCount = csCtx->frames; if (frameCount == 310) { - Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_DOOR_WARP1, -1044.0f, -1243.0f, 7458.0f, 0, 0, 0, WARP_DESTINATION); + Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_DOOR_WARP1, -1044.0f, -1243.0f, 7458.0f, 0, 0, 0, + WARP_DESTINATION); } } diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c index ba15be52f0..66208697fb 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -377,11 +377,11 @@ void func_80B4B010(EnZl1* this, GlobalContext* globalCtx) { Gameplay_ChangeCameraStatus(globalCtx, MAIN_CAM, CAM_STAT_WAIT); Gameplay_ChangeCameraStatus(globalCtx, this->unk_1E8, CAM_STAT_ACTIVE); func_800C0808(globalCtx, this->unk_1E8, player, CAM_SET_FREE0); - globalCtx->envCtx.unk_E2[0] = 0xFF; - globalCtx->envCtx.unk_E2[1] = 0xFF; - globalCtx->envCtx.unk_E2[2] = 0xFF; - globalCtx->envCtx.unk_E2[3] = 0x18; - globalCtx->envCtx.unk_E1 = 1; + globalCtx->envCtx.screenFillColor[0] = 255; + globalCtx->envCtx.screenFillColor[1] = 255; + globalCtx->envCtx.screenFillColor[2] = 255; + globalCtx->envCtx.screenFillColor[3] = 24; + globalCtx->envCtx.fillScreen = true; Gameplay_CameraSetAtEye(globalCtx, this->unk_1E8, &vec1, &vec2); Gameplay_CameraSetFov(globalCtx, this->unk_1E8, 30.0f); ShrinkWindow_SetVal(0x20); @@ -435,7 +435,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) { break; case 1: if ((func_8010BDBC(msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - globalCtx->envCtx.unk_E1 = 0; + globalCtx->envCtx.fillScreen = false; Gameplay_CameraSetAtEye(globalCtx, this->unk_1E8, &sp74, &sp68); Gameplay_CameraSetFov(globalCtx, this->unk_1E8, 25.0f); player->actor.world.pos = sp58; diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c index bb7b11f0a3..dc46a05687 100644 --- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c +++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c @@ -692,7 +692,8 @@ void func_80B500E0(EnZl2* this, GlobalContext* globalCtx) { f32 someFloat; if (npcAction != NULL) { - someFloat = func_8006F9BC(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 8, 8); + someFloat = + Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 8, 8); startX = npcAction->startPos.x; startY = npcAction->startPos.y; startZ = npcAction->startPos.z; @@ -716,7 +717,8 @@ void func_80B501E8(EnZl2* this, GlobalContext* globalCtx) { if (npcAction != NULL) { this->actor.shape.shadowAlpha = this->alpha = - (1.0f - func_8006F93C(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames)) * 255.0f; + (1.0f - Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames)) * + 255.0f; func_80B501C4(this, this->alpha); } } @@ -1457,7 +1459,8 @@ void func_80B51DA4(EnZl2* this, GlobalContext* globalCtx) { f32 someFloat; if (npcAction != NULL) { - someFloat = func_8006F9BC(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 0, 8); + someFloat = + Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 0, 8); startX = npcAction->startPos.x; startY = npcAction->startPos.y; startZ = npcAction->startPos.z; diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c index 6fd915525a..cb494edba3 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -1045,8 +1045,8 @@ void func_80B559C4(EnZl3* this) { Vec3f* thisPos = &this->actor.world.pos; Vec3f* unk_32C = &this->unk_32C; Vec3f* unk_338 = &this->unk_338; - f32 temp_f0 = - func_8006F9BC(Animation_GetLastFrame(&gZelda2Anime2Anim_005248), 0, (s32)this->skelAnime.curFrame, 3, 3); + f32 temp_f0 = Environment_LerpWeightAccelDecel(Animation_GetLastFrame(&gZelda2Anime2Anim_005248), 0, + (s32)this->skelAnime.curFrame, 3, 3); thisPos->x = unk_32C->x + (temp_f0 * (unk_338->x - unk_32C->x)); thisPos->z = unk_32C->z + (temp_f0 * (unk_338->z - unk_32C->z)); @@ -1959,7 +1959,7 @@ void func_80B57CB4(EnZl3* this, GlobalContext* globalCtx) { f32 temp_f0; this->unk_344 += 1; - temp_f0 = func_8006F9BC(this->unk_346, 0, this->unk_344, 3, 3); + temp_f0 = Environment_LerpWeightAccelDecel(this->unk_346, 0, this->unk_344, 3, 3); thisPos->x = unk_348->x + (temp_f0 * (unk_354->x - unk_348->x)); thisPos->y = (unk_348->y + (temp_f0 * (unk_354->y - unk_348->y))) + this->unk_360; thisPos->z = unk_348->z + (temp_f0 * (unk_354->z - unk_348->z)); @@ -2262,7 +2262,7 @@ void func_80B58C08(EnZl3* this, GlobalContext* globalCtx) { unk_344 = this->unk_344; unk_346 = this->unk_346; sp28 = unk_346 - kREG(11) - 2; - temp_f0 = func_8006F9BC(unk_346, 0, unk_344, 3, 0); + temp_f0 = Environment_LerpWeightAccelDecel(unk_346, 0, unk_344, 3, 0); thisPos->x = unk_348->x + (temp_f0 * (unk_354->x - unk_348->x)); thisPos->y = (unk_348->y + (temp_f0 * (unk_354->y - unk_348->y))) + this->unk_360; diff --git a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c index 4fd344207c..47a2df7d63 100644 --- a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c +++ b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c @@ -451,9 +451,9 @@ void EnfHG_SetupApproach(EnfHG* this, GlobalContext* globalCtx, s16 paintingInde this->actor.scale.z = 0.001f; this->approachRate = 0.0f; - this->warpColorFilterR = globalCtx->lightCtx.unk_07; - this->warpColorFilterG = globalCtx->lightCtx.unk_08; - this->warpColorFilterB = globalCtx->lightCtx.unk_09; + this->warpColorFilterR = globalCtx->lightCtx.fogColor[0]; + this->warpColorFilterG = globalCtx->lightCtx.fogColor[1]; + this->warpColorFilterB = globalCtx->lightCtx.fogColor[2]; this->warpColorFilterUnk1 = 0.0f; this->warpColorFilterUnk2 = 0.0f; this->turnRot = 0; @@ -513,9 +513,9 @@ void EnfHG_Attack(EnfHG* this, GlobalContext* globalCtx) { Math_ApproachF(&this->warpColorFilterB, 255.0f, 1.0f, 10.0f); Math_ApproachF(&this->warpColorFilterUnk1, -60.0f, 1.0f, 5.0f); } else { - Math_ApproachF(&this->warpColorFilterR, globalCtx->lightCtx.unk_07, 1.0f, 10.0f); - Math_ApproachF(&this->warpColorFilterG, globalCtx->lightCtx.unk_07, 1.0f, 10.0f); - Math_ApproachF(&this->warpColorFilterB, globalCtx->lightCtx.unk_07, 1.0f, 10.0f); + Math_ApproachF(&this->warpColorFilterR, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f); + Math_ApproachF(&this->warpColorFilterG, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f); + Math_ApproachF(&this->warpColorFilterB, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f); Math_ApproachF(&this->warpColorFilterUnk1, 0.0f, 1.0f, 5.0f); if (this->timers[1] == 29) { Audio_PlayActorSound2(&this->actor, NA_SE_EN_FANTOM_MASIC2); @@ -586,9 +586,9 @@ void EnfHG_Damage(EnfHG* this, GlobalContext* globalCtx) { osSyncPrintf("REVISE !!\n"); SkelAnime_Update(&this->skin.skelAnime); - Math_ApproachF(&this->warpColorFilterR, globalCtx->lightCtx.unk_07, 1.0f, 10.0f); - Math_ApproachF(&this->warpColorFilterG, globalCtx->lightCtx.unk_07, 1.0f, 10.0f); - Math_ApproachF(&this->warpColorFilterB, globalCtx->lightCtx.unk_07, 1.0f, 10.0f); + Math_ApproachF(&this->warpColorFilterR, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f); + Math_ApproachF(&this->warpColorFilterG, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f); + Math_ApproachF(&this->warpColorFilterB, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f); Math_ApproachF(&this->warpColorFilterUnk1, 0.0f, 1.0f, 5.0f); Math_ApproachF(&this->actor.scale.z, 0.011499999f, 1.0f, 0.002f); if (this->timers[0] != 0) { @@ -727,6 +727,6 @@ void EnfHG_Draw(Actor* thisx, GlobalContext* globalCtx) { (u32)this->warpColorFilterB, 0, (s32)this->warpColorFilterUnk1 + 995, (s32)this->warpColorFilterUnk2 + 1000); func_800A6330(&this->actor, globalCtx, &this->skin, EnfHG_Noop, 0x23); - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_fhg.c", 2480); } diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index ad844044ba..ad43689443 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -865,7 +865,7 @@ void Fishing_Init(Actor* thisx, GlobalContext* globalCtx2) { D_80B7A684 = 20; globalCtx->specialEffects = sFishingEffects; - D_8011FB40 = 1; + gTimeIncrement = 1; D_80B7E0AC = 0; D_80B7E0A6 = 10; @@ -5347,8 +5347,8 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { func_80064534(globalCtx, &globalCtx->csCtx); D_80B7A6CC = 0; sCameraId = 0; - func_80070600(globalCtx, 0); - globalCtx->envCtx.unk_9E = 0; + Environment_EnableUnderwaterLights(globalCtx, 0); + globalCtx->envCtx.adjFogNear = 0; player->unk_860 = -5; D_80B7E0B0 = 5; break; @@ -5391,8 +5391,8 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { D_80B7A6CC = 0; sCameraId = 0; D_80B7A6D0 = 30; - func_80070600(globalCtx, 0); - globalCtx->envCtx.unk_9E = 0; + Environment_EnableUnderwaterLights(globalCtx, 0); + globalCtx->envCtx.adjFogNear = 0; } break; @@ -5497,8 +5497,8 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { D_80B7E0B0 = 5; D_80B7A6D4 = 0; D_80B7E0A6 = 20; - func_80070600(globalCtx, 0); - globalCtx->envCtx.unk_9E = 0; + Environment_EnableUnderwaterLights(globalCtx, 0); + globalCtx->envCtx.adjFogNear = 0; } } } @@ -5513,15 +5513,15 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { Math_ApproachF(&D_80B7FECC, 1.0f, 1.0f, 0.02f); if (sCameraEye.y <= (WATER_SURFACE_Y(globalCtx) + 1.0f)) { - func_80070600(globalCtx, 1); + Environment_EnableUnderwaterLights(globalCtx, 1); if (D_80B7E076 != 0) { - globalCtx->envCtx.unk_9E = -0xB2; + globalCtx->envCtx.adjFogNear = -0xB2; } else { - globalCtx->envCtx.unk_9E = -0x2E; + globalCtx->envCtx.adjFogNear = -0x2E; } } else { - func_80070600(globalCtx, 0); - globalCtx->envCtx.unk_9E = 0; + Environment_EnableUnderwaterLights(globalCtx, 0); + globalCtx->envCtx.adjFogNear = 0; } } @@ -5565,9 +5565,9 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { if (sREG(15) != 0) { if (D_80B7A654 != (sREG(15) - 1)) { if (D_80B7A654 == 0) { - globalCtx->envCtx.gloomySkyEvent = 1; + globalCtx->envCtx.gloomySkyMode = 1; } else { - globalCtx->envCtx.gloomySkyEvent = 2; + globalCtx->envCtx.gloomySkyMode = 2; } } @@ -5575,10 +5575,10 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { } if (sREG(14) == 1) { - globalCtx->envCtx.gloomySkyEvent = 1; + globalCtx->envCtx.gloomySkyMode = 1; } if (sREG(14) == -1) { - globalCtx->envCtx.gloomySkyEvent = 2; + globalCtx->envCtx.gloomySkyMode = 2; } sREG(14) = 0; @@ -5596,10 +5596,10 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { if (Rand_ZeroOne() < 0.5f) { D_80B7A654 = (u8)Rand_ZeroFloat(10.0f) + 5; - globalCtx->envCtx.gloomySkyEvent = 1; + globalCtx->envCtx.gloomySkyMode = 1; } else { D_80B7A654 = 0; - globalCtx->envCtx.gloomySkyEvent = 2; + globalCtx->envCtx.gloomySkyMode = 2; } } @@ -5631,7 +5631,8 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { Math_ApproachZeroF(&D_80B7A658, 1.0f, 2.0f); } - globalCtx->envCtx.unk_8C[1][0] = globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = D_80B7A658; + globalCtx->envCtx.adjLight1Color[0] = globalCtx->envCtx.adjLight1Color[1] = globalCtx->envCtx.adjLight1Color[2] = + D_80B7A658; if ((u8)D_80B7A650 > 0) { s32 pad; diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c index 740aa8e412..c0f305bda5 100644 --- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c +++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c @@ -137,29 +137,33 @@ void MagicDark_DiamondUpdate(Actor* thisx, GlobalContext* globalCtx) { void MagicDark_DimLighting(GlobalContext* globalCtx, f32 intensity) { s32 i; - f32 temp_f0; - f32 phi_f0; + f32 colorScale; + f32 fogScale; if (globalCtx->roomCtx.curRoom.unk_03 != 5) { intensity = CLAMP_MIN(intensity, 0.0f); intensity = CLAMP_MAX(intensity, 1.0f); - phi_f0 = intensity - 0.2f; + fogScale = intensity - 0.2f; + if (intensity < 0.2f) { - phi_f0 = 0.0f; + fogScale = 0.0f; } - globalCtx->envCtx.unk_9E = (850.0f - globalCtx->envCtx.unk_D2) * phi_f0; + + globalCtx->envCtx.adjFogNear = (850.0f - globalCtx->envCtx.lightSettings.fogNear) * fogScale; + if (intensity == 0.0f) { - for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.unk_8C[2]); i++) { - globalCtx->envCtx.unk_8C[2][i] = 0; + for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.adjFogColor); i++) { + globalCtx->envCtx.adjFogColor[i] = 0; } } else { - temp_f0 = intensity * 5.0f; - if (temp_f0 > 1.0f) { - temp_f0 = 1.0f; + colorScale = intensity * 5.0f; + + if (colorScale > 1.0f) { + colorScale = 1.0f; } - for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.unk_8C[2]); i++) { - globalCtx->envCtx.unk_8C[2][i] = -(s16)(globalCtx->envCtx.unk_CF[i] * temp_f0); + for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.adjFogColor); i++) { + globalCtx->envCtx.adjFogColor[i] = -(s16)(globalCtx->envCtx.lightSettings.fogColor[i] * colorScale); } } } diff --git a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c index 85f9fbbc12..2fafc23510 100644 --- a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c +++ b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c @@ -17,7 +17,6 @@ void ObjectKankyo_Destroy(Actor* thisx, GlobalContext* globalCtx); void ObjectKankyo_Update(Actor* thisx, GlobalContext* globalCtx); void ObjectKankyo_Draw(Actor* thisx, GlobalContext* globalCtx); -extern UNK_TYPE D_01000000; extern UNK_TYPE D_06009620; /* diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index d0f5215e61..aab9ed06ee 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -82,9 +82,9 @@ void OceffSpot_End(OceffSpot* this, GlobalContext* globalCtx) { this->unk_174 -= 0.05f; } else { Actor_Kill(&this->actor); - if (D_8011FB40 != 400 && globalCtx->msgCtx.unk_E40E == 0 && (gSaveContext.eventInf[0] & 0xF) != 1) { + if (gTimeIncrement != 400 && globalCtx->msgCtx.unk_E40E == 0 && (gSaveContext.eventInf[0] & 0xF) != 1) { if (globalCtx->msgCtx.unk_E3F0 != 0x31 || globalCtx->msgCtx.unk_E3EE != 8) { - gSaveContext.unk_1422 = 1; + gSaveContext.sunsSongState = SUNSSONG_START; osSyncPrintf(VT_FGCOL(YELLOW)); // Sun's Song Flag osSyncPrintf("z_oceff_spot 太陽の歌フラグ\n"); @@ -133,7 +133,7 @@ void OceffSpot_Update(Actor* thisx, GlobalContext* globalCtx) { this->actor.world.pos.y += 5.0f; temp = (2.0f - this->unk_174) * this->unk_174; - func_800773A8(globalCtx, temp * 0.5F, 880.0f, 0.2f, 0.9f); + Environment_AdjustLights(globalCtx, temp * 0.5F, 880.0f, 0.2f, 0.9f); Lights_PointNoGlowSetInfo(&this->lightInfo1, (s16)this->actor.world.pos.x, (s16)this->actor.world.pos.y + 55.0f, (s16)this->actor.world.pos.z, (s32)(255.0f * temp), (s32)(255.0f * temp), diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c index 211e921492..c6e3fd2eb7 100644 --- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c +++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c @@ -182,9 +182,9 @@ void ShotSun_UpdateHyliaSun(ShotSun* this, GlobalContext* globalCtx) { Actor_Kill(&this->actor); } else { if (!(this->actor.xzDistToPlayer > 120.0f) && gSaveContext.dayTime >= 0x4555 && gSaveContext.dayTime < 0x5000) { - cylinderPos.x = player->bodyPartsPos[7].x + globalCtx->envCtx.unk_04.x * (1.0f / 6.0f); - cylinderPos.y = player->bodyPartsPos[7].y - 30.0f + globalCtx->envCtx.unk_04.y * (1.0f / 6.0f); - cylinderPos.z = player->bodyPartsPos[7].z + globalCtx->envCtx.unk_04.z * (1.0f / 6.0f); + cylinderPos.x = player->bodyPartsPos[7].x + globalCtx->envCtx.sunPos.x * (1.0f / 6.0f); + cylinderPos.y = player->bodyPartsPos[7].y - 30.0f + globalCtx->envCtx.sunPos.y * (1.0f / 6.0f); + cylinderPos.z = player->bodyPartsPos[7].z + globalCtx->envCtx.sunPos.z * (1.0f / 6.0f); this->hitboxPos = cylinderPos; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 3e61579468..d6b037a267 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3912,11 +3912,26 @@ s32 func_80838FB8(GlobalContext* globalCtx, Player* this) { return 0; } -s32 func_80839034(GlobalContext* globalCtx, Player* this, CollisionPoly* poly, s32 bgId) { - static s16 D_808544F8[] = { - 0x045B, 0x0482, 0x0340, 0x044B, 0x02A2, 0x0201, 0x03B8, 0x04EE, 0x03C0, 0x0463, 0x01CD, 0x0394, 0x0340, 0x057C, - }; - static u8 D_80854514[] = { 11, 9, 3, 5, 7, 0 }; +s16 D_808544F8[] = { + 0x045B, // DMT from Magic Fairy Fountain + 0x0482, // DMC from Double Defense Fairy Fountain + 0x0340, // Hyrule Castle from Dins Fire Fairy Fountain + 0x044B, // Kakariko from Potion Shop + 0x02A2, // Market (child day) from Potion Shop + 0x0201, // Kakariko from Bazaar + 0x03B8, // Market (child day) from Bazaar + 0x04EE, // Kakariko from House of Skulltulas + 0x03C0, // Back Alley (day) from Bombchu Shop + 0x0463, // Kakariko from Shooting Gallery + 0x01CD, // Market (child day) from Shooting Gallery + 0x0394, // Zoras Fountain from Farores Wind Fairy Fountain + 0x0340, // Hyrule Castle from Dins Fire Fairy Fountain + 0x057C, // Desert Colossus from Nayrus Love Fairy Fountain +}; + +u8 D_80854514[] = { 11, 9, 3, 5, 7, 0 }; + +s32 func_80839034(GlobalContext* globalCtx, Player* this, CollisionPoly* poly, u32 bgId) { s32 sp3C; s32 temp; s32 sp34; @@ -10444,7 +10459,7 @@ void Player_Draw(Actor* thisx, GlobalContext* globalCtx2) { func_8084A0E8(globalCtx, this, lod, gCullBackDList, overrideLimbDraw); if (this->invincibilityTimer > 0) { - POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); + POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP); } if (this->stateFlags2 & 0x4000) { @@ -11901,7 +11916,7 @@ void func_8084E3C4(Player* this, GlobalContext* globalCtx) { this->stateFlags2 |= 0x8000000; if (Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_DEMO_KANKYO, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0xF) == NULL) { - func_800776E4(globalCtx); + Environment_WarpSongLeave(globalCtx); } gSaveContext.seqIndex = 0xFF; diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c index 6e3cb0aff5..c484ffc98e 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c @@ -28,8 +28,6 @@ EffectSsInit Effect_Ss_Dead_Dd_InitVars = { EffectSsDeadDd_Init, }; -extern Mtx D_01000000; - u32 EffectSsDeadDd_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) { s32 i; EffectSsDeadDdInitParams* initParams = (EffectSsDeadDdInitParams*)initParamsx; @@ -116,7 +114,7 @@ void EffectSsDeadDd_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) { gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); - gSPDisplayList(POLY_XLU_DISP++, gEffBurnMark1DL); + gSPDisplayList(POLY_XLU_DISP++, gLensFlareCircleDL); } CLOSE_DISPS(gfxCtx, "../z_eff_ss_dead_dd.c", 259); diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c index b4a647fbee..c03e3067e3 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c @@ -103,7 +103,7 @@ void EffectSsDeadDs_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); - gSPDisplayList(POLY_XLU_DISP++, gEffBurnMark1DL); + gSPDisplayList(POLY_XLU_DISP++, gLensFlareCircleDL); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead_ds.c", 255); } diff --git a/src/overlays/gamestates/ovl_select/z_select.c b/src/overlays/gamestates/ovl_select/z_select.c index 74b5e3b0e6..fe006f299f 100644 --- a/src/overlays/gamestates/ovl_select/z_select.c +++ b/src/overlays/gamestates/ovl_select/z_select.c @@ -38,7 +38,7 @@ void Select_LoadGame(SelectContext* this, s32 entranceIndex) { gSaveContext.seqIndex = 0xFF; gSaveContext.nightSeqIndex = 0xFF; gSaveContext.showTitleCard = true; - D_8011FB30 = 0; + gWeatherMode = 0; this->state.running = false; SET_NEXT_GAMESTATE(&this->state, Gameplay_Init, GlobalContext); } @@ -500,7 +500,7 @@ void Select_PrintCutsceneSetting(SelectContext* this, GfxPrint* printer, u16 csI break; }; - gSaveContext.environmentTime = gSaveContext.dayTime; + gSaveContext.skyboxTime = gSaveContext.dayTime; GfxPrint_Printf(printer, "Stage:\x8C%s", label); } diff --git a/src/overlays/gamestates/ovl_title/z_title.c b/src/overlays/gamestates/ovl_title/z_title.c index 8784c83d52..df8f0d7689 100644 --- a/src/overlays/gamestates/ovl_title/z_title.c +++ b/src/overlays/gamestates/ovl_title/z_title.c @@ -109,7 +109,7 @@ void Title_Draw(TitleContext* this) { gSPTextureRectangle(POLY_OPA_DISP++, 388, y << 2, 1156, (y + 2) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); } - func_8007672C(this->state.gfxCtx, 0, 0, 0, (s16)this->coverAlpha, 2); + Environment_FillScreen(this->state.gfxCtx, 0, 0, 0, (s16)this->coverAlpha, FILL_SCREEN_XLU); sTitleRotY += 300;