diff --git a/sc2/src/uqm/gendef.c b/sc2/src/uqm/gendef.c index a6dd5c1ec..7e3ac8305 100644 --- a/sc2/src/uqm/gendef.c +++ b/sc2/src/uqm/gendef.c @@ -47,7 +47,6 @@ extern GenerateFunctions generateVaultFunctions; extern GenerateFunctions generateVuxFunctions; extern GenerateFunctions generateYehatFunctions; extern GenerateFunctions generateZoqFotPikFunctions; -extern GenerateFunctions generateZoqFotPikScoutFunctions; const GenerateFunctions * @@ -56,6 +55,7 @@ getGenerateFunctions (STAR_DESC *const star) switch (star->Index) { // Legacy ones are disabled... + case ZOQ_SCOUT_DEFINED: case SHOFIXTI_DEFINED: case SLYLANDRO_DEFINED: case START_COLONY_DEFINED: @@ -117,8 +117,6 @@ getGenerateFunctions (STAR_DESC *const star) return &generateSaMatraFunctions; case ZOQFOT_DEFINED: return &generateZoqFotPikFunctions; - case ZOQ_SCOUT_DEFINED: - return &generateZoqFotPikScoutFunctions; case YEHAT_DEFINED: return &generateYehatFunctions; case PKUNK_DEFINED: diff --git a/sc2/src/uqm/plandata.c b/sc2/src/uqm/plandata.c index dd41cfd59..19eb83632 100644 --- a/sc2/src/uqm/plandata.c +++ b/sc2/src/uqm/plandata.c @@ -553,6 +553,8 @@ STAR_DESC starmap_array[] = {{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}, + {{2104, 2083}, MAKE_STAR (DWARF_STAR, ORANGE_BODY, -1), 0, 0, 118, "Zoq-Fot-Pik Scout"}, + {{MAX_X_UNIVERSE << 1, MAX_Y_UNIVERSE << 1}, 0, 0, 0, 0}, diff --git a/sc2/src/uqm/planets/generate/Makeinfo b/sc2/src/uqm/planets/generate/Makeinfo index 3888f35b8..f71f42997 100644 --- a/sc2/src/uqm/planets/generate/Makeinfo +++ b/sc2/src/uqm/planets/generate/Makeinfo @@ -2,7 +2,7 @@ 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 gensam.c gensol.c genspa.c gensup.c gensyr.c genthrad.c gentrap.c genutw.c genvault.c genvux.c - genyeh.c genzfpscout.c genzoq.c" + genyeh.c genzoq.c" uqm_HFILES="genall.h gendefault.h" uqm_CXXFILES="cxx-generator.cpp gensly-modern.cpp genshof-modern.cpp - gencol-modern.cpp genwreck-modern.cpp" + gencol-modern.cpp genwreck-modern.cpp genzfpscout-modern.cpp" diff --git a/sc2/src/uqm/planets/generate/genzfpscout.c b/sc2/src/uqm/planets/generate/genzfpscout-modern.cpp similarity index 58% rename from sc2/src/uqm/planets/generate/genzfpscout.c rename to sc2/src/uqm/planets/generate/genzfpscout-modern.cpp index 93a6d5d1a..fa2abf5dc 100644 --- a/sc2/src/uqm/planets/generate/genzfpscout.c +++ b/sc2/src/uqm/planets/generate/genzfpscout-modern.cpp @@ -23,29 +23,27 @@ #include "../../state.h" -static bool GenerateZoqFotPikScout_initNpcs (SOLARSYS_STATE *solarSys); -static bool GenerateZoqFotPikScout_reinitNpcs (SOLARSYS_STATE *solarSys); +namespace +{ + using namespace Planets::exports; + + class GenerateZoqFotPikScout + : public DefaultGenerator + { + void initNpcs( SolarSystem *const solarSys ) override; + void reinitNpcs( SolarSystem *const solarSys ) override; + }; + + auto init= [] + { + Generator::add( "Zoq-Fot-Pik Scout", std::make_unique< GenerateZoqFotPikScout >() ); + return 0xDEADBEEF; + }(); +} -const GenerateFunctions generateZoqFotPikScoutFunctions = { - /* .initNpcs = */ GenerateZoqFotPikScout_initNpcs, - /* .reinitNpcs = */ GenerateZoqFotPikScout_reinitNpcs, - /* .uninitNpcs = */ GenerateDefault_uninitNpcs, - /* .generatePlanets = */ GenerateDefault_generatePlanets, - /* .generateMoons = */ GenerateDefault_generateMoons, - /* .generateName = */ GenerateDefault_generateName, - /* .generateOrbital = */ GenerateDefault_generateOrbital, - /* .generateMinerals = */ GenerateDefault_generateMinerals, - /* .generateEnergy = */ GenerateDefault_generateEnergy, - /* .generateLife = */ GenerateDefault_generateLife, - /* .pickupMinerals = */ GenerateDefault_pickupMinerals, - /* .pickupEnergy = */ GenerateDefault_pickupEnergy, - /* .pickupLife = */ GenerateDefault_pickupLife, -}; - - -static bool -GenerateZoqFotPikScout_initNpcs (SOLARSYS_STATE *solarSys) +void +GenerateZoqFotPikScout::initNpcs( SolarSystem *const solarSys ) { if (!GET_GAME_STATE (MET_ZOQFOT)) { @@ -60,25 +58,23 @@ GenerateZoqFotPikScout_initNpcs (SOLARSYS_STATE *solarSys) } } - GenerateDefault_initNpcs (solarSys); - - return true; + DefaultGenerator::initNpcs (solarSys); } -static bool -GenerateZoqFotPikScout_reinitNpcs (SOLARSYS_STATE *solarSys) +void +GenerateZoqFotPikScout::reinitNpcs( SolarSystem *const solarSys ) { HIPGROUP hGroup; IP_GROUP *GroupPtr; - GenerateDefault_reinitNpcs (solarSys); + DefaultGenerator::reinitNpcs (solarSys); if (!GLOBAL (BattleGroupRef)) - return true; // nothing to check + return; // nothing to check hGroup = GetHeadLink (&GLOBAL (ip_group_q)); if (!hGroup) - return true; // still nothing to check + return; // still nothing to check GroupPtr = LockIpGroup (&GLOBAL (ip_group_q), hGroup); // REFORM_GROUP was set in ipdisp.c:ip_group_collision() @@ -90,7 +86,5 @@ GenerateZoqFotPikScout_reinitNpcs (SOLARSYS_STATE *solarSys) GroupPtr->dest_loc = 0; } UnlockIpGroup (&GLOBAL (ip_group_q), hGroup); - - return true; }