diff --git a/Templates/BaseGame/game/data/ExampleModule/ExampleModule.tscript b/Templates/BaseGame/game/data/ExampleModule/ExampleModule.tscript
index 0b233dc61..0f540c0d8 100644
--- a/Templates/BaseGame/game/data/ExampleModule/ExampleModule.tscript
+++ b/Templates/BaseGame/game/data/ExampleModule/ExampleModule.tscript
@@ -81,6 +81,7 @@ function ExampleModule::initClient(%this)
exec(%prefPath @ "/keybinds." @ $TorqueScriptFileExtension);
%this.queueExec("./scripts/inputCommands");
+ addOptionsMenuCategory("Example Options", "testExampleOptions();");
}
//This is called when a game session client successfuly connects to a game server.
@@ -105,4 +106,9 @@ function ExampleModule::onDestroyClientConnection(%this)
{
//This will pop the keybind, cleaning it up from the input stack, as it no longer applies
ExampleMoveMap.pop();
+}
+
+function testExampleOptions()
+{
+ addListOption("Test Option", "This is a test option", $testOptionValue, "OptionA\tOptionB");
}
\ No newline at end of file
diff --git a/Templates/BaseGame/game/data/UI/UI.module b/Templates/BaseGame/game/data/UI/UI.module
index 1ab3024a2..ed204d1b1 100644
--- a/Templates/BaseGame/game/data/UI/UI.module
+++ b/Templates/BaseGame/game/data/UI/UI.module
@@ -11,4 +11,4 @@
canSaveDynamicFields="true"
Extension="asset.taml"
Recurse="true" />
-
\ No newline at end of file
+
diff --git a/Templates/BaseGame/game/data/UI/UI.tscript b/Templates/BaseGame/game/data/UI/UI.tscript
index 5b8c1ee6a..cd645f86f 100644
--- a/Templates/BaseGame/game/data/UI/UI.tscript
+++ b/Templates/BaseGame/game/data/UI/UI.tscript
@@ -83,4 +83,4 @@ function UI::initClient(%this)
function UI::onCreateClientConnection(%this){}
-function UI::onDestroyClientConnection(%this){}
\ No newline at end of file
+function UI::onDestroyClientConnection(%this){}
diff --git a/Templates/BaseGame/game/data/UI/datablocks/guiSounds.asset.taml b/Templates/BaseGame/game/data/UI/datablocks/guiSounds.asset.taml
index 81e2a8e24..7e5a1cada 100644
--- a/Templates/BaseGame/game/data/UI/datablocks/guiSounds.asset.taml
+++ b/Templates/BaseGame/game/data/UI/datablocks/guiSounds.asset.taml
@@ -2,5 +2,5 @@
canSave="true"
canSaveDynamicFields="true"
AssetName="guiSounds"
- scriptFile="@assetFile=guiSounds.cs"
+ scriptFile="@assetFile=guiSounds"
VersionId="1" />
diff --git a/Templates/BaseGame/game/data/UI/datablocks/guiSounds.tscript b/Templates/BaseGame/game/data/UI/datablocks/guiSounds.tscript
index 0aab47fb9..4eed5f78a 100644
--- a/Templates/BaseGame/game/data/UI/datablocks/guiSounds.tscript
+++ b/Templates/BaseGame/game/data/UI/datablocks/guiSounds.tscript
@@ -31,4 +31,4 @@ singleton SFXProfile(menuButtonHover)
preload = true;
description = AudioGui;
fileName = "data/ui/sounds/buttonHover";
-};
\ No newline at end of file
+};
diff --git a/Templates/BaseGame/game/data/UI/guis/ChooseLevelDlg.asset.taml b/Templates/BaseGame/game/data/UI/guis/ChooseLevelDlg.asset.taml
index 2d6a987f0..9090ea1af 100644
--- a/Templates/BaseGame/game/data/UI/guis/ChooseLevelDlg.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/ChooseLevelDlg.asset.taml
@@ -1,7 +1,5 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/GuiMusicPlayer.asset.taml b/Templates/BaseGame/game/data/UI/guis/GuiMusicPlayer.asset.taml
index 7014d72a6..94601d7a3 100644
--- a/Templates/BaseGame/game/data/UI/guis/GuiMusicPlayer.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/GuiMusicPlayer.asset.taml
@@ -1,7 +1,5 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/IODropdownDlg.asset.taml b/Templates/BaseGame/game/data/UI/guis/IODropdownDlg.asset.taml
index b929c70b0..d1d0c8c8e 100644
--- a/Templates/BaseGame/game/data/UI/guis/IODropdownDlg.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/IODropdownDlg.asset.taml
@@ -1,7 +1,4 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/JoinServerMenu.asset.taml b/Templates/BaseGame/game/data/UI/guis/JoinServerMenu.asset.taml
index 0ca202e6d..85da0192a 100644
--- a/Templates/BaseGame/game/data/UI/guis/JoinServerMenu.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/JoinServerMenu.asset.taml
@@ -1,7 +1,5 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/LoadingGui.asset.taml b/Templates/BaseGame/game/data/UI/guis/LoadingGui.asset.taml
index 196bc91e7..fc8ac974c 100644
--- a/Templates/BaseGame/game/data/UI/guis/LoadingGui.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/LoadingGui.asset.taml
@@ -1,7 +1,4 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/MainMenuGui.asset.taml b/Templates/BaseGame/game/data/UI/guis/MainMenuGui.asset.taml
index 2fd6b7c72..cdd3c6635 100644
--- a/Templates/BaseGame/game/data/UI/guis/MainMenuGui.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/MainMenuGui.asset.taml
@@ -1,7 +1,5 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/MessageBoxDlg.asset.taml b/Templates/BaseGame/game/data/UI/guis/MessageBoxDlg.asset.taml
index 9b9d38995..14ff4ba60 100644
--- a/Templates/BaseGame/game/data/UI/guis/MessageBoxDlg.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/MessageBoxDlg.asset.taml
@@ -1,7 +1,4 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/NetGraphProfile.asset.taml b/Templates/BaseGame/game/data/UI/guis/NetGraphProfile.asset.taml
deleted file mode 100644
index 2ee15e4ea..000000000
--- a/Templates/BaseGame/game/data/UI/guis/NetGraphProfile.asset.taml
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/Templates/BaseGame/game/data/UI/guis/OptionsMenu.asset.taml b/Templates/BaseGame/game/data/UI/guis/OptionsMenu.asset.taml
index a00b4c7d4..0488ea976 100644
--- a/Templates/BaseGame/game/data/UI/guis/OptionsMenu.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/OptionsMenu.asset.taml
@@ -1,7 +1,5 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/PauseMenu.asset.taml b/Templates/BaseGame/game/data/UI/guis/PauseMenu.asset.taml
index c3806430a..08a16f03d 100644
--- a/Templates/BaseGame/game/data/UI/guis/PauseMenu.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/PauseMenu.asset.taml
@@ -1,7 +1,5 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/ProfilerGui.asset.taml b/Templates/BaseGame/game/data/UI/guis/ProfilerGui.asset.taml
index 0e49346ab..09b400893 100644
--- a/Templates/BaseGame/game/data/UI/guis/ProfilerGui.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/ProfilerGui.asset.taml
@@ -1,7 +1,5 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/RemapConfirmDlg.asset.taml b/Templates/BaseGame/game/data/UI/guis/RemapConfirmDlg.asset.taml
index 1e3fb30aa..6fc8c874a 100644
--- a/Templates/BaseGame/game/data/UI/guis/RemapConfirmDlg.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/RemapConfirmDlg.asset.taml
@@ -1,7 +1,4 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/RemapDlg.asset.taml b/Templates/BaseGame/game/data/UI/guis/RemapDlg.asset.taml
index 6b1c4df9a..7ea99e19c 100644
--- a/Templates/BaseGame/game/data/UI/guis/RemapDlg.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/RemapDlg.asset.taml
@@ -1,7 +1,4 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/StartupGui.asset.taml b/Templates/BaseGame/game/data/UI/guis/StartupGui.asset.taml
index 656157f71..876b039a6 100644
--- a/Templates/BaseGame/game/data/UI/guis/StartupGui.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/StartupGui.asset.taml
@@ -1,7 +1,5 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/chooseLevelDlg.gui b/Templates/BaseGame/game/data/UI/guis/chooseLevelDlg.gui
index fc2ffc57e..775e910f0 100644
--- a/Templates/BaseGame/game/data/UI/guis/chooseLevelDlg.gui
+++ b/Templates/BaseGame/game/data/UI/guis/chooseLevelDlg.gui
@@ -36,7 +36,7 @@ $guiContent = new GuiControl(ChooseLevelDlg) {
percent = "100";
vertical = "0";
flipClip = "0";
- bitmap = "data/ui/images/panel.png";
+ bitmapAsset = "UI:panel_image";
color = "255 255 255 255";
position = "0 0";
extent = "927 40";
@@ -79,7 +79,7 @@ $guiContent = new GuiControl(ChooseLevelDlg) {
percent = "100";
vertical = "0";
flipClip = "0";
- bitmap = "data/ui/images/panel_low.png";
+ bitmapAsset = "UI:panel_low_image";
color = "255 255 255 255";
position = "0 40";
extent = "927 618";
diff --git a/Templates/BaseGame/game/data/UI/guis/controlsMenuSetting.taml b/Templates/BaseGame/game/data/UI/guis/controlsMenuSetting.taml
deleted file mode 100644
index e2794ca4a..000000000
--- a/Templates/BaseGame/game/data/UI/guis/controlsMenuSetting.taml
+++ /dev/null
@@ -1,102 +0,0 @@
-
diff --git a/Templates/BaseGame/game/data/UI/guis/joinServerMenu.gui b/Templates/BaseGame/game/data/UI/guis/joinServerMenu.gui
index 17a2c4435..c812e624c 100644
--- a/Templates/BaseGame/game/data/UI/guis/joinServerMenu.gui
+++ b/Templates/BaseGame/game/data/UI/guis/joinServerMenu.gui
@@ -425,7 +425,7 @@ $guiContent = new GuiControl(JoinServerMenu) {
vertSizing = "bottom";
profile = "GuiMenuButtonProfile";
visible = "1";
- active = "1";
+ active = "0";
command = "JoinServerMenu.join();";
tooltipProfile = "GuiToolTipProfile";
hovertime = "1000";
diff --git a/Templates/BaseGame/game/data/UI/guis/joinServerMenu.tscript b/Templates/BaseGame/game/data/UI/guis/joinServerMenu.tscript
index b2f0eb8eb..1fe75bd46 100644
--- a/Templates/BaseGame/game/data/UI/guis/joinServerMenu.tscript
+++ b/Templates/BaseGame/game/data/UI/guis/joinServerMenu.tscript
@@ -1,10 +1,6 @@
-function JoinServerMenu::onWake()
+function JoinServerMenu::onWake(%this)
{
- // Double check the status. Tried setting this the control
- // inactive to start with, but that didn't seem to work.
- JoinServerJoinBtn.setActive(JoinServerList.getCount() > 0);
-
JoinServerButtonHolder.setActive();
JoinServerList.setAsActiveMenuList();
@@ -128,7 +124,7 @@ function JoinServerMenu::update(%this)
JoinServerList.add(%serverBtn);
}
- JoinServerJoinBtn.setActive(JoinServerList.getCount() > 0);
+ JoinServerButtonHolder-->joinButton.setActive(JoinServerList.getCount() > 0);
}
//----------------------------------------
diff --git a/Templates/BaseGame/game/data/UI/guis/mainMenu.gui b/Templates/BaseGame/game/data/UI/guis/mainMenu.gui
index 4c6c13697..6b1dad9ee 100644
--- a/Templates/BaseGame/game/data/UI/guis/mainMenu.gui
+++ b/Templates/BaseGame/game/data/UI/guis/mainMenu.gui
@@ -1,6 +1,6 @@
//--- OBJECT WRITE BEGIN ---
$guiContent = new GuiChunkedBitmapCtrl(MainMenuGui) {
- BitmapAsset = "UI:background_dark_image";
+ BitmapAsset = "UI:backgrounddark_image";
useVariable = "0";
tile = "0";
position = "0 0";
@@ -203,7 +203,7 @@ $guiContent = new GuiChunkedBitmapCtrl(MainMenuGui) {
profile = "GuiMenuButtonProfile";
visible = "1";
active = "1";
- command = "exit();";
+ command = "quit();";
tooltipProfile = "GuiToolTipProfile";
hovertime = "1000";
isContainer = "0";
diff --git a/Templates/BaseGame/game/data/UI/guis/mainMenu.tscript b/Templates/BaseGame/game/data/UI/guis/mainMenu.tscript
index 0d830f176..c626c4952 100644
--- a/Templates/BaseGame/game/data/UI/guis/mainMenu.tscript
+++ b/Templates/BaseGame/game/data/UI/guis/mainMenu.tscript
@@ -66,4 +66,5 @@ function MainMenuGui::onReturnTo(%this)
MainMenuButtonList.hidden = false;
MainMenuButtonList.setFirstResponder();
MainMenuButtonHolder.setActive();
-}
\ No newline at end of file
+ MainMenuButtonList.setAsActiveMenuList();
+}
diff --git a/Templates/BaseGame/game/data/UI/guis/messageBoxDlg.gui b/Templates/BaseGame/game/data/UI/guis/messageBoxDlg.gui
index a78ae98d5..91207adff 100644
--- a/Templates/BaseGame/game/data/UI/guis/messageBoxDlg.gui
+++ b/Templates/BaseGame/game/data/UI/guis/messageBoxDlg.gui
@@ -34,7 +34,7 @@ $guiContent = new GuiControl(MessageBoxDlg) {
percent = "100";
vertical = "0";
flipClip = "0";
- bitmap = "data/ui/images/panel.png";
+ bitmapAsset = "UI:panel_image";
color = "255 255 255 255";
position = "0 0";
extent = "641 40";
@@ -77,7 +77,7 @@ $guiContent = new GuiControl(MessageBoxDlg) {
percent = "100";
vertical = "0";
flipClip = "0";
- bitmap = "data/ui/images/panel_low.png";
+ bitmapAsset = "UI:panel_low_image";
color = "255 255 255 255";
position = "0 40";
extent = "641 341";
diff --git a/Templates/BaseGame/game/data/UI/guis/netGraphGui.gui b/Templates/BaseGame/game/data/UI/guis/netGraphGui.gui
index be8ba1233..9da782ba7 100644
--- a/Templates/BaseGame/game/data/UI/guis/netGraphGui.gui
+++ b/Templates/BaseGame/game/data/UI/guis/netGraphGui.gui
@@ -554,4 +554,4 @@ function NetGraph::updateNetworkSimulation(%this)
}
netSimulateLag( %latency, %packetLoss );
-}
\ No newline at end of file
+}
diff --git a/Templates/BaseGame/game/data/UI/guis/optionsMenu.gui b/Templates/BaseGame/game/data/UI/guis/optionsMenu.gui
index b7195557c..a8fc2fb1e 100644
--- a/Templates/BaseGame/game/data/UI/guis/optionsMenu.gui
+++ b/Templates/BaseGame/game/data/UI/guis/optionsMenu.gui
@@ -213,127 +213,6 @@ $guiContent = new GuiControl(OptionsMenu) {
class = "MenuList";
canSave = "1";
canSaveDynamicFields = "0";
-
- new GuiButtonCtrl(OptionsMenuDisplayBtn) {
- text = "Display";
- groupNum = "-1";
- buttonType = "PushButton";
- useMouseEvents = "0";
- position = "0 0";
- extent = "248 35";
- minExtent = "8 2";
- horizSizing = "right";
- vertSizing = "bottom";
- profile = "GuiMenuButtonProfile";
- visible = "1";
- active = "1";
- command = "populateDisplaySettingsList();";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
- new GuiButtonCtrl(OptionsMenuGraphicsBtn) {
- text = "Graphics";
- groupNum = "-1";
- buttonType = "PushButton";
- useMouseEvents = "0";
- position = "0 45";
- extent = "248 35";
- minExtent = "8 2";
- horizSizing = "right";
- vertSizing = "bottom";
- profile = "GuiMenuButtonProfile";
- visible = "1";
- active = "1";
- command = "populateGraphicsSettingsList();";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
- new GuiButtonCtrl(OptionsMenuAudioBtn) {
- text = "Audio";
- groupNum = "-1";
- buttonType = "PushButton";
- useMouseEvents = "0";
- position = "0 90";
- extent = "248 35";
- minExtent = "8 2";
- horizSizing = "right";
- vertSizing = "bottom";
- profile = "GuiMenuButtonProfile";
- visible = "1";
- active = "1";
- command = "populateAudioSettingsList();";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
- new GuiButtonCtrl(OptionsMenuKBMBtn) {
- text = "Keyboard & Mouse";
- groupNum = "-1";
- buttonType = "PushButton";
- useMouseEvents = "0";
- position = "0 135";
- extent = "248 35";
- minExtent = "8 2";
- horizSizing = "right";
- vertSizing = "bottom";
- profile = "GuiMenuButtonProfile";
- visible = "1";
- active = "1";
- command = "populateKeyboardMouseSettingsList();";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
- new GuiButtonCtrl(OptionsMenuGamepadBtn) {
- text = "Gamepad";
- groupNum = "-1";
- buttonType = "PushButton";
- useMouseEvents = "0";
- position = "0 180";
- extent = "248 35";
- minExtent = "8 2";
- horizSizing = "right";
- vertSizing = "bottom";
- profile = "GuiMenuButtonProfile";
- visible = "1";
- active = "1";
- command = "populateGamepadSettingsList();";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
- new GuiButtonCtrl(OptionsMenuProfileBtn) {
- text = "Profile";
- groupNum = "-1";
- buttonType = "PushButton";
- useMouseEvents = "0";
- position = "0 225";
- extent = "248 35";
- minExtent = "8 2";
- horizSizing = "right";
- vertSizing = "bottom";
- profile = "GuiMenuButtonProfile";
- visible = "1";
- active = "1";
- command = "populateProfileSettingsList();";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
};
};
new GuiPanel() {
@@ -493,68 +372,6 @@ $guiContent = new GuiControl(OptionsMenu) {
canSave = "1";
canSaveDynamicFields = "0";
};
- new GuiIconButtonCtrl() {
- buttonMargin = "4 4";
- BitmapAsset = "UI:Switch_LB_image";
- iconLocation = "Left";
- sizeIconToButton = "1";
- makeIconSquare = "1";
- textLocation = "Right";
- textMargin = "4";
- autoSize = "0";
- text = "Prev Tab";
- groupNum = "-1";
- buttonType = "PushButton";
- useMouseEvents = "0";
- position = "0 0";
- extent = "140 40";
- minExtent = "8 2";
- horizSizing = "right";
- vertSizing = "bottom";
- profile = "GuiMenuButtonProfile";
- visible = "0";
- active = "0";
- command = "OptionsMenu.prevTab();";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- internalName = "prevTabButton";
- class = "MenuInputButton";
- hidden = "1";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
- new GuiIconButtonCtrl() {
- buttonMargin = "4 4";
- BitmapAsset = "UI:Switch_RB_image";
- iconLocation = "Left";
- sizeIconToButton = "1";
- makeIconSquare = "1";
- textLocation = "Right";
- textMargin = "4";
- autoSize = "0";
- text = "Next Tab";
- groupNum = "-1";
- buttonType = "PushButton";
- useMouseEvents = "0";
- position = "144 0";
- extent = "140 40";
- minExtent = "8 2";
- horizSizing = "right";
- vertSizing = "bottom";
- profile = "GuiMenuButtonProfile";
- visible = "0";
- active = "0";
- command = "OptionsMenu.nextTab();";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- internalName = "nextTabButton";
- class = "MenuInputButton";
- hidden = "1";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
new GuiIconButtonCtrl() {
buttonMargin = "4 4";
BitmapAsset = "UI:Keyboard_Black_R_image";
diff --git a/Templates/BaseGame/game/data/UI/guis/optionsMenu.tscript b/Templates/BaseGame/game/data/UI/guis/optionsMenu.tscript
index eac532203..48612b943 100644
--- a/Templates/BaseGame/game/data/UI/guis/optionsMenu.tscript
+++ b/Templates/BaseGame/game/data/UI/guis/optionsMenu.tscript
@@ -46,12 +46,67 @@
//headbob
//FOV
+function OptionsMenu::onAdd(%this)
+{
+ if(!isObject(%this.optionsCategories))
+ {
+ %this.optionsCategories = new ArrayObject();
+ }
+
+ if(!isObject(%this.unappliedChanges))
+ {
+ %this.unappliedChanges = new ArrayObject();
+ }
+
+ addOptionsMenuCategory("Display", "populateDisplaySettingsList();");
+ addOptionsMenuCategory("Graphics", "populateGraphicsSettingsList();");
+ addOptionsMenuCategory("Audio", "populateAudioSettingsList();");
+ addOptionsMenuCategory("Keyboard & Mouse", "populateKeyboardMouseSettingsList();");
+ addOptionsMenuCategory("Gamepad", "populateGamepadSettingsList();");
+}
+
function OptionsMenuSettingsList::onAdd(%this)
{
}
+function OptionsMenuSettingsList::getOptionsList(%this, %index)
+{
+
+}
+
function OptionsMenu::onWake(%this)
{
+ for(%i=0; %i < %this.optionsCategories.count(); %i++)
+ {
+ %catName = %this.optionsCategories.getKey(%i);
+ %callback = %this.optionsCategories.getValue(%i);
+
+ %newCatButton = new GuiButtonCtrl() {
+ text = %catName;
+ groupNum = "-1";
+ buttonType = "PushButton";
+ useMouseEvents = "0";
+ position = "0 180";
+ extent = "248 35";
+ minExtent = "8 2";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ profile = "GuiMenuButtonProfile";
+ visible = "1";
+ active = "1";
+ command = %callback;
+ tooltipProfile = "GuiToolTipProfile";
+ hovertime = "1000";
+ isContainer = "0";
+ canSave = "1";
+ canSaveDynamicFields = "0";
+ };
+
+ OptionsMenuCategoryList.add(%newCatButton);
+ }
+
+ %this.unappliedChanges.empty();
+
MainMenuButtonList.hidden = true;
OptionsMenuCategoryList.setAsActiveMenuList();
@@ -63,8 +118,6 @@ function OptionsMenu::onWake(%this)
function OptionsButtonHolder::onWake(%this)
{
- //%this-->prevTabButton.set("btn_l", "", "Prev Tab", "OptionsMenu.prevTab();", true);
- %this-->nextTabButton.set("btn_a", "", "Select", "OptionsMenuList.activate();", true);
%this-->resetButton.set("btn_back", "R", "Reset", "OptionsMenu.resetToDefaults();");
%this-->applyButton.set("btn_start", "Return", "Apply", "OptionsMenu.apply();");
%this-->backButton.set("btn_b", "Escape", "Back", "OptionsMenu.backOut();");
@@ -74,19 +127,81 @@ function OptionsButtonHolder::onWake(%this)
function OptionsMenu::apply(%this)
{
- if(%this.pageTabIndex == 0)
+ //Now we run through our list of unapplied changes and... apply them.
+ %hasKeybindChanges = false;
+ %hasVideoChanges = false;
+ %hasPostFXChanges = false;
+ %hasAudioChanges = false;
+ for(%i=0; %i < %this.unappliedChanges.count(); %i++)
{
- %this.applyDisplaySettings();
+ %targetVar = %this.unappliedChanges.getKey(%i);
+ %newValue = %this.unappliedChanges.getValue(%i);
+
+ //First, lets just check through our action map names, see if any match
+ %wasKeybind = false;
+ for(%am=0; %am < ActionMapGroup.getCount(); %am++)
+ {
+ %actionMap = ActionMapGroup.getObject(%am);
+
+ if(%actionMap == GlobalActionMap.getId())
+ continue;
+
+ %actionMapName = %actionMap.humanReadableName $= "" ? %actionMap.getName() : %actionMap.humanReadableName;
+ if(%actionMapName $= %targetVar)
+ {
+ %hasKeybindChanges = true;
+ %wasKeybind = true;
+ break;
+ }
+ }
+
+ if(!%wasKeybind)
+ {
+ %currentValue = getVariable(%targetVar);
+ if(%currentValue !$= %newValue)
+ {
+ setVariable(%targetVar, %newValue);
+
+ //now, lets check for special cases that need additional handling
+ //for updates
+ if ( %targetVar $= "$pref::Video::displayDevice" )
+ {
+ MessageBoxOK( "Change requires restart", "Please restart the game for a display device change to take effect." );
+ }
+ else if(startsWith(%targetVar, "$pref::Graphics::"))
+ {
+ //isolate the quality group name, like $pref::Graphics::LightingQuality
+ //we grab LightingQuality
+ %qualityGroupName = getSubStr(%targetVar, 17);
+ if(isObject(%qualityGroupName @ "List"))
+ {
+ //yep, it's a quality group, so apply it
+ (%qualityGroupName @ "List").applySetting(%newValue);
+ }
+
+ if(%qualityGroupName $= "TextureQuality")
+ {
+ reloadTextures();
+ }
+ }
+ else if(startsWith(%targetVar, "$pref::PostFX::"))
+ {
+ %hasPostFXChanges = true;
+ }
+ else if(startsWith(%targetVar, "$pref::Video::"))
+ {
+ %hasVideoChanges = true;
+ }
+ else if(startsWith(%targetVar, "$pref::SFX::"))
+ {
+ %hasAudioChanges = true;
+ }
+ }
+ }
}
- else if(%this.pageTabIndex == 1)
- {
- %this.applyGraphicsSettings();
- }
- else if(%this.pageTabIndex == 2)
- {
- %this.applyAudioSettings();
- }
- else if(%this.pageTabIndex == 3 || %this.pageTabIndex == 4)
+
+ //If we had keybind changes, go ahead and save those out
+ if(%hasKeybindChanges)
{
%prefPath = getPrefpath();
@@ -108,8 +223,26 @@ function OptionsMenu::apply(%this)
}
}
+ if(%hasPostFXChanges)
+ {
+ updatePostFXSettings();
+ }
+
+ if(%hasVideoChanges)
+ {
+ updateDisplaySettings();
+ }
+
+ if(%hasAudioChanges)
+ {
+ updateAudioSettings();
+ }
+
+ //Finally, write our prefs to file
%prefPath = getPrefpath();
export("$pref::*", %prefPath @ "/clientPrefs." @ $TorqueScriptFileExtension, false);
+
+ OptionsMenu.unappliedChanges.empty();
}
function OptionsMenu::resetToDefaults(%this)
@@ -117,77 +250,9 @@ function OptionsMenu::resetToDefaults(%this)
MessageBoxOKCancel("", "This will set the graphical settings back to the auto-detected defaults. Do you wish to continue?", "AutodetectGraphics();", "");
}
-function OptionsMenuSettingsList::onChange(%this)
-{
- %optionName = %this.getRowLabel(%this.getSelectedRow());
- %tooltipText = %this.getTooltip(%this.getSelectedRow());
-
- OptionName.setText(%optionName);
- OptionDescription.setText(%tooltipText);
- return;
-
- OptionsMenuSettingsList.clearOptions();
-
- %currentRowText = %this.getRowLabel(%this.getSelectedRow());
-
- if(%currentRowText $= "Display")
- {
- populateDisplaySettingsList();
- }
- else if(%currentRowText $= "Graphics")
- {
- populateGraphicsSettingsList();
- }
- else if(%currentRowText $= "Audio")
- {
- populateAudioSettingsList();
- }
- else if(%currentRowText $= "Keyboard + Mouse")
- {
- populateKeyboardMouseSettingsList();
- }
- else if(%currentRowText $= "Gamepad")
- {
- populateGamepadSettingsList();
- }
-}
-
-function OptionsMenu::prevTab(%this)
-{
- %this.pageTabIndex--;
- if(%this.pageTabIndex < 0)
- %this.pageTabIndex = 4;
-
- %tabBtn = %this.getTab();
- %tabBtn.performClick();
-}
-
-function OptionsMenu::nextTab(%this)
-{
- %this.pageTabIndex++;
- if(%this.pageTabIndex > 4)
- %this.pageTabIndex = 0;
-
- %tabBtn = %this.getTab();
- %tabBtn.performClick();
-}
-
-function OptionsMenu::getTab(%this)
-{
- if(%this.pageTabIndex == 0)
- return %this-->DisplayButton;
- else if(%this.pageTabIndex == 1)
- return %this-->GraphicsButton;
- else if(%this.pageTabIndex == 2)
- return %this-->AudioButton;
- else if(%this.pageTabIndex == 3)
- return %this-->KBMButton;
- else if(%this.pageTabIndex == 4)
- return %this-->GamepadButton;
- else
- return %this-->DisplayButton;
-}
-
+//
+//
+//
function populateDisplaySettingsList()
{
OptionsMenuSettingsList.clear();
@@ -220,7 +285,7 @@ function populateDisplaySettingsList()
trim(%apiList);
- OptionsMenuSettingsList.addOptionRow("Display API", %apiList, false, "", true, "The display API used for rendering.", %displayDevice);
+ OptionsMenuSettingsList.addOptionRow("Display API", "$pref::Video::DisplayAPI", %apiList, false, "", true, "The display API used for rendering.", %displayDevice);
%numDevices = Canvas.getMonitorCount();
%devicesList = "";
@@ -234,7 +299,7 @@ function populateDisplaySettingsList()
}
%selectedDevice = getField(%devicesList, $pref::Video::deviceId);
- OptionsMenuSettingsList.addOptionRow("Display Device", %devicesList, false, "onDisplayModeChange", true, "The display devices the window should be on.", %selectedDevice);
+ OptionsMenuSettingsList.addOptionRow("Display Device", "$pref::Video::deviceId", %devicesList, false, "", true, "The display devices the window should be on.", %selectedDevice);
if (%numDevices > 1)
OptionsMenuSettingsList.setRowEnabled(1, true);
@@ -242,10 +307,10 @@ function populateDisplaySettingsList()
OptionsMenuSettingsList.setRowEnabled(1, false);
%mode = getField($Video::ModeTags, $pref::Video::deviceMode);
- OptionsMenuSettingsList.addOptionRow("Window Mode", $Video::ModeTags, false, "onDisplayModeChange", true, "", %mode);
+ OptionsMenuSettingsList.addOptionRow("Window Mode", "$pref::Video::deviceMode", $Video::ModeTags, false, "", true, "", %mode);
%resolutionList = getScreenResolutionList($pref::Video::deviceId, $pref::Video::deviceMode);
- OptionsMenuSettingsList.addOptionRow("Resolution", %resolutionList, false, "onDisplayResChange", true, "Resolution of the game window", _makePrettyResString( $pref::Video::mode ));
+ OptionsMenuSettingsList.addOptionRow("Resolution", "$pref::Video::Resolution", %resolutionList, false, "onDisplayResChange", true, "Resolution of the game window", _makePrettyResString( $pref::Video::mode ));
//If they're doing borderless, the window resolution must match the display resolution
if(%mode !$= "Borderless")
@@ -253,20 +318,20 @@ function populateDisplaySettingsList()
else
OptionsMenuSettingsList.setRowEnabled(3, false);
- OptionsMenuSettingsList.addOptionRow("VSync", "No\tYes", false, "", true, "", convertBoolToYesNo(!$pref::Video::disableVerticalSync));
+ OptionsMenuSettingsList.addOptionRow("VSync", "$pref::Video::disableVerticalSync", "No\tYes", false, "", true, "", convertBoolToYesNo(!$pref::Video::disableVerticalSync));
%refreshList = getScreenRefreshList($pref::Video::mode);
- OptionsMenuSettingsList.addOptionRow("Refresh Rate", %refreshList, false, "", true, "", $pref::Video::RefreshRate);
+ OptionsMenuSettingsList.addOptionRow("Refresh Rate", "$pref::Video::RefreshRate", %refreshList, false, "", true, "", $pref::Video::RefreshRate);
//move to gameplay tab
- OptionsMenuSettingsList.addSliderRow("Field of View", 75, 5, "65 100", "");
+ OptionsMenuSettingsList.addSliderRow("Field of View", "", 75, 5, "65 100", "");
- OptionsMenuSettingsList.addSliderRow("Brightness", 0.5, 0.1, "0 1", "");
- OptionsMenuSettingsList.addSliderRow("Contrast", 0.5, 0.1, "0 1", "");
+ OptionsMenuSettingsList.addSliderRow("Brightness", "", 0.5, 0.1, "0 1", "");
+ OptionsMenuSettingsList.addSliderRow("Contrast", "", 0.5, 0.1, "0 1", "");
}
-function OptionsMenu::applyDisplaySettings(%this)
+/*function OptionsMenu::applyDisplaySettings(%this)
{
%newDevice = OptionsMenuSettingsList.getCurrentOption(0);
@@ -285,9 +350,12 @@ function OptionsMenu::applyDisplaySettings(%this)
echo("Exporting client prefs");
%prefPath = getPrefpath();
export("$pref::*", %prefPath @ "/clientPrefs." @ $TorqueScriptFileExtension, false);
-}
+}*/
-function populateGraphicsSettingsList(%this)
+//
+//
+//
+function populateGraphicsSettingsList()
{
OptionsMenuSettingsList.clear();
@@ -299,90 +367,32 @@ function populateGraphicsSettingsList(%this)
%highMedLow = "Low\tMedium\tHigh";
%anisoFilter = "Off\t4\t8\t16";
%aaFilter = "Off\t1\t2\t4";
- OptionsMenuSettingsList.addOptionRow("Lighting Quality", getQualityLevels(LightingQualityList), false, "", true, "Amount and drawdistance of local lights", getCurrentQualityLevel(LightingQualityList));
- OptionsMenuSettingsList.addOptionRow("Shadow Quality", getQualityLevels(ShadowQualityList), false, "", true, "Shadow revolution quality", getCurrentQualityLevel(ShadowQualityList));
- OptionsMenuSettingsList.addOptionRow("Soft Shadow Quality", getQualityLevels(SoftShadowList), false, "", true, "Amount of softening applied to shadowmaps", getCurrentQualityLevel(SoftShadowList));
- OptionsMenuSettingsList.addOptionRow("Mesh Quality", getQualityLevels(MeshQualityGroup), false, "", true, "Fidelity of rendering of mesh objects", getCurrentQualityLevel(MeshQualityGroup));
- OptionsMenuSettingsList.addOptionRow("Object Draw Distance", getQualityLevels(MeshDrawDistQualityGroup), false, "", true, "Dictates if and when static objects fade out in the distance", getCurrentQualityLevel(MeshDrawDistQualityGroup));
- OptionsMenuSettingsList.addOptionRow("Texture Quality", getQualityLevels(TextureQualityGroup), false, "", true, "Fidelity of textures", getCurrentQualityLevel(TextureQualityGroup));
- OptionsMenuSettingsList.addOptionRow("Terrain Quality", getQualityLevels(TerrainQualityGroup), false, "", true, "Quality level of terrain objects", getCurrentQualityLevel(TerrainQualityGroup));
- OptionsMenuSettingsList.addOptionRow("Decal Lifetime", getQualityLevels(DecalLifetimeGroup), false, "", true, "How long decals are rendered", getCurrentQualityLevel(DecalLifetimeGroup));
- OptionsMenuSettingsList.addOptionRow("Ground Cover Density", getQualityLevels(GroundCoverDensityGroup), false, "", true, "Density of ground cover items, such as grass", getCurrentQualityLevel(GroundCoverDensityGroup));
- OptionsMenuSettingsList.addOptionRow("Shader Quality", getQualityLevels(ShaderQualityGroup), false, "", true, "Dictates the overall shader quality level, adjusting what features are enabled.", getCurrentQualityLevel(ShaderQualityGroup));
- OptionsMenuSettingsList.addOptionRow("Anisotropic Filtering", %anisoFilter, false, "", true, "Amount of Anisotropic Filtering on textures, which dictates their sharpness at a distance", $pref::Video::defaultAnisotropy);
- OptionsMenuSettingsList.addOptionRow("Anti-Aliasing", %aaFilter, false, "", true, "Amount of Post-Processing Anti-Aliasing applied to rendering", $pref::Video::AA);
- OptionsMenuSettingsList.addOptionRow("Parallax", %onOffList, false, "", true, "Whether the surface parallax shader effect is enabled", convertBoolToOnOff(!$pref::Video::disableParallaxMapping));
- OptionsMenuSettingsList.addOptionRow("Water Reflections", %onOffList, false, "", true, "Whether water reflections are enabled", convertBoolToOnOff(!$pref::Water::disableTrueReflections));
- OptionsMenuSettingsList.addOptionRow("SSAO", %onOffList, false, "", true, "Whether Screen-Space Ambient Occlusion is enabled", convertBoolToOnOff($pref::PostFX::EnableSSAO));
- OptionsMenuSettingsList.addOptionRow("Depth of Field", %onOffList, false, "", true, "Whether the Depth of Field effect is enabled", convertBoolToOnOff($pref::PostFX::EnableDOF));
- OptionsMenuSettingsList.addOptionRow("Vignette", %onOffList, false, "", true, "Whether the vignette effect is enabled", convertBoolToOnOff($pref::PostFX::EnableVignette));
- OptionsMenuSettingsList.addOptionRow("Light Rays", %onOffList, false, "", true, "Whether the light rays effect is enabled", convertBoolToOnOff($pref::PostFX::EnableLightRays));
+ OptionsMenuSettingsList.addOptionRow("Lighting Quality", "$pref::Graphics::LightingQuality", getQualityLevels(LightingQualityList), false, "", true, "Amount and drawdistance of local lights", getCurrentQualityLevel(LightingQualityList));
+ OptionsMenuSettingsList.addOptionRow("Shadow Quality", "$pref::Graphics::ShadowQuality", getQualityLevels(ShadowQualityList), false, "", true, "Shadow revolution quality", getCurrentQualityLevel(ShadowQualityList));
+ OptionsMenuSettingsList.addOptionRow("Soft Shadow Quality", "$pref::Graphics::SoftShadowQuality", getQualityLevels(SoftShadowList), false, "", true, "Amount of softening applied to shadowmaps", getCurrentQualityLevel(SoftShadowList));
+ OptionsMenuSettingsList.addOptionRow("Mesh Quality", "$pref::Graphics::MeshQuality", getQualityLevels(MeshQualityGroup), false, "", true, "Fidelity of rendering of mesh objects", getCurrentQualityLevel(MeshQualityGroup));
+ OptionsMenuSettingsList.addOptionRow("Object Draw Distance", "$pref::Graphics::ObjectDrawDistance", getQualityLevels(MeshDrawDistQualityGroup), false, "", true, "Dictates if and when static objects fade out in the distance", getCurrentQualityLevel(MeshDrawDistQualityGroup));
+ OptionsMenuSettingsList.addOptionRow("Texture Quality", "$pref::Graphics::TextureQuality", getQualityLevels(TextureQualityGroup), false, "", true, "Fidelity of textures", getCurrentQualityLevel(TextureQualityGroup));
+ OptionsMenuSettingsList.addOptionRow("Terrain Quality", "$pref::Graphics::TerrainQuality", getQualityLevels(TerrainQualityGroup), false, "", true, "Quality level of terrain objects", getCurrentQualityLevel(TerrainQualityGroup));
+ OptionsMenuSettingsList.addOptionRow("Decal Lifetime", "$pref::Graphics::DecalLifetime", getQualityLevels(DecalLifetimeGroup), false, "", true, "How long decals are rendered", getCurrentQualityLevel(DecalLifetimeGroup));
+ OptionsMenuSettingsList.addOptionRow("Ground Cover Density", "$pref::Graphics::GroundCoverDensity", getQualityLevels(GroundCoverDensityGroup), false, "", true, "Density of ground cover items, such as grass", getCurrentQualityLevel(GroundCoverDensityGroup));
+ OptionsMenuSettingsList.addOptionRow("Shader Quality", "$pref::Graphics::ShaderQuality", getQualityLevels(ShaderQualityGroup), false, "", true, "Dictates the overall shader quality level, adjusting what features are enabled.", getCurrentQualityLevel(ShaderQualityGroup));
+ OptionsMenuSettingsList.addOptionRow("Anisotropic Filtering", "$pref::Video::defaultAnisotropy", %anisoFilter, false, "", true, "Amount of Anisotropic Filtering on textures, which dictates their sharpness at a distance", $pref::Video::defaultAnisotropy);
+ OptionsMenuSettingsList.addOptionRow("Anti-Aliasing", "$pref::Video::AA", %aaFilter, false, "", true, "Amount of Post-Processing Anti-Aliasing applied to rendering", $pref::Video::AA);
+ OptionsMenuSettingsList.addOptionRow("Parallax", "$pref::Video::disableParallaxMapping", %onOffList, false, "", true, "Whether the surface parallax shader effect is enabled", convertBoolToOnOff(!$pref::Video::disableParallaxMapping));
+ OptionsMenuSettingsList.addOptionRow("Water Reflections", "$pref::Water::disableTrueReflections", %onOffList, false, "", true, "Whether water reflections are enabled", convertBoolToOnOff(!$pref::Water::disableTrueReflections));
+ OptionsMenuSettingsList.addOptionRow("SSAO", "$pref::PostFX::EnableSSAO", %onOffList, false, "", true, "Whether Screen-Space Ambient Occlusion is enabled", convertBoolToOnOff($pref::PostFX::EnableSSAO));
+ OptionsMenuSettingsList.addOptionRow("Depth of Field", "$pref::PostFX::EnableDOF", %onOffList, false, "", true, "Whether the Depth of Field effect is enabled", convertBoolToOnOff($pref::PostFX::EnableDOF));
+ OptionsMenuSettingsList.addOptionRow("Vignette", "$pref::PostFX::EnableVignette", %onOffList, false, "", true, "Whether the vignette effect is enabled", convertBoolToOnOff($pref::PostFX::EnableVignette));
+ OptionsMenuSettingsList.addOptionRow("Light Rays", "$pref::PostFX::EnableLightRays", %onOffList, false, "", true, "Whether the light rays effect is enabled", convertBoolToOnOff($pref::PostFX::EnableLightRays));
}
-function OptionsMenu::applyGraphicsSettings(%this)
-{
- LightingQualityList.applySetting(OptionsMenuSettingsList.getCurrentOption(0));
- ShadowQualityList.applySetting(OptionsMenuSettingsList.getCurrentOption(1));
- SoftShadowList.applySetting(OptionsMenuSettingsList.getCurrentOption(2));
-
- MeshQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(3));
- MeshDrawDistQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(4));
- TextureQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(5));
- TerrainQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(6));
- DecalLifetimeGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(7));
- GroundCoverDensityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(8));
- ShaderQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(9));
-
- //Update Textures
- reloadTextures();
-
- //Update lighting
- // Set the light manager. This should do nothing
- // if its already set or if its not compatible.
- //setLightManager( $pref::lightManager );
-
- $pref::PostFX::EnableSSAO = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(14));
- $pref::PostFX::EnableDOF = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(15));
- $pref::PostFX::EnableVignette = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(16));
- $pref::PostFX::EnableLightRays = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(17));
-
- PostFXManager.settingsEffectSetEnabled(SSAOPostFx, $pref::PostFX::EnableSSAO);
- PostFXManager.settingsEffectSetEnabled(DOFPostEffect, $pref::PostFX::EnableDOF);
- PostFXManager.settingsEffectSetEnabled(LightRayPostFX, $pref::PostFX::EnableLightRays);
- PostFXManager.settingsEffectSetEnabled(vignettePostFX, $pref::PostFX::EnableVignette);
-
- $pref::Video::disableParallaxMapping = !convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(12));
-
- //water reflections
- $pref::Water::disableTrueReflections = !convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(13));
-
- // Check the anisotropic filtering.
- %level = OptionsMenuSettingsList.getCurrentOption(10);
- if ( %level != $pref::Video::defaultAnisotropy )
- {
- $pref::Video::defaultAnisotropy = %level;
- }
-
- %newFSAA = OptionsMenuSettingsList.getCurrentOption(11);
- if (%newFSAA $= "off")
- %newFSAA = 0;
- if (%newFSAA !$= $pref::Video::AA)
- {
- $pref::Video::AA = %newFSAA;
- configureCanvas();
- }
-
- echo("Exporting client prefs");
- %prefPath = getPrefpath();
- export("$pref::*", %prefPath @ "/clientPrefs." @ $TorqueScriptFileExtension, false);
-}
-
function updateDisplaySettings()
{
//Update the display settings now
- %deviceName = OptionsMenuSettingsList.getCurrentOption(1);
+ %deviceName = getDisplayDeviceName();
%newDeviceID = getWord(%deviceName, 0) - 1;
- %deviceModeName = OptionsMenuSettingsList.getCurrentOption(2);
+ %deviceModeName = getField($Video::ModeTags, $pref::Video::deviceMode);
%newDeviceMode = 0;
foreach$(%modeName in $Video::ModeTags)
{
@@ -392,15 +402,15 @@ function updateDisplaySettings()
%newDeviceMode++;
}
- %newRes = getWord(OptionsMenuSettingsList.getCurrentOption(3), 0) SPC getWord(OptionsMenuSettingsList.getCurrentOption(3), 2);
+ %newRes = $pref::Video::Resolution;
%newBpp = 32; // ... its not 1997 anymore.
%newFullScreen = %deviceModeName $= "Fullscreen" ? true : false;
- %newRefresh = OptionsMenuSettingsList.getCurrentOption(5);
- %newVsync = !convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(4));
+ %newRefresh = $pref::Video::RefreshRate;
+ %newVsync = !$pref::Video::disableVerticalSync;
%newFSAA = $pref::Video::AA;
// Build the final mode string.
- %newMode = %newRes SPC %newFullScreen SPC %newBpp SPC %newRefresh SPC %newFSAA;
+ %newMode = $pref::Video::Resolution SPC %newFullScreen SPC %newBpp SPC %newRefresh SPC %newFSAA;
// Change the video mode.
if ( %newMode !$= $pref::Video::mode || %newDeviceID != $pref::Video::deviceId ||
@@ -433,7 +443,18 @@ function updateDisplaySettings()
}
}
-function populateAudioSettingsList(%this)
+function updatePostFXSettings()
+{
+ PostFXManager.settingsEffectSetEnabled(SSAOPostFx, $pref::PostFX::EnableSSAO);
+ PostFXManager.settingsEffectSetEnabled(DOFPostEffect, $pref::PostFX::EnableDOF);
+ PostFXManager.settingsEffectSetEnabled(LightRayPostFX, $pref::PostFX::EnableLightRays);
+ PostFXManager.settingsEffectSetEnabled(vignettePostFX, $pref::PostFX::EnableVignette);
+}
+
+//
+//
+//
+function populateAudioSettingsList()
{
OptionsMenuSettingsList.clear();
@@ -472,13 +493,13 @@ function populateAudioSettingsList(%this)
}
}
- OptionsMenuSettingsList.addOptionRow("Audio Provider", %audioProviderList, false, "audioProviderChanged", true, "", $currentAudioProvider);
- OptionsMenuSettingsList.addOptionRow("Audio Device", %audioDeviceList, false, "", true, $pref::SFX::device);
+ OptionsMenuSettingsList.addOptionRow("Audio Provider", "$pref::SFX::AudioProvider", %audioProviderList, false, "audioProviderChanged", true, "", $currentAudioProvider);
+ OptionsMenuSettingsList.addOptionRow("Audio Device", "$pref::SFX::device", %audioDeviceList, false, "", true, $pref::SFX::device);
- OptionsMenuSettingsList.addSliderRow("Master Volume", $pref::SFX::masterVolume, 0.1, "0 1", "");
- OptionsMenuSettingsList.addSliderRow("GUI Volume", $pref::SFX::channelVolume[ $GuiAudioType], 0.1, "0 1", "");
- OptionsMenuSettingsList.addSliderRow("Effects Volume", $pref::SFX::channelVolume[ $SimAudioType ], 0.1, "0 1", "");
- OptionsMenuSettingsList.addSliderRow("Music Volume", $pref::SFX::channelVolume[ $MusicAudioType ], 0.1, "0 1", "");
+ OptionsMenuSettingsList.addSliderRow("Master Volume", "$pref::SFX::masterVolume", $pref::SFX::masterVolume, 0.1, "0 1", "");
+ OptionsMenuSettingsList.addSliderRow("GUI Volume", "$pref::SFX::channelVolume[ $GuiAudioType]", $pref::SFX::channelVolume[ $GuiAudioType], 0.1, "0 1", "");
+ OptionsMenuSettingsList.addSliderRow("Effects Volume", "$pref::SFX::channelVolume[ $SimAudioType ]", $pref::SFX::channelVolume[ $SimAudioType ], 0.1, "0 1", "");
+ OptionsMenuSettingsList.addSliderRow("Music Volume", "$pref::SFX::channelVolume[ $MusicAudioType ]", $pref::SFX::channelVolume[ $MusicAudioType ], 0.1, "0 1", "");
}
function audioProviderChanged()
@@ -491,21 +512,21 @@ function audioProviderChanged()
populateAudioSettingsList();
}
-function OptionsMenu::applyAudioSettings(%this)
+function updateAudioSettings()
{
- $pref::SFX::masterVolume = OptionsMenuSettingsList.getValue(2);
+ //$pref::SFX::masterVolume = OptionsMenuSettingsList.getValue(2);
sfxSetMasterVolume( $pref::SFX::masterVolume );
- $pref::SFX::channelVolume[ $GuiAudioType ] = OptionsMenuSettingsList.getValue(3);
- $pref::SFX::channelVolume[ $SimAudioType ] = OptionsMenuSettingsList.getValue(4);
- $pref::SFX::channelVolume[ $MusicAudioType ] = OptionsMenuSettingsList.getValue(5);
+ //$pref::SFX::channelVolume[ $GuiAudioType ] = OptionsMenuSettingsList.getValue(3);
+ //$pref::SFX::channelVolume[ $SimAudioType ] = OptionsMenuSettingsList.getValue(4);
+ //$pref::SFX::channelVolume[ $MusicAudioType ] = OptionsMenuSettingsList.getValue(5);
sfxSetChannelVolume( $GuiAudioType, $pref::SFX::channelVolume[ $GuiAudioType ] );
sfxSetChannelVolume( $SimAudioType, $pref::SFX::channelVolume[ $SimAudioType ] );
sfxSetChannelVolume( $MusicAudioType, $pref::SFX::channelVolume[ $MusicAudioType ] );
- $pref::SFX::provider = OptionsMenuSettingsList.getCurrentOption(0);
- $pref::SFX::device = OptionsMenuSettingsList.getCurrentOption(1);
+ //$pref::SFX::provider = OptionsMenuSettingsList.getCurrentOption(0);
+ //$pref::SFX::device = OptionsMenuSettingsList.getCurrentOption(1);
if ( !sfxCreateDevice( $pref::SFX::provider,
$pref::SFX::device,
@@ -521,7 +542,10 @@ function OptionsMenu::applyAudioSettings(%this)
}
}
-function populateKeyboardMouseSettingsList(%this)
+//
+//
+//
+function populateKeyboardMouseSettingsList()
{
OptionsMenuSettingsList.clear();
@@ -534,7 +558,7 @@ function populateKeyboardMouseSettingsList(%this)
//OptionsMenuSettingsList.refresh();
}
-function populateGamepadSettingsList(%this)
+function populateGamepadSettingsList()
{
OptionsMenuSettingsList.clear();
@@ -544,15 +568,30 @@ function populateGamepadSettingsList(%this)
$remapListDevice = "gamepad";
fillRemapList();
- OptionsMenuSettingsList.refresh();
+ OptionsMenuSettingsList.updateStack();
}
+//
+//
+//
function OptionsMenuList::activateRow(%this)
{
OptionsMenuSettingsList.setFirstResponder();
}
function OptionsMenu::backOut(%this)
+{
+ if(%this.unappliedChanges.count() != 0)
+ {
+ MessageBoxOKCancel("Discard Changes?", "You have unapplied changes to your settings, do you wish to continue?", "OptionsMenu.doOptionsMenuBackOut();", "");
+ }
+ else
+ {
+ %this.doOptionsMenuBackOut();
+ }
+}
+
+function OptionsMenu::doOptionsMenuBackOut(%this)
{
//save the settings and then back out
if(OptionsMain.hidden == false)
@@ -583,7 +622,7 @@ function OptionsMenuSettingsList::setRowEnabled(%this, %row, %status)
}
}
-function OptionsMenuSettingsList::addOptionRow(%this, %label, %optionsList, %wrapOptions, %callback, %enabled, %description, %defaultValue)
+function OptionsMenuSettingsList::addOptionRow(%this, %label, %targetPrefVar, %optionsList, %wrapOptions, %callback, %enabled, %description, %defaultValue)
{
if(%enabled $= "")
%enabled = true;
@@ -600,14 +639,27 @@ function OptionsMenuSettingsList::addOptionRow(%this, %label, %optionsList, %wra
extent = %this.extent.x SPC %optionsRowSize;
columnSplit = %optionColumnWidth;
useMouseEvents = true;
+ previousBitmapAsset = "UI:previousOption_n_image";
+ nextBitmapAsset = "UI:nextOption_n_image";
};
+ %option.targetPrefVar = %targetPrefVar; //create a var-option association
+
+ //now some override trickery, if we have a value cached for unapplied changes, swapsies the defaultValue out
+ //with the unapplied, allowing us to change options categories without losing changes
+ %unappliedPrefIndex = OptionsMenu.unappliedChanges.getIndexFromValue(%targetPrefVar);
+ if(%unappliedPrefIndex != -1)
+ {
+ %unappliedValue = OptionsMenu.unappliedChanges.getValue(%unappliedPrefIndex);
+ %defaultValue = %unappliedValue;
+ }
+
%option.setListSetting(%label, %optionsList, %wrapOptions, %callback, %enabled, %description, %defaultValue);
%this.add(%option);
}
-function OptionsMenuSettingsList::addSliderRow(%this, %label, %defaultValue, %increment, %range, %callback, %enabled, %description)
+function OptionsMenuSettingsList::addSliderRow(%this, %label, %targetPrefVar, %defaultValue, %increment, %range, %callback, %enabled, %description)
{
if(%enabled $= "")
%enabled = true;
@@ -626,11 +678,46 @@ function OptionsMenuSettingsList::addSliderRow(%this, %label, %defaultValue, %in
useMouseEvents = true;
};
+ %option.targetPrefVar = %targetPrefVar; //create a var-option association
+
+ //now some override trickery, if we have a value cached for unapplied changes, swapsies the defaultValue out
+ //with the unapplied, allowing us to change options categories without losing changes
+ %unappliedPrefIndex = OptionsMenu.unappliedChanges.getIndexFromValue(%targetPrefVar);
+ if(%unappliedPrefIndex != -1)
+ {
+ %unappliedValue = OptionsMenu.unappliedChanges.getValue(%unappliedPrefIndex);
+ %defaultValue = %unappliedValue;
+ }
+
%option.setSliderSetting(%label, %defaultValue, %increment, %range, %callback, %enabled, %description);
%this.add(%option);
}
+function OptionsMenuSettingsList::addKeybindRow(%this, %label, %bitmapName, %callback, %enabled, %description)
+{
+ if(%enabled $= "")
+ %enabled = true;
+
+ %optionsRowSize = 40;
+ %optionColumnWidth = %this.extent.x - 450;
+
+ %option = new GuiGameSettingsCtrl() {
+ class = "MenuOptionsButton";
+ profile = "GuiMenuButtonProfile";
+ horizSizing = "width";
+ vertSizing = "bottom";
+ position = "0 0";
+ extent = %this.extent.x SPC %optionsRowSize;
+ columnSplit = %optionColumnWidth;
+ useMouseEvents = true;
+ };
+
+ %option.setKeybindSetting(%label, %bitmapName, %callback, %enabled, %description);
+
+ %this.add(%option);
+}
+
//
function OptionsMenuCategoryList::onNavigate(%this, %index)
{
@@ -738,6 +825,24 @@ function onDisplayResChange(%val)
OptionsMenuSettingsList.selectOption(5, %newRate);
}
+function getDisplayDeviceName()
+{
+ %numDevices = Canvas.getMonitorCount();
+ %devicesList = "";
+ for(%i = 0; %i < %numDevices; %i++)
+ {
+ %device = (%i+1) @ " - " @ Canvas.getMonitorName(%i);
+ if(%i==0)
+ %devicesList = %device;
+ else
+ %devicesList = %devicesList @ "\t" @ %device;
+ }
+
+ return getField(%devicesList, $pref::Video::deviceId);
+}
+//
+//
+//
function MenuOptionsButton::onMouseEnter(%this)
{
OptionName.setText(%this.getLabel());
@@ -748,4 +853,84 @@ function MenuOptionsButton::onMouseLeave(%this)
{
OptionName.setText("");
OptionDescription.setText("");
-}
\ No newline at end of file
+}
+
+function MenuOptionsButton::onChange(%this)
+{
+ %optionMode = %this.getMode();
+ %optionName = %this.getLabel();
+ %tooltipText = %this.getTooltip();
+
+ %targetVar = %this.targetPrefVar;
+
+ OptionName.setText(%optionName);
+ OptionDescription.setText(%tooltipText);
+
+ %currentValue = %this.getCurrentOption();
+ if(%currentValue !$= "")
+ {
+ if(%currentValue $= "yes" || %currentValue $= "on")
+ %saveReadyValue = 1;
+ else if(%currentValue $= "no" || %currentValue $= "off")
+ %saveReadyValue = 0;
+ else
+ %saveReadyValue = %currentValue;
+
+ %prefIndex = OptionsMenu.unappliedChanges.getIndexFromKey(%targetVar);
+ if(%prefIndex == -1)
+ OptionsMenu.unappliedChanges.add(%targetVar, %saveReadyValue);
+ else
+ OptionsMenu.unappliedChanges.setValue(%saveReadyValue, %prefIndex);
+ }
+}
+
+function OptionsMenu::onKeybindChanged(%this, %actionMap, %keybind)
+{
+ %prefIndex = OptionsMenu.unappliedChanges.getIndexFromKey(%actionMap);
+ if(%prefIndex == -1)
+ OptionsMenu.unappliedChanges.add(%actionMap, %keybind);
+ else
+ OptionsMenu.unappliedChanges.setValue(%keybind, %prefIndex);
+}
+
+//
+// Indicates what category the options item should be added into
+//
+function addOptionsMenuCategory(%categoryName, %selectCallback)
+{
+ OptionsMenu.optionsCategories.add(%categoryName, %selectCallback);
+}
+
+function removeOptionsMenuCategory(%categoryName)
+{
+ %index = OptionsMenu.optionsCategories.getIndexFromKey(%categoryName);
+ if(%index != -1)
+ OptionsMenu.optionsCategories.erase(%index);
+}
+
+function addListOption(%label, %description, %targetPrefVar, %optionsList, %wrapOptions, %callback, %enabled)
+{
+ if(%wrapOptions $= "")
+ %wrapOptions = false;
+
+ if(%enabled $= "")
+ %enabled = true;
+
+ OptionsMenuSettingsList.addOptionRow(%label, %targetPrefVar, %optionsList, %wrapOptions, %callback, %enabled, %description, %targetPrefVar);
+}
+
+function addSliderOption(%label, %description, %targetPrefVar, %defaultValue, %increment, %range, %callback, %enabled)
+{
+ if(%enabled $= "")
+ %enabled = true;
+
+ OptionsMenuSettingsList.addSliderRow(%label, %targetPrefVar, %defaultValue, %increment, %range, %callback, %enabled, %description);
+}
+
+function addKeybindOption(%label, %description, %bitmapName, %callback, %enabled)
+{
+ if(%enabled $= "")
+ %enabled = true;
+
+ OptionsMenuSettingsList.addSliderRow(%label, %bitmapName, %callback, %enabled, %description);
+}
diff --git a/Templates/BaseGame/game/data/UI/guis/pauseMenu.gui b/Templates/BaseGame/game/data/UI/guis/pauseMenu.gui
index 77356fcdb..0ba6e7ce5 100644
--- a/Templates/BaseGame/game/data/UI/guis/pauseMenu.gui
+++ b/Templates/BaseGame/game/data/UI/guis/pauseMenu.gui
@@ -49,25 +49,31 @@ $guiContent = new GuiControl(PauseMenu) {
isContainer = "1";
canSave = "1";
canSaveDynamicFields = "0";
-
- new GuiGameListMenuCtrl(PauseMenuList) {
- debugRender = "0";
- callbackOnInputs = "1";
- consumeKeyInputEvents = "1";
+
+ new GuiStackControl(PauseMenuList) {
+ stackingType = "Vertical";
+ horizStacking = "Left to Right";
+ vertStacking = "Top to Bottom";
+ padding = "15";
+ dynamicSize = "0";
+ dynamicNonStackExtent = "0";
+ dynamicPos = "0";
+ changeChildSizeToFit = "1";
+ changeChildPosition = "1";
position = "0 0";
extent = "700 320";
- minExtent = "8 2";
- horizSizing = "width";
- vertSizing = "bottom";
- profile = "DefaultListMenuProfile";
+ minExtent = "16 16";
+ horizSizing = "center";
+ vertSizing = "center";
+ profile = "GuiDefaultProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";
hovertime = "1000";
- isContainer = "0";
- class = "UIMenuButtonList";
+ isContainer = "1";
canSave = "1";
canSaveDynamicFields = "0";
+ class = "MenuList";
};
};
new GuiControl(PauseButtonHolder) {
@@ -147,5 +153,26 @@ $guiContent = new GuiControl(PauseMenu) {
canSaveDynamicFields = "0";
};
};
+ new GuiInputCtrl(PauseMenuInputHandler) {
+ class = "MenuInputHandler";
+ sendAxisEvents = "1";
+ sendBreakEvents = "1";
+ sendModifierEvents = "0";
+ ignoreMouseEvents = "1";
+ lockMouse = "0";
+ position = "-50 0";
+ extent = "10 10";
+ minExtent = "8 2";
+ horizSizing = "width";
+ vertSizing = "height";
+ profile = "GuiInputCtrlProfile";
+ visible = "1";
+ active = "1";
+ tooltipProfile = "GuiToolTipProfile";
+ hovertime = "1000";
+ isContainer = "0";
+ canSave = "1";
+ canSaveDynamicFields = "0";
+ };
};
//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/UI/guis/pauseMenu.tscript b/Templates/BaseGame/game/data/UI/guis/pauseMenu.tscript
index 8d23b95d2..8751c16ef 100644
--- a/Templates/BaseGame/game/data/UI/guis/pauseMenu.tscript
+++ b/Templates/BaseGame/game/data/UI/guis/pauseMenu.tscript
@@ -8,19 +8,21 @@ function PauseMenu::onWake(%this)
}
PauseMenuList.hidden = false;
- PauseMenuList.setFirstResponder();
- PauseButtonHolder.setActive();
- PauseMenuList.clearRows();
+ PauseMenuList.clear();
if($Tools::loaded && EditorIsActive())
{
- PauseMenuList.addRow("Exit Editor", "fastLoadWorldEdit", -1, -30);
+ %this.addPauseMenuButton("Exit Editor", "fastLoadWorldEdit();");
}
- PauseMenuList.addRow("Options", "openPauseMenuOptions", -1, -30);
- PauseMenuList.addRow("Exit to Menu", "pauseMenuExitToMenu", -1, -30);
- PauseMenuList.addRow("Exit to Desktop", "pauseMenuExitToDesktop", -1, -30);
+ %this.addPauseMenuButton("Options", "openPauseMenuOptions();");
+ %this.addPauseMenuButton("Exit to Menu", "pauseMenuExitToMenu();");
+ %this.addPauseMenuButton("Exit to Desktop", "pauseMenuExitToDesktop();");
+
+ PauseMenuList.setAsActiveMenuList();
+ PauseButtonHolder.setActive();
+ PauseMenuInputHandler.setFirstResponder();
}
@@ -36,8 +38,9 @@ function PauseMenu::onSleep(%this)
function PauseMenu::onReturnTo(%this)
{
PauseMenuList.hidden = false;
- PauseMenuList.setFirstResponder();
+ PauseMenuList.setAsActiveMenuList();
PauseButtonHolder.setActive();
+ PauseMenuInputHandler.setFirstResponder();
}
function openPauseMenuOptions()
@@ -61,6 +64,32 @@ function pauseMenuExitToDesktop()
function PauseButtonHolder::onWake(%this)
{
- %this-->goButton.set("btn_a", "Return", "OK", "PauseMenuList.activateRow();", true);
+ %this-->goButton.set("btn_a", "Return", "OK", "PauseMenuList.activate();", true);
%this-->backButton.set("btn_b", "Escape", "Back", "Canvas.popDialog();");
-}
\ No newline at end of file
+}
+
+function PauseMenu::addPauseMenuButton(%this, %buttonText, %buttonCallback)
+{
+ %newButton = new GuiButtonCtrl() {
+ text = %buttonText;
+ groupNum = "-1";
+ buttonType = "PushButton";
+ useMouseEvents = "0";
+ position = "0 0";
+ extent = "400 55";
+ minExtent = "8 2";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ profile = "GuiMenuButtonProfile";
+ visible = "1";
+ active = "1";
+ command = %buttonCallback;
+ tooltipProfile = "GuiToolTipProfile";
+ hovertime = "1000";
+ isContainer = "0";
+ canSave = "1";
+ canSaveDynamicFields = "0";
+ };
+
+ PauseMenuList.add(%newButton);
+}
diff --git a/Templates/BaseGame/game/data/UI/guis/profiler.tscript b/Templates/BaseGame/game/data/UI/guis/profiler.tscript
index a13d7d9b5..56f88a189 100644
--- a/Templates/BaseGame/game/data/UI/guis/profiler.tscript
+++ b/Templates/BaseGame/game/data/UI/guis/profiler.tscript
@@ -363,4 +363,4 @@ function metrics( %expr )
}
else
$GameCanvas.popDialog(FrameOverlayGui);
-}
\ No newline at end of file
+}
diff --git a/Templates/BaseGame/game/data/UI/guis/recordingsDlg.asset.taml b/Templates/BaseGame/game/data/UI/guis/recordingsDlg.asset.taml
index 7cc7b2168..2b0c337b5 100644
--- a/Templates/BaseGame/game/data/UI/guis/recordingsDlg.asset.taml
+++ b/Templates/BaseGame/game/data/UI/guis/recordingsDlg.asset.taml
@@ -1,7 +1,4 @@
+ VersionId="1"/>
diff --git a/Templates/BaseGame/game/data/UI/guis/startupGui.gui b/Templates/BaseGame/game/data/UI/guis/startupGui.gui
index 647fc1b03..13f2460e3 100644
--- a/Templates/BaseGame/game/data/UI/guis/startupGui.gui
+++ b/Templates/BaseGame/game/data/UI/guis/startupGui.gui
@@ -35,7 +35,7 @@ $guiContent = new GuiFadeinBitmapCtrl(StartupGui) {
Visible = "1";
tooltipprofile = "GuiToolTipProfile";
hovertime = "1000";
- bitmap = "";
+ bitmapAsset = "";
wrap = "0";
command = "StartupGui.click();";
};
@@ -54,7 +54,7 @@ $guiContent = new GuiFadeinBitmapCtrl(StartupGui) {
Visible = "1";
tooltipprofile = "GuiToolTipProfile";
hovertime = "1000";
- bitmap = "";
+ bitmapAsset = "";
wrap = "0";
command = "StartupGui.click();";
};
diff --git a/Templates/BaseGame/game/data/UI/guis/startupGui.tscript b/Templates/BaseGame/game/data/UI/guis/startupGui.tscript
index af673c819..a89226d70 100644
--- a/Templates/BaseGame/game/data/UI/guis/startupGui.tscript
+++ b/Templates/BaseGame/game/data/UI/guis/startupGui.tscript
@@ -32,7 +32,7 @@ function loadStartup()
// A list of the splash screens and logos
// to cycle through. Note that they have to
// be in consecutive numerical order
- StartupGui.bitmap[0] = "UI:background_dark_image";
+ StartupGui.bitmap[0] = "UI:backgrounddark_image";
StartupGui.logo[0] = "UI:Torque_3D_logo_alt_image";
StartupGui.logoPos[0] = "178 251";
StartupGui.logoExtent[0] = "443 139";
diff --git a/Templates/BaseGame/game/data/UI/images/Torque-3D-logo-shortcut.png b/Templates/BaseGame/game/data/UI/images/Torque-3D-logo-shortcut.png
deleted file mode 100644
index d993d4893..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/Torque-3D-logo-shortcut.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/Torque-3D-logo-w.png b/Templates/BaseGame/game/data/UI/images/Torque-3D-logo-w.png
deleted file mode 100644
index ec197dda3..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/Torque-3D-logo-w.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/Torque-3D-logo.png b/Templates/BaseGame/game/data/UI/images/Torque-3D-logo.png
deleted file mode 100644
index e31d42a68..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/Torque-3D-logo.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/Torque-3D-logo_alt.png b/Templates/BaseGame/game/data/UI/images/Torque-3D-logo_alt.png
deleted file mode 100644
index 3836f1e7f..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/Torque-3D-logo_alt.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_alt_image.asset.taml b/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_alt_image.asset.taml
index b153f46bc..a0e71c485 100644
--- a/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_alt_image.asset.taml
+++ b/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_alt_image.asset.taml
@@ -2,7 +2,7 @@
canSave="true"
canSaveDynamicFields="true"
AssetName="Torque_3D_logo_alt_image"
- imageFile="@assetFile=Torque-3D-logo_alt.png"
+ imageFile="@assetFile=Torque_3D_logo_alt.png"
UseMips="true"
isHDRImage="false"
imageType="Albedo" />
diff --git a/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_image.asset.taml b/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_image.asset.taml
index da6130ae8..2315a3908 100644
--- a/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_image.asset.taml
+++ b/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_image.asset.taml
@@ -2,7 +2,7 @@
canSave="true"
canSaveDynamicFields="true"
AssetName="Torque_3D_logo_image"
- imageFile="@assetFile=Torque-3D-logo.png"
+ imageFile="@assetFile=Torque_3D_logo.png"
UseMips="true"
isHDRImage="false"
imageType="Albedo" />
diff --git a/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_shortcut_image.asset.taml b/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_shortcut_image.asset.taml
index f780d2f0d..233a8b4fd 100644
--- a/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_shortcut_image.asset.taml
+++ b/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_shortcut_image.asset.taml
@@ -2,7 +2,7 @@
canSave="true"
canSaveDynamicFields="true"
AssetName="Torque_3D_logo_shortcut_image"
- imageFile="@assetFile=Torque-3D-logo-shortcut.png"
+ imageFile="@assetFile=Torque_3D_logo_shortcut.png"
UseMips="true"
isHDRImage="false"
imageType="Albedo" />
diff --git a/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_w_image.asset.taml b/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_w_image.asset.taml
index 7d6d2fc14..f7dd36579 100644
--- a/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_w_image.asset.taml
+++ b/Templates/BaseGame/game/data/UI/images/Torque_3D_logo_w_image.asset.taml
@@ -2,7 +2,7 @@
canSave="true"
canSaveDynamicFields="true"
AssetName="Torque_3D_logo_w_image"
- imageFile="@assetFile=Torque-3D-logo-w.png"
+ imageFile="@assetFile=Torque_3D_logo_w.png"
UseMips="true"
isHDRImage="false"
imageType="Albedo" />
diff --git a/Templates/BaseGame/game/data/UI/images/background-dark.png b/Templates/BaseGame/game/data/UI/images/background-dark.png
deleted file mode 100644
index 13b4bda55..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/background-dark.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/background_dark_image.asset.taml b/Templates/BaseGame/game/data/UI/images/background_dark_image.asset.taml
deleted file mode 100644
index 95c45a078..000000000
--- a/Templates/BaseGame/game/data/UI/images/background_dark_image.asset.taml
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/Templates/BaseGame/game/data/UI/images/clear-btn_d.png b/Templates/BaseGame/game/data/UI/images/clear-btn_d.png
deleted file mode 100644
index 229c71e8b..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/clear-btn_d.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/clear-btn_h.png b/Templates/BaseGame/game/data/UI/images/clear-btn_h.png
deleted file mode 100644
index 5e67cb13b..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/clear-btn_h.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/clear-btn_n.png b/Templates/BaseGame/game/data/UI/images/clear-btn_n.png
deleted file mode 100644
index ecb13a8d6..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/clear-btn_n.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/collapse-toolbar_d.png b/Templates/BaseGame/game/data/UI/images/collapse-toolbar_d.png
deleted file mode 100644
index 984a63853..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/collapse-toolbar_d.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/collapse-toolbar_h.png b/Templates/BaseGame/game/data/UI/images/collapse-toolbar_h.png
deleted file mode 100644
index 7e3de8387..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/collapse-toolbar_h.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/collapse-toolbar_n.png b/Templates/BaseGame/game/data/UI/images/collapse-toolbar_n.png
deleted file mode 100644
index b36de3ae0..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/collapse-toolbar_n.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/dropdown-button-arrow.png b/Templates/BaseGame/game/data/UI/images/dropdown-button-arrow.png
deleted file mode 100644
index 8c420ab85..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/dropdown-button-arrow.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/dropdown-textEdit.png b/Templates/BaseGame/game/data/UI/images/dropdown-textEdit.png
deleted file mode 100644
index 3966efbb5..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/dropdown-textEdit.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/expand-toolbar_d.png b/Templates/BaseGame/game/data/UI/images/expand-toolbar_d.png
deleted file mode 100644
index 462929e95..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/expand-toolbar_d.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/expand-toolbar_h.png b/Templates/BaseGame/game/data/UI/images/expand-toolbar_h.png
deleted file mode 100644
index c33bcad69..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/expand-toolbar_h.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/expand-toolbar_n.png b/Templates/BaseGame/game/data/UI/images/expand-toolbar_n.png
deleted file mode 100644
index 0af2f1bd1..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/expand-toolbar_n.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/group-border.png b/Templates/BaseGame/game/data/UI/images/group-border.png
deleted file mode 100644
index 61234ae1f..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/group-border.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/inactive-overlay.png b/Templates/BaseGame/game/data/UI/images/inactive-overlay.png
deleted file mode 100644
index feab83209..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/inactive-overlay.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/menu-button.png b/Templates/BaseGame/game/data/UI/images/menu-button.png
deleted file mode 100644
index 3cfa036d8..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/menu-button.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/next-button_d.png b/Templates/BaseGame/game/data/UI/images/next-button_d.png
deleted file mode 100644
index 76c3ec0ff..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/next-button_d.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/next-button_h.png b/Templates/BaseGame/game/data/UI/images/next-button_h.png
deleted file mode 100644
index f52f5fb42..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/next-button_h.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/next-button_n.png b/Templates/BaseGame/game/data/UI/images/next-button_n.png
deleted file mode 100644
index 203133732..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/next-button_n.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/no-preview.png b/Templates/BaseGame/game/data/UI/images/no-preview.png
deleted file mode 100644
index fccdc858b..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/no-preview.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/previous-button_d.png b/Templates/BaseGame/game/data/UI/images/previous-button_d.png
deleted file mode 100644
index 688b30345..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/previous-button_d.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/previous-button_h.png b/Templates/BaseGame/game/data/UI/images/previous-button_h.png
deleted file mode 100644
index 26cf0e8c6..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/previous-button_h.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/previous-button_n.png b/Templates/BaseGame/game/data/UI/images/previous-button_n.png
deleted file mode 100644
index c0b9f4662..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/previous-button_n.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/selector-button-blank.png b/Templates/BaseGame/game/data/UI/images/selector-button-blank.png
deleted file mode 100644
index e965b3af6..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/selector-button-blank.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/selector-button-dark.png b/Templates/BaseGame/game/data/UI/images/selector-button-dark.png
deleted file mode 100644
index 84ee7e6f3..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/selector-button-dark.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/selector-button-highlight-only.png b/Templates/BaseGame/game/data/UI/images/selector-button-highlight-only.png
deleted file mode 100644
index 77e01fc74..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/selector-button-highlight-only.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/selector-button.png b/Templates/BaseGame/game/data/UI/images/selector-button.png
deleted file mode 100644
index cd0780068..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/selector-button.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/separator-h.png b/Templates/BaseGame/game/data/UI/images/separator-h.png
deleted file mode 100644
index 339c0fbe0..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/separator-h.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/separator-v.png b/Templates/BaseGame/game/data/UI/images/separator-v.png
deleted file mode 100644
index 6a0f87361..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/separator-v.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/slider - Copy.png b/Templates/BaseGame/game/data/UI/images/slider - Copy.png
deleted file mode 100644
index 92fee1e9c..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/slider - Copy.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/slider-w-box.png b/Templates/BaseGame/game/data/UI/images/slider-w-box.png
deleted file mode 100644
index d9ef04961..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/slider-w-box.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/images/slider___Copy_image.asset.taml b/Templates/BaseGame/game/data/UI/images/slider___Copy_image.asset.taml
deleted file mode 100644
index 3a460e432..000000000
--- a/Templates/BaseGame/game/data/UI/images/slider___Copy_image.asset.taml
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/Templates/BaseGame/game/data/UI/images/tab-border.png b/Templates/BaseGame/game/data/UI/images/tab-border.png
deleted file mode 100644
index 6703924d4..000000000
Binary files a/Templates/BaseGame/game/data/UI/images/tab-border.png and /dev/null differ
diff --git a/Templates/BaseGame/game/data/UI/scripts/controlsMenu.tscript b/Templates/BaseGame/game/data/UI/scripts/controlsMenu.tscript
index b88efa0d6..101148fbf 100644
--- a/Templates/BaseGame/game/data/UI/scripts/controlsMenu.tscript
+++ b/Templates/BaseGame/game/data/UI/scripts/controlsMenu.tscript
@@ -130,7 +130,7 @@ function fillRemapList()
{
%device = $remapListDevice;
- OptionsMenuSettingsList.clearRows();
+ OptionsMenuSettingsList.clear();
//build out our list of action maps
%actionMapCount = ActionMapGroup.getCount();
@@ -158,7 +158,7 @@ function fillRemapList()
if($activeRemapControlSet $= "")
$activeRemapControlSet = getField(%actionMapList, 0);
- OptionsMenuSettingsList.addOptionRow("Control Set", %actionMapList, false, "controlSetChanged", -1, -30, true, "Which keybind control set to edit", $activeRemapControlSet);
+ OptionsMenuSettingsList.addOptionRow("Control Set", "$activeRemapControlSet", %actionMapList, false, "controlSetChanged", true, "Which keybind control set to edit", $activeRemapControlSet);
for ( %i = 0; %i < $RemapCount; %i++ )
{
@@ -173,7 +173,9 @@ function fillRemapList()
%keyMap = buildFullMapString( %i, $RemapActionMap[%i], %device );
%description = $RemapDescription[%i];
- OptionsMenuSettingsList.addKeybindRow(getField(%keyMap, 0), getButtonBitmap(%device, getField(%keyMap, 1)), "doKeyRemap", -1, -15, true, %description);
+ %buttonImageAsset = getButtonBitmap(%device, getField(%keyMap, 1));
+
+ OptionsMenuSettingsList.addKeybindRow(getField(%keyMap, 0), %buttonImageAsset, "doKeyRemap", true, %description);
}
//OptionsMenuSettingsList.refresh();
@@ -182,7 +184,7 @@ function fillRemapList()
function controlSetChanged()
{
- $activeRemapControlSet = OptionsMenuSettingsList.getCurrentOption(0);
+ $activeRemapControlSet = OptionsMenuSettingsList.getCurrentOption();
fillRemapList();
}
@@ -194,6 +196,11 @@ function doKeyRemap( %rowIndex )
RemapDlg-->OptRemapText.setValue( "Re-bind \"" @ %name @ "\" to..." );
OptRemapInputCtrl.index = %rowIndex;
Canvas.pushDialog( RemapDlg );
+
+ //Let the options menu know
+ %actionMap = $RemapActionMap[%rowIndex];
+
+ OptionsMenu.onKeybindChanged(%actionMap, %name);
}
function ControlsMenuRebindButton::onClick(%this)
@@ -327,4 +334,4 @@ function redoMapping( %device, %actionMap, %action, %cmd, %oldIndex, %newIndex )
%actionMap.bind( %device, %action, %cmd );
fillRemapList();
-}
\ No newline at end of file
+}
diff --git a/Templates/BaseGame/game/data/UI/scripts/cursors.tscript b/Templates/BaseGame/game/data/UI/scripts/cursors.tscript
index d8aa31eeb..ba81636f7 100644
--- a/Templates/BaseGame/game/data/UI/scripts/cursors.tscript
+++ b/Templates/BaseGame/game/data/UI/scripts/cursors.tscript
@@ -37,4 +37,4 @@ else
renderOffset = "0 0";
bitmapName = "data/ui/images/defaultCursor";
};
-}
\ No newline at end of file
+}
diff --git a/Templates/BaseGame/game/data/UI/scripts/utility.tscript b/Templates/BaseGame/game/data/UI/scripts/utility.tscript
index 357a6a182..e73d1c080 100644
--- a/Templates/BaseGame/game/data/UI/scripts/utility.tscript
+++ b/Templates/BaseGame/game/data/UI/scripts/utility.tscript
@@ -10,117 +10,123 @@ function getButtonBitmap(%device, %button)
%device = "Xbox";
}
- %path = "";
+ %assetId = "";
if(%device $= "PS4")
{
- %path = "data/ui/images/inputs/PS4/PS4_";
+ %assetId = "UI:PS4_";
if(%button $= "A" || %button $= "btn_a")
- %path = %path @ "Cross";
+ %assetId = %assetId @ "Cross";
else if(%button $= "B" || %button $= "btn_b")
- %path = %path @ "Circle";
+ %assetId = %assetId @ "Circle";
else if(%button $= "X" || %button $= "btn_x")
- %path = %path @ "Square";
+ %assetId = %assetId @ "Square";
else if(%button $= "Y" || %button $= "btn_y")
- %path = %path @ "Triangle";
+ %assetId = %assetId @ "Triangle";
else if(%button $= "LB")
- %path = %path @ "L1";
+ %assetId = %assetId @ "L1";
else if(%button $= "LT")
- %path = %path @ "L2";
+ %assetId = %assetId @ "L2";
else if(%button $= "RB")
- %path = %path @ "R1";
+ %assetId = %assetId @ "R1";
else if(%button $= "RT")
- %path = %path @ "R2";
+ %assetId = %assetId @ "R2";
else if(%button $= "thumbrx" || %button $= "thumbry")
- %path = %path @ "Right_Stick";
+ %assetId = %assetId @ "Right_Stick";
else if(%button $= "thumblx" || %button $= "thumbly")
- %path = %path @ "Left_Stick";
+ %assetId = %assetId @ "Left_Stick";
else if(%button $= "start")
- %path = %path @ "Options";
+ %assetId = %assetId @ "Options";
else if(%button $= "back")
- %path = %path @ "Share";
+ %assetId = %assetId @ "Share";
else if(%button $= "dpadu")
- %path = %path @ "Dpad_Up";
+ %assetId = %assetId @ "Dpad_Up";
else if(%button $= "dpadd")
- %path = %path @ "Dpad_Down";
+ %assetId = %assetId @ "Dpad_Down";
else if(%button $= "dpadl")
- %path = %path @ "Dpad_Left";
+ %assetId = %assetId @ "Dpad_Left";
else if(%button $= "dpadr")
- %path = %path @ "Dpad_Right";
+ %assetId = %assetId @ "Dpad_Right";
+
+ %assetId = %assetId @ "_image";
}
else if(%device $= "Switch")
{
- %path = "data/ui/images/inputs/Switch/Switch_";
+ %assetId = "UI:Switch_";
if(%button $= "A" || %button $= "btn_a")
- %path = %path @ "B";
+ %assetId = %assetId @ "B";
else if(%button $= "B" || %button $= "btn_b")
- %path = %path @ "A";
+ %assetId = %assetId @ "A";
else if(%button $= "X" || %button $= "btn_x")
- %path = %path @ "Y";
+ %assetId = %assetId @ "Y";
else if(%button $= "Y" || %button $= "btn_y")
- %path = %path @ "X";
+ %assetId = %assetId @ "X";
else if(%button $= "LB")
- %path = %path @ "LB";
+ %assetId = %assetId @ "LB";
else if(%button $= "LT")
- %path = %path @ "LT";
+ %assetId = %assetId @ "LT";
else if(%button $= "RB")
- %path = %path @ "RB";
+ %assetId = %assetId @ "RB";
else if(%button $= "RT")
- %path = %path @ "RT";
+ %assetId = %assetId @ "RT";
else if(%button $= "thumbrx" || %button $= "thumbry")
- %path = %path @ "Right_Stick";
+ %assetId = %assetId @ "Right_Stick";
else if(%button $= "thumblx" || %button $= "thumbly")
- %path = %path @ "Left_Stick";
+ %assetId = %assetId @ "Left_Stick";
else if(%button $= "start")
- %path = %path @ "Plus";
+ %assetId = %assetId @ "Plus";
else if(%button $= "back")
- %path = %path @ "Minus";
+ %assetId = %assetId @ "Minus";
else if(%button $= "dpadu")
- %path = %path @ "Dpad_Up";
+ %assetId = %assetId @ "Dpad_Up";
else if(%button $= "dpadd")
- %path = %path @ "Dpad_Down";
+ %assetId = %assetId @ "Dpad_Down";
else if(%button $= "dpadl")
- %path = %path @ "Dpad_Left";
+ %assetId = %assetId @ "Dpad_Left";
else if(%button $= "dpadr")
- %path = %path @ "Dpad_Right";
+ %assetId = %assetId @ "Dpad_Right";
+
+ %assetId = %assetId @ "_image";
}
else if(%device $= "Keyboard" || %device $= "Mouse")
{
- %pathBase = "data/ui/images/Inputs/Keyboard & Mouse/Keyboard_Black_";
- %path = %pathBase @ %button @ ".png";
- if(!isFile(%path))
- %path = %pathBase @ "Blank";
+ %assetId = "UI:Keyboard_Black_" @ %button @ "_image";
}
else if(%device !$= "")
{
- %path = "data/ui/images/inputs/Xbox/Xbox_";
+ %assetId = "UI:Xbox_";
if(%button $= "btn_a")
- %path = %path @ "B";
+ %assetId = %assetId @ "B";
else if(%button $= "btn_b")
- %path = %path @ "A";
+ %assetId = %assetId @ "A";
else if(%button $= "btn_x")
- %path = %path @ "Y";
+ %assetId = %assetId @ "Y";
else if(%button $= "btn_y")
- %path = %path @ "X";
+ %assetId = %assetId @ "X";
else if(%button $= "thumbrx" || %button $= "thumbry")
- %path = %path @ "Right_Stick";
+ %assetId = %assetId @ "Right_Stick";
else if(%button $= "thumblx" || %button $= "thumbly")
- %path = %path @ "Left_Stick";
+ %assetId = %assetId @ "Left_Stick";
else if(%button $= "start")
- %path = %path @ "Menu";
+ %assetId = %assetId @ "Menu";
else if(%button $= "back")
- %path = %path @ "Windows";
+ %assetId = %assetId @ "Windows";
else if(%button $= "dpadu")
- %path = %path @ "Dpad_Up";
+ %assetId = %assetId @ "Dpad_Up";
else if(%button $= "dpadd")
- %path = %path @ "Dpad_Down";
+ %assetId = %assetId @ "Dpad_Down";
else if(%button $= "dpadl")
- %path = %path @ "Dpad_Left";
+ %assetId = %assetId @ "Dpad_Left";
else if(%button $= "dpadr")
- %path = %path @ "Dpad_Right";
+ %assetId = %assetId @ "Dpad_Right";
+
+ %assetId = %assetId @ "_image";
}
- return %path;
-}
\ No newline at end of file
+ if(!AssetDatabase.isDeclaredAsset(%assetId))
+ %assetId = "UI:Keyboard_Black_Blank_image";
+
+ return %assetId;
+}
diff --git a/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript b/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript
index 2e98c9b03..c149cf3f2 100644
--- a/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript
+++ b/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript
@@ -1743,7 +1743,9 @@ function beginGUIImport()
DirectoryHandler::createFolder(0, filePath(%destinationPath));
}
- if(!pathCopy(%file, %destinationPath, false))
+ //Check if we need to even copy in the first place. If we do, ensure
+ //the copy actually worked
+ if((makeRelativePath(%file) !$= %destinationPath) && !pathCopy(%file, %destinationPath, false))
{
projectImporterLog("ProjectImporter::beginGUIImport() - failed to copy GUI: " @ %file @
" to destination: " @ %destinationPath);
@@ -1779,9 +1781,9 @@ function processGUIntoAsset(%guiName, %file)
%tamlpath = %assetPath @ %assetName @ ".asset.taml";
%scriptFile = "";
- if(isImportingFile(%filePath @ "/" @ %fileName @ ".tscript"))
+ if(isImportingFile(makeFullPath(%filePath @ "/" @ %fileName @ "." @ $TorqueScriptFileExtension)))
{
- %scriptFile = %fileName @ ".tscript";
+ %scriptFile = %fileName;
}
%asset = new GUIAsset()