train_cmd.c
changeset 3926 ea737ba47ba0
parent 3900 2c84ed52709d
child 3928 53fe96558353
equal deleted inserted replaced
3925:80f987b4c2e2 3926:ea737ba47ba0
   165 		}
   165 		}
   166 
   166 
   167 		if (!IsArticulatedPart(u)) {
   167 		if (!IsArticulatedPart(u)) {
   168 			// check if its a powered wagon
   168 			// check if its a powered wagon
   169 			CLRBIT(u->u.rail.flags, VRF_POWEREDWAGON);
   169 			CLRBIT(u->u.rail.flags, VRF_POWEREDWAGON);
       
   170 
       
   171 			/* Check powered wagon / visual effect callback */
       
   172 			if (HASBIT(rvi_u->callbackmask, CBM_WAGON_POWER)) {
       
   173 				uint16 callback = GetVehicleCallback(CBID_TRAIN_WAGON_POWER, 0, 0, u->engine_type, u);
       
   174 
       
   175 				if (callback != CALLBACK_FAILED) u->u.rail.cached_vis_effect = callback;
       
   176 			}
       
   177 
   170 			if ((rvi_v->pow_wag_power != 0) && (rvi_u->flags & RVI_WAGON) && UsesWagonOverride(u)) {
   178 			if ((rvi_v->pow_wag_power != 0) && (rvi_u->flags & RVI_WAGON) && UsesWagonOverride(u)) {
   171 				if (HASBIT(rvi_u->callbackmask, CBM_WAGON_POWER)) {
       
   172 					uint16 callback = GetVehicleCallback(CBID_TRAIN_WAGON_POWER, 0, 0, u->engine_type, u);
       
   173 
       
   174 					if (callback != CALLBACK_FAILED)
       
   175 						u->u.rail.cached_vis_effect = callback;
       
   176 				}
       
   177 
       
   178 				if (u->u.rail.cached_vis_effect < 0x40) {
   179 				if (u->u.rail.cached_vis_effect < 0x40) {
   179 					/* wagon is powered */
   180 					/* wagon is powered */
   180 					SETBIT(u->u.rail.flags, VRF_POWEREDWAGON); // cache 'powered' status
   181 					SETBIT(u->u.rail.flags, VRF_POWEREDWAGON); // cache 'powered' status
   181 				}
   182 				}
   182 			}
   183 			}