mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Descriptiveinput in profiles, various 6bt. modes
This commit is contained in:
parent
598a91039b
commit
80912b173c
14 changed files with 84 additions and 37 deletions
|
|
@ -102,6 +102,14 @@ CV_PossibleValue_t gpdifficulty_cons_t[] = {
|
||||||
{KARTGP_MASTER, "Master"},
|
{KARTGP_MASTER, "Master"},
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
};
|
};
|
||||||
|
CV_PossibleValue_t descriptiveinput_cons_t[] = {
|
||||||
|
{0, "Emulator"},
|
||||||
|
{1, "Modern"},
|
||||||
|
{2, "6Bt. (Match)"},
|
||||||
|
{3, "6Bt. (LB LT)"},
|
||||||
|
{4, "6Bt. (LT RT)"},
|
||||||
|
{5, "6bt. (LB RB)"},
|
||||||
|
};
|
||||||
|
|
||||||
// Filter consvars by EXECVERSION
|
// Filter consvars by EXECVERSION
|
||||||
// First implementation is 2 (1.0.2), so earlier configs default at 1 (1.0.0)
|
// First implementation is 2 (1.0.2), so earlier configs default at 1 (1.0.0)
|
||||||
|
|
|
||||||
|
|
@ -233,7 +233,7 @@ extern CV_PossibleValue_t CV_TrueFalse[];
|
||||||
|
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
// the KARTSPEED and KARTGP were previously defined here, but moved to doomstat to avoid circular dependencies
|
// the KARTSPEED and KARTGP were previously defined here, but moved to doomstat to avoid circular dependencies
|
||||||
extern CV_PossibleValue_t kartspeed_cons_t[], dummykartspeed_cons_t[], gpdifficulty_cons_t[];
|
extern CV_PossibleValue_t kartspeed_cons_t[], dummykartspeed_cons_t[], gpdifficulty_cons_t[], descriptiveinput_cons_t[];
|
||||||
|
|
||||||
extern consvar_t cv_cheats;
|
extern consvar_t cv_cheats;
|
||||||
extern consvar_t cv_execversion;
|
extern consvar_t cv_execversion;
|
||||||
|
|
|
||||||
|
|
@ -334,16 +334,6 @@ consvar_t cv_soundvolume = Player("soundvolume", "80").min_max(0, 100);
|
||||||
consvar_t cv_discordstreamer = Player("discordstreamer", "Off").on_off();
|
consvar_t cv_discordstreamer = Player("discordstreamer", "Off").on_off();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
consvar_t cv_descriptiveinput = Player("descriptiveinput", "Modern")
|
|
||||||
.values({
|
|
||||||
{0, "Emulator"},
|
|
||||||
{1, "Modern"},
|
|
||||||
{2, "6Bt. (LB LT)"},
|
|
||||||
{3, "6Bt. (LT RT)"},
|
|
||||||
{4, "6bt. (LB RB)"},
|
|
||||||
}
|
|
||||||
); // Display bound controls instead of Saturn buttons
|
|
||||||
|
|
||||||
consvar_t cv_drawdist = Player("drawdist", "Normal").values({
|
consvar_t cv_drawdist = Player("drawdist", "Normal").values({
|
||||||
{3072, "Shortest"},
|
{3072, "Shortest"},
|
||||||
{4096, "Shorter"},
|
{4096, "Shorter"},
|
||||||
|
|
@ -989,6 +979,7 @@ consvar_t cv_dummymenuplayer = MenuDummy("dummymenuplayer", "P1").onchange(Dummy
|
||||||
consvar_t cv_dummyprofileautoroulette = MenuDummy("dummyprofileautoroulette", "Off").on_off();
|
consvar_t cv_dummyprofileautoroulette = MenuDummy("dummyprofileautoroulette", "Off").on_off();
|
||||||
consvar_t cv_dummyprofilefov = MenuDummy("dummyprofilefov", "100").min_max(70, 110);
|
consvar_t cv_dummyprofilefov = MenuDummy("dummyprofilefov", "100").min_max(70, 110);
|
||||||
consvar_t cv_dummyprofilelitesteer = MenuDummy("dummyprofilelitesteer", "Off").on_off();
|
consvar_t cv_dummyprofilelitesteer = MenuDummy("dummyprofilelitesteer", "Off").on_off();
|
||||||
|
consvar_t cv_dummyprofiledescriptiveinput = Player("dummyprofiledescriptiveinput", "Modern").values(descriptiveinput_cons_t);
|
||||||
consvar_t cv_dummyprofileautoring = MenuDummy("dummyprofileautoring", "Off").on_off();
|
consvar_t cv_dummyprofileautoring = MenuDummy("dummyprofileautoring", "Off").on_off();
|
||||||
consvar_t cv_dummyprofilekickstart = MenuDummy("dummyprofilekickstart", "Off").on_off();
|
consvar_t cv_dummyprofilekickstart = MenuDummy("dummyprofilekickstart", "Off").on_off();
|
||||||
consvar_t cv_dummyprofilename = MenuDummy("dummyprofilename", "");
|
consvar_t cv_dummyprofilename = MenuDummy("dummyprofilename", "");
|
||||||
|
|
@ -1123,6 +1114,14 @@ consvar_t cv_cam_height[MAXSPLITSCREENPLAYERS] = {
|
||||||
Player("cam4_height", "95").floating_point(),
|
Player("cam4_height", "95").floating_point(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
consvar_t cv_descriptiveinput[MAXSPLITSCREENPLAYERS] = {
|
||||||
|
Player("descriptiveinput", "Modern").values(descriptiveinput_cons_t),
|
||||||
|
Player("descriptiveinput2", "Modern").values(descriptiveinput_cons_t),
|
||||||
|
Player("descriptiveinput3", "Modern").values(descriptiveinput_cons_t),
|
||||||
|
Player("descriptiveinput4", "Modern").values(descriptiveinput_cons_t),
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
void CV_CamRotate_OnChange(void);
|
void CV_CamRotate_OnChange(void);
|
||||||
void CV_CamRotate2_OnChange(void);
|
void CV_CamRotate2_OnChange(void);
|
||||||
void CV_CamRotate3_OnChange(void);
|
void CV_CamRotate3_OnChange(void);
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,8 @@ extern consvar_t cv_shrinkme[MAXSPLITSCREENPLAYERS];
|
||||||
|
|
||||||
extern consvar_t cv_deadzone[MAXSPLITSCREENPLAYERS];
|
extern consvar_t cv_deadzone[MAXSPLITSCREENPLAYERS];
|
||||||
|
|
||||||
|
extern consvar_t cv_descriptiveinput[MAXSPLITSCREENPLAYERS];
|
||||||
|
|
||||||
extern consvar_t cv_ghost_besttime, cv_ghost_bestlap, cv_ghost_last, cv_ghost_guest, cv_ghost_staff;
|
extern consvar_t cv_ghost_besttime, cv_ghost_bestlap, cv_ghost_last, cv_ghost_guest, cv_ghost_staff;
|
||||||
|
|
||||||
// mouseaiming (looking up/down with the mouse or keyboard)
|
// mouseaiming (looking up/down with the mouse or keyboard)
|
||||||
|
|
|
||||||
|
|
@ -1124,6 +1124,7 @@ extern consvar_t cv_dummyprofileplayername;
|
||||||
extern consvar_t cv_dummyprofilekickstart;
|
extern consvar_t cv_dummyprofilekickstart;
|
||||||
extern consvar_t cv_dummyprofileautoroulette;
|
extern consvar_t cv_dummyprofileautoroulette;
|
||||||
extern consvar_t cv_dummyprofilelitesteer;
|
extern consvar_t cv_dummyprofilelitesteer;
|
||||||
|
extern consvar_t cv_dummyprofiledescriptiveinput;
|
||||||
extern consvar_t cv_dummyprofileautoring;
|
extern consvar_t cv_dummyprofileautoring;
|
||||||
extern consvar_t cv_dummyprofilerumble;
|
extern consvar_t cv_dummyprofilerumble;
|
||||||
extern consvar_t cv_dummyprofilefov;
|
extern consvar_t cv_dummyprofilefov;
|
||||||
|
|
|
||||||
|
|
@ -5094,7 +5094,7 @@ void M_DrawProfileControls(void)
|
||||||
V_DrawMenuString(x, y+2, (i == itemOn ? highlightflags : 0), currentMenu->menuitems[i].text);
|
V_DrawMenuString(x, y+2, (i == itemOn ? highlightflags : 0), currentMenu->menuitems[i].text);
|
||||||
|
|
||||||
if (currentMenu->menuitems[i].status & IT_CVAR) // not the proper way to check but this menu only has normal onoff cvars.
|
if (currentMenu->menuitems[i].status & IT_CVAR) // not the proper way to check but this menu only has normal onoff cvars.
|
||||||
{
|
{ // (bitch you thought - Tyron 2024-09-22)
|
||||||
INT32 w;
|
INT32 w;
|
||||||
consvar_t *cv = currentMenu->menuitems[i].itemaction.cvar;
|
consvar_t *cv = currentMenu->menuitems[i].itemaction.cvar;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,7 @@ profile_t* PR_MakeProfile(
|
||||||
newprofile->kickstartaccel = false;
|
newprofile->kickstartaccel = false;
|
||||||
newprofile->autoroulette = false;
|
newprofile->autoroulette = false;
|
||||||
newprofile->litesteer = false;
|
newprofile->litesteer = false;
|
||||||
|
newprofile->descriptiveinput = 1;
|
||||||
newprofile->autoring = false;
|
newprofile->autoring = false;
|
||||||
newprofile->rumble = true;
|
newprofile->rumble = true;
|
||||||
newprofile->fov = atoi(cv_dummyprofilefov.defaultvalue);
|
newprofile->fov = atoi(cv_dummyprofilefov.defaultvalue);
|
||||||
|
|
@ -104,6 +105,7 @@ profile_t* PR_MakeProfileFromPlayer(const char *prname, const char *pname, const
|
||||||
newprofile->kickstartaccel = cv_kickstartaccel[pnum].value;
|
newprofile->kickstartaccel = cv_kickstartaccel[pnum].value;
|
||||||
newprofile->autoroulette = cv_autoroulette[pnum].value;
|
newprofile->autoroulette = cv_autoroulette[pnum].value;
|
||||||
newprofile->litesteer = cv_litesteer[pnum].value;
|
newprofile->litesteer = cv_litesteer[pnum].value;
|
||||||
|
newprofile->descriptiveinput = cv_descriptiveinput[pnum].value;
|
||||||
newprofile->autoring = cv_autoring[pnum].value;
|
newprofile->autoring = cv_autoring[pnum].value;
|
||||||
newprofile->rumble = cv_rumble[pnum].value;
|
newprofile->rumble = cv_rumble[pnum].value;
|
||||||
newprofile->fov = cv_fov[pnum].value / FRACUNIT;
|
newprofile->fov = cv_fov[pnum].value / FRACUNIT;
|
||||||
|
|
@ -301,6 +303,7 @@ void PR_SaveProfiles(void)
|
||||||
jsonprof.preferences.kickstartaccel = cprof->kickstartaccel;
|
jsonprof.preferences.kickstartaccel = cprof->kickstartaccel;
|
||||||
jsonprof.preferences.autoroulette = cprof->autoroulette;
|
jsonprof.preferences.autoroulette = cprof->autoroulette;
|
||||||
jsonprof.preferences.litesteer = cprof->litesteer;
|
jsonprof.preferences.litesteer = cprof->litesteer;
|
||||||
|
jsonprof.preferences.descriptiveinput = cprof->descriptiveinput;
|
||||||
jsonprof.preferences.autoring = cprof->autoring;
|
jsonprof.preferences.autoring = cprof->autoring;
|
||||||
jsonprof.preferences.rumble = cprof->rumble;
|
jsonprof.preferences.rumble = cprof->rumble;
|
||||||
jsonprof.preferences.fov = cprof->fov;
|
jsonprof.preferences.fov = cprof->fov;
|
||||||
|
|
@ -486,6 +489,7 @@ void PR_LoadProfiles(void)
|
||||||
newprof->kickstartaccel = jsprof.preferences.kickstartaccel;
|
newprof->kickstartaccel = jsprof.preferences.kickstartaccel;
|
||||||
newprof->autoroulette = jsprof.preferences.autoroulette;
|
newprof->autoroulette = jsprof.preferences.autoroulette;
|
||||||
newprof->litesteer = jsprof.preferences.litesteer;
|
newprof->litesteer = jsprof.preferences.litesteer;
|
||||||
|
newprof->descriptiveinput = jsprof.preferences.descriptiveinput;
|
||||||
newprof->autoring = jsprof.preferences.autoring;
|
newprof->autoring = jsprof.preferences.autoring;
|
||||||
newprof->rumble = jsprof.preferences.rumble;
|
newprof->rumble = jsprof.preferences.rumble;
|
||||||
newprof->fov = jsprof.preferences.fov;
|
newprof->fov = jsprof.preferences.fov;
|
||||||
|
|
@ -568,6 +572,7 @@ static void PR_ApplyProfile_Settings(profile_t *p, UINT8 playernum)
|
||||||
CV_StealthSetValue(&cv_kickstartaccel[playernum], p->kickstartaccel);
|
CV_StealthSetValue(&cv_kickstartaccel[playernum], p->kickstartaccel);
|
||||||
CV_StealthSetValue(&cv_autoroulette[playernum], p->autoroulette);
|
CV_StealthSetValue(&cv_autoroulette[playernum], p->autoroulette);
|
||||||
CV_StealthSetValue(&cv_litesteer[playernum], p->litesteer);
|
CV_StealthSetValue(&cv_litesteer[playernum], p->litesteer);
|
||||||
|
CV_StealthSetValue(&cv_descriptiveinput[playernum], p->descriptiveinput);
|
||||||
CV_StealthSetValue(&cv_autoring[playernum], p->autoring);
|
CV_StealthSetValue(&cv_autoring[playernum], p->autoring);
|
||||||
CV_StealthSetValue(&cv_rumble[playernum], p->rumble);
|
CV_StealthSetValue(&cv_rumble[playernum], p->rumble);
|
||||||
CV_StealthSetValue(&cv_fov[playernum], p->fov);
|
CV_StealthSetValue(&cv_fov[playernum], p->fov);
|
||||||
|
|
@ -581,11 +586,16 @@ static void PR_ApplyProfile_Memory(UINT8 profilenum, UINT8 playernum)
|
||||||
// set memory cvar
|
// set memory cvar
|
||||||
CV_StealthSetValue(&cv_lastprofile[playernum], profilenum);
|
CV_StealthSetValue(&cv_lastprofile[playernum], profilenum);
|
||||||
|
|
||||||
|
CONS_Printf("Applying profile memory %d to player %d", profilenum, playernum);
|
||||||
|
|
||||||
// If we're doing this on P1, also change current profile.
|
// If we're doing this on P1, also change current profile.
|
||||||
if (playernum == 0)
|
if (playernum == 0)
|
||||||
{
|
{
|
||||||
CV_StealthSetValue(&cv_currprofile, profilenum);
|
CV_StealthSetValue(&cv_currprofile, profilenum);
|
||||||
|
CONS_Printf(" and swapping currprofile");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CONS_Printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void PR_ApplyProfile(UINT8 profilenum, UINT8 playernum)
|
void PR_ApplyProfile(UINT8 profilenum, UINT8 playernum)
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ struct ProfilePreferencesJson
|
||||||
bool kickstartaccel;
|
bool kickstartaccel;
|
||||||
bool autoroulette;
|
bool autoroulette;
|
||||||
bool litesteer;
|
bool litesteer;
|
||||||
|
uint8_t descriptiveinput;
|
||||||
bool autoring;
|
bool autoring;
|
||||||
bool rumble;
|
bool rumble;
|
||||||
uint8_t fov;
|
uint8_t fov;
|
||||||
|
|
@ -56,6 +57,7 @@ struct ProfilePreferencesJson
|
||||||
kickstartaccel,
|
kickstartaccel,
|
||||||
autoroulette,
|
autoroulette,
|
||||||
litesteer,
|
litesteer,
|
||||||
|
descriptiveinput,
|
||||||
autoring,
|
autoring,
|
||||||
rumble,
|
rumble,
|
||||||
fov
|
fov
|
||||||
|
|
@ -162,6 +164,7 @@ struct profile_t
|
||||||
boolean kickstartaccel; // cv_kickstartaccel
|
boolean kickstartaccel; // cv_kickstartaccel
|
||||||
boolean autoroulette; // cv_autoroulette
|
boolean autoroulette; // cv_autoroulette
|
||||||
boolean litesteer; // cv_litesteer
|
boolean litesteer; // cv_litesteer
|
||||||
|
UINT8 descriptiveinput; // cv_descriptiveinput
|
||||||
boolean autoring; // cv_autoring
|
boolean autoring; // cv_autoring
|
||||||
boolean rumble; // cv_rumble
|
boolean rumble; // cv_rumble
|
||||||
UINT8 fov; // cv_fov
|
UINT8 fov; // cv_fov
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,6 @@
|
||||||
#include "../r_main.h" // cv_showhud
|
#include "../r_main.h" // cv_showhud
|
||||||
#include "../v_video.h" // cv_constextsize
|
#include "../v_video.h" // cv_constextsize
|
||||||
|
|
||||||
extern consvar_t cv_descriptiveinput;
|
|
||||||
|
|
||||||
menuitem_t OPTIONS_HUD[] =
|
menuitem_t OPTIONS_HUD[] =
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -39,12 +37,6 @@ menuitem_t OPTIONS_HUD[] =
|
||||||
{IT_SPACE | IT_NOTHING, NULL, NULL,
|
{IT_SPACE | IT_NOTHING, NULL, NULL,
|
||||||
NULL, {NULL}, 0, 0},
|
NULL, {NULL}, 0, 0},
|
||||||
|
|
||||||
{IT_STRING | IT_CVAR, "Use Button Names", "Choose which controller prompts to show. \"Emulator\" = ignore your mapped controls.",
|
|
||||||
NULL, {.cvar = &cv_descriptiveinput}, 0, 0},
|
|
||||||
|
|
||||||
{IT_SPACE | IT_NOTHING, NULL, NULL,
|
|
||||||
NULL, {NULL}, 0, 0},
|
|
||||||
|
|
||||||
{IT_STRING | IT_SUBMENU, "Online Chat Options...", "Visual options for the online chat box.",
|
{IT_STRING | IT_SUBMENU, "Online Chat Options...", "Visual options for the online chat box.",
|
||||||
NULL, {.submenu = &OPTIONS_HUDOnlineDef}, 0, 0},
|
NULL, {.submenu = &OPTIONS_HUDOnlineDef}, 0, 0},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,7 @@ void M_StartEditProfile(INT32 c)
|
||||||
CV_StealthSetValue(&cv_dummyprofilekickstart, optionsmenu.profile->kickstartaccel);
|
CV_StealthSetValue(&cv_dummyprofilekickstart, optionsmenu.profile->kickstartaccel);
|
||||||
CV_StealthSetValue(&cv_dummyprofileautoroulette, optionsmenu.profile->autoroulette);
|
CV_StealthSetValue(&cv_dummyprofileautoroulette, optionsmenu.profile->autoroulette);
|
||||||
CV_StealthSetValue(&cv_dummyprofilelitesteer, optionsmenu.profile->litesteer);
|
CV_StealthSetValue(&cv_dummyprofilelitesteer, optionsmenu.profile->litesteer);
|
||||||
|
CV_StealthSetValue(&cv_dummyprofiledescriptiveinput, optionsmenu.profile->descriptiveinput);
|
||||||
CV_StealthSetValue(&cv_dummyprofileautoring, optionsmenu.profile->autoring);
|
CV_StealthSetValue(&cv_dummyprofileautoring, optionsmenu.profile->autoring);
|
||||||
CV_StealthSetValue(&cv_dummyprofilerumble, optionsmenu.profile->rumble);
|
CV_StealthSetValue(&cv_dummyprofilerumble, optionsmenu.profile->rumble);
|
||||||
CV_StealthSetValue(&cv_dummyprofilefov, optionsmenu.profile->fov);
|
CV_StealthSetValue(&cv_dummyprofilefov, optionsmenu.profile->fov);
|
||||||
|
|
@ -113,6 +114,7 @@ void M_StartEditProfile(INT32 c)
|
||||||
CV_StealthSetValue(&cv_dummyprofilekickstart, 0); // off
|
CV_StealthSetValue(&cv_dummyprofilekickstart, 0); // off
|
||||||
CV_StealthSetValue(&cv_dummyprofileautoroulette, 0); // off
|
CV_StealthSetValue(&cv_dummyprofileautoroulette, 0); // off
|
||||||
CV_StealthSetValue(&cv_dummyprofilelitesteer, 1); // on
|
CV_StealthSetValue(&cv_dummyprofilelitesteer, 1); // on
|
||||||
|
CV_StealthSetValue(&cv_dummyprofiledescriptiveinput, 1); // Modern
|
||||||
CV_StealthSetValue(&cv_dummyprofileautoring, 0); // on
|
CV_StealthSetValue(&cv_dummyprofileautoring, 0); // on
|
||||||
CV_StealthSetValue(&cv_dummyprofilerumble, 1); // on
|
CV_StealthSetValue(&cv_dummyprofilerumble, 1); // on
|
||||||
CV_StealthSetValue(&cv_dummyprofilefov, 90);
|
CV_StealthSetValue(&cv_dummyprofilefov, 90);
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,7 @@ static void M_ProfileEditApply(void)
|
||||||
optionsmenu.profile->kickstartaccel = cv_dummyprofilekickstart.value;
|
optionsmenu.profile->kickstartaccel = cv_dummyprofilekickstart.value;
|
||||||
optionsmenu.profile->autoroulette = cv_dummyprofileautoroulette.value;
|
optionsmenu.profile->autoroulette = cv_dummyprofileautoroulette.value;
|
||||||
optionsmenu.profile->litesteer = cv_dummyprofilelitesteer.value;
|
optionsmenu.profile->litesteer = cv_dummyprofilelitesteer.value;
|
||||||
|
optionsmenu.profile->descriptiveinput = cv_dummyprofiledescriptiveinput.value;
|
||||||
optionsmenu.profile->autoring = cv_dummyprofileautoring.value;
|
optionsmenu.profile->autoring = cv_dummyprofileautoring.value;
|
||||||
optionsmenu.profile->rumble = cv_dummyprofilerumble.value;
|
optionsmenu.profile->rumble = cv_dummyprofilerumble.value;
|
||||||
optionsmenu.profile->fov = cv_dummyprofilefov.value;
|
optionsmenu.profile->fov = cv_dummyprofilefov.value;
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,9 @@ menuitem_t OPTIONS_ProfileControls[] = {
|
||||||
{IT_STRING | IT_CALL, "TRY MAPPINGS", "Test your controls.",
|
{IT_STRING | IT_CALL, "TRY MAPPINGS", "Test your controls.",
|
||||||
NULL, {.routine = M_ProfileTryController}, 0, 0},
|
NULL, {.routine = M_ProfileTryController}, 0, 0},
|
||||||
|
|
||||||
|
{IT_STRING2 | IT_CVAR, "Show Button Names", "Change how help text displays your controls.",
|
||||||
|
NULL, {.cvar = &cv_dummyprofiledescriptiveinput}, 0, 0},
|
||||||
|
|
||||||
{IT_STRING | IT_CALL, "RESET TO DEFAULT", "Reset all controls back to default.",
|
{IT_STRING | IT_CALL, "RESET TO DEFAULT", "Reset all controls back to default.",
|
||||||
NULL, {.routine = M_ProfileDefaultControls}, 0, 0},
|
NULL, {.routine = M_ProfileDefaultControls}, 0, 0},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -229,12 +229,7 @@ Draw::TextElement& Draw::TextElement::parse(std::string_view raw)
|
||||||
}
|
}
|
||||||
else if (auto it = translation.find(code); it != translation.end()) // This represents a gamecontrol, turn into Saturn button or generic button.
|
else if (auto it = translation.find(code); it != translation.end()) // This represents a gamecontrol, turn into Saturn button or generic button.
|
||||||
{
|
{
|
||||||
// This isn't how v_video.cpp checks for buttons and I don't know why.
|
|
||||||
if (cv_descriptiveinput.value && ((it->second & 0xF0) != 0x80)) // Should we do game control translation?
|
|
||||||
{
|
|
||||||
if (auto id = inputdefinition.find(it->second & (~0xB0)); id != inputdefinition.end()) // This is a game control, do descriptive input translation!
|
|
||||||
{
|
|
||||||
// Grab our local controls - if pid set in the call to parse(), use stplyr's controls
|
|
||||||
UINT8 localplayer = 0;
|
UINT8 localplayer = 0;
|
||||||
UINT8 indexedplayer = as_.value_or(stplyr - players);
|
UINT8 indexedplayer = as_.value_or(stplyr - players);
|
||||||
for (UINT8 i = 0; i < MAXSPLITSCREENPLAYERS; i++)
|
for (UINT8 i = 0; i < MAXSPLITSCREENPLAYERS; i++)
|
||||||
|
|
@ -246,20 +241,53 @@ Draw::TextElement& Draw::TextElement::parse(std::string_view raw)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This isn't how v_video.cpp checks for buttons and I don't know why.
|
||||||
|
if (cv_descriptiveinput[localplayer].value && ((it->second & 0xF0) != 0x80)) // Should we do game control translation?
|
||||||
|
{
|
||||||
|
if (auto id = inputdefinition.find(it->second & (~0xB0)); id != inputdefinition.end()) // This is a game control, do descriptive input translation!
|
||||||
|
{
|
||||||
|
// Grab our local controls - if pid set in the call to parse(), use stplyr's controls
|
||||||
INT32 bind = G_FindPlayerBindForGameControl(localplayer, id->second);
|
INT32 bind = G_FindPlayerBindForGameControl(localplayer, id->second);
|
||||||
|
|
||||||
// EXTRA: descriptiveinput values above 1 translate binds back to Saturn buttons,
|
// EXTRA: descriptiveinput values above 1 translate binds back to Saturn buttons,
|
||||||
// with various modes for various fucked up 6bt pads
|
// with various modes for various fucked up 6bt pads
|
||||||
std::unordered_map<INT32, char> saturnconfig = {};
|
std::unordered_map<INT32, char> saturnconfig = {};
|
||||||
switch (cv_descriptiveinput.value)
|
switch (cv_descriptiveinput[localplayer].value)
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
|
{
|
||||||
|
INT32 leftbumper = G_FindPlayerBindForGameControl(localplayer, gc_l);
|
||||||
|
INT32 rightbumper = G_FindPlayerBindForGameControl(localplayer, gc_r);
|
||||||
|
|
||||||
|
if (leftbumper == KEY_JOY1+9 && rightbumper == KEY_AXIS1+8)
|
||||||
|
{
|
||||||
|
saturnconfig = saturntype1; // LB LT
|
||||||
|
// CONS_Printf("Saturn type 1\n");
|
||||||
|
}
|
||||||
|
else if (leftbumper == KEY_AXIS1+8 && rightbumper == KEY_AXIS1+9)
|
||||||
|
{
|
||||||
|
saturnconfig = saturntype2; // LT RT
|
||||||
|
// CONS_Printf("Saturn type 2\n");
|
||||||
|
}
|
||||||
|
else if (leftbumper == KEY_JOY1+9 && rightbumper == KEY_JOY1+10)
|
||||||
|
{
|
||||||
|
saturnconfig = saturntype3; // LB RB
|
||||||
|
// CONS_Printf("Saturn type 3\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
saturnconfig = saturntype1; // :( ???
|
||||||
|
// CONS_Printf("Unknown, falling back to type 1\n");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
saturnconfig = saturntype1;
|
saturnconfig = saturntype1;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 4:
|
||||||
saturnconfig = saturntype2;
|
saturnconfig = saturntype2;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 5:
|
||||||
saturnconfig = saturntype3;
|
saturnconfig = saturntype3;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,6 @@
|
||||||
#include "typedef.h"
|
#include "typedef.h"
|
||||||
#include "v_video.h"
|
#include "v_video.h"
|
||||||
|
|
||||||
extern consvar_t cv_descriptiveinput;
|
|
||||||
|
|
||||||
namespace srb2
|
namespace srb2
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue