foo
[mdlife] / src / main.c
index 425319d..29fb6d5 100644 (file)
@@ -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++;
        }