var grablevel : flexible array 1 .. 1 of string % each part of the array stores a different part of the map file
var mapPartsArray : array 1 .. 100 of string
var curMapObject : string % This is the string of the current type of object we are parsing
var blockcounter : int % This is counting what individual block we are on.
var lngth : int % Show the length of the
var mapfile : int
var curObjectType : int % This is the type of the object we are parsing. IE: the ground blocks are a "1"
open : mapfile, "levels/1.txt", get
curObjectType := 1
loop % grabbing the data from the level
exit when eof (mapfile)
get : mapfile, grablevel (upper (grablevel))
new grablevel, upper (grablevel) + 1
put "Success! Map object #", curObjectType, " was parsed correctly: ".. % let's see if this succedes after each loop
put grablevel(curObjectType)
curObjectType := curObjectType + 1
delay (400)
end loop
delay (1500)
curObjectType := 1
blockcounter := 1
loop % Let's loop to parse all 5 map objects
curMapObject := grablevel(curObjectType) % setting the current type of object we are parsing
lngth := length (curMapObject) % grabbing the length of the
put grablevel (curObjectType), " :: curObjectType" % print the current map file section we are parsing
put curMapObject, " :: curMapObject" % make sure that the current "block" of code was inserted into it's string properly
delay (1500)
loop % loop until we parse the whole string
mapPartsArray (blockcounter) := curMapObject (1) % make the the location in the array specified by 'blockcounter' be equal to the first char of the current "block" of the map file
delay (100) % slow so we can see what is going on
put mapPartsArray (blockcounter) % make sure things are being parsed correctly
blockcounter := blockcounter + 1 % lets add up how many blocks we've inspected
curMapObject := curMapObject (2 .. lngth) % shave off the first char of curMapObject. It's been stored in an array, we don't need it anymore
lngth := length (curMapObject) % grab the new length after shaving off the first char
exit when lngth = 0 % exit the loop when we've parsed the whole string
end loop
put " "
curObjectType := curObjectType + 1 % why not move onto the next map object?
exit when curObjectType = 6 % end the loop once we've parsed all the map objects :: must be one higher then the actual # of objects
end loop