diff options
author | rubidium <rubidium@openttd.org> | 2009-01-09 09:50:33 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-01-09 09:50:33 +0000 |
commit | 331b8dd7d4c95266aae579171064879d847ea8aa (patch) | |
tree | 47f3329bacefb524923e0d2c068f27c7f21ad964 | |
parent | 729cebda47bfb8385f75bc6ea962c34b25eef0db (diff) | |
download | openttd-331b8dd7d4c95266aae579171064879d847ea8aa.tar.xz |
(svn r14931) -Fix [FS#2512]: the "animation state" of the bubbles was stored in a variable that was not stored in the savegame. Using a variable that gets saved in the savegame solves the desync and makes it a bit clearer.
-rw-r--r-- | src/effectvehicle.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/effectvehicle.cpp b/src/effectvehicle.cpp index 6d97b49c2..62337993c 100644 --- a/src/effectvehicle.cpp +++ b/src/effectvehicle.cpp @@ -514,7 +514,7 @@ static const BubbleMovement * const _bubble_movement[] = { static void BubbleTick(Vehicle *v) { - uint et; + uint anim_state; v->progress++; if ((v->progress & 3) != 0) return; @@ -533,12 +533,12 @@ static void BubbleTick(Vehicle *v) } else { v->spritenum = 6; } - et = 0; + anim_state = 0; } else { - et = v->engine_type + 1; + anim_state = v->u.effect.animation_state + 1; } - const BubbleMovement *b = &_bubble_movement[v->spritenum - 1][et]; + const BubbleMovement *b = &_bubble_movement[v->spritenum - 1][anim_state]; if (b->y == 4 && b->x == 0) { EndVehicleMove(v); @@ -551,21 +551,21 @@ static void BubbleTick(Vehicle *v) v->spritenum = 5; SndPlayVehicleFx(SND_2F_POP, v); } - et = 0; + anim_state = 0; } if (b->y == 4 && b->x == 2) { TileIndex tile; - et++; + anim_state++; SndPlayVehicleFx(SND_31_EXTRACT, v); tile = TileVirtXY(v->x_pos, v->y_pos); if (IsTileType(tile, MP_INDUSTRY) && GetIndustryGfx(tile) == GFX_BUBBLE_CATCHER) AddAnimatedTile(tile); } - v->engine_type = et; - b = &_bubble_movement[v->spritenum - 1][et]; + v->u.effect.animation_state = anim_state; + b = &_bubble_movement[v->spritenum - 1][anim_state]; v->x_pos += b->x; v->y_pos += b->y; |