btmux/autom4te.cache/
btmux/doc/.svn/
btmux/event/.svn/
btmux/game/.svn/
btmux/game/bin/.svn/
btmux/game/data/.svn/
btmux/game/logs/.svn/
btmux/game/maps/
btmux/game/maps/.svn/
btmux/game/maps/.svn/prop-base/
btmux/game/maps/.svn/props/
btmux/game/maps/.svn/text-base/
btmux/game/maps/.svn/wcprops/
btmux/game/mechs/
btmux/game/mechs/.svn/
btmux/game/mechs/.svn/prop-base/
btmux/game/mechs/.svn/props/
btmux/game/mechs/.svn/text-base/
btmux/game/mechs/.svn/wcprops/
btmux/game/text/.svn/
btmux/include/.svn/
btmux/misc/
btmux/misc/.svn/
btmux/misc/.svn/prop-base/
btmux/misc/.svn/props/
btmux/misc/.svn/text-base/
btmux/misc/.svn/wcprops/
btmux/python/
btmux/python/.svn/
btmux/python/.svn/prop-base/
btmux/python/.svn/props/
btmux/python/.svn/text-base/
btmux/python/.svn/wcprops/
btmux/src/.svn/prop-base/
btmux/src/.svn/props/
btmux/src/.svn/text-base/
btmux/src/.svn/wcprops/
btmux/src/hcode/.svn/
btmux/src/hcode/btech/
btmux/src/hcode/btech/.svn/
btmux/src/hcode/btech/.svn/prop-base/
btmux/src/hcode/btech/.svn/props/
btmux/src/hcode/btech/.svn/text-base/
btmux/src/hcode/btech/.svn/wcprops/
btmux/src/hcode/include/.svn/
/* Brand level modifiers and failure resultant data here after included.
   Failure.h
   Created By: Nim
   Dated:      9 - 21 - 96
   
   Parts copyright (c) 2002 Thomas Wouters

   $Id: failures.h,v 1.1.1.1 2005/01/11 21:18:07 kstevens Exp $
   Last modified: Sat Jun  6 20:27:26 1998 fingon
 */

#ifndef _FAILURES_H
#define _FAILURES_H

#include "p.failures.h"

#define IsAutocannon(a) (MechWeapons[a].type == TAMMO)
#define IsEnergy(a) (MechWeapons[a].type==TBEAM)
/*#define IsFlamer(a) (MechWeapons[a].type==TBEAM && \
	strstr(MechWeapons[a].name, "Flamer")) */

/* these are types of modifiers */
#define HEAT	        1
#define RANGE	        2
#define DAMAGE	        3
#define POWER_SPIKE     4
#define WEAPON_JAMMED   5
#define WEAPON_DUD      6
#define CRAZY_MISSILES  7

#define FAIL_STATIC     1

/* these are catagories of damage */
#define FAIL_NONE 	  0
#define FAIL_JAMMED 	  1
#define FAIL_SHORTED      2
#define FAIL_DUD	  3
#define FAIL_EMPTY	  4
#define FAIL_DESTROYED    5
#define FAIL_AMMOJAMMED	  6
#define FAIL_AMMOCRITJAMMED 7

struct brand_data {
    char *name;
    short level;
    int success;
    int modifier;
};

struct failure_data {
    char *message;
    int data;			/* things like percent to alter */
    void (*func) (MECH *, int, int, int, int, int, int *, int *);
    int type;
    int flag;
};

/*  Brand keys 
   1 - This is absolute crap.
   2 - This is low end.
   3 - This is average.
   4 - These are supieror parts.
   5 - These are EXTREMELY RARE and EXTREMELY reliable
 */

#ifndef _FAILURES_C

extern struct brand_data brands[];
extern struct failure_data failures[];
#else
struct brand_data brands[] = {
    {"Lords", 1, 80, -40},	/* Energy weapons */
    {"Hesperus", 2, 90, -20},
    {"Martell", 3, 95, 0},
    {"Magna", 4, 100, 20},
    {"Agra", 5, 101, 40},

    {"Luxor", 1, 80, -40},	/* Autocannons */
    {"SperryBrowning", 2, 90, -20},
    {"Oriente", 3, 95, 0},
    {"Deprus", 4, 100, 20},
    {"Armstrong", 5, 101, 40},

    {"Coventry", 1, 80, -40},	/* Missiles */
    {"Shannon", 2, 90, -20},
    {"Bical", 3, 95, 0},
    {"Holly", 4, 100, 20},
    {"Telos", 5, 101, 40},

    {"Pynes", 1, 80, -40},	/* Flamers */
    {"Hotshot", 2, 90, -20},
    {"Firestorm", 3, 95, 0},
    {"Purity", 4, 100, 20},
    {"Ventra", 5, 101, 40},

    {"Dalban", 1, 80, -40},	/* Computers */
    {"Hartford", 2, 90, -20},
    {"Garet", 3, 95, 0},
    {"Ares", 4, 100, 20},
    {"Tek", 5, 101, 40},

    {"Duoteck", 1, 80, -40},	/* Radios */
    {"CeresCom", 2, 90, -20},
    {"Achernar", 3, 95, 0},
    {"Tek", 4, 100, 20},
    {"Iriad", 5, 101, 40},
};

#define REQ_HEAT 1
#define REQ_TARGET 2
#define REQ_TAC 3
#define REQ_LRS 4
#define REQ_SCANNERS 5
#define REQ_COMPUTER 6
#define REQ_RADIO 7

struct failure_data failures[] = {
#define 	ENERGY_INDEX	0
    /* Energy Weapons - 0 */

    {"%ch%crYour weapon fails to charge properly!%cn", 15,
	FailureWeaponDamage, FAIL_NONE, 0},
    {"%ch%crYour weapon fails to charge properly!%cn", 30,
	FailureWeaponDamage, FAIL_NONE, 0},
    {"%ch%crYour weapon fails to charge properly!%cn", 45,
	FailureWeaponDamage, FAIL_NONE, 0},
    {"%ch%crFailure in the weapon's cooling system ; too much heat produced!%cn",
	30, FailureWeaponHeat, FAIL_NONE, REQ_HEAT},
    {"%ch%crOdd energy reading from the weapon ; It seems to have gone offline!%cn",
	0, FailureWeaponSpike, FAIL_SHORTED, 0},
    {"%ch%crWeapon melts down!%cn", 0, FailureWeaponSpike, FAIL_SHORTED,
	0},

    /* Autocannons - 6 */
#define		AC_INDEX	6

    {"%ch%crRound misfires! .. and spirals off!%cn", 0,
	FailureWeaponDud, FAIL_NONE, 0},
    {"%ch%crRound not fired!  Dud!%cn", 0, FailureWeaponDud, FAIL_DUD, 0},
    {"%ch%crWeapon JAMS... clearing!%cn", 0, FailureWeaponJammed,
	FAIL_JAMMED, 0},
    {"%ch%crFailure in the weapon's cooling system, too much heat produced!%cn",
	20, FailureWeaponHeat, FAIL_NONE, REQ_HEAT},
    {"%ch%crFailure in the weapon's cooling system, too much heat produced!%cn",
	40, FailureWeaponHeat, FAIL_NONE, REQ_HEAT},
    {"%ch%crRound not fired!  STUCK in chamber!%cn", 0, FailureWeaponDud,
	FAIL_DUD, 0},

    /* Missiles - 12 */
#define 	MISSILE_INDEX	12

    {"%ch%crRack jams, attemping to clear!%cn", 0, FailureWeaponJammed,
	FAIL_JAMMED, 0},
    {"%ch%crSome of your missiles veer off course!%cn", 20,
	FailureWeaponMissiles, FAIL_NONE, 0},
    {"%ch%crSome of your missiles veer off course!%cn", 40,
	FailureWeaponMissiles, FAIL_NONE, 0},
    {"%ch%crGuidance Failure!  All missile veer off course!%cn", 100,
	FailureWeaponMissiles, FAIL_NONE, 0},
    {"%ch%crWeapon power spikes.. attempting to restart!%cn", 0,
	FailureWeaponSpike, FAIL_SHORTED, 0},
    {"%ch%crWeapon power spikes.. Electronics fused!!%cn", 0,
	FailureWeaponSpike, FAIL_SHORTED, 0},

    /* Flamer - 18 */
#define		FLAMMER_INDEX	18

    {"%ch%crGel line clogs, sending pressure through it now!%cn", 0,
	FailureWeaponJammed, FAIL_JAMMED, 0},
    {"%ch%crElectric ignition shorts out! Restarting!%cn", 0,
	FailureWeaponSpike, FAIL_SHORTED, 0},
    {"%ch%crFuel leaks on the chassis and ignites!%cn", 100,
	FailureWeaponHeat, FAIL_NONE, 0},

    {"%ch%crFuel at critical point!! Shutting down weapon to vent heat!%cn",
	0, FailureWeaponSpike, FAIL_SHORTED, 0},
    {"%ch%crEjection nozzel gums up!  Please wait while pressure is applied!%cn",
	0, FailureWeaponJammed, FAIL_JAMMED, 0},
    {"%ch%crFuel canisters explode!  No fuel left to burn!%cn", 0,
	FailureWeaponSpike, FAIL_EMPTY, 0},

    /* Computer - 24 */
#define		COMPUTER_INDEX	24

    {"%ch%crComputer Glitch!  Target lost, please reacquire!%cn", 0,
	FailureComputerTarget, FAIL_NONE, REQ_TARGET},
    {"%ch%crTactical shorts out! Fixing .. Please stand by.%cn", 1,
	FailureComputerScanner, FAIL_NONE, REQ_TAC},
    {"%ch%crLong Range Sensors short out! .. Fixing .. Please stand by.%cn",
	2, FailureComputerScanner, FAIL_NONE, REQ_LRS},
    {"%ch%crScanners short out! Fixing .. Please stand by.%cn", 4,
	FailureComputerScanner, FAIL_NONE, REQ_SCANNERS},
    {"%ch%crA sudden *SNAP* echos in your cockpit then all your displays die!%cn",
	7, FailureComputerScanner, FAIL_NONE, REQ_SCANNERS},
    {"%ch%crYou hear a loud *SNAP* *CRACKLE* and then everything powers down!%cn",
	0, FailureComputerShutdown, FAIL_NONE, REQ_COMPUTER},

    /* Radio - 30 */
#define		RADIO_INDEX	30
    {"none", 50, FailureRadioStatic, FAIL_NONE, 0},
    {"none", 70, FailureRadioStatic, FAIL_NONE, 0},
    {"%ch%crYour readouts register a power loss in your radio!%cn", 15,
	FailureRadioRange, FAIL_NONE, REQ_RADIO},
    {"%ch%crYour readouts register a power loss in your radio!%cn", 30,
	FailureRadioRange, FAIL_NONE, REQ_RADIO},
    {"%ch%crYour radio suddenly shorts out! Please wait for backup to come online!%cn",
	0, FailureRadioShort, FAIL_NONE, REQ_RADIO},
    {"%ch%crYour entire radio system suddenly shorts out!%cn", 0,
	FailureRadioShort, FAIL_NONE, REQ_RADIO}
};

#endif
#endif