1
0
Fork 0

Fix 8706dcd9: [Script] Byte-swap grfids to match normal expectations.

pull/9462/head
Michael Lutz 2021-08-10 21:09:35 +02:00
parent 580dd118cb
commit b14681891d
2 changed files with 8 additions and 2 deletions

View File

@ -19,13 +19,15 @@ ScriptNewGRFList::ScriptNewGRFList()
{ {
for (auto c = _grfconfig; c != nullptr; c = c->next) { for (auto c = _grfconfig; c != nullptr; c = c->next) {
if (!HasBit(c->flags, GCF_STATIC)) { if (!HasBit(c->flags, GCF_STATIC)) {
this->AddItem(c->ident.grfid); this->AddItem(BSWAP32(c->ident.grfid));
} }
} }
} }
/* static */ bool ScriptNewGRF::IsLoaded(uint32 grfid) /* static */ bool ScriptNewGRF::IsLoaded(uint32 grfid)
{ {
grfid = BSWAP32(grfid); // Match people's expectations.
for (auto c = _grfconfig; c != nullptr; c = c->next) { for (auto c = _grfconfig; c != nullptr; c = c->next) {
if (!HasBit(c->flags, GCF_STATIC) && c->ident.grfid == grfid) { if (!HasBit(c->flags, GCF_STATIC) && c->ident.grfid == grfid) {
return true; return true;
@ -37,6 +39,8 @@ ScriptNewGRFList::ScriptNewGRFList()
/* static */ uint32 ScriptNewGRF::GetVersion(uint32 grfid) /* static */ uint32 ScriptNewGRF::GetVersion(uint32 grfid)
{ {
grfid = BSWAP32(grfid); // Match people's expectations.
for (auto c = _grfconfig; c != nullptr; c = c->next) { for (auto c = _grfconfig; c != nullptr; c = c->next) {
if (!HasBit(c->flags, GCF_STATIC) && c->ident.grfid == grfid) { if (!HasBit(c->flags, GCF_STATIC) && c->ident.grfid == grfid) {
return c->version; return c->version;
@ -48,6 +52,8 @@ ScriptNewGRFList::ScriptNewGRFList()
/* static */ char *ScriptNewGRF::GetName(uint32 grfid) /* static */ char *ScriptNewGRF::GetName(uint32 grfid)
{ {
grfid = BSWAP32(grfid); // Match people's expectations.
for (auto c = _grfconfig; c != nullptr; c = c->next) { for (auto c = _grfconfig; c != nullptr; c = c->next) {
if (!HasBit(c->flags, GCF_STATIC) && c->ident.grfid == grfid) { if (!HasBit(c->flags, GCF_STATIC) && c->ident.grfid == grfid) {
return ::stredup(c->GetName()); return ::stredup(c->GetName());

View File

@ -45,7 +45,7 @@ public:
static uint32 GetVersion(uint32 grfid); static uint32 GetVersion(uint32 grfid);
/** /**
* Get the BridgeID of a bridge at a given tile. * Get the name of a loaded NewGRF.
* @param grfid The NewGRF to query. * @param grfid The NewGRF to query.
* @pre ScriptNewGRF::IsLoaded(grfid). * @pre ScriptNewGRF::IsLoaded(grfid).
* @return The name of the NewGRF or nullptr if no name is defined. * @return The name of the NewGRF or nullptr if no name is defined.