#include <stdlib.h>
#include <limits.h>
#include <sys/cdefs.h>
#include <sys/time.h>
#include <math.h>
typedef int ch_ret;
typedef int obj_ret;
/*
* Accommodate old non-Ansi compilers.
*/
#if defined(TRADITIONAL)
#define const
#define args( list ) ( )
#define DECLARE_DO_FUN( fun ) void fun( )
#define DECLARE_SPEC_FUN( fun ) bool fun( )
#define DECLARE_SPELL_FUN( fun ) ch_ret fun( )
#else
#define args( list ) list
#define DECLARE_DO_FUN( fun ) DO_FUN fun
#define DECLARE_SPEC_FUN( fun ) SPEC_FUN fun
#define DECLARE_SPELL_FUN( fun ) SPELL_FUN fun
#endif
/* Stuff from newarena.c */
void show_jack_pot();
void do_game();
int num_in_arena();
void find_game_winner();
void do_end_game();
void start_game();
void silent_end();
void write_fame_list(void);
void load_hall_of_fame(void);
/*
* Short scalar types.
* Diavolo reports AIX compiler has bugs with short types.
*/
#if !defined(FALSE)
#define FALSE 0
#endif
#if !defined(TRUE)
#define TRUE 1
#endif
#if !defined(BERR)
#define BERR 255
#endif
#if defined(_AIX)
#if !defined(const)
#define const
#endif
typedef int sh_int;
typedef int bool;
#define unix
#else
typedef short int sh_int;
typedef unsigned char bool;
#endif
/*
* Structure types.
*/
typedef struct affect_data AFFECT_DATA;
typedef struct quest_data QUEST_DATA;
typedef struct area_data AREA_DATA;
typedef struct auction_data AUCTION_DATA; /* auction data */
typedef struct ban_data BAN_DATA;
typedef struct extracted_char_data EXTRACT_CHAR_DATA;
typedef struct bug_data BUG_DATA;
typedef struct contract_data CONTRACT_DATA;
typedef struct fellow_data FELLOW_DATA;
typedef struct char_data CHAR_DATA;
typedef struct hunt_hate_fear HHF_DATA;
typedef struct fighting_data FIGHT_DATA;
typedef struct descriptor_data DESCRIPTOR_DATA;
typedef struct exit_data EXIT_DATA;
typedef struct extra_descr_data EXTRA_DESCR_DATA;
typedef struct help_data HELP_DATA;
typedef struct menu_data MENU_DATA;
typedef struct mob_index_data MOB_INDEX_DATA;
typedef struct note_data NOTE_DATA;
typedef struct comment_data COMMENT_DATA;
typedef struct board_data BOARD_DATA;
typedef struct obj_data OBJ_DATA;
typedef struct obj_index_data OBJ_INDEX_DATA;
typedef struct pc_data PC_DATA;
typedef struct reset_data RESET_DATA;
typedef struct map_index_data MAP_INDEX_DATA; /* maps */
typedef struct map_data MAP_DATA; /* maps */
typedef struct room_index_data ROOM_INDEX_DATA;
typedef struct shop_data SHOP_DATA;
typedef struct repairshop_data REPAIR_DATA;
typedef struct time_info_data TIME_INFO_DATA;
typedef struct hour_min_sec HOUR_MIN_SEC;
typedef struct weather_data WEATHER_DATA;
typedef struct bounty_data BOUNTY_DATA;
typedef struct blackmarket_data BMARKET_DATA;
typedef struct cargo_data CARGO_DATA;
typedef struct planet_data PLANET_DATA;
typedef struct storeroom STOREROOM;
typedef struct guard_data GUARD_DATA;
typedef struct space_data SPACE_DATA;
typedef struct clan_data CLAN_DATA;
typedef struct jedi_data JEDI_DATA;
typedef struct senate_data SENATE_DATA;
typedef struct senate2_data SENATE2_DATA;
typedef struct ship_data SHIP_DATA;
typedef struct module_data MODULE_DATA;
typedef struct hanger_data HANGER_DATA;
typedef struct turret_data TURRET_DATA;
typedef struct ship_prototype_data SHIP_PROTOTYPE;
typedef struct missile_data MISSILE_DATA;
typedef struct tourney_data TOURNEY_DATA;
typedef struct mob_prog_data MPROG_DATA;
typedef struct mob_prog_act_list MPROG_ACT_LIST;
typedef struct mpsleep_data MPSLEEP_DATA;
typedef struct editor_data EDITOR_DATA;
typedef struct teleport_data TELEPORT_DATA;
typedef struct timer_data TIMER;
typedef struct godlist_data GOD_DATA;
typedef struct system_data SYSTEM_DATA;
typedef struct smaug_affect SMAUG_AFF;
typedef struct who_data WHO_DATA;
typedef struct skill_type SKILLTYPE;
typedef struct social_type SOCIALTYPE;
typedef struct cmd_type CMDTYPE;
typedef struct killed_data KILLED_DATA;
typedef struct wizent WIZENT;
typedef struct member_data MEMBER_DATA; /* Individual member data */
typedef struct member_list MEMBER_LIST; /* List of members in clan */
typedef struct membersort_data MS_DATA; /* List for sorted roster list */
/*
* Function types.
*/
typedef void DO_FUN args( ( CHAR_DATA *ch, char *argument ) );
typedef bool SPEC_FUN args( ( CHAR_DATA *ch ) );
typedef ch_ret SPELL_FUN args( ( int sn, int level, CHAR_DATA *ch, void *vo ) );
#define DUR_CONV 23.333333333333333333333333
#define HIDDEN_TILDE '*'
#define BV00 (1 << 0)
#define BV01 (1 << 1)
#define BV02 (1 << 2)
#define BV03 (1 << 3)
#define BV04 (1 << 4)
#define BV05 (1 << 5)
#define BV06 (1 << 6)
#define BV07 (1 << 7)
#define BV08 (1 << 8)
#define BV09 (1 << 9)
#define BV10 (1 << 10)
#define BV11 (1 << 11)
#define BV12 (1 << 12)
#define BV13 (1 << 13)
#define BV14 (1 << 14)
#define BV15 (1 << 15)
#define BV16 (1 << 16)
#define BV17 (1 << 17)
#define BV18 (1 << 18)
#define BV19 (1 << 19)
#define BV20 (1 << 20)
#define BV21 (1 << 21)
#define BV22 (1 << 22)
#define BV23 (1 << 23)
#define BV24 (1 << 24)
#define BV25 (1 << 25)
#define BV26 (1 << 26)
#define BV27 (1 << 27)
#define BV28 (1 << 28)
#define BV29 (1 << 29)
#define BV30 (1 << 30)
#define BV31 (1 << 31)
/* 32 USED! DO NOT ADD MORE! SB */
/*
* String and memory management parameters.
*/
#define MAX_KEY_HASH 2048
#define MAX_STRING_LENGTH 4096 /* buf */
#define MAX_INPUT_LENGTH 1024 /* arg */
#define MAX_INBUF_SIZE 1024
#define MAX_MOB_COUNT 10
#define HASHSTR /* use string hashing */
#define MAX_LAYERS 8 /* maximum clothing layers */
#define MAX_NEST 100 /* maximum container nesting */
#define MAX_KILLTRACK 20 /* track mob vnums killed */
/*
* Game parameters.
* Increase the max'es if you add more of something.
* Adjust the pulse numbers to suit yourself.
*/
#define MAX_EXP_WORTH 500000
#define MIN_EXP_WORTH 25
#define MAX_REXITS 20 /* Maximum exits allowed in 1 room */
#define MAX_SKILL 282
#define MAX_NSKILL 43
#define MAX_FSKILL 19
#define MAX_STAT 41
#define MAX_ABILITY 36
#define BASE_CLASS 7
#define MAX_RL_ABILITY 8
#define MAX_RACE 40
#define MAX_DROID 6
#define MAX_NPC_RACE 91
#define MAX_ATMO 8
#define MAX_STANCE 13
#define MAX_BLASTERS 5
#define MAX_LASERS 10
#define MAX_TURBO 9
#define MAX_MISSILES 6
#define MAX_IONS 3
#define MAX_STAT 41
#define MAX_LEVEL 36
#define MAX_PART 15
#define MAX_SIZE 9
#define MAX_CLAN 50
#define MAX_PLANET 30
#define MAX_SHIP 1000
#define MAX_SHIP_ROOMS 25
#define MAX_BOUNTY 255
#define MAX_GOV 255
#define MAX_HERB 20
#define LEVEL_HERO (MAX_LEVEL - 4)
#define LEVEL_IMMORTAL (MAX_LEVEL - 4)
#define LEVEL_SUPREME MAX_LEVEL
#define LEVEL_INFINITE (MAX_LEVEL - 4)
#define LEVEL_ETERNAL (MAX_LEVEL - 4)
#define LEVEL_IMPLEMENTOR (MAX_LEVEL)
#define LEVEL_SUB_IMPLEM (MAX_LEVEL - 1)
#define LEVEL_ASCENDANT (MAX_LEVEL - 2)
#define LEVEL_GREATER (MAX_LEVEL - 3)
#define LEVEL_LESSER (MAX_LEVEL - 4)
#define LEVEL_RETIRED (MAX_LEVEL - 5)
#define LEVEL_GOD (MAX_LEVEL - 4)
#define LEVEL_TRUEIMM (MAX_LEVEL - 4)
#define LEVEL_DEMI (MAX_LEVEL - 4)
#define LEVEL_SAVIOR (MAX_LEVEL - 4)
#define LEVEL_CREATOR (MAX_LEVEL - 4)
#define LEVEL_ACOLYTE (MAX_LEVEL - 4)
#define LEVEL_NEOPHYTE (MAX_LEVEL - 4)
#define LEVEL_AVATAR (MAX_LEVEL - 5)
#include "pfiles.h"
#define LEVEL_LOG LEVEL_LESSER
#define LEVEL_HIGOD LEVEL_GOD
#define OBJ_VNUM_DEED 67 /* vnum of deed */
#define PULSE_PER_SECOND 4
#define PULSE_MINUTE ( 60 * PULSE_PER_SECOND)
#define PULSE_VIOLENCE ( 3 * PULSE_PER_SECOND)
#define PULSE_MOBILE ( 4 * PULSE_PER_SECOND)
#define PULSE_TICK ( 70 * PULSE_PER_SECOND)
#define PULSE_AREA ( 60 * PULSE_PER_SECOND)
#define PULSE_AUCTION ( 10 * PULSE_PER_SECOND)
#define PULSE_SPACE ( 10 * PULSE_PER_SECOND)
#define PULSE_TAXES ( 60 * PULSE_MINUTE)
#define PULSE_ARENA (30 * PULSE_PER_SECOND)
#define PULSE_FORCE PULSE_MINUTE
/*
* Command logging types.
*/
typedef enum
{
LOG_NORMAL, LOG_ALWAYS, LOG_NEVER, LOG_BUILD, LOG_HIGH, LOG_COMM, LOG_ALL
} log_types;
/*
* Return types for move_char, damage, greet_trigger, etc, etc
* Added by Thoric to get rid of bugs
*/
typedef enum
{
rNONE, rCHAR_DIED, rVICT_DIED, rBOTH_DIED, rCHAR_QUIT, rVICT_QUIT,
rBOTH_QUIT, rSPELL_FAILED, rOBJ_SCRAPPED, rOBJ_EATEN, rOBJ_EXPIRED,
rOBJ_TIMER, rOBJ_SACCED, rOBJ_QUAFFED, rOBJ_USED, rOBJ_EXTRACTED,
rOBJ_DRUNK, rCHAR_IMMUNE, rVICT_IMMUNE, rCHAR_AND_OBJ_EXTRACTED = 128,
rERROR = 255
} ret_types;
/* Begin new force defines */
typedef enum
{
FORCE_INROOM,FORCE_ANYWHERE
} force_locations;
typedef enum
{
FORCE_SKILL_REFRESH,FORCE_SKILL_FINFO,FORCE_SKILL_STUDENT,FORCE_SKILL_MASTER,FORCE_SKILL_IDENTIFY,
FORCE_SKILL_PROMOTE,FORCE_SKILL_INSTRUCT,FORCE_SKILL_HEAL,FORCE_SKILL_PROTECT,FORCE_SKILL_SHIELD,
FORCE_SKILL_WHIRLWIND,FORCE_SKILL_STRIKE,FORCE_SKILL_SQUEEZE,FORCE_SKILL_FORCE_LIGHTNING,
FORCE_SKILL_DISGUISE,FORCE_SKILL_MAKELIGHTSABER,FORCE_SKILL_PARRY,FORCE_SKILL_FINISH,
FORCE_SKILL_FHELP,FORCE_SKILL_DUALLIGHTSABER,FORCE_SKILL_REFLECT,FORCE_SKILL_CONVERT,
FORCE_SKILL_MAKEDUALSABER, FORCE_SKILL_AWARENESS
} force_skills_type;
typedef enum
{
FORCE_NONCOMBAT,FORCE_COMBAT,FORCE_NORESTRICT
} force_skill_types;
typedef enum
{
FORCE_NONE,FORCE_APPRENTICE,FORCE_KNIGHT,FORCE_MASTER
} force_level_type;
typedef enum
{
FORCE_GENERAL,FORCE_JEDI,FORCE_SITH
} force_skills_class;
#define MAX_FORCE_SKILL 24
typedef struct force_skills_struct FORCE_SKILL;
struct force_skills_struct
{
int type;
int index;
char *name;
char *room_effect[5];
char *victim_effect[5];
char *ch_effect[5];
int cost;
int control;
int alter;
int sense;
char *code;
int status;
int wait_state;
int disabled;
int notskill;
int mastertrain;
DO_FUN *do_fun;
FORCE_SKILL *next;
FORCE_SKILL *prev;
};
FORCE_SKILL *first_force_skill;
FORCE_SKILL *last_force_skill;
#define MAX_FORCE_ALIGN 100
#define MIN_FORCE_ALIGN -100
typedef struct force_help_struct FORCE_HELP;
struct force_help_struct
{
char *name;
int status;
int type;
char *desc;
int skill;
FORCE_HELP *next;
FORCE_HELP *prev;
};
FORCE_HELP *first_force_help;
FORCE_HELP *last_force_help;
/* End force defines */
/* Echo types for echo_to_all */
#define ECHOTAR_ALL 0
#define ECHOTAR_PC 1
#define ECHOTAR_IMM 2
/* defines for new do_who */
#define WT_MORTAL 0
#define WT_IMM 2
#define WT_AVATAR 1
#define WT_NEWBIE 3
/*
* do_who output structure -- Narn
*/
struct who_data
{
WHO_DATA *prev;
WHO_DATA *next;
char *text;
int type;
};
/*
* Site ban structure.
*/
struct ban_data
{
BAN_DATA * next;
BAN_DATA * prev;
char * name;
int level;
char * ban_time;
};
/*
* Time and weather stuff.
*/
typedef enum
{
SUN_DARK, SUN_RISE, SUN_LIGHT, SUN_SET
} sun_positions;
typedef enum
{
SKY_CLOUDLESS, SKY_CLOUDY, SKY_RAINING, SKY_LIGHTNING
} sky_conditions;
struct time_info_data
{
int hour;
int day;
int month;
int year;
};
struct hour_min_sec
{
int hour;
int min;
int sec;
int manual;
};
struct weather_data
{
int mmhg;
int change;
int sky;
int sunlight;
};
/*
* Structure used to build wizlist
*/
struct wizent
{
WIZENT * next;
WIZENT * last;
char * name;
sh_int level;
};
/*
* Connected state for a channel.
*/
typedef enum
{
CON_PLAYING, CON_GET_NAME, CON_GET_OLD_PASSWORD,
CON_CONFIRM_NEW_NAME, CON_GET_NEW_PASSWORD, CON_CONFIRM_NEW_PASSWORD,
CON_GET_NEW_SEX, CON_READ_MOTD,
CON_GET_NEW_RACE, CON_GET_EMULATION, CON_EDITING,
CON_GET_WANT_RIPANSI, CON_TITLE, CON_PRESS_ENTER,
CON_WAIT_1, CON_WAIT_2, CON_WAIT_3,
CON_ACCEPTED, CON_GET_PKILL, CON_READ_IMOTD,
CON_GET_AGE, CON_GET_MSP, CON_GET_NEW_CLASS,
CON_GET_NEW_SECOND, CON_ROLL_STATS, CON_STATS_OK,
CON_COPYOVER_RECOVER, CON_GET_PUEBLO, CON_GET_HEIGHT,
CON_GET_BUILD, CON_GET_DROID
} connection_types;
/*
* Character substates
*/
typedef enum
{
SUB_NONE, SUB_PAUSE, SUB_PERSONAL_DESC, SUB_OBJ_SHORT, SUB_OBJ_LONG,
SUB_OBJ_EXTRA, SUB_MOB_LONG, SUB_MOB_DESC, SUB_ROOM_DESC, SUB_ROOM_EXTRA,
SUB_ROOM_EXIT_DESC, SUB_WRITING_NOTE, SUB_MPROG_EDIT, SUB_HELP_EDIT,
SUB_WRITING_MAP, SUB_PERSONAL_BIO, SUB_REPEATCMD, SUB_RESTRICTED,
SUB_DEITYDESC,SUB_SHIPDESC,SUB_FORCE_CH0,SUB_FORCE_CH1,SUB_FORCE_CH2,
SUB_FORCE_CH3,SUB_FORCE_CH4,SUB_FORCE_ROOM0,SUB_FORCE_ROOM1,SUB_FORCE_ROOM2,
SUB_FORCE_ROOM3,SUB_FORCE_ROOM4,SUB_FORCE_VICTIM0,SUB_FORCE_VICTIM1,SUB_FORCE_VICTIM2,
SUB_FORCE_VICTIM3,SUB_FORCE_VICTIM4,SUB_FORCE_HELP,
/* timer types ONLY below this point */
SUB_TIMER_DO_ABORT = 128, SUB_TIMER_CANT_ABORT
} char_substates;
/*
* Descriptor (channel) structure.
*/
struct descriptor_data
{
DESCRIPTOR_DATA * next;
DESCRIPTOR_DATA * prev;
DESCRIPTOR_DATA * snoop_by;
CHAR_DATA * character;
CHAR_DATA * original;
char * host;
char * hostip;
int port;
int descriptor;
sh_int connected;
sh_int idle;
sh_int lines;
sh_int scrlen;
bool fcommand;
char inbuf [MAX_INBUF_SIZE];
char incomm [MAX_INPUT_LENGTH];
char inlast [MAX_INPUT_LENGTH];
int repeat;
char * outbuf;
unsigned long outsize;
int outtop;
char * pagebuf;
unsigned long pagesize;
int pagetop;
char * pagepoint;
char pagecmd;
char pagecolor;
int auth_inc;
int auth_state;
char abuf[ 256 ];
int auth_fd;
char * user;
int atimes;
int newstate;
unsigned char prevcolor;
};
/*
* Attribute bonus structures.
*/
struct str_app_type
{
sh_int tohit;
sh_int todam;
sh_int carry;
sh_int wield;
};
struct int_app_type
{
sh_int learn;
};
struct wis_app_type
{
sh_int practice;
};
struct dex_app_type
{
sh_int defensive;
};
struct con_app_type
{
sh_int hitp;
sh_int shock;
};
struct cha_app_type
{
sh_int charm;
};
struct lck_app_type
{
sh_int luck;
};
struct frc_app_type
{
sh_int force;
};
/* ability classes */
#define ABILITY_NONE -1
#define FRINGER_ABILITY 0
#define NOBLE_ABILITY 1
#define SCOUNDREL_ABILITY 2
#define SCOUT_ABILITY 3
#define SOLDIER_ABILITY 4
#define TECH_SPEC_ABILITY 5
#define FORCE_ADEPT_ABILITY 6
#define JEDICONSULAR_ABILITY 7
#define JEDIGUARDIAN_ABILITY 8
#define BOUNTYHUNTER_ABILITY 9
#define CRIMELORD_ABILITY 10
#define DEVOTEE_ABILITY 11
#define MARAUDER_ABILITY 12
#define TROOPER_ABILITY 13
#define JEDIACE_ABILITY 14
#define INVESTIGATOR_ABILITY 15
#define JEDIMASTER_ABILITY 16
#define STARSHIPACE_ABILITY 17
#define ENGINEER_ABILITY 18
#define INFILTRATOR_ABILITY 19
#define PROTECTOR_ABILITY 20
#define MARTIALARTS_ABILITY 21
#define SLICER_ABILITY 22
#define WITCH_ABILITY 23
#define ACOLYTE_ABILITY 24
#define SITHLORD_ABILITY 25
#define SITHWARRIOR_ABILITY 26
#define ANTARIAN_ABILITY 27
#define ENFORCER_ABILITY 28
#define VIGO_ABILITY 29
#define BROKER_ABILITY 30
#define NOBLELORD_ABILITY 31
#define ESPIONAGE_ABILITY 32
#define BERSERKER_ABILITY 33
#define AEROBAT_ABILITY 34
#define MYSTICAGENT_ABILITY 35
/* the races */
#define RACE_ANOMID 0
#define RACE_ARKANIAN 1
#define RACE_BARTOKK 2
#define RACE_CEREAN 3
#define RACE_CHAGRIAN 4
#define RACE_DASHADE 5
#define RACE_DEFEL 6
#define RACE_DRALL 7
#define RACE_DROID 8
#define RACE_FALLEEN 9
#define RACE_HODIN 10
#define RACE_HUMAN 11
#define RACE_HUTT 12
#define RACE_IKTOTCHI 13
#define RACE_JAWA 14
#define RACE_KELDOR 15
#define RACE_KLATOOINIAN 16
#define RACE_MIRALUKA 17
#define RACE_MON_CALAMARI 18
#define RACE_MUUN 19
#define RACE_NOGHRI 20
#define RACE_QUARREN 21
#define RACE_RODIAN 22
#define RACE_RYN 23
#define RACE_SKYTRI 24
#define RACE_SULLUSTAN 25
#define RACE_TOGORIAN 26
#define RACE_TOGRUTA 27
#define RACE_TRANDOSHAN 28
#define RACE_TWILEK 29
#define RACE_UBESE 30
#define RACE_UMBARAN 31
#define RACE_VERPINE 32
#define RACE_WEEQUAY 33
#define RACE_WOOKIEE 34
#define RACE_WOOSTOID 35
#define RACE_ZELTRON 36
#define DROID_NONE 0
#define DROID_FIRST 1
#define DROID_SECOND 2
#define DROID_THRID 3
#define DROID_FOURTH 4
#define DROID_FIFTH 5
/* Non-Force Skills */
#define APPRAISE_SKILL 0
#define ASTROGATE_SKILL 1
#define BALANCE_SKILL 2
#define CLIMB_SKILL 3
#define COMPUTER_SKILL 4
#define CRAFT_ARMOR 5
#define CRAFT_BLASTERS 6
#define CRAFT_COMPUTER 7
#define CRAFT_DROID 8
#define CRAFT_DEVICE 9
#define CRAFT_LIGHTSABER 10
#define CRAFT_BOWCASTER 11
#define CRAFT_HEAVY 12
#define CRAFT_HYPERDRIVE 13
#define CRAFT_MEDPAC 14
#define CRAFT_SIMPLE 15
#define CRAFT_SLUG 16
#define CRAFT_MIDSHIP 17
#define CRAFT_FIGHTER 18
#define CRAFT_STARWEAP 19
#define CRAFT_VIBRO 20
#define DEMOLITIONS_SKILL 21
#define DIPLOMACY_SKILL 22
#define DISABLE_DEVICE 23
#define DISGUISE_SKILL 24
#define ESCAPE_ARTIST 25
#define GAMBLE_SKILL 26
#define GATHER_INFO 27
#define HIDE_SKILL 28
#define INTIMIDATE_SKILL 29
#define LISTEN_SKILL 30
#define MOVE_SILENTLY 31
#define PILOT_SKILL 32
#define REPAIR_SKILL 33
#define RIDE_SKILL 34
#define SEARCH_SKILL 35
#define SLEIGHT_OF_HAND 36
#define SPEAK_LANG 37
#define SPOT_SKILL 38
#define SURVIVAL_SKILL 39
#define SWIM_SKILL 40
#define TREAT_INJURY 41
#define TUMBLE_SKILL 42
/* Force Skills */
#define ALCHEMY_SKILL 0
#define AFFECT_MIND 1
#define BATTLEMIND_SKILL 2
#define DRAIN_ENERGY 3
#define ENHANCE_ABILITY 4
#define ENHANCE_SENSES 5
#define FARSEEING_SKILL 6
#define FEAR_SKILL 7
#define FORCE_DEFENSE 8
#define FORCE_GRIP 9
#define FORCE_LIGHTNING 10
#define FORCE_STEALTH 11
#define FORCE_STRIKE 12
#define HEAL_OTHER 13
#define HEAL_SELF 14
#define ILLUSION_SKILL 15
#define MOVE_OBJECT 16
#define SEE_FORCE 17
#define TELEPATHY_SKILL 18
/* Feats */
#define ALERTNESS_FEAT BV00
#define AMBIDEXTERITY_FEAT BV01
#define ATHLETIC_FEAT BV02
#define BLIND_FIGHT BV03
#define CAUTIOUS_FEAT BV04
#define DODGE_FEAT BV05
#define FAME_FEAT BV06
#define FORCE_SENSITIVE BV07
#define FRIGHTFUL_PRESENSE BV08
#define GEARHEAD_FEAT BV09
#define GREAT_FORTITUDE BV10
#define HEADSTRONG_FEAT BV11
#define IMPROVED_DISARM BV12
#define IMPROVED_TRIP BV13
#define IMPROVED_TWO_WEAPON BV14
#define INFAMY_FEAT BV15
#define INFLUENCE_FEAT BV16
#define IRON_WILL BV17
#define LIGHTNING_REFLEXES BV18
#define LOW_PROFILE BV19
#define NIMBLE_FEAT BV20
#define QUICKNESS_FEAT BV21
#define RUGGED_FEAT BV22
#define SHARP_EYED BV23
#define SKILL_EMPHASIS BV24
#define SPACER_FEAT BV25
#define STARSHIP_DODGE BV26
#define FIGHTER_OPS BV27
#define MIDSHIP_OPS BV28
#define CAPITAL_OPS BV29
#define STEADY_FEAT BV30
#define STEALTHY_FEAT BV31
/* More Feats */
#define TRACK_FEAT BV00
#define TWO_WEAP_FIGHTING BV01
#define WEAP_PROF_PISTOLS BV02
#define WEAP_PROF_RIFLES BV03
#define WEAP_PROF_HEAVY BV04
#define WEAP_PROF_PRIMITIVE BV05
#define WEAP_PROF_SIMPLE BV06
#define WEAP_PROF_VIBRO BV07
#define WEAP_PROF_LIGHTSABER BV08
#define WEAP_PROF_BOWCASTER BV09
#define IMP_CRITICAL_PISTOLS BV10
#define IMP_CRITICAL_RIFLES BV11
#define IMP_CRITICAL_HEAVY BV12
#define IMP_CRITICAL_PRIMITIVE BV13
#define IMP_CRITICAL_SIMPLE BV14
#define IMP_CRITICAL_VIBRO BV15
#define IMP_CRITICAL_LIGHTSABER BV16
#define IMP_CRITICAL_BOWCASTER BV17
#define ARMOR_LIGHT BV18
#define ARMOR_MEDIUM BV19
#define ARMOR_HEAVY BV20
#define ARMOR_POWERED BV21
#define MARTIAL_ARTS BV22
#define DEF_MARTIAL_ARTS BV23
#define IMP_MARTIAL_ARTS BV24
#define ADV_MARTIAL_ARTS BV25
#define WEAP_PROF_FORCEPIKE BV26
#define IMP_CRITICAL_FORCEPIKE BV27
#define BARTER_FEAT BV28
#define ILLICIT_BARTER BV29
#define TRAILBLAZING_FEAT BV30
#define UNCANNY_DODGE BV31
/* More Feats */
#define COVERT_MOVEMENT BV00
#define UNCANNY_HIDE BV01
#define HARMS_WAY BV02
#define HALF_BLASTER BV03
#define FULL_BLASTER BV04
#define GRAND_MASTER BV05
#define AMBUSH_FEAT BV06
#define TEAMWORK_FEAT BV07
#define PATRON_FEAT BV08
#define TRANSPLANT_FEAT BV09
#define AERIAL_EVASION BV10
/* Force Feats */
#define ALTER_FEAT BV00
#define ATTUNED_FEAT BV01
#define AWARE_FEAT BV02
#define CONTROL_FEAT BV03
#define DISSIPATE_ENERGY BV04
#define FOCUS_FEAT BV05
#define FORCE_FLIGHT BV06
#define FORCE_MIND BV07
#define FORCE_WHIRLWIND BV08
#define IMP_FORCE_MIND BV09
#define KNIGHT_DEFENSE BV10
#define KNIGHT_MIND BV11
#define LIGHTSABER_DEFENSE BV12
#define LINK_FEAT BV13
#define MALEVOLENT_FEAT BV14
#define MASTER_DEFENSE BV15
#define MASTER_MIND BV16
#define METTLE_FEAT BV17
#define MIND_TRICK BV18
#define RAGE_FEAT BV19
#define SENSE_FEAT BV20
#define SPIDER_WALK BV21
#define SUMMON_STORM BV22
#define ENSHROUD_FEAT BV23
#define SITH_SORCERY BV24
#define DRAIN_FORCE BV25
#define HATRED_FEAT BV26
#define POINT_BLANK BV27
#define PRECISE_SHOT BV28
#define FAR_SHOT BV29
#define RAPID_SHOT BV30
/* Languages */
#define LANG_BASIC BV00
#define LANG_ARKANIAN BV01
#define LANG_BINARY BV02
#define LANG_CEREAN BV03
#define LANG_CHAGRI BV04
#define LANG_DASHADI BV05
#define LANG_DEFEL BV06
#define LANG_DOSH BV07
#define LANG_DRALLISH BV08
#define LANG_FALLEEN BV09
#define LANG_HODIN BV10
#define LANG_HUTTESE BV11
#define LANG_IKTOTCHESE BV12
#define LANG_JAWA BV13
#define LANG_KELDOR BV14
#define LANG_LEKKU BV15
#define LANG_MIRALUKESE BV16
#define LANG_MON_CALAMARIAN BV17
#define LANG_MUUN BV18
#define LANG_NOGHRI BV19
#define LANG_RODESE BV20
#define LANG_RYN BV21
#define LANG_SHYRIIWOOK BV22
#define LANG_SKYTRIC BV23
#define LANG_SRILUURIAN BV24
#define LANG_SULLUSTESE BV25
#define LANG_TOGORIAN BV26
#define LANG_TOGRUTI BV27
#define LANG_UBESE BV28
#define LANG_UMBARESE BV29
#define LANG_VERPINE BV30
#define LANG_CLAN BV31
#define LANG_UNKNOWN 0
#define VALID_LANGS ( LANG_ARKANIAN | LANG_BASIC | LANG_BINARY | LANG_CEREAN | LANG_CHAGRI \
| LANG_DASHADI | LANG_DEFEL | LANG_DRALLISH | LANG_FALLEEN | LANG_HODIN \
| LANG_HUTTESE | LANG_IKTOTCHESE | LANG_JAWA | LANG_KELDOR | LANG_MIRALUKESE \
| LANG_MON_CALAMARIAN | LANG_MUUN | LANG_NOGHRI | LANG_RODESE | LANG_RYN \
| LANG_SKYTRIC | LANG_SULLUSTESE | LANG_TOGORIAN | LANG_TOGRUTI | LANG_DOSH \
| LANG_LEKKU | LANG_UBESE | LANG_UMBARESE | LANG_VERPINE | LANG_SRILUURIAN \
| LANG_SHYRIIWOOK | LANG_CLAN )
/* Stances */
#define STANCE_NONE 0
#define ECHANI_STANCE 1
#define KTARA_STANCE 2
#define KTHRI_STANCE 3
#define STAVA_STANCE 4
#define WRRUUSHI_STANCE 5
#define FORM1_STANCE 6
#define FORM2_STANCE 7
#define FORM3_STANCE 8
#define FORM4_STANCE 9
#define FORM5_STANCE 10
#define FORM6_STANCE 11
#define FORM7_STANCE 12
/* Stance Bit Vectors */
#define ECHANI_BASIC BV00
#define ECHANI_EXPERTISE BV01
#define ECHANI_MASTERY BV02
#define KTARA_BASIC BV03
#define KTARA_EXPERTISE BV04
#define KTARA_MASTERY BV05
#define KTHRI_BASIC BV06
#define KTHRI_EXPERTISE BV07
#define KTHRI_MASTERY BV08
#define STAVA_BASIC BV09
#define STAVA_EXPERTISE BV10
#define STAVA_MASTERY BV11
#define WRRUUSHI_BASIC BV12
#define WRRUUSHI_EXPERTISE BV13
#define WRRUUSHI_MASTERY BV14
#define FORM1_MASTERY BV15
#define FORM2_MASTERY BV16
#define FORM3_MASTERY BV17
#define FORM4_MASTERY BV18
#define FORM5_MASTERY BV19
#define FORM6_MASTERY BV20
#define FORM7_MASTERY BV21
/* Droid Feats */
#define ADV_MARTIAL_PROGRAMMING BV00
#define DEF_MARTIAL_PROGRAMMING BV01
#define IMP_MARTIAL_PROGRAMMING BV02
#define MARTIAL_PROGRAMMING BV03
#define ARMOR_LIGHT_DROID BV04
#define ARMOR_MEDIUM_DROID BV05
#define ARMOR_HEAVY_DROID BV06
#define DROID_COMLINK BV07
#define DIAGNOSTICS_PACKAGE BV08
#define ELECTROSHOCK_PROBE BV09
#define FLAMETHROWER_FEAT BV10
#define INTERNAL_STORAGE BV11
#define LOCKED_ACCESS BV12
#define MAGNETIC_FEET BV13
#define RUST_INHIBITOR BV14
#define SELFDESTRUCT_SYSTEM BV15
#define IMPROVED_SENSOR BV16
#define INFRARED_VISION BV17
#define MOTION_SENSORS BV18
#define SONIC_SENSORS BV19
#define DEGREE_VISION BV20
#define SHIELD_GENERATOR BV21
#define VOCABULATOR_FEAT BV22
#define COMLINK_FEAT BV23
/* Cybernetic bits */
#define CYBER_IMP_HAND BV01
#define CYBER_IMP_ARM BV02
#define CYBER_ADV_HAND BV03
#define CYBER_ADV_ARM BV04
#define CYBER_BASE_EYE BV05
#define CYBER_IR_EYE BV06
#define CYBER_OPTIC_EYE BV07
#define CYBER_TARGET_EYE BV08
#define CYBER_COMLINK BV09
#define CYBER_SKELETAL BV10
#define CYBER_TREMOR BV11
#define CYBER_AJ6 BV12
#define CYBER_SENSORY BV13
#define CAF_IMP_ARM 1
#define CAF_ADV_ARM 2
#define CAF_IMP_HAND 3
#define CAF_ADV_HAND 4
#define CAF_IR_EYE 5
#define CAF_OPTIC_EYE 6
#define CAF_TARGET_EYE 7
#define CAF_SKELETAL 8
#define CAF_AJ6 9
#define CAF_COMLINK 10
#define CAF_SENSOR 11
#define CAF_TREMOR 12
/* Master / Trained */
#define NO_MASTER 0
#define HAS_MASTER 1
#define NOT_TRAINED 0
#define HAS_TRAINED 1
#define NO_INVEST 0
#define YES_INVEST 1
/* Force Status */
#define STATUS_NONE 0
#define STATUS_PADAWAN 1
#define STATUS_JEDI_KNIGHT 2
#define STATUS_JEDI_MASTER 3
#define STATUS_DARK_PADAWAN 4
#define STATUS_DARK_KNIGHT 5
#define STATUS_DARK_MASTER 6
#define STATUS_SITH_APPRENTICE 7
#define STATUS_SITH_LORD 8
#define STATUS_SITH_MASTER 9
#define STATUS_FORCE_SENSITIVE 10
/* TO types for act. */
#define TO_ROOM 0
#define TO_NOTVICT 1
#define TO_VICT 2
#define TO_CHAR 3
#define TO_MUD 4
/*
* Real action "TYPES" for act.
*/
#define AT_BLACK 0
#define AT_BLOOD 1
#define AT_DGREEN 2
#define AT_ORANGE 3
#define AT_DBLUE 4
#define AT_PURPLE 5
#define AT_CYAN 6
#define AT_GREY 7
#define AT_DGREY 8
#define AT_RED 9
#define AT_GREEN 10
#define AT_YELLOW 11
#define AT_BLUE 12
#define AT_PINK 13
#define AT_LBLUE 14
#define AT_WHITE 15
#define AT_BLINK 16
#define AT_PLAIN AT_GREY
#define AT_ACTION AT_GREY
#define AT_SAY AT_LBLUE
#define AT_GOSSIP AT_LBLUE
#define AT_YELL AT_WHITE
#define AT_TELL AT_BLUE
#define AT_HIT AT_WHITE
#define AT_HITME AT_YELLOW
#define AT_OOC AT_YELLOW
#define AT_IMMORT AT_WHITE
#define AT_AVATAR AT_BLUE
#define AT_HURT AT_RED
#define AT_FALLING AT_WHITE + AT_BLINK
#define AT_DANGER AT_RED + AT_BLINK
#define AT_MAGIC AT_BLUE
#define AT_CONSIDER AT_GREY
#define AT_REPORT AT_GREY
#define AT_POISON AT_GREEN
#define AT_SOCIAL AT_CYAN
#define AT_DYING AT_YELLOW
#define AT_DEAD AT_RED
#define AT_SKILL AT_GREEN
#define AT_CARNAGE AT_BLOOD
#define AT_DAMAGE AT_WHITE
#define AT_FLEE AT_YELLOW
#define AT_RMNAME AT_WHITE
#define AT_RMDESC AT_GREY
#define AT_OBJECT AT_GREEN
#define AT_PERSON AT_PINK
#define AT_LIST AT_BLUE
#define AT_BYE AT_GREEN
#define AT_GOLD AT_YELLOW
#define AT_GTELL AT_BLUE
#define AT_NOTE AT_GREEN
#define AT_HUNGRY AT_ORANGE
#define AT_THIRSTY AT_BLUE
#define AT_FIRE AT_RED
#define AT_SOBER AT_WHITE
#define AT_WEAROFF AT_YELLOW
#define AT_EXITS AT_WHITE
#define AT_SCORE AT_LBLUE
#define AT_RESET AT_DGREEN
#define AT_LOG AT_PURPLE
#define AT_DIEMSG AT_WHITE
#define AT_WARTALK AT_RED
#define AT_SHIP AT_PINK
#define AT_CLAN AT_PINK
#define INIT_WEAPON_CONDITION 12
#define MAX_ITEM_IMPACT 30
/*
* Help table types.
*/
struct help_data
{
HELP_DATA * next;
HELP_DATA * prev;
sh_int level;
char * keyword;
char * text;
};
/*
* Shop types.
*/
#define MAX_TRADE 5
struct shop_data
{
SHOP_DATA * next; /* Next shop in list */
SHOP_DATA * prev; /* Previous shop in list */
int keeper; /* Vnum of shop keeper mob */
sh_int buy_type [MAX_TRADE]; /* Item types shop will buy */
sh_int profit_buy; /* Cost multiplier for buying */
sh_int profit_sell; /* Cost multiplier for selling */
sh_int open_hour; /* First opening hour */
sh_int close_hour; /* First closing hour */
};
#define MAX_FIX 3
#define SHOP_FIX 1
#define SHOP_RECHARGE 2
struct repairshop_data
{
REPAIR_DATA * next; /* Next shop in list */
REPAIR_DATA * prev; /* Previous shop in list */
int keeper; /* Vnum of shop keeper mob */
sh_int fix_type [MAX_FIX]; /* Item types shop will fix */
sh_int profit_fix; /* Cost multiplier for fixing */
sh_int shop_type; /* Repair shop type */
sh_int open_hour; /* First opening hour */
sh_int close_hour; /* First closing hour */
};
/* Mob program structures */
/* Mob program structures and defines */
/* Moved these defines here from mud_prog.c as I need them -rkb */
#define MAX_IFS 20 /* should always be generous */
#define IN_IF 0
#define IN_ELSE 1
#define DO_IF 2
#define DO_ELSE 3
#define MAX_PROG_NEST 20
struct act_prog_data
{
struct act_prog_data *next;
void *vo;
};
struct mob_prog_act_list
{
MPROG_ACT_LIST * next;
char * buf;
CHAR_DATA * ch;
OBJ_DATA * obj;
void * vo;
};
struct mob_prog_data
{
MPROG_DATA * next;
int type;
bool triggered;
int resetdelay;
char * arglist;
char * comlist;
};
/* Used to store sleeping mud progs. -rkb */
typedef enum {MP_MOB, MP_ROOM, MP_OBJ} mp_types;
struct mpsleep_data
{
MPSLEEP_DATA * next;
MPSLEEP_DATA * prev;
int timer; /* Pulses to sleep */
mp_types type; /* Mob, Room or Obj prog */
ROOM_INDEX_DATA*room; /* Room when type is MP_ROOM */
/* mprog_driver state variables */
int ignorelevel;
int iflevel;
bool ifstate[MAX_IFS][DO_ELSE];
/* mprog_driver arguments */
char * com_list;
CHAR_DATA * mob;
CHAR_DATA * actor;
OBJ_DATA * obj;
void * vo;
bool single_step;
};
bool MOBtrigger;
struct card_type
{
int value;
};
struct bonus_type
{
int req;
};
struct exp_type
{
int exp;
};
struct stat_type
{
sh_int mod;
};
/* race dedicated stuff */
struct race_type
{
char race_name [40]; /* Race name */
int affected; /* Default affect bitvectors */
sh_int str_plus; /* Str bonus/penalty */
sh_int dex_plus; /* Dex " */
sh_int con_plus; /* Wis " */
sh_int int_plus; /* Int " */
sh_int wis_plus; /* Con " */
sh_int cha_plus; /* Cha " */
int language; /* Default racial language */
};
struct droid_type
{
char droid_degree [6];
sh_int str_plus;
sh_int dex_plus;
sh_int con_plus;
sh_int int_plus;
sh_int wis_plus;
sh_int cha_plus;
};
typedef enum {
CLAN_PLAIN, CLAN_CRIME, CLAN_GUILD, CLAN_SUBCLAN, CLAN_CORPORATION
} clan_types;
typedef enum {PLAYER_SHIP, MOB_SHIP, SHIP_HUTT, SHIP_REPUBLIC, SHIP_JEDI, SHIP_SITH } ship_types;
typedef enum {SHIP_DOCKED, SHIP_READY, SHIP_BUSY, SHIP_BUSY_2, SHIP_BUSY_3, SHIP_REFUEL,
SHIP_LAUNCH, SHIP_LAUNCH_2, SHIP_LAND, SHIP_LAND_2, SHIP_HYPERSPACE, SHIP_DISABLED, SHIP_FLYING, SHIP_DOCKED2, SHIP_DOCKED3,
SHIP_IS_DOCKED, SHIP_UNDOCK, SHIP_UNDOCK2, SHIP_UNDOCK3} ship_states;
typedef enum {MISSILE_READY, MISSILE_FIRED, MISSILE_RELOAD, MISSILE_RELOAD_2, MISSILE_DAMAGED} missile_states;
typedef enum {LAND_VEHICLE, SHIP_FIGHTER, SHIP_MIDSHIP, SHIP_CAPITAL, SHIP_SPACE_STATION} ship_classes;
typedef enum {CONCUSSION_MISSILE, ASSAULT_MISSILE, ENERGY_TORPEDO, PROTON_TORPEDO} missile_types;
#define LASER_DAMAGED -1
#define LASER_READY 0
struct planet_data
{
PLANET_DATA * next;
PLANET_DATA * prev;
PLANET_DATA * next_in_system;
PLANET_DATA * prev_in_system;
AREA_DATA * next_in_area;
AREA_DATA * prev_in_area;
GUARD_DATA * first_guard;
AREA_DATA * first_area;
AREA_DATA * last_area;
GUARD_DATA * last_guard;
SPACE_DATA * starsystem;
AREA_DATA * area;
char * governor;
char * name;
char * filename;
CLAN_DATA * governed_by;
int population;
float pop_support;
int sector;
int x, y, z;
int size;
int flags;
sh_int embargo[MAX_PLANET];
long base_value;
int taxes;
int citysize;
int wilderness;
int wildlife;
int farmland;
int barracks;
int controls;
int atmosphere_type;
};
#define PLANET_CORUSCANT BV00
struct cargo_data
{
int cargo0;
int cargo1;
int cargo2;
int cargo3;
int cargo4;
int cargo5;
int cargo6;
int cargo7;
int cargo8;
int cargo9;
int orgcargo0;
int orgcargo1;
int orgcargo2;
int orgcargo3;
int orgcargo4;
int orgcargo5;
int orgcargo6;
int orgcargo7;
int orgcargo8;
int orgcargo9;
int price0;
int price1;
int price2;
int price3;
int price4;
int price5;
int price6;
int price7;
int price8;
int price9;
bool smug;
};
struct space_data
{
SPACE_DATA * next;
SPACE_DATA * prev;
SHIP_DATA * first_ship;
SHIP_DATA * last_ship;
MISSILE_DATA * first_missile;
MISSILE_DATA * last_missile;
PLANET_DATA * first_planet;
PLANET_DATA * last_planet;
char * filename;
char * name;
char * star1;
char * star2;
char * planet1;
char * planet2;
char * planet3;
char * planet4;
char * planet5;
char * planet6;
char * planet7;
char * planet8;
char * planet9;
char * planet10;
char * planet11;
char * planet12;
char * planet13;
char * planet14;
char * planet15;
char * planet16;
char * planet17;
char * planet18;
char * planet19;
char * planet20;
char * planet21;
char * planet22;
char * planet23;
char * planet24;
char * planet25;
char * location1a;
char * location2a;
char * location3a;
char * location1b;
char * location2b;
char * location3b;
char * location1c;
char * location2c;
char * location3c;
int xpos;
int ypos;
int zpos;
int s1x;
int s1y;
int s1z;
int s2x;
int s2y;
int s2z;
int doc1a;
int doc2a;
int doc3a;
int doc1b;
int doc2b;
int doc3b;
int doc1c;
int doc2c;
int doc3c;
bool seca;
bool secb;
bool secc;
int p1x;
bool trainer;
int p1y;
int p1z;
int p2x;
int p2y;
int p2z;
int p3x;
int p3y;
int p3z;
int p4x;
int p4y;
int p4z;
int p5x;
int p5y;
int p5z;
int p6x;
int p6y;
int p6z;
int p7x;
int p7y;
int p7z;
int p8x;
int p8y;
int p8z;
int p9x;
int p9y;
int p9z;
int p10x;
int p10y;
int p10z;
int p11x;
int p11y;
int p11z;
int p12x;
int p12y;
int p12z;
int p13x;
int p13y;
int p13z;
int p14x;
int p14y;
int p14z;
int p15x;
int p15y;
int p15z;
int p16x;
int p16y;
int p16z;
int p17x;
int p17y;
int p17z;
int p18x;
int p18y;
int p18z;
int p19x;
int p19y;
int p19z;
int p20x;
int p20y;
int p20z;
int p21x;
int p21y;
int p21z;
int p22x;
int p22y;
int p22z;
int p23x;
int p23y;
int p23z;
int p24x;
int p24y;
int p24z;
int p25x;
int p25y;
int p25z;
int gravitys1;
int gravitys2;
int gravityp1;
int gravityp2;
int gravityp3;
int gravityp4;
int gravityp5;
int gravityp6;
int gravityp7;
int gravityp8;
int gravityp9;
int gravityp10;
int gravityp11;
int gravityp12;
int gravityp13;
int gravityp14;
int gravityp15;
int gravityp16;
int gravityp17;
int gravityp18;
int gravityp19;
int gravityp20;
int gravityp21;
int gravityp22;
int gravityp23;
int gravityp24;
int gravityp25;
int p1_low;
int p1_high;
int p2_low;
int p2_high;
int p3_low;
int p3_high;
int p4_low;
int p4_high;
int p5_low;
int p5_high;
int p6_low;
int p6_high;
int p7_low;
int p7_high;
int p8_low;
int p8_high;
int p9_low;
int p9_high;
int p10_low;
int p10_high;
int p11_low;
int p11_high;
int p12_low;
int p12_high;
int p13_low;
int p13_high;
int p14_low;
int p14_high;
int p15_low;
int p15_high;
int p16_low;
int p16_high;
int p17_low;
int p17_high;
int p18_low;
int p18_high;
int p19_low;
int p19_high;
int p20_low;
int p20_high;
int p21_low;
int p21_high;
int p22_low;
int p22_high;
int p23_low;
int p23_high;
int p24_low;
int p24_high;
int p25_low;
int p25_high;
int crash;
};
struct bounty_data
{
BOUNTY_DATA * next;
BOUNTY_DATA * prev;
char * target;
long int amount;
};
struct blackmarket_data
{
BMARKET_DATA * next;
BMARKET_DATA * prev;
char *filename;
int quantity;
};
struct guard_data
{
GUARD_DATA * next;
GUARD_DATA * prev;
GUARD_DATA * next_on_planet;
GUARD_DATA * prev_on_planet;
CHAR_DATA * mob;
ROOM_INDEX_DATA * reset_loc;
PLANET_DATA * planet;
};
struct senate_data
{
SENATE_DATA * next;
SENATE_DATA * prev;
char * name;
};
#define PLANET_NOCAPTURE BV00
struct senate2_data
{
SENATE2_DATA * next; /* next clan in list */
SENATE2_DATA * prev; /* previous clan in list */
SENATE2_DATA * first_senate;
SENATE2_DATA * last_senate;
SENATE2_DATA * next_subclan;
SENATE2_DATA * prev_subclan;
SENATE2_DATA * first_subclan;
SENATE2_DATA * last_subclan;
SENATE2_DATA * mainclan;
char * acro;
char * filename; /* Clan filename */
char * shortname; /* Clan shortname - used in member lists*/
char * name; /* Clan name */
char * description; /* A brief description of the clan */
char * leader; /* Head clan leader */
char * number1; /* First officer */
char * number2; /* Second officer */
int pkills; /* Number of pkills on behalf of clan */
int pdeaths; /* Number of pkills against clan */
int mkills; /* Number of mkills on behalf of clan */
int mdeaths; /* Number of clan deaths due to mobs */
sh_int clan_type; /* See clan type defines */
char * atwar; /* Clan name */
char * ally; /* Clan name */
sh_int members; /* Number of clan members */
int board; /* Vnum of clan board */
int storeroom; /* Vnum of clan's store room */
int guard1; /* Vnum of clan guard type 1 */
int guard2; /* Vnum of clan guard type 2 */
int patrol1; /* vnum of patrol */
int patrol2; /* vnum of patrol */
int trooper1; /* vnum of reinforcements */
int trooper2; /* vnum of elite troopers */
long int funds;
int spacecraft;
int troops;
int vehicles;
int jail;
char * tmpstr;
};
struct jedi_data
{
JEDI_DATA * next; /* next clan in list */
JEDI_DATA * prev; /* previous clan in list */
JEDI_DATA * next_subclan;
JEDI_DATA * prev_subclan;
JEDI_DATA * first_subclan;
JEDI_DATA * last_subclan;
JEDI_DATA * mainclan;
char * acro;
char * filename; /* Clan filename */
char * shortname; /* Clan shortname - used in member lists*/
char * name; /* Clan name */
char * description; /* A brief description of the clan */
char * leader; /* Head clan leader */
char * number1; /* First officer */
char * number2; /* Second officer */
int pkills; /* Number of pkills on behalf of clan */
int pdeaths; /* Number of pkills against clan */
int mkills; /* Number of mkills on behalf of clan */
int mdeaths; /* Number of clan deaths due to mobs */
sh_int clan_type; /* See clan type defines */
char * atwar; /* Clan name */
sh_int members; /* Number of clan members */
int board; /* Vnum of clan board */
int storeroom; /* Vnum of clan's store room */
int guard1; /* Vnum of clan guard type 1 */
int guard2; /* Vnum of clan guard type 2 */
int patrol1; /* vnum of patrol */
int patrol2; /* vnum of patrol */
int trooper1; /* vnum of reinforcements */
int trooper2; /* vnum of elite troopers */
long int funds;
int spacecraft;
int troops;
int vehicles;
int jail;
char * tmpstr;
};
struct clan_data
{
CLAN_DATA * next; /* next clan in list */
CLAN_DATA * prev; /* previous clan in list */
CLAN_DATA * next_subclan;
CLAN_DATA * prev_subclan;
CLAN_DATA * first_subclan;
CLAN_DATA * last_subclan;
CLAN_DATA * mainclan;
char * acro;
char * filename; /* Clan filename */
char * shortname; /* Clan shortname - used in member lists*/
char * name; /* Clan name */
char * description; /* A brief description of the clan */
char * leader; /* Head clan leader */
char * number1; /* First officer */
char * number2; /* Second officer */
int pkills; /* Number of pkills on behalf of clan */
int pdeaths; /* Number of pkills against clan */
int mkills; /* Number of mkills on behalf of clan */
int mdeaths; /* Number of clan deaths due to mobs */
sh_int clan_type; /* See clan type defines */
char * atwar; /* Clan name */
sh_int members; /* Number of clan members */
int board; /* Vnum of clan board */
int storeroom; /* Vnum of clan's store room */
int guard1; /* Vnum of clan guard type 1 */
int guard2; /* Vnum of clan guard type 2 */
int patrol1; /* vnum of patrol */
int patrol2; /* vnum of patrol */
int trooper1; /* vnum of reinforcements */
int trooper2; /* vnum of elite troopers */
sh_int clan_bonus;
int rppoints;
int bonus;
sh_int level;
long experience;
long int funds;
int spacecraft;
int troops;
int vehicles;
int jail;
char * tmpstr;
};
struct ship_prototype_data
{
SHIP_PROTOTYPE * next;
SHIP_PROTOTYPE * prev;
char * filename;
char * name;
char * description;
sh_int class;
sh_int model;
sh_int hyperspeed;
sh_int realspeed;
sh_int maxbombs;
sh_int maxmissiles;
sh_int maxtorpedos;
sh_int maxrockets;
int max_modules; // This is used to set what the maximum number of upgrade modules is. If none is set 10 is.
sh_int lasers;
CLAN_DATA *clan; // This is used to limit certain prototypes to a specific clan.
sh_int tractorbeam;
sh_int manuever;
int weight;
int maxenergy;
int maxshield;
int maxhull;
sh_int maxchaff;
sh_int maxmods;
};
struct turret_data
{
TURRET_DATA * next;
TURRET_DATA * prev;
ROOM_INDEX_DATA *room;
SHIP_DATA *target;
sh_int laserstate;
};
struct hanger_data
{
HANGER_DATA * next;
HANGER_DATA * prev;
ROOM_INDEX_DATA *room;
bool bayopen;
int type;
};
struct module_data{
MODULE_DATA * next;
MODULE_DATA * prev;
int affect; // What item is it going to affect.
int ammount; // How much is it going to affect it.
};
struct ship_data
{
SHIP_DATA * next;
SHIP_DATA * prev;
SHIP_DATA * next_in_starsystem;
SHIP_DATA * prev_in_starsystem;
SHIP_DATA * next_in_room;
SHIP_DATA * prev_in_room;
ROOM_INDEX_DATA *in_room;
SPACE_DATA * starsystem;
SHIP_DATA * inship;
char * registered_to;
char * filename;
char * name;
char * protoname;
char * clanowner;
char * home;
char * description;
char * owner;
char * pilot;
char * copilot;
char * dest;
char * pbeacon;
char * cargo_bought;
sh_int damage_reduction;
sh_int armor;
int life_support;
int ion_engines;
int weapons_suite;
int construct_pts;
sh_int cloak;
sh_int sensor_masks;
sh_int size;
sh_int type;
sh_int class;
sh_int blasters[MAX_BLASTERS];
sh_int blaster_state[MAX_BLASTERS];
sh_int blasterstate[MAX_BLASTERS];
sh_int lasers[MAX_LASERS];
sh_int laser_state[MAX_LASERS];
sh_int laserstate[MAX_LASERS];
sh_int turbolasers[MAX_TURBO];
sh_int turbo_state[MAX_TURBO];
sh_int turbostate[MAX_TURBO];
sh_int missile[MAX_MISSILES];
sh_int missile_state[MAX_MISSILES];
sh_int missilestate[MAX_MISSILES];
sh_int missiles;
sh_int missile_quant[MAX_MISSILES];
sh_int ions[MAX_IONS];
sh_int ion_state[MAX_IONS];
sh_int ionstate[MAX_IONS];
sh_int comm;
int cost;
sh_int sensor;
sh_int astro_array;
sh_int hyperspeed;
int hyperdistance;
sh_int realspeed;
sh_int currspeed;
sh_int shipstate;
sh_int hyperstate;
/* New ship shit by || && Tawnos for FotE */
bool juking; bool rolling;
sh_int primaryState; // (was statet0) Primary beam state (Damaged/charging)
sh_int secondaryState; // (was statet0i) Secondary beam state
sh_int primaryType; // Primary weapon type, defined in beam_types
sh_int secondaryType; // Secondary weapon type, defined in beam_types
bool primaryLinked; // Linked fire, if !single can fire all available (up to 4 at once)
bool secondaryLinked; // Linked fire, if !single will fire all available
bool warheadLinked; // Linked fire, if !single will fire all available
sh_int primaryCount; // (was lasers) Number of primaries
sh_int secondaryCount; // (was ions) Number of secondaries
sh_int statet1; // Begin turbolaser turret states
sh_int statet2;
sh_int statet3;
sh_int statet4;
sh_int statet5;
sh_int statet6;
sh_int statet7;
sh_int statet8;
sh_int statet9;
sh_int statet10; // End turbolaser turret states
sh_int missiletype;
sh_int torpedostate;
sh_int rocketstate;
sh_int bombs;
sh_int maxbombs;
sh_int alarm;
sh_int maxmissiles;
sh_int torpedos;
sh_int maxtorpedos;
sh_int rockets;
sh_int maxrockets;
sh_int maxmod;
sh_int tractorbeam;
sh_int manuever;
bool bayopen;
bool hatchopen;
bool autorecharge;
bool autotrack;
bool autospeed;
float vx, vy, vz;
float hx, hy, hz;
float jx, jy, jz;
int maxenergy;
int energy;
int shield;
int maxshield;
int hull;
int maxhull;
int cockpit;
int turret1;
int turret2;
int turret3;
int turret4;
int turret5;
int turret6;
int turret7;
int turret8;
int turret9;
int turret10;
int docking_bay;
int location;
int lastdoc;
int shipyard;
int entrance;
int engineroom;
int firstroom;
int lastroom;
int navseat;
int pilotseat;
int coseat;
int gunseat;
long collision;
SHIP_DATA *target0;
SHIP_DATA *target1;
SHIP_DATA *target2;
SHIP_DATA *target3;
SHIP_DATA *target4;
SHIP_DATA *target5;
SHIP_DATA *target6;
SHIP_DATA *target7;
SHIP_DATA *target8;
SHIP_DATA *target9;
SHIP_DATA *target10;
SHIP_DATA *docked_to;
SPACE_DATA *currjump;
sh_int chaff;
sh_int maxchaff;
sh_int cargohold;
int holdsize;
sh_int cargo_type;
int cargo_quant;
bool chaff_released;
bool autopilot;
int channel;
int password;
int flags;
MODULE_DATA *first_module;
MODULE_DATA *last_module;
sh_int maxmods;
TURRET_DATA *first_turret;
TURRET_DATA *last_turret;
int hanger1;
int hanger2;
int hanger3;
int hanger4;
int exlocation;
int sim_vnum;
int max_modules;
int baycode;
int hibombstr;
int lowbombstr;
SHIP_DATA *tractored_by;
SHIP_DATA *tractoring;
};
#define SIZE_FINE 0
#define SIZE_DIMINUTIVE 1
#define SIZE_TINY 2
#define SIZE_SMALL 3
#define SIZE_MEDIUM 4
#define SIZE_LARGE 5
#define SIZE_HUGE 6
#define SIZE_GARGANTUAN 7
#define SIZE_COLOSSAL 8
#define AUTOBLASTER 0
#define TRIPLE_BLASTER 1
#define LIGHT_BLASTER 2
#define BLASTER_CANNON 3
#define HEAVY_BLASTER 4
#define TWIN_LASER 0
#define POINT_LASER 1
#define LIGHT_LASER 2
#define HEAVY_LASER 3
#define ASSAULT_LASER 4
#define QUAD_LASER 5
#define ESCORT_LASER 6
#define LONGSHOT_LASER 7
#define DOUBLE_TURBO 0
#define HEAVY_QUAD 1
#define LIGHT_QUAD 2
#define TURBO_QUAD 3
#define TURBO_CANNON 4
#define LIGHT_TURBO 5
#define MEDIUM_TURBO 6
#define TURBO_LASER 7
#define HEAVY_TURBO 8
#define SMALL_CONCUSSION 0
#define CONCUSSION_LAUNCHER 1
#define ASSAULT_CONCUSSION 2
#define ENERGY_TORPEDO 3
#define PROTON_TORPEDO 4
#define LIGHT_ION 0
#define ION_CANNON 1
#define HEAVY_ION 2
struct missile_data
{
MISSILE_DATA * next;
MISSILE_DATA * prev;
MISSILE_DATA * next_in_starsystem;
MISSILE_DATA * prev_in_starsystem;
SPACE_DATA * starsystem;
SHIP_DATA * target;
SHIP_DATA * fired_from;
char * fired_by;
sh_int missiletype;
sh_int age;
int speed;
int mx, my, mz;
};
struct tourney_data
{
int open;
int low_level;
int hi_level;
};
/*
* Data structure for notes.
*/
struct note_data
{
NOTE_DATA * next;
NOTE_DATA * prev;
char * sender;
char * date;
char * to_list;
char * subject;
int voting;
char * yesvotes;
char * novotes;
char * abstentions;
char * text;
};
struct board_data
{
BOARD_DATA * next; /* Next board in list */
BOARD_DATA * prev; /* Previous board in list */
NOTE_DATA * first_note; /* First note on board */
NOTE_DATA * last_note; /* Last note on board */
char * note_file; /* Filename to save notes to */
char * read_group; /* Can restrict a board to a */
char * post_group; /* council, clan, guild etc */
char * extra_readers; /* Can give read rights to players */
char * extra_removers; /* Can give remove rights to players */
int board_obj; /* Vnum of board object */
sh_int num_posts; /* Number of notes on this board */
sh_int min_read_level; /* Minimum level to read a note */
sh_int min_post_level; /* Minimum level to post a note */
sh_int min_remove_level; /* Minimum level to remove a note */
sh_int max_posts; /* Maximum amount of notes allowed */
int type; /* Normal board or mail board? */
};
/*
* An affect.
*/
struct affect_data
{
AFFECT_DATA * next;
AFFECT_DATA * prev;
sh_int type;
sh_int duration;
sh_int location;
int modifier;
int bitvector;
};
struct quest_data
{
QUEST_DATA * next;
QUEST_DATA * prev;
char * name;
sh_int value;
};
#define QUEST_UNFINISHED 0
#define QUEST_COMPLETE 1
/*
* A SMAUG spell
*/
struct smaug_affect
{
SMAUG_AFF * next;
char * duration;
sh_int location;
char * modifier;
int bitvector;
};
/***************************************************************************
* *
* VALUES OF INTEREST TO AREA BUILDERS *
* (Start of section ... start here) *
* *
***************************************************************************/
/*
* Well known mob virtual numbers.
* Defined in #MOBILES.
*/
#define MOB_VNUM_ANIMATED_CORPSE 5
#define MOB_VNUM_POLY_WOLF 10
#define MOB_VNUM_STORMTROOPER 20
#define MOB_VNUM_IMP_GUARD 21
#define MOB_VNUM_NR_GUARD 22
#define MOB_VNUM_NR_TROOPER 23
#define MOB_VNUM_MERCINARY 24
#define MOB_VNUM_BOUNCER 25
#define MOB_VNUM_IMP_ELITE 26
#define MOB_VNUM_IMP_PATROL 27
#define MOB_VNUM_IMP_FORCES 28
#define MOB_VNUM_NR_ELITE 29
#define MOB_VNUM_NR_PATROL 30
#define MOB_VNUM_NR_FORCES 31
#define MOB_VNUM_MERC_ELITE 32
#define MOB_VNUM_MERC_PATROL 33
#define MOB_VNUM_MERC_FORCES 34
#define MOB_VNUM_SHIP_GUARD 35
/* Ship Flags */
#define SHIP_NOHIJACK BV00
#define SHIP_SHIELD_BOOST BV01
#define SHIP_TORP_BOOST BV02
#define SHIP_CHAFF_BOOST BV03
#define SHIP_HULL_BOOST BV04
#define SHIP_LASER_BOOST BV05
#define SHIP_MISSILE_BOOST BV06
#define SHIP_ROCKET_BOOST BV07
#define SHIP_SIMULATOR BV08
#define SHIP_NODESTROY BV09
#define SHIP_NOSLICER BV10
#define XSHIP_ION_LASERS BV11
#define XSHIP_ION_DRIVE BV12
#define XSHIP_ION_ION BV13
#define XSHIP_ION_TURRET1 BV14
#define XSHIP_ION_TURRET2 BV15
#define XSHIP_ION_TURRET3 BV16
#define XSHIP_ION_TURRET4 BV17
#define XSHIP_ION_TURRET5 BV18
#define XSHIP_ION_TURRET6 BV19
#define XSHIP_ION_TURRET7 BV20
#define XSHIP_ION_TURRET8 BV21
#define XSHIP_ION_TURRET9 BV22
#define XSHIP_ION_TURRET10 BV23
#define SHIP_RESPAWN BV24
#define XSHIP_ION_HYPER BV25
#define XSHIP_ION_MISSILES BV26
#define SHIP_CLOAK BV27
#define SHIP_ARMOR_BOOST BV28
#define SHIP_PROTOTYPE BV29
#define SHIP_DAMAGE_DRIVE BV00
#define SHIP_DAMAGE_HYPERDRIVE BV01
#define SHIP_DAMAGE_LASER BV02
#define SHIP_DAMAGE_ION BV03
#define SHIP_DAMAGE_TURRET1 BV04
#define SHIP_DAMAGE_TURRET2 BV05
#define SHIP_DAMAGE_TURRET3 BV06
#define SHIP_DAMAGE_TURRET4 BV07
#define SHIP_DAMAGE_TURRET5 BV08
#define SHIP_DAMAGE_TURRET6 BV09
#define SHIP_DAMAGE_TURRET7 BV10
#define SHIP_DAMAGE_TURRET8 BV11
#define SHIP_DAMAGE_TURRET9 BV12
#define SHIP_DAMAGE_TURRET10 BV13
#define SHIP_DAMAGE_SHIELD BV14
#define SHIP_DAMAGE_PLASMASHIELD BV15
#define SHIP_DAMAGE_LIFESUPPORT BV16
#define SHIP_DAMAGE_MISSILE BV17
/*
* ACT bits for mobs.
* Used in #MOBILES.
*/
#define ACT_IS_NPC BV00 /* Auto set for mobs */
#define ACT_SENTINEL BV01 /* Stays in one room */
#define ACT_SCAVENGER BV02 /* Picks up objects */
#define ACT_NOFLEE BV03 /* Mobs don't flee. -T */
#define ACT_AGGRESSIVE BV05 /* Attacks PC's */
#define ACT_STAY_AREA BV06 /* Won't leave area */
#define ACT_WIMPY BV07 /* Flees when hurt */
#define ACT_PET BV08 /* Auto set for pets */
#define ACT_TRAIN BV09 /* Can train PC's */
#define ACT_PAZAKK BV10 /* Can practice PC's */
#define ACT_IMMORTAL BV11 /* Cannot be killed */
#define ACT_DEADLY BV12
#define ACT_POLYSELF BV13
#define ACT_META_AGGR BV14 /* Extremely aggressive */
#define ACT_GUARDIAN BV15 /* Protects master */
#define ACT_RUNNING BV16 /* Hunts quickly */
#define ACT_NOWANDER BV17 /* Doesn't wander */
#define ACT_MOUNTABLE BV18 /* Can be mounted */
#define ACT_MOUNTED BV19 /* Is mounted */
#define ACT_SCHOLAR BV20 /* Can teach languages */
#define ACT_SECRETIVE BV21 /* actions aren't seen */
#define ACT_POLYMORPHED BV22 /* Mob is a ch */
#define ACT_MOBINVIS BV23 /* Like wizinvis */
#define ACT_NOASSIST BV24 /* Doesn't assist mobs */
#define ACT_NOKILL BV25 /* Mob can't die */
#define ACT_DROID BV26 /* mob is a droid */
#define ACT_NOCORPSE BV27
#define ACT_PUEBLO BV28 /* This is the pueblo flag */
#define ACT_PROTOTYPE BV30 /* A prototype mob */
/* Act2 Flags */
#define ACT_BOUND BV00 /* This is the bind flag */
#define ACT_EXEMPT BV01 /* Makes a player exampt from pfile deletion */
#define ACT_JEDI BV02 /* This is a light jedi */
#define ACT_SITH BV03 /* This is a dark jedi */
#define ACT_GAGGED BV04 /* This is a gagged flag */
/* 21 acts */
/* bits for vip flags */
#define VIP_CORUSCANT BV00
#define VIP_YAVIN_IV BV01
#define VIP_TATOOINE BV02
#define VIP_KASHYYYK BV03
#define VIP_MON_CALAMARI BV04
#define VIP_ENDOR BV05
#define VIP_ORD_MANTELL BV06
#define VIP_NAL_HUTTA BV07
#define VIP_CORELLIA BV08
#define VIP_BAKURA BV09
/* player wanted bits */
#define WANTED_CORUSCANT VIP_CORUSCANT
#define WANTED_YAVIN_IV VIP_YAVIN_IV
#define WANTED_TATOOINE VIP_TATOOINE
#define WANTED_KASHYYYK VIP_KASHYYYK
#define WANTED_MON_CALAMARI VIP_MON_CALAMARI
#define WANTED_ENDOR VIP_ENDOR
#define WANTED_ORD_MANTELL VIP_ORD_MANTELL
#define WANTED_NAL_HUTTA VIP_NAL_HUTTA
#define WANTED_CORELLIA VIP_CORELLIA
#define WANTED_BAKURA VIP_BAKURA
#define VNUM_FALLEEN 1339
#define VNUM_DRALL 1338
#define VNUM_CHANCELLOR 1397
#define VNUM_YABLARI 1332
#define VNUM_ALDERAAN 1329
#define VNUM_CEREA 1356
#define VNUM_CHAMPALA 1357
#define VNUM_URKUPP 1341
#define VNUM_DORIN 1345
#define VNUM_ALPHERIDIES 1348
#define VNUM_RODIA 1351
#define VNUM_MON_CALAMARI 1353
#define VNUM_MUUNILINST 1361
#define VNUM_SKYE 1366
#define VNUM_SULLUST 1367
#define VNUM_UMBARA 1370
#define VNUM_KASHYYYK 1373
#define VNUM_WOOSTRI 1375
#define VNUM_CORELLIA 1378
#define VNUM_NABOO 1362
#define VNUM_UBA_111 1381
#define VNUM_ROCHE 1382
#define VNUM_IKTOTCH 1344
/*
* Bits for 'affected_by'.
* Used in #MOBILES.
*/
#define AFF_NONE 0
#define AFF_BLIND BV00
#define AFF_INVISIBLE BV01
#define AFF_GAS_BREATH BV02
#define AFF_DARKVISION BV03
#define AFF_COLD_RESIST BV04
#define AFF_HEAT_RESIST BV05
#define AFF_FDEFENSE BV06
#define AFF_SANCTUARY BV07
#define AFF_BATTLEMIND BV08
#define AFF_INFRARED BV09
#define AFF_CURSE BV10
#define AFF_COVER_TRAIL BV11
#define AFF_POISON BV12
#define AFF_MIND BV13
#define AFF_PARALYSIS BV14
#define AFF_SNEAK BV15
#define AFF_HIDE BV16
#define AFF_SLEEP BV17
#define AFF_CHARM BV18
#define AFF_FLYING BV19
#define AFF_ENHANCE BV20
#define AFF_FLOATING BV21
#define AFF_TRUESIGHT BV22
#define AFF_ENHANCESENSES BV23
#define AFF_FORCE BV24
#define AFF_SORCERY BV25
#define AFF_FEAR BV26
#define AFF_FASTHEAL BV27
#define AFF_FORCE_RESIST BV28
#define AFF_POSSESS BV29
#define AFF_RAGE BV30
#define AFF_AQUA_BREATH BV31
/* 31 aff's (1 left.. :P) */
/* make that none - ugh - time for another field? :P */
/*
* Resistant Immune Susceptible flags
*/
#define RIS_FIRE BV00
#define RIS_COLD BV01
#define RIS_ELECTRICITY BV02
#define RIS_ENERGY BV03
#define RIS_BLUNT BV04
#define RIS_PIERCE BV05
#define RIS_SLASH BV06
#define RIS_ACID BV07
#define RIS_POISON BV08
#define RIS_DRAIN BV09
#define RIS_SLEEP BV10
#define RIS_CHARM BV11
#define RIS_HOLD BV12
#define RIS_NONMAGIC BV13
#define RIS_PLUS1 BV14
#define RIS_PLUS2 BV15
#define RIS_PLUS3 BV16
#define RIS_PLUS4 BV17
#define RIS_PLUS5 BV18
#define RIS_PLUS6 BV19
#define RIS_MAGIC BV20
#define RIS_PARALYSIS BV21
/* 21 RIS's*/
/*
* Attack types
*/
#define ATCK_BITE BV00
#define ATCK_CLAWS BV01
#define ATCK_TAIL BV02
#define ATCK_STING BV03
#define ATCK_PUNCH BV04
#define ATCK_KICK BV05
#define ATCK_TRIP BV06
#define ATCK_BASH BV07
#define ATCK_STUN BV08
#define ATCK_GOUGE BV09
#define ATCK_BACKSTAB BV10
#define ATCK_FEED BV11
#define ATCK_DRAIN BV12
#define ATCK_FIREBREATH BV13
#define ATCK_FROSTBREATH BV14
#define ATCK_ACIDBREATH BV15
#define ATCK_LIGHTNBREATH BV16
#define ATCK_GASBREATH BV17
#define ATCK_POISON BV18
#define ATCK_NASTYPOISON BV19
#define ATCK_GAZE BV20
#define ATCK_BLINDNESS BV21
#define ATCK_CAUSESERIOUS BV22
#define ATCK_EARTHQUAKE BV23
#define ATCK_CAUSECRITICAL BV24
#define ATCK_CURSE BV25
#define ATCK_FLAMESTRIKE BV26
#define ATCK_HARM BV27
#define ATCK_FIREBALL BV28
#define ATCK_COLORSPRAY BV29
#define ATCK_WEAKEN BV30
#define ATCK_SPIRALBLAST BV31
/* 32 USED! DO NOT ADD MORE! SB */
/*
* Defense types
*/
#define DFND_PARRY BV00
#define DFND_DODGE BV01
#define DFND_HEAL BV02
#define DFND_CURELIGHT BV03
#define DFND_CURESERIOUS BV04
#define DFND_CURECRITICAL BV05
#define DFND_DISPELMAGIC BV06
#define DFND_DISPELEVIL BV07
#define DFND_SANCTUARY BV08
#define DFND_FIRESHIELD BV09
#define DFND_SHOCKSHIELD BV10
#define DFND_SHIELD BV11
#define DFND_BLESS BV12
#define DFND_STONESKIN BV13
#define DFND_TELEPORT BV14
#define DFND_MONSUM1 BV15
#define DFND_MONSUM2 BV16
#define DFND_MONSUM3 BV17
#define DFND_MONSUM4 BV18
#define DFND_DISARM BV19
#define DFND_ICESHIELD BV20
#define DFND_GRIP BV21
/* 21 def's */
#define CARGO_NONE 0
#define CARGO_ART 1
#define CARGO_BACTA 2
#define CARGO_GEMS_SEMI 3
#define CARGO_GEMS_PRECIOUS 4
#define CARGO_ORE_COMMON 5
#define CARGO_ORE_RARE 6
#define CARGO_SPICE 7
#define CARGO_SLAVES 8
#define CARGO_WEAPONS 9
#define CLOTHES_ARMOR 0
#define LIGHT_ARMOR 1
#define MEDIUM_ARMOR 2
#define HEAVY_ARMOR 3
#define POWERED_ARMOR 4
#define ATMO_NORMAL 0
#define ATMO_GASEOUS 1
#define ATMO_HEAT 2
#define ATMO_BLIZZARD 3
#define ATMO_THINAIR 4
#define ATMO_OXGENIZED 5
#define ATMO_TOXIC 6
#define ATMO_WIND 7
#define BONUS_NONE 0
#define BONUS_HITROLL 1
#define BONUS_DAMROLL 2
#define BONUS_ARMOR 3
#define BONUS_EXP 4
/*
* Body parts
*/
#define PART_HEAD BV00
#define PART_ARM_R1 BV01
#define PART_ARM_L1 BV02
#define PART_ARM_R2 BV03
#define PART_ARM_L2 BV04
#define PART_LEG_R BV05
#define PART_LEG_L BV06
#define PART_FEET BV07
#define PART_WINGS BV08
#define PART_HAND_R1 BV09
#define PART_HAND_L1 BV10
#define PART_HAND_R2 BV11
#define PART_HAND_L2 BV12
#define PART_EYE_R BV13
#define PART_EYE_L BV14
#define PART_CLAWS BV15
#define PART_HORNS BV16
#define HEAD_PART 0
#define ARMR1_PART 1
#define ARML1_PART 2
#define ARMR2_PART 3
#define ARML2_PART 4
#define LEGR_PART 5
#define LEGL_PART 6
#define FEET_PART 7
#define WING_PART 8
#define HANDR1_PART 9
#define HANDL1_PART 10
#define HANDR2_PART 11
#define HANDL2_PART 12
#define EYER_PART 13
#define EYEL_PART 14
/*
* Autosave flags
*/
#define SV_DEATH BV00
#define SV_KILL BV01
#define SV_PASSCHG BV02
#define SV_DROP BV03
#define SV_PUT BV04
#define SV_GIVE BV05
#define SV_AUTO BV06
#define SV_ZAPDROP BV07
#define SV_AUCTION BV08
#define SV_GET BV09
#define SV_RECEIVE BV10
#define SV_IDLE BV11
#define SV_BACKUP BV12
/*
* Pipe flags
*/
#define PIPE_TAMPED BV01
#define PIPE_LIT BV02
#define PIPE_HOT BV03
#define PIPE_DIRTY BV04
#define PIPE_FILTHY BV05
#define PIPE_GOINGOUT BV06
#define PIPE_BURNT BV07
#define PIPE_FULLOFASH BV08
/*
* Skill/Spell flags The minimum BV *MUST* be 11!
*/
#define SF_WATER BV11
#define SF_EARTH BV12
#define SF_AIR BV13
#define SF_ASTRAL BV14
#define SF_AREA BV15 /* is an area spell */
#define SF_DISTANT BV16 /* affects something far away */
#define SF_REVERSE BV17
#define SF_SAVE_HALF_DAMAGE BV18 /* save for half damage */
#define SF_SAVE_NEGATES BV19 /* save negates affect */
#define SF_ACCUMULATIVE BV20 /* is accumulative */
#define SF_RECASTABLE BV21 /* can be refreshed */
#define SF_NOSCRIBE BV22 /* cannot be scribed */
#define SF_NOBREW BV23 /* cannot be brewed */
#define SF_GROUPSPELL BV24 /* only affects group members */
#define SF_OBJECT BV25 /* directed at an object */
#define SF_CHARACTER BV26 /* directed at a character */
#define SF_SECRETSKILL BV27 /* hidden unless learned */
#define SF_PKSENSITIVE BV28 /* much harder for plr vs. plr */
#define SF_STOPONFAIL BV29 /* stops spell on first failure */
typedef enum { SS_NONE, SS_POISON_DEATH, SS_ROD_WANDS, SS_PARA_PETRI,
SS_BREATH, SS_SPELL_STAFF } save_types;
#define ALL_BITS INT_MAX
#define SDAM_MASK ALL_BITS & ~(BV00 | BV01 | BV02)
#define SACT_MASK ALL_BITS & ~(BV03 | BV04 | BV05)
#define SCLA_MASK ALL_BITS & ~(BV06 | BV07 | BV08)
#define SPOW_MASK ALL_BITS & ~(BV09 | BV10)
typedef enum { SD_NONE, SD_FIRE, SD_COLD, SD_ELECTRICITY, SD_ENERGY, SD_ACID,
SD_POISON, SD_DRAIN } spell_dam_types;
typedef enum { SA_NONE, SA_CREATE, SA_DESTROY, SA_RESIST, SA_SUSCEPT,
SA_DIVINATE, SA_OBSCURE, SA_CHANGE } spell_act_types;
typedef enum { SP_NONE, SP_MINOR, SP_GREATER, SP_MAJOR } spell_power_types;
typedef enum { SC_NONE, SC_LUNAR, SC_SOLAR, SC_TRAVEL, SC_SUMMON,
SC_LIFE, SC_DEATH, SC_ILLUSION } spell_class_types;
/*
* Sex.
* Used in #MOBILES.
*/
typedef enum { SEX_NEUTRAL, SEX_MALE, SEX_FEMALE } sex_types;
typedef enum {
TRAP_TYPE_POISON_GAS = 1, TRAP_TYPE_POISON_DART, TRAP_TYPE_POISON_NEEDLE,
TRAP_TYPE_POISON_DAGGER, TRAP_TYPE_POISON_ARROW, TRAP_TYPE_BLINDNESS_GAS,
TRAP_TYPE_SLEEPING_GAS, TRAP_TYPE_FLAME, TRAP_TYPE_EXPLOSION,
TRAP_TYPE_ACID_SPRAY, TRAP_TYPE_ELECTRIC_SHOCK, TRAP_TYPE_BLADE,
TRAP_TYPE_SEX_CHANGE } trap_types;
#define MAX_TRAPTYPE TRAP_TYPE_SEX_CHANGE
#define TRAP_ROOM BV00
#define TRAP_OBJ BV01
#define TRAP_ENTER_ROOM BV02
#define TRAP_LEAVE_ROOM BV03
#define TRAP_OPEN BV04
#define TRAP_CLOSE BV05
#define TRAP_GET BV06
#define TRAP_PUT BV07
#define TRAP_PICK BV08
#define TRAP_UNLOCK BV09
#define TRAP_N BV10
#define TRAP_S BV11
#define TRAP_E BV12
#define TRAP_W BV13
#define TRAP_U BV14
#define TRAP_D BV15
#define TRAP_EXAMINE BV16
#define TRAP_NE BV17
#define TRAP_NW BV18
#define TRAP_SE BV19
#define TRAP_SW BV20
/*
* Well known object virtual numbers.
* Defined in #OBJECTS.
*/
#define OBJ_VNUM_MONEY_ONE 2
#define OBJ_VNUM_MONEY_SOME 3
#define COMMSYS_VNUM 62
#define DATAPAD_VNUM 63
#define MODULE_VNUM 73
#define SABER_VNUM 72
#define IMPLANT_VNUM 87
#define OBJ_VNUM_DROID_CORPSE 9
#define OBJ_VNUM_CORPSE_NPC 10
#define OBJ_VNUM_CORPSE_PC 11
#define OBJ_VNUM_SEVERED_HEAD 12
#define OBJ_VNUM_TORN_HEART 13
#define OBJ_VNUM_SLICED_ARM 14
#define OBJ_VNUM_SLICED_LEG 15
#define OBJ_VNUM_SPILLED_GUTS 16
#define OBJ_VNUM_BLOOD 17
#define OBJ_VNUM_BLOODSTAIN 18
#define OBJ_VNUM_SCRAPS 19
#define OBJ_VNUM_MUSHROOM 20
#define OBJ_VNUM_LIGHT_BALL 21
#define OBJ_VNUM_SPRING 22
#define OBJ_VNUM_SLICE 24
#define OBJ_VNUM_SHOPPING_BAG 25
#define OBJ_VNUM_FIRE 30
#define OBJ_VNUM_TRAP 31
#define OBJ_VNUM_PORTAL 32
#define OBJ_VNUM_BLACK_POWDER 33
#define OBJ_VNUM_SCROLL_SCRIBING 34
#define OBJ_VNUM_FLASK_BREWING 35
#define OBJ_VNUM_NOTE 36
/* Academy eq */
#define OBJ_VNUM_SCHOOL_MACE 10315
#define OBJ_VNUM_SCHOOL_DAGGER 10312
#define OBJ_VNUM_SCHOOL_SWORD 10313
#define OBJ_VNUM_SCHOOL_VEST 10308
#define OBJ_VNUM_SCHOOL_SHIELD 10310
#define OBJ_VNUM_SCHOOL_BANNER 10311
#define OBJ_VNUM_SCHOOL_DIPLOMA 10321
#define OBJ_VNUM_BLASTECH_E11 50
#define OBJ_VNUM_SHIPBOMB 68
#define OBJ_VNUM_MONITOR 88
#define OBJ_VNUM_CAMERA 89
/* These are some defines for modules */
#define AFFECT_PRIMARY 1
#define AFFECT_SECONDARY 2
#define AFFECT_MISSILE 3
#define AFFECT_ROCKET 4
#define AFFECT_TORPEDO 5
#define AFFECT_HULL 6
#define AFFECT_SHIELD 7
#define AFFECT_SPEED 8
#define AFFECT_HYPER 9
#define AFFECT_ENERGY 10
#define AFFECT_MANUEVER 11
#define AFFECT_CHAFF 12
#define AFFECT_ALARM 13
/*
* Item types.
* Used in #OBJECTS.
*/
typedef enum
{
ITEM_NONE, ITEM_LIGHT, ITEM_IMPLANT, ITEM_CAMERA, ITEM_MONITOR, ITEM_WEAPON,
ITEM_FIREWEAPON, ITEM_MISSILE, ITEM_TREASURE, ITEM_ARMOR, ITEM_POTION,
ITEM_WORN, ITEM_FURNITURE, ITEM_TRASH, ITEM_OLDTRAP, ITEM_CONTAINER,
ITEM_NOTE, ITEM_DRINK_CON, ITEM_KEY, ITEM_FOOD, ITEM_MONEY, ITEM_PEN,
ITEM_BOAT, ITEM_CORPSE_NPC, ITEM_CORPSE_PC, ITEM_FOUNTAIN, ITEM_PILL,
ITEM_BLOOD, ITEM_BLOODSTAIN, ITEM_SCRAPS, ITEM_PIPE, ITEM_HERB_CON,
ITEM_HERB, ITEM_INCENSE, ITEM_FIRE, ITEM_BOOK, ITEM_SWITCH, ITEM_LEVER,
ITEM_PULLCHAIN, ITEM_BUTTON, ITEM_DIAL, ITEM_LOCKER, ITEM_RUNEPOUCH,
ITEM_MATCH, ITEM_TRAP, ITEM_MAP, ITEM_PORTAL, ITEM_PAPER,
ITEM_CARD, ITEM_LOCKPICK, ITEM_SPIKE, ITEM_DISEASE, ITEM_OIL, ITEM_FUEL,
ITEM_SHORT_BOW, ITEM_LONG_BOW, ITEM_CROSSBOW, ITEM_AMMO, ITEM_QUIVER,
ITEM_SHOVEL, ITEM_SALVE, ITEM_RAWSPICE, ITEM_LENS, ITEM_CRYSTAL, ITEM_DURAPLAST,
ITEM_BATTERY, ITEM_TOOLKIT, ITEM_DURASTEEL, ITEM_OVEN, ITEM_MIRROR,
ITEM_CIRCUIT, ITEM_SUPERCONDUCTOR, ITEM_COMLINK, ITEM_MEDPAC, ITEM_FABRIC,
ITEM_RARE_METAL, ITEM_MAGNET, ITEM_THREAD, ITEM_SPICE, ITEM_SMUT, ITEM_DEVICE, ITEM_SPACECRAFT,
ITEM_GRENADE, ITEM_LANDMINE, ITEM_GOVERNMENT, ITEM_DROID_CORPSE, ITEM_BOLT, ITEM_CHEMICAL, ITEM_COMMSYSTEM,
ITEM_DATAPAD, ITEM_MODULE, ITEM_BUG, ITEM_BEACON, ITEM_GLAUNCHER,
ITEM_RLAUNCHER, ITEM_BINDERS, ITEM_GOGGLES, ITEM_SHIPBOMB, ITEM_EMP_GRENADE
} item_types;
#define MAX_ITEM_TYPE ITEM_EMP_GRENADE
/*
* Extra flags.
* Used in #OBJECTS.
*/
#define ITEM_GLOW BV00
#define ITEM_HUM BV01
#define ITEM_DARK BV02
#define ITEM_HUTT_SIZE BV03
#define ITEM_CONTRABAND BV04
#define ITEM_INVIS BV05
#define ITEM_RENTED BV06
#define ITEM_NODROP BV07
#define ITEM_BLESS BV08
#define ITEM_IMP_CRITICAL BV09
#define ITEM_STUN BV10
#define ITEM_ANTI_NEUTRAL BV11
#define ITEM_NOREMOVE BV12
#define ITEM_INVENTORY BV13
#define ITEM_ANTI_SOLDIER BV14
#define ITEM_ANTI_THIEF BV15
#define ITEM_ANTI_HUNTER BV16
#define ITEM_INSTALLED BV17
#define ITEM_SMALL_SIZE BV18
#define ITEM_LARGE_SIZE BV19
#define ITEM_DONATION BV20
#define ITEM_CLANOBJECT BV21
#define ITEM_IMBUED BV22
#define ITEM_ANTI_SITH BV23
#define ITEM_IGNITED BV24
#define ITEM_HIDDEN BV25
#define ITEM_POISONED BV26
#define ITEM_COVERING BV27
#define ITEM_DEATHROT BV28
#define ITEM_BURRIED BV29 /* item is underground */
#define ITEM_PROTOTYPE BV30
#define ITEM_HUMAN_SIZE BV31
/* Magic flags - extra extra_flags for objects that are used in spells */
#define ITEM_RETURNING BV00
#define ITEM_BACKSTABBER BV01
#define ITEM_BANE BV02
#define ITEM_LOYAL BV03
#define ITEM_HASTE BV04
#define ITEM_DRAIN BV05
#define ITEM_LIGHTNING_BLADE BV06
/* Blaster settings - only saves on characters */
#define BLASTER_NORMAL 0
#define BLASTER_HALF 2
#define BLASTER_FULL 5
#define BLASTER_LOW 1
#define BLASTER_STUN 3
#define BLASTER_HIGH 4
/* Weapon Types */
#define WEAPON_NONE 0
#define WEAPON_VIBRO 1
#define WEAPON_LIGHTSABER 2
#define WEAPON_BLASTER 3
#define WEAPON_BLASTER_RIFLE 4
#define WEAPON_HEAVY 5
#define WEAPON_BOWCASTER 6
#define WEAPON_PRIMITIVE 7
#define WEAPON_FORCE_PIKE 8
#define WEAPON_SIMPLE 9
#define WEAPON_DUAL_LIGHTSABER 10
#define WEAPON_SLUGTHROWER 11
/* Lever/dial/switch/button/pullchain flags */
#define TRIG_UP BV00
#define TRIG_UNLOCK BV01
#define TRIG_LOCK BV02
#define TRIG_D_NORTH BV03
#define TRIG_D_SOUTH BV04
#define TRIG_D_EAST BV05
#define TRIG_D_WEST BV06
#define TRIG_D_UP BV07
#define TRIG_D_DOWN BV08
#define TRIG_DOOR BV09
#define TRIG_CONTAINER BV10
#define TRIG_OPEN BV11
#define TRIG_CLOSE BV12
#define TRIG_PASSAGE BV13
#define TRIG_OLOAD BV14
#define TRIG_MLOAD BV15
#define TRIG_TELEPORT BV16
#define TRIG_TELEPORTALL BV17
#define TRIG_TELEPORTPLUS BV18
#define TRIG_DEATH BV19
#define TRIG_CAST BV20
#define TRIG_FAKEBLADE BV21
#define TRIG_RAND4 BV22
#define TRIG_RAND6 BV23
#define TRIG_TRAPDOOR BV24
#define TRIG_ANOTHEROOM BV25
#define TRIG_USEDIAL BV26
#define TRIG_ABSOLUTEVNUM BV27
#define TRIG_SHOWROOMDESC BV28
#define TRIG_AUTORETURN BV29
#define TELE_SHOWDESC BV00
#define TELE_TRANSALL BV01
#define TELE_TRANSALLPLUS BV02
/* drug types */
#define SPICE_GLITTERSTIM 0
#define SPICE_CARSANUM 1
#define SPICE_RYLL 2
#define SPICE_ANDRIS 3
/* crystal types */
#define CRYSTAL_BLUE 0
#define CRYSTAL_GREEN 1
#define CRYSTAL_PURPLE 2
#define CRYSTAL_RED 3
#define CRYSTAL_YELLOW 4
#define CRYSTAL_OPILA 5
#define CRYSTAL_SIGIL 6
#define CRYSTAL_BONDAR 7
#define CRYSTAL_PHOND 8
#define CRYSTAL_SOLARI 9
#define CRYSTAL_DAMIND 10
#define CRYSTAL_JENRUAX 11
#define CRYSTAL_UPARI 12
#define CRYSTAL_ERALAM 13
#define CRYSTAL_RUBAT 14
#define CRYSTAL_SAPITH 15
/*
* Wear flags.
* Used in #OBJECTS.
*/
#define ITEM_TAKE BV00
#define ITEM_WEAR_FINGER BV01
#define ITEM_WEAR_NECK BV02
#define ITEM_WEAR_BODY BV03
#define ITEM_WEAR_HEAD BV04
#define ITEM_WEAR_LEGS BV05
#define ITEM_WEAR_FEET BV06
#define ITEM_WEAR_HANDS BV07
#define ITEM_WEAR_ARMS BV08
#define ITEM_WEAR_SHIELD BV09
#define ITEM_WEAR_ABOUT BV10
#define ITEM_WEAR_WAIST BV11
#define ITEM_WEAR_WRIST BV12
#define ITEM_WIELD BV13
#define ITEM_HOLD BV14
#define ITEM_DUAL_WIELD BV15
#define ITEM_WEAR_EARS BV16
#define ITEM_WEAR_EYES BV17
#define ITEM_MISSILE_WIELD BV18
#define ITEM_WEAR_BACK BV19
#define ITEM_WEAR_HOLSTER1 BV20
#define ITEM_WEAR_HOLSTER2 BV21
#define ITEM_WEAR_BOTHWRISTS BV22
/*
* Apply types (for affects).
* Used in #OBJECTS.
*/
typedef enum
{
APPLY_NONE, APPLY_STR, APPLY_DEX, APPLY_INT, APPLY_WIS, APPLY_CON,
APPLY_SEX, APPLY_NULL , APPLY_LEVEL, APPLY_AGE, APPLY_HEIGHT, APPLY_WEIGHT,
APPLY_MANA, APPLY_HIT, APPLY_MOVE, APPLY_GOLD, APPLY_EXP, APPLY_AC,
APPLY_HITROLL, APPLY_DAMROLL, APPLY_INJURY, APPLY_FORT, APPLY_REFL,
APPLY_WILL, APPLY_SAVING_SPELL, APPLY_CHA,
APPLY_AFFECT, APPLY_RESISTANT, APPLY_IMMUNE, APPLY_SUSCEPTIBLE,
APPLY_WEAPONSPELL, APPLY_LCK, APPLY_DISABLE, APPLY_TRACK, APPLY_SLEIGHT,
APPLY_SNEAK, APPLY_HIDE, APPLY_SPOT, APPLY_SEARCH, APPLY_LISTEN,
APPLY_CLIMB, APPLY_SCRIBE, APPLY_COVER_TRAIL, APPLY_WEARSPELL, APPLY_WILLPOWER,
APPLY_REMOVESPELL, APPLY_EMOTION, APPLY_MENTALSTATE, APPLY_STRIPSN,
APPLY_REMOVE, APPLY_FULL, APPLY_THIRST, APPLY_DRUNK, APPLY_BLOOD,
MAX_APPLY_TYPE
} apply_types;
#define REVERSE_APPLY 1000
/*
* Values for containers (value[1]).
* Used in #OBJECTS.
*/
#define CONT_CLOSEABLE 1
#define CONT_PICKPROOF 2
#define CONT_CLOSED 4
#define CONT_LOCKED 8
/*
* Well known room virtual numbers.
* Defined in #ROOMS.
*/
#define ROOM_VNUM_LIMBO 2
#define ROOM_VNUM_POLY 3
#define ROOM_VNUM_CHAT 32144
#define ROOM_VNUM_TEMPLE 32144
#define ROOM_VNUM_ALTAR 32144
#define ROOM_VNUM_SCHOOL 115
#define ROOM_AUTH_START 10300
#define ROOM_START_HUMAN 211
#define ROOM_START_WOOKIEE 28600
#define ROOM_START_TWILEK 32148
#define ROOM_START_RODIAN 32148
#define ROOM_START_HUTT 32148
#define ROOM_START_MON_CALAMARIAN 21069
#define ROOM_START_NOGHRI 1015
#define ROOM_START_GAMORREAN 28100
#define ROOM_START_JAWA 31819
#define ROOM_START_ADARIAN 29000
#define ROOM_START_EWOK 32148
#define ROOM_START_VERPINE 32148
#define ROOM_START_DEFEL 32148
#define ROOM_START_TRANDOSHAN 32148
#define ROOM_START_HAPAN 32148
#define ROOM_START_DUINUOGWUIN 32148
#define ROOM_START_QUARREN 21069
#define ROOM_START_IMMORTAL 100
#define ROOM_LIMBO_SHIPYARD 45
#define ROOM_DEFAULT_CRASH 28025
#define ROOM_PLUOGUS_QUIT 905
#define ROOM_SHUTTLE_BUS 907 /* Sol */
#define ROOM_SHUTTLE_BUS_2 914 /* Monir*/
#define ROOM_SHUTTLE_BUS_3 921 /* Fau */
#define ROOM_SHUTTLE_BUS_4 928 /* Taw */
#define ROOM_CORUSCANT_SHUTTLE 199
#define ROOM_SENATE_SHUTTLE 10197
#define ROOM_CORUSCANT_TURBOCAR 226
#define SHIP_AREA "shipvnum.are"
/*
* Room flags. Holy cow! Talked about stripped away..
* Used in #ROOMS. Those merc guys know how to strip code down.
* Lets put it all back... ;)
*/
#define ROOM_DARK BV00
/* BV01 now reserved for track BV01 and hunt */
#define ROOM_NO_MOB BV02
#define ROOM_INDOORS BV03
#define ROOM_CAN_LAND BV04
#define ROOM_CAN_FLY BV05
#define ROOM_NO_DRIVING BV06
#define ROOM_NO_MAGIC BV07
#define ROOM_BANK BV08
#define ROOM_PRIVATE BV09
#define ROOM_SAFE BV10
#define ROOM_SOLITARY BV11
#define ROOM_PET_SHOP BV12
#define ROOM_NO_RECALL BV13
#define ROOM_DONATION BV14
#define ROOM_NODROPALL BV15
#define ROOM_SILENCE BV16
#define ROOM_LOGSPEECH BV17
#define ROOM_NODROP BV18
#define ROOM_CLANSTOREROOM BV19
#define ROOM_PLR_HOME BV20
#define ROOM_EMPTY_HOME BV21
#define ROOM_TELEPORT BV22
#define ROOM_HOTEL BV23
#define ROOM_NOFLOOR BV24
#define ROOM_REFINERY BV25
#define ROOM_FACTORY BV26
#define ROOM_R_RECRUIT BV27
#define ROOM_E_RECRUIT BV28
#define ROOM_SPACECRAFT BV29
#define ROOM_PROTOTYPE BV30
#define ROOM_AUCTION BV31
/* Second Set of Room Flags */
#define ROOM_EMPTY_SHOP BV00
#define ROOM_PLR_SHOP BV01
#define ROOM_SHIPYARD BV02
#define ROOM_GARAGE BV03
#define ROOM_BARRACKS BV04
#define ROOM_CONTROL BV05
#define ROOM_CLANLAND BV06
#define ROOM_ARENA BV07
#define ROOM_CLANJAIL BV08
#define ROOM_BLACKMARKET BV09
#define ROOM_HIDDENPAD BV10
#define ROOM_DROIDSHOP BV11
#define ROOM_SENATE BV12
#define ROOM_CARGOSHOP BV13
#define ROOM_AUDITORIUM BV14
#define ROOM_PAZAAK BV15
#define SELL_CARGO_ART BV00
#define SELL_CARGO_BACTA BV01
#define SELL_CARGO_GEMS_SEMI BV02
#define SELL_CARGO_GEMS_PREC BV03
#define SELL_CARGO_ORE_COMMON BV04
#define SELL_CARGO_ORE_RARE BV05
#define SELL_CARGO_SPICE BV06
#define SELL_CARGO_SLAVES BV07
#define SELL_CARGO_WEAPONS BV08
/*
* Directions.
* Used in #ROOMS.
*/
typedef enum
{
DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_UP, DIR_DOWN,
DIR_NORTHEAST, DIR_NORTHWEST, DIR_SOUTHEAST, DIR_SOUTHWEST, DIR_SOMEWHERE
} dir_types;
#define MAX_DIR DIR_SOUTHWEST /* max for normal walking */
#define DIR_PORTAL DIR_SOMEWHERE /* portal direction */
/*
* Exit flags.
* Used in #ROOMS.
*/
#define EX_ISDOOR BV00
#define EX_CLOSED BV01
#define EX_LOCKED BV02
#define EX_SECRET BV03
#define EX_SWIM BV04
#define EX_PICKPROOF BV05
#define EX_FLY BV06
#define EX_CLIMB BV07
#define EX_DIG BV08
#define EX_RES1 BV09 /* are these res[1-4] important? */
#define EX_NOPASSDOOR BV10
#define EX_HIDDEN BV11
#define EX_PASSAGE BV12
#define EX_PORTAL BV13
#define EX_RES2 BV14
#define EX_RES3 BV15
#define EX_xCLIMB BV16
#define EX_xENTER BV17
#define EX_xLEAVE BV18
#define EX_xAUTO BV19
#define EX_RES4 BV20
#define EX_xSEARCHABLE BV21
#define EX_BASHED BV22
#define EX_BASHPROOF BV23
#define EX_NOMOB BV24
#define EX_WINDOW BV25
#define EX_xLOOK BV26
#define EX_AUTOCLOSE BV27
#define MAX_EXFLAG 27
/*
* Sector types.
* Used in #ROOMS.
*/
typedef enum
{
SECT_INSIDE, SECT_CITY, SECT_FIELD, SECT_FOREST, SECT_HILLS, SECT_MOUNTAIN,
SECT_WATER_SWIM, SECT_WATER_NOSWIM, SECT_UNDERWATER, SECT_AIR, SECT_DESERT,
SECT_DUNNO, SECT_OCEANFLOOR, SECT_UNDERGROUND, SECT_SCRUB, SECT_ROCKY,
SECT_SAVANNA, SECT_TUNDRA, SECT_GLACIAL, SECT_RAINFOREST, SECT_JUNGLE,
SECT_SWAMP, SECT_WETLANDS, SECT_BRUSH, SECT_STEPPE, SECT_FARMLAND, SECT_VOLCANIC,
SECT_MAX
} sector_types;
/*
* Equpiment wear locations.
* Used in #RESETS.
*/
typedef enum
{
WEAR_NONE = -1, WEAR_LIGHT = 0, WEAR_FINGER_L, WEAR_FINGER_R, WEAR_NECK_1,
WEAR_NECK_2, WEAR_BODY, WEAR_HEAD, WEAR_LEGS, WEAR_FEET, WEAR_HANDS,
WEAR_ARMS, WEAR_SHIELD, WEAR_ABOUT, WEAR_WAIST, WEAR_WRIST_L, WEAR_WRIST_R,
WEAR_WIELD, WEAR_HOLD, WEAR_DUAL_WIELD, WEAR_EARS, WEAR_EYES,
WEAR_MISSILE_WIELD, WEAR_BACK, WEAR_HOLSTER_L, WEAR_HOLSTER_R, WEAR_BOTH_WRISTS,
MAX_WEAR
} wear_locations;
/* Board Types */
typedef enum { BOARD_NOTE, BOARD_MAIL } board_types;
/* Auth Flags */
#define FLAG_WRAUTH 1
#define FLAG_AUTH 2
/***************************************************************************
* *
* VALUES OF INTEREST TO AREA BUILDERS *
* (End of this section ... stop here) *
* *
***************************************************************************/
/*
* Conditions.
*/
typedef enum
{
COND_DRUNK, COND_FULL, COND_THIRST, COND_BLOODTHIRST, MAX_CONDS
} conditions;
/*
* Positions.
*/
typedef enum
{
POS_DEAD, POS_MORTAL, POS_INCAP, POS_STUNNED, POS_SLEEPING, POS_MEDITATING, POS_RESTING,
POS_SITTING, POS_FIGHTING, POS_STANDING, POS_MOUNTED, POS_SHOVE, POS_DRAG, POS_PLAYING
} positions;
typedef enum
{
CARD_NONE, CARD_FOLD, CARD_BET, CARD_CHECK, CARD_CALL
} cards;
/*
* Duck And Cover Positions
*/
#define COVER_NONE 0
#define COVER_DUCK 1
#define COVER_LEFT 2
#define COVER_RIGHT 3
#define COVER_FULL 4
/*
* ACT bits for players.
*/
#define PLR_IS_NPC BV00 /* Don't EVER set. */
#define PLR_CONVICT BV01
#define PLR_SHOVEDRAG BV02
#define PLR_AUTOEXIT BV03
#define PLR_AUTOLOOT BV04
#define PLR_AUTOSAC BV05
#define PLR_BLANK BV06
#define PLR_OUTCAST BV07
#define PLR_BRIEF BV08
#define PLR_COMBINE BV09
#define PLR_PROMPT BV10
#define PLR_TELNET_GA BV11
#define PLR_HOLYLIGHT BV12
#define PLR_WIZINVIS BV13
#define PLR_ROOMVNUM BV14
#define PLR_SILENCE BV15
#define PLR_NO_EMOTE BV16
#define PLR_ATTACKER BV17
#define PLR_NO_TELL BV18
#define PLR_LOG BV19
#define PLR_DENY BV20
#define PLR_FREEZE BV21
#define PLR_KILLER BV22
#define PLR_WHOINVIS BV23
#define PLR_LITTERBUG BV24
#define PLR_ANSI BV25
#define PLR_SOUND BV26
#define PLR_NICE BV27
#define PLR_FLEE BV28
#define PLR_AUTOGOLD BV29
#define PLR_SLOG BV30
#define PLR_AFK BV31
/* Bits for pc_data->flags. */
#define PCFLAG_R1 BV00
/*
#define PCFLAG_ BV01 extra flag
*/
#define PCFLAG_UNAUTHED BV02
#define PCFLAG_NORECALL BV03
#define PCFLAG_NOINTRO BV04
#define PCFLAG_GAG BV05
#define PCFLAG_RETIRED BV06
#define PCFLAG_GUEST BV07
#define PCFLAG_HASSLUG BV08
#define PCFLAG_PAGERON BV09
#define PCFLAG_NOTITLE BV10
#define PCFLAG_ROOM BV11
typedef enum
{
TIMER_NONE, TIMER_RECENTFIGHT, TIMER_SHOVEDRAG, TIMER_DO_FUN,
TIMER_APPLIED, TIMER_PKILLED } timer_types;
struct timer_data
{
TIMER * prev;
TIMER * next;
DO_FUN * do_fun;
int value;
sh_int type;
sh_int count;
};
/*
* Channel bits.
*/
#define CHANNEL_AUCTION BV00
#define CHANNEL_CHAT BV01
#define CHANNEL_QUEST BV02
#define CHANNEL_IMMTALK BV03
#define CHANNEL_VERPINE BV04
#define CHANNEL_ASK BV05
#define CHANNEL_SHOUT BV06
#define CHANNEL_YELL BV07
#define CHANNEL_MONITOR BV08
#define CHANNEL_LOG BV09
#define CHANNEL_SITH BV10
#define CHANNEL_CLAN BV11
#define CHANNEL_BUILD BV12
#define CHANNEL_105 BV13
#define CHANNEL_AVTALK BV14
#define CHANNEL_PRAY BV15
#define CHANNEL_COUNCIL BV16
#define CHANNEL_GUILD BV17
#define CHANNEL_COMM BV18
#define CHANNEL_TELLS BV19
#define CHANNEL_ORDER BV20
#define CHANNEL_NEWBIE BV21
#define CHANNEL_BARTOKK BV22
#define CHANNEL_OOC BV23
#define CHANNEL_SHIP BV24
#define CHANNEL_SYSTEM BV25
#define CHANNEL_SPACE BV26
#define CHANNEL_104 BV27
#define CHANNEL_SPORTS BV27
#define CHANNEL_HOLONET BV31
#define CHANNEL_CLANTALK CHANNEL_CLAN
/* Area defines - Scryn 8/11
*
*/
#define AREA_DELETED BV00
#define AREA_LOADED BV01
/* Area flags - Narn Mar/96 */
#define AFLAG_NOPKILL BV00
/*
* Prototype for a mob.
* This is the in-memory version of #MOBILES.
*/
struct mob_index_data
{
MOB_INDEX_DATA * next;
MOB_INDEX_DATA * next_sort;
SPEC_FUN * spec_fun;
SPEC_FUN * spec_2;
SHOP_DATA * pShop;
REPAIR_DATA * rShop;
MPROG_DATA * mudprogs;
int progtypes;
char * player_name;
char * short_descr;
char * long_descr;
char * description;
sh_int vnum;
sh_int count;
sh_int killed;
sh_int sex;
sh_int level;
int act;
int affected_by;
sh_int alignment;
sh_int mobthac0; /* Unused */
sh_int ac;
sh_int hitnodice;
sh_int hitsizedice;
sh_int hitplus;
sh_int damnodice;
sh_int damsizedice;
sh_int damplus;
sh_int numattacks;
int gold;
int exp;
int xflags;
int resistant;
int immune;
int susceptible;
int attacks;
int defenses;
int speaks;
int speaking;
sh_int position;
sh_int defposition;
sh_int height;
sh_int weight;
sh_int race;
sh_int hitroll;
sh_int damroll;
sh_int perm_str;
sh_int perm_int;
sh_int perm_wis;
sh_int perm_dex;
sh_int perm_con;
sh_int perm_cha;
sh_int perm_lck;
sh_int perm_frc;
sh_int saving_poison_death;
sh_int saving_wand;
sh_int saving_para_petri;
sh_int saving_breath;
sh_int saving_spell_staff;
int vip_flags;
};
struct hunt_hate_fear
{
char * name;
CHAR_DATA * who;
};
struct fighting_data
{
CHAR_DATA * who;
int xp;
sh_int align;
sh_int duration;
sh_int timeskilled;
};
struct extracted_char_data
{
EXTRACT_CHAR_DATA * next;
CHAR_DATA * ch;
ROOM_INDEX_DATA * room;
ch_ret retcode;
bool extract;
};
/*
* One character (PC or NPC).
* (Shouldn't most of that build interface stuff use substate, dest_buf,
* spare_ptr and tempnum? Seems a little redundant)
*/
struct char_data
{
CHAR_DATA * next;
CHAR_DATA * prev;
CHAR_DATA * next_in_room;
CHAR_DATA * prev_in_room;
CHAR_DATA * master;
CHAR_DATA * leader;
FIGHT_DATA * fighting;
CHAR_DATA * reply;
char * owner;
ROOM_INDEX_DATA * home;
CHAR_DATA * switched;
BUG_DATA * first_bug;
BUG_DATA * last_bug;
CONTRACT_DATA * first_contract;
CONTRACT_DATA * last_contract;
FELLOW_DATA * first_fellow;
FELLOW_DATA * last_fellow;
CHAR_DATA * mount;
HHF_DATA * hunting;
HHF_DATA * fearing;
HHF_DATA * hating;
SPEC_FUN * spec_fun;
SPEC_FUN * spec_2;
MPROG_ACT_LIST * mpact;
int mpactnum;
sh_int mpscriptpos;
MOB_INDEX_DATA * pIndexData;
DESCRIPTOR_DATA * desc;
AFFECT_DATA * first_affect;
AFFECT_DATA * last_affect;
QUEST_DATA * first_quest;
QUEST_DATA * last_quest;
NOTE_DATA * pnote;
NOTE_DATA * comments;
OBJ_DATA * first_carrying;
OBJ_DATA * last_carrying;
ROOM_INDEX_DATA * in_room;
ROOM_INDEX_DATA * was_in_room;
ROOM_INDEX_DATA * was_sentinel;
ROOM_INDEX_DATA * plr_home;
PC_DATA * pcdata;
DO_FUN * last_cmd;
DO_FUN * prev_cmd; /* mapping */
CHAR_DATA *challenged;
CHAR_DATA *pazaak_challenged;
CHAR_DATA *pazaak_betted_on;
CHAR_DATA * betted_on;
int pazaak_bet_amt;
int bet_amt;
void * dest_buf;
void * dest_buf_2;
void * spare_ptr;
int tempnum;
EDITOR_DATA * editor;
TIMER * first_timer;
TIMER * last_timer;
char * name;
char * short_descr;
char * long_descr;
char * description;
sh_int num_fighting;
sh_int substate;
sh_int sex;
sh_int race;
sh_int top_level;
sh_int skill_level[MAX_NSKILL];
sh_int skill_percent[MAX_NSKILL];
sh_int force_level[MAX_FSKILL];
sh_int force_percent[MAX_FSKILL];
sh_int class_level[MAX_ABILITY];
sh_int trust;
int played;
time_t logon;
time_t save_time;
sh_int timer;
sh_int wait;
sh_int hit;
sh_int max_hit;
int force_skill[MAX_FORCE_SKILL];
sh_int force_control;
sh_int force_sense;
sh_int force_alter;
sh_int force_chance;
sh_int force_identified;
sh_int force_level_status;
sh_int force_align;
sh_int force_converted;
sh_int force_type;
char *force_master;
char *force_temp_master;
char *force_disguise;
int force_disguise_count;
int wait_state;
sh_int mana;
sh_int max_mana;
sh_int move;
sh_int max_move;
sh_int numattacks;
int gold;
long experience;
int act;
int feats;
int feats2;
int feats3;
int has_stance;
sh_int stance;
int droid_feat;
sh_int damage_reduction;
int force_feats;
int affected_by;
int carry_weight;
int carry_number;
int xflags;
int resistant;
int immune;
int susceptible;
int attacks;
int defenses;
int speaks;
int speaking;
sh_int saving_poison_death;
sh_int saving_wand;
sh_int saving_para_petri;
sh_int saving_breath;
sh_int saving_spell_staff;
sh_int alignment;
sh_int barenumdie;
sh_int baresizedie;
sh_int mobthac0;
sh_int hitroll;
sh_int damroll;
sh_int hitplus;
sh_int damplus;
sh_int position;
sh_int defposition;
sh_int cards;
sh_int cover;
sh_int height;
sh_int weight;
sh_int armor;
sh_int wimpy;
int deaf;
sh_int droid_type;
sh_int skillpoints;
sh_int forcepoints;
sh_int darkpoints;
sh_int willpower;
sh_int resources;
sh_int resources_temp;
sh_int aerial_defense;
sh_int trains;
sh_int implant;
sh_int enemy_bonus;
sh_int efficiency;
sh_int familiarity;
sh_int target;
sh_int sneak_attack;
sh_int heart;
sh_int heart_use;
sh_int coordinate;
sh_int precise_attack;
sh_int deflect_defense;
sh_int deflect_attack;
sh_int force_weapon;
sh_int secret;
sh_int talisman;
sh_int inspire_fear;
sh_int mastercraft;
sh_int specialty;
sh_int jury_rig;
sh_int lightsaber_defense;
sh_int reputation;
sh_int dodge_bonus;
sh_int unused_feats;
sh_int fortitude;
sh_int reflexes;
sh_int perm_str;
sh_int perm_int;
sh_int perm_wis;
sh_int perm_dex;
sh_int perm_con;
sh_int perm_cha;
sh_int perm_lck;
sh_int perm_frc;
sh_int mod_str;
sh_int mod_int;
sh_int mod_wis;
sh_int mod_dex;
sh_int mod_con;
sh_int mod_cha;
sh_int mod_lck;
sh_int mod_frc;
sh_int mental_state; /* simplified */
sh_int emotional_state; /* simplified */
int pagelen; /* BUILD INTERFACE */
sh_int inter_page; /* BUILD INTERFACE */
sh_int inter_type; /* BUILD INTERFACE */
char *inter_editing; /* BUILD INTERFACE */
int inter_editing_vnum; /* BUILD INTERFACE */
sh_int inter_substate; /* BUILD INTERFACE */
int retran;
int regoto;
sh_int mobinvis; /* Mobinvis level SB */
int vip_flags;
sh_int backup_wait; /* reinforcements */
int backup_mob; /* reinforcements */
sh_int was_stunned;
char * mob_clan; /* for spec_clan_guard.. set by postguard */
GUARD_DATA * guard_data;
sh_int main_ability;
sh_int secondary_ability;
sh_int rppoints;
char * comfreq;
char * rank;
int pheight, build;
CHAR_DATA * aiming_at;
};
struct killed_data
{
sh_int vnum;
char count;
};
struct bug_data
{
char * name;
BUG_DATA * next_in_bug;
BUG_DATA * prev_in_bug;
};
struct contract_data
{
char * target;
int amount;
CONTRACT_DATA * next_in_contract;
CONTRACT_DATA * prev_in_contract;
};
struct fellow_data
{
char * victim;
char * knownas;
FELLOW_DATA * next;
FELLOW_DATA * prev;
};
/*
* Data which only PC's have.
*/
struct pc_data
{
CLAN_DATA * clan;
AREA_DATA * area;
ROOM_INDEX_DATA * roomarena;
char * student;
char * master;
char * homepage;
char * screenname;
char * image;
char * clan_name;
char * pwd;
char * email;
char * bamfin;
char * bamfout;
int lost_attacks;
char * rank;
int shipnum;
char * shipname;
char * title;
char * disguise;
char * protector;
char * protected;
char * bestowments; /* Special bestowed commands */
sh_int force_status;
sh_int trials;
int act2;
int flags; /* Whether the player is deadly and whatever else we add. */
int pkills; /* Number of pkills on behalf of clan */
int pdeaths; /* Number of times pkilled (legally) */
int mkills; /* Number of mobs killed */
int mdeaths; /* Number of deaths due to mobs */
int illegal_pk; /* Number of illegal pk's committed */
long loan;
sh_int has_master;
sh_int has_trained;
sh_int can_invest;
sh_int age;
char * fiance;
char * propose;
char * proposed;
char * spouse;
int forcerank;
char * last_name;
long int outcast_time; /* The time at which the char was outcast */
long int restore_time; /* The last time the char did a restore all */
sh_int alchemy_mod;
int alchemy;
sh_int r_range_lo; /* room range */
sh_int r_range_hi;
sh_int m_range_lo; /* mob range */
sh_int m_range_hi;
sh_int o_range_lo; /* obj range */
sh_int o_range_hi;
char * tell_snoop; /* Tell snoop */
sh_int wizinvis; /* wizinvis level */
sh_int min_snoop; /* minimum snoop level */
sh_int condition [MAX_CONDS];
sh_int learned [MAX_SKILL];
KILLED_DATA killed [MAX_KILLTRACK];
sh_int quest_number; /* current *QUEST BEING DONE* DON'T REMOVE! */
sh_int quest_curr; /* current number of quest points */
int quest_accum; /* quest points accumulated in players life */
int auth_state;
time_t release_date; /* Auto-helling.. Altrag */
char * helled_by;
char * bio; /* Personal Bio */
char * authed_by; /* what crazy imm authed this name ;) */
SKILLTYPE * special_skills[5]; /* personalized skills/spells */
char * prompt; /* User config prompts */
char * subprompt; /* Substate prompt */
sh_int pagerlen; /* For pager (NOT menus) */
bool openedtourney;
sh_int addiction[10];
sh_int drug_level[10];
char * store_title;
bool is_hacking;
int wanted_flags;
long bank;
int salary;
int force_bonus;
sh_int reputation;
};
#define IS_ADULT 0
#define IS_CHILD 1
#define ALCHEMY_CLAWS BV00
#define ALCHEMY_HORNS BV01
#define ALCHEMY_DARKVISION BV02
#define ALCHEMY_DEFENSE BV03
#define ALCHEMY_STRENGTH BV04
#define ALCHEMY_DEXTERITY BV05
#define ALCHEMY_CONSTITUTION BV06
#define ALCHEMY_INTELLIGENCE BV07
#define ALCHEMY_WISDOM BV08
#define ALCHEMY_CHARISMA BV09
#define IS_FAMOUS 0
#define IS_INFAMOUS 1
#define NOT_PASSED 0
#define HAS_PASSED 1
/*
* Liquids.
*/
#define LIQ_WATER 0
#define LIQ_MAX 19
struct liq_type
{
char * liq_name;
char * liq_color;
sh_int liq_affect[3];
};
/*
* Extra description data for a room or object.
*/
struct extra_descr_data
{
EXTRA_DESCR_DATA *next; /* Next in list */
EXTRA_DESCR_DATA *prev; /* Previous in list */
char *keyword; /* Keyword in look/examine */
char *description; /* What to see */
};
/*
* Prototype for an object.
*/
struct obj_index_data
{
OBJ_INDEX_DATA * next;
OBJ_INDEX_DATA * next_sort;
EXTRA_DESCR_DATA * first_extradesc;
EXTRA_DESCR_DATA * last_extradesc;
AFFECT_DATA * first_affect;
AFFECT_DATA * last_affect;
MPROG_DATA * mudprogs; /* objprogs */
int progtypes; /* objprogs */
char * name;
char * short_descr;
char * description;
char * action_desc;
int vnum;
sh_int level;
sh_int item_type;
int extra_flags;
int magic_flags; /*Need more bitvectors for spells - Scryn*/
int wear_flags;
sh_int count;
sh_int weight;
int cost;
int value [6];
int serial;
sh_int layers;
int rent; /* Unused */
};
/*
* One object.
*/
struct obj_data
{
OBJ_DATA * next;
OBJ_DATA * prev;
OBJ_DATA * next_content;
OBJ_DATA * prev_content;
OBJ_DATA * first_content;
OBJ_DATA * last_content;
OBJ_DATA * in_obj;
CHAR_DATA * carried_by;
EXTRA_DESCR_DATA * first_extradesc;
EXTRA_DESCR_DATA * last_extradesc;
AFFECT_DATA * first_affect;
AFFECT_DATA * last_affect;
OBJ_INDEX_DATA * pIndexData;
ROOM_INDEX_DATA * in_room;
char * armed_by;
char * name;
char * short_descr;
char * description;
char * action_desc;
sh_int item_type;
sh_int mpscriptpos;
int extra_flags;
int magic_flags; /*Need more bitvectors for spells - Scryn*/
int wear_flags;
int blaster_setting;
MPROG_ACT_LIST * mpact; /* mudprogs */
int mpactnum; /* mudprogs */
sh_int wear_loc;
sh_int weight;
char * killer; /* This serves one real purpose. When making a corpse we assign the killers name to it. */
int cost;
sh_int level;
sh_int timer;
int value [6];
sh_int count; /* support for object grouping */
int serial; /* serial number */
};
/*
* Exit data.
*/
struct exit_data
{
EXIT_DATA * prev; /* previous exit in linked list */
EXIT_DATA * next; /* next exit in linked list */
EXIT_DATA * rexit; /* Reverse exit pointer */
ROOM_INDEX_DATA * to_room; /* Pointer to destination room */
char * keyword; /* Keywords for exit or door */
char * description; /* Description of exit */
int vnum; /* Vnum of room exit leads to */
int rvnum; /* Vnum of room in opposite dir */
int exit_info; /* door states & other flags */
int key; /* Key vnum */
sh_int vdir; /* Physical "direction" */
sh_int distance; /* how far to the next room */
};
/*
* Reset commands:
* '*': comment
* 'M': read a mobile
* 'O': read an object
* 'P': put object in object
* 'G': give object to mobile
* 'E': equip object to mobile
* 'H': hide an object
* 'B': set a bitvector
* 'T': trap an object
* 'D': set state of door
* 'R': randomize room exits
* 'S': stop (end of list)
*/
/*
* Area-reset definition.
*/
struct reset_data
{
RESET_DATA * next;
RESET_DATA * prev;
char command;
int extra;
int arg1;
int arg2;
int arg3;
};
/* Constants for arg2 of 'B' resets. */
#define BIT_RESET_DOOR 0
#define BIT_RESET_OBJECT 1
#define BIT_RESET_MOBILE 2
#define BIT_RESET_ROOM 3
#define BIT_RESET_TYPE_MASK 0xFF /* 256 should be enough */
#define BIT_RESET_DOOR_THRESHOLD 8
#define BIT_RESET_DOOR_MASK 0xFF00 /* 256 should be enough */
#define BIT_RESET_SET BV30
#define BIT_RESET_TOGGLE BV31
#define BIT_RESET_FREEBITS 0x3FFF0000 /* For reference */
/*
* Area definition.
*/
struct area_data
{
AREA_DATA * next;
AREA_DATA * prev;
AREA_DATA * next_sort;
AREA_DATA * prev_sort;
RESET_DATA * first_reset;
ROOM_INDEX_DATA * first_room;
ROOM_INDEX_DATA * last_room;
RESET_DATA * last_reset;
PLANET_DATA * planet;
AREA_DATA * next_on_planet;
AREA_DATA * prev_on_planet;
char * name;
char * filename;
int flags;
sh_int status; /* h, 8/11 */
sh_int age;
sh_int nplayer;
sh_int reset_frequency;
int low_r_vnum;
int hi_r_vnum;
int low_o_vnum;
int hi_o_vnum;
sh_int low_m_vnum;
sh_int hi_m_vnum;
int low_soft_range;
int hi_soft_range;
int low_hard_range;
int hi_hard_range;
char * author; /* Scryn */
char * resetmsg; /* Rennard */
RESET_DATA * last_mob_reset;
RESET_DATA * last_obj_reset;
sh_int max_players;
int mkills;
int mdeaths;
int pkills;
int pdeaths;
int gold_looted;
int illegal_pk;
int high_economy;
int low_economy;
};
/*
* Load in the gods building data. -- Altrag
*/
struct godlist_data
{
GOD_DATA * next;
GOD_DATA * prev;
int level;
int low_r_vnum;
int hi_r_vnum;
int low_o_vnum;
int hi_o_vnum;
sh_int low_m_vnum;
sh_int hi_m_vnum;
};
/*
* Used to keep track of system settings and statistics -Thoric
*/
struct system_data
{
int maxplayers; /* Maximum players this boot */
int alltimemax; /* Maximum players ever */
char * time_of_max; /* Time of max ever */
bool NO_NAME_RESOLVING; /* Hostnames are not resolved */
bool DENY_NEW_PLAYERS; /* New players cannot connect */
bool WAIT_FOR_AUTH; /* New players must be auth'ed */
bool WIZLOCK;
sh_int newbie_purge; /* Level to auto-purge newbies at - Samson 12-27-98 */
sh_int regular_purge; /* Level to purge normal players at - Samson 12-27-98 */
bool CLEANPFILES; /* Should the mud clean up pfiles daily? - Samson 12-27-98 */
sh_int read_all_mail; /* Read all player mail(was 54)*/
sh_int read_mail_free; /* Read mail for free (was 51) */
sh_int write_mail_free; /* Write mail for free(was 51) */
sh_int take_others_mail; /* Take others mail (was 54) */
sh_int muse_level; /* Level of muse channel */
sh_int think_level; /* Level of think channel LEVEL_HIGOD*/
sh_int build_level; /* Level of build channel LEVEL_BUILD*/
sh_int log_level; /* Level of log channel LEVEL LOG*/
sh_int level_modify_proto; /* Level to modify prototype stuff LEVEL_LESSER */
sh_int level_override_private; /* override private flag */
sh_int level_mset_player; /* Level to mset a player */
sh_int stun_plr_vs_plr; /* Stun mod player vs. player */
sh_int stun_regular; /* Stun difficult */
sh_int dam_plr_vs_plr; /* Damage mod player vs. player */
sh_int dam_plr_vs_mob; /* Damage mod player vs. mobile */
sh_int dam_mob_vs_plr; /* Damage mod mobile vs. player */
sh_int dam_mob_vs_mob; /* Damage mod mobile vs. mobile */
sh_int level_getobjnotake; /* Get objects without take flag */
sh_int level_forcepc; /* The level at which you can use force on players. */
sh_int max_sn; /* Max skills */
char *guild_overseer; /* Pointer to char containing the name of the */
char *guild_advisor; /* guild overseer and advisor. */
int save_flags; /* Toggles for saving conditions */
sh_int save_frequency; /* How old to autosave someone */
};
/*
* Room type.
*/
struct room_index_data
{
ROOM_INDEX_DATA * next;
ROOM_INDEX_DATA * next_sort;
CHAR_DATA * first_person;
CHAR_DATA * last_person;
OBJ_DATA * first_content;
OBJ_DATA * last_content;
EXTRA_DESCR_DATA * first_extradesc;
EXTRA_DESCR_DATA * last_extradesc;
AREA_DATA * area;
EXIT_DATA * first_exit;
EXIT_DATA * last_exit;
ROOM_INDEX_DATA * next_in_area;
ROOM_INDEX_DATA * prev_in_area;
ROOM_INDEX_DATA * next_in_ship;
ROOM_INDEX_DATA * prev_in_ship;
char * name;
int exvnum;
MAP_DATA * map; /* maps */
SHIP_DATA * first_ship;
SHIP_DATA * last_ship;
char * description;
int vnum;
int room_flags;
int room_flags2;
int cargo_flags;
int art;
int bacta;
int semi_gem;
int prec_gem;
int comm_ore;
int rare_ore;
int spice;
int slaves;
int weapons;
MPROG_ACT_LIST * mpact; /* mudprogs */
int mpactnum; /* mudprogs */
MPROG_DATA * mudprogs; /* mudprogs */
sh_int mpscriptpos;
int progtypes; /* mudprogs */
sh_int light;
sh_int sector_type;
int tele_vnum;
sh_int tele_delay;
sh_int tunnel; /* max people that will fit */
};
/*
* Delayed teleport type.
*/
struct teleport_data
{
TELEPORT_DATA * next;
TELEPORT_DATA * prev;
ROOM_INDEX_DATA * room;
sh_int timer;
};
/*
* Types of skill numbers. Used to keep separate lists of sn's
* Must be non-overlapping with spell/skill types,
* but may be arbitrary beyond that.
*/
#define TYPE_UNDEFINED -1
#define TYPE_MISSILE 111
#define TYPE_HIT 1000 /* allows for 1000 skills/spells */
#define TYPE_HERB 2000 /* allows for 1000 attack types */
#define TYPE_PERSONAL 3000 /* allows for 1000 herb types */
/*
* Target types.
*/
typedef enum
{
TAR_IGNORE, TAR_CHAR_OFFENSIVE, TAR_CHAR_DEFENSIVE, TAR_CHAR_SELF,
TAR_OBJ_INV
} target_types;
typedef enum
{
SKILL_UNKNOWN, SKILL_SPELL, SKILL_SKILL, SKILL_WEAPON, SKILL_TONGUE,
SKILL_HERB
} skill_types;
struct timerset
{
int num_uses;
struct timeval total_time;
struct timeval min_time;
struct timeval max_time;
};
/*
* Skills include spells as a particular case.
*/
struct skill_type
{
char * name; /* Name of skill */
SPELL_FUN * spell_fun; /* Spell pointer (for spells) */
DO_FUN * skill_fun; /* Skill pointer (for skills) */
sh_int target; /* Legal targets */
sh_int minimum_position; /* Position for caster / user */
sh_int slot; /* Slot for #OBJECT loading */
sh_int min_mana; /* Minimum mana used */
sh_int beats; /* Rounds required to use skill */
char * noun_damage; /* Damage message */
char * msg_off; /* Wear off message */
sh_int guild; /* Which guild the skill belongs to */
sh_int min_level; /* Minimum level to be able to cast */
sh_int type; /* Spell/Skill/Weapon/Tongue */
int flags; /* extra stuff */
char * hit_char; /* Success message to caster */
char * hit_vict; /* Success message to victim */
char * hit_room; /* Success message to room */
char * miss_char; /* Failure message to caster */
char * miss_vict; /* Failure message to victim */
char * miss_room; /* Failure message to room */
char * die_char; /* Victim death msg to caster */
char * die_vict; /* Victim death msg to victim */
char * die_room; /* Victim death msg to room */
char * imm_char; /* Victim immune msg to caster */
char * imm_vict; /* Victim immune msg to victim */
char * imm_room; /* Victim immune msg to room */
char * dice; /* Dice roll */
int value; /* Misc value */
char saves; /* What saving spell applies */
char difficulty; /* Difficulty of casting/learning */
SMAUG_AFF * affects; /* Spell affects, if any */
char * components; /* Spell components, if any */
char * teachers; /* Skill requires a special teacher */
char participants; /* # of required participants */
struct timerset userec; /* Usage record */
int alignment; /* for jedi powers */
};
struct auction_data
{
OBJ_DATA * item; /* a pointer to the item */
CHAR_DATA * seller; /* a pointer to the seller - which may NOT quit */
CHAR_DATA * buyer; /* a pointer to the buyer - which may NOT quit */
int bet; /* last bet - or 0 if noone has bet anything */
sh_int going; /* 1,2, sold */
sh_int pulse; /* how many pulses (.25 sec) until another call-out ? */
int starting;
};
/*
* These are skill_lookup return values for basic skills and spells.
*/
extern sh_int gsn_rage;
extern sh_int gsn_battlemind;
extern sh_int gsn_enhance_ability;
extern sh_int gsn_enhance_senses;
extern sh_int gsn_sithsorcery;
extern sh_int gsn_forcemind;
extern sh_int gsn_fear;
extern sh_int gsn_force_defense;
extern sh_int gsn_intimidate;
extern sh_int gsn_callforce;
extern sh_int gsn_smallspace;
extern sh_int gsn_mediumspace;
extern sh_int gsn_largespace;
extern sh_int gsn_weaponsystems;
extern sh_int gsn_navigation;
extern sh_int gsn_shipsystems;
extern sh_int gsn_tractorbeams;
extern sh_int gsn_spacecombat;
extern sh_int gsn_spacecombat2;
extern sh_int gsn_spacecombat3;
extern sh_int gsn_bomb;
extern sh_int gsn_shipdesign;
/* Technician skills */
extern sh_int gsn_makemodule;
extern sh_int gsn_installmodule;
extern sh_int gsn_showmodules;
extern sh_int gsn_shipmaintenance;
extern sh_int gsn_scanbugs;
extern sh_int gsn_removebug;
extern sh_int gsn_removemodule;
/* These are bh skills */
extern sh_int gsn_ambush;
extern sh_int gsn_bind;
extern sh_int gsn_gag;
extern sh_int gsn_battle_command;
extern sh_int gsn_reinforcements;
extern sh_int gsn_postguard;
extern sh_int gsn_addpatrol;
extern sh_int gsn_eliteguard;
extern sh_int gsn_specialforces;
extern sh_int gsn_jail;
extern sh_int gsn_smalltalk;
extern sh_int gsn_propeganda;
extern sh_int gsn_bribe;
extern sh_int gsn_seduce;
extern sh_int gsn_masspropeganda;
extern sh_int gsn_gather_intelligence;
/* hunter assassin gsn ints */
extern sh_int gsn_plantbug;
extern sh_int gsn_showbugs;
extern sh_int gsn_silent;
extern sh_int gsn_retreat;
/* The gsn ints for the slicers */
extern sh_int gsn_spy;
extern sh_int gsn_makecommsystem;
extern sh_int gsn_sabotage;
extern sh_int gsn_commsystem;
extern sh_int gsn_codecrack;
extern sh_int gsn_slicebank;
extern sh_int gsn_inquire;
extern sh_int gsn_makedatapad;
extern sh_int gsn_disable;
extern sh_int gsn_assignpilot;
extern sh_int gsn_checkprints;
extern sh_int gsn_torture;
extern sh_int gsn_snipe;
extern sh_int gsn_throw;
extern sh_int gsn_deception;
extern sh_int gsn_disguise;
extern sh_int gsn_mine;
extern sh_int gsn_first_aid;
extern sh_int gsn_beg;
extern sh_int gsn_makeblade;
extern sh_int gsn_makebug;
extern sh_int gsn_makebeacon;
extern sh_int gsn_makepike;
extern sh_int gsn_makejewelry;
extern sh_int gsn_makeblaster;
extern sh_int gsn_makelight;
extern sh_int gsn_makecomlink;
extern sh_int gsn_makegrenade;
extern sh_int gsn_makeshipbomb;
extern sh_int gsn_makelandmine;
extern sh_int gsn_makearmor;
extern sh_int gsn_makeshield;
extern sh_int gsn_makecontainer;
extern sh_int gsn_gemcutting;
extern sh_int gsn_makelightsaber;
extern sh_int gsn_makeduallightsaber;
extern sh_int gsn_repair;
extern sh_int gsn_shiprepair;
extern sh_int gsn_spice_refining;
extern sh_int gsn_detrap;
extern sh_int gsn_backstab;
extern sh_int gsn_dualstab;
extern sh_int gsn_bargain;
extern sh_int gsn_circle;
extern sh_int gsn_dodge;
extern sh_int gsn_hide;
extern sh_int gsn_concealment;
extern sh_int gsn_peek;
extern sh_int gsn_pick_lock;
extern sh_int gsn_scan;
extern sh_int gsn_sneak;
extern sh_int gsn_steal;
extern sh_int gsn_gouge;
extern sh_int gsn_track;
extern sh_int gsn_search;
extern sh_int gsn_dig;
extern sh_int gsn_mount;
extern sh_int gsn_bashdoor;
extern sh_int gsn_berserk;
extern sh_int gsn_hitall;
extern sh_int gsn_pickshiplock;
extern sh_int gsn_hijack;
extern sh_int gsn_disarm;
extern sh_int gsn_enhanced_damage;
extern sh_int gsn_kick;
extern sh_int gsn_parry;
extern sh_int gsn_rescue;
extern sh_int gsn_second_attack;
extern sh_int gsn_third_attack;
extern sh_int gsn_dual_wield;
extern sh_int gsn_reflect;
extern sh_int gsn_aid;
extern sh_int gsn_plantbeacon;
extern sh_int gsn_showbeacons;
extern sh_int gsn_checkbeacons;
extern sh_int gsn_nullifybeacons;
extern sh_int gsn_makebinders;
extern sh_int gsn_launchers;
extern sh_int gsn_makemissile;
extern sh_int gsn_makeempgrenade;
extern sh_int gsn_makegoggles;
extern sh_int gsn_truesight;
extern sh_int gsn_barrelroll;
extern sh_int gsn_juke;
/* used to do specific lookups */
extern sh_int gsn_first_spell;
extern sh_int gsn_first_skill;
extern sh_int gsn_first_weapon;
extern sh_int gsn_first_tongue;
extern sh_int gsn_top_sn;
/* spells */
extern sh_int gsn_blindness;
extern sh_int gsn_charm_person;
extern sh_int gsn_aqua_breath;
extern sh_int gsn_invis;
extern sh_int gsn_mass_invis;
extern sh_int gsn_poison;
extern sh_int gsn_sleep;
extern sh_int gsn_possess;
extern sh_int gsn_fireball; /* for fireshield */
extern sh_int gsn_lightning_bolt; /* for shockshield */
/* newer attack skills */
extern sh_int gsn_punch;
extern sh_int gsn_bash;
extern sh_int gsn_stun;
extern sh_int gsn_poison_weapon;
extern sh_int gsn_climb;
extern sh_int gsn_blasters;
extern sh_int gsn_force_pikes;
extern sh_int gsn_bowcasters;
extern sh_int gsn_lightsabers;
extern sh_int gsn_vibro_blades;
extern sh_int gsn_flexible_arms;
extern sh_int gsn_talonous_arms;
extern sh_int gsn_bludgeons;
extern sh_int gsn_grip;
/* languages */
extern sh_int gsn_basic;
extern sh_int gsn_wookiee;
extern sh_int gsn_twilek;
extern sh_int gsn_rodian;
extern sh_int gsn_hutt;
extern sh_int gsn_mon_calamari;
extern sh_int gsn_noghri;
extern sh_int gsn_ewok;
extern sh_int gsn_ithorian;
extern sh_int gsn_gotal;
extern sh_int gsn_devaronian;
extern sh_int gsn_binary;
extern sh_int gsn_firrerreo;
extern sh_int gsn_gamorrean;
extern sh_int gsn_togorian;
extern sh_int gsn_shistavanen;
extern sh_int gsn_jawa;
extern sh_int gsn_kubaz;
extern sh_int gsn_adarian;
extern sh_int gsn_verpine;
extern sh_int gsn_defel;
extern sh_int gsn_trandoshan;
extern sh_int gsn_hapan;
extern sh_int gsn_quarren;
extern sh_int gsn_sullustan;
extern sh_int gsn_falleen;
extern sh_int gsn_barabel;
extern sh_int gsn_yevethan;
extern sh_int gsn_gand;
extern sh_int gsn_coynite;
extern sh_int gsn_duinuogwuin;
extern sh_int gsn_droid;
/*
* Utility macros.
*/
#define UMIN(a, b) ((a) < (b) ? (a) : (b))
#define UMAX(a, b) ((a) > (b) ? (a) : (b))
#define URANGE(a, b, c) ((b) < (a) ? (a) : ((b) > (c) ? (c) : (b)))
#define LOWER(c) ((c) >= 'A' && (c) <= 'Z' ? (c)+'a'-'A' : (c))
#define UPPER(c) ((c) >= 'a' && (c) <= 'z' ? (c)+'A'-'a' : (c))
#define IS_SET(flag, bit) ((flag) & (bit))
#define SET_BIT(var, bit) ((var) |= (bit))
#define REMOVE_BIT(var, bit) ((var) &= ~(bit))
#define TOGGLE_BIT(var, bit) ((var) ^= (bit))
#define CH(d) ((d)->original ? (d)->original : (d)->character)
/*
* Memory allocation macros.
*/
#define CREATE(result, type, number) \
do \
{ \
if (!((result) = (type *) calloc ((number), sizeof(type)))) \
{ perror("malloc failure"); abort(); } \
} while(0)
#define RECREATE(result,type,number) \
do \
{ \
if (!((result) = (type *) realloc ((result), sizeof(type) * (number))))\
{ perror("realloc failure"); abort(); } \
} while(0)
#define DISPOSE(point) \
do \
{ \
if (!(point)) \
{ \
bug( "Freeing null pointer" ); \
fprintf( stderr, "DISPOSEing NULL in %s, line %d\n", __FILE__, __LINE__ ); \
} \
else free(point); \
point = NULL; \
} while(0)
#ifdef HASHSTR
#define STRALLOC(point) str_alloc((point))
#define QUICKLINK(point) quick_link((point))
#define QUICKMATCH(p1, p2) (int) (p1) == (int) (p2)
#define STRFREE(point) \
do \
{ \
if (!(point)) \
{ \
bug( "Freeing null pointer" ); \
fprintf( stderr, "STRFREEing NULL in %s, line %d\n", __FILE__, __LINE__ ); \
} \
else if (str_free((point))==-1) \
fprintf( stderr, "STRFREEing bad pointer in %s, line %d\n", __FILE__, __LINE__ ); \
} while(0)
#else
#define STRALLOC(point) str_dup((point))
#define QUICKLINK(point) str_dup((point))
#define QUICKMATCH(p1, p2) strcmp((p1), (p2)) == 0
#define STRFREE(point) \
do \
{ \
if (!(point)) \
{ \
bug( "Freeing null pointer" ); \
fprintf( stderr, "STRFREEing NULL in %s, line %d\n", __FILE__, __LINE__ ); \
} \
else free((point)); \
} while(0)
#endif
/* double-linked list handling macros -Thoric */
#define LINK(link, first, last, next, prev) \
do \
{ \
if ( !(first) ) \
(first) = (link); \
else \
(last)->next = (link); \
(link)->next = NULL; \
(link)->prev = (last); \
(last) = (link); \
} while(0)
#define INSERT(link, insert, first, next, prev) \
do \
{ \
(link)->prev = (insert)->prev; \
if ( !(insert)->prev ) \
(first) = (link); \
else \
(insert)->prev->next = (link); \
(insert)->prev = (link); \
(link)->next = (insert); \
} while(0)
#define UNLINK(link, first, last, next, prev) \
do \
{ \
if ( !(link)->prev ) \
(first) = (link)->next; \
else \
(link)->prev->next = (link)->next; \
if ( !(link)->next ) \
(last) = (link)->prev; \
else \
(link)->next->prev = (link)->prev; \
} while(0)
#define CHECK_LINKS(first, last, next, prev, type) \
do { \
type *ptr, *pptr = NULL; \
if ( !(first) && !(last) ) \
break; \
if ( !(first) ) \
{ \
bug( "CHECK_LINKS: last with NULL first! %s.", \
__STRING(first) ); \
for ( ptr = (last); ptr->prev; ptr = ptr->prev ); \
(first) = ptr; \
} \
else if ( !(last) ) \
{ \
bug( "CHECK_LINKS: first with NULL last! %s.", \
__STRING(first) ); \
for ( ptr = (first); ptr->next; ptr = ptr->next ); \
(last) = ptr; \
} \
if ( (first) ) \
{ \
for ( ptr = (first); ptr; ptr = ptr->next ) \
{ \
if ( ptr->prev != pptr ) \
{ \
bug( "CHECK_LINKS(%s): %p:->prev != %p. Fixing.", \
__STRING(first), ptr, pptr ); \
ptr->prev = pptr; \
} \
if ( ptr->prev && ptr->prev->next != ptr ) \
{ \
bug( "CHECK_LINKS(%s): %p:->prev->next != %p. Fixing.",\
__STRING(first), ptr, ptr ); \
ptr->prev->next = ptr; \
} \
pptr = ptr; \
} \
pptr = NULL; \
} \
if ( (last) ) \
{ \
for ( ptr = (last); ptr; ptr = ptr->prev ) \
{ \
if ( ptr->next != pptr ) \
{ \
bug( "CHECK_LINKS (%s): %p:->next != %p. Fixing.", \
__STRING(first), ptr, pptr ); \
ptr->next = pptr; \
} \
if ( ptr->next && ptr->next->prev != ptr ) \
{ \
bug( "CHECK_LINKS(%s): %p:->next->prev != %p. Fixing.",\
__STRING(first), ptr, ptr ); \
ptr->next->prev = ptr; \
} \
pptr = ptr; \
} \
} \
} while(0)
#define ASSIGN_GSN(gsn, skill) \
do \
{ \
if ( ((gsn) = skill_lookup((skill))) == -1 ) \
fprintf( stderr, "ASSIGN_GSN: Skill %s not found.\n", \
(skill) ); \
} while(0)
#define CHECK_SUBRESTRICTED(ch) \
do \
{ \
if ( (ch)->substate == SUB_RESTRICTED ) \
{ \
send_to_char( "You cannot use this command from within another command.\n\r", ch ); \
return; \
} \
} while(0)
/*
* Character macros.
*/
#define IS_NPC(ch) (IS_SET((ch)->act, ACT_IS_NPC))
#define HAS_EMBARGO(planet, sn) (IS_SET(planet->embargo, sn) )
#define IS_IMMORTAL(ch) (get_trust((ch)) >= LEVEL_IMMORTAL)
#define IS_DROID(ch) (ch->race == RACE_DROID)
#define IS_DARK(ch) ( ( !IS_NPC(ch) && ch->darkpoints >= get_curr_wis(ch) ) || ( IS_NPC(ch) && ch->alignment < 0 ) )
#define IS_TAINTED(ch) ( ch->darkpoints >= ( get_curr_wis(ch)/2) && ch->darkpoints < get_curr_wis(ch) )
#define IS_FORCER(ch) ( ch->class_level[FORCE_ADEPT_ABILITY] != 0 || ch->class_level[JEDICONSULAR_ABILITY] != 0 || ch->class_level[JEDIGUARDIAN_ABILITY] != 0 )
#define GET_FORT(ch) ( ch->fortitude + stat_table[get_curr_con(ch)].mod )
#define GET_REFL(ch) ( ch->reflexes + stat_table[get_curr_dex(ch)].mod )
#define GET_WILL(ch) ( ch->willpower + stat_table[get_curr_wis(ch)].mod )
#define HAS_DROID(ch, sn) (IS_SET((ch)->droid_feat, (sn)))
#define HAS_CYBER(ch, sn) (IS_SET((ch)->implant, (sn)))
#define HAS_STANCE(ch, sn) (IS_SET((ch)->has_stance, (sn)))
#define HAS_FEAT(ch, sn) (IS_SET((ch)->feats, (sn)))
#define HAS_FEAT2(ch, sn) (IS_SET((ch)->feats2, (sn)))
#define HAS_FEAT3(ch, sn) (IS_SET((ch)->feats3, (sn)))
#define HAS_FFEAT(ch, sn) (IS_SET((ch)->force_feats, (sn)))
#define IS_JEDI(ch) (ch->class_level[JEDICONSULAR_ABILITY] != 0 || ch->class_level[JEDIGUARDIAN_ABILITY] != 0)
#define IS_HERO(ch) (get_trust((ch)) >= LEVEL_HERO)
#define IS_AFFECTED(ch, sn) (IS_SET((ch)->affected_by, (sn)))
#define HAS_BODYPART(ch, part) (ch->xflags == 0 || IS_SET((ch)->xflags, (part)))
#define IS_GOOD(ch) ((ch)->alignment >= 350)
#define IS_EVIL(ch) ((ch)->alignment <= -350)
#define IS_NEUTRAL(ch) (!IS_GOOD(ch) && !IS_EVIL(ch))
#define IS_AWAKE(ch) ((ch)->position > POS_SLEEPING)
#define GET_HITROLL(ch) ((ch)->hitroll )
#define GET_DAMROLL(ch) ((ch)->damroll )
#define IS_OUTSIDE(ch) (!IS_SET( \
(ch)->in_room->room_flags, \
ROOM_INDOORS) && !IS_SET( \
(ch)->in_room->room_flags, \
ROOM_SPACECRAFT) )
#define IS_DRUNK(ch, drunk) (number_percent() < \
( (ch)->pcdata->condition[COND_DRUNK] \
* 2 / (drunk) ) )
#define IS_CLANNED(ch) (!IS_NPC((ch)) \
&& (ch)->pcdata->clan )
#define WAIT_STATE(ch, npulse) ((ch)->wait = UMAX((ch)->wait, (npulse)))
#define EXIT(ch, door) ( get_exit( (ch)->in_room, door ) )
#define CAN_GO(ch, door) (EXIT((ch),(door)) \
&& (EXIT((ch),(door))->to_room != NULL) \
&& !IS_SET(EXIT((ch), (door))->exit_info, EX_CLOSED))
#define IS_VALID_SN(sn) ( (sn) >=0 && (sn) < MAX_SKILL \
&& skill_table[(sn)] \
&& skill_table[(sn)]->name )
#define IS_VALID_HERB(sn) ( (sn) >=0 && (sn) < MAX_HERB \
&& herb_table[(sn)] \
&& herb_table[(sn)]->name )
#define SPELL_FLAG(skill, flag) ( IS_SET((skill)->flags, (flag)) )
#define SPELL_DAMAGE(skill) ( ((skill)->flags ) & 7 )
#define SPELL_ACTION(skill) ( ((skill)->flags >> 3) & 7 )
#define SPELL_CLASS(skill) ( ((skill)->flags >> 6) & 7 )
#define SPELL_POWER(skill) ( ((skill)->flags >> 9) & 3 )
#define SET_SDAM(skill, val) ( (skill)->flags = ((skill)->flags & SDAM_MASK) + ((val) & 7) )
#define SET_SACT(skill, val) ( (skill)->flags = ((skill)->flags & SACT_MASK) + (((val) & 7) << 3) )
#define SET_SCLA(skill, val) ( (skill)->flags = ((skill)->flags & SCLA_MASK) + (((val) & 7) << 6) )
#define SET_SPOW(skill, val) ( (skill)->flags = ((skill)->flags & SPOW_MASK) + (((val) & 3) << 9) )
/* Retired and guest imms. */
#define IS_RETIRED(ch) (ch->pcdata && IS_SET(ch->pcdata->flags,PCFLAG_RETIRED))
#define IS_GUEST(ch) (ch->pcdata && IS_SET(ch->pcdata->flags,PCFLAG_GUEST))
/* RIS by gsn lookups. -- Altrag.
Will need to add some || stuff for spells that need a special GSN. */
#define IS_FIRE(dt) ( IS_VALID_SN(dt) && \
SPELL_DAMAGE(skill_table[(dt)]) == SD_FIRE )
#define IS_COLD(dt) ( IS_VALID_SN(dt) && \
SPELL_DAMAGE(skill_table[(dt)]) == SD_COLD )
#define IS_ACID(dt) ( IS_VALID_SN(dt) && \
SPELL_DAMAGE(skill_table[(dt)]) == SD_ACID )
#define IS_ELECTRICITY(dt) ( IS_VALID_SN(dt) && \
SPELL_DAMAGE(skill_table[(dt)]) == SD_ELECTRICITY )
#define IS_ENERGY(dt) ( IS_VALID_SN(dt) && \
SPELL_DAMAGE(skill_table[(dt)]) == SD_ENERGY )
#define IS_DRAIN(dt) ( IS_VALID_SN(dt) && \
SPELL_DAMAGE(skill_table[(dt)]) == SD_DRAIN )
#define IS_POISON(dt) ( IS_VALID_SN(dt) && \
SPELL_DAMAGE(skill_table[(dt)]) == SD_POISON )
#define NOT_AUTHED(ch) (!IS_NPC(ch) && ch->pcdata->auth_state <= 3 \
&& IS_SET(ch->pcdata->flags, PCFLAG_UNAUTHED) )
#define HAS_SLUG(ch) (!IS_NPC(ch) && IS_SET(ch->pcdata->flags, \
PCFLAG_HASSLUG) )
#define IS_WAITING_FOR_AUTH(ch) (!IS_NPC(ch) && ch->desc \
&& ch->pcdata->auth_state == 1 \
&& IS_SET(ch->pcdata->flags, PCFLAG_UNAUTHED) )
/*
* Object macros.
*/
#define CAN_WEAR(obj, part) (IS_SET((obj)->wear_flags, (part)))
#define IS_OBJ_STAT(obj, stat) (IS_SET((obj)->extra_flags, (stat)))
/*
* Description macros.
*/
/* PERS WILL NOW BE HANDLED IN COMM.C
#define PERS(ch, looker) ( can_see( (looker), (ch) ) ? \
( IS_NPC(ch) ? (ch)->short_descr \
: (ch)->name ) : IS_IMMORTAL(ch) ? "Immortal" : "someone" )
*/
#define log_string( txt ) ( log_string_plus( (txt), LOG_NORMAL, LEVEL_LOG ) )
/*
* Structure for a command in the command lookup table.
*/
struct cmd_type
{
CMDTYPE * next;
char * name;
DO_FUN * do_fun;
sh_int position;
sh_int level;
sh_int log;
struct timerset userec;
};
/*
* Structure for a social in the socials table.
*/
struct social_type
{
SOCIALTYPE * next;
char * name;
char * char_no_arg;
char * others_no_arg;
char * char_found;
char * others_found;
char * vict_found;
char * char_auto;
char * others_auto;
};
/*
* Global constants.
*/
extern time_t last_restore_all_time;
extern time_t boot_time; /* this should be moved down */
extern HOUR_MIN_SEC * set_boot_time;
extern struct tm *new_boot_time;
extern time_t new_boot_time_t;
extern const struct str_app_type str_app [26];
extern const struct int_app_type int_app [26];
extern const struct wis_app_type wis_app [26];
extern const struct dex_app_type dex_app [30];
extern const struct con_app_type con_app [26];
extern const struct cha_app_type cha_app [26];
extern const struct lck_app_type lck_app [26];
extern const struct frc_app_type frc_app [26];
extern const struct race_type race_table [MAX_RACE];
extern const struct droid_type droid_table [MAX_DROID];
extern const struct liq_type liq_table [LIQ_MAX];
extern const struct stat_type stat_table [MAX_STAT];
extern const struct exp_type exp_table [31];
extern const struct exp_type clan_exp [31];
extern const struct bonus_type bonus_req [16];
extern const struct card_type card_table [12];
extern char * const nskill_name [MAX_NSKILL];
extern char * const fskill_name [MAX_FSKILL];
extern char * const attack_table [12];
extern char * const ability_name [MAX_ABILITY];
extern char * const crystal_name [16];
extern char * const alchemy_name [10];
extern char * const blaster_name [MAX_BLASTERS];
extern char * const laser_name [MAX_LASERS];
extern char * const turbo_name [MAX_TURBO];
extern char * const missile_name [MAX_MISSILES];
extern char * const ion_name [MAX_IONS];
extern char * const atmo_name [MAX_ATMO];
extern char * const bonus_clan [];
extern char * const ship_size [MAX_SIZE];
extern char * const planet_name [];
extern char * const cargo_name [10];
extern char * const stance_name [MAX_STANCE];
extern char * const base_name [BASE_CLASS];
extern char * const part_name [MAX_PART];
extern char * const height_name[4];
extern char * const build_name[6];
extern char * const droid_name[8];
extern char * const feat_name[32];
extern char * const feat2_name[32];
extern char * const skill_tname [];
extern sh_int const movement_loss [SECT_MAX];
extern char * const dir_name [];
extern char * const where_name [];
extern const sh_int rev_dir [];
extern const int trap_door [];
extern char * const r_flags [];
extern char * const r_flags2 [];
extern char * const c_flags [];
extern char * const c_flags2 [];
extern char * const w_flags [];
extern char * const o_flags [];
extern char * const a_flags [];
extern char * const o_types [];
extern char * const a_types [];
extern char * const act_flags [];
extern char * const planet_flags [];
extern char * const mprog_flags [];
extern char * const weapon_table [12];
extern char * const spice_table [];
extern char * const plr_flags [];
extern char * const pc_flags [];
extern char * const trap_flags [];
extern char * const ris_flags [];
extern char * const trig_flags [];
extern char * const part_flags [];
extern char * const npc_race [];
extern char * const defense_flags [];
extern char * const attack_flags [];
extern char * const area_flags [];
extern int const lang_array [];
extern char * const lang_names [];
extern bool bootup;
extern char namefreq[MAX_STRING_LENGTH];
extern char bname[MAX_STRING_LENGTH];
/*
* Global variables.
*/
extern MPSLEEP_DATA * first_mpwait; /* Storing sleeping mud progs */
extern MPSLEEP_DATA * last_mpwait; /* - */
extern MPSLEEP_DATA * current_mpwait; /* - */
extern int numobjsloaded;
extern int nummobsloaded;
extern int physicalobjects;
extern int num_descriptors;
extern struct system_data sysdata;
extern int top_sn;
extern int top_vroom;
extern int top_herb;
extern CMDTYPE * command_hash [126];
extern SKILLTYPE * skill_table [MAX_SKILL];
extern SOCIALTYPE * social_index [27];
extern CHAR_DATA * cur_char;
extern ROOM_INDEX_DATA * cur_room;
extern bool cur_char_died;
extern ch_ret global_retcode;
extern SKILLTYPE * herb_table [MAX_HERB];
extern int cur_obj;
extern int cur_obj_serial;
extern bool cur_obj_extracted;
extern obj_ret global_objcode;
extern HELP_DATA * first_help;
extern HELP_DATA * last_help;
extern SHOP_DATA * first_shop;
extern SHOP_DATA * last_shop;
extern REPAIR_DATA * first_repair;
extern REPAIR_DATA * last_repair;
extern BAN_DATA * first_ban;
extern BAN_DATA * last_ban;
extern CHAR_DATA * first_char;
extern CHAR_DATA * last_char;
extern DESCRIPTOR_DATA * first_descriptor;
extern DESCRIPTOR_DATA * last_descriptor;
extern BOARD_DATA * first_board;
extern BOARD_DATA * last_board;
extern OBJ_DATA * first_object;
extern OBJ_DATA * last_object;
extern CLAN_DATA * first_clan;
extern CLAN_DATA * last_clan;
extern GUARD_DATA * first_guard;
extern GUARD_DATA * last_guard;
extern SHIP_DATA * first_ship;
extern SHIP_DATA * last_ship;
//extern SHIP_PROTOTYPE * first_ship_prototype;
//extern SHIP_PROTOTYPE * last_ship_prototype;
extern SPACE_DATA * first_starsystem;
extern SPACE_DATA * last_starsystem;
extern PLANET_DATA * first_planet;
extern PLANET_DATA * last_planet;
extern SENATE_DATA * first_senator;
extern SENATE_DATA * last_senator;
extern BOUNTY_DATA * first_bounty;
extern BOUNTY_DATA * last_bounty;
extern BOUNTY_DATA * first_disintegration;
extern BOUNTY_DATA * last_disintegration;
extern AREA_DATA * first_area;
extern AREA_DATA * last_area;
extern AREA_DATA * first_build;
extern AREA_DATA * last_build;
extern AREA_DATA * first_asort;
extern AREA_DATA * last_asort;
extern AREA_DATA * first_bsort;
extern AREA_DATA * last_bsort;
/*
extern GOD_DATA * first_imm;
extern GOD_DATA * last_imm;
*/
extern TELEPORT_DATA * first_teleport;
extern TELEPORT_DATA * last_teleport;
extern OBJ_DATA * extracted_obj_queue;
extern EXTRACT_CHAR_DATA * extracted_char_queue;
extern OBJ_DATA * save_equipment[MAX_WEAR][MAX_LAYERS];
extern CHAR_DATA * quitting_char;
extern CHAR_DATA * loading_char;
extern CHAR_DATA * saving_char;
extern OBJ_DATA * all_obj;
extern char bug_buf [];
extern time_t current_time;
extern bool fLogAll;
extern bool fLogPC;
extern FILE * fpReserve;
extern FILE * fpLOG;
extern char log_buf [];
extern TIME_INFO_DATA time_info;
extern WEATHER_DATA weather_info;
extern AUCTION_DATA * auction;
extern struct act_prog_data * mob_act_list;
extern BMARKET_DATA * first_market_ship;
extern BMARKET_DATA * last_market_ship;
/*
* Command functions.
* Defined in act_*.c (mostly).
*/
DECLARE_DO_FUN( do_patron );
DECLARE_DO_FUN( do_specialty );
DECLARE_DO_FUN( do_secret );
DECLARE_DO_FUN( do_skills );
DECLARE_DO_FUN( do_makecybernetic );
DECLARE_DO_FUN( do_fskills );
DECLARE_DO_FUN( do_showquests );
DECLARE_DO_FUN( do_drainenergy );
DECLARE_DO_FUN( do_drainforce );
DECLARE_DO_FUN( do_forcemind );
DECLARE_DO_FUN( do_gatherinfo );
DECLARE_DO_FUN( do_promote );
DECLARE_DO_FUN( do_sithsorcery );
DECLARE_DO_FUN( do_callforce );
DECLARE_DO_FUN( do_heal );
DECLARE_DO_FUN( do_forcestrike );
DECLARE_DO_FUN( do_forcelightning);
DECLARE_DO_FUN( do_forcegrip );
DECLARE_DO_FUN( do_forcedefense );
DECLARE_DO_FUN( do_fear );
DECLARE_DO_FUN( do_farseeing );
DECLARE_DO_FUN( do_enhancesenses);
DECLARE_DO_FUN( do_enhance );
DECLARE_DO_FUN( do_battlemind );
DECLARE_DO_FUN( do_alchemy );
DECLARE_DO_FUN( do_setreputation);
DECLARE_DO_FUN( do_makesith );
DECLARE_DO_FUN( do_test );
DECLARE_DO_FUN( do_padawan );
DECLARE_DO_FUN( do_rentlocker );
DECLARE_DO_FUN( do_lockercode );
DECLARE_DO_FUN( do_makecamera );
DECLARE_DO_FUN( do_checkmonitor );
DECLARE_DO_FUN( do_tunemonitor );
DECLARE_DO_FUN( do_linkcamera );
DECLARE_DO_FUN( do_plantcamera );
DECLARE_DO_FUN( do_plantmonitor );
DECLARE_DO_FUN( do_resources );
DECLARE_DO_FUN( do_setsith );
DECLARE_DO_FUN( do_embargo );
DECLARE_DO_FUN( do_settaxrate );
DECLARE_DO_FUN( do_setgovernor );
DECLARE_DO_FUN( do_setprototype );
DECLARE_DO_FUN( do_showprototype);
DECLARE_DO_FUN( do_upgradebonus );
DECLARE_DO_FUN( do_penalizeclan );
DECLARE_DO_FUN( do_clanbestow );
DECLARE_DO_FUN( do_bonuses );
DECLARE_DO_FUN( do_setbonus );
DECLARE_DO_FUN( do_ignite );
DECLARE_DO_FUN( do_imbue );
DECLARE_DO_FUN( do_osay );
DECLARE_DO_FUN( do_sellcargo );
DECLARE_DO_FUN( do_buycargo );
DECLARE_DO_FUN( do_listcargo );
DECLARE_DO_FUN( do_pirate );
DECLARE_DO_FUN( do_dumpcargo );
DECLARE_DO_FUN( do_checksenate );
DECLARE_DO_FUN( do_scanship );
DECLARE_DO_FUN( do_cargo );
DECLARE_DO_FUN( do_cover );
DECLARE_DO_FUN( do_duck );
DECLARE_DO_FUN( do_lean );
DECLARE_DO_FUN( do_dock );
DECLARE_DO_FUN( do_undock );
DECLARE_DO_FUN( do_cybernetics );
DECLARE_DO_FUN( do_senatesay );
DECLARE_DO_FUN( do_audsay );
DECLARE_DO_FUN( do_dfeats );
DECLARE_DO_FUN( do_stance );
DECLARE_DO_FUN( do_feats );
DECLARE_DO_FUN( do_ffeats );
DECLARE_DO_FUN( do_rcopy );
DECLARE_DO_FUN( do_buymobship );
DECLARE_DO_FUN( do_aaccept );
DECLARE_DO_FUN( do_ahall );
DECLARE_DO_FUN( do_arena );
DECLARE_DO_FUN( do_awho );
DECLARE_DO_FUN( do_bet );
DECLARE_DO_FUN( do_challenge );
DECLARE_DO_FUN( do_chaos );
DECLARE_DO_FUN( do_cut );
DECLARE_DO_FUN( do_adecline );
DECLARE_DO_FUN( do_setplanet );
DECLARE_DO_FUN( do_setrank );
DECLARE_DO_FUN( do_setinfrared );
DECLARE_DO_FUN( do_makefree );
DECLARE_DO_FUN( do_makeplanet );
DECLARE_DO_FUN( do_remplanet );
DECLARE_DO_FUN( do_makeprototypeship );
DECLARE_DO_FUN( do_planets );
DECLARE_DO_FUN( do_gather_intelligence );
DECLARE_DO_FUN( do_generate_market );
DECLARE_DO_FUN( do_add_patrol );
DECLARE_DO_FUN( do_special_forces );
DECLARE_DO_FUN( do_jail );
DECLARE_DO_FUN( do_checkwar );
DECLARE_DO_FUN( do_elite_guard );
DECLARE_DO_FUN( do_smalltalk );
DECLARE_DO_FUN( do_propeganda );
DECLARE_DO_FUN( do_bribe );
DECLARE_DO_FUN( do_bind );
DECLARE_DO_FUN( do_seduce );
DECLARE_DO_FUN( do_mass_propeganda );
DECLARE_DO_FUN( do_copyship );
DECLARE_DO_FUN( do_sound );
DECLARE_DO_FUN( do_autopilot );
DECLARE_DO_FUN( do_allspeeders );
DECLARE_DO_FUN( do_speeders );
DECLARE_DO_FUN( do_suicide );
DECLARE_DO_FUN( do_gain );
DECLARE_DO_FUN( do_train );
DECLARE_DO_FUN( do_beg );
DECLARE_DO_FUN( do_bank );
DECLARE_DO_FUN( do_hijack );
DECLARE_DO_FUN( do_pickshiplock );
DECLARE_DO_FUN( do_shipstat );
DECLARE_DO_FUN( do_shiptalk );
DECLARE_DO_FUN( do_clone );
DECLARE_DO_FUN( do_systemtalk );
DECLARE_DO_FUN( do_spacetalk );
DECLARE_DO_FUN( do_hail );
DECLARE_DO_FUN( do_allships );
DECLARE_DO_FUN( do_newclan );
DECLARE_DO_FUN( do_appoint );
DECLARE_DO_FUN( do_demote );
DECLARE_DO_FUN( do_empower );
DECLARE_DO_FUN( do_capture );
DECLARE_DO_FUN( do_arm );
DECLARE_DO_FUN( do_addchange );
DECLARE_DO_FUN( do_changes );
DECLARE_DO_FUN( do_chaff );
DECLARE_DO_FUN( do_clan_donate );
DECLARE_DO_FUN( do_clan_withdraw );
DECLARE_DO_FUN( do_fly );
DECLARE_DO_FUN( do_drive );
DECLARE_DO_FUN( do_bomb );
DECLARE_DO_FUN( do_setblaster );
DECLARE_DO_FUN( do_ammo );
DECLARE_DO_FUN( do_ambush );
DECLARE_DO_FUN( do_takedrug );
DECLARE_DO_FUN( do_use );
DECLARE_DO_FUN( do_link );
DECLARE_DO_FUN( do_unlink );
DECLARE_DO_FUN( do_load );
DECLARE_DO_FUN( do_unload );
DECLARE_DO_FUN( do_enlist );
DECLARE_DO_FUN( do_resign );
DECLARE_DO_FUN( do_retune );
DECLARE_DO_FUN( do_reward );
DECLARE_DO_FUN( do_pluogus );
DECLARE_DO_FUN( do_makemodule );
DECLARE_DO_FUN( do_showmodules );
DECLARE_DO_FUN( do_installmodule );
DECLARE_DO_FUN( do_removebug );
DECLARE_DO_FUN( do_removemodule );
DECLARE_DO_FUN( do_tractorbeam );
DECLARE_DO_FUN( do_makearmor );
DECLARE_DO_FUN( do_makejewelry );
DECLARE_DO_FUN( do_makegrenade );
DECLARE_DO_FUN( do_makeshipbomb );
DECLARE_DO_FUN( do_makelandmine );
DECLARE_DO_FUN( do_makelight );
DECLARE_DO_FUN( do_makecomlink );
DECLARE_DO_FUN( do_makeshield );
DECLARE_DO_FUN( do_makecontainer );
DECLARE_DO_FUN( do_makemissile );
DECLARE_DO_FUN( do_gemcutting );
DECLARE_DO_FUN( do_reinforcements );
DECLARE_DO_FUN( do_postguard );
DECLARE_DO_FUN( do_torture );
DECLARE_DO_FUN( do_snipe );
DECLARE_DO_FUN( do_throw );
DECLARE_DO_FUN( do_deception );
DECLARE_DO_FUN( do_disguise );
DECLARE_DO_FUN( do_mine );
DECLARE_DO_FUN( do_first_aid);
DECLARE_DO_FUN( do_make_master);
DECLARE_DO_FUN( do_makeblade );
DECLARE_DO_FUN( do_makebeacon );
DECLARE_DO_FUN( do_makebinders );
DECLARE_DO_FUN( do_makebug );
DECLARE_DO_FUN( do_makegoggles );
DECLARE_DO_FUN( do_spousetalk );
DECLARE_DO_FUN( do_makepike );
DECLARE_DO_FUN( do_makeblaster );
DECLARE_DO_FUN( do_makelightsaber );
DECLARE_DO_FUN( do_makespice );
DECLARE_DO_FUN( do_closebay );
DECLARE_DO_FUN( do_openbay );
DECLARE_DO_FUN( do_autotrack );
DECLARE_DO_FUN( do_jumpvector );
DECLARE_DO_FUN( do_reload );
DECLARE_DO_FUN( do_tractorbeam );
DECLARE_DO_FUN( do_radar );
DECLARE_DO_FUN( do_recall );
DECLARE_DO_FUN( do_buyship );
DECLARE_DO_FUN( do_buytroops );
DECLARE_DO_FUN( do_buyhome );
DECLARE_DO_FUN( do_clanbuyship );
DECLARE_DO_FUN( do_clangiveship );
DECLARE_DO_FUN( do_clansalvage );
DECLARE_DO_FUN( do_clanbuytroops );
DECLARE_DO_FUN( do_gatherclans );
DECLARE_DO_FUN( do_sellship );
DECLARE_DO_FUN( do_autorecharge );
DECLARE_DO_FUN( do_openhatch );
DECLARE_DO_FUN( do_closehatch );
DECLARE_DO_FUN( do_status );
DECLARE_DO_FUN( do_std );
DECLARE_DO_FUN( do_info );
DECLARE_DO_FUN( do_introduce );
DECLARE_DO_FUN( do_remember );
DECLARE_DO_FUN( do_describe );
DECLARE_DO_FUN( do_hyperspace );
DECLARE_DO_FUN( do_target );
DECLARE_DO_FUN( do_fire );
DECLARE_DO_FUN( do_calculate );
DECLARE_DO_FUN( do_recharge );
DECLARE_DO_FUN( do_shiprepair );
DECLARE_DO_FUN( do_shipmaintenance );
DECLARE_DO_FUN( do_shiplist );
DECLARE_DO_FUN( do_refuel );
DECLARE_DO_FUN( do_addpilot );
DECLARE_DO_FUN( do_rempilot);
DECLARE_DO_FUN( do_remclan);
DECLARE_DO_FUN( do_removeship);
DECLARE_DO_FUN( do_trajectory );
DECLARE_DO_FUN( do_accelerate );
DECLARE_DO_FUN( do_launch );
DECLARE_DO_FUN( do_land );
DECLARE_DO_FUN( do_leaveship );
DECLARE_DO_FUN( do_setstarsystem );
DECLARE_DO_FUN( do_makestarsystem );
DECLARE_DO_FUN( do_makesimulator );
DECLARE_DO_FUN( do_makemobship );
DECLARE_DO_FUN( do_starsystems );
DECLARE_DO_FUN( do_showstarsystem );
DECLARE_DO_FUN( skill_notfound );
DECLARE_DO_FUN( do_aassign );
DECLARE_DO_FUN( do_addbounty );
DECLARE_DO_FUN( do_contract );
DECLARE_DO_FUN( do_showcontracts );
DECLARE_DO_FUN( do_remcontract );
DECLARE_DO_FUN( do_vassign );
DECLARE_DO_FUN( do_rassign );
DECLARE_DO_FUN( do_massign );
DECLARE_DO_FUN( do_oassign );
DECLARE_DO_FUN( do_advance );
DECLARE_DO_FUN( do_affected );
DECLARE_DO_FUN( do_afk );
DECLARE_DO_FUN( do_aid );
DECLARE_DO_FUN( do_rembounty );
DECLARE_DO_FUN( do_allow );
DECLARE_DO_FUN( do_ansi );
DECLARE_DO_FUN( do_answer );
DECLARE_DO_FUN( do_apply );
DECLARE_DO_FUN( do_appraise );
DECLARE_DO_FUN( do_areas );
DECLARE_DO_FUN( do_aset );
DECLARE_DO_FUN( do_ask );
DECLARE_DO_FUN( do_astat );
DECLARE_DO_FUN( do_at );
DECLARE_DO_FUN( do_auction );
DECLARE_DO_FUN( do_authorize );
DECLARE_DO_FUN( do_avtalk );
DECLARE_DO_FUN( do_backstab );
DECLARE_DO_FUN( do_backup );
DECLARE_DO_FUN( do_balzhur );
DECLARE_DO_FUN( do_bamfin );
DECLARE_DO_FUN( do_bamfout );
DECLARE_DO_FUN( do_ban );
DECLARE_DO_FUN( do_bashdoor );
DECLARE_DO_FUN( do_beep );
DECLARE_DO_FUN( do_berserk );
DECLARE_DO_FUN( do_bestow );
DECLARE_DO_FUN( do_bestowarea );
DECLARE_DO_FUN( do_bio );
DECLARE_DO_FUN( do_bite );
DECLARE_DO_FUN( do_board );
DECLARE_DO_FUN( do_boards );
DECLARE_DO_FUN( do_bodybag );
DECLARE_DO_FUN( do_bounties );
DECLARE_DO_FUN( do_bset );
DECLARE_DO_FUN( do_bstat );
DECLARE_DO_FUN( do_bug );
DECLARE_DO_FUN( do_bury );
DECLARE_DO_FUN( do_buy );
DECLARE_DO_FUN( do_cast );
DECLARE_DO_FUN( do_cedit );
DECLARE_DO_FUN( do_channels );
DECLARE_DO_FUN( do_chat );
DECLARE_DO_FUN( do_ooc );
DECLARE_DO_FUN( do_check_vnums );
DECLARE_DO_FUN( do_clans );
DECLARE_DO_FUN( do_clanstat );
DECLARE_DO_FUN( do_ships );
DECLARE_DO_FUN( do_clantalk );
DECLARE_DO_FUN( do_cleanroom );
DECLARE_DO_FUN( do_climb );
DECLARE_DO_FUN( do_close );
DECLARE_DO_FUN( do_cmdtable );
DECLARE_DO_FUN( do_cmenu );
DECLARE_DO_FUN( do_commands );
DECLARE_DO_FUN( do_comment );
DECLARE_DO_FUN( do_compare );
DECLARE_DO_FUN( do_config );
DECLARE_DO_FUN( do_consider );
DECLARE_DO_FUN( do_copyover );
DECLARE_DO_FUN( do_senate );
DECLARE_DO_FUN( do_jedicouncil );
DECLARE_DO_FUN( do_addsenator );
DECLARE_DO_FUN( do_remsenator );
DECLARE_DO_FUN( do_remcouncil );
DECLARE_DO_FUN( do_setjedi );
DECLARE_DO_FUN( do_showjedi );
DECLARE_DO_FUN( do_showsenate );
DECLARE_DO_FUN( do_makecouncil );
DECLARE_DO_FUN( do_makesenate );
DECLARE_DO_FUN( do_setsenate );
DECLARE_DO_FUN( do_credits );
DECLARE_DO_FUN( do_cset );
DECLARE_DO_FUN( do_deities );
DECLARE_DO_FUN( do_deny );
DECLARE_DO_FUN( do_description );
DECLARE_DO_FUN( do_destro );
DECLARE_DO_FUN( do_destroy );
DECLARE_DO_FUN( do_detrap );
DECLARE_DO_FUN( do_devote );
DECLARE_DO_FUN( do_dig );
DECLARE_DO_FUN( do_disarm );
DECLARE_DO_FUN( do_disconnect );
DECLARE_DO_FUN( do_dismount );
DECLARE_DO_FUN( do_dmesg );
DECLARE_DO_FUN( do_down );
DECLARE_DO_FUN( do_drag );
DECLARE_DO_FUN( do_drink );
DECLARE_DO_FUN( do_drop );
DECLARE_DO_FUN( do_droptroops );
DECLARE_DO_FUN( do_diagnose );
DECLARE_DO_FUN( do_east );
DECLARE_DO_FUN( do_eat );
DECLARE_DO_FUN( do_echo );
DECLARE_DO_FUN( do_email );
DECLARE_DO_FUN( do_emote );
DECLARE_DO_FUN( do_empty );
DECLARE_DO_FUN( do_enter );
DECLARE_DO_FUN( do_equipment );
DECLARE_DO_FUN( do_examine );
DECLARE_DO_FUN( do_exempt );
DECLARE_DO_FUN( do_exits );
DECLARE_DO_FUN( do_endsimulator );
DECLARE_DO_FUN( do_fill );
DECLARE_DO_FUN( do_fixchar );
DECLARE_DO_FUN( do_flee );
DECLARE_DO_FUN( do_foldarea );
DECLARE_DO_FUN( do_follow );
DECLARE_DO_FUN( do_for );
DECLARE_DO_FUN( do_force );
DECLARE_DO_FUN( do_fset );
DECLARE_DO_FUN( do_forceclose );
DECLARE_DO_FUN( do_fquit ); /* Gorog */
DECLARE_DO_FUN( do_form_password);
DECLARE_DO_FUN( do_freeze );
DECLARE_DO_FUN( do_fslay );
DECLARE_DO_FUN( do_gag );
DECLARE_DO_FUN( do_get );
DECLARE_DO_FUN( do_give );
DECLARE_DO_FUN( do_giveship );
DECLARE_DO_FUN( do_giveslug );
DECLARE_DO_FUN( do_glance );
DECLARE_DO_FUN( do_gold );
DECLARE_DO_FUN( do_goto );
DECLARE_DO_FUN( do_group );
DECLARE_DO_FUN( do_grub );
DECLARE_DO_FUN( do_gtell );
DECLARE_DO_FUN( do_guilds );
DECLARE_DO_FUN( do_guildtalk );
DECLARE_DO_FUN( do_hedit );
DECLARE_DO_FUN( do_hell );
DECLARE_DO_FUN( do_help );
DECLARE_DO_FUN( do_hide );
DECLARE_DO_FUN( do_hlist );
DECLARE_DO_FUN( do_holylight );
DECLARE_DO_FUN( do_holonet );
DECLARE_DO_FUN( do_homepage );
DECLARE_DO_FUN( do_hset );
DECLARE_DO_FUN( do_sith );
DECLARE_DO_FUN( do_i104 );
DECLARE_DO_FUN( do_i105 );
DECLARE_DO_FUN( do_ide );
DECLARE_DO_FUN( do_idea );
DECLARE_DO_FUN( do_idealog );
DECLARE_DO_FUN( do_immortalize );
DECLARE_DO_FUN( do_immtalk );
DECLARE_DO_FUN( do_induct );
DECLARE_DO_FUN( do_installarea );
DECLARE_DO_FUN( do_instaroom );
DECLARE_DO_FUN( do_instazone );
DECLARE_DO_FUN( do_inventory );
DECLARE_DO_FUN( do_invis );
DECLARE_DO_FUN( do_kill );
DECLARE_DO_FUN( do_languages );
DECLARE_DO_FUN( do_last );
DECLARE_DO_FUN( do_leave );
DECLARE_DO_FUN( do_level );
DECLARE_DO_FUN( do_light );
DECLARE_DO_FUN( do_list );
DECLARE_DO_FUN( do_litterbug );
DECLARE_DO_FUN( do_loadarea );
DECLARE_DO_FUN( do_loadup );
DECLARE_DO_FUN( do_lock );
DECLARE_DO_FUN( do_log );
DECLARE_DO_FUN( do_look );
DECLARE_DO_FUN( do_low_purge );
DECLARE_DO_FUN( do_mailroom );
DECLARE_DO_FUN( do_make );
DECLARE_DO_FUN( do_makeboard );
DECLARE_DO_FUN( do_makeclan );
DECLARE_DO_FUN( do_makeship );
DECLARE_DO_FUN( do_makeship2 );
DECLARE_DO_FUN( do_makeguild );
DECLARE_DO_FUN( do_makerepair );
DECLARE_DO_FUN( do_makeshop );
DECLARE_DO_FUN( do_makewizlist );
DECLARE_DO_FUN( do_members );
DECLARE_DO_FUN( do_memory );
DECLARE_DO_FUN( do_mcreate );
DECLARE_DO_FUN( do_mdelete );
DECLARE_DO_FUN( do_mfind );
DECLARE_DO_FUN( do_minvoke );
DECLARE_DO_FUN( do_mlist );
DECLARE_DO_FUN( do_mount );
DECLARE_DO_FUN( do_mset );
DECLARE_DO_FUN( do_mstat );
DECLARE_DO_FUN( do_murde );
DECLARE_DO_FUN( do_murder );
DECLARE_DO_FUN( do_verpine );
DECLARE_DO_FUN( do_mwhere );
DECLARE_DO_FUN( do_name );
DECLARE_DO_FUN( do_newbiechat );
DECLARE_DO_FUN( do_newbieset );
DECLARE_DO_FUN( do_newzones );
DECLARE_DO_FUN( do_noemote );
DECLARE_DO_FUN( do_noresolve );
DECLARE_DO_FUN( do_north );
DECLARE_DO_FUN( do_northeast );
DECLARE_DO_FUN( do_northwest );
DECLARE_DO_FUN( do_notell );
DECLARE_DO_FUN( do_notitle );
DECLARE_DO_FUN( do_noteroom );
DECLARE_DO_FUN( do_ocreate );
DECLARE_DO_FUN( do_odelete );
DECLARE_DO_FUN( do_ofind );
DECLARE_DO_FUN( do_ogrub );
DECLARE_DO_FUN( do_oinvoke );
DECLARE_DO_FUN( do_oldmstat );
DECLARE_DO_FUN( do_oldscore );
DECLARE_DO_FUN( do_olist );
DECLARE_DO_FUN( do_open );
DECLARE_DO_FUN( do_opentourney );
DECLARE_DO_FUN( do_order );
DECLARE_DO_FUN( do_orders );
DECLARE_DO_FUN( do_ordership );
DECLARE_DO_FUN( do_orderclanship);
DECLARE_DO_FUN( do_ordertalk );
DECLARE_DO_FUN( do_oset );
DECLARE_DO_FUN( do_ostat );
DECLARE_DO_FUN( do_ot );
DECLARE_DO_FUN( do_outcast );
DECLARE_DO_FUN( do_outlaw );
DECLARE_DO_FUN( do_owhere );
DECLARE_DO_FUN( do_pager );
DECLARE_DO_FUN( do_pardon );
DECLARE_DO_FUN( do_password );
DECLARE_DO_FUN( do_peace );
DECLARE_DO_FUN( do_pick );
DECLARE_DO_FUN( do_pose );
DECLARE_DO_FUN( do_prompt );
DECLARE_DO_FUN( do_pull );
DECLARE_DO_FUN( do_purge );
DECLARE_DO_FUN( do_push );
DECLARE_DO_FUN( do_put );
DECLARE_DO_FUN( do_qpset );
DECLARE_DO_FUN( do_quaff );
DECLARE_DO_FUN( do_quest );
DECLARE_DO_FUN( do_qui );
DECLARE_DO_FUN( do_quit );
DECLARE_DO_FUN( do_rank );
DECLARE_DO_FUN( do_rat );
DECLARE_DO_FUN( do_rdelete );
DECLARE_DO_FUN( do_reboo );
DECLARE_DO_FUN( do_reboot );
DECLARE_DO_FUN( do_recall );
DECLARE_DO_FUN( do_recho );
DECLARE_DO_FUN( do_recite );
DECLARE_DO_FUN( do_redit );
DECLARE_DO_FUN( do_regoto );
DECLARE_DO_FUN( do_remove );
DECLARE_DO_FUN( do_rent );
DECLARE_DO_FUN( do_mobrepair );
DECLARE_DO_FUN( do_repair );
DECLARE_DO_FUN( do_repairset );
DECLARE_DO_FUN( do_repairshops );
DECLARE_DO_FUN( do_repairstat );
DECLARE_DO_FUN( do_reply );
DECLARE_DO_FUN( do_report );
DECLARE_DO_FUN( do_rescue );
DECLARE_DO_FUN( do_rest );
DECLARE_DO_FUN( do_meditate );
DECLARE_DO_FUN( do_reset );
DECLARE_DO_FUN( do_resetship );
DECLARE_DO_FUN( do_restore );
DECLARE_DO_FUN( do_restorefile );
DECLARE_DO_FUN( do_restoretime );
DECLARE_DO_FUN( do_restrict );
DECLARE_DO_FUN( do_request );
DECLARE_DO_FUN( do_retire );
DECLARE_DO_FUN( do_retran );
DECLARE_DO_FUN( do_return );
DECLARE_DO_FUN( do_revert );
DECLARE_DO_FUN( do_rip );
DECLARE_DO_FUN( do_rlist );
DECLARE_DO_FUN( do_rreset );
DECLARE_DO_FUN( do_rset );
DECLARE_DO_FUN( do_rstat );
DECLARE_DO_FUN( do_sacrifice );
DECLARE_DO_FUN( do_save );
DECLARE_DO_FUN( do_savearea );
DECLARE_DO_FUN( do_say );
DECLARE_DO_FUN( do_scan );
DECLARE_DO_FUN( do_scanbugs );
DECLARE_DO_FUN( do_score );
DECLARE_DO_FUN( do_screenname );
DECLARE_DO_FUN( do_search );
DECLARE_DO_FUN( do_sedit );
DECLARE_DO_FUN( do_sell );
DECLARE_DO_FUN( do_sellhome );
DECLARE_DO_FUN( do_set_boot_time);
DECLARE_DO_FUN( do_setclan );
DECLARE_DO_FUN( do_setship );
DECLARE_DO_FUN( do_shops );
DECLARE_DO_FUN( do_shopset );
DECLARE_DO_FUN( do_shopstat );
DECLARE_DO_FUN( do_shout );
DECLARE_DO_FUN( do_shove );
DECLARE_DO_FUN( do_showclan );
DECLARE_DO_FUN( do_showship );
DECLARE_DO_FUN( do_showplanet );
DECLARE_DO_FUN( do_showsocial );
DECLARE_DO_FUN( do_shutdow );
DECLARE_DO_FUN( do_shutdown );
DECLARE_DO_FUN( do_silence );
DECLARE_DO_FUN( do_sit );
DECLARE_DO_FUN( do_tune );
DECLARE_DO_FUN( do_shiplock );
DECLARE_DO_FUN( do_salvage );
DECLARE_DO_FUN( do_plantbug );
DECLARE_DO_FUN( do_plantbeacon );
DECLARE_DO_FUN( do_showbugs );
DECLARE_DO_FUN( do_showbeacons );
DECLARE_DO_FUN( do_checkbeacons );
DECLARE_DO_FUN( do_nullifybeacons );
DECLARE_DO_FUN( do_juke );
DECLARE_DO_FUN(do_barrel_roll);
DECLARE_DO_FUN( do_launch2 );
DECLARE_DO_FUN( do_sabotage );
DECLARE_DO_FUN( do_freeship );
DECLARE_DO_FUN( do_hale );
DECLARE_DO_FUN( do_wwwimage );
DECLARE_DO_FUN( do_whisper );
DECLARE_DO_FUN( do_marry );
DECLARE_DO_FUN( do_propose );
DECLARE_DO_FUN( do_divorce );
DECLARE_DO_FUN( do_accept );
DECLARE_DO_FUN( do_decline );
DECLARE_DO_FUN( do_tellsnoop );
DECLARE_DO_FUN( do_makecommsystem);
DECLARE_DO_FUN( do_makedatapad );
DECLARE_DO_FUN( do_codecrack );
DECLARE_DO_FUN( do_inquire );
DECLARE_DO_FUN( do_checkprints );
DECLARE_DO_FUN( do_disableship );
DECLARE_DO_FUN( do_assignpilot );
DECLARE_DO_FUN( do_bomb );
DECLARE_DO_FUN( do_setwage );
DECLARE_DO_FUN( do_sla );
DECLARE_DO_FUN( do_slay );
DECLARE_DO_FUN( do_slicebank );
DECLARE_DO_FUN( do_sleep );
DECLARE_DO_FUN( do_slist );
DECLARE_DO_FUN( do_slog );
DECLARE_DO_FUN( do_slookup );
DECLARE_DO_FUN( do_smoke );
DECLARE_DO_FUN( do_sneak );
DECLARE_DO_FUN( do_snoop );
DECLARE_DO_FUN( do_sober );
DECLARE_DO_FUN( do_socials );
DECLARE_DO_FUN( do_south );
DECLARE_DO_FUN( do_southeast );
DECLARE_DO_FUN( do_southwest );
DECLARE_DO_FUN( do_speak );
DECLARE_DO_FUN( do_split );
DECLARE_DO_FUN( do_sset );
DECLARE_DO_FUN( do_stand );
DECLARE_DO_FUN( do_starttourney );
DECLARE_DO_FUN( do_steal );
DECLARE_DO_FUN( do_stun );
DECLARE_DO_FUN( do_supplicate );
DECLARE_DO_FUN( do_switch );
DECLARE_DO_FUN( do_tail );
DECLARE_DO_FUN( do_tamp );
DECLARE_DO_FUN( do_tell );
DECLARE_DO_FUN( do_time );
DECLARE_DO_FUN( do_timecmd );
DECLARE_DO_FUN( do_title );
DECLARE_DO_FUN( do_track );
DECLARE_DO_FUN( do_transfer );
DECLARE_DO_FUN( do_transship );
DECLARE_DO_FUN( do_transshipss );
DECLARE_DO_FUN( do_trust );
DECLARE_DO_FUN( do_typo );
DECLARE_DO_FUN( do_unhell );
DECLARE_DO_FUN( do_unbind );
DECLARE_DO_FUN( do_ungag );
DECLARE_DO_FUN( do_unlock );
DECLARE_DO_FUN( do_unsilence );
DECLARE_DO_FUN( do_unoutlaw );
DECLARE_DO_FUN( do_up );
DECLARE_DO_FUN( do_users );
DECLARE_DO_FUN( do_value );
DECLARE_DO_FUN( do_visible );
DECLARE_DO_FUN( do_vnums );
DECLARE_DO_FUN( do_vsearch );
DECLARE_DO_FUN( do_wake );
DECLARE_DO_FUN( do_bartokk );
DECLARE_DO_FUN( do_war );
DECLARE_DO_FUN( do_prototypes );
DECLARE_DO_FUN( do_setprototype );
DECLARE_DO_FUN( do_showprototype);
DECLARE_DO_FUN( do_designship );
DECLARE_DO_FUN( do_wear );
DECLARE_DO_FUN( do_weather );
DECLARE_DO_FUN( do_west );
DECLARE_DO_FUN( do_where );
DECLARE_DO_FUN( do_who );
DECLARE_DO_FUN( do_whoinvis );
DECLARE_DO_FUN( do_whois );
DECLARE_DO_FUN( do_wimpy );
DECLARE_DO_FUN( do_wizhelp );
DECLARE_DO_FUN( do_wizlist );
DECLARE_DO_FUN( do_wizlock );
DECLARE_DO_FUN( do_yell );
DECLARE_DO_FUN( do_zones );
/* mob prog stuff */
DECLARE_DO_FUN( do_mp_close_passage );
DECLARE_DO_FUN( do_mpquest );
DECLARE_DO_FUN( do_mptrials );
DECLARE_DO_FUN( do_mpquestcomplete );
DECLARE_DO_FUN( do_mp_damage );
DECLARE_DO_FUN( do_mp_restore );
DECLARE_DO_FUN( do_mp_open_passage );
DECLARE_DO_FUN( do_mp_practice );
DECLARE_DO_FUN( do_mp_slay);
DECLARE_DO_FUN( do_mpadvance );
DECLARE_DO_FUN( do_mpasound );
DECLARE_DO_FUN( do_mpat );
DECLARE_DO_FUN( do_mpdream );
DECLARE_DO_FUN( do_mp_deposit );
DECLARE_DO_FUN( do_mp_withdraw );
DECLARE_DO_FUN( do_mpecho );
DECLARE_DO_FUN( do_mpechoaround );
DECLARE_DO_FUN( do_mpechoat );
DECLARE_DO_FUN( do_mpedit );
DECLARE_DO_FUN( do_mrange );
DECLARE_DO_FUN( do_opedit );
DECLARE_DO_FUN( do_orange );
DECLARE_DO_FUN( do_rpconvert );
DECLARE_DO_FUN( do_rpedit );
DECLARE_DO_FUN( do_mpforce );
DECLARE_DO_FUN( do_mpinvis );
DECLARE_DO_FUN( do_mpgoto );
DECLARE_DO_FUN( do_mpjunk );
DECLARE_DO_FUN( do_mpkill );
DECLARE_DO_FUN( do_mpmload );
DECLARE_DO_FUN( do_mpmset );
DECLARE_DO_FUN( do_mpnothing );
DECLARE_DO_FUN( do_mpoload );
DECLARE_DO_FUN( do_mposet );
DECLARE_DO_FUN( do_mppurge );
DECLARE_DO_FUN( do_mpstat );
DECLARE_DO_FUN( do_opstat );
DECLARE_DO_FUN( do_rpstat );
DECLARE_DO_FUN( do_mptransfer );
DECLARE_DO_FUN( do_mpapply );
DECLARE_DO_FUN( do_mpapplyb );
DECLARE_DO_FUN( do_mppkset );
DECLARE_DO_FUN( do_mpgain );
/*
* Spell functions.
* Defined in magic.c.
*/
DECLARE_SPELL_FUN( spell_null );
DECLARE_SPELL_FUN( spell_notfound );
DECLARE_SPELL_FUN( spell_acid_blast );
DECLARE_SPELL_FUN( spell_animate_dead );
DECLARE_SPELL_FUN( spell_astral_walk );
DECLARE_SPELL_FUN( spell_blindness );
DECLARE_SPELL_FUN( spell_burning_hands );
DECLARE_SPELL_FUN( spell_call_lightning );
DECLARE_SPELL_FUN( spell_cause_critical );
DECLARE_SPELL_FUN( spell_cause_light );
DECLARE_SPELL_FUN( spell_cause_serious );
DECLARE_SPELL_FUN( spell_change_sex );
DECLARE_SPELL_FUN( spell_charm_person );
DECLARE_SPELL_FUN( spell_chill_touch );
DECLARE_SPELL_FUN( spell_colour_spray );
DECLARE_SPELL_FUN( spell_control_weather );
DECLARE_SPELL_FUN( spell_create_food );
DECLARE_SPELL_FUN( spell_create_water );
DECLARE_SPELL_FUN( spell_cure_blindness );
DECLARE_SPELL_FUN( spell_cure_poison );
DECLARE_SPELL_FUN( spell_curse );
DECLARE_SPELL_FUN( spell_detect_poison );
DECLARE_SPELL_FUN( spell_dispel_evil );
DECLARE_SPELL_FUN( spell_dispel_magic );
DECLARE_SPELL_FUN( spell_dream );
DECLARE_SPELL_FUN( spell_earthquake );
DECLARE_SPELL_FUN( spell_enchant_weapon );
DECLARE_SPELL_FUN( spell_energy_drain );
DECLARE_SPELL_FUN( spell_faerie_fire );
DECLARE_SPELL_FUN( spell_faerie_fog );
DECLARE_SPELL_FUN( spell_farsight );
DECLARE_SPELL_FUN( spell_fireball );
DECLARE_SPELL_FUN( spell_flamestrike );
DECLARE_SPELL_FUN( spell_gate );
DECLARE_SPELL_FUN( spell_knock );
DECLARE_SPELL_FUN( spell_injure );
DECLARE_SPELL_FUN( spell_identify );
DECLARE_SPELL_FUN( spell_invis );
DECLARE_SPELL_FUN( spell_know_alignment );
DECLARE_SPELL_FUN( spell_lightning_bolt );
DECLARE_SPELL_FUN( spell_locate_object );
DECLARE_SPELL_FUN( spell_magic_missile );
DECLARE_SPELL_FUN( spell_mist_walk );
DECLARE_SPELL_FUN( spell_pass_door );
DECLARE_SPELL_FUN( spell_plant_pass );
DECLARE_SPELL_FUN( spell_poison );
DECLARE_SPELL_FUN( spell_polymorph );
DECLARE_SPELL_FUN( spell_possess );
DECLARE_SPELL_FUN( spell_recharge );
DECLARE_SPELL_FUN( spell_remove_curse );
DECLARE_SPELL_FUN( spell_remove_invis );
DECLARE_SPELL_FUN( spell_remove_trap );
DECLARE_SPELL_FUN( spell_shocking_grasp );
DECLARE_SPELL_FUN( spell_sleep );
DECLARE_SPELL_FUN( spell_smaug );
DECLARE_SPELL_FUN( spell_solar_flight );
DECLARE_SPELL_FUN( spell_summon );
DECLARE_SPELL_FUN( spell_teleport );
DECLARE_SPELL_FUN( spell_ventriloquate );
DECLARE_SPELL_FUN( spell_weaken );
DECLARE_SPELL_FUN( spell_word_of_recall );
DECLARE_SPELL_FUN( spell_acid_breath );
DECLARE_SPELL_FUN( spell_fire_breath );
DECLARE_SPELL_FUN( spell_frost_breath );
DECLARE_SPELL_FUN( spell_gas_breath );
DECLARE_SPELL_FUN( spell_lightning_breath );
DECLARE_SPELL_FUN( spell_spiral_blast );
DECLARE_SPELL_FUN( spell_scorching_surge );
DECLARE_SPELL_FUN( spell_helical_flow );
DECLARE_SPELL_FUN( spell_transport );
DECLARE_SPELL_FUN( spell_portal );
DECLARE_SPELL_FUN( spell_ethereal_fist );
DECLARE_SPELL_FUN( spell_spectral_furor );
DECLARE_SPELL_FUN( spell_hand_of_chaos );
DECLARE_SPELL_FUN( spell_disruption );
DECLARE_SPELL_FUN( spell_sonic_resonance );
DECLARE_SPELL_FUN( spell_mind_wrack );
DECLARE_SPELL_FUN( spell_mind_wrench );
DECLARE_SPELL_FUN( spell_revive );
DECLARE_SPELL_FUN( spell_sulfurous_spray );
DECLARE_SPELL_FUN( spell_caustic_fount );
DECLARE_SPELL_FUN( spell_acetum_primus );
DECLARE_SPELL_FUN( spell_galvanic_whip );
DECLARE_SPELL_FUN( spell_magnetic_thrust );
DECLARE_SPELL_FUN( spell_quantum_spike );
DECLARE_SPELL_FUN( spell_black_hand );
DECLARE_SPELL_FUN( spell_black_fist );
DECLARE_SPELL_FUN( spell_black_lightning );
DECLARE_SPELL_FUN( spell_calm );
DECLARE_SPELL_FUN( spell_forcepush );
DECLARE_SPELL_FUN( spell_force_disarm );
DECLARE_SPELL_FUN( spell_steal_life );
DECLARE_SPELL_FUN( spell_midas_touch );
DECLARE_SPELL_FUN( spell_suggest );
DECLARE_SPELL_FUN( spell_cure_addiction );
DECLARE_DO_FUN( fskill_convert );
DECLARE_DO_FUN( fskill_awareness );
DECLARE_DO_FUN( fskill_fdisguise );
DECLARE_DO_FUN( fskill_finfo );
DECLARE_DO_FUN( fskill_fhelp );
DECLARE_DO_FUN( fskill_finish );
DECLARE_DO_FUN( fskill_force_lightning );
DECLARE_DO_FUN( fskill_fshield );
DECLARE_DO_FUN( fskill_heal );
DECLARE_DO_FUN( fskill_identify );
DECLARE_DO_FUN( fskill_instruct );
DECLARE_DO_FUN( fskill_master );
DECLARE_DO_FUN( fskill_makelightsaber );
DECLARE_DO_FUN( fskill_promote );
DECLARE_DO_FUN( fskill_protect );
DECLARE_DO_FUN( fskill_refresh );
DECLARE_DO_FUN( fskill_squeeze );
DECLARE_DO_FUN( fskill_student );
DECLARE_DO_FUN( fskill_slash );
DECLARE_DO_FUN( fskill_whirlwind );
DECLARE_DO_FUN( fskill_makedualsaber );
/*
* OS-dependent declarations.
* These are all very standard library functions,
* but some systems have incomplete or non-ansi header files.
*/
#if defined(_AIX)
char * crypt args( ( const char *key, const char *salt ) );
#endif
#if defined(apollo)
int atoi args( ( const char *string ) );
void * calloc args( ( unsigned nelem, size_t size ) );
char * crypt args( ( const char *key, const char *salt ) );
#endif
#if defined(hpux)
char * crypt args( ( const char *key, const char *salt ) );
#endif
#if defined(interactive)
#endif
#if defined(linux)
char * crypt args( ( const char *key, const char *salt ) );
#endif
#if defined(MIPS_OS)
char * crypt args( ( const char *key, const char *salt ) );
#endif
#if defined(NeXT)
char * crypt args( ( const char *key, const char *salt ) );
#endif
#if defined(sequent)
char * crypt args( ( const char *key, const char *salt ) );
int fclose args( ( FILE *stream ) );
int fprintf args( ( FILE *stream, const char *format, ... ) );
int fread args( ( void *ptr, int size, int n, FILE *stream ) );
int fseek args( ( FILE *stream, long offset, int ptrname ) );
void perror args( ( const char *s ) );
int ungetc args( ( int c, FILE *stream ) );
#endif
#if defined(sun)
char * crypt args( ( const char *key, const char *salt ) );
int fclose args( ( FILE *stream ) );
int fprintf args( ( FILE *stream, const char *format, ... ) );
/*
#if defined(SYSV)
*/
size_t fread args( ( void *ptr, size_t size, size_t n,
/* FILE *stream ) );
#else
int fread args( ( void *ptr, int size, int n, FILE *stream ) );
#endif
*/
int fseek args( ( FILE *stream, long offset, int ptrname ) );
void perror args( ( const char *s ) );
int ungetc args( ( int c, FILE *stream ) );
#endif
#if defined(ultrix)
char * crypt args( ( const char *key, const char *salt ) );
#endif
/*
* The crypt(3) function is not available on some operating systems.
* In particular, the U.S. Government prohibits its export from the
* United States to foreign countries.
* Turn on NOCRYPT to keep passwords in plain text.
*/
#if defined(NOCRYPT)
#define crypt(s1, s2) (s1)
#endif
/*
* Data files used by the server.
*
* AREA_LIST contains a list of areas to boot.
* All files are read in completely at bootup.
* Most output files (bug, idea, typo, shutdown) are append-only.
*
* The NULL_FILE is held open so that we have a stream handle in reserve,
* so players can go ahead and telnet to all the other descriptors.
* Then we close it whenever we need to open a file (e.g. a save file).
*/
#define PLAYER_DIR "../player/" /* Player files */
#define BACKUP_DIR "../backup/" /* Backup Player files */
#define GOD_DIR "../gods/" /* God Info Dir */
#define BOARD_DIR "../boards/" /* Board data dir */
#define CLAN_DIR "../clans/" /* Clan data dir */
#define JEDI_DIR "../jedi/"
#define SENATE_DIR "../senate/"
#define SHIP_DIR "../space/"
#define SPACE_DIR "../space/"
#define SHIP_PROTOTYPE_DIR "../ships/"
#define FORCE_DIR "../force/"
#define FORCE_HELP_DIR "../force/help/"
#define PLANET_DIR "../planets/"
#define GUARD_DIR "../planets/"
#define GUILD_DIR "../guilds/" /* Guild data dir */
#define BUILD_DIR "../building/" /* Online building save dir */
#define SYSTEM_DIR "../system/" /* Main system files */
#define PROG_DIR "mudprogs/" /* MUDProg files */
#define CORPSE_DIR "../corpses/" /* Corpses */
#define PROFILE_DIR "../html/profiles/" /* Player Profiles */
#define NULL_FILE "/dev/null" /* To reserve one stream */
#define AREA_LIST "area.lst" /* List of areas */
#define BAN_LIST "ban.lst" /* List of bans */
#define CLAN_LIST "clan.lst" /* List of clans */
#define SENATE_LIST "senate.lst"
#define JEDI_LIST "jedi.lst"
#define SHIP_LIST "ship.lst"
#define PROTOTYPE_LIST "prototype.lst"
#define PLANET_LIST "planet.lst"
#define SPACE_LIST "space.lst"
#define BOUNTY_LIST "bounty.lst"
#define disintegration_LIST "disintegration.lst"
#define SENATE_LIST "senate.lst" /* List of senators */
#define GUILD_LIST "guild.lst" /* List of guilds */
#define GOD_LIST "gods.lst" /* List of gods */
#define GUARD_LIST "guard.lst"
#define BOARD_FILE "boards.txt" /* For bulletin boards */
#define SHUTDOWN_FILE "shutdown.txt" /* For 'shutdown' */
#define RIPSCREEN_FILE SYSTEM_DIR "mudrip.rip"
#define RIPTITLE_FILE SYSTEM_DIR "mudtitle.rip"
#define ANSITITLE_FILE SYSTEM_DIR "mudtitle.ans"
#define ASCTITLE_FILE SYSTEM_DIR "mudtitle.asc"
#define BOOTLOG_FILE SYSTEM_DIR "boot.txt" /* Boot up error file */
#define BUG_FILE SYSTEM_DIR "bugs.txt" /* For 'bug' and bug( )*/
#define IDEA_FILE SYSTEM_DIR "ideas.txt" /* For 'idea' */
#define CHANGE_FILE SYSTEM_DIR "changes.txt" /* Changes file - txt */
#define CHANGEHTML_FILE "../html/changes.html" /* Changes file - html */
#define DEBUG_FILE SYSTEM_DIR "debug.txt" /* Catch-all for debug */
#define TYPO_FILE SYSTEM_DIR "typos.txt" /* For 'typo' */
#define LOG_FILE SYSTEM_DIR "log.txt" /* For talking in logged rooms */
#define WIZLIST_FILE SYSTEM_DIR "WIZLIST" /* Wizlist */
#define WEBWIZLIST_FILE "../html/WEBWIZLIST" /* Web Wizlist */
#define WHO_FILE SYSTEM_DIR "../html/WHO" /* Who output file */
#define WEBWHO_FILE "../html/WEBWHO"/* Web Who File */
#define REQUEST_PIPE SYSTEM_DIR "REQUESTS" /* Request FIFO */
#define SKILL_FILE SYSTEM_DIR "skills.dat" /* Skill table */
#define HERB_FILE SYSTEM_DIR "herbs.dat" /* Herb table */
#define SOCIAL_FILE SYSTEM_DIR "socials.dat" /* Socials */
#define COMMAND_FILE SYSTEM_DIR "commands.dat" /* Commands */
#define NAMEBAN_FILE SYSTEM_DIR "nameban.dat" /* Nameban */
#define USAGE_FILE SYSTEM_DIR "usage.txt" /* How many people are on
every half hour - trying to
determine best reboot time */
#define TEMP_FILE SYSTEM_DIR "charsave.tmp" /* More char save protect */
#define COPYOVER_FILE SYSTEM_DIR "copyover.dat" /* for warm reboots */
#define EXE_FILE "../src/swr" /* executable path */
#define SLOG_FILE "../.slog/slog.txt" /* Secret Log */
/*
* Our function prototypes.
* One big lump ... this is every function in Merc.
*/
#define CD CHAR_DATA
#define MID MOB_INDEX_DATA
#define OD OBJ_DATA
#define OID OBJ_INDEX_DATA
#define RID ROOM_INDEX_DATA
#define SF SPEC_FUN
#define BD BOARD_DATA
#define CL CLAN_DATA
#define EDD EXTRA_DESCR_DATA
#define RD RESET_DATA
#define ED EXIT_DATA
#define ST SOCIALTYPE
#define CO COUNCIL_DATA
#define DE DEITY_DATA
#define SK SKILLTYPE
#define SH SHIP_DATA
/* editor.c cronel new editor */
#define start_editing( ch, data ) \
start_editing_nolimit( ch, data, MAX_STRING_LENGTH )
void start_editing_nolimit args( ( CHAR_DATA *ch, char *data, sh_int max_size ) );
void stop_editing args( ( CHAR_DATA *ch ) );
void edit_buffer args( ( CHAR_DATA *ch, char *argument ) );
char * copy_buffer args( ( CHAR_DATA *ch ) );
void set_editor_desc args( ( CHAR_DATA *ch, char *desc ) );
void editor_desc_printf args( ( CHAR_DATA *ch, char *desc_fmt, ... ) );
/* pfiles.c */
void remove_member args( (char *name, char *shortname) );
void add_member args( (char *name, char *shortname) );
/* act_comm.c */
void talk_channel args( ( CHAR_DATA *ch, char *argument, int channel, const char *verb ) );
bool check_parse_name args( ( char *name ) );
void sound_to_room( ROOM_INDEX_DATA *room , char *argument );
bool circle_follow args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
void add_follower args( ( CHAR_DATA *ch, CHAR_DATA *master ) );
void stop_follower args( ( CHAR_DATA *ch ) );
void die_follower args( ( CHAR_DATA *ch ) );
bool is_same_group args( ( CHAR_DATA *ach, CHAR_DATA *bch ) );
void send_rip_screen args( ( CHAR_DATA *ch ) );
void send_rip_title args( ( CHAR_DATA *ch ) );
void send_ansi_title args( ( CHAR_DATA *ch ) );
void send_ascii_title args( ( CHAR_DATA *ch ) );
void to_channel args( ( const char *argument, int channel,
const char *verb, sh_int level ) );
void talk_auction args( ( char *argument ) );
bool knows_language args( ( CHAR_DATA *ch, int language,
CHAR_DATA *cch ) );
bool can_learn_lang args( ( CHAR_DATA *ch, int language ) );
int countlangs args( ( int languages ) );
char * obj_short args( ( OBJ_DATA *obj ) );
/* act_info.c */
bool can_see_force args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
void show_char_to_char args( ( CHAR_DATA *list, CHAR_DATA *ch ) );
int get_door args( ( char *arg ) );
char * format_obj_to_char args( ( OBJ_DATA *obj, CHAR_DATA *ch,
bool fShort ) );
void show_list_to_char args( ( OBJ_DATA *list, CHAR_DATA *ch,
bool fShort, bool fShowNothing ) );
void show_ships_to_char args( ( SHIP_DATA *ship, CHAR_DATA *ch ) );
/* act_move.c */
void clear_vrooms args( ( void ) );
ED * find_door args( ( CHAR_DATA *ch, char *arg, bool quiet ) );
ED * get_exit args( ( ROOM_INDEX_DATA *room, sh_int dir ) );
ED * get_exit_to args( ( ROOM_INDEX_DATA *room, sh_int dir, int vnum ) );
ED * get_exit_num args( ( ROOM_INDEX_DATA *room, sh_int count ) );
ch_ret move_char args( ( CHAR_DATA *ch, EXIT_DATA *pexit, int fall ) );
void teleport args( ( CHAR_DATA *ch, sh_int room, int flags ) );
sh_int encumbrance args( ( CHAR_DATA *ch, sh_int move ) );
bool will_fall args( ( CHAR_DATA *ch, int fall ) );
int wherehome args( ( CHAR_DATA *ch ) );
/* act_obj.c */
obj_ret damage_obj args( ( OBJ_DATA *obj ) );
sh_int get_obj_resistance args( ( OBJ_DATA *obj ) );
bool remove_obj args( ( CHAR_DATA *ch, int iWear, bool fReplace ) );
void save_clan_storeroom args( ( CHAR_DATA *ch, CLAN_DATA *clan ) );
void obj_fall args( ( OBJ_DATA *obj, bool through ) );
/* act_wiz.c */
void close_area args( ( AREA_DATA *pArea ) );
AREA_DATA * get_area args( ( char *argument ) );
RID * find_location args( ( CHAR_DATA *ch, char *arg ) );
void echo_to_room args( ( sh_int AT_COLOR, ROOM_INDEX_DATA *room, char *argument ) );
void echo_to_all args( ( sh_int AT_COLOR, char *argument,
sh_int tar ) );
void get_reboot_string args( ( void ) );
struct tm *update_time args( ( struct tm *old_time ) );
void free_social args( ( SOCIALTYPE *social ) );
void add_social args( ( SOCIALTYPE *social ) );
void free_command args( ( CMDTYPE *command ) );
void unlink_command args( ( CMDTYPE *command ) );
void add_command args( ( CMDTYPE *command ) );
/* boards.c */
void load_boards args( ( void ) );
BD * get_board args( ( OBJ_DATA *obj ) );
void free_note args( ( NOTE_DATA *pnote ) );
/* build.c */
char * flag_string args( ( int bitvector, char * const flagarray[] ) );
int get_mpflag args( ( char *flag ) );
int get_dir args( ( char *txt ) );
char * strip_cr args( ( char *str ) );
int get_vip_flag args( ( char *flag ) );
int get_wanted_flag args( ( char *flag ) );
/* clans.c */
CL * get_clan args( ( char *name ) );
SENATE2_DATA * get_senate args( ( char *name ) );
void load_clans args( ( void ) );
void save_clan args( ( CLAN_DATA *clan ) );
void load_jedis args( ( void ) );
void load_senates args( ( void ) );
void load_senate args( ( void ) );
void save_senate args( ( void ) );
PLANET_DATA * get_planet args( ( char *name ) );
void load_planets args( ( void ) );
void save_planet args( ( PLANET_DATA *planet ) );
long get_taxes args( ( PLANET_DATA *planet ) );
/* bounty.c */
BOUNTY_DATA * get_disintegration args( ( char *target ) );
void load_bounties args( ( void ) );
void save_bounties args( ( void ) );
void save_disintegrations args( ( void ) );
void remove_disintegration args( ( BOUNTY_DATA *bounty ) );
void claim_disintegration args( ( CHAR_DATA *ch , CHAR_DATA *victim ) );
bool is_disintegration args( ( CHAR_DATA *victim ) );
/* class.c */
int skill_max args( ( CHAR_DATA *ch, int skill ) );
int fskill_max args( ( CHAR_DATA *ch, int skill ) );
char lightsaber_color args( ( int color ) );
void body_parts args( ( CHAR_DATA *ch, int iRace ) );
void racial_bonus args( ( CHAR_DATA *ch, int iRace ) );
void gain_darkpoint args( ( CHAR_DATA *ch ) );
void gain_darklevel args( ( CHAR_DATA *ch ) );
bool check_req args( ( CHAR_DATA *ch, int flag ) );
bool check_req2 args( ( CHAR_DATA *ch, int flag ) );
void level_class args( ( CHAR_DATA *ch, int Ability ) );
/* force.c */
bool check_reflect args( ( CHAR_DATA *ch, CHAR_DATA *victim, int dam ) );
void write_all_forceskills();
void save_forceskill( FORCE_SKILL *fskill );
void write_forceskill_list( );
bool load_forceskill( char *forceskillfile );
void fread_forceskill( FORCE_SKILL *fskill, FILE *fp );
void write_all_forcehelps();
void save_forcehelp( FORCE_HELP *fhelp );
void write_forcehelp_list( );
bool load_forcehelp( char *forcehelpfile );
void fread_forcehelp( FORCE_HELP *fhelp, FILE *fp );
int check_force_skill args( (CHAR_DATA *ch, char *command, char *argument) );
void load_force_skills args( ( void ) );
void load_force_help args( ( void ) );
DO_FUN *get_force_skill_function args( (char *name) );
FORCE_SKILL *get_force_skill(char *argument);
FORCE_HELP *get_force_help(char *fname,char *type);
void force_send_to_room args( (CHAR_DATA *ch, CHAR_DATA *victim, char *msg) );
CHAR_DATA *force_get_victim args( (CHAR_DATA *ch,char *argument,int loc) );
char *force_get_possessive( CHAR_DATA *ch );
char *force_get_objective( CHAR_DATA *ch );
char *force_get_pronoun( CHAR_DATA *ch );
char *force_parse_string( CHAR_DATA *ch, CHAR_DATA *victim, char *msg);
void force_learn_from_failure args( (CHAR_DATA *ch,FORCE_SKILL *fskill) );
void force_learn_from_success args( (CHAR_DATA *ch,FORCE_SKILL *fskill) );
FORCE_SKILL *force_test_skill_use args( (char *skill_name,CHAR_DATA *ch,int skill_type) );
char *force_get_level( CHAR_DATA *ch );
int force_promote_ready(CHAR_DATA *ch);
void draw_force_line(CHAR_DATA *ch,int length);
void draw_force_line_rev(CHAR_DATA *ch, int length);
void update_force args( ( void ) );
/* space.c */
SH * get_ship args( ( char *name ) );
void load_ships args( ( void ) );
void placeships args( ( void ) );
void save_ship args( ( SHIP_DATA *ship ) );
void load_space args( ( void ) );
void save_starsystem args( ( SPACE_DATA *starsystem ) );
SPACE_DATA * starsystem_from_name args( ( char *name ) );
SPACE_DATA * starsystem_from_room args( ( ROOM_INDEX_DATA * room ) );
SHIP_DATA * ship_from_entrance args( ( int vnum ) );
SHIP_DATA * ship_from_room args( ( int vnum ) );
SHIP_DATA * ship_from_hanger args( ( int vnum ) );
SHIP_DATA * ship_from_pilotseat args( ( int vnum ) );
SHIP_DATA * ship_from_cockpit args( ( int vnum ) );
SHIP_DATA * ship_from_cargohold args( ( int vnum ) );
SHIP_DATA * ship_from_turret args( ( int vnum ) );
SHIP_DATA * ship_from_engine args( ( int vnum ) );
SHIP_DATA * ship_from_pilot args( ( char *name ) );
SHIP_DATA * get_ship_here args( ( char *name , SPACE_DATA *starsystem ) );
void showstarsystem args( ( CHAR_DATA *ch , SPACE_DATA *starsystem ) );
void update_space args( ( void ) );
void recharge_ships args( ( void ) );
void move_ships args( ( void ) );
void update_bus args( ( void ) );
void update_traffic args( ( void ) );
bool check_pilot args( ( CHAR_DATA *ch , SHIP_DATA *ship ) );
bool is_rental args( ( CHAR_DATA *ch , SHIP_DATA *ship ) );
void echo_to_ship args( ( int color , SHIP_DATA *ship , char *argument ) );
void echo_to_cockpit args( ( int color , SHIP_DATA *ship , char *argument ) );
void echo_to_system args( ( int color , SHIP_DATA *ship , char *argument , SHIP_DATA *ignore ) );
bool extract_ship args( ( SHIP_DATA *ship ) );
bool ship_to_room args( ( SHIP_DATA *ship , int vnum ) );
bool ship_to_room2 args( ( SHIP_DATA *ship , ROOM_INDEX_DATA *shipto ) );
long get_ship_value args( ( SHIP_DATA *ship ) );
bool rent_ship args( ( CHAR_DATA *ch , SHIP_DATA *ship ) );
void damage_ship args( ( SHIP_DATA *ship , int min , int max ) );
void damage_ship_ch args( ( SHIP_DATA *ship , int min , int max , CHAR_DATA *ch ) );
void destroy_ship args( ( SHIP_DATA *ship , CHAR_DATA *ch , char *reason ) );
void ship_to_starsystem args( ( SHIP_DATA *ship , SPACE_DATA *starsystem ) );
void ship_from_starsystem args( ( SHIP_DATA *ship , SPACE_DATA *starsystem ) );
void new_missile args( ( SHIP_DATA *ship , SHIP_DATA *target , CHAR_DATA *ch, int missiletype ) );
void extract_missile args( ( MISSILE_DATA *missile ) );
SHIP_DATA * ship_in_room args( ( ROOM_INDEX_DATA *room, char *name ) );
/* morespace.c */
//SHIP_PROTOTYPE * get_ship_prototype args( ( char *name ) );
void load_prototypes args( ( void ) );
//void save_ship_protoype args( ( SHIP_PROTOTYPE *prototype ) );
//long int get_prototype_value args( ( SHIP_PROTOTYPE *prototype ) );
void create_ship_rooms args( ( SHIP_DATA * ship ) );
/* comm.c */
char *PERS args( (CHAR_DATA *ch, CHAR_DATA *looker ) );
FELLOW_DATA * knowsof args( (CHAR_DATA *ch, CHAR_DATA *victim ) );
void close_socket args( ( DESCRIPTOR_DATA *dclose, bool force ) );
void write_to_buffer args( ( DESCRIPTOR_DATA *d, const char *txt,
int length ) );
void write_to_pager args( ( DESCRIPTOR_DATA *d, const char *txt,
int length ) );
void send_to_char args( ( const char *txt, CHAR_DATA *ch ) );
void send_to_char_color args( ( const char *txt, CHAR_DATA *ch ) );
void send_to_desc_color args( ( const char *txt, DESCRIPTOR_DATA *d ) );
void send_to_char_noand args( ( const char *txt, CHAR_DATA *ch ) );
void send_to_pager args( ( const char *txt, CHAR_DATA *ch ) );
void send_to_pager_color args( ( const char *txt, CHAR_DATA *ch ) );
void set_char_color args( ( sh_int AType, CHAR_DATA *ch ) );
void set_pager_color args( ( sh_int AType, CHAR_DATA *ch ) );
void ch_printf args( ( CHAR_DATA *ch, char *fmt, ... ) );
char * chrmax args( ( char *src, int length ) );
int strlen_color args( (char *argument) );
char * format_str args( (char *str, int len) );
void pager_printf args( (CHAR_DATA *ch, char *fmt, ...) );
void log_printf args( (char *fmt, ...) );
void copyover_recover args( (void) );
void act args( ( sh_int AType, const char *format, CHAR_DATA *ch,
const void *arg1, const void *arg2, int type ) );
/* reset.c */
void wipe_resets( AREA_DATA *pArea, ROOM_INDEX_DATA *pRoom );
RD * make_reset args( ( char letter, int extra, int arg1, int arg2, int arg3 ) );
RD * add_reset args( ( AREA_DATA *tarea, char letter, int extra, int arg1, int arg2, int arg3 ) );
RD * place_reset args( ( AREA_DATA *tarea, char letter, int extra, int arg1, int arg2, int arg3 ) );
void reset_area args( ( AREA_DATA * pArea ) );
void add_obj_reset args( ( AREA_DATA *pArea, char cm, OBJ_DATA *obj, int v2, int v3 ) );
/* db.c */
void show_file args( ( CHAR_DATA *ch, char *filename ) );
char * str_dup args( ( char const *str ) );
char * centertext args( ( char *text, int size ) );
void boot_db args( ( bool fCopyOver ) );
void area_update args( ( void ) );
void add_char args( ( CHAR_DATA *ch ) );
CD * create_mobile args( ( MOB_INDEX_DATA *pMobIndex ) );
OD * create_object args( ( OBJ_INDEX_DATA *pObjIndex, int level ) );
void clear_char args( ( CHAR_DATA *ch ) );
void free_char args( ( CHAR_DATA *ch ) );
char * get_extra_descr args( ( const char *name, EXTRA_DESCR_DATA *ed ) );
MID * get_mob_index args( ( sh_int vnum ) );
OID * get_obj_index args( ( int vnum ) );
RID * get_room_index args( ( int vnum ) );
char fread_letter args( ( FILE *fp ) );
int fread_number args( ( FILE *fp ) );
char * fread_string args( ( FILE *fp ) );
char * fread_string_nohash args( ( FILE *fp ) );
void fread_to_eol args( ( FILE *fp ) );
char * fread_word args( ( FILE *fp ) );
char * fread_line args( ( FILE *fp ) );
int number_fuzzy args( ( int number ) );
int number_range args( ( int from, int to ) );
int number_percent args( ( void ) );
int number_door args( ( void ) );
int number_bits args( ( int width ) );
int number_mm args( ( void ) );
int dice args( ( int number, int size ) );
int interpolate args( ( int level, int value_00, int value_32 ) );
void smash_tilde args( ( char *str ) );
void hide_tilde args( ( char *str ) );
char * show_tilde args( ( char *str ) );
bool str_cmp args( ( const char *astr, const char *bstr ) );
bool str_prefix args( ( const char *astr, const char *bstr ) );
bool str_infix args( ( const char *astr, const char *bstr ) );
bool str_suffix args( ( const char *astr, const char *bstr ) );
char * capitalize args( ( const char *str ) );
char * strlower args( ( const char *str ) );
char * strupper args( ( const char *str ) );
char * aoran args( ( const char *str ) );
void append_file args( ( CHAR_DATA *ch, char *file, char *str ) );
void append_to_file args( ( char *file, char *str ) );
void prepend_to_file args( ( char *file, char *str ) );
void bug args( ( const char *str, ... ) );
void log_string_plus args( ( const char *str, sh_int log_type, sh_int level ) );
RID * make_room args( ( int vnum ) );
RID * make_ship_room args( ( SHIP_DATA * ship, int vnum ) );
OID * make_object args( ( int vnum, int cvnum, char *name ) );
MID * make_mobile args( ( sh_int vnum, sh_int cvnum, char *name ) );
ED * make_exit args( ( ROOM_INDEX_DATA *pRoomIndex, ROOM_INDEX_DATA *to_room, sh_int door ) );
void add_help args( ( HELP_DATA *pHelp ) );
void fix_area_exits args( ( AREA_DATA *tarea ) );
void load_area_file args( ( AREA_DATA *tarea, char *filename ) );
void randomize_exits args( ( ROOM_INDEX_DATA *room, sh_int maxdir ) );
void make_wizlist args( ( void ) );
void tail_chain args( ( void ) );
bool delete_room args( ( ROOM_INDEX_DATA *room ) );
bool delete_obj args( ( OBJ_INDEX_DATA *obj ) );
bool delete_mob args( ( MOB_INDEX_DATA *mob ) );
/* Functions to add to sorting lists. -- Altrag */
/*void mob_sort args( ( MOB_INDEX_DATA *pMob ) );
void obj_sort args( ( OBJ_INDEX_DATA *pObj ) );
void room_sort args( ( ROOM_INDEX_DATA *pRoom ) );*/
void sort_area args( ( AREA_DATA *pArea, bool proto ) );
/* build.c */
bool can_rmodify args( ( CHAR_DATA *ch, ROOM_INDEX_DATA *room ) );
bool can_omodify args( ( CHAR_DATA *ch, OBJ_DATA *obj ) );
bool can_mmodify args( ( CHAR_DATA *ch, CHAR_DATA *mob ) );
bool can_medit args( ( CHAR_DATA *ch, MOB_INDEX_DATA *mob ) );
void free_reset args( ( AREA_DATA *are, RESET_DATA *res ) );
void free_area args( ( AREA_DATA *are ) );
void assign_area args( ( CHAR_DATA *ch ) );
EDD * SetRExtra args( ( ROOM_INDEX_DATA *room, char *keywords ) );
bool DelRExtra args( ( ROOM_INDEX_DATA *room, char *keywords ) );
EDD * SetOExtra args( ( OBJ_DATA *obj, char *keywords ) );
bool DelOExtra args( ( OBJ_DATA *obj, char *keywords ) );
EDD * SetOExtraProto args( ( OBJ_INDEX_DATA *obj, char *keywords ) );
bool DelOExtraProto args( ( OBJ_INDEX_DATA *obj, char *keywords ) );
void fold_area args( ( AREA_DATA *tarea, char *filename, bool install ) );
int get_otype args( ( char *type ) );
int get_atype args( ( char *type ) );
int get_aflag args( ( char *flag ) );
int get_pflag args( ( char *flag ) );
int get_plflag args( ( char *flag ) );
int get_oflag args( ( char *flag ) );
int get_wflag args( ( char *flag ) );
/* fight.c */
void check_fumble args( ( CHAR_DATA *ch, OBJ_DATA *wield ) );
bool check_critical args( ( CHAR_DATA *ch, int diceroll, bool wield, int armor) );
int max_fight args( ( CHAR_DATA *ch ) );
void violence_update args( ( void ) );
ch_ret multi_hit args( ( CHAR_DATA *ch, CHAR_DATA *victim, int dt ) );
sh_int ris_damage args( ( CHAR_DATA *ch, sh_int dam, int ris ) );
ch_ret damage args( ( CHAR_DATA *ch, CHAR_DATA *victim, int dam,
int dt, bool critical ) );
void update_pos args( ( CHAR_DATA *victim ) );
void update_med args( ( CHAR_DATA *ch ) );
void set_fighting args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
void stop_fighting args( ( CHAR_DATA *ch, bool fBoth ) );
void free_fight args( ( CHAR_DATA *ch ) );
CD * who_fighting args( ( CHAR_DATA *ch ) );
void check_killer args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
void check_attacker args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
void death_cry args( ( CHAR_DATA *ch ) );
void stop_hunting args( ( CHAR_DATA *ch ) );
void stop_hating args( ( CHAR_DATA *ch ) );
void stop_fearing args( ( CHAR_DATA *ch ) );
void start_hunting args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
void start_hating args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
void start_fearing args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
bool is_hunting args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
bool is_hating args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
bool is_fearing args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
bool is_safe args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
bool is_safe_nm args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
bool legal_loot args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
bool check_illegal_pk args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
void raw_kill args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
bool in_arena args( ( CHAR_DATA *ch ) );
/* makeobjs.c */
void make_corpse args( ( CHAR_DATA *ch, char *killer ) );
void make_blood args( ( CHAR_DATA *ch ) );
void make_bloodstain args( ( CHAR_DATA *ch ) );
void make_scraps args( ( OBJ_DATA *obj ) );
void make_fire args( ( ROOM_INDEX_DATA *in_room, sh_int timer) );
OD * make_trap args( ( int v0, int v1, int v2, int v3 ) );
OD * create_money args( ( int amount ) );
/* misc.c */
void actiondesc args( ( CHAR_DATA *ch, OBJ_DATA *obj, void *vo ) );
void jedi_checks args( ( CHAR_DATA *ch ) );
void jedi_bonus args( ( CHAR_DATA *ch ) );
void sith_penalty args( ( CHAR_DATA *ch ) );
/* mud_comm.c */
char * mprog_type_to_name args( ( int type ) );
/* mud_prog.c */
#ifdef DUNNO_STRSTR
char * strstr args ( (const char *s1, const char *s2 ) );
#endif
void mprog_wordlist_check args ( ( char * arg, CHAR_DATA *mob,
CHAR_DATA* actor, OBJ_DATA* object,
void* vo, int type ) );
void mprog_percent_check args ( ( CHAR_DATA *mob, CHAR_DATA* actor,
OBJ_DATA* object, void* vo,
int type ) );
void mprog_act_trigger args ( ( char* buf, CHAR_DATA* mob,
CHAR_DATA* ch, OBJ_DATA* obj,
void* vo ) );
void mprog_bribe_trigger args ( ( CHAR_DATA* mob, CHAR_DATA* ch,
int amount ) );
void mprog_entry_trigger args ( ( CHAR_DATA* mob ) );
void mprog_give_trigger args ( ( CHAR_DATA* mob, CHAR_DATA* ch,
OBJ_DATA* obj ) );
void mprog_greet_trigger args ( ( CHAR_DATA* mob ) );
void mprog_fight_trigger args ( ( CHAR_DATA* mob, CHAR_DATA* ch ) );
void mprog_hitprcnt_trigger args ( ( CHAR_DATA* mob, CHAR_DATA* ch ) );
void mprog_death_trigger args ( ( CHAR_DATA *killer, CHAR_DATA* mob ) );
void mprog_random_trigger args ( ( CHAR_DATA* mob ) );
void mprog_speech_trigger args ( ( char* txt, CHAR_DATA* mob ) );
void mprog_script_trigger args ( ( CHAR_DATA *mob ) );
void mprog_hour_trigger args ( ( CHAR_DATA *mob ) );
void mprog_time_trigger args ( ( CHAR_DATA *mob ) );
void progbug args( ( char *str, CHAR_DATA *mob ) );
void rset_supermob args( ( ROOM_INDEX_DATA *room) );
void release_supermob args( ( ) );
void mpsleep_update args( ( ) );
/* player.c */
void set_title args( ( CHAR_DATA *ch, char *title ) );
/* skills.c */
bool check_skill args( ( CHAR_DATA *ch, char *command, char *argument ) );
void learn_skill args( ( CHAR_DATA *ch, int skill ) );
void learn_force args( ( CHAR_DATA *ch, int skill ) );
void learn_from_success args( ( CHAR_DATA *ch, int sn ) );
void learn_from_failure args( ( CHAR_DATA *ch, int sn ) );
void disarm args( ( CHAR_DATA *ch, CHAR_DATA *victim) );
void trip args( ( CHAR_DATA *ch, CHAR_DATA *victim) );
/* handler.c */
QUEST_DATA * quest_from_name args( ( CHAR_DATA *ch, char *argument ) );
int skill_roll args( ( CHAR_DATA *ch, int iSkill ) );
int fskill_roll args( ( CHAR_DATA *ch, int iSkill ) );
void remove_bodypart args( ( CHAR_DATA *ch, CHAR_DATA *victim, int part ) );
int GET_AC args( ( CHAR_DATA *ch ) );
void explode args( ( OBJ_DATA *obj ) );
int get_exp args( ( CHAR_DATA *ch , int ability ) );
int get_exp_worth args( ( CHAR_DATA *ch ) );
int exp_level args( ( sh_int level ) );
sh_int get_trust args( ( CHAR_DATA *ch ) );
sh_int get_age args( ( CHAR_DATA *ch ) );
sh_int get_curr_str args( ( CHAR_DATA *ch ) );
sh_int get_curr_int args( ( CHAR_DATA *ch ) );
sh_int get_curr_wis args( ( CHAR_DATA *ch ) );
sh_int get_curr_dex args( ( CHAR_DATA *ch ) );
sh_int get_curr_con args( ( CHAR_DATA *ch ) );
sh_int get_curr_cha args( ( CHAR_DATA *ch ) );
sh_int get_curr_lck args( ( CHAR_DATA *ch ) );
sh_int get_curr_frc args( ( CHAR_DATA *ch ) );
bool can_take_proto args( ( CHAR_DATA *ch ) );
int can_carry_n args( ( CHAR_DATA *ch ) );
int can_carry_w args( ( CHAR_DATA *ch ) );
bool is_name args( ( const char *str, char *namelist ) );
bool is_name_prefix args( ( const char *str, char *namelist ) );
bool nifty_is_name args( ( char *str, char *namelist ) );
bool nifty_is_name_prefix args( ( char *str, char *namelist ) );
void affect_modify args( ( CHAR_DATA *ch, AFFECT_DATA *paf, bool fAdd ) );
void affect_to_char args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) );
void affect_remove args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) );
void affect_strip args( ( CHAR_DATA *ch, int sn ) );
bool is_affected args( ( CHAR_DATA *ch, int sn ) );
void affect_join args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) );
void char_from_room args( ( CHAR_DATA *ch ) );
void char_to_room args( ( CHAR_DATA *ch, ROOM_INDEX_DATA *pRoomIndex ) );
OD * obj_to_char args( ( OBJ_DATA *obj, CHAR_DATA *ch ) );
void obj_from_char args( ( OBJ_DATA *obj ) );
int apply_ac args( ( OBJ_DATA *obj, int iWear ) );
OD * get_eq_char args( ( CHAR_DATA *ch, int iWear ) );
void equip_char args( ( CHAR_DATA *ch, OBJ_DATA *obj, int iWear ) );
void unequip_char args( ( CHAR_DATA *ch, OBJ_DATA *obj ) );
int count_obj_list args( ( OBJ_INDEX_DATA *obj, OBJ_DATA *list ) );
int count_mob_in_room args( ( MOB_INDEX_DATA *mob, ROOM_INDEX_DATA *list ) );
void obj_from_room args( ( OBJ_DATA *obj ) );
OD * obj_to_room args( ( OBJ_DATA *obj, ROOM_INDEX_DATA *pRoomIndex ) );
OD * obj_to_obj args( ( OBJ_DATA *obj, OBJ_DATA *obj_to ) );
void obj_from_obj args( ( OBJ_DATA *obj ) );
void extract_obj args( ( OBJ_DATA *obj ) );
void extract_exit args( ( ROOM_INDEX_DATA *room, EXIT_DATA *pexit ) );
void extract_room args( ( ROOM_INDEX_DATA *room ) );
void clean_room args( ( ROOM_INDEX_DATA *room ) );
void clean_obj args( ( OBJ_INDEX_DATA *obj ) );
void clean_mob args( ( MOB_INDEX_DATA *mob ) );
void clean_resets args( ( AREA_DATA *tarea ) );
void extract_char args( ( CHAR_DATA *ch, bool fPull ) );
CD * get_char_room args( ( CHAR_DATA *ch, char *argument ) );
CD * get_char_world args( ( CHAR_DATA *ch, char *argument ) );
CD * get_char_world_ooc args( ( CHAR_DATA *ch, char *argument ) );
CD * get_char_from_comfreq args((CHAR_DATA *ch, char *argument));
OD * get_obj_type args( ( OBJ_INDEX_DATA *pObjIndexData ) );
OD * get_obj_list args( ( CHAR_DATA *ch, char *argument,
OBJ_DATA *list ) );
OD * get_obj_list_rev args( ( CHAR_DATA *ch, char *argument,
OBJ_DATA *list ) );
OD * get_obj_carry args( ( CHAR_DATA *ch, char *argument ) );
OD * get_obj_wear args( ( CHAR_DATA *ch, char *argument ) );
OD * get_obj_here args( ( CHAR_DATA *ch, char *argument ) );
OD * get_obj_world args( ( CHAR_DATA *ch, char *argument ) );
int get_obj_number args( ( OBJ_DATA *obj ) );
int get_obj_weight args( ( OBJ_DATA *obj ) );
bool room_is_dark args( ( ROOM_INDEX_DATA *pRoomIndex ) );
bool room_is_private args( ( CHAR_DATA *ch, ROOM_INDEX_DATA *pRoomIndex ) );
bool can_see args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
bool can_see_obj args( ( CHAR_DATA *ch, OBJ_DATA *obj ) );
bool can_drop_obj args( ( CHAR_DATA *ch, OBJ_DATA *obj ) );
char * item_type_name args( ( OBJ_DATA *obj ) );
char * affect_loc_name args( ( int location ) );
char * affect_bit_name args( ( int vector ) );
char * extra_bit_name args( ( int extra_flags ) );
char * magic_bit_name args( ( int magic_flags ) );
ch_ret check_for_trap args( ( CHAR_DATA *ch, OBJ_DATA *obj, int flag ) );
ch_ret check_room_for_traps args( ( CHAR_DATA *ch, int flag ) );
bool is_trapped args( ( OBJ_DATA *obj ) );
OD * get_trap args( ( OBJ_DATA *obj ) );
ch_ret spring_trap args( ( CHAR_DATA *ch, OBJ_DATA *obj ) );
void name_stamp_stats args( ( CHAR_DATA *ch ) );
void fix_char args( ( CHAR_DATA *ch ) );
void showaffect args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) );
void set_cur_obj args( ( OBJ_DATA *obj ) );
bool obj_extracted args( ( OBJ_DATA *obj ) );
void queue_extracted_obj args( ( OBJ_DATA *obj ) );
void clean_obj_queue args( ( void ) );
void set_cur_char args( ( CHAR_DATA *ch ) );
bool char_died args( ( CHAR_DATA *ch ) );
void queue_extracted_char args( ( CHAR_DATA *ch, bool extract ) );
void clean_char_queue args( ( void ) );
void add_timer args( ( CHAR_DATA *ch, sh_int type, sh_int count, DO_FUN *fun, int value ) );
TIMER * get_timerptr args( ( CHAR_DATA *ch, sh_int type ) );
sh_int get_timer args( ( CHAR_DATA *ch, sh_int type ) );
void extract_timer args( ( CHAR_DATA *ch, TIMER *timer ) );
void remove_timer args( ( CHAR_DATA *ch, sh_int type ) );
bool in_soft_range args( ( CHAR_DATA *ch, AREA_DATA *tarea ) );
bool in_hard_range args( ( CHAR_DATA *ch, AREA_DATA *tarea ) );
bool chance args( ( CHAR_DATA *ch, sh_int percent ) );
bool chance_attrib args( ( CHAR_DATA *ch, sh_int percent, sh_int attrib ) );
OD * clone_object args( ( OBJ_DATA *obj ) );
void split_obj args( ( OBJ_DATA *obj, int num ) );
void separate_obj args( ( OBJ_DATA *obj ) );
bool empty_obj args( ( OBJ_DATA *obj, OBJ_DATA *destobj,
ROOM_INDEX_DATA *destroom ) );
OD * find_obj args( ( CHAR_DATA *ch, char *argument,
bool carryonly ) );
bool ms_find_obj args( ( CHAR_DATA *ch ) );
void worsen_mental_state args( ( CHAR_DATA *ch, int mod ) );
void better_mental_state args( ( CHAR_DATA *ch, int mod ) );
void boost_economy args( ( AREA_DATA *tarea, int gold ) );
void lower_economy args( ( AREA_DATA *tarea, int gold ) );
void economize_mobgold args( ( CHAR_DATA *mob ) );
bool economy_has args( ( AREA_DATA *tarea, int gold ) );
void add_kill args( ( CHAR_DATA *ch, CHAR_DATA *mob ) );
int times_killed args( ( CHAR_DATA *ch, CHAR_DATA *mob ) );
/* interp.c */
bool check_pos args( ( CHAR_DATA *ch, sh_int position ) );
void interpret args( ( CHAR_DATA *ch, char *argument ) );
bool is_number args( ( char *arg ) );
int number_argument args( ( char *argument, char *arg ) );
char * one_argument args( ( char *argument, char *arg_first ) );
char * one_argument2 args( ( char *argument, char *arg_first ) );
ST * find_social args( ( char *command ) );
CMDTYPE *find_command args( ( char *command ) );
void hash_commands args( ( ) );
void start_timer args( ( struct timeval *stime ) );
time_t end_timer args( ( struct timeval *stime ) );
void send_timer args( ( struct timerset *vtime, CHAR_DATA *ch ) );
void update_userec args( ( struct timeval *time_used, struct timerset *userec ) );
/* magic.c */
bool process_spell_components args( ( CHAR_DATA *ch, int sn ) );
int ch_slookup args( ( CHAR_DATA *ch, const char *name ) );
int find_spell args( ( CHAR_DATA *ch, const char *name, bool know ) );
int find_skill args( ( CHAR_DATA *ch, const char *name, bool know ) );
int find_weapon args( ( CHAR_DATA *ch, const char *name, bool know ) );
int find_tongue args( ( CHAR_DATA *ch, const char *name, bool know ) );
int skill_lookup args( ( const char *name ) );
int herb_lookup args( ( const char *name ) );
int personal_lookup args( ( CHAR_DATA *ch, const char *name ) );
int slot_lookup args( ( int slot ) );
int bsearch_skill args( ( const char *name, int first, int top ) );
int bsearch_skill_exact args( ( const char *name, int first, int top ) );
bool saves_poison_death args( ( int level, CHAR_DATA *victim ) );
bool saves_wand args( ( int level, CHAR_DATA *victim ) );
bool saves_para_petri args( ( int level, CHAR_DATA *victim ) );
bool saves_breath args( ( int level, CHAR_DATA *victim ) );
bool saves_spell_staff args( ( int level, CHAR_DATA *victim ) );
ch_ret obj_cast_spell args( ( int sn, int level, CHAR_DATA *ch, CHAR_DATA *victim, OBJ_DATA *obj ) );
int dice_parse args( (CHAR_DATA *ch, int level, char *exp) );
SK * get_skilltype args( ( int sn ) );
/* request.c */
void init_request_pipe args( ( void ) );
void check_requests args( ( void ) );
/* save.c */
/* object saving defines for fread/write_obj. -- Altrag */
#define OS_CARRY 0
#define OS_CORPSE 1
void save_char_obj args( ( CHAR_DATA *ch ) );
void save_clone args( ( CHAR_DATA *ch ) );
void save_profile args( ( CHAR_DATA *ch ) );
bool load_char_obj args( ( DESCRIPTOR_DATA *d, char *name, bool preload ) );
void set_alarm args( ( long seconds ) );
void requip_char args( ( CHAR_DATA *ch ) );
void fwrite_obj args( ( CHAR_DATA *ch, OBJ_DATA *obj, FILE *fp,
int iNest, sh_int os_type ) );
void fread_obj args( ( CHAR_DATA *ch, FILE *fp, sh_int os_type ) );
void de_equip_char args( ( CHAR_DATA *ch ) );
void re_equip_char args( ( CHAR_DATA *ch ) );
void save_home args( ( CHAR_DATA *ch ) );
/* shops.c */
/* special.c */
SF * spec_lookup args( ( const char *name ) );
char * lookup_spec args( ( SPEC_FUN *special ) );
/* tables.c */
int get_skill args( ( char *skilltype ) );
char * spell_name args( ( SPELL_FUN *spell ) );
char * skill_name args( ( DO_FUN *skill ) );
void load_skill_table args( ( void ) );
void save_skill_table args( (int delnum) );
void sort_skill_table args( ( void ) );
void load_socials args( ( void ) );
void save_socials args( ( void ) );
void load_commands args( ( void ) );
void save_commands args( ( void ) );
SPELL_FUN *spell_function args( ( char *name ) );
DO_FUN *skill_function args( ( char *name ) );
void load_herb_table args( ( void ) );
void save_herb_table args( ( void ) );
/* track.c */
void found_prey args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
void hunt_victim args( ( CHAR_DATA *ch) );
/* update.c */
void check_force args( ( CHAR_DATA *ch ) );
void advance_level args( ( CHAR_DATA *ch , int ability ) );
void gain_exp args( ( CHAR_DATA *ch, int gain ) );
void gain_exp2 args( ( CHAR_DATA *ch, int gain , int ability) );
void gain_condition args( ( CHAR_DATA *ch, int iCond, int value ) );
void update_handler args( ( void ) );
void reboot_check args( ( time_t reset ) );
#if 0
void reboot_check args( ( char *arg ) );
#endif
void auction_update args( ( void ) );
void remove_portal args( ( OBJ_DATA *portal ) );
int max_level( CHAR_DATA *ch, int ability);
/* hashstr.c */
char * str_alloc args( ( char *str ) );
char * quick_link args( ( char *str ) );
int str_free args( ( char *str ) );
void show_hash args( ( int count ) );
char * hash_stats args( ( void ) );
char * check_hash args( ( char *str ) );
void hash_dump args( ( int hash ) );
void show_high_hash args( ( int top ) );
/* ships.c */
int max_missile args( ( SHIP_DATA *ship, int iWeapon ) );
void load_ship_prototypes();
int load_prototype( char *prototypefile, int prototype);
bool load_prototype_rooms( FILE *fp, int prototype);
bool fread_prototype_room( FILE *fp, int prototype);
bool load_prototype_header(FILE *fp,int prototype);
void write_all_prototypes();
void write_prototype_list();
void save_prototype( int prototype );
void write_all_prototypes();
void write_prototype_list();
void save_prototype( int prototype );
int find_vnum_block args( ( int num_needed ) );
int make_prototype_rooms args( (int ship_type, int vnum,AREA_DATA *tarea,char *Sname) );
int get_sp_rflag args( ( char *flag ) );
SHIP_DATA *make_prototype_ship args( (int ship_type,int vnum,CHAR_DATA *ch,char *ship_name) );
void write_ship_list args( ( void ) );
void resetship args( ( SHIP_DATA *ship ) );
char *parse_prog_string args( (char *inp,int ship_type,int vnum) );
void make_rprogs args( (int ship_type, int vnum) );
void load_ship_prototypes args( ( void ) );
/* functions.c */
char *strrep args( (char *src, char *sch,char *rep) );
char *strlinwrp args( (char *src, int length) );
char *line(int num,char inp);
char *remand(char *arg);
char *rembg(char *arg);
char *htmlcolor(char *arg);
char *format_str(char *src, int len);
int strlen_color (char *argument);
char *chrmax( char *src, int length );
/* newscore.c */
char * get_race args( (CHAR_DATA *ch) );
#undef SK
#undef CO
#undef ST
#undef CD
#undef MID
#undef OD
#undef OID
#undef RID
#undef SF
#undef BD
#undef CL
#undef EDD
#undef RD
#undef ED
/* ships.c */
void load_market_list args((void));
void save_market_list args((void));
void add_market_ship args((SHIP_DATA*ship));
void remove_market_ship args((BMARKET_DATA*marketship));
void make_random_marketlist args((void));
/*
*
* New Build Interface Stuff Follows
*
*/
/*
* Data for a menu page
*/
struct menu_data
{
char *sectionNum;
char *charChoice;
int x;
int y;
char *outFormat;
void *data;
int ptrType;
int cmdArgs;
char *cmdString;
};
DECLARE_DO_FUN( do_redraw_page );
DECLARE_DO_FUN( do_refresh_page );
DECLARE_DO_FUN( do_pagelen );
DECLARE_DO_FUN( do_omenu );
DECLARE_DO_FUN( do_rmenu );
DECLARE_DO_FUN( do_mmenu );
DECLARE_DO_FUN( do_clear );
extern MENU_DATA room_page_a_data[];
extern MENU_DATA room_page_b_data[];
extern MENU_DATA room_page_c_data[];
extern MENU_DATA room_help_page_data[];
extern MENU_DATA mob_page_a_data[];
extern MENU_DATA mob_page_b_data[];
extern MENU_DATA mob_page_c_data[];
extern MENU_DATA mob_page_d_data[];
extern MENU_DATA mob_page_e_data[];
extern MENU_DATA mob_page_f_data[];
extern MENU_DATA mob_help_page_data[];
extern MENU_DATA obj_page_a_data[];
extern MENU_DATA obj_page_b_data[];
extern MENU_DATA obj_page_c_data[];
extern MENU_DATA obj_page_d_data[];
extern MENU_DATA obj_page_e_data[];
extern MENU_DATA obj_help_page_data[];
extern MENU_DATA control_page_a_data[];
extern MENU_DATA control_help_page_data[];
extern const char room_page_a[];
extern const char room_page_b[];
extern const char room_page_c[];
extern const char room_help_page[];
extern const char obj_page_a[];
extern const char obj_page_b[];
extern const char obj_page_c[];
extern const char obj_page_d[];
extern const char obj_page_e[];
extern const char obj_help_page[];
extern const char mob_page_a[];
extern const char mob_page_b[];
extern const char mob_page_c[];
extern const char mob_page_d[];
extern const char mob_page_e[];
extern const char mob_page_f[];
extern const char mob_help_page[];
extern const char * npc_sex[3];
extern const char * ris_strings[];
extern const char control_page_a[];
extern const char control_help_page[];
#define SH_INT 1
#define INT 2
#define CHAR 3
#define STRING 4
#define SPECIAL 5
#define NO_PAGE 0
#define MOB_PAGE_A 1
#define MOB_PAGE_B 2
#define MOB_PAGE_C 3
#define MOB_PAGE_D 4
#define MOB_PAGE_E 5
#define MOB_PAGE_F 17
#define MOB_HELP_PAGE 14
#define ROOM_PAGE_A 6
#define ROOM_PAGE_B 7
#define ROOM_PAGE_C 8
#define ROOM_HELP_PAGE 15
#define OBJ_PAGE_A 9
#define OBJ_PAGE_B 10
#define OBJ_PAGE_C 11
#define OBJ_PAGE_D 12
#define OBJ_PAGE_E 13
#define OBJ_HELP_PAGE 16
#define CONTROL_PAGE_A 18
#define CONTROL_HELP_PAGE 19
#define NO_TYPE 0
#define MOB_TYPE 1
#define OBJ_TYPE 2
#define ROOM_TYPE 3
#define CONTROL_TYPE 4
#define SUB_NORTH DIR_NORTH
#define SUB_EAST DIR_EAST
#define SUB_SOUTH DIR_SOUTH
#define SUB_WEST DIR_WEST
#define SUB_UP DIR_UP
#define SUB_DOWN DIR_DOWN
#define SUB_NE DIR_NORTHEAST
#define SUB_NW DIR_NORTHWEST
#define SUB_SE DIR_SOUTHEAST
#define SUB_SW DIR_SOUTHWEST
/*
* defines for use with this get_affect function
*/
#define RIS_000 BV00
#define RIS_R00 BV01
#define RIS_0I0 BV02
#define RIS_RI0 BV03
#define RIS_00S BV04
#define RIS_R0S BV05
#define RIS_0IS BV06
#define RIS_RIS BV07
#define GA_AFFECTED BV09
#define GA_RESISTANT BV10
#define GA_IMMUNE BV11
#define GA_SUSCEPTIBLE BV12
#define GA_RIS BV30
/*
* Map Structures
*/
DECLARE_DO_FUN( do_mapout );
DECLARE_DO_FUN( do_lookmap );
struct map_data /* contains per-room data */
{
int vnum; /* which map this room belongs to */
int x; /* horizontal coordinate */
int y; /* vertical coordinate */
char entry; /* code that shows up on map */
};
struct map_index_data
{
MAP_INDEX_DATA *next;
int vnum; /* vnum of the map */
int map_of_vnums[49][81]; /* room vnums aranged as a map */
};
MAP_INDEX_DATA *get_map_index(int vnum);
void init_maps();
/*
* mudprograms stuff
*/
extern CHAR_DATA *supermob;
void oprog_speech_trigger( char *txt, CHAR_DATA *ch );
void oprog_random_trigger( OBJ_DATA *obj );
void oprog_wear_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
bool oprog_use_trigger( CHAR_DATA *ch, OBJ_DATA *obj,
CHAR_DATA *vict, OBJ_DATA *targ, void *vo );
void oprog_remove_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_sac_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_damage_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_repair_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_drop_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
//void oprog_zap_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
char *oprog_type_to_name( int type );
/*
* MUD_PROGS START HERE
* (object stuff)
*/
int rprog_custom_trigger(char *command, char *argument, CHAR_DATA *ch);
int mprog_custom_trigger(char *command, char *argument, CHAR_DATA *ch);
int oprog_custom_trigger(char *command, char *argument, CHAR_DATA *ch);
void oprog_greet_trigger( CHAR_DATA *ch );
void oprog_speech_trigger( char *txt, CHAR_DATA *ch );
void oprog_random_trigger( OBJ_DATA *obj );
void oprog_random_trigger( OBJ_DATA *obj );
void oprog_remove_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_sac_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_get_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_damage_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_repair_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_drop_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_examine_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
//void oprog_zap_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_pull_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
void oprog_push_trigger( CHAR_DATA *ch, OBJ_DATA *obj );
/* mud prog defines */
#define ERROR_PROG -1
#define IN_FILE_PROG 0
#define ACT_PROG BV00
#define SPEECH_PROG BV01
#define RAND_PROG BV02
#define FIGHT_PROG BV03
#define RFIGHT_PROG BV03
#define DEATH_PROG BV04
#define RDEATH_PROG BV04
#define HITPRCNT_PROG BV05
#define ENTRY_PROG BV06
#define ENTER_PROG BV06
#define GREET_PROG BV07
#define RGREET_PROG BV07
#define OGREET_PROG BV07
#define ALL_GREET_PROG BV08
#define GIVE_PROG BV09
#define BRIBE_PROG BV10
#define HOUR_PROG BV11
#define TIME_PROG BV12
#define WEAR_PROG BV13
#define REMOVE_PROG BV14
#define SAC_PROG BV15
#define LOOK_PROG BV16
#define EXA_PROG BV17
#define CUSTOM_PROG BV18
#define GET_PROG BV19
#define DROP_PROG BV20
#define DAMAGE_PROG BV21
#define REPAIR_PROG BV22
#define RANDIW_PROG BV23
#define SPEECHIW_PROG BV24
#define PULL_PROG BV25
#define PUSH_PROG BV26
#define SLEEP_PROG BV27
#define REST_PROG BV28
#define LEAVE_PROG BV29
#define SCRIPT_PROG BV30
#define USE_PROG BV31
void rprog_leave_trigger( CHAR_DATA *ch );
void rprog_enter_trigger( CHAR_DATA *ch );
void rprog_sleep_trigger( CHAR_DATA *ch );
void rprog_rest_trigger( CHAR_DATA *ch );
void rprog_rfight_trigger( CHAR_DATA *ch );
void rprog_death_trigger( CHAR_DATA *killer, CHAR_DATA *ch );
void rprog_speech_trigger( char *txt, CHAR_DATA *ch );
void rprog_random_trigger( CHAR_DATA *ch );
void rprog_time_trigger( CHAR_DATA *ch );
void rprog_hour_trigger( CHAR_DATA *ch );
char *rprog_type_to_name( int type );
#define OPROG_ACT_TRIGGER
#ifdef OPROG_ACT_TRIGGER
void oprog_act_trigger( char *buf, OBJ_DATA *mobj, CHAR_DATA *ch,
OBJ_DATA *obj, void *vo );
#endif
#define RPROG_ACT_TRIGGER
#ifdef RPROG_ACT_TRIGGER
void rprog_act_trigger( char *buf, ROOM_INDEX_DATA *room, CHAR_DATA *ch,
OBJ_DATA *obj, void *vo );
#endif
#define send_to_char send_to_char_color
#define send_to_pager send_to_pager_color
#define GET_BETTED_ON(ch) ((ch)->betted_on)
#define GET_BET_AMT(ch) ((ch)->bet_amt)
#define GET_PAZAAK_BETTED_ON(ch) ((ch)->pazaak_betted_on)
#define GET_PAZAAK_BET_AMT(ch) ((ch)->pazaak_bet_amt)
#define IN_PAZAAK(ch) (IS_SET((ch)->in_room->room_flags2, ROOM_PAZAAK) )
#define IN_ARENA(ch) (IS_SET((ch)->in_room->room_flags2, ROOM_ARENA))