diff --git a/AM2R.project.gmx b/AM2R.project.gmx
index f5bada82..a375c748 100644
--- a/AM2R.project.gmx
+++ b/AM2R.project.gmx
@@ -4373,6 +4373,7 @@
+
@@ -5862,4 +5863,4 @@
0
-
\ No newline at end of file
+
diff --git a/objects/oClient.object.gmx b/objects/oClient.object.gmx
index 63c903d5..22158976 100644
--- a/objects/oClient.object.gmx
+++ b/objects/oClient.object.gmx
@@ -31,8 +31,7 @@ canSend = false;
connected = false;
queenHealthWait = false;
queenDead = false;
-seedSent = false;
-seedReceived = false;
+seed = undefined;
var type;
type = network_socket_tcp;
var file = file_text_open_read(working_directory + "\ipaddress.txt");
@@ -364,21 +363,6 @@ if(!is_undefined(oQueen.phase)){
}
}
-if(oControl.seed != 0 && !is_undefined(oControl.seed) && !seedSent){
- seedSent = true;
- 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, 3);
- buffer_write(buffer, buffer_f64, oControl.seed);
- buffer_write(buffer, buffer_u8, global.clientID);
- popup_text("Seed sent");
-}
-
if(keyboard_check_pressed(vk_f2)){
instance_destroy();
}
@@ -491,12 +475,12 @@ switch(type_event){
}
break;
case 4:
- seed = buffer_read(_buffer, buffer_f64);
+ var _seed = buffer_read(_buffer, buffer_f64);
var clientID = buffer_read(_buffer, buffer_u8);
if(clientID != global.clientID){
- if(oControl.seed != seed && !seedReceived){
- oControl.seed = seed;
- seedReceived = true;
+ if(seed != _seed){
+ seed = _seed;
+ show_debug_message("seed received");
popup_text("Seed received");
}
}
diff --git a/scripts/scr_rand_split_powerups.gml b/scripts/scr_rand_split_powerups.gml
index aafc100b..c9cde65f 100644
--- a/scripts/scr_rand_split_powerups.gml
+++ b/scripts/scr_rand_split_powerups.gml
@@ -1,15 +1,26 @@
var temp_seed = random_get_seed();
randomize();
-oControl.seed = random_get_seed();
-random_set_seed(oControl.seed);
+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();
+ random_set_seed(oControl.seed);
+ send_seed();
+ }
+} else {
+ oControl.seed = random_get_seed();
+ random_set_seed(oControl.seed);
+}
if (oControl.mod_usemanualseed == 1) {
random_set_seed(oControl.mod_seed);
oControl.seed = oControl.mod_seed;
}
-
-
var list = ds_list_create();
ds_list_add(list,0,2,3,4,5,6,7,8,9,10,11,12,13,14);
diff --git a/scripts/scr_randomizer.gml b/scripts/scr_randomizer.gml
index 0af6e3ed..67f9f189 100644
--- a/scripts/scr_randomizer.gml
+++ b/scripts/scr_randomizer.gml
@@ -1,7 +1,20 @@
var temp_seed = random_get_seed();
randomize();
-oControl.seed = random_get_seed();
-random_set_seed(oControl.seed);
+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();
+ random_set_seed(oControl.seed);
+ send_seed();
+ }
+} else {
+ oControl.seed = random_get_seed();
+ random_set_seed(oControl.seed);
+}
if (oControl.mod_usemanualseed == 1) {
random_set_seed(oControl.mod_seed);
diff --git a/scripts/scr_randomizer_items.gml b/scripts/scr_randomizer_items.gml
index 7d6b5f14..add63f84 100644
--- a/scripts/scr_randomizer_items.gml
+++ b/scripts/scr_randomizer_items.gml
@@ -1,11 +1,19 @@
var temp_seed = random_get_seed();
randomize();
-oControl.seed = random_get_seed();
-random_set_seed(oControl.seed);
-
-if (oControl.mod_usemanualseed == 1) {
- random_set_seed(oControl.mod_seed);
- oControl.seed = oControl.mod_seed;
+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();
+ random_set_seed(oControl.seed);
+ send_seed();
+ }
+} else {
+ oControl.seed = random_get_seed();
+ random_set_seed(oControl.seed);
}
var randpb = argument0;
diff --git a/scripts/scr_randomizer_pure.gml b/scripts/scr_randomizer_pure.gml
index 24ea0606..4a087ffd 100644
--- a/scripts/scr_randomizer_pure.gml
+++ b/scripts/scr_randomizer_pure.gml
@@ -1,13 +1,28 @@
var temp_seed = random_get_seed();
randomize();
-oControl.seed = random_get_seed();
-random_set_seed(oControl.seed);
+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();
+ random_set_seed(oControl.seed);
+ send_seed();
+ }
+} else {
+ oControl.seed = random_get_seed();
+ random_set_seed(oControl.seed);
+}
if (oControl.mod_usemanualseed == 1) {
random_set_seed(oControl.mod_seed);
oControl.seed = oControl.mod_seed;
}
+
+
// These lists no longer used after 1.3.3
oControl.list_bombs = ds_list_create();
ds_list_add(oControl.list_bombs,true,false);
diff --git a/scripts/scr_randomizer_split_items.gml b/scripts/scr_randomizer_split_items.gml
index 93766f31..984ad394 100644
--- a/scripts/scr_randomizer_split_items.gml
+++ b/scripts/scr_randomizer_split_items.gml
@@ -2,6 +2,22 @@
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();
+ random_set_seed(oControl.seed);
+ send_seed();
+ }
+} else {
+ oControl.seed = random_get_seed();
+ random_set_seed(oControl.seed);
+}
+
if (oControl.mod_usemanualseed == 1) { random_set_seed(oControl.mod_seed); }
oControl.list_powerbombs = ds_list_create();
diff --git a/scripts/send_seed.gml b/scripts/send_seed.gml
new file mode 100644
index 00000000..f02eb87e
--- /dev/null
+++ b/scripts/send_seed.gml
@@ -0,0 +1,12 @@
+/// send_seed
+var size, type, alignment;
+size = 1024;
+type = buffer_grow;
+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_u8, global.clientID);
+var result = network_send_packet(oClient.socket, seedBuffer, buffer_tell(seedBuffer));
+popup_text("Seed sent");
\ No newline at end of file