--- a/repair_ballast/Display_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/VisionGameStateMachine/svnobj
+++ b/repair_ballast/Display_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/VisionGameStateMachine/svnobj
@@ -1,5 +1,5 @@
-Gx_l|8!0…jüo&sÁ jCZo‹System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
+Gx_l¤8!0…jüo8&ã5'D¯@ö¥System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
 TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText4//---- Client init  ----\\$IF NOT xInit THEN	N	UM				(		sName := 'Normal Operation', ì							dwSupportedStates := PACK_ML.State.All - PACK_ML.State.Suspending - PACK_ML.State.Suspended - PACK_ML.State.UnSuspending - PACK_ML.Holding - PACK_ML.Held - PACK_ML.UnHolding, Ô							dwAllowsLeavingFromStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, Ö							dwAllowsEnteringIntoStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, \							eInitialState := PACK_ML.State.Aborted,0							xActive := TRUE);	xInit := TRUE;	END_IFD//---- Client communicatie  ----\\4IF Client.bReadyToPLC THEN:	CASE Client.iCommandToPLC OF"	0 : 	//Handshake 	1 : 	//Lock!		IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN		"0			//First Lock Function#Ž			SendCommand(Command:= CommandType.Key,Value:=Client.KeyCommands[0]);$–		ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN		%2			//Second Lock Function&Ž			SendCommand(Command:= CommandType.Key,Value:=Client.KeyCommands[1]);'		END_IF(	2 : 	//Key)	3 : 	//IO*	4 : 	//Media+	5 : 	//Hint,	6 : 	//State	-p		IF SysStrCmp(Client.sCommandFromPLC, 'SC') =  0 THEN		.&			StateComplete();/x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN		0			Start();1v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN		2			Stop();3x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN		4			Reset();5x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN		6			Abort();7x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN		8			Clear();9v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN		:			Hold();;z		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN		<			Unhold();	=|		ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN		>			Suspend();?€		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN		@			UnSuspend();A		B	END_CASEC6	Client.iCommandToPLC := 0;D8	Client.sCommandToPLC := '';E:	Client.bReadyToPLC := FALSE;FD//---- Client statemachine  ----\\G.CASE UM.CurrentState OFH,PACK_ML.State.Stopped:I	;J,PACK_ML.State.Aborted:K&PACK_ML.State.Idle:L2PACK_ML.State.Complete :	M.PACK_ML.State.Execute :N(	CASE Client.Mode OFOV		Mode.Mode1: // Target practise simulationPJ			IF puzzleTimer.iProcess = 25 THEN;Qº				//	SendCommand(Command := CommandType.Hint ,Value := 'Collect the object in the room.');	R			END_IFSJ			IF puzzleTimer.iProcess = 50 THEN;Tš				//SendCommand(Command := CommandType.Media ,Value := 'Padlock K000367');	U			END_IF			VJ			IF puzzleTimer.iProcess = 75 THEN;W				//X			Y4	CASE Client.ActualStep OFZ
-					[¬	0: // determine if depending on the level of the game the calibration step is needed.\P		IF Client.Level = Level.Beginner THEN;]6			Client.ActualStep := 30;^		ELSE_6			Client.ActualStep := 10;`	10:// a2		xHide_ijkpunt := FALSE;b:		xHide_Text_Center := FALSE;c	20:dd	30: // Hide the ijkpunten Start van de visiongamee0		xHide_ijkpunt := TRUE;f8		xHide_Text_Center := TRUE;g4		xHide_Crosshair := TRUE;h4		xHide_Text_Top := FALSE;iÌ		sInstructionString := 'Time To Start the Training Excersise, remember this is a battle simulation!';j	40:k2PACK_ML.State.Resetting :l"	StateComplete();m0PACK_ML.State.Starting :n4PACK_ML.State.Completing :o0PACK_ML.State.Aborting :p.PACK_ML.State.Stopping:q2PACK_ML.State.Clearing :	rEND_CASEs.//---- Emergency ----\\tVIF NOT x_EmergencyGF AND x_EmergencyFF THENu(	 //Emergency Abort.v	Abort();	w8//---- State handling ----\\xLClient.ActualState := UM.CurrentState;y>messageQueue(Client := Client);zäpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);{PClient.Progress := puzzleTimer.iProcess;|FIF puzzleTimer.iProcess >= 100 THEN}	Stop();~InterfaceL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}€JFUNCTION_BLOCK VisionGameStateMachineVAR_IN_OUT‚.	Client : PuzzleClient;ƒEND_VAR„VAR…0	UM	: PACK_ML.UnitMode; †j	xInit				: BOOL := FALSE; // Flag for initialization‡:	messageQueue : MessageQueue;ˆ6	puzzleTimer : PuzzleTimer;‰// Š8xHide_Map 		: BOOL := TRUE ;‹<xHide_Leopold 	: BOOL := TRUE;Œ>xHide_Leopold2 	: BOOL := TRUE;<xHide_Zeeland 	: BOOL := TRUE;Ž>xHide_Rotterdam : BOOL := TRUE;<xHide_Dolfijn 	: BOOL := TRUE;<xHide_ijkpunt 	: BOOL := TRUE;‘>xHide_Crosshair : BOOL := TRUE;’<xHide_Text_Top	: BOOL := TRUE;“BxHide_Text_Center 	:BOOL := TRUE;”<xHide_Button1		: BOOL := TRUE;•<xHide_Button2		: BOOL := TRUE;–8sInstructionString:  STRING;—"UniqueIdGenerator˜432™POULevelšL{8e575c5b-1d37-49c6-941b-5c0ec7874787}›Standardœ ChildObjectGuids8System.Collections.ArrayListž,AddAttributeSubsequentŸboolÐÐ-ÐÐ	E
+					[¬	0: // determine if depending on the level of the game the calibration step is needed.\P		IF Client.Level = Level.Beginner THEN;]6			Client.ActualStep := 30;^		ELSE_6			Client.ActualStep := 10;`	10:// a2		xHide_ijkpunt := FALSE;b:		xHide_Text_Center := FALSE;c	20:dd	30: // Hide the ijkpunten Start van de visiongamee0		xHide_ijkpunt := TRUE;f8		xHide_Text_Center := TRUE;g4		xHide_Crosshair := TRUE;h4		xHide_Text_Top := FALSE;iÌ		sInstructionString := 'Time To Start the Training Excersise, remember this is a battle simulation!';j	40:k2PACK_ML.State.Resetting :l"	StateComplete();m0PACK_ML.State.Starting :n4PACK_ML.State.Completing :o0PACK_ML.State.Aborting :p.PACK_ML.State.Stopping:q2PACK_ML.State.Clearing :	rEND_CASEs.//---- Emergency ----\\tVIF NOT x_EmergencyGF AND x_EmergencyFF THENu(	 //Emergency Abort.v	Abort();	w8//---- State handling ----\\xLClient.ActualState := UM.CurrentState;y>messageQueue(Client := Client);zäpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);{PClient.Progress := puzzleTimer.iProcess;|FIF puzzleTimer.iProcess >= 100 THEN}	Stop();~InterfaceL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}€JFUNCTION_BLOCK VisionGameStateMachineVAR_IN_OUT‚.	Client : PuzzleClient;ƒEND_VAR„VAR…0	UM	: PACK_ML.UnitMode; †j	xInit				: BOOL := FALSE; // Flag for initialization‡:	messageQueue : MessageQueue;ˆ6	puzzleTimer : PuzzleTimer;‰// Š8xHide_Map 		: BOOL := TRUE ;‹<xHide_Leopold 	: BOOL := TRUE;Œ>xHide_Leopold2 	: BOOL := TRUE;<xHide_Zeeland 	: BOOL := TRUE;Ž>xHide_Rotterdam : BOOL := TRUE;<xHide_Dolfijn 	: BOOL := TRUE;<xHide_ijkpunt 	: BOOL := TRUE;‘>xHide_Crosshair : BOOL := TRUE;’<xHide_Text_Top	: BOOL := TRUE;“BxHide_Text_Center 	:BOOL := TRUE;”<xHide_Button1		: BOOL := TRUE;•<xHide_Button2		: BOOL := TRUE;–:sInstructionString	:  STRING;—"sButtonString		:	˜"UniqueIdGenerator™432šPOULevel›L{8e575c5b-1d37-49c6-941b-5c0ec7874787}œStandard ChildObjectGuidsž8System.Collections.ArrayListŸ,AddAttributeSubsequent boolÐÐ-ÐÐ	E
 œÐÐ
­$ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­lÚÐ-ÐÐ
­eÚÐ-ÐÐ
­ÚÐ-ÐÐ
­*ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­”ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­–ÚÐ- ÐÐ
­µÚÐ-!ÐÐ
­´ÚÐ-"ÐÐ
­÷ÚÐ-#ÐÐ
­¶ÚÐ-$ÐÐ
­·ÚÐ-%ÐÐ
­&ÚÐ-&ÐÐ
­¯ÚÐ-'ÐÐ
­©ÚÐ-(ÐÐ
­ÚÚÐ-)ÐÐ
­«ÚÐ-*ÐÐ
­¬ÚÐ-+ÐÐ
­­ÚÐ-,ÐÐ
­¹ÚÐ--ÐÐ
­ºÚÐ-.ÐÐ
­»ÚÐ-/ÐÐ
­¾ÚÐ-0ÐÐ
­¿ÚÐ-1ÐÐ
­ÀÚÐ-2ÐÐ
­ÁÚÐ-3ÐÐ
­ÂÚÐ-4ÐÐ
­ÃÚÐ-5ÐÐ
­ÄÚÐ-6ÐÐ
­ÅÚÐ-7ÐÐ
­ÆÚÐ-8ÐÐ
­ÇÚÐ-9ÐÐ
­ÈÚÐ-:ÐÐ
­ÉÚÐ-;ÐÐ
­ÎÚÐ-<ÐÐ
­ÏÚÐ-=ÐÐ
­ÐÚÐ->ÐÐ
­ÑÚÐ-?ÐÐ
­¼ÚÐ-@ÐÐ
­¸ÚÐ-'ÐÐ
­½ÚÐ-AÐÐ
­—ÚÐ-BÐÐ
­ÓÚÐ-ÐÐ
­ÕÚÐ-CÐÐ
­ÖÚÐ-DÐÐ
­×ÚÐ-EÐÐ
­•ÚÐ-ÐÐ
­“ÚÐ-ÐÐ
­ÚÐ-FÐÐ
­ÚÐ-ÐÐ
­ÚÐ-GÐÐ
­ÚÐ-HÐÐ
­ÚÐ-IÐÐ
­ÚÐ-JÐÐ
­ÚÐ-IÐÐ
­ÚÐ-KÐÐ
­ÚÐ-IÐÐ
­ ÚÐ-LÐÐ
­¦ÚÐ-IÐÐ
­ŸÚÐ-MÐÐ
­GÚÐ-AÐÐ
­[ÚÐ-NÐÐ
­\ÚÐ-AÐÐ
­^ÚÐ-OÐÐ
­wÚÐ-PÐÐ
­xÚÐ-QÐÐ
­yÚÐ-RÐÐ
­zÚÐ-SÐÐ
­{ÚÐ-TÐÐ
­|ÚÐ-UÐÐ
­}ÚÐ-VÐÐ
­ƒÚÐ-WÐÐ
­vÚÐ-RÐÐ
­…ÚÐ-XÐÐ
­]ÚÐ-BÐÐ
­‘ÚÐ-ÐÐ
­“ÚÐ-YÐÐ
­”ÚÐ-ZÐÐ
­•ÚÐ-[ÐÐ
­›ÚÐ-\ÐÐ
­œÚÐ-]ÐÐ
­ ÚÐ-^ÐÐ
­¡ÚÐ-_ÐÐ
­ÚÐ-'ÐÐ
­£ÚÐ-AÐÐ
­–ÚÐ-`ÐÐ
­®ÚÐ-aÐÐ
­¯ÚÐ-bÐÐ
­°ÚÐ-AÐÐ
­—ÚÐ-cÐÐ
­˜ÚÐ-dÐÐ
­¥ÚÐ-eÐÐ
­©ÚÐ-fÐÐ
­ªÚÐ-gÐÐ
­¨ÚÐ-hÐÐ
­­ÚÐ-ÐÐ
­¬ÚÐ-AÐÐ
­«ÚÐ-iÐÐ
­¦ÚÐ-ÐÐ
­§ÚÐ-ÐÐ
­™ÚÐ-jÐÐ
­šÚÐ-ZÐÐ
­’ÚÐ-BÐÐ
­üÚÐ-IÐÐ
­þÚÐ-kÐÐ
­ÚÐ-lÐÐ
­ÚÐ-mÐÐ
­ÚÐ-lÐÐ
­RÚÐ-nÐÐ
­ ÚÐ-lÐÐ
­UÚÐ-oÐÐ
­!ÚÐ-lÐÐ
­WÚÐ-pÐÐ
­"ÚÐ-lÐÐ
­[ÚÐ-qÐÐ
­#ÚÐ-lÐÐ
­	ÚÐ-rÐÐ
­+ÚÐ-ÐÐ
­,ÚÐ-sÐÐ
­gÚÐ-ÐÐ
­CÚÐ-tÐÐ
­DÚÐ-uÐÐ
­EÚÐ-vÐÐ
­hÚÐ-ÐÐ
­-ÚÐ-ÐÐ
­.ÚÐ-wÐÐ
­ÚÐ-ÐÐ
­fÚÐ-xÐÐ
­ÚÐ-ÐÐ
­ÚÐ-yÐÐ
­(ÚÐ-ÐÐ
­ÚÐ-zÐÐ
­ÚÐ-ÐÐ
­ÚÐ-{ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-|ÐÐ
­ÚÐ-}ÐÐ
­ÚÐ-ÐÐ
­oÚÐ-ÐÐ
­lÚÐ-ÐÐ
­kÚÐ-ÐÐ
­eÚÐ-ÐÐ
­dÚÐ-Ð~Ð	E
-#ÐÐ
­/ÚÐ-€ÐÐ
­0ÚÐ-ÐÐ
­1ÚÐ-‚ÐÐ
­2ÚÐ-ƒÐÐ
­3ÚÐ-„ÐÐ
­4ÚÐ-…ÐÐ
­5ÚÐ-ÐÐ
­6ÚÐ-†ÐÐ
­7ÚÐ-ÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-‡ÐÐ
­:ÚÐ-ˆÐÐ
­HÚÐ-ÐÐ
­IÚÐ-ÐÐ
­JÚÐ-‰ÐÐ
­LÚÐ-ŠÐÐ
­MÚÐ-‹ÐÐ
­TÚÐ-ŒÐÐ
­NÚÐ-ÐÐ
­OÚÐ-ŽÐÐ
­PÚÐ-ÐÐ
­QÚÐ-ÐÐ
­RÚÐ-‘ÐÐ
­UÚÐ-’ÐÐ
­VÚÐ-“ÐÐ
­XÚÐ-”ÐÐ
­YÚÐ-•ÐÐ
­žÚÐ-ÐÐ
­ZÚÐ-–ÐÐ
­ŸÚÐ-ÐÐ
­WÚÐ-ÐÐ
­SÚÐ-ÐÐ
­;ÚÐ-ÐÐ
­<ÚÐ-ƒÐÐ
­ÚÐ-З-˜Йš-›œОŸ­
\ No newline at end of file
+#ÐÐ
­/ÚÐ-€ÐÐ
­0ÚÐ-ÐÐ
­1ÚÐ-‚ÐÐ
­2ÚÐ-ƒÐÐ
­3ÚÐ-„ÐÐ
­4ÚÐ-…ÐÐ
­5ÚÐ-ÐÐ
­6ÚÐ-†ÐÐ
­7ÚÐ-ÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-‡ÐÐ
­:ÚÐ-ˆÐÐ
­HÚÐ-ÐÐ
­IÚÐ-ÐÐ
­JÚÐ-‰ÐÐ
­LÚÐ-ŠÐÐ
­MÚÐ-‹ÐÐ
­TÚÐ-ŒÐÐ
­NÚÐ-ÐÐ
­OÚÐ-ŽÐÐ
­PÚÐ-ÐÐ
­QÚÐ-ÐÐ
­RÚÐ-‘ÐÐ
­UÚÐ-’ÐÐ
­VÚÐ-“ÐÐ
­XÚÐ-”ÐÐ
­YÚÐ-•ÐÐ
­žÚÐ-ÐÐ
­ZÚÐ-–ÐÐ
­ŸÚÐ-—ÐÐ
­WÚÐ-ÐÐ
­SÚÐ-ÐÐ
­;ÚÐ-ÐÐ
­<ÚÐ-ƒÐÐ
­ÚÐ-И-™К›-œžП ­
\ No newline at end of file