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 generateRainbowWorldFunctions;
extern GenerateFunctions generateSaMatraFunctions;
extern GenerateFunctions generateShofixtiFunctions;
extern GenerateFunctions generateSlylandroFunctions;
extern GenerateFunctions generateSolFunctions;
extern GenerateFunctions generateSpathiFunctions;
@@ -63,7 +62,7 @@ getGenerateFunctions (STAR_DESC *const star, void **sup )
case SOL_DEFINED:
return &generateSolFunctions;
case SHOFIXTI_DEFINED:
return &generateShofixtiFunctions;
abort();
case START_COLONY_DEFINED:
return &generateColonyFunctions;
case SPATHI_DEFINED:
+2 -1
View File
@@ -22,6 +22,7 @@
#include "planets/elemdata.h"
extern struct GeneratorBase slyDef;
extern struct GeneratorBase shofDef;
// 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"
@@ -550,7 +551,7 @@ STAR_DESC starmap_array[] =
{{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},
{{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
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
genyeh.c genzfpscout.c genzoq.c"
uqm_HFILES="genall.h gendefault.h"
@@ -1,4 +1,5 @@
//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
@@ -23,34 +24,31 @@
#include "../../state.h"
#include "../planets.h"
namespace
{
using namespace Planets::exports;
static bool GenerateShofixti_initNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateShofixti_reinitNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateShofixti_uninitNpcs (SOLARSYS_STATE *solarSys);
static bool GenerateShofixti_generatePlanets (SOLARSYS_STATE *solarSys);
class GenerateShofixti
: public DefaultGenerator
{
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 = {
/* .initNpcs = */ GenerateShofixti_initNpcs,
/* .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)
void
GenerateShofixti::initNpcs( SolarSystem *const solarSys )
{
if (!GET_GAME_STATE (SHOFIXTI_RECRUITED)
&& (!GET_GAME_STATE (SHOFIXTI_KIA)
@@ -88,24 +86,19 @@ GenerateShofixti_initNpcs (SOLARSYS_STATE *solarSys)
// This was originally a fallthrough to REINIT_NPCS.
// XXX: is the call to check_old_shofixti() needed?
GenerateDefault_initNpcs (solarSys);
DefaultGenerator::initNpcs (solarSys);
check_old_shofixti ();
return true;
}
static bool
GenerateShofixti_reinitNpcs (SOLARSYS_STATE *solarSys)
void
GenerateShofixti::reinitNpcs( SolarSystem *const solarSys )
{
GenerateDefault_reinitNpcs (solarSys);
DefaultGenerator::reinitNpcs (solarSys);
check_old_shofixti ();
(void) solarSys;
return true;
}
static bool
GenerateShofixti_uninitNpcs (SOLARSYS_STATE *solarSys)
void
GenerateShofixti::uninitNpcs( SolarSystem *const solarSys )
{
if (GLOBAL (BattleGroupRef)
&& !GET_GAME_STATE (SHOFIXTI_RECRUITED)
@@ -122,12 +115,11 @@ GenerateShofixti_uninitNpcs (SOLARSYS_STATE *solarSys)
}
}
GenerateDefault_uninitNpcs (solarSys);
return true;
DefaultGenerator::uninitNpcs (solarSys);
}
static bool
GenerateShofixti_generatePlanets (SOLARSYS_STATE *solarSys)
bool
GenerateShofixti::generatePlanets( SolarSystem *const solarSys )
{
#define SHOF_SUN_COORD_X ( (SWORD) 2908 )
#define SHOF_SUN_COORD_Y ( (SWORD) 269 )
@@ -162,8 +154,8 @@ GenerateShofixti_generatePlanets (SOLARSYS_STATE *solarSys)
}
static void
check_old_shofixti (void)
void
GenerateShofixti::check_old_shofixti (void)
{
HIPGROUP hGroup;
IP_GROUP *GroupPtr;