From 898528f84d6e5a899bb73e6ee5d8ae732fd16288 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Wed, 21 Mar 2018 00:55:23 -0700 Subject: [PATCH 01/14] Update in accordance to #24 --- README.md | 3 +-- make-oneshot-mac.command | 2 +- mkxp.pro | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e4b9948..c78595d 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,8 @@ Thanks to [hunternet93](https://github.com/hunternet93) for starting the reimple * [Ancurio's SDL_sound fork](https://github.com/Ancurio/SDL_sound) * vorbisfile * pixman -* zlib (only ruby bindings) * OpenGL header (alternatively GLES2 with `DEFINES+=GLES2_HEADER`) -* Ruby (make sure to use 2.3 on macOS due to a save formatting bug in newer versions -- @Yummychickenblue reports this may not be an issue anymore) +* Ruby * Python 3 (journal reimplementation only) * PyQt5 for Python 3 (journal reimplementation only) diff --git a/make-oneshot-mac.command b/make-oneshot-mac.command index f6b4ac1..693979e 100755 --- a/make-oneshot-mac.command +++ b/make-oneshot-mac.command @@ -19,7 +19,7 @@ echo "${white}Compiling ${bold}SyngleChance v${mac_version} ${white}engine for m # Generate makefile and build main + journal echo "-> ${cyan}Generate makefile...${color_reset}" -qmake MRIVERSION=2.3 +qmake MRIVERSION=2.5 echo "-> ${cyan}Compile engine...${color_reset}" make -j${make_threads} echo "-> ${cyan}Compile journal...${color_reset}" diff --git a/mkxp.pro b/mkxp.pro index 2bac4bf..11cab11 100644 --- a/mkxp.pro +++ b/mkxp.pro @@ -33,7 +33,7 @@ contains(BINDING, NULL) { CONFIG += BINDING_NULL } -PKGCONFIG = sigc++-2.0 pixman-1 zlib sdl2 SDL2_image SDL2_ttf openal SDL_sound vorbisfile +PKGCONFIG = sigc++-2.0 pixman-1 zlib sdl2 SDL2_image SDL2_ttf openal SDL_sound vorbisfile unix { CONFIG += c++11 @@ -42,7 +42,7 @@ unix { macx: { INCLUDEPATH += $$QMAKE_MAC_SDK_PATH/System/Library/Frameworks/OpenAL.framework/Versions/A/Headers LIBS += -framework OpenAL -framework AppKit - QMAKE_LFLAGS += -L/usr/local/opt/ruby@2.3/lib -L/usr/local/opt/openal-soft/lib + QMAKE_LFLAGS += -L/usr/local/opt/ruby/lib -L/usr/local/opt/openal-soft/lib HEADERS += src/mac-desktop.h SOURCES += src/mac-desktop.mm } From ba36f35dd4eb6649cc724c8cf8a241a56093a96f Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Wed, 21 Mar 2018 00:55:32 -0700 Subject: [PATCH 02/14] Update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c78595d..6976d00 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Thanks to [hunternet93](https://github.com/hunternet93) for starting the reimple > > It is licensed under the GNU General Public License v2+. -*OneShot* and *OneShot: Fragments of Providence* also make use of [steamshim](https://hg.icculus.org/icculus/steamshim/) for GPL compliance while making use of Steamworks features. See LICENSE.steamshim.txt for details. +*SyngleChance* also makes use of [steamshim](https://hg.icculus.org/icculus/steamshim/) for GPL compliance while making use of Steamworks features. See LICENSE.steamshim.txt for details. ## Dependencies / Building From 286cc348747b7fd912c65b3c6d6a762d8a596b60 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Wed, 21 Mar 2018 01:16:37 -0700 Subject: [PATCH 03/14] Remove deprecated code --- src/oneshot.cpp | 143 +---------------------- src/xdg-user-dir-lookup.c | 232 -------------------------------------- 2 files changed, 1 insertion(+), 374 deletions(-) delete mode 100644 src/xdg-user-dir-lookup.c diff --git a/src/oneshot.cpp b/src/oneshot.cpp index 65e9521..0391e70 100644 --- a/src/oneshot.cpp +++ b/src/oneshot.cpp @@ -68,147 +68,6 @@ GTK_RESPONSE_APPLY = -10, GTK_RESPONSE_HELP = -11 } GtkResponseType; - - /** - * xdg_user_dir_lookup_with_fallback: - * @type: a string specifying the type of directory - * @fallback: value to use if the directory isn't specified by the user - * @returns: a newly allocated absolute pathname - * - * Looks up a XDG user directory of the specified type. - * Example of types are "DESKTOP" and "DOWNLOAD". - * - * In case the user hasn't specified any directory for the specified - * type the value returned is @fallback. - * - * The return value is newly allocated and must be freed with - * free(). The return value is never NULL if @fallback != NULL, unless - * out of memory. - **/ - static char * - xdg_user_dir_lookup_with_fallback (const char *type, const char *fallback) - { - FILE *file; - char *home_dir, *config_home, *config_file; - char buffer[512]; - char *user_dir; - char *p, *d; - int len; - int relative; - - home_dir = getenv ("HOME"); - - if (home_dir == NULL) - goto error; - - config_home = getenv ("XDG_CONFIG_HOME"); - if (config_home == NULL || config_home[0] == 0) - { - config_file = (char*) malloc (strlen (home_dir) + strlen ("/.config/user-dirs.dirs") + 1); - if (config_file == NULL) - goto error; - - strcpy (config_file, home_dir); - strcat (config_file, "/.config/user-dirs.dirs"); - } - else - { - config_file = (char*) malloc (strlen (config_home) + strlen ("/user-dirs.dirs") + 1); - if (config_file == NULL) - goto error; - - strcpy (config_file, config_home); - strcat (config_file, "/user-dirs.dirs"); - } - - file = fopen (config_file, "r"); - free (config_file); - if (file == NULL) - goto error; - - user_dir = NULL; - while (fgets (buffer, sizeof (buffer), file)) - { - /* Remove newline at end */ - len = strlen (buffer); - if (len > 0 && buffer[len-1] == '\n') - buffer[len-1] = 0; - - p = buffer; - while (*p == ' ' || *p == '\t') - p++; - - if (strncmp (p, "XDG_", 4) != 0) - continue; - p += 4; - if (strncmp (p, type, strlen (type)) != 0) - continue; - p += strlen (type); - if (strncmp (p, "_DIR", 4) != 0) - continue; - p += 4; - - while (*p == ' ' || *p == '\t') - p++; - - if (*p != '=') - continue; - p++; - - while (*p == ' ' || *p == '\t') - p++; - - if (*p != '"') - continue; - p++; - - relative = 0; - if (strncmp (p, "$HOME/", 6) == 0) - { - p += 6; - relative = 1; - } - else if (*p != '/') - continue; - - if (relative) - { - user_dir = (char*) malloc (strlen (home_dir) + 1 + strlen (p) + 1); - if (user_dir == NULL) - goto error2; - - strcpy (user_dir, home_dir); - strcat (user_dir, "/"); - } - else - { - user_dir = (char*) malloc (strlen (p) + 1); - if (user_dir == NULL) - goto error2; - - *user_dir = 0; - } - - d = user_dir + strlen (user_dir); - while (*p && *p != '"') - { - if ((*p == '\\') && (*(p+1) != 0)) - p++; - *d++ = *p++; - } - *d = 0; - } - error2: - fclose (file); - - if (user_dir) - return user_dir; - - error: - if (fallback) - return strdup (fallback); - return NULL; - } #endif #else #error "Operating system not detected." @@ -581,7 +440,7 @@ Oneshot::Oneshot(RGSSThreadData &threadData) : } //Get documents path - std::string path = std::string(getenv("HOME")) + std::string("/Documents"); //xdg_user_dir_lookup_with_fallback("Documents", getenv("HOME")); + std::string path = std::string(getenv("HOME")) + std::string("/Documents"); p->docsPath = path.c_str(); p->gamePath = path.c_str(); #ifdef OS_OSX diff --git a/src/xdg-user-dir-lookup.c b/src/xdg-user-dir-lookup.c deleted file mode 100644 index 5c6c90d..0000000 --- a/src/xdg-user-dir-lookup.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - This file is not licenced under the GPL like the rest of the code. - Its is under the MIT license, to encourage reuse by cut-and-paste. - - Copyright (c) 2007 Red Hat, Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -*/ - -#include -#include -#include - -/** - * xdg_user_dir_lookup_with_fallback: - * @type: a string specifying the type of directory - * @fallback: value to use if the directory isn't specified by the user - * @returns: a newly allocated absolute pathname - * - * Looks up a XDG user directory of the specified type. - * Example of types are "DESKTOP" and "DOWNLOAD". - * - * In case the user hasn't specified any directory for the specified - * type the value returned is @fallback. - * - * The return value is newly allocated and must be freed with - * free(). The return value is never NULL if @fallback != NULL, unless - * out of memory. - **/ -static char * -xdg_user_dir_lookup_with_fallback (const char *type, const char *fallback) -{ - FILE *file; - char *home_dir, *config_home, *config_file; - char buffer[512]; - char *user_dir; - char *p, *d; - int len; - int relative; - - home_dir = getenv ("HOME"); - - if (home_dir == NULL) - goto error; - - config_home = getenv ("XDG_CONFIG_HOME"); - if (config_home == NULL || config_home[0] == 0) - { - config_file = (char*) malloc (strlen (home_dir) + strlen ("/.config/user-dirs.dirs") + 1); - if (config_file == NULL) - goto error; - - strcpy (config_file, home_dir); - strcat (config_file, "/.config/user-dirs.dirs"); - } - else - { - config_file = (char*) malloc (strlen (config_home) + strlen ("/user-dirs.dirs") + 1); - if (config_file == NULL) - goto error; - - strcpy (config_file, config_home); - strcat (config_file, "/user-dirs.dirs"); - } - - file = fopen (config_file, "r"); - free (config_file); - if (file == NULL) - goto error; - - user_dir = NULL; - while (fgets (buffer, sizeof (buffer), file)) - { - /* Remove newline at end */ - len = strlen (buffer); - if (len > 0 && buffer[len-1] == '\n') - buffer[len-1] = 0; - - p = buffer; - while (*p == ' ' || *p == '\t') - p++; - - if (strncmp (p, "XDG_", 4) != 0) - continue; - p += 4; - if (strncmp (p, type, strlen (type)) != 0) - continue; - p += strlen (type); - if (strncmp (p, "_DIR", 4) != 0) - continue; - p += 4; - - while (*p == ' ' || *p == '\t') - p++; - - if (*p != '=') - continue; - p++; - - while (*p == ' ' || *p == '\t') - p++; - - if (*p != '"') - continue; - p++; - - relative = 0; - if (strncmp (p, "$HOME/", 6) == 0) - { - p += 6; - relative = 1; - } - else if (*p != '/') - continue; - - if (relative) - { - user_dir = (char*) malloc (strlen (home_dir) + 1 + strlen (p) + 1); - if (user_dir == NULL) - goto error2; - - strcpy (user_dir, home_dir); - strcat (user_dir, "/"); - } - else - { - user_dir = (char*) malloc (strlen (p) + 1); - if (user_dir == NULL) - goto error2; - - *user_dir = 0; - } - - d = user_dir + strlen (user_dir); - while (*p && *p != '"') - { - if ((*p == '\\') && (*(p+1) != 0)) - p++; - *d++ = *p++; - } - *d = 0; - } -error2: - fclose (file); - - if (user_dir) - return user_dir; - - error: - if (fallback) - return strdup (fallback); - return NULL; -} - -/** - * xdg_user_dir_lookup: - * @type: a string specifying the type of directory - * @returns: a newly allocated absolute pathname - * - * Looks up a XDG user directory of the specified type. - * Example of types are "DESKTOP" and "DOWNLOAD". - * - * The return value is always != NULL (unless out of memory), - * and if a directory - * for the type is not specified by the user the default - * is the home directory. Except for DESKTOP which defaults - * to ~/Desktop. - * - * The return value is newly allocated and must be freed with - * free(). - **/ -static char * -xdg_user_dir_lookup (const char *type) -{ - char *dir, *home_dir, *user_dir; - - dir = xdg_user_dir_lookup_with_fallback (type, NULL); - if (dir != NULL) - return dir; - - home_dir = getenv ("HOME"); - - if (home_dir == NULL) - return strdup ("/tmp"); - - /* Special case desktop for historical compatibility */ - if (strcmp (type, "DESKTOP") == 0) - { - user_dir = (char*) malloc (strlen (home_dir) + strlen ("/Desktop") + 1); - if (user_dir == NULL) - return NULL; - - strcpy (user_dir, home_dir); - strcat (user_dir, "/Desktop"); - return user_dir; - } - - return strdup (home_dir); -} - -#ifdef STANDALONE_XDG_USER_DIR_LOOKUP -int -main (int argc, char *argv[]) -{ - if (argc != 2) - { - fprintf (stderr, "Usage %s \n", argv[0]); - exit (1); - } - - printf ("%s\n", xdg_user_dir_lookup (argv[1])); - return 0; -} -#endif From 8d0c7dbb6a5eb0e33fbb9931b228030d0cd88622 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Wed, 21 Mar 2018 01:52:32 -0700 Subject: [PATCH 04/14] Add OCLint command (for macOS) --- .gitignore | 2 ++ oclint.sh | 8 ++++++++ 2 files changed, 10 insertions(+) create mode 100755 oclint.sh diff --git a/.gitignore b/.gitignore index 04acf7b..e0a43e9 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,5 @@ OneShot .qmake.stash CMakeCache.txt CMakeFiles/ + +oclint/ diff --git a/oclint.sh b/oclint.sh new file mode 100755 index 0000000..895c463 --- /dev/null +++ b/oclint.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +cd `dirname $0` +cd oclint + +oclint -report-type html -o report.html ../src/alstream.cpp ../src/audio.cpp ../src/audiostream.cpp ../src/autotiles.cpp ../src/bitmap.cpp ../src/config.cpp ../src/etc.cpp ../src/eventthread.cpp ../src/filesystem.cpp ../src/font.cpp ../src/gl-debug.cpp ../src/gl-fun.cpp ../src/gl-meta.cpp ../src/glstate.cpp ../src/graphics.cpp ../src/i18n.cpp ../src/input.cpp ../src/keybindings.cpp ../src/mac-desktop.mm ../src/main.cpp ../src/oneshot.cpp ../src/plane.cpp ../src/rgssad.cpp ../src/scene.cpp ../src/screen.cpp ../src/sdlsoundsource.cpp ../src/settingsmenu.cpp ../src/shader.cpp ../src/sharedstate.cpp ../src/soundemitter.cpp ../src/sprite.cpp ../src/steam.cpp ../src/table.cpp ../src/texpool.cpp ../src/tileatlas.cpp ../src/tilemap.cpp ../src/tilequad.cpp ../src/vertex.cpp ../src/viewport.cpp ../src/vorbissource.cpp ../src/window.cpp ../binding-mri/audio-binding.cpp ../binding-mri/binding-mri.cpp ../binding-mri/binding-util.cpp ../binding-mri/bitmap-binding.cpp ../binding-mri/chroma-binding.cpp ../binding-mri/etc-binding.cpp ../binding-mri/filesystem-binding.cpp ../binding-mri/font-binding.cpp ../binding-mri/graphics-binding.cpp ../binding-mri/input-binding.cpp ../binding-mri/journal-binding.cpp ../binding-mri/module_rpg.cpp ../binding-mri/niko-binding.cpp ../binding-mri/oneshot-binding.cpp ../binding-mri/plane-binding.cpp ../binding-mri/screen-binding.cpp ../binding-mri/sprite-binding.cpp ../binding-mri/steam-binding.cpp ../binding-mri/table-binding.cpp ../binding-mri/tilemap-binding.cpp ../binding-mri/viewport-binding.cpp ../binding-mri/wallpaper-binding.cpp ../binding-mri/window-binding.cpp -- -c -pipe -stdlib=libc++ -O2 -std=gnu++11 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.10 -Wall -W -fPIC -DNDEBUG -DBINDING_MRI -D_THREAD_SAFE -I. -I. -Isrc -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/OpenAL.framework/Versions/A/Headers -I/usr/local/Cellar/libsigc++/2.10.0/include/sigc++-2.0 -I/usr/local/Cellar/libsigc++/2.10.0/lib/sigc++-2.0/include -I/usr/local/Cellar/pixman/0.34.0_1/include/pixman-1 -I/usr/local/include/SDL2 -I/usr/local/include -I/usr/local/include/AL -I/usr/local/Cellar/libvorbis/1.3.6/include -I/usr/local/Cellar/libogg/1.3.3/include -I/usr/local/Cellar/physfs/3.0.1/include -I/usr/local/Cellar/ruby/2.5.0_2/include/ruby-2.5.0/x86_64-darwin17 -I/usr/local/Cellar/ruby/2.5.0_2/include/ruby-2.5.0 -I/usr/local/Cellar/qt/5.10.1/mkspecs/macx-clang + From eba1a2255473bc94b66bb316c41ab974d4f18508 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Thu, 29 Mar 2018 04:10:38 -0700 Subject: [PATCH 05/14] Fix journal path --- src/oneshot.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/oneshot.cpp b/src/oneshot.cpp index 0391e70..9ab2449 100644 --- a/src/oneshot.cpp +++ b/src/oneshot.cpp @@ -444,7 +444,7 @@ Oneshot::Oneshot(RGSSThreadData &threadData) : p->docsPath = path.c_str(); p->gamePath = path.c_str(); #ifdef OS_OSX - p->journal = "_______.app/Contents/MacOS/_______"; + p->journal = "_______.app"; #elif defined OS_LINUX p->journal = "_______"; #endif From fb50147c7a58d23e3fb8fc676da3f4e707e76ff7 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Tue, 17 Apr 2018 00:59:00 -0700 Subject: [PATCH 06/14] Minor whitespace change --- scripts/Script.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Script.rb b/scripts/Script.rb index e9037b4..1c5c1f0 100644 --- a/scripts/Script.rb +++ b/scripts/Script.rb @@ -378,7 +378,7 @@ module Script begin if File.file?(Oneshot::JOURNAL) File.open(Oneshot::JOURNAL, "rb") do |input| - File.open(Oneshot::GAME_PATH + "/Oneshot/" + Oneshot::JOURNAL,"wb") do |output| + File.open(Oneshot::GAME_PATH + "/Oneshot/" + Oneshot::JOURNAL, "wb") do |output| while buff = input.read(4096) output.write(buff) end From 7242b935e56310ddbf3cfee8aac204dc0b718217 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Tue, 17 Apr 2018 02:03:14 -0700 Subject: [PATCH 07/14] Bump version number on macOS --- make-oneshot-mac.command | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-oneshot-mac.command b/make-oneshot-mac.command index 693979e..ea68733 100755 --- a/make-oneshot-mac.command +++ b/make-oneshot-mac.command @@ -4,7 +4,7 @@ set -e cd `dirname $0` # User-configurable variables -mac_version="0.8.0" +mac_version="0.8.1" make_threads=8 ONESHOT_PATH=$HOME/Library/Application\ Support/Steam/steamapps/common/OneShot From 96ca228d499dbe4514d302d2ac80f520673c8ff4 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Tue, 17 Apr 2018 02:03:30 -0700 Subject: [PATCH 08/14] Add icon for journal on Linux --- journal/unix/journal.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/journal/unix/journal.spec b/journal/unix/journal.spec index 4210c18..d11bca3 100644 --- a/journal/unix/journal.spec +++ b/journal/unix/journal.spec @@ -22,7 +22,8 @@ exe = EXE(pyz, debug=False, strip=False, upx=True, - console=False ) + console=False, + icon='assets/icon_journal.ico') coll = COLLECT(exe, a.binaries, a.zipfiles, From 2220473c22150b8ce392fc66cc703e7279145e9b Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Tue, 24 Apr 2018 00:49:14 -0700 Subject: [PATCH 09/14] Fix #33 --- scripts/Script.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/Script.rb b/scripts/Script.rb index 1c5c1f0..02ade60 100644 --- a/scripts/Script.rb +++ b/scripts/Script.rb @@ -389,6 +389,8 @@ module Script end rescue Errno::EACCES => e #this probably means the clover.exe already exists and is running, so no need to create it again + rescue Errno::EEXIST => e + #this means that the journal file already exists, so no need to create it again end if File.exists?("README.txt") File.open("README.txt", "rb") do |input| From 6273077dbe1bff0a7547029bc5a682a374651f19 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Tue, 24 Apr 2018 04:26:01 -0700 Subject: [PATCH 10/14] Fix #35 --- binding-mri/journal-binding.cpp | 15 +++++++++------ install.command | 2 ++ journal/unix/journal.py | 13 +++++++++++-- scripts/Script.rb | 2 ++ 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/binding-mri/journal-binding.cpp b/binding-mri/journal-binding.cpp index 2902f70..ed01539 100644 --- a/binding-mri/journal-binding.cpp +++ b/binding-mri/journal-binding.cpp @@ -72,12 +72,15 @@ int server_thread(void *data) } CloseHandle(pipe); #else - out_pipe = open(PIPE_PATH, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); - active = true; - SDL_LockMutex(mutex); - if (message_len > 0) - write(out_pipe, (char*)message_buffer, message_len); - SDL_UnlockMutex(mutex); + if (FILE *file = fopen(PIPE_PATH, "r")) { + fclose(file); + out_pipe = open(PIPE_PATH, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); + SDL_LockMutex(mutex); + active = true; + if (message_len > 0) + write(out_pipe, (char*)message_buffer, message_len); + SDL_UnlockMutex(mutex); + } return 0; #endif } diff --git a/install.command b/install.command index 4f19c8b..bab16f0 100755 --- a/install.command +++ b/install.command @@ -26,5 +26,7 @@ cp -rf "./_______.app" "$ONESHOT_PATH" cp -R "./Graphics/" "$ONESHOT_PATH/Wallpaper" ln -sfh "$ONESHOT_PATH/OneShot.app" "$HOME/Applications/OneShot.app" +rm -f /tmp/oneshot-pipe # Important for pre-release version cleanup + echo "\n${green}Complete! ${white}Please report any issues to https://github.com/vinyldarkscratch/synglechance/issues${color_reset}" open "$ONESHOT_PATH" \ No newline at end of file diff --git a/journal/unix/journal.py b/journal/unix/journal.py index a9fd09b..8340c20 100644 --- a/journal/unix/journal.py +++ b/journal/unix/journal.py @@ -75,6 +75,7 @@ class Journal(QWidget): self.setMinimumSize(800, 600) self.setMaximumSize(800, 600) self.setGeometry(0, 0, 800, 600) + self.show() def mousePressEvent(self, event): @@ -162,12 +163,20 @@ if __name__ == '__main__': save.seek(-8, os.SEEK_END) lang = save.read().decode('utf-8') lang = lang[lang.find('[') + 1:lang.find(']')] - if lang == 'en_US': - lang = 'en' + if lang == 'en_US': lang = 'en' journal.change_image('save_' + lang) else: thread = WatchPipe() thread.change_image.connect(journal.change_image) thread.start() + pipe_file = open(pipe_path, "w+") + pipe_file.close() + app.exec_() + + try: + os.remove(pipe_path) + except: + # Most likely due to the file being in use. Ignore. + pass diff --git a/scripts/Script.rb b/scripts/Script.rb index 02ade60..f3bbc5f 100644 --- a/scripts/Script.rb +++ b/scripts/Script.rb @@ -450,6 +450,8 @@ module Script end rescue Errno::EACCES => e #this probably means the file already exists and is open, so no need to create it again + rescue Errno::EEXIST => e + #this probably means the file already exists, so no need to create it again end end From 39c970b8efc93a91e9c10efa31935ab5791a7f28 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Tue, 24 Apr 2018 04:26:18 -0700 Subject: [PATCH 11/14] Add updated CommonEvents.rxdata --- CommonEvents.rxdata | Bin 0 -> 89803 bytes install.command | 1 + 2 files changed, 1 insertion(+) create mode 100644 CommonEvents.rxdata diff --git a/CommonEvents.rxdata b/CommonEvents.rxdata new file mode 100644 index 0000000000000000000000000000000000000000..417b2fccf2f1d232400b99b50f421333f1650fa7 GIT binary patch literal 89803 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 ${cyan}Install OneShot apps to Steam directory...${color_reset}" cp -f "./xScripts.rxdata" "$ONESHOT_PATH/Data/xScripts.rxdata" +cp -f "./CommonEvents.rxdata" "$ONESHOT_PATH/Data/CommonEvents.rxdata" cp -rf "./OneShot.app" "$ONESHOT_PATH" cp -rf "./_______.app" "$ONESHOT_PATH" cp -R "./Graphics/" "$ONESHOT_PATH/Wallpaper" From 68460612e31c52d24efc2562d7b741d709613bfb Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Tue, 24 Apr 2018 04:40:19 -0700 Subject: [PATCH 12/14] Fix #34 --- binding-mri/wallpaper-binding.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/binding-mri/wallpaper-binding.cpp b/binding-mri/wallpaper-binding.cpp index 1e170d8..4abc04e 100644 --- a/binding-mri/wallpaper-binding.cpp +++ b/binding-mri/wallpaper-binding.cpp @@ -33,9 +33,10 @@ static bool isCached = false; RB_METHOD(wallpaperSet) { RB_UNUSED_PARAM; - const char *imageName; + const char *iname; int color; - rb_get_args(argc, argv, "zi", &imageName, &color RB_ARG_END); + rb_get_args(argc, argv, "zi", &iname, &color RB_ARG_END); + std::string imageName = iname; std::string imgname = shState->config().gameFolder + "/Wallpaper/" + imageName + ".bmp"; #ifdef _WIN32 // Crapify the slashes @@ -105,8 +106,8 @@ end: if (hKey) RegCloseKey(hKey); #else - std::size_t found = imgname.find("w32"); - if (found != std::string::npos) imgname.replace(imgname.end()-3, imgname.end(), "unix"); + std::size_t found = imageName.find("w32"); + if (found != std::string::npos) imageName.replace(imageName.end()-3, imageName.end(), "unix"); imgname = shState->config().gameFolder + "/Wallpaper/" + imageName + ".png"; #ifdef __APPLE__ From b5208d08b0bc2574ce279b66007a578ae240587b Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Tue, 24 Apr 2018 04:40:29 -0700 Subject: [PATCH 13/14] Add wallpaper change logging --- binding-mri/wallpaper-binding.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/binding-mri/wallpaper-binding.cpp b/binding-mri/wallpaper-binding.cpp index 4abc04e..2b4013f 100644 --- a/binding-mri/wallpaper-binding.cpp +++ b/binding-mri/wallpaper-binding.cpp @@ -1,3 +1,5 @@ +#include + #include "etc.h" #include "sharedstate.h" #include "binding-util.h" @@ -39,6 +41,7 @@ RB_METHOD(wallpaperSet) std::string imageName = iname; std::string imgname = shState->config().gameFolder + "/Wallpaper/" + imageName + ".bmp"; #ifdef _WIN32 + std::cout << "Setting wallpaper to " << imgname << std::endl; // Crapify the slashes size_t index = 0; for (;;) { @@ -110,6 +113,8 @@ end: if (found != std::string::npos) imageName.replace(imageName.end()-3, imageName.end(), "unix"); imgname = shState->config().gameFolder + "/Wallpaper/" + imageName + ".png"; + std::cout << "Setting wallpaper to " << imgname << std::endl; + #ifdef __APPLE__ if (!isCached) { MacDesktop::CacheCurrentBackground(); From 4012fa10dcb177566674893ab39863a6d5915fda Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Tue, 24 Apr 2018 04:40:37 -0700 Subject: [PATCH 14/14] Bump version number --- make-oneshot-mac.command | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-oneshot-mac.command b/make-oneshot-mac.command index ea68733..749e565 100755 --- a/make-oneshot-mac.command +++ b/make-oneshot-mac.command @@ -4,7 +4,7 @@ set -e cd `dirname $0` # User-configurable variables -mac_version="0.8.1" +mac_version="1.0.0" make_threads=8 ONESHOT_PATH=$HOME/Library/Application\ Support/Steam/steamapps/common/OneShot