mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-07-03 11:45:59 +00:00
CPoiToWorld: Make use of size_t where applicable
Plays nicer with standard containers.
This commit is contained in:
parent
709fcf18ae
commit
09de312ac3
@ -30,12 +30,12 @@ public:
|
|||||||
void RemovePoi(uint32 PoiID);
|
void RemovePoi(uint32 PoiID);
|
||||||
void RemovePoiMeshMap(uint32 PoiID, uint32 ModelID);
|
void RemovePoiMeshMap(uint32 PoiID, uint32 ModelID);
|
||||||
|
|
||||||
uint32 NumMappedPOIs() const
|
size_t NumMappedPOIs() const
|
||||||
{
|
{
|
||||||
return mMaps.size();
|
return mMaps.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
const SPoiMap* MapByIndex(uint32 Index) const
|
const SPoiMap* MapByIndex(size_t Index) const
|
||||||
{
|
{
|
||||||
return mMaps[Index];
|
return mMaps[Index];
|
||||||
}
|
}
|
||||||
|
@ -10,26 +10,23 @@ bool CPoiToWorldCooker::CookEGMC(CPoiToWorld *pPoiToWorld, IOutputStream& rOut)
|
|||||||
};
|
};
|
||||||
std::vector<SPoiMapping> Mappings;
|
std::vector<SPoiMapping> Mappings;
|
||||||
|
|
||||||
for (uint32 iPoi = 0; iPoi < pPoiToWorld->NumMappedPOIs(); iPoi++)
|
for (size_t iPoi = 0; iPoi < pPoiToWorld->NumMappedPOIs(); iPoi++)
|
||||||
{
|
{
|
||||||
const CPoiToWorld::SPoiMap *pkMap = pPoiToWorld->MapByIndex(iPoi);
|
const CPoiToWorld::SPoiMap *pkMap = pPoiToWorld->MapByIndex(iPoi);
|
||||||
|
|
||||||
for (auto it = pkMap->ModelIDs.begin(); it != pkMap->ModelIDs.end(); it++)
|
for (const auto meshID : pkMap->ModelIDs)
|
||||||
{
|
{
|
||||||
SPoiMapping Mapping;
|
Mappings.push_back({meshID, pkMap->PoiID});
|
||||||
Mapping.MeshID = *it;
|
|
||||||
Mapping.PoiID = pkMap->PoiID;
|
|
||||||
Mappings.push_back(Mapping);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write EGMC
|
// Write EGMC
|
||||||
rOut.WriteLong(Mappings.size());
|
rOut.WriteLong(Mappings.size());
|
||||||
|
|
||||||
for (uint32 iMap = 0; iMap < Mappings.size(); iMap++)
|
for (const auto& mapping : Mappings)
|
||||||
{
|
{
|
||||||
rOut.WriteLong(Mappings[iMap].MeshID);
|
rOut.WriteLong(mapping.MeshID);
|
||||||
rOut.WriteLong(Mappings[iMap].PoiID);
|
rOut.WriteLong(mapping.PoiID);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -23,14 +23,14 @@ QVariant CPoiMapModel::headerData(int Section, Qt::Orientation Orientation, int
|
|||||||
|
|
||||||
int CPoiMapModel::rowCount(const QModelIndex& /*rkParent*/) const
|
int CPoiMapModel::rowCount(const QModelIndex& /*rkParent*/) const
|
||||||
{
|
{
|
||||||
return mpPoiToWorld ? mpPoiToWorld->NumMappedPOIs() : 0;
|
return mpPoiToWorld ? static_cast<int>(mpPoiToWorld->NumMappedPOIs()) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant CPoiMapModel::data(const QModelIndex& rkIndex, int Role) const
|
QVariant CPoiMapModel::data(const QModelIndex& rkIndex, int Role) const
|
||||||
{
|
{
|
||||||
if (rkIndex.row() < rowCount(QModelIndex()))
|
if (rkIndex.row() < rowCount(QModelIndex()))
|
||||||
{
|
{
|
||||||
const CPoiToWorld::SPoiMap *pkMap = mpPoiToWorld->MapByIndex(rkIndex.row());
|
const CPoiToWorld::SPoiMap *pkMap = mpPoiToWorld->MapByIndex(static_cast<size_t>(rkIndex.row()));
|
||||||
CScriptObject *pPOI = mpArea->InstanceByID(pkMap->PoiID);
|
CScriptObject *pPOI = mpArea->InstanceByID(pkMap->PoiID);
|
||||||
|
|
||||||
if (Role == Qt::DisplayRole)
|
if (Role == Qt::DisplayRole)
|
||||||
@ -67,17 +67,17 @@ QVariant CPoiMapModel::data(const QModelIndex& rkIndex, int Role) const
|
|||||||
|
|
||||||
void CPoiMapModel::AddPOI(CScriptNode *pPOI)
|
void CPoiMapModel::AddPOI(CScriptNode *pPOI)
|
||||||
{
|
{
|
||||||
if (!mModelMap.contains(pPOI))
|
if (mModelMap.contains(pPOI))
|
||||||
{
|
return;
|
||||||
int NewIndex = mpPoiToWorld->NumMappedPOIs();
|
|
||||||
beginInsertRows(QModelIndex(), NewIndex, NewIndex);
|
|
||||||
|
|
||||||
QList<CModelNode*> *pList = new QList<CModelNode*>;
|
const int NewIndex = static_cast<int>(mpPoiToWorld->NumMappedPOIs());
|
||||||
mModelMap[pPOI] = pList;
|
beginInsertRows(QModelIndex(), NewIndex, NewIndex);
|
||||||
mpPoiToWorld->AddPoi(pPOI->Instance()->InstanceID());
|
|
||||||
|
|
||||||
endInsertRows();
|
QList<CModelNode*> *pList = new QList<CModelNode*>;
|
||||||
}
|
mModelMap[pPOI] = pList;
|
||||||
|
mpPoiToWorld->AddPoi(pPOI->Instance()->InstanceID());
|
||||||
|
|
||||||
|
endInsertRows();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPoiMapModel::AddMapping(const QModelIndex& rkIndex, CModelNode *pNode)
|
void CPoiMapModel::AddMapping(const QModelIndex& rkIndex, CModelNode *pNode)
|
||||||
@ -142,9 +142,11 @@ bool CPoiMapModel::IsModelMapped(const QModelIndex& rkIndex, CModelNode *pNode)
|
|||||||
|
|
||||||
CScriptNode* CPoiMapModel::PoiNodePointer(const QModelIndex& rkIndex) const
|
CScriptNode* CPoiMapModel::PoiNodePointer(const QModelIndex& rkIndex) const
|
||||||
{
|
{
|
||||||
if ((uint32) rkIndex.row() < mpPoiToWorld->NumMappedPOIs())
|
const auto rowIndex = static_cast<size_t>(rkIndex.row());
|
||||||
|
|
||||||
|
if (rowIndex < mpPoiToWorld->NumMappedPOIs())
|
||||||
{
|
{
|
||||||
const CPoiToWorld::SPoiMap *pkMap = mpPoiToWorld->MapByIndex(rkIndex.row());
|
const CPoiToWorld::SPoiMap *pkMap = mpPoiToWorld->MapByIndex(rowIndex);
|
||||||
return mpEditor->Scene()->NodeForInstanceID(pkMap->PoiID);
|
return mpEditor->Scene()->NodeForInstanceID(pkMap->PoiID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,7 +182,7 @@ void CPoiMapModel::OnMapChange(CWorld*, CGameArea *pArea)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create internal model map
|
// Create internal model map
|
||||||
for (uint32 iPoi = 0; iPoi < mpPoiToWorld->NumMappedPOIs(); iPoi++)
|
for (size_t iPoi = 0; iPoi < mpPoiToWorld->NumMappedPOIs(); iPoi++)
|
||||||
{
|
{
|
||||||
const CPoiToWorld::SPoiMap *pkMap = mpPoiToWorld->MapByIndex(iPoi);
|
const CPoiToWorld::SPoiMap *pkMap = mpPoiToWorld->MapByIndex(iPoi);
|
||||||
CScriptNode *pPoiNode = mpEditor->Scene()->NodeForInstanceID(pkMap->PoiID);
|
CScriptNode *pPoiNode = mpEditor->Scene()->NodeForInstanceID(pkMap->PoiID);
|
||||||
@ -189,10 +191,10 @@ void CPoiMapModel::OnMapChange(CWorld*, CGameArea *pArea)
|
|||||||
{
|
{
|
||||||
QList<CModelNode*> *pModelList = new QList<CModelNode*>;
|
QList<CModelNode*> *pModelList = new QList<CModelNode*>;
|
||||||
|
|
||||||
for (auto it = pkMap->ModelIDs.begin(); it != pkMap->ModelIDs.end(); it++)
|
for (const auto modelID : pkMap->ModelIDs)
|
||||||
{
|
{
|
||||||
if (NodeMap.contains(*it))
|
if (NodeMap.contains(modelID))
|
||||||
*pModelList << NodeMap[*it];
|
*pModelList << NodeMap[modelID];
|
||||||
}
|
}
|
||||||
|
|
||||||
mModelMap[pPoiNode] = pModelList;
|
mModelMap[pPoiNode] = pModelList;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user