about summary refs log tree commit diff
path: root/src/game/editor
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2010-11-17 13:08:29 +0100
committeroy <Tom_Adams@web.de>2010-11-17 13:08:29 +0100
commitca80d2a347689b5482f5c89a17a34131f79ed7cc (patch)
tree3c781fa91ec098ec6310e0c2e95bd64ab2c3ab98 /src/game/editor
parent8351682edf630d2d1ec706f0cf6406d026c7a8a4 (diff)
downloadzcatch-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.cpp18
-rw-r--r--src/game/editor/ed_editor.h15
-rw-r--r--src/game/editor/ed_io.cpp10
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;
 }