The last of the single-system generators.
This commit is contained in:
@@ -24,12 +24,10 @@
|
||||
|
||||
extern GenerateFunctions generateDefaultFunctions;
|
||||
|
||||
extern GenerateFunctions generateIlwrathFunctions;
|
||||
extern GenerateFunctions generateMelnormeFunctions;
|
||||
extern GenerateFunctions generateMyconFunctions;
|
||||
extern GenerateFunctions generateOrzFunctions;
|
||||
extern GenerateFunctions generateRainbowWorldFunctions;
|
||||
extern GenerateFunctions generateSaMatraFunctions;
|
||||
extern GenerateFunctions generateSolFunctions;
|
||||
extern GenerateFunctions generateThraddashFunctions;
|
||||
extern GenerateFunctions generateUtwigFunctions;
|
||||
@@ -42,6 +40,8 @@ getGenerateFunctions (STAR_DESC *const star)
|
||||
switch (star->Index)
|
||||
{
|
||||
// Legacy ones are disabled...
|
||||
case SAMATRA_DEFINED:
|
||||
case ILWRATH_DEFINED:
|
||||
case SPATHI_DEFINED:
|
||||
case TALKING_PET_DEFINED:
|
||||
case ZOQFOT_DEFINED:
|
||||
@@ -95,12 +95,8 @@ getGenerateFunctions (STAR_DESC *const star)
|
||||
case VUX_BEAST_DEFINED:
|
||||
case VUX_DEFINED:
|
||||
return &generateVuxFunctions;
|
||||
case SAMATRA_DEFINED:
|
||||
return &generateSaMatraFunctions;
|
||||
case RAINBOW_DEFINED:
|
||||
return &generateRainbowWorldFunctions;
|
||||
case ILWRATH_DEFINED:
|
||||
return &generateIlwrathFunctions;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -563,11 +563,13 @@ STAR_DESC starmap_array[] =
|
||||
|
||||
{{3587, 2566}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 7, 86, "Androsynth"},
|
||||
{{9469, 2806}, MAKE_STAR (DWARF_STAR, ORANGE_BODY, -1), 0, 6, 61, "Druuge"},
|
||||
{{ 229, 3666}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 1, 76, "Ilwrath"},
|
||||
{{2416, 3687}, MAKE_STAR (GIANT_STAR, ORANGE_BODY, -1), 0, 5, 109, "Spathiwa"},
|
||||
{{4125, 3770}, MAKE_STAR (DWARF_STAR, BLUE_BODY, -1), 0, 0, 114, "Syreen Gaia"},
|
||||
{{5937, 3937}, MAKE_STAR (DWARF_STAR, ORANGE_BODY, -1), 0, 5, 10, "Syreen Vault"},
|
||||
{{4000, 5437}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 1, 18, "Zoq-Fot-Pik"},
|
||||
{{9645, 5791}, MAKE_STAR (DWARF_STAR, ORANGE_BODY, -1), 0, 0, 130, "Burvixese"},
|
||||
{{6200, 5935}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), 0, 4, 21, "Sa-Matra"},
|
||||
{{1978, 5968}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 2, 54, "Umgah and Talking Pet"},
|
||||
|
||||
{{7414, 9124}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 2, 47, "Supox"},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
uqm_CFILES="gendefault.c
|
||||
genilw.c genmel.c genmyc.c genorz.c genrain.c
|
||||
gensam.c gensol.c
|
||||
genmel.c genmyc.c genorz.c genrain.c
|
||||
gensol.c
|
||||
genthrad.c genutw.c genvux.c"
|
||||
uqm_HFILES="genall.h gendefault.h"
|
||||
uqm_CXXFILES="cxx-generator.cpp gensly-modern.cpp genshof-modern.cpp
|
||||
@@ -9,4 +9,4 @@ uqm_CXXFILES="cxx-generator.cpp gensly-modern.cpp genshof-modern.cpp
|
||||
genvault-modern.cpp genchmmr-modern.cpp gendru-modern.cpp
|
||||
gentrap-modern.cpp gensup-modern.cpp genspa-modern.cpp
|
||||
genpet-modern.cpp genzoq-modern.cpp genyeh-modern.cpp
|
||||
genpku-modern.cpp"
|
||||
genilw-modern.cpp genpku-modern.cpp gensam-modern.cpp"
|
||||
|
||||
+33
-34
@@ -27,38 +27,37 @@
|
||||
#include "libs/mathlib.h"
|
||||
|
||||
|
||||
static bool GenerateIlwrath_generatePlanets (SOLARSYS_STATE *solarSys);
|
||||
static bool GenerateIlwrath_generateOrbital (SOLARSYS_STATE *solarSys,
|
||||
PLANET_DESC *world);
|
||||
static COUNT GenerateIlwrath_generateEnergy (const SOLARSYS_STATE *,
|
||||
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
|
||||
static bool GenerateIlwrath_pickupEnergy (SOLARSYS_STATE *solarSys,
|
||||
PLANET_DESC *world, COUNT whichNode);
|
||||
namespace
|
||||
{
|
||||
using namespace Planets::exports;
|
||||
|
||||
|
||||
const GenerateFunctions generateIlwrathFunctions = {
|
||||
/* .initNpcs = */ GenerateDefault_initNpcs,
|
||||
/* .reinitNpcs = */ GenerateDefault_reinitNpcs,
|
||||
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
|
||||
/* .generatePlanets = */ GenerateIlwrath_generatePlanets,
|
||||
/* .generateMoons = */ GenerateDefault_generateMoons,
|
||||
/* .generateName = */ GenerateDefault_generateName,
|
||||
/* .generateOrbital = */ GenerateIlwrath_generateOrbital,
|
||||
/* .generateMinerals = */ GenerateDefault_generateMinerals,
|
||||
/* .generateEnergy = */ GenerateIlwrath_generateEnergy,
|
||||
/* .generateLife = */ GenerateDefault_generateLife,
|
||||
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
|
||||
/* .pickupEnergy = */ GenerateIlwrath_pickupEnergy,
|
||||
/* .pickupLife = */ GenerateDefault_pickupLife,
|
||||
class GenerateIlwrath
|
||||
: public DefaultGenerator
|
||||
{
|
||||
bool generatePlanets( SolarSystem *solarSys ) override;
|
||||
bool generateOrbital( SolarSystem *solarSys,
|
||||
PLANET_DESC *world ) override;
|
||||
COUNT generateEnergy( const SOLARSYS_STATE *,
|
||||
const PLANET_DESC *world, COUNT whichNode, NODE_INFO * ) override;
|
||||
bool pickupEnergy( SOLARSYS_STATE *solarSys,
|
||||
PLANET_DESC *world, COUNT whichNode ) override;
|
||||
};
|
||||
|
||||
auto init= []
|
||||
{
|
||||
Generator::add( "Ilwrath", std::make_unique< GenerateIlwrath >() );
|
||||
|
||||
static bool
|
||||
GenerateIlwrath_generatePlanets (SOLARSYS_STATE *solarSys)
|
||||
return 0xDEADBEEF;
|
||||
}();
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
GenerateIlwrath::generatePlanets( SolarSystem *const solarSys )
|
||||
{
|
||||
COUNT angle;
|
||||
|
||||
GenerateDefault_generatePlanets (solarSys);
|
||||
DefaultGenerator::generatePlanets (solarSys);
|
||||
|
||||
solarSys->PlanetDesc[0].data_index = PRIMORDIAL_WORLD;
|
||||
solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 204L / 100;
|
||||
@@ -73,8 +72,8 @@ GenerateIlwrath_generatePlanets (SOLARSYS_STATE *solarSys)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
GenerateIlwrath_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
||||
bool
|
||||
GenerateIlwrath::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world)
|
||||
{
|
||||
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||
{
|
||||
@@ -111,7 +110,7 @@ GenerateIlwrath_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
||||
}
|
||||
}
|
||||
|
||||
GenerateDefault_generateOrbital (solarSys, world);
|
||||
DefaultGenerator::generateOrbital( solarSys, world );
|
||||
|
||||
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||
{
|
||||
@@ -122,9 +121,9 @@ GenerateIlwrath_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
||||
return true;
|
||||
}
|
||||
|
||||
static COUNT
|
||||
GenerateIlwrath_generateEnergy (const SOLARSYS_STATE *solarSys,
|
||||
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *info)
|
||||
COUNT
|
||||
GenerateIlwrath::generateEnergy( const SolarSystem *const solarSys,
|
||||
const PLANET_DESC *const world, const COUNT whichNode, NODE_INFO *const info )
|
||||
{
|
||||
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||
{
|
||||
@@ -134,9 +133,9 @@ GenerateIlwrath_generateEnergy (const SOLARSYS_STATE *solarSys,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool
|
||||
GenerateIlwrath_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
|
||||
COUNT whichNode)
|
||||
bool
|
||||
GenerateIlwrath::pickupEnergy( SOLARSYS_STATE *const solarSys, PLANET_DESC *const world,
|
||||
const COUNT whichNode )
|
||||
{
|
||||
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
|
||||
{
|
||||
+39
-49
@@ -26,56 +26,51 @@
|
||||
#include "../../state.h"
|
||||
#include "libs/mathlib.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
using namespace Planets::exports;
|
||||
|
||||
static bool GenerateSaMatra_initNpcs (SOLARSYS_STATE *solarSys);
|
||||
static bool GenerateSaMatra_reinitNpcs (SOLARSYS_STATE *solarSys);
|
||||
static bool GenerateSaMatra_generatePlanets (SOLARSYS_STATE *solarSys);
|
||||
static bool GenerateSaMatra_generateMoons (SOLARSYS_STATE *solarSys,
|
||||
PLANET_DESC *planet);
|
||||
static bool GenerateSaMatra_generateOrbital (SOLARSYS_STATE *solarSys,
|
||||
PLANET_DESC *world);
|
||||
class GenerateSaMatra
|
||||
: public DefaultGenerator
|
||||
{
|
||||
void initNpcs( SolarSystem *solarSys ) override;
|
||||
void reinitNpcs( SolarSystem *solarSys ) override;
|
||||
bool generatePlanets( SolarSystem *solarSys ) override;
|
||||
bool generateMoons( SolarSystem *solarSys,
|
||||
PLANET_DESC *planet ) override;
|
||||
bool generateOrbital( SolarSystem *solarSys,
|
||||
PLANET_DESC *world ) override;
|
||||
|
||||
static void BuildUrquanGuard (SOLARSYS_STATE *solarSys);
|
||||
|
||||
|
||||
const GenerateFunctions generateSaMatraFunctions = {
|
||||
/* .initNpcs = */ GenerateSaMatra_initNpcs,
|
||||
/* .reinitNpcs = */ GenerateSaMatra_reinitNpcs,
|
||||
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
|
||||
/* .generatePlanets = */ GenerateSaMatra_generatePlanets,
|
||||
/* .generateMoons = */ GenerateSaMatra_generateMoons,
|
||||
/* .generateName = */ GenerateDefault_generateName,
|
||||
/* .generateOrbital = */ GenerateSaMatra_generateOrbital,
|
||||
/* .generateMinerals = */ GenerateDefault_generateMinerals,
|
||||
/* .generateEnergy = */ GenerateDefault_generateEnergy,
|
||||
/* .generateLife = */ GenerateDefault_generateLife,
|
||||
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
|
||||
/* .pickupEnergy = */ GenerateDefault_pickupEnergy,
|
||||
/* .pickupLife = */ GenerateDefault_pickupLife,
|
||||
static void BuildUrquanGuard();
|
||||
};
|
||||
|
||||
auto init= []
|
||||
{
|
||||
Generator::add( "Sa-Matra", std::make_unique< GenerateSaMatra >() );
|
||||
|
||||
static bool
|
||||
GenerateSaMatra_initNpcs (SOLARSYS_STATE *solarSys)
|
||||
return 0xDEADBEEF;
|
||||
}();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
GenerateSaMatra::initNpcs( SolarSystem * )
|
||||
{
|
||||
if (!GET_GAME_STATE (URQUAN_MESSED_UP))
|
||||
{
|
||||
BuildUrquanGuard (solarSys);
|
||||
BuildUrquanGuard();
|
||||
}
|
||||
else
|
||||
{ // Exorcise Ur-Quan ghosts upon system reentry
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
// wipe out the group
|
||||
}
|
||||
|
||||
(void) solarSys;
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
GenerateSaMatra_reinitNpcs (SOLARSYS_STATE *solarSys)
|
||||
void
|
||||
GenerateSaMatra::reinitNpcs( SolarSystem * )
|
||||
{
|
||||
BOOLEAN GuardEngaged;
|
||||
bool GuardEngaged;
|
||||
HIPGROUP hGroup;
|
||||
HIPGROUP hNextGroup;
|
||||
|
||||
@@ -84,7 +79,7 @@ GenerateSaMatra_reinitNpcs (SOLARSYS_STATE *solarSys)
|
||||
EncounterRace = -1;
|
||||
// Do not want guards to chase the player
|
||||
|
||||
GuardEngaged = FALSE;
|
||||
GuardEngaged = false;
|
||||
for (hGroup = GetHeadLink (&GLOBAL (ip_group_q));
|
||||
hGroup; hGroup = hNextGroup)
|
||||
{
|
||||
@@ -106,7 +101,7 @@ GenerateSaMatra_reinitNpcs (SOLARSYS_STATE *solarSys)
|
||||
GroupPtr->task &= ~REFORM_GROUP;
|
||||
GroupPtr->group_counter = 0;
|
||||
|
||||
GuardEngaged = TRUE;
|
||||
GuardEngaged = true;
|
||||
}
|
||||
|
||||
UnlockIpGroup (&GLOBAL (ip_group_q), hGroup);
|
||||
@@ -125,21 +120,18 @@ GenerateSaMatra_reinitNpcs (SOLARSYS_STATE *solarSys)
|
||||
XFormIPLoc (&GLOBAL (ip_location),
|
||||
&GLOBAL (ShipStamp.origin), TRUE);
|
||||
}
|
||||
|
||||
(void) solarSys;
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
GenerateSaMatra_generatePlanets (SOLARSYS_STATE *solarSys)
|
||||
bool
|
||||
GenerateSaMatra::generatePlanets( SolarSystem *const solarSys )
|
||||
{
|
||||
GenerateDefault_generatePlanets (solarSys);
|
||||
solarSys->PlanetDesc[4].NumPlanets = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
GenerateSaMatra_generateMoons (SOLARSYS_STATE *solarSys, PLANET_DESC *planet)
|
||||
bool
|
||||
GenerateSaMatra::generateMoons( SolarSystem *const solarSys, PLANET_DESC *const planet )
|
||||
{
|
||||
GenerateDefault_generateMoons (solarSys, planet);
|
||||
|
||||
@@ -161,8 +153,8 @@ GenerateSaMatra_generateMoons (SOLARSYS_STATE *solarSys, PLANET_DESC *planet)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
GenerateSaMatra_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
||||
bool
|
||||
GenerateSaMatra::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world )
|
||||
{
|
||||
/* Samatra */
|
||||
if (matchWorld (solarSys, world, 4, 0))
|
||||
@@ -198,7 +190,7 @@ GenerateSaMatra_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
||||
|
||||
if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD)))
|
||||
{
|
||||
BOOLEAN UrquanSurvivors;
|
||||
bool UrquanSurvivors;
|
||||
|
||||
UrquanSurvivors = GetHeadLink (&GLOBAL (npc_built_ship_q)) != 0;
|
||||
|
||||
@@ -227,8 +219,8 @@ GenerateSaMatra_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
|
||||
return true;
|
||||
}
|
||||
|
||||
static void
|
||||
BuildUrquanGuard (SOLARSYS_STATE *solarSys)
|
||||
void
|
||||
GenerateSaMatra::BuildUrquanGuard()
|
||||
{
|
||||
BYTE ship1, ship2;
|
||||
BYTE b0, b1;
|
||||
@@ -318,7 +310,5 @@ BuildUrquanGuard (SOLARSYS_STATE *solarSys)
|
||||
UnlockIpGroup (&GLOBAL (ip_group_q), hGroup);
|
||||
hGroup = hNextGroup;
|
||||
}
|
||||
|
||||
(void) solarSys;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user