PDATAx.DIS - Old Planet Data [V]

This file contains all your planets, and all unowned planets you are orbiting (those for which you can request a mineral survey).

Up to Host 3.14, you were getting PDATA records also for planets owned by enemies. This is problematic because they contain the friendly code, which current client programs, including recent Winplans, will happily display. Stealing minerals, sailing minefields -- it never was easier :)

Up to PHost 3.4c, PHost was zeroing the fields Colonists, Supplies, Money, Mines, Factories, Defense, Colonist Tax, and Native Tax when you were scanning an unowned planet. Thus, the value zero actually means "don't know", not "zero".

 +0     WORD    Number of planets
 +2   n BYTEs   Records of 85 bytes each
 +m  10 BYTEs   PDATAx.DAT: Signature 2 -> GENx.DAT
                PDATAx.DIS: Signature 1
One Planet record:
 +0     WORD    Player Id, 0 for unowned planets
 +2     WORD    Planet Id
 +4   3 BYTEs   Friendly Code. THost permits ASCII codes 32 to 122.
 +7     WORD    Number of mines (0..~516)
 +9     WORD    Number of factories (0..~416)
+11     WORD    Number of defense posts (0..~366)
                The ranges are based upon the maximum population of 10
                million colonists (100000 clans). The maximum number of
                mines on a planet is (COLON = colonist clans):
                  COLON                        if COLON <= 200
                  ROUND(200+SQRT(COLON-200))   if COLON > 200
                Replace 200 with 100 for factories, and 50 for defenses.
                When building structures, the client program must subtract
                the appropriate costs from the available resources (1
                supply, and 4/3/10 mc for mines/factories/defenses).
+13     DWORD   Mined Neutronium
+17     DWORD   Mined Tritanium
+21     DWORD   Mined Duranium
+25     DWORD   Mined Molybdenum
+29     DWORD   Colonist clans (1 clan = 100 people). The THost limit
                is 100000 clans, the PHost limit is 250000 clans.
+33     DWORD   Supplies
+37     DWORD   Megacredits
                To sell supplies, remove the requested amount from the
                Supplies field and add it to the Megacredits field.
+41     DWORD   Neutronium in ground
+45     DWORD   Tritanium in ground
+49     DWORD   Duranium in ground
+53     DWORD   Molybdenum in ground
                        >4999           abundant
                        1200..4999      very common
                        600..1199       common
                        100..599        rare
                        1..99           very rare
                        0               none
+57     WORD    Neutronium density
+59     WORD    Tritanium density
+61     WORD    Duranium density
+63     WORD    Molybdenum density
                        70..100 large masses    "1 mine extracts 1 kt"
                        40..69  concentrated    "2 mines extract 1 kt"
                        30..39  dispersed       "3 mines extract 1 kt"
                        10..29  scattered       "5 mines extract 1 kt"
                        0..9    very scattered  "10 mines extract 1 kt"
                The figures on the right are from the docs, the actual
                amount of minerals extracted is
                - THost:
                  ERnd(ERnd(mines * density / 100) * miningrate / 100) * RF
                - PHost < 3.5, 4.1:
                  Trunc(Trunc(density * miningrate / 100) * RF * mines / 100)
                - PHost 3.5+, 4.1+:
                  Round(Round(density * miningrate / 100) * RF * mines / 100)
                where "miningrate" is the HConfig value, and RF it the
                "reptile factor" (2 if Reptilian natives, 1 otherwise).
+65     WORD    Colonist taxes (0..100)
+67     WORD    Native taxes (0..100)
                Note that THost limits taxation: when hissing, the maximum
                tax rate is 75%. Cyborgs can tax natives up to 20%.
+69     WORD    Colonist happiness (-300..100)
+71     WORD    Native happiness (-300..100)
                        90..100 happy
                        70..89  calm
                        50..69  unhappy
                        40..49  very angry
                        20..39  rioting
                        <20     fighting
                Tax collection possible for happiness>=30, population grows
                if >=70.
+73     WORD    Native Government (SPI = Socio Political Index)
                        0       none              0%
                        1       Anarchy          20%
                        2       Pre-Tribal       40%
                        3       Early-Tribal     60%
                        4       Tribal           80%
                        5       Feudal          100%
                        6       Monarchy        120%
                        7       Representative  140%
                        8       Participatory   160%
                        9       Unity           180%
+75     DWORD   Native clans (1 clan = 100 people). Maximum population
                somewhere around 150000 clans.
+79     WORD    Native Race
                        0       none
                        1       Humanoid
                        2       Bovinoid
                        3       Reptilian
                        4       Avian
                        5       Amorphous
                        6       Insectoid
                        7       Amphibian
                        8       Ghipsoldal
                        9       Siliconoid
+81     WORD    Temperature (Temperature in Fahrenheit = 100 - this value)
                        0..15   desert  (85..100Ⰶ)
                        16..35  tropical (65..84Ⰶ)
                        36..60  warm    (40..64Ⰶ)
                        61..85  cool    (15..39Ⰶ)
                        86..100 arctic  (0..14Ⰶ)
                In case you wonder why we store `100-F': originally, this
                was just a type code with no real-world equivalent. It was
                changed to mean a temperature with Host 3.20 and Winplan.
+83     WORD    1=Build base, 0 otherwise. The client program must subtract
                the starbase cost (900mc, 402T, 120D, 340M; configurable in
                PHost 4.0k+) from the available resources when setting this
                word to 1.

The happiness change can be computed from the tax level and the other planet data. It corresponds to the value shown in PLANETS.EXE as follows:

     <= -6      Hate you
   -5 .. -1     Are angry at you
       0        Are undecided about you
   +1 .. +4     Like your leadership
     >= +5      Love you

Formulas are different for PHost and THost.

  • Natives, THost: Trunc(500 + 50*SPI - 85*NativeTax - (Mines+Factories) DIV 2 - Sqrt(Natives)) DIV 100 ... plus 10 for Avians
  • Natives, PHost: Trunc(500 + 50*SPI - 85*NativeTax - (Mines+Factories) / 2 - Sqrt(Natives)) DIV 100 ... plus 10 for Avians (Note that the difference PHost/THost here is that THost uses integer division for industry effect while PHost does floating point).
  • Colonists, THost, Crystals with desert advantage: Trunc(1000 - 80*ColonistTax - Sqrt(ColonistClans) - (Mines+Factories) DIV 3 - 3*TempCode) DIV 100
  • Colonists, THost, other races: Trunc(1000 - 80*ColonistTax - Sqrt(ColonistClans) - (Mines+Factories) DIV 3 - 3*Abs(TempCode-50)) DIV 100
  • Colonists, PHost, Crystals with desert advantage: Trunc(1000 - 80*ColonistTax - Sqrt(ColonistClans) - (Mines+Factories) / 3 - TempCode/0.66) DIV 100
  • Colonists, PHost, other races: Trunc(1000 - 80*ColonistTax - Sqrt(ColonistClans) - (Mines+Factories) / 3 - Abs(TempCode-50)/0.33) DIV 100 (Difference, again, is integer vs. floating point, and different handling of temperatures).