mapa={ name=nil, w=128, h=128, surface=nil, new = function(w,h) mapa.name=nil mapa.w,mapa.h=w,h if mapa.surface~=nil then freesurf(mapa.surface) end mapa.surface=newsurf(w,h) setmap(mapa.surface) for y=0,127 do for x=0,127 do mset(x,y,0) end end end, load = function(filename) file = io.open("data/"..filename, "r") if file then io.input(file) mapa.w = tonumber(io.read()) mapa.h = tonumber(io.read()) local num_layers=tonumber(io.read()) mapa.new(mapa.w, mapa.h) mapa.name=filename for y=0,mapa.h-1 do local line = io.read() local x=0 for m in string.gmatch(line, "%d+") do mset(x,y,m) x=x+1 end end if num_layers==2 then mapa.front_layer=newsurf(mapa.w,mapa.h) setmap(mapa.front_layer) for y=0,mapa.h-1 do local line = io.read() local x=0 for m in string.gmatch(line, "%d+") do mset(x,y,m) x=x+1 end end end setmap(mapa.surface) io.close(file) end end, save = function(filename) mapa.name=filename file = io.open("data/"..filename, "w") if file then io.output(file) io.write(mapa.w.."\n") io.write(mapa.h.."\n") if mapa.front_layer then io.write("2\n") else io.write("1\n") end setmap(mapa.surface) for y=0,mapa.h-1 do for x=0,mapa.w-1 do io.write(mget(x,y)..",") end io.write("\n") end if mapa.front_layer then setmap(mapa.front_layer) for y=0,mapa.h-1 do for x=0,mapa.w-1 do io.write(mget(x,y)..",") end io.write("\n") end end io.close(file) end end, check_collision=function(x,y) return mget(x,y) > 16 or mget(x+1,y) > 16 end }