mirror of https://github.com/OpenTTD/OpenTTD
(svn r14110) -Fix: desyncs due to bubbles in toyland
parent
5d5cb04297
commit
ef0458c739
|
@ -515,12 +515,6 @@ static const BubbleMovement * const _bubble_movement[] = {
|
||||||
|
|
||||||
static void BubbleTick(Vehicle *v)
|
static void BubbleTick(Vehicle *v)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* Warning: those effects can NOT use Random(), and have to use
|
|
||||||
* InteractiveRandom(), because somehow someone forgot to save
|
|
||||||
* spritenum to the savegame, and so it will cause desyncs in
|
|
||||||
* multiplayer!! (that is: in ToyLand)
|
|
||||||
*/
|
|
||||||
uint et;
|
uint et;
|
||||||
|
|
||||||
v->progress++;
|
v->progress++;
|
||||||
|
@ -536,7 +530,7 @@ static void BubbleTick(Vehicle *v)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (v->u.effect.animation_substate != 0) {
|
if (v->u.effect.animation_substate != 0) {
|
||||||
v->spritenum = GB(InteractiveRandom(), 0, 2) + 1;
|
v->spritenum = GB(Random(), 0, 2) + 1;
|
||||||
} else {
|
} else {
|
||||||
v->spritenum = 6;
|
v->spritenum = 6;
|
||||||
}
|
}
|
||||||
|
@ -554,7 +548,7 @@ static void BubbleTick(Vehicle *v)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (b->y == 4 && b->x == 1) {
|
if (b->y == 4 && b->x == 1) {
|
||||||
if (v->z_pos > 180 || Chance16I(1, 96, InteractiveRandom())) {
|
if (v->z_pos > 180 || Chance16I(1, 96, Random())) {
|
||||||
v->spritenum = 5;
|
v->spritenum = 5;
|
||||||
SndPlayVehicleFx(SND_2F_POP, v);
|
SndPlayVehicleFx(SND_2F_POP, v);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2270,8 +2270,10 @@ static const SaveLoad _special_desc[] = {
|
||||||
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleEffect, animation_state), SLE_UINT16),
|
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleEffect, animation_state), SLE_UINT16),
|
||||||
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleEffect, animation_substate), SLE_UINT8),
|
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleEffect, animation_substate), SLE_UINT8),
|
||||||
|
|
||||||
/* reserve extra space in savegame here. (currently 16 bytes) */
|
SLE_CONDVAR(Vehicle, spritenum, SLE_UINT8, 2, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(16, 2, SL_MAX_VERSION),
|
|
||||||
|
/* reserve extra space in savegame here. (currently 15 bytes) */
|
||||||
|
SLE_CONDNULL(15, 2, SL_MAX_VERSION),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue