mirror of
https://github.com/Ragora/TribesReplay.git
synced 2026-01-20 01:54:47 +00:00
337 lines
8.9 KiB
Plaintext
337 lines
8.9 KiB
Plaintext
|
|
//--- OBJECT WRITE BEGIN ---
|
||
|
|
new GuiControl(EditorSaveMissionDlg) {
|
||
|
|
profile = "GuiDefaultProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "0 0";
|
||
|
|
extent = "640 480";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
|
||
|
|
new GuiWindowCtrl() {
|
||
|
|
profile = "GuiWindowProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "168 81";
|
||
|
|
extent = "333 313";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
text = "Save Mission...";
|
||
|
|
resizeWidth = "1";
|
||
|
|
resizeHeight = "1";
|
||
|
|
canMove = "1";
|
||
|
|
canClose = "1";
|
||
|
|
canMinimize = "1";
|
||
|
|
canMaximize = "1";
|
||
|
|
minSize = "50 50";
|
||
|
|
|
||
|
|
new GuiControl() {
|
||
|
|
profile = "GuiButtonProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "8 50";
|
||
|
|
extent = "317 226";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
|
||
|
|
new GuiTextCtrl() {
|
||
|
|
profile = "GuiMediumBoldTextProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "6 6";
|
||
|
|
extent = "249 20";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
text = "Select the files which you wish to save:";
|
||
|
|
};
|
||
|
|
new GuiCheckBoxCtrl(SaveMissionCheckBox) {
|
||
|
|
profile = "GuiButtonProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "10 32";
|
||
|
|
extent = "132 22";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
text = "Mission File";
|
||
|
|
};
|
||
|
|
new GuiTextCtrl(SaveMissionText) {
|
||
|
|
profile = "GuiTextProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "22 56";
|
||
|
|
extent = "64 18";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
};
|
||
|
|
new GuiTextCtrl(SaveTerrainText) {
|
||
|
|
profile = "GuiTextProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "22 102";
|
||
|
|
extent = "56 18";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
};
|
||
|
|
new GuiCheckBoxCtrl(SaveTerrainCheckBox) {
|
||
|
|
profile = "GuiButtonProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "10 77";
|
||
|
|
extent = "132 22";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
text = "Terrain";
|
||
|
|
};
|
||
|
|
new GuiCheckBoxCtrl(SaveHeightFieldScriptCheckBox) {
|
||
|
|
profile = "GuiButtonProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "10 122";
|
||
|
|
extent = "132 22";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
text = "Heightfield Script";
|
||
|
|
};
|
||
|
|
new GuiTextCtrl(SaveHeightFieldScriptText) {
|
||
|
|
profile = "GuiTextProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "22 148";
|
||
|
|
extent = "162 18";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
};
|
||
|
|
new GuiTextCtrl(SaveTextureScriptText) {
|
||
|
|
profile = "GuiTextProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "22 194";
|
||
|
|
extent = "132 18";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
};
|
||
|
|
new GuiCheckBoxCtrl(SaveTerrainScriptCheckBox) {
|
||
|
|
profile = "GuiButtonProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "10 167";
|
||
|
|
extent = "132 22";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
text = "Texture Script";
|
||
|
|
};
|
||
|
|
};
|
||
|
|
new GuiButtonCtrl() {
|
||
|
|
profile = "GuiButtonProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "158 284";
|
||
|
|
extent = "72 22";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
command = "EditorSaveMissionDlg.doSave();Canvas.popDialog(EditorSaveMissionDlg);";
|
||
|
|
helpTag = "0";
|
||
|
|
text = "OK";
|
||
|
|
};
|
||
|
|
new GuiTextEditCtrl(MissionNameTextEdit) {
|
||
|
|
profile = "GuiTextEditProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "87 26";
|
||
|
|
extent = "238 18";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
altCommand = "EditorSaveMissionDlg.missionName = $ThisControl.getValue();EditorSaveMissionDlg.updateTextFields();";
|
||
|
|
helpTag = "0";
|
||
|
|
historySize = "0";
|
||
|
|
};
|
||
|
|
new GuiButtonCtrl() {
|
||
|
|
profile = "GuiButtonProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "241 284";
|
||
|
|
extent = "72 22";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
command = "Canvas.popDialog(EditorSaveMissionDlg);";
|
||
|
|
helpTag = "0";
|
||
|
|
text = "Cancel";
|
||
|
|
};
|
||
|
|
new GuiTextCtrl() {
|
||
|
|
profile = "GuiTextProfile";
|
||
|
|
horizSizing = "right";
|
||
|
|
vertSizing = "bottom";
|
||
|
|
position = "13 28";
|
||
|
|
extent = "66 18";
|
||
|
|
minExtent = "8 8";
|
||
|
|
visible = "1";
|
||
|
|
setFirstResponder = "0";
|
||
|
|
modal = "1";
|
||
|
|
helpTag = "0";
|
||
|
|
text = "Mission Name";
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
//--- OBJECT WRITE END ---
|
||
|
|
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
// Functions
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
function EditorSaveMissionDlg::updateTextFields(%this)
|
||
|
|
{
|
||
|
|
SaveMissionText.setValue("missions/" @ %this.missionName @ ".mis");
|
||
|
|
SaveTerrainText.setValue("terrains/" @ %this.missionName @ ".ter");
|
||
|
|
SaveTextureScriptText.setValue("terrains/texture/" @ %this.missionName @ "_texture.cs");
|
||
|
|
SaveHeightFieldScriptText.setValue("terrains/heightfield/" @ %this.missionName @ "_heightfield.cs");
|
||
|
|
}
|
||
|
|
|
||
|
|
function EditorSaveMissionDlg::onWake(%this)
|
||
|
|
{
|
||
|
|
%this.missionName = fileBase($MissionName);
|
||
|
|
|
||
|
|
//
|
||
|
|
MissionNameTextEdit.setValue(%this.missionName);
|
||
|
|
%this.updateTextFields();
|
||
|
|
|
||
|
|
// set all to be saved
|
||
|
|
if(%this.initialized != true)
|
||
|
|
{
|
||
|
|
SaveMissionCheckBox.setValue(1);
|
||
|
|
SaveTerrainCheckBox.setValue(1);
|
||
|
|
SaveTerrainScriptCheckBox.setValue(1);
|
||
|
|
SaveHeightFieldScriptCheckBox.setValue(1);
|
||
|
|
|
||
|
|
%this.initialized = true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function EditorSaveMissionDlg::doSave(%this)
|
||
|
|
{
|
||
|
|
//
|
||
|
|
if(!isObject(MissionGroup))
|
||
|
|
{
|
||
|
|
error("No mission exists to save!");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// check the files for write access
|
||
|
|
//---------------------------------
|
||
|
|
if(SaveMissionCheckBox.getValue())
|
||
|
|
{
|
||
|
|
%file = "base/missions/" @ %this.missionName @ ".mis";
|
||
|
|
if(!isWriteableFileName(%file))
|
||
|
|
{
|
||
|
|
error("Mission file '" @ %file @ "' is not writeable.");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if(SaveTerrainCheckBox.getValue())
|
||
|
|
{
|
||
|
|
%file = "base/terrains/" @ %this.missionName @ ".ter";
|
||
|
|
if(!isWriteableFileName(%file))
|
||
|
|
{
|
||
|
|
error("Terrain file '" @ %file @ "' is not writeable.");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if(SaveTerrainScriptCheckBox.getValue())
|
||
|
|
{
|
||
|
|
%file = "base/terrains/texture/" @ %this.missionName @ "_texture.cs";
|
||
|
|
if(!isWriteableFileName(%file))
|
||
|
|
{
|
||
|
|
error("Terrain texture script file '" @ %file @ "' is not writeable.");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if(SaveHeightFieldScriptCheckBox.getValue())
|
||
|
|
{
|
||
|
|
%file = "base/terrains/heightfield/" @ %this.missionName @ "_heightfield.cs";
|
||
|
|
if(!isWriteableFileName(%file))
|
||
|
|
{
|
||
|
|
error("Terrain heightfield script file '" @ %file @ "' is not writeable.");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Now, save out the files...
|
||
|
|
//---------------------------------
|
||
|
|
if(SaveMissionCheckBox.getValue())
|
||
|
|
{
|
||
|
|
// rename the terrainFile field in the TerrainBlock obj
|
||
|
|
if(SaveTerrainCheckBox.getValue())
|
||
|
|
if(isObject(terrain))
|
||
|
|
terrain.terrainFile = %this.missionName @ ".ter";
|
||
|
|
|
||
|
|
//
|
||
|
|
missionGroup.save("missions/" @ %this.missionName @ ".mis");
|
||
|
|
$MissionName = %this.missionName @ ".mis";
|
||
|
|
}
|
||
|
|
|
||
|
|
// requires that the terrain object be named 'terrain'
|
||
|
|
if(SaveTerrainCheckBox.getValue())
|
||
|
|
if(isObject(terrain))
|
||
|
|
terrain.save(%this.missionName @ ".ter");
|
||
|
|
else
|
||
|
|
warn(" Failed to save TerrainObject (no object exists)");
|
||
|
|
|
||
|
|
//
|
||
|
|
if(SaveTerrainScriptCheckBox.getValue())
|
||
|
|
if(Texture_material.rowCount())
|
||
|
|
Texture::save(%this.missionName @ "_texture.cs");
|
||
|
|
else
|
||
|
|
warn(" Failed to save Terrain Script file. Nothing to save.");
|
||
|
|
|
||
|
|
//
|
||
|
|
if(SaveHeightFieldScriptCheckBox.getValue())
|
||
|
|
if(Heightfield_operation.rowCount())
|
||
|
|
HeightField::doSaveHeightfield(%this.missionName @ "_heightfield.cs");
|
||
|
|
else
|
||
|
|
warn(" Failed to save HeightField Script file. Nothing to save.");
|
||
|
|
}
|