(svn r13636) [NoAI] -Add: added AIGroupList, to list your groups (Yexo) noai
authortruebrain
Wed, 25 Jun 2008 20:09:47 +0000
branchnoai
changeset 11079 925e3823a101
parent 11078 81b3bb4b6c53
child 11093 c69806443a1c
(svn r13636) [NoAI] -Add: added AIGroupList, to list your groups (Yexo)
projects/openttd_vs80.vcproj
projects/openttd_vs90.vcproj
source.list
src/ai/api/ai_controller.cpp
src/ai/api/ai_grouplist.cpp
src/ai/api/ai_grouplist.hpp
src/ai/api/ai_grouplist.hpp.sq
--- 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);
+}