Files
@ r4725:3a289e38fda7
Branch filter:
Location: cpp/openttd-patchpack/source/signs.h - annotation
r4725:3a289e38fda7
1.7 KiB
text/x-c
(svn r6637) -Codechange: merged all (vehicle type)EnterDepot into VehicleEnterDepot()
This revealed duplicated code like aircraft lists got invalidated twice
Moved invalidation of the vehicle detail window to VehicleServiceInDepot() as it should always be updated when serviced
This revealed duplicated code like aircraft lists got invalidated twice
Moved invalidation of the vehicle detail window to VehicleServiceInDepot() as it should always be updated when serviced
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 */
|