diff --git a/src/battle/fighters.c b/src/battle/fighters.c index c57241e..4cf275a 100644 --- a/src/battle/fighters.c +++ b/src/battle/fighters.c @@ -254,14 +254,23 @@ void doFighter(void) addHudMessage(colors.red, _("Mission target has escaped.")); battle.stats[STAT_ENEMIES_ESCAPED]++; } - else if (strcmp(self->defName, "Civilian") == 0) + + if (strcmp(self->defName, "Civilian") == 0) { battle.stats[STAT_CIVILIANS_RESCUED]++; } - updateObjective(self->name, TT_ESCAPED); - - updateCondition(self->name, TT_ESCAPED); + /* if you did not escape under your own volition, or with the aid of a friend, you've been stolen */ + if (!self->owner || self->side == self->owner->side) + { + updateObjective(self->name, TT_ESCAPED); + updateCondition(self->name, TT_ESCAPED); + } + else + { + updateObjective(self->name, TT_STOLEN); + updateCondition(self->name, TT_STOLEN); + } } if (self->alive == ALIVE_DEAD) diff --git a/src/defs.h b/src/defs.h index fdc7800..c92d365 100644 --- a/src/defs.h +++ b/src/defs.h @@ -95,6 +95,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define EF_SECONDARY_TARGET (2 << 12) #define EF_AI_TARGET (2 << 13) #define EF_AI_LEADER (2 << 14) +#define EF_ROPED_ATTACHED (2 << 15) #define AIF_NONE 0 #define AIF_FOLLOWS_PLAYER (2 << 0) @@ -255,7 +256,8 @@ enum TT_WAYPOINT, TT_ESCAPED, TT_PLAYER_ESCAPED, - TT_ITEM + TT_ITEM, + TT_STOLEN }; enum diff --git a/src/system/lookup.c b/src/system/lookup.c index 0f146ca..3edf355 100644 --- a/src/system/lookup.c +++ b/src/system/lookup.c @@ -88,6 +88,7 @@ void initLookups(void) addLookup("TT_ESCAPED", TT_ESCAPED); addLookup("TT_PLAYER_ESCAPED", TT_PLAYER_ESCAPED); addLookup("TT_ITEM", TT_ITEM); + addLookup("TT_STOLEN", TT_STOLEN); addLookup("WT_BUTTON", WT_BUTTON); addLookup("WT_SELECT", WT_SELECT);