From c1787fde263f6a5d8058f761e00c4e61ffbf0493 Mon Sep 17 00:00:00 2001 From: Die Katze Date: Wed, 23 Dec 2020 22:00:35 +0500 Subject: [PATCH] Introduce basic v1.4.9999 support, will revert to 1763 state in the next commit. --- AM2R.project.gmx | 8 +++++++- Configs/Default.config.gmx | 30 ++++++++++++++++++++++++++++++ README.md | 11 ++++++++++- objects/oControl.object.gmx | 27 ++++++++++++++++++--------- objects/oCreditsText.object.gmx | 6 +++--- objects/oDrillSeq1.object.gmx | 2 +- objects/oDrillSeq2.object.gmx | 2 +- scripts/ctrl_vibrate.gml | 6 +++--- scripts/scr_font_replace.gml | 22 ++++++++++++++++++++++ scripts/touch_keys.gml | 20 ++++++++++---------- scripts/vib_play_effect.gml | 7 +++++++ scripts/vib_stop.gml | 7 +++++++ 12 files changed, 119 insertions(+), 29 deletions(-) create mode 100644 scripts/scr_font_replace.gml create mode 100644 scripts/vib_play_effect.gml create mode 100644 scripts/vib_stop.gml diff --git a/AM2R.project.gmx b/AM2R.project.gmx index 209c908..8a3938f 100644 --- a/AM2R.project.gmx +++ b/AM2R.project.gmx @@ -4326,6 +4326,11 @@ + + + + + shaders\shGameBoy.shader @@ -5793,7 +5798,7 @@ rooms\rm_gameplay - + (os_browser == browser_not_a_browser) (os_browser != browser_not_a_browser) 19000 @@ -5804,6 +5809,7 @@ 19005 19006 19007 + true help.rtf diff --git a/Configs/Default.config.gmx b/Configs/Default.config.gmx index abfaf1e..dd2169c 100644 --- a/Configs/Default.config.gmx +++ b/Configs/Default.config.gmx @@ -301,6 +301,24 @@ Configs\Default\ios\icons\icon57.png Configs\Default\ios\icons\icon72.png Configs\Default\ios\icons\icon76.png + Configs\Default\ios\icons\app\ipad_152.png + Configs\Default\ios\icons\app\ipad_76.png + Configs\Default\ios\icons\notification\ipad_20.png + Configs\Default\ios\icons\notification\ipad_40.png + Configs\Default\ios\icons\app\ipad_pro_167.png + Configs\Default\ios\icons\settings\ipad_29.png + Configs\Default\ios\icons\settings\ipad_58.png + Configs\Default\ios\icons\spotlight\ipad_40.png + Configs\Default\ios\icons\spotlight\ipad_80.png + Configs\Default\ios\icons\app\iphone_120.png + Configs\Default\ios\icons\app\iphone_180.png + Configs\Default\ios\icons\notification\iphone_40.png + Configs\Default\ios\icons\notification\iphone_60.png + Configs\Default\ios\icons\settings\iphone_58.png + Configs\Default\ios\icons\settings\iphone_87.png + Configs\Default\ios\icons\spotlight\iphone_120.png + Configs\Default\ios\icons\spotlight\iphone_80.png + Configs\Default\ios\icons\itunes\itunes_1024.png -1 Configs\Default\ios\iPadRetinasplash.png Configs\Default\ios\iPadRetinasplashPortrait.png @@ -312,10 +330,22 @@ Configs\Default\ios\iPhone6splashPortrait.png Configs\Default\ios\iPhone6Plussplash.png Configs\Default\ios\iPhone6PlussplashPortrait.png + Configs\Default\ios\iPhone7splash.png + Configs\Default\ios\iPhone7splashPortrait.png + Configs\Default\ios\iPhone7Plussplash.png + Configs\Default\ios\iPhone7PlussplashPortrait.png + Configs\Default\ios\iPhone8splash.png + Configs\Default\ios\iPhone8splashPortrait.png + Configs\Default\ios\iPhone8Plussplash.png + Configs\Default\ios\iPhone8PlussplashPortrait.png Configs\Default\ios\IphoneRetinasplash.png Configs\Default\ios\IphoneRetinasplashPortrait.png Configs\Default\ios\iPhonesplash.png Configs\Default\ios\iPhonesplashPortrait.png + Configs\Default\ios\iPhonesesplash.png + Configs\Default\ios\iPhonesesplashPortrait.png + Configs\Default\ios\iPhonexsplash.png + Configs\Default\ios\iPhonexsplashPortrait.png 1 0 -1 diff --git a/README.md b/README.md index 3777fbe..163bb9b 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Reordering assets created before the Community Updates began can have consequenc Much of this code is messy, uses unusual solutions, and does not hold to our established formatting style - this is a result of AM2R's reconstruction and nature as a learning project passed down to multiple lead developers. ## Requirements -[GameMaker: Studio 1.4.1763](https://store.yoyogames.com/downloads/gm-studio/GMStudio-Installer-1.4.1763.exe) - the IDE for editing and compiling this project. +[GameMaker: Studio 1.4.1763](https://store.yoyogames.com/downloads/gm-studio/GMStudio-Installer-1.4.1763.exe) - the IDE for editing and compiling this project. (more on that below) [GMXDataSync](https://raw.githubusercontent.com/YAL-GameMaker-Tools/GmxDataSync/master/Executable/GmxDataSync.exe) - a utility created by YellowAfterlife to populate project files with matching game assets. @@ -51,3 +51,12 @@ This repository, being based on YellowAfterlife's source reconstruction, is inst Afterwards, replace the two blank shader assets with default GM:S shader skeletons or your own copy of each shader, as well as the accompanying script files for the Retro Palette Swapper: `pal_swap_init_system` and `pal_swap_set`. Finally, you will need to install `modifiers.ini` as well as the `lang` and `mods` folders as datafiles within the GM:S project. The default ones do not contain the actual assets and are merely references. These can be copied over from your AM2R_15_2 folder. + + +## About GameMaker versions +This source code was designed to run on GM:S 1.4.1763, however, if you feel a bit experimental (or if you don't want to downgrade), try to do the following: + +- Set `IS_9999` macro to `true`. +- Comment all the lines where IDE is complaining about missing functions. +- Try running the game. +- Hope it runs. diff --git a/objects/oControl.object.gmx b/objects/oControl.object.gmx index 301d385..51f49e8 100644 --- a/objects/oControl.object.gmx +++ b/objects/oControl.object.gmx @@ -286,29 +286,29 @@ subScrItemOffset = 0; // Replace the default fonts if replacement files exist. ini_open("lang/fonts/sizes.ini"); - +if (IS_9999) font_add_enable_aa(false); if(file_exists("lang/fonts/04b09.ttf")) { - font_replace(fontGUI, "lang/fonts/04b09.ttf", ini_read_real('Sizes', '04b09_(large)', 16), false, false, 32, 255); - font_replace(fontSubScr, "lang/fonts/04b09.ttf", ini_read_real('Sizes', '04b09_(small)', 8), false, false, 32, 255); + scr_font_replace("fontGUI", "lang/fonts/04b09.ttf", ini_read_real('Sizes', '04b09_(large)', 16), false, false, 32, 255); + scr_font_replace("fontSubScr", "lang/fonts/04b09.ttf", ini_read_real('Sizes', '04b09_(small)', 8), false, false, 32, 255); GUIOffset = ini_read_real('Offsets', '04b09_(large)_offset', 0); subScrHeaderOffset = ini_read_real('Offsets', '04b09_(small)_offset', 0); } if(file_exists("lang/fonts/Acknowledge_TT_BRK.ttf")) { - font_replace(fontGUI2, "lang/fonts/Acknowledge_TT_BRK.ttf", ini_read_real('Sizes', 'Acknowledge_TT_BRK', 13), false, false, 32, 255); + scr_font_replace("fontGUI2", "lang/fonts/Acknowledge_TT_BRK.ttf", ini_read_real('Sizes', 'Acknowledge_TT_BRK', 13), false, false, 32, 255); } if(file_exists("lang/fonts/uni_05_53.ttf")) { - font_replace(fontMenuSmall, "lang/fonts/uni_05_53.ttf", ini_read_real('Sizes', 'uni_05_53', 8), false, false, 32, 255); + scr_font_replace("fontMenuSmall", "lang/fonts/uni_05_53.ttf", ini_read_real('Sizes', 'uni_05_53', 8), false, false, 32, 255); } if(file_exists("lang/fonts/04b24.ttf")) { - font_replace(fontMenuTiny, "lang/fonts/04b24.ttf", ini_read_real('Sizes', '04b24', 16), false, false, 32, 255); + scr_font_replace("fontMenuTiny", "lang/fonts/04b24.ttf", ini_read_real('Sizes', '04b24', 16), false, false, 32, 255); subScrItemOffset = ini_read_real('Offsets', '04b24_offset', -6); } if(file_exists("lang/fonts/Glasstown_NBP.ttf")) { - font_replace(fontMenuSmall2, "lang/fonts/Glasstown_NBP.ttf", ini_read_real('Sizes', 'Glasstown_NBP', 16), false, false, 32, 255); + scr_font_replace("fontMenuSmall2", "lang/fonts/Glasstown_NBP.ttf", ini_read_real('Sizes', 'Glasstown_NBP', 16), false, false, 32, 255); } ini_close(); @@ -370,7 +370,10 @@ pal_swap_init_system(shPaletteSwap); // I believe this now works for Linux. Perhaps. global.gamepadIndex = 0; - +if (IS_9999) { + var pos = application_get_position(); + display_set_gui_maximise(1, 1, pos[0], pos[1]); +} /*if ((os_type == os_android) || (os_type == os_linux)) { // do nothing }*/ @@ -1516,11 +1519,17 @@ if (widescreen && ((room == rm_options) || (room == rm_controller))) { if (surface_exists(gui_surface)) { if (global.ingame && displaygui && room != rm_transition && instance_exists(oCharacter)) { var d = application_get_position(); + var dx = 0; + var dy = 0; + if (!IS_9999) { + dx = d[0]; + dy = d[1]; + } //draw_surface_ext(gui_surface, displayx - d[0], displayy - d[1], display_scale, display_scale, 0, -1, 1); /*if (!global.opfullscreen) { draw_surface_ext(gui_surface, ((displayx - d[0])*abs(widescreen-1)) - floor((widescreen_space/2)*display_scale), displayy - d[1], display_scale, display_scale, 0, -1, 1); } else {*/ - draw_surface_ext(gui_surface, (displayx - d[0]), displayy - d[1], display_scale, display_scale, 0, -1, 1); + draw_surface_ext(gui_surface, (displayx - dx), displayy - dy, display_scale, display_scale, 0, -1, 1); //} } diff --git a/objects/oCreditsText.object.gmx b/objects/oCreditsText.object.gmx index fcb6863..1e87df0 100644 --- a/objects/oCreditsText.object.gmx +++ b/objects/oCreditsText.object.gmx @@ -175,7 +175,7 @@ statetime += 1; 1 - display_set_gui_size(-1,-1); + ///Return from the credits. if (global.creditsmenuopt == 0) { room_goto(rm_score); @@ -189,7 +189,7 @@ if (global.creditsmenuopt == 0) { - + 1 603 @@ -206,7 +206,7 @@ if (global.creditsmenuopt == 0) { 1 - display_set_gui_size(320,240); + ///Draw the credits text. draw_set_alpha(image_alpha); draw_set_font(fontGUI2); draw_set_color(c_black); diff --git a/objects/oDrillSeq1.object.gmx b/objects/oDrillSeq1.object.gmx index 5a3b5f2..767c6ea 100644 --- a/objects/oDrillSeq1.object.gmx +++ b/objects/oDrillSeq1.object.gmx @@ -69,7 +69,7 @@ with (oCharacter) { morphing = 0; turning = 0; } -immersion_stop(); +vib_stop(); instance_destroy(); diff --git a/objects/oDrillSeq2.object.gmx b/objects/oDrillSeq2.object.gmx index 54104ac..0febe59 100644 --- a/objects/oDrillSeq2.object.gmx +++ b/objects/oDrillSeq2.object.gmx @@ -69,7 +69,7 @@ with (oCharacter) { morphing = 0; turning = 0; } -immersion_stop(); +vib_stop(); instance_destroy(); diff --git a/scripts/ctrl_vibrate.gml b/scripts/ctrl_vibrate.gml index 7a1ea0d..610aa13 100644 --- a/scripts/ctrl_vibrate.gml +++ b/scripts/ctrl_vibrate.gml @@ -9,11 +9,11 @@ if (global.opxjoyvib && (!instance_exists(oBigQuake)) && (!instance_exists(oBigQ } else { if(floor(argument2) == 10) { - immersion_play_effect(6); + vib_play_effect(6); } else if(floor(argument2) == 15) { - immersion_play_effect(15); + vib_play_effect(15); } else if(floor(argument2) == 20) { - immersion_play_effect(82); + vib_play_effect(82); } } } diff --git a/scripts/scr_font_replace.gml b/scripts/scr_font_replace.gml new file mode 100644 index 0000000..d148cec --- /dev/null +++ b/scripts/scr_font_replace.gml @@ -0,0 +1,22 @@ +///scr_font_replace(variableName, name, size, bold, italic, first, last) +if (IS_9999) { + var reducedsize = ceil(argument2 - ((25 / 100) * argument2)); + // comment the line below if on 1763. + variable_global_set(argument0, font_add(argument1, reducedsize, argument3, argument4, argument5, argument6)); +} +else { + // 1.4.1763 doesn't have variable_* functions afaik... I am sorry. + var fontindex = -1; + switch (argument0) { + case "fontGUI": fontindex = fontGUI; break; + case "fontGUI2": fontindex = fontGUI2; break; + case "fontMenuSmall": fontindex = fontMenuSmall; break; + case "fontMenuTiny": fontindex = fontMenuTiny; break; + case "fontMenuSmall2": fontindex = fontMenuSmall2; break; + case "fontSubScr": fontindex = fontSubScr; break; + default: show_error("Invalid variable name.", true); + } + + // comment the line below if on 9999. + //font_replace(fontindex, argument1, argument2, argument3, argument4, argument5, argument6); +} diff --git a/scripts/touch_keys.gml b/scripts/touch_keys.gml index 23a8b00..cc6de1c 100644 --- a/scripts/touch_keys.gml +++ b/scripts/touch_keys.gml @@ -19,33 +19,33 @@ walk_zone = 0; // Haptic Effects if(global.opxjoyvib && instance_exists(oBigQuake) && global.ingame) { if(floor(oBigQuake.statetime) == 575) { - immersion_play_effect(34); + vib_play_effect(34); } if ((oBigQuake.statetime > 640) && (oBigQuake.statetime < 1150)) { - immersion_play_effect(28); + vib_play_effect(28); } else if(floor(oBigQuake.statetime) == 1150){ - immersion_stop(); - immersion_play_effect(41); + vib_stop(); + vib_play_effect(41); } } if(global.opxjoyvib && instance_exists(oBigQuakeQueen) && global.ingame) { if(floor(oBigQuakeQueen.statetime) == 75) { - immersion_play_effect(33); + vib_play_effect(33); } else if ((oBigQuakeQueen.statetime > 140) && (oBigQuakeQueen.statetime < 575)) { - immersion_play_effect(27); + vib_play_effect(27); } else if(floor(oBigQuakeQueen.statetime) == 575){ - immersion_stop(); - immersion_play_effect(40); + vib_stop(); + vib_play_effect(40); } } if(global.opxjoyvib && sfx_isplaying(sndDrillLoop) && global.ingame) { - immersion_play_effect(111); + vib_play_effect(111); } if(!global.ingame || room == rm_transition) { - immersion_stop(); + vib_stop(); } // Touch if(instance_exists(oTouchControls) && (global.joydetected == 0 || global.ingame == false)) { diff --git a/scripts/vib_play_effect.gml b/scripts/vib_play_effect.gml new file mode 100644 index 0000000..b01515a --- /dev/null +++ b/scripts/vib_play_effect.gml @@ -0,0 +1,7 @@ +///vib_play_effect(effectId) +if (IS_9999) { + return false; +} +else { + //return immersion_play_effect(argument0); // comment the line if on 9999. +} diff --git a/scripts/vib_stop.gml b/scripts/vib_stop.gml new file mode 100644 index 0000000..ac5e6dd --- /dev/null +++ b/scripts/vib_stop.gml @@ -0,0 +1,7 @@ +///vib_stop() +if (IS_9999) { + return false; +} +else { + //return immersion_stop(); // comment this line if on 9999. +}