So here it is (or at least will be when I've got it all together): version 3 of the rescaling experiment.
Empty areas will be filled in when I get the chance (the work is done, it's just not in an easy cut and paste format) but even empty they are illustrative of some of the changes required.
Apologies if it isn't yet up to date with the latest source but listing it here will help me to fix that should it be necessary.
Part I: System Rescaling
Make planets, suns and moons bigger
OOPlanetEntity.m line 120 Code:
collision_radius = radius_km * 33.0;
Adjust planet size on F7 screen
OOStellarBody.h line 53 Code:
#define PLANET_MINIATURE_FACTOR 0.0005
Increase torus drive multiplier
PlayerEntity.h line 314 Code:
#define MIN_HYPERSPEED_FACTOR 128.0
PlayerEntity.h line 315 Code:
#define MAX_HYPERSPEED_FACTOR 80192.0
PlayerEntity.h line 317 Code:
#define HYPERSPEED_FACTOR 128.0
Increase torus drive decelleration
PlayerEntity.m line 2955 Code:
float deceleration = (speed_delta * delta_t * HYPERSPEED_FACTOR * 8);
Reduce mass-lock radius for planets and suns
PlayerEntity.m line 3215 Code:
double factor = ([stellar isSun]) ? 1.4 : 1.0;
Adjust sun-skimming parameters for non-player ships
ShipEntity.m line 730 untested but necessary due to larger suns and lack of torus drive
Code:
[self setHeatInsulation:[shipDict oo_floatForKey:@"heat_insulation" defaultValue:[self hasHeatShield] ? 6.6 : 3.3]];
Part II: System Rearrangement
Double (approx.) planet distance from witchpoint
Universe.m line 891 Code:
planet_zpos *= [planetDict oo_floatForKey:@"planet_distance_multiplier" defaultValue:5.0];
Increase distance of star
planetinfo.plist (universal)
Code:
sun_distance_multiplier = 6.6;
Halve orbit of station
Universe.m line 1150 Code:
stationPos = HPvector_subtract(stationPos, vectorToHPVector(vector_multiply_scalar(vf, 1.5 * planet_radius)));
Bring nav beacon closer to station
oolite-populator.js line 119 Code:
coordinates: system.mainStation.position.add(system.mainStation.vectorForward.multiply(5E3)),
Adjust the space-lane
Universe.m line 116 Code:
#define LANE_WIDTH (4.0 * SCANNER_MAX_RANGE)
Universe.m line 1459 Code:
result = OORandomPositionInCylinder(kZeroHPVector,SCANNER_MAX_RANGE,[planet position],[planet radius]*1.1,LANE_WIDTH);
Universe.m line 1467 Code:
result = OORandomPositionInCylinder([planet position],[planet radius]*1.1,[sun position],[sun radius]*3,LANE_WIDTH);
Enable large objects to appear at much greater distances
Entity.h line 47 Code:
#define ABSOLUTE_NO_DRAW_DISTANCE2 (25000.0 * 25000.0 * NO_DRAW_DISTANCE_FACTOR * NO_DRAW_DISTANCE_FACTOR)
Add asteroids of variable size
oolite-populator.js line 144 Code:
var clusters = 4*(1+Math.floor(system.scrambledPseudoRandomNumber(51728)*4));
I was using 8* for testing but that's probably too strong and this line could be omitted altogether (it just adds more asteroids but then the space lane is twice as long...).
shipdata.plist (Asteroid & Asteroid Alt)
Code:
name = "Medium Asteroid";
shipdata.plist (New Asteroids)
Code:
"oolite_template_asteroid_small" =
{
like_ship = "oolite_template_asteroid";
bounty = 5;
is_template = 1;
likely_cargo = 2;
materials =
{
"oolite_alt_asteroid_diffuse.png" =
{
shininess = 7;
specular_color = (0.3, 0.3, 0.3, 1.0);
};
};
model = "oolite_asteroid.dat";
model_scale_factor = 0.33;
name = "Small Asteroid";
roles = "asteroid";
};
"oolite_template_asteroid_small_alt" =
{
like_ship = "oolite_template_asteroid";
bounty = 5;
is_template = 1;
likely_cargo = 2;
materials =
{
"oolite_alt_asteroid_diffuse.png" =
{
shininess = 7;
specular_color = (0.3, 0.3, 0.3, 1.0);
};
};
model = "oolite_alt_asteroid.dat";
model_scale_factor = 0.33;
name = "Small Asteroid";
roles = "asteroid";
};
"oolite_template_asteroid_large" =
{
like_ship = "oolite_template_asteroid";
bounty = 30;
is_template = 1;
likely_cargo = 12;
materials =
{
"oolite_alt_asteroid_diffuse.png" =
{
shininess = 7;
specular_color = (0.3, 0.3, 0.3, 1.0);
};
};
max_energy = 100;
energy_recharge_rate = 500;
model = "oolite_asteroid.dat";
model_scale_factor = 3.3;
name = "Large Asteroid";
roles = "asteroid(0.25)";
};
"oolite_template_asteroid_large_alt" =
{
like_ship = "oolite_template_asteroid";
bounty = 30;
is_template = 1;
likely_cargo = 12;
materials =
{
"oolite_alt_asteroid_diffuse.png" =
{
shininess = 7;
specular_color = (0.3, 0.3, 0.3, 1.0);
};
};
max_energy = 100;
energy_recharge_rate = 500;
model = "oolite_alt_asteroid.dat";
model_scale_factor = 3.3;
name = "Large Asteroid";
roles = "asteroid(0.25)";
};
"oolite_template_asteroid_huge" =
{
like_ship = "oolite_template_asteroid";
bounty = 100;
is_template = 1;
materials =
{
"oolite_alt_asteroid_diffuse.png" =
{
shininess = 7;
specular_color = (0.3, 0.3, 0.3, 1.0);
};
};
max_energy = 25000;
energy_recharge_rate = 500;
model = "oolite_asteroid.dat";
model_scale_factor = 6.6;
name = "Huge Asteroid";
roles = "asteroid(0.05)";
};
"oolite_template_asteroid_huge_alt" =
{
like_ship = "oolite_template_asteroid";
bounty = 100;
is_template = 1;
materials =
{
"oolite_alt_asteroid_diffuse.png" =
{
shininess = 7;
specular_color = (0.3, 0.3, 0.3, 1.0);
};
};
max_energy = 25000;
energy_recharge_rate = 500;
model = "oolite_alt_asteroid.dat";
model_scale_factor = 6.6;
name = "Huge Asteroid";
roles = "asteroid(0.05)";
};
"asteroid-small" =
{
like_ship = "oolite_template_asteroid_small";
};
"asteroid-alternative-small" =
{
like_ship = "oolite_template_asteroid_small_alt";
};
"asteroid-large" =
{
like_ship = "oolite_template_asteroid_large";
};
"asteroid-alternative-large" =
{
like_ship = "oolite_template_asteroid_large_alt";
};
"asteroid-huge" =
{
like_ship = "oolite_template_asteroid_huge";
};
"asteroid-alternative-huge" =
{
like_ship = "oolite_template_asteroid_huge_alt";
};
Part III: Ship Rescaling
Reduce the scanner Radius
Entity.h line 50 Code:
#define SCANNER_MAX_RANGE 12800.0
Entity.h line 51 Code:
#define SCANNER_MAX_RANGE2 163840000.0
Prevent 'lollypops' from appearing outside the scanner
HeadUpDisplay.h line 42 Code:
#define SCANNER_SCALE 85.33
Reduce thargoid scanner range
shipdata.plist (Thargoid)
Code:
scanner_range = 16666;
Reduce laser ranges
equipment.plist (Pulse Laser & Beam Laser ranges)
Code:
range = 3750;
equipment.plist (Mining Laser range)
Code:
range = 3125;
equipment.plist (Military Laser range)
Code:
range = 5000;
equipment.plist (Thargoid Laser range)
Code:
range = 4500;
Rescale
some ship models
shipdata.plist (Adder, All Alloys, All Barrels, All Missiles, Escape Capsule, Gecko, QBomb, Sidewinder, All Splinters, Thargon, Worm, All Wreckage)
Code:
model_scale_factor = 0.33;
shipdata.plist (Mamba, Viper)
Code:
model_scale_factor = 0.365;
shipdata.plist (Asp, Constrictor, Krait, Moray, Viper Interceptor)
Code:
model_scale_factor = 0.4;
shipdata.plist (All Boulders, All Buoys, Cobra3, Cobramk1, Ferdelance, Thargoid, )
Code:
model_scale_factor = 0.5;
Adjust shipdata and halve speeds
shipdata.plist
Quote:
All ships and entities to have both speed and thrust divided by two
Adjust turret speed & range (calculated from speed)
ShipEntity.h line 80
Code:
#define TURRET_SHOT_SPEED 500.0f
Adjust ship behaviour to new ranges
ShipEntity.m line 4703
Code:
if (getWeaponRangeFromType(forward_weapon_real_type) > 3750 && range > 3750)
ShipEntity.m line 5042
Code:
if (range < 3750)
ShipEntity.m line 5279
Code:
if (range < 500)
ShipEntity.m line 13906
Code:
double range2, nearest2 = SCANNER_MAX_RANGE2 * 10000000.0;