mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'drawinput-profile-option' into 'master'
Input Display fixes Closes #1085 See merge request KartKrew/Kart!1989
This commit is contained in:
commit
102fdf5978
6 changed files with 46 additions and 18 deletions
|
|
@ -359,6 +359,7 @@ consvar_t cv_drawdist_precip = Player("drawdist_precip", "1024").values({
|
|||
{0, "None"},
|
||||
});
|
||||
|
||||
consvar_t cv_drawinput = Player("drawinput", "No").yes_no();
|
||||
consvar_t cv_ffloorclip = Player("ffloorclip", "On").on_off();
|
||||
|
||||
consvar_t cv_fpscap = Player("fpscap", "Match refresh rate").values({
|
||||
|
|
@ -445,7 +446,6 @@ consvar_t cv_showfocuslost = Player("showfocuslost", "Yes").yes_no();
|
|||
void R_SetViewSize(void);
|
||||
consvar_t cv_showhud = Player("showhud", "Yes").yes_no().onchange(R_SetViewSize).dont_save();
|
||||
|
||||
consvar_t cv_showinputjoy = Player("showinputjoy", "Off").on_off().dont_save();
|
||||
consvar_t cv_skybox = Player("skybox", "On").on_off();
|
||||
|
||||
// Display song credits
|
||||
|
|
@ -892,7 +892,6 @@ consvar_t cv_debugrender_spriteclip = PlayerCheat("debugrender_spriteclip", "Off
|
|||
consvar_t cv_debugrender_visplanes = PlayerCheat("debugrender_visplanes", "Off").on_off().description("Highlight the number of visplanes");
|
||||
consvar_t cv_devmode_screen = PlayerCheat("devmode_screen", "1").min_max(1, 4).description("Choose which splitscreen player devmode applies to");
|
||||
consvar_t cv_drawpickups = PlayerCheat("drawpickups", "Yes").yes_no().description("Hide rings, spheres, item capsules, prison capsules (visual only)");
|
||||
consvar_t cv_drawinput = PlayerCheat("drawinput", "No").yes_no().description("Draw turn inputs outside of Record Attack (turn solver debugging)");
|
||||
|
||||
void lua_profile_OnChange(void);
|
||||
consvar_t cv_lua_profile = PlayerCheat("lua_profile", "0").values(CV_Unsigned).onchange(lua_profile_OnChange).description("Show hook timings over an average of N tics");
|
||||
|
|
|
|||
|
|
@ -927,7 +927,6 @@ extern tic_t g_fast_forward;
|
|||
|
||||
#include "d_clisrv.h"
|
||||
|
||||
extern consvar_t cv_showinputjoy; // display joystick in time attack
|
||||
extern consvar_t cv_forceskin; // force clients to use the server's skin
|
||||
extern consvar_t cv_downloading; // allow clients to downloading WADs.
|
||||
extern consvar_t cv_nettimeout; // SRB2Kart: Advanced server options menu
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
// See the 'LICENSE' file for more details.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
|
||||
#include <fmt/format.h>
|
||||
|
|
@ -18,6 +19,8 @@
|
|||
#include "../i_joy.h"
|
||||
#include "../k_hud.h"
|
||||
#include "../k_kart.h"
|
||||
#include "../m_easing.h"
|
||||
#include "../p_tick.h"
|
||||
#include "../v_draw.hpp"
|
||||
|
||||
using srb2::Draw;
|
||||
|
|
@ -59,8 +62,21 @@ const char* dpad_suffix(const Vec2<float>& v)
|
|||
|
||||
}; // namespace
|
||||
|
||||
void K_DrawInputDisplay(INT32 x, INT32 y, INT32 flags, char mode, UINT8 pid, boolean local, boolean transparent)
|
||||
void K_DrawInputDisplay(float x, float y, INT32 flags, char mode, UINT8 pid, boolean local, boolean transparent)
|
||||
{
|
||||
auto fade_in = []
|
||||
{
|
||||
constexpr tic_t kStart = TICRATE;
|
||||
constexpr tic_t kDuration = TICRATE/2;
|
||||
fixed_t f = std::min(std::max(leveltime, kStart) - kStart, kDuration) * FRACUNIT / kDuration;
|
||||
return Easing_Linear(f, 0, 9);
|
||||
};
|
||||
auto alpha_to_flag = [](int alpha) { return (9 - alpha) << V_ALPHASHIFT; };
|
||||
|
||||
int alpha = fade_in();
|
||||
if (alpha == 0)
|
||||
return;
|
||||
|
||||
const ticcmd_t& cmd = players[displayplayers[pid]].cmd;
|
||||
const boolean analog = (mode == '4' || mode == '5') ? players[displayplayers[pid]].analoginput : false;
|
||||
const std::string prefix = fmt::format("PR{}", mode);
|
||||
|
|
@ -73,7 +89,8 @@ void K_DrawInputDisplay(INT32 x, INT32 y, INT32 flags, char mode, UINT8 pid, boo
|
|||
|
||||
Draw box = Draw(x, y).flags(flags);
|
||||
|
||||
box.flags(transparent ? V_TRANSLUCENT : 0).patch(gfx("CONT"));
|
||||
box.flags(alpha_to_flag(alpha / (transparent ? 2 : 1))).patch(gfx("CONT"));
|
||||
box = box.flags(alpha_to_flag(alpha));
|
||||
|
||||
Vec2<float> dpad = local ?
|
||||
Vec2<float> {
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
#include "g_party.h"
|
||||
#include "k_hitlag.h"
|
||||
#include "g_input.h"
|
||||
#include "k_dialogue.h"
|
||||
|
||||
//{ Patch Definitions
|
||||
static patch_t *kp_nodraw;
|
||||
|
|
@ -5163,19 +5164,28 @@ static void K_drawKartFirstPerson(void)
|
|||
|
||||
static void K_drawInput(void)
|
||||
{
|
||||
UINT8 viewnum = R_GetViewNumber();
|
||||
boolean freecam = camera[viewnum].freecam; //disable some hud elements w/ freecam
|
||||
|
||||
if (!cv_drawinput.value && !modeattacking && gametype != GT_TUTORIAL)
|
||||
return;
|
||||
|
||||
if (stplyr->spectator || freecam || demo.attract)
|
||||
return;
|
||||
|
||||
INT32 def[4][3] = {
|
||||
{247, 156, V_SNAPTOBOTTOM | V_SNAPTORIGHT}, // 1p
|
||||
{247, 56, V_SNAPTOBOTTOM | V_SNAPTORIGHT}, // 2p
|
||||
{6, 52, V_SNAPTOBOTTOM | V_SNAPTOLEFT}, // 4p left
|
||||
{282 - BASEVIDWIDTH/2, 52, V_SNAPTOBOTTOM | V_SNAPTORIGHT}, // 4p right
|
||||
};
|
||||
INT32 k = r_splitscreen <= 1 ? r_splitscreen : 2 + (R_GetViewNumber() & 1);
|
||||
INT32 flags = def[k][2] | V_SPLITSCREEN | V_SLIDEIN;
|
||||
INT32 k = r_splitscreen <= 1 ? r_splitscreen : 2 + (viewnum & 1);
|
||||
INT32 flags = def[k][2] | V_SPLITSCREEN;
|
||||
char mode = ((stplyr->pflags & PF_ANALOGSTICK) ? '4' : '2') + (r_splitscreen > 1);
|
||||
bool local = !demo.playback && P_IsMachineLocalPlayer(stplyr);
|
||||
K_DrawInputDisplay(
|
||||
def[k][0],
|
||||
def[k][1],
|
||||
def[k][0] - FixedToFloat(K_GetDialogueSlide(34 * FRACUNIT)),
|
||||
def[k][1] - FixedToFloat(K_GetDialogueSlide(51 * FRACUNIT)),
|
||||
flags,
|
||||
mode,
|
||||
(local ? G_LocalSplitscreenPartyPosition : G_PartyPosition)(stplyr - players),
|
||||
|
|
@ -6062,13 +6072,6 @@ void K_drawKartHUD(void)
|
|||
K_drawRingCounter(gametypeinfoshown);
|
||||
}
|
||||
|
||||
if ((modeattacking && !bossinfo.valid) || cv_drawinput.value)
|
||||
{
|
||||
// Draw the input UI
|
||||
if (LUA_HudEnabled(hud_position))
|
||||
K_drawInput();
|
||||
}
|
||||
|
||||
// Draw the item window
|
||||
if (LUA_HudEnabled(hud_item) && !freecam)
|
||||
{
|
||||
|
|
@ -6128,7 +6131,10 @@ void K_drawKartHUD(void)
|
|||
K_drawEmeraldWin(true);
|
||||
|
||||
if (modeattacking || freecam) // everything after here is MP and debug only
|
||||
{
|
||||
K_drawInput();
|
||||
return;
|
||||
}
|
||||
|
||||
if ((gametyperules & GTR_KARMA) && !r_splitscreen && (stplyr->karthud[khud_yougotem] % 2)) // * YOU GOT EM *
|
||||
V_DrawScaledPatch(BASEVIDWIDTH/2 - (SHORT(kp_yougotem->width)/2), 32, V_HUDTRANS, kp_yougotem);
|
||||
|
|
@ -6147,6 +6153,10 @@ void K_drawKartHUD(void)
|
|||
{
|
||||
K_drawSpectatorHUD(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
K_drawInput();
|
||||
}
|
||||
|
||||
if (cv_kartdebugdistribution.value)
|
||||
K_drawDistributionDebugger();
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ void K_DrawKartPositionNumXY(
|
|||
boolean exit, boolean lastLap, boolean losing
|
||||
);
|
||||
|
||||
void K_DrawInputDisplay(INT32 x, INT32 y, INT32 flags, char mode, UINT8 pid, boolean local, boolean transparent);
|
||||
void K_DrawInputDisplay(float x, float y, INT32 flags, char mode, UINT8 pid, boolean local, boolean transparent);
|
||||
|
||||
extern patch_t *kp_capsuletarget_arrow[2][2];
|
||||
extern patch_t *kp_capsuletarget_icon[2];
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
#include "../m_easing.h"
|
||||
#include "../p_local.h" // cv_tilting
|
||||
|
||||
extern "C" consvar_t cv_mindelay;
|
||||
extern "C" consvar_t cv_mindelay, cv_drawinput;
|
||||
|
||||
using srb2::Draw;
|
||||
|
||||
|
|
@ -119,6 +119,9 @@ menuitem_t OPTIONS_ProfileAccessibility[] = {
|
|||
|
||||
{IT_STRING | IT_CVAR, "Screenshake", "Adjust shake intensity from hazards and offroad.",
|
||||
NULL, {.cvar = &cv_screenshake}, 0, 0},
|
||||
|
||||
{IT_STRING | IT_CVAR, "Input Display", "Show virtual controller on the HUD.",
|
||||
NULL, {.cvar = &cv_drawinput}, 0, 0},
|
||||
};
|
||||
|
||||
menu_t OPTIONS_ProfileAccessibilityDef = {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue