Exemplo n.º 1
0
Arquivo: main.c Projeto: gsrr/Python
static void setupgame(int i)
{
	allocgame(i & 2);
	initgame();
#if !NO_MENU
	if (!in_menu)
		goto skipmenu;
	while (gamemenu()) {
		in_menu = 0;
		rm_invitfile();
skipmenu:
#endif
		writeconfig();
		do textgfx_entergame();
		while (startgame());
#if !NO_MENU
		clearwin(0);
		in_menu = 1;
		textgfx_entermenu();
		readoptions();
	}
	inputdevs_player[0] = 0;
# ifdef SOCKET
	rmsocket();
	mk_invitfile();
# endif
#endif
	game = NULL;
}
Exemplo n.º 2
0
_Use_decl_annotations_
void readconfig(const char* classname, Config* config)
{
    static size_t nbufsize = 256;
    FILE* configfile;
    char* configfilepath = (char*)Batch_Get(g_batch, nbufsize);
    char* apilogfilepath = (char*)Batch_Get(g_batch, nbufsize);

    config->className = classname;
    
    if (!configfilepath)
    {
        config->configFilepath = "outofmemory";
        return;
    }
    if (!apilogfilepath)
    {
        config->APIlogFilepath = "outofmemory";
        return;
    }

    sprintf(configfilepath, filenameformat, g_dirpath, classname, "config");
    sprintf(apilogfilepath, filenameformat, g_dirpath, config->className, "apilog");
    config->configFilepath = configfilepath;
    config->APIlogFilepath = apilogfilepath;

    configfile = File_Open(configfilepath, "r");
    if (!configfile)
    {
        /* create one */
        config->subscribeBookmark = ".";
        config->providerBookmark = ".";
        config->dialect = ".";
        config->expression = ".";
        config->failAfterCount = MAX_UINT32;
        config->intervalMS = 1000;
        writeconfig(config);
    }
    else
    {
        config->subscribeBookmark = (char*)Batch_GetClear(g_batch, nbufsize);
        config->providerBookmark = (char*)Batch_GetClear(g_batch, nbufsize);
        config->dialect = (char*)Batch_GetClear(g_batch, nbufsize);
        config->expression = (char*)Batch_GetClear(g_batch, nbufsize);
        
        if (!config->subscribeBookmark || !config->providerBookmark  ||
            !config->dialect || !config->expression)
        {
            config->configFilepath = "FAILED";
            File_Close(configfile);
            return;
        }
        /* read config from file */
        fscanf(configfile, gformat1,
            &config->testGroup,
            &config->intervalMS,
            &config->failAfterCount,
            &config->failResult,
            &config->initBehavior,
            &config->initResultCode,
            &config->initTimeoutMS,
            &config->finalizeBehavior,
            &config->finalizeResultCode,
            &config->postBehavior,
            &config->miscTestSubGroup,
            &config->evalResult,
            &config->logLoadUnloadCall);

        fscanf(configfile, "subscribeBookmark=%[^\r\n]", config->subscribeBookmark);
        fscanf(configfile, "\r\n");
        fscanf(configfile, "providerBookmark=%[^\r\n]", config->providerBookmark);
        fscanf(configfile, "\r\n");
        fscanf(configfile, "dialect=%[^\r\n]", config->dialect);
        fscanf(configfile, "\r\n");
        fscanf(configfile, "expression=%[^\r\n]", config->expression);
        File_Close(configfile);
    }
    config->apicallseqcount = readAPIlog(config, config->apicallseq);
    Config_Reopenlogfile(config);
    LOGMSG(("read config file (%s)", config->configFilepath));
}
Exemplo n.º 3
0
Arquivo: devil.c Projeto: j13s/devil
int main(int argn, char *argc[]) {
    int i, j, title = 1;
    long int with_cfg = 1, reconfig = 0;
    char buffer[128];
    char* load_file_name = NULL;


    signal(SIGFPE, my_abort);
    signal(SIGILL, my_abort);
    signal(SIGSEGV, my_abort);
    signal(SIGTERM, my_abort);
    printf("Devil %s%s\nCompiler: %s\nCompiled: %s %s\n", VERSION, LC_VERSION,
           SYS_COMPILER_NAME, __DATE__, __TIME__);

    if (sizeof(float) != 4 || sizeof(long int) != 4 || sizeof(short int) != 2
       || sizeof(int) != 4 || sizeof(char) != 1) {
        printf("Wrong float/int size. Check your compiler flags.\n");
        exit(2);
    }

    errf = stdout;

    for (j = 1; j < argn; j++) {
        sscanf(argc[j], " %s", buffer);

        for (i = 0; i < strlen(buffer); i++) {
            buffer[i] = toupper(buffer[i]);
        }

        if (buffer[0] == '/') {
            for (i = 0; i < num_cmdlineparams; i++) {
                if (strcmp(&buffer[1], cmdline_switches[i]) == 0) {
                    switch (i) {
                        case clp_new:
                            with_cfg = 0;
                            break;

                        case clp_notitle:
                            printf("Devil is sponsored by PC Player!\n");
                            title = 0;
                            break;

                        case clp_config:
                            reconfig = 1;
                            break;
                    }

                    break;
                }
            }

            if (i == num_cmdlineparams) {
                printf(TXT_CMDUNKNOWNPARAM, &buffer[1]);

                for (i = 0; i < num_cmdlineparams; i++) {
                    printf("%s -- %s\n", cmdline_switches[i], cmdline_txts[i]);
                }

                exit(1);
            }
        }
        else {
            load_file_name = argc[j];
        }
    }

    initeditor(INIFILE, title);

    if ( !readconfig() ) {
        writeconfig(0);
    }
    else if (reconfig) {
        writeconfig(1);
    }

    initgrph(title);
    ws_disablectrlc();
    l = NULL;

    if (with_cfg) {
        readstatus(load_file_name);
    }
    else {
        printmsg(TXT_NOCFGFILE);
    }

    /*
       if(strlen(load_file_name))
       {
        for(n=view.levels.head;n->next!=NULL;n=n->next)
           closelevel(n->d.lev,1);
        openlevel(load_file_name);
       }
     */
    w_handleuser(0, NULL, 0, NULL, view.num_keycodes, view.ec_keycodes,
                 do_event);
    return 1;
}