v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

User:0x517A5D

From Dwarf Fortress Wiki
Revision as of 05:26, 14 November 2007 by 0x517A5D (talk | contribs)
Jump to navigation Jump to search

Build

I started my most recent fortress with:

  • a skilled mason / proficient building designer / novice record keeper
  • a proficient armorsmith / skilled metalsmith / novice furnace operator
  • a proficient weaponsmith / skilled metalcrafter / novice furnace operator
  • a proficient bowyer / proficient mechanic
  • a proficient herbalist / novice bowyer / negotiator / appraiser
  • a proficient brewer / skilled grower / novice armorsmith
  • a proficient cook / skilled grower / novice weaponsmith

And

  • 2 copper picks
  • 1 steel battle axe
  • 1 iron anvil
  • 1 plump helmet
  • 4 units of assorted alcohol, 1 of each type available
  • 16 units of assorted 2p meats, 1 of each type available
  • 4 units of assorted 2p fish, 1 of each type available
  • 11 turtles
  • 16 plump helmet spawn
  • 10 pig tail spawn
  • 1 dimple cup spawn
  • 1 cave wheat seed
  • 1 sweet pod seed
  • 1 rock nut
  • 3 steel bolts (bug exploit)
  • 4 dogs

The drinks, plump helmet, meat, and fish are bought for the free barrels. Most seeds are bought for the free bags. Turtles are bought for the shells and bones. Bolts are bought because I read on the forums that they melt into lots of steel bars. At 30 points per, they had better.

I chose a 4x4 map which I had previously verified to have hidden magma, lots of limestone and marble, tons of magnetite, some coal, and lots of trees.

I played this region as a 6x6 map, experiencing FPS in the mid-40s dipping to low 30s at times. We shall see if 4x4 makes a difference. Also I played using reveal last time, this time I hope to play it normally.

Esmullogem, "Fullpaint". Could be worse. Stroike the oith!

Post mortem: abandoned in a fit of pique after striking the aquifer in the middle of my ore storage area and flooding the forging/smelting area below. The bolt thing didn't work out. I got nothing. So that's 90 more points I can spend. Probably I'll buy 4p meats for more barrels. I love me some barrels.
Lessons learned: it's too easy to dig into an aquifer square. There really should be a warning beyond the initial "dig cancelled". Outdoor farming seems even more imbalanced than indoor farming. All crops, all year around. Maybe that will change when recipes are implemented. Vertical connectivity is king. An up/down staircase takes no longer to dig than an empty square, and has much more potential. You can't put a building on an up/down, but you can put a stockpile or zone on it. Garbage dumps should preferably be built on the same x/y coords on every z level, or selectively disabled as necessary. Make magma channels two-wide or more for faster filling.
Still to do: I had planned to experiment with steel pumps to move magma around, but obviously never got there. I want my magma moat, darnit! I'm considering making all hallways out of up/down. It would be ugly though. I should experiment in seeing how many melted copper picks it takes to forge a copper battle axe. If it's more than 1, than I'd need to bring enough supplies to start with two wagons. Or buy some logs for the initial charcoal. 3p each, a fairly good deal.

Enable Magma Buildings

Helper utility for Rick's reveal.exe enable_magma_buildings_33a.zip

You need this utility in the case that you used the reveal utility, and there is a magma pool or pipe on your map that does not reach the surface. (If the hide utility is ever updated, you could also hide a few magma tiles and then dig them out. That worked in the old version.)

Because there is no actual flag that controls whether magma has been seen (the game searches a list, probably a list of notable events), I had to patch the game's code. This means you need to run the patch every time you start dwarfort.exe.


Voodoo

To find the map_data, map_x_count, map_y_count, and map_z_count in an unknown version of dwarfort.exe,

  • Search the program text
    • (it's huge, 401000 through about 880000)
    • (Search 570000-57FFFF first)
  • For this sequence: C6 44 24 38 3E
  • There should be exactly one match in the program.
  • The address of map_data can be found 18 bytes beyond the match address,
  • The address of map_x_count can be found 1E bytes beyond the match address,
  • The address of map_x_count can be found 24 bytes beyond the match address,
  • And the address of map_z_count can be found 2A bytes beyond the match address.
  • Verify that &map_x_count + 4 == &map_y_count && &map_y_count + 4 == &map_z_count.

Rick indicates that he knows a better way, but he's being secretive about it.

Race Voodoo

To find the variable holding the index of the dwarven race,

  • Search the program text for:
  • 0F BF ANY (ANY ANY ANY 01) 39 ANY 8C 00 00 00
    • Where ANY matches any single byte.
  • There are many matches; all of them work the same.
  • The DWORD 3 bytes into this pattern, marked with parentheses, points to the dwarven race index variable.
  • The dwarven race index variable is a WORD or possibly a short int.

Unit Table Start Pointer Voodoo

To find the variable holding a pointer to the start of the unit table,

  • Search the program text for:
  • 8B ANY C8 04 00 00 8D ANY ANY 8B ANY (ANY ANY ANY 01) 85
  • There are two matches (in .33a)
  • The DWORD 11 bytes into this pattern, marked with parentheses, points to the .start field of the unit table vector.
  • 4 bytes above that is the .end field of the vector.
  • Treat the .start field as a pointer to an array of pointers to creature structures.