1 | /* |
1 | /* |
2 | CrossFire, A Multiplayer game for X-windows |
2 | CrossFire, A Multiplayer game for X-windows |
3 | |
3 | |
|
|
4 | Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team |
4 | Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
5 | Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
5 | Copyright (C) 1992 Frank Tore Johansen |
6 | Copyright (C) 1992 Frank Tore Johansen |
6 | |
7 | |
7 | This program is free software; you can redistribute it and/or modify |
8 | This program is free software; you can redistribute it and/or modify |
8 | it under the terms of the GNU General Public License as published by |
9 | it under the terms of the GNU General Public License as published by |
… | |
… | |
767 | |
768 | |
768 | tmp->set_owner (tmp2); |
769 | tmp->set_owner (tmp2); |
769 | SET_FLAG (tmp, FLAG_MONSTER); |
770 | SET_FLAG (tmp, FLAG_MONSTER); |
770 | |
771 | |
771 | tmp->stats.exp = 0; |
772 | tmp->stats.exp = 0; |
772 | SET_FLAG (tmp, FLAG_FRIENDLY); |
|
|
773 | |
773 | |
774 | add_friendly_object (tmp); |
774 | add_friendly_object (tmp); |
775 | tmp->attack_movement = PETMOVE; |
775 | tmp->attack_movement = PETMOVE; |
776 | break; |
776 | break; |
777 | |
777 | |
… | |
… | |
832 | * |
832 | * |
833 | */ |
833 | */ |
834 | void |
834 | void |
835 | check_inv (object *op, object *trig) |
835 | check_inv (object *op, object *trig) |
836 | { |
836 | { |
|
|
837 | sint32 prev_state = trig->value; |
837 | trig->value = 0; // deactivate if none of the following conditions apply |
838 | trig->value = 0; // deactivate if none of the following conditions apply |
838 | |
839 | |
839 | if (object *pl = trig->ms ().player ()) |
840 | if (object *pl = trig->ms ().player ()) |
840 | { |
841 | { |
841 | object *match = check_inv_recursive (pl, trig); |
842 | object *match = check_inv_recursive (pl, trig); |
… | |
… | |
849 | } |
850 | } |
850 | else if (!match && !trig->last_sp) // match == not having |
851 | else if (!match && !trig->last_sp) // match == not having |
851 | trig->value = 1; |
852 | trig->value = 1; |
852 | } |
853 | } |
853 | |
854 | |
|
|
855 | if (prev_state != trig->value) |
854 | push_button (trig); |
856 | push_button (trig); |
855 | } |
857 | } |
856 | |
858 | |