diff --git a/src/game/bgbss.c b/src/game/bgbss.c index a28aecc5a..594e49a6d 100644 --- a/src/game/bgbss.c +++ b/src/game/bgbss.c @@ -95,4 +95,4 @@ u32 var800a65d8; u32 var800a65dc; u32 g_FogDisabled; u32 var800a65e4; -u32 var800a65e8; +struct coord *var800a65e8; diff --git a/src/game/game_1657c0.c b/src/game/game_1657c0.c index 228d9924c..279dea123 100644 --- a/src/game/game_1657c0.c +++ b/src/game/game_1657c0.c @@ -8,9 +8,7 @@ #include "data.h" #include "types.h" -u32 var800a65f0; -u32 var800a65f4; -u32 var800a65f8; +struct coord var800a65f0; u32 var800a65fc; u32 var800a6600; u32 var800a6604; @@ -39,28 +37,9 @@ u32 var800a665c; f32 var80081050 = MAXFLOAT; f32 var80081054 = 0; -u32 var80081058 = 0x00000384; -u32 var8008105c = 0x000003e8; -u32 var80081060 = 0x00000000; -u32 var80081064 = 0x00000000; -u32 var80081068 = 0x00000000; -u32 var8008106c = 0x00000000; -u32 var80081070 = 0x00000000; -u32 var80081074 = 0x00000000; -u32 var80081078 = 0x00000000; -u32 var8008107c = 0x00000000; -u32 var80081080 = 0x00000000; -u32 var80081084 = 0x00000000; -u32 var80081088 = 0x00000000; -u32 var8008108c = 0x00000000; -u32 var80081090 = 0x00000000; -u32 var80081094 = 0x00000000; -u32 var80081098 = 0x00000000; -u32 var8008109c = 0x00000000; -u32 var800810a0 = 0x00000000; -u32 var800810a4 = 0x00000000; -u32 var800810a8 = 0x00000000; -u32 var800810ac = 0x00000000; +struct var80081058 var80081058 = {900, 1000}; +u32 var800810a8 = 0; +u32 var800810ac = 0; // lensflare, r, g, b, x, y, z, texture size, orb size struct sun sun_00 = { 1, 0xff, 0xff, 0xff, -1000000, 200000, 50000, 20, 48 }; @@ -76,20 +55,20 @@ struct sun sun_airbase = { 1, 0xff, 0xd7, 0xf2, -1200000, 200000, 150000, 3 struct smallsky g_SmallSkies[] = { // |------ sky ------| |-------------- clouds --------------| |-------- water --------| // stage blend far 06 08 0a 0c 0e r g b e sun e 19 1a 1c r g b 20 22 23 e r g b 28 - { STAGE_CRASHSITE, 15, 10000, 0, 0, 0, 0x03e2, 0x03e8, 0x9b, 0x2d, 0x1e, 1, &sun_crashsite, 1, 0x00, 1500, 0x00, 0xfa, 0xfa, 0x00, 0x0000, 0xec, 0x78, 0, 0x00, 0x00, 0x00, 0x00 }, - { STAGE_PELAGIC, 15, 15000, 3333, 4444, 600, 0x03e3, 0x03e8, 0x2d, 0x3e, 0x60, 0, NULL, 1, 0x00, 5000, 0x00, 0xf0, 0xf0, 0xf0, 0x0000, 0xf8, 0x30, 0, 0x14, 0x21, 0x2b, 0x00 }, - { STAGE_VILLA, 15, 20000, 0, 0, 0, 0x03d5, 0x0417, 0x46, 0xa0, 0xff, 1, &sun_villa, 1, 0x00, 5000, 0x00, 0xff, 0xff, 0xff, 0x0000, 0xf8, 0xc6, 1, 0x00, 0xff, 0xff, 0x00 }, - { STAGE_PELAGIC + 900, 30, 15000, 3333, 4444, 600, 0x03e3, 0x03e8, 0x10, 0x30, 0x60, 0, NULL, 1, 0x00, 5000, 0x00, 0xff, 0xff, 0xff, 0x0000, 0xfc, 0x18, 0, 0x00, 0x00, 0x00, 0x00 }, - { STAGE_24, 2, 25000, 0, 0, 0, 0x03e4, 0x03e8, 0x00, 0x00, 0x00, 0, NULL, 1, 0x00, 10000, 0x00, 0xff, 0xff, 0xff, 0x0000, 0x00, 0x00, 1, 0x00, 0xff, 0xff, 0x07 }, - { STAGE_2B, 2, 2000, 2500, 3055, 750, 0x03bd, 0x03e8, 0x20, 0x10, 0x10, 0, NULL, 1, 0x00, 5000, 0x00, 0x3a, 0x11, 0x00, 0x0000, 0xfc, 0x18, 1, 0x00, 0xff, 0xff, 0x14 }, - { STAGE_2B + 900, 2, 8000, 6000, 8000, 800, 0x03df, 0x03e8, 0x20, 0x10, 0x10, 0, NULL, 1, 0x00, 5000, 0x00, 0x3a, 0x11, 0x00, 0x0000, 0xfc, 0x18, 1, 0x00, 0xff, 0xff, 0x00 }, - { 0x00ee, 10, 6000, 0, 0, 0, 0x03e4, 0x03e8, 0x18, 0x18, 0x18, 0, NULL, 1, 0x00, 10000, 0x00, 0x78, 0x78, 0x78, 0x0000, 0xfe, 0x0c, 0, 0x00, 0x00, 0x00, 0x00 }, - { 0x0152, 10, 6000, 0, 0, 0, 0x03e4, 0x03e8, 0x18, 0x18, 0x18, 0, NULL, 1, 0x00, 10000, 0x00, 0x78, 0x78, 0x78, 0x0000, 0xfe, 0x0c, 0, 0x00, 0x00, 0x00, 0x00 }, - { 0x01b6, 10, 6000, 0, 0, 0, 0x03e4, 0x03e8, 0x18, 0x18, 0x18, 0, NULL, 1, 0x00, 10000, 0x00, 0x78, 0x78, 0x78, 0x0000, 0xfe, 0x0c, 0, 0x00, 0x00, 0x00, 0x00 }, - { 0x00c8, 10, 7500, 0, 0, 0, 0x03e4, 0x03e8, 0x00, 0x00, 0x00, 0, NULL, 0, 0x00, 0, 0x00, 0x00, 0x00, 0x00, 0x0000, 0x00, 0x00, 0, 0x00, 0x00, 0x00, 0x00 }, - { 0x012c, 10, 6000, 0, 0, 0, 0x03e4, 0x03e8, 0x00, 0x00, 0x00, 0, NULL, 0, 0x00, 0, 0x00, 0x00, 0x00, 0x00, 0x0000, 0x00, 0x00, 0, 0x00, 0x00, 0x00, 0x00 }, - { 0x0190, 10, 5000, 0, 0, 0, 0x03e4, 0x03e8, 0x00, 0x00, 0x00, 0, NULL, 0, 0x00, 0, 0x00, 0x00, 0x00, 0x00, 0x0000, 0x00, 0x00, 0, 0x00, 0x00, 0x00, 0x00 }, - { 0x0000, 0, 0, 0, 0, 0, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0, NULL, 0, 0x00, 0, 0x00, 0x00, 0x00, 0x00, 0x0000, 0x00, 0x00, 0, 0x00, 0x00, 0x00, 0x00 }, + { STAGE_CRASHSITE, 15, 10000, 0, 0, 0, 0x03e2, 0x03e8, 0x9b, 0x2d, 0x1e, 1, &sun_crashsite, 1, 0x00, 1500, 0x00, 0xfa, 0xfa, 0x00, 0, 0, 0xec78, 0, 0x00, 0x00, 0x00, 0x00 }, + { STAGE_PELAGIC, 15, 15000, 3333, 4444, 600, 0x03e3, 0x03e8, 0x2d, 0x3e, 0x60, 0, NULL, 1, 0x00, 5000, 0x00, 0xf0, 0xf0, 0xf0, 0, 0, 0xf830, 0, 0x14, 0x21, 0x2b, 0x00 }, + { STAGE_VILLA, 15, 20000, 0, 0, 0, 0x03d5, 0x0417, 0x46, 0xa0, 0xff, 1, &sun_villa, 1, 0x00, 5000, 0x00, 0xff, 0xff, 0xff, 0, 0, 0xf8c6, 1, 0x00, 0xff, 0xff, 0x00 }, + { STAGE_PELAGIC + 900, 30, 15000, 3333, 4444, 600, 0x03e3, 0x03e8, 0x10, 0x30, 0x60, 0, NULL, 1, 0x00, 5000, 0x00, 0xff, 0xff, 0xff, 0, 0, 0xfc18, 0, 0x00, 0x00, 0x00, 0x00 }, + { STAGE_24, 2, 25000, 0, 0, 0, 0x03e4, 0x03e8, 0x00, 0x00, 0x00, 0, NULL, 1, 0x00, 10000, 0x00, 0xff, 0xff, 0xff, 0, 0, 0x0000, 1, 0x00, 0xff, 0xff, 0x07 }, + { STAGE_2B, 2, 2000, 2500, 3055, 750, 0x03bd, 0x03e8, 0x20, 0x10, 0x10, 0, NULL, 1, 0x00, 5000, 0x00, 0x3a, 0x11, 0x00, 0, 0, 0xfc18, 1, 0x00, 0xff, 0xff, 0x14 }, + { STAGE_2B + 900, 2, 8000, 6000, 8000, 800, 0x03df, 0x03e8, 0x20, 0x10, 0x10, 0, NULL, 1, 0x00, 5000, 0x00, 0x3a, 0x11, 0x00, 0, 0, 0xfc18, 1, 0x00, 0xff, 0xff, 0x00 }, + { 0x00ee, 10, 6000, 0, 0, 0, 0x03e4, 0x03e8, 0x18, 0x18, 0x18, 0, NULL, 1, 0x00, 10000, 0x00, 0x78, 0x78, 0x78, 0, 0, 0xfe0c, 0, 0x00, 0x00, 0x00, 0x00 }, + { 0x0152, 10, 6000, 0, 0, 0, 0x03e4, 0x03e8, 0x18, 0x18, 0x18, 0, NULL, 1, 0x00, 10000, 0x00, 0x78, 0x78, 0x78, 0, 0, 0xfe0c, 0, 0x00, 0x00, 0x00, 0x00 }, + { 0x01b6, 10, 6000, 0, 0, 0, 0x03e4, 0x03e8, 0x18, 0x18, 0x18, 0, NULL, 1, 0x00, 10000, 0x00, 0x78, 0x78, 0x78, 0, 0, 0xfe0c, 0, 0x00, 0x00, 0x00, 0x00 }, + { 0x00c8, 10, 7500, 0, 0, 0, 0x03e4, 0x03e8, 0x00, 0x00, 0x00, 0, NULL, 0, 0x00, 0, 0x00, 0x00, 0x00, 0x00, 0, 0, 0x0000, 0, 0x00, 0x00, 0x00, 0x00 }, + { 0x012c, 10, 6000, 0, 0, 0, 0x03e4, 0x03e8, 0x00, 0x00, 0x00, 0, NULL, 0, 0x00, 0, 0x00, 0x00, 0x00, 0x00, 0, 0, 0x0000, 0, 0x00, 0x00, 0x00, 0x00 }, + { 0x0190, 10, 5000, 0, 0, 0, 0x03e4, 0x03e8, 0x00, 0x00, 0x00, 0, NULL, 0, 0x00, 0, 0x00, 0x00, 0x00, 0x00, 0, 0, 0x0000, 0, 0x00, 0x00, 0x00, 0x00 }, + { 0x0000, 0, 0, 0, 0, 0, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0, NULL, 0, 0x00, 0, 0x00, 0x00, 0x00, 0x00, 0, 0, 0x0000, 0, 0x00, 0x00, 0x00, 0x00 }, }; struct sky g_Skies[] = { @@ -292,197 +271,48 @@ glabel var7f1b76e4 /* f165988: 00000000 */ nop ); -GLOBAL_ASM( -glabel func0f16598c -/* f16598c: 240e0001 */ addiu $t6,$zero,0x1 -/* 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) -/* f1659a4: ac2065e4 */ sw $zero,%lo(var800a65e4)($at) -/* f1659a8: 84980004 */ lh $t8,0x4($a0) -/* f1659ac: 848f0002 */ lh $t7,0x2($a0) -/* f1659b0: afa40018 */ sw $a0,0x18($sp) -/* f1659b4: 44983000 */ mtc1 $t8,$f6 -/* f1659b8: 448f2000 */ mtc1 $t7,$f4 -/* f1659bc: 468033a0 */ cvt.s.w $f14,$f6 -/* f1659c0: 0c002fa1 */ jal viSetZRange -/* f1659c4: 46802320 */ cvt.s.w $f12,$f4 -/* f1659c8: 8fa40018 */ lw $a0,0x18($sp) -/* f1659cc: 3c028008 */ lui $v0,%hi(var80081058) -/* f1659d0: 24421058 */ addiu $v0,$v0,%lo(var80081058) -/* f1659d4: 8499000c */ lh $t9,0xc($a0) -/* f1659d8: 3c01437f */ lui $at,0x437f -/* f1659dc: 44810000 */ mtc1 $at,$f0 -/* f1659e0: ac590000 */ sw $t9,0x0($v0) -/* f1659e4: 8488000e */ lh $t0,0xe($a0) -/* f1659e8: ac480004 */ sw $t0,0x4($v0) -/* f1659ec: 90890010 */ lbu $t1,0x10($a0) -/* f1659f0: a0490008 */ sb $t1,0x8($v0) -/* f1659f4: 908a0011 */ lbu $t2,0x11($a0) -/* f1659f8: 312c00ff */ andi $t4,$t1,0xff -/* f1659fc: 448c4000 */ mtc1 $t4,$f8 -/* f165a00: a04a0009 */ sb $t2,0x9($v0) -/* f165a04: 908b0012 */ lbu $t3,0x12($a0) -/* f165a08: 468042a0 */ cvt.s.w $f10,$f8 -/* f165a0c: 05810005 */ bgez $t4,.L0f165a24 -/* f165a10: a04b000a */ sb $t3,0xa($v0) -/* f165a14: 3c014f80 */ lui $at,0x4f80 -/* f165a18: 44818000 */ mtc1 $at,$f16 -/* f165a1c: 00000000 */ nop -/* f165a20: 46105280 */ add.s $f10,$f10,$f16 -.L0f165a24: -/* f165a24: 46005483 */ div.s $f18,$f10,$f0 -/* f165a28: 904d0009 */ lbu $t5,0x9($v0) -/* f165a2c: 448d2000 */ mtc1 $t5,$f4 -/* f165a30: 00000000 */ nop -/* f165a34: 468021a0 */ cvt.s.w $f6,$f4 -/* f165a38: 05a10005 */ bgez $t5,.L0f165a50 -/* f165a3c: e4520044 */ swc1 $f18,0x44($v0) -/* f165a40: 3c014f80 */ lui $at,0x4f80 -/* f165a44: 44814000 */ mtc1 $at,$f8 -/* f165a48: 00000000 */ nop -/* f165a4c: 46083180 */ add.s $f6,$f6,$f8 -.L0f165a50: -/* f165a50: 46003403 */ div.s $f16,$f6,$f0 -/* f165a54: 904e000a */ lbu $t6,0xa($v0) -/* f165a58: 3c014f80 */ lui $at,0x4f80 -/* f165a5c: 448e5000 */ mtc1 $t6,$f10 -/* f165a60: 00000000 */ nop -/* f165a64: 468054a0 */ cvt.s.w $f18,$f10 -/* f165a68: 05c10004 */ bgez $t6,.L0f165a7c -/* f165a6c: e4500048 */ swc1 $f16,0x48($v0) -/* f165a70: 44812000 */ mtc1 $at,$f4 -/* f165a74: 00000000 */ nop -/* f165a78: 46049480 */ add.s $f18,$f18,$f4 -.L0f165a7c: -/* f165a7c: 46009203 */ div.s $f8,$f18,$f0 -/* f165a80: 3c014f80 */ lui $at,0x4f80 -/* f165a84: e448004c */ swc1 $f8,0x4c($v0) -/* f165a88: 908f0013 */ lbu $t7,0x13($a0) -/* f165a8c: a04f000b */ sb $t7,0xb($v0) -/* f165a90: 8c980014 */ lw $t8,0x14($a0) -/* f165a94: ac58000c */ sw $t8,0xc($v0) -/* f165a98: 90990018 */ lbu $t9,0x18($a0) -/* f165a9c: a0590010 */ sb $t9,0x10($v0) -/* f165aa0: 8488001a */ lh $t0,0x1a($a0) -/* f165aa4: 44883000 */ mtc1 $t0,$f6 -/* f165aa8: 00000000 */ nop -/* f165aac: 46803420 */ cvt.s.w $f16,$f6 -/* f165ab0: e4500014 */ swc1 $f16,0x14($v0) -/* f165ab4: 9089001c */ lbu $t1,0x1c($a0) -/* f165ab8: a4490018 */ sh $t1,0x18($v0) -/* f165abc: 908a001d */ lbu $t2,0x1d($a0) -/* f165ac0: 448a5000 */ mtc1 $t2,$f10 -/* f165ac4: 05410004 */ bgez $t2,.L0f165ad8 -/* f165ac8: 46805120 */ cvt.s.w $f4,$f10 -/* f165acc: 44819000 */ mtc1 $at,$f18 -/* f165ad0: 00000000 */ nop -/* f165ad4: 46122100 */ add.s $f4,$f4,$f18 -.L0f165ad8: -/* f165ad8: e444001c */ swc1 $f4,0x1c($v0) -/* f165adc: 908b001e */ lbu $t3,0x1e($a0) -/* f165ae0: 3c014f80 */ lui $at,0x4f80 -/* f165ae4: 448b4000 */ mtc1 $t3,$f8 -/* f165ae8: 05610004 */ bgez $t3,.L0f165afc -/* f165aec: 468041a0 */ cvt.s.w $f6,$f8 -/* f165af0: 44818000 */ mtc1 $at,$f16 -/* f165af4: 00000000 */ nop -/* f165af8: 46103180 */ add.s $f6,$f6,$f16 -.L0f165afc: -/* f165afc: e4460020 */ swc1 $f6,0x20($v0) -/* f165b00: 908c001f */ lbu $t4,0x1f($a0) -/* f165b04: 3c014f80 */ lui $at,0x4f80 -/* f165b08: 448c5000 */ mtc1 $t4,$f10 -/* f165b0c: 05810004 */ bgez $t4,.L0f165b20 -/* f165b10: 468054a0 */ cvt.s.w $f18,$f10 -/* f165b14: 44812000 */ mtc1 $at,$f4 -/* f165b18: 00000000 */ nop -/* f165b1c: 46049480 */ add.s $f18,$f18,$f4 -.L0f165b20: -/* f165b20: e4520024 */ swc1 $f18,0x24($v0) -/* f165b24: 908d0020 */ lbu $t5,0x20($a0) -/* f165b28: 3c014f80 */ lui $at,0x4f80 -/* f165b2c: a04d0028 */ sb $t5,0x28($v0) -/* f165b30: 848e0022 */ lh $t6,0x22($a0) -/* f165b34: 448e4000 */ mtc1 $t6,$f8 -/* f165b38: 00000000 */ nop -/* f165b3c: 46804420 */ cvt.s.w $f16,$f8 -/* f165b40: e450002c */ swc1 $f16,0x2c($v0) -/* f165b44: 908f0024 */ lbu $t7,0x24($a0) -/* f165b48: a44f0030 */ sh $t7,0x30($v0) -/* f165b4c: 90980025 */ lbu $t8,0x25($a0) -/* f165b50: 44983000 */ mtc1 $t8,$f6 -/* f165b54: 07010004 */ bgez $t8,.L0f165b68 -/* f165b58: 468032a0 */ cvt.s.w $f10,$f6 -/* f165b5c: 44812000 */ mtc1 $at,$f4 -/* f165b60: 00000000 */ nop -/* f165b64: 46045280 */ add.s $f10,$f10,$f4 -.L0f165b68: -/* f165b68: e44a0034 */ swc1 $f10,0x34($v0) -/* f165b6c: 90990026 */ lbu $t9,0x26($a0) -/* f165b70: 3c014f80 */ lui $at,0x4f80 -/* f165b74: 44999000 */ mtc1 $t9,$f18 -/* f165b78: 07210004 */ bgez $t9,.L0f165b8c -/* f165b7c: 46809220 */ cvt.s.w $f8,$f18 -/* f165b80: 44818000 */ mtc1 $at,$f16 -/* f165b84: 00000000 */ nop -/* f165b88: 46104200 */ add.s $f8,$f8,$f16 -.L0f165b8c: -/* f165b8c: e4480038 */ swc1 $f8,0x38($v0) -/* f165b90: 90880027 */ lbu $t0,0x27($a0) -/* f165b94: 3c014f80 */ lui $at,0x4f80 -/* f165b98: 44883000 */ mtc1 $t0,$f6 -/* f165b9c: 05010004 */ bgez $t0,.L0f165bb0 -/* f165ba0: 46803120 */ cvt.s.w $f4,$f6 -/* f165ba4: 44815000 */ mtc1 $at,$f10 -/* f165ba8: 00000000 */ nop -/* f165bac: 460a2100 */ add.s $f4,$f4,$f10 -.L0f165bb0: -/* f165bb0: e444003c */ swc1 $f4,0x3c($v0) -/* f165bb4: 90890028 */ lbu $t1,0x28($a0) -/* f165bb8: 3c014f80 */ lui $at,0x4f80 -/* f165bbc: 44899000 */ mtc1 $t1,$f18 -/* f165bc0: 05210004 */ bgez $t1,.L0f165bd4 -/* f165bc4: 46809420 */ cvt.s.w $f16,$f18 -/* f165bc8: 44814000 */ mtc1 $at,$f8 -/* f165bcc: 00000000 */ nop -/* f165bd0: 46088400 */ add.s $f16,$f16,$f8 -.L0f165bd4: -/* f165bd4: e4500040 */ swc1 $f16,0x40($v0) -/* f165bd8: 84830006 */ lh $v1,0x6($a0) -/* f165bdc: 3c01800a */ lui $at,%hi(var800a65e8) -/* f165be0: 54600004 */ bnezl $v1,.L0f165bf4 -/* f165be4: 44833000 */ mtc1 $v1,$f6 -/* f165be8: 10000012 */ b .L0f165c34 -/* f165bec: ac2065e8 */ sw $zero,%lo(var800a65e8)($at) -/* f165bf0: 44833000 */ mtc1 $v1,$f6 -.L0f165bf4: -/* f165bf4: 3c02800a */ lui $v0,%hi(var800a65f0) -/* f165bf8: 244265f0 */ addiu $v0,$v0,%lo(var800a65f0) -/* f165bfc: 468032a0 */ cvt.s.w $f10,$f6 -/* f165c00: 3c01800a */ lui $at,%hi(var800a65e8) -/* f165c04: e44a0000 */ swc1 $f10,0x0($v0) -/* f165c08: 848a0008 */ lh $t2,0x8($a0) -/* f165c0c: 448a2000 */ mtc1 $t2,$f4 -/* f165c10: 00000000 */ nop -/* f165c14: 468024a0 */ cvt.s.w $f18,$f4 -/* f165c18: e4520004 */ swc1 $f18,0x4($v0) -/* f165c1c: 848b000a */ lh $t3,0xa($a0) -/* f165c20: 448b4000 */ mtc1 $t3,$f8 -/* f165c24: 00000000 */ nop -/* f165c28: 46804420 */ cvt.s.w $f16,$f8 -/* f165c2c: e4500008 */ swc1 $f16,0x8($v0) -/* f165c30: ac2265e8 */ sw $v0,%lo(var800a65e8)($at) -.L0f165c34: -/* f165c34: 0fc595fe */ jal func0f1657f8 -/* f165c38: 00000000 */ nop -/* f165c3c: 8fbf0014 */ lw $ra,0x14($sp) -/* f165c40: 27bd0018 */ addiu $sp,$sp,0x18 -/* f165c44: 03e00008 */ jr $ra -/* f165c48: 00000000 */ nop -); +void func0f16598c(struct smallsky *sky) +{ + g_FogDisabled = true; + var800a65e4 = 0; + + viSetZRange(sky->blend_multiplier, sky->sky_far); + + var80081058.unk00 = sky->unk0c; + var80081058.unk04 = sky->unk0e; + var80081058.sky_r = sky->sky_r; + var80081058.sky_g = sky->sky_g; + var80081058.sky_b = sky->sky_b; + var80081058.unk44 = var80081058.sky_r / 255.0f; + var80081058.unk48 = var80081058.sky_g / 255.0f; + var80081058.unk4c = var80081058.sky_b / 255.0f; + var80081058.sky_enabled = sky->sky_enabled; + var80081058.sun = sky->sun; + var80081058.clouds_enabled = sky->clouds_enabled; + var80081058.unk14 = sky->unk1a; + var80081058.unk18 = sky->unk1c; + var80081058.clouds_r = sky->clouds_r; + var80081058.clouds_g = sky->clouds_g; + var80081058.clouds_b = sky->clouds_b; + var80081058.unk28 = sky->unk20; + var80081058.unk2c = sky->unk22; + var80081058.water_enabled = sky->water_enabled; + var80081058.water_r = sky->water_r; + var80081058.water_g = sky->water_g; + var80081058.water_b = sky->water_b; + var80081058.unk40 = sky->unk28; + + if (!sky->unk06) { + var800a65e8 = NULL; + } else { + var800a65f0.x = (f32)sky->unk06; + var800a65f0.y = (f32)sky->unk08; + var800a65f0.z = (f32)sky->unk0a; + var800a65e8 = &var800a65f0; + } + + func0f1657f8(); +} GLOBAL_ASM( glabel func0f165c4c diff --git a/src/include/bss.h b/src/include/bss.h index 83cc6e598..c458df5a3 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -247,7 +247,7 @@ extern struct screenbox var800a65c8; extern u32 g_PortalDisableParentExec; extern u32 g_FogDisabled; extern u32 var800a65e4; -extern u32 var800a65e8; +extern struct coord *var800a65e8; extern u8 *var800a6660; extern s16 *var800a6664; extern s16 *var800a6668; diff --git a/src/include/types.h b/src/include/types.h index d2700ed81..6b3511a22 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -3249,6 +3249,32 @@ struct mission { u16 name; }; +struct var80081058 { + /*0x00*/ u32 unk00; + /*0x04*/ u32 unk04; + /*0x08*/ u8 sky_r; + /*0x09*/ u8 sky_g; + /*0x0a*/ u8 sky_b; + /*0x0b*/ u8 sky_enabled; + /*0x0c*/ struct sun *sun; + /*0x10*/ u8 clouds_enabled; + /*0x14*/ f32 unk14; + /*0x18*/ u16 unk18; + /*0x1c*/ f32 clouds_r; + /*0x20*/ f32 clouds_g; + /*0x24*/ f32 clouds_b; + /*0x28*/ u8 unk28; + /*0x2c*/ f32 unk2c; + /*0x30*/ u16 water_enabled; + /*0x34*/ f32 water_r; + /*0x38*/ f32 water_g; + /*0x3c*/ f32 water_b; + /*0x40*/ f32 unk40; + /*0x44*/ f32 unk44; + /*0x48*/ f32 unk48; + /*0x4c*/ f32 unk4c; +}; + struct sun { u8 lens_flare; u8 red; @@ -3262,35 +3288,34 @@ struct sun { }; struct smallsky { - // len 0x2c - s16 stage; - u16 blend_multiplier; - u16 sky_far; - u16 unk06; - u16 unk08; - u16 unk0a; - u16 unk0c; - u16 unk0e; - u8 sky_r; - u8 sky_g; - u8 sky_b; - u8 sky_enabled; - struct sun *sun; - u8 clouds_enabled; - u8 unk19; // pad - u16 unk1a; - u8 unk1c; - u8 clouds_r; - u8 clouds_g; - u8 clouds_b; - u16 unk20; - u8 unk22; - u8 unk23; - u8 water_enabled; - u8 water_r; - u8 water_g; - u8 water_b; - u8 unk28; + /*0x00*/ s16 stage; + /*0x02*/ s16 blend_multiplier; + /*0x04*/ s16 sky_far; + /*0x06*/ s16 unk06; + /*0x08*/ s16 unk08; + /*0x0a*/ s16 unk0a; + /*0x0c*/ s16 unk0c; + /*0x0e*/ s16 unk0e; + /*0x10*/ u8 sky_r; + /*0x11*/ u8 sky_g; + /*0x12*/ u8 sky_b; + /*0x13*/ u8 sky_enabled; + /*0x14*/ struct sun *sun; + /*0x18*/ u8 clouds_enabled; + /*0x19*/ u8 unk19; // pad + /*0x1a*/ s16 unk1a; + /*0x1c*/ u8 unk1c; + /*0x1d*/ u8 clouds_r; + /*0x1e*/ u8 clouds_g; + /*0x1f*/ u8 clouds_b; + /*0x20*/ u8 unk20; + /*0x21*/ u8 unk21; + /*0x22*/ s16 unk22; + /*0x24*/ u8 water_enabled; + /*0x25*/ u8 water_r; + /*0x26*/ u8 water_g; + /*0x27*/ u8 water_b; + /*0x28*/ u8 unk28; }; struct sky {