Changeset - r6073:7d9b29ccbda4
[Not reviewed]
master
0 2 0
Darkvater - 17 years ago 2007-02-18 22:37:33
darkvater@openttd.org
(svn r8806) -Codechange (r7582): Remove a duplicate append of static GRF's when loading the game and hide the intrinsics of adding elements to the GRFConfig list by using an AppendToGRFConfigList function.
2 files changed with 16 insertions and 13 deletions:
0 comments (0 inline, 0 general)
src/newgrf_config.cpp
Show inline comments
 
@@ -115,7 +115,7 @@ void ClearGRFConfigList(GRFConfig **conf
 

	
 
/** Copy a GRF Config list
 
 * @param dst pointer to destination list
 
 * @param srt pointer to source list values
 
 * @param src pointer to source list values
 
 * @return pointer to the last value added to the destination list */
 
GRFConfig **CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src)
 
{
 
@@ -179,6 +179,17 @@ void AppendStaticGRFConfigs(GRFConfig **
 
	RemoveDuplicatesFromGRFConfigList(*dst);
 
}
 

	
 
/** Appends an element to a list of GRFs
 
 * @param dst the head of the list to add to
 
 * @param el the element that is being added (as a copy) */
 
void AppendToGRFConfigList(GRFConfig **dst, const GRFConfig *el)
 
{
 
	GRFConfig **tail = dst;
 
	while (*tail != NULL) tail = &(*tail)->next;
 
	CopyGRFConfigList(tail, el);
 
	RemoveDuplicatesFromGRFConfigList(*dst);
 
}
 

	
 

	
 
/* Reset the current GRF Config to either blank or newgame settings */
 
void ResetGRFConfig(bool defaults)
 
@@ -454,23 +465,14 @@ static void Save_NGRF(void)
 

	
 
static void Load_NGRF(void)
 
{
 
	GRFConfig *first = NULL;
 
	GRFConfig **last = &first;
 

	
 
	GRFConfig *c = CallocT<GRFConfig>(1);
 
	while (SlIterateArray() != -1) {
 
		GRFConfig *c = CallocT<GRFConfig>(1);
 
		SlObject(c, _grfconfig_desc);
 

	
 
		/* Append our configuration to the list */
 
		*last = c;
 
		last = &c->next;
 
		AppendToGRFConfigList(&_grfconfig, c);
 
	}
 
	free(c);
 

	
 
	/* Append static NewGRF configuration */
 
	CopyGRFConfigList(last, _grfconfig_static);
 

	
 
	ClearGRFConfigList(&_grfconfig);
 
	_grfconfig = first;
 
	AppendStaticGRFConfigs(&_grfconfig);
 
}
 

	
src/newgrf_config.h
Show inline comments
 
@@ -49,6 +49,7 @@ const GRFConfig *FindGRFConfig(uint32 gr
 
GRFConfig *GetGRFConfig(uint32 grfid);
 
GRFConfig **CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src);
 
void AppendStaticGRFConfigs(GRFConfig **dst);
 
void AppendToGRFConfigList(GRFConfig **dst, const GRFConfig *el);
 
void ClearGRFConfig(GRFConfig **config);
 
void ClearGRFConfigList(GRFConfig **config);
 
void ResetGRFConfig(bool defaults);
0 comments (0 inline, 0 general)