mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			485 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			485 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/*
 | 
						|
    Originally from /Source/gg2/Scripts/game_init.gml in Gang Garrison 2
 | 
						|
 | 
						|
    Copyright (C) 2008-2013 Faucet Software
 | 
						|
    http://www.ganggarrison.com
 | 
						|
 | 
						|
    This program is free software; 
 | 
						|
    you can redistribute it and/or modify it under the terms of the GNU General Public License
 | 
						|
    as published by the Free Software Foundation; either version 3 of the License, or (at your option)
 | 
						|
    any later version.
 | 
						|
    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
 | 
						|
    without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 | 
						|
    See the GNU General Public License for more details.
 | 
						|
    You should have received a copy of the GNU General Public License along with this program; if not,
 | 
						|
    see <http://www.gnu.org/licenses>.
 | 
						|
 | 
						|
    Additional permission under GNU GPL version 3 section 7
 | 
						|
    If you modify this Program, or any covered work, by linking or combining it with the Game Maker runtime library, 
 | 
						|
    the 39dll library/extension, Hobbel's Download Manager DLL, or modified versions of these libraries,
 | 
						|
    the licensors of this Program grant you additional permission to convey the resulting work.
 | 
						|
*/
 | 
						|
 | 
						|
// Returns true if the game is successfully initialized, false if there was an error and we should quit.
 | 
						|
{
 | 
						|
    instance_create(0,0,RoomChangeObserver);
 | 
						|
    set_little_endian_global(true);
 | 
						|
    if file_exists("game_errors.log") file_delete("game_errors.log");
 | 
						|
    if file_exists("last_plugin.log") file_delete("last_plugin.log");
 | 
						|
    
 | 
						|
    // Delete old left-over files created by the updater
 | 
						|
    var backupFilename;
 | 
						|
    backupFilename = file_find_first("gg2-old.delete.me.*", 0);
 | 
						|
    while(backupFilename != "")
 | 
						|
    {
 | 
						|
        file_delete(backupFilename);
 | 
						|
        backupFilename = file_find_next();
 | 
						|
    }
 | 
						|
    file_find_close();
 | 
						|
    
 | 
						|
    var customMapRotationFile, restart;
 | 
						|
    restart = false;
 | 
						|
 | 
						|
    //import wav files for music
 | 
						|
    global.MenuMusic=sound_add(choose("Music/menumusic1.wav","Music/menumusic2.wav","Music/menumusic3.wav","Music/menumusic4.wav","Music/menumusic5.wav","Music/menumusic6.wav"), 1, true);
 | 
						|
    global.IngameMusic=sound_add("Music/ingamemusic.wav", 1, true);
 | 
						|
    global.FaucetMusic=sound_add("Music/faucetmusic.wav", 1, true);
 | 
						|
    if(global.MenuMusic != -1)
 | 
						|
        sound_volume(global.MenuMusic, 0.8);
 | 
						|
    if(global.IngameMusic != -1)
 | 
						|
        sound_volume(global.IngameMusic, 0.8);
 | 
						|
    if(global.FaucetMusic != -1)
 | 
						|
        sound_volume(global.FaucetMusic, 0.8);
 | 
						|
        
 | 
						|
    global.sendBuffer = buffer_create();
 | 
						|
    global.tempBuffer = buffer_create();
 | 
						|
    global.HudCheck = false;
 | 
						|
    global.map_rotation = ds_list_create();
 | 
						|
    
 | 
						|
    global.CustomMapCollisionSprite = -1;
 | 
						|
    
 | 
						|
    window_set_region_scale(-1, false);
 | 
						|
    
 | 
						|
    ini_open("gg2.ini");
 | 
						|
    global.playerName = ini_read_string("Settings", "PlayerName", "Player");
 | 
						|
    if string_count("#",global.playerName) > 0 global.playerName = "Player";
 | 
						|
    global.playerName = string_copy(global.playerName, 0, min(string_length(global.playerName), MAX_PLAYERNAME_LENGTH));
 | 
						|
    global.fullscreen = ini_read_real("Settings", "Fullscreen", 0);
 | 
						|
    global.useLobbyServer = ini_read_real("Settings", "UseLobby", 1);
 | 
						|
    global.hostingPort = ini_read_real("Settings", "HostingPort", 8190);
 | 
						|
    global.music = ini_read_real("Settings", "Music", ini_read_real("Settings", "IngameMusic", MUSIC_BOTH));
 | 
						|
    global.playerLimit = ini_read_real("Settings", "PlayerLimit", 10);
 | 
						|
    //thy playerlimit shalt not exceed 48!
 | 
						|
    if (global.playerLimit > 48)
 | 
						|
    {
 | 
						|
        if (global.dedicatedMode != 1)
 | 
						|
            show_message("Warning: Player Limit cannot exceed 48. It has been set to 48");
 | 
						|
        global.playerLimit = 48;
 | 
						|
        ini_write_real("Settings", "PlayerLimit", 48);
 | 
						|
    }
 | 
						|
    global.multiClientLimit = ini_read_real("Settings", "MultiClientLimit", 3);
 | 
						|
    global.particles =  ini_read_real("Settings", "Particles", PARTICLES_NORMAL);
 | 
						|
    global.gibLevel = ini_read_real("Settings", "Gib Level", 3);
 | 
						|
    global.killCam = ini_read_real("Settings", "Kill Cam", 1);
 | 
						|
    global.monitorSync = ini_read_real("Settings", "Monitor Sync", 0);
 | 
						|
    if global.monitorSync == 1 set_synchronization(true);
 | 
						|
    else set_synchronization(false);
 | 
						|
    global.medicRadar = ini_read_real("Settings", "Healer Radar", 1);
 | 
						|
    global.showHealer = ini_read_real("Settings", "Show Healer", 1);
 | 
						|
    global.showHealing = ini_read_real("Settings", "Show Healing", 1);
 | 
						|
    global.showHealthBar = ini_read_real("Settings", "Show Healthbar", 0);
 | 
						|
    global.showTeammateStats = ini_read_real("Settings", "Show Extra Teammate Stats", 0);
 | 
						|
    global.serverPluginsPrompt = ini_read_real("Settings", "ServerPluginsPrompt", 1);
 | 
						|
    global.restartPrompt = ini_read_real("Settings", "RestartPrompt", 1);
 | 
						|
    //user HUD settings
 | 
						|
    global.timerPos=ini_read_real("Settings","Timer Position", 0)
 | 
						|
    global.killLogPos=ini_read_real("Settings","Kill Log Position", 0)
 | 
						|
    global.kothHudPos=ini_read_real("Settings","KoTH HUD Position", 0)
 | 
						|
    global.clientPassword = "";
 | 
						|
    // for admin menu
 | 
						|
    customMapRotationFile = ini_read_string("Server", "MapRotation", "");
 | 
						|
    global.shuffleRotation = ini_read_real("Server", "ShuffleRotation", 1);
 | 
						|
    global.timeLimitMins = max(1, min(255, ini_read_real("Server", "Time Limit", 15)));
 | 
						|
    global.serverPassword = ini_read_string("Server", "Password", "");
 | 
						|
    global.mapRotationFile = customMapRotationFile;
 | 
						|
    global.dedicatedMode = ini_read_real("Server", "Dedicated", 0);
 | 
						|
    global.serverName = ini_read_string("Server", "ServerName", "My Server");
 | 
						|
    global.welcomeMessage = ini_read_string("Server", "WelcomeMessage", "");
 | 
						|
    global.caplimit = max(1, min(255, ini_read_real("Server", "CapLimit", 5)));
 | 
						|
    global.caplimitBkup = global.caplimit;
 | 
						|
    global.autobalance = ini_read_real("Server", "AutoBalance",1);
 | 
						|
    global.Server_RespawntimeSec = ini_read_real("Server", "Respawn Time", 5);
 | 
						|
    global.rewardKey = unhex(ini_read_string("Haxxy", "RewardKey", ""));
 | 
						|
    global.rewardId = ini_read_string("Haxxy", "RewardId", "");
 | 
						|
    global.mapdownloadLimitBps = ini_read_real("Server", "Total bandwidth limit for map downloads in bytes per second", 50000);
 | 
						|
    global.updaterBetaChannel = ini_read_real("General", "UpdaterBetaChannel", isBetaVersion());
 | 
						|
    global.attemptPortForward = ini_read_real("Server", "Attempt UPnP Forwarding", 0); 
 | 
						|
    global.serverPluginList = ini_read_string("Server", "ServerPluginList", "");
 | 
						|
    global.serverPluginsRequired = ini_read_real("Server", "ServerPluginsRequired", 0);
 | 
						|
    if (string_length(global.serverPluginList) > 254) {
 | 
						|
        show_message("Error: Server plugin list cannot exceed 254 characters");
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
    var CrosshairFilename, CrosshairRemoveBG;
 | 
						|
    CrosshairFilename = ini_read_string("Settings", "CrosshairFilename", "");
 | 
						|
    CrosshairRemoveBG = ini_read_real("Settings", "CrosshairRemoveBG", 1);
 | 
						|
    global.queueJumping = ini_read_real("Settings", "Queued Jumping", 0);
 | 
						|
 | 
						|
    global.backgroundHash = ini_read_string("Background", "BackgroundHash", "default");
 | 
						|
    global.backgroundTitle = ini_read_string("Background", "BackgroundTitle", "");
 | 
						|
    global.backgroundURL = ini_read_string("Background", "BackgroundURL", "");
 | 
						|
    global.backgroundShowVersion = ini_read_real("Background", "BackgroundShowVersion", true);
 | 
						|
    
 | 
						|
    readClasslimitsFromIni();
 | 
						|
 | 
						|
    global.currentMapArea=1;
 | 
						|
    global.totalMapAreas=1;
 | 
						|
    global.setupTimer=1800;
 | 
						|
    global.joinedServerName="";
 | 
						|
    global.serverPluginsInUse=false;
 | 
						|
    // Create plugin packet maps
 | 
						|
    global.pluginPacketBuffers = ds_map_create();
 | 
						|
    global.pluginPacketPlayers = ds_map_create();
 | 
						|
        
 | 
						|
    ini_write_string("Settings", "PlayerName", global.playerName);
 | 
						|
    ini_write_real("Settings", "Fullscreen", global.fullscreen);
 | 
						|
    ini_write_real("Settings", "UseLobby", global.useLobbyServer);
 | 
						|
    ini_write_real("Settings", "HostingPort", global.hostingPort);
 | 
						|
    ini_key_delete("Settings", "IngameMusic");
 | 
						|
    ini_write_real("Settings", "Music", global.music);
 | 
						|
    ini_write_real("Settings", "PlayerLimit", global.playerLimit);
 | 
						|
    ini_write_real("Settings", "MultiClientLimit", global.multiClientLimit);
 | 
						|
    ini_write_real("Settings", "Particles", global.particles);
 | 
						|
    ini_write_real("Settings", "Gib Level", global.gibLevel);
 | 
						|
    ini_write_real("Settings", "Kill Cam", global.killCam);
 | 
						|
    ini_write_real("Settings", "Monitor Sync", global.monitorSync);
 | 
						|
    ini_write_real("Settings", "Healer Radar", global.medicRadar);
 | 
						|
    ini_write_real("Settings", "Show Healer", global.showHealer);
 | 
						|
    ini_write_real("Settings", "Show Healing", global.showHealing);
 | 
						|
    ini_write_real("Settings", "Show Healthbar", global.showHealthBar);
 | 
						|
    ini_write_real("Settings", "Show Extra Teammate Stats", global.showTeammateStats);
 | 
						|
    ini_write_real("Settings", "Timer Position", global.timerPos);
 | 
						|
    ini_write_real("Settings", "Kill Log Position", global.killLogPos);
 | 
						|
    ini_write_real("Settings", "KoTH HUD Position", global.kothHudPos);
 | 
						|
    ini_write_real("Settings", "ServerPluginsPrompt", global.serverPluginsPrompt);
 | 
						|
    ini_write_real("Settings", "RestartPrompt", global.restartPrompt);
 | 
						|
    ini_write_string("Server", "MapRotation", customMapRotationFile);
 | 
						|
    ini_write_real("Server", "ShuffleRotation", global.shuffleRotation);
 | 
						|
    ini_write_real("Server", "Dedicated", global.dedicatedMode);
 | 
						|
    ini_write_string("Server", "ServerName", global.serverName);
 | 
						|
    ini_write_string("Server", "WelcomeMessage", global.welcomeMessage);
 | 
						|
    ini_write_real("Server", "CapLimit", global.caplimit);
 | 
						|
    ini_write_real("Server", "AutoBalance", global.autobalance);
 | 
						|
    ini_write_real("Server", "Respawn Time", global.Server_RespawntimeSec);
 | 
						|
    ini_write_real("Server", "Total bandwidth limit for map downloads in bytes per second", global.mapdownloadLimitBps);
 | 
						|
    ini_write_real("Server", "Time Limit", global.timeLimitMins);
 | 
						|
    ini_write_string("Server", "Password", global.serverPassword);
 | 
						|
    ini_write_real("General", "UpdaterBetaChannel", global.updaterBetaChannel);
 | 
						|
    ini_write_real("Server", "Attempt UPnP Forwarding", global.attemptPortForward); 
 | 
						|
    ini_write_string("Server", "ServerPluginList", global.serverPluginList); 
 | 
						|
    ini_write_real("Server", "ServerPluginsRequired", global.serverPluginsRequired); 
 | 
						|
    ini_write_string("Settings", "CrosshairFilename", CrosshairFilename);
 | 
						|
    ini_write_real("Settings", "CrosshairRemoveBG", CrosshairRemoveBG);
 | 
						|
    ini_write_real("Settings", "Queued Jumping", global.queueJumping);
 | 
						|
 | 
						|
    ini_write_string("Background", "BackgroundHash", global.backgroundHash);
 | 
						|
    ini_write_string("Background", "BackgroundTitle", global.backgroundTitle);
 | 
						|
    ini_write_string("Background", "BackgroundURL", global.backgroundURL);
 | 
						|
    ini_write_real("Background", "BackgroundShowVersion", global.backgroundShowVersion);
 | 
						|
    
 | 
						|
    ini_write_real("Classlimits", "Scout", global.classlimits[CLASS_SCOUT])
 | 
						|
    ini_write_real("Classlimits", "Pyro", global.classlimits[CLASS_PYRO])
 | 
						|
    ini_write_real("Classlimits", "Soldier", global.classlimits[CLASS_SOLDIER])
 | 
						|
    ini_write_real("Classlimits", "Heavy", global.classlimits[CLASS_HEAVY])
 | 
						|
    ini_write_real("Classlimits", "Demoman", global.classlimits[CLASS_DEMOMAN])
 | 
						|
    ini_write_real("Classlimits", "Medic", global.classlimits[CLASS_MEDIC])
 | 
						|
    ini_write_real("Classlimits", "Engineer", global.classlimits[CLASS_ENGINEER])
 | 
						|
    ini_write_real("Classlimits", "Spy", global.classlimits[CLASS_SPY])
 | 
						|
    ini_write_real("Classlimits", "Sniper", global.classlimits[CLASS_SNIPER])
 | 
						|
    ini_write_real("Classlimits", "Quote", global.classlimits[CLASS_QUOTE])
 | 
						|
 | 
						|
    //screw the 0 index we will start with 1
 | 
						|
    //map_truefort 
 | 
						|
    maps[1] = ini_read_real("Maps", "ctf_truefort", 1);
 | 
						|
    //map_2dfort 
 | 
						|
    maps[2] = ini_read_real("Maps", "ctf_2dfort", 2);
 | 
						|
    //map_conflict 
 | 
						|
    maps[3] = ini_read_real("Maps", "ctf_conflict", 3);
 | 
						|
    //map_classicwell 
 | 
						|
    maps[4] = ini_read_real("Maps", "ctf_classicwell", 4);
 | 
						|
    //map_waterway 
 | 
						|
    maps[5] = ini_read_real("Maps", "ctf_waterway", 5);
 | 
						|
    //map_orange 
 | 
						|
    maps[6] = ini_read_real("Maps", "ctf_orange", 6);
 | 
						|
    //map_dirtbowl
 | 
						|
    maps[7] = ini_read_real("Maps", "cp_dirtbowl", 7);
 | 
						|
    //map_egypt
 | 
						|
    maps[8] = ini_read_real("Maps", "cp_egypt", 8);
 | 
						|
    //arena_montane
 | 
						|
    maps[9] = ini_read_real("Maps", "arena_montane", 9);
 | 
						|
    //arena_lumberyard
 | 
						|
    maps[10] = ini_read_real("Maps", "arena_lumberyard", 10);
 | 
						|
    //gen_destroy
 | 
						|
    maps[11] = ini_read_real("Maps", "gen_destroy", 11);
 | 
						|
    //koth_valley
 | 
						|
    maps[12] = ini_read_real("Maps", "koth_valley", 12);
 | 
						|
    //koth_corinth
 | 
						|
    maps[13] = ini_read_real("Maps", "koth_corinth", 13);
 | 
						|
    //koth_harvest
 | 
						|
    maps[14] = ini_read_real("Maps", "koth_harvest", 14);
 | 
						|
    //dkoth_atalia
 | 
						|
    maps[15] = ini_read_real("Maps", "dkoth_atalia", 15);
 | 
						|
    //dkoth_sixties
 | 
						|
    maps[16] = ini_read_real("Maps", "dkoth_sixties", 16);
 | 
						|
    
 | 
						|
    //Server respawn time calculator. Converts each second to a frame. (read: multiply by 30 :hehe:)
 | 
						|
    if (global.Server_RespawntimeSec == 0)
 | 
						|
    {
 | 
						|
        global.Server_Respawntime = 1;
 | 
						|
    }    
 | 
						|
    else
 | 
						|
    {
 | 
						|
        global.Server_Respawntime = global.Server_RespawntimeSec * 30;    
 | 
						|
    }    
 | 
						|
    
 | 
						|
    // I have to include this, or the client'll complain about an unknown variable.
 | 
						|
    global.mapchanging = false;
 | 
						|
    
 | 
						|
    ini_write_real("Maps", "ctf_truefort", maps[1]);
 | 
						|
    ini_write_real("Maps", "ctf_2dfort", maps[2]);
 | 
						|
    ini_write_real("Maps", "ctf_conflict", maps[3]);
 | 
						|
    ini_write_real("Maps", "ctf_classicwell", maps[4]);
 | 
						|
    ini_write_real("Maps", "ctf_waterway", maps[5]);
 | 
						|
    ini_write_real("Maps", "ctf_orange", maps[6]);
 | 
						|
    ini_write_real("Maps", "cp_dirtbowl", maps[7]);
 | 
						|
    ini_write_real("Maps", "cp_egypt", maps[8]);
 | 
						|
    ini_write_real("Maps", "arena_montane", maps[9]);
 | 
						|
    ini_write_real("Maps", "arena_lumberyard", maps[10]);
 | 
						|
    ini_write_real("Maps", "gen_destroy", maps[11]);
 | 
						|
    ini_write_real("Maps", "koth_valley", maps[12]);
 | 
						|
    ini_write_real("Maps", "koth_corinth", maps[13]);
 | 
						|
    ini_write_real("Maps", "koth_harvest", maps[14]);
 | 
						|
    ini_write_real("Maps", "dkoth_atalia", maps[15]);
 | 
						|
    ini_write_real("Maps", "dkoth_sixties", maps[16]);
 | 
						|
 | 
						|
    ini_close();
 | 
						|
    
 | 
						|
    // parse the protocol version UUID for later use
 | 
						|
    global.protocolUuid = buffer_create();
 | 
						|
    parseUuid(PROTOCOL_UUID, global.protocolUuid);
 | 
						|
 | 
						|
    global.gg2lobbyId = buffer_create();
 | 
						|
    parseUuid(GG2_LOBBY_UUID, global.gg2lobbyId);
 | 
						|
 | 
						|
    // Create abbreviations array for rewards use
 | 
						|
    initRewards()
 | 
						|
    
 | 
						|
var a, IPRaw, portRaw;
 | 
						|
doubleCheck=0;
 | 
						|
global.launchMap = "";
 | 
						|
 | 
						|
    for(a = 1; a <= parameter_count(); a += 1) 
 | 
						|
    {
 | 
						|
        if (parameter_string(a) == "-dedicated")
 | 
						|
        {
 | 
						|
            global.dedicatedMode = 1;
 | 
						|
        }
 | 
						|
        else if (parameter_string(a) == "-restart")
 | 
						|
        {
 | 
						|
            restart = true;
 | 
						|
        }
 | 
						|
        else if (parameter_string(a) == "-server")
 | 
						|
        {
 | 
						|
            IPRaw = parameter_string(a+1);
 | 
						|
            if (doubleCheck == 1)
 | 
						|
            {
 | 
						|
                doubleCheck = 2;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                doubleCheck = 1;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        else if (parameter_string(a) == "-port")
 | 
						|
        {
 | 
						|
            portRaw = parameter_string(a+1);
 | 
						|
            if (doubleCheck == 1)
 | 
						|
            {
 | 
						|
                doubleCheck = 2;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                doubleCheck = 1;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        else if (parameter_string(a) == "-map")
 | 
						|
        {
 | 
						|
            global.launchMap = parameter_string(a+1);
 | 
						|
            global.dedicatedMode = 1;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    
 | 
						|
    if (doubleCheck == 2)
 | 
						|
    {
 | 
						|
        global.serverPort = real(portRaw);
 | 
						|
        global.serverIP = IPRaw;
 | 
						|
        global.isHost = false;
 | 
						|
        instance_create(0,0,Client);
 | 
						|
    }   
 | 
						|
    
 | 
						|
    global.customMapdesginated = 0;    
 | 
						|
    
 | 
						|
    // if the user defined a valid map rotation file, then load from there
 | 
						|
 | 
						|
    if(customMapRotationFile != "" && file_exists(customMapRotationFile) && global.launchMap == "") {
 | 
						|
        global.customMapdesginated = 1;
 | 
						|
        var fileHandle, i, mapname;
 | 
						|
        fileHandle = file_text_open_read(customMapRotationFile);
 | 
						|
        for(i = 1; !file_text_eof(fileHandle); i += 1) {
 | 
						|
            mapname = file_text_read_string(fileHandle);
 | 
						|
            // remove leading whitespace from the string
 | 
						|
            while(string_char_at(mapname, 0) == " " || string_char_at(mapname, 0) == chr(9)) { // while it starts with a space or tab
 | 
						|
              mapname = string_delete(mapname, 0, 1); // delete that space or tab
 | 
						|
            }
 | 
						|
            if(mapname != "" && string_char_at(mapname, 0) != "#") { // if it's not blank and it's not a comment (starting with #)
 | 
						|
                ds_list_add(global.map_rotation, mapname);
 | 
						|
            }
 | 
						|
            file_text_readln(fileHandle);
 | 
						|
        }
 | 
						|
        file_text_close(fileHandle);
 | 
						|
    }
 | 
						|
    
 | 
						|
     else if (global.launchMap != "") && (global.dedicatedMode == 1)
 | 
						|
        {  
 | 
						|
        ds_list_add(global.map_rotation, global.launchMap);
 | 
						|
        }
 | 
						|
    
 | 
						|
     else { // else load from the ini file Maps section
 | 
						|
        //Set up the map rotation stuff
 | 
						|
        var i, sort_list;
 | 
						|
        sort_list = ds_list_create();
 | 
						|
        for(i=1; i <= 16; i += 1) {
 | 
						|
            if(maps[i] != 0) ds_list_add(sort_list, ((100*maps[i])+i));
 | 
						|
        }
 | 
						|
        ds_list_sort(sort_list, 1);
 | 
						|
        
 | 
						|
        // translate the numbers back into the names they represent
 | 
						|
        for(i=0; i < ds_list_size(sort_list); i += 1) {
 | 
						|
            switch(ds_list_find_value(sort_list, i) mod 100) {
 | 
						|
                case 1:
 | 
						|
                    ds_list_add(global.map_rotation, "ctf_truefort");
 | 
						|
                break;
 | 
						|
                case 2:
 | 
						|
                    ds_list_add(global.map_rotation, "ctf_2dfort");
 | 
						|
                break;
 | 
						|
                case 3:
 | 
						|
                    ds_list_add(global.map_rotation, "ctf_conflict");
 | 
						|
                break;
 | 
						|
                case 4:
 | 
						|
                    ds_list_add(global.map_rotation, "ctf_classicwell");
 | 
						|
                break;
 | 
						|
                case 5:
 | 
						|
                    ds_list_add(global.map_rotation, "ctf_waterway");
 | 
						|
                break;
 | 
						|
                case 6:
 | 
						|
                    ds_list_add(global.map_rotation, "ctf_orange");
 | 
						|
                break;
 | 
						|
                case 7:
 | 
						|
                    ds_list_add(global.map_rotation, "cp_dirtbowl");
 | 
						|
                break;
 | 
						|
                case 8:
 | 
						|
                    ds_list_add(global.map_rotation, "cp_egypt");
 | 
						|
                break;
 | 
						|
                case 9:
 | 
						|
                    ds_list_add(global.map_rotation, "arena_montane");
 | 
						|
                break;
 | 
						|
                case 10:
 | 
						|
                    ds_list_add(global.map_rotation, "arena_lumberyard");
 | 
						|
                break;
 | 
						|
                case 11:
 | 
						|
                    ds_list_add(global.map_rotation, "gen_destroy");
 | 
						|
                break;
 | 
						|
                case 12:
 | 
						|
                    ds_list_add(global.map_rotation, "koth_valley");
 | 
						|
                break;
 | 
						|
                case 13:
 | 
						|
                    ds_list_add(global.map_rotation, "koth_corinth");
 | 
						|
                break;
 | 
						|
                case 14:
 | 
						|
                    ds_list_add(global.map_rotation, "koth_harvest");
 | 
						|
                break;
 | 
						|
                case 15:
 | 
						|
                    ds_list_add(global.map_rotation, "dkoth_atalia");
 | 
						|
                break;
 | 
						|
                case 16:
 | 
						|
                    ds_list_add(global.map_rotation, "dkoth_sixties");
 | 
						|
                break;
 | 
						|
                    
 | 
						|
            }
 | 
						|
        }
 | 
						|
        ds_list_destroy(sort_list);
 | 
						|
    }
 | 
						|
    
 | 
						|
    window_set_fullscreen(global.fullscreen);
 | 
						|
    
 | 
						|
    global.gg2Font = font_add_sprite(gg2FontS,ord("!"),false,0);
 | 
						|
    global.countFont = font_add_sprite(countFontS, ord("0"),false,2);
 | 
						|
    draw_set_font(global.gg2Font);
 | 
						|
    cursor_sprite = CrosshairS;
 | 
						|
    
 | 
						|
    if(!directory_exists(working_directory + "\Maps")) directory_create(working_directory + "\Maps");
 | 
						|
    
 | 
						|
    instance_create(0, 0, AudioControl);
 | 
						|
    instance_create(0, 0, SSControl);
 | 
						|
    
 | 
						|
    // custom dialog box graphics
 | 
						|
    message_background(popupBackgroundB);
 | 
						|
    message_button(popupButtonS);
 | 
						|
    message_text_font("Century",9,c_white,1);
 | 
						|
    message_button_font("Century",9,c_white,1);
 | 
						|
    message_input_font("Century",9,c_white,0);
 | 
						|
    
 | 
						|
    //Key Mapping
 | 
						|
    ini_open("controls.gg2");
 | 
						|
    global.jump = ini_read_real("Controls", "jump", ord("W"));
 | 
						|
    global.down = ini_read_real("Controls", "down", ord("S"));
 | 
						|
    global.left = ini_read_real("Controls", "left", ord("A"));
 | 
						|
    global.right = ini_read_real("Controls", "right", ord("D"));
 | 
						|
    global.attack = ini_read_real("Controls", "attack", MOUSE_LEFT);
 | 
						|
    global.special = ini_read_real("Controls", "special", MOUSE_RIGHT);
 | 
						|
    global.taunt = ini_read_real("Controls", "taunt", ord("F"));
 | 
						|
    global.chat1 = ini_read_real("Controls", "chat1", ord("Z"));
 | 
						|
    global.chat2 = ini_read_real("Controls", "chat2", ord("X"));
 | 
						|
    global.chat3 = ini_read_real("Controls", "chat3", ord("C"));
 | 
						|
    global.medic = ini_read_real("Controls", "medic", ord("E"));
 | 
						|
    global.drop = ini_read_real("Controls", "drop", ord("B"));
 | 
						|
    global.changeTeam = ini_read_real("Controls", "changeTeam", ord("N"));
 | 
						|
    global.changeClass = ini_read_real("Controls", "changeClass", ord("M"));
 | 
						|
    global.showScores = ini_read_real("Controls", "showScores", vk_shift);
 | 
						|
    ini_close();
 | 
						|
    
 | 
						|
    calculateMonthAndDay();
 | 
						|
 | 
						|
    if(!directory_exists(working_directory + "\Plugins")) directory_create(working_directory + "\Plugins");
 | 
						|
    loadplugins();
 | 
						|
    
 | 
						|
    /* Windows 8 is known to crash GM when more than three (?) sounds play at once
 | 
						|
     * We'll store the kernel version (Win8 is 6.2, Win7 is 6.1) and check it there.
 | 
						|
     ***/
 | 
						|
    registry_set_root(1); // HKLM
 | 
						|
    global.NTKernelVersion = real(registry_read_string_ext("\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "CurrentVersion")); // SIC
 | 
						|
 | 
						|
    if (file_exists(CrosshairFilename))
 | 
						|
    {
 | 
						|
        sprite_replace(CrosshairS,CrosshairFilename,1,CrosshairRemoveBG,false,0,0);
 | 
						|
        sprite_set_offset(CrosshairS,sprite_get_width(CrosshairS)/2,sprite_get_height(CrosshairS)/2);
 | 
						|
    }
 | 
						|
    if(global.dedicatedMode == 1) {
 | 
						|
        AudioControlToggleMute();
 | 
						|
        room_goto_fix(Menu);
 | 
						|
    } else if(restart) {
 | 
						|
        room_goto_fix(Menu);
 | 
						|
    }
 | 
						|
    return true;
 | 
						|
}
 |