From d1bdd7e9dcfc27924d53ce3480afde0ff7e9cdd9 Mon Sep 17 00:00:00 2001 From: alufolie91 Date: Mon, 14 Aug 2023 01:23:44 +0200 Subject: [PATCH 1/3] Add spinning character preview in character select screen --- src/d_netcmd.c | 4 ++++ src/d_netcmd.h | 2 ++ src/m_menu.c | 15 ++++++++++++--- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 33697e97c..f8209df27 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -484,6 +484,8 @@ consvar_t cv_mute = {"mute", "Off", CV_NETVAR|CV_CALL, CV_OnOff, Mute_OnChange, consvar_t cv_sleep = {"cpusleep", "1", CV_SAVE, sleeping_cons_t, NULL, -1, NULL, NULL, 0, 0, NULL}; +consvar_t cv_skinselectspin = {"skinselectspin", "4", CV_SAVE, CV_Unsigned, NULL, 0, NULL, NULL, 0, 0, NULL}; + static CV_PossibleValue_t perfstats_cons_t[] = { {0, "Off"}, {1, "Rendering"}, {2, "Logic"}, {3, "ThinkFrame"}, {0, NULL}}; consvar_t cv_perfstats = {"perfstats", "Off", CV_CALL, perfstats_cons_t, PS_PerfStats_OnChange, 0, NULL, NULL, 0, 0, NULL}; @@ -1072,6 +1074,8 @@ void D_RegisterClientCommands(void) CV_RegisterVar(&cv_scr_height); CV_RegisterVar(&cv_soundtest); + + CV_RegisterVar(&cv_skinselectspin); CV_RegisterVar(&cv_perfstats); CV_RegisterVar(&cv_ps_thinkframe_page); diff --git a/src/d_netcmd.h b/src/d_netcmd.h index b45756aac..5d7c7d62e 100644 --- a/src/d_netcmd.h +++ b/src/d_netcmd.h @@ -156,6 +156,8 @@ extern consvar_t cv_skipmapcheck; extern consvar_t cv_sleep; +extern consvar_t cv_skinselectspin; + extern consvar_t cv_perfstats; extern consvar_t cv_ps_thinkframe_page; extern consvar_t cv_ps_samplesize; diff --git a/src/m_menu.c b/src/m_menu.c index e38d73622..ce3c7b455 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -9903,6 +9903,7 @@ static void M_DrawSetupMultiPlayerMenu(void) UINT8 s, w; const UINT8 *flashcol = V_GetStringColormap(highlightflags); INT32 statx, staty; + UINT32 speenframe; INT32 sltw, actw, hetw; UINT8 skintodisplay; INT32 nameboxaddy = 0; @@ -10361,9 +10362,17 @@ static void M_DrawSetupMultiPlayerMenu(void) frame = 0; // Try to use standing frame sprframe = &sprdef->spriteframes[frame]; - patch = W_CachePatchNum(sprframe->lumppat[1], PU_CACHE); - if (sprframe->flip & 1) // Only for first sprite - flags |= V_FLIP; // This sprite is left/right flipped! + + //minenice's speen css, it's a piece of shit but hey + //patch = W_CachePatchNum(sprframe->lumppat[1], PU_CACHE); + speenframe = (I_GetTime()*cv_skinselectspin.value/TICRATE + 1)%8; + + //this is a very shitty solution for checking if a sprite needs flipping + //but it works + if ((sprframe->lumppat[speenframe] == sprframe->lumppat[8-speenframe]) && (speenframe > 4)) { + flags = V_FLIP; // This sprite is left/right flipped! + } + patch = W_CachePatchNum(sprframe->lumppat[speenframe], PU_CACHE); // draw box around guy V_DrawFill(mx + 43 - (charw/2), my+65, charw, 84, 239); -- 2.54.0 From c1e24cd97f44e22bd0a6fb482dd7bc624837e1e4 Mon Sep 17 00:00:00 2001 From: alufolie91 Date: Mon, 14 Aug 2023 01:33:41 +0200 Subject: [PATCH 2/3] Add skin select spin to menu also set max value to 10 and rename some stuff noone needs a speed of 9999999 lmao --- src/d_netcmd.c | 4 +++- src/m_menu.c | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index f8209df27..b3ca5ca30 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -484,7 +484,9 @@ consvar_t cv_mute = {"mute", "Off", CV_NETVAR|CV_CALL, CV_OnOff, Mute_OnChange, consvar_t cv_sleep = {"cpusleep", "1", CV_SAVE, sleeping_cons_t, NULL, -1, NULL, NULL, 0, 0, NULL}; -consvar_t cv_skinselectspin = {"skinselectspin", "4", CV_SAVE, CV_Unsigned, NULL, 0, NULL, NULL, 0, 0, NULL}; +static CV_PossibleValue_t skinselectspin_cons_t[] = { + {0, "Off"}, {1, "Slow"}, {2, "2"}, {3, "3"}, {4, "4"}, {5, "5"}, {6, "6"}, {7, "7"}, {8, "8"}, {9, "9"}, {10, "Fast"}, {0, NULL}}; +consvar_t cv_skinselectspin = {"skinselectspin", "5", CV_SAVE, skinselectspin_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; static CV_PossibleValue_t perfstats_cons_t[] = { {0, "Off"}, {1, "Rendering"}, {2, "Logic"}, {3, "ThinkFrame"}, {0, NULL}}; diff --git a/src/m_menu.c b/src/m_menu.c index ce3c7b455..6284af50c 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -1688,8 +1688,10 @@ static menuitem_t OP_SaturnMenu[] = {IT_STRING | IT_CVAR, NULL, "Serverqueue waittime", &cv_connectawaittime, 40}, {IT_STRING | IT_CVAR, NULL, "Addon Download Speed", &cv_downloadspeed, 55}, {IT_STRING | IT_CVAR, NULL, "Less Flicker effects", &cv_lessflicker, 70}, - {IT_SUBMENU|IT_STRING, NULL, "Player distortion...", &OP_PlayerDistortDef, 90}, - {IT_SUBMENU|IT_STRING, NULL, "Hud Offsets...", &OP_HudOffsetDef, 105}, + {IT_STRING | IT_CVAR, NULL, "Skin Select Spinning Speed", &cv_skinselectspin, 80}, + + {IT_SUBMENU|IT_STRING, NULL, "Player distortion...", &OP_PlayerDistortDef, 100}, + {IT_SUBMENU|IT_STRING, NULL, "Hud Offsets...", &OP_HudOffsetDef, 115}, //{IT_SUBMENU|IT_STRING, NULL, "Saturn Credits", &OP_SaturnCreditsDef, 130}, }; -- 2.54.0 From 3dcb2e7854ba8e7c73f55d5d3d4ac49f4495a477 Mon Sep 17 00:00:00 2001 From: Indev Date: Fri, 18 Aug 2023 16:50:12 +0300 Subject: [PATCH 3/3] Funny pain spin --- src/d_netcmd.c | 2 +- src/d_netcmd.h | 1 + src/m_menu.c | 10 +++++----- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index b3ca5ca30..6043141b3 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -485,7 +485,7 @@ consvar_t cv_mute = {"mute", "Off", CV_NETVAR|CV_CALL, CV_OnOff, Mute_OnChange, consvar_t cv_sleep = {"cpusleep", "1", CV_SAVE, sleeping_cons_t, NULL, -1, NULL, NULL, 0, 0, NULL}; static CV_PossibleValue_t skinselectspin_cons_t[] = { - {0, "Off"}, {1, "Slow"}, {2, "2"}, {3, "3"}, {4, "4"}, {5, "5"}, {6, "6"}, {7, "7"}, {8, "8"}, {9, "9"}, {10, "Fast"}, {0, NULL}}; + {0, "Off"}, {1, "Slow"}, {2, "2"}, {3, "3"}, {4, "4"}, {5, "5"}, {6, "6"}, {7, "7"}, {8, "8"}, {9, "9"}, {10, "Fast"}, {SKINSELECTSPIN_PAIN, "Pain"}, {0, NULL}}; consvar_t cv_skinselectspin = {"skinselectspin", "5", CV_SAVE, skinselectspin_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; static CV_PossibleValue_t perfstats_cons_t[] = { diff --git a/src/d_netcmd.h b/src/d_netcmd.h index 5d7c7d62e..e92289397 100644 --- a/src/d_netcmd.h +++ b/src/d_netcmd.h @@ -156,6 +156,7 @@ extern consvar_t cv_skipmapcheck; extern consvar_t cv_sleep; +#define SKINSELECTSPIN_PAIN 25 extern consvar_t cv_skinselectspin; extern consvar_t cv_perfstats; diff --git a/src/m_menu.c b/src/m_menu.c index 6284af50c..e70ab967f 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -10315,7 +10315,7 @@ static void M_DrawSetupMultiPlayerMenu(void) multi_tics -= renderdeltatics; while (multi_tics <= 0) { - st = multi_state->nextstate; + st = cv_skinselectspin.value == SKINSELECTSPIN_PAIN ? S_KART_PAIN : multi_state->nextstate; if (st != S_NULL) multi_state = &states[st]; @@ -10752,7 +10752,7 @@ static void M_SetupMultiPlayer(INT32 choice) { (void)choice; - multi_state = &states[mobjinfo[MT_PLAYER].seestate]; + multi_state = cv_skinselectspin.value == SKINSELECTSPIN_PAIN ? &states[S_KART_PAIN] : &states[mobjinfo[MT_PLAYER].seestate]; multi_tics = multi_state->tics*FRACUNIT; strcpy(setupm_name, cv_playername.string); @@ -10789,7 +10789,7 @@ static void M_SetupMultiPlayer2(INT32 choice) { (void)choice; - multi_state = &states[mobjinfo[MT_PLAYER].seestate]; + multi_state = cv_skinselectspin.value == SKINSELECTSPIN_PAIN ? &states[S_KART_PAIN] : &states[mobjinfo[MT_PLAYER].seestate]; multi_tics = multi_state->tics*FRACUNIT; strcpy (setupm_name, cv_playername2.string); @@ -10826,7 +10826,7 @@ static void M_SetupMultiPlayer3(INT32 choice) { (void)choice; - multi_state = &states[mobjinfo[MT_PLAYER].seestate]; + multi_state = cv_skinselectspin.value == SKINSELECTSPIN_PAIN ? &states[S_KART_PAIN] : &states[mobjinfo[MT_PLAYER].seestate]; multi_tics = multi_state->tics; strcpy(setupm_name, cv_playername3.string); @@ -10863,7 +10863,7 @@ static void M_SetupMultiPlayer4(INT32 choice) { (void)choice; - multi_state = &states[mobjinfo[MT_PLAYER].seestate]; + multi_state = cv_skinselectspin.value == SKINSELECTSPIN_PAIN ? &states[S_KART_PAIN] : &states[mobjinfo[MT_PLAYER].seestate]; multi_tics = multi_state->tics; strcpy(setupm_name, cv_playername4.string); -- 2.54.0