From c4b353e51606112201a73ff257082ef7b440b92b Mon Sep 17 00:00:00 2001 From: Lojemiru Date: Wed, 3 Feb 2021 06:07:12 -0600 Subject: [PATCH 1/5] Begin new credits implementation. Yes, I know this sucks. It'll probably get reworked before moving into main. --- objects/oCreditsText.object.gmx | 338 +++++++++++++++++++++++++++++++- 1 file changed, 335 insertions(+), 3 deletions(-) diff --git a/objects/oCreditsText.object.gmx b/objects/oCreditsText.object.gmx index fcb6863..b0088f1 100644 --- a/objects/oCreditsText.object.gmx +++ b/objects/oCreditsText.object.gmx @@ -25,7 +25,171 @@ 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"; + CREDITS_LENGTH = 160; +TARGET_WIDTH = 240; + +for (var i = 0; i < CREDITS_LENGTH; i++) { + for (var j = 0; j < 3; j++) { + /* + 0 - first row + 1 - second row + 3 - (TO BE IMPLEMENTED) titles (so that they can have a different color/be centered) + */ + textArray[i, j] = ""; + } +} + + +var i = 0; +textArray[i++, 0] = "Another " + global.monsterStr + " 2 Remake"; +i += 11; +textArray[i++, 0] = "Producer"; +textArray[i++, 0] = "Milton 'DoctorM64' Guasti"; +i++; +textArray[i++, 0] = "Graphic Design"; +textArray[i++, 0] = "Ramiro Negri"; +textArray[i++, 0] = "Steve 'Sabre230' Rothlisberger"; +textArray[i++, 0] = "Jack Witty"; +textArray[i++, 0] = "Kirill '1Eni1' Fevralev"; +textArray[i++, 0] = "Jasper"; +textArray[i++, 0] = "MichaelGabrielR"; +i++; +textArray[i++, 0] = "Promo Art"; +textArray[i++, 0] = "Azima 'Zim' Khan"; +i++; +textArray[i++, 0] = "Writing"; +textArray[i++, 0] = "James 'Ridley' Hobbs"; +textArray[i++, 0] = "Paulo 'Latinlingo' Villalobos"; +i++; +textArray[i++, 0] = "Platform Engine Code"; +textArray[i++, 0] = "Martin Piecyk"; +i++; +textArray[i++, 0] = "Music Composition"; +textArray[i++, 0] = "Milton 'DoctorM64' Guasti"; +textArray[i++, 0] = "Darren Kerwin"; +textArray[i++, 0] = "Torbjørn 'Falcool' Brandrud"; +i++; +textArray[i++, 0] = "Debug"; +textArray[i++, 0] = "Hemse"; +textArray[i++, 0] = "Dragondarch"; +textArray[i++, 0] = "Esteban 'DruidVorse' Criado"; +textArray[i++, 0] = "Verneri 'Naatiska' Viljanen"; +i++; +textArray[i++, 0] = "Playtest"; +textArray[i++, 0] = "Jennifer Potter"; +textArray[i++, 0] = "Mario Crestanello"; +textArray[i++, 0] = "Live4Truths"; +textArray[i++, 0] = "Torbjørn 'Falcool' Brandrud"; +textArray[i++, 0] = "Lise Trehjørningen"; +textArray[i++, 0] = "Nommiin"; +textArray[i++, 0] = "Gabriel Kaplan"; +textArray[i++, 0] = "Nicolas 'Skol' Del Negro"; +textArray[i++, 0] = "Darren Kerwin"; +textArray[i++, 0] = "Robert Sephazon"; +i++; +textArray[i++, 0] = "Community Management"; +textArray[i++, 0] = "Dragonheart91"; +textArray[i++, 0] = "Ammypendent"; +textArray[i++, 0] = "Karrde"; +i++; +textArray[i++, 0] = "Special Thanks"; +textArray[i++, 0] = "Nommiin"; +textArray[i++, 0] = "Nathan 'wickedclown' Hess"; +textArray[i++, 0] = "Tyler Rogers"; +textArray[i++, 0] = "Kousoru"; +textArray[i++, 0] = "Infinity's End"; +textArray[i++, 0] = "CapCom"; +textArray[i++, 0] = "Isabelle Amponin"; +textArray[i++, 0] = "The " + global.monsterStr + " Community"; +i += 3; +textArray[i++, 0] = "Source Code Reconstruction"; +textArray[i++, 0] = "YellowAfterlife"; +i += 3; +textArray[i++, 0] = "Continued Revisions"; +i++; +textArray[i++, 0] = "Development"; +textArray[i++, 0] = "Gatordile"; +textArray[i++, 0] = "Alex 'Wanderer' Mack"; +textArray[i++, 0] = "Lojemiru"; +i++; +textArray[i++, 0] = "Programming"; +textArray[i++, 0] = "Craig Kostelecky"; +textArray[i++, 0] = "" + global.monsterStr + "3D"; +i++; +textArray[i++, 0] = "Art Lead"; +textArray[i++, 0] = "Dannon 'Shmegleskimo' Yates"; +i++; +textArray[i++, 0] = "Art"; +textArray[i++, 0] = "ShirtyScarab"; +textArray[i++, 0] = "Cooper Garvin"; +textArray[i++, 0] = "Mccad00"; +textArray[i++, 0] = "Nao"; +textArray[i++, 0] = "Chris 'Messianic' Oliveira"; +textArray[i++, 0] = "ChloePlz"; +i++; +textArray[i++, 0] = "Debug"; +textArray[i++, 0] = "DruidVorse"; +textArray[i++, 0] = "Miepee"; +i++; +textArray[i++, 0] = "Special Thanks"; +textArray[i, 0] = "Banjo"; textArray[i++, 1] = "Grom PE"; +textArray[i, 0] = "King Bore"; textArray[i++, 1] = "Jean-Samuel Pelletier"; +textArray[i, 0] = "Reaku The Crate"; textArray[i++, 1] = "Scooterboot"; +textArray[i, 0] = "Sylandro"; textArray[i++, 1] = "TheKhaosDemon"; +textArray[i, 0] = "Unknown"; textArray[i++, 1] = "Iwantdevil"; +textArray[i, 0] = "PixHammer"; textArray[i++, 1] = "CaptGlitch"; +textArray[i, 0] = "Nokbient"; textArray[i++, 1] = "EODTex"; +textArray[i, 0] = "Electrix"; textArray[i++, 1] = "gponys"; +textArray[i++, 0] = "Japanese Community"; +i += 5; +textArray[i++, 0] = "Original " + global.monsterStr + " II Staff"; +i++; +textArray[i++, 0] = "Producer"; +textArray[i++, 0] = "Gunpei Yokoi"; +i++; +textArray[i++, 0] = "Director"; +textArray[i, 0] = "Hiroji Kiyotake"; textArray[i++, 1] = "Hiroyuki Kimura"; +i++; +textArray[i++, 0] = "Main Programmer"; +textArray[i++, 0] = "Takahiro Harada"; +i++; +textArray[i++, 0] = "Programmer"; +textArray[i, 0] = "Masaru Yamanaka"; textArray[i++, 1] = "Masao Yamamoto"; +textArray[i++, 0] = "Isao Hirano"; +i++; +textArray[i++, 0] = "Graphic Designer"; +textArray[i, 0] = "Hiroji Kiyotake"; textArray[i++, 1] = "Hiroyuki Kimura"; +i++; +textArray[i++, 0] = "Program Assistant"; +textArray[i, 0] = "Yuzuru Ogawa"; textArray[i++, 1] = "Nobuhiro Ozaki"; +i++; +textArray[i++, 0] = "Sound Programmer"; +textArray[i++, 0] = "Ryohji Yoshitomi"; +i++; +textArray[i++, 0] = "Designer"; +textArray[i, 0] = "Makoto Kanoh"; textArray[i++, 1] = "Masafumi Sakashita"; +textArray[i, 0] = "Tomoyoshi Yamane"; textArray[i++, 1] = "Takehiko Hosokawa"; +textArray[i++, 0] = "Yasuo Inoue"; +i++; +textArray[i++, 0] = "Debug"; +textArray[i, 0] = "Masaru Okadaga"; textArray[i++, 1] = "Kenji Nishizawa"; +textArray[i, 0] = "Hirofumi Matsuoka"; textArray[i++, 1] = "Tohru Ohsawa"; +textArray[i, 0] = "Kohta Fukui"; textArray[i++, 1] = "Keisuke Terasaki"; +textArray[i, 0] = "Kenichi Sugino"; textArray[i++, 1] = "Hitoshi Yamagami"; +textArray[i, 0] = "Katsuya Yamaoe"; textArray[i++, 1] = "Yuji Hori"; +i += 9; +textArray[i++, 0] = "In Memory of Satoru Iwata"; + +text1 = ""; +text2 = ""; + +for (var i = 0; i < CREDITS_LENGTH; i++) { + text1 += textArray[i, 0] + "#"; + text2 += textArray[i, 1] + "#"; +} + + + yoffset = 0; fadeout = 0; @@ -45,6 +209,168 @@ if (global.creditsmenuopt == 1) { if (os_type == os_android) os_powersave_enable(false); widespace = oControl.widescreen*53; + +/* +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"; @@ -210,9 +536,15 @@ if (global.creditsmenuopt == 0) { draw_set_alpha(image_alpha); draw_set_font(fontGUI2); draw_set_color(c_black); -draw_text(x + 1 - widespace, y + 17, text); +draw_set_halign(fa_left); +draw_text(x + 1 - widespace, y + 17, text1); +draw_set_halign(fa_right); +draw_text(x + 1 - widespace + TARGET_WIDTH,y + 17, text2); draw_set_color(c_white); -draw_text(x - widespace, y + 16, text); +draw_set_halign(fa_left); +draw_text(x - widespace, y + 16, text1); +draw_set_halign(fa_right); +draw_text(x - widespace + TARGET_WIDTH, y + 16, text2); draw_set_alpha(1); draw_set_color(c_black); draw_rectangle(0 - widespace, 0, 330 + widespace, 120 - yoffset, false); From 1abcdeeb647bbeb56a1656a5a2390bf8f065ecf0 Mon Sep 17 00:00:00 2001 From: Lojemiru Date: Thu, 4 Feb 2021 03:38:17 -0600 Subject: [PATCH 2/5] Parser/new format implemented --- objects/oCreditsText.object.gmx | 437 +++++++------------------------- 1 file changed, 92 insertions(+), 345 deletions(-) diff --git a/objects/oCreditsText.object.gmx b/objects/oCreditsText.object.gmx index b0088f1..3734e32 100644 --- a/objects/oCreditsText.object.gmx +++ b/objects/oCreditsText.object.gmx @@ -25,176 +25,92 @@ 1 - CREDITS_LENGTH = 160; -TARGET_WIDTH = 240; - -for (var i = 0; i < CREDITS_LENGTH; i++) { - for (var j = 0; j < 3; j++) { - /* - 0 - first row - 1 - second row - 3 - (TO BE IMPLEMENTED) titles (so that they can have a different color/be centered) - */ + /* + 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 key +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=Nathan 'wickedclown' Hess;Tyler Rogers=Kousoru;Infinity's End=Isabelle Amponin;CapCom=The " + global.monsterStr + " Community;;;;*Source Code Reconstruction;/YellowAfterlife;;;;*Continued Revisions;;*Development;Gatordile=Lojemiru;/Alex 'Wanderer' Mack;;*Programming;Craig Kostelecky=" + global.monsterStr + "3D;;*Art Lead;/Dannon 'Shmegleskimo' Yates;;*Art;ShirtyScarab=Cooper Garvin;Chris 'Messianic' Oliveira=ChloePlz;;*Special Thanks;Banjo=Jean-Samuel Pelletier;King Bore=Scooterboot;Reaku The Crate=Grom PE;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;"; + +// Constants +TEXT_ROWS = string_count(";", text); +X_POS = room_width / 2; + +// 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 i = 0; -textArray[i++, 0] = "Another " + global.monsterStr + " 2 Remake"; -i += 11; -textArray[i++, 0] = "Producer"; -textArray[i++, 0] = "Milton 'DoctorM64' Guasti"; -i++; -textArray[i++, 0] = "Graphic Design"; -textArray[i++, 0] = "Ramiro Negri"; -textArray[i++, 0] = "Steve 'Sabre230' Rothlisberger"; -textArray[i++, 0] = "Jack Witty"; -textArray[i++, 0] = "Kirill '1Eni1' Fevralev"; -textArray[i++, 0] = "Jasper"; -textArray[i++, 0] = "MichaelGabrielR"; -i++; -textArray[i++, 0] = "Promo Art"; -textArray[i++, 0] = "Azima 'Zim' Khan"; -i++; -textArray[i++, 0] = "Writing"; -textArray[i++, 0] = "James 'Ridley' Hobbs"; -textArray[i++, 0] = "Paulo 'Latinlingo' Villalobos"; -i++; -textArray[i++, 0] = "Platform Engine Code"; -textArray[i++, 0] = "Martin Piecyk"; -i++; -textArray[i++, 0] = "Music Composition"; -textArray[i++, 0] = "Milton 'DoctorM64' Guasti"; -textArray[i++, 0] = "Darren Kerwin"; -textArray[i++, 0] = "Torbjørn 'Falcool' Brandrud"; -i++; -textArray[i++, 0] = "Debug"; -textArray[i++, 0] = "Hemse"; -textArray[i++, 0] = "Dragondarch"; -textArray[i++, 0] = "Esteban 'DruidVorse' Criado"; -textArray[i++, 0] = "Verneri 'Naatiska' Viljanen"; -i++; -textArray[i++, 0] = "Playtest"; -textArray[i++, 0] = "Jennifer Potter"; -textArray[i++, 0] = "Mario Crestanello"; -textArray[i++, 0] = "Live4Truths"; -textArray[i++, 0] = "Torbjørn 'Falcool' Brandrud"; -textArray[i++, 0] = "Lise Trehjørningen"; -textArray[i++, 0] = "Nommiin"; -textArray[i++, 0] = "Gabriel Kaplan"; -textArray[i++, 0] = "Nicolas 'Skol' Del Negro"; -textArray[i++, 0] = "Darren Kerwin"; -textArray[i++, 0] = "Robert Sephazon"; -i++; -textArray[i++, 0] = "Community Management"; -textArray[i++, 0] = "Dragonheart91"; -textArray[i++, 0] = "Ammypendent"; -textArray[i++, 0] = "Karrde"; -i++; -textArray[i++, 0] = "Special Thanks"; -textArray[i++, 0] = "Nommiin"; -textArray[i++, 0] = "Nathan 'wickedclown' Hess"; -textArray[i++, 0] = "Tyler Rogers"; -textArray[i++, 0] = "Kousoru"; -textArray[i++, 0] = "Infinity's End"; -textArray[i++, 0] = "CapCom"; -textArray[i++, 0] = "Isabelle Amponin"; -textArray[i++, 0] = "The " + global.monsterStr + " Community"; -i += 3; -textArray[i++, 0] = "Source Code Reconstruction"; -textArray[i++, 0] = "YellowAfterlife"; -i += 3; -textArray[i++, 0] = "Continued Revisions"; -i++; -textArray[i++, 0] = "Development"; -textArray[i++, 0] = "Gatordile"; -textArray[i++, 0] = "Alex 'Wanderer' Mack"; -textArray[i++, 0] = "Lojemiru"; -i++; -textArray[i++, 0] = "Programming"; -textArray[i++, 0] = "Craig Kostelecky"; -textArray[i++, 0] = "" + global.monsterStr + "3D"; -i++; -textArray[i++, 0] = "Art Lead"; -textArray[i++, 0] = "Dannon 'Shmegleskimo' Yates"; -i++; -textArray[i++, 0] = "Art"; -textArray[i++, 0] = "ShirtyScarab"; -textArray[i++, 0] = "Cooper Garvin"; -textArray[i++, 0] = "Mccad00"; -textArray[i++, 0] = "Nao"; -textArray[i++, 0] = "Chris 'Messianic' Oliveira"; -textArray[i++, 0] = "ChloePlz"; -i++; -textArray[i++, 0] = "Debug"; -textArray[i++, 0] = "DruidVorse"; -textArray[i++, 0] = "Miepee"; -i++; -textArray[i++, 0] = "Special Thanks"; -textArray[i, 0] = "Banjo"; textArray[i++, 1] = "Grom PE"; -textArray[i, 0] = "King Bore"; textArray[i++, 1] = "Jean-Samuel Pelletier"; -textArray[i, 0] = "Reaku The Crate"; textArray[i++, 1] = "Scooterboot"; -textArray[i, 0] = "Sylandro"; textArray[i++, 1] = "TheKhaosDemon"; -textArray[i, 0] = "Unknown"; textArray[i++, 1] = "Iwantdevil"; -textArray[i, 0] = "PixHammer"; textArray[i++, 1] = "CaptGlitch"; -textArray[i, 0] = "Nokbient"; textArray[i++, 1] = "EODTex"; -textArray[i, 0] = "Electrix"; textArray[i++, 1] = "gponys"; -textArray[i++, 0] = "Japanese Community"; -i += 5; -textArray[i++, 0] = "Original " + global.monsterStr + " II Staff"; -i++; -textArray[i++, 0] = "Producer"; -textArray[i++, 0] = "Gunpei Yokoi"; -i++; -textArray[i++, 0] = "Director"; -textArray[i, 0] = "Hiroji Kiyotake"; textArray[i++, 1] = "Hiroyuki Kimura"; -i++; -textArray[i++, 0] = "Main Programmer"; -textArray[i++, 0] = "Takahiro Harada"; -i++; -textArray[i++, 0] = "Programmer"; -textArray[i, 0] = "Masaru Yamanaka"; textArray[i++, 1] = "Masao Yamamoto"; -textArray[i++, 0] = "Isao Hirano"; -i++; -textArray[i++, 0] = "Graphic Designer"; -textArray[i, 0] = "Hiroji Kiyotake"; textArray[i++, 1] = "Hiroyuki Kimura"; -i++; -textArray[i++, 0] = "Program Assistant"; -textArray[i, 0] = "Yuzuru Ogawa"; textArray[i++, 1] = "Nobuhiro Ozaki"; -i++; -textArray[i++, 0] = "Sound Programmer"; -textArray[i++, 0] = "Ryohji Yoshitomi"; -i++; -textArray[i++, 0] = "Designer"; -textArray[i, 0] = "Makoto Kanoh"; textArray[i++, 1] = "Masafumi Sakashita"; -textArray[i, 0] = "Tomoyoshi Yamane"; textArray[i++, 1] = "Takehiko Hosokawa"; -textArray[i++, 0] = "Yasuo Inoue"; -i++; -textArray[i++, 0] = "Debug"; -textArray[i, 0] = "Masaru Okadaga"; textArray[i++, 1] = "Kenji Nishizawa"; -textArray[i, 0] = "Hirofumi Matsuoka"; textArray[i++, 1] = "Tohru Ohsawa"; -textArray[i, 0] = "Kohta Fukui"; textArray[i++, 1] = "Keisuke Terasaki"; -textArray[i, 0] = "Kenichi Sugino"; textArray[i++, 1] = "Hitoshi Yamagami"; -textArray[i, 0] = "Katsuya Yamaoe"; textArray[i++, 1] = "Yuji Hori"; -i += 9; -textArray[i++, 0] = "In Memory of Satoru Iwata"; - -text1 = ""; -text2 = ""; - -for (var i = 0; i < CREDITS_LENGTH; i++) { - text1 += textArray[i, 0] + "#"; - text2 += textArray[i, 1] + "#"; +// Parse text +for (var i = 1; i <= string_length(text); 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) { @@ -207,170 +123,6 @@ if (global.creditsmenuopt == 1) { } if (os_type == os_android) os_powersave_enable(false); - -widespace = oControl.widescreen*53; - -/* -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"; @@ -532,37 +284,32 @@ 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_set_halign(fa_left); -draw_text(x + 1 - widespace, y + 17, text1); + +// Left draw_set_halign(fa_right); -draw_text(x + 1 - widespace + TARGET_WIDTH,y + 17, text2); -draw_set_color(c_white); +draw_cool_text(X_POS - 12, y + 17, textLeft, c_black, c_white, c_white, 1); + +// Right draw_set_halign(fa_left); -draw_text(x - widespace, y + 16, text1); -draw_set_halign(fa_right); -draw_text(x - widespace + TARGET_WIDTH, y + 16, text2); -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); +draw_cool_text(X_POS + 12, y + 17, textRight, c_black, c_white, c_white, 1); +// Center +draw_set_halign(fa_center); +draw_cool_text(X_POS, y + 17, textCenter, c_black, c_white, c_white, 1); -/* //Old code in draw event +// Header +//draw_set_color(c_gray); +draw_cool_text(X_POS, y + 17, textHeader, c_black, c_dkgray, c_gray, 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); +// 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 - widespace, 0, 330 + widespace, 120 - yoffset, false); +draw_rectangle(0 - widespace, 120 + yoffset, 330 + widespace, 250, false); From 18f4fbf4589bb1c95d1bafafbfb315feb88b2594 Mon Sep 17 00:00:00 2001 From: Lojemiru Date: Fri, 5 Feb 2021 02:26:30 -0600 Subject: [PATCH 3/5] Finalize credits modification --- objects/oCreditsText.object.gmx | 42 +++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/objects/oCreditsText.object.gmx b/objects/oCreditsText.object.gmx index 3734e32..bc0d71f 100644 --- a/objects/oCreditsText.object.gmx +++ b/objects/oCreditsText.object.gmx @@ -34,12 +34,41 @@ */ // Refer to key key -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=Nathan 'wickedclown' Hess;Tyler Rogers=Kousoru;Infinity's End=Isabelle Amponin;CapCom=The " + global.monsterStr + " Community;;;;*Source Code Reconstruction;/YellowAfterlife;;;;*Continued Revisions;;*Development;Gatordile=Lojemiru;/Alex 'Wanderer' Mack;;*Programming;Craig Kostelecky=" + global.monsterStr + "3D;;*Art Lead;/Dannon 'Shmegleskimo' Yates;;*Art;ShirtyScarab=Cooper Garvin;Chris 'Messianic' Oliveira=ChloePlz;;*Special Thanks;Banjo=Jean-Samuel Pelletier;King Bore=Scooterboot;Reaku The Crate=Grom PE;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;"; +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; +SCROLL_SPEED = (TEXT_ROWS * -0.27) / 120; + +WIDE_SPACE = oControl.widescreen_space / 2; + // Vars var arrayIndex = 0; var subStr = ""; @@ -229,8 +258,11 @@ if (statetime > 520) { } //This dictates the credit scrolling speed -if (statetime == 700) vspeed = -0.34; -statetime += 1; +if (statetime == 700) vspeed = SCROLL_SPEED; // -0.34; + +if (y <= ystart - (TEXT_ROWS * 12)) vspeed = 0; + +statetime++; @@ -308,8 +340,8 @@ 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 - widespace, 0, 330 + widespace, 120 - yoffset, false); -draw_rectangle(0 - widespace, 120 + yoffset, 330 + widespace, 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); From 6256cbba8feffd4d161fac272c47bed71b4a2312 Mon Sep 17 00:00:00 2001 From: Lojemiru Date: Fri, 5 Feb 2021 05:26:35 -0600 Subject: [PATCH 4/5] Sprite cleanup, display menu rewrite --- AM2R.project.gmx | 1 + objects/oCreditsText.object.gmx | 50 +-- objects/oOptionsDisplay.object.gmx | 559 +++++++++++++++++++++++++++-- scripts/wrap.gml | 5 + sprites/sGamet1.sprite.gmx | 11 +- sprites/sGamet2.sprite.gmx | 11 +- sprites/sGeega1.sprite.gmx | 11 +- sprites/sGeega2.sprite.gmx | 11 +- sprites/sGeemer.sprite.gmx | 12 +- sprites/sMellow.sprite.gmx | 11 +- sprites/sSkree1.sprite.gmx | 11 +- sprites/sSkree2.sprite.gmx | 12 +- sprites/sSkreeB1.sprite.gmx | 11 +- sprites/sSkreeB2.sprite.gmx | 12 +- sprites/sViola.sprite.gmx | 16 - sprites/sViolaB.sprite.gmx | 16 - sprites/sWaver.sprite.gmx | 13 +- sprites/sWaverB.sprite.gmx | 13 +- sprites/sZebbo1.sprite.gmx | 10 +- sprites/sZebbo2.sprite.gmx | 10 +- 20 files changed, 604 insertions(+), 202 deletions(-) create mode 100644 scripts/wrap.gml 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 From 234537227e22239664cda472cb6b064698529ad8 Mon Sep 17 00:00:00 2001 From: Lojemiru Date: Sat, 6 Feb 2021 04:01:10 -0600 Subject: [PATCH 5/5] Finalized credits and Display menu --- objects/oCreditsText.object.gmx | 8 +- objects/oOptionsDisplay.object.gmx | 459 ++--------------------------- objects/oPauseOption.object.gmx | 3 +- 3 files changed, 32 insertions(+), 438 deletions(-) diff --git a/objects/oCreditsText.object.gmx b/objects/oCreditsText.object.gmx index f67ec5b..f88071b 100644 --- a/objects/oCreditsText.object.gmx +++ b/objects/oCreditsText.object.gmx @@ -34,7 +34,7 @@ */ // 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;"; +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); @@ -56,8 +56,10 @@ for (var i = 0; i < TEXT_ROWS; i++) { } } +var strLength = string_length(text) + // Parse text -for (var i = 1; i <= string_length(text); i++) { +for (var i = 1; i <= strLength; i++) { // Get next char var nextChar = string_char_at(text, i); @@ -243,7 +245,7 @@ if (statetime > 520) { if (statetime == 700) vspeed = SCROLL_SPEED; // -0.34; // This stops the credits on the final line -if (y <= ystart + 17 - (TEXT_ROWS * 12)) vspeed = 0; +if (y <= ystart + 8 - (TEXT_ROWS * 12)) vspeed = 0; statetime++; diff --git a/objects/oOptionsDisplay.object.gmx b/objects/oOptionsDisplay.object.gmx index 7eda4f9..39be964 100644 --- a/objects/oOptionsDisplay.object.gmx +++ b/objects/oOptionsDisplay.object.gmx @@ -68,7 +68,7 @@ opLanguage = i++; menuSize = i; // 1 larger than last item -vTargetY = 18 * menuSize + 30; +vTargetY = 18 * menuSize + 72; i = 0; @@ -84,6 +84,7 @@ 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(); } @@ -95,32 +96,6 @@ event_user(3); // Load current tip text global.tiptext = tip[global.curropt]; - - -/* - -global.curropt = 0; -lastitem = 12; // og 10 -active = 0; -alarm[0] = 5; -i = 0; -repeat (13) { // og 11 - global.canedit[i] = 1; - i += 1; -} -targety = 0; -view_object[0] = id; -timer = 0; -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); -event_user(3); -global.tiptext = tip[global.curropt]; @@ -342,7 +317,7 @@ display_reset(0, global.opvsync); // Language if (global.curropt == opLanguage) { global.currentlanguage = wrap(global.currentlanguage + input, 0, langCount - 1); - + // Update events event_user(3); event_user(4); @@ -372,207 +347,6 @@ 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 { - // 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; - } - } - if (global.curropt > lastitem) global.curropt = 0; - 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]; - } - 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; - } - } - 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; } - 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]; - } - - - } - 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) { - global.opfullscreen = !global.opfullscreen; - set_fullscreen(global.opfullscreen); - if (!global.opfullscreen) { - global.opscale = 1; - alarm[1] = 1; - } - } - else { - global.opvsync = !global.opvsync; - sfx_play(sndMenuMove); - display_reset(0, global.opvsync); - } - } - if (global.curropt == 2) { - 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 - } - if (global.curropt == 11) { // widescreen - if (global.widescreen_enabled == 1) { - global.widescreen_enabled = 0; - } else { - global.widescreen_enabled = 1; - } - 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); - } - } - - event_user(2); // update text - } - - if(os_type == os_android) { - if(global.curropt != 0) { - sfx_play(sndMenuMove); - } - } - else sfx_play(sndMenuMove); - event_user(2); - } - if (oControl.kMenu1 && oControl.kMenu1PushedSteps == 0) { - if (global.curropt == 12) { - load_resources(); - save_gameoptions(); - view_object[0] = noone; - view_yview[0] = 0; - instance_create(50, 92, oOptionsMain); - instance_destroy(); - sfx_play(sndMenuSel); - } - } -} // if (active) -if (targetY != y) y += (targetY - y) / 10; -timer -= 1; if (timer < 0) timer = 8; @@ -623,39 +397,12 @@ 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"); -} -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[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[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[53].label = get_text("OptionsDisplay", "Author") + " " + langAuthor[global.currentlanguage]; -op[10].label = get_text("Misc", "SensitivityMode"); +op[54].label = langAuthor2[global.currentlanguage]; -op[11].label = get_text("Misc", "Widescreen"); +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"); @@ -699,26 +446,6 @@ 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"); -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"); @@ -834,70 +561,6 @@ if (global.ophudshowlogmsg) { // 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 { - op[0].optext = get_text("GlobalOptions", "Disabled"); - op[1].label = get_text("OptionsDisplay", "WindowSize"); -} -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"; -if (global.opvsync) { - op[2].optext = get_text("GlobalOptions", "Enabled"); - if(os_type == os_android) op[0].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"); -} - -if (global.sensitivitymode) { - op[10].optext = get_text("GlobalOptions", "Enabled"); -} else { - op[10].optext = get_text("GlobalOptions", "Disabled"); -} - -if (global.widescreen_enabled) { - op[11].optext = get_text("GlobalOptions", "Enabled"); -} else { - op[11].optext = get_text("GlobalOptions", "Disabled"); -} @@ -926,7 +589,7 @@ for (var i = 0; i <= menuSize; i++) { } // Delete headers -for (var i = 50; i <= 52; i++) { +for (var i = 50; i <= 54; i++) { with (op[i]) instance_destroy(); } @@ -1050,6 +713,24 @@ 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++; + // Exit - This will always be the last option op[menuSize] = instance_create(x, y + SPACER * i, oPauseOption); op[menuSize].optionid = menuSize; @@ -1057,96 +738,6 @@ 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); -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] 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; -} - -i++; -op[10] = instance_create(x, y + sep * i, oOptionLR); -op[10].label = get_text("Misc", "SensitivityMode"); -op[10].optionid = 10; - -i++; -op[11] = instance_create(x, y + sep * i, oOptionLR); -op[11].label = get_text("Misc", "Widescreen"); -op[11].optionid = 11; - -i++; -op[51] = instance_create(x, y + sep * 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; -i++; -op[4] = instance_create(x, y + sep * i, oOptionLR); -op[4].label = get_text("OptionsDisplay", "HUDMap"); -op[4].optionid = 4; -i++; -op[5] = instance_create(x, y + sep * i, oOptionLR); -op[5].label = get_text("OptionsDisplay", "MonsterCounter"); -op[5].optionid = 5; -i++; -op[52] = instance_create(x, y + sep * 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; -i++; -op[7] = instance_create(x, y + sep * i, oOptionLR); -op[7].label = get_text("ExtrasMenu", "Controller"); -op[7].optionid = 7; -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; -} -else i++; -op[8] = instance_create(x, y + sep * i, oOptionLR); -op[8].label = get_text("OptionsDisplay", "ScanNotifications"); -op[8].optionid = 8; -i++; -op[9] = instance_create(x, y + sep * i, oOptionLR); -op[9].label = get_text("OptionsDisplay", "Language"); -op[9].optionid = 9; - - -i++; -op[12] = instance_create(x, y + sep * i, oPauseOption); -op[12].optionid = 12; -op[12].label = get_text("GlobalOptions", "Exit"); - -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);