industry_map.h
author peter1138
Mon, 01 Jan 2007 01:40:56 +0000
changeset 5703 3f848403a814
parent 5687 a6f0e780d714
permissions -rw-r--r--
(svn r7711) -Fix (r7354): NewGRF Action 7, GRF check condition 10 didn't ignore unknown GRF IDs. Also separate GRF ID conditions
from parameter conditions to remove code duplication in GRF checking code.
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,
5685
b88aca81aa7b (svn r7640) -Codechange: move a table from industry_cmd.c to table/industry_land
rubidium
parents: 4583
diff changeset
    51
	NUM_INDUSTRY_GFXES                 = 175,
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
4330
7306bda145ab (svn r6005) -Cleanup: introduce IndustryID and use it
rubidium
parents: 4077
diff changeset
    54
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
    55
{
3369
00c2ca209a89 (svn r4166) Sprinkle several map accessors with assert()s
tron
parents: 3331
diff changeset
    56
	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
    57
	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
    58
}
b8b234d4584f (svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff changeset
    59
b8b234d4584f (svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff changeset
    60
static inline Industry* GetIndustryByTile(TileIndex t)
b8b234d4584f (svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff changeset
    61
{
b8b234d4584f (svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
tron
parents:
diff changeset
    62
	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
    63
}
3320
9814b97a8edb (svn r4086) Add MakeIndustry()
tron
parents: 3314
diff changeset
    64
3369
00c2ca209a89 (svn r4166) Sprinkle several map accessors with assert()s
tron
parents: 3331
diff changeset
    65
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
    66
{
3369
00c2ca209a89 (svn r4166) Sprinkle several map accessors with assert()s
tron
parents: 3331
diff changeset
    67
	assert(IsTileType(t, MP_INDUSTRY));
00c2ca209a89 (svn r4166) Sprinkle several map accessors with assert()s
tron
parents: 3331
diff changeset
    68
	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
    69
}
c5f2375046bc (svn r4087) Add IsIndustryCompleted() to check if a industry tile is fully built
tron
parents: 3320
diff changeset
    70
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
    71
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
    72
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
    73
/**
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
    74
 * 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
    75
 * @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
    76
 * @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
    77
 * @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
    78
 */
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
    79
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
    80
{
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
    81
	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
    82
	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
    83
}
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
    84
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
    85
/**
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
    86
 * 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
    87
 * @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
    88
 * @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
    89
 * @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
    90
 */
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
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
    92
{
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
	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
    94
	return GB(_m[tile].m1, 0, 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
    95
}
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
/**
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
 * 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
    99
 * @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
   100
 * @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
   101
 * @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
   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
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
   104
{
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
	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
   106
	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
   107
}
3321
c5f2375046bc (svn r4087) Add IsIndustryCompleted() to check if a industry tile is fully built
tron
parents: 3320
diff changeset
   108
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
   109
static inline IndustryGfx GetIndustryGfx(TileIndex t)
3331
917914fbbf3c (svn r4108) Add [GS]etIndustryGfx()
tron
parents: 3321
diff changeset
   110
{
3369
00c2ca209a89 (svn r4166) Sprinkle several map accessors with assert()s
tron
parents: 3331
diff changeset
   111
	assert(IsTileType(t, MP_INDUSTRY));
3331
917914fbbf3c (svn r4108) Add [GS]etIndustryGfx()
tron
parents: 3321
diff changeset
   112
	return _m[t].m5;
917914fbbf3c (svn r4108) Add [GS]etIndustryGfx()
tron
parents: 3321
diff changeset
   113
}
917914fbbf3c (svn r4108) Add [GS]etIndustryGfx()
tron
parents: 3321
diff changeset
   114
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
   115
static inline void SetIndustryGfx(TileIndex t, IndustryGfx gfx)
3331
917914fbbf3c (svn r4108) Add [GS]etIndustryGfx()
tron
parents: 3321
diff changeset
   116
{
3369
00c2ca209a89 (svn r4166) Sprinkle several map accessors with assert()s
tron
parents: 3331
diff changeset
   117
	assert(IsTileType(t, MP_INDUSTRY));
3331
917914fbbf3c (svn r4108) Add [GS]etIndustryGfx()
tron
parents: 3321
diff changeset
   118
	_m[t].m5 = gfx;
917914fbbf3c (svn r4108) Add [GS]etIndustryGfx()
tron
parents: 3321
diff changeset
   119
}
917914fbbf3c (svn r4108) Add [GS]etIndustryGfx()
tron
parents: 3321
diff changeset
   120
4330
7306bda145ab (svn r6005) -Cleanup: introduce IndustryID and use it
rubidium
parents: 4077
diff changeset
   121
static inline void MakeIndustry(TileIndex t, IndustryID index, IndustryGfx gfx)
3320
9814b97a8edb (svn r4086) Add MakeIndustry()
tron
parents: 3314
diff changeset
   122
{
9814b97a8edb (svn r4086) Add MakeIndustry()
tron
parents: 3314
diff changeset
   123
	SetTileType(t, MP_INDUSTRY);
9814b97a8edb (svn r4086) Add MakeIndustry()
tron
parents: 3314
diff changeset
   124
	_m[t].m1 = 0;
9814b97a8edb (svn r4086) Add MakeIndustry()
tron
parents: 3314
diff changeset
   125
	_m[t].m2 = index;
9814b97a8edb (svn r4086) Add MakeIndustry()
tron
parents: 3314
diff changeset
   126
	_m[t].m3 = 0;
9814b97a8edb (svn r4086) Add MakeIndustry()
tron
parents: 3314
diff changeset
   127
	_m[t].m4 = 0;
9814b97a8edb (svn r4086) Add MakeIndustry()
tron
parents: 3314
diff changeset
   128
	_m[t].m5 = gfx;
9814b97a8edb (svn r4086) Add MakeIndustry()
tron
parents: 3314
diff changeset
   129
}
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
   130
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
   131
/**
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
   132
 * 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
   133
 * @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
   134
 * @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
   135
 * @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
   136
 */
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
   137
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
   138
{
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
   139
	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
   140
	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
   141
}
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
   142
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
   143
/**
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
   144
 * 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
   145
 * @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
   146
 * @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
   147
 * @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
   148
 */
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
   149
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
   150
{
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
   151
	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
   152
	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
   153
}
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
   154
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
   155
/**
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
   156
 * 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
   157
 * 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
   158
 * 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
   159
 * @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
   160
 * @param generating_world whether generating a world 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
   161
 * @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
   162
 */
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
   163
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
   164
{
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
   165
	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
   166
	_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
   167
}
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
   168
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
   169
typedef struct IndustryTypeSolver {
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   170
	IndustryGfx MinGfx;
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   171
	IndustryGfx MaxGfx;
4077
d3022f976946 (svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents: 3689
diff changeset
   172
} IndustryTypeSolver;
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
   173
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   174
static const IndustryTypeSolver industry_gfx_Solver [IT_END] = {
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   175
	{  0,   6}, //IT_COAL_MINE
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   176
	{  7,  10}, //IT_POWER_STATION,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   177
	{ 11,  15}, //IT_SAWMILL,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   178
	{ 16,  17}, //IT_FOREST,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   179
	{ 18,  23}, //IT_OIL_REFINERY,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   180
	{ 24,  28}, //IT_OIL_RIG,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   181
	{ 29,  31}, //IT_OIL_WELL,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   182
	{ 32,  38}, //IT_FARM,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   183
	{ 39,  42}, //IT_FACTORY,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   184
	{ 43,  46}, //IT_PRINTING_WORKS,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   185
	{ 47,  51}, //IT_COPPER_MINE,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   186
	{ 52,  57}, //IT_STEEL_MILL,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   187
	{ 58,  59}, //IT_BANK_TEMP,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   188
	{ 60,  63}, //IT_FOOD_PROCESS,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   189
	{ 64,  71}, //IT_PAPER_MILL,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   190
	{ 72,  88}, //IT_GOLD_MINE,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   191
	{ 89,  90}, //IT_BANK_TROPIC_ARCTIC,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   192
	{ 91,  99}, //IT_DIAMOND_MINE,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   193
	{100, 115}, //IT_IRON_MINE,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   194
	{116, 116}, //IT_FRUIT_PLANTATION,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   195
	{117, 117}, //IT_RUBBER_PLANTATION,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   196
	{118, 119}, //IT_WATER_SUPPLY,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   197
	{120, 120}, //IT_WATER_TOWER,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   198
	{121, 124}, //IT_FACTORY_2,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   199
	{125, 128}, //IT_LUMBER_MILL,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   200
	{129, 130}, //IT_COTTON_CANDY,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   201
	{131, 134}, //IT_CANDY_FACTORY or sweet factory
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   202
	{135, 136}, //IT_BATTERY_FARM,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   203
	{137, 137}, //IT_COLA_WELLS,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   204
	{138, 141}, //IT_TOY_SHOP,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   205
	{142, 147}, //IT_TOY_FACTORY,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   206
	{148, 155}, //IT_PLASTIC_FOUNTAINS,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   207
	{156, 159}, //IT_FIZZY_DRINK_FACTORY,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   208
	{160, 163}, //IT_BUBBLE_GENERATOR,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   209
	{164, 166}, //IT_TOFFEE_QUARRY,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   210
	{167, 174}  //IT_SUGAR_MINE,
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   211
};
e95d6e5f66ae (svn r4350) CodeChange : Add and use accessors [G|S]etIndustrype. Define and use IndustryGfx type instead of uint
belugas
parents: 3495
diff changeset
   212
3538
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   213
/**
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   214
 * Get the animation loop number
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   215
 * @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
   216
 * @pre IsTileType(tile, MP_INDUSTRY)
3538
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   217
 */
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   218
static inline byte GetIndustryAnimationLoop(TileIndex tile)
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   219
{
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   220
	assert(IsTileType(tile, MP_INDUSTRY));
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   221
	return _m[tile].m4;
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
/**
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   225
 * Set the animation loop number
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   226
 * @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
   227
 * @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
   228
 * @pre IsTileType(tile, MP_INDUSTRY)
3538
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   229
 */
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   230
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
   231
{
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   232
	assert(IsTileType(tile, MP_INDUSTRY));
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   233
	_m[tile].m4 = count;
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   234
}
3eb71c726341 (svn r4399) CodeChange : Add and make use of [G|S]etIndustryAnimationLoop accessors.
belugas
parents: 3499
diff changeset
   235
5686
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   236
/**
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   237
 * Get the animation state
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   238
 * @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
   239
 * @pre IsTileType(tile, MP_INDUSTRY)
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   240
 */
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   241
static inline byte GetIndustryAnimationState(TileIndex tile)
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   242
{
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   243
	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
   244
	return _m[tile].m3;
5686
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
/**
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   248
 * Set the animation state
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   249
 * @param tile the tile to set the animation state of
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   250
 * @param count the new animation state
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   251
 * @pre IsTileType(tile, MP_INDUSTRY)
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   252
 */
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   253
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
   254
{
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   255
	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
   256
	_m[tile].m3 = state;
5686
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   257
}
03c3d3b3e7eb (svn r7641) -Codechange: remove the last direct map accesses from industry_cmd.
rubidium
parents: 5685
diff changeset
   258
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
   259
#endif /* INDUSTRY_MAP_H */