Function Drawimages_Spieler_links()
	If ItemId_AusruestungBeine=0 Then
		DrawImage Spielergeht_links_nurBeine,Sp_X#,Sp_Y#,frmSpgeht_links
	EndIf
	If ItemId_AusruestungBeine=1 Then
		DrawImage Spielergeht_links_nurBeine_RoteHose,Sp_X#,Sp_Y#
	EndIf
	If ItemId_AusruestungGuertel=0 Then
		DrawImage Spieler_links_nurGuertel,Sp_X#,Sp_Y#
	EndIf
	If ItemId_AusruestungOberkoerper=0 Then
		DrawImage Spieler_links_nurOberkoerper,Sp_X#,Sp_Y#
	EndIf
	If ItemId_AusruestungKopf=0 Then
		DrawImage Spieler_links_nurKopf,Sp_X#,Sp_Y#
	EndIf
	If ItemId_Waffen_Schwert=1 Then
		DrawImage Spieler_links_nurUebungsKatana,Sp_X#,Sp_Y#
		If Inventargeoffnet Then
			UebungsKatana_Ausgeruestet=True
		Else
			UebungsKatana_Ausgeruestet=False
		EndIf
	EndIf
End Function 



Function Drawimages_Spieler_rechts()
   If ItemId_AusruestungBeine=0 Then
    DrawImage Spieler_nurBeine,Sp_X#,Sp_Y#
   EndIf
   If ItemId_AusruestungBeine=1 Then
    DrawImage Spieler_nurBeine_RoteHose,Sp_X#,Sp_Y#
   EndIf
   If ItemId_AusruestungGuertel=0 Then
    DrawImage Spieler_nurGuertel,Sp_X#,Sp_Y#
   EndIf
   If ItemId_AusruestungOberkoerper=0 Then
    DrawImage Spieler_nurOberkoerper,Sp_X#,Sp_Y#
   EndIf
   If ItemId_AusruestungKopf=0 Then
    DrawImage Spieler_nurKopf,Sp_X#,Sp_Y#
   EndIf
   If ItemId_Waffen_Schwert=1 Then
    DrawImage Spieler_nurUebungsKatana,Sp_X#,Sp_Y#
    If Inventargeoffnet Then
     UebungsKatana_Ausgeruestet=True
    Else
     UebungsKatana_Ausgeruestet=False
    EndIf
   EndIf
End Function 



Function Drawimages_Spielergehtrechts()
   If ItemId_AusruestungBeine=0 Then
  DrawImage Spielergeht_nurBeine,Sp_X#,Sp_Y#,frmSpgeht_rechts
 EndIf
 If ItemId_AusruestungBeine=1 Then
  DrawImage Spielergeht_nurBeine_RoteHose,Sp_X#,Sp_Y#
 EndIf
 If ItemId_AusruestungGuertel=0 Then
  DrawImage Spieler_nurGuertel,Sp_X#,Sp_Y#
 EndIf
 If ItemId_AusruestungOberkoerper=0 Then
  DrawImage Spieler_nurOberkoerper,Sp_X#,Sp_Y#
 EndIf
 If ItemId_AusruestungKopf=0 Then
  DrawImage Spieler_nurKopf,Sp_X#,Sp_Y#
 EndIf
 If ItemId_Waffen_Schwert=1 Then
  DrawImage Spieler_nurUebungsKatana,Sp_X#,Sp_Y#
   If Inventargeoffnet Then
    DrawImage UebungsKatanaAusgeruestet,Sp_X#,Sp_Y#
   EndIf
 EndIf
End Function 



Function Drawimages_Spielergehtlinks()
 If ItemId_AusruestungBeine=0 Then
  DrawImage Spielergeht_links_nurBeine,Sp_X#,Sp_Y#,frmSpgeht_links
 EndIf
 If ItemId_AusruestungBeine=1 Then
  DrawImage Spielergeht_links_nurBeine_RoteHose,Sp_X#,Sp_Y#
 EndIf
 If ItemId_AusruestungGuertel=0 Then
  DrawImage Spieler_links_nurGuertel,Sp_X#,Sp_Y#
 EndIf
 If ItemId_AusruestungOberkoerper=0 Then
  DrawImage Spieler_links_nurOberkoerper,Sp_X#,Sp_Y#
 EndIf
 If ItemId_AusruestungKopf=0 Then
  DrawImage Spieler_links_nurKopf,Sp_X#,Sp_Y#
 EndIf
 If ItemId_Waffen_Schwert=1 Then
  DrawImage Spieler_links_nurUebungsKatana,Sp_X#,Sp_Y#
    If Inventargeoffnet Then
     UebungsKatana_Ausgeruestet=True
    Else
     UebungsKatana_Ausgeruestet=False
    EndIf
 EndIf
End Function



Function Drawimages_SpielerSpringt_rechts()
   If ItemId_AusruestungBeine=0 Then
    DrawImage Spieler_Sprung_nurBeine,Sp_X#,Sp_Y#-113,frmSpSpr_rechts
   EndIf
   If ItemId_AusruestungBeine=1 Then
    DrawImage Spieler_nurBeine_RoteHose,Sp_X#,Sp_Y#
   EndIf
   If ItemId_AusruestungGuertel=0 Then
    DrawImage Spieler_Sprung_nurGuertel,Sp_X#,Sp_Y#-113,frmSpSpr_rechts
   EndIf
   If ItemId_AusruestungOberkoerper=0 Then
    DrawImage Spieler_Sprung_nurOberkoerper,Sp_X#,Sp_Y#-113,frmSpSpr_rechts
   EndIf
   If ItemId_AusruestungKopf=0 Then
    DrawImage Spieler_Sprung_nurKopf,Sp_X#,Sp_Y#-113,frmSpSpr_rechts
   EndIf
   If ItemId_Waffen_Schwert=1 Then
    DrawImage Spieler_Sprung_nurUebungsKatana,Sp_X#,Sp_Y#-113,frmSpSpr_rechts
    If Inventargeoffnet Then
     UebungsKatana_Ausgeruestet=True
    Else
     UebungsKatana_Ausgeruestet=False
    EndIf
   EndIf
End Function



Function Drawimages_SpielerSpringt_links()
   If ItemId_AusruestungBeine=0 Then
    DrawImage Spieler_Sprung_links_nurBeine,Sp_X#,Sp_Y#-113,frmSpSpr_links
   EndIf
   If ItemId_AusruestungBeine=1 Then
    DrawImage Spieler_nurBeine_RoteHose,Sp_X#,Sp_Y#
   EndIf
   If ItemId_AusruestungGuertel=0 Then
    DrawImage Spieler_Sprung_links_nurGuertel,Sp_X#,Sp_Y#-113,frmSpSpr_links
   EndIf
   If ItemId_AusruestungOberkoerper=0 Then
    DrawImage Spieler_Sprung_links_nurOberkoerper,Sp_X#,Sp_Y#-113,frmSpSpr_links
   EndIf
   If ItemId_AusruestungKopf=0 Then
    DrawImage Spieler_Sprung_links_nurKopf,Sp_X#,Sp_Y#-113,frmSpSpr_links
   EndIf
   If ItemId_Waffen_Schwert=1 Then
    DrawImage Spieler_Sprung_links_nurUebungsKatana,Sp_X#,Sp_Y#-113,frmSpSpr_links
    If Inventargeoffnet Then
     UebungsKatana_Ausgeruestet=True
    Else
     UebungsKatana_Ausgeruestet=False
    EndIf
   EndIf
End Function

 

Function Drawimages_Spieler_attackiert1_links()
   If ItemId_Waffen_Schwert=1 Then
    DrawImage Spieler_attackiert1_nurUebungsKatana_links,Sp_X#-45,Sp_Y#,frmSp_attacke_links
    If Inventargeoffnet Then
     UebungsKatana_Ausgeruestet=True
    Else
     UebungsKatana_Ausgeruestet=False
    EndIf
   EndIf
   If ItemId_AusruestungBeine=0 Then
    DrawImage Spieler_attackiert1_nurBeine_links,Sp_X#-45,Sp_Y#,frmSp_attacke_links
   EndIf
   If ItemId_AusruestungBeine=1 Then
    ;
   EndIf
   If ItemId_AusruestungGuertel=0 Then
    DrawImage Spieler_attackiert1_nurGuertel_links,Sp_X#-45,Sp_Y#,frmSp_attacke_links
   EndIf
   If ItemId_AusruestungOberkoerper=0 Then
    DrawImage Spieler_attackiert1_nurOberkoerper_links,Sp_X#-45,Sp_Y#,frmSp_attacke_links
   EndIf
   If ItemId_AusruestungKopf=0 Then
    DrawImage Spieler_attackiert1_nurKopf_links,Sp_X#-45,Sp_Y#,frmSp_attacke_links
   EndIf
End Function 



Function Drawimages_Spieler_attackiert1_rechts()
   If ItemId_Waffen_Schwert=1 Then
    DrawImage Spieler_attackiert1_nurUebungsKatana,Sp_X#,Sp_Y#,frmSp_attacke
    If  MilliSecs() > tmrSp_attacke + 200 Then
      tmrSp_attacke = MilliSecs()
      frmSp_attacke = (frmSp_attacke + 1) Mod 7
    EndIf
    If Inventargeoffnet Then
     UebungsKatana_Ausgeruestet=True
    Else
     UebungsKatana_Ausgeruestet=False
    EndIf
   EndIf
   If ItemId_AusruestungBeine=0 Then
    DrawImage Spieler_attackiert1_nurBeine,Sp_X#,Sp_Y#,frmSp_attacke
   EndIf
   If ItemId_AusruestungBeine=1 Then
    ;
   EndIf
   If ItemId_AusruestungGuertel=0 Then
   If frmSp_attacke=3 Then
     DrawImage Spieler_nurGuertel,Sp_X#+2,Sp_Y#
   ElseIf frmSp_attacke=4 Then
     DrawImage Spieler_nurGuertel,Sp_X#+5,Sp_Y#+1
   Else
     DrawImage Spieler_nurGuertel,Sp_X#,Sp_Y#
   EndIf
   EndIf
   If ItemId_AusruestungOberkoerper=0 Then
    DrawImage Spieler_attackiert1_nurOberkoerper,Sp_X#,Sp_Y#,frmSp_attacke
   EndIf
   If ItemId_AusruestungKopf=0 Then
    If frmSp_attacke=2 Or frmSp_attacke=4 Then
     DrawImage Spieler_nurKopf,Sp_X#+2,Sp_Y#+1
    ElseIf frmSp_attacke=3 Then
     DrawImage Spieler_nurKopf,Sp_X#+5,Sp_Y#+1
    Else
     DrawImage Spieler_nurKopf,Sp_X#,Sp_Y#
    EndIf
   EndIf
End Function 



Function Drawimages_Spieler_attackiert2_links()
   If ItemId_Waffen_Schwert=1 Then
    DrawImage Spieler_attackiert2_nurUebungsKatana_links,Sp_X#-45,Sp_Y#-3,frmSp_attacke2_links
    If Inventargeoffnet Then
     UebungsKatana_Ausgeruestet=True
    Else
     UebungsKatana_Ausgeruestet=False
    EndIf
   EndIf
   If ItemId_AusruestungBeine=0 Then
    DrawImage Spieler_attackiert2_nurBeine_links,Sp_X#-45,Sp_Y#-3,frmSp_attacke2_links
   EndIf
   If ItemId_AusruestungBeine=1 Then
    ;
   EndIf
   If ItemId_AusruestungGuertel=0 Then
    DrawImage Spieler_attackiert2_nurGuertel_links,Sp_X#-45,Sp_Y#-3,frmSp_attacke2_links
   EndIf
   If ItemId_AusruestungOberkoerper=0 Then
    DrawImage Spieler_attackiert2_nurOberkoerper_links,Sp_X#-45,Sp_Y#-3,frmSp_attacke2_links
   EndIf
   If ItemId_AusruestungKopf=0 Then
    DrawImage Spieler_attackiert2_nurKopf_links,Sp_X#-45,Sp_Y#-3,frmSp_attacke2_links
   EndIf
End Function 



Function Drawimages_Spieler_attackiert2_rechts()
   If ItemId_Waffen_Schwert=1 Then
    DrawImage Spieler_attackiert2_nurUebungsKatana,Sp_X#,Sp_Y#-3,frmSp_attacke2
    If Inventargeoffnet Then
     UebungsKatana_Ausgeruestet=True
    Else
     UebungsKatana_Ausgeruestet=False
    EndIf
   EndIf
   If ItemId_AusruestungBeine=0 Then
    DrawImage Spieler_attackiert2_nurBeine,Sp_X#,Sp_Y#-3,frmSp_attacke2
   EndIf
   If ItemId_AusruestungBeine=1 Then
    ;
   EndIf
   If ItemId_AusruestungGuertel=0 Then
    DrawImage Spieler_attackiert2_nurGuertel,Sp_X#,Sp_Y#-3,frmSp_attacke2
   EndIf
   If ItemId_AusruestungOberkoerper=0 Then
    DrawImage Spieler_attackiert2_nurOberkoerper,Sp_X#,Sp_Y#-3,frmSp_attacke2
   EndIf
   If ItemId_AusruestungKopf=0 Then
    DrawImage Spieler_attackiert2_nurKopf,Sp_X#,Sp_Y#-3,frmSp_attacke2
   EndIf
End Function 



Function EingabeFenster()
 Color 20,20,20
 Rect 300,200,130,50
 Color 200,200,200
 Rect 300,200,130,50,0
 Color 15,15,15
 Rect 315,225,80,20,0
 Color 10,10,10
 Rect 316,226,78,18,0
 Color 5,5,5
 Rect 317,227,76,16,0
 Text 302,200,"Wie viel Items willst"
 Text 302,210,"du verschieben?"
 If Rechnung> 100000000 Then
  zehn=1
  Za=0
 Else
  zehn=10
 EndIf
 If KeyHit(2) Then
  Za=1
  Zahlenerhoe=True
 EndIf
 If KeyHit(3) Then
  Za=2
  Zahlenerhoe=True
 EndIf
 If KeyHit(4) Then
  Za=3
  Zahlenerhoe=True
 EndIf
 If KeyHit(5) Then
  Za=4
  Zahlenerhoe=True
 EndIf
 If KeyHit(6) Then
  Za=5
  Zahlenerhoe=True
 EndIf
 If KeyHit(7) Then
  Za=6
  Zahlenerhoe=True
 EndIf
 If KeyHit(8) Then
  Za=7
  Zahlenerhoe=True
 EndIf
 If KeyHit(9) Then
  Za=8
  Zahlenerhoe=True
 EndIf
 If KeyHit(10) Then
  Za=9
  Zahlenerhoe=True
 EndIf
 If KeyHit(11) Then
  Za=0
  Zahlenerhoe=True
 EndIf
 If KeyHit(14) Then
  Rechnung=Rechnung/10-Za
  blinkX=blinkX-7
 EndIf
 If   Zahlenerhoe=True Then
  Rechnung=Rechnung*zehn+Za
  If zehn=10 Then
   blinkX=blinkX+7
  EndIf
    Zahlenerhoe=0
 EndIf
 Text 317,228,Rechnung
 SetFarbe(WEISS)
 If MilliSecs()>Blinktrm+700 Then
  Blink=True
  Blinktrm=MilliSecs()
 EndIf
 If Blink Then
  Line blinkX,228,blinkX,241
  If MilliSecs()>Blinktrm2+700 Then
   Blink=False
   Blinktrm2=MilliSecs()
  EndIf
 EndIf
 If KeyDown(28) Or KeyDown(156) And Rechnung<AnzItem Then
  EingabeFensterakt=False
 EndIf
End Function



Function LeseZeile$(Nr%, DateiName$)
	DebugLog "Es wird nach der Gewünschenzeile gesucht: "+Nr%+" in der Datei: "+DateiName$
	Local Zeile$ , i% , Datei%
	Datei=ReadFile(DateiName)                         ;Datei öffnen
	For i=1 To Nr                                     ;gewünschte Zeile finden
		Zeile=ReadLine$(Datei)
		DebugLog "Zeile gefunden: "+zeile
	Next
	CloseFile Datei
	Return Zeile
End Function

 

Function HoleItemBeschreibung(ID%)
	Local Von% , Bis% , Zeile$, i%
	DebugLog "Lade Item Bechreibung von Item : "+ID%
	Zeile= LeseZeile(ID%, "Sources\items.txt")     ;Zeile der gewünschen Itembeschreibung lesen
	Von=1
	For i=0 To 4                                   ;Bis zu 4 Zeilen Definieren
		Bis=Instr(Zeile,"|", Von)
		ItemBeschreibung(i)=Mid(Zeile , Von , Bis-Von)
		Von = Bis+1
	Next
End Function



Function LadeTipps()
	DebugLog "Lade Tipps"
	Datei=ReadFile("Sources\tipps.txt") 
	For i=0 To AnzahlTipps
		Tipps(i)=ReadLine
		If Not Eof Then 
			Return AnzahlTipps=AnzahlTipps+1
		EndIf
	Next
	CloseFile Datei
	DebugLog "Es wurden "+AnzahlTipps+" gefunden."
	Return
End Function



Function HoleDialogText(ID%)
	Local Von% , Bis% , Zeile$, i%
	DebugLog "Lade Dialog : "+ID%
	Zeile= LeseZeile(ID%, "Sources\dialog.txt") ;Zeile des gewünschten Dialogs lesen
	Von=1
	For i=0 To 8                                ;Bis zu 8 Zeilen Definieren
		Bis=Instr(Zeile,"|", Von)
		Print von + " " + bis
		DialogZeile(i)=Mid(Zeile , Von , Bis-Von)
		Von = Bis+1
	Next
End Function



Function ItemRahmenBox(x,y)
	SetFarbe HELL_GRAU
	Rect x+25,-45,60,60,0
	SetFarbe FAST_SCHWARZ
	Rect x+25+1,y-44-1,60-2,60-2,1
	SetFarbe HELL_GRAU
End Function

Function SetFarbe(Farbe%)
	Select Farbe
		Case HELL_GRAU
			Color 200,200,200
		Case FAST_SCHWARZ
			Color 20,20,20
		Case DUNKEL_LILA_BRAUN
			Color 48,31,36
		Case WEISS
			Color 255,255,255
		Case SCHWARZ
			Color 1,1,1
		Case LILA
			Color 100,35,155
		Case GRAU
			Color 125,125,125
		Case DUNKLERES_GRAU
			Color 80,80,80
		Case GRAU_BLAU
			Color 185,185,215
		Case ROT
			Color 255,5,5
		Case GRUEN
			Color 10,150,10
		Case HELL_GRUEN
			Color 0,250,0
		Case DUNKEL_GRUEN
			Color 0,100,0
		Case GIFT_GRUEN
			Color 82,220,0
		Case GRAU_125
			Color 125,125,125
		Case GRAU_80
			Color 80,80,80
		Case GRAU_90
			Color 90,90,90
		Case GRAU_115
			Color 115,115,115
		Case GRAU_130
			Color 130,130,130
		Case GRUEN_160
			Color 10,160,10
		Case GRUEN_170
			Color 10,170,10
		Case GRUEN_180
			Color 10,180,10
		Case GRUEN_190
			Color 10,190,10
		Case SEHR_HELLES_GRAU
			Color 230,230,230
		Case FAST_HELL_GRAU
			Color 170,170,170
		Case FAST_SEHR_HELLES_GRAU
			Color 215,215,215
	End Select
End Function

Function ItemBeschreibungDarstellen(X%,Y%,ID%)
	ItemRahmenBox X,Y 
	SetFont Font_C
	HoleItemBeschreibung ID
	For i=0 To 4
		Text X+27,Y+12*i,ItemBeschreibung(i)
	Next
End Function  


Function Auto_Speichern_Spielstand()
      	Text 10,10,"Wird gespeichert !"
      	tmrSpeichern = MilliSecs()
      	ChangeDir Save_Pfad$
		SpeichereSpielStand  "Sp_auto.save"
End Function



Function SpeichereSpielStand(DateiName$)
	Local File%,
	
	File = WriteFile(DateiName)
       WriteInt file, Sp_Y#
       WriteInt file, Sp_X#
       WriteInt file, Pfal1X#
       WriteString file, "Stadt"
       WriteInt file,WeltX#
       WriteInt file,TuerSchmiedeX#
       WriteInt file,TuerHdAX#
       WriteInt file,DonjoTuerX#
       WriteInt file,St1SchneeX
       For i=0 To 16
       		WriteInt file,Bx# i
       Next
       WriteInt file,Wetter
       WriteInt file,ItemId_AusruestungBeine
       WriteInt file,ItemId_AusruestungGuertel
       WriteInt file,ItemId_AusruestungOberkoerper
       WriteInt file,ItemId_AusruestungKopf
       WriteInt file,ItemId_Waffen_Schwert
       WriteInt file,Anzeige
       WriteInt file,Einfuehrung1
       WriteInt file,Einfuehrung
       WriteInt file,Gold
       WriteInt file,ItemIn1
       WriteInt file,TXT
      CloseFile file 
End Function 



Function Speichern_Spielstand()
	For Sp.Speicherplaetze = Each Speicherplaetze
		 If RectsOverlap(Sp\x,Sp\y,75,105,MouseX(),MouseY(),1,1) Then
			If mb>0 Then
			   	Text 10,10,"Wird gespeichert !"
			   	tmrSpeichern = MilliSecs()
			   	ChangeDir Save_Pfad$
				SpeichereSpielStand  Sp\Name
				
			EndIf
			Sp\R=200
			Sp\G=0
			Sp\B=0
			If KeyDown(211) Then
				DeleteFile Save_Pfad$+Sp\Name$
				Goto Menue
			EndIf
		Else
			Sp\R=82
			Sp\G=220
			Sp\B=0
		EndIf
	Next
End Function


Function Lade_Spielstand_aus_Datei%(DateiName$)
	DebugLog "Spielstand Datei wird gelesen: "+DateiName$
	file = ReadFile(DatiName)
	If file=0 Then
		Return 0
	Else
   		aSp_Y#=ReadInt(file)
   		aSp_X#=ReadInt(file)
   		aPfal1X#=ReadInt(file)
   		aOrt$=ReadString$(file)
   		aWeltX#=ReadInt(file)
   		aTuerSchmiedeX#=ReadInt(file)
   		aTuerHdAX#=ReadInt(file)
   		aDonjoTuerX#=ReadInt(file)
   		aSt1SchneeX=ReadInt(file)
   		For i=0 To 16
    		aBx#(i)=ReadInt(file)
   		Next
   		aItemId_AusruestungBeine=ReadInt(file)
   		aItemId_AusruestungGuertel=ReadInt(file)
   		aItemId_AusruestungOberkoerper=ReadInt(file)    
   		aItemId_AusruestungKopf=ReadInt(file)
   		aItemId_Waffen_Schwert=ReadInt(file)
   		aAnzeige=ReadInt(file)
   		aEinfuehrung1=ReadInt(file)
   		aEinfuehrung=ReadInt(file)
   		aGold=ReadInt(file)
  		CloseFile file
	EndIf
	Return 1
End Function 



Function Laden_Spielstand()
		ChangeDir Save_Pfad$
		For Sp.Speicherplaetze = Each Speicherplaetze
		 	If Lade_Spielstand_aus_Datei(Sp\Name$)=0
			  	SetFont Font_G
		  		Text Sp\x+18,Sp\y+45,"LEER"
			Else
				
				sp\Gold=aGold
				sp\Ort=aOrt
;			  If aItemId_AusruestungBeine=1 Then
;			   DrawImage Spielergeht_nurBeine_RoteHose,Sp\x+17,Sp\y+5
;			  EndIf
;			  If aItemId_AusruestungGuertel=0 Then
;			   DrawImage Spieler_nurGuertel,Sp\x+17,Sp\y+5
;			  EndIf
;			  If aItemId_AusruestungOberkoerper=0 Then
;			   DrawImage Spieler_nurOberkoerper,Sp\x+17,Sp\y+5
;			  EndIf
;			  If aItemId_AusruestungKopf=0 Then
;			   DrawImage Spieler_nurKopf,Sp\x+17,Sp\y+5
;			  EndIf
;			  If aItemId_Waffen_Schwert=1 Then
;			   DrawImage Spieler_nurUebungsKatana,Sp\x+17,Sp\y+5
;			   If Inventargeoffnet Then
;			    DrawImage UebungsKatanaAusgeruestet,Sp\x+17,Sp\y+5
;			   EndIf
;			  EndIf
;				If aItemId_AusruestungBeine=0 Then
;					DrawImage Spielergeht_nurBeine,Sp\x+17,Sp\y+5
;				EndIf
			EndIf 
		Next
End Function



Function ZeitBerechnen$(StartTime%)
	TimeInMillisekunden = MilliSecs()- StartTime%
	Millisekunden%=  TimeInMillisekunden Mod 1000
	Sekunden%= (TimeInMillisekunden /1000)Mod 60
	Minuten% = (TimeInMillisekunden /1000/60)Mod 60
	Stunden% = (TimeInMillisekunden /1000/60/60)Mod 60
	Tage%    = (TimeInMillisekunden /1000/60/60/24)
	Return Replace (RSet (Tage,3) +":"+RSet (Stunden,2) +":"+RSet (Minuten,2) +":"+RSet (Sekunden%,2)+","+RSet (Millisekunden%,4)," ",0)
End Function



Function ZeichneSpielerLvlBox(Erfahrung#)
	SetFarbe(SCHWARZ)
	Rect 0,440,640,60
	
	SetFarbe(LILA)
	Line 50,475,Erfahrung#,475
	
	SetFarbe(GRAU_125)
	Line 49,475,49,475
	Line 50,474,600,474
	Line 50,476,600,476
	Line 601,475,601,475
	Line 100,475,100,475
	Line 150,475,150,475
	Line 200,475,200,475
	Line 250,475,250,475
	Line 300,475,300,475
	Line 350,475,350,475
	Line 400,475,400,475
	Line 450,475,450,475
	Line 500,475,500,475
	Line 550,475,550,475
	Line 600,475,600,475
	
	SetFarbe(ROT)
	Rect 0,440,640,40,0
	Rect 0,440,640,40,0
	
	SetFarbe(GRAU_80)
	Rect 586,445,29,24,1
	Rect 542,445,29,24,1
	Rect 498,445,29,24,1
	Rect 410,445,29,24,1
	Rect 454,445,29,24,1
	Rect 365,445,29,24,1
	
	SetFarbe(GRAU_90)
	Rect 586,445,29,24,0
	Rect 542,445,29,24,0
	Rect 498,445,29,24,0
	Rect 411,445,29,24,0
	Rect 454,445,29,24,0
	Rect 365,445,29,24,0
	
	SetFrabe(GRAU_115)
	Rect 587,446,27,22,0
	Rect 543,446,27,22,0
	Rect 499,446,27,22,0
	Rect 412,446,27,22,0
	Rect 455,446,27,22,0
	Rect 366,446,27,22,0
	
	SetFarbe(GRAU_130)
	Rect 588,447,25,20,0
	Rect 544,447,25,20,0
	Rect 500,447,25,20,0
	Rect 413,447,25,20,0
	Rect 456,447,25,20,0
	Rect 367,447,25,20,0
End Function



Function ZeichneSpielerLebenBox(Sp_Leben#,Sp_Max_Leben,Sp_max_Leben_Erweit)
	SetFarbe(GRUEN)
	Rect 250,450,100*Sp_Leben#/Sp_Max_Leben,15,1
	SetFarbe(GRUEN_160)
	Rect 247,450,Sp_max_Leben+6-Sp_max_Leben_Erweit,15,0
	SetFarbe(GRUEN_170)
	Rect 248,451,Sp_max_Leben+4-Sp_max_Leben_Erweit,13,0
	SetFarbe(GRUEN_180)
	Rect 249,452,Sp_max_Leben+2-Sp_max_Leben_Erweit,11,0
	SetFarbe(GRUEN_190)
	Rect 250,453,Sp_max_Leben,9-Sp_max_Leben_Erweit,0
	SetFarbe(WEISS)
End Function



Function ZeichneTippBox()
	SetFarbe(SCHWARZ)
	Rect 0,0,640,25
	Line 1,2,640,2
	SetFarbe(HELL_GRUEN)
	Text T_x,5,TippText$
	SetFarbe(WEISS)
	Line 1,18,640,18
End Function



Function ZeigeZeit()
	SetFarbe(DUNKEL_GRUEN)
	Text 300,40,"Gametime:"
	Text 300,55, ZeitBerechnen$(StartTime%)
	Text 300,70,"Realtime:"
	Text 300,85, CurrentTime$()
End Function



Function TitelScreen()

	DrawImage Titel_Bild,0,0
		Local MausY%, Button%
		MausY=MouseY()-150
		If MouseX()>168 And MouseX()<450
				Button=Int(MausY/50)
				If (MausY - Button*50) < 36 Then
					Button=Button+1
				Else
					Button=0
				EndIf
		EndIf
		
		If Button>0 And Button<6					
			SetFarbe DUNKEL_LILA_BRAUN
			Rect 230,150+Button*50+28-50,200,2
		EndIf
		
		If MouseHit(1)	
			Select Button
				Case 1
					;  Goto Stadt
				Case 2
					;Goto Sp_Laden
				Case 3
					Text 10,10,"OHO"
				Case 4
					Text 10,10,"...?..."
				Case 5
					End
			End Select
		EndIf
End Function



Function SlotsErstellen()
	Local X%,Y%
	For Y=0 To 4
		For x = 0 To 4
			slotInventar.Slots = New Slots
			slotInventar\x = 131 + 37 * x
			slotInventar\y = 47 + 28 * y

			slotInventar.Slots = New Slots
			slotInventar\x = 368 + 37 * x
			slotInventar\y = 47 + 28 * y
		Next
	Next
End Function 



Function WiederBeleben()
	If Gestorben Then
		Sp_Leben#=Sp_max_Leben
		Gestorben=False
	EndIf
End Function 



Function ErstelleSpeicherplaetze()
	If keineSpeicherplaetze=False Then

		For x=0 To 18
			For j=0 To 8
				Sp.Speicherplaetze = New Speicherplaetze
				Sp\X = 10+85*x
				Sp\Y = 10+125*y
				Sp\Name$="Sp_"+Zahl+".save"
				Zahl=Zahl+1
			Next
		Next

		keineSpeicherplaetze=True

		For Sp.Speicherplaetze = Each Speicherplaetze
			If Sp\Name$="Sp_0.save" Then
				Sp\Name$="Sp_auto.save"
			EndIf
		Next

	EndIf
End Function



Function BalkenY_Bestimmen()
	If KeyDown(208)
		 BalkenY=BalkenY+1
	EndIf

	If KeyDown(200) And nichtOben Then
 		BalkenY=BalkenY-1
	EndIf

	If RectsOverlap(620,BalkenY,10,10,MouseX(),MouseY(),1,1) And RectsOverlap(620,26,10,439,MouseX(),MouseY(),1,1) Then
		If MouseDown(1) Then
			BalkenY=MouseY()-5
		EndIf
	EndIf

	If RectsOverlap(620,26,10,439,MouseX(),MouseY(),1,1) Then
		If MouseDown(1) Then
			  If Not RectsOverlap(620,BalkenY,10,10,MouseX(),MouseY(),1,1) Then
				  BalkenY=MouseY()
			  EndIf
	 	EndIf
	EndIf

    If BalkenY<0 Then BalkenY=0
    If BalkenY>478 Then BalkenY=478
End Function



Function ScrollbarMalen()

	SetFarbe(FAST_HELL_GRAU)
	Rect 620,10,10,470,0
	Rect 620,10,10,10,0
	Rect 620,470,10,10,0
	Rect 620,BalkenY,10,10
	SetFarbe(GRAU_BLAU)
	Rect 620+1,BalkenY+1,8,8,0
	SetFarbe(HELL_GRAU)
	Rect 620+2,BalkenY+2,6,6,0
	SetFarbe(FAST_SEHR_HELLES_GRAU)
	Rect 620+3,BalkenY+3,4,4,0
	SetFarbe(SEHR_HELLES_GRAU)
	Rect 620+4,BalkenY+4,2,2,0
	
	
End Function



Function SpeicherpleatzeMalen()
DebugLog "SpeicherPlätze werden gemalt ..."
	For Sp.Speicherplaetze = Each Speicherplaetze
		SetFarbe Sp\Farbe
		Rect Sp\x,Sp\y-BalkenY,75,105,0
		SetFont Font_F
		Text Sp\x+5,Sp\y+75-BalkenY,"Ort: " + sp\Ort
		Text Sp\x+5,Sp\y+83-BalkenY,"Gold: " + sp\Gold
		Text Sp\x+5,Sp\y+91-BalkenY,""
		SetFont Font_F
		Text Sp\x+5,Sp\y+102-BalkenY,Sp\Name$
		SpielerFigurMalen
	Next
End Function



Function SpielerFigurMalen()
End Function



Function SaveKlickAktionPruefen()
	If RectsOverlap(550,450,50,25,MouseX(),MouseY(),1,1) Then
	SetFarbe(ROT)
		If mb>0 Then
			Speicherplatz_Anzahl = WriteFile("Sp_Anzahl.XD")
			WriteInt(Speicherplatz_Anzahl, Sp_Anzahl)
			Speichern_Spielstand()
			Goto Menue
		EndIf
	Else
		SetFarbe(GIFT_GRUEN)
	EndIf
End Function



Function SpeicherButtonsMalen()
	SetFont Font_G
	Rect 550,450,50,25,0
	Text 565,455,"OK"
	SetFarbe(GIFT_GRUEN)
End Function