diff --git a/src/game/game_176080.c b/src/game/game_176080.c index 9b4b5e3c8..fee42c215 100644 --- a/src/game/game_176080.c +++ b/src/game/game_176080.c @@ -17,7 +17,7 @@ u8 var800ab7c8[0x300]; u8 var800abac8[0x300]; u8 var800abdc8[0x300]; -void *var800844f0 = NULL; +u16 *var800844f0 = NULL; void *var800844f4 = NULL; void *func0f176080(void) diff --git a/src/game/sky.c b/src/game/sky.c index 1c846c055..f1612013e 100644 --- a/src/game/sky.c +++ b/src/game/sky.c @@ -7018,64 +7018,23 @@ glabel var7f1b5104 /* f125944: 27bd04d0 */ addiu $sp,$sp,0x4d0 ); -GLOBAL_ASM( -glabel sky0f125948 -/* f125948: 27bdffd8 */ addiu $sp,$sp,-40 -/* f12594c: afbf0014 */ sw $ra,0x14($sp) -/* f125950: afa40028 */ sw $a0,0x28($sp) -/* f125954: afa5002c */ sw $a1,0x2c($sp) -/* f125958: 0c002f40 */ jal viGetViewLeft -/* f12595c: afa60030 */ sw $a2,0x30($sp) -/* f125960: 0c002f44 */ jal viGetViewTop -/* f125964: afa20024 */ sw $v0,0x24($sp) -/* f125968: 0c002f22 */ jal viGetViewWidth -/* f12596c: afa20020 */ sw $v0,0x20($sp) -/* f125970: 0c002f26 */ jal viGetViewHeight -/* f125974: afa2001c */ sw $v0,0x1c($sp) -/* f125978: 8fa30024 */ lw $v1,0x24($sp) -/* f12597c: 8fa4002c */ lw $a0,0x2c($sp) -/* f125980: 8fae001c */ lw $t6,0x1c($sp) -/* f125984: 0083082a */ slt $at,$a0,$v1 -/* f125988: 14200020 */ bnez $at,.L0f125a0c -/* f12598c: 006e7821 */ addu $t7,$v1,$t6 -/* f125990: 008f082a */ slt $at,$a0,$t7 -/* f125994: 1020001d */ beqz $at,.L0f125a0c -/* f125998: 8fa30020 */ lw $v1,0x20($sp) -/* f12599c: 8fa50030 */ lw $a1,0x30($sp) -/* f1259a0: 0062c021 */ addu $t8,$v1,$v0 -/* f1259a4: 00a3082a */ slt $at,$a1,$v1 -/* f1259a8: 14200018 */ bnez $at,.L0f125a0c -/* f1259ac: 00b8082a */ slt $at,$a1,$t8 -/* f1259b0: 50200017 */ beqzl $at,.L0f125a10 -/* f1259b4: 8fbf0014 */ lw $ra,0x14($sp) -/* f1259b8: 0fc2d5f6 */ jal camGetScreenWidth -/* f1259bc: 00000000 */ nop -/* f1259c0: 4600010d */ trunc.w.s $f4,$f0 -/* f1259c4: 8fa90030 */ lw $t1,0x30($sp) -/* f1259c8: 8fab002c */ lw $t3,0x2c($sp) -/* f1259cc: 3c0e8008 */ lui $t6,%hi(var800844f0) -/* f1259d0: 44082000 */ mfc1 $t0,$f4 -/* f1259d4: 8dce44f0 */ lw $t6,%lo(var800844f0)($t6) -/* f1259d8: 8fa20028 */ lw $v0,0x28($sp) -/* f1259dc: 01090019 */ multu $t0,$t1 -/* f1259e0: 24080001 */ addiu $t0,$zero,0x1 -/* f1259e4: 00005012 */ mflo $t2 -/* f1259e8: 014b6021 */ addu $t4,$t2,$t3 -/* f1259ec: 000c6840 */ sll $t5,$t4,0x1 -/* f1259f0: 01ae7821 */ addu $t7,$t5,$t6 -/* f1259f4: ac4f0008 */ sw $t7,0x8($v0) -/* f1259f8: 8fb8002c */ lw $t8,0x2c($sp) -/* f1259fc: a458000e */ sh $t8,0xe($v0) -/* f125a00: 8fb90030 */ lw $t9,0x30($sp) -/* f125a04: a4480000 */ sh $t0,0x0($v0) -/* f125a08: a459000c */ sh $t9,0xc($v0) -.L0f125a0c: -/* f125a0c: 8fbf0014 */ lw $ra,0x14($sp) -.L0f125a10: -/* f125a10: 27bd0028 */ addiu $sp,$sp,0x28 -/* f125a14: 03e00008 */ jr $ra -/* f125a18: 00000000 */ nop -); +/** + * With this function stubbed, sun artifacts and glare do not render. + */ +void sky0f125948(struct bootbufferthingdeep *arg0, s32 x, s32 y) +{ + s32 viewleft = viGetViewLeft(); + s32 viewtop = viGetViewTop(); + s32 viewwidth = viGetViewWidth(); + s32 viewheight = viGetViewHeight(); + + if (x >= viewleft && x < viewleft + viewwidth && y >= viewtop && y < viewtop + viewheight) { + arg0->unk08 = &var800844f0[(s32)camGetScreenWidth() * y + x]; + arg0->unk0c.u16_2 = x; + arg0->unk0c.u16_1 = y; + arg0->unk00 = 1; + } +} f32 sky0f125a1c(struct bootbufferthingdeep *arg0) { diff --git a/src/include/data.h b/src/include/data.h index c2c8ba48b..287dda666 100644 --- a/src/include/data.h +++ b/src/include/data.h @@ -461,7 +461,7 @@ extern bool g_Jpn; extern s32 g_LanguageId; #endif extern struct surfacetype *g_SurfaceTypes[15]; -extern void *var800844f0; +extern u16 *var800844f0; extern f32 var800845d4; extern u32 var800845dc; extern struct menudialogdef g_2PMissionInventoryHMenuDialog; diff --git a/src/include/game/sky.h b/src/include/game/sky.h index f6754d536..6449574f5 100644 --- a/src/include/game/sky.h +++ b/src/include/game/sky.h @@ -21,7 +21,7 @@ u32 sky0f1228d0(void); u32 sky0f122ce8(void); u32 sky0f122d4c(void); u32 sky0f123fd4(void); -void sky0f125948(struct bootbufferthingdeep *arg0, s32 arg1, s32 arg2); +void sky0f125948(struct bootbufferthingdeep *arg0, s32 x, s32 y); f32 sky0f125a1c(struct bootbufferthingdeep *arg0); Gfx *skyRenderSuns(Gfx *gdl, bool xray); Gfx *sky0f126384(Gfx *gdl, f32 x, f32 y, f32 arg3, f32 orbsize, s32 arg5, f32 arg6);