diff --git a/apps/openmw-mp/Script/Functions/RecordsDynamic.cpp b/apps/openmw-mp/Script/Functions/RecordsDynamic.cpp index 49d17ef09..d1991abe9 100644 --- a/apps/openmw-mp/Script/Functions/RecordsDynamic.cpp +++ b/apps/openmw-mp/Script/Functions/RecordsDynamic.cpp @@ -1188,6 +1188,8 @@ void RecordsDynamicFunctions::SetRecordRace(const char* race) noexcept tempNpc.data.mRace = race; else LOG_MESSAGE_SIMPLE(TimedLog::LOG_ERROR, "Tried to set race for record type %i which lacks that property", writeRecordsType); + + tempOverrides.hasRace = true; } void RecordsDynamicFunctions::SetRecordClass(const char* charClass) noexcept diff --git a/apps/openmw/mwmp/RecordHelper.cpp b/apps/openmw/mwmp/RecordHelper.cpp index 4f08e924e..002ad291e 100644 --- a/apps/openmw/mwmp/RecordHelper.cpp +++ b/apps/openmw/mwmp/RecordHelper.cpp @@ -939,7 +939,7 @@ void RecordHelper::overrideRecord(const mwmp::NpcRecord& record) else finalData.setIsMale(baseData->isMale()); - if (!record.data.mRace.empty()) + if (record.baseOverrides.hasRace) finalData.mRace = recordData.mRace; if (record.baseOverrides.hasModel) diff --git a/components/openmw-mp/Base/BaseWorldstate.hpp b/components/openmw-mp/Base/BaseWorldstate.hpp index b5d97febd..0ce455b78 100644 --- a/components/openmw-mp/Base/BaseWorldstate.hpp +++ b/components/openmw-mp/Base/BaseWorldstate.hpp @@ -113,6 +113,7 @@ namespace mwmp bool hasHair = false; bool hasHead = false; bool hasGender = false; + bool hasRace = false; bool hasFaction = false; bool hasScale = false; diff --git a/components/openmw-mp/Packets/Worldstate/PacketRecordDynamic.cpp b/components/openmw-mp/Packets/Worldstate/PacketRecordDynamic.cpp index 860308e3b..734503e7c 100644 --- a/components/openmw-mp/Packets/Worldstate/PacketRecordDynamic.cpp +++ b/components/openmw-mp/Packets/Worldstate/PacketRecordDynamic.cpp @@ -296,6 +296,7 @@ void PacketRecordDynamic::Packet(RakNet::BitStream *bs, bool send) RW(overrides.hasGender, send); RW(overrides.hasFlags, send); RW(overrides.hasModel, send); + RW(overrides.hasRace, send); RW(overrides.hasHair, send); RW(overrides.hasHead, send); RW(overrides.hasFaction, send);