Skip to content

Commit

Permalink
DRMS update and fix parsers for PTR release
Browse files Browse the repository at this point in the history
  • Loading branch information
Retera committed Aug 19, 2022
1 parent 63eba89 commit 5241c59
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 14 deletions.
4 changes: 3 additions & 1 deletion craft3data/src/com/hiveworkshop/wc3/mdl/Layer.java
Original file line number Diff line number Diff line change
Expand Up @@ -740,7 +740,9 @@ public void printTo(final PrintWriter writer, final int tabHeight, final boolean
for (final ShaderTextureTypeHD shaderTextureTypeHD : ShaderTextureTypeHD.VALUES) {
final Integer textureId = shaderTextureIds.get(shaderTextureTypeHD);
if (textureId != null && textureId != -1) {
writer.println(tabs + "\tstatic " + shaderTextureTypeHD.name() + "TextureID " + textureId + ",");
final String name = shaderTextureTypeHD == ShaderTextureTypeHD.Diffuse ? ""
: shaderTextureTypeHD.name();
writer.println(tabs + "\tstatic " + name + "TextureID " + textureId + ",");
}
}
} else {
Expand Down
17 changes: 9 additions & 8 deletions craft3data/src/com/hiveworkshop/wc3/mdx/LayerChunk.java
Original file line number Diff line number Diff line change
Expand Up @@ -183,9 +183,9 @@ public void save(final BlizzardDataOutputStream out, final int version) throws I
if (singleTextureId != NO_TEXTURE_ID) {
out.writeInt(singleTextureId);
out.writeInt(i);
if (animatedTextureIdsMDLX1100[i] != null) {
animatedTextureIdsMDLX1100[i].save(out);
}
}
if (animatedTextureIdsMDLX1100[i] != null) {
animatedTextureIdsMDLX1100[i].save(out);
}
}
}
Expand Down Expand Up @@ -276,7 +276,7 @@ public Layer() {

}

public Layer(final com.hiveworkshop.wc3.mdl.Layer layer, final LayerShader layerShader) {
public Layer(final com.hiveworkshop.wc3.mdl.Layer layer, final LayerShader layerShader, final int version) {
filterMode = com.hiveworkshop.wc3.mdl.Layer.FilterMode.nameToId(layer.getFilterModeString());
for (final String flag : layer.getFlags()) {
switch (flag) {
Expand Down Expand Up @@ -304,7 +304,7 @@ public Layer(final com.hiveworkshop.wc3.mdl.Layer layer, final LayerShader layer
break;
}
}
if (layerShader == LayerShader.HD) {
if (ModelUtils.isCombinedHDLayerSupported(version)) {
animatedTextureIdsMDLX1100 = new MaterialTextureId[TEXTURE_TYPE_INDICES];
}
textureAnimationId = layer.getTVertexAnimId();
Expand Down Expand Up @@ -351,7 +351,7 @@ public Layer(final com.hiveworkshop.wc3.mdl.Layer layer, final LayerShader layer
}
}
emissiveFound = true;
} else if (af.getName().equals("TextureID") && layerShader != LayerShader.HD) {
} else if (af.getName().equals("TextureID") && !ModelUtils.isCombinedHDLayerSupported(version)) {
materialTextureId = new MaterialTextureId();
materialTextureId.globalSequenceId = af.getGlobalSeqId();
materialTextureId.interpolationType = af.getInterpType();
Expand Down Expand Up @@ -431,7 +431,7 @@ public Layer(final com.hiveworkshop.wc3.mdl.Layer layer, final LayerShader layer
fresnelTeamColorFound = true;
} else {
boolean found = false;
if (layerShader == LayerShader.HD) {
if (ModelUtils.isCombinedHDLayerSupported(version)) {
for (final ShaderTextureTypeHD shaderTextureTypeHD : ShaderTextureTypeHD.VALUES) {
if (af.getName().equals((shaderTextureTypeHD == ShaderTextureTypeHD.Diffuse ? ""
: shaderTextureTypeHD.name()) + "TextureID")) {
Expand Down Expand Up @@ -494,8 +494,9 @@ public Layer(final com.hiveworkshop.wc3.mdl.Layer layer, final LayerShader layer
fresnelOpacity = fresnelOpacityFound ? 0 : (float) layer.getFresnelOpacity();
fresnelTeamColor = fresnelTeamColorFound ? 0 : (float) layer.getFresnelTeamColor();
shaderTypeId = layerShader.ordinal();
if (layerShader == LayerShader.HD) {
if (ModelUtils.isCombinedHDLayerSupported(version)) {
textureIdsMDLX1100 = new int[TEXTURE_TYPE_INDICES];
Arrays.fill(textureIdsMDLX1100, NO_TEXTURE_ID);
for (final ShaderTextureTypeHD shaderTextureTypeHD : ShaderTextureTypeHD.VALUES) {
final Integer shaderTextureId = layer.getShaderTextureIds().get(shaderTextureTypeHD);
if (shaderTextureId != null) {
Expand Down
11 changes: 6 additions & 5 deletions craft3data/src/com/hiveworkshop/wc3/mdx/MaterialChunk.java
Original file line number Diff line number Diff line change
Expand Up @@ -125,15 +125,15 @@ public Material(final com.hiveworkshop.wc3.mdl.Material mat, final int version)
}
}
layerChunk.layer = new LayerChunk.Layer[layerSize];
shader = com.hiveworkshop.wc3.mdl.Material.SHADER_SD_FIXED_FUNCTION;
shader = "";// com.hiveworkshop.wc3.mdl.Material.SHADER_SD_FIXED_FUNCTION;
int layersIndex = 0;
for (int i = 0; i < mat.getLayers().size(); i++) {
final com.hiveworkshop.wc3.mdl.Layer layer = mat.getLayers().get(i);
if (ModelUtils.isShaderStringSupported(version) && layer.getLayerShader() == LayerShader.HD) {
shader = com.hiveworkshop.wc3.mdl.Material.SHADER_HD_DEFAULT_UNIT;
for (final ShaderTextureTypeHD shaderTextureTypeHD : ShaderTextureTypeHD.VALUES) {
if (shaderTextureTypeHD == ShaderTextureTypeHD.Diffuse) {
layerChunk.layer[layersIndex++] = layerChunk.new Layer(layer, LayerShader.SD);
layerChunk.layer[layersIndex++] = layerChunk.new Layer(layer, LayerShader.SD, version);
} else {
final Integer shaderTextureId = layer.getShaderTextureIds().get(shaderTextureTypeHD);
if (shaderTextureId != null) {
Expand All @@ -148,16 +148,17 @@ public Material(final com.hiveworkshop.wc3.mdl.Material mat, final int version)
outputLayer.add(genericTextureIDFlag);
}

layerChunk.layer[layersIndex++] = layerChunk.new Layer(outputLayer, LayerShader.SD);
layerChunk.layer[layersIndex++] = layerChunk.new Layer(outputLayer, LayerShader.SD,
version);
} else if (shaderTextureTypeHD != ShaderTextureTypeHD.Reflections) {
layerChunk.layer[layersIndex++] = layerChunk.new Layer(
new com.hiveworkshop.wc3.mdl.Layer(FilterMode.NONE.getMdlText(), -1),
LayerShader.SD);
LayerShader.SD, version);
}
}
}
} else {
layerChunk.layer[layersIndex++] = layerChunk.new Layer(layer, layer.getLayerShader());
layerChunk.layer[layersIndex++] = layerChunk.new Layer(layer, layer.getLayerShader(), version);
}
}
priorityPlane = mat.getPriorityPlane();
Expand Down

0 comments on commit 5241c59

Please sign in to comment.