<undefined> 0 -1 0 0 <undefined> <undefined> 1 603 7 0 0 -1 2 self 0 0 1 done = false; global.curropt = 0; var tempnumcounter = 0; /* This list dictates the order of selection in the Extras Menu. Also, the list in User Defined 0 needs to be in order. */ init = 0; num_censorip = tempnumcounter++; num_ip = tempnumcounter++; num_port = tempnumcounter++; num_name = tempnumcounter++; num_sequence = tempnumcounter++; num_color = tempnumcounter++; num_palette = tempnumcounter++; num_showname = tempnumcounter++; num_difficulty = tempnumcounter++; num_elm = tempnumcounter++; num_seedgen = tempnumcounter++; num_connection = tempnumcounter++; lastitem = tempnumcounter; // This value will be one number higher than the last number in the list above. ip = oControl.ipaddress; name = oControl.name; port = string(oControl.port); showname = 1; sequence = 1; menuDifficulty = global.difficulty; if(oControl.mod_fusion) menuDifficulty = 3; elm = oControl.mod_monstersextremecheck; connectiontxt = "Connect"; if(instance_exists(oClient)){ connectiontxt = "Disconnect"; } else { connectiontxt = "Connect"; } switch(oControl.reactorsequence){ case "synced": sequence = 1; break; case "disabled": sequence = 0; break; } switch(oControl.showname){ case "enabled": showname = 1; break; case "disabled": showname = 0; break; } vTargetY = 18 * lastitem + 30; editing = 0; active = 0; alarm[0] = 5; i = 0; repeat (lastitem + 1) { canedit[i] = 1; i += 1; } targety = y; view_object[0] = id; timer = 0; event_user(0); with (oSS_Control) active = 1; with (oSS_Fg) { active = 1; } tip[num_censorip] = "Toggle whether your IP address is censored" tip[num_ip] = "Set the IP address of the server"; tip[num_port] = "Set the port of the server"; tip[num_name] = "Set your display name"; tip[num_sequence] = "Toggle whether the reactor sequence is synced"; tip[num_color] = "Pick your preferred player color"; tip[num_palette] = "Choose Default/Color/Custom Palette"; tip[num_showname] = "Enable/disable showing player names"; tip[num_difficulty] = "Choose the shared Multitroid difficulty"; tip[num_elm] = "Choose the shared ELM difficulty"; tip[num_seedgen] = "Generate a random seed for Multitroid"; tip[num_connection] = "Connect/disconnect to the server"; tip[lastitem] = get_text("GlobalOptions", "ExitMain_Tip"); global.tiptext = tip[global.curropt]; alarm[1] = 1; 1 603 7 0 0 -1 2 self 0 0 1 event_user(1); 1 603 7 0 0 -1 2 self 0 0 1 1 603 7 0 0 -1 2 self 0 0 1 active = 1; 1 603 7 0 0 -1 2 self 0 0 1 if (active) { if (oControl.kDown > 0 && (oControl.kDownPushedSteps == 0 || oControl.kDownPushedSteps > 30 && timer == 0) && !editing) { global.curropt += 1; if (global.curropt > lastitem) global.curropt = 0; while (canedit[global.curropt] == 0) global.curropt += 1; if (global.curropt > lastitem) global.curropt = 0; targety = op[global.curropt].y + lastitem; if (targety > vTargetY) targety = vTargetY; sfx_play(sndMenuMove); global.tiptext = tip[global.curropt]; } if (oControl.kUp > 0 && (oControl.kUpPushedSteps == 0 || oControl.kUpPushedSteps > 30 && timer == 0) && !editing) { global.curropt -= 1; if (global.curropt < 0) global.curropt = lastitem; while (canedit[global.curropt] == 0) { global.curropt -= 1; if (global.curropt < 0) global.curropt = lastitem; } targety = op[global.curropt].y + lastitem; if (targety > vTargetY) targety = vTargetY; sfx_play(sndMenuMove); global.tiptext = tip[global.curropt]; } if (oControl.kLeft > 0 && oControl.kLeftPushedSteps == 0 && oControl.kDown == 0 && oControl.kUp == 0) { if (global.shaders_compiled) { if (global.curropt == num_color) { oControl.preferredcolor--; if(oControl.preferredcolor < 1){ oControl.preferredcolor = 17; } sfx_play(sndMenuMove); event_user(2); } if (global.curropt == num_palette) { oControl.palette--; if(oControl.palette < 0){ oControl.palette = 2; } sfx_play(sndMenuMove); event_user(2); } } if (global.curropt == num_difficulty && instance_exists(oClient)) { oClient.syncedDifficulty--; menuDifficulty--; if(oClient.syncedDifficulty < 0){ oClient.syncedDifficulty = 3; menuDifficulty = 3; } with(oClient) event_user(0); sfx_play(sndMenuMove); event_user(2); } } // End Left if (oControl.kRight > 0 && oControl.kRightPushedSteps == 0 && oControl.kDown == 0 && oControl.kUp == 0) { if (global.shaders_compiled) { if (global.curropt == num_color) { oControl.preferredcolor++; if(oControl.preferredcolor > 17){ oControl.preferredcolor = 1; } sfx_play(sndMenuMove); event_user(2); } if (global.curropt == num_palette) { oControl.palette++; if(oControl.palette > 2){ oControl.palette = 0; } sfx_play(sndMenuMove); event_user(2); } } if (global.curropt == num_difficulty && instance_exists(oClient)) { oClient.syncedDifficulty++; menuDifficulty++; if(oClient.syncedDifficulty > 3){ oClient.syncedDifficulty = 0; menuDifficulty = 0; } with(oClient) event_user(0); sfx_play(sndMenuMove); event_user(2); } } // End Right //End Controller if (oControl.kLeft > 0 && oControl.kLeftPushedSteps == 0 || oControl.kRight > 0 && oControl.kRightPushedSteps == 0 && global.curropt < lastitem && oControl.kDown == 0 && oControl.kUp == 0) { if (global.curropt == num_censorip) oControl.censorip = !oControl.censorip; if (global.curropt == num_sequence) sequence = !sequence; if (global.curropt == num_showname) showname = !showname; //if (global.shaders_compiled) { //if (global.curropt == num_MSRfusion) oControl.msr_fusionsuit = !oControl.msr_fusionsuit; //} //if (global.curropt == num_exmonsters) oControl.mod_monstersextremecheck = !oControl.mod_monstersextremecheck; //if (global.curropt == num_IGT) oControl.mod_IGT = !oControl.mod_IGT; if (global.curropt == num_elm && instance_exists(oClient)){ oClient.elm = !oClient.elm; elm = !elm; with(oClient) event_user(1); } sfx_play(sndMenuMove); event_user(2); } var key, keyBegin; var keyBegin = (oControl.kMenu1 > 0); if(os_type != os_android){ key = keyboard_check_pressed(vk_enter); } else { key = (oControl.kMenu1 > 0); } if (key && oControl.kMenu1PushedSteps == 0 || (os_type != os_android && keyBegin && oControl.kMenu1PushedSteps == 0 && !editing)) { if (global.curropt == num_ip && os_type != os_android) { editing = !editing; op[num_ip].editing = editing; if(editing){ keyboard_string = ip; } sfx_play(sndMenuSel); event_user(2); } else if(global.curropt == num_ip && os_type == os_android){ if(!editing){ msg = get_string_async("Type in the IP Address to connect to.", ip); } editing = !editing; op[num_ip].editing = editing; } if (global.curropt == num_port && os_type != os_android) { editing = !editing; op[num_port].editing = editing; if(editing){ keyboard_string = port; } sfx_play(sndMenuSel); event_user(2); } else if(global.curropt = num_port && os_type == os_android){ if(!editing){ msg = get_integer_async("Type in the server port.", real(port)); } editing = !editing; op[num_port].editing = editing; } if (global.curropt == num_name && os_type != os_android) { editing = !editing; op[num_name].editing = editing; if(editing){ keyboard_string = name; } sfx_play(sndMenuSel); event_user(2); } else if(global.curropt == num_name && os_type == os_android){ if(!editing){ msg = get_string_async("Type in your nametag.", name); } editing = !editing; op[num_name].editing = editing; } } // if (oControl.kMenu1 && oControl.kMenu1PushedSteps == 0) if (oControl.kMenu1 && oControl.kMenu1PushedSteps == 0){ if (global.curropt == num_connection){ if(!instance_exists(oClient) && global.canConnect){ instance_create(x, y, oClient); connectiontxt = "Disconnect"; op[num_connection].label = connectiontxt; } else { with(oClient){ instance_destroy(); } connectiontxt = "Connect"; op[num_connection].label = connectiontxt; } sfx_play(sndMenuSel); event_user(2); } if (global.curropt == num_seedgen) { if(instance_exists(oClient)){ randomize(); oClient.seed = random_get_seed(); random_set_seed(oClient.seed); send_seed(); } sfx_play(sndMenuSel); } if (global.curropt == lastitem) { save_gameoptions(); view_object[0] = noone; view_yview[0] = 0; instance_create(50, 92, oOptionsMain); instance_destroy(); sfx_play(sndMenuSel); } } /* if (oControl.kMenu2 && oControl.kMenu1PushedSteps == 0) { if(instance_exists(oSS_Control)){ if(editing){ editing = !editing; } instance_destroy(); } } */ if(editing && global.curropt == num_ip && os_type != os_android){ ip = keyboard_string; op[num_ip].optext = ip; } if(editing && global.curropt == num_port && os_type != os_android){ port = keyboard_string; op[num_port].optext = port; } if(editing && global.curropt == num_name && os_type != os_android){ var keyboardLength = string_length(keyboard_string); if(keyboardLength > 15){ keyboard_string = string_copy(keyboard_string, 1, 15); } name = keyboard_string; op[num_name].optext = name; } } // if (active) if (targety != y) y += (targety - y) / 10; timer -= 1; if (timer < 0) timer = 8; if(instance_exists(oClient) && instance_exists(self) && instance_exists(connID)){ connectiontxt = "Disconnect"; op[num_connection].label = connectiontxt; } else if((!instance_exists(oClient)) && instance_exists(self) && instance_exists(connID)){ connectiontxt = "Connect"; op[num_connection].label = connectiontxt; } if(!done){ /* if(!instance_exists(oClient)){ op[num_difficulty].enabled = 0; canedit[num_difficulty] = 0; } else { if(!instance_exists(oSS_Control)){ op[num_difficulty].enabled = 1; canedit[num_difficulty] = 1; } else { op[num_difficulty].enabled = 0; canedit[num_difficulty] = 0; } } */ /* if(!instance_exists(oClient)){ op[num_seedgen].enabled = 0; canedit[num_seedgen] = 0; } else { if(!instance_exists(oSS_Control)){ op[num_seedgen].enabled = 1; canedit[num_seedgen] = 1; } else { op[num_seedgen].enabled = 0; canedit[num_seedgen] = 0; } } */ /* if(!instance_exists(oClient)){ op[num_elm].enabled = 0; canedit[num_elm] = 0; } else { if(!instance_exists(oSS_Control)){ op[num_elm].enabled = 1; canedit[num_elm] = 1; } else { op[num_elm].enabled = 0; canedit[num_elm] = 0; } } */ switch(menuDifficulty){ case 0: op[num_difficulty].optext = "Easy"; break; case 1: op[num_difficulty].optext = "Normal"; break; case 2: op[num_difficulty].optext = "Hard"; break; case 3: op[num_difficulty].optext = "Fusion"; break; } switch(elm){ case 0: op[num_elm].optext = "Disabled"; break; case 1: op[num_elm].optext = "Enabled"; break; } if(oControl.censorip && !op[num_ip].editing){ op[num_ip].optext = ""; init = 1; } if(op[num_ip].editing){ if(keyboard_check(vk_control) && keyboard_check_pressed(ord('V'))){ keyboard_string = clipboard_get_text(); } } } 1 603 7 0 0 -1 2 self 0 0 1 var ID = ds_map_find_value(async_load, "id"); if(ID == msg && global.curropt == num_ip){ if(ds_map_find_value(async_load, "status")){ var input = ds_map_find_value(async_load, "result"); if(is_string(input)){ ini_open(working_directory + "\multitroid\settings.ini"); ini_write_string("Settings", "ipaddress", input); ini_close(); ip = input; oControl.ipaddress = ip; op[num_ip].optext = ip; event_user(2); } } editing = !editing; op[num_ip].editing = editing; } if(ID == msg && global.curropt == num_port){ if(ds_map_find_value(async_load, "status")){ var input = ds_map_find_value(async_load, "value"); if(is_real(input)){ ini_open(working_directory + "\multitroid\settings.ini"); ini_write_real("Settings", "port", input); ini_close(); port = string(input); op[num_port].optext = port; event_user(2); } } editing = !editing; op[num_port].editing = editing; } if(ID == msg && global.curropt == num_name){ if(ds_map_find_value(async_load, "status")){ var input = ds_map_find_value(async_load, "result"); if(is_string(input)){ ini_open(working_directory + "\multitroid\settings.ini"); ini_write_string("Settings", "name", input); ini_close(); name = input; op[num_name].optext = name; event_user(2); } } editing = !editing; op[num_name].editing = editing; } 1 603 7 0 0 -1 2 self 0 0 1 var color = "random"; var _sequence = "synced"; var _showname = "enabled"; if(oControl.censorip){ if(init) op[num_ip].optext = ip; } else op[num_ip].optext = ip; op[num_port].optext = port; op[num_name].optext = name; switch(oControl.preferredcolor){ case 1: op[num_color].optext = "Green"; break; case 2: op[num_color].optext = "Red"; break; case 3: op[num_color].optext = "Blue"; break; case 4: op[num_color].optext = "Yellow"; break; case 5: op[num_color].optext = "Orange"; break; case 6: op[num_color].optext = "Purple"; break; case 7: op[num_color].optext = "Pink"; break; case 8: op[num_color].optext = "White"; break; case 9: op[num_color].optext = "Canary"; break; case 10: op[num_color].optext = "Red Orange"; break; case 11: op[num_color].optext = "Sky Blue"; break; case 12: op[num_color].optext = "Gold"; break; case 13: op[num_color].optext = "Porsche"; break; case 14: op[num_color].optext = "Light Purple"; break; case 15: op[num_color].optext = "Hot Pink"; break; case 16: op[num_color].optext = "Retro Green"; break; case 17: op[num_color].optext = "Random"; break; } switch(sequence){ case 0: op[num_sequence].optext = "disabled"; oControl.reactorsequence = "disabled"; break; case 1: op[num_sequence].optext = "synced"; oControl.reactorsequence = "synced"; break; } switch(showname){ case 0: op[num_showname].optext = "disabled"; oControl.showname = "disabled"; break; case 1: op[num_showname].optext = "enabled"; oControl.showname = "enabled"; break; } switch(oControl.preferredcolor){ case 1: color = "green"; break; case 2: color = "red"; break; case 3: color = "blue"; break; case 4: color = "yellow"; break; case 5: color = "orange"; break; case 6: color = "purple"; break; case 7: color = "pink"; break; case 8: color = "white"; break; case 9: color = "canary"; break; case 10: color = "red orange"; break; case 11: color = "sky blue"; break; case 12: color = "gold"; break; case 13: color = "porsche"; break; case 14: color = "light purple"; break; case 15: color = "hot pink"; break; case 16: color = "retro green"; break; case 17: color = "random"; break; } switch(sequence){ case 0: _sequence = "disabled"; break; case 1: _sequence = "synced"; break; } switch(showname){ case 0: _showname = "disabled"; break; case 1: _showname = "enabled"; break; } switch(oControl.palette){ case 0: op[num_palette].optext = "Default"; break; case 1: op[num_palette].optext = "Color"; break; case 2: op[num_palette].optext = "Custom"; break; } switch(oControl.censorip){ case 0: op[num_censorip].optext = "Disabled"; break; case 1: op[num_censorip].optext = "Enabled"; break; } ini_open(working_directory + "\multitroid\mod_settings.ini"); ini_write_string("ModSettings", "ipaddress", ip); ini_write_real("ModSettings", "port", real(port)); ini_write_string("ModSettings", "displayname", name); ini_write_string("ModSettings", "reactorsequence", _sequence); ini_write_string("ModSettings", "preferredcolor", color); ini_write_string("ModSettings", "showname", _showname); ini_write_real("ModSettings", "palette", oControl.palette); ini_write_real("ModSettings", "censorip", oControl.censorip); ini_close(); oControl.ipaddress = ip; oControl.name = name; oControl.port = real(port); 1 603 7 0 0 -1 2 self 0 0 1 done = true; for (var i = 0; i <= lastitem; i++) { with (op[i]) instance_destroy(); } with (op[50]) instance_destroy(); 1 603 7 0 0 -1 2 self 0 0 1 //This list needs to be in order. It won't work correctly otherwise. sep = 16; op[50] = instance_create(x, y, oMenuLabel); op[50].text = "Multitroid settings"; var tempcount = 1; op[num_censorip] = instance_create(x, y + sep * tempcount++, oOptionLR); op[num_censorip].label = "IP Address Censoring"; op[num_censorip].optionid = num_censorip; op[num_ip] = instance_create(x, y + sep * tempcount++, oOptionLRMod); op[num_ip].label = "IP Address"; op[num_ip].optionid = num_ip; op[num_port] = instance_create(x, y + sep * tempcount++, oOptionLRMod); op[num_port].label = "Port"; op[num_port].optionid = num_port; op[num_name] = instance_create(x, y + sep * tempcount++, oOptionLRMod); op[num_name].label = "Display name"; op[num_name].optionid = num_name; op[num_sequence] = instance_create(x, y + sep * tempcount++, oOptionLR); op[num_sequence].label = "Reactor sequence"; op[num_sequence].optionid = num_sequence; op[num_color] = instance_create(x, y + sep * tempcount++, oOptionLR); op[num_color].label = "Preferred color"; op[num_color].optionid = num_color; if(!global.shaders_compiled){ op[num_color].enabled = 0; canedit[num_color] = 0; } op[num_palette] = instance_create(x, y + sep * tempcount++, oOptionLR); op[num_palette].label = "Palette"; op[num_palette].optionid = num_palette; if(!global.shaders_compiled){ op[num_palette].enabled = 0; canedit[num_palette] = 0; } op[num_showname] = instance_create(x, y + sep * tempcount++, oOptionLR); op[num_showname].label = "Show names"; op[num_showname].optionid = num_showname; op[num_difficulty] = instance_create(x, y + sep * tempcount++, oOptionLR); op[num_difficulty].label = "Difficulty"; op[num_difficulty].optionid = num_difficulty; op[num_difficulty].enabled = 0; canedit[num_difficulty] = 0; op[num_elm] = instance_create(x, y + sep * tempcount++, oOptionLR); op[num_elm].label = "Extreme Lab Metroids"; op[num_elm].optionid = num_elm; op[num_elm].enabled = 0; canedit[num_elm] = 0; op[num_seedgen] = instance_create(x, y + sep * tempcount++, oPauseOption); op[num_seedgen].optionid = num_seedgen; op[num_seedgen].label = "Generate seed"; op[num_seedgen].enabled = 0; canedit[num_seedgen] = 0; op[num_connection] = instance_create(x, y + sep * tempcount++, oPauseOption); op[num_connection].optionid = num_connection; op[num_connection].label = connectiontxt; connID = op[num_connection].id; op[lastitem] = instance_create(x, y + sep * (lastitem + 1), oPauseOption); op[lastitem].optionid = lastitem; op[lastitem].label = get_text("GlobalOptions", "Exit"); event_user(2); 0 0 0 0.5 0.100000001490116 0 0.100000001490116 0.100000001490116 0.200000002980232 -1 0