From 0d5e40032d56aa3fd169b747b5c57a206e5b4163 Mon Sep 17 00:00:00 2001 From: Sgeo Date: Wed, 14 Jun 2017 20:49:34 -0400 Subject: [PATCH] Updated Persister (.world etc.) format (markdown) --- Persister-(.world-etc.)-format.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Persister-(.world-etc.)-format.md b/Persister-(.world-etc.)-format.md index 497dbaa..996c740 100644 --- a/Persister-(.world-etc.)-format.md +++ b/Persister-(.world-etc.)-format.md @@ -11,7 +11,8 @@ Worlds generally uses the format described by [Java's DataInput](https://docs.or * Byte, Double, Long, Int, Float, Short: Self-explanatory * Arrays, vectors, maybenulls: Explained below * MaybeNull: 1 byte as a null indicator (0x01 for null, 0x00 for non-null), followed by an object (as described below) for non-null -* Array: +* Class: A Class ID, then if the Class ID has not been encountered before in this file, a String for the class name. If the Class ID has been encountered before, the class name is omitted and the prior name assumed. +* Array: * "Version for X" (not applicable to Persister version): For the first instance for a given X, this is an integer. Otherwise it is omitted and the prior value assumed. Note that X is usually, but not always, a class. # Header and footer @@ -22,7 +23,7 @@ Worlds generally uses the format described by [Java's DataInput](https://docs.or # Objects -Assuming empty class and object table, an object consists of an object ID (integer), a class ID (integer), class name (String), and then data as determined by the specific class. +Assuming empty class and object table, an object consists of an object ID (integer), a class (a class ID (integer) then class name (String)), and then data as determined by the specific class. ## Example from GroundZero