[Change] Actually set planet sizes (but still 1 size per type).
This commit is contained in:
parent
0025c8833b
commit
6e743e6027
@ -193,9 +193,10 @@ void L3D::MainLoop(void) {
|
||||
HyperspaceTo(&s);
|
||||
|
||||
/* Linked list eh... Put player at planet f. */
|
||||
const float zpos = EARTH_RADIUS * 7;
|
||||
Frame* pframe = *(++(++(++(++(Space::rootFrame->m_children.begin())))));
|
||||
player->SetFrame(pframe);
|
||||
player->SetPosition(vector3d(0, 100000, 10000000.0));
|
||||
player->SetPosition(vector3d(0, zpos*0.1, zpos));
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
Ship* body = new Ship(ShipType::SLEEK/*LADYBIRD*/);
|
||||
@ -203,7 +204,7 @@ void L3D::MainLoop(void) {
|
||||
snprintf(buf, sizeof(buf), "X%c-0%02d", "A"+i, i);
|
||||
body->SetLabel(buf);
|
||||
body->SetFrame(pframe);
|
||||
body->SetPosition(vector3d(i*2000, 100000, 10001000));
|
||||
body->SetPosition(vector3d(i*2000, zpos*0.1, zpos+1000));
|
||||
Space::AddBody(body);
|
||||
}
|
||||
|
||||
@ -211,7 +212,7 @@ void L3D::MainLoop(void) {
|
||||
SpaceStation* body = new SpaceStation();
|
||||
body->SetLabel("Poemi-chan's Folly");
|
||||
body->SetFrame(pframe);
|
||||
body->SetPosition(vector3d(5000, 100000, 9990000.0));
|
||||
body->SetPosition(vector3d(5000, zpos*0.1, zpos-10000));
|
||||
Space::AddBody(body);
|
||||
}
|
||||
|
||||
|
@ -5,9 +5,8 @@
|
||||
#include "world_view.h"
|
||||
|
||||
Planet::Planet(StarSystem::SBody* sbody) : Body() {
|
||||
radius = 6378135.0;
|
||||
pos = vector3d(0, 0, 0);
|
||||
geom = dCreateSphere(0, radius);
|
||||
geom = dCreateSphere(0, sbody->radius);
|
||||
dGeomSetData(geom, static_cast<Body*>(this));
|
||||
this->sbody = *sbody;
|
||||
this->sbody.children.clear();
|
||||
@ -29,8 +28,8 @@ void Planet::SetPosition(vector3d p) {
|
||||
}
|
||||
|
||||
void Planet::SetRadius(double radius) {
|
||||
this->radius = radius;
|
||||
dGeomSphereSetRadius(geom, radius);
|
||||
assert(0);
|
||||
//dGeomSpehereSetRadius(geom, radius);
|
||||
}
|
||||
|
||||
static void subdivide(vector3d& v1, vector3d& v2, vector3d& v3, vector3d& v4, int depth) {
|
||||
@ -551,7 +550,7 @@ void Planet::DrawGasGiant(void) {
|
||||
void Planet::Render(const Frame* a_camFrame) {
|
||||
glPushMatrix();
|
||||
|
||||
double rad = radius;
|
||||
double rad = sbody.radius;
|
||||
vector3d fpos = GetPositionRelTo(a_camFrame);
|
||||
|
||||
double apparent_size = rad / fpos.Length();
|
||||
|
@ -10,7 +10,7 @@ public:
|
||||
virtual void SetPosition(vector3d p);
|
||||
virtual vector3d GetPosition(void);
|
||||
void SetRadius(double radius);
|
||||
double GetRadius(void) { return radius; }
|
||||
double GetRadius(void) { return sbody.radius; }
|
||||
virtual void Render(const Frame* camFrame);
|
||||
virtual void SetFrame(Frame* f);
|
||||
virtual bool OnCollision(Body* b, Uint32 flags) { return true; }
|
||||
@ -19,7 +19,6 @@ private:
|
||||
void DrawGasGiant(void);
|
||||
|
||||
vector3d pos;
|
||||
double radius;
|
||||
dGeomID geom;
|
||||
StarSystem::SBody sbody;
|
||||
GLuint crudDList;
|
||||
|
@ -16,7 +16,7 @@ float StarSystem::starColors[7][3] = {
|
||||
|
||||
static const struct SBodySubTypeInfo {
|
||||
float mass;
|
||||
float radius;
|
||||
float radius; /* Sol radii for stars, earth radii for planets. */
|
||||
const char *description;
|
||||
const char *icon;
|
||||
float tempMin, tempMax;
|
||||
@ -61,59 +61,59 @@ static const struct SBodySubTypeInfo {
|
||||
"icons/object_brown_dwarf.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Small gas giant",
|
||||
0, 3.9, "Small gas giant",
|
||||
"icons/object_planet_small_gas_giant.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Medium gas giant",
|
||||
0, 9.5, "Medium gas giant",
|
||||
"icons/object_planet_medium_gas_giant.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Large gas giant",
|
||||
0, 11.1, "Large gas giant",
|
||||
"icons/object_planet_large_gas_giant.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Very large gas giant",
|
||||
0, 15.0, "Very large gas giant",
|
||||
"icons/object_planet_large_gas_giant.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Small, rocky dwarf planet",
|
||||
0, 0.26, "Small, rocky dwarf planet",
|
||||
"icons/object_planet_dwarf.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Small, rocky planet with a thin atmosphere",
|
||||
0, 0.52, "Small, rocky planet with a thin atmosphere",
|
||||
"icons/object_planet_small.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Rocky planet with liquid water and a nitrogen atmosphere",
|
||||
0, 1.0, "Rocky planet with liquid water and a nitrogen atmosphere",
|
||||
"icons/object_planet_small.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Rocky planet with a carbon dioxide atmosphere",
|
||||
0, 1.0, "Rocky planet with a carbon dioxide atmosphere",
|
||||
"icons/object_planet_small.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Rocky planet with a methane atmosphere",
|
||||
0, 1.0, "Rocky planet with a methane atmosphere",
|
||||
"icons/object_planet_small.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Rocky planet with running water and a thick nitrogen atmosphere",
|
||||
0, 1.0, "Rocky planet with running water and a thick nitrogen atmosphere",
|
||||
"icons/object_planet_small.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Rocky planet with a thick carbon dioxide atmosphere",
|
||||
0, 1.0, "Rocky planet with a thick carbon dioxide atmosphere",
|
||||
"icons/object_planet_small.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Rocky planet with a thick methane atmosphere",
|
||||
0, 1.0, "Rocky planet with a thick methane atmosphere",
|
||||
"icons/object_planet_small.png"
|
||||
},
|
||||
{
|
||||
0, 0, "Highly volcanic world",
|
||||
0, 1.0, "Highly volcanic world",
|
||||
"icons/object_planet_small.png"
|
||||
},
|
||||
{
|
||||
0, 0, "World with indigenous life and an oxygen atmosphere",
|
||||
0, 1.0, "World with indigenous life and an oxygen atmosphere",
|
||||
"icons/object_planet_life.png"
|
||||
}
|
||||
};
|
||||
@ -270,7 +270,7 @@ StarSystem::StarSystem(int sector_x, int sector_y, int system_idx) {
|
||||
planet->seed = rand.Int32();
|
||||
planet->temp = 0;
|
||||
planet->parent = primary;
|
||||
planet->radius = EARTH_RADIUS;
|
||||
//planet->radius = EARTH_RADIUS*bodyTypeInfo[type].radius;
|
||||
planet->mass = mass * EARTH_MASS;
|
||||
planet->orbit.eccentricity = rand.pdrand(3);
|
||||
planet->orbit.semiMajorAxis = ((i+1)*0.1)*AU;
|
||||
@ -395,6 +395,7 @@ void StarSystem::SBody::PickPlanetType(SBody* star, double distToPrimary, MTRand
|
||||
/* Kinda crappy. */
|
||||
if((emass > 0.8) && (!rand(0,15))) type = TYPE_PLANET_HIGHLY_VOLCANIC;
|
||||
}
|
||||
radius = EARTH_RADIUS*bodyTypeInfo[type].radius;
|
||||
/* Generate moons. */
|
||||
if(genMoons) {
|
||||
std::vector<float>* disc = AccreteDisc(2*sqrt(emass), 0.001, rand);
|
||||
@ -407,7 +408,7 @@ void StarSystem::SBody::PickPlanetType(SBody* star, double distToPrimary, MTRand
|
||||
moon->seed = rand.Int32();
|
||||
moon->temp = 0;
|
||||
moon->parent = this;
|
||||
moon->radius = EARTH_RADIUS;
|
||||
//moon->radius = EARTH_RADIUS*bodyTypeInfo[type].radius;
|
||||
moon->mass = mass * EARTH_MASS;
|
||||
moon->orbit.eccentricity = rand.pdrand(3);
|
||||
moon->orbit.semiMajorAxis = ((i+1)*0.001)*AU;
|
||||
|
Loading…
Reference in New Issue
Block a user