mirror of
https://github.com/isometimes/rpi4-osdev
synced 2024-11-09 20:00:40 +00:00
65 lines
1.3 KiB
C
65 lines
1.3 KiB
C
// Heap memory allocation
|
|
#define HEAP_ADDRESS 0x00400000 // Somewhere safe to store a lot of data
|
|
|
|
// The screen
|
|
#define WIDTH 1920
|
|
#define HEIGHT 1080
|
|
#define MARGIN 30
|
|
#define VIRTWIDTH (WIDTH-(2*MARGIN))
|
|
#define FONT_BPG 8
|
|
|
|
// For the bricks
|
|
#define ROWS 5
|
|
#define COLS 10
|
|
|
|
// Gameplay
|
|
#define NUM_LIVES 3
|
|
|
|
extern const int ballradius;
|
|
extern const int paddlewidth;
|
|
|
|
// Object tracking
|
|
|
|
struct Object
|
|
{
|
|
unsigned int type;
|
|
|
|
unsigned int x;
|
|
unsigned int y;
|
|
unsigned int width;
|
|
unsigned int height;
|
|
unsigned char color;
|
|
|
|
unsigned char alive;
|
|
unsigned char redraw;
|
|
|
|
unsigned int newx;
|
|
unsigned int newy;
|
|
unsigned char move;
|
|
};
|
|
|
|
enum {
|
|
OBJ_NONE = 0,
|
|
OBJ_BRICK = 1,
|
|
OBJ_PADDLE = 2,
|
|
OBJ_BALL = 3,
|
|
OBJ_SCOREBOARD = 4,
|
|
OBJ_ENDGAME = 5
|
|
};
|
|
|
|
extern volatile unsigned int numobjs;
|
|
extern volatile struct Object *objects;
|
|
extern volatile struct Object *ball;
|
|
extern volatile struct Object *paddle;
|
|
extern volatile struct Object *scoreboard;
|
|
extern volatile struct Object *endgame;
|
|
|
|
extern volatile unsigned int comms_up;
|
|
extern volatile unsigned char dir;
|
|
|
|
// Shared functions
|
|
|
|
void gfx_core(void);
|
|
void snd_core(void);
|
|
void comms_core(void);
|
|
void moveObject(volatile struct Object *object, int x, int y);
|