diff options
author | truelight <truelight@openttd.org> | 2004-12-12 14:00:25 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2004-12-12 14:00:25 +0000 |
commit | 397bd915a3dd5d606f5ae7f66125ef5e86e481fb (patch) | |
tree | e4e7650b01674332130afe59c7295958de9ad60f /economy.c | |
parent | e027fa76b1a9b5ff48e645f640dac323fcdeff2c (diff) | |
download | openttd-397bd915a3dd5d606f5ae7f66125ef5e86e481fb.tar.xz |
(svn r1023) -Fix: [Network] [ 1083692 ] You can no longer buy out a company in MP
because of the lag between commands (anyway, I hope)
Diffstat (limited to 'economy.c')
-rw-r--r-- | economy.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -1466,6 +1466,8 @@ static void DoAcquireCompany(Player *p) DeletePlayerWindows(pi); } +extern int GetAmountOwnedBy(Player *p, byte owner); + int32 CmdBuyShareInCompany(int x, int y, uint32 flags, uint32 p1, uint32 p2) { Player *p; @@ -1476,6 +1478,13 @@ int32 CmdBuyShareInCompany(int x, int y, uint32 flags, uint32 p1, uint32 p2) SET_EXPENSES_TYPE(EXPENSES_OTHER); p = DEREF_PLAYER(p1); + /* Those lines are here for network-protection (clients can be slow) */ + if (GetAmountOwnedBy(p, OWNER_SPECTATOR) == 0) + return 0; + /* We can not buy out a real player in networking */ + if (GetAmountOwnedBy(p, OWNER_SPECTATOR) == 1 && !p->is_ai) + return 0; + cost = CalculateCompanyValue(p) >> 2; if (flags & DC_EXEC) { b = p->share_owners; |