From ca80d2a347689b5482f5c89a17a34131f79ed7cc Mon Sep 17 00:00:00 2001 From: oy Date: Wed, 17 Nov 2010 13:08:29 +0100 Subject: [PATCH] reload the map on save just when the map name is equal --- src/game/editor/ed_editor.cpp | 18 +----------------- src/game/editor/ed_editor.h | 15 +++++++++++++++ src/game/editor/ed_io.cpp | 10 +++++++++- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/src/game/editor/ed_editor.cpp b/src/game/editor/ed_editor.cpp index 97e9452f2..9fb457aae 100644 --- a/src/game/editor/ed_editor.cpp +++ b/src/game/editor/ed_editor.cpp @@ -1850,22 +1850,6 @@ void CEditor::RenderLayers(CUIRect ToolBox, CUIRect ToolBar, CUIRect View) } } -static void ExtractName(const char *pFileName, char *pName, int BufferSize) -{ - const char *pExtractedName = pFileName; - const char *pEnd = 0; - for(; *pFileName; ++pFileName) - { - if(*pFileName == '/' || *pFileName == '\\') - pExtractedName = pFileName+1; - else if(*pFileName == '.') - pEnd = pFileName; - } - - int Length = pEnd > pExtractedName ? min(BufferSize, (int)(pEnd-pExtractedName+1)) : BufferSize; - str_copy(pName, pExtractedName, Length); -} - void CEditor::ReplaceImage(const char *pFileName, int StorageType, void *pUser) { CEditor *pEditor = (CEditor *)pUser; @@ -1878,7 +1862,7 @@ void CEditor::ReplaceImage(const char *pFileName, int StorageType, void *pUser) pEditor->Graphics()->UnloadTexture(pImg->m_TexId); *pImg = ImgInfo; pImg->m_External = External; - ExtractName(pFileName, pImg->m_aName, sizeof(pImg->m_aName)); + pEditor->ExtractName(pFileName, pImg->m_aName, sizeof(pImg->m_aName)); pImg->m_TexId = pEditor->Graphics()->LoadTextureRaw(ImgInfo.m_Width, ImgInfo.m_Height, ImgInfo.m_Format, ImgInfo.m_pData, CImageInfo::FORMAT_AUTO, 0); pEditor->SortImages(); for(int i = 0; i < pEditor->m_Map.m_lImages.size(); ++i) diff --git a/src/game/editor/ed_editor.h b/src/game/editor/ed_editor.h index fb4cd50e7..6ff9e6c8e 100644 --- a/src/game/editor/ed_editor.h +++ b/src/game/editor/ed_editor.h @@ -680,6 +680,21 @@ public: void AddFileDialogEntry(int Index, CUIRect *pView); void SortImages(); + static void ExtractName(const char *pFileName, char *pName, int BufferSize) + { + const char *pExtractedName = pFileName; + const char *pEnd = 0; + for(; *pFileName; ++pFileName) + { + if(*pFileName == '/' || *pFileName == '\\') + pExtractedName = pFileName+1; + else if(*pFileName == '.') + pEnd = pFileName; + } + + int Length = pEnd > pExtractedName ? min(BufferSize, (int)(pEnd-pExtractedName+1)) : BufferSize; + str_copy(pName, pExtractedName, Length); + } }; // make sure to inline this function diff --git a/src/game/editor/ed_io.cpp b/src/game/editor/ed_io.cpp index c0df17c47..30fe4c0bd 100644 --- a/src/game/editor/ed_io.cpp +++ b/src/game/editor/ed_io.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include "ed_editor.h" @@ -361,7 +362,14 @@ int CEditorMap::Save(class IStorage *pStorage, const char *pFileName) // send rcon.. if we can if(m_pEditor->Client()->RconAuthed()) - m_pEditor->Client()->Rcon("reload"); + { + CServerInfo CurrentServerInfo; + m_pEditor->Client()->GetServerInfo(&CurrentServerInfo); + char aMapName[128]; + m_pEditor->ExtractName(pFileName, aMapName, sizeof(aMapName)); + if(!str_comp(aMapName, CurrentServerInfo.m_aMap)) + m_pEditor->Client()->Rcon("reload"); + } return 1; }