Commit graph

1999 commits

Author SHA1 Message Date
toaster
d42812d5b5 Don't select a map - whether random (voting screen, randommap command, etc) or specific (map command) if it has no associated lump. 2022-09-17 14:08:11 +01:00
toaster
1a284ec7c6 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into big-large-map-markers
# Conflicts:
#	src/d_netcmd.c
2022-09-17 13:57:26 +01:00
toaster
7e17f5456c 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.
2022-09-17 13:07:48 +01:00
toaster
acc92ba4c9 Catch some areas that previously checked for map lump, but stopped doing so for a bit. 2022-09-17 00:02:54 +01:00
toaster
04e5cfd338 Fix cups.
* Required an adjustment of everywhere using G_MapNumber to return the raw header number, instead of off-by-one ala gamemap.
    * Fixing gamemap is a viable improvement for a future commit, but this commit is already pretty big.
    * Remove SCANTHINGS, since it used G_MapNumber and didn't work with long map names OR virtres anyways.
* Support freeing new information in CLEAR LEVELS maincfg event, since I tried to use that to test cups.
* Make Patch_Free's usability match Z_Free -- passing NULL is permitted and a no-op.
2022-09-16 22:51:02 +01:00
toaster
4f1bb14732 Extra catch to prevent SIGSEGV 2022-09-16 15:07:12 +01:00
toaster
46441092dc Address initial review comments + associated cleanup
- Grab thumbnail and minimap pictures even for base game maps
- Repair modified game event for replacement map load
- PU_STATIC thumbnail and minimap, freed on new file load lump discovery
- Fix W_CheckNumForMap to not SIGSEGV if no match
- Reduce the number of pointless map lump hunts, we've already got it stored
- Prevent use-after-free for map pictures on voting screen
- Cache "BLANKLVL" patch once
- Draw minimap on the time attack menu

Unfortunately cups are still broken and I'm not sure where to start on that, or if it's just not having a sample wad to test with that includes cups
2022-09-16 15:01:49 +01:00
VelocitOni
92cfb5a677 Just bringing it up to date w/ master
Got it to compile after some cleaning.
2022-09-13 19:17:39 -04:00
VelocitOni
8a5707ad83 Merge branch 'master' into hostcode 2022-09-13 17:08:15 -04:00
toaster
033d87fbe1 Adjust profile "guessing"
- Remove block from using connect with uninitialised profile. Instead, CL_ConnectToServer handles the guess entirely.
- Add splitscreen player initialisation in circumstances previously missing it
2022-09-13 12:46:27 +01:00
Sal
a7716b966a Merge branch '14plus-votechanges' into 'master'
1.4+ Voting Changes

See merge request KartKrew/Kart!655
2022-09-11 06:30:39 +00:00
Sal
94d7c497b0 Merge branch 'hooklib-port' into 'master'
Hooklib refactor ported and (mostly) squashed

See merge request KartKrew/Kart!662
2022-09-11 06:30:07 +00:00
Sally Coolatta
2fddc9f343 Merge branch 'master' into big-large-map-markers 2022-09-10 16:01:02 -04:00
toaster
975ed1f136 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into new-menus
# Conflicts:
#	src/d_main.c
2022-09-07 21:39:34 +01:00
James R
787b5283fc Fix big blunder by MEEEEEEE
Blame 37c3a55dd
2022-09-05 12:16:59 -07:00
James R
37c3a55dda Fix conflicts 522467a88 2022-09-05 11:56:30 -07:00
toaster
06e9bd5b0a Merge branch '14plus-mergeladder' of https://git.do.srb2.org/KartKrew/Kart into 14plus-votechanges 2022-09-05 15:41:05 +01: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
1abfb2745a Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into new-menus 2022-09-03 22:26:28 +01:00
toaster
139def0d3d Plug the last gap that allowed you to avoid selecting a profile.
There's no actual good way to handle the case of changing your skin, etc, maybe even various controls for a momentary test AND supporting profiles, so don't even try. Instead, let the game "pretend" you selected ttlprofilen to let it just about work.

This works because all the relevant cvars and controls still get saved to the config when changed... they just get written over when you select a profile. So if you haven't changed anything since your last successful launch, it is now functionally indistinguishable.
2022-09-03 00:19:03 +01:00
toaster
cf25cf0da1 Clear menus if wiping from GS_MENU to GS_LEVEL/GSWAITINGPLAYERS
Catches a case that's never been relevant before -- now that you can open the console on the menu, map commands have newfound dangers to be worked around.
2022-09-02 22:37:40 +01:00
toaster
5c4ff2ead0 Rewrite Profile saving and loading
- Previous implementation used fopen, fwrite, fread, etc.
- Instead, use the byteptr.h macros to/from a buffer, performing IO all at once before/after.
- This way, if we do something unrecoverable mid-write, we won't corrupt the user's profile.
- Also cross-endian compatible AND now capable of supporting changes in the struct.
- Sadly not back-compatible. This should be the last time we destroy the team's existing profiles...

Also, modify a typo in a gamedata error this system used as reference.
2022-09-02 19:38:54 +01:00
toaster
2c91f83a02 Store tripwire pass level on the player
Fixes tripwire leniency fadeout - previously broken two commits ago
2022-08-30 21:22:26 +01:00
Sally Coolatta
d5a4954dd3 Profiles handle power level properly now
Overwriting the global power level all the time and not updating any code to use the profile was extremely yikes. This also allows for splitscreen players with power levels.
2022-08-30 03:51:35 -04:00
toaster
7edec43d72 Port Gametype Preference and associated changes
Notably, makes the PWR-based Encore scrambling component of G_SometimesGetDifferentGametype WAY less spaghettified.
2022-08-28 23:36:55 +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
107622968e Merge branch 'master' into new-menus 2022-08-27 22:36:58 -04:00
Sally Coolatta
eb7e84b961 Automate commands
- `automate_set <event name> <command>` to set a command to run each time an event triggers.
- Currently implemented events are "roundstart", "intermissionstart", and "votestart", all of the ones from HOSTMOD.
- Turn `automate` off to disable this feature entirely. Because of the new safer way this is implemented (in HOSTMOD, this just calls some console aliases), this is turned on by default instead of off.
- This is set up in a way to facilitate adding more automation events very easily, if desired.
2022-08-24 21:07:41 +01:00
Sally Coolatta
2fdd8c1e13 Implement shout commands
- shout command to create a server message, with its own special sound cue & color
- shoutname to control the nametag, by default this is "SERVER"
- shoutcolor controls the color of the message. By default it's red, but there's also a option for player colored.
- autoshout makes any message sent by a admin/server automatically turn into a shout
- Unlike HOSTMOD shout, integrated it with the dedicated server say behavior -- using say on dedicated server is always a shout.
2022-08-24 21:02:39 +01:00
Sally Coolatta
ddfa9e9d88 Fix NO CONTEST Pwr.Lv when more than 1 lap behind 2022-08-15 19:47:01 -04:00
Sally Coolatta
ebb34ff9d4 Lap based power level 2022-08-14 06:00:37 -04:00
Sally Coolatta
36b8ab1eac Streamline cheats
"cheats" is a proper cvar now. Enabling it allows for cheats to be used any time, even in multiplayer, and disables gamedata saving. Turning it off undoes as many cheat commands as reasonably possible. Based a little bit off of some vanilla work I also did.

Many cheat commands are still SP-only, but can reasonably be allowed in netgames now if a net command is created for them.
2022-06-08 12:46:56 -04:00
Sally Coolatta
4c3f89cdf7 Allow freesloting & editing precipprops
Allows for custom weather types.

In SOC:
```Freeslot
PRECIP_GROOVY

Weather PRECIP_GROOVY
Type = MT_PARTICLE
Effects = PRECIPFX_THUNDER|PRECIPFX_LIGHTNING```

In Lua:
```freeslot("PRECIP_GROOVY")

precipprops[PRECIP_GROOVY] = {
    type = MT_PARTICLE,
    effects = PRECIPFX_THUNDER|PRECIPFX_LIGHTNING
}```

Then in level header, simply set `Weather = PRECIP_GROOVY`.

Other properties are part of the object itself:
- Falling speed is set as the object's speed
- Sound ID is set via the object's SeeSound
- Sound frequency is set by the object's Mass.
2022-05-31 09:03:06 -04:00
Sal
ea96a33e41 Merge branch 'bot-rubberband-edit' into 'master'
Drastically simplified bot rubberbanding

See merge request KartKrew/Kart!604
2022-05-27 06:49:51 +00:00
Sally Coolatta
8815b065b3 Merge branch 'master' into bot-rubberband-edit 2022-05-25 23:29:04 -04:00
toaster
d963dea4f9 Merge branch 'master' into new-menus
# Conflicts:
#	src/Sourcefile
#	src/deh_soc.c
#	src/m_menu.c
#	src/p_user.c
#	src/r_data.h
#	src/r_skins.h
2022-05-25 15:12:51 +01:00
Sally Coolatta
bc3a82b610 Merge branch 'master' into slope-lighting 2022-05-25 04:04:38 -04:00
Sally Coolatta
b6ed17d9fc Allow adjusting map contrast 2022-05-24 23:04:48 -04:00
Sally Coolatta
a896d73334 Precalculate bot controller & rubberbanding
These both require a couple loops to preform each, which probably adds up over multiple bots. Let's just precalculate them at the start of bot ticcmd.
2022-05-24 15:28:36 -04:00
Sally Coolatta
c8718b25ff REMOVE hyubgone + all of the other bullshit we did to try and make it show up less 2022-05-22 21:17:14 -04:00
Sally Coolatta
85aa7361c2 Put a comment about camera easing 2022-05-22 18:03:32 -04:00
Sally Coolatta
ada9336137 OK go back to easing, but now actually work 2022-05-22 17:49:34 -04:00
Sally Coolatta
c9e685be66 Nope, that didn't work, move by your max turn speed until you reach it 2022-05-22 16:30:27 -04:00
Sally Coolatta
986bcddbfc Ease prediction angle
Might feel laggier, might feel better because it gets rid of jitter? idk
2022-05-22 16:21:07 -04:00
Sally Coolatta
0dc472a255 Try resetting driftend 2022-05-22 15:38:08 -04:00
Sally Coolatta
51bde5c934 Merge branch 'master' into turn-predict 2022-05-22 14:42:54 -04:00
toaster
54b9f3b7cc Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart.git into new-menus
# Conflicts:
#	src/Sourcefile
#	src/f_finale.c
#	src/m_menu.c
#	src/y_inter.c
2022-05-22 17:22:49 +01:00
toaster
48d451cfef Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart.git into new-menus
# Conflicts:
#	src/d_ticcmd.h
#	src/deh_soc.c
#	src/deh_soc.h
#	src/deh_tables.c
#	src/dehacked.c
#	src/f_finale.c
#	src/g_game.c
#	src/m_menu.c
2022-05-21 18:57:46 +01:00
SinnamonLat
399272946c Tie POWERLEVEL to Profiles 2022-05-21 17:47:15 +02: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