aboutsummaryrefslogtreecommitdiffstats
path: root/src/jake2/game/client_persistant_t.java
diff options
context:
space:
mode:
authorRene Stoeckel <[email protected]>2004-08-20 21:29:58 +0000
committerRene Stoeckel <[email protected]>2004-08-20 21:29:58 +0000
commit93a1cb6d6bfa9d7a80c004100125c829f1f36e86 (patch)
tree4ca88afc7718f8e63bd7f91aeccfe3c0fe66634e /src/jake2/game/client_persistant_t.java
parenta1a1c7334c9b03113344078d2d7977193a1d7b5e (diff)
savegames now seem to work.
Diffstat (limited to 'src/jake2/game/client_persistant_t.java')
-rw-r--r--src/jake2/game/client_persistant_t.java89
1 files changed, 64 insertions, 25 deletions
diff --git a/src/jake2/game/client_persistant_t.java b/src/jake2/game/client_persistant_t.java
index 774cfa4..126d5d5 100644
--- a/src/jake2/game/client_persistant_t.java
+++ b/src/jake2/game/client_persistant_t.java
@@ -19,13 +19,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// Created on 31.10.2003 by RST.
-// $Id: client_persistant_t.java,v 1.4 2004-07-12 20:47:01 hzi Exp $
+// $Id: client_persistant_t.java,v 1.5 2004-08-20 21:29:58 salomo Exp $
package jake2.game;
import jake2.Defines;
import jake2.util.Lib;
+import jake2.util.QuakeFile;
+import java.io.IOException;
+import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
public class client_persistant_t {
@@ -89,42 +92,78 @@ public class client_persistant_t {
int helpchanged;
boolean spectator; // client is a spectator
- public void load(ByteBuffer bb) {
- // client persistant_t
- userinfo = Lib.readString(bb, Defines.MAX_INFO_STRING);
- netname = Lib.readString(bb, 16);
+ /** Reads a client_persistant structure from a file. */
+ public void read(QuakeFile f) throws IOException {
+
+ userinfo = f.readString();
+ netname = f.readString();
- hand = bb.getInt();
+ hand = f.readInt();
- connected = bb.getInt() != 0;
- health = bb.getInt();
+ connected = f.readInt() != 0;
+ health = f.readInt();
- max_health = bb.getInt();
- savedFlags = bb.getInt();
- selected_item = bb.getInt();
+ max_health = f.readInt();
+ savedFlags = f.readInt();
+ selected_item = f.readInt();
for (int n = 0; n < Defines.MAX_ITEMS; n++)
- inventory[n] = bb.getInt();
+ inventory[n] = f.readInt();
+
+ max_bullets = f.readInt();
+ max_shells = f.readInt();
+ max_rockets = f.readInt();
+ max_grenades = f.readInt();
+ max_cells = f.readInt();
+ max_slugs = f.readInt();
+
+ weapon = f.readItem();
+ lastweapon = f.readItem();
+ power_cubes = f.readInt();
+ score = f.readInt();
+
+ game_helpchanged = f.readInt();
+ helpchanged = f.readInt();
+ spectator = f.readInt() != 0;
+ }
- max_bullets = bb.getInt();
- max_shells = bb.getInt();
- max_rockets = bb.getInt();
- max_grenades = bb.getInt();
- max_cells = bb.getInt();
- max_slugs = bb.getInt();
+ /** Writes a client_persistant structure to a file. */
+ public void write(QuakeFile f) throws IOException {
+ // client persistant_t
+ f.writeString(userinfo);
+ f.writeString(netname);
- weapon = GameAI.itemlist[bb.getInt()];
- lastweapon = GameAI.itemlist[bb.getInt()];
- power_cubes = bb.getInt();
- score = bb.getInt();
+ f.writeInt(hand);
- game_helpchanged = bb.getInt();
- helpchanged = bb.getInt();
- spectator = bb.getInt() != 0;
+ f.writeInt(connected ? 1:0);
+ f.writeInt(health);
+ f.writeInt(max_health);
+ f.writeInt(savedFlags);
+ f.writeInt(selected_item);
+
+ for (int n = 0; n < Defines.MAX_ITEMS; n++)
+ f.writeInt(inventory[n]);
+
+ f.writeInt(max_bullets);
+ f.writeInt(max_shells);
+ f.writeInt(max_rockets);
+ f.writeInt(max_grenades);
+ f.writeInt(max_cells);
+ f.writeInt(max_slugs);
+
+ f.writeItem(weapon);
+ f.writeItem(lastweapon);
+ f.writeInt(power_cubes);
+ f.writeInt(score);
+
+ f.writeInt(game_helpchanged);
+ f.writeInt(helpchanged);
+ f.writeInt(spectator?1:0);
}
+
public void dump() {
// client persistant_t