From de8a218bcc445c17d2619bda2504a630d04d402e Mon Sep 17 00:00:00 2001 From: KikooDX Date: Mon, 24 May 2021 11:07:56 +0200 Subject: [PATCH] Upgrade bar visuals --- include/bar.h | 10 ++++++---- src/bar/draw.c | 9 +++++++++ src/bar/init.c | 21 ++++++++++++++++++++- src/main.c | 9 +++++++-- 4 files changed, 42 insertions(+), 7 deletions(-) diff --git a/include/bar.h b/include/bar.h index ddd4f00..ba58488 100644 --- a/include/bar.h +++ b/include/bar.h @@ -1,9 +1,9 @@ #pragma once #include -#define BAR_WIDTH 12 -#define BAR_Y 32 -#define BAR_HEIGHT (DHEIGHT - BAR_Y * 2) +#define BAR_WIDTH 16 +#define BAR_Y 48 +#define BAR_HEIGHT (DHEIGHT - BAR_Y - 16) #define BAR_BASE_FILL 0.5 struct Bar { @@ -13,6 +13,8 @@ struct Bar { float fill; }; -struct Bar bar_init(int x); +enum BarID { BAR_CASH, BAR_HUMAN, BAR_SMILE, BAR_SUN }; + +struct Bar bar_init(enum BarID bar_id); void bar_update(struct Bar *bar); void bar_draw(struct Bar bar); diff --git a/src/bar/draw.c b/src/bar/draw.c index e3898eb..b28a4e1 100644 --- a/src/bar/draw.c +++ b/src/bar/draw.c @@ -1,6 +1,15 @@ #include "bar.h" +#include void bar_draw(struct Bar bar) { + const int height = bar.fill * (float)bar.height; + const int y = bar.y + bar.height - height; + + /* fill */ + drect(bar.x, y, bar.x + BAR_WIDTH, y + height, C_GREEN); + /* borders */ + drect_border(bar.x, bar.y, bar.x + BAR_WIDTH, bar.y + bar.height, + C_NONE, 2, C_BLACK); } diff --git a/src/bar/init.c b/src/bar/init.c index f0bee60..fe8dff5 100644 --- a/src/bar/init.c +++ b/src/bar/init.c @@ -1,8 +1,27 @@ #include "bar.h" +#include struct Bar -bar_init(int x) +bar_init(enum BarID bar_id) { + int x = 0; + switch (bar_id) { + case BAR_CASH: + x = BAR_WIDTH; + break; + case BAR_HUMAN: + x = BAR_WIDTH * 3; + break; + case BAR_SMILE: + x = DWIDTH - BAR_WIDTH * 4; + break; + case BAR_SUN: + x = DWIDTH - BAR_WIDTH * 2; + break; + default: + break; + } + return (struct Bar){ .x = x, .y = BAR_Y, diff --git a/src/main.c b/src/main.c index fe68bfd..635ad09 100644 --- a/src/main.c +++ b/src/main.c @@ -5,10 +5,15 @@ int main(void) { - struct Bar my_bar = bar_init(22); + int i; + struct Bar bars[4]; + + for (i = 0; i < 4; i += 1) + bars[i] = bar_init(i); dclear(C_WHITE); - bar_draw(my_bar); + for (i = 0; i < 4; i += 1) + bar_draw(bars[i]); dupdate(); getkey();