Files
AM2R-Community-Updates/scripts/load_resources.gml
Miepee 62b2ccfa23 Fix android palette crashes (#102)
Initialized variables at the top and clearer
2021-08-04 17:35:15 -05:00

282 lines
14 KiB
Plaintext

// Header delay setups, has to be here or Android breaks.
for (var l = 1; l < 9; l ++) { // Set the baseline for all
oControl.mod_header[l, 1] = 0;
oControl.mod_header[l, 2] = 3;
}
// A1
oControl.mod_header[1, 3] = 19;
oControl.mod_header[1, 4] = 21;
// A2
oControl.mod_header[2, 3] = 19;
oControl.mod_header[2, 4] = 21;
// A3
oControl.mod_header[3, 3] = 24;
oControl.mod_header[3, 4] = 26;
// A4
oControl.mod_header[4, 3] = 15;
oControl.mod_header[4, 4] = 17;
// A5
oControl.mod_header[5, 3] = 26;
oControl.mod_header[5, 4] = 28;
// Lab/A7
oControl.mod_header[7, 2] = 7;
oControl.mod_header[7, 3] = 9;
oControl.mod_header[7, 4] = 17;
// Thoth/A8
oControl.mod_header[8, 3] = 15;
oControl.mod_header[8, 4] = 17;
/*
var lin = "";
if (os_type == os_linux) {
lin = "/assets";
}
*/
// Suit Palettes, MonsterPalettesFusionOnly and Metroid Pallettes definition
oControl.PowerPalette = -1;
oControl.VariaPalette = -1;
oControl.GravityPalette = -1;
oControl.MonsterPalettesFusionOnly = 1;
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(os_type == os_android) exit; // "Safety Check" on Android
//Area Headers
// Changed from program_directory to working_directory
// Format: language_aArea_fFrames_bPause1_cPause2_dPause3_ePause4.png
var filename = file_find_first("lang/headers/" + "*.png", 0);
while(filename != "") {
if(string_pos(string_lower(string_replace(get_text("Header", "Language"), " (16:9)", "")), string_lower(filename)) != 0) {
var harea = string_pos("_a", string_lower(filename)),
hframes = string_pos("_f", string_lower(filename)),
hd1 = string_pos("_b", string_lower(filename)),
hd2 = string_pos("_c", string_lower(filename)),
hd3 = string_pos("_d", string_lower(filename)),
hd4 = string_pos("_e", string_lower(filename));
//show_debug_message("harea = " + string(harea));
if(harea != 0) {
harea = real(string_digits(string_char_at(filename, harea + 2)));
//show_debug_message("harea = " + string(harea));
if(hframes != 0) {
hframes = real(string_digits(string_char_at(filename, hframes + 2) + string_char_at(filename, hframes + 3)));
oControl.mod_header[harea, 0] = hframes;
}
if(hd1 != 0) oControl.mod_header[harea, 1] = real(string_digits(string_char_at(filename, hd1 + 2) + string_char_at(filename, hd1 + 3)));
if(hd2 != 0) oControl.mod_header[harea, 2] = real(string_digits(string_char_at(filename, hd2 + 2) + string_char_at(filename, hd2 + 3)));
if(hd3 != 0) oControl.mod_header[harea, 3] = real(string_digits(string_char_at(filename, hd3 + 2) + string_char_at(filename, hd3 + 3)));
if(hd4 != 0) oControl.mod_header[harea, 4] = real(string_digits(string_char_at(filename, hd4 + 2) + string_char_at(filename, hd4 + 3)));
sprite_replace(asset_get_index("sIntro_A" + string(harea)), "lang/headers/" + filename, hframes, false, false, 0, 0);
}
}
filename = file_find_next();
}
file_find_close();
//Title Logo
var filename = file_find_first("lang/titles/" + "*.png", 0);
while(filename != "") {
if(string_pos(string_lower(string_replace(get_text("Header", "Language"), " (16:9)", "")), string_lower(filename)) != 0) {
var titlex = string_pos("x", string_lower(filename)),
titley = string_pos("y", string_lower(filename));
var xnegative = string_pos("-x", string_lower(filename));
if(titlex != 0) oControl.mod_xcoordinate = real(string_digits(string_char_at(filename, titlex + 1) + string_char_at(filename, titlex + 2) + string_char_at(filename, titlex + 3)));
if(titley != 0) oControl.mod_ycoordinate = real(string_digits(string_char_at(filename, titley + 1) + string_char_at(filename, titley + 2) + string_char_at(filename, titley + 3)));
if(xnegative != 0) oControl.mod_xcoordinate = -oControl.mod_xcoordinate;
background_replace(bgAM2RTitle, "lang/titles/" + filename, false, false);
}
filename = file_find_next();
}
file_find_close();
//Title Background
var filename = file_find_first("*.png", 0);
while(filename != "") {
if(string_pos("titlebackground", filename) != 0) {
oControl.mod_backgroundframes = 1;
oControl.mod_backgroundspeed = 60;
var bgframes = string_pos("f", string_lower(filename)),
bgspeed = string_pos("s", string_lower(filename));
if(bgframes != 0) oControl.mod_backgroundframes = real(string_digits(string_char_at(filename, bgframes + 1) + string_char_at(filename, bgframes + 2)));
if(bgspeed != 0) oControl.mod_backgroundspeed = real(string_digits(string_char_at(filename, bgspeed + 1) + string_char_at(filename, bgspeed + 2)));
sprite_replace(sTitleAnimated, filename, oControl.mod_backgroundframes, false, false, 0, 0);
}
filename = file_find_next();
}
file_find_close();
// ***Suit palettes***
if (file_exists("mods/palettes/suits/power.png")) oControl.PowerPalette = sprite_add("mods/palettes/suits/power.png", 1, false, false, 0, 0);
if (file_exists("mods/palettes/suits/varia.png")) oControl.VariaPalette = sprite_add("mods/palettes/suits/varia.png", 1, false, false, 0, 0);
if (file_exists("mods/palettes/suits/gravity.png")) oControl.GravityPalette = sprite_add("mods/palettes/suits/gravity.png", 1, false, false, 0, 0);
if (file_exists("mods/palettes/suits/fusion_power.png")) sprite_replace(sPalFusion0, "mods/palettes/suits/fusion_power.png", 1, false, false, 0, 0);
if (file_exists("mods/palettes/suits/fusion_varia.png")) sprite_replace(sPalFusion1, "mods/palettes/suits/fusion_varia.png", 1, false, false, 0, 0);
if (file_exists("mods/palettes/suits/fusion_gravity.png")) sprite_replace(sPalFusion2, "mods/palettes/suits/fusion_gravity.png", 1, false, false, 0, 0);
// Space jump trails
if (file_exists("mods/palettes/suits/SpaceJumpTrails/power.png")) sprite_replace(sSpaceJumpTrail, "mods/palettes/suits/SpaceJumpTrails/power.png", 1, false, false, sprite_get_xoffset(sSpaceJumpTrail), sprite_get_yoffset(sSpaceJumpTrail));
if (file_exists("mods/palettes/suits/SpaceJumpTrails/varia.png")) sprite_replace(sSpaceJumpTrailVaria, "mods/palettes/suits/SpaceJumpTrails/varia.png", 1, false, false, sprite_get_xoffset(sSpaceJumpTrailVaria), sprite_get_yoffset(sSpaceJumpTrailVaria));
if (file_exists("mods/palettes/suits/SpaceJumpTrails/gravity.png")) sprite_replace(sSpaceJumpTrailGravity, "mods/palettes/suits/SpaceJumpTrails/gravity.png", 1, false, false, sprite_get_xoffset(sSpaceJumpTrailGravity), sprite_get_yoffset(sSpaceJumpTrailGravity));
if (file_exists("mods/palettes/suits/SpaceJumpTrails/fusion_power.png")) sprite_replace(sSpaceJumpTrail_fusion, "mods/palettes/suits/SpaceJumpTrails/fusion_power.png", 1, false, false, sprite_get_xoffset(sSpaceJumpTrail_fusion), sprite_get_yoffset(sSpaceJumpTrail_fusion));
if (file_exists("mods/palettes/suits/SpaceJumpTrails/fusion_varia.png")) sprite_replace(sSpaceJumpTrailVaria_fusion, "mods/palettes/suits/SpaceJumpTrails/fusion_varia.png", 1, false, false, sprite_get_xoffset(sSpaceJumpTrailVaria_fusion), sprite_get_yoffset(sSpaceJumpTrailVaria_fusion));
if (file_exists("mods/palettes/suits/SpaceJumpTrails/fusion_gravity.png")) sprite_replace(sSpaceJumpTrailGravity_fusion, "mods/palettes/suits/SpaceJumpTrails/fusion_gravity.png", 1, false, false, sprite_get_xoffset(sSpaceJumpTrailGravity_fusion), sprite_get_yoffset(sSpaceJumpTrailGravity_fusion));
// Spiderball glows
if (file_exists("mods/palettes/suits/SpiderBallGlow/power.png")) sprite_replace(sSpiderballFX, "mods/palettes/suits/SpiderBallGlow/power.png", 1, false, false, sprite_get_xoffset(sSpiderballFX), sprite_get_yoffset(sSpiderballFX));
if (file_exists("mods/palettes/suits/SpiderBallGlow/varia.png")) sprite_replace(sSpiderballFXVaria, "mods/palettes/suits/SpiderBallGlow/varia.png", 1, false, false, sprite_get_xoffset(sSpiderballFXVaria), sprite_get_yoffset(sSpiderballFXVaria));
if (file_exists("mods/palettes/suits/SpiderBallGlow/gravity.png")) sprite_replace(sSpiderballFXGravity, "mods/palettes/suits/SpiderBallGlow/gravity.png", 1, false, false, sprite_get_xoffset(sSpiderballFXGravity), sprite_get_yoffset(sSpiderballFXGravity));
if (file_exists("mods/palettes/suits/SpiderBallGlow/fusion_power.png")) sprite_replace(sSpiderballFX_fusion, "mods/palettes/suits/SpiderBallGlow/fusion_power.png", 1, false, false, sprite_get_xoffset(sSpiderballFX_fusion), sprite_get_yoffset(sSpiderballFX_fusion));
if (file_exists("mods/palettes/suits/SpiderBallGlow/fusion_varia.png")) sprite_replace(sSpiderballFXVaria_fusion, "mods/palettes/suits/SpiderBallGlow/fusion_varia.png", 1, false, false, sprite_get_xoffset(sSpiderballFXVaria_fusion), sprite_get_yoffset(sSpiderballFXVaria_fusion));
if (file_exists("mods/palettes/suits/SpiderBallGlow/fusion_gravity.png")) sprite_replace(sSpiderballFXGravity_fusion, "mods/palettes/suits/SpiderBallGlow/fusion_gravity.png", 1, false, false, sprite_get_xoffset(sSpiderballFXGravity_fusion), sprite_get_yoffset(sSpiderballFXGravity_fusion));
// Morph trail colors
var surf = -1,
color = -1,
col;
if (!surface_exists(surf)) {
surf = surface_create(4, 4);
}
surface_set_target(surf);
if (file_exists("mods/palettes/suits/MorphTrailColors/power.png")) {
color = sprite_add("mods/palettes/suits/MorphTrailColors/power.png", 1, false, false, 0, 0);
draw_clear_alpha(c_black, 0);
draw_sprite(color, 0, 0, 0);
col = surface_getpixel_ext(surf, 0, 0);
Trail_P_R = col & 255;
Trail_P_G = (col >> 8) & 255;
Trail_P_B = (col >> 16) & 255;
}
if (file_exists("mods/palettes/suits/MorphTrailColors/varia.png")) {
color = sprite_add("mods/palettes/suits/MorphTrailColors/varia.png", 1, false, false, 0, 0);
draw_clear_alpha(c_black, 0);
draw_sprite(color, 0, 0, 0);
col = surface_getpixel_ext(surf, 0, 0);
Trail_V_R = col & 255;
Trail_V_G = (col >> 8) & 255;
Trail_V_B = (col >> 16) & 255;
}
if (file_exists("mods/palettes/suits/MorphTrailColors/gravity.png")) {
color = sprite_add("mods/palettes/suits/MorphTrailColors/gravity.png", 1, false, false, 0, 0);
draw_clear_alpha(c_black, 0);
draw_sprite(color, 0, 0, 0);
col = surface_getpixel_ext(surf, 0, 0);
Trail_G_R = col & 255;
Trail_G_G = (col >> 8) & 255;
Trail_G_B = (col >> 16) & 255;
}
if (file_exists("mods/palettes/suits/MorphTrailColors/fusion_power.png")) {
color = sprite_add("mods/palettes/suits/MorphTrailColors/fusion_power.png", 1, false, false, 0, 0);
draw_clear_alpha(c_black, 0);
draw_sprite(color, 0, 0, 0);
col = surface_getpixel_ext(surf, 0, 0);
Trail_P_R_F = col & 255;
Trail_P_G_F = (col >> 8) & 255;
Trail_P_B_F = (col >> 16) & 255;
}
if (file_exists("mods/palettes/suits/MorphTrailColors/fusion_varia.png")) {
color = sprite_add("mods/palettes/suits/MorphTrailColors/fusion_varia.png", 1, false, false, 0, 0);
draw_clear_alpha(c_black, 0);
draw_sprite(color, 0, 0, 0);
col = surface_getpixel_ext(surf, 0, 0);
Trail_V_R_F = col & 255;
Trail_V_G_F = (col >> 8) & 255;
Trail_V_B_F = (col >> 16) & 255;
}
if (file_exists("mods/palettes/suits/MorphTrailColors/fusion_gravity.png")) {
color = sprite_add("mods/palettes/suits/MorphTrailColors/fusion_gravity.png", 1, false, false, 0, 0);
draw_clear_alpha(c_black, 0);
draw_sprite(color, 0, 0, 0);
col = surface_getpixel_ext(surf, 0, 0);
Trail_G_R_F = col & 255;
Trail_G_G_F = (col >> 8) & 255;
Trail_G_B_F = (col >> 16) & 255;
}
draw_clear_alpha(c_black, 0);
draw_sprite(sMorphTrailPower_msr, 0, 0, 0);
col = surface_getpixel_ext(surf, 0, 0);
Trail_P_R_F_SR = col & 255;
Trail_P_G_F_SR = (col >> 8) & 255;
Trail_P_B_F_SR = (col >> 16) & 255;
draw_clear_alpha(c_black, 0);
draw_sprite(sMorphTrailVaria_msr, 0, 0, 0);
col = surface_getpixel_ext(surf, 0, 0);
Trail_V_R_F_SR = col & 255;
Trail_V_G_F_SR = (col >> 8) & 255;
Trail_V_B_F_SR = (col >> 16) & 255;
draw_clear_alpha(c_black, 0);
draw_sprite(sMorphTrailGravity_msr, 0, 0, 0);
col = surface_getpixel_ext(surf, 0, 0);
Trail_G_R_F_SR = col & 255;
Trail_G_G_F_SR = (col >> 8) & 255;
Trail_G_B_F_SR = (col >> 16) & 255;
surface_reset_target();
surface_free(surf);
sprite_delete(color);
// Monster palettes
ini_open("mods/palettes/monsters/config.ini");
MonsterPalettesFusionOnly = ini_read_real('PaletteMode', 'FusionOnly', 1);
ini_close();
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));