Goober5000
e3ad6664e0
Cached subsystem indexing ( #4316 )
...
* add subsystem indexer and ensure that ship_get_indexed_subsys and ship_get_first_subsys are independent
* also add reverse lookup from subsys to index
* update indexer to accommodate subsystem pointers being changed
* use clearer function names, and fix the type of subsys_list_indexer
* add assertions
* address latest feedbcak
2022-06-05 08:44:54 -05:00
Goober5000
e473ff011c
add timestamp_since
...
Add `timestamp_since()` and modify a few places that use `timestamp_until()`.
2022-05-18 22:24:20 -04:00
Goober5000
7bece7a946
guard against negative turret_enemy_objnum
2022-05-12 01:50:09 -04:00
Goober5000
69e0f66d4b
fix up conditions for script hooks
...
For script hooks which use conditions, be more consistent about evaluating both objects involved, as well as evaluating the different types of objects.
Fixes #3874 .
2022-04-29 22:37:30 -04:00
JohnAFernandez
1396d44265
Basic Implementation for Attackable_if_no_collide ( #4174 )
...
A work-around for the default behavior where turrets will ignore ships that have no-collide set. This allows turrets to target such ships.
2022-04-19 16:54:04 -05:00
Goober5000
e2f63a2340
rename and document several model coordinate functions
2022-02-15 20:59:24 -05:00
wookieejedi
fef8959cff
Add AI to Fix Negative Turret Ammo ( #3913 )
...
* Add AI to Fix Negative Turret Ammo
Previously, turrets with ammo would end up firing one extra shot, resulting in a -1 ammo.
This was because of the check `ammo[bank_to_fire] >= 0`, in `aiturret.cpp`. This PR adds an AI flag to have the turret only fire if the ammo is greater than 0 (`ammo[bank_to_fire] > 0`), as opposed to greater than or equal to 0.
Tested and the flag fix works as expected.
* feedback
* set to on for target 22
2022-01-12 07:32:10 -05:00
BMagnu
79283d9002
Animation Rework: Phase 3 ( #3793 )
...
* Refactor submodel handling by animation code
* Add Animation Flags
* Add Codeowner for animations
* Add new Animation Table
* Time Fix
* Weapon Launched trigger + bugfixes
* cleanup rebase artifact
* Add WeaponFired triggers
* Table deprec
* Allow multiple animations on the same trigger
* Add Translation segment
* Integrate new Animation workflow
* Small Fixes
* Submodel not found safety
* Add Pause
* Also allow dockport name
* Update Animation SEXP/Scripting + fix change ship class issue
* Multi fix + disable old animation sexp
* Weapon Scripting Function
* Fix bugs and replace bind
* Add onspawn trigger type
* Fix issue on ship death
* Fix Absolute Rotation
* Fix erroneous application of animation, add random start phase
* Disable Translation
* Fix Clang
* Incorporate feedback
* Incorporate feedback 2
2021-12-10 14:44:13 +09:00
Asteroth
8161bdfb2f
Expose turret re-targeting delay ( #3803 )
...
* check for enemies every frame
* expose turret target recheck time
* fix
* more fix
2021-12-02 15:13:29 -05:00
Birk Magnussen
c4994c7fdd
Add forgotten negation
2021-10-17 22:56:53 +09:00
BMagnu
12be7576f7
Animation Overhaul: Phase 2 ( #3609 )
...
* Add Generic Rotation Segment
* SEXPd rotations work
* Fully replace old animation system
* Add sound segment
* Fixes
* Trigger Hangarbay doors for lone player without AI
* Address Warnings
* Fix Docking ANimations + some bugs
* Fix sound issue + docking bug
* fix bugs, add multi handling
* Change direction into enum class
* Address feedback
* Futher clean aicode
* Address feedback
* Add Multi packet constexprs
* Fix multi constexprs
* Clarify AIS_DOCK comments
* Address multi issues
* Clang somehow detects issues where there are none...
2021-10-06 08:50:58 +09:00
BMagnu
a6093dd8c4
Add ammoless secondaries ( #3589 )
...
* Add ammoless secondaries
* Macroify 'ammo>0 || no ammo' check
2021-10-02 04:40:03 +09:00
Asteroth
13b922207b
comment cleanup
2021-09-03 00:14:58 -04:00
Asteroth
2738919cc9
fix turrets not resetting sometimes
2021-09-01 14:29:57 -04:00
Asteroth
cd4c6e483a
add a few mor cases for checking targeting restrictions ( #3605 )
2021-08-20 16:11:18 -04:00
Baezon
5b316a562d
clarifying comments
2021-07-14 00:22:46 -04:00
Baezon
3481032ae5
add num_firepoints_burst_shots flag
2021-07-08 17:08:56 -04:00
PhantomHoover
84b25b52d7
Be smarter about when we try to run scripting hooks: don't even bother trying if no scripts are even registered to run on them. ( #3538 )
2021-07-02 22:50:53 -04:00
Asteroth
814d44c986
Add weapon optimum range for AI fighters ( #3457 )
...
* add weapon optimum range
* review tweaks
2021-06-20 20:52:02 -04:00
Asteroth
e4661b00b1
Add Type 5 beams ( #2817 )
...
* wip
* basics are working
* turret case is handled
* better fighter beam handling
* missing commit?
* handle missile spawn
* clean up, commenting and ssb handling
* random in sphere and per burst rot counts for "share random" flag
* clean up, clarity and comments
* accidental whitespace changes
* bugfix
* NULL -> nullptr
* more efficiency/clarity
* review tweaks and bugfixes
2021-06-09 18:53:53 -04:00
Joshua Glatt
144d484c85
Replace rand() calls with a Random class ( #3332 )
2021-05-04 18:26:06 -07:00
Baezon
03a3fbdc1c
fix fov edge checks
2021-04-24 17:10:20 -04:00
Baezon
b57573c439
remove unecessary ship-get-subsys
2021-04-06 02:24:05 -04:00
Baezon
5e10fccdbf
Merge remote-tracking branch 'upstream/master' into turret-alt-math-fix
2021-03-27 21:12:30 -04:00
Baezon
804a222041
unused variable
2021-03-19 19:44:11 -04:00
Baezon
1ca60e1d2f
fix fov_edge_checks
2021-03-19 11:48:15 -04:00
Baezon
eb538ffba8
update turret_alt_math for moving subsystems
2021-03-19 02:13:20 -04:00
Goober5000
d716433848
Merge pull request #3300 from Baezon/fix-flak-substitute-assert
...
Fix assert with combining flak and non-flak using substitute
2021-03-17 00:34:14 -04:00
Asteroth
95235b353b
Merge pull request #2885 from Baezon/expose-huge-small-targeting
...
Expose ability to be targeted by 'huge' and 'small only' weapons
2021-03-15 22:32:22 -04:00
Baezon
ce1907c52a
flak should use normal mflash methods
2021-03-15 18:30:47 -04:00
Goober5000
5bb9f427b4
a few turret fixes
...
This correctly calculates the turret position from the center (zero position) of its submodel instead of using the offset from the main model.
This patches a few more parts of the code and also adds a missing locale argument.
2021-03-09 22:39:13 -05:00
Goober5000
d75b0f4b4b
additional minor cleanup
2021-03-06 20:03:59 -05:00
Goober5000
c4374d11a9
replace world_to_turret_matrix
2021-03-01 00:02:44 -05:00
Goober5000
3b1aac26e8
remove most of turret_matrix stuff
2021-02-28 23:41:56 -05:00
Goober5000
d4c6c3e145
turret_norm should now be calculated properly
2021-02-28 21:48:15 -05:00
Baezon
789f78aefd
Merge remote-tracking branch 'upstream/master' into expose-huge-small-targeting
2021-02-25 23:36:59 -05:00
Baezon
ec323a3960
combine flags
2021-02-25 23:15:29 -05:00
Baezon
70265c6f63
bugfix turret inaccuracy
2021-02-20 23:41:30 -05:00
Baezon
592855c35d
NULL -> nullptr
2021-02-16 02:27:11 -05:00
Baezon
028e40a43b
add turret-set-inaccuracy sexp
2021-02-16 02:21:54 -05:00
Baezon
e78fccc294
unused variables
2021-02-02 20:49:33 -05:00
Baezon
54f1a86a5a
clena up and finalization of subsys targeting
2021-02-02 20:06:40 -05:00
Baezon
8c387d7507
tentative subsys targeting
2021-02-02 11:31:05 -05:00
Baezon
476e916945
Merge remote-tracking branch 'upstream/master' into turret-forced-target
2021-02-01 22:12:50 -05:00
Baezon
d9a7e786b5
Merge remote-tracking branch 'upstream/master' into burst-seed
2021-01-15 12:52:25 -05:00
Fabian Woltermann
a5de6f8570
Merge pull request #3019 from SelfGamer/exactlos_update
...
Changed require exact los to track from the exact firing point instead of center
2020-12-28 10:16:40 +01:00
Goober5000
21f6591be2
some refactor and cleanup
...
1) modify and prune some turret function definitions
2) clean up KeldorKatarn's submodel orientation parsing
2020-12-24 22:50:49 -05:00
Birk Magnussen
32c63963ea
Changed require exact los to track from the exact firing point instead of center
2020-12-25 00:49:09 +09: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