equal
deleted
inserted
replaced
2 |
2 |
3 /** @file group_cmd.cpp Handling of the engine groups */ |
3 /** @file group_cmd.cpp Handling of the engine groups */ |
4 |
4 |
5 #include "stdafx.h" |
5 #include "stdafx.h" |
6 #include "openttd.h" |
6 #include "openttd.h" |
|
7 #include "variables.h" |
7 #include "functions.h" |
8 #include "functions.h" |
8 #include "player.h" |
9 #include "player.h" |
9 #include "table/strings.h" |
10 #include "table/strings.h" |
10 #include "command.h" |
11 #include "command.h" |
11 #include "vehicle.h" |
12 #include "vehicle.h" |
15 #include "train.h" |
16 #include "train.h" |
16 #include "aircraft.h" |
17 #include "aircraft.h" |
17 #include "string.h" |
18 #include "string.h" |
18 #include "window.h" |
19 #include "window.h" |
19 #include "vehicle_gui.h" |
20 #include "vehicle_gui.h" |
|
21 #include "strings.h" |
20 |
22 |
21 /** |
23 /** |
22 * Update the num engines of a groupID. Decrease the old one and increase the new one |
24 * Update the num engines of a groupID. Decrease the old one and increase the new one |
23 * @note called in SetTrainGroupID and UpdateTrainGroupID |
25 * @note called in SetTrainGroupID and UpdateTrainGroupID |
24 * @param i EngineID we have to update |
26 * @param i EngineID we have to update |
157 } |
159 } |
158 |
160 |
159 return CommandCost(); |
161 return CommandCost(); |
160 } |
162 } |
161 |
163 |
|
164 static bool IsUniqueGroupName(const char *name) |
|
165 { |
|
166 const Group *g; |
|
167 char buf[512]; |
|
168 |
|
169 FOR_ALL_GROUPS(g) { |
|
170 SetDParam(0, g->index); |
|
171 GetString(buf, STR_GROUP_NAME, lastof(buf)); |
|
172 if (strcmp(buf, name) == 0) return false; |
|
173 } |
|
174 |
|
175 return true; |
|
176 } |
162 |
177 |
163 /** |
178 /** |
164 * Rename a group |
179 * Rename a group |
165 * @param tile unused |
180 * @param tile unused |
166 * @param p1 index of array group |
181 * @param p1 index of array group |
171 { |
186 { |
172 if (!IsValidGroupID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR; |
187 if (!IsValidGroupID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR; |
173 |
188 |
174 Group *g = GetGroup(p1); |
189 Group *g = GetGroup(p1); |
175 if (g->owner != _current_player) return CMD_ERROR; |
190 if (g->owner != _current_player) return CMD_ERROR; |
|
191 |
|
192 if (!IsUniqueGroupName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE); |
176 |
193 |
177 /* Create the name */ |
194 /* Create the name */ |
178 StringID str = AllocateName(_cmd_text, 0); |
195 StringID str = AllocateName(_cmd_text, 0); |
179 if (str == STR_NULL) return CMD_ERROR; |
196 if (str == STR_NULL) return CMD_ERROR; |
180 |
197 |