From d1af4269c4130d11d77f61f1a2ac8f3e249f72f2 Mon Sep 17 00:00:00 2001 From: jacopo grandi Date: Fri, 5 Mar 2021 16:54:26 +0100 Subject: unit generator in hud, minor fix in movement, % in view and cost weights --- hud/hud.c | 31 ++++++++++++++++++------------- hud/hud.h | 1 + hud/hud_views.c | 11 +++++++++-- 3 files changed, 28 insertions(+), 15 deletions(-) (limited to 'hud') diff --git a/hud/hud.c b/hud/hud.c index d85d618..40983a7 100644 --- a/hud/hud.c +++ b/hud/hud.c @@ -7,6 +7,7 @@ #include "hud_views.h" #include "../umath/intersect.h" +#include "../gst/generate.h" // TODO: make sound module mabye? #define SOUND_MOUSE_OVER 0 @@ -38,7 +39,8 @@ void init_sel_chassis (graphic_settings *gs, hud_sel *sc, txtd *t, } void init_form_new_unit (graphic_settings *gs, form_new_unit *fnu, txtd *t) { - int w = 290+200+300+20*2+10*4 + 30*3 + 200, h = 145+300+20*2+10*1 + 30*2; + int w = 290+200+300+20*2+10*4 + 30*3 + 200; + int h = 145+300+20*2+10*1 +30*2 +10; int x = gs->resx/2-w/2, y = gs->resy/2-h/2; SDL_Rect_init(&fnu->rect_back, x, y, w, h); @@ -58,11 +60,14 @@ void init_form_new_unit (graphic_settings *gs, form_new_unit *fnu, txtd *t) { x+20+500+20+160+30*2, y+20+60*i +30, 150, 50); } - SDL_Rect_init(&fnu->rect_stats, x+w-20-200, y+20, 200, h-70 ); + SDL_Rect_init(&fnu->rect_stats, x+w-20-200, y+20, 200, h-52 ); - int width = get_text_width("save", t); - button bdone = { "save", 4, { x+w-4*2-width-20, y+h-4*2-11-20 } }; + button bdone = { "save", 4, { x+5, y+h-4*2-10-5 } }; fnu->done = bdone; + + int width = get_text_width("randomize", t); + button brand = { "randomize", 4, { x+w-4*2-width-5, y+h-4*2-10-5 } }; + fnu->randomize = brand; } void init_overlay_game (graphic_settings *gs, overlay_game *og, txtd *t) { @@ -314,12 +319,10 @@ void hud_process_form_new_unit (graphic_settings *gs, hud *h, MKb *mkb, if (mouse_in_button(mousepos, t, &h->fnu.done)) { hud_close_fnu(h, info); Mix_PlayChannel( -1, sounds[SOUND_SUCCESS], 0 ); - /* - for (int i=0; iuslen; i++) { - unit *u = ar->us+i; - unit_init(info, ar, m, u->gridpos[0], u->gridpos[1], - &u->info, 0, u); - }*/ + } + if (mouse_in_button(mousepos, t, &h->fnu.randomize)) { + generate_unit(info, &h->fnu.uinfo, 10000); + Mix_PlayChannel( -1, sounds[SOUND_SUCCESS], 0 ); } float possc[2] = { h->fnu.rect_chassis.x, h->fnu.rect_chassis.y }; float sizesc[2] = { h->fnu.rect_chassis.w, h->fnu.rect_chassis.h }; @@ -911,7 +914,7 @@ void hud_render_form_new_unit (form_new_unit *fnu, MKb *mkb, char schassis[32] = "CHASSIS"; float wchassis = get_text_width(schassis, t)*2; float pchassis[2] = { - fnu->rect_chassis.x+fnu->rect_chassis.w/2 - wchassis / 2, + fnu->rect_chassis.x+fnu->rect_chassis.w / 2 - wchassis / 2, fnu->rect_chassis.y+fnu->rect_chassis.h + 7 }; render_text_scaled(rend, schassis, pchassis, t, 2); @@ -964,12 +967,14 @@ void hud_render_form_new_unit (form_new_unit *fnu, MKb *mkb, if (err==2) strcpy(serr, "select a battery"); if (err==3) strcpy(serr, "select a controller"); if (err==4) strcpy(serr, "overburdened, remove weight"); - float werr = get_text_width(serr, t); + float werr = get_text_width("done", t); float perr[2] = { - fnu->done.pos[0]-werr-10, + fnu->done.pos[0]+werr+4*2+10, fnu->done.pos[1]+fnu->done.pad }; render_text_scaled(rend, serr, perr, t, 1); + + render_button(rend, t, &fnu->randomize); render_view_chassis(rend, t, fnu->rect_chassis.x, fnu->rect_chassis.y, diff --git a/hud/hud.h b/hud/hud.h index 48c877b..0086561 100644 --- a/hud/hud.h +++ b/hud/hud.h @@ -65,6 +65,7 @@ typedef struct { SDL_Rect rect_augs[8]; SDL_Rect rect_stats; button done; + button randomize; info_unit uinfo; info_unit *uinfo_ptr; int sel, ind; diff --git a/hud/hud_views.c b/hud/hud_views.c index 385501e..cd39611 100644 --- a/hud/hud_views.c +++ b/hud/hud_views.c @@ -43,7 +43,11 @@ void render_view_comp (SDL_Renderer* rend, txtd *t, int px, int py, } { int n = stats_frame_sprintf(info, comp->perc +lvl, arr); - for (int i=0; ibase_weapon +lvl, arr); @@ -51,7 +55,10 @@ void render_view_comp (SDL_Renderer* rend, txtd *t, int px, int py, } { int n = stats_weapon_sprintf(info, comp->perc_weapon +lvl, arr); - for (int i=0; i