--- a/projects/openttd_vs80.vcproj Wed Jun 25 20:08:40 2008 +0000
+++ b/projects/openttd_vs80.vcproj Wed Jun 25 20:09:47 2008 +0000
@@ -2376,6 +2376,10 @@
>
</File>
<File
+ RelativePath=".\..\src\ai\api\ai_grouplist.hpp"
+ >
+ </File>
+ <File
RelativePath=".\..\src\ai\api\ai_industry.hpp"
>
</File>
@@ -2560,6 +2564,10 @@
>
</File>
<File
+ RelativePath=".\..\src\ai\api\ai_grouplist.cpp"
+ >
+ </File>
+ <File
RelativePath=".\..\src\ai\api\ai_industry.cpp"
>
</File>
--- a/projects/openttd_vs90.vcproj Wed Jun 25 20:08:40 2008 +0000
+++ b/projects/openttd_vs90.vcproj Wed Jun 25 20:09:47 2008 +0000
@@ -2373,6 +2373,10 @@
>
</File>
<File
+ RelativePath=".\..\src\ai\api\ai_grouplist.hpp"
+ >
+ </File>
+ <File
RelativePath=".\..\src\ai\api\ai_industry.hpp"
>
</File>
@@ -2557,6 +2561,10 @@
>
</File>
<File
+ RelativePath=".\..\src\ai\api\ai_grouplist.cpp"
+ >
+ </File>
+ <File
RelativePath=".\..\src\ai\api\ai_industry.cpp"
>
</File>
--- a/source.list Wed Jun 25 20:08:40 2008 +0000
+++ b/source.list Wed Jun 25 20:09:47 2008 +0000
@@ -542,6 +542,7 @@
ai/api/ai_execmode.hpp
ai/api/ai_gamesettings.hpp
ai/api/ai_group.hpp
+ai/api/ai_grouplist.hpp
ai/api/ai_industry.hpp
ai/api/ai_industrylist.hpp
ai/api/ai_list.hpp
@@ -589,6 +590,7 @@
ai/api/ai_execmode.cpp
ai/api/ai_gamesettings.cpp
ai/api/ai_group.cpp
+ai/api/ai_grouplist.cpp
ai/api/ai_industry.cpp
ai/api/ai_industrylist.cpp
ai/api/ai_list.cpp
--- a/src/ai/api/ai_controller.cpp Wed Jun 25 20:08:40 2008 +0000
+++ b/src/ai/api/ai_controller.cpp Wed Jun 25 20:09:47 2008 +0000
@@ -40,6 +40,7 @@
#include "ai_execmode.hpp.sq"
#include "ai_gamesettings.hpp.sq"
#include "ai_group.hpp.sq"
+#include "ai_grouplist.hpp.sq"
#include "ai_industry.hpp.sq"
#include "ai_industrylist.hpp.sq"
#include "ai_list.hpp.sq"
@@ -123,6 +124,7 @@
SQAIExecMode_Register(this->engine);
SQAIGameSettings_Register(this->engine);
SQAIGroup_Register(this->engine);
+ SQAIGroupList_Register(this->engine);
SQAIIndustry_Register(this->engine);
SQAIIndustryList_Register(this->engine);
SQAIIndustryList_CargoAccepting_Register(this->engine);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ai/api/ai_grouplist.cpp Wed Jun 25 20:09:47 2008 +0000
@@ -0,0 +1,16 @@
+/* $Id$ */
+
+/** @file ai_grouplist.cpp Implementation of AIGroupList and friends. */
+
+#include "ai_grouplist.hpp"
+#include "../../openttd.h"
+#include "../../player_func.h"
+#include "../../group.h"
+
+AIGroupList::AIGroupList()
+{
+ Group *g;
+ FOR_ALL_GROUPS(g) {
+ if (g->owner == _current_player) this->AddItem(g->index);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ai/api/ai_grouplist.hpp Wed Jun 25 20:09:47 2008 +0000
@@ -0,0 +1,21 @@
+/* $Id$ */
+
+/** @file ai_grouplist.hpp List all the groups (you own). */
+
+#ifndef AI_GROUPLIST_HPP
+#define AI_GROUPLIST_HPP
+
+#include "ai_abstractlist.hpp"
+
+/**
+ * Creates a list of groups of which you are the owner.
+ * @note Neither AIGroup.ALL_GROUP nor AIGroup.DEFAULT_GROUP is in this list.
+ * @ingroup AIList
+ */
+class AIGroupList : public AIAbstractList {
+public:
+ static const char *GetClassName() { return "AIGroupList"; }
+ AIGroupList();
+};
+
+#endif /* AI_GROUPLIST_HPP */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ai/api/ai_grouplist.hpp.sq Wed Jun 25 20:09:47 2008 +0000
@@ -0,0 +1,23 @@
+/* $Id$ */
+/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
+
+#include "ai_grouplist.hpp"
+
+namespace SQConvert {
+ /* Allow AIGroupList to be used as Squirrel parameter */
+ template <> AIGroupList *GetParam(ForceType<AIGroupList *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIGroupList *)instance; }
+ template <> AIGroupList &GetParam(ForceType<AIGroupList &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIGroupList *)instance; }
+ template <> const AIGroupList *GetParam(ForceType<const AIGroupList *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIGroupList *)instance; }
+ template <> const AIGroupList &GetParam(ForceType<const AIGroupList &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIGroupList *)instance; }
+ template <> int Return<AIGroupList *>(HSQUIRRELVM vm, AIGroupList *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIGroupList", res, NULL, DefSQDestructorCallback<AIGroupList>); return 1; }
+}; // namespace SQConvert
+
+void SQAIGroupList_Register(Squirrel *engine) {
+ DefSQClass <AIGroupList> SQAIGroupList("AIGroupList");
+ SQAIGroupList.PreRegister(engine, "AIAbstractList");
+ SQAIGroupList.AddConstructor<void (AIGroupList::*)(), 1>(engine, "x");
+
+ SQAIGroupList.DefSQStaticMethod(engine, &AIGroupList::GetClassName, "GetClassName", 1, "x");
+
+ SQAIGroupList.PostRegister(engine);
+}