PDA

View Full Version : [info] Project file format (*.prj)



NicoDE
20.12.2010, 13:31
Due to the default parameters (http://forum.worldofplayers.de/forum/showthread.php?t=844071) the default Project file is data/common/projects/Projects.prj.
The content is stored in an eCArchiveFile (http://forum.worldofplayers.de/forum/showthread.php?t=708947) container and loaded/stored as an eCProcessibleElement (that streams the object with a bCAccessorPropertyObject (http://forum.worldofplayers.de/forum/showpost.php?p=14645127)). The most/only important information is the list of FileBaseNames of the Worlds (http://forum.worldofplayers.de/forum/showthread.php?t=925772) (*.wrl).

The completely documented file content:
Projects.prj {
eCArchiveFile {
Head {
GEU32 Magic1 // "GENO"
GEU32 Magic2 // "MFLE"
GEU16 Version // 0x0001
GEU32 Offset // 0x0000005C
}
Data {
GEU32 Magic // 0xD0DEFADE (eCProcessibleElement::Load/Save)
PropertyObject {
GEU16 Version // 0x0001
GEBool HasPropertyObject // 0x01 (GETrue)
if( GETrue == HasPropertyObject ) {
GEU16 Reserved1 // 0x0001
GEBool Reserved2 // 0x01 (GETrue)
bCString ClassName // 0x0000 ("gCProject")
GEU16 Reserved3 // 0x0001
GEBool Reserved4 // 0x00 (GEFalse)
GEU16 ClassVersion // 0x00C8 (200)
GEU16 Reserved5 // 0x00C9 (201)
GEU32 DataSize // 0x00000037
Data {
PropertyData {
GEU16 Version // 0x00C9 (201)
GEU32 Count // 0x00000003 (3)
Property[ Count ] {
Property_0000 {
bCString Name // 0x0001 ("Worlds")
bCString Type // 0x0002 ("bTRefPtrArray<class gCWorld *>")
GEU16 Version // 0x001E (30)
GEU32 Size // 0x00000000 (0)
Data {
}
}
Property_0001 {
bCString Name // 0x0003 ("ActiveWorld")
bCString Type // 0x0004 ("bCString")
GEU16 Version // 0x001E (30)
GEU32 Size // 0x00000002 (2)
Data {
bCString ActiveWorld // 0x0005 ("")
}
}
Property_0002 {
bCString Name // 0x0006 ("IsPersistable")
bCString Type // 0x0007 ("bool")
GEU16 Version // 0x001E (30)
GEU32 Size // 0x00000001 (1)
Data {
GEBool IsPersistable // 0x01 (GETrue)
}
}
}
}
ClassData {
GEU16 ClassVersion // 0x00C8 (200)
GEU32 WorldFileBaseNameCount // 0x00000005 (5)
bCString WorldFileBaseNames[ WorldFileBaseNameCount ] {
bCString WorldFileBaseName_0000 // 0x0008 ("World")
bCString WorldFileBaseName_0001 // 0x0009 ("Work_Import_Meshes")
bCString WorldFileBaseName_0002 // 0x000A ("Testlevel")
bCString WorldFileBaseName_0003 // 0x000B ("Testlevel_Plane")
bCString WorldFileBaseName_0004 // 0x000C ("Testlevel_Physics")
}
}
}
}
}
}
List {
GEU32 SecurityToken // 0xDEADBEEF
GEU8 Version // 0x01
GEU32 StringCount // 0x0000000D
bCString Strings[ StringCount ] {
String_0000 // 0x0009, "gCProject"
String_0001 // 0x0006, "Worlds"
String_0002 // 0x001E, "bTRefPtrArray<class gCWorld *>"
String_0003 // 0x000B, "ActiveWorld"
String_0004 // 0x0008, "bCString"
String_0005 // 0x0000, ""
String_0006 // 0x000D, "IsPersistable"
String_0007 // 0x0004, "bool"
String_0008 // 0x0005, "World"
String_0009 // 0x0012, "Work_Import_Meshes"
String_000A // 0x0009, "Testlevel"
String_000B // 0x000F, "Testlevel_Plane"
String_000C // 0x0011, "Testlevel_Physics"
}
}
}Note: data/common/projects/Work_Import_Meshes/Work_Import_Meshes.wrl, data/common/projects/Testlevel/Testlevel.wrl, and data/common/projects/Testlevel_Plane/Testlevel_Plane.wrl have been marked as deleted by Patch 1.10 (data/common/projects.p00). And Testlevel_Physics.wrl is not included in the EFIGS release.