|
|
@ -15,7 +15,6 @@ import engine.gameManager.ZoneManager; |
|
|
|
import engine.math.Vector2f; |
|
|
|
import engine.math.Vector2f; |
|
|
|
import engine.math.Vector3fImmutable; |
|
|
|
import engine.math.Vector3fImmutable; |
|
|
|
import engine.objects.Zone; |
|
|
|
import engine.objects.Zone; |
|
|
|
import engine.util.MapLoader; |
|
|
|
|
|
|
|
import org.pmw.tinylog.Logger; |
|
|
|
import org.pmw.tinylog.Logger; |
|
|
|
|
|
|
|
|
|
|
|
import javax.imageio.ImageIO; |
|
|
|
import javax.imageio.ImageIO; |
|
|
@ -92,7 +91,7 @@ public class HeightMap { |
|
|
|
|
|
|
|
|
|
|
|
// We needed to flip the image as OpenGL and Shadowbane both use the bottom left corner as origin.
|
|
|
|
// We needed to flip the image as OpenGL and Shadowbane both use the bottom left corner as origin.
|
|
|
|
|
|
|
|
|
|
|
|
this.heightmapImage = MapLoader.flipImage(this.heightmapImage); |
|
|
|
// this.heightmapImage = MapLoader.flipImage(this.heightmapImage);
|
|
|
|
|
|
|
|
|
|
|
|
// Calculate the data we do not load from table
|
|
|
|
// Calculate the data we do not load from table
|
|
|
|
|
|
|
|
|
|
|
@ -122,14 +121,11 @@ public class HeightMap { |
|
|
|
this.outsetX = 128; |
|
|
|
this.outsetX = 128; |
|
|
|
this.outsetZ = 128; |
|
|
|
this.outsetZ = 128; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Cache the full extents to avoid the calculation
|
|
|
|
// Cache the full extents to avoid the calculation
|
|
|
|
|
|
|
|
|
|
|
|
this.fullExtentsX = halfExtentsX * 2; |
|
|
|
this.fullExtentsX = halfExtentsX * 2; |
|
|
|
this.fullExtentsY = halfExtentsY * 2; |
|
|
|
this.fullExtentsY = halfExtentsY * 2; |
|
|
|
|
|
|
|
|
|
|
|
// We needed to flip the image as OpenGL and Shadowbane both use the bottom left corner as origin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.heightmapImage = null; |
|
|
|
this.heightmapImage = null; |
|
|
|
|
|
|
|
|
|
|
|
// Calculate the data we do not load from table
|
|
|
|
// Calculate the data we do not load from table
|
|
|
@ -163,8 +159,6 @@ public class HeightMap { |
|
|
|
this.fullExtentsX = halfExtentsX * 2; |
|
|
|
this.fullExtentsX = halfExtentsX * 2; |
|
|
|
this.fullExtentsY = halfExtentsY * 2; |
|
|
|
this.fullExtentsY = halfExtentsY * 2; |
|
|
|
|
|
|
|
|
|
|
|
// We needed to flip the image as OpenGL and Shadowbane both use the bottom left corner as origin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.heightmapImage = null; |
|
|
|
this.heightmapImage = null; |
|
|
|
|
|
|
|
|
|
|
|
// Calculate the data we do not load from table
|
|
|
|
// Calculate the data we do not load from table
|
|
|
@ -325,7 +319,6 @@ public class HeightMap { |
|
|
|
|
|
|
|
|
|
|
|
HeightMap.GeneratePlayerCityHeightMap(); |
|
|
|
HeightMap.GeneratePlayerCityHeightMap(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Clear all heightmap image data as it's no longer needed.
|
|
|
|
// Clear all heightmap image data as it's no longer needed.
|
|
|
|
|
|
|
|
|
|
|
|
for (HeightMap heightMap : HeightMap.heightmapByLoadNum.values()) { |
|
|
|
for (HeightMap heightMap : HeightMap.heightmapByLoadNum.values()) { |
|
|
@ -351,14 +344,18 @@ public class HeightMap { |
|
|
|
if (zoneLoc.x < 0) |
|
|
|
if (zoneLoc.x < 0) |
|
|
|
zoneLoc.setX(0); |
|
|
|
zoneLoc.setX(0); |
|
|
|
|
|
|
|
|
|
|
|
if (zoneLoc.x > this.fullExtentsX - 1) |
|
|
|
if (zoneLoc.x >= this.fullExtentsX) |
|
|
|
zoneLoc.setX((this.fullExtentsX - 1) + .9999999f); |
|
|
|
zoneLoc.setX(this.fullExtentsX); |
|
|
|
|
|
|
|
|
|
|
|
if (zoneLoc.y < 0) |
|
|
|
if (zoneLoc.y < 0) |
|
|
|
zoneLoc.setY(0); |
|
|
|
zoneLoc.setY(0); |
|
|
|
|
|
|
|
|
|
|
|
if (zoneLoc.y > this.fullExtentsY - 1) |
|
|
|
if (zoneLoc.y > this.fullExtentsY) |
|
|
|
zoneLoc.setY((this.fullExtentsY - 1) + .9999999f); |
|
|
|
zoneLoc.setY(this.fullExtentsY); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Flip Y coordinates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
zoneLoc.setY(this.fullExtentsY - zoneLoc.y); |
|
|
|
|
|
|
|
|
|
|
|
float xBucket = (zoneLoc.x / this.bucketWidthX); |
|
|
|
float xBucket = (zoneLoc.x / this.bucketWidthX); |
|
|
|
float yBucket = (zoneLoc.y / this.bucketWidthY); |
|
|
|
float yBucket = (zoneLoc.y / this.bucketWidthY); |
|
|
|