gba-trycatch

diff src/main.c @ 5:850be43b3135

sdl version
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 16 Jun 2014 22:01:45 +0300
parents 78d1664c2443
children fb0a0d6a8b52
line diff
     1.1 --- a/src/main.c	Sat Jun 14 03:04:56 2014 +0300
     1.2 +++ b/src/main.c	Mon Jun 16 22:01:45 2014 +0300
     1.3 @@ -1,15 +1,11 @@
     1.4 +#include "config.h"
     1.5  #include <math.h>
     1.6  #include <stdint.h>
     1.7  #include "gbasys.h"
     1.8  #include "logger.h"
     1.9  #include "sincos.h"
    1.10 +#include "game.h"
    1.11  
    1.12 -#define GFX_MODE	VMODE_LFB_160x128_16
    1.13 -#define WIDTH		160
    1.14 -#define HEIGHT		128
    1.15 -
    1.16 -static void draw(void);
    1.17 -static void keyb(int key, int pressed);
    1.18  static void keyb_intr(void);
    1.19  
    1.20  static unsigned short keystate;
    1.21 @@ -37,77 +33,17 @@
    1.22  		while(evhead != evtail) {
    1.23  			unsigned short ev = events[evhead];
    1.24  			evhead = (evhead + 1) % EVQ_SIZE;
    1.25 -			keyb(ev, 1);
    1.26 +			game_keyb(ev, 1);
    1.27  		}
    1.28  
    1.29  		/* this is needed because there's no key release interrupt (!) */
    1.30  		keystate = get_key_state(KEY_ALL);
    1.31  
    1.32 -		draw();
    1.33 +		game_draw();
    1.34  	}
    1.35  	return 0;
    1.36  }
    1.37  
    1.38 -static int offset;
    1.39 -
    1.40 -#define X16INT(x)	((x) << 16)
    1.41 -
    1.42 -static void draw(void)
    1.43 -{
    1.44 -	int i, j;
    1.45 -	unsigned long msec = get_millisec();
    1.46 -	uint16_t *pixels = back_buffer->pixels;
    1.47 -
    1.48 -	clear_buffer(back_buffer, 0);
    1.49 -
    1.50 -	for(i=0; i<WIDTH; i++) {
    1.51 -		float x = M_PI * 4.0 * (float)(i - offset) / (float)WIDTH;/*((M_PI_X16 * ((2 * (i - offset)) << 8)) << 8) / WIDTH;*/
    1.52 -		float y = (HEIGHT / 4.0) * ((float)sin_x16(x * 65536.0) / 65536.0);
    1.53 -
    1.54 -		int iy = HEIGHT - (y + HEIGHT / 2.0);
    1.55 -
    1.56 -		pixels[iy * WIDTH + i] = RGB(255, 0, 0);
    1.57 -
    1.58 -		if(i == offset) {
    1.59 -			for(j=0; j<HEIGHT; j++) {
    1.60 -				pixels[j * WIDTH + i] = RGB(255, 255, 0);
    1.61 -			}
    1.62 -		}
    1.63 -	}
    1.64 -
    1.65 -	flip();
    1.66 -}
    1.67 -
    1.68 -static void keyb(int key, int pressed)
    1.69 -{
    1.70 -	switch(key) {
    1.71 -	case KEY_LEFT:
    1.72 -		--offset;
    1.73 -		break;
    1.74 -
    1.75 -	case KEY_RIGHT:
    1.76 -		++offset;
    1.77 -		break;
    1.78 -
    1.79 -	default:
    1.80 -		break;
    1.81 -	}
    1.82 -	/*static const char *keyname[] = {
    1.83 -		"A", "B", "select", "start", "right", "left", "up", "down", "RT", "LT"
    1.84 -	};
    1.85 -	int i;
    1.86 -	for(i=0; i<32; i++) {
    1.87 -		if(key & 1) {
    1.88 -			break;
    1.89 -		}
    1.90 -		key >>= 1;
    1.91 -	}
    1.92 -	if(i < sizeof keyname / sizeof *keyname) {
    1.93 -		logmsg(LOG_ALL, "key %s %s\n", keyname[i], pressed ? "pressed" : "released");
    1.94 -	}
    1.95 -	*/
    1.96 -}
    1.97 -
    1.98  static void keyb_intr(void)
    1.99  {
   1.100  	int i;