Commit Graph
469 Commits
Author SHA1 Message Date
Asteroth 835285248e No overlapping turret sounds (#5295)
* prevent overlapping turret sounds

* whitespace

* fixes
2023-03-30 21:16:32 -04:00
BMagnu 272d6261c4 Generic Lua Multiplayer RPC (#4835)
* Add automatic lua obj serialization function dispatch

* Implement fundamental and object de/serialization

* Proper default case for package deserialization

* Add No Multi func

* Add Serialization part

* Fix max encoding size for userdata

* Implement exception handling

* Start Implementing lua RPC

* Prepare waitAsync for RPC

* Add packet order enforcing and forwarding

* Add RPC registry

* Make RPCs callable

* Add waitRPC

* Add serializers

* Fix GCC error

* Explicitly specify lua_net_exception

* Fix Warnings

* Replace Seriliaze fundamental with cross-platform data types

* Appease Clang

* Prevent serialization CTD on invalid objects

* Actually use the temporaries assigned

* Fix OSWPT shadow

* Fix table deserialize order

* Incorporate Feedback

* Fix Warnigs

* ix WArnings 2

* Add sanity checks for OSWPT wing serialization

* Multi Bump

* Forgot we have american-style dates there
2023-03-28 03:07:03 +09:00
mjn-mixael dceea0d7a5 don't need this 2023-03-23 13:17:51 -05:00
mjn-mixael d76c733d66 nothing to see here 2023-03-23 12:23:03 -05:00
mjn-mixael c92d383b69 scpui api for medals access 2023-03-23 11:19:46 -05:00
mjn-mixael 242c7184b8 Merge branch 'master' into scpui_hotkeys
# Conflicts:
#	code/scripting/api/libs/ui.cpp
2023-03-22 09:14:21 -05:00
mjn-mixael 88166d58bc Merge branch 'master' into scpui_hotkeys
# Conflicts:
#	code/scripting/api/libs/ui.cpp
#	code/source_groups.cmake
2023-03-22 08:33:11 -05:00
mjn-mixael 51c55550f0 Merge branch 'master' into scpui_game_help
# Conflicts:
#	code/scripting/api/libs/ui.cpp
2023-03-22 08:25:33 -05:00
Mike Nelson fbf0db09a7 Scpui Mission Log (#5242)
* SCPUI access to scrollback items (mission event log and message log)

* copy paste error

* check the objective flags instead of the action flags now

* rename actions -> segments
2023-03-21 20:03:35 -04:00
mjn-mixael 08471e8749 cleanup includes 2023-03-09 16:41:18 -06:00
mjn-mixael 465190b154 fix some issues based on testing 2023-03-09 16:38:31 -06:00
mjn-mixael 3c498e65ec get hotkeys by line 2023-03-09 15:56:30 -06:00
mjn-mixael 6d142428c3 remove a dumb 2023-03-09 10:14:04 -06:00
mjn-mixael 92f140c080 add functions 2023-03-09 10:03:37 -06:00
mjn-mixael e105b57a26 read access to mission hotkeys for scpui 2023-03-08 14:23:33 -06:00
mjn-mixael 55a89dc13d clarify documentation 2023-03-07 13:27:00 -06:00
mjn-mixael 1d9fa9719c some cleanup 2023-03-06 18:26:19 -06:00
mjn-mixael bc2218a87b use a table 2023-03-06 18:22:33 -06:00
mjn-mixael b2e56dc408 Initial setup of lua access to help sections 2023-03-06 17:33:09 -06:00
Fabian Woltermann c8fd2af450 Merge pull request #5090 from MjnMixael/scpui_closeup_icons
SCPUI methods required for handling closeup briefing icon stuff
2023-03-06 16:36:44 +01:00
Fabian Woltermann b373ad2df4 Merge pull request #5036 from MjnMixael/lua_access_to_enums
allow scripts to read LuaEnums and add LuaEnums
2023-02-23 14:46:48 +01:00
Fabian Woltermann 9190d90536 Merge pull request #5158 from MjnMixael/lua_goals_virtvars
Add virtvars for goal satisfaction and score
2023-02-23 14:33:54 +01:00
Goober5000 5b175673ed add initializers to mc_info
This initializes `mc_info` to the correct values when it is constructed, removing the need for `mc_info_init`.

This PR also fixes a group of incorrectly inverted assignments in beam.cpp.
2023-02-21 19:09:10 -05:00
mjn-mixael ed78597635 check for duplicate enum items 2023-02-21 08:39:47 -06:00
mjn-mixael af41185acb Merge branch 'master' into lua_access_to_enums 2023-02-21 08:00:02 -06:00
Goober5000 a20dd3bea9 Merge pull request #5174 from MjnMixael/get_audiostream_duration
get audiostream duration in float seconds
2023-02-19 15:46:30 -05:00
Fabian Woltermann 2de1441bf1 Merge pull request #5192 from MjnMixael/cutscene_custom_data
Cutscene custom data
2023-02-19 17:20:48 +01:00
Asteroth db5a37c178 add num vertices script func 2023-02-17 23:23:24 -05:00
Asteroth b68e424213 refactor getting random vertices and script func 2023-02-17 23:03:57 -05:00
mjn-mixael bbb7539fb6 cutscene custom data 2023-02-16 08:50:03 -06:00
Goober5000 fe4d93393b Merge pull request #5122 from Goober5000/parse_object_colgroup
make collision_group_id accessible to parse objects
2023-02-14 18:45:06 -05:00
MjnMixael f29c48965e fictionviewer localization (#5012)
* fictionviewer localization

* Move this to it's own method

* C_str
2023-02-14 17:26:36 +09:00
mjn-mixael 041a390660 no team, dummy 2023-02-11 14:26:39 -06:00
mjn-mixael 13b7f626a9 appease etp 2023-02-10 09:30:38 -06:00
wookieejedi 9403f17fbb Adds safety checks to scripting orders with waypoints (#5173)
* Adds safety checks to scripting orders with waypoints

Turns out setting a waypoint order then trying to get to target of that order in the same frame triggers a crash in the scripting API for ship orders (`order.cpp` line 295). This was due to invalid lookups which lacked safety checks.

This PR adds those safety checks. Now, if this situation is encountered, it leaves `objnum` at -1 and thus returns an object for which `isValid` is false.

Fix is tested and works as expected. Also fixes #5172

* appease clang

* cleanup thanks to Goober

* clang again

* forgot to re-add the nullptr

* remove redundant checks
2023-02-07 15:57:39 -05:00
mjn-mixael 289266d959 get audiostream duration in milliseconds 2023-02-07 13:18:53 -06:00
mjn-mixael a568f514a3 add virtvars for goal satisfaction and score 2023-01-30 13:59:31 -06:00
Goober5000 df8268368a make collision_group_id accessible to parse objects
Add collision groups to parse objects so they can be set before arrival via script.
2023-01-21 18:10:51 -05:00
mjn-mixael c6a1639a82 scpui methods required for handling closeup briefing icon stuff 2023-01-07 01:48:39 -06:00
Goober5000 9ce7748c20 Merge pull request #5039 from Goober5000/object_iteration_fixes
more robust object iteration
2023-01-03 19:03:22 -05:00
Goober5000 85bb14898f Merge pull request #5040 from Goober5000/ship_obj_list_iteration
add should-be-dead checks for all ship iterations
2022-12-26 22:28:00 -05:00
MjnMixael a3bbf13da6 prevent access to goals outside the vector (#5044)
prevent access to goals outside the vector
2022-12-24 21:12:56 -05:00
JohnAFernandez 10d3bdda06 Merge pull request #5041 from MjnMixael/consolidate_tech_rendering
consolidation of tech rendering methods
2022-12-24 11:59:12 -05:00
Goober5000 46293ad0fe add should-be-dead checks for all ship iterations
When iterating through `Ship_obj_list`, check the `Should_be_dead` flag before using the object.  This fixes #4990 and adds defense-in-depth checks to guard against similar errors elsewhere.

I considered moving the `Ship_obj_list` removal from `obj_delete` to `ship_cleanup`, but decided it would be prudent to avoid fundamental changes to lifecycle management.
2022-12-23 00:51:31 -05:00
mjn-mixael a662f8168c consolidation of tech rendering methods 2022-12-21 20:45:40 -06:00
Goober5000 c2b93549a2 more robust object iteration
When iterating through various object collections, check for the should-be-dead flag to avoid returning objects that are on the verge of being deleted.

Separately, this adds the `isExpiring` function to check for should-be-dead objects.

This PR also makes object iteration consistent across all object types, both to reduce code duplication and to ensure that the length and iteration are done using the same algorithm.  Furthermore, if the number of should-be-dead objects is nonzero, the Lua array count for that frame will be different from the internal array count for that frame.

Fixes #5034.
2022-12-21 19:51:02 -05:00
mjn-mixael 3b3a45d2d8 fix documentation 2022-12-20 16:07:52 -06:00
mjn-mixael 9f1c00c581 allow scripts to read LuaEnums and add LuaEnums 2022-12-20 15:53:40 -06:00
Asteroth 0fb6b2ae0d Update 22.4 version references to 23.0 (#5025)
* update references to 22.4 to 23.0

* fix a few more version references
2022-12-21 00:16:51 +09:00
mjn-mixael 84962ff33c Remove model instances after rendering 2022-12-16 09:39:11 -06:00