Added VUX dynamics.
This commit is contained in:
@@ -26,7 +26,6 @@ extern GenerateFunctions generateOrzFunctions;
|
|||||||
extern GenerateFunctions generateSolFunctions;
|
extern GenerateFunctions generateSolFunctions;
|
||||||
extern GenerateFunctions generateThraddashFunctions;
|
extern GenerateFunctions generateThraddashFunctions;
|
||||||
extern GenerateFunctions generateUtwigFunctions;
|
extern GenerateFunctions generateUtwigFunctions;
|
||||||
extern GenerateFunctions generateVuxFunctions;
|
|
||||||
|
|
||||||
|
|
||||||
const GenerateFunctions *
|
const GenerateFunctions *
|
||||||
@@ -35,12 +34,15 @@ getGenerateFunctions (STAR_DESC *const star)
|
|||||||
switch (star->Index)
|
switch (star->Index)
|
||||||
{
|
{
|
||||||
// Legacy ones are disabled...
|
// Legacy ones are disabled...
|
||||||
|
case MAIDENS_DEFINED:
|
||||||
|
case VUX_BEAST_DEFINED:
|
||||||
|
case VUX_DEFINED:
|
||||||
|
|
||||||
case SUN_DEVICE_DEFINED:
|
case SUN_DEVICE_DEFINED:
|
||||||
case MYCON_DEFINED:
|
case MYCON_DEFINED:
|
||||||
case EGG_CASE0_DEFINED:
|
case EGG_CASE0_DEFINED:
|
||||||
case EGG_CASE1_DEFINED:
|
case EGG_CASE1_DEFINED:
|
||||||
case EGG_CASE2_DEFINED:
|
case EGG_CASE2_DEFINED:
|
||||||
|
|
||||||
case MELNORME0_DEFINED:
|
case MELNORME0_DEFINED:
|
||||||
case MELNORME1_DEFINED:
|
case MELNORME1_DEFINED:
|
||||||
case MELNORME2_DEFINED:
|
case MELNORME2_DEFINED:
|
||||||
@@ -86,10 +88,6 @@ getGenerateFunctions (STAR_DESC *const star)
|
|||||||
case TAALO_PROTECTOR_DEFINED:
|
case TAALO_PROTECTOR_DEFINED:
|
||||||
case ORZ_DEFINED:
|
case ORZ_DEFINED:
|
||||||
return &generateOrzFunctions;
|
return &generateOrzFunctions;
|
||||||
case MAIDENS_DEFINED:
|
|
||||||
case VUX_BEAST_DEFINED:
|
|
||||||
case VUX_DEFINED:
|
|
||||||
return &generateVuxFunctions;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -554,7 +554,9 @@ STAR_DESC starmap_array[] =
|
|||||||
{{1848, 1469}, MAKE_STAR (DWARF_STAR, BLUE_BODY, -1), 0, 4, 82, "Shofixti"},
|
{{1848, 1469}, MAKE_STAR (DWARF_STAR, BLUE_BODY, -1), 0, 4, 82, "Shofixti"},
|
||||||
{{1751, 1479}, MAKE_STAR (GIANT_STAR, GREEN_BODY, -1), 0, 1, 59, "Wreck"},
|
{{1751, 1479}, MAKE_STAR (GIANT_STAR, GREEN_BODY, -1), 0, 1, 59, "Wreck"},
|
||||||
{{1707, 1501}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 0, 52},
|
{{1707, 1501}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 0, 52},
|
||||||
|
{{4333, 1687}, MAKE_STAR (DWARF_STAR, ORANGE_BODY, -1), 0, 2, 88, "VUX", "Homeworld"},
|
||||||
{{3352, 1940}, MAKE_STAR (SUPER_GIANT_STAR, WHITE_BODY, -1), 0, 0, 97, "Melnorme", "2"},
|
{{3352, 1940}, MAKE_STAR (SUPER_GIANT_STAR, WHITE_BODY, -1), 0, 0, 97, "Melnorme", "2"},
|
||||||
|
{{4221, 1986}, MAKE_STAR (DWARF_STAR, BLUE_BODY, -1), 0, 1, 100, "VUX", "ZEX"},
|
||||||
|
|
||||||
{{6479, 2062}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 3, 71, "Mycon Worlds", "Egg Case 1"},
|
{{6479, 2062}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 3, 71, "Mycon Worlds", "Egg Case 1"},
|
||||||
{{2104, 2083}, MAKE_STAR (DWARF_STAR, ORANGE_BODY, -1), 0, 0, 118, "Zoq-Fot-Pik Scout"},
|
{{2104, 2083}, MAKE_STAR (DWARF_STAR, ORANGE_BODY, -1), 0, 0, 118, "Zoq-Fot-Pik Scout"},
|
||||||
@@ -595,7 +597,7 @@ STAR_DESC starmap_array[] =
|
|||||||
{{9960, 9042}, MAKE_STAR (GIANT_STAR, WHITE_BODY, -1), 0, 0, 42, "Rainbow"},
|
{{9960, 9042}, MAKE_STAR (GIANT_STAR, WHITE_BODY, -1), 0, 0, 42, "Rainbow"},
|
||||||
{{7414, 9124}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 2, 47, "Supox"},
|
{{7414, 9124}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 2, 47, "Supox"},
|
||||||
{{9159, 9745}, MAKE_STAR (SUPER_GIANT_STAR, BLUE_BODY, -1), 0, 1, 4, "Melnorme", "8"},
|
{{9159, 9745}, MAKE_STAR (SUPER_GIANT_STAR, BLUE_BODY, -1), 0, 1, 4, "Melnorme", "8"},
|
||||||
|
{{5704, 9795}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), 0, 4, 49, "VUX", "Beast"},
|
||||||
|
|
||||||
|
|
||||||
{{MAX_X_UNIVERSE << 1, MAX_Y_UNIVERSE << 1}, 0, 0, 0, 0},
|
{{MAX_X_UNIVERSE << 1, MAX_Y_UNIVERSE << 1}, 0, 0, 0, 0},
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
uqm_CFILES="gendefault.c
|
uqm_CFILES="gendefault.c
|
||||||
genorz.c
|
genorz.c
|
||||||
gensol.c
|
gensol.c
|
||||||
genthrad.c genutw.c genvux.c"
|
genthrad.c genutw.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 genwreck-modern.cpp genzfpscout-modern.cpp
|
gencol-modern.cpp genwreck-modern.cpp genzfpscout-modern.cpp
|
||||||
@@ -10,4 +10,5 @@ uqm_CXXFILES="cxx-generator.cpp gensly-modern.cpp genshof-modern.cpp
|
|||||||
gentrap-modern.cpp gensup-modern.cpp genspa-modern.cpp
|
gentrap-modern.cpp gensup-modern.cpp genspa-modern.cpp
|
||||||
genpet-modern.cpp genzoq-modern.cpp genyeh-modern.cpp
|
genpet-modern.cpp genzoq-modern.cpp genyeh-modern.cpp
|
||||||
genilw-modern.cpp genpku-modern.cpp gensam-modern.cpp
|
genilw-modern.cpp genpku-modern.cpp gensam-modern.cpp
|
||||||
genmyc-modern.cpp genrain-modern.cpp genmel-modern.cpp"
|
genmyc-modern.cpp genrain-modern.cpp genmel-modern.cpp
|
||||||
|
genvux-modern.cpp"
|
||||||
|
|||||||
+136
-58
@@ -32,45 +32,117 @@
|
|||||||
#include "../../state.h"
|
#include "../../state.h"
|
||||||
#include "libs/mathlib.h"
|
#include "libs/mathlib.h"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <array>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <exception>
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
static bool GenerateVux_generatePlanets (SOLARSYS_STATE *solarSys);
|
namespace
|
||||||
static bool GenerateVux_generateOrbital (SOLARSYS_STATE *solarSys,
|
{
|
||||||
|
using namespace std::literals::string_literals;
|
||||||
|
using namespace Planets::exports;
|
||||||
|
|
||||||
|
// Because we're more stringy and dynamic... It's possible that the
|
||||||
|
// supplemental arguments might be spelt wrong in various places.
|
||||||
|
//
|
||||||
|
// To help defend against this, the starmap checkers will make sure that
|
||||||
|
// only entries from this list are used.
|
||||||
|
//
|
||||||
|
// Further, I provide a `""_a` string suffix to facilitate C++23 compile
|
||||||
|
// time checks that each string being used is actually in this list.
|
||||||
|
// It does (at present) require the discipline to use `_a` suffix in all
|
||||||
|
// mentions. I can use more weaponized type system tricks to enforce
|
||||||
|
// that requirement. Some of those tricks require specialized typing
|
||||||
|
// in the STAR_DESC type... which I can't make C compatible.
|
||||||
|
//
|
||||||
|
// The right solution here is an Alepha::Enum. I'll probably be
|
||||||
|
// able to bring in Alepha soon -- but it's not worth it to
|
||||||
|
// make this code work like that. Instead, this somewhat peculiar
|
||||||
|
// merging of generation in this file should be decoupled.
|
||||||
|
// It mostly seems to exist to share the generation of the
|
||||||
|
// shattered world in the first planet slot -- after that, it just
|
||||||
|
// mostly does its own thing with each world.
|
||||||
|
|
||||||
|
constexpr std::array< std::string_view, 3 > required
|
||||||
|
{
|
||||||
|
"Homeworld",
|
||||||
|
"ZEX",
|
||||||
|
"Beast",
|
||||||
|
};
|
||||||
|
|
||||||
|
constexpr std::string x= "Hello";
|
||||||
|
|
||||||
|
constexpr bool
|
||||||
|
checkRequired( const std::string_view s )
|
||||||
|
{
|
||||||
|
return end( required ) != std::find( begin( required ), end( required ), s );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
consteval std::string_view
|
||||||
|
operator ""_a( const char *const p, const std::size_t sz )
|
||||||
|
{
|
||||||
|
const std::string_view rv{ p, p + sz };
|
||||||
|
if( not checkRequired( rv ) )
|
||||||
|
{
|
||||||
|
throw "The text specified was not one of the required argument strings";
|
||||||
|
}
|
||||||
|
return rv;
|
||||||
|
};
|
||||||
|
|
||||||
|
class GenerateVux
|
||||||
|
: public DefaultGenerator
|
||||||
|
{
|
||||||
|
bool generatePlanets (SOLARSYS_STATE *solarSys);
|
||||||
|
bool generateOrbital (SOLARSYS_STATE *solarSys,
|
||||||
PLANET_DESC *world);
|
PLANET_DESC *world);
|
||||||
static COUNT GenerateVux_generateEnergy (const SOLARSYS_STATE *,
|
COUNT generateEnergy (const SOLARSYS_STATE *,
|
||||||
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
|
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
|
||||||
static COUNT GenerateVux_generateLife (const SOLARSYS_STATE *,
|
COUNT generateLife (const SOLARSYS_STATE *,
|
||||||
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
|
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
|
||||||
static bool GenerateVux_pickupEnergy (SOLARSYS_STATE *, PLANET_DESC *world,
|
bool pickupEnergy (SOLARSYS_STATE *, PLANET_DESC *world,
|
||||||
COUNT whichNode);
|
COUNT whichNode);
|
||||||
static bool GenerateVux_pickupLife (SOLARSYS_STATE *, PLANET_DESC *world,
|
bool pickupLife (SOLARSYS_STATE *, PLANET_DESC *world,
|
||||||
COUNT whichNode);
|
COUNT whichNode);
|
||||||
|
|
||||||
|
void
|
||||||
|
checkSupplementRequirements( const std::optional< std::string > ¶m ) override
|
||||||
|
{
|
||||||
|
if( not param.has_value() )
|
||||||
|
{
|
||||||
|
throw std::runtime_error{ "VUX solar system did not have any supplementary "
|
||||||
|
"argument." };
|
||||||
|
}
|
||||||
|
if( not checkRequired( param.value() ) )
|
||||||
|
{
|
||||||
|
throw std::runtime_error{ "VUX solar system did not have any valid "
|
||||||
|
"supplementary argument (was instead: `"s + param.value() + "`)" };
|
||||||
|
}
|
||||||
|
|
||||||
const GenerateFunctions generateVuxFunctions = {
|
std::cerr << "World had " << param.value() << " which was a permissible value"
|
||||||
/* .initNpcs = */ GenerateDefault_initNpcs,
|
<< std::endl;
|
||||||
/* .reinitNpcs = */ GenerateDefault_reinitNpcs,
|
}
|
||||||
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
|
};
|
||||||
/* .generatePlanets = */ GenerateVux_generatePlanets,
|
|
||||||
/* .generateMoons = */ GenerateDefault_generateMoons,
|
auto init= []
|
||||||
/* .generateName = */ GenerateDefault_generateName,
|
{
|
||||||
/* .generateOrbital = */ GenerateVux_generateOrbital,
|
Generator::add( "VUX", std::make_unique< GenerateVux >() );
|
||||||
/* .generateMinerals = */ GenerateDefault_generateMinerals,
|
|
||||||
/* .generateEnergy = */ GenerateVux_generateEnergy,
|
return 0xDEADBEEF;
|
||||||
/* .generateLife = */ GenerateVux_generateLife,
|
}();
|
||||||
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
|
}
|
||||||
/* .pickupEnergy = */ GenerateVux_pickupEnergy,
|
|
||||||
/* .pickupLife = */ GenerateVux_pickupLife,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static bool
|
bool
|
||||||
GenerateVux_generatePlanets (SOLARSYS_STATE *solarSys)
|
GenerateVux::generatePlanets( SolarSystem *const solarSys )
|
||||||
{
|
{
|
||||||
COUNT angle;
|
COUNT angle;
|
||||||
|
|
||||||
GenerateDefault_generatePlanets (solarSys);
|
DefaultGenerator::generatePlanets (solarSys);
|
||||||
|
|
||||||
if (CurStarDescPtr->Index == MAIDENS_DEFINED)
|
if (CurStarDescPtr->supArg == "ZEX"_a)
|
||||||
{
|
{
|
||||||
GenerateDefault_generatePlanets (solarSys);
|
GenerateDefault_generatePlanets (solarSys);
|
||||||
// XXX: this is the second time that this function is
|
// XXX: this is the second time that this function is
|
||||||
@@ -87,14 +159,14 @@ GenerateVux_generatePlanets (SOLARSYS_STATE *solarSys)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (CurStarDescPtr->Index == VUX_DEFINED)
|
if (CurStarDescPtr->supArg == "Homeworld"_a)
|
||||||
{
|
{
|
||||||
solarSys->PlanetDesc[0].data_index = REDUX_WORLD;
|
solarSys->PlanetDesc[0].data_index = REDUX_WORLD;
|
||||||
solarSys->PlanetDesc[0].NumPlanets = 1;
|
solarSys->PlanetDesc[0].NumPlanets = 1;
|
||||||
solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 42L / 100;
|
solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 42L / 100;
|
||||||
angle = HALF_CIRCLE + OCTANT;
|
angle = HALF_CIRCLE + OCTANT;
|
||||||
}
|
}
|
||||||
else /* if (CurStarDescPtr->Index == VUX_BEAST_DEFINED) */
|
else if (CurStarDescPtr->supArg == "Beast"_a)
|
||||||
{
|
{
|
||||||
memmove (&solarSys->PlanetDesc[1], &solarSys->PlanetDesc[0],
|
memmove (&solarSys->PlanetDesc[1], &solarSys->PlanetDesc[0],
|
||||||
sizeof (solarSys->PlanetDesc[0])
|
sizeof (solarSys->PlanetDesc[0])
|
||||||
@@ -106,6 +178,7 @@ GenerateVux_generatePlanets (SOLARSYS_STATE *solarSys)
|
|||||||
solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 110L / 100;
|
solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 110L / 100;
|
||||||
solarSys->PlanetDesc[0].NumPlanets = 0;
|
solarSys->PlanetDesc[0].NumPlanets = 0;
|
||||||
}
|
}
|
||||||
|
else throw std::runtime_error{ "Got unexpected `"s + CurStarDescPtr->supArg + "`" };
|
||||||
|
|
||||||
solarSys->PlanetDesc[0].location.x =
|
solarSys->PlanetDesc[0].location.x =
|
||||||
COSINE (angle, solarSys->PlanetDesc[0].radius);
|
COSINE (angle, solarSys->PlanetDesc[0].radius);
|
||||||
@@ -118,12 +191,12 @@ GenerateVux_generatePlanets (SOLARSYS_STATE *solarSys)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
bool
|
||||||
GenerateVux_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
GenerateVux::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world )
|
||||||
{
|
{
|
||||||
if ((matchWorld (solarSys, world, 0, MATCH_PLANET)
|
if ((matchWorld (solarSys, world, 0, MATCH_PLANET)
|
||||||
&& (CurStarDescPtr->Index == VUX_DEFINED
|
&& (CurStarDescPtr->supArg == "Homeworld"_a
|
||||||
|| (CurStarDescPtr->Index == MAIDENS_DEFINED
|
|| (CurStarDescPtr->supArg == "ZEX"_a
|
||||||
&& !GET_GAME_STATE (ZEX_IS_DEAD))))
|
&& !GET_GAME_STATE (ZEX_IS_DEAD))))
|
||||||
&& StartSphereTracking (VUX_SHIP))
|
&& StartSphereTracking (VUX_SHIP))
|
||||||
{
|
{
|
||||||
@@ -134,7 +207,7 @@ GenerateVux_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
|||||||
|
|
||||||
CloneShipFragment (VUX_SHIP,
|
CloneShipFragment (VUX_SHIP,
|
||||||
&GLOBAL (npc_built_ship_q), INFINITE_FLEET);
|
&GLOBAL (npc_built_ship_q), INFINITE_FLEET);
|
||||||
if (CurStarDescPtr->Index == VUX_DEFINED)
|
if (CurStarDescPtr->supArg == "Homeworld"_a)
|
||||||
{
|
{
|
||||||
SET_GAME_STATE (GLOBAL_FLAGS_AND_DATA, 1 << 7);
|
SET_GAME_STATE (GLOBAL_FLAGS_AND_DATA, 1 << 7);
|
||||||
}
|
}
|
||||||
@@ -154,7 +227,7 @@ GenerateVux_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
|||||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||||
|
|
||||||
if (CurStarDescPtr->Index == VUX_DEFINED
|
if (CurStarDescPtr->supArg == "Homeworld"_a
|
||||||
|| !GET_GAME_STATE (ZEX_IS_DEAD))
|
|| !GET_GAME_STATE (ZEX_IS_DEAD))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -164,7 +237,7 @@ GenerateVux_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
|||||||
|
|
||||||
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
|
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||||
{
|
{
|
||||||
if (CurStarDescPtr->Index == MAIDENS_DEFINED)
|
if (CurStarDescPtr->supArg == "ZEX"_a)
|
||||||
{
|
{
|
||||||
if (!GET_GAME_STATE (SHOFIXTI_MAIDENS))
|
if (!GET_GAME_STATE (SHOFIXTI_MAIDENS))
|
||||||
{
|
{
|
||||||
@@ -176,7 +249,7 @@ GenerateVux_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
|||||||
LoadStringTable (MAIDENS_STRTAB));
|
LoadStringTable (MAIDENS_STRTAB));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (CurStarDescPtr->Index == VUX_BEAST_DEFINED)
|
else if (CurStarDescPtr->supArg == "Beast"_a)
|
||||||
{
|
{
|
||||||
if (!GET_GAME_STATE (VUX_BEAST))
|
if (!GET_GAME_STATE (VUX_BEAST))
|
||||||
{
|
{
|
||||||
@@ -187,7 +260,7 @@ GenerateVux_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
|||||||
LoadStringTable (BEAST_STRTAB));
|
LoadStringTable (BEAST_STRTAB));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (CurStarDescPtr->supArg == "Homeworld"_a)
|
||||||
{
|
{
|
||||||
LoadStdLanderFont (&solarSys->SysInfo.PlanetInfo);
|
LoadStdLanderFont (&solarSys->SysInfo.PlanetInfo);
|
||||||
solarSys->PlanetSideFrame[1] =
|
solarSys->PlanetSideFrame[1] =
|
||||||
@@ -195,9 +268,14 @@ GenerateVux_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
|||||||
solarSys->SysInfo.PlanetInfo.DiscoveryString =
|
solarSys->SysInfo.PlanetInfo.DiscoveryString =
|
||||||
CaptureStringTable (LoadStringTable (RUINS_STRTAB));
|
CaptureStringTable (LoadStringTable (RUINS_STRTAB));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw std::runtime_error{ "Unexpected world (`"s + CurStarDescPtr->supArg
|
||||||
|
+ " for landing." };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GenerateDefault_generateOrbital (solarSys, world);
|
DefaultGenerator::generateOrbital (solarSys, world);
|
||||||
|
|
||||||
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
|
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||||
{
|
{
|
||||||
@@ -208,11 +286,11 @@ GenerateVux_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static COUNT
|
COUNT
|
||||||
GenerateVux_generateEnergy (const SOLARSYS_STATE *solarSys,
|
GenerateVux::generateEnergy( const SolarSystem *const solarSys,
|
||||||
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *info)
|
const PLANET_DESC *const world, const COUNT whichNode, NODE_INFO *const info )
|
||||||
{
|
{
|
||||||
if (CurStarDescPtr->Index == MAIDENS_DEFINED
|
if (CurStarDescPtr->supArg == "ZEX"_a
|
||||||
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||||
{
|
{
|
||||||
// This check is redundant since the retrieval bit will keep the
|
// This check is redundant since the retrieval bit will keep the
|
||||||
@@ -231,7 +309,7 @@ GenerateVux_generateEnergy (const SOLARSYS_STATE *solarSys,
|
|||||||
return 1; // only matters when count is requested
|
return 1; // only matters when count is requested
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CurStarDescPtr->Index == VUX_DEFINED
|
if (CurStarDescPtr->supArg == "Homeworld"_a
|
||||||
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||||
{
|
{
|
||||||
return GenerateDefault_generateRuins (solarSys, whichNode, info);
|
return GenerateDefault_generateRuins (solarSys, whichNode, info);
|
||||||
@@ -240,11 +318,11 @@ GenerateVux_generateEnergy (const SOLARSYS_STATE *solarSys,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
bool
|
||||||
GenerateVux_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
GenerateVux::pickupEnergy( SolarSystem *const solarSys, PLANET_DESC *const world,
|
||||||
COUNT whichNode)
|
const COUNT whichNode )
|
||||||
{
|
{
|
||||||
if (CurStarDescPtr->Index == MAIDENS_DEFINED
|
if (CurStarDescPtr->supArg == "ZEX"_a
|
||||||
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||||
{
|
{
|
||||||
assert (!GET_GAME_STATE (SHOFIXTI_MAIDENS) && whichNode == 0);
|
assert (!GET_GAME_STATE (SHOFIXTI_MAIDENS) && whichNode == 0);
|
||||||
@@ -258,7 +336,7 @@ GenerateVux_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
return true; // picked up
|
return true; // picked up
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CurStarDescPtr->Index == VUX_DEFINED
|
if (CurStarDescPtr->supArg == "Homeworld"_a
|
||||||
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||||
{
|
{
|
||||||
// Standard ruins report
|
// Standard ruins report
|
||||||
@@ -270,11 +348,11 @@ GenerateVux_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static COUNT
|
COUNT
|
||||||
GenerateVux_generateLife (const SOLARSYS_STATE *solarSys,
|
GenerateVux::generateLife( const SolarSystem *const solarSys,
|
||||||
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *info)
|
const PLANET_DESC *const world, const COUNT whichNode, NODE_INFO *const info )
|
||||||
{
|
{
|
||||||
if (CurStarDescPtr->Index == MAIDENS_DEFINED
|
if (CurStarDescPtr->supArg == "ZEX"_a
|
||||||
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||||
{
|
{
|
||||||
static const SBYTE life[] =
|
static const SBYTE life[] =
|
||||||
@@ -287,7 +365,7 @@ GenerateVux_generateLife (const SOLARSYS_STATE *solarSys,
|
|||||||
return GeneratePresetLife (&solarSys->SysInfo, life, whichNode, info);
|
return GeneratePresetLife (&solarSys->SysInfo, life, whichNode, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CurStarDescPtr->Index == VUX_BEAST_DEFINED
|
if (CurStarDescPtr->supArg == "Beast"_a
|
||||||
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||||
{
|
{
|
||||||
static const SBYTE life[] =
|
static const SBYTE life[] =
|
||||||
@@ -301,14 +379,14 @@ GenerateVux_generateLife (const SOLARSYS_STATE *solarSys,
|
|||||||
return GeneratePresetLife (&solarSys->SysInfo, life, whichNode, info);
|
return GeneratePresetLife (&solarSys->SysInfo, life, whichNode, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
return GenerateDefault_generateLife (solarSys, world, whichNode, info);
|
return DefaultGenerator::generateLife (solarSys, world, whichNode, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
bool
|
||||||
GenerateVux_pickupLife (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
GenerateVux::pickupLife( SolarSystem *const solarSys, PLANET_DESC *const world,
|
||||||
COUNT whichNode)
|
const COUNT whichNode)
|
||||||
{
|
{
|
||||||
if (CurStarDescPtr->Index == VUX_BEAST_DEFINED
|
if (CurStarDescPtr->supArg == "Beast"_a
|
||||||
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
&& matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||||
{
|
{
|
||||||
if (whichNode == 0)
|
if (whichNode == 0)
|
||||||
@@ -325,5 +403,5 @@ GenerateVux_pickupLife (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
|||||||
return true; // picked up
|
return true; // picked up
|
||||||
}
|
}
|
||||||
|
|
||||||
return GenerateDefault_pickupLife (solarSys, world, whichNode);
|
return DefaultGenerator::pickupLife (solarSys, world, whichNode);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user