mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			121 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Scriptname vSCM_MetaQuestScript extends Quest  
 | 
						|
{Do initialization and track variables for scripts}
 | 
						|
 | 
						|
;--=== Imports ===--
 | 
						|
 | 
						|
Import Utility
 | 
						|
Import Game
 | 
						|
 | 
						|
;--=== Properties ===--
 | 
						|
 | 
						|
Actor Property PlayerRef Auto
 | 
						|
 | 
						|
Float Property ModVersion Auto Hidden
 | 
						|
 | 
						|
String Property ModName = "Smarter Combat Music" Auto Hidden
 | 
						|
 | 
						|
Message Property vSCM_ModLoadedMSG Auto
 | 
						|
Message Property vSCM_ModUpdatedMSG Auto
 | 
						|
 | 
						|
;--=== Variables ===--
 | 
						|
 | 
						|
Float _CurrentVersion
 | 
						|
String _sCurrentVersion
 | 
						|
 | 
						|
Bool _Running
 | 
						|
 | 
						|
Float _ScriptLatency
 | 
						|
Float _StartTime
 | 
						|
Float _EndTime
 | 
						|
 | 
						|
;--=== Events ===--
 | 
						|
 | 
						|
Event OnInit()
 | 
						|
	If ModVersion == 0
 | 
						|
		DoUpkeep(True)
 | 
						|
	EndIf
 | 
						|
EndEvent
 | 
						|
 | 
						|
Event OnReset()
 | 
						|
	Debug.Trace("SCM: Metaquest event: OnReset")
 | 
						|
EndEvent
 | 
						|
 | 
						|
Event OnGameReloaded()
 | 
						|
	Debug.Trace("SCM: Metaquest event: OnGameReloaded")
 | 
						|
EndEvent
 | 
						|
 | 
						|
;--=== Functions ===--
 | 
						|
 | 
						|
Function DoUpkeep(Bool DelayedStart = True)
 | 
						|
	;FIXME: CHANGE THIS WHEN UPDATING!
 | 
						|
	_CurrentVersion = 0.01
 | 
						|
	_sCurrentVersion = GetVersionString(_CurrentVersion)
 | 
						|
	String sErrorMessage
 | 
						|
	If DelayedStart
 | 
						|
		Wait(RandomFloat(2,4))
 | 
						|
	EndIf
 | 
						|
	Debug.Trace("SCM: " + ModName)
 | 
						|
	Debug.Trace("SCM: Performing upkeep...")
 | 
						|
	Debug.Trace("SCM: Loaded version is " + GetVersionString(ModVersion) + ", Current version is " + _sCurrentVersion)
 | 
						|
	If ModVersion == 0
 | 
						|
		Debug.Trace("SCM: Newly installed, doing initialization...")
 | 
						|
		DoInit()
 | 
						|
		If ModVersion == _CurrentVersion
 | 
						|
			Debug.Trace("SCM: Initialization succeeded.")
 | 
						|
		Else
 | 
						|
			Debug.Trace("SCM: WARNING! Initialization had a problem!")
 | 
						|
		EndIf
 | 
						|
	ElseIf ModVersion < _CurrentVersion
 | 
						|
		Debug.Trace("SCM: Installed version is older. Starting the upgrade...")
 | 
						|
		DoUpgrade()
 | 
						|
		If ModVersion != _CurrentVersion
 | 
						|
			Debug.Trace("SCM: WARNING! Upgrade failed!")
 | 
						|
			Debug.MessageBox("WARNING! " + ModName + " upgrade failed for some reason. You should report this to the mod author.")
 | 
						|
		EndIf
 | 
						|
		Debug.Trace("SCM: Upgraded to " + _CurrentVersion)
 | 
						|
		vSCM_ModUpdatedMSG.Show(_CurrentVersion)
 | 
						|
	Else
 | 
						|
		Debug.Trace("SCM: Loaded, no updates.")
 | 
						|
		;CheckForOrphans()
 | 
						|
	EndIf
 | 
						|
	CheckForExtras()
 | 
						|
	UpdateConfig()
 | 
						|
	Debug.Trace("SCM: Upkeep complete!")
 | 
						|
EndFunction
 | 
						|
 | 
						|
Function DoInit()
 | 
						|
	Debug.Trace("SCM: Initializing...")
 | 
						|
	_Running = True
 | 
						|
	ModVersion = _CurrentVersion
 | 
						|
	vSCM_ModLoadedMSG.Show(_CurrentVersion)
 | 
						|
EndFunction
 | 
						|
 | 
						|
Function DoUpgrade()
 | 
						|
	_Running = False
 | 
						|
	If ModVersion < 0.01
 | 
						|
		Debug.Trace("SCM: Upgrading to 0.01...")
 | 
						|
		ModVersion = 0.01
 | 
						|
	EndIf
 | 
						|
	_Running = True
 | 
						|
	Debug.Trace("SCM: Upgrade complete!")
 | 
						|
EndFunction
 | 
						|
 | 
						|
Function UpdateConfig()
 | 
						|
	Debug.Trace("SCM: Updating configuration...")
 | 
						|
 | 
						|
	Debug.Trace("SCM: Updated configuration values, some scripts may update in the background!")
 | 
						|
EndFunction
 | 
						|
 | 
						|
String Function GetVersionString(Float fVersion)
 | 
						|
	Int Major = Math.Floor(fVersion) as Int
 | 
						|
	Int Minor = ((fVersion - (Major as Float)) * 100.0) as Int
 | 
						|
	If Minor < 10
 | 
						|
		Return Major + ".0" + Minor
 | 
						|
	Else
 | 
						|
		Return Major + "." + Minor
 | 
						|
	EndIf
 | 
						|
EndFunction
 | 
						|
 | 
						|
Function CheckForExtras()
 | 
						|
EndFunction
 |