Commit Graph
29 Commits
Author SHA1 Message Date
Fabian Woltermann 7487fc3042 Address review comments 2020-06-23 17:44:52 +02:00
Fabian Woltermann ec494f0229 Change the model anim type enums to a enum class 2020-06-21 14:51:43 +02:00
asarium 8f4d51b14a Convert ade_get_args to variadic template based solution
This maintains the type information which can be used for enforce
const-correctness and also for implementing more advanced ways of
handling the type information.
2018-09-26 19:15:42 +02:00
asarium 0b4ca71eba Enable modernize-deprecated-headers 2018-04-25 11:12:41 +02:00
asarium 8f06e338a4 Add typesafe handle types and use it in game sound system
This adds a new class which allows to create type safe resource handle
types. At the moment, the engine uses ints pretty much everywhere for
providing handles to resources created by the specific subsystems. Since
all ints are the same to the C/C++ typesystem it is perfectly legal to
pass a sound handle to the graphics API as a buffer handle which will
obviously cause issues.

This adds a new type called "ID" which is a wrapper class for a generic
handle but with added type safety. An instance of this class cannot be
passed to a function expecting another type of handle which provided
compile-time type safety for these APIs.

As an initial test I converted the game sound handles to this new type.
I already found a bug in the mainhall system thanks to this new type.
The mainhall used the game sound handles as sound instance handles which
probably meant that that specific code never really worked right. I
removed the code since there was no better alternative for fixing it.
2018-04-22 16:22:45 +02:00
asarium f819db3ac5 More string const correctness fixes 2017-01-04 00:12:41 +01:00
Fabian Woltermann 1acfaa8157 Converts model subsystem flags 2016-08-19 14:59:15 +02:00
Echelon9 522eb962ff Fix a range of issue identified via clang warnings
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10860 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-05 10:38:08 +10:00
niffiwan 07dbfed088 Fix compile issue on Linux re: INT_MAX / <limits.h>
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10195 387891d4-d844-0410-90c0-e4c51a9137d3
2013-12-08 19:52:57 +10:00
zookeeper 7ff59d0559 Enabled fighterbay door animations to better define which bay path must be used or not used for the animation to trigger using +sub_type. Fixes the (undocumented) current numbering of fighterbay +sub_types to be 1-based instead of 0-based. Turns the SUBTYPE_CHECK macro to a proper function.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10194 387891d4-d844-0410-90c0-e4c51a9137d3
2013-12-08 19:52:57 +10:00
Goober5000 ed06a01897 restore r10051, this time allocating triggered_rotation instances when we need them
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10057 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-17 20:24:42 +10:00
The_E c0a3d69ed2 Revert revision 10051: If we're going to use a global vector to store animation info, we need to fill it (and the references to it) too.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10054 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-17 20:24:41 +10:00
Goober5000 d11c7ccc2f ship subsystems should reference an index in a global Triggered_rotations vector rather than maintaining their own class object, which wastes space
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10051 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-17 20:24:41 +10:00
Goober5000 6836199eeb ship_subsys is now a class
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10021 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-10 18:28:58 +10:00
Goober5000 0f1971c5aa change the ship struct to a class, and remove use of memcpy and memset for setting/copying the entire ship class
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9885 387891d4-d844-0410-90c0-e4c51a9137d3
2013-10-07 20:02:31 +10:00
Goober5000 2ee1b24b65 queued_animation uses a mess of memcpy and memset, so make sure it's a plain struct!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9818 387891d4-d844-0410-90c0-e4c51a9137d3
2013-09-26 18:51:35 +10:00
Goober5000 fe934190ac clarify that some structs should now be treated as classes change shockwave_create_info back to being a struct fix some missing shockwave_create_info initialization
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9817 387891d4-d844-0410-90c0-e4c51a9137d3
2013-09-26 18:51:35 +10:00
The_E 9cec60f23d Fix for Mantis 1596: Adds "turret-fired" animation trigger 2012-11-28 20:08:07 +00:00
Echelon9 3df38b912b Implement EModelAnimationPosition enum to more completely address boolean issue fixed in r8837 2012-05-29 10:27:52 +00:00
Goober5000 5e2d53fba5 coded for Mantis #2587 but not actually used... this can allow a series of animations to be pushed and then popped 2012-01-29 09:19:40 +00:00
Goober5000 c84812fbda herp a big derp 2012-01-29 02:58:29 +00:00
Goober5000 7d99d1016a update docking code some more
add code logic to (theoretically) set submodels instantly to initial or final positions
2012-01-28 02:51:42 +00:00
Goober5000 de6eb9460d upgrades to the docking system to incorporate docking animations -- incidentally, fixes Mantis #2581
also, remove DOCK_BACKUP_RETURN_VAL which never did anything even in retail
2012-01-23 23:27:06 +00:00
Echelon9 8138efbcf9 Documentation: Commentary for modelanim.cpp|h 2011-05-01 11:59:40 +00:00
The_E ebab2d44ff Adding patch for Mantis 2385. This adds a "+sub_name" option to the animation code, which comes after/replaces "+sub_type" for a few triggers, such as the "weapon fired" trigger. 2011-02-04 17:18:39 +00:00
Wanderer 23521c1e3b nuke's scripting and submodel animation changes 2009-08-22 06:32:11 +00:00
portej05 719825f80d The big CVS comment removal. This chops approx. 3.5mb off a full checkout.
I've tested this through compiling and through hand checking. 
Normalises line endings in ALL files to \n.
2009-06-20 08:08:20 +00:00
taylor 88693b7388 fix various compiler warnings 2008-03-29 06:30:20 +00:00
taylor 28d78bf454 updated/fixed modelanim code 2006-10-27 21:41:22 +00:00