diff options
Diffstat (limited to 'src/engine/draw_screen.c')
| -rw-r--r-- | src/engine/draw_screen.c | 27 | 
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],  		});  	} |