diff --git a/AM2R.project.gmx b/AM2R.project.gmx
index 197bddf..df35a63 100644
--- a/AM2R.project.gmx
+++ b/AM2R.project.gmx
@@ -4303,6 +4303,7 @@
+
diff --git a/objects/oCreditsText.object.gmx b/objects/oCreditsText.object.gmx
index fcb6863..f88071b 100644
--- a/objects/oCreditsText.object.gmx
+++ b/objects/oCreditsText.object.gmx
@@ -25,12 +25,98 @@
1
- text = "Another " + global.monsterStr + " 2 Remake# # # # # # # # # # # #Producer#Milton 'DoctorM64' Guasti# #Graphic Design#Ramiro Negri#Steve 'Sabre230' Rothlisberger#Jack Witty#Kirill '1Eni1' Fevralev#Jasper#MichaelGabrielR# #Promo Art#Azima 'Zim' Khan# #Writing#James 'Ridley' Hobbs#Paulo 'Latinlingo' Villalobos# #Platform Engine Code#Martin Piecyk# #Music Composition#Milton 'DoctorM64' Guasti#Darren Kerwin#Torbjørn 'Falcool' Brandrud# #Debug#Hemse#Dragondarch#Esteban 'DruidVorse' Criado#Verneri 'Naatiska' Viljanen# #Playtest#Jennifer Potter#Mario Crestanello#Live4Truths#Torbjørn 'Falcool' Brandrud#Lise Trehjørningen#Nommiin#Gabriel Kaplan#Nicolas 'Skol' Del Negro#Darren Kerwin#Robert Sephazon# #Community Management#Dragonheart91#Ammypendent#Karrde# #Special Thanks#Nommiin#Nathan 'wickedclown' Hess#Tyler Rogers#Kousoru#Infinity's End#CapCom#Isabelle Amponin#The " + global.monsterStr + " Community# # # # # #Source Code Reconstruction#YellowAfterlife# # #Continued Revisions# #Lead - Former#Gatordile#Alex 'Wanderer' Mack# #Lead#Lojemiru# #Development#Craig Kostelecky#" + global.monsterStr + "3D# #Art Lead#Dannon 'Shmegleskimo' Yates# #Art#ShirtyScarab#Cooper Garvin#Chris 'Messianic' Oliveira#ChloePlz# #Special Thanks#Banjo, Grom PE,#King Bore, Jean-Samuel Pelletier,#Reaku The Crate, Scooterboot, #Sylandro, TheKhaosDemon, #Unknown, Iwantdevil, #PixHammer, CaptGlitch,#Nokbient, EODTex,#Electrix, gponys,#Japanese Community# # # # # #Original " + global.monsterStr + " II Staff# #Producer#Gunpei Yokoi# #Director#Hiroji Kiyotake, Hiroyuki Kimura# #Main Programmer#Takahiro Harada# #Programmer#Masaru Yamanaka, Masao Yamamoto,#Isao Hirano# #Graphic Designer#Hiroji Kiyotake, Hiroyuki Kimura# #Program Assistant#Yuzuru Ogawa, Nobuhiro Ozaki# #Sound Programmer#Ryohji Yoshitomi# #Designer#Makoto Kanoh, Masafumi Sakashita,#Tomoyoshi Yamane, Takehiko Hosokawa,#Yasuo Inoue# #Debug#Masaru Okadaga, Kenji Nishizawa,#Hirofumi Matsuoka, Tohru Ohsawa,#Kohta Fukui, Keisuke Terasaki,#Kenichi Sugino, Hitoshi Yamagami,#Katsuya Yamaoe, Yuji Hori# # # # # # # # # #In Memory of Satoru Iwata";
+ /*
+ FORMATTING KEY:
+ ; = linebreak marker (NOT # because we want to handle it manually and insert them later)
+ = = split into left/right strings here
+ / = centered name
+ * = centered header (gets custom display color)
+*/
+
+// Refer to key above
+text = "*Another " + global.monsterStr + " 2 Remake;;;;;;;;;;;;*Producer;/Milton 'DoctorM64' Guasti;;*Graphic Design;Ramiro Negri=MichaelGabrielR;Jasper=Jack Witty;/Steve 'Sabre230' Rothlisberger;/Kirill '1Eni1' Fevralev;;*Promo Art;/Azima 'Zim' Khan;;*Writing;/James 'Ridley' Hobbs;/Paulo 'Latinlingo' Villalobos;;*Platform Engine Code;/Martin Piecyk;;*Music Composition;/Milton 'DoctorM64' Guasti;/Darren Kerwin;/Torbjørn 'Falcool' Brandrud;;*Debug;/Dragondarch=Hemse;/Esteban 'DruidVorse' Criado;/Verneri 'Naatiska' Viljanen;;*Playtesting;Jennifer Potter=Mario Crestanello;Live4Truths=Nommiin;/Torbjørn 'Falcool' Brandrud;/Nicolas 'Skol' Del Negro;Lise Trehjørningen=Gabriel Kaplan;Darren Kerwin=Robert Sephazon;;*Community Management;Dragonheart91=Ammypendent;/Karrde;;*Special Thanks;Nommiin=Tyler Rogers;Kousoru=Infinity's End;Isabelle Amponin=CapCom;/Nathan 'wickedclown' Hess;/The " + global.monsterStr + " Community;;;;*Source Code Reconstruction;/YellowAfterlife;;;;*Continued Revisions;;*Development;Gatordile=Lojemiru;/Alex 'Wanderer' Mack;;*Programming;" + global.monsterStr + "3D=Scooterboot;/Craig Kostelecky;;*Art Lead;/Dannon 'Shmegleskimo' Yates;;*Art;ShirtyScarab=Cooper Garvin;/Chris 'Messianic' Oliveira;/ChloePlz;;*Debug;Miepee=EODTex;/Esteban 'DruidVorse' Criado;/Verneri 'Naatiska' Viljanen;/Electrix;;*Localization;*Spanish;Imsu=Diegomg;*German;m3Zz=LPCaiser;Miepee=unknown;/fedprod;*Italian;LetsPlayNintendoITA=SadNES cITy e Vecna;/ReNext;*French;Atver=Vectrex28;*Russian;/DarkEspeon;*Japanese;/Gponys;*Czech;/Vectrex28;;*Special Thanks;Banjo=King Bore;Reaku the Crate=Grom PE;Sylandro=TheKhaosDemon;Iwantdevil=PixHammer;GaptGlitch=Nokbient;Nanassshy=kitronmacaron;/Jean-Samuel Pelletier;/Japanese Community;;;;*Original " + global.monsterStr + " II Staff;;*Producer;/Gunpei Yokoi;;*Director;Hiroji Kiyotake=Hiroyuki Kimura;;*Main Programmer;/Takahiro Harada;;*Programmer;Masaru Yamanaka=Masao Yamamoto;/Isao Hirano;;*Graphic Designer;Hiroji Kiyotake=Hiroyuki Kimura;;*Program Assistant;Yuzuru Ogawa=Nobuhiro Ozaki;;*Sound Programmer;/Ryohji Yoshitomi;;*Designer;Makoto Kanoh=Masafumi Sakashita;Tomoyoshi Yamane=Takehiko Hosokawa;/Yasuo Inoue;;*Debug;Masaru Okadaga=Kenji Nishizawa;Hirofumi Matsuoka=Tohru Ohsawa;Kohta Fukui=Keisuke Terasaki;Kenichi Sugino=Hitoshi Yamagami;Katsuya Yamaoe=Yuji Hori;;;;;;;;;;/In Memory of Satoru Iwata;";
+
+// Constants
+TEXT_ROWS = string_count(";", text);
+X_POS = room_width / 2;
+WIDE_SPACE = oControl.widescreen_space / 2;
+
+// Calculate scroll speed based on line count.
+SCROLL_SPEED = (TEXT_ROWS * -0.27) / 120;
+
+// Vars
+var arrayIndex = 0;
+var subStr = "";
+var line = 0;
+
+// Generate blank space in 2D array...
+for (var i = 0; i < TEXT_ROWS; i++) {
+ for (var j = 0; j < 4; j++) {
+ textArray[i, j] = "";
+ }
+}
+
+var strLength = string_length(text)
+
+// Parse text
+for (var i = 1; i <= strLength; i++) {
+ // Get next char
+ var nextChar = string_char_at(text, i);
+
+ // Parsing - refer to key above
+ if (nextChar == "=") { // Split
+ // Store subStr as left (technically anything but left is what it /should/ be)
+ textArray[line, arrayIndex] = subStr;
+
+ // Reset subStr
+ subStr = "";
+
+ // Set next index to right
+ arrayIndex = 1;
+ }
+ else if (nextChar == ";") { // Linebreak
+ // Store subStr to index
+ textArray[line, arrayIndex] = subStr;
+
+ // Reset subStr/index
+ subStr = "";
+ arrayIndex = 0;
+
+ // Drop to next line
+ line++;
+ }
+ else if (nextChar == "/") { // Centered
+ // Set index to center
+ arrayIndex = 2;
+ }
+ else if (nextChar == "*") { // Centered header
+ // Set index to header
+ arrayIndex = 3;
+ }
+ else {
+ // Add current char to subStr
+ subStr += nextChar;
+ }
+}
+
+// Create text strings
+textLeft = "";
+textRight = "";
+textCenter = "";
+textHeader = "";
+
+// Compile arrays into their respective strings; add newlines
+for (var i = 0; i < TEXT_ROWS; i++) {
+ textLeft += textArray[i, 0] + "#";
+ textRight += textArray[i, 1] + "#";
+ textCenter += textArray[i, 2] + "#";
+ textHeader += textArray[i, 3] + "#";
+}
+
yoffset = 0;
fadeout = 0;
canfadeout = 0;
-//canfadeout = 1; //remove this!
alarm[0] = 1;
image_alpha = 0;
if (global.creditsmenuopt == 1) {
@@ -43,8 +129,6 @@ if (global.creditsmenuopt == 1) {
}
if (os_type == os_android) os_powersave_enable(false);
-
-widespace = oControl.widescreen*53;
@@ -139,20 +223,31 @@ widespace = oControl.widescreen*53;
1
- if (canfadeout && (oControl.kMenu1 || oControl.kMenu2 || oControl.kStart)) fadeout = 1;
+ // User fadeout input
+if (canfadeout && (oControl.kMenu1 || oControl.kMenu2 || oControl.kStart)) fadeout = 1;
+
+// Fadeout routine
if (fadeout) {
if (yoffset > 0) {
yoffset -= 1;
} else event_user(0);
}
+
+// Credits cutscene animation
if (statetime == 360) instance_create(192, 88, oCreditsShip);
+
+// Fade in
if (statetime > 520) {
if (image_alpha < 1) image_alpha += 0.05;
}
-//This dictates the credit scrolling speed
-if (statetime == 700) vspeed = -0.34;
-statetime += 1;
+// This dictates the credit scrolling speed
+if (statetime == 700) vspeed = SCROLL_SPEED; // -0.34;
+
+// This stops the credits on the final line
+if (y <= ystart + 8 - (TEXT_ROWS * 12)) vspeed = 0;
+
+statetime++;
@@ -175,7 +270,9 @@ statetime += 1;
1
- display_set_gui_size(-1,-1);
+ /// Reset GUI, determine exit condition
+
+display_set_gui_size(-1,-1);
if (global.creditsmenuopt == 0) {
room_goto(rm_score);
@@ -206,31 +303,31 @@ if (global.creditsmenuopt == 0) {
1
- display_set_gui_size(320,240);
+ // Setup
+display_set_gui_size(320, 240);
draw_set_alpha(image_alpha);
draw_set_font(fontGUI2);
-draw_set_color(c_black);
-draw_text(x + 1 - widespace, y + 17, text);
-draw_set_color(c_white);
-draw_text(x - widespace, y + 16, text);
-draw_set_alpha(1);
-draw_set_color(c_black);
-draw_rectangle(0 - widespace, 0, 330 + widespace, 120 - yoffset, false);
-draw_rectangle(0 - widespace, 120 + yoffset, 330 + widespace, 250, false);
+// Left
+draw_set_halign(fa_right);
+draw_cool_text(X_POS - 12, y + 17, textLeft, c_black, c_white, c_white, 1);
-/* //Old code in draw event
+// Right
+draw_set_halign(fa_left);
+draw_cool_text(X_POS + 12, y + 17, textRight, c_black, c_white, c_white, 1);
-draw_set_alpha(image_alpha);
-draw_set_font(fontGUI2);
-draw_set_color(c_black);
-draw_text(round(x + 1), round(y + 17), text);
-draw_set_color(c_white);
-draw_text(round(x), round(y + 16), text);
+// Center
+draw_set_halign(fa_center);
+draw_cool_text(X_POS, y + 17, textCenter, c_black, c_white, c_white, 1);
+
+// Header
+draw_cool_text(X_POS, y + 17, textHeader, c_black, c_dkgray, c_gray, 1);
+
+// Draw black bars
draw_set_alpha(1);
draw_set_color(c_black);
-draw_rectangle(0, 0, 330, 120 - yoffset, false);
-draw_rectangle(0, 120 + yoffset, 330, 250, false);
+draw_rectangle(0 - WIDE_SPACE, 0, 330 + WIDE_SPACE, 120 - yoffset, false);
+draw_rectangle(0 - WIDE_SPACE, 120 + yoffset, 330 + WIDE_SPACE, 250, false);
diff --git a/objects/oOptionsDisplay.object.gmx b/objects/oOptionsDisplay.object.gmx
index 5667270..39be964 100644
--- a/objects/oOptionsDisplay.object.gmx
+++ b/objects/oOptionsDisplay.object.gmx
@@ -25,26 +25,76 @@
1
- global.curropt = 0;
-lastitem = 12; // og 10
+ y -= 8; // Moved from user 0 to avoid reset issues.
+// Change to object creation position instead!
+
+global.curropt = 0;
active = 0;
+targetY = y;
+timer = 0;
+SPACER = 16;
+
+view_object[0] = id;
+
+// Active in 5
alarm[0] = 5;
+
+var i = 0;
+
+/*
+ This list dictates the order of selection in the Display Menu.
+ Also, the lists in User Defined 0 and 3 need to be in order.
+*/
+
+// DISPLAY OPTIONS
+
+// Fullscreen and scale should NOT exist on Android
+if (os_type != os_android) {
+ opFullscreen = i++;
+ opScale = i++;
+}
+opVSync = i++;
+opSensitivity = i++;
+opWidescreen = i++;
+// HUD
+opShowHUD = i++;
+opShowMap = i++;
+opCounterStyle = i++;
+// NOTIFICATIONS
+opShowHints = i++;
+opButtonType = i++;
+opShowScans = i++;
+opLanguage = i++;
+
+menuSize = i; // 1 larger than last item
+
+vTargetY = 18 * menuSize + 72;
+
i = 0;
-repeat (13) { // og 11
- global.canedit[i] = 1;
- i += 1;
+
+// Enable menu
+repeat (menuSize + 1) {
+ canEdit[i] = 1;
+ i++;
}
-targety = 0;
-view_object[0] = id;
-timer = 0;
-langno = array_length_1d(global.language);
-for (i = 0; i < langno; i += 1) {
+
+// Get lang info
+langCount = array_length_1d(global.language);
+for (i = 0; i < langCount; i += 1) {
ini_open(global.language[i]);
lang[i] = ini_read_string("Header", "Language", "[!]");
+ langAuthor[i] = ini_read_string("Header", "Author", "[!]");
+ langAuthor2[i] = ini_read_string("Header", "Author2", "[!]");
ini_close();
}
+
+// Create menu items
event_user(0);
+
+// Load tip text
event_user(3);
+
+// Load current tip text
global.tiptext = tip[global.curropt];
@@ -68,7 +118,8 @@ global.tiptext = tip[global.curropt];
1
- event_user(1);
+ /// Destroy menu options
+event_user(1);
@@ -91,7 +142,8 @@ global.tiptext = tip[global.curropt];
1
- set_window_scale(global.opscale);
+ /// Update window scale
+set_window_scale(global.opscale);
display_reset(0, global.opvsync);
@@ -139,163 +191,86 @@ display_reset(0, global.opvsync);
1
if (active) {
+ // Menu DOWN
if (oControl.kDown > 0 && (oControl.kDownPushedSteps == 0 || oControl.kDownPushedSteps > 30 && timer == 0)) {
- if (os_type == os_android) {
- switch global.curropt {
- // this is spaghetti but I am not going to shift every single
- // menu id to add one option. This is dumb.
- case 0: global.curropt = 10; break;
- case 9: global.curropt = 12; break;
- case 11: global.curropt = 3; break;
- default: global.curropt += 1; break;
- }
- } else {
- switch global.curropt {
- // this is spaghetti but I am not going to shift every single
- // menu id to add one option. This is dumb.
- case 2: global.curropt = 10; break;
- case 9: global.curropt = 12; break;
- case 11: global.curropt = 3; break;
- default: global.curropt += 1; break;
- }
+ global.curropt += 1;
+ // Wrap
+ if (global.curropt > menuSize) global.curropt = 0;
+ // Skip inactive
+ while (canEdit[global.curropt] == 0) {
+ global.curropt += 1;
+ // Wrap again (safety)
+ if (global.curropt > menuSize) global.curropt = 0;
}
- if (global.curropt > lastitem) global.curropt = 0;
- while (global.canedit[global.curropt] == 0) global.curropt += 1;
- targety = op[global.curropt].y + 8 + 8;
- if (targety > 256 + (sep*2) && op[7].visible) targety = 256 + (sep*2);
- if (targety > 240 + (sep*2) && !op[7].visible) targety = 240 + (sep*2);
- if(os_type == os_android) { if (targety > 224) targety = 224; }
+ // New target
+ targetY = op[global.curropt].y + 16;
+ if (targetY > vTargetY) targetY = vTargetY;
sfx_play(sndMenuMove);
global.tiptext = tip[global.curropt];
- }
- if (oControl.kUp > 0 && (oControl.kUpPushedSteps == 0 || oControl.kUpPushedSteps > 30 && timer == 0)) {
- //global.curropt -= 1;
- if (os_type == os_android) {
- switch global.curropt { // spaghetti woo
- case 3: global.curropt = 11; break;
- case 10: global.curropt = 0; break;
- case 12: global.curropt = 9; break;
- default: global.curropt -= 1; break;
- }
- } else {
- switch global.curropt { // spaghetti woo
- case 3: global.curropt = 11; break;
- case 10: global.curropt = 2; break;
- case 12: global.curropt = 9; break;
- default: global.curropt -= 1; break;
- }
+ } // Menu UP
+ else if (oControl.kUp > 0 && (oControl.kUpPushedSteps == 0 || oControl.kUpPushedSteps > 30 && timer == 0)) {
+ global.curropt -= 1;
+ // Wrap
+ if (global.curropt < 0) global.curropt = menuSize;
+ // Skip inactive
+ while (canEdit[global.curropt] == 0)
+ {
+ global.curropt -= 1;
+ // Wrap again (safety)
+ if (global.curropt < 0) global.curropt = menuSize;
}
- if (global.curropt < 0) global.curropt = lastitem;
- while (global.canedit[global.curropt] == 0) global.curropt -= 1;
- targety = op[global.curropt].y + 8 + 8;
- if (targety > 256 + (sep*2) && op[7].visible) targety = 256 + (sep*2);
- if (targety > 240 + (sep*2) && !op[7].visible) targety = 240 + (sep*2);
- if(os_type == os_android) { if (targety > 208) targety = 208; }
+ // New target
+ targetY = op[global.curropt].y + 16;
+ if (targetY > vTargetY) targetY = vTargetY;
sfx_play(sndMenuMove);
global.tiptext = tip[global.curropt];
}
- if (oControl.kLeft > 0 && oControl.kLeftPushedSteps == 0 && oControl.kDown == 0 && oControl.kUp == 0) {
- if (global.curropt == 5) {
- global.ophudshowmetrcount -= 1;
- if (global.ophudshowmetrcount < 0) global.ophudshowmetrcount = 2;
- }
- if (global.curropt == 1) {
- global.opscale -= 1;
- if (global.opfullscreen && global.opscale < 0) global.opscale = 4;
- if (!global.opfullscreen) {
- if (global.opscale < 1) global.opscale = 4;
- set_window_scale(global.opscale);
- }
- }
- if (global.curropt == 7) {
- oControl.mod_buttonsconfig -= 1;
- if (os_type != os_android && oControl.mod_buttonsconfig < 0) oControl.mod_buttonsconfig = 3;
- if (os_type == os_android && oControl.mod_buttonsconfig < 0) oControl.mod_buttonsconfig = 5;
- event_user(2);
- event_user(3);
- event_user(4);
- }
- if (global.curropt == 9) {
- global.currentlanguage -= 1;
- if (global.currentlanguage < 0) global.currentlanguage = langno - 1;
- event_user(2);
- event_user(3);
- event_user(4);
- global.tiptext = tip[global.curropt];
- }
- }
- if (oControl.kRight > 0 && oControl.kRightPushedSteps == 0 && oControl.kDown == 0 && oControl.kUp == 0) {
- if (global.curropt == 5) {
- global.ophudshowmetrcount += 1;
- if (global.ophudshowmetrcount > 2) global.ophudshowmetrcount = 0;
- }
- if (global.curropt == 1) {
- global.opscale += 1;
- if (global.opfullscreen && global.opscale > 4) global.opscale = 0;
- if (!global.opfullscreen) {
- if (global.opscale > 4) global.opscale = 1;
- set_window_scale(global.opscale);
- }
- }
- if (global.curropt == 7) {
- oControl.mod_buttonsconfig += 1;
- if (os_type != os_android && oControl.mod_buttonsconfig > 3) oControl.mod_buttonsconfig = 0;
- if (os_type == os_android && oControl.mod_buttonsconfig > 5) oControl.mod_buttonsconfig = 0;
- event_user(2);
- event_user(3);
- event_user(4);
- }
- if (global.curropt == 9) {
- global.currentlanguage += 1;
- if (global.currentlanguage > langno - 1) global.currentlanguage = 0;
- event_user(2);
- event_user(3);
- event_user(4);
- global.tiptext = tip[global.curropt];
- }
+
+ var input = oControl.kRight - oControl.kLeft;
+ var inputSteps = oControl.kRightPushedSteps - oControl.kLeftPushedSteps;
+
+ // Menu LEFT and RIGHT
+ if (input != 0 && inputSteps == 0 && global.curropt < menuSize && oControl.kDown == 0 && oControl.kUp == 0) {
-
- }
- if (oControl.kLeft > 0 && oControl.kLeftPushedSteps == 0 || oControl.kRight > 0 && oControl.kRightPushedSteps == 0 && global.curropt < 12 && oControl.kDown == 0 && oControl.kUp == 0) {
- if (global.curropt == 0) {
- if(os_type != os_android) {
+ if (os_type != os_android) {
+ // Fullscreen
+ if (global.curropt == opFullscreen) {
global.opfullscreen = !global.opfullscreen;
set_fullscreen(global.opfullscreen);
if (!global.opfullscreen) {
global.opscale = 1;
+ // Update window scale
alarm[1] = 1;
}
}
- else {
- global.opvsync = !global.opvsync;
- sfx_play(sndMenuMove);
- display_reset(0, global.opvsync);
+
+ // Scale
+ if (global.curropt == opScale) {
+ if (global.opfullscreen) {
+ global.opscale = wrap(global.opscale + input, 0, 4);
+ }
+ if (!global.opfullscreen) {
+ global.opscale = wrap(global.opscale + input, 1, 4)
+ set_window_scale(global.opscale);
+ }
}
}
- if (global.curropt == 2) {
+
+ // VSync
+ if (global.curropt == opVSync) {
global.opvsync = !global.opvsync;
display_reset(0, global.opvsync);
if (!global.opfullscreen) set_window_scale(global.opscale);
}
- if (global.curropt == 3) global.opshowhud = !global.opshowhud;
- if (global.curropt == 4) global.ophudshowmap = !global.ophudshowmap;
- if (global.curropt == 6) global.ophudshowhints = !global.ophudshowhints;
- if (global.curropt == 8) global.ophudshowlogmsg = !global.ophudshowlogmsg;
- if (global.curropt == 10) { // sensitivity mode
- if (global.sensitivitymode == 1) {
- global.sensitivitymode = 0;
- } else {
- global.sensitivitymode = 1;
- }
- event_user(2); // update text
+ // Sensitivity Mode
+ if (global.curropt == opSensitivity) {
+ global.sensitivitymode = !global.sensitivitymode;
}
- if (global.curropt == 11) { // widescreen
- if (global.widescreen_enabled == 1) {
- global.widescreen_enabled = 0;
- } else {
- global.widescreen_enabled = 1;
- }
+
+ // Widescreen
+ if (global.curropt == opWidescreen) {
+ global.widescreen_enabled = !global.widescreen_enabled;
if (room == rm_options) {
oControl.widescreen = global.widescreen_enabled;
if (global.widescreen_enabled == 0) {
@@ -310,20 +285,53 @@ display_reset(0, global.opvsync);
display_reset(0, global.opvsync);
}
}
-
- event_user(2); // update text
}
- if(os_type == os_android) {
- if(global.curropt != 0) {
- sfx_play(sndMenuMove);
- }
+ // Show HUD
+ if (global.curropt == opShowHUD) global.opshowhud = !global.opshowhud;
+
+ // Show Map
+ if (global.curropt == opShowMap) global.ophudshowmap = !global.ophudshowmap;
+
+ // Monster Counter
+ if (global.curropt == opCounterStyle) {
+ global.ophudshowmetrcount = wrap(global.ophudshowmetrcount + input, 0, 2);
+ }
+
+ // Show Hints
+ if (global.curropt == opShowHints) global.ophudshowhints = !global.ophudshowhints;
+
+ // Button Prompt Style
+ if (global.curropt == opButtonType) {
+ var inputMax = 5 - ((os_type == os_android) * 2);
+ oControl.mod_buttonsconfig = wrap(oControl.mod_buttonsconfig + input, 0, inputMax);
+
+ // Update events
+ event_user(3);
+ event_user(4);
+ }
+
+ // Show Scans
+ if (global.curropt == opShowScans) global.ophudshowlogmsg = !global.ophudshowlogmsg;
+
+ // Language
+ if (global.curropt == opLanguage) {
+ global.currentlanguage = wrap(global.currentlanguage + input, 0, langCount - 1);
+
+ // Update events
+ event_user(3);
+ event_user(4);
+ global.tiptext = tip[global.curropt];
}
- else sfx_play(sndMenuMove);
+
+ sfx_play(sndMenuMove);
+
+ // Update text
event_user(2);
}
+
if (oControl.kMenu1 && oControl.kMenu1PushedSteps == 0) {
- if (global.curropt == 12) {
+ if (global.curropt == menuSize) {
load_resources();
save_gameoptions();
view_object[0] = noone;
@@ -333,9 +341,12 @@ display_reset(0, global.opvsync);
sfx_play(sndMenuSel);
}
}
-} // if (active)
-if (targety != y) y += (targety - y) / 10;
+}
+
+if (targetY != y) y += (targetY - y) / 10;
+
timer -= 1;
+
if (timer < 0) timer = 8;
@@ -359,30 +370,39 @@ if (timer < 0) timer = 8;
1
- op[50].text = get_text("OptionsDisplay", "Title_Display");
-op[0].label = get_text("OptionsDisplay", "Fullscreen");
-if(os_type == os_android) {
- op[0].label = get_text("OptionsDisplay", "VSync");
+ /// Reload ALL text (usually for lang files)
+
+// Label
+op[50].text = get_text("OptionsDisplay", "Title_Display");
+
+// Fullscreen, scale
+if (os_type != os_android) {
+ op[opFullscreen].label = get_text("OptionsDisplay", "Fullscreen");
+
+ if (global.opfullscreen) {
+ op[opScale].label = get_text("OptionsDisplay", "DisplayScale");
+ } else op[opScale].label = get_text("OptionsDisplay", "WindowSize");
}
-if (global.opfullscreen) {
- op[1].label = get_text("OptionsDisplay", "DisplayScale");
-} else op[1].label = get_text("OptionsDisplay", "WindowSize");
-op[2].label = get_text("OptionsDisplay", "VSync");
+
+op[opVSync].label = get_text("OptionsDisplay", "VSync");
op[51].text = get_text("OptionsDisplay", "Title_HUD");
-op[3].label = get_text("OptionsDisplay", "HUDDisplay");
-op[4].label = get_text("OptionsDisplay", "HUDMap");
-op[5].label = get_text("OptionsDisplay", "MonsterCounter");
+op[opSensitivity].label = get_text("Misc", "SensitivityMode");
+op[opWidescreen].label = get_text("Misc", "Widescreen");
+op[opShowHUD].label = get_text("OptionsDisplay", "HUDDisplay");
+op[opShowMap].label = get_text("OptionsDisplay", "HUDMap");
+op[opCounterStyle].label = get_text("OptionsDisplay", "MonsterCounter");
op[52].text = get_text("OptionsDisplay", "Title_Notifications");
-op[6].label = get_text("OptionsDisplay", "Hints");
-op[7].label = get_text("ExtrasMenu", "Controller");
-op[8].label = get_text("OptionsDisplay", "ScanNotifications");
-op[9].label = get_text("OptionsDisplay", "Language");
+op[opShowHints].label = get_text("OptionsDisplay", "Hints");
+op[opButtonType].label = get_text("ExtrasMenu", "Controller");
+op[opShowScans].label = get_text("OptionsDisplay", "ScanNotifications");
+op[opLanguage].label = get_text("OptionsDisplay", "Language");
-op[10].label = get_text("Misc", "SensitivityMode");
+op[53].label = get_text("OptionsDisplay", "Author") + " " + langAuthor[global.currentlanguage];
-op[11].label = get_text("Misc", "Widescreen");
+op[54].label = langAuthor2[global.currentlanguage];
+
+op[menuSize].label = get_text("GlobalOptions", "Exit");
-op[12].label = get_text("GlobalOptions", "Exit");
with (oSS_Fg) {
opt_text1 = get_text("Subscreen", "Title_Options");
tip1text = get_text("Subscreen", "Menu_Tip");
@@ -409,23 +429,23 @@ with (oSS_Fg) {
1
- tip[0] = get_text("OptionsDisplay", "Fullscreen_Tip");
-if(os_type == os_android) tip[0] = get_text("OptionsDisplay", "VSync_Tip");
-tip[1] = get_text("OptionsDisplay", "DisplayScale_Tip");
-tip[2] = get_text("OptionsDisplay", "VSync_Tip");
-tip[3] = get_text("OptionsDisplay", "HUDDisplay_Tip");
-tip[4] = get_text("OptionsDisplay", "HUDMap_Tip");
-tip[5] = get_text("OptionsDisplay", "MonsterCounter_Tip");
-tip[6] = get_text("OptionsDisplay", "Hints_Tip");
-tip[7] = get_text("ExtrasMenu", "Controller_Tip");
-tip[8] = get_text("OptionsDisplay", "ScanNotifications_Tip");
-tip[9] = get_text("OptionsDisplay", "Language_Tip");
-
-tip[10] = get_text("Misc", "SensitivityMode_Tip");
-
-tip[11] = get_text("Misc", "Widescreen_Tip");
-
-tip[12] = get_text("GlobalOptions", "ExitMain_Tip");
+ /// Load tip text
+
+if (os_type != os_android) {
+ tip[opFullscreen] = get_text("OptionsDisplay", "Fullscreen_Tip");
+ tip[opScale] = get_text("OptionsDisplay", "DisplayScale_Tip");
+}
+tip[opVSync] = get_text("OptionsDisplay", "VSync_Tip");
+tip[opSensitivity] = get_text("Misc", "SensitivityMode_Tip");
+tip[opWidescreen] = get_text("Misc", "Widescreen_Tip");
+tip[opShowHUD] = get_text("OptionsDisplay", "HUDDisplay_Tip");
+tip[opShowMap] = get_text("OptionsDisplay", "HUDMap_Tip");
+tip[opCounterStyle] = get_text("OptionsDisplay", "MonsterCounter_Tip");
+tip[opShowHints] = get_text("OptionsDisplay", "Hints_Tip");
+tip[opButtonType] = get_text("ExtrasMenu", "Controller_Tip");
+tip[opShowScans] = get_text("OptionsDisplay", "ScanNotifications_Tip");
+tip[opLanguage] = get_text("OptionsDisplay", "Language_Tip");
+tip[menuSize] = get_text("GlobalOptions", "ExitMain_Tip");
@@ -448,67 +468,99 @@ tip[12] = get_text("GlobalOptions", "ExitMain_Tip");
1
- if (global.opfullscreen) {
- op[0].optext = get_text("GlobalOptions", "Enabled");
- op[1].label = get_text("OptionsDisplay", "DisplayScale");
+ /// Update option text
+
+// Fullscreen, Scale
+if (global.opfullscreen) {
+ op[opFullscreen].optext = get_text("GlobalOptions", "Enabled");
+ op[opScale].label = get_text("OptionsDisplay", "DisplayScale");
} else {
- op[0].optext = get_text("GlobalOptions", "Disabled");
- op[1].label = get_text("OptionsDisplay", "WindowSize");
+ op[opFullscreen].optext = get_text("GlobalOptions", "Disabled");
+ op[opScale].label = get_text("OptionsDisplay", "WindowSize");
+}
+
+// Scale sizes
+switch (global.opscale) {
+ case 0: op[opScale].optext = get_text("OptionsDisplay", "DisplayScale_Stretch"); break;
+ case 1: op[opScale].optext = "1X"; break;
+ case 2: op[opScale].optext = "2X"; break;
+ case 3: op[opScale].optext = "3X"; break;
+ case 4: op[opScale].optext = "4X"; break;
+ default: op[opScale].optext = "[!]"; break;
}
-if (global.opscale == 0) op[1].optext = get_text("OptionsDisplay", "DisplayScale_Stretch");
-if (global.opscale == 1) op[1].optext = "1X";
-if (global.opscale == 2) op[1].optext = "2X";
-if (global.opscale == 3) op[1].optext = "3X";
-if (global.opscale == 4) op[1].optext = "4X";
+
+// Vsync
if (global.opvsync) {
- op[2].optext = get_text("GlobalOptions", "Enabled");
- if(os_type == os_android) op[0].optext = get_text("GlobalOptions", "Enabled");
+ op[opVSync].optext = get_text("GlobalOptions", "Enabled");
} else {
- op[2].optext = get_text("GlobalOptions", "Disabled");
- if(os_type == os_android) op[0].optext = get_text("GlobalOptions", "Disabled");
-}
-if (global.opshowhud) {
- op[3].optext = get_text("GlobalOptions", "Enabled");
-} else op[3].optext = get_text("GlobalOptions", "Disabled");
-if (global.ophudshowmap) {
- op[4].optext = get_text("GlobalOptions", "Enabled");
-} else op[4].optext = get_text("GlobalOptions", "Disabled");
-if (global.ophudshowmetrcount == 0) op[5].optext = get_text("GlobalOptions", "Disabled");
-if (global.ophudshowmetrcount == 1) op[5].optext = get_text("OptionsDisplay", "MonsterCounter_Local");
-if (global.ophudshowmetrcount == 2) op[5].optext = get_text("OptionsDisplay", "MonsterCounter_Global");
-if (global.ophudshowhints) {
- op[6].optext = get_text("GlobalOptions", "Enabled");
-} else op[6].optext = get_text("GlobalOptions", "Disabled");
-switch (oControl.mod_buttonsconfig) {
- case 0: op[7].optext = get_text("ExtrasMenu", "XBox"); break;
- case 1: op[7].optext = get_text("ExtrasMenu", "Playstation"); break;
- case 2: op[7].optext = get_text("ExtrasMenu", "NintendoPro"); break;
- case 3: op[7].optext = get_text("ExtrasMenu", "SNESColored"); break;
- case 4: op[7].optext = get_text("ExtrasMenu", "MOGA"); break;
- case 5: op[7].optext = get_text("ExtrasMenu", "OUYA"); break;
- default: op[7].optext = "[!]";
-}
-if (global.ophudshowlogmsg) {
- op[8].optext = get_text("GlobalOptions", "Enabled");
-} else op[8].optext = get_text("GlobalOptions", "Disabled");
-op[9].optext = lang[global.currentlanguage];
-if (global.curropt == 5) {
- if (global.ophudshowmetrcount == 0) global.tiptext = get_text("OptionsDisplay", "MonsterCounter_Disabled_Tip");
- if (global.ophudshowmetrcount == 1) global.tiptext = get_text("OptionsDisplay", "MonsterCounter_Local_Tip");
- if (global.ophudshowmetrcount == 2) global.tiptext = get_text("OptionsDisplay", "MonsterCounter_Global_Tip");
+ op[opVSync].optext = get_text("GlobalOptions", "Disabled");
}
+// Sensitivity Mode
if (global.sensitivitymode) {
- op[10].optext = get_text("GlobalOptions", "Enabled");
+ op[opSensitivity].optext = get_text("GlobalOptions", "Enabled");
} else {
- op[10].optext = get_text("GlobalOptions", "Disabled");
+ op[opSensitivity].optext = get_text("GlobalOptions", "Disabled");
}
+// Widescreen
if (global.widescreen_enabled) {
- op[11].optext = get_text("GlobalOptions", "Enabled");
+ op[opWidescreen].optext = get_text("GlobalOptions", "Enabled");
} else {
- op[11].optext = get_text("GlobalOptions", "Disabled");
+ op[opWidescreen].optext = get_text("GlobalOptions", "Disabled");
+}
+
+// Show HUD
+if (global.opshowhud) {
+ op[opShowHUD].optext = get_text("GlobalOptions", "Enabled");
+} else op[opShowHUD].optext = get_text("GlobalOptions", "Disabled");
+
+// Show Map
+if (global.ophudshowmap) {
+ op[opShowMap].optext = get_text("GlobalOptions", "Enabled");
+} else op[opShowMap].optext = get_text("GlobalOptions", "Disabled");
+
+// Monster Counter Style
+switch (global.ophudshowmetrcount) {
+ case 0: op[opCounterStyle].optext = get_text("GlobalOptions", "Disabled"); break;
+ case 1: op[opCounterStyle].optext = get_text("OptionsDisplay", "MonsterCounter_Local"); break;
+ case 2: op[opCounterStyle].optext = get_text("OptionsDisplay", "MonsterCounter_Global"); break;
+ default: op[opCounterStyle].optext = "[!]"; break;
}
+
+// Update Monster Counter tip text
+if (global.curropt == opCounterStyle) {
+ switch (global.ophudshowmetrcount) {
+ case 0: global.tiptext = get_text("OptionsDisplay", "MonsterCounter_Disabled_Tip"); break;
+ case 1: global.tiptext = get_text("OptionsDisplay", "MonsterCounter_Local_Tip"); break;
+ case 2: global.tiptext = get_text("OptionsDisplay", "MonsterCounter_Global_Tip"); break;
+ default: global.tiptext = "[!]"; break;
+ }
+}
+
+// Show Hints
+if (global.ophudshowhints) {
+ op[opShowHints].optext = get_text("GlobalOptions", "Enabled");
+} else op[opShowHints].optext = get_text("GlobalOptions", "Disabled");
+
+// Button Display Type
+switch (oControl.mod_buttonsconfig) {
+ case 0: op[opButtonType].optext = get_text("ExtrasMenu", "XBox"); break;
+ case 1: op[opButtonType].optext = get_text("ExtrasMenu", "Playstation"); break;
+ case 2: op[opButtonType].optext = get_text("ExtrasMenu", "NintendoPro"); break;
+ case 3: op[opButtonType].optext = get_text("ExtrasMenu", "SNESColored"); break;
+ case 4: op[opButtonType].optext = get_text("ExtrasMenu", "MOGA"); break;
+ case 5: op[opButtonType].optext = get_text("ExtrasMenu", "OUYA"); break;
+ default: op[opButtonType].optext = "[!]"; break;
+}
+
+// Show Scans
+if (global.ophudshowlogmsg) {
+ op[opShowScans].optext = get_text("GlobalOptions", "Enabled");
+} else op[opShowScans].optext = get_text("GlobalOptions", "Disabled");
+
+// Language
+op[opLanguage].optext = lang[global.currentlanguage];
@@ -531,22 +583,15 @@ if (global.widescreen_enabled) {
1
- with (op[0]) instance_destroy();
-with (op[1]) instance_destroy();
-with (op[2]) instance_destroy();
-with (op[3]) instance_destroy();
-with (op[4]) instance_destroy();
-with (op[5]) instance_destroy();
-with (op[6]) instance_destroy();
-with (op[7]) instance_destroy();
-with (op[8]) instance_destroy();
-with (op[9]) instance_destroy();
-with (op[10]) instance_destroy();
-with (op[11]) instance_destroy();
-with (op[12]) instance_destroy();
-with (op[50]) instance_destroy();
-with (op[51]) instance_destroy();
-with (op[52]) instance_destroy();
+ /// Delete menu options
+for (var i = 0; i <= menuSize; i++) {
+ with (op[i]) instance_destroy();
+}
+
+// Delete headers
+for (var i = 50; i <= 54; i++) {
+ with (op[i]) instance_destroy();
+}
@@ -569,92 +614,129 @@ with (op[52]) instance_destroy();
1
- y -= 8;
-sep = 16;
+ /// Create menu options
+
var i = 1;
-op[50] = instance_create(x, y * i, oMenuLabel);
+
+// Label
+op[50] = instance_create(x, y, oMenuLabel);
op[50].text = get_text("OptionsDisplay", "Title_Display");
-op[0] = instance_create(x, y + sep * i, oOptionLR);
-op[0].label = get_text("OptionsDisplay", "Fullscreen");
-op[0].optionid = 0;
-i++;
-if(os_type == os_android) { // android, replace fullscreen op with vsync
- op[0].label = get_text("OptionsDisplay", "VSync");
-}
-op[1] = instance_create(x, y + sep * i, oOptionLR);
-if (global.opfullscreen) {
- op[1].label = get_text("OptionsDisplay", "DisplayScale");
-} else op[1].label = get_text("OptionsDisplay", "WindowSize");
-op[1].optionid = 1;
-if(os_type == os_android) { // android, make op[1] vsync invis
- op[1].visible = false;
- global.canedit[1] = 0;
-}
-i++;
-op[2] = instance_create(x, y + sep * i, oOptionLR);
-op[2].label = get_text("OptionsDisplay", "VSync");
-op[2].optionid = 2;
-if(os_type == os_android) { // invis vsync op[2] on android
- op[2].visible = false;
- global.canedit[2] = 0;
- i = 1;
+
+// Fullscreen and scale should NOT exist on Android
+if (os_type != os_android) {
+ // Fullscreen
+ op[opFullscreen] = instance_create(x, y + SPACER * i, oOptionLR);
+ op[opFullscreen].label = get_text("OptionsDisplay", "Fullscreen");
+ op[opFullscreen].optionid = opFullscreen;
+ i++;
+
+ // Scale
+ op[opScale] = instance_create(x, y + SPACER * i, oOptionLR);
+
+ // Scale on fullscreen, size on not
+ if (global.opfullscreen) {
+ op[opScale].label = get_text("OptionsDisplay", "DisplayScale");
+ } else op[opScale].label = get_text("OptionsDisplay", "WindowSize");
+ op[opScale].optionid = opScale;
+ i++;
}
+// VSync
+op[opVSync] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opVSync].label = get_text("OptionsDisplay", "VSync");
+op[opVSync].optionid = opVSync;
i++;
-op[10] = instance_create(x, y + sep * i, oOptionLR);
-op[10].label = get_text("Misc", "SensitivityMode");
-op[10].optionid = 10;
+// Sensitivity Mode
+op[opSensitivity] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opSensitivity].label = get_text("Misc", "SensitivityMode");
+op[opSensitivity].optionid = opSensitivity;
i++;
-op[11] = instance_create(x, y + sep * i, oOptionLR);
-op[11].label = get_text("Misc", "Widescreen");
-op[11].optionid = 11;
+// Widescreen
+op[opWidescreen] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opWidescreen].label = get_text("Misc", "Widescreen");
+op[opWidescreen].optionid = opWidescreen;
i++;
-op[51] = instance_create(x, y + sep * i, oMenuLabel);
+
+// HUD Header
+op[51] = instance_create(x, y + SPACER * i, oMenuLabel);
op[51].text = get_text("OptionsDisplay", "Title_HUD");
i++;
-op[3] = instance_create(x, y + sep * i, oOptionLR);
-op[3].label = get_text("OptionsDisplay", "HUDDisplay");
-op[3].optionid = 3;
+
+// HUD Display
+op[opShowHUD] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opShowHUD].label = get_text("OptionsDisplay", "HUDDisplay");
+op[opShowHUD].optionid = opShowHUD;
i++;
-op[4] = instance_create(x, y + sep * i, oOptionLR);
-op[4].label = get_text("OptionsDisplay", "HUDMap");
-op[4].optionid = 4;
+
+// Map Display
+op[opShowMap] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opShowMap].label = get_text("OptionsDisplay", "HUDMap");
+op[opShowMap].optionid = opShowMap;
i++;
-op[5] = instance_create(x, y + sep * i, oOptionLR);
-op[5].label = get_text("OptionsDisplay", "MonsterCounter");
-op[5].optionid = 5;
+
+// Monster Counter Style
+op[opCounterStyle] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opCounterStyle].label = get_text("OptionsDisplay", "MonsterCounter");
+op[opCounterStyle].optionid = opCounterStyle;
i++;
-op[52] = instance_create(x, y + sep * i, oMenuLabel);
+
+// Notification Header
+op[52] = instance_create(x, y + SPACER * i, oMenuLabel);
op[52].text = get_text("OptionsDisplay", "Title_Notifications");
i++;
-op[6] = instance_create(x, y + sep * i, oOptionLR);
-op[6].label = get_text("OptionsDisplay", "Hints");
-op[6].optionid = 6;
+
+// Show Hints
+op[opShowHints] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opShowHints].label = get_text("OptionsDisplay", "Hints");
+op[opShowHints].optionid = opShowHints;
i++;
-op[7] = instance_create(x, y + sep * i, oOptionLR);
-op[7].label = get_text("ExtrasMenu", "Controller");
-op[7].optionid = 7;
+
+// Button Display Type
if ((os_type != os_android && !gamepad_is_connected(global.gamepadIndex)) || (os_type == os_android && (!global.joydetected || global.compatibilitymode)) || (os_type == os_android && global.compatibilitymode)) {
- op[7].visible = false;
- global.canedit[7] = 0;
+ op[opButtonType] = instance_create(x, y + SPACER * i, oOptionLR);
+ op[opButtonType].label = get_text("ExtrasMenu", "Controller");
+ op[opButtonType].optionid = opButtonType;
+ i++;
}
-else i++;
-op[8] = instance_create(x, y + sep * i, oOptionLR);
-op[8].label = get_text("OptionsDisplay", "ScanNotifications");
-op[8].optionid = 8;
+
+// Show Scans
+op[opShowScans] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opShowScans].label = get_text("OptionsDisplay", "ScanNotifications");
+op[opShowScans].optionid = opShowScans;
i++;
-op[9] = instance_create(x, y + sep * i, oOptionLR);
-op[9].label = get_text("OptionsDisplay", "Language");
-op[9].optionid = 9;
+// Language
+op[opLanguage] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opLanguage].label = get_text("OptionsDisplay", "Language");
+op[opLanguage].optionid = opLanguage;
+i++;
+
+// Author display
+op[53] = instance_create(x, y + SPACER * i, oPauseOption);
+// The space here will not carry from the lang file, so we manually insert it.
+op[53].label = get_text("OptionsDisplay", "Author") + " " + langAuthor[global.currentlanguage];
+op[53].optionid = 53;
+op[53].canEdit = 0;
+op[53].color = c_gray;
+i++;
+var author2text = get_text("OptionsDisplay", "Author");
+op[54] = instance_create(x + 8, y + SPACER * i, oPauseOption);
+// The space here will not carry from the lang file, so we manually insert it.
+op[54].label = langAuthor2[global.currentlanguage];
+op[54].optionid = 54;
+op[54].canEdit = 0;
+op[54].color = c_gray;
i++;
-op[12] = instance_create(x, y + sep * i, oPauseOption);
-op[12].optionid = 12;
-op[12].label = get_text("GlobalOptions", "Exit");
+// Exit - This will always be the last option
+op[menuSize] = instance_create(x, y + SPACER * i, oPauseOption);
+op[menuSize].optionid = menuSize;
+op[menuSize].label = get_text("GlobalOptions", "Exit");
+
+// Update options text
event_user(2);
diff --git a/objects/oPauseOption.object.gmx b/objects/oPauseOption.object.gmx
index f45148c..afa03a6 100644
--- a/objects/oPauseOption.object.gmx
+++ b/objects/oPauseOption.object.gmx
@@ -26,6 +26,7 @@
1
enabled = 1;
+color = c_white;
@@ -55,7 +56,7 @@ if (global.curropt == optionid) {
}
draw_set_color(c_black);
draw_text(x + 1, y - 3, label);
-draw_set_color(c_white);
+draw_set_color(color);
if (enabled == 0) {
draw_set_alpha(0.5);
} else draw_set_alpha(1);
diff --git a/scripts/wrap.gml b/scripts/wrap.gml
new file mode 100644
index 0000000..57c2744
--- /dev/null
+++ b/scripts/wrap.gml
@@ -0,0 +1,5 @@
+/// wrap(variable, min, max)
+
+if (argument0 < argument1) return argument2;
+else if (argument0 > argument2) return argument1;
+else return argument0;
diff --git a/sprites/sGamet1.sprite.gmx b/sprites/sGamet1.sprite.gmx
index e2a97cb..0ea9b72 100644
--- a/sprites/sGamet1.sprite.gmx
+++ b/sprites/sGamet1.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 19
- 0
- 15
+ 19
+ 0
+ 15
+ 0
0
0
@@ -21,8 +21,5 @@
16
images\sGamet1_0.png
- images\sGamet1_1.png
- images\sGamet1_2.png
- images\sGamet1_3.png
diff --git a/sprites/sGamet2.sprite.gmx b/sprites/sGamet2.sprite.gmx
index 9367159..b164d71 100644
--- a/sprites/sGamet2.sprite.gmx
+++ b/sprites/sGamet2.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 19
- 0
- 16
+ 19
+ 0
+ 16
+ 0
0
0
@@ -21,8 +21,5 @@
17
images\sGamet2_0.png
- images\sGamet2_1.png
- images\sGamet2_2.png
- images\sGamet2_3.png
diff --git a/sprites/sGeega1.sprite.gmx b/sprites/sGeega1.sprite.gmx
index 80e8280..5e8432a 100644
--- a/sprites/sGeega1.sprite.gmx
+++ b/sprites/sGeega1.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 1
- 16
- 1
- 16
+ 17
+ 0
+ 17
+ 0
0
0
@@ -21,8 +21,5 @@
18
images\sGeega1_0.png
- images\sGeega1_1.png
- images\sGeega1_2.png
- images\sGeega1_3.png
diff --git a/sprites/sGeega2.sprite.gmx b/sprites/sGeega2.sprite.gmx
index 409424e..d9bf67a 100644
--- a/sprites/sGeega2.sprite.gmx
+++ b/sprites/sGeega2.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 1
- 16
- 1
- 16
+ 17
+ 0
+ 17
+ 0
0
0
@@ -21,8 +21,5 @@
18
images\sGeega2_0.png
- images\sGeega2_1.png
- images\sGeega2_2.png
- images\sGeega2_3.png
diff --git a/sprites/sGeemer.sprite.gmx b/sprites/sGeemer.sprite.gmx
index 3d0e04b..306e0c4 100644
--- a/sprites/sGeemer.sprite.gmx
+++ b/sprites/sGeemer.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 22
- 0
- 17
+ 22
+ 0
+ 17
+ 0
0
0
@@ -21,9 +21,5 @@
18
images\sGeemer_0.png
- images\sGeemer_1.png
- images\sGeemer_2.png
- images\sGeemer_3.png
- images\sGeemer_4.png
diff --git a/sprites/sMellow.sprite.gmx b/sprites/sMellow.sprite.gmx
index 8849324..9d1af23 100644
--- a/sprites/sMellow.sprite.gmx
+++ b/sprites/sMellow.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 19
- 1
- 8
+ 19
+ 0
+ 9
+ 0
0
0
@@ -21,8 +21,5 @@
10
images\sMellow_0.png
- images\sMellow_1.png
- images\sMellow_2.png
- images\sMellow_3.png
diff --git a/sprites/sSkree1.sprite.gmx b/sprites/sSkree1.sprite.gmx
index 513d038..08eb0a8 100644
--- a/sprites/sSkree1.sprite.gmx
+++ b/sprites/sSkree1.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 27
- 0
- 26
+ 27
+ 0
+ 26
+ 0
0
0
@@ -21,8 +21,5 @@
27
images\sSkree1_0.png
- images\sSkree1_1.png
- images\sSkree1_2.png
- images\sSkree1_3.png
diff --git a/sprites/sSkree2.sprite.gmx b/sprites/sSkree2.sprite.gmx
index ab7277d..2c25871 100644
--- a/sprites/sSkree2.sprite.gmx
+++ b/sprites/sSkree2.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 21
- 0
- 28
+ 21
+ 0
+ 28
+ 0
0
0
@@ -21,9 +21,5 @@
29
images\sSkree2_0.png
- images\sSkree2_1.png
- images\sSkree2_2.png
- images\sSkree2_3.png
- images\sSkree2_4.png
diff --git a/sprites/sSkreeB1.sprite.gmx b/sprites/sSkreeB1.sprite.gmx
index ec9f965..83d00c5 100644
--- a/sprites/sSkreeB1.sprite.gmx
+++ b/sprites/sSkreeB1.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 27
- 0
- 26
+ 27
+ 0
+ 26
+ 0
0
0
@@ -21,8 +21,5 @@
27
images\sSkreeB1_0.png
- images\sSkreeB1_1.png
- images\sSkreeB1_2.png
- images\sSkreeB1_3.png
diff --git a/sprites/sSkreeB2.sprite.gmx b/sprites/sSkreeB2.sprite.gmx
index 4011775..e8223e6 100644
--- a/sprites/sSkreeB2.sprite.gmx
+++ b/sprites/sSkreeB2.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 21
- 0
- 28
+ 21
+ 0
+ 28
+ 0
0
0
@@ -21,9 +21,5 @@
29
images\sSkreeB2_0.png
- images\sSkreeB2_1.png
- images\sSkreeB2_2.png
- images\sSkreeB2_3.png
- images\sSkreeB2_4.png
diff --git a/sprites/sViola.sprite.gmx b/sprites/sViola.sprite.gmx
index a9047a0..69bffab 100644
--- a/sprites/sViola.sprite.gmx
+++ b/sprites/sViola.sprite.gmx
@@ -21,21 +21,5 @@
16
images\sViola_0.png
- images\sViola_1.png
- images\sViola_2.png
- images\sViola_3.png
- images\sViola_4.png
- images\sViola_5.png
- images\sViola_6.png
- images\sViola_7.png
- images\sViola_8.png
- images\sViola_9.png
- images\sViola_10.png
- images\sViola_11.png
- images\sViola_12.png
- images\sViola_13.png
- images\sViola_14.png
- images\sViola_15.png
- images\sViola_16.png
diff --git a/sprites/sViolaB.sprite.gmx b/sprites/sViolaB.sprite.gmx
index fbe0ae7..ca0c84c 100644
--- a/sprites/sViolaB.sprite.gmx
+++ b/sprites/sViolaB.sprite.gmx
@@ -21,21 +21,5 @@
16
images\sViolaB_0.png
- images\sViolaB_1.png
- images\sViolaB_2.png
- images\sViolaB_3.png
- images\sViolaB_4.png
- images\sViolaB_5.png
- images\sViolaB_6.png
- images\sViolaB_7.png
- images\sViolaB_8.png
- images\sViolaB_9.png
- images\sViolaB_10.png
- images\sViolaB_11.png
- images\sViolaB_12.png
- images\sViolaB_13.png
- images\sViolaB_14.png
- images\sViolaB_15.png
- images\sViolaB_16.png
diff --git a/sprites/sWaver.sprite.gmx b/sprites/sWaver.sprite.gmx
index d514463..718af7c 100644
--- a/sprites/sWaver.sprite.gmx
+++ b/sprites/sWaver.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 25
- 1
- 23
+ 25
+ 0
+ 24
+ 0
0
0
@@ -21,10 +21,5 @@
25
images\sWaver_0.png
- images\sWaver_1.png
- images\sWaver_2.png
- images\sWaver_3.png
- images\sWaver_4.png
- images\sWaver_5.png
diff --git a/sprites/sWaverB.sprite.gmx b/sprites/sWaverB.sprite.gmx
index c11bc73..4cd12cd 100644
--- a/sprites/sWaverB.sprite.gmx
+++ b/sprites/sWaverB.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 0
- 25
- 1
- 23
+ 25
+ 0
+ 24
+ 0
0
0
@@ -21,10 +21,5 @@
25
images\sWaverB_0.png
- images\sWaverB_1.png
- images\sWaverB_2.png
- images\sWaverB_3.png
- images\sWaverB_4.png
- images\sWaverB_5.png
diff --git a/sprites/sZebbo1.sprite.gmx b/sprites/sZebbo1.sprite.gmx
index eedb961..9917748 100644
--- a/sprites/sZebbo1.sprite.gmx
+++ b/sprites/sZebbo1.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 1
- 16
- 1
- 16
+ 17
+ 0
+ 16
+ 0
0
0
@@ -21,7 +21,5 @@
17
images\sZebbo1_0.png
- images\sZebbo1_1.png
- images\sZebbo1_2.png
diff --git a/sprites/sZebbo2.sprite.gmx b/sprites/sZebbo2.sprite.gmx
index a4bd3d5..885cbd9 100644
--- a/sprites/sZebbo2.sprite.gmx
+++ b/sprites/sZebbo2.sprite.gmx
@@ -7,10 +7,10 @@
0
0
0
- 1
- 16
- 1
- 15
+ 17
+ 0
+ 16
+ 0
0
0
@@ -21,7 +21,5 @@
17
images\sZebbo2_0.png
- images\sZebbo2_1.png
- images\sZebbo2_2.png