DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T d

⟦6c1fb572d⟧ TextFile

    Length: 3492 (0xda4)
    Types: TextFile
    Names: »docommand.c«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Gb/docommand.c« 

TextFile

/*
 * Galactic Bloodshed (Robert Chansky, smq@b)
 * docommand.c  --  figures out what command it is and the arguments, 
 * executes the command via the proper subroutine
 */

#include "vars.h"
#include <strings.h>
#include <ctype.h>
extern int God;

int docommand(commstring)
char commstring[];
{
int i,argn=0;
bool parse_exit=0;
char args[MAXARGS][COMMANDSIZE];
char *string;

	string=commstring;	/* make pointers the same */
	while (!parse_exit) {
	    i=0;
	    while ( !isspace(*string) && (*string!='\0') && (i<COMMANDSIZE) )
		args[argn][i++]=(*string++);
	    args[argn][i]='\0';
	    /*printf("arg %d |%s|\n",argn,args[argn]);*/
	    while ((*string)==' ') string++;
	    if ( (*string=='\0') || (argn>=MAXARGS)) parse_exit=1;
	    argn++;
	}
	for (i=argn; i<MAXARGS; i++)
		args[i][0]='\0';

	if (args[0][0]=='\0')   /* just pressed return */
		return(1);	/* go back and wait again */
	i=strlen(args[0]);
	if (!strncmp(args[0],"quit",i)) return(0);  /* quit game */
				/* return quit status */
	else if (!strncmp(args[0],"autoreport",i)) autoreport(0,argn,args);
	else if (!strncmp(args[0],"build",i)) build(2,argn,args);
	else if (!strncmp(args[0],"survey",i)) survey(0,argn,args);
	else if (!strncmp(args[0],"cs",i)) cs(0,argn,args);
	else if (!strncmp(args[0],"assault",i)) land(2,argn,args,1);
	else if (!strncmp(args[0],"dock",i)) land(1,argn,args,0);
	else if (!strncmp(args[0],"fire",i)) fire(2,argn,args);
	else if (!strncmp(args[0],"help",i)) help(0,argn,args);
	else if (!strncmp(args[0],"land",i)) land(1,argn,args,0);
	else if (!strncmp(args[0],"launch",i)) launch(1,argn,args);
	else if (!strncmp(args[0],"load",i)) load(1,argn,args);
	else if (!strncmp(args[0],"map",i)) map(0,argn,args);
	else if (!strncmp(args[0],"mobilize",i)) mobilize(2,argn,args);
	else if (!strncmp(args[0],"name",i)) name(2,argn,args);
	else if (!strncmp(args[0],"orbit",i)) orbit(0,argn,args);
	else if (!strncmp(args[0],"order",i)) order(1,argn,args);
	else if (!strncmp(args[0],"profile",i)) profile(0,argn,args);
	else if (!strncmp(args[0],"read",i)) teleg_read(0,argn,args);
	else if (!strncmp(args[0],"report",i)) rst(0,argn,args,0);
	else if (!strncmp(args[0],"stock",i)) rst(0,argn,args,1);
	else if (!strncmp(args[0],"tactical",i)) rst(0,argn,args,2);
	else if (!strncmp(args[0],"ship",i)) rst(0,argn,args,3);
	else if (!strncmp(args[0],"object",i)) rst(0,argn,args,4);
	else if (!strncmp(args[0],"power",i)) power(0,argn,args);
	else if (!strncmp(args[0],"telegram",i)) telegram(2,argn,args);
	else if (!strncmp(args[0],"undock",i)) launch(1,argn,args);
	else if (!strncmp(args[0],"declare",i)) declare(1,argn,args);
	else if (!strncmp(args[0],"scrap",i)) scrap(1,argn,args);
	else if (!strncmp(args[0],"examine",i)) examine(1,argn,args);
	else if (!strncmp(args[0],"zoom",i)) zoom(0,argn,args);
#if SHELL_DOTURN
		/* only do this if compiler option to save disk space.. */
			/* only owning player can do turns */
	else if (!strncmp(args[0],"doturn",i)) {
			if (God) {
				doturn(1);	/* from shell */
				docommand("cs :");
			}
			else printf("You are not empowered to do that.\n");
	}
#endif
			/* only owning player can use fix */
	else if (!strncmp(args[0],"fix",i)) {
			if (God) {
				fix(argn,args);
				docommand("cs :");
			}
			else printf("You are not empowered to do that.\n");
	} else 
	       printf("'%s':illegal command error(%d).\n",args[0],*args[0]);
		/* grab extraneous return chars if there are any */

	return(1);  /*  main() knows user is not quitting  */
}