author | rubidium |
Wed, 19 Sep 2007 16:36:42 +0000 | |
changeset 7601 | 988040ee27f4 |
parent 7582 | 80c8517b08d1 |
child 7795 | 8ce3c983c7a3 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
3 |
/** @file unmovable_cmd.cpp */ |
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
4 |
|
0 | 5 |
#include "stdafx.h" |
1891
862800791170
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1796
diff
changeset
|
6 |
#include "openttd.h" |
507
04b5403aaf6b
(svn r815) Include strings.h only in the files which need it.
tron
parents:
497
diff
changeset
|
7 |
#include "table/strings.h" |
2148
542ea702738c
(svn r2658) -Codechange: Use MAKE_TRANSPARENT to display a transparented sprite
celestar
parents:
2051
diff
changeset
|
8 |
#include "table/sprites.h" |
2163
b17b313113a0
(svn r2673) Include functions.h directly, not globally via openttd.h
tron
parents:
2159
diff
changeset
|
9 |
#include "functions.h" |
6453
226bcddeba32
(svn r9609) -Codechange: Move some function prototypes out of functions.h and into landscape.h, and add a few where they didn't exist.
maedhros
parents:
6427
diff
changeset
|
10 |
#include "landscape.h" |
679
04ca2cd69420
(svn r1117) Move map arrays and some related macros into their own files map.c and map.h
tron
parents:
507
diff
changeset
|
11 |
#include "map.h" |
1209
2e00193652b2
(svn r1713) Split off several functions which query/set information about a single tile from map.h and put them into a seperate file tile.h
tron
parents:
1202
diff
changeset
|
12 |
#include "tile.h" |
0 | 13 |
#include "command.h" |
14 |
#include "viewport.h" |
|
15 |
#include "player.h" |
|
16 |
#include "gui.h" |
|
384
809833b4068d
(svn r576) -newgrf: Cleanup horrible table/(station|unmovable)_land.h DrawTileSeqStruct hacks needed for custom station supports (pasky)
darkvater
parents:
222
diff
changeset
|
17 |
#include "station.h" |
0 | 18 |
#include "economy.h" |
19 |
#include "town.h" |
|
405
415546028e8d
(svn r602) -newgrf: Move DrawTileSeqStruct & co and struct SpriteGroup to sprite.h (pasky)
darkvater
parents:
384
diff
changeset
|
20 |
#include "sprite.h" |
7202
dc312a87f450
(svn r10480) -Fix: Don't allow building lighthouses and transmitters under bridges in the scenario editor, or during world generation.
maedhros
parents:
6953
diff
changeset
|
21 |
#include "bridge_map.h" |
3310
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
22 |
#include "unmovable_map.h" |
2159
f6284cf5fab0
(svn r2669) Shuffle some more stuff around to reduce dependencies
tron
parents:
2150
diff
changeset
|
23 |
#include "variables.h" |
3654
c09872510a61
(svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents:
3645
diff
changeset
|
24 |
#include "table/unmovable_land.h" |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
25 |
#include "genworld.h" |
6160
fa42299e967e
(svn r8908) -Codechange: declaration of DrawBridgeMiddle does not belong in a map accessors header.
rubidium
parents:
5668
diff
changeset
|
26 |
#include "bridge.h" |
7582
80c8517b08d1
(svn r11107) -Feature: some tool so one can still build tunnels under rails (and other structures) when the owner of the structure built it on foundations and if you have enough "empty" space ofcourse. One could use the tool for some other construction needs too. Patch by frosch.
rubidium
parents:
7549
diff
changeset
|
27 |
#include "autoslope.h" |
0 | 28 |
|
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
29 |
/** Destroy a HQ. |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
30 |
* During normal gameplay you can only implicitely destroy a HQ when you are |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
31 |
* rebuilding it. Otherwise, only water can destroy it. |
6484
79156627e1ba
(svn r9665) -Documentation: Doxygen corrections,errors, corrections of corrections...
belugas
parents:
6453
diff
changeset
|
32 |
* @param pid Player requesting the destruction of his HQ |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
33 |
* @param flags docommand flags of calling function |
6484
79156627e1ba
(svn r9665) -Documentation: Doxygen corrections,errors, corrections of corrections...
belugas
parents:
6453
diff
changeset
|
34 |
* @return cost of the operation |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
35 |
*/ |
6943
1914f26aee04
(svn r10197) -Codechange: replace int32 with CommandCost where appropriate.
rubidium
parents:
6720
diff
changeset
|
36 |
static CommandCost DestroyCompanyHQ(PlayerID pid, uint32 flags) |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
37 |
{ |
4060
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
38 |
Player* p = GetPlayer(pid); |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
39 |
|
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
40 |
SET_EXPENSES_TYPE(EXPENSES_PROPERTY); |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
41 |
|
4060
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
42 |
if (flags & DC_EXEC) { |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
43 |
TileIndex t = p->location_of_house; |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
44 |
|
4060
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
45 |
DoClearSquare(t + TileDiffXY(0, 0)); |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
46 |
DoClearSquare(t + TileDiffXY(0, 1)); |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
47 |
DoClearSquare(t + TileDiffXY(1, 0)); |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
48 |
DoClearSquare(t + TileDiffXY(1, 1)); |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
49 |
p->location_of_house = 0; // reset HQ position |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
50 |
InvalidateWindow(WC_COMPANY, pid); |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
51 |
} |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
52 |
|
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
53 |
/* cost of relocating company is 1% of company value */ |
6953
230d1e3ac86c
(svn r10208) -Codechange: replace int32 with Money where appropriate.
rubidium
parents:
6950
diff
changeset
|
54 |
return CommandCost(CalculateCompanyValue(p) / 100); |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
55 |
} |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
56 |
|
3386
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
57 |
void UpdateCompanyHQ(Player *p, uint score) |
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
58 |
{ |
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
59 |
byte val; |
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
60 |
TileIndex tile = p->location_of_house; |
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
61 |
|
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
62 |
if (tile == 0) return; |
3386
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
63 |
|
3388
e94795a55f13
(svn r4196) -Codechange: Add and make use of an accessor that modifies the size of the Company HQ
celestar
parents:
3386
diff
changeset
|
64 |
(val = 0, score < 170) || |
e94795a55f13
(svn r4196) -Codechange: Add and make use of an accessor that modifies the size of the Company HQ
celestar
parents:
3386
diff
changeset
|
65 |
(val++, score < 350) || |
e94795a55f13
(svn r4196) -Codechange: Add and make use of an accessor that modifies the size of the Company HQ
celestar
parents:
3386
diff
changeset
|
66 |
(val++, score < 520) || |
e94795a55f13
(svn r4196) -Codechange: Add and make use of an accessor that modifies the size of the Company HQ
celestar
parents:
3386
diff
changeset
|
67 |
(val++, score < 720) || |
e94795a55f13
(svn r4196) -Codechange: Add and make use of an accessor that modifies the size of the Company HQ
celestar
parents:
3386
diff
changeset
|
68 |
(val++, true); |
3386
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
69 |
|
3388
e94795a55f13
(svn r4196) -Codechange: Add and make use of an accessor that modifies the size of the Company HQ
celestar
parents:
3386
diff
changeset
|
70 |
EnlargeCompanyHQ(tile, val); |
3386
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
71 |
|
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
72 |
MarkTileDirtyByTile(tile + TileDiffXY(0, 0)); |
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
73 |
MarkTileDirtyByTile(tile + TileDiffXY(0, 1)); |
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
74 |
MarkTileDirtyByTile(tile + TileDiffXY(1, 0)); |
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
75 |
MarkTileDirtyByTile(tile + TileDiffXY(1, 1)); |
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
76 |
} |
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
77 |
|
6943
1914f26aee04
(svn r10197) -Codechange: replace int32 with CommandCost where appropriate.
rubidium
parents:
6720
diff
changeset
|
78 |
extern CommandCost CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invalid_dirs, StationID* station, bool check_clear = true); |
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
79 |
|
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
80 |
/** Build or relocate the HQ. This depends if the HQ is already built or not |
3491
35d747bb5e82
(svn r4342) Change the first two parameters of commands - virtual pixel coordinates of the tile to operate on - to a TileIndex
tron
parents:
3427
diff
changeset
|
81 |
* @param tile tile where the HQ will be built or relocated to |
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
82 |
* @param flags type of operation |
2473
37fb41e00282
(svn r2999) Do not pass if the HQ gets built for the first time or gets relocated as parameter - the command function has to check this anyway
tron
parents:
2436
diff
changeset
|
83 |
* @param p1 unused |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
84 |
* @param p2 unused |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
85 |
*/ |
6943
1914f26aee04
(svn r10197) -Codechange: replace int32 with CommandCost where appropriate.
rubidium
parents:
6720
diff
changeset
|
86 |
CommandCost CmdBuildCompanyHQ(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
87 |
{ |
1962
8254df1b359b
(svn r2468) -Codechange: Got rid of DEREF_PLAYER and replaced it by GetPlayer
celestar
parents:
1902
diff
changeset
|
88 |
Player *p = GetPlayer(_current_player); |
6943
1914f26aee04
(svn r10197) -Codechange: replace int32 with CommandCost where appropriate.
rubidium
parents:
6720
diff
changeset
|
89 |
CommandCost cost; |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
90 |
|
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
91 |
SET_EXPENSES_TYPE(EXPENSES_PROPERTY); |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
92 |
|
6950
14ecb0acdfb4
(svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium
parents:
6943
diff
changeset
|
93 |
cost = CheckFlatLandBelow(tile, 2, 2, flags, 0, NULL); |
14ecb0acdfb4
(svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium
parents:
6943
diff
changeset
|
94 |
if (CmdFailed(cost)) return cost; |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
95 |
|
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
96 |
if (p->location_of_house != 0) { // Moving HQ |
6950
14ecb0acdfb4
(svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium
parents:
6943
diff
changeset
|
97 |
cost.AddCost(DestroyCompanyHQ(_current_player, flags)); |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
98 |
} |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
99 |
|
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
100 |
if (flags & DC_EXEC) { |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
101 |
int score = UpdateCompanyRatingAndValue(p, false); |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
102 |
|
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
103 |
p->location_of_house = tile; |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
104 |
|
3385
18e4ca6d3ef4
(svn r4193) -Codechange: Add and make use of an accessor function to create company HQs
celestar
parents:
3310
diff
changeset
|
105 |
MakeCompanyHQ(tile, _current_player); |
18e4ca6d3ef4
(svn r4193) -Codechange: Add and make use of an accessor function to create company HQs
celestar
parents:
3310
diff
changeset
|
106 |
|
3386
6d088afdabf4
(svn r4194) -Codechange: Renamed UpdatePlayerHouse to UpdateCompanyHQ because the rest of the code calls it Comapany HQ. Moved it to unmovable_cmd.c because CompanyHQ is an unmovable and has nothing to do with economy.
celestar
parents:
3385
diff
changeset
|
107 |
UpdateCompanyHQ(p, score); |
3017
a75caf4efa2d
(svn r3597) Miscellaneous (I like that word) changes: Fix some indentation, add consts, reduce indentation level by short-circuit logic, convert if cascades to switch, whitespace, bracing, plus some minor stuff
tron
parents:
2951
diff
changeset
|
108 |
InvalidateWindow(WC_COMPANY, p->index); |
1796
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
109 |
} |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
110 |
|
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
111 |
return cost; |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
112 |
} |
614d996f6be7
(svn r2300) - CodeChange: check the last number of commands, now only the refit ones remain, and some server-only commands.
Darkvater
parents:
1792
diff
changeset
|
113 |
|
7549
53483e249123
(svn r11069) -Codechange: allow slopes under statues. Patch by kaan.
rubidium
parents:
7494
diff
changeset
|
114 |
static Foundation GetFoundation_Unmovable(TileIndex tile, Slope tileh); |
53483e249123
(svn r11069) -Codechange: allow slopes under statues. Patch by kaan.
rubidium
parents:
7494
diff
changeset
|
115 |
|
0 | 116 |
static void DrawTile_Unmovable(TileInfo *ti) |
117 |
{ |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
160
diff
changeset
|
118 |
|
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
119 |
switch (GetUnmovableType(ti->tile)) { |
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
120 |
case UNMOVABLE_TRANSMITTER: |
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
121 |
case UNMOVABLE_LIGHTHOUSE: { |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
122 |
const DrawTileUnmovableStruct* dtus; |
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
123 |
|
7335
141c6b86ec1f
(svn r10698) -Codechange [FS#1082]: simplify the code related to foundations. Primarily removal of (duplicated|magic) code and introduction of few helper functions to ease foundation determination. Patch by frosch.
rubidium
parents:
7333
diff
changeset
|
124 |
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED); |
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
125 |
DrawClearLandTile(ti, 2); |
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
126 |
|
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
127 |
dtus = &_draw_tile_unmovable_data[GetUnmovableType(ti->tile)]; |
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
128 |
|
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
129 |
AddSortableSpriteToDraw( |
7333
e48228e44be8
(svn r10696) -Codechange: remove duplication of the "make sprite transparent" code.
rubidium
parents:
7202
diff
changeset
|
130 |
dtus->image, PAL_NONE, ti->x | dtus->subcoord_x, ti->y | dtus->subcoord_y, |
e48228e44be8
(svn r10696) -Codechange: remove duplication of the "make sprite transparent" code.
rubidium
parents:
7202
diff
changeset
|
131 |
dtus->width, dtus->height, dtus->z_size, ti->z, |
e48228e44be8
(svn r10696) -Codechange: remove duplication of the "make sprite transparent" code.
rubidium
parents:
7202
diff
changeset
|
132 |
HASBIT(_transparent_opt, TO_STRUCTURES) |
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
133 |
); |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
134 |
break; |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
135 |
} |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
136 |
|
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
137 |
case UNMOVABLE_STATUE: |
7549
53483e249123
(svn r11069) -Codechange: allow slopes under statues. Patch by kaan.
rubidium
parents:
7494
diff
changeset
|
138 |
/* This should prevent statues from sinking into the ground when on a slope. */ |
53483e249123
(svn r11069) -Codechange: allow slopes under statues. Patch by kaan.
rubidium
parents:
7494
diff
changeset
|
139 |
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, GetFoundation_Unmovable(ti->tile, ti->tileh)); |
53483e249123
(svn r11069) -Codechange: allow slopes under statues. Patch by kaan.
rubidium
parents:
7494
diff
changeset
|
140 |
|
5668
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5601
diff
changeset
|
141 |
DrawGroundSprite(SPR_CONCRETE_GROUND, PAL_NONE); |
0 | 142 |
|
7333
e48228e44be8
(svn r10696) -Codechange: remove duplication of the "make sprite transparent" code.
rubidium
parents:
7202
diff
changeset
|
143 |
AddSortableSpriteToDraw(SPR_STATUE_COMPANY, PLAYER_SPRITE_COLOR(GetTileOwner(ti->tile)), ti->x, ti->y, 16, 16, 25, ti->z, HASBIT(_transparent_opt, TO_STRUCTURES)); |
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
144 |
break; |
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
145 |
|
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
146 |
case UNMOVABLE_OWNED_LAND: |
0 | 147 |
DrawClearLandTile(ti, 0); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
160
diff
changeset
|
148 |
|
0 | 149 |
AddSortableSpriteToDraw( |
7333
e48228e44be8
(svn r10696) -Codechange: remove duplication of the "make sprite transparent" code.
rubidium
parents:
7202
diff
changeset
|
150 |
SPR_BOUGHT_LAND, PLAYER_SPRITE_COLOR(GetTileOwner(ti->tile)), |
7601
988040ee27f4
(svn r11128) -Fix: a lot of graphical glitches by changing some bounding boxes. It's not perfect yet, but a *very* good step into the right direction. Patch by frosch.
rubidium
parents:
7582
diff
changeset
|
151 |
ti->x + TILE_SIZE / 2, ti->y + TILE_SIZE / 2, 1, 1, BB_HEIGHT_UNDER_BRIDGE, GetSlopeZ(ti->x + TILE_SIZE / 2, ti->y + TILE_SIZE / 2) |
0 | 152 |
); |
5385
3868f2e6db9b
(svn r7573) -Merged the bridge branch. Allows to build bridges of arbitrary rail/road combinations (including signals)
celestar
parents:
4848
diff
changeset
|
153 |
DrawBridgeMiddle(ti); |
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
154 |
break; |
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
155 |
|
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
156 |
default: { |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
157 |
const DrawTileSeqStruct* dtss; |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
158 |
const DrawTileSprites* t; |
5668
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5601
diff
changeset
|
159 |
SpriteID palette; |
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
160 |
|
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
161 |
assert(IsCompanyHQ(ti->tile)); |
7335
141c6b86ec1f
(svn r10698) -Codechange [FS#1082]: simplify the code related to foundations. Primarily removal of (duplicated|magic) code and introduction of few helper functions to ease foundation determination. Patch by frosch.
rubidium
parents:
7333
diff
changeset
|
162 |
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED); |
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
163 |
|
5668
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5601
diff
changeset
|
164 |
palette = PLAYER_SPRITE_COLOR(GetTileOwner(ti->tile)); |
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
165 |
|
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
166 |
t = &_unmovable_display_datas[GetCompanyHQSection(ti->tile)]; |
5668
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5601
diff
changeset
|
167 |
DrawGroundSprite(t->ground_sprite, palette); |
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
168 |
|
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
169 |
foreach_draw_tile_seq(dtss, t->seq) { |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
170 |
AddSortableSpriteToDraw( |
7333
e48228e44be8
(svn r10696) -Codechange: remove duplication of the "make sprite transparent" code.
rubidium
parents:
7202
diff
changeset
|
171 |
dtss->image, palette, |
4230
f4e93251e2f6
(svn r5787) Rename width, height and unk of struct DrawTileSeqStruct to size_{x,y,z}
tron
parents:
4083
diff
changeset
|
172 |
ti->x + dtss->delta_x, ti->y + dtss->delta_y, |
f4e93251e2f6
(svn r5787) Rename width, height and unk of struct DrawTileSeqStruct to size_{x,y,z}
tron
parents:
4083
diff
changeset
|
173 |
dtss->size_x, dtss->size_y, |
7333
e48228e44be8
(svn r10696) -Codechange: remove duplication of the "make sprite transparent" code.
rubidium
parents:
7202
diff
changeset
|
174 |
dtss->size_z, ti->z + dtss->delta_z, |
e48228e44be8
(svn r10696) -Codechange: remove duplication of the "make sprite transparent" code.
rubidium
parents:
7202
diff
changeset
|
175 |
HASBIT(_transparent_opt, TO_STRUCTURES) |
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
176 |
); |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
177 |
} |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
178 |
break; |
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4060
diff
changeset
|
179 |
} |
0 | 180 |
} |
181 |
} |
|
182 |
||
4231
2823b3643862
(svn r5794) Pass the TileIndex plus x and y coordinates into GetSlopeZ_* instead of a TileInfo
tron
parents:
4230
diff
changeset
|
183 |
static uint GetSlopeZ_Unmovable(TileIndex tile, uint x, uint y) |
0 | 184 |
{ |
4231
2823b3643862
(svn r5794) Pass the TileIndex plus x and y coordinates into GetSlopeZ_* instead of a TileInfo
tron
parents:
4230
diff
changeset
|
185 |
if (IsOwnedLand(tile)) { |
2823b3643862
(svn r5794) Pass the TileIndex plus x and y coordinates into GetSlopeZ_* instead of a TileInfo
tron
parents:
4230
diff
changeset
|
186 |
uint z; |
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5584
diff
changeset
|
187 |
Slope tileh = GetTileSlope(tile, &z); |
4231
2823b3643862
(svn r5794) Pass the TileIndex plus x and y coordinates into GetSlopeZ_* instead of a TileInfo
tron
parents:
4230
diff
changeset
|
188 |
|
2823b3643862
(svn r5794) Pass the TileIndex plus x and y coordinates into GetSlopeZ_* instead of a TileInfo
tron
parents:
4230
diff
changeset
|
189 |
return z + GetPartialZ(x & 0xF, y & 0xF, tileh); |
3282
d026008a8f7c
(svn r3996) -Fix: Slope and height information returned for some tile types is wrong
tron
parents:
3183
diff
changeset
|
190 |
} else { |
4231
2823b3643862
(svn r5794) Pass the TileIndex plus x and y coordinates into GetSlopeZ_* instead of a TileInfo
tron
parents:
4230
diff
changeset
|
191 |
return GetTileMaxZ(tile); |
3282
d026008a8f7c
(svn r3996) -Fix: Slope and height information returned for some tile types is wrong
tron
parents:
3183
diff
changeset
|
192 |
} |
0 | 193 |
} |
194 |
||
7335
141c6b86ec1f
(svn r10698) -Codechange [FS#1082]: simplify the code related to foundations. Primarily removal of (duplicated|magic) code and introduction of few helper functions to ease foundation determination. Patch by frosch.
rubidium
parents:
7333
diff
changeset
|
195 |
static Foundation GetFoundation_Unmovable(TileIndex tile, Slope tileh) |
39 | 196 |
{ |
7335
141c6b86ec1f
(svn r10698) -Codechange [FS#1082]: simplify the code related to foundations. Primarily removal of (duplicated|magic) code and introduction of few helper functions to ease foundation determination. Patch by frosch.
rubidium
parents:
7333
diff
changeset
|
197 |
return IsOwnedLand(tile) ? FOUNDATION_NONE : FlatteningFoundation(tileh); |
39 | 198 |
} |
199 |
||
6943
1914f26aee04
(svn r10197) -Codechange: replace int32 with CommandCost where appropriate.
rubidium
parents:
6720
diff
changeset
|
200 |
static CommandCost ClearTile_Unmovable(TileIndex tile, byte flags) |
0 | 201 |
{ |
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
202 |
if (IsCompanyHQ(tile)) { |
4060
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
203 |
if (_current_player == OWNER_WATER) { |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
204 |
return DestroyCompanyHQ(GetTileOwner(tile), DC_EXEC); |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
205 |
} else { |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
206 |
return_cmd_error(STR_5804_COMPANY_HEADQUARTERS_IN); |
376824550cef
(svn r5348) -Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
tron
parents:
3657
diff
changeset
|
207 |
} |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
160
diff
changeset
|
208 |
} |
0 | 209 |
|
3310
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
210 |
if (IsOwnedLand(tile)) { |
3491
35d747bb5e82
(svn r4342) Change the first two parameters of commands - virtual pixel coordinates of the tile to operate on - to a TileIndex
tron
parents:
3427
diff
changeset
|
211 |
return DoCommand(tile, 0, 0, flags, CMD_SELL_LAND_AREA); |
3310
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
212 |
} |
0 | 213 |
|
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
214 |
/* checks if you're allowed to remove unmovable things */ |
149
5f7d4b21df01
(svn r150) -Fix: [1010833] Turning on the magic bulldozer removes oil rigs
darkvater
parents:
147
diff
changeset
|
215 |
if (_game_mode != GM_EDITOR && _current_player != OWNER_WATER && ((flags & DC_AUTO || !_cheats.magic_bulldozer.value)) ) |
5f7d4b21df01
(svn r150) -Fix: [1010833] Turning on the magic bulldozer removes oil rigs
darkvater
parents:
147
diff
changeset
|
216 |
return_cmd_error(STR_5800_OBJECT_IN_THE_WAY); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
160
diff
changeset
|
217 |
|
6257
5e5a864cacf6
(svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight
parents:
6247
diff
changeset
|
218 |
if (IsStatue(tile)) { |
5e5a864cacf6
(svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight
parents:
6247
diff
changeset
|
219 |
TownID town = GetStatueTownID(tile); |
5e5a864cacf6
(svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight
parents:
6247
diff
changeset
|
220 |
CLRBIT(GetTown(town)->statues, _current_player); |
5e5a864cacf6
(svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight
parents:
6247
diff
changeset
|
221 |
InvalidateWindow(WC_TOWN_AUTHORITY, town); |
5e5a864cacf6
(svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight
parents:
6247
diff
changeset
|
222 |
} |
5e5a864cacf6
(svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight
parents:
6247
diff
changeset
|
223 |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
160
diff
changeset
|
224 |
if (flags & DC_EXEC) { |
0 | 225 |
DoClearSquare(tile); |
226 |
} |
|
227 |
||
6950
14ecb0acdfb4
(svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium
parents:
6943
diff
changeset
|
228 |
return CommandCost(); |
0 | 229 |
} |
230 |
||
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1962
diff
changeset
|
231 |
static void GetAcceptedCargo_Unmovable(TileIndex tile, AcceptedCargo ac) |
0 | 232 |
{ |
233 |
uint level; // HQ level (depends on company performance) in the range 1..5. |
|
234 |
||
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
235 |
if (!IsCompanyHQ(tile)) return; |
0 | 236 |
|
237 |
/* HQ accepts passenger and mail; but we have to divide the values |
|
238 |
* between 4 tiles it occupies! */ |
|
239 |
||
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
240 |
level = GetCompanyHQSize(tile) + 1; |
0 | 241 |
|
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
242 |
/* Top town building generates 10, so to make HQ interesting, the top |
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
243 |
* type makes 20. */ |
5601
d58f82901b2f
(svn r8055) -Codechange: Replace the different max, dmax, maxu whatever macros by a simple template function max(), that requires two arguments of the same type. While I'm at it change a variable called "max" to "maxval" in a function that calls max().
celestar
parents:
5587
diff
changeset
|
244 |
ac[CT_PASSENGERS] = max(1U, level); |
0 | 245 |
|
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
246 |
/* Top town building generates 4, HQ can make up to 8. The |
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
247 |
* proportion passengers:mail is different because such a huge |
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
248 |
* commercial building generates unusually high amount of mail |
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
249 |
* correspondence per physical visitor. */ |
5601
d58f82901b2f
(svn r8055) -Codechange: Replace the different max, dmax, maxu whatever macros by a simple template function max(), that requires two arguments of the same type. While I'm at it change a variable called "max" to "maxval" in a function that calls max().
celestar
parents:
5587
diff
changeset
|
250 |
ac[CT_MAIL] = max(1U, level / 2); |
0 | 251 |
} |
252 |
||
253 |
||
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1962
diff
changeset
|
254 |
static void GetTileDesc_Unmovable(TileIndex tile, TileDesc *td) |
0 | 255 |
{ |
3310
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
256 |
switch (GetUnmovableType(tile)) { |
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
257 |
case UNMOVABLE_TRANSMITTER: td->str = STR_5801_TRANSMITTER; break; |
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
258 |
case UNMOVABLE_LIGHTHOUSE: td->str = STR_5802_LIGHTHOUSE; break; |
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
259 |
case UNMOVABLE_STATUE: td->str = STR_2016_STATUE; break; |
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
260 |
case UNMOVABLE_OWNED_LAND: td->str = STR_5805_COMPANY_OWNED_LAND; break; |
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
261 |
default: td->str = STR_5803_COMPANY_HEADQUARTERS; break; |
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
262 |
} |
1901
03bf9bf99319
(svn r2407) Use {Get,Is}TileOwner to get/check the owner of a tile and fix some bogus reads of _map_owner
tron
parents:
1891
diff
changeset
|
263 |
td->owner = GetTileOwner(tile); |
0 | 264 |
} |
265 |
||
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1962
diff
changeset
|
266 |
static void AnimateTile_Unmovable(TileIndex tile) |
0 | 267 |
{ |
268 |
/* not used */ |
|
269 |
} |
|
270 |
||
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1962
diff
changeset
|
271 |
static void TileLoop_Unmovable(TileIndex tile) |
0 | 272 |
{ |
2150
f710b959b1c4
(svn r2660) Get rid of some more shifting/anding/casting
tron
parents:
2148
diff
changeset
|
273 |
uint level; // HQ level (depends on company performance) in the range 1..5. |
0 | 274 |
uint32 r; |
275 |
||
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
276 |
if (!IsCompanyHQ(tile)) return; |
0 | 277 |
|
278 |
/* HQ accepts passenger and mail; but we have to divide the values |
|
279 |
* between 4 tiles it occupies! */ |
|
280 |
||
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
281 |
level = GetCompanyHQSize(tile) + 1; |
0 | 282 |
assert(level < 6); |
283 |
||
284 |
r = Random(); |
|
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
285 |
/* Top town buildings generate 250, so the top HQ type makes 256. */ |
2150
f710b959b1c4
(svn r2660) Get rid of some more shifting/anding/casting
tron
parents:
2148
diff
changeset
|
286 |
if (GB(r, 0, 8) < (256 / 4 / (6 - level))) { |
f710b959b1c4
(svn r2660) Get rid of some more shifting/anding/casting
tron
parents:
2148
diff
changeset
|
287 |
uint amt = GB(r, 0, 8) / 8 / 4 + 1; |
0 | 288 |
if (_economy.fluct <= 0) amt = (amt + 1) >> 1; |
289 |
MoveGoodsToStation(tile, 2, 2, CT_PASSENGERS, amt); |
|
290 |
} |
|
291 |
||
6423
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
292 |
/* Top town building generates 90, HQ can make up to 196. The |
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
293 |
* proportion passengers:mail is about the same as in the acceptance |
8e10e79e0fd1
(svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents:
6357
diff
changeset
|
294 |
* equations. */ |
2150
f710b959b1c4
(svn r2660) Get rid of some more shifting/anding/casting
tron
parents:
2148
diff
changeset
|
295 |
if (GB(r, 8, 8) < (196 / 4 / (6 - level))) { |
f710b959b1c4
(svn r2660) Get rid of some more shifting/anding/casting
tron
parents:
2148
diff
changeset
|
296 |
uint amt = GB(r, 8, 8) / 8 / 4 + 1; |
0 | 297 |
if (_economy.fluct <= 0) amt = (amt + 1) >> 1; |
298 |
MoveGoodsToStation(tile, 2, 2, CT_MAIL, amt); |
|
299 |
} |
|
300 |
} |
|
301 |
||
302 |
||
6683
b88ae30866ce
(svn r9914) -Codechange: prepare GTTS and the pathfinders to handle multiple road types on a single tile.
rubidium
parents:
6484
diff
changeset
|
303 |
static uint32 GetTileTrackStatus_Unmovable(TileIndex tile, TransportType mode, uint sub_mode) |
0 | 304 |
{ |
305 |
return 0; |
|
306 |
} |
|
307 |
||
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1962
diff
changeset
|
308 |
static void ClickTile_Unmovable(TileIndex tile) |
0 | 309 |
{ |
3427
3a512f7b7f6a
(svn r4255) -Codechange: Add and make use of more accessor functions concerning unmovables. unmovable_cmd is now map access free
celestar
parents:
3422
diff
changeset
|
310 |
if (IsCompanyHQ(tile)) ShowPlayerCompany(GetTileOwner(tile)); |
0 | 311 |
} |
312 |
||
313 |
||
314 |
/* checks, if a radio tower is within a 9x9 tile square around tile */ |
|
4083
09ca2e8a41ea
(svn r5398) Rename checkRadioTowerNearby() to IsRadioTowerNearby() and flip its return value to make it a bit less ambiguous
tron
parents:
4077
diff
changeset
|
315 |
static bool IsRadioTowerNearby(TileIndex tile) |
0 | 316 |
{ |
1981 | 317 |
TileIndex tile_s = tile - TileDiffXY(4, 4); |
0 | 318 |
|
319 |
BEGIN_TILE_LOOP(tile, 9, 9, tile_s) |
|
4083
09ca2e8a41ea
(svn r5398) Rename checkRadioTowerNearby() to IsRadioTowerNearby() and flip its return value to make it a bit less ambiguous
tron
parents:
4077
diff
changeset
|
320 |
if (IsTransmitterTile(tile)) return true; |
0 | 321 |
END_TILE_LOOP(tile, 9, 9, tile_s) |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
322 |
|
4083
09ca2e8a41ea
(svn r5398) Rename checkRadioTowerNearby() to IsRadioTowerNearby() and flip its return value to make it a bit less ambiguous
tron
parents:
4077
diff
changeset
|
323 |
return false; |
0 | 324 |
} |
325 |
||
6247 | 326 |
void GenerateUnmovables() |
0 | 327 |
{ |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
328 |
int i, li, j, loop_count; |
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1962
diff
changeset
|
329 |
TileIndex tile; |
1335
a5f223b9f549
(svn r1839) Move GetTileSlope() and GetTileZ() into tile.[ch] and use more explicit types as parameters
tron
parents:
1225
diff
changeset
|
330 |
uint h; |
3164
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
331 |
uint maxx; |
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
332 |
uint maxy; |
0 | 333 |
|
6357
f0f5e7d1713c
(svn r9400) -Codechange: Use some more representative enum names for landscape types.
belugas
parents:
6258
diff
changeset
|
334 |
if (_opt.landscape == LT_TOYLAND) return; |
0 | 335 |
|
336 |
/* add radio tower */ |
|
1202
4d2a20c50760
(svn r1706) Implement ScaleByMapSize() and ScaleByMapSize1D()
tron
parents:
1093
diff
changeset
|
337 |
i = ScaleByMapSize(1000); |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
338 |
j = ScaleByMapSize(15); // maximum number of radio towers on the map |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
339 |
li = ScaleByMapSize1D((Random() & 3) + 7); |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
340 |
SetGeneratingWorldProgress(GWP_UNMOVABLE, j + li); |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
341 |
|
0 | 342 |
do { |
2051 | 343 |
tile = RandomTile(); |
7202
dc312a87f450
(svn r10480) -Fix: Don't allow building lighthouses and transmitters under bridges in the scenario editor, or during world generation.
maedhros
parents:
6953
diff
changeset
|
344 |
if (IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == SLOPE_FLAT && h >= TILE_HEIGHT * 4 && !IsBridgeAbove(tile)) { |
4083
09ca2e8a41ea
(svn r5398) Rename checkRadioTowerNearby() to IsRadioTowerNearby() and flip its return value to make it a bit less ambiguous
tron
parents:
4077
diff
changeset
|
345 |
if (IsRadioTowerNearby(tile)) continue; |
3310
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
346 |
MakeTransmitter(tile); |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
347 |
IncreaseGeneratingWorldProgress(GWP_UNMOVABLE); |
2951 | 348 |
if (--j == 0) break; |
0 | 349 |
} |
350 |
} while (--i); |
|
351 |
||
6357
f0f5e7d1713c
(svn r9400) -Codechange: Use some more representative enum names for landscape types.
belugas
parents:
6258
diff
changeset
|
352 |
if (_opt.landscape == LT_TROPIC) return; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
160
diff
changeset
|
353 |
|
0 | 354 |
/* add lighthouses */ |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
355 |
i = li; |
3164
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
356 |
maxx = MapMaxX(); |
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
357 |
maxy = MapMaxY(); |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
358 |
loop_count = 0; |
0 | 359 |
do { |
3164
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
360 |
uint32 r; |
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
361 |
DiagDirection dir; |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
362 |
int perimeter; |
3164
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
363 |
|
0 | 364 |
restart: |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
365 |
/* Avoid infinite loops */ |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
366 |
if (++loop_count > 1000) break; |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
367 |
|
0 | 368 |
r = Random(); |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
369 |
|
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
370 |
/* Scatter the lighthouses more evenly around the perimeter */ |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
371 |
perimeter = (GB(r, 16, 16) % (2 * (maxx + maxy))) - maxy; |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
372 |
for (dir = DIAGDIR_NE; perimeter > 0; dir++) { |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
373 |
perimeter -= (DiagDirToAxis(dir) == AXIS_X) ? maxx : maxy; |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
374 |
} |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
375 |
|
3164
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
376 |
switch (dir) { |
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
377 |
default: |
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
378 |
case DIAGDIR_NE: tile = TileXY(maxx, r % maxy); break; |
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
379 |
case DIAGDIR_SE: tile = TileXY(r % maxx, 0); break; |
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
380 |
case DIAGDIR_SW: tile = TileXY(0, r % maxy); break; |
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
381 |
case DIAGDIR_NW: tile = TileXY(r % maxx, maxy); break; |
3b7658159a12
(svn r3791) Replace home grown direction handling for placing lighthouses by standard DiagDir
tron
parents:
3017
diff
changeset
|
382 |
} |
0 | 383 |
j = 20; |
384 |
do { |
|
2951 | 385 |
if (--j == 0) goto restart; |
4559
aa0c13e39840
(svn r6406) -Codechange: Rename TileOffsByDir to TileOffsByDiagDir because it accepts
Darkvater
parents:
4300
diff
changeset
|
386 |
tile = TILE_MASK(tile + TileOffsByDiagDir(dir)); |
7202
dc312a87f450
(svn r10480) -Fix: Don't allow building lighthouses and transmitters under bridges in the scenario editor, or during world generation.
maedhros
parents:
6953
diff
changeset
|
387 |
} while (!(IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == SLOPE_FLAT && h <= TILE_HEIGHT * 2 && !IsBridgeAbove(tile))); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
160
diff
changeset
|
388 |
|
0 | 389 |
assert(tile == TILE_MASK(tile)); |
390 |
||
3310
a19f247b75b6
(svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
3282
diff
changeset
|
391 |
MakeLighthouse(tile); |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4231
diff
changeset
|
392 |
IncreaseGeneratingWorldProgress(GWP_UNMOVABLE); |
0 | 393 |
} while (--i); |
394 |
} |
|
395 |
||
2436
7d5df545bd5d
(svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents:
2186
diff
changeset
|
396 |
static void ChangeTileOwner_Unmovable(TileIndex tile, PlayerID old_player, PlayerID new_player) |
0 | 397 |
{ |
1901
03bf9bf99319
(svn r2407) Use {Get,Is}TileOwner to get/check the owner of a tile and fix some bogus reads of _map_owner
tron
parents:
1891
diff
changeset
|
398 |
if (!IsTileOwner(tile, old_player)) return; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
160
diff
changeset
|
399 |
|
4848
45f848b46222
(svn r6774) -Codechange: Rename the badly named OWNER_SPECTATOR to PLAYER_SPECTATOR and
Darkvater
parents:
4559
diff
changeset
|
400 |
if (IsOwnedLand(tile) && new_player != PLAYER_SPECTATOR) { |
1902 | 401 |
SetTileOwner(tile, new_player); |
2026 | 402 |
} else { |
0 | 403 |
DoClearSquare(tile); |
404 |
} |
|
405 |
} |
|
406 |
||
7494
ab05bad37410
(svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
rubidium
parents:
7335
diff
changeset
|
407 |
static CommandCost TerraformTile_Unmovable(TileIndex tile, uint32 flags, uint z_new, Slope tileh_new) |
ab05bad37410
(svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
rubidium
parents:
7335
diff
changeset
|
408 |
{ |
ab05bad37410
(svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
rubidium
parents:
7335
diff
changeset
|
409 |
/* Owned land remains unsold */ |
ab05bad37410
(svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
rubidium
parents:
7335
diff
changeset
|
410 |
if (IsOwnedLand(tile) && CheckTileOwnership(tile)) return CommandCost(); |
ab05bad37410
(svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
rubidium
parents:
7335
diff
changeset
|
411 |
|
7582
80c8517b08d1
(svn r11107) -Feature: some tool so one can still build tunnels under rails (and other structures) when the owner of the structure built it on foundations and if you have enough "empty" space ofcourse. One could use the tool for some other construction needs too. Patch by frosch.
rubidium
parents:
7549
diff
changeset
|
412 |
if (AutoslopeEnabled() && (IsStatue(tile) || IsCompanyHQ(tile))) { |
80c8517b08d1
(svn r11107) -Feature: some tool so one can still build tunnels under rails (and other structures) when the owner of the structure built it on foundations and if you have enough "empty" space ofcourse. One could use the tool for some other construction needs too. Patch by frosch.
rubidium
parents:
7549
diff
changeset
|
413 |
if (!IsSteepSlope(tileh_new) && (z_new + GetSlopeMaxZ(tileh_new) == GetTileMaxZ(tile))) return _price.terraform; |
80c8517b08d1
(svn r11107) -Feature: some tool so one can still build tunnels under rails (and other structures) when the owner of the structure built it on foundations and if you have enough "empty" space ofcourse. One could use the tool for some other construction needs too. Patch by frosch.
rubidium
parents:
7549
diff
changeset
|
414 |
} |
80c8517b08d1
(svn r11107) -Feature: some tool so one can still build tunnels under rails (and other structures) when the owner of the structure built it on foundations and if you have enough "empty" space ofcourse. One could use the tool for some other construction needs too. Patch by frosch.
rubidium
parents:
7549
diff
changeset
|
415 |
|
7494
ab05bad37410
(svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
rubidium
parents:
7335
diff
changeset
|
416 |
return DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); |
ab05bad37410
(svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
rubidium
parents:
7335
diff
changeset
|
417 |
} |
ab05bad37410
(svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
rubidium
parents:
7335
diff
changeset
|
418 |
|
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5584
diff
changeset
|
419 |
extern const TileTypeProcs _tile_type_unmovable_procs = { |
1493
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
420 |
DrawTile_Unmovable, /* draw_tile_proc */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
421 |
GetSlopeZ_Unmovable, /* get_slope_z_proc */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
422 |
ClearTile_Unmovable, /* clear_tile_proc */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
423 |
GetAcceptedCargo_Unmovable, /* get_accepted_cargo_proc */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
424 |
GetTileDesc_Unmovable, /* get_tile_desc_proc */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
425 |
GetTileTrackStatus_Unmovable, /* get_tile_track_status_proc */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
426 |
ClickTile_Unmovable, /* click_tile_proc */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
427 |
AnimateTile_Unmovable, /* animate_tile_proc */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
428 |
TileLoop_Unmovable, /* tile_loop_clear */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
429 |
ChangeTileOwner_Unmovable, /* change_tile_owner_clear */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
430 |
NULL, /* get_produced_cargo_proc */ |
414b3608df4d
(svn r1997) Fixed errorneous tab expansion on the indentation side which happenned in r1993. Pointed out by Tron.
pasky
parents:
1489
diff
changeset
|
431 |
NULL, /* vehicle_enter_tile_proc */ |
7335
141c6b86ec1f
(svn r10698) -Codechange [FS#1082]: simplify the code related to foundations. Primarily removal of (duplicated|magic) code and introduction of few helper functions to ease foundation determination. Patch by frosch.
rubidium
parents:
7333
diff
changeset
|
432 |
GetFoundation_Unmovable, /* get_foundation_proc */ |
7494
ab05bad37410
(svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
rubidium
parents:
7335
diff
changeset
|
433 |
TerraformTile_Unmovable, /* terraform_tile_proc */ |
0 | 434 |
}; |