# HG changeset patch # User tron # Date 1108223612 0 # Node ID 52782e5cf7c96972f8e76eae80ec963cf3f3d4b2 # Parent 30b35721b218b596a44932a09e32a8282358f254 (svn r1863) Give the effect vehicle type enums more descriptive names and use the enum as parameter type for CreateEffectVehicle*() -Fix: [1116619] Generate the correct smoke type for diesel trains diff -r 30b35721b218 -r 52782e5cf7c9 aircraft_cmd.c --- a/aircraft_cmd.c Sat Feb 12 00:20:46 2005 +0000 +++ b/aircraft_cmd.c Sat Feb 12 15:53:32 2005 +0000 @@ -1057,7 +1057,7 @@ 4 + (r&0xF), 4 + ((r>>4)&0xF), ((r>>8)&0xF), - EV_DEMOLISH); + EV_EXPLOSION_SMALL); } } else if (v->u.air.crashed_counter >= 10000) { // remove rubble of crashed airplane @@ -1108,7 +1108,7 @@ _aircraft_smoke_xy[v->direction], _aircraft_smoke_xy[v->direction + 8], 2, - EV_SMOKE_3 + EV_SMOKE ); } } @@ -1206,7 +1206,7 @@ v->vehstatus |= VS_CRASHED; v->u.air.crashed_counter = 0; - CreateEffectVehicleRel(v, 4, 4, 8, EV_CRASHED_SMOKE); + CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE); InvalidateWindow(WC_VEHICLE_VIEW, v->index); diff -r 30b35721b218 -r 52782e5cf7c9 disaster_cmd.c --- a/disaster_cmd.c Sat Feb 12 00:20:46 2005 +0000 +++ b/disaster_cmd.c Sat Feb 12 15:53:32 2005 +0000 @@ -166,7 +166,7 @@ } if ((v->tick_counter&7)==0) { - CreateEffectVehicleRel(v, 0, -17, 2, EV_SMOKE_3); + CreateEffectVehicleRel(v, 0, -17, 2, EV_SMOKE); } } else if (v->current_order.station == 0) { tile = v->tile; /**/ @@ -219,7 +219,7 @@ SetDisasterVehiclePos(v, x, y, z); if (++v->age == 1) { - CreateEffectVehicleRel(v, 0, 7, 8, EV_CRASHED_SMOKE); + CreateEffectVehicleRel(v, 0, 7, 8, EV_EXPLOSION_LARGE); SndPlayVehicleFx(SND_12_EXPLOSION, v); v->u.disaster.image_override = 0xF42; } else if (v->age == 70) { @@ -232,7 +232,7 @@ -7 + (r&0xF), -7 + (r>>4&0xF), 5 + (r>>8&0x7), - EV_DEMOLISH); + EV_EXPLOSION_SMALL); } } else if (v->age == 350) { v->current_order.station = 3; @@ -323,7 +323,7 @@ // destroy? if (v->age > 50) { - CreateEffectVehicleRel(v, 0, 7, 8, EV_CRASHED_SMOKE); + CreateEffectVehicleRel(v, 0, 7, 8, EV_EXPLOSION_LARGE); SndPlayVehicleFx(SND_12_EXPLOSION, v); DeleteDisasterVeh(v); } @@ -370,7 +370,7 @@ x + (r & 0x3F), y + (r >> 6 & 0x3F), (r >> 12 & 0xF), - EV_DEMOLISH); + EV_EXPLOSION_SMALL); if (++v->age >= 55) v->current_order.station = 3; @@ -441,7 +441,7 @@ x + (r & 0x3F), y + (r >> 6 & 0x3F), (r >> 12 & 0xF), - EV_DEMOLISH); + EV_EXPLOSION_SMALL); if (++v->age >= 55) v->current_order.station = 3; @@ -614,7 +614,7 @@ return; v->current_order.station = 1; - CreateEffectVehicleRel(u, 0, 7, 8, EV_CRASHED_SMOKE); + CreateEffectVehicleRel(u, 0, 7, 8, EV_EXPLOSION_LARGE); SndPlayVehicleFx(SND_12_EXPLOSION, u); DeleteDisasterVeh(u); @@ -625,7 +625,7 @@ v->x_pos-32+(r&0x3F), v->y_pos-32+(r>>5&0x3F), 0, - EV_DEMOLISH); + EV_EXPLOSION_SMALL); } BEGIN_TILE_LOOP(tile,6,6,v->tile - TILE_XY(3,3)) diff -r 30b35721b218 -r 52782e5cf7c9 industry_cmd.c --- a/industry_cmd.c Sat Feb 12 00:20:46 2005 +0000 +++ b/industry_cmd.c Sat Feb 12 15:53:32 2005 +0000 @@ -669,7 +669,7 @@ { TileInfo ti; FindLandscapeHeight(&ti, TileX(tile) * 16, TileY(tile) * 16); - CreateEffectVehicle(ti.x + 15, ti.y + 14, ti.z + 59 + (ti.tileh != 0 ? 8 : 0), EV_INDUSTRYSMOKE); + CreateEffectVehicle(ti.x + 15, ti.y + 14, ti.z + 59 + (ti.tileh != 0 ? 8 : 0), EV_CHIMNEY_SMOKE); } static void MakeIndustryTileBigger(uint tile, byte size) @@ -735,7 +735,7 @@ TileX(tile) * 16 + _tileloop_ind_case_161[dir + 0], TileY(tile) * 16 + _tileloop_ind_case_161[dir + 4], _tileloop_ind_case_161[dir + 8], - EV_INDUSTRY_SMOKE + EV_BUBBLE ); if (v != NULL) @@ -819,7 +819,7 @@ break; case 49: { - CreateEffectVehicleAbove(TileX(tile) * 16 + 6, TileY(tile) * 16 + 6, 43, EV_SMOKE_3); + CreateEffectVehicleAbove(TileX(tile) * 16 + 6, TileY(tile) * 16 + 6, 43, EV_SMOKE); } break; diff -r 30b35721b218 -r 52782e5cf7c9 landscape.c --- a/landscape.c Sat Feb 12 00:20:46 2005 +0000 +++ b/landscape.c Sat Feb 12 15:53:32 2005 +0000 @@ -334,7 +334,9 @@ // draw explosion animation... if ((x==sx || x==ex) && (y==sy || y==ey)) { // big explosion in each corner, or small explosion for single tiles - CreateEffectVehicleAbove(x + 8,y + 8, 2, sy==ey && sx==ex ? EV_DEMOLISH : EV_CRASHED_SMOKE); + CreateEffectVehicleAbove(x + 8, y + 8, 2, + sy == ey && sx == ex ? EV_EXPLOSION_SMALL : EV_EXPLOSION_LARGE + ); } } } diff -r 30b35721b218 -r 52782e5cf7c9 road_cmd.c --- a/road_cmd.c Sat Feb 12 00:20:46 2005 +0000 +++ b/road_cmd.c Sat Feb 12 15:53:32 2005 +0000 @@ -980,7 +980,7 @@ TileX(tile) * 16 + 7, TileY(tile) * 16 + 7, 0, - EV_ROADWORK); + EV_BULLDOZER); MarkTileDirtyByTile(tile); return; } diff -r 30b35721b218 -r 52782e5cf7c9 roadveh_cmd.c --- a/roadveh_cmd.c Sat Feb 12 00:20:46 2005 +0000 +++ b/roadveh_cmd.c Sat Feb 12 15:53:32 2005 +0000 @@ -509,7 +509,7 @@ { v->u.road.crashed_ctr++; if (v->u.road.crashed_ctr == 2) { - CreateEffectVehicleRel(v,4,4,8,EV_CRASHED_SMOKE); + CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE); } else if (v->u.road.crashed_ctr <= 45) { if ((v->tick_counter&7)==0) RoadVehSetRandomDirection(v); diff -r 30b35721b218 -r 52782e5cf7c9 train_cmd.c --- a/train_cmd.c Sat Feb 12 00:20:46 2005 +0000 +++ b/train_cmd.c Sat Feb 12 15:53:32 2005 +0000 @@ -1454,14 +1454,14 @@ case 1: // diesel smoke if (u->cur_speed <= 40 && !IsTileDepotType(v->tile, TRANSPORT_RAIL) && !IsTunnelTile(v->tile) && (uint16)Random() <= 0x1E00) { - CreateEffectVehicleRel(v, 0,0,10, EV_SMOKE_3); + CreateEffectVehicleRel(v, 0, 0, 10, EV_DIESEL_SMOKE); } break; case 2: // blue spark if ( (v->tick_counter&0x3) == 0 && !IsTileDepotType(v->tile, TRANSPORT_RAIL) && !IsTunnelTile(v->tile) && (uint16)Random() <= 0x5B0) { - CreateEffectVehicleRel(v, 0,0,10, EV_SMOKE_2); + CreateEffectVehicleRel(v, 0, 0, 10, EV_ELECTRIC_SPARK); } break; } @@ -2658,7 +2658,7 @@ Vehicle *u; if ( (state == 4) && (v->u.rail.track != 0x40) ) { - CreateEffectVehicleRel(v, 4, 4, 8, EV_CRASHED_SMOKE); + CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE); } if (state <= 200 && (uint16)(r=Random()) <= 0x2492) { @@ -2673,7 +2673,7 @@ 2 + ((r>>8)&7), 2 + ((r>>16)&7), 5 + (r&7), - EV_DEMOLISH); + EV_EXPLOSION_SMALL); break; } } while ( (u=u->next) != NULL); diff -r 30b35721b218 -r 52782e5cf7c9 vehicle.c --- a/vehicle.c Sat Feb 12 00:20:46 2005 +0000 +++ b/vehicle.c Sat Feb 12 15:53:32 2005 +0000 @@ -1104,7 +1104,7 @@ }; -Vehicle *CreateEffectVehicle(int x, int y, int z, int type) +Vehicle *CreateEffectVehicle(int x, int y, int z, EffectVehicle type) { Vehicle *v; @@ -1129,12 +1129,12 @@ return v; } -Vehicle *CreateEffectVehicleAbove(int x, int y, int z, int type) +Vehicle *CreateEffectVehicleAbove(int x, int y, int z, EffectVehicle type) { return CreateEffectVehicle(x, y, GetSlopeZ(x, y) + z, type); } -Vehicle *CreateEffectVehicleRel(Vehicle *v, int x, int y, int z, int type) +Vehicle *CreateEffectVehicleRel(const Vehicle *v, int x, int y, int z, EffectVehicle type) { return CreateEffectVehicle(v->x_pos + x, v->y_pos + y, v->z_pos + z, type); } diff -r 30b35721b218 -r 52782e5cf7c9 vehicle.h --- a/vehicle.h Sat Feb 12 00:20:46 2005 +0000 +++ b/vehicle.h Sat Feb 12 15:53:32 2005 +0000 @@ -238,23 +238,18 @@ }; /* Effect vehicle types */ -enum { - EV_INDUSTRYSMOKE = 0, - EV_STEAM_SMOKE = 1, - - EV_SMOKE_1 = 2, - EV_SMOKE_2 = 3, - EV_SMOKE_3 = 4, - - EV_CRASHED_SMOKE = 5, +typedef enum EffectVehicle { + EV_CHIMNEY_SMOKE = 0, + EV_STEAM_SMOKE = 1, + EV_DIESEL_SMOKE = 2, + EV_ELECTRIC_SPARK = 3, + EV_SMOKE = 4, + EV_EXPLOSION_LARGE = 5, EV_BREAKDOWN_SMOKE = 6, - - EV_DEMOLISH = 7, - EV_ROADWORK = 8, - - EV_INDUSTRY_SMOKE = 9, - -}; + EV_EXPLOSION_SMALL = 7, + EV_BULLDOZER = 8, + EV_BUBBLE = 9 +} EffectVehicle; typedef void VehicleTickProc(Vehicle *v); typedef void *VehicleFromPosProc(Vehicle *v, void *data); @@ -295,9 +290,9 @@ int GetRoadVehImage(Vehicle *v, byte direction); int GetShipImage(Vehicle *v, byte direction); -Vehicle *CreateEffectVehicle(int x, int y, int z, int type); -Vehicle *CreateEffectVehicleAbove(int x, int y, int z, int type); -Vehicle *CreateEffectVehicleRel(Vehicle *v, int x, int y, int z, int type); +Vehicle *CreateEffectVehicle(int x, int y, int z, EffectVehicle type); +Vehicle *CreateEffectVehicleAbove(int x, int y, int z, EffectVehicle type); +Vehicle *CreateEffectVehicleRel(const Vehicle *v, int x, int y, int z, EffectVehicle type); uint32 VehicleEnterTile(Vehicle *v, uint tile, int x, int y); diff -r 30b35721b218 -r 52782e5cf7c9 water_cmd.c --- a/water_cmd.c Sat Feb 12 00:20:46 2005 +0000 +++ b/water_cmd.c Sat Feb 12 15:53:32 2005 +0000 @@ -601,7 +601,7 @@ NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ACCIDENT, 0), v->index, 0); - CreateEffectVehicleRel(v,4,4,8,EV_CRASHED_SMOKE); // show cool destruction effects + CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE); // show cool destruction effects SndPlayVehicleFx(SND_12_EXPLOSION, v); // create sound } }