Default generation now goes thru C++
This commit is contained in:
@@ -19,6 +19,8 @@
|
||||
#include "gendef.h"
|
||||
#include "planets/generate.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
extern GenerateFunctions generateDefaultFunctions;
|
||||
|
||||
@@ -53,10 +55,14 @@ extern GenerateFunctions generateZoqFotPikScoutFunctions;
|
||||
extern GenerateFunctions *getGenerateCxxFunctions( void );
|
||||
|
||||
|
||||
extern struct GeneratorBase cxxDefaultPlanetGen;
|
||||
|
||||
|
||||
const GenerateFunctions *
|
||||
getGenerateFunctions (STAR_DESC *const star, void **sup )
|
||||
{
|
||||
*sup= 0;
|
||||
*sup= star->supplement;
|
||||
|
||||
switch (star->Index)
|
||||
{
|
||||
case SOL_DEFINED:
|
||||
@@ -133,11 +139,11 @@ getGenerateFunctions (STAR_DESC *const star, void **sup )
|
||||
case ILWRATH_DEFINED:
|
||||
return &generateIlwrathFunctions;
|
||||
default:
|
||||
return &generateDefaultFunctions;
|
||||
*sup= &cxxDefaultPlanetGen;
|
||||
// FALLTHROUGH
|
||||
|
||||
// Eventually everything should go thru this.
|
||||
case CXX_DEFINED:
|
||||
*sup= star->supplement;
|
||||
return getGenerateCxxFunctions();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,4 +168,21 @@ namespace Planets ::detail:: Generate_m
|
||||
{
|
||||
return GenerateDefault_pickupLife( solarSys, world, whichNode );
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
class RealDefaultGenerator
|
||||
: public DefaultGenerator
|
||||
{
|
||||
public:
|
||||
~RealDefaultGenerator() override= default;
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
extern "C"
|
||||
{
|
||||
Planets::detail::Generate_m::RealDefaultGenerator cxxDefaultPlanetGen;
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ namespace Planets ::detail:: Generate_m
|
||||
: public Generator
|
||||
{
|
||||
public:
|
||||
~DefaultGenerator() override;
|
||||
~DefaultGenerator() override= 0;
|
||||
|
||||
void initNpcs(SolarSystem *solarSys) override;
|
||||
void reinitNpcs(SolarSystem *solarSys) override;
|
||||
|
||||
Reference in New Issue
Block a user