diff --git a/CMakeLists.txt b/CMakeLists.txt index c11d6e6fa..ced943365 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -464,12 +464,19 @@ set(OC_CLONK_SOURCES set(MAPE_BASE_SOURCES src/landscape/C4MapCreatorS2.cpp src/landscape/C4MapCreatorS2.h + src/landscape/C4MapScriptAlgo.cpp + src/landscape/C4MapScript.cpp + src/landscape/C4MapScript.h src/landscape/C4Material.cpp src/landscape/C4Material.h src/landscape/C4Texture.cpp src/landscape/C4Texture.h src/landscape/C4Scenario.cpp src/landscape/C4Scenario.h + src/graphics/Bitmap256.cpp + src/graphics/Bitmap256.h + src/graphics/CSurface8.cpp + src/graphics/CSurface8.h src/lib/C4NameList.cpp src/lib/C4NameList.h src/lib/C4Rect.cpp diff --git a/src/landscape/C4Landscape.cpp b/src/landscape/C4Landscape.cpp index f48353160..46d158851 100644 --- a/src/landscape/C4Landscape.cpp +++ b/src/landscape/C4Landscape.cpp @@ -1231,7 +1231,7 @@ bool C4Landscape::Init(C4Group &hGroup, bool fOverloadCurrent, bool fLoadSky, bo if (!fLandscapeModeSet) Mode=C4LSC_Dynamic; // script may create or edit map - if (MapScript.InitializeMap(hGroup, &sfcMap)) + if (MapScript.InitializeMap(&Game.C4S.Landscape, Game.StartupPlayerCount, &sfcMap)) if (!fLandscapeModeSet) Mode=C4LSC_Dynamic; // Dynamic map by scenario diff --git a/src/landscape/C4MapScript.cpp b/src/landscape/C4MapScript.cpp index fa0c02121..4e87b4bd0 100644 --- a/src/landscape/C4MapScript.cpp +++ b/src/landscape/C4MapScript.cpp @@ -574,7 +574,7 @@ C4MapScriptMap *C4MapScriptHost::CreateMap() return new C4MapScriptMap(MapPrototype); } -bool C4MapScriptHost::InitializeMap(C4Group &group, CSurface8 **pmap_surface) +bool C4MapScriptHost::InitializeMap(C4SLandscape *pLandscape, uint32_t iPlayerCount, CSurface8 **pmap_surface) { // Init scripted map by calling InitializeMap in the proper scripts. If *pmap_surface is given, it will pass the existing map to be modified by script. assert(pmap_surface); @@ -596,7 +596,7 @@ bool C4MapScriptHost::InitializeMap(C4Group &group, CSurface8 **pmap_surface) { // No existing map. Create new. int32_t map_wdt,map_hgt; - ::Game.C4S.Landscape.GetMapSize(map_wdt, map_hgt, ::Game.StartupPlayerCount); + pLandscape->GetMapSize(map_wdt, map_hgt, iPlayerCount); if (!map->CreateSurface(map_wdt, map_hgt)) return false; } C4AulParSet Pars(C4VPropList(map.get())); diff --git a/src/landscape/C4MapScript.h b/src/landscape/C4MapScript.h index 367f7530d..965d64fb6 100644 --- a/src/landscape/C4MapScript.h +++ b/src/landscape/C4MapScript.h @@ -331,7 +331,7 @@ public: virtual bool LoadData(const char *, const char *, C4LangStringTable *); void Clear(); virtual C4PropListStatic * GetPropList(); - bool InitializeMap(C4Group &group, CSurface8 **pmap_surface); + bool InitializeMap(C4SLandscape *pLandscape, uint32_t iPlayerCount, CSurface8 **pmap_surface); C4PropListStatic *GetLayerPrototype() { return LayerPrototype; } }; diff --git a/src/mape/cpp-handles/stub-handle.cpp b/src/mape/cpp-handles/stub-handle.cpp index b815dd54c..9031c7f55 100644 --- a/src/mape/cpp-handles/stub-handle.cpp +++ b/src/mape/cpp-handles/stub-handle.cpp @@ -28,8 +28,6 @@ #include "C4PXS.h" #include "C4Record.h" #include "C4RoundResults.h" -#include "CSurface8.h" -#include "C4MapScript.h" /* This file implements stubs for the parts of the engine that are not used * by mape. It also instantiates global variables required by mape that are @@ -66,8 +64,6 @@ bool C4Reloc::Open(C4Group&, char const*) const {return false;} bool C4Draw::TextOut(const char *, CStdFont &, float, C4Surface *, float, float, DWORD, BYTE, bool) { return false; } -CSurface8::CSurface8(int, int) {} - C4Facet::C4Facet() {} void C4Facet::Set(C4Surface*, float, float, float, float) {} int32_t C4Facet::GetSectionCount() { return 0; } @@ -198,12 +194,3 @@ C4Game::~C4Game() {} C4AulDebug *C4AulDebug::pDebug; void C4AulDebug::DebugStep(C4AulBCC*, C4Value*) {} - -C4MapScriptHost MapScript; -C4MapScriptHost::C4MapScriptHost() {} -C4MapScriptHost::~C4MapScriptHost() {} -void C4MapScriptHost::Clear() {} -C4PropListStatic *C4MapScriptHost::GetPropList() {return NULL;} -bool C4MapScriptHost::Load(C4Group &, const char *, const char *, C4LangStringTable *) { return false; } -bool C4MapScriptHost::LoadData(const char *, const char *, C4LangStringTable *) { return false; } -void C4MapScriptHost::AddEngineFunctions() {}