diff --git a/hmp2obj/hmp2obj.lpi b/hmp2obj/hmp2obj.lpi
index 234e8e5..edec08e 100644
--- a/hmp2obj/hmp2obj.lpi
+++ b/hmp2obj/hmp2obj.lpi
@@ -17,9 +17,6 @@
-
-
-
@@ -36,12 +33,10 @@
-
-
@@ -55,12 +50,6 @@
-
-
-
-
-
-
diff --git a/hmp2obj/hmp2obj.lpr b/hmp2obj/hmp2obj.lpr
index 534954e..9b6266a 100644
--- a/hmp2obj/hmp2obj.lpr
+++ b/hmp2obj/hmp2obj.lpr
@@ -35,6 +35,7 @@ begin
writeln('tile size: ', world.TileWidth, 'x', world.TileHeight);
world.ExportToObj('heightmap.obj');
+ world.ExportToRaw('heightmap.raw');
writeln('world exported');
world.Free;
diff --git a/hmp2obj/rs_world.pas b/hmp2obj/rs_world.pas
index c8be78d..e0abe28 100644
--- a/hmp2obj/rs_world.pas
+++ b/hmp2obj/rs_world.pas
@@ -65,6 +65,7 @@ type
procedure LoadFromFiles(const hmp, tex, texmap: string);
procedure ExportToObj(const objfname: string);
+ procedure ExportToRaw(const rawfname: string);
constructor Create;
destructor Destroy; override;
@@ -347,7 +348,6 @@ var
v: TVertex3f;
x, y, stride: integer;
i2, i3: integer;
- texfname: string;
begin
AssignFile(f, objFname);
Rewrite(f);
@@ -405,6 +405,22 @@ begin
WriteToObj(objfname);
end;
+procedure TWorld.ExportToRaw(const rawfname: string);
+var
+ f: file;
+ image_size, i: integer;
+ y: Byte;
+begin
+ AssignFile(f, rawfname);
+ Rewrite(f,1);
+ image_size := heightmap.width * heightmap.height;
+ for i := 0 to image_size - 1 do begin
+ y := 255 - height_texture[i]; //negative scale - Unity uses it like this, for example
+ BlockWrite(f, y, 1);
+ end;
+ CloseFile(f);
+end;
+
constructor TWorld.Create;
begin
height_texture := nil;