From 4997207df21eaf2466eed2106fac209d83ce7c7f Mon Sep 17 00:00:00 2001 From: Alug Date: Fri, 9 Feb 2024 12:10:13 +0100 Subject: [PATCH 01/13] prep some speedometer stuff --- src/d_main.c | 11 ++++++++--- src/d_main.h | 3 ++- src/k_kart.c | 38 ++++++++++++++++++++++++++++++++------ src/m_menu.c | 6 +++--- 4 files changed, 45 insertions(+), 13 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 885a0be26..5f0ba8362 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1077,7 +1077,8 @@ static boolean AddIWAD(void) boolean found_extra_kart; boolean found_extra2_kart; -boolean snw_speedo; // snowy speedometer check +boolean xtra_speedo; // extra speedometer check +//boolean achi_speedo; // achiiro speedometer check boolean clr_hud; // colour hud check boolean big_lap; // bigger lap counter boolean big_lap_color; // bigger lap counter but colour @@ -1444,9 +1445,13 @@ void D_SRB2Main(void) if (found_extra2_kart) mainwads++; - // now check for speedometer stuff + // now check for extra speedometer stuff if (W_CheckMultipleLumps("SP_SMSTC", "K_TRNULL", "SP_MKMH", "SP_MMPH", "SP_MFRAC", "SP_MPERC", NULL)) - snw_speedo = true; + xtra_speedo = true; + + // now check for achii speedometer stuff + //if (W_CheckMultipleLumps("SP_SMSTC", "K_TRNULL", "SP_MKMH", "SP_MMPH", "SP_MFRAC", "SP_MPERC", NULL)) + //achi_speedo = true; // check for bigger lap count if (W_CheckMultipleLumps("K_STLAPB", "K_STLA2B", NULL)) diff --git a/src/d_main.h b/src/d_main.h index 4214e06a4..e524f224b 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -28,7 +28,8 @@ extern char srb2path[256]; //Alam: SRB2's Home extern boolean found_extra_kart; // for use in k_kart.c extern boolean found_extra2_kart; // for use in k_kart.c -extern boolean snw_speedo; // snowy speedometer check +extern boolean xtra_speedo; // extra speedometer check +//boolean achi_speedo; // achiiro speedometer check extern boolean clr_hud; // colour hud check extern boolean big_lap; // bigger lap counter extern boolean big_lap_color; //bigger lap counter but colour diff --git a/src/k_kart.c b/src/k_kart.c index 3170bc143..991c41273 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -7036,6 +7036,16 @@ void K_LoadKartHUDGraphics(void) kp_karmasticker = W_CachePatchName("K_STKARM", PU_HUDGFX); kp_splitkarmabomb = W_CachePatchName("K_SPTKRM", PU_HUDGFX); kp_timeoutsticker = W_CachePatchName("K_STTOUT", PU_HUDGFX); + + if (xtra_speedo) // snowy speedometer + { + skp_smallsticker = W_CachePatchName("SP_SMSTC", PU_HUDGFX); + skp_speedpatches[0] = W_CachePatchName("K_TRNULL", PU_HUDGFX); // lolxd + skp_speedpatches[1] = W_CachePatchName("SP_MKMH", PU_HUDGFX); + skp_speedpatches[2] = W_CachePatchName("SP_MMPH", PU_HUDGFX); + skp_speedpatches[3] = W_CachePatchName("SP_MFRAC", PU_HUDGFX); + skp_speedpatches[4] = W_CachePatchName("SP_MPERC", PU_HUDGFX); + } if (big_lap){ kp_lapstickerbig = W_CachePatchName("K_STLAPB", PU_HUDGFX); @@ -7064,7 +7074,7 @@ void K_LoadKartHUDGraphics(void) kp_lapstickerbig2clr = W_CachePatchName("K_SCLA2B", PU_HUDGFX); } - if (snw_speedo) + if (xtra_speedo) skp_smallstickerclr = W_CachePatchName("SC_SMSTC", PU_HUDGFX); } @@ -7637,7 +7647,7 @@ static void K_drawKartStats(void) //Internal offset for speedometer if (cv_kartspeedometer.value) { - if (cv_newspeedometer.value == 2 && snw_speedo) + if (cv_newspeedometer.value == 2 && xtra_speedo) spdoffset = -10; else spdoffset = -14; @@ -8691,7 +8701,7 @@ static void K_drawKartSpeedometer(void) } // man. - if ((cv_newspeedometer.value == 1) || (cv_newspeedometer.value == 2 && !snw_speedo) || (cv_newspeedometer.value == 3 && !kartzspeedo)) + if ((cv_newspeedometer.value == 1) || (cv_newspeedometer.value == 2 && !xtra_speedo) || (cv_newspeedometer.value == 3 && !kartzspeedo)) { switch (speedtype) { case 1: @@ -8704,7 +8714,7 @@ static void K_drawKartSpeedometer(void) V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%3d fu/t", convSpeed)); break; case 4: // if extra.kart is found, use its included % symbol - if (!snw_speedo) + if (!xtra_speedo) V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%4d P", convSpeed)); else V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%4d %%", convSpeed)); @@ -8713,7 +8723,23 @@ static void K_drawKartSpeedometer(void) break; } } - else if (cv_newspeedometer.value == 2 && snw_speedo) // why bother if we dont? + else if (cv_newspeedometer.value == 2 && xtra_speedo) // why bother if we dont? + { + if (!K_UseColorHud()) + //V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallsticker)); + V_DrawStretchyFixedPatch((SPDM_X)< Date: Mon, 29 Jan 2024 22:13:54 +0100 Subject: [PATCH 02/13] fix 1 pixel gap i hate maths --- src/k_kart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 991c41273..210766ed8 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -8727,12 +8727,12 @@ static void K_drawKartSpeedometer(void) { if (!K_UseColorHud()) //V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallsticker)); - V_DrawStretchyFixedPatch((SPDM_X)< Date: Mon, 29 Jan 2024 22:23:04 +0100 Subject: [PATCH 03/13] ok i can just do it like this lol now its good finally --- src/k_kart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 210766ed8..12c0a76f9 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -8727,12 +8727,12 @@ static void K_drawKartSpeedometer(void) { if (!K_UseColorHud()) //V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallsticker)); - V_DrawStretchyFixedPatch((SPDM_X)< Date: Mon, 29 Jan 2024 23:08:19 +0100 Subject: [PATCH 04/13] similar scale to old speedo --- src/k_kart.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 12c0a76f9..82e48de0d 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -8727,18 +8727,18 @@ static void K_drawKartSpeedometer(void) { if (!K_UseColorHud()) //V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallsticker)); - V_DrawStretchyFixedPatch((SPDM_X-1)< Date: Tue, 30 Jan 2024 21:43:44 +0100 Subject: [PATCH 05/13] change x scale a little --- src/k_kart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 82e48de0d..623df4553 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -8727,12 +8727,12 @@ static void K_drawKartSpeedometer(void) { if (!K_UseColorHud()) //V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallsticker)); - V_DrawStretchyFixedPatch((SPDM_X-1)< Date: Fri, 9 Feb 2024 12:11:20 +0100 Subject: [PATCH 06/13] add achiiro speedometer stuffs --- src/d_main.c | 6 +++--- src/d_main.h | 2 +- src/k_kart.c | 51 +++++++++++++++++++++++++++++++++++++++------------ src/m_menu.c | 11 ++++++----- 4 files changed, 49 insertions(+), 21 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 5f0ba8362..0b22e9afb 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1078,7 +1078,7 @@ boolean found_extra_kart; boolean found_extra2_kart; boolean xtra_speedo; // extra speedometer check -//boolean achi_speedo; // achiiro speedometer check +boolean achi_speedo; // achiiro speedometer check boolean clr_hud; // colour hud check boolean big_lap; // bigger lap counter boolean big_lap_color; // bigger lap counter but colour @@ -1450,8 +1450,8 @@ void D_SRB2Main(void) xtra_speedo = true; // now check for achii speedometer stuff - //if (W_CheckMultipleLumps("SP_SMSTC", "K_TRNULL", "SP_MKMH", "SP_MMPH", "SP_MFRAC", "SP_MPERC", NULL)) - //achi_speedo = true; + if (W_CheckMultipleLumps("SP_AMSTC", "K_TRNULL", "SP_AKMH", "SP_AMPH", "SP_AFRAC", "SP_APERC", NULL)) + achi_speedo = true; // check for bigger lap count if (W_CheckMultipleLumps("K_STLAPB", "K_STLA2B", NULL)) diff --git a/src/d_main.h b/src/d_main.h index e524f224b..a0fa6f0ce 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -29,7 +29,7 @@ extern boolean found_extra_kart; // for use in k_kart.c extern boolean found_extra2_kart; // for use in k_kart.c extern boolean xtra_speedo; // extra speedometer check -//boolean achi_speedo; // achiiro speedometer check +extern boolean achi_speedo; // achiiro speedometer check extern boolean clr_hud; // colour hud check extern boolean big_lap; // bigger lap counter extern boolean big_lap_color; //bigger lap counter but colour diff --git a/src/k_kart.c b/src/k_kart.c index 623df4553..aa3d8c11c 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -57,7 +57,7 @@ IMPL_HUD_OFFSET(stat); // Stats consvar_t cv_showstats = {"showstats", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_showinput = {"showinput", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; -static CV_PossibleValue_t speedo_cons_t[] = {{1, "Default"}, {2, "Small"}, {3, "P-Meter"}, {0, NULL}}; +static CV_PossibleValue_t speedo_cons_t[] = {{1, "Default"}, {2, "Small"}, {3, "Achii"}, {4, "P-Meter"}, {0, NULL}}; consvar_t cv_newspeedometer = {"newspeedometer", "Default", CV_SAVE, speedo_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; //hardcode saltyhop mhhm @@ -7016,6 +7016,11 @@ static patch_t *kp_yougotem; static patch_t *skp_smallsticker; static patch_t *skp_speedpatches[5]; +static patch_t *skp_smallstickerachi; +static patch_t *skp_speedpatchesachi[5]; +static patch_t *skp_smallstickerachiclr; +static patch_t *skp_speedpatchesachiclr[5]; + void K_LoadKartHUDGraphics(void) { INT32 i, j; @@ -7046,6 +7051,16 @@ void K_LoadKartHUDGraphics(void) skp_speedpatches[3] = W_CachePatchName("SP_MFRAC", PU_HUDGFX); skp_speedpatches[4] = W_CachePatchName("SP_MPERC", PU_HUDGFX); } + + if (achi_speedo) + { + skp_smallstickerachi = W_CachePatchName("SP_AMSTC", PU_HUDGFX); + skp_speedpatchesachi[0] = W_CachePatchName("K_TRNULL", PU_HUDGFX); // lolxd + skp_speedpatchesachi[1] = W_CachePatchName("SP_AKMH", PU_HUDGFX); + skp_speedpatchesachi[2] = W_CachePatchName("SP_AMPH", PU_HUDGFX); + skp_speedpatchesachi[3] = W_CachePatchName("SP_AFRAC", PU_HUDGFX); + skp_speedpatchesachi[4] = W_CachePatchName("SP_APERC", PU_HUDGFX); + } if (big_lap){ kp_lapstickerbig = W_CachePatchName("K_STLAPB", PU_HUDGFX); @@ -7076,6 +7091,16 @@ void K_LoadKartHUDGraphics(void) if (xtra_speedo) skp_smallstickerclr = W_CachePatchName("SC_SMSTC", PU_HUDGFX); + + if (achi_speedo) + { + skp_smallstickerachiclr = W_CachePatchName("SC_AMSTC", PU_HUDGFX); + skp_speedpatchesachiclr[0] = W_CachePatchName("K_TRNULL", PU_HUDGFX); // lolxd + skp_speedpatchesachiclr[1] = W_CachePatchName("SC_AKMH", PU_HUDGFX); + skp_speedpatchesachiclr[2] = W_CachePatchName("SC_AMPH", PU_HUDGFX); + skp_speedpatchesachiclr[3] = W_CachePatchName("SC_AFRAC", PU_HUDGFX); + skp_speedpatchesachiclr[4] = W_CachePatchName("SC_APERC", PU_HUDGFX); + } } //KartZ speedo @@ -7647,7 +7672,7 @@ static void K_drawKartStats(void) //Internal offset for speedometer if (cv_kartspeedometer.value) { - if (cv_newspeedometer.value == 2 && xtra_speedo) + if ((cv_newspeedometer.value == 2 && xtra_speedo) || (cv_newspeedometer.value == 3 && achi_speedo)) spdoffset = -10; else spdoffset = -14; @@ -8701,7 +8726,7 @@ static void K_drawKartSpeedometer(void) } // man. - if ((cv_newspeedometer.value == 1) || (cv_newspeedometer.value == 2 && !xtra_speedo) || (cv_newspeedometer.value == 3 && !kartzspeedo)) + if ((cv_newspeedometer.value == 1) || (cv_newspeedometer.value == 2 && !xtra_speedo) || (cv_newspeedometer.value == 3 && !achi_speedo) || (cv_newspeedometer.value == 4 && !kartzspeedo)) { switch (speedtype) { case 1: @@ -8739,25 +8764,27 @@ static void K_drawKartSpeedometer(void) V_DrawScaledPatch(SPDM_X + 31, SPDM_Y + 4, V_HUDTRANS|splitflags, skp_speedpatches[cv_kartspeedometer.value]); } - /*else if (cv_newspeedometer.value == 2 && achi_speedo) // why bother if we dont? + else if (cv_newspeedometer.value == 3 && achi_speedo) // why bother if we dont? { if (!K_UseColorHud()) - V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallsticker)); + { + V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallstickerachi)); + V_DrawRankNum(SPDM_X + 26, SPDM_Y + 4, V_HUDTRANS|splitflags, convSpeed, 3, NULL); + V_DrawScaledPatch(SPDM_X + 31, SPDM_Y + 4, V_HUDTRANS|splitflags, skp_speedpatchesachi[cv_kartspeedometer.value]); + } else //Colourized hud { UINT8 *colormap = R_GetTranslationColormap(TC_DEFAULT, K_GetHudColor(), GTC_CACHE); - V_DrawMappedPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallstickerclr), colormap); + V_DrawMappedPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallstickerachiclr), colormap); + V_DrawRankNum(SPDM_X + 26, SPDM_Y + 4, V_HUDTRANS|splitflags, convSpeed, 3, NULL); + V_DrawMappedPatch(SPDM_X + 31, SPDM_Y + 4, V_HUDTRANS|splitflags, skp_speedpatchesachiclr[cv_kartspeedometer.value], colormap); } - - V_DrawRankNum(SPDM_X + 26, SPDM_Y + 4, V_HUDTRANS|splitflags, convSpeed, 3, NULL); - - V_DrawScaledPatch(SPDM_X + 31, SPDM_Y + 4, V_HUDTRANS|splitflags, skp_speedpatches[cv_kartspeedometer.value]); - }*/ + } // Kart Z speedo bullshit... // Draw the Speed counter. // Warning large if statement below... - else if (cv_newspeedometer.value == 3 && kartzspeedo) + else if (cv_newspeedometer.value == 4 && kartzspeedo) { fuspeed = FixedDiv(stplyr->speed, mapobjectscale)/FRACUNIT; diff --git a/src/m_menu.c b/src/m_menu.c index 90e9708e8..48f6af0bc 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -4493,14 +4493,15 @@ void M_Init(void) } #endif - if (!xtra_speedo && !kartzspeedo) // why bother? + if (!xtra_speedo && !kartzspeedo && !achi_speedo) // why bother? OP_SaturnMenu[sm_speedometer].status = IT_GRAYEDOUT; - if (!xtra_speedo && kartzspeedo) - OP_SaturnMenu[sm_speedometer].text = "Speedometer (No Small)"; + //if (!xtra_speedo && kartzspeedo) + //OP_SaturnMenu[sm_speedometer].text = "Speedometer (No Small)"; - if (xtra_speedo && !kartzspeedo) - OP_SaturnMenu[sm_speedometer].text = "Speedometer (No PMeter)"; + //if (xtra_speedo && !kartzspeedo) + //OP_SaturnMenu[sm_speedometer].text = "Speedometer (No PMeter)"; + // idk i dont wanna bother with this tbh lmao if (!clr_hud){ // uhguauhauguuhee OP_SaturnMenu[sm_colorhud].status = IT_GRAYEDOUT; -- 2.54.0 From 47f545068a7c7310755aa10576911a75b9462f0c Mon Sep 17 00:00:00 2001 From: Alug Date: Fri, 9 Feb 2024 12:19:32 +0100 Subject: [PATCH 07/13] forgor this somehow --- src/k_kart.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index aa3d8c11c..d9496a30a 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -7358,16 +7358,6 @@ void K_LoadKartHUDGraphics(void) } kp_yougotem = (patch_t *) W_CachePatchName("YOUGOTEM", PU_HUDGFX); - - if (snw_speedo) // snowy speedometer - { - skp_smallsticker = W_CachePatchName("SP_SMSTC", PU_HUDGFX); - skp_speedpatches[0] = W_CachePatchName("K_TRNULL", PU_HUDGFX); // lolxd - skp_speedpatches[1] = W_CachePatchName("SP_MKMH", PU_HUDGFX); - skp_speedpatches[2] = W_CachePatchName("SP_MMPH", PU_HUDGFX); - skp_speedpatches[3] = W_CachePatchName("SP_MFRAC", PU_HUDGFX); - skp_speedpatches[4] = W_CachePatchName("SP_MPERC", PU_HUDGFX); - } } // For the item toggle menu -- 2.54.0 From 8a45a784a0d3541147da4b588c9d6777fb81cc69 Mon Sep 17 00:00:00 2001 From: Alug Date: Fri, 9 Feb 2024 12:33:58 +0100 Subject: [PATCH 08/13] proper check for colourized speedometer patches --- src/d_main.c | 10 +++++++++- src/d_main.h | 2 ++ src/k_kart.c | 30 ++++++++++++++---------------- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 0b22e9afb..1bddb9d07 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1078,7 +1078,9 @@ boolean found_extra_kart; boolean found_extra2_kart; boolean xtra_speedo; // extra speedometer check +boolean xtra_speedo_clr; // extra speedometer colour check boolean achi_speedo; // achiiro speedometer check +boolean achi_speedo_clr; // extra speedometer colour check boolean clr_hud; // colour hud check boolean big_lap; // bigger lap counter boolean big_lap_color; // bigger lap counter but colour @@ -1449,9 +1451,15 @@ void D_SRB2Main(void) if (W_CheckMultipleLumps("SP_SMSTC", "K_TRNULL", "SP_MKMH", "SP_MMPH", "SP_MFRAC", "SP_MPERC", NULL)) xtra_speedo = true; + if (W_CheckMultipleLumps("SC_SMSTC", NULL)) + xtra_speedo_clr = true; + // now check for achii speedometer stuff if (W_CheckMultipleLumps("SP_AMSTC", "K_TRNULL", "SP_AKMH", "SP_AMPH", "SP_AFRAC", "SP_APERC", NULL)) achi_speedo = true; + + if (W_CheckMultipleLumps("SC_AMSTC", "K_TRNULL", "SC_AKMH", "SC_AMPH", "SC_AFRAC", "SC_APERC", NULL)) + achi_speedo_clr = true; // check for bigger lap count if (W_CheckMultipleLumps("K_STLAPB", "K_STLA2B", NULL)) @@ -1459,7 +1467,7 @@ void D_SRB2Main(void) // now check for colour hud stuff if (W_CheckMultipleLumps("K_SCTIME", "K_SCTIMW", "K_SCLAPS", "K_SCLAPW", \ - "K_SCBALN", "K_SCBALW", "K_SCKARM", "K_SCTOUT", "K_ISMULC", "K_ITMULC", "K_ITBC","K_ITBCD", "K_ISBC", "K_ISBCD", NULL)) + "K_SCBALN", "K_SCBALW", "K_SCKARM", "K_SCTOUT", "K_ISMULC", "K_ITMULC", "K_ITBC", "K_ITBCD", "K_ISBC", "K_ISBCD", NULL)) clr_hud = true; // check for bigger lap count but color** its color bitch diff --git a/src/d_main.h b/src/d_main.h index a0fa6f0ce..fde388921 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -29,7 +29,9 @@ extern boolean found_extra_kart; // for use in k_kart.c extern boolean found_extra2_kart; // for use in k_kart.c extern boolean xtra_speedo; // extra speedometer check +extern boolean xtra_speedo_clr; // extra speedometer colour check extern boolean achi_speedo; // achiiro speedometer check +extern boolean achi_speedo_clr; // extra speedometer colour check extern boolean clr_hud; // colour hud check extern boolean big_lap; // bigger lap counter extern boolean big_lap_color; //bigger lap counter but colour diff --git a/src/k_kart.c b/src/k_kart.c index d9496a30a..f8e9ec2ae 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -7063,8 +7063,8 @@ void K_LoadKartHUDGraphics(void) } if (big_lap){ - kp_lapstickerbig = W_CachePatchName("K_STLAPB", PU_HUDGFX); - kp_lapstickerbig2 = W_CachePatchName("K_STLA2B", PU_HUDGFX); + kp_lapstickerbig = W_CachePatchName("K_STLAPB", PU_HUDGFX); + kp_lapstickerbig2 = W_CachePatchName("K_STLA2B", PU_HUDGFX); } //Colourized hud @@ -7089,10 +7089,10 @@ void K_LoadKartHUDGraphics(void) kp_lapstickerbig2clr = W_CachePatchName("K_SCLA2B", PU_HUDGFX); } - if (xtra_speedo) + if (xtra_speedo && xtra_speedo_clr) skp_smallstickerclr = W_CachePatchName("SC_SMSTC", PU_HUDGFX); - if (achi_speedo) + if (achi_speedo && achi_speedo_clr) { skp_smallstickerachiclr = W_CachePatchName("SC_AMSTC", PU_HUDGFX); skp_speedpatchesachiclr[0] = W_CachePatchName("K_TRNULL", PU_HUDGFX); // lolxd @@ -8740,15 +8740,13 @@ static void K_drawKartSpeedometer(void) } else if (cv_newspeedometer.value == 2 && xtra_speedo) // why bother if we dont? { - if (!K_UseColorHud()) - //V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallsticker)); - V_DrawStretchyFixedPatch((SPDM_X-1)< Date: Tue, 19 Mar 2024 15:17:02 +0100 Subject: [PATCH 09/13] change stuff to retain backwards compat add extra 3 which can be used for whatever you like mainly cause i want to keep my indev kart hud also cool way to downscale patches without them looking bad --- src/d_main.c | 22 ++++++++++++++++++++++ src/d_main.h | 3 +++ src/k_kart.c | 44 +++++++++++++++++++++++++++++++++++--------- 3 files changed, 60 insertions(+), 9 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 7892dd899..67fd412e4 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1073,9 +1073,12 @@ static boolean AddIWAD(void) // extra graphic patches for saturn specific thingies boolean found_extra_kart; boolean found_extra2_kart; +boolean found_extra3_kart; boolean xtra_speedo; // extra speedometer check boolean xtra_speedo_clr; // extra speedometer colour check +boolean xtra_speedo3; // 80x 11 extra speedometer check +boolean xtra_speedo_clr3; // 80x 11 extra speedometer colour check boolean achi_speedo; // achiiro speedometer check boolean achi_speedo_clr; // extra speedometer colour check boolean clr_hud; // colour hud check @@ -1091,6 +1094,7 @@ static void IdentifyVersion(void) const char *srb2waddir = NULL; found_extra_kart = false; found_extra2_kart = false; + found_extra3_kart = false; #if defined (__unix__) || defined (UNIXCOMMON) || defined (HAVE_SDL) // change to the directory where 'srb2.srb' is found @@ -1148,6 +1152,11 @@ static void IdentifyVersion(void) D_AddFile(va(pandf,srb2waddir,"extra2.kart"), startupwadfiles); found_extra2_kart = true; } + + if (FIL_ReadFileOK(va(pandf,srb2waddir,"extra3.kart"))) { + D_AddFile(va(pandf,srb2waddir,"extra3.kart"), startupwadfiles); + found_extra3_kart = true; + } #if !defined (HAVE_SDL) || defined (HAVE_MIXER) #define MUSICTEST(str) \ @@ -1493,6 +1502,19 @@ void D_SRB2Main(void) driftgaugegfx = true; } + if (found_extra3_kart) + { + if (found_extra3_kart) + mainwads++; + + // 80x11 speedometer crap + if (W_CheckMultipleLumps("SP_SM3TC", NULL)) + xtra_speedo3 = true; + + if (W_CheckMultipleLumps("SC_SM3TC", NULL)) + xtra_speedo_clr3 = true; + } + // // search for maps // diff --git a/src/d_main.h b/src/d_main.h index 45a2e5221..23fb31619 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -27,9 +27,12 @@ extern char srb2path[256]; //Alam: SRB2's Home extern boolean found_extra_kart; // for use in k_kart.c extern boolean found_extra2_kart; // for use in k_kart.c +extern boolean found_extra3_kart; // for use in k_kart.c extern boolean xtra_speedo; // extra speedometer check extern boolean xtra_speedo_clr; // extra speedometer colour check +extern boolean xtra_speedo3; // 80x11 extra speedometer check +extern boolean xtra_speedo_clr3; // 80x11 extra speedometer colour check extern boolean achi_speedo; // achiiro speedometer check extern boolean achi_speedo_clr; // extra speedometer colour check extern boolean clr_hud; // colour hud check diff --git a/src/k_kart.c b/src/k_kart.c index 4024a75dd..356308724 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -74,7 +74,7 @@ IMPL_HUD_OFFSET(stat); // Stats consvar_t cv_showstats = {"showstats", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_showinput = {"showinput", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; -static CV_PossibleValue_t speedo_cons_t[] = {{1, "Default"}, {2, "Small"}, {3, "Achii"}, {4, "P-Meter"}, {0, NULL}}; +static CV_PossibleValue_t speedo_cons_t[] = {{1, "Default"}, {2, "Small"}, {3, "Achii"}, {4, "P-Meter"}, {5, "Extra 3"}, {0, NULL}}; consvar_t cv_newspeedometer = {"newspeedometer", "Default", CV_SAVE, speedo_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; //hardcode saltyhop mhhm @@ -6941,6 +6941,7 @@ static patch_t *kp_bumperstickerwideclr; static patch_t *kp_karmastickerclr; static patch_t *kp_timeoutstickerclr; static patch_t *skp_smallstickerclr; +static patch_t *skp_smallstickerclr3; static patch_t *kp_itemmulstickerclr[2]; static patch_t *kp_itembgclr[4]; @@ -7021,6 +7022,7 @@ static patch_t *driftgaugesmallcolor; static patch_t *kp_yougotem; static patch_t *skp_smallsticker; +static patch_t *skp_smallsticker3; static patch_t *skp_speedpatches[5]; static patch_t *skp_smallstickerachi; @@ -7058,6 +7060,11 @@ void K_LoadKartHUDGraphics(void) skp_speedpatches[3] = W_CachePatchName("SP_MFRAC", PU_HUDGFX); skp_speedpatches[4] = W_CachePatchName("SP_MPERC", PU_HUDGFX); } + + if (xtra_speedo3) // 80x11 patch scaled to size + { + skp_smallsticker3 = W_CachePatchName("SP_SM3TC", PU_HUDGFX); + } if (achi_speedo) { @@ -7098,6 +7105,9 @@ void K_LoadKartHUDGraphics(void) if (xtra_speedo && xtra_speedo_clr) skp_smallstickerclr = W_CachePatchName("SC_SMSTC", PU_HUDGFX); + + if (xtra_speedo3 && xtra_speedo_clr3) // 80x11 patch scaled to size + skp_smallstickerclr3 = W_CachePatchName("SC_SM3TC", PU_HUDGFX); if (achi_speedo && achi_speedo_clr) { @@ -7768,7 +7778,7 @@ static void K_drawKartStats(void) //Internal offset for speedometer if (cv_kartspeedometer.value) { - if ((cv_newspeedometer.value == 2 && xtra_speedo) || (cv_newspeedometer.value == 3 && achi_speedo)) + if ((cv_newspeedometer.value == 2 && xtra_speedo) || (cv_newspeedometer.value == 3 && achi_speedo) || (cv_newspeedometer.value == 5 && xtra_speedo3)) spdoffset = -10; else spdoffset = -14; @@ -8766,7 +8776,7 @@ static void K_drawKartSpeedometer(void) } // man. - if ((cv_newspeedometer.value == 1) || (cv_newspeedometer.value == 2 && !xtra_speedo) || (cv_newspeedometer.value == 3 && !achi_speedo) || (cv_newspeedometer.value == 4 && !kartzspeedo)) + if ((cv_newspeedometer.value == 1) || (cv_newspeedometer.value == 2 && !xtra_speedo) || (cv_newspeedometer.value == 3 && !achi_speedo) || (cv_newspeedometer.value == 4 && !kartzspeedo) || (cv_newspeedometer.value == 5 && !xtra_speedo3)) { switch (speedtype) { case 1: @@ -8793,14 +8803,16 @@ static void K_drawKartSpeedometer(void) if (K_UseColorHud() && xtra_speedo_clr) //Colourized hud { UINT8 *colormap = R_GetTranslationColormap(TC_DEFAULT, K_GetHudColor(), GTC_CACHE); - V_DrawStretchyFixedPatch((SPDM_X-1)< Date: Tue, 19 Mar 2024 15:29:35 +0100 Subject: [PATCH 10/13] just call it extra lul --- src/k_kart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 356308724..ed22ca8d7 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -74,7 +74,7 @@ IMPL_HUD_OFFSET(stat); // Stats consvar_t cv_showstats = {"showstats", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_showinput = {"showinput", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; -static CV_PossibleValue_t speedo_cons_t[] = {{1, "Default"}, {2, "Small"}, {3, "Achii"}, {4, "P-Meter"}, {5, "Extra 3"}, {0, NULL}}; +static CV_PossibleValue_t speedo_cons_t[] = {{1, "Default"}, {2, "Small"}, {3, "Achii"}, {4, "P-Meter"}, {5, "Extra"}, {0, NULL}}; consvar_t cv_newspeedometer = {"newspeedometer", "Default", CV_SAVE, speedo_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; //hardcode saltyhop mhhm -- 2.54.0 From 41c8988c90fff10dc9a21aa9f6746130e9273280 Mon Sep 17 00:00:00 2001 From: Alug Date: Tue, 19 Mar 2024 19:05:34 +0100 Subject: [PATCH 11/13] remove reduntand code those do not need a colormap --- src/k_kart.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index ed22ca8d7..93d247f60 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -8804,15 +8804,12 @@ static void K_drawKartSpeedometer(void) { UINT8 *colormap = R_GetTranslationColormap(TC_DEFAULT, K_GetHudColor(), GTC_CACHE); V_DrawMappedPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallstickerclr), colormap); - V_DrawRankNum(SPDM_X + 26, SPDM_Y + 4, V_HUDTRANS|splitflags, convSpeed, 3, NULL); - V_DrawMappedPatch(SPDM_X + 31, SPDM_Y + 4, V_HUDTRANS|splitflags, skp_speedpatches[cv_kartspeedometer.value], colormap); } else - { V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, (V_HUDTRANS|splitflags), (skp_smallsticker)); - V_DrawRankNum(SPDM_X + 26, SPDM_Y + 4, V_HUDTRANS|splitflags, convSpeed, 3, NULL); - V_DrawScaledPatch(SPDM_X + 31, SPDM_Y + 4, V_HUDTRANS|splitflags, skp_speedpatches[cv_kartspeedometer.value]); - } + + V_DrawRankNum(SPDM_X + 26, SPDM_Y + 4, V_HUDTRANS|splitflags, convSpeed, 3, NULL); + V_DrawScaledPatch(SPDM_X + 31, SPDM_Y + 4, V_HUDTRANS|splitflags, skp_speedpatches[cv_kartspeedometer.value]); } else if (cv_newspeedometer.value == 3 && achi_speedo) // why bother if we dont? { @@ -8841,7 +8838,6 @@ static void K_drawKartSpeedometer(void) V_DrawStretchyFixedPatch((SPDM_X-1)< Date: Tue, 19 Mar 2024 21:07:53 +0300 Subject: [PATCH 12/13] Change speedo_cons_t depending on if required lumps are found --- src/d_main.c | 29 +++++++++++++++++++++++++---- src/k_kart.c | 2 +- src/k_kart.h | 3 +++ 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 67fd412e4..330c7cc7f 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -69,6 +69,7 @@ #include "filesrch.h" // refreshdirmenu, pathisdirectory #include "d_protocol.h" #include "m_perfstats.h" +#include "k_kart.h" #include "lua_script.h" @@ -1447,6 +1448,11 @@ void D_SRB2Main(void) #endif //ifndef DEVELOP + // Possible value that changes depending on whether required files for speedometer are found or not + CV_PossibleValue_t speedo_cons_temp[NUMSPEEDOSTUFF] = {{1, "Default"}, {0, NULL}, {0, NULL}, {0, NULL}, {0, NULL}, {0, NULL}}; + unsigned last_speedo_i = 0; +#define PUSHSPEEDO(id, name) { ++last_speedo_i; speedo_cons_temp[last_speedo_i].value = id; speedo_cons_temp[last_speedo_i].strvalue = name; CONS_Printf("[speedostuff] Added %s!\n", name); } + if (found_extra_kart || found_extra2_kart) // found the funny, add it in! { // HAYA: These are seperated for a reason lmao @@ -1457,15 +1463,21 @@ void D_SRB2Main(void) // now check for extra speedometer stuff if (W_CheckMultipleLumps("SP_SMSTC", "K_TRNULL", "SP_MKMH", "SP_MMPH", "SP_MFRAC", "SP_MPERC", NULL)) + { xtra_speedo = true; - + PUSHSPEEDO(2, "Small"); + } + if (W_CheckMultipleLumps("SC_SMSTC", NULL)) xtra_speedo_clr = true; // now check for achii speedometer stuff if (W_CheckMultipleLumps("SP_AMSTC", "K_TRNULL", "SP_AKMH", "SP_AMPH", "SP_AFRAC", "SP_APERC", NULL)) + { achi_speedo = true; - + PUSHSPEEDO(3, "Achii"); + } + if (W_CheckMultipleLumps("SC_AMSTC", "K_TRNULL", "SC_AKMH", "SC_AMPH", "SC_AFRAC", "SC_APERC", NULL)) achi_speedo_clr = true; @@ -1486,8 +1498,11 @@ void D_SRB2Main(void) if (W_CheckMultipleLumps("K_KZSP1", "K_KZSP2", "K_KZSP3", "K_KZSP4", "K_KZSP5", \ "K_KZSP6", "K_KZSP7", "K_KZSP8", "K_KZSP9", "K_KZSP10", "K_KZSP11", "K_KZSP12", \ "K_KZSP13", "K_KZSP14", "K_KZSP15", "K_KZSP16", "K_KZSP17", "K_KZSP18", "K_KZSP19", \ - "K_KZSP20", "K_KZSP21", "K_KZSP22", "K_KZSP23", "K_KZSP24", "K_KZSP25", NULL)) + "K_KZSP20", "K_KZSP21", "K_KZSP22", "K_KZSP23", "K_KZSP24", "K_KZSP25", NULL)) + { kartzspeedo = true; + PUSHSPEEDO(4, "P-Meter"); + } // stat display for extended player setup if (W_CheckMultipleLumps("K_STATNB", "K_STATN1", "K_STATN2", "K_STATN3", "K_STATN4", \ @@ -1497,7 +1512,7 @@ void D_SRB2Main(void) // Nametag stuffs if (W_CheckMultipleLumps("NTLINE", "NTLINEV", "NTSP", "NTWH", NULL)) nametaggfx = true; - + if (W_CheckMultipleLumps("K_DGAU","K_DCAU","K_DGSU","K_DCSU", NULL)) driftgaugegfx = true; } @@ -1509,12 +1524,18 @@ void D_SRB2Main(void) // 80x11 speedometer crap if (W_CheckMultipleLumps("SP_SM3TC", NULL)) + { xtra_speedo3 = true; + PUSHSPEEDO(5, "Extra"); + } if (W_CheckMultipleLumps("SC_SM3TC", NULL)) xtra_speedo_clr3 = true; } +#undef PUSHSPEEDO + memcpy(speedo_cons_t, speedo_cons_temp, sizeof(speedo_cons_t)); + // // search for maps // diff --git a/src/k_kart.c b/src/k_kart.c index 93d247f60..c854ed116 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -74,7 +74,7 @@ IMPL_HUD_OFFSET(stat); // Stats consvar_t cv_showstats = {"showstats", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_showinput = {"showinput", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; -static CV_PossibleValue_t speedo_cons_t[] = {{1, "Default"}, {2, "Small"}, {3, "Achii"}, {4, "P-Meter"}, {5, "Extra"}, {0, NULL}}; +CV_PossibleValue_t speedo_cons_t[NUMSPEEDOSTUFF]; consvar_t cv_newspeedometer = {"newspeedometer", "Default", CV_SAVE, speedo_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; //hardcode saltyhop mhhm diff --git a/src/k_kart.h b/src/k_kart.h index a486f8cf2..66307aa8a 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -32,6 +32,9 @@ extern consvar_t cv_stat_xoffset; extern consvar_t cv_stat_yoffset; extern consvar_t cv_showstats; +#define NUMSPEEDOSTUFF 6 +extern CV_PossibleValue_t speedo_cons_t[NUMSPEEDOSTUFF]; + boolean K_IsPlayerLosing(player_t *player); boolean K_IsPlayerWanted(player_t *player); void K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean solid); -- 2.54.0 From 46955b76369630eaa4e82da81b7e1431f4fc33b0 Mon Sep 17 00:00:00 2001 From: Indev Date: Tue, 19 Mar 2024 21:22:21 +0300 Subject: [PATCH 13/13] Remove debug print oops --- src/d_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_main.c b/src/d_main.c index 330c7cc7f..34b940494 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1451,7 +1451,7 @@ void D_SRB2Main(void) // Possible value that changes depending on whether required files for speedometer are found or not CV_PossibleValue_t speedo_cons_temp[NUMSPEEDOSTUFF] = {{1, "Default"}, {0, NULL}, {0, NULL}, {0, NULL}, {0, NULL}, {0, NULL}}; unsigned last_speedo_i = 0; -#define PUSHSPEEDO(id, name) { ++last_speedo_i; speedo_cons_temp[last_speedo_i].value = id; speedo_cons_temp[last_speedo_i].strvalue = name; CONS_Printf("[speedostuff] Added %s!\n", name); } +#define PUSHSPEEDO(id, name) { ++last_speedo_i; speedo_cons_temp[last_speedo_i].value = id; speedo_cons_temp[last_speedo_i].strvalue = name; } if (found_extra_kart || found_extra2_kart) // found the funny, add it in! { -- 2.54.0