diff options
author | yexo <yexo@openttd.org> | 2009-06-17 13:12:08 +0000 |
---|---|---|
committer | yexo <yexo@openttd.org> | 2009-06-17 13:12:08 +0000 |
commit | d09d3566ddd86a559819354bad805dfc23622db8 (patch) | |
tree | 5ba4e0934a063e88cf58f4f2b34bd510aee08849 /src | |
parent | 121a569125bd6cb986c8ca31e68e12685c7a281a (diff) | |
download | openttd-d09d3566ddd86a559819354bad805dfc23622db8.tar.xz |
(svn r16585) -Add [NoAI]: AIBuoyList to get a list of all buoys
Diffstat (limited to 'src')
-rw-r--r-- | src/ai/ai_instance.cpp | 2 | ||||
-rw-r--r-- | src/ai/api/ai_buoylist.cpp | 14 | ||||
-rw-r--r-- | src/ai/api/ai_buoylist.hpp | 21 | ||||
-rw-r--r-- | src/ai/api/ai_buoylist.hpp.sq | 21 |
4 files changed, 58 insertions, 0 deletions
diff --git a/src/ai/ai_instance.cpp b/src/ai/ai_instance.cpp index 8c70cf177..8dff24f78 100644 --- a/src/ai/ai_instance.cpp +++ b/src/ai/ai_instance.cpp @@ -32,6 +32,7 @@ #include "api/ai_base.hpp.sq" #include "api/ai_bridge.hpp.sq" #include "api/ai_bridgelist.hpp.sq" +#include "api/ai_buoylist.hpp.sq" #include "api/ai_cargo.hpp.sq" #include "api/ai_cargolist.hpp.sq" #include "api/ai_company.hpp.sq" @@ -163,6 +164,7 @@ void AIInstance::RegisterAPI() SQAIBridge_Register(this->engine); SQAIBridgeList_Register(this->engine); SQAIBridgeList_Length_Register(this->engine); + SQAIBuoyList_Register(this->engine); SQAICargo_Register(this->engine); SQAICargoList_Register(this->engine); SQAICargoList_IndustryAccepting_Register(this->engine); diff --git a/src/ai/api/ai_buoylist.cpp b/src/ai/api/ai_buoylist.cpp new file mode 100644 index 000000000..0ba66fb39 --- /dev/null +++ b/src/ai/api/ai_buoylist.cpp @@ -0,0 +1,14 @@ +/* $Id$ */ + +/** @file ai_buoylist.cpp Implementation of AIBuoyList and friends. */ + +#include "ai_buoylist.hpp" +#include "../../station_base.h" + +AIBuoyList::AIBuoyList() +{ + Station *st; + FOR_ALL_STATIONS(st) { + if (st->IsBuoy()) this->AddItem(st->xy); + } +} diff --git a/src/ai/api/ai_buoylist.hpp b/src/ai/api/ai_buoylist.hpp new file mode 100644 index 000000000..b18a3e34f --- /dev/null +++ b/src/ai/api/ai_buoylist.hpp @@ -0,0 +1,21 @@ +/* $Id$ */ + +/** @file ai_buoylist.hpp List all the buoys. */ + +#ifndef AI_BUOYLIST_HPP +#define AI_BUOYLIST_HPP + +#include "ai_abstractlist.hpp" + +/** + * Creates a list of buoys. + * @ingroup AIList + */ +class AIBuoyList : public AIAbstractList { +public: + static const char *GetClassName() { return "AIBuoyList"; } + AIBuoyList(); +}; + + +#endif /* AI_BUOYLIST_HPP */ diff --git a/src/ai/api/ai_buoylist.hpp.sq b/src/ai/api/ai_buoylist.hpp.sq new file mode 100644 index 000000000..b5eb92973 --- /dev/null +++ b/src/ai/api/ai_buoylist.hpp.sq @@ -0,0 +1,21 @@ +/* $Id$ */ +/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */ + +#include "ai_buoylist.hpp" + +namespace SQConvert { + /* Allow AIBuoyList to be used as Squirrel parameter */ + template <> AIBuoyList *GetParam(ForceType<AIBuoyList *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIBuoyList *)instance; } + template <> AIBuoyList &GetParam(ForceType<AIBuoyList &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIBuoyList *)instance; } + template <> const AIBuoyList *GetParam(ForceType<const AIBuoyList *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIBuoyList *)instance; } + template <> const AIBuoyList &GetParam(ForceType<const AIBuoyList &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIBuoyList *)instance; } + template <> int Return<AIBuoyList *>(HSQUIRRELVM vm, AIBuoyList *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIBuoyList", res, NULL, DefSQDestructorCallback<AIBuoyList>); return 1; } +}; // namespace SQConvert + +void SQAIBuoyList_Register(Squirrel *engine) { + DefSQClass <AIBuoyList> SQAIBuoyList("AIBuoyList"); + SQAIBuoyList.PreRegister(engine, "AIAbstractList"); + SQAIBuoyList.AddConstructor<void (AIBuoyList::*)(), 1>(engine, "x"); + + SQAIBuoyList.PostRegister(engine); +} |