Compare commits

...

6 commits

Author SHA1 Message Date
IliasHDZ
82c52e0d40
Merge ba5c527b18 into d0eb881ebc 2024-09-01 11:52:21 +03:00
SMJS
d0eb881ebc
Fixed a bug where only 1 word wrap variant can exist (#1058)
* Fixed a bug where only 1 word wrap variant can exist

* Made the delimiters a string view
2024-08-31 12:27:38 +02:00
IliasHDZ
ba5c527b18 using std::array 2024-08-25 12:39:44 +05:00
IliasHDZ
e222313f22 change to wchar and use max_path 2024-08-21 11:29:40 +05:00
IliasHDZ
4ce4fd972b oops 2024-08-21 00:52:39 +05:00
IliasHDZ
93f423ae0e add fix currect working directory 2024-08-21 00:48:14 +05:00
2 changed files with 24 additions and 1 deletions

View file

@ -138,11 +138,34 @@ void* mainTrampolineAddr;
#include "gdTimestampMap.hpp" #include "gdTimestampMap.hpp"
unsigned int gdTimestamp = 0; unsigned int gdTimestamp = 0;
// In case the game is launched from a different directory through command line
// this function will set the current working directory to the game's directory
// to avoid the game crashing due to not being able to find the resources
static void fixCWD() {
std::array<WCHAR, MAX_PATH> cwd;
DWORD size = GetModuleFileNameW(NULL, cwd.data(), cwd.size());
if (size == cwd.size()) return;
int i;
for (i = (int)size - 1; i >= 0; i--) {
if (cwd[i] == '\\') {
cwd[i] = 0;
break;
}
}
if (i < 0) return;
SetCurrentDirectoryW(cwd.data());
}
int WINAPI gdMainHook(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) { int WINAPI gdMainHook(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) {
// MessageBoxA(NULL, "Hello from gdMainHook!", "Hi", 0); // MessageBoxA(NULL, "Hello from gdMainHook!", "Hi", 0);
updateGeode(); updateGeode();
fixCWD();
if (versionToTimestamp(GEODE_STR(GEODE_GD_VERSION)) > gdTimestamp) { if (versionToTimestamp(GEODE_STR(GEODE_GD_VERSION)) > gdTimestamp) {
console::messageBox( console::messageBox(
"Unable to Load Geode!", "Unable to Load Geode!",

View file

@ -209,7 +209,7 @@ void SimpleTextArea::updateLinesNoWrap() {
void SimpleTextArea::updateLinesWordWrap(bool spaceWrap) { void SimpleTextArea::updateLinesWordWrap(bool spaceWrap) {
this->charIteration([this, spaceWrap](CCLabelBMFont* line, const char c, const float top) { this->charIteration([this, spaceWrap](CCLabelBMFont* line, const char c, const float top) {
static const std::string delimiters(spaceWrap ? " " : " `~!@#$%^&*()-_=+[{}];:'\",<.>/?\\|"); const std::string_view delimiters(spaceWrap ? " " : " `~!@#$%^&*()-_=+[{}];:'\",<.>/?\\|");
if (delimiters.find(c) == std::string_view::npos) { if (delimiters.find(c) == std::string_view::npos) {
const std::string& text = line->getString(); const std::string& text = line->getString();