From 376b6d04d8602ea374e98620cf170c2d94007542 Mon Sep 17 00:00:00 2001 From: Ted John Date: Mon, 28 May 2018 00:31:37 +0100 Subject: [PATCH] Fix Linux builds --- src/openrct2/object/Object.h | 13 +++++++++++++ src/openrct2/object/ObjectManager.cpp | 6 +++--- src/openrct2/rct1/S4Importer.cpp | 3 +-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/openrct2/object/Object.h b/src/openrct2/object/Object.h index c88e59bc12..fb7aacea73 100644 --- a/src/openrct2/object/Object.h +++ b/src/openrct2/object/Object.h @@ -88,6 +88,19 @@ struct rct_object_entry { }; }; + void SetName(const char * value) + { + auto src = value; + for (size_t i = 0; i < sizeof(name); i++) + { + auto dc = ' '; + if (*src != '\0') + { + dc = *src++; + } + name[i] = dc; + } + } }; assert_struct_size(rct_object_entry, 0x10); diff --git a/src/openrct2/object/ObjectManager.cpp b/src/openrct2/object/ObjectManager.cpp index 4582b9e826..630800bfed 100644 --- a/src/openrct2/object/ObjectManager.cpp +++ b/src/openrct2/object/ObjectManager.cpp @@ -476,7 +476,7 @@ private: std::vector requiredObjects; std::vector missingObjects; - for (sint32 i = 0; i < count; i++) + for (size_t i = 0; i < count; i++) { const rct_object_entry * entry = &entries[i]; const ObjectRepositoryItem * ori = nullptr; @@ -511,9 +511,9 @@ private: auto begin = n * partitionSize; auto end = std::min(items.size(), begin + partitionSize); threads.emplace_back( - [func, &items](size_t begin, size_t end) + [func](size_t pbegin, size_t pend) { - for (size_t i = begin; i < end; i++) + for (size_t i = pbegin; i < pend; i++) { func(i); } diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index c3546c08d6..b84b41c944 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -1896,8 +1896,7 @@ private: { rct_object_entry entry{}; entry.flags = ((OBJECT_SOURCE_RCT2 << 4) & 0xF0) | (objectType & 0x0F); - std::memset(entry.name, ' ', sizeof(entry.name)); - std::strncpy(entry.name, objectName, sizeof(entry.name)); + entry.SetName(objectName); entries.push_back(entry); } }