rs-client: refactoring (#1344)

* Rename some things to be more consistent everywhere

* rs-client: refactoring

* MenuAction -> MenuOpcode merge
This commit is contained in:
Lucwousin
2019-08-20 22:24:51 +02:00
committed by GitHub
parent 0f46656e9d
commit db705f5dd5
297 changed files with 13734 additions and 14043 deletions

View File

@@ -58,9 +58,11 @@ public class ObjectDefinition extends DualNode {
@Export("id")
public int id;
@ObfuscatedName("f")
int[] field3362;
@Export("modelIds")
int[] modelIds;
@ObfuscatedName("m")
int[] field3359;
@Export("models")
int[] models;
@ObfuscatedName("u")
@Export("name")
public String name;
@@ -311,7 +313,7 @@ public class ObjectDefinition extends DualNode {
void postDecode() {
if (this.int1 == -1) {
this.int1 = 0;
if (this.field3362 != null && (this.field3359 == null || this.field3359[0] == 10)) {
if (this.modelIds != null && (this.models == null || this.models[0] == 10)) {
this.int1 = 1;
}
@@ -356,34 +358,36 @@ public class ObjectDefinition extends DualNode {
int var4;
if (var2 == 1) {
var3 = var1.readUnsignedByte();
if (var3 > 0) {
if (this.field3362 != null && !ObjectDefinition_isLowDetail) {
var1.offset += 3 * var3;
} else {
this.field3359 = new int[var3];
this.field3362 = new int[var3];
if (var3 <= 0) {
return;
}
if (this.modelIds == null || ObjectDefinition_isLowDetail) {
this.models = new int[var3];
this.modelIds = new int[var3];
for (var4 = 0; var4 < var3; ++var4) {
this.field3362[var4] = var1.readUnsignedShort();
this.field3359[var4] = var1.readUnsignedByte();
}
for (var4 = 0; var4 < var3; ++var4) {
this.modelIds[var4] = var1.readUnsignedShort();
this.models[var4] = var1.readUnsignedByte();
}
} else {
var1.offset += 3 * var3;
}
} else if (var2 == 2) {
this.name = var1.readStringCp1252NullTerminated();
} else if (var2 == 5) {
var3 = var1.readUnsignedByte();
if (var3 > 0) {
if (this.field3362 != null && !ObjectDefinition_isLowDetail) {
var1.offset += var3 * 2;
} else {
this.field3359 = null;
this.field3362 = new int[var3];
if (var3 <= 0) {
return;
}
if (this.modelIds == null || ObjectDefinition_isLowDetail) {
this.models = null;
this.modelIds = new int[var3];
for (var4 = 0; var4 < var3; ++var4) {
this.field3362[var4] = var1.readUnsignedShort();
}
for (var4 = 0; var4 < var3; ++var4) {
this.modelIds[var4] = var1.readUnsignedShort();
}
} else {
var1.offset += var3 * 2;
}
} else if (var2 == 14) {
this.sizeX = var1.readUnsignedByte();
@@ -404,7 +408,7 @@ public class ObjectDefinition extends DualNode {
this.modelClipped = true;
} else if (var2 == 24) {
this.animationId = var1.readUnsignedShort();
if (this.animationId == 65535) {
if (this.animationId == 0xffff) {
this.animationId = -1;
}
} else if (var2 == 27) {
@@ -464,42 +468,21 @@ public class ObjectDefinition extends DualNode {
this.isSolid = true;
} else if (var2 == 75) {
this.int3 = var1.readUnsignedByte();
} else if (var2 != 77 && var2 != 92) {
if (var2 == 78) {
this.ambientSoundId = var1.readUnsignedShort();
this.int4 = var1.readUnsignedByte();
} else if (var2 == 79) {
this.int5 = var1.readUnsignedShort();
this.int6 = var1.readUnsignedShort();
this.int4 = var1.readUnsignedByte();
var3 = var1.readUnsignedByte();
this.soundEffectIds = new int[var3];
for (var4 = 0; var4 < var3; ++var4) {
this.soundEffectIds[var4] = var1.readUnsignedShort();
}
} else if (var2 == 81) {
this.clipType = var1.readUnsignedByte() * 65536;
} else if (var2 == 82) {
this.mapIconId = var1.readUnsignedShort();
} else if (var2 == 249) {
this.params = WorldMapArea.readStringIntParameters(var1, this.params);
}
} else {
} else if (var2 == 77 || var2 == 92) {
this.transformVarbit = var1.readUnsignedShort();
if (this.transformVarbit == 65535) {
if (this.transformVarbit == 0xffff) {
this.transformVarbit = -1;
}
this.transformVarp = var1.readUnsignedShort();
if (this.transformVarp == 65535) {
if (this.transformVarp == 0xffff) {
this.transformVarp = -1;
}
var3 = -1;
if (var2 == 92) {
var3 = var1.readUnsignedShort();
if (var3 == 65535) {
if (var3 == 0xffff) {
var3 = -1;
}
}
@@ -509,14 +492,33 @@ public class ObjectDefinition extends DualNode {
for (int var5 = 0; var5 <= var4; ++var5) {
this.transforms[var5] = var1.readUnsignedShort();
if (this.transforms[var5] == 65535) {
if (this.transforms[var5] == 0xffff) {
this.transforms[var5] = -1;
}
}
this.transforms[var4 + 1] = var3;
}
} else if (var2 == 78) {
this.ambientSoundId = var1.readUnsignedShort();
this.int4 = var1.readUnsignedByte();
} else if (var2 == 79) {
this.int5 = var1.readUnsignedShort();
this.int6 = var1.readUnsignedShort();
this.int4 = var1.readUnsignedByte();
var3 = var1.readUnsignedByte();
this.soundEffectIds = new int[var3];
for (var4 = 0; var4 < var3; ++var4)
{
this.soundEffectIds[var4] = var1.readUnsignedShort();
}
} else if (var2 == 81) {
this.clipType = var1.readUnsignedByte() * 65536;
} else if (var2 == 82) {
this.mapIconId = var1.readUnsignedShort();
} else if (var2 == 249) {
this.params = WorldMapArea.readStringIntParameters(var1, this.params);
}
}
@ObfuscatedName("k")
@@ -525,16 +527,16 @@ public class ObjectDefinition extends DualNode {
garbageValue = "-672143890"
)
public final boolean method4589(int var1) {
if (this.field3359 != null) {
for (int var4 = 0; var4 < this.field3359.length; ++var4) {
if (this.field3359[var4] == var1) {
return ObjectDefinition_modelsArchive.tryLoadFile(this.field3362[var4] & 65535, 0);
if (this.models != null) {
for (int var4 = 0; var4 < this.models.length; ++var4) {
if (this.models[var4] == var1) {
return ObjectDefinition_modelsArchive.tryLoadFile(this.modelIds[var4] & 0xffff, 0);
}
}
return true;
}
if (this.field3362 == null) {
if (this.modelIds == null) {
return true;
}
if (var1 != 10) {
@@ -542,8 +544,8 @@ public class ObjectDefinition extends DualNode {
}
boolean var2 = true;
for (int var3 = 0; var3 < this.field3362.length; ++var3) {
var2 &= ObjectDefinition_modelsArchive.tryLoadFile(this.field3362[var3] & 65535, 0);
for (int var3 = 0; var3 < this.modelIds.length; ++var3) {
var2 &= ObjectDefinition_modelsArchive.tryLoadFile(this.modelIds[var3] & 0xffff, 0);
}
return var2;
@@ -554,14 +556,15 @@ public class ObjectDefinition extends DualNode {
signature = "(I)Z",
garbageValue = "-275510577"
)
public final boolean method4608() {
if (this.field3362 == null) {
@Export("needsModelFiles")
public final boolean needsModelFiles() {
if (this.modelIds == null) {
return true;
}
boolean var1 = true;
for (int var2 = 0; var2 < this.field3362.length; ++var2) {
var1 &= ObjectDefinition_modelsArchive.tryLoadFile(this.field3362[var2] & 65535, 0);
for (int var2 = 0; var2 < this.modelIds.length; ++var2) {
var1 &= ObjectDefinition_modelsArchive.tryLoadFile(this.modelIds[var2] & 0xffff, 0);
}
return var1;
@@ -575,7 +578,7 @@ public class ObjectDefinition extends DualNode {
@Export("getEntity")
public final Entity getEntity(int type, int rotation, int[][] tileHeights, int xPacked, int avgHeight, int yPacked) {
long var7;
if (this.field3359 == null) {
if (this.models == null) {
var7 = (long)(rotation + (this.id << 10));
} else {
var7 = (long)(rotation + (type << 3) + (this.id << 10));
@@ -591,9 +594,9 @@ public class ObjectDefinition extends DualNode {
if (!this.nonFlatShading) {
var9 = var10.toModel(this.ambient + 64, this.contrast * 25 + 768, -50, -10, -50);
} else {
var10.field1580 = (short)(this.ambient + 64);
var10.field1577 = (short)(this.contrast * 25 + 768);
var10.method2787();
var10.ambient = (short)(this.ambient + 64);
var10.contrast = (short)(this.contrast * 25 + 768);
var10.calculateVertexNormals();
var9 = var10;
}
@@ -623,7 +626,7 @@ public class ObjectDefinition extends DualNode {
@Export("getModel")
public final Model getModel(int type, int rotation, int[][] tileHeights, int xPacked, int avgHeight, int yPacked) {
long var7;
if (this.field3359 == null) {
if (this.models == null) {
var7 = (long)(rotation + (this.id << 10));
} else {
var7 = (long)(rotation + (type << 3) + (this.id << 10));
@@ -655,7 +658,7 @@ public class ObjectDefinition extends DualNode {
@Export("getModelDynamic")
public final Model getModelDynamic(int var1, int var2, int[][] var3, int var4, int var5, int var6, SequenceDefinition var7, int var8) {
long var9;
if (this.field3359 == null) {
if (this.models == null) {
var9 = (long)(var2 + (this.id << 10));
} else {
var9 = (long)(var2 + (var1 << 3) + (this.id << 10));
@@ -699,12 +702,12 @@ public class ObjectDefinition extends DualNode {
boolean var4;
int var5;
int var7;
if (this.field3359 == null) {
if (this.models == null) {
if (type != 10) {
return null;
}
if (this.field3362 == null) {
if (this.modelIds == null) {
return null;
}
@@ -713,17 +716,17 @@ public class ObjectDefinition extends DualNode {
var4 = !var4;
}
var5 = this.field3362.length;
var5 = this.modelIds.length;
for (int var6 = 0; var6 < var5; ++var6) {
var7 = this.field3362[var6];
var7 = this.modelIds[var6];
if (var4) {
var7 += 65536;
}
var3 = (ModelData)ObjectDefinition_cachedModelData.get((long)var7);
if (var3 == null) {
var3 = ModelData.method2769(ObjectDefinition_modelsArchive, var7 & 65535, 0);
var3 = ModelData.ModelData_get(ObjectDefinition_modelsArchive, var7 & 0xffff, 0);
if (var3 == null) {
return null;
}
@@ -746,8 +749,8 @@ public class ObjectDefinition extends DualNode {
} else {
int var9 = -1;
for (var5 = 0; var5 < this.field3359.length; ++var5) {
if (this.field3359[var5] == type) {
for (var5 = 0; var5 < this.models.length; ++var5) {
if (this.models[var5] == type) {
var9 = var5;
break;
}
@@ -757,7 +760,7 @@ public class ObjectDefinition extends DualNode {
return null;
}
var5 = this.field3362[var9];
var5 = this.modelIds[var9];
boolean var10 = this.isRotated ^ rotation > 3;
if (var10) {
var5 += 65536;
@@ -765,7 +768,7 @@ public class ObjectDefinition extends DualNode {
var3 = (ModelData)ObjectDefinition_cachedModelData.get((long)var5);
if (var3 == null) {
var3 = ModelData.method2769(ObjectDefinition_modelsArchive, var5 & 65535, 0);
var3 = ModelData.ModelData_get(ObjectDefinition_modelsArchive, var5 & 0xffff, 0);
if (var3 == null) {
return null;
}
@@ -794,7 +797,7 @@ public class ObjectDefinition extends DualNode {
ModelData var8 = new ModelData(var3, rotation == 0 && !var4 && !var11, null == this.recolorFrom, this.retextureFrom == null, true);
if (type == 4 && rotation > 3) {
var8.method2781(256);
var8.method2782(45, 0, -45);
var8.changeOffset(45, 0, -45);
}
rotation &= 3;
@@ -819,11 +822,11 @@ public class ObjectDefinition extends DualNode {
}
if (var4) {
var8.method2786(this.modelSizeX, this.modelHeight, this.modelSizeY);
var8.resize(this.modelSizeX, this.modelHeight, this.modelSizeY);
}
if (var11) {
var8.method2782(this.offsetX, this.offsetHeight, this.offsetY);
var8.changeOffset(this.offsetX, this.offsetHeight, this.offsetY);
}
return var8;