/**************************************************************************/ // gameset.h - see below /*************************************************************************** * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt * * >> A number of people have contributed to the Dawn codebase, with the * * majority of code written by Michael Garratt - www.dawnoftime.org * * >> To use this source code, you must fully comply with the dawn license * * in licenses.txt... In particular, you may not remove this copyright * * notice. * **************************************************************************/ /*************************************************************************** * FILE: gameset.h - game settings system * - All things are contained in here to make the code compile quicker. ***************************************************************************/ #ifndef GAMESET_H #define GAMESET_H extern const struct flag_type game_settings_flags[]; extern const struct flag_type game_settings_flags2[]; extern const struct flag_type game_settings_flags3[]; extern const struct flag_type game_settings_flags4[]; enum gameset_value_cat{GSVC_GENERAL, GSVC_ROOM, GSVC_OBJECT, GSVC_MOB, GSVC_NONE}; /**************************************************************************/ struct gameset_value_type{ gameset_value_cat category; int offset; char *name; char *description; }; #define GSBYTE_OFFSET(field) (int)(((char*) &(tgs.field)) \ -((char*) &tgs)) #define GSINT( offset) *((int*)(((char*) game_settings)+(offset))) /**************************************************************************/ enum area_import_format_enum {AIF_STOCK, AIF_FORMAT2, AIF_FORMAT3 }; /**************************************************************************/ // game settings checking macros #define GAMESETTING(flag) (IS_SET(game_settings->flags, flag)) #define GAMESETTING2(flag) (IS_SET(game_settings->flags2, flag)) #define GAMESETTING3(flag) (IS_SET(game_settings->flags3, flag)) #define GAMESETTING4(flag) (IS_SET(game_settings->flags4, flag)) #define GAMESETTING5(flag) (IS_SET(game_settings->flags5, flag)) #define GAMESETTINGS_FILE "gameset.txt" // Settings for the game #define AREA_IMPORT_FORMAT(value) (game_settings->area_import_format==value) #define AREA_IMPORT_FLAG(flag) (IS_SET(game_settings->area_import_flags, flag)) /**************************************************************************/ struct game_settings_type{ char *gamename; char *irclogs_dir; char *msp_url; char *style_sheet; char *login_prompt; char *default_prompt; char *password_creation; char *password_player_connect; char *listen_on; char *default_who_format; // text version used to load/save char *realm_name; char *mud_default_battlelag_text; // config section - int config_create_coredump_at_end_of_nasty_signal_handler; int default_who_format_index; // index value used within the game int unique_id; char *help_header_bar; // bar shown as help header char *help_footer_bar; // bar shown as help footer char *help_prevnext_footer_bar; // bar shown as help footer after a [PREV][NEXT] char *no_resolve_ip_text;// ip address to not bother looking up because area_import_format_enum area_import_format; // semi generically support importing // different formatted areas long area_import_flags; unsigned int max_string; long flags; long flags2; long flags3; long flags4; long flags5; int roll_min_total; // >=0, <=500 int roll_max_total; // <=600, <=1000 int alarm_boot_db_abort_threshold; int alarm_running_abort_threshold; int alarm_running_dns_abort_threshold; int alarm_frequency; int default_newbie_security_on_olc_port; int damage_scale_value; // in the range 4000 to 150, dawn is 2625 int automatic_offlineletgain_after_x_days; int icyear_offset; int min_level_to_load_objects; int max_hp_from_heal_spell; // vnum stuff int roomvnum_newbie_recall; // default recall vnum for levels 1 to 5 int roomvnum_starttelnet; int roomvnum_startirc; int roomvnum_limbo; int roomvnum_court_recall; int roomvnum_ooc; int roomvnum_good_recall; int roomvnum_evil_recall; int roomvnum_pkport_death_room; int roomvnum_weapon_donate; int roomvnum_armor_donate; int roomvnum_misc_donate; int roomvnum_newbieweapon_donate; int roomvnum_newbiearmor_donate; int roomvnum_newbiemisc_donate; int roomvnum_jail; int roomvnum_morgue; // silly idea for some but requested by another mud int global_scale_hitpoints_regen_rate; int global_scale_mana_regen_rate; int global_scale_movement_regen_rate; int newbie_start_gold; int newbie_start_silver; int newbie_start_practice; int newbie_start_train; int global_xp_scale_value; // used for globally scaling the amount of xp rewarded int minimum_note_notify_level; // auras around objects - used by format_obj_to_char() char *aura_invis; char *aura_evil; char *aura_good; char *aura_magical; char *aura_glowing; char *aura_chaos; char *aura_hum; char *aura_buried; char *aura_holy; char *aura_unholy; char *aura_flaming; char *aura_vampric; char *aura_shocking; char *aura_frost; // automated removal of laston players int laston_remove_deleted_players_0_4; int laston_remove_deleted_players_5_34; int laston_remove_deleted_players_35_64; int laston_remove_deleted_players_65_91; int laston_remove_deleted_players_92; int laston_level_for_immortal_version; int olc_max_vnum; // maximum possible vnum (65000 by default) int max_level_before_letgaining; int max_rerolls; int max_mob_level; // maximum possible mob level int max_obj_level; // maximum possible object level int xp_loss_for_fleeing; int obj_vnum_world_map; int obj_vnum_good_city_map; int obj_vnum_evil_city_map; int obj_vnum_divine_light; int obj_vnum_rose; int obj_vnum_raft; int obj_vnum_newbie_guide; int obj_vnum_rp_item; int obj_vnum_spirit_hammer; int obj_vnum_staff; int obj_vnum_druidstaff; int obj_vnum_totemstaff; int obj_vnum_pit; int obj_vnum_summon_justice; int obj_vnum_outfit_mace; int obj_vnum_outfit_dagger; int obj_vnum_outfit_sword; int obj_vnum_outfit_staff; int obj_vnum_outfit_axe; int obj_vnum_outfit_flail; int obj_vnum_outfit_whip; int obj_vnum_outfit_polearm; int obj_vnum_outfit_sickle; int obj_vnum_outfit_shield; int obj_vnum_outfit_vest; int obj_vnum_outfit_light; int obj_vnum_outfit_sleeves; int obj_vnum_outfit_cap; int obj_vnum_outfit_gloves; int obj_vnum_outfit_leggings; int obj_vnum_outfit_boots; int obj_vnum_outfit_belt; int mob_vnum_summon_guardian; int mob_vnum_vyr_good; int mob_vnum_vyr_bad; int days_lockers_stored_for; int webserver_default_remort; // Note: The port_default value defaults to 4000 but can be over ridden // at bootup, e.g. 'dawn 9000' starts the mud with mud_port set to 9000. // ADDITIONAL PORT VALUES // The following port numbers are relevative to the mud_port // e.g. irc_port == mud_port + irc_port_offset // setting any of these to 0 will mean the mud use that service int port_default; int thief_system_tagged_duration; // in minutes int killer_system_tagged_duration; // in minutes int killer_system_death_reduction_duration; // in minutes long uneditable_flags; game_settings_type *next; // put here so GIO_LOAD/SAVE_LIST can be used }; /**************************************************************************/ extern game_settings_type *game_settings; /**************************************************************************/ #define GAMESET_CHANGED (A) // gameset.txt needs saving #define GAMESET_NOPERMDEATH (B) // prevents karns going below 0 #define GAMESET_NOSHORT_DESCRIPTS (C) // dont use short descriptions #define GAMESET_HOLYNAME_FOR_ALL (D) // everyone gets holyname #define GAMESET_REMORT_SUPPORTED (E) // remort system #define GAMESET_REMORT_IN_SCORE (F) // remort number shown in score #define GAMESET_SUBLEVELS_ENABLED (G) // sublevel system used #define GAMESET_ROLE_ROLEMASTER_STATS (H) #define GAMESET_USE_ROLEMASTER_MODIFIERS (I) #define GAMESET_NO_BIAS_AGAINST_REROLLING (J) #define GAMESET_NO_LETGAINING_REQUIRED (K) #define GAMESET_BARDDONE (L) #define GAMESET_CLASS_CREATION_NO_STAR (M) #define GAMESET_MAX_ALIGN_RANGE22 (N) #define GAMESET_ALWAYS_ALLOW_SETAGE (O) #define GAMESET_RESTRICTED_GROUPING (P) #define GAMESET_MORGUE_ENABLED (Q) #define GAMESET_MSP_CHECK_FILEEXIST (R) #define GAMESET_PEACEFUL_MUD (S) #define GAMESET_DONT_PERFORM_IDENT_LOOKUPS (U) #define GAMESET_PLAYERS_CANT_ACCESS_OTHERS_COLOURS (V) #define GAMESET_PERFORM_LOCAL_DNS_LOOKUPS (W) #define GAMESET_LOG_ALL_IP_CONNECTS (X) #define GAMESET_DISABLE_RPS_SYSTEM (Y) // no rps is given when enabled #define GAMESET_OUTFIT_DISABLED (Z) #define GAMESET_SHOW_STAT_AVERAGES_IN_CREATION (aa) #define GAMESET_NEWBIE_LOCKED (bb) #define GAMESET_PLAYER_LOCKED (cc) // Second set of flags #define GAMESET2_NO_SECOND_SKILL_REQUIRED (A) #define GAMESET2_DONT_AUTOOUTFIT_ON_NEWBIE_LOGIN (B) #define GAMESET2_AUTONOTE_RENAMES_TO_ADMIN (C) #define GAMESET2_AUTONOTE_IMMPKILLS_TO_ADMIN (D) #define GAMESET2_NO_WEBLOG (1<<4) //(E) #define GAMESET2_USE_LASTON_IMM_VALUE (F) #define GAMESET2_CAN_ATTACK_SHOPKEEPERS (G) #define GAMESET2_SHOPKEEPERS_CAN_BE_KILLED (H) #define GAMESET2_HIDE_AREA_SHORTNAMES (I) #define GAMESET2_DONT_SAVE_LASTEDITORS (J) #define GAMESET2_DONT_SAVE_MOBPROG_AUTHORS (K) #define GAMESET2_NEWBIES_GET_ALL_MAPS (L) #define GAMESET2_TELL_RESTRICTIONS (M) #define GAMESET2_BYPASSDUEL_REDUCES_KARNS (N) #define GAMESET2_NO_DUEL_REQUIRED (O) #define GAMESET2_VERBOSE_DATES_IN_LOGS (P) #define GAMESET2_DISABLE_VERBOSE_OLC_LOGGING (Q) #define GAMESET2_NOCHARM_HAS_NOAFFECT (R) #define GAMESET2_NO_MSG_ABOUT_OLD_MUDCLIENTS (S) #define GAMESET2_NO_AUTODAMAGE_COMMAND (T) #define GAMESET2_NO_AUTOLOGOFF_FOR_IMM (U) #define GAMESET2_WHOLIST_SORT_BY_LEVEL (V) #define GAMESET2_WHOLIST_IMMS_BEFORE_MORTS (W) #define GAMESET2_DONT_DISPLAY_CODEBASE_4_LOGIN (X) #define GAMESET2_DONT_DISPLAY_WHO_4_LOGIN (Y) // feel free as a developer to put additional // flags you want to use in here Z -> ee // third set of flags #define GAMESET3_GAIN_HP_WHEN_LEVELING (A) #define GAMESET3_GAIN_ONE_TRAIN_WHEN_LEVELING (B) #define GAMESET3_INFO_BROADCASTS_ENABLED (C) #define GAMESET3_WHO_TITLE_DISABLED (D) #define GAMESET3_MORTLASTON_REQUIRES_PART_OF_NAME (E) #define GAMESET3_MORTLASTON_REQUIRES_FULL_IMM_NAME (F) #define GAMESET3_LANGUAGE_NOT_SCRAMBLED (G) #define GAMESET3_LANGUAGE_NAME_NOT_IN_SAYS (H) #define GAMESET3_NO_DECREASING_MAX_KARN (I) #define GAMESET3_NO_CLANTALK (J) #define GAMESET3_EXPERIMENTAL_DAMAGE_SCALING (K) #define GAMESET3_DISPLAY_P_RESET_BUGS_ON_WIZNET (M) #define GAMESET3_AUTOAFK_DISABLED (N) #define GAMESET3_STORM_DAMAGE_MESSAGES (O) #define GAMESET3_SHOW_QP_IN_SCORE (P) #define GAMESET3_AUTOMATIC_LETHEROING (Q) #define GAMESET3_CAN_TEACH_SPELLS_WHILE_UNLEARNED (R) #define GAMESET3_DISABLE_EXTENDED_ASCII_CHARACTERS (S) #define GAMESET3_USE_DYNAMIC_WIZLIST (T) #define GAMESET3_LOCKERS_DISABLED (U) #define GAMESET3_HELP_HEADER_FOOTER_BAR_DISABLED (V) #define GAMESET3_CIRCLE_ALLOWED_WITHOUT_CLEAR_SHOT (W) #define GAMESET3_THIEF_SYSTEM_ENABLED (X) #define GAMESET3_KILLER_SYSTEM_ENABLED (Y) #define GAMESET3_ALWAYS_NO_NEGATIVE_HP_AT_AFFECTOFF (Z) #define GAMESET3_MORTLASTON_REDUCED_TO2HOURS_ON_MORTS (aa) #define GAMESET3_MORTLASTON_REDUCED_LASTDAY_ON_IMMS (bb) // fourth set of flags #define GAMESET4_ROOM_INVITES_DISABLED (A) #define GAMESET4_AUTOLOG_ALL_NEW_PLAYERS (B) #define GAMESET4_HELP_PREV_NEXT_SEPARATE_FROM_FOOTER (C) #define GAMESET4_HELP_PREV_NEXT_ABOVE_SEE_ALSO (D) #define GAMESET4_PREVENT_STEALING_FROM_PLAYERS (E) #define GAMESET4_OOC_PREVENTION_MESSAGES (F) #define GAMESET4_DUEL_SYSTEM_DISABLED (G) #define GAMESET4_NO_KARN_IN_SCORE (H) #define GAMESET4_LEVELSORT_IMMORTALS_ON_WHO (I) #define GAMESET4_LEVELSORT_MORTALS_ON_WHO (J) #define GAMESET4_USE_GRANTGROUPS_FOR_IMM (K) #define GAMESET4_SHOW_IMMROLE_IN_SCORE_INSTEAD_OF_LEVEL (L) #define GAMESET4_3TIER_IMMRANKS_IN_WHO (M) #define GAMESET4_REDIRECT_CHANNEL_OOC_TO_CHAT (N) #define GAMESET4_REDIRECT_CHANNEL_CHAT_TO_OOC (O) #define GAMESET4_NO_STEALING_OUTSIDE_10_LEVELS (P) #define GAMESET4_NO_STEALING_FROM_NON_LETGAINED (Q) #define GAMESET4_NO_STEALING_FROM_NON_CLANNED (R) #define GAMESET4_MUST_BE_LETGAINED_TO_STEAL_FROM_PLAYERS (S) #define GAMESET4_MUST_BE_IN_CLAN_TO_STEAL_FROM_PLAYERS (T) #define GAMESET4_LOGINWHO_HIDES_IMMS_FROM_MORTS (U) #define GAMESET4_REPORT_MISSING_OUTFIT_ITEMS_TO_PLAYERS (V) #define GAMESET4_GAMEDEFAULT_COLOUR_IN_SOCIALS_ON (W) // fifth set of flags #define GAMESET5_RACEINFO_DISABLED_IN_CREATION (A) #define GAMESET5_RACEINFO_DISABLED_IN_WEBSERVER (B) #define GAMESET5_RESTRICTED_CREATIONS_PER_HOUR (C) #define GAMESET5_AUTODAMAGE_DEFAULTS_OFF (D) #define GAMESET5_CREATION_ASK_IF_WANT_AUTOMAP_ON (E) #define GAMESET5_CREATION_DISABLE_CUSTOMIZATION (F) #define GAMESET5_DEDICATED_PKILL_STYLE_MUD (G) #define GAMESET5_DEDICATED_OLC_BUILDING_MUD (H) #define GAMESET5_DISABLE_TILDE_CONVERSION (I) #define GAMESET5_VERBOSE_INTRODUCTION_LOGGING (J) #define GAMESET5_NO_STEALING_FROM_FIGHTING_CHARACTERS (K) #define GAMESET5_MUST_BE_ACTIVE_TO_BE_INVOLVED_IN_STEALING (L) #define GAMESET5_HEROS_DONT_LOSE_XP_FOR_DYING (M) #define GAMESET5_ADDICT_XP_BONUS (N) #define GAMESET5_NOTES_TO_RACE_NAMES_SUPPORTED (O) #define GAMESET5_NOTES_TO_CLASS_NAMES_SUPPORTED (P) #define GAMESET5_HUNGER_AND_THIRST_CAUSES_DAMAGE (Q) #define GAMESET5_CLASSINFO_DISABLED_IN_CREATION (R) #define GAMESET5_CLASSINFO_DISABLED_IN_WEBSERVER (S) #define GAMESET5_MXP_EDIT_AT_BOTTOM_OF_HELPS (T) #define GAMESET5_HIDE_SOCKET_BINDINGS_FROM_GAMESET (U) /**************************************************************************/ #define AREAIMPORTFLAG_IMPORTING_ENABLED (A) // can't disable this #define AREAIMPORTFLAG_IGNORE_HELPS_IN_AREAFILES (B) #define AREAIMPORTFLAG_DISCARD_UNFOUND_MOBPROGS (C) #define AREAIMPORTFLAG_READ_TO_EOL_ON_ACT_AFF_LINE (D) /**************************************************************************/ #define DEFAULT_LOGIN_PROMPT "`WBy What Name Do You Wish To Be Called?`x " #define LOGIN_PROMPT (game_settings->login_prompt) #define DEFAULT_PROMPT "[`#`Y%e`g %t `R%h/%Hhp `B%m/%Mm `m%vmv `g%Xxp%d`^> " //#define DEFAULT_PROMPT "[`#`Y%e`g %t `x%l `Y%g`yg `s%s`ws `R%h/`r%Hhp " // "`B%m/`b%Mm `M%v/`m%Vmv `G%X`gxp%d`^> " /**************************************************************************/ #define GAMESETUNEDIT_MANUAL_COLOUR_CONVERT_PERFORMED (A) /**************************************************************************/ #endif // GAMESET_H