aboutsummaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorjacopo grandi <jak.sk8@hotmail.it>2021-02-24 18:01:08 +0100
committerjacopo grandi <jak.sk8@hotmail.it>2021-02-24 18:01:08 +0100
commitdad432566a5c74f86dc4ba874e631115e0f469d1 (patch)
tree0e282e874ef48658d87e82041afe7bba1db3704a /gst
parent0b338bbd007048551526ab4fa4130d53b414e650 (diff)
level selector and fx fic
Diffstat (limited to 'gst')
-rw-r--r--gst/fxs.c5
-rw-r--r--gst/gst.c10
-rw-r--r--gst/info.c1
3 files changed, 11 insertions, 5 deletions
diff --git a/gst/fxs.c b/gst/fxs.c
index 2078a89..ad4d15a 100644
--- a/gst/fxs.c
+++ b/gst/fxs.c
@@ -39,7 +39,10 @@ void fx_render (SDL_Renderer *rend, fxs *fx, float cam[], float time) {
b->from[1] *(1-amt) + b->to[1] *amt
};
float head[2]; vec2_sub(head, b->from, b->to);
- vec2_norm(head); vec2_mul(head, head, 10);
+ float mag = 10;
+ float dist = amt*vec2_mag(head);
+ if (dist < 10) { mag = dist; }
+ vec2_norm(head); vec2_mul(head, head, mag);
SDL_SetRenderDrawColor(rend,
b->color[0],
b->color[1],
diff --git a/gst/gst.c b/gst/gst.c
index 6842826..9ded823 100644
--- a/gst/gst.c
+++ b/gst/gst.c
@@ -89,16 +89,18 @@ void gst_spawn_bullets (gamestate *gst, fxs *fx, a_dmg dmgs[], int dmgslen,
gst_get_maparmy(gst, &m, &ar);
bullet b;
+
+ // for every unit count how many shots
int counts[MAXUNITS];
for (int j=0;j<MAXUNITS; counts[j]=0, j++);
- // for every unit count how many shots
-
for (int i=0; i<ar->uslen; i++) {
for (int j=0; j<dmgslen; j++) {
unit *u = ar->us+i;
if (dmgs[j].u == u) { counts[i]++; }
}
}
+
+ // then spawn a bullet for every shot
int curr[MAXUNITS];
for (int j=0;j<MAXUNITS; curr[j]=0, j++);
for (int i=0; i<ar->uslen; i++) {
@@ -111,9 +113,10 @@ void gst_spawn_bullets (gamestate *gst, fxs *fx, a_dmg dmgs[], int dmgslen,
b.to[0] = t->pos[0]+16;
b.to[1] = t->pos[1]+16;
float n = (float)curr[i]/counts[i];
+ float travel_time = 0.1;
float shot_time = time + n*gst->turnspeed;
b.starttime = shot_time;
- b.endtime = shot_time + 0.1;
+ b.endtime = shot_time + travel_time;
if (u->owner == 0) {
b.color[0] = 0; b.color[1] = 255; b.color[2] = 0;
} else {
@@ -155,7 +158,6 @@ void gst_process (gamestate *gst, infos *info, fxs *fx, float t) {
a_dmg dmgs[1024*8];
int fire = army_fire(info, ar, m, dmgs);
army_upkeep(info, ar, m);
- printf("%d, %d\n", move, fire);
if (move == 0 && fire == 0) {
gst->turn_until_finish--;
} else { gst->turn_until_finish = 5; }
diff --git a/gst/info.c b/gst/info.c
index 0eaecb3..c12c620 100644
--- a/gst/info.c
+++ b/gst/info.c
@@ -533,6 +533,7 @@ void info_chassis_parse (char *json, info_chassis *c, jsmntok_t *t, int r,
if (strcmp(key, "slot_weapon") == 0) {
int rt = json_parse_subtokens(json, t, r, i+1);
json_parse_array(json, c->slot_weapon, t+i+2, rt-1, 'i');
+ printf("%d %d %d\n", c->slot_weapon[0], c->slot_weapon[1], c->slot_weapon[2]);
i += rt;
}
if (strcmp(key, "slot_armor") == 0) {