BMagnu
565047e93b
Implement a proper std::optional alternative ( #4619 )
...
* Add optional lib
* Replace modelreplace optionals
* Replace Animation Optional
* rework modelanimationdata constructors
2022-09-06 17:05:05 +09:00
Goober5000
662d71a57a
add model animation support, based on Lafiel's guidance
2022-08-27 13:10:05 -04:00
BMagnu
76be16f6b2
Fix Typo ( #4580 )
2022-08-21 23:31:04 +00:00
BMagnu
2557478d55
Allow changing Animation Instance speed ( #4572 )
...
* Allow changing animation speed
* Return nil from function
* address feedback
2022-08-22 03:14:34 +09:00
BMagnu
61197d4c12
Add SEXP to stop an animation after loop ( #4566 )
...
* Add Animation Instance Flags
* Add SEXP barebones
* Unify and simplify animation parsing
* Clean up animation calling and use new animationlist api
* Add missing break
2022-08-20 18:44:17 +09:00
Goober5000
798eecdadf
Merge pull request #4139 from BMagnu/anim_techroom
...
Fix techroom turret lookup and make animations more robust
2022-04-03 23:46:46 -04:00
BMagnu
e2504bd162
Add 'pause on reverse' animation flag ( #4084 )
2022-04-04 10:39:02 +09:00
Birk Magnussen
abfa4b8fb5
Make Animations more Robust and fix techroom turret lookup
2022-04-04 10:36:26 +09:00
Birk Magnussen
d13268e78d
Fix Moveable SEXP matching
2022-03-23 11:36:13 +09:00
BMagnu
2ca4616f37
Fix the Initial animations not properly setting prev_orient ( #4082 )
2022-03-19 11:47:32 -04:00
BMagnu and Goober5000
9ab7a4626a
Fix nested and animated submodel collisions ( #4065 )
...
* Calculate per-frame rotation axis
* function prototypes
* Add new submodel localization functions
* Fix collision detection for moving submodels
* Remove offending assert
* Add safeguard for stopped animations
* Fix last frame speed calc
* Fix childs with parent submodel rotations
* Fix Warnings
* Clang Bug Workaround
* clang tidy
* Incorporate Feedback
Co-authored-by: Goober5000 <[email protected] >
2022-03-09 23:49:11 +09:00
BMagnu
0b0f323091
Fixed incoherent case sensitivity for animation submodels ( #4047 )
2022-02-22 18:03:41 +00:00
Goober5000
39213b9d75
Merge pull request #3979 from Goober5000/model_translation_phase_1
...
refactoring in preparation for model translation
2022-01-30 13:47:59 -05:00
BMagnu
79be6bb32d
Fix edge case for turret lookup with template and display name ( #3981 )
2022-01-30 13:14:33 -05:00
BMagnu
cacb1baa50
Improve Animation SEXP usability ( #3976 )
...
* Make the new animation SEXP use proper field checking and add suggested entries
* Clarify the animation SEXP description text
2022-01-30 10:27:30 +09:00
Goober5000
97952d6b6c
refactoring in preparation for model translation
...
Mostly renaming of fields and functions, and moving some modelread sections into functions. This reorganization will put the code on a better footing for the model translation feature. No model translation code is included yet, and there should be no change in functionality.
2022-01-29 15:53:21 -05:00
Birk Magnussen
e58af85c03
Keep canonical_prev_orient correct
2022-01-29 11:21:20 +09:00
Birk Magnussen
adfc8e0db9
Log addition of Can_move flag
2022-01-29 11:18:52 +09:00
Birk Magnussen
e862c2775e
Tidy up
2022-01-28 16:34:39 +09:00
Birk Magnussen
3aa44671d5
Set can move flag for all submodels that have been requested by the animations
2022-01-28 16:30:27 +09:00
BMagnu
17bcaebd58
Add axis rotation Animation Segment ( #3966 )
...
* Add axis rotation segment
* Add axis rotation moveable
* Clang
* Fix clang tidy
2022-01-27 11:16:45 +09:00
BMagnu
21d4690ebb
Inverse Kinematics for Animations ( #3962 )
...
* Add FABRIK IK solver
* Add IK constraints
* Finish IK table entry
* Add IK Moveable and fix some edge cases
* Clang Fixes
* Implement feedback
2022-01-26 19:56:39 +09:00
BMagnu
1b118e9b5e
Fix lab animation triggers ( #3965 )
2022-01-26 16:08:31 +09:00
BMagnu
9352835a00
Fix reverse instant trigger edge case ( #3956 )
2022-01-24 21:46:47 +09:00
BMagnu
4e0cb87b0c
properly calc anim for instant ( #3928 )
2022-01-16 15:07:16 +09:00
BMagnu
dd7bd1fb72
Animation Rework, Phase 4: Moveables ( #3904 )
...
* Add C++11 std::any implementation
* Add basic moveable functionality
* Add rotation moveable
* Revise Segment Parsing Register
Because apparently, the linker and I disagree on which symbols should be discarded when linked into the final application...
* Fix small problems
* Address feedback
* Address feedback 2
2022-01-12 14:54:28 +09:00
BMagnu
1c19199df3
Animation Rework Phase 3, Turret fix ( #3877 )
...
* Change animation turret canonicalization to now correctly calculate the closest natual turret positon
* Add angle error to vm function for convenience
* Div by Zero safety for non IEEE compliant systems
* Incorporate style changes
2022-01-03 18:54:11 +00:00
BMagnu
9930d435a2
Animation Rework Phase 3 - Fixes for Multi ( #3846 )
...
* Switch Multimsg to use netsig for animations
* Unique-ify animation ID's
* Clang Tidy
* Implement first suggestions
* Implement suggestions 2
* Add get model instance safeguard
2021-12-25 03:01:13 +09: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
David Gibson
c3afeffe7f
Style fix
2021-11-20 19:59:09 -06:00
David Gibson
dba56a1fd9
guard against trying to animate non-existent submodels in more places.
2021-11-20 19:00:15 -06:00
BMagnu
0ba5754c30
Add nullptr safety for animations ( #3738 )
...
* Add nullptr safety
* Greatly simplify docking animation logic
* Fix warnings
* Address Feedback
2021-10-21 21:18:31 +00:00
David Gibson
2034a3e9e5
Protected against trying to animate non-existant submodels in at least one case
2021-10-16 21:18:28 -05: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
Birk Magnussen
aee9dc6910
Fixed bad stepAnimations call, added initial-type optimizations
2021-08-09 14:36:57 +09:00
Birk Magnussen
1187ebbc2c
GCC Warnings
2021-08-02 23:33:26 +09:00
Birk Magnussen
d92fab80ef
Find turrets by sip name (since index can change) and make pointers shared
2021-08-02 22:35:41 +09:00
Birk Magnussen
77a255af63
GCC Warnigns
2021-07-30 18:05:46 +09:00
Birk Magnussen
45c904c25e
Fixed memory issue and turret-specific animation handling cases
2021-07-30 17:08:24 +09:00
Birk Magnussen
7228244f0c
Add forced animation start mode
2021-07-29 20:46:37 +09:00
Birk Magnussen
f0f5679731
Fix flipped turret values
2021-07-29 20:21:01 +09:00
Birk Magnussen
5709e24e9a
save by PMI id not PMI*, rename 'time' variable
2021-07-23 13:17:11 +09:00
Birk Magnussen
b58b60b555
Fix Constructor Order
2021-07-23 03:31:06 +09:00
Birk Magnussen
3b0e02545e
Move Animations from ship* to pmi*
2021-07-23 03:12:54 +09:00
Birk Magnussen
c6b75d3561
Add forgotten Animation Instancing
2021-06-18 04:09:03 +09:00
Birk Magnussen
390f979b7c
Small parse improvement + english fixes
2021-06-16 13:51:55 +09:00
Birk Magnussen
bd6dae97a7
Fixed Code for GCC and C++11
2021-06-16 02:10:30 +09:00
Birk Magnussen
d0948e67e3
Tidy up some new code into separate functions
2021-06-15 13:27:08 +09:00
Birk Magnussen
a9e5505a7c
Added Comments, light refactoring
2021-06-11 13:39:55 +09:00
Birk Magnussen
fb657c081c
Turret fix
2021-06-09 16:04:59 +09:00