New weapons.tbl flag: "no primary linking" Weapons with this flag can not be linked with other weapons. This also introduces a third (!) field for weapon flags.

This commit is contained in:
The_E committed 2012-07-29 11:32:39 +00:00
1 parent 535d91bae8
commit 6da6894f22
5 files changed
+20 -6

No files matched your search

+8 -2
View File
@@ -301,6 +301,9 @@ bool ConditionedHook::ConditionsValid(int action, object *objp)
if (!(primary || secondary))
return false;
if (shipp->flags & SF_PRIMARY_LINKED && primary && Weapon_info[shipp->weapons.primary_bank_weapons[shipp->weapons.current_primary_bank]].wi_flags3 & WIF3_NOLINK)
return false;
break;
case CHA_ONWPDESELECTED:
@@ -309,6 +312,9 @@ bool ConditionedHook::ConditionsValid(int action, object *objp)
secondary = stricmp(Weapon_info[shipp->weapons.secondary_bank_weapons[shipp->weapons.current_secondary_bank]].name, scp->data.name) == 0;
prev_secondary = stricmp(Weapon_info[shipp->weapons.secondary_bank_weapons[shipp->weapons.previous_secondary_bank]].name, scp->data.name) == 0;
if (prev_primary && shipp->flags & SF_PRIMARY_LINKED && (Weapon_info[shipp->weapons.primary_bank_weapons[shipp->weapons.previous_primary_bank]].wi_flags3 & WIF3_NOLINK))
return true;
if ( !prev_secondary && ! secondary && !prev_primary && !primary )
return false;
@@ -356,8 +362,8 @@ bool ConditionedHook::ConditionsValid(int action, object *objp)
primary = stricmp(Weapon_info[shipp->weapons.primary_bank_weapons[shipp->weapons.current_primary_bank]].name, scp->data.name) == 0;
secondary = stricmp(Weapon_info[shipp->weapons.secondary_bank_weapons[shipp->weapons.current_secondary_bank]].name, scp->data.name) == 0;
// if (shipp->flags & SF_PRIMARY_LINKED && primary && Weapon_info[shipp->weapons.primary_bank_weapons[shipp->weapons.current_primary_bank]].wi_flags3 & WIF3_NOLINK)
// return false;
if (shipp->flags & SF_PRIMARY_LINKED && primary && Weapon_info[shipp->weapons.primary_bank_weapons[shipp->weapons.current_primary_bank]].wi_flags3 & WIF3_NOLINK)
return false;
if (!(primary || secondary))
return false;