Dump Box
__________________________


1 Bedienung

	1.1 Hauptmen
	1.2 Spiel
	1.3 Highscore Nameneingabe
	
	1.1 Hauptmen
		
		Im Hauptmen wird oben links der Titel "Dump Box" angezeigt. Weiter
		unten werden die Levelgruppen aufgelistet, die das Programm gefunden hat.
		Wenn man mit der Maus auf eine Gruppe fhrt, werden - falls vorhanden -
		die Highscoredaten geladen und oben neben dem Titel, mit dem Levelnamen
		angezeigt. Wenn keine Highscoredaten existieren, werden sie automatisch
		erstellt und beim nchsten drberfahren angezeigt.
		
		Ein Linksklick bewirkt, dass das Spiel mit dieser Levelgruppe gestartet wird.
		
		Ein lngerer Rechtsklick (~ 2 sek.) lscht die Highscoredaten der
		ausgewhlten Levelgruppe.
		
	1.2 Spiel
		
		Die Spielfigur ist in den beigelegten Levels eindeutig von der Umwelt
		unterscheidbar.
		Bewegung:
			Linke Pfeiltaste	- nach Links	(wenn mglich)
			Rechte Pfeiltaste	- nach Rechts	(wenn mglich)
			Pfeiltaste Oben		- nach Oben		(wenn mglich)
			Pfeiltaste Unten	- nach Unten	(wenn mglich)
		Andere Steuerung:
			Rcktaste			- Wiederherstellen des aktuellen Levels (neuer Versuch)
			Escape/WinX*		- Zum Hauptmen zurckkehren
		
		* WinX ... X auf dem Fenster
		
		Ziel des Spiels ist es, alle Boxen in den Zielfeldern abzustellen.
		
		Der Score ergibt sich aus der Anzahl der Schritte, die fr alle Level
		gebraucht wurden.
		
		Hat man alle Levels einer Levelgruppe geschafft, kommt man, wenn man einen
		neuen Highscore aufgestellt hat, zur Nameneingabe; ansonsten direkt ins
		Hauptmen.
		
		Teleport: Man selber und Boxen knnen teleportiert werden. Die Teleportsysteme
		werden bei _jedem_ Schritt des Spielers auf neue Objekte (inkl. den Spieler), die
		auf ihnen stehen getestet und jene werden dann teleportiert. Der Teleport hat
		einige Eigenheiten, die ich nicht alle hier aufzhlen mchte.
		Wichtig ist, dass wenn man sich selbst teleportiert und dabei eine Box, die auf
		dem zugehrigen anderen Teleporter gelegen ist auf einen weiteren anderen schiebt,
		wird die Box NICHT teleportiert!
		
		
	1.3 Highscore - Nameneingabe
	
		Das Spiel zeigt in dem Modus einen schwarzen Hintergrund, den Score und
		darunter die Stelle wo der Name eingegeben wird (blinkender Cursor). Der
		Name kann (in der ausgelieferten Version) maximal 10-stellig sein und nur
		Grobuchstaben und Zahlen beinhalten.
		Die Eingabe wird mit Enter/Return besttigt.
		Wenn man den Highscore nicht speichern mchte, gibt man keinen Namen ein
		und besttigt mit Enter.
		
		
2 Arbeitsweise

	1.1 Leveldaten
	1.2 Binrformat - Aufbau
	1.3 Folgen korrupter Daten

	1.1 Leveldaten
		
		Ein Ordner, der eine Levelgruppe halten soll, muss im Stammordner des Spiels -
		also dort, wo auch die ausfhrbare Datei ist - liegen. Der Name des Ordners
		muss auf .lev enden. Das erste Level der Levelgruppe muss in diesem Ordner
		unter dem Namen "init.bin" abgespeichert sein. Die Namen der nchsten Levels
		werden in den Binrdaten der Levels festgelegt.
		Wenn in eine Levelgruppe externe Grafik eingebunden werden soll, muss diese
		auch im Levelgruppenordner liegen, unter dem Namen "gfx.png" und muss in der
		Form (nicht in der absoluten Auflsung, aber in den Seitenverhltnissen) der
		beigelegten "gfx.png" entsprechen.
		
	1.2 Binrformat - Aufbau
		
		OFFSET			DATA
		0x0				(NL) Lnge des Pfades, des nchsten Levels
		0x1				(SN) Pfad des nchsten Levels als C-String ohne \0
		0x1+SN			(FW) Felder in X-Richtung (Vielfaches von 2)
		0x2+SN			(FH) Felder in Y-Richtung (Vielfaches von 2)
		0x3+SN			(PX) Startposition auf X des Spielers
		0x4+SN			(PY) Startposition auf Y des Spielers
		0x5+SN			(TS) Teleportsysteme (ein Teleportsystem = 4 Bytes)
		
		0x6+SN			(F[01,0]) Feldparameter an Position [0,0] und [1,0]
		0x7+SN			(F[23,0]) Feldparameter an Position [2,0] und [3,0]
		..
		0x5+SN+FW*FH	(F[FW-2FW-1,FH-1]) Feldparameter an Position [FW-2,FH-1] und [FW-1,FH-1]
		(TS-Mal - entfllt, wenn TS=0){
			0x6+SN+FW*FH	(1T1X) Teleporter 1  X-Position
			0x7+SN+FW*FH	(1T1X) Teleporter 1  Y-Position
			0x8+SN+FW*FH	(1T1X) Teleporter 2  X-Position
			0x9+SN+FW*FH	(1T1X) Teleporter 2  Y-Position
			{...}
		}
		
		Feldparameter (4 Bit):
			
			X	X	X	X
			|	|	|	|
			|	----------	0x0 ... unbegehbar
			|				0x1 ... nicht definiert
			|				0x2 ... begehbar
			|				0x3 ... Zielfeld (fr Boxen, auch begehbar)
			|
			--------------	Box ?
			
		Feldparameter werden fr je zwei nebeneinanderliegende Felder in ein Byte zusammengefasst:
			Beispiel fr [0,0] und [0,1]
		
			X	X	X	X	X	X	X	X
			|   |	|	|	|	|	|	|
			|	|	|	|	--------------	[0,1]
			|	|	|	|
			------------------------------	[0,0]
		
		
	1.3 Folgen korrupter Daten
	
		Levels die diesem Binrformat nicht entsprechen, falsche oder ungeeignete Angaben
		bei einzelnen Punkten in der Datei machen, knnen dazu fhren dass:
			- die Levelgruppe nicht aufgerufen werden kann
			- das Programm mit einer Fehlermeldung anhlt
			- ein Laufzeitfehler das Programm zum Absturz bringt
				(sollte allerdings nicht passieren)
