Commit Graph
18738 Commits
Author SHA1 Message Date
Mike Nelson 8410ed0249 Lab asteroid viewer (#6710)
* Allow viewing asteroid and debris objects in the Lab

* Address feedback

* Minor UI string tweak
2025-06-08 14:37:12 -04:00
Mike Nelson 4d39287de1 LuaLS meta file generation (scripting.lua) (#6516) 2025-06-08 11:29:30 -04:00
Kestrellius ad5b2372fa A couple of particle-related fixes (#6754) 2025-06-07 10:49:49 -04:00
Goober5000 546d0af38b Merge pull request #6751 from Goober5000/scripted_movie_audio
enable audio in movie files with this one simple trick
2025-06-07 00:45:56 -04:00
BMagnu 0399e13e3d Fix window_res related bugs (#6753) 2025-06-06 19:33:55 +02:00
Goober5000 0bf5714dd5 Merge pull request #6725 from Goober5000/time_lib_stuff
enhance scripted time library a bit
2025-06-05 23:15:55 -04:00
Goober5000 6ddb57b6c2 Merge pull request #6744 from Goober5000/script_debug_console_commands
add a few debug console commands for running scripts
2025-06-05 23:15:46 -04:00
Taylor Richards 552f9990d9 remove support for memory mapped files (#6748)
FSO doesn't appear to use this any longer. And even when it was enabled the
requirements made it largely useless anyway. Removing to clean up cfile a
bit and so we don't have to keep maintaining it.
2025-06-05 17:53:13 -04:00
Taylor Richards 9e9fc22b13 fix type conversion issue in vecmat (#6749) 2025-06-05 08:02:02 -04:00
Goober5000 c04a23e4f9 add a few debug console commands for running scripts
We have debug commands for sexps, so here are a few for scripts.  These will be very useful for script developers to perform diagnostics and troubleshooting.
2025-06-05 00:40:52 -04:00
Goober5000 a3aea10889 enable audio in movie files with this one simple trick
Turns out, audio works in scripted movies just fine.  So, add a parameter to the Lua API to allow movies to play audio.
2025-06-04 23:58:58 -04:00
Mike Nelson 829edaaa3e Fix Lua API polluting the game context (#6739)
* split rendering values into lua and fso contexts

* address feedback
2025-06-04 09:43:33 -04:00
Kestrellius 3cf3aa9ecd Launch curves followup (#6742)
* this went very badly

* fix burst mult bug

* increment multi

* fix uninitialized variable

* fixes

* further fixes

* concision
2025-06-04 07:07:14 -04:00
wookieejedi 6e7128f26c Mod setting to disable shield effects (#6746)
Mods like FotG do not use the FS style shield hit effects, and simply disabling the shield rendering and checking is useful with one simple global variable.

Tested and works as expected.
2025-06-04 07:06:46 -04:00
Goober5000 921c597f30 Merge pull request #6709 from vmedea/fix-vulkan-build
Fix Vulkan build issues, enable Vulkan build in CI
2025-06-03 21:44:29 -04:00
wookieejedi 66a85113a7 Very small debug log cleanup (#6747) 2025-06-03 21:07:05 -04:00
Asteroth 7502cf37da Stationary jump types should not try to avoid collision (#6738)
* no sweeper jump collision avoidance

* few adjustments

* only use short range distance check
2025-06-02 21:57:41 -04:00
Kestrellius 787c19e71f Fix laser frustum culling (#6741)
* the naive method

* bugfixing

* respect radius
2025-06-03 00:46:27 +02:00
Goober5000 d55061981e update object flag documentation
Fix one copy-paste error (for `Object_Flags::Collides`), and update the other descriptions as these flags can apply to any object, not just ships.
2025-06-01 21:25:49 -04:00
Goober5000 2cb76e8d70 revise documentation 2025-06-01 21:04:15 -04:00
BMagnu e1810ed522 Allow curves to be tabled inline (#6674)
* Add inline curve definitions

* Fix comma parsing

* Fix cast

* Incorporate feedback

* Fix parsing call
2025-06-02 01:41:06 +02:00
BMagnu dd62bc2033 Fix type mismatch (#6743) 2025-06-01 19:25:24 -04:00
BMagnu b3a1b8fc62 Get cross-compilation working again. (#6652)
* Get cross-compilation working again.

* Improve user handling
2025-06-02 00:48:54 +02:00
Mara Huldra 566d8f3e21 Explicitly ignore return values from Vulkan functions in RenderFrame
Because these functions can return statuses that aren't strictly an
error (and thus don't raise an exception), but might have to be handled,
they return a `vk::Result` that's `[[nodiscard]]`. Ideally some of the
result statuses would be handled here, but to get it to compile, cast
the result to void.
2025-06-01 13:30:01 +00:00
Mara Huldra 2f74acad1c Fix invalid assignment in Vulkan renderer
In 133b033ea0, SCP_vector was made into a
subclass, so direct assignment from the vulkan-hpp result isn't possible
anymore. Use an intermediate vector.
2025-06-01 13:30:01 +00:00
wookieejedi 78d2e663d7 One fix and one enhancement to AI shield behavior (#6737)
* One fix and one enhancement to AI shield behavior

This PR adds one fix and one enhancement to AI shield behavior.

1) Fix: Testing, especially in FotG, revealed an edge-case bug with shield management where the AI will not direct shield energy to a quadrant if it was hit when that quadrant was down. In other words, if a shield quadrant is knocked down to 0 and continues to be shot the AI will not realize it needs to direct energy to that quadrant. This is because `quadrant` is set to -1 if a shield segment is down. This ensures that the resulting effects and damage calculations properly ignore that quadrant downstream, but it also results in `aip->last_hit_quadrant` being set to -1. This PR adds a fix to properly record which shield was actually hit, so that the AI knows to direct energy to that quadrant.

2) Enhancement: In combat situations with fire coming from many directions, it is good practice to keep shields equalized, so this PR adds a flag for the AI to always attempt to balance shields, even if it is being fired upon (instead of the current behavior to always direct energy to the hit shield quadrant).

Both flags are tested and work as expected.

* fix copy paste

* rename to avoid previous confusion

* also make as ai class flag
2025-05-30 21:24:01 -04:00
Kestrellius 106afbe2ee scale effects for muzzle and hits (#6731)
* scale effects for muzzle and hits

* move calcs into if block

* aesthetics
2025-05-27 12:04:15 -04:00
Mike Nelson 25dbfc666b Misc hud config fixes (#6727)
* Fix crash when clicking inside the hud area but not on a gauge

* add dogfight_variant weapon flag for sorting purposes

* fix weapon display for default hud and skip dogfight weapons on auto-select

* cleanup the mouse check function
2025-05-27 08:55:12 -04:00
Kestrellius 66d9335dab Weapon launch curves (#6732)
* it's broken and i don't like it

* it's fixed and i approve

* add multi support maybe

* appease clang

* appease clang ii: electric boogaloo

* const refs

* increment multi version
2025-05-27 00:48:40 +02:00
BMagnu b3c3627f54 Allow using seeded noise for particle velocity and spawn position offset (#6675)
* Add noise backend for particles

# Conflicts:
#	code/particle/ParticleEffect.cpp

* noise frontend

* Proper scaling for noise

* make normalize safe
2025-05-26 20:43:56 +09:00
Mike Nelson 5078826340 Lab Weapon Viewer (#6704)
* Activate Lab Weapon viewer

* Allow displaying weapon tech models

* check for a valid tech model when switching

* enable render options for weapons and tech models

* Some cleanup

* Clang

* address feedback
2025-05-26 07:40:08 -04:00
Kestrellius ce4522d4bd tiny optimization (#6733) 2025-05-26 07:39:18 -04:00
Goober5000 778e2a5cb9 enhance scripted time library a bit
1. Add __tostring functions for both the `l_Timestamp` and `l_TimeSpan` types
2. Add a `getSeconds` function for the `l_Timestamp` type
2025-05-21 23:37:04 -04:00
Goober5000 2e65831fa2 add int64 support to toolchain, and fix errors
Add `UINT64_T_ARG` and `INT64_T_ARG` macros for printf arguments, similar to `SIZE_T_ARG` and `PTRDIFF_T_ARG`.

In the process, fix some issues with the toolchain: in certain CI runs the toolchain headers were being #included multiple times, and certain CI runs produced collisions between clang definitions and gcc definitions.  Resolve these issues with `#pragma once` and preprocessor guards in the event of both gcc and clang being active.

Also remove toolchain.h from sexp_container.cpp since it is already #included via pstypes.h.
2025-05-21 23:32:35 -04:00
wookieejedi 381f9fde58 Mod Specific Visual Culling Size for Lasers (#6729)
* Mod Specific Visual Culling Size for Lasers

Currently, lasers will not render if the length or both head and tail radii are < `0.0001`. This is very small, and in many mods the smallest visual size is `0.01`, so this PR exposes that culling size value to allow mods to optimize and tune visual culling of lasers, which can be quite useful especially in laser heavy missions.

* update names

* actually push all files
2025-05-21 17:56:55 -04:00
Kestrellius 61b3d82ecf make particle curves respect weapon curves (#6728) 2025-05-19 22:01:06 -04:00
Kestrellius 5ca64215c6 Weapon curves followup (#6722) 2025-05-19 22:00:53 -04:00
Goober5000 26fd770c97 add an ETS comment
Clarify the conditions here.
2025-05-18 22:58:47 -04:00
Goober5000 a1a453a217 Merge pull request #6671 from Goober5000/ets_updates
ETS updates
2025-05-18 22:55:37 -04:00
Goober5000 17a91273d1 FIELD_T is assumed to be a pointer here, so mark it as such 2025-05-17 17:14:26 -04:00
Goober5000 4b2a2d747b array and iterator bounds 2025-05-17 17:14:26 -04:00
Goober5000 7702d53fd7 string length 2025-05-17 17:14:26 -04:00
Goober5000 3b51c890fc these lines are things we want to allow 2025-05-17 17:14:26 -04:00
Goober5000 298869e517 properly convert main hall 2025-05-17 00:27:00 -04:00
Goober5000 4422821ff5 avoid accessing variable outside of scope 2025-05-17 00:27:00 -04:00
Goober5000 9c2f080235 initialize fields 2025-05-17 00:27:00 -04:00
Goober5000 d5e3325bef fix unsigned check 2025-05-16 23:32:32 -04:00
Goober5000 85f7ccc083 fix use-after-move 2025-05-16 23:32:13 -04:00
wookieejedi 8102febb08 Extra Visual Indication for Scramble Missions (#6720)
* Extra Visual Indication for `Scramble` Missions

Currently, if a mission is set as scramble then there is no visual way for the player to see that the Ship Selection and Weapon Loadout screens are locked, instead the player has to click on the buttons and hear the fail sounds or assess that the hover states are not triggering. This PR adds a text line right below the words Weapons Loadout that states "Ships/Weapons Locked" (XSTR 749) if the mission is scramble thus the player can easily see this right away and not have to check the buttons on every mission.

Tested and works as expected. Happy to put behind a flag if desired.

* whitespace

* incorporate feedback
2025-05-15 07:42:54 -04:00
wookieejedi 4b7817e5ab Fix highlighting color discrepancy for player ship in loadout screen (#6716)
* Few Minor Visual Indicator Enhancements to Loadout

This PR adds a few visual indicator tune-ups to the loadout screens.

1.
Currently, if a mission is set as `scramble` then there is no visual way for the player to see that the Ship Selection and Weapon Loadout screens are locked, instead the player has to click on the buttons and hear the fail sounds or assess that the hover states are not triggering.

This PR adds a text line right below the words `Weapons Loadout` that states "Ships/Weapons Locked" (XSTR 749) if the mission is `scramble` thus the player can easily see this right away and not have to check the buttons on every mission.

2.
Currently there is a nice orange coloration of the player ship icon in the Ship Selection wing loadout. This immediately shows the player which ship is theirs, but this usefulness does not translate to the Weapon Loadout screen.  The player must select another ship, besides the player ship, to have the player ship show up as orange.

This PR adds a bool `always_highlight_ply` which is specifically for the weapon `draw_wing_block` function when called as as part of the weapon loadout routine.

Both PRs are tested and work as expected. I currently have these PRs on without a flag, but if folks really do not want the PRs or would prefer them to be behind a flag, then I'm happy to do that, too.

* separate PRs
2025-05-15 07:42:34 -04:00