mirror of
https://codeberg.org/hkzlab/TK2048.git
synced 2025-12-26 04:52:16 +11:00
Add tiles
This commit is contained in:
parent
8fb45612a8
commit
4c6f4932e5
17 changed files with 60 additions and 8 deletions
|
|
@ -7,11 +7,12 @@
|
|||
#include "mem_registers.h"
|
||||
#include "line_data.h"
|
||||
#include "game_logic.h"
|
||||
#include "tiles.h"
|
||||
|
||||
#define SCREEN_WIDTH_B 40
|
||||
#define TILE_SIDE 35
|
||||
|
||||
#define TOP_OFFSET 14 // Top is offset by 14 lines
|
||||
#define TOP_OFFSET 7
|
||||
#define LEFT_OFFSET_B 1 // Left is offset by 1 bytes (7 pixels)
|
||||
|
||||
static uint8_t *front_buf = (uint8_t*)DISPLAY_PAGE_1;
|
||||
|
|
@ -28,15 +29,15 @@ void draw_game_background(void) {
|
|||
uint8_t* buf = (uint8_t*)DISPLAY_PAGE_1;
|
||||
|
||||
// Horizontal borders
|
||||
for(uint8_t col = 0; col < GRID_SIDE * (TILE_SIDE/7); col++) {
|
||||
for(uint8_t col = 0; col < (GRID_SIDE * (TILE_SIDE/7)) + 1; col++) {
|
||||
buf[line_offset_map[TOP_OFFSET - 1] + col + LEFT_OFFSET_B] = 0x7F;
|
||||
buf[line_offset_map[TOP_OFFSET + (TILE_SIDE * GRID_SIDE) + 1] + col + LEFT_OFFSET_B] = 0x7F;
|
||||
buf[line_offset_map[TOP_OFFSET + (TILE_SIDE * GRID_SIDE) + 7] + col + LEFT_OFFSET_B] = 0x7F;
|
||||
}
|
||||
|
||||
// Vertical borders
|
||||
for(uint8_t row = 0; row < (TILE_SIDE * GRID_SIDE) + 1; row++) {
|
||||
for(uint8_t row = 0; row < (TILE_SIDE * GRID_SIDE) + 7; row++) {
|
||||
buf[line_offset_map[row + TOP_OFFSET] + LEFT_OFFSET_B - 1] = 0x40;
|
||||
buf[line_offset_map[row + TOP_OFFSET] + LEFT_OFFSET_B + (GRID_SIDE * (TILE_SIDE/7))] = 0x01;
|
||||
buf[line_offset_map[row + TOP_OFFSET] + LEFT_OFFSET_B + (GRID_SIDE * (TILE_SIDE/7)) + 1] = 0x01;
|
||||
}
|
||||
|
||||
// Copy the data from display page 1 to 2
|
||||
|
|
@ -48,15 +49,19 @@ void draw_tiles(void) {
|
|||
uint8_t* grid = get_front_grid();
|
||||
|
||||
// Clear the grid so we'll be able to draw the boxes on
|
||||
clear_box(GRID_SIDE * (TILE_SIDE/7), GRID_SIDE * TILE_SIDE, LEFT_OFFSET_B, TOP_OFFSET + 1, back_buf);
|
||||
clear_box(GRID_SIDE * (TILE_SIDE/7) + 1, (GRID_SIDE * TILE_SIDE) + 6, LEFT_OFFSET_B, TOP_OFFSET + 1, back_buf);
|
||||
|
||||
|
||||
for (uint8_t tile = 0; tile < GRID_SIDE * GRID_SIDE; tile++) {
|
||||
if(grid[tile]) {
|
||||
const uint8_t *tile_data = tiles + (TILE_WIDTH_BYTES * TILE_HEIGHT * (grid[tile] - 1));
|
||||
uint8_t col = tile % GRID_SIDE;
|
||||
uint8_t row = tile / GRID_SIDE;
|
||||
|
||||
back_buf[line_offset_map[TOP_OFFSET + 15 + row * TILE_SIDE] + LEFT_OFFSET_B + 2 + (col * 5)] = grid[tile];
|
||||
for(uint8_t h = 0; h < TILE_HEIGHT; h++) {
|
||||
memcpy(back_buf + line_offset_map[TOP_OFFSET + 7 + (row * TILE_SIDE) + h] + LEFT_OFFSET_B + 1 + (col * TILE_SIDE/7),
|
||||
tile_data + (TILE_WIDTH_BYTES * h), TILE_WIDTH_BYTES);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
35
src/tiles.c
Normal file
35
src/tiles.c
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#include <stdint.h>
|
||||
|
||||
const uint8_t tiles[] = {
|
||||
0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40, 0x05, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x7F, 0x0F, 0x40, 0x01, 0x7F, 0x3F, 0x40, 0x01, 0x7F, 0x3F, 0x40, 0x01, 0x7F, 0x7F, 0x40,
|
||||
0x01, 0x00, 0x78, 0x40, 0x01, 0x00, 0x78, 0x40, 0x01, 0x70, 0x7F, 0x40, 0x01, 0x7C, 0x3F, 0x40, 0x01, 0x7E, 0x3F, 0x40, 0x01, 0x7F, 0x0F, 0x40, 0x01, 0x0F, 0x00, 0x40, 0x01, 0x0F, 0x00, 0x40, 0x01, 0x7F, 0x7F, 0x40, 0x01, 0x7E, 0x7F, 0x40,
|
||||
0x01, 0x7E, 0x7F, 0x40, 0x01, 0x78, 0x7F, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x05, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40,
|
||||
0x05, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40, 0x05, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x40, 0x03, 0x40, 0x01, 0x70, 0x07, 0x40, 0x01, 0x78, 0x0F, 0x40, 0x01, 0x78, 0x0F, 0x40, 0x01, 0x7C, 0x0F, 0x40, 0x01, 0x3E, 0x0F, 0x40,
|
||||
0x01, 0x7F, 0x3F, 0x40, 0x01, 0x7F, 0x3F, 0x40, 0x01, 0x7F, 0x3F, 0x40, 0x01, 0x7F, 0x3F, 0x40, 0x01, 0x00, 0x0F, 0x40, 0x01, 0x00, 0x0F, 0x40, 0x01, 0x00, 0x0F, 0x40, 0x01, 0x00, 0x0F, 0x40, 0x01, 0x00, 0x0F, 0x40, 0x01, 0x00, 0x0F, 0x40,
|
||||
0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40,
|
||||
0x05, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x40, 0x01, 0x78, 0x0F, 0x40, 0x01, 0x7C, 0x1F, 0x40, 0x01, 0x7E, 0x3F, 0x40, 0x01, 0x7F, 0x7F, 0x40, 0x01, 0x0F, 0x70, 0x40, 0x01, 0x0F, 0x70, 0x40, 0x01, 0x7E, 0x7F, 0x40, 0x01, 0x7E, 0x3F, 0x40,
|
||||
0x01, 0x7E, 0x3F, 0x40, 0x01, 0x7F, 0x7F, 0x40, 0x01, 0x0F, 0x78, 0x40, 0x01, 0x0F, 0x78, 0x40, 0x01, 0x7F, 0x7F, 0x40, 0x01, 0x7E, 0x3F, 0x40, 0x01, 0x7E, 0x3F, 0x40, 0x01, 0x78, 0x0F, 0x40, 0x01, 0x00, 0x00, 0x40, 0x05, 0x00, 0x00, 0x50,
|
||||
0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40,
|
||||
0x79, 0x00, 0x7F, 0x4F, 0x79, 0x63, 0x7F, 0x4F, 0x79, 0x67, 0x7F, 0x4F, 0x79, 0x77, 0x7F, 0x4F, 0x01, 0x77, 0x01, 0x40, 0x01, 0x77, 0x01, 0x40, 0x01, 0x77, 0x7F, 0x40, 0x01, 0x77, 0x7F, 0x43, 0x01, 0x77, 0x7F, 0x47, 0x01, 0x77, 0x7F, 0x4F,
|
||||
0x01, 0x77, 0x01, 0x4F, 0x01, 0x77, 0x01, 0x4F, 0x01, 0x77, 0x7F, 0x4F, 0x01, 0x67, 0x7F, 0x47, 0x01, 0x67, 0x7F, 0x47, 0x01, 0x07, 0x7F, 0x41, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54,
|
||||
0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40, 0x55, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40,
|
||||
0x7D, 0x0F, 0x7E, 0x47, 0x7D, 0x1F, 0x7E, 0x4F, 0x7D, 0x3F, 0x7E, 0x5F, 0x01, 0x38, 0x00, 0x5C, 0x01, 0x38, 0x70, 0x5F, 0x79, 0x1F, 0x7C, 0x4F, 0x79, 0x1F, 0x7E, 0x47, 0x79, 0x3F, 0x0E, 0x40, 0x01, 0x38, 0x0E, 0x40, 0x7D, 0x3F, 0x7E, 0x5F,
|
||||
0x7D, 0x1F, 0x7C, 0x5F, 0x7D, 0x0F, 0x78, 0x5F, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40, 0x55, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F,
|
||||
0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40, 0x55, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x61, 0x7F, 0x60, 0x41, 0x71, 0x7F, 0x70, 0x43,
|
||||
0x79, 0x7F, 0x78, 0x43, 0x39, 0x00, 0x5C, 0x43, 0x39, 0x00, 0x7E, 0x4F, 0x39, 0x1F, 0x7E, 0x4F, 0x39, 0x3F, 0x7E, 0x4F, 0x39, 0x7F, 0x40, 0x43, 0x39, 0x70, 0x40, 0x43, 0x79, 0x7F, 0x40, 0x43, 0x71, 0x3F, 0x40, 0x43, 0x61, 0x1F, 0x40, 0x43,
|
||||
0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x40, 0x55, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40,
|
||||
0x55, 0x02, 0x20, 0x55, 0x01, 0x00, 0x00, 0x40, 0x55, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x39, 0x7E, 0x71, 0x47, 0x79, 0x7E, 0x7B, 0x4F,
|
||||
0x61, 0x00, 0x1B, 0x4C, 0x61, 0x7C, 0x1B, 0x4C, 0x61, 0x7E, 0x71, 0x47, 0x61, 0x06, 0x78, 0x4F, 0x61, 0x06, 0x18, 0x4C, 0x61, 0x7E, 0x7B, 0x4F, 0x61, 0x7C, 0x73, 0x47, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40,
|
||||
0x01, 0x00, 0x00, 0x40, 0x55, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x40, 0x55, 0x02, 0x20, 0x55, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40, 0x55, 0x02, 0x20, 0x55, 0x01, 0x00, 0x00, 0x40,
|
||||
0x55, 0x02, 0x20, 0x55, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x79, 0x4F, 0x7F, 0x7F, 0x7B, 0x6F, 0x7F, 0x01, 0x1B, 0x60, 0x40, 0x7D, 0x7B, 0x67, 0x40, 0x7F, 0x79, 0x6F, 0x5F,
|
||||
0x07, 0x00, 0x6C, 0x7F, 0x07, 0x00, 0x6C, 0x70, 0x7F, 0x7B, 0x6F, 0x7F, 0x7D, 0x7B, 0x47, 0x5F, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x55, 0x02, 0x20, 0x55,
|
||||
0x01, 0x00, 0x00, 0x40, 0x55, 0x02, 0x20, 0x55, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40, 0x55, 0x0A, 0x28, 0x55, 0x01, 0x00, 0x00, 0x40, 0x55, 0x02, 0x20, 0x55, 0x01, 0x00, 0x00, 0x40,
|
||||
0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x79, 0x6F, 0x79, 0x47, 0x79, 0x6F, 0x7B, 0x4F, 0x19, 0x00, 0x03, 0x4C, 0x79, 0x07, 0x73, 0x4F, 0x79, 0x0F, 0x7B, 0x47, 0x01, 0x0C, 0x1B, 0x40, 0x01, 0x0C, 0x1B, 0x40,
|
||||
0x79, 0x0F, 0x7B, 0x4F, 0x79, 0x07, 0x73, 0x4F, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x55, 0x02, 0x20, 0x55, 0x01, 0x00, 0x00, 0x40, 0x55, 0x0A, 0x28, 0x55,
|
||||
0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40, 0x55, 0x0A, 0x28, 0x55, 0x01, 0x00, 0x00, 0x40, 0x55, 0x0A, 0x28, 0x55, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40,
|
||||
0x71, 0x39, 0x60, 0x41, 0x71, 0x3B, 0x60, 0x41, 0x71, 0x3B, 0x60, 0x41, 0x01, 0x3B, 0x60, 0x41, 0x01, 0x7B, 0x7F, 0x41, 0x01, 0x7B, 0x7F, 0x41, 0x01, 0x7B, 0x7F, 0x41, 0x01, 0x3B, 0x40, 0x43, 0x01, 0x3B, 0x40, 0x43, 0x01, 0x3B, 0x40, 0x43,
|
||||
0x01, 0x3B, 0x40, 0x43, 0x01, 0x3B, 0x40, 0x43, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x55, 0x0A, 0x28, 0x55, 0x01, 0x00, 0x00, 0x40, 0x55, 0x0A, 0x28, 0x55, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F,
|
||||
0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x40, 0x55, 0x6A, 0x2B, 0x55, 0x01, 0x60, 0x03, 0x40, 0x55, 0x6A, 0x2B, 0x55, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x07, 0x07, 0x5C, 0x7F, 0x0F, 0x07, 0x5C,
|
||||
0x7F, 0x1F, 0x07, 0x5C, 0x01, 0x1C, 0x07, 0x5C, 0x71, 0x1F, 0x7F, 0x5F, 0x7D, 0x0F, 0x7F, 0x5F, 0x7F, 0x07, 0x7F, 0x5F, 0x0F, 0x00, 0x07, 0x78, 0x0F, 0x00, 0x07, 0x78, 0x7F, 0x1F, 0x07, 0x78, 0x7D, 0x1F, 0x07, 0x78, 0x79, 0x1F, 0x07, 0x78,
|
||||
0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x55, 0x6A, 0x2B, 0x55, 0x01, 0x60, 0x03, 0x40, 0x55, 0x6A, 0x2B, 0x55, 0x01, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F
|
||||
};
|
||||
12
src/tiles.h
Normal file
12
src/tiles.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef _TILES_HEADER_
|
||||
#define _TILES_HEADER_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define TILES_COUNT 11
|
||||
#define TILE_WIDTH_BYTES 4
|
||||
#define TILE_HEIGHT 28
|
||||
|
||||
extern const uint8_t tiles[];
|
||||
|
||||
#endif /* _TILES_HEADER_ */
|
||||
Loading…
Add table
Add a link
Reference in a new issue