Commit graph

21253 commits

Author SHA1 Message Date
James R
7092f1126e cmake: move ACSVM fetch to cpm-acsvm.cmake
Remove SRB2_CONFIG_SYSTEM_LIBRARIES condition. This is
because I am lazy and don't want to write
a FindACSVM.cmake. I also don't think it will be common
for it to be installed at the system level.
2023-01-26 23:33:00 -08:00
Oni
f57dd43e36 Merge branch 'minigen' into 'master'
minigen

See merge request KartKrew/Kart!900
2023-01-25 05:54:12 +00:00
Oni
271dae4643 Merge branch 'refcount-goofin' into 'master'
Additional P_SetTarget mobj_t pointer fixes on player struct

See merge request KartKrew/Kart!875
2023-01-25 01:00:42 +00:00
Oni
1ef90e92b3 Merge branch 'follower-unlock-fix' into 'master'
Follower visual unlock fix

See merge request KartKrew/Kart!899
2023-01-25 00:44:22 +00:00
Oni
d42fdd0346 Merge branch 'music-debug' into 'master'
Music debugging, devmode music

See merge request KartKrew/Kart!885
2023-01-25 00:14:42 +00:00
toaster
09e37f59b6 Merge branch 'stumble-damage' into 'master'
Stumble damagetype

See merge request KartKrew/Kart!896
2023-01-24 22:45:39 +00:00
toaster
fa92c880e0 minigen: Add black fragments to common objects on valid road
- Drawn underneath absolutely everything else, because it's the least specific of all the guides minigen can provide
- "Common objects" includes:
    - Rings/spheres
    - Waypoints
    - Item boxes/spots
    - Overtime kiosk
    - Rings
    - Item Capsules
- The above were chosen because they're a good distinctor between sectors that are valid to drive on and sectors that would be valid were there no impassable lines or massive height differences preventing the player from getting there.

Related:
- K_TerrainHasAffect now has a "bad only" check mode.
    - If true only report back for strong friction, any offroad, any damage, or stairjank.
2023-01-24 18:59:13 +00:00
toaster
6f14b91022 AM_DrawWalls: correct issue with the planes to grab terrain from being incorrect (copypaste error) 2023-01-24 18:48:48 +00:00
toaster
6a723cff58 Support for user-specified minimap bounds
The totally-not-a-secret reason I made this branch.
- doomednum 770 (associated with polyobject anchors 760/761 and skybox centerpoint 780)
- Place exactly two in a map to draw an implicit rectangle.
    - Supports top-left/bottom-right AND bottom-left/top-right placements.
    - I_Errors if you place too many (or only one).
- You don't *have* to have these, this is just a bonus if you're a map like Power Plant or CDSS1 negatively affected by your skybox.
2023-01-24 17:57:56 +00:00
toaster
223531ffce Precalculate as much shared minimap/automap data on level load as possible
- `P_InitMinimapInfo`
    - Writes to `p_local.h` extern struct
    - Handles everything previously distributed across multiple K_drawKartMinimapIcon calls (and most of AM_findMinMaxBoundaries)
- Reduces complexity of drawKartMinimapIcon significantly
- Last prerequisite before implementing user-placable minimap boundaries...
2023-01-24 14:46:25 +00:00
toaster
16d6837112 minigen command: Support -m(ultiplier) parameter
Supports values between 1 and 10, with 1 being the default.
If a multiplier greater than 1 is provided, the filename will take the form "MINIMAP-%d.png", where %d is the multiplier.
2023-01-23 19:59:14 +00:00
toaster
d7d1fdded3 AM_MinimapGenerate: return NULL if malloc fails 2023-01-23 19:18:19 +00:00
toaster
9559dab6a2 Add an explicit error for attempting to generate a preliminary minimap while the automap is open. 2023-01-23 19:17:35 +00:00
toaster
ea7e29f279 Refactor in preperation for scaling feature
Return a `minigen_t` struct with explicit width and height instead of extending the UINT8 buffer by 2 to provide that information in a very datatype-limited way.
2023-01-23 19:16:45 +00:00
toaster
da639fe65f Rework automap/minigen colours
- All pre-existing colours are now actually what the code says they should be for the 2.2 palette
- RR-specific colour changes.
    - Remove all noclimb-specific line colours
    - Render areas that can't be stepped up/down onto as walls
    - Add colours for
        - Tripwire (cyan, but not 0xff cyan)
        - Finish Line (grey)
        - FOF info (blue)
    - Use a low-intensity colour to signal possible offroad/hazard sector or stairjank step
- Rework to support drawing in multiple passes, so that information that is strictly more important (solid walls, finish line) will not be obscured at minimap resolution by nearby lines signalling offroad/stairjank

Related:
- Added K_TerrainHasAffect
    - Returns true if terrain has any properties which would affect the player's gameplay, false if not.
2023-01-23 18:38:52 +00:00
toaster
dafd6d5dfa 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
2023-01-23 12:33:35 +00:00
toaster
a75a7039d6 HU_DrawRankings: Do not fade screen while automap is visible. 2023-01-23 11:47:34 +00:00
toaster
a602a90a8c m_cheat.c: Permit singleplayer-only cheats in offline match race 2023-01-23 11:47:00 +00:00
toaster
dd222affa2 M_DrawCharSelectCircle: Fix not checking for follower usability when iterating over valid followers in the selected category 2023-01-22 16:38:56 +00:00
toaster
f47d818698 Merge branch 'fix-window-icon' into 'master'
Fix XPM window icon not being used

See merge request KartKrew/Kart!897
2023-01-22 15:50:32 +00:00
toaster
b6be0ef6e8 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into music-debug
# Conflicts:
#	src/audio/xmp.cpp
#	src/audio/xmp_player.cpp
#	src/sdl/new_sound.cpp
2023-01-22 15:20:14 +00:00
toaster
23609843e5 P_DamageMobj: Only play ringloss sound if rings are actually being lost 2023-01-22 15:03:51 +00:00
toaster
ceed74d052 Stumble damagetype
- DMG_STUMBLE in SOC, hardcode
- Has sector type
    - UDMF: damagetype = "Stumble"
    - Binary: Sector type 9, section 1
- Can be chained even when invincible, unlike Tumble
- Will never instinctively cause hitlag
2023-01-22 14:56:42 +00:00
Oni
8a771521c2 Merge branch 'spectator-look' into 'master'
Re-implement spectator vertical look

See merge request KartKrew/Kart!898
2023-01-22 03:33:37 +00:00
Oni
13563ce922 Merge branch 'acs' into 'master'
Action Code Script

See merge request KartKrew/Kart!728
2023-01-22 03:22:32 +00:00
Oni
584b714e72 Merge branch 'fix-z-movement-discard-mom' into 'master'
Let P_ZMovement use momentum changes from P_CheckPosition call

Closes #365

See merge request KartKrew/Kart!869
2023-01-22 03:15:42 +00:00
Oni
5664c8addc Merge branch 'title-profile-tweaks' into 'master'
Small fixes for profile selection and skipping title screen

See merge request KartKrew/Kart!895
2023-01-22 02:51:28 +00:00
Oni
90274359db Merge branch 'magician-spectator' into 'master'
Heavy Magician adjustment

See merge request KartKrew/Kart!876
2023-01-22 01:59:48 +00:00
SteelT
aef982c8d5 Fix XPM window icon not being used 2023-01-21 18:47:29 -05:00
toaster
e6e1d6b042 Re-implement spectator vertical look
- Hold lookback to pivot the spectator's vertical aiming angle
    - Forward/backwards item throw/trick input aims up/down
    - Overrides forwards/backwards movement while lookback is held
    - Changes the spectator text to indicate that it's in aiming mode
2023-01-21 23:46:14 +00:00
James R
dfd13b5a7a Merge branch 'fix-nosound' into 'master'
Fix -nosound command line option not disabling sound effects

Closes #405

See merge request KartKrew/Kart!883
2023-01-21 20:26:51 +00:00
James R
65eedaa9ee Merge branch 'overlay-offsets' into 'master'
MT_OVERLAY exception flags

See merge request KartKrew/Kart!878
2023-01-21 20:26:23 +00:00
James R
6e058d66e1 Merge branch 'capsuletest' into 'master'
Add capsuletest cvar

See merge request KartKrew/Kart!884
2023-01-21 20:26:06 +00:00
James R
66c2d36646 Merge branch 'scale-drop-target' into 'master'
Fix Drop Target knockback for large Drop Targets and non 1/4 scale maps

See merge request KartKrew/Kart!868
2023-01-21 20:25:35 +00:00
James R
d4c27bb2a7 Merge branch 'song-credit-level-only' into 'master'
Don't draw song credit outside on results or vote screens

Closes #390

See merge request KartKrew/Kart!867
2023-01-21 20:25:19 +00:00
James R
d7d365f1e4 P_ZMovement: take object's momentum after P_CheckPosition 2023-01-21 17:24:16 +00:00
toaster
65c0860a9d P_PushSpecialLine: It's possible for tm.blockingline to be NULL but the player be blocked. 2023-01-21 16:52:25 +00:00
toaster
d2d7421072 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into acs
# Conflicts:
#	src/CMakeLists.txt
2023-01-21 15:32:13 +00:00
toaster
52ce1d95fd Additional spectator checks
- P_DamageMobj
- P_PlayerThink
2023-01-21 14:57:54 +00:00
toaster
2e35a40b80 SF_IRONMAN: handle randomised skin and hurt/death states differently
- P_DamageMobj
    - Become skin temporarily to show off the hurt frames
    - Sets charflags, so P_PlayerThink can handle reversion
    - Add sparkles for losing disguise
- P_KillPlayer
    - Sets charflags, so P_PlayerThink can handle reversion
    - Add extra sound for losing disguise
- G_PlayerReborn
    - Sets charflags in not-betweenmaps case as well, so P_PlayerThink can handle reversion
- P_SpawnPlayer
    - Use set skin for spawn again (partial revert of previously committed code)
- P_PlayerThink
    - More specific conditions for fakeskin reversion
        - Not hurt, dead, or respawning (except for last part of drop)
    - Add sound and sparkles for reapplying disguise
2023-01-21 14:43:54 +00:00
toaster
0606fb50ba S_StartSoundAtVolume, K_PlayPainSound, K_PlayHitEmSound: Use user skin for sounds instead of mobj skin
So we'll always hear the clips we pick for Heavy Magician
2023-01-21 12:58:06 +00:00
toaster
3c79e32516 P_KillPlayer: Use death frames from SF_IRONMAN skin, not those of the randomised skin
Currently invisible for Heavy Magician, but a lot about her is nonfinal.
2023-01-21 12:30:01 +00:00
toaster
1ae8a6dec5 P_SpawnPlayer: Guarantee correct fake skin on player object at spawn 2023-01-21 12:30:01 +00:00
toaster
c18e7e6c3c K_SpawnMagicianParticles: NULL check on mo->target 2023-01-21 12:30:00 +00:00
toaster
a4a74a7d2f Do not continue to run thinker for MT_MAGICIANBOX if removed by running out of lifespan 2023-01-21 12:30:00 +00:00
toaster
79401a888f Do not spawn Heavy Magician box/particles, or play associated sounds, if the player is a spectator 2023-01-21 12:30:00 +00:00
James R
63bed732f2 G_Responder: remove check to finalecount before opening menu from title screen
This is handled by M_StartControlPanel anyway and the
condition did not match anymore.
2023-01-19 21:28:03 -08:00
James R
e8bc7035f5 Always select current profile in profile options menu
Fixes Guest profile being selected if opening the game
from command line (without going to title screen) and
opening the profile select from the options menu.
2023-01-19 21:27:16 -08:00
James R
83a6acd5c8 Do not force Guest profile when selecting profile for first time
This lets ttlprofilen persist if backing out of profile
select.
2023-01-19 21:26:21 -08:00
James R
ddb55c95c7 Merge branch 'split-menufunc' into 'master'
Move all specialized code out of k_menufunc.c

See merge request KartKrew/Kart!888
2023-01-20 03:16:00 +00:00