1
0
Fork 0

(svn r5841) -Fix r5794: use the height of the edge of the map for shadows of disasters that are outside the map

release/0.5
rubidium 2006-08-11 09:42:12 +00:00
parent 811e79ba4c
commit bdb64325fd
1 changed files with 5 additions and 3 deletions

View File

@ -116,7 +116,6 @@ static void DeleteDisasterVeh(Vehicle *v)
static void SetDisasterVehiclePos(Vehicle *v, int x, int y, byte z) static void SetDisasterVehiclePos(Vehicle *v, int x, int y, byte z)
{ {
Vehicle *u; Vehicle *u;
int yt;
BeginVehicleMove(v); BeginVehicleMove(v);
v->x_pos = x; v->x_pos = x;
@ -129,11 +128,14 @@ static void SetDisasterVehiclePos(Vehicle *v, int x, int y, byte z)
EndVehicleMove(v); EndVehicleMove(v);
if ( (u=v->next) != NULL) { if ( (u=v->next) != NULL) {
int safe_x = clamp(x, 0, MapMaxX() * TILE_SIZE);
int safe_y = clamp(y - 1, 0, MapMaxY() * TILE_SIZE);
BeginVehicleMove(u); BeginVehicleMove(u);
u->x_pos = x; u->x_pos = x;
u->y_pos = yt = y - 1 - (max(z - GetSlopeZ(x, y-1), 0) >> 3); u->y_pos = y - 1 - (max(z - GetSlopeZ(safe_x, safe_y), 0) >> 3);
u->z_pos = GetSlopeZ(x,yt); safe_y = clamp(u->y_pos, 0, MapMaxY() * TILE_SIZE);
u->z_pos = GetSlopeZ(safe_x, safe_y);
u->direction = v->direction; u->direction = v->direction;
DisasterVehicleUpdateImage(u); DisasterVehicleUpdateImage(u);