diff --git a/Templates/Empty/game/tools/missionAreaEditor/main.cs b/Templates/Empty/game/tools/missionAreaEditor/main.cs index 196a2d515..000197bc6 100644 --- a/Templates/Empty/game/tools/missionAreaEditor/main.cs +++ b/Templates/Empty/game/tools/missionAreaEditor/main.cs @@ -99,6 +99,27 @@ function MissionAreaEditorPlugin::onDeactivated( %this ) Parent::onDeactivated(%this); } +function MissionAreaEditorPlugin::setEditorFunction( %this ) +{ + %missionAreaExists = isObject(getMissionAreaServerObject()); + + if( %missionAreaExists == false ) + MessageBoxYesNoCancel("No Mission Area","Would you like to create a New Mission Area?", "MissionAreaEditorPlugin.createNewMissionArea();"); + + return %missionAreaExists; +} + +function MissionAreaEditorPlugin::createNewMissionArea(%this) +{ + %newMissionArea = new MissionArea(); + %newMissionArea.area = "-256 -256 512 512"; + + MissionGroup.add(%newMissionArea); + + EditorGui.setEditor(MissionAreaEditorPlugin); + + EWorldEditor.isDirty = true; +} //----------------------------------------------------------------------------- // Settings //----------------------------------------------------------------------------- diff --git a/Templates/Empty/game/tools/missionAreaEditor/missionAreaEditorGui.ed.cs b/Templates/Empty/game/tools/missionAreaEditor/missionAreaEditorGui.ed.cs index 81c39eda3..7d8e79225 100644 --- a/Templates/Empty/game/tools/missionAreaEditor/missionAreaEditorGui.ed.cs +++ b/Templates/Empty/game/tools/missionAreaEditor/missionAreaEditorGui.ed.cs @@ -25,11 +25,14 @@ function MissionAreaEditorGui::onEditorActivated( %this ) EWorldEditor.clearSelection(); %ma = getMissionAreaServerObject(); - EWorldEditor.selectObject( %ma ); - EWorldEditor.syncGui(); - MissionAreaEditorTerrainEditor.updateTerrain(); - %this.setSelectedMissionArea( %ma ); - %this.onMissionAreaSelected( %this.getSelectedMissionArea() ); + if( isObject( %ma ) ) + { + EWorldEditor.selectObject( %ma ); + EWorldEditor.syncGui(); + MissionAreaEditorTerrainEditor.updateTerrain(); + %this.setSelectedMissionArea( %ma ); + %this.onMissionAreaSelected( %this.getSelectedMissionArea() ); + } } function MissionAreaEditorGui::onEditorDeactivated( %this ) diff --git a/Templates/Full/game/tools/missionAreaEditor/main.cs b/Templates/Full/game/tools/missionAreaEditor/main.cs index 196a2d515..000197bc6 100644 --- a/Templates/Full/game/tools/missionAreaEditor/main.cs +++ b/Templates/Full/game/tools/missionAreaEditor/main.cs @@ -99,6 +99,27 @@ function MissionAreaEditorPlugin::onDeactivated( %this ) Parent::onDeactivated(%this); } +function MissionAreaEditorPlugin::setEditorFunction( %this ) +{ + %missionAreaExists = isObject(getMissionAreaServerObject()); + + if( %missionAreaExists == false ) + MessageBoxYesNoCancel("No Mission Area","Would you like to create a New Mission Area?", "MissionAreaEditorPlugin.createNewMissionArea();"); + + return %missionAreaExists; +} + +function MissionAreaEditorPlugin::createNewMissionArea(%this) +{ + %newMissionArea = new MissionArea(); + %newMissionArea.area = "-256 -256 512 512"; + + MissionGroup.add(%newMissionArea); + + EditorGui.setEditor(MissionAreaEditorPlugin); + + EWorldEditor.isDirty = true; +} //----------------------------------------------------------------------------- // Settings //----------------------------------------------------------------------------- diff --git a/Templates/Full/game/tools/missionAreaEditor/missionAreaEditorGui.ed.cs b/Templates/Full/game/tools/missionAreaEditor/missionAreaEditorGui.ed.cs index 81c39eda3..7d8e79225 100644 --- a/Templates/Full/game/tools/missionAreaEditor/missionAreaEditorGui.ed.cs +++ b/Templates/Full/game/tools/missionAreaEditor/missionAreaEditorGui.ed.cs @@ -25,11 +25,14 @@ function MissionAreaEditorGui::onEditorActivated( %this ) EWorldEditor.clearSelection(); %ma = getMissionAreaServerObject(); - EWorldEditor.selectObject( %ma ); - EWorldEditor.syncGui(); - MissionAreaEditorTerrainEditor.updateTerrain(); - %this.setSelectedMissionArea( %ma ); - %this.onMissionAreaSelected( %this.getSelectedMissionArea() ); + if( isObject( %ma ) ) + { + EWorldEditor.selectObject( %ma ); + EWorldEditor.syncGui(); + MissionAreaEditorTerrainEditor.updateTerrain(); + %this.setSelectedMissionArea( %ma ); + %this.onMissionAreaSelected( %this.getSelectedMissionArea() ); + } } function MissionAreaEditorGui::onEditorDeactivated( %this )