Difference between revisions of "LOC.DAT"

From UFOpaedia
Jump to navigation Jump to search
(TFTD races)
(Little bit of reformatting.)
Line 1: Line 1:
LOC.DAT has a row width of 20 bytes. There are a total of 50 records (not all of them necessarily used) for a fixed file size of 1,000 bytes. Most of this info is from [[User:NKF|NKF]] (thanks a lot) and some was ripped from [http://www.stonepool.com/xcom/hacking/index.html Hatfarm / Chris Voss's great pages]
+
LOC.DAT has a row width of 20 bytes. There are a total of 50 records (not all of them necessarily used) for a fixed file size of 1,000 bytes. Most of this info is from [[User:NKF|NKF]] (thanks a lot) and some was ripped from [http://www.stonepool.com/xcom/hacking/index.html Hatfarm / Chris Voss's great pages].
 +
 
 +
 
 
==Structure==
 
==Structure==
'''00:''' Object type:
+
{| class="wikitable"
 +
|-
 +
!Offset<br>(Decimal)
 +
!Offset<br>(Hex)
 +
!Usage
 +
|- valign="top"
 +
!<span id="0"></span>0
 +
!<span id="0x00"></span>0x00
 +
|Object type:
 
     '''UFO'''                      '''TFTD'''
 
     '''UFO'''                      '''TFTD'''
 
     00 - Unused Entry        00 - ???
 
     00 - Unused Entry        00 - ???
Line 16: Line 26:
 
                             83 - Passenger/Cargo Ship
 
                             83 - Passenger/Cargo Ship
 
                             84 - Artefact Site
 
                             84 - Artefact Site
 
+
|- valign="top"
'''01:''' Object table reference - Possible values - 00 to FF - Just a reference. This just shows how many there are of this type on the geoscape.  If the object is either a UFO (Alien Ship for TFTD) or X-COM craft, then this is the index into [[CRAFT.DAT]]. If the object is an X-Com base, then this is the index into [[BASE.DAT]] and if it is an [[Alien Base]] this byte contains the race:
+
!<span id="1"></span>1
 +
!<span id="0x01"></span>0x01
 +
|Object table reference - Possible values - 00 to FF - Just a reference. This just shows how many there are of this type on the geoscape.  If the object is either a UFO (Alien Ship for TFTD) or X-COM craft, then this is the index into [[CRAFT.DAT]]. If the object is an X-Com base, then this is the index into [[BASE.DAT]] and if it is an [[Alien Base]] this byte contains the race:
  
 
     '''UFO'''          '''TFTD'''
 
     '''UFO'''          '''TFTD'''
  0 = Sectoid      Aquatoid
+
  0 = [[Sectoid]]       [[Aquatoid]]
  1 = Snakeman      Gillman
+
  1 = [[Snakeman]]     [[Gillman]]
  2 = Ethereal      Lobsterman
+
  2 = [[Ethereal]]     [[Lobsterman]]
  3 = Muton        Tasoth
+
  3 = [[Muton]]         [[Tasoth]]
  4 = Floater      Mixed Crew
+
  4 = [[Floater]]       [[Mixed Crew]]
 
+
|- valign="top"
'''02-03:''' Horizontal coordinates or longitude (low bit then high bit respectively). 0 - 2880
+
!<span id="2-3"></span>2-3
 
+
!<span id="0x02-0x03"></span>0x02-0x03
'''04-05:''' Vertical coordinates or latitude (low bit then high bit respectively). -720 - 720
+
|Horizontal coordinates or longitude (low bit then high bit respectively). 0 - 2880
 
+
|- valign="top"
'''06-07:''' For crash site or terror site - countdown timer (in hours). For moving objects - how many game ticks (5s) have to pass until craft moved to next globe coordinate (''cell_size div speed'').
+
!<span id="4-5"></span>4-5
 +
!<span id="0x04-0x05"></span>0x04-0x05
 +
|Vertical coordinates or latitude (low bit then high bit respectively). -720 - 720
 +
|- valign="top"
 +
!<span id="6-7"></span>6-7
 +
!<span id="0x06-0x07"></span>0x06-0x07
 +
|For crash site or terror site - countdown timer (in hours). For moving objects - how many game ticks (5s) have to pass until craft moved to next globe coordinate (''cell_size div speed'').
 
:'''NOTE''': Ground UFOs are treated as ''moving'' objects, except for speed = 0.
 
:'''NOTE''': Ground UFOs are treated as ''moving'' objects, except for speed = 0.
 
+
|- valign="top"
'''08-09:''' Fractional part of how much is left to the next globe coordinate (''cell_size mod speed''), used only for moving objects.
+
!<span id="8-9"></span>8-9
 
+
!<span id="0x08-0x09"></span>0x08-0x09
'''0A-0B:''' Count suffix of the item, eg: Skyranger-'''1''' or Crash Site-'''47'''. It appears to have no meaning for XCOM Bases, but for other types where it is set, 0B is the high byte for when you go over 255 UFO's or crafts, etc.  
+
|Fractional part of how much is left to the next globe coordinate (''cell_size mod speed''), used only for moving objects.
 
+
|- valign="top"
'''0C-0D:''' [UNUSED]
+
!<span id="10-11"></span>10-11
 
+
!<span id="0x0A-0x0B"></span>0x0A-0x0B
'''0E:''' Craft transfer mode:
+
|Count suffix of the item, eg: Skyranger-'''1''' or Crash Site-'''47'''. It appears to have no meaning for XCOM Bases, but for other types where it is set, 0B is the high byte for when you go over 255 UFO's or crafts, etc.
 +
|- valign="top"
 +
!<span id="12-13"></span>12-13
 +
!<span id="0x0C-0x0D"></span>0x0C-0x0D
 +
|[UNUSED]
 +
|- valign="top"
 +
!<span id="14"></span>14
 +
!<span id="0x0E"></span>0x0E
 +
|Craft transfer mode:
 
  0 = Not transferred
 
  0 = Not transferred
 
  1 = In transfer
 
  1 = In transfer
 
  2 = Selected to transfer (temporary value)
 
  2 = Selected to transfer (temporary value)
 
+
|- valign="top"
'''0F:''' [UNUSED]
+
!<span id="15"></span>15
 
+
!<span id="0x0F"></span>0x0F
'''10-13:''' Globe object visiblity/mobility bitfield:
+
|[UNUSED]
  0 (value 1) Hidden object flag (unrevealed alien bases, xcom crafts at base, undetected UFOs)
+
|- valign="top"
  1 (value 2) Moving object flag (UFOs, flying XCOM crafts except for when patrolling).
+
!<span id="16-19"></span>16-19
 +
!<span id="0x10-0x13"></span>0x10-0x13
 +
|Globe object visiblity/mobility bitfield:
 +
  0 (value 1) Hidden object flag (unrevealed alien bases, xcom crafts at base,  
 +
            undetected UFOs)
 +
  1 (value 2) Moving object flag (UFOs, flying XCOM crafts except for when  
 +
            patrolling).
 
  2 (value 4) Targeted UFO flag (set to 1 when alien craft targeted).
 
  2 (value 4) Targeted UFO flag (set to 1 when alien craft targeted).
 
             Used for UFO decode menu popup when UFO craft reappears.
 
             Used for UFO decode menu popup when UFO craft reappears.
 +
|-
 +
|}
 +
  
 
==See Also==
 
==See Also==

Revision as of 03:29, 21 August 2011

LOC.DAT has a row width of 20 bytes. There are a total of 50 records (not all of them necessarily used) for a fixed file size of 1,000 bytes. Most of this info is from NKF (thanks a lot) and some was ripped from Hatfarm / Chris Voss's great pages.


Structure

Offset
(Decimal)
Offset
(Hex)
Usage
0 0x00 Object type:
   UFO                      TFTD
   00 - Unused Entry        00 - ???
   01 - Alien Ship          01 - Landed USO (may well be all USOs)
   02 - X-Com Ship          02 - ???
   03 - X-Com Base          03 - ???
   04 - Alien Base          04 - Alien Base
   05 - Crash Site          05 - Crash Site
   06 - Landed UFO          06 - ???
   07 - Waypoint            07 - ???
   08 - Terror Site         08 - ???
                            81 - Port Attack
                            82 - Island Attack
                            83 - Passenger/Cargo Ship
                            84 - Artefact Site
1 0x01 Object table reference - Possible values - 00 to FF - Just a reference. This just shows how many there are of this type on the geoscape. If the object is either a UFO (Alien Ship for TFTD) or X-COM craft, then this is the index into CRAFT.DAT. If the object is an X-Com base, then this is the index into BASE.DAT and if it is an Alien Base this byte contains the race:
    UFO           TFTD
0 = Sectoid       Aquatoid
1 = Snakeman      Gillman
2 = Ethereal      Lobsterman
3 = Muton         Tasoth
4 = Floater       Mixed Crew
2-3 0x02-0x03 Horizontal coordinates or longitude (low bit then high bit respectively). 0 - 2880
4-5 0x04-0x05 Vertical coordinates or latitude (low bit then high bit respectively). -720 - 720
6-7 0x06-0x07 For crash site or terror site - countdown timer (in hours). For moving objects - how many game ticks (5s) have to pass until craft moved to next globe coordinate (cell_size div speed).
NOTE: Ground UFOs are treated as moving objects, except for speed = 0.
8-9 0x08-0x09 Fractional part of how much is left to the next globe coordinate (cell_size mod speed), used only for moving objects.
10-11 0x0A-0x0B Count suffix of the item, eg: Skyranger-1 or Crash Site-47. It appears to have no meaning for XCOM Bases, but for other types where it is set, 0B is the high byte for when you go over 255 UFO's or crafts, etc.
12-13 0x0C-0x0D [UNUSED]
14 0x0E Craft transfer mode:
0 = Not transferred
1 = In transfer
2 = Selected to transfer (temporary value)
15 0x0F [UNUSED]
16-19 0x10-0x13 Globe object visiblity/mobility bitfield:
0 (value 1) Hidden object flag (unrevealed alien bases, xcom crafts at base, 
            undetected UFOs)
1 (value 2) Moving object flag (UFOs, flying XCOM crafts except for when 
            patrolling).
2 (value 4) Targeted UFO flag (set to 1 when alien craft targeted).
            Used for UFO decode menu popup when UFO craft reappears.


See Also