Added 'length' to area.
[UnsignedByte.git] / src / DAL / Tables.cpp
blob5560739e6fd0b9755ba9a4e2696fdee2c9333372
1 /***************************************************************************
2 * Copyright (C) 2008 by Sverre Rabbelier *
3 * sverre@rabbelier.nl *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 3 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
21 #include "Tables.h"
22 #include "TableDef.h"
24 Tables::Tables() :
25 ACCOUNTS( new TableDef("Accounts") ),
26 AREAS( new TableDef("Areas") ),
27 BRANCHES( new TableDef("Branches") ),
28 CHANNELS( new TableDef("Channels") ),
29 CHARACTERACCOUNT( new TableDef("CharacterAccount") ),
30 CHARACTERBRANCH( new TableDef("CharacterBranch") ),
31 CHARACTERCLUSTER( new TableDef("CharacterCluster") ),
32 CHARACTERSKILL( new TableDef("CharacterSkill") ),
33 CHARACTERSTAT( new TableDef("CharacterStat") ),
34 CHARACTERTREE( new TableDef("CharacterTree") ),
35 CHUNKS( new TableDef("Chunks") ),
36 CLUSTERS( new TableDef("Clusters") ),
37 COLOURS( new TableDef("Colours") ),
38 COMMANDS( new TableDef("Commands") ),
39 DETAILS( new TableDef("Details") ),
40 DETAILAREA( new TableDef("DetailArea") ),
41 DETAILROOM( new TableDef("DetailRoom") ),
42 DETAILCHUNK( new TableDef("DetailChunk") ),
43 DETAILCHARACTER( new TableDef("DetailCharacter") ),
44 DETAILDETAIL( new TableDef("DetailDetail") ),
45 ECHOS( new TableDef("Echos") ),
46 ENTITIES( new TableDef("Entities") ),
47 EXITROOM( new TableDef("ExitRoom") ),
48 EXITS( new TableDef("Exits") ),
49 GRANTGROUPS( new TableDef("GrantGroups") ),
50 PERMISSIONS( new TableDef("Permissions") ),
51 RACES( new TableDef("Races") ),
52 ROOMS( new TableDef("Rooms") ),
53 SECTORS( new TableDef("Sectors") ),
54 SKILLS( new TableDef("Skills") ),
55 STATS( new TableDef("Stats") ),
56 TRACES( new TableDef("Traces") ),
57 TRACECHUNK( new TableDef("TraceChunk") ),
58 TRACEDETAIL( new TableDef("TraceDetail") ),
59 TRACEENTITY( new TableDef("TraceEntity") ),
60 TRACEROOM( new TableDef("TraceRoom") ),
61 TREES( new TableDef("Trees") ),
62 VERSION( new TableDef("Version") )
64 ACCOUNTS->addPK("accountid");
65 ACCOUNTS->addLookupTextField("name");
66 ACCOUNTS->addTextField("password");
68 AREAS->addPK("areaid");
69 AREAS->addLookupTextField("name");
70 AREAS->addTextField("description");
71 AREAS->addValue("height");
72 AREAS->addValue("width");
73 AREAS->addValue("length");
75 BRANCHES->addPK("branchid");
76 BRANCHES->addLookupTextField("name");
77 BRANCHES->addFK(TREES);
78 BRANCHES->addFK(STATS, "Primary");
79 BRANCHES->addFK(STATS, "Secondary");
81 CHANNELS->addPK("channelid");
82 CHANNELS->addLookupTextField("name");
83 CHANNELS->addTextField("description");
84 CHANNELS->addValue("needLogin", 1);
86 CHARACTERACCOUNT->addFPK(ENTITIES);
87 CHARACTERACCOUNT->addFPK(ACCOUNTS);
89 CHARACTERBRANCH->addFPK(ENTITIES);
90 CHARACTERBRANCH->addFPK(BRANCHES);
91 CHARACTERBRANCH->addValue("xp");
93 CHARACTERCLUSTER->addFPK(ENTITIES);
94 CHARACTERCLUSTER->addFPK(CLUSTERS);
95 CHARACTERCLUSTER->addValue("xp");
97 CHARACTERSKILL->addFPK(ENTITIES);
98 CHARACTERSKILL->addFPK(BRANCHES);
99 CHARACTERSKILL->addValue("xp");
101 CHARACTERSTAT->addFPK(ENTITIES);
102 CHARACTERSTAT->addFPK(STATS);
103 CHARACTERSTAT->addValue("xp");
105 CHARACTERTREE->addFPK(ENTITIES);
106 CHARACTERTREE->addFPK(TREES);
107 CHARACTERTREE->addValue("xp");
109 CHUNKS->addPK("chunkid");
110 CHUNKS->addFK(ROOMS);
111 CHUNKS->addTextField("name");
112 CHUNKS->addTextField("description");
113 CHUNKS->addTextField("tags");
115 CLUSTERS->addPK("clusterid");
116 CLUSTERS->addLookupTextField("name");
118 COLOURS->addPK("colourid");
119 COLOURS->addLookupTextField("name");
120 COLOURS->addLookupTextField("code");
121 COLOURS->addTextField("colourstring");
122 COLOURS->addValue("ansi");
124 COMMANDS->addPK("commandid");
125 COMMANDS->addLookupTextField("name");
126 COMMANDS->addValue("grantgroup", 1);
127 COMMANDS->addValue("highforce", 1);
128 COMMANDS->addValue("force", 1);
129 COMMANDS->addValue("lowforce", 0);
130 COMMANDS->addTextField("help");
132 DETAILS->addPK("detailid");
133 DETAILS->addLookupTextField("key");
134 DETAILS->addTextField("description");
136 DETAILAREA->addFPK(DETAILS);
137 DETAILAREA->addFPK(AREAS);
139 DETAILROOM->addFPK(DETAILS);
140 DETAILROOM->addFPK(ROOMS);
142 DETAILCHUNK->addFPK(DETAILS);
143 DETAILCHUNK->addFPK(CHUNKS);
145 DETAILCHARACTER->addFPK(DETAILS);
146 DETAILCHARACTER->addFPK(ENTITIES);
148 DETAILDETAIL->addFPK(DETAILS, "Primary");
149 DETAILDETAIL->addFPK(DETAILS, "Secondary");
151 ECHOS->addPK("echoid");
152 ECHOS->addTextField("message");
153 ECHOS->addValue("visibility");
154 ECHOS->addValue("audibility");
156 ENTITIES->addPK("entityid");
157 ENTITIES->addFK(RACES);
158 ENTITIES->addFK(ROOMS);
159 ENTITIES->addLookupTextField("name");
160 ENTITIES->addTextField("description");
162 EXITROOM->addFPK(EXITS);
163 EXITROOM->addFPK(ROOMS);
165 EXITS->addPK("exitid");
166 EXITS->addFK(ROOMS);
167 EXITS->addValue("dir");
169 GRANTGROUPS->addPK("grantgroupid");
170 GRANTGROUPS->addLookupTextField("name");
171 GRANTGROUPS->addValue("defaultgrant");
172 GRANTGROUPS->addValue("defaultlog");
173 GRANTGROUPS->addValue("implies");
175 PERMISSIONS->addFPK(ACCOUNTS);
176 PERMISSIONS->addFPK(GRANTGROUPS);
177 PERMISSIONS->addValue("grant");
178 PERMISSIONS->addValue("log");
180 RACES->addPK("raceid");
181 RACES->addLookupTextField("name");
183 ROOMS->addPK("roomid");
184 ROOMS->addTextField("name");
185 ROOMS->addTextField("description");
186 ROOMS->addFK(AREAS);
187 ROOMS->addFK(SECTORS);
188 ROOMS->addValue("width");
189 ROOMS->addValue("length");
190 ROOMS->addValue("height");
192 SECTORS->addPK("sectorid");
193 SECTORS->addLookupTextField("name");
194 SECTORS->addTextField("symbol");
195 SECTORS->addValue("movecost");
196 SECTORS->addValue("water");
198 SKILLS->addPK("skillid");
199 SKILLS->addLookupTextField("name");
200 SKILLS->addFK(BRANCHES);
202 STATS->addPK("statid");
203 STATS->addLookupTextField("name");
204 STATS->addLookupTextField("shortname");
206 TRACES->addPK("traceid");
207 TRACES->addFK(ACCOUNTS);
208 TRACES->addValue("time");
209 TRACES->addTextField("description");
210 TRACES->addTextField("diff");
212 TRACECHUNK->addFPK(TRACES);
213 TRACECHUNK->addFPK(CHUNKS);
215 TRACEDETAIL->addFPK(TRACES);
216 TRACEDETAIL->addFPK(DETAILS);
218 TRACEENTITY->addFPK(TRACES);
219 TRACEENTITY->addFPK(ENTITIES);
221 TRACEROOM->addFPK(TRACES);
222 TRACEROOM->addFPK(ROOMS);
224 TREES->addPK("treeid");
225 TREES->addLookupTextField("name");
226 TREES->addFK(CLUSTERS);
227 TREES->addFK(STATS, "Primary");
228 TREES->addFK(STATS, "Secondary");
230 VERSION->addPK("versionid");
231 VERSION->addTextField("versiontext");
232 VERSION->addValue("major");
233 VERSION->addValue("minor");
234 VERSION->addValue("micro");
236 m_tables.push_back(ACCOUNTS);
237 m_tables.push_back(AREAS);
238 m_tables.push_back(BRANCHES);
239 m_tables.push_back(CHANNELS);
240 m_tables.push_back(CHARACTERACCOUNT);
241 m_tables.push_back(CHARACTERBRANCH);
242 m_tables.push_back(CHARACTERCLUSTER);
243 m_tables.push_back(CHARACTERSKILL);
244 m_tables.push_back(CHARACTERSTAT);
245 m_tables.push_back(CHARACTERTREE);
246 m_tables.push_back(CLUSTERS);
247 m_tables.push_back(CHUNKS);
248 m_tables.push_back(COLOURS);
249 m_tables.push_back(COMMANDS);
250 m_tables.push_back(DETAILS);
251 m_tables.push_back(DETAILAREA);
252 m_tables.push_back(DETAILROOM);
253 m_tables.push_back(DETAILCHUNK);
254 m_tables.push_back(DETAILCHARACTER);
255 m_tables.push_back(DETAILDETAIL);
256 m_tables.push_back(ECHOS);
257 m_tables.push_back(ENTITIES);
258 m_tables.push_back(EXITROOM);
259 m_tables.push_back(EXITS);
260 m_tables.push_back(GRANTGROUPS);
261 m_tables.push_back(PERMISSIONS);
262 m_tables.push_back(RACES);
263 m_tables.push_back(ROOMS);
264 m_tables.push_back(SECTORS);
265 m_tables.push_back(SKILLS);
266 m_tables.push_back(STATS);
267 m_tables.push_back(TRACES);
268 m_tables.push_back(TRACECHUNK);
269 m_tables.push_back(TRACEDETAIL);
270 m_tables.push_back(TRACEENTITY);
271 m_tables.push_back(TRACEROOM);
272 m_tables.push_back(TREES);
273 m_tables.push_back(VERSION);
276 Tables::~Tables()