typedef bool OLC_FUN args ((CHAR_DATA * ch, char *argument)); #define DECLARE_OLC_FUN( fun ) OLC_FUN fun /* Command procedures needed ROM OLC */ DECLARE_DO_FUN (do_help); DECLARE_SPELL_FUN (spell_null); /* * Connected states for editor. */ #define ED_AREA 1 #define ED_ROOM 2 #define ED_OBJECT 3 #define ED_MOBILE 4 #define BUILD_MAIN 5 #define BUILD_NAME 6 #define BUILD_FLAGS 7 #define BUILD_KEYWORDS 8 #define BUILD_KEYWORDS_ADD 9 #define BUILD_DOORS 10 #define BUILD_DRESETS 11 #define BUILD_DNAME 12 #define FINGER_INFO 13 #define ED_VOCAB_MAIN 14 #define ED_VOCAB_EDIT 15 #define ED_VOCAB_ADD_WORDS 16 #define ED_VOCAB_ADD_MOOD 17 #define ED_VOCAB_ADD_MOOD_OFFSET 18 #define ED_VOCAB_ADD_TEXT 19 #define ED_VOCAB_ADD_INCLUDE 20 #define SUBMIT_MOB_VNUM 21 #define SUBMIT_MOB_NAME 22 #define SUBMIT_ROOM_VNUM 23 #define SUBMIT_TEXT 24 #define MAIL_GET_TO 25 #define MAIL_GET_SUBJECT 26 #define MAIL_TEXT 27 #define SAVE_CLAN_HELP 28 #define SAVE_ANY_HELP 29 #define EDIT_MENU 30 #define EDIT_LINES 31 #define EDIT_LINE_NUMBER 32 #define EDIT_NEW_LINE 33 #define DELE_LINE_NUMBER 34 #define INSERT_LINE_NUMBER 35 #define INSERT_NEW_LINE 36 #define SEARCH_REPLACE 37 #define DESC_INFO 38 #define ED_OBJTRIG 39 #define BUILD_DOORS_FLAGS 40 #define BUILD_EXITMSG 41 #define BUILD_ENTERMSG 42 //Iblis - 8/10/04 - Added for Ante #define CG_ANTE 41 //Card game, Ante stage #define CG_ANTE_ACCEPTED 42 //Card game, Ante stage, Ante accepted //Iblis - 6/15/04 - Added for Card Game #define CG_START_PM_YT 43 //Pick a mob (this is the player who goes first) #define CG_START_PM 44 //Pick a mob (this is the player who doesn't go first) #define CG_START_PT 45 //Pick a terrain (this it eh player who goes last) #define CG_YT_MAIN 46 #define CG_YT_PA_PLAYCARD 47 //Card Game, Your turn, Pre-attack, Play card #define CG_YT_A_PM 48 //Card Game, Your turn, attack, pick mob #define CG_YT_A_PV 49 //Card Game, Your turn, attack, pick victim #define CG_YT_AA_PLAYCARD 50 //Card Game, Your Turn, after attack, Play card #define CG_YT_AA_PT 51 //Card game, Your turn, after attack, pick (spell) target #define CG_YT_AA_PCT 52 //Card game, Your turn, after attack, pick counter target #define CG_YT_APPRAISE 53 //Card game, Your turn, appraise #define CG_YT_APPRAISE_D 54 //Card game, Your turn, appraise, Done with playing that round #define CG_YT_DISCARD 55 //Card game, Your turn, discard which card? #define CG_YT_DISCARD_D 56 //Card game, Your turn, discard which card? (done playing that round) #define CG_YT_DONE 57 //Card game, Your turn, finished #define CG_NYT_MAIN 58 //Card game, Not Your Turn, main #define CG_NYT_PLAYCARD 59 //Card game, NOt Your Turn, play a card #define CG_NYT_PT 60 //Card game, Not Your Turn, Pick (spell) t:arget #define CG_NYT_PCT 61 //Card game, Not Your Turn, Pick counter target #define CG_NYT_D_PM 62 //Card game, Not Your Turn, Defending, Pick Mob #define CG_NYT_APPRAISE 63 //Card game, Not Your turn, Appraise #define CG_NYT_APPRAISE_D 64 //Card game, Not Your turn, Appraise, Done with playing that round #define CG_NYT_DONE 65 //Card game, Not Your Turn, Done /* * Interpreter Prototypes */ void aedit args((CHAR_DATA * ch, char *argument)); void redit args((CHAR_DATA * ch, char *argument)); void medit args((CHAR_DATA * ch, char *argument)); void oedit args((CHAR_DATA * ch, char *argument)); void otedit args((CHAR_DATA * ch, char *argument)); /* * OLC Constants */ #define MAX_MOB 1 /* Default maximum number for resetting mobs */ /* * Structure for an OLC editor command. */ struct olc_cmd_type { char *const name; OLC_FUN *olc_fun; }; /* * Structure for an OLC editor startup command. */ struct editor_cmd_type { char *const name; DO_FUN *do_fun; }; /* * Utils. */ AREA_DATA *get_vnum_area args ((int vnum)); AREA_DATA *get_area_data args ((int vnum)); int flag_value args ((const struct flag_type * flag_table, char *argument)); char *flag_string args ((const struct flag_type * flag_table, int bits)); void add_reset args ((ROOM_INDEX_DATA * room, RESET_DATA * pReset, int index)); /* * Interpreter Table Prototypes */ extern const struct olc_cmd_type aedit_table[]; extern const struct olc_cmd_type redit_table[]; extern const struct olc_cmd_type oedit_table[]; extern const struct olc_cmd_type medit_table[]; extern const struct olc_cmd_type otedit_table[]; //Obj triggers /* * Editor Commands. */ DECLARE_DO_FUN(do_aedit); DECLARE_DO_FUN(do_redit); DECLARE_DO_FUN(do_oedit); DECLARE_DO_FUN(do_medit); DECLARE_DO_FUN(do_vedit); DECLARE_DO_FUN(do_otedit); /* * General Functions */ bool show_commands args ((CHAR_DATA * ch, char *argument)); bool show_help args ((CHAR_DATA * ch, char *argument)); bool edit_done args ((CHAR_DATA * ch)); bool show_version args ((CHAR_DATA * ch, char *argument)); /* * Area Editor Prototypes */ DECLARE_OLC_FUN (aedit_show); DECLARE_OLC_FUN (aedit_helper); DECLARE_OLC_FUN (aedit_create); DECLARE_OLC_FUN (aedit_creator); DECLARE_OLC_FUN (aedit_name); DECLARE_OLC_FUN (aedit_file); DECLARE_OLC_FUN (aedit_age); DECLARE_OLC_FUN (aedit_clanwar); DECLARE_OLC_FUN (aedit_clan); DECLARE_OLC_FUN (aedit_affluence); DECLARE_OLC_FUN (aedit_inconstruction); DECLARE_OLC_FUN (aedit_helps); /* DECLARE_OLC_FUN( aedit_recall ); ROM OLC */ DECLARE_OLC_FUN (aedit_reset); DECLARE_OLC_FUN (aedit_security); DECLARE_OLC_FUN (aedit_builder); DECLARE_OLC_FUN (aedit_vnum); DECLARE_OLC_FUN (aedit_lvnum); DECLARE_OLC_FUN (aedit_uvnum); DECLARE_OLC_FUN (aedit_lev); DECLARE_OLC_FUN (aedit_llev); DECLARE_OLC_FUN (aedit_ulev); /* * Room Editor Prototypes */ DECLARE_OLC_FUN (redit_travelmsg); DECLARE_OLC_FUN (redit_travelexp); DECLARE_OLC_FUN (redit_travellev); DECLARE_OLC_FUN (redit_show); DECLARE_OLC_FUN (redit_epl); DECLARE_OLC_FUN (redit_class); DECLARE_OLC_FUN (redit_race); DECLARE_OLC_FUN (redit_level); DECLARE_OLC_FUN (redit_create); DECLARE_OLC_FUN (redit_name); DECLARE_OLC_FUN (redit_entermsg); DECLARE_OLC_FUN (redit_exitmsg); DECLARE_OLC_FUN (redit_desc); DECLARE_OLC_FUN (redit_ed); DECLARE_OLC_FUN (redit_format); DECLARE_OLC_FUN (redit_north); DECLARE_OLC_FUN (redit_south); DECLARE_OLC_FUN (redit_east); DECLARE_OLC_FUN (redit_west); DECLARE_OLC_FUN (redit_up); DECLARE_OLC_FUN (redit_down); DECLARE_OLC_FUN (redit_clan); DECLARE_OLC_FUN (redit_owner); DECLARE_OLC_FUN (redit_purge); DECLARE_OLC_FUN (redit_mreset); DECLARE_OLC_FUN (redit_maxnum); DECLARE_OLC_FUN (redit_maxmsg); DECLARE_OLC_FUN (redit_oreset); DECLARE_OLC_FUN (redit_rate); DECLARE_OLC_FUN (redit_mlist); DECLARE_OLC_FUN (redit_olist); DECLARE_OLC_FUN (redit_mshow); DECLARE_OLC_FUN (redit_oshow); //Adeon 6/30/03 -- suport for sinking rooms DECLARE_OLC_FUN (redit_sinkvnum); DECLARE_OLC_FUN (redit_sinktimer); DECLARE_OLC_FUN (redit_sinkwarning); DECLARE_OLC_FUN (redit_sinkmsg); //Iblis 8/29/04 - support for sinkmsg OTHERS see DECLARE_OLC_FUN (redit_sinkmsgothers); /* * Object Editor Prototypes */ DECLARE_OLC_FUN (oedit_show); DECLARE_OLC_FUN (oedit_entermsg); DECLARE_OLC_FUN (oedit_exitmsg); DECLARE_OLC_FUN (oedit_arrival); DECLARE_OLC_FUN (oedit_departure); DECLARE_OLC_FUN (oedit_passenger); DECLARE_OLC_FUN (oedit_create); DECLARE_OLC_FUN (oedit_name); DECLARE_OLC_FUN (oedit_short); DECLARE_OLC_FUN (oedit_rarity); DECLARE_OLC_FUN (oedit_long); DECLARE_OLC_FUN (oedit_initmsg); DECLARE_OLC_FUN (oedit_addaffect); DECLARE_OLC_FUN (oedit_addpermaffect); DECLARE_OLC_FUN (oedit_addskillaffect); DECLARE_OLC_FUN (oedit_delaffect); DECLARE_OLC_FUN (oedit_value0); DECLARE_OLC_FUN (oedit_value1); DECLARE_OLC_FUN (oedit_value2); DECLARE_OLC_FUN (oedit_value3); DECLARE_OLC_FUN (oedit_value4); DECLARE_OLC_FUN (oedit_value5); DECLARE_OLC_FUN (oedit_value6); DECLARE_OLC_FUN (oedit_value7); DECLARE_OLC_FUN (oedit_value8); DECLARE_OLC_FUN (oedit_value9); DECLARE_OLC_FUN (oedit_value10); DECLARE_OLC_FUN (oedit_value11); DECLARE_OLC_FUN (oedit_value12); DECLARE_OLC_FUN (oedit_weight); DECLARE_OLC_FUN (oedit_cost); DECLARE_OLC_FUN (oedit_ed); DECLARE_OLC_FUN (oedit_extra); /* ROM */ DECLARE_OLC_FUN (oedit_wear); /* ROM */ // Akamai 4/30/99 - Support class/race specific objects DECLARE_OLC_FUN (oedit_class); DECLARE_OLC_FUN (oedit_race); DECLARE_OLC_FUN (oedit_clan); // Adeon 6/29/03 -- Player ownership of objects DECLARE_OLC_FUN (oedit_owner); DECLARE_OLC_FUN (oedit_type); /* ROM */ DECLARE_OLC_FUN (oedit_affect); /* ROM */ DECLARE_OLC_FUN (oedit_material); /* ROM */ DECLARE_OLC_FUN (oedit_level); /* ROM */ DECLARE_OLC_FUN (oedit_timer); /* ROM */ DECLARE_OLC_FUN (oedit_condition); /* ROM */ DECLARE_OLC_FUN (oedit_purge); DECLARE_OLC_FUN (oedit_trapflag); //Iblis 12/31/03 -- Object Trigger Vnum set function DECLARE_OLC_FUN (oedit_objtrigger); /* * Mobile Editor Prototypes */ DECLARE_OLC_FUN(medit_show); DECLARE_OLC_FUN(medit_vocab); DECLARE_OLC_FUN(medit_script); DECLARE_OLC_FUN(medit_create); DECLARE_OLC_FUN(medit_name); DECLARE_OLC_FUN(medit_short); DECLARE_OLC_FUN(medit_long); DECLARE_OLC_FUN(medit_shop); DECLARE_OLC_FUN(medit_desc); DECLARE_OLC_FUN(medit_level); DECLARE_OLC_FUN(medit_mood); DECLARE_OLC_FUN(medit_movement); DECLARE_OLC_FUN(medit_maxweight); DECLARE_OLC_FUN(medit_defbonus); DECLARE_OLC_FUN(medit_attackbonus); DECLARE_OLC_FUN(medit_mobgroup); DECLARE_OLC_FUN(medit_damtype); DECLARE_OLC_FUN(medit_align); DECLARE_OLC_FUN(medit_spec); DECLARE_OLC_FUN(medit_purge); DECLARE_OLC_FUN(medit_sex); /* ROM */ DECLARE_OLC_FUN(medit_act); /* ROM */ DECLARE_OLC_FUN(medit_affect); /* ROM */ DECLARE_OLC_FUN(medit_ac); /* ROM */ DECLARE_OLC_FUN(medit_form); /* ROM */ DECLARE_OLC_FUN(medit_part); /* ROM */ DECLARE_OLC_FUN(medit_imm); /* ROM */ DECLARE_OLC_FUN(medit_res); /* ROM */ DECLARE_OLC_FUN(medit_vuln); /* ROM */ DECLARE_OLC_FUN(medit_recruit); /* ROM */ DECLARE_OLC_FUN(medit_psvnum); /* ROM */ DECLARE_OLC_FUN(medit_pscost); /* ROM */ DECLARE_OLC_FUN(medit_material); /* ROM */ DECLARE_OLC_FUN(medit_off); /* ROM */ DECLARE_OLC_FUN(medit_size); /* ROM */ DECLARE_OLC_FUN(medit_hitdice); /* ROM */ DECLARE_OLC_FUN(medit_manadice); /* ROM */ DECLARE_OLC_FUN(medit_damdice); /* ROM */ DECLARE_OLC_FUN(medit_race); /* ROM */ DECLARE_OLC_FUN(medit_position); /* ROM */ DECLARE_OLC_FUN(medit_wealth); /* ROM */ DECLARE_OLC_FUN(medit_hitroll); /* ROM */ DECLARE_OLC_FUN(medit_blockexit); // Adeon 7/17/03 -- mobs blocking exits DECLARE_OLC_FUN(medit_numattacks); // Iblis 2/05/04 -- setting number of mob attacks DECLARE_OLC_FUN(medit_cardvnum); // Iblis 8/29/04 -- setting the rune card vnum that pops on a mob DECLARE_OLC_FUN(medit_str); // Iblis 8/29/04 -- setting the perm_stat on a mob DECLARE_OLC_FUN(medit_int); // Iblis 8/29/04 -- setting the perm_stat on a mob DECLARE_OLC_FUN(medit_wis); // Iblis 8/29/04 -- setting the perm_stat on a mob DECLARE_OLC_FUN(medit_dex); // Iblis 8/29/04 -- setting the perm_stat on a mob DECLARE_OLC_FUN(medit_con); // Iblis 8/29/04 -- setting the perm_stat on a mob DECLARE_OLC_FUN(medit_cha); // Iblis 8/29/04 -- setting the perm_stat on a mob /* Add Obj Trigger Declarations here! */ DECLARE_OLC_FUN(otedit_create); DECLARE_OLC_FUN(otedit_show); DECLARE_OLC_FUN(otedit_chance); DECLARE_OLC_FUN(otedit_extra); DECLARE_OLC_FUN(otedit_name); DECLARE_OLC_FUN(otedit_trigger); DECLARE_OLC_FUN(otedit_addaction); DECLARE_OLC_FUN(otedit_remaction); DECLARE_OLC_FUN(otedit_purge); /* * Macros */ #define IS_SWITCHED( ch ) ( ch->desc->original ) /* ROM OLC */ #define IS_BUILDER( ch ) ( IS_NPC(ch) ? 0 : (ch->pcdata->security && !IS_SWITCHED(ch))) #define TOGGLE_BIT(var, bit) ((var) ^= (bit)) /* Return pointers to what is being edited. */ #define EDIT_MOB(Ch, Mob) ( Mob = (MOB_INDEX_DATA *)Ch->desc->pEdit ) #define EDIT_OBJ(Ch, Obj) ( Obj = (OBJ_INDEX_DATA *)Ch->desc->pEdit ) #define EDIT_ROOM(Ch, Room) ( Room = Ch->in_room ) #define EDIT_AREA(Ch, Area) ( Area = (AREA_DATA *)Ch->desc->pEdit ) #define EDIT_OBJ_TRIG(Ch, ObjTrig) ( ObjTrig = (OBJ_TRIG_DATA *) Ch->desc->pEdit ) /* * Prototypes */ /* mem.c - memory prototypes. */ #define ED EXTRA_DESCR_DATA RESET_DATA *new_reset_data args ((void)); void free_reset_data args ((RESET_DATA * pReset)); AREA_DATA *new_area args ((void)); void free_area args ((AREA_DATA * pArea)); EXIT_DATA *new_exit args ((void)); void free_exit args ((EXIT_DATA * pExit)); ED *new_extra_descr args ((void)); void free_extra_descr args ((ED * pExtra)); ROOM_INDEX_DATA *new_room_index args ((void)); void free_room_index args ((ROOM_INDEX_DATA * pRoom)); AFFECT_DATA *new_affect args ((void)); void free_affect args ((AFFECT_DATA * pAf)); SHOP_DATA *new_shop args ((void)); void free_shop args ((SHOP_DATA * pShop)); OBJ_INDEX_DATA *new_obj_index args ((void)); void free_obj_index args ((OBJ_INDEX_DATA * pObj)); MOB_INDEX_DATA *new_mob_index args ((void)); void free_mob_index args ((MOB_INDEX_DATA * pMob)); #undef ED