add wraparound support to C2 physics
[openc2e.git] / PointerAgent.h
blobd06ee60ea056473474a6f4d7e699e8c4643a92d7
1 /*
2 * PointerAgent.h
3 * openc2e
5 * Created by Alyssa Milburn on Tue Aug 30 2005.
6 * Copyright (c) 2005 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 "SimpleAgent.h"
21 #include "Backend.h"
23 #ifndef _C2E_POINTERAGENT_H
24 #define _C2E_POINTERAGENT_H
26 class PointerAgent : public SimpleAgent {
27 protected:
28 int hotspotx, hotspoty;
30 void carry(AgentRef);
31 void drop(AgentRef);
33 public:
34 std::string name;
35 bool handle_events;
37 int holdingWire; // 0 for no, 1 for from output port, 2 for from input port
38 AgentRef wireOriginAgent;
39 unsigned int wireOriginID;
41 AgentRef editAgent;
43 PointerAgent(std::string spritefile);
44 void finishInit();
45 void firePointerScript(unsigned short event, Agent *src);
46 void physicsTick();
47 void kill();
48 void handleEvent(SomeEvent &event);
49 void setHotspot(int, int);
51 int pointerX() { return x + hotspotx; }
52 int pointerY() { return y + hotspoty; }
55 #endif
56 /* vim: set noet: */