tweak C1-era CARR
[openc2e.git] / CreatureAgent.h
blobb5178e8f11b320baa16fea7b56f2a9a7c60b368a
1 /*
2 * CreatureAgent.h
3 * openc2e
5 * Created by Alyssa Milburn on Sat Dec 09 2006.
6 * Copyright (c) 2006 Alyssa Milburn. All rights reserved.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
20 #include "Agent.h"
21 #include "genome.h"
23 class Creature;
25 class CreatureAgent : public Agent {
26 protected:
27 Creature *creature;
28 friend class Creature;
30 unsigned int direction;
31 bool walking, approaching;
32 AgentRef approachtarget;
34 virtual void creatureBorn() { }
35 virtual void creatureAged() { }
36 virtual void creatureDied() { }
38 public:
39 CreatureAgent(unsigned char _family);
40 virtual ~CreatureAgent();
41 void tick();
43 void setCreature(Creature *c);
44 Creature *getCreature() { return creature; }
46 void setDirection(unsigned int d) { assert(d < 4); direction = d; }
47 unsigned int getDirection() { return direction; }
48 void startWalking();
49 void stopWalking();
50 void approach(AgentRef it);
51 bool isApproaching() { return approaching; }
54 /* vim: set noet: */