mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-01-20 05:30:12 +00:00
Minor refactoring.
This commit is contained in:
parent
33d1b90974
commit
7c74fd93d0
@ -36,13 +36,13 @@ byte current_piece_color = 0;
|
|||||||
byte current_xpos = 3;
|
byte current_xpos = 3;
|
||||||
byte current_ypos = 0;
|
byte current_ypos = 0;
|
||||||
|
|
||||||
// The rate of moving down the current piece (number of frames between moves if movedown is not not forced)
|
// The rate of moving down the current piece (number of frames between moves if movedown is not forced)
|
||||||
const byte current_movedown_slow = 50;
|
const byte current_movedown_slow = 50;
|
||||||
|
|
||||||
// The rate of moving down the current piece fast (number of frames between moves if movedown is not not forced)
|
// The rate of moving down the current piece fast (number of frames between moves if movedown is not forced)
|
||||||
const byte current_movedown_fast = 5;
|
const byte current_movedown_fast = 5;
|
||||||
|
|
||||||
// Counts down til next movedown of current piece
|
// Counts up to the next movedown of current piece
|
||||||
byte current_movedown_counter = 0;
|
byte current_movedown_counter = 0;
|
||||||
|
|
||||||
// The screen
|
// The screen
|
||||||
@ -54,7 +54,8 @@ byte*[PLAYFIELD_LINES+3] screen_lines;
|
|||||||
void main() {
|
void main() {
|
||||||
sid_rnd_init();
|
sid_rnd_init();
|
||||||
asm { sei }
|
asm { sei }
|
||||||
init();
|
render_init();
|
||||||
|
tables_init();
|
||||||
spawn_current();
|
spawn_current();
|
||||||
render_playfield();
|
render_playfield();
|
||||||
render_current();
|
render_current();
|
||||||
@ -71,10 +72,8 @@ void main() {
|
|||||||
render += play_move_leftright(key_event);
|
render += play_move_leftright(key_event);
|
||||||
render += play_move_rotate(key_event);
|
render += play_move_rotate(key_event);
|
||||||
if(render!=0) {
|
if(render!=0) {
|
||||||
(*BORDERCOL)++;
|
|
||||||
render_playfield();
|
render_playfield();
|
||||||
render_current();
|
render_current();
|
||||||
(*BORDERCOL)--;
|
|
||||||
}
|
}
|
||||||
(*BORDERCOL)--;
|
(*BORDERCOL)--;
|
||||||
}
|
}
|
||||||
@ -149,7 +148,7 @@ byte play_move_rotate(byte key_event) {
|
|||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if(collision(current_xpos, current_ypos, orientation) == 0) {
|
if(collision(current_xpos, current_ypos, orientation) == COLLISION_NONE) {
|
||||||
current_orientation = orientation;
|
current_orientation = orientation;
|
||||||
current_piece_gfx = current_piece + current_orientation;
|
current_piece_gfx = current_piece + current_orientation;
|
||||||
return 1;
|
return 1;
|
||||||
@ -223,12 +222,10 @@ void lock_current() {
|
|||||||
// Spawn a new piece
|
// Spawn a new piece
|
||||||
void spawn_current() {
|
void spawn_current() {
|
||||||
// Pick a random piece
|
// Pick a random piece
|
||||||
(*BORDERCOL)++;
|
|
||||||
byte piece_idx = 7;
|
byte piece_idx = 7;
|
||||||
while(piece_idx==7) {
|
while(piece_idx==7) {
|
||||||
piece_idx = sid_rnd()&7;
|
piece_idx = sid_rnd()&7;
|
||||||
}
|
}
|
||||||
(*BORDERCOL)--;
|
|
||||||
current_piece = PIECES[piece_idx<<1];
|
current_piece = PIECES[piece_idx<<1];
|
||||||
current_orientation = 0;
|
current_orientation = 0;
|
||||||
current_piece_gfx = current_piece + current_orientation;
|
current_piece_gfx = current_piece + current_orientation;
|
||||||
@ -279,17 +276,8 @@ void remove_line(byte ypos) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize the screen and data tables
|
// Initialize data tables
|
||||||
void init() {
|
void tables_init() {
|
||||||
// Clear the screen
|
|
||||||
fill(SCREEN,1000,$a0);
|
|
||||||
fill(COLS,1000,BLACK);
|
|
||||||
// Initialize the screen line pointers;
|
|
||||||
byte* li = COLS + 40 + 15;
|
|
||||||
for(byte i:0..PLAYFIELD_LINES+2) {
|
|
||||||
screen_lines[i<<1] = li;
|
|
||||||
li += 40;
|
|
||||||
}
|
|
||||||
// Initialize the playfield line pointers;
|
// Initialize the playfield line pointers;
|
||||||
byte idx = 0;
|
byte idx = 0;
|
||||||
byte* pli = playfield;
|
byte* pli = playfield;
|
||||||
@ -300,6 +288,20 @@ void init() {
|
|||||||
idx += PLAYFIELD_COLS;
|
idx += PLAYFIELD_COLS;
|
||||||
}
|
}
|
||||||
playfield_lines_idx[PLAYFIELD_LINES] = PLAYFIELD_COLS*PLAYFIELD_LINES;
|
playfield_lines_idx[PLAYFIELD_LINES] = PLAYFIELD_COLS*PLAYFIELD_LINES;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize rendering
|
||||||
|
void render_init() {
|
||||||
|
// Clear the screen
|
||||||
|
fill(SCREEN,1000,$a0);
|
||||||
|
fill(COLS,1000,BLACK);
|
||||||
|
// Initialize the screen line pointers;
|
||||||
|
byte* li = COLS + 40 + 15;
|
||||||
|
for(byte i:0..PLAYFIELD_LINES+2) {
|
||||||
|
screen_lines[i<<1] = li;
|
||||||
|
li += 40;
|
||||||
|
}
|
||||||
// Prepare the playfield frame
|
// Prepare the playfield frame
|
||||||
byte* line = COLS + 14;
|
byte* line = COLS + 14;
|
||||||
for(byte l:0..PLAYFIELD_LINES+1) {
|
for(byte l:0..PLAYFIELD_LINES+1) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user