00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
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
00041
00042 typedef bool OLC_FUN args( ( CHAR_DATA *ch, char *argument ) );
00043 #define DECLARE_OLC_FUN( fun ) OLC_FUN fun
00044
00045
00046
00047 DECLARE_DO_FUN( do_help );
00048 DECLARE_SPELL_FUN( spell_null );
00049
00050
00051
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
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
00079
00080 #define MAX_MOB 1
00081
00082
00083
00084
00085 struct olc_cmd_type
00086 {
00087 char * const name;
00088 OLC_FUN * olc_fun;
00089 };
00090
00091
00092
00093
00094 struct editor_cmd_type
00095 {
00096 char * const name;
00097 DO_FUN * do_fun;
00098 };
00099
00100
00101
00102
00103 AREA_DATA *get_vnum_area args ( ( int vnum ) );
00104 AREA_DATA *get_area_data args ( ( int vnum ) );
00105
00106
00107
00108
00109 void add_reset args ( ( ROOM_INDEX_DATA *room,
00110 RESET_DATA *pReset, int index ) );
00111
00112
00113
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
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
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
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
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
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
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 );
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 );
00226 DECLARE_OLC_FUN( oedit_wear );
00227 DECLARE_OLC_FUN( oedit_type );
00228 DECLARE_OLC_FUN( oedit_affect );
00229 DECLARE_OLC_FUN( oedit_material );
00230 DECLARE_OLC_FUN( oedit_level );
00231 DECLARE_OLC_FUN( oedit_condition );
00232
00233
00234
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 );
00248 DECLARE_OLC_FUN( medit_act );
00249 DECLARE_OLC_FUN( medit_affect );
00250 DECLARE_OLC_FUN( medit_ac );
00251 DECLARE_OLC_FUN( medit_form );
00252 DECLARE_OLC_FUN( medit_part );
00253 DECLARE_OLC_FUN( medit_imm );
00254 DECLARE_OLC_FUN( medit_res );
00255 DECLARE_OLC_FUN( medit_vuln );
00256 DECLARE_OLC_FUN( medit_material );
00257 DECLARE_OLC_FUN( medit_off );
00258 DECLARE_OLC_FUN( medit_size );
00259 DECLARE_OLC_FUN( medit_hitdice );
00260 DECLARE_OLC_FUN( medit_manadice );
00261 DECLARE_OLC_FUN( medit_damdice );
00262 DECLARE_OLC_FUN( medit_race );
00263 DECLARE_OLC_FUN( medit_position );
00264 DECLARE_OLC_FUN( medit_gold );
00265 DECLARE_OLC_FUN( medit_hitroll );
00266 DECLARE_OLC_FUN( medit_damtype );
00267 DECLARE_OLC_FUN( medit_group );
00268 DECLARE_OLC_FUN( medit_addmprog );
00269 DECLARE_OLC_FUN( medit_delmprog );
00270
00271
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
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
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
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
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
00341
00342 #define TOGGLE_BIT(var, bit) ((var) ^= (bit))
00343
00344
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
00356
00357
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));