Files
@ r3016:b28a60dfd364
Branch filter:
Location: cpp/openttd-patchpack/source/signs.h - annotation
r3016:b28a60dfd364
1.3 KiB
text/x-c
(svn r3596) -Codechange: [OSX] changed to use Apple's macros instead of OTTD macros for endian conversion
This increases the execution speed a lot since GCC can't detect the OTTD macro as an endian conversion
while Apple's code uses the instruction to convert endian instead of a series of instructions to produce the same result
Since we don't have that many endian conversions in the game, overall performance should not increase noteworthy
This increases the execution speed a lot since GCC can't detect the OTTD macro as an endian conversion
while Apple's code uses the instruction to convert endian instead of a series of instructions to produce the same result
Since we don't have that many endian conversions in the game, overall performance should not increase noteworthy
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 */
|