Commit graph

1556 commits

Author SHA1 Message Date
toaster
60fee59c54 Adjust Test Run's exceptions for lock checks
- Revert the blanket exception so Lost and Found won't always have it available
- Won't be considered cheating to go to Test Run on game boot even if not unlocked
- Made the lack of exception for Test Run in Command_Map_f's cheat check more intentional
2023-03-13 17:28:55 +00:00
Oni
9f4c080964 Merge branch 'dynamic-controllers' into 'master'
Handle gamepads from interface dynamically

Closes #397

See merge request KartKrew/Kart!1018
2023-03-13 07:56:34 +00:00
James R
1f70b9c63c Merge remote-tracking branch 'origin/bumpers-ARE-health' 2023-03-13 00:51:44 -07:00
James R
c781780ff8 Lose bumpers when using the respawn command 2023-03-08 19:01:03 -08:00
James R
6d530ec810 PARANOIA: snacpending negative error plays sfx_monch 2023-03-07 18:26:50 -08:00
Eidolon
7ed5e7a7a5 Change gamepad LED colors on playercolor change 2023-03-07 00:07:47 -06:00
Eidolon
86a9579e16 Handle gamepads from interface dynamically
Fixes numerous issues with hotswapping, gamepad assignment, and menu
responsiveness.
2023-03-07 00:07:47 -06:00
Sally Coolatta
3d1070c2f2 Show ranking data on the screen 2023-03-06 18:25:16 -05:00
Sally Coolatta
664fb02229 Remove exitlevel wonround
Don't care enough to fix it right now.
2023-03-04 13:32:06 -05:00
Sally Coolatta
4ff0a8358f Rework exitlevel conditions
- Uses K_CanChangeRules instead of checking for multiplayer, to catch all of the restricted singleplayer scenarios
- Checks for server admin first before cheats
2023-03-03 16:09:53 -05:00
Sally Coolatta
4d19b127c3 Got_ExitLevelcmd sets GP round won 2023-03-03 16:09:52 -05:00
James R
ceab0399de Add eval command, calls LUA_EvalMath 2023-03-02 22:56:32 -08:00
James R
58f07987f9 Add setscore cheat, sets player's point count 2023-03-02 22:08:30 -08:00
James R
b2fb1b4ccd Make timelimit cvar seconds based
Easier for activating Overtime Barrier. Previously would
have to wait a minute at minimum :sandevastated:
2023-03-02 22:07:11 -08:00
toaster
40271cd128 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into hwr2-twodee 2023-03-01 12:30:58 +00:00
Eidolon
11fecebc47 Make AVRecorder WebM an optional part of the build 2023-02-26 20:18:05 -06:00
James R
2d063445a6 Automatically toggle director depending on number of players
- Upon becoming a spectator: if there are any players who
  can be spectated, e.g. haven't finished the level, then
  turn on director cam.

- Removes director cvar.
2023-02-26 05:55:44 -08:00
James R
9578f5e05d Reset viewpoint to local player if last viewed player spectates or leaves 2023-02-26 04:08:19 -08:00
Oni
97ab743506 Merge branch 'timelimit-auto' into 'master'
Refactor timelimit and pointlimit to use an "Auto" option

See merge request KartKrew/Kart!969
2023-02-25 23:46:28 +00:00
James R
67062bb920 Merge branch 'refactor-pointlimit' into 'master'
Refactor pointlimit to be delayed until next round, just like timelimit

See merge request KartKrew/Kart!966
2023-02-25 07:33:25 +00:00
James R
8ba2155d89 Refactor timelimit and pointlimit to use "Default" option
- "Default" automatically updates the time/point limit
  according to the rules of the gametype.
- This fixes the bug where if you set timelimit at all,
  the default 2 minute limit will never be set again for
  Battle mode.
2023-02-24 23:19:07 -08:00
James R
c65f4ff893 Add AVRecorder movie mode 2023-02-24 19:21:01 -08:00
James R
917acfd16b Refactor pointlimit to be delayed until next round, like timelimit 2023-02-23 18:37:30 -08:00
AJ Martinez
53f14bd14a Make Random map vote only use the visible vote choices (random = don't care) 2023-02-21 16:29:52 -07:00
toaster
9e494e45d0 D_IsPlayerHumanAndGaming means they're *human*, ie not a bot 🥹 2023-02-17 18:15:25 +00:00
toaster
ff29d446eb forcecharacter: Rename to end the snickering. 2023-02-17 17:19:27 +00:00
toaster
4d607ccdec Tidy up conditions for forceskin to not include !K_CanChangeRules or Playing. 2023-02-17 16:36:38 +00:00
toaster
05ee3df2f4 d_netcmd.c: Tidy up conditions for changing skin/color.
- Got_NameAndColor: Incorporate check for cv_restrictskinchange and FREE PLAY
- CanChangeSkin: Boil away all the useless conditions, combine with CanChangeSkinWhilePlaying
2023-02-17 15:50:25 +00:00
toaster
7d2accb044 Got_TeamChange: only do mobj kill/PST_REBORN stuff in GS_LEVEL. 2023-02-17 14:41:47 +00:00
toaster
8fb1ffe5fe Got_NameAndColor: If the player's skin is changed by the packet, make them a spectator.
- Doesn't apply on join, intro camera spin turnaround, or outside of GS_LEVEL.
- Extract some of Got_TeamChange's behaviour into a new FinalisePlaystateChange function.
2023-02-17 14:40:44 +00:00
toaster
e3eb3ed9f8 Command_Map_f: Guess gametype of map in offline GP, as well as from titlescreen/menu 2023-02-16 15:31:25 +00:00
toaster
97c8d201eb Command_Map_f: Respect value of splitplayers cvar
Permits testing multiple players in GP by your lonesome without having to manipulate multiple controllers at once.
2023-02-16 15:28:31 +00:00
toaster
3bfd4be29e AltTitle_OnChange: Actually correctly set cv_alttitle instead of cv_itemfinder if modified when unlocked 2023-02-04 18:04:56 +00:00
toaster
84a98475ff Command_ExitGame_f: Return to title if restoreMenu is NULL 2023-02-04 17:07:24 +00:00
toaster
20e9b2f5e8 Restore menu state after playsim
- restoreMenu, M_SpecificMenuRestore
    - From any Cup Select, Level Select, or Time Attack context (including non-net replay playback), return to the relevant "core menu"
    - From any server OR server connection failure, return to the Online EGGA CHANNEL top-level menu
    - From netreplay, head to replay hut without incorrect gamestate/fade cope
    - Interruption for Challenges unlock sequence now happens on all menu returns, not just post-titlescreen
- M_StartControlPanel
    - Integrate with above
    - Handle menu re-initialisation properly under more contexts
- D_ClearState
    - Split out from D_StartTitle
    - Can be used alongside M_StartControlPanel to restore menu state from any play session in a way just as reliable as D_StartTitle was
2023-01-29 23:53:21 +00:00
toaster
dafd6d5dfa New console command "minigen"
- Generates "MINIMAP.png" in your srb2home
- Uses inherited automap code to render to a temporary buffer
    - Because am_map.c is a mess of filescope static variables right now, this only works when the automap is disabled.
- Currently an equal alternate method to SLADE's map image export, but because we're in control, additional features can be added later...
    - TODO: Off vertically by one pixel on GHZ. Otherwise effectively identical in shape
    - TODO: the colours are rancid, I wonder if they were even updated for the 2.2 palette

Related:
- Use identical linear-time mechanisms for detecting borders of map geometry between automap and minimap
    - Automap was previously using iteration over all vertices
    - Minimap was previously pointlessly writing min/max values twice
2023-01-23 12:33:35 +00:00
James R
ba27c87ff0 Add capsuletest cvar
- capsuletest off - default behavior.

- capsuletest multiplayer - always spawn non time attack
capsules, even in FREE PLAY.

- capsuletest timeattack - always spawn time attack
capsules, even in multiplayer.
2023-01-11 21:46:21 -08:00
James R
94e3050f10 Do not overwrite compbranch in case of detached HEAD 2023-01-05 18:32:54 -08:00
James R
55636fa690 Separate git commit subject line from comprevision, add SRB2_COMP_NOTE 2023-01-05 18:32:20 -08:00
toaster
80d19a8458 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into save_p-unglobal-alt
# Conflicts:
#	src/g_demo.c
2023-01-03 19:45:18 +00:00
Oni
46005089f1 Merge branch 'rulesify' into 'master'
Rulesify (resolves #375)

Closes #360 and #375

See merge request KartKrew/Kart!836
2023-01-03 02:43:52 +00:00
Sally Coolatta
aa4fd8ab13 Add functions to initialize savebuffer_t
g_demo.c is mostly unaltered because it is made of twigs.
2023-01-02 19:47:59 -05:00
James R
5887c36111 Show CMAKE_BUILD_TYPE on title screen
Includes a hint if optimizations may have been turned off.
2023-01-02 01:46:05 -08:00
Sally Coolatta
761be01dbb Contain end & size into savebuffer_t
I would've liked to make it use a single allocate function to do this very cleanly, but these cases were very clearly not meant to be standardized and use wildly different methods to allocate & free...
2023-01-01 00:23:23 -08:00
James R
77d54a09fe Remove global lua_save_p and use savebuffer_t for LUA_Archive / LUA_UnArchive 2023-01-01 00:23:23 -08:00
Sally Coolatta
38a35b6f78 Make save_p / savebuffers not global
This caused some scary issues with P_SaveNetGame the other day, and it's making ACS net sync harder. Let's just cut this off right now.

Also fixed some scary mix-ups in some of the Lua archiving code.
2023-01-01 00:22:56 -08:00
toaster
42a6b03e48 Remove "circuitmap"
An effectively useless global scope boolean that literally checks for the presence of a finish line, created in and used only by things we inherited from vanilla SRB2
2022-12-31 23:27:59 +00:00
toaster
425a02d09b Make GTR_BUMPERS less monolithic
* Battle-like item box respawn handling inverse of GTR_CIRCUIT
* Make battle fullscreen overlay forbid GTR_CIRCUIT
* Make GTR_ITEMARROWS actually do something
* Make everything related to points actually use GTR_POINTLIMIT
* Fobid sphere addition without GTR_SPHERES, to mirror ring addition forbidding
2022-12-31 23:12:41 +00:00
toaster
ebb2a79666 Dehardcode menu gametype selection, part 2
- Add "Gametype" toggle option to pause menu for admins
    - A/Confirm button on any gametype other than current to do random map in new gametype
    - C/Extra button to return to current gametype
    - A/Confirm button on current gametype does a funny noise and nothing else right now, idk what to do
- `randomlevel` supports the same `-gametype` parameter as `map`
- Both `randomlevel` and `map`'s `-gametype` parameter prohibits `GTR_FORBIDMP` mask gametype changes in netgames
- `randomlevel` properly sets encore based on `cv_kartencore`'s value (and permitting `GTR_ENCORE`)
- Split out `menugametype` change functions
- `yellowmap` now remaps all intermediary shades of grey to match funny pause menu remaps
2022-12-30 20:35:55 +00:00
toaster
3ee8713e46 Dehardcode menu gametype selection, part 1
- Introduce `menugametype`
    - Controlled by IT_KEYHANDLER/M_HandleMenuGametype
    - Excludes gametypes that do not support multiplayer by default
        - GTR_CAPSULES and GTR_BOSS for now, but also user-specifiable GTR_NOMP
- Remove gametype_cons_t and G_UpdateGametypeSelections, an obstacle in the way of infinitely allocatable custom gametypes
2022-12-30 15:23:26 +00:00