/* * 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: DynamicMessage * Description: This module is responsible for dynamic messages * i.e. "You hit the ork.", "The ork hits you.", etc. */ /* * message types */ typedef enum { MSG_NIL = -1, MSG_HIT, MSG_CRITICAL_HIT, MSG_MISS, MSG_PARRY, MSG_DISARM, MSG_DISARM_FAILS, MSG_DOCTOR, MSG_DOCTOR_FAILS, MSG_PICK_UP, MSG_RELOAD_WEAPON, MSG_RECHARGE_WEAPON, MSG_SWITCH_WEAPONS, MSG_FIGHTS_UNARMED, MSG_WEAPON_JAMS, MSG_UNJAM_WEAPON, MSG_WEAPON_MALFUNCTIONS, MSG_WEAPON_OVERHEATS, MSG_WEAPON_EXPLODES, MSG_RESIST, MSG_RECOVER, MSG_EFFECT_ACTIVATION, MSG_EFFECT_TERMINATION, MSG_MORALE_BROKEN, MSG_MORALE_RECOVERED, MSG_CONCENTRATE, MSG_EVOKE_PSY_POWER, MSG_EVOKE_PSY_POWER_FAILS, MSG_PSYCHIC_OVERLOAD, MSG_PSY_POWER_TERMINATION, MSG_USE_DRUG, MSG_DRUG_TERMINATION, MSG_FADE_INTO_SHADOWS, MSG_NOTICE, MSG_FALL_DOWN, MSG_DEATH, MSG_DESTRUCTION, MSG_OUT_OF_BOUNDS } MESSAGE_TYPE; /* * articles */ typedef enum { ARTICLE_NIL = -1, ARTICLE_NONE, ARTICLE_DEFINITE, ARTICLE_INDEFINITE, ARTICLE_OUT_OF_BOUNDS } ARTICLE; /* * message data structure */ typedef struct { const CHARACTER * subject; bool subject_noticed; const void * object; MESSAGE_OBJECT_TYPE object_type; ARTICLE object_article; bool object_noticed; } MESSAGE_DATA; void dynamic_message(MESSAGE_TYPE, const CHARACTER *, const void *, MESSAGE_OBJECT_TYPE ); void message_force_visibility(bool);