Merge branch 'develop' into ryzomclassic-develop

ryzomclassic-develop
kaetemi 4 years ago
commit 52c7c16f69

@ -79,8 +79,6 @@ namespace NLGUI
sint64 getInputStringAsInt64() const;
void setInputStringAsFloat(float val);
float getInputStringAsFloat() const;
void setInputStringAsStdString(const std::string &str);
std::string getInputStringAsStdString() const;
void setInputStringAsUtf8(const std::string &str);
std::string getInputStringAsUtf8() const;
void setColor(NLMISC::CRGBA col);
@ -189,7 +187,7 @@ namespace NLGUI
REFLECT_LUA_METHOD("setSelectionAll", luaSetSelectionAll);
REFLECT_LUA_METHOD("setFocusOnText", luaSetFocusOnText);
REFLECT_LUA_METHOD("cancelFocusOnText", luaCancelFocusOnText);
REFLECT_STRING("input_string", getInputStringAsStdString, setInputStringAsStdString);
REFLECT_STRING("input_string", getInputStringAsUtf8, setInputStringAsUtf8);
REFLECT_UCSTRING("uc_input_string", getInputString, setInputString);
REFLECT_EXPORT_END

@ -193,6 +193,10 @@ inline std::string toString(const sint32 &val) { return toString("%d", val); }
inline std::string toString(const uint64 &val) { return toString("%" NL_I64 "u", val); }
inline std::string toString(const sint64 &val) { return toString("%" NL_I64 "d", val); }
#ifdef NL_OS_WINDOWS
inline std::string toString(const wchar_t &val) { return toString(reinterpret_cast<const uint16 &>(val)); }
#endif
#ifdef NL_COMP_GCC
# if GCC_VERSION == 40102
@ -246,6 +250,10 @@ inline bool fromString(const std::string &str, sint64 &val) { bool ret = sscanf(
inline bool fromString(const std::string &str, float &val) { bool ret = sscanf(str.c_str(), "%f", &val) == 1; if (!ret) val = 0.0f; return ret; }
inline bool fromString(const std::string &str, double &val) { bool ret = sscanf(str.c_str(), "%lf", &val) == 1; if (!ret) val = 0.0; return ret; }
#ifdef NL_OS_WINDOWS
inline bool fromString(const std::string &str, wchar_t &val) { return fromString(str, reinterpret_cast<uint16 &>(val)); }
#endif
// Fast string to bool, reliably defined for strings starting with 0, 1, t, T, f, F, y, Y, n, N, anything else is undefined.
// (str[0] == '1' || (str[0] & 0xD2) == 0x50)
// - Kaetemi

@ -1225,12 +1225,29 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM l
D3DWndProc (pDriver, hWnd, message, wParam, lParam);
}
if (message == WM_SYSCOMMAND)
{
switch (wParam)
{
#ifdef NL_DISABLE_MENU
// disable menu (F10, ALT and ALT+SPACE key doesn't freeze or open the menu)
if(message == WM_SYSCOMMAND && wParam == SC_KEYMENU)
return 0;
case SC_KEYMENU:
#endif // NL_DISABLE_MENU
// Screensaver Trying To Start?
case SC_SCREENSAVE:
// Monitor Trying To Enter Powersave?
case SC_MONITORPOWER:
// Prevent From Happening
return 0;
default:
break;
}
}
// ace: if we receive close, exit now or it'll assert after
if(message == WM_CLOSE)
{

@ -122,32 +122,26 @@ namespace NLGUI
CXMLAutoPtr prop;
// get static toolTip
prop = (char*) xmlGetProp( cur, (xmlChar*)"tooltip" );
if (prop)
prop = (char *)xmlGetProp(cur, (xmlChar *)"tooltip_i18n");
if ((bool)prop && strlen((const char *)prop) > 0)
{
const char *propPtr = prop;
#ifdef RYZOM_FORGE
if (strlen(propPtr) > 2 && propPtr[0] == 'u' && propPtr[1] == ':')
_ContextHelp = ucstring::makeFromUtf8(std::string(propPtr).substr(2));
// Force I18N tooltip
if (!editorMode)
_ContextHelp = CI18N::get((const char *)prop);
else
#endif
_ContextHelp = ucstring(propPtr);
if( !editorMode && ( strlen(propPtr) > 2 ) )
{
if ((propPtr[0] == 'u') && (propPtr[1] == 'i'))
_ContextHelp = CI18N::get ((const char *) prop);
_ContextHelp.fromUtf8((const char *)prop);
}
}
// Force I18N tooltip
prop = (char*) xmlGetProp( cur, (xmlChar*)"tooltip_i18n" );
if ((bool)prop && strlen((const char*)prop)>0)
else
{
// get static toolTip
prop = (char *)xmlGetProp(cur, (xmlChar *)"tooltip");
if (prop)
{
if( !editorMode )
_ContextHelp = CI18N::get ((const char *) prop);
if (!editorMode && NLMISC::startsWith((const char *)prop, "ui"))
_ContextHelp = CI18N::get((const char *)prop);
else
_ContextHelp = (const char*)prop;
_ContextHelp.fromUtf8((const char *)prop);
}
}
// get dynamic toolTip ActionHandler
@ -175,7 +169,7 @@ namespace NLGUI
_ToolTipSpecialParent= CStringShared();
if(prop)
{
_ToolTipSpecialParent= std::string((const char*)prop);
_ToolTipSpecialParent= (const char*)prop;
}
// Tooltip posref
@ -203,12 +197,12 @@ namespace NLGUI
{
if( name == "tooltip" )
{
return _ContextHelp.toString();
return _ContextHelp.toUtf8();
}
else
if( name == "tooltip_i18n" )
{
return _ContextHelp.toString();
return _ContextHelp.toUtf8();
}
else
if( name == "on_tooltip" )
@ -264,13 +258,19 @@ namespace NLGUI
{
if( name == "tooltip" )
{
_ContextHelp = ucstring::makeFromUtf8(value);
if (!editorMode && NLMISC::startsWith(value, "ui"))
_ContextHelp = CI18N::get(value);
else
_ContextHelp.fromUtf8(value);
return;
}
else
if( name == "tooltip_i18n" )
{
_ContextHelp = value;
if (!editorMode)
_ContextHelp = CI18N::get(value);
else
_ContextHelp.fromUtf8(value);
return;
}
else

@ -596,9 +596,11 @@ namespace NLGUI
if (prop)
{
const char *propPtr = prop;
ucstring text = ucstring(propPtr);
if ((strlen(propPtr)>2) && (propPtr[0] == 'u') && (propPtr[1] == 'i'))
text = CI18N::get (propPtr);
ucstring text;
if (NLMISC::startsWith(propPtr, "ui"))
text = CI18N::get(propPtr);
else
text.fromUtf8(propPtr);
_ViewText->setText(text);
}
}

@ -467,7 +467,7 @@ namespace NLGUI
void CDBGroupComboBox::setViewText(const ucstring & text)
{
_IsExternViewText = true;
_ExternViewText = ucstring(text);
_ExternViewText = text;
_ViewText->setText(_ExternViewText);
}

@ -147,9 +147,10 @@ namespace NLGUI
if(ptr)
{
const char *propPtr = ptr;
_EmptyText = ucstring(propPtr);
if ((strlen(propPtr)>2) && (propPtr[0] == 'u') && (propPtr[1] == 'i'))
_EmptyText = CI18N::get (propPtr);
if (NLMISC::startsWith(propPtr, "ui"))
_EmptyText = CI18N::get(propPtr);
else
_EmptyText.fromUtf8(propPtr);
}
// init cache.

@ -1229,7 +1229,7 @@ namespace NLGUI
{
makeTopWindow();
// for french, deutsch and russian, be aware of unicode
std::string command = ucstring(_InputString.substr(1)).toUtf8();
std::string command = _InputString.substr(1).toUtf8();
ICommand::expand(command);
// then back to ucstring
_InputString.fromUtf8(command);
@ -1735,26 +1735,10 @@ namespace NLGUI
CInterfaceGroup::setActive(active);
}
// ***************************************************************************
void CGroupEditBox::setInputStringAsStdString(const std::string &str)
{
setInputString(ucstring(str));
}
// ***************************************************************************
std::string CGroupEditBox::getInputStringAsStdString() const
{
std::string result;
_InputString.toString(result);
return result;
}
// ***************************************************************************
void CGroupEditBox::setInputStringAsUtf8(const std::string &str)
{
ucstring tmp;
tmp.fromUtf8(str);
setInputString(tmp);
setInputString(ucstring::makeFromUtf8(str));
}
// ***************************************************************************

@ -4716,7 +4716,7 @@ namespace NLGUI
const char *funcName = "addString";
CLuaIHM::checkArgCount(ls, funcName, 1);
CLuaIHM::checkArgType(ls, funcName, 1, LUA_TSTRING);
addString(ucstring(ls.toString(1)));
addString(ucstring::makeFromUtf8(ls.toString(1)));
return 0;
}
@ -5470,7 +5470,7 @@ namespace NLGUI
}
else
{
ctrlButton->setDefaultContextHelp(ucstring(tooltip));
ctrlButton->setDefaultContextHelp(ucstring::makeFromUtf8(tooltip));
}
}

@ -518,11 +518,10 @@ namespace NLGUI
{
_HardText = std::string( (const char*)ptr );
const char *propPtr = ptr;
ucstring Text = ucstring(propPtr);
if ((strlen(propPtr)>2) && (propPtr[0] == 'u') && (propPtr[1] == 'i'))
Text = CI18N::get (propPtr);
addTextChild(Text);
if (NLMISC::startsWith(propPtr, "ui"))
addTextChild(CI18N::get(propPtr));
else
addTextChild(ucstring::makeFromUtf8(propPtr));
}
else
{

@ -283,9 +283,10 @@ namespace NLGUI
if (name)
{
const char *ptrName = (const char*)name;
ucstrName = ucstring(ptrName);
if ((strlen(ptrName)>2) && (ptrName[0] == 'u') && (ptrName[1] == 'i'))
ucstrName = CI18N::get (ptrName);
if (NLMISC::startsWith(ptrName, "ui"))
ucstrName = CI18N::get(ptrName);
else
ucstrName.fromUtf8(ptrName);
}
CXMLAutoPtr ah((const char*) xmlGetProp (cur, (xmlChar*)"handler"));

@ -476,11 +476,10 @@ namespace NLGUI
{
_HardText = std::string( (const char*)ptr );
const char *propPtr = ptr;
ucstring Text = ucstring(propPtr);
if ((strlen(propPtr)>2) && (propPtr[0] == 'u') && (propPtr[1] == 'i'))
Text = CI18N::get (propPtr);
addTextChild(Text);
if (NLMISC::startsWith(propPtr, "ui"))
addTextChild(CI18N::get(propPtr));
else
addTextChild(ucstring::makeFromUtf8(propPtr));
}
else
{

@ -306,9 +306,10 @@ namespace NLGUI
if (name)
{
const char *ptrName = (const char*)name;
Text = ucstring(ptrName);
if ((strlen(ptrName)>2) && (ptrName[0] == 'u') && (ptrName[1] == 'i'))
Text = CI18N::get (ptrName);
if (NLMISC::startsWith(ptrName, "ui"))
Text = CI18N::get(ptrName);
else
ucstring::makeFromUtf8(ptrName);
}
CXMLAutoPtr color((const char*) xmlGetProp (cur, (xmlChar*)"color"));

@ -1880,21 +1880,21 @@ namespace NLGUI
ucstring CLuaIHM::findReplaceAll(const ucstring &str, const std::string &search, const std::string &replace)
{
//H_AUTO(Lua_CLuaIHM_findReplaceAll)
return findReplaceAll(str, ucstring(search), ucstring(replace));
return findReplaceAll(str, ucstring::makeFromUtf8(search), ucstring::makeFromUtf8(replace));
}
// ***************************************************************************
ucstring CLuaIHM::findReplaceAll(const ucstring &str, const std::string &search, const ucstring &replace)
{
//H_AUTO(Lua_CLuaIHM_findReplaceAll)
return findReplaceAll(str, ucstring(search), ucstring(replace));
return findReplaceAll(str, ucstring::makeFromUtf8(search), replace);
}
// ***************************************************************************
ucstring CLuaIHM::findReplaceAll(const ucstring &str, const ucstring &search, const std::string &replace)
{
//H_AUTO(Lua_CLuaIHM_findReplaceAll)
return findReplaceAll(str, ucstring(search), ucstring(replace));
return findReplaceAll(str, search, ucstring::makeFromUtf8(replace));
}

@ -982,11 +982,11 @@ namespace NLGUI
if (prop)
{
const char *propPtr = prop;
_Text = ucstring(propPtr);
if ((strlen(propPtr)>2) && (propPtr[0] == 'u') && (propPtr[1] == 'i'))
_Text = CI18N::get (propPtr);
setCase (_Text, _CaseMode);
if (NLMISC::startsWith(propPtr, "ui"))
_Text = CI18N::get(propPtr);
else
_Text.fromUtf8(propPtr);
setCase(_Text, _CaseMode);
}
prop = (char*) xmlGetProp( cur, (xmlChar*)"hardtext_format" );
@ -2152,7 +2152,7 @@ namespace NLGUI
float dotWidth = 0.f;
if (_OverflowText.size() > 0)
{
si = TextContext->getStringInfo (ucstring(_OverflowText));
si = TextContext->getStringInfo(_OverflowText);
dotWidth = si.StringWidth;
}

@ -34,25 +34,25 @@ namespace NLGUI
CViewTextFormated::IViewTextFormatter *CViewTextFormated::textFormatter = NULL;
std::string CViewTextFormated::getProperty( const std::string &name ) const
std::string CViewTextFormated::getProperty(const std::string &name) const
{
if( name == "format" )
if (name == "format")
{
return getFormatString().toString();
return getFormatString().toUtf8();
}
else
return CViewText::getProperty( name );
return CViewText::getProperty(name);
}
void CViewTextFormated::setProperty( const std::string &name, const std::string &value )
void CViewTextFormated::setProperty(const std::string &name, const std::string &value)
{
if( name == "format" )
if (name == "format")
{
setFormatString( value );
setFormatString(ucstring::makeFromUtf8(value));
return;
}
else
CViewText::setProperty( name, value );
CViewText::setProperty(name, value);
}
xmlNodePtr CViewTextFormated::serialize( xmlNodePtr parentNode, const char *type ) const
@ -62,7 +62,7 @@ namespace NLGUI
return NULL;
xmlSetProp( node, BAD_CAST "type", BAD_CAST "text_formated" );
xmlSetProp( node, BAD_CAST "format", BAD_CAST getFormatString().c_str() );
xmlSetProp( node, BAD_CAST "format", BAD_CAST getFormatString().toUtf8().c_str() );
return NULL;
}
@ -73,7 +73,7 @@ namespace NLGUI
if (!CViewText::parse(cur, parentGroup)) return false;
CXMLAutoPtr prop((const char*) xmlGetProp( cur, (xmlChar*)"format" ));
if (prop)
setFormatString(ucstring((const char *) prop));
setFormatString(ucstring::makeFromUtf8((const char *)prop));
else
setFormatString(ucstring("$t"));
return true;

@ -33,36 +33,35 @@ NLMISC_REGISTER_OBJECT(CViewBase, CViewTextIDFormated, std::string, "text_id_for
namespace NLGUI
{
std::string CViewTextIDFormated::getProperty( const std::string &name ) const
std::string CViewTextIDFormated::getProperty(const std::string &name) const
{
if( name == "format" )
if (name == "format")
{
return getFormatString().toString();
return getFormatString().toUtf8();
}
else
return CViewTextID::getProperty( name );
return CViewTextID::getProperty(name);
}
void CViewTextIDFormated::setProperty( const std::string &name, const std::string &value )
void CViewTextIDFormated::setProperty(const std::string &name, const std::string &value)
{
if( name == "format" )
if (name == "format")
{
setFormatString( value );
setFormatString(ucstring::makeFromUtf8(value));
return;
}
else
CViewTextID::setProperty( name, value );
CViewTextID::setProperty(name, value);
}
xmlNodePtr CViewTextIDFormated::serialize( xmlNodePtr parentNode, const char *type ) const
xmlNodePtr CViewTextIDFormated::serialize(xmlNodePtr parentNode, const char *type) const
{
xmlNodePtr node = CViewTextID::serialize( parentNode, type );
if( node == NULL )
xmlNodePtr node = CViewTextID::serialize(parentNode, type);
if (node == NULL)
return NULL;
xmlSetProp( node, BAD_CAST "type", BAD_CAST "text_id_formated" );
xmlSetProp( node, BAD_CAST "format", BAD_CAST getFormatString().c_str() );
xmlSetProp( node, BAD_CAST "format", BAD_CAST getFormatString().toUtf8().c_str() );
return node;
}
@ -73,7 +72,7 @@ namespace NLGUI
if (!CViewTextID::parse(cur, parentGroup)) return false;
CXMLAutoPtr prop((const char*) xmlGetProp( cur, (xmlChar*)"format" ));
if (prop)
setFormatString(ucstring((const char *) prop));
setFormatString(ucstring::makeFromUtf8((const char *)prop));
else
setFormatString(ucstring("$t"));
return true;

@ -167,7 +167,10 @@ bool CSystemUtils::copyTextToClipboard(const ucstring &text)
bool isUnicode = (IsClipboardFormatAvailable(CF_UNICODETEXT) == TRUE);
// allocates a buffer to copy text in global memory
HGLOBAL mem = GlobalAlloc(GHND|GMEM_DDESHARE, (text.size()+1) * (isUnicode ? 2:1));
std::string textLocal;
if (!isUnicode) textLocal = NLMISC::wideToMbcs(text);
if (text.size() && !textLocal.size()) textLocal = text.toString();
HGLOBAL mem = GlobalAlloc(GHND | GMEM_DDESHARE, isUnicode ? ((text.size() + 1) * sizeof(wchar_t)) : textLocal.size());
if (mem)
{
@ -179,7 +182,7 @@ bool CSystemUtils::copyTextToClipboard(const ucstring &text)
if (isUnicode)
wcscpy((wchar_t *)hLock, (const wchar_t *)text.c_str());
else
strcpy((char *)hLock, text.toString().c_str());
strcpy((char *)hLock, textLocal.c_str());
// unlock buffer
GlobalUnlock(mem);
@ -213,7 +216,7 @@ bool CSystemUtils::pasteTextFromClipboard(ucstring &text)
// get data from clipboard (if not of this type, they are converted)
// warning, this code can't be debuggued in VC++ IDE, hObj will be always NULL
HANDLE hObj = GetClipboardData(isUnicode ? CF_UNICODETEXT:CF_TEXT);
HANDLE hObj = GetClipboardData(isUnicode ? CF_UNICODETEXT : CF_TEXT);
if (hObj)
{
@ -224,9 +227,15 @@ bool CSystemUtils::pasteTextFromClipboard(ucstring &text)
{
// retrieve clipboard data
if (isUnicode)
text = (const ucchar*)hLock;
{
text = (const ucchar *)hLock;
}
else
text = (const char*)hLock;
{
static_cast<std::wstring &>(text) = NLMISC::mbcsToWide((const char *)hLock);
if (!text.size() && ((const char *)hLock)[0])
text = (const char *)hLock;
}
// unlock data
GlobalUnlock(hObj);

@ -53,7 +53,7 @@ namespace {
QString nli18n(const char *label)
{
return QString::fromUtf16(CI18N::get(label).c_str());
return QString::fromUtf16((const ushort *)CI18N::get(label).c_str());
}
} /* anonymous namespace */

@ -979,7 +979,7 @@ TInterfaceState globalMenu()
while (PlayerWantToGoInGame == false)
{
#if defined(NL_OS_WINDOWS) && defined(NL_DEBUG)
#if defined(NL_OS_WINDOWS) && defined(NL_DEBUG) && 0
// tmp for debug
if (::GetAsyncKeyState(VK_SPACE))
{
@ -1065,7 +1065,7 @@ TInterfaceState globalMenu()
nlSleep(ClientCfg.Sleep);
}
#if defined(NL_OS_WINDOWS) && defined(NL_DEBUG)
#if defined(NL_OS_WINDOWS) && defined(NL_DEBUG) && 0
if (::GetAsyncKeyState(VK_CONTROL))
{
pIM->displayUIViewBBoxs("");

@ -636,7 +636,7 @@ public:
CDBCtrlSheet *pCS = dynamic_cast<CDBCtrlSheet*>(CWidgetManager::getInstance()->getElementFromId(Params));
if (pCS == NULL) return;
pCS->setMacroText(pEB->getInputStringAsStdString());
pCS->setMacroText(pEB->getInputStringAsUtf8());
}
};
REGISTER_ACTION_HANDLER( CHandlerEBUpdateMacroText, "eb_update_macro_text");
@ -703,10 +703,10 @@ public:
CGroupEditBox *pEB = dynamic_cast<CGroupEditBox*>(CWidgetManager::getInstance()->getElementFromId(CTRL_MACROICONCREATION_EDITTEXT));
if (pEB != NULL)
{
pEB->setInputStringAsStdString(pMCM->CurrentEditMacro.DispText);
pEB->setInputStringAsUtf8(pMCM->CurrentEditMacro.DispText);
CDBCtrlSheet *pCS = dynamic_cast<CDBCtrlSheet*>(CWidgetManager::getInstance()->getElementFromId(CTRL_MACROICONCREATION_ICON));
if (pCS != NULL)
pCS->setMacroText(pEB->getInputStringAsStdString());
pCS->setMacroText(pEB->getInputStringAsUtf8());
}
CAHManager::getInstance()->runActionHandler("set_macro_back", NULL, string("target=")+CTRL_MACROICONCREATION_ICON+"|value="+toString(back));
@ -862,11 +862,11 @@ public:
if (pEB == NULL) return;
CMacroCmdManager *pMCM = CMacroCmdManager::getInstance();
pMCM->CurrentEditMacro.Name = pEB->getInputStringAsStdString();
pMCM->CurrentEditMacro.Name = pEB->getInputStringAsUtf8();
if ((pMCM->CurrentEditMacro.Name.size() >= 2) &&
(pMCM->CurrentEditMacro.Name[0] == 'u') && (pMCM->CurrentEditMacro.Name[1] == 'i'))
pMCM->CurrentEditMacro.Name[0] = 'U';
pEB->setInputString(pMCM->CurrentEditMacro.Name);
pEB->setInputStringAsUtf8(pMCM->CurrentEditMacro.Name);
}
};
REGISTER_ACTION_HANDLER( CHandlerNewMacroEnterName, "new_macro_enter_name");

@ -301,10 +301,18 @@ bool CItemGroupManager::loadGroups()
NLMISC::CIFile f;
f.open(userGroupFileName);
NLMISC::CIXml xmlStream;
xmlNodePtr globalEnclosing;
try
{
xmlStream.init(f);
// Actual loading
xmlNodePtr globalEnclosing;
globalEnclosing = xmlStream.getRootNode();
}
catch (const NLMISC::EXmlParsingError &ex)
{
nlwarning("Failed to parse '%s', skip", userGroupFileName.c_str());
return false;
}
if(!globalEnclosing)
{
nlwarning("no root element in item_group xml, skipping xml parsing");

@ -1379,8 +1379,8 @@ class CAHOnLogin : public IActionHandler
return;
}
LoginLogin = pGEBLog->getInputStringAsStdString();
LoginPassword = pGEBPwd->getInputStringAsStdString();
LoginLogin = pGEBLog->getInputString().toString(); // FIXME: Unicode login
LoginPassword = pGEBPwd->getInputString().toString();
onlogin();
}

@ -680,6 +680,7 @@ bool CNetworkConnection::connect(string &result)
_LatestLoginTime = ryzomGetLocalTime ();
_LatestSyncTime = _LatestLoginTime;
_LatestProbeTime = _LatestLoginTime;
m_LoginAttempts = 0;
nlinfo("CNET[%p]: Client connected to shard, attempting login", this);
return true;
@ -1091,6 +1092,17 @@ bool CNetworkConnection::stateLogin()
{
sendSystemLogin();
_LatestLoginTime = _UpdateTime;
if (m_LoginAttempts > 24)
{
m_LoginAttempts = 0;
disconnect(); // will send disconnection message
nlwarning("CNET[%p]: Too many LOGIN attempts, connection problem", this);
return false; // exit now from loop, don't expect a new state
}
else
{
++m_LoginAttempts;
}
}
return false;
@ -2308,6 +2320,7 @@ bool CNetworkConnection::stateProbe()
else
{
nlwarning("CNET[%p]: received normal in state Probe", this);
_LatestProbeTime = _UpdateTime;
}
}
}

@ -822,6 +822,7 @@ private:
void sendSystemLogin();
bool stateLogin();
NLMISC::TTime _LatestLoginTime;
int m_LoginAttempts;
//
void receiveSystemSync(NLMISC::CBitMemStream &msgin);

@ -1154,6 +1154,15 @@ void CClientEditionModule::startingScenario(class NLNET::IModuleProxy * /* serve
{
ok = true;
connectionState = "uiR2EDUploadScenario";
#if !FINAL_VERSION
string filename = CFile::findNewFile("scenario.rt.txt");
COFile output(filename);
std::string ss;
rtDataPtr->serialize(ss);
output.serialBuffer((uint8*)ss.c_str(),(uint)ss.size());
output.flush();
#endif
}
else
{

@ -212,14 +212,24 @@ CDynamicMapClient(eid, clientGateway, luaState)
void CDynamicMapClientEventForwarder::nodeErased(const std::string& instanceId, const std::string& attrName, sint32 position)
{
//H_AUTO(R2_CDynamicMapClientEventForwarder_nodeErased)
if (getEditor().getMode() != CEditor::EditionMode) return;
if (getEditor().getMode() != CEditor::EditionMode)
{
nlassert(getEditor().getMode() != CEditor::AnimationModeLoading); /* Probably should not happen */
nldebug("Node erased, but not in edition mode");
return;
}
getEditor().nodeErased(instanceId, attrName, position);
}
void CDynamicMapClientEventForwarder::nodeSet(const std::string& instanceId, const std::string& attrName, CObject* value)
{
//H_AUTO(R2_CDynamicMapClientEventForwarder_nodeSet)
if (getEditor().getMode() != CEditor::EditionMode) return;
if (getEditor().getMode() != CEditor::EditionMode
&& getEditor().getMode() != CEditor::AnimationModeLoading /* Loading animation scenario from terminal, ghost nodes created by translator */)
{
nldebug("Node set, but not in edition mode");
return;
}
getEditor().nodeSet(instanceId, attrName, value);
}
@ -227,7 +237,12 @@ void CDynamicMapClientEventForwarder::nodeInserted(const std::string& instanceId
const std::string& key, CObject* value)
{
//H_AUTO(R2_CDynamicMapClientEventForwarder_nodeInserted)
if (getEditor().getMode() != CEditor::EditionMode) return;
if (getEditor().getMode() != CEditor::EditionMode
&& getEditor().getMode() != CEditor::AnimationModeLoading /* Loading animation scenario from terminal, ghost nodes created by translator */)
{
nldebug("Node inserted, but not in edition mode");
return;
}
getEditor().nodeInserted(instanceId, attrName, position, key, value);
}
@ -236,7 +251,12 @@ void CDynamicMapClientEventForwarder::nodeMoved(
const std::string& destInstanceId, const std::string& destAttrName, sint32 destPosition)
{
//H_AUTO(R2_CDynamicMapClientEventForwarder_nodeMoved)
if (getEditor().getMode() != CEditor::EditionMode) return;
if (getEditor().getMode() != CEditor::EditionMode)
{
nlassert(getEditor().getMode() != CEditor::AnimationModeLoading); /* Probably should not happen */
nldebug("Node moved, but not in edition mode");
return;
}
getEditor().nodeMoved(instanceId, attrName, position, destInstanceId, destAttrName, destPosition);
}

Loading…
Cancel
Save