mirror of
https://github.com/Oibaf66/frodo-wii.git
synced 2024-11-22 11:29:24 +01:00
.sav file passed as arguments, UDF8 ttf font
This commit is contained in:
parent
99454336cb
commit
fe0cbaf42e
@ -112,32 +112,10 @@ void C64::startFakeKeySequence(const char *str)
|
|||||||
this->fake_key_sequence = true;
|
this->fake_key_sequence = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Class already defined in disck_menu.cpp
|
|
||||||
class StartGameListener : public TimeoutHandler
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
StartGameListener()
|
|
||||||
{
|
|
||||||
|
|
||||||
Gui::gui->status_bar->queueMessage("Resetting the C64");
|
|
||||||
TheC64->Reset();
|
|
||||||
TimerController::controller->arm(this, 4500);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void timeoutCallback()
|
|
||||||
{
|
|
||||||
Gui::gui->status_bar->queueMessage("Invoking the load sequence");
|
|
||||||
TheC64->startFakeKeySequence("\nLOAD \"*\",8,1\nRUN\n");
|
|
||||||
delete this;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Start main emulation thread
|
* Start main emulation thread
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern char *floppy8;
|
|
||||||
|
|
||||||
void C64::Run(void)
|
void C64::Run(void)
|
||||||
{
|
{
|
||||||
// Reset chips
|
// Reset chips
|
||||||
@ -154,8 +132,6 @@ void C64::Run(void)
|
|||||||
|
|
||||||
quit_thyself = false;
|
quit_thyself = false;
|
||||||
|
|
||||||
if (floppy8) new StartGameListener();
|
|
||||||
|
|
||||||
thread_func();
|
thread_func();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include "game_info.hh"
|
#include "game_info.hh"
|
||||||
#include "game_info_box.hh"
|
#include "game_info_box.hh"
|
||||||
|
|
||||||
static const char *game_exts[] = {".d64", ".D64", ".t64", ".T64",
|
const char *game_exts[] = {".d64", ".D64", ".t64", ".T64",
|
||||||
".prg",".PRG", ".p00", ".P00", NULL};
|
".prg",".PRG", ".p00", ".P00", NULL};
|
||||||
const char *prg_exts[] = {".prg",".PRG", ".p00", ".P00", NULL};
|
const char *prg_exts[] = {".prg",".PRG", ".p00", ".P00", NULL};
|
||||||
|
|
||||||
|
@ -563,6 +563,75 @@ void Gui::saveGameInfo(const char *base_path, const char *name)
|
|||||||
this->gameInfoChanged = false;
|
this->gameInfoChanged = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern char *floppy8; //Complete path
|
||||||
|
extern const char *game_exts[];
|
||||||
|
extern const char *prg_exts[];
|
||||||
|
extern const char *save_exts[];
|
||||||
|
|
||||||
|
//Class already defined in disck_menu.cpp
|
||||||
|
class StartGameListener2 : public TimeoutHandler
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StartGameListener2()
|
||||||
|
{
|
||||||
|
|
||||||
|
//Gui::gui->status_bar->queueMessage("Resetting the C64");
|
||||||
|
//TheC64->Reset();
|
||||||
|
TimerController::controller->arm(this, 4500);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void timeoutCallback()
|
||||||
|
{
|
||||||
|
if (ext_matches_list(floppy8, game_exts))
|
||||||
|
{
|
||||||
|
char *filename;
|
||||||
|
filename = strrchr(floppy8, '/');
|
||||||
|
if (filename) filename++;
|
||||||
|
|
||||||
|
Gui::gui->dv->loadGameInfo(filename);
|
||||||
|
|
||||||
|
if (Gui::gui->dv->gameInfo->gi)
|
||||||
|
Gui::gui->updateGameInfo(Gui::gui->dv->gameInfo->gi);
|
||||||
|
else
|
||||||
|
Gui::gui->updateGameInfo(new GameInfo(filename));
|
||||||
|
|
||||||
|
Gui::gui->status_bar->queueMessage("Invoking the load sequence");
|
||||||
|
TheC64->startFakeKeySequence("\nLOAD \"*\",8,1\nRUN\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ext_matches_list(floppy8, save_exts))
|
||||||
|
{
|
||||||
|
char *prefs_path;
|
||||||
|
|
||||||
|
prefs_path = (char *)xmalloc(strlen(floppy8) + 8);
|
||||||
|
|
||||||
|
sprintf(prefs_path, "%s.prefs", floppy8);
|
||||||
|
|
||||||
|
TheC64->LoadSnapshot(floppy8);
|
||||||
|
|
||||||
|
char *filename;
|
||||||
|
filename = strrchr(floppy8, '/');
|
||||||
|
if (filename) filename++;
|
||||||
|
char *cpy = xstrdup(filename);
|
||||||
|
char *p = strstr(cpy, ".sav");
|
||||||
|
if (p)
|
||||||
|
*p = '\0';
|
||||||
|
|
||||||
|
Gui::gui->sgv->loadGameInfo(cpy);
|
||||||
|
|
||||||
|
if (Gui::gui->sgv->gameInfo->gi)
|
||||||
|
Gui::gui->updateGameInfo(Gui::gui->sgv->gameInfo->gi);
|
||||||
|
else
|
||||||
|
Gui::gui->updateGameInfo(new GameInfo(cpy));
|
||||||
|
|
||||||
|
free(cpy);
|
||||||
|
ThePrefs.Load(prefs_path);
|
||||||
|
free(prefs_path);
|
||||||
|
}
|
||||||
|
delete this;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/* The singleton/factory stuff */
|
/* The singleton/factory stuff */
|
||||||
Gui *Gui::gui;
|
Gui *Gui::gui;
|
||||||
@ -579,4 +648,6 @@ void Gui::init()
|
|||||||
|
|
||||||
Gui::gui->status_bar->queueMessage("Welcome to C64-network.org, the networked C64!");
|
Gui::gui->status_bar->queueMessage("Welcome to C64-network.org, the networked C64!");
|
||||||
Gui::gui->status_bar->queueMessage("Press Home for the menu!");
|
Gui::gui->status_bar->queueMessage("Press Home for the menu!");
|
||||||
|
if (floppy8) if ((ext_matches_list(floppy8, game_exts))||(ext_matches_list(floppy8, save_exts))) new StartGameListener2();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#include "game_info.hh"
|
#include "game_info.hh"
|
||||||
#include "game_info_box.hh"
|
#include "game_info_box.hh"
|
||||||
|
|
||||||
static const char *save_exts[] = {".sav", ".SAV", NULL};
|
const char *save_exts[] = {".sav", ".SAV", NULL};
|
||||||
|
|
||||||
class SaveGameMenu;
|
class SaveGameMenu;
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ public:
|
|||||||
SDL_Surface *p;
|
SDL_Surface *p;
|
||||||
SDL_Rect dst;
|
SDL_Rect dst;
|
||||||
|
|
||||||
p = TTF_RenderText_Blended(this->font, msg, this->clr);
|
p = TTF_RenderUTF8_Blended(this->font, msg, this->clr);
|
||||||
panic_if(!p, "TTF error for '%s': %s\n", msg, TTF_GetError());
|
panic_if(!p, "TTF error for '%s': %s\n", msg, TTF_GetError());
|
||||||
|
|
||||||
dst = (SDL_Rect){x, y, w, h};
|
dst = (SDL_Rect){x, y, w, h};
|
||||||
|
14
Src/main.cpp
14
Src/main.cpp
@ -237,9 +237,9 @@ extern "C" int main(int argc, char **argv)
|
|||||||
dir_tmp = opendir("/frodo/tmp");
|
dir_tmp = opendir("/frodo/tmp");
|
||||||
if (!dir_tmp) {mkdir("/frodo/tmp",0777);printf("Making tmp directory\n");sleep(2);} else closedir(dir_tmp);
|
if (!dir_tmp) {mkdir("/frodo/tmp",0777);printf("Making tmp directory\n");sleep(2);} else closedir(dir_tmp);
|
||||||
|
|
||||||
//Cancel the old a file
|
//Cancel the old files
|
||||||
unlink ("/frodo/tmp/a");
|
unlink ("/frodo/tmp/a");
|
||||||
|
unlink ("/frodo/tmp/dummy");
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -367,6 +367,7 @@ void Frodo::LoadFrodorc()
|
|||||||
|
|
||||||
|
|
||||||
extern const char *prg_exts[];
|
extern const char *prg_exts[];
|
||||||
|
extern const char *game_exts[];
|
||||||
|
|
||||||
void Frodo::ReadyToRun(void)
|
void Frodo::ReadyToRun(void)
|
||||||
{
|
{
|
||||||
@ -380,14 +381,13 @@ void Frodo::ReadyToRun(void)
|
|||||||
|
|
||||||
//Mount the floppy if passed as argument
|
//Mount the floppy if passed as argument
|
||||||
if (floppy8)
|
if (floppy8)
|
||||||
|
{
|
||||||
|
if (ext_matches_list(floppy8, game_exts))
|
||||||
{
|
{
|
||||||
strncpy(ThePrefs.DrivePath[0], floppy8, sizeof(ThePrefs.DrivePath[0]));
|
strncpy(ThePrefs.DrivePath[0], floppy8, sizeof(ThePrefs.DrivePath[0]));
|
||||||
|
|
||||||
char *filename;
|
if (ext_matches_list(floppy8, prg_exts)) {
|
||||||
filename = strrchr(floppy8, '/');
|
|
||||||
if (!filename) filename++;
|
|
||||||
|
|
||||||
if (ext_matches_list(filename, prg_exts)) {
|
|
||||||
char *tmp_filename;
|
char *tmp_filename;
|
||||||
FILE *src, *dst;
|
FILE *src, *dst;
|
||||||
|
|
||||||
@ -422,7 +422,7 @@ if (floppy8)
|
|||||||
free(tmp_filename);
|
free(tmp_filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
panic_if (!init_graphics(),
|
panic_if (!init_graphics(),
|
||||||
"Can't initialize graphics!\n");
|
"Can't initialize graphics!\n");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user