borgware-2d/display_loop.c

196 lines
2.6 KiB
C
Raw Normal View History

2008-12-04 03:34:55 +00:00
#include <setjmp.h>
#include <stdio.h>
2008-12-04 03:34:55 +00:00
#include "config.h"
#include "scrolltext/scrolltext.h"
#include "animations/programm.h"
#include "animations/matrix.h"
#include "animations/gameoflife.h"
2009-12-27 02:11:58 +00:00
#include "animations/stonefly.h"
2009-12-27 00:51:07 +00:00
#include "animations/flyingdots.h"
2010-04-09 20:41:23 +00:00
#include "animations/breakout_demo.h"
2008-12-04 03:34:55 +00:00
#include "borg_hw/borg_hw.h"
#include "can/borg_can.h"
#include "random/prng.h"
#include "random/persistentCounter.h"
#include "mcuf/mcuf.h"
#include "menu/menu.h"
#include "pixel.h"
#include "joystick/joystick.h"
2008-12-04 03:34:55 +00:00
volatile unsigned char oldMode, oldOldmode, mode;
jmp_buf newmode_jmpbuf;
#ifndef MENU_SUPPORT
void snake_game(void);
void tetris(void);
void tetris_bastet(void);
void borg_invaders(void);
#endif
2008-12-04 03:34:55 +00:00
void display_loop(){
// mcuf_serial_mode();
2009-08-01 22:58:01 +00:00
mode = setjmp(newmode_jmpbuf);
2008-12-04 03:34:55 +00:00
oldOldmode = oldMode;
2009-02-19 00:54:57 +00:00
2009-08-01 22:58:01 +00:00
#ifdef JOYSTICK_SUPPORT
2008-12-04 03:34:55 +00:00
waitForFire = 1;
2009-01-01 17:06:38 +00:00
#endif
2008-12-04 03:34:55 +00:00
for(;;){
oldMode = mode;
switch(mode++) {
#ifdef ANIMATION_SCROLLTEXT
case 1:
scrolltext(scrolltext_text);
2009-08-01 22:58:01 +00:00
#ifdef RANDOM_SUPPORT
2009-08-01 22:58:01 +00:00
{ char a[28];
sprintf(a,"</# counter == %lu ", percnt_get());
scrolltext(a);
}
#endif
2008-12-04 03:34:55 +00:00
break;
#endif
#ifdef ANIMATION_SPIRALE
case 2:
spirale(5);
break;
#endif
#ifdef ANIMATION_JOERN1
case 3:
joern1();
break;
#endif
#ifdef ANIMATION_SNAKE
case 4:
snake();
break;
#endif
#ifdef ANIMATION_SCHACHBRETT
case 5:
2009-02-25 23:49:59 +00:00
schachbrett(10);
2008-12-04 03:34:55 +00:00
break;
2009-08-01 22:58:01 +00:00
#endif
2008-12-04 03:34:55 +00:00
#ifdef ANIMATION_FEUER
case 6:
feuer();
break;
#endif
#ifdef ANIMATION_MATRIX
case 7:
matrix();
break;
#endif
#ifdef ANIMATION_RANDOM_BRIGHT
case 8:
2009-02-25 23:49:59 +00:00
random_bright(30);
2008-12-04 03:34:55 +00:00
break;
#endif
2009-12-27 02:11:58 +00:00
#ifdef ANIMATION_STONEFLY
case 9:
stonefly();
break;
#endif
2009-12-27 00:51:07 +00:00
#ifdef ANIMATION_GAMEOFLIFE
case 10:
2008-12-04 03:34:55 +00:00
gameoflife();
break;
#endif
2009-12-27 00:51:07 +00:00
#ifdef ANIMATION_FLYINGDOTS
2009-12-27 02:17:36 +00:00
case 11:
2009-12-27 00:51:07 +00:00
flyingdots();
break;
#endif
2010-04-09 20:41:23 +00:00
#ifdef ANIMATION_BREAKOUT
2009-12-27 02:17:36 +00:00
case 12:
2010-04-09 20:41:23 +00:00
breakout_demo();
break;
#endif
#ifdef ANIMATION_MHERWEG
case 13:
2009-12-26 23:26:06 +00:00
lines1();
dots1();
movinglines();
checkbox();
2009-02-25 23:49:59 +00:00
rectangle1();
2009-12-26 23:26:06 +00:00
rectangles();
2009-02-25 23:49:59 +00:00
break;
2009-06-19 21:09:08 +00:00
#endif
2008-12-04 03:34:55 +00:00
#ifdef ANIMATION_TESTS
case 31:
2009-12-26 23:26:06 +00:00
test_level1();
2009-08-01 22:58:01 +00:00
2008-12-04 03:34:55 +00:00
break;
case 32:
2009-12-26 23:26:06 +00:00
test_level2();
2009-08-01 22:58:01 +00:00
2008-12-04 03:34:55 +00:00
break;
case 33:
2009-12-26 23:26:06 +00:00
test_level3();
2009-02-18 22:26:46 +00:00
2008-12-04 03:34:55 +00:00
break;
case 35:
2009-02-18 22:26:46 +00:00
test_palette();
2009-12-26 23:26:06 +00:00
test_palette2();
2009-08-01 22:58:01 +00:00
2008-12-04 03:34:55 +00:00
break;
#endif
2009-12-27 02:11:58 +00:00
case 42:
mode = 1;
break;
2008-12-04 03:34:55 +00:00
#ifdef MENU_SUPPORT
case 43:
menu();
mode = oldOldmode;
#else
#ifdef GAME_TETRIS
case 43:
tetris();
break;
#endif
#ifdef GAME_BASTET
case 44:
tetris_bastet();
break;
#endif
#ifdef GAME_SPACE_INVADERS
case 45:
borg_invaders();
break;
#endif
#ifdef GAME_SNAKE
case 46:
snake_game();
break;
#endif
2008-12-04 03:34:55 +00:00
#endif
2009-12-26 23:26:06 +00:00
#ifdef ANIMATION_OFF
case 0xFF:
off();
break;
#endif
2008-12-04 03:34:55 +00:00
}
}
}