asarium
0a7800d3ea
And another batch of warning fixes
2016-08-15 18:55:35 +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
6c3da4b455
Fix even more 64-bit warnings
2016-08-11 10:08:11 +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
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
asarium
1bcd5400d3
Move build system to CMake
2016-07-22 12:07:19 +02: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
371c49724e
Turn invalid file error into warning
2016-06-16 19:49:34 +02:00
asarium
a1a8a53a65
Add validation when parsing a file spec
...
This issue was spotted by Taranis who encountered an assertion caused by
an empty file name. This check will make sure that every string parsed
as a file name will at least contain one character.
2016-03-10 18:33:43 +01:00
MageKing17
91dbf8b751
Improve consistency/flexibility of version-specific comments.
...
matches_version_specific_tag() now uses the previously-FRED-only scan_fso_version_string() function, meaning it now supports version-specific comments with as few numbers as ;;FSO 3;; to as many numbers as ;;FSO 3.7.3.20151106;;, instead of you being required to supply exactly 3 numbers.
2015-11-20 03:22:45 -08:00
MageKing17
238dbc5749
Makes vsprintf() stop chopping off the last character. Fixes issue #298 .
...
Also fixes saving missions in FRED, since it uses the same function.
2015-08-22 03:38:16 -07:00
asarium
51832fd563
Fix SCP_string version of vsprintf
...
The previous version didn't use the c-library which would cause incompatibilities with formats that assume all format specified to be supported.
2015-08-20 22:52:49 +02:00
asarium
eb765b0c99
Fir format warnings in parselo.cpp
2015-08-19 11:26:29 +02:00
Goober5000
bd3cd7eb18
Merge pull request #195 from Echelon9/fix/sort-uniq-includes
...
Review and refactor #include's
2015-08-19 00:05:02 -04:00
Echelon9
8c2c451e8e
Simplify duplicative parse/ includes.
2015-06-22 20:24:31 +10:00
Echelon9
c5493bb480
Scripted sort and uniq on (internal) project includes. Improves search time and as a by product removed a number of duplicative includes.
2015-06-22 20:24:30 +10:00
z64555
99a06b4839
Organizes required_string(); Doxy's required_string() and required_string_one_of()
2015-06-10 09:00:33 -05:00
asarium
88a85e4024
Improve gamesnd modular parsing
...
As requested by jg18, this improves the sound.tbl parser to properly handle +nocreate. If the file name of an entry should not be changed you have to specify <same>.
2015-05-08 08:48:17 +02:00
asarium
9aed627ce7
Replace longjmp with exceptions
...
Also added a EditorConfig file
2015-04-24 15:03:59 +02:00
MageKing17
83414b238d
Remove required_string_3() and required_string_4().
...
Replaced with usage of required_string_one_of(). (required_string_either() not removed due to different behavior.)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11321 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-23 12:09:06 +10:00
MageKing17
a233f62afb
Remove some redundant code in parselo.cpp.
...
7 cases in stuff_string() (both versions) were using identical code. Consolidated into one branch for clarity.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11320 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-23 12:08:31 +10:00
The_E
0808c3459f
If a text file to be read by the engine is in Unicode, abort. Could be something important we're missing.
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11288 387891d4-d844-0410-90c0-e4c51a9137d3
2015-03-22 13:04:55 +10:00
Goober5000
87e8170268
add optional_string_one_of, which is useful to have
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11211 387891d4-d844-0410-90c0-e4c51a9137d3
2015-01-14 17:29:43 +10:00
Goober5000
f7353121e6
m!m's fix for Mantis #3131 : contrary to the xt change from r11138, NULL is only returned on vm_malloc failure (so should never happen in normal execution)
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11179 387891d4-d844-0410-90c0-e4c51a9137d3
2014-11-25 19:15:56 +10:00
niffiwan
866667a977
Fix mantis 3126 (from MageKing17)
...
Remove limit of 32 tbms being loaded for any given table type
2014-10-24 19:35:47 +10:00
Goober5000
dff2156c18
xt branch: more string safety
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11138 387891d4-d844-0410-90c0-e4c51a9137d3
2014-10-13 18:23:41 +10:00
Goober5000
f23a3c5843
SCP_string is useful here too
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11137 387891d4-d844-0410-90c0-e4c51a9137d3
2014-10-13 18:23:40 +10:00
Goober5000
dd353a74d8
add an Assertion about a buffer overflow vulnerability in split_str
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11037 387891d4-d844-0410-90c0-e4c51a9137d3
2014-09-09 20:37:02 +10:00
Echelon9
cba4cc9943
Fix cppcheck (performance) Prefer prefix ++/-- operators for non-primitive types.
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11015 387891d4-d844-0410-90c0-e4c51a9137d3
2014-08-23 13:05:06 +10:00
niffiwan
e6b8a433f1
Fix mantis 3097 (valgrind)
...
Don't read past the start of the string
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11009 387891d4-d844-0410-90c0-e4c51a9137d3
2014-08-23 13:05:05 +10:00
Echelon9
01df45e37e
Fix Coverity 1093613 Negative array index read in stuff_loadout_list()
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@11003 387891d4-d844-0410-90c0-e4c51a9137d3
2014-08-17 18:50:11 +10:00
niffiwan
7defc6aeeb
Fix mantis 3086 (from Yarn)
...
Add special case to avoid crash from mismatched quotes in
tstrings.tbl German text
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10977 387891d4-d844-0410-90c0-e4c51a9137d3
2014-08-11 18:54:04 +10:00
niffiwan
e93c1e94b6
Fix Coverity ID 1228858 Missing varargs init or cleanup
...
In required_string_one_of(int arg_count, ...)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10948 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-27 13:03:04 +10:00
Goober5000
469e566b20
another localization patch by Yarn: disable character remapping when the game is running in Polish
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10932 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-24 19:45:29 +10:00
The_E
a5a1a0ff3b
Patch for Mantis 3069 by MageKing17: Fixes help.tbl error reporting
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10925 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-24 19:45:28 +10:00
Goober5000
905f0999c2
Yarn's patch which allows FreeSpace fonts to support all characters that exist in both Code Page 437 and Windows-1252
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10923 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-24 19:45:27 +10:00
The_E
3eaf02c022
Fixes an unintended linebreak removal in previous commit
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10922 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-24 19:45:27 +10:00
The_E
5bff2754c2
From MageKing17: Fixes for a couple of clang warnings.
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10921 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-24 19:45:27 +10:00
Goober5000
fe4b949c06
fix Mantis #3072 (crashes when using different languages)
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10908 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-14 19:02:31 +10:00
Goober5000
2fe0ec8ef0
Yarn's patch for Mantis #3049 (character remapping in tstrings.tbl)
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10894 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-14 19:02:31 +10:00
niffiwan
3b77e65f5f
Raise MAX_PATH_LEN to 256 so FSO can run in long paths
...
Specifically avoid one issue with running FSO in the default Steam dir
Converted some magic 128/127 numbers to MAX_PATH_LEN
Convert some Int3() into more friendly errors
Stopgap measure until proper fix added with compressed VP support
Fix mantis 3028
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10772 387891d4-d844-0410-90c0-e4c51a9137d3
2014-06-09 13:48:52 +10:00
Goober5000
8e1c4be1b6
quotes can span multiple lines as well, so let's keep track of that flag (fixes Mantis #3001 )
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10753 387891d4-d844-0410-90c0-e4c51a9137d3
2014-06-06 16:51:17 +10:00
Goober5000
ff675c3653
New method of handling quotes and comments that examines lines character by character like most languages do, instead of just searching for the start of a comment. If a comment character is inside a quoted string, it will not kick off a new comment. (This actually fixes the core design flaw that caused semicolons to truncate messages, so the $semicolon tag is technically no longer necessary. It will still be kept, of course.) Fixes Mantis #3001 .
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10492 387891d4-d844-0410-90c0-e4c51a9137d3
2014-03-14 19:50:32 +10:00
Goober5000
0eb5606527
the #define already has a (char)
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10491 387891d4-d844-0410-90c0-e4c51a9137d3
2014-03-14 19:50:31 +10:00
niffiwan
7d846defa5
Coverity 110733[01]: Negative array index read in get_string_or_variable()
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10218 387891d4-d844-0410-90c0-e4c51a9137d3
2013-12-15 12:23:02 +10:00
Goober5000
f3c902c39b
add wing_bash_ship_name, which handles the hash symbol thing, accommodates Blue Planet's capship trick, and works in FRED and while we're at it, do a little bit of const'ing
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10198 387891d4-d844-0410-90c0-e4c51a9137d3
2013-12-08 19:52:57 +10:00
niffiwan
f301cefe2c
redo r9978 with BUF-1 instead of x[BUF+1]
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9994 387891d4-d844-0410-90c0-e4c51a9137d3
2013-10-31 19:25:03 +10:00
niffiwan
f5757f8591
Coverity 1093664: Out-of-bounds write
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9978 387891d4-d844-0410-90c0-e4c51a9137d3
2013-10-27 13:51:49 +10:00
niffiwan
0e561c822a
Coverity 1093500: Missing break in switch
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9977 387891d4-d844-0410-90c0-e4c51a9137d3
2013-10-27 13:51:49 +10:00
Goober5000
bce047db1e
fix handling of multi-line comments, and add !* and *! as a possible option
...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9945 387891d4-d844-0410-90c0-e4c51a9137d3
2013-10-16 19:46:02 +10:00