Merge with develop

--HG--
branch : compatibility-develop
This commit is contained in:
kervala 2015-12-20 19:26:36 +01:00
commit d7e9922dd7
4 changed files with 88 additions and 41 deletions

View file

@ -154,15 +154,15 @@ void flushDebugStack(const std::string &title)
strTmp = toString("\n"); strTmp = toString("\n");
DebugFile.serialBuffer((uint8*)strTmp.c_str(), (uint)strTmp.size()); DebugFile.serialBuffer((uint8*)strTmp.c_str(), (uint)strTmp.size());
} }
// No Output File -> nlwarning // No Output File -> nldebug only if DisableNLDebug not set to true
else else if (!DisableNLDebug)
{ {
nlwarning("%s", title.c_str()); nldebug("%s", title.c_str());
for(uint i=0; i<DebugStack.size(); ++i) for(uint i=0; i<DebugStack.size(); ++i)
nlwarning(" %s", DebugStack[i].c_str()); nldebug(" %s", DebugStack[i].c_str());
// Empty line separator // Empty line separator
nlwarning(""); nldebug("");
} }
} }

View file

@ -441,7 +441,7 @@ void SCharacter3DSetup::setupFromCS_ModelCol (SLOTTYPE::EVisualSlot s, sint32 mo
Parts[part].Name = item->getShapeFemale(); Parts[part].Name = item->getShapeFemale();
// use the right type of boots if wearing a caster dress // use the right type of boots if wearing a caster dress
if ((s == SLOTTYPE::FEET_SLOT) && (item->ItemType == ITEM_TYPE::LIGHT_BOOTS)) if ((s == SLOTTYPE::FEET_SLOT) && (item->ItemType == ITEM_TYPE::LIGHT_BOOTS || item->ItemType == ITEM_TYPE::MEDIUM_BOOTS || item->ItemType == ITEM_TYPE::HEAVY_BOOTS))
{ {
std::string shapeLegs = Parts[Char3DPart_Legs].Name; std::string shapeLegs = Parts[Char3DPart_Legs].Name;
@ -458,8 +458,15 @@ void SCharacter3DSetup::setupFromCS_ModelCol (SLOTTYPE::EVisualSlot s, sint32 mo
tmpName.replace(posBottes+7, 0, "_" + orgType); tmpName.replace(posBottes+7, 0, "_" + orgType);
tmpName.replace(7, orgType.length(), "caster01"); tmpName.replace(7, orgType.length(), "caster01");
// temporary hack because Fyros boots don't respect conventions if (CPath::exists(tmpName))
if (tmpName[0] == 'f') {
// use fixed shape name only if file is present
Parts[part].Name = tmpName;
}
else
{
// temporary hack because Fyros light boots don't respect conventions
if (tmpName[0] == 'f' && (item->ItemType == ITEM_TYPE::LIGHT_BOOTS))
{ {
if (tmpName[5] == 'f') if (tmpName[5] == 'f')
{ {
@ -469,7 +476,6 @@ void SCharacter3DSetup::setupFromCS_ModelCol (SLOTTYPE::EVisualSlot s, sint32 mo
{ {
tmpName = "fy_hom_caster01_civil01_bottes.shape"; tmpName = "fy_hom_caster01_civil01_bottes.shape";
} }
}
// use fixed shape name only if file is present // use fixed shape name only if file is present
if (CPath::exists(tmpName)) if (CPath::exists(tmpName))
@ -481,6 +487,12 @@ void SCharacter3DSetup::setupFromCS_ModelCol (SLOTTYPE::EVisualSlot s, sint32 mo
nlwarning("File %s doesn't exist, use %s", tmpName.c_str(), Parts[part].Name.c_str()); nlwarning("File %s doesn't exist, use %s", tmpName.c_str(), Parts[part].Name.c_str());
} }
} }
else
{
nlwarning("File %s doesn't exist, use %s", tmpName.c_str(), Parts[part].Name.c_str());
}
}
}
} }
} }

View file

@ -201,11 +201,34 @@ CPatchManager::CPatchManager() : State("t_state"), DataScanState("t_data_scan_st
_StateListener = NULL; _StateListener = NULL;
_StartRyzomAtEnd = true; _StartRyzomAtEnd = true;
#ifdef NL_OS_UNIX // only download binaries for current platform
// don't use cfg, exe and dll from Windows version
ForceRemovePatchCategories.clear(); ForceRemovePatchCategories.clear();
ForceRemovePatchCategories.push_back("main_exedll"); ForceRemovePatchCategories.push_back("main_exedll");
ForceRemovePatchCategories.push_back("main_cfg"); #if defined(NL_OS_WIN64)
ForceRemovePatchCategories.push_back("main_exedll_win32");
ForceRemovePatchCategories.push_back("main_exedll_linux32");
ForceRemovePatchCategories.push_back("main_exedll_linux64");
ForceRemovePatchCategories.push_back("main_exedll_osx");
#elif defined(NL_OS_WIN32)
ForceRemovePatchCategories.push_back("main_exedll_win34");
ForceRemovePatchCategories.push_back("main_exedll_linux32");
ForceRemovePatchCategories.push_back("main_exedll_linux64");
ForceRemovePatchCategories.push_back("main_exedll_osx");
#elif defined(NL_OS_APPLE)
ForceRemovePatchCategories.push_back("main_exedll_win32");
ForceRemovePatchCategories.push_back("main_exedll_win34");
ForceRemovePatchCategories.push_back("main_exedll_linux32");
ForceRemovePatchCategories.push_back("main_exedll_linux64");
#elif defined(NL_OS_UNIX) && defined(_LP64)
ForceRemovePatchCategories.push_back("main_exedll_win32");
ForceRemovePatchCategories.push_back("main_exedll_win34");
ForceRemovePatchCategories.push_back("main_exedll_linux32");
ForceRemovePatchCategories.push_back("main_exedll_osx");
#else
ForceRemovePatchCategories.push_back("main_exedll_win32");
ForceRemovePatchCategories.push_back("main_exedll_win64");
ForceRemovePatchCategories.push_back("main_exedll_linux64");
ForceRemovePatchCategories.push_back("main_exedll_osx");
#endif #endif
} }
@ -3029,7 +3052,7 @@ void CPatchThread::processFile (CPatchManager::SFileToPatch &rFTP)
// to apply a single patch from a refrence version to them. (so here we necessarily got // to apply a single patch from a refrence version to them. (so here we necessarily got
// 'rFTP.Patches.size() == 1' !) // 'rFTP.Patches.size() == 1' !)
// The reference version itself is incrementally patched, however, and may be rebuilt from time to time // The reference version itself is incrementally patched, however, and may be rebuilt from time to time
// when the delta to the reference has become to big (but is most of the time < to the sum of equivallent delta patchs) // when the delta to the reference has become too big (but is most of the time < to the sum of equivallent delta patchs)
// The non-incremental final patch (from ref file to final bnp), is guaranteed to be done last // The non-incremental final patch (from ref file to final bnp), is guaranteed to be done last
// after the reference file has been updated // after the reference file has been updated

View file

@ -543,7 +543,7 @@ void CPlayerCL::equip(SLOTTYPE::EVisualSlot slot, uint index, uint color)
std::string shapeName = _Gender == GSGENDER::female ? item->getShapeFemale():item->getShape(); std::string shapeName = _Gender == GSGENDER::female ? item->getShapeFemale():item->getShape();
// use the right type of boots if wearing a caster dress // use the right type of boots if wearing a caster dress
if ((slot == SLOTTYPE::FEET_SLOT) && (item->ItemType == ITEM_TYPE::LIGHT_BOOTS)) if ((slot == SLOTTYPE::FEET_SLOT) && (item->ItemType == ITEM_TYPE::LIGHT_BOOTS || item->ItemType == ITEM_TYPE::MEDIUM_BOOTS || item->ItemType == ITEM_TYPE::HEAVY_BOOTS))
{ {
std::string shapeLegs; std::string shapeLegs;
@ -569,8 +569,15 @@ void CPlayerCL::equip(SLOTTYPE::EVisualSlot slot, uint index, uint color)
tmpName.replace(posBottes+7, 0, "_" + orgType); tmpName.replace(posBottes+7, 0, "_" + orgType);
tmpName.replace(7, orgType.length(), "caster01"); tmpName.replace(7, orgType.length(), "caster01");
// temporary hack because Fyros boots don't respect conventions if (CPath::exists(tmpName))
if (tmpName[0] == 'f') {
// use fixed shape name only if file is present
shapeName = tmpName;
}
else
{
// temporary hack because Fyros light boots don't respect conventions
if (tmpName[0] == 'f' && (item->ItemType == ITEM_TYPE::LIGHT_BOOTS))
{ {
if (tmpName[5] == 'f') if (tmpName[5] == 'f')
{ {
@ -580,7 +587,6 @@ void CPlayerCL::equip(SLOTTYPE::EVisualSlot slot, uint index, uint color)
{ {
tmpName = "fy_hom_caster01_civil01_bottes.shape"; tmpName = "fy_hom_caster01_civil01_bottes.shape";
} }
}
// use fixed shape name only if file is present // use fixed shape name only if file is present
if (CPath::exists(tmpName)) if (CPath::exists(tmpName))
@ -592,6 +598,12 @@ void CPlayerCL::equip(SLOTTYPE::EVisualSlot slot, uint index, uint color)
nlwarning("File %s doesn't exist, use %s", tmpName.c_str(), shapeName.c_str()); nlwarning("File %s doesn't exist, use %s", tmpName.c_str(), shapeName.c_str());
} }
} }
else
{
nlwarning("File %s doesn't exist, use %s", tmpName.c_str(), shapeName.c_str());
}
}
}
} }
} }