Commit graph

19083 commits

Author SHA1 Message Date
James R
645f9e7f46 Merge branch 'music-player-64-literal-fix' into 'master'
Fix audio/music_player.cpp compiler error on 64-bit

See merge request KartKrew/Kart!858
2023-01-06 02:01:29 +00:00
James R
ac250d45f1 Merge branch 'monitors' into 'master'
Monitors

See merge request KartKrew/Kart!845
2023-01-06 02:00:24 +00:00
toaster
22b87e0f19 Consistency for mobjnum 0 meaning NULL
Moves `P_Net(Un)ArchiveTubeWaypoints` down the file to take advantage of `SaveMobjnum` inline.
2023-01-06 00:05:31 +00:00
toaster
5c1235407b Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into save_p-unglobal 2023-01-05 23:49:30 +00:00
toaster
ede0f56819 Revert all instances of P_SaveBufferFree(&demobuf) for now
g_demo.c is officially No Man's Land
2023-01-05 23:44:40 +00:00
toaster
724c9b774e Cleaner reference handling for the following extern-scope netsynced mobj_t*.
- `skyboxcenterpnts` and `skyboxviewpnts`
    - P_InitSkyboxPoint`, which calls `P_SetTarget`
- `waypoint->mobj`
    - Make sure NULL before using `P_SetTarget` on
- `tubewaypoints`
    - Use `P_SetTarget`
    - Use `UINT32_MAX` for the invalid mobjnum, since 0 is a valid one.
- `waypointcap` and `kitemcap`
    - NULL before reset

Our international nightmare is over.
2023-01-05 23:32:12 +00:00
Eidolon
1094f844a6 Merge branch 'loadlibrary-exchndl' into 'master'
core: load exchndl.dll at runtime, RINGRACERSWADDIR

See merge request KartKrew/Kart!857
2023-01-05 23:30:23 +00:00
Sal
eb68c15c96 Merge branch 'stairjank-falloff' into 'master'
Reduce stair janking loss of control if momentum angle drifts too far from facing angle

See merge request KartKrew/Kart!850
2023-01-05 22:37:55 +00:00
Sal
5ede1e5a18 Merge branch 'find-musicdef' into 'master'
Add S_FindMusicDef, function to find musicdef by name

See merge request KartKrew/Kart!860
2023-01-05 21:56:47 +00:00
Sal
b46caf4a7a Merge branch 'addons-menu-addons-folder' into 'master'
Go to addons folder by default in addons menu

Closes #373

See merge request KartKrew/Kart!853
2023-01-05 20:51:28 +00:00
Sal
14b6ebd25a Merge branch 'rulesify-item-odds' into 'master'
Fix Battle item spawning odds

See merge request KartKrew/Kart!852
2023-01-05 20:43:59 +00:00
Sal
292a747a17 Merge branch 'unlock-menu-extra' into 'master'
Challenges polish

See merge request KartKrew/Kart!855
2023-01-05 20:29:10 +00:00
Sal
6e6a799b1e Merge branch 'refactor-get-item-odds' into 'master'
Refactor K_KartGetItemOdds

See merge request KartKrew/Kart!851
2023-01-05 20:25:54 +00:00
James R
d56a5041aa Use K_GetCachedItemPatch for distribution debugger
Fixes crash from patch array mismatch.
2023-01-05 05:13:18 -08:00
James R
dfd8a36f8f sdl/i_main.cpp: fix -Wliteral-suffix 2023-01-05 03:51:04 -08:00
James R
0bf821447e Add S_FindMusicDef, function to find musicdef by name
Use this function wherever the musicdef list is walked.
2023-01-04 23:34:45 -08:00
James R
d2569dc3af Pass uint64_t literal to std::max
On 32-bit system, uint64_t is typedef to unsigned long long.
On 64-bit system, uint64_t is typedef to unsigned long.

unsigned long and unsigned long long are distinctly
separate types, which causes std::max template to fail.
2023-01-04 18:32:07 -08:00
Eidolon
4522b4953e core: change SRB2WADDIR var to RINGRACERSWADDIR 2023-01-04 19:36:33 -06:00
Eidolon
d53efbdace core: load exchndl.dll at runtime
This allows the game to run without exchndl.dll present.
2023-01-04 19:34:41 -06:00
Eidolon
b95fd459b9 cmake: Remove SDL2_mixer and OpenMPT
Libraries superceded by libxmp-lite and new mixer.
2023-01-04 16:51:12 -06:00
Eidolon
8c259487b2 audio: Add pure-ISO C++17 audio mixer and backend
This replaces SDL2_mixer.
2023-01-04 16:51:12 -06:00
Eidolon
ba109d8981 core: Catch and I_Error uncaught exceptions in main 2023-01-04 16:51:12 -06:00
Eidolon
25e3b4239c io: Allow span and vec stream to seek past end 2023-01-04 16:51:12 -06:00
Eidolon
2a0e183340 legal: Add copyright notice to io/streams 2023-01-04 16:51:12 -06:00
toaster
91a4026871 Remove now-unused definition for challengesbordercolor 2023-01-04 18:04:38 +00:00
toaster
c628014c47 Add an extra guard for unlock condition string drawing to prevent hypothetical out of bounds read 2023-01-04 17:52:28 +00:00
toaster
6274b1f31f Fast forward through the unlock sequence by holding the Extra button.
Based on VC complaints.
2023-01-04 17:45:24 +00:00
toaster
20b6a8389b Challenge grid population improvement
* Correctly identify that two columns with only one major unlock will have 6 empty tile slots, not two. This will result in less underutilised Challenges grid space.
2023-01-04 17:28:45 +00:00
toaster
06e7eb3567 Add a funny little rotating question mark ala SA1 character select 2023-01-04 17:23:18 +00:00
toaster
f9e0c0a444 Challenges menu visual adjustment
* Use the new background
* Use clipped rectangles instead of black pixel overdraw, so pre-baked darkened areas in the new background can be visible instead
2023-01-04 17:22:57 +00:00
toaster
2786c2095e More incorrect/inconsistent frees 2023-01-04 14:22:04 +00:00
James R
5ed30012ed cv_addons_option: rename RINGRACERS to IWAD
This maps to the srb2path folder, which is where the IWAD
is located.
2023-01-04 00:09:58 -08:00
James R
8b96612e43 Default addons menu to addons folder 2023-01-04 00:08:30 -08:00
James R
5c51ad77f6 Use P_SaveBufferFree everywhere
- Fixes PR_SaveProfiles calling stdlib free on zone
memory.
- Also touched g_demo.c
2023-01-03 23:23:34 -08:00
James R
66e2f3a8e9 Reduce stair janking loss of control if momentum angle drifts too far from facing 2023-01-03 22:43:58 -08:00
toaster
11b4fcdc1c Remove heinous pointer-sent-over-the-network hack remnants
This used to be used for `P_RelinkPointers()`, but was superseded by the far saner mobjnum. HOWEVER, its lingering effect was to leave `mobj->info` in an invalid state until a later `P_FinishMobjs()` was called. This is memory unsafety :D

After removing the last remnants of this ancient hack, it is now once again possible to connect to a server without crashing immediately. However, I did get a crash after a few seconds, so there is definitely still *something* nasty going on under the hood.
2023-01-03 20:20:22 +00: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
toaster
b573b6efbc Don't tie restoring mobj/waypoint pointers on player struct to existence of player object 2023-01-03 19:41:46 +00:00
toaster
9336e39350 Use Zone memory functions for sending compressed saves
Fixes an issue where `SF_RAM` meant `free()` was being called on Zone memory produced by `P_SaveBufferAlloc`
2023-01-03 19:41:27 +00:00
James R
691e84f489 Give item drops a trail upward, fall faster 2023-01-03 05:31:30 -08:00
James R
50d9bf7b7d Faster moving players hit monitors harder 2023-01-03 05:31:30 -08:00
James R
7ce12f37dc Spawn Battle monitors
- Item count has always scaled up with player count. Items
spawn every N tics. Previously, these items were evenly
distributed across all item spots. Now, only one monitor
is spawned at a time and the number of items inside scales
up.

- Emeralds spawn inside of monitors instead of loosely.
- Sphere boxes should spawn in the same way as before.

- Once a monitor has been spawned at an item spot, no more
monitors can be spawned there until that one is destroyed.
There's an additional delay of one spawn interval before
a monitor can be spawned in that location again. This is
so a monitor cannot ever instantly spawn back if one is
destroyed at just the right time.
2023-01-03 05:31:30 -08:00
James R
3491bd0b1d Add Battle monitors
- Includes a struct definition for symmetrical objects
made out of papersprite sides.
- Dimensions of papersprite sides are looked up using
sprite cache.

- Monitors may contain multiple types of items.
- Item RNG is deterministic from the time the monitor is
spawned but the item types are not stored in memory.
Instead the RNG seed is restored every time an item type
needs to be determined. Item types need to be determined
every time the icon on the monitor's screen changes and
when the monitor is popped and drops all its items.
- Monitors sparkle like emeralds if there is an emerald
inside.

- Monitors take damage from players simply bumping into
them. The damage scales up with speed and weight.
- Activating a lightning shield in proximity decimates the
monitor into being able to be destroyed in one hit by
anything thereafter.
- All throwable / deployable items destroy a monitor in
one hit.
2023-01-03 05:31:30 -08:00
James R
3549625095 Add item monitor states
SPR_MSHD
SPR_IMDB
SPR_MTWK

S_MONITOR_DAMAGE
S_MONITOR_DEATH
S_MONITOR_SCREEN1A
S_MONITOR_SCREEN1B
S_MONITOR_SCREEN2A
S_MONITOR_SCREEN2B
S_MONITOR_SCREEN3A
S_MONITOR_SCREEN3B
S_MONITOR_SCREEN4A
S_MONITOR_SCREEN4B
S_MONITOR_STAND
S_MONITOR_CRACKA
S_MONITOR_CRACKB

S_MONITOR_BIG_SHARD
S_MONITOR_SMALL_SHARD
S_MONITOR_TWINKLE

MT_MONITOR
MT_MONITOR_PART
MT_MONITOR_SHARD
2023-01-03 05:31:30 -08:00
James R
ae16f124db K_GetTotallyRandomResult: use NULL roulette data
This fixes random paper items spawner RNG not advancing.
2023-01-03 05:30:53 -08:00
James R
339cb1e8b8 K_KartGetItemOdds: apply GTR_CIRCUIT checks
- No restriction on whether more than one player may
receive the same type of shield outside of Race.
- SPB is now technically allowed outside of Race, if item
odds permit.
- powerItems and assorted checks no longer apply outside
of Race.
2023-01-03 05:29:59 -08:00
James R
a37eccd708 Split powerItem etc conditions from K_KartGetItemOdds 2023-01-03 04:42:48 -08:00
James R
aab661cad8 Split shields and SPB special conditions from K_KartGetItemOdds 2023-01-03 04:42:48 -08:00
Oni
e400625da8 Merge branch 'broly-sigfpe' into 'master'
Fix Broly SIGFPE

See merge request KartKrew/Kart!841
2023-01-03 02:49:58 +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