Colony is now defined in C++

This commit is contained in:
2024-04-26 04:00:10 -04:00
parent fde9e63d8b
commit 45cf5dc4d7
4 changed files with 33 additions and 38 deletions
+1 -4
View File
@@ -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:
+2 -1
View File
@@ -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},
+3 -2
View File
@@ -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"
@@ -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;
}