author | skidd13 |
Tue, 20 Nov 2007 14:11:19 +0000 | |
changeset 8428 | f8300c908bd9 |
parent 8424 | 4a488a90ccab |
child 8604 | 8afdd9877afd |
permissions | -rw-r--r-- |
3314
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
1 |
/* $Id$ */ |
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
2 |
|
3495
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
3 |
/** @file industry_map.h Accessors for industries */ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
4 |
|
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
5 |
#ifndef INDUSTRY_MAP_H |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
6 |
#define INDUSTRY_MAP_H |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
7 |
|
3314
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
8 |
#include "industry.h" |
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
9 |
#include "macros.h" |
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
10 |
#include "tile.h" |
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
11 |
|
3545
3e66bf329257
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3538
diff
changeset
|
12 |
|
3553
b34eae3b8d0f
(svn r4425) Fix bug introduced in r4411 : while IS_BYTE_INSIDE, max value is STRICKLY LESS THEN. This caused airports animations to stay unanimated. Industries were similarly affected.
belugas
parents:
3545
diff
changeset
|
13 |
|
b34eae3b8d0f
(svn r4425) Fix bug introduced in r4411 : while IS_BYTE_INSIDE, max value is STRICKLY LESS THEN. This caused airports animations to stay unanimated. Industries were similarly affected.
belugas
parents:
3545
diff
changeset
|
14 |
/** |
b34eae3b8d0f
(svn r4425) Fix bug introduced in r4411 : while IS_BYTE_INSIDE, max value is STRICKLY LESS THEN. This caused airports animations to stay unanimated. Industries were similarly affected.
belugas
parents:
3545
diff
changeset
|
15 |
* The following enums are indices used to know what to draw for this industry tile. |
b34eae3b8d0f
(svn r4425) Fix bug introduced in r4411 : while IS_BYTE_INSIDE, max value is STRICKLY LESS THEN. This caused airports animations to stay unanimated. Industries were similarly affected.
belugas
parents:
3545
diff
changeset
|
16 |
* They all are pointing toward array _industry_draw_tile_data, in table/industry_land.h |
b34eae3b8d0f
(svn r4425) Fix bug introduced in r4411 : while IS_BYTE_INSIDE, max value is STRICKLY LESS THEN. This caused airports animations to stay unanimated. Industries were similarly affected.
belugas
parents:
3545
diff
changeset
|
17 |
* How to calculate the correct position ? GFXid << 2 | IndustryStage (0 to 3) |
b34eae3b8d0f
(svn r4425) Fix bug introduced in r4411 : while IS_BYTE_INSIDE, max value is STRICKLY LESS THEN. This caused airports animations to stay unanimated. Industries were similarly affected.
belugas
parents:
3545
diff
changeset
|
18 |
*/ |
3545
3e66bf329257
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3538
diff
changeset
|
19 |
enum { |
4583
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
20 |
GFX_COAL_MINE_TOWER_NOT_ANIMATED = 0, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
21 |
GFX_COAL_MINE_TOWER_ANIMATED = 1, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
22 |
GFX_POWERPLANT_CHIMNEY = 8, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
23 |
GFX_POWERPLANT_SPARKS = 10, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
24 |
GFX_OILRIG_1 = 24, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
25 |
GFX_OILRIG_2 = 25, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
26 |
GFX_OILRIG_3 = 26, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
27 |
GFX_OILRIG_4 = 27, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
28 |
GFX_OILRIG_5 = 28, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
29 |
GFX_OILWELL_NOT_ANIMATED = 29, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
30 |
GFX_OILWELL_ANIMATED_1 = 30, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
31 |
GFX_OILWELL_ANIMATED_2 = 31, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
32 |
GFX_OILWELL_ANIMATED_3 = 32, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
33 |
GFX_COPPER_MINE_TOWER_NOT_ANIMATED = 47, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
34 |
GFX_COPPER_MINE_TOWER_ANIMATED = 48, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
35 |
GFX_COPPER_MINE_CHIMNEY = 49, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
36 |
GFX_GOLD_MINE_TOWER_NOT_ANIMATED = 79, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
37 |
GFX_GOLD_MINE_TOWER_ANIMATED = 88, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
38 |
GFX_TOY_FACTORY = 143, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
39 |
GFX_PLASTIC_FOUNTAIN_ANIMATED_1 = 148, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
40 |
GFX_PLASTIC_FOUNTAIN_ANIMATED_2 = 149, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
41 |
GFX_PLASTIC_FOUNTAIN_ANIMATED_3 = 150, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
42 |
GFX_PLASTIC_FOUNTAIN_ANIMATED_4 = 151, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
43 |
GFX_PLASTIC_FOUNTAIN_ANIMATED_5 = 152, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
44 |
GFX_PLASTIC_FOUNTAIN_ANIMATED_6 = 153, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
45 |
GFX_PLASTIC_FOUNTAIN_ANIMATED_7 = 154, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
46 |
GFX_PLASTIC_FOUNTAIN_ANIMATED_8 = 155, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
47 |
GFX_BUBBLE_GENERATOR = 161, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
48 |
GFX_BUBBLE_CATCHER = 162, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
49 |
GFX_TOFFEE_QUARY = 165, |
45b8bf91b1e3
(svn r6433) -Codechange: replace some magic numbers (industry gfx indices) by enums.
rubidium
parents:
4330
diff
changeset
|
50 |
GFX_SUGAR_MINE_SIEVE = 174, |
7969
9050701304bd
(svn r10980) -Fix [FS#1158] : This will hopefully fix the case of an assert that happens when an industry uses a special gfx index (tile spec 0xFF). This 0xFF is the sentinel of a special check done for oil rigs, where water need to be around, but no tile will be constructed on it.
belugas
parents:
7963
diff
changeset
|
51 |
GFX_WATERTILE_SPECIALCHECK = 255, ///< not really a tile, but rather a very special check |
3545
3e66bf329257
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3538
diff
changeset
|
52 |
}; |
3314
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
53 |
|
6914
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
54 |
/** |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
55 |
* Get the industry ID of the given tile |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
56 |
* @param t the tile to get the industry ID from |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
57 |
* @pre IsTileType(t, MP_INDUSTRY) |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
58 |
* @return the industry ID |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
59 |
*/ |
4330
7306bda145ab
(svn r6005) -Cleanup: introduce IndustryID and use it
rubidium
parents:
4077
diff
changeset
|
60 |
static inline IndustryID GetIndustryIndex(TileIndex t) |
3314
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
61 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3331
diff
changeset
|
62 |
assert(IsTileType(t, MP_INDUSTRY)); |
3314
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
63 |
return _m[t].m2; |
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
64 |
} |
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
65 |
|
6914
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
66 |
/** |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
67 |
* Get the industry of the given tile |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
68 |
* @param t the tile to get the industry from |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
69 |
* @pre IsTileType(t, MP_INDUSTRY) |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
70 |
* @return the industry |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
71 |
*/ |
7814
fe643468ad64
(svn r10673) -Cleanup: some assorted style cleanups. Primarily type* var -> type *var.
rubidium
parents:
7370
diff
changeset
|
72 |
static inline Industry *GetIndustryByTile(TileIndex t) |
3314
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
73 |
{ |
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
74 |
return GetIndustry(GetIndustryIndex(t)); |
b8b234d4584f
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff
changeset
|
75 |
} |
3320 | 76 |
|
6914
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
77 |
/** |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
78 |
* Is this industry tile fully built? |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
79 |
* @param t the tile to analyze |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
80 |
* @pre IsTileType(t, MP_INDUSTRY) |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
81 |
* @return true if and only if the industry tile is fully built |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
82 |
*/ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3331
diff
changeset
|
83 |
static inline bool IsIndustryCompleted(TileIndex t) |
3321
c5f2375046bc
(svn r4087) Add IsIndustryCompleted() to check if a industry tile is fully built
tron
parents:
3320
diff
changeset
|
84 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3331
diff
changeset
|
85 |
assert(IsTileType(t, MP_INDUSTRY)); |
8424
4a488a90ccab
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13
parents:
8358
diff
changeset
|
86 |
return HasBit(_m[t].m1, 7); |
3321
c5f2375046bc
(svn r4087) Add IsIndustryCompleted() to check if a industry tile is fully built
tron
parents:
3320
diff
changeset
|
87 |
} |
c5f2375046bc
(svn r4087) Add IsIndustryCompleted() to check if a industry tile is fully built
tron
parents:
3320
diff
changeset
|
88 |
|
3499
e95d6e5f66ae
(svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents:
3495
diff
changeset
|
89 |
IndustryType GetIndustryType(TileIndex tile); |
e95d6e5f66ae
(svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents:
3495
diff
changeset
|
90 |
|
3495
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
91 |
/** |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
92 |
* Set if the industry that owns the tile as under construction or not |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
93 |
* @param tile the tile to query |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
94 |
* @param isCompleted whether it is completed or not |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
95 |
* @pre IsTileType(tile, MP_INDUSTRY) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
96 |
*/ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
97 |
static inline void SetIndustryCompleted(TileIndex tile, bool isCompleted) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
98 |
{ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
99 |
assert(IsTileType(tile, MP_INDUSTRY)); |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
100 |
SB(_m[tile].m1, 7, 1, isCompleted ? 1 :0); |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
101 |
} |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
102 |
|
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
103 |
/** |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
104 |
* Returns the industry construction stage of the specified tile |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
105 |
* @param tile the tile to query |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
106 |
* @pre IsTileType(tile, MP_INDUSTRY) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
107 |
* @return the construction stage |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
108 |
*/ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
109 |
static inline byte GetIndustryConstructionStage(TileIndex tile) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
110 |
{ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
111 |
assert(IsTileType(tile, MP_INDUSTRY)); |
8150
3b6a36860a47
(svn r11185) -Codechange: prepare some more code for the introduction of NewIndustries. Patch by Belugas.
rubidium
parents:
8118
diff
changeset
|
112 |
return IsIndustryCompleted(tile) ? (byte)INDUSTRY_COMPLETED : GB(_m[tile].m1, 0, 2); |
3495
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
113 |
} |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
114 |
|
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
115 |
/** |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
116 |
* Sets the industry construction stage of the specified tile |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
117 |
* @param tile the tile to query |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
118 |
* @param value the new construction stage |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
119 |
* @pre IsTileType(tile, MP_INDUSTRY) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
120 |
*/ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
121 |
static inline void SetIndustryConstructionStage(TileIndex tile, byte value) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
122 |
{ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
123 |
assert(IsTileType(tile, MP_INDUSTRY)); |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
124 |
SB(_m[tile].m1, 0, 2, value); |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
125 |
} |
3321
c5f2375046bc
(svn r4087) Add IsIndustryCompleted() to check if a industry tile is fully built
tron
parents:
3320
diff
changeset
|
126 |
|
8118
644c9acc640c
(svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents:
8117
diff
changeset
|
127 |
static inline IndustryGfx GetCleanIndustryGfx(TileIndex t) |
644c9acc640c
(svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents:
8117
diff
changeset
|
128 |
{ |
644c9acc640c
(svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents:
8117
diff
changeset
|
129 |
assert(IsTileType(t, MP_INDUSTRY)); |
644c9acc640c
(svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents:
8117
diff
changeset
|
130 |
return _m[t].m5 | (GB(_m[t].m6, 2, 1) << 8); |
644c9acc640c
(svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents:
8117
diff
changeset
|
131 |
} |
644c9acc640c
(svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents:
8117
diff
changeset
|
132 |
|
6914
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
133 |
/** |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
134 |
* Get the industry graphics ID for the given industry tile |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
135 |
* @param t the tile to get the gfx for |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
136 |
* @pre IsTileType(t, MP_INDUSTRY) |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
137 |
* @return the gfx ID |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
138 |
*/ |
3499
e95d6e5f66ae
(svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents:
3495
diff
changeset
|
139 |
static inline IndustryGfx GetIndustryGfx(TileIndex t) |
3331 | 140 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3331
diff
changeset
|
141 |
assert(IsTileType(t, MP_INDUSTRY)); |
8118
644c9acc640c
(svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents:
8117
diff
changeset
|
142 |
return GetTranslatedIndustryTileID(GetCleanIndustryGfx(t)); |
3331 | 143 |
} |
144 |
||
6914
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
145 |
/** |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
146 |
* Set the industry graphics ID for the given industry tile |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
147 |
* @param t the tile to set the gfx for |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
148 |
* @pre IsTileType(t, MP_INDUSTRY) |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
149 |
* @param gfx the graphics ID |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
150 |
*/ |
3499
e95d6e5f66ae
(svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents:
3495
diff
changeset
|
151 |
static inline void SetIndustryGfx(TileIndex t, IndustryGfx gfx) |
3331 | 152 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3331
diff
changeset
|
153 |
assert(IsTileType(t, MP_INDUSTRY)); |
8118
644c9acc640c
(svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents:
8117
diff
changeset
|
154 |
_m[t].m5 = GB(gfx, 0, 8); |
644c9acc640c
(svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents:
8117
diff
changeset
|
155 |
SB(_m[t].m6, 2, 1, GB(gfx, 8, 1)); |
3331 | 156 |
} |
157 |
||
6914
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
158 |
/** |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
159 |
* Make the given tile an industry tile |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
160 |
* @param t the tile to make an industry tile |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
161 |
* @param index the industry this tile belongs to |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
162 |
* @param gfx the graphics to use for the tile |
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
163 |
*/ |
4330
7306bda145ab
(svn r6005) -Cleanup: introduce IndustryID and use it
rubidium
parents:
4077
diff
changeset
|
164 |
static inline void MakeIndustry(TileIndex t, IndustryID index, IndustryGfx gfx) |
3320 | 165 |
{ |
166 |
SetTileType(t, MP_INDUSTRY); |
|
167 |
_m[t].m1 = 0; |
|
168 |
_m[t].m2 = index; |
|
169 |
_m[t].m3 = 0; |
|
170 |
_m[t].m4 = 0; |
|
7370
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
171 |
SetIndustryGfx(t, gfx); |
8358
79bdf95a862c
(svn r11412) -Fix (r11403): animation was not turned on properly.
rubidium
parents:
8185
diff
changeset
|
172 |
_me[t].m7 = Random(); |
3320 | 173 |
} |
3495
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
174 |
|
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
175 |
/** |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
176 |
* Returns this indutry tile's construction counter value |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
177 |
* @param tile the tile to query |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
178 |
* @pre IsTileType(tile, MP_INDUSTRY) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
179 |
* @return the construction counter |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
180 |
*/ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
181 |
static inline byte GetIndustryConstructionCounter(TileIndex tile) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
182 |
{ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
183 |
assert(IsTileType(tile, MP_INDUSTRY)); |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
184 |
return GB(_m[tile].m1, 2, 2); |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
185 |
} |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
186 |
|
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
187 |
/** |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
188 |
* Sets this indutry tile's construction counter value |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
189 |
* @param tile the tile to query |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
190 |
* @param value the new value for the construction counter |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
191 |
* @pre IsTileType(tile, MP_INDUSTRY) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
192 |
*/ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
193 |
static inline void SetIndustryConstructionCounter(TileIndex tile, byte value) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
194 |
{ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
195 |
assert(IsTileType(tile, MP_INDUSTRY)); |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
196 |
SB(_m[tile].m1, 2, 2, value); |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
197 |
} |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
198 |
|
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
199 |
/** |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
200 |
* Reset the construction stage counter of the industry, |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
201 |
* as well as the completion bit. |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
202 |
* In fact, it is the same as restarting construction frmo ground up |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
203 |
* @param tile the tile to query |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
204 |
* @pre IsTileType(tile, MP_INDUSTRY) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
205 |
*/ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
206 |
static inline void ResetIndustryConstructionStage(TileIndex tile) |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
207 |
{ |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
208 |
assert(IsTileType(tile, MP_INDUSTRY)); |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
209 |
_m[tile].m1 = 0; |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
210 |
} |
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
211 |
|
3538
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
212 |
/** |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
213 |
* Get the animation loop number |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
214 |
* @param tile the tile to get the animation loop number of |
5685
b88aca81aa7b
(svn r7640) -Codechange: move a table from industry_cmd.c to table/industry_land
rubidium
parents:
4583
diff
changeset
|
215 |
* @pre IsTileType(tile, MP_INDUSTRY) |
3538
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
216 |
*/ |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
217 |
static inline byte GetIndustryAnimationLoop(TileIndex tile) |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
218 |
{ |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
219 |
assert(IsTileType(tile, MP_INDUSTRY)); |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
220 |
return _m[tile].m4; |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
221 |
} |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
222 |
|
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
223 |
/** |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
224 |
* Set the animation loop number |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
225 |
* @param tile the tile to set the animation loop number of |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
226 |
* @param count the new animation frame number |
5685
b88aca81aa7b
(svn r7640) -Codechange: move a table from industry_cmd.c to table/industry_land
rubidium
parents:
4583
diff
changeset
|
227 |
* @pre IsTileType(tile, MP_INDUSTRY) |
3538
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
228 |
*/ |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
229 |
static inline void SetIndustryAnimationLoop(TileIndex tile, byte count) |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
230 |
{ |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
231 |
assert(IsTileType(tile, MP_INDUSTRY)); |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
232 |
_m[tile].m4 = count; |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
233 |
} |
3eb71c726341
(svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents:
3499
diff
changeset
|
234 |
|
5686
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
235 |
/** |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
236 |
* Get the animation state |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
237 |
* @param tile the tile to get the animation state of |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
238 |
* @pre IsTileType(tile, MP_INDUSTRY) |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
239 |
*/ |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
240 |
static inline byte GetIndustryAnimationState(TileIndex tile) |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
241 |
{ |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
242 |
assert(IsTileType(tile, MP_INDUSTRY)); |
5687
a6f0e780d714
(svn r7642) -Codechange: unify all the different locations where the animation state is stored into a single location.
rubidium
parents:
5686
diff
changeset
|
243 |
return _m[tile].m3; |
5686
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
244 |
} |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
245 |
|
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
246 |
/** |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
247 |
* Set the animation state |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
248 |
* @param tile the tile to set the animation state of |
6914
3ba37b6fa39b
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6574
diff
changeset
|
249 |
* @param state the new animation state |
5686
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
250 |
* @pre IsTileType(tile, MP_INDUSTRY) |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
251 |
*/ |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
252 |
static inline void SetIndustryAnimationState(TileIndex tile, byte state) |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
253 |
{ |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
254 |
assert(IsTileType(tile, MP_INDUSTRY)); |
5687
a6f0e780d714
(svn r7642) -Codechange: unify all the different locations where the animation state is stored into a single location.
rubidium
parents:
5686
diff
changeset
|
255 |
_m[tile].m3 = state; |
5686
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
256 |
} |
03c3d3b3e7eb
(svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents:
5685
diff
changeset
|
257 |
|
7370
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
258 |
/** |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
259 |
* Get the random bits for this tile. |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
260 |
* Used for grf callbacks |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
261 |
* @param tile TileIndex of the tile to query |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
262 |
* @pre IsTileType(tile, MP_INDUSTRY) |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
263 |
* @return requested bits |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
264 |
*/ |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
265 |
static inline byte GetIndustryRandomBits(TileIndex tile) |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
266 |
{ |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
267 |
assert(IsTileType(tile, MP_INDUSTRY)); |
8117
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
268 |
return _me[tile].m7; |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
269 |
} |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
270 |
|
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
271 |
/** |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
272 |
* Set the random bits for this tile. |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
273 |
* Used for grf callbacks |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
274 |
* @param tile TileIndex of the tile to query |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
275 |
* @param bits the random bits |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
276 |
* @pre IsTileType(tile, MP_INDUSTRY) |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
277 |
*/ |
8185
aefd50706cdb
(svn r11223) -Fix[FS#1306]: Rename and refactor adequately a function that actually returns void and set bits (smatz).
belugas
parents:
8150
diff
changeset
|
278 |
static inline void SetIndustryRandomBits(TileIndex tile, byte bits) |
8117
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
279 |
{ |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
280 |
assert(IsTileType(tile, MP_INDUSTRY)); |
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
281 |
_me[tile].m7 = bits; |
7370
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
282 |
} |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
283 |
|
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
284 |
/** |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
285 |
* Get the activated triggers bits for this industry tile |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
286 |
* Used for grf callbacks |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
287 |
* @param tile TileIndex of the tile to query |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
288 |
* @pre IsTileType(tile, MP_INDUSTRY) |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
289 |
* @return requested triggers |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
290 |
*/ |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
291 |
static inline byte GetIndustryTriggers(TileIndex tile) |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
292 |
{ |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
293 |
assert(IsTileType(tile, MP_INDUSTRY)); |
8117
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
294 |
return GB(_m[tile].m6, 3, 3); |
7370
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
295 |
} |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
296 |
|
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
297 |
|
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
298 |
/** |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
299 |
* Set the activated triggers bits for this industry tile |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
300 |
* Used for grf callbacks |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
301 |
* @param tile TileIndex of the tile to query |
8117
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
302 |
* @param triggers the triggers to set |
7370
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
303 |
* @pre IsTileType(tile, MP_INDUSTRY) |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
304 |
*/ |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
305 |
static inline void SetIndustryTriggers(TileIndex tile, byte triggers) |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
306 |
{ |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
307 |
assert(IsTileType(tile, MP_INDUSTRY)); |
8117
6f265223b5fa
(svn r11151) -Codechange: add (partial) support for randomizing industry triggers (part of the backend for it). Furthermore update the documentation of the map's bits wrt to industries.
rubidium
parents:
7969
diff
changeset
|
308 |
SB(_m[tile].m6, 3, 3, triggers); |
7370
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
309 |
} |
a03b5c70eb63
(svn r10115) -Codechange: Create accessors to triggers and random bits for industries.
belugas
parents:
7245
diff
changeset
|
310 |
|
3495
f7d3ae07f4aa
(svn r4346) CodeChange : Add and Use Accessors to Industry's Stage and Counter construction. Removed last direct map access from Disaster_cmd.c as well. Based on work from Rubidium in tfc_newmap
belugas
parents:
3369
diff
changeset
|
311 |
#endif /* INDUSTRY_MAP_H */ |