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 "command.h"
|
||||||
#include "variables.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
|
* 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);
|
MarkSignDirty(si);
|
||||||
InvalidateWindow(WC_SIGN_LIST, 0);
|
InvalidateWindow(WC_SIGN_LIST, 0);
|
||||||
_sign_sort_dirty = true;
|
_sign_sort_dirty = true;
|
||||||
_new_sign = si;
|
_new_sign_id = si->index;
|
||||||
|
_total_signs++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return CommandCost();
|
return CommandCost();
|
||||||
|
@ -199,6 +201,7 @@ CommandCost CmdRenameSign(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||||
|
|
||||||
InvalidateWindow(WC_SIGN_LIST, 0);
|
InvalidateWindow(WC_SIGN_LIST, 0);
|
||||||
_sign_sort_dirty = true;
|
_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)
|
void CcPlaceSign(bool success, TileIndex tile, uint32 p1, uint32 p2)
|
||||||
{
|
{
|
||||||
if (success) {
|
if (success) {
|
||||||
ShowRenameSignWindow(_new_sign);
|
ShowRenameSignWindow(GetSign(_new_sign_id));
|
||||||
ResetObjectToPlace();
|
ResetObjectToPlace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -238,6 +241,7 @@ void PlaceProc_Sign(TileIndex tile)
|
||||||
*/
|
*/
|
||||||
void InitializeSigns()
|
void InitializeSigns()
|
||||||
{
|
{
|
||||||
|
_total_signs = 0;
|
||||||
CleanPool(&_Sign_pool);
|
CleanPool(&_Sign_pool);
|
||||||
AddBlockToPool(&_Sign_pool);
|
AddBlockToPool(&_Sign_pool);
|
||||||
}
|
}
|
||||||
|
@ -275,6 +279,7 @@ static void Save_SIGN()
|
||||||
*/
|
*/
|
||||||
static void Load_SIGN()
|
static void Load_SIGN()
|
||||||
{
|
{
|
||||||
|
_total_signs = 0;
|
||||||
int index;
|
int index;
|
||||||
while ((index = SlIterateArray()) != -1) {
|
while ((index = SlIterateArray()) != -1) {
|
||||||
Sign *si;
|
Sign *si;
|
||||||
|
@ -284,6 +289,8 @@ static void Load_SIGN()
|
||||||
|
|
||||||
si = GetSign(index);
|
si = GetSign(index);
|
||||||
SlObject(si, _sign_desc);
|
SlObject(si, _sign_desc);
|
||||||
|
|
||||||
|
_total_signs++;
|
||||||
}
|
}
|
||||||
|
|
||||||
_sign_sort_dirty = true;
|
_sign_sort_dirty = true;
|
||||||
|
|
|
@ -18,6 +18,12 @@ struct Sign {
|
||||||
SignID index;
|
SignID index;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
INVALID_SIGN = 0xFFFF,
|
||||||
|
};
|
||||||
|
|
||||||
|
extern SignID _new_sign_id;
|
||||||
|
|
||||||
DECLARE_OLD_POOL(Sign, Sign, 2, 16000)
|
DECLARE_OLD_POOL(Sign, Sign, 2, 16000)
|
||||||
|
|
||||||
static inline SignID GetMaxSignIndex()
|
static inline SignID GetMaxSignIndex()
|
||||||
|
@ -32,7 +38,8 @@ static inline SignID GetMaxSignIndex()
|
||||||
|
|
||||||
static inline uint GetNumSigns()
|
static inline uint GetNumSigns()
|
||||||
{
|
{
|
||||||
return GetSignPoolSize();
|
extern uint _total_signs;
|
||||||
|
return _total_signs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue