importonly struct GameInstance
{
	public import static function IsRestoringState( self : GameInstance ) : Bool;
	public import static function IsValid( self : GameInstance ) : Bool;
	public import static function GetGameTime( self : GameInstance ) : GameTime;
	public import static function GetEngineTime( self : GameInstance ) : EngineTime;
	public import static function GetSimTime( self : GameInstance ) : EngineTime;
	public import static function GetPlaythroughTime( self : GameInstance ) : EngineTime;
	public import static function GetFrameNumber( self : GameInstance ) : Uint64;
	public import static function GetActivityLogSystem( self : GameInstance ) : ActivityLogSystem;
	public import static function GetAnimationSystem( self : GameInstance ) : AnimationSystem;
	public import static function GetAttitudeSystem( self : GameInstance ) : AttitudeSystem;
	public import static function GetAudioSystem( self : GameInstance ) : AudioSystem;
	public import static function GetBlackboardSystem( self : GameInstance ) : BlackboardSystem;
	public import static function GetCameraSystem( self : GameInstance ) : CameraSystem;
	public import static function GetCommunitySystem( self : GameInstance ) : CommunitySystem;
	public import static function GetCompanionSystem( self : GameInstance ) : CompanionSystem;
	public import static function GetCoverManager( self : GameInstance ) : CoverManager;
	public import static function GetDebugVisualizerSystem( self : GameInstance ) : DebugVisualizerSystem;
	public import static function GetDebugDrawHistorySystem( self : GameInstance ) : IDebugDrawHistorySystem;
	public import static function GetDelaySystem( self : GameInstance ) : DelaySystem;
	public import static function GetDeviceSystem( self : GameInstance ) : DeviceSystem;
	public import static function GetEntitySpawnerEventsBroadcaster( self : GameInstance ) : EntitySpawnerEventsBroadcaster;
	public import static function GetGameEffectSystem( self : GameInstance ) : EffectSystem;
	public import static function GetSpatialQueriesSystem( self : GameInstance ) : SpatialQueriesSystem;
	public import static function GetLootManager( self : GameInstance ) : LootManager;
	public import static function GetLocationManager( self : GameInstance ) : LocationManager;
	public import static function GetMappinSystem( self : GameInstance ) : MappinSystem;
	public import static function GetNavigationSystem( self : GameInstance ) : NavigationSystem;
	public import static function GetObjectPoolSystem( self : GameInstance ) : ObjectPoolSystem;
	public import static function GetPersistencySystem( self : GameInstance ) : GamePersistencySystem;
	public import static function GetPlayerSystem( self : GameInstance ) : PlayerSystem;
	public import static function GetPrereqManager( self : GameInstance ) : PrereqManager;
	public import static function GetPreventionSpawnSystem( self : GameInstance ) : PreventionSpawnSystem;
	public import static function GetDynamicSpawnSystem( self : GameInstance ) : DynamicSpawnSystem;
	public import static function GetGamepadLightController( self : GameInstance ) : GamepadLightController;
	public import static function GetPoliceRadioSystem( self : GameInstance ) : PoliceRadioSystem;
	public import static function GetQuestsSystem( self : GameInstance ) : QuestsSystem;
	public import static function GetQuestsContentSystem( self : GameInstance ) : QuestsContentSystem;
	public import static function GetSceneSystem( self : GameInstance ) : SceneSystem;
	public import static function GetScriptableSystemsContainer( self : GameInstance ) : ScriptableSystemsContainer;
	public import static function GetStatPoolsSystem( self : GameInstance ) : StatPoolsSystem;
	public import static function GetStatsSystem( self : GameInstance ) : StatsSystem;
	public import static function GetStatsDataSystem( self : GameInstance ) : StatsDataSystem;
	public import static function GetStatusEffectSystem( self : GameInstance ) : StatusEffectSystem;
	public import static function GetGodModeSystem( self : GameInstance ) : GodModeSystem;
	public import static function GetEffectorSystem( self : GameInstance ) : EffectorSystem;
	public import static function GetDamageSystem( self : GameInstance ) : DamageSystem;
	public import static function GetTargetingSystem( self : GameInstance ) : TargetingSystem;
	public import static function GetTimeSystem( self : GameInstance ) : TimeSystem;
	public import static function GetTransactionSystem( self : GameInstance ) : TransactionSystem;
	public import static function GetTrafficSystem( self : GameInstance ) : TrafficSystem;
	public import static function GetVisionModeSystem( self : GameInstance ) : VisionModeSystem;
	public import static function GetVehicleSystem( self : GameInstance ) : VehicleSystem;
	public import static function GetWorkspotSystem( self : GameInstance ) : WorkspotGameSystem;
	public import static function GetInventoryManager( self : GameInstance ) : InventoryManager;
	public import static function GetTeleportationFacility( self : GameInstance ) : TeleportationFacility;
	public import static function GetInfluenceMapSystem( self : GameInstance ) : InfluenceMapSystem;
	public import static function GetFxSystem( self : GameInstance ) : FxSystem;
	public import static function GetMountingFacility( self : GameInstance ) : IMountingFacility;
	public import static function GetRestrictMovementAreaManager( self : GameInstance ) : RestrictMovementAreaManager;
	public import static function GetSafeAreaManager( self : GameInstance ) : SafeAreaManager;
	public import static function GetGameplayLogicPackageSystem( self : GameInstance ) : GameplayLogicPackageSystem;
	public import static function GetJournalManager( self : GameInstance ) : JournalManager;
	public import static function GetDebugCheatsSystem( self : GameInstance ) : DebugCheatsSystem;
	public import static function GetCombatQueriesSystem( self : GameInstance ) : gameICombatQueriesSystem;
	public import static function GetTelemetrySystem( self : GameInstance ) : TelemetrySystem;
	public import static function GetGameRulesSystem( self : GameInstance ) : gameIGameRulesSystem;
	public import static function GetGameTagSystem( self : GameInstance ) : GameTagSystem;
	public import static function GetPingSystem( self : GameInstance ) : PingSystem;
	public import static function GetProjectileSystem( self : GameInstance ) : ProjectileSystem;
	public import static function GetPlayerManagerSystem( self : GameInstance ) : gameIPlayerManager;
	public import static function GetScriptsDebugOverlaySystem( self : GameInstance ) : ScriptsDebugOverlaySystem;
	public import static function GetCooldownSystem( self : GameInstance ) : ICooldownSystem;
	public import static function GetDebugPlayerBreadcrumbs( self : GameInstance ) : DebugPlayerBreadcrumbs;
	public import static function GetInteractionManager( self : GameInstance ) : InteractionManager;
	public import static function GetGlobalTVSystem( self : GameInstance ) : GlobalTvSystem;
	public import static function GetSubtitleHandlerSystem( self : GameInstance ) : SubtitleHandlerSystem;
	public import static function GetAINavigationSystem( self : GameInstance ) : AINavigationSystem;
	public import static function GetSenseManager( self : GameInstance ) : SenseManager;
	public import static function GetUISystem( self : GameInstance ) : UISystem;
	public import static function GetAchievementSystem( self : GameInstance ) : AchievementSystem;
	public import static function GetWatchdogSystem( self : GameInstance ) : IWatchdogSystem;
	public import static function GetLevelAssignmentSystem( self : GameInstance ) : LevelAssignmentSystem;
	public import static function GetPhotoModeSystem( self : GameInstance ) : PhotoModeSystem;
	public import static function GetSettingsSystem( self : GameInstance ) : UserSettings;
	public import static function GetCharacterCustomizationSystem( self : GameInstance ) : gameuiICharacterCustomizationSystem;
	public import static function GetUIObjectsLoaderSystem( self : GameInstance ) : gameuiIUIObjectsLoaderSystem;
	public import static function GetWeatherSystem( self : GameInstance ) : WeatherSystem;
	public import static function GetReactionSystem( self : GameInstance ) : ReactionSystem;
	public import static function GetRacingSystem( self : GameInstance ) : RacingSystem;
	public import static function GetAutoSaveSystem( self : GameInstance ) : gameAutoSaveSystem;
	public import static function GetTutorialManager( self : GameInstance ) : questTutorialManager;
	public import static function GetStimuliSystem( self : GameInstance ) : StimuliSystem;
	public import static function GetPhoneManager( self : GameInstance ) : questPhoneManager;
	public import static function GetOnlineSystem( self : GameInstance ) : IOnlineSystem;
	public import static function GetWardrobeSystem( self : GameInstance ) : WardrobeSystem;
	public import static function GetRazerChromaEffectsSystem( self : GameInstance ) : RazerChromaEffectsSystem;
	public import static function GetMinimapSystem( self : GameInstance ) : MinimapSystem;
	public import static function GetContainerManager( self : GameInstance ) : ContainerManager;
	public import static function GetGameFeatureManager( self : GameInstance ) : GameFeatureManager;
	public import static function IsSavingLocked( self : GameInstance, out locks : array< gameSaveLock > ) : Bool;
	public import static function GetRuntimeInfo( self : GameInstance ) : RuntimeInfo;
	public import static function FindWaypointsByTag( self : GameInstance, tag : CName, out waypoints : array< Vector4 > );
	public import static function FindEntityByID( self : GameInstance, entityId : EntityID ) : Entity;
	public import static function GetEntityList( self : GameInstance ) : array< Entity >;
	public import static function GetNodeTransform( self : GameInstance, nodeRef : GlobalNodeRef, out transform : Transform ) : Bool;
	public import static function QueueScriptableSystemRequest( self : GameInstance, scriptableSystemName : CName, request : ScriptableSystemRequest ) : Bool;
}

import function GetGameInstance() : GameInstance;

constexpr function CanLog() : Bool
{
	return true;
}

function GetDamageSystemLogFlags() : Int64
{
	var flags : Int64;
	if( !( CanLog() ) )
	{
		return 0;
	}
	flags = ( EnumGetMax( 'damageSystemLogFlags' ) * 2 ) - 1;
	return flags;
}

