Changeset - r19261:64cd03705a3e
[Not reviewed]
master
0 2 0
frosch - 12 years ago 2012-04-22 16:28:04
frosch@openttd.org
(svn r24164) -Codechange: Split parts of static NewGRFClass::Reset() into non-static ResetClass().
2 files changed with 15 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/newgrf_class.h
Show inline comments
 
@@ -30,6 +30,8 @@ private:
 
	 */
 
	static NewGRFClass<Tspec, Tid, Tmax> classes[Tmax];
 

	
 
	void ResetClass();
 

	
 
	/** Initialise the defaults. */
 
	static void InsertDefaults();
 

	
src/newgrf_class_func.h
Show inline comments
 
@@ -25,16 +25,22 @@
 
template <typename Tspec, typename Tid, Tid Tmax>
 
NewGRFClass<Tspec, Tid, Tmax> NewGRFClass<Tspec, Tid, Tmax>::classes[Tmax];
 

	
 
/** Reset the class, i.e. clear everything. */
 
DEFINE_NEWGRF_CLASS_METHOD(void)::ResetClass()
 
{
 
	this->global_id = 0;
 
	this->name      = STR_EMPTY;
 
	this->count     = 0;
 

	
 
	free(this->spec);
 
	this->spec = NULL;
 
}
 

	
 
/** Reset the classes, i.e. clear everything. */
 
DEFINE_NEWGRF_CLASS_METHOD(void)::Reset()
 
{
 
	for (Tid i = (Tid)0; i < Tmax; i++) {
 
		classes[i].global_id = 0;
 
		classes[i].name      = STR_EMPTY;
 
		classes[i].count     = 0;
 

	
 
		free(classes[i].spec);
 
		classes[i].spec = NULL;
 
		classes[i].ResetClass();
 
	}
 

	
 
	InsertDefaults();
 
@@ -160,6 +166,7 @@ DEFINE_NEWGRF_CLASS_METHOD(const Tspec *
 

	
 
/** Force instantiation of the methods so we don't get linker errors. */
 
#define INSTANTIATE_NEWGRF_CLASS_METHODS(name, Tspec, Tid, Tmax) \
 
	template void name::ResetClass(); \
 
	template void name::Reset(); \
 
	template Tid name::Allocate(uint32 global_id); \
 
	template void name::Assign(Tspec *spec); \
0 comments (0 inline, 0 general)