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/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 #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"))