275 lines
7.7 KiB
Java
275 lines
7.7 KiB
Java
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
|
|
@ObfuscatedName("pg")
|
|
@Implements("IndexedSprite")
|
|
public final class IndexedSprite extends Rasterizer2D {
|
|
@ObfuscatedName("c")
|
|
@Export("pixels")
|
|
public byte[] pixels;
|
|
@ObfuscatedName("l")
|
|
@Export("palette")
|
|
public int[] palette;
|
|
@ObfuscatedName("s")
|
|
@Export("subWidth")
|
|
public int subWidth;
|
|
@ObfuscatedName("e")
|
|
@Export("subHeight")
|
|
public int subHeight;
|
|
@ObfuscatedName("r")
|
|
@Export("xOffset")
|
|
public int xOffset;
|
|
@ObfuscatedName("o")
|
|
@Export("yOffset")
|
|
public int yOffset;
|
|
@ObfuscatedName("i")
|
|
@Export("width")
|
|
public int width;
|
|
@ObfuscatedName("w")
|
|
@Export("height")
|
|
public int height;
|
|
|
|
@ObfuscatedName("c")
|
|
@Export("normalize")
|
|
public void normalize() {
|
|
if (this.subWidth != this.width || this.subHeight != this.height) { // L: 18
|
|
byte[] var1 = new byte[this.width * this.height]; // L: 19
|
|
int var2 = 0; // L: 20
|
|
|
|
for (int var3 = 0; var3 < this.subHeight; ++var3) { // L: 21
|
|
for (int var4 = 0; var4 < this.subWidth; ++var4) { // L: 22
|
|
var1[var4 + (var3 + this.yOffset) * this.width + this.xOffset] = this.pixels[var2++]; // L: 23
|
|
}
|
|
}
|
|
|
|
this.pixels = var1; // L: 26
|
|
this.subWidth = this.width; // L: 27
|
|
this.subHeight = this.height; // L: 28
|
|
this.xOffset = 0; // L: 29
|
|
this.yOffset = 0; // L: 30
|
|
}
|
|
} // L: 31
|
|
|
|
@ObfuscatedName("l")
|
|
@Export("shiftColors")
|
|
public void shiftColors(int var1, int var2, int var3) {
|
|
for (int var4 = 0; var4 < this.palette.length; ++var4) { // L: 34
|
|
int var5 = this.palette[var4] >> 16 & 255; // L: 35
|
|
var5 += var1; // L: 36
|
|
if (var5 < 0) { // L: 37
|
|
var5 = 0;
|
|
} else if (var5 > 255) { // L: 38
|
|
var5 = 255;
|
|
}
|
|
|
|
int var6 = this.palette[var4] >> 8 & 255; // L: 39
|
|
var6 += var2; // L: 40
|
|
if (var6 < 0) { // L: 41
|
|
var6 = 0;
|
|
} else if (var6 > 255) { // L: 42
|
|
var6 = 255;
|
|
}
|
|
|
|
int var7 = this.palette[var4] & 255; // L: 43
|
|
var7 += var3; // L: 44
|
|
if (var7 < 0) { // L: 45
|
|
var7 = 0;
|
|
} else if (var7 > 255) { // L: 46
|
|
var7 = 255;
|
|
}
|
|
|
|
this.palette[var4] = var7 + (var6 << 8) + (var5 << 16); // L: 47
|
|
}
|
|
|
|
} // L: 49
|
|
|
|
@ObfuscatedName("s")
|
|
@Export("drawAt")
|
|
public void drawAt(int var1, int var2) {
|
|
var1 += this.xOffset; // L: 52
|
|
var2 += this.yOffset; // L: 53
|
|
int var3 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; // L: 54
|
|
int var4 = 0; // L: 55
|
|
int var5 = this.subHeight; // L: 56
|
|
int var6 = this.subWidth; // L: 57
|
|
int var7 = Rasterizer2D.Rasterizer2D_width - var6; // L: 58
|
|
int var8 = 0; // L: 59
|
|
int var9;
|
|
if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { // L: 60
|
|
var9 = Rasterizer2D.Rasterizer2D_yClipStart - var2; // L: 61
|
|
var5 -= var9; // L: 62
|
|
var2 = Rasterizer2D.Rasterizer2D_yClipStart; // L: 63
|
|
var4 += var9 * var6; // L: 64
|
|
var3 += var9 * Rasterizer2D.Rasterizer2D_width; // L: 65
|
|
}
|
|
|
|
if (var5 + var2 > Rasterizer2D.Rasterizer2D_yClipEnd) { // L: 67
|
|
var5 -= var5 + var2 - Rasterizer2D.Rasterizer2D_yClipEnd;
|
|
}
|
|
|
|
if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { // L: 68
|
|
var9 = Rasterizer2D.Rasterizer2D_xClipStart - var1; // L: 69
|
|
var6 -= var9; // L: 70
|
|
var1 = Rasterizer2D.Rasterizer2D_xClipStart; // L: 71
|
|
var4 += var9; // L: 72
|
|
var3 += var9; // L: 73
|
|
var8 += var9; // L: 74
|
|
var7 += var9; // L: 75
|
|
}
|
|
|
|
if (var6 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { // L: 77
|
|
var9 = var6 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; // L: 78
|
|
var6 -= var9; // L: 79
|
|
var8 += var9; // L: 80
|
|
var7 += var9; // L: 81
|
|
}
|
|
|
|
if (var6 > 0 && var5 > 0) { // L: 83
|
|
IndexedSprite_two(Rasterizer2D.Rasterizer2D_pixels, this.pixels, this.palette, var4, var3, var6, var5, var7, var8); // L: 84
|
|
}
|
|
} // L: 85
|
|
|
|
@ObfuscatedName("r")
|
|
public void method7753(int var1, int var2, int var3, int var4) {
|
|
int var5 = this.subWidth; // L: 116
|
|
int var6 = this.subHeight; // L: 117
|
|
int var7 = 0; // L: 118
|
|
int var8 = 0; // L: 119
|
|
int var9 = this.width; // L: 120
|
|
int var10 = this.height; // L: 121
|
|
int var11 = (var9 << 16) / var3; // L: 122
|
|
int var12 = (var10 << 16) / var4; // L: 123
|
|
int var13;
|
|
if (this.xOffset > 0) { // L: 124
|
|
var13 = (var11 + (this.xOffset << 16) - 1) / var11; // L: 125
|
|
var1 += var13; // L: 126
|
|
var7 += var13 * var11 - (this.xOffset << 16); // L: 127
|
|
}
|
|
|
|
if (this.yOffset > 0) { // L: 129
|
|
var13 = (var12 + (this.yOffset << 16) - 1) / var12; // L: 130
|
|
var2 += var13; // L: 131
|
|
var8 += var13 * var12 - (this.yOffset << 16); // L: 132
|
|
}
|
|
|
|
if (var5 < var9) { // L: 134
|
|
var3 = (var11 + ((var5 << 16) - var7) - 1) / var11;
|
|
}
|
|
|
|
if (var6 < var10) { // L: 135
|
|
var4 = (var12 + ((var6 << 16) - var8) - 1) / var12;
|
|
}
|
|
|
|
var13 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; // L: 136
|
|
int var14 = Rasterizer2D.Rasterizer2D_width - var3; // L: 137
|
|
if (var2 + var4 > Rasterizer2D.Rasterizer2D_yClipEnd) { // L: 138
|
|
var4 -= var2 + var4 - Rasterizer2D.Rasterizer2D_yClipEnd;
|
|
}
|
|
|
|
int var15;
|
|
if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { // L: 139
|
|
var15 = Rasterizer2D.Rasterizer2D_yClipStart - var2; // L: 140
|
|
var4 -= var15; // L: 141
|
|
var13 += var15 * Rasterizer2D.Rasterizer2D_width; // L: 142
|
|
var8 += var12 * var15; // L: 143
|
|
}
|
|
|
|
if (var3 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { // L: 145
|
|
var15 = var3 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; // L: 146
|
|
var3 -= var15; // L: 147
|
|
var14 += var15; // L: 148
|
|
}
|
|
|
|
if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { // L: 150
|
|
var15 = Rasterizer2D.Rasterizer2D_xClipStart - var1; // L: 151
|
|
var3 -= var15; // L: 152
|
|
var13 += var15; // L: 153
|
|
var7 += var11 * var15; // L: 154
|
|
var14 += var15; // L: 155
|
|
}
|
|
|
|
IndexedSprite_something(Rasterizer2D.Rasterizer2D_pixels, this.pixels, this.palette, var7, var8, var13, var14, var3, var4, var11, var12, var5); // L: 157
|
|
} // L: 158
|
|
|
|
@ObfuscatedName("e")
|
|
@Export("IndexedSprite_two")
|
|
static void IndexedSprite_two(int[] var0, byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8) {
|
|
int var9 = -(var5 >> 2); // L: 88
|
|
var5 = -(var5 & 3); // L: 89
|
|
|
|
for (int var10 = -var6; var10 < 0; ++var10) { // L: 90
|
|
int var11;
|
|
byte var12;
|
|
for (var11 = var9; var11 < 0; ++var11) { // L: 91
|
|
var12 = var1[var3++]; // L: 92
|
|
if (var12 != 0) {
|
|
var0[var4++] = var2[var12 & 255]; // L: 93
|
|
} else {
|
|
++var4; // L: 94
|
|
}
|
|
|
|
var12 = var1[var3++]; // L: 95
|
|
if (var12 != 0) { // L: 96
|
|
var0[var4++] = var2[var12 & 255];
|
|
} else {
|
|
++var4; // L: 97
|
|
}
|
|
|
|
var12 = var1[var3++]; // L: 98
|
|
if (var12 != 0) { // L: 99
|
|
var0[var4++] = var2[var12 & 255];
|
|
} else {
|
|
++var4; // L: 100
|
|
}
|
|
|
|
var12 = var1[var3++]; // L: 101
|
|
if (var12 != 0) { // L: 102
|
|
var0[var4++] = var2[var12 & 255];
|
|
} else {
|
|
++var4; // L: 103
|
|
}
|
|
}
|
|
|
|
for (var11 = var5; var11 < 0; ++var11) { // L: 105
|
|
var12 = var1[var3++]; // L: 106
|
|
if (var12 != 0) { // L: 107
|
|
var0[var4++] = var2[var12 & 255];
|
|
} else {
|
|
++var4; // L: 108
|
|
}
|
|
}
|
|
|
|
var4 += var7; // L: 110
|
|
var3 += var8; // L: 111
|
|
}
|
|
|
|
} // L: 113
|
|
|
|
@ObfuscatedName("o")
|
|
@Export("IndexedSprite_something")
|
|
static void IndexedSprite_something(int[] var0, byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11) {
|
|
int var12 = var3; // L: 161
|
|
|
|
for (int var13 = -var8; var13 < 0; ++var13) { // L: 162
|
|
int var14 = var11 * (var4 >> 16); // L: 163
|
|
|
|
for (int var15 = -var7; var15 < 0; ++var15) { // L: 164
|
|
byte var16 = var1[(var3 >> 16) + var14]; // L: 165
|
|
if (var16 != 0) { // L: 166
|
|
var0[var5++] = var2[var16 & 255];
|
|
} else {
|
|
++var5; // L: 167
|
|
}
|
|
|
|
var3 += var9; // L: 168
|
|
}
|
|
|
|
var4 += var10; // L: 170
|
|
var3 = var12; // L: 171
|
|
var5 += var6; // L: 172
|
|
}
|
|
|
|
} // L: 174
|
|
}
|