src/group_cmd.cpp
branchnoai
changeset 9631 8a2d1c2ceb88
parent 9629 66dde6412125
child 9641 855e32c08c9b
equal deleted inserted replaced
9630:550db5cefcc2 9631:8a2d1c2ceb88
     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