From fcc06b383c3490d105b527849dcf0b9d7af8481f Mon Sep 17 00:00:00 2001 From: rodri Date: Tue, 25 Apr 2023 01:40:32 +0000 Subject: bullets aren't fired unless the server says otherwise. also don't draw bullets that weren't fired. --- musw.c | 10 +++++++++- muswd.c | 2 +- todo | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/musw.c b/musw.c index 8d428c0..0703393 100644 --- a/musw.c +++ b/musw.c @@ -166,6 +166,9 @@ drawbullets(Ship *ship, Image *dst) Point2 v; for(i = 0; i < nelem(ship->rounds); i++){ + if(!ship->rounds[i].fired) + continue; + b = &ship->rounds[i]; v = Vec2(-1,0); /* it's pointing backwards to paint the tail */ Matrix R = { @@ -390,14 +393,19 @@ threadnetppu(void *) if(debug) fprint(2, "nfired0 %d nfired1 %d\n", nfired[0], nfired[1]); + for(i = 0; i < nelem(universe->ships); i++) + for(j = 0; j < nelem(universe->ships[i].rounds); j++) + universe->ships[i].rounds[j].fired = 0; + for(i = 0; i < nelem(universe->ships); i++) for(j = 0; j < nfired[i]; j++){ bufp += unpack(bufp, frame->len - (bufp-frame->data), "b", &bi); if(debug) - fprint(2, "bi %d\n", bi); + fprint(2, "si %d bi %d\n", i, bi); bufp += unpack(bufp, frame->len - (bufp-frame->data), "Pd", &universe->ships[i].rounds[bi].p, &universe->ships[i].rounds[bi].θ); + universe->ships[i].rounds[bi].fired++; } break; case NSnudge: diff --git a/muswd.c b/muswd.c index 3502637..cb0be8b 100644 --- a/muswd.c +++ b/muswd.c @@ -106,7 +106,7 @@ nudgeconns(ulong curts) f = newframe(&(*ncp)->udp, NSnudge, (*ncp)->lastseq+1, 0, 0, nil); signframe(f, (*ncp)->dh.priv); sendp(egress, f); - + (*ncp)->lastnudgets = curts; } break; diff --git a/todo b/todo index a9c0ca7..06a3c45 100644 --- a/todo +++ b/todo @@ -14,6 +14,7 @@ [✓] main game [ ] reduce the amount of data sent on every NSsimstate packet [✓] only send the fired bullets + [ ] bit packing [?] the client must try to connect continously > there's an error in the udp stack that doesn't allow the client to receive packets if run before the server is up. [ ] more realistic DEC Type 30 CRT emulation -- cgit v1.2.3