1
0
Fork 0

(svn r11817) -Codechange: Base vehicle group validity on owner, not name.

release/0.6
peter1138 2008-01-12 13:36:22 +00:00
parent ed727f9a64
commit cbbc53e8f8
2 changed files with 6 additions and 7 deletions

View File

@ -26,7 +26,7 @@ struct Group : PoolItem<Group, GroupID, &_Group_pool> {
bool replace_protection; ///< If set to true, the global autoreplace have no effect on the group bool replace_protection; ///< If set to true, the global autoreplace have no effect on the group
uint16 num_engines[TOTAL_NUM_ENGINES]; ///< Caches the number of engines of each type the player owns (no need to save this) uint16 num_engines[TOTAL_NUM_ENGINES]; ///< Caches the number of engines of each type the player owns (no need to save this)
Group(StringID str = STR_NULL); Group(PlayerID owner = INVALID_PLAYER);
virtual ~Group(); virtual ~Group();
bool IsValid() const; bool IsValid() const;

View File

@ -45,20 +45,20 @@ static inline void UpdateNumEngineGroup(EngineID i, GroupID old_g, GroupID new_g
DEFINE_OLD_POOL_GENERIC(Group, Group) DEFINE_OLD_POOL_GENERIC(Group, Group)
Group::Group(StringID str) Group::Group(PlayerID owner)
{ {
this->string_id = str; this->owner = owner;
} }
Group::~Group() Group::~Group()
{ {
DeleteName(this->string_id); DeleteName(this->string_id);
this->string_id = STR_NULL; this->owner = INVALID_PLAYER;
} }
bool Group::IsValid() const bool Group::IsValid() const
{ {
return this->string_id != STR_NULL; return this->owner != INVALID_PLAYER;
} }
void InitializeGroup(void) void InitializeGroup(void)
@ -93,13 +93,12 @@ CommandCost CmdCreateGroup(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
AutoPtrT<Group> g_auto_delete; AutoPtrT<Group> g_auto_delete;
Group *g = new Group(STR_EMPTY); Group *g = new Group(_current_player);
if (g == NULL) return CMD_ERROR; if (g == NULL) return CMD_ERROR;
g_auto_delete = g; g_auto_delete = g;
if (flags & DC_EXEC) { if (flags & DC_EXEC) {
g->owner = _current_player;
g->replace_protection = false; g->replace_protection = false;
g->vehicle_type = vt; g->vehicle_type = vt;