/* Copyright (C) 1997-2001 Id Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // Created on 31.10.2003 by RST. // $Id: game_locals_t.java,v 1.4 2004-08-20 21:29:58 salomo Exp $ package jake2.game; import jake2.Defines; import jake2.qcommon.Com; import jake2.util.Lib; import jake2.util.QuakeFile; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.util.Date; public class game_locals_t extends Defines { // // this structure is left intact through an entire game // it should be initialized at dll load time, and read/written to // the server.ssv file for savegames // public String helpmessage1 = ""; public String helpmessage2 = ""; public int helpchanged; // flash F1 icon if non 0, play sound // and increment only if 1, 2, or 3 public gclient_t clients[] = new gclient_t[MAX_CLIENTS]; // can't store spawnpoint in level, because // it would get overwritten by the savegame restore public String spawnpoint = ""; // needed for coop respawns // store latched cvars here that we want to get at often public int maxclients; public int maxentities; // cross level triggers public int serverflags; // items public int num_items; public boolean autosaved; /** Reads the game locals from a file. */ public void load(QuakeFile f) throws IOException { String date = f.readString(); helpmessage1 = f.readString(); helpmessage2 = f.readString(); helpchanged = f.readInt(); // gclient_t* spawnpoint = f.readString(); maxclients = f.readInt(); maxentities = f.readInt(); serverflags = f.readInt(); num_items = f.readInt(); autosaved = f.readInt() != 0; // rst's checker :-) if (f.readInt()!=1928) System.err.println("error in loading game_locals."); } /** Writes the game locals to a file. */ public void write(QuakeFile f) throws IOException { f.writeString(new Date().toString()); f.writeString(helpmessage1); f.writeString(helpmessage2); f.writeInt(helpchanged); // gclient_t* f.writeString(spawnpoint); f.writeInt(maxclients); f.writeInt(maxentities); f.writeInt(serverflags); f.writeInt(num_items); f.writeInt(autosaved?1:0); // rst's checker :-) f.writeInt(1928); } /** Prints the game locals.*/ public void dump() { Com.Println("String helpmessage1: " + helpmessage1); Com.Println("String helpmessage2: " + helpmessage2); Com.Println("spawnpoit: " + spawnpoint); Com.Println("maxclients: " + maxclients); Com.Println("maxentities: " + maxentities); Com.Println("serverflags: " + serverflags); Com.Println("numitems: " + num_items); Com.Println("autosaved: " + autosaved); for (int i = 0; i < maxclients; i++) clients[i].dump(); } }