static gboolean listen_from_server(GIOChannel *io, GIOCondition condition, void *cnt) { gchar buf[512]; gsize nbr; t_message msg; debug("listen_from_server()"); (void) condition; if (g_io_channel_read(io, buf, CLIENT_READ_BUF_SIZE, &nbr) != G_IO_ERROR_NONE) { g_io_channel_close(io); return (-1); } buf[nbr] = '\0'; if (nbr > 0) { extract_msg((char *) buf, &msg); printf("[%s]\n", msg.command); mesg_init(cnt, &msg); insert_mesg_to_list(cnt, EMPTY, "server", trim(buf)); } scrolled_window(cnt, SCROLL_MESG); g_io_add_watch(io, G_IO_IN, listen_from_server, cnt); return (0); }
int init_game(const char *infile, const char *outfile) { FILE *f; if ((f = fopen(MACRO_FILE, "rb")) == NULL) log_status("INIT: Macro storage file %s is tweaked.", MACRO_FILE); else { macroload(f); fclose(f); } in_filename = (char *) string_dup(infile); if ((input_file = fopen(infile, "rb")) == NULL) return -1; #ifdef DELTADUMPS if ((delta_outfile = fopen(DELTAFILE_NAME, "wb")) == NULL) return -1; if ((delta_infile = fopen(DELTAFILE_NAME, "rb")) == NULL) return -1; #endif db_free(); init_primitives(); /* init muf compiler */ mesg_init(); /* init mpi interpreter */ SRANDOM(getpid()); /* init random number generator */ tune_load_parmsfile(NOTHING); /* load @tune parms from file */ /* ok, read the db in */ log_status("LOADING: %s", infile); fprintf(stderr, "LOADING: %s\n", infile); if (db_read(input_file) < 0) return -1; log_status("LOADING: %s (done)", infile); fprintf(stderr, "LOADING: %s (done)\n", infile); /* set up dumper */ if (dumpfile) free((void *) dumpfile); dumpfile = alloc_string(outfile); if (!db_conversion_flag) { /* initialize the _sys/startuptime property */ add_property((dbref) 0, "_sys/startuptime", NULL, (int) time((time_t *) NULL)); add_property((dbref) 0, "_sys/maxpennies", NULL, tp_max_pennies); add_property((dbref) 0, "_sys/dumpinterval", NULL, tp_dump_interval); add_property((dbref) 0, "_sys/max_connects", NULL, 0); } return 0; }