ultimatepp/bazaar/MapEditor/MapEditorMap.cpp
Sc0rch 9959d8888c MapRender: First release (FormEditorCommon, FormEditorProperties, Map, MapBG, MapCommon, MapEditor, MapRenderTest.
git-svn-id: svn://ultimatepp.org/upp/trunk@4180 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2011-11-18 06:28:11 +00:00

95 lines
1.8 KiB
C++

#include "MapEditor.h"
void MapEditor::OnNewMap()
{
int r = PromptYesNoCancel(t_("Save current map before creating new map?"));
if (r == IDYES)
OnSaveMap();
if (r == IDCANCEL)
return;
_map.Clear();
UpdateLevelList();
UpdateEditorCtrls();
}
void MapEditor::OnSaveMap()
{
CalculateAllPrompt();
if (!StoreAsXMLFile(_map, _map.GetName(),
AppendFileName(
AppendFileName(GetFileDirectory(GetExeFilePath()), "Mipmaps"),
_map.GetName() + ".map"
)))
{
Exclamation(t_("Error while saving map to file!"));
}
UpdateEditorCtrls();
}
void MapEditor::OnLoadMap()
{
WithMapLoadLayout<TopWindow> dlg;
CtrlLayoutOKCancel(dlg, t_("Load Map..."));
String dir = AppendFileName( GetFileDirectory(GetExeFilePath()), "Mipmaps");
Vector<String> files = GetDirectoryFiles(dir, "*.map");
Sort(files);
if (files.GetCount() <= 0)
{
Exclamation(t_("No any file to load!"));
return;
}
for (int i = 0; i < files.GetCount(); ++i)
dlg.MapList.Add(files[i], files[i]);
dlg.MapList.SetIndex(0);
if (dlg.Execute() != IDOK)
return;
String fp = AppendFileName(dir, (~dlg.MapList).ToString());
if (!FileExists(fp))
{
Exclamation(NFormat(t_("File not found: %s"), fp));
return;
}
if (!LoadFromXMLFile(_map, fp))
{
Exclamation(NFormat(t_("Error while loading map from file: %s"), fp));
return;
}
UpdateLevelList();
UpdateEditorCtrls();
}
void MapEditor::OnViewMap()
{
WithPreviewLayout<TopWindow> dlg;
CtrlLayout(dlg, t_("Map Preview"));
dlg.Sizeable().MaximizeBox();
dlg.View.HighQuality(true);
if (!dlg.View.LoadMap(_map))
{
Exclamation(t_("Error while loading preview!"));
return;
}
dlg.Execute();
}
void MapEditor::OnMapProperties()
{
_map.OpenProperties();
UpdateEditorCtrls();
}