diff --git a/src/game/game_157db0.c b/src/game/game_157db0.c index 75686215f..3d9a43e74 100644 --- a/src/game/game_157db0.c +++ b/src/game/game_157db0.c @@ -2663,7 +2663,7 @@ glabel func0f15a2c4 /* f15a388: a4e00000 */ sh $zero,0x0($a3) .L0f15a38c: /* f15a38c: 2415ffff */ addiu $s5,$zero,-1 -/* f15a390: 0fc599b2 */ jal func0f1666c8 +/* f15a390: 0fc599b2 */ jal gfxConsiderDisableFog /* f15a394: 8fa40238 */ lw $a0,0x238($sp) /* f15a398: 244c0008 */ addiu $t4,$v0,0x8 /* f15a39c: afac0238 */ sw $t4,0x238($sp) @@ -3060,7 +3060,7 @@ glabel func0f15a6f4 /* f15a948: 566b008b */ bnel $s3,$t3,.L0f15ab78 /* f15a94c: 02202025 */ or $a0,$s1,$zero .L0f15a950: -/* f15a950: 0fc599b2 */ jal func0f1666c8 +/* f15a950: 0fc599b2 */ jal gfxConsiderDisableFog /* f15a954: 02202025 */ or $a0,$s1,$zero /* f15a958: 0c002ade */ jal func0000ab78 /* f15a95c: 00402025 */ or $a0,$v0,$zero @@ -3178,7 +3178,7 @@ glabel func0f15a6f4 /* f15aae4: ae020004 */ sw $v0,0x4($s0) /* f15aae8: 0fc30cbf */ jal currentPlayerLoadMatrix /* f15aaec: 02202025 */ or $a0,$s1,$zero -/* f15aaf0: 0fc599b2 */ jal func0f1666c8 +/* f15aaf0: 0fc599b2 */ jal gfxConsiderDisableFog /* f15aaf4: 00402025 */ or $a0,$v0,$zero /* f15aaf8: 0fc4da1f */ jal func0f13687c /* f15aafc: 00402025 */ or $a0,$v0,$zero @@ -3300,7 +3300,7 @@ glabel func0f15a6f4 /* f15ac98: 00402025 */ or $a0,$v0,$zero /* f15ac9c: 8fb90084 */ lw $t9,0x84($sp) /* f15aca0: 02202025 */ or $a0,$s1,$zero -/* f15aca4: 0fc599b2 */ jal func0f1666c8 +/* f15aca4: 0fc599b2 */ jal gfxConsiderDisableFog /* f15aca8: af220004 */ sw $v0,0x4($t9) /* f15acac: 0fc47b60 */ jal debug0f11ed80 /* f15acb0: 00408825 */ or $s1,$v0,$zero @@ -3387,7 +3387,7 @@ glabel func0f15a6f4 /* f15ade4: 00402025 */ or $a0,$v0,$zero /* f15ade8: 8fad007c */ lw $t5,0x7c($sp) /* f15adec: 02202025 */ or $a0,$s1,$zero -/* f15adf0: 0fc599b2 */ jal func0f1666c8 +/* f15adf0: 0fc599b2 */ jal gfxConsiderDisableFog /* f15adf4: ada20004 */ sw $v0,0x4($t5) /* f15adf8: 0fc47b60 */ jal debug0f11ed80 /* f15adfc: 00408825 */ or $s1,$v0,$zero @@ -3421,7 +3421,7 @@ glabel func0f15a6f4 /* f15ae64: 1420ff76 */ bnez $at,.L0f15ac40 /* f15ae68: 00000000 */ nop .L0f15ae6c: -/* f15ae6c: 0fc599b2 */ jal func0f1666c8 +/* f15ae6c: 0fc599b2 */ jal gfxConsiderDisableFog /* f15ae70: 02202025 */ or $a0,$s1,$zero /* f15ae74: 0fc572dd */ jal func0f15cb74 /* f15ae78: 00402025 */ or $a0,$v0,$zero @@ -3539,7 +3539,7 @@ glabel func0f15a6f4 /* f15b024: 00402025 */ or $a0,$v0,$zero /* f15b028: 8fb90070 */ lw $t9,0x70($sp) /* f15b02c: 02202025 */ or $a0,$s1,$zero -/* f15b030: 0fc599b2 */ jal func0f1666c8 +/* f15b030: 0fc599b2 */ jal gfxConsiderDisableFog /* f15b034: af220004 */ sw $v0,0x4($t9) /* f15b038: 0fc47b60 */ jal debug0f11ed80 /* f15b03c: 00408825 */ or $s1,$v0,$zero @@ -6677,7 +6677,7 @@ Gfx *func0f15cae0(Gfx *gdl) gdl = func0f1664a0(gdl, 0); gdl = func0f164150(gdl); gdl = func0f15cb74(gdl); - gdl = func0f1666c8(gdl); + gdl = gfxConsiderDisableFog(gdl); gSPMatrix(gdl++, var80092870, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); @@ -7986,7 +7986,7 @@ glabel func0f15dc58 /* f15e2a0: 032b1821 */ addu $v1,$t9,$t3 /* f15e2a4: 8c730014 */ lw $s3,0x14($v1) .L0f15e2a8: -/* f15e2a8: 3c18800a */ lui $t8,%hi(var800a65e0) +/* f15e2a8: 3c18800a */ lui $t8,%hi(g_FogDisabled) /* f15e2ac: 3c0f800a */ lui $t7,%hi(g_Rooms) /* f15e2b0: 8e670000 */ lw $a3,0x0($s3) /* f15e2b4: 26650018 */ addiu $a1,$s3,0x18 @@ -8039,7 +8039,7 @@ glabel func0f15dc58 /* f15e354: 5020ffdd */ beqzl $at,.L0f15e2cc /* f15e358: 90a20000 */ lbu $v0,0x0($a1) .L0f15e35c: -/* f15e35c: 8f1865e0 */ lw $t8,%lo(var800a65e0)($t8) +/* f15e35c: 8f1865e0 */ lw $t8,%lo(g_FogDisabled)($t8) /* f15e360: 13000012 */ beqz $t8,.L0f15e3ac /* f15e364: 00000000 */ nop /* f15e368: 8def4928 */ lw $t7,%lo(g_Rooms)($t7) diff --git a/src/game/game_165670.c b/src/game/game_165670.c index 4d8cc7b76..95ade0865 100644 --- a/src/game/game_165670.c +++ b/src/game/game_165670.c @@ -147,8 +147,8 @@ glabel func0f1657e4 GLOBAL_ASM( glabel func0f1657f8 -/* f1657f8: 3c0e800a */ lui $t6,%hi(var800a65e0) -/* f1657fc: 8dce65e0 */ lw $t6,%lo(var800a65e0)($t6) +/* f1657f8: 3c0e800a */ lui $t6,%hi(g_FogDisabled) +/* f1657fc: 8dce65e0 */ lw $t6,%lo(g_FogDisabled)($t6) /* f165800: 27bdffc0 */ addiu $sp,$sp,-64 /* f165804: afbf0014 */ sw $ra,0x14($sp) /* f165808: 51c0005d */ beqzl $t6,.L0f165980 @@ -254,8 +254,8 @@ glabel func0f1657f8 GLOBAL_ASM( glabel func0f16598c /* f16598c: 240e0001 */ addiu $t6,$zero,0x1 -/* f165990: 3c01800a */ lui $at,%hi(var800a65e0) -/* f165994: ac2e65e0 */ sw $t6,%lo(var800a65e0)($at) +/* f165990: 3c01800a */ lui $at,%hi(g_FogDisabled) +/* f165994: ac2e65e0 */ sw $t6,%lo(g_FogDisabled)($at) /* f165998: 27bdffe8 */ addiu $sp,$sp,-24 /* f16599c: 3c01800a */ lui $at,%hi(var800a65e4) /* f1659a0: afbf0014 */ sw $ra,0x14($sp) @@ -604,9 +604,9 @@ glabel func0f165c4c /* f165e94: e44a0008 */ swc1 $f10,0x8($v0) /* f165e98: ac2265e8 */ sw $v0,%lo(var800a65e8)($at) .L0f165e9c: -/* f165e9c: 3c01800a */ lui $at,%hi(var800a65e0) +/* f165e9c: 3c01800a */ lui $at,%hi(g_FogDisabled) /* f165ea0: 8fbf0014 */ lw $ra,0x14($sp) -/* f165ea4: ac2065e0 */ sw $zero,%lo(var800a65e0)($at) +/* f165ea4: ac2065e0 */ sw $zero,%lo(g_FogDisabled)($at) /* f165ea8: 8c980034 */ lw $t8,0x34($a0) /* f165eac: 3c01800a */ lui $at,%hi(var800a65e4) /* f165eb0: 27bd0018 */ addiu $sp,$sp,0x18 @@ -1039,8 +1039,8 @@ glabel func0f1660a4 GLOBAL_ASM( glabel func0f1664a0 -/* f1664a0: 3c0e800a */ lui $t6,%hi(var800a65e0) -/* f1664a4: 8dce65e0 */ lw $t6,%lo(var800a65e0)($t6) +/* f1664a0: 3c0e800a */ lui $t6,%hi(g_FogDisabled) +/* f1664a4: 8dce65e0 */ lw $t6,%lo(g_FogDisabled)($t6) /* f1664a8: 15c00003 */ bnez $t6,.L0f1664b8 /* f1664ac: 00000000 */ nop /* f1664b0: 03e00008 */ jr $ra @@ -1190,27 +1190,21 @@ glabel func0f1664a0 /* f1666c4: 00000000 */ nop ); -GLOBAL_ASM( -glabel func0f1666c8 -/* f1666c8: 3c0e800a */ lui $t6,%hi(var800a65e0) -/* f1666cc: 8dce65e0 */ lw $t6,%lo(var800a65e0)($t6) -/* f1666d0: 24820008 */ addiu $v0,$a0,0x8 -/* f1666d4: 3c0fb600 */ lui $t7,0xb600 -/* f1666d8: 15c00003 */ bnez $t6,.L0f1666e8 -/* f1666dc: 3c180001 */ lui $t8,0x1 -/* f1666e0: 03e00008 */ jr $ra -/* f1666e4: 00801025 */ or $v0,$a0,$zero -.L0f1666e8: -/* f1666e8: ac8f0000 */ sw $t7,0x0($a0) -/* f1666ec: ac980004 */ sw $t8,0x4($a0) -/* f1666f0: 03e00008 */ jr $ra -/* f1666f4: 00000000 */ nop -); +Gfx *gfxConsiderDisableFog(Gfx *gdl) +{ + if (!g_FogDisabled) { + return gdl; + } + + gSPClearGeometryMode(gdl++, G_FOG); + + return gdl; +} GLOBAL_ASM( glabel func0f1666f8 -/* f1666f8: 3c0e800a */ lui $t6,%hi(var800a65e0) -/* f1666fc: 8dce65e0 */ lw $t6,%lo(var800a65e0)($t6) +/* f1666f8: 3c0e800a */ lui $t6,%hi(g_FogDisabled) +/* f1666fc: 8dce65e0 */ lw $t6,%lo(g_FogDisabled)($t6) /* f166700: 27bdffd0 */ addiu $sp,$sp,-48 /* f166704: afbf0014 */ sw $ra,0x14($sp) /* f166708: 15c00003 */ bnez $t6,.L0f166718 @@ -1283,8 +1277,8 @@ glabel func0f1667e8 GLOBAL_ASM( glabel func0f1667f4 -/* f1667f4: 3c0e800a */ lui $t6,%hi(var800a65e0) -/* f1667f8: 8dce65e0 */ lw $t6,%lo(var800a65e0)($t6) +/* f1667f4: 3c0e800a */ lui $t6,%hi(g_FogDisabled) +/* f1667f8: 8dce65e0 */ lw $t6,%lo(g_FogDisabled)($t6) /* f1667fc: 55c00004 */ bnezl $t6,.L0f166810 /* f166800: 44801000 */ mtc1 $zero,$f2 /* f166804: 03e00008 */ jr $ra diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 679d11770..9e50692c5 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -15571,7 +15571,7 @@ u32 g_PortalDisableParentExec = 0; u32 var800a65d4 = 0; u32 var800a65d8 = 0; u32 var800a65dc = 0; -u32 var800a65e0 = 0; +u32 g_FogDisabled = 0; u32 var800a65e4 = 0; u32 var800a65e8 = 0; u32 var800a65ec = 0; diff --git a/src/include/game/game_165670.h b/src/include/game/game_165670.h index 9e56fd1d7..80998a909 100644 --- a/src/include/game/game_165670.h +++ b/src/include/game/game_165670.h @@ -14,7 +14,7 @@ u32 func0f165ee4(void); void func0f165eec(s32 stagenum, s32 arg1); void func0f1660a4(f32 arg0); Gfx *func0f1664a0(Gfx *gdl, u32 arg1); -Gfx *func0f1666c8(Gfx *gdl); +Gfx *gfxConsiderDisableFog(Gfx *gdl); u32 func0f1666f8(void); u32 func0f1667e8(void); u32 func0f1667f4(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 37a47b9a2..8bf568be7 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -722,6 +722,7 @@ extern u32 var800a65b8; extern struct screenbox var800a65c0; extern struct screenbox var800a65c8; extern u32 g_PortalDisableParentExec; +extern u32 g_FogDisabled; extern u32 var800a65f0; extern u32 var800a6600; extern u32 var800a6618;