Commit Graph
744 Commits
Author SHA1 Message Date
MageKing17 29087a3237 Merge pull request #1511 from asarium/build/gcc7Warnings
Fix new warnings generated by GCC 7
2017-11-20 12:20:30 -08:00
asarium 4f7b718167 Fix sprintf warnings by checking the return value 2017-11-17 12:52:16 +01:00
MageKing17 b1046b1c1c Window title overhaul.
FSO now allows the window title to be specified via game_settings.tbl, some never-used function arguments were pruned at the same time, and fred.rc now receives version information (for the About dialogue and the title bar) from a cmake-generated header, so the version numbers get filled in properly. Speaking of FRED's About dialogue, it now displays the copyright symbol properly.
2017-11-17 02:51:36 -08:00
Fabian Woltermann d8ccf84452 Merge pull request #1482 from asarium/cleanup/sexpSCPString
Use SCP_strings and SCP_vectors in SEXP code
2017-11-14 09:35:44 +01:00
asarium 0ff8a2c159 Add support for multiple sounds in one game sound entry
This adds support for specifying multiple sounds for a single game sound
entry. The engine then selects which sound will be played based on the
strategy provided by the game data. This required a few changes to some
of the game code since previously every game sound had exactly one sound
file attached to it. The most notable change is that it is no longer
possible to determine the exact duration a sound can have so instead the
new code computes the maximum duration a sound can have and uses that
where appropriate.

This also adds support for randomizing the pitch and volume of the sound
to provide a more varied experience even if only a single sound is used.

One possible issue that exists is that the "sequential" strategy only
works globally at the moment so if two sources use the same game sound
concurrently then the two sources will share the sequence of sounds
since there is no sound instance data at the moment. That can be added
in a future change but should not present a huge issue for most
use-cases.

Visual Studio on Appveyor somehow causes deprecation error on _our_
definition of vsprintf. I have no idea why these changes introduced this
warning but I won't debug Visual Studio compiler bugs that I can't
reproduce with my Visual Studio version so I just disabled those
warnings.
2017-10-17 10:57:22 +02:00
asarium 0522566790 Replace direct usages of Snds vector with a function call
This will make it easier to validate the used handles and is generally
better since it doesn't require a global sounds vector.
2017-10-09 15:02:29 +02:00
MageKing17 c890c0af1f Make shield impact sounds more intuitive.
Shield impact sounds now re-use the shield quadrant calculated by the collision code instead of naively recalculating based on global hitpos, allowing the hull impact sound to play if the shot pierces shields or was fired from within the shield mesh, and simplifying the relevant calculations in the process.
2017-10-03 09:06:34 -07:00
asarium 0d9fbd4725 Use SCP_strings and SCP_vectors in SEXP code
I split this from #1331 to make reviewing these two changesets easier.

These changes convert all usages of const char* to SCP_string in the
static SEXP arrays so that the dynamic SEXP system can use SCP_strings
instead of having to allocate the strings and then somehow figure out
which strings must be freed at the end of the program.

This also converts the SEXP arrays to vectors so that new SEXP operators
can be added at runtime later.
2017-09-14 11:11:52 +02:00
m!m 637a9621f1 Merge pull request #1436 from Goober5000/pr_922_followup
fix typo in AI flag conversion
2017-08-14 23:41:44 +02:00
Goober5000 70c5aa88f2 then again, we should really assert on both 2017-08-11 18:05:13 -04:00
Goober5000 1857f9b928 fix typo in AI flag conversion 2017-08-11 17:53:42 -04:00
asarium 0a53aff061 Clean up flagset handling of numeric values
This renames the functions exposed by flagset so that it's clear that
64-bit values are returned. This also cleans up usages of wrong format
specified when that value is printed which caused some issues in the
past.

This should also fix #1336.
2017-05-02 10:28:29 +02:00
asarium 07107ce9b2 Fix newly introduced format warnings 2017-03-15 19:34:11 +01:00
asarium 2a4795596f Add format string annotations to all printf style functions
This should help to catch most if not all printf mistakes since those
can then be caught by our CI.
2017-03-15 19:34:11 +01:00
Fabian Woltermann 2c4c337907 Removes the palette code entirely. 2017-02-01 18:57:52 +01:00
asarium 4a9f1a2d56 Fix the rest of the string conversion warnings 2017-01-05 00:15:01 +01:00
asarium 7195ec9856 A few more fixes... 2017-01-04 00:28:22 +01:00
asarium f819db3ac5 More string const correctness fixes 2017-01-04 00:12:41 +01:00
asarium 455ffd827a Fix unresolved linking errors 2017-01-02 19:06:59 +01:00
asarium 9a8bfc0217 More const correctness 2017-01-02 13:17:59 +01:00
asarium 1d3f2c1da8 Fix unused variable warning 2016-12-14 11:14:19 +01:00
jg18 2de73b50fe Fix double newlines in multi.log caused by ml_string()
Remove extra \n that was added in ml_string().
2016-12-13 23:50:12 -08:00
z64555 f4b455dd98 Replace apply_damage_to_shield() with shield_apply_damage().
Also remove a declaration of shield_get_max_quad() in object.h
2016-11-25 15:12:09 -06:00
z64555 b0d9c53688 Remove duplicate function get_max_shield_quad() 2016-11-25 15:07:37 -06:00
Eshed 581e808733 Enable mingw builds (both 32&64 bit)
- Add libs prebuilt with mxe
- Update cmake scripts to use them
- Make MINGW builds use the generic def_files inclusion method
- Some minor fixes to compilation
2016-10-01 21:31:16 +03:00
asarium facac997f1 Fix a few issues with MinGW
This does not mean that MinGW can compile FSO yet, these are just a few
fixes that are needed.
2016-09-06 10:49:48 +02:00
SamuelCho 5c5a2f6a07 Merge pull request #708 from asarium/fix/timer
Always use high resolution timers
2016-08-31 22:43:24 -07:00
Fabian Woltermann 99a59efdbf AI Goal flags converted 2016-08-31 15:30:49 +02:00
asarium e8bd7363c8 Use microsecond precision for timestamps
This only increases resolution for the internal ticker but not for the
external timestamps
2016-08-31 14:32:53 +02:00
m!m fceaf9eb06 Merge pull request #870 from The-E/ai_info_flags
Ai info flags conversion
2016-08-25 12:22:07 +02:00
asarium 04a8262712 Remove HARDWARE_ONLY define 2016-08-23 15:45:03 +02:00
asarium e8fe940287 Cleanup config.h 2016-08-22 22:17:34 +02:00
Fabian Woltermann b6986087a3 not sure how these managed to slip through, but here we are 2016-08-22 17:54:53 +02:00
Fabian Woltermann 10e7aba7c0 Converts AI Info flags 2016-08-22 16:33:59 +02:00
m!m 38fb41909b Merge pull request #861 from The-E/ai_profile_flags
Ai profile flags converted
2016-08-22 11:32:55 +02:00
Goober5000 d87babfd92 remove the SIF_BALLISTIC_PRIMARIES flag
See also my comments on #762.  The flag is almost entirely redundant, so this PR removes it in all instances where it's used in the ballistic primaries code.  There are one or two places where removing it was not a no-op, so I adjusted the rest of the code accordingly (most notably in the parsing validation when it checks that primary weapon cargo has been assigned).  I also added a few divide-by-zero checks and slightly tweaked the support ship rearm code.  The use of the SIF_BALLISTIC_PRIMARIES flag in the ingame_join code was replaced with a dummy value to avoid bumping the multiplayer packet version number.
2016-08-21 17:38:42 -04:00
Fabian Woltermann 0591b7ef49 ai profile flags 2016-08-19 22:44:39 +02:00
Fabian Woltermann 127976cd74 Weapon info flags conversion (#851) 2016-08-18 23:17:41 -07:00
MageKing17 384b4b9413 Merge pull request #834 from The-E/multi_server_version_bump
Bumps multi server version due to changes in the multiplayer sexp code
2016-08-15 23:39:48 -07: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
Fabian Woltermann e0314eecd0 Bumps multi server version due to changes in the multiplayer sexp code 2016-08-15 21:42:38 +02:00
Fabian Woltermann 3160bdaa00 Changes ship exit flags to the new system 2016-08-14 16:48:11 +02:00
Fabian Woltermann e1ba2256ed Changes the subsystem flags to the new flag system. 2016-08-13 13:52:51 +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
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 a4c6437104 Merge pull request #749 from The-E/parse_object_flag_fix
Fixes a mismatched flag type error in multiteamselect.
2016-08-06 00:04:31 -07:00
asarium 81e3cf6fac Fix sorting function multi_create_sort_func
The function returned the wrong value for same string which caused the
MSVC debug runtime to throw an error. This fixes that.
2016-08-05 23:38:17 +02:00
Fabian Woltermann e470d2959e Fixes a mismatched flag type error in multiteamselect. 2016-08-05 19:08:31 +02:00