diff --git a/src/game/bg.c b/src/game/bg.c index 9f0f02f2f..2c87abefa 100644 --- a/src/game/bg.c +++ b/src/game/bg.c @@ -56,7 +56,6 @@ s32 g_NumActiveRooms; u16 g_BgUnloadDelay240; u16 g_BgUnloadDelay240_2; u32 var800a4bf4; -s16 g_GlareRooms[100]; u32 *g_BgPrimaryData2; struct bgroom *g_BgRooms; struct bgportal *g_BgPortals; @@ -81,7 +80,6 @@ u32 var80082474nb = 0; s16 var8007fc0c = 0; s16 var8007fc10 = 0; -s32 g_NumRoomsWithGlares = 0; u32 var8007fc18 = 0x01000100; u32 var8007fc1c = 0x00000000; s32 g_CamRoom = 0x00000001; @@ -1350,8 +1348,6 @@ Gfx *bgRenderSceneInXray(Gfx *gdl) } } - gdl = skyRenderSuns(gdl, true); - return gdl; } @@ -1372,8 +1368,6 @@ Gfx *bgRenderScene(Gfx *gdl) s16 roomorder[60]; s16 roomnums[60]; - g_NumRoomsWithGlares = 0; - if (g_Vars.currentplayer->visionmode == VISIONMODE_XRAY) { gdl = bgRenderSceneInXray(gdl); return gdl; @@ -1409,8 +1403,6 @@ Gfx *bgRenderScene(Gfx *gdl) gdl = currentPlayerScissorToViewport(gdl); - gdl = skyRenderSuns(gdl, false); - // Build an array of room numbers per onscreen prop. // For each onscreen prop there is exactly one entry in the roomnumsbyprop array. roomnumptr = roomnumsbyprop; \ @@ -1531,14 +1523,6 @@ Gfx *bgRenderScene(Gfx *gdl) gdl = propsRender(gdl, thing->roomnum, RENDERPASS_XLU, roomnumsbyprop); } - - if (!g_Vars.mplayerisrunning) { - artifactsCalculateGlaresForRoom(thing->roomnum); - - if (g_NumRoomsWithGlares < 100) { - g_GlareRooms[g_NumRoomsWithGlares++] = thing->roomnum; - } - } } return gdl; @@ -2257,25 +2241,6 @@ glabel bgRenderScene ); #endif -Gfx *bgRenderArtifacts(Gfx *gdl) -{ - s32 i; - - if (g_Vars.mplayerisrunning == false && g_NumRoomsWithGlares > 0) { - gdl = artifactsConfigureForGlares(gdl); - - for (i = 0; i < g_NumRoomsWithGlares; i++) { - gdl = artifactsRenderGlaresForRoom(gdl, g_GlareRooms[i]); - } - - gdl = artifactsUnconfigureForGlares(gdl); - } - - gdl = skyRenderArtifacts(gdl); - - return gdl; -} - void bgLoadFile(void *memaddr, u32 offset, u32 len) { if (var8007fc04) { diff --git a/src/game/game_13c510.c b/src/game/game_13c510.c index 13c377b2f..27cc23ab2 100644 --- a/src/game/game_13c510.c +++ b/src/game/game_13c510.c @@ -22,22 +22,6 @@ u32 var800a41a4; u32 var800a41a8; u32 var800a41ac; -void artifactsClear(void) -{ - struct artifact *artifacts = schedGetWriteArtifacts(); - s32 i; - - for (i = 0; i < MAX_ARTIFACTS; i++) { - artifacts[i].type = ARTIFACTTYPE_FREE; - } -} - -void artifactsTick(void) -{ - schedIncrementWriteArtifacts(); - schedIncrementFrontArtifacts(); -} - u16 func0f13c574(f32 arg0) { u32 value = arg0 * 8.0f; @@ -96,248 +80,6 @@ s32 func0f13c710(f32 arg0) return arg0; } -void artifactsCalculateGlaresForRoom(s32 roomnum) -{ - s32 i; - s32 j; - s32 k; - s32 l; - f32 f0; - s32 numlights; - f32 viewwidth; - f32 viewheight; - f32 viewleft; - f32 viewtop; - u8 *s1; - f32 x; - f32 y; - f32 f16; - f32 f20; - s32 xi; - s32 yi; - f32 sp190; - f32 brightnessfrac; - f32 thisfrac; - f32 tmp; - f32 tmp2; - f32 tmp3; - f32 sp178; - Mtxf sp138; - Mtxf spf8; - struct coord spec; - f32 spdc[4]; - struct coord origin; - struct coord spc4; - struct light *roomlights; - s32 index; - struct artifact *artifacts = schedGetWriteArtifacts(); - struct coord *campos = &g_Vars.currentplayer->cam_pos; - struct artifact *artifact; - - if (g_Rooms[roomnum].gfxdata != NULL && g_Rooms[roomnum].loaded240) { - numlights = g_Rooms[roomnum].gfxdata->numlights; - - if (numlights != 0) { - roomlights = (struct light *)&g_BgLightsFileData[g_Rooms[roomnum].gfxdata->lightsindex * 0x22]; - s1 = &var800a41a0[g_Rooms[roomnum].gfxdata->lightsindex * 3]; - - room0f166a6c(&sp138, roomnum); - mtx00015f88(currentPlayerGetScaleBg2Gfx(), &sp138); - mtx4MultMtx4(camGetMtxF006c(), &sp138, &spf8); - - viewwidth = viGetViewWidth(); - viewheight = viGetViewHeight(); - viewleft = viGetViewLeft(); - viewtop = viGetViewTop(); - - for (i = 0; i < numlights; i++) { - origin.x = 0.0f; - origin.y = 0.0f; - origin.z = 0.0f; - - for (j = 0; j < 4; j++) { - origin.x += roomlights[i].bbox[j].x; - origin.y += roomlights[i].bbox[j].y; - origin.z += roomlights[i].bbox[j].z; - } - - origin.x /= 4.0f; - origin.y /= 4.0f; - origin.z /= 4.0f; - - for (j = 0; j != 3; j++) { - spc4.f[j] = origin.f[j] - (campos->f[j] - g_BgRooms[roomnum].pos.f[j]); - } - - s1[i * 3 + 1] = 0; - s1[i * 3 + 2] = 0; - - tmp = roomlights[i].unk07 * roomlights[i].unk07 + roomlights[i].unk08 * roomlights[i].unk08 + roomlights[i].unk09 * roomlights[i].unk09; - f16 = spc4.f[0] * spc4.f[0] + spc4.f[1] * spc4.f[1] + spc4.f[2] * spc4.f[2]; - - if (tmp > 0.0001f && f16 > 0.0001f) { - sp190 = -((roomlights[i].unk07 * spc4.f[0] + roomlights[i].unk08 * spc4.f[1] + roomlights[i].unk09 * spc4.f[2]) / sqrtf(tmp * f16)); - - if (sp190 > 0.4f) { - sp190 = 0.4f; - } - - sp190 *= 2.5f; - } else { - sp190 = 0.0f; - } - - if (sp190 > 0.0f) { - for (l = 3; l >= 0; l--) { - spdc[l] = origin.f[0] * spf8.m[0][l] + origin.f[1] * spf8.m[1][l] + origin.f[2] * spf8.m[2][l] + spf8.m[3][l]; - - if (l == 3 && spdc[l] <= 0.0f) { - break; - } - } - - if (spdc[3] > 0.0001f) { - f20 = 1.0f / spdc[3]; - x = func0f13c710(viewleft + (1.0f + spdc[0] * f20) * (viewwidth * 0.5f)); - y = func0f13c710(viewtop + (1.0f - spdc[1] * f20) * (viewheight * 0.5f)); - f0 = (spdc[2] * f20 * 511.0f + 511.0f) * 32.0f; - - if (f0 < 32576.0f) { - brightnessfrac = 1.0f; - tmp2 = (brightnessfrac - 1.00f); - - if (x <= 10.0f + viewleft) { - brightnessfrac = 0.0f; - } else if (y <= 30.0f + viewtop) { - brightnessfrac = 0.0f; - } else if (x >= -10.0f + viewleft + viewwidth) { - brightnessfrac = 0.0f; - } else if (y >= -30.0f + viewtop + viewheight) { - brightnessfrac = 0.0f; - } - - sp178 = 1.0f - 2.0f * tmp2; - - if (brightnessfrac != 0.0f) { - brightnessfrac = 1.0f; - - if (x < viewleft + 90.0f) { - thisfrac = (x - (10.0f + viewleft)) / 80.0f; - - if (thisfrac < brightnessfrac) { - brightnessfrac = thisfrac; - } - } - - if (y < viewtop + 100.0f) { - thisfrac = (y - (viewtop + 30.0f)) / 70.0f; - - if (thisfrac < brightnessfrac) { - brightnessfrac = thisfrac; - } - } - - if (x > viewleft + viewwidth - 90.0f) { - thisfrac = (viewleft + viewwidth - 10.0f - x) / 80.0f; - - if (thisfrac < brightnessfrac) { - brightnessfrac = thisfrac; - } - } - - if (y > viewtop + viewheight - 100.0f) { - thisfrac = (viewtop + viewheight - 30.0f - y) / 70.0f; - - if (thisfrac < brightnessfrac) { - brightnessfrac = thisfrac; - } - } - } - - tmp3 = 32300.0f - f0; - - if (tmp3 < 0.0f) { - tmp3 = 0.0f; - } - - if (tmp3 > 1300.0f) { - tmp3 = 1300.0f; - } - - tmp3 *= 1.0f / 1300.0f; - - if (2.0f * tmp2 > 1.0f) { - sp178 = 0.0f; - } - - s1[i * 3 + 1] = sp190 * 255.0f * sp178; - s1[i * 3 + 2] = brightnessfrac * tmp3 * sp190 * 64.0f * 1; - } - } - } - - if (s1[i * 3 + 1] > 0) { - for (j = 0; j < 4; j++) { - spec.x = origin.x + (roomlights[i].bbox[j].x - origin.x) * 0.6f; - spec.y = origin.y + (roomlights[i].bbox[j].y - origin.y) * 0.6f; - spec.z = origin.z + (roomlights[i].bbox[j].z - origin.z) * 0.6f; - - for (k = 3; k >= 0; k--) { - spdc[k] = spec.f[0] * spf8.m[0][k] + spec.f[1] * spf8.m[1][k] + spec.f[2] * spf8.m[2][k] + spf8.m[3][k]; - - if (k == 3 && spdc[k] <= 0.0f) { - break; - } - } - - if (spdc[3] > 0.0f) { - f20 = 1.0f / spdc[3]; - - if (f20 > 9999.0f) { - f20 = 9999.0f; - } - - if (f20 < -9999.0f) { - f20 = -9999.0f; - } - - xi = func0f13c710(viewleft + (1.0f + spdc[0] * f20) * (viewwidth * 0.5f)); - yi = func0f13c710(viewtop + (1.0f - spdc[1] * f20) * (viewheight * 0.5f)); - f0 = (spdc[2] * f20 * 511.0f + 511.0f) * 32.0f; - - if (var800844f0 - && xi >= (s32)viewleft - && xi < (s32)(viewleft + viewwidth) - && yi >= (s32)viewtop - && yi < (s32)(viewtop + viewheight) - && f0 < 32576.0f) { - index = envGetCurrent()->numsuns; - index *= 8; - artifact = artifacts; - artifact += index; - - while (artifact->type != ARTIFACTTYPE_FREE) { - index++; - artifact++; - } - - if (index < MAX_ARTIFACTS) { - artifact->unk04 = func0f13c574(f0) >> 2; - artifact->unk08 = &var800844f0[viGetWidth() * yi + xi]; - artifact->light = &roomlights[i]; - artifact->type = ARTIFACTTYPE_GLARE; - artifact->unk0c.u16_2 = xi; - artifact->unk0c.u16_1 = yi; - } - } - } - } - } - } - } - } -} - u8 func0f13d3c4(u8 arg0, u8 arg1) { if (arg1 >= arg0 + 7) { @@ -350,239 +92,3 @@ u8 func0f13d3c4(u8 arg0, u8 arg1) return arg1; } - -Gfx *artifactsConfigureForGlares(Gfx *gdl) -{ - struct stagetableentry *stage = stageGetCurrent(); - - texSelect(&gdl, &g_TexLightGlareConfigs[stage->light_type], 4, 0, 2, 1, NULL); - - gDPSetCycleType(gdl++, G_CYC_1CYCLE); - gDPSetRenderMode(gdl++, G_RM_CLD_SURF, G_RM_CLD_SURF2); - gDPSetTextureFilter(gdl++, G_TF_BILERP); - gDPSetCombineLERP(gdl++, - 0, 0, 0, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0, - 0, 0, 0, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0); - gDPSetColorDither(gdl++, G_CD_BAYER); - gDPSetAlphaDither(gdl++, G_AD_PATTERN); - gDPSetTexturePersp(gdl++, G_TP_NONE); - - return gdl; -} - -Gfx *artifactsUnconfigureForGlares(Gfx *gdl) -{ - gDPSetTexturePersp(gdl++, G_TP_PERSP); - - return gdl; -} - -Gfx *artifactsRenderGlaresForRoom(Gfx *gdl, s32 roomnum) -{ - s32 i; - s32 j; - s32 lightindex; - struct artifact *artifacts; - u16 min; - u16 max; - f32 f30; - s32 t2; - struct light *light; - u8 *s3; - s32 k; - s32 count; - u16 t4; - f32 add; - s32 l; - f32 brightness; - s32 avg; - f32 f0; - s32 v1; - s32 r; - s32 g; - s32 b; - s32 stack; - u8 colour[4]; - s16 lightroompos[3]; - struct coord lightworldpos; - struct coord lightscreenpos; - f32 spdc[2]; - f32 spd4[2]; - f32 f24; - bool extra; - f32 f26; - - artifacts = schedGetFrontArtifacts(); - f30 = roomGetUnk5c(roomnum); - - if (g_Rooms[roomnum].gfxdata == NULL || g_Rooms[roomnum].loaded240 == 0) { - return gdl; - } - - for (i = envGetCurrent()->numsuns * 8; i < MAX_ARTIFACTS; i++) { - struct light *light2 = artifacts[i].light; - count = 0; - - for (j = i; j < MAX_ARTIFACTS && artifacts[j].type == ARTIFACTTYPE_GLARE && artifacts[j].light == light2; j++) { - count++; - } - - light = artifacts[i].light; - - if (count > 0) { - if (roomnum == light->roomnum) { - lightindex = ((u32)light - (u32)g_BgLightsFileData) / sizeof(struct light); - s3 = &var800a41a0[lightindex * 3]; - t2 = 0; - min = 0xffff; - max = 0; - - for (k = i; k < i + count; k++) { - if (artifacts[k].unk04 > max) { - max = artifacts[k].unk04; - } - - if (artifacts[k].unk04 < min) { - min = artifacts[k].unk04; - } - } - - avg = (max - min) >> 1; - - if (avg < 25) { - avg = 25; - } - - for (k = i; k < i + count; k++) { - u16 tmp; - t4 = (artifacts[k].unk02 & 0xfffc) >> 2; - tmp = artifacts[k].unk04; - - if (tmp < t4) { - v1 = t4 - tmp; - } else { - v1 = tmp - t4; - } - - if (avg >= v1) { - t2++; - } - - artifacts[k].type = ARTIFACTTYPE_FREE; - } - - s3[0] = func0f13d3c4(s3[0], t2 * 2); - - if (t2 > 0) { - brightness = viGetFovY() * 0.017453292f; - add = cosf(brightness) / sinf(brightness) * 14.6f; - - if (lightIsHealthy(roomnum, lightindex - g_Rooms[roomnum].gfxdata->lightsindex)) { - if (!lightIsOn(roomnum, lightindex - g_Rooms[roomnum].gfxdata->lightsindex)) { - continue; - } - - brightness = 1.0f; - } else if (lightTickBroken(roomnum, lightindex - g_Rooms[roomnum].gfxdata->lightsindex)) { - brightness = 0.4f; - } else { - continue; - } - - r = ((light->colour >> 12) & 0xf) * 17; - g = ((light->colour >> 8) & 0xf) * 17; - b = ((light->colour >> 4) & 0xf) * 17; - - if ((r == 0xff && g == 0xff && b == 0xff) || (r == 0xff && g + b < 35)) { - extra = false; - } else { - extra = true; - } - - f0 = s3[2] * (1.0f / 255.0f); - - sky0f127334((s32) ((f32)f0 * r), (s32) ((f32)f0 * g), (s32) ((f32)f0 * b)); - - for (l = 0; l < 3; l++) { - lightroompos[l] = (light->bbox[0].s[l] + light->bbox[1].s[l] + light->bbox[2].s[l] + light->bbox[3].s[l]) / 4; - lightworldpos.f[l] = lightroompos[l] + g_BgRooms[roomnum].pos.f[l]; - lightscreenpos.f[l] = lightworldpos.f[l] - g_Vars.currentplayer->cam_pos.f[l]; - } - - mtx4RotateVecInPlace(camGetWorldToScreenMtxf(), &lightscreenpos); - - cam0f0b4d04(&lightscreenpos, spdc); - - brightness *= 27500.0f / (-lightscreenpos.z < 1.0f ? 1.0f : -lightscreenpos.z); - - if (light->unk06 != 0) { - brightness *= light->unk06 * (1.0f / 32.0f); - } - - brightness *= s3[1] * (1.0f / 255.0f); - brightness += add; - brightness *= 2.0f * func0f000dbc(roomnum); - - if (brightness > 750.0f) { - brightness = 750.0f; - } - - f24 = stageGetCurrent()->light_width * brightness * 0.01f; - f26 = stageGetCurrent()->light_height * brightness * 0.01f; - - f24 *= viGetViewWidth() * (1.0f / 240.0f) / camGetPerspAspect(); - f26 *= viGetViewHeight() * (1.0f / 240.0f); - - if (brightness > 3.0f) { - f32 alpha = (light->colour & 0xf) * 17; - - colour[0] = r; - colour[1] = g; - colour[2] = b; - - alpha *= stageGetCurrent()->light_alpha / 255.0f; - alpha *= (s3[1] / 255.0f); - alpha *= (s3[0] / 8.0f); - - if (alpha > 255.0f) { - alpha = 255.0f; - } - - colour[3] = alpha; - - gDPSetEnvColor(gdl++, colour[0], colour[1], colour[2], colour[3]); - - spd4[0] = f24; - spd4[1] = f26; - - func0f0b2740(&gdl, spdc, spd4, 64, 64, false, false, false, 1); - - if (extra) { - colour[0] = 0xff; - colour[1] = 0xff; - colour[2] = 0xff; - colour[3] = stageGetCurrent()->light_alpha; - colour[3] = s3[0] * colour[3] / 8; - - gDPSetEnvColor(gdl++, colour[0], colour[1], colour[2], colour[3]); - - spd4[0] = f24 * 0.4f; - spd4[1] = f26 * 0.4f; - - func0f0b2740(&gdl, spdc, spd4, 64, 64, false, false, false, 1); - } - } - } - - s3[1] = 0; - s3[2] = 0; - } - - // This is incrementing i past all the artifacts for this particular - // light, then subtracting 1 because the for loop will add 1. - i = i + count - 1; - } - } - - return gdl; -} diff --git a/src/game/game_176080.c b/src/game/game_176080.c index 65fd99f9c..04c591ceb 100644 --- a/src/game/game_176080.c +++ b/src/game/game_176080.c @@ -119,30 +119,8 @@ Gfx *mblur0f1763f4(Gfx *gdl) return gdl; } -u16 *mblur0f176668(s32 arg0) -{ - u16 *addr; - - if (arg0 == 0) { - addr = var800ab7c8; - } - - if (arg0 == 1) { - addr = var800abac8; - } - - if (arg0 == 2) { - addr = var800abdc8; - } - - addr = (u16 *)(((u32)addr + 0x3f) & ~0x3f); - - return addr; -} - Gfx *mblurRender(Gfx *gdl) { - struct artifact *artifacts = schedGetWriteArtifacts(); u32 stack; u16 *sp4c = var800844f0; u32 s4 = 0; @@ -151,10 +129,6 @@ Gfx *mblurRender(Gfx *gdl) u16 *image; s32 i; - viGetBackBuffer(); - sp44 = mblur0f176668(g_SchedWriteArtifactsIndex); - g_SchedSpecialArtifactIndexes[g_SchedWriteArtifactsIndex] = 1; - gDPPipeSync(gdl++); gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetBufWidth(), OS_PHYSICAL_TO_K0(sp44)); gDPSetScissor(gdl++, G_SC_NON_INTERLACE, 0, 0, 320, 240); @@ -179,31 +153,6 @@ Gfx *mblurRender(Gfx *gdl) gSPClearGeometryMode(gdl++, G_ZBUFFER); gDPTileSync(gdl++); - for (i = 0; i < MAX_ARTIFACTS; i++) { - if (1); - - if (artifacts[i].type != ARTIFACTTYPE_FREE) { - s2 = &sp44[s4]; - image = &sp4c[artifacts[i].unk0c.u16_1 * viGetWidth()]; - - gDPPipeSync(gdl++); - gDPSetTextureImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, image); - gDPLoadSync(gdl++); - gDPLoadBlock(gdl++, 5, 0, 0, viGetWidth() - 1, 0); - gDPPipeSync(gdl++); - - gSPTextureRectangle(gdl++, - s4 << 2, 0, - (s4 + 3) << 2, 0, - G_TX_RENDERTILE, (artifacts[i].unk0c.u16_2 * 32) + 16, 0x0010, 0x1000, 0); - - artifacts[i].unk0c.u16p = s2; - s4++; - - if (s2); - } - } - gDPPipeSync(gdl++); gDPLoadSync(gdl++); gDPTileSync(gdl++); @@ -214,7 +163,5 @@ Gfx *mblurRender(Gfx *gdl) gDPSetTexturePersp(gdl++, G_TP_PERSP); gDPSetColorDither(gdl++, G_CD_BAYER); - if (sp44); - return gdl; } diff --git a/src/game/lv.c b/src/game/lv.c index 62900e464..5ba7c1397 100644 --- a/src/game/lv.c +++ b/src/game/lv.c @@ -446,7 +446,6 @@ void lvReset(s32 stagenum) modelmgrSetLvResetting(false); var80084018 = 1; - schedResetArtifacts(); lvSetPaused(0); #if PIRACYCHECKS @@ -1186,7 +1185,6 @@ Gfx *lvRender(Gfx *gdl) gdl = vi0000b280(gdl); gdl = vi0000b1d0(gdl); gdl = currentPlayerScissorToViewport(gdl); - artifactsClear(); if ((g_Vars.stagenum != STAGE_CITRAINING || (var80087260 <= 0 && g_MenuData.root != MENUROOT_MPSETUP)) && g_Vars.lvframenum <= 5 @@ -1533,8 +1531,6 @@ Gfx *lvRender(Gfx *gdl) } } - artifactsTick(); - if ((g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) #if VERSION >= VERSION_NTSC_1_0 && playerHasSharedViewport() diff --git a/src/game/player.c b/src/game/player.c index 567c050f5..3469c7323 100644 --- a/src/game/player.c +++ b/src/game/player.c @@ -4378,7 +4378,6 @@ Gfx *playerRenderHud(Gfx *gdl) { if (g_Vars.currentplayer->cameramode == CAMERAMODE_THIRDPERSON) { gdl = boltbeamsRender(gdl); - gdl = bgRenderArtifacts(gdl); gdl = hudmsgsRender(gdl); if (g_Vars.currentplayer->isdead == false) { @@ -4394,10 +4393,6 @@ Gfx *playerRenderHud(Gfx *gdl) bgunRender(&gdl); gdl = lasersightRenderDot(gdl); - if (g_Vars.currentplayer->visionmode != VISIONMODE_XRAY) { - gdl = bgRenderArtifacts(gdl); - } - if (g_NbombsActive) { gdl = nbombRenderOverlay(gdl); } diff --git a/src/game/sky.c b/src/game/sky.c index 60aef9172..0617704e1 100644 --- a/src/game/sky.c +++ b/src/game/sky.c @@ -2365,558 +2365,6 @@ Gfx *sky0f123fd4(Gfx *gdl, struct skything38 *arg1, struct skything38 *arg2, str return gdl; } -void skyCreateArtifact(struct artifact *artifact, 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) { - artifact->unk08 = &var800844f0[(s32)camGetScreenWidth() * y + x]; - artifact->unk0c.u16_2 = x; - artifact->unk0c.u16_1 = y; - artifact->type = ARTIFACTTYPE_CIRCLE; - } -} - -f32 sky0f125a1c(struct artifact *artifacts) -{ - f32 sum = 0; - s32 i; - - for (i = 0; i < 8; i++) { - if (artifacts[i].type == ARTIFACTTYPE_CIRCLE && artifacts[i].unk02 == 0xfffc) { - sum += 0.125f; - } - } - - return sum; -} - -Gfx *skyRenderSuns(Gfx *gdl, bool xray) -{ - Mtxf *sp16c; - Mtxf *sp168; - s16 viewleft; - s16 viewtop; - s16 viewwidth; - s16 viewheight; - f32 viewleftf; - f32 viewtopf; - f32 viewwidthf; - f32 viewheightf; - struct artifact *artifacts; - u8 colour[3]; - struct environment *env; - struct sun *sun; - s32 i; - f32 sp134[2]; - f32 sp12c[2]; - s32 xscale; - f32 sp124; - bool onscreen; - f32 radius; - - sp16c = camGetWorldToScreenMtxf(); - sp168 = camGetMtxF1754(); - env = envGetCurrent(); - - xscale = 1; - - if (env->numsuns <= 0 || !var800844f0 || g_Vars.mplayerisrunning) { - return gdl; - } - -#if !PAL - if (g_ViRes == 1) { - xscale = 2; - } -#endif - - viewleft = viGetViewLeft(); - viewtop = viGetViewTop(); - viewwidth = viGetViewWidth(); - viewheight = viGetViewHeight(); - - viewleftf = viewleft; - viewtopf = viewtop; - viewwidthf = viewwidth; - viewheightf = viewheight; - - sun = env->suns; - - for (i = 0; i < env->numsuns; i++) { - g_SunPositions[i].f[0] = sun->pos[0]; - g_SunPositions[i].f[1] = sun->pos[1]; - g_SunPositions[i].f[2] = sun->pos[2]; - - colour[0] = sun->red; - colour[1] = sun->green; - colour[2] = sun->blue; - - if (!xray) { - mtx4TransformVecInPlace(sp16c, &g_SunPositions[i]); - mtx4TransformVecInPlace(sp168, &g_SunPositions[i]); - - if (g_SunPositions[i].f[2] > 1.0f) { - g_SunScreenXPositions[i] = (g_SunPositions[i].f[0] / g_SunPositions[i].f[2] + 1.0f) * 0.5f * viewwidthf + viewleftf; - g_SunScreenYPositions[i] = (-g_SunPositions[i].f[1] / g_SunPositions[i].f[2] + 1.0f) * 0.5f * viewheightf + viewtopf; - radius = 60.0f / viGetFovY() * sun->texture_size; - onscreen = false; - - if (g_SunScreenXPositions[i] >= viewleftf - radius - && g_SunScreenXPositions[i] < viewleftf + viewwidth + radius - && g_SunScreenYPositions[i] >= viewtopf - radius - && g_SunScreenYPositions[i] < viewtopf + viewheightf + radius) { - // Sun is at least partially on screen - if (g_SunScreenXPositions[i] >= viewleftf - && g_SunScreenXPositions[i] < viewleftf + viewwidthf - && g_SunScreenYPositions[i] >= viewtopf - && g_SunScreenYPositions[i] < viewtopf + viewheightf) { - // Sun's centre point is on-screen - f32 distfromedge; - f32 mindistfromedge; - artifacts = schedGetWriteArtifacts(); - onscreen = true; - mindistfromedge = 1000; - - if ((s32)g_SunScreenXPositions[i] < viewleft + 15) { - distfromedge = g_SunScreenXPositions[i]; - - if (distfromedge < mindistfromedge) { - mindistfromedge = distfromedge; - } - } - - if (1); - - if ((s32)g_SunScreenYPositions[i] < viewtop + 15) { - distfromedge = g_SunScreenYPositions[i]; - - if (distfromedge < mindistfromedge) { - mindistfromedge = distfromedge; - } - } - - if ((s32)g_SunScreenXPositions[i] > viewleft + viewwidth - 16) { - distfromedge = viewleft + viewwidth - 1 - g_SunScreenXPositions[i]; - - if (distfromedge < mindistfromedge) { - mindistfromedge = distfromedge; - } - } - - if ((s32)g_SunScreenYPositions[i] > viewtop + viewheight - 16) { - distfromedge = viewtop + viewheight - 1 - g_SunScreenYPositions[i]; - - if (distfromedge < mindistfromedge) { - mindistfromedge = distfromedge; - } - } - - mindistfromedge -= 1.0f; - - if (mindistfromedge < 0.0f) { - mindistfromedge = 0.0f; - } - - g_SunAlphaFracs[i] = mindistfromedge * (1.0f / 15.0f); - - if (g_SunAlphaFracs[i] > 1.0f) { - g_SunAlphaFracs[i] = 1.0f; - } - - skyCreateArtifact(&artifacts[i * 8 + 0], (s32)g_SunScreenXPositions[i] - 7, (s32)g_SunScreenYPositions[i] + 1); - skyCreateArtifact(&artifacts[i * 8 + 1], (s32)g_SunScreenXPositions[i] - 5, (s32)g_SunScreenYPositions[i] - 3); - skyCreateArtifact(&artifacts[i * 8 + 2], (s32)g_SunScreenXPositions[i] - 3, (s32)g_SunScreenYPositions[i] + 5); - skyCreateArtifact(&artifacts[i * 8 + 3], (s32)g_SunScreenXPositions[i] - 1, (s32)g_SunScreenYPositions[i] - 7); - skyCreateArtifact(&artifacts[i * 8 + 4], (s32)g_SunScreenXPositions[i] + 1, (s32)g_SunScreenYPositions[i] + 7); - skyCreateArtifact(&artifacts[i * 8 + 5], (s32)g_SunScreenXPositions[i] + 3, (s32)g_SunScreenYPositions[i] - 5); - skyCreateArtifact(&artifacts[i * 8 + 6], (s32)g_SunScreenXPositions[i] + 5, (s32)g_SunScreenYPositions[i] + 3); - skyCreateArtifact(&artifacts[i * 8 + 7], (s32)g_SunScreenXPositions[i] + 7, (s32)g_SunScreenYPositions[i] - 1); - } - - if (1); - - g_SunFlareTimers240[i] += g_Vars.lvupdate240; - - texSelect(&gdl, &g_TexLightGlareConfigs[5], 4, 0, 2, 1, NULL); - - gDPSetCycleType(gdl++, G_CYC_1CYCLE); - gDPSetColorDither(gdl++, G_CD_DISABLE); - gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); - gDPSetTexturePersp(gdl++, G_TP_NONE); - gDPSetAlphaCompare(gdl++, G_AC_NONE); - gDPSetTextureLOD(gdl++, G_TL_TILE); - gDPSetTextureConvert(gdl++, G_TC_FILT); - gDPSetTextureLUT(gdl++, G_TT_NONE); - gDPSetTextureFilter(gdl++, G_TF_BILERP); - gDPSetCombineLERP(gdl++, - ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, - ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0); - gDPSetEnvColor(gdl++, colour[0], colour[1], colour[2], (s32)(g_SunAlphaFracs[i] * 255.0f)); - - sp134[0] = g_SunScreenXPositions[i]; - sp134[1] = g_SunScreenYPositions[i]; - sp12c[0] = radius * 0.50f * xscale; - sp12c[1] = radius * 0.50f; - - func0f0b2150(&gdl, sp134, sp12c, g_TexLightGlareConfigs[5].width, g_TexLightGlareConfigs[5].height, 0, 1, 1, 1, 0, 1); - - gDPPipeSync(gdl++); - gDPSetColorDither(gdl++, G_CD_BAYER); - gDPSetTexturePersp(gdl++, G_TP_PERSP); - gDPSetTextureLOD(gdl++, G_TL_LOD); - - sp124 = sky0f125a1c(&schedGetFrontArtifacts()[i * 8]); - } - - if (onscreen && sp124 > 0.0f) { - g_SunFlareTimers240[i] += g_Vars.lvupdate240; - } else { - g_SunFlareTimers240[i] = 0; - } - } - } - - sun++; - } - - return gdl; -} - -/** - * Render a sun and its artifacts. - */ -Gfx *sky0f126384(Gfx *gdl, f32 x, f32 y, f32 arg3, f32 size, s32 arg5, f32 arg6) -{ - s32 i; - f32 f2; - f32 f12; - f32 sp17c[2]; - f32 sp174[2]; - s32 sp15c[] = { 16, 32, 12, 32, 24, 64 }; // diameters? - s32 sp144[] = { 60, 80, 225, 275, 470, 570 }; // distances from the sun? - - u32 colours[] = { - 0xff99ffff, // pinkish/purple - 0x9999ffff, // blue - 0x99ffffff, // very light blue - 0x99ff99ff, // green - 0xffff99ff, // yellow - 0xff9999ff, // red - }; - - f32 sp128; - f32 sp124; - s32 scale; - f32 fovy; - - scale = 1; - -#if !PAL - if (g_ViRes == VIRES_HI) { - scale = 2; - } -#endif - - sp128 = (x - viGetViewWidth() / 2.0f) * 0.01f; - sp124 = (y - viGetViewHeight() / 2.0f) * 0.01f; - - // Render the sun - texSelect(&gdl, &g_TexLightGlareConfigs[6], 4, 0, 2, 1, NULL); - - gDPSetCycleType(gdl++, G_CYC_1CYCLE); - gDPSetColorDither(gdl++, G_CD_BAYER); - gDPSetAlphaDither(gdl++, G_AD_PATTERN); - gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); - gDPSetTexturePersp(gdl++, G_TP_NONE); - gDPSetAlphaCompare(gdl++, G_AC_NONE); - gDPSetTextureLOD(gdl++, G_TL_TILE); - gDPSetTextureConvert(gdl++, G_TC_FILT); - gDPSetTextureLUT(gdl++, G_TT_NONE); - gDPSetTextureFilter(gdl++, G_TF_BILERP); - gDPSetCombineLERP(gdl++, - 0, 0, 0, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0, - 0, 0, 0, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0); - - fovy = viGetFovY(); - - gDPSetEnvColor(gdl++, 0xff, 0xff, 0xff, (s32) (arg6 * arg3 * 255.0f)); - f2 = ((s32) ((60.0f / fovy) * (size * (0.5f + (0.5f * arg3))))); - - sp17c[0] = x; - sp17c[1] = y; - sp174[1] = f2 * 0.5f; - sp174[0] = f2 * 0.5f * scale; - - func0f0b2150(&gdl, sp17c, sp174, g_TexLightGlareConfigs[6].width, g_TexLightGlareConfigs[6].height, 0, 1, 1, 1, 0, 1); - - // Render the artifacts - texSelect(&gdl, &g_TexLightGlareConfigs[1], 4, 0, 2, 1, NULL); - - gDPSetCycleType(gdl++, G_CYC_1CYCLE); - gDPSetColorDither(gdl++, G_CD_BAYER); - gDPSetAlphaDither(gdl++, G_AD_PATTERN); - gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); - gDPSetTexturePersp(gdl++, G_TP_NONE); - gDPSetAlphaCompare(gdl++, G_AC_NONE); - gDPSetTextureLOD(gdl++, G_TL_TILE); - gDPSetTextureConvert(gdl++, G_TC_FILT); - gDPSetTextureLUT(gdl++, G_TT_NONE); - gDPSetTextureFilter(gdl++, G_TF_BILERP); - gDPSetCombineLERP(gdl++, - 0, 0, 0, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0, - 0, 0, 0, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0); - - for (i = 0; i < 6; i++) { - f32 f12; - f32 f14; - f32 tmp; - - if (arg5 < TICKS(90)) { - if (arg5 < TICKS(30)) { - f2 = arg5 * (1.0f / TICKS(30.0f)); - } else { - f2 = 1.0f; - } - } else { - f2 = (TICKS(180.0f) - (arg5 - TICKS(90))) * (1.0f / TICKS(180.0f)) * 0.5f; - - if (f2 < 0.0f) { - f2 = 0.0f; - } - - f2 += 0.5f; - } - - f12 = x - sp144[i] * sp128; - f14 = y - sp144[i] * sp124; - - tmp = sp15c[i]; - - gDPSetEnvColor(gdl++, - (colours[i] >> 24) & 0xff, - (colours[i] >> 16) & 0xff, - (colours[i] >> 8) & 0xff, - (s32) ((colours[i] & 0xff) * (arg6 * f2))); - - sp17c[0] = f12; - sp17c[1] = f14; - - sp174[1] = tmp * 0.5f; - sp174[0] = tmp * 0.5f * scale; - - func0f0b2150(&gdl, sp17c, sp174, g_TexLightGlareConfigs[1].width, g_TexLightGlareConfigs[1].height, 0, 0, 0, 0, 0, 1); - } - - sp128 = viGetViewWidth() / 2.0f - x; - sp124 = viGetViewHeight() / 2.0f - y; - - f12 = (40.0f - sqrtf(sp128 * sp128 + sp124 * sp124)) * 0.0125f; - - if (f12 < 0.0f) { - f12 = 0.0f; - } - - f12 += 0.1f; - - if (arg5 <= g_Vars.lvupdate240) { - f12 = 0.0f; - } - - if (f12 > 0.0f) { - sky0f127334(arg6 * f12 * 255.0f, arg6 * f12 * 255.0f, arg6 * f12 * 255.0f); - } - - gDPSetColorDither(gdl++, G_CD_BAYER); - gDPSetAlphaDither(gdl++, G_AD_PATTERN | G_CD_DISABLE); - gDPSetTexturePersp(gdl++, G_TP_PERSP); - gDPSetTextureLOD(gdl++, G_TL_LOD); - - return gdl; -} - -struct coord g_TeleportToPos = {0, 0, 0}; -struct coord g_TeleportToUp = {0, 0, 1}; -struct coord g_TeleportToLook = {0, 1, 0}; - -/** - * Render a sun and its artifacts if on screen. - */ -Gfx *sky0f126c3c(Gfx *gdl, f32 x, f32 y, f32 z, f32 arg4, f32 arg5) -{ - struct coord sp64; - - sp64.x = x; - sp64.y = y; - sp64.z = z; - - mtx4TransformVecInPlace(camGetWorldToScreenMtxf(), &sp64); - mtx4TransformVecInPlace(camGetMtxF1754(), &sp64); - - if (sp64.z > 1.0f) { - f32 xpos; - f32 ypos; - s16 viewlefti = viGetViewLeft(); - s16 viewtopi = viGetViewTop(); - s16 viewwidthi = viGetViewWidth(); - s16 viewheighti = viGetViewHeight(); - f32 viewleft = viewlefti; - f32 viewwidth = viewwidthi; - f32 viewtop = viewtopi; - f32 viewheight = viewheighti; - - xpos = viewleft + (sp64.f[0] / sp64.f[2] + 1.0f) * 0.5f * viewwidth; - ypos = viewtop + (-sp64.f[1] / sp64.f[2] + 1.0f) * 0.5f * viewheight; - - if (xpos >= viewleft && xpos < viewleft + viewwidth - && ypos >= viewtop && ypos < viewtop + viewheight) { - gdl = sky0f126384(gdl, xpos, ypos, arg5, arg4, TICKS(90), 1.0f); - } - } - - return gdl; -} - -/** - * Render lens flares during teleport. - */ -Gfx *sky0f126de8(Gfx *gdl) -{ - f32 sp154 = g_20SecIntervalFrac * M_BADTAU; - s32 i; - f32 f20 = 0.0f; - f32 f20_2; - f32 f22; - f32 f22_3; - struct pad pad; - struct coord spe0; - f32 spd0[4]; - Mtxf mtx; - f32 f24; - f32 f30; - - if (g_Vars.currentplayer->teleportstate == TELEPORTSTATE_PREENTER) { - f20 = g_Vars.currentplayer->teleporttime / 24.0f * 0.33f; - } else if (g_Vars.currentplayer->teleportstate == TELEPORTSTATE_ENTERING) { - f20 = g_Vars.currentplayer->teleporttime / 48.0f * 0.66f + 0.33f; - } - - f30 = f20 * 6.0f; - f22 = f20 * 1.3f; - - if (f22 > 1.0f) { - f22 = 1.0f; - } - - if (f30 > 1.0f) { - f30 = 1.0f; - } - - f20 *= 1.7f; - - if (f20 > 1.0f) { - f20 = 1.0f; - } - - padUnpack(g_Vars.currentplayer->teleportpad, PADFIELD_POS | PADFIELD_LOOK | PADFIELD_UP, &pad); - - g_TeleportToPos.x = pad.pos.x; - g_TeleportToPos.y = pad.pos.y; - g_TeleportToPos.z = pad.pos.z; - g_TeleportToLook.x = pad.look.x; - g_TeleportToLook.y = pad.look.y; - g_TeleportToLook.z = pad.look.z; - g_TeleportToUp.x = pad.up.x; - g_TeleportToUp.y = pad.up.y; - g_TeleportToUp.z = pad.up.z; - - f22 = -cosf(f22 * M_PI) * 0.5f + .5f; - f24 = 100 * f22; - - for (i = 0; i < 5; i++) { - spe0.x = g_TeleportToLook.f[0] * f24; - spe0.y = g_TeleportToLook.f[1] * f24; - spe0.z = g_TeleportToLook.f[2] * f24; - - f22_3 = sp154 + i * 1.2564370632172f; - f20_2 = sinf(f22_3); - - spd0[0] = cosf(f22_3); - spd0[1] = g_TeleportToUp.f[0] * f20_2; - spd0[2] = g_TeleportToUp.f[1] * f20_2; - spd0[3] = g_TeleportToUp.f[2] * f20_2; - - quaternionToMtx(spd0, &mtx); - mtx4RotateVecInPlace(&mtx, &spe0); - - spe0.x += g_TeleportToPos.x; - spe0.y += g_TeleportToPos.y; - spe0.z += g_TeleportToPos.z; - - gdl = sky0f126c3c(gdl, spe0.x, spe0.y, spe0.z, f20 * 200, f30); - } - - return gdl; -} - -/** - * Render teleport artifacts, and all suns and their artifacts. - */ -Gfx *skyRenderArtifacts(Gfx *gdl) -{ - struct environment *env = envGetCurrent(); - struct sun *sun; - s32 i; - - if (g_Vars.currentplayer->teleportstate == TELEPORTSTATE_PREENTER - || g_Vars.currentplayer->teleportstate == TELEPORTSTATE_ENTERING) { - gdl = sky0f126de8(gdl); - } - - if (env->numsuns <= 0 || !var800844f0 || g_Vars.mplayerisrunning) { - return gdl; - } - - sun = env->suns; - - for (i = 0; i < env->numsuns; i++) { - if (sun->lens_flare && g_SunPositions[i].z > 1) { - struct artifact *artifact = schedGetFrontArtifacts() + i * 8; - f32 value = sky0f125a1c(artifact); - - if (value > 0.0f) { - gdl = sky0f126384(gdl, g_SunScreenXPositions[i], g_SunScreenYPositions[i], value, sun->orb_size, g_SunFlareTimers240[i], g_SunAlphaFracs[i]); - } - } - - sun++; - } - - return gdl; -} - -void sky0f127334(s32 arg0, s32 arg1, s32 arg2) -{ - g_Vars.currentplayer->unk1c28 = sqrtf(g_Vars.currentplayer->unk1c28 * g_Vars.currentplayer->unk1c28 + arg0 * arg0); - g_Vars.currentplayer->unk1c2c = sqrtf(g_Vars.currentplayer->unk1c2c * g_Vars.currentplayer->unk1c2c + arg1 * arg1); - g_Vars.currentplayer->unk1c30 = sqrtf(g_Vars.currentplayer->unk1c30 * g_Vars.currentplayer->unk1c30 + arg2 * arg2); - - if (g_Vars.currentplayer->unk1c28 > 0xcc) { - g_Vars.currentplayer->unk1c28 = 0xcc; - } - - if (g_Vars.currentplayer->unk1c2c > 0xcc) { - g_Vars.currentplayer->unk1c2c = 0xcc; - } - - if (g_Vars.currentplayer->unk1c30 > 0xcc) { - g_Vars.currentplayer->unk1c30 = 0xcc; - } -} - s32 sky0f127490(s32 arg0, s32 arg1) { if (arg1 >= arg0) { diff --git a/src/lib/sched.c b/src/lib/sched.c index efddec146..67d3ff2df 100644 --- a/src/lib/sched.c +++ b/src/lib/sched.c @@ -69,11 +69,6 @@ s32 var8008de10; u32 var8008de14; OSTimer g_SchedRspTimer; u32 g_SchedDpCounters[4]; -struct artifact g_ArtifactLists[3][120]; -u8 g_SchedSpecialArtifactIndexes[3]; -s32 g_SchedWriteArtifactsIndex; -s32 g_SchedFrontArtifactsIndex; -s32 g_SchedPendingArtifactsIndex; bool g_SchedCrashedUnexpectedly = false; bool g_SchedCrashEnable1 = false; @@ -236,8 +231,6 @@ void __scMain(void *arg) OSSched *sc = (OSSched *)arg; int done = 0; - schedInitArtifacts(); - while (!done) { osRecvMesg(&sc->interruptQ, (OSMesg *)&msg, OS_MESG_BLOCK); @@ -443,103 +436,6 @@ u32 *schedGetDpCounters(void) return g_SchedDpCounters; } -void schedInitArtifacts(void) -{ - s32 i; - s32 j; - - for (i = 0; i < 3; i++) { - for (j = 0; j < MAX_ARTIFACTS; j++) { - g_ArtifactLists[i][j].type = ARTIFACTTYPE_FREE; - } - - g_SchedSpecialArtifactIndexes[i] = 0; - } -} - -/** - * The write list is an artifact list that is not currently being displayed on - * the screen. Update logic can write here to put artifacts on the next frame. - */ -struct artifact *schedGetWriteArtifacts(void) -{ - return g_ArtifactLists[g_SchedWriteArtifactsIndex]; -} - -/** - * The front list is the artifact list that is currently being displayed on the - * screen. Rendering logic reads this list. The list may be re-used for multiple - * frames in a row during lag. - */ -struct artifact *schedGetFrontArtifacts(void) -{ - return g_ArtifactLists[g_SchedFrontArtifactsIndex]; -} - -/** - * The pending list is possibly misnamed. I'm not sure how this list works. - * - * @TODO: Investigate. - */ -struct artifact *schedGetPendingArtifacts(void) -{ - return g_ArtifactLists[g_SchedPendingArtifactsIndex]; -} - -void schedIncrementWriteArtifacts(void) -{ - g_SchedWriteArtifactsIndex = (g_SchedWriteArtifactsIndex + 1) % 3; -} - -void schedIncrementFrontArtifacts(void) -{ - g_SchedFrontArtifactsIndex = (g_SchedFrontArtifactsIndex + 1) % 3; -} - -void schedIncrementPendingArtifacts(void) -{ - g_SchedPendingArtifactsIndex = (g_SchedPendingArtifactsIndex + 1) % 3; -} - -void schedResetArtifacts(void) -{ - g_SchedWriteArtifactsIndex = 0; - g_SchedFrontArtifactsIndex = 1; - g_SchedPendingArtifactsIndex = 0; -} - -void schedUpdatePendingArtifacts(void) -{ - struct artifact *artifacts = schedGetPendingArtifacts(); - s32 i; - - for (i = 0; i < MAX_ARTIFACTS; i++) { - struct artifact *artifact = &artifacts[i]; - - if (artifact->type != ARTIFACTTYPE_FREE) { - u16 *unk08 = artifact->unk08; - u16 value08 = unk08[0]; - - if (g_SchedSpecialArtifactIndexes[g_SchedPendingArtifactsIndex] == 1) { - u16 *unk0c = artifact->unk0c.u16p; - u16 value0c = unk0c[0]; - - if (value0c > value08) { - artifact->unk02 = value08; - } else { - artifact->unk02 = value0c; - } - } else { - artifact->unk02 = value08; - } - } - } - - g_SchedSpecialArtifactIndexes[g_SchedPendingArtifactsIndex] = 0; - - schedIncrementPendingArtifacts(); -} - /** * __scHandleRDP is called when an RDP task signals that it has finished. */ @@ -549,8 +445,6 @@ void __scHandleRDP(OSSched *sc) s32 state; if (sc->curRDPTask != NULL) { - schedUpdatePendingArtifacts(); - if (var8005dd18 == 0) { schedConsiderScreenshot(); }