Commit graph

24093 commits

Author SHA1 Message Date
toaster
bfc8036e7e Use display players for hearing/seeing horns, not local players
Matches other local effects, and permits spectators (such as in tournaments) and replay watchers to see the honk.
2023-07-18 17:53:54 +01:00
toaster
a812ef8809 DMG_WHUMBLE
There are two differences between Whumble and Stumble.
- Stumble cannot be combo'd on upwards momentum, while whumble can. (Resolves #522)
- Whumble takes bumpers, while stumble does not.
    - Removes the MT_INSTAWHIP hack.
2023-07-18 17:39:17 +01:00
toaster
ce08ac0f33 General tidy of mobj_t pointers on player_t struct
- CL_ClearPlayer
    - Delete followmobj, stumbleIndicator, and sliptideZipIndicator
    - Wipe flickyAttacker and powerup.flickyController
- G_PlayerReborn
    - Properly destroy the Follower and its bubble overlays, etc
    - Ensure ringShooter pointer is kept
    - Delete followmobj, stumbleIndicator, and sliptideZipIndicator
    - Wipe flickyAttacker and powerup.flickyController
- P_PlayerThink
    - Ensure all invalid pointers are erased, even on hitlag frames
2023-07-18 15:50:39 +01:00
toaster
e6619df2d4 Servant Hand: Refactor to use its own thinker
Since it's already ticking for the sake of a fuse, make it handle its own movement/scaling as well.

Spawning is still handled by the player thinker (and can be blocked by hitlag), but this permits it to disappear when a player dies/disconnects the server.
2023-07-18 15:45:49 +01:00
toaster
beebfd0d2f Ring Shooter: Only P_SetTarget if player is in game 2023-07-18 15:29:32 +01:00
toaster
c1810ac891 P_SetupSpawnedMapThing: Re-add missing MT_AMBIENT 2023-07-18 10:59:06 +01:00
toaster
2e395c8b0f Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into more-conversions 2023-07-18 10:52:09 +01:00
toaster
a07a9e2191 Don't use skincolor unlocks in situations where gamedata is inappropriate
- Recieving a different client's XD_NAMEANDCOLOR
- Loading profiles on game boot
2023-07-18 10:50:25 +01:00
toaster
c20a76586c Merge branch 'loop-netsave' into 'master'
MT_LOOPCENTERPOINT invalid spawnpoint (resolves #563)

Closes #563

See merge request KartKrew/Kart!1338
2023-07-18 09:45:41 +00:00
toaster
f8922c83c8 MD2_TID: Don't pass a macro directly to P_SetThingTID
This isn't currently the cause of any issue, but found this future footgun while researching the previous commit.

Sometimes functions are turned into macros, which could potentially result in multiple save->p digestions if this was eventually turned into one.
2023-07-17 13:53:13 +01:00
toaster
45012dbd6a Make sure MT_LOOPCENTERPOINT doesn't have an invalid stack-allocated spawnpoint pointer
Fixes connecting to a server that's currently on a map with a loop.

Also tidies P_SpawnItemRow, P_SpawnItemCircle to reduce the likelihood of this happening again, and possible crash with Lua-shortcircuited loop spawning
2023-07-17 13:51:48 +01:00
SteelT
3d6d2694b3 Fetch the server IP once
Fixes ourIP being set on every map change
Also catches a possible case where joining clients can sigfail in the window between map change and stun response
2023-07-16 19:13:20 -04:00
Oni
a59896ef88 Merge branch 'string-clenups' into 'master'
String Clenups[sic]

See merge request KartKrew/Kart!1330
2023-07-16 08:50:22 +00:00
AJ Martinez
12bc92b392 Merge remote-tracking branch 'origin/master' into dedi-bots 2023-07-16 01:29:00 -07:00
AJ Martinez
ab71148c4d Botcontrol is for servers 2023-07-16 01:28:50 -07:00
Oni
28748725fe Merge branch 'initializing-instawhip-reject-frames' into 'master'
Initializing the instawhip reject frames

See merge request KartKrew/Kart!1334
2023-07-16 08:28:04 +00:00
AJ Martinez
599c87f627 Don't rewrite the past if we might still need to send it 2023-07-16 01:18:23 -07:00
VelocitOni
a43836a9ad MT_INSTAWHIP_REJECT in info.h
fuck FUCK fucvkfj UFCK SO MANY SPOTS
2023-07-16 04:15:49 -04:00
VelocitOni
82c21f631f Added it in one more spot info.h, added a field for it in info.c
Dunno where else to add it, still says it's not added to dehacked...
2023-07-16 04:03:49 -04:00
VelocitOni
51058c3c19 Messed up sprite name
Changed it from a duplicate hitlag sprite to instawhip-reject name
2023-07-16 03:43:10 -04:00
VelocitOni
6f31a6d4a8 Initializing the instawhip reject frames
Setting it up to save the future coder headache
2023-07-16 03:31:03 -04:00
Oni
4feafc99f0 Merge branch '10th-hitlag-spark' into 'master'
10th frame of hitsparks added

See merge request KartKrew/Kart!1332
2023-07-16 06:49:37 +00:00
VelocitOni
7aec2b0732 10th frame of hitsparks added
Added biggest frame of hitsparks, only 1 to go now.
2023-07-16 02:27:25 -04:00
toaster
034fa4b0a9 Water Palace Turbine UDMF conversion
Requires changes in the script to support which I am not awake enough to finalise or make compatible with other branches. This took far longer than appropriate.
2023-07-15 22:50:53 +01:00
toaster
25f48fd26f Add ML_BLOCKMONSTERS to P_WriteTextmap 2023-07-15 20:08:53 +01:00
toaster
459e3684ab P_GetNodeType: Do not dereference invalid pointer for **nodedata parameter 2023-07-15 19:18:39 +01:00
Eidolon
5c3355e47d Merge branch 'rhi-kill-xfer-ctx' into 'master'
Remove TransferContext from RHI

See merge request KartKrew/Kart!1328
2023-07-13 17:58:05 +00:00
toaster
ed8007471f Remove binary-relevant text field from side_t (and line_t)
Instead of storing this during binary-UDMF conversion and then copying it for certain argument fields, put it directly onto stringarg[0] (or [1] if it's the backside), then make relevant changes with those.

Reduces the amount of Zone memory used for binary converted maps, and the amount of struct memory used for all types of maps.

They have also been removed from the Lua API. Fret not, the stringargs on line_t have far more utility.
2023-07-12 18:37:00 +01:00
toaster
b61701a1bc Tidier conversion of string properties to UDMF
Previously, concatenated texture field strings were turned to text, then had that string run through get_number, then had it converted back into a string to become a stringarg.

Now, the concatenated string is copied directly to the relevant stringarg.

This fixes an issue where a map with object or state properties would have "context drift" - breaking when the object or state list changed, due to differently ordered freeslots, or new hardcoded objects.

This is also made consistent and with less repeated code via the addition of multile P_Write functions to replace both P_WriteConstant and multiple copypasted blocks of zone allocation and memcpy.
- P_WriteDuplicateText -- fresh zone memory copy with PU_LEVEL
- P_WriteSkinColor -- converts ID to SKINCOLOR_ name, then runs it through P_WriteDuplicateText
- P_WriteSfx -- converts ID to SFX_ name, then runs it through P_WriteDuplicateText

In order to avoid making p_setup.c dependent on `deh_tables.h`, object type 1202 simply artifically produces the expected range of MT_ROCKCRUMBLE1 to MT_ROCKCRUMBLE16. It was technically possible to produce unexpected effects with extremely high offsets, but if your map was doing something like that, you're intelligent enough to go back and swap the MT_ constant out with your intended goal.
2023-07-12 17:13:38 +01:00
toaster
36e0a23c09 Remove console script support from maps
The linedef's behaviour was broken horribly by long map names, and it's not worth the effort to fix it for the following reasons.
- It was considered a security vulnerability to have free access to the console when it was written.
- The game literally had a cvar to disable running console scripts. That's "I am willingly distributing ActiveX Word Documents in 2023" levels of foolhardery.
- Anything GOOD it can do, both Lua and ACS can do better.
2023-07-12 16:32:23 +01:00
toaster
ba5047459c Remove last remnants of Action 434 ("Custom Power")
Had no behaviour, but was being processed
2023-07-12 16:16:56 +01:00
toaster
c5c78df946 Linedef Action 460 (Award Rings) now supports negative ring counts
UDMF now has a native ring drainer effect.

Also fixes the WriteTextmap warning for the deprecated sector effect, which should have been encouraging you to use this action, not action 462!?
2023-07-12 13:17:09 +01:00
toaster
c7f57614de Fix the accidential reduction in wordwrap width for New Chat messages 2023-07-12 09:00:30 +01:00
toaster
40dfe494cc Fix underscore for virtual keyboard/menu typing interface
Surprised it ever worked, inexplicably was converted to a color!?
2023-07-12 09:00:30 +01:00
toaster
4b5612954f Scrunch up generic font by default
EXTREMELY popular, has positive effects across the entire game
Doesn't apply to console
2023-07-12 09:00:30 +01:00
toaster
631336db39 "New" Chat (2018 onwards) has completely been moved to string drawer system
Has some minor kinks but Jartha wanted to take it over once I laid the groundwork so I'm not losing sleep over this
2023-07-12 09:00:30 +01:00
toaster
eacd99a815 FOCUS LOST: Force uppercase 2023-07-12 09:00:30 +01:00
toaster
e3ee8f9afa V_LevelNameHeight: Don't use strlen for possibly every iteration depending on optimisation level 2023-07-12 09:00:30 +01:00
toaster
9e4e996a5e V_ScaledWordWrap API changes
- The function is back to producing zone-allocated memory copies, like its precursor V_WordWrap
    - The author of this commit got rid of that dependency originally because it seemed like a fair part of the API, and meant static buffers could be used in certain circumstances, but it was necessary to revert for the following change.
- Newlines can now be inserted mid-word, treating the width provided as ironclad except in the case of single characters wider than the region.
    - This will be necessary for future work with the in-game chat.
    - Reserves 8 characters at first, then Z_Reallocs double that every time it runs out.
2023-07-12 09:00:30 +01:00
toaster
4675a9b059 Fix an issue where newlines could potentially double-up when faced with whitespace 2023-07-12 09:00:30 +01:00
toaster
c5dc430b50 V_6WIDTHSPACE no longer a pitfall for using V_DrawThinString
The bunched text behaviour is now the primary mode of operation for TINY_FONT.
2023-07-12 09:00:29 +01:00
toaster
445929fac9 Whitespace at the end of a line should NOT be counted when getting V_StringScaledWidth
Second guessed this change over lunch
2023-07-12 09:00:29 +01:00
toaster
277f7c51a3 V_ScaledWordWrap
Moves WordWrap to the font/V_GetFontSpecification system.

Much healthier long-term for our purposes, including the possibility of changing fonts for various contexts freely.
2023-07-12 09:00:29 +01:00
toaster
fb0fa9ac53 V_StringScaledWidth fixes
- Don't calculate a cy that's not actually needed
- Ignore colorcodes
- Update `right` when space characters are printed, too
2023-07-12 09:00:29 +01:00
toaster
fd4c1aeec3 fontspec_t, V_GetFontSpecification
Reduces quantity of copypasted code between V_StringWidthScaled and V_DrawStringScaled to far more manageable "this is an inner loop and cannot be abstracted" levels.

Guarantees consistency in handling across existing and future functions.
2023-07-12 09:00:29 +01:00
toaster
b69a255fe9 readlevelheader: Support lowercase for ZoneTitle
Exposed by increased lowercase prevalence, fix before boarding that up.
2023-07-12 09:00:29 +01:00
toaster
86784ae91a Add Menu Font (without using it anywhere)
Content of commit was originally written by Sal, but as a monolithic commit. The author of this commit is chunking it up for easier review.

Adds the additional font. This requires a little cleanup before we can use it as the primary menu font, but worth at least putting this in the relevant places for later.
2023-07-12 09:00:29 +01:00
toaster
a536f884ce V_ALLOWLOWERCASE --> V_FORCEUPPERCASE
Content of commit was originally written by Sal, but as a monolithic commit. The author of this commit is chunking it up for easier review.

Simple inversion on the face of things, but with a long tail of consequences, including 19 changed files.

Forced uppercase has been applied in a handful of locations where it was aesthetically imperative. Most menus will follow in another commit, so that that may be reverted if we change the default menu font.
2023-07-12 09:00:29 +01:00
toaster
4b97c171b5 Character-handling cleanup
Content of commit was originally written by Sal, but as a monolithic commit. The author of this commit is chunking it up for easier review.

- V_CharacterValid
    - Makes checks for valid character drawing consistent and cleaner
    - If a case isn't being forced, characters that can have case applied but don't exist will attempt to draw their other case.
- V_DrawCharacterScaled
    - Saner core function that doesn't overload the character provided
    - Previous terrible is supported for now via backwards-compatible shim function
2023-07-12 09:00:28 +01:00
Oni
992840dd0f Merge branch 'faraway-colony-signs' into 'master'
MF_DRAWFROMFARAWAY Lost Colony signs

See merge request KartKrew/Kart!1331
2023-07-12 03:20:06 +00:00