Colony is now defined in C++
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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},
|
||||||
|
|
||||||
|
|||||||
@@ -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
-29
@@ -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
|
||||||
const GenerateFunctions generateColonyFunctions = {
|
: public DefaultGenerator
|
||||||
/* .initNpcs = */ GenerateColony_initNpcs,
|
{
|
||||||
/* .reinitNpcs = */ GenerateDefault_reinitNpcs,
|
public:
|
||||||
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
|
void initNpcs( SolarSystem *solarSys) override;
|
||||||
/* .generatePlanets = */ GenerateColony_generatePlanets,
|
bool generatePlanets( SolarSystem *solarSys) override;
|
||||||
/* .generateMoons = */ GenerateDefault_generateMoons,
|
bool generateOrbital( SolarSystem *solarSys,
|
||||||
/* .generateName = */ GenerateDefault_generateName,
|
PLANET_DESC *world) override;
|
||||||
/* .generateOrbital = */ GenerateColony_generateOrbital,
|
|
||||||
/* .generateMinerals = */ GenerateDefault_generateMinerals,
|
|
||||||
/* .generateEnergy = */ GenerateDefault_generateEnergy,
|
|
||||||
/* .generateLife = */ GenerateDefault_generateLife,
|
|
||||||
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
|
|
||||||
/* .pickupEnergy = */ GenerateDefault_pickupEnergy,
|
|
||||||
/* .pickupLife = */ GenerateDefault_pickupLife,
|
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
GenerateColony colonyDef;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static bool
|
void
|
||||||
GenerateColony_initNpcs (SOLARSYS_STATE *solarSys)
|
GenerateColony::initNpcs( SolarSystem *const 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;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user