Another 5 custom generators made C++ish.

This commit is contained in:
2024-04-27 00:15:57 -04:00
parent ef18781091
commit aff534f6b5
8 changed files with 216 additions and 228 deletions
+5 -16
View File
@@ -28,17 +28,12 @@ extern GenerateFunctions generateIlwrathFunctions;
extern GenerateFunctions generateMelnormeFunctions;
extern GenerateFunctions generateMyconFunctions;
extern GenerateFunctions generateOrzFunctions;
extern GenerateFunctions generatePkunkFunctions;
extern GenerateFunctions generateRainbowWorldFunctions;
extern GenerateFunctions generateSaMatraFunctions;
extern GenerateFunctions generateSolFunctions;
extern GenerateFunctions generateSpathiFunctions;
extern GenerateFunctions generateTalkingPetFunctions;
extern GenerateFunctions generateThraddashFunctions;
extern GenerateFunctions generateUtwigFunctions;
extern GenerateFunctions generateVuxFunctions;
extern GenerateFunctions generateYehatFunctions;
extern GenerateFunctions generateZoqFotPikFunctions;
const GenerateFunctions *
@@ -47,11 +42,15 @@ getGenerateFunctions (STAR_DESC *const star)
switch (star->Index)
{
// Legacy ones are disabled...
case SPATHI_DEFINED:
case TALKING_PET_DEFINED:
case ZOQFOT_DEFINED:
case YEHAT_DEFINED:
case PKUNK_DEFINED:
case CHMMR_DEFINED:
case DRUUGE_DEFINED:
case MYCON_TRAP_DEFINED:
case SUPOX_DEFINED:
case SHIP_VAULT_DEFINED:
case ANDROSYNTH_DEFINED:
case BURVIXESE_DEFINED:
@@ -67,8 +66,6 @@ getGenerateFunctions (STAR_DESC *const star)
case SOL_DEFINED:
return &generateSolFunctions;
case SPATHI_DEFINED:
return &generateSpathiFunctions;
case MELNORME0_DEFINED:
case MELNORME1_DEFINED:
case MELNORME2_DEFINED:
@@ -79,8 +76,6 @@ getGenerateFunctions (STAR_DESC *const star)
case MELNORME7_DEFINED:
case MELNORME8_DEFINED:
return &generateMelnormeFunctions;
case TALKING_PET_DEFINED:
return &generateTalkingPetFunctions;
case BOMB_DEFINED:
case UTWIG_DEFINED:
return &generateUtwigFunctions;
@@ -102,12 +97,6 @@ getGenerateFunctions (STAR_DESC *const star)
return &generateVuxFunctions;
case SAMATRA_DEFINED:
return &generateSaMatraFunctions;
case ZOQFOT_DEFINED:
return &generateZoqFotPikFunctions;
case YEHAT_DEFINED:
return &generateYehatFunctions;
case PKUNK_DEFINED:
return &generatePkunkFunctions;
case RAINBOW_DEFINED:
return &generateRainbowWorldFunctions;
case ILWRATH_DEFINED:
+5
View File
@@ -538,6 +538,8 @@ STAR_DESC starmap_array[] =
#endif
//{{2908, 269}, MAKE_STAR (DWARF_STAR, BLUE_BODY, -1), SHOFIXTI_DEFINED, 4, 82},
{{4923, 294}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), 0, 3, 74, "Yehat"},
{{ 522, 525}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), 0, 3, 92, "Pkunk"},
{{6858, 577}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 0, 123, "Mycon Trap"},
{{1004, 1083}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 2, 27, "Slylandro"},
{{1776, 1395}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), 0, 0, 98, "Colony"},
@@ -561,9 +563,12 @@ 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"},
{{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"},
{{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"},
+6 -5
View File
@@ -1,11 +1,12 @@
uqm_CFILES="gendefault.c
genilw.c genmel.c genmyc.c genorz.c genpet.c genpku.c genrain.c
gensam.c gensol.c genspa.c
genthrad.c genutw.c genvux.c
genyeh.c genzoq.c"
genilw.c genmel.c genmyc.c genorz.c genrain.c
gensam.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
gencol-modern.cpp genwreck-modern.cpp genzfpscout-modern.cpp
genand-modern.cpp genburv-modern.cpp gensyr-modern.cpp
genvault-modern.cpp genchmmr-modern.cpp gendru-modern.cpp
gentrap-modern.cpp gensup-modern.cpp"
gentrap-modern.cpp gensup-modern.cpp genspa-modern.cpp
genpet-modern.cpp genzoq-modern.cpp genyeh-modern.cpp
genpku-modern.cpp"
@@ -30,40 +30,39 @@
#include "libs/mathlib.h"
static bool GenerateTalkingPet_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GenerateTalkingPet_generateOrbital (SOLARSYS_STATE *solarSys,
PLANET_DESC *world);
static COUNT GenerateTalkingPet_generateEnergy (const SOLARSYS_STATE *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
static bool GenerateTalkingPet_pickupEnergy (SOLARSYS_STATE *solarSys,
PLANET_DESC *world, COUNT whichNode);
namespace
{
using namespace Planets::exports;
static void ZapToUrquanEncounter (void);
class GenerateTalkingPet
: public DefaultGenerator
{
bool generatePlanets( SolarSystem *solarSys ) override;
bool generateOrbital( SolarSystem *solarSys,
PLANET_DESC *world ) override;
COUNT generateEnergy( const SolarSystem *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO * ) override;
bool pickupEnergy( SolarSystem *solarSys,
PLANET_DESC *world, COUNT whichNode ) override;
static void ZapToUrquanEncounter();
};
auto init= []
{
Generator::add( "Umgah and Talking Pet", std::make_unique< GenerateTalkingPet >() );
return 0xDEADBEEF;
}();
}
const GenerateFunctions generateTalkingPetFunctions = {
/* .initNpcs = */ GenerateDefault_initNpcs,
/* .reinitNpcs = */ GenerateDefault_reinitNpcs,
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
/* .generatePlanets = */ GenerateTalkingPet_generatePlanets,
/* .generateMoons = */ GenerateDefault_generateMoons,
/* .generateName = */ GenerateDefault_generateName,
/* .generateOrbital = */ GenerateTalkingPet_generateOrbital,
/* .generateMinerals = */ GenerateDefault_generateMinerals,
/* .generateEnergy = */ GenerateTalkingPet_generateEnergy,
/* .generateLife = */ GenerateDefault_generateLife,
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
/* .pickupEnergy = */ GenerateTalkingPet_pickupEnergy,
/* .pickupLife = */ GenerateDefault_pickupLife,
};
static bool
GenerateTalkingPet_generatePlanets (SOLARSYS_STATE *solarSys)
bool
GenerateTalkingPet::generatePlanets( SolarSystem *const solarSys )
{
COUNT angle;
GenerateDefault_generatePlanets (solarSys);
DefaultGenerator::generatePlanets (solarSys);
solarSys->PlanetDesc[0].data_index = TELLURIC_WORLD;
solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 204L / 100;
@@ -77,8 +76,8 @@ GenerateTalkingPet_generatePlanets (SOLARSYS_STATE *solarSys)
return true;
}
static bool
GenerateTalkingPet_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
bool
GenerateTalkingPet::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET)
&& (GET_GAME_STATE (UMGAH_ZOMBIE_BLOBBIES)
@@ -118,7 +117,7 @@ GenerateTalkingPet_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world
BOOLEAN UmgahSurvivors;
UmgahSurvivors = GetHeadLink (
&GLOBAL (npc_built_ship_q)) != 0;
&GLOBAL (npc_built_ship_q)) != 0 ? TRUE : FALSE;
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
if (GET_GAME_STATE (PLAYER_HYPNOTIZED))
@@ -152,7 +151,7 @@ GenerateTalkingPet_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world
CaptureStringTable (LoadStringTable (RUINS_STRTAB));
}
GenerateDefault_generateOrbital (solarSys, world);
DefaultGenerator::generateOrbital (solarSys, world);
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
solarSys->SysInfo.PlanetInfo.Weather = 0;
@@ -160,9 +159,9 @@ GenerateTalkingPet_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world
return true;
}
static COUNT
GenerateTalkingPet_generateEnergy (const SOLARSYS_STATE *solarSys,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *info)
COUNT
GenerateTalkingPet::generateEnergy( const SolarSystem *const solarSys,
const PLANET_DESC *const world, const COUNT whichNode, NODE_INFO *const info )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -172,9 +171,9 @@ GenerateTalkingPet_generateEnergy (const SOLARSYS_STATE *solarSys,
return 0;
}
static bool
GenerateTalkingPet_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
COUNT whichNode)
bool
GenerateTalkingPet::pickupEnergy( SolarSystem *const solarSys, PLANET_DESC *const world,
const COUNT whichNode )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -187,8 +186,8 @@ GenerateTalkingPet_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
return false;
}
static void
ZapToUrquanEncounter (void)
void
GenerateTalkingPet::ZapToUrquanEncounter()
{
HENCOUNTER hEncounter;
@@ -28,38 +28,37 @@
#include "libs/mathlib.h"
static bool GeneratePkunk_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GeneratePkunk_generateOrbital (SOLARSYS_STATE *solarSys,
PLANET_DESC *world);
static COUNT GeneratePkunk_generateEnergy (const SOLARSYS_STATE *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
static bool GeneratePkunk_pickupEnergy (SOLARSYS_STATE *solarSys,
PLANET_DESC *world, COUNT whichNode);
namespace
{
using namespace Planets::exports;
class GeneratePkunk
: public DefaultGenerator
{
bool generatePlanets( SolarSystem *solarSys ) override;
bool generateOrbital( SolarSystem *solarSys,
PLANET_DESC *world ) override;
COUNT generateEnergy( const SolarSystem *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO * ) override;
bool pickupEnergy( SolarSystem *solarSys,
PLANET_DESC *world, COUNT whichNode ) override;
};
auto init= []
{
Generator::add( "Pkunk", std::make_unique< GeneratePkunk >() );
return 0xDEADBEEF;
}();
}
const GenerateFunctions generatePkunkFunctions = {
/* .initNpcs = */ GenerateDefault_initNpcs,
/* .reinitNpcs = */ GenerateDefault_reinitNpcs,
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
/* .generatePlanets = */ GeneratePkunk_generatePlanets,
/* .generateMoons = */ GenerateDefault_generateMoons,
/* .generateName = */ GenerateDefault_generateName,
/* .generateOrbital = */ GeneratePkunk_generateOrbital,
/* .generateMinerals = */ GenerateDefault_generateMinerals,
/* .generateEnergy = */ GeneratePkunk_generateEnergy,
/* .generateLife = */ GenerateDefault_generateLife,
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
/* .pickupEnergy = */ GeneratePkunk_pickupEnergy,
/* .pickupLife = */ GenerateDefault_pickupLife,
};
static bool
GeneratePkunk_generatePlanets (SOLARSYS_STATE *solarSys)
bool
GeneratePkunk::generatePlanets( SolarSystem *const solarSys )
{
COUNT angle;
GenerateDefault_generatePlanets (solarSys);
DefaultGenerator::generatePlanets (solarSys);
solarSys->PlanetDesc[0].data_index = WATER_WORLD;
solarSys->PlanetDesc[0].NumPlanets = 1;
@@ -74,8 +73,8 @@ GeneratePkunk_generatePlanets (SOLARSYS_STATE *solarSys)
return true;
}
static bool
GeneratePkunk_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
bool
GeneratePkunk::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -117,13 +116,13 @@ GeneratePkunk_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
}
}
GenerateDefault_generateOrbital (solarSys, world);
DefaultGenerator::generateOrbital (solarSys, world);
return true;
}
static bool
GeneratePkunk_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
COUNT whichNode)
bool
GeneratePkunk::pickupEnergy( SolarSystem *const solarSys, PLANET_DESC *const world,
const COUNT whichNode )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -145,9 +144,9 @@ GeneratePkunk_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
return false;
}
static COUNT
GeneratePkunk_generateEnergy (const SOLARSYS_STATE *solarSys,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *info)
COUNT
GeneratePkunk::generateEnergy( const SolarSystem *const solarSys,
const PLANET_DESC *const world, const COUNT whichNode, NODE_INFO *const info)
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -30,40 +30,39 @@
#include "libs/mathlib.h"
static bool GenerateSpathi_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GenerateSpathi_generateMoons (SOLARSYS_STATE *solarSys,
PLANET_DESC *planet);
static bool GenerateSpathi_generateOrbital (SOLARSYS_STATE *solarSys,
PLANET_DESC *world);
static COUNT GenerateSpathi_generateEnergy (const SOLARSYS_STATE *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
static COUNT GenerateSpathi_generateLife (const SOLARSYS_STATE *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
static bool GenerateSpathi_pickupEnergy (SOLARSYS_STATE *solarSys,
PLANET_DESC *world, COUNT whichNode);
static bool GenerateSpathi_pickupLife (SOLARSYS_STATE *solarSys,
PLANET_DESC *world, COUNT whichNode);
namespace
{
using namespace Planets::exports;
class GenerateSpathi
: public DefaultGenerator
{
bool generatePlanets( SolarSystem *solarSys ) override;
bool generateMoons( SolarSystem *solarSys,
PLANET_DESC *planet ) override;
bool generateOrbital( SolarSystem *solarSys,
PLANET_DESC * world) override;
COUNT generateEnergy( const SolarSystem *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO * ) override;
COUNT generateLife( const SolarSystem *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO * ) override;
bool pickupEnergy( SolarSystem *solarSys,
PLANET_DESC *world, COUNT whichNode ) override;
bool pickupLife( SOLARSYS_STATE *solarSys,
PLANET_DESC *world, COUNT whichNode ) override;
};
auto init= []
{
Generator::add( "Spathiwa", std::make_unique< GenerateSpathi >() );
return 0xDEADBEEF;
}();
}
const GenerateFunctions generateSpathiFunctions = {
/* .initNpcs = */ GenerateDefault_initNpcs,
/* .reinitNpcs = */ GenerateDefault_reinitNpcs,
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
/* .generatePlanets = */ GenerateSpathi_generatePlanets,
/* .generateMoons = */ GenerateSpathi_generateMoons,
/* .generateName = */ GenerateDefault_generateName,
/* .generateOrbital = */ GenerateSpathi_generateOrbital,
/* .generateMinerals = */ GenerateDefault_generateMinerals,
/* .generateEnergy = */ GenerateSpathi_generateEnergy,
/* .generateLife = */ GenerateSpathi_generateLife,
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
/* .pickupEnergy = */ GenerateSpathi_pickupEnergy,
/* .pickupLife = */ GenerateSpathi_pickupLife,
};
static bool
GenerateSpathi_generatePlanets (SOLARSYS_STATE *solarSys)
bool
GenerateSpathi::generatePlanets( SolarSystem *const solarSys )
{
PLANET_DESC *pMinPlanet;
COUNT angle;
@@ -85,12 +84,12 @@ GenerateSpathi_generatePlanets (SOLARSYS_STATE *solarSys)
return true;
}
static bool
GenerateSpathi_generateMoons (SOLARSYS_STATE *solarSys, PLANET_DESC *planet)
bool
GenerateSpathi::generateMoons( SolarSystem *const solarSys, PLANET_DESC *const planet )
{
COUNT angle;
GenerateDefault_generateMoons (solarSys, planet);
DefaultGenerator::generateMoons (solarSys, planet);
if (matchWorld (solarSys, planet, 0, MATCH_PLANET))
{
@@ -112,8 +111,8 @@ GenerateSpathi_generateMoons (SOLARSYS_STATE *solarSys, PLANET_DESC *planet)
return true;
}
static bool
GenerateSpathi_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
bool
GenerateSpathi::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world )
{
DWORD rand_val;
@@ -201,14 +200,14 @@ GenerateSpathi_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
return true;
}
GenerateDefault_generateOrbital (solarSys, world);
DefaultGenerator::generateOrbital (solarSys, world);
return true;
}
static COUNT
GenerateSpathi_generateEnergy (const SOLARSYS_STATE *solarSys,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *info)
COUNT
GenerateSpathi::generateEnergy( const SolarSystem *const solarSys,
const PLANET_DESC *const world, const COUNT whichNode, NODE_INFO *const info )
{
if (matchWorld (solarSys, world, 0, 0))
{
@@ -225,9 +224,9 @@ GenerateSpathi_generateEnergy (const SOLARSYS_STATE *solarSys,
return 0;
}
static bool
GenerateSpathi_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
COUNT whichNode)
bool
GenerateSpathi::pickupEnergy( SolarSystem *const solarSys, PLANET_DESC *const world,
const COUNT whichNode )
{
if (matchWorld (solarSys, world, 0, 0))
{
@@ -246,9 +245,9 @@ GenerateSpathi_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
return false;
}
static COUNT
GenerateSpathi_generateLife (const SOLARSYS_STATE *solarSys,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *info)
COUNT
GenerateSpathi::generateLife( const SolarSystem *const solarSys,
const PLANET_DESC *const world, const COUNT whichNode, NODE_INFO *const info )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -260,9 +259,9 @@ GenerateSpathi_generateLife (const SOLARSYS_STATE *solarSys,
return 0;
}
static bool
GenerateSpathi_pickupLife (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
COUNT whichNode)
bool
GenerateSpathi::pickupLife( SolarSystem *const solarSys, PLANET_DESC *const world,
const COUNT whichNode )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -279,5 +278,5 @@ GenerateSpathi_pickupLife (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
return true; // picked up
}
return GenerateDefault_pickupLife (solarSys, world, whichNode);
return DefaultGenerator::pickupLife (solarSys, world, whichNode);
}
@@ -27,38 +27,37 @@
#include "libs/mathlib.h"
static bool GenerateYehat_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GenerateYehat_generateOrbital (SOLARSYS_STATE *solarSys,
PLANET_DESC *world);
static COUNT GenerateYehat_generateEnergy (const SOLARSYS_STATE *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
static bool GenerateYehat_pickupEnergy (SOLARSYS_STATE *solarSys,
PLANET_DESC *world, COUNT whichNode);
namespace
{
using namespace Planets::exports;
class GenerateYehat
: public DefaultGenerator
{
bool generatePlanets( SolarSystem *solarSys ) override;
bool generateOrbital( SolarSystem *solarSys,
PLANET_DESC *world ) override;
COUNT generateEnergy( const SolarSystem *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO * ) override;
bool pickupEnergy( SolarSystem *solarSys,
PLANET_DESC *world, COUNT whichNode ) override;
};
auto init= []
{
Generator::add( "Yehat", std::make_unique< GenerateYehat >() );
return 0xDEADBEEF;
}();
}
const GenerateFunctions generateYehatFunctions = {
/* .initNpcs = */ GenerateDefault_initNpcs,
/* .reinitNpcs = */ GenerateDefault_reinitNpcs,
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
/* .generatePlanets = */ GenerateYehat_generatePlanets,
/* .generateMoons = */ GenerateDefault_generateMoons,
/* .generateName = */ GenerateDefault_generateName,
/* .generateOrbital = */ GenerateYehat_generateOrbital,
/* .generateMinerals = */ GenerateDefault_generateMinerals,
/* .generateEnergy = */ GenerateYehat_generateEnergy,
/* .generateLife = */ GenerateDefault_generateLife,
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
/* .pickupEnergy = */ GenerateYehat_pickupEnergy,
/* .pickupLife = */ GenerateDefault_pickupLife,
};
static bool
GenerateYehat_generatePlanets (SOLARSYS_STATE *solarSys)
bool
GenerateYehat::generatePlanets( SolarSystem *const solarSys )
{
COUNT angle;
GenerateDefault_generatePlanets (solarSys);
DefaultGenerator::generatePlanets (solarSys);
solarSys->PlanetDesc[0].data_index = WATER_WORLD;
solarSys->PlanetDesc[0].NumPlanets = 1;
solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 106L / 100;
@@ -72,8 +71,8 @@ GenerateYehat_generatePlanets (SOLARSYS_STATE *solarSys)
return true;
}
static bool
GenerateYehat_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
bool
GenerateYehat::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -108,13 +107,13 @@ GenerateYehat_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
CaptureStringTable (LoadStringTable (RUINS_STRTAB));
}
GenerateDefault_generateOrbital (solarSys, world);
DefaultGenerator::generateOrbital( solarSys, world );
return true;
}
static COUNT
GenerateYehat_generateEnergy (const SOLARSYS_STATE *solarSys,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *info)
COUNT
GenerateYehat::generateEnergy( const SolarSystem *const solarSys,
const PLANET_DESC *const world, const COUNT whichNode, NODE_INFO *const info)
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -124,9 +123,9 @@ GenerateYehat_generateEnergy (const SOLARSYS_STATE *solarSys,
return 0;
}
static bool
GenerateYehat_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
COUNT whichNode)
bool
GenerateYehat::pickupEnergy( SolarSystem *const solarSys, PLANET_DESC *const world,
const COUNT whichNode )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -26,48 +26,45 @@
#include "libs/mathlib.h"
static bool GenerateZoqFotPik_initNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateZoqFotPik_generatePlanets (SOLARSYS_STATE *solarSys);
static bool GenerateZoqFotPik_generateOrbital (SOLARSYS_STATE *solarSys,
PLANET_DESC *world);
static COUNT GenerateZoqFotPik_generateEnergy (const SOLARSYS_STATE *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *);
static bool GenerateZoqFotPik_pickupEnergy (SOLARSYS_STATE *solarSys,
PLANET_DESC *world, COUNT whichNode);
const GenerateFunctions generateZoqFotPikFunctions = {
/* .initNpcs = */ GenerateZoqFotPik_initNpcs,
/* .reinitNpcs = */ GenerateDefault_reinitNpcs,
/* .uninitNpcs = */ GenerateDefault_uninitNpcs,
/* .generatePlanets = */ GenerateZoqFotPik_generatePlanets,
/* .generateMoons = */ GenerateDefault_generateMoons,
/* .generateName = */ GenerateDefault_generateName,
/* .generateOrbital = */ GenerateZoqFotPik_generateOrbital,
/* .generateMinerals = */ GenerateDefault_generateMinerals,
/* .generateEnergy = */ GenerateZoqFotPik_generateEnergy,
/* .generateLife = */ GenerateDefault_generateLife,
/* .pickupMinerals = */ GenerateDefault_pickupMinerals,
/* .pickupEnergy = */ GenerateZoqFotPik_pickupEnergy,
/* .pickupLife = */ GenerateDefault_pickupLife,
};
static bool
GenerateZoqFotPik_initNpcs (SOLARSYS_STATE *solarSys)
namespace
{
if (GET_GAME_STATE (ZOQFOT_DISTRESS) != 1)
GenerateDefault_initNpcs (solarSys);
using namespace Planets::exports;
return true;
class GenerateZoqFotPik
: public DefaultGenerator
{
void initNpcs( SolarSystem *solarSys ) override;
bool generatePlanets( SolarSystem *solarSys ) override;
bool generateOrbital( SolarSystem *solarSys,
PLANET_DESC *world ) override;
COUNT generateEnergy( const SolarSystem *,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO * ) override;
bool pickupEnergy( SolarSystem *solarSys,
PLANET_DESC *world, COUNT whichNode ) override;
};
auto init= []
{
Generator::add( "Zoq-Fot-Pik", std::make_unique< GenerateZoqFotPik >() );
return 0xDEADBEEF;
}();
}
static bool
GenerateZoqFotPik_generatePlanets (SOLARSYS_STATE *solarSys)
void
GenerateZoqFotPik::initNpcs( SolarSystem *const solarSys )
{
if (GET_GAME_STATE (ZOQFOT_DISTRESS) != 1)
DefaultGenerator::initNpcs (solarSys);
}
bool
GenerateZoqFotPik::generatePlanets( SolarSystem *const solarSys )
{
COUNT angle;
GenerateDefault_generatePlanets (solarSys);
DefaultGenerator::generatePlanets (solarSys);
solarSys->PlanetDesc[0].data_index = REDUX_WORLD;
solarSys->PlanetDesc[0].NumPlanets = 1;
@@ -82,8 +79,8 @@ GenerateZoqFotPik_generatePlanets (SOLARSYS_STATE *solarSys)
return true;
}
static bool
GenerateZoqFotPik_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
bool
GenerateZoqFotPik::generateOrbital( SolarSystem *const solarSys, PLANET_DESC *const world )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -138,13 +135,13 @@ GenerateZoqFotPik_generateOrbital (SOLARSYS_STATE *solarSys, PLANET_DESC *world)
CaptureStringTable (LoadStringTable (RUINS_STRTAB));
}
GenerateDefault_generateOrbital (solarSys, world);
DefaultGenerator::generateOrbital (solarSys, world);
return true;
}
static COUNT
GenerateZoqFotPik_generateEnergy (const SOLARSYS_STATE *solarSys,
const PLANET_DESC *world, COUNT whichNode, NODE_INFO *info)
COUNT
GenerateZoqFotPik::generateEnergy( const SolarSystem *const solarSys,
const PLANET_DESC *const world, const COUNT whichNode, NODE_INFO *const info )
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{
@@ -154,9 +151,9 @@ GenerateZoqFotPik_generateEnergy (const SOLARSYS_STATE *solarSys,
return 0;
}
static bool
GenerateZoqFotPik_pickupEnergy (SOLARSYS_STATE *solarSys, PLANET_DESC *world,
COUNT whichNode)
bool
GenerateZoqFotPik::pickupEnergy( SolarSystem *const solarSys, PLANET_DESC *const world,
const COUNT whichNode)
{
if (matchWorld (solarSys, world, 0, MATCH_PLANET))
{