src/group_cmd.cpp
changeset 7387 c81fff74048b
parent 7382 721b2d81ce91
child 7413 a590f7f0edb3
equal deleted inserted replaced
7386:93f6a042d1c3 7387:c81fff74048b
   356  * @note Called in CmdSellRailWagon and DeleteLasWagon,
   356  * @note Called in CmdSellRailWagon and DeleteLasWagon,
   357  * @param v     FrontEngine of the train we want to remove.
   357  * @param v     FrontEngine of the train we want to remove.
   358  */
   358  */
   359 void RemoveVehicleFromGroup(const Vehicle *v)
   359 void RemoveVehicleFromGroup(const Vehicle *v)
   360 {
   360 {
   361 	if (!IsValidVehicle(v) || !(v->HasFront() && v->IsPrimaryVehicle())) return;
   361 	if (!v->IsValid() || !(v->HasFront() && v->IsPrimaryVehicle())) return;
   362 
   362 
   363 	if (!IsDefaultGroupID(v->group_id)) DecreaseGroupNumVehicle(v->group_id);
   363 	if (!IsDefaultGroupID(v->group_id)) DecreaseGroupNumVehicle(v->group_id);
   364 }
   364 }
   365 
   365 
   366 
   366 
   372  */
   372  */
   373 void SetTrainGroupID(Vehicle *v, GroupID new_g)
   373 void SetTrainGroupID(Vehicle *v, GroupID new_g)
   374 {
   374 {
   375 	if (!IsValidGroupID(new_g) && !IsDefaultGroupID(new_g)) return;
   375 	if (!IsValidGroupID(new_g) && !IsDefaultGroupID(new_g)) return;
   376 
   376 
   377 	assert(IsValidVehicle(v) && v->type == VEH_TRAIN && IsFrontEngine(v));
   377 	assert(v->IsValid() && v->type == VEH_TRAIN && IsFrontEngine(v));
   378 
   378 
   379 	for (Vehicle *u = v; u != NULL; u = u->next) {
   379 	for (Vehicle *u = v; u != NULL; u = u->next) {
   380 		if (IsEngineCountable(u)) UpdateNumEngineGroup(u->engine_type, u->group_id, new_g);
   380 		if (IsEngineCountable(u)) UpdateNumEngineGroup(u->engine_type, u->group_id, new_g);
   381 
   381 
   382 		u->group_id = new_g;
   382 		u->group_id = new_g;
   394  * @note Called in CmdBuildRailVehicle, CmdBuildRailWagon, CmdMoveRailVehicle, CmdSellRailWagon
   394  * @note Called in CmdBuildRailVehicle, CmdBuildRailWagon, CmdMoveRailVehicle, CmdSellRailWagon
   395  * @param v First vehicle of the chain.
   395  * @param v First vehicle of the chain.
   396  */
   396  */
   397 void UpdateTrainGroupID(Vehicle *v)
   397 void UpdateTrainGroupID(Vehicle *v)
   398 {
   398 {
   399 	assert(IsValidVehicle(v) && v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v)));
   399 	assert(v->IsValid() && v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v)));
   400 
   400 
   401 	GroupID new_g = IsFrontEngine(v) ? v->group_id : (GroupID)DEFAULT_GROUP;
   401 	GroupID new_g = IsFrontEngine(v) ? v->group_id : (GroupID)DEFAULT_GROUP;
   402 	for (Vehicle *u = v; u != NULL; u = u->next) {
   402 	for (Vehicle *u = v; u != NULL; u = u->next) {
   403 		if (IsEngineCountable(u)) UpdateNumEngineGroup(u->engine_type, u->group_id, new_g);
   403 		if (IsEngineCountable(u)) UpdateNumEngineGroup(u->engine_type, u->group_id, new_g);
   404 
   404