From 7ed124593ebda443fc4d0f1439d1fd8dc602ce72 Mon Sep 17 00:00:00 2001 From: rodri Date: Sun, 1 Aug 2021 11:56:12 +0000 Subject: =?UTF-8?q?began=20building=20a=20universe=20for=20every=20party.?= =?UTF-8?q?=20get=20rid=20of=20the=20notes=20file.=20i=20already=20keep=20?= =?UTF-8?q?them=20on=20paper.=20adapted=20the=20client=20to=20use=20an=20r?= =?UTF-8?q?frame=20for=20drawing.=20implemented=20some=20VModel=20methods?= =?UTF-8?q?=20for=20testing.=20FPS2MS=20=E2=86=92=20HZ2MS.=20it=20makes=20?= =?UTF-8?q?more=20sense=20and=20is=20shorter.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- universe.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 universe.c (limited to 'universe.c') diff --git a/universe.c b/universe.c new file mode 100644 index 0000000..32869b5 --- /dev/null +++ b/universe.c @@ -0,0 +1,63 @@ +#include +#include +#include +#include "libgeometry/geometry.h" +#include "dat.h" +#include "fns.h" + +static void +universe_step(Universe *u, double Δt) +{ + //integrate(u, u->t, Δt); +} + +static void +universe_reset(Universe *u) +{ + int i, j; + + for(i = 0; i < nelem(u->ships); i++){ + for(j = 0; j < nelem(u->ships[i].rounds); j++) + memset(&u->ships[i].rounds[j], 0, sizeof(Bullet)); + memset(&u->ships[i].Particle, 0, sizeof(Particle)); + } + memset(&u->star.Particle, 0, sizeof(Particle)); + inituniverse(u); +} + +void +inituniverse(Universe *u) +{ + u->ships[0].p = Pt2(SCRW/2-50,SCRH/2-50,1); + u->ships[0].θ = (180+45)*DEG; + u->ships[0].mass = 10e3; /* 10 tons */ + u->ships[0].kind = NEEDLE; + u->ships[0].fuel = 100; + + u->ships[1].p = Pt2(-SCRW/2+50,-SCRH/2+50,1); + u->ships[1].θ = 45*DEG; + u->ships[1].mass = 40e3; /* 40 tons */ + u->ships[1].kind = WEDGE; + u->ships[1].fuel = 200; + + u->star.p = Pt2(0,0,1); + u->star.mass = 5.97e24; /* earth's mass */ +} + +Universe * +newuniverse(void) +{ + Universe *u; + + u = emalloc(sizeof(Universe)); + memset(u, 0, sizeof *u); + u->step = universe_step; + u->reset = universe_reset; + return u; +} + +void +deluniverse(Universe *u) +{ + free(u); +} -- cgit v1.2.3