Commit Graph
1789 Commits
Author SHA1 Message Date
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
Goober5000 9d0629f657 Merge pull request #5196 from MjnMixael/flag_sexp_descriptions
Flag sexp descriptions
2023-02-20 23:26:29 -05:00
Asteroth b7353b2027 Add turret-fired-since SEXP (#5061)
* add turret-fired-since

* update to new timestamp system

* unused variables
2023-02-20 22:10:49 +09:00
mjn-mixael 00995f5516 typos 2023-02-19 14:29:00 -06:00
Goober5000 42db9f2e7b Merge pull request #5169 from MjnMixael/countermeasure_cargo_size
Feature for countermeasures to respect cargo size
2023-02-19 15:06:17 -05:00
mjn-mixael 2ed504eb82 clarified descriptions 2023-02-19 10:48:48 -06:00
Fabian Woltermann 072fee459b Merge pull request #5199 from Baezon/refactor-submodel-rand-points
Add `GetVertex()` and `NumVertices()` script functions and clean up random submodel point retrieval a bit
2023-02-19 08:58:03 +01:00
MjnMixael 754c351498 per bank autoaim (#5074)
adds per-bank autoaim feature
2023-02-18 18:43:03 +01:00
Asteroth 6e25fbb50f unused variable 2023-02-17 23:55:22 -05:00
Asteroth b68e424213 refactor getting random vertices and script func 2023-02-17 23:03:57 -05:00
mjn-mixael badde3ad96 Let FRED display flag descriptions 2023-02-16 17:12:47 -06:00
MjnMixael 40807000ad Merge branch 'master' into countermeasure_cargo_size 2023-02-12 23:18:02 -06:00
Goober5000 09b6552908 rename thruster flags
`Roll_` and `Bank_` are synonyms, and the `Roll_` thruster flags should be `Yaw_` anyway, so rename them and rename their table strings.  This still checks the old table strings for compatibility.
2023-02-12 19:42:26 -05:00
Asteroth 05790db5e7 clean up 2023-02-12 18:47:02 -05:00
Asteroth d28833e92a fix thruster sounds and add flag 2023-02-12 15:55:23 -05:00
MjnMixael 09215672a1 override to set glowpoint bank to default off (#5091) 2023-02-12 09:54:23 -05:00
mjn-mixael 002ab4885e gate float divisions behind mod flag 2023-02-11 14:48:55 -06:00
mjn-mixael 4f36c6a781 feature for countermeasures to respect cargo size 2023-02-03 10:15:32 -06:00
BMagnu 605e89a01a Fix WeaponUsedConditions (#5165) 2023-02-03 06:23:48 +09:00
Goober5000 f083018628 Merge pull request #5107 from MjnMixael/better_verify_orders
some validity checks to order sending
2023-01-28 20:43:37 -05:00
Goober5000 543c7f220c Merge pull request #5144 from MjnMixael/fix_weapon_origin
If we're not drawing weapon models then skip all this
2023-01-26 20:34:02 -05:00
mjn-mixael fe787ade08 if we're not drawing weapon models then skip all this 2023-01-25 17:06:07 -06:00
mjn-mixael 9e1181b70f check if we have at least two linkable weapons 2023-01-23 09:04:15 -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 ddde9079c9 some validity checks to order sending 2023-01-13 15:48:28 -06:00
Goober5000 782980844b add checks to Missile_obj_list and Asteroid_obj_list 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
Asteroth ef721b3192 check for parse object 2022-12-29 03:27:38 -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
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
Asteroth ca7618c993 check for if a ship has a parse object first 2022-12-22 04:02:43 -05:00
Asteroth f464b30089 update regen rates and autoaim fov on ship class change (#5029) 2022-12-21 00:17:23 +09:00
Asteroth b0c6d81d89 ship_move_subsystems too 2022-12-13 15:38:21 -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
Goober5000 1e834010e0 fix crash in ship_close_cockpit_displays
This function can be called when `shipp` is null, so check for that.

Fixes #4991.
2022-12-10 21:37:28 -05:00
Goober5000 226e956fcc dynamic events and goals
Make events and goals dynamic in missions and campaigns.  When parsing, initialize all fields to their defaults.
2022-12-09 13:10:39 -05:00
BMagnu 57f529e902 Fix edge case bugs with moveables in combination with special polymodels being animated (#4981) 2022-12-07 20:43:36 +00:00
Goober5000 0211f44df9 Merge pull request #4973 from MjnMixael/fix_custom_data
Fix custom data when using tbms
2022-12-06 22:53:15 -05:00
Goober5000 0e80428d48 Merge pull request #4946 from MjnMixael/per_weapon_autoaim
per weapon auto aim feature
2022-12-06 22:52:14 -05:00
MjnMixael bc3da4fed7 custom colors for passive lightning (#4969)
* custom colors for passive lightning

* initialize member variables and apparently this can't be nullptr

* Small bugfix
2022-12-06 19:57:16 -05:00
mjn-mixael b3b349a2f0 three lines for this short comment is silly 2022-12-06 12:50:35 -06:00
mjn-mixael 2988aa8fc8 move @ removal up 2022-12-06 12:43:33 -06:00
mjn-mixael 4d84e4c2a0 Make sure custom_data is properly cleared or carried over when shipclass info is reset or cloned/moved 2022-12-06 09:48:33 -06:00
mjn-mixael 662d5f743a address feedback 2022-12-05 09:59:06 -06:00
BMagnu fb223c1dbe Properly init cockpit_model_instance to -1 (#4966) 2022-12-05 15:32:09 +00:00
BMagnu 5bb869953e Animate More Things (#4936)
* Add Cockpit AnimSet

* Add Skybox Animset

* Add cockpit model instanc

* Render ship cockpit with instance

* Finish scripting API

* Add moveables

* Fix Typo

* Fix moveable table value get

* Fix copy paste error

* Add Cockpit AnimSet

* Add Skybox Animset

* Add cockpit model instanc

* Render ship cockpit with instance

* Finish scripting API

* Add moveables

* Fix Typo

* Fix moveable table value get

* Fix copy paste error

* Add Animation Scripting Handle

* Add proper saving of skybox anim triggers

* Properly step non-obj animations

* Incorporate feedback

* Incorporate feedback

* Fix comparison
2022-12-05 10:00:29 +09:00
Goober5000 8f6e6e97f5 fix wing name matching
The logic designed to match Epsilon and Epsilon#clone would be tripped up by Pi and Pisces.  Tweak the string matching to handle this.

Fixes a bug reported on the forums: https://www.hard-light.net/forums/index.php?topic=98576.0
2022-12-04 14:06:56 -05:00
mjn-mixael 9e2aa0377f per weapon auto aim feature 2022-11-28 14:19:00 -06:00
Goober5000 35380e8e24 don't process turrets or subsystems when playing dead
In the submodel reorganization in commit 575c050da4, subobject movement was moved out of the AI pipeline, which inadvertently removed the play-dead check that prevents subsystem movement.  This broke a few missions such as Scroll's 'Thor's Hammer'.  This PR restores the check.

Fixes #4933.
2022-11-25 11:35:13 -05:00
wookieejedi 1c45a18d9b Add Option to allow weapons that hit player to place per-weapon sound (#4921)
* Add Option to allow weapons that hit player to place per-weapon sound

Weapons that lasers or missiles that hit the player also play a hard coded sound, which is not ideal when trying to give valuable audio feedback to player.

This PR allows modders to stop the behavior and have the weapon class impact sound specified in the weapons table play instead of the hard coded sounds.

Tested and works as expected.

* add per class shockwave and weapon sounds

* naming update
2022-11-24 17:03:05 +00:00