Files
@ r4603:3b159d0db197
Branch filter:
Location: cpp/openttd-patchpack/source/signs.h - annotation
r4603:3b159d0db197
1.7 KiB
text/x-c
(svn r6455) - Feature: Add 2cc (two company colours) livery schemes. This replaces the original colour selection window and bumps the saveload version. Liveries are supported for all vehicles, not just those with 2cc support. Thanks to lakie for GUI inspiration.
r2186:5ee653b1b5e1 r2186:5ee653b1b5e1 r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r1283:18c7762aefdd r1283:18c7762aefdd r4349:25d4686a20cd r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r4349:25d4686a20cd r988:49007d1ff1d3 r4349:25d4686a20cd r4349:25d4686a20cd r988:49007d1ff1d3 r1283:18c7762aefdd r988:49007d1ff1d3 r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r4349:25d4686a20cd r988:49007d1ff1d3 r4349:25d4686a20cd r988:49007d1ff1d3 r988:49007d1ff1d3 r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r4354:95cd3ce6deea r4354:95cd3ce6deea r4354:95cd3ce6deea r4354:95cd3ce6deea r4354:95cd3ce6deea r4354:95cd3ce6deea r4354:95cd3ce6deea r4354:95cd3ce6deea r4354:95cd3ce6deea r4354:95cd3ce6deea r4346:fa4ac6b6f852 r4346:fa4ac6b6f852 r4346:fa4ac6b6f852 r4349:25d4686a20cd r4346:fa4ac6b6f852 r4349:25d4686a20cd r4346:fa4ac6b6f852 r4346:fa4ac6b6f852 r4352:460a517b040f r4352:460a517b040f r4352:460a517b040f r4352:460a517b040f r4352:460a517b040f r4400:e62f87ce4614 r4400:e62f87ce4614 r4384:792750cf5e5e r4384:792750cf5e5e r4400:e62f87ce4614 r4384:792750cf5e5e r4384:792750cf5e5e r4384:792750cf5e5e r4346:fa4ac6b6f852 r1283:18c7762aefdd r988:49007d1ff1d3 r1575:506aa37772b0 r1575:506aa37772b0 r1093:18f56ef2d029 r1977:1f8b99c96041 r988:49007d1ff1d3 r988:49007d1ff1d3 r4349:25d4686a20cd r988:49007d1ff1d3 r988:49007d1ff1d3 | /* $Id$ */
#ifndef SIGNS_H
#define SIGNS_H
#include "pool.h"
typedef struct Sign {
StringID str;
ViewportSign sign;
int32 x;
int32 y;
byte z;
PlayerID owner; // placed by this player. Anyone can delete them though. OWNER_NONE for gray signs from old games.
SignID index;
} Sign;
extern MemoryPool _sign_pool;
/**
* Get the pointer to the sign with index 'index'
*/
static inline Sign *GetSign(SignID index)
{
return (Sign *)GetItemFromPool(&_sign_pool, index);
}
/**
* Get the current size of the SignPool
*/
static inline uint16 GetSignPoolSize(void)
{
return _sign_pool.total_items;
}
static inline SignID GetSignArraySize(void)
{
/* TODO - This isn't the real content of the function, but
* with the new pool-system this will be replaced with one that
* _really_ returns the highest index + 1. Now it just returns
* the next safe value we are sure about everything is below.
*/
return GetSignPoolSize();
}
/**
* Check if a Sign really exists.
*/
static inline bool IsValidSign(const Sign *si)
{
return si->str != STR_NULL;
}
static inline bool IsValidSignID(uint index)
{
return index < GetSignPoolSize() && IsValidSign(GetSign(index));
}
void DestroySign(Sign *si);
static inline void DeleteSign(Sign *si)
{
DestroySign(si);
si->str = STR_NULL;
}
#define FOR_ALL_SIGNS_FROM(ss, start) for (ss = GetSign(start); ss != NULL; ss = (ss->index + 1 < GetSignPoolSize()) ? GetSign(ss->index + 1) : NULL) if (IsValidSign(ss))
#define FOR_ALL_SIGNS(ss) FOR_ALL_SIGNS_FROM(ss, 0)
VARDEF bool _sign_sort_dirty;
void UpdateAllSignVirtCoords(void);
void PlaceProc_Sign(TileIndex tile);
/* misc.c */
void ShowRenameSignWindow(const Sign *si);
#endif /* SIGNS_H */
|