Commit graph

1326 commits

Author SHA1 Message Date
James R
2462a5fcba Let relativeteleport work online
Requires all x, y, z arguments. Floats supported.

Old: rteleport -x 1 -y 2 -z 3
New: rteleport 1.1 2.2 3.3
2025-03-27 21:56:08 +01:00
James R
4cb545a0e1 Cleanup order and indentation of item definitions 2025-03-27 21:25:00 +01:00
NepDisk
f338eec51a Merge pull request 'Hardcoded Stacking and Chaining' (#33) from stackingmaybe into blankart-dev
Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/33
2025-03-26 18:30:19 +00:00
GenericHeroGuy
dc791e494d Merge branch 'blankart-dev' into socmenus 2025-03-26 18:49:30 +01:00
NepDisk
945704849f stacking part 6: Implement customization cvars 2025-03-26 13:35:26 -04:00
NepDisk
f0b6ef89eb stacking pt.3: start work on chaining 2025-03-25 18:03:39 -04:00
NepDisk
23f4f41ff3 Merge branch 'blankart-dev' into stackingmaybe 2025-03-25 10:49:54 -04:00
NepDisk
2a0b0d4bae Remove ASM 2025-03-24 22:35:18 -04:00
NepDisk
58e5cb079e Prevent dedi from ending up on titlescreen
Thanks Indev!
2025-03-24 22:12:00 -04:00
NepDisk
35a7f420af Fix spectate button, allow respawning local players 2-4, allow respawn to be binded to button 2025-03-24 18:54:58 -04:00
James R
fd8917092e Improve displayplayers command
- Tabulate data
- Show party members
2025-03-24 10:25:59 -04:00
NepDisk
37c960a14a Various fixes from RR 2025-03-24 10:24:26 -04:00
James R
af09ba91ec Completely rewrite party management code
Replaces g_splitscreen.c with g_party.cpp. Simplifies
party management functions.

Moves externs out of already bloated doomstat.h and
g_game.h into g_party.h.

Cuts down on globals spam.
2025-03-24 09:43:34 -04:00
GenericHeroGuy
a609c7b5ce Replace prevmenu with menustack
menustack[0] replaces both menuactive and activeMenuId
Hopefully this is the last major change to the codebase...
2025-03-23 01:47:19 +01:00
NepDisk
247b566275 Toggle for singleplayer itembreaker 2025-03-22 17:08:20 -04:00
NepDisk
7069c920df Stacking pt 1 2025-03-21 12:12:23 -04:00
NepDisk
52601bdfc2 New input display option for stick display 2025-03-13 22:14:31 -04:00
Sally Coolatta
e1ffc206e7 Finish some unused SDL hat input support to use events rather than polling all of the time 2025-03-11 15:17:51 +01:00
GenericHeroGuy
e61c43a852 Merge branch 'blankart-dev' into newinput 2025-03-10 23:26:30 +01:00
GenericHeroGuy
ef1489aa04 Cleanup, fix menu controls and keyboard 2025-03-10 15:06:52 +01:00
NepDisk
bda7d26a0f Port basic lap anticheat for new waypoints from RR 2025-03-09 20:03:10 -04:00
NepDisk
b9ad30c9e2 Add BlanKart Credits and append new scene to intro 2025-03-08 11:00:54 -05:00
Sally Coolatta
0a98ca63ab First pass on character select device select
Ultra mega hacked in, by saving all "discarded" joysticks to an array so they don't get totally closed & we can still poll them. Events now properly send the device number instead of the player number, which means we can store all controllers pressing buttons, and thus, can detect when ANY controller is pressing anything, and THUS we can make the character select work like we wanted to :V

Did not bother fixing any of the bugs, however. First of all, the opening menus do not properly fallback to default controls. Yet again, we may need a more robust system -- storing all keys from gamekeydown separately? Additionally it seems like when I input gamepad it makes me use keyboard anyway, so I think something fishy is up.

(G: finally, a commit that mostly survived... deviceResponding is useless
    for us right now but might as well keep it. maybe easier assignment on
    the multiplayer setup menu in the future?)
2025-03-07 23:44:59 +01:00
GenericHeroGuy
f419ccee57 New input handling (port of cd8862f0)
More or less a port with gamecontrols left untouched.

Some notable differences:
* ev_joystick now has a separate data1 for each axis, rather than having you
  check which of data2/3 is INT32_MAX and which one isn't
  (pissed me off when updating menu code...)
* Gutted the 1.6 upgrade code, since we're not upgrading from anything :P
* G_GetControlForKey, a helper for menu code
* Turn smoothing code left unused as a reminder to fix it
* Various small fixes so this commit is playable and doesn't segfault

Menu changes:
* Max 4 binds, joystick axes are now bindable like any other button
* The gamepad options submenu has been replaced by its two remaining options
  after the removal of axis cvars (gamepad select and deadzone)

See cd8862f0's message for more details
2025-03-07 00:05:35 +01:00
NepDisk
b0bbf07bdb Custom gametype and gametyperules additions
Many new options have been added.

You can now specify "menucolor" when creating a gametype. This accepts a V_ colorchar flag (IE V_PURPLEMAP) and will be used to color hud elements in menus and on the HUD.

Encore is now controlled by GTR_ENCORE. This allows for custom modes that don't accept encore.

Itemodds are now controlled by GTR_RACEODDS and GTR_BATTLEODDS respectively. If neither is specified on gametype creation, completely random items will be rolled.

General GTR_FREEROAM adjustments
2025-03-02 11:41:30 -05:00
NepDisk
e2f29fd41b Add lagless camera toggle and default to off 2025-02-28 21:20:13 -05:00
NepDisk
064be1b201 Merge branch 'bortsport' into blankart-dev 2025-02-26 19:43:22 -05:00
Alug
19b7019e40 remove "majormods" checks from stuff that saves to savegame
so its only there to throw a notice when you load an addon
2025-02-25 14:09:56 -05:00
James R
b31e79b742 Kill last of DJGPP, WATTCP, _WINDOWS (ol' DirectDraw) 2025-02-25 00:42:42 +01:00
James R
febde8d181 Remove NONET 2025-02-25 00:31:59 +01:00
NepDisk
0d4c4a74f6 Merge branch 'blankart-dev' into bortsport 2025-02-22 22:21:09 -05:00
NepDisk
e562d838b5 bumpspark, bumpspring and small code refactoring and cleanup 2025-02-22 21:53:09 -05:00
NepDisk
2e7e36ac59 Fix mistake 2025-02-22 07:52:48 -05:00
NepDisk
eeeb29d2df Add p_sight.c as well 2025-02-22 07:49:35 -05:00
NepDisk
fee2700b87 Whoops copypaste mistake 2025-02-20 20:35:59 -05:00
NepDisk
0fcf7c7dbd Port small minimap icons and minimap nametags from saturn/snowy, add minimap angle reticle toggle 2025-02-20 20:32:18 -05:00
NepDisk
71225707bf Port freeplay, grow music and invin music toggles from saturn 2025-02-20 18:12:03 -05:00
toaster
017e62f4b2 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
2025-02-18 23:48:18 +01:00
toaster
1475feb734 Refactoring ahoy
* Instead of doing constant G_MapNumbers when finding the relationship between maps and cups...
    * Add a cache of level IDs to cups, to go with the strings.
    * Add a cache of the cup pointer to maps, so we don't have to search through all cups to find our map. (done in P_InitMapData)
    * Pre-emptive work: G_IsSpecialStage and P_GetNextEmerald now reference cup data instead of a hardcoded ID set.
* Remove a bunch of old stuff from mapheaderinfo_t/associated, and reorder what stays
    * Countdowntimer? 💥
    * Startrings? 💥
    * sstimer/ssspheres? 💥
    * forcecharacter? 💥 (distinct from forceskin)
    * interscreen? 💥
    * sstage_start/end and smpstage_start/end? 💥💥💥💥
    * You've been blocked
* G_MapNumber now returns a special NEXTMAP_INVALID if not found, for more consistent reference.
* Incorporate a good chunk of the `edit-headers` branch. Can't clear maps individually because of the new restrictions on sequential mapheaders, but we can add a "disable in vote screen, not even for map hell/archive" flag to a map at some future juncture for equivalent functionality...
2025-02-11 17:22:34 +01:00
toaster
e76f92e5db Port Gametype Preference and associated changes
Notably, makes the PWR-based Encore scrambling component of G_SometimesGetDifferentGametype WAY less spaghettified.
2025-02-11 01:52:05 +01:00
toaster
b92c125928 I_Error in all situations where mapheaders were previously allocated outside of SOC.
Also:
- improved error prints for SOC condition definitions
- improved bounds checking to use `nummapheaders` for iterating over mapheaderinfo
There are still situations that use NUMMAPS like mapvisited, randmapbuffer, etc, which need to be addressed before merger.
2025-02-11 01:52:05 +01:00
NepDisk
77152250dd Remove GTR_CAMPIGN and assign stuff to grandprix instead 2025-02-09 18:47:51 -05:00
NepDisk
63fe2bbfa1 Numlaps updates from RingRacers 2025-02-09 18:45:53 -05:00
NepDisk
0e70fd8ac7 Patch alias and add listskins
https://github.com/Indev450/SRB2Kart-Saturn/pull/33
2025-02-09 18:45:53 -05:00
NepDisk
56745d621b Toggable Lap Emblem Animation 2025-02-09 18:45:53 -05:00
GenericHeroGuy
a3e531d0d4 All the save buffer fixes all at once!
* Register cv_netdemosize so it actually works
* Replace all the raw Z_Frees on demobuf with the appropriate function
* Free demobuf in G_CheckDemoStatus (yay, no more buffer == NULL asserts)
* ...allocating a buffer of uninitialized length? what
2025-02-10 00:24:17 +01:00
Sally Coolatta
5fee047fe6 Add functions to initialize savebuffer_t
g_demo.c is mostly unaltered because it is made of twigs.
2025-02-07 11:12:52 -05:00
NepDisk
3350b02cc8 Long Map Names Port pt 1. 2025-02-05 17:46:21 -05:00
GenericHeroGuy
a6e7c6b70d The purple drift...
...and more changes nobody asked for
2025-01-31 03:27:21 +01:00
NepDisk
c3aa2075d3 Shuffle Speedometer values to be like saturn 2025-01-28 12:04:34 -05:00
GenericHeroGuy
f6f43943d7 Networked compatmode 2025-01-24 18:26:49 +01:00
GenericHeroGuy
d67c9862ae Add compatmode flag 2025-01-24 18:04:03 +01:00
Sally Coolatta
713ac093bf devmode cheat online 2025-01-10 11:36:04 -05:00
James R
bfd15082ef Netsync setrings and setlives
- setrings no longer subtracts totalrings
- removed INFLIVES
2025-01-10 11:23:50 -05:00
NepDisk
7948720595 Revert cheats streamine but keep stuff needed for online cheats
cheats 1 is not desired appearently

This reverts commit 9fbe107211.
2025-01-10 11:16:16 -05:00
James R
135dda1312 Let some cheat commands work online
noclip
god
scale
gravflip
hurtme
2025-01-10 10:15:23 -05:00
Sal
9fbe107211 Merge branch 'cheats-streamline' into 'master'
Streamline cheats

See merge request KartKrew/Kart!697
2025-01-10 10:03:52 -05:00
Sally Coolatta
71283a4adb Strip items when using kartgiveitem
Fixes some annoyances I have when using this command
2025-01-10 09:25:39 -05:00
NepDisk
f7ab1af75b Merge pull request 'Port Lua based backwards compat to hardcode.' (#6) from luacompat into ACS2
Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/6
2025-01-09 18:32:28 +00:00
Alug
4cb315bfe7 shut up some compiler warnings 2024-12-31 16:56:35 +01:00
NepDisk
7e2900f868 Merge branch 'ACS2' into luacompat 2024-12-31 10:27:40 -05:00
NepDisk
ac3e8827a7 Rename back to thundershield, update doomdata.h ml_flags, update constants 2024-12-31 01:31:03 -05:00
NepDisk
4fd99ef3ff Multithreaded Software rendering 2024-12-29 14:14:28 -05:00
James R
5cb20f5480 P_TryMove: sweep collided lines to find nearest normal 2024-12-25 13:30:59 -05:00
NepDisk
8dcaba2d43 Basic work to restore the wanted system 2024-12-17 10:54:22 -05:00
NepDisk
4b1324da69 Remove Battle capsule stuff and turn it into Item Breaker
You have to smash every itembox in a map as fast as you can. When you mash you get a pogospring and waiting gives a sneaker
2024-12-17 00:24:20 -05:00
NepDisk
1e678f660f Remove TESTERS and HOSTTESTES and use v1 assets where applicable 2024-12-16 14:23:14 -05:00
NepDisk
b44e97cc21 prevent map command crash from maps with invalid or non existing mapinfo
dba7a7dc3c
2024-10-22 02:45:21 -04:00
NepDisk
cf9f6fc570 Merge branch 'v2dev3' into ACS2 2024-10-21 17:30:55 -04:00
toaster
d2228bf349 Move some command and cvar registering between D_RegisterServerCommands and D_RegisterClientCommands depending on whether a dedicated server needs them or not 2024-10-18 04:29:38 -04:00
NepDisk
af277ad1d9 Split G_ExitLevel into G_BeginLevelExit and G_FinishExitLevel 2024-10-15 16:19:50 -04:00
Sally Coolatta
e23180283a 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...
2024-10-15 07:48:51 -04:00
James R
3fb806ed71 Remove global lua_save_p and use savebuffer_t for LUA_Archive / LUA_UnArchive 2024-10-15 07:43:52 -04:00
Sally Coolatta
07cdd2f461 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.
2024-10-15 06:41:25 -04:00
NepDisk
cb9ab1518b Fix default skin colors 2024-10-15 00:22:18 -04:00
NepDisk
92bda9519a Reimplement turn smoothing plus toggle 2024-09-18 10:17:35 -04:00
Wumbo
3ad5d9cd00 Fix follower with ID 0 not appearing on track load 2024-09-14 18:30:06 -04:00
Wumbo
b4ec4ef691 Make first follower selectable again 2024-09-12 13:38:31 -04:00
Wumbo
45304f5c3d Handle follower colors better
- Default color definitions are now parsed properly
- Fallback color value is now default color instead of player color
- Player setup now renders follower with right color

Selecting the first follower in the list is currently broken, will
fix later
2024-09-12 01:34:56 -04:00
NepDisk
1085c6ceb0 Implement blan folder and reimplement walltransfer
Wall transfering can now be used by enabling cvar BG_forcewalltransfer or putting WALLTRANSFER into your map header
2024-09-10 22:36:45 -04:00
toaster
372e655d70 Merge branch 'fix-addfile-double-error' into 'master'
Fix networked addfile command erroring twice for already added files

See merge request KartKrew/Kart!1100
2024-09-07 00:10:33 -04:00
NepDisk
a2fcc4bc20 UDMF cherry-pick cherry-pick 2024-08-20 02:47:00 -04:00
NepDisk
ac27f0438a Port antigrief from SRB2Kart
Ported this one spefically since I prefer how it works
2024-08-18 01:39:26 -04:00
NepDisk
31b6994628 Remove rest pf RingRacers Refs 2024-08-16 12:09:50 -04:00
NepDisk
78f4bdee7a
Merge pull request #3 from WumboSpasm/unrebrand
Restore SRB2Kart branding in source code. Thanks Wumbo!
2024-08-14 01:07:13 -04:00
Wumbo
d1a9080187 Un-rebrand back to SRB2Kart 2024-08-13 21:54:52 -04:00
NepDisk
9ba2140b3d Restore old respawn PT1
All the code from k_respawn.c has been nuked. The gameplay of respawning works but it doesn't currently drop the player in the right spot for both legacy and new waypoints
2024-08-12 14:49:12 -04:00
NepDisk
699e607ec7 Implement controller stuff 2024-08-07 15:27:48 -04:00
toaster
9016f65440 Support alternate gameplay events during GP
- Implementation details:
    - grandprixinfo.eventmode is the reference point
    - All bots have spectator applied and removed at map start depending on eventmode, and I've done my best to guard against side effects of not removing them entirely
    - You shouldn't turn off grandprixinfo.gp when turning on things like specialStage.active or bossinfo.boss when pursuing eventmode behaviour
    - Probably needs to be integrated into XD_MAP for any future netplay support, is currently disabled.
    - You technically don't have to assign a Capsules map to be the bonus and a Special Stage to be the special. A Capsules map can be assigned to a Special Stage too, and a Boss can be assigned to either of them.
    - Special Stages are still just as incomplete as they were before.
- Break the Capsules has special behaviour.
   - Timelimit starts at 20 seconds.
   - Earn 10 seconds (plus a little extra cheaty time) every capsule you destroy.
   - WIN + extra life if you bust all the capsules, COOL if you get some but run out of time, LOSE if you lose your bumper or run out of time without breaking a single capsule.
   - Supposed to also give you rings, but ran into a LOT of difficulty with this and didn't want to commit half-baked stuff, so it'll be a later project.
Also:
- Fix a long standing bug where totalring was reset between maps, preventing the sum from adding up across GP rounds and depriving you of extra lives you were owed.
- Fix an issue where Break the Capsules record attack was KARTSPEED_HARD.
- Send timelimitintics in savegames, since it's handled seperately now.
2024-08-05 00:41:06 -04:00
NepDisk
d7dd4f68e2 rings disable toggle, rebalance rings 2024-08-01 14:06:24 -04:00
NepDisk
608e2b6844 flipcam and encore flipcam 2024-08-01 11:46:59 -04:00
Hanicef
73d324b2a2 Add NameChange lua hook 2024-08-01 02:12:05 -04:00
NepDisk
fb2167d74a default lagless on, default mindelay 0 2024-07-31 04:02:11 -04:00
Oni
fab85e542b Merge branch 'autocope' into 'master'
Offline input delay cvar

See merge request KartKrew/Kart!687
2024-07-31 03:09:10 -04:00
James R
2adeff2488 Merge remote-tracking branch 'origin/cvar-default-ports' 2024-07-31 03:05:44 -04:00
Sal
a4d475dc4c Merge branch 'hostcode' into 'master'
HOSTCODE initial pass

Closes #240

See merge request KartKrew/Kart!615
2024-07-31 03:01:45 -04:00
Sal
23000c7e86 Merge branch 'bbox' into 'master'
renderhitbox command for Software mode

See merge request KartKrew/Kart!672
2024-07-31 02:35:57 -04:00
NepDisk
7530227163 Revert "Add a hitbox renderer to Software mode"
This reverts commit 082d9206e89113533f4f6f7a8798f872e9a1ea39.
2024-07-31 02:33:15 -04:00
James R
45227168b0 Add a hitbox renderer to Software mode
renderhitbox
- Tangible - collision activating objects, minus rings
- All - every object
- Intangible - the opposite of Tangible, also no rings
- Rings - rings
2024-07-31 02:32:57 -04:00
Sal
1d8475a958 Merge branch 'hooklib-port' into 'master'
Hooklib refactor ported and (mostly) squashed

See merge request KartKrew/Kart!662
2024-07-31 02:30:20 -04:00
NepDisk
41e23a24cc Revert "Merge branch 'bbox' into 'master'"
This reverts commit 62dae0d1b6.
2024-07-31 02:11:05 -04:00
Sal
62dae0d1b6 Merge branch 'bbox' into 'master'
renderhitbox command for Software mode

See merge request KartKrew/Kart!672
2024-07-31 02:08:44 -04:00
Sal
8714d0e60b Merge branch 'kill-twod' into 'master'
Kill last of MF2_TWOD

See merge request KartKrew/Kart!716
2024-07-31 01:29:39 -04:00
Sal
1dcaf426ab Merge branch 'refactor-weaponpref' into 'master'
Refactor weapon pref

See merge request KartKrew/Kart!715
2024-07-31 01:27:40 -04:00
Sal
a62d278f19 Merge branch 'you-have-uncommitted-changes' into 'master'
The programmer took a nap. Hold out, programmer!

See merge request KartKrew/Kart!722
2024-07-29 17:17:02 -04:00
NepDisk
64b36b90ae Use kart titlecard, redo fade and fix grow canceling 2024-07-29 15:38:06 -04:00
toaster
1f3ac199ae Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into 14plus-mergeladder 2022-09-05 15:32:02 +01:00
toaster
1a53836d6a Compilation warning in D_PickVote 2022-08-28 18:34:33 +01:00
JugadorXEI
f17f6b7525 banishing hell map forcing
# Conflicts:
#	src/d_netcmd.c
#	src/y_inter.c
2022-08-28 17:11:19 +01:00
Sally Coolatta
7d67e02ea3 Bot perfstats
Show how long they take to think on all of their main tasks
2022-08-27 00:04:33 -04:00
Sally Coolatta
ebb34ff9d4 Lap based power level 2022-08-14 06:00:37 -04:00
James R
cf10ec1711 Merge branch 'follower-by-name' into 'master'
Always set follower cvar to follower name

Closes #261

See merge request KartKrew/Kart!620
2022-08-01 14:51:45 +00:00
James R
d299afbb2a Use follower name in cv_follower 2022-06-07 01:48:26 -07:00
James R
e2c64699d0 Strip items when spectating 2022-06-07 01:15:22 -07:00
Sal
675cb12dba Merge branch 'tester-text' into 'master'
Tester text

See merge request KartKrew/Kart!603
2022-05-25 07:37:17 +00:00
Sal
e3a0945566 Merge branch 'eggbox-cinders' into 'master'
Eggman Mark cinder fix

See merge request KartKrew/Kart!600
2022-05-25 07:37:08 +00:00
toaster
b9ee6d1f4e * Show version/DEVELOP info on the title screen, not the top-level menu (necessary in advance of new-menus).
* Add TESTER/HOSTTESTER information to `version` command and title screen DEVELOP info.
2022-05-23 23:57:18 +01:00
toaster
17d007d418 * Restore player colour and colorization correctly when the Eggman Mark concludes its effect.
* Allow colorisation types to not completely crowd each other out.
    * For example, it's possible for invincibility + grow to flicker Invincibility, Eggman mark, and grow colours if the conditions for each type of flash are true on different frames!
2022-05-23 22:04:14 +01:00
Sally Coolatta
6e3c4dbc34 > numfollowers-1 -> >= numfollowers 2022-05-23 13:40:51 -04:00
Sally Coolatta
b5334e6b42 Move follower code to its own file 2022-05-23 00:23:46 -04:00
toaster
38e6cba181 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart.git into uncapped-absolution
# Conflicts:
#	src/f_finale.c
#	src/sdl/i_video.c
#	src/st_stuff.c
2022-05-21 13:40:20 +01:00
Sally Coolatta
04aa8259cb Merge branch 'master' into rewrite-lightning 2022-05-21 03:56:12 -04:00
Sal
46b7da8f4b Merge branch 'title-screen' into 'master'
"Dr. Robotnik's Ring Racers" rebranding

See merge request KartKrew/Kart!590
2022-05-21 07:48:30 +00:00
Sally Coolatta
6e8e0ad0f5 Lightning Shield fixs
- Rename to Lightning Shield (it keeps fucking me up when I want to kartgiveitem it to myself)
- Fix inflictors causing damage being considered damage hitlag. Fixes the player using Lightning Shield being in damage hitlag state (most notable in the DI branch because hurting someone with it lets you DI afterwards, which also fucks with your turning)
- Rewrote attack function to use custom blockmap search instead of P_NukeEnemies.
- It can no longer attack below you, only above & around you.
- Increased the attack radius, so that it actually lines up with the sprites...
- Fixed extremely inconsistent ring blockmap search by moving it to playerafterthink (don't ask me why)
- Rings get joulsted by Lightning Shield when you pass by them without
- Added MAXRADIUS to the blockmap checks for lightning shield & mines, to reduce blockmap inconsistencies
2022-05-20 18:12:34 -04:00
Sally Coolatta
852e9b8ce9 Rebrand all console / window stuff 2022-05-19 15:10:47 -04:00
Eidolon
f7ec2f182f Uncapped (squashed v2)
Squashed SRB2 2.2 Public uncapped without UDMF merge

Implement interpolation at the renderer level

Instead of interpolating thinkers, we interpolate mobjs inside the
renderer. Further interpolation is TBI.

Place Frame Interpolation in "Experimental" video options header

This seems like an appropriate way to describe the feature for now.

Add smooth level platter under interpolation, `renderdeltatics`

`renderdeltatics` can be used as a standard delta time in any place,
allowing for smooth menus. It will always be equal to `realtics`
when frame interpolation is turned off, producing consistent
framerate behavior everywhere it is used.

Add smooth rendering to save select screen

Add smooth rendering to Record/NiGHTS Attack, F_SkyScroll

Ensure viewsector is accurate to viewx/viewy

This fixes a potential crash in OpenGL when changing between levels.

Ensure + commands get executed before map start

Always have precise_t defined

Fix misc dropshadow issues

Reset view interpolation on level load

Remove unnecessary precipmobj thinker hack

Add reset interpolation state functions

Reset precip interpolation on snap to ceil

Reset mobj interp state on TeleportMove

Only swap view interp state if a tick is run

Run anti-lag chasecam at tic frequency

Fixes jittery and unstable chasecam in high latency netgames

Homogenize mobj interpolations

Add sector plane level interpolations

Add SectorScroll interpolator

Add SideScroll interpolator

Add Polyobj interpolator

Intialize interpolator list at a better time

Delete interpolators associated with thinkers

Interpolate mobj angles and player drawangle

Interpolate HWR_DrawModel

Add functions to handle interpolation

Much less code duplication

P_InitAngle, to fix angle interpolation on spawning objects

Fully fix drop shadows

It used the thing's floorz / ceilingz directly -- that wouldn't account for interpolated coordinates.

Do not speed up underwater/heatwave effect in OpenGL

Closer OpenGL underwater/heatwave effect to Software

Interpolate from time of previous tic

Previously interpolated from last 35th of a second, which
may be offset from game time due to connection lag.

Consider this the proper fix to 6ecac4159a too.

Calculate FPS stuff even if frame is skipped

I decided ultimately to actually keep the frame skip optimization disabled, because I think it is actually a little bit helpful that you can still get accurate rendering perfstats while paused, however if we decide otherwise then we can have this optimization back without making the game act like it's lagging.

Keep rect in memory

Feel better about this than creating one all da time

Lots of FPS stuff

- Disabled VSync, due to the numerous problems it has.
- Instead, added an FPS cap.
- Frame interpolation is now tied to fpscap != 35.
- By default, the FPS cap is set to the monitor's refresh rate.
- Rewrote the FPS counter.

(This also consolidates several more commits ahead of this
fixing various issues. -eid)

Misc changes after Kart cherry-picks

Fix renderdeltatics with new timing data

Update mobj oldstates before all thinkers

Allow FPS cap values

Adjust how FPS cap is checked to improve FPS stability

Fix precip crash from missing vars

Improve the framerate limiter's timing for extreme stable FPS

Handle the sleep at the end of D_SRB2Loop instead of the start

Simplifies logic in the other parts of the loop, and fixes problems with it frequently waiting too long.

Reset mobj interp state on add

Add mobj interpolator on load netgame

Move mobj interpolators to r_fps

Dynamic slope interpolators

I_GetFrameTime to try and improve frame pace

(It doesn't feel that much better though.)

Move I_FinishUpdate to D_SRB2Loop to sync screen updates with FPS cap, use timestamps in I_FrameCapSleep to simplify the code

Fix plane interpolation light level flickering

Fix flickering plane interpolation for OpenGL in the exact same way

Funny OpenGL renderer being at least 50% copy-pasted Software code :)

P_SetOrigin & P_MoveOrigin to replace P_TeleportMove

Convert P_TeleportMove use to origin funcs

Revert "P_InitAngle, to fix angle interpolation on spawning objects"

This reverts commit a80c98bd164a2748cbbfad9027b34601185d93f5.

Waypoint polyobjects interpolate z & children

Add interpolation to more moving plane types

Adds interpolation to the following:
- Crumbling platforms
- Mario blocks
- Floatbob platforms (this one works really strangely due to two thinkers, maybe double-check this one?)

Reset overlays interp states each TryRunTics

Interpolate model interpolation (lol)

Use interp tracer pos for GL linkdraw

Papersprite angle interpolation

Makes the ending signpost smooth

Move intermission emerald bounce to ticker

Bring back shadows on polyobjects

Also optimizes the method used so rings can show their shadows too. Using just the subsector is a tad bit imprecise admittedly but any more precise methods get really laggy.

Fix a bunch of ticking in hu_ drawing functions

Revert "Reset overlays interp states each TryRunTics"

This reverts commit a71a216faa20e8751b3bd0157354e8d748940c92.

Move intro ticking out of the drawer

Adjust 1up monitor icon z offsets

Fixes interpolation issues with 1up monitors.

Delta time choose player menu animations

Add drawerlib deltaTime function

Interpolate afterimages further back

Use old sleep in dedicated mode

Clamp cechotimer to 0

Fixes issues with cechos staying on-screen and glitching out
(NiGHTS items for example).

Revert "Remove unnecessary precipmobj thinker hack"

This reverts commit 0e38208620d19ec2ab690740438ac2fc7862a49e.

Fix frame pacing when game lags behind

The frame timestamp should've been made at the start of the frame, not the end.

Fix I_FrameCapSleep not respecting cpusleep

Jonathan Joestar bruh

Allow dedicated to use precise sleep timing again

Instead of only using one old sleep, just enforce framerate cap to match TICRATE.

Make Lua TeleportMove call MoveOrigin

Reset Metal fume interp state on appear

Add interpdebug

Put interpdebug stuff in perfstats instead

Add timescale cvar

Slow the game down to debug animations / interpolation problems! Speed it up if you need to get somewhere quickly while mapping!

Enable timescale outside of DEVELOP builds

It has NETVAR, so it should be fine -- put an end to useful debugging features excluded in multiplayer!

Force interpolation when timescale != 1.0

Reset old_z in MT_LOCKON think

Fixes interpolation artifacting due to spawn pos.

Fix cutscenes in interp

Fix boss1 laser in interp

Interpolate mobj scale

Precalculate refresh rate

Slower PCs can have issue querying mode over and over. This might kinda suck for windowed mode if you have different refresh rate displays but oh well

Fix interp scaling crashing software

Reset interp scale when Lua sets .scale

Disable angle interp on fresh mobjs

Fix interp scale crash for hires sprites

Interp shadow scales

Copy interp state in P_SpawnMobjFromMobj

Fix multiplayer character select

Don't interpolate mobj state if frac = 1.0

Fix Mario block item placement

Interpolate spritescale/offset x/y

Fix offset copies for SpawnMobjFromMobj

THANKS SAL

Add Lua HUD drawlists

Buffers draw calls between tics to ensure hooks
run at the originally intended rate.

Rename drawerlib deltaTime to getDeltaTime

Make renderisnewtic is false between tics

I know what I'm doing! I swear

Completely refactor timing system

Time is now tracked internally in the game using I_GetPreciseTime
and I_UpdateTime. I_Time now pulls from this internal timer. The
system code no longer needs to keep track of time itself.

This significantly improves frame and tic timing in interp mode,
resulting in a much smoother image with essentially no judder at
any framerate.

Ensure mobj interpolators reset on level load

Ensure view is not interpolated on first frame

Disable sprite offset interpolation (for now)

Refactor timing code even more

System layer is greatly simplified and framecap
logic has been moved internally. I_Sleep now
takes a sleep duration and I_SleepDuration
generically implements a precise sleep with spin
loop.

Adjust spawned mobj z by gravity inversion

Only check VERTICALFLIP for old_z calc

Fix Marathon Mode menu for uncapped

Move screenshot code before timing

Only play emerald hunt sounds on new tics

Restore deleted zofs (fixes signpost sparkles etc)

Revert to before screenUpdate boolean was added

Was done this way for the sake of an older version of uncapped's timing; now that the new timing is much better, I decided it should remain as close to pre-uncapped as it can be.

Run UpdateLevelInterpolators in preticker

Fixes KartKrew/Kart-Public#10

Run UpdateMobjInterpolators in preticker

Reset view interp in preticker

Add per-split player view resets
2022-05-06 22:47:39 -05:00
Sally Coolatta
b9f91cb7ec Increase bot difficulty range to 13
While I finally pushed to do this because of the epic Blue Sphere reference, I was kinda thinking about doing this for a while, because it gives more room for bots to level up during Hard GP.

I thought about just making the new level cap go up normally, but I decided on keeping the bots' passive buffs (like top speed & ring boosts) go up linearly, while rubberbanding range is kept the same.

I don't think I can properly explain it, but this basically means level 13s are a touch harder than old level 9s before, and new level 9s are touch easier than old level 9s. Basically think of it as more level range than actually making the bots harder.

The expanded range means that Hard GP can start off easier, but end harder. (And of course, Master is even more ridiculous c:)
2022-03-30 15:25:55 -04:00
Sally Coolatta
c0678e5016 Check FPS cap further in the main loop
This allows map changes to properly run. (I also seem to be able to hit the framerate cap slightly more often ... maybe placebo lol)
2022-03-27 13:17:26 -04:00
SteelT
dbdaebbb04 Merge branch 'droptarget' into 'master'
"Drop Target" item

See merge request KartKrew/Kart!562
2022-03-22 03:33:54 +00:00
toaster
52d2472ed7 "Drop Target" item initial commit.
Most of the way there, but still a bit left to do.
2022-03-21 23:40:30 +00:00
toaster
f073218532 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart.git into boss
# Conflicts:
#	src/m_menu.c
2022-03-18 09:07:13 +00:00
James R
821fd41d70 Merge branch 'c99-pedantic' into 'master'
Switch compiler mode C90 to C99; enforce stricter standard conformance

See merge request KartKrew/Kart!554
2022-03-18 02:41:57 +00:00
toaster
8de92e8dca Merge branch 'master' into boss
# Conflicts:
#	src/k_bot.c
2022-03-17 16:58:42 +00:00
toaster
fcb6a4e1ab Disable the vanilla-sourced "keepbody" (rejointimeout) feature. 2022-03-14 16:33:03 +00:00
toaster
31db72256d Merge branch 'master' into boss
# Conflicts:
#	src/y_inter.c
2022-03-12 19:24:23 +00:00
toaster
b3c9b8f94e Merge branch 'votefree' into 'master'
:votefree: (resolves #217)

Closes #217

See merge request KartKrew/Kart!542
2022-03-12 18:49:45 +00:00
toaster
65feacc16c Merge branch 'musicataparty' into 'master'
Music at a party

See merge request KartKrew/Kart!543
2022-03-12 18:40:03 +00:00
toaster
f794908430 Merge branch 'followtweak' into 'master'
Follower adjustments

Closes #202

See merge request KartKrew/Kart!514
2022-03-12 18:37:15 +00:00
toaster
5c77516aab Cleanup of boss info in anticipation of merger.
* Actually add descriptions for the boss-related functions into k_boss.h.
* Introduce K_ResetBossInfo, an internal-only function for handling situations where it needs to be cleared.
* Fix a bug where bossinfo wasn't reset when using the map command to go to a battle map after having been in a boss.
* Fix some bugs where you could provide magnitudes out of the desired range to K_InitBossHealthBar and K_UpdateBossHealthBar.
2022-03-07 13:08:46 +00:00
toaster
dc2936de42 Make the map command from the title screen *actually work*, and make a best-guess attempt at determining the necessary setup to play each particular map in a Single Player context (such as grandprixinfo for TOL_RACE, a little cleanup for TOL_BATTLE, and bossinfo for TOL_BOSS).
This will be necessary when newmenus comes around and it is no longer advantageous to have a menu for testing bosses, given they won't be a headline feature in v2 or accessible via multiplayer at this time.
2022-03-05 22:17:06 +00:00
toaster
17e5f71b5d * Re-enable sphere HUD in bosses.
* Do a little more anti-overtime checking for bosses. (This *really* requires a refactor at some point, but not right now)
2022-02-27 17:48:04 +00:00
toaster
c1f3237157 Boss API + assorted relevant bugfixes, will go over the featureset of this branch with a fine toothed comb when it's time to write the merge request description so this is all you're getting right now 2022-02-24 21:19:03 +00:00
James R
82f4364eb4 pedantic: fix misc leniencies and GNU-isms 2022-02-20 03:28:22 -08:00
toaster
006b6f00ac Rewrite the awayview reset for both Got_Teamchange and P_SpectatorJoinGame. 2022-02-11 12:09:00 +00:00
toaster
7508e0e198 P_IsLocalPlayer changes
This is the function that controls whether a bunch of music-related function (and also whether certain error messages get printed).

* P_IsLocalPlayer now supports party players (currently untested, but the code is pretty airtight).
* P_IsLocalPlayer now always returns false in replays.
* P_IsMachineLocalPlayer now exists for the one situation the game determines local players that actually has a net-related function (kicking illegal character changes).
* Invincibility/grow sfx now operates based on whether the player is NOT local (it used to be whether it was NOT a displayplayer).
* Refactored P_SpectatorJoinGame to make future team support easier, and also reset the relevant camera focus, rather than always the consoleplayer's.
* Fix viewpoints on non-local players having overlapping viewpoint text.
2022-01-24 22:03:40 +00:00
toaster
4b1cef0f20 Merge branch 'testers' into 'master'
Allow TESTERS builds to be made for any branch

See merge request KartKrew/Kart!529
2022-01-23 22:48:48 +00:00
toaster
2df53dd5a5 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart.git into votefree 2022-01-23 22:46:11 +00:00
toaster
f69f002d17 Merge branch 'speedometer-default' into 'master'
Turn on speedometer by default

Closes #218

See merge request KartKrew/Kart!539
2022-01-23 22:43:49 +00:00
AJ Martinez
ef6ff846d3 Merge branch 'master' into 'director-cam'
# Conflicts:
#   src/d_netcmd.h
2022-01-23 15:38:14 -06:00
toaster
1ae256887e Readd CV_SAVE per Oni request in vc (and also my desires)
Made using web IDE
2022-01-23 20:49:29 +00:00