X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmain.c;h=29fb6d5d804ee0367c71e91da8f093c079df8605;hb=dc2165689855c0517d30fb10c1b71464e42d8b6b;hp=425319d03505421886a5d88af4a6e3d0b9a87030;hpb=3ed6f84c7c0a45fc7813d1354a2ed38a750ff630;p=mdlife diff --git a/src/main.c b/src/main.c index 425319d..29fb6d5 100644 --- a/src/main.c +++ b/src/main.c @@ -9,6 +9,10 @@ uint32_t frameno; uint32_t dbgval[4]; +struct part parts[2]; +static struct part *part; + + int main(void) { int i; @@ -20,6 +24,15 @@ int main(void) dbg_init(); dna_init(); + simba_init(); + + parts[0].start = dna_start; + parts[0].update = dna_update; + parts[1].start = simba_start; + parts[1].update = simba_update; + part = parts + 1; + + part->start(); for(;;) { dbg_setcursor(32, 0); @@ -28,7 +41,7 @@ int main(void) } spr_begin(); - dna_update(); + part->update(); vdp_wait_vblank(); spr_submit(); @@ -36,6 +49,13 @@ int main(void) bndiff = bnstate ^ bnprev; bnprev = bnstate; + if(bndiff & bnstate & PAD_START) { + if(++part >= parts + 2) { + part = parts; + } + part->start(); + } + frameno++; }