diff options
| author | oy <Tom_Adams@web.de> | 2010-11-17 13:08:29 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2010-11-17 13:08:29 +0100 |
| commit | ca80d2a347689b5482f5c89a17a34131f79ed7cc (patch) | |
| tree | 3c781fa91ec098ec6310e0c2e95bd64ab2c3ab98 /src/game/editor | |
| parent | 8351682edf630d2d1ec706f0cf6406d026c7a8a4 (diff) | |
| download | zcatch-ca80d2a347689b5482f5c89a17a34131f79ed7cc.tar.gz zcatch-ca80d2a347689b5482f5c89a17a34131f79ed7cc.zip | |
reload the map on save just when the map name is equal
Diffstat (limited to 'src/game/editor')
| -rw-r--r-- | src/game/editor/ed_editor.cpp | 18 | ||||
| -rw-r--r-- | src/game/editor/ed_editor.h | 15 | ||||
| -rw-r--r-- | 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 97e9452f..9fb457aa 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 fb4cd50e..6ff9e6c8 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 c0df17c4..30fe4c0b 100644 --- a/src/game/editor/ed_io.cpp +++ b/src/game/editor/ed_io.cpp @@ -1,6 +1,7 @@ #include <engine/client.h> #include <engine/console.h> #include <engine/graphics.h> +#include <engine/serverbrowser.h> #include <engine/storage.h> #include <game/gamecore.h> #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; } |