diff --git a/src/main/java/bwapi/Color.java b/src/main/java/bwapi/Color.java index 1f6b2c48..24da6c36 100644 --- a/src/main/java/bwapi/Color.java +++ b/src/main/java/bwapi/Color.java @@ -97,7 +97,7 @@ RGBRESERVE, RGBRESERVE, RGBRESERVE, RGBRESERVE, RGBRESERVE, RGBRESERVE, RGBRESER }; private static boolean rgbInitialized; - private static final byte[][][] closestColor = new byte[64][64][64]; + private static final int[][][] closestColor = new int[64][64][64]; public final int id; @@ -133,9 +133,9 @@ private static int getBestIdFor(final int red, final int green, final int blue) if (p.rgbReserved != 0) { continue; } - final int r = red - p.rgbRed; - final int g = green - p.rgbGreen; - final int b = blue - p.rgbBlue; + final int r = red - (int) p.rgbRed; + final int g = green - (int) p.rgbGreen; + final int b = blue - (int) p.rgbBlue; final int distance = r * r + g * g + b * b; if (distance < min_dist) { @@ -155,23 +155,23 @@ private static int getRGBIndex(final int red, final int green, final int blue) { for (int r = 0; r < 64; ++r) { for (int g = 0; g < 64; ++g) { for (int b = 0; b < 64; ++b) { - closestColor[r][g][b] = (byte) getBestIdFor(r << 2, g << 2, b << 2); + closestColor[r][g][b] = getBestIdFor(r << 2, g << 2, b << 2); } } } } - return closestColor[(byte) (red >> 2)][(byte) (green >> 2)][(byte) (blue >> 2)]; + return closestColor[red >> 2][green >> 2][blue >> 2]; } - int red() { + public int red() { return id < 256 ? defaultPalette[id].rgbRed : 0; } - int green() { + public int green() { return id < 256 ? defaultPalette[id].rgbGreen : 0; } - int blue() { + public int blue() { return id < 256 ? defaultPalette[id].rgbBlue : 0; } @@ -190,20 +190,20 @@ public int hashCode() { /// BROODWAR COLOR IMPLEMENTATION private static class RGBQUAD { - final byte rgbRed; - final byte rgbGreen; - final byte rgbBlue; - final byte rgbReserved; + final int rgbRed; + final int rgbGreen; + final int rgbBlue; + final int rgbReserved; RGBQUAD(int rgbRed, int rgbGreen, int rgbBlue) { this(rgbRed, rgbGreen, rgbBlue, 0); } RGBQUAD(int rgbRed, int rgbGreen, int rgbBlue, int rgbReserved) { - this.rgbRed = (byte) rgbRed; - this.rgbGreen = (byte) rgbGreen; - this.rgbBlue = (byte) rgbBlue; - this.rgbReserved = (byte) rgbReserved; + this.rgbRed = rgbRed; + this.rgbGreen = rgbGreen; + this.rgbBlue = rgbBlue; + this.rgbReserved = rgbReserved; } } }