#include "game.h"
#include "tape.h"
#include "tools.h"
+#include "files.h"
#include "events.h"
#include "config.h"
int lev_fieldx, lev_fieldy;
int scroll_x, scroll_y;
-int WIN_XSIZE = 672, WIN_YSIZE = 560;
-int SCR_FIELDX = 17, SCR_FIELDY = 17;
+int WIN_XSIZE = WIN_XSIZE_DEFAULT;
+int WIN_YSIZE = WIN_YSIZE_DEFAULT;
+
+int SCR_FIELDX = SCR_FIELDX_DEFAULT;
+int SCR_FIELDY = SCR_FIELDY_DEFAULT;
+
int REAL_SX = 6, REAL_SY = 6;
int SX = 8, SY = 8;
int DX = 566, DY = 60;
int VX = 566, VY = 400;
int EX = 566, EY = 356;
int dDX, dDY;
-int FULL_SXSIZE = 2 + 17 * TILEX + 2; /* 2 + SXSIZE + 2 */
-int FULL_SYSIZE = 2 + 17 * TILEY + 2; /* 2 + SYSIZE + 2 */
-int SXSIZE = 17 * TILEX; /* SCR_FIELDX * TILEX */
-int SYSIZE = 17 * TILEY; /* SCR_FIELDY * TILEY */
+
+int FULL_SXSIZE = 2 + SXSIZE_DEFAULT + 2;
+int FULL_SYSIZE = 2 + SYSIZE_DEFAULT + 2;
+int SXSIZE = SXSIZE_DEFAULT;
+int SYSIZE = SYSIZE_DEFAULT;
+
int DXSIZE = 100;
int DYSIZE = 280;
int VXSIZE = 100;
" -v, --verbose verbose mode\n"
" -V, --version show program version\n"
" --debug display debugging information\n"
- " --debug-x11-sync enable X11 synchronous mode\n"
" -e, --execute COMMAND execute batch COMMAND\n"
"\n"
"Valid commands for '--execute' option:\n"
" \"autoplay LEVELDIR [NR ...]\" play level tapes for LEVELDIR\n"
" \"convert LEVELDIR [NR]\" convert levels in LEVELDIR\n"
" \"create images DIRECTORY\" write BMP images to DIRECTORY\n"
+ " \"create CE image DIRECTORY\" write BMP image to DIRECTORY\n"
"\n",
program.command_basename);
}
}
}
+static void InitProgramConfig(char *command_filename)
+{
+ char *command_basename = getBaseName(command_filename);
+ char *config_filename = getProgramConfigFilename(command_filename);
+ char *program_title = PROGRAM_TITLE_STRING;
+ char *program_icon_file = PROGRAM_ICON_FILENAME;
+ char *userdata_subdir;
+ char *userdata_subdir_unix;
+
+ // read default program config, if existing
+ if (fileExists(config_filename))
+ LoadSetupFromFilename(config_filename);
+
+ // set program title from potentially redefined program title
+ if (setup.internal.program_title != NULL &&
+ strlen(setup.internal.program_title) > 0)
+ program_title = getStringCopy(setup.internal.program_title);
+
+ // set program icon file from potentially redefined program icon file
+ if (setup.internal.program_icon_file != NULL &&
+ strlen(setup.internal.program_icon_file) > 0)
+ program_icon_file = getStringCopy(setup.internal.program_icon_file);
+
+ // strip trailing executable suffix from command basename
+ if (strSuffix(command_basename, ".exe"))
+ command_basename[strlen(command_basename) - 4] = '\0';
+
+ userdata_subdir_unix = getStringCat2(".", command_basename);
+
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_MACOSX)
+ userdata_subdir = program_title;
+#elif defined(PLATFORM_UNIX)
+ userdata_subdir = userdata_subdir_unix;
+#else
+ userdata_subdir = USERDATA_DIRECTORY_OTHER;
+#endif
+
+ InitProgramInfo(command_filename,
+ config_filename,
+ userdata_subdir,
+ userdata_subdir_unix,
+ program_title,
+ program_title,
+ program_icon_file,
+ COOKIE_PREFIX,
+ GAME_VERSION_ACTUAL);
+}
+
int main(int argc, char *argv[])
{
- InitProgramInfo(argv[0], USERDATA_DIRECTORY, USERDATA_DIRECTORY_UNIX,
- PROGRAM_TITLE_STRING, ICON_TITLE_STRING, SDL_ICON_FILENAME,
- COOKIE_PREFIX, GAME_VERSION_ACTUAL);
+ InitProgramConfig(argv[0]);
InitWindowTitleFunction(getWindowTitleString);
InitExitMessageFunction(DisplayExitMessage);