You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AM2R-Multitroid/objects/oOptionsMod.object.gmx

857 lines
25 KiB

<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<object>
<spriteName>&lt;undefined&gt;</spriteName>
<solid>0</solid>
<visible>-1</visible>
<depth>0</depth>
<persistent>0</persistent>
<parentName>&lt;undefined&gt;</parentName>
<maskName>&lt;undefined&gt;</maskName>
<events>
<event eventtype="0" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>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.
*/
num_ip = tempnumcounter++;
num_port = tempnumcounter++;
num_name = tempnumcounter++;
num_sequence = tempnumcounter++;
num_color = 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_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_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;
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="1" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>event_user(1);
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="1">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string></string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>active = 1;
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="3" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>
if (active) {
if (oControl.kDown &gt; 0 &amp;&amp; (oControl.kDownPushedSteps == 0 || oControl.kDownPushedSteps &gt; 30 &amp;&amp; timer == 0) &amp;&amp; !editing) {
global.curropt += 1;
if (global.curropt &gt; lastitem) global.curropt = 0;
while (canedit[global.curropt] == 0) global.curropt += 1;
if (global.curropt &gt; lastitem) global.curropt = 0;
targety = op[global.curropt].y + lastitem;
if (targety &gt; vTargetY) targety = vTargetY;
sfx_play(sndMenuMove);
global.tiptext = tip[global.curropt];
}
if (oControl.kUp &gt; 0 &amp;&amp; (oControl.kUpPushedSteps == 0 || oControl.kUpPushedSteps &gt; 30 &amp;&amp; timer == 0) &amp;&amp; !editing) {
global.curropt -= 1;
if (global.curropt &lt; 0) global.curropt = lastitem;
while (canedit[global.curropt] == 0)
{
global.curropt -= 1;
if (global.curropt &lt; 0) global.curropt = lastitem;
}
targety = op[global.curropt].y + lastitem;
if (targety &gt; vTargetY) targety = vTargetY;
sfx_play(sndMenuMove);
global.tiptext = tip[global.curropt];
}
if (oControl.kLeft &gt; 0 &amp;&amp; oControl.kLeftPushedSteps == 0 &amp;&amp; oControl.kDown == 0 &amp;&amp; oControl.kUp == 0)
{
if (global.shaders_compiled) {
if (global.curropt == num_color)
{
oControl.preferredcolor--;
if(oControl.preferredcolor &lt; 1){
oControl.preferredcolor = 9;
}
sfx_play(sndMenuMove);
event_user(2);
}
}
if (global.curropt == num_difficulty &amp;&amp; instance_exists(oClient))
{
oClient.syncedDifficulty--;
menuDifficulty--;
if(oClient.syncedDifficulty &lt; 0){
oClient.syncedDifficulty = 3;
menuDifficulty = 3;
}
with(oClient) event_user(0);
sfx_play(sndMenuMove);
event_user(2);
}
} // End Left
if (oControl.kRight &gt; 0 &amp;&amp; oControl.kRightPushedSteps == 0 &amp;&amp; oControl.kDown == 0 &amp;&amp; oControl.kUp == 0)
{
if (global.shaders_compiled) {
if (global.curropt == num_color)
{
oControl.preferredcolor++;
if(oControl.preferredcolor &gt; 9){
oControl.preferredcolor = 1;
}
sfx_play(sndMenuMove);
event_user(2);
}
}
if (global.curropt == num_difficulty &amp;&amp; instance_exists(oClient))
{
oClient.syncedDifficulty++;
menuDifficulty++;
if(oClient.syncedDifficulty &gt; 3){
oClient.syncedDifficulty = 0;
menuDifficulty = 0;
}
with(oClient) event_user(0);
sfx_play(sndMenuMove);
event_user(2);
}
} // End Right
//End Controller
if (oControl.kLeft &gt; 0 &amp;&amp; oControl.kLeftPushedSteps == 0 || oControl.kRight &gt; 0 &amp;&amp; oControl.kRightPushedSteps == 0 &amp;&amp; global.curropt &lt; lastitem &amp;&amp; oControl.kDown == 0 &amp;&amp; oControl.kUp == 0) {
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 &amp;&amp; instance_exists(oClient)){
oClient.elm = !oClient.elm;
elm = !elm;
with(oClient) event_user(1);
}
sfx_play(sndMenuMove);
event_user(2);
}
var key;
if(os_type != os_android){
key = keyboard_check_pressed(vk_enter);
} else {
key = (oControl.kMenu1 &gt; 0);
}
if (key &amp;&amp; oControl.kMenu1PushedSteps == 0) {
if (global.curropt == num_ip &amp;&amp; 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 &amp;&amp; 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 &amp;&amp; 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 &amp;&amp; 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 &amp;&amp; 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 &amp;&amp; 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 &amp;&amp; oControl.kMenu1PushedSteps == 0)
if (oControl.kMenu1 &amp;&amp; oControl.kMenu1PushedSteps == 0){
if (global.curropt == num_connection){
if(!instance_exists(oClient) &amp;&amp; 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 &amp;&amp; oControl.kMenu1PushedSteps == 0) {
if(instance_exists(oSS_Control)){
if(editing){
editing = !editing;
}
instance_destroy();
}
}
*/
if(editing &amp;&amp; global.curropt == num_ip &amp;&amp; os_type != os_android){
ip = keyboard_string;
op[num_ip].optext = ip;
}
if(editing &amp;&amp; global.curropt == num_port &amp;&amp; os_type != os_android){
port = keyboard_string;
op[num_port].optext = port;
}
if(editing &amp;&amp; global.curropt == num_name &amp;&amp; os_type != os_android){
var keyboardLength = string_length(keyboard_string);
if(keyboardLength &gt; 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 &lt; 0) timer = 8;
if(instance_exists(oClient) &amp;&amp; instance_exists(self) &amp;&amp; instance_exists(connID)){
connectiontxt = "Disconnect";
op[num_connection].label = connectiontxt;
} else if((!instance_exists(oClient)) &amp;&amp; instance_exists(self) &amp;&amp; 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;
}
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="63">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>var ID = ds_map_find_value(async_load, "id");
if(ID == msg &amp;&amp; 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 + "\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 &amp;&amp; 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 + "\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 &amp;&amp; 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 + "\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;
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="12">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>var color = "random";
var _sequence = "synced";
var _showname = "enabled";
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 = "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 = "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;
}
ini_open(working_directory + "\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_close();
oControl.ipaddress = ip;
oControl.name = name;
oControl.port = real(port);
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="11">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>done = true;
for (var i = 0; i &lt;= lastitem; i++)
{
with (op[i]) instance_destroy();
}
with (op[50]) instance_destroy();
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="10">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>//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_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_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_elm] = instance_create(x, y + sep * tempcount++, oOptionLR);
op[num_elm].label = "Extreme Lab Metroids";
op[num_elm].optionid = num_elm;
op[num_seedgen] = instance_create(x, y + sep * tempcount++, oPauseOption);
op[num_seedgen].optionid = num_seedgen;
op[num_seedgen].label = "Generate seed";
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);
</string>
</argument>
</arguments>
</action>
</event>
</events>
<PhysicsObject>0</PhysicsObject>
<PhysicsObjectSensor>0</PhysicsObjectSensor>
<PhysicsObjectShape>0</PhysicsObjectShape>
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
<PhysicsObjectGroup>0</PhysicsObjectGroup>
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
<PhysicsShapePoints/>
</object>