Difference between revisions of "UNITPOS.DAT"

From UFOpaedia
Jump to navigation Jump to search
(Hooray for Seb76)
(Fleshed out the "unit has been spotted" indicator)
Line 15: Line 15:
 
<b>4-7/04-07</b> - A four byte value pointing to the memory location of the corresponding [[UNITREF.DAT]] record. Probably somewhat redundant when stored to disk (as it'd need to be re-written as soon as you load the game anyway).
 
<b>4-7/04-07</b> - A four byte value pointing to the memory location of the corresponding [[UNITREF.DAT]] record. Probably somewhat redundant when stored to disk (as it'd need to be re-written as soon as you load the game anyway).
  
<b>8/08</b> - ???
+
<b>8/08</b> - Keeps track of the number of turns since this unit was last spotted by the enemy side. Increments by 1 at the start of the unit's turn, to a maximum of 255 (which is the starting value for your troopers at the beginning of combat). If seen, it resets to 0. A unit is counted as "seen" if an enemy "looks at" the unit during the enemy's turn, or the unit scores a non-[[Psionics|psionic]] attack (damaging or otherwise) on an enemy that fails to kill it outright.
  
<i>At the beginning of combat all X-Com controlled units are set to 255, and aliens to 1. When a unit is spotted, or even hits (I believe even with AoE) the units involved will have this counter set to 0. Every turn the unit is ''not'' seen by the other side this counter increments by 1 (and I assume maxes at 255). See the [[Talk:UNITPOS.DAT|discussion page]] for more.
+
The other way to be seen is if the unit is successfully mind-controlled by the enemy side. Unsuccessful psionic attacks, or successful panic attacks, do not count.
  
- [[User:Pi Masta|Pi Masta]]</i>
+
For example, if agent Bob walks in front of an alien during X-COM's turn, he won't be "seen", ''even if'' the alien fires a reaction shot at him. If Bob shoots at the alien but misses completely, he still won't be spotted. If he uses an autoshot, which hits the alien three times before killing it, then he ''will'' be counted as spotted - even if he shot the alien in the back from over half way across the map.
 +
 
 +
So long as this value is less or equal to the intelligence stat of any given alien (offset 73 of the alien's [[UNITREF.DAT]] record), that alien will "know" where that particular unit is, and may launch [[Psionics|psi attacks]] against him (assuming it has any psi skill).
 +
 
 +
'''Note:''' After turn twenty, this value will reset to 0 at the start of every alien turn, hence allowing them to use psionic attacks against whichever X-COM troopers they wish to target. It appears that later in the game (or against certain races), this may happen after the ''first'' turn (observed in a TFTD passenger ship terror mission, 1st Apr 2040, Tasoth race). Full knowledge of how aliens react to this value is unknown (in terms of movement patterns etc), though the [[Exercising_The_AI#Tactical_Debug_Mode|Tactical Debug Mode]] is available for UFO CE if anyone wishes to research the matter. Conjecture indicates that most aliens will head towards spotted X-COM units, as many "come out of hiding" after the twentieth turn.
  
 
<b>9/09</b> - Owner flag. Possible values:
 
<b>9/09</b> - Owner flag. Possible values:

Revision as of 08:20, 23 June 2010

Stores positioning information for units in the playing field. Each large unit takes four individual records, small units have one record each.

There are 80 records of 14 values of one byte each. 1120 bytes in total. The same format is used by the files UNIPOS.DAT, and the MissDat version of UNITPOS.DAT.

Structure

0/00 - Y position. 255 if unit specifically unused.

1/01 - X position.

2/02 - Z position. (0 is top level).

3/03 - ???

4-7/04-07 - A four byte value pointing to the memory location of the corresponding UNITREF.DAT record. Probably somewhat redundant when stored to disk (as it'd need to be re-written as soon as you load the game anyway).

8/08 - Keeps track of the number of turns since this unit was last spotted by the enemy side. Increments by 1 at the start of the unit's turn, to a maximum of 255 (which is the starting value for your troopers at the beginning of combat). If seen, it resets to 0. A unit is counted as "seen" if an enemy "looks at" the unit during the enemy's turn, or the unit scores a non-psionic attack (damaging or otherwise) on an enemy that fails to kill it outright.

The other way to be seen is if the unit is successfully mind-controlled by the enemy side. Unsuccessful psionic attacks, or successful panic attacks, do not count.

For example, if agent Bob walks in front of an alien during X-COM's turn, he won't be "seen", even if the alien fires a reaction shot at him. If Bob shoots at the alien but misses completely, he still won't be spotted. If he uses an autoshot, which hits the alien three times before killing it, then he will be counted as spotted - even if he shot the alien in the back from over half way across the map.

So long as this value is less or equal to the intelligence stat of any given alien (offset 73 of the alien's UNITREF.DAT record), that alien will "know" where that particular unit is, and may launch psi attacks against him (assuming it has any psi skill).

Note: After turn twenty, this value will reset to 0 at the start of every alien turn, hence allowing them to use psionic attacks against whichever X-COM troopers they wish to target. It appears that later in the game (or against certain races), this may happen after the first turn (observed in a TFTD passenger ship terror mission, 1st Apr 2040, Tasoth race). Full knowledge of how aliens react to this value is unknown (in terms of movement patterns etc), though the Tactical Debug Mode is available for UFO CE if anyone wishes to research the matter. Conjecture indicates that most aliens will head towards spotted X-COM units, as many "come out of hiding" after the twentieth turn.

9/09 - Owner flag. Possible values:

  0: X-Com
  1: Alien
  2: Civilian

10/0A - Unit info flags. Bits (from left to right, 87654321):

  (  1) 1: 0 = Invisible, 1 = visible (i.e., unit has been spotted by the enemy).
  (  2) 2: 0 = Dead or unconcious, 1 = active.
  (  4) 3: 0 = Small unit, 1 = big unit.
  (  8) 4: 0 = Left section of unit, 1 = right side of unit.
  ( 16) 5: 0 = Upper side of unit, 1 = lower side of unit.
  ( 32) 6: Only seems to flag for certain tank parts. Could be where tank will fire from?
  ( 64) 7: 0 = Normal, 1 = under mind control.
  (128) 8: Unused?

Ignore bits 4 and 5 if bit 3 is unflagged.

11/0B - ??? Unknown, never seen it flag.

12/0C - ??? Unknown, never seen it flag.

13/0D - ??? Unknown, never seen it flag.

See Also