diff -r 550db5cefcc2 -r 8a2d1c2ceb88 src/roadveh_cmd.cpp --- a/src/roadveh_cmd.cpp Wed Jun 27 01:01:16 2007 +0000 +++ b/src/roadveh_cmd.cpp Sat Jul 07 09:20:52 2007 +0000 @@ -85,19 +85,19 @@ TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW }; -int GetRoadVehImage(const Vehicle* v, Direction direction) +int RoadVehicle::GetImage(Direction direction) const { - int img = v->spritenum; + int img = this->spritenum; int image; if (is_custom_sprite(img)) { - image = GetCustomVehicleSprite(v, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(img))); + image = GetCustomVehicleSprite(this, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(img))); if (image != 0) return image; - img = orig_road_vehicle_info[v->engine_type - ROAD_ENGINES_INDEX].image_index; + img = orig_road_vehicle_info[this->engine_type - ROAD_ENGINES_INDEX].image_index; } image = direction + _roadveh_images[img]; - if (v->cargo.Count() >= v->cargo_cap / 2U) image += _roadveh_full_adder[img]; + if (this->cargo.Count() >= this->cargo_cap / 2U) image += _roadveh_full_adder[img]; return image; } @@ -269,7 +269,7 @@ RebuildVehicleLists(); InvalidateWindow(WC_COMPANY, v->owner); if (IsLocalPlayer()) - InvalidateAutoreplaceWindow(VEH_ROAD); // updates the replace Road window + InvalidateAutoreplaceWindow(VEH_ROAD, v->group_id); // updates the replace Road window GetPlayer(_current_player)->num_engines[p1]++; } @@ -555,7 +555,7 @@ void RoadVehicle::MarkDirty() { - this->cur_image = GetRoadVehImage(this, this->direction); + this->cur_image = this->GetImage(this->direction); MarkAllViewportsDirty(this->left_coord, this->top_coord, this->right_coord + 1, this->bottom_coord + 1); } @@ -641,7 +641,7 @@ v->direction = ChangeDir(v->direction, delta[r & 3]); BeginVehicleMove(v); v->UpdateDeltaXY(v->direction); - v->cur_image = GetRoadVehImage(v, v->direction); + v->cur_image = v->GetImage(v->direction); SetRoadVehPosition(v, v->x_pos, v->y_pos); } while ((v = v->next) != NULL); } @@ -1366,7 +1366,7 @@ v->u.road.state = tdir; v->u.road.frame = RVC_DEPOT_START_FRAME; - v->cur_image = GetRoadVehImage(v, v->direction); + v->cur_image = v->GetImage(v->direction); v->UpdateDeltaXY(v->direction); SetRoadVehPosition(v,x,y); @@ -1459,7 +1459,7 @@ if ((IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) && HASBIT(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) { /* Vehicle has just entered a bridge or tunnel */ - v->cur_image = GetRoadVehImage(v, v->direction); + v->cur_image = v->GetImage(v->direction); v->UpdateDeltaXY(v->direction); SetRoadVehPosition(v,gp.x,gp.y); return true; @@ -1574,7 +1574,7 @@ v->cur_speed -= v->cur_speed >> 2; } - v->cur_image = GetRoadVehImage(v, newdir); + v->cur_image = v->GetImage(newdir); v->UpdateDeltaXY(v->direction); RoadZPosAffectSpeed(v, SetRoadVehPosition(v, x, y)); return true; @@ -1614,7 +1614,7 @@ v->cur_speed -= v->cur_speed >> 2; } - v->cur_image = GetRoadVehImage(v, newdir); + v->cur_image = v->GetImage(newdir); v->UpdateDeltaXY(v->direction); RoadZPosAffectSpeed(v, SetRoadVehPosition(v, x, y)); return true; @@ -1656,7 +1656,7 @@ v->cur_speed -= (v->cur_speed >> 2); if (old_dir != v->u.road.state) { /* The vehicle is in a road stop */ - v->cur_image = GetRoadVehImage(v, new_dir); + v->cur_image = v->GetImage(new_dir); v->UpdateDeltaXY(v->direction); SetRoadVehPosition(v, v->x_pos, v->y_pos); /* Note, return here means that the frame counter is not incremented @@ -1776,7 +1776,7 @@ * in a depot or entered a tunnel/bridge */ if (!HASBIT(r, VETS_ENTERED_WORMHOLE)) v->u.road.frame++; - v->cur_image = GetRoadVehImage(v, v->direction); + v->cur_image = v->GetImage(v->direction); v->UpdateDeltaXY(v->direction); RoadZPosAffectSpeed(v, SetRoadVehPosition(v, x, y)); return true; @@ -1829,11 +1829,11 @@ v->cargo.AgeCargo(); } -void RoadVeh_Tick(Vehicle *v) +void RoadVehicle::Tick() { - AgeRoadVehCargo(v); + AgeRoadVehCargo(this); - if (IsRoadVehFront(v)) RoadVehController(v); + if (IsRoadVehFront(this)) RoadVehController(this); } static void CheckIfRoadVehNeedsService(Vehicle *v)