Updated array sync and working on player shadows

cleaner
milesthenerd 5 years ago
parent c150277dc2
commit 5827dccdc8

3
.gitignore vendored

@ -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

@ -3,8 +3,8 @@
<Configs name="configs">
<Config>Configs\Default</Config>
</Configs>
<datafiles number="296" name="datafiles">
<datafiles number="296" name="lang">
<datafiles number="297" name="datafiles">
<datafiles number="297" name="lang">
<datafile>
<name>czech.ini</name>
<exists>-1</exists>
@ -158,7 +158,7 @@
</ConfigOptions>
<filename>languages.txt</filename>
</datafile>
<datafiles number="296" name="headers">
<datafiles number="297" name="headers">
<datafile>
<name>castellano_a1_f24_b0_c3_d19_e21.png</name>
<exists>-1</exists>
@ -857,7 +857,7 @@
<filename>russian_a8_f19_b0_c3_d14_e16.png</filename>
</datafile>
</datafiles>
<datafiles number="296" name="fonts">
<datafiles number="297" name="fonts">
<datafile>
<name>04b09.ttf</name>
<exists>-1</exists>
@ -1014,9 +1014,9 @@
<filename>modifiers.ini</filename>
</datafile>
<datafile>
<name>ipaddress.txt</name>
<name>readme.txt</name>
<exists>-1</exists>
<size>0</size>
<size>2802</size>
<exportAction>2</exportAction>
<exportDir></exportDir>
<overwrite>0</overwrite>
@ -1028,12 +1028,12 @@
<CopyToMask>9223372036854775807</CopyToMask>
</Config>
</ConfigOptions>
<filename>ipaddress.txt</filename>
<filename>readme.txt</filename>
</datafile>
<datafile>
<name>readme.txt</name>
<name>mod settings.ini</name>
<exists>-1</exists>
<size>2802</size>
<size>67</size>
<exportAction>2</exportAction>
<exportDir></exportDir>
<overwrite>0</overwrite>
@ -1045,7 +1045,7 @@
<CopyToMask>9223372036854775807</CopyToMask>
</Config>
</ConfigOptions>
<filename>readme.txt</filename>
<filename>mod settings.ini</filename>
</datafile>
<datafile>
<name>dictionary.json</name>
@ -1064,8 +1064,8 @@
</ConfigOptions>
<filename>dictionary.json</filename>
</datafile>
<datafiles number="296" name="mods">
<datafiles number="296" name="titles">
<datafiles number="297" name="mods">
<datafiles number="297" name="titles">
<datafile>
<name>config.ini</name>
<exists>-1</exists>
@ -1101,8 +1101,8 @@
<filename>titlebackground.png</filename>
</datafile>
</datafiles>
<datafiles number="296" name="palettes">
<datafiles number="296" name="metroids">
<datafiles number="297" name="palettes">
<datafiles number="297" name="monsters">
<datafile>
<name>alpha.png</name>
<exists>-1</exists>
@ -1274,7 +1274,7 @@
<filename>zeta_blur.png</filename>
</datafile>
</datafiles>
<datafiles number="296" name="suits">
<datafiles number="297" name="suits">
<datafile>
<name>fusion_gravity.png</name>
<exists>-1</exists>
@ -1377,7 +1377,7 @@
</ConfigOptions>
<filename>varia.png</filename>
</datafile>
<datafiles number="296" name="MorphTrailColors">
<datafiles number="297" name="MorphTrailColors">
<datafile>
<name>fusion_gravity.png</name>
<exists>-1</exists>
@ -1481,7 +1481,7 @@
<filename>varia.png</filename>
</datafile>
</datafiles>
<datafiles number="296" name="SpaceJumpTrails">
<datafiles number="297" name="SpaceJumpTrails">
<datafile>
<name>fusion_gravity.png</name>
<exists>-1</exists>
@ -1585,7 +1585,7 @@
<filename>varia.png</filename>
</datafile>
</datafiles>
<datafiles number="296" name="SpiderBallGlow">
<datafiles number="297" name="SpiderBallGlow">
<datafile>
<name>fusion_gravity.png</name>
<exists>-1</exists>
@ -5078,7 +5078,12 @@
</scripts>
<shaders name="shaders">
<shader type="GLSLES">shaders\shGameBoy.shader</shader>
<shader type="GLSLES">shaders\shPaletteSwap.shader</shader>
<shader type="GLSLES">shaders\shd_grayscale.shader</shader>
<shader type="GLSLES">shaders\shd_pal_swapper.shader</shader>
<shader type="GLSLES">shaders\shd_pal_swapper_html_sprite.shader</shader>
<shader type="GLSLES">shaders\shd_pal_swapper_html_surface.shader</shader>
<shader type="GLSLES">shaders\shd_sepia.shader</shader>
<shader type="GLSLES">shaders\shd_thermal.shader</shader>
</shaders>
<fonts name="fonts">
<font>fonts\font0</font>

@ -0,0 +1,3 @@
[ModSettings]
ipaddress = 10.220.1.3
displayname = milesthenerd

@ -28,16 +28,22 @@
<string>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&lt;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");
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="5">
<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 v = 0;
for(var f=0; f&lt;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;
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="4">
<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 v = 0;
for(var f=0; f&lt;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;
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="3">
<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 v = 0;
for(var f=0; f&lt;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;
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="2">
<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(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;
}
</string>
</argument>
</arguments>
@ -168,7 +426,8 @@ for(var i=0; i&lt;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&lt;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) &amp;&amp; !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) &amp;&amp; !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 &lt; 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&lt;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 &amp;&amp; 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 &amp;&amp; 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&lt;array_length_1d(global.item); i++){
for(var f=0; f&lt;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&lt;array_length_1d(global.metdead); i++){
for(var f=0; f&lt;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&lt;array_length_1d(global.event); i++){
for(var f=0; f&lt;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;
}
}
</string>
</argument>
</arguments>
@ -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);
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="8" 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(ds_list_size(roomListData) &gt; 0){
for(var i=0; i&lt;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 &amp;&amp; instance_exists(oCharacter)){
draw_sprite_ext(arrSprite, arrImage, arrX, arrY, 1, 1, direction, c_black, image_alpha);
}
}
}
</string>
</argument>
</arguments>

@ -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") &amp;&amp; !file_exists("save2") &amp;&amp; !file_exis
global.shaders_compiled = false;
if (shaders_are_supported()) {
if (shader_is_compiled(shGameBoy) &amp;&amp; shader_is_compiled(shPaletteSwap)) {
if (shader_is_compiled(shGameBoy) &amp;&amp; shader_is_compiled(shd_pal_swapper)) {
global.shaders_compiled = true;
}
}

@ -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");

@ -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));

@ -2,4 +2,4 @@
with (oPopupText) instance_destroy();
var t = instance_create(0, 0, oPopupText);
t.text = argument0;
t.alarm[0] = argument1;
t.alarm[0] = argument1;

@ -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;

Loading…
Cancel
Save