Data tiles now working. Corrected from 16 bit to 14 bit data reading

Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com>
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
sigonasr2 3 years ago
parent b1919b54d4
commit 7dfd9bd4e3
  1. BIN
      maps/world1.map
  2. 8
      src/sig/map/Map.java
  3. 9
      src/sig/objects/EditorRenderer.java
  4. 2
      src/sig/objects/LevelRenderer.java

Binary file not shown.

@ -230,7 +230,7 @@ public class Map {
}
public void ModifyDataTile(int x,int y,DataTile t) {
if (data[y*Map.MAP_WIDTH+x]<32768) {
if (data[y*Map.MAP_WIDTH+x]<8192) {
DataTile prevTile = DataTile.values()[data[y*Map.MAP_WIDTH+x]];
if (prevTile.ordinal()==0) {
eventTileCount++;
@ -248,10 +248,10 @@ public class Map {
public void ModifyDataTile(int x, int y, char value) {
eventTileCount++;
if (value>32767) {
value=32767;
if (value>8192) {
value=8192;
}
data[y*Map.MAP_WIDTH+x]=(char)(value+32768);
data[y*Map.MAP_WIDTH+x]=(char)(value+8192);
System.out.println("Tile "+(y*MAP_WIDTH+x)+" is now "+data[y*MAP_WIDTH+x]+".");
}

@ -146,7 +146,7 @@ public class EditorRenderer extends LevelRenderer{
}
if (dataTileView) {
drawMapTileForDataTileMode(p,x,y);
if (RabiClone.CURRENT_MAP.getDataTileValue(x, y)>=32768) {
if (RabiClone.CURRENT_MAP.getDataTileValue(x, y)>=8192) {
DrawDataTileValue(p,x*Tile.TILE_WIDTH-this.getX(),y*Tile.TILE_HEIGHT-this.getY(),RabiClone.CURRENT_MAP.getDataTileValue(x, y));
} else if (RabiClone.CURRENT_MAP.getDataTile(x, y)!=DataTile.NULL) {
DrawDataTile(p,x*Tile.TILE_WIDTH-this.getX(),y*Tile.TILE_HEIGHT-this.getY(),RabiClone.CURRENT_MAP.getDataTile(x, y));
@ -240,7 +240,7 @@ public class EditorRenderer extends LevelRenderer{
protected void DrawTransparentDataTile(byte[] p, double x, double y, char tile,PaletteColor col) {
Draw_Rect(p,col,x,y,Tile.TILE_WIDTH,Tile.TILE_HEIGHT);
Draw_Text_Ext(x+2,y+2,new String("V:").append(Integer.toString(tile-32768)),Font.PROFONT_12,Alpha.ALPHA0,PaletteColor.WHITE);
Draw_Text_Ext(x+2,y+2,new String("V:").append(Integer.toString(tile-8192)),Font.PROFONT_12,Alpha.ALPHA0,PaletteColor.WHITE);
}
protected void DrawDataTile(byte[] p, double x, double y, DataTile tile) {
@ -285,7 +285,9 @@ public class EditorRenderer extends LevelRenderer{
case _7:
case _8:
case _9:
dataTileValue=dataTileValue.append(a.toString().replace("_",""));
if (inputDataTileValue) {
dataTileValue=dataTileValue.append(a.toString().replace("_",""));
}
break;
case BACKSPACE:{
if (dataTileValue.length()>0) {
@ -295,6 +297,7 @@ public class EditorRenderer extends LevelRenderer{
case ENTER:{
inputDataTileValue=false;
RabiClone.CURRENT_MAP.ModifyDataTileValue(tileX, tileY, (char)Integer.parseInt(dataTileValue.toString()));
inputMessageLogDisplay.clear();
dataTileValue.clear();
}break;
}

@ -45,7 +45,7 @@ public class LevelRenderer extends Object{
if (x<0||x>Map.MAP_WIDTH) {
continue;
}
if (RabiClone.CURRENT_MAP.getDataTileValue(x,y)<32768&&RabiClone.CURRENT_MAP.getDataTile(x,y)!=DataTile.NULL) {
if (RabiClone.CURRENT_MAP.getDataTileValue(x,y)<8192&&RabiClone.CURRENT_MAP.getDataTile(x,y)!=DataTile.NULL) {
if (!RabiClone.CURRENT_MAP.getDataTile(x,y).perform(x*Tile.TILE_WIDTH,y*Tile.TILE_HEIGHT)) {
RabiClone.CURRENT_MAP.ModifyDataTile(x, y, DataTile.NULL);
}

Loading…
Cancel
Save