From 837983c7670959a759d0b3e081bf20a439484d30 Mon Sep 17 00:00:00 2001 From: Areloch Date: Tue, 13 Oct 2020 18:44:42 -0500 Subject: [PATCH] Adds script function to access full path of the level asset's preview image file Updates script function descriptions to be correct Updates chooseLevelDlg functions to be more efficient and consistent, and use the exposed get methods for getting preview images and the like properly --- Engine/source/T3D/assets/LevelAsset.cpp | 19 +++++++---- .../game/data/ui/guis/chooseLevelDlg.cs | 34 ++++++------------- 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/Engine/source/T3D/assets/LevelAsset.cpp b/Engine/source/T3D/assets/LevelAsset.cpp index de6f18caa..8b043a0f1 100644 --- a/Engine/source/T3D/assets/LevelAsset.cpp +++ b/Engine/source/T3D/assets/LevelAsset.cpp @@ -362,22 +362,29 @@ void LevelAsset::unloadDependencies() } DefineEngineMethod(LevelAsset, getLevelPath, const char*, (),, - "Creates a new script asset using the targetFilePath.\n" - "@return The bool result of calling exec") + "Gets the full path of the asset's defined level file.\n" + "@return The string result of the level path") { return object->getLevelPath(); } +DefineEngineMethod(LevelAsset, getPreviewImagePath, const char*, (), , + "Gets the full path of the asset's defined preview image file.\n" + "@return The string result of the level preview image path") +{ + return object->getImagePath(); +} + DefineEngineMethod(LevelAsset, getPostFXPresetPath, const char*, (), , - "Creates a new script asset using the targetFilePath.\n" - "@return The bool result of calling exec") + "Gets the full path of the asset's defined postFX preset file.\n" + "@return The string result of the postFX preset path") { return object->getPostFXPresetPath(); } DefineEngineMethod(LevelAsset, getDecalsPath, const char*, (), , - "Creates a new script asset using the targetFilePath.\n" - "@return The bool result of calling exec") + "Gets the full path of the asset's defined decal file.\n" + "@return The string result of the decal path") { return object->getDecalsPath(); } diff --git a/Templates/BaseGame/game/data/ui/guis/chooseLevelDlg.cs b/Templates/BaseGame/game/data/ui/guis/chooseLevelDlg.cs index 3632da70b..adfb088b0 100644 --- a/Templates/BaseGame/game/data/ui/guis/chooseLevelDlg.cs +++ b/Templates/BaseGame/game/data/ui/guis/chooseLevelDlg.cs @@ -83,9 +83,9 @@ function ChooseLevelDlg::onWake( %this ) for(%i=0; %i < LevelListEntries.count(); %i++) { - %levelEntry = LevelListEntries.getKey(%i); + %levelAsset = LevelListEntries.getKey(%i); - LevelList.addRow(getField(%levelEntry, 0), "", -1, -30); + LevelList.addRow(%levelAsset.LevelName, "", -1, -30); } LevelList.setSelected(0); @@ -140,45 +140,33 @@ function ChooseLevelDlg::addMissionFile( %this, %file ) function ChooseLevelDlg::addLevelAsset( %this, %levelAsset ) { - %file = %levelAsset.getAssetId(); - - %levelName = %levelAsset.LevelName; - %levelDesc = %levelAsset.description; - %levelPreview = %levelAsset.levelPreviewImage; - - LevelListEntries.add( %levelName TAB %file TAB %levelDesc TAB %levelPreview ); + LevelListEntries.add( %levelAsset ); } function LevelList::onChange(%this) { %index = %this.getSelectedRow(); - %levelEntry = LevelListEntries.getKey(%index); + %levelAsset = LevelListEntries.getKey(%index); // Get the name - ChooseLevelWindow->LevelName.text = getField(%levelEntry, 0); + ChooseLevelWindow->LevelName.text = %levelAsset.LevelName; - // Get the level file - $selectedLevelAsset = getField(%levelEntry, 1); + // Get the level id + $selectedLevelAsset = %levelAsset.getAssetId(); // Find the preview image - %levelPreview = getField(%levelEntry, 3); + %levelPreview = %levelAsset.getPreviewImagePath(); // Test against all of the different image formats // This should probably be moved into an engine function - if (isFile(%levelPreview @ ".png") || - isFile(%levelPreview @ ".jpg") || - isFile(%levelPreview @ ".bmp") || - isFile(%levelPreview @ ".gif") || - isFile(%levelPreview @ ".jng") || - isFile(%levelPreview @ ".mng") || - isFile(%levelPreview @ ".tga")) - ChooseLevelWindow->CurrentPreview.setBitmap(%previewFile); + if (isFile(%levelPreview)) + ChooseLevelWindow->CurrentPreview.setBitmap(%levelPreview); else ChooseLevelWindow->CurrentPreview.setBitmap("data/ui/images/no-preview"); // Get the description - %levelDesc = getField(%levelEntry, 2); + %levelDesc = %levelAsset.description; if(%levelDesc !$= "") {