diff --git a/source/level/level.cpp b/source/level/level.cpp index e1c462dc7..110a1e8e6 100644 --- a/source/level/level.cpp +++ b/source/level/level.cpp @@ -472,6 +472,29 @@ void CLevel::initLayers() sLayerHdr *Layer=(sLayerHdr*)MakePtr(LevelHdr,LevelHdr->CollisionLayer); CollisionLayer=new ("Collision Layer") CLayerCollision(Layer); } +// Actors + if (LevelHdr->ActorList) + { + + sThingHdr *Hdr=(sThingHdr*)MakePtr(LevelHdr,LevelHdr->ActorList); + ActorCount=Hdr->Count; + ActorList=(sThingActor**)MemAlloc(ActorCount*sizeof(sThingActor**),"Actor List"); + u8 *ThingPtr=(u8*)MakePtr(Hdr,sizeof(sThingHdr)); + for (int i=0; iPointCount*sizeof(u16)*2; + } + } +// Items + if (LevelHdr->ItemList) + { + sThingHdr *Hdr=(sThingHdr*)MakePtr(LevelHdr,LevelHdr->ItemList); + ItemCount=Hdr->Count; + ItemList=(sThingItem*)MakePtr(Hdr,sizeof(sThingHdr)); + } + } /*****************************************************************************/ diff --git a/source/level/level.h b/source/level/level.h index 3761de7c9..e8c5fd409 100644 --- a/source/level/level.h +++ b/source/level/level.h @@ -36,11 +36,18 @@ private: TPAGE_DESC m_levelTPage; - // Tile Layers CLayerTile *TileLayers[CLayerTile::LAYER_TILE_TYPE_MAX]; // Collision CLayerCollision *CollisionLayer; +// Things + int ActorCount; + sThingActor **ActorList; + int ItemCount; + sThingItem *ItemList; + int PlatformCount; + sThingPlatform **PlatformList; + }; /*****************************************************************************/ diff --git a/tools/Data/bin/MkLevel.exe b/tools/Data/bin/MkLevel.exe index 855501bb2..42d49d0e7 100644 Binary files a/tools/Data/bin/MkLevel.exe and b/tools/Data/bin/MkLevel.exe differ diff --git a/tools/MapEdit/MapEdit.exe b/tools/MapEdit/MapEdit.exe index 60cb70ca0..928e0a4c5 100644 Binary files a/tools/MapEdit/MapEdit.exe and b/tools/MapEdit/MapEdit.exe differ