A short while ago I discovered I could switch to graphics mode within the 50.x Classic version. Since then I've been trying to determine what it would take to make the graphics enabled Classic version playable. What I've discovered is that the work it'll take exceeds the capacity of my artistic ability and available free time.
This post contains all the information I've been able to gather for those interested in modding the UI, World Map, and Map Tiles who need a place to start.
I'm assuming you're at least familiar with the basic Modding instructions:
https://bay12games.com/dwarves/modding_guide.html http://dwarffortresswiki.org/index.php/Modding#Basics_of_DF_modding http://dwarffortresswiki.org/index.php/GraphicsI've uploaded the Mod files I've been working on to DFFD:
https://dffd.bay12games.com/file.php?id=16370I should note that this is not complete, nor will it likely ever be. Its purpose is to be used as an example, or starting point.
This Mod breaks the graphics down into three sections: interface, worldmap, and maptile.
The interface [
graphics_interface.txt] deals mostly with buttons, designations, and the designation cursor display.
The worldmap [
graphics_worldmap.txt] (displayed at worldgen and in-game with SHIFT+Y) has some site graphics defined
, but is very limited. and contains a complete list of available TOKENs.
The maptile [
graphics_maptile.txt] deals with map objects; stone, dirt, and a surface feature [boulder].
The tile tokens and associated definitions were found via various sources, including the DFHack repository, various forum postings, and trying permutations of the ASCII_GRAPHICS tags in
\data\vanilla\vanilla_interface\graphics\graphics_classic.txt.
Just prior to this posting I discovered an upload from jecowa which contain the .txt files that describe all the graphics with associated tile tokens and definitions. It can be found here:
https://dffd.bay12games.com/file.php?id=16276---
--
UI Graphics (interface)
These appear to be a mix of 32x32 (buttons, designation cursor), 16x32 (play/pause/help button), and perhaps a few other sizes (dialog borders).
It's a little more complicated than this. See fifth post.In the uploaded Mod there's a graphic located at 0, 4 on the
sample_interface.png that I've used as a measure of sorts.
The UI Graphics definition follows the form:
[TILE_GRAPHICS:INTERFACE_BITS:8:37:BUTTON_PRIORITY_2_INACTIVE:0:0]
Broken into parts:
TILE_GRAPHICS | - defines this as a graphic |
INTERFACE_BITS | - defines the TILE_PAGE |
8 | - column offset of TILE_PAGE |
37 | - row offset of TILE_PAGE |
BUTTON_PRIORITY_2_INACTIVE | - TILE TOKEN that accepts this graphic |
0 | - column offset on UI |
0 | - row offset on UI |
Based on experimentation the last "0:0]" represent offsets on the UI
, but I'm not sure of this.
--
Designation Cursor
The designation cursor is interesting in that it behaves differently based on whether you're designating a single point, a line, or a rectangle.
In the sample images the brown portion represents the background and is not a part of the cursor.
For a single point the definition is:
[TILE_GRAPHICS:5004_INTERFACE:5:4:RECTANGLE_CURSOR_N_S_W_E:0:0]
Sample:
For a line going East or West:
[TILE_GRAPHICS:5004_INTERFACE:0:4:RECTANGLE_CURSOR_N_S_W:0:0]
[TILE_GRAPHICS:5004_INTERFACE:1:4:RECTANGLE_CURSOR_N_S_E:0:0]
[TILE_GRAPHICS:5004_INTERFACE:4:4:RECTANGLE_CURSOR_N_S:0:0]
Sample:
For a line going North or South:
[TILE_GRAPHICS:5004_INTERFACE:2:4:RECTANGLE_CURSOR_N_W_E:0:0]
[TILE_GRAPHICS:5004_INTERFACE:3:4:RECTANGLE_CURSOR_S_W_E:0:0]
[TILE_GRAPHICS:5004_INTERFACE:6:4:RECTANGLE_CURSOR_W_E:0:0]
Sample:
For a rectangle:
[TILE_GRAPHICS:5004_INTERFACE:0:0:RECTANGLE_CURSOR_N_W:0:0]
[TILE_GRAPHICS:5004_INTERFACE:1:1:RECTANGLE_CURSOR_N:0:0]
[TILE_GRAPHICS:5004_INTERFACE:1:0:RECTANGLE_CURSOR_N_E:0:0]
[TILE_GRAPHICS:5004_INTERFACE:0:1:RECTANGLE_CURSOR_W:0:0]
[TILE_GRAPHICS:5004_INTERFACE:4:0:RECTANGLE_CURSOR_INTERIOR:0:0]
[TILE_GRAPHICS:5004_INTERFACE:5:1:RECTANGLE_CURSOR_E:0:0]
[TILE_GRAPHICS:5004_INTERFACE:2:0:RECTANGLE_CURSOR_S_W:0:0]
[TILE_GRAPHICS:5004_INTERFACE:4:1:RECTANGLE_CURSOR_S]
[TILE_GRAPHICS:5004_INTERFACE:3:0:RECTANGLE_CURSOR_S_E:0:0]
Sample:
I'm not sure why there's a distinction, but it's there.
--
This post is getting long and I'm starting to become unsure of its usefulness. Let me know if you'd like me to expand on the worldmap and maptile pieces.