mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(svn r19835) -Codechange: Extract grfident equality check to its own method.
This commit is contained in:
parent
39723ed247
commit
88fe11aae3
@ -452,11 +452,7 @@ void ScanNewGRFFiles()
|
||||
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;
|
||||
|
@ -53,6 +53,18 @@ enum GRFListCompatibility {
|
||||
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 */
|
||||
|
Loading…
Reference in New Issue
Block a user