/*************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * Envy Diku Mud improvements copyright (C) 1994 by Michael Quan, David * * Love, Guilherme 'Willie' Arnold, and Mitchell Tse. * * * * In order to use any part of this Envy Diku Mud, you must comply with * * the original Diku license in 'license.doc', the Merc license in * * 'license.txt', as well as the Envy license in 'license.nvy'. * * In particular, you may not remove either of these copyright notices. * * * * Much time and thought has gone into this software and you are * * benefitting. We hope that you share your changes too. What goes * * around, comes around. * ***************************************************************************/ /*$Id: merc.h,v 1.140 2005/04/11 03:25:02 tyrion Exp $*/ // Windows port by Ahsile - mcarpent@zenwerx.com //#define RUN_AS_WIN32SERVICE /* Only Uncomment for Windows */ #include "colors.h" /* Include the ansi color routines. */ #include "config.h" /* Configuration / options */ /* * 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 ) int fun( ) #define DECLARE_SKILL_FUN( fun ) int fun( ) #define DECLARE_GAME_FUN( fun ) void 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 #define DECLARE_SKILL_FUN( fun ) SKILL_FUN fun #define DECLARE_GAME_FUN( fun ) GAME_FUN fun #endif /* * 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( _AIX ) #if !defined( const ) #define const #endif typedef int bool; #define unix #else typedef unsigned char bool; #endif #include <stdlib.h> void ___exit( int arg ); #ifdef RUN_AS_WIN32SERVICE // Ahsile FILE* __stderr; // Ahsile #define bcopy(p0,p1,len) memcpy((p0),(p1),(len)) // Ahsile #define bzero(p0,len) memset((p0), 0x0, (len)) // Ahsile #endif #define alloc_mem malloc /* * Structure types. */ typedef struct affect_data AFFECT_DATA; typedef struct area_data AREA_DATA; typedef struct new_clan_data CLAN_DATA; typedef struct new_religion_data RELIGION_DATA; typedef struct ban_data BAN_DATA; typedef struct userl_data USERL_DATA; typedef struct gskill_data GSPELL_DATA; typedef struct char_data CHAR_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 kill_data KILL_DATA; typedef struct mob_index_data MOB_INDEX_DATA; typedef struct note_data NOTE_DATA; typedef struct obj_data OBJ_DATA; typedef struct obj_index_data OBJ_INDEX_DATA; typedef struct sac_data SAC_DATA; typedef struct pc_data PC_DATA; typedef struct reset_data RESET_DATA; typedef struct room_index_data ROOM_INDEX_DATA; typedef struct shop_data SHOP_DATA; typedef struct time_info_data TIME_INFO_DATA; typedef struct weather_data WEATHER_DATA; typedef struct disabled_data DISABLED_DATA; typedef struct mob_prog_data MPROG_DATA; typedef struct mob_prog_act_list MPROG_ACT_LIST; typedef struct guild_data GUILD_DATA; /* XOR */ typedef struct alias_data ALIAS_DATA; /* Altrag */ typedef struct phobia_data PHOBIA_DATA; /* Altrag */ typedef struct trap_data TRAP_DATA; /* Altrag */ typedef struct dead_obj_data DEAD_OBJ_DATA; /* Manaux */ typedef struct dead_obj_list DEAD_OBJ_LIST; /* Manaux */ typedef struct pools POOLS; /* Ahsile */ typedef struct corrupt_area_list CORRUPT_AREA_LIST; /* Ahsile */ typedef struct social_type SOCIAL_DATA; /* Ahsile - Just for ease */ /* * Function types. */ typedef void DO_FUN args( ( CHAR_DATA *ch, char *argument ) ); typedef bool SPEC_FUN args( ( CHAR_DATA *ch ) ); typedef int SPELL_FUN args( ( int sn, int level, CHAR_DATA *ch, void *vo ) ); typedef int SKILL_FUN args( ( int sn, int level, CHAR_DATA *ch, void *vo ) ); typedef void GAME_FUN args( ( CHAR_DATA *ch, CHAR_DATA *croupier, int amount, int cheat, char *argument ) ); /* * String and memory management parameters. */ #define MAX_KEY_HASH 1024 #define MAX_STRING_LENGTH 4096 #define MAX_INPUT_LENGTH 400 #define OFFENDING_STRING "__mud_offending_string__" /* more memory stuff... needed for cleanup due to sloppy tracking - Ahsile */ struct pools { void* addr; POOLS* next; }; POOLS* pool_first; POOLS* pool_last; /* * DEBUG CODE FOR MEMORY */ #ifdef MEM_DEBUG char callee_name[MAX_STRING_LENGTH]; #define free_string( arg ) \ strcpy(callee_name, __FUNCTION__); \ f_string( ( arg ) ); #endif /* * Game parameters. * Increase the max'es if you add more of something. * Adjust the pulse numbers to suit yourself. */ #define MAX_CHUNKS 180 /* Used in ssm.c */ #define MAX_SKILL 485 #define MAX_GSPELL 8 #define MAX_CLASS 21 #define MAX_RACE 27 #define MAX_CLAN 21 /*max 20 clans + 1 for clan 0*/ #define MAX_RELIGION 8 /* max 7 + 1 for 0 */ #define MAX_LEVEL 116 /* 116 is not used */ #define MAX_LANGUAGE 27 #define MAX_EXPERIENCE 500000 /* max exp for a mortal */ #define MAX_ARMOR 750 /* max effective AC */ #define MAX_GROUP 8 /* Maximum group members */ #define MAX_ATTACKS 8 #define PKILL_RANGE 8 #define MAX_POISON_LEVEL 100 /* max poison level */ #define NUMBER_OF_DAYS_TO_RESET 30 /* Number of MUD days, not real days */ #define NUMBER_OF_DAYS_TO_REBOOT 360 /* Number of MUD days, not real days */ #define STUN_MAX 5 #define L_IMP MAX_LEVEL /* 116 UNUSED */ #define L_TLD ( L_IMP - 1 ) /* 115 */ #define L_KPR ( L_TLD - 1 ) /* 114 */ #define L_CON ( L_KPR - 1 ) /* 113 */ #define L_OVD ( L_CON - 1 ) /* 112 */ #define L_SEN ( L_OVD - 1 ) /* 111 */ #define L_ARC ( L_SEN - 1 ) /* 110 */ #define L_DIR ( L_ARC - 1 ) /* 109 */ #define L_IMM ( L_DIR - 1 ) /* 108 */ #define L_DEI ( L_IMM - 1 ) /* 107 */ #define L_APP ( L_DEI - 1 ) /* 106 */ #define LEVEL_IMMORTAL ( L_DEI - 1 ) #define LEVEL_DEMIGOD ( L_APP - 1 ) /* max mortal */ #define LEVEL_CHAMP ( LEVEL_DEMIGOD - 1 ) #define LEVEL_HERO3 ( LEVEL_CHAMP - 1) #define LEVEL_HERO2 ( LEVEL_HERO3 - 1) #define LEVEL_HERO1 ( LEVEL_HERO2 - 1) #define LEVEL_HERO ( LEVEL_HERO1 - 1) #define PULSE_PER_SECOND 4 #define PULSE_VIOLENCE ( 3 * PULSE_PER_SECOND ) #define PULSE_MOBILE ( 4 * PULSE_PER_SECOND ) #define PULSE_TICK ( 30 * PULSE_PER_SECOND ) #define PULSE_AREA ( 60 * PULSE_PER_SECOND ) #define PULSE_QUEST ( 60 * PULSE_PER_SECOND ) /* Save the database - OLC 1.1b */ #define PULSE_DB_DUMP (1800* PULSE_PER_SECOND ) /* 30 minutes */ /* * Due to a slow machine, we coded the SQL system to use memory tables * and only dump everything on a timed basis. Unfortunately we never * made a full conversion to a db system by only pulling data on demand. * Data is all stored in the db, and loaded at startup just like a * normal mud, but rather than loading from files we load from the * database. * - Ahsile - mcarpent@zenwerx.com */ #ifdef SQL_SYSTEM #define PULSE_DIRTY (300 * PULSE_PER_SECOND ) /* Save "dirty" characters */ #endif /* * Language stuff */ #define COMMON 0 #define HUMAN 1 #define DWARVISH 2 #define ELVISH 3 #define GNOMISH 4 #define DRAGON 5 #define DEMON 6 #define OGRE 7 #define DROW 8 #define ELDER 9 #define PIXIE 10 #define HOBBIT 11 #define MINOTAUR 12 #define LIZARD 13 #define HALFLING 14 #define FELINE 15 #define CANINE 16 #define ANGEL 17 #define ORCISH 18 #define MAGICK 19 #define SHADOW_SPEAK 20 #define SPIRITSPEAK 21 #define ENLIGHTENED 22 #define SATANIC 23 #define ANIMALSPEAK 24 #define BRETONNIAN 25 #define GARGISH 26 #define CLASS_MAGE 0 #define CLASS_CLERIC 1 #define CLASS_THIEF 2 #define CLASS_WARRIOR 3 #define CLASS_PSIONICIST 4 #define CLASS_DRUID 5 #define CLASS_RANGER 6 #define CLASS_PALADIN 7 #define CLASS_BARD 8 #define CLASS_VAMPIRE 9 #define CLASS_WEREWOLF 10 #define CLASS_ANTI_PALADIN 11 #define CLASS_ASSASSIN 12 #define CLASS_MONK 13 #define CLASS_BARBARIAN 14 #define CLASS_ILLUSIONIST 15 #define CLASS_NECROMANCER 16 #define CLASS_DEMONOLOGIST 17 #define CLASS_SHAMAN 18 #define CLASS_DARKPRIEST 19 #define CLASS_EMPTY2 20 #define MAX_SAC_TYPES 4 #define SAC_HP 0 #define SAC_GOLD 1 #define SAC_MOVE 2 #define SAC_MANA 3 /* * Religious quest paramters - Ahsiles */ #define ALIGN_EVIL -1 #define ALIGN_NEUTRAL 0 #define ALIGN_GOOD 1 /* Relgion area vnum lower AND upper */ #define REL_VNUM_LOWER 24601 #define REL_VNUM_UPPER 24900 /* * SQL Version by Ahsile - mcarpent@zenwerx.com */ #ifdef SQL_SYSTEM #define USER "dbuser" #define HOST "localhost" #define PASS "dbuser" #define DBNAME "mud" #endif /* * End Religions quest paramaters * More to be found in rel_quest.c */ /* * User list structure */ struct userl_data { USERL_DATA * next; char * name; int level; char * user; char * host; char * lastlogin; char * desc; int class; int multi; }; /* * Site ban structure. */ struct ban_data { BAN_DATA * next; char * name; char * user; }; /* * Drunk struct */ struct struckdrunk { int min_drunk_level; int number_of_rep; char *replacement[11]; }; /* * Dead Object vnum Range struct, for use in conjunction with player * updater to cleanly remove objects from players --Manaux */ struct dead_obj_data { int low_vnum; int high_vnum; DEAD_OBJ_DATA * left; DEAD_OBJ_DATA * right; }; struct dead_obj_list { /*hold the player update version that they are updating from. */ int update; DEAD_OBJ_DATA * head; DEAD_OBJ_LIST * next; }; /* Corrupt Area Struct - Ahsile*/ struct corrupt_area_list { int vnum; AREA_DATA* area; CORRUPT_AREA_LIST* next; }; /* * Disable struct */ struct disabled_data { DISABLED_DATA *next; /* pointer to the next one */ struct cmd_type const *command; /* pointer to the command struct */ char *disabled_by; /* name of disabler */ int dislevel; /* level of disabler */ int uptolevel; /* level of execution allowed */ }; bool MOBtrigger; #define ERROR_PROG -1 #define IN_FILE_PROG 0 #define ACT_PROG 1 #define SPEECH_PROG 2 #define RAND_PROG 4 #define FIGHT_PROG 8 #define DEATH_PROG 16 #define HITPRCNT_PROG 32 #define ENTRY_PROG 64 #define GREET_PROG 128 #define ALL_GREET_PROG 256 #define GIVE_PROG 512 #define BRIBE_PROG 1024 /* * Time and weather stuff. */ #define SUN_DARK 0 #define SUN_RISE 1 #define SUN_LIGHT 2 #define SUN_SET 3 #define SKY_CLOUDLESS 0 #define SKY_CLOUDY 1 #define SKY_RAINING 2 #define SKY_LIGHTNING 3 struct time_info_data { int hour; int day; int month; int year; int total; }; struct weather_data { int mmhg; int change; int sky; int sunlight; }; /* * Connected state for a channel. */ #define CON_PLAYING 0 #define CON_GET_NAME 1 #define CON_GET_OLD_PASSWORD 2 #define CON_CONFIRM_NEW_NAME 3 #define CON_GET_NEW_PASSWORD 4 #define CON_CONFIRM_NEW_PASSWORD 5 #define CON_DISPLAY_RACE 6 #define CON_GET_NEW_RACE 7 #define CON_CONFIRM_RACE 8 #define CON_GET_NEW_SEX 9 #define CON_DISPLAY_CLASS 10 #define CON_GET_NEW_CLASS 11 #define CON_CONFIRM_CLASS 12 #define CON_READ_MOTD 13 #define CON_GET_PKILL 14 #define CON_CONFIRM_PKILL 15 #define CON_DISPLAY_MULTICLASS 16 #define CON_GET_MULTICLASS 17 #define CON_CONFIRM_MULTICLASS 18 #define CON_CHOICE_MULTICLASS 20 #define CON_DISPLAY_RELIGION 21 #define CON_CHOSE_RELIGION 22 #define CON_CONFIRM_RELIGION 23 #define CON_DISPLAY_ATTRIBUTES 24 #define CON_CHOSE_ATTRIBUTES 25 #define CON_CONFIRM_ATTRIBUTES 26 #define CON_GET_ANSI 105 #define CON_AUTHORIZE_NAME 100 #define CON_AUTHORIZE_NAME1 101 #define CON_AUTHORIZE_NAME2 102 #define CON_AUTHORIZE_NAME3 103 #define CON_AUTHORIZE_LOGOUT 104 #define CON_CHATTING 200 /* * Maximum number of damage modifier types for res/vuln */ #define DAMCLASS_MAX 21 /* * Values for type in const2.c */ #define TYPE_SPELL 1 #define TYPE_SKILL 2 #define TYPE_NONE 0 /* TYPE_NONE is for non-usable skills, like parry, enhanced hit, etc*/ /* * Race structures */ struct race_type { char * race_name; char * race_full; int race_lang; int race_abilities; int size; int str_mod; int int_mod; int wis_mod; int dex_mod; int con_mod; int not_class; char * dmg_message; char * hate; char * default_weap; }; /* Race ability bits */ #define RACE_NO_ABILITIES 0 #define RACE_PC_AVAIL 1 #define RACE_WATERBREATH 2 #define RACE_FLY 4 #define RACE_SWIM 8 #define RACE_WATERWALK 16 #define RACE_PASSDOOR 32 #define RACE_INFRAVISION 64 #define RACE_DETECT_ALIGN 128 #define RACE_DETECT_INVIS 256 #define RACE_DETECT_HIDDEN 512 #define RACE_PROTECTION 1024 #define RACE_SANCT 2048 #define RACE_WEAPON_WIELD 4096 #define RACE_DETECT_HIDDEN_EXIT 8192 /* * Descriptor (channel) structure. */ struct descriptor_data { DESCRIPTOR_DATA * next; DESCRIPTOR_DATA * snoop_by; CHAR_DATA * character; CHAR_DATA * original; char * host; char * user; unsigned int descriptor; char abuf [ 100 ]; int atimes; int auth_fd; int auth_state; int auth_inc; int connected; bool fcommand; char inbuf [ MAX_INPUT_LENGTH*4 ]; char incomm [ MAX_INPUT_LENGTH ]; char inlast [ MAX_INPUT_LENGTH ]; int repeat; char * showstr_head; char * showstr_point; char * outbuf; int outsize; int outtop; void * pEdit; /* OLC */ void * inEdit; /* Altrag, for nested editors */ char ** pString; /* OLC */ int editor; /* OLC */ int editin; /* Altrag, again for nesting */ bool ansi; }; /* * Attribute bonus structures. */ struct str_app_type { int tohit; int todam; int carry; int wield; }; struct int_app_type { int learn; int bonus; }; struct wis_app_type { int practice; }; struct dex_app_type { int defensive; int bonus; }; struct con_app_type { int hitp; int shock; }; /* * TO types for act. */ #define TO_ROOM 0 #define TO_NOTVICT 1 #define TO_VICT 2 #define TO_CHAR 3 #define TO_COMBAT 4 /* * Help table types. */ struct help_data { HELP_DATA * next; AREA_DATA * area; /* OLC 1.1b */ int level; char * keyword; char * text; }; /* * Shop types. */ #define MAX_TRADE 5 struct shop_data { SHOP_DATA * next; /* Next shop in list */ int keeper; /* Vnum of shop keeper mob */ int buy_type [ MAX_TRADE ]; /* Item types shop will buy */ int profit_buy; /* Cost multiplier for buying */ int profit_sell; /* Cost multiplier for selling */ int open_hour; /* First opening hour */ int close_hour; /* First closing hour */ }; /* * Per-class stuff. */ struct class_type { char who_name [ 4 ]; /* Three-letter name for 'who' */ char who_long [ 15 ]; /* Long name of Class */ int attr_prime; /* Prime attribute */ int weapon; /* First weapon */ int guild; /* Vnum of guild room */ int skill_adept; /* Maximum skill level */ int thac0_00; /* Thac0 for level 0 */ int thac0_97; /* Thac0 for level 47 */ int hp_min; /* Min hp gained on leveling */ int hp_max; /* Max hp gained on leveling */ bool fMana; /* Class gains mana on level */ int no_shields; /* Number of Shields Allowed */ }; struct clan_type { char clan_name [ 15 ]; char clan_deity [ 15 ]; char lev1 [ 20 ]; char lev2 [ 20 ]; char lev3 [ 20 ]; char lev4 [ 20 ]; char lev5 [ 20 ]; int cloc; int clvnum1; int clvnum2; int clvnum3; int sac_type; }; /* * Data structure for notes. */ struct note_data { NOTE_DATA * next; char * sender; char * date; char * to_list; char * subject; char * text; time_t date_stamp; bool protected; int on_board; }; /* * An affect. */ struct affect_data { AFFECT_DATA * next; int type; int level; int duration; int location; int modifier; int bitvector; char count; bool deleted; }; /* * A kill structure (indexed by level). */ struct kill_data { int number; int killed; }; /* RT ASCII conversions -- used so we can have letters in this file */ #define A 1 #define B 2 #define C 4 #define D 8 #define E 16 #define F 32 #define G 64 #define H 128 #define I 256 #define J 512 #define K 1024 #define L 2048 #define M 4096 #define N 8192 #define O 16384 #define P 32768 #define Q 65536 #define R 131072 #define S 262144 #define T 524288 #define U 1048576 #define V 2097152 #define W 4194304 #define X 8388608 #define Y 16777216 #define Z 33554432 #define aa 67108864 /* doubled due to conflicts */ #define bb 134217728 #define cc 268435456 #define dd 536870912 #define ee 1073741824 /*************************************************************************** * * * VALUES OF INTEREST TO AREA BUILDERS * * (Start of section ... start here) * * * ***************************************************************************/ /* * Well known mob virtual numbers. * Defined in #MOBILES. */ #define MOB_VNUM_CITYGUARD 127 #define MOB_VNUM_DEMON1 4 #define MOB_VNUM_DEMON2 4 #define MOB_VNUM_DOGGY 25036 /*#define MOB_VNUM_ULT 3160 #define MOB_VNUM_SECRETARY 3142 #define MOB_VNUM_MIDGAARD_MAYOR 3143 */ #define MOB_VNUM_AIR_ELEMENTAL 50 #define MOB_VNUM_EARTH_ELEMENTAL 51 #define MOB_VNUM_WATER_ELEMENTAL 52 #define MOB_VNUM_FIRE_ELEMENTAL 53 #define MOB_VNUM_DUST_ELEMENTAL 54 #define MOB_VNUM_ICE_ELEMENTAL 55 #define MOB_VNUM_DRAGON 56 #define MOB_VNUM_GREATER_DEMON 13 #define MOB_VNUM_WOLF 14 #define MOB_VNUM_HAWK 15 #define MOB_VNUM_TIGER 16 #define MOB_VNUM_UNDEAD 11905 /* XOR */ #define MOB_VNUM_DEMON 5 #define MOB_VNUM_INSECTS 6 #define MOB_VNUM_WOLFS 8 #define MOB_VNUM_SUPERMOB 7 /*ELVIS*/ #define MOB_VNUM_ANGEL 9 #define MOB_VNUM_SHADOW 10 #define MOB_VNUM_BEAST 11 #define MOB_VNUM_TRENT 12 /* BILL GATES */ #define GUILD_NORMAL 0 #define GUILD_PKILL (A) #define GUILD_CHAOS (B) /* * ACT bits for mobs. * Used in #MOBILES. */ #define ACT_IS_NPC 1 /* Auto set for mobs */ #define ACT_SENTINEL 2 /* Stays in one room */ #define ACT_SCAVENGER 4 /* Picks up objects */ #define ACT_IS_HEALER 8 /* Healers by MANIAC */ #define ACT_AGGRESSIVE 32 /* Attacks PC's */ #define ACT_STAY_AREA 64 /* Won't leave area */ #define ACT_WIMPY 128 /* Flees when hurt */ #define ACT_PET 256 /* Auto set for pets */ #define ACT_TRAIN 512 /* Can train PC's */ #define ACT_PRACTICE 1024 /* Can practice PC's */ #define ACT_GAMBLE 2048 /* Runs a gambling game */ #define ACT_PROTOTYPE 4096 /* Prototype flag */ #define ACT_UNDEAD 8192 /* Can be turned */ #define ACT_TRACK 16384 /* Track players */ #define ACT_MOVED 32768 /* Dont ever set! */ #define ACT_TEACHER 65536 /* Teacher of languages */ #define ACT_BANKER 131072 /* Is a banker */ #define ACT_CLASSMASTER 262144 /* Is classmaster */ #define ACT_NO_EXP 524288 /* Does not give xp */ #define ACT_VEHICLE 1048576 /* Is a vehicle */ #define ACT_IS_CLAN_HEALER 2097152 /* Is a clan healer */ #define ACT_NO_CORPSE 4194304 /* Mob leaves no corpse */ #define ACT_IS_DEITY 8388608 /* Is a Religious Deity */ #define ACT_RELBOSS 16777216 /* Religious level boss */ /* * Bits for 'affected_by'. * Used in #MOBILES. */ #define AFF_BLIND 1 #define AFF_INVISIBLE 2 #define AFF_DETECT_EVIL 4 #define AFF_DETECT_INVIS 8 #define AFF_DETECT_MAGIC 16 #define AFF_DETECT_HIDDEN 32 #define AFF_HASTE 64 #define AFF_SANCTUARY 128 #define AFF_FAERIE_FIRE 256 #define AFF_INFRARED 512 #define AFF_CURSE 1024 #define AFF_FLAMING 2048 #define AFF_POISON 4096 #define AFF_PROTECT 8192 #define AFF_INERTIAL 16384 /* Used */ #define AFF_SNEAK 32768 #define AFF_HIDE 65536 #define AFF_SLEEP 131072 #define AFF_CHARM 262144 #define AFF_FLYING 524288 #define AFF_PASS_DOOR 1048576 #define AFF_STUN 2097152 #define AFF_SUMMONED 4194304 #define AFF_MUTE 8388608 #define AFF_PEACE 16777216 #define AFF_FIRESHIELD 33554432 #define AFF_SHOCKSHIELD 67108864 #define AFF_ICESHIELD 134217728 #define AFF_CHAOS 268435456 #define AFF_SCRY 536870912 #define AFF_ANTI_FLEE 1073741824 #define AFF_POLYMORPH 1 #define CODER 2 #define AFF_NOASTRAL 4 #define AFF_DOOMSHIELD 8 #define AFF_TRUESIGHT 16 #define AFF_BLADE 32 #define AFF_DETECT_GOOD 64 #define AFF_PROTECTION_GOOD 128 #define AFF_BERSERK 256 #define AFF_UNHOLY_STRENGTH 512 #define AFF_CONFUSED 1024 #define AFF_FUMBLE 2048 #define AFF_DANCING 4096 #define AFF_IMAGE 8192 #define AFF_PHASED 16384 #define AFF_GOLDEN_ARMOR 32768 #define AFF_GHOST_SHIELD 65536 #define AFF_CURSE_NATURE 131072 #define AFF_MIST 262144 #define AFF_SHADOW_IMAGE 524288 #define AFF_WEAPONMASTER 1048576 #define AFF_IMPROVED_INVIS 2097152 #define AFF_BLINDFOLD 4194304 #define AFF_SLIT 8388608 #define AFF_THICK_SKIN Y #define AFF_MALIGNIFY Z #define AFF_CLOAKING aa #define AFF_SHADOW_PLANE bb #define AFF_WOLFED cc #define AFF_HOLD dd #define AFF_CHANGE_SEX ee #define AFF_WATERWALK 1 #define AFF_GILLS 2 #define AFF_VAMP_BITE 4 #define AFF_GHOUL 8 #define AFF_CHALLENGER 16 #define AFF_CHALLENGED 32 #define AFF_RAGE 64 #define AFF_BLOODTHIRSTY 128 #define AFF_COFIRE 256 #define AFF_TORTURE 512 #define AFF_AGE 1024 #define AFF_SATANIC_INFERNO 2048 #define AFF_PESTILENCE 4096 #define AFF_AURA_ANTI_MAGIC 8192 #define AFF_HOLY_PROTECTION 16384 #define AFF_IMPROVED_HIDE 32768 #define AFF_STEALTH 65536 #define AFF_BLOODSHIELD 131072 #define AFF_BEND_LIGHT 262144 #define AFF_CLOUD_OF_HEALING 524288 #define AFF_TALE_OF_TERROR 1048576 #define AFF_POWER_LEAK 2097152 #define AFF_MANA_SHIELD 4194304 #define AFF_WAR_CHANT 8388608 #define AFF_NAGAROMS_CURSE Y #define AFF_PRAYER Z #define AFF_DEADLY_POISON aa #define AFF_RANDOMSHIELD bb #define AFF_PRIMALSCREAM cc #define AFF_DEMONSHIELD dd #define AFF_ACIDSHIELD ee #define AFF_IMMORTAL 1 #define AFF_NO_SUMMON 2 #define AFF_GOLDEN_SANCTUARY 4 #define AFF_MOUNTABLE 8 #define AFF_BIOFEEDBACK 16 #define AFF_EARTHSHIELD 32 #define AFF_LEAF_SHIELD 64 #define AFF_LUCK_SHIELD 128 #define AFF_TONGUES 256 #define AFF_LIQUID_SKIN 512 #define AFF_ANGELIC_AURA 1024 #define AFF_ETHEREAL_WOLF 2048 #define AFF_DECEPTION 4096 #define AFF_ETHEREAL_SNAKE 8192 #define AFF_BURROW 16384 #define AFF_THIEVESCANT 32768 #define AFF_NEWBIE_SLAYER 65536 #define AFF_FORCE_OF_NATURE 131072 #define AFF_ESSENCE_OF_GAIA 262144 #define RECALL_RELIGION_DEFAULT 25000 #define RECALL_RELIGION_ONE 25000 #define RECALL_RELIGION_TWO 25000 #define RECALL_RELIGION_THREE 25000 #define RECALL_RELIGION_FOUR 25000 #define RECALL_RELIGION_FIVE 25000 #define RECALL_RELIGION_SIX 25000 #define RECALL_RELIGION_SEVEN 25000 /* Bits for religions - powers and weaknesses */ /* damage classes */ #define DAM_NONE 0 #define DAM_BASH 1 #define DAM_PIERCE 2 #define DAM_SLASH 3 #define DAM_FIRE 4 #define DAM_COLD 5 #define DAM_LIGHTNING 6 #define DAM_ACID 7 #define DAM_POISON 8 #define DAM_NEGATIVE 9 #define DAM_HOLY 10 #define DAM_ENERGY 11 #define DAM_MENTAL 12 #define DAM_DISEASE 13 #define DAM_DROWNING 14 #define DAM_LIGHT 15 #define DAM_OTHER 16 #define DAM_HARM 17 #define DAM_CHARM 18 #define DAM_SOUND 19 /* return values for check_imm */ #define IS_NORMAL 0 #define IS_IMMUNE 1 #define IS_RESISTANT 2 #define IS_VULNERABLE 3 /* values for dispel_bit */ #define DISPEL_NO 0 #define DISPEL_YES 1 /* Is it a shield */ #define SHIELD_NO 0 #define SHIELD_YES 1 /* values for cancel_bit */ #define CANCEL_NO 0 #define CANCEL_YES 1 /* values for skill bit */ #define SKPELL_SPELL 1 #define SKPELL_SKILL 0 /* values for spell_damage_type */ #define DAMCLASS_NULL 0 #define DAMCLASS_ACID 1 #define DAMCLASS_HOLY 2 #define DAMCLASS_MAGIC 4 #define DAMCLASS_FIRE 8 #define DAMCLASS_ENERGY 16 #define DAMCLASS_WIND 32 #define DAMCLASS_WATER 64 #define DAMCLASS_ILLUSION 128 #define DAMCLASS_DISPEL 256 #define DAMCLASS_EARTH 512 #define DAMCLASS_PSYCHIC 1024 #define DAMCLASS_POISON 2048 #define DAMCLASS_BREATH 4096 #define DAMCLASS_SUMMON 8192 #define DAMCLASS_PHYSICAL 16384 #define DAMCLASS_EXPLOSIVE 32768 #define DAMCLASS_SONG 65536 #define DAMCLASS_NAGAROM 131072 #define DAMCLASS_UNHOLY 262144 #define DAMCLASS_CLAN 524288 /* IMM bits for mobs */ #define IMM_SUMMON (A) #define IMM_CHARM (B) #define IMM_MAGIC (C) #define IMM_WEAPON (D) #define IMM_BASH (E) #define IMM_PIERCE (F) #define IMM_SLASH (G) #define IMM_FIRE (H) #define IMM_COLD (I) #define IMM_LIGHTNING (J) #define IMM_ACID (K) #define IMM_POISON (L) #define IMM_NEGATIVE (M) #define IMM_HOLY (N) #define IMM_ENERGY (O) #define IMM_MENTAL (P) #define IMM_DISEASE (Q) #define IMM_DROWNING (R) #define IMM_LIGHT (S) #define IMM_SOUND (T) #define IMM_WOOD (X) #define IMM_SILVER (Y) #define IMM_IRON (Z) /* RES bits for mobs */ #define RES_SUMMON (A) #define RES_CHARM (B) #define RES_MAGIC (C) #define RES_WEAPON (D) #define RES_BASH (E) #define RES_PIERCE (F) #define RES_SLASH (G) #define RES_FIRE (H) #define RES_COLD (I) #define RES_LIGHTNING (J) #define RES_ACID (K) #define RES_POISON (L) #define RES_NEGATIVE (M) #define RES_HOLY (N) #define RES_ENERGY (O) #define RES_MENTAL (P) #define RES_DISEASE (Q) #define RES_DROWNING (R) #define RES_LIGHT (S) #define RES_SOUND (T) #define RES_WOOD (X) #define RES_SILVER (Y) #define RES_IRON (Z) /* VULN bits for mobs */ #define VULN_SUMMON (A) #define VULN_CHARM (B) #define VULN_MAGIC (C) #define VULN_WEAPON (D) #define VULN_BASH (E) #define VULN_PIERCE (F) #define VULN_SLASH (G) #define VULN_FIRE (H) #define VULN_COLD (I) #define VULN_LIGHTNING (J) #define VULN_ACID (K) #define VULN_POISON (L) #define VULN_NEGATIVE (M) #define VULN_HOLY (N) #define VULN_ENERGY (O) #define VULN_MENTAL (P) #define VULN_DISEASE (Q) #define VULN_DROWNING (R) #define VULN_LIGHT (S) #define VULN_SOUND (T) #define VULN_WOOD (X) #define VULN_SILVER (Y) #define VULN_IRON (Z) /* weapon class */ #define WEAPON_EXOTIC 0 #define WEAPON_SWORD 1 #define WEAPON_DAGGER 2 #define WEAPON_SPEAR 3 #define WEAPON_MACE 4 #define WEAPON_AXE 5 #define WEAPON_FLAIL 6 #define WEAPON_WHIP 7 #define WEAPON_POLEARM 8 /* weapon types */ #define WEAPON_FLAMING (A) #define WEAPON_FROST (B) #define WEAPON_VAMPIRIC (C) #define WEAPON_SHARP (D) #define WEAPON_VORPAL (E) #define WEAPON_TWO_HANDED (F) #define WEAPON_SHOCKING (G) #define WEAPON_POISON (H) #define WEAPON_DISPEL (I) /* gate flags */ #define GATE_NORMAL_EXIT (A) #define GATE_NOCURSE (B) #define GATE_GOWITH (C) #define GATE_BUGGY (D) #define GATE_RANDOM (E) /* * Types of attacks. * Must be non-overlapping with spell/skill types, * but may be arbitrary beyond that. */ #define TYPE_UNDEFINED -1 #define TYPE_HIT 1000 /* * Sex. * Used in #MOBILES. */ #define SEX_NEUTRAL 0 #define SEX_MALE 1 #define SEX_FEMALE 2 /* * Crafting defines. * Whether or not spells can be added to * player made items. */ #define CRAFT_NONE 0 #define CRAFT_POTION 1 #define CRAFT_SCROLL 2 #define CRAFT_ARMOR 4 #define CRAFT_WEAPON 8 /* * Tanning Defines * Used for skinning/etc */ #define TAN_NONE 0 #define TAN_NPC 1 #define TAN_PC 2 /* pk? imm? */ #define SKIN_DESTROYED 0 #define SKIN_HORRIBLE 1 #define SKIN_LOUSY 2 #define SKIN_PASSABLE 3 #define SKIN_UNEXCEPTIONAL 4 #define SKIN_DECENT 5 #define SKIN_GOOD 6 #define SKIN_EXCELLENT 7 #define SKIN_SUPERIOR 8 #define SKIN_PERFECT 9 /* Ammo defines */ #define AMMO_NONE 0 #define AMMO_ARROW 1 #define AMMO_BOLT 2 #define AMMO_BULLET 3 /* Shooting defines */ #define SHOOT_UNKNOWN 0 #define SHOOT_DOOR 1 #define SHOOT_DIST 2 #define SHOOT_FOUND 3 #define SHOOT_HERE 4 /* * Skill defines. * Possibly for calculating level based damages for lower level skills */ /* #define SKILL_ACTUAL_DAMAGE > 0 */ #define SKPELL_ZERO_DAMAGE 0 #define SKPELL_NO_DAMAGE -1 #define SKPELL_MISSED -2 #define SKPELL_BOTCHED -3 /* * Well known object virtual numbers. * Defined in #OBJECTS. */ #define OBJ_VNUM_MONEY_ONE 2 #define OBJ_VNUM_MONEY_SOME 3 #define OBJ_VNUM_BLADE_DOOM 5 #define OBJ_VNUM_SPIRITUAL_HAMMER 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_FINAL_TURD 16 #define OBJ_VNUM_PORTAL 17 #define OBJ_VNUM_DOLL 18 #define OBJ_VNUM_BERRY 19 #define OBJ_VNUM_MUSHROOM 20 #define OBJ_VNUM_LIGHT_BALL 21 #define OBJ_VNUM_SPRING 22 #define OBJ_VNUM_VINE_PORTAL 23 #define OBJ_VNUM_FORAGE_FOOD 24 #define OBJ_VNUM_SPRING_DIVINING 25 #define OBJ_VNUM_CORPSE_VEHICLE 26 #define OBJ_VNUM_TO_FORGE_A 27 #define OBJ_VNUM_TO_FORGE_W 28 #define OBJ_VNUM_SOULGEM 40 #define OBJ_VNUM_VORTEX 41 #define OBJ_VNUM_VORTEX_NULL 42 #define OBJ_VNUM_RUNE 44 #define OBJ_VNUM_LEATHER 62 #define OBJ_VNUM_TANNED 63 #define OBJ_VNUM_NEEDLE 64 #define OBJ_VNUM_PARCHMENT 25050 #define OBJ_VNUM_QUILL 25051 #define OBJ_VNUM_FLASK 25052 #define OBJ_VNUM_CAULDRON 25053 #define OBJ_VNUM_MFIRE 25054 #define OBJ_VNUM_MINK 25055 #define OBJ_VNUM_PESTLE 25070 #define OBJ_VNUM_SCHOOL_MACE 148 #define OBJ_VNUM_SCHOOL_DAGGER 138 #define OBJ_VNUM_SCHOOL_SWORD 147 #define OBJ_VNUM_SCHOOL_VEST 136 #define OBJ_VNUM_SCHOOL_SHIELD 146 #define OBJ_VNUM_SCHOOL_BANNER 144 #define OBJ_VNUM_SCHOOL_CLUB 145 /* 15001 - 15007 */ /*#define OBJ_VNUM_BLACK_POWDER 8903 #define OBJ_VNUM_FLAMEBLADE 8920 */ /* Was 60 and 61 */ #define OBJ_VNUM_DIAMOND_RING 60 /* Wedding rings for Marriage code */ #define OBJ_VNUM_WEDDING_BAND 61 /* Canth (canth@xs4all.nl) of Mythran */ /* * Item types. * Used in #OBJECTS. */ #define ITEM_LIGHT 1 #define ITEM_SCROLL 2 #define ITEM_WAND 3 #define ITEM_STAFF 4 #define ITEM_WEAPON 5 #define ITEM_TREASURE 8 #define ITEM_ARMOR 9 #define ITEM_POTION 10 #define ITEM_NOTEBOARD 11 #define ITEM_FURNITURE 12 #define ITEM_TRASH 13 #define ITEM_CONTAINER 15 #define ITEM_DRINK_CON 17 #define ITEM_KEY 18 #define ITEM_FOOD 19 #define ITEM_MONEY 20 #define ITEM_BOAT 22 #define ITEM_CORPSE_NPC 23 #define ITEM_CORPSE_PC 24 #define ITEM_FOUNTAIN 25 #define ITEM_PILL 26 #define ITEM_LENSE 27 #define ITEM_BLOOD 28 #define ITEM_PORTAL 29 #define ITEM_VODOO 30 #define ITEM_BERRY 31 #define ITEM_GUN 32 #define ITEM_RUNE 33 #define ITEM_WRECK 34 #define ITEM_IMPLANTED 35 #define ITEM_SKIN 36 #define ITEM_ARROW 37 #define ITEM_BOLT 38 #define ITEM_BULLET 39 #define ITEM_BOOK 40 #define ITEM_NEEDLE 41 #define ITEM_QUILL 42 #define ITEM_HAMMER 43 #define ITEM_PESTLE 44 #define ITEM_TIMBER 45 #define ITEM_ORE 46 /* * Extra flags. * Used in #OBJECTS. */ #define ITEM_GLOW 1 /* 1 */ #define ITEM_HUM 2 #define ITEM_DARK 4 #define ITEM_LOCK 8 #define ITEM_EVIL 16 #define ITEM_INVIS 32 #define ITEM_MAGIC 64 #define ITEM_NODROP 128 #define ITEM_BLESS 256 #define ITEM_ANTI_GOOD 512 /* 10 */ #define ITEM_ANTI_EVIL 1024 #define ITEM_ANTI_NEUTRAL 2048 #define ITEM_NOREMOVE 4096 #define ITEM_INVENTORY 8192 #define ITEM_POISONED 16384 #define ITEM_ANTI_MAGE 32768 #define ITEM_ANTI_CLERIC 65536 #define ITEM_ANTI_THIEF 131072 #define ITEM_ANTI_WARRIOR 262144 #define ITEM_ANTI_PSI 524288 /* 20 */ #define ITEM_ANTI_DRUID 1048576 #define ITEM_ANTI_RANGER 2097152 #define ITEM_ANTI_PALADIN 4194304 #define ITEM_ANTI_BARD 8388608 #define ITEM_ANTI_VAMP 16777216 #define ITEM_FLAME 33554432 #define ITEM_CHAOS 67108864 #define ITEM_NO_LOCATE (cc) #define ITEM_NO_DAMAGE (dd) #define ITEM_PATCHED (ee) #define ITEM_ICY (bb) #define ITEM_ACID 134217728 #define ITEM_ANTI_BARBARIAN 1 #define ITEM_ANTI_ANTIPAL 2 #define ITEM_ANTI_MONK 4 #define ITEM_ANTI_ASSASSIN 8 #define ITEM_ANTI_WEREWOLF 16 #define ITEM_ANTI_ILLUSIONIST 32 #define ITEM_HOLY 64 #define ITEM_NOPURGE 128 /* Can't be purged */ #define ITEM_HIDDEN 256 /* Item has been hidden */ #define ITEM_ANTI_NECROMANCER 512 #define ITEM_ANTI_DEMONOLOGIST 1024 #define ITEM_ANTI_SHAMAN 2048 #define ITEM_ANTI_DARKPRIEST 4096 #define ITEM_SPARKING 8192 /* next must exceed this */ #define ITEM_DISPEL 16384 /* next must exceed this */ #define ITEM_TWO_HANDED 32768 #define ITEM_CLAN 65536 #define ITEM_NO_STEAL 131072 #define ITEM_NO_SAC 262144 #define ITEM_REBOOT_ONLY 524288 #define ITEM_PERMANENT 1048576 #define ITEM_LEGEND 2097152 #define ITEM_QUEST 4194304 #define ITEM_MAGIC_SHOT 8388608 #define ITEM_CRAFTED 16777216 #define ITEM_PRO_MAGE 1 #define ITEM_PRO_CLERIC 2 #define ITEM_PRO_THIEF 4 #define ITEM_PRO_WARRIOR 8 #define ITEM_PRO_PSI 16 #define ITEM_PRO_DRUID 32 #define ITEM_PRO_RANGER 64 #define ITEM_PRO_PALADIN 128 #define ITEM_PRO_BARD 256 #define ITEM_PRO_VAMP 512 #define ITEM_PRO_WEREWOLF 1024 #define ITEM_PRO_ANTIPAL 2048 #define ITEM_PRO_ASSASSIN 4096 #define ITEM_PRO_MONK 8192 #define ITEM_PRO_BARBARIAN 16384 #define ITEM_PRO_ILLUSIONIST 32768 #define ITEM_PRO_NECROMANCER 65536 #define ITEM_PRO_DEMONOLOGIST 131072 #define ITEM_PRO_SHAMAN 262144 #define ITEM_PRO_DARKPRIEST 524288 #define ITEM_PRO_HUMAN 1048576 #define ITEM_PRO_ELF 2097152 #define ITEM_PRO_HALFELF 4194304 #define ITEM_PRO_ORC 8388608 #define ITEM_PRO_DROW 16777216 #define ITEM_PRO_DWARF 33554432 #define ITEM_PRO_HALFDWARF 67108864 #define ITEM_PRO_HOBBIT 134217728 #define ITEM_PRO_GIANT 268435456 #define ITEM_PRO_OGRE 536870912 #define ITEM_PRO_ANGEL 1 #define ITEM_PRO_MINOTAUR 2 #define ITEM_PRO_FELINE 4 #define ITEM_PRO_GARGOYLE 8 #define ITEM_PRO_CANINE 16 #define ITEM_PRO_DEMON 32 #define ITEM_PRO_PIXIE 64 #define ITEM_PRO_ELDER 128 #define ITEM_PRO_LIZARDMAN 256 #define ITEM_PRO_GNOME 512 #define ITEM_ANTI_HUMAN 1024 #define ITEM_ANTI_ELF 2048 #define ITEM_ANTI_HALFELF 4096 #define ITEM_ANTI_ORC 8192 #define ITEM_ANTI_DROW 16384 #define ITEM_ANTI_DWARF 32768 #define ITEM_ANTI_HALFDWARF 65536 #define ITEM_ANTI_HOBBIT 131072 #define ITEM_ANTI_GIANT 262144 #define ITEM_ANTI_OGRE 524288 #define ITEM_ANTI_ANGEL 1048576 #define ITEM_ANTI_MINOTAUR 2097152 #define ITEM_ANTI_FELINE 4194304 #define ITEM_ANTI_GARGOYLE 8388608 #define ITEM_ANTI_CANINE 16777216 #define ITEM_ANTI_DEMON 33554432 #define ITEM_ANTI_PIXIE 67108864 #define ITEM_ANTI_ELDER 134217728 #define ITEM_ANTI_LIZARDMAN 268435456 #define ITEM_ANTI_GNOME 536870912 /* * Wear flags. * Used in #OBJECTS. */ #define ITEM_TAKE 1 #define ITEM_WEAR_FINGER 2 #define ITEM_WEAR_NECK 4 #define ITEM_WEAR_BODY 8 #define ITEM_WEAR_HEAD 16 #define ITEM_WEAR_LEGS 32 #define ITEM_WEAR_FEET 64 #define ITEM_WEAR_HANDS 128 #define ITEM_WEAR_ARMS 256 #define ITEM_WEAR_SHIELD 512 #define ITEM_WEAR_ABOUT 1024 #define ITEM_WEAR_WAIST 2048 #define ITEM_WEAR_WRIST 4096 #define ITEM_WIELD 8192 #define ITEM_HOLD 16384 #define ITEM_WEAR_ORBIT 32768 #define ITEM_WEAR_FACE 65536 #define ITEM_WEAR_CONTACT 131072 #define ITEM_PROTOTYPE 262144 #define ITEM_WEAR_EARS 524288 #define ITEM_WEAR_ANKLE 1048576 #define ITEM_WEAR_FIREARM 2097152 #define ITEM_WEAR_IMPLANTED 4194304 /* * Apply types (for affects). * Used in #OBJECTS. */ #define APPLY_NONE 0 #define APPLY_STR 1 #define APPLY_DEX 2 #define APPLY_INT 3 #define APPLY_WIS 4 #define APPLY_CON 5 #define APPLY_SEX 6 #define APPLY_CLASS 7 #define APPLY_LEVEL 8 #define APPLY_AGE 9 #define APPLY_HEIGHT 10 #define APPLY_WEIGHT 11 #define APPLY_MANA 12 #define APPLY_HIT 13 #define APPLY_MOVE 14 #define APPLY_GOLD 15 #define APPLY_EXP 16 #define APPLY_AC 17 #define APPLY_HITROLL 18 #define APPLY_DAMROLL 19 #define APPLY_SAVING_PARA 20 #define APPLY_SAVING_ROD 21 #define APPLY_SAVING_PETRI 22 #define APPLY_SAVING_BREATH 23 #define APPLY_SAVING_SPELL 24 #define APPLY_BP 25 #define APPLY_ANTI_DIS 26 #define APPLY_RACE 27 /* Manaux */ #define APPLY_DAM_NULL 28 #define APPLY_DAM_ACID 29 #define APPLY_DAM_HOLY 30 #define APPLY_DAM_MAGIC 31 #define APPLY_DAM_FIRE 32 #define APPLY_DAM_ENERGY 33 #define APPLY_DAM_WIND 34 #define APPLY_DAM_ILLUSION 35 #define APPLY_DAM_DISPEL 36 #define APPLY_DAM_EARTH 37 #define APPLY_DAM_PSYCHIC 38 #define APPLY_DAM_POISON 39 #define APPLY_DAM_BREATH 40 #define APPLY_DAM_SUMMON 41 #define APPLY_DAM_PHYSICAL 42 #define APPLY_DAM_EXPLOSIVE 43 #define APPLY_DAM_SONG 44 #define APPLY_DAM_NAGAROM 45 #define APPLY_DAM_UNHOLY 46 #define APPLY_DAM_CLAN 47 #define APPLY_DAM_WATER 48 /* X */ #define PERM_SPELL_BEGIN 100 #define APPLY_INVISIBLE (PERM_SPELL_BEGIN + 0) #define APPLY_BLIND (PERM_SPELL_BEGIN + 1) #define APPLY_DETECT_EVIL (PERM_SPELL_BEGIN + 2) #define APPLY_DETECT_INVIS (PERM_SPELL_BEGIN + 3) #define APPLY_DETECT_MAGIC (PERM_SPELL_BEGIN + 4) #define APPLY_DETECT_HIDDEN (PERM_SPELL_BEGIN + 5) #define APPLY_HASTE (PERM_SPELL_BEGIN + 6) #define APPLY_SANCTUARY (PERM_SPELL_BEGIN + 7) #define APPLY_FAERIE_FIRE (PERM_SPELL_BEGIN + 8) #define APPLY_INFRARED (PERM_SPELL_BEGIN + 9) #define APPLY_CURSE (PERM_SPELL_BEGIN + 10) #define APPLY_FLAMING (PERM_SPELL_BEGIN + 11) #define APPLY_POISON (PERM_SPELL_BEGIN + 12) #define APPLY_PROTECT (PERM_SPELL_BEGIN + 13) #define APPLY_INERTIAL (PERM_SPELL_BEGIN + 14) #define APPLY_SNEAK (PERM_SPELL_BEGIN + 15) #define APPLY_HIDE (PERM_SPELL_BEGIN + 16) #define APPLY_SLEEP (PERM_SPELL_BEGIN + 17) #define APPLY_CHARM (PERM_SPELL_BEGIN + 18) #define APPLY_FLYING (PERM_SPELL_BEGIN + 19) #define APPLY_PASS_DOOR (PERM_SPELL_BEGIN + 20) #define APPLY_STUN (PERM_SPELL_BEGIN + 21) #define APPLY_SUMMONED (PERM_SPELL_BEGIN + 22) #define APPLY_MUTE (PERM_SPELL_BEGIN + 23) #define APPLY_PEACE (PERM_SPELL_BEGIN + 24) #define APPLY_FIRESHIELD (PERM_SPELL_BEGIN + 25) #define APPLY_SHOCKSHIELD (PERM_SPELL_BEGIN + 26) #define APPLY_ICESHIELD (PERM_SPELL_BEGIN + 27) #define APPLY_CHAOS (PERM_SPELL_BEGIN + 28) #define APPLY_SCRY (PERM_SPELL_BEGIN + 29) #define APPLY_ANTI_FLEE (PERM_SPELL_BEGIN + 30) #define APPLY_POLYMORPH (PERM_SPELL_BEGIN + 31) #define APPLY_NOASTRAL (PERM_SPELL_BEGIN + 32) #define APPLY_DOOMSHIELD (PERM_SPELL_BEGIN + 33) #define APPLY_TRUESIGHT (PERM_SPELL_BEGIN + 34) #define APPLY_BLADE (PERM_SPELL_BEGIN + 35) #define APPLY_DETECT_GOOD (PERM_SPELL_BEGIN + 36) #define APPLY_PROTECTION_GOOD (PERM_SPELL_BEGIN + 37) #define APPLY_BERSERK (PERM_SPELL_BEGIN + 38) #define APPLY_UNHOLY_STRENGTH (PERM_SPELL_BEGIN + 39) #define APPLY_CONFUSED (PERM_SPELL_BEGIN + 40) #define APPLY_FUMBLE (PERM_SPELL_BEGIN + 41) #define APPLY_DANCING (PERM_SPELL_BEGIN + 42) #define APPLY_IMAGE (PERM_SEPLL_BEGIN + 43) #define APPLY_PHASED (PERM_SPELL_BEGIN + 44) #define APPLY_GOLDEN_ARMOR (PERM_SPELL_BEGIN + 45) #define APPLY_GHOST_SHIELD (PERM_SPELL_BEGIN + 46) #define APPLY_CURSE_NATURE (PERM_SPELL_BEGIN + 47) #define APPLY_MIST (PERM_SPELL_BEGIN + 48) #define APPLY_SHADOW_IMAGE (PERM_SPELL_BEGIN + 49) #define APPLY_WEAPONMASTER (PERM_SPELL_BEGIN + 50) #define APPLY_IMPROVED_INVIS (PERM_SPELL_BEGIN + 51) #define APPLY_BLINDFOLD (PERM_SPELL_BEGIN + 52) #define APPLY_SLIT (PERM_SPELL_BEGIN + 53) #define APPLY_THICK_SKIN (PERM_SPELL_BEGIN + 54) #define APPLY_MALIGNIFY (PERM_SPELL_BEGIN + 55) #define APPLY_CLOAKING (PERM_SPELL_BEGIN + 56) #define APPLY_SHADOW_PLANE (PERM_SPELL_BEGIN + 57) #define APPLY_WOLFED (PERM_SPELL_BEGIN + 58) #define APPLY_HOLD (PERM_SPELL_BEGIN + 59) #define APPLY_CHANGE_SEX (PERM_SPELL_BEGIN + 60) #define APPLY_WATERWALK (PERM_SPELL_BEGIN + 61) #define APPLY_GILLS (PERM_SPELL_BEGIN + 62) #define APPLY_VAM_BITE (PERM_SPELL_BEGIN + 63) #define APPLY_GHOUL (PERM_SPELL_BEGIN + 64) #define APPLY_CHALLENGER (PERM_SPELL_BEGIN + 65) #define APPLY_CHALLENGED (PERM_SELLL_BEGIN + 66) #define APPLY_RAGE (PERM_SPELL_BEGIN + 67) #define APPLY_BLOODTHIRSTY (PERM_SPELL_BEGIN + 68) #define APPLY_COFIRE (PERM_SPELL_BEGIN + 69) #define APPLY_TORTURE (PERM_SPELL_BEGIN + 70) #define APPLY_AGE_SPELL (PERM_SPELL_BEGIN + 71) #define APPLY_SATANIC_INFERNO (PERM_SPELL_BEGIN + 73) #define APPLY_PESTILENCE (PERM_SPELL_BEGIN + 74) #define APPLY_AURA_ANTI_MAGIC (PERM_SPELL_BEGIN + 75) #define APPLY_HOLY_PROTECTION (PERM_SPELL_BEGIN + 76) #define APPLY_IMPROVED_HIDE (PERM_SPELL_BEGIN + 77) #define APPLY_STEALTH (PERM_SPELL_BEGIN + 78) #define APPLY_BLOODSHIELD (PERM_SPELL_BEGIN + 79) #define APPLY_BEND_LIGHT (PERM_SPELL_BEGIN + 80) #define APPLY_CLOUD_OF_HEALING (PERM_SPELL_BEGIN + 81) #define APPLY_TALE_OF_TERROR (PERM_SPELL_BEGIN + 82) #define APPLY_POWER_LEAK (PERM_SPELL_BEGIN + 83) #define APPLY_MANA_SHIELD (PERM_SPELL_BEGIN + 84) #define APPLY_NAGAROMS_CURSE (PERM_SPELL_BEGIN + 85) #define APPLY_PRAYER (PERM_SPELL_BEGIN + 86) #define APPLY_RANDOMSHIELD (PERM_SPELL_BEGIN + 87) #define APPLY_GOLDEN_SANCTUARY (PERM_SPELL_BEGIN + 88) #define APPLY_BIOFEEDBACK (PERM_SPELL_BEGIN + 89) #define APPLY_EARTHSHIELD (PERM_SPELL_BEGIN + 90) #define APPLY_LEAF_SHIELD (PERM_SPELL_BEGIN + 91) #define APPLY_LUCK_SHIELD (PERM_SPELL_BEGIN + 92) #define APPLY_TONGUES (PERM_SPELL_BEGIN + 93) #define APPLY_LIQUID_SKIN (PERM_SPELL_BEGIN + 94) #define APPLY_ANGELIC_AURA (PERM_SPELL_BEGIN + 95) #define APPLY_ETHEREAL_WOLF (PERM_SPELL_BEGIN + 96) #define APPLY_ETHEREAL_SNAKE (PERM_SPELL_BEGIN + 97) #define APPLY_FORCE_OF_NATURE (PERM_SPELL_BEGIN + 98) #define APPLY_FORESTWALK (PERM_SPELL_BEGIN + 99) #define APPLY_MOUNTAINWALK (PERM_SPELL_BEGIN + 100) #define APPLY_PLAINSWALK (PERM_SPELL_BEGIN + 101) #define APPLY_SWAMPWALK (PERM_SPELL_BEGIN + 102) #define APPLY_ESSENCE_OF_GAIA (PERM_SPELL_BEGIN + 103) #define APPLY_BLESS (PERM_SPELL_BEGIN + 201) #define APPLY_GIANT_STRENGTH (PERM_SPELL_BEGIN + 202) #define APPLY_COMBAT_MIND (PERM_SPELL_BEGIN + 203) #define APPLY_HEIGHTEN_SENSES (PERM_SPELL_BEGIN + 204) #define APPLY_QUICKNESS (PERM_SPELL_BEGIN + 205) #define APPLY_OCCULUTUS_VISUM (PERM_SPELL_BEGIN + 206) #define APPLY_TITAN_STRENGTH (PERM_SPELL_BEGIN + 207) #define PERM_SPELL_END (PERM_SPELL_BEGIN + 207 ) /* END */ /* * 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_CHAT 3054 #define ROOM_VNUM_TEMPLE 25000 #define ROOM_VNUM_ALTAR 25000 #define ROOM_VNUM_ALOSER 25000 #define ROOM_VNUM_AWINNER 25000 #define ROOM_VNUM_SCHOOL 101 #define ROOM_VNUM_GRAVEYARD_A 25000 #define ROOM_VNUM_PURGATORY_A 25000 #define ROOM_VNUM_OUTSIDEMETH 17809 /* * Room flags. * Used in #ROOMS. */ #define ROOM_DARK 1 #define ROOM_NO_SHADOW 2 #define ROOM_NO_MOB 4 #define ROOM_INDOORS 8 #define ROOM_TANNERY 16 #define ROOM_ALCHEMIST 32 #define ROOM_LIBRARY 64 #define ROOM_FORGE 128 #define ROOM_BOWYER 256 #define ROOM_PRIVATE 512 #define ROOM_SAFE 1024 #define ROOM_SOLITARY 2048 #define ROOM_PET_SHOP 4096 #define ROOM_NO_RECALL 8192 #define ROOM_CONE_OF_SILENCE 16384 /* delete */ #define ROOM_NO_MAGIC 32768 #define ROOM_NO_PKILL 65536 #define ROOM_NO_ASTRAL_IN 131072 #define ROOM_NO_ASTRAL_OUT 262144 #define ROOM_TELEPORT_AREA 524288 #define ROOM_TELEPORT_WORLD 1048576 #define ROOM_NO_OFFENSIVE 2097152 #define ROOM_NO_FLEE 4194304 #define ROOM_SILENT 8388608 #define ROOM_BANK 16777216 #define ROOM_NOFLOOR 33554432 #define ROOM_SMITHY 67108864 #define ROOM_NOSCRY 134217728 #define ROOM_DAMAGE 268435456 #define ROOM_PKILL 536870912 #define ROOM_MARK 1073741824 #define ROOM_TIMED_DEFORESTED 1 #define ROOM_TIMED_MINED 2 #define ROOM_TIMED_CAMP 4 /* * Directions. * Used in #ROOMS. */ #define DIR_NORTH 0 #define DIR_EAST 1 #define DIR_SOUTH 2 #define DIR_WEST 3 #define DIR_UP 4 #define DIR_DOWN 5 /* * Exit flags. * Used in #ROOMS. */ #define EX_ISDOOR 1 #define EX_CLOSED 2 #define EX_LOCKED 4 #define EX_BASHED 8 #define EX_BASHPROOF 16 #define EX_PICKPROOF 32 #define EX_PASSPROOF 64 #define EX_RANDOM 128 #define EX_MAGICLOCK 256 #define EX_HIDDEN 512 /* * Sector types. * Used in #ROOMS. */ #define SECT_INSIDE 0 #define SECT_CITY 1 #define SECT_FIELD 2 #define SECT_FOREST 3 #define SECT_HILLS 4 #define SECT_MOUNTAIN 5 #define SECT_WATER_SWIM 6 #define SECT_WATER_NOSWIM 7 #define SECT_UNDERWATER 8 #define SECT_AIR 9 #define SECT_DESERT 10 #define SECT_BADLAND 11 #define SECT_MAX 12 /* * Equpiment wear locations. * Used in #RESETS. */ #define WEAR_NONE -1 #define WEAR_LIGHT 0 #define WEAR_FINGER_L 1 #define WEAR_FINGER_R 2 #define WEAR_NECK_1 3 #define WEAR_NECK_2 4 #define WEAR_BODY 5 #define WEAR_HEAD 6 #define WEAR_IN_EYES 7 #define WEAR_ON_FACE 8 #define WEAR_ORBIT 9 #define WEAR_ORBIT_2 10 #define WEAR_LEGS 11 #define WEAR_FEET 12 #define WEAR_HANDS 13 #define WEAR_ARMS 14 #define WEAR_SHIELD 15 #define WEAR_ABOUT 16 #define WEAR_WAIST 17 #define WEAR_WRIST_L 18 #define WEAR_WRIST_R 19 #define WEAR_WIELD 20 #define WEAR_WIELD_2 21 #define WEAR_HOLD 22 #define WEAR_EARS 24 #define WEAR_ANKLE_L 25 #define WEAR_ANKLE_R 26 #define WEAR_FIREARM 23 #define WEAR_IMPLANTED1 27 #define WEAR_IMPLANTED2 28 #define WEAR_IMPLANTED3 29 #define MAX_WEAR 30 /*************************************************************************** * * * VALUES OF INTEREST TO AREA BUILDERS * * (End of this section ... stop here) * * * ***************************************************************************/ /* * Conditions. */ #define COND_DRUNK 0 #define COND_FULL 1 #define COND_THIRST 2 /* * Positions. */ #define POS_DEAD 0 #define POS_MORTAL 1 #define POS_INCAP 2 #define POS_STUNNED 3 #define POS_SLEEPING 4 #define POS_RESTING 5 #define POS_GHOST 6 #define POS_FIGHTING 7 #define POS_STANDING 8 #define POS_MEDITATING 10 /* * ACT bits for players. */ #define PLR_IS_NPC 1 /* Don't EVER set. */ #define PLR_BOUGHT_PET 2 #define PLR_AFK 4 #define PLR_AUTOEXIT 8 #define PLR_AUTOLOOT 16 #define PLR_AUTOSAC 32 #define PLR_BLANK 64 #define PLR_BRIEF 128 #define PLR_MUSIC 256 #define PLR_COMBINE 512 #define PLR_PROMPT 1024 #define PLR_TELNET_GA 2048 #define PLR_HOLYLIGHT 4096 #define PLR_WIZINVIS 8192 #define PLR_QUESTOR 16384 #define PLR_SILENCE 32768 #define PLR_NO_EMOTE 65536 #define PLR_GHOST 131072 #define PLR_NO_TELL 262144 #define PLR_LOG 524288 #define PLR_DENY 1048576 #define PLR_FREEZE 2097152 #define PLR_THIEF 4194304 #define PLR_KILLER 8388608 #define PLR_ANSI 16777216 #define PLR_AUTOGOLD 33554432 #define PLR_KEEPTITLE 67108864 #define PLR_UNDEAD 134217728 #define PLR_SOUND 268435456 #define PLR_COMBAT 536870912 #define PLR_CSKILL 1073741824 #define PLR_RELQUEST 1 /* * Obsolete bits. */ #if 0 #define PLR_AUCTION 4 /* Obsolete */ #endif #define STUN_TOTAL 0 /* Commands and combat halted. Normal stun */ #define STUN_COMMAND 1 /* Commands halted. Combat goes through */ #define STUN_MAGIC 2 /* Can't cast spells */ #define STUN_NON_MAGIC 3 /* No weapon attacks */ #define STUN_TO_STUN 4 /* Requested. Stop continuous stunning */ /* * Channel bits. Had to skip 1, 2 and 4 for some reason. */ #define CHANNEL_NONE 0 #define CHANNEL_AUCTION 8388608 #define CHANNEL_CHAT 16777216 #define CHANNEL_IMMTALK 8 #define CHANNEL_MUSIC 16 #define CHANNEL_QUESTION 32 #define CHANNEL_SHOUT 64 #define CHANNEL_YELL 128 #define CHANNEL_CLAN 256 #define CHANNEL_CLASS 512 #define CHANNEL_CHAMPION 1024 #define CHANNEL_DEMIGOD 262144 #define CHANNEL_MUTTER 524289 #define CHANNEL_TIMELORD 1048576 #define CHANNEL_GRATZ 2097152 #define CHANNEL_OOC 4194304 #define CHANNEL_LOG 2048 #define CHANNEL_BUILD 4096 #define CHANNEL_GOD 8192 #define CHANNEL_GUARDIAN 16384 #define CHANNEL_GUILD 32768 #define CHANNEL_CODER 65536 #define CHANNEL_INFO 131072 #define CHANNEL_COMLOG 33554432 /* * Prototype for a mob. * This is the in-memory version of #MOBILES. */ struct mob_index_data { MOB_INDEX_DATA * next; SPEC_FUN * spec_fun; GAME_FUN * game_fun; SHOP_DATA * pShop; AREA_DATA * area; /* OLC */ MPROG_DATA * mobprogs; char * player_name; char * short_descr; char * long_descr; char * description; int shields; int vnum; int progtypes; int count; int killed; int sex; int class; int level; int act; int act2; int size; long affected_by; long affected_by2; long affected_by3; long affected_by4; long affected_by_powers; long affected_by_weaknesses; long imm_flags; /* XOR */ long res_flags; long vul_flags; /* XOR */ int alignment; int hitroll; int damroll; int ac; /* Unused */ int hitnodice; /* Unused */ int hitsizedice; /* Unused */ int hitplus; /* Unused */ int damnodice; /* Unused */ int damsizedice; /* Unused */ int damplus; /* Unused */ int gold; /* Unused */ int speaking; /* Tyrion */ /* int race; */ }; /* * -- Altrag */ struct gskill_data { int sn; void * victim; int level; int timer; }; /* * One character (PC or NPC). */ struct char_data { CHAR_DATA * next; CHAR_DATA * next_in_room; CHAR_DATA * master; CHAR_DATA * leader; CHAR_DATA * fighting; CHAR_DATA * hunting; CHAR_DATA * reply; CHAR_DATA * questgiver; /* Vassago, quest */ CHAR_DATA * gladiator; /* ARENA player wagered on */ SPEC_FUN * spec_fun; GAME_FUN * game_fun; /* Maniac, dice games */ MOB_INDEX_DATA * pIndexData; DESCRIPTOR_DATA * desc; AFFECT_DATA * affected; AFFECT_DATA * affected2; AFFECT_DATA * affected3; AFFECT_DATA * affected4; AFFECT_DATA * affected_powers; /* Religion powers, Tyrion */ AFFECT_DATA * affected_weaknesses; /* Religion weaknesses, Tyrion */ NOTE_DATA * pnote; OBJ_DATA * carrying; ROOM_INDEX_DATA * in_room; ROOM_INDEX_DATA * was_in_room; PC_DATA * pcdata; MPROG_ACT_LIST * mpact; GSPELL_DATA * gspell; PHOBIA_DATA * phobia; char * name; char * short_descr; char * long_descr; char * description; char * prompt; char * nullstring; int updated; int sex; int class; int multied; int mpactnum; int race; int clan; int religion; int clev; int ctimer; int wizinvis; int level; int antidisarm; int trust; bool wizbit; int played; time_t logon; time_t save_time; time_t last_note; int timer; int wait; int hit; int max_hit; int mana; int max_mana; int move; int max_move; int bp; int max_bp; int gold; int exp; int shields; int questpoints; /* Vassago */ int nextquest; /* Vassago */ int countdown; /* Vassago */ int questobj; /* Vassago */ int questmob; /* Vassago */ int rquestpoints; /* Tyrion */ int rnextquest; /* Tyrion */ int rcountdown; /* Tyrion */ int rquestobj[MAX_LEVEL]; /* Tyrion/Ahsile */ int rquestmob[MAX_LEVEL]; /* Tyrion/Ahsile */ int relquest_level; /* ahsile */ int act; int act2; /* ahsile */ long affected_by; long affected_by2; long affected_by3; long affected_by4; long affected_by_powers; long affected_by_weaknesses; long imm_flags; long res_flags; long vul_flags; int position; int practice; int carry_weight; int carry_number; int saving_throw; int alignment; int hitroll; int damroll; int armor; int wimpy; int deaf; int language [ MAX_LANGUAGE ]; int speaking; /* Maniac */ int size; bool deleted; int combat_timer; /* XOR */ int summon_timer; /* XOR */ time_t pkill_timer; bool pkill; bool initiated; int guild_rank; const GUILD_DATA * guild; int rtimer; /* All Religion data by Tyrion */ int stunned[STUN_MAX]; int damage_mods[DAMCLASS_MAX]; /* Manaux */ int mounted; int mountcharmed; char * mountshort; bool fixed_error; /* Ahsile */ int poison_level; /* Tyrion */ #ifdef SQL_SYSTEM int CharID; /* Ahsile */ bool playing; bool new; CHAR_DATA* next_dirty; ROOM_INDEX_DATA* last_room; #endif }; struct guild_data { char * name; char * deity; int color; int type; }; 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; char * arglist; char * comlist; int status; /* states this prog is active in, 0 => all states*/ }; /* * Data which only PC's have. */ struct pc_data { PC_DATA * next; ALIAS_DATA * alias_list; char * pwd; char * bamfin; char * bamfout; char * bamfsin; char * bamfsout; char * immskll; char * title; char * prompt; char * lname; // char * religion; /* The long version of the name */ // char * religion_name; /* The 3 character short */ int recall; /* Recall room */ char * who_text; /* Text in who listing - Canth */ char * spouse; /* Mythran, modified by Tyrion */ int perm_str; int perm_int; int perm_wis; int perm_dex; int perm_con; int mod_str; int mod_int; int mod_wis; int mod_dex; int mod_con; int condition [ 3 ]; int pagelen; int learned [ MAX_SKILL ]; bool switched; int security; /* OLC - Builder security */ int bankaccount; OBJ_DATA * storage; int storcount; int learn; /* Maniac */ int shares; /* Maniac */ int plr_wager; /* ARENA amount wagered */ int awins; /* ARENA number of wins */ int alosses; /* ARENA number of losses */ int mobkills; bool confirm_delete; /* Maniac */ int corpses; bool clean; /*Player is clean. -- Manaux */ char * plan; char * email; int spell1; /* spells for scribing/brewing/forging */ int spell2; int spell3; int craft_timer; /* time to wait while crafting */ int craft_type; /* scroll, potion, etc */ OBJ_DATA* craft_target; /* the target of the craft */ }; struct alias_data { ALIAS_DATA *next; char *old; char *_new; }; #define PHOBIA_FIRE 0 #define PHOBIA_LIGHTNING 1 #define PHOBIA_WATER 2 #define PHOBIA_MAGIC 3 #define PHOBIA_NONMAGIC 4 #define PHOBIA_PSI 5 #define PHOBIA_DRAGON 6 #define PHOBIA_MAX 7 struct phobia_data { PHOBIA_DATA *next; int type; int duration; int strength; }; /* * heh.. were discussing obj/room progs.. and then these triggers started * looking a helluva lot like em.. :).. so what the hell..? :).. main * difference between this struct and the mobprog stuff is that this is * implemented as traps. ie.. the disarmable stuff.. * also, these are a little more global.. :) * -- Altrag */ /* * The object triggers.. quite a few of em.. :) */ #define OBJ_TRAP_ERROR 0 /* error! */ #define OBJ_TRAP_GET A /* obj is picked up */ #define OBJ_TRAP_DROP B /* obj is dropped */ #define OBJ_TRAP_PUT C /* obj is put into something */ #define OBJ_TRAP_WEAR D /* obj is worn */ #define OBJ_TRAP_LOOK E /* obj is looked at/examined */ #define OBJ_TRAP_LOOK_IN F /* obj is looked inside (containers) */ #define OBJ_TRAP_INVOKE G /* obj is invoked */ #define OBJ_TRAP_USE H /* obj is used (recited, zapped, ect) */ #define OBJ_TRAP_CAST I /* spell is cast on obj - percent */ #define OBJ_TRAP_CAST_SN J /* spell is cast on obj - by slot */ #define OBJ_TRAP_JOIN K /* obj is joined with another */ #define OBJ_TRAP_SEPARATE L /* obj is separated into two */ #define OBJ_TRAP_BUY M /* obj is bought from store */ #define OBJ_TRAP_SELL N /* obj is sold to store */ #define OBJ_TRAP_STORE O /* obj is stored in storage boxes */ #define OBJ_TRAP_RETRIEVE P /* obj is retrieved from storage */ #define OBJ_TRAP_OPEN Q /* obj is opened (containers) */ #define OBJ_TRAP_CLOSE R /* obj is closed (containers) */ #define OBJ_TRAP_LOCK S /* obj is locked (containers) */ #define OBJ_TRAP_UNLOCK T /* obj is unlocked (containers) */ #define OBJ_TRAP_PICK U /* obj is picked (containers) */ #define OBJ_TRAP_RANDOM V /* random trigger */ #define OBJ_TRAP_THROW W /* obj is thrown */ #define OBJ_TRAP_GET_FROM X /* to allow secondary obj's in get */ #define OBJ_TRAP_GIVE Y /* give an obj away */ #define OBJ_TRAP_FILL Z /* obj is filled (drink_cons) */ /* * Note that entry/exit/pass are only called if the equivilant exit * trap for the exit the person went through failed. * Pass is only called if the respective enter or exit trap failed. */ #define ROOM_TRAP_ERROR 0 /* error! */ #define ROOM_TRAP_ENTER A /* someone enters the room */ #define ROOM_TRAP_EXIT B /* someone leaves the room */ #define ROOM_TRAP_PASS C /* someone enters or leaves */ #define ROOM_TRAP_CAST D /* a spell was cast in room - percent */ #define ROOM_TRAP_CAST_SN E /* a spell was cast in room - by slot */ #define ROOM_TRAP_SLEEP F /* someone sleeps in the room */ #define ROOM_TRAP_WAKE G /* someone wakes up in the room */ #define ROOM_TRAP_REST H /* someone rests in the room */ #define ROOM_TRAP_DEATH I /* someone dies in the room */ #define ROOM_TRAP_TIME J /* depends on the time of day */ #define ROOM_TRAP_RANDOM K /* random trigger */ /* * enter/exit/pass rules are the same as those for room traps. * note that look trap is only called if scry trap fails. */ #define EXIT_TRAP_ERROR 0 /* error! */ #define EXIT_TRAP_ENTER A /* someone enters through the exit */ #define EXIT_TRAP_EXIT B /* someone leaves through the exit */ #define EXIT_TRAP_PASS C /* someone enters/leaves through exit */ #define EXIT_TRAP_LOOK D /* someone looks through exit */ #define EXIT_TRAP_SCRY E /* someone scrys through the exit */ #define EXIT_TRAP_OPEN F /* someone opens the exit (door) */ #define EXIT_TRAP_CLOSE G /* someone closes the exit (door) */ #define EXIT_TRAP_LOCK H /* someone locks the exit (door) */ #define EXIT_TRAP_UNLOCK I /* someone unlocks the exit (door) */ #define EXIT_TRAP_PICK J /* someone picks the exit (locked door) */ struct trap_data { TRAP_DATA *next; TRAP_DATA *next_here; OBJ_INDEX_DATA *on_obj; ROOM_INDEX_DATA *in_room; EXIT_DATA *on_exit; int type; char *arglist; char *comlist; bool disarmable; bool disarmed; int disarm_dur; }; /* * Liquids. */ #define LIQ_WATER 0 #define LIQ_MAX 16 struct liq_type { char *liq_name; char *liq_color; int liq_affect [ 3 ]; }; /* * Extra description data for a room or object. */ struct extra_descr_data { EXTRA_DESCR_DATA *next; /* Next in list */ char *keyword; /* Keyword in look/examine */ char *description; /* What to see */ bool deleted; }; /* * Prototype for an object. */ struct obj_index_data { OBJ_INDEX_DATA * next; EXTRA_DESCR_DATA * extra_descr; AFFECT_DATA * affected; AREA_DATA * area; /* OLC */ TRAP_DATA * traps; int traptypes; char * name; char * short_descr; char * description; int vnum; int item_type; int durability_max; int durability_cur; int extra_flags; int extra_flags2; int extra_flags3; int extra_flags4; int wear_flags; int count; int weight; int cost; /* Unused */ int level; int value [ 4 ]; int ac_type; int ac_vnum; int pad [ 4 ]; /* Unused */ char * ac_spell; int ac_charge [ 2 ]; int join; int sep_one; int sep_two; }; /* * One object. */ struct obj_data { OBJ_DATA * next; OBJ_DATA * next_content; OBJ_DATA * contains; OBJ_DATA * in_obj; CHAR_DATA * carried_by; CHAR_DATA * stored_by; EXTRA_DESCR_DATA * extra_descr; AFFECT_DATA * affected; OBJ_INDEX_DATA * pIndexData; ROOM_INDEX_DATA * in_room; char * name; char * short_descr; char * description; int item_type; int extra_flags; int extra_flags2; int extra_flags3; int extra_flags4; int wear_flags; int wear_loc; int durability_max; int durability_cur; int weight; int cost; int level; int timer; int value [ 4 ]; int ac_type; int ac_vnum; char * ac_spell; int ac_charge [ 2 ]; bool deleted; }; struct sac_data { char god[ MAX_INPUT_LENGTH ]; int reward_total; }; /* * Exit data. */ struct exit_data { ROOM_INDEX_DATA * to_room; EXIT_DATA * next; /* OLC */ TRAP_DATA * traps; int traptypes; int rs_flags; /* OLC */ int vnum; int exit_info; int key; char * keyword; char * description; }; /* * 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 * 'D': set state of door * 'R': randomize room exits * 'S': stop (end of list) */ /* * Area-reset definition. */ struct reset_data { RESET_DATA * next; char command; int arg1; int arg2; int arg3; int status; /* status for Area theme quests */ }; /* * Area definition. */ struct area_data { AREA_DATA * next; RESET_DATA * reset_first; RESET_DATA * reset_last; char * name; int recall; int age; int nplayer; char * filename; /* OLC */ char * builders; /* OLC - Listing of builders */ int security; /* OLC - Value 0-infinity */ int lvnum; /* OLC - Lower vnum */ int uvnum; /* OLC - Upper vnum */ int vnum; /* OLC - Area vnum */ int area_flags; /* OLC */ char * reset_sound; /* Altrag */ int windstr; int winddir; int llevel; /* Tyrion */ int ulevel; /* Tyrion */ char * actual_sound; /* Tyrion */ char * musicfile; int status; /* Status for Area theme quests */ int version; /* area file version */ char * creator; #ifdef SQL_SYSTEM int AreaID; #endif }; struct new_clan_data { CLAN_DATA * next; char * name; char * deity; char * description; char * leader; char * first; char * second; char * champ; bool isleader; bool isfirst; bool issecond; bool ischamp; int vnum; int recall; int pkills; int mkills; int members; int pdeaths; int mdeaths; int obj_vnum_1; int obj_vnum_2; int obj_vnum_3; bool pkill; }; struct new_religion_data { RELIGION_DATA * next; char * name; char * deity; char * description; char * shortdesc; int vnum; int recall; int start; int pkills; int mkills; int pdeaths; int mdeaths; int members; }; /* * Room type. */ struct room_index_data { ROOM_INDEX_DATA * next; ROOM_INDEX_DATA * next_timed_room; /* next room with temporary flags */ CHAR_DATA * people; OBJ_DATA * contents; EXTRA_DESCR_DATA * extra_descr; AREA_DATA * area; EXIT_DATA * exit [ 6 ]; RESET_DATA * reset_first; /* OLC */ RESET_DATA * reset_last; /* OLC */ TRAP_DATA * traps; int traptypes; char * name; char * description; char * soundfile; char * musicfile; int vnum; int room_flags; int timed_room_flags; int flag_timer; int light; int sector_type; int rd; /* TRI ( Room damage ) */ }; /* * Types of attacks. * Must be non-overlapping with spell/skill types, * but may be arbitrary beyond that. */ #define TYPE_UNDEFINED -1 #define TYPE_HIT 1000 /* * Target types. */ #define TAR_IGNORE 0 #define TAR_CHAR_OFFENSIVE 1 #define TAR_CHAR_DEFENSIVE 2 #define TAR_CHAR_SELF 3 #define TAR_OBJ_INV 4 #define TAR_GROUP_OFFENSIVE 5 #define TAR_GROUP_DEFENSIVE 6 #define TAR_GROUP_ALL 7 #define TAR_GROUP_OBJ 8 #define TAR_GROUP_IGNORE 9 /* Language type */ struct lang_type { char *name; /* Language name */ }; /* * Skills include spells as a particular case. */ struct skill_type { char * name; /* Name of skill */ int skill_level [ MAX_CLASS ]; /* Level needed by class */ SPELL_FUN * spell_fun; /* Spell pointer (for spells) */ int target; /* Legal targets */ int minimum_position; /* Position for caster / user */ int * pgsn; /* Pointer to associated gsn */ int min_mana; /* Minimum mana used */ int beats; /* Waiting time after use */ char * noun_damage; /* Damage message */ char * msg_off; /* Wear off message */ int slot; /* For object loading */ int dispel_bit; /* For dispelling crap */ int cancel_bit; /* For cancelling crap */ int damclass; /* For damage types. */ char * msg_off_room; /* Dispel message */ int shield_bit; char type; /* skill, spell type */ int str_req; int wis_req; int int_req; int dex_req; int con_req; int is_spell; /* True if spell, False if skill */ int craftable; /* bitvector */ char * msg_fail; /* Message if skpell fails */ }; /* * -- Altrag */ struct gskill_type { int wait; /* Wait for casters in ticks */ int slot; /* Matching skill_table sn */ int casters[MAX_CLASS]; /* Casters needed by class */ }; /* * Global dead object list --Manaux */ extern DEAD_OBJ_LIST *dead_object_list; extern bool DeadObjPrntOnly; /* * These are skill_lookup return values for common skills and spells. */ /* * Removed. See note in db.c - Ahsile */ /* * Race abilities gsn's. */ /* * 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 SET_BIT2( var, bit ) ( ( var ) |= ( bit ) ) #define REMOVE_BIT( var, bit ) ( ( var ) &= ~( bit ) ) #define IS_QUESTOR(ch) ( IS_SET((ch)->act, PLR_QUESTOR)) #define MOB_GAME_CHEAT(mob) ( mob->pIndexData->ac ) /* * Character macros. */ #define IS_CODER( ch ) ( IS_SET( ( ch )->affected_by2, CODER ) ) #define IS_NPC( ch ) ( IS_SET( ( ch )->act, ACT_IS_NPC ) ) #define IS_IMMORTAL( ch ) ( get_trust( ch ) >= LEVEL_IMMORTAL ) #define IS_HERO3( ch ) ( get_trust( ch ) >= LEVEL_HERO3 ) #define IS_HERO2( ch ) ( get_trust( ch ) >= LEVEL_HERO2 ) #define IS_HERO( ch ) ( get_trust( ch ) >= LEVEL_HERO ) #define IS_CHAMP( ch ) ( get_trust( ch ) >= LEVEL_CHAMP ) #define IS_DEMIGOD( ch ) ( get_trust( ch ) >= LEVEL_DEMIGOD ) #define IS_LEGEND( ch ) ( (IS_DEMIGOD( ch ) && ( ch->exp >= MAX_EXPERIENCE )) || (IS_IMMORTAL( ch ))) #define IS_AFFECTED( ch, sn ) ( IS_SET( ( ch )->affected_by, ( sn ) ) ) #define IS_AFFECTED2(ch, sn) ( IS_SET( ( ch )->affected_by2, (sn))) #define IS_AFFECTED3(ch, sn) ( IS_SET( ( ch )->affected_by3, (sn))) #define IS_AFFECTED4(ch, sn) ( IS_SET( ( ch )->affected_by4, (sn))) #define IS_AFFECTED_POWERS(ch, sn) ( IS_SET( ( ch )->affected_by_powers, (sn))) #define IS_AFFECTED_WEAKNESSES(ch, sn) ( IS_SET( ( ch )->affected_by_weaknesses, (sn))) #define IS_SIMM(ch, sn) (IS_SET((ch)->imm_flags, (sn))) #define IS_SRES(ch, sn) (IS_SET((ch)->res_flags, (sn))) #define IS_SVUL(ch, sn) (IS_SET((ch)->vul_flags, (sn))) #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_AC( ch ) ( ( ch )->armor \ + ( IS_AWAKE( ch ) \ ? dex_app[get_curr_dex( ch )].defensive \ : 0 ) ) #define GET_HITROLL( ch ) ( ( ch )->hitroll \ + str_app[get_curr_str( ch )].tohit ) #define GET_DAMROLL( ch ) ( ( ch )->damroll / 2 \ + str_app[get_curr_str( ch )].todam ) /* damroll is cut in half to reduce damage dealt by physical attacks, cuz its getting rediculous All occurences of the DISPLAY of your damroll is doubled, to appear like its normal. */ #define GET_CLASS( ch ) ( ( ch )->class ) #define IS_OUTSIDE( ch ) ( !IS_SET( \ ( ch )->in_room->room_flags, \ ROOM_INDOORS ) ) #define IS_FOREST( ch ) ( ch->in_room->sector_type == SECT_FOREST ) #define IS_MOUNTAIN( ch ) ( ch->in_room->sector_type == SECT_MOUNTAIN ) #define IS_IN_NATURE( ch ) ( ch->in_room->sector_type == SECT_FIELD || ch->in_room->sector_type == SECT_FOREST || ch->in_room->sector_type == SECT_MOUNTAIN || ch->in_room->sector_type == SECT_HILLS || ch->in_room->sector_type == SECT_BADLAND || ch->in_room->sector_type == SECT_DESERT ) #define WAIT_STATE( ch, pulse ) ( ( ch )->wait = UMAX( ( ch )->wait, \ ( pulse ) ) ) #define STUN_CHAR( ch, pulse, type ) ( (ch)->stunned[(type)] = \ UMAX( (ch)->stunned[(type)], \ (pulse) ) ) #define IS_STUNNED( ch, type ) ( (ch)->stunned[(type)] > 0 ) #define MANA_COST( ch, sn ) ( IS_NPC( ch ) ? 0 : UMAX ( \ skill_table[sn].min_mana, \ 100 / UMAX(1, ( 2 + ch->level - \ skill_table[sn].skill_level[ch->class] ) ) ) ) #define MANA_COST_MULTI( ch, sn ) ( IS_NPC(ch) ? 0 : UMAX ( \ skill_table[sn].min_mana, \ 100 / UMAX(1, ( 2 + ch->level - \ skill_table[sn].skill_level[ch->multied] ) ) ) ) #define IS_SWITCHED( ch ) ( ch->pcdata->switched ) /* Useful Macro I often need for debugging. Walker */ #define CHAR_NAME( ch ) ( IS_NPC(ch) \ ? ( ch )->short_descr \ : ( ch )->name ) /* * 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 ) ) ) #define IS_OBJ_STAT2( obj, stat )( IS_SET( ( obj)->extra_flags2, ( stat ) ) ) #define IS_OBJ_STAT3( obj, stat )( IS_SET( ( obj)->extra_flags3, ( stat ) ) ) #define IS_OBJ_STAT4( obj, stat )( IS_SET( ( obj)->extra_flags4, ( stat ) ) ) /* * Description macros. */ #define PERS( ch, looker ) ( can_see( looker, ( ch ) ) ? \ ( IS_NPC( ch ) ? ( ch )->short_descr \ : ( ch )->name ) : "someone" ) /* * Structure for a command in the command lookup table. */ struct cmd_type { char * const name; DO_FUN * do_fun; int position; int level; int log; }; /* * Structure for a social in the socials table. */ struct social_type { 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; char * sound; }; /* * Global constants. */ extern const struct str_app_type str_app [ 51 ]; extern const struct int_app_type int_app [ 51 ]; extern const struct wis_app_type wis_app [ 51 ]; extern const struct dex_app_type dex_app [ 51 ]; extern const struct con_app_type con_app [ 51 ]; extern const struct class_type class_table [ MAX_CLASS ]; extern const struct race_type race_table [ MAX_RACE ]; extern const struct clan_type clan_table [ ]; extern const struct guild_data guild_table [ ]; extern struct cmd_type cmd_table [ ]; extern const struct liq_type liq_table [ LIQ_MAX ]; extern const struct skill_type skill_table [ ]; extern const struct gskill_type gskill_table [ MAX_GSPELL ]; /*extern const struct social_type social_table [ ];*/ extern char * const title_table [ MAX_CLASS ] [ MAX_LEVEL+1 ] [ 2 ]; extern const struct lang_type lang_table [ MAX_LANGUAGE ]; extern SOCIAL_DATA *social_table; /* For variable XP table. Walker */ extern const int xp_table [ MAX_LEVEL + 1][ MAX_CLASS ]; extern int exp_table[]; /* Tyrion */ /* * Global variables. */ extern HELP_DATA * help_first; extern HELP_DATA * help_last; extern HELP_DATA * help_free; extern SHOP_DATA * shop_first; extern BAN_DATA * ban_list; extern USERL_DATA * user_list; /* finger data/mailing */ extern CHAR_DATA * char_list; extern ROOM_INDEX_DATA * timed_room_list; extern DESCRIPTOR_DATA * descriptor_list; extern NOTE_DATA * note_list; extern OBJ_DATA * object_list; extern TRAP_DATA * trap_list; /* Altech trap stuff */ extern AFFECT_DATA * affect_free; extern BAN_DATA * ban_free; extern CHAR_DATA * char_free; extern DESCRIPTOR_DATA * descriptor_free; extern EXTRA_DESCR_DATA * extra_descr_free; extern NOTE_DATA * note_free; extern OBJ_DATA * obj_free; extern PC_DATA * pcdata_free; extern char bug_buf [ ]; extern time_t current_time; extern bool fLogAll; extern FILE * fpReserve; extern KILL_DATA kill_table [ ]; extern char log_buf [ ]; extern TIME_INFO_DATA time_info; extern WEATHER_DATA weather_info; extern char * down_time; extern char * warning1; extern char * warning2; extern int stype; extern int prtv; /*extern bool quest; extern int qmin; extern int qmax;*/ extern int port; extern int share_value; extern int pulse_db_dump; extern bool relquest; /* ahsile */ extern CORRUPT_AREA_LIST * corrupt; /* * Command functions. * Defined in act_*.c (mostly). */ /*DECLARE_DO_FUN( do_qecho ); DECLARE_DO_FUN( do_qset ); DECLARE_DO_FUN( do_questflag );*/ DECLARE_DO_FUN( do_mpasound ); DECLARE_DO_FUN( do_mpat ); DECLARE_DO_FUN( do_mpastatus ); DECLARE_DO_FUN( do_mpecho ); DECLARE_DO_FUN( do_mpechoaround ); DECLARE_DO_FUN( do_mpechoat ); DECLARE_DO_FUN( do_mpforce ); DECLARE_DO_FUN( do_mpainxp ); DECLARE_DO_FUN( do_mpainqp ); DECLARE_DO_FUN( do_mpjunk ); DECLARE_DO_FUN( do_mpkill ); DECLARE_DO_FUN( do_mpmload ); DECLARE_DO_FUN( do_mpoload ); DECLARE_DO_FUN( do_mppurge ); DECLARE_DO_FUN( do_mpstat ); DECLARE_DO_FUN( do_mpcommands ); DECLARE_DO_FUN( do_mpteleport ); DECLARE_DO_FUN( do_mptransfer ); DECLARE_DO_FUN( do_mpgoto ); DECLARE_DO_FUN( do_mpgainxp ); DECLARE_DO_FUN( do_mpgainqp ); DECLARE_DO_FUN( do_mpdisable ); DECLARE_DO_FUN( do_mpenable ); DECLARE_DO_FUN( do_account ); DECLARE_DO_FUN( do_advance ); DECLARE_DO_FUN( do_makelegend ); DECLARE_DO_FUN( change_area_status ); DECLARE_DO_FUN( do_afk ); DECLARE_DO_FUN( do_affectedby ); DECLARE_DO_FUN( do_allow ); DECLARE_DO_FUN( do_answer ); DECLARE_DO_FUN( do_areas ); DECLARE_DO_FUN( do_astrip ); DECLARE_DO_FUN( do_at ); DECLARE_DO_FUN( do_auction ); DECLARE_DO_FUN( do_auto ); DECLARE_DO_FUN( do_autoexit ); DECLARE_DO_FUN( do_autogold ); DECLARE_DO_FUN( do_autoloot ); DECLARE_DO_FUN( do_autosac ); DECLARE_DO_FUN( do_bamfin ); DECLARE_DO_FUN( do_bamfout ); DECLARE_DO_FUN( do_bamfsin ); /* Tyrion */ DECLARE_DO_FUN( do_bamfsout ); /* Tyrion */ DECLARE_DO_FUN( do_ban ); DECLARE_DO_FUN( do_bet ); /* by Thelonius */ DECLARE_DO_FUN( do_bestow ); DECLARE_DO_FUN( do_bid ); DECLARE_DO_FUN( do_blank ); DECLARE_DO_FUN( do_bodybag ); DECLARE_DO_FUN( do_brandish ); DECLARE_DO_FUN( do_brief ); DECLARE_DO_FUN( do_bug ); DECLARE_DO_FUN( do_buy ); DECLARE_DO_FUN( do_cast ); DECLARE_DO_FUN( do_use ); DECLARE_DO_FUN( do_quickburst ); /* Tyrion */ DECLARE_DO_FUN( do_multiburst ); /* Tyrion */ DECLARE_DO_FUN( do_channels ); DECLARE_DO_FUN( do_chat ); DECLARE_DO_FUN( do_clan ); DECLARE_DO_FUN( do_cinfo ); DECLARE_DO_FUN( do_religioninfo ); /* Tyrion */ DECLARE_DO_FUN( do_clans ); DECLARE_DO_FUN( do_religions ); /* Tyrion */ DECLARE_DO_FUN( do_relquest ); /* Ahsile */ DECLARE_DO_FUN( do_crusade ); /* Ahsile */ DECLARE_DO_FUN( do_map ); /* Ahsile */ DECLARE_DO_FUN( do_class ); DECLARE_DO_FUN( do_close ); DECLARE_DO_FUN( do_combine ); DECLARE_DO_FUN( do_commands ); DECLARE_DO_FUN( do_compare ); DECLARE_DO_FUN( do_conference ); DECLARE_DO_FUN( do_config ); DECLARE_DO_FUN( do_consider ); DECLARE_DO_FUN( do_countcommands); DECLARE_DO_FUN( do_credits ); DECLARE_DO_FUN( do_deny ); DECLARE_DO_FUN( do_deposit ); DECLARE_DO_FUN( do_description ); DECLARE_DO_FUN( do_disconnect ); DECLARE_DO_FUN( do_down ); DECLARE_DO_FUN( do_drink ); DECLARE_DO_FUN( do_drop ); DECLARE_DO_FUN( do_dual ); DECLARE_DO_FUN( do_east ); DECLARE_DO_FUN( do_eat ); DECLARE_DO_FUN( do_echo ); DECLARE_DO_FUN( do_pecho ); /* Darkone */ DECLARE_DO_FUN( do_rename ); /* rename players */ DECLARE_DO_FUN( do_wizpwd ); /* Edit players' passwords */ DECLARE_DO_FUN( do_smite ); /* Darkone */ DECLARE_DO_FUN( do_disable ); /* Darkone */ DECLARE_DO_FUN( do_sedit ); /* Darkone */ DECLARE_DO_FUN( do_for ); /* Darkone */ DECLARE_DO_FUN( do_bank ); /* Mud economy */ DECLARE_DO_FUN( do_update ); /* Update game functions */ DECLARE_DO_FUN( do_dog ); /* Darkone */ DECLARE_DO_FUN( do_iscore ); /* Darkone */ /*DECLARE_DO_FUN( do_wager );*/ //DECLARE_DO_FUN( do_accept ); //DECLARE_DO_FUN( do_arena ); //DECLARE_DO_FUN( do_decline ); //DECLARE_DO_FUN( do_challenge ); DECLARE_DO_FUN( do_emote ); DECLARE_DO_FUN( do_enter ); DECLARE_DO_FUN( do_equipment ); DECLARE_DO_FUN( do_examine ); DECLARE_DO_FUN( do_exits ); DECLARE_DO_FUN( do_fill ); DECLARE_DO_FUN( do_dostat ); /* Manaux */ DECLARE_DO_FUN( do_finger ); DECLARE_DO_FUN( do_flee ); DECLARE_DO_FUN( do_forge ); DECLARE_DO_FUN( do_follow ); DECLARE_DO_FUN( do_force ); DECLARE_DO_FUN( do_freeze ); DECLARE_DO_FUN( do_fset ); DECLARE_DO_FUN( do_get ); DECLARE_DO_FUN( do_give ); DECLARE_DO_FUN( do_seize ); /* Darkone */ DECLARE_DO_FUN( do_goto ); DECLARE_DO_FUN( do_group ); DECLARE_DO_FUN( do_gtell ); DECLARE_DO_FUN( do_guard ); DECLARE_DO_FUN( do_timelord ); /* Tyrion */ DECLARE_DO_FUN( do_ooc ); /* Tyrion */ DECLARE_DO_FUN( do_info ); /* Darkone */ DECLARE_DO_FUN( do_help ); DECLARE_DO_FUN( do_hero ); DECLARE_DO_FUN( do_hlist ); DECLARE_DO_FUN( do_holylight ); DECLARE_DO_FUN( do_idea ); DECLARE_DO_FUN( do_immtalk ); DECLARE_DO_FUN( do_imtlset ); /* Darkone */ DECLARE_DO_FUN( do_induct ); DECLARE_DO_FUN( do_inventory ); DECLARE_DO_FUN( do_invoke ); DECLARE_DO_FUN( do_join ); DECLARE_DO_FUN( do_timequake ); /* Tyrion, real cool Time function */ DECLARE_DO_FUN( do_kill ); DECLARE_DO_FUN( do_list ); DECLARE_DO_FUN( do_lock ); DECLARE_DO_FUN( do_log ); DECLARE_DO_FUN( do_look ); DECLARE_DO_FUN( do_memory ); DECLARE_DO_FUN( do_mfind ); DECLARE_DO_FUN( do_mload ); DECLARE_DO_FUN( do_multi ); /* Multi-class command. Walker. */ DECLARE_DO_FUN( do_mset ); DECLARE_DO_FUN( do_set ); DECLARE_DO_FUN( do_mstat ); DECLARE_DO_FUN( do_stat ); DECLARE_DO_FUN( do_mwhere ); DECLARE_DO_FUN( do_murde ); DECLARE_DO_FUN( do_murder ); DECLARE_DO_FUN( do_music ); DECLARE_DO_FUN( do_newcorpse ); /* Tyrion */ DECLARE_DO_FUN( do_newlock ); DECLARE_DO_FUN( do_noemote ); DECLARE_DO_FUN( do_north ); DECLARE_DO_FUN( do_note ); DECLARE_DO_FUN( do_notestat ); DECLARE_DO_FUN( do_notell ); DECLARE_DO_FUN( do_numlock ); DECLARE_DO_FUN( do_ofind ); DECLARE_DO_FUN( do_olist ); DECLARE_DO_FUN( do_oload ); DECLARE_DO_FUN( do_open ); DECLARE_DO_FUN( do_order ); DECLARE_DO_FUN( do_oset ); DECLARE_DO_FUN( do_ostat ); DECLARE_DO_FUN( do_outcast ); DECLARE_DO_FUN( do_owhere ); DECLARE_DO_FUN( do_pagelen ); DECLARE_DO_FUN( do_pardon ); DECLARE_DO_FUN( do_password ); DECLARE_DO_FUN( do_patch ); DECLARE_DO_FUN( do_peace ); DECLARE_DO_FUN( do_pload ); DECLARE_DO_FUN( do_pose ); DECLARE_DO_FUN( do_practice ); DECLARE_DO_FUN( do_pray ); DECLARE_DO_FUN( do_prompt ); DECLARE_DO_FUN( do_purge ); DECLARE_DO_FUN( do_put ); DECLARE_DO_FUN( do_pwhere ); DECLARE_DO_FUN( do_quaff ); DECLARE_DO_FUN( do_quest ); DECLARE_DO_FUN( do_question ); DECLARE_DO_FUN( do_qui ); DECLARE_DO_FUN( do_quit ); DECLARE_DO_FUN( do_reboo ); DECLARE_DO_FUN( do_reboot ); DECLARE_DO_FUN( do_recall ); DECLARE_DO_FUN( do_noob_recall ); DECLARE_DO_FUN( do_recho ); DECLARE_DO_FUN( do_recite ); DECLARE_DO_FUN( do_remove ); DECLARE_DO_FUN( do_rent ); DECLARE_DO_FUN( do_repair ); DECLARE_DO_FUN( do_reply ); DECLARE_DO_FUN( do_report ); DECLARE_DO_FUN( do_rest ); DECLARE_DO_FUN( do_restrict ); DECLARE_DO_FUN( do_restore ); DECLARE_DO_FUN( do_retrieve ); DECLARE_DO_FUN( do_return ); DECLARE_DO_FUN( do_rset ); DECLARE_DO_FUN( do_rstat ); DECLARE_DO_FUN( do_sacrifice ); DECLARE_DO_FUN( do_save ); DECLARE_DO_FUN( do_say ); DECLARE_DO_FUN( do_score ); /* Tyrion */ DECLARE_DO_FUN( do_pcscore ); /* Tyrion */ DECLARE_DO_FUN( do_sell ); DECLARE_DO_FUN( do_separate ); DECLARE_DO_FUN( do_setlev ); DECLARE_DO_FUN( do_shout ); DECLARE_DO_FUN( do_shutdow ); DECLARE_DO_FUN( do_shutdown ); DECLARE_DO_FUN( do_silence ); DECLARE_DO_FUN( do_sla ); DECLARE_DO_FUN( do_slay ); DECLARE_DO_FUN( do_sleep ); DECLARE_DO_FUN( do_slist ); DECLARE_DO_FUN( do_slookup ); DECLARE_DO_FUN( do_snoop ); DECLARE_DO_FUN( do_socials ); DECLARE_DO_FUN( do_south ); DECLARE_DO_FUN( do_spells ); DECLARE_DO_FUN( do_spells2 ); /* Tyrion */ DECLARE_DO_FUN( do_skills ); /* Ahsile */ DECLARE_DO_FUN( do_split ); DECLARE_DO_FUN( do_sset ); DECLARE_DO_FUN( do_sstat ); DECLARE_DO_FUN( do_string ); DECLARE_DO_FUN( do_sstime ); DECLARE_DO_FUN( do_stand ); DECLARE_DO_FUN( do_store ); DECLARE_DO_FUN( do_study ); DECLARE_DO_FUN( do_switch ); DECLARE_DO_FUN( do_control_switch); /* Tyrion, for the CONTROL spells */ DECLARE_DO_FUN( do_tell ); DECLARE_DO_FUN( do_throw ); DECLARE_DO_FUN( do_time ); DECLARE_DO_FUN( do_title ); DECLARE_DO_FUN( do_train ); DECLARE_DO_FUN( do_transfer ); DECLARE_DO_FUN( do_trust ); DECLARE_DO_FUN( do_typo ); DECLARE_DO_FUN( do_unlock ); DECLARE_DO_FUN( do_up ); DECLARE_DO_FUN( do_users ); DECLARE_DO_FUN( do_value ); DECLARE_DO_FUN( do_visible ); DECLARE_DO_FUN( do_reality ); /* Darkone */ DECLARE_DO_FUN( do_vused ); DECLARE_DO_FUN( do_wake ); 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_wimpy ); DECLARE_DO_FUN( do_withdraw ); DECLARE_DO_FUN( do_wizhelp ); DECLARE_DO_FUN( do_wizify ); DECLARE_DO_FUN( do_wizlist ); DECLARE_DO_FUN( do_wizlock ); DECLARE_DO_FUN( do_worth ); DECLARE_DO_FUN( do_wrlist ); DECLARE_DO_FUN( do_yell ); DECLARE_DO_FUN( do_zap ); DECLARE_DO_FUN( do_fire ); /* Tyrion */ DECLARE_DO_FUN( do_stare ); /* XOR */ DECLARE_DO_FUN( do_vnum ); DECLARE_DO_FUN( do_load ); DECLARE_DO_FUN( do_push ); DECLARE_DO_FUN( do_drag ); DECLARE_DO_FUN( do_guild ); DECLARE_DO_FUN( do_unguild ); DECLARE_DO_FUN( do_setrank ); DECLARE_DO_FUN( do_gdt ); DECLARE_DO_FUN( do_authorize ); DECLARE_DO_FUN( do_hide_obj ); /* Hiding objects */ DECLARE_DO_FUN( do_search ); /* Search for hidden items */ DECLARE_DO_FUN( do_lose ); /* lose your followers */ DECLARE_DO_FUN( do_delet ); /* delete pfile securety */ DECLARE_DO_FUN( do_delete ); /* delete playerfile */ DECLARE_DO_FUN( do_demigod ); /* Tyrion */ DECLARE_DO_FUN( do_mutter ); /* Tyrion */ DECLARE_DO_FUN( do_gratz ); /* Tyrion */ DECLARE_DO_FUN( do_clanview ); /* Tyrion */ DECLARE_DO_FUN( do_clan_heal ); /* Tyrion */ DECLARE_DO_FUN( do_mount ); /* Tyrion */ DECLARE_DO_FUN( do_dismount ); /* Tyrion */ DECLARE_DO_FUN( do_devote ); /* Tyrion, for religion purposes */ DECLARE_DO_FUN( do_resetxp ); /* Ahsile */ DECLARE_DO_FUN( do_realmemory ); /* Ahsile */ DECLARE_DO_FUN( do_top ); /* Ahsile */ DECLARE_DO_FUN( do_showcorrupt ); /* Ahsile */ DECLARE_DO_FUN( do_marry ); DECLARE_DO_FUN( do_divorce ); DECLARE_DO_FUN( do_rings ); DECLARE_DO_FUN( do_remortalize ); /* Tyrion */ DECLARE_DO_FUN( do_null ); DECLARE_DO_FUN( do_null_dis ); /* Hack for disabled commands - Ahsile */ /* Racial DO_FUN declarations */ DECLARE_DO_FUN( do_breathe_fire ); /* Tyrion */ DECLARE_DO_FUN( do_race_fly ); /* Tyrion */ /* Additions by The Maniac for Languages */ DECLARE_DO_FUN( do_common ); DECLARE_DO_FUN( do_human ); DECLARE_DO_FUN( do_dwarvish ); DECLARE_DO_FUN( do_elvish ); DECLARE_DO_FUN( do_gnomish ); DECLARE_DO_FUN( do_dragon ); DECLARE_DO_FUN( do_demon ); DECLARE_DO_FUN( do_angel ); DECLARE_DO_FUN( do_ogre ); DECLARE_DO_FUN( do_drow ); DECLARE_DO_FUN( do_elder ); DECLARE_DO_FUN( do_pixie ); DECLARE_DO_FUN( do_hobbit ); DECLARE_DO_FUN( do_lizard ); DECLARE_DO_FUN( do_minotaur ); DECLARE_DO_FUN( do_halfling ); DECLARE_DO_FUN( do_canine ); DECLARE_DO_FUN( do_feline ); DECLARE_DO_FUN( do_orcish ); DECLARE_DO_FUN( do_magick ); DECLARE_DO_FUN( do_shadow_talk ); DECLARE_DO_FUN( do_spiritspeak ); DECLARE_DO_FUN( do_enlightened ); DECLARE_DO_FUN( do_satanic ); DECLARE_DO_FUN( do_animalspeak ); DECLARE_DO_FUN( do_bretonnian ); DECLARE_DO_FUN( do_lstat ); /* language stat */ DECLARE_DO_FUN( do_lset ); /* Language set */ DECLARE_DO_FUN( do_learn ); /* learn a language */ DECLARE_DO_FUN( do_speak ); /* Select a language to speak */ DECLARE_DO_FUN( do_gargoyle ); DECLARE_DO_FUN( do_transmute ); DECLARE_DO_FUN( do_utopian_healing); /* Tyrion */ DECLARE_DO_FUN( do_image ); DECLARE_DO_FUN( do_doomshield ); DECLARE_DO_FUN( do_smash ); DECLARE_DO_FUN( do_farsight ); DECLARE_DO_FUN( do_palm ); /* Darkone */ DECLARE_DO_FUN( do_steal ); /* Darkone */ DECLARE_DO_FUN( do_invis ); DECLARE_DO_FUN( do_heal ); /* by Maniac */ /* * All learnable skills are operated with the "use" command * - Ahsile */ DECLARE_SKILL_FUN( skill_assassinate ); DECLARE_SKILL_FUN( skill_backstab ); DECLARE_SKILL_FUN( skill_bash ); DECLARE_SKILL_FUN( skill_berserk ); DECLARE_SKILL_FUN( skill_cause_panic ); /* Darkone */ DECLARE_SKILL_FUN( skill_bloodthirsty ); /* Darkone */ DECLARE_SKILL_FUN( skill_chameleon ); DECLARE_SKILL_FUN( skill_circle ); DECLARE_SKILL_FUN( skill_dim_mak ); /* Darkone */ DECLARE_SKILL_FUN( skill_gravebind ); /* Tyrion */ DECLARE_SKILL_FUN( skill_embalm ); /* Tyrion */ DECLARE_SKILL_FUN( skill_lore ); /* Darkone */ DECLARE_SKILL_FUN( skill_snare ); /* Darkone */ DECLARE_SKILL_FUN( skill_untangle ); /* Darkone */ DECLARE_SKILL_FUN( skill_ethereal_wolf ); /* Tyrion */ DECLARE_SKILL_FUN( skill_ethereal_snake ); /* Tyrion */ DECLARE_SKILL_FUN( skill_study ); /* Studie spells from scrolls */ DECLARE_SKILL_FUN( skill_double_backstab ); /* Darkone */ DECLARE_SKILL_FUN( skill_triple_backstab ); /* Ahsile */ DECLARE_SKILL_FUN( skill_weaponmaster ); /* Darkone */ DECLARE_SKILL_FUN( skill_rage ); /* Darkone */ DECLARE_SKILL_FUN( skill_blindfold ); /* Darkone */ DECLARE_SKILL_FUN( skill_cloaking ); /* Darkone */ DECLARE_SKILL_FUN( skill_thick_skin ); /* Darkone */ DECLARE_SKILL_FUN( skill_paralyse ); /* Darkone */ DECLARE_SKILL_FUN( skill_slit ); /* Darkone */ DECLARE_SKILL_FUN( skill_devour ); /* Tyrion */ DECLARE_SKILL_FUN( skill_forage ); /* Tyrion */ DECLARE_SKILL_FUN( skill_divining ); /* Tyrion */ DECLARE_SKILL_FUN( skill_primalscream ); /* Tyrion */ DECLARE_SKILL_FUN( skill_axe_kick ); /* Tyrion */ DECLARE_SKILL_FUN( skill_death_strike ); /* Tyrion */ DECLARE_SKILL_FUN( skill_improved_hide ); /* Tyrion */ DECLARE_SKILL_FUN( skill_stealth ); /* Tyrion */ DECLARE_SKILL_FUN( skill_disguise ); DECLARE_SKILL_FUN( skill_drain_life ); DECLARE_SKILL_FUN( skill_gouge ); DECLARE_SKILL_FUN( skill_dirt_kick ); /* Aglovale */ DECLARE_SKILL_FUN( skill_break_weapon ); /* Darkone */ DECLARE_SKILL_FUN( skill_rake ); /* Darkone */ DECLARE_SKILL_FUN( skill_brew ); DECLARE_SKILL_FUN( skill_inscription ); DECLARE_SKILL_FUN( skill_metamorph ); /* Darkone */ DECLARE_SKILL_FUN( skill_voodo ); /* Rewrote by Tyrion */ DECLARE_SKILL_FUN( skill_war_chant ); DECLARE_SKILL_FUN( skill_stun ); DECLARE_SKILL_FUN( skill_trip ); /* Darkone */ DECLARE_SKILL_FUN( skill_strangle ); /* Darkone */ DECLARE_SKILL_FUN( skill_soulstrike ); DECLARE_SKILL_FUN( skill_sneak ); DECLARE_SKILL_FUN( skill_shadow ); DECLARE_SKILL_FUN( skill_shadow_walk ); DECLARE_SKILL_FUN( skill_rescue ); DECLARE_SKILL_FUN( skill_punch ); DECLARE_SKILL_FUN( skill_poison_weapon ); DECLARE_SKILL_FUN( skill_depoison_weapon ); /* Darkone */ DECLARE_SKILL_FUN( skill_pick ); DECLARE_SKILL_FUN( skill_mental_drain ); DECLARE_SKILL_FUN( skill_kick ); DECLARE_SKILL_FUN( skill_back_kick ); /* Tyrion */ DECLARE_SKILL_FUN( skill_slam ); /* Darkone */ DECLARE_SKILL_FUN( skill_shriek ); /* Aglovale */ DECLARE_SKILL_FUN( skill_chop ); /* Aglovale */ DECLARE_SKILL_FUN( skill_head_butt ); /* Darkone */ DECLARE_SKILL_FUN( skill_claw ); /* Darkone */ DECLARE_SKILL_FUN( skill_bite ); /* Darkone */ DECLARE_SKILL_FUN( skill_irongrip ); DECLARE_SKILL_FUN( skill_heighten ); DECLARE_SKILL_FUN( skill_occulutus ); /* Aglovale */ DECLARE_SKILL_FUN( skill_home_travel ); DECLARE_SKILL_FUN( skill_quickness ); /* Darkone */ DECLARE_SKILL_FUN( skill_unwavering_reflexes ); /* Ahsile */ DECLARE_SKILL_FUN( skill_hide ); DECLARE_SKILL_FUN( skill_hunt ); /* by Maniac */ DECLARE_SKILL_FUN( skill_retreat ); /* Darkone */ DECLARE_SKILL_FUN( skill_dim_mak ); /* Darkone */ DECLARE_SKILL_FUN( skill_feed ); DECLARE_SKILL_FUN( skill_gorge ); DECLARE_SKILL_FUN( skill_disarm ); DECLARE_SKILL_FUN( skill_scan ); /* Darkone */ DECLARE_SKILL_FUN( skill_skin ); DECLARE_SKILL_FUN( skill_tan ); DECLARE_SKILL_FUN( skill_forestry ); DECLARE_SKILL_FUN( skill_fletching ); DECLARE_SKILL_FUN( skill_mining ); DECLARE_SKILL_FUN( skill_forging ); DECLARE_SKILL_FUN( skill_track ); DECLARE_SKILL_FUN( skill_lightning_arrow ); /* * Spell functions. * Defined in magic.c. */ DECLARE_SPELL_FUN( spell_null ); DECLARE_SPELL_FUN( spell_iceball ); /* Tyrion */ DECLARE_SPELL_FUN( spell_cone_of_frost ); /* Tyrion */ DECLARE_SPELL_FUN( spell_solidify ); /* Tyrion */ DECLARE_SPELL_FUN( spell_cloud_of_cold ); /* Tyrion */ DECLARE_SPELL_FUN( spell_winters_chill ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_ice_elemental ); /* Tyrion */ DECLARE_SPELL_FUN( spell_tomb_rot ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_water_elemental ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_earth_elemental ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_air_elemental ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_dust_elemental ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_dragon ); /* Tyrion */ DECLARE_SPELL_FUN( spell_icequake ); /* Tyrion */ DECLARE_SPELL_FUN( spell_circle_of_fire ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_fire_elemental ); /* Tyrion */ DECLARE_SPELL_FUN( spell_daemonic_might ); /* Tyrion */ DECLARE_SPELL_FUN( spell_age ); /* Tyrion */ DECLARE_SPELL_FUN( spell_blood_omen ); /* Tyrion */ DECLARE_SPELL_FUN( spell_daemonic_possession ); /* Tyrion */ DECLARE_SPELL_FUN( spell_tortured_soul ); /* Tyrion */ DECLARE_SPELL_FUN( spell_flash_burn ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_greater_demon ); /* Tyrion */ DECLARE_SPELL_FUN( spell_demonfire ); /* Tyrion */ DECLARE_SPELL_FUN( spell_acid_blast ); DECLARE_SPELL_FUN( spell_animate ); DECLARE_SPELL_FUN( spell_armor ); DECLARE_SPELL_FUN( spell_astral ); DECLARE_SPELL_FUN( spell_aura ); DECLARE_SPELL_FUN( spell_shadow_plane ); /* Darkone */ DECLARE_SPELL_FUN( spell_bless ); DECLARE_SPELL_FUN( spell_blindness ); DECLARE_SPELL_FUN( spell_blood_bath ); 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_fireshield ); DECLARE_SPELL_FUN( spell_demonshield ); DECLARE_SPELL_FUN( spell_acid_shield ); /* Aglovale */ DECLARE_SPELL_FUN( spell_chill_touch ); DECLARE_SPELL_FUN( spell_colour_spray ); DECLARE_SPELL_FUN( spell_continual_light ); DECLARE_SPELL_FUN( spell_control_weather ); DECLARE_SPELL_FUN( spell_create_food ); DECLARE_SPELL_FUN( spell_create_spring ); DECLARE_SPELL_FUN( spell_create_water ); DECLARE_SPELL_FUN( spell_cure_blindness ); DECLARE_SPELL_FUN( spell_cure_critical ); DECLARE_SPELL_FUN( spell_cure_light ); DECLARE_SPELL_FUN( spell_cure_poison ); DECLARE_SPELL_FUN( spell_cure_serious ); DECLARE_SPELL_FUN( spell_curse ); DECLARE_SPELL_FUN( spell_detect_evil ); DECLARE_SPELL_FUN( spell_detect_hidden ); DECLARE_SPELL_FUN( spell_detect_invis ); DECLARE_SPELL_FUN( spell_detect_magic ); DECLARE_SPELL_FUN( spell_detect_poison ); DECLARE_SPELL_FUN( spell_dispel_evil ); DECLARE_SPELL_FUN( spell_dispel_magic ); 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_fireball ); DECLARE_SPELL_FUN( spell_flamestrike ); DECLARE_SPELL_FUN( spell_fly ); DECLARE_SPELL_FUN( spell_gate ); DECLARE_SPELL_FUN( spell_general_purpose ); DECLARE_SPELL_FUN( spell_giant_strength ); DECLARE_SPELL_FUN( spell_titan_strength ); DECLARE_SPELL_FUN( spell_haste ); DECLARE_SPELL_FUN( spell_swiftness ); DECLARE_SPELL_FUN( spell_goodberry ); DECLARE_SPELL_FUN( spell_harm ); DECLARE_SPELL_FUN( spell_heal ); DECLARE_SPELL_FUN( spell_high_explosive ); DECLARE_SPELL_FUN( spell_iceshield ); DECLARE_SPELL_FUN( spell_icestorm ); DECLARE_SPELL_FUN( spell_identify ); DECLARE_SPELL_FUN( spell_incinerate ); DECLARE_SPELL_FUN( spell_inertial ); DECLARE_SPELL_FUN( spell_infravision ); DECLARE_SPELL_FUN( spell_invis ); DECLARE_SPELL_FUN( spell_improved_invis ); /* Darkone */ 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_mana ); DECLARE_SPELL_FUN( spell_mass_invis ); DECLARE_SPELL_FUN( spell_mental_block ); DECLARE_SPELL_FUN( spell_pass_door ); DECLARE_SPELL_FUN( spell_permenancy ); DECLARE_SPELL_FUN( spell_poison ); DECLARE_SPELL_FUN( spell_pestilence ); /* Tyrion */ DECLARE_SPELL_FUN( spell_blade_doom ); /* Darkone */ DECLARE_SPELL_FUN( spell_portal ); DECLARE_SPELL_FUN( spell_vine_portal ); /* Darkone */ DECLARE_SPELL_FUN( spell_protection ); DECLARE_SPELL_FUN( spell_refresh ); DECLARE_SPELL_FUN( spell_remove_curse ); DECLARE_SPELL_FUN( spell_remove_invis ); /* Darkone */ DECLARE_SPELL_FUN( spell_sanctuary ); DECLARE_SPELL_FUN( spell_scry ); DECLARE_SPELL_FUN( spell_shocking_grasp ); DECLARE_SPELL_FUN( spell_shockshield ); DECLARE_SPELL_FUN( spell_shield ); DECLARE_SPELL_FUN( spell_sleep ); DECLARE_SPELL_FUN( spell_spell_bind ); DECLARE_SPELL_FUN( spell_stone_skin ); DECLARE_SPELL_FUN( spell_summon ); DECLARE_SPELL_FUN( spell_teleport ); DECLARE_SPELL_FUN( spell_turn_undead ); 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_summon_swarm ); /* XOR */ DECLARE_SPELL_FUN( spell_summon_pack ); /* XOR */ DECLARE_SPELL_FUN( spell_summon_demon ); /* XOR */ DECLARE_SPELL_FUN( spell_cancellation ); /* XOR */ DECLARE_SPELL_FUN( spell_detect_good ); /* XOR */ DECLARE_SPELL_FUN( spell_protection_good ); /* XOR */ DECLARE_SPELL_FUN( spell_enchanted_song ); /* XOR */ DECLARE_SPELL_FUN( spell_holy_strength ); /* XOR */ DECLARE_SPELL_FUN( spell_curse_of_nature ); /* XOR */ DECLARE_SPELL_FUN( spell_holysword ); /* ELVIS */ DECLARE_SPELL_FUN( spell_summon_angel ); /* ELVIS */ DECLARE_SPELL_FUN( spell_holy_fires ); /* ELVIS */ DECLARE_SPELL_FUN( spell_truesight ); /* ELVIS */ DECLARE_SPELL_FUN( spell_bladebarrier ); /* ELVIS */ DECLARE_SPELL_FUN( spell_flame_blade ); /* ELVIS */ DECLARE_SPELL_FUN( spell_chaos_blade ); /* ELVIS */ DECLARE_SPELL_FUN( spell_frost_blade ); /* ELVIS */ /* DECLARE_SPELL_FUN( spell_acid_blade ); Aglovale */ DECLARE_SPELL_FUN( spell_web ); /* ELVIS */ DECLARE_SPELL_FUN( spell_entangle ); /* ELVIS */ DECLARE_SPELL_FUN( spell_darkbless ); /* ELVIS */ DECLARE_SPELL_FUN( spell_confusion ); /* ELVIS */ DECLARE_SPELL_FUN( spell_bio_acceleration ); /* ELVIS */ DECLARE_SPELL_FUN( spell_mind_probe ); /* ELVIS */ DECLARE_SPELL_FUN( spell_chain_lightning ); /* ELVIS */ DECLARE_SPELL_FUN( spell_meteor_swarm ); /* ELVIS */ DECLARE_SPELL_FUN( spell_psychic_quake ); /* ELVIS */ DECLARE_SPELL_FUN( spell_fumble ); /* ELVIS */ DECLARE_SPELL_FUN( spell_dancing_lights ); /* ELVIS */ DECLARE_SPELL_FUN( spell_summon_shadow ); /* ELVIS */ DECLARE_SPELL_FUN( spell_summon_beast ); /* ELVIS */ DECLARE_SPELL_FUN( spell_summon_trent ); /* ELVIS */ DECLARE_SPELL_FUN( spell_shatter ); /* ELVIS */ DECLARE_SPELL_FUN( spell_molecular_unbind ); /* ELVIS */ DECLARE_SPELL_FUN( spell_phase_shift ); /* ELVIS */ DECLARE_SPELL_FUN( spell_malignify ); /* Tyrion */ DECLARE_SPELL_FUN( spell_healing_hands ); /* -- Altrag */ DECLARE_SPELL_FUN( spell_plague ); /* Tyrion */ DECLARE_SPELL_FUN( spell_unholy_curse ); /* Tyrion */ DECLARE_SPELL_FUN( spell_unholy_wrath ); /* Tyrion */ DECLARE_SPELL_FUN( spell_unholy_prayer ); /* Tyrion */ DECLARE_SPELL_FUN( spell_golden_armor ); /* Darkone */ DECLARE_SPELL_FUN( spell_divining ); /* Tyrion */ DECLARE_SPELL_FUN( spell_ghost_shield ); /* Tyrion */ DECLARE_SPELL_FUN( spell_mist ); /* Tyrion */ DECLARE_SPELL_FUN( spell_chi_blast ); /* Tyrion */ DECLARE_SPELL_FUN( spell_chi_storm ); /* Tyrion */ DECLARE_SPELL_FUN( spell_chi_healing ); /* Tyrion */ DECLARE_SPELL_FUN( spell_chi_wave ); /* Tyrion */ DECLARE_SPELL_FUN( spell_shockwave ); /* Tyrion */ DECLARE_SPELL_FUN( spell_sunburst ); /* Tyrion */ DECLARE_SPELL_FUN( spell_phantom_form ); /* Tyrion */ DECLARE_SPELL_FUN( spell_spark ); /* Tyrion */ DECLARE_SPELL_FUN( spell_scrye ); /* Tyrion */ DECLARE_SPELL_FUN( spell_visions ); /* Tyrion */ DECLARE_SPELL_FUN( spell_shadow_image ); /* Tyrion */ DECLARE_SPELL_FUN( spell_control_dragon ); /* Tyrion */ DECLARE_SPELL_FUN( spell_control_hawk ); /* Tyrion */ DECLARE_SPELL_FUN( spell_control_wolf ); /* Tyrion */ DECLARE_SPELL_FUN( spell_control_tiger ); /* Tyrion */ DECLARE_SPELL_FUN( spell_control_trent ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_hawk ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_wolf ); /* Tyrion */ DECLARE_SPELL_FUN( spell_summon_tiger ); /* Tyrion */ DECLARE_SPELL_FUN( spell_unholy_fires ); /* Sethric */ DECLARE_SPELL_FUN( spell_stigeon_mists ); /* Sethric */ DECLARE_SPELL_FUN( spell_satanic_caress ); /* Sethric */ DECLARE_SPELL_FUN( spell_control_undead ); /* Sethric */ DECLARE_SPELL_FUN( spell_satanic_inferno ); /* Sethric */ DECLARE_SPELL_FUN( spell_spark_blade ); /* Tyrion */ DECLARE_SPELL_FUN( spell_dispel_blade ); /* Tyrion */ DECLARE_SPELL_FUN( spell_armour_piercing_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_emp_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_energy_pulse_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_laser_beam_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_particle_beam_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_flame_thrower_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_stun_gun_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_mortar_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_nails_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_nuclear_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_normal_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_white_light_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_freeze_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_musket_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_cannon_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_crossbow_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_dart_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_pie_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_arrow_bullet ); /* Tyrion */ DECLARE_SPELL_FUN( spell_wrath_of_god ); /* Tyrion */ DECLARE_SPELL_FUN( spell_aura_of_anti_magic ); /* Tyrion */ DECLARE_SPELL_FUN( spell_holy_protection ); /* Tyrion */ DECLARE_SPELL_FUN( spell_soul_bind ); /* Tyrion */ DECLARE_SPELL_FUN( spell_blood_gout ); /* Tyrion */ DECLARE_SPELL_FUN( spell_bloodshield ); /* Tyrion */ DECLARE_SPELL_FUN( spell_mother_natures_blessing );/* Tyrion */ DECLARE_SPELL_FUN( spell_bark_skin ); /* Tyrion */ DECLARE_SPELL_FUN( spell_thunder_strike ); /* Tyrion */ DECLARE_SPELL_FUN( spell_friend_of_nature ); /* Tyrion */ DECLARE_SPELL_FUN( spell_bend_light ); /* Keirkan */ DECLARE_SPELL_FUN( spell_create_illusion ); /* Keirkan */ DECLARE_SPELL_FUN( spell_cloud_of_healing ); /* Keirkan */ DECLARE_SPELL_FUN( spell_earthblast ); /* Keirkan */ DECLARE_SPELL_FUN( spell_tale_of_terror ); /* Keirkan */ DECLARE_SPELL_FUN( spell_mana_shield ); /* Tyrion */ DECLARE_SPELL_FUN( spell_holy_sword_spell ); /* Tyrion, used in spell_holysword */ DECLARE_SPELL_FUN( spell_unholysword ); /* Cuz it sucked the first time */ DECLARE_SPELL_FUN( spell_unholy_sword_spell ); /* Tyrion, used in spell_unholysword */ DECLARE_SPELL_FUN( spell_daggers_of_pain ); /* Tyrion */ DECLARE_SPELL_FUN( spell_spectral_armor ); /* Tyrion */ DECLARE_SPELL_FUN( spell_wisp_of_protection); /* Tyrion */ DECLARE_SPELL_FUN( spell_vortex ); /* Tyrion */ DECLARE_SPELL_FUN( spell_nagaroms_curse ); /* Tyrion */ DECLARE_SPELL_FUN( spell_prayer ); /* Tyrion */ DECLARE_SPELL_FUN( spell_lullaby ); /* Tyrion */ DECLARE_SPELL_FUN( spell_golden_sanctuary ); /* Tyrion */ /* * Psi spell_functions, in magic.c. */ DECLARE_SPELL_FUN( spell_adrenaline_control); DECLARE_SPELL_FUN( spell_agitation ); DECLARE_SPELL_FUN( spell_aura_sight ); DECLARE_SPELL_FUN( spell_awe ); DECLARE_SPELL_FUN( spell_ballistic_attack ); DECLARE_SPELL_FUN( spell_biofeedback ); DECLARE_SPELL_FUN( spell_cell_adjustment ); DECLARE_SPELL_FUN( spell_chaosfield ); DECLARE_SPELL_FUN( spell_combat_mind ); DECLARE_SPELL_FUN( spell_complete_healing ); DECLARE_SPELL_FUN( spell_control_flames ); DECLARE_SPELL_FUN( spell_create_sound ); DECLARE_SPELL_FUN( spell_death_field ); DECLARE_SPELL_FUN( spell_detonate ); DECLARE_SPELL_FUN( spell_disintegrate ); DECLARE_SPELL_FUN( spell_displacement ); DECLARE_SPELL_FUN( spell_disrupt ); DECLARE_SPELL_FUN( spell_domination ); DECLARE_SPELL_FUN( spell_ectoplasmic_form ); DECLARE_SPELL_FUN( spell_ego_whip ); DECLARE_SPELL_FUN( spell_energy_containment); DECLARE_SPELL_FUN( spell_enhance_armor ); DECLARE_SPELL_FUN( spell_enhanced_strength ); DECLARE_SPELL_FUN( spell_flesh_armor ); DECLARE_SPELL_FUN( spell_inertial_barrier ); DECLARE_SPELL_FUN( spell_inflict_pain ); DECLARE_SPELL_FUN( spell_intellect_fortress); DECLARE_SPELL_FUN( spell_lend_health ); DECLARE_SPELL_FUN( spell_levitation ); DECLARE_SPELL_FUN( spell_spectral_wings ); DECLARE_SPELL_FUN( spell_mental_barrier ); DECLARE_SPELL_FUN( spell_mind_thrust ); DECLARE_SPELL_FUN( spell_project_force ); DECLARE_SPELL_FUN( spell_psionic_blast ); DECLARE_SPELL_FUN( spell_psychic_crush ); DECLARE_SPELL_FUN( spell_psychic_drain ); DECLARE_SPELL_FUN( spell_psychic_healing ); DECLARE_SPELL_FUN( spell_share_strength ); DECLARE_SPELL_FUN( spell_thought_shield ); DECLARE_SPELL_FUN( spell_ultrablast ); DECLARE_SPELL_FUN( gspell_flamesphere ); DECLARE_SPELL_FUN( gspell_mass_shield ); DECLARE_SPELL_FUN( gspell_smite_good ); DECLARE_SPELL_FUN( gspell_smite_evil ); DECLARE_SPELL_FUN( gspell_deadly_poison ); DECLARE_SPELL_FUN( gspell_volcanic_blast ); DECLARE_SPELL_FUN( spell_power_leak ); /* Tyrion and Keirkan */ DECLARE_SPELL_FUN( spell_breathe_water ); DECLARE_SPELL_FUN( spell_shadow_bolt ); /* Tyrion */ DECLARE_SPELL_FUN( spell_shadow_storm ); /* Tyrion */ DECLARE_SPELL_FUN( spell_mark ); /* Tyrion */ DECLARE_SPELL_FUN( spell_rune_recall ); /* Tyrion */ DECLARE_SPELL_FUN( spell_randomshield ); /* Tyrion */ DECLARE_SPELL_FUN( spell_sonic_blast ); /* Tyrion */ DECLARE_SPELL_FUN( spell_sonic_boom ); /* Tyrion */ DECLARE_SPELL_FUN( spell_hellfire ); /* Tyrion */ DECLARE_SPELL_FUN( spell_resurrection ); /* Tyrion */ DECLARE_SPELL_FUN( gspell_timequake ); /* Tyrion */ DECLARE_SPELL_FUN( spell_earthshield ); /* Tyrion */ DECLARE_SPELL_FUN( spell_leaf_shield ); /* Tyrion */ DECLARE_SPELL_FUN( spell_leaf_strike ); /* Tyrion */ DECLARE_SPELL_FUN( gspell_restoration ); /* Tyrion */ DECLARE_SPELL_FUN( spell_shards_of_glass ); /* Tyrion */ DECLARE_SPELL_FUN( spell_circle_of_love ); /* Tyrion */ DECLARE_SPELL_FUN( spell_luck_shield ); /* Tyrion */ DECLARE_SPELL_FUN( spell_tongues ); /* Tyrion */ DECLARE_SPELL_FUN( spell_liquid_skin ); /* Tyrion */ DECLARE_SPELL_FUN( spell_spiritual_hammer ); /* Tyrion */ DECLARE_SPELL_FUN( spell_angelic_aura ); /* Tyrion */ DECLARE_SPELL_FUN( spell_waterspike ); /* Ahsile */ DECLARE_SPELL_FUN( spell_ethereal_wolf_bite ); /* Tyrion */ DECLARE_SPELL_FUN( spell_ethereal_wolf_claw ); /* Tyrion */ DECLARE_SPELL_FUN( spell_ethereal_wolf_howl ); /* Tyrion */ DECLARE_SPELL_FUN( spell_deception_of_aura ); /* Ahsile */ DECLARE_SPELL_FUN( spell_ethereal_snake_bite ); /* Tyrion */ DECLARE_SPELL_FUN( spell_leap ); /* Ahsile */ DECLARE_SPELL_FUN( spell_leap_of_torfi ); /* Ahsile */ DECLARE_SPELL_FUN( spell_tomba_di_vemon ); /* Ahsile */ DECLARE_SPELL_FUN( spell_niraks_curse_of_the_damned); /* Tyrion */ DECLARE_SPELL_FUN( spell_thieves_cant ); /* Ahsile */ DECLARE_SPELL_FUN( spell_ethereal_snake_strike ); /* Tyrion */ DECLARE_SPELL_FUN( spell_ethereal_snake_devour ); /* Tyrion */ DECLARE_SPELL_FUN( spell_force_of_nature ); /* Tyrion */ DECLARE_SPELL_FUN( spell_heavy_fog ); /* Tyrion */ DECLARE_SPELL_FUN( spell_forestwalk ); /* Tyrion */ DECLARE_SPELL_FUN( spell_mountainwalk ); /* Tyrion */ DECLARE_SPELL_FUN( spell_plainswalk ); /* Tyrion */ DECLARE_SPELL_FUN( spell_swampwalk ); /* Tyrion */ DECLARE_SPELL_FUN( spell_tranquility ); /* Tyrion */ DECLARE_SPELL_FUN( spell_lightning_storm ); /* Tyrion */ DECLARE_SPELL_FUN( spell_refreshing_rain ); /* Tyrion */ DECLARE_SPELL_FUN( spell_storm_seeker ); /* Tyrion */ DECLARE_SPELL_FUN( spell_essence_of_gaia ); /* Tyrion */ DECLARE_SPELL_FUN( spell_transmutation ); DECLARE_SPELL_FUN( spell_unholy_strength ); /* Tyrion */ /* * 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( linux ) char * crypt args( ( const char *key, const char *salt ) ); #endif #if defined( macintosh ) #define NOCRYPT #if defined( unix ) #undef unix #endif #endif #if defined( MIPS_OS ) char * crypt args( ( const char *key, const char *salt ) ); #endif #if defined( MSDOS ) #define NOCRYPT #if defined( unix ) #undef unix #endif #endif #if defined( RUN_AS_WIN32SERVICE ) #include "crypt.h" #endif #include "mmgr.h" #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, ... ) ); size_t fread args( ( void *ptr, size_t size, size_t 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( 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). */ #if defined( macintosh ) #define PLAYER_DIR "" /* Player files */ #define NULL_FILE "proto.are" /* To reserve one stream */ #endif #if defined(RUN_AS_WIN32SERVICE) #define PLAYER_DIR "../player/" #define NULL_FILE "nul" #endif #if defined( MSDOS ) #define PLAYER_DIR "" /* Player files */ #define NULL_FILE "nul" /* To reserve one stream */ #endif #if defined( unix ) #define PLAYER_DIR "../player/" /* Player files */ #define NULL_FILE "/dev/null" /* To reserve one stream */ #endif #if defined( linux ) #define PLAYER_DIR "../player/" /* Player files */ #define NULL_FILE "/dev/null" /* To reserve one stream */ #endif #if defined( linux ) #define MOB_DIR "../MOBProgs/" /* MOBProg files */ #define NULL_FILE "/dev/null" #endif #define AREA_LIST "areaTS.lst" /* List of areas */ #define BUG_FILE "bugs.txt" /* For 'bug' and bug( ) */ #define IDEA_FILE "ideas.txt" /* For 'idea' */ #define TYPO_FILE "typos.txt" /* For 'typo' */ #define NOTE_FILE "notes.txt" /* For 'notes' */ #define CLAN_FILE "clan.dat" /* For 'clans' */ #define SHUTDOWN_FILE "shutdown.txt" /* For 'shutdown' */ #define DOWN_TIME_FILE "time.txt" /* For automatic shutdown */ #define USERLIST_FILE "users.txt" /* Userlist -- using identd TRI */ #define DISABLED_FILE "disabled.txt" /* For disabled commands */ #define BANK_FILE "BANK.TXT" /* For Bank Info */ #define MULTI_FILE "MULTI.TXT" /* For Multi Info */ #define RELIGION_FILE "religion.dat" /* For 'religions' */ /* * 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 CID CLAN_DATA #define SF SPEC_FUN #define GF GAME_FUN #define RLID RELIGION_DATA /* act_comm.c */ void add_follower args( ( CHAR_DATA *ch, CHAR_DATA *master ) ); void stop_follower args( ( CHAR_DATA *ch ) ); void die_follower args( ( CHAR_DATA *ch, char *name ) ); bool is_same_group args( ( CHAR_DATA *ach, CHAR_DATA *bch ) ); bool is_note_to args( ( CHAR_DATA *ch, NOTE_DATA *pnote ) ); void talk_channel_info args( ( CHAR_DATA *ch, char *argument, int channel, const char *verb ) ); void broadcast_channel args( ( CHAR_DATA *ch, char *argument, int channel, const char *sound ) ); void broadcast_room args( ( CHAR_DATA *ch, char *argument, const char *sound ) ); #ifdef SQL_SYSTEM void unlink_char args( (CHAR_DATA* ch) ); void link_char args( (CHAR_DATA* ch) ); #endif /* act_info.c */ void set_title args( ( CHAR_DATA *ch, char *title ) ); bool check_blind args( ( CHAR_DATA *ch ) ); /* act_move.c */ void move_char args( ( CHAR_DATA *ch, int door ) ); /* act_obj.c */ /* act_wiz.c */ ROOM_INDEX_DATA * find_location args( ( CHAR_DATA *ch, char *arg ) ); /* crafting.c - callbacks */ void destroy_craft args( ( CHAR_DATA* ch, bool failed ) ); void finish_craft args( ( CHAR_DATA* ch ) ); void strip_timed_room_flags args( ( ROOM_INDEX_DATA* room ) ); void set_timed_room_flags args( ( ROOM_INDEX_DATA* room, int flag, int timer ) ); /* comm.c */ void close_socket args( ( DESCRIPTOR_DATA *dclose ) ); void write_to_buffer args( ( DESCRIPTOR_DATA *d, const char *txt, int length ) ); void send_to_all_char args( ( const char *text ) ); void send_to_al args( ( int clr, int level, char *text ) ); /* send to above level---^ TRI */ void send_to_char args( ( int AType, const char *txt, CHAR_DATA *ch ) ); void set_char_color args( ( int AType, CHAR_DATA *ch ) ); void show_string args( ( DESCRIPTOR_DATA *d, char *input ) ); void act args( ( int AType, const char *format, CHAR_DATA *ch, const void *arg1, const void *arg2, int type ) ); bool is_pkillable args( ( CHAR_DATA *ch, CHAR_DATA *victim )); bool IS_SHIELDABLE args( ( CHAR_DATA *ch) ); /* act_multi.c */ void SendMultiMessage args( ( CHAR_DATA* ch ) ); /* db.c */ void boot_db args( ( void ) ); void area_update args( ( void ) ); 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( ( int vnum ) ); OID * get_obj_index args( ( int vnum ) ); RID * get_room_index args( ( int vnum ) ); CID * get_clan_index args( ( int vnum ) ); RLID * get_religion_index args( ( int vnum) ); char fread_letter args( ( FILE *fp ) ); int fread_number args( ( FILE *fp ) ); char * fread_string args( ( FILE *fp ) ); void fread_to_eol args( ( FILE *fp ) ); char * fread_word args( ( FILE *fp ) ); //void * alloc_mem args( ( int sMem ) ); void * alloc_perm args( ( int sMem ) ); void free_mem args( ( void *pMem, int sMem ) ); char * str_dup args( ( const char *str ) ); #ifdef MEM_DEBUG void f_string args( ( char *pstr ) ); #else void free_string args( ( char *pstr ) ); #endif void cleanup_strings( args( void ) ); void cleanup_disabled( args( void ) ); 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 ) ); 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 ) ); void append_file args( ( CHAR_DATA *ch, char *file, char *str ) ); void bug args( ( const char *str, int param ) ); void logch args( ( char *l_str, int l_type, int lvl ) ); void log_string args( ( char *str, int l_type, int level ) ); void tail_chain args( ( void ) ); void load_disabled args( ( void ) ); void save_disabled args( ( void ) ); bool find_corruption args( (char* aString) ); /* fight.c */ bool can_use_skspell args( ( CHAR_DATA *ch, int skspellNum ) ); void violence_update args( ( void ) ); void multi_hit args( ( CHAR_DATA *ch, CHAR_DATA *victim, int dt ) ); void damage args( ( CHAR_DATA *ch, CHAR_DATA *victim, int dam, int dt ) ); void update_pos args( ( CHAR_DATA *victim ) ); void stop_fighting args( ( CHAR_DATA *ch, bool fBoth ) ); void raw_kill args( ( CHAR_DATA *ch, CHAR_DATA *victim ) ); void death_cry args( ( CHAR_DATA *ch ) ); bool is_safe args( ( CHAR_DATA *ch, CHAR_DATA *victim ) ); /* fight2.c */ void tag_newbie_slayer args( ( CHAR_DATA* ch ) ); bool find_missle_target args( ( int sn, CHAR_DATA *ch, char *argument, CHAR_DATA** victim, ROOM_INDEX_DATA** to_room, int* distance ) ); OBJ_DATA* find_arrows args( ( CHAR_DATA* ch) ); OBJ_DATA* find_bolts args( ( CHAR_DATA* ch) ); OBJ_DATA* find_bullets args( ( CHAR_DATA* ch) ); OBJ_DATA* find_ammo args( ( CHAR_DATA* ch, int type) ); /* handler.c */ int get_trust args( ( CHAR_DATA *ch ) ); int get_age args( ( CHAR_DATA *ch ) ); int get_curr_str args( ( CHAR_DATA *ch ) ); int get_curr_int args( ( CHAR_DATA *ch ) ); int get_curr_wis args( ( CHAR_DATA *ch ) ); int get_curr_dex args( ( CHAR_DATA *ch ) ); int get_curr_con 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 ) ); void affect_to_char args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_to_char2 args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_to_char3 args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_to_char4 args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_to_char_powers args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_to_char_weaknesses args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_remove args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_remove2 args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_remove3 args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_remove4 args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_remove_powers args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_remove_weaknesses 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 ) ); bool valid_aff_loc(int location); void affect_join args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void affect_join2 args( ( CHAR_DATA *ch, AFFECT_DATA *paf ) ); void add_poison args( ( CHAR_DATA *ch, int amount ) ); void char_from_room args( ( CHAR_DATA *ch ) ); void char_to_room args( ( CHAR_DATA *ch, ROOM_INDEX_DATA *pRoomIndex ) ); void obj_to_char args( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void obj_to_storage args( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void obj_from_char args( ( OBJ_DATA *obj ) ); void obj_from_storage 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 ) ); void obj_from_room args( ( OBJ_DATA *obj ) ); void obj_to_room args( ( OBJ_DATA *obj, ROOM_INDEX_DATA *pRoomIndex ) ); void 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_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_area 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_carry args( ( CHAR_DATA *ch, char *argument ) ); OD * get_obj_storage 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 ) ); OD * create_money args( ( int amount ) ); 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( ( 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 * affect_bit_name2 args( ( int vector ) ); char * affect_bit_name3 args( ( int vector ) ); char * affect_bit_name4 args( ( int vector ) ); char * affect_bit_name_weaknesses args( ( int vector ) ); char * affect_bit_name_powers args ( ( int vector ) ); char * extra_bit_name args( ( int extra_flags ) ); char * extra_bit_name2 args( ( int extra_flags2 ) ); char * extra_bit_name3 args( ( int extra_flags3 ) ); char * extra_bit_name4 args( ( int extra_flags4 ) ); char * act_bit_name args( ( int act ) ); char * act_bit_name2 args( ( int act ) ); char * imm_bit_name args( ( int ) ); /* XOR */ CD * get_char args( ( CHAR_DATA *ch ) ); bool longstring args( ( CHAR_DATA *ch, char *argument ) ); bool authorized args( ( CHAR_DATA *ch, char *skllnm ) ); void end_of_game args( ( void ) ); int race_lookup args( ( const char *race ) ); int affect_lookup args( ( const char *race ) ); int advatoi args( ( const char *s ) ); int strlen_wo_col args( ( char *argument ) ); char * strip_color args( ( char *argument ) ); /* interp.c */ 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 ) ); bool IS_SWITCHED args( ( CHAR_DATA *ch ) ); /* magic.c */ int slot_lookup args( ( int slot ) ); bool is_sn args( ( int sn ) ); int skill_lookup args( ( const char *name ) ); bool saves_spell args( ( int level, CHAR_DATA *victim ) ); void obj_cast_spell args( ( int sn, int level, CHAR_DATA *ch, CHAR_DATA *victim, OBJ_DATA *obj ) ); void update_skpell args( ( CHAR_DATA *ch, int sn, int override ) ); void do_acspell args( ( CHAR_DATA *ch, OBJ_DATA *pObj, char *argument ) ); /* save.c */ bool _stat args( ( char *name ) ); void save_char_obj args( ( CHAR_DATA *ch, bool leftgame ) ); bool load_char_obj args( ( DESCRIPTOR_DATA *d, char *name ) ); void corpse_back args( ( CHAR_DATA *ch, OBJ_DATA *corpse ) ); /* sqlbc.c */ #ifdef SQL_SYSTEM /* Data SQL Functions */ CHAR_DATA* sql_load_char( char* name ); OBJ_DATA* sql_load_items( int InsideOf, bool Storage, OBJ_DATA* inside, CHAR_DATA* ch); ALIAS_DATA* sql_load_alias( int CharID ); AFFECT_DATA* sql_load_affects( int CharID, int AffNum ); TRAP_DATA* sql_load_traps( int vnum, int ProgType, int Exit ); MPROG_DATA* sql_load_mprog( int vnum ); EXTRA_DESCR_DATA* sql_load_ed(int vnum, char* table); AFFECT_DATA* sql_load_objaff(); bool sql_load_exits(int vnum, EXIT_DATA* e[]); bool sql_load_skills( int CharID, int table[]); bool sql_load_lang( int CharId, int table[]); bool sql_load_areas(); bool sql_load_rooms(AREA_DATA* pArea); bool sql_load_disabled(); bool sql_load_bans(); bool sql_load_clans(); bool sql_load_helps(); bool sql_load_religions(); bool sql_load_resets(); bool sql_load_mobiles(AREA_DATA* pArea); bool sql_load_objects(); bool sql_load_socials(); bool sql_load_shops(); bool remove_fastinv_tables(); bool create_fastinv_tables(); bool sql_save_char(CHAR_DATA* ch); bool sql_save_inv(OBJ_DATA* obj, int CharID, int InsideOf, bool Storage, bool Dirty); bool sql_save_dirty_list(bool Refresh); bool sql_save_dirty_char(CHAR_DATA* ch, bool Quit); void sql_save_aff(AFFECT_DATA* aff, int CharID, int Vector); bool sql_save_area(AREA_DATA* pArea); bool sql_save_rooms(AREA_DATA* pArea); bool sql_save_mobiles(AREA_DATA* pArea); bool sql_save_objects(AREA_DATA* pArea); bool sql_save_mprogs(MPROG_DATA* mplist, int Vnum); bool sql_save_traps(TRAP_DATA* traplist, int Vnum, int Type, int Exit); bool sql_save_bans(); bool sql_save_disabled(); bool sql_save_clans(); bool sql_save_religions(); bool sql_save_helps(); bool sql_save_socials(); bool sql_save_resets(); bool sql_save_shops(); #endif /* special.c */ SF * spec_lookup args( ( const char *name ) ); /* games.c */ GF * game_lookup args( ( const char *name ) ); /* dead obj handling function */ bool clean_player_objects( CHAR_DATA *ch); /* update.c */ void advance_level args( ( CHAR_DATA *ch ) ); void gain_exp args( ( CHAR_DATA *ch, int gain ) ); void gain_condition args( ( CHAR_DATA *ch, int iCond, int value ) ); void update_handler args( ( void ) ); void bank_update args( ( void ) ); /* mob_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* mob, CHAR_DATA* ch ) ); void mprog_random_trigger args ( ( CHAR_DATA* mob ) ); void mprog_speech_trigger args ( ( char* txt, CHAR_DATA* mob ) ); /* * Lotsa triggers for ore_progs.. (ore_prog.c) * -- Altrag */ /* * Object triggers */ void oprog_get_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_get_from_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, OBJ_DATA *secondary ) ); void oprog_give_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, CHAR_DATA *victim ) ); void oprog_drop_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_put_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, OBJ_DATA *secondary ) ); void oprog_fill_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, OBJ_DATA *spring ) ); void oprog_wear_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_look_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_look_in_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_invoke_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, void *vo ) ); void oprog_use_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, void *vo ) ); void oprog_cast_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_cast_sn_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, int sn, void *vo ) ); void oprog_join_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, OBJ_DATA *secondary ) ); void oprog_separate_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_buy_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, CHAR_DATA *vendor ) ); void oprog_sell_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, CHAR_DATA *vendor ) ); void oprog_store_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_retrieve_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_open_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_close_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_lock_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, OBJ_DATA *key ) ); void oprog_unlock_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch, OBJ_DATA *key ) ); void oprog_pick_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); void oprog_random_trigger args ( ( OBJ_DATA *obj ) ); void oprog_throw_trigger args ( ( OBJ_DATA *obj, CHAR_DATA *ch ) ); /* * Room triggers */ void rprog_enter_trigger args ( ( ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void rprog_exit_trigger args ( ( ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void rprog_pass_trigger args ( ( ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void rprog_cast_trigger args ( ( ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void rprog_cast_sn_trigger args ( ( ROOM_INDEX_DATA *room, CHAR_DATA *ch, int sn, void *vo ) ); void rprog_sleep_trigger args ( ( ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void rprog_wake_trigger args ( ( ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void rprog_rest_trigger args ( ( ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void rprog_death_trigger args ( ( ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void rprog_time_trigger args ( ( ROOM_INDEX_DATA *room, int hour ) ); void rprog_random_trigger args ( ( ROOM_INDEX_DATA *room ) ); /* * Exit triggers */ void eprog_enter_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void eprog_exit_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void eprog_pass_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch, bool fEnter ) ); void eprog_look_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void eprog_scry_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void eprog_open_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void eprog_close_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); void eprog_lock_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch, OBJ_DATA *obj ) ); void eprog_unlock_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch, OBJ_DATA *obj ) ); void eprog_pick_trigger args ( ( EXIT_DATA *pExit, ROOM_INDEX_DATA *room, CHAR_DATA *ch ) ); /* * gr_magic.c * -- Altrag */ void check_gcast args ( ( CHAR_DATA *ch ) ); void group_cast args ( ( int sn, int level, CHAR_DATA *ch, char *argument ) ); void set_gspell args ( ( CHAR_DATA *ch, GSPELL_DATA *gsp ) ); void end_gspell args ( ( CHAR_DATA *ch ) ); /* * track.c */ /*void hunt_victim args ( ( CHAR_DATA *ch ) ); bool can_go args ( ( CHAR_DATA *ch, int dir ) );*/ /* * chatmode.c */ /*void start_chat_mode args ( ( DESCRIPTOR_DATA *d ) ); void chat_interp args ( ( CHAR_DATA *ch, char *argument ) );*/ #undef CD #undef MID #undef OD #undef OID #undef RID #undef SF /***************************************************************************** * OLC * *****************************************************************************/ /* * This structure is used in special.c to lookup spec funcs and * also in olc_act.c to display listings of spec funcs. */ struct spec_type { char * spec_name; SPEC_FUN * spec_fun; }; struct game_type { char * game_name; GAME_FUN * game_fun; }; /* * This structure is used in bit.c to lookup flags and stats. */ struct flag_type { char * name; int bit; bool settable; }; /* * Object defined in limbo.are * Used in save.c to load objects that don't exist. */ #define OBJ_VNUM_DUMMY 1 /* * Area flags. */ #define AREA_NONE 0 #define AREA_CHANGED 1 /* Area has been modified. */ #define AREA_ADDED 2 /* Area has been added to. */ #define AREA_LOADING 4 /* Used for counting in db.c */ #define AREA_VERBOSE 8 /* Used for saving in save.c */ #define AREA_PROTOTYPE 16 /* Prototype area(no mortals) */ #define AREA_NOQUEST 32 /* Prototype area(no mortals) */ #define AREA_FUTURE 64 /* Prototype area(no mortals) */ #define AREA_PAST 128 /* Prototype area(no mortals) */ #define AREA_PRESENT 256 /* Prototype area(no mortals) */ #define AREA_NO_SAVE 512 /* Can't save characters here. Manaux... */ #define AREA_RANDOM 1024 /* Quest Area - No teleports */ #define AREA_CORRUPT 2048 /* Catch corrupt areas. Make sure they don't save to disk - Ahsile */ #define MAX_DIR 6 #define NO_FLAG -99 /* Must not be used in flags or stats. */ /* * Interp.c */ DECLARE_DO_FUN( do_aedit ); /* OLC 1.1b */ DECLARE_DO_FUN( do_redit ); /* OLC 1.1b */ DECLARE_DO_FUN( do_oedit ); /* OLC 1.1b */ DECLARE_DO_FUN( do_medit ); /* OLC 1.1b */ DECLARE_DO_FUN( do_cedit ); /* IchiCode 1.1b */ DECLARE_DO_FUN( do_hedit ); /* XOR 3.14159265359r^2 */ DECLARE_DO_FUN( do_asave ); DECLARE_DO_FUN( do_alist ); DECLARE_DO_FUN( do_resets ); DECLARE_DO_FUN( do_alias ); DECLARE_DO_FUN( do_cleanstat ); DECLARE_DO_FUN( do_reledit ); /* Tyrion */ /* * Global Constants */ extern char * const dir_name []; extern const int rev_dir []; extern const struct spec_type spec_table []; extern const struct game_type game_table []; /* * Global variables */ extern AREA_DATA * area_first; extern AREA_DATA * area_last; extern CLAN_DATA * clan_first; extern SHOP_DATA * shop_last; extern RELIGION_DATA * religion_first; extern int top_affect; extern int top_area; extern int top_ed; extern int top_exit; extern int top_help; extern int top_mob_index; extern int top_obj_index; extern int top_reset; extern int top_room; extern int top_shop; extern int top_clan; extern int top_religion; extern int top_vnum_mob; extern int top_vnum_obj; extern int top_vnum_room; extern char str_empty [1]; extern MOB_INDEX_DATA * mob_index_hash [MAX_KEY_HASH]; extern OBJ_INDEX_DATA * obj_index_hash [MAX_KEY_HASH]; extern ROOM_INDEX_DATA * room_index_hash [MAX_KEY_HASH]; /* db.c */ void reset_area args( ( AREA_DATA * pArea ) ); void reset_room args( ( ROOM_INDEX_DATA *pRoom ) ); void free_ch args( ( CHAR_DATA *ch ) ); /* string.c */ void string_edit args( ( CHAR_DATA *ch, char **pString ) ); void string_append args( ( CHAR_DATA *ch, char **pString ) ); char * string_replace args( ( char * orig, char * old, char * _new ) ); void string_add args( ( CHAR_DATA *ch, char *argument ) ); char * format_string args( ( char *oldstring /*, bool fSpace */ ) ); char * first_arg args( ( char *argument, char *arg_first, bool fCase ) ); char * string_unpad args( ( char * argument ) ); char * string_proper args( ( char * argument ) ); char * all_capitalize args( ( const char *str ) ); /* OLC 1.1b */ char * string_delline args( ( CHAR_DATA *ch, char *argument, char *old ) ); char * string_insline args( ( CHAR_DATA *ch, char *argument, char *old ) ); /* olc.c */ bool run_olc_editor args( ( DESCRIPTOR_DATA *d ) ); char *olc_ed_name args( ( CHAR_DATA *ch ) ); char *olc_ed_vnum args( ( CHAR_DATA *ch ) ); /* magic.c */ bool pk_combat_check( CHAR_DATA * ch, CHAR_DATA * victim); /* special.c */ char * spec_string args( ( SPEC_FUN *fun ) ); /* OLC */ /* bit.c */ extern const struct flag_type area_flags[]; extern const struct flag_type sex_flags[]; extern const struct flag_type exit_flags[]; extern const struct flag_type door_resets[]; extern const struct flag_type room_flags[]; extern const struct flag_type timed_room_flags[]; extern const struct flag_type sector_flags[]; extern const struct flag_type type_flags[]; extern const struct flag_type extra_flags[]; extern const struct flag_type extra_flags2[]; extern const struct flag_type extra_flags3[]; extern const struct flag_type extra_flags4[]; extern const struct flag_type wear_flags[]; extern const struct flag_type act_flags[]; extern const struct flag_type affect_flags[]; extern const struct flag_type affect2_flags[]; extern const struct flag_type affect3_flags[]; extern const struct flag_type affect4_flags[]; extern const struct flag_type affect_powers_flags[]; extern const struct flag_type affect_weaknesses_flags[]; extern const struct flag_type apply_flags[]; extern const struct flag_type quality_flags[]; extern const struct flag_type wear_loc_strings[]; extern const struct flag_type wear_loc_flags[]; extern const struct flag_type weapon_flags[]; extern const struct flag_type damage_flags[]; extern const struct flag_type ammo_flags[]; extern const struct flag_type container_flags[]; extern const struct flag_type liquid_flags[]; extern const struct flag_type immune_flags[]; extern const struct flag_type mprog_types[]; extern const struct flag_type oprog_types[]; extern const struct flag_type rprog_types[]; extern const struct flag_type eprog_types[]; /* olc_act.c */ extern int flag_value args ( ( const struct flag_type *flag_table, char *argument ) ); extern void check_nofloor args ( ( CHAR_DATA *ch ) ); extern char *flag_string args ( ( const struct flag_type *flag_table, int bits ) ); extern void save_clans args ( ( ) ); extern void save_religions args ( ( ) ); extern void wind_update args ( ( AREA_DATA *pArea ) ); extern void send_to_area args ( ( AREA_DATA *pArea, char *txt ) ); /* hunt.c */ void hunt_victim args( ( CHAR_DATA *ch ) ); /* language.c */ void do_language args( ( CHAR_DATA *ch, char *argument, int language) ); int lang_lookup args( ( const char *name ) ); char* translation_garbled args( (char* speech, int miss_by, char* buf, int buflen ) ); /* drunk.c */ char *makedrunk args( (char *string ,CHAR_DATA *ch) ); /* social-edit.c */ void save_social_table ( ); void load_social_table ( ); /* games.c */ char * game_string args( ( GAME_FUN *fun ) ); /* OLC Maniac */ /* memory.c */ extern void free_affect args ( ( AFFECT_DATA *ptr) ); extern void free_area args ( ( AREA_DATA *ptr) ); extern void free_clan args ( ( CLAN_DATA *ptr) ); extern void free_religion args ( ( RELIGION_DATA *ptr) ); extern void free_ban args ( ( BAN_DATA *ptr) ); extern void free_userl args ( ( USERL_DATA *ptr) ); extern void free_char args ( ( CHAR_DATA *ptr) ); extern void free_descriptor args ( ( DESCRIPTOR_DATA *ptr) ); extern void free_exit args ( ( EXIT_DATA *ptr) ); extern void free_extra_descr args ( ( EXTRA_DESCR_DATA *ptr) ); extern void free_help args ( ( HELP_DATA *ptr) ); extern void free_mob_index args ( ( MOB_INDEX_DATA *ptr) ); extern void free_note args ( ( NOTE_DATA *ptr) ); extern void free_obj args ( ( OBJ_DATA *ptr) ); extern void free_obj_index args ( ( OBJ_INDEX_DATA *ptr) ); extern void free_pc args ( ( PC_DATA *ptr) ); extern void free_reset args ( ( RESET_DATA *ptr) ); extern void free_room_index args ( ( ROOM_INDEX_DATA *ptr) ); extern void free_shop args ( ( SHOP_DATA *ptr) ); extern void free_disabled args ( ( DISABLED_DATA *ptr) ); extern void free_mprog args ( (MPROG_DATA *ptr) ); extern void free_mprog_act args ( ( MPROG_ACT_LIST *ptr) ); extern void free_alias args ( ( ALIAS_DATA *ptr) ); extern void free_phobia args ( ( PHOBIA_DATA *ptr) ); extern void free_trap args ( ( TRAP_DATA *ptr) ); extern void free_corruptl args ( ( CORRUPT_AREA_LIST* ptr) ); extern void free_allocated_mem args( ( void ) ); AFFECT_DATA* new_affect (); AREA_DATA * new_area (); CLAN_DATA * new_clan (); RELIGION_DATA * new_religion (); BAN_DATA * new_ban (); USERL_DATA * new_userl (); CHAR_DATA * new_char (); DESCRIPTOR_DATA * new_descriptor(); EXIT_DATA * new_exit (); EXTRA_DESCR_DATA * new_extra_descr(); HELP_DATA * new_help (); MOB_INDEX_DATA * new_mob_index (); NOTE_DATA * new_note (); OBJ_DATA * new_obj (); OBJ_INDEX_DATA * new_obj_index (); PC_DATA * new_pc (); RESET_DATA * new_reset (); ROOM_INDEX_DATA * new_room_index(); SHOP_DATA * new_shop (); DISABLED_DATA * new_disabled (); MPROG_DATA * new_mprog (); MPROG_ACT_LIST * new_mprog_act (); ALIAS_DATA * new_alias (); PHOBIA_DATA * new_phobia (); TRAP_DATA * new_trap (); CORRUPT_AREA_LIST* new_corruptl ();