Mercurial > hg > openttd
changeset 15206:f0543162e40b draft
(svn r19835) -Codechange: Extract grfident equality check to its own method.
author | alberth <alberth@openttd.org> |
---|---|
date | Sun, 16 May 2010 18:50:37 +0000 |
parents | 0dca88008a3a |
children | e31a7ac11eb1 |
files | src/newgrf_config.cpp src/newgrf_config.h |
diffstat | 2 files changed, 13 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -452,11 +452,7 @@ const GRFConfig *FindGRFConfig(uint32 grfid, const uint8 *md5sum) { for (const GRFConfig *c = _all_grfs; c != NULL; c = c->next) { - if (c->ident.grfid == grfid) { - if (md5sum == NULL) return c; - - if (memcmp(md5sum, c->ident.md5sum, sizeof(c->ident.md5sum)) == 0) return c; - } + if (c->ident.HasGrfIdentifier(grfid, md5sum)) return c; } return NULL;
--- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -53,6 +53,18 @@ struct GRFIdentifier { uint32 grfid; ///< GRF ID (defined by Action 0x08) uint8 md5sum[16]; ///< MD5 checksum of file to distinguish files with the same GRF ID (eg. newer version of GRF) + + /** Does the identification match the provided values? + * @param grfid Expected grfid. + * @param md5sum Expected md5sum, may be \c NULL (in which case, do not check it). + * @return the object has the provided grfid and md5sum. + */ + FORCEINLINE bool HasGrfIdentifier(uint32 grfid, const uint8 *md5sum) const + { + if (this->grfid != grfid) return false; + if (md5sum == NULL) return true; + return memcmp(md5sum, this->md5sum, sizeof(this->md5sum)) == 0; + } }; /** Information about why GRF had problems during initialisation */