aboutsummaryrefslogtreecommitdiff
path: root/src/engine/draw_screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/draw_screen.c')
-rw-r--r--src/engine/draw_screen.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/engine/draw_screen.c b/src/engine/draw_screen.c
index acf5b41..c4f3389 100644
--- a/src/engine/draw_screen.c
+++ b/src/engine/draw_screen.c
@@ -1,21 +1,22 @@
-#include "draw_screen.h"
+#include "engine/draw_screen.h"
+#include "engine/sprite_controller.h"
uint8_t hh_world_to_tile(vec2 pos){
- FILE* level = fopen("../test/bin/test_map.bin", "rb"); /* open binary file */
+ FILE* level = fopen("../test/bin/level1_test.bin", "rb"); /* open binary file */
if (!level) { /* check if file opened successfully */
fprintf(stderr, "Error: Failed to open file.\n");
return 0;
}
- int index = (pos.y + pos.x);
+ int index = ((pos.y/16)*40 + pos.x/16);//TODO: remove magic number(s)
fseek(level, (index * sizeof(int)) + sizeof(int), SEEK_SET);
- int* tile = (int*)malloc(sizeof(int));
- fread(tile, sizeof(int), 1, level); // read 1 tile from binary
+ int tile;// = (int*)malloc(sizeof(int));
+ fread(&tile, sizeof(int), 1, level); // read 1 tile from binary
fclose(level);
- int val = *tile;
- free(tile);
- return val;
+ // int val = tile;
+ // free(tile);
+ return tile;
}
@@ -25,8 +26,8 @@ void hh_draw_screen(vec_cor viewport){
if (viewport.x == previousViewport.x && viewport.y == previousViewport.y) return;
hh_ppu_update_aux((hh_s_ppu_loc_aux){
- .bg_shift_x = viewport.x*HH_PPU_SPRITE_WIDTH,
- .bg_shift_y = viewport.y*HH_PPU_SPRITE_HEIGHT,
+ .bg_shift_x = viewport.x,
+ .bg_shift_y = viewport.y,
.fg_fetch = 0,
.sysreset = 0,
});
@@ -37,8 +38,8 @@ void hh_draw_screen(vec_cor viewport){
void hh_setup_screen(){
//(HH_map_size_X*HH_map_size_Y)
- int size = 3200; // max X = 40 en max Y = 80
- FILE* level = fopen("../test/bin/test_map.bin", "rb"); /* open binary file */
+ int size = 2400; // max X = 40 en max Y = 80
+ FILE* level = fopen("../test/bin/level1_test.bin", "rb"); /* open binary file */
if (!level) { /* check if file opened successfully */
fprintf(stderr, "Error: Failed to open file.\n");
return;
@@ -53,7 +54,7 @@ void hh_setup_screen(){
hh_ppu_update_background(BAM_index, (hh_s_ppu_loc_bam_entry){
.horizontal_flip = false,
.vertical_flip = false,
- .palette_index = tile[BAM_index]+1,
+ .palette_index = hh_get_palette(tile[BAM_index]),
.tilemap_index = tile[BAM_index],
});
}