diff --git a/lib/world/trg/index b/lib/world/trg/index index 0e4fa16..871c382 100644 --- a/lib/world/trg/index +++ b/lib/world/trg/index @@ -1,69 +1,41 @@ 0.trg 1.trg -1.trg -2.trg 2.trg 3.trg -3.trg -4.trg 4.trg 5.trg -5.trg 6.trg -6.trg -7.trg 7.trg 9.trg 12.trg 13.trg -13.trg -14.trg 14.trg 15.trg 16.trg -16.trg -17.trg 17.trg 18.trg -18.trg -19.trg 19.trg 20.trg -20.trg -22.trg 22.trg 25.trg 26.trg -26.trg 27.trg -27.trg -28.trg 28.trg 30.trg 31.trg 32.trg -32.trg 33.trg 35.trg 36.trg 37.trg -37.trg 38.trg -38.trg -39.trg 39.trg 40.trg 41.trg -41.trg -42.trg 42.trg 43.trg -43.trg -44.trg 44.trg 45.trg -45.trg -46.trg 46.trg 50.trg 51.trg @@ -71,10 +43,7 @@ 53.trg 54.trg 55.trg -55.trg 56.trg -56.trg -57.trg 57.trg 60.trg 61.trg @@ -85,245 +54,129 @@ 70.trg 71.trg 72.trg -73.trg -74.trg 74.trg 75.trg -75.trg -78.trg 78.trg 79.trg 83.trg -83.trg -86.trg 86.trg 90.trg -90.trg -96.trg 96.trg 100.trg -100.trg -101.trg 101.trg 103.trg -103.trg -104.trg 104.trg 106.trg -106.trg 107.trg -107.trg -115.trg 115.trg 117.trg 118.trg 120.trg 125.trg -125.trg 130.trg 140.trg -140.trg 150.trg 169.trg -169.trg -175.trg 175.trg 186.trg 186.trg 187.trg -187.trg -200.trg 200.trg 201.trg 220.trg 232.trg -232.trg -233.trg 233.trg 234.trg -234.trg -235.trg 235.trg 236.trg -236.trg -237.trg 237.trg 238.trg -238.trg -239.trg 239.trg 240.trg -240.trg -241.trg 241.trg 242.trg -242.trg -243.trg 243.trg 244.trg -244.trg -245.trg 245.trg 246.trg -246.trg -247.trg 247.trg 248.trg -248.trg -249.trg 249.trg 250.trg -250.trg -251.trg 251.trg 252.trg -252.trg -253.trg 253.trg 254.trg -254.trg -255.trg 255.trg 256.trg -256.trg -257.trg 257.trg 258.trg -258.trg -259.trg 259.trg 260.trg -260.trg -261.trg 261.trg 262.trg -262.trg -263.trg 263.trg 264.trg -264.trg -265.trg 265.trg 266.trg -266.trg -267.trg 267.trg 268.trg -268.trg -269.trg 269.trg 270.trg -270.trg -271.trg 271.trg 272.trg -272.trg -273.trg 273.trg 274.trg -274.trg -275.trg 275.trg 276.trg -276.trg -277.trg 277.trg 278.trg -278.trg -279.trg 279.trg 280.trg -280.trg -281.trg 281.trg 282.trg -282.trg -283.trg 283.trg 284.trg -284.trg -285.trg 285.trg 286.trg -286.trg -287.trg 287.trg 288.trg -288.trg -289.trg 289.trg 290.trg -290.trg -291.trg 291.trg 292.trg -292.trg -293.trg 293.trg 294.trg -294.trg -295.trg 295.trg 296.trg -296.trg -298.trg 298.trg 299.trg -299.trg -300.trg 300.trg 301.trg -301.trg -302.trg 302.trg 303.trg -303.trg -304.trg 304.trg 305.trg -305.trg -306.trg 306.trg 307.trg -307.trg -308.trg 308.trg 309.trg -309.trg -310.trg 310.trg 311.trg -311.trg -312.trg 312.trg 313.trg -313.trg -314.trg 314.trg 315.trg -315.trg -316.trg 316.trg 317.trg -317.trg -318.trg 318.trg 319.trg -319.trg -320.trg 320.trg 321.trg -321.trg -322.trg 322.trg 323.trg -323.trg -324.trg 324.trg 325.trg -325.trg 326.trg -326.trg -345.trg 345.trg $ diff --git a/src/act.informative.c b/src/act.informative.c index b64fc9c..75570ee 100644 --- a/src/act.informative.c +++ b/src/act.informative.c @@ -10,7 +10,6 @@ #include "conf.h" #include "sysdep.h" - #include "structs.h" #include "utils.h" #include "comm.h" @@ -28,7 +27,6 @@ extern struct help_index_element *help_table; extern char *help; extern char *ihelp; extern struct time_info_data time_info; - extern char *credits; extern char *news; extern char *info; @@ -49,6 +47,7 @@ char *title_male(int chclass, int level); char *title_female(int chclass, int level); struct time_info_data *real_time_passed(time_t t2, time_t t1); int compute_armor_class(struct char_data *ch); +int has_mail(long id); /* local functions */ int sort_commands_helper(const void *a, const void *b); @@ -98,7 +97,6 @@ int *cmd_sort_info; #define SHOW_OBJ_SHORT 1 #define SHOW_OBJ_ACTION 2 - void show_obj_to_char(struct obj_data *obj, struct char_data *ch, int mode) { if (!obj || !ch) { @@ -170,7 +168,6 @@ void show_obj_to_char(struct obj_data *obj, struct char_data *ch, int mode) send_to_char(ch, "\r\n"); } - void show_obj_modifiers(struct obj_data *obj, struct char_data *ch) { if (OBJ_FLAGGED(obj, ITEM_INVISIBLE)) @@ -189,7 +186,6 @@ void show_obj_modifiers(struct obj_data *obj, struct char_data *ch) send_to_char(ch, " ..It emits a faint humming sound!"); } - void list_obj_to_char(struct obj_data *list, struct char_data *ch, int mode, int show) { struct obj_data *i, *j; @@ -209,9 +205,12 @@ void list_obj_to_char(struct obj_data *list, struct char_data *ch, int mode, int if (!strcmp(j->short_description, i->short_description)) num++; if (CAN_SEE_OBJ(ch, i) && (*i->description != '.' || (IS_NPC(ch) || PRF_FLAGGED(ch, PRF_HOLYLIGHT)))) { + if (mode == SHOW_OBJ_LONG) + send_to_char(ch, "%s", CCGRN(ch, C_NRM)); if (num != 1) send_to_char(ch, "(%2i) ", num); show_obj_to_char(i, ch, mode); + send_to_char(ch, "%s", CCNRM(ch, C_NRM)); found = TRUE; } } @@ -249,7 +248,6 @@ void diag_char_to_char(struct char_data *i, struct char_data *ch) send_to_char(ch, "%c%s %s\r\n", UPPER(*pers), pers + 1, diagnosis[ar_index].text); } - void look_at_char(struct char_data *i, struct char_data *ch) { int j, found; @@ -294,7 +292,6 @@ void look_at_char(struct char_data *i, struct char_data *ch) } } - void list_one_char(struct char_data *i, struct char_data *ch) { const char *positions[] = { @@ -378,8 +375,6 @@ void list_one_char(struct char_data *i, struct char_data *ch) act("...$e glows with a bright light!", FALSE, i, 0, ch, TO_VICT); } - - void list_char_to_char(struct char_data *list, struct char_data *ch) { struct char_data *i; @@ -390,15 +385,16 @@ void list_char_to_char(struct char_data *list, struct char_data *ch) if (!IS_NPC(ch) && !PRF_FLAGGED(ch, PRF_HOLYLIGHT) && IS_NPC(i) && i->player.long_descr && *i->player.long_descr == '.') continue; + send_to_char(ch, "%s", CCYEL(ch, C_NRM)); if (CAN_SEE(ch, i)) list_one_char(i, ch); else if (IS_DARK(IN_ROOM(ch)) && !CAN_SEE_IN_DARK(ch) && AFF_FLAGGED(i, AFF_INFRAVISION)) send_to_char(ch, "You see a pair of glowing red eyes looking your way.\r\n"); + send_to_char(ch, "%s", CCNRM(ch, C_NRM)); } } - void do_auto_exits(struct char_data *ch) { int door, slen = 0; @@ -418,7 +414,6 @@ void do_auto_exits(struct char_data *ch) send_to_char(ch, "%s]%s\r\n", slen ? "" : "None!", CCNRM(ch, C_NRM)); } - ACMD(do_exits) { int door, len = 0; @@ -438,7 +433,7 @@ ACMD(do_exits) len++; - if (GET_LEVEL(ch) >= LVL_IMMORT) + if (PRF_FLAGGED(ch, PRF_SHOWVNUMS)) send_to_char(ch, "%-5s - [%5d] %s\r\n", dirs[door], GET_ROOM_VNUM(EXIT(ch, door)->to_room), world[EXIT(ch, door)->to_room].name); else @@ -450,8 +445,6 @@ ACMD(do_exits) send_to_char(ch, " None.\r\n"); } - - void look_at_room(struct char_data *ch, int ignore_brief) { struct room_data *rm = &world[IN_ROOM(ch)]; @@ -489,15 +482,10 @@ void look_at_room(struct char_data *ch, int ignore_brief) do_auto_exits(ch); /* now list characters & objects */ - send_to_char(ch, "%s", CCGRN(ch, C_NRM)); list_obj_to_char(world[IN_ROOM(ch)].contents, ch, SHOW_OBJ_LONG, FALSE); - send_to_char(ch, "%s", CCYEL(ch, C_NRM)); list_char_to_char(world[IN_ROOM(ch)].people, ch); - send_to_char(ch, "%s", CCNRM(ch, C_NRM)); } - - void look_in_direction(struct char_data *ch, int dir) { if (EXIT(ch, dir)) { @@ -514,8 +502,6 @@ void look_in_direction(struct char_data *ch, int dir) send_to_char(ch, "Nothing special there...\r\n"); } - - void look_in_obj(struct char_data *ch, char *arg) { struct obj_data *obj = NULL; @@ -568,8 +554,6 @@ void look_in_obj(struct char_data *ch, char *arg) } } - - char *find_exdesc(char *word, struct extra_descr_data *list) { struct extra_descr_data *i; @@ -581,7 +565,6 @@ char *find_exdesc(char *word, struct extra_descr_data *list) return (NULL); } - /* * Given the argument "look at ", figure out what object or char * matches the target. First, see if there is another char in the room @@ -668,7 +651,6 @@ void look_at_target(struct char_data *ch, char *arg) send_to_char(ch, "You do not see that here.\r\n"); } - ACMD(do_look) { int look_type; @@ -722,8 +704,6 @@ ACMD(do_look) } } - - ACMD(do_examine) { struct char_data *tmp_char; @@ -753,8 +733,6 @@ ACMD(do_examine) } } - - ACMD(do_gold) { if (GET_GOLD(ch) == 0) @@ -765,7 +743,6 @@ ACMD(do_gold) send_to_char(ch, "You have %d gold coins.\r\n", GET_GOLD(ch)); } - ACMD(do_score) { struct time_info_data playing_time; @@ -892,7 +869,6 @@ ACMD(do_inventory) list_obj_to_char(ch->carrying, ch, SHOW_OBJ_SHORT, TRUE); } - ACMD(do_equipment) { int i, found = 0; @@ -915,7 +891,6 @@ ACMD(do_equipment) send_to_char(ch, " Nothing.\r\n"); } - ACMD(do_time) { const char *suf; @@ -959,7 +934,6 @@ ACMD(do_time) day, suf, month_name[time_info.month], time_info.year); } - ACMD(do_weather) { const char *sky_look[] = { @@ -1073,7 +1047,6 @@ ACMD(do_help) page_string(ch->desc, help_table[mid].entry, 0); } - #define WHO_FORMAT \ "Usage: who [minlev[-maxlev]] [-n name] [-c classlist] [-k] [-l] [-n] [-q] [-r] [-s] [-z]\r\n" @@ -1314,11 +1287,9 @@ ACMD(do_who) send_to_char(ch, "%d characters displayed.\r\n", num_can_see); } - #define USERS_FORMAT \ "format: users [-l minlevel[-maxlevel]] [-n name] [-h host] [-c classlist] [-o] [-p]\r\n" -/* BIG OL' FIXME: Rewrite it all. Similar to do_who(). */ ACMD(do_users) { char line[200], line2[220], idletime[10], classname[20]; @@ -1383,7 +1354,7 @@ ACMD(do_users) } } /* end while (parser) */ send_to_char(ch, - "Num Class Name State Idl Login@ Site\r\n" + "Num Class Name State Idl Login@@ Site\r\n" "--- ------- ------------ -------------- ----- -------- ------------------------\r\n"); one_argument(argument, arg); @@ -1462,7 +1433,6 @@ ACMD(do_users) send_to_char(ch, "\r\n%d visible sockets connected.\r\n", num_can_see); } - /* Generic page_string function for displaying text */ ACMD(do_gen_ps) { @@ -1520,7 +1490,6 @@ ACMD(do_gen_ps) } } - void perform_mortal_where(struct char_data *ch, char *arg) { struct char_data *i; @@ -1554,7 +1523,6 @@ void perform_mortal_where(struct char_data *ch, char *arg) } } - void print_object_location(int num, struct obj_data *obj, struct char_data *ch, int recur) { @@ -1580,8 +1548,6 @@ void print_object_location(int num, struct obj_data *obj, struct char_data *ch, send_to_char(ch, "in an unknown location\r\n"); } - - void perform_immort_where(struct char_data *ch, char *arg) { struct char_data *i; @@ -1621,8 +1587,6 @@ void perform_immort_where(struct char_data *ch, char *arg) } } - - ACMD(do_where) { char arg[MAX_INPUT_LENGTH]; @@ -1635,8 +1599,6 @@ ACMD(do_where) perform_mortal_where(ch, arg); } - - ACMD(do_levels) { char buf[MAX_STRING_LENGTH]; @@ -1677,8 +1639,6 @@ ACMD(do_levels) page_string(ch->desc, buf, TRUE); } - - ACMD(do_consider) { char buf[MAX_INPUT_LENGTH]; @@ -1725,8 +1685,6 @@ ACMD(do_consider) send_to_char(ch, "You ARE mad!\r\n"); } - - ACMD(do_diagnose) { char buf[MAX_INPUT_LENGTH]; @@ -2009,8 +1967,11 @@ ACMD(do_toggle) case SCMD_AFK: if ((result = PRF_TOG_CHK(ch, PRF_AFK))) act("$n is now away from $s keyboard.", TRUE, ch, 0, 0, TO_ROOM); - else + else { act("$n has return to $s keyboard.", TRUE, ch, 0, 0, TO_ROOM); + if (has_mail(GET_IDNUM(ch))) + send_to_char(ch, "You have mail waiting.\r\n"); + } break; case SCMD_WIMPY: if (!*arg2) { @@ -2076,7 +2037,6 @@ int sort_commands_helper(const void *a, const void *b) complete_cmd_info[*(const int *)b].sort_as); } - void sort_commands(void) { int a, num_of_cmds = 0; @@ -2094,7 +2054,6 @@ void sort_commands(void) qsort(cmd_sort_info + 1, num_of_cmds - 2, sizeof(int), sort_commands_helper); } - ACMD(do_commands) { int no, i, cmd_num; diff --git a/src/act.wizard.c b/src/act.wizard.c index 28bbf34..0da597c 100644 --- a/src/act.wizard.c +++ b/src/act.wizard.c @@ -836,6 +836,8 @@ void do_stat_character(struct char_data *ch, struct char_data *k) send_to_char(ch, ", OLC[%sAedit%s]", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM)); else if (GET_OLC_ZONE(k)==HEDIT_PERMISSION) send_to_char(ch, ", OLC[%sHedit%s]", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM)); + else if (GET_OLC_ZONE(k) == ALL_PERMISSION) + send_to_char(ch, ", OLC[%sAll%s]", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM)); else if (GET_OLC_ZONE(k)==NOWHERE) send_to_char(ch, ", OLC[%sOFF%s]", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM)); else @@ -2160,7 +2162,7 @@ ACMD(do_wiznet) delete_doubledollar(argument); if (!*argument) { - send_to_char(ch, "Usage: wiznet | # | * |\r\n wiznet @ * | wiz @\r\n"); + send_to_char(ch, "Usage: wiznet [ # ] [ | * | @@ ]\r\n"); return; } switch (*argument) { @@ -3020,8 +3022,10 @@ int perform_set(struct char_data *ch, struct char_data *vict, int mode, char *va case 36: /* olc */ if (is_abbrev(val_arg, "socials") || is_abbrev(val_arg, "actions") || is_abbrev(val_arg, "aedit")) GET_OLC_ZONE(vict) = AEDIT_PERMISSION; - else if (is_abbrev(val_arg, "hedit")) + else if (is_abbrev(val_arg, "hedit") || is_abbrev(val_arg, "help")) GET_OLC_ZONE(vict) = HEDIT_PERMISSION; + else if (*val_arg == '*' || is_abbrev(val_arg, "all")) + GET_OLC_ZONE(vict) = ALL_PERMISSION; else if (is_abbrev(val_arg, "off")) GET_OLC_ZONE(vict) = NOWHERE; else if (!is_number(val_arg)) { diff --git a/src/aedit.c b/src/aedit.c index effdb2d..895b707 100644 --- a/src/aedit.c +++ b/src/aedit.c @@ -53,7 +53,7 @@ ACMD(do_oasis_aedit) return; } - if (GET_OLC_ZONE(ch) != AEDIT_PERMISSION && GET_LEVEL(ch) < LVL_GOD) { + if (!can_edit_zone(ch, AEDIT_PERMISSION)) { send_to_char(ch, "You don't have access to editing socials.\r\n"); return; } diff --git a/src/constants.c b/src/constants.c index 959afcb..8a70218 100644 --- a/src/constants.c +++ b/src/constants.c @@ -10,7 +10,6 @@ #include "conf.h" #include "sysdep.h" - #include "structs.h" #include "interpreter.h" /* alias_data */ @@ -24,11 +23,8 @@ cpp_extern const char *ascii_pfiles_version = "ASCII Player Files 3.0.1"; /* strings corresponding to ordinals/bitvectors in structs.h */ - - /* (Note: strings for class definitions in class.c instead of here) */ - /* cardinal directions */ const char *dirs[] = { @@ -41,7 +37,6 @@ const char *dirs[] = "\n" }; - /* ROOM_x */ const char *room_bits[] = { "DARK", @@ -63,7 +58,6 @@ const char *room_bits[] = { "\n" }; - /* EX_x */ const char *exit_bits[] = { "DOOR", @@ -73,7 +67,6 @@ const char *exit_bits[] = { "\n" }; - /* SECT_ */ const char *sector_types[] = { "Inside", @@ -89,7 +82,6 @@ const char *sector_types[] = { "\n" }; - /* * SEX_x * Not used in sprinttype() so no \n. @@ -102,7 +94,6 @@ const char *genders[] = "\n" }; - /* POS_x */ const char *position_types[] = { "Dead", @@ -117,7 +108,6 @@ const char *position_types[] = { "\n" }; - /* PLR_x */ const char *player_bits[] = { "KILLER", @@ -145,7 +135,6 @@ const char *player_bits[] = { "\n" }; - /* MOB_x */ const char *action_bits[] = { "SPEC", @@ -170,7 +159,6 @@ const char *action_bits[] = { "\n" }; - /* PRF_x */ const char *preference_bits[] = { "BRIEF", @@ -207,7 +195,6 @@ const char *preference_bits[] = { "\n" }; - /* AFF_x */ const char *affected_bits[] = { @@ -236,7 +223,6 @@ const char *affected_bits[] = "\n" }; - /* CON_x */ const char *connected_types[] = { "Playing", @@ -295,7 +281,6 @@ const char *wear_where[] = { " " }; - /* WEAR_x - for stat */ const char *equipment_types[] = { "Used as light", @@ -319,7 +304,6 @@ const char *equipment_types[] = { "\n" }; - /* ITEM_x (ordinal object types) */ const char *item_types[] = { "UNDEFINED", @@ -349,7 +333,6 @@ const char *item_types[] = { "\n" }; - /* ITEM_WEAR_ (wear bitvector) */ const char *wear_bits[] = { "TAKE", @@ -370,7 +353,6 @@ const char *wear_bits[] = { "\n" }; - /* ITEM_x (extra bits) */ const char *extra_bits[] = { "GLOW", @@ -393,7 +375,6 @@ const char *extra_bits[] = { "\n" }; - /* APPLY_x */ const char *apply_types[] = { "NONE", @@ -424,7 +405,6 @@ const char *apply_types[] = { "\n" }; - /* CONT_x */ const char *container_bits[] = { "CLOSEABLE", @@ -434,7 +414,6 @@ const char *container_bits[] = { "\n", }; - /* LIQ_x */ const char *drinks[] = { @@ -457,10 +436,7 @@ const char *drinks[] = "\n" }; - /* other constants for liquids ******************************************/ - - /* one-word alias for each drink */ const char *drinknames[] = { @@ -483,7 +459,6 @@ const char *drinknames[] = "\n" }; - /* effect of drinks on hunger, thirst, and drunkenness -- see values.doc */ int drink_aff[][3] = { {0, 1, 10}, @@ -504,7 +479,6 @@ int drink_aff[][3] = { {0, 0, 13} }; - /* color of the various drinks */ const char *color_liquid[] = { @@ -527,7 +501,6 @@ const char *color_liquid[] = "\n" }; - /* * level of fullness for drink containers * Not used in sprinttype() so no \n. @@ -540,10 +513,7 @@ const char *fullness[] = "" }; - /* str, int, wis, dex, con applies **************************************/ - - /* [ch] strength apply (all) */ cpp_extern const struct str_app_type str_app[] = { {-5, -4, 0, 0}, /* str = 0 */ @@ -579,8 +549,6 @@ cpp_extern const struct str_app_type str_app[] = { {3, 6, 480, 30} /* str = 18/100 */ }; - - /* [dex] skill apply (thieves only) */ cpp_extern const struct dex_skill_type dex_app_skill[] = { {-99, -99, -90, -99, -60}, /* dex = 0 */ @@ -611,8 +579,6 @@ cpp_extern const struct dex_skill_type dex_app_skill[] = { {25, 30, 15, 25, 25} /* dex = 25 */ }; - - /* [dex] apply (all) */ cpp_extern const struct dex_app_type dex_app[] = { {-7, -7, 6}, /* dex = 0 */ @@ -643,8 +609,6 @@ cpp_extern const struct dex_app_type dex_app[] = { {5, 5, -6} /* dex = 25 */ }; - - /* [con] apply (all) */ cpp_extern const struct con_app_type con_app[] = { {-4, 20}, /* con = 0 */ @@ -675,8 +639,6 @@ cpp_extern const struct con_app_type con_app[] = { {6, 99} /* con = 25 */ }; - - /* [int] apply (all) */ cpp_extern const struct int_app_type int_app[] = { {3}, /* int = 0 */ @@ -707,7 +669,6 @@ cpp_extern const struct int_app_type int_app[] = { {60} /* int = 25 */ }; - /* [wis] apply (all) */ cpp_extern const struct wis_app_type wis_app[] = { {0}, /* wis = 0 */ @@ -738,14 +699,12 @@ cpp_extern const struct wis_app_type wis_app[] = { {7} /* wis = 25 */ }; - const char *npc_class_types[] = { "Normal", "Undead", "\n" }; - int rev_dir[] = { 2, @@ -756,7 +715,6 @@ int rev_dir[] = 4 }; - int movement_loss[] = { 1, /* Inside */ @@ -782,7 +740,6 @@ const char *weekdays[] = { "the Day of the Sun" }; - /* Not used in sprinttype(). */ const char *month_name[] = { "Month of Winter", /* 0 */ @@ -829,7 +786,6 @@ const char *trig_types[] = { "\n" }; - /* obj trigger types */ const char *otrig_types[] = { "Global", @@ -855,7 +811,6 @@ const char *otrig_types[] = { "\n" }; - /* wld trigger types */ const char *wtrig_types[] = { "Global", @@ -881,27 +836,6 @@ const char *wtrig_types[] = { "\n" }; -#if defined(CONFIG_OASIS_MPROG) -/* - * Definitions necessary for MobProg support in OasisOLC - */ -const char *mobprog_types[] = { - "INFILE", - "ACT", - "SPEECH", - "RAND", - "FIGHT", - "DEATH", - "HITPRCNT", - "ENTRY", - "GREET", - "ALL_GREET", - "GIVE", - "BRIBE", - "\n" -}; -#endif - /* --- End of constants arrays. --- */ /* diff --git a/src/constants.h b/src/constants.h index 8d1e122..defec30 100644 --- a/src/constants.h +++ b/src/constants.h @@ -38,9 +38,6 @@ extern int drink_aff[][3]; extern const char *trig_types[]; extern const char *otrig_types[]; extern const char *wtrig_types[]; -#if defined(CONFIG_OASIS_MPROG) -extern const char *mobprog_types[]; -#endif extern size_t room_bits_count; extern size_t action_bits_count; extern size_t affected_bits_count; diff --git a/src/db.c b/src/db.c index a06f728..7d3b327 100644 --- a/src/db.c +++ b/src/db.c @@ -3279,7 +3279,7 @@ void load_default_config( void ) CONFIG_DON_ROOM_3 = donation_room_3; /****************************************************************************/ - /**eration options. **/ + /** Game operation options. **/ /****************************************************************************/ CONFIG_DFLT_PORT = DFLT_PORT; diff --git a/src/genmob.c b/src/genmob.c index ac2fb20..c6c60e0 100644 --- a/src/genmob.c +++ b/src/genmob.c @@ -70,15 +70,6 @@ int add_mobile(struct char_data *mob, mob_vnum vnum) log("GenOLC: add_mobile: Added mobile %d at index #%d.", vnum, found); -#if CONFIG_GENOLC_MOBPROG - GET_MPROG(OLC_MOB(d)) = OLC_MPROGL(d); - GET_MPROG_TYPE(OLC_MOB(d)) = (OLC_MPROGL(d) ? OLC_MPROGL(d)->type : 0); - while (OLC_MPROGL(d)) { - GET_MPROG_TYPE(OLC_MOB(d)) |= OLC_MPROGL(d)->type; - OLC_MPROGL(d) = OLC_MPROGL(d)->next; - } -#endif - /* * Update live mobile rnums. */ @@ -313,29 +304,6 @@ int save_mobiles(zone_rnum rznum) return written; } -#if CONFIG_GENOLC_MOBPROG -int write_mobile_mobprog(mob_vnum mvnum, struct char_data *mob, FILE *fd) -{ - char wmmarg[MAX_STRING_LENGTH], wmmcom[MAX_STRING_LENGTH]; - MPROG_DATA *mob_prog; - - for (mob_prog = GET_MPROG(mob); mob_prog; mob_prog = mob_prog->next) { - wmmarg[MAX_STRING_LENGTH - 1] = '\0'; - wmmcom[MAX_STRING_LENGTH - 1] = '\0'; - strip_cr(strncpy(wmmarg, mob_prog->arglist, MAX_STRING_LENGTH - 1)); - strip_cr(strncpy(wmmcom, mob_prog->comlist, MAX_STRING_LENGTH - 1)); - fprintf(fd, "%s %s~\n" - "%s%c\n", - medit_get_mprog_type(mob_prog), wmmarg, - wmmcom, STRING_TERMINATOR - ); - if (mob_prog->next == NULL) - fputs("|\n", fd); - } - return TRUE; -} -#endif - int write_mobile_espec(mob_vnum mvnum, struct char_data *mob, FILE *fd) { if (GET_ATTACK(mob) != 0) diff --git a/src/medit.c b/src/medit.c index ea442b6..a037ea0 100644 --- a/src/medit.c +++ b/src/medit.c @@ -26,17 +26,8 @@ /* external variables */ extern struct attack_hit_type attack_hit_text[]; -#if CONFIG_OASIS_MPROG -extern const char *mobprog_types[]; -#endif /* local functions */ -#if CONFIG_OASIS_MPROG -void medit_disp_mprog(struct descriptor_data *d); -void medit_disp_mprog_types(struct descriptor_data *d); -void medit_change_mprog(struct descriptor_data *d); -const char *medit_get_mprog_type(struct mob_prog_data *mprog); -#endif void medit_setup_new(struct descriptor_data *d); void medit_setup_existing(struct descriptor_data *d, int rmob_num); void init_mobile(struct char_data *mob); @@ -49,12 +40,6 @@ void medit_disp_mob_flags(struct descriptor_data *d); void medit_disp_aff_flags(struct descriptor_data *d); void medit_disp_menu(struct descriptor_data *d); -/* handy macros */ -#if CONFIG_OASIS_MPROG -#define GET_MPROG(mob) (mob_index[(mob)->nr].mobprogs) -#define GET_MPROG_TYPE(mob) (mob_index[(mob)->nr].progtypes) -#endif - /*-------------------------------------------------------------------*\ utility functions \*-------------------------------------------------------------------*/ @@ -226,10 +211,6 @@ void medit_setup_new(struct descriptor_data *d) GET_SDESC(mob) = strdup("the unfinished mob"); GET_LDESC(mob) = strdup("An unfinished mob stands here.\r\n"); GET_DDESC(mob) = strdup("It looks unfinished.\r\n"); -#if CONFIG_OASIS_MPROG - OLC_MPROGL(d) = NULL; - OLC_MPROG(d) = NULL; -#endif SCRIPT(mob) = NULL; mob->proto_script = OLC_SCRIPT(d) = NULL; @@ -254,28 +235,6 @@ void medit_setup_existing(struct descriptor_data *d, int rmob_num) copy_mobile(mob, mob_proto + rmob_num); -#if CONFIG_OASIS_MPROG - { - MPROG_DATA *temp; - MPROG_DATA *head; - - if (GET_MPROG(mob)) - CREATE(OLC_MPROGL(d), MPROG_DATA, 1); - head = OLC_MPROGL(d); - for (temp = GET_MPROG(mob); temp; temp = temp->next) { - OLC_MPROGL(d)->type = temp->type; - OLC_MPROGL(d)->arglist = strdup(temp->arglist); - OLC_MPROGL(d)->comlist = strdup(temp->comlist); - if (temp->next) { - CREATE(OLC_MPROGL(d)->next, MPROG_DATA, 1); - OLC_MPROGL(d) = OLC_MPROGL(d)->next; - } - } - OLC_MPROGL(d) = head; - OLC_MPROG(d) = OLC_MPROGL(d); - } -#endif - OLC_MOB(d) = mob; OLC_ITEM_TYPE(d) = MOB_TRIGGER; dg_olc_script_copy(d); @@ -332,8 +291,6 @@ void medit_save_internally(struct descriptor_data *d) return; } - - /* Update triggers */ /* Free old proto list */ if (mob_proto[new_rnum].proto_script && @@ -401,97 +358,6 @@ void medit_disp_positions(struct descriptor_data *d) write_to_output(d, "Enter position number : "); } -/*-------------------------------------------------------------------*/ - -#if CONFIG_OASIS_MPROG -/* - * Get the type of MobProg. - */ -const char *medit_get_mprog_type(struct mob_prog_data *mprog) -{ - switch (mprog->type) { - case IN_FILE_PROG: return ">in_file_prog"; - case ACT_PROG: return ">act_prog"; - case SPEECH_PROG: return ">speech_prog"; - case RAND_PROG: return ">rand_prog"; - case FIGHT_PROG: return ">fight_prog"; - case HITPRCNT_PROG: return ">hitprcnt_prog"; - case DEATH_PROG: return ">death_prog"; - case ENTRY_PROG: return ">entry_prog"; - case GREET_PROG: return ">greet_prog"; - case ALL_GREET_PROG: return ">all_greet_prog"; - case GIVE_PROG: return ">give_prog"; - case BRIBE_PROG: return ">bribe_prog"; - } - return ">ERROR_PROG"; -} - -/*-------------------------------------------------------------------*/ - -/* - * Display the MobProgs. - */ -void medit_disp_mprog(struct descriptor_data *d) -{ - struct mob_prog_data *mprog = OLC_MPROGL(d); - - OLC_MTOTAL(d) = 1; - - clear_screen(d); - while (mprog) { - write_to_output(d, "%d) %s %s\r\n", OLC_MTOTAL(d), medit_get_mprog_type(mprog), - (mprog->arglist ? mprog->arglist : "NONE")); - OLC_MTOTAL(d)++; - mprog = mprog->next; - } - write_to_output(d, "%d) Create New Mob Prog\r\n" - "%d) Purge Mob Prog\r\n" - "Enter number to edit [0 to exit]: ", - OLC_MTOTAL(d), OLC_MTOTAL(d) + 1); - OLC_MODE(d) = MEDIT_MPROG; -} - -/*-------------------------------------------------------------------*/ - -/* - * Change the MobProgs. - */ -void medit_change_mprog(struct descriptor_data *d) -{ - clear_screen(d); - write_to_output(d, "1) Type: %s\r\n" - "2) Args: %s\r\n" - "3) Commands:\r\n%s\r\n\r\n" - "Enter number to edit [0 to exit]: ", - medit_get_mprog_type(OLC_MPROG(d)), - (OLC_MPROG(d)->arglist ? OLC_MPROG(d)->arglist: "NONE"), - (OLC_MPROG(d)->comlist ? OLC_MPROG(d)->comlist : "NONE")); - - OLC_MODE(d) = MEDIT_CHANGE_MPROG; -} - -/*-------------------------------------------------------------------*/ - -/* - * Change the MobProg type. - */ -void medit_disp_mprog_types(struct descriptor_data *d) -{ - int i; - - get_char_colors(d->character); - clear_screen(d); - - for (i = 0; i < NUM_PROGS-1; i++) { - write_to_output(d, "%s%2d%s) %s\r\n", grn, i, nrm, mobprog_types[i]); - } - write_to_output(d, "Enter mob prog type : "); - OLC_MODE(d) = MEDIT_MPROG_TYPE; -} -#endif - -/*-------------------------------------------------------------------*/ - /* * Display the gender of the mobile. */ @@ -622,9 +488,6 @@ void medit_disp_menu(struct descriptor_data *d) "%sK%s) Attack : %s%s\r\n" "%sL%s) NPC Flags : %s%s\r\n" "%sM%s) AFF Flags : %s%s\r\n" -#if CONFIG_OASIS_MPROG - "%sP%s) Mob Progs : %s%s\r\n" -#endif "%sS%s) Script : %s%s\r\n" "%sX%s) Delete mob\r\n" "%sQ%s) Quit\r\n" @@ -635,9 +498,6 @@ void medit_disp_menu(struct descriptor_data *d) grn, nrm, yel, attack_hit_text[(int)GET_ATTACK(mob)].singular, grn, nrm, cyn, flags, grn, nrm, cyn, flag2, -#if CONFIG_OASIS_MPROG - grn, nrm, cyn, (OLC_MPROGL(d) ? "Set." : "Not Set."), -#endif grn, nrm, cyn, OLC_SCRIPT(d) ?"Set.":"Not Set.", grn, nrm, grn, nrm @@ -822,13 +682,6 @@ void medit_parse(struct descriptor_data *d, char *arg) write_to_output(d, "Are you sure you want to delete this mobile? "); OLC_MODE(d) = MEDIT_DELETE; return; -#if CONFIG_OASIS_MPROG - case 'p': - case 'P': - OLC_MODE(d) = MEDIT_MPROG; - medit_disp_mprog(d); - return; -#endif case 's': case 'S': OLC_SCRIPT_EDIT_MODE(d) = SCRIPT_MAIN_MENU; @@ -887,16 +740,6 @@ void medit_parse(struct descriptor_data *d, char *arg) mudlog(BRF, LVL_BUILDER, TRUE, "SYSERR: OLC: medit_parse(): Reached D_DESC case!"); write_to_output(d, "Oops...\r\n"); break; -/*-------------------------------------------------------------------*/ -#if CONFIG_OASIS_MPROG - case MEDIT_MPROG_COMLIST: - /* - * We should never get here, but if we do, bail out. - */ - cleanup_olc(d, CLEANUP_ALL); - mudlog(BRF, LVL_BUILDER, TRUE, "SYSERR: OLC: medit_parse(): Reached MPROG_COMLIST case!"); - break; -#endif /*-------------------------------------------------------------------*/ case MEDIT_NPC_FLAGS: if ((i = atoi(arg)) <= 0) @@ -917,102 +760,12 @@ void medit_parse(struct descriptor_data *d, char *arg) AFF_CHARM | AFF_POISON | AFF_GROUP | AFF_SLEEP); medit_disp_aff_flags(d); return; -/*-------------------------------------------------------------------*/ -#if CONFIG_OASIS_MPROG - case MEDIT_MPROG: - if ((i = atoi(arg)) == 0) - medit_disp_menu(d); - else if (i == OLC_MTOTAL(d)) { - struct mob_prog_data *temp; - CREATE(temp, struct mob_prog_data, 1); - temp->next = OLC_MPROGL(d); - temp->type = -1; - temp->arglist = NULL; - temp->comlist = NULL; - OLC_MPROG(d) = temp; - OLC_MPROGL(d) = temp; - OLC_MODE(d) = MEDIT_CHANGE_MPROG; - medit_change_mprog (d); - } else if (i < OLC_MTOTAL(d)) { - struct mob_prog_data *temp; - int x = 1; - for (temp = OLC_MPROGL(d); temp && x < i; temp = temp->next) - x++; - OLC_MPROG(d) = temp; - OLC_MODE(d) = MEDIT_CHANGE_MPROG; - medit_change_mprog (d); - } else if (i == (OLC_MTOTAL(d) + 1)) { - write_to_output(d, "Which mob prog do you want to purge? "); - OLC_MODE(d) = MEDIT_PURGE_MPROG; - } else - medit_disp_menu(d); - return; - - case MEDIT_PURGE_MPROG: - if ((i = atoi(arg)) > 0 && i < OLC_MTOTAL(d)) { - struct mob_prog_data *temp; - int x = 1; - - for (temp = OLC_MPROGL(d); temp && x < i; temp = temp->next) - x++; - OLC_MPROG(d) = temp; - REMOVE_FROM_LIST(OLC_MPROG(d), OLC_MPROGL(d), next); - free(OLC_MPROG(d)->arglist); - free(OLC_MPROG(d)->comlist); - free(OLC_MPROG(d)); - OLC_MPROG(d) = NULL; - OLC_VAL(d) = 1; - } - medit_disp_mprog(d); - return; - - case MEDIT_CHANGE_MPROG: - if ((i = atoi(arg)) == 1) - medit_disp_mprog_types(d); - else if (i == 2) { - write_to_output(d, "Enter new arg list: "); - OLC_MODE(d) = MEDIT_MPROG_ARGS; - } else if (i == 3) { - write_to_output(d, "Enter new mob prog commands:\r\n"); - /* - * Pass control to modify.c for typing. - */ - OLC_MODE(d) = MEDIT_MPROG_COMLIST; - if (OLC_MPROG(d)->comlist) { - write_to_output(d, "%s", OLC_MPROG(d)->comlist); - oldtext = strdup(OLC_MPROG(d)->comlist); - } - string_write(d, &OLC_MPROG(d)->comlist, MAX_STRING_LENGTH, 0, oldtext); - OLC_VAL(d) = 1; - } else - medit_disp_mprog(d); - return; -#endif /*-------------------------------------------------------------------*/ - /* * Numerical responses. */ -#if CONFIG_OASIS_MPROG - case MEDIT_MPROG_TYPE: - /* - * This calculation may be off by one too many powers of 2? - * Someone who actually uses MobProgs will have to check. - */ - OLC_MPROG(d)->type = (1 << LIMIT(atoi(arg), 0, NUM_PROGS - 1)); - OLC_VAL(d) = 1; - medit_change_mprog(d); - return; - - case MEDIT_MPROG_ARGS: - OLC_MPROG(d)->arglist = strdup(arg); - OLC_VAL(d) = 1; - medit_change_mprog(d); - return; -#endif - case MEDIT_SEX: GET_SEX(OLC_MOB(d)) = LIMIT(i, 0, NUM_GENDERS - 1); break; @@ -1134,12 +887,6 @@ void medit_string_cleanup(struct descriptor_data *d, int terminator) { switch (OLC_MODE(d)) { -#if CONFIG_OASIS_MPROG - case MEDIT_MPROG_COMLIST: - medit_change_mprog(d); - break; -#endif - case MEDIT_D_DESC: default: medit_disp_menu(d); diff --git a/src/oasis.c b/src/oasis.c index 1666c58..1a09664 100644 --- a/src/oasis.c +++ b/src/oasis.c @@ -394,7 +394,13 @@ int can_edit_zone(struct char_data *ch, zone_rnum rnum) if (!ch->desc || IS_NPC(ch) || rnum == NOWHERE) return FALSE; - if (rnum == HEDIT_PERMISSION) + if (GET_OLC_ZONE(ch) == ALL_PERMISSION) + return TRUE; + + if (GET_OLC_ZONE(ch) == HEDIT_PERMISSION && rnum == HEDIT_PERMISSION) + return TRUE; + + if (GET_OLC_ZONE(ch) == AEDIT_PERMISSION && rnum == AEDIT_PERMISSION) return TRUE; /* always access if ch is high enough level */ diff --git a/src/oasis.h b/src/oasis.h index 0d1be47..08a5ca2 100644 --- a/src/oasis.h +++ b/src/oasis.h @@ -16,18 +16,7 @@ #define AEDIT_PERMISSION 999 /* arbitrary number higher than max zone vnum*/ #define HEDIT_PERMISSION 888 /* arbitrary number higher then max zone vnum*/ - -/* - * Set this to 1 to enable MobProg support. MobProgs are available on - * the CircleMUD FTP site in the "contrib/scripting/" directory. - * - * -- THIS WILL NOT WORK WITHOUT MobProgs INSTALLED. -- - * -- OasisOLC DOES NOT COME WITH THEM. -- Loud enough for you? - * - * It might work with DG Scripts (successor to MobProgs) but I haven't - * tried, nor have I heard of anyone trying. - */ -#define CONFIG_OASIS_MPROG 0 +#define ALL_PERMISSION 666 /* arbitrary number higher then max zone vnum*/ /* * Macros, defines, structs and globals for the OLC suite. You will need @@ -52,13 +41,6 @@ #define NUM_SHOP_FLAGS 3 #define NUM_TRADERS 7 -#if CONFIG_OASIS_MPROG -/* - * Define this to how many MobProg scripts you have. - */ -#define NUM_PROGS 12 -#endif - /* -------------------------------------------------------------------------- */ /* @@ -136,11 +118,6 @@ struct oasis_olc_data { struct shop_data *shop; /* used for 'sedit' */ struct config_data *config; /* used for 'cedit' */ struct extra_descr_data *desc; /* used in '[r|o|m]edit' */ -#if CONFIG_OASIS_MPROG /* */ - int total_mprogs; /* */ - struct mob_prog_data *mprog; /* */ - struct mob_prog_data *mprogl; /* */ -#endif struct social_messg *action; /* Aedit uses this one */ struct trig_data *trig; int script_mode; @@ -174,12 +151,6 @@ extern const char *nrm, *grn, *cyn, *yel; #define OLC_CONFIG(d) (OLC(d)->config) /* Config structure. */ #define OLC_TRIG(d) (OLC(d)->trig) /* Trigger structure. */ -#if CONFIG_OASIS_MPROG -#define OLC_MPROG(d) (OLC(d)->mprog) /* Temporary MobProg. */ -#define OLC_MPROGL(d) (OLC(d)->mprogl) /* MobProg list. */ -#define OLC_MTOTAL(d) (OLC(d)->total_mprogs) /* Total mprog number. */ -#endif - #define OLC_ACTION(d) (OLC(d)->action) /* Action structure */ #define OLC_HELP(d) (OLC(d)->help) /* Hedit structure */ @@ -326,14 +297,6 @@ extern const char *nrm, *grn, *cyn, *yel; #define MEDIT_LEVEL 25 #define MEDIT_ALIGNMENT 26 #define MEDIT_DELETE 27 -#if CONFIG_OASIS_MPROG -#define MEDIT_MPROG 27 -#define MEDIT_CHANGE_MPROG 28 -#define MEDIT_MPROG_COMLIST 29 -#define MEDIT_MPROG_ARGS 30 -#define MEDIT_MPROG_TYPE 31 -#define MEDIT_PURGE_MPROG 32 -#endif /* * Submodes of SEDIT connectedness. diff --git a/src/oasis_list.c b/src/oasis_list.c index beb9bad..b9500ab 100644 --- a/src/oasis_list.c +++ b/src/oasis_list.c @@ -69,7 +69,12 @@ ACMD(do_oasis_list) case SCMD_OASIS_RLIST: list_rooms(ch, rzone, vmin, vmax); break; case SCMD_OASIS_TLIST: list_triggers(ch, rzone, vmin, vmax); break; case SCMD_OASIS_SLIST: list_shops(ch, rzone, vmin, vmax); break; - case SCMD_OASIS_ZLIST: list_zones(ch, rzone, vmin, vmax); break; + case SCMD_OASIS_ZLIST: + if (!*smin) + list_zones(ch, NOWHERE, 0, zone_table[top_of_zone_table].number); + else + list_zones(ch, rzone, vmin, vmax); + break; default: send_to_char(ch, "You can't list that!\r\n"); mudlog(BRF, LVL_IMMORT, TRUE, diff --git a/src/players.c b/src/players.c index 2e28aee..0345633 100644 --- a/src/players.c +++ b/src/players.c @@ -486,11 +486,12 @@ void save_char(struct char_data * ch) /* Unaffect everything a character can be affected by */ for (i = 0; i < NUM_WEARS; i++) { - if (GET_EQ(ch, i)) + if (GET_EQ(ch, i)) { char_eq[i] = unequip_char(ch, i); #ifndef NO_EXTRANEOUS_TRIGGERS remove_otrigger(char_eq[i], ch); #endif + } else char_eq[i] = NULL; } diff --git a/src/structs.h b/src/structs.h index 19393e9..55c8ee2 100644 --- a/src/structs.h +++ b/src/structs.h @@ -529,7 +529,7 @@ #define MAX_HELP_KEYWORDS 256 #define MAX_HELP_ENTRY MAX_STRING_LENGTH -/* define the largest set of commands for as trigger */ +/* define the largest set of commands for a trigger */ #define MAX_CMD_LENGTH 16384 /* 16k should be plenty and then some */ /**********************************************************************