/* Copyright 1989, 1990 by James Aspnes, David Applegate, and Bennet Yee */ /* See the file COPYING for distribution information */ #include "os.h" #include "interface.h" #include "externs.h" int shutdown_flag = 0; void notify (datum victim, const char *buf) { printf ("%ld: %s\n", victim, buf); } void emergency_shutdown (void) { puts ("emergency_shutdown() called"); } void force_disconnect (datum player) { printf ("force_disconnect(%ld) called\n", player); } static void command_loop (void) { char buf[MAX_COMMAND_LEN + 1]; datum connected_to = NOTHING; char *nl; char *name; char *password; while (!shutdown_flag) { FGETS (buf, MAX_COMMAND_LEN, stdin); /* nuke that damned newline */ if (*(nl = buf + strlen (buf) - 1) == '\n') *nl = '\0'; if (connected_to != NOTHING) { if (!strcmp (buf, QUIT_COMMAND)) { printf ("Disconnecting from %ld\n", connected_to); disconnect_player (connected_to); connected_to = NOTHING; } else { parse_command (connected_to, buf); } } else { /* get name and password */ for (name = buf; *name && isspace (*name); name++); for (password = name; *password && !isspace (*password); password++); if (*password) *password++ = '\0'; for (; *password && isspace (*password); password++); connected_to = connect_player (name, password); if (connected_to != NOTHING) { printf ("Connected to %ld\n", connected_to); } else { puts ("Failed connect."); } } } return; } int main (int argc, char **argv) { if (argc < 3) { fprintf (stderr, "Usage: %s infile dumpfile\n", *argv); return (1); } if (init_game (argv[1], argv[2]) < 0) { fprintf (stderr, "Couldn't load %s!\n", argv[1]); return (2); } command_loop (); dump_database (); return (0); }