diff --git a/agent.cc b/agent.cc index eef806b..6107e2a 100644 --- a/agent.cc +++ b/agent.cc @@ -7,6 +7,12 @@ #include "main.h" #include "map.h" +void +agent::spawn(void) +{ + spawn_at(map.agent_startpos()); +} + void agent::spawn_at(class tile &t) { diff --git a/agent.h b/agent.h index f5e2e01..62d4b45 100644 --- a/agent.h +++ b/agent.h @@ -11,17 +11,19 @@ public: int id; class connection *conn; + class map ↦ class tile *tile; int energy; bool dead; - agent(int id_, class connection *conn_) - : id (id_), conn (conn_) + agent(int id_, class connection *conn_, class map &map_) + : id (id_), conn (conn_), map (map_) { energy = world::newborn_energy; dead = false; }; + void spawn(void); void spawn_at(class tile &tile); bool move_dir(int dir_x, int dir_y); diff --git a/main.cc b/main.cc index 6fbff3b..2e4a59c 100644 --- a/main.cc +++ b/main.cc @@ -67,9 +67,9 @@ next_agent: int cfd = accept(lfd, NULL, NULL); if (cfd >= 0) { class connection *conn = new class connection(cfd); - class agent *a = new class agent(aid++, conn); + class agent *a = new class agent(aid++, conn, map); agents.push_back(a); - a->spawn_at(map.agent_startpos()); + a->spawn(); } /* Collect and take actions. */