Commit Graph
920 Commits
Author SHA1 Message Date
The E a413255728 Renaming vm_vec_dotprod to vm_vec_dot 2015-12-01 20:35:47 +01:00
Goober5000 8f3342f05e improve sexp help regarding bitmasks on ship-arrival-info and ship-departure-info 2015-11-20 00:41:46 -05:00
MageKing17 dba2d28265 Fix ship-turret-target-order.
We were declaring an array of NUM_TURRET_ORDER_TYPES ints, and then only specifying the first oindex of them; the memcpy() could've been changed to multiply by oindex instead, but it seemed cleaner to just reset new_target_order to -1 in all values and get rid of the redundant per-ship reset.

Discovered by triggering an Int3() in aiturret.cpp (line 1167 as of this writing) and finding uninitialized values in the turret_targeting_order array.
2015-11-10 14:55:55 -08:00
niffiwan 62fcbeaae8 Merge pull request #380 from Goober5000/wf_never_existed_removal
remove WF_NEVER_EXISTED
2015-10-28 19:35:46 +10:00
m!m 332b9fa4a4 Merge pull request #395 from The-E/debug_sexp_fix
Fix the debug sexp
2015-10-26 23:07:03 +01:00
The E e6aa565b42 Name change as suggested by m|m 2015-10-26 20:31:24 +01:00
The E 788e28c646 Creates a new variant of Warning that is not #ifdefed out on release to make the debug sexp work as its description implies 2015-10-26 19:47:51 +01:00
Goober5000 96d32b5031 remove WF_NEVER_EXISTED 2015-10-22 23:27:43 -04:00
MageKing17 064a07349f Fixes numerous SEXPs accessing the wrong nodes.
Affected SEXPs include turret-set-target-order, turret-set-direction-preference, turret-set-rate-of-fire, turret-set-optimum-range, ship-turret-target-order, turret-get-primary-ammo, turret-set-primary-ammo, turret-get-secondary-ammo, and turret-set-secondary-ammo.

It's worth noting that while turret-set-direction-preference, turret-set-rate-of-fire, and turret-set-optimum-range were wrong, they were wrong in a way that wouldn't actually affect the outcome most of the time (thanks to the "if(turret == NULL)" checks simply skipping invalid subsystem names).
2015-10-15 18:58:27 -07:00
Goober5000 bfb4db1dd4 made background sexp errors less fatal 2015-09-30 23:36:47 -04:00
MageKing17 24b0b28f6a Fix double-free with for-counter (introduced by myself).
In 9ec10dd I thought I was fixing a memory leak, but the actual scenario was that the freeing was just delayed until later. This removes the freeing added by 9ec10dd and changes the free() calls into vm_free() calls.
2015-09-16 19:55:24 -07:00
MageKing17 fb8ffcacfd Fixes call-ssm-strike resulting in a Warning about a null vec3d.
ssm_create() subtracts the start coordinates from the position of the target, and then normalizes that. Since call-ssm-strike was using the position of the target as the start coordinates, this was obviously resulting in normalizing a null vec3d, generating the spurious warning. This just makes call-ssm-strike use a point immediately behind the target's position (using the target's orientation) as the starting coordinate, thereby avoiding the warning.
2015-08-21 21:12:03 -07:00
MageKing17 d7ff43a1d1 Fix check_sexp_syntax() so it works properly with OPF_SSM_CLASS.
Also makes OP_BEAM_FLOATING_FIRE grab the correct ship_index for the subsystem check.
2015-08-21 13:41:45 -07:00
MageKing17 64c9b272e7 Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/pilotfile/pilotfile.cpp
2015-08-19 11:53:25 -07:00
MageKing17 990411fd0b Merge pull request #286 from Goober5000/woutersmits_fix
fix an obscure edge-case sexp crash
2015-08-18 23:30:26 -07:00
Goober5000 bd3cd7eb18 Merge pull request #195 from Echelon9/fix/sort-uniq-includes
Review and refactor #include's
2015-08-19 00:05:02 -04:00
Goober5000 17851dcc56 fix an obscure edge-case sexp crash
This bug was found by, of all people, woutersmits, while FREDding his happynewyear campaign.  See http://www.hard-light.net/forums/index.php?topic=90069.0 for discussion.  The crash was triggered by the use of ( validate-all-arguments ) as the entire sexp tree for one of his mission events.

This was a two-part fix.  The first part was to ensure that every *-argument sexp (of which validate-all-arguments is but one) is actually used within a when-argument or every-time-argument tree.  More specifically, every sexp operation that expects an argument handler should first check that the arg_handler node actually exists.

The second part was to partially revert one of Taylor's old commits:

Revision: 3644
Author: taylor
Date: Tuesday, October 24, 2006 9:17:24 AM
Message:
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

----
Modified : /branches/fs2_open_3_6_9/fs2_open/code/parse/sexp.cpp

This was intended to prevent a -1 array reference into Sexp_nodes[].  What Taylor did was to cause repeated calls of the parent_operator function to loop endlessly at the topmost parent.  But there are certain edge cases (such as the one woutersmits discovered) where you need to know whether a parent is the topmost one.  What Taylor should have done, and what this change does, is to keep the -1 as a valid return value but check for it in the places where it may cause an issue.
2015-08-18 21:32:14 -04:00
Goober5000 efce7de00d fix syntax error, add node reference 2015-08-18 19:58:34 -04:00
Goober5000 2b032a1dbc tweaks per MageKing17's suggestions 2015-08-18 13:27:57 -04:00
Goober5000 e1d3838b2e various assertions to improve the sexp code 2015-08-18 01:00:43 -04:00
MageKing17 d0cde03a69 Fix beam-create with targeting coordinates instead of a ship/subsystem.
If the subsystem was <none>, sexp_beam_floating_fire() wasn't consuming the node, resulting in it also being parsed as the X coordinate (making it always zero, because atoi("<none>") == 0).
2015-08-14 11:20:33 -07:00
MageKing17 cbeb03b2d5 Make beam-create actually call sexp_beam_floating_fire().
Somehow, this got missed during the creation of the pull request, and I guess nobody (not even me) actually tried using it since then.
2015-08-14 10:32:27 -07:00
MageKing17 d74d09554e Fix writing to undefined memory in multiplayer SEXP code for turret ammo.
`multi_sexp_set_turret_primary_ammo()` and `multi_sexp_set_turret_secondary_ammo()` were using an uninitialized pointer instead of an uninitialized array, like every other instance of multi_get_string(). This is just begging to write to invalid memory.
2015-08-12 22:02:29 -07:00
MageKing17 439ea76475 Adding static_cast<int>() to locations pointed out by m!m. 2015-08-12 14:39:12 -07:00
MageKing17 6985b198ec Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/ship/ship.cpp
2015-08-12 13:25:34 -07:00
MageKing17 1aa7af5167 Merge pull request #263 from Echelon9/fix/printf-issues
Resolve numerous format string issues
2015-08-12 13:05:17 -07:00
MageKing17 4fc84e61c6 Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/ship/ship.cpp
2015-08-11 14:27:48 -07:00
DahBlount 5412f16352 Fix the descriptions of the turret ammo setter sexps
The setter Sexps incorrectly had the same descriptions as the getter
sexps.
2015-08-07 09:02:43 -07:00
MageKing17 dc80ae0c9a Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/ship/ship.cpp
2015-08-06 00:25:42 -07:00
Echelon9 4328134c82 Fix: warning: format not a string literal and no format arguments [-Wformat-security] 2015-08-05 20:00:07 +10:00
Echelon9 e1c38230af Fix: warning: format not a string literal and no format arguments [-Wformat-security] 2015-08-05 19:59:09 +10:00
Echelon9 9f2a2dd4ed Ensure sufficient format string specifiers. 2015-08-05 19:57:58 +10:00
DahBlount d973c9e147 Add cases for turret ammo setter multi_sexps
Can't believe I forgot this part. This just ensures the sexps actually
work.
2015-07-30 15:22:31 -05:00
DahBlount 9e3cb6baa3 Multi_SEXP Turret Ammo Functions
This adds multiplayer functionality to the Turret getter and setter
SEXPs.
2015-07-30 15:06:04 -05:00
DahBlount 0fd43dad75 Turret Ammo SEXPs
This adds getter and setter SEXPs for turret ammo.
"turret-get-primary-ammo"
"turret-get-secondary-ammo"
"turret-set-primary-ammo"
"turret-set-secondary-ammo"

I also forgot to make turrets that don't have the "use multiple guns"
flag set switch banks if their first bank is empty, so that has been
fixed as well.
2015-07-29 12:25:24 -05:00
Fabian Woltermann b11497d075 Merge pull request #183 from ln-zookeeper/master
Added a "no-secondary-lock-on" ship flag to disable secondary homing.
2015-06-23 10:16:24 +02:00
Echelon9 c5493bb480 Scripted sort and uniq on (internal) project includes. Improves search time and as a by product removed a number of duplicative includes. 2015-06-22 20:24:30 +10:00
MageKing17 ab9d2e20fb Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/ship/ship.cpp
2015-06-18 14:40:53 -07:00
Cliff Gordon 2d662075c3 Merge remote-tracking branch 'origin/master' into fix/triplemon_hud 2015-06-17 10:11:57 -05:00
Lari Nieminen 4acad3b126 Added a "no-secondary-lock-on" ship flag to disable secondary homing. 2015-06-14 22:25:54 +03:00
Lari Nieminen 26e31a4cf0 Added a $Max Shield Recharge ship table entry for limiting how full the shields may recharge. 2015-06-04 15:35:41 +03:00
Axem 4b20b46509 Commit because reasons? (Why git, why) 2015-06-03 17:44:37 -05:00
Axem 61e4f739ce Adds On Beam Fire scripting hook 2015-05-31 18:02:36 -05:00
MageKing17 7e696a55d2 Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Also added model_icon_angles to the ship_info() constructor, and model_icon_angles, thruster_glow_noise_mult, and min_engine_vol to ship_info::clone() and and ship_info::move().

Conflicts:
	code/ship/ship.cpp
	code/ship/ship.h
2015-05-28 23:49:33 -07:00
MageKing17 67a87a33f3 Change if-elseif chain to switch statement.
Somewhat easier to read this way.
2015-05-22 12:38:13 -07:00
Cliff Gordon a4c1f89720 Merge remote-tracking branch 'origin/master' into fix/triplemon_hud
Conflicts:
	code/freespace2/freespace.cpp
2015-05-20 17:15:15 -05:00
MageKing17 abfba82d48 Add beam-create SEXP.
Fires a floating beam from a given set of coordinates (like fire-beam and fire-beam-at-coordinates).
2015-05-15 16:11:36 -07:00
MageKing17 274a32e1ac Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/model/modelread.cpp
	code/ship/ship.h
2015-05-12 19:22:58 -07:00
niffiwan c85904b3c5 Merge pull request #85 from MageKing17/bugfix/random-multiple-of
Fix random-multiple-of.
2015-05-09 19:47:23 +10:00
niffiwan d69b7d7e0d Add newline to Assertion msg 2015-05-09 18:27:20 +10:00