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 bc0d71f..f67ec5b 100644
--- a/objects/oCreditsText.object.gmx
+++ b/objects/oCreditsText.object.gmx
@@ -33,42 +33,17 @@
* = centered header (gets custom display color)
*/
-// Refer to key key
+// 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=Torbjørn 'Falcool' Brandrud;Lise Trehjørningen=Gabriel Kaplan;Nommiin=Nicolas 'Skol' Del Negro;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;Metroid3D=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;;*Spanish Localization;Diegomg=Imsu;;*German Localization;m3Zz=LPCaiser;Miepee=unknown;/fedprod;;*Italian Localization;/LetsPlayNintendoITA;/SadNES cITy e Vecna;/ReNext;;*French Localization;Atver=Vectrex28;;*Russian Localization;/DarkEspeon;;*Japanese Localization;/Gponys;;*Czech Localization;/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;";
-/*
- To have it be the same I divided the current number of lines
- by the original number of lines in 1.1, and multiplied by 1.1s
- credits time.
-
- -Wanderer
-
- 120 lines in 1.1
-
- 176 lines in 1.5.3
-
- Time: 6000 steps (100 seconds, or 1 minute 40 seconds)
-
- 1.1 vspeed: -0.27
-
- 120 / -0.27 = 176 / X
-
- X = (176 * -0.27) / 120
-
- scrollSpeed = (TEXT_ROWS * -0.27) / 120;
-
-*/
-
-
-
// 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;
-WIDE_SPACE = oControl.widescreen_space / 2;
-
// Vars
var arrayIndex = 0;
var subStr = "";
@@ -246,21 +221,29 @@ if (os_type == os_android) os_powersave_enable(false);
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
+// This dictates the credit scrolling speed
if (statetime == 700) vspeed = SCROLL_SPEED; // -0.34;
-if (y <= ystart - (TEXT_ROWS * 12)) vspeed = 0;
+// This stops the credits on the final line
+if (y <= ystart + 17 - (TEXT_ROWS * 12)) vspeed = 0;
statetime++;
@@ -285,7 +268,9 @@ statetime++;
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);
@@ -334,7 +319,6 @@ draw_set_halign(fa_center);
draw_cool_text(X_POS, y + 17, textCenter, c_black, c_white, c_white, 1);
// Header
-//draw_set_color(c_gray);
draw_cool_text(X_POS, y + 17, textHeader, c_black, c_dkgray, c_gray, 1);
// Draw black bars
diff --git a/objects/oOptionsDisplay.object.gmx b/objects/oOptionsDisplay.object.gmx
index 5667270..7eda4f9 100644
--- a/objects/oOptionsDisplay.object.gmx
+++ b/objects/oOptionsDisplay.object.gmx
@@ -25,7 +25,81 @@
1
- global.curropt = 0;
+ 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 + 30;
+
+i = 0;
+
+// Enable menu
+repeat (menuSize + 1) {
+ canEdit[i] = 1;
+ i++;
+}
+
+// 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", "[!]");
+ ini_close();
+}
+
+// Create menu items
+event_user(0);
+
+// Load tip text
+event_user(3);
+
+// Load current tip text
+global.tiptext = tip[global.curropt];
+
+
+/*
+
+global.curropt = 0;
lastitem = 12; // og 10
active = 0;
alarm[0] = 5;
@@ -41,6 +115,7 @@ langno = array_length_1d(global.language);
for (i = 0; i < langno; i += 1) {
ini_open(global.language[i]);
lang[i] = ini_read_string("Header", "Language", "[!]");
+ langAuthors[i] = ini_read_string("Header", "Author", "[!]");
ini_close();
}
event_user(0);
@@ -68,7 +143,8 @@ global.tiptext = tip[global.curropt];
1
- event_user(1);
+ /// Destroy menu options
+event_user(1);
@@ -91,7 +167,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,6 +216,166 @@ display_reset(0, global.opvsync);
1
if (active) {
+ // Menu DOWN
+ if (oControl.kDown > 0 && (oControl.kDownPushedSteps == 0 || oControl.kDownPushedSteps > 30 && timer == 0)) {
+ 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;
+ }
+ // New target
+ targetY = op[global.curropt].y + 16;
+ if (targetY > vTargetY) targetY = vTargetY;
+ sfx_play(sndMenuMove);
+ global.tiptext = tip[global.curropt];
+ } // 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;
+ }
+ // New target
+ targetY = op[global.curropt].y + 16;
+ if (targetY > vTargetY) targetY = vTargetY;
+ sfx_play(sndMenuMove);
+ 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 (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;
+ }
+ }
+
+ // 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);
+ }
+ }
+ }
+
+ // VSync
+ if (global.curropt == opVSync) {
+ global.opvsync = !global.opvsync;
+ display_reset(0, global.opvsync);
+ if (!global.opfullscreen) set_window_scale(global.opscale);
+ }
+
+ // Sensitivity Mode
+ if (global.curropt == opSensitivity) {
+ global.sensitivitymode = !global.sensitivitymode;
+ }
+
+ // 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) {
+ view_visible[1] = false;
+ }
+
+ if (global.opfullscreen == 0) {
+ set_window_scale(window_get_height()/240);
+ window_set_position(window_get_x()+((53-(global.widescreen_enabled*106))*(window_get_height()/240)),window_get_y());
+ }
+ if (global.opfullscreen == 1 || os_type == os_android) {
+ display_reset(0, global.opvsync);
+ }
+ }
+ }
+
+ // 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];
+ }
+
+ sfx_play(sndMenuMove);
+
+ // Update text
+ event_user(2);
+ }
+
+ if (oControl.kMenu1 && oControl.kMenu1PushedSteps == 0) {
+ if (global.curropt == menuSize) {
+ load_resources();
+ save_gameoptions();
+ view_object[0] = noone;
+ view_yview[0] = 0;
+ instance_create(50, 92, oOptionsMain);
+ instance_destroy();
+ sfx_play(sndMenuSel);
+ }
+ }
+}
+
+if (targetY != y) y += (targetY - y) / 10;
+
+timer -= 1;
+
+if (timer < 0) timer = 8;
+
+/*
+if (active) {
if (oControl.kDown > 0 && (oControl.kDownPushedSteps == 0 || oControl.kDownPushedSteps > 30 && timer == 0)) {
if (os_type == os_android) {
switch global.curropt {
@@ -160,11 +397,11 @@ display_reset(0, global.opvsync);
}
}
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; }
+ while (global.candit[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; }
sfx_play(sndMenuMove);
global.tiptext = tip[global.curropt];
}
@@ -187,10 +424,10 @@ display_reset(0, global.opvsync);
}
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; }
+ 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; }
sfx_play(sndMenuMove);
global.tiptext = tip[global.curropt];
}
@@ -334,7 +571,7 @@ display_reset(0, global.opvsync);
}
}
} // if (active)
-if (targety != y) y += (targety - y) / 10;
+if (targetY != y) y += (targetY - y) / 10;
timer -= 1;
if (timer < 0) timer = 8;
@@ -359,7 +596,43 @@ if (timer < 0) timer = 8;
1
- op[50].text = get_text("OptionsDisplay", "Title_Display");
+ /// 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");
+}
+
+op[opVSync].label = get_text("OptionsDisplay", "VSync");
+op[51].text = get_text("OptionsDisplay", "Title_HUD");
+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[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[menuSize].label = get_text("GlobalOptions", "Exit");
+
+with (oSS_Fg) {
+ opt_text1 = get_text("Subscreen", "Title_Options");
+ tip1text = get_text("Subscreen", "Menu_Tip");
+}
+
+/*
+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");
@@ -409,7 +682,27 @@ with (oSS_Fg) {
1
- tip[0] = get_text("OptionsDisplay", "Fullscreen_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");
+
+
+/*
+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");
@@ -448,7 +741,103 @@ tip[12] = get_text("GlobalOptions", "ExitMain_Tip");
1
- if (global.opfullscreen) {
+ /// Update option text
+
+// Fullscreen, Scale
+if (global.opfullscreen) {
+ op[opFullscreen].optext = get_text("GlobalOptions", "Enabled");
+ op[opScale].label = get_text("OptionsDisplay", "DisplayScale");
+} else {
+ 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;
+}
+
+// Vsync
+if (global.opvsync) {
+ op[opVSync].optext = get_text("GlobalOptions", "Enabled");
+} else {
+ op[opVSync].optext = get_text("GlobalOptions", "Disabled");
+}
+
+// Sensitivity Mode
+if (global.sensitivitymode) {
+ op[opSensitivity].optext = get_text("GlobalOptions", "Enabled");
+} else {
+ op[opSensitivity].optext = get_text("GlobalOptions", "Disabled");
+}
+
+// Widescreen
+if (global.widescreen_enabled) {
+ op[opWidescreen].optext = get_text("GlobalOptions", "Enabled");
+} else {
+ 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];
+
+
+/*
+if (global.opfullscreen) {
op[0].optext = get_text("GlobalOptions", "Enabled");
op[1].label = get_text("OptionsDisplay", "DisplayScale");
} else {
@@ -531,22 +920,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 <= 52; i++) {
+ with (op[i]) instance_destroy();
+}
@@ -569,7 +951,116 @@ with (op[52]) instance_destroy();
1
- y -= 8;
+ /// Create menu options
+
+var i = 1;
+
+// Label
+op[50] = instance_create(x, y, oMenuLabel);
+op[50].text = get_text("OptionsDisplay", "Title_Display");
+
+// 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++;
+
+// Sensitivity Mode
+op[opSensitivity] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opSensitivity].label = get_text("Misc", "SensitivityMode");
+op[opSensitivity].optionid = opSensitivity;
+i++;
+
+// Widescreen
+op[opWidescreen] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opWidescreen].label = get_text("Misc", "Widescreen");
+op[opWidescreen].optionid = opWidescreen;
+i++;
+
+// HUD Header
+op[51] = instance_create(x, y + SPACER * i, oMenuLabel);
+op[51].text = get_text("OptionsDisplay", "Title_HUD");
+i++;
+
+// HUD Display
+op[opShowHUD] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opShowHUD].label = get_text("OptionsDisplay", "HUDDisplay");
+op[opShowHUD].optionid = opShowHUD;
+i++;
+
+// Map Display
+op[opShowMap] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opShowMap].label = get_text("OptionsDisplay", "HUDMap");
+op[opShowMap].optionid = opShowMap;
+i++;
+
+// Monster Counter Style
+op[opCounterStyle] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opCounterStyle].label = get_text("OptionsDisplay", "MonsterCounter");
+op[opCounterStyle].optionid = opCounterStyle;
+i++;
+
+// Notification Header
+op[52] = instance_create(x, y + SPACER * i, oMenuLabel);
+op[52].text = get_text("OptionsDisplay", "Title_Notifications");
+i++;
+
+// Show Hints
+op[opShowHints] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opShowHints].label = get_text("OptionsDisplay", "Hints");
+op[opShowHints].optionid = opShowHints;
+i++;
+
+// 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[opButtonType] = instance_create(x, y + SPACER * i, oOptionLR);
+ op[opButtonType].label = get_text("ExtrasMenu", "Controller");
+ op[opButtonType].optionid = opButtonType;
+ i++;
+}
+
+// Show Scans
+op[opShowScans] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opShowScans].label = get_text("OptionsDisplay", "ScanNotifications");
+op[opShowScans].optionid = opShowScans;
+i++;
+
+// Language
+op[opLanguage] = instance_create(x, y + SPACER * i, oOptionLR);
+op[opLanguage].label = get_text("OptionsDisplay", "Language");
+op[opLanguage].optionid = opLanguage;
+i++;
+
+// 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);
+
+
+/*
+y -= 8;
sep = 16;
var i = 1;
op[50] = instance_create(x, y * i, oMenuLabel);
@@ -586,7 +1077,7 @@ 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
+if(os_type == os_android) { // android, make op[1] invis
op[1].visible = false;
global.canedit[1] = 0;
}
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