-
Notifications
You must be signed in to change notification settings - Fork 1
/
AIModule.cpp
73 lines (69 loc) · 2.69 KB
/
AIModule.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <AIModule.h>
#include "Cast.hpp"
class AIModuleWrapper : public BWAPI::AIModule
{
protected:
::AIModule* module;
public:
virtual void onStart() override {
module->vtable->onStart(module);
}
virtual void onEnd(bool isWinner) override {
module->vtable->onEnd(module, isWinner);
}
virtual void onFrame() override {
module->vtable->onFrame(module);
}
virtual void onSendText(std::string text) override {
module->vtable->onSendText(module, text.c_str());
}
virtual void onReceiveText(BWAPI::Player player, std::string text) override {
module->vtable->onReceiveText(module, reinterpret_cast<Player*>(player), text.c_str());
}
virtual void onPlayerLeft(BWAPI::Player player) override {
module->vtable->onPlayerLeft(module, reinterpret_cast<Player*>(player));
}
virtual void onNukeDetect(BWAPI::Position target) override {
module->vtable->onNukeDetect(module, cast_from_bw(target));
}
virtual void onUnitDiscover(BWAPI::Unit unit) override {
module->vtable->onUnitDiscover(module, reinterpret_cast<Unit*>(unit));
}
virtual void onUnitEvade(BWAPI::Unit unit) override {
module->vtable->onUnitEvade(module, reinterpret_cast<Unit*>(unit));
}
virtual void onUnitShow(BWAPI::Unit unit) override {
module->vtable->onUnitShow(module, reinterpret_cast<Unit*>(unit));
}
virtual void onUnitHide(BWAPI::Unit unit) override {
module->vtable->onUnitHide(module, reinterpret_cast<Unit*>(unit));
}
virtual void onUnitCreate(BWAPI::Unit unit) override {
module->vtable->onUnitCreate(module, reinterpret_cast<Unit*>(unit));
}
virtual void onUnitDestroy(BWAPI::Unit unit) override {
module->vtable->onUnitDestroy(module, reinterpret_cast<Unit*>(unit));
}
virtual void onUnitMorph(BWAPI::Unit unit) override {
module->vtable->onUnitMorph(module, reinterpret_cast<Unit*>(unit));
}
virtual void onUnitRenegade(BWAPI::Unit unit) override {
module->vtable->onUnitRenegade(module, reinterpret_cast<Unit*>(unit));
}
virtual void onSaveGame(std::string gameName) override {
module->vtable->onSaveGame(module, gameName.c_str());
}
virtual void onUnitComplete(BWAPI::Unit unit) override {
module->vtable->onUnitComplete(module, reinterpret_cast<Unit*>(unit));
}
AIModuleWrapper(::AIModule* module)
: module(module)
{
}
};
/* BWAPI::AIModule* */ void* createAIModuleWrapper(AIModule* module) {
return reinterpret_cast<void*>( new AIModuleWrapper(module) );
}
void destroyAIModuleWrapper(/* BWAPI::AIModule* */ void* module) {
delete reinterpret_cast<AIModuleWrapper*>(module);
}