spacer

Welcome Guest ( Log In | Register )

> Posting Guidelines

Please read the Forum Rules before posting.

 
Digg this topic Save to del.icio.us Submit to Reddit Slashdot It
Reply to this topicStart new topic
> save game file help
hatfarm
post 26th August 2004, 8:51pm
Post #1


Sergeant
***

Group: Members
Posts: 81
Joined: August 2004
From: Peoria, IL, USA
Member No.: 485



Hey all, my listing is coming along pretty well. I need help on a few files however. If you can give me any info on the following files, I'd greatly appreciate it.

ACTS.DAT, AKNOW.DAT, BGLOB.DAT, BPROD.DAT, GEODATA.DAT, INTER.DAT, LEASE.DAT, MAP.DAT, MISDATA.DAT, OBPOS.DAT, PROJECT.DAT, RESEARCH.DAT, ROUTES.DAT, SEEMAP.DAT, SMOKBIT.DAT, SMOKREF.DAT, SOURCEMP.DAT, TERMP.DAT, UIGLOB.DAT, UNITPOS.DAT, WGLOB.DAT, XBASES.DAT, ZONAL.DAT

I realize that's a long list but if anyone has any info on the contents of those files (what offsets represent and whatnot). Even one file would be great. I'll probably start tackling OBPOS.DAT and UNITPOS.DAT next but I'd still like to hear about any of these files. Thanks a lot.


--------------------
Go to the top of the page
 
+Quote Post
NKF
post 27th August 2004, 4:33am
Post #2


Rowboat
*****

Group: Site Staff
Posts: 2,725
Joined: September 2002
From: Outer Space
Member No.: 813



Split the savegame file listing into two sections. The Geoscape and Battlescape files. This helps keep things in order.

Here, I'll copy one of my note files for your reference.

CODE
Battlescape data file manifest (save files)

wglob       - Contains information about the current map. Including the
             size and elevations of the map. May this contain the time,
             troop transport AND type of enemy ship under attack? What about
             the graphic tile sets in use?

             Contains the current 'turn' and which game turn (turn/2).



bglob       - No idea. Has two bytes of some significance, but what I wonder?

geodata     -
misdata     -

routes      - Soldier and AI spawn locations, walk nodes, etc


map         - physical map data (walls, non-interactive objects, etc)

seemap      - visibility of tiles (for fog of war)
sourcemp    - Permanent lightsources (natural lighting, power/entertainment units)
termp       - Temporary lightsources (units, flares)
             (probably other way around termp - sourcemp)


smokbit     - These two files control smoke and fire particles
smokref     -


obpos       - object information file (guns, grenades, medikits, etc)

unitpos     - Another 'unit' table, but also stores the various 'dummy' units
             for large units. Stores basic map location information,
             visibility/mind control status and ownership flags of units.

unitref     - Unit table. Contains information specific to each unit.
             Current stats, experience gathered, mobility modes, etc.




--- MISDAT specific files ---

Possibly not for battlescape:

direct.dat - stores directory name for current game (last loaded game)
code.dat   -
options.dat-  


This file's a bit outdated.

Unitref, obpos and unitpos are the files I've concentrated on the most so far.

- NKF


--------------------
Current Avatar Source: A custom GM-Striker. The 'British' counterpart to the 'German' Zaku in Ich trage eine Wanne für einen Hut. I still have no idea if that's been mistranslated.
Go to the top of the page
 
+Quote Post
hatfarm
post 27th August 2004, 5:33am
Post #3


Sergeant
***

Group: Members
Posts: 81
Joined: August 2004
From: Peoria, IL, USA
Member No.: 485



If you'd like to check out my site http://www.xcomufo.com/hatfarm/ and see if you have anything I don't have that would be great of you. I'd of course give you credit. Those files I really haven't been able to understand (other than unitref.dat). I don't know which files are which (battlscape and geodata) so if you could help with that, that would be greatly appreciated. Though all my info is for CE I'm sure most of it is valid for the DOS version as well. Thanks a lot.


--------------------
Go to the top of the page
 
+Quote Post
NKF
post 27th August 2004, 7:53am
Post #4


Rowboat
*****

Group: Site Staff
Posts: 2,725
Joined: September 2002
From: Outer Space
Member No.: 813



I've just listed the battlescape files. I got them by clearing a savegame slot, then saving over it with a Geoscape save. Then, I tabbed over to the file explorer, selected all the files and then tabbed back to the game and saved in the battlescape. When I looked at the savegame directory again, all the files that weren't selected were the battlescape files. You can probably doublecheck this yourself by comparing a savegame saved purely in the Geoscape against one in the battlescape and see which files are missing.

Here are my notes on obpos.dat. Pick at it and add to it as necessary.

QUOTE
savegame_n\obpos.dat (battlescape data file)
INFO:
        16 bytes per entry
        Only 170 possible entries.  (for UFO at least, not sure about TFTD)
NOTE:

The 'triggered' proximity mine flag is NOT saved in this save file. In fact, this
is only stored in memory and not saved in any way. Thus, saving, restarting
the game and then reloading will disable the proximity mine.

And if the game is not ended and the proximity mine is not used up, the next
item to occupy the proximity object slot will be be turned into an armed
proximity mine and detonate if it is walked over.

Possible Theory about clips inside corpses:

New objects created, such as bodies for unconcious or dead units,
will fill in the first unused slot they encounter. If, for example, a gun is
destroyed, but the loaded clip still exists, the new object that fills
the destroyed gun's slot will have the clip loaded into it.


Byte:
0: Object type
Object is the item ID# in geodata\obdata.dat
Value of 255/-1 = item in this slot is meant to be unused or destroyed.

1: X  \
2: Y  -> Object coordinates when on the ground.
3: Z  /
    Note: When first starting the mission, these coordinates all default
    to the first node in the Skyranger -- i.e. the 'equipment pile'.
    Even if the item supposedly begins in the soldier's inventory.
(This is true for all equipment owned by you)

    Therefore, if a clip loaded into a gun is transformed into a grenade,
    the explosion will occur on the Skyranger's equipment pile (or where
    the item was last 'dropped').

  These values determine where an unconcious unit will wake up. Oddly enough,
  when ported around by a unit, these values ARE NOT UPDATED.

4: Owner of item
References the units in unitpos. First unit unit index is 0, naturally.
Just tells the game who's holding the current item.
If 255 = object will be on the ground.

5: Inventory slot (from left to right)
    0 = Right hand (it's right in the battlescape, but not in the inventory)
    1 = Left hand
    2 - 5 = Leg slots
    6 - 9 = Shoulder slots
    10 - 18 = backpack
    19 - 22 = top row of belt
    23 - 24 = side pockets of belt

    Note: For the hand slots, you must also remember to update the left/right hand item 'image' in unitref.dat as well or else you can cause the game to crash by using an item that does not exist.

6: -1/255 by default

7: Object the current item is loaded into
Uses obpos item index - first object in obpos is 0
-1/255 by default for no item.

8: Ammo quantity
  (Ammo quantity)
  (Medikit medicine - painkiller)
  (grenade)
  0 = grenade object has not been primed.

  Non zero positive value = What turn to explode on.
  Grenade will explode if current 'turn' is equal or
  greater than this number. See wglob.dat for No. of turns.

  When priming grenades this is set to the current turn
  number for 0 turns and +1 for every additional turn.  (or was it +1?)

9 : (Medikit medicine - stimulants)
    (grenades)
    Owner
      For remembering who last threw the live grenade. For morale loss
      calculations and for determining the soldier's combat experience.
      0 by default
      Does it refer to unitpos or unitref?
     
10: (Medikit medicine - heal)
11:
12:
13:
14:
15:


You can now manipulate any object in the battlescape that you can pick up. I just wish I knew which of these stats points to an unconcious unit. Probably byte 6...

- NKF


--------------------
Current Avatar Source: A custom GM-Striker. The 'British' counterpart to the 'German' Zaku in Ich trage eine Wanne für einen Hut. I still have no idea if that's been mistranslated.
Go to the top of the page
 
+Quote Post
hatfarm
post 27th August 2004, 3:30pm
Post #5


Sergeant
***

Group: Members
Posts: 81
Joined: August 2004
From: Peoria, IL, USA
Member No.: 485



Thanks a lot. That's really helpful. That's exactly the kind of thing I'm looking for.


--------------------
Go to the top of the page
 
+Quote Post
BladeFireLight
post 28th August 2004, 10:21pm
Post #6


Xcomutil Developer
****

Group: Members
Posts: 573
Joined: November 2002
From: Gresham, Oregon, USA
Member No.: 136



I lost alot of that info a week ago in a hard drive crash.

The ufo2000 team has decoded a lot of this stuff.
and Scott T Jones has a large amount of referance mateiral.

I will search my notes and see if I have anything that is missing.

-Blade FireLight


--------------------
QUOTE
Combat is very simple, there is a first place and second place, second place is laying face down in the mud, sometimes, so is first place.
Go to the top of the page
 
+Quote Post
NKF
post 31st August 2004, 5:04am
Post #7


Rowboat
*****

Group: Site Staff
Posts: 2,725
Joined: September 2002
From: Outer Space
Member No.: 813



I'll toss in my notes on unit_pos.dat. Remember that unit_pos and unit_ref work together to make up every unit in the battlescape.

CODE
game_n\unitpos.dat (battlescape file)
14 bytes per entry
80 entries

Note, apparently the unit positions are stored the same way as they are in
unit references. However, for large units, the next three unit positions in
the file will belong to that unit. Also see flags.

How is a large unit recognised? Is there a unique identifier for it?
How does it control the three extra dummy sections?
Where's the flag that tells the game that the unit is under mind control?


MS Edit columns (for C/C++ offsets, just -1)
    1: Y Axis (top = 0, bottom = mapheight -1 )
    2: X Axis (left = 0, right = mapwidth -1 )
    3: Z Axis (bottom-most(3 or 1) - ground, 0 topmost level)

    4: garbage?
    5: garbage?
    6: garbage?
    7: garbage?
    8: garbage?

    9: garbage?

       255 for XCOM, 2, 1 and 0 for floaters?
       X-COM: 255              1111 1111
       TANKC: 1                0000 0001

       Ethereal: 3             0000 0011
                 94            0101 1110
                 15            0000 1111
       Civ: 0                  0000 0000
            12                 0000 1100
            91                 0101 1011
       Sectopod: 1             0000 0001
                 2             0000 0010
                 13            0000 1101
                 92            0101 1100



    10: Owner flag
          0 - X-Com  (under your control)
          1 - Alien  (AI controlled -- aggressive against 0 and 2)
          2 - Civilian (AI controlled - neutral, but will reaction fire
                        against 0 and 1)

    11: Unit INFORMATION FLAGS
        NOTE: In order for a deleted unit in unitpos_dat to NOT EXIST,
        this must be set to 0 in addition to removing the unit from unitref
        by setting its sprite to -1.



        Bits: (from right to left, 12345678) (bits probably in reverse, but nevermind)

        8 - 0 = invisible, 1 = Visible
        7 - Unit is alive ? Except for one instance, this seems to be true.
        6 - 1 for large units (only large units have this!)
        5 - } LARGE TERROR UNIT (low bit) (00=q1,01=q2,10=q3,11=q4)
        4 - } LARGE TERROR UNIT (high bit)
        3 - ???? Unused? Small units only perhaps?
        2 - 0 = No Mind Control, 1 = Under Temporary Mind Control (will revert ownership at the end of the turn)
        1 - ????

        (bits 4 and 5 are for large terror units!!)

        (To erase the unit, just set everything to 0)

                 Large unit quarters (only used if unit is large)
                 / \
                 | |Large unit
                 | || Alive
              MC | || |Visible
             ?| ?| || ||
  Dec. val = 12 34 56 78

        REAPER(s) (unseen)
        06 = 00 00 01 10  
        14 = 00 00 11 10
        54 = 00 11 01 10
        62 = 00 11 11 10

        36 = 00 10 01 00
        44 = 00 10 11 00
        52 = 00 11 01 00
        60 = 00 11 11 00

        38 = 00 10 01 10
        46 = 00 10 11 10
        22 = 00 01 01 10
        30 = 00 01 11 10


        CHRYSSALID(unseen)
        58 = 00 11 10 10        

        MUTON(s) (unseen)
        34, 42, 2
        34 = 00 10 00 10
        42 = 00 10 10 10
        02 = 00 00 00 10

        ETHEREALS (unseen)
        26 = 00 01 10 10
        10 = 00 00 10 10
        02 = 00 00 00 10

        CIVILIAN (unseen)
        02 = 00 00 00 10
        10 = 00 00 10 10
        26 = 00 01 10 10

        SECTOPOD (unseen)
        6  = 00 00 01 10          
        14 = 00 00 11 10
        22 = 00 01 01 10
        30 = 00 01 11 10

        LASER TANK
        07 = 00 00 01 11    Q1    // 7  
        47 = 00 10 11 11    Q2    //15
        55 = 00 11 01 11    Q3    //23
        31 = 00 01 11 11    Q4    //31
        CANNON TANK
        39 = 00 10 01 11    
        47 = 00 10 11 11    
        55 = 00 11 01 11    
        63 = 00 11 11 11    

        X-Com Soldier?
        35 = 00 10 00 11        

        More X-Com units (power suits)
        3, 27, 11,
        3  = 00 00 00 11
        27 = 00 01 10 11
        11 = 00 00 10 11



        If invisible is set for an AI controlled unit, the unit will
        become visible the moment the unit enters your field of vision.

        Note, if you make player controlled units invisible, they
        will appear to YOU as invisible, not the AI. You will remain
        invisible for the rest of the turn.
        Also note, you can shoot your own invisible units - something that's
        not possible for invisible AI controlled units?
       
    12: Rubbish?
    13: Rubbish?
    14: Rubbish?


I just hope all my spacing's not wrecked...

- NKF


--------------------
Current Avatar Source: A custom GM-Striker. The 'British' counterpart to the 'German' Zaku in Ich trage eine Wanne für einen Hut. I still have no idea if that's been mistranslated.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Collapse

> Similar Topics

    Topic Title Replies Topic Starter Views Last Action
No new   18 thecyke 7,829 4th May 2007, 12:26am
Last post by: Cpl. Facehugger
No New Posts   6 DevBael 488 22nd September 2002, 6:52am
Last post by: Caco
No New Posts 1 usmarox 442 15th October 2002, 10:36pm
Last post by: NKF
No New Posts 1 ravage777 326 21st February 2003, 9:36pm
Last post by: Slythe
No New Posts   8 bevan 624 23rd March 2003, 5:08am
Last post by: NKF

RSS Lo-Fi Version Time is now: 21st November 2008, 12:16pm