diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml
index 27a7651..34b7c40 100644
--- a/.idea/material_theme_project_new.xml
+++ b/.idea/material_theme_project_new.xml
@@ -3,7 +3,9 @@
diff --git a/resources/logo.png b/resources/logo.png
new file mode 100644
index 0000000..323859a
Binary files /dev/null and b/resources/logo.png differ
diff --git a/resources/logo_about.png b/resources/logo_about.png
new file mode 100644
index 0000000..2043256
Binary files /dev/null and b/resources/logo_about.png differ
diff --git a/src/Kermit.java b/src/Kermit.java
index efe2b18..e156f5a 100644
--- a/src/Kermit.java
+++ b/src/Kermit.java
@@ -268,6 +268,7 @@ public class Kermit implements ActionListener {
frame.setDefaultCloseOperation(0);
frame.setResizable(false);
frame.setLayout(null);
+ frame.setLocationRelativeTo(null);
frame.setVisible(true);
break;
case SDK_INSTALL:
diff --git a/src/Main.java b/src/Main.java
index 852f245..e592f9c 100644
--- a/src/Main.java
+++ b/src/Main.java
@@ -28,7 +28,7 @@ import javax.swing.*;
public class Main {
// Build Information
- public static final String vstr = "debug";
+ public static final String vstr = "PREALPHA";
public static final String vcode = "Natasha";
public static final int vint = 0;
@@ -57,6 +57,7 @@ public class Main {
// license string
System.out.printf("FIRESTAR MOD MANAGER for WipEout 2048\nversion " + vstr + " (codename " + vcode + ")\n" +
"JVM host appears to be " + System.getProperty("os.name") +
+ "\nRunning from " + System.getProperty("user.dir") +
"\nCopyright (C) 2024 bonkmaykr\n\nThis program is free software: you can redistribute it and/or modify\n" +
"it under the terms of the GNU General Public License as published by\n" +
"the Free Software Foundation, either version 3 of the License, or\n" +
diff --git a/src/MissPiggy.java b/src/MissPiggy.java
index 07aa5c3..4e47c1a 100644
--- a/src/MissPiggy.java
+++ b/src/MissPiggy.java
@@ -109,6 +109,7 @@ public class MissPiggy implements ActionListener {
frame.setResizable(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setLayout(new GridLayout());
+ frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
@@ -141,7 +142,8 @@ public class MissPiggy implements ActionListener {
if (actionEvent.getSource() == fileMenu.getItem(0)) {deployModGUI();} else
if (actionEvent.getSource() == fileMenu.getItem(1)) {importModGUI();} else
if (actionEvent.getSource() == fileMenu.getItem(2)) {removeAllGUI();} else
- if (actionEvent.getSource() == fileMenu.getItem(4)) {optionsGUI();}
+ if (actionEvent.getSource() == fileMenu.getItem(4)) {optionsGUI();} else
+ if (actionEvent.getSource() == helpMenu.getItem(0)) {new Rowlf().displayAboutScreen();}
}
// Will likely split the below functions into separate classes to work with intellij GUI designer.
diff --git a/src/Rowlf.form b/src/Rowlf.form
new file mode 100644
index 0000000..20e14cf
--- /dev/null
+++ b/src/Rowlf.form
@@ -0,0 +1,57 @@
+
+
diff --git a/src/Rowlf.java b/src/Rowlf.java
new file mode 100644
index 0000000..b2a7c36
--- /dev/null
+++ b/src/Rowlf.java
@@ -0,0 +1,74 @@
+/*
+ * Firestar Mod Manager
+ * Copyright (C) 2024 bonkmaykr
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/.
+ */
+
+import javax.imageio.*;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.image.*;
+import java.io.File;
+import java.io.IOException;
+
+import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;
+
+public class Rowlf {
+ JFrame frame = new JFrame();
+ JPanel frameContainer;
+ BufferedImage logo;
+ JLabel picLabel;
+ private JTextField informationText;
+ private JLabel versionLabel;
+ private JLabel environmentLabel;
+
+ public void displayAboutScreen() {
+ try {
+ logo = ImageIO.read(new File(System.getProperty("user.dir") + "/resources/logo_about.png"));
+ } catch (IOException e) {
+ System.out.println("ERROR: Failed to open About screen because we couldn't find an image needed to display the page.");
+ throw new RuntimeException(e);
+ }
+
+ //frame.add(picLabel);
+ frame.add(frameContainer); // initialize window contents -- will be handled by IntelliJ IDEA
+ picLabel.setIcon(new ImageIcon(logo));picLabel.setText("");
+
+ informationText.getDocument().putProperty("filterNewlines", Boolean.FALSE);
+ informationText.setText("Created by bonkmaykr\n" +
+ "a.k.a. \"Downforce Agent\"\n" +
+ "\n" +
+ "Special thanks to:\n" +
+ "ThatOneBonk, for almost beating me to it\n" +
+ "Wirlaburla, for web hosting and code help\n" +
+ "and to all the PSVita hackers who made this possible");
+ informationText.setHighlighter(null);
+ informationText.getCaret().setVisible(false);
+ informationText.setFocusable(false);
+
+ versionLabel.setText("Version " + Main.vstr + " (" + Main.vcode + ")");
+ environmentLabel.setText("Running on Java " + System.getProperty("java.version") + " for " + System.getProperty("os.name"));
+
+ // display window
+ frame.setSize(400, 320);
+ frame.setTitle("About Firestar");
+ frame.setResizable(false);
+ frame.setAlwaysOnTop(true);
+ frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
+ frame.setLayout(new GridLayout());
+ frame.setLocationRelativeTo(null);
+ frame.setVisible(true);
+ }
+}