Open StarryWisdom opened 6 years ago
Certainly LOOKS scan-related:
# STAT: 13291 Creature.Unknown21 (min 0 max 4294967295)
# STAT: 3848 Creature.Unknown21 = 0 (0x0)
# STAT: 584 Creature.Unknown21 = 1073741824 (0x40000000)
# STAT: 390 Creature.Unknown21 = 1073741826 (0x40000002)
# STAT: 644 Creature.Unknown21 = 1073741828 (0x40000004)
# STAT: 648 Creature.Unknown21 = 1073741830 (0x40000006)
# STAT: 692 Creature.Unknown21 = 2 (0x2)
# STAT: 1347 Creature.Unknown21 = 4 (0x4)
# STAT: 4485 Creature.Unknown21 = 4294967295 (0xffffffff)
# STAT: 653 Creature.Unknown21 = 6 (0x6)
Should probably be able to find one being scanned in my logs. Tagging seems to be done with 0xf754c8fe:0x1d Tag - see #108 Age... Unknown31 (byte, new in v2.6.3) seems to go from 1..3 which matches what the mission-file-docs.txt says. Needs confirmation though
ATTRIBUTE: age
VALID: 1-3 (young, mature, ancient)
Confirming a few things (tested by adding various ObjCreatures to my disco server):
Creature 3.2 seems to be "ShowOnMaps" side-shifted-bitmask thing akin to PlayerShip 5.7 or NPCShip 4.3. 0 makes it invisible, 4 or -1 makes it visible.
Creature 2.1 value 0 shows "Unknown" "ZZ" on Science Screen. value 4 or -1 shows Age, Scientific Name, etc etc, so presumably "SingleScan" side-shifted-bitmask thing.
Assuming science is able to show you "Age" as above, bit 3.1 is that age. 1=Young 2=Mature, 3=Ancient (and 0=REPEL, oops :grinning: )
Still have no idea what bit2.2 is (ALMOST always 0, but value of 4 has been observed occasionally)
bit2.3 to 2.6 are also still confusing as heck - horribly messy, many many values appear, typically looking like "Very negative ints". Some of the most popular values:
27892 Creature.Unknown26 = 4291001636 (0xffc37d24)
47384 Creature.Unknown26 = 4291442178 (0xffca3602)
143051 Creature.Unknown26 = 4291974693 (0xffd25625)
144932 Creature.Unknown26 = 4294967295 (0xffffffff)
Mucking with the values of Creature.Unknown26, for a dragon, seems to affect the size of the dragon on 3D views, but also frequently makes it invisible. I'm wondering if it's got a bunch of values compacted into a 32-bit field including size and visibility or something... surreal?
... and/or bit2.3 to 2.6 are floats, like I suspected many moons ago... Except floats that often contain rubbish values, like stupidly negative, stupidly positive, or stupidly tiny, or straight NaNs. Suspect we'll get to a point where we can say things like "If CreatureType=Dragon, bit 2.6=Something, may contain undefined / random data otherwise"
Suspect it's OK to update Creature bit 2.1=SingleScan, 3.1=Age, 3.2=ShowOnMaps, those look pretty convincing.
there seems to be a few missing fields in creature which should be easy to prove with some time single scan (2.1 - confirm I guess?) however tagging is done with double scans however tagging dates and ships are done creature age