View Issue Details

IDProjectCategoryView StatusLast Update
0006229The Dark ModGUIpublic16.01.2023 22:03
ReporterDaft Mugi Assigned Tostgatilov  
PrioritylowSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.09 
Target VersionTDM 2.11Fixed in VersionTDM 2.11 
Summary0006229: Objectives screen starts without difficulty highlighted
DescriptionAfter clicking "Start This Mission", the objectives screen does not start with the difficulty highlighted.

The difficulties are listed on the left, but the current difficulty level is not highlighted.
For example, "A New Job" should have "New to Stealth" highlighted, but it is not.

Attached two screenshots:
1. Shows the issue. ("New to Stealth" is selected, but "New to Stealth" is not highlighted.)
2. Shows how it should look. (Same as when "New to Stealth" is clicked.)
Steps To Reproduce1. Start game.
2. Click "Start This Mission".
3. Look at the Objectives Screen.
TagsNo tags attached.
Attached Files

Relationships

has duplicate 0006233 closedstgatilov Incorrect difficulty highlighted after mission completion 

Activities

Daft Mugi

Daft Mugi

15.01.2023 06:32

developer   ~0015774

I've attached a fix.

1. mainmenu_objectives.gui
2. patch version of mainmenu_objectives.gui
mainmenu_objectives.gui (12,678 bytes)   
// For vim users, don't remove: vim:ts=4:sw=4:cindent
/* =============================================================================================
 *
 * This file is part of The Dark Mod's Main Menu GUI
 *
 * Mission Authors: DO NOT EDIT, INCLUDE OR OVERRIDE THIS FILE IN YOUR MISSION PK4.
 *
 * ============================================================================================= */

windowDef ObjectivesMenu
{
	rect		0,0,640,640
	visible		0

	windowDef ObjectivesMenuParchment
	{
		rect		("gui::ingame" ? 0 : 50), -75, 640, 640
		matcolor	1,1,1,1
		background	"guis/assets/objectives/parchment_untitled"
	}

	// This is called whenever the user switches to this screen
	windowDef ObjectivesStateInit
	{
		noTime 1

		// Init methods have onTime 10 instead of onTime 0.
		onTime 10
		{
			set "cmd" "log 'ObjectivesStateInit called.'";

			set "gui::ObjStartIdx" "0";

			// Show our parent windowDef
			set "ObjectivesMenu::visible" "1";

			// stgatilov: background layers must never be enabled/disabled manually!
			// unfortunately, we have to leave this hack here for compatibility with old missions:
			// They override mainmenu_briefing.gui, which enables the figures in End code =(
			set "MainMenuBackgroundFigures::visible" "0";

			// Issue the open request to the SDK
			set "cmd" "log 'Issuing objective_open_request call.'";
			set "cmd" "objective_open_request";

			set "notime" 1;
		}
	}

	// Called when the MainMenuModeSelect script switches states.
	windowDef ObjectivesStateEnd
	{
		noTime 1

		onTime 0
		{
			set "cmd" "log 'ObjectivesStateEnd called.'";

			set "ObjectivesMenu::visible" "0";

			set "notime" "1";
		}
	}

	/***************************************************************************
	 *
	 *          Actual objectives
	 *
	 **************************************************************************/

	windowDef ObjectivesHolder
	{
		#define OBJ_OFFSET_X		("gui::ingame" ? 110 : 160)
		#define OBJ_FULL_WIDTH		460
		#define OBJ_FULL_HEIGHT		355

		rect			OBJ_OFFSET_X, 60, OBJ_FULL_WIDTH, OBJ_FULL_HEIGHT
		//backcolor		0.2,0.5,1.0,1   //for debugging

		#include "guis/tdm_objectives_core.gui"
	}

	/***************************************************************************
	 *
	 *          The Difficulty selection buttons (only visible in start game)
	 *
	 **************************************************************************/

	 windowDef DifficultySelection
	 {
		rect		0,0,640,640
		visible		"gui::DifficultyIsVisible"
		notime		1

		windowDef Difficulty0
		{
			rect		12,80,123,62
			forecolor	1,1,1,1
			text		"gui::diff0Name"
			textscale	0.36
			textalign	0
			font		"fonts/carleton"
			notime		1

			onTime 0
			{
				if ("gui::diffSelect" == 0)
				{
					set "forecolor" "1,1,1,1";
				}
			}

			onAction
			{
				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,0.7";
				set "Difficulty2::forecolor" 	"0.6,0.6,0.6,0.7";
				set "forecolor"			"1,1,1,1";
				set "gui::diffSelect" 			"0";

				set "cmd" "log 'Selected difficulty level 0.'";

				set "cmd" "play sound/meta/menu/mnu_select; diffSelect";
			}

			onMouseEnter
			{
				if ("gui::diffSelect" != 0)
				{
					transition "forecolor" "0.6,0.6,0.6,0.7" "1,1,1,0.9" "50" ;
					set "cmd" "play sound/meta/menu/mnu_hover;";
				}
			}

			onMouseExit
			{
				if ("gui::diffSelect" != 0)
				{
					transition "forecolor" "1,1,1,0.9" "0.6,0.6,0.6,0.7" "50" ;
				}
			}
		}

		windowDef Difficulty1
		{
			rect		12,208,123,62
			forecolor	0.6,0.6,0.6,0.7
			text		"gui::diff1Name"
			textscale	0.36
			textalign	0
			font		"fonts/carleton"
			notime		1

			onTime 0
			{
				if ("gui::diffSelect" == 1)
				{
					set "forecolor" "1,1,1,1";
				}
			}

			onAction
			{
				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,0.7";
				set "Difficulty2::forecolor" 	"0.6,0.6,0.6,0.7";
				set "forecolor" 	"1,1,1,1";
				set "gui::diffSelect" 	"1";

				set "cmd" "log 'Selected difficulty level 1.'";

				set "cmd" 	"play sound/meta/menu/mnu_select; diffSelect";
			}

			onMouseEnter
			{
				if ("gui::diffSelect" != 1)
				{
					transition "forecolor" "0.6,0.6,0.6,0.7" "1,1,1,0.9" "50" ;
					set "cmd" "play sound/meta/menu/mnu_hover;";
				}
			}

			onMouseExit
			{
				if ("gui::diffSelect" != 1)
				{
					transition "forecolor" "1,1,1,0.9" "0.6,0.6,0.6,0.7" "50" ;
				}
			}
		}

		windowDef Difficulty2
		{
			rect		12,336,123,62
			forecolor	0.6,0.6,0.6,0.7
			text		"gui::diff2Name"
			textscale	0.36
			textalign	0
			font		"fonts/carleton"
			notime		1

			onTime 0
			{
				if ("gui::diffSelect" == 2)
				{
					set "forecolor" "1,1,1,1";
				}
			}

			onAction
			{
				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,0.7";
				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,0.7";
				set "forecolor" 	"1,1,1,1";
				set "gui::diffSelect" 	"2";

				set "cmd" "log 'Selected difficulty level 2.'";

				set "cmd" 		"play sound/meta/menu/mnu_select; diffSelect";
			}

			onMouseEnter
			{
				if ("gui::diffSelect" != 2)
				{
					transition "forecolor" "0.6,0.6,0.6,0.7" "1,1,1,0.9" "50" ;
					set "cmd" "play sound/meta/menu/mnu_hover;";
				}
			}

			onMouseExit
			{
				if ("gui::diffSelect" != 2)
				{
					transition "forecolor" "1,1,1,0.9" "0.6,0.6,0.6,0.7" "50" ;
				}
			}
		}
	}

	/***************************************************************************
	 *
	 *          The "Resume Game" Button (only visible in-game)
	 *
	 **************************************************************************/

	windowDef ObjectivesResumeButtonH
	{
		MM_POS_OBJ_FORWARD_BUTTON_GLOW
		MM_FONT_RIGHT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02102"		// Resume Mission
		visible		("gui::inGame" == 1)
	}
	windowDef ObjectivesResumeButton
	{
		MM_POS_OBJ_FORWARD_BUTTON
		MM_FONT_RIGHT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02102"		// Resume Mission
		visible		("gui::inGame" == 1)
	}

	windowDef ObjectivesResumeButtonAction
	{
		MM_POS_OBJ_FORWARD_ACTION
		visible		("gui::inGame" == 1)
		onMouseEnter
		{
			transition "ObjectivesResumeButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesResumeButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}
		onMouseExit
		{
			transition "ObjectivesResumeButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesResumeButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}
		onAction
		{
			// The "objective_close_request" will be caught by the SDK code and shut down this GUI
			set "cmd" "play sound/meta/menu/mnu_select;";
			resetTime "ObjectivesDelayedCloseRequest" 0;
		}

	}

	// Sends an objective close request after a short delay
	windowDef ObjectivesDelayedCloseRequest
	{
		rect 0,0,0,0
		notime 1

		onTime 400
		{
			set "cmd" "close";
			set "notime" 1;
		}
	}

	// Called by the SDK when displaying the objectives in the pre-mission menu
	onNamedEvent ObjMenuShowDifficultyOptions
	{
		// Display the Difficulty choices
		set "gui::DifficultyIsVisible" "1";

		// Hide the objective checkboxes
		set "gui::ObjectiveBoxIsVisible" "0";
	}

	// Called by the SDK when displaying the objectives in-game
	onNamedEvent ObjMenuHideDifficultyOptions
	{
		// Hide the Difficulty choices
		set "gui::DifficultyIsVisible" "0";

		// Display the objective checkboxes
		set "gui::ObjectiveBoxIsVisible" "1";
	}

	/***************************************************************************
	 *
	 *          The "Main Menu" Button (only visible in-game)
	 *
	 **************************************************************************/

	windowDef ObjectivesMainmenuButtonH
	{
		MM_POS_OBJ_BACK_BUTTON_GLOW
		MM_FONT_LEFT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02114"			// Main Menu
		visible		("gui::inGame" == 1)
	}
	windowDef ObjectivesMainmenuButton
	{
		MM_POS_OBJ_BACK_BUTTON
		MM_FONT_LEFT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02114"			// Main Menu
		visible		("gui::inGame" == 1)

		onMouseEnter
		{
			transition "ObjectivesMainmenuButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesMainmenuButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}

		onMouseExit
		{
			transition "ObjectivesMainmenuButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesMainmenuButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}

		onAction
		{
			set "cmd" "play sound/meta/menu/mnu_select;";

			// Switch to the main menu
			set "gui::targetmode" MM_STATE_MAINMENU;
			resetTime "MainMenuModeSelect" 0;
		}
	}

	/***************************************************************************
	 *
	 *          The "Buy Equipment" or "Start Mission" Buttons
	 *
	 **************************************************************************/

	windowDef ObjectivesStartMissionButtonH
	{
		MM_POS_OBJ_FORWARD_BUTTON_GLOW
		MM_FONT_RIGHT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02253"		// Start Mission
		textalignx	-2
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 1)
	}
	windowDef ObjectivesStartMissionButton
	{
		MM_POS_OBJ_FORWARD_BUTTON
		MM_FONT_RIGHT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02253"		// Start Mission
		textalignx	-2
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 1)
	}

	windowDef ObjectivesStartMissionButtonAction
	{
		MM_POS_OBJ_FORWARD_ACTION
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 1)
		onMouseEnter
		{
			transition "ObjectivesStartMissionButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesStartMissionButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}
		onMouseExit
		{
			transition "ObjectivesStartMissionButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesStartMissionButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}
		onAction
		{
			set "gui::targetmode" MM_STATE_FORWARD;
			resetTime "MainMenuModeSelect" 0;

			set "cmd" "play sound/meta/menu/mnu_select;";
			set "cmd" "log 'Starting mission.'";
		}

	}

	windowDef ObjectivesBuyEquipmentButtonH
	{
		MM_POS_OBJ_FORWARD_BUTTON_GLOW
		MM_FONT_RIGHT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02205"		// Buy Equipment
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 0)
	}
	windowDef ObjectivesBuyEquipmentButton
	{
		MM_POS_OBJ_FORWARD_BUTTON
		MM_FONT_RIGHT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02205"		// Buy Equipment
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 0)
	}

	windowDef ObjectivesBuyEquipmentButtonAction
	{
		MM_POS_OBJ_FORWARD_ACTION
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 0)
		onMouseEnter
		{
			transition "ObjectivesBuyEquipmentButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBuyEquipmentButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}
		onMouseExit
		{
			transition "ObjectivesBuyEquipmentButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBuyEquipmentButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}
		onAction
		{
			set "cmd" "play sound/meta/menu/mnu_select;";
			set "cmd" "log 'Entering shop.'";
			set "gui::targetmode" MM_STATE_FORWARD;
			resetTime "MainMenuModeSelect" 0;
		}

	}

	/***************************************************************************
	 *
	 *          The "Briefing/Back" Button (only visible in start menu)
	 *
	 **************************************************************************/

	windowDef ObjectivesBriefingButtonH
	{
		MM_POS_OBJ_BACK_BUTTON_GLOW
		MM_FONT_LEFT_GLOW
		MM_BUTTON_HUGE
		text		"#str_07202"			// Back
		visible		("gui::inGame" == 0)
	}
	windowDef ObjectivesBriefingButton
	{
		MM_POS_OBJ_BACK_BUTTON
		MM_FONT_LEFT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_07202"			// Back
		visible		("gui::inGame" == 0)

		onMouseEnter
		{
			transition "ObjectivesBriefingButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBriefingButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}

		onMouseExit
		{
			transition "ObjectivesBriefingButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBriefingButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}

		onAction
		{
			set "cmd" "play sound/meta/menu/mnu_select";

			// Switch to briefing
			set "gui::targetmode" MM_STATE_BACKWARD;
			resetTime "MainMenuModeSelect" 0;
		}
	}

} // ObjectivesMenu
mainmenu_objectives.gui (12,678 bytes)   
r16727-fix-objectives-screen.diff (4,391 bytes)   
diff --git guis/mainmenu_objectives.gui guis/mainmenu_objectives.gui
index e02f7c3..4ec6c6d 100644
--- guis/mainmenu_objectives.gui
+++ guis/mainmenu_objectives.gui
@@ -11,7 +11,7 @@ windowDef ObjectivesMenu
 {
 	rect		0,0,640,640
 	visible		0
-	
+
 	windowDef ObjectivesMenuParchment
 	{
 		rect		("gui::ingame" ? 0 : 50), -75, 640, 640
@@ -92,18 +92,10 @@ windowDef ObjectivesMenu
 		visible		"gui::DifficultyIsVisible"
 		notime		1
 
-		onTime 0
-		{
-			// set the default color for all values, will be corrected below
-			set "Difficulty0::forecolor" "0.6,0.6,0.6,0.7";
-			set "Difficulty1::forecolor" "0.6,0.6,0.6,0.7";
-			set "Difficulty2::forecolor" "0.6,0.6,0.6,0.7";
-		}
-
 		windowDef Difficulty0
 		{
 			rect		12,80,123,62
-			forecolor	0.6,0.6,0.6,.7
+			forecolor	1,1,1,1
 			text		"gui::diff0Name"
 			textscale	0.36
 			textalign	0
@@ -134,7 +126,7 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 0)
 				{
-					transition "forecolor" "0.6,0.6,0.6,.7" "1,1,1,.9" "50" ;
+					transition "forecolor" "0.6,0.6,0.6,0.7" "1,1,1,0.9" "50" ;
 					set "cmd" "play sound/meta/menu/mnu_hover;";
 				}
 			}
@@ -143,7 +135,7 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 0)
 				{
-					transition "forecolor" "1,1,1,.9" "0.6,0.6,0.6,0.7" "50" ;
+					transition "forecolor" "1,1,1,0.9" "0.6,0.6,0.6,0.7" "50" ;
 				}
 			}
 		}
@@ -151,13 +143,21 @@ windowDef ObjectivesMenu
 		windowDef Difficulty1
 		{
 			rect		12,208,123,62
-			forecolor	1,1,1,.7
+			forecolor	0.6,0.6,0.6,0.7
 			text		"gui::diff1Name"
 			textscale	0.36
 			textalign	0
 			font		"fonts/carleton"
 			notime		1
 
+			onTime 0
+			{
+				if ("gui::diffSelect" == 1)
+				{
+					set "forecolor" "1,1,1,1";
+				}
+			}
+
 			onAction
 			{
 				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,0.7";
@@ -174,7 +174,7 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 1)
 				{
-					transition "forecolor" "0.6,0.6,0.6,.7" "1,1,1,.9" "50" ;
+					transition "forecolor" "0.6,0.6,0.6,0.7" "1,1,1,0.9" "50" ;
 					set "cmd" "play sound/meta/menu/mnu_hover;";
 				}
 			}
@@ -183,7 +183,7 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 1)
 				{
-					transition "forecolor" "1,1,1,.9" "0.6,0.6,0.6,.7" "50" ;
+					transition "forecolor" "1,1,1,0.9" "0.6,0.6,0.6,0.7" "50" ;
 				}
 			}
 		}
@@ -191,7 +191,7 @@ windowDef ObjectivesMenu
 		windowDef Difficulty2
 		{
 			rect		12,336,123,62
-			forecolor	1,1,1,.7
+			forecolor	0.6,0.6,0.6,0.7
 			text		"gui::diff2Name"
 			textscale	0.36
 			textalign	0
@@ -205,11 +205,11 @@ windowDef ObjectivesMenu
 					set "forecolor" "1,1,1,1";
 				}
 			}
-					
+
 			onAction
 			{
-				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,.7";
-				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,.7";
+				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,0.7";
+				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,0.7";
 				set "forecolor" 	"1,1,1,1";
 				set "gui::diffSelect" 	"2";
 
@@ -222,7 +222,7 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 2)
 				{
-					transition "forecolor" "0.6,0.6,0.6,.7" "1,1,1,.9" "50" ;
+					transition "forecolor" "0.6,0.6,0.6,0.7" "1,1,1,0.9" "50" ;
 					set "cmd" "play sound/meta/menu/mnu_hover;";
 				}
 			}
@@ -231,7 +231,7 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 2)
 				{
-					transition "forecolor" "1,1,1,.9" "0.6,0.6,0.6,.7" "50" ;
+					transition "forecolor" "1,1,1,0.9" "0.6,0.6,0.6,0.7" "50" ;
 				}
 			}
 		}
@@ -357,7 +357,7 @@ windowDef ObjectivesMenu
 		onAction
 		{
 			set "cmd" "play sound/meta/menu/mnu_select;";
-			
+
 			// Switch to the main menu
 			set "gui::targetmode" MM_STATE_MAINMENU;
 			resetTime "MainMenuModeSelect" 0;
@@ -409,7 +409,7 @@ windowDef ObjectivesMenu
 		{
 			set "gui::targetmode" MM_STATE_FORWARD;
 			resetTime "MainMenuModeSelect" 0;
-			
+
 			set "cmd" "play sound/meta/menu/mnu_select;";
 			set "cmd" "log 'Starting mission.'";
 		}
@@ -458,7 +458,7 @@ windowDef ObjectivesMenu
 		}
 
 	}
- 
+
 	/***************************************************************************
 	 *
 	 *          The "Briefing/Back" Button (only visible in start menu)
@@ -498,7 +498,7 @@ windowDef ObjectivesMenu
 		onAction
 		{
 			set "cmd" "play sound/meta/menu/mnu_select";
-			
+
 			// Switch to briefing
 			set "gui::targetmode" MM_STATE_BACKWARD;
 			resetTime "MainMenuModeSelect" 0;
Daft Mugi

Daft Mugi

15.01.2023 08:42

developer   ~0015775

I found another issue with the objectives screen.

After a mission is completed and the player navigates back to the objectives screen,
it will have the first difficulty selected on the left even though the objectives list
shows a different difficulty level.

To reproduce:
1. Start mission on difficulty 2.
2. Complete mission.
3. Click "Start This Mission".
4. On the objectives screen, difficulty 0 will be highlighted but have difficulty 2 objectives.

This may require a separate bug tracker, because the behavior is the same
with and without the patch I provided earlier.

I didn't have time to investigate this more. I'll look at it again tomorrow.
Daft Mugi

Daft Mugi

16.01.2023 07:00

developer   ~0015782

I've attached v2 of my patch.
The code is cleaned up.
And, once the patch for 0006233 is complete, it will show the correct difficulty after mission completion.
mainmenu_objectives-2.gui (13,829 bytes)   
// For vim users, don't remove: vim:ts=4:sw=4:cindent
/* =============================================================================================
 *
 * This file is part of The Dark Mod's Main Menu GUI
 *
 * Mission Authors: DO NOT EDIT, INCLUDE OR OVERRIDE THIS FILE IN YOUR MISSION PK4.
 *
 * ============================================================================================= */

windowDef ObjectivesMenu
{
	rect		0,0,640,640
	visible		0

	windowDef ObjectivesMenuParchment
	{
		rect		("gui::ingame" ? 0 : 50), -75, 640, 640
		matcolor	1,1,1,1
		background	"guis/assets/objectives/parchment_untitled"
	}

	// This is called whenever the user switches to this screen
	windowDef ObjectivesStateInit
	{
		noTime 1

		// Init methods have onTime 10 instead of onTime 0.
		onTime 10
		{
			set "cmd" "log 'ObjectivesStateInit called.'";

			set "gui::ObjStartIdx" "0";

			// Show our parent windowDef
			set "ObjectivesMenu::visible" "1";

			// stgatilov: background layers must never be enabled/disabled manually!
			// unfortunately, we have to leave this hack here for compatibility with old missions:
			// They override mainmenu_briefing.gui, which enables the figures in End code =(
			set "MainMenuBackgroundFigures::visible" "0";

			// Issue the open request to the SDK
			set "cmd" "log 'Issuing objective_open_request call.'";
			set "cmd" "objective_open_request";

			set "notime" "1";
		}
	}

	// Called when the MainMenuModeSelect script switches states.
	windowDef ObjectivesStateEnd
	{
		noTime 1

		onTime 0
		{
			set "cmd" "log 'ObjectivesStateEnd called.'";

			set "ObjectivesMenu::visible" "0";

			set "notime" "1";
		}
	}

	/***************************************************************************
	 *
	 *          Actual objectives
	 *
	 **************************************************************************/

	windowDef ObjectivesHolder
	{
		#define OBJ_OFFSET_X		("gui::ingame" ? 110 : 160)
		#define OBJ_FULL_WIDTH		460
		#define OBJ_FULL_HEIGHT		355

		rect			OBJ_OFFSET_X, 60, OBJ_FULL_WIDTH, OBJ_FULL_HEIGHT
		//backcolor		0.2,0.5,1.0,1   //for debugging

		#include "guis/tdm_objectives_core.gui"
	}

	/***************************************************************************
	 *
	 *          The Difficulty selection buttons (only visible in start game)
	 *
	 **************************************************************************/

	 windowDef DifficultySelection
	 {
		#define DIFFICULTY_NAV_COLOR         0.6,0.6,0.6,0.7
		#define SDIFFICULTY_NAV_COLOR        "0.6,0.6,0.6,0.7"
		#define SDIFFICULTY_NAV_HOVER        "1,1,1,0.9"
		#define SDIFFICULTY_NAV_SELECTED     "1,1,1,1"

		#define DIFFICULTY_NAV_RECT_0        12,80,123,62
		#define DIFFICULTY_NAV_RECT_1        12,208,123,62
		#define DIFFICULTY_NAV_RECT_2        12,336,123,62

		#define DIFFICULTY_NAV_TEXTSCALE     0.36
		#define DIFFICULTY_NAV_TEXTALIGN     0
		#define SDIFFICULTY_NAV_FONT         "fonts/carleton"

		rect		0,0,640,640
		visible		"gui::DifficultyIsVisible"
		notime		1

		windowDef Difficulty0
		{
			rect		DIFFICULTY_NAV_RECT_0
			forecolor	DIFFICULTY_NAV_COLOR
			text		"gui::diff0Name"
			textscale	DIFFICULTY_NAV_TEXTSCALE
			textalign	DIFFICULTY_NAV_TEXTALIGN
			font		SDIFFICULTY_NAV_FONT

			onTime 0
			{
				if ("gui::diffSelect" == 0) {
					set "forecolor" SDIFFICULTY_NAV_SELECTED;
				} else {
					set "forecolor" SDIFFICULTY_NAV_COLOR;
				}
				set "notime" "1";
			}

			onAction
			{
				set "Difficulty1::forecolor"   SDIFFICULTY_NAV_COLOR;
				set "Difficulty2::forecolor"   SDIFFICULTY_NAV_COLOR;
				set "forecolor"                SDIFFICULTY_NAV_SELECTED;
				set "gui::diffSelect"          "0";

				set "cmd" "log 'Selected difficulty level 0.'";
				set "cmd" "play sound/meta/menu/mnu_select; diffSelect";
			}

			onMouseEnter
			{
				if ("gui::diffSelect" != 0)
				{
					transition "forecolor" SDIFFICULTY_NAV_COLOR SDIFFICULTY_NAV_HOVER "50";
					set "cmd" "play sound/meta/menu/mnu_hover;";
				}
			}

			onMouseExit
			{
				if ("gui::diffSelect" != 0)
				{
					transition "forecolor" SDIFFICULTY_NAV_HOVER SDIFFICULTY_NAV_COLOR "50" ;
				}
			}
		}

		windowDef Difficulty1
		{
			rect		DIFFICULTY_NAV_RECT_1
			forecolor	DIFFICULTY_NAV_COLOR
			text		"gui::diff1Name"
			textscale	DIFFICULTY_NAV_TEXTSCALE
			textalign	DIFFICULTY_NAV_TEXTALIGN
			font		SDIFFICULTY_NAV_FONT

			onTime 0
			{
				if ("gui::diffSelect" == 1) {
					set "forecolor" SDIFFICULTY_NAV_SELECTED;
				} else {
					set "forecolor" SDIFFICULTY_NAV_COLOR;
				}
				set "notime" "1";
			}

			onAction
			{
				set "Difficulty0::forecolor"   SDIFFICULTY_NAV_COLOR;
				set "Difficulty2::forecolor"   SDIFFICULTY_NAV_COLOR;
				set "forecolor"                SDIFFICULTY_NAV_SELECTED;
				set "gui::diffSelect"          "1";

				set "cmd" "log 'Selected difficulty level 1.'";
				set "cmd" "play sound/meta/menu/mnu_select; diffSelect";
			}

			onMouseEnter
			{
				if ("gui::diffSelect" != 1)
				{
					transition "forecolor" SDIFFICULTY_NAV_COLOR SDIFFICULTY_NAV_HOVER "50";
					set "cmd" "play sound/meta/menu/mnu_hover;";
				}
			}

			onMouseExit
			{
				if ("gui::diffSelect" != 1)
				{
					transition "forecolor" SDIFFICULTY_NAV_HOVER SDIFFICULTY_NAV_COLOR "50" ;
				}
			}
		}

		windowDef Difficulty2
		{
			rect		DIFFICULTY_NAV_RECT_2
			forecolor	DIFFICULTY_NAV_COLOR
			text		"gui::diff2Name"
			textscale	DIFFICULTY_NAV_TEXTSCALE
			textalign	DIFFICULTY_NAV_TEXTALIGN
			font		SDIFFICULTY_NAV_FONT

			onTime 0
			{
				if ("gui::diffSelect" == 2) {
					set "forecolor" SDIFFICULTY_NAV_SELECTED;
				} else {
					set "forecolor" SDIFFICULTY_NAV_COLOR;
				}
				set "notime" "1";
			}

			onAction
			{
				set "Difficulty0::forecolor"   SDIFFICULTY_NAV_COLOR;
				set "Difficulty1::forecolor"   SDIFFICULTY_NAV_COLOR;
				set "forecolor"                SDIFFICULTY_NAV_SELECTED;
				set "gui::diffSelect"          "2";

				set "cmd" "log 'Selected difficulty level 2.'";
				set "cmd" "play sound/meta/menu/mnu_select; diffSelect";
			}

			onMouseEnter
			{
				if ("gui::diffSelect" != 2)
				{
					transition "forecolor" SDIFFICULTY_NAV_COLOR SDIFFICULTY_NAV_HOVER "50";
					set "cmd" "play sound/meta/menu/mnu_hover;";
				}
			}

			onMouseExit
			{
				if ("gui::diffSelect" != 2)
				{
					transition "forecolor" SDIFFICULTY_NAV_HOVER SDIFFICULTY_NAV_COLOR "50" ;
				}
			}
		}
	}

	/***************************************************************************
	 *
	 *          The "Resume Game" Button (only visible in-game)
	 *
	 **************************************************************************/

	windowDef ObjectivesResumeButtonH
	{
		MM_POS_OBJ_FORWARD_BUTTON_GLOW
		MM_FONT_RIGHT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02102"		// Resume Mission
		visible		("gui::inGame" == 1)
	}
	windowDef ObjectivesResumeButton
	{
		MM_POS_OBJ_FORWARD_BUTTON
		MM_FONT_RIGHT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02102"		// Resume Mission
		visible		("gui::inGame" == 1)
	}

	windowDef ObjectivesResumeButtonAction
	{
		MM_POS_OBJ_FORWARD_ACTION
		visible		("gui::inGame" == 1)
		onMouseEnter
		{
			transition "ObjectivesResumeButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesResumeButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}
		onMouseExit
		{
			transition "ObjectivesResumeButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesResumeButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}
		onAction
		{
			// The "objective_close_request" will be caught by the SDK code and shut down this GUI
			set "cmd" "play sound/meta/menu/mnu_select;";
			resetTime "ObjectivesDelayedCloseRequest" 0;
		}

	}

	// Sends an objective close request after a short delay
	windowDef ObjectivesDelayedCloseRequest
	{
		rect 0,0,0,0
		notime 1

		onTime 400
		{
			set "cmd" "close";
			set "notime" "1";
		}
	}

	// Called by the SDK when displaying the objectives in the pre-mission menu
	onNamedEvent ObjMenuShowDifficultyOptions
	{
		// Display the Difficulty choices
		set "gui::DifficultyIsVisible" "1";

		// Hide the objective checkboxes
		set "gui::ObjectiveBoxIsVisible" "0";
	}

	// Called by the SDK when displaying the objectives in-game
	onNamedEvent ObjMenuHideDifficultyOptions
	{
		// Hide the Difficulty choices
		set "gui::DifficultyIsVisible" "0";

		// Display the objective checkboxes
		set "gui::ObjectiveBoxIsVisible" "1";
	}

	/***************************************************************************
	 *
	 *          The "Main Menu" Button (only visible in-game)
	 *
	 **************************************************************************/

	windowDef ObjectivesMainmenuButtonH
	{
		MM_POS_OBJ_BACK_BUTTON_GLOW
		MM_FONT_LEFT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02114"			// Main Menu
		visible		("gui::inGame" == 1)
	}
	windowDef ObjectivesMainmenuButton
	{
		MM_POS_OBJ_BACK_BUTTON
		MM_FONT_LEFT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02114"			// Main Menu
		visible		("gui::inGame" == 1)

		onMouseEnter
		{
			transition "ObjectivesMainmenuButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesMainmenuButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}

		onMouseExit
		{
			transition "ObjectivesMainmenuButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesMainmenuButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}

		onAction
		{
			set "cmd" "play sound/meta/menu/mnu_select;";

			// Switch to the main menu
			set "gui::targetmode" MM_STATE_MAINMENU;
			resetTime "MainMenuModeSelect" 0;
		}
	}

	/***************************************************************************
	 *
	 *          The "Buy Equipment" or "Start Mission" Buttons
	 *
	 **************************************************************************/

	windowDef ObjectivesStartMissionButtonH
	{
		MM_POS_OBJ_FORWARD_BUTTON_GLOW
		MM_FONT_RIGHT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02253"		// Start Mission
		textalignx	-2
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 1)
	}
	windowDef ObjectivesStartMissionButton
	{
		MM_POS_OBJ_FORWARD_BUTTON
		MM_FONT_RIGHT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02253"		// Start Mission
		textalignx	-2
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 1)
	}

	windowDef ObjectivesStartMissionButtonAction
	{
		MM_POS_OBJ_FORWARD_ACTION
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 1)
		onMouseEnter
		{
			transition "ObjectivesStartMissionButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesStartMissionButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}
		onMouseExit
		{
			transition "ObjectivesStartMissionButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesStartMissionButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}
		onAction
		{
			set "gui::targetmode" MM_STATE_FORWARD;
			resetTime "MainMenuModeSelect" 0;

			set "cmd" "play sound/meta/menu/mnu_select;";
			set "cmd" "log 'Starting mission.'";
		}

	}

	windowDef ObjectivesBuyEquipmentButtonH
	{
		MM_POS_OBJ_FORWARD_BUTTON_GLOW
		MM_FONT_RIGHT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02205"		// Buy Equipment
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 0)
	}
	windowDef ObjectivesBuyEquipmentButton
	{
		MM_POS_OBJ_FORWARD_BUTTON
		MM_FONT_RIGHT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02205"		// Buy Equipment
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 0)
	}

	windowDef ObjectivesBuyEquipmentButtonAction
	{
		MM_POS_OBJ_FORWARD_ACTION
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 0)
		onMouseEnter
		{
			transition "ObjectivesBuyEquipmentButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBuyEquipmentButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}
		onMouseExit
		{
			transition "ObjectivesBuyEquipmentButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBuyEquipmentButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}
		onAction
		{
			set "cmd" "play sound/meta/menu/mnu_select;";
			set "cmd" "log 'Entering shop.'";
			set "gui::targetmode" MM_STATE_FORWARD;
			resetTime "MainMenuModeSelect" 0;
		}

	}

	/***************************************************************************
	 *
	 *          The "Briefing/Back" Button (only visible in start menu)
	 *
	 **************************************************************************/

	windowDef ObjectivesBriefingButtonH
	{
		MM_POS_OBJ_BACK_BUTTON_GLOW
		MM_FONT_LEFT_GLOW
		MM_BUTTON_HUGE
		text		"#str_07202"			// Back
		visible		("gui::inGame" == 0)
	}
	windowDef ObjectivesBriefingButton
	{
		MM_POS_OBJ_BACK_BUTTON
		MM_FONT_LEFT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_07202"			// Back
		visible		("gui::inGame" == 0)

		onMouseEnter
		{
			transition "ObjectivesBriefingButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBriefingButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}

		onMouseExit
		{
			transition "ObjectivesBriefingButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBriefingButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}

		onAction
		{
			set "cmd" "play sound/meta/menu/mnu_select";

			// Switch to briefing
			set "gui::targetmode" MM_STATE_BACKWARD;
			resetTime "MainMenuModeSelect" 0;
		}
	}

} // ObjectivesMenu
mainmenu_objectives-2.gui (13,829 bytes)   
r16727-fix-objectives-screen-v2.diff (7,708 bytes)   
diff --git guis/mainmenu_objectives.gui guis/mainmenu_objectives.gui
index e02f7c3..13c1a47 100644
--- guis/mainmenu_objectives.gui
+++ guis/mainmenu_objectives.gui
@@ -11,7 +11,7 @@ windowDef ObjectivesMenu
 {
 	rect		0,0,640,640
 	visible		0
-	
+
 	windowDef ObjectivesMenuParchment
 	{
 		rect		("gui::ingame" ? 0 : 50), -75, 640, 640
@@ -43,7 +43,7 @@ windowDef ObjectivesMenu
 			set "cmd" "log 'Issuing objective_open_request call.'";
 			set "cmd" "objective_open_request";
 
-			set "notime" 1;
+			set "notime" "1";
 		}
 	}
 
@@ -88,45 +88,50 @@ windowDef ObjectivesMenu
 
 	 windowDef DifficultySelection
 	 {
+		#define DIFFICULTY_NAV_COLOR         0.6,0.6,0.6,0.7
+		#define SDIFFICULTY_NAV_COLOR        "0.6,0.6,0.6,0.7"
+		#define SDIFFICULTY_NAV_HOVER        "1,1,1,0.9"
+		#define SDIFFICULTY_NAV_SELECTED     "1,1,1,1"
+
+		#define DIFFICULTY_NAV_RECT_0        12,80,123,62
+		#define DIFFICULTY_NAV_RECT_1        12,208,123,62
+		#define DIFFICULTY_NAV_RECT_2        12,336,123,62
+
+		#define DIFFICULTY_NAV_TEXTSCALE     0.36
+		#define DIFFICULTY_NAV_TEXTALIGN     0
+		#define SDIFFICULTY_NAV_FONT         "fonts/carleton"
+
 		rect		0,0,640,640
 		visible		"gui::DifficultyIsVisible"
 		notime		1
 
-		onTime 0
-		{
-			// set the default color for all values, will be corrected below
-			set "Difficulty0::forecolor" "0.6,0.6,0.6,0.7";
-			set "Difficulty1::forecolor" "0.6,0.6,0.6,0.7";
-			set "Difficulty2::forecolor" "0.6,0.6,0.6,0.7";
-		}
-
 		windowDef Difficulty0
 		{
-			rect		12,80,123,62
-			forecolor	0.6,0.6,0.6,.7
+			rect		DIFFICULTY_NAV_RECT_0
+			forecolor	DIFFICULTY_NAV_COLOR
 			text		"gui::diff0Name"
-			textscale	0.36
-			textalign	0
-			font		"fonts/carleton"
-			notime		1
+			textscale	DIFFICULTY_NAV_TEXTSCALE
+			textalign	DIFFICULTY_NAV_TEXTALIGN
+			font		SDIFFICULTY_NAV_FONT
 
 			onTime 0
 			{
-				if ("gui::diffSelect" == 0)
-				{
-					set "forecolor" "1,1,1,1";
+				if ("gui::diffSelect" == 0) {
+					set "forecolor" SDIFFICULTY_NAV_SELECTED;
+				} else {
+					set "forecolor" SDIFFICULTY_NAV_COLOR;
 				}
+				set "notime" "1";
 			}
 
 			onAction
 			{
-				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,0.7";
-				set "Difficulty2::forecolor" 	"0.6,0.6,0.6,0.7";
-				set "forecolor"			"1,1,1,1";
-				set "gui::diffSelect" 			"0";
+				set "Difficulty1::forecolor"   SDIFFICULTY_NAV_COLOR;
+				set "Difficulty2::forecolor"   SDIFFICULTY_NAV_COLOR;
+				set "forecolor"                SDIFFICULTY_NAV_SELECTED;
+				set "gui::diffSelect"          "0";
 
 				set "cmd" "log 'Selected difficulty level 0.'";
-
 				set "cmd" "play sound/meta/menu/mnu_select; diffSelect";
 			}
 
@@ -134,7 +139,7 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 0)
 				{
-					transition "forecolor" "0.6,0.6,0.6,.7" "1,1,1,.9" "50" ;
+					transition "forecolor" SDIFFICULTY_NAV_COLOR SDIFFICULTY_NAV_HOVER "50";
 					set "cmd" "play sound/meta/menu/mnu_hover;";
 				}
 			}
@@ -143,38 +148,46 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 0)
 				{
-					transition "forecolor" "1,1,1,.9" "0.6,0.6,0.6,0.7" "50" ;
+					transition "forecolor" SDIFFICULTY_NAV_HOVER SDIFFICULTY_NAV_COLOR "50" ;
 				}
 			}
 		}
 
 		windowDef Difficulty1
 		{
-			rect		12,208,123,62
-			forecolor	1,1,1,.7
+			rect		DIFFICULTY_NAV_RECT_1
+			forecolor	DIFFICULTY_NAV_COLOR
 			text		"gui::diff1Name"
-			textscale	0.36
-			textalign	0
-			font		"fonts/carleton"
-			notime		1
+			textscale	DIFFICULTY_NAV_TEXTSCALE
+			textalign	DIFFICULTY_NAV_TEXTALIGN
+			font		SDIFFICULTY_NAV_FONT
+
+			onTime 0
+			{
+				if ("gui::diffSelect" == 1) {
+					set "forecolor" SDIFFICULTY_NAV_SELECTED;
+				} else {
+					set "forecolor" SDIFFICULTY_NAV_COLOR;
+				}
+				set "notime" "1";
+			}
 
 			onAction
 			{
-				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,0.7";
-				set "Difficulty2::forecolor" 	"0.6,0.6,0.6,0.7";
-				set "forecolor" 	"1,1,1,1";
-				set "gui::diffSelect" 	"1";
+				set "Difficulty0::forecolor"   SDIFFICULTY_NAV_COLOR;
+				set "Difficulty2::forecolor"   SDIFFICULTY_NAV_COLOR;
+				set "forecolor"                SDIFFICULTY_NAV_SELECTED;
+				set "gui::diffSelect"          "1";
 
 				set "cmd" "log 'Selected difficulty level 1.'";
-
-				set "cmd" 	"play sound/meta/menu/mnu_select; diffSelect";
+				set "cmd" "play sound/meta/menu/mnu_select; diffSelect";
 			}
 
 			onMouseEnter
 			{
 				if ("gui::diffSelect" != 1)
 				{
-					transition "forecolor" "0.6,0.6,0.6,.7" "1,1,1,.9" "50" ;
+					transition "forecolor" SDIFFICULTY_NAV_COLOR SDIFFICULTY_NAV_HOVER "50";
 					set "cmd" "play sound/meta/menu/mnu_hover;";
 				}
 			}
@@ -183,46 +196,46 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 1)
 				{
-					transition "forecolor" "1,1,1,.9" "0.6,0.6,0.6,.7" "50" ;
+					transition "forecolor" SDIFFICULTY_NAV_HOVER SDIFFICULTY_NAV_COLOR "50" ;
 				}
 			}
 		}
 
 		windowDef Difficulty2
 		{
-			rect		12,336,123,62
-			forecolor	1,1,1,.7
+			rect		DIFFICULTY_NAV_RECT_2
+			forecolor	DIFFICULTY_NAV_COLOR
 			text		"gui::diff2Name"
-			textscale	0.36
-			textalign	0
-			font		"fonts/carleton"
-			notime		1
+			textscale	DIFFICULTY_NAV_TEXTSCALE
+			textalign	DIFFICULTY_NAV_TEXTALIGN
+			font		SDIFFICULTY_NAV_FONT
 
 			onTime 0
 			{
-				if ("gui::diffSelect" == 2)
-				{
-					set "forecolor" "1,1,1,1";
+				if ("gui::diffSelect" == 2) {
+					set "forecolor" SDIFFICULTY_NAV_SELECTED;
+				} else {
+					set "forecolor" SDIFFICULTY_NAV_COLOR;
 				}
+				set "notime" "1";
 			}
-					
+
 			onAction
 			{
-				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,.7";
-				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,.7";
-				set "forecolor" 	"1,1,1,1";
-				set "gui::diffSelect" 	"2";
+				set "Difficulty0::forecolor"   SDIFFICULTY_NAV_COLOR;
+				set "Difficulty1::forecolor"   SDIFFICULTY_NAV_COLOR;
+				set "forecolor"                SDIFFICULTY_NAV_SELECTED;
+				set "gui::diffSelect"          "2";
 
 				set "cmd" "log 'Selected difficulty level 2.'";
-
-				set "cmd" 		"play sound/meta/menu/mnu_select; diffSelect";
+				set "cmd" "play sound/meta/menu/mnu_select; diffSelect";
 			}
 
 			onMouseEnter
 			{
 				if ("gui::diffSelect" != 2)
 				{
-					transition "forecolor" "0.6,0.6,0.6,.7" "1,1,1,.9" "50" ;
+					transition "forecolor" SDIFFICULTY_NAV_COLOR SDIFFICULTY_NAV_HOVER "50";
 					set "cmd" "play sound/meta/menu/mnu_hover;";
 				}
 			}
@@ -231,7 +244,7 @@ windowDef ObjectivesMenu
 			{
 				if ("gui::diffSelect" != 2)
 				{
-					transition "forecolor" "1,1,1,.9" "0.6,0.6,0.6,.7" "50" ;
+					transition "forecolor" SDIFFICULTY_NAV_HOVER SDIFFICULTY_NAV_COLOR "50" ;
 				}
 			}
 		}
@@ -294,7 +307,7 @@ windowDef ObjectivesMenu
 		onTime 400
 		{
 			set "cmd" "close";
-			set "notime" 1;
+			set "notime" "1";
 		}
 	}
 
@@ -357,7 +370,7 @@ windowDef ObjectivesMenu
 		onAction
 		{
 			set "cmd" "play sound/meta/menu/mnu_select;";
-			
+
 			// Switch to the main menu
 			set "gui::targetmode" MM_STATE_MAINMENU;
 			resetTime "MainMenuModeSelect" 0;
@@ -409,7 +422,7 @@ windowDef ObjectivesMenu
 		{
 			set "gui::targetmode" MM_STATE_FORWARD;
 			resetTime "MainMenuModeSelect" 0;
-			
+
 			set "cmd" "play sound/meta/menu/mnu_select;";
 			set "cmd" "log 'Starting mission.'";
 		}
@@ -458,7 +471,7 @@ windowDef ObjectivesMenu
 		}
 
 	}
- 
+
 	/***************************************************************************
 	 *
 	 *          The "Briefing/Back" Button (only visible in start menu)
@@ -498,7 +511,7 @@ windowDef ObjectivesMenu
 		onAction
 		{
 			set "cmd" "play sound/meta/menu/mnu_select";
-			
+
 			// Switch to briefing
 			set "gui::targetmode" MM_STATE_BACKWARD;
 			resetTime "MainMenuModeSelect" 0;
stgatilov

stgatilov

16.01.2023 08:35

administrator   ~0015785

I committed a fix somewhat similar to your first diff in svn rev 16740.

Speaking of the old GUI, it's probably not a good idea to clean or refactor it too much, especially during beta.
Also, the new fix works even after selecting another mission.
Daft Mugi

Daft Mugi

16.01.2023 09:37

developer   ~0015789

I don't have access to the asset svn, so I can't see how my patch was applied.

It's really important that the newest patch is applied as it handles some edge cases.
Also, the refactoring will make it much easier to read for the next person, and it's not that much.
It's much less code and much less complicated than other code getting committed during beta.
I spent a lot of time making sure it was correct.
If something is wrong, we'll catch it before 2.11 release.
stgatilov

stgatilov

16.01.2023 20:19

administrator   ~0015791

Oh, sorry.
Attached the files.
The main difference I guess is to do initialization in "Init" function of the state.
difficulty_highlight_fix.diff (1,689 bytes)   
Index: mainmenu_objectives.gui
===================================================================
--- mainmenu_objectives.gui	(revision 16739)
+++ mainmenu_objectives.gui	(revision 16740)
@@ -43,6 +43,9 @@
 			set "cmd" "log 'Issuing objective_open_request call.'";
 			set "cmd" "objective_open_request";
 
+			// #6229: highlight proper difficulty initially
+			set "DifficultySelection::notime" "0";
+
 			set "notime" 1;
 		}
 	}
@@ -92,12 +95,26 @@
 		visible		"gui::DifficultyIsVisible"
 		notime		1
 
-		onTime 0
+		// #6229: objective_open_request sets diffSelect
+		// so should wait a bit (10 ms) for it to finish
+		onTime 10
 		{
-			// set the default color for all values, will be corrected below
 			set "Difficulty0::forecolor" "0.6,0.6,0.6,0.7";
 			set "Difficulty1::forecolor" "0.6,0.6,0.6,0.7";
 			set "Difficulty2::forecolor" "0.6,0.6,0.6,0.7";
+			if ("gui::diffSelect" == 0)
+			{
+				set "Difficulty0::forecolor" "1,1,1,1";
+			}
+			if ("gui::diffSelect" == 1)
+			{
+				set "Difficulty1::forecolor" "1,1,1,1";
+			}
+			if ("gui::diffSelect" == 2)
+			{
+				set "Difficulty2::forecolor" "1,1,1,1";
+			}
+			set "notime" "1";
 		}
 
 		windowDef Difficulty0
@@ -110,14 +127,6 @@
 			font		"fonts/carleton"
 			notime		1
 
-			onTime 0
-			{
-				if ("gui::diffSelect" == 0)
-				{
-					set "forecolor" "1,1,1,1";
-				}
-			}
-
 			onAction
 			{
 				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,0.7";
@@ -198,14 +207,6 @@
 			font		"fonts/carleton"
 			notime		1
 
-			onTime 0
-			{
-				if ("gui::diffSelect" == 2)
-				{
-					set "forecolor" "1,1,1,1";
-				}
-			}
-					
 			onAction
 			{
 				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,.7";
difficulty_highlight_fix.diff (1,689 bytes)   
mainmenu_objectives-3.gui (13,018 bytes)   
// For vim users, don't remove: vim:ts=4:sw=4:cindent
/* =============================================================================================
 *
 * This file is part of The Dark Mod's Main Menu GUI
 *
 * Mission Authors: DO NOT EDIT, INCLUDE OR OVERRIDE THIS FILE IN YOUR MISSION PK4.
 *
 * ============================================================================================= */

windowDef ObjectivesMenu
{
	rect		0,0,640,640
	visible		0
	
	windowDef ObjectivesMenuParchment
	{
		rect		("gui::ingame" ? 0 : 50), -75, 640, 640
		matcolor	1,1,1,1
		background	"guis/assets/objectives/parchment_untitled"
	}

	// This is called whenever the user switches to this screen
	windowDef ObjectivesStateInit
	{
		noTime 1

		// Init methods have onTime 10 instead of onTime 0.
		onTime 10
		{
			set "cmd" "log 'ObjectivesStateInit called.'";

			set "gui::ObjStartIdx" "0";

			// Show our parent windowDef
			set "ObjectivesMenu::visible" "1";

			// stgatilov: background layers must never be enabled/disabled manually!
			// unfortunately, we have to leave this hack here for compatibility with old missions:
			// They override mainmenu_briefing.gui, which enables the figures in End code =(
			set "MainMenuBackgroundFigures::visible" "0";

			// Issue the open request to the SDK
			set "cmd" "log 'Issuing objective_open_request call.'";
			set "cmd" "objective_open_request";

			// #6229: highlight proper difficulty initially
			set "DifficultySelection::notime" "0";

			set "notime" 1;
		}
	}

	// Called when the MainMenuModeSelect script switches states.
	windowDef ObjectivesStateEnd
	{
		noTime 1

		onTime 0
		{
			set "cmd" "log 'ObjectivesStateEnd called.'";

			set "ObjectivesMenu::visible" "0";

			set "notime" "1";
		}
	}

	/***************************************************************************
	 *
	 *          Actual objectives
	 *
	 **************************************************************************/

	windowDef ObjectivesHolder
	{
		#define OBJ_OFFSET_X		("gui::ingame" ? 110 : 160)
		#define OBJ_FULL_WIDTH		460
		#define OBJ_FULL_HEIGHT		355

		rect			OBJ_OFFSET_X, 60, OBJ_FULL_WIDTH, OBJ_FULL_HEIGHT
		//backcolor		0.2,0.5,1.0,1   //for debugging

		#include "guis/tdm_objectives_core.gui"
	}

	/***************************************************************************
	 *
	 *          The Difficulty selection buttons (only visible in start game)
	 *
	 **************************************************************************/

	 windowDef DifficultySelection
	 {
		rect		0,0,640,640
		visible		"gui::DifficultyIsVisible"
		notime		1

		// #6229: objective_open_request sets diffSelect
		// so should wait a bit (10 ms) for it to finish
		onTime 10
		{
			set "Difficulty0::forecolor" "0.6,0.6,0.6,0.7";
			set "Difficulty1::forecolor" "0.6,0.6,0.6,0.7";
			set "Difficulty2::forecolor" "0.6,0.6,0.6,0.7";
			if ("gui::diffSelect" == 0)
			{
				set "Difficulty0::forecolor" "1,1,1,1";
			}
			if ("gui::diffSelect" == 1)
			{
				set "Difficulty1::forecolor" "1,1,1,1";
			}
			if ("gui::diffSelect" == 2)
			{
				set "Difficulty2::forecolor" "1,1,1,1";
			}
			set "notime" "1";
		}

		windowDef Difficulty0
		{
			rect		12,80,123,62
			forecolor	0.6,0.6,0.6,.7
			text		"gui::diff0Name"
			textscale	0.36
			textalign	0
			font		"fonts/carleton"
			notime		1

			onAction
			{
				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,0.7";
				set "Difficulty2::forecolor" 	"0.6,0.6,0.6,0.7";
				set "forecolor"			"1,1,1,1";
				set "gui::diffSelect" 			"0";

				set "cmd" "log 'Selected difficulty level 0.'";

				set "cmd" "play sound/meta/menu/mnu_select; diffSelect";
			}

			onMouseEnter
			{
				if ("gui::diffSelect" != 0)
				{
					transition "forecolor" "0.6,0.6,0.6,.7" "1,1,1,.9" "50" ;
					set "cmd" "play sound/meta/menu/mnu_hover;";
				}
			}

			onMouseExit
			{
				if ("gui::diffSelect" != 0)
				{
					transition "forecolor" "1,1,1,.9" "0.6,0.6,0.6,0.7" "50" ;
				}
			}
		}

		windowDef Difficulty1
		{
			rect		12,208,123,62
			forecolor	1,1,1,.7
			text		"gui::diff1Name"
			textscale	0.36
			textalign	0
			font		"fonts/carleton"
			notime		1

			onAction
			{
				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,0.7";
				set "Difficulty2::forecolor" 	"0.6,0.6,0.6,0.7";
				set "forecolor" 	"1,1,1,1";
				set "gui::diffSelect" 	"1";

				set "cmd" "log 'Selected difficulty level 1.'";

				set "cmd" 	"play sound/meta/menu/mnu_select; diffSelect";
			}

			onMouseEnter
			{
				if ("gui::diffSelect" != 1)
				{
					transition "forecolor" "0.6,0.6,0.6,.7" "1,1,1,.9" "50" ;
					set "cmd" "play sound/meta/menu/mnu_hover;";
				}
			}

			onMouseExit
			{
				if ("gui::diffSelect" != 1)
				{
					transition "forecolor" "1,1,1,.9" "0.6,0.6,0.6,.7" "50" ;
				}
			}
		}

		windowDef Difficulty2
		{
			rect		12,336,123,62
			forecolor	1,1,1,.7
			text		"gui::diff2Name"
			textscale	0.36
			textalign	0
			font		"fonts/carleton"
			notime		1

			onAction
			{
				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,.7";
				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,.7";
				set "forecolor" 	"1,1,1,1";
				set "gui::diffSelect" 	"2";

				set "cmd" "log 'Selected difficulty level 2.'";

				set "cmd" 		"play sound/meta/menu/mnu_select; diffSelect";
			}

			onMouseEnter
			{
				if ("gui::diffSelect" != 2)
				{
					transition "forecolor" "0.6,0.6,0.6,.7" "1,1,1,.9" "50" ;
					set "cmd" "play sound/meta/menu/mnu_hover;";
				}
			}

			onMouseExit
			{
				if ("gui::diffSelect" != 2)
				{
					transition "forecolor" "1,1,1,.9" "0.6,0.6,0.6,.7" "50" ;
				}
			}
		}
	}

	/***************************************************************************
	 *
	 *          The "Resume Game" Button (only visible in-game)
	 *
	 **************************************************************************/

	windowDef ObjectivesResumeButtonH
	{
		MM_POS_OBJ_FORWARD_BUTTON_GLOW
		MM_FONT_RIGHT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02102"		// Resume Mission
		visible		("gui::inGame" == 1)
	}
	windowDef ObjectivesResumeButton
	{
		MM_POS_OBJ_FORWARD_BUTTON
		MM_FONT_RIGHT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02102"		// Resume Mission
		visible		("gui::inGame" == 1)
	}

	windowDef ObjectivesResumeButtonAction
	{
		MM_POS_OBJ_FORWARD_ACTION
		visible		("gui::inGame" == 1)
		onMouseEnter
		{
			transition "ObjectivesResumeButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesResumeButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}
		onMouseExit
		{
			transition "ObjectivesResumeButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesResumeButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}
		onAction
		{
			// The "objective_close_request" will be caught by the SDK code and shut down this GUI
			set "cmd" "play sound/meta/menu/mnu_select;";
			resetTime "ObjectivesDelayedCloseRequest" 0;
		}

	}

	// Sends an objective close request after a short delay
	windowDef ObjectivesDelayedCloseRequest
	{
		rect 0,0,0,0
		notime 1

		onTime 400
		{
			set "cmd" "close";
			set "notime" 1;
		}
	}

	// Called by the SDK when displaying the objectives in the pre-mission menu
	onNamedEvent ObjMenuShowDifficultyOptions
	{
		// Display the Difficulty choices
		set "gui::DifficultyIsVisible" "1";

		// Hide the objective checkboxes
		set "gui::ObjectiveBoxIsVisible" "0";
	}

	// Called by the SDK when displaying the objectives in-game
	onNamedEvent ObjMenuHideDifficultyOptions
	{
		// Hide the Difficulty choices
		set "gui::DifficultyIsVisible" "0";

		// Display the objective checkboxes
		set "gui::ObjectiveBoxIsVisible" "1";
	}

	/***************************************************************************
	 *
	 *          The "Main Menu" Button (only visible in-game)
	 *
	 **************************************************************************/

	windowDef ObjectivesMainmenuButtonH
	{
		MM_POS_OBJ_BACK_BUTTON_GLOW
		MM_FONT_LEFT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02114"			// Main Menu
		visible		("gui::inGame" == 1)
	}
	windowDef ObjectivesMainmenuButton
	{
		MM_POS_OBJ_BACK_BUTTON
		MM_FONT_LEFT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02114"			// Main Menu
		visible		("gui::inGame" == 1)

		onMouseEnter
		{
			transition "ObjectivesMainmenuButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesMainmenuButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}

		onMouseExit
		{
			transition "ObjectivesMainmenuButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesMainmenuButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}

		onAction
		{
			set "cmd" "play sound/meta/menu/mnu_select;";
			
			// Switch to the main menu
			set "gui::targetmode" MM_STATE_MAINMENU;
			resetTime "MainMenuModeSelect" 0;
		}
	}

	/***************************************************************************
	 *
	 *          The "Buy Equipment" or "Start Mission" Buttons
	 *
	 **************************************************************************/

	windowDef ObjectivesStartMissionButtonH
	{
		MM_POS_OBJ_FORWARD_BUTTON_GLOW
		MM_FONT_RIGHT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02253"		// Start Mission
		textalignx	-2
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 1)
	}
	windowDef ObjectivesStartMissionButton
	{
		MM_POS_OBJ_FORWARD_BUTTON
		MM_FONT_RIGHT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02253"		// Start Mission
		textalignx	-2
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 1)
	}

	windowDef ObjectivesStartMissionButtonAction
	{
		MM_POS_OBJ_FORWARD_ACTION
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 1)
		onMouseEnter
		{
			transition "ObjectivesStartMissionButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesStartMissionButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}
		onMouseExit
		{
			transition "ObjectivesStartMissionButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesStartMissionButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}
		onAction
		{
			set "gui::targetmode" MM_STATE_FORWARD;
			resetTime "MainMenuModeSelect" 0;
			
			set "cmd" "play sound/meta/menu/mnu_select;";
			set "cmd" "log 'Starting mission.'";
		}

	}

	windowDef ObjectivesBuyEquipmentButtonH
	{
		MM_POS_OBJ_FORWARD_BUTTON_GLOW
		MM_FONT_RIGHT_GLOW
		MM_BUTTON_HUGE
		text		"#str_02205"		// Buy Equipment
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 0)
	}
	windowDef ObjectivesBuyEquipmentButton
	{
		MM_POS_OBJ_FORWARD_BUTTON
		MM_FONT_RIGHT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_02205"		// Buy Equipment
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 0)
	}

	windowDef ObjectivesBuyEquipmentButtonAction
	{
		MM_POS_OBJ_FORWARD_ACTION
		visible		("gui::inGame" == 0 && "gui::SkipShop" == 0)
		onMouseEnter
		{
			transition "ObjectivesBuyEquipmentButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBuyEquipmentButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}
		onMouseExit
		{
			transition "ObjectivesBuyEquipmentButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBuyEquipmentButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}
		onAction
		{
			set "cmd" "play sound/meta/menu/mnu_select;";
			set "cmd" "log 'Entering shop.'";
			set "gui::targetmode" MM_STATE_FORWARD;
			resetTime "MainMenuModeSelect" 0;
		}

	}
 
	/***************************************************************************
	 *
	 *          The "Briefing/Back" Button (only visible in start menu)
	 *
	 **************************************************************************/

	windowDef ObjectivesBriefingButtonH
	{
		MM_POS_OBJ_BACK_BUTTON_GLOW
		MM_FONT_LEFT_GLOW
		MM_BUTTON_HUGE
		text		"#str_07202"			// Back
		visible		("gui::inGame" == 0)
	}
	windowDef ObjectivesBriefingButton
	{
		MM_POS_OBJ_BACK_BUTTON
		MM_FONT_LEFT
		MM_BUTTON_HUGE
		forecolor	GLOW_WHITE_COLOR
		text		"#str_07202"			// Back
		visible		("gui::inGame" == 0)

		onMouseEnter
		{
			transition "ObjectivesBriefingButton::forecolor" SGLOW_WHITE_COLOR SBOLDGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBriefingButtonH::forecolor" SINVISIBLE SGLOW_BRIGHTRED_COLOR "50" ;
			set "cmd" "play sound/meta/menu/mnu_hover;";
		}

		onMouseExit
		{
			transition "ObjectivesBriefingButton::forecolor" SBOLDGLOW_WHITE_COLOR SGLOW_WHITE_COLOR "50" ;
			transition "ObjectivesBriefingButtonH::forecolor" SGLOW_BRIGHTRED_COLOR SINVISIBLE "50" ;
		}

		onAction
		{
			set "cmd" "play sound/meta/menu/mnu_select";
			
			// Switch to briefing
			set "gui::targetmode" MM_STATE_BACKWARD;
			resetTime "MainMenuModeSelect" 0;
		}
	}

} // ObjectivesMenu
mainmenu_objectives-3.gui (13,018 bytes)   
Daft Mugi

Daft Mugi

16.01.2023 21:19

developer   ~0015794

Thank you for the files! =)
I like the way you did it, and I learned more about how to write that kind of logic in gui files.
"Ah! That's how it should be. Huzzah!"

Issue History

Date Modified Username Field Change
11.01.2023 21:12 Daft Mugi New Issue
11.01.2023 21:12 Daft Mugi File Added: newjob (2023-01-11 15-01-35) (0 0 0).jpg
11.01.2023 21:12 Daft Mugi File Added: newjob (2023-01-11 15-01-49) (0 0 0).jpg
15.01.2023 06:32 Daft Mugi Note Added: 0015774
15.01.2023 06:32 Daft Mugi File Added: mainmenu_objectives.gui
15.01.2023 06:32 Daft Mugi File Added: r16727-fix-objectives-screen.diff
15.01.2023 08:42 Daft Mugi Note Added: 0015775
16.01.2023 06:51 Daft Mugi Relationship added related to 0006233
16.01.2023 07:00 Daft Mugi Note Added: 0015782
16.01.2023 07:00 Daft Mugi File Added: mainmenu_objectives-2.gui
16.01.2023 07:00 Daft Mugi File Added: r16727-fix-objectives-screen-v2.diff
16.01.2023 08:35 stgatilov Note Added: 0015785
16.01.2023 09:37 Daft Mugi Note Added: 0015789
16.01.2023 20:19 stgatilov Note Added: 0015791
16.01.2023 20:19 stgatilov File Added: difficulty_highlight_fix.diff
16.01.2023 20:19 stgatilov File Added: mainmenu_objectives-3.gui
16.01.2023 21:19 Daft Mugi Note Added: 0015794
16.01.2023 22:02 stgatilov Assigned To => stgatilov
16.01.2023 22:02 stgatilov Status new => assigned
16.01.2023 22:02 stgatilov Product Version SVN => TDM 2.09
16.01.2023 22:02 stgatilov Fixed in Version => TDM 2.11
16.01.2023 22:02 stgatilov Target Version => TDM 2.11
16.01.2023 22:02 stgatilov Status assigned => resolved
16.01.2023 22:02 stgatilov Resolution open => fixed
16.01.2023 22:03 stgatilov Relationship replaced has duplicate 0006233