WriteLine and ReadLine would probably be better suited to be something like WriteInt/ReadInt or WriteFloat/ReadFloat#.
That would also create a smaller file size.
A problem with Malices code is that it can only load in trees. You would benefit from doing something like this:
And then to load it you would:
I can't help outdoing someone elses code... ;)
That would also create a smaller file size.
A problem with Malices code is that it can only load in trees. You would benefit from doing something like this:
Filename=WriteFile("Saved_Folder\Savedgame.blah") For Saver.Rock = Each Rock WriteInt(Filename, 1) WriteInt(Filename, Saver\Type) WriteInt(Filename, Saver\Size) WriteString(Filename, Saver\Colour$) WriteFloat(Filename, Saver\Loc_X) WriteFloat(Filename, Saver\Loc_Y) WriteFloat(Filename, Saver\Loc_Z) Next For Saver.Tree = Each Tree WriteInt(Filename, 2) WriteInt(Filename, Saver\Size) WriteInt(Filename, Saver\Branches) WriteString(Filename, Saver\Colour$) WriteInt(Filename, Saver\Leaf) WriteFloat(Filename, Saver\Loc_X) WriteFloat(Filename, Saver\Loc_Y) WriteFloat(Filename, Saver\Loc_Z) Next ;etc. CloseFile(Filename)Where the first WriteInt is saving the type of object being saved such as 1=rock, 2=tree, 3=house, 4=lightpost, etc. This way, you know how to load it later.
And then to load it you would:
Filename=ReadFile("Saved_Folder\Savedgame.blah") Repeat objecttype = ReadInt(Filename) Select objecttype Case 1 ;load in rock Case 2 Loader.Tree = New Tree Loader\Size=ReadInt(Filename) Loader\Branches=ReadInt(Filename) Loader\Colour$=ReadString$(Filename) Loader\Leaf=ReadInt(Filename) Loader\Loc_X=ReadFloat#(Filename) Loader\Loc_Y=ReadFloat#(Filename) Loader\Loc_Z=ReadFloat#(Filename) Case 3 ;load in house Case 4 ;load in lightpost Case Default RunTimeError "Unknown object encountered" End Select Until Eof (Filename)
I can't help outdoing someone elses code... ;)