And now the shofixti are all C++!

This commit is contained in:
2024-04-26 02:38:50 -04:00
parent 8ea1dd5c8a
commit ef041d3735
4 changed files with 37 additions and 45 deletions
+1 -2
View File
@@ -34,7 +34,6 @@ extern GenerateFunctions generateOrzFunctions;
extern GenerateFunctions generatePkunkFunctions; extern GenerateFunctions generatePkunkFunctions;
extern GenerateFunctions generateRainbowWorldFunctions; extern GenerateFunctions generateRainbowWorldFunctions;
extern GenerateFunctions generateSaMatraFunctions; extern GenerateFunctions generateSaMatraFunctions;
extern GenerateFunctions generateShofixtiFunctions;
extern GenerateFunctions generateSlylandroFunctions; extern GenerateFunctions generateSlylandroFunctions;
extern GenerateFunctions generateSolFunctions; extern GenerateFunctions generateSolFunctions;
extern GenerateFunctions generateSpathiFunctions; extern GenerateFunctions generateSpathiFunctions;
@@ -63,7 +62,7 @@ getGenerateFunctions (STAR_DESC *const star, void **sup )
case SOL_DEFINED: case SOL_DEFINED:
return &generateSolFunctions; return &generateSolFunctions;
case SHOFIXTI_DEFINED: case SHOFIXTI_DEFINED:
return &generateShofixtiFunctions; abort();
case START_COLONY_DEFINED: case START_COLONY_DEFINED:
return &generateColonyFunctions; return &generateColonyFunctions;
case SPATHI_DEFINED: case SPATHI_DEFINED:
+2 -1
View File
@@ -22,6 +22,7 @@
#include "planets/elemdata.h" #include "planets/elemdata.h"
extern struct GeneratorBase slyDef; extern struct GeneratorBase slyDef;
extern struct GeneratorBase shofDef;
// 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"
@@ -550,7 +551,7 @@ STAR_DESC starmap_array[] =
{{1752, 1450}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), SOL_DEFINED, 0, 129}, {{1752, 1450}, MAKE_STAR (DWARF_STAR, YELLOW_BODY, -1), SOL_DEFINED, 0, 129},
{{1848, 1469}, MAKE_STAR (DWARF_STAR, BLUE_BODY, -1), SHOFIXTI_DEFINED, 4, 82}, {{1848, 1469}, MAKE_STAR (DWARF_STAR, BLUE_BODY, -1), CXX_DEFINED, 4, 82, &shofDef},
{{1751, 1479}, MAKE_STAR (GIANT_STAR, GREEN_BODY, -1), URQUAN_WRECK_DEFINED, 1, 59}, {{1751, 1479}, MAKE_STAR (GIANT_STAR, GREEN_BODY, -1), URQUAN_WRECK_DEFINED, 1, 59},
{{1707, 1501}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 0, 52}, {{1707, 1501}, MAKE_STAR (DWARF_STAR, GREEN_BODY, -1), 0, 0, 52},
+1 -1
View File
@@ -1,6 +1,6 @@
uqm_CFILES="gendefault.c genand.c genburv.c genchmmr.c gencol.c gendru.c uqm_CFILES="gendefault.c genand.c genburv.c genchmmr.c gencol.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 genshof.c gensly.c gensol.c genspa.c gensup.c gensyr.c gensam.c gensly.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"
@@ -1,4 +1,5 @@
//Copyright Paul Reiche, Fred Ford. 1992-2002 //Copyright Paul Reiche, Fred Ford. 1992-2002
// Adapted by ADAM David Alan Martin 2024
/* /*
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@@ -23,34 +24,31 @@
#include "../../state.h" #include "../../state.h"
#include "../planets.h" #include "../planets.h"
namespace
{
using namespace Planets::exports;
static bool GenerateShofixti_initNpcs (SOLARSYS_STATE *solarSys); class GenerateShofixti
static bool GenerateShofixti_reinitNpcs (SOLARSYS_STATE *solarSys); : public DefaultGenerator
static bool GenerateShofixti_uninitNpcs (SOLARSYS_STATE *solarSys); {
static bool GenerateShofixti_generatePlanets (SOLARSYS_STATE *solarSys); void initNpcs( SolarSystem *const ) override;
void reinitNpcs( SolarSystem *const ) override;
void uninitNpcs( SolarSystem *const ) override;
static void check_old_shofixti (void); bool generatePlanets( SolarSystem *const ) override;
static void check_old_shofixti ();
};
}
extern "C"
{
GenerateShofixti shofDef;
}
const GenerateFunctions generateShofixtiFunctions = { void
/* .initNpcs = */ GenerateShofixti_initNpcs, GenerateShofixti::initNpcs( SolarSystem *const solarSys )
/* .reinitNpcs = */ GenerateShofixti_reinitNpcs,
/* .uninitNpcs = */ GenerateShofixti_uninitNpcs,
/* .generatePlanets = */ GenerateShofixti_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
GenerateShofixti_initNpcs (SOLARSYS_STATE *solarSys)
{ {
if (!GET_GAME_STATE (SHOFIXTI_RECRUITED) if (!GET_GAME_STATE (SHOFIXTI_RECRUITED)
&& (!GET_GAME_STATE (SHOFIXTI_KIA) && (!GET_GAME_STATE (SHOFIXTI_KIA)
@@ -88,24 +86,19 @@ GenerateShofixti_initNpcs (SOLARSYS_STATE *solarSys)
// This was originally a fallthrough to REINIT_NPCS. // This was originally a fallthrough to REINIT_NPCS.
// XXX: is the call to check_old_shofixti() needed? // XXX: is the call to check_old_shofixti() needed?
GenerateDefault_initNpcs (solarSys); DefaultGenerator::initNpcs (solarSys);
check_old_shofixti (); check_old_shofixti ();
return true;
} }
static bool void
GenerateShofixti_reinitNpcs (SOLARSYS_STATE *solarSys) GenerateShofixti::reinitNpcs( SolarSystem *const solarSys )
{ {
GenerateDefault_reinitNpcs (solarSys); DefaultGenerator::reinitNpcs (solarSys);
check_old_shofixti (); check_old_shofixti ();
(void) solarSys;
return true;
} }
static bool void
GenerateShofixti_uninitNpcs (SOLARSYS_STATE *solarSys) GenerateShofixti::uninitNpcs( SolarSystem *const solarSys )
{ {
if (GLOBAL (BattleGroupRef) if (GLOBAL (BattleGroupRef)
&& !GET_GAME_STATE (SHOFIXTI_RECRUITED) && !GET_GAME_STATE (SHOFIXTI_RECRUITED)
@@ -122,12 +115,11 @@ GenerateShofixti_uninitNpcs (SOLARSYS_STATE *solarSys)
} }
} }
GenerateDefault_uninitNpcs (solarSys); DefaultGenerator::uninitNpcs (solarSys);
return true;
} }
static bool bool
GenerateShofixti_generatePlanets (SOLARSYS_STATE *solarSys) GenerateShofixti::generatePlanets( SolarSystem *const solarSys )
{ {
#define SHOF_SUN_COORD_X ( (SWORD) 2908 ) #define SHOF_SUN_COORD_X ( (SWORD) 2908 )
#define SHOF_SUN_COORD_Y ( (SWORD) 269 ) #define SHOF_SUN_COORD_Y ( (SWORD) 269 )
@@ -162,8 +154,8 @@ GenerateShofixti_generatePlanets (SOLARSYS_STATE *solarSys)
} }
static void void
check_old_shofixti (void) GenerateShofixti::check_old_shofixti (void)
{ {
HIPGROUP hGroup; HIPGROUP hGroup;
IP_GROUP *GroupPtr; IP_GROUP *GroupPtr;