Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals

olc.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *  File: olc.h                                                            *
00003  *                                                                         *
00004  *  Much time and thought has gone into this software and you are          *
00005  *  benefitting.  We hope that you share your changes too.  What goes      *
00006  *  around, comes around.                                                  *
00007  *                                                                         *
00008  *  This code was freely distributed with the The Isles 1.1 source code,   *
00009  *  and has been used here for OLC - OLC would not be what it is without   *
00010  *  all the previous coders who released their source code.                *
00011  *                                                                         *
00012  ***************************************************************************/
00013 /*
00014  * This is a header file for all the OLC files.  Feel free to copy it into
00015  * merc.h if you wish.  Many of these routines may be handy elsewhere in
00016  * the code.  -Jason Dinkel
00017  */
00018 
00019 
00020 /*
00021  * The version info.  Please use this info when reporting bugs.
00022  * It is displayed in the game by typing 'version' while editing.
00023  * Do not remove these from the code - by request of Jason Dinkel
00024  */
00025 #define VERSION "ILAB Online Creation [Beta 1.0, ROM 2.3 modified]\n\r" \
00026         "     Port a ROM 2.4 v1.8\n\r"
00027 #define AUTHOR  "     By Jason(jdinkel@mines.colorado.edu)\n\r" \
00028                 "     Modified for use with ROM 2.3\n\r"        \
00029                 "     By Hans Birkeland (hansbi@ifi.uio.no)\n\r" \
00030                 "     Modificado para uso en ROM 2.4b6\n\r" \
00031                 "     Por Ivan Toledo (itoledo@ctcreuna.cl)\n\r"
00032 #define DATE    "     (Apr. 7, 1995 - ROM mod, Apr 16, 1995)\n\r" \
00033         "     (Port a ROM 2.4 - Nov 2, 1996)\n\r" \
00034         "     Version actual : 1.8 - Sep 8, 1998\n\r"
00035 #define CREDITS "     Original by Surreality(cxw197@psu.edu) and Locke(locke@lm.com)"
00036 
00037 
00038 
00039 /*
00040  * New typedefs.
00041  */
00042 typedef bool OLC_FUN        args( ( CHAR_DATA *ch, char *argument ) );
00043 #define DECLARE_OLC_FUN( fun )  OLC_FUN    fun
00044 
00045 
00046 /* Command procedures needed ROM OLC */
00047 DECLARE_DO_FUN(    do_help    );
00048 DECLARE_SPELL_FUN( spell_null );
00049 
00050 /*
00051  * Connected states for editor.
00052  */
00053 #define ED_NONE     0
00054 #define ED_AREA     1
00055 #define ED_ROOM     2
00056 #define ED_OBJECT   3
00057 #define ED_MOBILE   4
00058 #define ED_MPCODE   5
00059 #define ED_HELP     6
00060 #define ED_CLASS    7
00061 #define ED_SOCIAL       8
00062 #define ED_VEHICLE  9
00063 /*
00064  * Interpreter Prototypes
00065  */
00066 void    cedit       args( ( CHAR_DATA *ch, char *argument ) );
00067 void    aedit           args( ( CHAR_DATA *ch, char *argument ) );
00068 void    redit           args( ( CHAR_DATA *ch, char *argument ) );
00069 void    medit           args( ( CHAR_DATA *ch, char *argument ) );
00070 void    sedit           args( ( CHAR_DATA *ch, char *argument ) );
00071 void    vedit       args( ( CHAR_DATA *ch, char *argument ) );
00072 void    oedit           args( ( CHAR_DATA *ch, char *argument ) );
00073 void    mpedit      args( ( CHAR_DATA *ch, char *argument ) );
00074 void    hedit       args( ( CHAR_DATA *, char * ) );
00075 
00076 
00077 /*
00078  * OLC Constants
00079  */
00080 #define MAX_MOB 1       /* Default maximum number for resetting mobs */
00081 
00082 /*
00083  * Structure for an OLC editor command.
00084  */
00085 struct olc_cmd_type
00086 {
00087     char * const    name;
00088     OLC_FUN *       olc_fun;
00089 };
00090 
00091 /*
00092  * Structure for an OLC editor startup command.
00093  */
00094 struct  editor_cmd_type
00095 {
00096     char * const    name;
00097     DO_FUN *        do_fun;
00098 };
00099 
00100 /*
00101  * Utils.
00102  */
00103 AREA_DATA *get_vnum_area    args ( ( int vnum ) );
00104 AREA_DATA *get_area_data    args ( ( int vnum ) );
00105 //int flag_value            args ( ( const struct flag_type *flag_table,
00106 //                       char *argument) );
00107 //char *flag_string     args ( ( const struct flag_type *flag_table,
00108 //                       int bits ) );
00109 void add_reset          args ( ( ROOM_INDEX_DATA *room, 
00110                          RESET_DATA *pReset, int index ) );
00111 
00112 /*
00113  * Interpreter Table Prototypes
00114  */
00115 extern const struct olc_cmd_type    aedit_table[];
00116 extern const struct olc_cmd_type    redit_table[];
00117 extern const struct olc_cmd_type    oedit_table[];
00118 extern const struct olc_cmd_type        sedit_table[];
00119 extern const struct olc_cmd_type    medit_table[];
00120 extern const struct olc_cmd_type    mpedit_table[];
00121 extern const struct olc_cmd_type    hedit_table[];
00122 extern const struct olc_cmd_type    cedit_table[];
00123 extern const struct olc_cmd_type    vedit_table[];
00124 
00125 
00126 /*
00127  * Editor Commands.
00128  */
00129 DECLARE_DO_FUN( do_aedit        );
00130 DECLARE_DO_FUN( do_redit        );
00131 DECLARE_DO_FUN( do_oedit        );
00132 DECLARE_DO_FUN( do_medit        );
00133 DECLARE_DO_FUN( do_sedit        );
00134 DECLARE_DO_FUN( do_mpedit   );
00135 DECLARE_DO_FUN( do_hedit    );
00136 DECLARE_DO_FUN( do_cedit    );
00137 DECLARE_DO_FUN( do_vedit    );
00138 
00139 /*
00140  * General Functions
00141  */
00142 bool show_commands      args ( ( CHAR_DATA *ch, char *argument ) );
00143 bool show_help          args ( ( CHAR_DATA *ch, char *argument ) );
00144 bool edit_done          args ( ( CHAR_DATA *ch ) );
00145 bool show_version       args ( ( CHAR_DATA *ch, char *argument ) );
00146 
00147 /*
00148  * Area Editor Prototypes
00149  */
00150 DECLARE_OLC_FUN( aedit_show     );
00151 DECLARE_OLC_FUN( aedit_create       );
00152 DECLARE_OLC_FUN( aedit_name     );
00153 DECLARE_OLC_FUN( aedit_file     );
00154 DECLARE_OLC_FUN( aedit_age      );
00155 /* DECLARE_OLC_FUN( aedit_recall    );       ROM OLC */
00156 DECLARE_OLC_FUN( aedit_reset        );
00157 DECLARE_OLC_FUN( aedit_security     );
00158 DECLARE_OLC_FUN( aedit_builder      );
00159 DECLARE_OLC_FUN( aedit_vnum     );
00160 DECLARE_OLC_FUN( aedit_lvnum        );
00161 DECLARE_OLC_FUN( aedit_uvnum        );
00162 DECLARE_OLC_FUN( aedit_credits      );
00163 DECLARE_OLC_FUN( aedit_cont     );
00164 DECLARE_OLC_FUN( aedit_delete       );
00165 /*
00166  * Room Editor Prototypes
00167  */
00168 DECLARE_OLC_FUN( redit_show     );
00169 DECLARE_OLC_FUN( redit_create       );
00170 DECLARE_OLC_FUN( redit_name     );
00171 DECLARE_OLC_FUN( redit_desc     );
00172 DECLARE_OLC_FUN( redit_ed       );
00173 DECLARE_OLC_FUN( redit_format       );
00174 DECLARE_OLC_FUN( redit_north        );
00175 DECLARE_OLC_FUN( redit_south        );
00176 DECLARE_OLC_FUN( redit_east     );
00177 DECLARE_OLC_FUN( redit_west     );
00178 DECLARE_OLC_FUN( redit_up       );
00179 DECLARE_OLC_FUN( redit_down     );
00180 DECLARE_OLC_FUN( redit_northeast               );
00181 DECLARE_OLC_FUN( redit_northwest               );
00182 DECLARE_OLC_FUN( redit_southeast               );
00183 DECLARE_OLC_FUN( redit_southwest               );
00184 DECLARE_OLC_FUN( redit_mreset       );
00185 DECLARE_OLC_FUN( redit_oreset       );
00186 DECLARE_OLC_FUN( redit_mlist        );
00187 DECLARE_OLC_FUN( redit_rlist        );
00188 DECLARE_OLC_FUN( redit_olist        );
00189 DECLARE_OLC_FUN( redit_mshow        );
00190 DECLARE_OLC_FUN( redit_oshow        );
00191 DECLARE_OLC_FUN( redit_heal     );
00192 DECLARE_OLC_FUN( redit_mana     );
00193 DECLARE_OLC_FUN( redit_clan     );
00194 DECLARE_OLC_FUN( redit_owner        );
00195 DECLARE_OLC_FUN( redit_room     );
00196 DECLARE_OLC_FUN( redit_sector       );
00197 DECLARE_OLC_FUN( redit_extra        );
00198 DECLARE_OLC_FUN( redit_night_desc   );
00199 DECLARE_OLC_FUN( redit_dfix     );
00200 DECLARE_OLC_FUN( redit_delete       );
00201 DECLARE_OLC_FUN( redit_copy     );
00202 DECLARE_OLC_FUN( redit_troute       );
00203 DECLARE_OLC_FUN( redit_tstate       );
00204 DECLARE_OLC_FUN( redit_ttype        );
00205 /*
00206  * Object Editor Prototypes
00207  */
00208 DECLARE_OLC_FUN( oedit_show     );
00209 DECLARE_OLC_FUN( oedit_create       );
00210 DECLARE_OLC_FUN( oedit_name     );
00211 DECLARE_OLC_FUN( oedit_short        );
00212 DECLARE_OLC_FUN( oedit_long     );
00213 DECLARE_OLC_FUN( oedit_addaffect    );
00214 DECLARE_OLC_FUN( oedit_addapply     );
00215 DECLARE_OLC_FUN( oedit_delaffect    );
00216 DECLARE_OLC_FUN( oedit_value0       );
00217 DECLARE_OLC_FUN( oedit_value1       );
00218 DECLARE_OLC_FUN( oedit_value2       );
00219 DECLARE_OLC_FUN( oedit_value3       );
00220 DECLARE_OLC_FUN( oedit_value4       );  /* ROM */
00221 DECLARE_OLC_FUN( oedit_weight       );
00222 DECLARE_OLC_FUN( oedit_cost     );
00223 DECLARE_OLC_FUN( oedit_ed       );
00224 
00225 DECLARE_OLC_FUN( oedit_extra            );  /* ROM */
00226 DECLARE_OLC_FUN( oedit_wear             );  /* ROM */
00227 DECLARE_OLC_FUN( oedit_type             );  /* ROM */
00228 DECLARE_OLC_FUN( oedit_affect           );  /* ROM */
00229 DECLARE_OLC_FUN( oedit_material     );  /* ROM */
00230 DECLARE_OLC_FUN( oedit_level            );  /* ROM */
00231 DECLARE_OLC_FUN( oedit_condition        );  /* ROM */
00232 
00233 /*
00234  * Mobile Editor Prototypes
00235  */
00236 DECLARE_OLC_FUN( medit_show     );
00237 DECLARE_OLC_FUN( medit_create       );
00238 DECLARE_OLC_FUN( medit_name     );
00239 DECLARE_OLC_FUN( medit_short        );
00240 DECLARE_OLC_FUN( medit_long     );
00241 DECLARE_OLC_FUN( medit_shop     );
00242 DECLARE_OLC_FUN( medit_desc     );
00243 DECLARE_OLC_FUN( medit_level        );
00244 DECLARE_OLC_FUN( medit_align        );
00245 DECLARE_OLC_FUN( medit_spec     );
00246 
00247 DECLARE_OLC_FUN( medit_sex      );  /* ROM */
00248 DECLARE_OLC_FUN( medit_act      );  /* ROM */
00249 DECLARE_OLC_FUN( medit_affect       );  /* ROM */
00250 DECLARE_OLC_FUN( medit_ac       );  /* ROM */
00251 DECLARE_OLC_FUN( medit_form     );  /* ROM */
00252 DECLARE_OLC_FUN( medit_part     );  /* ROM */
00253 DECLARE_OLC_FUN( medit_imm      );  /* ROM */
00254 DECLARE_OLC_FUN( medit_res      );  /* ROM */
00255 DECLARE_OLC_FUN( medit_vuln     );  /* ROM */
00256 DECLARE_OLC_FUN( medit_material     );  /* ROM */
00257 DECLARE_OLC_FUN( medit_off      );  /* ROM */
00258 DECLARE_OLC_FUN( medit_size     );  /* ROM */
00259 DECLARE_OLC_FUN( medit_hitdice      );  /* ROM */
00260 DECLARE_OLC_FUN( medit_manadice     );  /* ROM */
00261 DECLARE_OLC_FUN( medit_damdice      );  /* ROM */
00262 DECLARE_OLC_FUN( medit_race     );  /* ROM */
00263 DECLARE_OLC_FUN( medit_position     );  /* ROM */
00264 DECLARE_OLC_FUN( medit_gold     );  /* ROM */
00265 DECLARE_OLC_FUN( medit_hitroll      );  /* ROM */
00266 DECLARE_OLC_FUN( medit_damtype      );  /* ROM */
00267 DECLARE_OLC_FUN( medit_group        );  /* ROM */
00268 DECLARE_OLC_FUN( medit_addmprog     );  /* ROM */
00269 DECLARE_OLC_FUN( medit_delmprog     );  /* ROM */
00270 
00271 /* Mobprog editor */
00272 DECLARE_OLC_FUN( mpedit_create      );
00273 DECLARE_OLC_FUN( mpedit_code        );
00274 DECLARE_OLC_FUN( mpedit_show        );
00275 DECLARE_OLC_FUN( mpedit_list        );
00276 
00277 
00278 #define ED_HELP 6
00279 
00280 void    hedit          args( ( CHAR_DATA *ch, char *argument ) );
00281 
00282 extern const struct olc_cmd_type    hedit_table[];
00283 
00284 HELP_DATA *new_help args ( (void) );
00285 void free_help  args( ( HELP_DATA * pHelp));
00286 void save_helps args( (void) );
00287 
00288 DECLARE_DO_FUN( do_hedit       );
00289 
00290 /* Help Editor - kermit 1/98 */
00291 DECLARE_OLC_FUN( hedit_show    );
00292 DECLARE_OLC_FUN( hedit_make );
00293 DECLARE_OLC_FUN( hedit_desc   );
00294 DECLARE_OLC_FUN( hedit_level   );
00295 DECLARE_OLC_FUN( hedit_keywords   );
00296 DECLARE_OLC_FUN( hedit_delete );
00297 
00298 /* Socials Editor - mis 01.2005 */
00299 DECLARE_OLC_FUN( sedit_show             );
00300 DECLARE_OLC_FUN( sedit_create           );
00301 DECLARE_OLC_FUN( sedit_char_no_arg      );
00302 DECLARE_OLC_FUN( sedit_others_no_arg    );
00303 DECLARE_OLC_FUN( sedit_char_found       );
00304 DECLARE_OLC_FUN( sedit_vict_found       );
00305 DECLARE_OLC_FUN( sedit_others_found     );
00306 DECLARE_OLC_FUN( sedit_char_auto        );
00307 DECLARE_OLC_FUN( sedit_others_auto      );
00308 DECLARE_OLC_FUN( sedit_char_not_found   );
00309 DECLARE_OLC_FUN( sedit_delete           );
00310 /* Vehicle editor - Mike */
00311 DECLARE_OLC_FUN( vedit_show     );
00312 DECLARE_OLC_FUN( vedit_vnum         );
00313 DECLARE_OLC_FUN( vedit_armor        );
00314 DECLARE_OLC_FUN( vedit_max_riders   );
00315 DECLARE_OLC_FUN( vedit_path     );
00316 DECLARE_OLC_FUN( vedit_terrain      );
00317 DECLARE_OLC_FUN( vedit_speed        );
00318 DECLARE_OLC_FUN( vedit_type     );
00319 DECLARE_OLC_FUN( vedit_name     );
00320 DECLARE_OLC_FUN( vedit_delete       );
00321 DECLARE_OLC_FUN( vedit_svnum        );
00322 /* Class editor - tribul */
00323 DECLARE_OLC_FUN( cedit_name     );
00324 DECLARE_OLC_FUN( cedit_wname        );
00325 DECLARE_OLC_FUN( cedit_thac_0       );
00326 DECLARE_OLC_FUN( cedit_thac_32      );
00327 DECLARE_OLC_FUN( cedit_primary      );
00328 DECLARE_OLC_FUN( cedit_weapon       );
00329 DECLARE_OLC_FUN( cedit_guild_1      );
00330 DECLARE_OLC_FUN( cedit_guild_2      );
00331 DECLARE_OLC_FUN( cedit_skill        );
00332 DECLARE_OLC_FUN( cedit_min_hp       );
00333 DECLARE_OLC_FUN( cedit_max_hp       );
00334 DECLARE_OLC_FUN( cedit_base     );
00335 DECLARE_OLC_FUN( cedit_default      );
00336 DECLARE_OLC_FUN( cedit_show     );
00337 DECLARE_OLC_FUN( cedit_create       );
00338 DECLARE_OLC_FUN( cedit_save     );
00339 /*
00340  * Macros
00341  */
00342 #define TOGGLE_BIT(var, bit)    ((var) ^= (bit))
00343 
00344 /* Return pointers to what is being edited. */
00345 #define EDIT_MOB(Ch, Mob)   ( Mob = (MOB_INDEX_DATA *)Ch->desc->pEdit )
00346 #define EDIT_OBJ(Ch, Obj)   ( Obj = (OBJ_INDEX_DATA *)Ch->desc->pEdit )
00347 #define EDIT_ROOM(Ch, Room) ( Room = Ch->in_room )
00348 #define EDIT_AREA(Ch, Area) ( Area = (AREA_DATA *)Ch->desc->pEdit )
00349 #define EDIT_MPCODE(Ch, Code)   ( Code = (MPROG_CODE*)Ch->desc->pEdit )
00350 #define EDIT_CLASS(Ch, Class)   ( Class = (OCLASS_DATA*)Ch->desc->pEdit )
00351 #define EDIT_HELP(Ch, Help)     ( Help = (HELP_DATA *)Ch->desc->pEdit )
00352 #define EDIT_SOCIAL(Ch, Social) ( Social = (SOCIAL_LIST*)Ch->desc->pEdit )
00353 #define EDIT_VEHICLE(Ch, Vehicle) (Vehicle = (VDATA*)Ch->desc->pEdit)
00354 /*
00355  * Prototypes
00356  */
00357 /* mem.c - memory prototypes. */
00358 #define ED  EXTRA_DESCR_DATA
00359 OCLASS_DATA     *new_class      args ( ( void ) );
00360 RESET_DATA  *new_reset_data     args ( ( void ) );
00361 void        free_reset_data     args ( ( RESET_DATA *pReset ) );
00362 AREA_DATA   *new_area       args ( ( void ) );
00363 void        free_area       args ( ( AREA_DATA *pArea ) );
00364 EXIT_DATA   *new_exit       args ( ( void ) );
00365 void        free_exit       args ( ( EXIT_DATA *pExit ) );
00366 ED      *new_extra_descr    args ( ( void ) );
00367 void        free_extra_descr    args ( ( ED *pExtra ) );
00368 ROOM_INDEX_DATA *new_room_index     args ( ( void ) );
00369 void        free_room_index     args ( ( ROOM_INDEX_DATA *pRoom ) );
00370 AFFECT_DATA *new_affect     args ( ( void ) );
00371 void        free_affect     args ( ( AFFECT_DATA* pAf ) );
00372 SHOP_DATA   *new_shop       args ( ( void ) );
00373 void        free_shop       args ( ( SHOP_DATA *pShop ) );
00374 OBJ_INDEX_DATA  *new_obj_index      args ( ( void ) );
00375 void        free_obj_index      args ( ( OBJ_INDEX_DATA *pObj ) );
00376 MOB_INDEX_DATA  *new_mob_index      args ( ( void ) );
00377 void        free_mob_index      args ( ( MOB_INDEX_DATA *pMob ) );
00378 #undef  ED
00379 
00380 void        show_liqlist        args ( ( CHAR_DATA *ch ) );
00381 void        show_damlist        args ( ( CHAR_DATA *ch ) );
00382 
00383 char *      mprog_type_to_name  args ( ( int type ) );
00384 MPROG_LIST      *new_mprog              args ( ( void ) );
00385 void            free_mprog              args ( ( MPROG_LIST *mp ) );
00386 MPROG_CODE  *new_mpcode     args ( (void) );
00387 void        free_mpcode     args ( ( MPROG_CODE *pMcode));

Generated on Thu Jan 13 21:48:13 2005 for Beyond the Shadows by  doxygen 1.4.0