/* * Print the appropriate message for the command type for arg1 and set * up the input catch clause */ void zedit_disp_arg1(struct descriptor_data *d) { switch (OLC_CMD(d).command) { case 'M': SEND_TO_Q("Input mob's vnum : ", d); OLC_MODE(d) = ZEDIT_ARG1; break; case 'O': case 'E': case 'P': case 'G': SEND_TO_Q("Input object vnum : ", d); OLC_MODE(d) = ZEDIT_ARG1; break; case 'D': case 'R': /* * Arg1 for these is the room number, skip to arg2 */ OLC_CMD(d).arg1 = real_room(OLC_NUM(d)); zedit_disp_arg2(d); break; default: /* * We should never get here. */ cleanup_olc(d, CLEANUP_ALL); mudlog("SYSERR: OLC: zedit_disp_arg1(): Help!", BRF, LVL_BUILDER, TRUE); SEND_TO_Q("Oops...\r\n", d); return; } }
void redit_disp_exit_edit( DESCRIPTOR_DATA *d ) { char flags[MSL]; EXIT_DATA *pexit = d->character->spare_ptr; int x; flags[0] = '\0'; for ( x = 0; x < MAX_EXIT; x++ ) { if ( pexit->flags && HAS_BIT(pexit->flags, x) ) { strcat( flags, code_name(NULL, x, CODE_EXIT) ); strcat( flags, " " ); } } OLC_MODE(d) = REDIT_EXIT_EDIT; write_to_buffer( d, "50\x1B[;H\x1B[2J", 0 ); ch_printf( d->character, "&g1&w) Direction : &c%s\r\n", code_name(NULL, pexit->vdir, CODE_DIR) ); ch_printf( d->character, "&g2&w) To Vnum : &c%d\r\n", (pexit->to_room) ? pexit->to_room->vnum : -1 ); ch_printf( d->character, "&g3&w) Key : &c%d\r\n", pexit->key ); ch_printf( d->character, "&g4&w) Keyword : &c%s\r\n", (VALID_STR(pexit->keyword)) ? pexit->keyword : "(none)" ); ch_printf( d->character, "&g5&w) Flags : &c%s\r\n", (VALID_STR(flags)) ? flags : "(none)" ); ch_printf( d->character, "&g6&w) Description: &c%s\r\n", (VALID_STR(pexit->description)) ? pexit->description : "(none)" ); send_to_char( d->character, "&gQ&w) Quit\r\n" ); send_to_char( d->character, "\r\nEnter choice: " ); }
/* For exit flags */ void redit_disp_exit_flag_menu( DESCRIPTOR_DATA *d ) { EXIT_DATA *pexit = d->character->spare_ptr; char buf[MSL]; int x; write_to_buffer( d, "50\x1B[;H\x1B[2J", 0 ); for ( x = 0; x < MAX_EXIT; x++ ) { if ( (x == EXIT_RES1) || (x == EXIT_RES2) || (x == EXIT_PORTAL) ) continue; ch_printf( d->character, "&g%2d&w) %-20.20s\r\n", x+1, code_name(NULL, x, CODE_EXIT) ); } buf[0] = '\0'; for ( x = 0; x < MAX_EXIT; x++ ) { if ( HAS_BIT(pexit->flags, x) ) { strcat( buf, code_name(NULL, x, CODE_EXIT) ); strcat( buf, " " ); } } ch_printf( d->character, "\r\nExit flags: &c%s&w\r\n" "Enter room flags, 0 to quit: ", buf ); OLC_MODE(d) = REDIT_EXIT_FLAGS; }
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; }
int find_context_medit(struct descriptor_data *d) { switch (OLC_MODE(d)) { case MEDIT_MAIN_MENU: return CONTEXT_MEDIT_MAIN_MENU; case MEDIT_ALIAS: return CONTEXT_MEDIT_ALIAS; case MEDIT_S_DESC: return CONTEXT_MEDIT_S_DESC; case MEDIT_L_DESC: return CONTEXT_MEDIT_L_DESC; case MEDIT_D_DESC: return CONTEXT_MEDIT_D_DESC; case MEDIT_NPC_FLAGS: return CONTEXT_MEDIT_NPC_FLAGS; case MEDIT_AFF_FLAGS: return CONTEXT_MEDIT_AFF_FLAGS; case MEDIT_CONFIRM_SAVESTRING:return CONTEXT_MEDIT_CONFIRM_SAVESTRING; case MEDIT_SEX: return CONTEXT_MEDIT_SEX; case MEDIT_HITROLL: return CONTEXT_MEDIT_HITROLL; case MEDIT_DAMROLL: return CONTEXT_MEDIT_DAMROLL; case MEDIT_NDD: return CONTEXT_MEDIT_NDD; case MEDIT_SDD: return CONTEXT_MEDIT_SDD; case MEDIT_NUM_HP_DICE: return CONTEXT_MEDIT_NUM_HP_DICE; case MEDIT_SIZE_HP_DICE: return CONTEXT_MEDIT_SIZE_HP_DICE; case MEDIT_ADD_HP: return CONTEXT_MEDIT_ADD_HP; case MEDIT_AC: return CONTEXT_MEDIT_AC; case MEDIT_EXP: return CONTEXT_MEDIT_EXP; case MEDIT_GOLD: return CONTEXT_MEDIT_GOLD; case MEDIT_POS: return CONTEXT_MEDIT_POS; case MEDIT_DEFAULT_POS: return CONTEXT_MEDIT_DEFAULT_POS; case MEDIT_ATTACK: return CONTEXT_MEDIT_ATTACK; case MEDIT_LEVEL: return CONTEXT_MEDIT_LEVEL; case MEDIT_ALIGNMENT: return CONTEXT_MEDIT_ALIGNMENT; case OLC_SCRIPT_EDIT: return find_context_script_edit(d); default: return NOTHING; } }
int find_context_sedit(struct descriptor_data *d) { switch (OLC_MODE(d)) { case SEDIT_MAIN_MENU: return CONTEXT_SEDIT_MAIN_MENU; case SEDIT_CONFIRM_SAVESTRING:return CONTEXT_SEDIT_CONFIRM_SAVESTRING; case SEDIT_NOITEM1: return CONTEXT_SEDIT_NOITEM1; case SEDIT_NOITEM2: return CONTEXT_SEDIT_NOITEM2; case SEDIT_NOCASH1: return CONTEXT_SEDIT_NOCASH1; case SEDIT_NOCASH2: return CONTEXT_SEDIT_NOCASH2; case SEDIT_NOBUY: return CONTEXT_SEDIT_NOBUY; case SEDIT_BUY: return CONTEXT_SEDIT_BUY; case SEDIT_SELL: return CONTEXT_SEDIT_SELL; case SEDIT_PRODUCTS_MENU: return CONTEXT_SEDIT_PRODUCTS_MENU; case SEDIT_ROOMS_MENU: return CONTEXT_SEDIT_ROOMS_MENU; case SEDIT_NAMELIST_MENU: return CONTEXT_SEDIT_NAMELIST_MENU; case SEDIT_NAMELIST: return CONTEXT_SEDIT_NAMELIST; case SEDIT_OPEN1: return CONTEXT_SEDIT_OPEN1; case SEDIT_OPEN2: return CONTEXT_SEDIT_OPEN2; case SEDIT_CLOSE1: return CONTEXT_SEDIT_CLOSE1; case SEDIT_CLOSE2: return CONTEXT_SEDIT_CLOSE2; case SEDIT_KEEPER: return CONTEXT_SEDIT_KEEPER; case SEDIT_BUY_PROFIT: return CONTEXT_SEDIT_BUY_PROFIT; case SEDIT_SELL_PROFIT: return CONTEXT_SEDIT_SELL_PROFIT; case SEDIT_TYPE_MENU: return CONTEXT_SEDIT_TYPE_MENU; case SEDIT_DELETE_TYPE: return CONTEXT_SEDIT_DELETE_TYPE; case SEDIT_DELETE_PRODUCT: return CONTEXT_SEDIT_DELETE_PRODUCT; case SEDIT_NEW_PRODUCT: return CONTEXT_SEDIT_NEW_PRODUCT; case SEDIT_DELETE_ROOM: return CONTEXT_SEDIT_DELETE_ROOM; case SEDIT_NEW_ROOM: return CONTEXT_SEDIT_NEW_ROOM; case SEDIT_SHOP_FLAGS: return CONTEXT_SEDIT_SHOP_FLAGS; case SEDIT_NOTRADE: return CONTEXT_SEDIT_NOTRADE; default: return NOTHING; } }
/* * Object value #3 */ void oedit_disp_val3_menu(struct descriptor_data *d) { OLC_MODE(d) = OEDIT_VALUE_3; switch (GET_OBJ_TYPE(OLC_OBJ(d))) { case ITEM_LIGHT: write_to_output(d, "Number of hours (0 = burnt, -1 is infinite) : "); break; case ITEM_SCROLL: case ITEM_POTION: oedit_disp_spells_menu(d); break; case ITEM_WAND: case ITEM_STAFF: write_to_output(d, "Number of charges remaining : "); break; case ITEM_WEAPON: write_to_output(d, "Size of damage dice : "); break; case ITEM_CONTAINER: write_to_output(d, "Vnum of key to open container (-1 for no key) : "); break; case ITEM_DRINKCON: case ITEM_FOUNTAIN: oedit_liquid_type(d); break; default: oedit_disp_menu(d); } }
/* * Object value #2 */ void oedit_disp_val2_menu(struct descriptor_data *d) { OLC_MODE(d) = OEDIT_VALUE_2; switch (GET_OBJ_TYPE(OLC_OBJ(d))) { case ITEM_SCROLL: case ITEM_POTION: oedit_disp_spells_menu(d); break; case ITEM_WAND: case ITEM_STAFF: write_to_output(d, "Max number of charges : "); break; case ITEM_WEAPON: write_to_output(d, "Number of damage dice : "); break; case ITEM_FOOD: /* * Values 2 and 3 are unused, jump to 4...Odd. */ oedit_disp_val4_menu(d); break; case ITEM_CONTAINER: /* * These are flags, needs a bit of special handling. */ oedit_disp_container_flags_menu(d); break; case ITEM_DRINKCON: case ITEM_FOUNTAIN: write_to_output(d, "Initial drink units : "); break; default: oedit_disp_menu(d); } }
int find_context_oedit(struct descriptor_data *d) { switch (OLC_MODE(d)) { case OEDIT_MAIN_MENU: return CONTEXT_OEDIT_MAIN_MENU; case OEDIT_EDIT_NAMELIST: return CONTEXT_OEDIT_EDIT_NAMELIST; case OEDIT_SHORTDESC: return CONTEXT_OEDIT_SHORTDESC; case OEDIT_LONGDESC: return CONTEXT_OEDIT_LONGDESC; case OEDIT_ACTDESC: return CONTEXT_OEDIT_ACTDESC; case OEDIT_TYPE: return CONTEXT_OEDIT_TYPE; case OEDIT_EXTRAS: return CONTEXT_OEDIT_EXTRAS; case OEDIT_WEAR: return CONTEXT_OEDIT_WEAR; case OEDIT_WEIGHT: return CONTEXT_OEDIT_WEIGHT; case OEDIT_COST: return CONTEXT_OEDIT_COST; case OEDIT_COSTPERDAY: return CONTEXT_OEDIT_COSTPERDAY; case OEDIT_TIMER: return CONTEXT_OEDIT_TIMER; case OEDIT_VALUE_1: return CONTEXT_OEDIT_VALUE_1; case OEDIT_VALUE_2: return CONTEXT_OEDIT_VALUE_2; case OEDIT_VALUE_3: return CONTEXT_OEDIT_VALUE_3; case OEDIT_VALUE_4: return CONTEXT_OEDIT_VALUE_4; case OEDIT_APPLY: return CONTEXT_OEDIT_APPLY; case OEDIT_APPLYMOD: return CONTEXT_OEDIT_APPLYMOD; case OEDIT_EXTRADESC_KEY: return CONTEXT_OEDIT_EXTRADESC_KEY; case OEDIT_CONFIRM_SAVEDB: return CONTEXT_OEDIT_CONFIRM_SAVEDB; case OEDIT_CONFIRM_SAVESTRING: return CONTEXT_OEDIT_CONFIRM_SAVESTRING; case OEDIT_PROMPT_APPLY: return CONTEXT_OEDIT_PROMPT_APPLY; case OEDIT_EXTRADESC_DESCRIPTION: return CONTEXT_OEDIT_EXTRADESC_DESCRIPTION; case OEDIT_EXTRADESC_MENU: return CONTEXT_OEDIT_EXTRADESC_MENU; case OEDIT_LEVEL: return CONTEXT_OEDIT_LEVEL; case OEDIT_PERM: return CONTEXT_OEDIT_PERM; case OLC_SCRIPT_EDIT: return find_context_script_edit(d); default: return NOTHING; } }
/* * Print the appropriate message for the command type for arg2 and set * up the input catch clause. */ void zedit_disp_arg2(struct descriptor_data *d) { int i; switch (OLC_CMD(d).command) { case 'M': case 'O': case 'E': case 'P': case 'G': SEND_TO_Q("Input the maximum number that can exist on the mud : ", d); break; case 'D': for (i = 0; *dirs[i] != '\n'; i++) { sprintf(buf, "%d) Exit %s.\r\n", i, dirs[i]); SEND_TO_Q(buf, d); } SEND_TO_Q("Enter exit number for door : ", d); break; case 'R': SEND_TO_Q("Input object's vnum : ", d); break; default: /* * We should never get here, but just in case... */ cleanup_olc(d, CLEANUP_ALL); mudlog("SYSERR: OLC: zedit_disp_arg2(): Help!", BRF, LVL_BUILDER, TRUE); SEND_TO_Q("Oops...\r\n", d); return; } OLC_MODE(d) = ZEDIT_ARG2; }
void zedit_disp_arg4(struct descriptor_data *d) { switch (OLC_CMD(d).command) { case 'M': case 'O': case 'E': case 'G': SEND_TO_Q("Enter The Load % : ", d); break; case 'P': case 'D': case 'R': break; default: /* * We should never get here, but just in case... */ cleanup_olc(d, CLEANUP_ALL); mudlog("SYSERR: OLC: zedit_disp_arg4(): Help!", BRF, LVL_BUILDER, TRUE); SEND_TO_Q("Oops...\r\n", d); return; } OLC_MODE(d) = ZEDIT_ARG4; }
/* For exits */ void redit_disp_exit_menu( DESCRIPTOR_DATA *d ) { ROOM_DATA *room = d->character->dest_buf; EXIT_DATA *pexit; int cnt; OLC_MODE(d) = REDIT_EXIT_MENU; write_to_buffer( d, "50\x1B[;H\x1B[2J", 0 ); for ( cnt = 0, pexit = room->first_exit; pexit; pexit = pexit->next ) { ch_printf( d->character, "&g%2d&w) %-10.10s to %-5d. Key: %d Keywords: %s Flags: %s.\r\n", ++cnt, code_name(NULL, pexit->vdir, CODE_DIR), (pexit->to_room) ? pexit->to_room->vnum : 0, pexit->key, code_bit(NULL, pexit->flags, CODE_EXIT), (VALID_STR(pexit->keyword)) ? pexit->keyword : "(none)" ); } if ( room->first_exit ) send_to_char( d->character, "\r\n" ); send_to_char( d->character, "&gA&w) Add a new exit\r\n" ); send_to_char( d->character, "&gR&w) Remove an exit\r\n" ); send_to_char( d->character, "&gQ&w) Quit\r\n" ); send_to_char( d->character, "\r\nEnter choice: " ); }
/* * Print the appropriate message for the command type for arg3 and set * up the input catch clause. */ void zedit_disp_arg3(struct descriptor_data *d) { int i = 0; switch (OLC_CMD(d).command) { case 'E': while (*equipment_types[i] != '\n') { sprintf(buf, "%2d) %26.26s %2d) %26.26s\r\n", i, equipment_types[i], i + 1, (*equipment_types[i + 1] != '\n') ? equipment_types[i + 1] : ""); SEND_TO_Q(buf, d); if (*equipment_types[i + 1] != '\n') i += 2; else break; } SEND_TO_Q("Location to equip : ", d); break; case 'P': SEND_TO_Q("Virtual number of the container : ", d); break; case 'D': SEND_TO_Q( "0) Door open\r\n" "1) Door closed\r\n" "2) Door locked\r\n" "Enter state of the door : ", d); break; case 'V': send_to_char("Enter the global name: ", d->character); OLC_MODE(d) = ZEDIT_SARG1; return; case 'M': case 'O': case 'R': case 'G': default: /* * We should never get here, just in case. */ cleanup_olc(d, CLEANUP_ALL); mudlog("SYSERR: OLC: zedit_disp_arg3(): Help!", BRF, LVL_BUILDER, TRUE); SEND_TO_Q("Oops...\r\n", d); return; } OLC_MODE(d) = ZEDIT_ARG3; }
/* 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; }
/* 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; }
/* 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; }
void medit_string_cleanup(struct descriptor_data *d, int terminator) { switch (OLC_MODE(d)) { case MEDIT_D_DESC: default: medit_disp_menu(d); break; } }
/* * Il menu principale. */ void redit_disp_menu( DESCRIPTOR_DATA *d ) { char buf[MSL]; ROOM_DATA *room = d->character->dest_buf; char *sect; switch ( room->sector ) { default: sect = "None"; break; case SECTOR_INSIDE: sect = "Inside"; break; case SECTOR_CITY: sect = "City"; break; case SECTOR_FIELD: sect = "Field"; break; case SECTOR_FOREST: sect = "Forest"; break; case SECTOR_HILLS: sect = "Hills"; break; case SECTOR_MOUNTAIN: sect = "Mountains"; break; case SECTOR_WATER_SWIM: sect = "Swim"; break; case SECTOR_WATER_NOSWIM: sect = "Noswim"; break; case SECTOR_UNDERWATER: sect = "Underwater"; break; case SECTOR_AIR: sect = "Air"; break; case SECTOR_DESERT: sect = "Desert"; break; case SECTOR_OCEANFLOOR: sect = "Oceanfloor"; break; case SECTOR_UNDERGROUND: sect = "Underground"; break; } write_to_buffer( d, "50\x1B[;H\x1B[2J", 0 ); sprintf( buf, "&w-- Room number : [&c%d&w] Room area: [&c%-30.30s&w]\r\n" "&g1&w) Name : &O%s\r\n" "&g2&w) Description :\r\n&O%s" "&g3&w) Room flags : &c%s\r\n" "&g4&w) Sector type : &c%s\r\n" "&g5&w) Tunnel : &c%d\r\n" "&g6&w) TeleDelay : &c%d\r\n" "&g7&w) TeleVnum : &c%d\r\n" "&gA&w) Exit menu\r\n" "&gB&w) Extra descriptions menu\r\n" "&gQ&w) Quit\r\n" "Enter choice : ", OLC_NUM(d), (room->area) ? room->area->name : "None???", room->name, room->description, code_bit(NULL, room->flags, CODE_ROOM), sect, room->tunnel, room->tele_delay, room->tele_vnum ); set_char_color( AT_PLAIN, d->character ); send_to_char( d->character, buf ); OLC_MODE(d) = REDIT_MAIN_MENU; }
/* Object value #1 */ static void oedit_disp_val1_menu(struct descriptor_data *d) { OLC_MODE(d) = OEDIT_VALUE_1; switch (GET_OBJ_TYPE(OLC_OBJ(d))) { case ITEM_LIGHT: /* values 0 and 1 are unused.. jump to 2 */ oedit_disp_val3_menu(d); break; case ITEM_SCROLL: case ITEM_WAND: case ITEM_STAFF: case ITEM_POTION: write_to_output(d, "Spell level : "); break; case ITEM_WEAPON: /* This doesn't seem to be used if I remember right. */ write_to_output(d, "Modifier to Hitroll : "); break; case ITEM_ARMOR: write_to_output(d, "Apply to AC : "); break; case ITEM_CONTAINER: write_to_output(d, "Max weight to contain (-1 for unlimited) : "); break; case ITEM_DRINKCON: case ITEM_FOUNTAIN: write_to_output(d, "Max drink units (-1 for unlimited) : "); break; case ITEM_FOOD: write_to_output(d, "Hours to fill stomach : "); break; case ITEM_MONEY: write_to_output(d, "Number of gold coins : "); break; case ITEM_FURNITURE: write_to_output(d, "Number of people it can hold : "); break; case ITEM_NOTE: // These object types have no 'values' so go back to menu case ITEM_OTHER: case ITEM_WORN: case ITEM_TREASURE: case ITEM_TRASH: case ITEM_KEY: case ITEM_PEN: case ITEM_BOAT: case ITEM_FREE: /* Not implemented, but should be handled here */ case ITEM_FREE2: /* Not implemented, but should be handled here */ oedit_disp_menu(d); break; default: mudlog(BRF, LVL_BUILDER, TRUE, "SYSERR: OLC: Reached default case in oedit_disp_val1_menu()!"); break; } }
/* 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 JeditDispTypesMenu( Descriptor *d ) { get_char_cols( d->character ); for(unsigned int i = 0;i < JS::NUM_JS_TRIG_TYPES;++i) { d->send("%s%2d%s) %-30.30s %s", grn,(i+1),nrm,JS::js_trig_types[i], ( (i%2) ? ("\r\n") : ("") )); } sprintbit(d->olc->jsTrig->trigger_flags,(const char**)JS::js_trig_types,buf,", ",cyn,nrm); d->send("\r\nCurrent allow flags: %s\r\nEnter type(0 to quit) : ", buf); OLC_MODE(d) = JEDIT_TRIGGER_TYPES; }
void JeditDispAllowMenu( Descriptor *d ) { get_char_cols( d->character ); for(unsigned int i = 0;i < JS::NUM_JS_ALLOWS;++i) { d->send("%s%2d%s) %-20.20s %s", grn,(i+1),nrm,JS::js_allow[i], ( (i%2) ? ("\r\n") : ("") )); } sprintbit(d->olc->jsTrig->allowed_flags,(const char**)JS::js_allow,buf,", ",cyn,nrm); d->send("\r\nCurrent types: %s\r\nEnter type(0 to quit) : ", buf); OLC_MODE(d) = JEDIT_ALLOW_FLAGS; }
void JeditDispOptionMenu( Descriptor *d ) { get_char_cols( d->character ); for(unsigned int i = 0;i < JS::NUMBER_OPTIONS;++i) { d->send("%s%2d%s) %-20.20s %s", grn,(i+1),nrm,JS::js_options[i], ( (i%2) ? ("\r\n") : ("") )); } sprintbit(d->olc->jsTrig->option_flags,(const char**)JS::js_options,buf,", ",cyn,nrm); d->send("\r\n\r\nCurrent options: %s\r\nEnter type(0 to quit) : ", buf); OLC_MODE(d) = JEDIT_OPTION_FLAGS; }
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; }
/* * 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; }
/* * The main menu. */ void wedit_disp_menu(struct descriptor_data *d) { struct wild_data *wild; get_char_cols(d->character); wild = OLC_WILD(d); sprinttype(wild->color, colori, buf1); sprintbit((long)wild->room_flags, room_bits, buf2); sprintf(buf, #if defined(CLEAR_SCREEN) "[H[J" #endif "-- Wild Type number : [%s%d%s]\r\n" "%s1%s) Name : %s%s\r\n" "%s2%s) Description :\r\n%s%s" "%s3%s) Symbol : %s%c\r\n" "%s4%s) Color : %s%s\r\n" "%s5%s) Room flags : %s%s\r\n", cyn, OLC_NUM(d), nrm, grn, nrm, yel, wild->name, grn, nrm, yel, wild->description, grn, nrm, (wild->color > 1 ? color_from_color(d->character, wild->color) : nrm), wild->symbol, grn, nrm, (wild->color > 1 ? color_from_color(d->character, wild->color) : nrm), buf1, grn, nrm, cyn, buf2 ); send_to_char(buf, d->character); sprinttype(wild->sector_type, sector_types, buf1); sprintf(buf, "%s6%s) Sector type : %s%s\r\n" "%s7%s) Movement cost : %s%d\r\n" "%s8%s) Altitudine : %s%d\r\n" "%s9%s) Can enter into : %s%s\r\n" "%sA%s) Owner: : %s%d\r\n" "%sQ%s) Quit\r\n" "Enter choice : ", grn, nrm, cyn, buf1, grn, nrm, cyn, wild->move_cost, grn, nrm, cyn, wild->altitudine, grn, nrm, cyn, wild->can_enter ? "YES" : "NO", grn, nrm, cyn, wild->owner, grn, nrm ); send_to_char(buf, d->character); OLC_MODE(d) = WEDIT_MAIN_MENU; }
/* * Change the MobProgs. */ void medit_change_mprog(struct descriptor_data *d) { clear_screen(d); sprintf(buf, "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")); SEND_TO_Q(buf, d); 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++) { 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; }