diff --git a/objects/oClient.object.gmx b/objects/oClient.object.gmx index bc28e39..7d05253 100644 --- a/objects/oClient.object.gmx +++ b/objects/oClient.object.gmx @@ -1754,27 +1754,27 @@ if(instance_exists(self)){ switch(syncedDifficulty){ case 0: //Easy - global.difficulty = syncedDifficulty; - oControl.mod_fusion = 0; - oControl.mod_diffmult = 1; + if(global.difficulty != syncedDifficulty) global.difficulty = syncedDifficulty; + if(oControl.mod_fusion != 0) oControl.mod_fusion = 0; + if(oControl.mod_diffmult != 1) oControl.mod_diffmult = 1; break; case 1: //Normal - global.difficulty = syncedDifficulty; - oControl.mod_fusion = 0; - oControl.mod_diffmult = 1; + if(global.difficulty != syncedDifficulty) global.difficulty = syncedDifficulty; + if(oControl.mod_fusion != 0) oControl.mod_fusion = 0; + if(oControl.mod_diffmult != 1) oControl.mod_diffmult = 1; break; case 2: //Hard - global.difficulty = syncedDifficulty; - oControl.mod_fusion = 0; - oControl.mod_diffmult = 2; + if(global.difficulty != syncedDifficulty) global.difficulty = syncedDifficulty; + if(oControl.mod_fusion != 0) oControl.mod_fusion = 0; + if(oControl.mod_diffmult != 2) oControl.mod_diffmult = 2; break; case 3: //Fusion - global.difficulty = 2; - oControl.mod_fusion = 1; - oControl.mod_diffmult = 4; + if(global.difficulty != 2) global.difficulty = 2; + if(oControl.mod_fusion != 1) oControl.mod_fusion = 1; + if(oControl.mod_diffmult != 4) oControl.mod_diffmult = 4; break; } @@ -2796,6 +2796,29 @@ switch(type_event){ } pbombsTimer = 1; break; + case 29: + var syncDiff = buffer_read(_buffer, buffer_u8); + if(syncDiff != syncedDifficulty){ + syncedDifficulty = syncDiff; + var str; + switch(syncedDifficulty){ + case 0: + str = "Easy"; + break; + case 1: + str = "Normal"; + break; + case 2: + str = "Hard"; + break; + case 3: + str = "Fusion"; + break; + } + popup_text(str); + } + if(instance_exists(oOptionsMod) && oOptionsMod.menuDifficulty != syncedDifficulty) oOptionsMod.menuDifficulty = syncedDifficulty; + break; case 50: var resend = false; for(var i=0; i<array_length_1d(global.item); i++){ @@ -3349,6 +3372,43 @@ switch(type_event){ break; } } + + + + + + + + 1 + 603 + 7 + 0 + 0 + -1 + 2 + + + self + 0 + 0 + + + 1 + buffer_delete(buffer); +var size, type, alignment; +size = 1024; +type = buffer_grow; +alignment = 1; +buffer = buffer_create(size, type, alignment); +buffer_seek(buffer, buffer_seek_start, 0); +buffer_write(buffer, buffer_u8, 29); +buffer_write(buffer, buffer_u8, syncedDifficulty); +var bufferSize = buffer_tell(buffer); +buffer_seek(buffer, buffer_seek_start, 0); +buffer_write(buffer, buffer_s32, bufferSize); +buffer_write(buffer, buffer_u8, 29); +buffer_write(buffer, buffer_u8, syncedDifficulty); +var result = network_send_packet(socket, buffer, buffer_tell(buffer)); diff --git a/objects/oOptionsMod.object.gmx b/objects/oOptionsMod.object.gmx index cf169c0..c1b8c1e 100644 --- a/objects/oOptionsMod.object.gmx +++ b/objects/oOptionsMod.object.gmx @@ -25,7 +25,8 @@ 1 - global.curropt = 0; + done = false; +global.curropt = 0; var tempnumcounter = 0; /* This list dictates the order of selection in the Extras Menu. @@ -253,6 +254,7 @@ if (active) { oClient.syncedDifficulty = 3; menuDifficulty = 3; } + with(oClient) event_user(0); sfx_play(sndMenuMove); event_user(2); } @@ -281,6 +283,7 @@ if (active) { oClient.syncedDifficulty = 0; menuDifficulty = 0; } + with(oClient) event_user(0); sfx_play(sndMenuMove); event_user(2); } @@ -372,6 +375,15 @@ if (active) { 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; @@ -423,6 +435,49 @@ if(instance_exists(oClient) && instance_exists(self) && instance 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; + } + } + + 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; + } +} @@ -578,21 +633,6 @@ switch(showname){ break; } -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; -} - //if (oControl.mod_earlybaby == 1) { // op[num_baby].optext = get_text("GlobalOptions", "Enabled"); //} else op[num_baby].optext = get_text("GlobalOptions", "Disabled"); @@ -670,14 +710,6 @@ switch(showname){ break; } -if(!instance_exists(oClient)){ - op[num_difficulty].enabled = 0; - canedit[num_difficulty] = 0; -} else { - op[num_difficulty].enabled = 1; - canedit[num_difficulty] = 1; -} - ini_open(working_directory + "\mod_settings.ini"); ini_write_string("ModSettings", "ipaddress", ip); ini_write_real("ModSettings", "port", real(port)); @@ -712,7 +744,8 @@ oControl.port = real(port); 1 - for (var i = 0; i <= lastitem; i++) + done = true; +for (var i = 0; i <= lastitem; i++) { with (op[i]) instance_destroy(); } diff --git a/scripts/scr_rand_split_powerups.gml b/scripts/scr_rand_split_powerups.gml index c9cde65..ec81a44 100644 --- a/scripts/scr_rand_split_powerups.gml +++ b/scripts/scr_rand_split_powerups.gml @@ -2,14 +2,12 @@ var temp_seed = random_get_seed(); randomize(); if(instance_exists(oClient)){ if(!is_undefined(oClient.seed)){ - if(oControl.seed != oClient.seed){ - oControl.seed = oClient.seed; - random_set_seed(oControl.seed); - } - } else { - oControl.seed = random_get_seed(); + oControl.seed = oClient.seed; random_set_seed(oControl.seed); - send_seed(); + } else { + //oControl.seed = random_get_seed(); + //random_set_seed(oControl.seed); + //send_seed(); } } else { oControl.seed = random_get_seed(); diff --git a/scripts/scr_randomizer.gml b/scripts/scr_randomizer.gml index 67f9f18..277aa9e 100644 --- a/scripts/scr_randomizer.gml +++ b/scripts/scr_randomizer.gml @@ -2,14 +2,12 @@ var temp_seed = random_get_seed(); randomize(); if(instance_exists(oClient)){ if(!is_undefined(oClient.seed)){ - if(oControl.seed != oClient.seed){ - oControl.seed = oClient.seed; - random_set_seed(oControl.seed); - } - } else { - oControl.seed = random_get_seed(); + oControl.seed = oClient.seed; random_set_seed(oControl.seed); - send_seed(); + } else { + //oControl.seed = random_get_seed(); + //random_set_seed(oControl.seed); + //send_seed(); } } else { oControl.seed = random_get_seed(); diff --git a/scripts/scr_randomizer_items.gml b/scripts/scr_randomizer_items.gml index add63f8..746a477 100644 --- a/scripts/scr_randomizer_items.gml +++ b/scripts/scr_randomizer_items.gml @@ -2,14 +2,12 @@ var temp_seed = random_get_seed(); randomize(); if(instance_exists(oClient)){ if(!is_undefined(oClient.seed)){ - if(oControl.seed != oClient.seed){ - oControl.seed = oClient.seed; - random_set_seed(oControl.seed); - } - } else { - oControl.seed = random_get_seed(); + oControl.seed = oClient.seed; random_set_seed(oControl.seed); - send_seed(); + } else { + //oControl.seed = random_get_seed(); + //random_set_seed(oControl.seed); + //send_seed(); } } else { oControl.seed = random_get_seed(); diff --git a/scripts/scr_randomizer_pure.gml b/scripts/scr_randomizer_pure.gml index 4a087ff..3f83037 100644 --- a/scripts/scr_randomizer_pure.gml +++ b/scripts/scr_randomizer_pure.gml @@ -2,14 +2,12 @@ var temp_seed = random_get_seed(); randomize(); if(instance_exists(oClient)){ if(!is_undefined(oClient.seed)){ - if(oControl.seed != oClient.seed){ - oControl.seed = oClient.seed; - random_set_seed(oControl.seed); - } - } else { - oControl.seed = random_get_seed(); + oControl.seed = oClient.seed; random_set_seed(oControl.seed); - send_seed(); + } else { + //oControl.seed = random_get_seed(); + //random_set_seed(oControl.seed); + //send_seed(); } } else { oControl.seed = random_get_seed(); diff --git a/scripts/scr_randomizer_split_items.gml b/scripts/scr_randomizer_split_items.gml index 984ad39..0afa627 100644 --- a/scripts/scr_randomizer_split_items.gml +++ b/scripts/scr_randomizer_split_items.gml @@ -4,14 +4,12 @@ randomize(); if(instance_exists(oClient)){ if(!is_undefined(oClient.seed)){ - if(oControl.seed != oClient.seed){ - oControl.seed = oClient.seed; - random_set_seed(oControl.seed); - } - } else { - oControl.seed = random_get_seed(); + oControl.seed = oClient.seed; random_set_seed(oControl.seed); - send_seed(); + } else { + //oControl.seed = random_get_seed(); + //random_set_seed(oControl.seed); + //send_seed(); } } else { oControl.seed = random_get_seed(); diff --git a/scripts/send_seed.gml b/scripts/send_seed.gml index c1a23a4..37a2596 100644 --- a/scripts/send_seed.gml +++ b/scripts/send_seed.gml @@ -6,13 +6,13 @@ alignment = 1; seedBuffer = buffer_create(size, type, alignment); buffer_seek(seedBuffer, buffer_seek_start, 0); buffer_write(seedBuffer, buffer_u8, 3); -buffer_write(seedBuffer, buffer_f64, oControl.seed); +buffer_write(seedBuffer, buffer_f64, oClient.seed); buffer_write(seedBuffer, buffer_u8, global.clientID); var bufferSize = buffer_tell(seedBuffer); buffer_seek(seedBuffer, buffer_seek_start, 0); buffer_write(seedBuffer, buffer_s32, bufferSize); buffer_write(seedBuffer, buffer_u8, 3); -buffer_write(seedBuffer, buffer_f64, oControl.seed); +buffer_write(seedBuffer, buffer_f64, oClient.seed); buffer_write(seedBuffer, buffer_u8, global.clientID); var result = network_send_packet(oClient.socket, seedBuffer, buffer_tell(seedBuffer)); popup_text("Seed sent");