void trigedit_disp_types(struct descriptor_data *d) { int i, columns = 0; const char **types; char bitbuf[MAX_STRING_LENGTH]; switch(OLC_TRIG(d)->attach_type) { case WLD_TRIGGER: types = wtrig_types; break; case OBJ_TRIGGER: types = otrig_types; break; case MOB_TRIGGER: default: types = trig_types; break; } get_char_colors(d->character); clear_screen(d); for (i = 0; i < NUM_TRIG_TYPE_FLAGS; i++) { write_to_output(d, "%s%2d%s) %-20.20s %s", grn, i + 1, nrm, types[i], !(++columns % 2) ? "\r\n" : ""); } sprintbit(GET_TRIG_TYPE(OLC_TRIG(d)), types, bitbuf, sizeof(bitbuf)); write_to_output(d, "\r\nCurrent types : %s%s%s\r\nEnter type (0 to quit) : ", cyn, bitbuf, nrm); }
/* Menu functions Display positions. (sitting, standing, etc) */ static void medit_disp_positions(struct descriptor_data *d) { get_char_colors(d->character); clear_screen(d); column_list(d->character, 0, position_types, NUM_POSITIONS, TRUE); write_to_output(d, "Enter position number : "); }
/* Display the gender of the mobile. */ static void medit_disp_sex(struct descriptor_data *d) { get_char_colors(d->character); clear_screen(d); column_list(d->character, 0, genders, NUM_GENDERS, TRUE); write_to_output(d, "Enter gender number : "); }
void trigedit_disp_types(struct descriptor_data *d) { int i, columns = 0; const char **types; switch(OLC_TRIG(d)->attach_type) { case WLD_TRIGGER: types = wtrig_types; break; case OBJ_TRIGGER: types = otrig_types; break; case MOB_TRIGGER: default: types = trig_types; break; } get_char_colors(d->character); #if defined(CLEAR_SCREEN) send_to_char("", d->character); #endif for (i = 0; i < NUM_TRIG_TYPE_FLAGS; i++) { sprintf(buf, "%s%2d%s) %-20.20s %s", grn, i + 1, nrm, types[i], !(++columns % 2) ? "\r\n" : ""); send_to_char(buf, d->character); } sprintbit(GET_TRIG_TYPE(OLC_TRIG(d)), types, buf1); sprintf(buf, "\r\nCurrent types : %s%s%s\r\nEnter type (0 to quit) : ", cyn, buf1, nrm); send_to_char(buf, d->character); }
static void sedit_rooms_menu(struct descriptor_data *d) { struct shop_data *shop; int i; room_rnum rnum; shop = OLC_SHOP(d); get_char_colors(d->character); clear_screen(d); write_to_output(d, "## VNUM Room\r\n\r\n"); for (i = 0; S_ROOM(shop, i) != NOWHERE; i++) { rnum = real_room(S_ROOM(shop, i)); /* if the room has been deleted, this may crash us otherwise. */ /* set to 0 to be deletable. -- Welcor 09/04 */ if (rnum == NOWHERE) S_ROOM(shop, i) = rnum = 0; write_to_output(d, "%2d - [%s%5d%s] - %s%s%s\r\n", i, cyn, S_ROOM(shop, i), nrm, yel, world[rnum].name, nrm); } write_to_output(d, "\r\n" "%sA%s) Add a new room.\r\n" "%sD%s) Delete a room.\r\n" "%sC%s) Compact Display.\r\n" "%sQ%s) Quit\r\n" "Enter choice : ", grn, nrm, grn, nrm, grn, nrm, grn, nrm); OLC_MODE(d) = SEDIT_ROOMS_MENU; }
static void sedit_compact_rooms_menu(struct descriptor_data *d) { struct shop_data *shop; int i; shop = OLC_SHOP(d); get_char_colors(d->character); clear_screen(d); for (i = 0; S_ROOM(shop, i) != NOWHERE; i++) { if (real_room(S_ROOM(shop, i)) != NOWHERE) { write_to_output(d, "%2d - [@\t%5d\tn] - \ty%s\tn\r\n", i, S_ROOM(shop, i), world[real_room(S_ROOM(shop, i))].name); } else { write_to_output(d, "%2d - [\tR!Removed Room!\tn]\r\n", i); } } write_to_output(d, "\r\n" "%sA%s) Add a new room.\r\n" "%sD%s) Delete a room.\r\n" "%sL%s) Long display.\r\n" "%sQ%s) Quit\r\n" "Enter choice : ", grn, nrm, grn, nrm, grn, nrm, grn, nrm); OLC_MODE(d) = SEDIT_ROOMS_MENU; }
/* Ask for liquid type. */ static void oedit_liquid_type(struct descriptor_data *d) { get_char_colors(d->character); clear_screen(d); column_list(d->character, 0, drinks, NUM_LIQ_TYPES, TRUE); write_to_output(d, "\r\n%sEnter drink type : ", nrm); OLC_MODE(d) = OEDIT_VALUE_3; }
/* The actual apply to set. */ static void oedit_disp_apply_menu(struct descriptor_data *d) { get_char_colors(d->character); clear_screen(d); column_list(d->character, 0, apply_types, NUM_APPLIES, TRUE); write_to_output(d, "\r\nEnter apply type (0 is no apply) : "); OLC_MODE(d) = OEDIT_APPLY; }
/* Display main menu. */ static void sedit_disp_menu(struct descriptor_data *d) { char buf1[MAX_STRING_LENGTH]; char buf2[MAX_STRING_LENGTH]; struct shop_data *shop; shop = OLC_SHOP(d); get_char_colors(d->character); clear_screen(d); sprintbit(S_NOTRADE(shop), trade_letters, buf1, sizeof(buf1)); sprintbit(S_BITVECTOR(shop), shop_bits, buf2, sizeof(buf2)); write_to_output(d, "-- Shop Number : [%s%d%s]\r\n" "%s0%s) Keeper : [%s%d%s] %s%s\r\n" "%s1%s) Open 1 : %s%4d%s %s2%s) Close 1 : %s%4d\r\n" "%s3%s) Open 2 : %s%4d%s %s4%s) Close 2 : %s%4d\r\n" "%s5%s) Sell rate : %s%1.2f%s %s6%s) Buy rate : %s%1.2f\r\n" "%s7%s) Keeper no item : %s%s\r\n" "%s8%s) Player no item : %s%s\r\n" "%s9%s) Keeper no cash : %s%s\r\n" "%sA%s) Player no cash : %s%s\r\n" "%sB%s) Keeper no buy : %s%s\r\n" "%sC%s) Buy success : %s%s\r\n" "%sD%s) Sell success : %s%s\r\n" "%sE%s) No Trade With : %s%s\r\n" "%sF%s) Shop flags : %s%s\r\n" "%sR%s) Rooms Menu\r\n" "%sP%s) Products Menu\r\n" "%sT%s) Accept Types Menu\r\n" "%sW%s) Copy Shop\r\n" "%sQ%s) Quit\r\n" "Enter Choice : ", cyn, OLC_NUM(d), nrm, grn, nrm, cyn, S_KEEPER(shop) == NOBODY ? -1 : mob_index[S_KEEPER(shop)].vnum, nrm, yel, S_KEEPER(shop) == NOBODY ? "None" : mob_proto[S_KEEPER(shop)].player.short_descr, grn, nrm, cyn, S_OPEN1(shop), nrm, grn, nrm, cyn, S_CLOSE1(shop), grn, nrm, cyn, S_OPEN2(shop), nrm, grn, nrm, cyn, S_CLOSE2(shop), grn, nrm, cyn, S_BUYPROFIT(shop), nrm, grn, nrm, cyn, S_SELLPROFIT(shop), grn, nrm, yel, S_NOITEM1(shop), grn, nrm, yel, S_NOITEM2(shop), grn, nrm, yel, S_NOCASH1(shop), grn, nrm, yel, S_NOCASH2(shop), grn, nrm, yel, S_NOBUY(shop), grn, nrm, yel, S_BUY(shop), grn, nrm, yel, S_SELL(shop), grn, nrm, cyn, buf1, grn, nrm, cyn, buf2, grn, nrm, grn, nrm, grn, nrm, grn, nrm, grn, nrm ); OLC_MODE(d) = SEDIT_MAIN_MENU; }
/* Display attack types menu. */ static void medit_disp_attack_types(struct descriptor_data *d) { int i; get_char_colors(d->character); clear_screen(d); for (i = 0; i < NUM_ATTACK_TYPES; i++) { write_to_output(d, "%s%2d%s) %s\r\n", grn, i, nrm, attack_hit_text[i].singular); } write_to_output(d, "Enter attack type : "); }
/* Display affection flags menu. */ static void medit_disp_aff_flags(struct descriptor_data *d) { char flags[MAX_STRING_LENGTH]; get_char_colors(d->character); clear_screen(d); /* +1 since AFF_FLAGS don't start at 0. */ column_list(d->character, 0, affected_bits + 1, NUM_AFF_FLAGS, TRUE); sprintbitarray(AFF_FLAGS(OLC_MOB(d)), affected_bits, AF_ARRAY_MAX, flags); write_to_output(d, "\r\nCurrent flags : %s%s%s\r\nEnter aff flags (0 to quit) : ", cyn, flags, nrm); }
/* Display main menu. */ static void medit_disp_menu(struct descriptor_data *d) { struct char_data *mob; char flags[MAX_STRING_LENGTH], flag2[MAX_STRING_LENGTH]; mob = OLC_MOB(d); get_char_colors(d->character); clear_screen(d); write_to_output(d, "-- Mob Number: [%s%d%s]\r\n" "%s1%s) Sex: %s%-7.7s%s %s2%s) Keywords: %s%s\r\n" "%s3%s) S-Desc: %s%s\r\n" "%s4%s) L-Desc:-\r\n%s%s\r\n" "%s5%s) D-Desc:-\r\n%s%s\r\n", cyn, OLC_NUM(d), nrm, grn, nrm, yel, genders[(int)GET_SEX(mob)], nrm, grn, nrm, yel, GET_ALIAS(mob), grn, nrm, yel, GET_SDESC(mob), grn, nrm, yel, GET_LDESC(mob), grn, nrm, yel, GET_DDESC(mob) ); sprintbitarray(MOB_FLAGS(mob), action_bits, AF_ARRAY_MAX, flags); sprintbitarray(AFF_FLAGS(mob), affected_bits, AF_ARRAY_MAX, flag2); write_to_output(d, "%s6%s) Position : %s%s\r\n" "%s7%s) Default : %s%s\r\n" "%s8%s) Attack : %s%s\r\n" "%s9%s) Stats Menu...\r\n" "%sA%s) NPC Flags : %s%s\r\n" "%sB%s) AFF Flags : %s%s\r\n" "%sS%s) Script : %s%s\r\n" "%sW%s) Copy mob\r\n" "%sX%s) Delete mob\r\n" "%sQ%s) Quit\r\n" "Enter choice : ", grn, nrm, yel, position_types[(int)GET_POS(mob)], grn, nrm, yel, position_types[(int)GET_DEFAULT_POS(mob)], grn, nrm, yel, attack_hit_text[(int)GET_ATTACK(mob)].singular, grn, nrm, grn, nrm, cyn, flags, grn, nrm, cyn, flag2, grn, nrm, cyn, OLC_SCRIPT(d) ?"Set.":"Not Set.", grn, nrm, grn, nrm, grn, nrm ); OLC_MODE(d) = MEDIT_MAIN_MENU; }
void trigedit_disp_menu(struct descriptor_data *d) { struct trig_data *trig = OLC_TRIG(d); char *attach_type; char trgtypes[256]; get_char_colors(d->character); clear_screen(d); if (trig->attach_type==OBJ_TRIGGER) { attach_type = "Objects"; sprintbit(GET_TRIG_TYPE(trig), otrig_types, trgtypes, sizeof(trgtypes)); } else if (trig->attach_type==WLD_TRIGGER) { attach_type = "Rooms"; sprintbit(GET_TRIG_TYPE(trig), wtrig_types, trgtypes, sizeof(trgtypes)); } else { attach_type = "Mobiles"; sprintbit(GET_TRIG_TYPE(trig), trig_types, trgtypes, sizeof(trgtypes)); } write_to_output(d, TRUE, #if defined(CLEAR_SCREEN) "^[[H^[[J" #endif "Trigger Editor [%s%d%s]\r\n\r\n" "%s1)%s Name : %s%s\r\n" "%s2)%s Intended for : %s%s\r\n" "%s3)%s Trigger types: %s%s\r\n" "%s4)%s Numberic Arg : %s%d\r\n" "%s5)%s Arguments : %s%s\r\n" "%s6)%s Commands:\r\n%s", grn, OLC_NUM(d), nrm, /* vnum on the title line */ grn, nrm, yel, GET_TRIG_NAME(trig), /* name */ grn, nrm, yel, attach_type, /* attach type */ grn, nrm, yel, trgtypes, /* greet/drop/etc */ grn, nrm, yel, trig->narg, /* numeric arg */ grn, nrm, yel, trig->arglist?trig->arglist:"", /* strict arg */ grn, nrm, cyn ); write_to_output(d, FALSE, "%s\r\n", OLC_STORAGE(d) /* the command list */ ); write_to_output(d, TRUE, "%sQ)%s Quit\r\n" "Enter Choice :", grn, nrm /* quit colors */ ); OLC_MODE(d) = TRIGEDIT_MAIN_MENU; }
void medit_disp_size_flags(struct descriptor_data *d) { get_char_colors(d->character); clear_screen(d); sprintf(buf, "8 ) FINE 4 ) DIMINUTIVE 2 ) TINY\r\n" "1 ) SMALL 0 ) MEDIUM -1) LARGE\r\n" "-2) HUGE -4) GARGANTUAN -8) COLOSSAL\r\n"); SEND_TO_Q(buf, d); sprintf(buf, "\r\nEnter Size: "); SEND_TO_Q(buf, d); }
/* * Display main menu. */ void hedit_disp_menu(struct descriptor_data *d) { struct house_data *house; char *name; house = OLC_HOUSE(d); get_char_colors(d->character); if ((name = get_name_by_id(H_OWNER(house))) == NULL) name = str_dup("nobody"); else name = str_dup(get_name_by_id(H_OWNER(house))); clear_screen(d); write_to_output(d, TRUE, "-- House Number : [%s%d%s]\r\n" "%s0%s) Owner : %s%s\r\n" "%s1%s) Atrium : [%s%d%s] %s%s\r\n" "%s2%s) Exit : [%s%d%s] %s%s\r\n" "%s3%s) House type : %s%s\r\n" "%s4%s) Prune-safe : %s%s\r\n" "%s5%s) Cost : [%s%d%s]\r\n" "%s6%s) Max Secure containers : [%s%d%s]\r\n" "%s7%s) Max Locked-down objs : [%s%d%s]\r\n" "%sR%s) Rooms Menu\r\n" "%sC%s) Co-Owners Menu\r\n" "%sG%s) Guests Menu\r\n" "%sD%s) Delete this house\r\n" "%sQ%s) Quit\r\n" "Enter Choice : ", cyn, OLC_NUM(d), nrm, grn, nrm, yel, CAP(name), grn, nrm, cyn, real_room(H_ATRIUM(house)) == NOWHERE ? -1 : world[real_room(H_ATRIUM(house))].number, nrm, yel, real_room(H_ATRIUM(house)) == NOWHERE ? "Nowhere" : world[real_room(H_ATRIUM(house))].name, grn, nrm, cyn, H_EXIT(house) < 0 || H_EXIT(house) >= NUM_OF_DIRS ? -1 : H_EXIT(house), nrm, yel, H_EXIT(house) < 0 || H_EXIT(house) >= NUM_OF_DIRS ? "Nowhere" : dirs[H_EXIT(house)], grn, nrm, cyn, house_types[H_MODE(house)], grn, nrm, cyn, YESNO(H_PRUNE_SAFE(house)), grn, nrm, cyn, H_COST(house), nrm, grn, nrm, cyn, H_MAX_SECURE(house), nrm, grn, nrm, cyn, H_MAX_LOCKED(house), nrm, grn, nrm, grn, nrm, grn, nrm, grn, nrm, grn, nrm ); release_buffer(name); OLC_MODE(d) = HEDIT_MAIN_MENU; }
void hedit_exits_menu(struct descriptor_data *d) { struct house_data *house; int i; house = OLC_HOUSE(d); get_char_colors(d->character); clear_screen(d); for (i = 0; *dirs[i] != '\n'; i++) write_to_output(d, TRUE, "%s%2d%s) %s%s%s\r\n", grn, i, nrm, yel, dirs[i], nrm); write_to_output(d, TRUE, "\r\nEnter Exit number : "); }
/* * Spell type. */ void oedit_disp_spells_menu(struct descriptor_data *d) { int counter, columns = 0; get_char_colors(d->character); clear_screen(d); for (counter = 0; counter < NUM_SPELLS; counter++) { write_to_output(d, "%s%2d%s) %s%-20.20s %s", grn, counter, nrm, yel, spell_info[counter].name, !(++columns % 3) ? "\r\n" : ""); } write_to_output(d, "\r\n%sEnter spell choice (0 for none) : ", nrm); }
/* * Display the gender of the mobile. */ void medit_disp_sex(struct descriptor_data *d) { int i; get_char_colors(d->character); clear_screen(d); for (i = 0; i < NUM_GENDERS; i++) { sprintf(buf, "%s%2d%s) %s\r\n", grn, i, nrm, genders[i]); SEND_TO_Q(buf, d); } SEND_TO_Q("Enter gender number : ", d); }
void hedit_modes_menu(struct descriptor_data *d) { struct house_data *house; int i; house = OLC_HOUSE(d); get_char_colors(d->character); clear_screen(d); for (i = 0; *house_types[i] != '\n'; i++) write_to_output(d, TRUE, "%s%2d%s) %s%s%s\r\n", grn, i, nrm, cyn, house_types[i], nrm); write_to_output(d, TRUE, "\r\nEnter House Type : "); }
void hedit_prune_safe_menu(struct descriptor_data *d) { struct house_data *house; int i; house = OLC_HOUSE(d); get_char_colors(d->character); clear_screen(d); for (i = 0; i < 2; i++) write_to_output(d, TRUE, "%s%2d%s) %s%s%s\r\n", grn, i, nrm, cyn, YESNO(i), nrm); write_to_output(d, TRUE, "\r\nShould the house be prune-safe? : "); }
/* * Object type. */ void oedit_disp_type_menu(struct descriptor_data *d) { int counter, columns = 0; get_char_colors(d->character); clear_screen(d); for (counter = 0; counter < NUM_ITEM_TYPES; counter++) { write_to_output(d, "%s%2d%s) %-20.20s %s", grn, counter, nrm, item_types[counter], !(++columns % 2) ? "\r\n" : ""); } write_to_output(d, "\r\nEnter object type : "); }
/* * Display positions. (sitting, standing, etc) */ void medit_disp_positions(struct descriptor_data *d) { int i; get_char_colors(d->character); clear_screen(d); for (i = 0; *position_types[i] != '\n'; i++) { sprintf(buf, "%s%2d%s) %s\r\n", grn, i, nrm, position_types[i]); SEND_TO_Q(buf, d); } SEND_TO_Q("Enter position number : ", d); }
/* * Display attack types menu. */ void medit_disp_attack_types(struct descriptor_data *d) { int i; get_char_colors(d->character); clear_screen(d); for (i = 0; i < NUM_ATTACK_TYPES; i++) { sprintf(buf, "%s%2d%s) %s\r\n", grn, i, nrm, attack_hit_text[i].singular); SEND_TO_Q(buf, d); } SEND_TO_Q("Enter attack type : ", d); }
/* * Ask for liquid type. */ void oedit_liquid_type(struct descriptor_data *d) { int counter, columns = 0; get_char_colors(d->character); clear_screen(d); for (counter = 0; counter < NUM_LIQ_TYPES; counter++) { write_to_output(d, " %s%2d%s) %s%-20.20s %s", grn, counter, nrm, yel, drinks[counter], !(++columns % 2) ? "\r\n" : ""); } write_to_output(d, "\r\n%sEnter drink type : ", nrm); OLC_MODE(d) = OEDIT_VALUE_3; }
/* * The actual apply to set. */ void oedit_disp_apply_menu(struct descriptor_data *d) { int counter, columns = 0; get_char_colors(d->character); clear_screen(d); for (counter = 0; counter < NUM_APPLIES; counter++) { write_to_output(d, "%s%2d%s) %-20.20s %s", grn, counter, nrm, apply_types[counter], !(++columns % 2) ? "\r\n" : ""); } write_to_output(d, "\r\nEnter apply type (0 is no apply) : "); OLC_MODE(d) = OEDIT_APPLY; }
/* * Weapon type. */ void oedit_disp_weapon_menu(struct descriptor_data *d) { int counter, columns = 0; get_char_colors(d->character); clear_screen(d); for (counter = 0; counter < NUM_ATTACK_TYPES; counter++) { write_to_output(d, "%s%2d%s) %-20.20s %s", grn, counter, nrm, attack_hit_text[counter].singular, !(++columns % 2) ? "\r\n" : ""); } write_to_output(d, "\r\nEnter weapon type : "); }
/* * 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++) { sprintf(buf, "%s%2d%s) %s\r\n", grn, i, nrm, mobprog_types[i]); SEND_TO_Q(buf, d); } SEND_TO_Q("Enter mob prog type : ", d); OLC_MODE(d) = MEDIT_MPROG_TYPE; }
static void sedit_types_menu(struct descriptor_data *d) { int i, count = 0; get_char_colors(d->character); clear_screen(d); for (i = 0; i < NUM_ITEM_TYPES; i++) { write_to_output(d, "%s%2d%s) %s%-20s%s %s", grn, i, nrm, cyn, item_types[i], nrm, !(++count % 3) ? "\r\n" : ""); } write_to_output(d, "%sEnter choice : ", nrm); OLC_MODE(d) = SEDIT_TYPE_MENU; }
/* * Display Race menu. */ void medit_disp_race_flags(struct descriptor_data *d) { int i, columns = 0; get_char_colors(d->character); clear_screen(d); for (i = 0; i < NUM_NPC_RACE; i++) { sprintf(buf, "%s%2d%s) %-20.20s %s", grn, i, nrm, npc_race_types[i], !(++columns % 3) ? "\r\n" : ""); SEND_TO_Q(buf, d); } sprintf(buf, "\r\nEnter race type: "); SEND_TO_Q(buf, d); }
/* * Object perm flags. */ void oedit_disp_perm_menu(struct descriptor_data *d) { char bits[MAX_STRING_LENGTH]; int counter, columns = 0; get_char_colors(d->character); clear_screen(d); for (counter = 0; counter < NUM_AFF_FLAGS; counter++) { write_to_output(d, "%s%2d%s) %-20.20s %s", grn, counter + 1, nrm, affected_bits[counter], !(++columns % 2) ? "\r\n" : ""); } sprintbit(GET_OBJ_PERM(OLC_OBJ(d)), affected_bits, bits, sizeof(bits)); write_to_output(d, "\r\nObject permanent flags: %s%s%s\r\n" "Enter object perm flag (0 to quit) : ", cyn, bits, nrm); }