summaryrefslogtreecommitdiff
path: root/openttd.c
diff options
context:
space:
mode:
authorDarkvater <darkvater@openttd.org>2006-08-14 11:44:19 +0000
committerDarkvater <darkvater@openttd.org>2006-08-14 11:44:19 +0000
commit01cd75cc10a9a9d2cd1687b9914a5e7dfc4888c3 (patch)
tree82c7c2e1fac461511a05bfa1c29cf9eed5fa1d8c /openttd.c
parent4b030f190c93a46e760808faaf9cd719605b02f0 (diff)
downloadopenttd-01cd75cc10a9a9d2cd1687b9914a5e7dfc4888c3.tar.xz
(svn r5886) -Fix [FS#273]: Incomplete removal of player owned property due to lack of money.
Diffstat (limited to 'openttd.c')
-rw-r--r--openttd.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/openttd.c b/openttd.c
index a711a29fa..99951ed92 100644
--- a/openttd.c
+++ b/openttd.c
@@ -771,16 +771,18 @@ void SwitchMode(int new_mode)
case SM_LOAD_SCENARIO: { /* Load scenario from scenario editor */
if (SafeSaveOrLoad(_file_to_saveload.name, _file_to_saveload.mode, GM_EDITOR)) {
- PlayerID i;
+ Player *p;
_opt_ptr = &_opt;
_local_player = OWNER_NONE;
_generating_world = true;
- // delete all players.
- for (i = 0; i != MAX_PLAYERS; i++) {
- ChangeOwnershipOfPlayerItems(i, OWNER_SPECTATOR);
- _players[i].is_active = false;
+ /* Delete all players */
+ FOR_ALL_PLAYERS(p) {
+ if (p->is_active) {
+ ChangeOwnershipOfPlayerItems(p->index, OWNER_SPECTATOR);
+ p->is_active = false;
+ }
}
_generating_world = false;
// delete all stations owned by a player