Difference between revisions of "SOLDIER.DAT (TFTD)"

From UFOpaedia
Jump to navigation Jump to search
(→‎Structure: Minor changes. Nailed down MC skill fields (initial and improvement) .)
(Added hex offsets.)
Line 4: Line 4:
 
SOLDIER.DAT has a fixed structure of 250 entries of 70 bytes each. (Only a maximum of 250 soldiers can be had). Thus it is always 17,500 bytes long (250x70).
 
SOLDIER.DAT has a fixed structure of 250 entries of 70 bytes each. (Only a maximum of 250 soldiers can be had). Thus it is always 17,500 bytes long (250x70).
  
Values are presented according to byte count (0 to 69) followed by the equivalent hex offset (00 to 43) in <b>bold</b>, followed by the normal (non-hacked) range of values in <i>italics</i>. Most fields can be hacked up to FF, but sometimes it can make for weirdness!
+
Values are presented according to byte count (0 to 69) followed by the equivalent hex offset (00 to 45) in <b>bold</b>, followed by the normal (non-hacked) range of values in <i>italics</i>. Most fields can be hacked up to FF, but sometimes it can make for weirdness!
  
 
Unfortunately, this file is not conveniently ordered like Enemy Unknown's file so everything is just jumbled together.
 
Unfortunately, this file is not conveniently ordered like Enemy Unknown's file so everything is just jumbled together.
  
 
== Structure ==
 
== Structure ==
<b>0</b> MC Skill Improvement
+
<b>0 / 00</b>: MC Skill Improvement
  
<b>1</b> Time Unit Improvement
+
<b>1 / 01</b>: Time Unit Improvement
  
<b>2</b> In MC Implantation Flag
+
<b>2 / 02</b>: In MC Implantation Flag
  
<b>3</b> Promotion Flag
+
<b>3 / 03</b>: Promotion Flag
  
<b>4</b> Health Improvement
+
<b>4 / 04</b>: Health Improvement
  
<b>5</b> Strength Improvement
+
<b>5 / 05</b>: Strength Improvement
  
<b>6-7</b> Base Reference using values from LOC.DAT for where soldier is. First base is always 0 (first entry in [[LOC.DAT]]). Value of FF means the soldier is being transferred.
+
<b>6-7 / 06-07</b>: Base Reference using values from LOC.DAT for where soldier is. First base is always 0 (first entry in [[LOC.DAT]]). Value of FF means the soldier is being transferred.
  
<b>8-9</b> Craft Reference
+
<b>8-9 / 08-09</b>: Craft Reference
  
<b>10-11</b> Rank
+
<b>10-11 / 0A-0B</b>: Rank
  
<b>12-13</b> <span style="color:red">Unknown</span>
+
<b>12-13 / 0C-0D</b>: <span style="color:red">Unknown</span>
  
<b>14-15</b> Kills
+
<b>14-15 / 0E-0F</b>: Kills
  
<b>16-17</b> Wound Recovery
+
<b>16-17 / 10-11</b>: Wound Recovery
  
<b>18-19</b> Missions
+
<b>18-19 / 12-13</b>: Missions
  
<b>20-21</b> Soldier Value
+
<b>20-21 / 14-15</b>: Soldier Value
  
<b>22</b> Always 0 except for existing soldiers being transferred, in which case it equals the LOC.DAT value for destination base.
+
<b>22 / 16</b>: Always 0 except for existing soldiers being transferred, in which case it equals the LOC.DAT value for destination base.
  
<b>23</b> Stamina Improvement
+
<b>23 / 17</b>: Stamina Improvement
  
<b>24</b> Reaction Improvement
+
<b>24 / 18</b>: Reaction Improvement
  
<b>25</b> Firing Accuracy Improvement
+
<b>25 / 19</b>: Firing Accuracy Improvement
  
<b>26</b> Initial Time Units
+
<b>26 / 1A</b>: Initial Time Units
  
<b>27</b> Initial Health
+
<b>27 / 1B</b>: Initial Health
  
<b>28</b> Initial Stamina
+
<b>28 / 1C</b>: Initial Stamina
  
<b>29</b> Initial Throwing Accuracy
+
<b>29 / 1D</b>: Initial Throwing Accuracy
  
<b>30</b> Armor
+
<b>30 / 1E</b>: Armor
  
<b>31</b> Gender
+
<b>31 / 1F</b>: Gender
  
<b>32</b> Race
+
<b>32 / 20</b>: Race
  
<b>33</b> Initial Firing Accuracy
+
<b>33 / 21</b>: Initial Firing Accuracy
  
<b>34</b> Initial Strength
+
<b>34 / 22</b>: Initial Strength
  
<b>35-61</b> Name. 21 characters can be entered in-game, 27 via hex editing. Does not need to be null terminated.
+
<b>35-61 / 23-3D</b>: Name. 21 characters can be entered in-game, 27 via hex editing. Does not need to be null terminated.
  
<b>62</b> Bravery Improvement
+
<b>62 / 3E</b>: Bravery Improvement
  
<b>63</b> Throwing Accuracy Improvement
+
<b>63 / 3F</b>: Throwing Accuracy Improvement
  
<b>64</b> Initial Bravery
+
<b>64 / 40</b>: Initial Bravery
  
<b>65</b> Initial MC Skill
+
<b>65 / 41</b>: Initial MC Skill
  
<b>66</b> Melee Accuracy Improvement
+
<b>66 / 42</b>: Melee Accuracy Improvement
  
<b>67</b> MC Strength
+
<b>67 / 43</b>: MC Strength
  
<b>68</b> Initial Melee Accuracy
+
<b>68 / 44</b>: Initial Melee Accuracy
  
<b>69</b> Initial Reactions
+
<b>69 / 45</b>: Initial Reactions

Revision as of 03:55, 11 November 2008

General Notes

Page Currently Under Construction!

SOLDIER.DAT has a fixed structure of 250 entries of 70 bytes each. (Only a maximum of 250 soldiers can be had). Thus it is always 17,500 bytes long (250x70).

Values are presented according to byte count (0 to 69) followed by the equivalent hex offset (00 to 45) in bold, followed by the normal (non-hacked) range of values in italics. Most fields can be hacked up to FF, but sometimes it can make for weirdness!

Unfortunately, this file is not conveniently ordered like Enemy Unknown's file so everything is just jumbled together.

Structure

0 / 00: MC Skill Improvement

1 / 01: Time Unit Improvement

2 / 02: In MC Implantation Flag

3 / 03: Promotion Flag

4 / 04: Health Improvement

5 / 05: Strength Improvement

6-7 / 06-07: Base Reference using values from LOC.DAT for where soldier is. First base is always 0 (first entry in LOC.DAT). Value of FF means the soldier is being transferred.

8-9 / 08-09: Craft Reference

10-11 / 0A-0B: Rank

12-13 / 0C-0D: Unknown

14-15 / 0E-0F: Kills

16-17 / 10-11: Wound Recovery

18-19 / 12-13: Missions

20-21 / 14-15: Soldier Value

22 / 16: Always 0 except for existing soldiers being transferred, in which case it equals the LOC.DAT value for destination base.

23 / 17: Stamina Improvement

24 / 18: Reaction Improvement

25 / 19: Firing Accuracy Improvement

26 / 1A: Initial Time Units

27 / 1B: Initial Health

28 / 1C: Initial Stamina

29 / 1D: Initial Throwing Accuracy

30 / 1E: Armor

31 / 1F: Gender

32 / 20: Race

33 / 21: Initial Firing Accuracy

34 / 22: Initial Strength

35-61 / 23-3D: Name. 21 characters can be entered in-game, 27 via hex editing. Does not need to be null terminated.

62 / 3E: Bravery Improvement

63 / 3F: Throwing Accuracy Improvement

64 / 40: Initial Bravery

65 / 41: Initial MC Skill

66 / 42: Melee Accuracy Improvement

67 / 43: MC Strength

68 / 44: Initial Melee Accuracy

69 / 45: Initial Reactions