Mercurial > hg > Members > koba > t_dandy
view trace.c @ 42:59b070dd0553
add demo file.
author | koba <koba@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 12 Jan 2011 00:18:16 +0900 |
parents | cbe5bb9068c3 |
children | 56ef94618a0e |
line wrap: on
line source
#include <stdio.h> #include "trace.h" #include "object.h" #include "sgoex.h" #define PAD_BUFSIZ 32 #define RESET_BUTTON 768 FILE *pad_fp; int runmode; static char pad_buf[PAD_BUFSIZ]; void pad_trace(unsigned int pad) { fprintf(pad_fp, "%d\n", pad); } void pad_file_open(char *f) { pad_fp = fopen(f, "r+"); if (!pad_fp) { // 本当はerrnoをチェックするのがいいんだろうなぁ pad_fp = fopen(f, "w+"); if (!pad_fp) { printf("can't open output file.\n"); runmode = 0; } // goto dbg_abort(4); } } void capture_pad() { fprintf(pad_fp, "%hd ", pad[0].up); fprintf(pad_fp, "%hd ", pad[0].down); fprintf(pad_fp, "%hd ", pad[0].right); fprintf(pad_fp, "%hd ", pad[0].left); fprintf(pad_fp, "%hd ", pad[0].k0); fprintf(pad_fp, "%hd ", pad[0].k1); fprintf(pad_fp, "%hd ", pad[0].k3); fprintf(pad_fp, "%hd ", pad[0].k4); fprintf(pad_fp, "%hd ", pad[0].r1); fprintf(pad_fp, "%hd ", pad[0].r2); fprintf(pad_fp, "%hd ", pad[0].l1); fprintf(pad_fp, "%hd ", pad[0].st); fprintf(pad_fp, "%hd ", pad[0].se); fprintf(pad_fp, "\n"); } int pad_file_read() { if (fgets(pad_buf, PAD_BUFSIZ, pad_fp)) { sscanf(pad_buf, "%hd %hd %hd %hd %hd %hd %hd %hd %hd %hd %hd %hd %hd ", &pad[0].up, &pad[0].down, &pad[0].right, &pad[0].left, &pad[0].k0, &pad[0].k1, &pad[0].k3, &pad[0].k4, &pad[0].r1, &pad[0].r2, &pad[0].l1, &pad[0].st, &pad[0].se); return 1; } return 0; } void pad_file_close() { if ((runmode ==1)||(runmode == 2)) { fclose(pad_fp); } } #ifdef USE_MYRAND static FILE *myrand_fp; extern int runmode; int myrand_open_file(char *filename) { myrand_fp = fopen(filename, "r+"); if (!myrand_fp) { myrand_fp = fopen(filename, "w+"); if (myrand_fp) { return 0; } else { return 1; } } return 0; } static char buf[16]; int myrand() { int r = 0; if (runmode) { if (runmode == 1) { r = rand(); fprintf(myrand_fp, "%d\n", r); } else if (runmode == 2) { // dbg_printf("check0\n"); if (fgets(buf, 16, myrand_fp)) { sscanf(buf, "%d", &r); } else { fseek(myrand_fp, 0, SEEK_SET); } } } else { r = rand(); } return r; } #endif // USE_MYRAND