MCPcopy Create free account
hub / github.com/GarageGames/Torque3D / load

Method load

Engine/source/navigation/navMesh.cpp:1527–1623  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1525};
1526
1527bool NavMesh::load()
1528{
1529 if(!dStrlen(mFileName))
1530 return false;
1531
1532 File file;
1533 if(file.open(mFileName, File::Read) != File::Ok)
1534 {
1535 file.close();
1536 Con::errorf("Could not open file %s when loading navmesh %s.",
1537 mFileName, getName() ? getName() : getIdString());
1538 return false;
1539 }
1540
1541 // Read header.
1542 NavMeshSetHeader header;
1543 file.read(sizeof(NavMeshSetHeader), (char*)&header);
1544 if(header.magic != NAVMESHSET_MAGIC)
1545 {
1546 file.close();
1547 Con::errorf("Navmesh magic incorrect when loading navmesh %s; possible corrupt navmesh file %s.",
1548 getName() ? getName() : getIdString(), mFileName);
1549 return false;
1550 }
1551 if(header.version != NAVMESHSET_VERSION)
1552 {
1553 file.close();
1554 Con::errorf("Navmesh version incorrect when loading navmesh %s; possible corrupt navmesh file %s.",
1555 getName() ? getName() : getIdString(), mFileName);
1556 return false;
1557 }
1558
1559 if(nm)
1560 dtFreeNavMesh(nm);
1561 nm = dtAllocNavMesh();
1562 if(!nm)
1563 {
1564 file.close();
1565 Con::errorf("Out of memory when loading navmesh %s.",
1566 getName() ? getName() : getIdString());
1567 return false;
1568 }
1569
1570 dtStatus status = nm->init(&header.params);
1571 if(dtStatusFailed(status))
1572 {
1573 file.close();
1574 Con::errorf("Failed to initialise navmesh params when loading navmesh %s.",
1575 getName() ? getName() : getIdString());
1576 return false;
1577 }
1578
1579 // Read tiles.
1580 for(U32 i = 0; i < header.numTiles; ++i)
1581 {
1582 NavMeshTileHeader tileHeader;
1583 file.read(sizeof(NavMeshTileHeader), (char*)&tileHeader);
1584 if(!tileHeader.tileRef || !tileHeader.dataSize)

Callers 1

navMesh.cppFile · 0.45

Calls 15

errorfFunction · 0.85
dtFreeNavMeshFunction · 0.85
dtAllocNavMeshFunction · 0.85
dtStatusFailedFunction · 0.85
dtAllocFunction · 0.85
postEventMethod · 0.80
dStrlenFunction · 0.50
getNameFunction · 0.50
openMethod · 0.45
closeMethod · 0.45
readMethod · 0.45
initMethod · 0.45

Tested by

no test coverage detected