diff --git a/economy.c b/economy.c index 8839d7db14..8e8d8c3b88 100644 --- a/economy.c +++ b/economy.c @@ -589,17 +589,16 @@ static void PlayersGenStatistics(void) FOR_ALL_PLAYERS(p) { if (p->is_active) { - memmove(&p->old_economy, &p->cur_economy, sizeof(p->old_economy)); + memmove(&p->old_economy[1], &p->old_economy[0], sizeof(p->old_economy) - sizeof(p->old_economy[0])); + p->old_economy[0] = p->cur_economy; memset(&p->cur_economy, 0, sizeof(p->cur_economy)); - if (p->num_valid_stat_ent != 24) - p->num_valid_stat_ent++; + if (p->num_valid_stat_ent != 24) p->num_valid_stat_ent++; UpdateCompanyRatingAndValue(p, true); PlayersCheckBankrupt(p); - if (p->block_preview != 0) - p->block_preview--; + if (p->block_preview != 0) p->block_preview--; } } diff --git a/texteff.c b/texteff.c index 6f1f908115..bddbb11a6f 100644 --- a/texteff.c +++ b/texteff.c @@ -324,7 +324,7 @@ void DeleteAnimatedTile(TileIndex tile) for (ti = _animated_tile_list; ti != endof(_animated_tile_list); ti++) { if (tile == *ti) { /* remove the hole */ - memmove(ti, ti + 1, endof(_animated_tile_list) - 1 - ti); + memmove(ti, ti + 1, (lastof(_animated_tile_list) - ti) * sizeof(_animated_tile_list[0])); /* and clear last item */ endof(_animated_tile_list)[-1] = 0; MarkTileDirtyByTile(tile);