Colony is now defined in C++
This commit is contained in:
@@ -27,7 +27,6 @@ extern GenerateFunctions generateDefaultFunctions;
|
||||
extern GenerateFunctions generateAndrosynthFunctions;
|
||||
extern GenerateFunctions generateBurvixeseFunctions;
|
||||
extern GenerateFunctions generateChmmrFunctions;
|
||||
extern GenerateFunctions generateColonyFunctions;
|
||||
extern GenerateFunctions generateDruugeFunctions;
|
||||
extern GenerateFunctions generateIlwrathFunctions;
|
||||
extern GenerateFunctions generateMelnormeFunctions;
|
||||
@@ -68,12 +67,11 @@ getGenerateFunctions (STAR_DESC *const star, void **sup, const char **supArg )
|
||||
// Legacy ones are disabled...
|
||||
case SHOFIXTI_DEFINED:
|
||||
case SLYLANDRO_DEFINED:
|
||||
case START_COLONY_DEFINED:
|
||||
abort();
|
||||
|
||||
case SOL_DEFINED:
|
||||
return &generateSolFunctions;
|
||||
case START_COLONY_DEFINED:
|
||||
return &generateColonyFunctions;
|
||||
case SPATHI_DEFINED:
|
||||
return &generateSpathiFunctions;
|
||||
case MELNORME0_DEFINED:
|
||||
@@ -96,7 +94,6 @@ getGenerateFunctions (STAR_DESC *const star, void **sup, const char **supArg )
|
||||
return &generateTrapFunctions;
|
||||
case BURVIXESE_DEFINED:
|
||||
return &generateBurvixeseFunctions;
|
||||
abort();
|
||||
case DRUUGE_DEFINED:
|
||||
return &generateDruugeFunctions;
|
||||
case BOMB_DEFINED:
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
extern struct GeneratorBase slyDef;
|
||||
extern struct GeneratorBase shofDef;
|
||||
extern struct GeneratorBase colonyDef;
|
||||
|
||||
// This array has to be sorted in Y coordinate order then X coordinate order.
|
||||
// Items out of order can cause crashes (better, actually) or "ghost"
|
||||
@@ -542,7 +543,7 @@ STAR_DESC starmap_array[] =
|
||||
|
||||
//{{2908, 269}, MAKE_STAR (DWARF_STAR, BLUE_BODY, -1), SHOFIXTI_DEFINED, 4, 82},
|
||||
{{1004, 1083}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), CXX_DEFINED, 2, 27, &slyDef},
|
||||
{{1776, 1395}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), START_COLONY_DEFINED, 0, 98},
|
||||
{{1776, 1395}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), CXX_DEFINED, 0, 98, &colonyDef},
|
||||
|
||||
{{1777, 1405}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), 0, 0, 99},
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
uqm_CFILES="gendefault.c genand.c genburv.c genchmmr.c gencol.c gendru.c
|
||||
uqm_CFILES="gendefault.c genand.c genburv.c genchmmr.c gendru.c
|
||||
genilw.c genmel.c genmyc.c genorz.c genpet.c genpku.c genrain.c
|
||||
gensam.c gensol.c genspa.c gensup.c gensyr.c
|
||||
genthrad.c gentrap.c genutw.c genvault.c genvux.c genwreck.c
|
||||
genyeh.c genzfpscout.c genzoq.c"
|
||||
uqm_HFILES="genall.h gendefault.h"
|
||||
uqm_CXXFILES="cxx-generator.cpp gensly-modern.cpp genshof-modern.cpp"
|
||||
uqm_CXXFILES="cxx-generator.cpp gensly-modern.cpp genshof-modern.cpp
|
||||
gencol-modern.cpp"
|
||||
|
||||
+27
-31
@@ -25,31 +25,29 @@
|
||||
#include "libs/mathlib.h"
|
||||
|
||||
|
||||
static bool GenerateColony_initNpcs (SOLARSYS_STATE *solarSys);
|
||||
static bool GenerateColony_generatePlanets (SOLARSYS_STATE *solarSys);
|
||||
static bool GenerateColony_generateOrbital (SOLARSYS_STATE *solarSys,
|
||||
PLANET_DESC *world);
|
||||
namespace
|
||||
{
|
||||
using namespace Planets;
|
||||
|
||||
class GenerateColony
|
||||
: public DefaultGenerator
|
||||
{
|
||||
public:
|
||||
void initNpcs( SolarSystem *solarSys) override;
|
||||
bool generatePlanets( SolarSystem *solarSys) override;
|
||||
bool generateOrbital( SolarSystem *solarSys,
|
||||
PLANET_DESC *world) override;
|
||||
};
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
GenerateColony colonyDef;
|
||||
}
|
||||
|
||||
|
||||
const GenerateFunctions generateColonyFunctions = {
|
||||
/* .initNpcs = */ GenerateColony_initNpcs,
|
||||
/* .reinitNpcs = */ GenerateDefault_reinitNpcs,
|
||||
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
|
||||
/* .generatePlanets = */ GenerateColony_generatePlanets,
|
||||
/* .generateMoons = */ GenerateDefault_generateMoons,
|
||||
/* .generateName = */ GenerateDefault_generateName,
|
||||
/* .generateOrbital = */ GenerateColony_generateOrbital,
|
||||
/* .generateMinerals = */ GenerateDefault_generateMinerals,
|
||||
/* .generateEnergy = */ GenerateDefault_generateEnergy,
|
||||
/* .generateLife = */ GenerateDefault_generateLife,
|
||||
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
|
||||
/* .pickupEnergy = */ GenerateDefault_pickupEnergy,
|
||||
/* .pickupLife = */ GenerateDefault_pickupLife,
|
||||
};
|
||||
|
||||
|
||||
static bool
|
||||
GenerateColony_initNpcs (SOLARSYS_STATE *solarSys)
|
||||
void
|
||||
GenerateColony::initNpcs( SolarSystem *const solarSys )
|
||||
{
|
||||
HIPGROUP hGroup;
|
||||
|
||||
@@ -63,7 +61,7 @@ GenerateColony_initNpcs (SOLARSYS_STATE *solarSys)
|
||||
SET_GAME_STATE_32 (COLONY_GRPOFFS0, GLOBAL (BattleGroupRef));
|
||||
}
|
||||
|
||||
GenerateDefault_initNpcs (solarSys);
|
||||
DefaultGenerator::initNpcs (solarSys);
|
||||
|
||||
if (GLOBAL (BattleGroupRef)
|
||||
&& (hGroup = GetHeadLink (&GLOBAL (ip_group_q))))
|
||||
@@ -79,12 +77,10 @@ GenerateColony_initNpcs (SOLARSYS_STATE *solarSys)
|
||||
GroupPtr->group_counter = 0;
|
||||
UnlockIpGroup (&GLOBAL (ip_group_q), hGroup);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
GenerateColony_generatePlanets (SOLARSYS_STATE *solarSys)
|
||||
bool
|
||||
GenerateColony::generatePlanets( SolarSystem *const solarSys )
|
||||
{
|
||||
COUNT angle;
|
||||
PLANET_DESC *pMinPlanet;
|
||||
@@ -101,8 +97,8 @@ GenerateColony_generatePlanets (SOLARSYS_STATE *solarSys)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
GenerateColony_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
||||
bool
|
||||
GenerateColony::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world )
|
||||
{
|
||||
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||
{
|
||||
@@ -119,7 +115,7 @@ GenerateColony_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
||||
return true;
|
||||
}
|
||||
|
||||
GenerateDefault_generateOrbital (solarSys, world);
|
||||
DefaultGenerator::generateOrbital (solarSys, world);
|
||||
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user