When i save my world (entity info) and i load it again, all the entities are placed wierd. But then when i save, and load them again, they're on their places again.
Code:
Function Save()
f=WriteFile("World.ent")
WriteByte f,Asc("W")
WriteByte f,Asc("L")
WriteByte f,Asc("D")
WriteFloat f,1.0
For e.Entity = Each Entity
WriteByte f,Asc("M") ; Mesh
WriteString f,e\Mesh$
WriteString f,e\Path$
WriteFloat f,EntityX#(e\Ent)
WriteFloat f,EntityY#(e\Ent)
WriteFloat f,EntityZ#(e\Ent)
WriteFloat f,EntityPitch#(e\Ent)
WriteFloat f,EntityYaw#(e\Ent)
WriteFloat f,EntityRoll#(e\Ent)
WriteFloat f,EntityScaleX#(e\Ent)
WriteFloat f,EntityScaleY#(e\Ent)
WriteFloat f,EntityScaleZ#(e\Ent)
Next
CloseFile f
End Function
Function Load()
f=ReadFile("World.ent")
ReadByte f:ReadByte f:ReadByte f
If ReadFloat(f)<>1.0 Then RuntimeError "Wrong file version!"
Repeat
Select Chr$(ReadByte(f))
Case "M"
e.Entity = New Entity
e\Mesh$=ReadString(f)
e\Path$=ReadString(f)
e\Ent = LoadMesh(e\path$+"\"+e\mesh$)
If e\Ent = 0 Then RuntimeError "Mesh doesent exist: "+CurrentDir()+"\"+e\path$+"\"+e\mesh$
PositionEntity e\Ent,ReadFloat(f),ReadFloat(f),ReadFloat(f)
RotateEntity e\Ent,ReadFloat(f),ReadFloat(f),ReadFloat(f)
ScaleEntity e\Ent,ReadFloat(f),ReadFloat(f),ReadFloat(f)
Default
RuntimeError "Version data and Entity Data doesn't match! Unknown entity type."
End Select
Until Eof(f)
CloseFile f
End Function
Code:
Function Save()
f=WriteFile("World.ent")
WriteByte f,Asc("W")
WriteByte f,Asc("L")
WriteByte f,Asc("D")
WriteFloat f,1.0
For e.Entity = Each Entity
WriteByte f,Asc("M") ; Mesh
WriteString f,e\Mesh$
WriteString f,e\Path$
WriteFloat f,EntityX#(e\Ent)
WriteFloat f,EntityY#(e\Ent)
WriteFloat f,EntityZ#(e\Ent)
WriteFloat f,EntityPitch#(e\Ent)
WriteFloat f,EntityYaw#(e\Ent)
WriteFloat f,EntityRoll#(e\Ent)
WriteFloat f,EntityScaleX#(e\Ent)
WriteFloat f,EntityScaleY#(e\Ent)
WriteFloat f,EntityScaleZ#(e\Ent)
Next
CloseFile f
End Function
Function Load()
f=ReadFile("World.ent")
ReadByte f:ReadByte f:ReadByte f
If ReadFloat(f)<>1.0 Then RuntimeError "Wrong file version!"
Repeat
Select Chr$(ReadByte(f))
Case "M"
e.Entity = New Entity
e\Mesh$=ReadString(f)
e\Path$=ReadString(f)
e\Ent = LoadMesh(e\path$+"\"+e\mesh$)
If e\Ent = 0 Then RuntimeError "Mesh doesent exist: "+CurrentDir()+"\"+e\path$+"\"+e\mesh$
PositionEntity e\Ent,ReadFloat(f),ReadFloat(f),ReadFloat(f)
RotateEntity e\Ent,ReadFloat(f),ReadFloat(f),ReadFloat(f)
ScaleEntity e\Ent,ReadFloat(f),ReadFloat(f),ReadFloat(f)
Default
RuntimeError "Version data and Entity Data doesn't match! Unknown entity type."
End Select
Until Eof(f)
CloseFile f
End Function