diff --git a/bin/back b/bin/back index 8712995..fdbc8be 100755 Binary files a/bin/back and b/bin/back differ diff --git a/obj/base.o b/obj/base.o new file mode 100644 index 0000000..c33c3bf Binary files /dev/null and b/obj/base.o differ diff --git a/obj/display.o b/obj/display.o new file mode 100644 index 0000000..6d9410f Binary files /dev/null and b/obj/display.o differ diff --git a/obj/generation.o b/obj/generation.o new file mode 100644 index 0000000..caa5a17 Binary files /dev/null and b/obj/generation.o differ diff --git a/obj/hash.o b/obj/hash.o new file mode 100644 index 0000000..4633f4e Binary files /dev/null and b/obj/hash.o differ diff --git a/obj/main.o b/obj/main.o new file mode 100644 index 0000000..8438552 Binary files /dev/null and b/obj/main.o differ diff --git a/obj/move.o b/obj/move.o new file mode 100644 index 0000000..14464bf Binary files /dev/null and b/obj/move.o differ diff --git a/src/base.c b/src/base.c index 3ee3c49..68bc003 100644 --- a/src/base.c +++ b/src/base.c @@ -56,6 +56,20 @@ int max(int a, int b) { return a; } +double min_db(double a, double b) { + if(a > b) { + return b; + }; + return a; +} + +double max_db(double a, double b) { + if(a < b) { + return b; + }; + return a; +} + int sign(int n) { if(n < 0) { return (-1); diff --git a/src/base.h b/src/base.h index 408a197..23173f8 100644 --- a/src/base.h +++ b/src/base.h @@ -11,6 +11,10 @@ int min(int a, int b); int max(int a, int b); +double min_db(double a, double b); + +double max_db(double a, double b); + int sign(int n); double absf(double n); diff --git a/src/display.c b/src/display.c index 04a37ad..08fa740 100644 --- a/src/display.c +++ b/src/display.c @@ -168,6 +168,8 @@ bool isPtInPoly(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, return (sign(v1) == sign(v2) && sign(v2) == sign(v3) && sign(v3) == sign(v4)); } +static int total ; + void fillQuadPoly(SDL_Renderer* renderer, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) { int ymin = min(min(y1, y2), min(y3, y4)); int ymax = max(max(y1, y2), max(y3, y4)); @@ -180,6 +182,15 @@ void fillQuadPoly(SDL_Renderer* renderer, int x1, int y1, int x2, int y2, int x3 } } }; + /*double step = max_db(distance_pt(x1, y1, x2, y2), distance_pt(x3, y3, x4, y4)); + double theta = 0.0 ; + while(theta <= 1.0) { + total += 1 ; + drawLineWithThicc(renderer, 2, convex_seg(x1, x2, theta), convex_seg(x4, x3, theta), convex_seg(y1, y2, theta), convex_seg(y4, y3, theta), 255, 192, 255, SDL_ALPHA_OPAQUE); + theta += 1.0 / step; + }*/ + /*total += (ymax-ymin)*(xmax-xmin) ; + printf("T = %d\n", total);*/ drawLineWithThicc(renderer, 2, x1, x2, y1, y2, 32, 32, 32, SDL_ALPHA_OPAQUE); drawLineWithThicc(renderer, 2, x2, x3, y2, y3, 32, 32, 32, SDL_ALPHA_OPAQUE); drawLineWithThicc(renderer, 2, x3, x4, y3, y4, 32, 32, 32, SDL_ALPHA_OPAQUE); @@ -250,7 +261,6 @@ void drawHashToRenderer(SDL_Renderer* renderer, int chx, int chy, int xmin, int fprintf(stderr, "NO (%d, %d)\n", chx, chy); exit(1); }; - drawChunkToRenderer(renderer, todraw, xmin, xmax, ymin, ymax, true); if(distx != render_distance -1 && !gridMem(map, chx+1, chy)) { generate_chunk_all(chx+1, chy); @@ -287,7 +297,7 @@ void drawMapToRendererV2(SDL_Renderer* renderer, int xmin, int xmax, int ymin, i chunk* todraw = gridGet(map, player_cx+sorted_x[i], player_cy + sorted_y[i]) ; - //drawChunkToRenderer(renderer, todraw, xmin, xmax, ymin, ymax, true); + drawChunkToRenderer(renderer, todraw, xmin, xmax, ymin, ymax, true); drawChunkToRenderer(renderer, todraw, xmin, xmax, ymin, ymax, false); } placeRectToRenderer(renderer, __width__ /2 - 5*zoom/100, __height__ /2 - 5*zoom/100, 10*zoom/100, 10*zoom/100, 255, 255, 32, SDL_ALPHA_OPAQUE); diff --git a/src/generation.c b/src/generation.c index 4cc6097..f793c3b 100644 --- a/src/generation.c +++ b/src/generation.c @@ -24,7 +24,7 @@ template* configs ; array** matches ; int n_configs = 18; -int render_distance = 2 ; +int render_distance = 4 ; int player_x = 4; int player_y = 4; @@ -42,6 +42,7 @@ imgs digits ; imgs letters ; template full ; +template empty ; int* sorted_x ; int* sorted_y ; @@ -170,17 +171,6 @@ void signature(template t) { printf("[WEST] %d\n\n", t.westsig); } -bool is_compat_with_spins(int cx, int cy, int idx) { - for(int k = 0; k < 4; k++) { - if(is_compat_sig_north(cx, cy, idx) && is_compat_sig_east(cx, cy, idx) && is_compat_sig_south(cx, cy, idx) && is_compat_sig_west(cx, cy, idx)) { - return true ; - } else { - rotateTemplateClockWise(idx); - } - }; - return false; -} - bool is_compat_with_spins_uno(int cx, int cy, int idx) { if(is_compat_sig_north(cx, cy, idx) && is_compat_sig_east(cx, cy, idx) && is_compat_sig_south(cx, cy, idx) && is_compat_sig_west(cx, cy, idx)) { return true ; @@ -237,11 +227,21 @@ void initialize(SDL_Renderer* renderer) { import_digits(renderer); full.lines = malloc(sizeof(uint8_t)*8); + full.eastsig = 255 ; + full.westsig = 255 ; for(int i = 0; i < 8; i++) { full.lines[i] = 255 ; }; full.id = -1 ; + empty.lines = malloc(sizeof(uint8_t)*8); + empty.eastsig = 0 ; + empty.westsig = 0 ; + for(int i = 0; i < 8; i++) { + empty.lines[i] = 0 ; + }; + empty.id = -2 ; + int xys = pw(2*render_distance+1, 2); sorted_x = malloc(sizeof(int)*xys); sorted_y = malloc(sizeof(int)*xys); @@ -284,6 +284,7 @@ void destroy() { free_digits(letters); free(full.lines); + free(empty.lines); free(sorted_x); free(sorted_y); diff --git a/src/move.c b/src/move.c index fe24c66..930a81f 100644 --- a/src/move.c +++ b/src/move.c @@ -176,8 +176,8 @@ void moveFunctionMaster(SDL_Renderer* renderer) { while(!halt) { moveControl(&halt); resetRenderer(renderer); - //drawMapToRenderer(renderer, -300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), 300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), -300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy)), 300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy))); - drawMapToRendererV2(renderer, -300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), 300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), -300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy)), 300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy))); + drawMapToRenderer(renderer, -300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), 300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), -300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy)), 300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy))); + //drawMapToRendererV2(renderer, -300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), 300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), -300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy)), 300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy))); drawNumberToRenderer(renderer, digits, player_cx, 10, 10, 50, 70, 0); drawNumberToRenderer(renderer, digits, player_cy, 10, 80, 50, 70, 0); drawNumberToRenderer(renderer, digits, player_x, __width__ / 3, 10, 50, 70, 0); @@ -185,7 +185,8 @@ void moveFunctionMaster(SDL_Renderer* renderer) { drawNumberToRenderer(renderer, digits, to_int(εx*100), 2 * __width__ / 3, 10, 50, 70, 0); drawNumberToRenderer(renderer, digits, to_int(εy*100), 2 * __width__ / 3, 80, 50, 70, 0); updateRenderer(renderer); + //exit(1); draw_par += 1 ; - usleep(20000); + //usleep(20000); } } \ No newline at end of file diff --git a/src/structure.h b/src/structure.h index 22708ef..738b9c9 100644 --- a/src/structure.h +++ b/src/structure.h @@ -47,6 +47,8 @@ extern imgs letters ; extern template full ; +extern template empty ; + extern int* sorted_x ; extern int* sorted_y ;