Commit graph

1469 commits

Author SHA1 Message Date
James R
56694b2740 Merge branch 'udmf-riser' into 'master'
Add foflayer field to UDMF things, spawn offset from a specific FOF in the thing's sector

Closes #417

See merge request KartKrew/Kart!1120
2023-04-02 07:27:51 +00:00
Sal
3a109dbe78 Merge branch 'uncap-numlaps' into 'master'
Remove restrictions on numlaps, merge with gptest

See merge request KartKrew/Kart!1116
2023-04-01 20:12:47 +00:00
SteelT
5020e564e2 Fix empty position music header field pointing to garbage string 2023-03-31 15:41:58 -04:00
Oni
dec66ee9b1 Merge branch 'jam-project' into 'master'
Stereo Mode

See merge request KartKrew/Kart!1097
2023-03-31 01:07:38 +00:00
James R
881f8d8407 UDMF: add foflayer field to things TEXTMAP 2023-03-29 22:23:02 -07:00
SteelT
4e8bc36521 Reload palette even if rewinding a replay or reloading the gamestate 2023-03-29 14:29:00 -04:00
James R
e437656633 Remove restrictions on numlaps, merge with gptest
- numlaps 0 now sets the race to 0 laps.
  - Players will finish upon crossing the finishing line
    immediately after POSITION.

- gptest merged with numlaps.
  - numlaps works in GP.

- Warping to sprint maps with numlaps already set now lets
  numlaps exceed the map default. It was previous capped
  at map default ONLY when loading into the level (so you
  could still exceed it by setting numlaps during
  POSITION). Now it's consistent.

- numlaps can now be set at any time during the race.
2023-03-29 03:53:21 -07:00
Sal
fe34e04abe Merge branch 'encore-fixies' into 'master'
Fix random Encore vote, error if ENCORE/TWEAKMAP lump is invalid, add debugencorevote command

Closes #333

See merge request KartKrew/Kart!1101
2023-03-29 00:32:00 +00:00
Sal
83b5b26a12 Merge branch 'packet-hack' into 'master'
Experimental: Improve level load processing

See merge request KartKrew/Kart!1077
2023-03-28 23:41:33 +00:00
toaster
3e476568ea mapheader_t: AssociatedMusic property
Enables things like the Goin' Down!? segment in Speed Highway to be connected directly to access to that map.
2023-03-28 13:50:05 +01:00
toaster
90d5cb3752 S_PopulateSoundTestSequence: Sound Test sequence system
- Called on game start and file add
- Creates a seperate linked list sequence for map-related order
    - All tracks without associated map in level order
    - All tracks with maps in a cup in cup order
    - All tracks with maps in Lost and Found
2023-03-28 01:41:53 +01:00
James R
6bc785c099 I_Error if ENCORE/TWEAKMAP has an incorrect size
Prevent memory errors if the lump is too large.
2023-03-26 06:55:22 -07:00
Chromatian Keiske
77117bbc9f Merge branch 'fix-retry' into 'master'
Fix retry life/rank farming + fix buffered retry

Closes #475

See merge request KartKrew/Kart!1083
2023-03-25 05:50:06 +00:00
James R
b7d1996a15 Do not let retries be buffered on intermission to instantly retry the next round 2023-03-22 20:54:58 -07:00
James R
f5f85cc3e4 Refactor lives and rank increase to occur at level end transition, not when the player finishes
Fixes exploiting retries after finishing in good standing
to farm lives and rank. These are now applied when you can
no longer retry.

Extra life sound effect still plays as soon as you finish
the race.
2023-03-22 20:49:33 -07:00
Sally Coolatta
ffb65a3583 Experimental: Improve level load processing
- P_PreTicker ("defrosting") is dead. Levels now actually start on tic 0 instead of tic 2.
- Netxcmds are ran before G_Ticker, instead of after.
- All netxcmds are required to be processed before the level will finish loading (up to 5 gametics, to prevent any possible lock-up from malicious clients).
2023-03-22 10:59:29 -04:00
toaster
4c0077e07c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-19 13:01:06 +00:00
James R
60c1f5706a Set tripwire line alpha to FRACUNIT
blame f72379e557
2023-03-18 19:53:18 -07:00
James R
8de2910dcb Merge branch 'file-fixems' into 'master'
File Fixems

See merge request KartKrew/Kart!1055
2023-03-18 11:09:11 +00:00
Sally Coolatta
c7fa8fc2bc Spec 500 uses the same speeds as other scrollers 2023-03-18 02:35:26 -04:00
toaster
3e900d7f57 G_DirtyGameData: Dirty bit only applied in I_Error and signal handlers, nowhere else
- Unfortunately, the way this system previously worked, the unlock was given to you for free if you accidentially opened two copies of the game at once.
- Instead, open the file in r+ mode, shimmy along 5 bytes, and write a `true` to be read later.
- Far more memory safe than rewriting the entire gamedata out on crash.

ALSO:
- crashflags has been split into boolean evercrashed and UINT8 musicflags.
    - We don't need to track if the LAST session was a crash, at least not right now.
    - Opens the floor up to other music like Loser Club happening on the Challenges menu.
2023-03-17 14:42:06 +00:00
toaster
e0c9014547 P_AddWadFile: Do not I_Error if the file is not loaded due to invalid P_PartialAddGetStage 2023-03-15 17:31:34 +00:00
toaster
2e1efaff0c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_battle.c
#	src/k_hud_track.cpp
#	src/k_kart.c
#	src/p_inter.c
2023-03-14 21:59:19 +00:00
Sally Coolatta
181501860f Make stringarg application consistent
stringarg[0] and stringarg[1] are now are used as doubles of arg[0] and arg[1]. Specials that use both string args and regular args need to shift their args up to accomedate. This makes the behavior align more closely with the other Doom ports and removes a dumb manual string arg amount thing in callSpecImpl.

I only adjusted the specials that can be called from ACS. I did not mess with level load specials or thing types, since it's not as important. It would be nice to clean them up before release for consistency, though.
2023-03-14 08:03:20 -04:00
toaster
241475155b Rename "Break the Capsules" to "Prison Break"
We had this collective consciousness bigbrain moment in VC together, and it can literally only happen in this branch because unlocks.pk3 is the only main-game asset that needs to change for it
Solves the big problem we had with mixing up Item Capsules and ~~Battle Capsules~~ PRISON EGGS
2023-03-12 20:17:46 +00:00
toaster
01f6eb71f5 Optimisation: reduce the number of calls to M_CheckUnlockConditions
- For P_Ticker()'s calls to M_UpdateUnlockablesAndExtraEmblems
    - Do not check non-UCRP_REQUIRESPLAYING conditions
        - Controlled by a new `boolean doall` parameter to M_UpdateUnlockablesAndExtraEmblems
        - Most other contexts have this as true
        - Forced true if update is meant to be silent
    - Only check UCRP_REQUIRESPLAYING conditions if a relevant property has been touched
        - Controlled by a new `boolean checkthisframe` property on roundcondition_t
        - Set in all contexts where roundcondition_t is modified
        - Would also be set on lap change, but that case is already covered by the following
- Check all conditions, both UCRP_REQUIRESPLAYING and not, on:
    - local player K_HandleLapIncrement
    - local player P_DoPlayerExit
    - local player P_DoTimeOver
    - Controlled by a new `boolean deferredconditioncheck` property on gamedata_t
2023-03-12 13:52:28 +00:00
Sally Coolatta
b0064e41e8 Only save used vertices
Fixed in two ways:
- P_LoadExtraVertices is a special construct for extended blockmap types. This is easily resolved with num_orig_vertexes before loading the map.
- Original Doom-style blockmap with ZenNode however also adds additional vertices directly into VERTEXES. These have to simply be ignored by cross-referencing them with linedefs to see if they are used by anything.
2023-03-12 06:43:31 -04:00
Sally Coolatta
f02057bf2e Write textmap after conversion like vanilla
Unfortunately this means that K_AdjustWaypointsParameters no longer saves to UDMF converted maps, because it requires sector thinglists, FOFs, and spawned mobjs.
2023-03-12 06:03:32 -04:00
James R
01efc8cbd4 Merge branch '3p-challenger' into 'master'
HERE COMES A NEW CHALLENGER for 3P + fix DUEL mode bugs

Closes #463

See merge request KartKrew/Kart!1008
2023-03-12 03:22:56 +00:00
James R
3349f17cd7 Update line special 80
- UDMF: use args[1] instead of line tag.
- Binary: do not add thing angle to thing's tag list, just
  compare angle directly. Seemed weird that this was the
  only place in the code to alter the tags list like that.
2023-03-10 04:17:07 -08:00
James R
d83f91d169 Call K_TimerReset before spawning map things
Fixes DUEL items spawning twice if DUEL mode remains on
between maps. Fixes DUEL items spawning the next map after
DUEL mode deactivates.
2023-03-08 21:08:05 -08:00
toaster
d2c36c952a Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_grandprix.c
#	src/k_grandprix.h
2023-03-07 19:37:46 +00:00
James R
540bd6e18d Merge branch 'improve-battle-tracking' into 'master'
HUD TARGET for Battle Kiosk, Monitors and Emeralds; remove WANTED over players' heads

See merge request KartKrew/Kart!1016
2023-03-07 09:44:07 +00:00
James R
18ccc3db27 Remove g_hiscore since it's not used anymore 2023-03-06 18:52:53 -08:00
Sally Coolatta
23a00b1d00 Move GP ranking data to grandprixinfo 2023-03-06 18:26:08 -05:00
Sally Coolatta
c61e017c38 GP rank cleanup
- Move ranking to its own file.
- gpRank (the variable) -> g_gpRank
- gpRank (the struct) -> gpRank_t
- Functions that worked on the global directly now take a pointer to a struct
- Fixed total ring increment
- Fixed final lap's lapPoints being discarded
- Capsules are now added when exiting with the rest of the stuff
2023-03-06 18:25:14 -05:00
Sally Coolatta
55de982fa3 GP ranking
Needs balancing + intermission, but mostly functional
2023-03-06 18:25:14 -05:00
Sally Coolatta
20dedb6602 Try to fix the podium bot spawning (again)
- Podium waypoint initialize is done always directly after spawning the player, instead of trying to detect it in K_UpdatePodiumWaypoints.
- Position is manually calculated for K_InitializePodiumWaypoint, instead of needing K_UpdateAllPlayerPositions to be called.
- Instead of calling K_UpdateAllPlayerPositions every time a player spawns, do it at the end of the spawning loops.
- Prioritize spawning bots in further away spots instead of 1st available, as spots 1st to 3rd spots are more important.
2023-03-06 18:24:51 -05:00
Sally Coolatta
34112be38e Move bot updates before P_InitPlayers 2023-03-05 14:12:03 -05:00
Sally Coolatta
35d0cb8eaa Move podium code to its own file 2023-03-03 16:10:05 -05:00
Sally Coolatta
a1976aa43d Fixes for podium bots loading
- Handle bot spectator on spawn purely in P_SpawnPlayer from now on
- Don't give podium players flashing tics
- Don't call P_MovePlayerToStarpost during podium. (Needs further fixing in another branch, since this also apparently affects bot spawning in all maps.)
- Update mobj_t pointers in CL_ClearPlayer if G_GamestateUsesLevel()
- Forcefully set initial podium waypoint if jointime <= 1
- Use G_SpawnPlayer consistently in P_InitPlayers for podium
2023-03-03 16:10:05 -05:00
Sally Coolatta
5c6cec7b31 Cleanup UDMF thing scale code
Turns out what I was trying to fix was not a bug, but I will keep this anyway.
2023-03-03 16:10:02 -05:00
Sally Coolatta
170be982ea Force Easy game speed for Podium sequence 2023-03-03 16:10:01 -05:00
Sally Coolatta
f78b3f7794 Fixes for CEREMONY gamestate
- Made titlemap + ceremony code more straight-forward by being able to set gamestate in G_DoLoadLevel directly
- Demos are only recorded on GS_LEVEL (fixes crash for ceremony + titlemaps)
- Added G_GamestateUsesLevel to encapsulate all checks for using level rendering
- Added GS_CEREMONY to wipedefs
- K_PodiumSequence just checks for GS_CEREMONY now (optimization)

The game can now properly go to the podium after GP
2023-03-03 16:09:51 -05:00
toaster
53ce2e4287 Gamedata-related changes + Crash tracking
- Combine multiple adjacent saves
    - Generally could happen during game ticking, combined via gamedata->deferredstate
    - DEFINITELY happened in splitscreen PWR handling, adjust those loops directly
- Write "dirty" state via gamedata->crashflags on everything except safe, intentful unloads
    - Add UC_CRASH, which unlocks dependent on the above "dirty" state being present at gamedata load
    - We can use this for something more useful and less funny later.
- Play "O_LOSERC" on the menu, starting with the Challenges screen, if a UC_CRASH condition has been met.
2023-03-03 13:38:31 +00:00
Oni
e79d419d25 Merge branch 'hwr2-twodee' into 'master'
hwr2: Add hardware 2D rendering

See merge request KartKrew/Kart!914
2023-03-02 01:42:26 +00:00
Oni
07f2b5cc5d Merge branch 'loops' into 'master'
Sonic Loops

See merge request KartKrew/Kart!991
2023-03-01 18:28:56 +00:00
toaster
35ae8f01f4 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into hwr2-twodee 2023-03-01 18:10:44 +00:00
toaster
ab75037583 Merge branch 'loops-prep' into 'master'
Prep for Sonic Loops

See merge request KartKrew/Kart!990
2023-03-01 17:39:36 +00:00
James R
eab22f645c Merge branch 'titlecard-cecho' into 'master'
Titlecard CEcho

See merge request KartKrew/Kart!952
2023-03-01 17:21:13 +00:00