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>
This commit is contained in:
sigonasr2 2022-06-23 23:44:38 -05:00
parent b1919b54d4
commit 7dfd9bd4e3
4 changed files with 11 additions and 8 deletions

Binary file not shown.

View File

@ -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]+".");
}

View File

@ -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:
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;
}

View File

@ -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);
}