Commit Graph
2708 Commits
Author SHA1 Message Date
MjnMixael aaee1e5a32 enhance handling of motion debris (#5022)
* enhance handling of motion debris

* dunno what i was thinking here

* address feedback

* require all four bitmaps to be defined in new parsing method

* address feedback
2023-02-15 17:13:48 +09:00
MjnMixael ce274209c1 adds hudgage and event to the valid types of a Lua Sexp parameter (#5018) 2023-02-15 17:13:38 +09: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
Goober5000 60e5ba9541 Merge pull request #5139 from MjnMixael/has_armor_sexp
has-armor-type sexp
2023-02-12 15:40:53 -05:00
Goober5000 eaa063ba65 Merge pull request #5152 from Goober5000/mission_versioning
add versioning support to missions
2023-02-11 16:19:33 -05:00
Goober5000 0d75790a6a Merge pull request #5138 from MjnMixael/force_emp_sexp
hud-force-emp-effect sexp
2023-02-11 15:36:48 -05:00
Goober5000 85e11ecd6d Merge pull request #5096 from MjnMixael/opf_turret_type
Implement opf_turret_type
2023-02-11 15:36:35 -05:00
Goober5000 3651239a6b Merge pull request #5010 from Goober5000/more_category_updates
more category updates
2023-02-11 15:33:28 -05:00
Goober5000 3c723c9ea9 add versioning support to missions
This finally enables the `$Version:` field in FreeSpace missions, which has been present ever since the beginning of FS1's development but has never been used for its intended purpose.  This field now stores the version of FSO that is required to run the mission.  If the version of the engine is not sufficient to run the version of the mission, then a) the mission is hidden from the mission listing, or b) a friendly notification is displayed if the mission is loaded anyway (for example, through a campaign).  Furthermore, FRED will notify the user if the mission's version is migrated from any version other than the legacy 0.10.

It will be the responsibility of coders who modify the mission format to also update the `MISSION_VERSION` constant with the appropriate major/minor/build/revision of the format change.
2023-01-28 18:01:51 -05:00
mjn-mixael 6162c475a0 float 2023-01-26 08:34:34 -06:00
mjn-mixael 9419f24184 warning 2023-01-26 08:30:26 -06:00
mjn-mixael 236b648b11 address feedback 2023-01-25 08:43:11 -06:00
mjn-mixael 414c630d04 address feedback 2023-01-25 08:31:36 -06:00
mjn-mixael d7bbecfa16 has-armor-type sexp 2023-01-24 11:20:25 -06:00
mjn-mixael d2e1e2b5de hud-force-emp-effect sexp 2023-01-23 21:50:36 -06:00
Asteroth 3047a226a3 Better account for runtime gravity changes (#5130)
* better account for changing gravity

* use `obj_used_list`

* check should_be_dead
2023-01-22 14:40:13 -05:00
Goober5000 11f2635abd add parse object collision group to sexps 2023-01-21 18:53:40 -05:00
Goober5000 add6a60439 Merge pull request #5129 from MjnMixael/more_asteroid_sexp_fixes
Move these checks into asteroid.cpp
2023-01-20 21:26:50 -05:00
Goober5000 5c8806d040 Merge pull request #5127 from Goober5000/dont_blast_nocollide
don't blast no-collide objects
2023-01-19 21:38:57 -05:00
mjn-mixael 798e47409a Move these checkes into asteroid.cpp 2023-01-18 16:24:48 -06:00
Goober5000 f8acd4f898 don't blast no-collide objects
In the same way that navbuoys aren't blasted by explosions, no-collide objects shouldn't be blasted either.

Fixes #5068.
2023-01-18 01:59:20 -05:00
mjn-mixael d8a052128e remove returns 2023-01-14 17:29:32 -06:00
mjn-mixael fa3631c9b9 make sure we have an argument 2023-01-14 17:24:43 -06:00
Fabian WoltermannandFabian Woltermann 264a44085d when checking sexp text strings, make sure to account for usages of <argument> (#5100)
Co-authored-by: Fabian Woltermann <[email protected]>
2023-01-10 21:33:39 +01:00
mjn-mixael 5ca15685ef Add missing help for ship-untag sexp 2023-01-09 11:37:41 -06:00
mjn-mixael 2a5b930941 implement opf_turret_type for turret-protect-ship and turret-unprotect-ship 2023-01-09 11:13:37 -06:00
Goober5000 d8fe4a11be Merge pull request #5042 from MjnMixael/asteroid_sexp_missed_items
A few missed items and fixes to the asteroid debris sexp
2023-01-05 21:11:00 -05:00
Goober5000 0d56bb9999 restore retail behavior of chaining to repeating events
To avoid changing behavior of existing mods, simulate the retail behavior unless the bugfix is explicitly activated.  The buggy retail behavior is to evaluate a chained event, not skip it, if the event is repeating, regardless of whether the repeat timestamp has elapsed.
2023-01-03 01:37:18 -05:00
Goober5000 07924f078a use Missile_obj_list or Asteroid_obj_list instead of obj_used_list where appropriate 2023-01-01 18:13:29 -05:00
Goober5000 6de5c96127 add should-be-dead checks for object iterations (#5050)
Follow-up to #5040.  This extends the checks to most iterations over `obj_used_list` in FSO.  There are a few exceptions such as `waypoint_add` and `waypoint_remove`, plus a few others.  And none of the object iterations in FRED have the guard because FRED does not use the same object life cycle as FSO.
2022-12-31 23:23:39 -05:00
Goober5000 5485efe904 fix wing cues and add some more error checks
Fixes #5045 by correctly initializing wing arrival and departure cues.  Follow-up to #4856.  Also adds a bit more SEXP error checking.
2022-12-27 01:33:53 -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 fc21e12dfd A few missed items and fixes to the asteroid debris sexp 2022-12-21 21:11:14 -06:00
Goober5000 87a051a933 Merge branch 'master' into more_category_updates 2022-12-18 01:31:47 -05:00
Goober5000 47564d1505 Merge pull request #5008 from MjnMixael/asteroid_sexp_error_checks
Add missing asteroid debris argument type error checking
2022-12-16 23:04:13 -05:00
mjn-mixael e0eb7ef3d6 this should have a more unique name 2022-12-14 22:49:41 -06:00
mjn-mixael 2909e8fa2b address feedback 2022-12-14 22:32:51 -06:00
mjn-mixael a47658b336 address feedback 2022-12-14 15:41:36 -06:00
mjn-mixael 42a88a9e3f Comment 2022-12-14 13:54:17 -06:00
mjn-mixael 174976d2bb Better global name 2022-12-14 13:52:50 -06:00
mjn-mixael 911639d1b0 Add missing asteroid debris argument type error checking 2022-12-14 13:46:40 -06:00
mjn-mixael 5366f235ca Allow custom Lua Enums 2022-12-14 13:45:14 -06:00
mjn-mixael 49b486a326 use enum for list types 2022-12-14 09:12:11 -06:00
Goober5000 d722f50f8b more category updates
1. Allow categories, not just subcategories, to be added by scripted SEXPs.
2. Allow subcategories in different categories to have the same name.
2022-12-13 21:16:26 -05:00
Goober5000 922be2ff36 Merge pull request #4999 from BMagnu/problematic_counter_lib
Remove problematic counter library
2022-12-13 13:52:52 -05:00
BMagnu af1f0eaeca Rework Script Conditions (#4960)
* add skeleton for hook condition API

* Begin Scripting Hook refactor

* Program Hook Conditions for current new-style hooks

* Replace more hooks

* Fully transition global hooks

* Convert legacy hooks pt. 1

* Convert legacy hooks pt. 2

* Convert legacy hooks pt. 3

* Post-conversion cleanup

* restore parsing

* Add Documentation and fix parsing

* Fixup engine ingame hook adding

* Fixup engine ingame hook adding again

* Fix warnings

* Fix GCC unqualified template base lookup

* unqualified lookup v2

* Virtual Destrcutors

* Fix Clang

* Fix ship objp hook condition shadow

* Remove global hook include in ship.h

* Incorporate Feedback

* Incorporate Feedback 2

* Add revision to inline version specififer
2022-12-14 03:51:27 +09:00
Birk Magnussen 6b3f99eafd comment for OP_NOT_AN_OP 2022-12-13 18:43:01 +01:00
Birk Magnussen cb008706a4 Tidy up comment 2022-12-13 18:37:08 +01:00
Birk Magnussen 9366963e42 Fix formatting 2022-12-13 18:32:27 +01:00
Birk Magnussen 7ed7b37f9a Replace enum in switch for readability purposes 2022-12-13 18:25:26 +01:00