mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r10643) -Merge (from NoAI): properly counting the amount of signs instead of using the size of the sign pool.
This commit is contained in:
parent
7aa6d30922
commit
3f983ff1f2
|
@ -14,7 +14,8 @@
|
|||
#include "command.h"
|
||||
#include "variables.h"
|
||||
|
||||
static Sign *_new_sign;
|
||||
SignID _new_sign_id;
|
||||
uint _total_signs;
|
||||
|
||||
/**
|
||||
* Called if a new block is added to the sign-pool
|
||||
|
@ -145,7 +146,8 @@ CommandCost CmdPlaceSign(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
|||
MarkSignDirty(si);
|
||||
InvalidateWindow(WC_SIGN_LIST, 0);
|
||||
_sign_sort_dirty = true;
|
||||
_new_sign = si;
|
||||
_new_sign_id = si->index;
|
||||
_total_signs++;
|
||||
}
|
||||
|
||||
return CommandCost();
|
||||
|
@ -199,6 +201,7 @@ CommandCost CmdRenameSign(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
|||
|
||||
InvalidateWindow(WC_SIGN_LIST, 0);
|
||||
_sign_sort_dirty = true;
|
||||
_total_signs--;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -215,7 +218,7 @@ CommandCost CmdRenameSign(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
|||
void CcPlaceSign(bool success, TileIndex tile, uint32 p1, uint32 p2)
|
||||
{
|
||||
if (success) {
|
||||
ShowRenameSignWindow(_new_sign);
|
||||
ShowRenameSignWindow(GetSign(_new_sign_id));
|
||||
ResetObjectToPlace();
|
||||
}
|
||||
}
|
||||
|
@ -238,6 +241,7 @@ void PlaceProc_Sign(TileIndex tile)
|
|||
*/
|
||||
void InitializeSigns()
|
||||
{
|
||||
_total_signs = 0;
|
||||
CleanPool(&_Sign_pool);
|
||||
AddBlockToPool(&_Sign_pool);
|
||||
}
|
||||
|
@ -275,6 +279,7 @@ static void Save_SIGN()
|
|||
*/
|
||||
static void Load_SIGN()
|
||||
{
|
||||
_total_signs = 0;
|
||||
int index;
|
||||
while ((index = SlIterateArray()) != -1) {
|
||||
Sign *si;
|
||||
|
@ -284,6 +289,8 @@ static void Load_SIGN()
|
|||
|
||||
si = GetSign(index);
|
||||
SlObject(si, _sign_desc);
|
||||
|
||||
_total_signs++;
|
||||
}
|
||||
|
||||
_sign_sort_dirty = true;
|
||||
|
|
|
@ -18,6 +18,12 @@ struct Sign {
|
|||
SignID index;
|
||||
};
|
||||
|
||||
enum {
|
||||
INVALID_SIGN = 0xFFFF,
|
||||
};
|
||||
|
||||
extern SignID _new_sign_id;
|
||||
|
||||
DECLARE_OLD_POOL(Sign, Sign, 2, 16000)
|
||||
|
||||
static inline SignID GetMaxSignIndex()
|
||||
|
@ -32,7 +38,8 @@ static inline SignID GetMaxSignIndex()
|
|||
|
||||
static inline uint GetNumSigns()
|
||||
{
|
||||
return GetSignPoolSize();
|
||||
extern uint _total_signs;
|
||||
return _total_signs;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue