Commit graph

23949 commits

Author SHA1 Message Date
toaster
ea53197084 Fix off by 1 error in con_hudlines
Originally written by Zwip-Zwap Zapony for the SRB2 repository as part of STJR/SRB2!1931, partially flattened to avoid waiting for the merger of the entire branch.
- 0, not 1 as previously was the case, now shows zero lines.
- Now inclusively capped between 0 and 20 lines in the cvar, rather than silently in the console code.
2023-07-18 20:26:43 +01:00
Zwip-Zwap Zapony
c36d987be7 Draw the input prompt while the console is moving 2023-07-18 20:06:36 +01:00
Zwip-Zwap Zapony
4c08b7010d Make con_height adjustable on the fly 2023-07-18 20:06:29 +01:00
Zwip-Zwap Zapony
24ab95ddde Uncap console opening/closing animation 2023-07-18 20:06:22 +01:00
toaster
9b51c9c7fe V_GetHWConsBackColor: Fix for RR's console color list
Also, don't be such a weenie that you say slurs in your code comments
2023-07-18 19:52:14 +01:00
toaster
0b3ebb0686 Kickstart Accel indicator sound modifications
- Play in replays/as spectator
- Do not play for bot-controlled players (exiting, Podium, etc)
2023-07-18 18:04:54 +01:00
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