ESSImport: convert global map markers

openmw-35
scrawl 10 years ago
parent c354f48a07
commit e484a91708

@ -76,6 +76,12 @@ namespace ESSImport
cell.mName = id;
cell.load(esm, false);
// I wonder what 0x40 does?
if (cell.isExterior() && cell.mData.mFlags & 0x20)
{
mContext->mGlobalMapState.mMarkers.insert(std::make_pair(cell.mData.mX, cell.mData.mY));
}
// note if the player is in a nameless exterior cell, we will assign the cellId later based on player position
if (id == mContext->mPlayerCellName)
{
@ -304,6 +310,10 @@ namespace ESSImport
it->save(esm);
esm.endRecord(ESM::REC_MARK);
}
esm.startRecord(ESM::REC_GMAP);
mContext->mGlobalMapState.save(esm);
esm.endRecord(ESM::REC_GMAP);
}
}

@ -123,7 +123,7 @@ namespace ESSImport
if (i >= file2.mRecords.size())
{
std::cout << "Record in file1 not present in file2: (1) 0x" << std::hex << rec.mFileOffset;
std::cout << "Record in file1 not present in file2: (1) 0x" << std::hex << rec.mFileOffset << std::endl;
return;
}
@ -142,7 +142,7 @@ namespace ESSImport
if (j >= rec2.mSubrecords.size())
{
std::cout << "Subrecord in file1 not present in file2: (1) 0x" << std::hex << sub.mFileOffset;
std::cout << "Subrecord in file1 not present in file2: (1) 0x" << std::hex << sub.mFileOffset << std::endl;
return;
}

@ -6,6 +6,7 @@
#include <components/esm/loadnpc.hpp>
#include <components/esm/player.hpp>
#include <components/esm/dialoguestate.hpp>
#include <components/esm/globalmap.hpp>
#include "importnpcc.hpp"
#include "importcrec.hpp"
@ -28,6 +29,8 @@ namespace ESSImport
ESM::DialogueState mDialogueState;
ESM::GlobalMap mGlobalMapState;
int mDay, mMonth, mYear;
float mHour;
@ -48,6 +51,11 @@ namespace ESSImport
mPlayer.mCurrentCrimeId = 0; // TODO
mPlayer.mObject.blank();
mPlayer.mObject.mRef.mRefID = "player"; // REFR.mRefID would be PlayerSaveGame
mGlobalMapState.mBounds.mMinX = 0;
mGlobalMapState.mBounds.mMaxX = 0;
mGlobalMapState.mBounds.mMinY = 0;
mGlobalMapState.mBounds.mMaxY = 0;
}
};

Loading…
Cancel
Save