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.

Editing User:Jifodus/Dwarf Fortress Utility Framework

Jump to navigation Jump to search

Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.


The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
I'm currently writing a framework for Dwarf Fortress utilities. The general idea is to use C++ interfaces in a cross-compiler fashion that is very easy to use. This is designed to assist utility writers, by making possible to compile once, and have it work on future versions of Dwarf Fortress.
+
I'm currently writing a framework for Dwarf Fortress utilities. The general idea is to use C++ interfaces in a cross-compiler fashion that is very easy to use.
 
 
'''Attention:''' This is just a quick check to see if anyone is looking at or using the DFUF in any of their projects. I'm thinking of rewriting the interfaces due to some limitations I've been encountering. I also plan on abstracating the environment away from Lua directly. If you are, please PM me on the forums, or leave a note on the talk page. I just want to avoid breaking an existing tool and/or forcing you to learn a new interface.
 
  
 
==License==
 
==License==
Line 9: Line 7:
  
 
==Links==
 
==Links==
===First Beta Release: January 1, 2008===
+
Source Code: http://www.geocities.com/jifodus/dfuf.zip
Source Code: http://www.geocities.com/jifodus/dfuf2.zip<br />
+
 
Binaries: http://www.geocities.com/jifodus/dfufend2.zip<br />
+
Binaries: http://www.geocities.com/jifodus/dfufend.zip
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug2.zip
 
  
'''This first beta release has additional interfaces for working with creatures, it also has more complete data files. It is now possible to cleanly create complex type overrides with ''PointerTo()'', ''VectorOf()'', and ''ArrayOf()''. There is no data for v0.27.169.33g, the data is most complete for v0.27.169.33f.'''
 
===Alpha Release===
 
Source Code: http://www.geocities.com/jifodus/dfuf.zip<br />
 
Binaries: http://www.geocities.com/jifodus/dfufend.zip<br />
 
 
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug.zip
 
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug.zip
 
==Todo==
 
Before the second release, which is necessary before it can be easily used, the following items need to be taken care of.
 
* Bugs
 
** There's always going to be a bug somewhere.
 
* Features
 
** Main Library
 
*** '''Error Handling''' - The library itself does not cleanly handle common errors. '''''10% Completed'''''
 
*** '''Auto-Update''' - Implement automatic update for both framework code and data. '''''0% Completed'''''
 
*** '''Installer''' - An installer for the library. '''''10% Completed'''''
 
*** '''Complete Memory Data''' - Complete transforming the memory data available on the wiki to format usable by library. '''''60% Completed'''''
 
*** '''More Type Objects''' - Provide interface wrappers to some of the commonly used memory types (Creature and Map). '''''60% Completed'''''
 
*** '''Memory Scanner''' - A simple memory searcher. Used for '''Auto-Identifier'''. '''''0% Completed'''''
 
*** '''Auto-Identifier''' - Automatically try to find the memory locations and offsets for new versions. '''''0% Completed'''''
 
*** '''Remote Memory De/Allocate''' - Needed to properly implement String & Vector set functions. '''''0% Completed'''''
 
*** '''Reload Data''' - The data loading portion does not yet properly reload the data. '''''0% Completed'''''
 
*** '''Bindings''' - C#/Perl/Java/Python/Lua/Other?
 
  
 
==Features Overview==
 
==Features Overview==
Line 52: Line 28:
 
* Complete source code
 
* Complete source code
 
* Identify Dwarf Fortress version via PE executable timestamp
 
* Identify Dwarf Fortress version via PE executable timestamp
* Cross-compiler/mostly C compatible using Windows COM style interfaces
+
* Cross-compiler/C compatible using Windows COM style interfaces
** It is not C compatible due to function overloading issues.
 
 
* Auto-loading of Lua data files
 
* Auto-loading of Lua data files
 
* Library self-contained in DLL
 
* Library self-contained in DLL
Line 70: Line 45:
 
** iDFUF::installDataFile is not yet implemented
 
** iDFUF::installDataFile is not yet implemented
 
* Compiled as debug mode (bloated file sizes)
 
* Compiled as debug mode (bloated file sizes)
 +
* Windows XP or later required (from the use of GetModuleHandleEx)
 
* The library is not extensively tested
 
* The library is not extensively tested
* The library has a dependency on: [http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en Visual Studio 8 Debug CRT]
 
  
 
===Second Release===
 
===Second Release===
Line 231: Line 206:
 
  uf->destroy();
 
  uf->destroy();
 
  }
 
  }
 
[[Category:Hacking|Dwarf Fortress Utility Framework]]
 

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)