Difference between revisions of "BPROD.DAT (TFTD)"
m (→Rough Outline) |
m (→More Detailed) |
||
Line 35: | Line 35: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> P.W.T. Launcher </td> |
<td>0 (0x0)</td> |
<td>0 (0x0)</td> |
||
− | <td> |
+ | <td>228 (0xE4)</td> |
− | <td> |
+ | <td>296 (0x126)</td> |
− | <td> |
+ | <td>366 (0x16E)</td> |
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Gauss Cannon </td> |
<td>4 (0x4)</td> |
<td>4 (0x4)</td> |
||
<td>142 (0x8E)</td> |
<td>142 (0x8E)</td> |
||
Line 49: | Line 49: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Sonic Oscillator </td> |
<td>8 (0x8)</td> |
<td>8 (0x8)</td> |
||
<td>144 (0x90)</td> |
<td>144 (0x90)</td> |
||
Line 56: | Line 56: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> PWT Craft Ammo </td> |
<td>12 (0xC)</td> |
<td>12 (0xC)</td> |
||
<td>146 (0x92)</td> |
<td>146 (0x92)</td> |
||
Line 63: | Line 63: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Coelacanth/Gauss </td> |
<td>16 (0x10)</td> |
<td>16 (0x10)</td> |
||
<td>148 (0x94)</td> |
<td>148 (0x94)</td> |
||
Line 70: | Line 70: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Displacer/Sonic </td> |
<td>20 (0x14)</td> |
<td>20 (0x14)</td> |
||
<td>150 (0x96)</td> |
<td>150 (0x96)</td> |
||
Line 77: | Line 77: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Displacer/PWT </td> |
<td>24 (0x18)</td> |
<td>24 (0x18)</td> |
||
<td>152 (0x98)</td> |
<td>152 (0x98)</td> |
||
Line 84: | Line 84: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> PW Torpedo (SWS) </td> |
<td>28 (0x1C)</td> |
<td>28 (0x1C)</td> |
||
<td>154 (0x9A)</td> |
<td>154 (0x9A)</td> |
||
Line 91: | Line 91: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Gauss Pistol </td> |
<td>32 (0x20)</td> |
<td>32 (0x20)</td> |
||
<td>156 (0x9C)</td> |
<td>156 (0x9C)</td> |
||
Line 98: | Line 98: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Gauss Rifle </td> |
<td>36 (0x24)</td> |
<td>36 (0x24)</td> |
||
<td>158 (0x9E)</td> |
<td>158 (0x9E)</td> |
||
Line 105: | Line 105: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> Heavy |
+ | <td> Heavy Gauss </td> |
<td>40 (0x28)</td> |
<td>40 (0x28)</td> |
||
<td>160 (0xA0)</td> |
<td>160 (0xA0)</td> |
||
Line 112: | Line 112: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Disturbance Sensor </td> |
<td>44 (0x2C)</td> |
<td>44 (0x2C)</td> |
||
<td>162 (0xA2)</td> |
<td>162 (0xA2)</td> |
||
Line 126: | Line 126: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> M.C. Disruptor </td> |
<td>52 (0x34)</td> |
<td>52 (0x34)</td> |
||
<td>166 (0xA6)</td> |
<td>166 (0xA6)</td> |
||
Line 133: | Line 133: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Sonic Cannon </td> |
<td>56 (0x38)</td> |
<td>56 (0x38)</td> |
||
<td>168 (0xA8)</td> |
<td>168 (0xA8)</td> |
||
Line 140: | Line 140: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Cannon Power Clip </td> |
<td>60 (0x3C)</td> |
<td>60 (0x3C)</td> |
||
<td>170 (0xAA)</td> |
<td>170 (0xAA)</td> |
||
Line 147: | Line 147: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Sonic Blasta Rifle </td> |
<td>64 (0x40)</td> |
<td>64 (0x40)</td> |
||
<td>172 (0xAC)</td> |
<td>172 (0xAC)</td> |
||
Line 154: | Line 154: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Blasta Power Clip </td> |
<td>68 (0x44)</td> |
<td>68 (0x44)</td> |
||
<td>174 (0xAE)</td> |
<td>174 (0xAE)</td> |
||
Line 161: | Line 161: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Sonic Pistol </td> |
<td>72 (0x48)</td> |
<td>72 (0x48)</td> |
||
<td>176 (0xB0)</td> |
<td>176 (0xB0)</td> |
||
Line 168: | Line 168: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Pistol Power Clip </td> |
<td>76 (0x4C)</td> |
<td>76 (0x4C)</td> |
||
<td>178 (0xB2)</td> |
<td>178 (0xB2)</td> |
||
Line 175: | Line 175: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Disruptor Pulse Launcher </td> |
<td>80 (0x50)</td> |
<td>80 (0x50)</td> |
||
<td>180 (0xB4)</td> |
<td>180 (0xB4)</td> |
||
Line 182: | Line 182: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Disruptor Ammo </td> |
<td>84 (0x54)</td> |
<td>84 (0x54)</td> |
||
<td>182 (0xB6)</td> |
<td>182 (0xB6)</td> |
||
Line 189: | Line 189: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Thermal Shok Launcher </td> |
<td>88 (0x58)</td> |
<td>88 (0x58)</td> |
||
<td>184 (0xB8)</td> |
<td>184 (0xB8)</td> |
||
Line 196: | Line 196: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Thermal Shok Bomb </td> |
<td>92 (0x5C)</td> |
<td>92 (0x5C)</td> |
||
<td>186 (0xBA)</td> |
<td>186 (0xBA)</td> |
||
Line 203: | Line 203: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Sonic Pulsar </td> |
<td>96 (0x60)</td> |
<td>96 (0x60)</td> |
||
<td>188 (0xBC)</td> |
<td>188 (0xBC)</td> |
||
Line 210: | Line 210: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> M.C. Reader </td> |
<td>100 (0x64)</td> |
<td>100 (0x64)</td> |
||
<td>190 (0xBE)</td> |
<td>190 (0xBE)</td> |
||
Line 217: | Line 217: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Plastic Aqua Armor </td> |
<td>104 (0x68)</td> |
<td>104 (0x68)</td> |
||
<td>192 (0xC0)</td> |
<td>192 (0xC0)</td> |
||
Line 224: | Line 224: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Ion Armor </td> |
<td>108 (0x6C)</td> |
<td>108 (0x6C)</td> |
||
<td>194 (0xC2)</td> |
<td>194 (0xC2)</td> |
||
Line 231: | Line 231: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Mag. Ion Armor </td> |
<td>112 (0x70)</td> |
<td>112 (0x70)</td> |
||
<td>196 (0xC4)</td> |
<td>196 (0xC4)</td> |
||
Line 238: | Line 238: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Aqua Plastics </td> |
<td>116 (0x74)</td> |
<td>116 (0x74)</td> |
||
<td>198 (0xC6)</td> |
<td>198 (0xC6)</td> |
||
Line 245: | Line 245: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Ion-Beam Accelerators </td> |
<td>120 (0x78)</td> |
<td>120 (0x78)</td> |
||
<td>200 (0xC8)</td> |
<td>200 (0xC8)</td> |
||
Line 252: | Line 252: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> Magnetic Navigation </td> |
<td>124 (0x7C)</td> |
<td>124 (0x7C)</td> |
||
<td>202 (0xCA)</td> |
<td>202 (0xCA)</td> |
||
Line 259: | Line 259: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> HAMMERHEAD </td> |
<td>128 (0x80)</td> |
<td>128 (0x80)</td> |
||
<td>204 (0xCC)</td> |
<td>204 (0xCC)</td> |
||
Line 266: | Line 266: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> MANTA </td> |
<td>132 (0x84)</td> |
<td>132 (0x84)</td> |
||
<td>206 (0xCE)</td> |
<td>206 (0xCE)</td> |
||
Line 273: | Line 273: | ||
</tr> |
</tr> |
||
<tr> |
<tr> |
||
− | <td> |
+ | <td> LEVIATHAN </td> |
<td>136 (0x88)</td> |
<td>136 (0x88)</td> |
||
<td>208 (0xD0)</td> |
<td>208 (0xD0)</td> |
||
<td>278 (0x116)</td> |
<td>278 (0x116)</td> |
||
<td>348 (0x15C)</td> |
<td>348 (0x15C)</td> |
||
+ | </tr> |
||
+ | <tr> |
||
+ | <td> Gauss Pistol Clip </td> |
||
+ | <td>140 (0x8C)</td> |
||
+ | <td>210 (0xD2)</td> |
||
+ | <td>280 (0x118)</td> |
||
+ | <td>350 (0x15E)</td> |
||
+ | </tr> |
||
+ | <tr> |
||
+ | <td> Gauss Rifle Clip </td> |
||
+ | <td>144 (0x90)</td> |
||
+ | <td>212 (0xD4)</td> |
||
+ | <td>282 (0x11A)</td> |
||
+ | <td>352 (0x160)</td> |
||
+ | </tr> |
||
+ | <tr> |
||
+ | <td> Heavy Gauss Clip </td> |
||
+ | <td>148 (0x94)</td> |
||
+ | <td>214 (0xD6)</td> |
||
+ | <td>284 (0x11C)</td> |
||
+ | <td>354 (0x162)</td> |
||
+ | </tr> |
||
+ | <tr> |
||
+ | <td> Vibro Blade </td> |
||
+ | <td>152 (0x98)</td> |
||
+ | <td>216 (0xD8)</td> |
||
+ | <td>286 (0x11E)</td> |
||
+ | <td>356 (0x164)</td> |
||
+ | </tr> |
||
+ | <tr> |
||
+ | <td> Thermic Lance </td> |
||
+ | <td>156 (0x9C)</td> |
||
+ | <td>218 (0xDA)</td> |
||
+ | <td>288 (0x120)</td> |
||
+ | <td>358 (0x166)</td> |
||
+ | </tr> |
||
+ | <tr> |
||
+ | <td> Heavy Thermic Lance </td> |
||
+ | <td>160 (0xA0)</td> |
||
+ | <td>220 (0xDC)</td> |
||
+ | <td>290 (0x122)</td> |
||
+ | <td>360 (0x168)</td> |
||
+ | </tr> |
||
+ | <tr> |
||
+ | <td> Guass Cannnon Ammo </td> |
||
+ | <td>164 (0xA4)</td> |
||
+ | <td>222 (0xDE)</td> |
||
+ | <td>292 (0x124)</td> |
||
+ | <td>362 (0x16A)</td> |
||
+ | </tr> |
||
+ | <tr> |
||
+ | <td> {UNUSED} </td> |
||
+ | <td>168 (0xA8)</td> |
||
+ | <td>224 (0xE0)</td> |
||
+ | <td>294 (0x126)</td> |
||
+ | <td>364 (0x16C)</td> |
||
</tr> |
</tr> |
||
</table> |
</table> |
Revision as of 13:51, 15 November 2012
The BPROD.DAT file holds information on the current progress of what is being manufactured. It is a whopping (compared to other dat files) 2800 bytes. Essentially it holds information for each of your bases and for each item that can be produced. Each item gets 10 bytes (8 bases * 43 producible items * 10 bytes = 3440), however the format of this file seems a bit sideways (to me atleast). The best 'line width' to come up with is 430, 1 line for each base.
Inside of those 430 bytes it is divided into to 4 sections:
- Hours Stored (Long Integer 4 Bytes)- always lower (possibly equal see below) than the engineering hours needed to make one. It is the remainder when the amount of hours spent does not evenly divide into the time it takes to make the product. However setting this value to 0 will remove the production and place it back into the new production list, be see note below.
- Engineers Allocated (Integer 2 Bytes) - how many engineers are allocated to making this product
- Total to Produce (Integer 2 Bytes) - the number of these items to make
- Units Produced (Integer 2 Bytes) - the number of these itesm to make.
NOTE: Normally when a project is complete all the values for it are set to 0. Only the 'Hours Stored' controls if it is shown as being produced or available for a new production. If a production is hacked to 0, before it is done, the engineers are still allocated to it. You will be unable to get these engineers back until you create the same project they were working on again, note that they still take up space in the workshop, so you might not be able to create that project again.
The amount of hours stored can equal the amount required, as is the case when you start a new project (along with the total to produce set 1 higher). This is why you can sometimes see 0/0 Days/Hours Left if you meet it exactly. The next hour should increment and allow the project to be finished.
Each of these 4 sections list all of the items that can be produced before going on to the next section. The order they are place corresponds to the record in PRODUCT.DAT. So byte 0 is hours completed for a Fusion Ball Launcher, byte 4 is hours completed for Laser Cannon, byte 8 is hours completed for a Plasma Beam, and so on. Finally at byte 140 (4 bytes * 35 items) we get the engineers allocated to the Fusion Ball Launcher. (All at the first base)
Rough Outline
Here is a rough outline of the format of the file, divided up into 430 byte chunks (each corresponds to a base). The order follows that of PRODUCT.DAT inside these chunks. All addresses are in decimal unless prefixed by 0x
000 - 0ABh : Hours stored for each item (4 bytes each) 0ACh - 101h : Engineers allocated to each item (2 bytes each) 102h - 157h : Total to produce for each item (2 bytes each) 158h - 1ADh : Units produced for each item (2 bytes each)
More Detailed
I used a python script to generate a more verbose listing of the addressing in this file, as it is rather tedious.
Item Name | Stored Hours Offset |
Allocated Engineers Offset |
Quantity to Make Offset |
Number Produced Offset |
---|---|---|---|---|
P.W.T. Launcher | 0 (0x0) | 228 (0xE4) | 296 (0x126) | 366 (0x16E) |
Gauss Cannon | 4 (0x4) | 142 (0x8E) | 212 (0xD4) | 282 (0x11A) |
Sonic Oscillator | 8 (0x8) | 144 (0x90) | 214 (0xD6) | 284 (0x11C) |
PWT Craft Ammo | 12 (0xC) | 146 (0x92) | 216 (0xD8) | 286 (0x11E) |
Coelacanth/Gauss | 16 (0x10) | 148 (0x94) | 218 (0xDA) | 288 (0x120) |
Displacer/Sonic | 20 (0x14) | 150 (0x96) | 220 (0xDC) | 290 (0x122) |
Displacer/PWT | 24 (0x18) | 152 (0x98) | 222 (0xDE) | 292 (0x124) |
PW Torpedo (SWS) | 28 (0x1C) | 154 (0x9A) | 224 (0xE0) | 294 (0x126) |
Gauss Pistol | 32 (0x20) | 156 (0x9C) | 226 (0xE2) | 296 (0x128) |
Gauss Rifle | 36 (0x24) | 158 (0x9E) | 228 (0xE4) | 298 (0x12A) |
Heavy Gauss | 40 (0x28) | 160 (0xA0) | 230 (0xE6) | 300 (0x12C) |
Disturbance Sensor | 44 (0x2C) | 162 (0xA2) | 232 (0xE8) | 302 (0x12E) |
Medi-kit | 48 (0x30) | 164 (0xA4) | 234 (0xEA) | 304 (0x130) |
M.C. Disruptor | 52 (0x34) | 166 (0xA6) | 236 (0xEC) | 306 (0x132) |
Sonic Cannon | 56 (0x38) | 168 (0xA8) | 238 (0xEE) | 308 (0x134) |
Cannon Power Clip | 60 (0x3C) | 170 (0xAA) | 240 (0xF0) | 310 (0x136) |
Sonic Blasta Rifle | 64 (0x40) | 172 (0xAC) | 242 (0xF2) | 312 (0x138) |
Blasta Power Clip | 68 (0x44) | 174 (0xAE) | 244 (0xF4) | 314 (0x13A) |
Sonic Pistol | 72 (0x48) | 176 (0xB0) | 246 (0xF6) | 316 (0x13C) |
Pistol Power Clip | 76 (0x4C) | 178 (0xB2) | 248 (0xF8) | 318 (0x13E) |
Disruptor Pulse Launcher | 80 (0x50) | 180 (0xB4) | 250 (0xFA) | 320 (0x140) |
Disruptor Ammo | 84 (0x54) | 182 (0xB6) | 252 (0xFC) | 322 (0x142) |
Thermal Shok Launcher | 88 (0x58) | 184 (0xB8) | 254 (0xFE) | 324 (0x144) |
Thermal Shok Bomb | 92 (0x5C) | 186 (0xBA) | 256 (0x100) | 326 (0x146) |
Sonic Pulsar | 96 (0x60) | 188 (0xBC) | 258 (0x102) | 328 (0x148) |
M.C. Reader | 100 (0x64) | 190 (0xBE) | 260 (0x104) | 330 (0x14A) |
Plastic Aqua Armor | 104 (0x68) | 192 (0xC0) | 262 (0x106) | 332 (0x14C) |
Ion Armor | 108 (0x6C) | 194 (0xC2) | 264 (0x108) | 334 (0x14E) |
Mag. Ion Armor | 112 (0x70) | 196 (0xC4) | 266 (0x10A) | 336 (0x150) |
Aqua Plastics | 116 (0x74) | 198 (0xC6) | 268 (0x10C) | 338 (0x152) |
Ion-Beam Accelerators | 120 (0x78) | 200 (0xC8) | 270 (0x10E) | 340 (0x154) |
Magnetic Navigation | 124 (0x7C) | 202 (0xCA) | 272 (0x110) | 342 (0x156) |
HAMMERHEAD | 128 (0x80) | 204 (0xCC) | 274 (0x112) | 344 (0x158) |
MANTA | 132 (0x84) | 206 (0xCE) | 276 (0x114) | 346 (0x15A) |
LEVIATHAN | 136 (0x88) | 208 (0xD0) | 278 (0x116) | 348 (0x15C) |
Gauss Pistol Clip | 140 (0x8C) | 210 (0xD2) | 280 (0x118) | 350 (0x15E) |
Gauss Rifle Clip | 144 (0x90) | 212 (0xD4) | 282 (0x11A) | 352 (0x160) |
Heavy Gauss Clip | 148 (0x94) | 214 (0xD6) | 284 (0x11C) | 354 (0x162) |
Vibro Blade | 152 (0x98) | 216 (0xD8) | 286 (0x11E) | 356 (0x164) |
Thermic Lance | 156 (0x9C) | 218 (0xDA) | 288 (0x120) | 358 (0x166) |
Heavy Thermic Lance | 160 (0xA0) | 220 (0xDC) | 290 (0x122) | 360 (0x168) |
Guass Cannnon Ammo | 164 (0xA4) | 222 (0xDE) | 292 (0x124) | 362 (0x16A) |
{UNUSED} | 168 (0xA8) | 224 (0xE0) | 294 (0x126) | 364 (0x16C) |
See Also
- BASE.DAT - Information about Bases
- PRODUCT.DAT - Describes what can be built
- Saved Game Files