src/group_cmd.cpp
changeset 7883 7777bca58ae0
parent 7878 70e8283207cd
child 7909 8df54a2839a1
equal deleted inserted replaced
7882:64cdb1d52f16 7883:7777bca58ae0
   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