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 generateAndrosynthFunctions;
extern GenerateFunctions generateBurvixeseFunctions; extern GenerateFunctions generateBurvixeseFunctions;
extern GenerateFunctions generateChmmrFunctions; extern GenerateFunctions generateChmmrFunctions;
extern GenerateFunctions generateColonyFunctions;
extern GenerateFunctions generateDruugeFunctions; extern GenerateFunctions generateDruugeFunctions;
extern GenerateFunctions generateIlwrathFunctions; extern GenerateFunctions generateIlwrathFunctions;
extern GenerateFunctions generateMelnormeFunctions; extern GenerateFunctions generateMelnormeFunctions;
@@ -68,12 +67,11 @@ getGenerateFunctions (STAR_DESC *const star, void **sup, const char **supArg )
// Legacy ones are disabled... // Legacy ones are disabled...
case SHOFIXTI_DEFINED: case SHOFIXTI_DEFINED:
case SLYLANDRO_DEFINED: case SLYLANDRO_DEFINED:
case START_COLONY_DEFINED:
abort(); abort();
case SOL_DEFINED: case SOL_DEFINED:
return &generateSolFunctions; return &generateSolFunctions;
case START_COLONY_DEFINED:
return &generateColonyFunctions;
case SPATHI_DEFINED: case SPATHI_DEFINED:
return &generateSpathiFunctions; return &generateSpathiFunctions;
case MELNORME0_DEFINED: case MELNORME0_DEFINED:
@@ -96,7 +94,6 @@ getGenerateFunctions (STAR_DESC *const star, void **sup, const char **supArg )
return &generateTrapFunctions; return &generateTrapFunctions;
case BURVIXESE_DEFINED: case BURVIXESE_DEFINED:
return &generateBurvixeseFunctions; return &generateBurvixeseFunctions;
abort();
case DRUUGE_DEFINED: case DRUUGE_DEFINED:
return &generateDruugeFunctions; return &generateDruugeFunctions;
case BOMB_DEFINED: case BOMB_DEFINED:
+2 -1
View File
@@ -23,6 +23,7 @@
extern struct GeneratorBase slyDef; extern struct GeneratorBase slyDef;
extern struct GeneratorBase shofDef; extern struct GeneratorBase shofDef;
extern struct GeneratorBase colonyDef;
// This array has to be sorted in Y coordinate order then X coordinate order. // 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" // 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}, //{{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}, {{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}, {{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 genilw.c genmel.c genmyc.c genorz.c genpet.c genpku.c genrain.c
gensam.c gensol.c genspa.c gensup.c gensyr.c gensam.c gensol.c genspa.c gensup.c gensyr.c
genthrad.c gentrap.c genutw.c genvault.c genvux.c genwreck.c genthrad.c gentrap.c genutw.c genvault.c genvux.c genwreck.c
genyeh.c genzfpscout.c genzoq.c" genyeh.c genzfpscout.c genzoq.c"
uqm_HFILES="genall.h gendefault.h" 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" #include "libs/mathlib.h"
static bool GenerateColony_initNpcs (SOLARSYS_STATE *solarSys); namespace
static bool GenerateColony_generatePlanets (SOLARSYS_STATE *solarSys); {
static bool GenerateColony_generateOrbital (SOLARSYS_STATE *solarSys, using namespace Planets;
PLANET_DESC *world);
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 = { void
/* .initNpcs = */ GenerateColony_initNpcs, GenerateColony::initNpcs( SolarSystem *const solarSys )
/* .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)
{ {
HIPGROUP hGroup; HIPGROUP hGroup;
@@ -63,7 +61,7 @@ GenerateColony_initNpcs (SOLARSYS_STATE *solarSys)
SET_GAME_STATE_32 (COLONY_GRPOFFS0, GLOBAL (BattleGroupRef)); SET_GAME_STATE_32 (COLONY_GRPOFFS0, GLOBAL (BattleGroupRef));
} }
GenerateDefault_initNpcs (solarSys); DefaultGenerator::initNpcs (solarSys);
if (GLOBAL (BattleGroupRef) if (GLOBAL (BattleGroupRef)
&& (hGroup = GetHeadLink (&GLOBAL (ip_group_q)))) && (hGroup = GetHeadLink (&GLOBAL (ip_group_q))))
@@ -79,12 +77,10 @@ GenerateColony_initNpcs (SOLARSYS_STATE *solarSys)
GroupPtr->group_counter = 0; GroupPtr->group_counter = 0;
UnlockIpGroup (&GLOBAL (ip_group_q), hGroup); UnlockIpGroup (&GLOBAL (ip_group_q), hGroup);
} }
return true;
} }
static bool bool
GenerateColony_generatePlanets (SOLARSYS_STATE *solarSys) GenerateColony::generatePlanets( SolarSystem *const solarSys )
{ {
COUNT angle; COUNT angle;
PLANET_DESC *pMinPlanet; PLANET_DESC *pMinPlanet;
@@ -101,8 +97,8 @@ GenerateColony_generatePlanets (SOLARSYS_STATE *solarSys)
return true; return true;
} }
static bool bool
GenerateColony_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world) GenerateColony::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world )
{ {
if (matchWorld (solarSys, world, 0, MATCH_PLANET)) if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{ {
@@ -119,7 +115,7 @@ GenerateColony_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
return true; return true;
} }
GenerateDefault_generateOrbital (solarSys, world); DefaultGenerator::generateOrbital (solarSys, world);
return true; return true;
} }