;===============================================================================
;
; Beschreibung: Diese Funktion speichert 16bit Graustufen in eine von Metin2 lesbare
; Heightmap um und speichert diese unter dem angegebenen Pfad
; Parameter(s):
; $array - Das zu übergebene Array mit den RGB Farben
; $path - Der Datenpfad, wo die einzelnen Raws gespeichert werden sollen
; $qx - Gibt die größe in 131px große Quadrate an(X)
; $qy - Gibt die größe in 131px große Quadrate an(Y)
;
; Rückgabe:
; 1: erfolgreich
; 0: error (siehe Errors)
; Errors:
; 0: alles in Ordnung
; 1: Quadrat error
; 2: datei error
; 3: Array error
; Author(s): Mario2323 ([GA]Mario von NRGMetin2)
; Note(s): Konvertierung von allen Bilddatein in Raw datein
;===============================================================================
Func _savefile($array, $path, $qx, $qy)
Local $filetext
ProgressOn("Progress Bar", "Speichere Raw in : " & $qx & " x " & $qy & "", " Quadrate. 0 %")
$index = $qx - 1
$index2 = $qy - 1
For $xx = 1 To $qx
For $xy = 1 To $qy
For $zeile = ($xx * 130 - 130 + $xx - 1) To (130 * $xx + $xx - 1)
For $spalte = ($xy * 130 - 130 + $xy - 1) To (130 * $xy + $xy - 1) ;2 Byte = ein pixel
$dec = Dec($array[$zeile][$spalte])
$c = $dec / 256 / 256 / 256
$bit16 = $c * 256
$lowbyte = 0
$highbyte = $bit16
$filetext &= Chr($lowbyte) & Chr($highbyte)
Next
Next
DirCreate($path & "00" & ($xx - 1) & "00" & ($xy - 1))
$Datei = FileOpen($path & "00" & ($xx - 1) & "00" & ($xy - 1) & "/height.raw", 18) ;binärmodus lesen
FileWrite($Datei, $filetext)
FileClose($Datei)
Local $filetext = ""
ProgressSet(Int(100 * ($xx + $xy) / ($qx + $qy)), Int(100 * ($xx + $xy) / ($qx + $qy)) & " %")
Next
Next
ProgressOff()
EndFunc ;==>_savefile