Skip to content

Commit a5a7508

Browse files
committed
- added Driver 1 MapHeight method support
1 parent 94bd4be commit a5a7508

7 files changed

Lines changed: 396 additions & 13 deletions

File tree

DriverLevelTool/driver_routines/d2_types.h

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,13 +378,47 @@ struct DRIVER2_JUNCTION
378378
};
379379

380380
//------------------------------------------------------------------------------------------------------------
381+
// Driver 1 PSX is so wasteful
381382

382383
struct ROAD_MAP_LUMP_DATA
383384
{
384385
int width, height;
385386
int unitXMid, unitZMid;
386387
};
387388

389+
struct LONGPLANE
390+
{
391+
int a, b, c, d;
392+
};
393+
394+
struct SIPOLY
395+
{
396+
XYPAIR xz[4];
397+
LONGPLANE normals;
398+
short num_vertices;
399+
};
400+
401+
struct SURFACEINFO
402+
{
403+
short type;
404+
short info;
405+
short heading;
406+
short numpolys;
407+
408+
inline SIPOLY* GetPoly(int num)
409+
{
410+
return (SIPOLY*)(this + 1) + num;
411+
}
412+
};
413+
414+
struct ROUTE_DATA
415+
{
416+
int type;
417+
int height;
418+
int objectAngle;
419+
uint value;
420+
};
421+
388422
//------------------------------------------------------------------------------------------------------------
389423

390424
struct AreaDataStr {

DriverLevelTool/driver_routines/level.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,8 @@ void CDriverLevelLoader::ProcessLumps(IVirtualStream* pFile)
219219
// Driver 1 - only lumps
220220
case LUMP_ROADMAP:
221221
DevMsg(SPEW_WARNING, "LUMP_ROADMAP ofs=%d size=%d\n", pFile->Tell(), lump.size);
222+
if (m_map)
223+
((CDriver1LevelMap*)m_map)->LoadRoadMapLump(pFile);
222224
break;
223225
case LUMP_ROADS:
224226
DevMsg(SPEW_WARNING, "LUMP_ROADS ofs=%d size=%d\n", pFile->Tell(), lump.size);
@@ -228,6 +230,8 @@ void CDriverLevelLoader::ProcessLumps(IVirtualStream* pFile)
228230
break;
229231
case LUMP_ROADSURF:
230232
DevMsg(SPEW_WARNING, "LUMP_ROADSURF ofs=%d size=%d\n", pFile->Tell(), lump.size);
233+
if (m_map)
234+
((CDriver1LevelMap*)m_map)->LoadRoadSurfaceLump(pFile, lump.size);
231235
break;
232236
case LUMP_ROADBOUNDS:
233237
DevMsg(SPEW_WARNING, "LUMP_ROADBOUNDS ofs=%d size=%d\n", pFile->Tell(), lump.size);

DriverLevelTool/driver_routines/regions.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ void CBaseLevelRegion::FreeAll()
5454
free(m_cellObjects);
5555
m_cellObjects = nullptr;
5656

57-
m_pvsData = nullptr;
58-
m_roadmapData = nullptr;
59-
6057
m_loaded = false;
6158
}
6259

DriverLevelTool/driver_routines/regions.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ class CBaseLevelRegion
5555
ushort* m_cellPointers{ nullptr }; // cell pointers - pointing to CELL_DATA
5656
CELL_OBJECT* m_cellObjects{ nullptr }; // cell objects that represents objects placed in the world
5757

58-
ushort* m_pvsData{ nullptr }; // potentially visibile set of cells
59-
short* m_roadmapData{ nullptr }; // heightfield with planes and BSP
60-
6158
int m_regionX{ -1 };
6259
int m_regionZ{ -1 };
6360
int m_regionNumber{ -1 };

0 commit comments

Comments
 (0)