From de392f4c7ad9613ef928b73e666398a65e2e7966 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Sun, 27 Nov 2011 07:53:59 +0100 Subject: [PATCH] Allow moving onto a herb, eating it --- agent.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/agent.cc b/agent.cc index fb71fbc..85ee558 100644 --- a/agent.cc +++ b/agent.cc @@ -37,11 +37,15 @@ agent::move_dir(int dir_x, int dir_y) class tile *t2 = &tile->tile_in_dir(dir_x, dir_y); if (t2->agent) { - if (t2->agent->dead) { + if (t2->herb_here()) { class agent *a = t2->agent; t2->on_agent_leave(*a); - /* Nom. */ - chenergy(a->energy); + chenergy(a->energy); /* Nom. */ + a->die(); + } else if (t2->agent->dead) { + class agent *a = t2->agent; + t2->on_agent_leave(*a); + chenergy(a->energy); /* Nom. */ a->energy = 0; } else { return false; @@ -137,7 +141,7 @@ agent::on_senses_update(void) agent::~agent() { - if (tile) + if (tile && tile->agent == this) tile->on_agent_leave(*this); if (conn) { conn->cancel();