MCPcopy Create free account
hub / github.com/ddnet/ddnet / ReplaceAreaQuads

Function ReplaceAreaQuads

src/tools/map_replace_area.cpp:376–401  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

374}
375
376void ReplaceAreaQuads(CDataFileReader aInputMaps[2], const float aaaGameAreas[][2][2], const CMapItemGroup *apLayerGroups[2], CMapItemLayer *apItem[2], const int ItemNumber)
377{
378 CMapItemLayerQuads *apQuadLayer[2];
379 for(int i = 0; i < 2; i++)
380 apQuadLayer[i] = (CMapItemLayerQuads *)apItem[i];
381
382 CQuad *apQuads[3];
383 for(int i = 0; i < 2; i++)
384 apQuads[i] = (CQuad *)aInputMaps[i].GetDataSwapped(apQuadLayer[i]->m_Data);
385
386 apQuads[2] = new CQuad[apQuadLayer[0]->m_NumQuads + apQuadLayer[1]->m_NumQuads];
387 int QuadsCounter = 0;
388
389 bool DataChanged = RemoveDestinationQuads(aaaGameAreas[1], apQuads[1], apQuadLayer[1]->m_NumQuads, apLayerGroups[1], apQuads[2], QuadsCounter);
390 DataChanged |= InsertDestinationQuads(aaaGameAreas, apQuads[0], apQuadLayer[0]->m_NumQuads, apLayerGroups, apQuads[2], QuadsCounter);
391
392 if(DataChanged)
393 {
394 g_apNewData[apQuadLayer[1]->m_Data] = apQuads[2];
395 g_aNewDataSize[apQuadLayer[1]->m_Data] = ((int)sizeof(CQuad)) * QuadsCounter;
396 apQuadLayer[1]->m_NumQuads = QuadsCounter;
397 g_apNewItem[ItemNumber] = apItem[1];
398 }
399 else
400 delete[] apQuads[2];
401}
402
403bool RemoveDestinationQuads(const float aaGameArea[2][2], const CQuad *pQuads, const int NumQuads, const CMapItemGroup *pLayerGroup, CQuad *pDestQuads, int &QuadsCounter)
404{

Callers 1

ReplaceAreaFunction · 0.85

Calls 3

RemoveDestinationQuadsFunction · 0.85
InsertDestinationQuadsFunction · 0.85
GetDataSwappedMethod · 0.45

Tested by

no test coverage detected