mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-01 04:45:36 +00:00
Merge branch 'somethingextra' into 'master'
Handle NiExtraData *properly* See merge request OpenMW/openmw!1059
This commit is contained in:
commit
1e7b9fb6a5
4 changed files with 17 additions and 2 deletions
|
@ -15,6 +15,7 @@ struct Extra : public Record
|
|||
{
|
||||
std::string name;
|
||||
ExtraPtr next; // Next extra data record in the list
|
||||
unsigned int recordSize{0u};
|
||||
|
||||
void read(NIFStream *nif) override
|
||||
{
|
||||
|
@ -23,7 +24,7 @@ struct Extra : public Record
|
|||
else if (nif->getVersion() <= NIFStream::generateVersion(4,2,2,0))
|
||||
{
|
||||
next.read(nif);
|
||||
nif->getUInt(); // Size of the record
|
||||
recordSize = nif->getUInt();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,13 @@
|
|||
namespace Nif
|
||||
{
|
||||
|
||||
void NiExtraData::read(NIFStream *nif)
|
||||
{
|
||||
Extra::read(nif);
|
||||
if (recordSize)
|
||||
nif->getChars(data, recordSize);
|
||||
}
|
||||
|
||||
void NiStringExtraData::read(NIFStream *nif)
|
||||
{
|
||||
Extra::read(nif);
|
||||
|
|
|
@ -29,6 +29,13 @@
|
|||
namespace Nif
|
||||
{
|
||||
|
||||
struct NiExtraData : public Extra
|
||||
{
|
||||
std::vector<char> data;
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
struct NiVertWeightsExtraData : public Extra
|
||||
{
|
||||
void read(NIFStream *nif) override;
|
||||
|
|
|
@ -79,7 +79,7 @@ static std::map<std::string,RecordFactoryEntry> makeFactory()
|
|||
factory["NiPointLight"] = {&construct <NiPointLight> , RC_NiLight };
|
||||
factory["NiSpotLight"] = {&construct <NiSpotLight> , RC_NiLight };
|
||||
factory["NiTextureEffect"] = {&construct <NiTextureEffect> , RC_NiTextureEffect };
|
||||
factory["NiExtraData"] = {&construct <Extra> , RC_NiExtraData };
|
||||
factory["NiExtraData"] = {&construct <NiExtraData> , RC_NiExtraData };
|
||||
factory["NiVertWeightsExtraData"] = {&construct <NiVertWeightsExtraData> , RC_NiVertWeightsExtraData };
|
||||
factory["NiTextKeyExtraData"] = {&construct <NiTextKeyExtraData> , RC_NiTextKeyExtraData };
|
||||
factory["NiStringExtraData"] = {&construct <NiStringExtraData> , RC_NiStringExtraData };
|
||||
|
|
Loading…
Reference in a new issue