diff --git a/.gitignore b/.gitignore index d85b69c..cbdb52a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ build -ideas.txt \ No newline at end of file +ideas.txt +tools/bin \ No newline at end of file diff --git a/assets/silly/txt/t_mainmenu.silly b/assets/silly/txt/t_mainmenu.silly new file mode 100644 index 0000000..60835f4 Binary files /dev/null and b/assets/silly/txt/t_mainmenu.silly differ diff --git a/raw/text/t_mainmenu.txt b/raw/text/t_mainmenu.txt new file mode 100644 index 0000000..33a64de --- /dev/null +++ b/raw/text/t_mainmenu.txt @@ -0,0 +1,7 @@ +new game +load game +instructions +options +leaderboard +credits +exit game \ No newline at end of file diff --git a/src/dothack/DotHack.java b/src/dothack/DotHack.java index 3e62ee7..a939215 100644 --- a/src/dothack/DotHack.java +++ b/src/dothack/DotHack.java @@ -5,7 +5,7 @@ import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; import sillysagiri.Sagiri; -import sillysagiri.scene.Intro; +import sillysagiri.scene.MainMenu; import sillysagiri.scene.MainMenu; public class DotHack extends MIDlet implements Runnable { @@ -26,7 +26,7 @@ public class DotHack extends MIDlet implements Runnable { thread.setPriority(Thread.MAX_PRIORITY); thread.start(); - sagiri.Set_Scene(new Intro()); + sagiri.Set_Scene(new MainMenu()); } public void pauseApp() {} diff --git a/src/sillysagiri/Utils.java b/src/sillysagiri/Utils.java index cacdc14..e387e50 100644 --- a/src/sillysagiri/Utils.java +++ b/src/sillysagiri/Utils.java @@ -1,9 +1,15 @@ package sillysagiri; +import java.io.DataInputStream; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; + import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; import dothack.Global; +import sillysagiri.scene.DeathError; public final class Utils { public static int ARGB15to255(char argb15) @@ -72,4 +78,35 @@ public final class Utils { public static double clamp(double value, double min, double max) { return Math.max(min, Math.min(value, max)); } + + // TODO: support utf-16 + public static String[] Get_StringSilly(String path_sillystring, int size) + { + String[] str = new String[size]; + + try + { + byte[] temp = new byte[128]; + InputStream in = str.getClass().getResourceAsStream(path_sillystring); + + for (int i=0; i= list_strmenu[maxlength].length()) + maxlength = i; + + list_strmenu[i] = list_strmenu[i].toUpperCase(); + } + + System.out.println(list_strmenu[maxlength]); + + int boxw = (int)(bmf_blue.Measure(list_strmenu[maxlength])[0]+bmf_blue.lineHeight*1.4); + int boxh = bmf_blue.lineHeight*(list_strmenu.length+1); int[] temp = new int[boxw*boxh]; for (int i=0; i 360) counter = 0; diff --git a/tools/string2bin/string2bin.cpp b/tools/string2bin/string2bin.cpp new file mode 100644 index 0000000..954aa07 --- /dev/null +++ b/tools/string2bin/string2bin.cpp @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include + +void writeBinaryFile(const std::string& inputFileName, const std::string& outputFileName) { + std::ifstream inputFile(inputFileName); + std::ofstream outputFile(outputFileName, std::ios::binary); + + if (!inputFile) { + std::cerr << "Error opening input file: " << inputFileName << std::endl; + std::exit(EXIT_FAILURE); + } + + if (!outputFile) { + std::cerr << "Error opening output file: " << outputFileName << std::endl; + std::exit(EXIT_FAILURE); + } + + std::string line; + while (std::getline(inputFile, line)) { + // Get the size of the string + std::size_t size = line.size(); + + // Write size as 2 bytes (big-endian) + uint16_t sizeInBytes = static_cast(size); + outputFile.write(reinterpret_cast(&sizeInBytes), sizeof(sizeInBytes)); + + // Write the string followed by a null terminator + outputFile.write(line.c_str(), size); + + // char nullChar = '\0'; + // outputFile.write(&nullChar, sizeof(nullChar)); + } + + inputFile.close(); + outputFile.close(); +} + +int main(int argc, char* argv[]) { + if (argc != 3) { + std::cerr << "Usage: " << argv[0] << " " << std::endl; + return EXIT_FAILURE; + } + + std::string inputFileName = argv[1]; // Input file name from args + std::string outputFileName = argv[2]; // Output binary file name from args + + writeBinaryFile(inputFileName, outputFileName); + + std::cout << "Strings written to binary file successfully." << std::endl; + + return EXIT_SUCCESS; +}