diff --git a/extras/conf/SRB2-22.cfg b/extras/conf/SRB2-22.cfg index 9ab745f91..654f70910 100644 --- a/extras/conf/SRB2-22.cfg +++ b/extras/conf/SRB2-22.cfg @@ -1093,6 +1093,7 @@ linedeftypes { title = "Water, Opaque"; prefix = "(120)"; + flags2text = "[1] Make lava intangible"; flags8text = "[3] Slope skew sides"; flags64text = "[6] Use two light levels"; flags512text = "[9] Use target light level"; @@ -1108,6 +1109,7 @@ linedeftypes { title = "Water, Translucent"; prefix = "(121)"; + flags2text = "[1] Make lava intangible"; flags8text = "[3] Slope skew sides"; flags64text = "[6] Use two light levels"; flags512text = "[9] Use target light level"; @@ -1124,6 +1126,7 @@ linedeftypes { title = "Water, Opaque, No Sides"; prefix = "(122)"; + flags2text = "[1] Make lava intangible"; flags64text = "[6] Use two light levels"; flags512text = "[9] Use target light level"; flags1024text = "[10] Ripple effect"; @@ -1138,6 +1141,7 @@ linedeftypes { title = "Water, Translucent, No Sides"; prefix = "(123)"; + flags2text = "[1] Make lava intangible"; flags64text = "[6] Use two light levels"; flags512text = "[9] Use target light level"; flags1024text = "[10] Ripple effect"; @@ -1153,6 +1157,7 @@ linedeftypes { title = "Goo Water, Translucent"; prefix = "(124)"; + flags2text = "[1] Make lava intangible"; flags8text = "[3] Slope skew sides"; flags64text = "[6] Use two light levels"; flags512text = "[9] Use target light level"; @@ -1169,6 +1174,7 @@ linedeftypes { title = "Goo Water, Translucent, No Sides"; prefix = "(125)"; + flags2text = "[1] Make lava intangible"; flags64text = "[6] Use two light levels"; flags512text = "[9] Use target light level"; flags1024text = "[10] Ripple effect"; @@ -1671,12 +1677,14 @@ linedeftypes { title = "Continuous"; prefix = "(300)"; + flags1024text = "[10] Use faster, unordered execution"; } 301 { title = "Each Time"; prefix = "(301)"; + flags1024text = "[10] Use faster, unordered execution"; flags16384text = "[14] Also trigger on exit"; } @@ -1684,6 +1692,7 @@ linedeftypes { title = "Once"; prefix = "(302)"; + flags1024text = "[10] Use faster, unordered execution"; } 303 @@ -1693,6 +1702,7 @@ linedeftypes flags2text = "[1] Rings greater or equal"; flags64text = "[6] Rings less or equal"; flags512text = "[9] Consider all players"; + flags1024text = "[10] Use faster, unordered execution"; } 304 @@ -1702,18 +1712,21 @@ linedeftypes flags2text = "[1] Rings greater or equal"; flags64text = "[6] Rings less or equal"; flags512text = "[9] Consider all players"; + flags1024text = "[10] Use faster, unordered execution"; } 305 { title = "Character Ability - Continuous"; prefix = "(305)"; + flags1024text = "[10] Use faster, unordered execution"; } 306 { title = "Character Ability - Each Time"; prefix = "(306)"; + flags1024text = "[10] Use faster, unordered execution"; flags16384text = "[14] Also trigger on exit"; } @@ -1721,24 +1734,28 @@ linedeftypes { title = "Character Ability - Once"; prefix = "(307)"; + flags1024text = "[10] Use faster, unordered execution"; } 308 { title = "Race Only - Once"; prefix = "(308)"; + flags1024text = "[10] Use faster, unordered execution"; } 309 { title = "CTF Red Team - Continuous"; prefix = "(309)"; + flags1024text = "[10] Use faster, unordered execution"; } 310 { title = "CTF Red Team - Each Time"; prefix = "(310)"; + flags1024text = "[10] Use faster, unordered execution"; flags16384text = "[14] Also trigger on exit"; } @@ -1746,12 +1763,14 @@ linedeftypes { title = "CTF Blue Team - Continuous"; prefix = "(311)"; + flags1024text = "[10] Use faster, unordered execution"; } 312 { title = "CTF Blue Team - Each Time"; prefix = "(312)"; + flags1024text = "[10] Use faster, unordered execution"; flags16384text = "[14] Also trigger on exit"; } @@ -1759,6 +1778,7 @@ linedeftypes { title = "No More Enemies - Once"; prefix = "(313)"; + flags1024text = "[10] Use faster, unordered execution"; } 314 @@ -1767,6 +1787,7 @@ linedeftypes prefix = "(314)"; flags64text = "[6] Number greater or equal"; flags512text = "[9] Number less"; + flags1024text = "[10] Use faster, unordered execution"; } 315 @@ -1775,30 +1796,35 @@ linedeftypes prefix = "(315)"; flags64text = "[6] Number greater or equal"; flags512text = "[9] Number less"; + flags1024text = "[10] Use faster, unordered execution"; } 317 { title = "Condition Set Trigger - Continuous"; prefix = "(317)"; + flags1024text = "[10] Use faster, unordered execution"; } 318 { title = "Condition Set Trigger - Once"; prefix = "(318)"; + flags1024text = "[10] Use faster, unordered execution"; } 319 { title = "Unlockable - Continuous"; prefix = "(319)"; + flags1024text = "[10] Use faster, unordered execution"; } 320 { title = "Unlockable - Once"; prefix = "(320)"; + flags1024text = "[10] Use faster, unordered execution"; } 321 @@ -1806,6 +1832,7 @@ linedeftypes title = "Trigger After X Calls - Continuous"; prefix = "(321)"; flags64text = "[6] Trigger more than once"; + flags1024text = "[10] Use faster, unordered execution"; } @@ -1814,6 +1841,7 @@ linedeftypes title = "Trigger After X Calls - Each Time"; prefix = "(322)"; flags64text = "[6] Trigger more than once"; + flags1024text = "[10] Use faster, unordered execution"; } 323 @@ -1828,6 +1856,7 @@ linedeftypes flags128text = "[7] Lap >= Front Y Offset"; flags256text = "[8] Count laps from Bonus Time"; flags512text = "[9] Count from triggering player"; + flags1024text = "[10] Use faster, unordered execution"; flags16384text = "[14] Run if no more mares"; flags32768text = "[15] Run if player is not NiGHTS"; } @@ -1835,6 +1864,7 @@ linedeftypes 324 { title = "NiGHTSerize - Once"; + prefix = "(324)"; flags2text = "[1] Mare >= Front X Offset"; flags8text = "[3] Run only if player is NiGHTS"; flags16text = "[4] Count from lowest of players"; @@ -1843,14 +1873,15 @@ linedeftypes flags128text = "[7] Lap >= Front Y Offset"; flags256text = "[8] Count laps from Bonus Time"; flags512text = "[9] Count from triggering player"; + flags1024text = "[10] Use faster, unordered execution"; flags16384text = "[14] Run if no more mares"; flags32768text = "[15] Run if player is not NiGHTS"; - prefix = "(324)"; } 325 { title = "De-NiGHTSerize - Each Time"; + prefix = "(325)"; flags2text = "[1] Mare >= Front X Offset"; flags8text = "[3] Run if anyone is NiGHTS"; flags16text = "[4] Count from lowest of players"; @@ -1859,13 +1890,14 @@ linedeftypes flags128text = "[7] Lap >= Front Y Offset"; flags256text = "[8] Count laps from Bonus Time"; flags512text = "[9] Count from triggering player"; + flags1024text = "[10] Use faster, unordered execution"; flags32768text = "[15] Run if no one is NiGHTS"; - prefix = "(325)"; } 326 { title = "De-NiGHTSerize - Once"; + prefix = "(326)"; flags2text = "[1] Mare >= Front X Offset"; flags8text = "[3] Run if anyone is NiGHTS"; flags16text = "[4] Count from lowest of players"; @@ -1874,13 +1906,14 @@ linedeftypes flags128text = "[7] Lap >= Front Y Offset"; flags256text = "[8] Count laps from Bonus Time"; flags512text = "[9] Count from triggering player"; + flags1024text = "[10] Use faster, unordered execution"; flags32768text = "[15] Run if no one is NiGHTS"; - prefix = "(326)"; } 327 { title = "NiGHTS Lap - Each Time"; + prefix = "(327)"; flags2text = "[1] Mare >= Front X Offset"; flags16text = "[4] Count from lowest of players"; flags32text = "[5] Lap <= Front Y Offset"; @@ -1888,12 +1921,13 @@ linedeftypes flags128text = "[7] Lap >= Front Y Offset"; flags256text = "[8] Count laps from Bonus Time"; flags512text = "[9] Count from triggering player"; - prefix = "(327)"; + flags1024text = "[10] Use faster, unordered execution"; } 328 { title = "NiGHTS Lap - Once"; + prefix = "(328)"; flags2text = "[1] Mare >= Front X Offset"; flags16text = "[4] Count from lowest of players"; flags32text = "[5] Lap <= Front Y Offset"; @@ -1901,12 +1935,13 @@ linedeftypes flags128text = "[7] Lap >= Front Y Offset"; flags256text = "[8] Count laps from Bonus Time"; flags512text = "[9] Count from triggering player"; - prefix = "(328)"; + flags1024text = "[10] Use faster, unordered execution"; } 329 { title = "Ideya Capture Touch - Each Time"; + prefix = "(329)"; flags2text = "[1] Mare >= Front X Offset"; flags8text = "[3] Run regardless of spheres"; flags16text = "[4] Count from lowest of players"; @@ -1915,14 +1950,15 @@ linedeftypes flags128text = "[7] Lap >= Front Y Offset"; flags256text = "[8] Count laps from Bonus Time"; flags512text = "[9] Count from triggering player"; + flags1024text = "[10] Use faster, unordered execution"; flags16384text = "[14] Only if not enough spheres"; flags32768text = "[15] Run when entering Capture"; - prefix = "(329)"; } 330 { title = "Ideya Capture Touch - Once"; + prefix = "(330)"; flags2text = "[1] Mare >= Front X Offset"; flags8text = "[3] Run regardless of spheres"; flags16text = "[4] Count from lowest of players"; @@ -1931,51 +1967,57 @@ linedeftypes flags128text = "[7] Lap >= Front Y Offset"; flags256text = "[8] Count laps from Bonus Time"; flags512text = "[9] Count from triggering player"; + flags1024text = "[10] Use faster, unordered execution"; flags16384text = "[14] Only if not enough spheres"; flags32768text = "[15] Run when entering Capture"; - prefix = "(330)"; } 331 { title = "Player Skin - Continuous"; - flags64text = "[6] Disable for this skin"; prefix = "(331)"; + flags64text = "[6] Disable for this skin"; + flags1024text = "[10] Use faster, unordered execution"; } 332 { title = "Player Skin - Each Time"; - flags64text = "[6] Disable for this skin"; prefix = "(332)"; + flags64text = "[6] Disable for this skin"; + flags1024text = "[10] Use faster, unordered execution"; } 333 { title = "Player Skin - Once"; - flags64text = "[6] Disable for this skin"; prefix = "(333)"; + flags64text = "[6] Disable for this skin"; + flags1024text = "[10] Use faster, unordered execution"; } 334 { title = "Object Dye - Continuous"; - flags64text = "[6] Disable for this color"; prefix = "(334)"; + flags64text = "[6] Disable for this color"; + flags1024text = "[10] Use faster, unordered execution"; } 335 { title = "Object Dye - Each Time"; - flags64text = "[6] Disable for this color"; prefix = "(335)"; + flags64text = "[6] Disable for this color"; + flags1024text = "[10] Use faster, unordered execution"; } 336 { title = "Object Dye - Once"; - flags64text = "[6] Disable for this color"; prefix = "(336)"; + flags64text = "[6] Disable for this color"; + flags1024text = "[10] Use faster, unordered execution"; } 337 @@ -2024,6 +2066,7 @@ linedeftypes { title = "Level Load"; prefix = "(399)"; + flags1024text = "[10] Use faster, unordered execution"; } } @@ -2726,7 +2769,7 @@ linedeftypes 502 { - title = "Scroll Tagged Wall"; + title = "Scroll Tagged Walls"; prefix = "(502)"; flags128text = "[7] Use texture offsets"; flags256text = "[8] Scroll back side"; @@ -2734,7 +2777,7 @@ linedeftypes 503 { - title = "Scroll Tagged Wall (Accelerative)"; + title = "Scroll Tagged Walls (Accelerative)"; prefix = "(503)"; flags128text = "[7] Use texture offsets"; flags256text = "[8] Scroll back side"; @@ -2742,7 +2785,7 @@ linedeftypes 504 { - title = "Scroll Tagged Wall (Displacement)"; + title = "Scroll Tagged Walls (Displacement)"; prefix = "(504)"; flags128text = "[7] Use texture offsets"; flags256text = "[8] Scroll back side"; @@ -3176,7 +3219,7 @@ linedeftypes 723 { title = "Copy Backside Floor Slope from Line Tag"; - prefix = "(720)"; + prefix = "(723)"; slope = "copy"; slopeargs = 4; } @@ -3184,7 +3227,7 @@ linedeftypes 724 { title = "Copy Backside Ceiling Slope from Line Tag"; - prefix = "(721)"; + prefix = "(724)"; slope = "copy"; slopeargs = 8; } @@ -3192,7 +3235,7 @@ linedeftypes 725 { title = "Copy Backside Floor and Ceiling Slope from Line Tag"; - prefix = "(722)"; + prefix = "(725)"; slope = "copy"; slopeargs = 12; } @@ -3255,7 +3298,7 @@ linedeftypes transwall { - title = "Translucent Wall"; + title = "Translucent Walls"; 900 { @@ -4031,6 +4074,7 @@ thingtypes sprite = "BUMBA1"; width = 16; height = 32; + flags8text = "[8] Cannot move"; } 124 { @@ -4061,7 +4105,6 @@ thingtypes width = 24; height = 76; flags4text = "[4] End level on death"; - flags8text = "[8] Alternate laser attack"; } 201 { @@ -4096,6 +4139,7 @@ thingtypes height = 60; flags1text = "[1] Grayscale mode"; flags4text = "[4] End level on death"; + flags8text = "[8] Skip intro"; } 206 { @@ -5297,7 +5341,7 @@ thingtypes width = 8; height = 16; hangs = 1; - angletext = "Dripping interval"; + angletext = "Dripping delay"; fixedrotation = 1; } 1003 @@ -5639,6 +5683,8 @@ thingtypes width = 20; height = 72; arrow = 1; + flags4text = "[4] Move right"; + flags8text = "[8] Move left"; } 1128 { @@ -5791,6 +5837,7 @@ thingtypes width = 24; height = 63; arrow = 1; + flags8text = "[8] Not pushable"; } 1217 { @@ -5926,6 +5973,7 @@ thingtypes height = 32; angletext = "Initial delay"; fixedrotation = 1; + hangs = 1; flags8text = "[8] Double size"; } 1305 diff --git a/extras/conf/udb/Includes/SRB222_misc.cfg b/extras/conf/udb/Includes/SRB222_misc.cfg index d7b02dbf7..fcc24741e 100644 --- a/extras/conf/udb/Includes/SRB222_misc.cfg +++ b/extras/conf/udb/Includes/SRB222_misc.cfg @@ -835,4 +835,4 @@ flats start = "F_START"; end = "FF_END"; } -} \ No newline at end of file +} diff --git a/src/g_game.c b/src/g_game.c index e671eb2d7..44860bbbc 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -346,8 +346,8 @@ consvar_t cv_analog[2] = { CVAR_INIT ("sessionanalog2", "Off", CV_CALL|CV_NOSHOWHELP, CV_OnOff, Analog2_OnChange), }; consvar_t cv_useranalog[2] = { - CVAR_INIT ("configanalog", "Off", CV_SAVE|CV_CALL|CV_NOSHOWHELP, CV_OnOff, UserAnalog_OnChange), - CVAR_INIT ("configanalog2", "Off", CV_SAVE|CV_CALL|CV_NOSHOWHELP, CV_OnOff, UserAnalog2_OnChange), + CVAR_INIT ("configanalog", "On", CV_SAVE|CV_CALL|CV_NOSHOWHELP, CV_OnOff, UserAnalog_OnChange), + CVAR_INIT ("configanalog2", "On", CV_SAVE|CV_CALL|CV_NOSHOWHELP, CV_OnOff, UserAnalog2_OnChange), }; // deez New User eXperiences @@ -362,8 +362,8 @@ consvar_t cv_autobrake2 = CVAR_INIT ("autobrake2", "On", CV_SAVE|CV_CALL, CV_OnO // hi here's some new controls static CV_PossibleValue_t zerotoone_cons_t[] = {{0, "MIN"}, {FRACUNIT, "MAX"}, {0, NULL}}; consvar_t cv_cam_shiftfacing[2] = { - CVAR_INIT ("cam_shiftfacingchar", "0.33", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), - CVAR_INIT ("cam2_shiftfacingchar", "0.33", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), + CVAR_INIT ("cam_shiftfacingchar", "0.375", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), + CVAR_INIT ("cam2_shiftfacingchar", "0.375", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), }; consvar_t cv_cam_turnfacing[2] = { CVAR_INIT ("cam_turnfacingchar", "0.25", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), @@ -374,12 +374,12 @@ consvar_t cv_cam_turnfacingability[2] = { CVAR_INIT ("cam2_turnfacingability", "0.125", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), }; consvar_t cv_cam_turnfacingspindash[2] = { - CVAR_INIT ("cam_turnfacingspindash", "0.5", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), - CVAR_INIT ("cam2_turnfacingspindash", "0.5", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), + CVAR_INIT ("cam_turnfacingspindash", "0.25", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), + CVAR_INIT ("cam2_turnfacingspindash", "0.25", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), }; consvar_t cv_cam_turnfacinginput[2] = { - CVAR_INIT ("cam_turnfacinginput", "0.25", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), - CVAR_INIT ("cam2_turnfacinginput", "0.25", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), + CVAR_INIT ("cam_turnfacinginput", "0.375", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), + CVAR_INIT ("cam2_turnfacinginput", "0.375", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL), }; static CV_PossibleValue_t centertoggle_cons_t[] = {{0, "Hold"}, {1, "Toggle"}, {2, "Sticky Hold"}, {0, NULL}}; @@ -403,28 +403,28 @@ static CV_PossibleValue_t lockedassist_cons_t[] = { {0, NULL} }; consvar_t cv_cam_lockonboss[2] = { - CVAR_INIT ("cam_lockaimassist", "Bosses", CV_SAVE, lockedassist_cons_t, NULL), - CVAR_INIT ("cam2_lockaimassist", "Bosses", CV_SAVE, lockedassist_cons_t, NULL), + CVAR_INIT ("cam_lockaimassist", "Full", CV_SAVE, lockedassist_cons_t, NULL), + CVAR_INIT ("cam2_lockaimassist", "Full", CV_SAVE, lockedassist_cons_t, NULL), }; -consvar_t cv_turnaxis = CVAR_INIT ("joyaxis_turn", "X-Rudder", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_moveaxis = CVAR_INIT ("joyaxis_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_sideaxis = CVAR_INIT ("joyaxis_side", "X-Axis", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_lookaxis = CVAR_INIT ("joyaxis_look", "Y-Rudder-", CV_SAVE, joyaxis_cons_t, NULL); +consvar_t cv_turnaxis = CVAR_INIT ("joyaxis_turn", "X-Rudder", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_jumpaxis = CVAR_INIT ("joyaxis_jump", "None", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_spinaxis = CVAR_INIT ("joyaxis_spin", "None", CV_SAVE, joyaxis_cons_t, NULL); -consvar_t cv_fireaxis = CVAR_INIT ("joyaxis_fire", "Z-Axis-", CV_SAVE, joyaxis_cons_t, NULL); +consvar_t cv_fireaxis = CVAR_INIT ("joyaxis_fire", "Z-Rudder", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_firenaxis = CVAR_INIT ("joyaxis_firenormal", "Z-Axis", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_deadzone = CVAR_INIT ("joy_deadzone", "0.125", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL); consvar_t cv_digitaldeadzone = CVAR_INIT ("joy_digdeadzone", "0.25", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL); -consvar_t cv_turnaxis2 = CVAR_INIT ("joyaxis2_turn", "X-Rudder", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_moveaxis2 = CVAR_INIT ("joyaxis2_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_sideaxis2 = CVAR_INIT ("joyaxis2_side", "X-Axis", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_lookaxis2 = CVAR_INIT ("joyaxis2_look", "Y-Rudder-", CV_SAVE, joyaxis_cons_t, NULL); +consvar_t cv_turnaxis2 = CVAR_INIT ("joyaxis2_turn", "X-Rudder", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_jumpaxis2 = CVAR_INIT ("joyaxis2_jump", "None", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_spinaxis2 = CVAR_INIT ("joyaxis2_spin", "None", CV_SAVE, joyaxis_cons_t, NULL); -consvar_t cv_fireaxis2 = CVAR_INIT ("joyaxis2_fire", "Z-Axis-", CV_SAVE, joyaxis_cons_t, NULL); +consvar_t cv_fireaxis2 = CVAR_INIT ("joyaxis2_fire", "Z-Rudder", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_firenaxis2 = CVAR_INIT ("joyaxis2_firenormal", "Z-Axis", CV_SAVE, joyaxis_cons_t, NULL); consvar_t cv_deadzone2 = CVAR_INIT ("joy_deadzone2", "0.125", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL); consvar_t cv_digitaldeadzone2 = CVAR_INIT ("joy_digdeadzone2", "0.25", CV_FLOAT|CV_SAVE, zerotoone_cons_t, NULL); @@ -1551,8 +1551,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer) { // Fix offset angle for P2-controlled Tailsbot when P2's controls are set to non-Strafe cmd->angleturn = (INT16)((localangle - *myangle) >> 16); - } - + } + *myangle += (cmd->angleturn<<16); if (controlstyle == CS_LMAOGALOG) { @@ -2335,7 +2335,7 @@ void G_Ticker(boolean run) else if (players[i].bot == BOT_MPAI) { B_BuildTiccmd(&players[i], &players[i].cmd); } - + // Do angle adjustments. if (players[i].bot == BOT_NONE || players[i].bot == BOT_2PHUMAN) { @@ -2350,7 +2350,7 @@ void G_Ticker(boolean run) P_ForceLocalAngle(&players[i], players[i].angleturn << 16); else players[i].cmd.angleturn = players[i].angleturn; - + players[i].cmd.angleturn &= ~TICCMD_RECEIVED; // Use the leveltime sent in the player's ticcmd to determine control lag players[i].cmd.latency = min(((leveltime & 0xFF) - players[i].cmd.latency) & 0xFF, MAXPREDICTTICS-1); @@ -3056,15 +3056,15 @@ void G_DoReborn(INT32 playernum) return; } - + // Additional players (e.g. independent bots) in Single Player - if (playernum != consoleplayer && !(netgame || multiplayer)) - { + if (playernum != consoleplayer && !(netgame || multiplayer)) + { mobj_t *oldmo = NULL; // Do nothing if out of lives if (player->lives <= 0) return; - + // Otherwise do respawn, starting by removing the player object if (player->mo) { @@ -3075,7 +3075,7 @@ void G_DoReborn(INT32 playernum) G_SpawnPlayer(playernum); if (oldmo) G_ChangePlayerReferences(oldmo, players[playernum].mo); - + return; //Exit function to avoid proccing other SP related mechanics } diff --git a/src/g_input.c b/src/g_input.c index 6383c3f00..250a24772 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -684,14 +684,18 @@ void G_DefineDefaultControls(void) gamecontroldefault[gcs_fps][GC_LOOKDOWN ][0] = KEY_DOWNARROW; gamecontroldefault[gcs_fps][GC_TURNLEFT ][0] = KEY_LEFTARROW; gamecontroldefault[gcs_fps][GC_TURNRIGHT ][0] = KEY_RIGHTARROW; - gamecontroldefault[gcs_fps][GC_CENTERVIEW ][0] = KEY_END; + gamecontroldefault[gcs_fps][GC_CENTERVIEW ][0] = KEY_LCTRL; gamecontroldefault[gcs_fps][GC_JUMP ][0] = KEY_SPACE; gamecontroldefault[gcs_fps][GC_SPIN ][0] = KEY_LSHIFT; gamecontroldefault[gcs_fps][GC_FIRE ][0] = KEY_RCTRL; gamecontroldefault[gcs_fps][GC_FIRE ][1] = KEY_MOUSE1+0; - gamecontroldefault[gcs_fps][GC_FIRENORMAL ][0] = 'c'; + gamecontroldefault[gcs_fps][GC_FIRENORMAL ][0] = KEY_RALT; + gamecontroldefault[gcs_fps][GC_FIRENORMAL ][1] = KEY_MOUSE1+1; + gamecontroldefault[gcs_fps][GC_CUSTOM1 ][0] = 'z'; + gamecontroldefault[gcs_fps][GC_CUSTOM2 ][0] = 'x'; + gamecontroldefault[gcs_fps][GC_CUSTOM3 ][0] = 'c'; - // Platform game controls (arrow keys) + // Platform game controls (arrow keys), currently unused gamecontroldefault[gcs_platform][GC_FORWARD ][0] = KEY_UPARROW; gamecontroldefault[gcs_platform][GC_BACKWARD ][0] = KEY_DOWNARROW; gamecontroldefault[gcs_platform][GC_STRAFELEFT ][0] = 'a'; @@ -734,34 +738,36 @@ void G_DefineDefaultControls(void) gamecontroldefault[i][GC_VIEWPOINT ][0] = KEY_F12; // Gamepad controls -- same for both schemes - gamecontroldefault[i][GC_WEAPONNEXT ][1] = KEY_JOY1+1; // B - gamecontroldefault[i][GC_WEAPONPREV ][1] = KEY_JOY1+2; // X - gamecontroldefault[i][GC_TOSSFLAG ][1] = KEY_JOY1+0; // A - gamecontroldefault[i][GC_SPIN ][1] = KEY_JOY1+4; // LB - gamecontroldefault[i][GC_CAMTOGGLE ][1] = KEY_HAT1+0; // D-Pad Up - gamecontroldefault[i][GC_CAMRESET ][1] = KEY_JOY1+3; // Y + gamecontroldefault[i][GC_JUMP ][1] = KEY_JOY1+0; // A + gamecontroldefault[i][GC_SPIN ][1] = KEY_JOY1+2; // X + gamecontroldefault[i][GC_CUSTOM1 ][1] = KEY_JOY1+1; // B + gamecontroldefault[i][GC_CUSTOM2 ][1] = KEY_JOY1+3; // Y + gamecontroldefault[i][GC_CUSTOM3 ][1] = KEY_JOY1+8; // Left Stick gamecontroldefault[i][GC_CENTERVIEW ][1] = KEY_JOY1+9; // Right Stick - gamecontroldefault[i][GC_TALKKEY ][1] = KEY_HAT1+2; // D-Pad Left - gamecontroldefault[i][GC_SCORES ][1] = KEY_HAT1+3; // D-Pad Right - gamecontroldefault[i][GC_JUMP ][1] = KEY_JOY1+5; // RB - gamecontroldefault[i][GC_PAUSE ][1] = KEY_JOY1+6; // Back - gamecontroldefault[i][GC_SCREENSHOT ][1] = KEY_HAT1+1; // D-Pad Down + gamecontroldefault[i][GC_WEAPONPREV ][1] = KEY_JOY1+4; // LB + gamecontroldefault[i][GC_WEAPONNEXT ][1] = KEY_JOY1+5; // RB + gamecontroldefault[i][GC_SCREENSHOT ][1] = KEY_JOY1+6; // Back gamecontroldefault[i][GC_SYSTEMMENU ][0] = KEY_JOY1+7; // Start + gamecontroldefault[i][GC_CAMTOGGLE ][1] = KEY_HAT1+0; // D-Pad Up + gamecontroldefault[i][GC_VIEWPOINT ][1] = KEY_HAT1+1; // D-Pad Down + gamecontroldefault[i][GC_TOSSFLAG ][1] = KEY_HAT1+2; // D-Pad Left + gamecontroldefault[i][GC_SCORES ][1] = KEY_HAT1+3; // D-Pad Right // Second player controls only have joypad defaults - gamecontrolbisdefault[i][GC_WEAPONNEXT][0] = KEY_2JOY1+1; // B - gamecontrolbisdefault[i][GC_WEAPONPREV][0] = KEY_2JOY1+2; // X - gamecontrolbisdefault[i][GC_TOSSFLAG ][0] = KEY_2JOY1+0; // A - gamecontrolbisdefault[i][GC_SPIN ][0] = KEY_2JOY1+4; // LB - gamecontrolbisdefault[i][GC_CAMRESET ][0] = KEY_2JOY1+3; // Y - gamecontrolbisdefault[i][GC_CENTERVIEW][0] = KEY_2JOY1+9; // Right Stick - gamecontrolbisdefault[i][GC_JUMP ][0] = KEY_2JOY1+5; // RB - //gamecontrolbisdefault[i][GC_PAUSE ][0] = KEY_2JOY1+6; // Back - //gamecontrolbisdefault[i][GC_SYSTEMMENU][0] = KEY_2JOY1+7; // Start - gamecontrolbisdefault[i][GC_CAMTOGGLE ][0] = KEY_2HAT1+0; // D-Pad Up - gamecontrolbisdefault[i][GC_SCREENSHOT][0] = KEY_2HAT1+1; // D-Pad Down - //gamecontrolbisdefault[i][GC_TALKKEY ][0] = KEY_2HAT1+2; // D-Pad Left - //gamecontrolbisdefault[i][GC_SCORES ][0] = KEY_2HAT1+3; // D-Pad Right + gamecontrolbisdefault[i][GC_JUMP ][1] = KEY_2JOY1+0; // A + gamecontrolbisdefault[i][GC_SPIN ][1] = KEY_2JOY1+2; // X + gamecontrolbisdefault[i][GC_CUSTOM1 ][1] = KEY_2JOY1+1; // B + gamecontrolbisdefault[i][GC_CUSTOM2 ][1] = KEY_2JOY1+3; // Y + gamecontrolbisdefault[i][GC_CUSTOM3 ][1] = KEY_2JOY1+8; // Left Stick + gamecontrolbisdefault[i][GC_CENTERVIEW ][1] = KEY_2JOY1+9; // Right Stick + gamecontrolbisdefault[i][GC_WEAPONPREV ][1] = KEY_2JOY1+4; // LB + gamecontrolbisdefault[i][GC_WEAPONNEXT ][1] = KEY_2JOY1+5; // RB + gamecontrolbisdefault[i][GC_SCREENSHOT ][1] = KEY_2JOY1+6; // Back + //gamecontrolbisdefault[i][GC_SYSTEMMENU ][0] = KEY_2JOY1+7; // Start + gamecontrolbisdefault[i][GC_CAMTOGGLE ][1] = KEY_2HAT1+0; // D-Pad Up + gamecontrolbisdefault[i][GC_VIEWPOINT ][1] = KEY_2HAT1+1; // D-Pad Down + gamecontrolbisdefault[i][GC_TOSSFLAG ][1] = KEY_2HAT1+2; // D-Pad Left + //gamecontrolbisdefault[i][GC_SCORES ][1] = KEY_2HAT1+3; // D-Pad Right } } diff --git a/src/lua_maplib.c b/src/lua_maplib.c index 4e376f0d5..9a33279e2 100644 --- a/src/lua_maplib.c +++ b/src/lua_maplib.c @@ -218,13 +218,13 @@ enum ffloor_e { ffloor_next, ffloor_prev, ffloor_alpha, + ffloor_blend, ffloor_bustflags, ffloor_busttype, ffloor_busttag, ffloor_sinkspeed, ffloor_friction, ffloor_bouncestrength, - ffloor_blend, }; static const char *const ffloor_opt[] = { @@ -243,13 +243,13 @@ static const char *const ffloor_opt[] = { "next", "prev", "alpha", + "blend", "bustflags", "busttype", "busttag", "sinkspeed", "friction", "bouncestrength", - "blend", NULL}; #ifdef HAVE_LUA_SEGS @@ -1908,6 +1908,9 @@ static int ffloor_get(lua_State *L) case ffloor_alpha: lua_pushinteger(L, ffloor->alpha); return 1; + case ffloor_blend: + lua_pushinteger(L, ffloor->blend); + return 1; case ffloor_bustflags: lua_pushinteger(L, ffloor->bustflags); return 1; @@ -1926,9 +1929,6 @@ static int ffloor_get(lua_State *L) case ffloor_bouncestrength: lua_pushfixed(L, ffloor->bouncestrength); return 1; - case ffloor_blend: - lua_pushinteger(L, ffloor->blend); - return 1; } return 0; } diff --git a/src/m_menu.c b/src/m_menu.c index 85d093b94..3c1d8d7ca 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -4438,22 +4438,21 @@ static void M_DrawGenericMenu(void) } } -const char *PlaystyleNames[4] = {"Strafe", "Standard", "Simple", "Old Analog??"}; +const char *PlaystyleNames[4] = {"\x86Strafe\x80", "Manual", "Automatic", "Old Analog??"}; const char *PlaystyleDesc[4] = { - // Legacy - "The play style used for\n" - "old-school SRB2.\n" + // Strafe (or Legacy) + "A play style resembling\n" + "old-school SRB2 gameplay.\n" "\n" "This play style is identical\n" - "to Standard, except that the\n" + "to Manual, except that the\n" "player always looks in the\n" "direction of the camera." , - // Standard - "The default play style,\n" - "designed for full control\n" - "with a keyboard and mouse.\n" + // Manual (formerly Standard) + "A play style made for full control,\n" + "using a keyboard and mouse.\n" "\n" "The camera rotates only when\n" "you tell it to. The player\n" @@ -4465,8 +4464,8 @@ const char *PlaystyleDesc[4] = { "open up the highest level of play!" , - // Simple - "A play style designed for\n" + // Automatic (formerly Simple) + "The default play style, designed for\n" "gamepads and hassle-free play.\n" "\n" "The camera rotates automatically\n" @@ -4475,7 +4474,8 @@ const char *PlaystyleDesc[4] = { "they're moving.\n" "\n" "Hold \x82" "Center View\x80 to lock the\n" - "camera behind the player!\n" + "camera behind the player, or target\n" + "enemies, bosses and monitors!\n" , // Old Analog @@ -4486,7 +4486,7 @@ const char *PlaystyleDesc[4] = { "your config file and brought it back.\n" "\n" "That's absolutely valid, but I implore\n" - "you to try the new Simple play style\n" + "you to try the new Automatic play style\n" "instead!" }; @@ -9062,7 +9062,7 @@ static void M_LoadGame(INT32 choice) if (tutorialmap && cv_tutorialprompt.value) { - M_StartMessage("Do you want to \x82play a brief Tutorial\x80?\n\nWe highly recommend this because \nthe controls are slightly different \nfrom other games.\n\nPress 'Y' or 'Enter' to go\nPress 'N' or any key to skip\n", + M_StartMessage("Do you want to \x82play a brief Tutorial\x80?\n\nWe highly recommend this because \nthe controls are slightly different \nfrom other games.\n\nPress the\x82 Y\x80 key or the\x83 A button\x80 to go\nPress the\x82 N\x80 key or the\x83 Y button\x80 to skip\n", M_FirstTimeResponse, MM_YESNO); return; } @@ -13008,6 +13008,7 @@ static void M_DrawPlaystyleMenu(void) if (i == playstyle_currentchoice) { + V_DrawFill(20, 40, 280, 150, 159); V_DrawScaledPatch((i+1)*BASEVIDWIDTH/4 - 8, 10, 0, W_CachePatchName("M_CURSOR", PU_CACHE)); V_DrawString(30, 50, V_ALLOWLOWERCASE, PlaystyleDesc[i]); } diff --git a/src/p_mobj.c b/src/p_mobj.c index 3e4730131..9926e62fb 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -7748,7 +7748,8 @@ static void P_MobjSceneryThink(mobj_t *mobj) break; case MT_WATERDROP: P_SceneryCheckWater(mobj); - if ((mobj->z <= mobj->floorz || mobj->z <= mobj->watertop) + if (((!(mobj->eflags & MFE_VERTICALFLIP) && (mobj->z <= mobj->floorz || mobj->z <= mobj->watertop)) + || (mobj->eflags & MFE_VERTICALFLIP && mobj->z + mobj->height >= mobj->ceilingz)) && mobj->health > 0) { mobj->health = 0; diff --git a/src/p_setup.c b/src/p_setup.c index 55268fa54..e732fc91a 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -5762,17 +5762,6 @@ static void P_ConvertBinaryLinedefTypes(void) case 799: //Set dynamic slope vertex to front sector height lines[i].args[0] = !!(lines[i].flags & ML_NOCLIMB); break; - case 900: //Translucent wall (10%) - case 901: //Translucent wall (20%) - case 902: //Translucent wall (30%) - case 903: //Translucent wall (40%) - case 904: //Translucent wall (50%) - case 905: //Translucent wall (60%) - case 906: //Translucent wall (70%) - case 907: //Translucent wall (80%) - case 908: //Translucent wall (90%) - lines[i].alpha = ((909 - lines[i].special) << FRACBITS)/10; - break; case 909: //Fog wall lines[i].blendmode = AST_FOG; break; diff --git a/src/p_user.c b/src/p_user.c index 658b97634..639bedfd9 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1187,8 +1187,8 @@ void P_GivePlayerRings(player_t *player, INT32 num_rings) if (!player) return; - if (player->bot) - player = &players[consoleplayer]; + if ((player->bot == BOT_2PAI || player->bot == BOT_2PHUMAN) && player->botleader) + player = player->botleader; if (!player->mo) return; @@ -9540,7 +9540,7 @@ consvar_t cv_cam_still = CVAR_INIT ("cam_still", "Off", 0, CV_OnOff, NULL); consvar_t cv_cam_speed = CVAR_INIT ("cam_speed", "0.3", CV_FLOAT|CV_SAVE, CV_CamSpeed, NULL); consvar_t cv_cam_rotate = CVAR_INIT ("cam_rotate", "0", CV_CALL|CV_NOINIT, CV_CamRotate, CV_CamRotate_OnChange); consvar_t cv_cam_rotspeed = CVAR_INIT ("cam_rotspeed", "10", CV_SAVE, rotation_cons_t, NULL); -consvar_t cv_cam_turnmultiplier = CVAR_INIT ("cam_turnmultiplier", "1.0", CV_FLOAT|CV_SAVE, multiplier_cons_t, NULL); +consvar_t cv_cam_turnmultiplier = CVAR_INIT ("cam_turnmultiplier", "0.75", CV_FLOAT|CV_SAVE, multiplier_cons_t, NULL); consvar_t cv_cam_orbit = CVAR_INIT ("cam_orbit", "Off", CV_SAVE, CV_OnOff, NULL); consvar_t cv_cam_adjust = CVAR_INIT ("cam_adjust", "On", CV_SAVE, CV_OnOff, NULL); consvar_t cv_cam2_dist = CVAR_INIT ("cam2_curdist", "160", CV_FLOAT, NULL, NULL); @@ -9549,30 +9549,30 @@ consvar_t cv_cam2_still = CVAR_INIT ("cam2_still", "Off", 0, CV_OnOff, NULL); consvar_t cv_cam2_speed = CVAR_INIT ("cam2_speed", "0.3", CV_FLOAT|CV_SAVE, CV_CamSpeed, NULL); consvar_t cv_cam2_rotate = CVAR_INIT ("cam2_rotate", "0", CV_CALL|CV_NOINIT, CV_CamRotate, CV_CamRotate2_OnChange); consvar_t cv_cam2_rotspeed = CVAR_INIT ("cam2_rotspeed", "10", CV_SAVE, rotation_cons_t, NULL); -consvar_t cv_cam2_turnmultiplier = CVAR_INIT ("cam2_turnmultiplier", "1.0", CV_FLOAT|CV_SAVE, multiplier_cons_t, NULL); +consvar_t cv_cam2_turnmultiplier = CVAR_INIT ("cam2_turnmultiplier", "0.75", CV_FLOAT|CV_SAVE, multiplier_cons_t, NULL); consvar_t cv_cam2_orbit = CVAR_INIT ("cam2_orbit", "Off", CV_SAVE, CV_OnOff, NULL); consvar_t cv_cam2_adjust = CVAR_INIT ("cam2_adjust", "On", CV_SAVE, CV_OnOff, NULL); // [standard vs simple][p1 or p2] consvar_t cv_cam_savedist[2][2] = { { // standard - CVAR_INIT ("cam_dist", "160", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCamDist), - CVAR_INIT ("cam2_dist", "160", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCam2Dist), + CVAR_INIT ("cam_dist", "192", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCamDist), + CVAR_INIT ("cam2_dist", "192", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCam2Dist), }, { // simple - CVAR_INIT ("cam_simpledist", "224", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCamDist), - CVAR_INIT ("cam2_simpledist", "224", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCam2Dist), + CVAR_INIT ("cam_simpledist", "256", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCamDist), + CVAR_INIT ("cam2_simpledist", "256", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCam2Dist), } }; consvar_t cv_cam_saveheight[2][2] = { { // standard - CVAR_INIT ("cam_height", "25", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCamDist), - CVAR_INIT ("cam2_height", "25", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCam2Dist), + CVAR_INIT ("cam_height", "40", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCamDist), + CVAR_INIT ("cam2_height", "40", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCam2Dist), }, { // simple - CVAR_INIT ("cam_simpleheight", "48", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCamDist), - CVAR_INIT ("cam2_simpleheight", "48", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCam2Dist), + CVAR_INIT ("cam_simpleheight", "60", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCamDist), + CVAR_INIT ("cam2_simpleheight", "60", CV_FLOAT|CV_SAVE|CV_CALL, NULL, CV_UpdateCam2Dist), } }; @@ -9754,17 +9754,7 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall if (P_CameraThinker(player, thiscam, resetcalled)) return true; - if (tutorialmode) - { - // force defaults because we have a camera look section - camspeed = (INT32)(atof(cv_cam_speed.defaultvalue) * FRACUNIT); - camstill = (!stricmp(cv_cam_still.defaultvalue, "off")) ? false : true; - camorbit = (!stricmp(cv_cam_orbit.defaultvalue, "off")) ? false : true; - camrotate = atoi(cv_cam_rotate.defaultvalue); - camdist = FixedMul((INT32)(atof(cv_cam_dist.defaultvalue) * FRACUNIT), mo->scale); - camheight = FixedMul((INT32)(atof(cv_cam_height.defaultvalue) * FRACUNIT), mo->scale); - } - else if (thiscam == &camera) + if (thiscam == &camera) { camspeed = cv_cam_speed.value; camstill = cv_cam_still.value; @@ -11519,7 +11509,7 @@ void P_PlayerThink(player_t *player) INT32 i, total = 0, exiting = 0; for (i = 0; i < MAXPLAYERS; i++) - { + { if (!playeringame[i] || players[i].spectator || players[i].bot) continue; if (players[i].quittime > 30 * TICRATE) @@ -12463,7 +12453,7 @@ void P_PlayerAfterThink(player_t *player) player->mo->momy = tails->momy; player->mo->momz = tails->momz; } - + if (G_CoopGametype() && tails->player && tails->player->bot != BOT_2PAI) { player->mo->angle = tails->angle; diff --git a/src/r_patchrotation.c b/src/r_patchrotation.c index dae3a7b53..5dbc30286 100644 --- a/src/r_patchrotation.c +++ b/src/r_patchrotation.c @@ -227,10 +227,10 @@ void RotatedPatch_DoRotation(rotsprite_t *rotsprite, patch_t *patch, INT32 angle ox = (newwidth / 2) + (leftoffset - xpivot); oy = (newheight / 2) + (patch->topoffset - ypivot); - width = (maxx+1 - minx); - height = (maxy+1 - miny); + width = (maxx - minx); + height = (maxy - miny); - if ((unsigned)(width * height) != size) + if ((unsigned)(width * height) > size) { UINT16 *src, *dest; diff --git a/src/s_sound.c b/src/s_sound.c index 30f242369..76f0d67c1 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -74,9 +74,9 @@ consvar_t stereoreverse = CVAR_INIT ("stereoreverse", "Off", CV_SAVE, CV_OnOff, static consvar_t precachesound = CVAR_INIT ("precachesound", "Off", CV_SAVE, CV_OnOff, NULL); // actual general (maximum) sound & music volume, saved into the config -consvar_t cv_soundvolume = CVAR_INIT ("soundvolume", "18", CV_SAVE, soundvolume_cons_t, NULL); -consvar_t cv_digmusicvolume = CVAR_INIT ("digmusicvolume", "18", CV_SAVE, soundvolume_cons_t, NULL); -consvar_t cv_midimusicvolume = CVAR_INIT ("midimusicvolume", "18", CV_SAVE, soundvolume_cons_t, NULL); +consvar_t cv_soundvolume = CVAR_INIT ("soundvolume", "16", CV_SAVE, soundvolume_cons_t, NULL); +consvar_t cv_digmusicvolume = CVAR_INIT ("digmusicvolume", "16", CV_SAVE, soundvolume_cons_t, NULL); +consvar_t cv_midimusicvolume = CVAR_INIT ("midimusicvolume", "16", CV_SAVE, soundvolume_cons_t, NULL); static void Captioning_OnChange(void) { diff --git a/src/sdl/ogl_sdl.c b/src/sdl/ogl_sdl.c index c426e6792..bdc693ca5 100644 --- a/src/sdl/ogl_sdl.c +++ b/src/sdl/ogl_sdl.c @@ -177,7 +177,9 @@ boolean OglSdlSurface(INT32 w, INT32 h) // Also set the renderer variable back to software so the next launch won't // repeat this error. CV_StealthSet(&cv_renderer, "Software"); - I_Error("OpenGL Error: Failed to access the GPU. There may be an issue with your graphics drivers."); + I_Error("OpenGL Error: Failed to access the GPU. Possible reasons include:\n" + "- GPU vendor has dropped OpenGL support on your GPU and OS. (Old GPU?)\n" + "- GPU drivers are missing or broken. You may need to update your drivers."); } } first_init = true; diff --git a/src/st_stuff.c b/src/st_stuff.c index ebf188a06..f17b58fa6 100644 --- a/src/st_stuff.c +++ b/src/st_stuff.c @@ -1176,7 +1176,17 @@ static void ST_drawInput(void) break; case CS_SIMPLE: - V_DrawThinString(x, y, hudinfo[HUD_LIVES].f, "SIMPLE"); + V_DrawThinString(x, y, hudinfo[HUD_LIVES].f, "AUTOMATIC"); + y -= 8; + break; + + case CS_STANDARD: + V_DrawThinString(x, y, hudinfo[HUD_LIVES].f, "MANUAL"); + y -= 8; + break; + + case CS_LEGACY: + V_DrawThinString(x, y, hudinfo[HUD_LIVES].f, "STRAFE"); y -= 8; break;