It's working! Hooray!
This commit is contained in:
parent
a3496fe02e
commit
0b7d72ebdd
|
@ -189,11 +189,11 @@ if [ "x$ans" = "x1" -o "x$ans" = "x" ]; then
|
|||
echo " * Standalone version"
|
||||
rm -f Rules.make
|
||||
ln -sf Rules.make.standalone Rules.make
|
||||
rm -f sdl-instead
|
||||
ln -sf src/sdl-instead/sdl-instead sdl-instead
|
||||
rm -f steed
|
||||
ln -sf src/sdl-instead/sdl-instead steed
|
||||
echo "Ok. We are ready to build. Use these commands:"
|
||||
echo " \$ make"
|
||||
echo " \$ ./sdl-instead"
|
||||
echo " \$ ./steed"
|
||||
elif [ "x$ans" = "x2" ]; then
|
||||
echo -n "Enter prefix path [/usr/local]: "
|
||||
read ans
|
||||
|
@ -223,7 +223,7 @@ elif [ "x$ans" = "x2" ]; then
|
|||
echo "Ok. We are ready to build and install. Use these commands:"
|
||||
echo " \$ make"
|
||||
echo " \$ sudo make install"
|
||||
echo " \$ sdl-instead"
|
||||
echo " \$ steed"
|
||||
else
|
||||
echo "Huh!!! Wrong answer."
|
||||
exit 1
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
src/sdl-instead/sdl-instead
|
|
@ -21,12 +21,10 @@ sdl-instead$(EXE): $(OBJ) $(RESOURCES)
|
|||
|
||||
install:
|
||||
$(INSTALLD) $(BIN)
|
||||
$(INSTALLB) sdl-instead$(EXE) $(BIN)/sdl-instead$(EXE)
|
||||
$(LN) sdl-instead$(EXE) $(BIN)/instead$(EXE)
|
||||
$(INSTALLB) sdl-instead$(EXE) $(BIN)/steed$(EXE)
|
||||
|
||||
uninstall:
|
||||
$(RM) $(BIN)/sdl-instead$(EXE)
|
||||
$(RM) $(BIN)/instead$(EXE)
|
||||
$(RM) $(BIN)/steed$(EXE)
|
||||
|
||||
clean:
|
||||
$(RM) -f *.o sdl-instead$(EXE)
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#endif
|
||||
|
||||
#ifdef _WIN32_WCE
|
||||
extern void libwince_init(const char* prog, int debug);
|
||||
extern void libwince_init(const char* prog, int debug);
|
||||
#endif
|
||||
|
||||
extern int debug_init(void);
|
||||
|
@ -46,374 +46,417 @@ char *start_idf_sw = NULL;
|
|||
extern int unpack(const char *zipfilename, const char *where);
|
||||
extern char zip_game_dirname[];
|
||||
|
||||
static void
|
||||
get_url (const char *url, const char *outfile)
|
||||
{
|
||||
const char *name;
|
||||
static SoupSession *session;
|
||||
SoupMessage *msg;
|
||||
const char *header;
|
||||
|
||||
session = soup_session_sync_new_with_options (
|
||||
SOUP_SESSION_SSL_CA_FILE, NULL,
|
||||
SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_CONTENT_DECODER,
|
||||
SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_COOKIE_JAR,
|
||||
SOUP_SESSION_USER_AGENT, "get ",
|
||||
SOUP_SESSION_ACCEPT_LANGUAGE_AUTO, TRUE,
|
||||
NULL);
|
||||
|
||||
|
||||
msg = soup_message_new (SOUP_METHOD_GET, url);
|
||||
soup_message_set_flags (msg, SOUP_MESSAGE_NO_REDIRECT);
|
||||
|
||||
soup_session_send_message (session, msg);
|
||||
|
||||
name = soup_message_get_uri (msg)->path;
|
||||
|
||||
if (SOUP_STATUS_IS_REDIRECTION (msg->status_code)) {
|
||||
header = soup_message_headers_get_one (msg->response_headers,
|
||||
"Location");
|
||||
if (header) {
|
||||
SoupURI *uri;
|
||||
char *uri_string;
|
||||
uri = soup_uri_new_with_base (soup_message_get_uri (msg), header);
|
||||
uri_string = soup_uri_to_string (uri, FALSE);
|
||||
get_url (uri_string,outfile);
|
||||
g_free (uri_string);
|
||||
soup_uri_free (uri);
|
||||
}
|
||||
} else if (SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
|
||||
//FILE * temp = fopen(outfile,"w");
|
||||
//fwrite (msg->response_body->data, 1, msg->response_body->length, temp);
|
||||
int fd = open (outfile, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
||||
write (fd, msg->response_body->data, msg->response_body->length);
|
||||
close (fd);
|
||||
//fclose(temp);
|
||||
}
|
||||
}
|
||||
|
||||
static int setup_zip(const char *file, char *p)
|
||||
{
|
||||
if (!p)
|
||||
return -1;
|
||||
if (!p) return -1;
|
||||
#ifdef _USE_HTTP
|
||||
SoupSession * soup_session = soup_session_sync_new ();
|
||||
SoupMessage * msg;
|
||||
int fd;
|
||||
if (soup_uri_new (file)){
|
||||
msg = soup_message_new ("GET", file);
|
||||
if (!SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) return -2;
|
||||
sprintf(file,"%s/temp_download.zip",p);
|
||||
fd = open (file, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
||||
write (fd, msg->response_body, msg->response_body->length);
|
||||
}
|
||||
SoupURI * parsed = soup_uri_new (file);
|
||||
if (parsed){
|
||||
char * outfile = game_tmp_path();
|
||||
strcat(outfile,"/temp_download.zip");
|
||||
get_url(file,outfile);
|
||||
file = outfile;
|
||||
}
|
||||
soup_uri_free (parsed);
|
||||
#endif
|
||||
fprintf(stderr,"Trying to install: %s\n", file);
|
||||
if (unpack(file, p)) {
|
||||
if (zip_game_dirname[0]) {
|
||||
p = getpath(p, zip_game_dirname);
|
||||
fprintf(stderr, "Cleaning: '%s'...\n", p);
|
||||
remove_dir(p);
|
||||
free(p);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
game_sw = zip_game_dirname;
|
||||
games_sw = p;
|
||||
return 0;
|
||||
fprintf(stderr,"Trying to install: %s\n", file);
|
||||
if (unpack(file, p)) {
|
||||
if (zip_game_dirname[0]) {
|
||||
p = getpath(p, zip_game_dirname);
|
||||
fprintf(stderr, "Cleaning: '%s'...\n", p);
|
||||
remove_dir(p);
|
||||
free(p);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
game_sw = zip_game_dirname;
|
||||
games_sw = p;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int start_idf(char *file)
|
||||
{
|
||||
if (!file)
|
||||
return -1;
|
||||
if (!idf_magic(file))
|
||||
return -1;
|
||||
start_idf_sw = file;
|
||||
return 0;
|
||||
if (!file)
|
||||
return -1;
|
||||
if (!idf_magic(file))
|
||||
return -1;
|
||||
start_idf_sw = file;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
void macosx_init(void) {
|
||||
char resourcePath[PATH_MAX];
|
||||
CFBundleRef mainBundle;
|
||||
CFURLRef resourcesDirectoryURL;
|
||||
mainBundle = CFBundleGetMainBundle();
|
||||
if (!mainBundle)
|
||||
return;
|
||||
resourcesDirectoryURL = CFBundleCopyResourcesDirectoryURL(mainBundle);
|
||||
if (!resourcesDirectoryURL)
|
||||
return;
|
||||
CFURLGetFileSystemRepresentation(resourcesDirectoryURL, true, (UInt8 *) resourcePath, PATH_MAX);
|
||||
CFRelease(resourcesDirectoryURL);
|
||||
chdir(resourcePath);
|
||||
return;
|
||||
char resourcePath[PATH_MAX];
|
||||
CFBundleRef mainBundle;
|
||||
CFURLRef resourcesDirectoryURL;
|
||||
mainBundle = CFBundleGetMainBundle();
|
||||
if (!mainBundle)
|
||||
return;
|
||||
resourcesDirectoryURL = CFBundleCopyResourcesDirectoryURL(mainBundle);
|
||||
if (!resourcesDirectoryURL)
|
||||
return;
|
||||
CFURLGetFileSystemRepresentation(resourcesDirectoryURL, true, (UInt8 *) resourcePath, PATH_MAX);
|
||||
CFRelease(resourcesDirectoryURL);
|
||||
chdir(resourcePath);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32_WCE
|
||||
char *getcurdir(char *path)
|
||||
{
|
||||
char *p;
|
||||
if (path == NULL || *path == '\0')
|
||||
return ".";
|
||||
p = path + strlen(path) - 1;
|
||||
while (*p == '/') {
|
||||
if (p == path)
|
||||
return path;
|
||||
*p-- = '\0';
|
||||
}
|
||||
while (p >= path && *p != '/')
|
||||
p--;
|
||||
return p < path ? "." : p == path ? "/" : (*p = '\0', path);
|
||||
char *p;
|
||||
if (path == NULL || *path == '\0')
|
||||
return ".";
|
||||
p = path + strlen(path) - 1;
|
||||
while (*p == '/') {
|
||||
if (p == path)
|
||||
return path;
|
||||
*p-- = '\0';
|
||||
}
|
||||
while (p >= path && *p != '/')
|
||||
p--;
|
||||
return p < path ? "." : p == path ? "/" : (*p = '\0', path);
|
||||
}
|
||||
void wince_init(char *path)
|
||||
{
|
||||
unix_path(path);
|
||||
strcpy(game_cwd, getcurdir(path));
|
||||
unix_path(path);
|
||||
strcpy(game_cwd, getcurdir(path));
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int clean_tmp = 0;
|
||||
int err = 0;
|
||||
int i;
|
||||
int clean_tmp = 0;
|
||||
int err = 0;
|
||||
int i;
|
||||
#ifdef __APPLE__
|
||||
macosx_init();
|
||||
macosx_init();
|
||||
#endif
|
||||
#ifdef _USE_GTK
|
||||
gtk_init(&argc, &argv);
|
||||
gtk_init(&argc, &argv);
|
||||
#endif
|
||||
#ifndef S60
|
||||
putenv("SDL_MOUSE_RELATIVE=0"); /* test this! */
|
||||
putenv("SDL_MOUSE_RELATIVE=0"); /* test this! */
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32_WCE
|
||||
libwince_init(argv[0], 1);
|
||||
wince_init(argv[0]);
|
||||
libwince_init(argv[0], 1);
|
||||
wince_init(argv[0]);
|
||||
#else
|
||||
#ifdef S60
|
||||
extern char s60_data[];
|
||||
strcpy(game_cwd, s60_data);
|
||||
extern char s60_data[];
|
||||
strcpy(game_cwd, s60_data);
|
||||
#else
|
||||
#ifdef _WIN32
|
||||
strcpy(game_cwd, dirname(argv[0]));
|
||||
strcpy(game_cwd, dirname(argv[0]));
|
||||
#else
|
||||
getcwd(game_cwd, sizeof(game_cwd));
|
||||
getcwd(game_cwd, sizeof(game_cwd));
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
unix_path(game_cwd);
|
||||
setdir(game_cwd);
|
||||
unix_path(game_cwd);
|
||||
setdir(game_cwd);
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (!strcmp(argv[i],"-alsa"))
|
||||
alsa_sw = 1;
|
||||
else if (!strcmp(argv[i], "-nosound"))
|
||||
nosound_sw = 1;
|
||||
else if (!strcmp(argv[i], "-fullscreen"))
|
||||
fullscreen_sw = 1;
|
||||
else if (!strcmp(argv[i], "-mode")) {
|
||||
if ((i + 1) < argc)
|
||||
mode_sw = argv[++i];
|
||||
else
|
||||
mode_sw = "-1x-1";
|
||||
} else if (!strcmp(argv[i], "-window"))
|
||||
window_sw = 1;
|
||||
else if (!strcmp(argv[i], "-debug"))
|
||||
debug_sw = 1;
|
||||
else if (!strcmp(argv[i], "-noautosave"))
|
||||
noauto_sw = 1;
|
||||
else if (!strcmp(argv[i], "-game")) {
|
||||
if ((i + 1) < argc)
|
||||
game_sw = argv[++i];
|
||||
else
|
||||
game_sw = "";
|
||||
} else if (!strcmp(argv[i], "-theme")) {
|
||||
if ((i + 1) < argc)
|
||||
theme_sw = argv[++i];
|
||||
else
|
||||
theme_sw = "";
|
||||
} else if (!strcmp(argv[i], "-nostdgames")) {
|
||||
nostdgames_sw = 1;
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (!strcmp(argv[i],"-alsa"))
|
||||
alsa_sw = 1;
|
||||
else if (!strcmp(argv[i], "-nosound"))
|
||||
nosound_sw = 1;
|
||||
else if (!strcmp(argv[i], "-fullscreen"))
|
||||
fullscreen_sw = 1;
|
||||
else if (!strcmp(argv[i], "-mode")) {
|
||||
if ((i + 1) < argc)
|
||||
mode_sw = argv[++i];
|
||||
else
|
||||
mode_sw = "-1x-1";
|
||||
} else if (!strcmp(argv[i], "-window"))
|
||||
window_sw = 1;
|
||||
else if (!strcmp(argv[i], "-debug"))
|
||||
debug_sw = 1;
|
||||
else if (!strcmp(argv[i], "-noautosave"))
|
||||
noauto_sw = 1;
|
||||
else if (!strcmp(argv[i], "-game")) {
|
||||
if ((i + 1) < argc)
|
||||
game_sw = argv[++i];
|
||||
else
|
||||
game_sw = "";
|
||||
} else if (!strcmp(argv[i], "-theme")) {
|
||||
if ((i + 1) < argc)
|
||||
theme_sw = argv[++i];
|
||||
else
|
||||
theme_sw = "";
|
||||
} else if (!strcmp(argv[i], "-nostdgames")) {
|
||||
nostdgames_sw = 1;
|
||||
#ifdef _LOCAL_APPDATA
|
||||
} else if (!strcmp(argv[i], "-appdata")) {
|
||||
if ((i + 1) < argc)
|
||||
appdata_sw = argv[++i];
|
||||
else
|
||||
appdata_sw = "";
|
||||
} else if (!strcmp(argv[i], "-appdata")) {
|
||||
if ((i + 1) < argc)
|
||||
appdata_sw = argv[++i];
|
||||
else
|
||||
appdata_sw = "";
|
||||
#endif
|
||||
} else if (!strcmp(argv[i], "-chunksize")) {
|
||||
if ((i + 1) < argc)
|
||||
chunksize_sw = atoi(argv[++i]);
|
||||
else
|
||||
chunksize_sw = DEFAULT_CHUNKSIZE;
|
||||
} else if (!strcmp(argv[i], "-gamespath")) {
|
||||
if ((i + 1) < argc)
|
||||
games_sw = argv[++i];
|
||||
else
|
||||
games_sw = "";
|
||||
} else if (!strcmp(argv[i], "-themespath")) {
|
||||
if ((i + 1) < argc)
|
||||
themes_sw = argv[++i];
|
||||
else
|
||||
themes_sw = "";
|
||||
} else if (!strcmp(argv[i], "-idf")) {
|
||||
if ((i + 1) < argc)
|
||||
idf_sw = argv[++i];
|
||||
else {
|
||||
fprintf(stderr,"No data directory specified.\n");
|
||||
exit(1);
|
||||
}
|
||||
} else if (!strcmp(argv[i], "-encode")) {
|
||||
if ((i + 1) < argc)
|
||||
encode_sw = argv[++i];
|
||||
else {
|
||||
fprintf(stderr,"No lua file specified.\n");
|
||||
exit(1);
|
||||
}
|
||||
if ((i + 1) < argc)
|
||||
encode_output = argv[++i];
|
||||
else
|
||||
encode_output = "lua.enc";
|
||||
} else if (!strcmp(argv[i], "-version")) {
|
||||
version_sw = 1;
|
||||
} else if (!strcmp(argv[i], "-nopause")) {
|
||||
nopause_sw = 1;
|
||||
} else if (!strcmp(argv[i], "-chunksize")) {
|
||||
if ((i + 1) < argc)
|
||||
chunksize_sw = atoi(argv[++i]);
|
||||
else
|
||||
chunksize_sw = DEFAULT_CHUNKSIZE;
|
||||
} else if (!strcmp(argv[i], "-gamespath")) {
|
||||
if ((i + 1) < argc)
|
||||
games_sw = argv[++i];
|
||||
else
|
||||
games_sw = "";
|
||||
} else if (!strcmp(argv[i], "-themespath")) {
|
||||
if ((i + 1) < argc)
|
||||
themes_sw = argv[++i];
|
||||
else
|
||||
themes_sw = "";
|
||||
} else if (!strcmp(argv[i], "-idf")) {
|
||||
if ((i + 1) < argc)
|
||||
idf_sw = argv[++i];
|
||||
else {
|
||||
fprintf(stderr,"No data directory specified.\n");
|
||||
exit(1);
|
||||
}
|
||||
} else if (!strcmp(argv[i], "-encode")) {
|
||||
if ((i + 1) < argc)
|
||||
encode_sw = argv[++i];
|
||||
else {
|
||||
fprintf(stderr,"No lua file specified.\n");
|
||||
exit(1);
|
||||
}
|
||||
if ((i + 1) < argc)
|
||||
encode_output = argv[++i];
|
||||
else
|
||||
encode_output = "lua.enc";
|
||||
} else if (!strcmp(argv[i], "-version")) {
|
||||
version_sw = 1;
|
||||
} else if (!strcmp(argv[i], "-nopause")) {
|
||||
nopause_sw = 1;
|
||||
#ifdef _USE_UNPACK
|
||||
} else if (!strcmp(argv[i], "-install")) {
|
||||
if ((i + 1) < argc) {
|
||||
char *file = argv[++i];
|
||||
char *p;
|
||||
if (games_sw)
|
||||
p = games_sw;
|
||||
else
|
||||
p = game_local_games_path(1);
|
||||
if (setup_zip(file, p))
|
||||
exit(1);
|
||||
}
|
||||
} else if (!strcmp(argv[i], "-install")) {
|
||||
if ((i + 1) < argc) {
|
||||
char *file = argv[++i];
|
||||
char *p;
|
||||
if (games_sw)
|
||||
p = games_sw;
|
||||
else
|
||||
p = game_local_games_path(1);
|
||||
if (setup_zip(file, p))
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
} else if (!strcmp(argv[i], "-quit")) {
|
||||
exit(0);
|
||||
} else if (argv[i][0] == '-') {
|
||||
fprintf(stderr,"Unknown option: %s\n", argv[i]);
|
||||
exit(1);
|
||||
}
|
||||
else if (!start_idf(argv[i])) {
|
||||
fprintf(stderr, "Adding idf: %s\n", argv[i]);
|
||||
}
|
||||
} else if (!strcmp(argv[i], "-quit")) {
|
||||
exit(0);
|
||||
} else if (argv[i][0] == '-') {
|
||||
fprintf(stderr,"Unknown option: %s\n", argv[i]);
|
||||
exit(1);
|
||||
}
|
||||
else if (!start_idf(argv[i])) {
|
||||
fprintf(stderr, "Adding idf: %s\n", argv[i]);
|
||||
}
|
||||
#ifdef _USE_UNPACK
|
||||
else {
|
||||
char *p;
|
||||
if (games_sw)
|
||||
p = games_sw;
|
||||
else
|
||||
p = game_tmp_path();
|
||||
if (setup_zip(argv[i], p))
|
||||
exit(1);
|
||||
clean_tmp = 1;
|
||||
}
|
||||
else {
|
||||
char *p;
|
||||
if (games_sw)
|
||||
p = games_sw;
|
||||
else
|
||||
p = game_tmp_path();
|
||||
if (setup_zip(argv[i], p))
|
||||
exit(1);
|
||||
clean_tmp = 1;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if (debug_sw) {
|
||||
debug_init();
|
||||
}
|
||||
if (debug_sw) {
|
||||
debug_init();
|
||||
}
|
||||
|
||||
if (version_sw) {
|
||||
fprintf(stdout, VERSION"\n");
|
||||
goto out;
|
||||
}
|
||||
if (version_sw) {
|
||||
fprintf(stdout, VERSION"\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (encode_sw) {
|
||||
err = instead_encode(encode_sw, encode_output);
|
||||
goto out;
|
||||
}
|
||||
if (encode_sw) {
|
||||
err = instead_encode(encode_sw, encode_output);
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (idf_sw) {
|
||||
char *p = malloc(strlen(idf_sw) + 5);
|
||||
if (p) {
|
||||
char *b;
|
||||
strcpy(p, idf_sw);
|
||||
b = basename(p);
|
||||
strcat(b, ".idf");
|
||||
idf_create(b, idf_sw);
|
||||
free(p);
|
||||
} else
|
||||
idf_create("data.idf", idf_sw);
|
||||
goto out;
|
||||
}
|
||||
menu_langs_lookup(dirpath(LANG_PATH));
|
||||
|
||||
if (!langs_nr) {
|
||||
fprintf(stderr, "No languages found in: %s.\n", dirpath(LANG_PATH));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
cfg_load();
|
||||
|
||||
if (!opt_lang || !opt_lang[0])
|
||||
opt_lang = game_locale();
|
||||
|
||||
if (menu_lang_select(opt_lang) && menu_lang_select(LANG_DEF)) {
|
||||
fprintf(stderr, "Can not load default language.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (games_sw)
|
||||
games_lookup(games_sw);
|
||||
if (idf_sw) {
|
||||
char *p = malloc(strlen(idf_sw) + 5);
|
||||
if (p) {
|
||||
char *b;
|
||||
strcpy(p, idf_sw);
|
||||
b = basename(p);
|
||||
strcat(b, ".idf");
|
||||
idf_create(b, idf_sw);
|
||||
free(p);
|
||||
} else
|
||||
idf_create("data.idf", idf_sw);
|
||||
goto out;
|
||||
}
|
||||
menu_langs_lookup(dirpath(LANG_PATH));
|
||||
|
||||
if (!langs_nr) {
|
||||
fprintf(stderr, "No languages found in: %s.\n", dirpath(LANG_PATH));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
cfg_load();
|
||||
|
||||
if (!opt_lang || !opt_lang[0])
|
||||
opt_lang = game_locale();
|
||||
|
||||
if (menu_lang_select(opt_lang) && menu_lang_select(LANG_DEF)) {
|
||||
fprintf(stderr, "Can not load default language.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (games_sw)
|
||||
games_lookup(games_sw);
|
||||
|
||||
if (!nostdgames_sw && games_lookup(dirpath(GAMES_PATH)))
|
||||
fprintf(stderr, "No games found in: %s.\n", GAMES_PATH);
|
||||
if (!nostdgames_sw && games_lookup(dirpath(GAMES_PATH)))
|
||||
fprintf(stderr, "No games found in: %s.\n", GAMES_PATH);
|
||||
|
||||
if (themes_sw)
|
||||
themes_lookup(themes_sw);
|
||||
if (themes_sw)
|
||||
themes_lookup(themes_sw);
|
||||
|
||||
if (!nostdthemes_sw) {
|
||||
themes_lookup(dirpath(THEMES_PATH));
|
||||
themes_lookup(game_local_themes_path());
|
||||
}
|
||||
|
||||
if (!nostdgames_sw)
|
||||
games_lookup(game_local_games_path(0));
|
||||
if (!nostdthemes_sw) {
|
||||
themes_lookup(dirpath(THEMES_PATH));
|
||||
themes_lookup(game_local_themes_path());
|
||||
}
|
||||
|
||||
if (!nostdgames_sw)
|
||||
games_lookup(game_local_games_path(0));
|
||||
|
||||
if (start_idf_sw) {
|
||||
char *d, *b;
|
||||
char *dd, *bb;
|
||||
static char idf_game[255];
|
||||
d = strdup(start_idf_sw);
|
||||
b = strdup(start_idf_sw);
|
||||
if (d && b) {
|
||||
dd = dirname(d);
|
||||
bb = basename(b);
|
||||
if (!games_replace(dirpath(dd), bb)) {
|
||||
game_sw = idf_game;
|
||||
strncpy(idf_game, bb, sizeof(idf_game) - 1);
|
||||
idf_game[sizeof(idf_game) - 1] = 0;
|
||||
}
|
||||
}
|
||||
if (d)
|
||||
free(d);
|
||||
if (b)
|
||||
free(b);
|
||||
}
|
||||
if (start_idf_sw) {
|
||||
char *d, *b;
|
||||
char *dd, *bb;
|
||||
static char idf_game[255];
|
||||
d = strdup(start_idf_sw);
|
||||
b = strdup(start_idf_sw);
|
||||
if (d && b) {
|
||||
dd = dirname(d);
|
||||
bb = basename(b);
|
||||
if (!games_replace(dirpath(dd), bb)) {
|
||||
game_sw = idf_game;
|
||||
strncpy(idf_game, bb, sizeof(idf_game) - 1);
|
||||
idf_game[sizeof(idf_game) - 1] = 0;
|
||||
}
|
||||
}
|
||||
if (d)
|
||||
free(d);
|
||||
if (b)
|
||||
free(b);
|
||||
}
|
||||
|
||||
if (noauto_sw)
|
||||
opt_autosave = 0;
|
||||
if (window_sw)
|
||||
opt_fs = 0;
|
||||
if (fullscreen_sw)
|
||||
opt_fs = 1;
|
||||
|
||||
if (mode_sw)
|
||||
parse_mode(mode_sw, opt_mode);
|
||||
|
||||
if (game_sw) {
|
||||
FREE(opt_game);
|
||||
opt_game = game_sw;
|
||||
}
|
||||
if (noauto_sw)
|
||||
opt_autosave = 0;
|
||||
if (window_sw)
|
||||
opt_fs = 0;
|
||||
if (fullscreen_sw)
|
||||
opt_fs = 1;
|
||||
|
||||
if (mode_sw)
|
||||
parse_mode(mode_sw, opt_mode);
|
||||
|
||||
if (game_sw) {
|
||||
FREE(opt_game);
|
||||
opt_game = game_sw;
|
||||
}
|
||||
|
||||
if (theme_sw) {
|
||||
FREE(opt_theme);
|
||||
opt_theme = theme_sw;
|
||||
}
|
||||
|
||||
if (opt_theme)
|
||||
game_theme_select(opt_theme);
|
||||
if (!curtheme_dir)
|
||||
game_theme_select(DEFAULT_THEME);
|
||||
|
||||
// Initialize SDL
|
||||
if (gfx_init() < 0)
|
||||
return -1;
|
||||
if (theme_sw) {
|
||||
FREE(opt_theme);
|
||||
opt_theme = theme_sw;
|
||||
}
|
||||
|
||||
if (opt_theme)
|
||||
game_theme_select(opt_theme);
|
||||
if (!curtheme_dir)
|
||||
game_theme_select(DEFAULT_THEME);
|
||||
|
||||
// Initialize SDL
|
||||
if (gfx_init() < 0)
|
||||
return -1;
|
||||
|
||||
if (gfx_video_init() || input_init())
|
||||
return -1;
|
||||
if (gfx_video_init() || input_init())
|
||||
return -1;
|
||||
|
||||
if (game_init(opt_game)) {
|
||||
game_error(opt_game);
|
||||
}
|
||||
if (game_init(opt_game)) {
|
||||
game_error(opt_game);
|
||||
}
|
||||
|
||||
game_loop();
|
||||
cfg_save();
|
||||
game_done(0);
|
||||
game_loop();
|
||||
cfg_save();
|
||||
game_done(0);
|
||||
|
||||
gfx_video_done();
|
||||
gfx_video_done();
|
||||
|
||||
#ifndef ANDROID
|
||||
gfx_done();
|
||||
gfx_done();
|
||||
#endif
|
||||
|
||||
out:
|
||||
if (debug_sw)
|
||||
debug_done();
|
||||
if (debug_sw)
|
||||
debug_done();
|
||||
#ifdef _USE_GTK
|
||||
/* gtk_main_quit (); */
|
||||
/* gtk_main_quit (); */
|
||||
#endif
|
||||
#ifdef _USE_UNPACK
|
||||
if (clean_tmp)
|
||||
remove_dir(game_tmp_path());
|
||||
if (clean_tmp)
|
||||
remove_dir(game_tmp_path());
|
||||
#endif
|
||||
#ifdef ANDROID
|
||||
exit(err);
|
||||
exit(err);
|
||||
#endif
|
||||
return err;
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue