Commit Graph
528 Commits
Author SHA1 Message Date
TRBlount f9704ebd89 Remove second instance of apply recoil flag in Weapon_Info_Flags 2017-12-19 12:41:53 -07:00
asarium 0522566790 Replace direct usages of Snds vector with a function call
This will make it easier to validate the used handles and is generally
better since it doesn't require a global sounds vector.
2017-10-09 15:02:29 +02:00
MageKing17 c890c0af1f Make shield impact sounds more intuitive.
Shield impact sounds now re-use the shield quadrant calculated by the collision code instead of naively recalculating based on global hitpos, allowing the hull impact sound to play if the shot pierces shields or was fired from within the shield mesh, and simplifying the relevant calculations in the process.
2017-10-03 09:06:34 -07:00
MageKing17 36e5afe1be Explicitly initialize cmeasure_timer_interval to 0.
If we rely on uninitialized values, we're likely to wind up with countermeasures that are only ever active for a single frame.
2017-08-24 04:54:42 -07:00
MageKing17 addc3ef383 Allow countermeasures to pulse at regular intervals instead of globally.
Adds a new "+Pulse Interval:" countermeasure field that enables the new behavior; all countermeasures that don't have this field defined still use the old behavior of the global frame counter.

This changes countermeasure logic quite a bit, but I attempted to mitigate performance implications by re-using an existing traversal of the object list in order to build the list of active countermeasures each frame. If any countermeasures are actively pulsing in a frame, the object list is traversed again, looking for homing weapons. Each homing weapon then goes through the active countermeasure list and checks to see if it got decoyed. Most of this central logic is unchanged from the old behavior, although no longer separated into two functions, and it should be more efficient since it's using a prepared list of active countermeasures instead of traversing the object list looking for countermeasures for every homing missile (which are themselves found by traversing the object list).
2017-08-23 03:39:48 -07:00
Goober5000 8f3ef45fc9 don't remove invisible beam sections 2017-06-08 22:18:02 -04:00
asarium c008dfc303 Fix assertion when applying particle effect to laser
The weapon state value of the weapon was updated after the particle
source was created so the source was always invalid which caused an
assertion.
2017-04-14 23:50:12 +02:00
asarium abdef9f7b0 Add tracing scopes to the mission load code
This makes it easier to determine what takes the most time while loading
the mission (loading models) and how we could optimize that load time
(optimize model loading).

This is not a bug fix but it also shouldn't cause any regressions since
there are no actual code changes so this could be merged before the
release of 3.8.
2017-03-28 17:23:22 +02:00
asarium 81f5cf4446 Fix assertion failure in weapon choice screen
If the descripting of a weapon is too long it would currently cause a
very unhelpful assertion message. This fixes that by checking the length
of the lines when parsing the weapon description. I removed the
assertions since the string is just cut of if it is too long so that
fixes the actual assertion.

I also added two unit tests for making sure that too long descriptions
cause warnings.
2017-03-03 18:59:30 +01:00
asarium fff62a85e0 Restore original flag parsing behavior
THe flagset changes misplaced the post-parsing flag processing so that
it was only executed if a special flag was found. That was not the case
previously and this restores that behavior. I also simplified the code a
bit while I was at it.

This fixes #1191.
2017-02-06 22:37:15 +01:00
asarium 4a9f1a2d56 Fix the rest of the string conversion warnings 2017-01-05 00:15:01 +01:00
Samuel Cho 347dca5e60 Renamed draw_list to a more descriptive model_draw_list. Removed unlit maps since those aren't needed anymore. Changed transforms in model_draw_list to use the transform_stack instead of using duplicate code. Removed some unused graphics code. Fixed scaling when using batched transforms. 2017-01-02 20:15:37 -08:00
asarium 6922d3ca2c Integrate the existing monitor system into the new tracing system
This writes the monitor updates as counter events into the event trace
file.
2016-12-21 16:10:01 +01:00
DahBlount 4a3287457d Fix Don't Spawn If Shot 2016-11-29 11:54:43 -07:00
niffiwan b8826835e2 Fix Coverity 1365316
Move check for -1 to before we use weapon_index as an array index :)
Also fixes coverity 1365315; which seems like a redundant issue...
2016-10-30 22:43:21 +10:00
DahBlount c323917db9 Splits up isWeaponUsed into two functions 2016-10-12 14:18:08 -06:00
DahBlount 5575e65eb6 Add isWeaponUsed scripting function 2016-10-12 14:18:08 -06:00
DahBlount ffab766a38 Clarify flag choice dependent upon weapon type
Ensures that primary weapons can't launch secondary weapons and vice
versa.
2016-10-10 01:59:31 -06:00
DahBlount 8bebea455a Make linked/dual fire consistent
Make sure we've got initialized values in the secondary pattern indexes
for a ship_weapon and also allow linked/dual fire to be in sequence
instead of swapping in the base weapon at the beginning of each pattern
loop.
2016-10-10 01:24:25 -06:00
DahBlount c2b98654fc Make sure substitution weapons get counted as used.
This will ensure the weapons get properly paged in.
2016-10-10 01:24:25 -06:00
asarium 6dbf200cc3 Move lua to scripting folder 2016-10-03 21:38:29 +02:00
MageKing17 bce17561ed Change pointless .size() calls into .empty() calls.
The codebase had quite a few instances of .size() being called and then checked to see if it was 0 or not (or less than 1, or greater-than-or-equal-to 1, which are basically equivalent), when .empty() could be called instead (negated or not, depending on what the original condition was).
2016-09-07 18:36:12 -07:00
Fabian Woltermann 99a59efdbf AI Goal flags converted 2016-08-31 15:30:49 +02:00
Fabian Woltermann edecb1ca73 Merge pull request #844 from SamuelCho/opengl_core_materials
OpenGL Core, material draw system, and geometry batching rewrite
2016-08-26 19:07:32 +02:00
Fabian Woltermann 989f799766 Fix for parsing the no pierce flag (#890)
Removes "no pierce shields" from the `Weapon_Info_Flags[]` array as it's not actually a flag (fixes usage of it tripping an assertion).
2016-08-26 01:41:20 -07:00
MageKing17 1a9867593b Fix minor problem with the logic for parsing the beam flag.
It was setting the Pierce_shields flag based on whether or not the Beam flag was set, rather than based on whether or not the beam flag was explicitly provided; as such, a TBM entry for a non-piercing beam that contained a "$Flags:" entry but didn't re-set "no pierce shields" could spontaneously regain its piercing status (explicitly setting "beam" again will re-add piercing, but this should match previous behavior).
2016-08-25 22:55:37 -07:00
SamuelCho 6442307c27 Merge branch 'master' into opengl_core_materials 2016-08-25 20:04:14 -07:00
Fabian Woltermann 61cf5bef9b Merge pull request #850 from asarium/warnings/more64bit
64-bit warning fixes...
2016-08-24 13:04:12 +02:00
MageKing17 a141e5d4f4 Merge pull request #877 from The-E/weapon_flag_parsing_fix
Fixes an issue when parsing the weapon info flagset.
2016-08-23 14:47:19 -07:00
asarium 20beb2eec1 64-bit warning fixes... 2016-08-23 23:17:41 +02:00
Fabian Woltermann e535cf566b Fix a few issues found while reviewing, thanks MageKing 2016-08-23 22:01:57 +02:00
asarium beb9288c73 Merge branch 'opengl_core_materials' of https://github.com/SamuelCho/fs2open.github.com into ogl_core/merge
Conflicts:
	code/graphics/gropengl.cpp
	code/io/cursor.cpp
	freespace2/SDLGraphicsOperations.cpp
2016-08-23 16:05:28 +02:00
Fabian Woltermann 444ae43aa4 Fixes an issue when parsing the weapon info flagset. 2016-08-23 14:37:43 +02:00
asarium a11b95ef56 Fix weapon flag parsing when +override is present 2016-08-23 13:41:28 +02:00
Fabian Woltermann 3e6022b000 Merge pull request #869 from asarium/fix/weaponsMemoryLeak
Fix memory leak reported by LeakSanitizer
2016-08-23 10:38:28 +02:00
Fabian Woltermann ed84ac348e Merge with master 2016-08-22 11:37:50 +02:00
m!m 38fb41909b Merge pull request #861 from The-E/ai_profile_flags
Ai profile flags converted
2016-08-22 11:32:55 +02:00
asarium a3e458ba49 Fix memory leak reported by LeakSanitizer 2016-08-22 11:28:51 +02:00
SamuelCho 311cf769df Reconciled bit flags. 2016-08-20 19:39:10 -07:00
m!m a34bcd60ed Merge pull request #852 from The-E/weapon_flags
Weapon flags
2016-08-20 15:57:05 +02:00
Fabian Woltermann 325442207c Addressing feedback 2016-08-20 12:57:32 +02:00
Fabian Woltermann 0591b7ef49 ai profile flags 2016-08-19 22:44:39 +02:00
Fabian Woltermann 9f27973147 Fixes various bugs 2016-08-19 19:23:55 +02:00
Risto Toijala 5d96e49354 Fix weapon flag parsing
Starting with git 127976c (#851), FSO fails to start, displaying an
error. This is my attempt to fix it. FSO starts, but I do not know how
to check that the flags are parsed correctly.
2016-08-19 19:19:46 +03:00
Fabian Woltermann 1acfaa8157 Converts model subsystem flags 2016-08-19 14:59:15 +02:00
Fabian Woltermann 1a060aa6d7 Converts the other weapon flags 2016-08-19 09:24:54 +02:00
Fabian Woltermann 127976cd74 Weapon info flags conversion (#851) 2016-08-18 23:17:41 -07:00
SamuelCho a481999a24 OpenGL Core support. Introduction of material based draw system. Rewrote geometry batcher. 2016-08-17 00:13:19 -07:00
Fabian Woltermann e1ba2256ed Changes the subsystem flags to the new flag system. 2016-08-13 13:52:51 +02:00
Fabian Woltermann 770fce8de5 Bitset flags -- take 2 (#775)
This introduces a new mechanism for handling bit flags. Instead of using an int (or two, or three) to write bits into, this uses the std::bitset in a wrapper class that accepts an enum class as input. This means that certain classes of errors we've had a few of in the engine, where a coder used the wrong set of flags or checked them against the wrong variable (SF_STEALTH vs SIF_STEALTH, for example) can now be detected at a compiler level rather than not at all.
2016-08-12 16:13:50 -07:00