Files
@ r3478:523ece58cb16
Branch filter:
Location: cpp/openttd-patchpack/source/signs.h - annotation
r3478:523ece58cb16
1.3 KiB
text/x-c
(svn r4323) -Regression: Clear the slot assignments of all vehicles heading twoards a road stop if that road stop gets removed
This issue was fixed in r2210 and reintroduced in r4259 when the multistop handling was overhauled.
This issue was fixed in r2210 and reintroduced in r4259 when the multistop handling was overhauled.
r2186:5ee653b1b5e1 r2186:5ee653b1b5e1 r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r1283:18c7762aefdd r1283:18c7762aefdd r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r2498:8dfa040ed505 r1165:c1659df3fe25 r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r988:49007d1ff1d3 r1283:18c7762aefdd r988:49007d1ff1d3 r1283:18c7762aefdd r1330:62eaa061ec97 r1330:62eaa061ec97 r2436:963efe8b84cc r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1283:18c7762aefdd r1283:18c7762aefdd r988:49007d1ff1d3 r988:49007d1ff1d3 r1283:18c7762aefdd r988:49007d1ff1d3 r988:49007d1ff1d3 r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1283:18c7762aefdd r1837:5ef1b78755fe r1837:5ef1b78755fe r1837:5ef1b78755fe r1837:5ef1b78755fe r1837:5ef1b78755fe r1283:18c7762aefdd r1283:18c7762aefdd r988:49007d1ff1d3 r1575:506aa37772b0 r1575:506aa37772b0 r1575:506aa37772b0 r1093:18f56ef2d029 r1977:1f8b99c96041 r988:49007d1ff1d3 r988:49007d1ff1d3 r2116:ddc2d73f5c38 r988:49007d1ff1d3 r988:49007d1ff1d3 | /* $Id$ */
#ifndef SIGNS_H
#define SIGNS_H
#include "pool.h"
typedef struct SignStruct {
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.
uint16 index;
} SignStruct;
extern MemoryPool _sign_pool;
/**
* Check if a Sign really exists.
*/
static inline bool IsValidSign(const SignStruct* ss)
{
return ss->str != 0;
}
/**
* Get the pointer to the sign with index 'index'
*/
static inline SignStruct *GetSign(uint index)
{
return (SignStruct*)GetItemFromPool(&_sign_pool, index);
}
/**
* Get the current size of the SignPool
*/
static inline uint16 GetSignPoolSize(void)
{
return _sign_pool.total_items;
}
static inline bool IsSignIndex(uint index)
{
return index < GetSignPoolSize();
}
#define FOR_ALL_SIGNS_FROM(ss, start) for (ss = GetSign(start); ss != NULL; ss = (ss->index + 1 < GetSignPoolSize()) ? GetSign(ss->index + 1) : NULL)
#define FOR_ALL_SIGNS(ss) FOR_ALL_SIGNS_FROM(ss, 0)
VARDEF bool _sign_sort_dirty;
VARDEF uint16 *_sign_sort;
void UpdateAllSignVirtCoords(void);
void PlaceProc_Sign(TileIndex tile);
/* misc.c */
void ShowRenameSignWindow(const SignStruct *ss);
#endif /* SIGNS_H */
|