Commit graph

24370 commits

Author SHA1 Message Date
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
AJ Martinez
df940de4b0 MF_DRAWFROMFARAWAY Lost Colony signs 2023-07-11 20:17:17 -07:00
Oni
5f5ef5f550 Merge branch 'symbol-signs' into 'master'
Lost Colony symbol signs

See merge request KartKrew/Kart!1298
2023-07-12 02:42:42 +00:00
Lach
77750438ef Change symbol thing type to 4094 2023-07-11 21:51:29 +10:00
Lach
4ad383721d Add thing type number & binary conversion to symbol signs 2023-07-11 21:04:06 +10:00
Lach
64511e82c2 Merge remote-tracking branch 'origin/master' into symbol-signs 2023-07-11 20:55:44 +10:00
Oni
6c9ed3a388 Merge branch 'hold-my-input' into 'master'
Improve netplay instability and network timing drift (resolves #573)

Closes #573

See merge request KartKrew/Kart!1326
2023-07-10 21:51:34 +00:00
Eidolon
9112ac8bdc rhi/gl: Clear stencil buffer in default renderpass 2023-07-09 13:54:07 -05:00
Eidolon
187e4a9442 rhi/gl: Loosen constraints on resource creation
It will be safe to call many of these functions in Vulkan even if a
context is active, but the contents of buffers and textures will be
considered undefined until updated.
2023-07-09 13:54:07 -05:00
Eidolon
3ec7163a34 rhi: remove TransferContexts 2023-07-09 13:54:07 -05:00
Eidolon
e78add3a2a Merge branch 'wtf-gcc' into 'master'
Give StaticVec a special iterator type

See merge request KartKrew/Kart!1329
2023-07-09 17:34:02 +00:00
Eidolon
9a149ed35b Give StaticVec a special iterator type
Avoids a bogus warning in std::sort in GCC's STL.
2023-07-09 12:27:00 -05:00
James R
c824654130 Merge branch 'convert-rainbow-rings' into 'master'
P_ConvertBinaryThingTypes: convert Rainbow Dash Rings too

See merge request KartKrew/Kart!1327
2023-07-07 04:36:54 +00:00
James R
b17ae80c15 P_ConvertBinaryThingTypes: convert Rainbow Dash Rings too 2023-07-06 21:15:53 -07:00
AJ Martinez
9ebfc12167 Only use ticmiss input-steering if we didn't use it last tic 2023-07-06 16:04:28 -07:00
AJ Martinez
fe122291bc Buffer double-submitted ticcmds 2023-07-06 01:37:05 -07:00
AJ Martinez
edfd43ce81 Use input steering (not camera steering) on skipped tics 2023-07-03 16:35:52 -07:00
Oni
acfd7ffc55 Merge branch 'hit-stop-efx' into 'master'
Hitlag EFX

See merge request KartKrew/Kart!1218
2023-07-03 12:39:11 +00:00
AJ Martinez
a594e386b6 ReduceVFX MT_HITLAG 2023-07-03 05:33:20 -07:00
VelocitOni
30d21e960a Merge branch 'master' into hit-stop-efx
# Conflicts:
#	src/objects/ufo.c
2023-07-03 06:24:27 -04:00
James R
e94ae5bfef K_BattleAwardHit: evaluate win condition before adding points 2023-07-03 06:20:21 -04:00
James R
7fdfa56451 Show point count next to rank icons HUD in Battle
If the player has reached the point limit, the numbers
dance and flash tangerine (indicating that they are about
to win, after they kill someone).
2023-07-03 06:20:21 -04:00
VelocitOni
89623e3fc9 Battle odds re-do
Cleared out all battle odds and started fresh, now mostly projectiles.
2023-07-03 06:20:21 -04:00
James R
321fa518bd K_RunPaperItemSpawners: always give monitors 3 item types 2023-07-03 06:20:20 -04:00