Common subdirectories: ./1/1 and ./1
diff -c -P -N -x hedit.patch ./1/interp.c ./interp.c
*** ./1/interp.c Wed Dec 31 07:59:44 1997
--- ./interp.c Thu Jan 1 08:24:50 1998
***************
*** 373,378 ****
--- 373,379 ----
{ "aedit", do_aedit, POS_DEAD, 0, LOG_NORMAL, 1 },
{ "oedit", do_oedit, POS_DEAD, 0, LOG_NORMAL, 1 },
{ "mpedit", do_mpedit, POS_DEAD, 0, LOG_NORMAL, 1 },
+ { "hedit", do_hedit, POS_DEAD, 0, LOG_NORMAL, 1 },
/*
* End of list.
diff -c -P -N -x hedit.patch ./1/interp.h ./interp.h
*** ./1/interp.h Wed Dec 31 07:59:44 1997
--- ./interp.h Thu Jan 1 08:25:00 1998
***************
*** 305,307 ****
--- 305,308 ----
DECLARE_DO_FUN( do_medit );
DECLARE_DO_FUN( do_oedit );
DECLARE_DO_FUN( do_mpedit );
+ DECLARE_DO_FUN( do_hedit );
diff -c -P -N -x hedit.patch ./1/mem.c ./mem.c
*** ./1/mem.c Wed Dec 31 07:59:44 1997
--- ./mem.c Thu Jan 1 08:22:33 1998
***************
*** 473,475 ****
--- 473,490 ----
mpcode_free = pMcode;
return;
}
+
+ HELP_DATA *new_help(void)
+ {
+ HELP_DATA *NewHelp;
+
+ NewHelp = alloc_perm(sizeof(*NewHelp) );
+ top_help++;
+
+ NewHelp->level = 0;
+ NewHelp->keyword = str_dup("");
+ NewHelp->text = str_dup("");
+ NewHelp->next = NULL;
+
+ return NewHelp;
+ }
diff -c -P -N -x hedit.patch ./1/merc.h ./merc.h
*** ./1/merc.h Wed Dec 31 07:59:44 1997
--- ./merc.h Thu Jan 1 08:22:33 1998
***************
*** 119,124 ****
--- 119,126 ----
#define MAX_KEY_HASH 1024
#define MAX_STRING_LENGTH 4608
#define MAX_INPUT_LENGTH 256
+ #define MIL MAX_STRING_LENGTH
+ #define MSL MAX_INPUT_LENGTH
#define PAGELEN 22
diff -c -P -N -x hedit.patch ./1/olc.c ./olc.c
*** ./1/olc.c Wed Dec 31 07:59:44 1997
--- ./olc.c Thu Jan 1 20:45:49 1998
***************
*** 53,59 ****
break;
case ED_MPCODE:
mpedit( d->character, d->incomm );
! break;
default:
return FALSE;
}
--- 53,62 ----
break;
case ED_MPCODE:
mpedit( d->character, d->incomm );
! break;
! case ED_HELP:
! hedit( d->character, d->incomm );
! break;
default:
return FALSE;
}
***************
*** 84,89 ****
--- 87,95 ----
case ED_MPCODE:
sprintf( buf, "MPEdit" );
break;
+ case ED_HELP:
+ sprintf( buf, "HEdit" );
+ break;
default:
sprintf( buf, " " );
break;
***************
*** 189,195 ****
break;
case ED_MPCODE:
show_olc_cmds( ch, mpedit_table );
! break;
}
return FALSE;
--- 195,205 ----
break;
case ED_MPCODE:
show_olc_cmds( ch, mpedit_table );
! break;
! case ED_HELP:
! show_olc_cmds( ch, hedit_table );
! break;
!
}
return FALSE;
***************
*** 350,355 ****
--- 360,381 ----
{ NULL, 0, }
};
+ /* Help Editor - kermit 1/98 */
+ const struct olc_cmd_type hedit_table[] =
+ {
+ /* { command function }, */
+
+ { "commands", show_commands },
+ { "desc", hedit_desc },
+ { "keywords", hedit_keywords },
+ { "level", hedit_level },
+ { "make", hedit_make },
+ { "show", hedit_show },
+ { "?", show_help },
+
+ { NULL, 0, }
+ };
+
/*****************************************************************************
* End Interpreter Tables. *
*****************************************************************************/
***************
*** 672,677 ****
--- 698,744 ----
return;
}
+ /* Help Editor - kermit 1/98 */
+ void hedit( CHAR_DATA *ch, char *argument)
+ {
+ char command[MIL];
+ char arg[MIL];
+ int cmd;
+
+ smash_tilde(argument);
+ strcpy(arg, argument);
+ argument = one_argument( argument, command);
+
+ if (ch->pcdata->security < 9)
+ {
+ send_to_char("HEdit: Insufficient security to modify code\n\r",ch);
+ edit_done(ch);
+ }
+
+ if ( !str_cmp(command, "done") )
+ {
+ edit_done( ch );
+ return;
+ }
+
+ if ( command[0] == '\0' )
+ {
+ hedit_show( ch, argument );
+ return;
+ }
+
+ for ( cmd = 0; hedit_table[cmd].name != NULL; cmd++ )
+ {
+ if ( !str_prefix( command, hedit_table[cmd].name ) )
+ {
+ (*hedit_table[cmd].olc_fun) ( ch, argument );
+ return;
+ }
+ }
+
+ interpret( ch, arg );
+ return;
+ }
***************
*** 684,689 ****
--- 751,757 ----
{ "object", do_oedit },
{ "mobile", do_medit },
{ "mpcode", do_mpedit },
+ { "help", do_hedit },
{ NULL, 0, }
};
***************
*** 985,990 ****
--- 1053,1112 ----
return;
}
+ /* Help Editor - kermit 1/98 */
+ void do_hedit( CHAR_DATA *ch, char *argument )
+ {
+ HELP_DATA *pHelp;
+ char arg1[MIL];
+ char argall[MAX_INPUT_LENGTH],argone[MAX_INPUT_LENGTH];
+ bool found = FALSE;
+
+ strcpy(arg1,argument);
+
+ if(argument != '\0')
+ {
+ /* Taken from do_help */
+ argall[0] = '\0';
+ while (argument[0] != '\0' )
+ {
+ argument = one_argument(argument,argone);
+ if (argall[0] != '\0')
+ strcat(argall," ");
+ strcat(argall,argone);
+ }
+
+ for ( pHelp = help_first; pHelp != NULL; pHelp = pHelp->next )
+ {
+ if ( is_name( argall, pHelp->keyword ) )
+ {
+ ch->desc->pEdit=(void *)pHelp;
+ ch->desc->editor= ED_HELP;
+ found = TRUE;
+ return;
+ }
+ }
+ }
+
+ if(!found)
+ {
+ argument = one_argument(arg1, arg1);
+
+ if(!str_cmp(arg1,"make"))
+ {
+ if (argument[0] == '\0')
+ {
+ send_to_char("Syntax: edit help make [topic]\n\r",ch);
+ return;
+ }
+ if (hedit_make(ch, argument) )
+ ch->desc->editor = ED_HELP;
+ return;
+ }
+ }
+
+ send_to_char( "HEdit: There is no default help to edit.\n\r", ch );
+ return;
+ }
void display_resets( CHAR_DATA *ch )
diff -c -P -N -x hedit.patch ./1/olc.h ./olc.h
*** ./1/olc.h Wed Dec 31 07:59:44 1997
--- ./olc.h Sun Jan 11 07:28:57 1998
***************
*** 59,64 ****
--- 59,65 ----
#define ED_OBJECT 3
#define ED_MOBILE 4
#define ED_MPCODE 5
+ #define ED_HELP 6
***************
*** 70,75 ****
--- 71,77 ----
void medit args( ( CHAR_DATA *ch, char *argument ) );
void oedit args( ( CHAR_DATA *ch, char *argument ) );
void mpedit args( ( CHAR_DATA *ch, char *argument ) );
+ void hedit args( ( CHAR_DATA *ch, char *argument ) );
/*
***************
*** 123,128 ****
--- 125,131 ----
extern const struct olc_cmd_type oedit_table[];
extern const struct olc_cmd_type medit_table[];
extern const struct olc_cmd_type mpedit_table[];
+ extern const struct olc_cmd_type hedit_table[];
/*
***************
*** 133,138 ****
--- 136,142 ----
DECLARE_DO_FUN( do_oedit );
DECLARE_DO_FUN( do_medit );
DECLARE_DO_FUN( do_mpedit );
+ DECLARE_DO_FUN( do_hedit );
/*
***************
*** 264,269 ****
--- 268,281 ----
DECLARE_OLC_FUN( mpedit_show );
+ /* Help editor - kermit 1/98 */
+ DECLARE_OLC_FUN( hedit_show );
+ DECLARE_OLC_FUN( hedit_make );
+ DECLARE_OLC_FUN( hedit_desc );
+ DECLARE_OLC_FUN( hedit_level );
+ DECLARE_OLC_FUN( hedit_keywords );
+
+
/*
* Macros
*/
***************
*** 282,287 ****
--- 294,300 ----
#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_HELP(Ch, Help) ( Help = (HELP_DATA *)Ch->desc->pEdit )
***************
*** 321,323 ****
--- 334,341 ----
void free_mprog args ( ( MPROG_LIST *mp ) );
MPROG_CODE *new_mpcode args ( (void) );
void free_mpcode args ( ( MPROG_CODE *pMcode));
+
+ /* Help Editor - kermit 1/98 */
+ HELP_DATA *new_help args ( (void) );
+ /* Help Editor - kermit 1/98 */
+ void save_helps args( (void) );
diff -c -P -N -x hedit.patch ./1/olc_act.c ./olc_act.c
*** ./1/olc_act.c Wed Dec 31 07:59:45 1997
--- ./olc_act.c Thu Jan 1 08:22:34 1998
***************
*** 36,41 ****
--- 36,42 ----
#define OEDIT( fun ) bool fun( CHAR_DATA *ch, char *argument )
#define MEDIT( fun ) bool fun( CHAR_DATA *ch, char *argument )
#define AEDIT( fun ) bool fun( CHAR_DATA *ch, char *argument )
+ #define HEDIT( fun ) bool fun( CHAR_DATA *ch, char *argument )
***************
*** 4919,4923 ****
--- 4920,5011 ----
}
send_to_char("Mprog removed.\n\r", ch);
+ return TRUE;
+ }
+
+ /* Help Editor - kermit 1/98 */
+ HEDIT (hedit_make)
+ {
+ HELP_DATA *pHelp;
+
+ if (argument[0] == '\0')
+ {
+ send_to_char("Syntax: mpedit make [keyword(s)]\n\r",ch);
+ return FALSE;
+ }
+
+ pHelp = new_help();
+ pHelp->keyword = str_dup(argument);
+ pHelp->next = help_first;
+ help_first = pHelp;
+ ch->desc->pEdit = (void *)pHelp;
+
+ send_to_char("New Help Entry Created.\n\r",ch);
+ return TRUE;
+ }
+
+ HEDIT( hedit_show)
+ {
+ HELP_DATA *pHelp;
+ char buf[MSL];
+
+ EDIT_HELP(ch,pHelp);
+
+ sprintf(buf,
+ "Level: [%d]\n\r"
+ "Keywords: %s\n\r"
+ "\n\r%s\n\r",
+ pHelp->level, pHelp->keyword, pHelp->text);
+ send_to_char(buf,ch);
+
+ return FALSE;
+ }
+
+ HEDIT( hedit_desc)
+ {
+ HELP_DATA *pHelp;
+ EDIT_HELP(ch, pHelp);
+
+ if (argument[0] =='\0')
+ {
+ string_append(ch, &pHelp->text);
+ return TRUE;
+ }
+
+ send_to_char(" Syntax: desc\n\r",ch);
+ return FALSE;
+ }
+
+ HEDIT( hedit_keywords)
+ {
+ HELP_DATA *pHelp;
+ EDIT_HELP(ch, pHelp);
+
+ if(argument[0] == '\0')
+ {
+ send_to_char(" Syntax: keywords [keywords]\n\r",ch);
+ return FALSE;
+ }
+
+ pHelp->keyword = str_dup(argument);
+ send_to_char( "Keyword(s) Set.\n\r", ch);
+ return TRUE;
+ }
+
+ HEDIT(hedit_level)
+ {
+ HELP_DATA *pHelp;
+
+ EDIT_HELP(ch, pHelp);
+
+ if ( argument[0] == '\0' || !is_number( argument ) )
+ {
+ send_to_char( "Syntax: level [number]\n\r", ch );
+ return FALSE;
+ }
+
+ pHelp->level = atoi( argument );
+
+ send_to_char( "Level set.\n\r", ch);
return TRUE;
}
diff -c -P -N -x hedit.patch ./1/olc_save.c ./olc_save.c
*** ./1/olc_save.c Wed Dec 31 07:59:45 1997
--- ./olc_save.c Thu Feb 5 04:24:40 1998
***************
*** 35,40 ****
--- 35,41 ----
#define DIF(a,b) (~((~a)|(b)))
+
/*
* Verbose writes reset data in plain english into the comments
* section of the resets. It makes areas considerably larger but
***************
*** 91,99 ****
*/
fprintf( fp, "help.are\n" );
fprintf( fp, "social.are\n" ); /* ROM OLC */
- fprintf( fp, "rom.are\n" ); /* ROM OLC */
- fprintf( fp, "group.are\n" ); /* ROM OLC */
- fprintf( fp, "olc.hlp\n" );
for( pArea = area_first; pArea; pArea = pArea->next )
{
--- 92,97 ----
***************
*** 975,980 ****
--- 973,979 ----
send_to_char( " asave area - saves the area being edited\n\r", ch );
send_to_char( " asave changed - saves all changed zones\n\r", ch );
send_to_char( " asave world - saves the world! (db dump)\n\r", ch );
+ send_to_char( " asave helps - saves the help files\n\r", ch );
send_to_char( "\n\r", ch );
return;
}
***************
*** 1014,1020 ****
save_area( pArea );
REMOVE_BIT( pArea->area_flags, AREA_CHANGED );
! }
send_to_char( "You saved the world.\n\r", ch );
/* send_to_all_char( "Database saved.\n\r" ); ROM OLC */
return;
--- 1013,1020 ----
save_area( pArea );
REMOVE_BIT( pArea->area_flags, AREA_CHANGED );
! }
! save_helps();
send_to_char( "You saved the world.\n\r", ch );
/* send_to_all_char( "Database saved.\n\r" ); ROM OLC */
return;
***************
*** 1105,1112 ****
--- 1105,1146 ----
return;
}
+ /* Save Help File */
+ if(!str_cmp(arg1, "helps"))
+ {
+ save_helps();
+ send_to_char( "Helps Saved.\n\r", ch);
+ return;
+ }
+
/* Show correct syntax. */
/* -------------------- */
do_asave( ch, "" );
return;
+ }
+
+ /* Help Editor - kermit 1/98 */
+ void save_helps()
+ {
+ HELP_DATA * pHelp;
+ FILE * fp;
+
+ if (!(fp = fopen( "help.are", "w") ) )
+ {
+ bug( "Open_help: fopen", 0);
+ perror( "help.are");
+ }
+
+ fprintf(fp, "#HELPS\n\n");
+
+ for ( pHelp = help_first; pHelp != NULL; pHelp = pHelp->next )
+ {
+
+ fprintf(fp, "%d %s~\n\n%s~\n",
+ pHelp->level, pHelp->keyword, fix_string(pHelp->text));
+ }
+
+ fprintf(fp,"0 $~\n\n#$\n");
+ fclose(fp);
+ return;
}