Changeset - r7295:df856415e8c1
[Not reviewed]
master
0 2 0
rubidium - 17 years ago 2007-07-20 18:35:33
rubidium@openttd.org
(svn r10643) -Merge (from NoAI): properly counting the amount of signs instead of using the size of the sign pool.
2 files changed with 18 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/signs.cpp
Show inline comments
 
@@ -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,
 
		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
 

	
 
			InvalidateWindow(WC_SIGN_LIST, 0);
 
			_sign_sort_dirty = true;
 
			_total_signs--;
 
		}
 
	}
 

	
 
@@ -215,7 +218,7 @@ CommandCost CmdRenameSign(TileIndex tile
 
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;
src/signs.h
Show inline comments
 
@@ -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;
 
}
 

	
 
/**
0 comments (0 inline, 0 general)