src/newgrf_industries.h
author bjarni
Thu, 19 Jun 2008 17:54:23 +0000
changeset 9561 f236daaaf93a
parent 9111 48ce04029fe4
permissions -rw-r--r--
(svn r13584) -Fix: [OSX] Fixed issue where 10.5 failed to switch to fullscreen
This is done by selecting the 32bpp-anim blitter by default as it seems Apple removed some 8bpp support
Since this is done at runtime the same binary will still select 8bpp on 10.3 and 10.4
6835
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
     1
/* $Id$ */
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
     2
9111
48ce04029fe4 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents: 8436
diff changeset
     3
/** @file newgrf_industries.h Functions for NewGRF industries. */
6835
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
     4
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
     5
#ifndef NEWGRF_INDUSTRIES_H
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
     6
#define NEWGRF_INDUSTRIES_H
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
     7
8213
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 7622
diff changeset
     8
#include "industry_type.h"
6835
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
     9
#include "newgrf_spritegroup.h"
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
    10
7621
09824471f144 (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: 7327
diff changeset
    11
/** When should the industry(tile) be triggered for random bits? */
09824471f144 (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: 7327
diff changeset
    12
enum IndustryTrigger {
09824471f144 (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: 7327
diff changeset
    13
	/** Triggered each tile loop */
09824471f144 (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: 7327
diff changeset
    14
	INDUSTRY_TRIGGER_TILELOOP_PROCESS = 1,
09824471f144 (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: 7327
diff changeset
    15
	/** Triggered (whole industry) each 256 ticks */
09824471f144 (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: 7327
diff changeset
    16
	INDUSTRY_TRIGGER_256_TICKS        = 2,
09824471f144 (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: 7327
diff changeset
    17
	/** Triggered on cargo delivery */
09824471f144 (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: 7327
diff changeset
    18
	INDUSTRY_TRIGGER_CARGO_DELIVERY   = 4,
09824471f144 (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: 7327
diff changeset
    19
};
09824471f144 (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: 7327
diff changeset
    20
8213
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 7622
diff changeset
    21
/** From where is callback CBID_INDUSTRY_AVAILABLE been called */
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 7622
diff changeset
    22
enum IndustryAvailabilityCallType {
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 7622
diff changeset
    23
	IACT_MAPGENERATION,   ///< during random map generation
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 7622
diff changeset
    24
	IACT_RANDOMCREATION,  ///< during creation of random ingame industry
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 7622
diff changeset
    25
	IACT_USERCREATION,    ///< from the Fund/build window
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 7622
diff changeset
    26
};
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 7622
diff changeset
    27
6884
a931841e9df4 (svn r10127) -Add: Addition of basic structure for industry tiles callbacks (unfinished).
belugas
parents: 6868
diff changeset
    28
/* in newgrf_industry.cpp */
6835
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
    29
uint32 IndustryGetVariable(const ResolverObject *object, byte variable, byte parameter, bool *available);
7327
d810677fb909 (svn r10690) -Codechange: use the enum that describes all callback IDs in favor of "just" using an untyped integer.
rubidium
parents: 7260
diff changeset
    30
uint16 GetIndustryCallback(CallbackID callback, uint32 param1, uint32 param2, Industry *industry, IndustryType type, TileIndex tile);
7622
12388e4d86bb (svn r11152) -Fix: GetIndustryIDAtOffset crashed when translation of the GFX ID would be needed. Fix by Belugas.
rubidium
parents: 7621
diff changeset
    31
uint32 GetIndustryIDAtOffset(TileIndex new_tile, const Industry *i);
7168
25e07ccb4a3d (svn r10442) -Codechange: implement the industry production callback.
rubidium
parents: 7102
diff changeset
    32
void IndustryProductionCallback(Industry *ind, int reason);
8436
c2600da0d3e3 (svn r12006) -Fix: implement FS#1697 without the nasty side effects as specified in FS#1712.
rubidium
parents: 8213
diff changeset
    33
bool CheckIfCallBackAllowsCreation(TileIndex tile, IndustryType type, uint itspec_index, uint32 seed);
7260
487c5de4fe2c (svn r10572) -Codechange: Add function CheckIfCallBackAllowsAvailability for industries
belugas
parents: 7234
diff changeset
    34
bool CheckIfCallBackAllowsAvailability(IndustryType type, IndustryAvailabilityCallType creation_type);
6835
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
    35
7233
aadfbb505671 (svn r10514) -Codechange: add support for getting the nearest industry with a given type.
rubidium
parents: 7207
diff changeset
    36
IndustryType MapNewGRFIndustryType(IndustryType grf_type, uint32 grf_id);
aadfbb505671 (svn r10514) -Codechange: add support for getting the nearest industry with a given type.
rubidium
parents: 7207
diff changeset
    37
6884
a931841e9df4 (svn r10127) -Add: Addition of basic structure for industry tiles callbacks (unfinished).
belugas
parents: 6868
diff changeset
    38
/* in newgrf_industrytiles.cpp*/
7234
c6d0e14ae80b (svn r10515) -Codechange: allow getting some more data about the environment of an industry.
rubidium
parents: 7233
diff changeset
    39
uint32 GetNearbyIndustryTileInformation(byte parameter, TileIndex tile, IndustryID index);
c6d0e14ae80b (svn r10515) -Codechange: allow getting some more data about the environment of an industry.
rubidium
parents: 7233
diff changeset
    40
6835
31c89aab2d61 (svn r10074) -Add: Addition of IndustryOverrideManager as well as the basic (and unfinished) support for callbacks for industries
belugas
parents:
diff changeset
    41
#endif /* NEWGRF_INDUSTRIES_H */