From 23dcec9d07cb61e0e808137c395cdf1fc873240f Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Mon, 19 Sep 2011 20:05:15 +0100 Subject: [PATCH 1/2] Allow setting of application data path \(For config, save and script data\) --- src/main.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main.c b/src/main.c index 3e530db00..d756fae30 100644 --- a/src/main.c +++ b/src/main.c @@ -1716,6 +1716,20 @@ int main(int argc, char *argv[]) } i++; } + else if (!strncmp(argv[i], "ddir", 4) && i+1 Date: Mon, 19 Sep 2011 21:31:10 +0100 Subject: [PATCH 2/2] Game installer launches game with data directory for Windows (AppData) --- includes/defines.h | 2 ++ src/misc.c | 80 ++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 69 insertions(+), 13 deletions(-) diff --git a/includes/defines.h b/includes/defines.h index 1d0889cc9..693960fe7 100644 --- a/includes/defines.h +++ b/includes/defines.h @@ -22,6 +22,8 @@ #define LOCAL_LUA_DIR "Lua" +#define APPDATA_SUBDIR "\\HardWIRED" + #define THUMB_CACHE_SIZE 256 #ifndef M_PI diff --git a/src/misc.c b/src/misc.c index 8983f1f8c..7004416ac 100644 --- a/src/misc.c +++ b/src/misc.c @@ -12,6 +12,8 @@ #include #include #if defined WIN32 +#include +#include #include #else #include @@ -467,80 +469,132 @@ char * clipboard_pull_text() int register_extension() { #if defined WIN32 + int returnval; LONG rresult; HKEY newkey; char *currentfilename = exe_name(); char *iconname = NULL; char *opencommand = NULL; + char AppDataPath[MAX_PATH]; iconname = malloc(strlen(currentfilename)+6); - opencommand = malloc(strlen(currentfilename)+13); sprintf(iconname, "%s,-102", currentfilename); - sprintf(opencommand, "\"%s\" open \"%%1\"", currentfilename); + + //Create Roaming application data folder + if(!SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE, NULL, 0, AppDataPath))) + { + returnval = 0; + goto finalise; + } + + //Move Game executable into application data folder + //TODO: Implement + + opencommand = malloc(strlen(currentfilename)+53+strlen(AppDataPath)); + if((strlen(AppDataPath)+strlen(APPDATA_SUBDIR "\\Powder Toy"))