[Scummvm-cvs-logs] CVS: scummvm main.cpp,NONE,1.1
Ludvig Strigeus
strigeus at users.sourceforge.net
Fri Apr 12 14:28:01 CEST 2002
Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv4503
Added Files:
main.cpp
Log Message:
new video engine (expect broken non-sdl builds),
simon the sorcerer 1 & 2 support (non SCUMM games)
--- NEW FILE: main.cpp ---
#include "stdafx.h"
#include "scumm.h"
#include "gameDetector.h"
#include "gui.h"
#include "simon/simon.h"
GameDetector detector;
Gui gui;
Scumm *g_scumm;
SoundEngine sound;
SOUND_DRIVER_TYPE snd_driv;
#if !defined(__APPLE__)
#undef main
#endif
int main(int argc, char *argv[])
{
#if defined(MACOS)
/* support for config file on macos */
char *argitem;
char *argstr;
FILE *argf;
if ((argf = fopen("configuration.macos", "r")) == NULL) {
error("Can't open configuration file.\n");
exit(1);
}
argc = 0;
argstr = (char *)malloc(64);
argstr = fgets(argstr, 64, argf);
if ((argitem = strchr(argstr, '\n')) != NULL)
*argitem = '\0';
argitem = strtok(argstr, " ");
while (argitem != NULL) {
argv = (char **)realloc(argv, (argc + 1) * 8);
argv[argc] = (char *)malloc(64);
strcpy(argv[argc], argitem);
argc++;
argitem = strtok(NULL, " ");
}
free(argstr);
fclose(argf);
#endif
if (detector.detectMain(argc, argv))
return (-1);
OSystem *system = OSystem_SDL_create(detector._gfx_mode, false);
{
char *s = detector.getGameName();
system->set_param(OSystem::PARAM_WINDOW_CAPTION, (long)s);
free(s);
}
/* Simon the Sorcerer? */
if (detector._gameId >= GID_SIMON_FIRST && detector._gameId <= GID_SIMON_LAST) {
/* Simon the Sorcerer. Completely different initialization */
SimonState *simon = SimonState::create();
simon->_game = detector._gameId - GID_SIMON_FIRST;
simon->go(system);
} else {
Scumm *scumm = Scumm::createFromDetector(&detector, system);
g_scumm = scumm;
sound.initialize(scumm, &snd_driv);
/* bind to Gui */
scumm->_gui = &gui;
gui.init(scumm); /* Reinit GUI after loading a game */
scumm->go();
}
return 0;
}
More information about the Scummvm-git-logs
mailing list