diff options
author | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-08-31 23:14:58 +0100 |
---|---|---|
committer | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-08-31 23:14:58 +0100 |
commit | 9a96d0bff56f1969c68bb52a2f33296095bdc67d (patch) | |
tree | 4175928e488632705692e3cccafa1a38dd854615 /Northstar.CustomServers/scripts/vscripts/_auto_precache.gnut | |
parent | 27bd240871b7c0f2f49fef137718b2e3c208e3b4 (diff) | |
download | NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.tar.gz NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.zip |
move to new mod format
Diffstat (limited to 'Northstar.CustomServers/scripts/vscripts/_auto_precache.gnut')
-rw-r--r-- | Northstar.CustomServers/scripts/vscripts/_auto_precache.gnut | 771 |
1 files changed, 0 insertions, 771 deletions
diff --git a/Northstar.CustomServers/scripts/vscripts/_auto_precache.gnut b/Northstar.CustomServers/scripts/vscripts/_auto_precache.gnut deleted file mode 100644 index 75c7873e..00000000 --- a/Northstar.CustomServers/scripts/vscripts/_auto_precache.gnut +++ /dev/null @@ -1,771 +0,0 @@ -#if DEV -global function AutoPrecache_Init -global function SetAutoPrecacheVersion -global function MarkNPCForAutoPrecache -global function AP_NPCSpawnerFound -global function AP_PrecacheWeapon -global function AP_PrecacheModel - -const int AUTO_PRECACHE_VERSION = 5 - -global struct AutoPrecacheList -{ - array<string> weapons - table<string,int> weaponCount - table<string,array<entity> > npcSpawners - table<asset,string> autoPrecacheScript - - array<asset> models -} - -struct -{ - int autoPrecacheVersion - array<string> forceAutoPrecacheAiSettings - - table<string,int> autoPrecacheFound_weapons - table<asset,bool> autoPrecacheFound_models - table<string,int> autoPrecacheFound_npcs - -} file - -void function AutoPrecache_Init() -{ - thread VerifyAutoPrecaches() - - AddCallback_OnClientConnecting( AutoPrecache_OnPlayerConnect ) -} - -void function AutoPrecache_OnPlayerConnect( entity player ) -{ - if ( Dev_CommandLineHasParm( "-autoprecache_all" ) ) - { - switch ( GetMapName() ) - { - case "sp_training": - ClientCommand( player, "map sp_crashsite" ) - return - - case "sp_crashsite": - ClientCommand( player, "map sp_sewers1" ) - return - - case "sp_sewers1": - ClientCommand( player, "map sp_boomtown" ) - return - - case "sp_boomtown": - ClientCommand( player, "map sp_boomtown_end" ) - return - - case "sp_boomtown_end": - ClientCommand( player, "map sp_boomtown_start" ) - return - - case "sp_boomtown_start": - ClientCommand( player, "map sp_hub_timeshift" ) - return - - case "sp_hub_timeshift": - ClientCommand( player, "map sp_timeshift_spoke02" ) - return - - case "sp_timeshift_spoke02": - ClientCommand( player, "map sp_beacon" ) - return - - case "sp_beacon": - ClientCommand( player, "map sp_beacon_spoke0" ) - return - - case "sp_beacon_spoke0": - ClientCommand( player, "map sp_tday" ) - return - - case "sp_tday": - ClientCommand( player, "map sp_s2s" ) - return - - case "sp_s2s": - ClientCommand( player, "map sp_skyway_v1" ) - return - - case "sp_skyway_v1": - ClientCommand( player, "map mp_grave" ) - return - - case "mp_grave": - ClientCommand( player, "quit" ) - return - - default: - ClientCommand( player, "map sp_training" ) - return - } - - } -} - -void function VerifyAutoPrecaches() -{ - WaitEndFrame() - if ( !IsTestMap() ) - Autoprecache_Verify() -} - -void function Autoprecache_Verify() -{ - AutoPrecacheList autoPrecacheList = GenerateAutoPrecacheListForLevel() - if ( AutoPrecacheUpToDate( autoPrecacheList ) ) - return - - if ( !Dev_CommandLineHasParm( "-autoprecache_all" ) && !Dev_CommandLineHasParm( "-autoprecache" ) ) - { - // dont really want mp generating auto precache if one map has an npc randomly placed in it, or an mp dedi going rogue - CodeWarning( "Entities have changed. Re-export auto precache script or run game with -autoprecache." ) - return - } - - ExportAutoPrecacheList( autoPrecacheList ) - - if ( Dev_CommandLineHasParm( "-autoprecache" ) ) - { - Dev_CommandLineRemoveParm( "-autoprecache" ) - ServerCommand( "reload" ) - return - } - - LevelTransitionStruct ornull trans = GetLevelTransitionStruct() - if ( trans != null ) - { - expect LevelTransitionStruct( trans ) - ChangeLevel( GetMapName(), trans ) - return - } - - LevelTransitionStruct trans2 - ChangeLevel( GetMapName(), trans2 ) - -} - -bool function IsTitanAISettings( string aiSettings ) -{ - return Dev_GetAISettingByKeyField_Global( aiSettings, "aiclass" ) == "titan" -} - -void function AddAutoPrecacheWeapon( AutoPrecacheList autoPrecacheList, string weapon ) -{ - if ( weapon == "" ) - return - autoPrecacheList.weapons.append( weapon ) -} - -void function FillAISettingsPrecaches( string aiSettings, AutoPrecacheList autoPrecacheList ) -{ - if ( Dev_GetAISettingByKeyField_Global( aiSettings, "ForceAutoPrecacheDefaultWeapon" ) == 1 ) - { - string weapon = expect string( Dev_GetAISettingByKeyField_Global( aiSettings, "DefaultWeapon" ) ) - Assert( weapon != "", "Expected a weapon because ForceAutoPrecacheDefaultWeapon 1" ) - AddAutoPrecacheWeapon( autoPrecacheList, weapon ) - } - - var grenadeWeapon = Dev_GetAISettingByKeyField_Global( aiSettings, "GrenadeWeaponName" ) - - if ( grenadeWeapon != "" ) - { - expect string( grenadeWeapon ) - AddAutoPrecacheWeapon( autoPrecacheList, grenadeWeapon ) - } - - var AdditionalScriptWeapon = Dev_GetAISettingByKeyField_Global( aiSettings, "AdditionalScriptWeapon" ) - if ( AdditionalScriptWeapon != null ) - { - expect string( AdditionalScriptWeapon ) - AddAutoPrecacheWeapon( autoPrecacheList, AdditionalScriptWeapon ) - } - - var AdditionalAISettings = Dev_GetAISettingByKeyField_Global( aiSettings, "AdditionalAISettings" ) - if ( AdditionalAISettings != null ) - { - expect string( AdditionalAISettings ) - FillAISettingsPrecaches( AdditionalAISettings, autoPrecacheList ) - } - - for ( int i = 0;; i++ ) - { - asset gibModel = Dev_GetAISettingAssetByKeyField_Global( aiSettings, "GibModel" + i ) - if ( gibModel == $"" ) - break - autoPrecacheList.models.append( gibModel ) - } - - if ( IsTitanAISettings( aiSettings ) ) - { - var titanSettings = Dev_GetAISettingByKeyField_Global( aiSettings, "npc_titan_player_settings" ) - // is it a titan? - Assert( titanSettings != null, "No npc_titan_player_settings field in titan settings " + titanSettings ) - - // titans get their model from player model - expect string( titanSettings ) - TitanLoadoutDef ornull titanLoadout = GetTitanLoadoutForColumn( "setFile", titanSettings ) - if ( titanLoadout == null ) - return - - expect TitanLoadoutDef( titanLoadout ) - AddTitanLoadoutToAutoPrecache( titanLoadout, autoPrecacheList ) - } - else - { - // non-titan npcs get their model from their set file - string baseClass = expect string( Dev_GetAISettingByKeyField_Global( aiSettings, "BaseClass" ) ) - array<string> keys = [ "DefaultModelName", "DefaultModelName_IMC", "DefaultModelName_MIL" ] - - foreach ( key in keys ) - { - var model = Dev_GetAISettingAssetByKeyField_Global( aiSettings, key ) - if ( model == null ) - continue - - if ( model == $"" ) - continue - - expect asset( model ) - autoPrecacheList.models.append( model ) - } - } -} - -void function AddTitanLoadoutToAutoPrecache( TitanLoadoutDef titanLoadout, AutoPrecacheList autoPrecacheList ) -{ - array<string> weapons = GetWeaponsFromTitanLoadout( titanLoadout ) - foreach ( weapon in weapons ) - { - AddAutoPrecacheWeapon( autoPrecacheList, weapon ) - } - - #if MP - //Precache both the prime and non-prime versions - string primeSetFile - string nonPrimeSetFile - string titanClass = titanLoadout.titanClass - Assert( titanClass != "" ) - nonPrimeSetFile = GetSetFileForTitanClassAndPrimeStatus( titanClass, false ) - AddTitanSetFileToAutoPrecache( nonPrimeSetFile, autoPrecacheList ) - - if( TitanClassHasPrimeTitan( titanClass ) ) - { - primeSetFile = GetSetFileForTitanClassAndPrimeStatus( titanClass, true ) - AddTitanSetFileToAutoPrecache( primeSetFile, autoPrecacheList ) - } - #elseif SP - string nonPrimeSetFile = titanLoadout.setFile - //printt( "nonPrimeSetFile: " + nonPrimeSetFile ) - AddTitanSetFileToAutoPrecache( nonPrimeSetFile, autoPrecacheList ) - #endif -} - -void function AddTitanSetFileToAutoPrecache( string setFile, AutoPrecacheList autoPrecacheList ) -{ - asset model = GetPlayerSettingsAssetForClassName( setFile, "bodymodel" ) - autoPrecacheList.models.append( model ) - - autoPrecacheList.models.extend( GetModelsFromSetFile_3rdPerson( setFile ) ) - - asset hatchmodel = Dev_GetPlayerSettingAssetByKeyField_Global( setFile, "hatchmodel" ) - if ( hatchmodel != $"" ) - { - autoPrecacheList.models.append( hatchmodel ) - } - - AddAutoPrecacheScript( autoPrecacheList, setFile ) - - #if MP - autoPrecacheList.models.extend( GetModelsFromSetFile( setFile ) ) - #endif -} - -void function MarkNPCForAutoPrecache( string aiSettings ) -{ - Assert( !file.forceAutoPrecacheAiSettings.contains( aiSettings ), "Already marked " + aiSettings + " for auto precache" ) - file.forceAutoPrecacheAiSettings.append( aiSettings ) -} - -bool function AutoPrecacheUpToDate( AutoPrecacheList autoPrecacheList ) -{ - foreach ( weapon in autoPrecacheList.weapons ) - { - if ( !( weapon in file.autoPrecacheFound_weapons ) ) - { - CodeWarning( "Auto Precache Failed: Weapon " + weapon + " not found." ) - return false - } - - if ( file.autoPrecacheFound_weapons[ weapon ] != autoPrecacheList.weaponCount[ weapon ] ) - { - CodeWarning( "Auto Precache Failed: Weapon " + weapon + " count changed from " + file.autoPrecacheFound_weapons[ weapon ] + " to " + autoPrecacheList.weaponCount[ weapon ] ) - return false - } - - if ( !WeaponIsPrecached( weapon ) ) - { - CodeWarning( "Auto Precache Failed: Weapon " + weapon + " is not precached." ) - return false - } - } - - foreach ( model in autoPrecacheList.models ) - { - if ( !( model in file.autoPrecacheFound_models ) ) - { - CodeWarning( "Auto Precache Failed: Model " + model + " not found." ) - return false - } - - if ( !ModelIsPrecached( model ) ) - { - CodeWarning( "Auto Precache Failed: Model " + model + " is not precached." ) - return false - } - - //TODO: I think this is correct but it would make SP's autoprecache stuff need to get updated. Not worth the risk for R2. - /*if ( file.autoPrecacheFound_models.len() != autoPrecacheList.models.len() ) - { - CodeWarning( "Auto Precache Failed: autoPrecacheFound_models.len() is not the same as autoPrecacheList.models.len()" ) - return false - }*/ - } - - foreach ( settings, spawners in autoPrecacheList.npcSpawners ) - { - if ( !( settings in file.autoPrecacheFound_npcs ) ) - { - CodeWarning( "Auto Precache Failed: NPC " + settings + " not found." ) - return false - } - - if ( file.autoPrecacheFound_npcs[ settings ] != spawners.len() ) - { - CodeWarning( "Auto Precache Failed: NPC spawner " + settings + " count changed from " + file.autoPrecacheFound_npcs[ settings ] + " to " + spawners.len() ) - return false - } - } - - // verify up to date autoprecache - return file.autoPrecacheVersion == AUTO_PRECACHE_VERSION -} - - -void function SetAutoPrecacheVersion( int ver ) -{ - file.autoPrecacheVersion = ver -} - - -void function FillFromNPCSettings( array<string> npcAiSettings, AutoPrecacheList autoPrecacheList ) -{ - table<string,bool> filledAiSettings - - foreach ( aiSettings in file.forceAutoPrecacheAiSettings ) - { - FillAISettingsPrecaches( aiSettings, autoPrecacheList ) - filledAiSettings[ aiSettings ] <- true - } - - // precache weapons from the AI - foreach ( aiSettings in npcAiSettings ) - { - // any of these spawned in the level? - string baseClass = expect string( Dev_GetAISettingByKeyField_Global( aiSettings, "BaseClass" ) ) - array<entity> spawners = GetSpawnerArrayByClassName( baseClass ) - - bool titanSettings = IsTitanAISettings( aiSettings ) - - foreach ( spawner in spawners ) - { - // this may be set on the entity in leveled - table kvs = spawner.GetSpawnEntityKeyValues() - - string leveledAISettings - if ( "leveled_aisettings" in kvs ) - { - leveledAISettings = expect string( kvs.leveled_aisettings ) - } - - // this finds all spawners with the same baseclass, so only check the spawners that match ai settings. - if ( leveledAISettings == "" ) - { - if ( baseClass != aiSettings ) - continue - } - else - { - if ( leveledAISettings != aiSettings ) - continue - } - - if ( !( aiSettings in filledAiSettings ) ) - { - // found a spawner with these leveled AI settings - FillAISettingsPrecaches( aiSettings, autoPrecacheList ) - filledAiSettings[ aiSettings ] <- true - } - - if ( !( aiSettings in autoPrecacheList.npcSpawners ) ) - autoPrecacheList.npcSpawners[ aiSettings ] <- [] - autoPrecacheList.npcSpawners[ aiSettings ].append( spawner ) - - if ( "script_drone_type" in kvs ) - { - string script_drone_type = expect string( kvs.script_drone_type ) - if ( !( script_drone_type in filledAiSettings ) ) - { - filledAiSettings[ script_drone_type ] <- true - FillAISettingsPrecaches( script_drone_type, autoPrecacheList ) - } - } - - if ( "additionalequipment" in kvs ) - { - string additionalequipment = expect string( kvs.additionalequipment ) - if ( LegalWeaponString( additionalequipment ) && additionalequipment.find( "auto_" ) != 0 ) - { - AddAutoPrecacheWeapon( autoPrecacheList, additionalequipment ) - } - } - - if ( "grenadeWeaponName" in kvs ) - { - string grenadeWeaponName = expect string( kvs.grenadeWeaponName ) - if ( LegalWeaponString( grenadeWeaponName ) ) - { - AddAutoPrecacheWeapon( autoPrecacheList, grenadeWeaponName ) - } - } - - if ( titanSettings ) - { - int titanType = int( expect string( kvs.TitanType ) ) - string leveledTitanLoadout = expect string( kvs.leveled_titan_loadout ) - - TitanLoadoutDef loadout = GetTitanLoadoutFromPlayerSetFile( leveledTitanLoadout ) - - array<string> weapons = GetWeaponsFromTitanLoadout( loadout ) - foreach ( weapon in weapons ) - { - AddAutoPrecacheWeapon( autoPrecacheList, weapon ) - } - - #if SP - if ( titanType == TITAN_MERC ) - { - // we have a boss! - string titanSettings = expect string( Dev_GetAISettingByKeyField_Global( aiSettings, "npc_titan_player_settings" ) ) - string bossName = GetMercCharacterForSetFile( titanSettings ) - BossTitanData bossTitanData = GetBossTitanData( bossName ) - autoPrecacheList.models.append( bossTitanData.characterModel ) - } - #endif - } - } - } -} - -AutoPrecacheList function GenerateAutoPrecacheListForLevel() -{ - AutoPrecacheList autoPrecacheList - - FillFromNPCSettings( GetAllNPCSettings(), autoPrecacheList ) - array<string> deprecatedNPCs = GetAllDeprecatedNPCSettings() - FillFromNPCSettings( deprecatedNPCs, autoPrecacheList ) - - foreach ( aiSettings in deprecatedNPCs ) - { - if ( !( aiSettings in autoPrecacheList.npcSpawners ) ) - continue - foreach ( spawner in autoPrecacheList.npcSpawners[ aiSettings ] ) - { - CodeWarning( "Found deprecated NPC " + aiSettings + " at " + spawner.GetSpawnEntityKeyValues().origin ) - } - } - - foreach ( npc in GetNPCArray() ) - { - if ( !IsValid( npc ) ) - continue - - string weapon = expect string( npc.kv.additionalequipment ) - if ( LegalWeaponString( weapon ) ) - AddAutoPrecacheWeapon( autoPrecacheList, weapon ) -// string weapon = npc.AISetting_GetDefaultWeapon() -// if ( LegalWeaponString( weapon ) ) -// weapons.append( weapon ) - - if ( npc.HasKey( "grenadeWeaponName" ) ) - { - string grenadeWeaponName = expect string( npc.kv.grenadeWeaponName ) - if ( LegalWeaponString( grenadeWeaponName ) ) - { - AddAutoPrecacheWeapon( autoPrecacheList, grenadeWeaponName ) - } - } - - string grenadeWeapon = npc.AISetting_GetGrenadeWeapon() - if ( grenadeWeapon != "" ) - AddAutoPrecacheWeapon( autoPrecacheList, grenadeWeapon ) - - var AdditionalScriptWeapon = npc.Dev_GetAISettingByKeyField( "AdditionalScriptWeapon" ) - if ( AdditionalScriptWeapon != null ) - { - expect string( AdditionalScriptWeapon ) - AddAutoPrecacheWeapon( autoPrecacheList, AdditionalScriptWeapon ) - } - } - - #if SP - LeveledScriptedWeapons leveledScriptedWeapons = GetAllLeveledScriptWeapons() - foreach ( weaponClass, _ in leveledScriptedWeapons.foundScriptWeapons ) - { - AddAutoPrecacheWeapon( autoPrecacheList, weaponClass ) - } - - array<string> weapons - - weapons = GetNPCDefaultWeapons() - foreach ( weapon in weapons ) - { - AddAutoPrecacheWeapon( autoPrecacheList, weapon ) - } - - PilotLoadoutDef loadout = GetPilotLoadoutForCurrentMapSP() - weapons = GetWeaponsFromPilotLoadout( loadout ) - foreach ( weapon in weapons ) - { - AddAutoPrecacheWeapon( autoPrecacheList, weapon ) - } - - autoPrecacheList.models.extend( GetModelsFromSetFile( loadout.setFile ) ) - AddAutoPrecacheScript( autoPrecacheList, loadout.setFile ) - - TitanLoadoutDef titanLoadout = GetTitanLoadoutForCurrentMap() - autoPrecacheList.models.extend( GetModelsFromSetFile( titanLoadout.setFile ) ) - AddAutoPrecacheScript( autoPrecacheList, titanLoadout.setFile ) - #endif - - - #if MP - array<string> pilotTypes = GetAllItemRefsOfType( eItemTypes.PILOT_SUIT ) - - foreach ( suit in pilotTypes ) - { - string suitMale = GetSuitAndGenderBasedSetFile( suit, "race_human_male" ) - autoPrecacheList.models.extend( GetModelsFromSetFile( suitMale ) ) - AddAutoPrecacheScript( autoPrecacheList, suitMale ) - - string suitFemale = GetSuitAndGenderBasedSetFile( suit, "race_human_female" ) - autoPrecacheList.models.extend( GetModelsFromSetFile( suitFemale ) ) - AddAutoPrecacheScript( autoPrecacheList, suitFemale ) - } - #endif - - array<TitanLoadoutDef> titanLoadouts = GetAllowedTitanLoadouts() - - foreach ( loadout in titanLoadouts ) - { - #if MP - // in sp we dont want all the extra cockpit models and whatnot - AddTitanLoadoutToAutoPrecache( loadout, autoPrecacheList ) - #endif - - #if SP - // in sp it would be good to get away from giving all weapons on all levels - weapons = GetWeaponsFromTitanLoadout( loadout ) - foreach ( weapon in weapons ) - { - AddAutoPrecacheWeapon( autoPrecacheList, weapon ) - } - #endif - } - - AutoPrecache_InitFlightpathShared( autoPrecacheList ) - - autoPrecacheList.weapons.sort( SortStringAlphabetize ) - - table<string,int> weaponCount - foreach ( weapon in autoPrecacheList.weapons ) - { - if ( !( weapon in weaponCount ) ) - weaponCount[ weapon ] <- 0 - weaponCount[ weapon ]++ - } - - autoPrecacheList.weaponCount = weaponCount - - RemoveDupesFromSorted_String( autoPrecacheList.weapons ) - - autoPrecacheList.models.sort( SortAssetAlphabetize ) - RemoveDupesFromSorted_Asset( autoPrecacheList.models ) - - return autoPrecacheList -} - -void function AddAutoPrecacheScript( AutoPrecacheList autoPrecacheList, string settings ) -{ - var autoprecache = Dev_GetPlayerSettingByKeyField_Global( settings, "autoprecache_script" ) - if ( autoprecache == null ) - return - - expect string( autoprecache ) - Assert( autoprecache != "" ) - - asset bodyModel = GetPlayerSettingsAssetForClassName( settings, "bodymodel" ) - autoPrecacheList.autoPrecacheScript[ bodyModel ] <- autoprecache -} - -void function AP_NPCSpawnerFound( string settings, int count ) -{ - file.autoPrecacheFound_npcs[ settings ] <- count -} - -void function AP_PrecacheWeapon( string weapon, int count ) -{ - file.autoPrecacheFound_weapons[ weapon ] <- count - - PrecacheWeapon( weapon ) -} - -void function AP_PrecacheModel( asset model ) -{ - file.autoPrecacheFound_models[ model ] <- true - - PrecacheModel( model ) -} - -void function ExportAutoPrecacheList( AutoPrecacheList autoPrecacheList ) -{ - string mapName - #if SP - mapName = GetMapName().toupper() - #endif - - #if MP - mapName = "MP" - #endif - - // Write function open - DevTextBufferClear() - // Write verification call - - DevTextBufferWrite( "global function " + mapName + "_AutoPrecache\n\n" ) - DevTextBufferWrite( "void function " + mapName + "_AutoPrecache()\n" ) - DevTextBufferWrite( "{\n" ) - - DevTextBufferWrite( "#if DEV\n" ) - - DevTextBufferWrite( " #if SERVER\n" ) - DevTextBufferWrite( " SetAutoPrecacheVersion( " + AUTO_PRECACHE_VERSION + " )\n" ) - - DevTextBufferWrite( " // NPC spawners found:\n" ) - array<string> spawnerNames - foreach ( aiSettings, spawnerArray in autoPrecacheList.npcSpawners ) - { - spawnerNames.append( aiSettings ) - } - spawnerNames.sort( SortStringAlphabetize ) - - foreach ( aiSettings in spawnerNames ) - { - array<entity> spawnerArray = autoPrecacheList.npcSpawners[ aiSettings ] - DevTextBufferWrite( " AP_NPCSpawnerFound( \"" + aiSettings + "\", " + spawnerArray.len() + " )\n" ) - } - DevTextBufferWrite( " #endif\n" ) - DevTextBufferWrite( "\n" ) - - foreach ( weapon in autoPrecacheList.weapons ) - { - int count = autoPrecacheList.weaponCount[ weapon ] - DevTextBufferWrite( " AP_PrecacheWeapon( \"" + weapon + "\", " + count + " )\n" ) - } - - foreach ( model in autoPrecacheList.models ) - { - DevTextBufferWrite( " AP_PrecacheModel( " + model + " )\n" ) - } - - DevTextBufferWrite( "#endif\n\n" ) - - DevTextBufferWrite( "#if !DEV\n" ) - - DevTextBufferWrite( "\n" ) - - foreach ( weapon in autoPrecacheList.weapons ) - { - int count = autoPrecacheList.weaponCount[ weapon ] - DevTextBufferWrite( " PrecacheWeapon( \"" + weapon + "\" )\n" ) - } - - foreach ( model in autoPrecacheList.models ) - { - DevTextBufferWrite( " PrecacheModel( " + model + " )\n" ) - } - - DevTextBufferWrite( "#endif\n\n" ) - - DevTextBufferWrite( "#if CLIENT\n" ) - - array<string>[4] titanModelAssets - foreach ( model, script in autoPrecacheList.autoPrecacheScript ) - { - switch ( script ) - { - case "atlas": - titanModelAssets[ 0 ].append( " ClTitanAtlas_Init( " + model + " )\n" ) - break - - case "ogre": - - titanModelAssets[ 1 ].append( " ClTitanOgre_Init( " + model + " )\n" ) - break - - case "stryder": - titanModelAssets[ 2 ].append( " ClTitanStryder_Init( " + model + " )\n" ) - break - - case "buddy": - titanModelAssets[ 2 ].append( " ClTitanBuddy_Init( " + model + " )\n" ) - break - - default: - Assert( 0, "Unknown autoprecache_script key " + script ) - break - } - } - - foreach( arrayOfAsset in titanModelAssets ) //Sort output so exported precache file can be diffed easily - { - arrayOfAsset.sort( SortStringAlphabetize ) - foreach( assetElement in arrayOfAsset ) - { - DevTextBufferWrite( assetElement ) - } - } - - DevTextBufferWrite( "#endif\n" ) - - // Write function close - DevTextBufferWrite( "}\n\n" ) - - - #if SP - string filename = "scripts/vscripts/sp/autoprecache/" + mapName + "_autoprecache.nut" - #endif - - #if MP - string filename = "scripts/vscripts/mp/" + mapName + "_autoprecache.nut" - #endif - DevP4Checkout( filename ) - DevTextBufferDumpToFile( filename ) - DevP4Add( filename ) - printt( "Wrote " + filename ) -} - -#endif
\ No newline at end of file |