static bool GenerateVux_generatePlanets (SOLARSYS_STATE *solarSys) { COUNT angle; GenerateDefault_generatePlanets (solarSys); if (CurStarDescPtr->Index == MAIDENS_DEFINED) { GenerateDefault_generatePlanets (solarSys); // XXX: this is the second time that this function is // called. Is it safe to remove one, or does this change // the RNG so that the outcome is different? solarSys->PlanetDesc[0].data_index = REDUX_WORLD; solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 212L / 100; angle = ARCTAN (solarSys->PlanetDesc[0].location.x, solarSys->PlanetDesc[0].location.y); solarSys->PlanetDesc[0].location.x = COSINE (angle, solarSys->PlanetDesc[0].radius); solarSys->PlanetDesc[0].location.y = SINE (angle, solarSys->PlanetDesc[0].radius); ComputeSpeed(&solarSys->PlanetDesc[0], FALSE, 1); } else { if (CurStarDescPtr->Index == VUX_DEFINED) { solarSys->PlanetDesc[0].data_index = REDUX_WORLD; solarSys->PlanetDesc[0].NumPlanets = 1; solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 42L / 100; angle = HALF_CIRCLE + OCTANT; ComputeSpeed(&solarSys->PlanetDesc[0], FALSE, 1); } else /* if (CurStarDescPtr->Index == VUX_BEAST_DEFINED) */ { memmove (&solarSys->PlanetDesc[1], &solarSys->PlanetDesc[0], sizeof (solarSys->PlanetDesc[0]) * solarSys->SunDesc[0].NumPlanets); ++solarSys->SunDesc[0].NumPlanets; angle = HALF_CIRCLE - OCTANT; solarSys->PlanetDesc[0].data_index = WATER_WORLD; solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 110L / 100; solarSys->PlanetDesc[0].NumPlanets = 0; ComputeSpeed(&solarSys->PlanetDesc[0], FALSE, 1); } solarSys->PlanetDesc[0].location.x = COSINE (angle, solarSys->PlanetDesc[0].radius); solarSys->PlanetDesc[0].location.y = SINE (angle, solarSys->PlanetDesc[0].radius); solarSys->PlanetDesc[0].rand_seed = MAKE_DWORD ( solarSys->PlanetDesc[0].location.x, solarSys->PlanetDesc[0].location.y); } return true; }
static bool GenerateDruuge_generatePlanets (SOLARSYS_STATE *solarSys) { COUNT angle; GenerateDefault_generatePlanets (solarSys); memmove (&solarSys->PlanetDesc[1], &solarSys->PlanetDesc[0], sizeof (solarSys->PlanetDesc[0]) * solarSys->SunDesc[0].NumPlanets); ++solarSys->SunDesc[0].NumPlanets; solarSys->PlanetDesc[0].data_index = DUST_WORLD; solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 50L / 100; solarSys->PlanetDesc[0].NumPlanets = 0; angle = HALF_CIRCLE - OCTANT; solarSys->PlanetDesc[0].location.x = COSINE (angle, solarSys->PlanetDesc[0].radius); solarSys->PlanetDesc[0].location.y = SINE (angle, solarSys->PlanetDesc[0].radius); solarSys->PlanetDesc[0].rand_seed = MAKE_DWORD ( solarSys->PlanetDesc[0].location.x, solarSys->PlanetDesc[0].location.y); ComputeSpeed(&solarSys->PlanetDesc[0], FALSE, 1); return true; }
static bool GenerateSaMatra_generatePlanets (SOLARSYS_STATE *solarSys) { GenerateDefault_generatePlanets (solarSys); solarSys->PlanetDesc[4].NumPlanets = 1; return true; }
static bool GenerateChmmr_generatePlanets (SOLARSYS_STATE *solarSys) { GenerateDefault_generatePlanets (solarSys); solarSys->PlanetDesc[1].data_index = SAPPHIRE_WORLD; if (!GET_GAME_STATE (CHMMR_UNLEASHED)) solarSys->PlanetDesc[1].data_index |= PLANET_SHIELDED; solarSys->PlanetDesc[1].NumPlanets = 1; return true; }
static bool GenerateBurvixese_generatePlanets (SOLARSYS_STATE *solarSys) { COUNT angle; GenerateDefault_generatePlanets (solarSys); solarSys->PlanetDesc[0].data_index = REDUX_WORLD; solarSys->PlanetDesc[0].NumPlanets = 1; solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 39L / 100; angle = ARCTAN (solarSys->PlanetDesc[0].location.x, solarSys->PlanetDesc[0].location.y); solarSys->PlanetDesc[0].location.x = COSINE (angle, solarSys->PlanetDesc[0].radius); solarSys->PlanetDesc[0].location.y = SINE (angle, solarSys->PlanetDesc[0].radius); return true; }
static bool GenerateAndrosynth_generatePlanets (SOLARSYS_STATE *solarSys) { COUNT angle; GenerateDefault_generatePlanets (solarSys); solarSys->PlanetDesc[1].data_index = TELLURIC_WORLD; solarSys->PlanetDesc[1].radius = EARTH_RADIUS * 204L / 100; angle = ARCTAN (solarSys->PlanetDesc[1].location.x, solarSys->PlanetDesc[1].location.y); solarSys->PlanetDesc[1].location.x = COSINE (angle, solarSys->PlanetDesc[1].radius); solarSys->PlanetDesc[1].location.y = SINE (angle, solarSys->PlanetDesc[1].radius); ComputeSpeed(&solarSys->PlanetDesc[1], FALSE, 1); return true; }
static bool GenerateSupox_generatePlanets (SOLARSYS_STATE *solarSys) { COUNT angle; GenerateDefault_generatePlanets (solarSys); solarSys->PlanetDesc[0].data_index = WATER_WORLD; solarSys->PlanetDesc[0].NumPlanets = 2; solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 152L / 100; angle = ARCTAN (solarSys->PlanetDesc[0].location.x, solarSys->PlanetDesc[0].location.y); solarSys->PlanetDesc[0].location.x = COSINE (angle, solarSys->PlanetDesc[0].radius); solarSys->PlanetDesc[0].location.y = SINE (angle, solarSys->PlanetDesc[0].radius); ComputeSpeed(&solarSys->PlanetDesc[0], FALSE, 1); return true; }
static bool GenerateRainbowWorld_generatePlanets (SOLARSYS_STATE *solarSys) { COUNT angle; GenerateDefault_generatePlanets (solarSys); solarSys->PlanetDesc[0].data_index = RAINBOW_WORLD; solarSys->PlanetDesc[0].NumPlanets = 0; solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 50L / 100; angle = ARCTAN (solarSys->PlanetDesc[0].location.x, solarSys->PlanetDesc[0].location.y); if (angle <= QUADRANT) angle += QUADRANT; else if (angle >= FULL_CIRCLE - QUADRANT) angle -= QUADRANT; solarSys->PlanetDesc[0].location.x = COSINE (angle, solarSys->PlanetDesc[0].radius); solarSys->PlanetDesc[0].location.y = SINE (angle, solarSys->PlanetDesc[0].radius); return true; }
static bool GenerateUtwig_generatePlanets (SOLARSYS_STATE *solarSys) { COUNT angle; GenerateDefault_generatePlanets (solarSys); if (CurStarDescPtr->Index == UTWIG_DEFINED) { solarSys->PlanetDesc[0].data_index = WATER_WORLD; solarSys->PlanetDesc[0].NumPlanets = 1; solarSys->PlanetDesc[0].radius = EARTH_RADIUS * 174L / 100; angle = ARCTAN (solarSys->PlanetDesc[0].location.x, solarSys->PlanetDesc[0].location.y); solarSys->PlanetDesc[0].location.x = COSINE (angle, solarSys->PlanetDesc[0].radius); solarSys->PlanetDesc[0].location.y = SINE (angle, solarSys->PlanetDesc[0].radius); ComputeSpeed(&solarSys->PlanetDesc[0], FALSE, 1); } return true; }