From 4f13d0dd6f36fbb36ee83950e9001562928d1592 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Sun, 27 Nov 2011 03:07:42 +0100 Subject: [PATCH] agent::move_dir(): If moving at dead agent, remove it from map and acquire its energy --- agent.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/agent.cc b/agent.cc index 7e7c41c..c89bc8f 100644 --- a/agent.cc +++ b/agent.cc @@ -25,6 +25,18 @@ agent::move_dir(int dir_x, int dir_y) energy -= world::move_cost; class tile *t2 = &tile->tile_in_dir(dir_x, dir_y); + if (t2->agent) { + if (t2->agent->dead) { + class agent *a = t2->agent; + t2->on_agent_leave(*a); + /* Nom. */ + energy += a->energy; + a->energy = 0; + } else { + return false; + } + } + if (!t2->on_agent_enter(*this)) return false;