/* * MOBprogram locals */ int mprog_name_to_type args ( ( char* name ) ); MPROG_DATA * mprog_file_read args ( ( char* f, MPROG_DATA* mprg, MOB_INDEX_DATA *pMobIndex ) ); void load_mobprogs args ( ( FILE* fp ) ); void mprog_read_programs args ( ( FILE* fp, MOB_INDEX_DATA *pMobIndex ) ); /* the functions */ /* This routine transfers between alpha and numeric forms of the * mob_prog bitvector types. This allows the use of the words in the * mob/script files. */ int mprog_name_to_type ( char *name ) { if ( !str_cmp( name, "in_file_prog" ) ) return IN_FILE_PROG; if ( !str_cmp( name, "act_prog" ) ) return ACT_PROG; if ( !str_cmp( name, "speech_prog" ) ) return SPEECH_PROG; if ( !str_cmp( name, "rand_prog" ) ) return RAND_PROG; if ( !str_cmp( name, "fight_prog" ) ) return FIGHT_PROG; if ( !str_cmp( name, "hitprcnt_prog" ) ) return HITPRCNT_PROG; if ( !str_cmp( name, "death_prog" ) ) return DEATH_PROG; if ( !str_cmp( name, "entry_prog" ) ) return ENTRY_PROG; if ( !str_cmp( name, "greet_prog" ) ) return GREET_PROG; if ( !str_cmp( name, "all_greet_prog" ) ) return ALL_GREET_PROG; if ( !str_cmp( name, "give_prog" ) ) return GIVE_PROG; if ( !str_cmp( name, "bribe_prog" ) ) return BRIBE_PROG; return( ERROR_PROG ); } /* This routine reads in scripts of MOBprograms from a file */ MPROG_DATA* mprog_file_read( char *f, MPROG_DATA *mprg, MOB_INDEX_DATA *pMobIndex ) { char MOBProgfile[ MAX_INPUT_LENGTH ]; MPROG_DATA *mprg2; FILE *progfile; char letter; bool done = FALSE; sprintf( MOBProgfile, "%s%s", MOB_DIR, f ); progfile = fopen( MOBProgfile, "r" ); if ( !progfile ) { bug( "Mob: %d couldnt open mobprog file", pMobIndex->vnum ); exit( 1 ); } mprg2 = mprg; switch ( letter = fread_letter( progfile ) ) { case '>': break; case '|': bug( "empty mobprog file.", 0 ); exit( 1 ); break; default: bug( "in mobprog file syntax error.", 0 ); exit( 1 ); break; } while ( !done ) { mprg2->type = mprog_name_to_type( fread_word( progfile ) ); switch ( mprg2->type ) { case ERROR_PROG: bug( "mobprog file type error", 0 ); exit( 1 ); break; case IN_FILE_PROG: bug( "mprog file contains a call to file.", 0 ); exit( 1 ); break; default: pMobIndex->progtypes = pMobIndex->progtypes | mprg2->type; mprgftp_game.org 100644 0 0 2122 6377450051 11434 0 ustar root root ============================================================================= / ______ _______ ____ _____ ___ __ _ ______ ____ ____ _____ / \ | ____|__ __| _ \ / ____\ / _ \| \ / | ____| / __ \| _ \ / ____\ \ / | |__ | | | |_| | | | |_| | |\/| | |___ | | | | |_| | | / / | ___| | | | ___/| | __| _ | | | | ____| | | | | __/| | ___ \ \ | | | | | | | |___| | | | | | | | |____ | |__| | |\ \| |___| | / / |_| |_| |_| o \_____/|_| |_|_| |_|______|o \____/|_| \_|\_____/ \ \ / ============================================================================ ------------------------------------------------------------------------------ ftp://ftp.game.org/pub/mud FTP.GAME.ORG http://www.game.org/ftpsite/ ------------------------------------------------------------------------------ This archive came from FTP.GAME.ORG, the ultimate source for MUD resources. ------------------------------------------------------------------------------