(svn r1897) - Fix: [ 1120424 ] Set name overwrites same name. Renamings because your name is in use are virtual though so if name "b" is in use your name will become "b #1", renaming yourself again to "b" will become "b #2", and will toggle between these two.
#ifndef SIGNS_H#define SIGNS_H#include"pool.h"typedefstructSignStruct{StringIDstr;ViewportSignsign;int32x;int32y;bytez;byteowner;// placed by this player. Anyone can delete them though.// OWNER_NONE for gray signs from old games.uint16index;}SignStruct;externMemoryPool_sign_pool;/** * Check if a Sign really exists. */staticinlineboolIsValidSign(SignStruct*ss){returnss->str!=0;}/** * Get the pointer to the sign with index 'index' */staticinlineSignStruct*GetSign(uintindex){return(SignStruct*)GetItemFromPool(&_sign_pool,index);}/** * Get the current size of the SignPool */staticinlineuint16GetSignPoolSize(void){return_sign_pool.total_items;}#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)VARDEFSignStruct*_new_sign_struct;voidUpdateAllSignVirtCoords(void);voidPlaceProc_Sign(uinttile);/* misc.c */voidShowRenameSignWindow(SignStruct*ss);#endif /* SIGNS_H */