/* * Copyright (C) 2002-2007 The Warp Rogue Team * Part of the Warp Rogue Project * * This software is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License. * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY. * * See the license.txt file for more details. */ /* * Module Name: Perception * Description: Character perception related things */ #define los(p1, p2) (line_of_sight((p1), (p2)) || line_of_sight((p2), (p1))) #define enemies_noticed(c) ((c)->noticed_enemies->head != NULL) void view_screen(const CHARACTER *, const char *, COLOUR); void update_perception_data(CHARACTER *); void activate_stealth(CHARACTER *); void cancel_stealth(CHARACTER *, const CHARACTER *); bool character_unnoticed(const CHARACTER *); void notice_check(CHARACTER *, bool, bool); bool party_can_see(const CHARACTER *); bool enemies_are_watching(const CHARACTER *); CHARACTER * nearest_noticed_enemy(const CHARACTER *); bool unnoticed_enemy_at(const CHARACTER *, const AREA_POINT *); bool line_of_sight(const AREA_POINT *, const AREA_POINT *);