Update Healer Man server
This commit is contained in:
1 parent
6114a2295f
commit
69809f7228
593 files changed
+903643
-40774
No files matched your search
@@ -60,9 +60,14 @@ namespace
|
||||
{
|
||||
std::string name;
|
||||
std::string shaderName;
|
||||
std::string shaderObjectName;
|
||||
std::string sourceTexture;
|
||||
std::string resolvedTexture;
|
||||
std::string stagedTexture;
|
||||
INT32 materialType = -1;
|
||||
INT32 lightingType = -1;
|
||||
std::vector<std::string> textureChannels;
|
||||
std::vector<std::string> alphaParameters;
|
||||
bool textureCopied = false;
|
||||
};
|
||||
|
||||
@@ -284,6 +289,98 @@ namespace
|
||||
return path;
|
||||
}
|
||||
|
||||
const char *MaterialTypeName(INT32 value)
|
||||
{
|
||||
switch(value)
|
||||
{
|
||||
case ruMATERIAL_TYPE_STANDARD: return "standard";
|
||||
case ruMATERIAL_TYPE_TRANSLUCENT: return "translucent-deprecated";
|
||||
case ruMATERIAL_TYPE_FX: return "fx-deprecated";
|
||||
default: return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
const char *LightingTypeName(INT32 value)
|
||||
{
|
||||
switch(value)
|
||||
{
|
||||
case ruMATERIAL_LIGHTINGTYPE_STANDARD: return "standard";
|
||||
case ruMATERIAL_LIGHTINGTYPE_PRELIT: return "prelit";
|
||||
case ruMATERIAL_LIGHTINGTYPE_RESERVED: return "reserved-self-illuminated";
|
||||
case ruMATERIAL_LIGHTINGTYPE_COLORED: return "colored";
|
||||
default: return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
const char *TextureChannelName(INT32 value)
|
||||
{
|
||||
switch(value)
|
||||
{
|
||||
case ruTEXCHANNEL_DIFFUSEMAP: return "diffuse";
|
||||
case ruTEXCHANNEL_DETAILMAP: return "detail";
|
||||
case ruTEXCHANNEL_LIGHTMAP: return "lightmap";
|
||||
case ruTEXCHANNEL_DIFFUSECUBEMAP: return "diffuse-cubemap";
|
||||
case ruTEXCHANNEL_1DATTENUATIONMAP: return "attenuation-1d";
|
||||
case ruTEXCHANNEL_2DATTENUATIONMAP: return "attenuation-2d";
|
||||
case ruTEXCHANNEL_3DATTENUATIONMAP: return "attenuation-3d";
|
||||
case ruTEXCHANNEL_ENVIRONMENTMAP: return "environment";
|
||||
case ruTEXCHANNEL_REFLECTIONMAP: return "reflection";
|
||||
case ruTEXCHANNEL_REFRACTIONMAP: return "refraction";
|
||||
case ruTEXCHANNEL_CAUSTICMAP: return "caustic";
|
||||
case ruTEXCHANNEL_BUMPMAP: return "bump";
|
||||
case ruTEXCHANNEL_BUMPMAP2: return "bump-2";
|
||||
case ruTEXCHANNEL_NORMALMAP: return "normal";
|
||||
case ruTEXCHANNEL_NORMALMAP2: return "normal-2";
|
||||
case ruTEXCHANNEL_DISPLACEMENTMAP: return "displacement";
|
||||
case ruTEXCHANNEL_NORMALIZATIONCUBEMAP: return "normalization-cubemap";
|
||||
case ruTEXCHANNEL_SHADOWMAP: return "shadow";
|
||||
case ruTEXCHANNEL_SHADOWDEPTHMAP: return "shadow-depth";
|
||||
case ruTEXCHANNEL_SHADOWOVERLAY: return "shadow-overlay";
|
||||
case ruTEXCHANNEL_GLOSSMAP: return "gloss";
|
||||
case ruTEXCHANNEL_TOONGRADIENTMAP: return "toon-gradient";
|
||||
case ruTEXCHANNEL_DISTORTMAP: return "distortion";
|
||||
case ruTEXCHANNEL_BACKBUFFER: return "backbuffer";
|
||||
case ruTEXCHANNEL_RTLIGHTMAP: return "rt-lightmap";
|
||||
case ruTEXCHANNEL_GLOWMAP: return "glow";
|
||||
default: return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
const char *AlphaParameterName(INT32 value)
|
||||
{
|
||||
switch(value)
|
||||
{
|
||||
case ruPARAMTYPE_MATERIAL_ALPHATESTMODE: return "alphaTestMode";
|
||||
case ruPARAMTYPE_MATERIAL_ALPHATESTVALUE: return "alphaTestValue";
|
||||
case ruPARAMTYPE_MATERIAL_ALPHAMODE: return "alphaMode";
|
||||
case ruPARAMTYPE_MATERIAL_TRANSLUCENT: return "translucent";
|
||||
case ruPARAMTYPE_MATERIAL_ALPHA: return "alpha";
|
||||
case ruPARAMTYPE_MATERIAL_ALPHAMODIFIER: return "alphaModifier";
|
||||
case ruPARAMTYPE_MATERIAL_SMOOTHBLEND: return "smoothBlend";
|
||||
case ruPARAMTYPE_MATERIAL_COLORWRITEENABLE: return "colorWriteEnable";
|
||||
default: return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
std::string AlphaParameterValue(INT32 type, UINT64 raw)
|
||||
{
|
||||
std::ostringstream out;
|
||||
if(type == ruPARAMTYPE_MATERIAL_ALPHA || type == ruPARAMTYPE_MATERIAL_ALPHAMODIFIER)
|
||||
{
|
||||
out << std::setprecision(9) << RuCastINT64ToFloat(raw);
|
||||
}
|
||||
else if(type == ruPARAMTYPE_MATERIAL_TRANSLUCENT || type == ruPARAMTYPE_MATERIAL_SMOOTHBLEND
|
||||
|| type == ruPARAMTYPE_MATERIAL_COLORWRITEENABLE)
|
||||
{
|
||||
out << (raw ? "true" : "false");
|
||||
}
|
||||
else
|
||||
{
|
||||
out << raw;
|
||||
}
|
||||
return out.str();
|
||||
}
|
||||
|
||||
bool FileExists(const std::string &path)
|
||||
{
|
||||
const DWORD attributes = GetFileAttributesA(path.c_str());
|
||||
@@ -621,9 +718,54 @@ namespace
|
||||
|
||||
if(material)
|
||||
{
|
||||
material->BindTextures(TRUE);
|
||||
const char *shaderName = material->GetShaderName();
|
||||
if(shaderName)
|
||||
info.shaderName = shaderName;
|
||||
IRuShader *shader = material->GetShader();
|
||||
if(shader && shader->GetShaderName())
|
||||
info.shaderObjectName = shader->GetShaderName();
|
||||
info.materialType = static_cast<INT32>(material->GetMaterialType());
|
||||
info.lightingType = static_cast<INT32>(material->GetLightingType());
|
||||
for(INT32 channelIndex = 0; channelIndex < material->GetNumTextureChannels(); ++channelIndex)
|
||||
{
|
||||
const RuTextureChannel channel = material->GetTextureChannel(channelIndex);
|
||||
IRuBaseTexture *channelTexture = material->GetTexture(channel);
|
||||
std::ostringstream channelRow;
|
||||
channelRow << "{\"id\":" << static_cast<INT32>(channel)
|
||||
<< ",\"name\":\"" << TextureChannelName(static_cast<INT32>(channel))
|
||||
<< "\",\"texture\":\""
|
||||
<< JsonEscape(channelTexture && channelTexture->GetTextureName() ? channelTexture->GetTextureName() : "")
|
||||
<< "\"}";
|
||||
info.textureChannels.push_back(channelRow.str());
|
||||
}
|
||||
CRuParameterBlock *parameters = material->GetParameterBlock();
|
||||
const INT32 alphaParameterTypes[] = {
|
||||
ruPARAMTYPE_MATERIAL_ALPHATESTMODE,
|
||||
ruPARAMTYPE_MATERIAL_ALPHATESTVALUE,
|
||||
ruPARAMTYPE_MATERIAL_ALPHAMODE,
|
||||
ruPARAMTYPE_MATERIAL_TRANSLUCENT,
|
||||
ruPARAMTYPE_MATERIAL_ALPHA,
|
||||
ruPARAMTYPE_MATERIAL_ALPHAMODIFIER,
|
||||
ruPARAMTYPE_MATERIAL_SMOOTHBLEND,
|
||||
ruPARAMTYPE_MATERIAL_COLORWRITEENABLE
|
||||
};
|
||||
for(std::size_t parameterIndex = 0;
|
||||
parameterIndex < sizeof(alphaParameterTypes) / sizeof(alphaParameterTypes[0]);
|
||||
++parameterIndex)
|
||||
{
|
||||
const INT32 parameterType = alphaParameterTypes[parameterIndex];
|
||||
UINT64 rawValue = 0;
|
||||
if(parameters && parameters->GetParameter(static_cast<RuParameterType>(parameterType), rawValue))
|
||||
{
|
||||
std::ostringstream parameterRow;
|
||||
parameterRow << "{\"id\":" << parameterType
|
||||
<< ",\"name\":\"" << AlphaParameterName(parameterType)
|
||||
<< "\",\"value\":" << AlphaParameterValue(parameterType, rawValue)
|
||||
<< ",\"rawHex\":\"0x" << std::hex << rawValue << std::dec << "\"}";
|
||||
info.alphaParameters.push_back(parameterRow.str());
|
||||
}
|
||||
}
|
||||
info.sourceTexture = NormalizeResourcePath(FindMaterialTexture(material));
|
||||
}
|
||||
|
||||
@@ -923,6 +1065,25 @@ namespace
|
||||
report << " {\n";
|
||||
report << " \"name\": \"" << JsonEscape(info.name) << "\",\n";
|
||||
report << " \"shader\": \"" << JsonEscape(info.shaderName) << "\",\n";
|
||||
report << " \"shaderObject\": \"" << JsonEscape(info.shaderObjectName) << "\",\n";
|
||||
report << " \"materialType\": {\"value\":" << info.materialType
|
||||
<< ",\"name\":\"" << MaterialTypeName(info.materialType) << "\"},\n";
|
||||
report << " \"lightingType\": {\"value\":" << info.lightingType
|
||||
<< ",\"name\":\"" << LightingTypeName(info.lightingType) << "\"},\n";
|
||||
report << " \"sourceTextureChannels\": [";
|
||||
for(std::size_t channelIndex = 0; channelIndex < info.textureChannels.size(); ++channelIndex)
|
||||
{
|
||||
if(channelIndex > 0) report << ",";
|
||||
report << info.textureChannels[channelIndex];
|
||||
}
|
||||
report << "],\n";
|
||||
report << " \"alphaBlendParameters\": [";
|
||||
for(std::size_t parameterIndex = 0; parameterIndex < info.alphaParameters.size(); ++parameterIndex)
|
||||
{
|
||||
if(parameterIndex > 0) report << ",";
|
||||
report << info.alphaParameters[parameterIndex];
|
||||
}
|
||||
report << "],\n";
|
||||
report << " \"sourceTexture\": \"" << JsonEscape(info.sourceTexture) << "\",\n";
|
||||
report << " \"resolvedTexture\": \"" << JsonEscape(info.resolvedTexture) << "\",\n";
|
||||
report << " \"stagedTexture\": \"" << JsonEscape(info.stagedTexture) << "\",\n";
|
||||
|
||||
Reference in new issue
Block a user