use of jake2.util.QuakeFile in project narchy by automenta.
the class GameSave method ReadGame.
public static void ReadGame(String filename) {
QuakeFile f = null;
try {
f = new QuakeFile(filename, "r");
CreateEdicts();
GameBase.game.load(f);
for (int i = 0; i < GameBase.game.maxclients; i++) {
GameBase.game.clients[i] = new gclient_t(i);
GameBase.game.clients[i].read(f);
}
f.close();
} catch (Exception e) {
e.printStackTrace();
}
}
use of jake2.util.QuakeFile in project narchy by automenta.
the class Menu method Create_Savestrings.
/**
* Search the save dir for saved games and their names.
*/
static void Create_Savestrings() {
int i;
QuakeFile f;
String name;
for (i = 0; i < MAX_SAVEGAMES; i++) {
m_savestrings[i] = "<EMPTY>";
name = FS.Gamedir() + "/save/save" + i + "/server.ssv";
try {
f = new QuakeFile(name, "r");
if (f == null) {
m_savestrings[i] = "<EMPTY>";
m_savevalid[i] = false;
} else {
String str = f.readString();
if (str != null)
m_savestrings[i] = str;
f.close();
m_savevalid[i] = true;
}
} catch (Exception e) {
m_savestrings[i] = "<EMPTY>";
m_savevalid[i] = false;
}
}
}
use of jake2.util.QuakeFile in project narchy by automenta.
the class SV_CCMDS method SV_ReadLevelFile.
/*
==============
SV_ReadLevelFile
==============
*/
public static void SV_ReadLevelFile() {
// char name[MAX_OSPATH];
String name;
QuakeFile f;
Com.DPrintf("SV_ReadLevelFile()\n");
name = FS.Gamedir() + "/save/current/" + SV_INIT.sv.name + ".sv2";
try {
f = new QuakeFile(name, "r");
for (int n = 0; n < Defines.MAX_CONFIGSTRINGS; n++) SV_INIT.sv.configstrings[n] = f.readString();
CM.CM_ReadPortalState(f);
f.close();
} catch (IOException e1) {
Com.Printf("Failed to open " + name + '\n');
e1.printStackTrace();
}
name = FS.Gamedir() + "/save/current/" + SV_INIT.sv.name + ".sav";
GameSave.ReadLevel(name);
}
use of jake2.util.QuakeFile in project narchy by automenta.
the class SV_CCMDS method SV_WriteServerFile.
/*
==============
SV_WriteServerFile
==============
*/
public static void SV_WriteServerFile(boolean autosave) {
QuakeFile f;
cvar_t var;
String filename, name, string, comment;
Com.DPrintf("SV_WriteServerFile(" + (autosave ? "true" : "false") + ")\n");
filename = FS.Gamedir() + "/save/current/server.ssv";
try {
f = new QuakeFile(filename, "rw");
if (!autosave) {
Calendar c = Calendar.getInstance();
comment = Com.sprintf("%2i:%2i %2i/%2i ", new Vargs().add(c.get(Calendar.HOUR_OF_DAY)).add(c.get(Calendar.MINUTE)).add(c.get(Calendar.MONTH) + 1).add(c.get(Calendar.DAY_OF_MONTH)));
comment += SV_INIT.sv.configstrings[Defines.CS_NAME];
} else {
// autosaved
comment = "ENTERING " + SV_INIT.sv.configstrings[Defines.CS_NAME];
}
f.writeString(comment);
f.writeString(SV_INIT.svs.mapcmd);
// these will be things like coop, skill, deathmatch, etc
for (var = Globals.cvar_vars; var != null; var = var.next) {
if (0 == (var.flags & Defines.CVAR_LATCH))
continue;
if (var.name.length() >= Defines.MAX_OSPATH - 1 || var.string.length() >= 128 - 1) {
Com.Printf("Cvar too long: " + var.name + " = " + var.string + '\n');
continue;
}
name = var.name;
string = var.string;
try {
f.writeString(name);
f.writeString(string);
} catch (IOException e2) {
}
}
// rst: for termination.
f.writeString(null);
f.close();
} catch (Exception e) {
Com.Printf("Couldn't write " + filename + '\n');
}
// write game state
filename = FS.Gamedir() + "/save/current/game.ssv";
GameSave.WriteGame(filename, autosave);
}
Aggregations