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
 |