diff options
author | UnavailableDev <69792062+UnavailableDev@users.noreply.github.com> | 2023-03-13 17:10:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-13 17:10:26 +0100 |
commit | 5a747929ed2099755fb03c930ea68c77fda805b3 (patch) | |
tree | c32d981fb030e05754671f359f1a76eb3d0ded32 /src/engine/draw_screen.c | |
parent | 3c6648e99101e20873c952b3796b0f9e765378fc (diff) | |
parent | 2aa4abf6a3c268f7729f91b08115aac8f2e5bdae (diff) |
Merge pull request #28 from UnavailableDev/game-engine
Game engine
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], }); } |