File diff r19265:e2eff9dbb4f2 → r19266:a55aa4bf5bd3
src/newgrf_class_func.h
Show inline comments
 
@@ -31,6 +31,7 @@ DEFINE_NEWGRF_CLASS_METHOD(void)::ResetC
 
	this->global_id = 0;
 
	this->name      = STR_EMPTY;
 
	this->count     = 0;
 
	this->ui_count  = 0;
 

	
 
	free(this->spec);
 
	this->spec = NULL;
 
@@ -80,6 +81,8 @@ DEFINE_NEWGRF_CLASS_METHOD(void)::Insert
 
	this->spec = ReallocT(this->spec, this->count);
 

	
 
	this->spec[i] = spec;
 

	
 
	if (this->IsUIAvailable(i)) this->ui_count++;
 
}
 

	
 
/**
 
@@ -117,6 +120,19 @@ DEFINE_NEWGRF_CLASS_METHOD(uint)::GetCla
 
}
 

	
 
/**
 
 * Get the number of classes available to the user.
 
 * @return The number of classes.
 
 */
 
DEFINE_NEWGRF_CLASS_METHOD(uint)::GetUIClassCount()
 
{
 
	uint cnt = 0;
 
	for (uint i = 0; i < Tmax && classes[i].global_id != 0; i++) {
 
		if (classes[i].GetUISpecCount() > 0) cnt++;
 
	}
 
	return cnt;
 
}
 

	
 
/**
 
 * Get a spec from the class at a given index.
 
 * @param index  The index where to find the spec.
 
 * @return The spec at given location.
 
@@ -163,5 +179,6 @@ DEFINE_NEWGRF_CLASS_METHOD(const Tspec *
 
	template void name::Assign(Tspec *spec); \
 
	template NewGRFClass<Tspec, Tid, Tmax> *name::Get(Tid cls_id); \
 
	template uint name::GetClassCount(); \
 
	template uint name::GetUIClassCount(); \
 
	template const Tspec *name::GetSpec(uint index) const; \
 
	template const Tspec *name::GetByGrf(uint32 grfid, byte localidx, int *index);