Commit Graph
1780 Commits
Author SHA1 Message Date
m!m 31fdcfdfbb Merge pull request #806 from The-E/ship_weapon_flags
Converts the flags of ship_weapon to use the new flag system
2016-08-16 11:37:01 +02:00
Fabian Woltermann ed974844e4 Merge pull request #795 from asarium/cmakeMerge/freetrack
Add improved head tracking code
2016-08-16 11:33:06 +02:00
Fabian Woltermann 418c47e426 Merge with master 2016-08-16 09:58:09 +02:00
Fabian Woltermann 8248ac2516 Encapsulates the multi_sexp infrastructure in its own class (#833)
While working on #824, I found out that cleaning up that particular piece of code would not be doable cleanly without a refactor of the multi_sexp infrastructure. This is that refactor; it encapsulates the code of multi_sexp inside a class, an instance of which is then used to manage all the network stuff that sexps need to do.
2016-08-15 23:39:40 -07:00
MageKing17 8f4972aab9 Merge pull request #618 from Karajorma/RemoveOldSEXPPackets
Remove several packets used in multiplayer that can now be handled by…
2016-08-15 12:52:11 -07:00
asarium 0a7800d3ea And another batch of warning fixes 2016-08-15 18:55:35 +02:00
Fabian Woltermann 3160bdaa00 Changes ship exit flags to the new system 2016-08-14 16:48:11 +02:00
m!m af9cc94470 Merge pull request #807 from The-E/ship_subsys_flags
Changes the subsystem flags to the new flag system.
2016-08-14 16:24:28 +02:00
asarium 60afa1431a Add improved head tracking code
This adds an abstraction layer over the previous TrackIR implementation
and also adds an interface for the FreeTrack protocol.
2016-08-13 21:43:23 +02:00
Fabian Woltermann d7e6e5e152 Fixes an issue in flagsets where the sanity check for flagset::set was inverted. 2016-08-13 18:26:17 +02:00
Fabian Woltermann e1ba2256ed Changes the subsystem flags to the new flag system. 2016-08-13 13:52:51 +02:00
Fabian Woltermann 64153da3bd Converts the flags of ship_weapon to use the new flag system 2016-08-13 10:42:47 +02:00
Fabian Woltermann 770fce8de5 Bitset flags -- take 2 (#775)
This introduces a new mechanism for handling bit flags. Instead of using an int (or two, or three) to write bits into, this uses the std::bitset in a wrapper class that accepts an enum class as input. This means that certain classes of errors we've had a few of in the engine, where a coder used the wrong set of flags or checked them against the wrong variable (SF_STEALTH vs SIF_STEALTH, for example) can now be detected at a compiler level rather than not at all.
2016-08-12 16:13:50 -07:00
asarium a685642554 And another batch of 64-bit fixes 2016-08-12 09:42:55 +02:00
Fabian Woltermann 44c64d79f1 Removes old int type includes we carried around from when we supported old compilers 2016-08-11 22:57:49 +02:00
asarium 6c3da4b455 Fix even more 64-bit warnings 2016-08-11 10:08:11 +02:00
asarium 72a956e0ed Fix wrong handle pointer validation 2016-08-10 00:06:33 +02:00
asarium 188bf2bb1e Fix wrong initial value 2016-08-09 23:55:38 +02:00
m!m 22c0255277 Fix a bunch of 64-bit MSVC warnings (#709)
* Fix a bunch of 64-bit warnings

* Fix Linux compilation error

* Fix Mac error

* Fix some issues

* Fix more GCC warnings

* Remote unwanted change

* Remove accidentally readded file

* Fix wrong limit check

* Use BEAM_INDEX macro for getting beam object index

* Fix 32-bit warning

* Use BEAM_INDEX instead of pointer arithmetic
2016-08-09 11:08:54 -07:00
MageKing17 5cdcd2beac Make sure va_end() gets called in ade_get_args() (fix Coverity 1360950)
If a required argument is invalid, ade_get_args() returns 0, but it wasn't making sure va_end(vl) got called first, leading to potential memory corruption (probably not a huge issue in actual usage because most people try not to release scripts that throw errors).
2016-08-06 12:57:03 -07:00
Fabian Woltermann a570eca073 Merge pull request #739 from asarium/cmakeMerge/particlesystems
Add a new particle effect system
2016-08-04 12:46:33 +02:00
asarium bbeaaa1565 Add a new particle effect system
This is similar to the script I wrote a few years ago but unlike that
one, this solution doesn't kill the performance.
2016-08-04 11:08:39 +02:00
X3N0-Life-Form 625ea48d9e Expose IFF to lua
Adds the 'attacks' function to the 'team' lua type, which exposes the iff_x_attacks_y function to the lua engine.
2016-08-03 21:27:19 +02:00
Fabian Woltermann 34d88d9d99 Merge pull request #735 from asarium/fix/axemFonts
Fix some font scripting bugs reported by Axem
2016-08-03 11:44:55 +02:00
asarium 5d14899808 Fix const correctness in lua.cpp/.h 2016-08-03 10:53:23 +02:00
asarium 63f7f04502 Add error message for wrong font index 2016-08-03 10:27:22 +02:00
z64555 33ae17f00b Merge pull request #671 from asarium/feature/joystickAPI
Add improved joystick API
2016-08-03 02:21:43 -05:00
asarium f91c681ee1 Add improved joystick API
This API allows to handle events from multiple joysticks but currently
only the events from the configured joystick are used.
2016-08-02 20:08:21 +02:00
asarium 2e90049eba Fix off-by-one error in Lua font API 2016-08-02 19:39:13 +02:00
Fabian Woltermann 9bfc0be819 Merge pull request #696 from asarium/cmakeMerge/memory
Add new memory tracking subsystem
2016-08-02 12:17:56 +02:00
asarium 16be3b7cc5 Add support for TrueType fonts
This allows to use standard TrueType Fonts for text rendering in FSO. It uses the NanoVG library which provides the ability of drawing 2D shapes. This library is used for most 2D operations now and can also be used directly by using the PathRenderer class.
2016-08-02 10:57:28 +02:00
asarium 7b352e511c Add new memory tracking subsystem
This expands the existing system which only worked on Windows to all
supported platforms.

If the MSVC debug runtime is not present then its behavior is emulated
by adding a header to each allocated memory block.
2016-07-29 11:02:45 +02:00
Fabian Woltermann a3c674b1f1 Merge pull request #680 from asarium/cmake_/pr
Move build system to CMake
2016-07-27 15:23:16 +02:00
asarium 1bcd5400d3 Move build system to CMake 2016-07-22 12:07:19 +02:00
MageKing17 f7591078b9 Change collisionInfo from an mc_info object to an mc_info* pointer.
This seems preferable to storing an entire mc_info object on every weapon, when the vast majority of projectiles (by the very nature of the fact that they still exist) won't have collided with anything.

On the other hand, I'm not wild about allocating and freeing memory every time a weapon collides with a ship or debris. If anyone has a better solution, I'm all ears.
2016-07-21 14:44:24 -07:00
asarium 71a1f6c307 Fix Visual Studio warnings
The only major change is that all bpp variables in bmpman have been converted into ints. Before it was a mix of ubyte and int.
2016-07-20 13:49:41 +02:00
asarium aa639881aa Merge branch 'master' into antipodes_/sync 2016-07-16 13:48:12 +02:00
niffiwan 8162abc256 Allow apng's to not be cached
Main use case is headanis where only one is played at a time and
caching the frames merely increases memory use & fragmentation, leading
to malloc errors with heavy apng use
2016-07-09 20:04:16 +10:00
asarium a6df7eef35 Merge branch 'master' into antipodes_/sync
The APNG changes required some additional work. A cursor now owns the
bitmap handle that will be used for the cursor. This is required in
order to support variable FPS cursors.
2016-07-05 12:09:22 +02:00
m!m 76ffc26680 Merge pull request #537 from niffiwan/apng_pr
APNG support
2016-07-04 23:34:49 +02:00
asarium cd2a692150 Merge branch 'master' into antipodes_/sync 2016-07-04 11:15:40 +02:00
niffiwan 1d28184ce6 Merge pull request #442 from asarium/antipodes_/luaMouse
Improve CursorManager
2016-06-18 12:53:16 +10:00
asarium 371c49724e Turn invalid file error into warning 2016-06-16 19:49:34 +02:00
Karajorma bcf007376d Remove several packets used in multiplayer that can now be handled by the SEXP packet system instead. 2016-06-02 12:20:07 +08:00
niffiwan d3d026651e Add __gc lua cleanup function
Per m!m review
2016-05-10 19:42:22 +10:00
niffiwan 7af57209e1 Add LUA support for streaming anims 2016-05-10 19:42:22 +10:00
niffiwan e9e49f5276 Fixes per m|m's review
Use unique_ptr for safer pointer management
Simplify frame delay calcs when looping
Ensure animated cursor times don't lose precision
Switch Error to an Assertion
Fix LUA documentation formatting
2016-05-10 19:42:21 +10:00
niffiwan 375a251334 Complete apng feature
Handle total_time directly requested from bm_load_animation
Make generic_anims request total_time directly
Move png-vs-apng check to apng class
Remove redundancy in apng exception messages
Update comments
2016-05-10 19:42:21 +10:00
niffiwan 87770aad8f Add total_time output param to bm_load_animation
Also convert int to bool, and replace NULL with nullptr
2016-05-10 19:42:20 +10:00
niffiwan 0b20b15c2c Fix issues found by Axem
Fix silly issue preventing getFrame() from working
Remove infinite loop when calculating frame num
Convert more animations to use new frame calc function
2016-05-10 19:42:20 +10:00