From 5827dccdc827151249995ff79e0cce839bbfedd0 Mon Sep 17 00:00:00 2001 From: milesthenerd Date: Tue, 19 Jan 2021 00:20:42 -0600 Subject: [PATCH] Updated array sync and working on player shadows --- .gitignore | 3 +- AM2R.project.gmx | 43 +-- datafiles/ipaddress.txt | 1 - datafiles/mod settings.ini | 3 + objects/oClient.object.gmx | 511 ++++++++++++++++++++++++++++++++++- objects/oControl.object.gmx | 6 +- scripts/load_game.gml | 1 + scripts/load_resources.gml | 38 +-- scripts/popup_text_ext.gml | 2 +- scripts/update_variables.gml | 101 ++++--- 10 files changed, 619 insertions(+), 90 deletions(-) delete mode 100644 datafiles/ipaddress.txt create mode 100644 datafiles/mod settings.ini diff --git a/.gitignore b/.gitignore index 2355942a..17a88d5e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,11 +9,12 @@ scripts/pal_swap_* *.shader \#backups exports -datafiles help.rtf datafiles/lang/* datafiles/mods/* datafiles/modifiers.ini +datafiles/readme.txt +datafiles/explanations.txt exports extensions AM2R.exe diff --git a/AM2R.project.gmx b/AM2R.project.gmx index 1878effa..b815ce46 100644 --- a/AM2R.project.gmx +++ b/AM2R.project.gmx @@ -3,8 +3,8 @@ Configs\Default - - + + czech.ini -1 @@ -158,7 +158,7 @@ languages.txt - + castellano_a1_f24_b0_c3_d19_e21.png -1 @@ -857,7 +857,7 @@ russian_a8_f19_b0_c3_d14_e16.png - + 04b09.ttf -1 @@ -1014,9 +1014,9 @@ modifiers.ini - ipaddress.txt + readme.txt -1 - 0 + 2802 2 0 @@ -1028,12 +1028,12 @@ 9223372036854775807 - ipaddress.txt + readme.txt - readme.txt + mod settings.ini -1 - 2802 + 67 2 0 @@ -1045,7 +1045,7 @@ 9223372036854775807 - readme.txt + mod settings.ini dictionary.json @@ -1064,8 +1064,8 @@ dictionary.json - - + + config.ini -1 @@ -1101,8 +1101,8 @@ titlebackground.png - - + + alpha.png -1 @@ -1274,7 +1274,7 @@ zeta_blur.png - + fusion_gravity.png -1 @@ -1377,7 +1377,7 @@ varia.png - + fusion_gravity.png -1 @@ -1481,7 +1481,7 @@ varia.png - + fusion_gravity.png -1 @@ -1585,7 +1585,7 @@ varia.png - + fusion_gravity.png -1 @@ -5078,7 +5078,12 @@ shaders\shGameBoy.shader - shaders\shPaletteSwap.shader + shaders\shd_grayscale.shader + shaders\shd_pal_swapper.shader + shaders\shd_pal_swapper_html_sprite.shader + shaders\shd_pal_swapper_html_surface.shader + shaders\shd_sepia.shader + shaders\shd_thermal.shader fonts\font0 diff --git a/datafiles/ipaddress.txt b/datafiles/ipaddress.txt deleted file mode 100644 index e56ea71e..00000000 --- a/datafiles/ipaddress.txt +++ /dev/null @@ -1 +0,0 @@ -127.0.0.1 \ No newline at end of file diff --git a/datafiles/mod settings.ini b/datafiles/mod settings.ini new file mode 100644 index 00000000..5535c07a --- /dev/null +++ b/datafiles/mod settings.ini @@ -0,0 +1,3 @@ +[ModSettings] +ipaddress = 10.220.1.3 +displayname = milesthenerd diff --git a/objects/oClient.object.gmx b/objects/oClient.object.gmx index ab81aa62..451b7438 100644 --- a/objects/oClient.object.gmx +++ b/objects/oClient.object.gmx @@ -28,16 +28,22 @@ network_set_config(network_config_connect_timeout, 5000); strict_init("dictionary.json"); canSend = false; +metroidCountChanged = false; +itemChanged = false; +metdeadChanged = false; +eventChanged = false; connected = false; queenHealthWait = false; queenDead = false; +drawUpdate = false; phase = 0; seed = undefined; var type; type = network_socket_tcp; -var file = file_text_open_read(working_directory + "\ipaddress.txt"); -ipaddress = file_text_read_string(file); -file_text_close(file); +ini_open(working_directory + "\mod settings.ini"); +ipaddress = ini_read_string("ModSettings", "ipaddress", "127.0.0.1"); +name = ini_read_string("ModSettings", "displayname", "name"); +ini_close(); port = 64198; socket = network_create_socket(type); isConnected = network_connect(socket, ipaddress, port); @@ -51,15 +57,31 @@ buffer = buffer_create(size, type, alignment); global.queenhealthPrev = 600; global.queenphasePrev = 0; +if(instance_exists(oCharacter)){ + global.prevX = oCharacter.x; + global.prevY = oCharacter.y; + global.prevSprite = oCharacter.sprite_index; + global.prevIndex = oCharacter.image_index; +} +global.roomPrev = room; + global.clientID = 0; global.packetID = 0; global.receivedPacketID = 0; global.onlineList = ds_grid_create(3, 35); global.onlineSend = ds_grid_create(3, 35); +global.onlineItem = ds_grid_create(1, 1); +global.onlineMetdead = ds_grid_create(1, 1); +global.onlineEvent = ds_grid_create(1, 1); global.onlineReceived = ds_grid_create(3, 35); -global.storedBuffers = ds_grid_create(2, 1); +//global.storedBuffers = ds_grid_create(2, 1); global.receivedPacketIDs = ds_list_create(); +roomList = ds_list_create(); +roomListData = ds_list_create(); ds_grid_clear(global.onlineSend, -1); +ds_grid_clear(global.onlineItem, -1); +ds_grid_clear(global.onlineMetdead, -1); +ds_grid_clear(global.onlineEvent, -1); ds_grid_clear(global.onlineReceived, -1); for(var i=0; i<ds_grid_height(global.onlineList); i++){ ds_grid_set(global.onlineList, 2, i, i); @@ -95,11 +117,247 @@ buffer_delete(buffer); ds_grid_destroy(global.onlineList); ds_grid_destroy(global.onlineSend); ds_grid_destroy(global.onlineReceived); -ds_grid_destroy(global.storedBuffers); +//ds_grid_destroy(global.storedBuffers); +ds_grid_destroy(global.onlineItem); +ds_grid_destroy(global.onlineMetdead); +ds_grid_destroy(global.onlineEvent); ds_list_destroy(global.receivedPacketIDs); +ds_list_destroy(roomList); +ds_list_destroy(roomListData); if(connected){ popup_text("Disconnected"); } + + + + + + + + 1 + 603 + 7 + 0 + 0 + -1 + 2 + + + self + 0 + 0 + + + 1 + var v = 0; +for(var f=0; f<array_length_1d(global.event); f++){ + if(global.eventPrev[f] != global.event[f]){ + global.eventChanges[v, 0] = global.event[f]; + global.eventChanges[v, 1] = f; + global.onlineEvent[# 0, 0] = global.eventChanges; + show_debug_message(string(global.eventPrev[f]) + " " + string(global.event[f])); + show_debug_message("event changed"); + eventChanged = true; + v++; + } +} + +if(eventChanged){ + 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, 8); + buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(global.onlineEvent))); + buffer_write(buffer, buffer_u8, global.clientID); + var result = network_send_packet(socket, buffer, buffer_tell(buffer)); +} + +if(!eventChanged){ + alarm[5] = 30; +} + +if(eventChanged){ + eventChanged = false; + alarm[5] = 75; +} + + + + + + + + 1 + 603 + 7 + 0 + 0 + -1 + 2 + + + self + 0 + 0 + + + 1 + var v = 0; +for(var f=0; f<array_length_1d(global.metdead); f++){ + if(global.metdeadPrev[f] != global.metdead[f]){ + global.metdeadChanges[v, 0] = global.metdead[f]; + global.metdeadChanges[v, 1] = f; + global.onlineMetdead[# 0, 0] = global.metdeadChanges; + show_debug_message(string(global.metdeadPrev[f]) + " " + string(global.metdead[f])); + show_debug_message("metdead changed"); + metdeadChanged = true; + v++; + } +} + +if(metdeadChanged){ + 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, 7); + buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(global.onlineMetdead))); + buffer_write(buffer, buffer_u8, global.clientID); + var result = network_send_packet(socket, buffer, buffer_tell(buffer)); +} + +if(!metdeadChanged){ + alarm[4] = 30; +} + +if(metdeadChanged){ + metdeadChanged = false; + alarm[4] = 75; +} + + + + + + + + 1 + 603 + 7 + 0 + 0 + -1 + 2 + + + self + 0 + 0 + + + 1 + var v = 0; +for(var f=0; f<array_length_1d(global.item); f++){ + if(global.itemPrev[f] != global.item[f]){ + global.itemChanges[v, 0] = global.item[f]; + global.itemChanges[v, 1] = f; + global.onlineItem[# 0, 0] = global.itemChanges; + show_debug_message(string(global.itemPrev[f]) + " " + string(global.item[f])); + show_debug_message("item changed"); + itemChanged = true; + v++; + } +} + +if(itemChanged){ + 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, 6); + buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(global.onlineItem))); + buffer_write(buffer, buffer_u8, global.clientID); + var result = network_send_packet(socket, buffer, buffer_tell(buffer)); +} + +if(!itemChanged){ + alarm[3] = 30; +} + +if(itemChanged){ + itemChanged = false; + alarm[3] = 75; +} + + + + + + + + 1 + 603 + 7 + 0 + 0 + -1 + 2 + + + self + 0 + 0 + + + 1 + if(global.monstersleftPrev != global.monstersleft){ + 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, 4); + buffer_write(buffer, buffer_s8, global.monstersleft); + buffer_write(buffer, buffer_u8, global.clientID); + var result = network_send_packet(socket, buffer, buffer_tell(buffer)); + metroidCountChanged = true; +} + +if(global.monstersareaPrev != global.monstersarea){ + 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, 5); + buffer_write(buffer, buffer_s8, global.monstersarea); + buffer_write(buffer, buffer_u8, global.clientID); + var result = network_send_packet(socket, buffer, buffer_tell(buffer)); + metroidCountChanged = true; +} + +if(!metroidCountChanged){ + alarm[2] = 30; +} + +if(metroidCountChanged){ + metroidCountChanged = false; + alarm[2] = 75; +} @@ -168,7 +426,8 @@ for(var i=0; i<ds_grid_height(global.onlineList); i++){ canSend = true; alarm[0] = 600; } - + + /* if(i == 0){ var v = 0; var itemPrev = global.onlineList[# 0, 0]; @@ -225,6 +484,8 @@ for(var i=0; i<ds_grid_height(global.onlineList); i++){ } } } + */ + } if(canSend){ @@ -239,12 +500,12 @@ if(canSend){ buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(global.onlineSend))); buffer_write(buffer, buffer_u8, global.clientID); buffer_write(buffer, buffer_u32, global.packetID); - global.storedBuffers[# 0, global.packetID] = global.onlineSend; - global.storedBuffers[# 1, global.packetID] = global.clientID; + //global.storedBuffers[# 0, global.packetID] = global.onlineSend; + //global.storedBuffers[# 1, global.packetID] = global.clientID; var result = network_send_packet(socket, buffer, buffer_tell(buffer)); show_debug_message("packetID = " + string(global.packetID)); global.packetID++; - ds_grid_resize(global.storedBuffers, 2, global.packetID + 1); + //ds_grid_resize(global.storedBuffers, 2, global.packetID + 1); ds_grid_clear(global.onlineSend, -1); } @@ -319,6 +580,10 @@ if(instance_exists(oQueenHead) && !is_undefined(oQueenHead.myhealth) &am buffer_write(buffer, buffer_u8, 1); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); alarm[0] = 5; + alarm[2] = 5; + alarm[3] = 5; + alarm[4] = 5; + alarm[5] = 5; } else { instance_destroy(); popup_text("Failed to connect"); @@ -376,6 +641,43 @@ if(instance_exists(oQueen) && !is_undefined(oQueen.phase)){ } } +if(connected){ + if(instance_exists(oCharacter)){ + if(oCharacter.x != global.prevX || oCharacter.y != global.prevY || global.roomPrev != room || global.prevSprite != oCharacter.sprite_index || global.prevIndex != oCharacter.image_index){ + if(global.prevX != oCharacter.x){ + global.prevX = oCharacter.x; + } + if(global.prevY != oCharacter.y){ + global.prevY = oCharacter.y; + } + if(global.roomPrev != room){ + global.roomPrev = room; + } + if(global.prevSprite != oCharacter.sprite_index){ + global.prevSprite = oCharacter.sprite_index; + } + if(global.prevIndex != oCharacter.image_index){ + global.prevIndex = oCharacter.image_index; + } + 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, 100); + buffer_write(buffer, buffer_u8, global.clientID); + buffer_write(buffer, buffer_s16, oCharacter.x); + buffer_write(buffer, buffer_s16, oCharacter.y); + buffer_write(buffer, buffer_s16, oCharacter.sprite_index); + buffer_write(buffer, buffer_s16, oCharacter.image_index); + buffer_write(buffer, buffer_s16, room); + var result = network_send_packet(socket, buffer, buffer_tell(buffer)); + } + } +} + if(keyboard_check_pressed(vk_f2)){ instance_destroy(); } @@ -415,6 +717,42 @@ switch(type_event){ buffer_seek(_buffer, buffer_seek_start, 0); msgid = buffer_read(_buffer, buffer_u8); switch(msgid){ + case 100: + var clientID = buffer_read(_buffer, buffer_u8); + var clientX = buffer_read(_buffer, buffer_s16); + var clientY = buffer_read(_buffer, buffer_s16); + var clientSprite = buffer_read(_buffer, buffer_s16); + var clientImage = buffer_read(_buffer, buffer_s16); + var clientRoom = buffer_read(_buffer, buffer_s16); + var findsocket = ds_list_find_index(roomList, clientID); + if(global.clientID != clientID){ + if(findsocket < 0){ + if(clientRoom == room){ + ds_list_add(roomList, clientID); + var arr; + arr[0] = clientID; + arr[1] = clientX; + arr[2] = clientY; + arr[3] = clientSprite; + arr[4] = clientImage; + arr[5] = clientRoom; + ds_list_add(roomListData, arr); + } + } else { + if(clientRoom != room){ + var indexValue = ds_list_find_value(roomList, findsocket); + ds_list_delete(roomList, findsocket); + for(var i=0; i<ds_list_size(roomListData); i++){ + var arrList = roomListData[| i]; + if(arrList[0] == indexValue){ + ds_list_delete(roomListData, i); + } + } + } + } + } + drawUpdate = true; + break; case 0: global.clientID = buffer_read(_buffer, buffer_u8); break; @@ -438,9 +776,9 @@ switch(type_event){ global.receivedClientID = buffer_read(_buffer, buffer_u8); update_variables("disablesame"); update_variables("updateprev"); - global.itemChanges = 0; - global.metdeadChanges = 0; - global.eventChanges = 0; + //global.itemChanges = 0; + //global.metdeadChanges = 0; + //global.eventChanges = 0; alarm[0] = 30; ds_grid_clear(global.onlineReceived, -1); break; @@ -492,10 +830,113 @@ switch(type_event){ } } break; + case 5: + var monstersLeft = buffer_read(_buffer, buffer_s8); + var clientID = buffer_read(_buffer, buffer_u8); + show_debug_message("metroidsleft received " + string(monstersLeft)); + if(global.clientID != clientID && global.monstersleft != monstersLeft){ + global.monstersleft = monstersLeft; + global.monstersleftPrev = global.monstersleft; + } else if(global.clientID == clientID){ + global.monstersleftPrev = global.monstersleft; + } + alarm[2] = 30; + break; + case 6: + var monstersArea = buffer_read(_buffer, buffer_s8); + var clientID = buffer_read(_buffer, buffer_u8); + show_debug_message("metroidsarea received " + string(monstersArea)); + if(global.clientID != clientID && global.monstersarea != monstersArea){ + global.monstersarea = monstersArea; + global.monstersareaPrev = global.monstersarea; + } else if(global.clientID == clientID){ + global.monstersareaPrev = global.monstersarea; + } + alarm[2] = 30; + break; + case 7: + var item = ds_grid_create(1, 1); + ds_grid_read(item, strict_decompress(buffer_read(_buffer, buffer_string))); + var clientID = buffer_read(_buffer, buffer_u8); + var itemArr = item[# 0, 0]; + show_debug_message(itemArr); + if(is_array(itemArr)){ + for(var i=0; i<array_length_1d(global.item); i++){ + for(var f=0; f<array_height_2d(itemArr); f++){ + if(i == itemArr[f, 1]){ + global.itemPrev[i] = itemArr[f, 0]; + show_debug_message("item prev index " + string(i) + " changed"); + if(global.item[i] != itemArr[f, 0]){ + global.item[i] = itemArr[f, 0]; + show_debug_message("item current index " + string(i) + " changed"); + } + } + } + } + } + alarm[3] = 30; + if(global.clientID == clientID){ + ds_grid_clear(global.onlineItem, -1); + global.itemChanges = 0; + } + ds_grid_destroy(item); + break; + case 8: + var metdead = ds_grid_create(1, 1); + ds_grid_read(metdead, strict_decompress(buffer_read(_buffer, buffer_string))); + var clientID = buffer_read(_buffer, buffer_u8); + var metdeadArr = metdead[# 0, 0]; + show_debug_message(metdeadArr); + if(is_array(metdeadArr)){ + for(var i=0; i<array_length_1d(global.metdead); i++){ + for(var f=0; f<array_height_2d(metdeadArr); f++){ + if(i == metdeadArr[f, 1]){ + global.metdeadPrev[i] = metdeadArr[f, 0]; + show_debug_message("metdead prev index " + string(i) + " changed"); + if(global.metdead[i] != metdeadArr[f, 0]){ + global.metdead[i] = metdeadArr[f, 0]; + show_debug_message("metdead current index " + string(i) + " changed"); + } + } + } + } + } + alarm[4] = 30; + if(global.clientID == clientID){ + ds_grid_clear(global.onlineMetdead, -1); + global.metdeadChanges = 0; + } + ds_grid_destroy(metdead); + break; + case 9: + var event = ds_grid_create(1, 1); + ds_grid_read(event, strict_decompress(buffer_read(_buffer, buffer_string))); + var clientID = buffer_read(_buffer, buffer_u8); + var eventArr = event[# 0, 0]; + show_debug_message(eventArr); + if(is_array(eventArr)){ + for(var i=0; i<array_length_1d(global.event); i++){ + for(var f=0; f<array_height_2d(eventArr); f++){ + if(i == eventArr[f, 1]){ + global.eventPrev[i] = eventArr[f, 0]; + show_debug_message("event prev index " + string(i) + " changed"); + if(global.event[i] != eventArr[f, 0]){ + global.event[i] = eventArr[f, 0]; + show_debug_message("event current index " + string(i) + " changed"); + } + } + } + } + } + alarm[5] = 30; + if(global.clientID == clientID){ + ds_grid_clear(global.onlineEvent, -1); + global.eventChanges = 0; + } + ds_grid_destroy(event); + break; } } - - @@ -523,8 +964,48 @@ buffer_delete(buffer); ds_grid_destroy(global.onlineList); ds_grid_destroy(global.onlineSend); ds_grid_destroy(global.onlineReceived); -ds_grid_destroy(global.storedBuffers); +//ds_grid_destroy(global.storedBuffers); +ds_grid_destroy(global.onlineItem); +ds_grid_destroy(global.onlineMetdead); +ds_grid_destroy(global.onlineEvent); ds_list_destroy(global.receivedPacketIDs); +ds_list_destroy(roomList); +ds_list_destroy(roomListData); + + + + + + + + 1 + 603 + 7 + 0 + 0 + -1 + 2 + + + self + 0 + 0 + + + 1 + if(ds_list_size(roomListData) > 0){ + for(var i=0; i<ds_list_size(roomListData); i++){ + var arrDraw = roomListData[| i]; + var arrX = arrDraw[1]; + var arrY = arrDraw[2]; + var arrSprite = arrDraw[3]; + var arrImage = arrDraw[4]; + var arrRoom = arrDraw[5]; + if(arrRoom == room && instance_exists(oCharacter)){ + draw_sprite_ext(arrSprite, arrImage, arrX, arrY, 1, 1, direction, c_black, image_alpha); + } + } +} diff --git a/objects/oControl.object.gmx b/objects/oControl.object.gmx index 7c7eeb0f..74814a14 100644 --- a/objects/oControl.object.gmx +++ b/objects/oControl.object.gmx @@ -365,7 +365,7 @@ seed = 0; mod_IGT = 0; // Really? -pal_swap_init_system(shPaletteSwap); +pal_swap_init_system(shd_pal_swapper); // 1.5.1 // This does nothing now, I just didn't want to change all instances of this back to 0. @@ -859,7 +859,7 @@ seed = 0; mod_IGT = 0; // Really? -pal_swap_init_system(shPaletteSwap); +pal_swap_init_system(shd_pal_swapper); // 1.5.1 // This does nothing now, I just didn't want to change all instances of this back to 0. @@ -1735,7 +1735,7 @@ if (!file_exists("save1") && !file_exists("save2") && !file_exis global.shaders_compiled = false; if (shaders_are_supported()) { - if (shader_is_compiled(shGameBoy) && shader_is_compiled(shPaletteSwap)) { + if (shader_is_compiled(shGameBoy) && shader_is_compiled(shd_pal_swapper)) { global.shaders_compiled = true; } } diff --git a/scripts/load_game.gml b/scripts/load_game.gml index 09868960..4ed425b4 100644 --- a/scripts/load_game.gml +++ b/scripts/load_game.gml @@ -8,3 +8,4 @@ if (global.event[176] == 1 || global.metdead[23] == 1 || global.metdead[24] == 1 if (file_exists(working_directory + "\swap.ini")) file_delete(working_directory + "\swap.ini"); + diff --git a/scripts/load_resources.gml b/scripts/load_resources.gml index a9f3ab87..cd97838a 100644 --- a/scripts/load_resources.gml +++ b/scripts/load_resources.gml @@ -269,22 +269,22 @@ ini_open("mods/palettes/monsters/config.ini"); MonsterPalettesFusionOnly = ini_read_real('PaletteMode', 'FusionOnly', 1); ini_close(); -AlphaPalette = -1; -GammaPalette = -1; -ZetaPalette = -1; -OmegaPalette = -1; -QueenPalette = -1; -ZetaBlur = -1; -QueenDead = -1; -QueenBloodDrop = -1; -QueenBloodParticle = -1; - -if (file_exists("mods/palettes/monsters/alpha.png")) AlphaPalette = sprite_add("mods/palettes/monsters/alpha.png", 1, false, false, 0, 0); -if (file_exists("mods/palettes/monsters/gamma.png")) GammaPalette = sprite_add("mods/palettes/monsters/gamma.png", 1, false, false, 0, 0); -if (file_exists("mods/palettes/monsters/zeta.png")) ZetaPalette = sprite_add("mods/palettes/monsters/zeta.png", 1, false, false, 0, 0); -if (file_exists("mods/palettes/monsters/omega.png")) OmegaPalette = sprite_add("mods/palettes/monsters/omega.png", 1, false, false, 0, 0); -if (file_exists("mods/palettes/monsters/queen.png")) QueenPalette = sprite_add("mods/palettes/monsters/queen.png", 1, false, false, 0, 0); -if (file_exists("mods/palettes/monsters/zeta_blur.png")) ZetaBlur = sprite_add("mods/palettes/monsters/zeta_blur.png", 1, false, false, sprite_get_xoffset(sMZetaBlur), sprite_get_yoffset(sMZetaBlur)); -if (file_exists("mods/palettes/monsters/queen_dead.png")) QueenDead = background_add("mods/palettes/monsters/queen_dead.png", false, false); -if (file_exists("mods/palettes/monsters/queen_blood_drop.png")) QueenBloodDrop = sprite_add("mods/palettes/monsters/queen_blood_drop.png", sprite_get_number(sQueenBloodDrop), false, false, sprite_get_xoffset(sQueenBloodDrop), sprite_get_yoffset(sQueenBloodDrop)); -if (file_exists("mods/palettes/monsters/queen_blood_particle.png")) QueenBloodParticle = sprite_add("mods/palettes/monsters/queen_blood_particle.png", sprite_get_number(sQueenBloodParticle), false, false, sprite_get_xoffset(sQueenBloodParticle), sprite_get_yoffset(sQueenBloodParticle)); +oControl.AlphaPalette = -1; +oControl.GammaPalette = -1; +oControl.ZetaPalette = -1; +oControl.OmegaPalette = -1; +oControl.QueenPalette = -1; +oControl.ZetaBlur = -1; +oControl.QueenDead = -1; +oControl.QueenBloodDrop = -1; +oControl.QueenBloodParticle = -1; + +if (file_exists("mods/palettes/monsters/alpha.png")) oControl.AlphaPalette = sprite_add("mods/palettes/monsters/alpha.png", 1, false, false, 0, 0); +if (file_exists("mods/palettes/monsters/gamma.png")) oControl.GammaPalette = sprite_add("mods/palettes/monsters/gamma.png", 1, false, false, 0, 0); +if (file_exists("mods/palettes/monsters/zeta.png")) oControl.ZetaPalette = sprite_add("mods/palettes/monsters/zeta.png", 1, false, false, 0, 0); +if (file_exists("mods/palettes/monsters/omega.png")) oControl.OmegaPalette = sprite_add("mods/palettes/monsters/omega.png", 1, false, false, 0, 0); +if (file_exists("mods/palettes/monsters/queen.png")) oControl.QueenPalette = sprite_add("mods/palettes/monsters/queen.png", 1, false, false, 0, 0); +if (file_exists("mods/palettes/monsters/zeta_blur.png")) oControl.ZetaBlur = sprite_add("mods/palettes/monsters/zeta_blur.png", 1, false, false, sprite_get_xoffset(sMZetaBlur), sprite_get_yoffset(sMZetaBlur)); +if (file_exists("mods/palettes/monsters/queen_dead.png")) oControl.QueenDead = background_add("mods/palettes/monsters/queen_dead.png", false, false); +if (file_exists("mods/palettes/monsters/queen_blood_drop.png")) oControl.QueenBloodDrop = sprite_add("mods/palettes/monsters/queen_blood_drop.png", sprite_get_number(sQueenBloodDrop), false, false, sprite_get_xoffset(sQueenBloodDrop), sprite_get_yoffset(sQueenBloodDrop)); +if (file_exists("mods/palettes/monsters/queen_blood_particle.png")) oControl.QueenBloodParticle = sprite_add("mods/palettes/monsters/queen_blood_particle.png", sprite_get_number(sQueenBloodParticle), false, false, sprite_get_xoffset(sQueenBloodParticle), sprite_get_yoffset(sQueenBloodParticle)); diff --git a/scripts/popup_text_ext.gml b/scripts/popup_text_ext.gml index db8536a2..7c6c7c3c 100644 --- a/scripts/popup_text_ext.gml +++ b/scripts/popup_text_ext.gml @@ -2,4 +2,4 @@ with (oPopupText) instance_destroy(); var t = instance_create(0, 0, oPopupText); t.text = argument0; -t.alarm[0] = argument1; \ No newline at end of file +t.alarm[0] = argument1; diff --git a/scripts/update_variables.gml b/scripts/update_variables.gml index bd935084..f7a928e1 100644 --- a/scripts/update_variables.gml +++ b/scripts/update_variables.gml @@ -116,6 +116,8 @@ switch(argument0){ if(global.morphballPrev != global.morphball){ global.morphballPrev = global.morphball; } + } else if(global.onlineReceived[# 2, i] == 10 && global.receivedClientID == global.clientID){ + global.morphballPrev = global.morphball; } if(global.onlineReceived[# 2, i] == 11 && global.receivedClientID != global.clientID){ @@ -123,91 +125,117 @@ switch(argument0){ if(global.jumpballPrev != global.jumpball){ global.jumpballPrev = global.jumpball; } - } + } else if(global.onlineReceived[# 2, i] == 11 && global.receivedClientID == global.clientID){ + global.jumpballPrev = global.jumpball; + } if(global.onlineReceived[# 2, i] == 12 && global.receivedClientID != global.clientID){ global.powergrip = global.onlineReceived[# 1, i]; if(global.powergripPrev != global.powergrip){ global.powergripPrev = global.powergrip; } - } + } else if(global.onlineReceived[# 2, i] == 12 && global.receivedClientID == global.clientID){ + global.powergripPrev = global.powergrip; + } if(global.onlineReceived[# 2, i] == 13 && global.receivedClientID != global.clientID){ global.spacejump = global.onlineReceived[# 1, i]; if(global.spacejumpPrev != global.spacejump){ global.spacejumpPrev = global.spacejump; } - } + } else if(global.onlineReceived[# 2, i] == 13 && global.receivedClientID == global.clientID){ + global.spacejumpPrev = global.spacejump; + } if(global.onlineReceived[# 2, i] == 14 && global.receivedClientID != global.clientID){ global.screwattack = global.onlineReceived[# 1, i]; if(global.screwattackPrev != global.screwattack){ global.screwattackPrev = global.screwattack; } - } + } else if(global.onlineReceived[# 2, i] == 14 && global.receivedClientID == global.clientID){ + global.screwattackPrev = global.screwattack; + } if(global.onlineReceived[# 2, i] == 15 && global.receivedClientID != global.clientID){ global.hijump = global.onlineReceived[# 1, i]; if(global.hijumpPrev != global.hijump){ global.hijumpPrev = global.hijump; } - } + } else if(global.onlineReceived[# 2, i] == 15 && global.receivedClientID == global.clientID){ + global.hijumpPrev = global.hijump; + } if(global.onlineReceived[# 2, i] == 16 && global.receivedClientID != global.clientID){ global.spiderball = global.onlineReceived[# 1, i]; if(global.spiderballPrev != global.spiderball){ global.spiderballPrev = global.spiderball; } - } + } else if(global.onlineReceived[# 2, i] == 16 && global.receivedClientID == global.clientID){ + global.spiderballPrev = global.spiderball; + } if(global.onlineReceived[# 2, i] == 17 && global.receivedClientID != global.clientID){ global.speedbooster = global.onlineReceived[# 1, i]; if(global.speedboosterPrev != global.speedbooster){ global.speedboosterPrev = global.speedbooster; } - } + } else if(global.onlineReceived[# 2, i] == 17 && global.receivedClientID == global.clientID){ + global.speedboosterPrev = global.speedbooster; + } if(global.onlineReceived[# 2, i] == 18 && global.receivedClientID != global.clientID){ global.bomb = global.onlineReceived[# 1, i]; if(global.bombPrev != global.bomb){ global.bombPrev = global.bomb; } - } + } else if(global.onlineReceived[# 2, i] == 18 && global.receivedClientID == global.clientID){ + global.bombPrev = global.bomb; + } if(global.onlineReceived[# 2, i] == 19 && global.receivedClientID != global.clientID){ global.ibeam = global.onlineReceived[# 1, i]; if(global.ibeamPrev != global.ibeam){ global.ibeamPrev = global.ibeam; } - } + } else if(global.onlineReceived[# 2, i] == 19 && global.receivedClientID == global.clientID){ + global.ibeamPrev = global.ibeam; + } if(global.onlineReceived[# 2, i] == 20 && global.receivedClientID != global.clientID){ global.wbeam = global.onlineReceived[# 1, i]; if(global.wbeamPrev != global.wbeam){ global.wbeamPrev = global.wbeam; } - } + } else if(global.onlineReceived[# 2, i] == 20 && global.receivedClientID == global.clientID){ + global.wbeamPrev = global.wbeam; + } if(global.onlineReceived[# 2, i] == 21 && global.receivedClientID != global.clientID){ global.pbeam = global.onlineReceived[# 1, i]; if(global.pbeamPrev != global.pbeam){ global.pbeamPrev = global.pbeam; } - } + } else if(global.onlineReceived[# 2, i] == 21 && global.receivedClientID == global.clientID){ + global.pbeamPrev = global.pbeam; + } if(global.onlineReceived[# 2, i] == 22 && global.receivedClientID != global.clientID){ global.sbeam = global.onlineReceived[# 1, i]; if(global.sbeamPrev != global.sbeam){ global.sbeamPrev = global.sbeam; } - } + } else if(global.onlineReceived[# 2, i] == 22 && global.receivedClientID == global.clientID){ + global.sbeamPrev = global.sbeam; + } if(global.onlineReceived[# 2, i] == 23 && global.receivedClientID != global.clientID){ global.cbeam = global.onlineReceived[# 1, i]; if(global.cbeamPrev != global.cbeam){ global.cbeamPrev = global.cbeam; } - } + } else if(global.onlineReceived[# 2, i] == 23 && global.receivedClientID == global.clientID){ + global.cbeamPrev = global.cbeam; + } if(global.onlineReceived[# 2, i] == 26 && global.receivedClientID != global.clientID){ global.pbombs = global.onlineReceived[# 1, i]; @@ -266,16 +294,16 @@ switch(argument0){ } break; case "onlinevars": - ds_grid_set(global.onlineList, 0, 0, global.itemPrev); - ds_grid_set(global.onlineList, 1, 0, global.item); - ds_grid_set(global.onlineList, 0, 1, global.metdeadPrev); - ds_grid_set(global.onlineList, 1, 1, global.metdead); + //ds_grid_set(global.onlineList, 0, 0, global.itemPrev); + //ds_grid_set(global.onlineList, 1, 0, global.item); + //ds_grid_set(global.onlineList, 0, 1, global.metdeadPrev); + //ds_grid_set(global.onlineList, 1, 1, global.metdead); ds_grid_set(global.onlineList, 0, 2, global.itemstakenPrev); ds_grid_set(global.onlineList, 1, 2, global.itemstaken); - ds_grid_set(global.onlineList, 0, 3, global.eventPrev); - ds_grid_set(global.onlineList, 1, 3, global.event); - ds_grid_set(global.onlineList, 0, 4, global.monstersleftPrev); - ds_grid_set(global.onlineList, 1, 4, global.monstersleft); + //ds_grid_set(global.onlineList, 0, 3, global.eventPrev); + //ds_grid_set(global.onlineList, 1, 3, global.event); + //ds_grid_set(global.onlineList, 0, 4, global.monstersleftPrev); + //ds_grid_set(global.onlineList, 1, 4, global.monstersleft); ds_grid_set(global.onlineList, 0, 5, global.maxmissilesPrev); ds_grid_set(global.onlineList, 1, 5, global.maxmissiles); ds_grid_set(global.onlineList, 0, 6, global.maxsmissilesPrev); @@ -330,17 +358,17 @@ switch(argument0){ ds_grid_set(global.onlineList, 1, 30, global.ptanks); ds_grid_set(global.onlineList, 0, 31, global.currentsuitPrev); ds_grid_set(global.onlineList, 1, 31, global.currentsuit); - ds_grid_set(global.onlineList, 0, 32, global.monstersareaPrev); - ds_grid_set(global.onlineList, 1, 32, global.monstersarea); + //ds_grid_set(global.onlineList, 0, 32, global.monstersareaPrev); + //ds_grid_set(global.onlineList, 1, 32, global.monstersarea); ds_grid_set(global.onlineList, 0, 33, global.lavastatePrev); ds_grid_set(global.onlineList, 1, 33, global.lavastate); break; case "replaceglobalvars": - global.item = ds_grid_get(global.onlineList, 1, 0); - global.metdead = ds_grid_get(global.onlineList, 1, 1); + //global.item = ds_grid_get(global.onlineList, 1, 0); + //global.metdead = ds_grid_get(global.onlineList, 1, 1); global.itemstaken = ds_grid_get(global.onlineList, 1, 2); - global.event = ds_grid_get(global.onlineList, 1, 3); - global.monstersleft = ds_grid_get(global.onlineList, 1, 4); + //global.event = ds_grid_get(global.onlineList, 1, 3); + //global.monstersleft = ds_grid_get(global.onlineList, 1, 4); global.maxmissiles = ds_grid_get(global.onlineList, 1, 5); global.maxsmissiles = ds_grid_get(global.onlineList, 1, 6); global.maxpbombs = ds_grid_get(global.onlineList, 1, 7); @@ -368,7 +396,7 @@ switch(argument0){ global.stanks = ds_grid_get(global.onlineList, 1, 29); global.ptanks = ds_grid_get(global.onlineList, 1, 30); global.currentsuit = ds_grid_get(global.onlineList, 1, 31); - global.monstersarea = ds_grid_get(global.onlineList, 1, 32); + //global.monstersarea = ds_grid_get(global.onlineList, 1, 32); global.lavastate = ds_grid_get(global.onlineList, 1, 33); break; case "disablesame": @@ -377,6 +405,7 @@ switch(argument0){ global.onlineList[# 1, i] = global.onlineReceived[# 1, i]; } + /* if((i == 0 || i == 1 || i == 3) && (is_array(global.onlineReceived[# 1, i]))){ var arrList = global.onlineList[# 1, i]; var arrSend = global.onlineReceived[# 1, i]; @@ -410,13 +439,18 @@ switch(argument0){ } } } + */ + + /* if(i == 4){ if(global.onlineReceived[# 2, i] != -1 && global.receivedClientID != global.clientID){ global.monstersleft = global.onlineReceived[# 1, 4]; if(global.monstersleftPrev != global.monstersleft){ global.monstersleftPrev = global.monstersleft; } - } + } else if(global.onlineReceived[# 2, i] != -1 && global.receivedClientID == global.clientID){ + global.monstersleftPrev = global.monstersleft; + } } if(i == 32){ if(global.onlineReceived[# 2, i] != -1 && global.receivedClientID != global.clientID){ @@ -424,15 +458,20 @@ switch(argument0){ if(global.monstersareaPrev != global.monstersarea){ global.monstersareaPrev = global.monstersarea; } - } + } else if(global.onlineReceived[# 2, i] != -1 && global.receivedClientID == global.clientID){ + global.monstersareaPrev = global.monstersarea; + } } + */ if(i == 33){ if(global.onlineReceived[# 2, i] != -1 && global.receivedClientID != global.clientID){ global.lavastate = global.onlineReceived[# 1, 33]; if(global.lavastatePrev != global.lavastate){ global.lavastatePrev = global.lavastate; } - } + } else if(global.onlineReceived[# 2, i] != -1 && global.receivedClientID == global.clientID){ + global.lavastatePrev = global.lavastate; + } } } break;