Compare commits

..
Author SHA1 Message Date
WMCoolmon 64c9dc8035 Quick patch to optimize camera code, and fix it when being used by any camera which does not use the internal movement code.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4495 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:11 +10:00
WMCoolmon dedd2675cc Update MSVC2003 project to compile with TrackIR and objectshield.cpp
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4494 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:11 +10:00
WMCoolmon e84fe6d790 Add objectshield.h and include it in files that require it.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4493 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:11 +10:00
WMCoolmon 9857ae0024 Camera code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4492 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:11 +10:00
WMCoolmon 261e63e5f8 Project file updates and minor code corrections.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4491 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:11 +10:00
Backslash 5d46f6c04d Freelook, Target padlock and TrackIR patch by Swifty. Very nice! Don't forget to add code/io/trackir.* to your projects!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4464 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:11 +10:00
karajorma 65a15a5e2e Fix Mantis 1608 Fix a multiplayer issue with the force-jump SEXP
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4462 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Goober5000 5a60516c6c fix Mantis #1592
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4447 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Goober5000 19a730d1e2 this is dumb; I didn't even use the formula correctly
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4446 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
WMCoolmon 21a5630941 Minor scripting optimization
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4445 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
taylor b54e6a922d set eol-style to LF for all code set eol-style to CRLF for MSVC6 project files (since Windows needs it this way to load them)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4431 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Backslash e694c912b8 Mantis #0001488. The cases are depreciated, wouldn't compile using newest SDK.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4425 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
taylor dc01529ee6 remove old ignore files from CVS conversion
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4409 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Backslash a805967dd5 Bump MAX_MISSION_EVENTS and MAX_WINGS limits. Ideally someone can make this dynamic later... maybe me when I have time to learn how.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4405 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Goober5000 fb1c494671 allow FS1 hud to be displayed in FS2 (many thanks to the icculus project for blazing the way)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4403 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
karajorma 8bf41749cb Fix for Mantis 1150
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4402 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Goober5000 fab0ca5b42 implement the targeting cutoff properly (Mantis #1468)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4401 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Goober5000 514e823ed4 we all got led down the garden path there! revert all radar range modifications
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4400 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
karajorma 04b04ee57a Fix for Mantis 1516
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4399 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Goober5000 99238ea308 back out the MOI fix
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4397 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Goober5000 ef2f939ca3 warn users when they run a campaign under the wrong mod
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4396 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
Backslash 15c3ea8cf3 Fixed set-object-speed sexps. Thanks for the inspiration, Keldor!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4395 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
karajorma 415556e4cb Add SEXPs for determining the players score and how many respawns they've used.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4393 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:10 +10:00
wmcoolmon 55980eac46 hud_get_draw()
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4389 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
wmcoolmon 4ec02c6d3c Ze Viewer_pos...it does nothing!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4388 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
karajorma e25ae6472e Catch-up update. This stuff is all in 3.6.9 but somehow missed being added to HEAD.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4385 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
turey 374e1432e6 Added Fiction Viewer files to project.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4380 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
turey 7387e285a3 Small fix for sim hull stuff.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4379 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
Backslash 58bf8dd55c Glide When Pressed key works now! Also, a fix to the engine sound so that it stops playing when the throttle is at 0. (It used to just stop looping -- but in BtRL for example the sound is 20 seconds long.)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4378 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
karajorma 5e12fd27ba Fix the Number Used in Wings display in FRED so that it does what V probably intended it to do all along.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4376 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
wmcoolmon 1e0307b61d Move the camera functions into the 'mission' library
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4375 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
wmcoolmon 1b7e1aecc0 Maybe-catch an interesting crash upon attempting to revert a mission with no cargo.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4374 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
wmcoolmon 4710959a39 Handle missing ship model files more gracefully
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4373 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
karajorma 01ada43c1a Unbreak FRED compiling
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4372 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
karajorma f63189dbf4 Fix the Run Freespace option in FRED
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4369 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
Goober5000 911ebf66f3 patch hole in the state machine fix
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4368 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
Goober5000 3ee782f7d7 catch invalid bounding boxes caused by buggy POF editors ;)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4367 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
Goober5000 e2d1ceef10 watch out for bad MOI values
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4366 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
wmcoolmon 335be306e7 MOI access
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4361 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
wmcoolmon b9c8026e7c More script-eval functionality; additional matrix functions
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4360 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:09 +10:00
wmcoolmon aded7bb83d Fix script-eval and script-eval-num
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4359 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon e471f76e55 - Asteroid, debris, and ship collision damage type support - Scripting system variable-setting optimizations - Standardize override style - Reinstate "Self" variable for HUD - Automatic drawString moving-to-next-line - Visible subsystem name can be changed through scripting; will not be changed in the log - Fix many for-loop signed/unsigned warnings related to size() - Asteroid, debris scripting collision handling - Many, many additional Lua functions and variables - Fix the dreaded random-Lua-parse-crash bug - Fix struct array malf-ups due to flag_def_list change
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4356 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon 6e13b68f0f Improved nonwindows Lua errors
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4355 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon 0f3837e912 Update MSVC2003 project files & fix debugging
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4354 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon 04b11e5287 weapon_armed update
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4353 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon f6d9674386 Detect and warn when bad axis readings are loaded from a pilot file (Causes crashes on axes_values[Axis_map_to[i]] in control_get_axes_readings
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4352 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon 65297de89d Misc. fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4351 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon 261b1382f3 Fix array malfup due to flag_def_list change
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4350 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon cb93063b38 Fix un/signed warnings related to size(), optimize Knossos-finding
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4349 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon c3d3086ab2 Fix un/signed warning due to size()
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4348 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon 0c528cc407 Fixed array size, as it looks like it has to be the say as NUM_JOY_AXIS_ACTIONS
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4347 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon 3d61e11c46 Updated event editor with minihelp box and numbered icons
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4346 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
wmcoolmon abb234c7ef Fix compiling under HEAD branch.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4345 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
taylor b4869d3e1c oops! not ready to commit that part just yet :D
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4343 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
taylor fda165df72 bump node allocation increment (when you are regularly realloc'ing 20-30 times, the increment is too low :))
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4342 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
taylor d16027d228 better case for making sure that a missing ship anim doesn't lead us to a horrible death minor cleanup
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4340 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:08 +10:00
taylor 075cb7f7b1 fix some missing cleanup
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4339 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
taylor b087f8d0bb fix campaign is missing then give player choice to switch campaigns, switch pilots, or exit
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4338 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
taylor 753b652768 no reason to if-else the hud multiplier if it simply defaults to 1.0 add a little sanity checking for hud mutiplier tbl value
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4336 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
taylor 255cb9138e try to deal better with gamma setting/resetting when minimizing/restoring the game (Mantis #1210)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4335 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
taylor 12909598bb minor fixes and cleanup for the warp effect change scale of 3D warp effect to better match up with size of 2D effect
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4333 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
taylor f494fdfef8 add/remove some old, forgotten, and new files
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4332 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
taylor b05f3d047a initial support for cursors that are larger than 32x32 fix bug where animated cursors would be constantly loaded/unloaded
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4331 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
taylor b6b52c8ad4 cleanup/fixage for fade in/out function (Mantis #1186)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4330 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
taylor 4b9dca98b5 be sure that we hide the game's mouse cursor (Mantis #1401)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4329 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
Goober5000 40120210a4 add Wing Commander Saga's fiction viewer
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4328 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
turey b216447ebe minor bugfix.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4327 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
Goober5000 4b89a0662d fix ship-type-destroyed
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4326 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
Goober5000 dd438fb032 recognize a Vasudan main hall even when it isn't the second one; play the appropriate music as soon as the main hall switches
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4325 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
Goober5000 7db8d3d94a clean up the state machine logic for starting games
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4324 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
Goober5000 18e8d1a8b1 some minor enhancements to the skip mission cheat
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4323 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
Goober5000 005df60d13 remove warning... properly this time
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4322 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
Goober5000 f4a6d80099 clarify what this flag is actually for
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4321 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
Goober5000 8fdf299567 add the merge_stats debug function (use with caution)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4320 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:07 +10:00
Goober5000 ec79947e07 fix for Mantis #1503
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4318 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
Goober5000 89cb83573c gak -- stupid mistake
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4317 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
karajorma a8e6d242bc Fix peristent variables in missions played from the techroom
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4316 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
taylor 3d09f1c523 fix out-of-bounds issue from retail (Mantis #1518)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4314 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
karajorma 8ed8425998 This is better than the other way.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4313 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
karajorma 5417c5077f Make Ships_Exited Dynamic. Add the hits-left-single-subsystem and get-damage-caused SEXPs. Minor changes to make diffing 3.6.9 and HEAD easier.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4295 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
taylor da8f890f04 reset Perspective_locked at the start of each mission so that view controls don't get locked until exit
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4294 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
phreak e902bd2a93 Get rid of 1-letter and non-descriptive variable names.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4293 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
phreak c4ce741093 'phreak' is now all lowercase (and has been for some time now)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4292 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
Goober5000 dfe665c398 fix a minor bug in the dockpoint system (affects sm2-07a in the Port)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4291 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
karajorma dcdde0189c Typo
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4282 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
karajorma 336b0fa9ef Doh!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4279 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
taylor dab646c183 fix bugs in beam-*-all and turret-*-all that made them always trigger an Int3()
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4278 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
taylor 084edcf6e1 get rid of some old/obsolete items (Mantis #1489 and #1497)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4277 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
Goober5000 d0c1a09a1f another fix by razorjack... parent is -1 when created by sexp
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4276 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
Goober5000 d2affec465 another patch by razorjack -- remove something that never worked
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4275 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
Goober5000 f717777f7c a bugfix by razorjack
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4274 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
karajorma f3a043668c Fix x-builtin-messages so that the Any Wingman option works
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4273 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:06 +10:00
karajorma 5e50d91dee Upgrade the beam-x-all and turret-x-all SEXPs to accept more than one ship. Add the allow-treason SEXP
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4272 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
karajorma 8b36c5bd6d Fix the double respawn bug (Mantis 788) and hopefully the corresponding server Int3 (Mantis 1213)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4270 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
turey 181edcb916 Mouse defaults to enabled as suggested in Mantis bug: http://scp.indiegames.us/mantis/view.php?id=1498
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4268 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
turey bbfaf12314 Final fix for mantis bug: http://scp.indiegames.us/mantis/view.php?id=1482 There should be no more occurrences of campaign missions being skipped.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4267 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
turey 4ff88a9e70 "no primary linking" ship flag and related SEXPs - prevent a ship from linking primaries.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4266 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
Backslash 01b0fb3e5d Whoops, missed a couple lines for Length Unit Multiplier
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4265 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
turey 76a8de9cc7 More fixes related to Lua's waypoint lists.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4264 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
turey 106346a1a1 Fixes related to Lua's asteroids, debris, and waypoints.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4263 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
turey 30cc25e7ee More work on Mantis bug: http://scp.indiegames.us/mantis/view.php?id=1482
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4262 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
Goober5000 7d442047bf fix the factoring on the shudder parameters (Mantis #1419)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4261 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
Goober5000 b036d1049b re-add the code to disable the Windows key... this time, without slowing the system to a crawl when FSO is in the background
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4260 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
Goober5000 262c1dd37c roll back the windows key hook for now
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4259 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
Goober5000 fb6df00c0f fix for 1376
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4258 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
Goober5000 98f59f6c8b fix for 1471
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4257 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
Goober5000 4b3d619d71 Shade's fix for #1329 (approximately)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4256 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
Goober5000 2c6cb674ee fix for #1455 plus a bit of cleanup
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4255 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:05 +10:00
Backslash 65cbbcd31d 2005 Project file cleanup. Changed a lot of paths to compiler macros. Also gave Freespace2 project the inherited property sheet CoreWin.vsprops -- this lets Express Edition compile!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4254 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
Backslash 90b70a027a (code by KeldorKatarn) Reactivated HUD_ship_sent_printf to enable more flexible handling of ship names in displayed messages. Added functionality for WCSaga to use class name instead of ship name for enemy wings.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4253 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
Goober5000 d68a225582 added fixes for #1415 and #1483, made sure every read_file_text had a corresponding setjmp, and sync'd the parse error messages between HEAD and stable
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4251 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
turey add1b9aba7 Extensions to Lua system regarding asteroids, debris, and waypoints. They're not heavily tested, but I haven't seen any crashes from them.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4250 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
turey 9d98120dc8 Fix for Mantis bug: http://scp.indiegames.us/mantis/view.php?id=1482 Also, fixed an implicit cast that MSVC2005 choked on.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4249 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
Backslash 39365af0ce The long-awaited HUD $Length Unit Multiplier setting! (With lots of help from KeldorKatarn) Multiplies all speeds and distances displayed by the HUD by a given constant multiplier. The value is declared in hud_gauges.tbl (right after $Max Escort Ships) as $Length Unit Multiplier: 5
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4248 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
phreak eb9ab4c957 destroyed-or-departed-delay needs to check for ships that have self destructed
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4247 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
phreak a1dda42d98 Add WINVER define to the VC2005 project file so it shouldn't affect users of other compilers.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4246 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
Goober5000 fc0bb54541 tweaky move
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4245 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
karajorma bc0ecc1448 Fix for Mantis 1234
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4244 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
Goober5000 6d87070b5f bring wxFRED project files up to date
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4243 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
Goober5000 373d80684f bring sexp into conformance with other sexps
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4242 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
Goober5000 613f761043 generalize the way radar ranges are handled (inspired by Shade's fix)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4241 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
phreak 0f1f2ae2f3 Local SSMs shouldn't jump into subspace if they're not homing.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4240 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
turey 6feabed6c2 Typo fixed.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4239 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:04 +10:00
turey 17c73dd526 set-object-position and set-object-orient now work in multi.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4238 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 1995414e3a okay... let's not redefine the Windows version
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4237 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 62b34a766f disable the Windows key while FreeSpace is running (thanks to jr2) c.f. http://www.hard-light.net/forums/index.php/topic,48838.0.html
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4234 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 fff1530e21 some improvements to the pirate ship
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4233 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 a4ac56cf7b some tweaks for a field that's mostly unused anyway
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4232 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 13d4be980f fix case-sensitive #include (Linux)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4231 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
karajorma 44976923a0 Reinforcements Editor bug fixed Sucka!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4230 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 b5e265d20c fix compile error
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4228 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 a9cc12985f fix warning
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4227 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 b0af8dd641 fix compilation issue
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4226 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
turey a5084fc0fb Scales GUI Mouse movements correctly for non-standard resolutions. Doesn't affect gameplay.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4225 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 a197ab3091 allow embedded dashes in command-line options
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4224 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
karajorma e0ac7eff67 Apparently I forgot to commit this to HEAD. Fixes Mantis 1437
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4223 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 3a34bf48bb tweaks
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4222 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 6c0dadb095 this should really be capitalized
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4220 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:03 +10:00
Goober5000 c03d5dde04 make the parse object array dynamic; also made the docking bitstrings dynamic
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4219 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Goober5000 6c90a9a07c a couple of tweaks
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4218 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Goober5000 591d19c15a AAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!!!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4217 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan b3580f8407 I <3 making stupid bugs (return camera to normal when not using cutscene bars)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4215 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan 32278008a6 two-part autopilot warp, add +No_Cutscene_Bars optional flag to autopilot.tbl
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4214 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan 0a3ec374d9 small tweak
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4213 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan dedb59494c oops
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4212 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan 1d4bed9485 Make asteroid/debris fields interrupt autopilot, add "hazards near" message to autopilot.tbl, add use-nav-cinematics sexp, fix mantis #1441
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4211 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan 5d9b38e398 Resolve Mantis 1281
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4209 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Goober5000 67ca65ff73 allow mission messages in dogfights (Mantis #1436)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4208 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan 09cd4c1ad9 Resolve Mantis #1440
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4207 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan 1c1c90a7a4 remove unused function... unused function that should probably never be used
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4205 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan dd0f8213a7 copy+pasted typo, now with extra hotsauce
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4204 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:02 +10:00
Kazan f8f1d4ac08 typo correction in autopilot.tbl
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4203 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:01 +10:00
Kazan d0884812ce Autopilot upgrades as described, MSVC2005 project fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4202 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:01 +10:00
turey f2d84f3283 Small bugfix relating to restoring engines from disabled via the set-subsystem-strength SEXP.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4201 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
turey b2ef36d883 Made Backslash's change to dampening tied to an ai_profiles flag, as it does affect retail behavior, and significantly affects gameplay in the BtRL Demo. Also, fixed a typo.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4200 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
turey 92039aa55a Small change to how Simulated Hull works. If ship is gone, it now has 0 Simulated Hull.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4199 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
Goober5000 f1693080a3 Kazan's VC2k5 project file fix (HEAD only)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4198 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
Goober5000 ca0f5f0515 Kazan's autopilot fix
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4197 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
Goober5000 6c4c0493fc fix and clean up the warpout conditions
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4196 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
Goober5000 9bcb844f0b restore WMC's ship flag
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4195 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
Goober5000 d1915ce351 fix extremely minor bug
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4194 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
Goober5000 31d71cd1d2 partial commit of aldo's eyepoint feature it will need a keystroke to be complete
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4193 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
Goober5000 415f273e07 fixed a small bug in the lab moved WMC's no damage scaling flag to ai_profiles and made it work correctly removed my old supercap damage scaling change moved Turey's truefire flag to ai_profiles
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4192 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
Goober5000 7cd3fbf2ef fix a newline bug in the voice acting manager
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4191 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
turey 56c871d49d Initial commit of Training Weapons / Simulated Hull code.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4190 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
turey d011acdc74 Truefire weapons code, adds firing ship's velocity to weapon velocity for a more realistic firing, especially during glide. Activated with the "truefire" flag on a weapon.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4189 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
turey daa90a1d31 Ship Template fixes. It's fully working now, hopefully.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4188 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
turey e7037aabb1 Fixed MSVC2005 Project. Debug Config compiles fine, still working on Release config. One file needs to be renamed for these to work, see the README.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4187 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
Goober5000 68d5c461e2 fix an off-by-one error
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4186 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:43:00 +10:00
taylor 15093f3772 convert to LN EOL
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4184 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
Backslash 90e0a6a730 Cutscene subtitle positioning fix for resolutions other than 1024x768. Code by MikeStar.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4183 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
turey 008a9a58b5 Fixed some silly little bugs that somehow slipped through the cracks.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4182 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
karajorma 01351fee82 Fix an issue with single character command line arguments
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4181 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
turey 1aea32bff4 Added in Ship Templates code, with some syntax and warning cleanup.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4179 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
Backslash 283ae2dcca Backslash's HEAD-only controls commit: -Lateral thruster axes -Slide_when_pressed -Placeholders for glide_when_pressed and more controls, to give us a little breathing room while we wait for the real pilot file code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4175 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor 2610817c23 more resilient checking of stars.tbl and it's modular versions
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4173 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor c624dc2a9b various bits of clean up make stats printing a bit more sane printf out game version info to debug log (not very helpful, but might prove some use)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4172 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor 433cfa437e oops! the exit() was supposed to come /after/ the last printf() :)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4170 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor bf7075cc6a make the chcksum spew in logs always have a full 8-set of values skip over files found on system which are over the max filename length, prevents several crashes (partial for Mantis #1182)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4169 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor 908da6af8c various bits of cleanup don't draw beam impact effect if we are hitting a shield updated hit shield quadrant properly for player when a beam hits set shield quadrant and exit_flag properly for collision info so that we don't count damage twice and handle no_pierce_shields properly
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4168 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor 0e800d166a fix armor index bug for shockwaves
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4167 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor 4978242f11 bump version to 3.6.10
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4166 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
Goober5000 9f9003e05e add placeholder stuff for parsing ship-class texture replacements
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4162 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
Goober5000 cb88594a81 when importing FS1 missions, account for the shuffled Head-TP4
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4160 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
Goober5000 a100ac10e0 the reinforcement comm menu will now correctly display according to whether or not reinforcements are available
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4159 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor 2180e4a5c7 add the rest of the texture page-in code changes that I skipped before (should fix Mantis #1389)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4158 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor 505b3fdb4d make Linux just verbally ignore invalid cmdline options rather than it being fatal
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4157 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:59 +10:00
taylor 5a1b975637 fix stupid bugs in CF_SORT_REVERSE (should be as originally intended now)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4152 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
taylor 619a4f02f3 fix armor_parse_table() so that it will parse multiple entries properly fix bug introduced from not closing down lcl_ext after parsing armor.tbl
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4151 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
Goober5000 4622db3330 --grouped the shake/shudder code together a bit better --added a sexp to generate shudder --fixed a minor bug in lock-perspective
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4150 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
taylor 6e1610b300 add session open/close times to debug log
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4149 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
taylor f7e6d4fb1f properly handle invalid sound index case, fixes div-by-0 error
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4148 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
taylor 9ca28ed022 very minor optimization (mul is much faster than div)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4147 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
taylor da9fe0065e fix debug message (using wrong name, spit out a bunch of garbage on Windows boxes)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4146 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
taylor 436a019cd6 delete the .hdr file once we are done with it, since it's no longer useful
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4145 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
Backslash 1af66f99b1 Add feature to $Max Glide Speed -- negative number means no speed cap Only show gun muzzle flash effect if in not cockpit view, or if "show ship" flag is set Fix a couple typos ;-)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4144 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
Backslash f96579faa6 Fix tiny bug I introduced -- should use forward_decel_time_const, not slide_decel_time_const, for z Add feature to $Max Glide Speed -- negative number means no speed cap
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4143 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
Backslash 966e364b7c Backslash's big Gliding commit! Gliding now obeys physics and collisions, and can be modified with thrusters. Also has a adjustable maximum speed cap. Added a simple glide indicator. Fixed a few things involving fspeed vs speed during gliding, including maneuvering thrusters and main engine noise.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4142 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
karajorma 2659bbcb25 Doh! Missed the return type.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4141 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
karajorma 7fc983d4b6 Add the knock feature from Tom's build. Fix a number of places where the player of a dogfight game could end up in the standard debrief.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4140 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
karajorma 55e03513c3 Fix a number of places where the player of a dogfight game could end up in the standard debrief.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4139 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
karajorma be488b0f6a Remove the -fredhtl command line.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4136 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
taylor a35201c87e add Linux friendly icon
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4134 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:58 +10:00
taylor 699c125aa8 only add player-allowed flag on #Weak weapons when their non-weak versions also have the flag (Goober #73)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4133 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor 045efc90a5 little cleanup fix memory size fubar on trail vlist ptr
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4132 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
Goober5000 1b8fd941cf fixed a silly speech bug (Mantis #1238)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4131 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor 10d09ff3d1 cleanup and initialize persona_index properly for general safety reasons slight change to karajorma's NO_BUILTIN_MESSAGES check, now it will be properly compiled away in release builds rather than an empty function
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4130 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor c659d8f50b use qsort() instead of insertion_sort() for light sorting, it should be better optimized and quicker in general for this use
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4129 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor b466ed13c2 some basic cleanup for the extension code fix the old bug that didn't report a missing extension name properly get rid of the message that says to use D3D, that's not normally going to be an option anyway add ARB_point_sprite support, mostly for fun since no code will actually use it until after 3.6.10
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4128 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor 3568dfd184 clean out some old code we no longer use/need change warning messages to not print out current tbl name, since at the point those messages show the tbl has long since been parsed add an extra quick-check to ship_get_subsystem_strength() to avoid div if we don't need it make Ship_subsystems[] dynamic (sort of), it's allocated in sized sets now, so we can easily change size while still working with the existing linked-list code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4127 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor 1819e1ead6 cleanup of chksum stuff (works properly on 64-bit systems now) add chksum support for VPs, both a startup in debug builds, and via cmdline option (-verify_vps) little cleanup in cmdline.cpp (get rid of the remaining "fix bugs" crap)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4126 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor 2aeade2140 cleanup error message allow launch_snd from tbl to be used for beam weapon shot sound (Mantis #1263)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4123 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor e82ac5f2e1 add modular version of strings.tbl (*-lcl.tbm) (provides for Mantis #924)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4122 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor 4c9c897094 bm_unload_fast() should only unload the bitmap passed for animations, not the entire animation (fixes several issues)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4121 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor 9530163e34 get rid of stale NO_JOYSTICK define
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4120 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor cedb6ddc89 add extra safety check to make sure that we are going to do a wildcard search for modular tables
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4119 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
taylor 2085a4da87 get rid of (now) unused variables
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4118 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
karajorma c53e12f566 Fix for Mantis 1312
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4112 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
karajorma 5d56a96f30 Fix .wav playback in the briefing editors.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4111 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
karajorma aab6ad507a Friendly stealth ships shouldn't give away their position just cause they send a message.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4109 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
karajorma 50f9747548 Changed my mind This is an Int3() not an assertion
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4108 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
karajorma 62f2ff9f7e Prevent ships from jumping out in glide mode (They'd probably never get up to speed anyway)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4107 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:57 +10:00
karajorma a6bece03cd Fix a bug where gliding ships couldn't jump out. Remove a couple of magic numbers.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4106 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
karajorma cd045d745f A couple of minor fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4105 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
karajorma 52660f8170 I could have sworn I committed this! Anyway, make the wingman complain when you shoot them instead of command. Send traitor messages from wingmen if command is silenced.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4097 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
Goober5000 e4a52bf29d meh, space
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4096 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
Goober5000 ef8aaa498f fixed up some error messages
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4095 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
Goober5000 1aa2189dd9 tweak
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4094 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
karajorma abe12ea9ca Fix assertion on red-alert carry status in multi games
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4093 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
taylor 183bfa7e54 fix breakage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4091 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
taylor 9cf236972b bit of cleanup and minor performance tweaks sync up with new generic_anim/bitmap and weapon delayed loading changes with generic_anim, use Goober's animation timing for beam section and glow animations make trail render list dynamic (as well as it can be)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4090 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
taylor 4ab2a0d1af bit of cleanup and minor performance tweaks render ship insignia with a bit of alpha to help with blending/lighting dynamic thruster particle limits update for generic_bitmap/anim changes make use of flag_def_list for ship flags rather than a ton of if-else statements use generic_bitmap and generic_anim where possible to faciliate delayed graphics loading (after all ship related tbls are parsed) use VALID_FNAME()
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4089 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
taylor 09c5e7a21e get rid of non-standard itoa(), make use of the proper sprintf() instead
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4088 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
taylor 9a69092e50 add back special "var" setting for flag_def_list and convert some of the lists to use it (more on the way)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4087 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
taylor ba590e029d get rid of non-standard itoa(), make use of the proper sprintf() instead
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4086 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
taylor 020e7c841d some generic_bitmap fixes to go with new changes (not in CVS just yet, don't freak out) make use of VALID_FNAME() where possible fix an animation time issue (sub-second animation playback caused div-by-0)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4085 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
taylor 78922b1428 fix issue where the lab menu bar would disappear at times when you click on it (Mantis #1063)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4084 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:56 +10:00
taylor 12021bae4c forgot to remove -jpgtga from Launcher options previously get rid of -fixbugs and -nocrash crap
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4083 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 14dfa85b36 give a better msg when movies can't play because they are user-disabled with the cmdline option
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4082 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 8841ade91d bump version to 3.6.10, it will be needed for new texture replacement stuff (tbl version commenting)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4081 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 4501140263 some generic code cleanup
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4080 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor a237b61f5c make sure that we set/reset the red alert data properly (Mantis #1255)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4079 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 9bd345fcf1 cleanup and fix for weapon cycling (Mantis #1298)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4078 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 8ea4793841 be sure to page in textures for change ship class sexp preload add a ASF_MENUMUSIC type for things that aren't mission-based event music (since that is handled differently now) make event music keep extension if it exists, so that the special data will be accurate bits of cleanup from old MS code that we don't need
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4077 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 2e98e39d71 a little cleanup handle issue where we don't deal with an error condition properly and hit a NULL ptr
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4076 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 366ce26724 fix stupidness that screwed up RGB values (Mantis #1307)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4075 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 45fb2f2189 a little better error handling for cf_exists_full() add a cf_exists_full_ext() which can find a series of extensions and returns true if any of them exist use cf_exists_full_ext() for eventmusic file checks (to check for ogg and wav) get rid of SPM hack, it's wrong (just commented out for now though) fix a bunch of bugs in cf_find_file_location_ext(): - try to handle files with multiple periods a bit better (for the wav files like: blah_1.5.wav) - load issue with finding incorrect files by mistake - prevent finding different file types in various paths/roots
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4074 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor c116a2170a various bits of bmpman cleanup be sure to clean all three possible buffers with OGL init fix a couple of bmpman loading bugs that messed up animations fix bmpman bug that didn't properly account for free'd texture ram count with unload_fast
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4073 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 0ccf57a648 old ✌️ snafu
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4072 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 51dc9f37db when parsing a modular tbl, allow a duplicate sun entry to overwrite an existing one
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4071 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor bb87b7c6b8 little bit of cleanup set "#Weak" weapons to always get the "player allowed" flag (Mantis #1301)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4070 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
taylor 2fa81b72f2 make use of generic_anim and generic_bitmap where possible bunch of cleanup and little optimizations add "+remove" tbl option to completely get rid of particular beam sections delayed loading of bitmaps, will only do it after all tbl/tbm have been parsed if we are using a POF missile which isn't loaded yet, try and load it before going crazy bug fix and optimization for laser color setting
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4069 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
karajorma 6b7e03405a Bump the number of debriefing stages. Fix an annoying (and erroneous) warning in the campaign editor.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4066 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
karajorma d0435336d4 Turn off afterburner controls when player isn't in control
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4064 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
karajorma ad008469b4 Make .ogg voice files selectable in FRED.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4063 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
karajorma b027179525 It's perfectly legal to press the Target Target's Attacker key with no target. We should just play a failed sound instead.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4061 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:55 +10:00
Goober5000 53a0176712 might as well do this too
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4060 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 7af751fcda add two features for WCS: specifyable shield/weapon recharge rates, and removal of linked fire penalty
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4059 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 58a5a94a97 small bugfix
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4058 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 7cf6c12bdd add model compare capability (currently only via debug console)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4057 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 1b60c99cd8 added vm_matrix_same()
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4056 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 bec0f110b3 use dynamic memory instead of a static buffer for ship-specific replacement textures
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4055 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 10cfd130aa remove duplicate model texture replacement
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4054 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 1664133cf9 oops, this is for a future commit
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4053 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 9baae44f88 revert to retail behavior
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4051 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 aefb3efe15 the great big duplicate model removal commit
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4050 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:54 +10:00
Goober5000 e590e0c5ec *** empty log message ***
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4049 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
wmcoolmon 675428455b More minor tweaks/fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4048 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
wmcoolmon e5d14f09a3 More scripting tweaks/bugfixes.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4047 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
wmcoolmon 4a5a3c4bf6 WMCoolmon experiences a duh moment. Move scripting collision variable declarations in front of overrides, to give them access to these (somewhat useful) variables
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4046 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
wmcoolmon 27a058a338 Fixed minor precedence issue.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4045 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
Goober5000 15001ef13e magic word
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4043 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
Goober5000 d9fb4b15b9 revert Bobboau's commits for the past two months; these will be added in later in a less messy/buggy manner
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4041 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
Goober5000 9efce92739 ugh... reverting this, because it was done wrong
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4040 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
Goober5000 80ef48e959 this should be based on a flag or something, not automatically tied into the power output
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4039 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
Goober5000 2f3fee1017 fixed another of bobboau's stupid bugs
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4038 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
Goober5000 b5a7b399db remove obsolete and misleading comments which should have been edited when the code was upgraded
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4037 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
karajorma 6884dc10a2 Thought I'd caught all of these months ago! Thanks to Wanderer for the heads up.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4036 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
Goober5000 3f131e532f uhh... wrong?
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4034 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
Backslash a4243b6ac5 small fix for reverse thrusters, and a speed tweak. also a change to damp physics, discussed on the forums and reported in Mantis #1051 months ago.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4033 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:53 +10:00
Goober5000 48935df1ac Linux project file change (thanks to ni1s)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4032 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
phreak 9c0c2e16d3 Project file update for VC 2005. I included a new configuration called "ReleaseDebug" which has the NDEBUG macro found in release builds, but also has all the debugging information included. Regular release builds have no debugging information.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4031 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
phreak ed838bda36 Apparently Visual C++ 2005 follows standard syntax rules.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4030 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
Goober5000 d14355349e fix a hideous bug with the knossos special warp stuff (how did this ever actually work correctly?)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4029 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
taylor cfe438a40c fix stupid bug (Mantis #1275)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4028 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
Goober5000 9449cb7216 ack
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4023 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
Goober5000 099b35c497 scale shield strength according to generator damage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4022 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
Goober5000 c9d903f753 bah
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4021 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
Goober5000 82d858c834 fixage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4010 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
Goober5000 5f073b943c change a number to a constant
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4009 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
Goober5000 42ab4d6622 massive shield infrastructure commit
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4008 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
Goober5000 2f39ad1a2a fix some breakage ;)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4007 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
taylor 88fe40282f fix a couple of breaks from my commits
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4005 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:52 +10:00
taylor 4f34c8f764 cleanup and minor performance improvements add support for new fireball specific lighting values from tbl remove NO_SOUND
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4004 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor 7c1187c46d general cleanup deal with -img2dds error issue
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4003 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor ebdbb35b5f remove cloakmap stuff, we'll need to redo this later on anyway deal better with a strange Windows buffer swap issue various bits of cleanup and performance improvements fix for gr_opengl_flash() that I had screwed up earlier
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4002 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor 9d7f9624c9 support for a couple of recent bmpman changes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4001 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor 6c54e22b8c support for new finding/loading of sound files add support for automatically figuring out samples-per-measure based on Goober's explanation in the Wiki (not sure if it's actually right though) remove NO_SOUND
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@4000 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor f7c8e262a9 support for tbl specified fireball explosion color ("$Light color:")
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3999 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor 0cc9741790 remove some dead code better texture memory handling (a work in-progress) new image finding/loading change the game_busy() reporting during bitmap page-in to only catch one frame of an animation fix numerous little bugs in gropenglbmpman relating to -img2dds
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3998 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor ee04f5e5c0 some minor performance improvements remove NO_SOUND
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3990 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor 96c7dbcbb6 dd VALID_FNAME() macro and put it around a few places (more to come) clean out some old variables move CLAMP() macro from opengl header to global header update COUNT_ESTIMATE to match new bmpman changes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3988 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor d0ca7a13de some CFILE cleanup and slight directory order reorg add cfopen_special() for quickly opening files that have already been found with cf_find_file_location_ext() remove NO_SOUND
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3985 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor b35964c21b remove NO_SOUND fix debris recycling
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3981 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor 0f32d30d63 little bit of cleanup more fixage for hidden jumpnodes (Mantis #1149)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3980 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor 2f0bd47bae fix simroom crash bug from Goober's rencent change add NULL handling to make sure we don't crap out on sorting
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3978 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor 9354b4e528 slight debug message fixage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3977 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
taylor 7677f53bdc if we are a dying ship then don't do collision detection against our own debris (slight performance boost to exploding ships)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3975 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
Goober5000 7d2f76b26e we probably don't need to play a sound when we equalize already-equalized shields, since we don't play one when we augment already-augmented quadrants
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3973 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:51 +10:00
Goober5000 b29a03e55c when alphabetizing campaigns, ignore "the" at the beginning of a title
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3972 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
Goober5000 b30ec50714 invert the do-collision flag into a don't-do-collision flag, plus fixed a wee lab bug
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3971 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
Goober5000 da15e932a4 fix spelling
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3970 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
taylor 5c5b2f7442 make sure that we don't set the 2d view matrix and then not reset it (Mantis #1269) clean up some of the fullneb mess that was causing some initial setup issues (colors wrong, etc.)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3969 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
Goober5000 50d2b9ae9b sort campaigns by title, not by file name
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3968 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
Goober5000 658b1e6024 new feature: shield generators that control whether the shield is up
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3967 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
Goober5000 ee0aecd193 take all subsystems into account when displaying repair gauge
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3966 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
Goober5000 6fc3e909ca prevent the AI from falling into the black hole of disarming a turretless ship
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3965 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
Goober5000 56508ee06f small tweak
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3964 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
Goober5000 53d16012a7 made support ship shield control a bit less of a hack
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3963 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
taylor 1aa75f7edd remove NO_SOUND
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3962 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
taylor a7ed006559 remove NO_SOUND fix glow bank sexp bug (Mantis #1250)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3960 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
taylor dd6155a914 fix a mouse button issue (just an issue with newer SDL versions?)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3959 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
taylor 7647ab45b3 a quick debug test to catch an error and FRED doesn't catch on it's own yet
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3958 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
taylor 8857f0bf65 performance optimizations: - fvi_ray_boundingbox() is faster and should be less prone to compiler/optimization/platform specific issues - clean up or obj_check_all_collisions() which is a good bit faster now
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3957 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:50 +10:00
taylor 662f5bdc88 obsolete gluLookAt() in favor of doing it manually, should be slight faster and more precise
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3956 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
taylor b01999d2f0 performance/accuracy optimization for the (un)size functions
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3955 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
taylor a14410b658 make sure that our color is getting set properly (should properly fix the red/green tint problem, Mantis #1041) slight optimization for Theora YUV->RGB converter
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3954 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
taylor bb8e5f257f add the "show all" hotkey to the cutscene viewer
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3953 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
taylor f6763b8eaa add the number of files that CFILE is going to try and use in each root to the debug info optimizations for cf_find_file_location_ext()
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3952 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
taylor e0bf5f25c5 add better support for Ogg, Vorbis and Theora libs/includes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3951 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
Goober5000 740e20f684 miniscule tweaks
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3949 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
Goober5000 e7456b1c43 bah, change this so it's mostly diff-compatible with 3.6.9
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3947 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
Goober5000 dbc95e47f1 add a few ship flags that weren't on the dialog
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3946 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
Goober5000 1164c1f7ab fix two bugs: --default ship flags in the iff_defs table were not correctly translated from parse flags to ship/object flags --ships were created with default allowed comm orders regardless of which team they were on
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3945 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
Goober5000 6abfb88b50 hm, didn't notice this new feature
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3944 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
Goober5000 79c9d90938 Cleaned up the ship-weapon collision code for both conventional weapons and beams. Improved readability and clarity; untangled program flow; cleaned up sloppy enhancements. Fixed a few bugs too.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3943 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
Goober5000 1cc1dd77df remove obsolete and unused shield flag
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3941 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
wmcoolmon af9a49e02c Couple of commented-out features.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3940 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
wmcoolmon a38cc033a5 Make an error message prettier
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3939 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
wmcoolmon 39ab0db17d Fix a parse bug
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3938 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:49 +10:00
Goober5000 ce8831a49f fix an old subtle bug
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3937 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
phreak ceb55ef40e the particle batcher needs to work with static (non-animated) textures as well
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3936 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
Goober5000 14965a90b0 d'oh... thanks phreak
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3935 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
phreak b7d24781ac spawn weapons now have the option of passing a target lock onto their children.
http://www.hard-light.net/forums/index.php/topic,45166.0.html

git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3934 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
phreak 8e08137e92 Committing what i have of the MSVC 2005 project files. FRED2 still isn't there yet, but I don't want to lose what I spent time on.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3933 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
Goober5000 c908adb515 fixed two of Bobboau's bizarre bugs
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3932 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
karajorma 9691112aa3 Well that's going to cause a few crashes (Thanks to ni1s for spotting it)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3931 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
phreak 16cb751909 We don't want to modify the clip plane variables in htl mode once we've moved them to gr_start_clip()
do we even need htl mode checks anymore?  welcome to the 21st century

git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3930 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
phreak ff9ee24bf3 Do clip plane testing on thruster glows and thruster particles
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3929 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
phreak 7ef65ac239 memset() does not go array, length, value it goes the other way around
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3928 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
Goober5000 36bd4ca967 oops
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3927 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
Goober5000 338828a7c9 --fix the empty ship name / U.R.A. Moron bug caused by WMC's commit --properly update a ship score when its class changes (in FRED or via change-ship-class or via ship loadout)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3926 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
Goober5000 4da59a7059 minor tweaks to the reset score feature
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3925 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
karajorma 2521541fdc Fix add-remove-escort to actually use a priority. Add yet another missing bit of Network variable code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3924 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
Goober5000 ad95a28767 removed code that isn't used (see Mantis 1219)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3922 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
wmcoolmon 53810a1b76 EXPERIMENTAL turret update, housekeeping for Lua
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3921 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
wmcoolmon 199948f4cc Fix mantis bug; add getOrientation to CVS
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3920 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
wmcoolmon f7e5abbee4 Fix non-opaque circles.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3919 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:48 +10:00
karajorma 71e1654e33 Fix bug in the set ammo and weapon SEXPs Add the reset-orders SEXP Add support for network variables
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3918 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
karajorma 5bca4ce31b Fix bug where orders you gave last mission are sill accessible to the Order SEXP.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3917 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
karajorma 7237bec390 Hmmm. Forgot to commit changes to support network variables and setting ammo/weapons to HEAD as well as 3.6.9.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3916 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
karajorma 9b9dfb64e5 Hmmm. Forgot to commit changes to support network variables and setting ammo/weapons to HEAD as well as 3.6.9. Also add Juke's bug fix for streaming weapons.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3915 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
wmcoolmon f8f3b2c9e7 Lua - fix one thing so you can break another.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3913 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
wmcoolmon a3ec50ee2c Fix HookVariables-related stuff, and add errors in case it ever gets broken again.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3912 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
wmcoolmon 6a0bdcb8c7 Maintain "fileless fs2" capability; change ScriptingVariables library to HookVariables(hv)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3911 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
bobboau b95880ac6b fixing some minnor errors with the batcher code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3910 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
wmcoolmon e0d7eea877 Whoops, fix merge error
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3909 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
wmcoolmon 03d4e7b41b Finish off warning fixage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3908 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
wmcoolmon e79d2934c6 Finish off warning fixage; standardized defines in MSVC_2003 project file
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3907 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
bobboau aea0422b0a fixing a thruster bug, a geometry batcher bug, and trying to fix a shield bug
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3905 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
wmcoolmon ff8572af7d Fix CVS & correct various warnings under MSVC 2003
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3904 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:47 +10:00
wmcoolmon 475acdf495 Fix HEAD
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3903 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
Goober5000 761e430eba operator precedence FTW! :D
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3901 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
bobboau a3daa5ff3b ok, something aparently went wrong, last time, so I'm commiting again hopefully it should work this time damnit WORK!!!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3900 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
wmcoolmon de3145b479 Fix +Override, attempted fix for code adjacent to [] causing crash in scripting.tbl (Unreproducable), and (Untested) fix for script-eval.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3899 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
wmcoolmon 9405a8c1e2 Attempt to remove various warnings under MSVC 2003, mostly related to casting, but also some instances of inaccessible code.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3898 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
wmcoolmon 9d8d5a3448 Updated MSVC 2003 project files to work out of the box
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3897 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
wmcoolmon 64e2faacea Removed MSVC_7 folder due to redundancy
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3896 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
bobboau 9404744602 made a last second change of mind on something, made it a bit safer
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3895 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
bobboau b72b673efd left some test code on super sorry
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3894 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
Goober5000 ac732f8136 hmm... I guess when I fixed this back in 2004, I fixed it the wrong way :D
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3893 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
bobboau 40cb581405 made the new index buffers actualy work, now that I had something to test it with fixed a small problem that kept it from working
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3892 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
bobboau ac3b174c27 forgot about this header in my last commit
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3891 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
bobboau 916a09975b makeing D3D compatable with 32 bit index buffers, and fixing a minor directx technicality in the texture compression code.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3890 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
taylor ddc112141d remove non-dark support per earlier discussions: remove -jpgtga and -pcx32
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3889 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
taylor 59814715fc fixup texture addressing stuff so that it works better bits of cleanup remove non-dark support support for releasing bitmap system memory when transfered to API memory
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3888 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
taylor 6da93821b6 don't bother trying to load message WAV when sound is disabled
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3887 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:46 +10:00
taylor 24905b2638 compiler warning fixage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3886 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor 030270f2a8 add support for new IBX format which can support up to UINT_MAX worth of verts (NOTE: D3D code still needs to be made compatible with this!!)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3885 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor ec03cbc46d remove -jpgtga, set 32-bit mode as default (the OGL code will automatically fallback to 16-bit is needed)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3884 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor aff36fce1d little bit of cleanup per earlier discussions: remove -jpgtga and -pcx32
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3883 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor 15e8396c2e remove the non-dark stuff, it only works on PCX files and stuff to use it has already been ripped out per earlier discussions: remove -jpgtga and -pcx32, set image load order to DDS->TGA->JPG->PCX some debug log cleanup remove bitmap data from system memory once it's in API memory
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3882 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
Goober5000 0ed509ace7 remove WMC's limbo code, per our discussion a few months ago this will later be handled by copying ship stats using sexps or scripts
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3881 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
Goober5000 3ff70bba49 yet more tweaks to the WCS death scream stuff added a ship flag to force screaming
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3880 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor c9273590c2 fix up Windows window/cursor handling so that it's up-to-date and more compatible make sure that we handle background clearing ourselves, fixes several little issues fix popup warnings to work a bit better and not screw up the game so much or make it difficult to interact with them
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3878 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor 037f784227 cleanup various bits of obsolete or unused code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3877 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor 7b14ead21c bunch of cleanup and minor little fixes get rid of GL_activate and GL_deactivate hold-overs various fixes for platform window/cursor handling we don't need texture combine support most of the time, so don't bother with it (fixes fonts not displaying properly) disable depth testing if we aren't using a zbuffer get rid of secondary color crap that was just messing things up, there are better ways to do it if we need the basic functionality back later dump old gamma ramp support, we don't really need it at this point do edge clamping by default instead of repeat
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3876 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor 414a0643dc clean up extension list and comment out the things that we don't use
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3875 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor da0037de69 slight change to emission light settings change default ambient light settings back to proper values add support for lighting falloff with directional lights some minor performance improvements
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3874 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor 9e6ca810c6 various bits of cleanup fix for anistotropic filtering messing up with lod bias be sure that we always reset the properly active texture get rid of old gamma stuff loading fix for cubemaps disable apple_client_storage for now fix for ATI problem with framebuffers and corrupting starfield bitmaps
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3873 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor bbbaa95841 some general cleanup add emissive light falloff support for asteroids properly setup env texture matrix get rid of secondary color crap, there are better ways to do it anyway
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3872 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor 94b58a0eac remove some dead code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3871 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor 28b7d2a716 fix thruster 2 length factor tbl entry so that it has the proper name
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3870 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor 7ec286cf81 cleanup shockwave code a bit make Shockwave_info dynamic lot of fixage to allow 2D and 3D shockwaves to work better fix for Mantis bug #1148 properly handle both "none" and "<none>" for 2D and 3D shockwave names better handling, preloading wise, of 3D shockwaves and their textures
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3869 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:45 +10:00
taylor f22c66fe40 safety check to make sure that we don't end up with non-player-usable weapons in the weaponselect pool (Mantis bug #1196)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3868 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor d4db6d3e5e be sure that we can handle both "none" and "<none>" in ignored filenames
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3867 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor f2d4fb19cc add position info for weapon energy text make sure that we can't target a hidden jumpnode rest of the weapon switch fix
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3866 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 39f45f0f8e fix NULL ptr reference when a weapon doesn't have a tech description
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3865 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 3e97bd1ce4 taking Bobboau's advice: make sure that anim angles are kept in sane values
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3864 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor ba421d8d68 fix tertiary glow sizes fix model vertex normal data that was being read/written incorrectly under OS X (still don't know why this was a problem, but this fixes it)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3863 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 91c2731521 crazy-freaky-cool OS X sound crash fixage fix sound resource exhaustion from using too many buffers allow loading of ogg or wav based on which is found first rather than tbl filename (fixes crash when Theora movies end up in wav code by mistake)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3862 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 8d78a6fa67 fix problem with model unloading that happened because skyboxes aren't reset properly be sure that skybox textures are paged in properly there needs to be a case insensitive string check when looking for existing bitmap filenames
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3861 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor bc64eb6ead make expl info dyanmic fix possible out-of-bounds on expl lod checking fix memory leak from modular tables
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3860 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 7bc01f1aaf build for for newer GCC versions
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3859 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 6dbb7b65c2 add missing Lua files from recent update
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3858 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor f3dcb14e39 add in Theora build support add a /y to the copy line (got tired of doing this myself since it won't overwrite by default) remove DirectShow files
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3857 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 3c4a168672 make fire-on-normal return value a little more obvious fix the "infinite genius" move I made by breaking turret movements ;)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3856 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor cad6587e70 remove DirectShow files, they are no longer supported
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3855 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 1c11efe082 proper envmap generation for OpenGL
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3854 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 26a8b0c62f fix for Mantis bug #1195
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3853 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 38de6cc5c3 clean up defines a bit
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3852 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor d56a2b33bb remove avi and mpg from supported extensions
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3851 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 15cad9783b fix bm_page_in_texture() so that it will load all frames of an animation (caused slowdowns in-game with it)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3850 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor d2a5b9a6b9 add Theora player build support add in the waypoint files
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3849 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor ae1cc30563 add Theora player remove DirectShow support from movie player fix triple-buffer page flipping problem (Mantis bug #1190)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3848 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:44 +10:00
taylor 55e00902e4 add Theora lib header
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3847 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 246900788b don't display any error messages when there are no background bitmaps to load
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3836 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 e40ee6735e fix bug where built-in lament messages were never played
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3835 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 99b7eea1c2 convert a mission variable to a mission flag
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3834 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 ee3a0e9708 move this to the Message location of the mission
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3833 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 fefa022f9a add a feature for specifying the source of Command messages
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3832 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 4d2d3be017 taylor's bugfix
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3831 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 6fdb5c8333 breathalyzer for WMC
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3830 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 f98d9af6b8 gah, not this again
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3829 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 96887b0a0b update to Lua 5.1.1
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3828 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 904c80dc39 add feature to reset ship scores to what they are in ships.tbl
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3827 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 85b3098f72 fix #include path
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3826 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
wmcoolmon 7539f78024 Add missing waypoint files
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3825 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 1348a3758c fix spelling... *twitch*
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3824 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 3b732fab3b assume ships-with-bays which haven't yet entered the mission are valid for syntax checking
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3823 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:43 +10:00
Goober5000 59583e8457 removed obsolete limits
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3822 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
wmcoolmon fb94960327 WMC codebase commit. See pre-commit build thread for details on changes.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3821 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 7c64c7ada8 added to the main branch as binary
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3817 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 ff27f47392 allow parsing of similar ship copy names properly (Mantis #1178)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3816 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 6dd131d118 make chase view and external view toggles independent (Mantis #1087)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3797 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
karajorma 2a1767951c Move the voice recognition init to stop Windows complaining and failing to init it.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3796 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 341c99796e fix Mantis #1163
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3795 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 91b722ae7d reverted the buggy commit that caused Mantis bug #1101
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3773 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 9ba23f4357 make an error message more descriptive
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3772 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 5facef281f the grammar nazi strikes again!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3769 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 38f922a22a prevent false positive while error checking
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3768 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 1c72d7c7c3 if a wing of ships is docked to something, that entire wing must have an arrival cue of false
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3767 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 cbfecea816 holy crap, this had the potential to mark the locked-true sexp as known-false, which would seriously screw a lot of stuff up
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3766 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 51e60dfa3a this may have been an oversight
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3765 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
Goober5000 3bedcbc561 FRED again updates backgrounds while the user is editing them
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3764 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:42 +10:00
taylor c968496bc2 handle knossos warp effect flip in a slightly better, slighter safer way (Mantis bug #1048, plus a couple that weren't filed)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3761 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 66c3dcc5df do no culling on the warp effect model_render call properly (doesn't appear to break anything now that it actually set to not cull)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3760 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor f9d1b75bff updated outwnd code for both Windows and non-Windows: - make print filters dynamic - fix various little bugs and issues - cleanup some non-used variables (non-Windows) - put everything under NDEBUG like it was, or should be - change to using data/fs2_open.log for log file (Windows) - change to using data/debug_filter.cfg (Windows) - make the extra debug window optional, and disabled by default (Windows) - fix some possible NULL references - clean up the SAFEPOINT() crap
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3759 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 274c841b64 handle the video registry entry better support for new Windows window creation code various bits of minor cleanup
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3758 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor b0f1a79bad properly support the updated window create code (all told: should take of of Mantis bugs #542, #624, #1140, and possibly #962 and #1124)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3757 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 1506ed4576 new window creation code for Windows (gets rid of some stupid :V: voodoo for the software/glide stuff) use detect_home() on Windows too (needed for now outwnd code) some bits of minor cleanup
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3756 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 1a2f24eb66 various bits of little cleanup add the debug cmdline printer to FRED, so that we can make use of that info in the FRED-debug case too
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3755 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 92de065a4f various bits of little cleanup get rid of some more compiler warnings
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3754 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor b3136d2214 add some needed wing leader checks to prevent Assert()'s and out-of-bounds problems when the leader is dead/dying (Mantis bug #1134)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3753 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 440fa97d49 clean up skybox model selection and usage to work better with FRED make sure to go ahead and set the skybox model when it's set/changed in FRED go ahead and load/set the envmap when it's set/changed in FRED get rid of extra envmap image types, only DDS is actually supported (not sure what the hell I was thinking there)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3752 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 778a353728 fix the stupid safe_string thing ("LogFile" was already closed by the time it tried to write)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3751 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 09d2583123 clean up AVI movie stuff a bit: - use the default black brush for clearing the screen, it's a little less stupid this way - have the AVI player send messages back to the game rather than trying to poll for that extra crap - remove the only DivX6 fix, there is better addressed by newer window handling code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3750 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 4f491f99bd clean up some cmdline options which were/weren't FSO only add back the "-32bit" option, for retail compatibility (doesn't do anything, it's just there to avoid the unknown option message) add "-debug_window" to turn on the Windows-only extra debug output window (it's off by default now, only logging to file instead)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3749 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
taylor 802b7aecbb fix stupid bay depart object animation bug (Mantis bug #1133, part 2)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3748 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
Goober5000 f51d8e7de5 a much better fix for built-in arrival messages... it needs a new feature to fully work for custom wings though
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3747 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
Goober5000 631d1f2318 fix spelling, and synch with voicerec.cpp
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3733 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
Goober5000 193f3e3cda remove directory-specific information
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3732 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
phreak b70c325d6c oops, forgot a break statement
*scrapes off the rust*

git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3729 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
Goober5000 1cb679b004 added MadProf's voice recognition enhancements
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3727 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:41 +10:00
phreak c73b4b8186 two fixes:
1) Fix for mantis #1099, part 2.

2) when changing the player's ship using debug_cycle_player_ship(), initialize the
 primary bank starting capacity so the support ship will rearm it.

git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3726 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
phreak 164405aecb Don't copy parentheses to parse buffers if outside of quotation marks. Otherwise the parsing syntax will be copied to said buffer and some warnings/errors would occur.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3725 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
bobboau 03ca7f9849 fixed D3D environment mapping
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3723 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor 91cd637f73 fix return values (something that was different between 3_6_9 and HEAD)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3722 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor 90e53277ac updated/fixed modelanim code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3721 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor 938275b159 fix some of the envmap issues - use proper hand-ness for OGL - fix distortion - get rid of extra index buffer requirement change starfield bitmaps to use an instance matrix rather than going through all the trouble of resetting the view matrix basic cleanup and get rid of a couple of struct/variable naming issues (compiler sanity) make double sure that we aren't using culling of z-buffering when rendering starfield bitmaps
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3720 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor 13ee1b85db enable/disable alpha test based on blend mode (found this hidden in an old tree, may help with blending the newer alphablend mode)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3719 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor b16ce3e1f2 if a submodel anim fails to start then move directly to ready position flag (set it up to do this, just forgot to do it ;)) (fix for Mantis bug #1133)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3718 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor f4a3cb0a0f make glow_point array for thrusters and glow_point_banks dynamic (a proper fix for old Mantis bug #43)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3717 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor 420c35aba5 forgot to reset default value for Interp_warp_alpha when it was changed earlier be sure that we are using the proper zbuffer setting when rendering thruster glows
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3716 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor d9360337a8 forgot this part of the render box fix (obviously no one ever really tried to use this feature, since it has never worked)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3715 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor fca993a805 ok, so apparently that did actually do something ;)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3714 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor 9e4c322740 updated/fixed modelanim code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3713 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor 4403762592 more cleanup of warp_global crap scale render/detail box limits with detail level setting make sure that we reset culling and zbuffer after each model buffer that gets rendered
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3712 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor f7201f7046 updated/fixed modelanim code add ships.tbl subsystem flag ("+fire-down-normals") which will force a turret to fire down it's barrel line (Mantis bug #591)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3711 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:40 +10:00
taylor 3536c39466 updated/fixed modelanim code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3710 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor 32f1b13426 grrr ... fix dos EOL chars
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3709 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor 36f80a7355 rename set_warp_globals() to model_set_warp_globals() remove two old/unused MR flags (MR_ALWAYS_REDRAW, used for caching that doesn't work; MR_SHOW_DAMAGE, didn't do anything) add MR_FULL_DETAIL to render an object regardless of render/detail box setting change "model_current_LOD" to a global "Interp_detail_level" and the static "Interp_detail_level" to "Interp_detail_level_locked", a bit more descriptive minor bits of cleanup change a couple of vm_vec_scale_add2() calls to just vm_vec_add2() calls in ship.cpp, since that was the final result anyway
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3708 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor 60ee8f6044 a LOT of cleanup: * remove a bunch of old/dead code * some reformatting to help with readability * rearrange/rename some code so that it is a little clearer * move thruster glow code to it's own function (model_render_thrusters()) make HTL model buffers dynamic fix detail boxes so that they actually work for the first time
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3707 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor c76596e044 add "Render full detail" support to the lab as well
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3706 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor e65ac0202e fix compiler problem due to change in parse_init() function fix dos EOL chars
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3705 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor ccb26d6e1a add a "Render full detail" view option to render models at their full detail for the LOD (for render/detail boxes, Mantis bug #1121)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3704 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor bf5b34e80e give the standalone chat box a horizontal scroll capability, not terribly accurate but it's good enough for the purpose (Mantis bug #1095)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3703 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor ae10003f72 add envmap selection to background editor change skybox selection to be a text entry or browse instead of only text entry allow envmap selected in background editor to be used by FRED make texture replacement work in FRED for ships (Mantis bug #1068)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3702 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor d3ff60f166 fix the cmdbrief editor deleting the wrong stage (Mantis bug #1115)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3701 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor cb5b0042e0 fix loading callback issue in standalone
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3700 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor 17adb27f4f don't require hardware GL if running FRED (this is mainly for my benefit since I always forget to add that locally)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3699 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor 4adea7b1d0 fix the envmap-getting-rotated-by-turrets bug (though it did make me chuckle a bit when I first saw it ;)) try to reuse old view setup info, if we are using the same settings again (for speed up purposes, will be a bigger deal when bumpmapping gets here)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3698 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor a8b0b57925 fix Personas memory leak (not really an issue, I just got tired of seeing it in the Valgrind reports)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3697 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor 42b7d023ed remove a basically useless debug message fix parse_init() so that it doesn't absolutely have to init sexps (doesn't need them when getting basic info, and causes memory fragmentation otherwise) fix multiplayer mission info getting to just get basic info (fixes a couple of minor multi issues that were already fixed in single)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3696 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor e24d054410 fix a memory leak that Valgrind was complaining about (happens mainly when you have a mission without a briefing)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3695 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor 3665f9c80d various bits of cleanup (slight reformatting to help readability, remove old/dead code bits, etc.) deal with a index_buffer memory leak that Valgrind has always complained about make HTL model buffers dynamic (get rid of MAX_BUFFERS_PER_SUBMODEL) get rid of MAX_BUFFERS make D3D vertex buffers dynamic, like OGL has already done
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3694 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor eb44c69bcf fix for Mantis bug #1104 (can't use a ":" in chat)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3693 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:39 +10:00
taylor dc8b03f68a various bits of cleanup (warning messages, things that Valgrind complained about, etc.) fix an out-of-bounds issue on Sexp_nodes[] which was leading to stack corruption
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3692 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 6f9ddbfd4a --prevent the ai from "forgetting" that it's attacking a wing (fix for Mantis #1131) --move AI_CHASE_WING goal check so that it will properly short-circuit when appropriate (discussed in the same bug)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3688 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 e0c6eeff25 minor bugfixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3687 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 b33ea1169c fix is-event-x-delay optional argument type
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3686 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 d4242fee13 improve error message
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3685 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 8ff52a5f57 improve error message
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3684 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
karajorma ad0c943fed Fix for Mantis 1017. - Hope we've seen the end of that damn persona bug
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3683 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Kazan 0f2cca5c4b Absolute speed, not forward speed, for hud speed reticle - fixes the guage for gliding
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3681 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Kazan 902d1df362 prevent autopilot initialization while player is gliding
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3680 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
taylor a846582d94 make "TBL Info" button in ships editor handle modular tables (Mantis bug #1130) fix bugs where ship names with leading '@' or trailing whitespace didn't get compared properly in "TBL Info"
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3677 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
taylor 71cfdd5f76 remove Assert() on Viewer_obj for supernova sun processing, it's not really needed and a NULL obj is easily dealt with by the code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3676 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
taylor 10cd1b08c9 add the part of the fix which actually did something ;)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3666 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 f44e8b46f7 fix error line reporting (Mantis #1120)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3665 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 c503ef414c moved some stuff around in the sexp menus
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3658 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 5d81316c65 clarified this; it was confusing before
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3657 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 b710bbcc34 make sure to only add the sexp callback once
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3656 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
wmcoolmon 408a2156c6 Fixx0r FRED
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3642 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
wmcoolmon 01b4fad60a Fix extra jumpnode settings not saving. They still don't show up in FRED, unfortunately.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3641 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:38 +10:00
Goober5000 e834420b64 better safety check
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3640 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
Goober5000 9f0d8f5c53 betterized some things with mission arrivals and departures
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3638 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
Goober5000 a195fe2a3f make sexp nodes dynamic
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3637 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
Goober5000 cd2953a8c9 make sexp nodes dynamic
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3636 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
Goober5000 28b856eb84 preliminary commit of sexp node bump... fred only, just changing some names for clarity
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3635 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
Goober5000 3bcb1fae90 bah
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3634 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
Goober5000 7b1dad27b3 nitpick
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3632 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
Goober5000 9360755de9 fix forum links
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3631 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
Goober5000 bc645de98f bypass annoying warnings for nonexistent bitmaps
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3630 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
karajorma 8ba5dd2af3 Fix for Mantis 1092 - (Support ships damage hull)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3629 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
Goober5000 52b0262321 <nelson> Ha, ha! </nelson>
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3627 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
karajorma 81f0690b2d Remove the extra ship_class variable. I'd already added on as part of the team loadout changes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3626 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
taylor 239ee80362 handle another null vec warning which can happen during a multiplayer respawn or certain death sequences (Mantis bug #1090)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3625 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
taylor 7a1d701bc7 clean up some old software rendering stuff that we don't use any longer remove grzbuffer.*, since all it did was give us 3 variables, which were moved to 2d.*
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3624 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
taylor 8b0d64f4f1 For redalert stored data be sure that dead ships don't come back, and departed ships come back just as they left (Mantis bug #810)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3623 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
taylor 1dd8b21422 make sure that the armor stuff gets initted (should fix Mantis bug #1080)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3622 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
taylor 884ecee601 meant to do this before but forgot about it (just replaced "(4.0/9.0) * PI" with it's result)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3619 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
taylor d5f3ec6a4e if shockwaves weren't loaded then don't try to unload them (fixes standalone crash)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3618 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:37 +10:00
taylor d34bc91738 make sure Multi_create_bitmap is initialized properly since it might not be otherwise in standalone
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3617 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
taylor b6ee2a4f82 fix for the "branch" bug (still a minor usability issue however, see Mantis bug for details) add a popup to the loopbrief screen when you press ESC, so that we can either accept or decline the loop offer
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3616 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
taylor b27fad2e1e bit of cleanup (technically the vertex buffer stuff is part of a much larger change slated for post-3.6.9, but this should be a little faster)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3615 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
taylor d7d5107a86 re-fix this crap that I managed to break last time (was Mantis bug 1066 I think)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3614 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
wmcoolmon f145570958 Fix OGG bug where sound files were always allocated 16 seconds of wavedata
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3613 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 9b3ad06f06 check that targetview model files exist as well
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3606 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 deb684d140 more accurate message number
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3604 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 fb2e235608 fix spacing
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3603 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 0d23309a35 find message sender too
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3602 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 01d12eafc6 newline tweaks
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3601 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 950dcfa869 small bugfixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3600 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 02e55270a2 enhanced voice acting manager, now with script generator :)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3599 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 3949d6efd0 fix crlf
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3598 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 ebdc00a523 more flexible checking of generic messages
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3597 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 8ec6c1a67d merge voice file manager into voice acting manager, plus make a few tweaks to it
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3596 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
Goober5000 9af2763943 fix for Mantis #1070
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3595 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
taylor 5b864af888 more standalone server fixes: - add some basic bmpman functionality to grstub, since it needs to do something at least - add missing gr_* function ptrs to grstrub - (re-)enable radar and hud setup functions that used to crash (problems are fixed now) - deal with default pilot file properly (also caused a bmpman headache) - don't bother with Multi_common_icons[] in standalone mode (they don't load, so don't let them unload either)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3594 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
taylor 1c516c2540 clean up the function ptrs so that it's a bit easier to read
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3593 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:36 +10:00
taylor 8186572d15 move FS2NetD connection checks to *after* it tries to connect ;) (Mantis bug #1065)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3592 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor de2fbfb48d fix for deletion of multiplayer pilots (Mantis bug #1066)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3591 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor 9430b78326 minor clean and code optimizations clean up view/proj matrix fubar that made us need far more matrix levels that actually needed (partial fix for Mantis #563) add debug safety check to make sure that we don't use more than 2 proj matrices (all that GL is required to support) set up a texture matrix for the env map to that it doesn't move/look funky
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3590 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor 8c0243b821 fix SAFE_STRCAT() so that it can work in an if() statement that doesn't have braces
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3589 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor acf10e3bba small optimizations and code cleanup use the real frametime for FPS counter stuff, no reason to deal with time compression there (Mantis bug #1058)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3588 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
Backslash 217b5beb99 Ok, maybe this one will be better. Sorry about that.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3584 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor a6bcb0b3e7 revert Backslash's commit, *way* too many changes there for a single friggin line
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3583 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
Backslash de16009a35 max_speed changed to get ship's max forward speed instead of max_vel magnitude, thus fixing trichord speed problems. (Mantis 1050, and early work by argv.)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3582 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
Goober5000 ac2ec50ba4 more descriptive warning message for docking paths
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3581 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor d4b831fa35 default to 44100 sound sample rate (OpenAL tends to works much better with this)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3580 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor 082977d664 add some extra FS2NetD safety checks around to prevent the code from doing stupid crash-happy things
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3579 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor 4134e985a5 have the joystick thread prevent the display and network from going to sleep or activating the screensaver if you use only a joystick to play
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3578 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor cf9095ed6e the resolution checks needed to be based on the unscaled res since you would have to include correct sizes for every single resolution otherwise (fixes a bug noticed in WCS)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3577 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor d54301f34a some gamma ramp fixage, still hasn't gotten a steller review from DaBrain but it does work much better than before, so I'll tweak it later if need be
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3576 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor e0b689c9bb neither of these two structs appear to be used anywhere, so lets just comment them out
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3575 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor b17794b9ed some basic error message/handling fixage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3574 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor a02ac92043 properly support 4gig of RAM, and don't totally freak out if user has more than that
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3573 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor cdb3c02fa2 properly fix the new_recommendation_text FRED problem, plus some real cleanup for that code in general, and some memory leak fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3572 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:35 +10:00
taylor 0ca738ff0a add default recommendation text for debriefing, it's either this or making sure that it's nul
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3565 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor e84a2e24b8 prevent FRED from hitting an Assert() that it shouldn't have had to hit in the first place
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3564 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor 7b2407dd4c fix for Mantis bug #1006
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3563 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor ecda5d2efa fix some stuff_string()'s that got missed previously
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3562 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor 166aafc603 forgot to check that error message to match the new struct format
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3561 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor d79e25ca97 bah! stupid.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3560 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor c1750c14ef might as well add this, just to be on the safe side (I haven't hit it anywhere, but it could be made into a warning if it starts getting hit)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3558 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor 34d198d30f be sure to setup/reset ship team data too when moving to a red-alert mission (Mantis bug 1042) (this will hopefully fix Mantis bug 860 as well, which is a separate but related issue)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3557 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor b0033e2d81 be sure that we still try to play a movie if we get to the cmd/brief screen right from another mission without debrief (Mantis bug 1043)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3556 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor cbe140ab76 restore MAX_AIFTT_TURRETS to retail level, and add comment as to what it means for the next person that tries to change it
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3555 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor ece636df39 revert to retail behavior for turret_should_pick_new_target() fix out-of-bounds issue
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3550 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor 471b758539 fixes for stuff_string() bounds checking
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3549 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor c29aa3e9e3 fixes for stuff_string() bounds checking stict compiler build fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3548 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor ba6773e0f2 compiler warning fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3547 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor 32aa4ccbeb fix bug where set-object-speed-* could set speed subjectively if left to default
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3546 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:34 +10:00
taylor 305a2d5855 fixes for stuff_string() bounds checking compiler warning and stict compiling fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3545 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor d47c1c9cab fixes for stuff_string() bounds checking compiler warning fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3544 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor baa43c4331 fixes for stuff_string() bounds checking make sure that default entries always get used in techroom if they don't otherwise have the techroom visibility flag fix crash bug where the first entry in the various lists wasn't ever initialized if there is no ship/weapon/intel info to show
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3543 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor 1ed5c7d6c7 various small compiler warning and strict compiling fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3542 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor dcf3ecd770 crap. ... again
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3541 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor 4a3e5826ee clean up the grstub mess (for work on standalone server, and just for sanity sake) move color and shader functions to 2d.cpp since they are exactly the same everywhere don't bother with the function pointer for gr_set_font(), it's the same everywhere anyway
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3540 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor 01dd0cf6d3 crap, there was supposed to be a multi check there
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3539 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor 4d018ff477 allow W32 init fallback if desktop depth is less than requested game depth (it may look like crap, but at least it will work)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3538 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor c7748312b8 bah! got the post-it sitting in front of me, but still forgot to remove this
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3537 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor 6175b6652b make Species_info[] and Asteroid_info[] dynamic
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3536 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor 6ed629949b quite a few fixes to handle missing campaigns better change load order for campaign loading to a full check: Player-specified -> BUILTIN_CAMPAIGN -> First Avaiable. clean up the getting of a list of available campaigns fix simroom issue where single missions, with the [V] icon, would display wrong (this was a retail bug, but it doesn't show normally) fix bug where, if a campaign failed to load, it would still appear available for savefile useage fix bug where, when resetting the campaign info, the num_missions var wasn't 0'd and it could cause a sexp Assert() during reset
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3535 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor 58a664c6c8 fix a compiler warning/error on Squadmsg_history[] init
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3534 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor dbc4ef06ac forgot an extension check (was this the background corruption bug???)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3533 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor 7c929e83f3 switch to using cf_find_file_location_ext() when looking for movies
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3532 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor b192b094ee various small cleanup and speedup changes add a cf_find_file_location_ext() function, which you can pass a filename and a list of extensions and it will search for all of them at once
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3531 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor c29957eb1a make muzzle flash info dynamic add support for modular mflash tables (*-mfl.tbm)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3530 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor e405e0e760 add font.h since the gr_set_font() function is only available from there now
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3529 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:33 +10:00
taylor 5702c16c87 don't try to draw beam sections if there is no valid texture for it, or if there is no width
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3528 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 1a3659ac2a make sure that we properly page in textures for 3d shockwave models
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3527 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 32d28c1de3 compiler warning fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3526 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor ffc6ca5117 some fixes for the standalone server - get init order correct for lcl and std init - turn off some cmdlines that are just graphics related when Is_standalone - skip radar_mission_init() (may need to rethink that though, it's bound to cause problems)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3525 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 8e5280a051 minor spelling/grammer fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3524 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 043321868c be sure to reset color and clear color before MVE playback (fix for Mantis bug #1041)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3515 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
wmcoolmon 9b08bcca19 New model & ship scripting stuff
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3514 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor ca4879c4ea fix for vanishing FRED2 cursor (Mantis bug #997), plus a little cleanup
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3513 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 1358f61e0d crap, knew I should have fixed that in the patch so that it would be right in both branches...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3512 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 240fabbdd0 fix things that strict compiling balked at (from compiling with -ansi and -pedantic)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3511 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 594fe17d61 fix for Mantis bug #1038 (glow point bank storage being wrong after changing ships in shipselect) fix things that strict compiling balked at (from compiling with -ansi and -pedantic)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3510 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 047bd9ac3f small optimization
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3509 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 29c9a124cf fix for Mantis bug #617 (with a very big assist from Shade who did most of the initial work on this)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3508 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor ec6a629cbe lower client/server version back to retail level, there was no reason to bump it in the first place
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3507 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor 40f101e51b add support for a server name in fs2open_pxo.cfg, rather than just an IP address for the server
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3506 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
taylor c3076eb0f5 fix for Mantis bug #687 (at least until better swarming code can be written, post-3.6.9) a quick speed/sanity check for turrets to be sure that they actually have a weapon to fire before processing them
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3505 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:32 +10:00
wmcoolmon f6be711610 Better static mouse cursor support
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3497 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon 759d4755a7 Update MSVC 7 Project files
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3496 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
Goober5000 2649c6a65d revert VOICER breakage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3495 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
Goober5000 d491750ad1 fix macros
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3494 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
Backslash 1d052f7a21 Make hud toggle apply to hud framerate, statistics, and camera position
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3493 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
Backslash 6632c806d9 Turn off gliding upon activating autopilot
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3492 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon 8debd63788 Commit of 'new' BTRL FTL effect work
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3491 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon 62cecf0968 Update to allow flak range to be manually overridden, and safeguard against NULL predicted_pos
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3490 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon 93f5fd829a Conditional hook
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3489 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon f76ec55015 enumerations; drawImage update; subsystem orientation and fireWeapon() member objects; many new weapons.tbl data variables; conditional hooks; modular scripting table support (*-sct)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3488 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon 8ab18d8257 Fix scripting HUD hook execution method
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3487 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon 7089b795e1 Don't force fs2_open to load motion debris.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3486 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon a4543e1c64 Cover-up a bloody annoying warning
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3485 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon f2ebe77471 Allow use of the techroom, even if no current campaign exists.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3484 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon 6f91252eaa Changes to allow for a species with no shield anim
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3483 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon b9b1793287 Fix bug (under Win32) where FRED would warn about unacceptable accepted orders, but not do anything about them.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3482 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
wmcoolmon cc2d2ee49e Added flag-to-string function for error messages
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3481 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
Goober5000 53feaed357 fix waypoint time to goal
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3480 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:31 +10:00
Goober5000 c3c6f6232f remove unnecessary warning
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3478 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
karajorma d0abb505fb Fix TvT problem with scores appearing incorrectly.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3467 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
karajorma d723c2e5fb Fix lack of Wingman Status indicator for Zeta wing in TvT games.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3466 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
Goober5000 1170157003 a tweak and a fix
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3454 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor 6f62889368 maybe optimize the (PI/2), (PI*2) and (RAND_MAX/2) stuff a little bit
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3453 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor 5d709bb63f slight math optimizations reduce COUNT_ESTIMATE since I added more game_busy() calls for models and it threw off the loading bar
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3452 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor 99d98d8959 slight optimizations fix AI shields to not get overly charged or overly drained when AI does equalize (it's closer to player now, but still within retail intent of function, I think)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3451 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor d617270f54 slight optimizations compiler warning fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3450 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor 686bbdd585 clean out some crap that we don't really need
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3449 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor 5dd1939e19 cleanup bugfixes error-handling (lots of crap got fixed to work better, and lets leave it at that, the commit log would be too long otherwise :))
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3448 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor b9594353e6 very slight speed optimization to avoid math that we really don't need to do anyway
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3447 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor 9eaa57e124 add custom IP option to maybe help get around NAT issues (I haven't heard whether this actually works or not yet though, but it's been out for testing all week)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3446 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor b2d33e0c49 add render option for no glowmaps remove render option for fog (why was this even there??) add tech model view for missiles with special tech models (will hopefully help spur some work towards fixing the currently broken models) handle Z-buf issue that made the lab interface disappear when the transparent render option was ticked
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3445 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor bf6a49525d OMG! MEMLEAK!!!! (maybe no one will notice that it was my fault ;))
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3444 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor 6003cea608 an int wrap-around issue could (and was) make debris not have electrical arcs (or lighting or sounds) since it would always fail this check
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3443 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor 9203064801 ever so slight speed up for bm_set_components_* (this crap is slow, and it's called a LOT)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3442 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor e8e3952513 "byte" was the same as "ubyte", but since "byte" has to be an extra #define on everything but Windows, lets just get rid of it
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3441 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
taylor ea4cf33a15 add decoder for 8-bit MVEs a basic fix for finding AVIs over MVEs, for mod dir stuff (this needs some CFILE support added to be a true fix, it's on the TODO list) little bits of cleanup for old/unused code make sure MVE filenames are correct in mvelib
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3440 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
Goober5000 e15b9581d0 disable duplicate model texture replace
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3439 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:30 +10:00
Goober5000 e755e262d3 if a modular table ship pof cannot be found, use the original one
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3438 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
karajorma 9d5f957d7c More cut & paste errors fixed and removal of the hardcoded warp out animation. Will now actually use the one specified in the table.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3423 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
Goober5000 618cb53d8e better handling of ballistic rearm sounds --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3420 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
karajorma bbddd92669 Doh! Minor fix
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3419 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
karajorma dd97133335 Another typo
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3418 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
karajorma 8da36a8ddd Fixed a typo which breaks team-score
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3417 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
Backslash 6b1fd17141 add .ogg to the list of recognized movie file extensions
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3415 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
Backslash 2d9c040b2c Quick fix to deal with the slide accel / decel inconsistency, Mantis 951.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3414 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
Goober5000 96275a5b6b nitpick
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3413 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
Goober5000 200e56f4bc extremely minor optimizations
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3412 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
karajorma 420809c288 Fix a Multiplayer bug where anything that included the name of a player wing was automatically considered to be a part of that wing.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3411 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
karajorma 9ca5def214 Fix Mantis 1009 - A problem with using the Change-ship-model SEXP
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3408 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
taylor 553f928558 fix for setting of texture lod bias
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3406 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
taylor 04e24d23f5 very small math optimization
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3405 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
karajorma 50ee65a9bb Fix a small problem with ballistic primary ammo. Forgot to upload this one earlier
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3403 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
Goober5000 9347bf9988 deprecate change-ship-model
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3401 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:29 +10:00
Goober5000 9aeec5daf9 make these consistent (pitch-bank-heading is the established order) --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3400 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Goober5000 83bd864198 add the multiple background feature --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3399 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
karajorma 4296118a3e Fix bug where end-mission SEXP only resulting in the mission ending for the server
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3395 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
karajorma 2ac9eb8f85 Stop multiplayer campaigns crashing if the campaign lacks a description
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3394 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Goober5000 b9a110b93f add a second method for specifying ship copies, plus allow the parser to recognize ship class copy names that aren't consistent with the table --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3389 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Goober5000 77592a98cf fix display of ship copy class names in ship loadout screen --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3388 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Goober5000 58f8bf7f5e fix display of ship copy class names in ship loadout screen --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3387 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Kazan f136b538e5 commented out glide_while_pressed changes until taylor deems them safe
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3386 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Goober5000 edf95b0f77 proper phrase case
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3385 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Kazan 2b5976a2f8 glide while pressed
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3384 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Goober5000 9b63771633 fix for Mantis #1020 --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3383 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Kazan 097b4940b5 resolve 1018 and an interface problem in fred2's ship editor
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3381 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Goober5000 c9432fd83f bah, revert
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3380 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
Goober5000 a5fd0083e9 stage 1 in multiple-background feature --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3379 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
taylor f04620dd78 check first stage warp arrival against all docked objects so we can not render them all if even one is 1st stage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3378 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
taylor 3dce69c7f8 when in external (non-control) view be sure to not include time compression speed in camera movement
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3372 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
taylor 1c59dd7af7 don't render extra lighting passes when fog is enabled, prevents fog fragment from getting added for each pass wobble wobble no more!!
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3371 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:28 +10:00
taylor 801924dbba switch from Assert() to basic error fixage for end-of-string white space check
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3370 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
taylor 0c147396fd include CF_TYPE_PLAYERS in special pilot path consideration, prevents moddirs from always getting and empty data/players/
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3369 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
taylor 6b692e048f don't lowercase the dir for chdir on non-Win32 since it could be, and probably is, case sensitive
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3368 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
Kazan 9a3be4e8f3 Lock player primaries during autopilot
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3367 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
karajorma 86592894a7 Fixed an error in ballistic weapons where only the server got the correct number of bullets in multiplayer. Fixed a rounding up error in get_max_ammo_count_for_primary_bank()
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3366 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
Kazan 82a4b70080 Resolve Mantis #1011
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3361 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
Kazan c29dd8e247 Optimize
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3360 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
Kazan 7892f9d1f6 Resolve Mantis #1010
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3359 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
taylor 7562b17c5c support for cmdline option stacking (a per option setting) so that things like "-mod derelict -mod mediavp" will end up as "-mod derelict,mediavp" to the game fix bug where white space chars didn't get dropped from the end of a option string like they were supposed to allow for something like "-ambient_factor 100 -ambient_factor 70" to use the proper value, the last one specified, rather than just accept the first instance
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3358 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
taylor 9774840088 minor cleanup/optimization to beam warmup glow rendering function various lighting code cleanups - try to always make sure beam origin lights occur outside of model - make Static_lights[] dynamic - be sure to reset to first 8 lights when moving on to render spec related texture passes - add ambient color to point lights (helps warp effects) - sort lights to try and get more important and/or visible lights to always happen in initial render pass
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3357 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
Goober5000 511d99402a fix a subtle and nasty bug --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3356 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
Goober5000 ef881c1421 fix for Mantis #1003 --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3355 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
taylor f106d752dd minor changes to game_busy() debug text - don't alloc it for bmpman, and make sure to only call on textures that we are loading - add text for model loading, gets rid of the long-wait issue when it appears to not be doing anything early on
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3354 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
taylor 13dfe103fb little cleanup
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3353 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
Goober5000 265f08fc49 add another method for calculating dimensions of docked objects, plus improve an existing one --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3352 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
Goober5000 b1a581487a fix help text --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3351 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
karajorma df588a7910 Fix for Mantis 996
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3350 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
karajorma a6cfd8137d Fix for Mantis 888.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3348 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
Goober5000 30f27da3c0 tweak control text --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3347 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:27 +10:00
taylor d5f2d2db88 make glow point banks dynamic
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3345 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor dff718944b fix some missile autocentering issues - use MR_AUTOCENTER and MR_IS_MISSILE flags to generate an autocenter for a missile if one doesn't already exist - don't try to autocenter loadout icons when rendered 3d
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3344 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor 17e4e28e5f maybe this will finally shut-up some of the people who have complained about certain mipmap issues
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3343 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor 44c635addb only do i2fl() on the font bitmap once per string rather than doing it per-letter (basically unnoticable performance boost) before doing alpha channel check, make sure the bitmap is valid, since it doesn't actually catch that until later in the texture code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3342 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
Goober5000 08f653f0fb move WMC's preload stuff into main preloader routine
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3341 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
Goober5000 2f9ad571c5 stage 2 of animation fix (add base frame time to each ship) --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3340 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor 8d2749639f missed the extern apparently
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3339 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor b8fbbc8f9c we probably need to be processing the number of weapons here rather than the number of ships ;) (Mantis bug #988)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3338 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor 0cb91d9854 change clamp mode for font/interface graphics, don't want the border factored in for scaling/filtering
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3337 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor 14eb67a3e5 add missing stub for game_get_overall_frametime()
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3336 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor 3beb39f3de fix for animated texture map issues (*part one*), this should be faster than before too, and fix inf-loop/div-by-0 issues
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3335 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor 92c6092b04 change compiler optimizations a little for release builds, use "Maximize Speed" setting, since it's basically using debug optimizations otherwise
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3334 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:26 +10:00
taylor 8c87508b3e fix for network afterburner support, this one should be compatible with all previous versions
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3333 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
taylor ef64332199 handle non-MVE movies a bit better in OpenGL (don't get freaky with the window, don't lose input, etc.) some cleanup to OpenGL window handling, to fix min/max/full issues, and try to make shutdown a little nicer
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3332 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
Goober5000 50b8d7ea2a * better formatting for substitute music options * better handling of all special FSO comment tags --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3327 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
Goober5000 0a01d6a4bb prevent labels from overlapping widgets
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3326 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
taylor c5d60b66ea fix the endless-loop fix ;) (this is what broke shield recharging btw)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3325 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
karajorma 90b79cd174 Fix afterburner trails in multiplayer (Mantis 895)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3324 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
taylor a42286877b fix undo system restore the two autosave points that got removed for some reason (yes, these are needed for things to work properly)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3323 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
Goober5000 b90e7941cd bah, make sure we're in the correct mode
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3322 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
Goober5000 90349360f4 tweak max speed function --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3321 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
Goober5000 e8b032882e fix INF builds
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3320 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
Goober5000 08b59bc175 ugh... FS2_VOICER isn't actually defined at this point, for some reason... but it looks like phrases.cfg will always be generated, so it should be okay to take these #ifdefs out --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3319 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
Goober5000 f58ced4ccc this shouldn't actually be in CVS; it's produced during the build process --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3318 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
Goober5000 0c4922f248 consolidate the "for reals" crap into a proper ship flag; also move the limbo flags over to SF2_*; etc. this should fix Mantis #977 --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3317 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
Goober5000 29551d1e87 iff defs should allow specification of both flag fields --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3316 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
taylor 9522e2fbba remove -allslev make CTRL-SHIFT-S hotkey work in mission simulator (it's a toggle, so you can turn it on or off while on the screen) fix a bug where blank lines would show up in the campaign list for branch/alternate type missions that are otherwise marked as not completed
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3315 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:25 +10:00
taylor 926fba9af8 require OpenAL 1.1 under Windows, I think it's causing problems for us to mix users with 1.0 and builds for 1.1 (having 1.0 is fatal to sound, but the game should still work, a corresponding Launcher change goes with this too) clean up some of the error messages to not say "DirectSound" is doing this or that, just say "Audio" instead
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3314 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
taylor 791c6885ac debug-build-only issue, make sure that thrusters are properly enabled if needed for POF based weapons when using cheat keys
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3313 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
taylor f2854de962 hopefully this should get missile viewing working decently again
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3312 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
Goober5000 ac9dea08b4 fix for Mantis #967 --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3311 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
taylor d689cd9f6b make sure to reset the optional maps after each buffer render (little scary that this wasn't noticed a long time ago)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3310 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
Goober5000 20935be473 fixed something that slipped by taylor ;) (caused by having extra flags in the main branch) --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3309 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
karajorma 4b2508ec63 Fix for Mantix #959. Campaign editor shouldn't crash on finding an empty mission list any more.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3308 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
taylor e6852a545c some better handling of OpenAL errors during init
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3307 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
taylor f482a89ab6 add some minor error catches for invalid values
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3306 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
taylor ca8fbc977f more big-endian fixage (seriously hope this is the last of it)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3305 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
taylor 2f0d12e022 rest of the map/glow changes - put glowmap activity back on a per-ship basis (via a SF2_* flag) rather than per-model - same for glowpoints, back on a per-ship basis - put specmaps and bumpmap back on a LOD0 and LOD1 affect (got changed to LOD0 only recently) - fix glowmaps for shockwaves again - add support for animated specmaps (mainly for TBP and Starfox mods) some minor code cleanup and compiler warning fixes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3304 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
taylor 0bf68d0550 add a render option to make the model not spin around, easier to work with in some cases, and better screenshots
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3303 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
taylor 5b570b795b newline fixage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3302 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
Goober5000 99bf855bcb fix ship type bug that Taylor mentioned --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3295 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
Goober5000 f20330eb13 add CVS headers --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3294 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
Goober5000 c9f39f527d remove obsolete (and hackish) flag --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3293 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
Goober5000 922d3f5584 WCS screaming stuff --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3292 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:24 +10:00
Goober5000 e00791d79f fix dumb endless loop bug --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3291 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 c2138e0fbb fix subtle change from retail... dunno if it's a bug, but best to stay on the safe side --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3290 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 5c9b21bde9 fix for Mantis #856 --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3289 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 d279ff8421 commented annoying redundant warnings --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3288 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 c969d5b4ef fix a couple of typos --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3287 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 1f9f692bfd 1) complete (almost) changeover to reorganized texture mapping system 2) finally fix texture animation; textures now animate at the correct speed --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3285 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 0f2daa67f1 fix for Mantis #571 --Goober5000/Backslash
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3284 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 6fb59c5921 spelling
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3283 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 b4fcd028f0 cvs comment tweaks
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3282 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 d2b28598f6 forgot this yesterday
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3281 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 2018c5eb3f unremove the storybook for now, but it will probably be replaced with a more complete version in a week --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3280 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 a622bf7e8e --in preparation for fixing an annoying animated texture bug, reorganize the various texture structs and glow point structs and clarify several parts of the texture code :P --this breaks animated glow maps, and animated regular maps still aren't fixed, but these will be remedied shortly --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3279 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
Goober5000 0e9983d8ef remove the storybook for now
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3278 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:23 +10:00
karajorma c7e72f6f9b Restore the Hostile Warning triangles and the "On your Six" warning messages.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3277 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
Goober5000 c8a2e196fe remove associated AI flags --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3275 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
Goober5000 92ddebade4 okay, I have no idea what I was doing there --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3274 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
Goober5000 d0cbc64bfa fix the "Game of TAG" bug; hopefully this won't unfix something else --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3273 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
Goober5000 c29a7a751a restore compatibility with retail ship types --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3272 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor c6f1934ef6 add in Goober's new files
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3271 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor 318136b5e0 account for some minor floating point error in the undock speed check
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3270 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor cb7ca8e3f0 fix various compiler warnings and things that Valgrind complained about
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3269 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor 0c8eaca26d make sure we don't process cmeasure homing more than once (this should also fix the incompatible network packet) fix flag check to be sure that we properly detonate missiles tracking cmeasures
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3268 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor b54e6f20af we don't use alc functions here so no real need for the header
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3267 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor e97e91d0ea make sure we only do ship related setup on actual ships
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3266 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor 853b4fddeb 32-bit PCX conversion doesn't do a bit swizzle so be sure we get the transparent pixel right in the first place to avoid the green
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3265 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor 93bf912d98 try to allow RAS VPN connects since they probably aren't dial-up and shouldn't be seen as such
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3264 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor ed0631ce6b fix so that multiple FBOs can be used with different sizes (plus a few other minor adjustments) fix various things that Valgrind complained about
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3263 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor 5c1abef3b6 add -disable_fbo option to help troubleshoot crappy ATI drivers address a strange resize error that triggers an Assert() in the texture code with mipmaps
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3262 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor 6ddbad120e be sure to properly reset fullscreen/minimized state vars as we switch between them remove the temporary -alpha_alpha_blend option fix screenshots on big endian fix various things that Valgrind complained about
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3261 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor d08247bd83 sync up current OpenAL changes - "SoundDeviceOAL" reg option for user specified sound device (used instead of "Soundcard" for OpenAL) - reset current context when we are leaving, may be leaving drivers in a bad state, and it hasn't hung up in quite a while - if sound card (which DS or OAL) is set to "no sound" then be sure to disable both sound and music fix various things that Valgrind complained about make sure we can report both AL and ALC errors fix for ds_get_free_channel(), it shouldn't return -1 on an AL error
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3260 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor bccaf2a699 add -disable_fbo to troubleshoot crappy ATI drivers remove the temporary -alpha_alpha_blend option tack on an extra byte to the flags.lch file so that the launcher can easily detect if it's an OpenAL build or not
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3259 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor f796a01756 fix various things that Valgrind complained about comp_type for DDS images will always be set to something, an 'uncompressed' type at the least
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3258 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:22 +10:00
taylor 77d2e20dda add/remove files so that 'make dist' works again
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3257 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
taylor e8d14cdc3f bump package version
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3256 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 1f06e3c2e7 add new files to project
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3253 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 268d23cb88 handle docked objects during death roll --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3250 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 5ee98bec89 fix comment in preparation for code commit --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3249 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 ec89e0dbba change back to ubyte --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3247 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 dbc7a006d2 slight optimization --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3246 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
wmcoolmon 1d4d3f5119 Fix loadTexture; fix subsystem indexing; fix getNum() for weaponbanktype; improve missing function error reporting when using LUA_INDEXER
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3242 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
wmcoolmon e99ef17c43 New function for scripting
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3241 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 9deaad0477 doh! sorry for blaming this on you, WMC --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3240 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 0f9caba58c cosmetics, plus revert an unnecessary if
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3239 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 190d222245 make ai-chase-any-except default to ai-chase-any (since it never really worked properly in the first place) --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3238 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
karajorma 2dfa7cb8aa Should be here too
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3236 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
karajorma cfcfb822e3 Make the ambient light sliders actually save their settings.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3232 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
wmcoolmon 6052f17add Remove Assert, should be caught by aforementioned warning
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3230 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
wmcoolmon 0d13a2654d Change an Assert to a more verbose Warning, in the case of issues restoring a red alert ship. Also, try and get some backup allocation of weapons in.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3229 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 c9a892a452 make warpout work properly even if the player is docked to something --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3211 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
wmcoolmon 4399c1c642 Mantis Bug 0000947: Ahh, so that's what this was for :P
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3210 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:21 +10:00
Goober5000 c9378b4d98 this is kinda superfluous
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3209 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
Goober5000 0813bf6a95 version bumpage
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3208 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
Goober5000 3b21cf5552 tweaked the version string --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3207 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
Goober5000 7a074e2472 better handling for 'G' key press --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3206 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
taylor 1ac71f3d5d remove previous attempts at the Y bug fix, it's now back to the retail code for that
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3205 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
taylor 44c381466a fix Assert() on value of face variable, it should be able to be -1 for non-cubemap images
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3204 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
Goober5000 20ced6370a remove /Og switch
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3201 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
wmcoolmon f45101a7dc Tweak events support; fix a few of Wanderer's bugs; begin model support
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3194 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
wmcoolmon 19ad21c88d Oh wait, I can just do this
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3193 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
wmcoolmon ed06faf99d Fix attempt #2 for mantis bug 0000900
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3192 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
Goober5000 63b0d7bde0 fix parsing/handling of debriefing persona indexes --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3191 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
wmcoolmon bd7e2bd627 Scripting support for events/directives
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3190 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
Goober5000 eb62ad1738 update credits
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3189 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
karajorma 3388506cc5 Fix 130 ships limit for Inferno builds
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3184 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
wmcoolmon fcba4cada4 Fix the getScreenCoords function.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3182 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
wmcoolmon b840fb32d5 Not sure why I didn't catch this when compiling earlier...
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3181 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
wmcoolmon ca5777adfe Move fog disappearance factor to objecttypes.tbl
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3180 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
wmcoolmon c87db8a371 Link in some scripting limbo support
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3179 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:20 +10:00
wmcoolmon 0b582e91eb Pass to get any files that I missed
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3178 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon 4ab913d3c8 Limbo flag support; removed unneeded muzzle flash flag
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3177 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon a3599c2621 Begin multi-turret-guns toggle work
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3176 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon eeb941324e Limbo flag support
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3175 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon 3f685dae15 Limbo flag support; fix scripting debug bug
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3174 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon c6367345c9 Limbo flag support; further scripting 3.6.9 update
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3173 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon e0e497faf0 Limbo flag support
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3172 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon fc4096ddf5 Limbo flag support, even for as-yet-unused code :P
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3171 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon 391f48f4c8 "Limbo" flag support
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3170 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon 32fde03838 Fix muzzleflashes for non-flak weapons. Begin commit of limbo code.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3169 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon d9eba25e04 Scripting system prep for 3.6.9
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3168 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon 955237e707 Revert changes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3167 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon 2436225f7c Scripting system prep for 3.6.9
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3166 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon f2a8e7f280 Scripting system prep for 3.6.9
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3165 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
wmcoolmon e52c78e4ad Various sscripting fixes/updates; a couple new functions; esp. for mantis bug 0000893
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3163 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
taylor 56f81dbc45 properly initialize a few entries that were left zero'd by mistake
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3162 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
taylor 98e6495be0 don't Int3() here, it's actually going to happen in some cases when using -img2dds
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3161 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
taylor 7e0c7039fc this should hopefully fix cursor drift on multi-display configs
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3160 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:19 +10:00
Goober5000 fa62be36e1 change to ASCII
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3158 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
Goober5000 9d6a9f7df7 add fighterbay restriction code --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3157 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
Goober5000 cbbd87587d add capability for preloading special arguments NB: it's disabled for now, and it needs to be moved after sexps are parsed to work --Goober5000
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3156 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
taylor 5acf68533c remove init_decals declaration, it's in the header now since we build without decal support
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3155 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
Goober5000 9f6a77eb1b project changes for karajorma's fred stuff
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3154 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
taylor d9bafea31b change filename case to our standard (lower)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3151 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma ae0431cfdd Alt Ship Classes inital commit
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3150 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma 14f99808b8 Complete overhaul of how ship loadout is handled to support the use of variables for setting the class and quantity of ships present in loadout.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3149 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma 350c550ef6 Added the alt ship class button
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3148 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma 052c85eeec Added the set-class-dynamically and team-loadout-store-status ship flags
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3147 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma 0921519b90 Prevented the modify variable dialog deleting or changing the type of variables which are used in Team Loadout
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3146 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma b799e5d64f Team Loadout from variable changes. Added alt ship classes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3145 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
taylor 907a14d209 be sure that we properly apply light to submodels (mainly for debris), looks *really* bad otherwise
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3144 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma 35ba652848 Added Team Loadout from variables and alt ship classes changes
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3143 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma 557ec22d13 *** empty log message ***
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3142 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma e00c1a0f1f no message
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3141 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma 8dae1dd94c Added the Team Loadout Change subcategory Added the deal-with-ship-loadout SEXP. It's only temporary but it give people an option other than having to roll their own events to fix up loadout at the end of a mission. Added the num_assists SEXP to complement the num_kills one. Updated the is-ship-class SEXP so that it can also act as was-ship-class for departed and destroyed ships. Updated change-ship-class to work with ships that aren't in the mission yet. Updated sexp_modify_variable to actually do the multiplayer callback that V had noticed was needed but never actually added.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3140 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
karajorma e409144310 Added the Team Loadout subcategory (Only one SEXP in there at the moment but more will come). Added the num_assists SEXP to complement the num_kills one
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@3139 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 18:42:18 +10:00
4219 changed files with 479900 additions and 1129630 deletions

No files matched your search

-182
View File
@@ -1,182 +0,0 @@
version: 2
references:
container_config: &container_config
docker:
- image: "debian:stretch"
working_directory: /root/build
restore_repo: &restore_repo
restore_cache:
keys:
- source-repo-{{ .Branch }}-{{ .Revision }}
- source-repo-{{ .Branch }}
- source-repo
cmake_configure: &cmake_configure
run:
name: Creating Build Files
command: |
mkdir build
cd build
CXXFLAGS="-m64 -mtune=generic -mfpmath=sse -msse -msse2 -pipe -Wno-unknown-pragmas"
CFLAGS="-m64 -mtune=generic -mfpmath=sse -msse -msse2 -pipe -Wno-unknown-pragmas"
if [[ "$CC" =~ ^clang.*$ ]]; then
CXXFLAGS="$CXXFLAGS -stdlib=libc++"
fi
eval $CC --version
export CXXFLAGS
export CFLAGS
CMAKE="cmake -G Ninja -DFSO_FATAL_WARNINGS=ON $CMAKE_OPTIONS"
eval $CMAKE -DCMAKE_BUILD_TYPE=$CONFIGURATION -DFSO_BUILD_TESTS=ON -DFSO_BUILD_INCLUDED_LIBS=ON ..
compile: &compile
run:
name: Compiling Source code
command: |
cd build
ninja -k 20 all
run_tests: &run_tests
run:
name: Run unit tests
command: |
./build/bin/unittests --gtest_shuffle
compile_steps: &compile_steps
steps:
- *restore_repo
- *cmake_configure
- *compile
- *run_tests
jobs:
checkout_code:
<<: *container_config
steps:
- run:
name: Installing Git
command: 'apt-get update && apt-get -yq install git'
- *restore_repo
- checkout
- run:
name: Updating submodules
command: 'git submodule update --init --recursive'
- save_cache:
key: source-repo-{{ .Branch }}-{{ .Revision }}
paths:
- .
build_gcc_lowest_debug:
docker:
- image: asarium/fso_compile:gcc-lowest
working_directory: /root/build
environment:
CC: gcc
CXX: g++
CONFIGURATION: Debug
<<: *compile_steps
build_gcc_lowest_release:
docker:
- image: asarium/fso_compile:gcc-lowest
working_directory: /root/build
environment:
CC: gcc
CXX: g++
CONFIGURATION: Release
<<: *compile_steps
build_gcc_latest_debug:
docker:
- image: asarium/fso_compile:gcc-latest
working_directory: /root/build
environment:
CC: gcc
CXX: g++
CONFIGURATION: Debug
<<: *compile_steps
build_gcc_latest_release:
docker:
- image: asarium/fso_compile:gcc-latest
working_directory: /root/build
environment:
CC: gcc
CXX: g++
CONFIGURATION: Release
<<: *compile_steps
build_clang_latest_debug:
docker:
- image: asarium/fso_compile:clang-latest
working_directory: /root/build
environment:
CC: clang-8
CXX: clang++-8
CONFIGURATION: Debug
<<: *compile_steps
build_clang_latest_release:
docker:
- image: asarium/fso_compile:clang-latest
working_directory: /root/build
environment:
CC: clang-8
CXX: clang++-8
CONFIGURATION: Release
<<: *compile_steps
build_clang_lowest_debug:
docker:
- image: asarium/fso_compile:clang-lowest
working_directory: /root/build
environment:
CC: clang
CXX: clang++
CONFIGURATION: Debug
<<: *compile_steps
build_clang_lowest_release:
docker:
- image: asarium/fso_compile:clang-lowest
working_directory: /root/build
environment:
CC: clang
CXX: clang++
CONFIGURATION: Release
<<: *compile_steps
workflows:
version: 2
build_test:
jobs:
- checkout_code
- build_gcc_lowest_debug:
requires:
- checkout_code
- build_gcc_lowest_release:
requires:
- checkout_code
- build_gcc_latest_debug:
requires:
- checkout_code
- build_gcc_latest_release:
requires:
- checkout_code
- build_clang_latest_debug:
requires:
- checkout_code
- build_clang_latest_release:
requires:
- checkout_code
- build_clang_lowest_debug:
requires:
- checkout_code
- build_clang_lowest_release:
requires:
- checkout_code
-104
View File
@@ -1,104 +0,0 @@
---
Language: Cpp
Standard: Cpp11
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowAllArgumentsOnNextLine: false
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^(<.*\.(h|hh|hpp)>)$' # Includes of external libraries
Priority: 5
- Regex: '^(<.*>)$' # standard library includes (won't match deprecated C headers)
Priority: 6
- Regex: '^"globalincs\/.*\.h"$' # globalincs always come first
Priority: 1
- Regex: '^"[^/]*\.(h)"$' # Local includes
Priority: 2
- Regex: '^".*\.(h)"$' # standard engine includes
Priority: 3
- Regex: '.*' # Catch all in case something is unhandled above
Priority: 4
IncludeIsMainRegex: '$'
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
TabWidth: 4
UseTab: ForContinuationAndIndentation
...
-54
View File
@@ -1,54 +0,0 @@
---
Checks: "-*,\
modernize-*,\
-modernize-avoid-c-arrays,\
-modernize-make-unique,\
-modernize-raw-string-literal,\
-modernize-use-default-member-init,\
-modernize-use-nodiscard,\
-modernize-use-trailing-return-type,\
-modernize-use-using,\
performance-*,\
-performance-no-int-to-ptr,\
-performance-type-promotion-in-math-fn,\
misc-*,\
-misc-include-cleaner,\
-misc-macro-parentheses,\
-misc-misplaced-widening-cast,\
-misc-no-recursion,\
-misc-non-private-member-variables-in-classes,\
-misc-static-assert,\
-misc-unused-parameters,\
-misc-use-anonymous-namespace,\
readability-*,\
-readability-avoid-const-params-in-decls,\
-readability-else-after-return,\
-readability-function-cognitive-complexity,\
-readability-function-size,\
-readability-identifier-length,\
-readability-identifier-naming,\
-readability-implicit-bool-conversion,\
-readability-inconsistent-declaration-parameter-name,\
-readability-isolate-declaration,\
-readability-magic-numbers,\
-readability-named-parameter,\
-readability-qualified-auto,\
-readability-uppercase-literal-suffix,\
"
WarningsAsErrors: ''
HeaderFilterRegex: 'code/.*$|freespace2/.*$|qtfred/.*$|test/src/.*$|build/.*$'
CheckOptions:
- key: 'misc-assert-side-effect.AssertMacros'
value: 'assert,Assert,Assertion'
- key: 'misc-const-correctness.AnalyzeValues'
value: 'false'
- key: 'misc-const-correctness.TransformValues'
value: 'false'
- key: 'modernize-use-emplace.ContainersWithPushBack'
value: 'std::vector;std::deque;std::list;SCP_vector;SCP_deque;SCP_list'
- key: 'readability-braces-around-statements.ShortStatementLines'
value: '4' # Avoid flagging simple if (...) return false; statements
- key: 'performance-move-const-arg.CheckTriviallyCopyableMove' # This isn't actually performance relevant, but using move on trivially copyable types can well indicate that the variable should not be used anymore, such as when passing a builder type to the finialization function
value: 'false'
...
-2
View File
@@ -1,2 +0,0 @@
/build
/.git
-21
View File
@@ -1,21 +0,0 @@
build:
image: teaci/msys$$arch
pull: true
shell: mingw$$arch
commands:
- git submodule update --init --recursive
- if [ $$arch = 32 ]; then target=i686; fi
- if [ $$arch = 64 ]; then target=x86_64; fi
- pacman -S --needed --noconfirm --noprogressbar mingw-w64-${target}-pkg-config mingw-w64-${target}-cmake
- mkdir build && cd build
- cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=$$CONFIGURATION -DFSO_USE_SPEECH=OFF -DFSO_USE_VOICEREC=OFF -DFSO_FATAL_WARNINGS=ON -DFSO_BUILD_FRED2=OFF ..
- make -j$(nproc) all
matrix:
arch:
- 64
- 32
CONFIGURATION:
- Debug
- Release
-15
View File
@@ -1,15 +0,0 @@
root = true
[*.{h,cpp}]
indent_style = tab
[*.sdr]
indent_style = tab
[*.{yml,yaml}]
indent_style = space
indent_size = 2
[*.sh]
indent_style = space
indent_size = 4
-7
View File
@@ -1,7 +0,0 @@
# Default for everything
# * text=auto
# For the test data and built-in files to make them consistent on all platforms
*.tbl text eol=lf
*.tbm text eol=lf
*.sdr text eol=lf
-6
View File
@@ -1,6 +0,0 @@
ci/ @asarium @z64555
code/controlconfig/ @z64555
code/model/modelanimation*.* @bmagnu
-386
View File
@@ -1,386 +0,0 @@
name: Build Nightly package
on:
push:
tags:
- 'nightly_*'
jobs:
build_linux:
strategy:
matrix:
configuration: [FastDebug, Release]
os: [ubuntu-latest, ubuntu-24.04-arm]
include:
- os: ubuntu-latest
arch: x86_64
- os: ubuntu-24.04-arm
arch: arm64
name: Linux
runs-on: ${{ matrix.os }}
container: ghcr.io/scp-fs2open/linux_build:sha-ab87451
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: gcc-9
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Generate AppImage
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: $GITHUB_WORKSPACE/ci/linux/generate_appimage.sh $GITHUB_WORKSPACE/build/install
- name: Upload build result
uses: actions/upload-artifact@v7
with:
name: linux-${{ matrix.configuration }}-${{ matrix.arch }}
path: ${{ github.workspace }}/build/install/*.AppImage
linux_zip:
name: Build Linux distribution zip
needs: build_linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-ab87451
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: '0'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Download Release builds
uses: actions/download-artifact@v8
with:
name: linux-Release-${{ matrix.arch }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v8
with:
name: linux-FastDebug-${{ matrix.arch }}
path: builds
- name: Fix permissions
working-directory: ./builds
shell: bash
run: chmod 755 *.AppImage
- name: Create Distribution package
working-directory: ./builds
env:
ARCH: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Linux
- name: Upload result package
working-directory: ./builds
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh nightly
build_windows:
strategy:
matrix:
configuration: [FastDebug, Release]
os: [windows-2025, windows-11-arm]
arch: [Win32, x64, ARM64]
simd: [SSE2, ""]
exclude:
- arch: Win32
os: windows-11-arm
- arch: x64
os: windows-11-arm
- arch: ARM64
os: windows-2025
- os: windows-2025
simd: ""
- os: windows-11-arm
simd: SSE2
name: Windows
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Install v143 ATL/MFC
shell: pwsh
run: ci/windows/install_v143_atlmfc.ps1
# Tree A: static CRT (/MT) for FSO + FRED2 (no Qt dependency needed)
- name: Configure CMake (static CRT /MT - FSO + FRED2)
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCHITECTURE: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
shell: bash
run: |
mkdir build-mt
cd build-mt
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH=ON \
-DFSO_USE_VOICEREC=ON -DFORCED_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_TESTS=ON -DFSO_INSTALL_DEBUG_FILES=ON -A "$ARCHITECTURE" \
-DFSO_BUILD_QTFRED=OFF -G "Visual Studio 18 2026" -T "v143" \
-DCMAKE_BUILD_TYPE=$CONFIGURATION ..
- name: Compile (static CRT)
working-directory: ./build-mt
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
cmake --build . --config "$CONFIGURATION" -- /verbosity:minimal
cmake --install . --config "$CONFIGURATION"
ls -alR "$(pwd)/install"
# Tree B: dynamic CRT (/MD) for QtFRED only (matches Qt's prebuilt /MD runtime)
# Skipped on Win32: Qt6 has no 32-bit Windows support, so CMake force-disables
# FSO_BUILD_QTFRED there and the qtfred target would not exist
- name: Configure CMake (dynamic CRT /MD - QtFRED)
if: matrix.arch != 'Win32'
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCHITECTURE: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
shell: bash
run: |
mkdir build-md
cd build-md
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH=ON \
-DFSO_USE_VOICEREC=ON -DFORCED_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_TESTS=OFF -DFSO_INSTALL_DEBUG_FILES=ON -A "$ARCHITECTURE" \
-DFSO_BUILD_QTFRED=ON -DFSO_BUILD_FRED2=OFF -DQT_USE_PRECOMPILED=ON \
-G "Visual Studio 18 2026" -T "v143" -DCMAKE_BUILD_TYPE=$CONFIGURATION ..
- name: Compile (dynamic CRT)
if: matrix.arch != 'Win32'
working-directory: ./build-md
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
cmake --build . --config "$CONFIGURATION" --target qtfred -- /verbosity:minimal
cmake --install . --config "$CONFIGURATION" --component qtFRED
ls -alR "$(pwd)/install"
# Merge both trees into the single install dir the zip job consumes
- name: Merge installs
shell: bash
run: |
mkdir -p build/install
# build-md does not exist on Win32 (no QtFRED there)
if [ -d build-md/install ]; then
cp -r build-md/install/. build/install/
fi
cp -r build-mt/install/. build/install/
ls -alR build/install
- name: Run Tests
working-directory: ./build-mt
env:
CONFIGURATION: ${{ matrix.configuration }}
shell: bash
run: ./bin/$CONFIGURATION/unittests --gtest_shuffle
- name: Set artifact id
shell: bash
run: |
id=
if [ -n "${{ matrix.simd }}" ]; then
id="${{ matrix.configuration }}-${{ matrix.arch }}-${{ matrix.simd }}"
else
id="${{ matrix.configuration }}-${{ matrix.arch }}"
fi
echo "artifact_id=${id}" >> $GITHUB_ENV
- name: Upload build result
uses: actions/upload-artifact@v7
with:
name: windows-${{ env.artifact_id }}
path: ${{ github.workspace }}/build/install/*
windows_zip:
name: Build Windows distribution zip
needs: build_windows
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-ab87451
strategy:
matrix:
arch: [Win32, x64, ARM64]
simd: [SSE2, ""]
exclude:
- arch: Win32
simd: ""
- arch: x64
simd: ""
- arch: ARM64
simd: SSE2
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: '0'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Set artifact id
shell: bash
run: |
id=
if [ -n "${{ matrix.simd }}" ]; then
id="${{ matrix.arch }}-${{ matrix.simd }}"
else
id="${{ matrix.arch }}"
fi
echo "artifact_id=${id}" >> $GITHUB_ENV
- name: Download Release builds
uses: actions/download-artifact@v8
with:
name: windows-Release-${{ env.artifact_id }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v8
with:
name: windows-FastDebug-${{ env.artifact_id }}
path: builds
- name: Create Distribution package
working-directory: ./builds
shell: bash
env:
ID: ${{ env.artifact_id }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Windows
- name: Upload result package
working-directory: ./builds
shell: bash
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh nightly
build_mac:
strategy:
matrix:
configuration: [FastDebug, Release]
compiler: [clang]
arch: [x86_64, arm64]
name: Mac
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: 0
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Set up test version
shell: bash
run: |
[[ "${{ github.ref }}" =~ ^refs\/heads\/test\/(.*)$ ]]
# Override the revision string so that the builds are named correctly
echo "set(FSO_VERSION_REVISION_STR ${BASH_REMATCH[1]})" > "version_override.cmake"]
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: ninja all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCH: ${{ matrix.arch }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Sign builds
working-directory: ./build/bin
run: |
# make sure OpenAL framework is signed
find . -name OpenAL -type f | while read xx; do codesign --force -s - $xx; done
find . -name OpenAL.framework -type d | while read xx; do codesign --force -s - $xx; done
# make sure dylibs are signed
find . -name \*.dylib -type f | while read xx; do codesign --force -s - $xx; done
# sign binaries
find . -perm +111 -type f | grep MacOS | while read xx; do codesign --force -s - $xx; done
# sign apps
find . -name \*.app -maxdepth 1 | while read xx; do codesign --force -s - $xx; done
- name: Package build result
working-directory: ./build/bin
# Use GNU tar here (part of runner image) to avoid weird corruption bug with bsdtar
# Ref: https://github.com/actions/runner-images/issues/2619
run: gtar -cvzf macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz *.app
- name: Upload build result
uses: actions/upload-artifact@v7
with:
name: mac-${{ matrix.configuration }}-${{ matrix.arch }}
path: ${{ github.workspace }}/build/bin/macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz
mac_zip:
name: Build Mac distribution zip
needs: build_mac
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-ab87451
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Download Release builds
uses: actions/download-artifact@v8
with:
name: mac-Release-${{ matrix.arch }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v8
with:
name: mac-FastDebug-${{ matrix.arch }}
path: builds
- name: Unpack builds
working-directory: ./builds
run: |
tar -xvzf macos-build-Release-${{ matrix.arch }}.tgz
tar -xvzf macos-build-FastDebug-${{ matrix.arch }}.tgz
- name: Create Distribution package
working-directory: ./builds
env:
ARCH: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Mac
- name: Upload result package
working-directory: ./builds
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh nightly
-473
View File
@@ -1,473 +0,0 @@
name: Build Release package
on:
push:
tags:
- 'release_*'
jobs:
create_release:
name: Create GitHub release
runs-on: ubuntu-latest
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1
# Creates a release package page on github
# create_release.inputs: (notable inputs)
# allowUpdates=false if true, update an existing release if it exists
# artifactErrorsFailBuild=false if true, fails the build should artifact read/write errors occur
# artifacts optional set of paths to artifacts to upload to the release. comma delimited.
# removeArtifacts=false if true, remove existing artifacts
# replaceArtifacts=false if true, replace/overwrite existing artifacts
# create_release.outputs:
# id id of the created release
# html_url HTML URL of the release
# upload_url FTP URL of the release where assets are uploaded
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
build_linux:
strategy:
matrix:
# Run this job for each configuration
# The current config running is accesible with `matrix.configuration`
configuration: [FastDebug, Release]
os: [ubuntu-latest, ubuntu-24.04-arm]
include:
- os: ubuntu-latest
arch: x86_64
- os: ubuntu-24.04-arm
arch: arm64
name: Linux
needs: create_release # Don't run this job until create_release is done and successful
runs-on: ${{ matrix.os }}
container: ghcr.io/scp-fs2open/linux_build:sha-ab87451
steps:
- uses: actions/checkout@v7
# checks-out your repository under $GITHUB_WORKSPACE, so your workflow can access it.
name: Checkout
with:
submodules: true # `true` to checkout submodules, `recursive` to recursively checkout submodules
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: gcc-9
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Generate AppImage
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: $GITHUB_WORKSPACE/ci/linux/generate_appimage.sh $GITHUB_WORKSPACE/build/install
- name: Upload build result
uses: actions/upload-artifact@v7
# Upload the url file for use with other runners
# upload-artifact.inputs:
# if-no-files-found=warn What to do if path fails to find any files.
# warn Display a warning but do not fail the action
# error Display an error and fail the action
# ignore No display, No fail
# retention-days=0 Days to keep the artifact.
# 0 Use default retention policy of the repo
# 1~90 Min 1, Max 90 days to keep the artifact unless changed by repo settings page
with:
name: linux-${{ matrix.configuration }}-${{ matrix.arch }}
path: ${{ github.workspace }}/build/install/*.AppImage
linux_zip:
name: Build Linux distribution zip
needs: build_linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-ab87451
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: '0' # value 0 to fetch all history and tags for all branches
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Download Release builds
# Grab the release builds
uses: actions/download-artifact@v8
with:
name: linux-Release-${{ matrix.arch }}
path: builds
- name: Download FastDebug builds
# Grab the debug builds
uses: actions/download-artifact@v8
with:
name: linux-FastDebug-${{ matrix.arch }}
path: builds
- name: Fix permissions
working-directory: ./builds
shell: bash
run: chmod 755 *.AppImage
- name: Create Distribution package
# Zip both builds together
id: generate_package
working-directory: ./builds
env:
ARCH: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Linux
- name: Upload result package
# Stash the result to artifact filespace
uses: actions/upload-artifact@v7
with:
name: ${{ steps.generate_package.outputs.package_name }}
path: ${{ steps.generate_package.outputs.package_path }}
- name: Publish result package
# publish the zipped result
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: ${{ steps.generate_package.outputs.package_path }}
build_windows:
strategy:
matrix:
configuration: [FastDebug, Release]
os: [windows-2025, windows-11-arm]
arch: [Win32, x64, ARM64]
simd: [SSE2, AVX, ""]
exclude:
- arch: Win32
os: windows-11-arm
- arch: x64
os: windows-11-arm
- arch: ARM64
os: windows-2025
- os: windows-2025
simd: ""
- os: windows-11-arm
simd: SSE2
- os: windows-11-arm
simd: AVX
needs: create_release
name: Windows
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
# Checkout repo
name: Checkout
with:
submodules: true
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Install v143 ATL/MFC
shell: pwsh
run: ci/windows/install_v143_atlmfc.ps1
# Tree A: static CRT (/MT) for FSO + FRED2 (no Qt dependency needed)
- name: Configure CMake (static CRT /MT - FSO + FRED2)
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCHITECTURE: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
shell: bash
run: |
mkdir build-mt
cd build-mt
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH=ON \
-DFSO_USE_VOICEREC=ON -DFORCED_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_TESTS=ON -DFSO_INSTALL_DEBUG_FILES=ON -A "$ARCHITECTURE" \
-DFSO_BUILD_QTFRED=OFF -G "Visual Studio 18 2026" -T "v143" \
-DCMAKE_BUILD_TYPE=$CONFIGURATION ..
- name: Compile (static CRT)
working-directory: ./build-mt
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
cmake --build . --config "$CONFIGURATION" -- /verbosity:minimal
cmake --install . --config "$CONFIGURATION"
ls -alR "$(pwd)/install"
# Tree B: dynamic CRT (/MD) for QtFRED only (matches Qt's prebuilt /MD runtime)
# Skipped on Win32: Qt6 has no 32-bit Windows support, so CMake force-disables
# FSO_BUILD_QTFRED there and the qtfred target would not exist
- name: Configure CMake (dynamic CRT /MD - QtFRED)
if: matrix.arch != 'Win32'
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCHITECTURE: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
shell: bash
run: |
mkdir build-md
cd build-md
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH=ON \
-DFSO_USE_VOICEREC=ON -DFORCED_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_TESTS=OFF -DFSO_INSTALL_DEBUG_FILES=ON -A "$ARCHITECTURE" \
-DFSO_BUILD_QTFRED=ON -DFSO_BUILD_FRED2=OFF -DQT_USE_PRECOMPILED=ON \
-G "Visual Studio 18 2026" -T "v143" -DCMAKE_BUILD_TYPE=$CONFIGURATION ..
- name: Compile (dynamic CRT)
if: matrix.arch != 'Win32'
working-directory: ./build-md
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
cmake --build . --config "$CONFIGURATION" --target qtfred -- /verbosity:minimal
cmake --install . --config "$CONFIGURATION" --component qtFRED
ls -alR "$(pwd)/install"
# Merge both trees into the single install dir the zip job consumes
- name: Merge installs
shell: bash
run: |
mkdir -p build/install
# build-md does not exist on Win32 (no QtFRED there)
if [ -d build-md/install ]; then
cp -r build-md/install/. build/install/
fi
cp -r build-mt/install/. build/install/
ls -alR build/install
- name: Run Tests
working-directory: ./build-mt
env:
CONFIGURATION: ${{ matrix.configuration }}
shell: bash
run: ./bin/$CONFIGURATION/unittests --gtest_shuffle
- name: Set artifact id
shell: bash
run: |
id=
if [ -n "${{ matrix.simd }}" ]; then
id="${{ matrix.configuration }}-${{ matrix.arch }}-${{ matrix.simd }}"
else
id="${{ matrix.configuration }}-${{ matrix.arch }}"
fi
echo "artifact_id=${id}" >> $GITHUB_ENV
- name: Upload build result
uses: actions/upload-artifact@v7
with:
name: windows-${{ env.artifact_id }}
path: ${{ github.workspace }}/build/install/*
windows_zip:
name: Build Windows distribution zip
needs: build_windows
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-ab87451
strategy:
fail-fast: false # Run the other jobs in the matrix instead of failing them
matrix:
arch: [Win32, x64, ARM64]
simd: [SSE2, AVX, ""]
exclude:
- arch: Win32
simd: ""
- arch: x64
simd: ""
- arch: ARM64
simd: SSE2
- arch: ARM64
simd: AVX
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Set artifact id
shell: bash
run: |
id=
if [ -n "${{ matrix.simd }}" ]; then
id="${{ matrix.arch }}-${{ matrix.simd }}"
else
id="${{ matrix.arch }}"
fi
echo "artifact_id=${id}" >> $GITHUB_ENV
- name: Download Release builds
uses: actions/download-artifact@v8
with:
name: windows-Release-${{ env.artifact_id }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v8
with:
name: windows-FastDebug-${{ env.artifact_id }}
path: builds
- name: Create Distribution package
id: generate_package
working-directory: ./builds
shell: bash
env:
ID: ${{ env.artifact_id }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Windows
- name: Upload result package
uses: actions/upload-artifact@v7
with:
name: ${{ steps.generate_package.outputs.package_name }}
path: ${{ steps.generate_package.outputs.package_path }}
- name: Upload debug package
uses: actions/upload-artifact@v7
with:
name: ${{ steps.generate_package.outputs.debug_name }}
path: ${{ steps.generate_package.outputs.debug_path }}
- name: Publish packages
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
${{ steps.generate_package.outputs.package_path }}
${{ steps.generate_package.outputs.debug_path }}
build_mac:
strategy:
matrix:
configuration: [FastDebug, Release]
compiler: [clang]
arch: [x86_64, arm64]
name: Mac
needs: create_release
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: 0
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: ninja all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCH: ${{ matrix.arch }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Sign builds
working-directory: ./build/bin
run: |
# make sure OpenAL framework is signed
find . -name OpenAL -type f | while read xx; do codesign --force -s - $xx; done
find . -name OpenAL.framework -type d | while read xx; do codesign --force -s - $xx; done
# make sure dylibs are signed
find . -name \*.dylib -type f | while read xx; do codesign --force -s - $xx; done
# sign binaries
find . -perm +111 -type f | grep MacOS | while read xx; do codesign --force -s - $xx; done
# sign apps
find . -name \*.app -maxdepth 1 | while read xx; do codesign --force -s - $xx; done
- name: Package build result
working-directory: ./build/bin
# Use GNU tar here (part of runner image) to avoid weird corruption bug with bsdtar
# Ref: https://github.com/actions/runner-images/issues/2619
run: gtar -cvzf macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz *.app
- name: Upload build result
uses: actions/upload-artifact@v7
with:
name: mac-${{ matrix.configuration }}-${{ matrix.arch }}
path: ${{ github.workspace }}/build/bin/macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz
mac_zip:
name: Build Mac distribution zip
needs: build_mac
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-ab87451
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Download Release builds
uses: actions/download-artifact@v8
with:
name: mac-Release-${{ matrix.arch }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v8
with:
name: mac-FastDebug-${{ matrix.arch }}
path: builds
- name: Unpack builds
working-directory: ./builds
run: |
tar -xvzf macos-build-Release-${{ matrix.arch }}.tgz
tar -xvzf macos-build-FastDebug-${{ matrix.arch }}.tgz
- name: Create Distribution package
id: generate_package
working-directory: ./builds
env:
ARCH: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Mac
- name: Upload result package
uses: actions/upload-artifact@v7
with:
name: ${{ steps.generate_package.outputs.package_name }}
path: ${{ steps.generate_package.outputs.package_path }}
- name: Publish result package
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: ${{ steps.generate_package.outputs.package_path }}
post_build:
name: Post builds to Nebula and Forum
needs: [linux_zip, windows_zip, mac_zip]
uses: ./.github/workflows/post-build-release.yaml
with:
linux_result: ${{ needs.linux_zip.result }}
windows_result: ${{ needs.windows_zip.result }}
mac_result: ${{ needs.mac_zip.result }}
releaseTag: ${{ github.ref_name }}
secrets: inherit
-357
View File
@@ -1,357 +0,0 @@
name: Build Test package
on:
push:
branches:
- 'test/*'
jobs:
build_linux:
strategy:
matrix:
configuration: [FastDebug, Release]
os: [ubuntu-latest, ubuntu-24.04-arm]
include:
- os: ubuntu-latest
arch: x86_64
- os: ubuntu-24.04-arm
arch: arm64
name: Linux
runs-on: ${{ matrix.os }}
container: ghcr.io/scp-fs2open/linux_build:sha-ab87451
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Set up test version
shell: bash
run: |
[[ "${{ github.ref }}" =~ ^refs\/heads\/test\/(.*)$ ]]
# Override the revision string so that the builds are named correctly
echo "set(FSO_VERSION_REVISION_STR ${BASH_REMATCH[1]})" > "version_override.cmake"
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: gcc-9
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Generate AppImage
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: $GITHUB_WORKSPACE/ci/linux/generate_appimage.sh $GITHUB_WORKSPACE/build/install
- name: Upload build result
uses: actions/upload-artifact@v7
with:
name: linux-${{ matrix.configuration }}-${{ matrix.arch }}
path: ${{ github.workspace }}/build/install/*.AppImage
linux_zip:
name: Build Linux distribution zip
needs: build_linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-ab87451
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Download Release builds
uses: actions/download-artifact@v8
with:
name: linux-Release-${{ matrix.arch }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v8
with:
name: linux-FastDebug-${{ matrix.arch }}
path: builds
- name: Fix permissions
working-directory: ./builds
shell: bash
run: chmod 755 *.AppImage
- name: Create Distribution package
working-directory: ./builds
env:
ARCH: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Linux
- name: Upload result package
working-directory: ./builds
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh test
build_windows:
strategy:
matrix:
configuration: [FastDebug, Release]
os: [windows-2025, windows-11-arm]
arch: [Win32, x64, ARM64]
simd: [SSE2, ""]
exclude:
- arch: Win32
os: windows-11-arm
- arch: x64
os: windows-11-arm
- arch: ARM64
os: windows-2025
- os: windows-2025
simd: ""
- os: windows-11-arm
simd: SSE2
name: Windows
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Set up test version
shell: bash
run: |
[[ "${{ github.ref }}" =~ ^refs\/heads\/test\/(.*)$ ]]
# Override the revision string so that the builds are named correctly
echo "set(FSO_VERSION_REVISION_STR ${BASH_REMATCH[1]})" > "version_override.cmake"
- name: Install v143 ATL/MFC
shell: pwsh
run: ci/windows/install_v143_atlmfc.ps1
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCHITECTURE: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
shell: bash
run: |
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH=ON \
-DFSO_USE_VOICEREC=ON -DFORCED_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_TESTS=ON -DFSO_INSTALL_DEBUG_FILES=ON -A "$ARCHITECTURE" \
-DQT_USE_PRECOMPILED=ON -G "Visual Studio 18 2026" -T "v143" \
-DCMAKE_BUILD_TYPE=$CONFIGURATION ..
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
cmake --build . --config "$CONFIGURATION" --target INSTALL -- /verbosity:minimal
ls -alR "$(pwd)/install"
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
shell: bash
run: ./bin/$CONFIGURATION/unittests --gtest_shuffle
- name: Set artifact id
shell: bash
run: |
id=
if [ -n "${{ matrix.simd }}" ]; then
id="${{ matrix.configuration }}-${{ matrix.arch }}-${{ matrix.simd }}"
else
id="${{ matrix.configuration }}-${{ matrix.arch }}"
fi
echo "artifact_id=${id}" >> $GITHUB_ENV
- name: Upload build result
uses: actions/upload-artifact@v7
with:
name: windows-${{ env.artifact_id }}
path: ${{ github.workspace }}/build/install/*
windows_zip:
name: Build Windows distribution zip
needs: build_windows
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-ab87451
strategy:
matrix:
arch: [Win32, x64, ARM64]
simd: [SSE2, ""]
exclude:
- arch: Win32
simd: ""
- arch: x64
simd: ""
- arch: ARM64
simd: SSE2
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Set artifact id
shell: bash
run: |
id=
if [ -n "${{ matrix.simd }}" ]; then
id="${{ matrix.arch }}-${{ matrix.simd }}"
else
id="${{ matrix.arch }}"
fi
echo "artifact_id=${id}" >> $GITHUB_ENV
- name: Download Release builds
uses: actions/download-artifact@v8
with:
name: windows-Release-${{ env.artifact_id }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v8
with:
name: windows-FastDebug-${{ env.artifact_id }}
path: builds
- name: Create Distribution package
working-directory: ./builds
shell: bash
env:
ID: ${{ env.artifact_id }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Windows
- name: Upload result package
working-directory: ./builds
shell: bash
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh test
build_mac:
strategy:
matrix:
configuration: [FastDebug, Release]
compiler: [clang]
arch: [x86_64, arm64]
name: Mac
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: 0
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Set up test version
shell: bash
run: |
[[ "${{ github.ref }}" =~ ^refs\/heads\/test\/(.*)$ ]]
# Override the revision string so that the builds are named correctly
echo "set(FSO_VERSION_REVISION_STR ${BASH_REMATCH[1]})" > "version_override.cmake"
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: ninja all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCH: ${{ matrix.arch }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Sign builds
working-directory: ./build/bin
run: |
# make sure OpenAL framework is signed
find . -name OpenAL -type f | while read xx; do codesign --force -s - $xx; done
find . -name OpenAL.framework -type d | while read xx; do codesign --force -s - $xx; done
# make sure dylibs are signed
find . -name \*.dylib -type f | while read xx; do codesign --force -s - $xx; done
# sign binaries
find . -perm +111 -type f | grep MacOS | while read xx; do codesign --force -s - $xx; done
# sign apps
find . -name \*.app -maxdepth 1 | while read xx; do codesign --force -s - $xx; done
- name: Package build result
working-directory: ./build/bin
# Use GNU tar here (part of runner image) to avoid weird corruption bug with bsdtar
# Ref: https://github.com/actions/runner-images/issues/2619
run: gtar -cvzf macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz *.app
- name: Upload build result
uses: actions/upload-artifact@v7
with:
name: mac-${{ matrix.configuration }}-${{ matrix.arch }}
path: ${{ github.workspace }}/build/bin/macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz
mac_zip:
name: Build Mac distribution zip
needs: build_mac
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-ab87451
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Download Release builds
uses: actions/download-artifact@v8
with:
name: mac-Release-${{ matrix.arch }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v8
with:
name: mac-FastDebug-${{ matrix.arch }}
path: builds
- name: Unpack builds
working-directory: ./builds
run: |
tar -xvzf macos-build-Release-${{ matrix.arch }}.tgz
tar -xvzf macos-build-FastDebug-${{ matrix.arch }}.tgz
- name: Create Distribution package
working-directory: ./builds
env:
ARCH: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Mac
- name: Upload result package
working-directory: ./builds
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh test
-98
View File
@@ -1,98 +0,0 @@
name: Build caches for master
on:
push:
branches:
- master
jobs:
build_linux:
strategy:
matrix:
configuration: [Debug, Release]
compiler: [gcc-9, gcc-13, clang-16]
arch: [x86_64]
cmake_options: [""]
include:
# Also include configurations that check if the code compiles without the graphics backends
- configuration: Debug
compiler: gcc-13
cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF
- configuration: Release
compiler: gcc-13
cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF
name: Linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/linux_build:sha-ab87451
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ runner.os }}-${{ matrix.configuration }}-${{ matrix.compiler }}-${{ matrix.arch }}
max-size: 750MB
- name: Configure ccache
run: |
ccache --set-config=sloppiness=pch_defines,time_macros
ccache -p
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
CCACHE_PATH: /usr/local/bin/ccache
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: ninja -k 20 all
- name: Show CCache statistics
run: ccache --show-stats
build_mac:
strategy:
matrix:
configuration: [Debug, Release]
compiler: [clang]
arch: [x86_64, arm64]
cmake_options: [""]
name: Mac
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ runner.os }}-${{ matrix.configuration }}-${{ matrix.arch }}
max-size: 750MB
- name: Configure ccache
run: |
ccache --set-config=sloppiness=pch_defines,time_macros
ccache -p
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
CCACHE_PATH: /usr/local/bin/ccache
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: ninja -k 20 all
- name: Show CCache statistics
run: ccache --show-stats
-86
View File
@@ -1,86 +0,0 @@
name: Post Release builds
on:
workflow_call:
# Trigger when called by other workflows
inputs:
linux_result: # job.result; either success, failure, canceled or skipped
required: true
type: string
windows_result: # job.result
required: true
type: string
mac_result: # job.result
required: true
type: string
releaseTag:
required: true
type: string
workflow_dispatch:
# Trigger manually from Github
inputs:
releaseTag:
description: Release Tag
required: true
type: string
env:
GITHUB_REPO: ${{ github.repository }} # repo this workflow was called from
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
NEBULA_USER: ${{ secrets.NEBULA_USER }}
NEBULA_PASSWORD: ${{ secrets.NEBULA_PASSWORD }}
HLP_API: ${{ secrets.HLP_API }}
HLP_KEY: ${{ secrets.HLP_KEY }}
FORUM_SECRET: ${{ secrets.FORUM_SECRET }}
RELEASE_TAG: ${{ inputs.releaseTag }}
jobs:
post_builds:
name: Post builds on Nebula and the forums
runs-on: ubuntu-latest
steps:
- name: Caller
# Name of what called this yaml. Used to debug auto/manual step being triggered
run: echo "github.event_name= ${{ github.event_name }}"
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: '0'
ref: ${{ env.RELEASE_TAG }}
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Install Python dependencies
run: pip install -r ci/post/requirements.txt
- name: Post Builds (Auto trigger)
if: ${{ (github.event_name == 'workflow_call') || (github.event_name == 'push') }}
env:
LINUX_RESULT: ${{ inputs.linux_result }}
WINDOWS_RESULT: ${{ inputs.windows_result }}
MAC_RESULT: ${{ inputs.mac_result }}
GITHUB_REPO: ${{ github.repository }} # repo this workflow was called from
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
NEBULA_USER: ${{ secrets.NEBULA_USER }}
NEBULA_PASSWORD: ${{ secrets.NEBULA_PASSWORD }}
HLP_API: ${{ secrets.HLP_API }}
HLP_KEY: ${{ secrets.HLP_KEY }}
RELEASE_TAG: ${{ inputs.releaseTag }}
FORUM_SECRET: ${{ secrets.FORUM_SECRET }}
run: python ci/post/main.py release
- name: Post Builds (Manual trigger)
if: ${{ github.event_name == 'workflow_dispatch' }}
# assume user knows what they're doing...
env:
LINUX_RESULT: success
WINDOWS_RESULT: success
MAC_RESULT: success
run: |
echo "releaseTag= ${{ env.RELEASE_TAG }}"
echo "repository= ${{ github.repository }}"
python ci/post/main.py release
-202
View File
@@ -1,202 +0,0 @@
name: Check a pull request
on: [pull_request]
jobs:
build_linux:
strategy:
matrix:
configuration: [Debug, Release]
compiler: [gcc-9, gcc-13, clang-16]
cmake_options: [""]
include:
# Also include configurations that check if the code compiles without the graphics backends
- configuration: Debug
compiler: gcc-13
cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF
- configuration: Release
compiler: gcc-13
cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF
# - configuration: Debug
# compiler: gcc-13
# cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=ON
# - configuration: Release
# compiler: gcc-13
# cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=ON
name: Linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/linux_build:sha-ab87451
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: 0
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ runner.os }}-${{ matrix.configuration }}-${{ matrix.compiler }}
save: false # Caches are created by a separate job and only restored for PRs
verbose: 1
- name: Configure ccache
run: ccache --set-config=sloppiness=pch_defines,time_macros
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
CCACHE_PATH: /usr/local/bin/ccache
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Show CCache statistics
run: ccache --show-stats
- name: Run Clang Tidy
# Clang-tidy reuses the precompiled headers so this only makes sense for the clang compilers
if: startsWith(matrix.compiler, 'clang-')
run: $GITHUB_WORKSPACE/ci/linux/clang_tidy.sh ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}
- name: Process clang-tidy warnings
if: startsWith(matrix.compiler, 'clang-')
uses: asarium/clang-tidy-action@v1
with:
fixesFile: clang-fixes.yaml
build_windows:
strategy:
matrix:
configuration: [Debug, FastDebug, Release]
compiler: [MSVC]
arch: [Win32, x64]
name: Windows
runs-on: windows-2025
steps:
- name: Prepare Environment
run: choco install ninja
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Install v143 ATL/MFC
if: matrix.compiler == 'MSVC'
shell: pwsh
run: ci/windows/install_v143_atlmfc.ps1
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
shell: bash
run: |
mkdir build
cd build
if [ "$COMPILER" = "MinGW" ]; then
cmake -DFSO_USE_SPEECH=OFF -DFSO_FATAL_WARNINGS=ON -DFSO_USE_VOICEREC=OFF -DFSO_BUILD_TESTS=ON \
-DFSO_BUILD_FRED2=OFF -DQT_USE_PRECOMPILED=ON -DCMAKE_BUILD_TYPE=$CONFIGURATION -G "Ninja" ..
else
cmake -DFSO_USE_SPEECH=ON -DFSO_FATAL_WARNINGS=ON -DFSO_USE_VOICEREC=OFF -DFSO_BUILD_TESTS=ON \
-DFORCED_SIMD_INSTRUCTIONS=SSE2 -G "Visual Studio 18 2026" -T "v143" -A "$ARCHITECTURE" \
-DQT_USE_PRECOMPILED=ON -DCMAKE_BUILD_TYPE=$CONFIGURATION ..
fi
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
if [ "$COMPILER" = "MinGW" ]; then
cmake --build . --config "$CONFIGURATION"
else
cmake --build . --config "$CONFIGURATION" -- /verbosity:minimal
fi
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
if [ "$COMPILER" = "MinGW" ]; then
./bin/unittests --gtest_shuffle
else
"./bin/$CONFIGURATION/unittests" --gtest_shuffle
fi
build_mac:
strategy:
matrix:
configuration: [Debug, Release]
compiler: [clang]
arch: [x86_64, arm64]
cmake_options: [""]
name: Mac
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
name: Checkout
with:
submodules: true
fetch-depth: 0
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ runner.os }}-${{ matrix.configuration }}-${{ matrix.compiler }}-${{ matrix.arch }}
save: false # Caches are created by a separate job and only restored for PRs
- name: Configure ccache
run: ccache --set-config=sloppiness=pch_defines,time_macros
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
CCACHE_PATH: /usr/local/bin/ccache
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: ninja all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCH: ${{ matrix.arch }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Show CCache statistics
run: ccache --show-stats
- name: Install clang-tidy
# macOS runners don't ship clang-tidy; pin to the same version as the Linux
# container's clang-tidy-16 for consistent diagnostics. pyyaml is required
# too: clang-tidy-diff.py only accepts -export-fixes when it can import yaml.
# --break-system-packages is required since the runner's Homebrew Python
# is externally managed (PEP 668); the runner is ephemeral so this is safe.
if: startsWith(matrix.compiler, 'clang')
run: pip3 install --break-system-packages clang-tidy==16.0.4 pyyaml
- name: Run Clang Tidy
# Clang-tidy reuses the precompiled headers so this only makes sense for the clang compilers
if: startsWith(matrix.compiler, 'clang')
env:
CLANG_TIDY_BINARY: clang-tidy
run: $GITHUB_WORKSPACE/ci/linux/clang_tidy.sh ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}
- name: Process clang-tidy warnings
if: startsWith(matrix.compiler, 'clang')
uses: asarium/clang-tidy-action@v1
with:
fixesFile: clang-fixes.yaml
@@ -1,74 +0,0 @@
name: Weekly Coverity Scan for Freespace Open
# adapted from code by "albert-github" on the doxygen repository
# many thanks for figuring this out first so it could be less painful for us!
#This mode is for testing
#on: [push, pull_request]
# In production, push on a specific schedule
on:
schedule:
- cron: "5 0 * * 5" # Run once per a week on Friday morning (midnight UTC, 4 AM EST), to avoid Coverity's submission limits
env:
coverity_email: [email protected]
coverity_token: ${{ secrets.COVERITY_TOKEN }}
jobs:
build:
name: Build FSO With Coverity Wrapper
if: github.repository == 'scp-fs2open/fs2open.github.com'
runs-on: ${{ matrix.config.os }}
container: ghcr.io/scp-fs2open/linux_build:sha-ab87451
strategy:
fail-fast: false
matrix:
config:
- { name: "GCC on ubuntu", os: ubuntu-latest, build_type: "Release" }
steps:
- name: Checkout
uses: actions/checkout@v7
with:
submodules: recursive # `true` to checkout submodules, `recursive` to recursively checkout submodules
- name: Set workspace as safe
# This appears to be broken in current actions, so do it manually
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
# pipe results of wget to a log file because it's very verbose and rarely fails
- name: Install Coverity
run: |
wget -o wgetlog.txt -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=${{ env.coverity_token }}&project=scp-fs2open/fs2open.github.com" -O coverity_tool.tgz
mkdir cov-scan
tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan
- name: Setup Environment
run: |
echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH
echo "NPROC=$(getconf _NPROCESSORS_ONLN)" >> $GITHUB_ENV
- name: Configure CMake for FSO
env:
CONFIGURATION: Release
COMPILER: gcc-9
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Build FSO with Coverity Wrapper
working-directory: ./build
env:
CONFIGURATION: Release
run: cov-build --dir cov-int ninja -k 20 all
- name: Compress Results
working-directory: ./build
run: tar zcf cov-scan.tgz cov-int
#Comment this out when testing to keep from running into upload limits
- name: Upload to Coverity
run: |
cd build
curl -X POST -d token=${{ env.coverity_token }} -d email=${{ env.coverity_email }} -d file_name="'cov-scan.tgz'" -d version=${{ github.ref }} -d description="Automatic GHA scan" 'https://scan.coverity.com/projects/870/builds/init' | tee response
upload_url=$(jq -r '.url' response)
build_id=$(jq -r '.build_id' response)
curl -X PUT --header 'Content-Type: application/json' --upload-file cov-scan.tgz $upload_url
curl -X PUT -d token=${{ env.coverity_token }} https://scan.coverity.com/projects/870/builds/$build_id/enqueue
-269
View File
@@ -1,269 +0,0 @@
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.opensdf
*.unsuccessfulbuild
ipch/
[Oo]bj/
Ankh.NoLoad
*.VC.db
*.VC.VC.opendb
#MonoDevelop
*.pidb
*.userprefs
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
*.sass-cache
#Project files
[Bb]uild/
[Oo]ut/
#Subversion files
.svn
# Office Temp Files
~$*
# vim Temp Files
*~
#NuGet
packages/
*.nupkg
#ncrunch
*ncrunch*
*crunch*.local.xml
# visual studio database projects
*.dbmdl
#Test files
*.testsettings
#===========
#########################
# .gitignore file for Xcode4 and Xcode5 Source projects
#
# Apple bugs, waiting for Apple to fix/respond:
#
# 15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?
#
# Version 2.1
# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
#
# 2013 updates:
# - fixed the broken "save personal Schemes"
# - added line-by-line explanations for EVERYTHING (some were missing)
#
# NB: if you are storing "built" products, this WILL NOT WORK,
# and you should use a different .gitignore (or none at all)
# This file is for SOURCE projects, where there are many extra
# files that we want to exclude
#
#########################
#####
# OS X temporary files that should never be committed
#
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
.DS_Store
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
.Trashes
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
*.swp
# *.lock - this is used and abused by many editors for many different things.
# For the main ones I use (e.g. Eclipse), it should be excluded
# from source-control, but YMMV
*.lock
#
# profile - REMOVED temporarily (on double-checking, this seems incorrect; I can't find it in OS X docs?)
#profile
####
# Xcode temporary files that should never be committed
#
# NB: NIB/XIB files still exist even on Storyboard projects, so we want this...
*~.nib
####
# Xcode build files -
#
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData"
DerivedData/
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build"
build/
#####
# Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)
#
# This is complicated:
#
# SOMETIMES you need to put this file in version control.
# Apple designed it poorly - if you use "custom executables", they are
# saved in this file.
# 99% of projects do NOT use those, so they do NOT want to version control this file.
# ..but if you're in the 1%, comment out the line "*.pbxuser"
# .pbxuser: http://lists.apple.com/archives/xcode-users/2004/Jan/msg00193.html
*.pbxuser
# .mode1v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
*.mode1v3
# .mode2v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
*.mode2v3
# .perspectivev3: http://stackoverflow.com/questions/5223297/xcode-projects-what-is-a-perspectivev3-file
*.perspectivev3
# NB: also, whitelist the default ones, some projects need to use these
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3
####
# Xcode 4 - semi-personal settings
#
#
# OPTION 1: ---------------------------------
# throw away ALL personal settings (including custom schemes!
# - unless they are "shared")
#
# NB: this is exclusive with OPTION 2 below
xcuserdata
# OPTION 2: ---------------------------------
# get rid of ALL personal settings, but KEEP SOME OF THEM
# - NB: you must manually uncomment the bits you want to keep
#
# NB: this *requires* git v1.8.2 or above; you may need to upgrade to latest OS X,
# or manually install git over the top of the OS X version
# NB: this is exclusive with OPTION 1 above
#
#xcuserdata/**/*
# (requires option 2 above): Personal Schemes
#
#!xcuserdata/**/xcschemes/*
####
# XCode 4 workspaces - more detailed
#
# Workspaces are important! They are a core feature of Xcode - don't exclude them :)
#
# Workspace layout is quite spammy. For reference:
#
# /(root)/
# /(project-name).xcodeproj/
# project.pbxproj
# /project.xcworkspace/
# contents.xcworkspacedata
# /xcuserdata/
# /(your name)/xcuserdatad/
# UserInterfaceState.xcuserstate
# /xcsshareddata/
# /xcschemes/
# (shared scheme name).xcscheme
# /xcuserdata/
# /(your name)/xcuserdatad/
# (private scheme).xcscheme
# xcschememanagement.plist
#
#
####
# Xcode 4 - Deprecated classes
#
# Allegedly, if you manually "deprecate" your classes, they get moved here.
#
# We're using source-control, so this is a "feature" that we do not want!
*.moved-aside
# .xccheckout
#
# Per http://stackoverflow.com/questions/18340453/should-xccheckout-files-in-xcode5-be-ignored-under-vcs
#
*.xccheckout
####
# Visual Studio Code
.vscode
####
# Documentation
#
documentation/doxygen/*
!documentation/doxygen/.gitkeep
.idea/*
projects/*
/.vs
CMakeSettings.json
CMakePresets.json
# Weird files created by Linux
.fuse_hidden*
# This gets ignored by one of the rules above for some reason...
!/code/scripting/lua/LuaConvert.h
!/code/debugconsole/
!/docker/build
CMakeFiles/cmake.check_cache
CMakeCache.txt
# Written by the unittests binary at runtime
test/test_data/**/*_settings.ini
test/test_data/data/players/presets/asdf.json
test/test_data/pilotfile/data/asdf.hdp
-3
View File
@@ -1,3 +0,0 @@
[submodule "lib/libRocket"]
path = lib/libRocket
url = https://github.com/scp-fs2open/libRocket.git
+29
View File
@@ -0,0 +1,29 @@
Original source (Freespace 2) by Volition, Inc.; see "credits.tbl"
Modifications by the FreeSpace Source Code Project (FSSCP)
http://fs2source.warpcore.org
FS2_OPEN STAFF:
Project leader:
Edward "Inquisitor" Gardner
Programmers:
"Bobboau"
Dennis "DTP" Pedersen
Ian "Goober5000" Warfield
Joe "Righteous1" Dowd
Mike "penguin" Harris
"Mysterial"
"PhReAk"
Thomas "Random Tiger" Whittaker
Will "Unknown PLayer" Rousnel
"WMCoolmon"
Web support:
Icefire and the staff at Volitionwatch.com
Alex "Thunder" Avery and the staff at Hard Light Productions
Special thanks to:
Volition for making FS2 such a great game
Dave Baranec for giving us the code and keeping us sanity checked
-41
View File
@@ -1,41 +0,0 @@
## FreeSpace
FreeSpace: The Great War (Released 1998) and FreeSpace 2 (1999) are mission-based space combat simulators, like X-Wing/TIE Fighter and Wing Commander. Among the greatest games of the genre, they were also effectively the last.
The FreeSpace series follows humanity and their Vasudan allies as they fight to withstand the xenocidal, enigmatic Shivans, a species of unknown origin, vast technological capability, and seemingly limitless malice.
## FreeSpace Open
Thanks to Volition's generosity, we've continued development of FreeSpace 2 as FreeSpace Open, building graphical enhancements to bring the original games up to modern standards, telling new stories set in the FreeSpace universe and original worlds, and creating spectacular total conversions that let players fly in the beloved universes of Babylon 5, Battlestar Galactica, Wing Commander, and Star Wars.
## Hard-Light Productions
HLP is a fan community built on love and open-source code. We're dedicated to bringing modders together and giving them a place to share their own hard work and draw inspiration from the work of others. Thanks to Volition's generosity, we've continued development of FreeSpace 2 as FreeSpace Open, building graphical enhancements to bring the original games up to modern standards, telling new stories set in the FreeSpace universe and original worlds, and creating spectacular total conversions that let players fly in the beloved universes of Babylon 5, Battlestar Galactica, Wing Commander, and Star Wars.
Find us at:
- Our [website](http://www.hard-light.net/) and [forums](http://www.hard-light.net/forums/)
- [Discord](https://discord.gg/YNVP3WR)
- [Facebook](https://www.facebook.com/groups/Hardlightproductions/)
- [Youtube](https://www.youtube.com/channel/UCxKkd609hDtY6yNetR1iT4w)
- [Reddit](https://www.reddit.com/r/freespace/)
- [Twitter](https://twitter.com/hardlightpro)
- [IRC](irc://irc.esper.net/hard-light)
## How to get the game
FreeSpace Open requires a retail installation of FreeSpace 2, which is available at the following stores:
- [GOG.com](https://www.gog.com/game/freespace_2)
- [Steam](https://store.steampowered.com/app/273620/Freespace_2/)
After installing retail FS2, use [Knossos](https://fsnebula.org/knossos/) to upgrade to the most recent release of FSO. Knossos is an advanced mod manager and launcher for FSO.
## Improvements
The new open source game engine has several distingushing features including:
- Linux and Mac OS X support
- OpenGL support
- OpenAL audio support
- Easy mod installation
- OGG support
- Hardware transform, clipping, and lighting
## The FreeSpace Upgrade Project
While the SCP improves the code of the game engine to enable new and exciting features, the FreeSpace Upgrade Project (FSU) creates material that takes advantage of the improved game engine.
The FSU improves the ships, effects, and background elements of FreeSpace 2. Every now and then these improvements are released as a pack called MediaVPs. These assorted improvements enhance the graphics of the game.
While the best way to experience the FSU is by playing the game with it, you can watch this [comparison video](https://www.youtube.com/watch?v=RM1YC_gK-qo) between 1999 and 2019 to have an idea of how much more beautiful FSU makes the game.
^(Much of this content was pulled from existing sources, such as InsaneBaron's "What Is Hard Light Productions" [thread](https://www.hard-light.net/forums/index.php?topic=86650.0), the Wiki's [Getting Started article](https://wiki.hard-light.net/index.php/Getting_started) and more.)
-8
View File
@@ -1,8 +0,0 @@
Original source (Freespace 2) by Volition, Inc.; see "`credits.tbl`"
Modifications by the FreeSpace 2 Source Code Project [(FSO SCP)](https://www.hard-light.net/forums/index.php?board=50.0)
[Project Contributors](https://github.com/scp-fs2open/fs2open.github.com/graphs/contributors)
Special thanks to:
Volition for making FS2 such a great game
Dave Baranec for giving us the code and keeping us sanity checked
-283
View File
@@ -1,283 +0,0 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.21)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# Make sure the source and binary directory are not the sample
if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
message(FATAL_ERROR "Binary and source directory can not be the same! Choose another build directory.")
endif()
include(cmake/util.cmake)
# Set a few policies
set_policy(CMP0051 NEW)
set_policy(CMP0053 NEW)
set_policy(CMP0054 NEW)
set_policy(CMP0091 NEW) # Enable use of CMAKE_MSVC_RUNTIME_LIBRARY
SET(FSO_PROJECT_DESCRIPTION "Open source project based on the original FreeSpace 2 source code.")
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Executable output path")
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Library output path")
# CMAKE_INSTALL_PREFIX is defined but also overwritten by the PROJECT command so we need to set it later
IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
SET(RESET_INSTALL_PREFIX TRUE)
ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
# Reset this variable
SET(TARGET_COPY_FILES "" CACHE INTERNAL "" FORCE)
SET(TARGET_COPY_DIRS "" CACHE INTERNAL "" FORCE)
get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
# Override standard CMake configurations
set(FSO_BUILD_TYPES Debug Release FastDebug)
if(is_multi_config)
set(CMAKE_CONFIGURATION_TYPES "${FSO_BUILD_TYPES}" CACHE STRING "Configuration types" FORCE)
elseif(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Default build configuration used." FORCE)
message(WARNING "CMAKE_BUILD_TYPE was not specified, defaulting to Release configuration.")
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${FSO_BUILD_TYPES}")
endif()
set(FSO_LANGUAGES C CXX)
if(APPLE)
set(FSO_LANGUAGES ${FSO_LANGUAGES} OBJC OBJCXX)
# 10.15 for c++17 std::filesystem
# NOTE: this must be set *before* the project() call to work properly!!
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "macOS deployment target")
# fix all targets in scheme (so it's not just qtfred)
set(CMAKE_XCODE_GENERATE_SCHEME TRUE)
endif()
PROJECT(FS2_Open LANGUAGES ${FSO_LANGUAGES})
if (ANDROID)
message(STATUS "Building for Android (NDK)")
set(FSO_BUILD_INCLUDED_LIBS ON CACHE BOOL "" FORCE)
set(USING_PREBUILT_LIBS ON CACHE BOOL "" FORCE)
set(SDL3_USE_PRECOMPILED ON CACHE BOOL "" FORCE)
set(OPENAL_USE_PRECOMPILED ON CACHE BOOL "" FORCE)
set(USING_PREBUILT_VULKAN ON CACHE BOOL "" FORCE)
endif()
# Check if the external modules exists
IF(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/lib/libRocket/Build")
message(FATAL_ERROR "External submodules could not be found. Please make sure you have updated your submodules.")
endif()
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/finder")
# this must be set before include(toolchain)
if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 4)
set(FSO_BUILD_QTFRED OFF CACHE INTERNAL "" FORCE)
else()
OPTION(FSO_BUILD_QTFRED "Build qtFRED2 binary" ON)
endif()
INCLUDE(globals)
INCLUDE(toolchain)
include(embed_file)
IF(RESET_INSTALL_PREFIX)
IF(NOT $ENV{FS2PATH} STREQUAL "")
IF(NOT IS_DIRECTORY $ENV{FS2PATH})
MESSAGE(WARNING "The path '$ENV{FS2PATH}' of the environment variable FS2PATH does not point to a directory! Install prefix wasn't set.")
ELSE(NOT IS_DIRECTORY $ENV{FS2PATH})
SET(CMAKE_INSTALL_PREFIX "$ENV{FS2PATH}" CACHE PATH "Install path" FORCE)
FILE(TO_CMAKE_PATH ${CMAKE_INSTALL_PREFIX} CMAKE_INSTALL_PREFIX)
ENDIF(NOT IS_DIRECTORY $ENV{FS2PATH})
ELSE(NOT $ENV{FS2PATH} STREQUAL "")
MESSAGE(STATUS "NO FS2PATH environment variable found, you can define this to point to your freespace install but it is not required.")
ENDIF(NOT $ENV{FS2PATH} STREQUAL "")
ENDIF(RESET_INSTALL_PREFIX)
IF(WIN32 OR APPLE OR ANDROID OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
OPTION(FSO_USE_SPEECH "Use text-to-speach libraries" ON)
ELSE()
OPTION(FSO_USE_SPEECH "Use text-to-speach libraries" OFF)
ENDIF()
IF (WIN32)
OPTION(FSO_USE_VOICEREC "Enable voice recognition support" ON)
OPTION(FSO_BUILD_FRED2 "Build FRED2 binary" ON)
elseif(UNIX)
option(FSO_BUILD_APPIMAGE "Build an AppImage package" OFF)
ENDIF(WIN32)
OPTION(FSO_BUILD_TOOLS "Build tools related to FSO" OFF)
OPTION(FSO_BUILD_TESTS "Build unit tests" OFF)
OPTION(FSO_DEVELOPMENT_MODE "Generate binaries in development mode, only use if you know what you're doing!" OFF)
IF(WIN32 OR APPLE OR ANDROID)
# On windows, mac and android the default should be to always build the included libraries
SET(FSO_BUILD_INCLUDED_LIBS_DEFAULT ON)
ELSE()
SET(FSO_BUILD_INCLUDED_LIBS_DEFAULT OFF)
ENDIF()
OPTION(FSO_BUILD_INCLUDED_LIBS "Build and use the included libraries istead of using the system headers and libraries" ${FSO_BUILD_INCLUDED_LIBS_DEFAULT})
OPTION(FSO_USE_LUAJIT "Use LuaJIT for Lua scripting, needs a working internet connection!" OFF)
OPTION(FSO_USE_OPENALSOFT "Download and build OpenAL Soft instead of using the system libraries" OFF)
OPTION(FSO_FATAL_WARNINGS "Determines if warnings in the build are considered fatal errors, primarily used for CI" OFF)
SET(FSO_FREESPACE_PATH "${CMAKE_INSTALL_PREFIX}" CACHE PATH "The path of the FreeSpace directory you want to use. Please note that you will have to change CMAKE_INSTALL_PREFIX if you change this at some point.")
SET(FSO_RUN_ARGUMENTS "" CACHE STRING "Additional arguments passed to a generated executable when run with the generated build files.")
option(FSO_INSTALL_DEBUG_FILES "Install some debug files (currently only PDB files on windows)" OFF)
option(FSO_RELEASE_LOGGING "Enable logging output for release builds" OFF)
OPTION(FSO_BUILD_WITH_FFMPEG "Enable the usage of FFmpeg for sound and custscenes" ON)
OPTION(FSO_BUILD_WITH_DISCORD "Build with Discord support" ON)
OPTION(FSO_BUILD_WITH_OPENGL "Enable compilation of the OpenGL renderer" ON)
OPTION(FSO_BUILD_WITH_OPENGL_DEBUG "Enables debug option for OpenGL" OFF)
OPTION(FSO_BUILD_WITH_OPENGL_ES "When building OpenGL, use OpenGL ES compatibility layer" OFF)
OPTION(FSO_BUILD_WITH_VULKAN "Enable compilation of the Vulkan renderer" ON)
if(NOT FSO_BUILD_WITH_OPENGL AND FSO_BUILD_WITH_OPENGL_ES)
# Disable GLES if not building with OpenGL
set(FSO_BUILD_WITH_OPENGL_ES OFF CACHE BOOL "" FORCE)
endif()
if(FSO_BUILD_WITH_OPENGL_ES)
add_definitions(-DUSE_OPENGL_ES)
IF(FSO_BUILD_WITH_OPENXR)
MESSAGE(WARNING "FSO_BUILD_WITH_OPENXR is ON. But not supported on OpenGL ES for now - setting to OFF.")
SET(FSO_BUILD_WITH_OPENXR OFF CACHE BOOL "" FORCE)
endif()
endif()
IF(NOT APPLE AND NOT FSO_BUILD_WITH_OPENGL_ES)
SET(OPENXR_BUILD_DEFAULT ON)
ELSE()
SET(OPENXR_BUILD_DEFAULT OFF)
ENDIF()
OPTION(FSO_BUILD_WITH_OPENXR "Build with OpenXR support" ${OPENXR_BUILD_DEFAULT})
IF(FSO_BUILD_WITH_OPENXR AND APPLE)
MESSAGE(WARNING "FSO_BUILD_WITH_OPENXR is ON. Not supported on macOS - setting to OFF.")
SET(FSO_BUILD_WITH_OPENXR OFF CACHE BOOL "" FORCE)
ENDIF()
OPTION(FSO_BUILD_WITH_OPENXR_DEBUG "Enables debug option for OpenXR" OFF)
OPTION(FSO_USE_LTO "Build using LTO (only for release builds)" ON)
MARK_AS_ADVANCED(FORCE FSO_CMAKE_DEBUG)
MARK_AS_ADVANCED(FORCE FSO_BUILD_INCLUDED_LIBS)
MARK_AS_ADVANCED(FORCE FSO_USE_OPENALSOFT)
MARK_AS_ADVANCED(FORCE FSO_USE_LUAJIT)
MARK_AS_ADVANCED(FORCE FSO_DEVELOPMENT_MODE)
MARK_AS_ADVANCED(FORCE FSO_FATAL_WARNINGS)
mark_as_advanced(FORCE FSO_INSTALL_DEBUG_FILES)
mark_as_advanced(FORCE FSO_RELEASE_LOGGING)
mark_as_advanced(FORCE FSO_BUILD_WITH_FFMPEG)
mark_as_advanced(FORCE FSO_BUILD_WITH_DISCORD)
mark_as_advanced(FORCE FSO_BUILD_WITH_OPENGL)
mark_as_advanced(FORCE FSO_BUILD_WITH_OPENGL_DEBUG)
mark_as_advanced(FORCE FSO_BUILD_WITH_OPENGL_ES)
mark_as_advanced(FORCE FSO_BUILD_WITH_VULKAN)
mark_as_advanced(FORCE FSO_BUILD_WITH_OPENXR)
mark_as_advanced(FORCE FSO_BUILD_WITH_OPENXR_DEBUG)
INCLUDE(platforms)
include(version)
INCLUDE(headers)
SET(GENERATED_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated_source)
include(generateHeaders)
if(FSO_BUILD_APPIMAGE)
SET(BINARY_DESTINATION "bin")
SET(LIBRAY_DESTINATION "lib")
endif()
include(clang-tidy)
include(CheckIPOSupported)
check_ipo_supported(RESULT LTO_AVAILABLE)
if (FSO_USE_LTO AND LTO_AVAILABLE)
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
message("Enabled LTO for Release builds")
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE)
endif (FSO_USE_LTO AND LTO_AVAILABLE)
# This includes source code for some tools, either used in the build or also for something else
ADD_SUBDIRECTORY(tools)
ADD_SUBDIRECTORY(lib)
ADD_SUBDIRECTORY(parsers)
ADD_SUBDIRECTORY(code)
ADD_SUBDIRECTORY(freespace2)
IF(FSO_BUILD_FRED2)
ADD_SUBDIRECTORY(fred2)
ENDIF(FSO_BUILD_FRED2)
IF(FSO_BUILD_QTFRED)
ADD_SUBDIRECTORY(qtfred)
ENDIF()
if(FSO_BUILD_TESTS)
add_subdirectory(test)
endif()
if ("${CMAKE_VERSION}" VERSION_GREATER "3.5")
# Default to using Freespace2 as startup project if CMake supports it.
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Freespace2)
endif()
IF(MSVC_USE_RUNTIME_DLL)
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION "${BINARY_DESTINATION}")
IF(FSO_BUILD_FRED2)
SET(CMAKE_INSTALL_MFC_LIBRARIES ON)
ENDIF(FSO_BUILD_FRED2)
INCLUDE(InstallRequiredSystemLibraries)
ENDIF(MSVC_USE_RUNTIME_DLL)
include(package)
include(doxygen)
# Print used options to log
message(STATUS "Using text to speech: ${FSO_USE_SPEECH}")
IF (WIN32)
message(STATUS "Using voice recogition: ${FSO_USE_VOICEREC}")
message(STATUS "Building FRED2: ${FSO_BUILD_FRED2}")
elseif(UNIX)
message(STATUS "Building AppImage: ${FSO_BUILD_APPIMAGE}")
ENDIF()
message(STATUS "Building FSO tools: ${FSO_BUILD_TOOLS}")
message(STATUS "Building qtFRED: ${FSO_BUILD_QTFRED}")
message(STATUS "Fatal warnings: ${FSO_FATAL_WARNINGS}")
message(STATUS "Release logging: ${FSO_RELEASE_LOGGING}")
message(STATUS "With FFmpeg: ${FSO_BUILD_WITH_FFMPEG}")
message(STATUS "With Discord: ${FSO_BUILD_WITH_DISCORD}")
message(STATUS "With OpenGL: ${FSO_BUILD_WITH_OPENGL}")
message(STATUS "With OpenGL ES: ${FSO_BUILD_WITH_OPENGL_ES}")
message(STATUS "With Vulkan: ${FSO_BUILD_WITH_VULKAN}")
message(STATUS "With OpenXR: ${FSO_BUILD_WITH_OPENXR}")
+14
View File
@@ -0,0 +1,14 @@
Volition Copyright (applies to original FreeSpace2 source code
developed and released by Volition):
"Copyright (C) Volition, Inc. 1999. All rights reserved.
All source code herein is the property of Volition, Inc. You may not
sell or otherwise commercially exploit the source or things you
created based on the source."
Modifications by members of the FreeSpace Source Code Project are
released under whatever terms the individual authors choose, but the
above notice continues to apply to all fs2_open code.
+1868
View File
File diff suppressed because it is too large. Load diff
-2614
View File
File diff suppressed because it is too large. Load diff
-22
View File
@@ -1,22 +0,0 @@
Volition Copyright (applies to original FreeSpace2 source code
developed and released by Volition):
>Copyright (C) Volition, Inc. 1999. All rights reserved.
>
>All source code herein is the property of Volition, Inc. You may not
sell or otherwise commercially exploit the source or things you
created based on the source.
Modifications by members of the FreeSpace Source Code Project are
released under whatever terms the individual authors choose, but the
above notice continues to apply to all fs2_open code.
All modifications made on or after November 1, 2020, shall be released under
the terms within [Unlicense](Unlicense.md). Modifications made before said date are released
under the previous terms with the exception of modifications made by members
of the FreeSpace Source Code Project that opt-in to the terms of Unlicense. Additionally,
a list of contributors who have opted in to the Unlicense terms can be found
in [**Licensing**](https://github.com/scp-fs2open/fs2open.github.com/wiki/Licensing).
See [**Licensing**](https://github.com/scp-fs2open/fs2open.github.com/wiki/Licensing) for more information.
Binary file not shown.
+29
View File
@@ -0,0 +1,29 @@
This is still in pretty rough form.
=== for people building fs2_open:
Win32-MSVC:
Use the Freespace2.dsw workspace and build within the IDE.
Win32-MinGW:
make
Linux and other unix variants (NOT YET COMPLETE)
./configure [options]
make
=== for the project maintainers (people who need to
=== keep the makefiles up to date) and those building
=== from CVS:
./autogen.sh (should only has to be done once)
./configure [options]
make
automake v1.6.1+ and
autoconf v2.54+ are required
+86
View File
@@ -0,0 +1,86 @@
# Makefile.am for fs2_open (top level)
#
# This file uses GNU Automake to generate makefiles
SUBDIRS = libjpeg lua code
EXTRA_DIST = \
FS2OpenSCPReadMe.doc \
projects/MSVC_2005/Freespace2.sln \
projects/MSVC_2005/Freespace2.vcproj \
projects/MSVC_2005/code.vcproj \
projects/MSVC_6/Fred2.dsp \
projects/MSVC_6/Freespace2.dsp \
projects/MSVC_6/Freespace2.dsw \
projects/MSVC_6/code.dsp \
projects/MSVC_6/libjpeg.dsp \
projects/MSVC_6/liblua.dsp \
projects/MSVC_6/wxFRED2.dsp \
projects/MSVC_7/Freespace2.sln \
projects/MSVC_7/Freespace2.vcproj \
projects/MSVC_7/code.vcproj \
projects/MSVC_7/fred2_open.vcproj \
projects/MSVC_7/libjpeg.vcproj \
projects/MSVC_7/lua.vcproj \
projects/MSVC_7/wxFRED2.vcproj \
projects/anjuta1/FS2_Open.prj \
projects/anjuta1/README \
projects/Xcode/English.lproj/InfoPlist.strings \
projects/Xcode/FS2_Open.icns \
projects/Xcode/FS2_Open.xcodeproj/project.pbxproj \
projects/Xcode/Frameworks.tgz \
projects/Xcode/Info-debug.plist \
projects/Xcode/Info.plist \
projects/Xcode/README.Xcode \
projects/Xcode/SDLMain.h \
projects/Xcode/SDLMain.m
# D_ variants are defaults and should always be used
AM_CXXFLAGS = -I./code @D_CFLAGS@
AM_LDFLAGS = @D_LDFLAGS@
EXTRA_PROGRAMS = cfilearchiver cfileextractor cryptstring scramble
###############################################################################
##
## Begin utilitites
##
# cfilearchiver -- to create VPs
cfilearchiver_SOURCES = \
code/cfilearchiver/cfilearchiver.cpp
# cfileextractor -- to extract files from VPs
cfileextractor_SOURCES = \
code/cfileextractor/cfileextractor.cpp
# cryptstring -- to encrypt strings that are used as cheat codes
cryptstring_SOURCES = \
code/cryptstring/cryptstring.cpp
# scramble -- to encrypt tables
scramble_SOURCES = \
code/parse/encrypt.cpp \
code/scramble/scramble.cpp \
code/scramble/scramble.h
# catch all to build utilitites
tools: cfilearchiver cfileextractor cryptstring scramble
# cleaning
clean-tools:
-test -z "$(EXTRA_PROGRAMS)" || rm -f $(EXTRA_PROGRAMS)
##
## End utilitites
##
###############################################################################
# make sure we get this stuff cleaned up
clean-generic: clean-tools
+8
View File
@@ -0,0 +1,8 @@
The "projects" directory contains ready projects for:
Microsoft Visual C++ 6
Microsoft Visual C++ 2005
Anjuta 1 (please see README with project before using)
See the ChangeLog to see what's new.
See the INSTALL file for instructions on how to build fs2_open.
-9
View File
@@ -1,9 +0,0 @@
FreeSpace2 *S*ource *C*ode *P*roject
==
[![Coverity](https://img.shields.io/coverity/scan/870.svg)](https://scan.coverity.com/projects/870)
Building
--
Before you do anything, make sure you have updated your git submodules, either by running `git submodule update --init --recursive` or by cloning the repository with the `--recursive` flag.<br/>
The main instructions for building can be found at our github wiki, on the [Building](https://github.com/scp-fs2open/fs2open.github.com/wiki/Building) page.
-24
View File
@@ -1,24 +0,0 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to [**Unlicense**](https://unlicense.org).
-18
View File
@@ -1,18 +0,0 @@
#Updating Documentation
####The goal of this file is simply to offer a comprehensive checklist of things we must check when updating the documentation.
1. Changelog:
- Is [Changelog.md](https://github.com/scp-fs2open/fs2open.github.com/blob/master/Changelog.md) up-to-date with the latest release?
- Is it in the proper [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format?
2. Build instructions:
- If a programmer who never built FSO before read the build instruction at [Readme.md](https://github.com/scp-fs2open/fs2open.github.com/blob/master/Readme.md), would they manage to build FSO?
- Is the information in the file up-to-date regarding other matters (such as versions of tools mentioned, links to other guides, etc.)?
- Is the information in the [Building](https://github.com/scp-fs2open/fs2open.github.com/wiki/Building) article, and its sub-articles, still up-to-date?
3. Forums:
- Does the [Forum](https://www.hard-light.net/forums/index.php?board=50.0) contain enough clear information to help a new developer find their way into the up-to-date instructions?
- Is there anything that might mislead a new developer to stumble onto old tools, dead links and/or old versions of the project?
4. General documentation files:
- Is the information in the following files up-to-date?
- [About.md](https://github.com/scp-fs2open/fs2open.github.com/blob/master/About.md) (Should contain general information about FS, FS2, HLP, FSO and FSU)
- [Authors.md](https://github.com/scp-fs2open/fs2open.github.com/blob/master/Authors.md) (Should contain information about the original developers, a way to see FSO's contributors, and special thanks to Volition and Dave Baranec)
- [Copying.md](https://github.com/scp-fs2open/fs2open.github.com/blob/master/Copying.md) (Should contain Volition's Copyright terms and a way to check FSO's Licensing info)
+714
View File
@@ -0,0 +1,714 @@
# Configure paths for SDL
# Sam Lantinga 9/21/99
# stolen from Manish Singh
# stolen back from Frank Belew
# stolen from Manish Singh
# Shamelessly stolen from Owen Taylor
dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
dnl
AC_DEFUN([AM_PATH_SDL],
[dnl
dnl Get the cflags and libraries from the sdl-config script
dnl
AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
sdl_prefix="$withval", sdl_prefix="")
AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
sdl_exec_prefix="$withval", sdl_exec_prefix="")
AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
, enable_sdltest=yes)
if test x$sdl_exec_prefix != x ; then
sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix"
if test x${SDL_CONFIG+set} != xset ; then
SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
fi
fi
if test x$sdl_prefix != x ; then
sdl_args="$sdl_args --prefix=$sdl_prefix"
if test x${SDL_CONFIG+set} != xset ; then
SDL_CONFIG=$sdl_prefix/bin/sdl-config
fi
fi
AC_REQUIRE([AC_CANONICAL_TARGET])
PATH="$prefix/bin:$prefix/usr/bin:$PATH"
AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
min_sdl_version=ifelse([$1], ,0.11.0,$1)
AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
no_sdl=""
if test "$SDL_CONFIG" = "no" ; then
no_sdl=yes
else
SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_sdltest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_CXXFLAGS="$CXXFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $SDL_CFLAGS"
CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
LIBS="$LIBS $SDL_LIBS"
dnl
dnl Now check if the installed SDL is sufficiently new. (Also sanity
dnl checks the results of sdl-config to some extent
dnl
rm -f conf.sdltest
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "SDL.h"
char*
my_strdup (char *str)
{
char *new_str;
if (str)
{
new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
strcpy (new_str, str);
}
else
new_str = NULL;
return new_str;
}
int main (int argc, char *argv[])
{
int major, minor, micro;
char *tmp_version;
/* This hangs on some systems (?)
system ("touch conf.sdltest");
*/
{ FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
/* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = my_strdup("$min_sdl_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_sdl_version");
exit(1);
}
if (($sdl_major_version > major) ||
(($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
(($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
printf("*** best to upgrade to the required version.\n");
printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
printf("*** to point to the correct copy of sdl-config, and remove the file\n");
printf("*** config.cache before re-running configure\n");
return 1;
}
}
],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
CXXFLAGS="$ac_save_CXXFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_sdl" = x ; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$SDL_CONFIG" = "no" ; then
echo "*** The sdl-config script installed by SDL could not be found"
echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the SDL_CONFIG environment variable to the"
echo "*** full path to sdl-config."
else
if test -f conf.sdltest ; then
:
else
echo "*** Could not run SDL test program, checking why..."
CFLAGS="$CFLAGS $SDL_CFLAGS"
CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
LIBS="$LIBS $SDL_LIBS"
AC_TRY_LINK([
#include <stdio.h>
#include "SDL.h"
int main(int argc, char *argv[])
{ return 0; }
#undef main
#define main K_and_R_C_main
], [ return 0; ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding SDL or finding the wrong"
echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means SDL was incorrectly installed"
echo "*** or that you have moved SDL since it was installed. In the latter case, you"
echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
CFLAGS="$ac_save_CFLAGS"
CXXFLAGS="$ac_save_CXXFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
SDL_CFLAGS=""
SDL_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)
rm -f conf.sdltest
])
dnl ---------------------------------------------------------------------------
dnl Macros for wxWindows detection. Typically used in configure.in as:
dnl
dnl AC_ARG_ENABLE(...)
dnl AC_ARG_WITH(...)
dnl ...
dnl AM_OPTIONS_WXCONFIG
dnl ...
dnl ...
dnl AM_PATH_WXCONFIG(2.3.4, wxWin=1)
dnl if test "$wxWin" != 1; then
dnl AC_MSG_ERROR([
dnl wxWindows must be installed on your system
dnl but wx-config script couldn't be found.
dnl
dnl Please check that wx-config is in path, the directory
dnl where wxWindows libraries are installed (returned by
dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or
dnl equivalent variable and wxWindows version is 2.3.4 or above.
dnl ])
dnl fi
dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS"
dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY"
dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY"
dnl
dnl LDFLAGS="$LDFLAGS $WX_LIBS"
dnl ---------------------------------------------------------------------------
dnl ---------------------------------------------------------------------------
dnl AM_OPTIONS_WXCONFIG
dnl
dnl adds support for --wx-prefix, --wx-exec-prefix and --wx-config
dnl command line options
dnl ---------------------------------------------------------------------------
AC_DEFUN([AM_OPTIONS_WXCONFIG],
[
AC_ARG_WITH(wx-prefix, [ --with-wx-prefix=PREFIX Prefix where wxWindows is installed (optional)],
wx_config_prefix="$withval", wx_config_prefix="")
AC_ARG_WITH(wx-exec-prefix,[ --with-wx-exec-prefix=PREFIX Exec prefix where wxWindows is installed (optional)],
wx_config_exec_prefix="$withval", wx_config_exec_prefix="")
AC_ARG_WITH(wx-config,[ --with-wx-config=CONFIG wx-config script to use (optional)],
wx_config_name="$withval", wx_config_name="")
])
dnl ---------------------------------------------------------------------------
dnl AM_PATH_WXCONFIG(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
dnl
dnl Test for wxWindows, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC
dnl (the latter is for static linking against wxWindows). Set WX_CONFIG_NAME
dnl environment variable to override the default name of the wx-config script
dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this
dnl case the macro won't even waste time on tests for its existence.
dnl ---------------------------------------------------------------------------
dnl
dnl Get the cflags and libraries from the wx-config script
dnl
AC_DEFUN([AM_PATH_WXCONFIG],
[
dnl do we have wx-config name: it can be wx-config or wxd-config or ...
if test x${WX_CONFIG_NAME+set} != xset ; then
WX_CONFIG_NAME=wx-config
fi
if test "x$wx_config_name" != x ; then
WX_CONFIG_NAME="$wx_config_name"
fi
dnl deal with optional prefixes
if test x$wx_config_exec_prefix != x ; then
wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix"
WX_LOOKUP_PATH="$wx_config_exec_prefix/bin"
fi
if test x$wx_config_prefix != x ; then
wx_config_args="$wx_config_args --prefix=$wx_config_prefix"
WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin"
fi
dnl don't search the PATH if WX_CONFIG_NAME is absolute filename
if test -x "$WX_CONFIG_NAME" ; then
AC_MSG_CHECKING(for wx-config)
WX_CONFIG_PATH="$WX_CONFIG_NAME"
AC_MSG_RESULT($WX_CONFIG_PATH)
else
AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH")
fi
if test "$WX_CONFIG_PATH" != "no" ; then
WX_VERSION=""
no_wx=""
min_wx_version=ifelse([$1], ,2.2.1,$1)
AC_MSG_CHECKING(for wxWindows version >= $min_wx_version)
WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args"
WX_VERSION=`$WX_CONFIG_WITH_ARGS --version`
wx_config_major_version=`echo $WX_VERSION | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
wx_config_minor_version=`echo $WX_VERSION | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
wx_config_micro_version=`echo $WX_VERSION | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
wx_requested_major_version=`echo $min_wx_version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
wx_requested_minor_version=`echo $min_wx_version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
wx_requested_micro_version=`echo $min_wx_version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
wx_ver_ok=""
if test $wx_config_major_version -gt $wx_requested_major_version; then
wx_ver_ok=yes
else
if test $wx_config_major_version -eq $wx_requested_major_version; then
if test $wx_config_minor_version -gt $wx_requested_minor_version; then
wx_ver_ok=yes
else
if test $wx_config_minor_version -eq $wx_requested_minor_version; then
if test $wx_config_micro_version -ge $wx_requested_micro_version; then
wx_ver_ok=yes
fi
fi
fi
fi
fi
if test "x$wx_ver_ok" = x ; then
no_wx=yes
else
WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`
WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs`
dnl starting with version 2.2.6 wx-config has --cppflags argument
wx_has_cppflags=""
if test $wx_config_major_version -gt 2; then
wx_has_cppflags=yes
else
if test $wx_config_major_version -eq 2; then
if test $wx_config_minor_version -gt 2; then
wx_has_cppflags=yes
else
if test $wx_config_minor_version -eq 2; then
if test $wx_config_micro_version -ge 6; then
wx_has_cppflags=yes
fi
fi
fi
fi
fi
if test "x$wx_has_cppflags" = x ; then
dnl no choice but to define all flags like CFLAGS
WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
WX_CPPFLAGS=$WX_CFLAGS
WX_CXXFLAGS=$WX_CFLAGS
WX_CFLAGS_ONLY=$WX_CFLAGS
WX_CXXFLAGS_ONLY=$WX_CFLAGS
else
dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS
WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags`
WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags`
WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"`
WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"`
fi
fi
if test "x$no_wx" = x ; then
AC_MSG_RESULT(yes (version $WX_VERSION))
ifelse([$2], , :, [$2])
else
if test "x$WX_VERSION" = x; then
dnl no wx-config at all
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(no (version $WX_VERSION is not new enough))
fi
WX_CFLAGS=""
WX_CPPFLAGS=""
WX_CXXFLAGS=""
WX_LIBS=""
WX_LIBS_STATIC=""
ifelse([$3], , :, [$3])
fi
fi
AC_SUBST(WX_CPPFLAGS)
AC_SUBST(WX_CFLAGS)
AC_SUBST(WX_CXXFLAGS)
AC_SUBST(WX_CFLAGS_ONLY)
AC_SUBST(WX_CXXFLAGS_ONLY)
AC_SUBST(WX_LIBS)
AC_SUBST(WX_LIBS_STATIC)
AC_SUBST(WX_VERSION)
])
# Configure paths for libogg
# Jack Moffitt <[email protected]> 10-21-2000
# Shamelessly stolen from Owen Taylor and Manish Singh
dnl XIPH_PATH_OGG([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
dnl Test for libogg, and define OGG_CFLAGS and OGG_LIBS
dnl
AC_DEFUN([XIPH_PATH_OGG],
[dnl
dnl Get the cflags and libraries
dnl
AC_ARG_WITH(ogg,[ --with-ogg=PFX Prefix where libogg is installed (optional)], ogg_prefix="$withval", ogg_prefix="")
AC_ARG_WITH(ogg-libraries,[ --with-ogg-libraries=DIR Directory where libogg library is installed (optional)], ogg_libraries="$withval", ogg_libraries="")
AC_ARG_WITH(ogg-includes,[ --with-ogg-includes=DIR Directory where libogg header files are installed (optional)], ogg_includes="$withval", ogg_includes="")
AC_ARG_ENABLE(oggtest, [ --disable-oggtest Do not try to compile and run a test Ogg program],, enable_oggtest=yes)
if test "x$ogg_libraries" != "x" ; then
OGG_LIBS="-L$ogg_libraries"
elif test "x$ogg_prefix" != "x" ; then
OGG_LIBS="-L$ogg_prefix/lib"
elif test "x$prefix" != "xNONE" ; then
OGG_LIBS="-L$libdir"
fi
OGG_LIBS="$OGG_LIBS -logg"
if test "x$ogg_includes" != "x" ; then
OGG_CFLAGS="-I$ogg_includes"
elif test "x$ogg_prefix" != "x" ; then
OGG_CFLAGS="-I$ogg_prefix/include"
elif test "x$prefix" != "xNONE"; then
OGG_CFLAGS=""
fi
AC_MSG_CHECKING(for Ogg)
no_ogg=""
if test "x$enable_oggtest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $OGG_CFLAGS"
LIBS="$LIBS $OGG_LIBS"
dnl
dnl Now check if the installed Ogg is sufficiently new.
dnl
rm -f conf.oggtest
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ogg/ogg.h>
int main ()
{
system("touch conf.oggtest");
return 0;
}
],, no_ogg=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
if test "x$no_ogg" = "x" ; then
AC_MSG_RESULT(yes)
ifelse([$1], , :, [$1])
else
AC_MSG_RESULT(no)
if test -f conf.oggtest ; then
:
else
echo "*** Could not run Ogg test program, checking why..."
CFLAGS="$CFLAGS $OGG_CFLAGS"
LIBS="$LIBS $OGG_LIBS"
AC_TRY_LINK([
#include <stdio.h>
#include <ogg/ogg.h>
], [ return 0; ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding Ogg or finding the wrong"
echo "*** version of Ogg. If it is not finding Ogg, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means Ogg was incorrectly installed"
echo "*** or that you have moved Ogg since it was installed." ])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
OGG_CFLAGS=""
OGG_LIBS=""
ifelse([$2], , :, [$2])
fi
AC_SUBST(OGG_CFLAGS)
AC_SUBST(OGG_LIBS)
rm -f conf.oggtest
])
# Configure paths for libvorbis
# Jack Moffitt <[email protected]> 10-21-2000
# Shamelessly stolen from Owen Taylor and Manish Singh
# thomasvs added check for vorbis_bitrate_addblock which is new in rc3
dnl XIPH_PATH_VORBIS([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
dnl Test for libvorbis, and define VORBIS_CFLAGS and VORBIS_LIBS
dnl
AC_DEFUN([XIPH_PATH_VORBIS],
[dnl
dnl Get the cflags and libraries
dnl
AC_ARG_WITH(vorbis,[ --with-vorbis=PFX Prefix where libvorbis is installed (optional)], vorbis_prefix="$withval", vorbis_prefix="")
AC_ARG_WITH(vorbis-libraries,[ --with-vorbis-libraries=DIR Directory where libvorbis library is installed (optional)], vorbis_libraries="$withval", vorbis_libraries="")
AC_ARG_WITH(vorbis-includes,[ --with-vorbis-includes=DIR Directory where libvorbis header files are installed (optional)], vorbis_includes="$withval", vorbis_includes="")
AC_ARG_ENABLE(vorbistest, [ --disable-vorbistest Do not try to compile and run a test Vorbis program],, enable_vorbistest=yes)
if test "x$vorbis_libraries" != "x" ; then
VORBIS_LIBS="-L$vorbis_libraries"
elif test "x$vorbis_prefix" != "x" ; then
VORBIS_LIBS="-L$vorbis_prefix/lib"
elif test "x$prefix" != "xNONE"; then
VORBIS_LIBS="-L$libdir"
fi
VORBIS_LIBS="$VORBIS_LIBS -lvorbis -lm"
VORBISFILE_LIBS="-lvorbisfile"
VORBISENC_LIBS="-lvorbisenc"
if test "x$vorbis_includes" != "x" ; then
VORBIS_CFLAGS="-I$vorbis_includes"
elif test "x$vorbis_prefix" != "x" ; then
VORBIS_CFLAGS="-I$vorbis_prefix/include"
elif test "x$prefix" != "xNONE"; then
VORBIS_CFLAGS=""
fi
AC_MSG_CHECKING(for Vorbis)
no_vorbis=""
if test "x$enable_vorbistest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $VORBIS_CFLAGS $OGG_CFLAGS"
LIBS="$LIBS $VORBIS_LIBS $VORBISENC_LIBS $OGG_LIBS"
dnl
dnl Now check if the installed Vorbis is sufficiently new.
dnl
rm -f conf.vorbistest
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <vorbis/codec.h>
#include <vorbis/vorbisenc.h>
int main ()
{
vorbis_block vb;
vorbis_dsp_state vd;
vorbis_info vi;
vorbis_info_init (&vi);
vorbis_encode_init (&vi, 2, 44100, -1, 128000, -1);
vorbis_analysis_init (&vd, &vi);
vorbis_block_init (&vd, &vb);
/* this function was added in 1.0rc3, so this is what we're testing for */
vorbis_bitrate_addblock (&vb);
system("touch conf.vorbistest");
return 0;
}
],, no_vorbis=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
if test "x$no_vorbis" = "x" ; then
AC_MSG_RESULT(yes)
ifelse([$1], , :, [$1])
else
AC_MSG_RESULT(no)
if test -f conf.vorbistest ; then
:
else
echo "*** Could not run Vorbis test program, checking why..."
CFLAGS="$CFLAGS $VORBIS_CFLAGS"
LIBS="$LIBS $VORBIS_LIBS $OGG_LIBS"
AC_TRY_LINK([
#include <stdio.h>
#include <vorbis/codec.h>
], [ return 0; ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding Vorbis or finding the wrong"
echo "*** version of Vorbis. If it is not finding Vorbis, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means Vorbis was incorrectly installed"
echo "*** or that you have moved Vorbis since it was installed." ])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
VORBIS_CFLAGS=""
VORBIS_LIBS=""
VORBISFILE_LIBS=""
VORBISENC_LIBS=""
ifelse([$2], , :, [$2])
fi
AC_SUBST(VORBIS_CFLAGS)
AC_SUBST(VORBIS_LIBS)
AC_SUBST(VORBISFILE_LIBS)
AC_SUBST(VORBISENC_LIBS)
rm -f conf.vorbistest
])
dnl XIPH_PATH_THEORA([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
dnl Test for libtheora, and define THEORA_CFLAGS and THEORA_LIBS
dnl
AC_DEFUN([XIPH_PATH_THEORA],
[dnl
dnl Get the cflags and libraries
dnl
AC_ARG_WITH(theora,[ --with-theora=PFX Prefix where libtheora is installed (optional)], theora_prefix="$withval", theora_prefix="")
AC_ARG_WITH(theora-libraries,[ --with-theora-libraries=DIR Directory where libtheora library is installed (optional)], theora_libraries="$withval", theora_libraries="")
AC_ARG_WITH(theora-includes,[ --with-theora-includes=DIR Directory where libtheora header files are installed (optional)], theora_includes="$withval", theora_includes="")
AC_ARG_ENABLE(theoratest, [ --disable-theoratest Do not try to compile and run a test Theora program],, enable_theoratest=yes)
if test "x$theora_libraries" != "x" ; then
THEORA_LIBS="-L$theora_libraries"
elif test "x$theora_prefix" != "x" ; then
THEORA_LIBS="-L$theora_prefix/lib"
elif test "x$prefix" != "xNONE"; then
THEORA_LIBS="-L$libdir"
fi
THEORA_LIBS="$THEORA_LIBS -ltheora"
if test "x$theora_includes" != "x" ; then
THEORA_CFLAGS="-I$theora_includes"
elif test "x$theora_prefix" != "x" ; then
THEORA_CFLAGS="-I$theora_prefix/include"
elif test "x$prefix" != "xNONE"; then
THEORA_CFLAGS=""
fi
AC_MSG_CHECKING(for Theora)
no_theora=""
if test "x$enable_theoratest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $THEORA_CFLAGS $OGG_CFLAGS"
LIBS="$LIBS $THEORA_LIBS $OGG_LIBS"
dnl
dnl Now check if the installed Theora is sufficiently new.
dnl
rm -f conf.theoratest
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <theora/theora.h>
#include <vorbis/codec.h>
int main ()
{
theora_info ti;
theora_state ts;
theora_info_init(&ti);
system("touch conf.theoratest");
return 0;
}
],, no_theora=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
if test "x$no_theora" = "x" ; then
AC_MSG_RESULT(yes)
ifelse([$1], , :, [$1])
else
AC_MSG_RESULT(no)
if test -f conf.theoratest ; then
:
else
echo "*** Could not run Theora test program, checking why..."
CFLAGS="$CFLAGS $THEORA_CFLAGS"
LIBS="$LIBS $THEORA_LIBS $OGG_LIBS"
AC_TRY_LINK([
#include <stdio.h>
#include <vorbis/codec.h>
], [ return 0; ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding Theora or finding the wrong"
echo "*** version of Theora. If it is not finding Theora, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means Theora was incorrectly installed"
echo "*** or that you have moved Theora since it was installed." ])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
THEORA_CFLAGS=""
THEORA_LIBS=""
ifelse([$2], , :, [$2])
fi
AC_SUBST(THEORA_CFLAGS)
AC_SUBST(THEORA_LIBS)
rm -f conf.theoratest
])
Executable
+137
View File
@@ -0,0 +1,137 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
PKG_NAME="fs2_open"
# check the version of a package
check_version() {
COMMAND=$1
MAJOR=$2
MINOR=$3
MICRO=$4
($COMMAND --version) </dev/null >/dev/null 2>&1 || return 1
ver=`$COMMAND --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
major=`echo $ver | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
minor=`echo $ver | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
micro=`echo $ver | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
test -z "$major" && major=0
test -z "$minor" && minor=0
test -z "$micro" && micro=0
fail=0
if [ ! "$major" -gt "$MAJOR" ]; then
if [ "$major" -lt "$MAJOR" ]; then
fail=1
elif [ ! "$minor" -gt "$MINOR" ]; then
if [ "$minor" -lt "$MINOR" ]; then
fail=1
elif [ "$micro" -lt "$MICRO" ]; then
fail=1
fi
fi
fi
return "$fail"
}
AUTOMAKE=
ACLOCAL=
DIE=0
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`autoconf' installed to."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
for AM in automake-1.9 automake-1.8 automake-1.7 automake-1.6 automake; do
(check_version "$AM" 1 6 1) && {
AUTOMAKE="$AM"
break
}
done
if [ -z "$AUTOMAKE" ]; then
echo
echo "**Error**: You must have \`automake' version 1.6.1 or greater"
echo "installed to compile $PKG_NAME. Download the appropriate package"
echo "for your distribution, or get the source tarball at"
echo "ftp://ftp.gnu.org/pub/gnu/"
DIE=1
fi
# if no automake, don't bother testing for aclocal
test -z "$AUTOMAKE" || {
for ACL in aclocal-1.9 aclocal-1.8 aclocal-1.7 aclocal-1.6 aclocal; do
(check_version "$ACL" 1 6 1) && {
ACLOCAL="$ACL"
break
}
done
if [ -z "$ACLOCAL" ]; then
echo
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
echo "installed seems to be outdated. Get a recent package from"
echo "ftp://ftp.gnu.org/pub/gnu/"
DIE=1
fi
}
if test "$DIE" -eq 1; then
exit 1
fi
if test -z "$*"; then
echo "**Warning**: I am going to run \`configure' with no arguments."
echo "If you wish to pass any to it, please specify them on the"
echo \`$0\'" command line."
echo
fi
case $CC in
xlc )
am_opt=--include-deps;;
esac
for coin in `find $srcdir -name configure.ac -print`
do
dr=`dirname $coin`
if test -f $dr/NO-AUTO-GEN; then
echo skipping $dr -- flagged as no auto-gen
else
echo processing $dr
macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
( cd $dr
aclocalinclude="$ACLOCAL_FLAGS"
for k in $macrodirs; do
if test -d $k; then
aclocalinclude="$aclocalinclude -I $k"
##else
## echo "**Warning**: No such directory \`$k'. Ignored."
fi
done
echo "Running $ACLOCAL $aclocalinclude ..."
"$ACLOCAL" $aclocalinclude
echo "Running $AUTOMAKE --add-missing --copy --foreign $am_opt ..."
"$AUTOMAKE" --add-missing --copy --foreign $am_opt
echo "Running autoconf..."
autoconf
)
fi
done
#conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
if test x$NOCONFIGURE = x; then
echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
&& echo Now type \`make\' to compile $PKG_NAME.
else
echo Skipping configure process.
fi
-19
View File
@@ -1,19 +0,0 @@
{
"package": {
"subject": "scp-fs2open",
"repo": "FSO",
"name": "nightly"
},
"version": {
"name": "$VERSION_NAME"
},
"files": [
{
"includePattern": "/tmp/builds/(.*)",
"uploadPattern": "$1"
}
],
"publish": true
}
-268
View File
@@ -1,268 +0,0 @@
#!/usr/bin/env python3
#
#===- clang-tidy-diff.py - ClangTidy Diff Checker ------------*- python -*--===#
#
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#
#===------------------------------------------------------------------------===#
r"""
ClangTidy Diff Checker
======================
This script reads input from a unified diff, runs clang-tidy on all changed
files and outputs clang-tidy warnings in changed lines only. This is useful to
detect clang-tidy regressions in the lines touched by a specific patch.
Example usage for git/svn users:
git diff -U0 HEAD^ | clang-tidy-diff.py -p1
svn diff --diff-cmd=diff -x-U0 | \
clang-tidy-diff.py -fix -checks=-*,modernize-use-override
"""
import argparse
import glob
import json
import multiprocessing
import os
import re
import shutil
import subprocess
import sys
import tempfile
import threading
import traceback
try:
import yaml
except ImportError:
yaml = None
is_py2 = sys.version[0] == '2'
if is_py2:
import Queue as queue
else:
import queue as queue
def run_tidy(task_queue, lock, timeout):
watchdog = None
while True:
command = task_queue.get()
try:
proc = subprocess.Popen(command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
if timeout is not None:
watchdog = threading.Timer(timeout, proc.kill)
watchdog.start()
stdout, stderr = proc.communicate()
with lock:
sys.stdout.write(stdout.decode('utf-8'))
sys.stdout.flush()
if stderr:
sys.stderr.write(stderr.decode('utf-8'))
sys.stderr.flush()
except Exception as e:
with lock:
sys.stderr.write('Failed: ' + str(e) + ': '.join(command) + '\n')
finally:
with lock:
if (not timeout is None) and (not watchdog is None):
if not watchdog.is_alive():
sys.stderr.write('Terminated by timeout: ' +
' '.join(command) + '\n')
watchdog.cancel()
task_queue.task_done()
def start_workers(max_tasks, tidy_caller, task_queue, lock, timeout):
for _ in range(max_tasks):
t = threading.Thread(target=tidy_caller, args=(task_queue, lock, timeout))
t.daemon = True
t.start()
def merge_replacement_files(tmpdir, mergefile):
"""Merge all replacement files in a directory into a single file"""
# The fixes suggested by clang-tidy >= 4.0.0 are given under
# the top level key 'Diagnostics' in the output yaml files
mergekey = "Diagnostics"
merged = []
for replacefile in glob.iglob(os.path.join(tmpdir, '*.yaml')):
content = yaml.safe_load(open(replacefile, 'r'))
if not content:
continue # Skip empty files.
merged.extend(content.get(mergekey, []))
if merged:
# MainSourceFile: The key is required by the definition inside
# include/clang/Tooling/ReplacementsYaml.h, but the value
# is actually never used inside clang-apply-replacements,
# so we set it to '' here.
output = { 'MainSourceFile': '', mergekey: merged }
with open(mergefile, 'w') as out:
yaml.safe_dump(output, out)
else:
# Empty the file:
open(mergefile, 'w').close()
def main():
parser = argparse.ArgumentParser(description=
'Run clang-tidy against changed files, and '
'output diagnostics only for modified '
'lines.')
parser.add_argument('-clang-tidy-binary', metavar='PATH',
default='clang-tidy',
help='path to clang-tidy binary')
parser.add_argument('-p', metavar='NUM', default=0,
help='strip the smallest prefix containing P slashes')
parser.add_argument('-regex', metavar='PATTERN', default=None,
help='custom pattern selecting file paths to check '
'(case sensitive, overrides -iregex)')
parser.add_argument('-iregex', metavar='PATTERN', default=
r'.*\.(cpp|cc|c\+\+|cxx|c|cl|h|hpp|m|mm|inc)',
help='custom pattern selecting file paths to check '
'(case insensitive, overridden by -regex)')
parser.add_argument('-j', type=int, default=1,
help='number of tidy instances to be run in parallel.')
parser.add_argument('-timeout', type=int, default=None,
help='timeout per each file in seconds.')
parser.add_argument('-fix', action='store_true', default=False,
help='apply suggested fixes')
parser.add_argument('-checks',
help='checks filter, when not specified, use clang-tidy '
'default',
default='')
parser.add_argument('-path', dest='build_path',
help='Path used to read a compile command database.')
if yaml:
parser.add_argument('-export-fixes', metavar='FILE', dest='export_fixes',
help='Create a yaml file to store suggested fixes in, '
'which can be applied with clang-apply-replacements.')
parser.add_argument('-extra-arg', dest='extra_arg',
action='append', default=[],
help='Additional argument to append to the compiler '
'command line.')
parser.add_argument('-extra-arg-before', dest='extra_arg_before',
action='append', default=[],
help='Additional argument to prepend to the compiler '
'command line.')
parser.add_argument('-quiet', action='store_true', default=False,
help='Run clang-tidy in quiet mode')
clang_tidy_args = []
argv = sys.argv[1:]
if '--' in argv:
clang_tidy_args.extend(argv[argv.index('--'):])
argv = argv[:argv.index('--')]
args = parser.parse_args(argv)
# Extract changed lines for each file.
filename = None
lines_by_file = {}
for line in sys.stdin:
match = re.search('^\+\+\+\ \"?(.*?/){%s}([^ \t\n\"]*)' % args.p, line)
if match:
filename = match.group(2)
if filename is None:
continue
if args.regex is not None:
if not re.match('^%s$' % args.regex, filename):
continue
else:
if not re.match('^%s$' % args.iregex, filename, re.IGNORECASE):
continue
match = re.search('^@@.*\+(\d+)(,(\d+))?', line)
if match:
start_line = int(match.group(1))
line_count = 1
if match.group(3):
line_count = int(match.group(3))
if line_count == 0:
continue
end_line = start_line + line_count - 1
lines_by_file.setdefault(filename, []).append([start_line, end_line])
if not any(lines_by_file):
print("No relevant changes found.")
sys.exit(0)
max_task_count = args.j
if max_task_count == 0:
max_task_count = multiprocessing.cpu_count()
max_task_count = min(len(lines_by_file), max_task_count)
tmpdir = None
if yaml and args.export_fixes:
tmpdir = tempfile.mkdtemp()
# Tasks for clang-tidy.
task_queue = queue.Queue(max_task_count)
# A lock for console output.
lock = threading.Lock()
# Run a pool of clang-tidy workers.
start_workers(max_task_count, run_tidy, task_queue, lock, args.timeout)
# Form the common args list.
common_clang_tidy_args = []
if args.fix:
common_clang_tidy_args.append('-fix')
if args.checks != '':
common_clang_tidy_args.append('-checks=' + args.checks)
if args.quiet:
common_clang_tidy_args.append('-quiet')
if args.build_path is not None:
common_clang_tidy_args.append('-p=%s' % args.build_path)
for arg in args.extra_arg:
common_clang_tidy_args.append('-extra-arg=%s' % arg)
for arg in args.extra_arg_before:
common_clang_tidy_args.append('-extra-arg-before=%s' % arg)
for name in lines_by_file:
line_filter_json = json.dumps(
[{"name": name, "lines": lines_by_file[name]}],
separators=(',', ':'))
# Run clang-tidy on files containing changes.
command = [args.clang_tidy_binary]
command.append('-line-filter=' + line_filter_json)
if yaml and args.export_fixes:
# Get a temporary file. We immediately close the handle so clang-tidy can
# overwrite it.
(handle, tmp_name) = tempfile.mkstemp(suffix='.yaml', dir=tmpdir)
os.close(handle)
command.append('-export-fixes=' + tmp_name)
command.extend(common_clang_tidy_args)
command.append(name)
command.extend(clang_tidy_args)
task_queue.put(command)
# Wait for all threads to be done.
task_queue.join()
if yaml and args.export_fixes:
print('Writing fixes to ' + args.export_fixes + ' ...')
try:
merge_replacement_files(tmpdir, args.export_fixes)
except:
sys.stderr.write('Error exporting fixes.\n')
traceback.print_exc()
if tmpdir:
shutil.rmtree(tmpdir)
if __name__ == '__main__':
main()
-33
View File
@@ -1,33 +0,0 @@
#!/usr/bin/env bash
set -e
SCRIPT=$(readlink -f "$0")
HERE=$(dirname "$SCRIPT")
git config --global --add safe.directory "$GITHUB_WORKSPACE"
COMMIT_RANGE=$1..$2
if ! git rev-list $COMMIT_RANGE 2>&1 >/dev/null; then
echo "\$COMMIT_RANGE ($COMMIT_RANGE) is not valid for this build (probably caused by a rebase)."
exit 0
fi
# In order to get a proper diff without irrelevant changes, we need to determine where we branched off from the base
# branch
BASE_COMMIT=$(git merge-base $1 $2)
# Allow the caller to override the clang-tidy binary and job count, since neither
# /usr/bin/clang-tidy-16 nor nproc are available outside the Linux CI container
# (e.g. macOS runners install clang-tidy via pip and use sysctl for core count).
CLANG_TIDY_BINARY="${CLANG_TIDY_BINARY:-/usr/bin/clang-tidy-16}"
NUM_JOBS="${NUM_JOBS:-$( (command -v nproc >/dev/null 2>&1 && nproc) || sysctl -n hw.ncpu )}"
# Note: Manually passing in the Vulkan flags that are normally provided by cmake (but are not so, here), to ensure
# that the source files are checked with the actual configuration used.
echo "Running clang-tidy on changed files"
git diff -U0 --no-color "$BASE_COMMIT..$2" | \
$HERE/clang-tidy-diff.py -path "$(pwd)/build" -p1 \
-regex '(code(?!((\/graphics\/shaders\/compiled)|(\/globalincs\/windebug)|(\/def_files\/data)))|freespace2|qtfred|test\/src|build|tools)\/.*\.(cpp|h)' \
-clang-tidy-binary "$CLANG_TIDY_BINARY" -j"$NUM_JOBS" -export-fixes "$(pwd)/clang-fixes.yaml"
-70
View File
@@ -1,70 +0,0 @@
#!/usr/bin/env bash
if [ "$COMPILER" = "gcc-9" ]; then
export CC=gcc-9
export CXX=g++-9
fi
if [ "$COMPILER" = "gcc-13" ]; then
export CC=gcc-13
export CXX=g++-13
fi
if [ "$COMPILER" = "clang-16" ]; then
export CC=clang-16
export CXX=clang++-16
fi
if [ "$RUNNER_OS" = "macOS" ]; then
CXXFLAGS="-mtune=generic -pipe -Wno-unknown-pragmas"
CFLAGS="-mtune=generic -pipe -Wno-unknown-pragmas"
export CMAKE_OSX_ARCHITECTURES="$ARCHITECTURE"
else
PLATFORM_CMAKE_OPTIONS="-DFSO_BUILD_APPIMAGE=ON -DFORCED_SIMD_INSTRUCTIONS=SSE2"
# Optionally use static libstdc++/libc++ on Linux, but default to off
# (Issue #5571 enabled it as a fix for 20.04 compatibility, but we've moved to 22.04)
PLATFORM_CMAKE_OPTIONS="$PLATFORM_CMAKE_OPTIONS -DUSE_STATIC_LIBCXX=${USE_STATIC_LIBCXX:-OFF}"
fi
CMAKE_OPTIONS="$JOB_CMAKE_OPTIONS"
if [[ "$COMPILER" =~ ^clang.*$ ]]; then
# Default to allowing system standard c++ library be used. On Linux, which
# typically uses libstdc++ by default, using libc++ causes a conflict with
# Qt6 libs. So an error/warning is in place to catch that case when QtFRED
# is enabled.
CMAKE_OPTIONS="$CMAKE_OPTIONS -DCLANG_USE_LIBCXX=${CLANG_USE_LIBCXX:-OFF}"
fi
if [ ! "$CCACHE_PATH" = "" ] && [ ! -x "$CCACHE_PATH" ]; then
# The configured path doesn't exist on this runner (e.g. macOS runners on Apple
# Silicon hosts install Homebrew under /opt/homebrew instead of /usr/local),
# so fall back to whatever ccache is actually on PATH.
CCACHE_PATH="$(command -v ccache || true)"
fi
if [ ! "$CCACHE_PATH" = "" ]; then
echo "Using ccache at $CCACHE_PATH"
CMAKE_OPTIONS="$CMAKE_OPTIONS -DCMAKE_C_COMPILER_LAUNCHER=$CCACHE_PATH -DCMAKE_CXX_COMPILER_LAUNCHER=$CCACHE_PATH"
fi
if [ -n "${ENABLE_QTFRED:-}" ]; then
CMAKE_OPTIONS="$CMAKE_OPTIONS -DFSO_BUILD_QTFRED=${ENABLE_QTFRED}"
fi
mkdir build
cd build
export CXXFLAGS
export CFLAGS
export LD_LIBRARY_PATH
if [ "$RUNNER_OS" = "macOS" ] && [ ! -x "$(which ninja)" ]; then
brew install ninja
fi
# CMAKE_JOB_POOLS and CMAKE_JOB_POOL_LINK ensure that when using ninja, link operations are done sequentially
# we have some build rules that do not play nice with parallel invocation and that fixes these issues
cmake -G Ninja -DFSO_FATAL_WARNINGS=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON $CMAKE_OPTIONS $PLATFORM_CMAKE_OPTIONS \
-DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DCMAKE_BUILD_TYPE=$CONFIGURATION -DQT_USE_PRECOMPILED=ON \
-DFFMPEG_USE_PRECOMPILED=ON -DFSO_BUILD_TESTS=ON -DFSO_BUILD_INCLUDED_LIBS=ON \
-DCMAKE_JOB_POOLS=link=1 -DCMAKE_JOB_POOL_LINK=link ..
-36
View File
@@ -1,36 +0,0 @@
#!/usr/bin/env bash
SCRIPT=$(readlink -f "$0")
HERE=$(dirname "$SCRIPT")
OS="$1"
source $HERE/dist_functions.sh
if [ "$OS" = "Linux" ]; then
tar -cvzf "$(get_package_name)-builds-Linux-$ARCH.tar.gz" *
echo "package_path=$(pwd)/$(get_package_name)-builds-Linux-$ARCH.tar.gz" >> $GITHUB_OUTPUT
echo "package_name=$(get_package_name)-builds-Linux-$ARCH.tar.gz" >> $GITHUB_OUTPUT
echo "package_mime=$(file -b --mime-type "$(pwd)/$(get_package_name)-builds-Linux-$ARCH.tar.gz")" >> $GITHUB_OUTPUT
elif [ "$OS" = "Windows" ]; then
7z a -xr'!*.pdb' "$(get_package_name)-builds-$ID.zip" "*"
echo "package_path=$(pwd)/$(get_package_name)-builds-$ID.zip" >> $GITHUB_OUTPUT
echo "package_name=$(get_package_name)-builds-$ID.zip" >> $GITHUB_OUTPUT
echo "package_mime=$(file -b --mime-type "$(pwd)/$(get_package_name)-builds-$ID.zip")" >> $GITHUB_OUTPUT
7z a "$(get_package_name)-debug-$ID.7z" "*.pdb"
echo "debug_path=$(pwd)/$(get_package_name)-debug-$ID.7z" >> $GITHUB_OUTPUT
echo "debug_name=$(get_package_name)-debug-$ID.7z" >> $GITHUB_OUTPUT
echo "debug_mime=$(file -b --mime-type "$(pwd)/$(get_package_name)-debug-$ID.7z")" >> $GITHUB_OUTPUT
elif [ "$OS" = "Mac" ]; then
tar -cvzf "$(get_package_name)-builds-Mac-$ARCH.tar.gz" *.app
echo "package_path=$(pwd)/$(get_package_name)-builds-Mac-$ARCH.tar.gz" >> $GITHUB_OUTPUT
echo "package_name=$(get_package_name)-builds-Mac-$ARCH.tar.gz" >> $GITHUB_OUTPUT
echo "package_mime=$(file -b --mime-type "$(pwd)/$(get_package_name)-builds-Mac-$ARCH.tar.gz")" >> $GITHUB_OUTPUT
else
echo "Invalid OS: $OS"
fi
-70
View File
@@ -1,70 +0,0 @@
function get_package_name() {
if git describe --match 'nightly_*' --exact-match 2>/dev/null >/dev/null; then
echo -n "$(git describe --match "nightly_*" --exact-match)"
return
fi
if git describe --match 'release_*' --exact-match 2>/dev/null >/dev/null; then
echo -n "$(git describe --match "release_*" --exact-match | sed 's/release_/fs2_open_/i')"
return
fi
if [[ "$(git branch --show-current)" =~ ^test\/(.*)$ ]]; then
echo -n "test_${BASH_REMATCH[1]}"
return
fi
echo "unknown_config"
}
function get_version_name() {
if git describe --match 'nightly_*' --exact-match 2>/dev/null >/dev/null; then
local tag_name=$(git describe --match "nightly_*" --exact-match)
# Use the bash regex matching for getting the relevant part of the tag name
[[ $tag_name =~ ^nightly_(.*)$ ]]
echo -n "${BASH_REMATCH[1]}"
return
fi
if git describe --match 'release_*' --exact-match 2>/dev/null >/dev/null; then
local tag_name=$(git describe --match "release_*" --exact-match)
# Use the bash regex matching for getting the relevant part of the tag name
[[ $tag_name =~ ^release_(.*)$ ]]
echo -n "${BASH_REMATCH[1]}"
return
fi
if [[ "$(git branch --show-current)" =~ ^test\/(.*)$ ]]; then
echo -n "${BASH_REMATCH[1]}"
return
fi
echo "unknown_config"
}
function upload_files_to_sftp() {
# We need empty glob patterns to "disappear" in the for loop below since this will be run for different configurations
# where it may be possible that some of the file patterns will not be present
shopt -s nullglob
echo "cd $2/" > sftp_batch
echo "mkdir $(get_version_name)" >> sftp_batch
# Create directory but do not cause an error if it already exists
sshpass -e sftp -oBatchMode=no -o "StrictHostKeyChecking no" -b sftp_batch $1 || true
echo "cd $2/$(get_version_name)/" > sftp_batch
for file in *.tar.gz *.7z *.zip; do
echo "put $file" >> sftp_batch
done
echo "bye" >> sftp_batch
sshpass -e sftp -oBatchMode=no -o "StrictHostKeyChecking no" -b sftp_batch $1
rm sftp_batch
}
-49
View File
@@ -1,49 +0,0 @@
#!/usr/bin/env bash
INSTALL_FOLDER=$1
# safety check
if [ ! -d bin -o ! -f cmake_install.cmake ]; then
echo "ERROR! This script must be run from within the build root!"
exit 1
fi
if [ ! -x "$(which wget)" ]; then
echo "ERROR! Required utility is not available: wget"
exit 1
fi
# install newest appimagetool if it's not already available
if [ ! -x ./bin/appimagetool ]; then
APPIMAGE_TOOL_URL="https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$(uname -m).AppImage"
wget -O ./bin/appimagetool "$APPIMAGE_TOOL_URL" || { echo "ERROR! Failed to get appimagetool!" && exit 1; }
chmod +x ./bin/appimagetool
fi
# This shouldn't be needed with newer runtimes, but they still generate an
# error if fusermount is missing even though it works. So to skip error msg
# and have max compatibility with runtimes and containers we'll use it.
export APPIMAGE_EXTRACT_AND_RUN=1
# Install Freespace2 targets
cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_FOLDER/Freespace2 -DCOMPONENT=Unspecified -P cmake_install.cmake
cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_FOLDER/Freespace2 -DCOMPONENT=Freespace2 -P cmake_install.cmake
# We need to be a bit creative for determining the AppImage name since we don't want to hard-code the name
FILENAME="$(find $INSTALL_FOLDER/Freespace2/bin -maxdepth 1 -name 'fs2_open_*' -type f -executable -printf "%f\n").AppImage"
./bin/appimagetool -n "$INSTALL_FOLDER/Freespace2" "$INSTALL_FOLDER/$FILENAME"
chmod +x "$INSTALL_FOLDER/$FILENAME"
# Maybe install qtFRED targets
if [ -f qtfred/cmake_install.cmake ]; then
cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_FOLDER/qtFRED -DCOMPONENT=Unspecified -P cmake_install.cmake
cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_FOLDER/qtFRED -DCOMPONENT=qtFRED -P cmake_install.cmake
# We need to be a bit creative for determining the AppImage name since we don't want to hard-code the name
FILENAME="$(find $INSTALL_FOLDER/qtFRED/bin -maxdepth 1 -iname 'qtfred_*' -type f -executable -printf "%f\n").AppImage"
./bin/appimagetool -n "$INSTALL_FOLDER/qtFRED" "$INSTALL_FOLDER/$FILENAME"
chmod +x "$INSTALL_FOLDER/$FILENAME"
fi
ls -al $INSTALL_FOLDER
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env bash
SCRIPT=$(readlink -f "$0")
HERE=$(dirname "$SCRIPT")
export LD_LIBRARY_PATH=$(pwd)/bin/lib:$LD_LIBRARY_PATH
# The unit tests never open a window, but a few of them reach code that brings SDL's video
# subsystem up (os_init() and resolution_default(), the latter via gr_init()). Left to itself SDL
# probes its real backends and dlopens libX11, which leaks a handful of blocks per init/quit cycle
# that SDL_QuitSubSystem() does not reclaim -- those are the "definitely lost" contexts memcheck
# fails the Debug legs on. Pinning the dummy driver skips the probing entirely, so the leaks never
# happen, and it makes the tests behave the same way whether or not the runner has a display.
export SDL_VIDEODRIVER=dummy
# if on mac and building for architecture that doesn't match host
# then unittests will fail so we just need to skip it (for now)
if [ "$RUNNER_OS" = "macOS" ] && [ "$ARCH" != "$(uname -m)" ]; then
echo "Skipping tests due to architecture mismatch!"
exit 0
fi
if [ "$CONFIGURATION" = "Debug" ] && [[ "$RUNNER_OS" != "macOS" ]] ; then
valgrind --leak-check=full --error-exitcode=1 --gen-suppressions=all \
--suppressions="$HERE/valgrind.supp" ./bin/unittests --gtest_shuffle
else
./bin/unittests --gtest_shuffle
fi
-31
View File
@@ -1,31 +0,0 @@
#!/usr/bin/env bash
set -e
UPLOAD_TYPE=$1
SCRIPT=$(readlink -f "$0")
HERE=$(dirname "$SCRIPT")
source $HERE/dist_functions.sh
if [ "$UPLOAD_TYPE" = "nightly" ]; then
any_success=false
if SSHPASS=$INDIEGAMES_SSHPASS upload_files_to_sftp "$INDIEGAMES_USER@scp.indiegames.us" "public_html/builds/nightly"; then
any_success=true
fi
if SSHPASS=$DATACORDER_SSHPASS upload_files_to_sftp "$DATACORDER_USER@perses.feralhosting.com" "www/datacorder.perses.feralhosting.com/public_html/builds/nightly"; then
any_success=true
fi
if [ "$any_success" = "false" ]; then
echo "All uploads failed"
exit 1
fi
elif [ "$UPLOAD_TYPE" = "test" ]; then
SSHPASS=$DATACORDER_SSHPASS upload_files_to_sftp "$DATACORDER_USER@perses.feralhosting.com" "www/datacorder.perses.feralhosting.com/public_html/builds/test"
else
echo "Unknown upload type $UPLOAD_TYPE"
exit 1
fi
-139
View File
@@ -1,139 +0,0 @@
{
liblsan Invalid read
Memcheck:Addr8
obj:/usr/lib64/liblsan.so.0.0.0
obj:/usr/lib64/liblsan.so.0.0.0
obj:/usr/lib64/liblsan.so.0.0.0
obj:*
obj:*
obj:*
}
{
CLang Lua unitialized value error
Memcheck:Cond
...
fun:luaH_get
fun:lua_rawget
fun:_ZN12_GLOBAL__N_117ade_index_handlerEP9lua_State
}
{
False-positive uninitialized variable warning
Memcheck:Cond
fun:_Z23cf_check_location_flagsjj
fun:_Z29cf_create_default_path_stringPcjiPKcbj
...
}
{
<insert_a_suppression_name_here>
Memcheck:Leak
match-leak-kinds: definite
fun:_Znwm
obj:*
obj:*
obj:*
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
fun:_Z7gr_initOSt10unique_ptrIN2os18GraphicsOperationsESt14default_deleteIS1_EEiiii
fun:_ZN4test13FSTestFixture5SetUpEv
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
fun:_ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
fun:_ZN7testing4Test3RunEv
}
{
<insert_a_suppression_name_here>
Memcheck:Leak
match-leak-kinds: definite
fun:_Znwm
obj:*
obj:*
obj:*
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
fun:_Z7gr_initOSt10unique_ptrIN2os18GraphicsOperationsESt14default_deleteIS1_EEiiii
fun:_ZN4test13FSTestFixture5SetUpEv
fun:_ZN8FontTest5SetUpEv
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
fun:_ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
}
{
<insert_a_suppression_name_here>
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:_Znwm
obj:*
obj:*
obj:*
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
fun:_Z7gr_initONSt3__110unique_ptrIN2os18GraphicsOperationsENS_14default_deleteIS2_EEEEiiii
fun:_ZN4test13FSTestFixture5SetUpEv
fun:_ZN8FontTest5SetUpEv
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
}
{
<insert_a_suppression_name_here>
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:_Znwm
obj:*
obj:*
obj:*
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
fun:_Z7gr_initONSt3__110unique_ptrIN2os18GraphicsOperationsENS_14default_deleteIS2_EEEEiiii
fun:_ZN4test13FSTestFixture5SetUpEv
fun:_ZN8FontTest5SetUpEv
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
}
{
<insert_a_suppression_name_here>
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:_Znwm
obj:*
obj:*
obj:*
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
fun:_Z7gr_initONSt3__110unique_ptrIN2os18GraphicsOperationsENS_14default_deleteIS2_EEEEiiii
fun:_ZN4test13FSTestFixture5SetUpEv
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
fun:_ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
}
{
SDL_Init one-time internal allocation via os_init
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
obj:*
obj:*
obj:*
obj:*
fun:_Z7os_initPKcS0_S0_
fun:_ZN4test13FSTestFixture5SetUpEv
}
# Kept only as a backstop for running memcheck by hand. run_tests.sh pins SDL_VIDEODRIVER=dummy, so
# the X11 backend is never created there; this block also cannot match the prebuilt libSDL3 anymore,
# since that library is now stripped and X11_CreateDevice is a static symbol.
{
SDL3 X11 video backend internal allocations, not freed by SDL_VideoQuit
Memcheck:Leak
match-leak-kinds: definite,possible
...
fun:X11_CreateDevice
}
{
glibc loader bookkeeping and library constructor allocations retained across dlopen
Memcheck:Leak
match-leak-kinds: definite,possible
...
fun:_dl_open
}
-259
View File
@@ -1,259 +0,0 @@
# Retrives a log of commit messages and attempts to pretty them into a human-readbile format
import argparse
import os
import re
import requests
import sys
from datetime import datetime
from subprocess import check_output
MAX_PAGES = 100 # maximum number of PR pages to go through
warnings = 0
label_scores = {
"fred" : 6,
"qtfred" : 6,
"vr" : 6,
"multi" : 6,
"Lab" : 6,
"pilot file" : 6,
"scripting" : 6,
"sexps" : 6,
"ai" : 6,
"controls" : 6,
"HUD" : 6,
"models" : 6,
"sound" : 6,
"graphics" : 6,
"physics" : 6,
"ui" : 6,
"localization / translation" : 6,
"optimization" : 6,
"gameplay" : 5,
"general modding" : 4,
"fix" : 3,
"enhancement" : 2,
"backport" : 1,
"cleanup" : 0
}
label_to_category = {
"fred" : "FRED",
"qtfred" : "QtFRED",
"vr" : "VR",
"multi" : "Multiplayer",
"Lab" : "Lab",
"pilot file" : "Pilot File",
"scripting" : "Scripting",
"sexps" : "SEXPs",
"ai" : "AI",
"controls" : "Controls",
"HUD" : "HUD",
"models" : "Models",
"sound" : "Sound",
"graphics" : "Graphics",
"physics" : "Physics",
"ui" : "UI",
"localization / translation" : "Localization",
"optimization" : "Optimization",
"gameplay" : "Gameplay",
"general modding" : "General Modding",
"fix" : "Fix",
"enhancement" : "Enhancement",
"backport" : "Backport",
"cleanup" : "Cleanup",
"misc" : "Misc."
}
def get_last_page(response: requests.Response) -> int:
"""
@brief Extract the last page number from the response header
@param[in] response The response from a GET call
@returns The page number of the last page, or MAX_PAGES
"""
# The link header is a dictionary in string form, and for that matter the
# value is in front of the key. It is of the form '<<url1>>; rel=<key1>, <url2>, <key2>'
link = response.headers['link']
link = link.split(',')
for x in link:
y = x.split(';') # <url>; rel=<key>
if "last" not in y[1]: # look for rel='last'
continue
# grab the page number from the URL
# group(0) is `page=123`, group(1) is `123`
last_page = int( re.search(r'page=(\d+)', y[0]).group(1) )
if not last_page:
print("Error: Could not find page number in url! URL: %s", y[0])
sys.exit(1)
if last_page > MAX_PAGES:
return MAX_PAGES
else:
return last_page
def label_score(label):
try:
return label_scores[label['name']]
except KeyError:
return -1
def get_label(labels) -> str:
"""
@brief Get the primary label from a list of labels
@param[in] labels The list of labels from a pull request
@returns The primary label to be used for sorting in the changelog
"""
if len(labels) < 1:
return "misc"
# Sort the labels based on their score and grab the highest valued label
name = sorted(labels, key=label_score, reverse=True)[0]['name']
# If a label couldn't be found, toss it into a miscellaneous bin
if name not in label_scores:
name = "misc"
return name
def main():
parser = argparse.ArgumentParser(description="Retrieves a log of commit messages and attempts to pretty them into a human-readable format")
parser.add_argument("start_date",
help="Day of the earliest commit to add to the log.")
parser.add_argument("-u", "--user", nargs=2, metavar=("NAME", "TOKEN"), default=["", ""],
help="Github username and token/password")
args = parser.parse_args()
os.chdir(os.path.dirname(__file__)) # Change working directory to this file's directory
start_date = datetime.strptime(args.start_date, "%Y-%m-%d")
print("start_date: {}".format(start_date))
# Retrive the git log for master, since start date, order by date, in ascending order, use YYYY-MM-DD date format,
# each line is of the form "<author short date> | <message>", only grab commits from master,
# output to `fsofordigest.txt`,
# check_output(("git log master", "--after=2021-09-15", "--date-order", "--reverse", "--date=short",
# "--pretty=\"%as | %s\"", "--first-parent",
# "--output fsofordigest.txt"), text=True)
# The commit messages are either of the form "<body> (#<PR_number>)" or "Merge pull request #<PR_number> from <source_repo>"
# For our purposes, we want them be all of the form "<body> (#<PR_number>)"
# Typically, the second form does not have a usable body, so we'll have to pull the PR title from github
# Github's REST API allows us to retrieve PR's, but due to it being HTTP requests it has to page in the data.
# We can loop over the GET request and check for a merge date.
# The GET request doesn't have sorting by merge date, but does have sorting by the last time it was updated... which is usually
# also the merge date but not always.
# Key attributes within the PR JSON objects:
# "merged_at: <date>" # Date the PR was merged in
# "merged: <bool>" # If the PR was merged yet
# "html_url: <string>" # URL of the PR's HEAD commit, used by some clients to pull in the PR branch
# "number: <int>" # The PR id number
# "title: <string>" # Title of the PR
# "body: <string>" # The body paragraph detailing the PR
# "labels: [label_object]" # All labels attached to this PR
changelog = {}
url = "https://api.github.com/repos/scp-fs2open/fs2open.github.com/pulls"
page = 1
last_page = MAX_PAGES
while page <= last_page:
# GET <url>?base=master&sort=updated&direction=desc&state=closed&page=1
response = requests.get(url,
auth=(args.user[0], args.user[1]),
params={
"base": "master",
"direction": "desc",
"page": page,
"state": "closed",
"sort": "updated"
})
# Check if good response
if (response.status_code != 200) :
print("Error: ", response.status_code)
print(response.json()['message'])
sys.exit(1)
else:
print("Request successful: 200")
print("page={}".format(page))
# Update the last_page index at first iteration and possibly last iteration
# This should cover the edge case of a new PR being added to the database before this script is finished
if (page == 1) or (page == last_page):
last_page = get_last_page(response)
print("last_page={}".format(last_page))
# assume pulls are organized from newest to oldest
for pull in response.json():
if (pull['state'] != 'closed'):
# This pull is not merged, so ignore
print("Found irrelevant pull, skipping...")
print("state: {}; number: {}".format(pull['state'], pull['number']))
continue
if (pull['merged_at'] == None):
# This pull wasn't merged, skip
print("Found closed pull #{} ({}), skipping...".format(pull['number'], pull['closed_at']))
continue
merge_date = datetime.strptime(pull['merged_at'], "%Y-%m-%dT%H:%M:%SZ")
updated_date = datetime.strptime(pull['updated_at'], "%Y-%m-%dT%H:%M:%SZ")
if (merge_date < start_date) and (updated_date >= start_date):
# This pull is too old, but was updated within our timeframe. skip
print("Found old pull #{} ({}), skipping...".format(pull['number'], pull['merged_at']))
continue
if (updated_date < start_date):
# This pull is too old
print("Found old pull #{} ({}), stopping loop...".format(pull['number'], pull['updated_at']))
page = last_page + 1
break
# If a label isn't in the changelog, create a bin for it
label = get_label(pull['labels'])
if label not in changelog:
changelog[label] = {}
# Add the pull to the changelog, indexed by its pull.number
if pull['number'] not in changelog[label]:
# only add if the key isn't there already
changelog[label][pull['number']] = {
"date": merge_date,
"title": pull['title'],
"labels": pull['labels'],
"url": pull['html_url']
}
print("Added pull #{} ({})".format(pull['number'], merge_date))
# Else, silently ignore duplicate (for now...)
page += 1 # iterate to next page
# Write the changelog to file
# 2021-09-28 | (#3661) Fix homing child weapons in niche circumstances
print("Writing to change.log...")
str = ''
for label, pulls in dict(sorted(changelog.items())).items():
str += "[size=18pt]{}[/size]\n".format(label_to_category[label])
str += "[list]\n"
for key, value in pulls.items():
str += "[li](#{}) {} [/li]\n".format(key, value['title'])
str += "[/list]\n\n"
with open("change.log", "w") as file:
file.write(str)
print("Done!")
main()
-232
View File
@@ -1,232 +0,0 @@
import re # regex module
from ftplib import FTP, error_perm
from itertools import groupby
from typing import List, Tuple, Dict
import requests # HTTP requests module
from util import retry_multi, GLOBAL_TIMEOUT # from util.py
class ReleaseFile:
"""! Class representing a Released file on Nebula
`name`: str
Mod (or build) name,
`url`: str
Primary host URL,
`group`: str
Mod group string,
`subgroup`: str
Mod subgroup string,
`mirrors`: List[str]
List of URL's of FTP mirrors
"""
def __init__(self, name, url, group, subgroup=None, mirrors=None):
if mirrors is None:
mirrors = []
self.mirrors = mirrors
self.subgroup = subgroup
self.group = group
self.url = url
self.name = name
self.base_url = "/".join(url.split('/')[0:-1]) + "/"
self.filename = url.split('/')[-1]
# A list of tuples of (filename, hash)
self.content_hashes = None
self.hash = None
self.size = 0
def __repr__(self):
return repr((self.name))
class SourceFile:
"""! Class represeting a source file
`name`: str
File name,
`url`: str
FTP URL,
`group`
<unknown>
@details More details
"""
def __init__(self, name, url, group):
self.group = group
self.url = url
self.name = name
class FileGroup:
"""! Represents a file group
`name`: str
Name of this group
`files`: List[ReleaseFile]
List of files within this group
`mainFile`: str
If this FileGroup has a subgroup, `mainFile` is the head of that group
`subFiles`: List[ReleaseFile]
Files within a subgroup
"""
def __init__(self, name, files: List[ReleaseFile]):
self.files = files
self.name = name
if len(files) == 1:
self.mainFile = files[0]
self.subFiles = {}
else:
self.mainFile = None
subFiles = []
for file in files:
# We only have subcategories for Windows where SSE2 is the main group
if file.subgroup == "SSE2":
self.mainFile = file
else:
subFiles.append(file)
self.subFiles = dict(((x[0], next(x[1])) for x in groupby(subFiles, lambda f: f.subgroup)))
def get_release_files(tag_name, config) -> Tuple[List[ReleaseFile], Dict[str, SourceFile]]:
"""! Brief Gets the binary and source files from the Github Release server
@param[in] `tag_name` Git tag of the current release
@param[in] `config` confi metadata set in main.py
@returns `List[ReleaseFile]` List of release files
@returns `Dict[str, SourceFile]` Dictionary of source files
@details Sends an `HTTP GET` request to github using their REST API to retrieve metadata. The files are not
actually downloaded here, just their metadata is gathered and organized in their respective container for later
use.
"""
@retry_multi(5) # retry at most 5 times
def execute_request(path):
"""!
@brief Performs a GET request with the given path. To be used with Github's REST API.
@returns If successful, returns a .JSON object
"""
headers = {
"Accept": "application/vnd.github.v3+json"
}
url = "https://api.github.com" + path
# GET https://api.github.com/<path> Accept: "application/vnd.github.v3+json"
response = requests.get(url, headers=headers, timeout=GLOBAL_TIMEOUT)
response.raise_for_status() # Raise a RequestException if we failed, and trigger retry
return response.json()
build_group_regex = re.compile("fs2_open_.*-builds-([^.-]*)(-([^.]*))?.*") # regex for matching binary .zip's and .7z's
source_file_regex = re.compile("fs2_open_.*-source-([^.]*)?.*") # regex for matching source .zip's and .7z's
# Get the github release metadata of the given tag name
response = execute_request(
"/repos/{}/releases/tags/{}".format(config["github"]["repo"], tag_name))
# Extract the binary and source files from the response["asset"] metadata
binary_files = []
source_files = {}
for asset in response["assets"]:
url = asset["browser_download_url"]
name = asset["name"]
group_match = build_group_regex.match(name)
if group_match is not None:
platform = group_match.group(1)
# x64 is the Visual Studio name but for consistency we need Win64
if platform == "x64":
platform = "Win64"
elif platform == "ARM64":
platform = "WinARM64"
binary_files.append(ReleaseFile(name, url, platform, group_match.group(3)))
else:
group_match = source_file_regex.match(name)
if group_match is None:
continue
group = group_match.group(1)
source_files[group] = SourceFile(name, url, group)
binary_files.sort(key=lambda ReleaseFile: ReleaseFile.name)
return binary_files, source_files
def get_ftp_files(build_type, tag_name, config) -> List[ReleaseFile] :
"""!
@brief Gets file metadata for nightlies hosted on FTP, as determined by config["ftp"] attributes
@param [in] `build_type` Unknown str
@param [in] `tag_name` Github tag name of the release
@param [in] `config` config metadata set in main.py
"""
tag_regex = re.compile("nightly_(.*)")
build_group_regex = re.compile("nightly_.*-builds-([^.]+).*")
files = []
try:
with FTP(config["ftp"]["host"], config["ftp"]["user"], config["ftp"]["pass"]) as ftp:
# extract version
version_str = tag_regex.match(tag_name).group(1)
# extract filepath w/ version
# then list all ftp hits with that path
path_template = config["ftp"]["path"]
path = path_template.format(type=build_type, version=version_str)
file_entries = list(ftp.mlsd(path, ["type"]))
# get all ftp hits of type file
for entry in file_entries:
if entry[1]["type"] == "file":
files.append(entry[0])
except error_perm:
print("Received permanent FTP error!")
return []
out_data = []
for file in files:
# from the file list, extract only nightly files
file_match = build_group_regex.match(file)
if file_match is None:
print("Ignoring non nightly file '{}'".format(file))
continue
group_match = file_match.group(1)
primary_url = None
mirrors = []
# x64 is the name Visual Studio uses but Win64 works better for us since that gets displayed in the nightly post
if "x64" in group_match:
group_match = group_match.replace("x64", "Win64")
elif "ARM64" in group_match:
group_match = group_match.replace("ARM64", "WinARM64")
# construct the download URL list for all mirrors. The first listed ftp location is taken as the Primary
for mirror in config["ftp"]["mirrors"]:
download_url = mirror.format(type=build_type, version=version_str, file=file)
if primary_url is None:
primary_url = download_url
else:
mirrors.append(download_url)
# Form the List[ReleaseFile] list with the download URL links
out_data.append(ReleaseFile(file, primary_url, group_match, None, mirrors))
return out_data
-106
View File
@@ -1,106 +0,0 @@
import os
from typing import List
import requests
import semantic_version
from mako.template import Template
from file_list import ReleaseFile
class ForumAPI:
POST_SIZE_MAX = 50000
"""!
Maximum number of characters allowed in a post, including BBCode (03/17/2022)
Check with HLP admins occasionally to verify this limit, they can set it in the forum's admin panel
"""
def __init__(self, config):
self.config = config
def create_post(self, title, content, board):
"""!
@brief Create a post on the forums
@param[in] title Title of the post
@param[in] content Body of the post
@param[in] board Which board/forum to post to
@returns { "thread_url": <url_of_created_thread> }
"""
if (self.config["hlp"]["api"] == "") or (self.config["hlp"]["key"] == ""):
print("Post failed! No API or API_KEY given!")
return
resp = requests.post(self.config["hlp"]["api"],
headers={"X-HLP-Bot": os.environ["FORUM_SECRET"]},
data={
"api_key": self.config["hlp"]["key"],
"board": str(board),
"subject": title,
"body": content
})
if resp.status_code != 200:
print("Post failed! Response: %s" %resp.text)
return resp.json()
def post_nightly(self, date, revision, files, log, success):
"""!
@brief Post a new Nightly topic on the forums using nightly.mako
@param[in] date The date to use
@param[in] version The build's version
@param[in] groups dict[Any, file_list.FileGroup]; FileGroups of SSE2, AVX, etc.
@param[in] sources URL's of builds on github or fs2net
"""
print("Posting nightly thread...")
title = "Nightly: {} - Revision {}".format(date, revision)
template = Template(filename=self.config["templates"]["nightly"])
rendered = template.render_unicode(**{
"date": date,
"revision": revision,
"files": files,
"log": log,
"success": success
})
print("Creating post...")
self.create_post(title, rendered, self.config["nightly"]["hlp_board"])
def post_release(self, date, version: semantic_version.Version, groups, sources):
"""!
@brief Post a new Release topic on the forums using release.mako.
@param[in] date The date to use
@param[in] version The build's version
@param[in] groups dict[Any, file_list.FileGroup]; FileGroups of SSE2, AVX, etc.
@param[in] sources URL's of builds on github or fs2net
@returns If Successful, the URL of the created post
"""
print("Posting release thread...")
title = "Release: {}".format(version)
template = Template(
filename=self.config["templates"]["release"].format(major=version.major, minor=version.minor),
module_directory='/tmp/mako_modules')
rendered = template.render_unicode(**{
"date": date,
"version": version,
"groups": groups,
"sources": sources
}).strip("\n")
print("Creating post...")
json = self.create_post(title, rendered, self.config["release"]["hlp_board"])
return json["thread_url"]
-85
View File
@@ -1,85 +0,0 @@
# Class for use with interfacing with github via HTTP requests
import requests
from util import retry_multi, GLOBAL_TIMEOUT
class GithubAPI:
headers = {
"Accept": "application/vnd.github.v3+json"
}
url_root = "https://api.github.com"
def __init__(self, config):
self.config = config
@retry_multi(5)
def get(self, path):
"""!
@brief Performs a GET request with the given path. To be used with Github's REST API.
@returns If successful, returns a .JSON object
"""
url = self.url_root + path
# GET https://api.github.com/<path> Accept: "application/vnd.github.v3+json"
response = requests.get(url, headers=self.headers, timeout=GLOBAL_TIMEOUT)
response.raise_for_status() # Raise a RequestException if we failed, and trigger retry
return response.json()
def get_release(self, tag_name):
"""!
@brief Retrieves the Github Release metadata as a JSON object
@see https://docs.github.com/en/rest/reference/releases#get-a-release-by-tag-name
"""
return self.get("/repos/{}/releases/tags/{}".format(self.config["github"]["repo"], tag_name))
def patch(self, path, data):
"""!
@brief Performs a PATCH request with the given path and body data (as dictionary)
@returns If successful, returns a .JSON object
"""
url = self.url_root + path
response = requests.patch(url, headers=self.headers, timeout=GLOBAL_TIMEOUT, data=data)
response.raise_for_status()
return response.json()
def update_release(self, release_id, tag_name="", name="", body="", draft=None, prerelease=None):
"""!
@brief Updates a Github Release
@param[in] release_id The id of the release, as obtained by get_release()
@param[in] tag_name (optional) The git tag this release is associated with
@param[in] name (optional) The name of the release
@param[in] body (optional) Body text describing the release
@param[in] draft (optional) If true, the release is marked as a "draft"
@param[in] prerelease (optional) If true, the release is marked as a "prerelease"
@note If an optional argument is not provided, then its associated data is not changed
"""
path = "/repos/{}/releases/{}".format(self.config["github"]["repo"], release_id)
# Add to the data JSON if options are specified
data = {}
if tag_name != "":
data["tag_name"] = tag_name
if name != "":
data["name"] = name
if body != "":
data["body"] = body
if draft != None:
data["draft"] = data
if prerelease != None:
data["prerelease"] = prerelease
self.patch(path, data)
-88
View File
@@ -1,88 +0,0 @@
import os
import hashlib
import tarfile
import traceback
import zipfile
from tempfile import NamedTemporaryFile
from zipfile import ZipFile
import requests
import sys
from mako.template import Template
from file_list import ReleaseFile
from util import GLOBAL_TIMEOUT
def _download_file(url, dest_file, session):
print("Downloading " + url)
# NOTE the stream=True parameter
r = session.get(url, stream=True, timeout=GLOBAL_TIMEOUT)
for chunk in r.iter_content(chunk_size=1024):
if chunk: # filter out keep-alive new chunks
dest_file.write(chunk)
dest_file.flush()
def _gen_hash(fileobj, hash_alg):
h = hashlib.new(hash_alg)
while True:
data = fileobj.read(4096)
if not data:
break
h.update(data)
return h.hexdigest()
def get_hashed_file_list(file: ReleaseFile, session: requests.Session = None, hash_alg: str = "sha256"):
if session is None:
session = requests.Session()
with NamedTemporaryFile('w+b', suffix=file.filename) as local_file:
_download_file(file.url, local_file, session)
filename = local_file.name
hash_list = []
local_file.seek(0)
file.hash = _gen_hash(local_file, hash_alg)
file.size = os.stat(filename).st_size
try:
if tarfile.is_tarfile(filename):
with tarfile.open(filename) as archive:
for entry in archive:
if not entry.isfile():
continue
print("Computing hash for " + entry.name)
fileobj = archive.extractfile(entry)
hash_list.append((entry.path, _gen_hash(fileobj, hash_alg)))
elif zipfile.is_zipfile(filename):
with ZipFile(filename) as archive:
for entry in archive.infolist():
# Python 3.6 has is_dir but that version is relatively new so we'll use the "safe" version here
if entry.filename.endswith('/'):
continue
print("Computing hash for " + entry.filename)
with archive.open(entry) as fileobj:
hash_list.append((entry.filename, _gen_hash(fileobj, hash_alg)))
else:
raise NotImplementedError("Unsupported archive type!")
except:
traceback.print_exception(*sys.exc_info())
return
file.content_hashes = hash_list
def render_installer_config(version, groups, config):
template = Template(filename=config["templates"]["installer"], module_directory='/tmp/mako_modules')
return template.render(**{
"version": version,
"groups": groups,
}).strip("\n")
-314
View File
@@ -1,314 +0,0 @@
# Post-build python script
# Uploads build packages to Nebula and creates a forum post on https://www.hard-light.net
# Uses the following environment variables (Set by the github action workflow before execution)
# FSO versioning
# FSO_VERSION_MAJOR
# FSO_VERSION_MINOR
# FSO_VERSION_BUILD
# Credentials into IndieGames file host
# INDIEGAMES_USER:
# INDIEGAMES_SSHPASS:
# Credentials into Nebula Mod Database
# NEBULA_USER:
# NEBULA_PASSWORD:
# Credentials into hard-light.net for forum post
# HLP_API:
# HLP_KEY:
# FORUM_SECRET:
# LINUX_RESULT: bool, if the linux builds were successfully uploaded
# WINDOWS_RESULT: bool, if the windows builds were successfully uploaded
import sys
import os
import re
from subprocess import check_output
from datetime import datetime
from itertools import groupby
import semantic_version
# local .py files
import file_list
import installer
import nebula
import forum
# Compile regexes for extracting version components
MAJOR_VERSION_PATTERN = re.compile("(?:set_if_not_defined|set)\(FSO_VERSION_MAJOR (\d+)\)")
MINOR_VERSION_PATTERN = re.compile("(?:set_if_not_defined|set)\(FSO_VERSION_MINOR (\d+)\)")
BUILD_VERSION_PATTERN = re.compile("(?:set_if_not_defined|set)\(FSO_VERSION_BUILD (\d+)\)")
REVISION_VERSION_PATTERN = re.compile("(?:set_if_not_defined|set)\(FSO_VERSION_REVISION (\d+)\)")
REVISION_STR_VERSION_PATTERN = re.compile("(?:set_if_not_defined|set)\(FSO_VERSION_REVISION_STR (\w*)\)")
LOG_FORMAT = """
------------------------------------------------------------------------%n
commit %h%nAuthor: %an <%ad>%n
Commit: %cn <%cd>%n%n %s
"""
DATEFORMAT_VERSION = "%Y%m%d"
DATEFORMAT_FORUM = "%d %B %Y"
def _match_version_number(text, regex):
"""! Extracts the version component represented by `regex` from `text`
@param [in] `text` Filename with version string 'MAJOR.MINOR.BUILD'
@param [in] `regex` Regex pattern of component to look for
@return The version component as integer
"""
match = regex.search(text)
return int(match.group(1))
def _match_version_str(text, regex):
"""! Extracts the version component represented by `regex` from `text`
@param [in] `text` Filename with version string 'MAJOR.MINOR.BUILD'
@param [in] `regex` Regex pattern of component to look for
@return The version component as integer
"""
match = regex.search(text)
return match.group(1)
def get_source_version(date_version: datetime, tag_name: str) -> semantic_version.Version:
"""! Retrieves the version string from version_override.cmake (and version.cmake)
@param[in] `date_version` Date this build is published for release
@param[in] `tag_name` Tag of this release, used to determine if release, rc, or nightly
@return If release: `FSO_VERSION_MAJOR.FSO_VERSION_MINOR.FSO_VERSION_BUILD`
@return If rc: `FSO_VERSION_MAJOR.FSO_VERSION_MINOR.FSO_VERSION_BUILD-FSO_VERSION_REVISION_STR`
@return If nightly: `FSO_VERSION_MAJOR.FSO_VERSION_MINOR.FSO_VERSION_BUILD-FSO_VERSION_REVISION_STR` (uses both version_override.cmake and version.cmake)
@note This is the version used to identify in Nebula and the forums. version_override.cmake is used for the builds
made by CI tools and version.cmake is used for builds made by devs.
"""
with open(os.path.join("..", "..", "version_override.cmake"), "r") as f:
filetext = f.read()
major = _match_version_number(filetext, MAJOR_VERSION_PATTERN)
minor = _match_version_number(filetext, MINOR_VERSION_PATTERN)
build = _match_version_number(filetext, BUILD_VERSION_PATTERN)
# revision = _match_version_number(filetext, REVISION_VERSION_PATTERN)
revision_str = _match_version_str(filetext, REVISION_STR_VERSION_PATTERN)
print("Parsing version_override.cmake...")
if "rc" in tag_name.lower():
version = semantic_version.Version("{}.{}.{}-{}".format(major, minor, build, revision_str))
elif "release" in tag_name.lower():
version = semantic_version.Version("{}.{}.{}".format(major, minor, build))
elif "nightly" in tag_name.lower():
# Nightly's version_override.cmake only has FSO_VERSION_REVISION and FSO_VERSION_REVISION_STR set
# So, we have to pull the rest of the version string from version.cmake
print("Parsing version.cmake...")
with open(os.path.join("..", "..", "cmake", "version.cmake"), "r") as f:
major = _match_version_number(filetext, MAJOR_VERSION_PATTERN)
minor = _match_version_number(filetext, MINOR_VERSION_PATTERN)
build = _match_version_number(filetext, BUILD_VERSION_PATTERN)
version = semantic_version.Version("{}.{}.{}-{}".format(major, minor, build, revision_str))
else:
print(" ERROR: malformed tag_name %s" % tag_name)
sys.exit(1)
print(" version: {}".format(version))
print(" version.prerelease: {}".format(version.prerelease))
return version
def main():
if "FORUM_SECRET" not in os.environ or not os.environ["FORUM_SECRET"]:
print(" ERROR: FORUM_SECRET environment variable not set")
sys.exit(1)
os.chdir(os.path.dirname(__file__)) # Change working directory to this file's directory
# Aggregate configuration data in a dictionary
config = {
"github": {
"repo": os.environ["GITHUB_REPO"],
},
"ftp": {
"host": "scp.indiegames.us",
"user": os.environ["INDIEGAMES_USER"],
"pass": os.environ["INDIEGAMES_SSHPASS"],
"path": "public_html/builds/{type}/{version}/",
"mirrors": (
"https://perses.feralhosting.com/datacorder/builds/{type}/{version}/{file}",
"https://scp.indiegames.us/builds/{type}/{version}/{file}",
),
},
"nebula": {
"user": os.environ["NEBULA_USER"],
"password": os.environ["NEBULA_PASSWORD"],
},
"hlp": {
"api": os.environ["HLP_API"],
"key": os.environ["HLP_KEY"],
},
"templates": {
"nightly": "nightly.mako",
"release": "release.mako",
},
"nightly": {
"hlp_board": 173,
},
"release": {
"hlp_board": 50,
},
}
# bail if this script is run from a workflow that doesn't identify as a release or nightly
if sys.argv[1] not in ("release", "nightly"):
print("ERROR: Invalid release mode %s passed. Expected release or nightly!" % sys.argv[1])
sys.exit(1)
linux_success = os.environ["LINUX_RESULT"] == "success"
windows_success = os.environ["WINDOWS_RESULT"] == "success"
if (sys.argv[1] == "release"):
if not (linux_success and windows_success):
# bail if this is a release and either build workflow failed
print("ERROR: One or more builds failed to publish! Cannot post release.")
sys.exit(1)
else:
if not (linux_success or windows_success):
# bail if this is a nightly build and both build workflows failed
print("ERROR: All builds failed to publish! Cannot post nightly.")
sys.exit(1)
# bail if tag_name doesn't match with sys.argv[1]
tag_name = os.environ["RELEASE_TAG"] ##!< commit tag string
if (sys.argv[1] == "release") and (not tag_name.startswith("release_")):
print("ERROR: Invalid tag name detected. Expected release_ prefix for release builds but found %s (full ref = %s)" % tag_name, os.environ["GITHUB_REF"])
sys.exit(1)
if (sys.argv[1] == "nightly") and (not tag_name.startswith("nightly_")):
print("ERROR: Invalid tag name detected. Expected nightly_ prefix for nightly builds but found %s (full ref = %s)" % tag_name, os.environ["GITHUB_REF"])
sys.exit(1)
# bail if tag_name does not exist in the repo
if not check_output(("git", "show-ref", "--tags", "refs/tags/%s" % tag_name), text=True):
print("ERROR: Couldn't find tag %s in repo (git show-ref)!" % tag_name)
sys.exit(1)
# Populate version and date
date = datetime.now() ##!< current date
version = get_source_version(date.strftime(DATEFORMAT_VERSION), tag_name) ##!< form full version string
# find the previous tag release (used by nightly)
tags = check_output(("git", "for-each-ref", "--sort=-taggerdate", "--format='%(tag)'", "refs/tags"), text=True).splitlines() # retrieve all tags in the repo by using git on the shell
# NOTE: check_output returns canonical string representation. use repr() on strings its being compared to
previous_tag = None
found = False
for tag in tags:
if found:
# Look for the "previous" tag with the same configuration ('release_' or 'nightly_')
# Assumes older tags have a higher index than newer
if tag.startswith("\'" + sys.argv[1] + "_"):
previous_tag = tag
break
elif tag == repr(tag_name):
# Ok, found the tag
found = True
if not found:
# couldn't find tag, bail
print("ERROR: Couldn't find tag %s in repo! (git for-each-ref)" % tag_name)
sys.exit(1)
if (sys.argv[1] == "nightly") and (not previous_tag):
# couldn't find previous tag, bail
print("ERROR: Could not find a previous tag for %s!" % tag_name)
sys.exit(1)
if sys.argv[1] == "release":
# Release specific action
print("Retrieving file list...")
files, sources = file_list.get_release_files(tag_name, config)
print("Hashing files...")
for file in files:
installer.get_hashed_file_list(file)
# Construct the file groups
# split the file list into a dictionary of {group: files} pairs using `groupby()`
# Since `groupby()` returns a iterator reference to the original files list, we have to do a weird hand toss
# to save it as a dictionary
## NOTE z64: files need to be sorted or else key duplication will occur!
groups = {key: file_list.FileGroup(key, list(group)) for key, group in groupby(files, lambda g: g.group)}
# Error check for all group keys and subkeys to be used in the mako. Do this here for better debugging QoL
if "Win32" in groups.keys():
if "AVX" not in groups["Win32"].subFiles.keys():
print("ERROR: No Win32-AVX builds were detected!")
sys.exit(1)
else:
print("ERROR: No Win32 builds were detected!")
sys.exit(1)
if "Win64" in groups.keys():
if "AVX" not in groups["Win64"].subFiles.keys():
print("ERROR: No x64-AVX builds were detected!")
sys.exit(1)
else:
print("ERROR: No x64 builds were detected!")
sys.exit(1)
if "Linux" not in groups.keys():
print("ERROR: No Linux builds were detected!")
sys.exit(1)
if "Mac" not in groups.keys():
print("ERROR: No Mac builds were detected!")
sys.exit(1)
# z64: What dose this do???
# print(installer.render_installer_config(version, groups, config))
# Publish release builds to Nebula
print("Publishing to Nebula...")
nebula.submit_release(
nebula.render_nebula_release(version, "rc" if version.prerelease else "stable", files, config),
config)
# Publish forum post, using the release.mako template
print("Publishing to Hard-light.net...")
fapi = forum.ForumAPI(config)
fapi.post_release(date.strftime(DATEFORMAT_FORUM), version, groups, sources)
else:
# Dead for now, nightly publish is done elsewhere
# Nightly specific action
print("Retrieving file list...")
files = file_list.get_ftp_files("nightly", tag_name, config)
print("Hashing files...")
for file in files:
installer.get_hashed_file_list(file)
print("Publishing to Nebula...")
nebula.submit_release(
nebula.render_nebula_release(version, "nightly", files, config),
config)
# Compile commit messages into a log with all commits between this nightly and the previous nightly
log = check_output(("git", "log", "%s^..%s^" % (previous_tag, tag_name), "--no-merges", "--stat", "--pretty=format:\"%s\"" % LOG_FORMAT.strip()))
# Publish forum post, using the nighty.mako template
print("Publishing to Hard-light.net...")
fapi = forum.ForumAPI(config)
fapi.post_nightly(date.strftime(DATEFORMAT_FORUM), os.environ["GITHUB_SHA"], files, log, (linux_success and windows_success))
print("Done!")
if __name__ == "__main__":
main()
-260
View File
@@ -1,260 +0,0 @@
import os.path
import sys
import traceback
import requests
from file_list import ReleaseFile
from util import retry_multi, GLOBAL_TIMEOUT
LINUX_X64_KEY = "Linux-x86_64"
LINUX_ARM64_KEY = "Linux-arm64"
MACOSX_X64_KEY = "Mac-x86_64"
MACOSX_ARM64_KEY = "Mac-arm64"
WIN32_SSE2_KEY = "Win32-SSE2"
WIN64_SSE2_KEY = "Win64-SSE2"
WIN32_AVX_KEY = "Win32-AVX"
WIN64_AVX_KEY = "Win64-AVX"
WINARM64_KEY = "WinARM64"
metadata = {
'type': 'engine',
'title': 'FSO',
'notes': '',
'banner': 'https://fsnebula.org/storage/0d/e7/bf64bcdea9a9c115969cfb784e1ca457d24a7c2da4fc6f213521c3bb6abb.png',
'screenshots': [],
'videos': [],
'first_release': '2017-09-24',
'cmdline': '',
'mod_flag': ['FSO'],
'tile': 'https://fsnebula.org/storage/ec/cc/0bf23e028c26d5175ff52d003bff85b0a17b0ddfc1130d65bdf6d36f6324.png',
'logo': None,
'release_thread': None,
'description': '',
'id': 'FSO',
'packages': [],
}
platforms = {
LINUX_X64_KEY: 'linux',
LINUX_ARM64_KEY: 'linux',
MACOSX_X64_KEY: 'macosx',
MACOSX_ARM64_KEY: 'macosx',
WIN32_SSE2_KEY: 'windows',
WIN64_SSE2_KEY: 'windows',
WIN32_AVX_KEY: 'windows',
WIN64_AVX_KEY: 'windows',
WINARM64_KEY: 'windows',
}
envs = {
LINUX_X64_KEY: 'linux && x86_64',
LINUX_ARM64_KEY: 'linux && arm64',
MACOSX_X64_KEY: 'macosx && x86_64',
MACOSX_ARM64_KEY: 'macosx && arm64',
WIN32_SSE2_KEY: 'windows',
WIN64_SSE2_KEY: 'windows && x86_64',
WIN32_AVX_KEY: 'windows && avx',
WIN64_AVX_KEY: 'windows && avx && x86_64',
WINARM64_KEY: 'windows && arm64'
}
subdirs = {
WIN32_SSE2_KEY: 'x86',
WIN64_SSE2_KEY: 'x64',
WIN32_AVX_KEY: 'x86_avx',
WIN64_AVX_KEY: 'x64_avx'
}
def render_nebula_release(version, stability, files, config):
meta = metadata.copy()
meta['version'] = str(version)
meta['stability'] = stability # This can be one of ('stable', 'rc', 'nightly')
for file in files:
if file.content_hashes is None:
# The extraction probably failed which is why we don't have any hashes
continue
group = file.group
# release.py sets subgroup but nightly.py doesn't which means we have to normalize group here.
if file.subgroup:
group += '-' + file.subgroup
pkg = {
'name': group,
'notes': '',
'is_vp': False,
'files': [{
'dest': platforms[group] + '/' + subdirs.get(group, ''),
'filesize': file.size,
'checksum': ['sha256', file.hash],
'urls': [file.url] + file.mirrors,
'filename': file.name
}],
'environment': envs.get(group),
'filelist': [],
'status': 'required',
'folder': None,
'dependencies': [],
'executables': []
}
for fn, checksum in file.content_hashes:
if group in subdirs:
dest_fn = subdirs[group] + '/' + fn
else:
dest_fn = fn
# If the group is a known platform then we put the binaries into a separate subfolder for each platform
if group in platforms:
dest_fn = platforms[group] + '/' + dest_fn
pkg['filelist'].append({
'orig_name': fn,
'checksum': ('sha256', checksum),
'archive': file.name,
'filename': dest_fn
})
if group.startswith('Linux') and fn.endswith('.AppImage'):
if 'qtfred' in fn:
if '-FASTDBG' in fn:
label = 'QtFRED Debug'
else:
label = 'QtFRED'
else:
if '-FASTDBG' in fn:
label = 'Fast Debug'
else:
label = None
props = {
"arm64": "arm64" in fn,
"x64": "x64" in fn,
"sse2": True, # Linux builds are forced to compile with SSE2 but not AVX
"avx": False,
"avx2": False,
}
pkg['executables'].append({
'file': dest_fn,
'label': label,
'properties': props,
})
elif group.startswith('Mac') and fn.startswith(os.path.basename(fn) + '.app/'):
if 'qtfred' in fn:
if '-FASTDBG' in fn:
label = 'QtFRED Debug'
else:
label = 'QtFRED'
else:
if '-FASTDBG' in fn:
label = 'Fast Debug'
else:
label = None
props = {
"arm64": "arm64" in fn,
"x64": "x64" in fn,
"sse2": True, # There are no forced options on mac but 64-bit always implies SSE2 so we set that here
"avx": False,
"avx2": False,
}
pkg['executables'].append({
'file': dest_fn,
'label': label,
'properties': props,
})
elif group.startswith('Win') and fn.endswith('.exe'):
if 'fred2' in fn:
if '-FASTDBG' in fn:
label = 'FRED2 Debug'
else:
label = 'FRED2'
elif 'qtfred' in fn:
if '-FASTDBG' in fn:
label = 'QtFRED Debug'
else:
label = 'QtFRED'
else:
if '-FASTDBG' in fn:
label = 'Fast Debug'
else:
label = None
props = {
"x64": "x64" in fn,
"sse2": "SSE2" in fn or "AVX" in fn, # AVX implies SSE2
"avx": "AVX" in fn, # This conveniently also covers the AVX2 case since AVX2 implies AVX
"avx2": "AVX2" in fn,
"arm64": "arm64" in fn,
}
pkg['executables'].append({
'file': dest_fn,
'label': label,
'properties': props,
})
meta["packages"].append(pkg)
return meta
@retry_multi(5)
def nebula_request(session, kind, path, **kwargs):
uri = "https://fsnebula.org/api/1/{}".format(path)
request_args = {
"timeout": GLOBAL_TIMEOUT
}
request_args.update(kwargs)
return session.request(kind, uri, **request_args)
def submit_release(meta, config):
try:
with requests.Session() as session:
print('Logging into Nebula...')
result = nebula_request(session, 'post', 'login', data={
'user': config['nebula']['user'],
'password': config['nebula']['password']
})
if result.status_code != 200:
print('Login failed!')
return False
data = result.json()
if not data['result']:
print('Login failed!')
return False
print('Submitting release...')
result = nebula_request(session, 'post', 'mod/release', headers={
'X-KN-TOKEN': data['token']
}, json=meta)
if result.status_code != 200:
print('Request failed!')
return False
data = result.json()
if not data['result']:
print('ERROR: ' + data['reason'])
return False
print('Success!')
return True
except Exception:
exc_type, exc_value, exc_traceback = sys.exc_info()
traceback.print_exception(exc_type, exc_value, exc_traceback)
return False
-27
View File
@@ -1,27 +0,0 @@
Here is the nightly for ${date} - Revision ${revision}
% if not success:
[b][color=red]At least one of the nightly builds failed![/color][/b]
% endif
% for file in files:
Group: ${file.group}
[url=${file.url}]${file.name}[/url] \
%for mirror in file.mirrors:
%if loop.first:
(\
%endif
[url=${mirror}]Mirror[/url]\
%if loop.last:
)\
%else:
, \
%endif
%endfor
% endfor
[code]
${log}
[/code]
-79
View File
@@ -1,79 +0,0 @@
<%def name="build(file)">[url=${file.url}]${file.filename}[/url]</%def>
[b]Change log:[/b] (chronologically ordered)
PLACEHOLDER
[b]Deprecations:[/b]
PLACEHOLDER
Deprecations are a mechanism in FSO where a certain feature or aspect of the engine has changed or is no longer supported. Since this would normally break existing mods, we have the mod table feature "[tt]$Target Version:[/tt]" with which a mod can specify what version of FSO it was developed with. Any features listed under Deprecations will be removed or changed when the target version of a mod is at least the version released in this post.
[size=5pt]Previous [url=https://www.hard-light.net/forums/index.php?topic=99015.0]23.2.1 Release Thread[/url][/size]
Launchers, if you don't have one already:
[b]All platforms: [/b] For every day use, we recommend [url=https://knossosnet.github.io/Knossos-Release-Page/]Knossos.NET[/url], an integrated solution for downloading and launching mods.
[hidden=Alternative Launchers]
Cross-platform: [url=https://www.hard-light.net/forums/index.php?topic=89162]wxLauncher 0.12.x Test Build[/url] (legacy project for a unified launcher)
[b]Important:[/b] For best compatibility with FSO 3.8 and later you should use at least wxLauncher 0.12.
Windows: [url=http://scp.fsmods.net/builds/Launcher55g.zip]Launcher 5.5g[/url] ([url=https://scp.indiegames.us/builds/Launcher55g.zip]Mirror[/url]) ([url=https://www.mediafire.com/?wdvzn7hhhzh418m]Mirror[/url]) Not compatible with Windows 8+, use wxLauncher above
OS X: Soulstorm's [url=https://www.hard-light.net/forums/index.php/topic,51391.0.html]OS X Launcher 3.0[/url]
Linux: [url=https://www.hard-light.net/forums/index.php/topic,53206.0.html]YAL[/url] or [url=https://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux/Graphics_Settings]by hand[/url] or whatever you can figure out.[/hidden]
[img]https://scp.indiegames.us/img/windows-icon.png[/img] [color=green][size=12pt]Windows (32/64-bit/ARM64)[/size][/color]
[size=8pt]Compiled using GitHub Actions on Windows Server 2019 (10.0.17763), Visual Studio Enterprise 2019[/size]
[b]64-bit:[/b] ${build(groups["Win64"].mainFile)}
[b]32-bit:[/b] ${build(groups["Win32"].mainFile)}
[size=8pt]This one is based on the SSE2 Optimizations from the MSVC Compiler.[/size]
[b]ARM64:[/b] ${build(groups["WinARM64"].mainFile)}
[hidden=Alternative builds]
[b]64-bit AVX:[/b] ${build(groups["Win64"].subFiles["AVX"])}
[size=8pt]This one is based on the AVX Optimizations from the MSVC Compiler (fastest build if your CPU supports AVX instructions).[/size]
[b]32-bit AVX:[/b] ${build(groups["Win32"].subFiles["AVX"])}
[size=8pt]This one is based on the AVX Optimizations from the MSVC Compiler.[/size]
[b]What are those SSE, SSE2 and AVX builds I keep seeing everywhere?[/b]
[url=https://www.hard-light.net/forums/index.php?topic=65628.0]Your answer is in this topic.[/url]
Don't want to deal with that? Use [url=https://knossosnet.github.io/Knossos-Release-Page/]Knossos.NET[/url] and it will download the best build specifically for your PC!
[/hidden]
[img]https://scp.indiegames.us/img/linux-icon.png[/img] [color=green][size=12pt]Linux[/size][/color]
[size=8pt]Compiled with Ubuntu 20.04 LTS, GCC 9[/size]
[b]x86_64:[/b] ${build(groups["Linux"].subFiles["x86_64"])}
[b]arm64:[/b] ${build(groups["Linux"].subFiles["arm64"])}
These builds use a mechanism called [url=https://appimage.org/]AppImage[/url] which should allow these builds to run on most Linux distributions. However, we recommend that you compile your own builds which will result in less issues.
Alternatively, if there is a package in your software repository then you should use that. If you are the maintainer of such a package for a distribution then let us know and we will include that here.
[img]https://scp.indiegames.us/img/mac-icon.png[/img] [color=green][size=12pt]macOS[/size][/color]
[size=8pt]macOS 10.9+[/size]
[b]Intel (64-bit):[/b] ${build(groups["Mac"].subFiles["x86_64"])}
[b]Apple Silicon:[/b] ${build(groups["Mac"].subFiles["arm64"])}
These builds are not signed and so by default will fail to launch. To run them simply right-click on the app, click open, then click open again on the security confirmation dialog. You should only have to do this once for each app.
If running the game through Knossos or Knossos.NET this step should not be necessary.
[size=8pt][color=red][b]NOTE:[/b][/color] macOS builds currently have limited support and may exhibit issues not present on other platforms.[/size]
[hidden=TrackIR Users]
[size=12pt]Important!![/size]
An external DLL is required for FSO to use TrackIR functions. The following DLL is simply unpacked in to your main FreeSpace2 root dir.
TrackIR is only supported on Windows.
[url=https://www.mediafire.com/download.php?4zw024zrh44etse]TrackIR SCP DLL[/url] ([url=http://scp.fsmods.net/builds/scptrackir.zip]Mirror[/url]) ([url=https://scp.indiegames.us/builds/scptrackir.zip]Mirror[/url])[/hidden]
Known issues:
[list]
[li][url=https://github.com/scp-fs2open/fs2open.github.com/issues]Github issues[/url] and [url=https://github.com/scp-fs2open/fs2open.github.com/pulls]pending pull requests[/url][/li]
[li]See the list of [url=https://github.com/scp-fs2open/fs2open.github.com/projects/8]bugs ranked by priority[/url][/li]
[/list]
-3
View File
@@ -1,3 +0,0 @@
Mako==1.4.2
requests==2.33.0
semantic-version==2.8.5
-46
View File
@@ -1,46 +0,0 @@
# miscellaneous utilities
import os
import time
from functools import wraps
from requests import RequestException
GLOBAL_TIMEOUT = 30
def retry_multi(max_retries):
"""!
@brief Decorator - Retry a function `max_retries` times.
@param [in] `max_retries` Maximum number of times to retry the decorated function before giving up
@details Intended for use with functions from the `request` module, only catches `RequestException`'s
@note This has been copied from https://stackoverflow.com/a/23892489
"""
def retry(func):
@wraps(func)
def wrapper(*args, **kwargs):
num_retries = 0
while num_retries <= max_retries:
try:
ret = func(*args, **kwargs)
break
except RequestException:
if num_retries == max_retries:
raise
num_retries += 1
time.sleep(5)
return ret
return wrapper
return retry
def expand_config_vars(config):
"""
@brief Expands the shell variable for the repo string from `config`
"""
config["git"]["repo"] = os.path.expandvars(config["git"]["repo"])
-34
View File
@@ -1,34 +0,0 @@
# Installs ATL and MFC for the v143 toolset, which the Visual Studio 2026 runner images
# only ship for the latest toolset. ATL is needed by SAPI speech (sphelper.h) and MFC by FRED2.
$ErrorActionPreference = 'Stop'
$msvcVersion = '14.44'
$component = 'Microsoft.VisualStudio.Component.VC.14.44.17.14'
$suffix = if ($env:RUNNER_ARCH -eq 'ARM64') { '.ARM64' } else { '' }
$installerDir = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer"
$installPath = & "$installerDir\vswhere.exe" -version '[18.0,19.0)' -latest -property installationPath
if (-not $installPath) {
Write-Error 'Visual Studio 2026 was not found'
}
$arguments = @(
'/c', 'vs_installer.exe', 'modify',
'--installPath', "`"$installPath`"",
'--add', "$component.ATL$suffix",
'--add', "$component.MFC$suffix",
'--quiet', '--norestart', '--nocache'
)
$process = Start-Process -FilePath cmd.exe -ArgumentList $arguments -WorkingDirectory $installerDir -Wait -PassThru -NoNewWindow
# 3010 = success, reboot required
if ($process.ExitCode -notin 0, 3010) {
Write-Error "vs_installer exited with code $($process.ExitCode)"
}
# fail here rather than with a confusing compile error if the components didn't install
foreach ($header in 'atlbase.h', 'afxwin.h') {
if (-not (Test-Path "$installPath\VC\Tools\MSVC\$msvcVersion.*\atlmfc\include\$header")) {
Write-Error "$header for MSVC $msvcVersion is missing after install"
}
}
-16
View File
@@ -1,16 +0,0 @@
buildType:
default: release
description: R
choices:
release:
short: Release
long: Release builds
buildType: Release
fastDebug:
short: FastDebug
long: Debug with optimizations
buildType: FastDebug
debug:
short: Debug
long: Debug without optimizations
buildType: Debug
-48
View File
@@ -1,48 +0,0 @@
# - Removes duplicate entries and non-directories from a provided list
#
# clean_directory_list(<listvar> [<additional list items>...])
#
# Requires CMake 2.6 or newer (uses the 'function' command)
#
# Original Author:
# 2009-2010 Ryan Pavlik <[email protected]> <[email protected]>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
if(__clean_directory_list)
return()
endif()
set(__clean_directory_list YES)
function(clean_directory_list _var)
# combine variable's current value with additional list items
set(_in ${${_var}} ${ARGN})
if(_in)
# Initial list cleaning
list(REMOVE_DUPLICATES _in)
# Grab the absolute path of each actual directory
set(_out)
foreach(_dir ${_in})
if(IS_DIRECTORY "${_dir}")
get_filename_component(_dir "${_dir}" ABSOLUTE)
file(TO_CMAKE_PATH "${_dir}" _dir)
list(APPEND _out "${_dir}")
endif()
endforeach()
if(_out)
# Clean up the output list now
list(REMOVE_DUPLICATES _out)
endif()
# return _out
set(${_var} "${_out}" PARENT_SCOPE)
endif()
endfunction()
-311
View File
@@ -1,311 +0,0 @@
# - Create launchers to set working directory, env. vars, etc.
#
# include(CreateLaunchers) - to make these available
# guess_runtime_library_dirs(<outputvarname> [<extralibrary> ...])
# create_default_target_launcher(<targetname>
# [ARGS <args...>]
# [FORWARD_ARGS]
# [RUNTIME_LIBRARY_DIRS <dir...>]
# [WORKING_DIRECTORY <dir>]
# [ENVIRONMENT <VAR=value> [<VAR=value>...]])
#
# create_target_launcher(<targetname>
# [ARGS <args...>]
# [FORWARD_ARGS]
# [RUNTIME_LIBRARY_DIRS <dir...>]
# [WORKING_DIRECTORY <dir>]
# [ENVIRONMENT <VAR=value> [<VAR=value>...]])
#
# create_generic_launcher(<launchername>
# [RUNTIME_LIBRARY_DIRS <dir...>]
# [WORKING_DIRECTORY <dir>]
# [ENVIRONMENT <VAR=value> [<VAR=value>...]])
# - sets GENERIC_LAUNCHER_COMMAND and GENERIC_LAUNCHER_FAIL_REGULAR_EXPRESSION
#
# Requires these CMake modules:
# ListFilter
# ProgramFilesGlob
# CleanDirectoryList
#
# Requires CMake 2.6 or newer (uses the 'function' command)
#
# Original Author:
# 2009-2010 Ryan Pavlik <[email protected]> <[email protected]>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
if(__create_launchers)
return()
endif()
set(__create_launchers YES)
include(CleanDirectoryList)
# We must run the following at "include" time, not at function call time,
# to find the path to this module rather than the path to a calling list file
get_filename_component(_launchermoddir
${CMAKE_CURRENT_LIST_FILE}
PATH)
set(_launchermoddir "${_launchermoddir}/launcher-templates")
macro(_launcher_system_settings)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(BITS 64)
else()
set(BITS 32)
endif()
if(WIN32)
# Find user and system name
set(SYSTEM_NAME $ENV{USERDOMAIN})
set(USER_NAME $ENV{USERNAME})
set(VCPROJ_TYPE vcproj)
set(USERFILE_EXTENSION ${SYSTEM_NAME}.${USER_NAME}.user)
set(LAUNCHER_LINESEP "&#x0A;")
if(MSVC90)
set(USERFILE_VC_VERSION 9.00)
elseif(MSVC80)
set(USERFILE_VC_VERSION 8.00)
elseif(MSVC71)
set(USERFILE_VC_VERSION 7.10)
elseif(MSVC10 OR (MSVC AND MSVC_VERSION GREATER 1600)) # 2010 or newer
set(LAUNCHER_LINESEP "\n")
set(USERFILE_VC_VERSION 10.00)
set(USERFILE_EXTENSION user)
set(VCPROJ_TYPE vcxproj)
endif()
if(BITS EQUAL 64)
set(USERFILE_PLATFORM x64)
else()
set(USERFILE_PLATFORM Win${BITS})
endif()
set(_pathdelim ";")
set(_suffix "cmd")
else()
set(_pathdelim ":")
set(USERFILE_PLATFORM ${CMAKE_SYSTEM_NAME}${BITS})
set(_suffix "sh")
find_package(GDB QUIET)
if(GDB_FOUND)
set(LAUNCHERS_GOT_GDB YES)
if(GDB_HAS_RETURN_CHILD_RESULT)
set(LAUNCHERS_GDB_ARG --return-child-result)
endif()
else()
set(LAUNCHERS_GOT_GDB)
endif()
endif()
if(WIN32 AND NOT USERFILE_REMOTE_MACHINE)
site_name(USERFILE_REMOTE_MACHINE)
mark_as_advanced(USERFILE_REMOTE_MACHINE)
endif()
endmacro()
macro(_launcher_process_args)
set(_nowhere)
set(_curdest _nowhere)
set(_val_args
ARGS
RUNTIME_LIBRARY_DIRS
WORKING_DIRECTORY
ENVIRONMENT)
set(_bool_args FORWARD_ARGS)
foreach(_arg ${_val_args} ${_bool_args})
set(${_arg})
endforeach()
foreach(_element ${ARGN})
list(FIND _val_args "${_element}" _val_arg_find)
list(FIND _bool_args "${_element}" _bool_arg_find)
if("${_val_arg_find}" GREATER "-1")
set(_curdest "${_element}")
elseif("${_bool_arg_find}" GREATER "-1")
set("${_element}" ON)
set(_curdest _nowhere)
else()
list(APPEND ${_curdest} "${_element}")
endif()
endforeach()
if(_nowhere)
message(FATAL_ERROR
"Syntax error in use of a function in CreateLaunchers!")
endif()
# Turn into a list of native paths
set(_runtime_lib_dirs)
foreach(_dlldir ${RUNTIME_LIBRARY_DIRS})
file(TO_NATIVE_PATH "${_dlldir}" _path)
set(_runtime_lib_dirs "${_runtime_lib_dirs}${_path}${_pathdelim}")
endforeach()
if(NOT WORKING_DIRECTORY)
set(WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
endif()
if(FORWARD_ARGS)
if(WIN32)
set(FWD_ARGS %*)
else()
set(FWD_ARGS $*)
endif()
else()
set(FWD_ARGS)
endif()
set(USERFILE_WORKING_DIRECTORY "${WORKING_DIRECTORY}")
set(USERFILE_COMMAND_ARGUMENTS "${ARGS}")
set(LAUNCHERSCRIPT_COMMAND_ARGUMENTS "${ARGS} ${FWD_ARGS}")
if(WIN32)
set(RUNTIME_LIBRARIES_ENVIRONMENT "PATH=${_runtime_lib_dirs};%PATH%")
file(READ
"${_launchermoddir}/launcher.env.cmd.in"
_cmdenv)
else()
if(APPLE)
set(RUNTIME_LIBRARIES_ENVIRONMENT
"DYLD_LIBRARY_PATH=${_runtime_lib_dirs}:$DYLD_LIBRARY_PATH")
else()
set(RUNTIME_LIBRARIES_ENVIRONMENT
"LD_LIBRARY_PATH=${_runtime_lib_dirs}:$LD_LIBRARY_PATH")
endif()
file(READ
"${_launchermoddir}/launcher.env.sh.in"
_cmdenv)
endif()
set(USERFILE_ENVIRONMENT "${RUNTIME_LIBRARIES_ENVIRONMENT}")
set(USERFILE_ENV_COMMANDS)
foreach(_arg "${RUNTIME_LIBRARIES_ENVIRONMENT}" ${ENVIRONMENT})
string(CONFIGURE
"@USERFILE_ENVIRONMENT@@LAUNCHER_LINESEP@@_arg@"
USERFILE_ENVIRONMENT
@ONLY)
string(CONFIGURE
"@USERFILE_ENV_COMMANDS@${_cmdenv}"
USERFILE_ENV_COMMANDS
@ONLY)
endforeach()
endmacro()
macro(_launcher_produce_vcproj_user)
if(MSVC)
file(READ
"${_launchermoddir}/perconfig.${VCPROJ_TYPE}.user.in"
_perconfig)
file(TO_NATIVE_PATH "${USERFILE_WORKING_DIRECTORY}" NATIVE_WORKING_DIRECTORY)
set(USERFILE_CONFIGSECTIONS)
foreach(USERFILE_CONFIGNAME ${CMAKE_CONFIGURATION_TYPES})
string(CONFIGURE "${_perconfig}" _temp @ONLY ESCAPE_QUOTES)
set(USERFILE_CONFIGSECTIONS "${USERFILE_CONFIGSECTIONS}${_temp}")
endforeach()
configure_file("${_launchermoddir}/${VCPROJ_TYPE}.user.in"
"${VCPROJNAME}.${VCPROJ_TYPE}.${USERFILE_EXTENSION}"
@ONLY)
endif()
endmacro()
macro(_launcher_configure_executable _src _tmp _target)
# get_filename_component(_targetname "${_target}" NAME)
get_filename_component(_targetpath "${_target}" PATH)
configure_file("${_src}"
"${_tmp}"
@ONLY)
file(COPY "${_tmp}"
DESTINATION "${_targetpath}"
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
endmacro()
macro(_launcher_create_target_launcher)
set(TARGET_NAME ${_targetname})
set(_fn "launch-${_targetname}-generator.${_suffix}")
configure_file("${_launchermoddir}/targetlauncher.${_suffix}.in"
"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${_fn}"
@ONLY)
file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/launch-${_targetname}-$<CONFIGURATION>.${_suffix}"
INPUT "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${_fn}")
endmacro()
function(create_default_target_launcher _targetname)
_launcher_system_settings()
_launcher_process_args(${ARGN})
set(VCPROJNAME "${CMAKE_BINARY_DIR}/ALL_BUILD")
_launcher_produce_vcproj_user()
_launcher_create_target_launcher()
endfunction()
function(create_target_launcher _targetname)
_launcher_system_settings()
_launcher_process_args(${ARGN})
set(VCPROJNAME "${CMAKE_CURRENT_BINARY_DIR}/${_targetname}")
_launcher_produce_vcproj_user()
_launcher_create_target_launcher()
endfunction()
function(create_generic_launcher _launchername)
_launcher_system_settings()
_launcher_process_args(${ARGN})
if(NOT IS_ABSOLUTE _launchername)
set(_launchername
"${CMAKE_CURRENT_BINARY_DIR}/${_launchername}.${_suffix}")
else()
set(_launchername "${_launchername}.${_suffix}")
endif()
if(WIN32)
set(GENERIC_LAUNCHER_COMMAND "${_launchername}" PARENT_SCOPE)
set(GENERIC_LAUNCHER_FAIL_REGULAR_EXPRESSION)
else()
set(GENERIC_LAUNCHER_COMMAND sh "${_launchername}" PARENT_SCOPE)
set(GENERIC_LAUNCHER_FAIL_REGULAR_EXPRESSION
"Program terminated with signal")
endif()
_launcher_configure_executable("${_launchermoddir}/genericlauncher.${_suffix}.in"
"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/genericlauncher.${_suffix}.in"
"${_launchername}")
endfunction()
function(guess_runtime_library_dirs _var)
# Start off with the link directories of the calling listfile's directory
get_directory_property(_libdirs LINK_DIRECTORIES)
# Add additional libraries passed to the function
foreach(_lib ${ARGN})
get_filename_component(_libdir "${_lib}" PATH)
list(APPEND _libdirs "${_libdir}")
endforeach()
# Now, build a list of potential dll directories
set(_dlldirs)
foreach(_libdir ${_libdirs})
# Add the libdir itself
list(APPEND _dlldirs "${_libdir}")
# Look also in libdir/../bin since the dll might not be with the lib
get_filename_component(_libdir "${_libdir}/../bin" ABSOLUTE)
list(APPEND _dlldirs "${_libdir}")
endforeach()
# Only keep the valid, unique directories
clean_directory_list(_dlldirs)
# Return _dlldirs
set(${_var} "${_dlldirs}" PARENT_SCOPE)
endfunction()
-3
View File
@@ -1,3 +0,0 @@
set(CMAKE_CXX_STANDARD_REQUIRED 11)
set(CMAKE_CXX_STANDARD 11)
-88
View File
@@ -1,88 +0,0 @@
# - Add flags to compile with extra warnings
#
# enable_extra_compiler_warnings(<targetname>)
# globally_enable_extra_compiler_warnings() - to modify CMAKE_CXX_FLAGS, etc
# to change for all targets declared after the command, instead of per-command
#
#
# Original Author:
# 2010 Ryan Pavlik <[email protected]> <[email protected]>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
if(__enable_extra_compiler_warnings)
return()
endif()
set(__enable_extra_compiler_warnings YES)
macro(_enable_extra_compiler_warnings_flags)
set(_flags)
if(MSVC)
option(COMPILER_WARNINGS_EXTREME
"Use compiler warnings that are probably overkill."
off)
mark_as_advanced(COMPILER_WARNINGS_EXTREME)
set(_flags "/W4")
if(COMPILER_WARNINGS_EXTREME)
set(_flags "${_flags} /Wall /wd4619 /wd4668 /wd4820 /wd4571 /wd4710")
endif()
else()
include(CheckCXXCompilerFlag)
set(_flags)
check_cxx_compiler_flag(-W SUPPORTS_W_FLAG)
if(SUPPORTS_W_FLAG)
set(_flags "${_flags} -W")
endif()
check_cxx_compiler_flag(-Wall SUPPORTS_WALL_FLAG)
if(SUPPORTS_WALL_FLAG)
set(_flags "${_flags} -Wall")
endif()
check_cxx_compiler_flag(-Wextra SUPPORTS_WEXTRA_FLAG)
if(SUPPORTS_WEXTRA_FLAG)
set(_flags "${_flags} -Wextra")
endif()
if(SUPPORTS_WALL_FLAG)
# At least GCC includes -Wmaybe-uninitialized in -Wall, which
# unneccesarily whines about boost::optional (by it's nature
# it's a "maybe" warning - prone to noisy false-positives)
check_cxx_compiler_flag(-Wno-maybe-uninitialized SUPPORTS_WNO_MAYBE_UNINITIALIZED_FLAG)
if(SUPPORTS_WNO_MAYBE_UNINITIALIZED_FLAG)
set(_flags "${_flags} -Wno-maybe-uninitialized")
endif()
endif()
endif()
endmacro()
function(enable_extra_compiler_warnings _target)
_enable_extra_compiler_warnings_flags()
get_target_property(_origflags ${_target} COMPILE_FLAGS)
if(_origflags)
set_property(TARGET
${_target}
PROPERTY
COMPILE_FLAGS
"${_flags} ${_origflags}")
else()
set_property(TARGET
${_target}
PROPERTY
COMPILE_FLAGS
"${_flags}")
endif()
endfunction()
function(globally_enable_extra_compiler_warnings)
_enable_extra_compiler_warnings_flags()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_flags}" PARENT_SCOPE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flags}" PARENT_SCOPE)
endfunction()
-53
View File
@@ -1,53 +0,0 @@
# - Combine lists of prefixes and suffixes in all combinations
#
# list_combinations(var PREFIXES listitems... SUFFIXES listitems...) -
# where var is the name of your desired output variable and PREFIXES
# and SUFFIXES are special arguments that indicate the start of your
# list of prefixes or suffixes respectively.
#
# Original Author:
# 2009-2010 Ryan Pavlik <[email protected]> <[email protected]>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
if(__list_combinations)
return()
endif()
set(__list_combinations YES)
function(list_combinations var)
# Parse arguments
set(_prefixes)
set(_suffixes)
set(_nowhere)
set(_curdest _nowhere)
foreach(_element ${ARGN})
if("${_element}" STREQUAL "PREFIXES")
set(_curdest _prefixes)
elseif("${_element}" STREQUAL "SUFFIXES")
set(_curdest _suffixes)
else()
list(APPEND ${_curdest} "${_element}")
endif()
endforeach()
if(_nowhere)
message(STATUS "_prefixes ${_prefixes}")
message(STATUS "_prefixes ${_suffixes}")
message(STATUS "_prefixes ${_nowhere}")
message(FATAL_ERROR
"Syntax error in use of ${CMAKE_CURRENT_LIST_FILE}")
endif()
foreach(_prefix ${_prefixes})
foreach(_suffix ${_suffixes})
list(APPEND _out "${_prefix}${_suffix}")
endforeach()
endforeach()
set(${var} "${_out}" PARENT_SCOPE)
endfunction()
-31
View File
@@ -1,31 +0,0 @@
# - Compile with multiple processes on MSVC
#
# include(MSVCMultipleProcessCompile)
#
# Requires these CMake modules:
# ListCombinations.cmake
#
# Original Author:
# 2009-2010 Ryan Pavlik <[email protected]> <[email protected]>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
if(MSVC AND NOT "${MSVC_VERSION}" LESS 1400)
# Only available in VS 2005 and newer
string(TOUPPER "${CMAKE_CONFIGURATION_TYPES}" _conftypesUC)
include(ListCombinations)
list_combinations(_varnames
PREFIXES
CMAKE_C_FLAGS_
CMAKE_CXX_FLAGS_
SUFFIXES
${_conftypesUC})
foreach(_var ${_varnames})
set(${_var} "${${_var}} /MP")
endforeach()
endif()
-37
View File
@@ -1,37 +0,0 @@
option(ENABLE_CLANG_TIDY "Enable source code checking using clang-tidy" OFF)
find_program(
CLANG_TIDY_EXE
NAMES "clang-tidy"
DOC "Path to clang-tidy executable"
)
function(enable_clang_tidy target)
# Not enabled in this configuration
endfunction()
if(NOT ENABLE_CLANG_TIDY)
return()
endif()
if(NOT EXISTS "${CLANG_TIDY_EXE}")
message(SEND_ERROR "clang-tidy: Could not find clang-tidy executable (value of variable is \"${CLANG_TIDY_EXE}\".")
return()
endif()
if(CMAKE_VERSION VERSION_LESS "3.6.0")
message(SEND_ERROR "Clang-tidy support requires CMake 3.6")
return()
endif()
message(STATUS "clang-tidy: Using \"${CLANG_TIDY_EXE}\"")
function(enable_clang_tidy target)
SET(TIDY_OPTIONS "${CLANG_TIDY_EXE}")
if(FSO_FATAL_WARNINGS)
set(TIDY_OPTIONS "${TIDY_OPTIONS};-warnings-as-errors=*")
endif()
set_target_properties(${target} PROPERTIES CXX_CLANG_TIDY "${TIDY_OPTIONS}")
endfunction()
-81
View File
@@ -1,81 +0,0 @@
// Code snippet from http://stackoverflow.com/a/7495023
#ifdef _WIN32
#include <intrin.h>
// Windows
#define cpuid __cpuidex
#define xgetbv _xgetbv
#else
#include <cstdint>
// GCC Inline Assembly
void cpuid(int CPUInfo[4], int InfoType, int SubType){
__asm__ __volatile__ (
"cpuid":
"=a" (CPUInfo[0]),
"=b" (CPUInfo[1]),
"=c" (CPUInfo[2]),
"=d" (CPUInfo[3]) :
"a" (InfoType),
"c" (SubType)
);
}
uint64_t xgetbv(uint32_t xcr) {
uint32_t lower, higher;
__asm__ __volatile__ (
"xgetbv":
"=a"(lower),
"=d"(higher) :
"c"(xcr)
);
return (static_cast<uint64_t>(higher) << static_cast<uint64_t>(32)) | static_cast<uint64_t>(lower);
}
#endif
#include <iostream>
int main( int argc, char* argv[] )
{
bool SSE = false;
bool SSE2 = false;
bool OSXSAVE = false;
bool AVX = false;
bool AVX2 = false;
int info[4];
cpuid(info, 0, 0);
int nIds = info[0];
// Detect Instruction Set
if (nIds >= 1){
cpuid(info, 0x00000001, 0);
SSE = (info[3] & ((int)1 << 25)) != 0;
SSE2 = (info[3] & ((int)1 << 26)) != 0;
OSXSAVE = (info[2] & ((int)1 << 27)) != 0;
AVX = (info[2] & ((int)1 << 28)) != 0;
}
if (nIds >= 7){
cpuid(info,0x00000007, 0);
AVX2 = (info[1] & ((int)1 << 5)) != 0;
}
// Detect OS Support
if (!OSXSAVE || (xgetbv(0) & 0x6) == 0) {
AVX = false;
AVX2 = false;
}
if (AVX2)
std::cout << "AVX2";
else if(AVX)
std::cout << "AVX";
else if(SSE2)
std::cout << "SSE2";
else if(SSE)
std::cout << "SSE";
return 0;
}
-42
View File
@@ -1,42 +0,0 @@
# Sample toolchain file for building for Windows from a Linux system.
#
# Typical usage:
# *) install cross compiler: `sudo apt-get install mingw-w64 g++-mingw-w64`
# *) cd build
# *) cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-Ubuntu-mingw64.cmake ..
set(CMAKE_SYSTEM_NAME Windows)
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
# cross compilers to use for C and C++
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)
# target environment on the build host system
# set 1st to dir with the cross compiler's C/C++ headers/libs
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
# modify default behavior of FIND_XXX() commands to
# search for headers/libs in the target environment and
# don't search for programs in the build host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
if (FSO_BUILD_WITH_DISCORD)
message(WARNING "Discord support is not tested for cross-compilation. Here be dragons! To disable, set -DFSO_BUILD_WITH_DISCORD:BOOL=OFF")
endif()
if (FSO_BUILD_FRED2)
message(WARNING "FRED2 support is not tested for cross-compilation. Here be dragons! To disable, set -DFSO_BUILD_FRED2:BOOL=OFF")
endif()
if (FSO_USE_SPEECH)
message(WARNING "Speech support is not tested for cross-compilation. Here be dragons! To disable, set -DFSO_USE_SPEECH:BOOL=OFF")
endif()
if (FSO_USE_VOICEREC)
message(WARNING "Voice recognition support is not tested for cross-compilation. Here be dragons! To disable, set -DFSO_USE_VOICEREC:BOOL=OFF")
endif()
-154
View File
@@ -1,154 +0,0 @@
# ------------------------- Begin Generic CMake Variable Logging ------------------
# /* C++ comment style not allowed */
# if you are building in-source, this is the same as CMAKE_SOURCE_DIR, otherwise
# this is the top level directory of your build tree
MESSAGE( STATUS "CMAKE_BINARY_DIR: " ${CMAKE_BINARY_DIR} )
# if you are building in-source, this is the same as CMAKE_CURRENT_SOURCE_DIR, otherwise this
# is the directory where the compiled or generated files from the current CMakeLists.txt will go to
MESSAGE( STATUS "CMAKE_CURRENT_BINARY_DIR: " ${CMAKE_CURRENT_BINARY_DIR} )
# this is the directory, from which cmake was started, i.e. the top level source directory
MESSAGE( STATUS "CMAKE_SOURCE_DIR: " ${CMAKE_SOURCE_DIR} )
# this is the directory where the currently processed CMakeLists.txt is located in
MESSAGE( STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR} )
# contains the full path to the top level directory of your build tree
MESSAGE( STATUS "PROJECT_BINARY_DIR: " ${PROJECT_BINARY_DIR} )
MESSAGE( STATUS "CMAKE_CXX_COMPILER_ID: " ${CMAKE_CXX_COMPILER_ID} )
# contains the full path to the root of your project source directory,
# i.e. to the nearest directory where CMakeLists.txt contains the PROJECT() command
MESSAGE( STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} )
# set this variable to specify a common place where CMake should put all executable files
# (instead of CMAKE_CURRENT_BINARY_DIR)
MESSAGE( STATUS "EXECUTABLE_OUTPUT_PATH: " ${EXECUTABLE_OUTPUT_PATH} )
# set this variable to specify a common place where CMake should put all libraries
# (instead of CMAKE_CURRENT_BINARY_DIR)
MESSAGE( STATUS "LIBRARY_OUTPUT_PATH: " ${LIBRARY_OUTPUT_PATH} )
# tell CMake to search first in directories listed in CMAKE_MODULE_PATH
# when you use FIND_PACKAGE() or INCLUDE()
MESSAGE( STATUS "CMAKE_MODULE_PATH: " ${CMAKE_MODULE_PATH} )
# this is the complete path of the cmake which runs currently (e.g. /usr/local/bin/cmake)
MESSAGE( STATUS "CMAKE_COMMAND: " ${CMAKE_COMMAND} )
# this is the CMake installation directory
MESSAGE( STATUS "CMAKE_ROOT: " ${CMAKE_ROOT} )
# this is the filename including the complete path of the file where this variable is used.
MESSAGE( STATUS "CMAKE_CURRENT_LIST_FILE: " ${CMAKE_CURRENT_LIST_FILE} )
# this is linenumber where the variable is used
MESSAGE( STATUS "CMAKE_CURRENT_LIST_LINE: " ${CMAKE_CURRENT_LIST_LINE} )
# this is used when searching for include files e.g. using the FIND_PATH() command.
MESSAGE( STATUS "CMAKE_INCLUDE_PATH: " ${CMAKE_INCLUDE_PATH} )
# this is used when searching for libraries e.g. using the FIND_LIBRARY() command.
MESSAGE( STATUS "CMAKE_LIBRARY_PATH: " ${CMAKE_LIBRARY_PATH} )
# the complete system name, e.g. "Linux-2.4.22", "FreeBSD-5.4-RELEASE" or "Windows 5.1"
MESSAGE( STATUS "CMAKE_SYSTEM: " ${CMAKE_SYSTEM} )
# the short system name, e.g. "Linux", "FreeBSD" or "Windows"
MESSAGE( STATUS "CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME} )
# only the version part of CMAKE_SYSTEM
MESSAGE( STATUS "CMAKE_SYSTEM_VERSION: " ${CMAKE_SYSTEM_VERSION} )
# the processor name (e.g. "Intel(R) Pentium(R) M processor 2.00GHz")
MESSAGE( STATUS "CMAKE_SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR} )
# is TRUE on all UNIX-like OS's, including Apple OS X and CygWin
MESSAGE( STATUS "UNIX: " ${UNIX} )
# is TRUE on Windows, including CygWin
MESSAGE( STATUS "WIN32: " ${WIN32} )
# is TRUE on Apple OS X
MESSAGE( STATUS "APPLE: " ${APPLE} )
# is TRUE when using the MinGW compiler in Windows
MESSAGE( STATUS "MINGW: " ${MINGW} )
# is TRUE on Windows when using the CygWin version of cmake
MESSAGE( STATUS "CYGWIN: " ${CYGWIN} )
# is TRUE on Windows when using a Borland compiler
MESSAGE( STATUS "BORLAND: " ${BORLAND} )
# Microsoft compiler
MESSAGE( STATUS "MSVC: " ${MSVC} )
MESSAGE( STATUS "MSVC_IDE: " ${MSVC_IDE} )
MESSAGE( STATUS "MSVC60: " ${MSVC60} )
MESSAGE( STATUS "MSVC70: " ${MSVC70} )
MESSAGE( STATUS "MSVC71: " ${MSVC71} )
MESSAGE( STATUS "MSVC80: " ${MSVC80} )
MESSAGE( STATUS "CMAKE_COMPILER_2005: " ${CMAKE_COMPILER_2005} )
# set this to true if you don't want to rebuild the object files if the rules have changed,
# but not the actual source files or headers (e.g. if you changed the some compiler switches)
MESSAGE( STATUS "CMAKE_SKIP_RULE_DEPENDENCY: " ${CMAKE_SKIP_RULE_DEPENDENCY} )
# since CMake 2.1 the install rule depends on all, i.e. everything will be built before installing.
# If you don't like this, set this one to true.
MESSAGE( STATUS "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY: " ${CMAKE_SKIP_INSTALL_ALL_DEPENDENCY} )
# If set, runtime paths are not added when using shared libraries. Default it is set to OFF
MESSAGE( STATUS "CMAKE_SKIP_RPATH: " ${CMAKE_SKIP_RPATH} )
# set this to true if you are using makefiles and want to see the full compile and link
# commands instead of only the shortened ones
MESSAGE( STATUS "CMAKE_VERBOSE_MAKEFILE: " ${CMAKE_VERBOSE_MAKEFILE} )
# this will cause CMake to not put in the rules that re-run CMake. This might be useful if
# you want to use the generated build files on another machine.
MESSAGE( STATUS "CMAKE_SUPPRESS_REGENERATION: " ${CMAKE_SUPPRESS_REGENERATION} )
# A simple way to get switches to the compiler is to use ADD_DEFINITIONS().
# But there are also two variables exactly for this purpose:
# the compiler flags for compiling C sources
MESSAGE( STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS} )
# the compiler flags for compiling C++ sources
MESSAGE( STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS} )
# Choose the type of build. Example: SET(CMAKE_BUILD_TYPE Debug)
MESSAGE( STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} )
# if this is set to ON, then all libraries are built as shared libraries by default.
MESSAGE( STATUS "BUILD_SHARED_LIBS: " ${BUILD_SHARED_LIBS} )
# the compiler used for C files
MESSAGE( STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER} )
# the compiler used for C++ files
MESSAGE( STATUS "CMAKE_CXX_COMPILER: " ${CMAKE_CXX_COMPILER} )
# if the compiler is a variant of gcc, this should be set to 1
MESSAGE( STATUS "CMAKE_COMPILER_IS_GNUCC: " ${CMAKE_COMPILER_IS_GNUCC} )
# if the compiler is a variant of g++, this should be set to 1
MESSAGE( STATUS "CMAKE_COMPILER_IS_GNUCXX : " ${CMAKE_COMPILER_IS_GNUCXX} )
# the tools for creating libraries
MESSAGE( STATUS "CMAKE_AR: " ${CMAKE_AR} )
MESSAGE( STATUS "CMAKE_RANLIB: " ${CMAKE_RANLIB} )
#
#MESSAGE( STATUS ": " ${} )
# ------------------------- End of Generic CMake Variable Logging ------------------
-37
View File
@@ -1,37 +0,0 @@
# add a target to generate API documentation with Doxygen
find_package(Doxygen)
if(DOXYGEN_FOUND)
SET(OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/documentation/doxygen")
FILE(MAKE_DIRECTORY "${OUTPUT_DIR}")
FILE(TO_NATIVE_PATH ${OUTPUT_DIR} OUTPUT_DIR)
SET(OUTPUT_DIR \"${OUTPUT_DIR}\")
SET(INPUTS "${CMAKE_CURRENT_SOURCE_DIR}/code" "${CMAKE_CURRENT_SOURCE_DIR}/freespace2" "${CMAKE_CURRENT_SOURCE_DIR}/fred2" "${CMAKE_CURRENT_SOURCE_DIR}/wxfred2" "${CMAKE_CURRENT_SOURCE_DIR}/qtfred")
SET(INPUT_DIRS)
FOREACH(DIR IN LISTS INPUTS)
FILE(TO_NATIVE_PATH ${DIR} native_dir)
LIST(APPEND INPUT_DIRS \"${native_dir}\")
ENDFOREACH(DIR)
STRING(REPLACE ";" " " INPUT_DIRS "${INPUT_DIRS}")
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/fs2open.Doxyfile.in
${CMAKE_CURRENT_BINARY_DIR}/fs2open.Doxyfile
@ONLY)
add_custom_target(doxygen
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/fs2open.Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM
)
set_target_properties(doxygen
PROPERTIES
FOLDER "Documentation"
EXCLUDE_FROM_ALL ON
EXCLUDE_FROM_DEFAULT_BUILD ON
)
endif(DOXYGEN_FOUND)
-124
View File
@@ -1,124 +0,0 @@
set(_EMBEDD_FILE_BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
function(target_embed_files _target)
set(options)
set(oneValueArgs RELATIVE_TO PATH_TYPE_PREFIX)
set(multiValueArgs FILES)
cmake_parse_arguments(EMBED "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if (NOT DEFINED EMBED_RELATIVE_TO)
set(EMBED_RELATIVE_TO "${CMAKE_CURRENT_SOURCE_DIR}")
endif()
if (NOT IS_ABSOLUTE "${EMBED_RELATIVE_TO}")
get_filename_component(EMBED_RELATIVE_TO "${EMBED_RELATIVE_TO}" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
endif()
foreach (file ${EMBED_FILES})
get_filename_component(_absoluteFile "${file}" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
file(RELATIVE_PATH _pathType "${EMBED_RELATIVE_TO}" "${_absoluteFile}")
get_filename_component(_pathType ${_pathType} DIRECTORY)
if (DEFINED EMBED_PATH_TYPE_PREFIX)
if (_pathType)
set(_pathType "${EMBED_PATH_TYPE_PREFIX}/${_pathType}")
else()
# Avoid trailing / when we are in the same directory
set(_pathType "${EMBED_PATH_TYPE_PREFIX}")
endif()
endif()
if (NOT _pathType)
# If it is still empty then we need to work around yet another annoying CMake behavior where it ignores
# "empty" property strings
set(_pathType ".")
endif()
set_property(TARGET ${_target} APPEND PROPERTY EMBEDDED_FILES "${_absoluteFile}")
set_property(TARGET ${_target} APPEND PROPERTY EMBEDDED_FILES_BASE_DIR "${EMBED_RELATIVE_TO}")
set_property(TARGET ${_target} APPEND PROPERTY EMBEDDED_FILES_PATH_TYPE "${_pathType}")
endforeach()
endfunction()
function(handle_embedded_files _target)
get_target_property(_filesToEmbed ${_target} EMBEDDED_FILES)
get_target_property(_baseDirs ${_target} EMBEDDED_FILES_BASE_DIR)
get_target_property(_pathTypes ${_target} EMBEDDED_FILES_PATH_TYPE)
SET(DEF_OUT_FILES)
set(INCLUDE_LIST)
set(ARRAY_ELEMENTS)
list(LENGTH _filesToEmbed _numFiles)
FOREACH(i RANGE ${_numFiles})
# Why must CMake always do the unexpected thing? The foreach variant includes the last index as opposed to every
# other sensible language which does not include it...
if (i GREATER_EQUAL _numFiles)
break()
endif()
list(GET _filesToEmbed ${i} _filePath)
list(GET _baseDirs ${i} _baseDir)
list(GET _pathTypes ${i} _pathType)
if (_pathType STREQUAL ".")
# Handle the workaround we had to do for empty path types
set(_pathType "")
endif()
file(RELATIVE_PATH _relativeFilePath "${_baseDir}" "${_filePath}")
SET(_outputBasePath "${CMAKE_CURRENT_BINARY_DIR}/embedded_files/${_relativeFilePath}")
# For some reason this is needed...
get_filename_component(_outputDirectory ${_outputBasePath} DIRECTORY)
file(MAKE_DIRECTORY ${_outputDirectory})
# Retrieve the path type name from the relative path
file(TO_NATIVE_PATH "${_pathType}" _pathType)
if (MINGW)
# There is a bug in CMake where it thinks MinGW uses forward slashes for paths but we need backslashes for Windows builds
string(REPLACE "/" "\\" _pathType "${_pathType}")
endif()
# Properly escape back slashes in strings
string(REPLACE "\\" "\\\\" _pathType "${_pathType}")
get_filename_component(FILE_NAME "${_relativeFilePath}" NAME)
string(MAKE_C_IDENTIFIER "${_relativeFilePath}" FIELD_NAME)
set(HEADER_FILE "${_outputBasePath}.h")
set(SOURCE_FILE "${_outputBasePath}.cpp")
set(ALL_OUTPUTS "${HEADER_FILE}" "${SOURCE_FILE}")
set(FIELD_NAME "Embedded_${FIELD_NAME}")
set(INCLUDE_LIST "${INCLUDE_LIST}\n#include \"${HEADER_FILE}\"")
set(ARRAY_ELEMENTS "${ARRAY_ELEMENTS}\n\t{ \"${_pathType}\", \"${FILE_NAME}\" , ${FIELD_NAME} , ${FIELD_NAME}_size },")
IF(CMAKE_CROSSCOMPILING)
SET(EMBEDFILE_PATH "EMBEDFILE-NOTFOUND" CACHE FILEPATH "Required for a cross compiling build, point to an embedfile of a cmake build for the host OS")
IF(EMBEDFILE_PATH STREQUAL "EMBEDFILE-NOTFOUND")
#This could, possibly, be configured to compile an embedfile using host compilation automatically, but that seems to be a challenge.
message(FATAL_ERROR "A manual embedfile path must be configured for cross compilation. Set EMBEDFILE_PATH to the location of an embedfile executable, found in the build directories for the host OS.")
ENDIF()
ELSE(CMAKE_CROSSCOMPILING)
SET(EMBEDFILE_PATH "embedfile")
ENDIF(CMAKE_CROSSCOMPILING)
add_custom_command(
OUTPUT ${ALL_OUTPUTS}
COMMAND ${EMBEDFILE_PATH} "${_filePath}" "${_outputBasePath}" "${FIELD_NAME}"
MAIN_DEPENDENCY "${_filePath}"
COMMENT "Generating string file for ${_filePath}"
)
list(APPEND DEF_OUT_FILES ${ALL_OUTPUTS})
ENDFOREACH()
configure_file("${_EMBEDD_FILE_BASE_DIR}/embedded_files.inc.in" "${CMAKE_CURRENT_BINARY_DIR}/embedded_files/embedded_files.inc")
target_include_directories(${_target} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/embedded_files")
target_sources(${_target} PRIVATE ${DEF_OUT_FILES})
source_group("Generated Files\\Embedded Files" FILES ${DEF_OUT_FILES})
endfunction()
-7
View File
@@ -1,7 +0,0 @@
@INCLUDE_LIST@
def_file Default_files[] =
{
@ARRAY_ELEMENTS@
};
-22
View File
@@ -1,22 +0,0 @@
include(CheckIncludeFile)
add_library(speech INTERFACE)
if (WIN32)
CHECK_INCLUDE_FILE_CXX("sapi.h" HAVE_SAPI_H)
if (NOT HAVE_SAPI_H)
message(SEND_ERROR "sapi.h could not be found on your platform. Please disable speech support.")
endif()
elseif(APPLE)
# it should just work
elseif(ANDROID)
# connects to a java TTS manager via SDL activity class
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
# uses speech-dispatcher with dlopen
else()
message(SEND_ERROR "Text to Speech is not supported on this platform!")
endif()
target_compile_definitions(speech INTERFACE -DFS2_SPEECH)
-9
View File
@@ -1,9 +0,0 @@
#ifndef __FREDRC_H
#define __FREDRC_H
#define ABOUT_LINE_1 "FRED2_OPEN - FreeSpace Editor, Version @FSO_PRODUCT_VERSION_STRING@ OpenGL"
#define MAINFRAME_CONTENTS "FRED2_OPEN @FSO_PRODUCT_VERSION_STRING@ - FreeSpace2 Mission Editor\nUntitled\nFRED2\nFreeSpace2 Missions (*.fs2)\n.fs2\nFreeSpace2Mission\nFreeSpace2 Mission"
#endif // __FREDRC_H
-7
View File
@@ -1,7 +0,0 @@
include(Cxx11)
include(platformChecks)
CONFIGURE_FILE(${CMAKE_CURRENT_LIST_DIR}/project.h.in ${GENERATED_SOURCE_DIR}/project.h)
CONFIGURE_FILE(${CMAKE_CURRENT_LIST_DIR}/fred_rc.h.in ${GENERATED_SOURCE_DIR}/fred_rc.h)
-43
View File
@@ -1,43 +0,0 @@
SET(BINARY_DESTINATION ".")
SET(LIBRAY_DESTINATION "${BINARY_DESTINATION}")
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(IS_64BIT TRUE)
else()
set(IS_64BIT FALSE)
endif()
set(IS_ARM64 FALSE)
set(IS_ARMV7A FALSE)
if (NOT "${CMAKE_GENERATOR_PLATFORM}" STREQUAL "") # needed to cover Visual Studio generator
if(CMAKE_GENERATOR_PLATFORM MATCHES "^(aarch64|arm64|ARM64)")
set(IS_ARM64 TRUE)
elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^(armv7)")
set(IS_ARMV7A TRUE)
endif()
else()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|ARM64)")
set(IS_ARM64 TRUE)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv7)")
set(IS_ARMV7A TRUE)
endif()
endif()
set(IS_RISCV FALSE)
if (NOT "${CMAKE_GENERATOR_PLATFORM}" STREQUAL "") # needed to cover Visual Studio generator
if(CMAKE_GENERATOR_PLATFORM MATCHES "^(riscv64|RISCV64|riscv32|RISCV32)")
set(IS_RISCV TRUE)
endif()
else()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(riscv64|RISCV64|riscv32|RISCV32)")
set(IS_RISCV TRUE)
endif()
endif()
set(IS_X86 FALSE)
if (NOT IS_ARM64 AND NOT IS_RISCV AND NOT IS_ARMV7A)
set(IS_X86 TRUE)
endif()
-8
View File
@@ -1,8 +0,0 @@
SET(CODE_HEADERS ${CMAKE_SOURCE_DIR}/code)
SET(FREESPACE_HEADERS ${CMAKE_SOURCE_DIR}/freespace2)
SET(FRED_HEADERS ${CMAKE_SOURCE_DIR}/fred2)
SET(WXFRED_HEADERS ${CMAKE_SOURCE_DIR}/wxfred2)
@@ -1,14 +0,0 @@
cd @USERFILE_WORKING_DIRECTORY@
@USERFILE_ENV_COMMANDS@
IF NOT [x%1]==[x--debugger] GOTO SkipDebuggingMess
ECHO Need to ditch the debugger!
SHIFT /1
%1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO EOF
:SkipDebuggingMess
%*
:EOF
@@ -1,18 +0,0 @@
#!/bin/sh
bindir=$(pwd)
cd @USERFILE_WORKING_DIRECTORY@
@USERFILE_ENV_COMMANDS@
if test "x$1" = "x--debugger"; then
shift
cmd="$1"
shift
if test "x@LAUNCHERS_GOT_GDB@" = "xYES"; then
echo "r $@" > $bindir/gdbscript
echo "bt" >> $bindir/gdbscript
@GDB_COMMAND@ -batch -command=$bindir/gdbscript @LAUNCHERS_GDB_ARG@ $cmd
else
$cmd $@
fi
else
$@
fi
@@ -1 +0,0 @@
set @_arg@
@@ -1 +0,0 @@
export @_arg@
@@ -1,28 +0,0 @@
<Configuration
Name="@USERFILE_CONFIGNAME@|@USERFILE_PLATFORM@"
>
<DebugSettings
Command="${USERFILE_@USERFILE_CONFIGNAME@_COMMAND}"
WorkingDirectory="@USERFILE_WORKING_DIRECTORY@"
CommandArguments="@USERFILE_COMMAND_ARGUMENTS@"
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="@USERFILE_REMOTE_MACHINE@"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment="@USERFILE_ENVIRONMENT@"
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
@@ -1,7 +0,0 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='@USERFILE_CONFIGNAME@|@USERFILE_PLATFORM@'">
<LocalDebuggerEnvironment>@USERFILE_ENVIRONMENT@</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerCommand>$(TargetPath)</LocalDebuggerCommand>
<LocalDebuggerCommandArguments>@USERFILE_COMMAND_ARGUMENTS@</LocalDebuggerCommandArguments>
<LocalDebuggerWorkingDirectory>@NATIVE_WORKING_DIRECTORY@</LocalDebuggerWorkingDirectory>
</PropertyGroup>
@@ -1,8 +0,0 @@
cd @USERFILE_WORKING_DIRECTORY@
@USERFILE_ENV_COMMANDS@
if [%1]==[--debugger] (
SHIFT
)
"@USERFILE_COMMAND@" @LAUNCHERSCRIPT_COMMAND_ARGUMENTS@
pause
@@ -1,16 +0,0 @@
#!/bin/sh
bindir=$(pwd)
cd @USERFILE_WORKING_DIRECTORY@
@USERFILE_ENV_COMMANDS@
if test "x$1" = "x--debugger"; then
shift
if test "x@LAUNCHERS_GOT_GDB@" = "xYES"; then
echo "r @LAUNCHERSCRIPT_COMMAND_ARGUMENTS@" > $bindir/gdbscript
echo "bt" >> $bindir/gdbscript
@GDB_COMMAND@ -batch -command=$bindir/gdbscript @LAUNCHERS_GDB_ARG@ @USERFILE_COMMAND@
else
"@USERFILE_COMMAND@" @LAUNCHERSCRIPT_COMMAND_ARGUMENTS@
fi
else
"@USERFILE_COMMAND@" @LAUNCHERSCRIPT_COMMAND_ARGUMENTS@
fi
-10
View File
@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioUserFile
ProjectType="Visual C++"
Version="@USERFILE_VC_VERSION@"
ShowAllFiles="false"
>
<Configurations>
@USERFILE_CONFIGSECTIONS@
</Configurations>
</VisualStudioUserFile>
-4
View File
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
@USERFILE_CONFIGSECTIONS@
</Project>
-14
View File
@@ -1,14 +0,0 @@
SET(CPACK_PACKAGE_VERSION_MAJOR ${FSO_VERSION_MAJOR})
SET(CPACK_PACKAGE_VERSION_MINOR ${FSO_VERSION_MINOR})
SET(CPACK_PACKAGE_VERSION_PATCH ${FSO_VERSION_BUILD})
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${FSO_PROJECT_DESCRIPTION})
IF(WIN32)
SET(CPACK_NSIS_MUI_ICON ${FSO_INSTALLER_ICON})
set(CPACK_NSIS_MENU_LINKS "http://www.hard-light.net/" "FreeSpace Community")
ENDIF(WIN32)
include(CPack)
-40
View File
@@ -1,40 +0,0 @@
MESSAGE(STATUS "Doing Mac OSX specific things...")
target_compile_definitions(platform INTERFACE APPLE_APP)
SET(EXE_GUI_TYPE MACOSX_BUNDLE)
FIND_LIBRARY(COCOA_LIBRARY Cocoa)
if (NOT COCOA_LIBRARY)
message(FATAL_ERROR "Couldn't find Cocoa!")
endif()
target_link_libraries(platform INTERFACE ${COCOA_LIBRARY})
SET(CMAKE_SKIP_RPATH FALSE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
SET(CMAKE_INSTALL_RPATH @loader_path/../Frameworks/)
# Set the path where library dependencies are copied to
SET(LIBRAY_DESTINATION "../Frameworks")
set(PLATFORM_MAC TRUE CACHE INTERNAL "" FORCE)
# Maybe override arm64 setting if we are compiling for different architecture
# If not specified, or if it's a universal build, then this should do nothing
if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
set(IS_ARM64 TRUE)
elseif(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
set(IS_ARM64 FALSE)
endif()
# Generate and don't strip debug symbols
# These settings don't seem to generate debug symbols for code and Freespace2
# so those settings are set manually in code and Freespace2's CMakeLists.txt files
set(CMAKE_XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS "YES")
set(CMAKE_XCODE_ATTRIBUTE_COPY_PHASE_STRIP "NO")
set(CMAKE_XCODE_ATTRIBUTE_STRIP_INSTALLED_PRODUCT "NO")
set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "NO")
# Generate .dSYM file
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
-10
View File
@@ -1,10 +0,0 @@
target_compile_definitions(platform INTERFACE SCP_BSD)
find_library(EXECINFO_LIB execinfo)
if (NOT EXECINFO_LIB)
message(FATAL_ERROR "Couldn't find libexecinfo! Please install it and rerun the configuration.")
else()
target_link_libraries(platform INTERFACE "${EXECINFO_LIB}")
endif()
-18
View File
@@ -1,18 +0,0 @@
target_compile_definitions(platform INTERFACE SCP_SOLARIS)
find_library(SOCKET_LIB socket)
if (NOT SOCKET_LIB)
message(FATAL_ERROR "Couldn't find libsocket! Please install it and rerun the configuration.")
else()
target_link_libraries(platform INTERFACE "${SOCKET_LIB}")
endif()
find_library(NSL_LIB nsl)
if (NOT NSL_LIB)
message(FATAL_ERROR "Couldn't find libnsl! Please install it and rerun the configuration.")
else()
target_link_libraries(platform INTERFACE "${NSL_LIB}")
endif()
-13
View File
@@ -1,13 +0,0 @@
INCLUDE(util)
MESSAGE(STATUS "Configuring UNIX specific things and stuff...")
target_compile_definitions(platform INTERFACE SCP_UNIX USE_OPENAL _REENTRANT)
# Set RPATH
set(CMAKE_SKIP_BUILD_RPATH TRUE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "\$ORIGIN")
set(PLATFORM_UNIX TRUE CACHE INTERNAL "" FORCE)
-28
View File
@@ -1,28 +0,0 @@
MESSAGE(STATUS "Configuring Windows specific things and stuff...")
SET(WIN32_LIBS
comctl32
msacm32
odbc32
odbccp32
vfw32
winmm
ws2_32
psapi
shlwapi
)
IF (MINGW)
SET(WIN32_LIBS ${WIN32_LIBS} mingw32)
ENDIF (MINGW)
target_link_libraries(platform INTERFACE ${WIN32_LIBS})
target_compile_definitions(platform INTERFACE WIN32 USE_OPENAL _WINDOWS)
# Specify minimum Windows version for the headers (currently this is Vista)
target_compile_definitions(platform INTERFACE NTDDI_VERSION=0x06000000 _WIN32_WINNT=0x0600)
SET(EXE_GUI_TYPE WIN32)
set(PLATFORM_WINDOWS TRUE CACHE INTERNAL "" FORCE)
-45
View File
@@ -1,45 +0,0 @@
include(CheckFunctionExists)
include(CheckIncludeFiles)
include(CheckIncludeFile)
include(CheckIncludeFileCXX)
include(CheckLibraryExists)
include(CheckPrototypeDefinition)
include(CheckStructHasMember)
include(CheckSymbolExists)
include(CheckCXXSymbolExists)
include(CheckTypeSize)
CHECK_INCLUDE_FILE("execinfo.h" SCP_HAVE_EXECINFO_H)
CHECK_INCLUDE_FILE_CXX("cxxabi.h" SCP_HAVE_CXXAPI_H)
CHECK_TYPE_SIZE("max_align_t" MAX_ALIGN_T)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
set(CMAKE_REQUIRED_FLAGS "-std=c++11") # required for g++ <= 5
endif()
set(CMAKE_EXTRA_INCLUDE_FILES "cstddef")
CHECK_TYPE_SIZE("std::max_align_t" STD_MAX_ALIGN_T LANGUAGE CXX)
set(CMAKE_EXTRA_INCLUDE_FILES)
CHECK_TYPE_SIZE("char32_t" CHAR32_T LANGUAGE CXX)
CHECK_TYPE_SIZE("U'b'" UNICODE_CHAR_LITERAL LANGUAGE CXX)
set(CMAKE_REQUIRED_FLAGS)
CHECK_FUNCTION_EXISTS(strcasecmp SCP_HAVE_STRCASECMP)
CHECK_FUNCTION_EXISTS(strncasecmp SCP_HAVE_STRNCASECMP)
CHECK_FUNCTION_EXISTS(_stricmp SCP_HAVE__STRICMP)
CHECK_FUNCTION_EXISTS(_strnicmp SCP_HAVE__STRNICMP)
CHECK_FUNCTION_EXISTS(strlwr SCP_HAVE_STRLWR)
CHECK_INCLUDE_FILE("strings.h" SCP_HAVE_STRINGS_H)
check_symbol_exists(snprintf "stdio.h" SCP_HAVE_SNPRINTF)
set(PLATFORM_CHECK_HEADER "${GENERATED_SOURCE_DIR}/platformChecks.h")
CONFIGURE_FILE(${CMAKE_CURRENT_LIST_DIR}/platformChecks.h.in "${PLATFORM_CHECK_HEADER}")
-30
View File
@@ -1,30 +0,0 @@
#ifndef __PLATFORM_CHECKS_H__
#define __PLATFORM_CHECKS_H__
#pragma once
#cmakedefine SCP_HAVE_EXECINFO_H
#cmakedefine SCP_HAVE_CXXAPI_H
#cmakedefine SCP_HAVE_MAX_ALIGN_T
#cmakedefine SCP_HAVE_STD_MAX_ALIGN_T
#cmakedefine01 IS_64BIT
#cmakedefine01 IS_ARM64
#cmakedefine01 IS_RISCV
#cmakedefine01 SCP_HAVE_STRCASECMP
#cmakedefine01 SCP_HAVE_STRNCASECMP
#cmakedefine01 SCP_HAVE__STRICMP
#cmakedefine01 SCP_HAVE__STRNICMP
#cmakedefine01 SCP_HAVE_STRLWR
#cmakedefine01 SCP_HAVE_STRINGS_H
#cmakedefine01 HAVE_CHAR32_T
#cmakedefine01 HAVE_UNICODE_CHAR_LITERAL
#cmakedefine01 SCP_HAVE_SNPRINTF
#cmakedefine01 SCP_HAVE__SNPRINTF
#endif // __PLATFORM_CHECKS_H__
-29
View File
@@ -1,29 +0,0 @@
add_library(platform INTERFACE)
IF(FSO_CMAKE_DEBUG)
INCLUDE(debug-vars)
ENDIF(FSO_CMAKE_DEBUG)
set(PLATFORM_WINDOWS FALSE CACHE INTERNAL "" FORCE)
set(PLATFORM_UNIX FALSE CACHE INTERNAL "" FORCE)
set(PLATFORM_LINUX FALSE CACHE INTERNAL "" FORCE)
set(PLATFORM_MAC FALSE CACHE INTERNAL "" FORCE)
IF(WIN32)
INCLUDE(platform-win32)
ELSEIF(UNIX)
INCLUDE(platform-unix)
IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
INCLUDE(platform-freebsd)
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
INCLUDE(platform-solaris)
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
include(platform-darwin)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(PLATFORM_LINUX TRUE CACHE INTERNAL "" FORCE)
ENDIF()
ELSE(WIN32)
MESSAGE(STATUS "This platform is not supported, good luck!")
ENDIF(WIN32)
-17
View File
@@ -1,17 +0,0 @@
#ifndef __PROJECT_H
#define __PROJECT_H
#define FS_VERSION_MAJOR @FSO_VERSION_MAJOR@
#define FS_VERSION_MINOR @FSO_VERSION_MINOR@
#define FS_VERSION_BUILD @FSO_VERSION_BUILD@
#define FS_VERSION_REVIS @FSO_VERSION_REVISION@
#define FS_VERSION_REVIS_STR "@FSO_VERSION_REVISION_STR@"
#define FS_VERSION_HAS_REVIS @FSO_VERSION_HAS_REVISION@
#define FS_VERSION_FULL "@FSO_FULL_VERSION_STRING@"
#define FS_PRODUCT_VERSION "@FSO_PRODUCT_VERSION_STRING@"
#endif // __PROJECT_H
-18
View File
@@ -1,18 +0,0 @@
MESSAGE(STATUS "Doing configuration specific to Apple Clang...")
# TODO: Actually add Mac specific flags here...
# Suppress specific warning
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fsigned-char -Wno-unknown-pragmas")
# Omit "conversion from string literal to 'char *' is deprecated" warnings.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-write-strings")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-char-subscripts")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wno-unused-variable -Wno-unused-parameter")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wshadow")
-186
View File
@@ -1,186 +0,0 @@
# Clang
include(EnableExtraCompilerWarnings)
include(CheckCXXCompilerFlag)
MESSAGE(STATUS "Doing configuration specific to clang...")
option(CLANG_ENABLE_LEAK_CHECK "Enable -fsanitize=leak" OFF)
option(CLANG_ENABLE_ADDRESS_SANITIZER "Enable -fsanitize=address" OFF)
option(CLANG_USE_LIBCXX "Use libc++" OFF)
# These are the default values
set(C_BASE_FLAGS "-pipe")
set(CXX_BASE_FLAGS "-pipe")
if(IS_X86)
if(FORCED_NATIVE_SIMD_INSTRUCTIONS)
set(CLANG_EXTENSIONS "-march=native")
elseif (FSO_INSTRUCTION_SET STREQUAL "")
set(CLANG_EXTENSIONS "-march=x86-64")
elseif (FSO_INSTRUCTION_SET STREQUAL "SSE")
set(CLANG_EXTENSIONS "-march=x86-64 -msse -mfpmath=sse")
elseif (FSO_INSTRUCTION_SET STREQUAL "SSE2")
set(CLANG_EXTENSIONS "-march=x86-64 -msse -msse2 -mfpmath=sse")
elseif (FSO_INSTRUCTION_SET STREQUAL "AVX")
set(CLANG_EXTENSIONS "-march=x86-64-v2 -msse -msse2 -mavx -mfpmath=sse")
elseif (FSO_INSTRUCTION_SET STREQUAL "AVX2")
set(CLANG_EXTENSIONS "-march=x86-64-v3 -msse -msse2 -mavx -mavx2 -mfpmath=sse")
else ()
message( FATAL_ERROR "Unknown instruction set encountered for clang. Update toolchain-clang.cmake!" )
endif()
set(C_BASE_FLAGS "${C_BASE_FLAGS} ${CLANG_EXTENSIONS}")
set(CXX_BASE_FLAGS "${CXX_BASE_FLAGS} ${CLANG_EXTENSIONS}")
elseif(IS_ARM)
if(FORCED_NATIVE_SIMD_INSTRUCTIONS)
set(C_BASE_FLAGS "${C_BASE_FLAGS} -march=native")
set(CXX_BASE_FLAGS "${CXX_BASE_FLAGS} -march=native")
endif ()
elseif(IS_RISCV)
# Default C/CXX_BASE_FLAGS are fine for RISC-V
endif()
if (USE_STATIC_LIBCXX)
set(CXX_BASE_FLAGS "${CXX_BASE_FLAGS} -static-libstdc++ -Qunused-arguments")
endif()
# For C and C++, the values can be overwritten independently
if(DEFINED ENV{CXXFLAGS})
set(CXX_BASE_FLAGS $ENV{CXXFLAGS})
endif()
if(DEFINED ENV{CFLAGS})
set(C_BASE_FLAGS $ENV{CFLAGS})
endif()
if (CLANG_USE_LIBCXX)
set(CXX_BASE_FLAGS "${CXX_BASE_FLAGS} -stdlib=libc++")
target_link_libraries(compiler INTERFACE "c++" "c++abi")
endif()
# Initialize with an empty string to make sure we always get a clean start
set(COMPILER_FLAGS "")
# This is a slight hack since our flag setup is a bit more complicated
_enable_extra_compiler_warnings_flags()
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${_flags}")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsigned-char -Wno-unknown-pragmas")
if ("${CMAKE_GENERATOR}" STREQUAL "Ninja")
# Force color diagnostics for Ninja generator
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fdiagnostics-color")
endif()
# Start with an empty list
set(SANITIZE_FLAGS)
if(CLANG_ENABLE_ADDRESS_SANITIZER)
set(CMAKE_REQUIRED_FLAGS "-fsanitize=address")
CHECK_C_COMPILER_FLAG("-fsanitize=address" SUPPORTS_SANITIZE_ADDRESS)
if (SUPPORTS_SANITIZE_ADDRESS)
set(SANITIZE_FLAGS ${SANITIZE_FLAGS} "address")
endif()
endif()
if (CLANG_ENABLE_LEAK_CHECK)
check_linker_flag("-fsanitize=leak" SUPPORTS_FSANITIZE_LEAK)
if (SUPPORTS_FSANITIZE_LEAK)
set(SANITIZE_FLAGS ${SANITIZE_FLAGS} "leak")
endif()
endif()
string(REPLACE ";" "," SANITIZE_FLAGS "${SANITIZE_FLAGS}")
if (NOT "${SANITIZE_FLAGS}" STREQUAL "")
set(SANITIZE_FLAGS "-fsanitize=${SANITIZE_FLAGS}")
endif()
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${SANITIZE_FLAGS}")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wformat-security")
# Dear Clang, please tell us if a function does not return a value since that part of the standard is stupid!
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wreturn-type")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-char-subscripts")
check_cxx_compiler_flag(-Wshift-negative-value SUPPORTS_SHIFT_NEGATIVE_VALUE)
if(SUPPORTS_SHIFT_NEGATIVE_VALUE)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-shift-negative-value")
endif()
# Check if there is a user-set optimisation flag
string(REGEX MATCH "-O[a-zA-Z|0-9]+" CXX_OPT_FLAG ${CXX_BASE_FLAGS})
string(REGEX MATCH "-O[a-zA-Z|0-9]+" C_OPT_FLAG ${C_BASE_FLAGS})
# If no user-set opt flag, set -O3 and -Og
if ("${CXX_OPT_FLAG}" STREQUAL "")
set(CXX_OPT_FLAG_RELEASE "-O3")
set(CXX_OPT_FLAG_DEBUG "-O0")
else()
set(CXX_OPT_FLAG_RELEASE "${CXX_OPT_FLAG}")
set(CXX_OPT_FLAG_DEBUG "${CXX_OPT_FLAG}")
endif()
if ("${C_OPT_FLAG}" STREQUAL "")
set(C_OPT_FLAG_RELEASE "-O3")
set(C_OPT_FLAG_DEBUG "-O0")
else()
set(C_OPT_FLAG_RELEASE "${C_OPT_FLAG}")
set(C_OPT_FLAG_DEBUG "${C_OPT_FLAG}")
endif()
set(CXX_FLAGS_RELEASE "${CXX_OPT_FLAG_RELEASE} -Wno-unused-variable -Wno-unused-parameter")
set(C_FLAGS_RELEASE "${C_OPT_FLAG_RELEASE} -Wno-unused-variable -Wno-unused-parameter")
# Valgrind (as used by CI) does not understand the DWARF5 debug info that clang
# emits by default, so force DWARF4 to keep memcheck able to symbolize the binary.
set(CXX_FLAGS_DEBUG "${CXX_OPT_FLAG_DEBUG} -g -gdwarf-4 -Wshadow")
set(C_FLAGS_DEBUG "${C_OPT_FLAG_DEBUG} -g -gdwarf-4 -Wshadow")
# Always use the base flags and add our compiler flags at the back
set(CMAKE_CXX_FLAGS "${CXX_BASE_FLAGS} ${COMPILER_FLAGS}")
set(CMAKE_C_FLAGS "${C_BASE_FLAGS} ${COMPILER_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE ${CXX_FLAGS_RELEASE})
set(CMAKE_C_FLAGS_RELEASE ${C_FLAGS_RELEASE})
set(CMAKE_CXX_FLAGS_DEBUG ${CXX_FLAGS_DEBUG})
set(CMAKE_C_FLAGS_DEBUG ${C_FLAGS_DEBUG})
set(CMAKE_EXE_LINKER_FLAGS "")
if(DEFINED ENV{LDFLAGS})
set(CMAKE_EXE_LINKER_FLAGS $ENV{LDFLAGS})
endif()
if (CLANG_USE_LIBCXX)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lc++abi")
endif()
if (SANITIZE_FLAGS)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SANITIZE_FLAGS}")
endif()
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-g -rdynamic")
if (FSO_FATAL_WARNINGS)
# Make warnings fatal if the right variable is set
target_compile_options(compiler INTERFACE "-Werror")
endif()
# Always define this to make sure that the fixed-width format macros are available
target_compile_definitions(compiler INTERFACE __STDC_FORMAT_MACROS)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR MINGW)
# GNU ar: Create thin archive files.
# Requires binutils-2.19 or later.
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qcTP <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> qTP <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcTP <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> qTP <TARGET> <LINK_FLAGS> <OBJECTS>")
endif()
target_link_libraries(compiler INTERFACE m)
-241
View File
@@ -1,241 +0,0 @@
include(EnableExtraCompilerWarnings)
include(CheckCCompilerFlag)
include(util)
MESSAGE(STATUS "Doing configuration specific to gcc...")
option(GCC_ENABLE_LEAK_CHECK "Enable -fsanitize=leak" OFF)
option(GCC_ENABLE_ADDRESS_SANITIZER "Enable -fsanitize=address" OFF)
option(GCC_ENABLE_SANITIZE_UNDEFINED "Enable -fsanitize=undefined" OFF)
option(GCC_USE_GOLD "Use the gold linker instead of the standard linker" OFF)
option(GCC_GENERATE_GDB_INDEX "Adds linker option to generate the gdb index for debug builds" OFF)
# These are the default values
set(C_BASE_FLAGS "-pipe")
set(CXX_BASE_FLAGS "-pipe")
if(IS_X86)
if(FORCED_NATIVE_SIMD_INSTRUCTIONS)
set(GCC_EXTENSIONS "-march=native")
elseif (FSO_INSTRUCTION_SET STREQUAL "")
set(GCC_EXTENSIONS "-march=x86-64")
elseif (FSO_INSTRUCTION_SET STREQUAL "SSE")
set(GCC_EXTENSIONS "-march=x86-64 -msse -mfpmath=sse")
elseif (FSO_INSTRUCTION_SET STREQUAL "SSE2")
set(GCC_EXTENSIONS "-march=x86-64 -msse -msse2 -mfpmath=sse")
elseif (FSO_INSTRUCTION_SET STREQUAL "AVX")
set(GCC_EXTENSIONS "-march=x86-64-v2 -msse -msse2 -mavx -mfpmath=sse")
elseif (FSO_INSTRUCTION_SET STREQUAL "AVX2")
set(GCC_EXTENSIONS "-march=x86-64-v3 -msse -msse2 -mavx -mavx2 -mfpmath=sse")
else ()
message( FATAL_ERROR "Unknown instruction set encountered for GCC. Update toolchain-gcc.cmake!" )
endif()
set(C_BASE_FLAGS "${C_BASE_FLAGS} ${GCC_EXTENSIONS}")
set(CXX_BASE_FLAGS "${CXX_BASE_FLAGS} ${GCC_EXTENSIONS}")
if (IS_64BIT)
set(C_BASE_FLAGS "${C_BASE_FLAGS} -m64")
set(CXX_BASE_FLAGS "${CXX_BASE_FLAGS} -m64")
endif()
elseif(IS_ARM)
if(FORCED_NATIVE_SIMD_INSTRUCTIONS)
set(C_BASE_FLAGS "${C_BASE_FLAGS} -march=native")
set(CXX_BASE_FLAGS "${CXX_BASE_FLAGS} -march=native")
endif ()
elseif(IS_RISCV)
# You do not need to pass a -march, passing nothing will make gcc to choose itself.
# If you want a specific set of instructions like vectors, set -march in CFLAGS and CXXFLAGS env variables
# Example for vectors: -march=rv64gcv
# https://gcc.gnu.org/onlinedocs/gcc/RISC-V-Options.html
# As such, default C/CXX_BASE_FLAGS are sufficient.
endif()
if (USE_STATIC_LIBCXX)
set(CXX_BASE_FLAGS "${CXX_BASE_FLAGS} -static-libstdc++")
endif()
# For C and C++, the values can be overwritten independently
if(DEFINED ENV{CFLAGS})
set(C_BASE_FLAGS $ENV{CFLAGS})
endif()
if(DEFINED ENV{CXXFLAGS})
set(CXX_BASE_FLAGS $ENV{CXXFLAGS})
endif()
# Initialize with an empty string to make sure we always get a clean start
set(COMPILER_FLAGS "")
set(LINKER_FLAGS "")
# Don't ignore user-set LDFLAGS
if(DEFINED ENV{LDFLAGS})
set(LINKER_FLAGS $ENV{LDFLAGS})
endif()
if (GCC_USE_GOLD)
OPTION(GCC_INCREMENTAL_LINKING "Use incremental linking" OFF)
set(LINKER_FLAGS "${LINKER_FLAGS} -fuse-ld=gold")
if (GCC_INCREMENTAL_LINKING)
set(LINKER_FLAGS "${LINKER_FLAGS} -fno-use-linker-plugin -Wl,-z,norelro -Wl,--incremental")
endif()
endif()
# This is a slight hack since our flag setup is a bit more complicated
_enable_extra_compiler_warnings_flags()
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${_flags}")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsigned-char -Wno-unknown-pragmas")
if (NOT GCC_INCREMENTAL_LINKING)
# Place each function and data in its own section so the linker can
# perform dead code elimination
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fdata-sections -ffunction-sections")
endif()
if ("${CMAKE_GENERATOR}" STREQUAL "Ninja")
# Force color diagnostics for Ninja generator
CHECK_C_COMPILER_FLAG(-fdiagnostics-color SUPPORTS_DIAGNOSTIC_COLOR)
if(SUPPORTS_DIAGNOSTIC_COLOR)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fdiagnostics-color")
endif()
endif()
# Start with an empty list
set(SANITIZE_FLAGS)
if(GCC_ENABLE_ADDRESS_SANITIZER)
set(CMAKE_REQUIRED_FLAGS "-fsanitize=address")
CHECK_C_COMPILER_FLAG("-fsanitize=address" SUPPORTS_SANITIZE_ADDRESS)
if (SUPPORTS_SANITIZE_ADDRESS)
set(SANITIZE_FLAGS ${SANITIZE_FLAGS} "address")
endif()
endif()
if (GCC_ENABLE_LEAK_CHECK)
check_linker_flag("-fsanitize=leak" SUPPORTS_FSANITIZE_LEAK)
if (SUPPORTS_FSANITIZE_LEAK)
set(SANITIZE_FLAGS ${SANITIZE_FLAGS} "leak")
endif()
endif()
if (GCC_ENABLE_SANITIZE_UNDEFINED)
check_linker_flag("-fsanitize=undefined" SUPPORTS_SANITIZE_UNDEFINED)
if (SUPPORTS_SANITIZE_UNDEFINED)
set(SANITIZE_FLAGS ${SANITIZE_FLAGS} "undefined")
endif()
endif()
string(REPLACE ";" "," SANITIZE_FLAGS "${SANITIZE_FLAGS}")
if (NOT "${SANITIZE_FLAGS}" STREQUAL "")
set(SANITIZE_FLAGS "-fsanitize=${SANITIZE_FLAGS}")
endif()
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${SANITIZE_FLAGS}")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wformat-security")
# Dear GCC, please tell us if a function does not return a value since that part of the standard is stupid!
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wreturn-type")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-deprecated -Wno-char-subscripts")
# These two warnings cause a lot of false-positives in the FSO code base
check_cxx_compiler_flag(-Wstringop-truncation SUPPORTS_STRINGOP_TRUNCATION)
if(SUPPORTS_STRINGOP_TRUNCATION)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-stringop-truncation")
endif()
check_cxx_compiler_flag(-Wstringop-overflow SUPPORTS_STRINGOP_OVERFLOW)
if(SUPPORTS_STRINGOP_TRUNCATION)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-stringop-overflow")
endif()
# Check if there is a user-set optimisation flag
string(REGEX MATCH "-O[a-zA-Z|0-9]+" CXX_OPT_FLAG ${CXX_BASE_FLAGS})
string(REGEX MATCH "-O[a-zA-Z|0-9]+" C_OPT_FLAG ${C_BASE_FLAGS})
# If no user-set opt flag, set -O3 and -Og
if ("${CXX_OPT_FLAG}" STREQUAL "")
set(CXX_OPT_FLAG_RELEASE "-O3")
set(CXX_OPT_FLAG_DEBUG "-O0")
else()
set(CXX_OPT_FLAG_RELEASE "${CXX_OPT_FLAG}")
set(CXX_OPT_FLAG_DEBUG "${CXX_OPT_FLAG}")
endif()
if ("${C_OPT_FLAG}" STREQUAL "")
set(C_OPT_FLAG_RELEASE "-O3")
set(C_OPT_FLAG_DEBUG "-O0")
else()
set(C_OPT_FLAG_RELEASE "${C_OPT_FLAG}")
set(C_OPT_FLAG_DEBUG "${C_OPT_FLAG}")
endif()
set(CXX_FLAGS_RELEASE "${CXX_OPT_FLAG_RELEASE} -Wno-unused-variable -Wno-unused-but-set-variable -Wno-array-bounds -Wno-empty-body -Wno-clobbered -Wno-unused-parameter")
set(C_FLAGS_RELEASE "${C_OPT_FLAG_RELEASE} -Wno-unused-variable -Wno-unused-but-set-variable -Wno-array-bounds -Wno-empty-body -Wno-clobbered -Wno-unused-parameter")
set(CXX_FLAGS_DEBUG "${CXX_OPT_FLAG_DEBUG} -g -Wshadow")
set(C_FLAGS_DEBUG "${C_OPT_FLAG_DEBUG} -g -Wshadow")
# Always use the base flags and add our compiler flags at the back
set(CMAKE_CXX_FLAGS "${CXX_BASE_FLAGS} ${COMPILER_FLAGS}")
set(CMAKE_C_FLAGS "${C_BASE_FLAGS} ${COMPILER_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE ${CXX_FLAGS_RELEASE})
set(CMAKE_C_FLAGS_RELEASE ${C_FLAGS_RELEASE})
set(CMAKE_CXX_FLAGS_DEBUG ${CXX_FLAGS_DEBUG})
set(CMAKE_C_FLAGS_DEBUG ${C_FLAGS_DEBUG})
set(CMAKE_EXE_LINKER_FLAGS "${LINKER_FLAGS}")
IF (MINGW)
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static -static-libgcc -static-libstdc++ -Wl,--enable-auto-import")
target_compile_definitions(compiler INTERFACE __USE_MINGW_ANSI_STDIO=1)
ENDIF(MINGW)
if (SANITIZE_FLAGS)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SANITIZE_FLAGS}")
endif()
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-g")
if (GCC_GENERATE_GDB_INDEX)
# For pure debug binaries, generate a gdb index for better debugging
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Wl,--gdb-index")
endif()
IF(NOT MINGW)
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -rdynamic")
# Allow the linker to perform dead code elimination; this is considered
# experimental for COFF and PE formats and thus disabled for Windows builds
# (https://sourceware.org/binutils/docs/ld/Options.html)
if (NOT GCC_INCREMENTAL_LINKING AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections")
endif()
ENDIF(NOT MINGW)
IF(${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-zignore")
ENDIF()
if (FSO_FATAL_WARNINGS)
# Make warnings fatal if the right variable is set
target_compile_options(compiler INTERFACE "-Werror")
endif()
# Always define this to make sure that the fixed-width format macros are available
target_compile_definitions(compiler INTERFACE __STDC_FORMAT_MACROS=1)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR MINGW)
# GNU ar: Create thin archive files.
# Requires binutils-2.19 or later.
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qcTP <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> qTP <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcTP <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> qTP <TARGET> <LINK_FLAGS> <OBJECTS>")
endif()
-129
View File
@@ -1,129 +0,0 @@
include(EnableExtraCompilerWarnings)
include(CheckCXXCompilerFlag)
include(util)
MESSAGE(STATUS "Doing configuration specific to visual studio...")
set_property(GLOBAL PROPERTY DEBUG_CONFIGURATIONS Debug)
option(MSVC_USE_RUNTIME_DLL "Use the dynamically linked version of the runtime" OFF)
option(MSVC_RELEASE_DEBUGGING "Set options that allow to debug release builds" OFF)
MARK_AS_ADVANCED(FORCE MSVC_USE_RUNTIME_DLL)
MARK_AS_ADVANCED(FORCE MSVC_RELEASE_DEBUGGING)
# Qt is only available as DLL-runtime builds, so qtFRED forces the DLL runtime for the whole tree
if(MSVC_USE_RUNTIME_DLL OR FSO_BUILD_QTFRED)
set(FSO_MSVC_RUNTIME_DLL ON)
else()
set(FSO_MSVC_RUNTIME_DLL OFF)
endif()
# These are the warnings we disable
set(WARNING_FLAGS
/wd4100 # unreferenced formal parameters
/wd4127 # constant conditional (assert)
/wd4201 # nonstandard extension used: nameless struct/union (happens a lot in Windows include headers)
/wd4290 # C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
/wd4390 # empty control statement (triggered by nprintf and mprintf's inside of one-line if's, etc)
/wd4410 # illegal size for operand... ie... fxch st(1)
/wd4511 # copy constructor could not be generated (happens a lot in Windows include headers)
/wd4512 # assignment operator could not be generated (happens a lot in Windows include headers)
/wd4514 # unreferenced inline function removed
/wd4611 # _setjmp warning. Since we use setjmp alot, and we don't really use constructors or destructors, this warning doesn't really apply to us.
/wd4663 # C++ language change (template specification)
/wd4710 # is inline function not expanded (who cares?)
/wd4711 # tells us an inline function was expanded (who cares?)
/wd4786 # is identifier truncated to 255 characters (happens all the time in Microsoft #includes) -- Goober5000"
/wd4996 # deprecated strcpy, strcat, sprintf, etc. (from MSVC 2005) - taylor
/wd4311 # Disables warnings about casting pointer types to ints. The funny thing is these warnings can't be resolved, just disabled... - m!m
/wd4302 # Same as above - m!m
/wd4366 # The result of the unary '&' operator may be unaligned - m!m
/wd4592 # "symbol will be dynamically initialized" is being generated by a compiler bug, see https://stackoverflow.com/a/34027257 for an explanation - m!m
$<$<CONFIG:Release>:/wd4101> # In release mode there are unreferenced variables because debug needs them
/wd4995 # "'vsprintf': name was marked as #pragma deprecated" is being caused by our custom definition of vsprintf. I have no idea what causes this or how to fix it - m!m
/wd4723 # "potential divide by 0" is caused by some code that definitely will not divide by zero - m!m
/wd4121 # "alignment of a member was sensitive to packing" happens in a Windows header - m!m
)
target_compile_options(compiler INTERFACE ${WARNING_FLAGS})
# Base
set(CMAKE_C_FLAGS "/MP /GS- /analyze- /Zc:wchar_t /errorReport:prompt /Zc:forScope /Gd /EHsc /nologo /Zm200")
set(CMAKE_CXX_FLAGS "/MP /GS- /analyze- /Zc:wchar_t /errorReport:prompt /Zc:forScope /Gd /EHsc /nologo /Zm200")
set(CMAKE_EXE_LINKER_FLAGS "/MANIFEST /SAFESEH:NO /ERRORREPORT:PROMPT /NOLOGO")
set(CMAKE_STATIC_LINKER_FLAGS "")
if(NOT IS_ARM64)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DYNAMICBASE:NO")
endif()
# Release
set(CMAKE_C_FLAGS_RELEASE "/GL /Gy- /Ox /Ot /Ob2 /fp:precise /GF /Oy /Oi /Zi /W3")
set(CMAKE_CXX_FLAGS_RELEASE "/GL /Gy- /Ox /Ot /Ob2 /fp:precise /GF /Oy /Oi /Zi /W3")
# /DEBUG:FULL so that we get PDBs which is needed for debugging crashdumps
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/OPT:REF /LTCG /INCREMENTAL:NO /DEBUG:FULL")
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "/LTCG")
globally_enable_extra_compiler_warnings()
if (MSVC_RELEASE_DEBUGGING)
CHECK_CXX_COMPILER_FLAG("/Zo" MSVC_COMPILER_SUPPORTS_ARCH_ZO)
if (MSVC_COMPILER_SUPPORTS_ARCH_ZO)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Zo")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zo")
endif()
endif()
# The debug runtime is not redistributable (statically linked or not), so only Debug may use it
IF(FSO_MSVC_RUNTIME_DLL)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
add_compile_definitions(_AFXDLL)
ELSE()
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
ENDIF()
# Debug
set(CMAKE_C_FLAGS_DEBUG "/W4 /Gy /Zi /Od /RTC1 /Gd /Oy-")
set(CMAKE_CXX_FLAGS_DEBUG "/W4 /Gy /Zi /Od /RTC1 /Gd /Oy-")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/DEBUG /INCREMENTAL:NO /MAPINFO:EXPORTS /NODEFAULTLIB:libcmt.lib")
INCLUDE(MSVCMultipleProcessCompile)
# Visual Studio supports compiling for multiple vector instruction sets
if(IS_X86)
if(FORCED_NATIVE_SIMD_INSTRUCTIONS)
# MSVC has no direct -march=native equivalent, so just use the detected extensions.
SET(FSO_INSTRUCTION_SET ${DETECTED_SIMD_INSTRUCTIONS})
endif()
if(FSO_INSTRUCTION_SET STREQUAL "")
set(MSVC_SIMD_INSTRUCTIONS "IA32")
else()
set(MSVC_SIMD_INSTRUCTIONS ${FSO_INSTRUCTION_SET})
endif()
if (NOT (IS_64BIT AND (MSVC_SIMD_INSTRUCTIONS STREQUAL "IA32" OR MSVC_SIMD_INSTRUCTIONS STREQUAL "SSE" OR MSVC_SIMD_INSTRUCTIONS STREQUAL "SSE2")))
# 32-Bit and SSE(2) mustn't be set, as these are implied in x86_64 and thus MSVC does not support it for the /arch argument
CHECK_CXX_COMPILER_FLAG("/arch:${MSVC_SIMD_INSTRUCTIONS}" COMPILER_SUPPORTS_ARCH)
IF(COMPILER_SUPPORTS_ARCH)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:${MSVC_SIMD_INSTRUCTIONS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:${MSVC_SIMD_INSTRUCTIONS}")
ELSE()
message( FATAL_ERROR "Your version of MSVC does not support the requested instruction set. Consider updating!" )
ENDIF()
endif()
endif()
target_compile_definitions(compiler INTERFACE _CRT_SECURE_NO_DEPRECATE _CRT_SECURE_NO_WARNINGS _SECURE_SCL=0 NOMINMAX _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
if (FSO_FATAL_WARNINGS)
# Make warnings fatal if the right variable is set
target_compile_options(compiler INTERFACE "/WX")
endif()
-82
View File
@@ -1,82 +0,0 @@
# File to execute compiler specific commands
add_library(compiler INTERFACE)
set(FSO_CONFIG_DEFINITIONS "$<$<CONFIG:Release>:NDEBUG>" "$<$<CONFIG:Debug>:_DEBUG>")
if(NOT MSVC)
# On MSVC the debug runtime flags (/MTd, /MDd) define _DEBUG themselves, and a FastDebug
# build on the release runtime must not have it
list(APPEND FSO_CONFIG_DEFINITIONS "$<$<CONFIG:FastDebug>:_DEBUG>")
endif()
target_compile_definitions(compiler INTERFACE ${FSO_CONFIG_DEFINITIONS})
set(FORCED_NATIVE_SIMD_INSTRUCTIONS ON CACHE BOOL "Override instruction set detection and compile with the maximum possible instructions for the current system.")
IF(IS_X86)
SET(POSSIBLE_INSTRUCTION_SETS "" SSE SSE2 AVX AVX2)
if (CMAKE_CROSSCOMPILING)
message("Cross-Compile cannot detect supported instruction sets. Defaulting to SSE2. Disabling host-optimization.")
set(FORCED_NATIVE_SIMD_INSTRUCTIONS OFF)
set(DETECTED_SIMD_INSTRUCTIONS SSE2)
else()
detect_simd_instructions(DETECTED_SIMD_INSTRUCTIONS)
endif()
set(FORCED_SIMD_INSTRUCTIONS "" CACHE STRING "Overrides any instruction set settings (including forced-native). Any of ${POSSIBLE_INSTRUCTION_SETS}.")
if (NOT FORCED_SIMD_INSTRUCTIONS STREQUAL "")
set(FORCED_NATIVE_SIMD_INSTRUCTIONS OFF)
LIST(FIND POSSIBLE_INSTRUCTION_SETS "${FORCED_SIMD_INSTRUCTIONS}" SET_INDEX)
if (SET_INDEX LESS 0)
MESSAGE(STATUS "An invalid instruction set was specified, defaulting to no special compiler options.")
set(FSO_INSTRUCTION_SET "")
else ()
LIST(FIND POSSIBLE_INSTRUCTION_SETS "${DETECTED_SIMD_INSTRUCTIONS}" SET_INDEX)
if (SET_INDEX LESS 0)
MESSAGE(STATUS "An instruction set was specified which is unsupported on this platform. Compiled binary might not be executable.")
endif()
set(FSO_INSTRUCTION_SET ${FORCED_SIMD_INSTRUCTIONS})
endif()
else()
SET(FSO_INSTRUCTION_SET ${DETECTED_SIMD_INSTRUCTIONS})
endif()
MESSAGE(STATUS "Using instruction set level ${FSO_INSTRUCTION_SET}. Optimizations for host-system specifically: ${FORCED_NATIVE_SIMD_INSTRUCTIONS}.")
if (FSO_INSTRUCTION_SET STREQUAL "SSE")
add_compile_definitions(FSO_SIMD_SSE)
elseif (FSO_INSTRUCTION_SET STREQUAL "SSE2")
add_compile_definitions(FSO_SIMD_SSE)
add_compile_definitions(FSO_SIMD_SSE2)
elseif (FSO_INSTRUCTION_SET STREQUAL "AVX")
add_compile_definitions(FSO_SIMD_SSE)
add_compile_definitions(FSO_SIMD_SSE2)
add_compile_definitions(FSO_SIMD_AVX)
elseif (FSO_INSTRUCTION_SET STREQUAL "AVX2")
add_compile_definitions(FSO_SIMD_SSE)
add_compile_definitions(FSO_SIMD_SSE2)
add_compile_definitions(FSO_SIMD_AVX)
add_compile_definitions(FSO_SIMD_AVX2)
endif()
ENDIF()
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
include(toolchain-gcc)
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
include(toolchain-msvc)
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
include(toolchain-clang)
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
include(toolchain-apple-clang)
ELSE("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
MESSAGE(STATUS "No special handling for this compiler present, good luck!")
ENDIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
find_package(Threads REQUIRED)
target_link_libraries(compiler INTERFACE Threads::Threads)
# Copy release settings to FastDebug
set(CMAKE_C_FLAGS_FASTDEBUG "${CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_FASTDEBUG "${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_EXE_LINKER_FLAGS_FASTDEBUG "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
set(CMAKE_STATIC_LINKER_FLAGS_FASTDEBUG "${CMAKE_STATIC_LINKER_FLAGS_RELEASE}")
Loaded 100 of 4219 files, more files were not shown because too many files have changed in this diff. Show more