Commit Graph
1979 Commits
Author SHA1 Message Date
asarium 059e149590 Add dynamic action programming system
This system adds the code necessary for letting content creators specify
complex events by specifying a simple, program-like sequence of
operations that will be executed by the engine when a certain event is
triggered.
2021-01-05 18:26:10 +01:00
JohnAFernandez 8a81b18200 Keep fred from adding extra texture replacements to mission file 2021-01-02 01:37:37 -05:00
JohnAFernandez 521430fb9a Fix the support ship refilling ships to the wrong secondary capacity 2020-12-30 23:37:49 -05:00
Goober5000 8ef92c944d move gun_submodel_rotation from model to instance
Since instance-specific fields have been moved to polymodel_instance and submodel_instance, the gun_submodel_rotation field should also be moved.  This is also reworked a bit to keeping track of the rotation via the normal submodel instance angles.

This removes an unnecessary look_at field as well.
2020-12-23 00:45:31 -05:00
Goober5000 c18b1b63fd another model to model_instance refactor
Remove arc information from bsp_info and move it to submodel_instance.  Add a model instance to each debris chunk to keep track of it.
2020-12-20 14:51:05 -05:00
Goober5000 efe2d8476a 1) it's no longer necessary to call model_clear_instance before collision detection
2) call appropriate functions in collision detection because models might have instances
2020-12-18 13:46:49 -05:00
Goober5000 88c1d8a02a consolidate model instance code 2020-12-18 01:32:43 -05:00
Goober5000 7c92dd9f7c hoist model_get and model_get_instance out of a bunch of functions 2020-12-16 11:55:31 -05:00
Goober5000 c457f24d67 fix two more crashes 2020-12-15 19:46:12 -05:00
Goober5000 4ddc2565d5 fix a CTD with the no-pain-flash flag
There were null checks for `Player_obj`, but whoever added the `No_pain_flash` flag bypassed them by dereferencing `Player_obj` in the top-level if() block.  This caused a crash when self-destructing ships in the F3 lab.

This PR moves the `Player_obj` check to the top-level block (which is also an implicit null check because `ship_objp` is not null by this point) which fixes the crash and also is more efficient.
2020-12-15 19:16:42 -05:00
Goober5000 b40833d76e CI fixes 2020-12-08 19:54:31 -05:00
Goober5000 b803b9f15c consolidate functions 2020-12-08 19:54:31 -05:00
Goober5000 b90fc2b3ad numeric to boolean 2020-12-08 19:54:31 -05:00
Goober5000 f0799d245e tweaks 2020-12-08 19:54:24 -05:00
Goober5000 3fdc5a3784 cur_turn_rate -> current_turn_rate 2020-12-08 12:33:29 -05:00
Goober5000 fa0043f93b Merge pull request #2962 from SelfGamer/master
Add flag for AI to only fire Turrets / Secondaries when having clear Line of Sight
2020-12-07 17:47:32 -05:00
Birk Magnussen d72ea2c213 Add require exact los weapon flag 2020-12-06 04:05:40 +09:00
Goober5000 7eb18dddca clean up the second half, and remove an unused field 2020-12-03 21:19:53 -05:00
Asteroth 20efcf04a1 Merge pull request #2924 from Baezon/big-ship-deathroll
Death roll for big ships and a death roll multiplier
2020-11-26 18:26:46 -05:00
Asteroth 93ea987a34 Merge pull request #2925 from Baezon/ship-split
Separate ship splitting explosions from propagating explosions
2020-11-26 18:26:32 -05:00
Goober5000 b0ef7859c8 Merge pull request #2915 from JohnAFernandez/Warn-About-Invalid-Squadron-Wings
Warn about and correct invalid squadron wings in multi
2020-11-26 00:14:51 -05:00
Baezon 1f7aca8cff cast to bool 2020-11-25 23:00:34 -05:00
Asteroth c0f7289880 Merge pull request #2927 from Baezon/no-docking-jitter
Reduce docking 'jitter'
2020-11-25 22:54:01 -05:00
Baezon d367f2312b reduce docking jitter 2020-11-25 15:19:37 -05:00
Baezon 79524e46d1 separate ship splitting explosions 2020-11-24 02:27:47 -05:00
Baezon 3fde7bb076 cat forget clone and move 2020-11-24 02:04:24 -05:00
Baezon d534c68f54 big ship death roll and deathroll multiplier 2020-11-24 00:04:29 -05:00
Goober5000 d31003afea Merge pull request #2909 from PhantomHoover/feature/tune-transfer
Add ships.tbl flags to tune most aspects of ETS behaviour
2020-11-23 13:14:34 -05:00
Phantom Hoover 0151f1b5a8 Add ships.tbl flags to tune most aspects of ETS behaviour. 2020-11-21 23:07:21 +00:00
JohnAFernandez 2c43b7b506 Allow mission loading to circumvent multi Squadron bug 2020-11-21 09:54:08 -05:00
Baezon 69c86c4733 more travis 2020-11-20 12:02:13 -05:00
Baezon 9959d8a671 travis 2020-11-20 12:02:13 -05:00
Baezon aa8849f4e5 improved warp collision 2020-11-20 12:02:13 -05:00
JohnAFernandez 383c821968 Remove the unused shield_integrity field (#2898) 2020-11-17 01:22:12 -05:00
JohnAFernandez 398985f97c Merge pull request #2880 from Baezon/afterburner-enhancements
Add some new afterburner options
2020-11-15 09:04:49 -05:00
Baezon 89c1610ad7 better names 2020-11-12 00:21:46 -05:00
Baezon 048ee13269 implement trail "spread" 2020-11-11 16:56:22 -05:00
Baezon a4a281a0b8 move setting of flag 2020-11-10 02:41:58 -05:00
Baezon 23f8062346 add some afterburner fields 2020-11-10 01:44:00 -05:00
Asteroth 5dbda7efd0 Merge pull request #2858 from Baezon/multi-beam-prep
Add beam parameter validation
2020-11-08 22:43:58 -05:00
Baezon 9034e4e043 revert and only do beam validation 2020-11-04 13:31:09 -05:00
JohnAFernandez f21b1a7ace Multiplayer Resimulation for Client Fired Linear Weapons (Rollback) (#2788)
* Multiplayer Dumbfire Rollback

This creates a packet that sends the relative position and orientation info for a primary or dumbfire missle shot.  The client creates this packet when firing those two types of weapons and sends it to the server.  The server goes back to the frame that the client fired the weapon and quicky resimulates all the frames in-between.

This includes collision detection, restoring positions, orientations and veloicties, but not subsystem orientations.

* Address Feedback

* allow clients to send subsystem info

* Check for object number not weapon number

* Readability Adjustment
2020-11-03 22:56:25 -05:00
MageKing17 b83f815dbb Don't perform automatic hash truncation before template-copying.
In commit 3b2af702f7, the hash truncation was changed so that instead of being part of the HUD, it's stored as the class's display name. However, this action was performed before `+Use Template:` was parsed, which would then overwrite the display name and clear the `Has_display_name` flag. I've moved it so that it now happens after the copy operation (and added a check for an existing display name, in case the template defines one). I use a new boolean variable to indicate that default display name creation needs to happen rather than duplicate that code.
2020-11-02 16:35:01 -08:00
JohnAFernandez 42e29a96dd Merge pull request #2853 from JohnAFernandez/Fix-AutoAim-In-Multi
Allow polish_position() to use any player's position in multi
2020-10-31 22:39:26 -04:00
JohnAFernandez eb7a956a1e Allow polish_position() to use any player's position in multi 2020-10-31 16:46:50 -04:00
Baezon 7add73f27f rename hard_target_bomb and only warn for not interceptable 2020-10-31 01:12:30 -04:00
Goober5000 2aed10ee7f Merge pull request #2839 from Goober5000/fix_lock_indicator
redo the locking animations for multilock
2020-10-28 21:17:08 -04:00
wookieejedi fea8086647 Merge pull request #2838 from Baezon/reset-burst-flag
Add "resets" burst flag
2020-10-28 15:54:05 -04:00
Goober5000 9eaa7bf024 redo the locking animations for multilock
The multilock patch did not handle `Lock_anim` in the best way, and handled `Lock_gauge` in a very bizarre way, despite the fact that they are two simple hud animations.  This changes the `lock_info` struct to track the correct `time_elapsed` value for both, and changes the locking code to use the values in the correct way.

Additionally, this properly loops the lock triangles on the FS1 lock indicator.  Strangely, even prior to the multilock merge it appears that the triangles wouldn't have animated more than a quarter turn.

Finally, this prevents the FS1 lock indicator from blinking, since in retail FS1 it didn't blink.

Tested with FSPort and no-mods.  Fixes #2826.
2020-10-27 02:55:36 -04:00
Baezon 3db3dade77 implement "resets" burst flag 2020-10-27 01:39:35 -04:00