GLBasic Einlesen einer Map im flare Format

2015/01/12

GLBasic Einlesen einer Map im flare Format

:::bash
	IF OPENFILE(self.fhMap, mapName$, 1) = FALSE THEN END

	// Einlesen der Map im flare format
	LOCAL x, y
	y = 0
	WHILE ENDOFFILE(self.fhMap)	<> 1
		READLINE self.fhMap, line$

		SELECT line$
			// Einlesen des Header Bereiches
			CASE "[header]"
				self.width = INTEGER(getValue$())
				self.height = INTEGER(getValue$())
				self.tileWidth = INTEGER(getValue$())
				self.tileHeight = INTEGER(getValue$())
				// Einlesen der Tileset Bild Informationen
			CASE "[tilesets]"
				LOCAL tmp$[]
				SPLITSTR(getValue$(), tmp$[], ",")
				self.tileSet$ = tmp$[0]
				self.tileSize = tmp$[1]
			// Einlesen der Map an sich
			CASE "[layer]"
				LOCAL res$
				LOCAL tiles$[]
				DIM self.datas[self.width+1][self.height+1]
				res$ = getValue$()	// das ist der layer typ. dieser wird im moment nicht benoetigt
				res$ = getValue$()	// dies ist der leer bereich fuer des data attribute "data="
				// hier kommt die map
				FOR y=0 TO self.height - 1 STEP 1
					SPLITSTR(getValue$(), tiles$[], ",")
					FOR x=0 TO self.width - 1 STEP 1
						self.datas[x][y] = INTEGER(tiles$[x])
					NEXT
				NEXT
			// Einlesen der Kollisionsobjekte
			CASE "[Objektebene]"
				LOCAL objType = INTEGER(getValue$())
				setCollValue(getValue$(), objType)
			DEFAULT
		ENDSELECT
	WEND