int mainprog(void) { int16_t frame,t; struct monster_obj *nobbin, *hobbin; struct digger_obj odigger; struct obj_position newpos; loadscores(); escape=false; nobbin = NULL; hobbin = NULL; do { soundstop(); creatembspr(); detectjoy(); ddap->gclear(); ddap->gtitle(); outtext(ddap, "D I G G E R",100,0,3); shownplayers(); showtable(ddap); started=false; frame=0; newframe(); teststart(); while (!started) { started=teststart(); if ((akeypressed==27 || akeypressed=='n' || akeypressed=='N') && !gauntlet && diggers==1) { switchnplayers(); shownplayers(); akeypressed=0; } if (frame==0) for (t=54;t<174;t+=12) outtext(ddap, " ",164,t,0); if (frame==50) { if (nobbin != NULL) { CALL_METHOD(nobbin, dtor); } nobbin = monster_obj_ctor(0, MON_NOBBIN, DIR_LEFT, 292, 63); CALL_METHOD(nobbin, put); } if (frame>50 && frame<=77) { CALL_METHOD(nobbin, getpos, &newpos); newpos.x -= 4; if (frame == 77) { newpos.dir = DIR_RIGHT; } CALL_METHOD(nobbin, setpos, &newpos); } if (frame > 50) { CALL_METHOD(nobbin, animate); } if (frame==83) outtext(ddap, "NOBBIN",216,64,2); if (frame==90) { if (hobbin != NULL) { CALL_METHOD(hobbin, dtor); } hobbin = monster_obj_ctor(1, MON_NOBBIN, DIR_LEFT, 292, 82); CALL_METHOD(hobbin, put); } if (frame>90 && frame<=117) { CALL_METHOD(hobbin, getpos, &newpos); newpos.x -= 4; if (frame == 117) { newpos.dir = DIR_RIGHT; } CALL_METHOD(hobbin, setpos, &newpos); } if (frame == 100) { CALL_METHOD(hobbin, mutate); } if (frame > 90) { CALL_METHOD(hobbin, animate); } if (frame==123) outtext(ddap, "HOBBIN",216,83,2); if (frame==130) { digger_obj_init(&odigger, 0, DIR_LEFT, 292, 101); CALL_METHOD(&odigger, put); } if (frame>130 && frame<=157) { odigger.x -= 4; } if (frame>157) { odigger.dir = DIR_RIGHT; } if (frame >= 130) { CALL_METHOD(&odigger, animate); } if (frame==163) outtext(ddap, "DIGGER",216,102,2); if (frame==178) { movedrawspr(FIRSTBAG,184,120); drawgold(0,0,184,120); } if (frame==183) outtext(ddap, "GOLD",216,121,2); if (frame==198) drawemerald(184,141); if (frame==203) outtext(ddap, "EMERALD",216,140,2); if (frame==218) drawbonus(184,158); if (frame==223) outtext(ddap, "BONUS",216,159,2); if (frame == 235) { CALL_METHOD(nobbin, damage); } if (frame == 239) { CALL_METHOD(nobbin, kill); } if (frame == 242) { CALL_METHOD(hobbin, damage); } if (frame == 246) { CALL_METHOD(hobbin, kill); } newframe(); frame++; if (frame>250) frame=0; } if (savedrf) { if (gotgame) { recsavedrf(); gotgame=false; } savedrf=false; continue; } if (escape) break; recinit(); game(); gotgame=true; if (gotname) { recsavedrf(); gotgame=false; } savedrf=false; escape=false; } while (!escape); finish(); return 0; }
int main(int argc, char *argv[]) { char *fs = NULL, *marg; int temp; cmdname = argv[0]; if (argc == 1) { fprintf(stderr, "Usage: %s [-f programfile | 'program'] [-Ffieldsep] [-v var=value] [files]\n", cmdname); exit(1); } signal(SIGFPE, fpecatch); yyin = NULL; symtab = makesymtab(NSYMTAB); while (argc > 1 && argv[1][0] == '-' && argv[1][1] != '\0') { if (strcmp(argv[1], "--") == 0) { /* explicit end of args */ argc--; argv++; break; } switch (argv[1][1]) { case 's': if (strcmp(argv[1], "-safe") == 0) safe = 1; break; case 'f': /* next argument is program filename */ argc--; argv++; if (argc <= 1) FATAL("no program filename"); pfile[npfile++] = argv[1]; break; case 'F': /* set field separator */ if (argv[1][2] != 0) { /* arg is -Fsomething */ if (argv[1][2] == 't' && argv[1][3] == 0) /* wart: t=>\t */ fs = "\t"; else if (argv[1][2] != 0) fs = &argv[1][2]; } else { /* arg is -F something */ argc--; argv++; if (argc > 1 && argv[1][0] == 't' && argv[1][1] == 0) /* wart: t=>\t */ fs = "\t"; else if (argc > 1 && argv[1][0] != 0) fs = &argv[1][0]; } if (fs == NULL || *fs == '\0') WARNING("field separator FS is empty"); break; case 'v': /* -v a=1 to be done NOW. one -v for each */ if (argv[1][2] == '\0' && --argc > 1 && isclvar((++argv)[1])) setclvar(argv[1]); break; case 'm': /* more memory: -mr=record, -mf=fields */ /* no longer needed */ marg = argv[1]; if (argv[1][3]) temp = atoi(&argv[1][3]); else { argv++; argc--; temp = atoi(&argv[1][0]); } switch (marg[2]) { case 'r': recsize = temp; break; case 'f': nfields = temp; break; default: FATAL("unknown option %s\n", marg); } break; case 'd': dbg = atoi(&argv[1][2]); if (dbg == 0) dbg = 1; printf("awk %s\n", version); break; case 'V': /* added for exptools "standard" */ printf("awk %s\n", version); exit(0); break; default: WARNING("unknown option %s ignored", argv[1]); break; } argc--; argv++; } /* argv[1] is now the first argument */ if (npfile == 0) { /* no -f; first argument is program */ if (argc <= 1) { if (dbg) exit(0); FATAL("no program given"); } dprintf( ("program = |%s|\n", argv[1]) ); lexprog = argv[1]; argc--; argv++; } recinit(recsize); syminit(); compile_time = 1; argv[0] = cmdname; /* put prog name at front of arglist */ dprintf( ("argc=%d, argv[0]=%s\n", argc, argv[0]) ); arginit(argc, argv); if (!safe) envinit(environ); yyparse(); if (fs) *FS = qstring(fs, '\0'); dprintf( ("errorflag=%d\n", errorflag) ); if (errorflag == 0) { compile_time = 0; run(winner); } else bracecheck(); return(errorflag); }
int main(int argc, char *argv[]) { const char *fs = NULL; setlocale(LC_CTYPE, ""); setlocale(LC_NUMERIC, "C"); /* for parsing cmdline & prog */ cmdname = argv[0]; if (argc == 1) { fprintf(stderr, "usage: %s [-F fs] [-v var=value] [-f progfile | 'prog'] [file ...]\n", cmdname); exit(1); } signal(SIGFPE, fpecatch); yyin = NULL; symtab = makesymtab(NSYMTAB/NSYMTAB); while (argc > 1 && argv[1][0] == '-' && argv[1][1] != '\0') { if (strcmp(argv[1],"-version") == 0 || strcmp(argv[1],"--version") == 0) { printf("awk %s\n", version); exit(0); break; } if (strncmp(argv[1], "--", 2) == 0) { /* explicit end of args */ argc--; argv++; break; } switch (argv[1][1]) { case 's': if (strcmp(argv[1], "-safe") == 0) safe = 1; break; case 'f': /* next argument is program filename */ argc--; argv++; if (argc <= 1) FATAL("no program filename"); if (npfile >= MAX_PFILE - 1) FATAL("too many -f options"); pfile[npfile++] = argv[1]; break; case 'F': /* set field separator */ if (argv[1][2] != 0) { /* arg is -Fsomething */ if (argv[1][2] == 't' && argv[1][3] == 0) /* wart: t=>\t */ fs = "\t"; else if (argv[1][2] != 0) fs = &argv[1][2]; } else { /* arg is -F something */ argc--; argv++; if (argc > 1 && argv[1][0] == 't' && argv[1][1] == 0) /* wart: t=>\t */ fs = "\t"; else if (argc > 1 && argv[1][0] != 0) fs = &argv[1][0]; } if (fs == NULL || *fs == '\0') WARNING("field separator FS is empty"); break; case 'v': /* -v a=1 to be done NOW. one -v for each */ if (argv[1][2] == '\0' && --argc > 1 && isclvar((++argv)[1])) setclvar(argv[1]); break; case 'd': dbg = atoi(&argv[1][2]); if (dbg == 0) dbg = 1; printf("awk %s\n", version); break; default: WARNING("unknown option %s ignored", argv[1]); break; } argc--; argv++; } /* argv[1] is now the first argument */ if (npfile == 0) { /* no -f; first argument is program */ if (argc <= 1) { if (dbg) exit(0); FATAL("no program given"); } dprintf( ("program = |%s|\n", argv[1]) ); lexprog = argv[1]; argc--; argv++; } recinit(recsize); syminit(); compile_time = 1; argv[0] = cmdname; /* put prog name at front of arglist */ dprintf( ("argc=%d, argv[0]=%s\n", argc, argv[0]) ); arginit(argc, argv); if (!safe) envinit(environ); yyparse(); setlocale(LC_NUMERIC, ""); /* back to whatever it is locally */ if (fs) *FS = qstring(fs, '\0'); dprintf( ("errorflag=%d\n", errorflag) ); if (errorflag == 0) { compile_time = 0; run(winner); } else bracecheck(); return(errorflag); }
int mainprog(void) { Sint4 frame,t,x; loadscores(); escape=false; do { soundstop(); creatembspr(); detectjoy(); gclear(); gtitle(); outtext("D I G G E R",100,0,3); shownplayers(); showtable(); started=false; frame=0; newframe(); teststart(); while (!started) { started=teststart(); if ((akeypressed==27 || akeypressed=='n' || akeypressed=='N') && !gauntlet && diggers==1) { switchnplayers(); shownplayers(); akeypressed=0; } if (frame==0) for (t=54;t<174;t+=12) outtext(" ",164,t,0); if (frame==50) { movedrawspr(FIRSTMONSTER,292,63); x=292; } if (frame>50 && frame<=77) { x-=4; drawmon(0,1,DIR_LEFT,x,63); } if (frame>77) drawmon(0,1,DIR_RIGHT,184,63); if (frame==83) outtext("NOBBIN",216,64,2); if (frame==90) { movedrawspr(FIRSTMONSTER+1,292,82); drawmon(1,0,DIR_LEFT,292,82); x=292; } if (frame>90 && frame<=117) { x-=4; drawmon(1,0,DIR_LEFT,x,82); } if (frame>117) drawmon(1,0,DIR_RIGHT,184,82); if (frame==123) outtext("HOBBIN",216,83,2); if (frame==130) { movedrawspr(FIRSTDIGGER,292,101); drawdigger(0,DIR_LEFT,292,101,1); x=292; } if (frame>130 && frame<=157) { x-=4; drawdigger(0,DIR_LEFT,x,101,1); } if (frame>157) drawdigger(0,DIR_RIGHT,184,101,1); if (frame==163) outtext("DIGGER",216,102,2); if (frame==178) { movedrawspr(FIRSTBAG,184,120); drawgold(0,0,184,120); } if (frame==183) outtext("GOLD",216,121,2); if (frame==198) drawemerald(184,141); if (frame==203) outtext("EMERALD",216,140,2); if (frame==218) drawbonus(184,158); if (frame==223) outtext("BONUS",216,159,2); newframe(); frame++; if (frame>250) frame=0; } if (savedrf) { if (gotgame) { recsavedrf(); gotgame=false; } savedrf=false; continue; } if (escape) break; recinit(); game(); gotgame=true; if (gotname) { recsavedrf(); gotgame=false; } savedrf=false; escape=false; } while (!escape); finish(); return 0; }