rs-client: refactoring (#1344)
* Rename some things to be more consistent everywhere * rs-client: refactoring * MenuAction -> MenuOpcode merge
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user