summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Mrázek2011-06-20 01:12:07 +0200
committerPetr Mrázek2011-06-20 01:12:07 +0200
commitf2b91d32690988241c3311d62bab780803682906 (patch)
treefac5f73d763ceea966dd035f0f8489999ca62676
parente0fb8f7c81785030fc532fecd4863c6b0cbb36be (diff)
downloaddfhack-f2b91d32690988241c3311d62bab780803682906.tar.gz
dfhack-f2b91d32690988241c3311d62bab780803682906.tar.bz2
dfhack-f2b91d32690988241c3311d62bab780803682906.tar.xz
Making ready for adding plugins. Fixes all over the place, more removal of obsolete parts.
-rw-r--r--CMakeLists.txt297
-rw-r--r--Memory-40d.xml2129
-rw-r--r--ReleaseText.txt1
-rw-r--r--build/build-MinGW32-debug.bat6
-rw-r--r--build/build-MinGW32-release.bat7
-rw-r--r--build/generate-MSVC-2005.bat5
-rw-r--r--build/generate-MSVC-2008.bat5
-rw-r--r--build/linux-remote.expect55
-rw-r--r--build/pkg-debian.sh7
-rw-r--r--build/pkg-ubuntu-10.10-x64.sh7
-rw-r--r--build/pkg-ubuntu-10.10.sh7
-rw-r--r--build/pkg-win32.bat37
-rwxr-xr-xbuild/pkg-win32.sh14
-rw-r--r--dfhack-python/CMakeLists.txt0
-rw-r--r--dfhack-python/__init__.py13
-rw-r--r--dfhack-python/buildings.py34
-rw-r--r--dfhack-python/constructions.py25
-rw-r--r--dfhack-python/context.py191
-rw-r--r--dfhack-python/creatures.py73
-rw-r--r--dfhack-python/dfhack_api_ctypes.py152
-rw-r--r--dfhack-python/dftypes.py637
-rw-r--r--dfhack-python/enum.py156
-rw-r--r--dfhack-python/flags.py201
-rw-r--r--dfhack-python/gui.py73
-rw-r--r--dfhack-python/items.py33
-rw-r--r--dfhack-python/maps.py291
-rw-r--r--dfhack-python/materials.py166
-rw-r--r--dfhack-python/process.py135
-rw-r--r--dfhack-python/util.py88
-rw-r--r--dfhack-python/vegetation.py25
-rw-r--r--dfhack-python/window_io.py26
-rw-r--r--dfhack-python/world.py80
-rw-r--r--library/CMakeLists.txt24
-rw-r--r--library/Core-linux.cpp21
-rw-r--r--library/Core-windows.cpp18
-rw-r--r--library/Core.cpp7
-rw-r--r--library/Process-linux.cpp8
-rw-r--r--library/Process-windows.cpp61
-rw-r--r--library/doc/CMakeLists.txt (renamed from doc/CMakeLists.txt)7
-rw-r--r--library/doc/Doxyfile.in (renamed from doc/Doxyfile.in)4
-rw-r--r--library/doc/Doxygen.html (renamed from doc/Doxygen.html)0
-rw-r--r--library/doc/img/.dot (renamed from doc/img/.dot)0
-rw-r--r--library/doc/index.dxgen (renamed from doc/index.dxgen)0
-rw-r--r--library/include/dfhack/Core.h3
-rw-r--r--library/include/dfhack/FakeSDL.h6
-rw-r--r--library/include/dfhack/Process.h4
-rw-r--r--library/include/dfhack/extra/rlutil.h (renamed from library/private/rlutil.h)0
-rw-r--r--library/modules/Graveyard.cpp170
-rw-r--r--library/private/Internal.h4
-rw-r--r--library/private/PlatformInternal.h102
-rw-r--r--offsetedit/CMakeLists.txt9
-rw-r--r--offsetedit/src/CMakeLists.txt25
-rw-r--r--offsetedit/src/dfedit.cpp95
-rw-r--r--offsetedit/src/dfedit.h26
-rw-r--r--offsetedit/src/gui/dIsForDwarf.svg1621
-rw-r--r--offsetedit/src/gui/main.ui195
-rw-r--r--offsetedit/src/gui/main_16.pngbin718 -> 0 bytes
-rw-r--r--offsetedit/src/gui/main_32.pngbin1216 -> 0 bytes
-rw-r--r--offsetedit/src/gui/main_64.pngbin2287 -> 0 bytes
-rw-r--r--offsetedit/src/gui/resources.qrc7
-rw-r--r--offsetedit/src/main.cpp11
-rw-r--r--offsetedit/src/memxmlModel.cpp210
-rw-r--r--offsetedit/src/memxmlModel.h30
-rw-r--r--output/.gitignore3
-rw-r--r--output/stones.py11
-rw-r--r--package/debian/99-dfhack.conf2
-rwxr-xr-xpackage/debian/postinst2
-rwxr-xr-xpackage/debian/postrm2
-rwxr-xr-xpackage/debian/preinst2
-rw-r--r--package/ubuntu-10.10/99-dfhack.conf6
-rwxr-xr-xpackage/ubuntu-10.10/postinst13
-rwxr-xr-xpackage/ubuntu-10.10/postrm2
-rwxr-xr-xpackage/ubuntu-10.10/preinst2
-rw-r--r--plugins/.keep (renamed from output/doxygen/.keep)0
-rwxr-xr-xprecompiled/linux/df-hacked13
75 files changed, 173 insertions, 7529 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cbe192e7..3d478369 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,282 +1,87 @@
# main project file. use it from a build sub-folder, see COMPILE for details
## some generic CMake magic
-cmake_minimum_required(VERSION 2.8.0 FATAL_ERROR)
-PROJECT (dfhack)
+cmake_minimum_required(VERSION 2.8.4 FATAL_ERROR)
+project(dfhack)
SET(CMAKE_MODULE_PATH
${dfhack_SOURCE_DIR}/CMake/Modules
${CMAKE_MODULE_PATH}
)
-if("${dfhack_SOURCE_DIR}" STREQUAL "${dfhack_BINARY_DIR}")
+if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
message(FATAL_ERROR "In-source builds are not allowed.")
endif()
-SET(DFHACK_CONSISTENCY 1)
-
-set(CPACK_PACKAGE_VERSION_MAJOR "0")
-set(CPACK_PACKAGE_VERSION_MINOR "5")
-set(CPACK_PACKAGE_VERSION_PATCH "15")
+set(DFHACK_VERSION_MAJOR "0")
+set(DFHACK_VERSION_MINOR "31")
+set(DFHACK_VERSION_PATCH "25")
set(DFHACK_REVISION "1")
set(DFHACK_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
-set(CPACK_PACKAGE_VERSION ${DFHACK_VERSION})
-
-set(CPACK_PACKAGE_NAME "dfhack")
-SET(CPACK_PACKAGE_VENDOR "dethware.org")
-SET(CPACK_PACKAGE_CONTACT "peterix@dethware.org")
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Memory hacks for Dwarf Fortress")
-SET(CPACK_PACKAGE_DESCRIPTION
-"DFHack is a Dwarf Fortress memory access library and a set of basic
-tools using this library. The library is a work in progress, so things
-might change as more tools are written for it.
-.
-It is an attempt to unite the various ways tools access DF memory and
-allow for easier development of new tools.")
-
## setting the build type
IF(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
- SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel.")
+ SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Release RelWithDebInfo.")
ENDIF()
-## put everything in one big ugly directory to make MSVC and KDevelop debuggers happy
-SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${dfhack_BINARY_DIR}/bin")
-SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${dfhack_BINARY_DIR}/bin")
-SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${dfhack_BINARY_DIR}/bin")
-
+SET(DFHACK_OUTPUT_DIR "${dfhack_BINARY_DIR}/bin" CACHE STRING "Where should be the produced libraries and binaries stored.")
+
+## where to put things during the build (force MSVC to behave)
+SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${DFHACK_OUTPUT_DIR})
+SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${DFHACK_OUTPUT_DIR})
+SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${DFHACK_OUTPUT_DIR})
+SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${DFHACK_OUTPUT_DIR})
+SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL ${DFHACK_OUTPUT_DIR})
+SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL ${DFHACK_OUTPUT_DIR})
+SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${DFHACK_OUTPUT_DIR})
+SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${DFHACK_OUTPUT_DIR})
+SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${DFHACK_OUTPUT_DIR})
+
+## where to install things (after the build is done, classic 'make install' or package structure)
+# the dfhack libraries will be installed here:
+SET(DFHACK_LIBRARY_DESTINATION .)
+# the dfhack tools will be installed here:
+SET(DFHACK_BINARY_DESTINATION .)
+# Memory.xml goes here:
+SET(DFHACK_DATA_DESTINATION .)
+# Includes go here:
+SET(DFHACK_INCLUDES_DESTINATION dev/include)
+# the Windows .lib files go here:
IF(WIN32)
- set (DFHACK_INST_DEFAULT "portable")
-ELSE()
- set (DFHACK_INST_DEFAULT "linux")
-ENDIF()
-
-SET( DFHACK_INSTALL ${DFHACK_INST_DEFAULT} CACHE STRING
-"Choose the install type:
-'portable' for a portable zip or tar.gz package (windows default)
-'linux' for generic packaging and system installs on linux (linux default)
-'ubuntu-10.10' for ubuntu maverick package.")
-
-IF(${DFHACK_INSTALL} STREQUAL "portable")
- # the dfhack libraries will be installed here:
- SET(DFHACK_LIBRARY_DESTINATION .)
- # the dfhack tools will be installed here:
- SET(DFHACK_BINARY_DESTINATION .)
- # Memory.xml goes here:
- SET(DFHACK_DATA_DESTINATION .)
- # Includes go here:
- SET(DFHACK_INCLUDES_DESTINATION dev/include)
- # the Windows .lib files go here:
- IF(WIN32)
- SET(DFHACK_DEVLIB_DESTINATION dev)
- SET(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .)
- ENDIF()
- IF(UNIX)
- SET(CMAKE_INSTALL_RPATH "$ORIGIN")
- ENDIF()
- # documentation goes here:
- SET(DFHACK_USERDOC_DESTINATION .)
- SET(DFHACK_DEVDOC_DESTINATION dev)
- SET(DFHACK_DOXYGEN_DESTINATION dev/doxygen)
-ENDIF()
-
-# generic linux package in a .tar.gz
-IF(${DFHACK_INSTALL} STREQUAL "linux")
- if(WIN32)
- MESSAGE(FATAL_ERROR "WTF are you doing?")
- endif()
- # set RPATH to always point at the dfhack lib using relative path.
- SET(CMAKE_INSTALL_RPATH "$ORIGIN/../lib/")
- # the dfhack libraries will be installed here:
- SET(DFHACK_LIBRARY_DESTINATION lib)
- # the dfhack tools will be installed here:
- SET(DFHACK_BINARY_DESTINATION bin)
- # Memory.xml goes here:
- SET(DFHACK_DATA_DESTINATION share/dfhack)
- # Includes go here:
- SET(DFHACK_INCLUDES_DESTINATION include)
- # documentation goes here:
- SET(DFHACK_USERDOC_DESTINATION share/dfhack/doc)
- SET(DFHACK_DEVDOC_DESTINATION share/dfhack/doc)
- SET(DFHACK_DOXYGEN_DESTINATION share/dfhack/doc/doxygen)
-ENDIF()
-
-IF(${DFHACK_INSTALL} STREQUAL "ubuntu-10.10" OR ${DFHACK_INSTALL} STREQUAL "debian")
- if(WIN32)
- MESSAGE(FATAL_ERROR "WTF are you doing?")
- endif()
- # set RPATH to always point at the dfhack lib using relative path.
- SET(CMAKE_INSTALL_RPATH "$ORIGIN/../lib/")
- # the dfhack libraries will be installed here:
- SET(DFHACK_LIBRARY_DESTINATION usr/lib)
- # the dfhack tools will be installed here:
- SET(DFHACK_BINARY_DESTINATION usr/bin)
- # Memory.xml goes here:
- SET(DFHACK_DATA_DESTINATION usr/share/dfhack)
- # Includes go here:
- SET(DFHACK_INCLUDES_DESTINATION usr/include)
- # documentation goes here:
- SET(DFHACK_USERDOC_DESTINATION usr/share/dfhack/doc)
- SET(DFHACK_DEVDOC_DESTINATION usr/share/dfhack/doc)
- SET(DFHACK_DOXYGEN_DESTINATION usr/share/dfhack/doc/doxygen)
- INSTALL(FILES
- "${CMAKE_CURRENT_SOURCE_DIR}/package/${DFHACK_INSTALL}/99-dfhack.conf"
- DESTINATION etc/sysctl.d)
-ENDIF()
-
-
-
-## some options for the user/developer to play with
-OPTION(BUILD_DFHACK_LIBRARY "Build the library. Needed for all the tools." ON)
-OPTION(BUILD_DFHACK_C_BINDINGS "Build the C portion of the library." ON)
-OPTION(BUILD_DFHACK_PYTHON_BINDINGS "Build/install the python wrapper." ON)
-IF(WIN32)
- OPTION(BUILD_DFHACK_DEVEL "Build the developer stuff." OFF)
-ENDIF()
-IF(UNIX)
- OPTION(BUILD_DFHACK_DEVEL "Build the developer stuff." ON)
+ SET(DFHACK_DEVLIB_DESTINATION dev)
+ SET(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .)
ENDIF()
-OPTION(BUILD_DFHACK_DOXYGEN "Create doxygen documentation for developers" ON)
-OPTION(BUILD_DFHACK_SUPPORTED "Build the supported tools." ON)
-OPTION(BUILD_DFHACK_EXAMPLES "Build example tools" OFF)
-OPTION(BUILD_DFHACK_PLAYGROUND "Build tools from the playground folder" OFF)
-
-include_directories (${dfhack_SOURCE_DIR}/library/include/)
-include_directories (${dfhack_SOURCE_DIR}/library/shm/)
-include_directories (${dfhack_SOURCE_DIR}/library/depends/argstream/)
-include_directories (${dfhack_SOURCE_DIR}/library/depends/xgetopt/)
-
-# handle curses library bull**** on multiple platforms.
IF(UNIX)
- find_package(Curses QUIET)
- if(Curses_FOUND)
- add_library(curses SHARED IMPORTED)
- set_property(TARGET curses PROPERTY IMPORTED_LOCATION ${Curses_LIBRARY})
- include_directories (${Curses_INCLUDE_PATH})
- endif()
-ELSE()
- add_library(curses SHARED IMPORTED)
- set_property(TARGET curses PROPERTY IMPORTED_LOCATION ${dfhack_SOURCE_DIR}/pdcurses/pdcurses.dll)
- set_property(TARGET curses PROPERTY IMPORTED_IMPLIB ${dfhack_SOURCE_DIR}/pdcurses/pdcurses.lib)
- include_directories (${dfhack_SOURCE_DIR}/pdcurses)
- add_custom_target( curses-copy
- COMMAND "${CMAKE_COMMAND}" -E make_directory ${dfhack_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/
- COMMAND "${CMAKE_COMMAND}" -E copy "${dfhack_SOURCE_DIR}/pdcurses/pdcurses.dll" ${dfhack_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/
- DEPENDS "${dfhack_SOURCE_DIR}/pdcurses/pdcurses.dll")
- SET(Curses_FOUND TRUE)
- INSTALL(FILES "${dfhack_SOURCE_DIR}/pdcurses/pdcurses.dll" DESTINATION ${DFHACK_BINARY_DESTINATION})
+ SET(CMAKE_INSTALL_RPATH "$ORIGIN")
ENDIF()
+# documentation goes here:
+SET(DFHACK_USERDOC_DESTINATION .)
+SET(DFHACK_DEVDOC_DESTINATION dev)
+SET(DFHACK_DOXYGEN_DESTINATION dev/doxygen)
-# macro to save on typing in the tool subdirs
-# builds a tool, links it to the dfhack lib and makes sure the dependency
-# LOCAL_DEPNAME is built first, in case there is one
-MACRO(DFHACK_TOOL TOOL_NAME TOOL_SOURCES)
- ADD_EXECUTABLE(${TOOL_NAME} ${TOOL_SOURCES})
- TARGET_LINK_LIBRARIES(${TOOL_NAME} dfhack)
- if(DEFINED LOCAL_DEPNAME)
- ADD_DEPENDENCIES(${TOOL_NAME} ${LOCAL_DEPNAME})
- endif()
- install(TARGETS
- ${TOOL_NAME}
- RUNTIME DESTINATION ${DFHACK_BINARY_DESTINATION})
-ENDMACRO()
-
-# same as above builds a curses tool instead of plain terminal one.
-MACRO(DFHACK_CURSES_TOOL TOOL_NAME TOOL_SOURCES)
- IF(Curses_FOUND)
- ADD_EXECUTABLE(${TOOL_NAME} ${TOOL_SOURCES})
- TARGET_LINK_LIBRARIES(${TOOL_NAME} dfhack curses)
- if(DEFINED LOCAL_DEPNAME)
- ADD_DEPENDENCIES(${TOOL_NAME} ${LOCAL_DEPNAME})
- endif()
- if(WIN32)
- ADD_DEPENDENCIES(${TOOL_NAME} curses-copy)
- ENDIF()
- install(TARGETS
- ${TOOL_NAME}
- RUNTIME DESTINATION ${DFHACK_BINARY_DESTINATION})
- ELSE()
- MESSAGE(STATUS "Wide-character ncurses library not found - " ${TOOL_NAME} "can't be built")
- ENDIF()
-ENDMACRO()
+## some options for the user/developer to play with
+OPTION(BUILD_LIBRARY "Build the library that goes into DF." ON)
+OPTION(BUILD_PLUGINS "Build the library that goes into DF." ON)
-IF(BUILD_DFHACK_LIBRARY)
-
+IF(BUILD_LIBRARY)
add_subdirectory (library)
-
- IF(BUILD_DFHACK_PYTHON_BINDINGS)
- MESSAGE("TODO: write CMakeLists.txt for the python things.")
- ENDIF()
- IF(BUILD_DFHACK_SUPPORTED)
- add_subdirectory (tools/supported)
- ENDIF()
-
- IF(BUILD_DFHACK_EXAMPLES)
- add_subdirectory (tools/examples)
- ENDIF()
-
- IF(BUILD_DFHACK_PLAYGROUND)
- add_subdirectory (tools/playground)
- ENDIF()
-
## install the default documentation files
install(FILES LICENSE Readme.html DESTINATION ${DFHACK_USERDOC_DESTINATION})
endif()
-IF(BUILD_DFHACK_DOXYGEN AND BUILD_DFHACK_DEVEL)
- add_subdirectory (doc)
+# Packaging with CPack!
+IF(UNIX)
+ SET(CPACK_GENERATOR "TGZ")
ENDIF()
-
-IF(${DFHACK_INSTALL} STREQUAL "portable")
- IF(UNIX)
- SET(CPACK_GENERATOR "TGZ")
- ENDIF()
- IF(WIN32)
- SET(CPACK_GENERATOR "ZIP")
- # this includes the MSVC C++ DLLs in the package. Doesn't work with Express versions in general.
- INCLUDE(InstallRequiredSystemLibraries)
- ENDIF()
- set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${DFHACK_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
- INCLUDE(CPack)
+IF(WIN32)
+ SET(CPACK_GENERATOR "ZIP")
+ # this includes the MSVC C++ DLLs in the package. Doesn't work with Express versions in general.
+ # we should be fine with the stuff DF already has packaged... so, commenting out
+ # INCLUDE(InstallRequiredSystemLibraries)
ENDIF()
+set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${DFHACK_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
+INCLUDE(CPack)
-#-------------------------------------------------------------------------------
-# Figure out debian architecture
-#-------------------------------------------------------------------------------
-
-FUNCTION(GET_DEBIAN_ARCHITECTURE arch)
- SET(dpkgarch)
-
- FIND_PROGRAM(DPKG_CMD dpkg)
- IF(NOT DPKG_CMD)
- MESSAGE(STATUS "Can not find dpkg in your path, default to i386.")
- SET(${arch} i386 PARENT_SCOPE)
- ENDIF()
- EXECUTE_PROCESS(COMMAND "${DPKG_CMD}" --print-architecture
- OUTPUT_VARIABLE dpkgarch
- OUTPUT_STRIP_TRAILING_WHITESPACE )
- SET(${arch} ${dpkgarch} PARENT_SCOPE)
-ENDFUNCTION()
-
-IF(${DFHACK_INSTALL} STREQUAL "ubuntu-10.10" OR ${DFHACK_INSTALL} STREQUAL "debian")
- SET(CPACK_GENERATOR "DEB")
- #wtf, wtf, wtf. force them to be empty
- set(CMAKE_INSTALL_PREFIX "" FORCE)
- set(CPACK_INSTALL_PREFIX "")
- SET(CPACK_PACKAGING_INSTALL_PREFIX "")
- set(CPACK_SET_DESTDIR true)
-
- SET(CPACK_DEBIAN_PACKAGE_SECTION "Games") # yep. magma.
- SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") # very.
- SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) # find deps automatically! hopefully... maybe...
- SET(INSTSCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/package/${DFHACK_INSTALL}")
- SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${INSTSCRIPT}/postinst;${INSTSCRIPT}/preinst;${INSTSCRIPT}/postrm")
-
- GET_DEBIAN_ARCHITECTURE(PKG_ARCHITECTURE)
-
- set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${DFHACK_VERSION}-${DFHACK_REVISION}_${DFHACK_INSTALL}-${PKG_ARCHITECTURE}")
- INCLUDE(CPack)
-ENDIF()
diff --git a/Memory-40d.xml b/Memory-40d.xml
deleted file mode 100644
index b6d5ce1f..00000000
--- a/Memory-40d.xml
+++ /dev/null
@@ -1,2129 +0,0 @@
-<?xml version="1.0"?>
-
-<DFExtractor>
- <!-- USE A FIXED WIDTH FONT! -->
- <MemoryDescriptors>
- <!--A note about virtual types: many of those aren't enumerated in the vtable structure anymore
- but are found dynamically. Here's a list of viewscreens for 40d:
- viewscreen_conversation
- viewscreen_setupadventure
- viewscreen_dungeon_announce
- viewscreen_dungeon_monsterstatus
- viewscreen_dungeon_wrestle
- viewscreen_adventure_log
- viewscreen_adventure_travel
- viewscreen_dungeonmode
- viewscreen_selectitem
- viewscreen_dwarfmode
- viewscreen_layer_stockpile
- viewscreen_layer_world_gen_param_preset
- viewscreen_layer_world_gen_param
- viewscreen_layer_export_play_map
- viewscreen_layer_musicsound
- viewscreen_layer_unit_relationship
- viewscreen_layer_workshop_profile
- viewscreen_layer
- viewscreen_unit
- viewscreen_customize_unit
- viewscreen_savegame
- viewscreen_loadgame
- viewscreen_option
- viewscreen_layer_currency
- viewscreen_layer_reaction
- viewscreen_layer_stone_restriction
- viewscreen_layer_noblelist
- viewscreen_job
- viewscreen_building
- viewscreen_item
- viewscreen_noble
- viewscreen_buildinglist
- viewscreen_commandchain
- viewscreen_squad
- viewscreen_civlist
- viewscreen_entity
- viewscreen_treasurelist
- viewscreen_unitjobs
- viewscreen_createquota
- viewscreen_jobmanagement
- viewscreen_wages
- viewscreen_stores
- viewscreen_overallstatus
- viewscreen_justice
- viewscreen_price
- viewscreen_pet
- viewscreen_kitchenpref
- viewscreen_announcelist
- viewscreen_game_cleaner
- viewscreen_title
- viewscreen_legends
- viewscreen_new_region
- viewscreen_export_region
- viewscreen_export_graphical_map
- viewscreen_layer_assigntrade
- viewscreen_requestagreement
- viewscreen_tradeagreement
- viewscreen_topicmeeting_takerequests
- viewscreen_topicmeeting
- viewscreen_meeting
- viewscreen_barter
- viewscreen_tradegoods
- viewscreen_tradelist
- viewscreen_textviewer
- viewscreen_layer_choose_language_name
- viewscreen_setupdwarfgame
- viewscreen_choose_start_site
-
- And item types:
- item_coin
- item_trapcomp
- item_siegeammo
- item_quiver
- item_backpack
- item_pants
- item_totem
- item_anvil
- item_gem
- item_bracelet
- item_earring
- item_ring
- item_crown
- item_ammo
- item_scepter
- item_amulet
- item_figurine
- item_bin
- item_box
- item_gloves
- item_helm
- item_shield
- item_shoes
- item_armor
- item_weapon
- item_animaltrap
- item_barrel
- item_cage
- item_toy
- item_instrument
- item_goblet
- item_flask
- item_chain
- item_hatch_cover
- item_floodgate
- item_door
- item_cloth
- item_constructed
- item_food
- item_crafted
- item_thread
- item_cheese
- item_ballistaarrowhead
- item_shell
- item_skull
- item_bones
- item_skin_tanned
- item_skin_raw
- item_pet
- item_vermin
- item_fish_raw
- item_fish
- item_meat
- item_remains
- item_corpsepiece
- item_glob
- item_liquid_misc
- item_powder_misc
- item_drink
- item_extract
- item_liquipowder
- item_corpse
- item_wood
- item_stone
- item_rough
- item_blocks
- item_smallgem
- item_bar
- item_actual
- item_rock
- item_grate
- item_window
- item_bucket
- item_coffin
- item_statue
- item_quern
- item_millstone
- item_armorstand
- item_weaponrack
- item_cabinet
- item_catapultparts
- item_ballistaparts
- item_trapparts
- item_potion
- item_pipe_section
- item_leaves
- item_plant
- item_seeds
- item_critter
- item_powder
- item_liquid
-
- Finally veins:
- block_square_event_frozen_liquid
- block_square_event_mineral
- -->
- <Entry version="meta-40d" os="all" id="meta-40d">
- <Profession can_assign_labors="true" is_military="false" name="Miner">0</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Woodworker">1</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Carpenter">2</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Bowyer">3</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Woodcutter">4</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Stoneworker">5</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Engraver">6</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Mason">7</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Ranger">8</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Animal Caretaker">9</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Animal Trainer">10</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Hunter">11</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Trapper">12</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Animal Dissector">13</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Metalsmith">14</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Furnace Operator">15</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Weaponsmith">16</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Armorer">17</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Blacksmith">18</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Metalcrafter">19</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Jeweler">20</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Gem Cutter">21</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Gem Setter">22</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Craftsdwarf">23</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Woodcrafter">24</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Stonecrafter">25</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Leatherworker">26</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Bone Carver">27</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Weaver">28</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Clothier">29</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Glassmaker">30</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Strand Extractor">31</Profession>
- <Profession can_assign_labors="false" female_name="Queen" is_military="false" name="King">32</Profession>
- <Profession can_assign_labors="false" female_name="Queen Consort" is_military="false" name="King Consort">33</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Fishery Worker">34</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Fisherdwarf">35</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Fish Dissector">36</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Fish Cleaner">37</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Farmer">38</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Cheese Maker">39</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Milker">40</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Cook">41</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Thresher">42</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Miller">43</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Butcher">44</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Tanner">45</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Dyer">46</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Planter">47</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Herbalist">48</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Brewer">49</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Soap Maker">50</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Potash Maker">51</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Lye Maker">52</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Wood Burner">53</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Engineer">54</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Mechanic">55</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Siege Engineer">56</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Siege Operator">57</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Pump Operator">58</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Clerk">59</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Administrator">60</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Trader">61</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Architect">62</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Alchemist">63</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Tax Collector">64</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Hammerer">65</Profession>
- <Profession can_assign_labors="false" female_name="Baroness" is_military="false" name="Baron">66</Profession>
- <Profession can_assign_labors="false" female_name="Countess" is_military="false" name="Count">67</Profession>
- <Profession can_assign_labors="false" female_name="Duchess" is_military="false" name="Duke">68</Profession>
- <Profession can_assign_labors="false" female_name="Baroness Consort" is_military="false" name="Baron Consort">69</Profession>
- <Profession can_assign_labors="false" female_name="Countess Consort" is_military="false" name="Count Consort">70</Profession>
- <Profession can_assign_labors="false" female_name="Duchess Consort" is_military="false" name="Duke Consort">71</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Philosopher">72</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Advisor">73</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Dungeon Master">74</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Merchant">75</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Diplomat">76</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Guild Representative">77</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Merchant Baroness">78</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Merchant Princess">79</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Outpost Liaison">80</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Druid">81</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Champion">82</Profession>
- <Profession can_assign_labors="true" is_military="true" name="Hammerdwarf">83</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Hammer Lord">84</Profession>
- <Profession can_assign_labors="true" is_military="true" name="Speardwarf">85</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Spearmaster">86</Profession>
- <Profession can_assign_labors="true" is_military="true" name="Marksdwarf">87</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Elite Crossbowdwarf">88</Profession>
- <Profession can_assign_labors="true" is_military="true" name="Wrestler">89</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Elite Wrestler">90</Profession>
- <Profession can_assign_labors="true" is_military="true" name="Axedwarf">91</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Axe Lord">92</Profession>
- <Profession can_assign_labors="true" is_military="true" name="Swordsdwarf">93</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Swordmaster">94</Profession>
- <Profession can_assign_labors="true" is_military="true" name="Macedwarf">95</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Mace Lord">96</Profession>
- <Profession can_assign_labors="true" is_military="true" name="Pikedwarf">97</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Pikemaster">98</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Bowdwarf">99</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Elite Bowdwarf">100</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Blowgunner">101</Profession>
- <Profession can_assign_labors="false" is_military="true" name="Elite Bowgunner">102</Profession>
- <Profession can_assign_labors="true" is_military="true" name="Recruit">103</Profession>
- <Profession can_assign_labors="false" is_military="false" name="?Hunting creature?">104</Profession>
- <Profession name="?War creature?" can_assign_labors="false" is_military="false">105</Profession>
- <Profession name="?Master thief?" can_assign_labors="false" is_military="false">106</Profession>
- <Profession name="?Thief?" can_assign_labors="false" is_military="false">107</Profession>
- <Profession can_assign_labors="true" is_military="false" name="Peasant">108</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Child">109</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Baby">110</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Drunk">111</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Lasher">112</Profession>
- <Profession can_assign_labors="false" is_military="false" name="Master Lasher">113</Profession>
- <Job name="Carve Fortification">0</Job>
- <Job name="Detail Wall">1</Job>
- <Job name="Detail Floor">2</Job>
- <Job name="Dig">3</Job>
- <Job name="Carve Upward Staircase">4</Job>
- <Job name="Carve Downward Staircase">5</Job>
- <Job name="Carve Up/Down Staircase">6</Job>
- <Job name="Carve Ramp">7</Job>
- <Job name="Dig Channel">8</Job>
- <Job name="Fell Tree">9</Job>
- <Job name="Gather Plants">10</Job>
- <Job name="Remove Construction">11</Job>
- <Job name="Collect Webs">12</Job>
- <Job name="Bring Item to Depot">13</Job>
- <Job name="Bring Item to Shop">14</Job>
- <Job name="Eat">15</Job>
- <Job name="Get Provisions">16</Job>
- <Job name="Drink">17</Job>
- <Job name="Drink">18</Job>
- <Job name="Fill Waterskin">19</Job>
- <Job name="Sleep">20</Job>
- <Job name="Collect Sand">21</Job>
- <Job name="Fish">22</Job>
- <Job name="Hunt">23</Job>
- <Job name="Hunt for Small Creature">24</Job>
- <Job name="Kidnap">25</Job>
- <Job name="Beat Criminal">26</Job>
- <Job name="Starting Fist Fight">27</Job>
- <Job name="Collect Taxes">28</Job>
- <Job name="Guard Tax Collector">29</Job>
- <Job name="Catch Live Land Animal">30</Job>
- <Job name="Catch Live Fish">31</Job>
- <Job name="Return Kill">32</Job>
- <Job name="Check Chest">33</Job>
- <Job name="Store Owned Item">34</Job>
- <Job name="Place Item in Tomb">35</Job>
- <Job name="Store Item in Stockpile">36</Job>
- <Job name="Store Item in Bag">37</Job>
- <Job name="Store Item in Chest">38</Job>
- <Job name="Store Item in Cabinet">39</Job>
- <Job name="Store Weapon">40</Job>
- <Job name="Store Armor">41</Job>
- <Job name="Store Item in Barrel">42</Job>
- <Job name="Store Item in Bin">43</Job>
- <Job name="Seek Artifact">44</Job>
- <Job name="Seek Infant">45</Job>
- <Job name="Attend Party">46</Job>
- <Job name="Shooting at Archery Range">47</Job>
- <Job name="Sparring in Barracks">48</Job>
- <Job name="Go Shopping A">49</Job>
- <Job name="Go Shopping B">50</Job>
- <Job name="Clean">51</Job>
- <Job name="Rest">52</Job>
- <Job name="Pickup Equipment">53</Job>
- <Job name="Dump Item">54</Job>
- <Job name="Strange Mood Crafter">55</Job>
- <Job name="Strange Mood Jeweller">56</Job>
- <Job name="Strange Mood C">57</Job>
- <Job name="Strange Mood Metal">58</Job>
- <Job name="Strange Mood E">59</Job>
- <Job name="Strange Mood F">60</Job>
- <Job name="Strange Mood Carpenter">61</Job>
- <Job name="Strange Mood Mason">62</Job>
- <Job name="Strange Mood Bowyer">63</Job>
- <Job name="Strange Mood Tanner">64</Job>
- <Job name="Strange Mood Weaver">65</Job>
- <Job name="Strange Mood Glassmaker">66</Job>
- <Job name="Strange Mood Mechanics">67</Job>
- <Job name="Construct Building">68</Job>
- <Job name="Construct Door">69</Job>
- <Job name="Construct Floodgate">70</Job>
- <Job name="Construct Bed">71</Job>
- <Job name="Construct Chair">72</Job>
- <Job name="Construct Coffin">73</Job>
- <Job name="Construct Table">74</Job>
- <Job name="Construct Chest">75</Job>
- <Job name="Construct Bin">76</Job>
- <Job name="Construct Armor Stand">77</Job>
- <Job name="Construct Weapon Rack">78</Job>
- <Job name="Construct Cabinet">79</Job>
- <Job name="Construct Statue">80</Job>
- <Job name="Construct XXX">81</Job>
- <Job name="Make Raw XXX">82</Job>
- <Job name="Make crafts">83</Job>
- <Job name="Mint stuff">84</Job>
- <Job name="Cut XX A">85</Job>
- <Job name="Cut XX B">86</Job>
- <Job name="Encrust">87</Job>
- <Job name="?">88</Job>
- <Job name="Destroy Building">89</Job>
- <Job name="Smelt Ore">90</Job>
- <Job name="Smelt">91</Job>
- <Job name="Melt a Metal Object">92</Job>
- <Job name="Extract Metal Strands">93</Job>
- <Job name="Tan a Hide">94</Job>
- <Job name="Plant Seeds">95</Job>
- <Job name="Harvest Plants">96</Job>
- <Job name="Train Hunting Animal">97</Job>
- <Job name="Train War Animal">98</Job>
- <Job name="Forge/Make DDD ">99</Job>
- <Job name="Forge Anvil">100</Job>
- <Job name="Construct Catapult Parts">101</Job>
- <Job name="Construct Ballista Parts">102</Job>
- <Job name="Forge/Make A">103</Job>
- <Job name="Forge/Make B">104</Job>
- <Job name="Forge/Make C">105</Job>
- <Job name="Stud With XX">106</Job>
- <Job name="Butcher an Animal">107</Job>
- <Job name="Prepare a Raw Fish">108</Job>
- <Job name="Mill Plants">109</Job>
- <Job name="Bait Trap">110</Job>
- <Job name="Milk Creature">111</Job>
- <Job name="Make Cheese">112</Job>
- <Job name="Process Plants">113</Job>
- <Job name="Process Plants (Bag)">114</Job>
- <Job name="Process Plants (Vial)">115</Job>
- <Job name="Process Plants (Barrel)">116</Job>
- <Job name="Prepare Meal">117</Job>
- <Job name="Weave Thread">118</Job>
- <Job name="Forge/Make D">119</Job>
- <Job name="Forge/Make E">120</Job>
- <Job name="Forge/Make F">121</Job>
- <Job name="Forge Cage">122</Job>
- <Job name="Forge Rope">123</Job>
- <Job name="Forge Flask">124</Job>
- <Job name="Forge Goblet">125</Job>
- <Job name="Forge Instrument">126</Job>
- <Job name="Forge Toy">127</Job>
- <Job name="Forge Animal Trap">128</Job>
- <Job name="Forge Barrel">129</Job>
- <Job name="Forge Bucket">130</Job>
- <Job name="Forge Window">131</Job>
- <Job name="Make Totem">132</Job>
- <Job name="Forge/Make G">133</Job>
- <Job name="Decorate With Bone">134</Job>
- <Job name="Make Backpack">135</Job>
- <Job name="Make Quiver">136</Job>
- <Job name="Forge Ballista Arrow Head">137</Job>
- <Job name="Assemble">138</Job>
- <Job name="Load Catapult">139</Job>
- <Job name="Load Ballista">140</Job>
- <Job name="Fire Catapult">141</Job>
- <Job name="Fire Ballista">142</Job>
- <Job name="Construct Mechanisms">143</Job>
- <Job name="Forge/Make H">144</Job>
- <Job name="Load Cage Trap">145</Job>
- <Job name="Load Stone Trap">146</Job>
- <Job name="Load Weapon Trap">147</Job>
- <Job name="Clean Trap">148</Job>
- <Job name="Cast Spell">149</Job>
- <Job name="Link a Building to Trigger">150</Job>
- <Job name="Pull the Lever">151</Job>
- <Job name="Brew Drink">152</Job>
- <Job name="?">153</Job>
- <Job name="Extract from Plants">154</Job>
- <Job name="Extract from Raw Fish">155</Job>
- <Job name="Extract from Land Animal">156</Job>
- <Job name="Tame a Small Animal">157</Job>
- <Job name="Tame Large Animal">158</Job>
- <Job name="Chain Animal">159</Job>
- <Job name="Unchain Animal">160</Job>
- <Job name="Unchain Pet">161</Job>
- <Job name="Releasing Large Creature">162</Job>
- <Job name="Releasing Pet">163</Job>
- <Job name="Releasing Small Creature">164</Job>
- <Job name="Handling Small Creature">165</Job>
- <Job name="Handling Large Creature">166</Job>
- <Job name="Large Creature Caging">167</Job>
- <Job name="Small Creature Caging">168</Job>
- <Job name="Recover Wounded">169</Job>
- <Job name="Drain Aquarium">170</Job>
- <Job name="Fill Aquarium">171</Job>
- <Job name="Fill Pond">172</Job>
- <Job name="Give Water A">173</Job>
- <Job name="Give Food A">174</Job>
- <Job name="Give Water B">175</Job>
- <Job name="Give Food B">176</Job>
- <Job name="Recover Pet">177</Job>
- <Job name="Pit/Pond Large Animal">178</Job>
- <Job name="Pit/Pond Small Animal">179</Job>
- <Job name="Slaughter Animal">180</Job>
- <Job name="Make Charcoal">181</Job>
- <Job name="Make Ash">182</Job>
- <Job name="Make Lye">183</Job>
- <Job name="Make Potash From Lye">184</Job>
- <Job name="Make Pearlash">185</Job>
- <Job name="Render Fat">186</Job>
- <Job name="Make Soap">187</Job>
- <Job name="Fertilize Field">188</Job>
- <Job name="Make Potash From Ash">189</Job>
- <Job name="Dye Thread">190</Job>
- <Job name="Dye Cloth">191</Job>
- <Job name="Sew Image">192</Job>
- <Job name="Forge Tube">193</Job>
- <Job name="Operate Pump">194</Job>
- <Job name="Manage Work Orders">195</Job>
- <Job name="Update Stockpile Records">196</Job>
- <Job name="Trade at Depot">197</Job>
- <Job name="Construct Hatch Cover">198</Job>
- <Job name="Construct Grate">199</Job>
- <Job name="Remove Stairs/Ramps">200</Job>
- <Job name="Construct Quern">201</Job>
- <Job name="Construct Millstone">202</Job>
- <Skill name="Miner">0</Skill>
- <Skill name="Wood Cutter">1</Skill>
- <Skill name="Carpenter">2</Skill>
- <Skill name="Engraver">3</Skill>
- <Skill name="Mason">4</Skill>
- <Skill name="Animal Trainer">5</Skill>
- <Skill name="Animal Caretaker">6</Skill>
- <Skill name="Fish Dissector">7</Skill>
- <Skill name="Animal Dissector">8</Skill>
- <Skill name="Fish Cleaner">9</Skill>
- <Skill name="Butcher">10</Skill>
- <Skill name="Trapper">11</Skill>
- <Skill name="Tanner">12</Skill>
- <Skill name="Weaver">13</Skill>
- <Skill name="Brewer">14</Skill>
- <Skill name="Alchemist">15</Skill>
- <Skill name="Clothier">16</Skill>
- <Skill name="Miller">17</Skill>
- <Skill name="Thresher">18</Skill>
- <Skill name="Cheese Maker">19</Skill>
- <Skill name="Milker">20</Skill>
- <Skill name="Cook">21</Skill>
- <Skill name="Grower">22</Skill>
- <Skill name="Herbalist">23</Skill>
- <Skill name="Fisherman">24</Skill>
- <Skill name="Furnace Operator">25</Skill>
- <Skill name="Strand Extractor">26</Skill>
- <Skill name="Weaponsmith">27</Skill>
- <Skill name="Armorer">28</Skill>
- <Skill name="Metalsmith">29</Skill>
- <Skill name="Gem Cutter">30</Skill>
- <Skill name="Gem Setter">31</Skill>
- <Skill name="Woodcrafter">32</Skill>
- <Skill name="Stone Crafter">33</Skill>
- <Skill name="Metal Crafter">34</Skill>
- <Skill name="Glassmaker">35</Skill>
- <Skill name="Leatherworker">36</Skill>
- <Skill name="Bone Carver">37</Skill>
- <Skill name="Wrestler">38</Skill>
- <Skill name="Axeman">39</Skill>
- <Skill name="Swordsman">40</Skill>
- <Skill name="Knife User">41</Skill>
- <Skill name="Maceman">42</Skill>
- <Skill name="Hammerman">43</Skill>
- <Skill name="Spearman">44</Skill>
- <Skill name="Marksman">45</Skill>
- <Skill name="Shield User">46</Skill>
- <Skill name="Armor User">47</Skill>
- <Skill name="Siege Engineer">48</Skill>
- <Skill name="Siege Operator">49</Skill>
- <Skill name="Bowyer">50</Skill>
- <Skill name="Pikeman">51</Skill>
- <Skill name="Lasher">52</Skill>
- <Skill name="Bowman">53</Skill>
- <Skill name="Blowgunner">54</Skill>
- <Skill name="Thrower">55</Skill>
- <Skill name="Mechanic">56</Skill>
- <Skill name="Druid">57</Skill>
- <Skill name="Ambusher">58</Skill>
- <Skill name="Building Designer">59</Skill>
- <Skill name="Woodburner">60</Skill>
- <Skill name="Lye Maker">61</Skill>
- <Skill name="Soaper">62</Skill>
- <Skill name="Potash Maker">63</Skill>
- <Skill name="Dyer">64</Skill>
- <Skill name="Pump Operator">65</Skill>
- <Skill name="Swimmer">66</Skill>
- <Skill name="Persuader">67</Skill>
- <Skill name="Negotiator">68</Skill>
- <Skill name="Judge of Intent">69</Skill>
- <Skill name="Appraiser">70</Skill>
- <Skill name="Organizer">71</Skill>
- <Skill name="Record Keeper">72</Skill>
- <Skill name="Liar">73</Skill>
- <Skill name="Intimidator">74</Skill>
- <Skill name="Conversationalist">75</Skill>
- <Skill name="Comedian">76</Skill>
- <Skill name="Flatterer">77</Skill>
- <Skill name="Consoler">78</Skill>
- <Skill name="Pacifier">79</Skill>
- <Trait name="Nervousness" level_5="Is a nervous wreck" level_4="Is always tense and jittery" level_3="Is often nervous" level_2="Has a calm demeanor" level_1="Has a very calm demeanor" level_0="Has an incredibly calm demeanor">0</Trait>
- <Trait name="Rage" level_5="In a constant state of internal rage" level_4="Very quick to anger" level_3="Quick to anger" level_2="Slow to anger" level_1="Very slow to anger" level_0="Never becomes angry">1</Trait>
- <Trait name="Depression" level_5="Frequently depressed" level_4="Often sad and dejected" level_3="Often feels discouraged" level_2="Rarely feels discouraged" level_1="Almost never feels discouraged" level_0="Never feels discouraged">2</Trait>
- <Trait name="Neurosis" level_5="Socially crippled by thoughts that everyone is watching and judging" level_4="Concerned about rejection and ridicule" level_3="Self-conscious" level_2="Comfortable in social situations" level_1="Very comfortable in social situations" level_0="Absolutely unfazed by the opinions of others">3</Trait>
- <Trait name="Urge" level_5="Is ruled by irresistible cravings and urges" level_4="Feels strong urges and seeks short-term rewards" level_3="Occassionally overindulges" level_2="Doesn't often experience strong cravings or urges" level_1="Only rarely feels strong cravings or urges" level_0="Never feels tempted to overindulge in anything">4</Trait>
- <Trait name="Stress" level_5="Becomes completely helpless in stressful situations" level_4="Cracks easily under pressure" level_3="Doesn't handle stress well" level_2="Can handle stress" level_1="Confident under pressure" level_0="Impervious to the effects of stress">5</Trait>
- <Trait name="Friendly" level_5="Genuinely likes others, openly expresses positive feelings" level_4="Makes friends quickly" level_3="Very friendly" level_2="Somewhat reserved" level_1="Very distant and reserved" level_0="Does not actively seek friendships, incredibly distant and reserved">6</Trait>
- <Trait name="Company" level_5="Truly treasures the company of others" level_4="Enjoys being in crowds" level_3="Enjoys the company of others" level_2="Tends to avoid crowds" level_1="Prefers to be alone" level_0="Considers time alone much more important than associating with others">7</Trait>
- <Trait name="Leadership" level_5="Loves to take charge and direct activities" level_4="Very assertive" level_3="Assertive" level_2="Unassertive" level_1="Prefers that others handle the leadership roles" level_0="Never speaks out or attempts to direct activities">8</Trait>
- <Trait name="Activeness" level_5="Constantly active and energetic" level_4="Very energetic and active" level_3="Very active" level_2="Relaxed" level_1="Lives life at a leisurely pace" level_0="Can't be bothered with frantic, fast-paced living">9</Trait>
- <Trait name="Thrillseeking" level_5="Lives for risk and excitement" level_4="A risk-taker and a thrill-seeker" level_3="Loves a good thrill" level_2="Is not a risk-taker" level_1="Doesn't need thrills or risks in life" level_0="Entirely adverse to risk and excitement">10</Trait>
- <Trait name="Optimism" level_5="Often feels filled with joy" level_4="Can be very happy and optimistic" level_3="Often cheerful" level_2="Rarely happy or enthusiastic" level_1="A pessimist" level_0="Never optimistic or enthusiastic about anything">11</Trait>
- <Trait name="Imagination" level_5="Bored by reality and has a wonderful imagination" level_4="Incredibly creative" level_3="Has a fertile imagination" level_2="Isn't given to flights of fancy" level_1="Grounded in reality" level_0="Interested only in facts and the real world">12</Trait>
- <Trait name="Artistic" level_5="Can easily become absorbed in art and the beauty of the natural world" level_4="Greatly appreciates art and natural beauty" level_3="Appreciates art and natural beauty" level_2="Does not have a great aesthetic sensitivity" level_1="Not interested in art" level_0="Completely uninterested in art">13</Trait>
- <Trait name="Emotion" level_5="Has a profound understanding of own emotions" level_4="Has a great awareness of own emotions" level_3="Has a good awareness of own emotions" level_2="Tends not to openly express emotions" level_1="Mostly unaware of own emotions and rarely expresses them" level_0="Does not display own emotions and has no awareness of them">14</Trait>
- <Trait name="Adventure" level_5="Highly adventurous and loves fresh experiences" level_4="Eager for new experiences" level_3="Likes to try new things" level_2="Prefers familiar routines" level_1="Uncomfortable with change" level_0="Resistant to change">15</Trait>
- <Trait name="Thinking" level_5="Entranced by riddles and puzzles; loves to debate issues and ideas" level_4="Loves new and fresh ideas" level_3="Open-minded to new ideas" level_2="Dislikes intellectual discussions" level_1="Regards intellectual exercises as a waste of energy" level_0="Completely uninterested in ideas and debates over intellectual issues">16</Trait>
- <Trait name="Rebelliousness" level_5="Revels in chaos and disorder" level_4="Loves to defy convention" level_3="Put off by authority and tradition" level_2="Admires tradition" level_1="Prefers stability and security to ambiguity and disorder" level_0="An ardent believer in convention and traditional society">17</Trait>
- <Trait name="Trusting" level_5="Naturally trustful of everybody" level_4="Very trusting" level_3="Trusting" level_2="Slow to trust others" level_1="Does not trust others" level_0="Sees others as selfish and conniving">18</Trait>
- <Trait name="Honesty" level_5="Incredibly frank and candid in dealings with others" level_4="Very straightforward with others" level_3="Candid and sincere in dealings with others" level_2="Guarded in relationships with others" level_1="Not straightforward when dealing with others" level_0="Believes that some deception is necessary in relationships with others">19</Trait>
- <Trait name="Helpfulness" level_5="Truly fulfilled by assisting those in need" level_4="Finds helping others very rewarding" level_3="Finds helping others rewarding" level_2="Does not go out of own way to help others" level_1="Dislikes helping others" level_0="Views helping others as an imposition on own needs">20</Trait>
- <Trait name="Compromising" level_5="Sacrifices own needs to get along with others" level_4="Dislikes confrontations" level_3="Willing to compromise with others" level_2="Doesn't like to compromise with others" level_1="Would rather intimidate others than compromise with them" level_0="Would never deny own needs just to compromise with somebody else">21</Trait>
- <Trait name="Modesty" level_5="Would never claim to be better than somebody else" level_4="Finds immodesty distasteful" level_3="Modest" level_2="Immodest" level_1="Very willing to compare self favorably with others" level_0="Would never shy away from an opportunity to say they are better than somebody else">22</Trait>
- <Trait name="Compassion" level_5="Incredibly compassionate and feels the pain of others" level_4="Easily moved to pity" level_3="Compassionate" level_2="Not easily moved to pity" level_1="Not affected by the suffering of others" level_0="Would never let an objective judgement be tempered by mercy or pity">23</Trait>
- <Trait name="Confidence" level_5="Incredibly confident" level_4="Very confident" level_3="Confident" level_2="Lacks confidence" level_1="Does not feel effective in life" level_0="Always feels as if they are not in control of own life">24</Trait>
- <Trait name="Organization" level_5="Loves to make lists and keep schedules" level_4="Tries to live a well-organized life" level_3="Organized" level_2="Disorganized" level_1="Very disorganized" level_0="Completely disorganized">25</Trait>
- <Trait name="Lawfulness" level_5="Has a profound sense of duty and obligation" level_4="Has a strong sense of duty" level_3="Has a sense of duty" level_2="Finds rules confining" level_1="Dislikes contracts and regulations" level_0="Hates rules, contracts and other confining elements in own life">26</Trait>
- <Trait name="Excellence" level_5="Constantly strives for perfection" level_4="Thinks it is incredibly important to strive for excellence" level_3="Strives for excellence" level_2="Doesn't go out of own way to do more work than necessary" level_1="Very rarely does more work than necessary" level_0="Does the bare minimum necessary to accomplish the task at hand">27</Trait>
- <Trait name="Perseverance" level_5="Will persist in the face of any difficulty until the task is complete" level_4="Possesses great willpower" level_3="Is self-disciplined" level_2="Is occasionally given to procrastination" level_1="Has very little self-discipline" level_0="Rarely completes tasks and is often overcome by distractions">28</Trait>
- <Trait name="Cautiousness" level_5="Thinks through every alternative and their consequences before acting" level_4="Extremely cautious" level_3="Takes time when making decisions" level_2="Often does the first thing that comes to mind" level_1="Acts impulsively" level_0="Always acts without considering alternatives or thinking through possibilities">29</Trait>
- <Labor name="Mining">0</Labor>
- <Labor name="Bowyer">66</Labor>
- <Labor name="Carpentry">11</Labor>
- <Labor name="Wood Cutting">10</Labor>
- <Labor name="Masonry">13</Labor>
- <Labor name="Stone Detailing">12</Labor>
- <Labor name="Architecture">14</Labor>
- <Labor name="Animal Training">15</Labor>
- <Labor name="Animal Care">16</Labor>
- <Labor name="Animal Dissection">20</Labor>
- <Labor name="Hunting">38</Labor>
- <Labor name="Trapping">19</Labor>
- <Labor name="Armor Smithing">41</Labor>
- <Labor name="Furnace Operating">39</Labor>
- <Labor name="MetalCrafting">43</Labor>
- <Labor name="Blacksmithing">42</Labor>
- <Labor name="Weaponsmithing">40</Labor>
- <Labor name="Gemcutting">44</Labor>
- <Labor name="Gemsetting">45 </Labor>
- <Labor name="BoneCarving">48</Labor>
- <Labor name="Clothesmaking">27</Labor>
- <Labor name="GlassMaking">49</Labor>
- <Labor name="LeatherWorking">21</Labor>
- <Labor name="Stonecrafting">47</Labor>
- <Labor name="Weaving">26</Labor>
- <Labor name="Woodcrafting">46</Labor>
- <Labor name="Strand Extracting">50</Labor>
- <Labor name="Brewing">23</Labor>
- <Labor name="Butchery">18</Labor>
- <Labor name="Cheesemaking">30</Labor>
- <Labor name="Cooking">32</Labor>
- <Labor name="Dyeing">71</Labor>
- <Labor name="Farming">33</Labor>
- <Labor name="Plant Gathering">34</Labor>
- <Labor name="Lye Making">70</Labor>
- <Labor name="Milking">31</Labor>
- <Labor name="Milling">28</Labor>
- <Labor name="Potash Making">69</Labor>
- <Labor name="Soapmaking">25</Labor>
- <Labor name="Tanning">22</Labor>
- <Labor name="Plant Processing ">29</Labor>
- <Labor name="Wood Burning">72</Labor>
- <Labor name="Fishing">35</Labor>
- <Labor name="Fish Cleaning">36</Labor>
- <Labor name="Fish Dissection">37</Labor>
- <Labor name="Mechanics">67</Labor>
- <Labor name="Pump Operating">73</Labor>
- <Labor name="Siege Engineering">64</Labor>
- <Labor name="Siege Operating">65</Labor>
- <Labor name="Health Care">17</Labor>
- <Labor name="Animal Hauling">8</Labor>
- <Labor name="Wood Hauling">2</Labor>
- <Labor name="Item Hauling">6</Labor>
- <Labor name="Food Hauling">4</Labor>
- <Labor name="Stone Hauling">1</Labor>
- <Labor name="Refuse Hauling">5</Labor>
- <Labor name="Furniture Hauling">7</Labor>
- <Labor name="Cleaning">9</Labor>
- <Labor name="Burial">3</Labor>
- <Labor name="Alchemy">24</Labor>
- <Labor name="[Axe]">51</Labor>
- <Labor name="[Sword]">52</Labor>
- <Labor name="[Mace]">53</Labor>
- <Labor name="[Hammer]">54</Labor>
- <Labor name="[Spear]">55</Labor>
- <Labor name="[Crossbow]">57</Labor>
- <Labor name="[Unarmed]">-1</Labor>
- <VTable name="building_vtable">
- <multiclass name="building_workshop" typeoffset="0xC8">
- <class name="building_alchemists_laboratory" type="0x0"/>
- <class name="building_carpenters_workshop" type="0x1"/>
- <class name="building_farmers_workshop" type="0x2"/>
- <class name="building_masons_workshop" type="0x3"/>
- <class name="building_craftdwarfs_workshop" type="0x4"/>
- <class name="building_jewelers_workshop" type="0x5"/>
- <class name="building_metalsmiths_workshop" type="0x6"/>
- <class name="building_magma_forge" type="0x7"/>
- <class name="building_bowyers_workshop" type="0x8"/>
- <class name="building_mechanics_workshop" type="0x9"/>
- <class name="building_siege_workshop" type="0xA"/>
- <class name="building_butchers_shop" type="0xB"/>
- <class name="building_leather_works" type="0xC"/>
- <class name="building_tanners_shop" type="0xD"/>
- <class name="building_clothiers_shop" type="0xE"/>
- <class name="building_fishery" type="0xF"/>
- <class name="building_still" type="0x10"/>
- <class name="building_loom" type="0x11"/>
- <class name="building_quern" type="0x12"/>
- <class name="building_kennels" type="0x13"/>
- <class name="building_kitchen" type="0x14"/>
- <class name="building_ashery" type="0x15"/>
- <class name="building_dyers_shop" type="0x16"/>
- <class name="building_millstone" type="0x17"/>
- </multiclass>
- <multiclass name="building_furnace" typeoffset="0xDA">
- <class name="building_wood_furnace" type="0x0"/>
- <class name="building_smelter" type="0x1"/>
- <class name="building_glass_furnace" type="0x2"/>
- <class name="building_kiln" type="0x3"/>
- <class name="building_magma_smelter" type="0x4"/>
- <class name="building_magma_glass_furnace" type="0x5"/>
- <class name="building_magma_kiln" type="0x6"/>
- </multiclass>
- <multiclass name="building_siegeengine" typeoffset="0xC8">
- <class name="building_catapult" type="0x0"/>
- <class name="building_ballista" type="0x1"/>
- </multiclass>
- <multiclass name="building_trap" typeoffset="0xC8">
- <class name="building_lever" type="0x0"/>
- <class name="building_pressure_plate" type="0x1"/>
- <class name="building_cage_trap" type="0x2"/>
- <class name="building_stonefall_trap" type="0x3"/>
- <class name="building_weapon_trap" type="0x4"/>
- </multiclass>
- <class name="building_construction"/>
- <class name="building_road_paved"/>
- <class name="building_road_dirt"/>
- <class name="building_road"/>
- <class name="building_wagon"/>
- <class name="building_tradedepot"/>
- <class name="building_animaltrap"/>
- <class name="building_farmplot"/>
- <class name="building_window"/>
- <class name="building_statue"/>
- <class name="building_well"/>
- <class name="building_coffin"/>
- <class name="building_shop"/>
- <class name="building_chair"/>
- <class name="building_table"/>
- <class name="building_bed"/>
- <class name="building_cage"/>
- <class name="building_chain"/>
- <class name="building_windmill"/>
- <class name="building_water_wheel"/>
- <class name="building_screw_pump"/>
- <class name="building_archerytarget"/>
- <class name="building_weapon"/>
- <!-- retractable spikes -->
- <class name="building_support"/>
- <class name="building_axle_vertical"/>
- <class name="building_axle_horizontal"/>
- <class name="building_gear_assembly"/>
- <class name="building_bars_floor"/>
- <class name="building_bars_vertical"/>
- <class name="building_grate_floor"/>
- <class name="building_grate_wall"/>
- <class name="building_floodgate"/>
- <class name="building_bridge"/>
- <class name="building_hatch"/>
- <class name="building_door"/>
- <class name="building_armorstand"/>
- <class name="building_weaponrack"/>
- <class name="building_cabinet"/>
- <class name="building_box"/>
- <class name="building_actual"/>
- <class name="building_civzone"/>
- <class name="building_stockpile"/>
- <class name="building_window_gem"/>
- <class name="building_window_glass"/>
- </VTable>
- </Entry>
-
-
- .,:rsr,
- :2;,;r2A@@5
- @2::s5A#@@@ @r. .
- sd;:riXA#@@ :@@@Gir;;AS9
- Bs::sS3A#@2 @@#AhXirsS#;
- iHrLr5d#@@@ .@#95sr;;rie
- i*' `*@3 @@A2sr;:;r#5
- :..:rll: @@A5sr::r3@
- @Hr;iZ#@@@@ `:rr;;;;:
- S@r.;i2#@@@ @s. ..
- @2::ri2A@@# B@G2ir:...5i
- :@r,r3X##@@ @G5sr:..,:A
- .@Ar;;rSB@@# H#2sr;,..,is
- .' `* ,@ASs;:..,:B
- ;rr;:,..,:.
- `'''
- W I N D O W S
- and
- W I N E
-
- <Entry version="v0.27.176.38a" os="windows" id="38awin" base="meta-40d">
- <HexValue name="pe_timestamp">0x47b6fac2</HexValue>
- <String name="md5">48c831b6f3950913b8e1aeada563d2db</String>
- <Offset name="hacked_vector_start">0x0</Offset><!-- where a vector actually starts -->
- <Offset name="hacked_vector_triplet">0x4</Offset><!-- where the vector triplet is -->
- <Address name="buildings">0x014639f4</Address>
- <Address name="constructions">0x01463288</Address>
- <Address name="creatures">0x01463388</Address>
- <Address name="current_cursor_creature">0x00c7bc00</Address>
- <Address name="current_menu_state">0x01287d14</Address>
- <Address name="cursor_xyz">0x00941288</Address>
- <Address name="hotkey_start">0x01287a9c</Address>
- <Address name="items">0x01463358</Address>
- <Address name="language_vector">0x014a6994</Address>
- <Address name="map_data">0x014a4eac</Address>
- <Address name="matgloss">0x014a6834</Address>
- <Address name="notes">0xffffffff</Address>
- <Address name="pause_state">0x8b010127</Address>
- <Address name="region_x">0x014a4edc</Address>
- <Address name="region_y">0x014a4ee0</Address>
- <Address name="region_z">0x014a4ee4</Address>
- <Address name="settlement_current">0x014a6680</Address>
- <Address name="settlements">0x014a671c</Address>
- <Address name="translation_vector">0x014a69b4</Address>
- <Address name="vegetation">0x01467b78</Address>
- <Address name="view_screen">0x01295d58</Address>
- <Address name="window_dims">0x01284184</Address>
- <Address name="window_x">0x00941288</Address>
- <Address name="window_y">0x00c2358c</Address>
- <Address name="window_z">0x00c68350</Address>
- <Address name="world">0x014a64dc</Address>
- <Address name="x_count">0x014a4ec4</Address>
- <Address name="y_count">0x014a4ec8</Address>
- <Address name="z_count">0x014a4ecc</Address>
- <!-- job object offsets -->
- <Offset name="current_job_id">0x08</Offset>
- <!-- map block offsets -->
- <Offset name="v_vein">0x08</Offset>
- <HexValue name="v_vein_size">0x2C</HexValue>
- <Offset name="type">0x0062</Offset>
- <Offset name="designation">0x0264</Offset>
- <Offset name="occupancy">0x0664</Offset>
- <Offset name="biome_stuffs">0x1D64</Offset>
- <!-- name struct -->
- <Offset name="name_firstname">0x0</Offset>
- <Offset name="name_nickname">0x1C</Offset>
- <Offset name="name_words">0x38</Offset>
- <HexValue name="sizeof_string">0x1C</HexValue>
- <!-- creature offsets -->
- <Offset name="creature_name">0x00</Offset>
- <Offset name="creature_custom_profession">0x6c</Offset>
- <Offset name="creature_profession">0x88</Offset>
- <Offset name="creature_race">0x8C</Offset>
- <Offset name="creature_position">0x94</Offset>
- <Offset name="creature_flags1">0xE4</Offset>
- <Offset name="creature_flags2">0xE8</Offset>
- <Offset name="creature_sex">0xF2</Offset>
- <Offset name="creature_id">0xF4</Offset>
- <Offset name="creature_squad_name">0x158</Offset>
- <Offset name="creature_mood">0x1F8</Offset>
- <Offset name="creature_pregnancy">0x1FC</Offset>
- <Offset name="creature_squad_leader_id">0x228</Offset>
- <Offset name="creature_money">0x2F8</Offset>
- <Offset name="creature_current_job">0x2AC</Offset>
- <Offset name="creature_blood_max">0x328</Offset>
- <Offset name="creature_blood_current">0x32C</Offset>
- <Offset name="creature_bleed">0x330</Offset>
- <Offset name="creature_artifact_name">0x3CC</Offset>
- <Offset name="creature_strength">0x438</Offset>
- <Offset name="creature_agility">0x43C</Offset>
- <Offset name="creature_toughness">0x440</Offset>
- <Offset name="creature_skills">0x444</Offset>
- <Offset name="creature_likes">0x454</Offset>
- <Offset name="creature_labors">0x474</Offset>
- <Offset name="creature_happiness">0x520</Offset>
- <Offset name="creature_traits">0x5D0</Offset>
- <!-- tree and shrub offsets -->
- <Offset name="tree_desc_offset">0x70</Offset>
- <!-- the world and its offsets -->
- <Offset name="world_size_x">0x84</Offset>
- <Offset name="world_size_y">0x86</Offset>
- <Offset name="w_geoblocks">0x684</Offset>
- <Offset name="w_regions_arr">0x6B4</Offset>
- <!-- values for the region structure -->
- <HexValue name="region_size">0x5C</HexValue>
- <Offset name="region_geo_index_off">0x58</Offset>
- <!-- geoblock offset(s?) -->
- <Offset name="geolayer_geoblock_offset">0x4</Offset>
- <!-- matgloss vectors -->
- <HexValue name="matgloss_skip">0x10</HexValue>
- <!-- only stone and metal have color loaded... -->
- <Offset name="matgloss_stone_color">0x84</Offset>
- <Offset name="matgloss_metal_color">0x60</Offset>
- <Offset name="v_vein">0x08</Offset>
- <HexValue name="v_vein_size">0x2C</HexValue>
- <Offset name="type">0x0062</Offset>
- <Offset name="designation">0x0264</Offset>
- <Offset name="occupancy">0x0664</Offset>
- <Offset name="biome_stuffs">0x1D64</Offset>
- <Offset name="word_table">0x3C</Offset>
- <Offset name="note_foreground">0x2</Offset>
- <Offset name="note_background">0x4</Offset>
- <Offset name="note_name">0x8</Offset>
- <Offset name="note_xyz">0x24</Offset>
- <Offset name="hotkey_mode">0x1C</Offset>
- <Offset name="hotkey_xyz">0x20</Offset>
- <Offset name="settlement_name">0x00</Offset>
- <Offset name="settlement_world_xy">0x7a</Offset>
- <Offset name="settlement_local_xy">0xD8</Offset>
- <Offset name="item_materials">0x68</Offset>
- <Offset name="item_type_name">0x24</Offset>
- <Offset name="matgloss_creature_name">0x1C</Offset>
- <Offset name="matgloss_wood_name">0x28</Offset>
- <Offset name="matgloss_stone_name">0x24</Offset>
- <Offset name="matgloss_metal_name">0x24</Offset>
- <Offset name="matgloss_plant_name">0x24</Offset>
- <Offset name="matgloss_plant_drink">0x5C</Offset>
- <Offset name="matgloss_plant_food">0x94</Offset>
- <Offset name="matgloss_plant_extract">0xB0</Offset>
- </Entry>
- <Entry version="v0.27.176.38b" os="windows" id="38bwin" base="38awin">
- <HexValue name="pe_timestamp">0x47c12f36</HexValue>
- <String name="md5">8bd90fb6db8388f129fde224a35459de</String>
- <Address name="buildings">0x01463bec</Address>
- <Address name="constructions">0x01463480</Address>
- <Address name="creatures">0x01463580</Address>
- <Address name="current_cursor_creature">0x00c7bc04</Address>
- <Address name="current_menu_state">0x01287d14</Address>
- <Address name="cursor_xyz">0x0094128c</Address>
- <Address name="hotkey_start">0x01287a9c</Address>
- <Address name="items">0x01463550</Address>
- <Address name="language_vector">0x014a6c60</Address>
- <Address name="map_data">0x014a50a4</Address>
- <Address name="matgloss">0x014a6b00</Address>
- <Address name="notes">0xffffffff</Address>
- <Address name="pause_state">0x8b010127</Address>
- <Address name="region_x">0x014a50d4</Address>
- <Address name="region_y">0x014a50d8</Address>
- <Address name="region_z">0x014a50dc</Address>
- <Address name="settlement_current">0x014a694c</Address>
- <Address name="settlements">0x014a69e8</Address>
- <Address name="translation_vector">0x014a6c80</Address>
- <Address name="vegetation">0x01467d70</Address>
- <Address name="view_screen">0x01295d58</Address>
- <Address name="window_dims">0x01284184</Address>
- <Address name="window_x">0x00c3fb40</Address>
- <Address name="window_y">0x00c23594</Address>
- <Address name="window_z">0x00c68354</Address>
- <Address name="world">0x014a66d4</Address>
- <Address name="x_count">0x014a50bc</Address>
- <Address name="y_count">0x014a50c0</Address>
- <Address name="z_count">0x014a50c4</Address>
- </Entry>
- <Entry version="v0.27.176.38c" os="windows" id="38cwin" base="38bwin" rebase="0x1000">
- <HexValue name="pe_timestamp">0x47c29583</HexValue>
- <String name="md5">9147b5e922a30873fd1a742b1dea1724</String>
- <Address name="notes">0xffffffff</Address>
- <Address name="pause_state">0x8b010127</Address>
- </Entry>
- <Entry version="v0.28.181.39a" os="windows" id="39awin" base="38cwin">
- <HexValue name="pe_timestamp">0x487b4e8b</HexValue>
- <String name="md5">4b3857a05590b9d9488900e575079e9d</String>
- <Address name="buildings">0x01512b70</Address>
- <Address name="constructions">0x014feb80</Address>
- <Address name="creatures">0x01512504</Address>
- <Address name="current_cursor_creature">0x00d16c20</Address>
- <Address name="current_menu_state">0x01322d58</Address>
- <Address name="cursor_xyz">0x009d6284</Address>
- <Address name="hotkey_start">0x01322adc</Address>
- <Address name="items">0x014fec50</Address>
- <Address name="language_vector">0x01555f88</Address>
- <Address name="map_data">0x01554028</Address>
- <Address name="matgloss">0x01555e28</Address>
- <Address name="notes">0xffffffff</Address>
- <Address name="pause_state">0x8b010131</Address>
- <Address name="region_x">0x01554058</Address>
- <Address name="region_y">0x0155405c</Address>
- <Address name="region_z">0x01554060</Address>
- <Address name="settlement_current">0x01555ce8</Address>
- <Address name="settlements">0x01555c6c</Address>
- <Address name="translation_vector">0x01555fa8</Address>
- <Address name="vegetation">0x01516cf4</Address>
- <Address name="view_screen">0x01330d98</Address>
- <Address name="window_dims">0x0131f1b4</Address>
- <Address name="window_x">0x00cd5398</Address>
- <Address name="window_y">0x00cb8dec</Address>
- <Address name="window_z">0x00d03370</Address>
- <Address name="world">0x01555658</Address>
- <Address name="x_count">0x01554040</Address>
- <Address name="y_count">0x01554044</Address>
- <Address name="z_count">0x01554048</Address>
- </Entry>
- <Entry version="v0.28.181.39b" os="windows" id="39bwin" base="39awin" rebase="0x1000">
- <HexValue name="pe_timestamp">0x487c9338</HexValue>
- <String name="md5">52155dea390c2080fc16e4bbeb077164</String>
- <Address name="notes">0xffffffff</Address>
- <Address name="pause_state">0x8b010131</Address>
- </Entry>
- <Entry version="v0.28.181.39c" os="windows" id="39cwin" base="39bwin">
- <HexValue name="pe_timestamp">0x487f2f30</HexValue>
- <String name="md5">8f8cf06b1cd5ea102881a7cced767d4f</String>
- <Address name="buildings">0x01513b90</Address>
- <Address name="constructions">0x014ffba0</Address>
- <Address name="creatures">0x01513524</Address>
- <Address name="current_cursor_creature">0x00d17c44</Address>
- <Address name="current_menu_state">0x01323d78</Address>
- <Address name="cursor_xyz">0x009d7284</Address>
- <Address name="hotkey_start">0xffffffff</Address>
- <!-- fix this -->
- <Address name="items">0x014ffc70</Address>
- <Address name="language_vector">0x01556fa8</Address>
- <Address name="map_data">0x01555048</Address>
- <Address name="matgloss">0x01556e48</Address>
- <Address name="notes">0xffffffff</Address>
- <!-- this is the version prior to notes being implemented -->
- <Address name="pause_state">0x8b010131</Address>
- <Address name="region_x">0x01555078</Address>
- <Address name="region_y">0x0155507c</Address>
- <Address name="region_z">0x01555080</Address>
- <Address name="settlement_current">0x01556d08</Address>
- <Address name="settlements">0x01556c8c</Address>
- <Address name="translation_vector">0x01556fc8</Address>
- <Address name="vegetation">0x01517d14</Address>
- <Address name="view_screen">0x01331db8</Address>
- <Address name="window_dims">0x013201d4</Address>
- <Address name="window_x">0x00cd63bc</Address>
- <Address name="window_y">0x00cb9dec</Address>
- <Address name="window_z">0x00d04394</Address>
- <Address name="world">0x01556678</Address>
- <Address name="x_count">0x01555060</Address>
- <Address name="y_count">0x01555064</Address>
- <Address name="z_count">0x01555068</Address>
- </Entry>
- <Entry version="v0.28.181.39d" os="windows" id="39dwin" base="39cwin">
- <HexValue name="pe_timestamp">0x48873bc3</HexValue>
- <String name="md5">8614a01593baef6e4a341e2f1a92ba06</String>
- <Address name="buildings">0x0151ffb8</Address>
- <Address name="constructions">0x0150bfc8</Address>
- <Address name="creatures">0x0151f94c</Address>
- <Address name="current_cursor_creature">0x00d23c4c</Address>
- <Address name="current_menu_state">0x0132fdb0</Address>
- <Address name="cursor_xyz">0x009e3284</Address>
- <Address name="hotkey_start">0x0132fb34</Address>
- <Address name="items">0x0150c098</Address>
- <Address name="language_vector">0x015635cc</Address>
- <Address name="map_data">0x01561470</Address>
- <Address name="matgloss">0x0156346c</Address>
- <Address name="notes">0x0132faac</Address>
- <Address name="pause_state">0x8b010131</Address>
- <Address name="region_x">0x015614a0</Address>
- <Address name="region_y">0x015614a4</Address>
- <Address name="region_z">0x015614a8</Address>
- <Address name="settlement_current">0x01563154</Address>
- <Address name="settlements">0x015630d8</Address>
- <Address name="translation_vector">0x015635ec</Address>
- <Address name="vegetation">0x0152413c</Address>
- <Address name="view_screen">0x0133ddf0</Address>
- <Address name="window_dims">0x0132c1dc</Address>
- <Address name="window_x">0x00ce23c4</Address>
- <Address name="window_y">0x00cc5df4</Address>
- <Address name="window_z">0x00d1039c</Address>
- <Address name="world">0x01562aa0</Address>
- <Address name="x_count">0x01561488</Address>
- <Address name="y_count">0x0156148c</Address>
- <Address name="z_count">0x01561490</Address>
- </Entry>
- <Entry version="v0.28.181.39e" os="windows" id="39ewin" base="39dwin" rebase="0x0">
- <HexValue name="pe_timestamp">0x4888672c</HexValue>
- <String name="md5">32f68422f5b4d938549eed0565bcfb92</String>
- </Entry>
- <Entry version="v0.28.181.39f" os="windows" id="39fwin" base="39ewin">
- <HexValue name="pe_timestamp">0x489d8c7f</HexValue>
- <String name="md5">33db0401081058fb54252210bf371344</String>
- <Address name="buildings">0x01576468</Address>
- <Address name="constructions">0x01562478</Address>
- <Address name="creatures">0x01575dfc</Address>
- <Address name="current_cursor_creature">0x00d7a0fc</Address>
- <Address name="current_menu_state">0x01386260</Address>
- <Address name="cursor_xyz">0x009ef294</Address>
- <Address name="hotkey_start">0x01385fe4</Address>
- <Address name="items">0x01562548</Address>
- <Address name="language_vector">0x015b9a7c</Address>
- <Address name="map_data">0x015b7920</Address>
- <Address name="matgloss">0x015b991c</Address>
- <Address name="notes">0x01385f5c</Address>
- <Address name="pause_state">0x5f010137</Address>
- <Address name="region_x">0x015b7950</Address>
- <Address name="region_y">0x015b7954</Address>
- <Address name="region_z">0x015b7958</Address>
- <Address name="settlement_current">0x015b9604</Address>
- <Address name="settlements">0x015b9588</Address>
- <Address name="translation_vector">0x015b9a9c</Address>
- <Address name="vegetation">0x0157a5ec</Address>
- <Address name="view_screen">0x013942a0</Address>
- <Address name="window_dims">0x0138268c</Address>
- <Address name="window_x">0x00d387fc</Address>
- <Address name="window_y">0x00d66870</Address>
- <Address name="window_z">0x00d6684c</Address>
- <Address name="world">0x015b8f50</Address>
- <Address name="x_count">0x015b7938</Address>
- <Address name="y_count">0x015b793c</Address>
- <Address name="z_count">0x015b7940</Address>
- </Entry>
- <Entry version="v0.28.181.40a" os="windows" id="40awin" base="39fwin">
- <HexValue name="pe_timestamp">0x48a9727f</HexValue>
- <String name="md5">441c76f45cfffc6abc6548e41c7e2218</String>
- <Address name="buildings">0x015828a8</Address>
- <Address name="constructions">0x0156e8b8</Address>
- <Address name="creatures">0x0158223c</Address>
- <Address name="current_cursor_creature">0x00d860fc</Address>
- <Address name="current_menu_state">0x01392268</Address>
- <Address name="cursor_xyz">0x009fb294</Address>
- <Address name="hotkey_start">0x01391fc0</Address>
- <Address name="items">0x0156e988</Address>
- <Address name="language_vector">0x015c5ecc</Address>
- <Address name="map_data">0x015c3d60</Address>
- <Address name="matgloss">0x015c5d6c</Address>
- <Address name="notes">0x01391f64</Address>
- <Address name="pause_state">0x5f010138</Address>
- <Address name="region_x">0x015c3d90</Address>
- <Address name="region_y">0x015c3d94</Address>
- <Address name="region_z">0x015c3d98</Address>
- <Address name="settlement_current">0x015c5a54</Address>
- <Address name="settlements">0x015c59c8</Address>
- <Address name="translation_vector">0x015c5eec</Address>
- <Address name="vegetation">0x01586a2c</Address>
- <Address name="view_screen">0x013a02a8</Address>
- <Address name="window_dims">0x0138e694</Address>
- <Address name="window_x">0x00d447fc</Address>
- <Address name="window_y">0x00d72870</Address>
- <Address name="window_z">0x00d7284c</Address>
- <Address name="world">0x015c5390</Address>
- <Address name="x_count">0x015c3d78</Address>
- <Address name="y_count">0x015c3d7c</Address>
- <Address name="z_count">0x015c3d80</Address>
- </Entry>
- <Entry version="v0.28.181.40b" os="windows" id="40bwin" base="40awin" rebase="0x0">
- <HexValue name="pe_timestamp">0x48ad547a</HexValue>
- <String name="md5">65b4fa339d4081e934c1297d2a22234a</String>
- </Entry>
- <Entry version="v0.28.181.40c" os="windows" id="40cwin" base="40bwin" rebase="0x0">
- <HexValue name="pe_timestamp">0x48ad802b</HexValue>
- <String name="md5">15e95727019e76aa653538618c7e0cfd</String>
- </Entry>
- <Entry version="v0.28.181.40d" os="windows" id="40dwin" base="40cwin">
- <HexValue name="pe_timestamp">0x48c330df</HexValue>
- <String name="md5">2c686c26307dcccd7c36cc79737ebe4f</String>
- <Address name="buildings">0x015838a0</Address>
- <Address name="constructions">0x0156f8b0</Address>
- <Address name="creatures">0x01583234</Address>
- <Address name="current_cursor_creature">0x00D870F4</Address>
- <Address name="current_menu_state">0x01393260</Address>
- <Address name="cursor_xyz">0x009fc294</Address>
- <Address name="effects_vector">0x1583234</Address>
- <Address name="hotkey_start">0x01392fb8</Address>
- <Address name="items">0x0156f980</Address>
- <Address name="language_vector">0x015c6ed0</Address>
- <Address name="map_data">0x015c4d58</Address>
- <Address name="matgloss">0x015c6d70</Address>
- <Address name="notes">0x01392f5c</Address>
- <Address name="pause_state">0x0138147f</Address>
- <Address name="region_x">0x015c4d88</Address>
- <Address name="region_y">0x015c4d8c</Address>
- <Address name="region_z">0x015c4d90</Address>
- <Address name="settlement_current">0x015c6a58</Address>
- <Address name="settlements">0x015c69cc</Address>
- <Address name="translation_vector">0x015c6ef0</Address>
- <Address name="vegetation">0x01587a24</Address>
- <Address name="view_screen">0x013a12a0</Address>
- <Address name="window_dims">0x0138f68c</Address>
- <Address name="window_x">0x00d457f4</Address>
- <Address name="window_y">0x00d73868</Address>
- <Address name="window_z">0x00d73844</Address>
- <Address name="world">0x015c6388</Address>
- <Address name="x_count">0x015c4d70</Address>
- <Address name="y_count">0x015c4d74</Address>
- <Address name="z_count">0x015c4d78</Address>
- </Entry>
- <!-- Windows 40d## sub-versions, should inherit only vtable from 40d -->
- <Entry version="v0.28.181.40d2" os="windows" id="40d2win" base="40dwin">
- <HexValue name="pe_timestamp">0x4953556c</HexValue>
- <String name="md5">b1a8ca1f91734eb492b7f54f6823cddb</String>
- <Offset name="hacked_vector_start">-0x8</Offset><!-- where a vector actually starts -->
- <Offset name="hacked_vector_triplet">0x4</Offset><!-- where the vector triplet is -->
- <Address name="buildings">0x014d1db0</Address>
- <Address name="constructions">0x014bda18</Address>
- <Address name="creatures">0x014D141C</Address>
- <Address name="current_cursor_creature">0x00cd4c3c</Address>
- <Address name="current_menu_state">0x0165b5a8</Address>
- <Address name="cursor_xyz">0x0094b27c</Address>
- <Address name="effects_vector">0x165b410</Address>
- <Address name="hotkey_start">0x012e101c</Address>
- <Address name="items">0x014d14f8</Address>
- <Address name="language_vector">0x01517678</Address>
- <Address name="map_data">0x015152f8</Address>
- <Address name="matgloss">0x01517468</Address>
- <Address name="notes">0x012e0fe4</Address>
- <Address name="pause_state">0x012cefbf</Address>
- <Address name="region_x">0x01515330</Address>
- <Address name="region_y">0x01515334</Address>
- <Address name="region_z">0x01515338</Address>
- <Address name="settlement_current">0x015170f8</Address>
- <Address name="settlements">0x0151702c</Address>
- <Address name="translation_vector">0x015176a8</Address>
- <Address name="vegetation">0x014d7f84</Address>
- <Address name="view_screen">0x012ef340</Address>
- <Address name="window_dims">0x0165a34c</Address>
- <Address name="window_x">0x00c9333c</Address>
- <Address name="window_y">0x00cc13b0</Address>
- <Address name="window_z">0x00cc138c</Address>
- <Address name="world">0x01516930</Address>
- <Address name="x_count">0x01515318</Address>
- <Address name="y_count">0x0151531c</Address>
- <Address name="z_count">0x01515320</Address>
- <Offset name="word_table">0x54</Offset>
- <!-- name struct -->
- <Offset name="name_firstname">0x0</Offset>
- <Offset name="name_nickname">0x1C</Offset>
- <Offset name="name_words">0x38</Offset>
- <HexValue name="sizeof_string">0x1C</HexValue>
- <!-- TEST! Missing in 40d! -->
- <!-- creature offsets -->
- <Offset name="creature_flags1">0xFC</Offset>
- <Offset name="creature_flags2">0x100</Offset>
- <Offset name="creature_sex">0x10A</Offset>
- <Offset name="creature_id">0x10C</Offset>
- <Offset name="creature_squad_name">0x198</Offset>
- <Offset name="creature_mood">0x238</Offset>
- <Offset name="creature_pregnancy">0x23C</Offset>
- <Offset name="creature_squad_leader_id">0x268</Offset>
- <Offset name="creature_money">0x2F8</Offset>
- <Offset name="creature_current_job">0x314</Offset>
- <Offset name="creature_blood_max">0x3C0</Offset>
- <Offset name="creature_blood_current">0x3C4</Offset>
- <Offset name="creature_bleed">0x3C8</Offset>
- <Offset name="creature_artifact_name">0x484</Offset>
- <Offset name="creature_strength">0x4F0</Offset>
- <Offset name="creature_agility">0x4F4</Offset>
- <Offset name="creature_toughness">0x4F8</Offset>
- <Offset name="creature_skills">0x504</Offset>
- <Offset name="creature_likes">0x51C</Offset>
- <Offset name="creature_labors">0x544</Offset>
- <Offset name="creature_happiness">0x610</Offset>
- <Offset name="creature_traits">0x700</Offset>
- <!-- tree and shrub offsets -->
- <Offset name="tree_desc_offset">0x70</Offset>
- <!-- map block offsets -->
- <Offset name="v_vein">0x10</Offset>
- <HexValue name="v_vein_size">0x2C</HexValue>
- <Offset name="type">0x0082</Offset>
- <Offset name="designation">0x0284</Offset>
- <Offset name="occupancy">0x0684</Offset>
- <Offset name="biome_stuffs">0x1D84</Offset>
- <Offset name="world_size_x">0x84</Offset>
- <Offset name="world_size_y">0x86</Offset>
- <Offset name="w_geoblocks">0x75C</Offset>
- <Offset name="w_regions_arr">0x79C</Offset>
- <!-- values for the region structure -->
- <HexValue name="region_size">0x64</HexValue>
- <Offset name="region_geo_index_off">0x60</Offset>
- <!-- geoblock offset(s?) -->
- <Offset name="geolayer_geoblock_offset">0xC</Offset>
- <Offset name="note_foreground">0x2</Offset>
- <Offset name="note_background">0x4</Offset>
- <Offset name="note_name">0x8</Offset>
- <Offset name="note_xyz">0x24</Offset>
- <Offset name="hotkey_mode">0x1C</Offset>
- <Offset name="hotkey_xyz">0x20</Offset>
- <HexValue name="hotkey_size">0x2C</HexValue>
- <Offset name="settlement_name">0x0</Offset>
- <Offset name="settlement_world_xy">0x7a</Offset>
- <Offset name="settlement_local_xy">0x100</Offset>
- <Offset name="item_materials">0x68</Offset>
- <Offset name="item_type_name">0x24</Offset>
- <!-- matgloss vectors -->
- <HexValue name="matgloss_skip">0x18</HexValue>
- <Offset name="matgloss_creature_name">0x1C</Offset>
- <Offset name="matgloss_wood_name">0x28</Offset>
- <Offset name="matgloss_stone_name">0x24</Offset>
- <Offset name="matgloss_metal_name">0x24</Offset>
- <Offset name="matgloss_plant_name">0x24</Offset>
- <Offset name="matgloss_plant_drink">0x5C</Offset>
- <Offset name="matgloss_plant_food">0x94</Offset>
- <Offset name="matgloss_plant_extract">0xB0</Offset>
- <!-- I am just going to guess these actually start here -->
- <VTable name="building_vtable">
- <multiclass name="building_workshop" typeoffset="0x100"/>
- <multiclass name="building_siegeengine" typeoffset="0x100"/>
- <multiclass name="building_furnace" typeoffset="0x11A"/>
- <multiclass name="building_trap" typeoffset="0x100"/>
- </VTable>
- </Entry>
- <Entry version="v0.28.181.40d3" os="windows" id="40d3win" base="40d2win" rebase="0x2018">
- <HexValue name="pe_timestamp">0x4957716f</HexValue>
- <String name="md5">9b6da355562a4cdd345ea3046290499b</String>
- <Address name="current_cursor_creature">0x00cd6c3c</Address>
- <Address name="cursor_xyz">0x0094d27c</Address>
- <Address name="pause_state">0x012d0fbf</Address>
- <Address name="window_x">0x00c9533c</Address>
- <Address name="window_y">0x00cc33b0</Address>
- <Address name="window_z">0x00cc338c</Address>
- </Entry>
- <Entry version="v0.28.181.40d4" os="windows" id="40d4win" base="40d3win" rebase="0x0">
- <HexValue name="pe_timestamp">0x4957a0a2</HexValue>
- <String name="md5">b77759db7a6dd787bf98953fc5749d81</String>
- </Entry>
- <Entry version="v0.28.181.40d5" os="windows" id="40d5win" base="40d4win" rebase="0x2018">
- <HexValue name="pe_timestamp">0x495991c3</HexValue>
- <String name="md5">a0792b81e5b8ec1dbdd627643e93b40d</String>
- <Address name="current_cursor_creature">0xcd8c34</Address>
- <Address name="cursor_xyz">0x0094f27c</Address>
- <Address name="pause_state">0x012d2fbb</Address>
- <Address name="window_x">0x00c97334</Address>
- <Address name="window_y">0x00cc53a8</Address>
- <Address name="window_z">0x00cc5384</Address>
- </Entry>
- <Entry version="v0.28.181.40d6" os="windows" id="40d6win" base="40d5win" rebase="0x18a08">
- <HexValue name="pe_timestamp">0x495cafd2</HexValue>
- <String name="md5">d09e88a32fe57de5973f78ef213271b6</String>
- <Address name="current_cursor_creature">0xcefc68</Address>
- <Address name="cursor_xyz">0x009662a4</Address>
- <Address name="pause_state">0x012e9fef</Address>
- <Address name="window_x">0x00cae368</Address>
- <Address name="window_y">0x00cdc3dc</Address>
- <Address name="window_z">0x00cdc3b8</Address>
- </Entry>
- <Entry version="v0.28.181.40d7" os="windows" id="40d7win" base="40d6win" rebase="0x190">
- <HexValue name="pe_timestamp">0x495fcfef</HexValue>
- <String name="md5">8e8e2a83d421e356a8047dc8830a7426</String>
- <Address name="current_cursor_creature">0xcefc68</Address>
- <Address name="cursor_xyz">0x009662a4</Address>
- <Address name="pause_state">0x012e9fef</Address>
- <Address name="window_x">0x00cae368</Address>
- <Address name="window_y">0x00cdc3dc</Address>
- <Address name="window_z">0x00cdc3b8</Address>
- </Entry>
- <Entry version="v0.28.181.40d8" os="windows" id="40d8win" base="40d7win" rebase="0x0">
- <HexValue name="pe_timestamp">0x4963c928</HexValue>
- <String name="md5">32253bee114dd25ebbaa50d90b5c0a2a</String>
- </Entry>
- <Entry version="v0.28.181.40d9" os="windows" id="40d9win" base="40d8win" rebase="0x0">
- <HexValue name="pe_timestamp">0x4967c2e0</HexValue>
- <String name="md5">aea5a207b8b1cda942502f97a429f6c3</String>
- </Entry>
- <Entry version="v0.28.181.40d10" os="windows" id="40d10win" base="40d9win">
- <HexValue name="pe_timestamp">0x49c59b94</HexValue>
- <String name="md5">193193d8624f2f3f6d9d556fab09b122</String>
- <Address name="buildings">0x0151bd00</Address>
- <Address name="constructions">0x01507968</Address>
- <Address name="creatures">0x0151b36c</Address>
- <Address name="current_cursor_creature">0x00d20ed8</Address>
- <Address name="current_menu_state">0x016a54f8</Address>
- <Address name="cursor_xyz">0x009652a4</Address>
- <Address name="effects_vector">0x16a5360</Address>
- <Address name="hotkey_start">0x0132e574</Address>
- <Address name="items">0x0151b448</Address>
- <Address name="language_vector">0x015615c8</Address>
- <Address name="map_data">0x0155f248</Address>
- <Address name="matgloss">0x015613b8</Address>
- <Address name="notes">0x0132e53c</Address>
- <Address name="pause_state">0x0131b25f</Address>
- <Address name="region_x">0x0155f280</Address>
- <Address name="region_y">0x0155f284</Address>
- <Address name="region_z">0x0155f288</Address>
- <Address name="settlement_current">0x01561048</Address>
- <Address name="settlements">0x01560f7c</Address>
- <Address name="translation_vector">0x015615f8</Address>
- <Address name="vegetation">0x01521ed4</Address>
- <Address name="view_screen">0x0133c898</Address>
- <Address name="window_dims">0x016a429c</Address>
- <Address name="window_x">0x00cdf5a0</Address>
- <Address name="window_y">0x00d0d64c</Address>
- <Address name="window_z">0x00d0d628</Address>
- <Address name="world">0x01560880</Address>
- <Address name="x_count">0x0155f268</Address>
- <Address name="y_count">0x0155f26c</Address>
- <Address name="z_count">0x0155f270</Address>
- </Entry>
- <Entry version="v0.28.181.40d11" os="windows" id="40d11win" base="40d10win" rebase="0x0">
- <HexValue name="pe_timestamp">0x49c82d3f</HexValue>
- <String name="md5">6f81231b845e9c9dc29aaf57705ccc7c</String>
- </Entry>
- <Entry version="v0.28.181.40d12" os="windows" id="40d12win" base="40d11win">
- <HexValue name="pe_timestamp">0x4a3ccb7f</HexValue>
- <String name="md5">6ea1de36af8e1666bd6478736e298c4c</String>
- <Address name="buildings">0x015b7750</Address>
- <Address name="constructions">0x015a33b8</Address>
- <Address name="creatures">0x015b6dbc</Address>
- <Address name="current_cursor_creature">0x00ddaed8</Address>
- <Address name="current_menu_state">0x0095f410</Address>
- <Address name="cursor_xyz">0x0095f2b4</Address>
- <Address name="effects_vector">0x1740e60</Address>
- <Address name="hotkey_start">0x013e8574</Address>
- <Address name="items">0x015b6e98</Address>
- <Address name="language_vector">0x015fd04c</Address>
- <Address name="map_data">0x015faccc</Address>
- <Address name="matgloss">0x015fce3c</Address>
- <Address name="notes">0x013e853c</Address>
- <Address name="pause_state">0x013d525f</Address>
- <Address name="region_x">0x015fad04</Address>
- <Address name="region_y">0x015fad08</Address>
- <Address name="region_z">0x015fad0c</Address>
- <Address name="settlement_current">0x015fcacc</Address>
- <Address name="settlements">0x015fca00</Address>
- <Address name="translation_vector">0x015fd07c</Address>
- <Address name="vegetation">0x015bd924</Address>
- <Address name="view_screen">0x015b6dc4</Address>
- <Address name="window_dims">0x0173fde0</Address>
- <Address name="window_x">0x00d995a0</Address>
- <Address name="window_y">0x00dc764c</Address>
- <Address name="window_z">0x00dc7628</Address>
- <Address name="world">0x015fc304</Address>
- <Address name="x_count">0x015facec</Address>
- <Address name="y_count">0x015facf0</Address>
- <Address name="z_count">0x015facf4</Address>
- </Entry>
- <Entry version="v0.28.181.40d13" os="windows" id="40d13win" base="40d12win" rebase="0x5090">
- <HexValue name="pe_timestamp">0x4a51c26e</HexValue>
- <String name="md5">04a8d8ce311d8ac75e4241bef68d3147</String>
- <Address name="current_cursor_creature">0x00ddff38</Address>
- <Address name="current_menu_state">0x00964430</Address>
- <Address name="cursor_xyz">0x009642b4</Address>
- <Address name="pause_state">0x013da2bf</Address>
- <Address name="window_x">0x00d9e600</Address>
- <Address name="window_y">0x00dcc6ac</Address>
- <Address name="window_z">0x00dcc688</Address>
- </Entry>
- <Entry version="v0.28.181.40d14" os="windows" id="40d14win" base="40d13win" rebase="0x2010">
- <HexValue name="pe_timestamp">0x4a8623d2</HexValue>
- <String name="md5">781a2e51be4056a7320108f8f0df8a13</String>
- <Address name="current_cursor_creature">0x00de1f44</Address>
- <Address name="current_menu_state">0x00966430</Address>
- <Address name="cursor_xyz">0x009662b4</Address>
- <Address name="pause_state">0x013dc2c7</Address>
- <Address name="window_x">0x00da060c</Address>
- <Address name="window_y">0x00dce6b8</Address>
- <Address name="window_z">0x00dce694</Address>
- </Entry>
- <Entry version="v0.28.181.40d15" os="windows" id="40d15win" base="40d14win">
- <HexValue name="pe_timestamp">0x4a9a6090</HexValue>
- <String name="md5">12cc4a3dbb6e6dfd7bc7aee458b9471a</String>
- <Address name="buildings">0x015be808</Address>
- <Address name="constructions">0x015aa470</Address>
- <Address name="creatures">0x015bde74</Address>
- <Address name="current_cursor_creature">0x00de1f54</Address>
- <Address name="current_menu_state">0x00966430</Address>
- <Address name="cursor_xyz">0x009662b4</Address>
- <Address name="effects_vector">0x1747f20</Address>
- <Address name="hotkey_start">0x013ef62c</Address>
- <Address name="items">0x015bdf50</Address>
- <Address name="language_vector">0x01604104</Address>
- <Address name="map_data">0x01601d84</Address>
- <Address name="matgloss">0x01603ef4</Address>
- <Address name="notes">0x013ef5f4</Address>
- <Address name="pause_state">0x013dc2eb</Address>
- <Address name="region_x">0x01601dbc</Address>
- <Address name="region_y">0x01601dc0</Address>
- <Address name="region_z">0x01601dc4</Address>
- <Address name="settlement_current">0x01603b84</Address>
- <Address name="settlements">0x01603ab8</Address>
- <Address name="translation_vector">0x01604134</Address>
- <Address name="vegetation">0x015c49dc</Address>
- <Address name="view_screen">0x015bde7c</Address>
- <Address name="window_dims">0x01746e98</Address>
- <Address name="window_x">0x00da061c</Address>
- <Address name="window_y">0x00dce6c8</Address>
- <Address name="window_z">0x00dce6a4</Address>
- <Address name="world">0x016033bc</Address>
- <Address name="x_count">0x01601da4</Address>
- <Address name="y_count">0x01601da8</Address>
- <Address name="z_count">0x01601dac</Address>
- </Entry>
- <Entry version="v0.28.181.40d16" os="windows" id="40d16win" base="40d15win" rebase="0x0">
- <HexValue name="pe_timestamp">0x4a9b1a72</HexValue>
- <String name="md5">59ab29021aca9f3c66b1ab102fb3ceea</String>
- </Entry>
- <Entry version="v0.28.181.40d17" os="windows" id="40d17win" base="40d16win">
- <HexValue name="pe_timestamp">0x4b6b7879</HexValue>
- <String name="md5">de66405f54d98297303d439b3b7aa30e</String>
- <Address name="buildings">0x015f3260</Address>
- <Address name="constructions">0x015deec8</Address>
- <Address name="creatures">0x015f28cc</Address>
- <Address name="current_cursor_creature">0x00e16924</Address>
- <Address name="current_menu_state">0x0099ae08</Address>
- <Address name="cursor_xyz">0x0099ac88</Address>
- <Address name="effects_vector">0x177c978</Address>
- <Address name="hotkey_start">0x014240dc</Address>
- <Address name="items">0x015f29a8</Address>
- <Address name="language_vector">0x01638b5c</Address>
- <Address name="map_data">0x016367dc</Address>
- <Address name="matgloss">0x0163894c</Address>
- <Address name="notes">0x014240a4</Address>
- <Address name="pause_state">0x01410cc1</Address>
- <Address name="region_x">0x01636814</Address>
- <Address name="region_y">0x01636818</Address>
- <Address name="region_z">0x0163681c</Address>
- <Address name="settlement_current">0x016385dc</Address>
- <Address name="settlements">0x01638510</Address>
- <Address name="translation_vector">0x01638b8c</Address>
- <Address name="vegetation">0x015f9434</Address>
- <Address name="view_screen">0x014243c4</Address>
- <Address name="window_dims">0x0177b8f0</Address>
- <Address name="window_x">0x00dd4fec</Address>
- <Address name="window_y">0x00e03098</Address>
- <Address name="window_z">0x00e03074</Address>
- <Address name="world">0x01637e14</Address>
- <Address name="x_count">0x016367fc</Address>
- <Address name="y_count">0x01636800</Address>
- <Address name="z_count">0x01636804</Address>
- <Address name="effects_vector">0x0177c978</Address>
- </Entry>
- <Entry version="v0.28.181.40d18" os="windows" base="40d17win" id="40d18win" rebase="0x9c5f8">
- <!-- identification -->
- <!--<HexValue name="pe_timestamp">0x006BF5AA</HexValue>-->
- <HexValue name="pe_timestamp">0x4b81b00d</HexValue>
- <String name="md5">5cdc6f4804809f4d5cacdb66785e8cda</String>
- <!-- THIS IS *NOT* A NUMBER -->
- <Address name="current_cursor_creature">0x00df2ebc</Address>
- <Address name="current_menu_state">0x00977438</Address>
- <Address name="cursor_xyz">0x009772b8</Address>
- <Address name="pause_state">0x014ad278</Address>
- <Address name="window_x">0x00db1584</Address>
- <Address name="window_y">0x00ddf630</Address>
- <Address name="window_z">0x00ddf60c</Address>
- </Entry>
- <Entry version="v0.28.181.40d19" os="windows" base="40d18win" id="40d19win">
- <HexValue name="pe_timestamp">0x4b90268a</HexValue>
- <String name="md5">13640a273d90af39425b798ae9823757</String>
- <Address name="buildings">0x01512898</Address>
- <Address name="constructions">0x014fe500</Address>
- <Address name="creatures">0x01511f04</Address>
- <Address name="current_cursor_creature">0x00d35b68</Address>
- <Address name="current_menu_state">0x016ac1a0</Address>
- <Address name="cursor_xyz">0x0097a2b8</Address>
- <Address name="effects_vector">0x169bfb0</Address>
- <Address name="hotkey_start">0x01343714</Address>
- <Address name="items">0x01511fe0</Address>
- <Address name="language_vector">0x01558194</Address>
- <Address name="map_data">0x01555e14</Address>
- <Address name="matgloss">0x01557f84</Address>
- <Address name="notes">0x013436dc</Address>
- <Address name="pause_state">0x0132ff1e</Address>
- <Address name="region_x">0x01555e4c</Address>
- <Address name="region_y">0x01555e50</Address>
- <Address name="region_z">0x01555e54</Address>
- <Address name="settlement_current">0x01557c14</Address>
- <Address name="settlements">0x01557b48</Address>
- <Address name="translation_vector">0x015581c4</Address>
- <Address name="vegetation">0x01518a6c</Address>
- <Address name="view_screen">0x013439fc</Address>
- <Address name="window_dims">0x0169af28</Address>
- <Address name="window_x">0x00cf4230</Address>
- <Address name="window_y">0x00d222dc</Address>
- <Address name="window_z">0x00d222b8</Address>
- <Address name="world">0x0155744c</Address>
- <Address name="x_count">0x01555e34</Address>
- <Address name="y_count">0x01555e38</Address>
- <Address name="z_count">0x01555e3c</Address>
- </Entry>
- <Entry version="v0.28.181.40d19_2" os="windows" base="40d19win" id="40d19_2win" rebase="0x1000">
- <HexValue name="pe_timestamp">0x4B918BB9</HexValue>
- <String name="md5">af29004e1763bb3460faa11907c3ac90</String>
- </Entry>
- .-"""-.
- ' \
- |,. ,-. |
- |()L( ()| |
- |,' `".| |
- |.___.',| `
- .j `--"' ` `.
- / ' ' \
- / / ` `.
- / / ` .
- / / l |
- . , L I N U X | |
- ,"`. .| |
- _.' ``. | `..-'l
- | `.`, | `.
- | `. __.j )
- |__ |--""___| ,-'
- `"--...,+"""" `._,.-'
-
-
- <Entry version="v0.28.181.40d2" os="linux" id="40d2lin" base="meta-40d">
- <String name="md5">7a0859795e972574e80fa3cebc9fcf85</String>
- <Offset name="hacked_vector_start">0x0</Offset><!-- where a vector actually starts -->
- <Offset name="hacked_vector_triplet">0x0</Offset><!-- where the vector triplet is -->
- <Address name="buildings">0x093154e0</Address>
- <Address name="constructions">0x093016b8</Address>
- <Address name="creatures">0x09355940</Address>
- <Address name="current_cursor_creature">0x09314ffc</Address>
- <Address name="current_menu_state">0x09301560</Address>
- <Address name="cursor_xyz">0x08859fc0</Address>
- <Address name="effects_vector">0x08cfa060</Address>
- <Address name="hotkey_start">0x0930140c</Address>
- <Address name="items">0x09356fd0</Address>
- <Address name="language_vector">0x09314ffc</Address>
- <Address name="map_data">0x09355964</Address>
- <Address name="matgloss">0x09357808</Address>
- <Address name="notes">0x093013e4</Address>
- <Address name="pause_state">0x092f0580</Address>
- <Address name="region_x">0x0935596c</Address>
- <Address name="region_y">0x09355970</Address>
- <Address name="region_z">0x09355974</Address>
- <Address name="settlement_current">0x0935754c</Address>
- <Address name="settlements">0x093574e0</Address>
- <Address name="translation_vector">0x09357928</Address>
- <Address name="vegetation">0x09318630</Address>
- <Address name="view_screen">0x08b36c80</Address>
- <Address name="window_dims">0x09355968</Address>
- <Address name="window_x">0x08b36c84</Address>
- <Address name="window_y">0x08cfa978</Address>
- <Address name="window_z">0x08cfa97c</Address>
- <Address name="world">0x09356f6c</Address>
- <Address name="x_count">0x09355954</Address>
- <Address name="y_count">0x09355958</Address>
- <Address name="z_count">0x0935595c</Address>
- <Offset name="word_table">0x1C</Offset>
- <!-- name struct -->
- <Offset name="name_firstname">0x0</Offset>
- <Offset name="name_nickname">0x4</Offset>
- <Offset name="name_words">0x8</Offset>
- <HexValue name="sizeof_string">0x4</HexValue>
- <!-- job object offsets -->
- <Offset name="current_job_id">0x08</Offset>
- <!-- creature offsets -->
- <Offset name="creature_name">0x00</Offset>
- <Offset name="creature_position">0x4C</Offset>
- <Offset name="creature_race">0x44</Offset>
- <Offset name="creature_flags1">0x90</Offset>
- <Offset name="creature_flags2">0x94</Offset>
- <Offset name="creature_custom_profession">0x003c</Offset>
- <Offset name="creature_profession">0x0040</Offset>
- <Offset name="creature_sex">0x009E</Offset>
- <Offset name="creature_id">0x00A0</Offset> <!-- either this or the squad leader ID is wrong -->
- <Offset name="creature_squad_name">0x00F0</Offset>
- <Offset name="creature_mood">0x160</Offset>
- <Offset name="creature_pregnancy">0x164</Offset>
- <Offset name="creature_squad_leader_id">0x190</Offset>
- <Offset name="creature_money">0x02F8</Offset> <!-- most probably wrong -->
- <Offset name="creature_current_job">0x0200</Offset>
- <Offset name="creature_blood_max">0x264</Offset>
- <Offset name="creature_blood_current">0x268</Offset>
- <Offset name="creature_bleed">0x26C</Offset>
- <Offset name="creature_artifact_name">0x02F8</Offset>
- <Offset name="creature_strength">0x0334</Offset>
- <Offset name="creature_agility">0x0338</Offset>
- <Offset name="creature_toughness">0x033C</Offset>
- <Offset name="creature_skills">0x0340</Offset>
- <Offset name="creature_likes">0x034C</Offset>
- <Offset name="creature_labors">0x0364</Offset>
- <Offset name="creature_happiness">0x0400</Offset>
- <Offset name="creature_traits">0x0490</Offset>
- <!-- tree and shrub offsets -->
- <Offset name="tree_desc_offset">0x40</Offset>
- <!-- map block offsets -->
- <Offset name="v_vein">0x08</Offset>
- <HexValue name="v_vein_size">0x2C</HexValue>
- <Offset name="type">0x0052</Offset>
- <Offset name="designation">0x0254</Offset>
- <Offset name="occupancy">0x0654</Offset>
- <Offset name="biome_stuffs">0x1D54</Offset>
- <!-- the world and its offsets -->
- <Offset name="world_size_x">0x54</Offset>
- <Offset name="world_size_y">0x56</Offset>
- <Offset name="w_geoblocks">0x5A4</Offset>
- <Offset name="w_regions_arr">0x5C8</Offset>
- <!-- values for the region structure -->
- <HexValue name="region_size">0x58</HexValue>
- <Offset name="region_geo_index_off">0x54</Offset>
- <!-- geoblock offset(s?) -->
- <Offset name="geolayer_geoblock_offset">0x4</Offset>
- <!-- matgloss vectors -->
- <HexValue name="matgloss_skip">0xC</HexValue>
- <Offset name="matgloss_stone_color">0x24</Offset>
- <Offset name="matgloss_metal_color">0x18</Offset>
- <Offset name="note_foreground">0x2</Offset>
- <Offset name="note_background">0x4</Offset>
- <Offset name="note_name">0x8</Offset>
- <Offset name="note_xyz">0xC</Offset>
- <Offset name="hotkey_mode">0x4</Offset>
- <Offset name="hotkey_xyz">0x8</Offset>
- <HexValue name="hotkey_size">0x14</HexValue>
- <Offset name="settlement_name">0x00</Offset>
- <Offset name="settlement_world_xy">0x4a</Offset>
- <Offset name="settlement_local_xy">0x94</Offset>
- <Offset name="item_materials">0x50</Offset>
- <Offset name="engraving_xyz">0x0C</Offset>
- <!-- 3x word -->
- <Offset name="engraving_imageindex">0x20</Offset>
- <!-- 1x dword -->
- <Offset name="item_type_name">0xC</Offset>
- <Offset name="matgloss_creature_name">0x4</Offset>
- <Offset name="matgloss_wood_name">0x10</Offset>
- <Offset name="matgloss_stone_name">0xC</Offset>
- <Offset name="matgloss_metal_name">0xC</Offset>
- <Offset name="matgloss_plant_name">0xC</Offset>
- <Offset name="matgloss_plant_drink">0x14</Offset>
- <Offset name="matgloss_plant_food">0x1C</Offset>
- <Offset name="matgloss_plant_extract">0x20</Offset>
- <VTable name="building_vtable">
- <multiclass name="building_workshop" typeoffset="0xAC"/>
- <multiclass name="building_furnace" typeoffset="0xBA"/>
- <multiclass name="building_siegeengine" typeoffset="0xAC"/>
- <multiclass name="building_trap" typeoffset="0xAC"/>
- </VTable>
- </Entry>
- <Entry version="v0.28.181.40d3" os="linux" id="40d3lin" base="40d2lin">
- <String name="md5">51c73ff46b2688aafaee0204efe91a94</String>
- <Address name="buildings">0x09315f00</Address>
- <Address name="constructions">0x093020d8</Address>
- <Address name="creatures">0x09356360</Address>
- <Address name="current_cursor_creature">0x09315a1c</Address>
- <Address name="current_menu_state">0x09301f80</Address>
- <Address name="cursor_xyz">0x0885a9e4</Address>
- <Address name="effects_vector">0x08cfaa80</Address>
- <Address name="hotkey_start">0x09301e2c</Address>
- <Address name="items">0x093579f0</Address>
- <Address name="language_vector">0x09315a1c</Address>
- <Address name="map_data">0x09356384</Address>
- <Address name="matgloss">0x09358228</Address>
- <Address name="notes">0x09301e04</Address>
- <Address name="pause_state">0x092f0fa0</Address>
- <Address name="region_x">0x0935638c</Address>
- <Address name="region_y">0x09356390</Address>
- <Address name="region_z">0x09356394</Address>
- <Address name="settlement_current">0x09357f6c</Address>
- <Address name="settlements">0x09357f00</Address>
- <Address name="translation_vector">0x09358348</Address>
- <Address name="vegetation">0x09319050</Address>
- <Address name="view_screen">0x08b376a0</Address>
- <Address name="window_dims">0x09356388</Address>
- <Address name="window_x">0x08b376a4</Address>
- <Address name="window_y">0x08cfb398</Address>
- <Address name="window_z">0x08cfb39c</Address>
- <Address name="world">0x0935798c</Address>
- <Address name="x_count">0x09356374</Address>
- <Address name="y_count">0x09356378</Address>
- <Address name="z_count">0x0935637c</Address>
- </Entry>
- <Entry version="v0.28.181.40d4" os="linux" id="40d4lin" base="40d3lin" rebase="0x380">
- <String name="md5">c1eb408868c80fd1c726d2a917cd1b9a</String>
- <Address name="cursor_xyz">0x0885ad54</Address>
- </Entry>
- <Entry version="v0.28.181.40d5" os="linux" id="40d5lin" base="40d4lin" rebase="0xea0">
- <String name="md5">59d497bfc3a523f0f40f34283ad59796</String>
- <Address name="cursor_xyz">0x0885bbf0</Address>
- </Entry>
- <Entry version="v0.28.181.40d6" os="linux" id="40d6lin" base="40d5lin">
- <String name="md5">f756194db073f05b98fc6ce872c8757d</String>
- <Address name="buildings">0x09333e00</Address>
- <Address name="constructions">0x0931ffd8</Address>
- <Address name="creatures">0x09374260</Address>
- <Address name="current_cursor_creature">0x0933391c</Address>
- <Address name="current_menu_state">0x0931fe80</Address>
- <Address name="cursor_xyz">0x088788e4</Address>
- <Address name="effects_vector">0x08d18980</Address>
- <Address name="hotkey_start">0x0931fd2c</Address>
- <Address name="items">0x093758f0</Address>
- <Address name="language_vector">0x0933391c</Address>
- <Address name="map_data">0x09374284</Address>
- <Address name="matgloss">0x09376128</Address>
- <Address name="notes">0x0931fd04</Address>
- <Address name="pause_state">0x0930eea0</Address>
- <Address name="region_x">0x0937428c</Address>
- <Address name="region_y">0x09374290</Address>
- <Address name="region_z">0x09374294</Address>
- <Address name="settlement_current">0x09375e6c</Address>
- <Address name="settlements">0x09375e00</Address>
- <Address name="translation_vector">0x09376248</Address>
- <Address name="vegetation">0x09336f50</Address>
- <Address name="view_screen">0x08b555a0</Address>
- <Address name="window_dims">0x09374288</Address>
- <Address name="window_x">0x08b555a4</Address>
- <Address name="window_y">0x08d19298</Address>
- <Address name="window_z">0x08d1929c</Address>
- <Address name="world">0x0937588c</Address>
- <Address name="x_count">0x09374274</Address>
- <Address name="y_count">0x09374278</Address>
- <Address name="z_count">0x0937427c</Address>
- </Entry>
- <Entry version="v0.28.181.40d7" os="linux" id="40d7lin" base="40d6lin" rebase="-0x1e0">
- <String name="md5">b004b3876193633875956af752663f26</String>
- </Entry>
- <Entry version="v0.28.181.40d8" os="linux" id="40d8lin" base="40d7lin" rebase="-0x60">
- <String name="md5">c8616fc74d79b3c8c40bbc1182fbd61c</String>
- <Address name="cursor_xyz">0x088786a0</Address>
- </Entry>
- <Entry version="v0.28.181.40d9" os="linux" id="40d9lin" base="40d8lin" rebase="-0x1060">
- <String name="md5">992afd73855e787860277f53d18afcbb</String>
- <Address name="cursor_xyz">0x08877630</Address>
- </Entry>
- <Entry version="v0.28.181.40d10" os="linux" id="40d10lin" base="40d9lin">
- <String name="md5">cba6354000ec54865a161627605c3837</String>
- <Address name="buildings">0x092bf340</Address>
- <Address name="constructions">0x092ab518</Address>
- <Address name="creatures">0x092bee5c</Address>
- <Address name="current_cursor_creature">0x0929a3c8</Address>
- <Address name="current_menu_state">0x092ab3c0</Address>
- <Address name="cursor_xyz">0x088073d4</Address>
- <Address name="effects_vector">0x08ca3eb8</Address>
- <Address name="hotkey_start">0x092ab26c</Address>
- <Address name="items">0x092beecc</Address>
- <Address name="language_vector">0x09301770</Address>
- <Address name="map_data">0x092ff7a0</Address>
- <Address name="matgloss">0x09301668</Address>
- <Address name="notes">0x092ab244</Address>
- <Address name="pause_state">0x0929a3e0</Address>
- <Address name="region_x">0x092ff7cc</Address>
- <Address name="region_y">0x092ff7d0</Address>
- <Address name="region_z">0x092ff7d4</Address>
- <Address name="settlement_current">0x093013ac</Address>
- <Address name="settlements">0x09301340</Address>
- <Address name="translation_vector">0x09301788</Address>
- <Address name="vegetation">0x092c2490</Address>
- <Address name="view_screen">0x08ae40a0</Address>
- <Address name="window_dims">0x09510050</Address>
- <Address name="window_x">0x08ca47d4</Address>
- <Address name="window_y">0x08ca47d8</Address>
- <Address name="window_z">0x08ca47dc</Address>
- <Address name="world">0x09300dcc</Address>
- <Address name="x_count">0x092ff7b4</Address>
- <Address name="y_count">0x092ff7b8</Address>
- <Address name="z_count">0x092ff7bc</Address>
- </Entry>
- <Entry version="v0.28.181.40d11" os="linux" id="40d11lin" base="40d10lin" rebase="0x0">
- <String name="md5">fb8ecac8a12af5d0d7b1707078985d0d</String>
- </Entry>
- <Entry version="v0.28.181.40d12" os="linux" id="40d12lin" base="40d11lin">
- <String name="md5">4367c59934cbcf14f43fd3af6444c455</String>
- <Address name="buildings">0x08f55740</Address>
- <Address name="constructions">0x08f41918</Address>
- <Address name="creatures">0x08f5525c</Address>
- <Address name="current_cursor_creature">0x08f307c8</Address>
- <Address name="current_menu_state">0x08f417c0</Address>
- <Address name="cursor_xyz">0x0877b33c</Address>
- <Address name="effects_vector">0x0893a2ac</Address>
- <Address name="hotkey_start">0x08f4166c</Address>
- <Address name="items">0x08f552cc</Address>
- <Address name="language_vector">0x08f97b8c</Address>
- <Address name="map_data">0x08f95bbc</Address>
- <Address name="matgloss">0x08f97a84</Address>
- <Address name="notes">0x08f41644</Address>
- <Address name="pause_state">0x08f307e0</Address>
- <Address name="region_x">0x08f95be8</Address>
- <Address name="region_y">0x08f95bec</Address>
- <Address name="region_z">0x08f95bf0</Address>
- <Address name="settlement_current">0x08f977c8</Address>
- <Address name="settlements">0x08f9775c</Address>
- <Address name="translation_vector">0x08f97ba4</Address>
- <Address name="vegetation">0x08f58890</Address>
- <Address name="view_screen">0x0877f8e0</Address>
- <Address name="window_dims">0x091a647c</Address>
- <Address name="window_x">0x0893abd4</Address>
- <Address name="window_y">0x0893abd8</Address>
- <Address name="window_z">0x0893abdc</Address>
- <Address name="world">0x08f971e8</Address>
- <Address name="x_count">0x08f95bd0</Address>
- <Address name="y_count">0x08f95bd4</Address>
- <Address name="z_count">0x08f95bd8</Address>
- </Entry>
- <Entry version="v0.28.181.40d13" os="linux" id="40d13lin" base="40d12lin" rebase="0x5020">
- <String name="md5">2f3cb9d720e9fe8844c02c72a2b20bbd</String>
- <Address name="cursor_xyz">0x08780344</Address>
- <Address name="effects_vector">0x0893f2d0</Address>
- </Entry>
- <Entry version="v0.28.181.40d14" os="linux" id="40d14lin" base="40d13lin">
- <String name="md5">dab3ce6bc074529706a1e5fe1273108c</String>
- <Address name="buildings">0x08f5a760</Address>
- <Address name="constructions">0x08f46938</Address>
- <Address name="creatures">0x08f5a27c</Address>
- <Address name="current_cursor_creature">0x08f357e8</Address>
- <Address name="current_menu_state">0x08f467e0</Address>
- <Address name="cursor_xyz">0x08780354</Address>
- <Address name="effects_vector">0x0893f2d0</Address>
- <Address name="hotkey_start">0x08f4668c</Address>
- <Address name="items">0x08f5a2ec</Address>
- <Address name="language_vector">0x08f9cbac</Address>
- <Address name="map_data">0x08f9abdc</Address>
- <Address name="matgloss">0x08f9caa4</Address>
- <Address name="notes">0x08f46664</Address>
- <Address name="pause_state">0x08f35800</Address>
- <Address name="region_x">0x08f9ac08</Address>
- <Address name="region_y">0x08f9ac0c</Address>
- <Address name="region_z">0x08f9ac10</Address>
- <Address name="settlement_current">0x08f9c7e8</Address>
- <Address name="settlements">0x08f9c77c</Address>
- <Address name="translation_vector">0x08f9cbc4</Address>
- <Address name="vegetation">0x08f5d8b0</Address>
- <Address name="view_screen">0x08784900</Address>
- <Address name="window_dims">0x091ab49c</Address>
- <Address name="window_x">0x0893fbf4</Address>
- <Address name="window_y">0x0893fbf8</Address>
- <Address name="window_z">0x0893fbfc</Address>
- <Address name="world">0x08f9c208</Address>
- <Address name="x_count">0x08f9abf0</Address>
- <Address name="y_count">0x08f9abf4</Address>
- <Address name="z_count">0x08f9abf8</Address>
- </Entry>
- <Entry version="v0.28.181.40d15" os="linux" id="40d15lin" base="40d14lin" rebase="0x0">
- <String name="md5">4f55a1dcc326786271f221de23c425b5</String>
- </Entry>
- <Entry version="v0.28.181.40d16" os="linux" id="40d16lin" base="40d15lin" rebase="0x0">
- <String name="md5">022b933926e08da49c6df8649295f2b7</String>
- </Entry>
- <Entry version="v0.28.181.40d17" os="linux" id="40d17lin" base="40d16lin">
- <String name="md5">8f55a6250f2550e28535b79db43d5f1a</String>
- <Address name="buildings">0x08f628c0</Address>
- <Address name="constructions">0x08f4ea98</Address>
- <Address name="creatures">0x08f623dc</Address>
- <Address name="current_cursor_creature">0x08f3d948</Address>
- <Address name="current_menu_state">0x08f4e940</Address>
- <Address name="cursor_xyz">0x0878c340</Address>
- <Address name="effects_vector">0x08947438</Address>
- <Address name="hotkey_start">0x08f4e7ec</Address>
- <Address name="items">0x08f6244c</Address>
- <Address name="language_vector">0x08fa4d0c</Address>
- <Address name="map_data">0x08fa2d3c</Address>
- <Address name="matgloss">0x08fa4c04</Address>
- <Address name="notes">0x08f4e7c4</Address>
- <Address name="pause_state">0x660008f3</Address>
- <Address name="region_x">0x08fa2d68</Address>
- <Address name="region_y">0x08fa2d6c</Address>
- <Address name="region_z">0x08fa2d70</Address>
- <Address name="settlement_current">0x08fa4948</Address>
- <Address name="settlements">0x08fa48dc</Address>
- <Address name="translation_vector">0x08fa4d24</Address>
- <Address name="vegetation">0x08f65a10</Address>
- <Address name="view_screen">0x0878caa0</Address>
- <Address name="window_dims">0x091b35fc</Address>
- <Address name="window_x">0x08947d54</Address>
- <Address name="window_y">0x08947d58</Address>
- <Address name="window_z">0x08947d5c</Address>
- <Address name="world">0x08fa4368</Address>
- <Address name="x_count">0x08fa2d50</Address>
- <Address name="y_count">0x08fa2d54</Address>
- <Address name="z_count">0x08fa2d58</Address>
- </Entry>
- <Entry version="v0.28.181.40d18" os="linux" id="40d18lin" base="40d17lin">
- <String name="md5">777e7d674d8908042307994cb75250ff</String>
- <Address name="buildings">0x09009860</Address>
- <Address name="constructions">0x08ff5a38</Address>
- <Address name="creatures">0x0900937C</Address>
- <Address name="current_cursor_creature">0x08fe48e8</Address>
- <Address name="current_menu_state">0x08ff58e0</Address>
- <Address name="cursor_xyz">0x08833324</Address>
- <Address name="effects_vector">0x089ee3d8</Address>
- <Address name="hotkey_start">0x08FF578C</Address>
- <Address name="items">0x090093ec</Address>
- <Address name="language_vector">0x0904bcac</Address>
- <Address name="map_data">0x09049cdc</Address>
- <Address name="matgloss">0x0904bba4</Address>
- <Address name="notes">0x08ff5764</Address>
- <Address name="pause_state">0x08fe4900</Address>
- <Address name="region_x">0x09049d08</Address>
- <Address name="region_y">0x09049d0c</Address>
- <Address name="region_z">0x09049d10</Address>
- <Address name="settlement_current">0x0904b8e8</Address>
- <Address name="settlements">0x0904b87c</Address>
- <Address name="translation_vector">0x0904bcc4</Address>
- <Address name="vegetation">0x0900c9b0</Address>
- <Address name="view_screen">0x08833a40</Address>
- <Address name="window_dims">0x0925a59c</Address>
- <Address name="window_x">0x089eecf4</Address>
- <Address name="window_y">0x089eecf8</Address>
- <Address name="window_z">0x089eecfc</Address>
- <Address name="world">0x0904b308</Address>
- <Address name="x_count">0x09049cf0</Address>
- <Address name="y_count">0x09049cf4</Address>
- <Address name="z_count">0x09049cf8</Address>
- </Entry>
- <Entry version="v0.28.181.40d19" os="linux" id="40d19lin" base="40d18lin">
- <String name="md5">04c3ad13c657f59ba6fc135e156d721d</String>
- <Address name="buildings">0x09008880</Address>
- <Address name="constructions">0x08ff4a58</Address>
- <Address name="creatures">0x0900839C</Address>
- <Address name="current_cursor_creature">0x08fe3908</Address>
- <Address name="current_menu_state">0x08ff4900</Address>
- <Address name="cursor_xyz">0x08832328</Address>
- <Address name="effects_vector">0x089ed3f8</Address>
- <Address name="hotkey_start">0x08ff47ac</Address>
- <Address name="items">0x0900840c</Address>
- <Address name="language_vector">0x0904accc</Address>
- <Address name="map_data">0x09048cfc</Address>
- <Address name="matgloss">0x0904abc4</Address>
- <Address name="notes">0x08ff4784</Address>
- <Address name="pause_state">0xc60008fe</Address>
- <Address name="region_x">0x09048d28</Address>
- <Address name="region_y">0x09048d2c</Address>
- <Address name="region_z">0x09048d30</Address>
- <Address name="settlement_current">0x0904a908</Address>
- <Address name="settlements">0x0904a89c</Address>
- <Address name="translation_vector">0x0904ace4</Address>
- <Address name="vegetation">0x0900b9d0</Address>
- <Address name="view_screen">0x08832a60</Address>
- <Address name="window_dims">0x091995fc</Address>
- <Address name="window_x">0x089edd14</Address>
- <Address name="window_y">0x089edd18</Address>
- <Address name="window_z">0x089edd1c</Address>
- <Address name="world">0x0904a328</Address>
- <Address name="x_count">0x09048d10</Address>
- <Address name="y_count">0x09048d14</Address>
- <Address name="z_count">0x09048d18</Address>
- </Entry>
- <!-- Windows logo by M$, spiderweb by jgs -->
- <Entry version="v0.31.01" os="windows" id="0.31.01" model="2010">
- <String name="md5">851c1190b6a7b42f2463967623d18575</String>
- <HexValue name="pe_timestamp">0x4BB45F99</HexValue>
-
- <!-- basic stuff -->
- <HexValue name="sizeof_vector">0x18</HexValue>
- <Offset name="hacked_vector_start">0x0</Offset>
- <Offset name="hacked_vector_triplet">0xC</Offset>
- <HexValue name="sizeof_string">0x1C</HexValue>
-
- <!-- dfposition -->
- <Address name="window_x">0xe32798</Address>
- <Address name="window_y">0xe60838</Address>
- <Address name="window_z">0xe60814</Address>
- <Address name="cursor_xyz">0xae82cc</Address>
-
- <Address name="window_dims">0x17f5ab8</Address>
- Found addresses: (next to each other!)
- 0x17f5ab8
- 0x17f5ac0
- 0x17f5ac8
- 0x17f5ad0
-
- <Address name="pause_state">0x146e45f</Address>
- Found addresses:
- 0x146e45f <!-- looks like a dword -->
- 0x185b677 <!-- looks like a word -->
-
- Bogus: <Address name="current_cursor_creature">0xae82cc</Address>
-
- <Address name="current_menu_state">0x017f6f38</Address>
-
- Bogus: <Address name="view_screen">0xae82cc</Address>
-
- <!-- map stuff -->
- <!-- map size in blocks -->
- <Address name="x_count_block">0x016ad738</Address>
- <Address name="y_count_block">0x016ad73C</Address>
- <Address name="z_count_block">0x016ad740</Address>
- <!-- map size in tiles -->
- <Address name="x_count">0x016ad744</Address>
- <Address name="y_count">0x016ad748</Address>
- <Address name="z_count">0x016ad74C</Address>
- <!-- suspected region coords -->
- <Address name="region_x">0x016ad750</Address>
- <Address name="region_y">0x016ad754</Address>
- <Address name="region_z">0x016ad758</Address>
-
- <Address name="map_data">0x016AD718</Address>
- <Offset name="v_vein">0x10</Offset>
- <Offset name="type">0x0092</Offset>
- <Offset name="designation">0x029C</Offset>
-
- <!-- name struct -->
- <Offset name="name_firstname">0x0</Offset>
- <Offset name="name_nickname">0x1C</Offset>
- <Offset name="name_words">0x38</Offset>
-
- <!-- Creatures -->
- <Offset name="creature_name">0x0</Offset>
- <Offset name="creature_position">0x90</Offset>
- <Offset name="creature_flags1">0xF8</Offset>
- <Offset name="creature_flags2">0xFC</Offset>
- <Offset name="creature_sex">0x110</Offset>
- <Offset name="creature_id">0x114</Offset>
- <Offset name="creature_artifact_name">0x6D0</Offset>
- <Offset name="creature_labors">0x770</Offset>
- <!--
- No idea if those are still relevant. I'll assume NO
- <Offset name="occupancy">0x0684</Offset>
- <Offset name="biome_stuffs">0x1D84</Offset>
- -->
-<!--
-addresses from belal: vectors might need 8 subtracted from
-buildings 0x0166f9a8
-constructions 0xffffffff
-creatures 0x0166eccc
-current_cursor_creature 0x00ae82cc
-current_menu_state 0x017f6f38
-cursor_xyz 0x0166ecd4
-effects_vector 0x017f6da0
-hotkey_start 0x01476ecc
-items 0x0166eda8
-language_vector 0x016affe0
-map_data 0x016ad718
-matgloss 0xffffffff
-notes 0x01474de8
-pause_state 0x0146e45f
-region_x 0x016ad750
-region_y 0x016ad754
-region_z 0x016ad758
-settlement_current 0xffffffff
-settlements 0x016af4a4
-translation_vector 0x016b0010
-vegetation 0x017f6da0
-view_screen 0xffffffff
-window_dims 0x017f5abc
-window_x 0x00e32798
-window_y 0x00e60838
-window_z 0x00e60814
-world 0x016aed50
-x_count 0x016ad738
-y_count 0x016ad73c
-z_count 0x016ad740
- -->
-
- <!--
- <Address name="buildings">0x09008880</Address>
- <Address name="constructions">0x08ff4a58</Address>
- <Address name="creatures">0x0900839C</Address>
- <Address name="current_cursor_creature">0x08fe3908</Address>
- <Address name="current_menu_state">0x08ff4900</Address>
- <Address name="cursor_xyz">0x08832328</Address>
- <Address name="effects_vector">0x089ed3f8</Address>
- <Address name="hotkey_start">0x08ff47ac</Address>
- <Address name="items">0x0900840c</Address>
- <Address name="language_vector">0x0904accc</Address>
- <Address name="map_data">0x09048cfc</Address>
- <Address name="matgloss">0x0904abc4</Address>
- <Address name="notes">0x08ff4784</Address>
- <Address name="pause_state">0xc60008fe</Address>
- <Address name="region_x">0x09048d28</Address>
- <Address name="region_y">0x09048d2c</Address>
- <Address name="region_z">0x09048d30</Address>
- <Address name="settlement_current">0x0904a908</Address>
- <Address name="settlements">0x0904a89c</Address>
- <Address name="translation_vector">0x0904ace4</Address>
- <Address name="vegetation">0x0900b9d0</Address>
- <Address name="view_screen">0x08832a60</Address>
- <Address name="window_dims">0x091995fc</Address>
- <Address name="window_x">0x089edd14</Address>
- <Address name="window_y">0x089edd18</Address>
- <Address name="window_z">0x089edd1c</Address>
- <Address name="world">0x0904a328</Address>
- <Address name="x_count">0x09048d10</Address>
- <Address name="y_count">0x09048d14</Address>
- <Address name="z_count">0x09048d18</Address>
- -->
- </Entry>
- </MemoryDescriptors>
-</DFExtractor>
diff --git a/ReleaseText.txt b/ReleaseText.txt
deleted file mode 100644
index 83b538a6..00000000
--- a/ReleaseText.txt
+++ /dev/null
@@ -1 +0,0 @@
-DFHack tools for DF 31.21 \ No newline at end of file
diff --git a/build/build-MinGW32-debug.bat b/build/build-MinGW32-debug.bat
deleted file mode 100644
index a20cb905..00000000
--- a/build/build-MinGW32-debug.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-mkdir MINGW32-debug
-cd MINGW32-debug
-cmake ..\.. -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE:string=Debug
-cmake-gui .
-mingw32-make 2> ..\mingw-build-log.txt
-pause \ No newline at end of file
diff --git a/build/build-MinGW32-release.bat b/build/build-MinGW32-release.bat
deleted file mode 100644
index af1dd060..00000000
--- a/build/build-MinGW32-release.bat
+++ /dev/null
@@ -1,7 +0,0 @@
-mkdir MINGW32-release
-cd MINGW32-release
-cmake ..\.. -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE:string=Release
-
-cmake-gui .
-mingw32-make 2> ..\mingw-build-log.txt
-pause \ No newline at end of file
diff --git a/build/generate-MSVC-2005.bat b/build/generate-MSVC-2005.bat
deleted file mode 100644
index 40aca9e0..00000000
--- a/build/generate-MSVC-2005.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-mkdir VC2005
-cd VC2005
-echo Pre-generating a build folder
-cmake ..\.. -G"Visual Studio 8 2005"
-cmake-gui . \ No newline at end of file
diff --git a/build/generate-MSVC-2008.bat b/build/generate-MSVC-2008.bat
deleted file mode 100644
index f8b0fd04..00000000
--- a/build/generate-MSVC-2008.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-mkdir VC2008
-cd VC2008
-echo Pre-generating a build folder
-cmake ..\.. -G"Visual Studio 9 2008"
-cmake-gui . \ No newline at end of file
diff --git a/build/linux-remote.expect b/build/linux-remote.expect
deleted file mode 100644
index 18fcdc8b..00000000
--- a/build/linux-remote.expect
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/expect
-# procedure to attempt connecting; result 0 if OK, 1 otherwise
-proc connect {} {
- expect "login:"
- send "kitteh\r"
- expect "password:"
- send "a\r"
-expect {
- kitteh {return 0}
- failed return 1
- "invalid password" return 1
- timeout return 1
- connected
-}
- # timed out
- return 1
-}
-
-# procedure to do build stuff; result 0 if OK, 1 otherwise
-proc dobuild {} {
- set timeout -1
- send "pkg-win32.bat\r\n"
- puts "\nBuilding...\n"
-expect {
- "BUILD OK" {return 0}
- "MSVC ERROR" {return 1}
- "CMAKE ERROR" {return 1}
- "ENV ERROR" {return 1}
-}
-}
-
-spawn telnet win7
-
-set rez [connect]
-if { $rez == 1 } {
-puts "\nError connecting to server!\n"
-exit 1
-}
-
-send "net use X: \\\\vboxsvr\\projects\r\n"
-expect "The command completed successfully."
-send "X:\r\n"
-expect "X:"
-send "cd X:\\dfhack\\build\r\n"
-expect "build"
-
-set buildrez [dobuild]
-if { $buildrez == 1 } {
- puts "\nThere was an error during build.\n"
-} else {
- puts "\nAll OK.\n"
-}
-send "exit\r"
-expect eof
-exit $buildrez
diff --git a/build/pkg-debian.sh b/build/pkg-debian.sh
deleted file mode 100644
index 6d3bce5d..00000000
--- a/build/pkg-debian.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-rm -r debian
-mkdir debian
-cd debian
-cmake ../.. -DCMAKE_BUILD_TYPE="Release" -DDFHACK_INSTALL="debian" -DMEMXML_DATA_PATH="/usr/share/dfhack" -DBUILD_DFHACK_C_BINDINGS=ON -DBUILD_DFHACK_DEVEL=ON -DBUILD_DFHACK_DOXYGEN=OFF -DBUILD_DFHACK_EXAMPLES=OFF -DBUILD_DFHACK_PLAYGROUND=OFF -DBUILD_DFHACK_PYTHON_BINDINGS=ON
-make package
-mv *.deb ../ \ No newline at end of file
diff --git a/build/pkg-ubuntu-10.10-x64.sh b/build/pkg-ubuntu-10.10-x64.sh
deleted file mode 100644
index 5f4e17b3..00000000
--- a/build/pkg-ubuntu-10.10-x64.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-rm -r ubuntu64
-mkdir ubuntu64
-cd ubuntu64
-cmake ../.. -DCMAKE_BUILD_TYPE="Release" -DDFHACK_INSTALL="ubuntu-10.10" -DMEMXML_DATA_PATH="/usr/share/dfhack" -DDFHACK_PACKAGE_DIR=".." -DBUILD_DFHACK_C_BINDINGS=ON -DBUILD_DFHACK_DEVEL=ON -DBUILD_DFHACK_DOXYGEN=OFF -DBUILD_DFHACK_EXAMPLES=OFF -DBUILD_DFHACK_PLAYGROUND=OFF -DBUILD_DFHACK_PYTHON_BINDINGS=ON
-make package
-mv *.deb ../ \ No newline at end of file
diff --git a/build/pkg-ubuntu-10.10.sh b/build/pkg-ubuntu-10.10.sh
deleted file mode 100644
index 01baab90..00000000
--- a/build/pkg-ubuntu-10.10.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-rm -r ubuntu
-mkdir ubuntu
-cd ubuntu
-cmake ../.. -DCMAKE_BUILD_TYPE="Release" -DDFHACK_INSTALL="ubuntu-10.10" -DMEMXML_DATA_PATH="/usr/share/dfhack" -DDFHACK_PACKAGE_DIR=".." -DBUILD_DFHACK_C_BINDINGS=ON -DBUILD_DFHACK_DEVEL=ON -DBUILD_DFHACK_DOXYGEN=OFF -DBUILD_DFHACK_EXAMPLES=OFF -DBUILD_DFHACK_PLAYGROUND=OFF -DBUILD_DFHACK_PYTHON_BINDINGS=ON
-make package
-mv *.deb ../
diff --git a/build/pkg-win32.bat b/build/pkg-win32.bat
deleted file mode 100644
index ff71e974..00000000
--- a/build/pkg-win32.bat
+++ /dev/null
@@ -1,37 +0,0 @@
-@ECHO OFF
-rd /S /Q MSVC10
-mkdir MSVC10
-cd MSVC10
-echo CLEANUP DONE
-
-cmake ..\.. -G"Visual Studio 10" -DDFHACK_INSTALL="portable" -DMEMXML_DATA_PATH="." -DBUILD_DFHACK_C_BINDINGS=OFF -DBUILD_DFHACK_DEVEL=OFF -DBUILD_DFHACK_DOXYGEN=OFF -DBUILD_DFHACK_EXAMPLES=OFF -DBUILD_DFHACK_PLAYGROUND=OFF -DBUILD_DFHACK_PYTHON_BINDINGS=OFF > ..\pkg-win32-cmake.log
-if errorlevel 1 goto cmakeerror
-echo CMAKE OK
-
-call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" > ..\pkg-win32-env.log
-if errorlevel 1 goto enverror
-echo ENV OK
-
-msbuild PACKAGE.vcxproj /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=..\pkg-win32-msbuild.log;encoding=utf-8 -noconsolelogger > NUL
-if errorlevel 1 goto msvcerror
-move /Y *.zip ..
-echo BUILD OK
-set errorlevel=0
-goto end
-
-:cmakeerror
-echo CMAKE ERROR
-set errorlevel=1
-goto end
-
-:enverror
-echo ENV ERROR
-set errorlevel=1
-goto end
-
-:msvcerror
-echo MSVC ERROR
-set errorlevel=1
-goto end
-
-:end \ No newline at end of file
diff --git a/build/pkg-win32.sh b/build/pkg-win32.sh
deleted file mode 100755
index 6e81264f..00000000
--- a/build/pkg-win32.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#/bin/sh
-# Remote into a virtualbox VM to build with MSVC.
-# Very specific to my own local setup. ~px
-
-# VARS. TODO: parametrize
-export DFHACK_VER=0.5.7
-export PKG=dfhack-bin-$DFHACK_VER
-export TARGET=Release
-
-# let's build it all
-VBoxManage startvm "7 Prof"
-sleep 20
-expect linux-remote.expect $TARGET
-
diff --git a/dfhack-python/CMakeLists.txt b/dfhack-python/CMakeLists.txt
deleted file mode 100644
index e69de29b..00000000
--- a/dfhack-python/CMakeLists.txt
+++ /dev/null
diff --git a/dfhack-python/__init__.py b/dfhack-python/__init__.py
deleted file mode 100644
index f6d2a2d3..00000000
--- a/dfhack-python/__init__.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import context
-
-__all__ = [ "buildings",
- "constructions",
- "context",
- "creatures",
- "dftypes",
- "flags",
- "gui",
- "items",
- "maps",
- "materials",
- "vegetation" ] \ No newline at end of file
diff --git a/dfhack-python/buildings.py b/dfhack-python/buildings.py
deleted file mode 100644
index d58b9284..00000000
--- a/dfhack-python/buildings.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from ctypes import *
-from dftypes import *
-import util
-
-libdfhack.Buildings_GetCustomWorkshopType.argtypes = [ c_void_p, POINTER(CustomWorkshop) ]
-
-class Buildings(object):
- def __init__(self, ptr):
- self._b_ptr = ptr
-
- def start(self):
- num = c_uint()
-
- if libdfhack.Buildings_Start(self._b_ptr, byref(num)) > 0:
- return int(num.value)
- else:
- return -1
-
- def finish(self):
- return libdfhack.Buildings_Finish(self._b_ptr) > 0
-
- def read(self, index):
- b = Building()
-
- if libdfhack.Buildings_Read(self._b_ptr, c_uint(index), byref(b)) > 0:
- return b
- else:
- return None
-
- def read_custom_workshop_types(self):
- return libdfhack.Buildings_ReadCustomWorkshopTypes(self._b_ptr)
-
- def get_custom_workshop_type(self, custom_workshop):
- return libdfhack.Buildings_GetCustomWorkshopType(self._b_ptr, byref(custom_workshop))
diff --git a/dfhack-python/constructions.py b/dfhack-python/constructions.py
deleted file mode 100644
index f822a54f..00000000
--- a/dfhack-python/constructions.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from ctypes import c_uint, byref
-from dftypes import libdfhack, Construction
-
-class Constructions(object):
- def __init__(self, ptr):
- self._c_ptr = ptr
-
- def start(self):
- num = c_uint()
-
- if libdfhack.Constructions_Start(self._c_ptr, byref(num)) > 0:
- return int(num.value)
- else:
- return -1
-
- def finish(self):
- return libdfhack.Constructions_Finish(self._c_ptr) > 0
-
- def read(self, index):
- c = Construction()
-
- if libdfhack.Constructions_Read(self._c_ptr, c_uint(index), byref(c)) > 0:
- return c
- else:
- return None
diff --git a/dfhack-python/context.py b/dfhack-python/context.py
deleted file mode 100644
index b2459af4..00000000
--- a/dfhack-python/context.py
+++ /dev/null
@@ -1,191 +0,0 @@
-from ctypes import *
-from dftypes import *
-
-libdfhack.ContextManager_Alloc.restype = c_void_p
-libdfhack.ContextManager_Free.argtypes = [ c_void_p ]
-
-libdfhack.ContextManager_getContext.restype = c_void_p
-libdfhack.ContextManager_getSingleContext.restype = c_void_p
-
-libdfhack.Context_Free.argtypes = [ c_void_p ]
-
-libdfhack.Context_getMemoryInfo.restype = c_void_p
-libdfhack.Context_getProcess.restype = c_void_p
-
-libdfhack.Context_getCreatures.restype = c_void_p
-libdfhack.Context_getMaps.restype = c_void_p
-libdfhack.Context_getGui.restype = c_void_p
-libdfhack.Context_getMaterials.restype = c_void_p
-libdfhack.Context_getTranslation.restype = c_void_p
-libdfhack.Context_getVegetation.restype = c_void_p
-libdfhack.Context_getBuildings.restype = c_void_p
-libdfhack.Context_getConstructions.restype = c_void_p
-libdfhack.Context_getItems.restype = c_void_p
-libdfhack.Context_getWorld.restype = c_void_p
-libdfhack.Context_getWindowIO.restype = c_void_p
-
-class ContextManager(object):
- def __init__(self, memory_path):
- self._cm_ptr = libdfhack.ContextManager_Alloc(create_string_buffer(memory_path))
-
- def __del__(self):
- libdfhack.ContextManager_Free(self._cm_ptr)
-
- def refresh(self):
- return libdfhack.ContextManager_Refresh(self._cm_ptr) > 0
-
- def purge(self):
- libdfhack.ContextManager_purge(self._cm_ptr)
-
- def get_context(self, index):
- p = libdfhack.ContextManager_getContext(self._cm_ptr, index)
-
- if p:
- return Context(p)
- else:
- return None
-
- def get_single_context(self):
- p = libdfhack.ContextManager_getSingleContext(self._cm_ptr)
-
- if p:
- return Context(p)
- else:
- return None
-
-class Context(object):
- def __init__(self, ptr):
- self._c_ptr = ptr
-
- self._mat_obj = None
- self._map_obj = None
- self._veg_obj = None
- self._build_obj = None
- self._con_obj = None
- self._gui_obj = None
- self._tran_obj = None
- self._item_obj = None
- self._creature_obj = None
- self._world_obj = None
- self._window_io_obj = None
-
- def __del__(self):
- libdfhack.Context_Free(self._c_ptr)
-
- def attach(self):
- return libdfhack.Context_Attach(self._c_ptr) > 0
-
- def detach(self):
- self._mat_obj = None
- self._map_obj = None
- self._veg_obj = None
- self._build_obj = None
- self._con_obj = None
- self._gui_obj = None
- self._tran_obj = None
- self._item_obj = None
- self._creature_obj = None
- self._world_obj = None
- self._window_io_obj = None
-
- return libdfhack.Context_Detach(self._c_ptr) > 0
-
- def suspend(self):
- return libdfhack.Context_Suspend(self._c_ptr) > 0
-
- def resume(self):
- return libdfhack.Context_Resume(self._c_ptr) > 0
-
- def force_resume(self):
- return libdfhack.Context_ForceResume(self._c_ptr) > 0
-
- def async_suspend(self):
- return libdfhack.Context_AsyncSuspend(self._c_ptr) > 0
-
- @property
- def is_attached(self):
- return libdfhack.Context_isAttached(self._c_ptr) > 0
-
- @property
- def is_suspended(self):
- return libdfhack.Context_isSuspended(self._c_ptr) > 0
-
- @property
- def materials(self):
- import materials
- if self._mat_obj is None:
- self._mat_obj = materials.Materials(libdfhack.Context_getMaterials(self._c_ptr))
-
- return self._mat_obj
-
- @property
- def maps(self):
- import maps
- if self._map_obj is None:
- self._map_obj = maps.Maps(libdfhack.Context_getMaps(self._c_ptr))
-
- return self._map_obj
-
- @property
- def vegetation(self):
- import vegetation
- if self._veg_obj is None:
- self._veg_obj = vegetation.Vegetation(libdfhack.Context_getVegetation(self._c_ptr))
-
- return self._veg_obj
-
- @property
- def buildings(self):
- import buildings
- if self._build_obj is None:
- self._build_obj = buildings.Buildings(libdfhack.Context_getBuildings(self._c_ptr))
-
- return self._build_obj
-
- @property
- def creatures(self):
- import creatures
- if self._creature_obj is None:
- self._creature_obj = creatures.Creatures(libdfhack.Context_getCreatures(self._c_ptr))
-
- return self._creature_obj
-
- @property
- def gui(self):
- import gui
- if self._gui_obj is None:
- self._gui_obj = gui.Gui(libdfhack.Context_getGui(self._c_ptr))
-
- return self._gui_obj
-
- @property
- def items(self):
- import items
- if self._item_obj is None:
- self._item_obj = items.Items(libdfhack.Context_getItems(self._c_ptr))
-
- return self._item_obj
-
- @property
- def translation(self):
- import translation
- if self._tran_obj is None:
- self._tran_obj = translation.Translation(libdfhack.Context_getTranslation(self._c_ptr))
-
- return self._tran_obj
-
- @property
- def world(self):
- import world
- if self._world_obj is None:
- self._world_obj = world.World(libdfhack.Context_getWorld(self._c_ptr))
-
- return self._world_obj
-
- @property
- def window_io(self):
- import window_io
- if self._window_io_obj is None:
- self._window_io_obj = window_io.WindowIO(libdfhack.Context_getWindowIO(self._c_ptr))
-
- return self._window_io_obj \ No newline at end of file
diff --git a/dfhack-python/creatures.py b/dfhack-python/creatures.py
deleted file mode 100644
index b4a51a4b..00000000
--- a/dfhack-python/creatures.py
+++ /dev/null
@@ -1,73 +0,0 @@
-from ctypes import *
-from dftypes import libdfhack, Creature, Material
-import util
-
-libdfhack.Creatures_WriteLabors.argtypes = [ c_void_p, c_uint, POINTER(c_ubyte) ]
-
-libdfhack.Creatures_ReadJob.restype = POINTER(Material)
-libdfhack.Creatures_ReadInventoryIdx.restype = POINTER(c_uint)
-libdfhack.Creatures_ReadInventoryPtr.restype = POINTER(c_uint)
-
-class Creatures(object):
- def __init__(self, ptr):
- print ptr
- self._c_ptr = ptr
-
- self._d_race_index = None
- self._d_civ_id = None
-
- def start(self):
- n = c_uint(0)
-
- if libdfhack.Creatures_Start(self._c_ptr, byref(n)) > 0:
- return int(n.value)
- else:
- return -1
-
- def finish(self):
- return libdfhack.Creatures_Finish(self._c_ptr) > 0
-
- def read_creature(self, index):
- c = Creature()
-
- if libdfhack.Creatures_ReadCreature(self._c_ptr, c_int(index), byref(c)) > 0:
- return c
- else:
- return None
-
- def read_creature_in_box(self, index, pos1, pos2):
- c = Creature()
-
- x1, y1, z1 = c_uint(pos1[0]), c_uint(pos1[1]), c_uint(pos1[2])
- x2, y2, z2 = c_uint(pos2[0]), c_uint(pos2[1]), c_uint(pos2[2])
-
- retval = libdfhack.Creatures_ReadCreatureInBox(self._c_ptr, byref(c), x1, y1, z1, x2, y2, z2)
-
- return (retval, c)
-
- def write_labors(self, index, labors):
- return libdfhack.Creatures_WriteLabors(self._c_ptr, c_uint(index), labors) > 0
-
- def read_job(self, creature):
- job_ptr = libdfhack.Creatures_ReadJob(self._c_ptr, byref(creature))
- jobs = None
-
- if id(job_ptr) in dftypes.pointer_dict:
- jobs = dftypes.pointer_dict[id(job_ptr)][1]
- del dftypes.pointer_dict[id(job_ptr)]
-
- return jobs
-
- @property
- def dwarf_race_index(self):
- if self._d_race_index is None:
- self._d_race_index =libdfhack.Creatures_GetDwarfRaceIndex(self._c_ptr)
-
- return self._d_race_index
-
- @property
- def dwarf_civ_id(self):
- if self._d_civ_id is None:
- self._d_civ_id = libdfhack.Creatures_GetDwarfCivId(self._c_ptr)
-
- return self._d_civ_id
diff --git a/dfhack-python/dfhack_api_ctypes.py b/dfhack-python/dfhack_api_ctypes.py
deleted file mode 100644
index 185746e3..00000000
--- a/dfhack-python/dfhack_api_ctypes.py
+++ /dev/null
@@ -1,152 +0,0 @@
-from ctypes import *
-from pydftypes import *
-
-
-libdfhack.API_Alloc.restype = c_void_p
-libdfhack.API_Free.argtypes = [ c_void_p ]
-
-libdfhack.API_getMemoryInfo.restype = c_void_p
-libdfhack.API_getProcess.restype = c_void_p
-libdfhack.API_getWindow.restype = c_void_p
-
-libdfhack.API_getCreatures.restype = c_void_p
-libdfhack.API_getMaps.restype = c_void_p
-libdfhack.API_getGui.restype = c_void_p
-libdfhack.API_getMaterials.restype = c_void_p
-libdfhack.API_getTranslation.restype = c_void_p
-libdfhack.API_getVegetation.restype = c_void_p
-libdfhack.API_getBuildings.restype = c_void_p
-libdfhack.API_getConstructions.restype = c_void_p
-libdfhack.API_getItems.restype = c_void_p
-
-class API(object):
- def __init__(self, memory_path):
- self._api_ptr = libdfhack.API_Alloc(create_string_buffer(memory_path))
-
- self._mat_obj = None
- self._map_obj = None
- self._veg_obj = None
- self._build_obj = None
- self._con_obj = None
- self._gui_obj = None
- self._tran_obj = None
- self._item_obj = None
- self._creature_obj = None
-
- def __del__(self):
- libdfhack.API_Free(self._api_ptr)
-
- def attach(self):
- return libdfhack.API_Attach(self._api_ptr) > 0
-
- def detach(self):
- return libdfhack.API_Detach(self._api_ptr) > 0
-
- def suspend(self):
- return libdfhack.API_Suspend(self._api_ptr) > 0
-
- def resume(self):
- return libdfhack.API_Resume(self._api_ptr) > 0
-
- def force_resume(self):
- return libdfhack.API_ForceResume(self._api_ptr) > 0
-
- def async_suspend(self):
- return libdfhack.API_AsyncSuspend(self._api_ptr) > 0
-
- @property
- def is_attached(self):
- return libdfhack.API_isAttached(self._api_ptr) > 0
-
- @property
- def is_suspended(self):
- return libdfhack.API_isSuspended(self._api_ptr) > 0
-
- @property
- def materials(self):
- import materials
- if self._mat_obj is None:
- self._mat_obj = materials.Materials(libdfhack.API_getMaterials(self._api_ptr))
-
- return self._mat_obj
-
- @property
- def maps(self):
- import maps
- if self._map_obj is None:
- self._map_obj = maps.Maps(libdfhack.API_getMaps(self._api_ptr))
-
- return self._map_obj
-
- @property
- def vegetation(self):
- import vegetation
- if self._veg_obj is None:
- self._veg_obj = vegetation.Vegetation(libdfhack.API_getVegetation(self._api_ptr))
-
- return self._veg_obj
-
- @property
- def buildings(self):
- import buildings
- if self._build_obj is None:
- self._build_obj = buildings.Buildings(libdfhack.API_getBuildings(self._api_ptr))
-
- return self._build_obj
-
- @property
- def creatures(self):
- import creatures
- if self._creature_obj is None:
- self._creature_obj = creatures.Creatures(libdfhack.API_getCreatures(self._api_ptr))
-
- return self._creature_obj
-
- @property
- def gui(self):
- import gui
- if self._gui_obj is None:
- self._gui_obj = gui.Gui(libdfhack.API_getGui(self._api_ptr))
-
- return self._gui_obj
-
- @property
- def items(self):
- import items
- if self._item_obj is None:
- self._item_obj = items.Items(libdfhack.API_getItems(self._api_ptr))
-
- return self._item_obj
-
- @property
- def translation(self):
- import translation
- if self._tran_obj is None:
- self._tran_obj = translation.Translation(libdfhack.API_getTranslation(self._api_ptr))
-
- return self._tran_obj
-
-def reveal():
- df = API("Memory.xml")
- df.attach()
-
- m = df.maps
-
- m.start()
-
- m_x, m_y, m_z = m.size
-
- for x in xrange(m_x):
- for y in xrange(m_y):
- for z in xrange(m_z):
- if m.is_valid_block(x, y, z):
- d = m.read_designations(x, y, z)
-
- for i in d:
- for j in i:
- j.bits.hidden = 0
-
- m.write_designations(x, y, z, d)
-
- m.finish()
- df.detach()
diff --git a/dfhack-python/dftypes.py b/dfhack-python/dftypes.py
deleted file mode 100644
index 729f7cdf..00000000
--- a/dfhack-python/dftypes.py
+++ /dev/null
@@ -1,637 +0,0 @@
-from ctypes import *
-from flags import *
-from enum import *
-import util
-from util import *
-
-libdfhack = cdll.libdfhack
-
-def _register_callback(name, func):
- ptr = c_void_p.in_dll(libdfhack, name)
- ptr.value = cast(func, c_void_p).value
-
-_register_callback("alloc_byte_buffer_callback", alloc_byte_buffer)
-_register_callback("alloc_ubyte_buffer_callback", alloc_ubyte_buffer)
-_register_callback("alloc_short_buffer_callback", alloc_short_buffer)
-_register_callback("alloc_ushort_buffer_callback", alloc_ushort_buffer)
-_register_callback("alloc_int_buffer_callback", alloc_int_buffer)
-_register_callback("alloc_uint_buffer_callback", alloc_uint_buffer)
-_register_callback("alloc_char_buffer_callback", alloc_char_buffer)
-
-_arr_create_func = CFUNCTYPE(c_void_p, c_int)
-_dfhack_string = (c_char * 128)
-
-TileTypes40d = ((c_int * 16) * 16)
-BiomeIndices40d = c_ubyte * 16
-Temperatures = ((c_ushort * 16) * 16)
-Designations40d = ((DesignationFlags * 16) * 16)
-Occupancies40d = ((OccupancyFlags * 16) * 16)
-
-def wall_terrain_check(terrain):
- return libdfhack.DFHack_isWallTerrain(terrain) > 0
-
-def floor_terrain_check(terrain):
- return libdfhack.DFHack_isFloorTerrain(terrain) > 0
-
-def ramp_terrain_check(terrain):
- return libdfhack.DFHack_isRampTerrain(terrain) > 0
-
-def stair_terrain_check(terrain):
- return libdfhack.DFHack_isStairTerrain(terrain) > 0
-
-def open_terrain_check(terrain):
- return libdfhack.DFHack_isOpenTerrain(terrain) > 0
-
-def get_vegetation_type(terrain):
- return libdfhack.DFHack_getVegetationType(terrain)
-
-class Position2D(Structure):
- _fields_ = [("x", c_ushort),
- ("y", c_ushort)]
-
-class Position3D(Structure):
- _fields_ = [("x", c_ushort),
- ("y", c_ushort),
- ("z", c_uint)]
-
-class PlaneCoord(Union):
- _fields_ = [("xyz", Position3D),
- ("dim", Position2D),
- ("comparate", c_ulong)]
-
- def __cmp__(self, other):
- if isinstance(other, PlaneCoord):
- return self.comparate - other.comparate
- else:
- raise TypeError("argument must be of type %s" % type(self))
-
-class Feature(Structure):
- _fields_ = [("type", FeatureType),
- ("main_material", c_short),
- ("sub_material", c_short),
- ("discovered", c_byte),
- ("origin", c_uint)]
-
-class FeatureMapNode(Structure):
- _fields_ = [("coordinate", PlaneCoord),
- ("features", POINTER(Feature)),
- ("feature_length", c_uint)]
-
-def _alloc_featuremap_buffer_callback(ptr, fmap_list, count):
- arr_list = []
- arr = (FeatureMapNode * count)()
-
- for i, v in enumerate(arr):
- f_count = int(fmap_list[i])
- f_arr = (Feature * f_count)()
-
- f_p = cast(f_arr, POINTER(Feature))
- v.features = f_p
-
- arr_list.extend((f_arr, f_p))
-
- p = cast(arr, POINTER(FeatureMapNode))
- ptr[0] = p
-
- pointer_dict[addressof(arr)] = (ptr, arr, p, arr_list)
-
- return 1
-
-_alloc_featuremap_buffer_functype = CFUNCTYPE(c_int, POINTER(POINTER(FeatureMapNode)), uint_ptr, c_uint)
-_alloc_featuremap_buffer_func = _alloc_featuremap_buffer_functype(_alloc_featuremap_buffer_callback)
-_register_callback("alloc_featuremap_buffer_callback", _alloc_featuremap_buffer_func)
-
-class Vein(Structure):
- _fields_ = [("vtable", c_uint),
- ("type", c_int),
- ("assignment", c_short * 16),
- ("flags", c_uint),
- ("address_of", c_uint)]
-
-_vein_ptr = POINTER(Vein)
-
-def _alloc_vein_buffer_callback(ptr, count):
- return util._allocate_array(ptr, Vein, count)
-
-_vein_functype = CFUNCTYPE(c_int, POINTER(_vein_ptr), c_uint)
-_vein_func = _vein_functype(_alloc_vein_buffer_callback)
-_register_callback("alloc_vein_buffer_callback", _vein_func)
-
-class FrozenLiquidVein(Structure):
- _fields_ = [("vtable", c_uint),
- ("tiles", TileTypes40d),
- ("address_of", c_uint)]
-
-_frozenvein_ptr = POINTER(FrozenLiquidVein)
-
-def _alloc_frozenliquidvein_buffer_callback(ptr, count):
- return util._allocate_array(ptr, FrozenLiquidVein, count)
-
-_frozenliquidvein_functype = CFUNCTYPE(c_int, POINTER(_frozenvein_ptr), c_uint)
-_frozenliquidvein_func = _frozenliquidvein_functype(_alloc_frozenliquidvein_buffer_callback)
-_register_callback("alloc_frozenliquidvein_buffer_callback", _frozenliquidvein_func)
-
-class SpatterVein(Structure):
- _fields_ = [("vtable", c_uint),
- ("mat1", c_ushort),
- ("unk1", c_ushort),
- ("mat2", c_uint),
- ("mat3", c_ushort),
- ("intensity", ((c_ubyte * 16) * 16)),
- ("address_of", c_uint)]
-
-_spattervein_ptr = POINTER(SpatterVein)
-
-def _alloc_spattervein_buffer_callback(ptr, count):
- return util._allocate_array(ptr, SpatterVein, count)
-
-_spattervein_functype = CFUNCTYPE(c_int, POINTER(_spattervein_ptr), c_uint)
-_spattervein_func = _spattervein_functype(_alloc_spattervein_buffer_callback)
-_register_callback("alloc_spattervein_buffer_callback", _spattervein_func)
-
-class GrassVein(Structure):
- _fields_ = [("vtable", c_uint),
- ("material", c_uint),
- ("intensity", ((c_ubyte * 16) * 16)),
- ("address_of", c_uint)]
-
-_grassvein_ptr = POINTER(GrassVein)
-
-def _alloc_grassvein_buffer_callback(ptr, count):
- return util._allocate_array(ptr, GrassVein, count)
-
-_grassvein_functype = CFUNCTYPE(c_int, POINTER(_grassvein_ptr), c_uint)
-_grassvein_func = _grassvein_functype(_alloc_grassvein_buffer_callback)
-_register_callback("alloc_grassvein_buffer_callback", _grassvein_func)
-
-class WorldConstruction(Structure):
- _fields_ = [("vtable", c_uint),
- ("material", c_uint),
- ("assignment", c_ushort * 16),
- ("address_of", c_uint)]
-
-_worldconstruction_ptr = POINTER(WorldConstruction)
-
-def _alloc_worldconstruction_buffer_callback(ptr, count):
- return util._allocate_array(ptr, WorldConstruction, count)
-
-_worldconstruction_functype = CFUNCTYPE(c_int, POINTER(_worldconstruction_ptr), c_uint)
-_worldconstruction_func = _worldconstruction_functype(_alloc_worldconstruction_buffer_callback)
-_register_callback("alloc_worldconstruction_buffer_callback", _worldconstruction_func)
-
-class MapBlock40d(Structure):
- _fields_ = [("tiletypes", TileTypes40d),
- ("designation", Designations40d),
- ("occupancy", Occupancies40d),
- ("biome_indices", BiomeIndices40d),
- ("origin", c_uint),
- ("blockflags", BlockFlags),
- ("global_feature", c_short),
- ("local_feature", c_short)]
-
-
-class ViewScreen(Structure):
- _fields_ = [("type", c_int)]
-
-class Matgloss(Structure):
- _fields_ = [("id", _dfhack_string),
- ("fore", c_byte),
- ("back", c_byte),
- ("bright", c_byte),
- ("name", _dfhack_string)]
-
-_matgloss_ptr = POINTER(Matgloss)
-
-def _alloc_matgloss_buffer_callback(ptr, count):
- return util._allocate_array(ptr, Matgloss, count)
-
-_matgloss_functype = CFUNCTYPE(c_int, POINTER(_matgloss_ptr), c_uint)
-_matgloss_func = _matgloss_functype(_alloc_matgloss_buffer_callback)
-_register_callback("alloc_matgloss_buffer_callback", _matgloss_func)
-
-class MatglossPair(Structure):
- _fields_ = [("type", c_short),
- ("index", c_int)]
-
-class DescriptorColor(Structure):
- _fields_ = [("id", _dfhack_string),
- ("r", c_float),
- ("v", c_float),
- ("b", c_float),
- ("name", _dfhack_string)]
-
-def _alloc_descriptor_buffer_callback(ptr, count):
- return util._allocate_array(ptr, DescriptorColor, count)
-
-_descriptor_functype = CFUNCTYPE(c_int, POINTER(POINTER(DescriptorColor)), c_uint)
-_descriptor_func = _descriptor_functype(_alloc_descriptor_buffer_callback)
-_register_callback("alloc_descriptor_buffer_callback", _descriptor_func)
-
-class MatglossPlant(Structure):
- _fields_ = [("id", _dfhack_string),
- ("fore", c_ubyte),
- ("back", c_ubyte),
- ("bright", c_ubyte),
- ("name", _dfhack_string),
- ("drink_name", _dfhack_string),
- ("food_name", _dfhack_string),
- ("extract_name", _dfhack_string)]
-
-class MatglossOther(Structure):
- _fields_ = [("rawname", c_char * 128)]
-
-def _alloc_matgloss_other_buffer_callback(ptr, count):
- return util._allocate_array(ptr, MatglossOther, count)
-
-_matgloss_other_functype = CFUNCTYPE(c_int, POINTER(POINTER(MatglossOther)), c_uint)
-_matgloss_other_func = _matgloss_other_functype(_alloc_matgloss_other_buffer_callback)
-_register_callback("alloc_matgloss_other_buffer_callback", _matgloss_other_func)
-
-class Building(Structure):
- _fields_ = [("origin", c_uint),
- ("vtable", c_uint),
- ("x1", c_uint),
- ("y1", c_uint),
- ("x2", c_uint),
- ("y2", c_uint),
- ("z", c_uint),
- ("material", MatglossPair),
- ("type", c_uint)]
-
-class CustomWorkshop(Structure):
- _fields_ = [("index", c_uint),
- ("name", c_char * 256)]
-
-def _alloc_custom_workshop_buffer_callback(ptr, count):
- return util._allocate_array(ptr, CustomWorkshop, count)
-
-_custom_workshop_functype = CFUNCTYPE(c_int, POINTER(POINTER(CustomWorkshop)), c_uint)
-_custom_workshop_func = _custom_workshop_functype(_alloc_custom_workshop_buffer_callback)
-_register_callback("alloc_customWorkshop_buffer_callback", _custom_workshop_func)
-
-class Construction(Structure):
- _fields_ = [("x", c_ushort),
- ("y", c_ushort),
- ("z", c_ushort),
- ("form", c_ushort),
- ("unk_8", c_ushort),
- ("mat_type", c_ushort),
- ("mat_idx", c_uint),
- ("unk3", c_ushort),
- ("unk4", c_ushort),
- ("unk5", c_ushort),
- ("unk6", c_uint),
- ("origin", c_uint)]
-
-class Tree(Structure):
- _fields_ = [("type", c_ushort),
- ("material", c_ushort),
- ("x", c_ushort),
- ("y", c_ushort),
- ("z", c_ushort),
- ("address", c_uint)]
-
- def __str__(self):
- water = ""
- tree_type = "tree"
-
- if self.type == 1 or self.type == 3:
- water = "near-water"
- if self.type == 2 or self.type == 3:
- tree_type = "shrub"
-
- s = "%d:%d = %s %s\nAddress: 0x%x\n" % (self.type, self.material, water, tree_type, self.address)
-
- return s
-
-def _alloc_tree_buffer_callback(ptr, count):
- return util._allocate_array(ptr, Tree, count)
-
-_alloc_tree_buffer_functype = CFUNCTYPE(c_int, POINTER(POINTER(Tree)), c_uint)
-_alloc_tree_buffer_func = _alloc_tree_buffer_functype(_alloc_tree_buffer_callback)
-_register_callback("alloc_tree_buffer_callback", _alloc_tree_buffer_func)
-
-class Material(Structure):
- _fields_ = [("itemType", c_short),
- ("subType", c_short),
- ("subIndex", c_short),
- ("index", c_int),
- ("flags", c_uint)]
-
-def _alloc_material_buffer_callback(ptr, count):
- return util._allocate_array(ptr, Material, count)
-
-_material_functype = CFUNCTYPE(c_int, POINTER(POINTER(Material)), c_uint)
-_material_func = _material_functype(_alloc_material_buffer_callback)
-_register_callback("alloc_material_buffer_callback", _material_func)
-
-class Skill(Structure):
- _fields_ = [("id", c_uint),
- ("experience", c_uint),
- ("rating", c_uint)]
-
-class Job(Structure):
- _fields_ = [("active", c_byte),
- ("jobId", c_uint),
- ("jobType", c_ubyte),
- ("occupationPtr", c_uint)]
-
-class Like(Structure):
- _fields_ = [("type", c_short),
- ("itemClass", c_short),
- ("itemIndex", c_short),
- ("material", MatglossPair),
- ("active", c_byte)]
-
-class Attribute(Structure):
- _fields_ = [("level", c_uint),
- ("field_4", c_uint),
- ("field_8", c_uint),
- ("field_C", c_uint),
- ("leveldiff", c_uint),
- ("field_14", c_uint),
- ("field_18", c_uint)]
-
-class Name(Structure):
- _fields_ = [("first_name", _dfhack_string),
- ("nickname", _dfhack_string),
- ("words", (c_int * 7)),
- ("parts_of_speech", (c_ushort * 7)),
- ("language", c_uint),
- ("has_name", c_byte)]
-
-class Note(Structure):
- _fields_ = [("symbol", c_char),
- ("foreground", c_ushort),
- ("background", c_ushort),
- ("name", _dfhack_string),
- ("x", c_ushort),
- ("y", c_ushort),
- ("z", c_ushort)]
-
-class Settlement(Structure):
- _fields_ = [("origin", c_uint),
- ("name", Name),
- ("world_x", c_short),
- ("world_y", c_short),
- ("local_x1", c_short),
- ("local_x2", c_short),
- ("local_y1", c_short),
- ("local_y2", c_short)]
-
-_NUM_CREATURE_TRAITS = 30
-_NUM_CREATURE_LABORS = 102
-
-class Soul(Structure):
- _fields_ = [("numSkills", c_ubyte),
- ("skills", (Skill * 256)),
- ("traits", (c_ushort * _NUM_CREATURE_TRAITS)),
- ("analytical_ability", Attribute),
- ("focus", Attribute),
- ("willpower", Attribute),
- ("creativity", Attribute),
- ("intuition", Attribute),
- ("patience", Attribute),
- ("memory", Attribute),
- ("linguistic_ability", Attribute),
- ("spatial_sense", Attribute),
- ("musicality", Attribute),
- ("kinesthetic_sense", Attribute),
- ("empathy", Attribute),
- ("social_awareness", Attribute)]
-
-_MAX_COLORS = 15
-
-class Creature(Structure):
- _fields_ = [("origin", c_uint),
- ("x", c_ushort),
- ("y", c_ushort),
- ("z", c_ushort),
- ("race", c_uint),
- ("civ", c_int),
- ("flags1", CreatureFlags1),
- ("flags2", CreatureFlags2),
- ("name", Name),
- ("mood", c_short),
- ("mood_skill", c_short),
- ("artifact_name", Name),
- ("profession", c_ubyte),
- ("custom_profession", _dfhack_string),
- ("labors", (c_ubyte * _NUM_CREATURE_LABORS)),
- ("current_job", Job),
- ("happiness", c_uint),
- ("id", c_uint),
- ("strength", Attribute),
- ("agility", Attribute),
- ("toughness", Attribute),
- ("endurance", Attribute),
- ("recuperation", Attribute),
- ("disease_resistance", Attribute),
- ("squad_leader_id", c_int),
- ("sex", c_ubyte),
- ("caste", c_ushort),
- ("pregnancy_timer", c_uint),
- ("has_default_soul", c_byte),
- ("defaultSoul", Soul),
- ("nbcolors", c_uint),
- ("color", (c_uint * _MAX_COLORS)),
- ("birth_year", c_int),
- ("birth_time", c_uint)]
-
-class CreatureExtract(Structure):
- _fields_ = [("rawname", _dfhack_string)]
-
-class BodyPart(Structure):
- _fields_ = [("id", _dfhack_string),
- ("category", _dfhack_string),
- ("single", _dfhack_string),
- ("plural", _dfhack_string)]
-
-_bodypart_ptr = POINTER(BodyPart)
-
-class ColorModifier(Structure):
- _fields_ = [("part", _dfhack_string),
- ("colorlist", POINTER(c_uint)),
- ("colorlistLength", c_uint),
- ("startdate", c_uint),
- ("enddate", c_uint)]
-
- def __init__(self):
- self.colorlistLength = 0
-
-_colormodifier_ptr = POINTER(ColorModifier)
-
-class CreatureCaste(Structure):
- _fields_ = [("rawname", _dfhack_string),
- ("singular", _dfhack_string),
- ("plural", _dfhack_string),
- ("adjective", _dfhack_string),
- ("color_modifier", _colormodifier_ptr),
- ("color_modifier_length", c_uint),
- ("bodypart", _bodypart_ptr),
- ("bodypart_length", c_uint),
- ("strength", Attribute),
- ("agility", Attribute),
- ("toughness", Attribute),
- ("endurance", Attribute),
- ("recuperation", Attribute),
- ("disease_resistance", Attribute),
- ("analytical_ability", Attribute),
- ("focus", Attribute),
- ("willpower", Attribute),
- ("creativity", Attribute),
- ("intuition", Attribute),
- ("patience", Attribute),
- ("memory", Attribute),
- ("linguistic_ability", Attribute),
- ("spatial_sense", Attribute),
- ("musicality", Attribute),
- ("kinesthetic_sense", Attribute)]
-
-_creaturecaste_ptr = POINTER(CreatureCaste)
-
-class TileColor(Structure):
- _fields_ = [("fore", c_ushort),
- ("back", c_ushort),
- ("bright", c_ushort)]
-
-class ColorDescriptor(Structure):
- _fields_ = [("colorlistLength", c_uint)]
-
-class CasteDescriptor(Structure):
- _fields_ = [("color_descriptors", POINTER(ColorDescriptor)),
- ("colorModifierLength", c_uint),
- ("bodypartLength", c_uint)]
-
-class CreatureTypeDescriptor(Structure):
- _fields_ = [("caste_descriptors", POINTER(CasteDescriptor)),
- ("castesCount", c_uint),
- ("extractCount", c_uint)]
-
-class CreatureType(Structure):
- _fields_ = [("rawname", _dfhack_string),
- ("castes", _creaturecaste_ptr),
- ("castes_count", c_uint),
- ("extract", POINTER(CreatureExtract)),
- ("extract_count", c_uint),
- ("tile_character", c_ubyte),
- ("tilecolor", TileColor)]
-
-_creaturetype_ptr = POINTER(CreatureType)
-
-def _alloc_creaturetype_buffer(ptr, descriptors, count):
- arr_list = []
- c_arr = (CreatureType * count)()
-
- for i, v in enumerate(c_arr):
- v.castesCount = descriptors[i].castesCount
- v_caste_arr = (CreatureCaste * v.castesCount)()
-
- for j, v_c in enumerate(v_caste_arr):
- caste_descriptor = descriptors[i].caste_descriptors[j]
-
- v_c.colorModifierLength = caste_descriptor.colorModifierLength
- c_color_arr = (ColorModifier * v_c.colorModifierLength)()
-
- for k, c_c in enumerate(c_color_arr):
- color_descriptor = caste_descriptor.color_descriptors[k]
-
- c_c.colorlistLength = color_descriptor.colorlistLength
-
- c_color_list_arr = (c_uint * c_c.colorlistLength)()
-
- p = cast(c_color_list_arr, POINTER(c_uint))
-
- c_c.colorlist = p
-
- arr_list.extend((c_color_list_arr, p))
-
- c_p = cast(c_color_arr, POINTER(ColorModifier))
- v_c.colorModifier = c_p
-
- v_c.bodypartLength = caste_descriptor.bodypartLength
- c_bodypart_arr = (BodyPart * v_c.bodypartLength)()
-
- b_p = cast(c_bodypart_arr, POINTER(BodyPart))
- v_c.bodypart = b_p
-
- arr_list.extend((c_color_arr, c_p, c_bodypart_arr, b_p))
-
- v.extractCount = descriptors[i].extractCount
- v_extract_arr = (CreatureExtract * v.extractCount)()
-
- caste_p = cast(v_caste_arr, POINTER(CreatureCaste))
- v.castes = caste_p
-
- extract_p = cast(v_extract_arr, POINTER(CreatureExtract))
- v.extract = extract_p
-
- arr_list.extend((v_caste_arr, caste_p, v_extract_arr, extract_p))
-
- p = cast(c_arr, _creaturetype_ptr)
- ptr[0] = p
-
- pointer_dict[addressof(c_arr)] = (ptr, c_arr, p, arr_list)
-
- return 1
-
-_alloc_creaturetype_buffer_functype = CFUNCTYPE(c_int, POINTER(_creaturetype_ptr), POINTER(CreatureTypeDescriptor), c_uint)
-_alloc_creaturetype_buffer_func = _alloc_creaturetype_buffer_functype(_alloc_creaturetype_buffer)
-_register_callback("alloc_creaturetype_buffer_callback", _alloc_creaturetype_buffer_func)
-
-class GameModes(Structure):
- _fields_ = [("control_mode", c_ubyte),
- ("game_mode", c_ubyte)]
-
-class Hotkey(Structure):
- _fields_ = [("name", (c_char * 10)),
- ("mode", c_short),
- ("x", c_int),
- ("y", c_int),
- ("z", c_int)]
-
-_hotkey_ptr = POINTER(Hotkey)
-
-def _alloc_hotkey_buffer_callback(ptr, count):
- print "hotkey alloc: %d" % count
- return util._allocate_array(ptr, Hotkey, count)
-
-_hotkey_functype = CFUNCTYPE(c_int, POINTER(_hotkey_ptr), c_uint)
-_hotkey_func = _hotkey_functype(_alloc_hotkey_buffer_callback)
-_register_callback("alloc_hotkey_buffer_callback", _hotkey_func)
-
-class MemRange(Structure):
- _fields_ = [("start", c_ulong),
- ("end", c_ulong),
- ("name", (c_char * 1024)),
- ("read", c_uint, 1),
- ("write", c_uint, 1),
- ("execute", c_uint, 1),
- ("shared", c_uint, 1),
- ("valid", c_ubyte),
- ("buffer", POINTER(c_ubyte))]
-
-_memrange_ptr = POINTER(MemRange)
-
-def _alloc_memrange_buffer(ptr, descriptors, count):
- arr_list = []
- m_arr = (MemRange * count)()
-
- for i, v in enumerate(m_arr):
- buf_arr = (c_ubyte * int(descriptors[i]))()
- buf_ptr = cast(buf_arr, POINTER(c_ubyte))
-
- v.buffer = buf_ptr
-
- arr_list.extend((buf_arr, buf_ptr))
-
- p = cast(m_arr, _memrange_ptr)
- ptr[0] = p
-
- pointer_dict[addressof(m_arr)] = (ptr, m_arr, p, arr_list)
-
- return 1
-
-_alloc_memrange_buffer_functype = CFUNCTYPE(c_int, POINTER(_memrange_ptr), POINTER(c_uint), c_uint)
-_alloc_memrange_buffer_func = _alloc_memrange_buffer_functype(_alloc_memrange_buffer)
-_register_callback("alloc_memrange_buffer_callback", _alloc_memrange_buffer_func) \ No newline at end of file
diff --git a/dfhack-python/enum.py b/dfhack-python/enum.py
deleted file mode 100644
index bc123a8c..00000000
--- a/dfhack-python/enum.py
+++ /dev/null
@@ -1,156 +0,0 @@
-#found this in the cookbook: http://code.activestate.com/recipes/576415/
-
-from ctypes import c_uint
-
-class C_EnumerationType(type(c_uint)):
- def __new__(metacls, name, bases, dictionary):
- if not "_members_" in dictionary:
- _members_ = {}
-
- for key, value in dictionary.iteritems():
- if not key.startswith("_"):
- _members_[key] = value
-
- dictionary["_members_"] = _members_
-
- cls = type(c_uint).__new__(metacls, name, bases, dictionary)
-
- for key, value in cls._members_.iteritems():
- globals()[key] = value
-
- return cls
-
- def __contains__(self, value):
- return value in self._members_.values()
-
- def __repr__(self):
- return "<Enumeration %s>" % self.__name__
-
-class C_Enumeration(c_uint):
- __metaclass__ = C_EnumerationType
- _members_ = {}
-
- def __init__(self, value):
- for key, value in self._members_.iteritems():
- if v == value:
- self.name = key
- break
- else:
- raise ValueError("No enumeration member with value %r" % value)
-
- c_uint.__init__(self, value)
-
- def __repr__(self):
- return "<member %s=%d of %r>" % (self.name, self.value, self.__class__)
-
- @classmethod
- def from_param(cls, param):
- if isinstance(param, C_Enumeration):
- if param.__class__ != cls:
- raise ValueError("Cannot mix enumeration members")
- else:
- return param
- else:
- return cls(param)
-
-FeatureType = C_EnumerationType("FeatureType",
- (c_uint,),
- {"Other" : 0,
- "Adamantine_Tube" : 1,
- "Underworld" : 2,
- "Hell_Temple" : 3})
-
-BiomeOffset = C_EnumerationType("BiomeOffset",
- (c_uint,),
- {"NorthWest" : 0,
- "North" : 1,
- "NorthEast" : 2,
- "West" : 3,
- "Here" : 4,
- "East" : 5,
- "SouthWest" : 6,
- "South" : 7,
- "SouthEast" : 8,
- "BiomeCount" : 9})
-
-TrafficType = C_EnumerationType("TrafficType",
- (c_uint,),
- {"Normal" : 0,
- "Low" : 1,
- "High" : 2,
- "Restricted" : 3})
-
-DesignationType = C_EnumerationType("DesignationType",
- (c_uint,),
- {"No" : 0,
- "Default" : 1,
- "UD_Stair" : 2,
- "Channel" : 3,
- "Ramp" : 4,
- "D_Stair" : 5,
- "U_Stair" : 6,
- "Whatever" : 7})
-
-LiquidType = C_EnumerationType("LiquidType",
- (c_uint,),
- {"Water" : 0,
- "Magma" : 1})
-
-#this list must stay in the same order as the one in dfhack/library/include/dfhack/modules/WindowIO.h!
-_keys = ["ENTER",
- "SPACE",
- "BACK_SPACE",
- "TAB",
- "CAPS_LOCK",
- "LEFT_SHIFT",
- "RIGHT_SHIFT",
- "LEFT_CONTROL",
- "RIGHT_CONTROL",
- "ALT",
- "WAIT",
- "ESCAPE",
- "UP",
- "DOWN",
- "LEFT",
- "RIGHT",
- "F1",
- "F2",
- "F3",
- "F4",
- "F5",
- "F6",
- "F7",
- "F8",
- "F9",
- "F10",
- "F11",
- "F12",
- "PAGE_UP",
- "PAGE_DOWN",
- "INSERT",
- "DFK_DELETE",
- "HOME",
- "END",
- "KEYPAD_DIVIDE",
- "KEYPAD_MULTIPLY",
- "KEYPAD_SUBTRACT",
- "KEYPAD_ADD,"
- "KEYPAD_ENTER",
- "KEYPAD_0",
- "KEYPAD_1",
- "KEYPAD_2",
- "KEYPAD_3",
- "KEYPAD_4",
- "KEYPAD_5",
- "KEYPAD_6",
- "KEYPAD_7",
- "KEYPAD_8",
- "KEYPAD_9",
- "KEYPAD_DECIMAL_POINT",
- "NUM_SPECIALS"]
-
-_key_dict = dict([(k, i) for i, k in enumerate(_keys)])
-
-KeyType = C_EnumerationType("KeyType",
- (c_uint,),
- _key_dict)
diff --git a/dfhack-python/flags.py b/dfhack-python/flags.py
deleted file mode 100644
index e058ab51..00000000
--- a/dfhack-python/flags.py
+++ /dev/null
@@ -1,201 +0,0 @@
-# -*- coding: utf-8 -*-
-from ctypes import Structure, Union, c_uint
-from enum import *
-
-class DesignationStruct(Structure):
- _fields_ = [("flow_size", c_uint, 3),
- ("pile", c_uint, 1),
- ("dig", DesignationType, 3),
- ("smooth", c_uint, 2),
- ("hidden", c_uint, 1),
- ("geolayer_index", c_uint, 4),
- ("light", c_uint, 1),
- ("subterranean", c_uint, 1),
- ("skyview", c_uint, 1),
- ("biome", c_uint, 4),
- ("liquid_type", c_uint, 1),
- ("water_table", c_uint, 1),
- ("rained", c_uint, 1),
- ("traffic", c_uint, 2),
- ("flow_forbid", c_uint, 1),
- ("liquid_static", c_uint, 1),
- ("feature_local", c_uint, 1),
- ("feature_global", c_uint, 1),
- ("water_stagnant", c_uint, 1),
- ("water_salt", c_uint, 1)]
-
-class DesignationFlags(Union):
- _fields_ = [("whole", c_uint, 32),
- ("bits", DesignationStruct)]
-
- def __init__(self, initial = 0):
- self.whole = initial
-
- def __int__(self):
- return self.whole
-
-class OccupancyStruct(Structure):
- _fields_ = [("building", c_uint, 3),
- ("unit", c_uint, 1),
- ("unit_grounded", c_uint, 1),
- ("item", c_uint, 1),
- ("splatter", c_uint, 26)]
-
-class OccupancyFlags(Union):
- _fields_ = [("whole", c_uint, 32),
- ("bits", OccupancyStruct)]
-
- def __init__(self, initial = 0):
- self.whole = initial
-
- def __int__(self):
- return self.whole
-
-class CreatureStruct1(Structure):
- _fields_ = [("move_state", c_uint, 1),
- ("dead", c_uint, 1),
- ("has_mood", c_uint, 1),
- ("had_mood", c_uint, 1),
- ("marauder", c_uint, 1),
- ("drowning", c_uint, 1),
- ("merchant", c_uint, 1),
- ("forest", c_uint, 1),
- ("left", c_uint, 1),
- ("rider", c_uint, 1),
- ("incoming", c_uint, 1),
- ("diplomat", c_uint, 1),
- ("zombie", c_uint, 1),
- ("skeleton", c_uint, 1),
- ("can_swap", c_uint, 1),
- ("on_ground", c_uint, 1),
- ("projectile", c_uint, 1),
- ("active_invader", c_uint, 1),
- ("hidden_in_ambush", c_uint, 1),
- ("invader_origin", c_uint, 1),
- ("coward", c_uint, 1),
- ("hidden_ambusher", c_uint, 1),
- ("invades", c_uint, 1),
- ("check_flows", c_uint, 1),
- ("ridden", c_uint, 1),
- ("caged", c_uint, 1),
- ("tame", c_uint, 1),
- ("chained", c_uint, 1),
- ("royal_guard", c_uint, 1),
- ("fortress_guard", c_uint, 1),
- ("suppress_wield", c_uint, 1),
- ("important_historical_figure", c_uint, 1)]
-
-class CreatureFlags1(Union):
- _fields_ = [("whole", c_uint, 32),
- ("bits", CreatureStruct1)]
-
- def __init__(self, initial = 0):
- self.whole = initial
-
- def __int__(self):
- return self.whole
-
-class CreatureStruct2(Structure):
- _fields_ = [("swimming", c_uint, 1),
- ("sparring", c_uint, 1),
- ("no_notify", c_uint, 1),
- ("unused", c_uint, 1),
- ("calculated_nerves", c_uint, 1),
- ("calculated_bodyparts", c_uint, 1),
- ("important_historical_figure", c_uint, 1),
- ("killed", c_uint, 1),
- ("cleanup_1", c_uint, 1),
- ("cleanup_2", c_uint, 1),
- ("cleanup_3", c_uint, 1),
- ("for_trade", c_uint, 1),
- ("trade_resolved", c_uint, 1),
- ("has_breaks", c_uint, 1),
- ("gutted", c_uint, 1),
- ("circulatory_spray", c_uint, 1),
- ("locked_in_for_trading", c_uint, 1),
- ("slaughter", c_uint, 1),
- ("underworld", c_uint, 1),
- ("resident", c_uint, 1),
- ("cleanup_4", c_uint, 1),
- ("calculated_insulation", c_uint, 1),
- ("visitor_uninvited", c_uint, 1),
- ("visitor", c_uint, 1),
- ("calculated_inventory", c_uint, 1),
- ("vision_good", c_uint, 1),
- ("vision_damaged", c_uint, 1),
- ("vision_missing", c_uint, 1),
- ("breathing_good", c_uint, 1),
- ("breathing_problem", c_uint, 1),
- ("roaming_wilderness_population_source", c_uint, 1),
- ("roaming_wilderness_population_source_not_a_map_feature", c_uint, 1)]
-
-class CreatureFlags2(Union):
- _fields_ = [("whole", c_uint, 32),
- ("bits", CreatureStruct2)]
-
- def __init__(self, initial = 0):
- self.whole = initial
-
- def __int__(self):
- return self.whole
-
-class ItemStruct(Structure):
- _fields_ = [("on_ground", c_uint, 1),
- ("in_job", c_uint, 1),
- ("in_inventory", c_uint, 1),
- ("u_ngrd1", c_uint, 1),
- ("in_workshop", c_uint, 1),
- ("u_ngrd2", c_uint, 1),
- ("u_ngrd3", c_uint, 1),
- ("rotten", c_uint, 1),
- ("unk1", c_uint, 1),
- ("u_ngrd4", c_uint, 1),
- ("unk2", c_uint, 1),
- ("u_ngrd5", c_uint, 1),
- ("unk3", c_uint, 1),
- ("u_ngrd6", c_uint, 1),
- ("narrow", c_uint, 1),
- ("u_ngrd7", c_uint, 1),
- ("worn", c_uint, 1),
- ("unk4", c_uint, 1),
- ("u_ngrd8", c_uint, 1),
- ("forbid", c_uint, 1),
- ("unk5", c_uint, 1),
- ("dump", c_uint, 1),
- ("on_fire", c_uint, 1),
- ("melt", c_uint, 1),
- ("hidden", c_uint, 1),
- ("u_ngrd9", c_uint, 1),
- ("unk6", c_uint, 1),
- ("unk7", c_uint, 1),
- ("unk8", c_uint, 1),
- ("unk9", c_uint, 1),
- ("unk10", c_uint, 1),
- ("unk11", c_uint, 1)]
-
-class ItemFlags(Union):
- _fields_ = [("whole", c_uint, 32),
- ("bits", ItemStruct)]
-
- def __init__(self, initial = 0):
- self.whole = initial
-
- def __int__(self):
- return self.whole
-
-class BlockFlagStruct(Structure):
- _fields_ = [("designated", c_uint, 1),
- ("unk_1", c_uint, 1),
- ("liquid_1", c_uint, 1),
- ("liquid_2", c_uint, 1),
- ("unk_2", c_uint, 28)]
-
-class BlockFlags(Union):
- _fields_ = [("whole", c_uint, 32),
- ("bits", BlockFlagStruct)]
-
- def __init__(self, inital = 0):
- self.whole = initial
-
- def __int__(self):
- return self.whole
diff --git a/dfhack-python/gui.py b/dfhack-python/gui.py
deleted file mode 100644
index 2a050d78..00000000
--- a/dfhack-python/gui.py
+++ /dev/null
@@ -1,73 +0,0 @@
-from ctypes import c_void_p, c_int, c_uint, byref
-from dftypes import libdfhack, ViewScreen, Hotkey
-from util import check_pointer_cache
-
-libdfhack.Gui_getViewCoords.argtypes = [ c_void_p, POINTER(c_int), POINTER(c_int), POINTER(c_int) ]
-libdfhack.Gui_setViewCoords.argtypes = [ c_void_p, c_int, c_int, c_int ]
-
-libdfhack.Gui_getCursorCoords.argtypes = [ c_void_p, POINTER(c_int), POINTER(c_int), POINTER(c_int) ]
-libdfhack.Gui_setCursorCoords.argtypes = [ c_void_p, c_int, c_int, c_int ]
-
-libdfhack.Gui_getWindowSize.argtypes = [ c_void_p, POINTER(c_int), POINTER(c_int) ]
-
-libdfhack.Gui_ReadViewScreen.argtypes = [ c_void_p, c_void_p ]
-
-libdfhack.Gui_ReadHotkeys.restype = c_void_p
-
-libdfhack.Gui_getScreenTiles.argtypes = [ c_void_p, c_int, c_int ]
-libdfhack.Gui_getScreenTiles.restype = c_void_p
-
-class Gui(object):
- def __init__(self, ptr):
- self._gui_ptr = ptr
-
- def start(self):
- return libdfhack.Gui_Start(self._gui_ptr) > 0
-
- def finish(self):
- return libdfhack.Gui_Finish(self._gui_ptr) > 0
-
- def read_view_screen(self):
- s = ViewScreen()
-
- if libdfhack.Gui_ReadViewScreen(self._gui_ptr, byref(s)) > 0:
- return s
- else:
- return None
-
- def get_view_coords(self):
- x, y, z = (0, 0, 0)
-
- if libdfhack.Gui_getViewCoords(self._gui_ptr, byref(x), byref(y), byref(z)) > 0:
- return (x, y, z)
- else:
- return (-1, -1, -1)
-
- def set_view_coords(self, x, y, z):
- libdfhack.Gui_setViewCoords(self._gui_ptr, x, y, z)
-
- def get_cursor_coords(self):
- x, y, z = (0, 0, 0)
-
- if libdfhack.Gui_getCursorCoords(self._gui_ptr, byref(x), byref(y), byref(z)) > 0:
- return (x, y, z)
- else:
- return (-1, -1, -1)
-
- def set_cursor_coords(self, x, y, z):
- libdfhack.Gui_setCursorCoords(self._gui_ptr, x, y, z)
-
- def read_hotkeys(self):
- return check_pointer_cache(libdfhack.Gui_ReadHotkeys(self._gui_ptr))
-
- def get_screen_tiles(self, width, height):
- return check_pointer_cache(libdfhack.Gui_getScreenTiles(self._gui_ptr, width, height))
-
- @property
- def window_size(self):
- width, height = (0, 0)
-
- if libdfhack.Gui_getWindowSize(self._gui_ptr, byref(width), byref(height)) > 0:
- return (width, height)
- else:
- return (-1, -1)
diff --git a/dfhack-python/items.py b/dfhack-python/items.py
deleted file mode 100644
index 8c5d6625..00000000
--- a/dfhack-python/items.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from ctypes import *
-from dftypes import *
-
-libdfhack.Items_getItemDescription.argtypes = [ c_void_p, c_uint, c_void_ptr, _arr_create_func ]
-libdfhack.Items_getItemDescription.restype = c_char_p
-libdfhack.Items_getItemClass.argtypes = [ c_void_p, c_int, _arr_create_func ]
-libdfhack.Item_getItemClass.restype = c_char_p
-
-class Items(object):
- def __init__(self, ptr):
- self._i_ptr = ptr
-
- def get_item_description(self, itemptr, materials):
- def get_callback(count):
- item_string = create_string_buffer(count)
-
- return byref(item_string)
-
- item_string = None
- callback = _arr_create_func(get_callback)
-
- return libdfhack.Items_getItemDescription(self._i_ptr, itemptr, materials, callback)
-
- def get_item_class(self, index):
- def get_callback(count):
- item_string = create_string_buffer(count)
-
- return byref(item_string)
-
- item_string = None
- callback = _arr_create_func(get_callback)
-
- return libdfhack.Items_getItemClass(self._i_ptr, index, callback)
diff --git a/dfhack-python/maps.py b/dfhack-python/maps.py
deleted file mode 100644
index 616eda05..00000000
--- a/dfhack-python/maps.py
+++ /dev/null
@@ -1,291 +0,0 @@
-from ctypes import *
-from dftypes import *
-from util import _uintify, int_ptr, uint_ptr, check_pointer_cache
-
-_MAX_DIM = 0x300
-_MAX_DIM_SQR = _MAX_DIM * _MAX_DIM
-
-libdfhack.Maps_getSize.argtypes = [ c_void_p, uint_ptr, uint_ptr, uint_ptr ]
-libdfhack.Maps_getPosition.argtypes = [ c_void_p, int_ptr, int_ptr, int_ptr ]
-
-libdfhack.Maps_ReadTileTypes.argtypes = [ c_void_p, c_uint, c_uint, c_uint, POINTER(TileTypes40d) ]
-libdfhack.Maps_WriteTileTypes.argtypes = [ c_void_p, c_uint, c_uint, c_uint, POINTER(TileTypes40d) ]
-libdfhack.Maps_ReadDesignations.argtypes = [ c_void_p, c_uint, c_uint, c_uint, POINTER(Designations40d) ]
-libdfhack.Maps_WriteDesignations.argtypes = [ c_void_p, c_uint, c_uint, c_uint, POINTER(Designations40d) ]
-libdfhack.Maps_ReadTemperatures.argtypes = [ c_void_p, c_uint, c_uint, c_uint, POINTER(Temperatures) ]
-libdfhack.Maps_WriteTemperatures.argtypes = [ c_void_p, c_uint, c_uint, c_uint, POINTER(Temperatures) ]
-libdfhack.Maps_ReadOccupancy.argtypes = [ c_void_p, c_uint, c_uint, c_uint, POINTER(Occupancies40d) ]
-libdfhack.Maps_WriteOccupancy.argtypes = [ c_void_p, c_uint, c_uint, c_uint, POINTER(Occupancies40d) ]
-libdfhack.Maps_ReadRegionOffsets.argtypes = [ c_void_p, c_uint, c_uint, c_uint, POINTER(BiomeIndices40d) ]
-
-libdfhack.Maps_ReadVegetation.restype = c_void_p
-
-libdfhack.Maps_ReadStandardVeins.argtypes = [ c_void_p, c_uint, c_uint, c_uint ]
-libdfhack.Maps_ReadFrozenVeins.argtypes = [ c_void_p, c_uint, c_uint, c_uint ]
-libdfhack.Maps_ReadSpatterVeins.argtypes = [ c_void_p, c_uint, c_uint, c_uint ]
-libdfhack.Maps_ReadGrassVeins.argtypes = [ c_void_p, c_uint, c_uint, c_uint ]
-libdfhack.Maps_ReadWorldConstructions.argtypes = [ c_void_p, c_uint, c_uint, c_uint ]
-
-libdfhack.Maps_ReadStandardVeins.restype = c_void_p
-libdfhack.Maps_ReadFrozenVeins.restype = c_void_p
-libdfhack.Maps_ReadSpatterVeins.restype = c_void_p
-libdfhack.Maps_ReadGrassVeins.restype = c_void_p
-libdfhack.Maps_ReadWorldConstructions.restype = c_void_p
-
-libdfhack.Maps_ReadLocalFeatures.restype = c_void_p
-
-class Maps(object):
- def __init__(self, ptr):
- self._map_ptr = ptr
-
- def start(self):
- return libdfhack.Maps_Start(self._map_ptr) > 0
-
- def finish(self):
- return libdfhack.Maps_Finish(self._map_ptr) > 0
-
- def is_valid_block(self, x, y, z):
- return libdfhack.Maps_isValidBlock(self._map_ptr, *_uintify(x, y, z)) > 0
-
- def read_tile_types(self, x, y, z):
- tt = TileTypes40d()
-
- ux, uy, uz = _uintify(x, y, z)
-
- if libdfhack.Maps_ReadTileTypes(self._map_ptr, ux, uy, uz, tt) > 0:
- return tt
- else:
- return None
-
- def write_tile_types(self, x, y, z, tt):
- ux, uy, uz = _uintify(x, y, z)
-
- return libdfhack.Maps_WriteTileTypes(self._map_ptr, ux, uy, uz, tt) > 0
-
- def read_designations(self, x, y, z):
- d = Designations40d()
-
- ux, uy, uz = _uintify(x, y, z)
-
- if libdfhack.Maps_ReadDesignations(self._map_ptr, ux, uy, uz, byref(d)) > 0:
- return d
- else:
- return None
-
- def write_designations(self, x, y, z, d):
- ux, uy, uz = _uintify(x, y, z)
-
- return libdfhack.Maps_WriteDesignations(self._map_ptr, ux, uy, uz, byref(d)) > 0
-
- def read_temperatures(self, x, y, z):
- t = Temperatures()
-
- ux, uy, uz = _uintify(x, y, z)
-
- if libdfhack.Maps_ReadDesignations(self._map_ptr, ux, uy, uz, t) > 0:
- return t
- else:
- return None
-
- def write_temperatures(self, x, y, z, t):
- ux, uy, uz = _uintify(x, y, z)
-
- return libdfhack.Maps_WriteDesignations(self._map_ptr, ux, uy, uz, t) > 0
-
- def read_occupancy(self, x, y, z):
- o = Occupancies40d()
-
- ux, uy, uz = _uintify(x, y, z)
-
- if libdfhack.Maps_ReadDesignations(self._map_ptr, ux, uy, uz, o) > 0:
- return o
- else:
- return None
-
- def write_occupancy(self, x, y, z, o):
- ux, uy, uz = _uintify(x, y, z)
-
- return libdfhack.Maps_WriteDesignations(self._map_ptr, ux, uy, uz, byref(o)) > 0
-
- def read_dirty_bit(self, x, y, z):
- bit = c_int(0)
-
- ux, uy, uz = _uintify(x, y, z)
-
- if libdfhack.Maps_ReadDirtyBit(self._map_ptr, ux, uy, uz, byref(bit)) > 0:
- if bit > 0:
- return True
- else:
- return False
- else:
- return None
-
- def write_dirty_bit(self, x, y, z, dirty):
- ux, uy, uz = _uintify(x, y, z)
-
- return libdfhack.Maps_WriteDirtyBit(self._map_ptr, ux, uy, uz, c_int(dirty)) > 0
-
- def read_features(self, x, y, z):
- lf = c_short()
- gf = c_short()
-
- ux, uy, uz = _uintify(x, y, z)
-
- libdfhack.Maps_ReadFeatures(self._map_ptr, ux, uy, uz, byref(lf), byref(fg))
-
- return (lf, gf)
-
- def write_local_feature(self, x, y, z, local_feature = -1):
- ux, uy, uz = _uintify(x, y, z)
-
- return libdfhack.Maps_WriteLocalFeature(self._map_ptr, ux, uy, uz, c_short(local_feature)) > 0
-
- def write_global_feature(self, x, y, z, global_feature = -1):
- ux, uy, uz = _uintify(x, y, z)
-
- return libdfhack.Maps_WriteGlobalFeature(self._map_ptr, ux, uy, uz, c_short(global_feature)) > 0
-
- def read_block_flags(self, x, y, z):
- bf = BlockFlags()
-
- ux, uy, uz = _uintify(x, y, z)
-
- if libdfhack.Maps_ReadBlockFlags(self._map_ptr, ux, uy, uz, byref(bf)) > 0:
- return bf
- else:
- return None
-
- def write_block_flags(self, x, y, z, block_flags):
- ux, uy, uz = _uintify(x, y, z)
-
- return libdfhack.Maps_WriteBlockFlags(self._map_ptr, ux, uy, uz, block_flags) > 0
-
- def read_region_offsets(self, x, y, z):
- bi = BiomeIndices40d()
-
- ux, uy, uz = _uintify(x, y, z)
-
- if libdfhack.Maps_ReadRegionOffsets(self._map_ptr, ux, uy, uz, byref(bi)) > 0:
- return bi
- else:
- return None
-
- def read_veins(self, x, y, z):
- ux, uy, uz = _uintify(x, y, z)
-
- return check_pointer_cache(libdfhack.Maps_ReadStandardVeins(self._map_ptr, ux, uy, uz))
-
- def read_frozen_veins(self, x, y, z):
- ux, uy, uz = _uintify(x, y, z)
-
- return check_pointer_cache(libdfhack.Maps_ReadFrozenVeins(self._map_ptr, ux, uy, uz))
-
- def read_spatter_veins(self, x, y, z):
- ux, uy, uz = _uintify(x, y, z)
-
- return check_pointer_cache(libdfhack.Maps_ReadSpatterVeins(self._map_ptr, ux, uy, uz))
-
- def read_grass_veins(self, x, y, z):
- ux, uy, uz = _uintify(x, y, z)
-
- return check_pointer_cache(libdfhack.Maps_ReadGrassVeins(self._map_ptr, ux, uy, uz))
-
- def read_world_constructions(self, x, y, z):
- ux, uy, uz = _uintify(x, y, z)
-
- return check_pointer_cache(libdfhack.Maps_ReadWorldConstructions(self._map_ptr, ux, uy, uz))
-
- def read_vegetation(self, x, y, z):
- ux, uy, uz = _uintify(x, y, z)
-
- return check_pointer_cache(libdfhack.Maps_ReadVegetation(self._map_ptr, ux, uy, uz))
-
- def read_local_features(self):
- f = libdfhack.Maps_ReadLocalFeatures(self._map_ptr)
- feature_dict = {}
- f_arr = check_pointer_cache(f, False)
-
- if f_arr is not None:
- for node in f_arr:
- c = node.coordinate.xyz
- coord = MapPoint(c.x, c.y, c.z)
- f_list = [node.features[i] for i in xrange(node.feature_length)]
- feature_dict[coord] = f_list
-
- return feature_dict
-
- @property
- def size(self):
- x, y, z = (c_uint(0), c_uint(0), c_uint(0))
-
- retval = libdfhack.Maps_getSize(self._map_ptr, byref(x), byref(y), byref(z))
-
- return (int(x.value), int(y.value), int(z.value))
-
- @property
- def position(self):
- x, y, z = (c_int(0), c_int(0), c_int(0))
-
- libdfhack.Maps_getPosition(self._map_ptr, byref(x), byref(y), byref(z))
-
- return (int(x.value), int(y.value), int(z.value))
-
-class MapPoint(object):
- __slots__ = ["_x", "_y", "_z", "_cmp_val"]
-
- def __init__(self, x = 0, y = 0, z = 0):
- self._x, self._y, self._z = x, y, z
-
- self._cmp_val = self._get_cmp_value()
-
- def _val_set(self, which, val):
- if which == 0:
- self._x = val
- elif which == 1:
- self._y = val
- elif which == 2:
- self._z = val
-
- self._cmp_val = self._get_cmp_value()
-
- x = property(fget = lambda self: self._x, fset = lambda self, v: self._val_set(0, v))
- y = property(fget = lambda self: self._y, fset = lambda self, v: self._val_set(1, v))
- z = property(fget = lambda self: self._z, fset = lambda self, v: self._val_set(2, v))
-
- def _get_cmp_value(self):
- return (self.z * _MAX_DIM_SQR) + (self.y * _MAX_DIM) + self.x
-
- #comparison operators
- def __eq__(self, other):
- return self.x == other.x and self.y == other.y and self.z == other.z
-
- def __ne__(self, other):
- return not self == other
-
- def __lt__(self, other):
- return self._cmp_val < other._cmp_val
-
- def __le__(self, other):
- return self < other or self == other
-
- def __gt__(self, other):
- return self._cmp_val > other._cmp_val
-
- def __ge__(self, other):
- return self > other or self == other
-
- #arithmetic operators
- def __add__(self, num):
- return MapPoint(self.x, self.y, self.z + num)
-
- def __sub__(self, num):
- return MapPoint(self.x, self.y, self.z - num)
-
- def __div__(self, num):
- return MapPoint(self.x / num, self.y / num, self.z)
-
- def __mul__(self, num):
- return MapPoint(self.x * num, self.y * num, self.z)
-
- def __mod__(self, num):
- return MapPoint(self.x % num, self.y % num, self.z) \ No newline at end of file
diff --git a/dfhack-python/materials.py b/dfhack-python/materials.py
deleted file mode 100644
index 37bfcf2f..00000000
--- a/dfhack-python/materials.py
+++ /dev/null
@@ -1,166 +0,0 @@
-from ctypes import *
-import dftypes
-from dftypes import libdfhack, Matgloss, CreatureType, DescriptorColor, MatglossOther
-from util import check_pointer_cache
-
-libdfhack.Materials_getInorganic.restype = c_void_p
-libdfhack.Materials_getOrganic.restype = c_void_p
-libdfhack.Materials_getTree.restype = c_void_p
-libdfhack.Materials_getPlant.restype = c_void_p
-libdfhack.Materials_getRace.restype = c_void_p
-libdfhack.Materials_getRaceEx.restype = c_void_p
-libdfhack.Materials_getColor.restype = c_void_p
-libdfhack.Materials_getOther.restype = c_void_p
-libdfhack.Materials_getAllDesc.restype = c_void_p
-
-class Materials(object):
- def __init__(self, ptr):
- self._mat_ptr = ptr
-
- self.inorganic = None
- self.organic = None
- self.tree = None
- self.plant = None
- self.race = None
- self.race_ex = None
- self.color = None
- self.other = None
-
- def _get_inorganic(self):
- self.inorganic = check_pointer_cache(libdfhack.Materials_getInorganic(self._mat_ptr))
-
- def _get_organic(self):
- self.organic = check_pointer_cache(libdfhack.Materials_getOrganic(self._mat_ptr))
-
- def _get_tree(self):
- self.tree = check_pointer_cache(libdfhack.Materials_getTree(self._mat_ptr))
-
- def _get_plant(self):
- self.plant = check_pointer_cache(libdfhack.Materials_getPlant(self._mat_ptr))
-
- def _get_race(self):
- self.race = check_pointer_cache(libdfhack.Materials_getRace(self._mat_ptr))
-
- def _get_race_ex(self):
- self.race_ex = check_pointer_cache(libdfhack.Materials_getRaceEx(self._mat_ptr))
-
- def _get_color(self):
- self.color = check_pointer_cache(libdfhack.Materials_getColor(self._mat_ptr))
-
- def _get_other(self):
- self.other = check_pointer_cache(libdfhack.Materials_getOther(self._mat_ptr))
-
- def _get_all(self):
- self._get_inorganic()
- self._get_organic()
- self._get_tree()
- self._get_plant()
- self._get_race()
- self._get_race_ex()
- self._get_color()
- self._get_other()
- def _clear_all(self):
- self.inorganic = None
- self.organic = None
- self.tree = None
- self.plant = None
- self.race = None
- self.race_ex = None
- self.color = None
- self.other = None
-
- def read_inorganic(self):
- result = libdfhack.Materials_ReadInorganicMaterials(self._mat_ptr) > 0
-
- if result == True:
- self._get_inorganic()
- else:
- self.inorganic = None
-
- return result
-
- def read_organic(self):
- result = libdfhack.Materials_ReadOrganicMaterials(self._mat_ptr) > 0
-
- if result == True:
- self._get_organic()
- else:
- self.organic = None
-
- return result
-
- def read_tree(self):
- result = libdfhack.Materials_ReadWoodMaterials(self._mat_ptr) > 0
-
- if result == True:
- self._get_tree()
- else:
- self.tree = None
-
- return result
-
- def read_plant(self):
- result = libdfhack.Materials_ReadPlantMaterials(self._mat_ptr) > 0
-
- if result == True:
- self._get_plant()
- else:
- self.plant = None
-
- return result
-
- def read_creature_types(self):
- result = libdfhack.Materials_ReadCreatureTypes(self._mat_ptr) > 0
-
- if result == True:
- self._get_race()
- else:
- self.race = None
-
- return result
-
- def read_creature_types_ex(self):
- result = libdfhack.Materials_ReadCreatureTypesEx(self._mat_ptr) > 0
-
- if result == True:
- self._get_race_ex()
- else:
- self.race_ex = None
-
- return result
-
- def read_descriptor_colors(self):
- result = libdfhack.Materials_ReadDescriptorColors(self._mat_ptr) > 0
-
- if result == True:
- self._get_color()
- else:
- self.color = None
-
- return result
-
- def read_others(self):
- result = libdfhack.Materials_ReadOthers(self._mat_ptr) > 0
-
- if result == True:
- self._get_other()
- else:
- self.other = None
-
- return result
-
- def read_all(self):
- result = libdfhack.Materials_ReadAllMaterials(self._mat_ptr) > 0
-
- if result == True:
- self._get_all()
- else:
- self._clear_all()
-
- return result
-
- def get_type(self, material):
- return libdfhack.Materials_getType(self._mat_ptr, byref(material))
-
- def get_description(self, material):
- return libdfhack.Materials_getDescription(self._mat_ptr, byref(material)) \ No newline at end of file
diff --git a/dfhack-python/process.py b/dfhack-python/process.py
deleted file mode 100644
index b9ac200b..00000000
--- a/dfhack-python/process.py
+++ /dev/null
@@ -1,135 +0,0 @@
-from ctypes import *
-from dftypes import libdfhack
-from util import check_pointer_cache
-
-libdfhack.Process_readQuad.argtypes = [ c_void_p, c_uint, POINTER(c_ulong) ]
-libdfhack.Process_writeQuad.argtypes = [ c_void_p, c_uint, c_ulong ]
-
-libdfhack.Process_readDWord.argtypes = [ c_void_p, c_uint, POINTER(c_uint) ]
-libdfhack.Process_writeDWord.argtypes = [ c_void_p, c_uint, c_uint ]
-
-libdfhack.Process_readWord.argtypes = [ c_void_p, c_uint, POINTER(c_ushort) ]
-libdfhack.Process_writeWord.argtypes = [ c_void_p, c_uint, c_ushort ]
-
-libdfhack.Process_readByte.argtypes = [ c_void_p, c_uint, POINTER(c_ubyte) ]
-libdfhack.Process_writeByte.argtypes = [ c_void_p, c_uint, c_ubyte ]
-
-libdfhack.Process_readFloat.argtypes = [ c_void_p, c_uint, POINTER(c_float) ]
-
-libdfhack.Process_read.argtypes = [ c_void_p, c_uint, c_uint ]
-libdfhack.Process_read.restype = c_void_p
-
-libdfhack.Process_write.argtypes = [ c_void_p, c_uint, c_uint, POINTER(c_ubyte) ]
-
-libdfhack.Process_getThreadIDs.restype = c_void_p
-
-class Process(object):
- def __init__(self, ptr):
- self._p_ptr = ptr
-
- def attach(self):
- return libdfhack.Process_attach(self._p_ptr) > 0
-
- def detach(self):
- return libdfhack.Process_detach(self._p_ptr) > 0
-
- def suspend(self):
- return libdfhack.Process_suspend(self._p_ptr) > 0
-
- def async_suspend(self):
- return libdfhack.Process_asyncSuspend(self._p_ptr) > 0
-
- def resume(self):
- return libdfhack.Process_resume(self._p_ptr) > 0
-
- def force_resume(self):
- return libdfhack.Process_forceresume(self._p_ptr) > 0
-
- def read_quad(self, address):
- q = c_ulong(0)
-
- if libdfhack.Process_readQuad(self._p_ptr, address, byref(q)) > 0:
- return long(q.value)
- else:
- return -1
-
- def write_quad(self, address, value):
- return libdfhack.Process_writeQuad(self._p_ptr, address, value) > 0
-
- def read_dword(self, address):
- d = c_uint(0)
-
- if libdfhack.Process_readDWord(self._p_ptr, address, byref(d)) > 0:
- return int(d.value)
- else:
- return -1
-
- def write_dword(self, address, value):
- return libdfhack.Process_writeDWord(self._p_ptr, address, value) > 0
-
- def read_word(self, address):
- s = c_ushort(0)
-
- if libdfhack.Process_readWord(self._p_ptr, address, byref(s)) > 0:
- return int(s.value)
- else:
- return -1
-
- def write_word(self, address, value):
- return libdfhack.Process_writeWord(self._p_ptr, address, value) > 0
-
- def read_byte(self, address):
- b = c_ubyte(0)
-
- if libdfhack.Process_readByte(self._p_ptr, address, byref(b)) > 0:
- return int(b.value)
- else:
- return -1
-
- def write_byte(self, address, value):
- return libdfhack.Process_writeByte(self._p_ptr, address, value) > 0
-
- def read_float(self, address):
- f = c_float(0)
-
- if libdfhack.Process_readFloat(self._p_ptr, address, byref(f)) > 0:
- return float(f.value)
- else:
- return -1
-
- def read(self, address, length):
- return check_pointer_cache(libdfhack.Process_read(self._p_ptr, address, length))
-
- def write(self, address, length, buffer):
- libdfhack.Process_write(self._p_ptr, address, length, byref(buffer))
-
- def get_thread_ids(self):
- return check_pointer_cache(libdfhack.Process_getThreadIDs(self._p_ptr))
-
- def set_and_wait(self, state):
- return libdfhack.Process_SetAndWait(self._p_ptr, state) > 0
-
- @property
- def is_suspended(self):
- return libdfhack.Process_isSuspended(self._p_ptr) > 0
-
- @property
- def is_attached(self):
- return libdfhack.Process_isAttached(self._p_ptr) > 0
-
- @property
- def is_identified(self):
- return libdfhack.Process_isIdentified(self._p_ptr) > 0
-
- @property
- def is_snapshot(self):
- return libdfhack.Process_isSnapshot(self._p_ptr) > 0
-
- @property
- def pid(self):
- p = c_int(0)
-
- if libdfhack.Process_getPID(self._p_ptr, byref(p)) > 0:
- return int(p.value)
- else:
- return -1 \ No newline at end of file
diff --git a/dfhack-python/util.py b/dfhack-python/util.py
deleted file mode 100644
index 40fd990a..00000000
--- a/dfhack-python/util.py
+++ /dev/null
@@ -1,88 +0,0 @@
-from ctypes import *
-
-int_ptr = POINTER(c_int)
-uint_ptr = POINTER(c_uint)
-
-short_ptr = POINTER(c_short)
-ushort_ptr = POINTER(c_ushort)
-
-byte_ptr = POINTER(c_byte)
-ubyte_ptr = POINTER(c_ubyte)
-
-pointer_dict = {}
-
-def check_pointer_cache(address, return_as_list = True):
- arr = None
-
- if address in pointer_dict:
- arr = pointer_dict[address][1]
- del pointer_dict[address]
-
- if return_as_list == True:
- arr = [i for i in arr]
-
- return arr
-
-def _uintify(x, y, z):
- return (c_uint(x), c_uint(y), c_uint(z))
-
-def _allocate_array(ptr, t_type, count):
- arr = (t_type * count)()
-
- p = cast(arr, POINTER(t_type))
-
- ptr[0] = p
-
- pointer_dict[addressof(arr)] = (ptr, arr, p)
-
- return 1
-
-def _alloc_int_buffer(ptr, count):
- return _allocate_array(ptr, c_int, count)
-
-_int_functype = CFUNCTYPE(c_int, POINTER(POINTER(c_int)), c_uint)
-alloc_int_buffer = _int_functype(_alloc_int_buffer)
-
-def _alloc_uint_buffer(ptr, count):
- return _allocate_array(ptr, c_uint, count)
-
-_uint_functype = CFUNCTYPE(c_int, POINTER(POINTER(c_uint)), c_uint)
-alloc_uint_buffer = _uint_functype(_alloc_uint_buffer)
-
-def _alloc_short_buffer(ptr, count):
- return _allocate_array(ptr, c_short, count)
-
-_short_functype = CFUNCTYPE(c_int, POINTER(POINTER(c_short)), c_uint)
-alloc_short_buffer = _short_functype(_alloc_short_buffer)
-
-def _alloc_ushort_buffer(ptr, count):
- return _allocate_array(ptr, c_ushort, count)
-
-_ushort_functype = CFUNCTYPE(c_int, POINTER(POINTER(c_ushort)), c_uint)
-alloc_ushort_buffer = _ushort_functype(_alloc_ushort_buffer)
-
-def _alloc_byte_buffer(ptr, count):
- return _allocate_array(ptr, c_byte, count)
-
-_byte_functype = CFUNCTYPE(c_int, POINTER(POINTER(c_byte)), c_uint)
-alloc_byte_buffer = _byte_functype(_alloc_byte_buffer)
-
-def _alloc_ubyte_buffer(ptr, count):
- return _allocate_array(ptr, c_ubyte, count)
-
-_ubyte_functype = CFUNCTYPE(c_int, POINTER(POINTER(c_ubyte)), c_uint)
-alloc_ubyte_buffer = _ubyte_functype(_alloc_ubyte_buffer)
-
-def _alloc_char_buffer(ptr, count):
- c = create_string_buffer(count)
-
- p = cast(c, POINTER(c_char))
-
- ptr[0] = p
-
- pointer_dict[id(ptr[0])] = (ptr, c, p)
-
- return 1
-
-_char_functype = CFUNCTYPE(c_int, POINTER(POINTER(c_char)), c_uint)
-alloc_char_buffer = _char_functype(_alloc_char_buffer)
diff --git a/dfhack-python/vegetation.py b/dfhack-python/vegetation.py
deleted file mode 100644
index ca1f12bd..00000000
--- a/dfhack-python/vegetation.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from ctypes import *
-from dftypes import libdfhack, Tree
-
-class Vegetation(object):
- def __init__(self, ptr):
- self._v_ptr = ptr
-
- def start(self):
- n = c_uint(0)
-
- if libdfhack.Vegetation_Start(self._v_ptr, byref(n)) > 0:
- return int(n.value)
- else:
- return -1
-
- def finish(self):
- return libdfhack.Vegetation_Finish(self._v_ptr) > 0
-
- def read(self, index):
- t = Tree()
-
- if libdfhack.Vegetation_Read(self._v_ptr, c_uint(index), byref(t)) > 0:
- return t
- else:
- return None
diff --git a/dfhack-python/window_io.py b/dfhack-python/window_io.py
deleted file mode 100644
index 0e29b86f..00000000
--- a/dfhack-python/window_io.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from ctypes import *
-from dftypes import libdfhack
-
-libdfhack.WindowIO_TypeStr.argtypes = [ c_void_p, c_char_p, c_uint, c_byte ]
-libdfhack.WindowIO_TypeSpecial.argtypes = [ c_void_p, c_uint, c_uint, c_uint, c_uint ]
-
-class WindowIO(object):
- def __init__(self, ptr):
- self._window_io_ptr = ptr
-
- def type_str(self, s, delay = 0, use_shift = False):
- c_shift = c_byte(0)
- c_delay = c_uint(delay)
- c_s = c_char_p(s)
-
- if use_shift is True:
- c_shift = c_byte(1)
-
- return libdfhack.WindowIO_TypeStr(self._window_io_ptr, c_s, c_delay, c_shift) > 0
-
- def type_special(self, command, count = 1, delay = 0):
- c_command = c_uint(command)
- c_count = c_uint(count)
- c_delay = c_uint(delay)
-
- return libdfhack.WindowIO_TypeSpecial(self._window_io_ptr, c_command, c_count, c_delay) > 0 \ No newline at end of file
diff --git a/dfhack-python/world.py b/dfhack-python/world.py
deleted file mode 100644
index 5a6e798b..00000000
--- a/dfhack-python/world.py
+++ /dev/null
@@ -1,80 +0,0 @@
-from ctypes import *
-from dftypes import libdfhack, GameModes
-from util import _uintify, uint_ptr
-
-libdfhack.World_ReadGameMode.argtypes = [ c_void_p, POINTER(GameModes) ]
-
-class World(object):
- def __init__(self, ptr):
- self._world_ptr = ptr
-
- def start(self):
- return libdfhack.World_Start(self._world_ptr) > 0
-
- def finish(self):
- return libdfhack.World_Finish(self._world_ptr) > 0
-
- def read_pause_state(self):
- return libdfhack.World_ReadPauseState(self._world_ptr) > 0
-
- def set_pause_state(self, pause_state):
- p = c_byte(0)
-
- if pause_state is not None and pause_state is not False:
- p.value = 1
-
- return libdfhack.World_SetPauseState(self._world_ptr, p) > 0
-
- def read_current_tick(self):
- tick = c_uint(0)
-
- if libdfhack.World_ReadCurrentTick(self._world_ptr, byref(tick)) > 0:
- return int(tick)
- else:
- return -1
-
- def read_current_year(self):
- year = c_uint(0)
-
- if libdfhack.World_ReadCurrentYear(self._world_ptr, byref(year)) > 0:
- return int(year)
- else:
- return -1
-
- def read_current_month(self):
- month = c_uint(0)
-
- if libdfhack.World_ReadCurrentMonth(self._world_ptr, byref(month)) > 0:
- return int(month)
- else:
- return -1
-
- def read_current_day(self):
- day = c_uint(0)
-
- if libdfhack.World_ReadCurrentDay(self._world_ptr, byref(day)) > 0:
- return int(day)
- else:
- return -1
-
- def read_current_weather(self):
- weather = c_ubyte(0)
-
- if libdfhack.World_ReadCurrentWeather(self._world_ptr, byref(weather)) > 0:
- return int(weather)
- else:
- return -1
-
- def write_current_weather(self, weather):
- return libdfhack.World_WriteCurrentWeather(self._world_ptr, c_ubyte(weather))
-
- def read_game_mode(self):
- game_modes = GameModes()
-
- if libdfhack.World_ReadGameMode(self._world_ptr, byref(game_modes)) > 0:
- return game_modes
- else:
- return None
-
- def write_game_mode(self, game_mode):
- return libdfhack.World_WriteGameMode(self._world_ptr, game_modes) > 0 \ No newline at end of file
diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
index d396820b..81ffbf49 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -1,10 +1,10 @@
-if(NOT DEFINED DFHACK_CONSISTENCY)
- MESSAGE(FATAL_ERROR "Please build the whole thing, not parts. You can turn parts on/off using options.")
-ENDIF()
-
-PROJECT (dfhack-library)
+PROJECT (dfapi)
cmake_minimum_required(VERSION 2.8)
+## build options
+OPTION(BUILD_DEVEL "Install/package files required for development (For SDK)." OFF)
+OPTION(BUILD_DOXYGEN "Create/install/package doxygen documentation for DFHack (For SDK)." OFF)
+
include_directories (include)
include_directories (depends/md5)
include_directories (depends/tinyxml)
@@ -96,11 +96,6 @@ ELSE()
LIST(APPEND PROJECT_SRCS ${PROJECT_SRCS_WINDOWS})
ENDIF()
-IF(BUILD_DFHACK_C_BINDINGS)
- LIST(APPEND PROJECT_HDRS ${PROJECT_C_HDRS})
- LIST(APPEND PROJECT_SRCS ${PROJECT_C_SRCS})
-ENDIF()
-
SET_SOURCE_FILES_PROPERTIES( ${PROJECT_HDRS} PROPERTIES HEADER_FILE_ONLY TRUE )
LIST(APPEND PROJECT_SRCS ${PROJECT_HDRS})
@@ -109,12 +104,11 @@ ADD_DEFINITIONS(-DBUILD_DFHACK_LIB)
IF(UNIX)
add_definitions(-DLINUX_BUILD)
- find_library(X11_LIBRARY X11)
SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall")
SET(CMAKE_CXX_FLAGS "-fvisibility=hidden -m32")
SET(CMAKE_C_FLAGS "-fvisibility=hidden -m32")
- SET(PROJECT_LIBS ${X11_LIBRARY} rt )
+ SET(PROJECT_LIBS rt )
ELSE()
IF(MSVC)
SET(PROJECT_LIBS psapi ${dfhack_SOURCE_DIR}/library/depends/ntdll/ntdll.lib)
@@ -141,7 +135,7 @@ install(TARGETS dfhack
install(FILES ${dfhack_SOURCE_DIR}/Memory.xml
DESTINATION ${DFHACK_DATA_DESTINATION}) #linux: share/dfhack
-if(BUILD_DFHACK_DEVEL)
+if(BUILD_DEVEL)
if(WIN32)
install(TARGETS dfhack
ARCHIVE DESTINATION ${DFHACK_DEVLIB_DESTINATION})
@@ -151,4 +145,8 @@ if(BUILD_DFHACK_DEVEL)
install(DIRECTORY include/
DESTINATION ${DFHACK_INCLUDES_DESTINATION}
FILES_MATCHING PATTERN "*.h" ) #linux: include
+ # Building the docs
+ IF(BUILD_DOXYGEN)
+ add_subdirectory (doc)
+ ENDIF()
endif()
diff --git a/library/Core-linux.cpp b/library/Core-linux.cpp
index 4fe0ccdc..3c9c146e 100644
--- a/library/Core-linux.cpp
+++ b/library/Core-linux.cpp
@@ -117,6 +117,24 @@ DFhackCExport void SDL_DestroyMutex(DFMutex * mutex)
_SDL_DestroyMutex(mutex);
}
+static void * (*_SDL_LoadFunction)(DFLibrary *handle, const char *name) = 0;
+DFhackCExport void * SDL_LoadFunction(DFLibrary *handle, const char *name)
+{
+ return _SDL_LoadFunction(handle, name);
+}
+
+static DFLibrary * (*_SDL_LoadObject)(const char *sofile) = 0;
+DFhackCExport DFLibrary * SDL_LoadObject(const char *sofile)
+{
+ return _SDL_LoadObject(sofile);
+}
+
+static void (*_SDL_UnloadObject)(DFLibrary * handle) = 0;
+DFhackCExport void SDL_UnloadObject(DFLibrary * handle)
+{
+ _SDL_UnloadObject(handle);
+}
+
// hook - called at program exit
DFhackCExport void SDL_Quit(void)
{
@@ -141,6 +159,9 @@ DFhackCExport int SDL_Init(uint32_t flags)
_SDL_DestroyMutex = (void (*)(DFMutex*))dlsym(RTLD_NEXT,"SDL_DestroyMutex");
_SDL_mutexP = (int (*)(DFMutex*))dlsym(RTLD_NEXT,"SDL_mutexP");
_SDL_mutexV = (int (*)(DFMutex*))dlsym(RTLD_NEXT,"SDL_mutexV");
+ _SDL_LoadFunction = (void*(*)(DFLibrary*, const char*))dlsym(RTLD_NEXT,"SDL_LoadFunction");
+ _SDL_LoadObject = (DFLibrary*(*)(const char*))dlsym(RTLD_NEXT,"SDL_LoadObject");
+ _SDL_UnloadObject = (void (*)(DFLibrary*))dlsym(RTLD_NEXT,"SDL_UnloadObject");
// check if we got them
if(_SDL_Init && _SDL_Quit && _SDL_CreateThread && _SDL_CreateMutex && _SDL_DestroyMutex && _SDL_mutexP && _SDL_mutexV)
diff --git a/library/Core-windows.cpp b/library/Core-windows.cpp
index 67fedb93..9817233e 100644
--- a/library/Core-windows.cpp
+++ b/library/Core-windows.cpp
@@ -512,20 +512,20 @@ SDL_UnloadObject
extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle);
*/
-static vPtr (*_SDL_LoadFunction)(void *handle, const char *name) = 0;
-DFhackCExport vPtr SDL_LoadFunction(void *handle, const char *name)
+static void * (*_SDL_LoadFunction)(DFLibrary *handle, const char *name) = 0;
+DFhackCExport void * SDL_LoadFunction(DFLibrary *handle, const char *name)
{
return _SDL_LoadFunction(handle, name);
}
-static vPtr (*_SDL_LoadObject)(const char *sofile) = 0;
-DFhackCExport vPtr SDL_LoadObject(const char *sofile)
+static DFLibrary * (*_SDL_LoadObject)(const char *sofile) = 0;
+DFhackCExport DFLibrary * SDL_LoadObject(const char *sofile)
{
return _SDL_LoadObject(sofile);
}
-static void (*_SDL_UnloadObject)(vPtr handle) = 0;
-DFhackCExport void SDL_UnloadObject(vPtr handle)
+static void (*_SDL_UnloadObject)(DFLibrary * handle) = 0;
+DFhackCExport void SDL_UnloadObject(DFLibrary * handle)
{
_SDL_UnloadObject(handle);
}
@@ -803,13 +803,13 @@ bool FirstCall()
// stuff for SDL_Image
_SDL_ClearError = (void (*)())GetProcAddress(realSDLlib,"SDL_ClearError");
_SDL_Error = (void (*)(int))GetProcAddress(realSDLlib,"SDL_Error");
- _SDL_LoadFunction = (void*(*)(void*, const char*))GetProcAddress(realSDLlib,"SDL_LoadFunction");
- _SDL_LoadObject = (void*(*)(const char*))GetProcAddress(realSDLlib,"SDL_LoadObject");
+ _SDL_LoadFunction = (void*(*)(DFLibrary*, const char*))GetProcAddress(realSDLlib,"SDL_LoadFunction");
+ _SDL_LoadObject = (DFLibrary*(*)(const char*))GetProcAddress(realSDLlib,"SDL_LoadObject");
_SDL_ReadBE32 = (uint32_t (*)(void*))GetProcAddress(realSDLlib,"SDL_ReadBE32");
_SDL_ReadLE16 = (uint16_t (*)(void*))GetProcAddress(realSDLlib,"SDL_ReadLE16");
_SDL_ReadLE32 = (uint32_t (*)(void*))GetProcAddress(realSDLlib,"SDL_ReadLE32");
_SDL_SetError = (void (*)(const char*, ...))GetProcAddress(realSDLlib,"SDL_SetError");
- _SDL_UnloadObject = (void (*)(void*))GetProcAddress(realSDLlib,"SDL_UnloadObject");
+ _SDL_UnloadObject = (void (*)(DFLibrary*))GetProcAddress(realSDLlib,"SDL_UnloadObject");
_SDL_FillRect = (int (*)(void*,void*,uint32_t))GetProcAddress(realSDLlib,"SDL_FillRect");
// new in DF 0.31.04
diff --git a/library/Core.cpp b/library/Core.cpp
index 712e31a6..2788672a 100644
--- a/library/Core.cpp
+++ b/library/Core.cpp
@@ -23,7 +23,6 @@ distribution.
*/
#include "Internal.h"
-#include "PlatformInternal.h"
#include <string>
#include <vector>
@@ -41,8 +40,8 @@ using namespace std;
#include "dfhack/modules/Gui.h"
#include "dfhack/modules/Vegetation.h"
#include "dfhack/modules/Maps.h"
-#include <dfhack/modules/World.h>
-#include "rlutil.h"
+#include "dfhack/modules/World.h"
+#include "dfhack/extra/rlutil.h"
#include <stdio.h>
using namespace DFHack;
@@ -92,6 +91,7 @@ struct hideblock
uint32_t z;
uint8_t hiddens [16][16];
};
+
int reveal (void)
{
Core & c = DFHack::Core::getInstance();
@@ -288,6 +288,7 @@ int Core::Shutdown ( void )
#define MODULE_GETTER(TYPE) \
TYPE * Core::get##TYPE() \
{ \
+ if(errorstate) return NULL;\
if(!s_mods.p##TYPE)\
{\
Module * mod = create##TYPE();\
diff --git a/library/Process-linux.cpp b/library/Process-linux.cpp
index e6b4d050..da5be6e9 100644
--- a/library/Process-linux.cpp
+++ b/library/Process-linux.cpp
@@ -23,7 +23,8 @@ distribution.
*/
#include "Internal.h"
-#include "PlatformInternal.h"
+#include <dirent.h>
+#include <errno.h>
#include <string>
#include <vector>
@@ -33,14 +34,11 @@ distribution.
#include <cstring>
using namespace std;
+#include <md5wrapper.h>
#include "dfhack/Process.h"
#include "dfhack/VersionInfoFactory.h"
#include "dfhack/VersionInfo.h"
#include "dfhack/Error.h"
-#include <errno.h>
-#include <sys/ptrace.h>
-#include <sys/syscall.h>
-#include <md5wrapper.h>
using namespace DFHack;
Process::Process(VersionInfoFactory * known_versions)
diff --git a/library/Process-windows.cpp b/library/Process-windows.cpp
index a54a0c75..4aa3adc9 100644
--- a/library/Process-windows.cpp
+++ b/library/Process-windows.cpp
@@ -23,7 +23,66 @@ distribution.
*/
#include "Internal.h"
-#include "PlatformInternal.h"
+
+#define _WIN32_WINNT 0x0501 // needed for INPUT struct
+#define WINVER 0x0501 // OpenThread(), PSAPI, Toolhelp32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winnt.h>
+#include <psapi.h>
+#include <tlhelp32.h>
+
+typedef LONG NTSTATUS;
+#define STATUS_SUCCESS ((NTSTATUS)0x00000000L)
+
+// FIXME: it is uncertain how these map to 64bit
+typedef struct _DEBUG_BUFFER
+{
+ HANDLE SectionHandle;
+ PVOID SectionBase;
+ PVOID RemoteSectionBase;
+ ULONG SectionBaseDelta;
+ HANDLE EventPairHandle;
+ ULONG Unknown[2];
+ HANDLE RemoteThreadHandle;
+ ULONG InfoClassMask;
+ ULONG SizeOfInfo;
+ ULONG AllocatedSize;
+ ULONG SectionSize;
+ PVOID ModuleInformation;
+ PVOID BackTraceInformation;
+ PVOID HeapInformation;
+ PVOID LockInformation;
+ PVOID Reserved[8];
+} DEBUG_BUFFER, *PDEBUG_BUFFER;
+
+typedef struct _DEBUG_HEAP_INFORMATION
+{
+ ULONG Base; // 0×00
+ ULONG Flags; // 0×04
+ USHORT Granularity; // 0×08
+ USHORT Unknown; // 0x0A
+ ULONG Allocated; // 0x0C
+ ULONG Committed; // 0×10
+ ULONG TagCount; // 0×14
+ ULONG BlockCount; // 0×18
+ ULONG Reserved[7]; // 0x1C
+ PVOID Tags; // 0×38
+ PVOID Blocks; // 0x3C
+} DEBUG_HEAP_INFORMATION, *PDEBUG_HEAP_INFORMATION;
+
+// RtlQueryProcessDebugInformation.DebugInfoClassMask constants
+#define PDI_MODULES 0x01
+#define PDI_BACKTRACE 0x02
+#define PDI_HEAPS 0x04
+#define PDI_HEAP_TAGS 0x08
+#define PDI_HEAP_BLOCKS 0x10
+#define PDI_LOCKS 0x20
+
+extern "C" __declspec(dllimport) NTSTATUS __stdcall RtlQueryProcessDebugInformation( IN ULONG ProcessId, IN ULONG DebugInfoClassMask, IN OUT PDEBUG_BUFFER DebugBuffer);
+extern "C" __declspec(dllimport) PDEBUG_BUFFER __stdcall RtlCreateQueryDebugBuffer( IN ULONG Size, IN BOOLEAN EventPair);
+extern "C" __declspec(dllimport) NTSTATUS __stdcall RtlDestroyQueryDebugBuffer( IN PDEBUG_BUFFER DebugBuffer);
+
#include <cstring>
#include <cstdio>
#include <cstdlib>
diff --git a/doc/CMakeLists.txt b/library/doc/CMakeLists.txt
index aad02a20..0a4e5bd2 100644
--- a/doc/CMakeLists.txt
+++ b/library/doc/CMakeLists.txt
@@ -35,12 +35,7 @@ IF(DOXYGEN_FOUND)
# with DOXYGEN_SOURCE_DIR we fill a list of directories and later we write it into
# the Doxyfile with a REGEX REPLACE (see below)
SET( DOXYGEN_SOURCE_DIR
- "${dfhack_SOURCE_DIR}/doc/index.dxgen"
- "${dfhack_SOURCE_DIR}/library/include"
- "${dfhack_SOURCE_DIR}/library/include/dfhack"
- "${dfhack_SOURCE_DIR}/library/include/dfhack/modules"
- "${dfhack_SOURCE_DIR}/library/include/dfhack-c"
- "${dfhack_SOURCE_DIR}/library/include/dfhack-c/modules"
+ "${dfhack_SOURCE_DIR}/library"
)
STRING(REGEX REPLACE ";" " " CMAKE_DOXYGEN_INPUT_LIST "${DOXYGEN_SOURCE_DIR}")
diff --git a/doc/Doxyfile.in b/library/doc/Doxyfile.in
index a08f3f35..5ee8f500 100644
--- a/doc/Doxyfile.in
+++ b/library/doc/Doxyfile.in
@@ -600,7 +600,7 @@ FILE_PATTERNS = *.cpp \
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.
-RECURSIVE = NO
+RECURSIVE = YES
# The EXCLUDE tag can be used to specify files and/or directories that should
# excluded from the INPUT source files. This way you can easily exclude a
@@ -628,7 +628,7 @@ EXCLUDE_PATTERNS =
# wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test
-EXCLUDE_SYMBOLS =
+EXCLUDE_SYMBOLS = Private
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
diff --git a/doc/Doxygen.html b/library/doc/Doxygen.html
index da9a6fb6..da9a6fb6 100644
--- a/doc/Doxygen.html
+++ b/library/doc/Doxygen.html
diff --git a/doc/img/.dot b/library/doc/img/.dot
index e69de29b..e69de29b 100644
--- a/doc/img/.dot
+++ b/library/doc/img/.dot
diff --git a/doc/index.dxgen b/library/doc/index.dxgen
index bfb6b231..bfb6b231 100644
--- a/doc/index.dxgen
+++ b/library/doc/index.dxgen
diff --git a/library/include/dfhack/Core.h b/library/include/dfhack/Core.h
index 045d59a8..3d2a48e2 100644
--- a/library/include/dfhack/Core.h
+++ b/library/include/dfhack/Core.h
@@ -100,7 +100,10 @@ namespace DFHack
Core(Core const&); // Don't Implement
void operator=(Core const&); // Don't implement
bool errorstate;
+ // mutex for access to DF
DFMutex * AccessMutex;
+ // mutex for access to the Plugin storage
+ DFMutex * PluginMutex;
// FIXME: shouldn't be kept around like this
DFHack::VersionInfoFactory * vif;
// Module storage
diff --git a/library/include/dfhack/FakeSDL.h b/library/include/dfhack/FakeSDL.h
index 7bfe4be1..c3955fec 100644
--- a/library/include/dfhack/FakeSDL.h
+++ b/library/include/dfhack/FakeSDL.h
@@ -42,6 +42,7 @@ typedef void * fPtr;
typedef void * vPtr;
struct DFMutex;
struct DFThread;
+struct DFLibrary;
// mutex and thread functions. We can call these.
DFhackCExport DFMutex * SDL_CreateMutex(void);
@@ -50,6 +51,11 @@ DFhackCExport int SDL_mutexV(DFMutex *);
DFhackCExport void SDL_DestroyMutex(DFMutex *);
DFhackCExport DFThread *SDL_CreateThread(int (*fn)(void *), void *data);
+// Functions for loading libraries and looking up exported symbols
+DFhackCExport void * SDL_LoadFunction(DFLibrary *handle, const char *name);
+DFhackCExport DFLibrary * SDL_LoadObject(const char *sofile);
+DFhackCExport void SDL_UnloadObject(DFLibrary * handle);
+
// these functions are here because they call into DFHack::Core and therefore need to
// be declared as friend functions/known
DFhackCExport int SDL_NumJoysticks(void);
diff --git a/library/include/dfhack/Process.h b/library/include/dfhack/Process.h
index c2d1cc58..29beb5bb 100644
--- a/library/include/dfhack/Process.h
+++ b/library/include/dfhack/Process.h
@@ -94,7 +94,7 @@ namespace DFHack
};
/**
- * Allows low-level access to the memory of an OS process. OS processes can be enumerated by \ref ProcessEnumerator
+ * Allows low-level access to the memory of an OS process.
* \ingroup grp_context
*/
class DFHACK_EXPORT Process
@@ -163,7 +163,7 @@ namespace DFHack
};
/// read a byte
- uint16_t readByte(const uint32_t address)
+ uint8_t readByte(const uint32_t address)
{
return *(uint8_t *)address;
}
diff --git a/library/private/rlutil.h b/library/include/dfhack/extra/rlutil.h
index 7368e3a6..7368e3a6 100644
--- a/library/private/rlutil.h
+++ b/library/include/dfhack/extra/rlutil.h
diff --git a/library/modules/Graveyard.cpp b/library/modules/Graveyard.cpp
deleted file mode 100644
index 4abe854f..00000000
--- a/library/modules/Graveyard.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
-// This is just a graveyard of old 40d code. Things in here COULD be turned into modules, but it requires research.
-
-bool API::InitReadEffects ( uint32_t & numeffects )
-{
- if(d->effectsInited)
- FinishReadEffects();
- int effects = 0;
- try
- {
- effects = d->offset_descriptor->getAddress ("effects_vector");
- }
- catch(Error::AllMemdef)
- {
- return false;
- }
- d->effectsInited = true;
- d->p_effect = new DfVector (d->p, effects);
- numeffects = d->p_effect->getSize();
- return true;
-}
-
-bool API::ReadEffect(const uint32_t index, t_effect_df40d & effect)
-{
- if(!d->effectsInited)
- return false;
- if(index >= d->p_effect->getSize())
- return false;
-
- // read pointer from vector at position
- uint32_t temp = d->p_effect->at (index);
- //read effect from memory
- d->p->read (temp, sizeof (t_effect_df40d), (uint8_t *) &effect);
- return true;
-}
-
-// use with care!
-bool API::WriteEffect(const uint32_t index, const t_effect_df40d & effect)
-{
- if(!d->effectsInited)
- return false;
- if(index >= d->p_effect->getSize())
- return false;
- // read pointer from vector at position
- uint32_t temp = d->p_effect->at (index);
- // write effect to memory
- d->p->write(temp,sizeof(t_effect_df40d), (uint8_t *) &effect);
- return true;
-}
-
-void API::FinishReadEffects()
-{
- if(d->p_effect)
- {
- delete d->p_effect;
- d->p_effect = NULL;
- }
- d->effectsInited = false;
-}
-
-bool API::InitReadNotes( uint32_t &numnotes )
-{
- try
- {
- memory_info * minfo = d->offset_descriptor;
- int notes = minfo->getAddress ("notes");
- d->note_foreground_offset = minfo->getOffset ("note_foreground");
- d->note_background_offset = minfo->getOffset ("note_background");
- d->note_name_offset = minfo->getOffset ("note_name");
- d->note_xyz_offset = minfo->getOffset ("note_xyz");
-
- d->p_notes = new DfVector (d->p, notes);
- d->notesInited = true;
- numnotes = d->p_notes->getSize();
- return true;
- }
- catch (Error::AllMemdef&)
- {
- d->notesInited = false;
- numnotes = 0;
- throw;
- }
-}
-bool API::ReadNote (const int32_t index, t_note & note)
-{
- if(!d->notesInited) return false;
- // read pointer from vector at position
- uint32_t temp = d->p_notes->at (index);
- note.symbol = d->p->readByte(temp);
- note.foreground = d->p->readWord(temp + d->note_foreground_offset);
- note.background = d->p->readWord(temp + d->note_background_offset);
- d->p->readSTLString (temp + d->note_name_offset, note.name, 128);
- d->p->read (temp + d->note_xyz_offset, 3*sizeof (uint16_t), (uint8_t *) &note.x);
- return true;
-}
-bool API::InitReadSettlements( uint32_t & numsettlements )
-{
- if(!d->InitReadNames()) return false;
- try
- {
- memory_info * minfo = d->offset_descriptor;
- int allSettlements = minfo->getAddress ("settlements");
- int currentSettlement = minfo->getAddress("settlement_current");
- d->settlement_name_offset = minfo->getOffset ("settlement_name");
- d->settlement_world_xy_offset = minfo->getOffset ("settlement_world_xy");
- d->settlement_local_xy_offset = minfo->getOffset ("settlement_local_xy");
-
- d->p_settlements = new DfVector (d->p, allSettlements);
- d->p_current_settlement = new DfVector(d->p, currentSettlement);
- d->settlementsInited = true;
- numsettlements = d->p_settlements->getSize();
- return true;
- }
- catch (Error::AllMemdef&)
- {
- d->settlementsInited = false;
- numsettlements = 0;
- throw;
- }
-}
-bool API::ReadSettlement(const int32_t index, t_settlement & settlement)
-{
- if(!d->settlementsInited) return false;
- if(!d->p_settlements->getSize()) return false;
-
- // read pointer from vector at position
- uint32_t temp = d->p_settlements->at (index);
- settlement.origin = temp;
- d->readName(settlement.name, temp + d->settlement_name_offset);
- d->p->read(temp + d->settlement_world_xy_offset, 2 * sizeof(int16_t), (uint8_t *) &settlement.world_x);
- d->p->read(temp + d->settlement_local_xy_offset, 4 * sizeof(int16_t), (uint8_t *) &settlement.local_x1);
- return true;
-}
-
-bool API::ReadCurrentSettlement(t_settlement & settlement)
-{
- if(!d->settlementsInited) return false;
- if(!d->p_current_settlement->getSize()) return false;
-
- uint32_t temp = d->p_current_settlement->at(0);
- settlement.origin = temp;
- d->readName(settlement.name, temp + d->settlement_name_offset);
- d->p->read(temp + d->settlement_world_xy_offset, 2 * sizeof(int16_t), (uint8_t *) &settlement.world_x);
- d->p->read(temp + d->settlement_local_xy_offset, 4 * sizeof(int16_t), (uint8_t *) &settlement.local_x1);
- return true;
-}
-
-void API::FinishReadSettlements()
-{
- if(d->p_settlements)
- {
- delete d->p_settlements;
- d->p_settlements = NULL;
- }
- if(d->p_current_settlement)
- {
- delete d->p_current_settlement;
- d->p_current_settlement = NULL;
- }
- d->settlementsInited = false;
-}
-
-void API::FinishReadNotes()
-{
- if(d->p_notes)
- {
- delete d->p_notes;
- d->p_notes = 0;
- }
- d->notesInited = false;
-}
diff --git a/library/private/Internal.h b/library/private/Internal.h
index c42baaef..34cc4090 100644
--- a/library/private/Internal.h
+++ b/library/private/Internal.h
@@ -32,10 +32,6 @@ distribution.
#define BUILD_DFHACK_LIB
#endif
-// wizardry for adding quotes to macros
-#define _QUOTEME(x) #x
-#define QUOT(x) _QUOTEME(x)
-
// force large file support
#ifdef LINUX_BUILD
#define _FILE_OFFSET_BITS 64
diff --git a/library/private/PlatformInternal.h b/library/private/PlatformInternal.h
deleted file mode 100644
index d29115a8..00000000
--- a/library/private/PlatformInternal.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-https://github.com/peterix/dfhack
-Copyright (c) 2009-2011 Petr Mrázek (peterix@gmail.com)
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any
-damages arising from the use of this software.
-
-Permission is granted to anyone to use this software for any
-purpose, including commercial applications, and to alter it and
-redistribute it freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must
-not claim that you wrote the original software. If you use this
-software in a product, an acknowledgment in the product documentation
-would be appreciated but is not required.
-
-2. Altered source versions must be plainly marked as such, and
-must not be misrepresented as being the original software.
-
-3. This notice may not be removed or altered from any source
-distribution.
-*/
-
-#pragma once
-
-#ifndef DFPLATFORMINTERNAL_H_INCLUDED
-#define DFPLATFORMINTERNAL_H_INCLUDED
-
-// platform includes and defines
-#ifdef LINUX_BUILD
- #include <sys/types.h>
- #include <sys/ptrace.h>
- #include <dirent.h>
- #include <unistd.h>
- #include <sys/stat.h>
- #include <syscall.h>
- #include <fcntl.h>
- #include <sys/wait.h>
-#else
- // WINDOWS
- #define _WIN32_WINNT 0x0501 // needed for INPUT struct
- #define WINVER 0x0501 // OpenThread(), PSAPI, Toolhelp32
- #define WIN32_LEAN_AND_MEAN
- #include <windows.h>
- #include <winnt.h>
- #include <psapi.h>
- #include <tlhelp32.h>
- //#include <Dbghelp.h> // NOT present in mingw32
- typedef LONG NTSTATUS;
- #define STATUS_SUCCESS ((NTSTATUS)0x00000000L)
-
- // FIXME: it is uncertain how these map to 64bit
- typedef struct _DEBUG_BUFFER
- {
- HANDLE SectionHandle;
- PVOID SectionBase;
- PVOID RemoteSectionBase;
- ULONG SectionBaseDelta;
- HANDLE EventPairHandle;
- ULONG Unknown[2];
- HANDLE RemoteThreadHandle;
- ULONG InfoClassMask;
- ULONG SizeOfInfo;
- ULONG AllocatedSize;
- ULONG SectionSize;
- PVOID ModuleInformation;
- PVOID BackTraceInformation;
- PVOID HeapInformation;
- PVOID LockInformation;
- PVOID Reserved[8];
- } DEBUG_BUFFER, *PDEBUG_BUFFER;
-
- typedef struct _DEBUG_HEAP_INFORMATION
- {
- ULONG Base; // 0×00
- ULONG Flags; // 0×04
- USHORT Granularity; // 0×08
- USHORT Unknown; // 0x0A
- ULONG Allocated; // 0x0C
- ULONG Committed; // 0×10
- ULONG TagCount; // 0×14
- ULONG BlockCount; // 0×18
- ULONG Reserved[7]; // 0x1C
- PVOID Tags; // 0×38
- PVOID Blocks; // 0x3C
- } DEBUG_HEAP_INFORMATION, *PDEBUG_HEAP_INFORMATION;
-
- // RtlQueryProcessDebugInformation.DebugInfoClassMask constants
- #define PDI_MODULES 0x01
- #define PDI_BACKTRACE 0x02
- #define PDI_HEAPS 0x04
- #define PDI_HEAP_TAGS 0x08
- #define PDI_HEAP_BLOCKS 0x10
- #define PDI_LOCKS 0x20
-
- extern "C" __declspec(dllimport) NTSTATUS __stdcall RtlQueryProcessDebugInformation( IN ULONG ProcessId, IN ULONG DebugInfoClassMask, IN OUT PDEBUG_BUFFER DebugBuffer);
- extern "C" __declspec(dllimport) PDEBUG_BUFFER __stdcall RtlCreateQueryDebugBuffer( IN ULONG Size, IN BOOLEAN EventPair);
- extern "C" __declspec(dllimport) NTSTATUS __stdcall RtlDestroyQueryDebugBuffer( IN PDEBUG_BUFFER DebugBuffer);
-#endif // WINDOWS
-
-#endif // DFPLATFORMINTERNAL_H_INCLUDED \ No newline at end of file
diff --git a/offsetedit/CMakeLists.txt b/offsetedit/CMakeLists.txt
deleted file mode 100644
index f8065bc4..00000000
--- a/offsetedit/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-
-project(dfoffsetedit)
-cmake_minimum_required(VERSION 2.6)
-find_package(Qt4 QUIET)
-if(QT4_FOUND)
- add_subdirectory (src)
-else(QT4_FOUND)
- MESSAGE(STATUS "Qt4 libraries not found - offset editor can't be built.")
-endif(QT4_FOUND)
diff --git a/offsetedit/src/CMakeLists.txt b/offsetedit/src/CMakeLists.txt
deleted file mode 100644
index 9a221841..00000000
--- a/offsetedit/src/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
-
-set ( dfoffsetedit_SRCS
- dfedit.cpp
- memxmlModel.cpp
- main.cpp
-)
-
-SET ( dfoffsetedit_UI
- gui/main.ui
-)
-
-SET( dfoffsetedit_RCS
- gui/resources.qrc
-)
-
-# this command will generate rules that will run rcc on all files from dfoffsetedit_RCS
-# in result dfoffsetedit_RC_SRCS variable will contain paths to files produced by rcc
-QT4_ADD_RESOURCES( dfoffsetedit_RC_SRCS ${dfoffsetedit_RCS} )
-
-QT4_WRAP_UI(dfoffsetedit_UI_h ${dfoffsetedit_UI})
-qt4_automoc(${dfoffsetedit_SRCS})
-
-add_executable(dfoffsetedit ${dfoffsetedit_SRCS} ${dfoffsetedit_RC_SRCS} ${dfoffsetedit_UI_h})
-target_link_libraries(dfoffsetedit ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTXML_LIBRARY} ) \ No newline at end of file
diff --git a/offsetedit/src/dfedit.cpp b/offsetedit/src/dfedit.cpp
deleted file mode 100644
index f7ac3e7a..00000000
--- a/offsetedit/src/dfedit.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-#include "dfedit.h"
-#include <QFileDialog>
-#include <QDebug>
-#include "memxmlModel.h"
-
-dfedit::dfedit(QWidget *parent): QMainWindow(parent)
-{
- ui.setupUi(this);
- connect(ui.actionOpen,SIGNAL(triggered(bool)),this,SLOT(slotOpen(bool)));
- connect(ui.actionQuit,SIGNAL(triggered(bool)),this,SLOT(slotQuit(bool)));
- connect(ui.actionRun_DF,SIGNAL(triggered(bool)),this,SLOT(slotRunDF(bool)));
- connect(ui.actionSave,SIGNAL(triggered(bool)),this,SLOT(slotSave(bool)));
- connect(ui.actionSave_As,SIGNAL(triggered(bool)),this,SLOT(slotSaveAs(bool)));
- connect(ui.actionSetup_DF_executables,SIGNAL(triggered(bool)),this,SLOT(slotSetupDFs(bool)));
- ui.actionOpen->setIcon(QIcon::fromTheme("document-open"));
- ui.actionOpen->setIconText(tr("Open"));
- ui.actionSave->setIcon(QIcon::fromTheme("document-save"));
- ui.actionSave->setIconText(tr("Save"));
- ui.actionSave_As->setIcon(QIcon::fromTheme("document-save-as"));
- ui.actionSave_As->setIconText(tr("Save As"));
- ui.actionRun_DF->setIcon(QIcon::fromTheme("system-run"));
- ui.actionRun_DF->setIconText(tr("Run DF"));
- ui.actionQuit->setIcon(QIcon::fromTheme("application-exit"));
- ui.actionQuit->setIconText(tr("Run DF"));
-}
-
-dfedit::~dfedit()
-{}
-
-void dfedit::slotOpen(bool )
-{
- QFileDialog fd(this,tr("Locate the Memoxy.xml file"));
- fd.setNameFilter(tr("Memory definition (*.xml)"));
- fd.setFileMode(QFileDialog::ExistingFile);
- fd.setAcceptMode(QFileDialog::AcceptOpen);
- int result = fd.exec();
- if(result == QDialog::Accepted)
- {
- QStringList files = fd.selectedFiles();
- QString fileName = files[0];
- QDomDocument doc("memxml");
- QFile file(fileName);
- if(!file.open(QIODevice::ReadOnly))
- {
- return;
- }
- if(!doc.setContent(&file))
- {
- file.close();
- return;
- }
- mod = new MemXMLModel(doc,this);
- ui.entryView->setModel(mod);
- file.close();
- }
-}
-
-void dfedit::slotQuit(bool )
-{
- close();
-}
-
-void dfedit::slotSave(bool )
-{
- // blah
-}
-
-void dfedit::slotRunDF(bool )
-{
- // blah
-}
-
-void dfedit::slotSaveAs(bool )
-{
- QFileDialog fd(this,tr("Choose file to save as..."));
- fd.setNameFilter(tr("Memory definition (*.xml)"));
- fd.setFileMode(QFileDialog::AnyFile);
- fd.selectFile("Memory.xml");
- fd.setAcceptMode(QFileDialog::AcceptSave);
- int result = fd.exec();
- if(result == QDialog::Accepted)
- {
- QStringList files = fd.selectedFiles();
- QString file = files[0];
- qDebug() << "File:" << file;
- }
-}
-
-void dfedit::slotSetupDFs(bool )
-{
- // dialog showing all the versions in Memory.xml that lets the user set up ways to run those versions...
- // currently unimplemented
-}
-
-#include "dfedit.moc"
diff --git a/offsetedit/src/dfedit.h b/offsetedit/src/dfedit.h
deleted file mode 100644
index 2a30ef7a..00000000
--- a/offsetedit/src/dfedit.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef dfedit_H
-#define dfedit_H
-
-#include <QtGui/QMainWindow>
-#include "ui_main.h"
-#include "memxmlModel.h"
-
-class dfedit : public QMainWindow
-{
- Q_OBJECT
-public:
- dfedit(QWidget *parent = 0);
- virtual ~dfedit();
-
-private:
- Ui::MainWindow ui;
- MemXMLModel * mod;
-public slots:
- void slotOpen(bool);
- void slotQuit(bool);
- void slotSave(bool);
- void slotSaveAs(bool);
- void slotRunDF(bool);
- void slotSetupDFs(bool);
-};
-#endif // dfedit_H
diff --git a/offsetedit/src/gui/dIsForDwarf.svg b/offsetedit/src/gui/dIsForDwarf.svg
deleted file mode 100644
index 51b7acf0..00000000
--- a/offsetedit/src/gui/dIsForDwarf.svg
+++ /dev/null
@@ -1,1621 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="32"
- height="32"
- id="svg4002"
- version="1.1"
- inkscape:version="0.47 r22583"
- sodipodi:docname="dIsForDwarf.svg"
- inkscape:export-filename="/home/peterix/projects/dfhack/offsetedit/src/gui/main_64.png"
- inkscape:export-xdpi="180"
- inkscape:export-ydpi="180">
- <defs
- id="defs4004">
- <pattern
- inkscape:stockid="Polka dots, medium white"
- id="Polkadots-medwhite"
- patternTransform="matrix(1.7180697,0,0,1.5007234,2.6737669,0.33425975)"
- height="10"
- width="10"
- patternUnits="userSpaceOnUse"
- inkscape:collect="always">
- <circle
- id="circle5582"
- r="0.15"
- cy="0.810"
- cx="2.567"
- style="fill:white;stroke:none" />
- <circle
- id="circle5584"
- r="0.15"
- cy="2.33"
- cx="3.048"
- style="fill:white;stroke:none" />
- <circle
- id="circle5586"
- r="0.15"
- cy="2.415"
- cx="4.418"
- style="fill:white;stroke:none" />
- <circle
- id="circle5588"
- r="0.15"
- cy="3.029"
- cx="1.844"
- style="fill:white;stroke:none" />
- <circle
- id="circle5590"
- r="0.15"
- cy="1.363"
- cx="6.08"
- style="fill:white;stroke:none" />
- <circle
- id="circle5592"
- r="0.15"
- cy="4.413"
- cx="5.819"
- style="fill:white;stroke:none" />
- <circle
- id="circle5594"
- r="0.15"
- cy="4.048"
- cx="4.305"
- style="fill:white;stroke:none" />
- <circle
- id="circle5596"
- r="0.15"
- cy="3.045"
- cx="5.541"
- style="fill:white;stroke:none" />
- <circle
- id="circle5598"
- r="0.15"
- cy="5.527"
- cx="4.785"
- style="fill:white;stroke:none" />
- <circle
- id="circle5600"
- r="0.15"
- cy="5.184"
- cx="2.667"
- style="fill:white;stroke:none" />
- <circle
- id="circle5602"
- r="0.15"
- cy="1.448"
- cx="7.965"
- style="fill:white;stroke:none" />
- <circle
- id="circle5604"
- r="0.15"
- cy="5.049"
- cx="7.047"
- style="fill:white;stroke:none" />
- <circle
- id="circle5606"
- r="0.15"
- cy="0.895"
- cx="4.340"
- style="fill:white;stroke:none" />
- <circle
- id="circle5608"
- r="0.15"
- cy="0.340"
- cx="7.125"
- style="fill:white;stroke:none" />
- <circle
- id="circle5610"
- r="0.15"
- cy="1.049"
- cx="9.553"
- style="fill:white;stroke:none" />
- <circle
- id="circle5612"
- r="0.15"
- cy="2.689"
- cx="7.006"
- style="fill:white;stroke:none" />
- <circle
- id="circle5614"
- r="0.15"
- cy="2.689"
- cx="8.909"
- style="fill:white;stroke:none" />
- <circle
- id="circle5616"
- r="0.15"
- cy="4.407"
- cx="9.315"
- style="fill:white;stroke:none" />
- <circle
- id="circle5618"
- r="0.15"
- cy="3.870"
- cx="7.820"
- style="fill:white;stroke:none" />
- <circle
- id="circle5620"
- r="0.15"
- cy="5.948"
- cx="8.270"
- style="fill:white;stroke:none" />
- <circle
- id="circle5622"
- r="0.15"
- cy="7.428"
- cx="7.973"
- style="fill:white;stroke:none" />
- <circle
- id="circle5624"
- r="0.15"
- cy="8.072"
- cx="9.342"
- style="fill:white;stroke:none" />
- <circle
- id="circle5626"
- r="0.15"
- cy="9.315"
- cx="8.206"
- style="fill:white;stroke:none" />
- <circle
- id="circle5628"
- r="0.15"
- cy="9.475"
- cx="9.682"
- style="fill:white;stroke:none" />
- <circle
- id="circle5630"
- r="0.15"
- cy="6.186"
- cx="9.688"
- style="fill:white;stroke:none" />
- <circle
- id="circle5632"
- r="0.15"
- cy="6.296"
- cx="3.379"
- style="fill:white;stroke:none" />
- <circle
- id="circle5634"
- r="0.15"
- cy="8.204"
- cx="2.871"
- style="fill:white;stroke:none" />
- <circle
- id="circle5636"
- r="0.15"
- cy="8.719"
- cx="4.59"
- style="fill:white;stroke:none" />
- <circle
- id="circle5638"
- r="0.15"
- cy="9.671"
- cx="3.181"
- style="fill:white;stroke:none" />
- <circle
- id="circle5640"
- r="0.15"
- cy="7.315"
- cx="5.734"
- style="fill:white;stroke:none" />
- <circle
- id="circle5642"
- r="0.15"
- cy="6.513"
- cx="6.707"
- style="fill:white;stroke:none" />
- <circle
- id="circle5644"
- r="0.15"
- cy="9.670"
- cx="5.730"
- style="fill:white;stroke:none" />
- <circle
- id="circle5646"
- r="0.15"
- cy="8.373"
- cx="6.535"
- style="fill:white;stroke:none" />
- <circle
- id="circle5648"
- r="0.15"
- cy="7.154"
- cx="4.37"
- style="fill:white;stroke:none" />
- <circle
- id="circle5650"
- r="0.15"
- cy="7.25"
- cx="0.622"
- style="fill:white;stroke:none" />
- <circle
- id="circle5652"
- r="0.15"
- cy="5.679"
- cx="0.831"
- style="fill:white;stroke:none" />
- <circle
- id="circle5654"
- r="0.15"
- cy="8.519"
- cx="1.257"
- style="fill:white;stroke:none" />
- <circle
- id="circle5656"
- r="0.15"
- cy="6.877"
- cx="1.989"
- style="fill:white;stroke:none" />
- <circle
- id="circle5658"
- r="0.15"
- cy="3.181"
- cx="0.374"
- style="fill:white;stroke:none" />
- <circle
- id="circle5660"
- r="0.15"
- cy="1.664"
- cx="1.166"
- style="fill:white;stroke:none" />
- <circle
- id="circle5662"
- r="0.15"
- cy="0.093"
- cx="1.151"
- style="fill:white;stroke:none" />
- <circle
- id="circle5664"
- r="0.15"
- cy="10.093"
- cx="1.151"
- style="fill:white;stroke:none" />
- <circle
- id="circle5666"
- r="0.15"
- cy="4.451"
- cx="1.302"
- style="fill:white;stroke:none" />
- <circle
- id="circle5668"
- r="0.15"
- cy="3.763"
- cx="3.047"
- style="fill:white;stroke:none" />
- </pattern>
- <linearGradient
- id="linearGradient3862">
- <stop
- style="stop-color:#d7f4ee;stop-opacity:1;"
- offset="0"
- id="stop3864" />
- <stop
- style="stop-color:#9499f8;stop-opacity:1;"
- offset="1"
- id="stop3866" />
- </linearGradient>
- <linearGradient
- id="linearGradient3848">
- <stop
- id="stop3850"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop3852"
- offset="1"
- style="stop-color:#0000ea;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3810">
- <stop
- style="stop-color:#f7f7ff;stop-opacity:1;"
- offset="0"
- id="stop3812" />
- <stop
- style="stop-color:#f7f7ff;stop-opacity:0;"
- offset="1"
- id="stop3814" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4836">
- <stop
- style="stop-color:#00002b;stop-opacity:1"
- offset="0"
- id="stop4838" />
- <stop
- style="stop-color:#000065;stop-opacity:1"
- offset="1"
- id="stop4840" />
- </linearGradient>
- <linearGradient
- id="linearGradient5157">
- <stop
- style="stop-color:#fe7600;stop-opacity:1"
- offset="0"
- id="stop5159" />
- <stop
- style="stop-color:#e44800;stop-opacity:1;"
- offset="1"
- id="stop5161" />
- </linearGradient>
- <linearGradient
- id="linearGradient4933">
- <stop
- style="stop-color:#002eae;stop-opacity:1;"
- offset="0"
- id="stop4935" />
- <stop
- id="stop5165"
- offset="0.5"
- style="stop-color:#0923ff;stop-opacity:1;" />
- <stop
- style="stop-color:#82b4ff;stop-opacity:1;"
- offset="1"
- id="stop4937" />
- </linearGradient>
- <filter
- inkscape:collect="always"
- id="filter4859"
- x="-0.14246575"
- width="1.2849315"
- y="-0.14246575"
- height="1.2849315">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="1.3059361"
- id="feGaussianBlur4861" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter5193"
- x="-0.22112783"
- width="1.4422557"
- y="-0.2650282"
- height="1.5300564">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="1.3274396"
- id="feGaussianBlur5195" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4933"
- id="linearGradient7504"
- gradientUnits="userSpaceOnUse"
- x1="1"
- y1="16"
- x2="31"
- y2="16" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4836"
- id="linearGradient7506"
- gradientUnits="userSpaceOnUse"
- x1="6.5"
- y1="26.5"
- x2="8.5"
- y2="24.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3848"
- id="linearGradient7508"
- gradientUnits="userSpaceOnUse"
- x1="16"
- y1="31"
- x2="16"
- y2="27.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4836"
- id="linearGradient7512"
- gradientUnits="userSpaceOnUse"
- x1="31"
- y1="16"
- x2="27.5"
- y2="16" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3810"
- id="radialGradient3818"
- cx="16"
- cy="15.999999"
- fx="16"
- fy="15.999999"
- r="11.25"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.60716289,0.71496355,-0.76223181,0.64730416,18.481102,-5.7962831)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3862"
- id="linearGradient3868"
- x1="4.75"
- y1="10.254757"
- x2="20.267321"
- y2="27.25"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- id="linearGradient3810-1">
- <stop
- style="stop-color:#f7f7ff;stop-opacity:1;"
- offset="0"
- id="stop3812-8" />
- <stop
- style="stop-color:#f7f7ff;stop-opacity:0;"
- offset="1"
- id="stop3814-7" />
- </linearGradient>
- <linearGradient
- id="linearGradient3810-1-4">
- <stop
- style="stop-color:#f7f7ff;stop-opacity:1;"
- offset="0"
- id="stop3812-8-9" />
- <stop
- style="stop-color:#f7f7ff;stop-opacity:0;"
- offset="1"
- id="stop3814-7-0" />
- </linearGradient>
- <linearGradient
- id="linearGradient3862-5-2">
- <stop
- style="stop-color:#d7f4ee;stop-opacity:1;"
- offset="0"
- id="stop3864-1-0" />
- <stop
- style="stop-color:#0a1294;stop-opacity:1"
- offset="1"
- id="stop3866-1-0" />
- </linearGradient>
- <linearGradient
- id="linearGradient4933-9-1">
- <stop
- style="stop-color:#002eae;stop-opacity:1;"
- offset="0"
- id="stop4935-9-0" />
- <stop
- id="stop5165-4-0"
- offset="0.5"
- style="stop-color:#0923ff;stop-opacity:1;" />
- <stop
- style="stop-color:#82b4ff;stop-opacity:1;"
- offset="1"
- id="stop4937-98-5" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4937-1-8"
- id="linearGradient7524-1"
- gradientUnits="userSpaceOnUse"
- x1="12.242505"
- y1="13.658799"
- x2="12.881028"
- y2="18.834282" />
- <linearGradient
- id="linearGradient4937-1-8">
- <stop
- id="stop4939-7-0"
- offset="0"
- style="stop-color:#ff8f2e;stop-opacity:1" />
- <stop
- id="stop4941-9-1"
- offset="1"
- style="stop-color:#c55b00;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5157-6-9"
- id="linearGradient6449-7"
- gradientUnits="userSpaceOnUse"
- x1="12.242505"
- y1="13.658799"
- x2="12.881028"
- y2="18.834282" />
- <linearGradient
- id="linearGradient5157-6-9">
- <stop
- style="stop-color:#fe7600;stop-opacity:1"
- offset="0"
- id="stop5159-8-1" />
- <stop
- style="stop-color:#e44800;stop-opacity:1;"
- offset="1"
- id="stop5161-9-0" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5141-5-5"
- id="linearGradient6453-3"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-1.107995,-0.56694169)"
- x1="14.34375"
- y1="10"
- x2="20.625"
- y2="21.03125" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5141-5-5">
- <stop
- style="stop-color:#ffe01b;stop-opacity:1"
- offset="0"
- id="stop5143-2-9" />
- <stop
- style="stop-color:#ff7701;stop-opacity:1"
- offset="1"
- id="stop5145-1-4" />
- </linearGradient>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter5137-5-8">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.1870996"
- id="feGaussianBlur5139-9-4" />
- </filter>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter4963-0-9-6">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.22742847"
- id="feGaussianBlur4965-0-1-9" />
- </filter>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter5015-6-2"
- x="-0.12462702"
- width="1.249254"
- y="-0.1274596"
- height="1.2549192">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.20654234"
- id="feGaussianBlur5017-2-9" />
- </filter>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter5015-4-1-0"
- x="-0.12462702"
- width="1.249254"
- y="-0.1274596"
- height="1.2549192">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.20654234"
- id="feGaussianBlur5017-5-0-3" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3810-1"
- id="linearGradient3829"
- x1="25.5"
- y1="25.5"
- x2="19.75"
- y2="19.75"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5141-4">
- <stop
- style="stop-color:#ffe01b;stop-opacity:1"
- offset="0"
- id="stop5143-6" />
- <stop
- style="stop-color:#ff7701;stop-opacity:1"
- offset="1"
- id="stop5145-4" />
- </linearGradient>
- <linearGradient
- id="linearGradient5157-69-0">
- <stop
- style="stop-color:#fe7600;stop-opacity:1"
- offset="0"
- id="stop5159-30-8" />
- <stop
- style="stop-color:#e44800;stop-opacity:1;"
- offset="1"
- id="stop5161-8-9" />
- </linearGradient>
- <linearGradient
- y2="18.834282"
- x2="12.881028"
- y1="13.658799"
- x1="12.242505"
- gradientTransform="matrix(3.1030986,0,0,3.1030986,-48.9938,-8.2983929)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3934"
- xlink:href="#linearGradient5157-69-0"
- inkscape:collect="always" />
- <linearGradient
- y2="18.834282"
- x2="12.881028"
- y1="13.658799"
- x1="12.242505"
- gradientTransform="matrix(3.1030986,0,0,3.1030986,-48.9938,-8.2983929)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3932"
- xlink:href="#linearGradient5157-69-0"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5141-3">
- <stop
- style="stop-color:#ffe01b;stop-opacity:1"
- offset="0"
- id="stop5143-4" />
- <stop
- style="stop-color:#ff7701;stop-opacity:1"
- offset="1"
- id="stop5145-8" />
- </linearGradient>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter5137-5">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.1870996"
- id="feGaussianBlur5139-8" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter4469"
- x="-0.09134536"
- width="1.1826907"
- y="-0.10934783"
- height="1.2186957">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.4305602"
- id="feGaussianBlur4471" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5157-69-0"
- id="linearGradient4490"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.1030986,0,0,3.1030986,-48.9938,-8.2983929)"
- x1="12.242505"
- y1="13.658799"
- x2="12.881028"
- y2="18.834282" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5157-69-0"
- id="linearGradient4492"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.1030986,0,0,3.1030986,-48.9938,-8.2983929)"
- x1="12.242505"
- y1="13.658799"
- x2="12.881028"
- y2="18.834282" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5141-3"
- id="linearGradient4494"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(7.0933889,12.255682)"
- x1="-14.553617"
- y1="7.374999"
- x2="-9.4286175"
- y2="20.9375" />
- <filter
- inkscape:collect="always"
- id="filter6498">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.2312385"
- id="feGaussianBlur6500" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter4027">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.16431143"
- id="feGaussianBlur4029" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5141-4"
- id="linearGradient4037"
- x1="97.324142"
- y1="16.170418"
- x2="98.678459"
- y2="28.935356"
- gradientUnits="userSpaceOnUse" />
- <filter
- inkscape:collect="always"
- id="filter4049">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.14169084"
- id="feGaussianBlur4051" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter4063"
- x="-0.12105609"
- width="1.2421122"
- y="-0.08447797"
- height="1.1689559">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.10811403"
- id="feGaussianBlur4065" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter4073"
- x="-0.12978283"
- width="1.2595657"
- y="-0.053830376"
- height="1.1076608">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.087229635"
- id="feGaussianBlur4075" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5141-4"
- id="linearGradient4082"
- gradientUnits="userSpaceOnUse"
- x1="97.324142"
- y1="16.170418"
- x2="98.678459"
- y2="28.935356" />
- <inkscape:perspective
- id="perspective4120"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5157-6"
- id="linearGradient7520-1"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.1030986,0,0,3.1030986,-51.546839,-44.911408)"
- x1="12.242505"
- y1="13.658799"
- x2="12.881028"
- y2="18.834282" />
- <linearGradient
- id="linearGradient5157-6">
- <stop
- style="stop-color:#fe7600;stop-opacity:1"
- offset="0"
- id="stop5159-2" />
- <stop
- style="stop-color:#e44800;stop-opacity:1;"
- offset="1"
- id="stop5161-1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5141-5"
- id="linearGradient7522-0"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-28.321384,-11.8125)"
- x1="14.34375"
- y1="10"
- x2="20.625"
- y2="21.03125" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5141-5">
- <stop
- style="stop-color:#ffe01b;stop-opacity:1"
- offset="0"
- id="stop5143-3" />
- <stop
- style="stop-color:#ff7701;stop-opacity:1"
- offset="1"
- id="stop5145-2" />
- </linearGradient>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter5137-1">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.1870996"
- id="feGaussianBlur5139-9" />
- </filter>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter4963-0-7">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.22742847"
- id="feGaussianBlur4965-0-6" />
- </filter>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter5015-8"
- x="-0.12462702"
- width="1.249254"
- y="-0.1274596"
- height="1.2549192">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.20654234"
- id="feGaussianBlur5017-2" />
- </filter>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter5015-4-0"
- x="-0.12462702"
- width="1.249254"
- y="-0.1274596"
- height="1.2549192">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.20654234"
- id="feGaussianBlur5017-5-6" />
- </filter>
- <inkscape:perspective
- id="perspective4208"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4239"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4270"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter4859-1-0-4"
- x="-0.14246576"
- width="1.2849315"
- y="-0.14246576"
- height="1.2849315">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="1.3059361"
- id="feGaussianBlur4861-6-3-3" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4933-9-1-6"
- id="linearGradient4572-3"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5,0,0,0.5,64.596024,21.541612)"
- x1="1"
- y1="16"
- x2="31"
- y2="16" />
- <linearGradient
- id="linearGradient4933-9-1-6">
- <stop
- style="stop-color:#002eae;stop-opacity:1;"
- offset="0"
- id="stop4935-9-0-9" />
- <stop
- id="stop5165-4-0-0"
- offset="0.5"
- style="stop-color:#0923ff;stop-opacity:1;" />
- <stop
- style="stop-color:#82b4ff;stop-opacity:1;"
- offset="1"
- id="stop4937-98-5-4" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4836-0-0-5"
- id="linearGradient4574-8"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5,0,0,0.5,64.596024,21.541612)"
- x1="6.5"
- y1="26.5"
- x2="8.5"
- y2="24.5" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4836-0-0-5">
- <stop
- style="stop-color:#00002b;stop-opacity:1"
- offset="0"
- id="stop4838-45-8-1" />
- <stop
- style="stop-color:#000065;stop-opacity:1"
- offset="1"
- id="stop4840-4-3-2" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4836-0-0-5"
- id="linearGradient4576-9"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5,0,0,0.5,64.596024,21.541612)"
- x1="16"
- y1="31"
- x2="16"
- y2="27.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4836-0-0-5"
- id="linearGradient4578-7"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5,0,0,0.5,64.596024,21.541612)"
- x1="31"
- y1="16"
- x2="27.5"
- y2="16" />
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter5193-0-6-3"
- x="-0.22112782"
- width="1.4422557"
- y="-0.26502821"
- height="1.5300564">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="1.3274396"
- id="feGaussianBlur5195-3-3-8" />
- </filter>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3810-1-4-9"
- id="radialGradient4580-0"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.30358145,0.35748178,-0.38111591,0.32365208,73.836575,18.643471)"
- cx="16"
- cy="15.999999"
- fx="16"
- fy="15.999999"
- r="11.25" />
- <linearGradient
- id="linearGradient3810-1-4-9">
- <stop
- style="stop-color:#f7f7ff;stop-opacity:1;"
- offset="0"
- id="stop3812-8-9-2" />
- <stop
- style="stop-color:#f7f7ff;stop-opacity:0;"
- offset="1"
- id="stop3814-7-0-3" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3862-5-2-8"
- id="linearGradient4582-1"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5,0,0,0.5,64.596024,21.541612)"
- x1="4.75"
- y1="10.254757"
- x2="20.267321"
- y2="27.25" />
- <linearGradient
- id="linearGradient3862-5-2-8">
- <stop
- style="stop-color:#d7f4ee;stop-opacity:1;"
- offset="0"
- id="stop3864-1-0-7" />
- <stop
- style="stop-color:#0a1294;stop-opacity:1"
- offset="1"
- id="stop3866-1-0-4" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5141-4"
- id="linearGradient4431"
- gradientUnits="userSpaceOnUse"
- x1="97.324142"
- y1="16.170418"
- x2="98.678459"
- y2="28.935356" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5141-4"
- id="linearGradient4433"
- gradientUnits="userSpaceOnUse"
- x1="97.324142"
- y1="16.170418"
- x2="98.678459"
- y2="28.935356" />
- <inkscape:perspective
- id="perspective4443"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5141-4-8"
- id="linearGradient4433-5"
- gradientUnits="userSpaceOnUse"
- x1="97.324142"
- y1="16.170418"
- x2="98.678459"
- y2="28.935356" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5141-4-8">
- <stop
- style="stop-color:#ffe01b;stop-opacity:1"
- offset="0"
- id="stop5143-6-7" />
- <stop
- style="stop-color:#ff7701;stop-opacity:1"
- offset="1"
- id="stop5145-4-1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5141-4-8"
- id="linearGradient4431-7"
- gradientUnits="userSpaceOnUse"
- x1="97.324142"
- y1="16.170418"
- x2="98.678459"
- y2="28.935356" />
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter4027-0">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.16431143"
- id="feGaussianBlur4029-6" />
- </filter>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter4049-0">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.14169084"
- id="feGaussianBlur4051-4" />
- </filter>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter4063-1"
- x="-0.12105609"
- width="1.2421122"
- y="-0.084477969"
- height="1.1689559">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.10811403"
- id="feGaussianBlur4065-3" />
- </filter>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter4073-0"
- x="-0.12978283"
- width="1.2595657"
- y="-0.053830378"
- height="1.1076608">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.087229635"
- id="feGaussianBlur4075-2" />
- </filter>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#808080"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:zoom="7.9999997"
- inkscape:cx="18.244096"
- inkscape:cy="18.524575"
- inkscape:current-layer="layer1-9"
- showgrid="false"
- inkscape:document-units="px"
- inkscape:grid-bbox="true"
- inkscape:window-width="1588"
- inkscape:window-height="1032"
- inkscape:window-x="-4"
- inkscape:window-y="-3"
- inkscape:window-maximized="1"
- showborder="true"
- borderlayer="false"
- inkscape:showpageshadow="false">
- <inkscape:grid
- type="xygrid"
- id="grid4863"
- empspacing="16"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true"
- spacingx="0.5px"
- spacingy="0.5px" />
- </sodipodi:namedview>
- <metadata
- id="metadata4007">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- transform="translate(-26.727273,-11.818182)"
- style="opacity:0.9">
- <g
- inkscape:label="Layer 1"
- id="layer1-9"
- inkscape:export-filename="/home/peterix/projects/textures/g3135.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90"
- transform="translate(26.727273,11.818182)">
- <g
- id="g7482">
- <path
- style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:none;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
- d="m 10.78125,0 -0.125,0.15625 -10.5,10.5 L 0,10.78125 0,11 l 0,10 0,0.21875 0.15625,0.125 10.5,10.5 L 10.78125,32 11,32 l 10,0 0.21875,0 0.125,-0.15625 10.5,-10.5 L 32,21.21875 32,21 l 0,-10 0,-0.21875 -0.15625,-0.125 -10.5,-10.5 L 21.21875,0 21,0 11,0 10.78125,0 z M 11.1875,1 20.8125,1 31,11.1875 31,20.8125 20.8125,31 11.1875,31 1,20.8125 1,11.1875 11.1875,1 z"
- id="path3683-2" />
- <path
- sodipodi:type="arc"
- style="color:#000000;fill:#a6a6ff;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4859);enable-background:accumulate"
- id="path3653-47"
- sodipodi:cx="16"
- sodipodi:cy="16"
- sodipodi:rx="11"
- sodipodi:ry="11"
- d="M 27,16 C 27,22.075132 22.075132,27 16,27 9.9248678,27 5,22.075132 5,16 5,9.9248678 9.9248678,5 16,5 22.075132,5 27,9.9248678 27,16 z"
- transform="matrix(1.0852273,0,0,1.0852273,-1.3636364,-1.3636364)" />
- <path
- sodipodi:nodetypes="ccccccccc"
- style="fill:url(#linearGradient7504);fill-opacity:1;stroke-width:1px"
- d="M 1,11 C 1,11 11,1 11,1 L 21,1 31,11 31,21 21,31 11,31 1,21 1,11 z"
- id="path3707-4" />
- <path
- style="opacity:0.69767438000000004;fill:#3434ff;fill-opacity:1;stroke:url(#linearGradient7506);stroke-width:0.50000000000000000;stroke-linejoin:bevel"
- d="M 12,27 5,20 1,21 11,31 12,27 z"
- id="path3671-0"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#2525ff;fill-opacity:1;stroke:url(#linearGradient7508);stroke-width:0.50000000000000000;stroke-linejoin:bevel"
- d="m 11,31 1,-4 8,0 1,4 -10,0 z"
- id="path3669-8"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#0000d3;fill-opacity:1;stroke:url(#linearGradient7512);stroke-width:0.50000000000000000;stroke-linejoin:bevel"
- d="m 27,12 4,-1 0,10 -4,-1 0,-8 z"
- id="path3665-3"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#2a2aff;stroke:#e6e6e6;stroke-width:0.50000000000000000;stroke-linejoin:bevel"
- d="m 21,1 -1,4 7,7 4,-1 L 21,1 z"
- id="path3663-9"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.44186048000000000;fill:#ffffff;stroke-width:1px;filter:url(#filter5193)"
- d="M 5.5214057,18.642053 5.5028162,11.511794 7.9143054,7.4003143 11.771074,4.6953153 15.91831,4.6755846 18.87932,5.5624674 22.117669,8.6986762 16.374582,8.153037 12.397108,8.594978 8.2870487,11.865347 7.9334958,14.782163 7.7125249,17.389619 5.5214057,18.642053 z"
- id="path3705-8"
- transform="matrix(1.0902353,0,0,1.1155361,-0.81014444,-0.81470936)"
- sodipodi:nodetypes="ccccccccccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#0000ca;fill-opacity:1;stroke:url(#linearGradient3829);stroke-width:0.50000000000000000;stroke-linejoin:bevel"
- d="m 27,20 -7,7 1,4 10,-10 -4,-1 z"
- id="path3667-6"
- sodipodi:nodetypes="ccccc" />
- <path
- sodipodi:nodetypes="ccccccccc"
- style="opacity:0.60633484999999998;fill:url(#radialGradient3818);fill-opacity:1;stroke:url(#linearGradient3868);stroke-width:0.50000000000000000;stroke-opacity:1"
- d="m 5,12 0,8 7,7 8,0 7,-7 0,-8 -7,-7 -8,0 -7,7 z"
- id="path3687-1" />
- <path
- sodipodi:nodetypes="ccccccccc"
- style="fill:none;stroke:#00002b;stroke-width:1px"
- d="M 0.5,11 11,0.5 21,0.5 31.5,11 31.5,21 21,31.5 11,31.5 0.5,21 0.5,11 z"
- id="path6797" />
- <path
- style="opacity:0.69767438000000004;fill:#7d7dff;fill-opacity:1;stroke:#ffffff;stroke-width:0.50000000000000000;stroke-linejoin:round"
- d="m 1,11 4,1 0,8 -4,1 0,-10 z"
- id="path3657-1"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#a2a2ff;fill-opacity:1;stroke:#ececec;stroke-width:0.50000000000000000;stroke-linejoin:bevel"
- d="M 11,1 21,1 20,5 12,5 11,1 z"
- id="path3661-8"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#f7f7ff;fill-opacity:1;stroke:#ffffff;stroke-width:0.50000000000000000;stroke-linejoin:bevel"
- d="M 1,11 11,1 12,5 5,12 1,11 z"
- id="path3659-2"
- sodipodi:nodetypes="ccccc" />
- <g
- transform="translate(-2.669148,-5.4448006)"
- style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:none;stroke:#000000;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Andale Mono;-inkscape-font-specification:Andale Mono"
- id="flowRoot3831-6" />
- </g>
- <g
- id="g4556"
- transform="translate(-24.346022,-5.7916178)"
- inkscape:export-filename="/home/peterix/projects/dfhack/offsetedit/src/gui/main_16.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:none;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
- d="m 69.986649,21.541612 -0.0625,0.07813 -5.25,5.250001 -0.07813,0.0625 0,0.109375 0,5 0,0.109375 0.07813,0.0625 5.25,5.25 0.0625,0.07813 0.109375,0 5,0 0.109375,0 0.0625,-0.07813 5.25,-5.25 0.07813,-0.0625 0,-0.109375 0,-5 0,-0.109375 -0.07813,-0.0625 -5.25,-5.250001 -0.0625,-0.07813 -0.109375,0 -5,0 -0.109375,0 z m 0.203125,0.5 4.8125,0 5.09375,5.093751 0,4.8125 -5.09375,5.09375 -4.8125,0 -5.09375,-5.09375 0,-4.8125 5.09375,-5.093751 z"
- id="path3683-2-39" />
- <path
- sodipodi:type="arc"
- style="color:#000000;fill:#a6a6ff;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4859-1-0-4);enable-background:accumulate"
- id="path3653-47-3"
- sodipodi:cx="16"
- sodipodi:cy="16"
- sodipodi:rx="11"
- sodipodi:ry="11"
- d="M 27,16 C 27,22.075132 22.075132,27 16,27 9.9248678,27 5,22.075132 5,16 5,9.9248678 9.9248678,5 16,5 22.075132,5 27,9.9248678 27,16 z"
- transform="matrix(0.54261365,0,0,0.54261365,63.914206,20.859794)" />
- <path
- sodipodi:nodetypes="ccccccccc"
- style="fill:url(#linearGradient4572-3);fill-opacity:1;stroke-width:1px"
- d="m 65.096024,27.041613 c 0,0 5,-5.000001 5,-5.000001 l 5,0 5,5.000001 0,5 -5,5 -5,0 -5,-5 0,-5 z"
- id="path3707-4-3" />
- <path
- style="opacity:0.69767438000000004;fill:#3434ff;fill-opacity:1;stroke:url(#linearGradient4574-8);stroke-width:0.25000000000000000;stroke-linejoin:bevel"
- d="m 70.596024,35.041613 -3.5,-3.5 -2,0.5 5,5 0.5,-2 z"
- id="path3671-0-46"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#2525ff;fill-opacity:1;stroke:url(#linearGradient4576-9);stroke-width:0.25000000000000000;stroke-linejoin:bevel"
- d="m 70.096024,37.041613 0.5,-2 4,0 0.5,2 -5,0 z"
- id="path3669-8-1"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#0000d3;fill-opacity:1;stroke:url(#linearGradient4578-7);stroke-width:0.25000000000000000;stroke-linejoin:bevel"
- d="m 78.096024,27.541613 2,-0.5 0,5 -2,-0.5 0,-4 z"
- id="path3665-3-5"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#2a2aff;stroke:#e6e6e6;stroke-width:0.25000000000000000;stroke-linejoin:bevel"
- d="m 75.096024,22.041612 -0.5,2 3.5,3.500001 2,-0.5 -5,-5.000001 z"
- id="path3663-9-6"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.44186048000000000;fill:#ffffff;stroke-width:1px;filter:url(#filter5193-0-6-3)"
- d="M 5.5214057,18.642053 5.5028162,11.511794 7.9143054,7.4003143 11.771074,4.6953153 15.91831,4.6755846 18.87932,5.5624674 22.117669,8.6986762 16.374582,8.153037 12.397108,8.594978 8.2870487,11.865347 7.9334958,14.782163 7.7125249,17.389619 5.5214057,18.642053 z"
- id="path3705-8-1"
- transform="matrix(0.54511765,0,0,0.55776805,64.190952,21.134257)"
- sodipodi:nodetypes="ccccccccccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#0000ca;fill-opacity:1;stroke:none"
- d="m 78.096024,31.541613 -3.5,3.5 0.5,2 5,-5 -2,-0.5 z"
- id="path3667-6-7"
- sodipodi:nodetypes="ccccc" />
- <path
- sodipodi:nodetypes="ccccccccc"
- style="opacity:0.60633484999999998;fill:url(#radialGradient4580-0);fill-opacity:1;stroke:url(#linearGradient4582-1);stroke-width:0.25000000000000000;stroke-opacity:1"
- d="m 67.096024,27.541613 0,4 3.5,3.5 4,0 3.5,-3.5 0,-4 -3.5,-3.500001 -4,0 -3.5,3.500001 z"
- id="path3687-1-2" />
- <path
- sodipodi:nodetypes="ccccccccc"
- style="fill:none;stroke:#00002b;stroke-width:0.50000000000000000px"
- d="m 64.846024,27.041613 5.25,-5.250001 5,0 5.25,5.250001 0,5 -5.25,5.25 -5,0 -5.25,-5.25 0,-5 z"
- id="path6797-4" />
- <path
- style="opacity:0.69767438000000004;fill:#7d7dff;fill-opacity:1;stroke:#ffffff;stroke-width:0.25000000000000000;stroke-linejoin:round"
- d="m 65.096024,27.041613 2,0.5 0,4 -2,0.5 0,-5 z"
- id="path3657-1-78"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#a2a2ff;fill-opacity:1;stroke:#ececec;stroke-width:0.25000000000000000;stroke-linejoin:bevel"
- d="m 70.096024,22.041612 5,0 -0.5,2 -4,0 -0.5,-2 z"
- id="path3661-8-6"
- sodipodi:nodetypes="ccccc" />
- <path
- style="opacity:0.69767438000000004;fill:#f7f7ff;fill-opacity:1;stroke:#ffffff;stroke-width:0.25000000000000000;stroke-linejoin:bevel"
- d="m 65.096024,27.041613 5,-5.000001 0.5,2 -3.5,3.500001 -2,-0.5 z"
- id="path3659-2-37"
- sodipodi:nodetypes="ccccc" />
- </g>
- </g>
- <g
- id="g7424"
- transform="translate(97.62765,-4.6031027)">
- <g
- transform="matrix(1.8532706,0,0,1.8532706,-39.902714,-5.3857203)"
- style="font-size:9px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:url(#linearGradient7524-1);fill-opacity:1;stroke:none;font-family:Arial Black;-inkscape-font-specification:'Arial Black, Bold'"
- id="g5076-9">
- <path
- d="m 13.668988,14.973407 c 0.018,0.072 0.045,0.063 0.072,0.126 0.009,-0.009 0.027,0.036 0.036,0.027 0.117,0.135 0.189,-0.135 0.225,-0.207 0.027,-0.063 0.072,-0.117 0.108,-0.171 0.045,-0.063 0.063,-0.144 0.117,-0.207 0.081,-0.099 0.198,-0.207 0.297,-0.288 0.072,-0.045 0.099,-0.09 0.108,-0.144 0,-0.036 0.009,-0.063 0.018,-0.099 0,0 0,0 0,-0.009 -0.081,-0.045 -0.06514,0.01412 -0.07414,-0.07588 -0.009,-0.117 0.0052,-0.214516 -0.0038,-0.349516 -0.009,-0.081 0,-0.108 0.009,-0.198 0.018,-0.063 -0.018,-0.117 -0.027,-0.171 0,-0.135 0.09,-0.288 -0.135,-0.243 -0.09,0.018 -0.428839,0.08624 -0.509839,0.140242 -0.072,0.045 -0.144,0.072 -0.225,0.108 -0.135,0.063 -0.288,0.072 -0.441,0.081 -0.009,0.009 -0.009,0.009 -0.018,0.009 -0.315,-0.009 -0.738694,0.009 -1.035694,0.117 -0.063,0.018 -0.207,0.045 -0.216,0.126 -0.198,0.117 -0.315,0.288 -0.486,0.441 0.009,0.063 -0.045,0.171 -0.054,0.243 -0.018,0.09 -0.009,0.162 -0.009,0.243 0,0.171 0.063,0.324 0.171,0.459 0.108,0.135 0.189,0.279 0.252,0.432 0,0 0.063,0.108 0.063,0.108 0.018,0.018 0.036,0.027 0.045,0.036 0.09,0.162 0.279694,0.324 0.378694,0.468 0.027,0.036 0.054,0.081 0.081,0.126 0.099,0.135 0.189,0.27 0.288,0.414 0.099,0.153 0.227968,0.309758 0.344968,0.453758 0.027,0.063 0.045,0.126 0.072,0.189 0.036,0.081 0.006,0.185242 0.03303,0.275242 0.018,0.063 0.027,0.207 0.063,0.261 -0.081,0.126 -0.072,0.279 -0.252,0.324 -0.027,0 -0.054,-0.009 -0.09,-0.009 -0.027,0 -0.072,0.009 -0.108,0.009 -0.072,-0.018 -0.471565,-0.101968 -0.534565,-0.155968 -0.036,-0.072 -0.045,-0.162 -0.045,-0.252 0,-0.126 0.02303,-0.08477 0.005,-0.192765 -0.036,-0.18 -0.027,-0.369 -0.027,-0.558 0,-0.108 0.027,-0.198 0.018,-0.297 -0.063,-0.117 -0.207,-0.135 -0.297,-0.027 -0.054,0.054 -0.072,0.135 -0.108,0.207 -0.036,0.063 -0.09,0.117 -0.135,0.18 -0.054,0.081 -0.081,0.135 -0.144,0.198 -0.063,0.063 -0.117,0.099 -0.162,0.162 -0.054,-0.018 -0.108,0 -0.162,0.045 0,0.018 -0.009,0.045 -0.009,0.072 -0.009,0.189 -0.01403,0.183765 -0.03204,0.363765 -0.009,0.108 0.027,0.198 0.036,0.297 0.009,0.09 0,0.189 0.009,0.288 0.018,0.099 0.009,0.189 0.018,0.279 0.009,0.108 0.063,0.126 0.117,0.207 0.063,-0.018 0.135,-0.018 0.198,-0.054 0.054,-0.027 0.081,-0.081 0.144,-0.117 0.135,-0.081 0.234,-0.171 0.405,-0.18 0.153,-0.009 0.660565,0.05697 0.831565,0.04797 0.054,0 0.081,0.018 0.126,0.009 0.027,-0.009 0.063,-0.045 0.099,-0.054 0.018,0 0.027,0.009 0.045,0.009 0.027,0.009 0.054,0.045 0.081,0.054 0.027,0 0.108,-0.018 0.108,-0.018 l 0.300879,0.01857 c 0.045,0.009 0.117,-0.045 0.162,-0.099 0.135,-0.027 0.27,-0.063 0.387,-0.144 0.081,-0.054 0.135,-0.117 0.189,-0.18 0.009,-0.027 0.009,-0.054 0.009,-0.072 0.072,-0.099 0.081,-0.315 0.081,-0.432 0,-0.135 -0.036,-0.288 -0.072,-0.423 -0.036,-0.144 -0.081,-0.306 -0.162,-0.423 -0.009,-0.009 -0.018,-0.027 -0.027,-0.036 -0.09,-0.099 -0.207,-0.225 -0.306,-0.297 -0.018,-0.099 -0.099,-0.189 -0.171,-0.279 -0.036,-0.063 -0.072,-0.126 -0.108,-0.189 -0.117,-0.18 -0.382573,-0.303601 -0.472573,-0.492601 -0.099,-0.198 -0.280484,-0.425968 -0.361484,-0.623968 -0.018,-0.045 -0.036,-0.072 -0.063,-0.108 -0.018,-0.036 -0.027,-0.072 -0.045,-0.117 -0.027,-0.099 -0.045,-0.18 -0.054,-0.288 -0.009,-0.045 -0.009,-0.09 0,-0.135 0.027,-0.054 0.09,-0.063 0.063,-0.126 0.072,-0.171 0.353178,-0.198 0.506178,-0.198 0.109071,0.01158 0.128974,0.02221 0.24875,0.09572 0.1712,0.140789 0.203988,0.261436 0.194988,0.432436 0,0 -0.027,0.405 0.018,0.558"
- style="font-weight:normal;fill:url(#linearGradient6449-7);fill-opacity:1;stroke:none;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB"
- id="path5078-0"
- sodipodi:nodetypes="cscssscscsssccssscscccsssccsssscssccsscssscsssscsssssscsssssssscccsscssssccsssssssccccc" />
- </g>
- <path
- transform="matrix(0.59723225,0,0,0.59723225,-25.369993,14.720611)"
- id="path5091-4"
- d="m 19.829505,6.339308 c -0.411543,0.091612 -0.864844,0.170309 -1.03125,0.2812503 -0.223423,0.1396395 -0.467399,0.2320384 -0.71875,0.34375 -0.418919,0.1954952 -0.900226,0.2220721 -1.375,0.25 -0.02793,0.027928 -0.0033,0.03125 -0.03125,0.03125 -0.977476,-0.027928 -2.29713,0.039866 -3.21875,0.375 -0.195495,0.055856 -0.947359,0.1498114 -0.975286,0.4011624 -0.614414,0.3630625 -0.969371,0.9002259 -1.5,1.375 0.02793,0.195495 -0.128322,0.5265767 -0.15625,0.7499993 -0.05585,0.279279 -0.03125,0.498649 -0.03125,0.75 0,0.53063 0.196116,1.018582 0.53125,1.4375 0.335135,0.418918 0.873541,0.842813 1.069036,1.317588 l 0.1875,0.34375 c 0.05586,0.05586 0.128322,0.06582 0.15625,0.09375 0.279279,0.502702 0.849043,1.021904 1.15625,1.46875 0.08378,0.111711 0.166216,0.235361 0.25,0.375 0.307206,0.418919 0.599043,0.834404 0.90625,1.28125 0.307207,0.474774 0.699437,0.959404 1.0625,1.40625 0.08378,0.195495 0.134966,0.398254 0.21875,0.59375 0.111711,0.251351 0.04113,0.564471 0.125,0.84375 0.05586,0.195495 0.07578,0.644933 0.1875,0.8125 -0.125675,0.195495 -0.186993,0.408728 -0.28125,0.59375 -0.09426,0.185022 -0.220721,0.33643 -0.5,0.40625 -0.08378,0 -0.169539,0 -0.28125,0 -0.08378,0 -0.232038,0 -0.34375,0 -0.223423,-0.05586 -1.460755,-0.301182 -1.65625,-0.46875 -0.0312,-0.06239 -0.01191,-0.148864 -0.03125,-0.21875 -0.405979,-0.100422 -0.8269,-0.18645 -0.9375,-0.28125 -0.2645,-0.171271 -0.150587,-0.462519 -0.21875,-0.671875 -0.111712,-0.558558 -0.0625,-1.163514 -0.0625,-1.75 0,-0.138813 0.01639,-0.249399 0.03125,-0.375 -0.104749,0.157701 -0.191409,0.320318 -0.28125,0.5 -0.111712,0.195496 -0.26661,0.367005 -0.40625,0.5625 -0.167567,0.251351 -0.242004,0.429505 -0.4375,0.625 -0.195495,0.195495 -0.36036,0.304505 -0.5,0.5 -0.167567,-0.05586 -0.332432,-0.01464 -0.5,0.125 0,0.05586 -0.03125,0.166217 -0.03125,0.25 -0.02793,0.586486 0.0246,-0.136683 -0.03125,0.421875 -0.02793,0.335134 0.09707,0.630293 0.125,0.9375 0.02793,0.279279 -0.02793,0.567793 0,0.875 0.05586,0.307207 0.03457,0.595721 0.0625,0.875 0.167567,-0.08378 0.273255,-0.263288 0.46875,-0.375 0.418919,-0.251351 0.71937,-0.534572 1.25,-0.5625 0.474774,-0.02793 2.063121,0.184178 2.59375,0.15625 0.167568,0 0.23536,0.05918 0.375,0.03125 0.08378,-0.02793 0.200788,-0.159572 0.3125,-0.1875 0.05586,0 0.06914,0.03125 0.125,0.03125 0.08378,0.02793 0.166216,0.159572 0.25,0.1875 0.08378,0 0.34375,-0.0625 0.34375,-0.0625 l 0.6875,0.09375 c 0.139639,0.02793 0.39161,-0.144933 0.53125,-0.3125 0.418918,-0.08378 1.19071,0.01806 1.553773,-0.233289 0.251351,-0.167567 0.426182,-0.335755 0.59375,-0.53125 0.02793,-0.08378 0.03125,-0.194144 0.03125,-0.25 0.223424,-0.307207 0.25,-0.980687 0.25,-1.34375 0,-0.418918 -0.107038,-0.893582 -0.21875,-1.3125 -0.111711,-0.446847 -0.279899,-0.949437 -0.53125,-1.3125 -0.02793,-0.02793 -0.03458,-0.06582 -0.0625,-0.09375 -0.279279,-0.307206 -1.027817,-0.949538 -1.335023,-1.172961 -0.05586,-0.307207 -0.307827,-0.564471 -0.53125,-0.84375 l -0.3125,-0.59375 c -0.363062,-0.558558 -0.970721,-0.976014 -1.25,-1.5625 -0.307206,-0.614413 -0.873649,-1.323086 -1.125,-1.9375 -0.05586,-0.139639 -0.103717,-0.232038 -0.1875,-0.34375 -0.05586,-0.111711 -0.06914,-0.204111 -0.125,-0.34375 -0.08378,-0.307207 -0.159572,-0.571115 -0.1875,-0.90625 -0.02793,-0.1396387 -0.02793,-0.2666097 0,-0.4062497 0.08378,-0.1675671 0.302534,-0.2107548 0.21875,-0.40625 0.223423,-0.5306299 1.087726,-0.59375 1.5625,-0.59375 0.164833,0.1198783 0.33742,0.35262 0.59375,0.53125 0.128444,-0.011354 0.272924,-0.0625 0.375,-0.0625 0.307207,0.2234231 1.128322,0.553154 1.15625,0.9999997 0,0.53063 0.184178,1.06312 0.15625,1.59375 0,0 0.0018,0.704914 0.03125,1.25 0.0256,-0.06435 0.07475,-0.149495 0.09375,-0.1875 0.08378,-0.195495 0.200789,-0.363683 0.3125,-0.53125 0.13964,-0.195495 0.207433,-0.429505 0.375,-0.625 0.251351,-0.307207 0.630294,-0.654899 0.9375,-0.90625 0.223423,-0.139639 0.284572,-0.269933 0.3125,-0.4375 0,-0.111712 0.03457,-0.200788 0.0625,-0.3125 l 0,-0.03125 c -0.251351,-0.139639 -0.128322,-0.9082211 -0.15625,-1.1875 -0.02793,-0.3630625 -0.0033,-0.6435817 -0.03125,-1.0625 -0.02793,-0.251351 0.0033,-0.3457211 0.03125,-0.625 0.05585,-0.1954952 -0.03458,-0.3636826 -0.0625,-0.53125 0,-0.043975 -0.0047,-0.08057 0,-0.125 z"
- style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:url(#linearGradient6453-3);fill-opacity:1;stroke:none;filter:url(#filter5137-5-8);font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB"
- sodipodi:nodetypes="csscscccsssccsssscsscssssscccscssscssssscssssssscccsscsssscccsssssscccccccssscsccsscsc" />
- <path
- transform="matrix(0.59723225,0,0,0.59723225,-25.369993,14.720611)"
- style="fill:#ffffff;stroke:none;filter:url(#filter4963-0-9-6)"
- d="m 19.622213,6.8093214 -2.12132,0.7954952 -1.856156,0.088388 -1.546796,0.1325826 -1.59099,0.8838835 -1.06066,1.1932429 0.309359,1.5909894 0.883883,1.37002 -0.574524,-1.856156 -0.08839,-1.1932424 1.06066,-1.149048 1.767767,-0.6629127 1.988738,0.044194 1.900349,-0.3093592 0.928078,-0.9280778 z"
- id="path4949-8" />
- <path
- style="opacity:0.71627909;fill:#f1ff1b;fill-opacity:1;stroke:none;filter:url(#filter5015-6-2)"
- d="m 13.567611,22.36567 1.546797,0.640816 1.038563,0.0221 0.90598,-0.552427 0.486136,-1.060661 -0.464039,-1.193242 -0.441941,-1.082758 0.22097,0.83969 0.04419,0.662912 0.22097,0.83969 -0.397747,0.928077 -0.662913,0.441942 -1.126951,-0.06629 -1.37002,-0.419845 z"
- id="path4997-5"
- transform="matrix(0.59723225,0,0,0.59723225,-25.317205,14.456669)" />
- <path
- transform="matrix(0.59723225,0,0,0.59723225,-25.369993,14.720611)"
- style="opacity:0.71627909;color:#000000;fill:#fdffdd;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5015-4-1-0);enable-background:accumulate"
- d="m 12.462757,18.49868 -1.21534,1.502602 -0.486136,0.154679 -0.0221,1.480505 0.176777,1.59099 0.198873,-1.303728 0,-1.370019 0.662913,-0.419845 0.68501,-1.635184 z"
- id="path4995-1" />
- <g
- id="g5097-2"
- style="font-size:9px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:none;stroke:#000000;stroke-width:0.2697933;font-family:Arial Black;-inkscape-font-specification:'Arial Black, Bold'"
- transform="matrix(1.9619743,0,0,1.9080064,-41.358339,-6.3768506)">
- <path
- sodipodi:nodetypes="ccssscsccsccczccsssssccsssscssscsscssscsssscsssssscsssssssscccsscssssccssssscccccc"
- id="path5099-9"
- style="font-weight:normal;fill:none;stroke:#000000;stroke-width:0.2697933;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB"
- d="m 13.638776,15.043901 c 0.0093,0.06787 0.126215,0.157823 0.158353,0.203353 0.117,0.135 0.148718,0.04627 0.184718,-0.02573 0.027,-0.063 0.05689,-0.142176 0.09289,-0.196176 0.045,-0.063 0.07811,-0.118824 0.132106,-0.181824 0.081,-0.099 0.05198,-0.237212 0.150977,-0.318212 0.072,-0.045 0.143438,-0.108291 0.173458,-0.15407 0.03021,-0.04607 0.05432,-0.08314 0.06332,-0.119141 0.0039,-0.145211 0.0031,-0.186933 -0.01875,-0.326577 -0.009,-0.117 0.0052,-0.214516 -0.0038,-0.349516 -0.009,-0.081 0,-0.108 0.009,-0.198 0.018,-0.063 -0.018,-0.117 -0.027,-0.171 0,-0.135 0.09,-0.288 -0.135,-0.243 -0.256863,0.0994 -0.586493,0.101143 -0.782623,0.158161 -0.196129,0.05702 -0.288,0.072 -0.441,0.081 -0.448035,0.08902 -0.816742,0.07543 -1.149261,0.142378 -0.063,0.018 -0.162653,0.07497 -0.216,0.126 -0.153653,0.146973 -0.199482,0.140321 -0.326721,0.309973 -0.03476,0.04635 -0.156495,0.392108 -0.165495,0.464108 -0.018,0.09 -0.009,0.162 -0.009,0.243 0,0.171 0.063,0.324 0.171,0.459 0.108,0.135 0.189,0.279 0.252,0.432 0,0 0.063,0.108 0.063,0.108 0.018,0.018 0.036,0.027 0.045,0.036 0.09,0.162 0.375261,0.307622 0.474261,0.451622 0.027,0.036 0.054,0.081 0.081,0.126 0.099,0.135 0.189,0.27 0.288,0.414 0.099,0.153 0.227968,0.309758 0.344968,0.453758 0.027,0.063 0.045,0.126 0.072,0.189 0.036,0.081 0.006,0.185242 0.03303,0.275242 0.018,0.063 0.07661,0.20657 0.063,0.261 -0.03139,0.12557 -0.07996,0.213487 -0.259964,0.258487 -0.027,0 -0.054,-0.009 -0.09,-0.009 -0.027,0 -0.072,0.009 -0.108,0.009 -0.072,-0.018 -0.415817,-0.09378 -0.478817,-0.147779 -0.036,-0.072 -0.09278,-0.104676 -0.09278,-0.194676 0,-0.126 0.0079,-0.07973 -0.01007,-0.18773 -0.036,-0.18 -0.027,-0.369 -0.027,-0.558 0,-0.108 0.027,-0.198 0.018,-0.297 -0.063,-0.117 -0.207,-0.135 -0.297,-0.027 -0.054,0.054 -0.072,0.135 -0.108,0.207 -0.036,0.063 -0.09,0.117 -0.135,0.18 -0.054,0.081 -0.081,0.135 -0.144,0.198 -0.063,0.063 -0.117,0.099 -0.162,0.162 -0.054,-0.018 -0.108,0 -0.162,0.045 0,0.018 -0.009,0.045 -0.009,0.072 -0.009,0.189 0.0011,0.17873 -0.01693,0.35873 -0.009,0.108 0.027,0.198 0.036,0.297 0.009,0.09 0,0.189 0.009,0.288 0.018,0.099 0.009,0.189 0.018,0.279 0.009,0.108 0.063,0.126 0.117,0.207 0.063,-0.018 0.135,-0.018 0.198,-0.054 0.054,-0.027 0.081,-0.081 0.144,-0.117 0.135,-0.081 0.234,-0.171 0.405,-0.18 0.153,-0.009 0.660565,0.05697 0.831565,0.04797 0.054,0 0.081,0.018 0.126,0.009 0.027,-0.009 0.063,-0.045 0.099,-0.054 0.018,0 0.027,0.009 0.045,0.009 0.027,0.009 0.054,0.045 0.081,0.054 0.027,0 0.108,-0.018 0.108,-0.018 l 0.360387,0.01062 c 0.045,0.009 0.117,-0.045 0.162,-0.099 0.135,-0.027 0.27,-0.063 0.387,-0.144 0.081,-0.054 0.135,-0.117 0.189,-0.18 0.009,-0.027 0.009,-0.054 0.009,-0.072 0.072,-0.099 0.081,-0.315 0.081,-0.432 0,-0.135 -0.036,-0.288 -0.072,-0.423 -0.036,-0.144 -0.081,-0.306 -0.162,-0.423 -0.009,-0.009 -0.018,-0.027 -0.027,-0.036 -0.09,-0.099 -0.207,-0.225 -0.306,-0.297 -0.018,-0.099 -0.099,-0.189 -0.171,-0.279 -0.036,-0.063 -0.072,-0.126 -0.108,-0.189 -0.117,-0.18 -0.442081,-0.295654 -0.532081,-0.484654 -0.099,-0.198 -0.280484,-0.425968 -0.361484,-0.623968 -0.018,-0.045 -0.036,-0.072 -0.063,-0.108 -0.018,-0.036 -0.027,-0.072 -0.045,-0.117 -0.027,-0.099 -0.045,-0.18 -0.054,-0.288 0.02072,-0.160312 0.07378,-0.188964 0.126711,-0.269189 0.223315,-0.130054 0.289467,-0.124298 0.442467,-0.124298 0.162711,0.03924 0.360597,0.107761 0.369597,0.251761 0,0.171 0.063,0.342 0.054,0.513 0,0 -0.03204,0.178412 0.01296,0.331412" />
- </g>
- </g>
- <flowRoot
- xml:space="preserve"
- id="flowRoot3831"
- style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:none;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Andale Mono;-inkscape-font-specification:Andale Mono"
- transform="translate(14.77921,1.4771515)"><flowRegion
- id="flowRegion3833"><rect
- id="rect3835"
- width="18.915108"
- height="48.61359"
- x="-22.185476"
- y="-2.7366221"
- style="font-size:40px;fill:none;stroke:none" /></flowRegion><flowPara
- id="flowPara3837"
- style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:none;stroke:none;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB">D</flowPara></flowRoot> <g
- id="g4481"
- transform="matrix(0.71778669,0,0,0.71778669,66.890977,-18.163231)">
- <flowRoot
- xml:space="preserve"
- id="flowRoot3839"
- style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:url(#linearGradient4492);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Andale Mono;-inkscape-font-specification:Andale Mono"
- transform="translate(11.257428,1.6115395)"><flowRegion
- id="flowRegion3841"
- style="fill:url(#linearGradient3934)"><rect
- id="rect3843"
- width="18.915108"
- height="48.61359"
- x="-22.185476"
- y="-2.7366221"
- style="font-size:40px;color:#000000;fill:url(#linearGradient3932);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /></flowRegion><flowPara
- id="flowPara3845"
- style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:url(#linearGradient4490);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB">D</flowPara></flowRoot> <path
- id="flowRoot4375"
- d="m -0.61647777,12.443182 c -0.55999903,0 -1.65875203,0.17875 -2.21875003,0.21875 -0.959999,0.08 -2.000001,-0.04 -3,0 -0.559999,0.04 -1.065001,0.2725 -1.625,0.3125 -0.48,0.04 -1.06,0 -1.5,0 -0.719999,0 -1.8512502,-0.03875 -2.5312502,0.28125 -1.399999,0.559999 0.429999,1.185 0.75,1.625 0.9999992,1.279999 0.68875,3.662501 0.9687502,5.0625 l 0.09375,0.4375 c -0.16,0.44 -0.11125,1.11375 -0.03125,1.59375 0,0.2 -0.00875,0.55875 0.03125,0.71875 0.04,0.2 0.17875,0.39375 0.21875,0.59375 0,0.28 -0.21,0.595 -0.25,0.875 -0.04,0.32 0.03125,0.73375 0.03125,1.09375 0,0.599999 -0.03125,1.150001 -0.03125,1.75 0,0.999999 0.15125,2.170001 0.03125,3.25 -0.04,0.639999 -0.3437502,1.195001 -0.3437502,1.875 0,0.519999 0.08,1.042501 0,1.5625 -0.12,0.639999 -1.280001,1.8825 -2,1.5625 -0.371131,0.159057 -0.375716,0.456925 -0.21875,0.6875 0.375243,-0.0028 0.777009,-0.120845 1.15625,-0.0625 0.519999,0.04 0.721251,0.19125 1.2812502,0.03125 0.639999,-0.2 0.766251,-0.11125 1.40625,-0.03125 0.519999,0.04 0.980001,-0.1025 1.5,-0.0625 0.519999,0.04 1.002501,-0.0175 1.5625,0.0625 0.44,0.04 0.81875,0.03125 1.21875,0.03125 0.559999,0 1.056251,-0.01375 1.65625,-0.09375 0.559999,-0.08 0.8462506,-0.16125 1.40625,-0.28125 0.47999953,-0.12 0.95750055,-0.01875 1.43750005,-0.21875 0.83999915,-0.4 1.64875025,-1.472501 1.96874995,-2.3125 0.3599996,-0.959999 0.5150004,-2.008751 0.875,-2.96875 0.3999996,-1.039999 0.4925003,-2.022501 0.8125,-3.0625 0.1999998,-0.639999 0.1424999,-0.797501 0.0625,-1.4375 -0.04,-0.44 0.19625,-0.9575 0.15625,-1.4375 -0.04,-0.44 0.0575,-1.1 -0.0625,-1.5 -0.1199999,-0.28 -0.335,-0.225 -0.375,-0.625 -0.04,-0.28 0.08,-0.5325 0,-0.8125 -0.08,-0.28 -0.2637501,-0.35375 -0.34375,-0.59375 -0.1199999,-0.24 -0.07625,-0.47875 -0.15625,-0.71875 -0.1599998,-0.519999 -0.1837502,-0.9175 -0.34375,-1.4375 -0.1199999,-0.44 -0.3087502,-0.8725 -0.46875,-1.3125 -0.1199999,-0.24 -0.03625,-0.55 -0.15625,-0.75 -0.1599998,-0.28 -0.3712502,-0.26875 -0.53125,-0.46875 -0.2799997,-0.4 -0.3450003,-0.89 -0.625,-1.25 0.3199997,-0.679999 -0.77875035,-1.75625 -1.21874995,-2.15625 -0.1654963,-0.01501 -0.31276932,-0.03125 -0.59375002,-0.03125 z m -4.18750003,2.84375 c 0.26,-0.035 0.56375,0.10125 0.84375,0.28125 0,0.02 -0.00125,0.04062 0,0.0625 0.233516,0.002 0.47375,0.0925 0.71875,0.25 0,0.08 0.01375,0.175 0.09375,0.375 0.24,0.44 0.39375,0.81 0.59375,1.25 0,0.08 0.21,0.13875 0.25,0.21875 0.04,0.12 -0.04,0.295 0,0.375 0.08,0.24 0.1525,0.4475 0.3125,0.6875 0.08,0.12 0.295,0.34875 0.375,0.46875 0.04,0.12 0.13875,0.255 0.21875,0.375 0.04,0.08 -0.13375,0.2725 -0.09375,0.3125 0.16,0.44 0.59875001,0.7075 0.71875003,1.1875 0.16,0.44 0.2325,0.8325 0.3125,1.3125 0.16,0.919999 0.07625,1.977501 0.15625,2.9375 0.04,0.599999 0.12500002,1.11375 0.12500002,1.59375 -0.20000002,0.879999 -0.46125002,1.873751 -0.78125004,2.59375 -0.20000001,0.4 -0.30875001,0.81875 -0.46875001,1.21875 -0.08,0.24 -0.4775,0.81375 -0.4375,1.09375 -0.28,0.559999 -0.641251,1.3625 -1.28125,1.5625 -0.471054,0.157018 -0.772311,0.02348 -0.96875,-0.25 -0.661606,0.09633 -0.918265,-0.507192 -1.0625,-1.15625 -0.2,-1.079999 -0.21875,-2.116251 -0.21875,-3.15625 l 0,-1.15625 c 0,-0.519999 -0.0225,-0.98875 -0.0625,-1.46875 -0.08,-0.999999 0.00875,-2.062501 -0.03125,-3.0625 -0.04,-0.799999 -0.4225,-2.003751 -0.0625,-2.84375 l -0.09375,-0.5 c -0.08,-0.36 0,-0.85 0,-1.25 0.04,-0.4 0,-0.8725 0,-1.3125 0,-0.479999 0.0275,-0.9125 0.1875,-1.3125 0.16,-0.44 0.39625,-0.6525 0.65625,-0.6875 z"
- style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:url(#linearGradient4494);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5137-5);enable-background:accumulate;font-family:Andale Mono;-inkscape-font-specification:Andale Mono" />
- <path
- sodipodi:nodetypes="csccccsssscccccc"
- transform="translate(26.727273,11.818182)"
- id="path4463"
- d="m -25.500001,1.6249987 c 0,0 -4.125,0.1250001 -4.4375,0.0625 -0.3125,-0.0625 -7.3125,0.5624999 -7.3125,0.5624999 l 0.437499,1.0000001 0.750001,1.3125 0.187499,3.1875002 c 0,0 0.4375,5.0000001 0.5625,4.7500001 0.08763,-0.175267 1.03431,1.721102 1.102055,-3.2503127 0.02889,-2.119798 -0.755443,-2.2837491 -0.727054,-2.3746875 0.07619,-0.2440558 0.09495,-0.087738 -0.0625,-1.7500001 -0.02636,-0.2782629 0.4375,-1.4375 0.4375,-1.4375 l 1.3125,-0.75 3.1875,-0.0625 2.5625,-0.0625 1.5625,-0.5625001 0.4375,-0.625 z"
- style="fill:#ffffff;stroke:none;filter:url(#filter4469)" />
- <path
- style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:url(#Polkadots-medwhite);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter6498);enable-background:accumulate;font-family:Andale Mono;-inkscape-font-specification:Andale Mono"
- d="m 0.64844595,12.552795 c -0.559999,0 -1.65875195,0.17875 -2.21874995,0.21875 -0.959999,0.08 -2.000001,-0.04 -3,0 -0.559999,0.04 -1.065001,0.2725 -1.625,0.3125 -0.48,0.04 -1.06,0 -1.5000001,0 -0.719999,0 -1.85125,-0.03875 -2.5312489,0.28125 -1.399999,0.559999 0.4299989,1.185 0.7499989,1.625 0.999999,1.279999 0.68875,3.662501 0.96875,5.0625 l 0.09375,0.4375 c -0.16,0.44 -0.11125,1.11375 -0.03125,1.59375 0,0.2 -0.0087,0.55875 0.03125,0.71875 0.04,0.2 0.17875,0.39375 0.21875,0.59375 0,0.28 -0.21,0.595 -0.25,0.875 -0.04,0.32 0.03125,0.73375 0.03125,1.09375 0,0.599999 -0.03125,1.150001 -0.03125,1.75 0,0.999999 0.15125,2.170001 0.03125,3.25 -0.04,0.639999 -0.34375,1.195001 -0.34375,1.875 0,0.519999 0.08,1.042501 0,1.5625 -0.12,0.639999 -1.2799999,1.8825 -1.9999989,1.5625 -0.371131,0.159057 -0.375716,0.456925 -0.21875,0.6875 0.375243,-0.0028 0.777009,-0.120845 1.1562499,-0.0625 0.519998,0.04 0.72125,0.19125 1.281249,0.03125 0.639999,-0.2 0.766251,-0.11125 1.4062501,-0.03125 0.519999,0.04 0.980001,-0.1025 1.5,-0.0625 0.519999,0.04 1.002501,-0.0175 1.5625,0.0625 0.44,0.04 0.81875,0.03125 1.21875,0.03125 0.559999,0 1.056251,-0.01375 1.65625,-0.09375 0.55999895,-0.08 0.84625095,-0.16125 1.40624995,-0.28125 0.479999,-0.12 0.95750005,-0.01875 1.43750005,-0.21875 0.839999,-0.4 1.64875,-1.472501 1.96875,-2.3125 0.36,-0.959999 0.515,-2.008751 0.875,-2.96875 0.4,-1.039999 0.4925,-2.022501 0.8125,-3.0625 0.2,-0.639999 0.1425,-0.797501 0.0625,-1.4375 -0.04,-0.44 0.19625,-0.9575 0.15625,-1.4375 -0.04,-0.44 0.0575,-1.1 -0.0625,-1.5 -0.12,-0.28 -0.335,-0.225 -0.375,-0.625 -0.04,-0.28 0.08,-0.5325 0,-0.8125 -0.08,-0.28 -0.26375,-0.35375 -0.34375,-0.59375 -0.12,-0.24 -0.07625,-0.47875 -0.15625,-0.71875 -0.16,-0.519999 -0.18375,-0.9175 -0.34375,-1.4375 -0.12,-0.44 -0.30875,-0.8725 -0.46875,-1.3125 -0.12,-0.24 -0.03625,-0.55 -0.15625,-0.75 -0.16,-0.28 -0.37125,-0.26875 -0.53125,-0.46875 -0.28,-0.4 -0.345,-0.89 -0.625,-1.25 0.32,-0.679999 -0.77875,-1.75625 -1.21875,-2.15625 -0.165496,-0.01501 -0.31276905,-0.03125 -0.59375005,-0.03125 z m -4.18749995,2.84375 c 0.26,-0.035 0.56375,0.10125 0.84375,0.28125 0,0.02 -0.0012,0.04062 0,0.0625 0.233516,0.002 0.47375,0.0925 0.71875,0.25 0,0.08 0.01375,0.175 0.09375,0.375 0.24,0.44 0.39375,0.81 0.59375,1.25 0,0.08 0.21,0.13875 0.25,0.21875 0.04,0.12 -0.04,0.295 0,0.375 0.08,0.24 0.15249995,0.4475 0.31249995,0.6875 0.08,0.12 0.295,0.34875 0.375,0.46875 0.04,0.12 0.13875,0.255 0.21875,0.375 0.04,0.08 -0.13375,0.2725 -0.09375,0.3125 0.16,0.44 0.59875,0.7075 0.71875,1.1875 0.16,0.44 0.2325,0.8325 0.3125,1.3125 0.16,0.919999 0.07625,1.977501 0.15625,2.9375 0.04,0.599999 0.12500005,1.11375 0.12500005,1.59375 -0.20000005,0.879999 -0.46125005,1.873751 -0.78125005,2.59375 -0.2,0.4 -0.30875,0.81875 -0.46875,1.21875 -0.08,0.24 -0.4775,0.81375 -0.4375,1.09375 -0.28,0.559999 -0.64125095,1.3625 -1.28124995,1.5625 -0.471054,0.157018 -0.772311,0.02348 -0.96875,-0.25 -0.661606,0.09633 -0.918265,-0.507192 -1.0625,-1.15625 -0.2,-1.079999 -0.21875,-2.116251 -0.21875,-3.15625 l 0,-1.15625 c 0,-0.519999 -0.0225,-0.98875 -0.0625,-1.46875 -0.08,-0.999999 0.0087,-2.062501 -0.03125,-3.0625 -0.04,-0.799999 -0.4225,-2.003751 -0.0625,-2.84375 l -0.09375,-0.5 c -0.08,-0.36 0,-0.85 0,-1.25 0.04,-0.4 0,-0.8725 0,-1.3125 0,-0.479999 0.0275,-0.9125 0.1875,-1.3125 0.16,-0.44 0.39625,-0.6525 0.65625,-0.6875 z"
- id="path4496" />
- <path
- id="path4198"
- style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:none;stroke:#000000;stroke-width:1.54525244000000006;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB"
- d="m 6.3660513,24.760063 c -0.042198,-0.442621 0.042198,-1.086435 -0.084397,-1.488818 -0.1265953,-0.281668 -0.3375876,-0.24143 -0.379786,-0.643813 -0.042198,-0.281669 0.084397,-0.523098 0,-0.804766 C 5.8174714,21.540998 5.6064792,21.460521 5.5220823,21.219091 5.3954869,20.977661 5.4376853,20.736231 5.3532885,20.494801 5.1844946,19.971704 5.1844946,19.569319 5.0157009,19.046222 4.8891054,18.6036 4.6781132,18.160979 4.5093193,17.718357 4.382724,17.476928 4.4671209,17.19526 4.3405256,16.994068 4.1717317,16.7124 3.9607395,16.7124 3.7919457,16.511208 3.4965565,16.108825 3.4121596,15.625965 3.1167704,15.26382 3.4543581,14.579769 2.3149998,13.493334 1.8508168,13.090951 1.302238,12.64833 1.133442,12.728806 0.41606936,12.728806 c -0.5907773,0 -1.73013756,0.160953 -2.32091446,0.201192 -1.0127614,0.08047 -2.1099233,-0.04024 -3.1648836,0 -0.5907773,0.04024 -1.1393593,0.281668 -1.7301366,0.321906 -0.5063814,0.04024 -1.0971598,0 -1.5613428,0 -0.759571,0 -1.9833289,-0.04024 -2.7007009,0.281668 -1.476945,0.563335 0.464183,1.20715 0.801771,1.649771 1.0549598,1.287625 0.7173733,3.661688 1.0127624,5.070028 l 0.1265953,0.442622 c -0.1687937,0.442621 -0.1265953,1.126673 -0.042198,1.609533 0,0.201191 0,0.563336 0.042198,0.724289 0.042198,0.201192 0.1687939,0.402383 0.2109924,0.603575 0,0.281668 -0.2109924,0.603574 -0.2531907,0.885242 -0.042198,0.321907 0.042198,0.724291 0.042198,1.086435 0,0.603575 -0.042198,1.166913 -0.042198,1.770486 0,1.005958 0.1687937,2.17287 0.042198,3.259304 -0.042198,0.643812 -0.379786,1.20715 -0.379786,1.891201 0,0.523097 0.084397,1.046197 0,1.569294 -0.1265954,0.643813 -1.3503524,1.891201 -2.1099224,1.569295 -0.590777,0.241429 -0.337588,0.804766 0.126595,0.96572 0.506381,0.160953 1.097161,-0.08048 1.6457398,0 0.5485788,0.04024 0.7595731,0.20119 1.3503504,0.04024 0.6751743,-0.201191 0.8017717,-0.120715 1.476946,-0.04024 0.5485788,0.04024 1.0549623,-0.120716 1.6035411,-0.08048 0.5485789,0.04024 1.0549624,0 1.6457397,0.08048 0.4641831,0.04024 0.8439691,0.04024 1.2659532,0.04024 0.5907773,0 1.1393589,-0.04024 1.77233461,-0.120715 0.59077729,-0.08047 0.88616858,-0.160953 1.47694587,-0.281668 0.50638152,-0.120714 1.01276392,0 1.51914432,-0.201192 0.8861665,-0.402382 1.7301366,-1.488818 2.0677243,-2.333822 0.3797861,-0.965719 0.5485809,-2.011917 0.928366,-2.977635 0.4219844,-1.046195 0.5063814,-2.052155 0.843969,-3.098351 0.2109922,-0.643812 0.1687938,-0.804767 0.084397,-1.448578 -0.042198,-0.442623 0.2109923,-0.96572 0.1687938,-1.44858 m -5.93204923,2.172538 c -0.21099228,0.885242 -0.45329884,1.684403 -0.79088647,2.408692 -0.21099227,0.402383 -0.44642916,1.087754 -0.61522297,1.490137 -0.0843969,0.24143 -0.39753983,0.823236 -0.35534153,1.104905 -0.295389,0.563335 -0.2724621,0.823895 -0.9476364,1.025086 -0.886166,0.281669 -1.2033245,-0.100925 -1.3721183,-0.825215 -0.2109923,-1.086433 -0.19877,-1.50135 -0.19877,-2.547545 0,-0.362145 0,-0.804767 0,-1.166912 0,-0.523096 0,-1.005957 -0.042198,-1.488817 -0.084397,-1.005957 0,-2.052155 -0.042198,-3.058112 -0.042198,-0.804765 -0.4641831,-2.011918 -0.084397,-2.856921 l -0.084397,-0.523098 c -0.084397,-0.362144 0,-0.845004 0,-1.247388 0.042198,-0.402383 0,-0.885243 0,-1.327864 0,-0.48286 0.042198,-0.925481 0.2109923,-1.327865 0.3375876,-0.885242 0.9705655,-0.764528 1.5613423,-0.402383 0,0.08047 0,0.160954 0.084397,0.362146 0.2531907,0.442621 0.4219846,0.804765 0.6329768,1.247387 0,0.08047 0.2109919,0.160954 0.2531903,0.24143 0.042198,0.120715 -0.042198,0.281668 0,0.362145 0.084397,0.241429 0.1687939,0.442621 0.3375876,0.684051 0.0843972,0.120715 0.018324,0.39293 0.10272082,0.513645 0.0421985,0.120714 0.44585912,0.210645 0.53025603,0.33136 0.0421985,0.08048 -0.16879381,0.281668 -0.12659536,0.321906 0.16879382,0.442622 0.41748156,0.72429 0.54407692,1.20715 0.16879381,0.442621 0.0069105,0.87579 0.09130736,1.35865 0.16879382,0.92548 0.35767149,2.080105 0.34758135,2.92838 -0.0113359,0.953004 -0.10197187,0.974294 -0.10197187,1.457154"
- sodipodi:nodetypes="cssssssssscssssssccccsssssscsscscssssssscssssccsscscssssccssscsssssssscssc" />
- </g>
- <g
- id="g4419"
- transform="matrix(1.2144734,0,0,1.2144734,-75.758981,0.09789698)">
- <text
- transform="scale(0.98905082,1.0110704)"
- id="text3192"
- y="29.80883"
- x="98.950493"
- style="font-size:23.85853958px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:none;stroke:#000000;stroke-width:0.82340205;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB Bold"
- xml:space="preserve"><tspan
- style="fill:none;stroke-width:0.82340205"
- y="29.80883"
- x="98.950493"
- id="tspan3194"
- sodipodi:role="line">X</tspan></text>
- <g
- id="text3200"
- style="font-size:23.85853958px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:url(#linearGradient4433);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB Bold"
- transform="matrix(0.98905084,0,0,1.0110704,0.44194175,0.19887379)">
- <path
- id="path4078"
- style="fill:url(#linearGradient4431);marker:none"
- d="m 102.92528,28.251039 c -0.31016,-0.548746 -0.45332,-1.192928 -0.71576,-1.789391 -0.26244,-0.620321 -0.38174,-1.073635 -0.6919,-1.646239 -0.0716,-0.143151 -0.11929,-0.262444 -0.16701,-0.405595 0.0239,-0.64418 -0.31016,-1.407655 -0.52489,-2.004118 -0.14315,-0.334019 -0.31016,-0.739615 -0.31016,-1.121351 0,-0.310161 0.1193,-0.620322 0.45332,-0.81119 0.64418,-0.381737 1.47923,0.357878 2.14726,0.310161 0.19087,-0.429454 -0.0238,-1.145211 0.0239,-1.598523 0.0477,-0.501028 -0.0239,-0.930483 -0.0239,-1.431512 0,-0.357878 0.1193,-1.31222 0.1193,-2.099551 0,-0.548746 -0.0477,-1.025918 -0.26245,-1.14521 -0.5726,0.238585 -0.73961,0.882766 -1.14521,1.312219 -0.54874,0.524888 -1.2645,0.50103 -1.956397,0.66804 -0.09543,0.739614 0.167007,1.550805 0.214727,2.266561 0.0239,0.357878 -0.310161,1.574663 -0.763473,1.336078 -0.02386,-0.04772 -0.02386,-0.07158 -0.04772,-0.119293 -0.143151,-0.286302 -0.262444,-0.572605 -0.381737,-0.858907 -0.31016,-0.691897 -0.477171,-1.503089 -0.858907,-2.12341 L 97.9627,16.846657 c -0.143151,-0.357878 -0.381737,-1.049776 -0.763473,-1.073635 -0.238585,-0.02386 -0.548747,0.09543 -0.835049,0.04772 -0.286302,-0.04772 -0.524888,-0.04772 -0.81119,-0.04772 -0.620322,0 -1.264504,0.04772 -1.884825,0.04772 -0.214727,0 -0.64418,-0.14315 -0.524888,0.286303 0.02386,0.09543 0.524888,0.214727 0.644181,0.286302 1.216784,0.739614 1.526947,1.741675 2.12341,2.910742 0.190868,0.405595 0.286302,0.858908 0.429454,1.288361 0,0.02386 0.238585,0.524888 0.238585,0.524888 0,0.190868 0.04772,0.405596 0.07158,0.548747 0.09543,0.405594 0.190868,0.620322 0.334019,0.9782 0.143151,0.31016 0.07158,0.691898 0,1.025917 -0.119292,0.501029 -1.049776,1.145209 -1.455371,0.596463 -0.381736,0.04772 -0.691898,-0.668038 -1.049776,-0.357878 -0.286302,0.238585 -0.07158,1.169069 -0.02386,1.47923 0.04772,0.524887 0.02386,0.9782 0,1.479229 -0.02386,0.262444 -0.09543,0.50103 -0.09543,0.715756 0,0.238586 0.09543,0.429454 -0.04772,0.691898 l 0,0.190868 c 0.09543,0.596463 0.07158,1.121352 0.09543,1.765532 0.501029,0.262444 0.668039,-0.691898 0.906624,-0.954341 0.453312,-0.501029 0.930484,-0.524889 1.407654,-0.930483 0.143151,0.167009 0.357878,0.143151 0.501029,0 0.02386,0.02386 0.04772,0.07157 0.07158,0.07157 0.453312,-0.04772 0.405595,-0.453312 0.357878,-0.787331 -0.02386,-0.16701 0.02386,-0.381737 0,-0.50103 -0.02386,-0.190868 -0.119293,-0.262444 -0.16701,-0.477171 -0.04772,-0.167009 -0.09543,-0.453312 -0.09543,-0.763473 0,-0.405595 0.07158,-0.858907 0.214727,-1.049776 0.214727,-0.238585 0.405595,-0.119292 0.596464,0.09544 0.04772,0.09543 0.262444,0.07157 0.310161,0.190868 0.07157,0.167009 0.143151,0.33402 0.214726,0.501029 0.02386,0.04772 0.04772,0.09543 0.07158,0.143151 0,0 0.02386,0.02386 0.02386,0.02386 0.07157,0.214727 0.143151,0.429454 0.238585,0.620322 0.143151,0.381736 0.190868,0.715757 0.286303,1.097493 0.09543,0.310161 0.310161,0.620322 0.405595,0.930483 0.09543,0.310161 0.238585,0.835049 0.501027,0.9782 0.26244,0.143151 0.47717,-0.02386 0.78733,-0.04772 0.4056,-0.02386 0.71576,0.119293 1.09749,0.09543 0.4056,0 0.6919,0.143151 1.04978,0.16701 0.14315,0 0.93048,-0.02386 1.02592,-0.09543 0.42945,-0.33402 -1.0975,-0.906625 -1.28836,-1.288361" />
- </g>
- <path
- sodipodi:nodetypes="ccssscssccssscssccsscssscccccssscsccccssssccsssscccsccscsssssssccscccssscsssssccc"
- id="text3200-0"
- d="m 101.99756,14.727806 c -0.0957,0.04075 -0.16614,0.08935 -0.24199,0.150504 0.0177,0.167593 0.0186,0.345639 0.0186,0.545574 0,0.796047 -0.35254,1.773174 -0.35254,2.135013 0,0.506575 0.28455,0.910769 0.23735,1.417345 -0.0472,0.458331 -0.0798,0.714953 -0.2686,1.149162 -0.66073,0.04825 -0.68162,-0.496185 -1.849989,0.171027 -0.332235,0.189727 -0.446753,0.514175 -0.446753,0.827769 0,0.385962 -0.345967,0.897752 -0.204381,1.235469 0.212371,0.603065 0.826063,1.251693 0.802466,1.903004 0.04719,0.144736 -0.131163,0.445418 -0.06037,0.590154 0.306756,0.578943 0.326273,0.909217 0.585827,1.536406 0.25958,0.603065 0.67113,1.330456 0.9779,1.885277 0.0592,0.121013 0.93424,0.591534 1.15287,0.737107 -0.57434,-0.859228 -0.84112,-1.61607 -1.095,-2.205915 -0.25957,-0.627189 -0.38198,-1.095407 -0.68874,-1.67435 -0.0708,-0.144736 -0.12034,-0.250336 -0.16754,-0.395071 0.0236,-0.651312 -0.30884,-1.428731 -0.521208,-2.031796 -0.141581,-0.337717 -0.297836,-0.742813 -0.297836,-1.128775 0,-0.313595 0.116398,-0.634788 0.446754,-0.827769 0.63712,-0.385963 1.46136,0.368065 2.12208,0.31982 0.18878,-0.434208 -0.0286,-1.159581 0.0186,-1.617911 0.0472,-0.506577 -0.0186,-0.94202 -0.0186,-1.448596 0,-0.361839 0.11169,-1.329813 0.11169,-2.12586 0,-0.554821 -0.0483,-1.026975 -0.2606,-1.147588 l 10e-6,0 z m -5.995987,1.385463 c 0.117862,0.218281 0.210787,0.371003 0.279219,0.545892 l 0.07446,0.400503 c 0.377554,0.627189 0.562148,1.320117 0.868914,2.019674 0.117985,0.289471 0.786593,1.215167 0.928173,1.504639 0.02359,0.04825 0.01364,0.08344 0.03723,0.131691 0.09886,0.05319 0.194362,0.0084 0.279222,-0.05644 -0.0711,-0.163924 -0.443823,-1.120706 -0.510639,-1.28463 -0.306766,-0.699557 -0.46011,-1.517485 -0.837666,-2.144674 l -0.07446,-0.150503 c -0.14158,-0.361842 -0.479397,-1.41078 -1.044453,-0.966152 z m -3.720933,0.0067 c -0.02005,0.04734 -0.02666,0.108829 0,0.206943 0.0236,0.09649 0.514916,0.228639 0.632902,0.301007 0.130064,0.08082 0.243076,0.157673 0.353681,0.244568 -0.224233,-0.253127 -0.495698,-0.483588 -0.837665,-0.696078 -0.0249,-0.01527 -0.09839,-0.03756 -0.148918,-0.05644 z m 4.076637,8.465818 c -0.05051,0.01922 -0.09582,0.07138 -0.148916,0.131689 -0.141583,0.192981 -0.329762,0.580939 -0.329762,0.991023 0,0.313594 -0.02443,0.555596 0.02276,0.724455 0.04719,0.217104 0.125322,0.296155 0.148919,0.489136 0.0236,0.120614 -0.0236,0.33909 0,0.507949 -0.06314,0.20993 -0.15262,0.404104 -0.182968,0.457079 -0.141583,0.144736 -0.502749,0.07201 -0.644334,-0.09685 -0.471945,0.410085 -0.845088,0.601235 -1.293437,1.10781 -0.141083,0.158647 -0.228497,0.08605 -0.404702,0.332393 0.0035,0.197489 -0.0049,1.1583 0.003,1.375451 0.495544,0.26535 0.657537,-0.69411 0.89351,-0.959459 0.448349,-0.506575 0.924165,-0.530561 1.39611,-0.940645 0.141584,0.168858 0.361016,0.144736 0.5026,0 0.0236,0.02412 0.03225,0.07525 0.05585,0.07525 0.448348,-0.04825 0.400876,-0.452426 0.353681,-0.790143 -0.0236,-0.168859 0.0236,-0.387335 0,-0.507949 -0.0236,-0.19298 -0.101724,-0.272032 -0.148918,-0.489136 -0.04719,-0.168858 -0.09307,-0.457736 -0.09307,-0.77133 0,-0.410084 0.06318,-0.860543 0.204762,-1.053523 0.159282,-0.18092 1.077505,0.173105 1.220192,0.28731 l -0.107543,-0.441003 c -0.04718,-0.12061 -0.516266,-0.333828 -0.56346,-0.430314 -0.141584,-0.162828 -0.732716,-0.05686 -0.884256,8.08e-4 l -1.8e-5,-1e-6 z m 6.297103,4.371916 c 0.0267,0.07155 0.0371,0.129029 -0.0372,0.188129 -0.0944,0.07237 -0.86361,0.09406 -1.00519,0.09406 -0.35396,-0.02412 -0.64127,-0.169316 -1.04243,-0.169316 -0.37755,0.02412 -0.697111,-0.118187 -1.098274,-0.09406 -0.230072,0.01809 -0.393442,0.125316 -0.577056,0.112877 0.07672,0.17324 0.302324,0.640373 0.422836,0.707572 0.259574,0.144736 0.456446,-0.03231 0.763204,-0.05644 0.40115,-0.02412 0.72072,0.118187 1.09827,0.09406 0.40116,0 0.68847,0.145193 1.04243,0.169316 0.14159,0 0.91081,-0.0217 1.0052,-0.09406 0.21933,-0.17439 -0.2076,-0.708893 -0.57176,-0.952139 l -3e-5,10e-7 z"
- style="font-size:39.84158707px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#e74e00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4027);enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB Bold" />
- <text
- transform="scale(0.98905082,1.0110704)"
- id="text4019"
- y="29.793831"
- x="99.06604"
- style="font-size:23.85853958px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:none;stroke:#000000;stroke-width:0.41170105;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB Bold"
- xml:space="preserve"><tspan
- y="29.793831"
- x="99.06604"
- id="tspan4021"
- sodipodi:role="line"
- style="fill:none;stroke:#000000;stroke-width:0.41170105">X</tspan></text>
- <path
- transform="translate(26.727273,11.818182)"
- id="path4039"
- d="m 66.512234,4.577514 2.983107,0.022097 -1.679378,0.265165 -0.729204,-0.044194 0.552427,0.3977476 1.789864,3.4692428 0.486136,2.1434176 0.287262,0.618718 L 69.495341,10.433242 69.318565,9.0411257 68.89872,8.1351451 67.617089,5.5718829 66.512234,4.577514 z"
- style="fill:#ffffff;stroke:none;filter:url(#filter4049)" />
- <path
- transform="translate(26.727273,11.818182)"
- id="path4053"
- d="m 74.754448,4.2902518 -0.795495,0.5745243 -1.347922,0.3756505 0.176776,1.4363107 0.06629,0.6850097 0.132582,-0.9501747 0,-0.8838836 1.193243,-0.5303301 0.574524,-0.7071068 z"
- style="fill:#ffffff;stroke:none;filter:url(#filter4063)" />
- <path
- transform="translate(26.727273,11.818182)"
- id="path4067"
- d="m 67.263535,16.642524 -0.0221,-0.707107 0.176777,-1.59099 -0.220971,-1.590991 0.441942,0.397748 0.243068,0.0221 0.176777,0.132583 0.751301,0.04419 -0.707107,0.198874 -0.419845,0.08839 -0.04419,0.662913 -0.176777,0.928077 0.04419,0.618719 -0.243068,0.795495 z"
- style="fill:#ffeeaa;stroke:none;filter:url(#filter4073)" />
- </g>
- <g
- transform="translate(48.053379,-17.063336)"
- id="g4473">
- <path
- d="m -9.1306211,1.5525495 c 0.05586,0.223423 0.139639,0.195496 0.223423,0.390991 0.02793,-0.02793 0.08378,0.111711 0.111711,0.08378 0.363063,0.418919 0.586486,-0.418918 0.698197,-0.642341 0.08378,-0.195495 0.223423,-0.363063 0.335135,-0.53062999 0.139639,-0.195495 0.195495,-0.446846 0.363063,-0.642341 0.251351,-0.307207 0.614413,-0.642342 0.92162,-0.893693 0.223423,-0.139639 0.307207,-0.279279 0.335134,-0.44684601 0,-0.111711 0.02793,-0.195495 0.05586,-0.307207 0,0 0,0 0,-0.02793 -0.251351,-0.139639 -0.202136,0.04382 -0.230063,-0.2354627 -0.02793,-0.3630625 0.01614,-0.6656643 -0.01179,-1.0845826 -0.02793,-0.251351 0,-0.3351346 0.02793,-0.6144135 0.05586,-0.1954952 -0.05586,-0.3630625 -0.08378,-0.5306299 0,-0.4189183 0.279279,-0.8936924 -0.418918,-0.7540529 -0.279279,0.055856 -1.33073,0.2676112 -1.582081,0.4351847 -0.223423,0.1396395 -0.446846,0.2234231 -0.698197,0.3351347 -0.418919,0.1954952 -0.893693,0.2234231 -1.3684669,0.251351 -0.02793,0.027928 -0.02793,0.027928 -0.05586,0.027928 -0.977477,-0.027928 -2.292241,0.027928 -3.213861,0.3630625 -0.195495,0.055856 -0.642341,0.1396394 -0.670269,0.3909904 -0.614414,0.3630626 -0.977476,0.8936924 -1.508106,1.3684663 0.02793,0.195495 -0.13964,0.53063001 -0.167568,0.75405301 -0.05586,0.279279 -0.02793,0.502702 -0.02793,0.754053 0,0.53063 0.195495,1.00540399 0.530629,1.42432199 0.335135,0.418919 0.586486,0.865765 0.781981,1.340539 0,0 0.195495,0.335135 0.195495,0.335135 0.05586,0.05585 0.111712,0.08378 0.13964,0.111711 0.279279,0.502702 0.867918,1.005404 1.175125,1.45225 0.08378,0.111712 0.167567,0.251351 0.251351,0.390991 0.307206,0.418918 0.586485,0.837836 0.893692,1.284682 0.307207,0.474775 0.707407,0.96121 1.07047,1.408056 0.08378,0.195495 0.139639,0.390991 0.223423,0.586486 0.111711,0.251351 0.01862,0.574824 0.102495,0.854103 0.05586,0.195495 0.08378,0.642341 0.195495,0.809909 -0.251351,0.3909905 -0.223423,0.8657645 -0.78198,1.0054045 -0.08378,0 -0.167568,-0.02793 -0.279279,-0.02793 -0.08378,0 -0.223423,0.02793 -0.335135,0.02793 -0.223423,-0.05586 -1.463313,-0.316417 -1.658808,-0.483984 -0.111711,-0.223424 -0.139639,-0.502702 -0.139639,-0.7819815 0,-0.390991 0.07146,-0.26305 0.01552,-0.598169 -0.111711,-0.558558 -0.08378,-1.145043 -0.08378,-1.731529 0,-0.335135 0.08378,-0.614414 0.05586,-0.92162 -0.195495,-0.363063 -0.642341,-0.418919 -0.92162,-0.08378 -0.167567,0.167567 -0.223423,0.418918 -0.335135,0.642341 -0.111711,0.195496 -0.279278,0.363063 -0.418918,0.558558 -0.167567,0.251351 -0.251351,0.418918 -0.446846,0.614414 -0.195495,0.195495 -0.363063,0.307206 -0.502702,0.502702 -0.167567,-0.05586 -0.335135,0 -0.502702,0.139639 0,0.05586 -0.02793,0.139639 -0.02793,0.223423 -0.02793,0.586486 -0.04354,0.570241 -0.09942,1.1287995 -0.02793,0.335134 0.08378,0.614413 0.111711,0.92162 0.02793,0.279279 0,0.586486 0.02793,0.893692 0.05586,0.307207 0.02793,0.586486 0.05586,0.865765 0.02793,0.335135 0.195495,0.39099 0.363063,0.642341 0.195495,-0.05586 0.418918,-0.05586 0.614413,-0.167567 0.167567,-0.08378 0.251351,-0.251351 0.446846,-0.363062 0.418919,-0.251351 0.726125,-0.53063 1.256755,-0.558558 0.474774,-0.02793 2.049799,0.176783 2.580428,0.148855 0.167568,0 0.251351,0.05586 0.390991,0.02793 0.08378,-0.02793 0.195495,-0.139639 0.307207,-0.167567 0.05585,0 0.08378,0.02793 0.139639,0.02793 0.08378,0.02793 0.167567,0.139639 0.251351,0.167567 0.08378,0 0.335135,-0.05586 0.335135,-0.05586 l 0.6981969,0.08378 c 0.139639,0.02793 0.363062,-0.139639 0.502702,-0.307207 0.418918,-0.08378 0.837836,-0.195495 1.200899,-0.446846 0.251351,-0.167567 0.418918,-0.363062 0.586486,-0.558558 0.02793,-0.08378 0.02793,-0.167567 0.02793,-0.223423 0.223424,-0.307206 0.251351,-0.977476 0.251351,-1.3405385 0,-0.418919 -0.111711,-0.893693 -0.223423,-1.312611 -0.111711,-0.446846 -0.251351,-0.949548 -0.502702,-1.312611 -0.02793,-0.02793 -0.05585,-0.08378 -0.08378,-0.111711 -0.279279,-0.307207 -0.642342,-0.698197 -0.949548,-0.921621 -0.05586,-0.307206 -0.307207,-0.586485 -0.53063,-0.865764 -0.111712,-0.195495 -0.223423,-0.39099 -0.335135,-0.586486 -0.363062,-0.558557 -0.9517019,-0.968266 -1.2309809,-1.554751 -0.307206,-0.614414 -0.870369,-1.321821 -1.12172,-1.936235 -0.05586,-0.139639 -0.111712,-0.22342299 -0.195495,-0.33513399 -0.05586,-0.111712 -0.08378,-0.223423 -0.13964,-0.363063 -0.08378,-0.307207 -0.139639,-0.558558 -0.167567,-0.893692 -0.02793,-0.13964 -0.02793,-0.279279 0,-0.418919 0.08378,-0.167567 0.279279,-0.19549501 0.195495,-0.39099001 0.223423,-0.5306297 1.095946,-0.6144134 1.57072,-0.6144134 0.338458,0.035934 0.400219,0.06892 0.7718959,0.2970284 0.531251,0.436882 0.632995,0.81126201 0.605067,1.34189201 0,0 -0.08378,1.25675499 0.05586,1.73152899"
- style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:url(#linearGradient7520-1);fill-opacity:1;stroke:none;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB"
- id="path5078"
- sodipodi:nodetypes="cscssscscsssccssscscccsssccsssscssccsscssscsssscsssssscsssssssscccsscssssccsssssssccccc" />
- <path
- sodipodi:nodetypes="csscscccsssccsssscsscssssscccscssscssssscssssssscccsscsssscccsssssscccccccssscsccsscsc"
- style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:url(#linearGradient7522-0);fill-opacity:1;stroke:none;filter:url(#filter5137-1);font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB"
- d="m -7.3838841,-4.9062508 c -0.411543,0.091612 -0.864844,0.170309 -1.03125,0.2812503 -0.223423,0.1396395 -0.467399,0.2320384 -0.71875,0.34375 -0.418919,0.1954952 -0.9002259,0.2220721 -1.3749999,0.25 -0.02793,0.027928 -0.0033,0.03125 -0.03125,0.03125 -0.977476,-0.027928 -2.29713,0.039866 -3.21875,0.375 -0.195495,0.055856 -0.659573,0.123649 -0.6875,0.375 -0.614414,0.3630625 -0.969371,0.9002259 -1.5,1.375 0.02793,0.195495 -0.128322,0.526577 -0.15625,0.75 -0.05585,0.27927901 -0.03125,0.49864901 -0.03125,0.75000001 0,0.53063 0.196116,1.018582 0.53125,1.43749999 0.335135,0.418918 0.585755,0.868975 0.78125,1.34375 l 0.1875,0.34375 c 0.05586,0.05586 0.128322,0.06582 0.15625,0.09375 0.279279,0.502702 0.849043,1.021904 1.15625,1.46875 0.08378,0.111711 0.166216,0.235361 0.25,0.375 0.307206,0.418919 0.599043,0.834404 0.90625,1.28125 0.307207,0.474774 0.699437,0.959404 1.0625,1.40625 0.08378,0.195495 0.134966,0.398254 0.21875,0.59375 0.111711,0.251351 0.04113,0.564471 0.125,0.84375 0.05586,0.195495 0.07578,0.644933 0.1875,0.8125 -0.125675,0.195495 -0.186993,0.4087285 -0.28125,0.5937505 -0.09426,0.185022 -0.220721,0.33643 -0.5,0.40625 -0.08378,0 -0.169539,0 -0.28125,0 -0.08378,0 -0.232038,0 -0.34375,0 -0.223423,-0.05586 -1.460755,-0.301182 -1.65625,-0.46875 -0.0312,-0.06239 -0.01191,-0.148864 -0.03125,-0.2187505 -0.405979,-0.100422 -0.8269,-0.18645 -0.9375,-0.28125 -0.2645,-0.171271 -0.150587,-0.462519 -0.21875,-0.671875 -0.111712,-0.558558 -0.0625,-1.163514 -0.0625,-1.75 0,-0.138813 0.01639,-0.249399 0.03125,-0.375 -0.104749,0.157701 -0.191409,0.320318 -0.28125,0.5 -0.111712,0.195496 -0.26661,0.367005 -0.40625,0.5625 -0.167567,0.251351 -0.242004,0.429505 -0.4375,0.625 -0.195495,0.195495 -0.36036,0.304505 -0.5,0.5 -0.167567,-0.05586 -0.332432,-0.01464 -0.5,0.125 0,0.05586 -0.03125,0.166217 -0.03125,0.25 -0.02793,0.5864865 0.0246,-0.136683 -0.03125,0.421875 -0.02793,0.3351345 0.09707,0.6302935 0.125,0.9375005 0.02793,0.279279 -0.02793,0.567793 0,0.875 0.05586,0.307207 0.03457,0.595721 0.0625,0.875 0.167567,-0.08378 0.273255,-0.263288 0.46875,-0.375 0.418919,-0.251351 0.71937,-0.534572 1.25,-0.5625 0.474774,-0.02793 2.063121,0.184178 2.59375,0.15625 0.167568,0 0.23536,0.05918 0.375,0.03125 0.08378,-0.02793 0.200788,-0.159572 0.3125,-0.1875 0.05586,0 0.06914,0.03125 0.125,0.03125 0.08378,0.02793 0.166216,0.159572 0.25,0.1875 0.08378,0 0.34375,-0.0625 0.34375,-0.0625 l 0.6875,0.09375 c 0.139639,0.02793 0.39161,-0.144933 0.5312499,-0.3125 0.418918,-0.08378 0.824437,-0.217399 1.1875,-0.46875 0.251351,-0.167567 0.426182,-0.335755 0.59375,-0.53125 0.02793,-0.08378 0.03125,-0.194144 0.03125,-0.25 0.223424,-0.3072075 0.25,-0.9806875 0.25,-1.3437505 0,-0.418918 -0.107038,-0.893582 -0.21875,-1.3125 -0.111711,-0.446847 -0.279899,-0.949437 -0.53125,-1.3125 -0.02793,-0.02793 -0.03458,-0.06582 -0.0625,-0.09375 -0.279279,-0.307206 -0.661544,-0.714077 -0.96875,-0.9375 -0.05586,-0.307207 -0.307827,-0.564471 -0.5312499,-0.84375 l -0.3125,-0.59375 c -0.363062,-0.558558 -0.970721,-0.976014 -1.25,-1.5625 -0.307206,-0.614413 -0.873649,-1.32308599 -1.125,-1.93749999 -0.05586,-0.139639 -0.103717,-0.232038 -0.1875,-0.34375000216703 C -13.095994,-0.11171149 -13.109274,-0.20411149 -13.165134,-0.34375049 c -0.08378,-0.307207 -0.159572,-0.571115 -0.1875,-0.90625001 -0.02793,-0.139639 -0.02793,-0.26661 0,-0.40625 0.08378,-0.1675671 0.302534,-0.2107548 0.21875,-0.40625 0.223423,-0.5306299 1.087726,-0.59375 1.5625,-0.59375 0.164833,0.1198783 0.33742,0.35262 0.59375,0.53125 0.128444,-0.011354 0.272924,-0.0625 0.375,-0.0625 0.307207,0.2234231 1.1283219,0.553154 1.1562499,1 0,0.53063001 0.184178,1.06312001 0.15625,1.59375001 0,0 0.0018,0.70491399 0.03125,1.24999999 0.0256,-0.06435 0.07475,-0.149495 0.09375,-0.1875 0.08378,-0.195495 0.200789,-0.363683 0.3125,-0.53124999 0.13964,-0.195495 0.207433,-0.429505 0.375,-0.625 0.251351,-0.307207 0.630294,-0.654899 0.9375,-0.90625 0.223423,-0.139639 0.284572,-0.269933 0.3125,-0.43750001 0,-0.111712 0.03457,-0.200788 0.0625,-0.3125 l 0,-0.03125 c -0.251351,-0.139639 -0.128322,-0.9082214 -0.15625,-1.1875003 -0.02793,-0.3630625 -0.0033,-0.6435817 -0.03125,-1.0625 -0.02793,-0.251351 0.0033,-0.3457211 0.03125,-0.625 0.05585,-0.1954952 -0.03458,-0.3636826 -0.0625,-0.53125 0,-0.043975 -0.0047,-0.08057 0,-0.125 z"
- id="path5091" />
- <path
- id="path4949"
- d="m -7.5911761,-4.4362374 -2.12132,0.7954952 -1.8561559,0.088388 -1.546796,0.1325826 -1.59099,0.8838835 -1.06066,1.1932426 0.309359,1.59099001 0.883883,1.37001999 -0.574524,-1.85615599 -0.08839,-1.19324301 1.06066,-1.1490477 1.767767,-0.6629127 1.988738,0.044194 1.9003489,-0.3093592 0.928078,-0.9280778 z"
- style="fill:#ffffff;stroke:none;filter:url(#filter4963-0-7)" />
- <path
- id="path4997"
- d="m -13.55739,10.67817 1.546797,0.640816 1.038563,0.0221 0.90598,-0.552427 0.4861359,-1.0606615 -0.4640389,-1.193242 -0.441941,-1.082758 0.22097,0.83969 0.04419,0.662912 0.2209699,0.83969 -0.3977469,0.9280775 -0.662913,0.441942 -1.126951,-0.06629 -1.37002,-0.419845 z"
- style="opacity:0.71627909000000001;fill:#f1ff1b;fill-opacity:1;stroke:none;filter:url(#filter5015-8)" />
- <path
- id="path4995"
- d="m -14.750632,7.2531215 -1.21534,1.502602 -0.486136,0.154679 -0.0221,1.4805055 0.176777,1.59099 0.198873,-1.303728 0,-1.3700195 0.662913,-0.419845 0.68501,-1.635184 z"
- style="opacity:0.71627909000000001;color:#000000;fill:#fdffdd;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5015-4-0);enable-background:accumulate" />
- <path
- sodipodi:nodetypes="ccssscsccsccssscscccsssccsssscssccsscssscsssscsssssscsssssssscccsscssssccsssssssccccc"
- id="path5099"
- style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:none;stroke:#000000;stroke-width:1;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB"
- d="m -9.1306221,1.4900495 c 0.02886,0.210607 0.391657,0.48974 0.491385,0.631025 0.363062,0.418918 0.461486,0.14358 0.573198,-0.07984 0.08378,-0.195495 0.176535,-0.441186 0.288247,-0.608754 0.139639,-0.195495 0.242383,-0.368722 0.409938,-0.56421699 0.251351,-0.307207 0.161299,-0.736093 0.468496,-0.987444 0.223423,-0.139639 0.445102,-0.336037 0.538257,-0.478094 0.09375,-0.14296 0.168561,-0.257992 0.196489,-0.369706 0.0121,-0.45060401 0.0096,-0.58007201 -0.05818,-1.01340101 -0.02793,-0.3630625 0.01614,-0.6656643 -0.01179,-1.0845826 -0.02793,-0.251351 0,-0.3351346 0.02793,-0.6144135 0.05586,-0.1954952 -0.05586,-0.3630625 -0.08378,-0.5306299 0,-0.4189183 0.279279,-0.8936924 -0.418918,-0.7540529 -0.279279,0.055856 -1.33073,0.2676112 -1.582081,0.4351847 -0.223423,0.1396395 -0.446846,0.2234231 -0.698197,0.3351347 -0.418919,0.1954952 -0.893693,0.2234231 -1.3684669,0.251351 -0.02793,0.027928 -0.02793,0.027928 -0.05586,0.027928 -0.977477,-0.027928 -2.292241,0.027928 -3.213861,0.3630625 -0.195495,0.055856 -0.642341,0.1396394 -0.670269,0.3909904 -0.614414,0.3630625 -0.977476,0.8936924 -1.508106,1.3684665 0.02793,0.1954951 -0.13964,0.5306301 -0.167568,0.7540531 -0.05586,0.27927901 -0.02793,0.50270201 -0.02793,0.75405301 0,0.53063 0.195495,1.005404 0.530629,1.42432199 0.335135,0.418918 0.586486,0.865764 0.781981,1.340539 0,0 0.195495,0.335134 0.195495,0.335134 0.05586,0.05586 0.111712,0.08378 0.13964,0.111712 0.279279,0.502702 0.867918,1.005404 1.175125,1.45225 0.08378,0.111711 0.167567,0.251351 0.251351,0.39099 0.307206,0.418919 0.586485,0.837837 0.893692,1.284683 0.307207,0.474774 0.707407,0.96121 1.07047,1.408056 0.08378,0.195495 0.139639,0.39099 0.223423,0.586486 0.111711,0.251351 0.01862,0.574824 0.102495,0.854103 0.05586,0.195495 0.08378,0.642341 0.195495,0.809908 -0.251351,0.3909915 -0.223423,0.8657655 -0.78198,1.0054045 -0.08378,0 -0.167568,-0.02793 -0.279279,-0.02793 -0.08378,0 -0.223423,0.02793 -0.335135,0.02793 -0.223423,-0.05585 -1.463313,-0.316416 -1.658808,-0.483984 -0.111711,-0.223423 -0.139639,-0.5027025 -0.139639,-0.7819815 0,-0.39099 0.02451,-0.24741 -0.03125,-0.582544 -0.111712,-0.558558 -0.08378,-1.145044 -0.08378,-1.731529 0,-0.335135 0.08378,-0.614414 0.05586,-0.921621 -0.195496,-0.363062 -0.642342,-0.418918 -0.921621,-0.08378 -0.167567,0.167567 -0.223423,0.418918 -0.335134,0.642341 -0.111712,0.195495 -0.279279,0.363063 -0.418919,0.558558 -0.167567,0.251351 -0.251351,0.418918 -0.446846,0.614413 -0.195495,0.195496 -0.363062,0.307207 -0.502702,0.502702 -0.167567,-0.05586 -0.335134,0 -0.502702,0.13964 0,0.05586 -0.02793,0.139639 -0.02793,0.223423 -0.02793,0.586486 0.0034,0.554617 -0.05254,1.113175 -0.02793,0.3351345 0.08378,0.6144135 0.111711,0.9216205 0.02793,0.279279 0,0.586485 0.02793,0.893692 0.05586,0.307207 0.02793,0.586486 0.05586,0.865765 0.02793,0.335134 0.195495,0.39099 0.363063,0.642341 0.195495,-0.05586 0.418918,-0.05586 0.614413,-0.167567 0.167567,-0.08378 0.251351,-0.251351 0.446846,-0.363063 0.418919,-0.251351 0.726125,-0.53063 1.256755,-0.558558 0.474774,-0.02793 2.049799,0.176784 2.580428,0.148856 0.167568,0 0.251351,0.05586 0.390991,0.02793 0.08378,-0.02793 0.195495,-0.139639 0.307207,-0.167567 0.05586,0 0.08378,0.02793 0.139639,0.02793 0.08378,0.02793 0.167567,0.139639 0.251351,0.167567 0.08378,0 0.335135,-0.05586 0.335135,-0.05586 l 0.6981969,0.08378 c 0.139639,0.02793 0.363062,-0.13964 0.502702,-0.307207 0.418918,-0.08378 0.837837,-0.195495 1.200899,-0.446846 0.251351,-0.167567 0.418918,-0.363063 0.586486,-0.558558 0.02793,-0.08378 0.02793,-0.167567 0.02793,-0.223423 0.223423,-0.307207 0.251351,-0.9774765 0.251351,-1.3405395 0,-0.418918 -0.111712,-0.893692 -0.223424,-1.31261 -0.111711,-0.446847 -0.251351,-0.949548 -0.502701,-1.312611 -0.02793,-0.02793 -0.05586,-0.08378 -0.08378,-0.111712 -0.279279,-0.307206 -0.642342,-0.698197 -0.949548,-0.92162 -0.05586,-0.307207 -0.307207,-0.586485 -0.53063,-0.865764 -0.111712,-0.195496 -0.223423,-0.390991 -0.335135,-0.586486 -0.363062,-0.558558 -0.9517019,-0.968266 -1.2309799,-1.554752 -0.307207,-0.614413 -0.87037,-1.32182 -1.121721,-1.93623399 -0.05586,-0.139639 -0.111711,-0.223423 -0.195495,-0.335135 -0.05586,-0.111711 -0.08378,-0.223423 -0.13964,-0.363062 -0.08378,-0.307207 -0.139639,-0.558558 -0.167567,-0.893693 -0.02793,-0.139639 -0.02793,-0.279278 0,-0.41891801 0.08378,-0.167567 0.279279,-0.195495 0.195495,-0.39099 0.223423,-0.53063 1.095946,-0.6144137 1.570721,-0.6144137 0.307206,0.2234231 1.1189679,0.5376867 1.1468949,0.9845327 0,0.53063001 0.195496,1.06125901 0.167568,1.59188901 0,0 -0.09942,0.55362999 0.04022,1.02840399" />
- </g>
- <flowRoot
- xml:space="preserve"
- id="flowRoot6320-7"
- style="font-size:4px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ff0000;stroke:none;font-family:Arial Black;-inkscape-font-specification:'Arial Black, Bold'"
- transform="translate(69.627664,8.7537182)"><flowRegion
- id="flowRegion6322-3"><rect
- id="rect6324-8"
- width="29.521708"
- height="12.551146"
- x="-35.708893"
- y="36.596195"
- style="font-size:4px;fill:#ff0000;stroke:none" /></flowRegion><flowPara
- id="flowPara6359">32 x 32 +</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot6320"
- style="font-size:4px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ff0000;stroke:none;font-family:Arial Black;-inkscape-font-specification:'Arial Black, Bold'"
- transform="translate(103.08958,8.6287182)"><flowRegion
- id="flowRegion6322"><rect
- id="rect6324"
- width="29.521708"
- height="12.551146"
- x="-35.708893"
- y="36.596195"
- style="font-size:4px;fill:#ff0000;stroke:none" /></flowRegion><flowPara
- id="flowPara6326">16 x 16</flowPara></flowRoot> <g
- id="g4419-9"
- transform="matrix(0.70204353,0,0,0.70204353,6.3520227,19.500166)">
- <text
- transform="scale(0.98905082,1.0110704)"
- id="text3192-6"
- y="29.80883"
- x="98.950493"
- style="font-size:23.85853958px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:none;stroke:#000000;stroke-width:1.42441297;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB Bold"
- xml:space="preserve"><tspan
- style="fill:none;stroke-width:1.42441297"
- y="29.80883"
- x="98.950493"
- id="tspan3194-0"
- sodipodi:role="line">X</tspan></text>
- <g
- id="text3200-9"
- style="font-size:23.85853958px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:url(#linearGradient4433-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB Bold"
- transform="matrix(0.98905084,0,0,1.0110704,0.44194175,0.19887379)">
- <path
- id="path4078-3"
- style="fill:url(#linearGradient4431-7);marker:none"
- d="m 102.92528,28.251039 c -0.31016,-0.548746 -0.45332,-1.192928 -0.71576,-1.789391 -0.26244,-0.620321 -0.38174,-1.073635 -0.6919,-1.646239 -0.0716,-0.143151 -0.11929,-0.262444 -0.16701,-0.405595 0.0239,-0.64418 -0.31016,-1.407655 -0.52489,-2.004118 -0.14315,-0.334019 -0.31016,-0.739615 -0.31016,-1.121351 0,-0.310161 0.1193,-0.620322 0.45332,-0.81119 0.64418,-0.381737 1.47923,0.357878 2.14726,0.310161 0.19087,-0.429454 -0.0238,-1.145211 0.0239,-1.598523 0.0477,-0.501028 -0.0239,-0.930483 -0.0239,-1.431512 0,-0.357878 0.1193,-1.31222 0.1193,-2.099551 0,-0.548746 -0.0477,-1.025918 -0.26245,-1.14521 -0.5726,0.238585 -0.73961,0.882766 -1.14521,1.312219 -0.54874,0.524888 -1.2645,0.50103 -1.956397,0.66804 -0.09543,0.739614 0.167007,1.550805 0.214727,2.266561 0.0239,0.357878 -0.310161,1.574663 -0.763473,1.336078 -0.02386,-0.04772 -0.02386,-0.07158 -0.04772,-0.119293 -0.143151,-0.286302 -0.262444,-0.572605 -0.381737,-0.858907 -0.31016,-0.691897 -0.477171,-1.503089 -0.858907,-2.12341 L 97.9627,16.846657 c -0.143151,-0.357878 -0.381737,-1.049776 -0.763473,-1.073635 -0.238585,-0.02386 -0.548747,0.09543 -0.835049,0.04772 -0.286302,-0.04772 -0.524888,-0.04772 -0.81119,-0.04772 -0.620322,0 -1.264504,0.04772 -1.884825,0.04772 -0.214727,0 -0.64418,-0.14315 -0.524888,0.286303 0.02386,0.09543 0.524888,0.214727 0.644181,0.286302 1.216784,0.739614 1.526947,1.741675 2.12341,2.910742 0.190868,0.405595 0.286302,0.858908 0.429454,1.288361 0,0.02386 0.238585,0.524888 0.238585,0.524888 0,0.190868 0.04772,0.405596 0.07158,0.548747 0.09543,0.405594 0.190868,0.620322 0.334019,0.9782 0.143151,0.31016 0.07158,0.691898 0,1.025917 -0.119292,0.501029 -1.049776,1.145209 -1.455371,0.596463 -0.381736,0.04772 -0.691898,-0.668038 -1.049776,-0.357878 -0.286302,0.238585 -0.07158,1.169069 -0.02386,1.47923 0.04772,0.524887 0.02386,0.9782 0,1.479229 -0.02386,0.262444 -0.09543,0.50103 -0.09543,0.715756 0,0.238586 0.09543,0.429454 -0.04772,0.691898 l 0,0.190868 c 0.09543,0.596463 0.07158,1.121352 0.09543,1.765532 0.501029,0.262444 0.668039,-0.691898 0.906624,-0.954341 0.453312,-0.501029 0.930484,-0.524889 1.407654,-0.930483 0.143151,0.167009 0.357878,0.143151 0.501029,0 0.02386,0.02386 0.04772,0.07157 0.07158,0.07157 0.453312,-0.04772 0.405595,-0.453312 0.357878,-0.787331 -0.02386,-0.16701 0.02386,-0.381737 0,-0.50103 -0.02386,-0.190868 -0.119293,-0.262444 -0.16701,-0.477171 -0.04772,-0.167009 -0.09543,-0.453312 -0.09543,-0.763473 0,-0.405595 0.07158,-0.858907 0.214727,-1.049776 0.214727,-0.238585 0.405595,-0.119292 0.596464,0.09544 0.04772,0.09543 0.262444,0.07157 0.310161,0.190868 0.07157,0.167009 0.143151,0.33402 0.214726,0.501029 0.02386,0.04772 0.04772,0.09543 0.07158,0.143151 0,0 0.02386,0.02386 0.02386,0.02386 0.07157,0.214727 0.143151,0.429454 0.238585,0.620322 0.143151,0.381736 0.190868,0.715757 0.286303,1.097493 0.09543,0.310161 0.310161,0.620322 0.405595,0.930483 0.09543,0.310161 0.238585,0.835049 0.501027,0.9782 0.26244,0.143151 0.47717,-0.02386 0.78733,-0.04772 0.4056,-0.02386 0.71576,0.119293 1.09749,0.09543 0.4056,0 0.6919,0.143151 1.04978,0.16701 0.14315,0 0.93048,-0.02386 1.02592,-0.09543 0.42945,-0.33402 -1.0975,-0.906625 -1.28836,-1.288361" />
- </g>
- <path
- sodipodi:nodetypes="ccssscssccssscssccsscssscccccssscsccccssssccsssscccsccscsssssssccscccssscsssssccc"
- id="text3200-0-5"
- d="m 101.99756,14.727806 c -0.0957,0.04075 -0.16614,0.08935 -0.24199,0.150504 0.0177,0.167593 0.0186,0.345639 0.0186,0.545574 0,0.796047 -0.35254,1.773174 -0.35254,2.135013 0,0.506575 0.28455,0.910769 0.23735,1.417345 -0.0472,0.458331 -0.0798,0.714953 -0.2686,1.149162 -0.66073,0.04825 -0.68162,-0.496185 -1.849989,0.171027 -0.332235,0.189727 -0.446753,0.514175 -0.446753,0.827769 0,0.385962 -0.345967,0.897752 -0.204381,1.235469 0.212371,0.603065 0.826063,1.251693 0.802466,1.903004 0.04719,0.144736 -0.131163,0.445418 -0.06037,0.590154 0.306756,0.578943 0.326273,0.909217 0.585827,1.536406 0.25958,0.603065 0.67113,1.330456 0.9779,1.885277 0.0592,0.121013 0.93424,0.591534 1.15287,0.737107 -0.57434,-0.859228 -0.84112,-1.61607 -1.095,-2.205915 -0.25957,-0.627189 -0.38198,-1.095407 -0.68874,-1.67435 -0.0708,-0.144736 -0.12034,-0.250336 -0.16754,-0.395071 0.0236,-0.651312 -0.30884,-1.428731 -0.521208,-2.031796 -0.141581,-0.337717 -0.297836,-0.742813 -0.297836,-1.128775 0,-0.313595 0.116398,-0.634788 0.446754,-0.827769 0.63712,-0.385963 1.46136,0.368065 2.12208,0.31982 0.18878,-0.434208 -0.0286,-1.159581 0.0186,-1.617911 0.0472,-0.506577 -0.0186,-0.94202 -0.0186,-1.448596 0,-0.361839 0.11169,-1.329813 0.11169,-2.12586 0,-0.554821 -0.0483,-1.026975 -0.2606,-1.147588 l 10e-6,0 z m -5.995987,1.385463 c 0.117862,0.218281 0.210787,0.371003 0.279219,0.545892 l 0.07446,0.400503 c 0.377554,0.627189 0.562148,1.320117 0.868914,2.019674 0.117985,0.289471 0.786593,1.215167 0.928173,1.504639 0.02359,0.04825 0.01364,0.08344 0.03723,0.131691 0.09886,0.05319 0.194362,0.0084 0.279222,-0.05644 -0.0711,-0.163924 -0.443823,-1.120706 -0.510639,-1.28463 -0.306766,-0.699557 -0.46011,-1.517485 -0.837666,-2.144674 l -0.07446,-0.150503 c -0.14158,-0.361842 -0.479397,-1.41078 -1.044453,-0.966152 z m -3.720933,0.0067 c -0.02005,0.04734 -0.02666,0.108829 0,0.206943 0.0236,0.09649 0.514916,0.228639 0.632902,0.301007 0.130064,0.08082 0.243076,0.157673 0.353681,0.244568 -0.224233,-0.253127 -0.495698,-0.483588 -0.837665,-0.696078 -0.0249,-0.01527 -0.09839,-0.03756 -0.148918,-0.05644 z m 4.076637,8.465818 c -0.05051,0.01922 -0.09582,0.07138 -0.148916,0.131689 -0.141583,0.192981 -0.329762,0.580939 -0.329762,0.991023 0,0.313594 -0.02443,0.555596 0.02276,0.724455 0.04719,0.217104 0.125322,0.296155 0.148919,0.489136 0.0236,0.120614 -0.0236,0.33909 0,0.507949 -0.06314,0.20993 -0.15262,0.404104 -0.182968,0.457079 -0.141583,0.144736 -0.502749,0.07201 -0.644334,-0.09685 -0.471945,0.410085 -0.845088,0.601235 -1.293437,1.10781 -0.141083,0.158647 -0.228497,0.08605 -0.404702,0.332393 0.0035,0.197489 -0.0049,1.1583 0.003,1.375451 0.495544,0.26535 0.657537,-0.69411 0.89351,-0.959459 0.448349,-0.506575 0.924165,-0.530561 1.39611,-0.940645 0.141584,0.168858 0.361016,0.144736 0.5026,0 0.0236,0.02412 0.03225,0.07525 0.05585,0.07525 0.448348,-0.04825 0.400876,-0.452426 0.353681,-0.790143 -0.0236,-0.168859 0.0236,-0.387335 0,-0.507949 -0.0236,-0.19298 -0.101724,-0.272032 -0.148918,-0.489136 -0.04719,-0.168858 -0.09307,-0.457736 -0.09307,-0.77133 0,-0.410084 0.06318,-0.860543 0.204762,-1.053523 0.159282,-0.18092 1.077505,0.173105 1.220192,0.28731 l -0.107543,-0.441003 c -0.04718,-0.12061 -0.516266,-0.333828 -0.56346,-0.430314 -0.141584,-0.162828 -0.732716,-0.05686 -0.884256,8.08e-4 l -1.8e-5,-1e-6 z m 6.297103,4.371916 c 0.0267,0.07155 0.0371,0.129029 -0.0372,0.188129 -0.0944,0.07237 -0.86361,0.09406 -1.00519,0.09406 -0.35396,-0.02412 -0.64127,-0.169316 -1.04243,-0.169316 -0.37755,0.02412 -0.697111,-0.118187 -1.098274,-0.09406 -0.230072,0.01809 -0.393442,0.125316 -0.577056,0.112877 0.07672,0.17324 0.302324,0.640373 0.422836,0.707572 0.259574,0.144736 0.456446,-0.03231 0.763204,-0.05644 0.40115,-0.02412 0.72072,0.118187 1.09827,0.09406 0.40116,0 0.68847,0.145193 1.04243,0.169316 0.14159,0 0.91081,-0.0217 1.0052,-0.09406 0.21933,-0.17439 -0.2076,-0.708893 -0.57176,-0.952139 l -3e-5,10e-7 z"
- style="font-size:39.84158707px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#e74e00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4027-0);enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB Bold" />
- <text
- transform="scale(0.98905082,1.0110704)"
- id="text4019-4"
- y="29.793831"
- x="99.06604"
- style="font-size:23.85853958px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:none;stroke:#000000;stroke-width:0.71220654;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:DwarvenAxe BB;-inkscape-font-specification:DwarvenAxe BB Bold"
- xml:space="preserve"><tspan
- y="29.793831"
- x="99.06604"
- id="tspan4021-3"
- sodipodi:role="line"
- style="fill:none;stroke:#000000;stroke-width:0.71220654">X</tspan></text>
- <path
- transform="translate(26.727273,11.818182)"
- id="path4039-6"
- d="m 66.512234,4.577514 2.983107,0.022097 -1.679378,0.265165 -0.729204,-0.044194 0.552427,0.3977476 1.789864,3.4692428 0.486136,2.1434176 0.287262,0.618718 L 69.495341,10.433242 69.318565,9.0411257 68.89872,8.1351451 67.617089,5.5718829 66.512234,4.577514 z"
- style="fill:#ffffff;stroke:none;filter:url(#filter4049-0)" />
- <path
- transform="translate(26.727273,11.818182)"
- id="path4053-4"
- d="m 74.754448,4.2902518 -0.795495,0.5745243 -1.347922,0.3756505 0.176776,1.4363107 0.06629,0.6850097 0.132582,-0.9501747 0,-0.8838836 1.193243,-0.5303301 0.574524,-0.7071068 z"
- style="fill:#ffffff;stroke:none;filter:url(#filter4063-1)" />
- <path
- transform="translate(26.727273,11.818182)"
- id="path4067-3"
- d="m 67.263535,16.642524 -0.0221,-0.707107 0.176777,-1.59099 -0.220971,-1.590991 0.441942,0.397748 0.243068,0.0221 0.176777,0.132583 0.751301,0.04419 -0.707107,0.198874 -0.419845,0.08839 -0.04419,0.662913 -0.176777,0.928077 0.04419,0.618719 -0.243068,0.795495 z"
- style="fill:#ffeeaa;stroke:none;filter:url(#filter4073-0)" />
- </g>
- </g>
-</svg>
diff --git a/offsetedit/src/gui/main.ui b/offsetedit/src/gui/main.ui
deleted file mode 100644
index dfff8fa0..00000000
--- a/offsetedit/src/gui/main.ui
+++ /dev/null
@@ -1,195 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>MainWindow</class>
- <widget class="QMainWindow" name="MainWindow">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>633</width>
- <height>622</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>MainWindow</string>
- </property>
- <property name="windowIcon">
- <iconset resource="resources.qrc">
- <normaloff>:/main_icon/main_64.png</normaloff>:/main_icon/main_64.png</iconset>
- </property>
- <widget class="QWidget" name="centralwidget">
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QTreeView" name="entryView"/>
- </item>
- </layout>
- </widget>
- <widget class="QStatusBar" name="statusbar"/>
- <widget class="QToolBar" name="toolBar">
- <property name="windowTitle">
- <string>toolBar</string>
- </property>
- <attribute name="toolBarArea">
- <enum>TopToolBarArea</enum>
- </attribute>
- <attribute name="toolBarBreak">
- <bool>false</bool>
- </attribute>
- <addaction name="actionOpen"/>
- <addaction name="actionSave"/>
- <addaction name="actionSave_As"/>
- <addaction name="actionRun_DF"/>
- </widget>
- <widget class="QDockWidget" name="descriptioDock">
- <property name="features">
- <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
- </property>
- <property name="allowedAreas">
- <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
- </property>
- <property name="windowTitle">
- <string>Description</string>
- </property>
- <attribute name="dockWidgetArea">
- <number>2</number>
- </attribute>
- <widget class="QWidget" name="dockWidgetContents">
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QLabel" name="DescriptionPanel">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
- <horstretch>1</horstretch>
- <verstretch>1</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="frameShape">
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Raised</enum>
- </property>
- <property name="lineWidth">
- <number>1</number>
- </property>
- <property name="midLineWidth">
- <number>0</number>
- </property>
- <property name="text">
- <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:xx-large; font-weight:600;&quot;&gt;Title text&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Some other text.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
- </property>
- <property name="textFormat">
- <enum>Qt::AutoText</enum>
- </property>
- <property name="scaledContents">
- <bool>false</bool>
- </property>
- <property name="alignment">
- <set>Qt::AlignTop</set>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </widget>
- <widget class="QDockWidget" name="dockWidget">
- <property name="floating">
- <bool>false</bool>
- </property>
- <property name="features">
- <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
- </property>
- <property name="allowedAreas">
- <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
- </property>
- <property name="windowTitle">
- <string>Entries</string>
- </property>
- <attribute name="dockWidgetArea">
- <number>1</number>
- </attribute>
- <widget class="QWidget" name="dockWidgetContents_2">
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <widget class="QTreeView" name="structureView"/>
- </item>
- </layout>
- </widget>
- </widget>
- <widget class="QMenuBar" name="menubar">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>633</width>
- <height>22</height>
- </rect>
- </property>
- <widget class="QMenu" name="menuFile">
- <property name="title">
- <string>File</string>
- </property>
- <addaction name="actionOpen"/>
- <addaction name="actionSave"/>
- <addaction name="actionSave_As"/>
- <addaction name="actionQuit"/>
- </widget>
- <widget class="QMenu" name="menuSettings">
- <property name="title">
- <string>Settings</string>
- </property>
- <addaction name="actionSetup_DF_executables"/>
- </widget>
- <addaction name="menuFile"/>
- <addaction name="menuSettings"/>
- </widget>
- <action name="actionOpen">
- <property name="text">
- <string>Open</string>
- </property>
- </action>
- <action name="actionSave">
- <property name="text">
- <string>Save</string>
- </property>
- </action>
- <action name="actionSave_As">
- <property name="text">
- <string>Save As</string>
- </property>
- </action>
- <action name="actionQuit">
- <property name="text">
- <string>Quit</string>
- </property>
- </action>
- <action name="actionRun_DF">
- <property name="text">
- <string>Run DF</string>
- </property>
- </action>
- <action name="actionSetup_DF_executables">
- <property name="text">
- <string>Setup DF executables</string>
- </property>
- </action>
- </widget>
- <resources>
- <include location="resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/offsetedit/src/gui/main_16.png b/offsetedit/src/gui/main_16.png
deleted file mode 100644
index 04367e58..00000000
--- a/offsetedit/src/gui/main_16.png
+++ /dev/null
Binary files differ
diff --git a/offsetedit/src/gui/main_32.png b/offsetedit/src/gui/main_32.png
deleted file mode 100644
index 39137fed..00000000
--- a/offsetedit/src/gui/main_32.png
+++ /dev/null
Binary files differ
diff --git a/offsetedit/src/gui/main_64.png b/offsetedit/src/gui/main_64.png
deleted file mode 100644
index e6823a94..00000000
--- a/offsetedit/src/gui/main_64.png
+++ /dev/null
Binary files differ
diff --git a/offsetedit/src/gui/resources.qrc b/offsetedit/src/gui/resources.qrc
deleted file mode 100644
index 70729406..00000000
--- a/offsetedit/src/gui/resources.qrc
+++ /dev/null
@@ -1,7 +0,0 @@
-<RCC>
- <qresource prefix="main_icon">
- <file>main_64.png</file>
- <file>main_16.png</file>
- <file>main_32.png</file>
- </qresource>
-</RCC>
diff --git a/offsetedit/src/main.cpp b/offsetedit/src/main.cpp
deleted file mode 100644
index 36334656..00000000
--- a/offsetedit/src/main.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <QtGui/QApplication>
-#include "dfedit.h"
-
-
-int main(int argc, char** argv)
-{
- QApplication app(argc, argv);
- dfedit appGui;
- appGui.show();
- return app.exec();
-}
diff --git a/offsetedit/src/memxmlModel.cpp b/offsetedit/src/memxmlModel.cpp
deleted file mode 100644
index 3df8849b..00000000
--- a/offsetedit/src/memxmlModel.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2005-2006 Trolltech ASA. All rights reserved.
-**
-** This file was part of the example classes of the Qt Toolkit.
-** Now it's being hacked into some other shape... :)
-**
-** This file may be used under the terms of the GNU General Public
-** License version 2.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of
-** this file. Please review the following information to ensure GNU
-** General Public Licensing requirements will be met:
-** http://www.trolltech.com/products/qt/opensource.html
-**
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://www.trolltech.com/products/qt/licensing.html or contact the
-** sales department at sales@trolltech.com.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-****************************************************************************/
-
-#include "memxmlModel.h"
-#include <QtGui>
-#include <QtXml>
-#include <QDomNode>
-#include <QHash>
-
-class DomItem
-{
-public:
- DomItem(QDomNode &node, int row, DomItem *parent = 0);
- ~DomItem();
- DomItem *child(int i);
- DomItem *parent();
- QDomNode node() const;
- int row();
-
-private:
- QDomNode domNode;
- QHash<int,DomItem*> childItems;
- DomItem *parentItem;
- int rowNumber;
-};
-
-DomItem::DomItem(QDomNode &node, int row, DomItem *parent)
-{
- domNode = node;
- // Record the item's location within its parent.
- rowNumber = row;
- parentItem = parent;
-}
-
-DomItem::~DomItem()
-{
- QHash<int,DomItem*>::iterator it;
- for (it = childItems.begin(); it != childItems.end(); ++it)
- delete it.value();
-}
-
-QDomNode DomItem::node() const
-{
- return domNode;
-}
-
-DomItem *DomItem::parent()
-{
- return parentItem;
-}
-
-DomItem *DomItem::child(int i)
-{
- if (childItems.contains(i))
- return childItems[i];
-
- if (i >= 0 && i < domNode.childNodes().count()) {
- QDomNode childNode = domNode.childNodes().item(i);
- DomItem *childItem = new DomItem(childNode, i, this);
- childItems[i] = childItem;
- return childItem;
- }
- return 0;
-}
-
-int DomItem::row()
-{
- return rowNumber;
-}
-
-MemXMLModel::MemXMLModel(QDomDocument document, QObject *parent)
- : QAbstractItemModel(parent), domDocument(document)
-{
- rootItem = new DomItem(domDocument, 0);
-}
-
-MemXMLModel::~MemXMLModel()
-{
- delete rootItem;
-}
-
-int MemXMLModel::columnCount(const QModelIndex & parent) const
-{
- Q_UNUSED(parent);
- return 3;
-}
-
-QVariant MemXMLModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid())
- return QVariant();
-
- if (role != Qt::DisplayRole)
- return QVariant();
-
- DomItem *item = static_cast<DomItem*>(index.internalPointer());
-
- QDomNode node = item->node();
- QStringList attributes;
- QDomNamedNodeMap attributeMap = node.attributes();
-
- switch (index.column()) {
- case 0:
- return node.nodeName();
- case 1:
- for (int i = 0; (unsigned int)(i) < attributeMap.count(); ++i)
- {
- QDomNode attribute = attributeMap.item(i);
- attributes << attribute.nodeName() + "=\"" +attribute.nodeValue() + "\"";
- }
- return attributes.join(" ");
- case 2:
- return node.nodeValue().split("\n").join(" ");
- default:
- return QVariant();
- }
-}
-
-Qt::ItemFlags MemXMLModel::flags(const QModelIndex &index) const
-{
- if (!index.isValid())
- {
- return Qt::ItemIsEnabled;
- }
-
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
-}
-
-QVariant MemXMLModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
- switch (section) {
- case 0:
- return tr("Name");
- case 1:
- return tr("Attributes");
- case 2:
- return tr("Value");
- default:
- return QVariant();
- }
- }
-
- return QVariant();
-}
-
-QModelIndex MemXMLModel::index(int row, int column, const QModelIndex &parent) const
-{
- DomItem *parentItem;
-
- if (!parent.isValid())
- parentItem = rootItem;
- else
- parentItem = static_cast<DomItem*>(parent.internalPointer());
-
- DomItem *childItem = parentItem->child(row);
- if (childItem)
- return createIndex(row, column, childItem);
- else
- return QModelIndex();
-}
-
-QModelIndex MemXMLModel::parent(const QModelIndex &child) const
-{
- if (!child.isValid())
- return QModelIndex();
-
- DomItem *childItem = static_cast<DomItem*>(child.internalPointer());
- DomItem *parentItem = childItem->parent();
-
- if (!parentItem || parentItem == rootItem)
- return QModelIndex();
-
- return createIndex(parentItem->row(), 0, parentItem);
-}
-
-int MemXMLModel::rowCount(const QModelIndex &parent) const
-{
- DomItem *parentItem;
-
- if (!parent.isValid())
- parentItem = rootItem;
- else
- parentItem = static_cast<DomItem*>(parent.internalPointer());
-
- return parentItem->node().childNodes().count();
-}
-
-#include "memxmlModel.moc"
diff --git a/offsetedit/src/memxmlModel.h b/offsetedit/src/memxmlModel.h
deleted file mode 100644
index 2879f4b5..00000000
--- a/offsetedit/src/memxmlModel.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef memxmlModel_H
-#define memxmlModel_H
-
-#include <qabstractitemmodel.h>
-#include <qdom.h>
-
-class DomItem;
-
-class MemXMLModel : public QAbstractItemModel
-{
- Q_OBJECT
-public:
- MemXMLModel(QDomDocument document, QObject *parent = 0);
- ~MemXMLModel();
-
- QVariant data(const QModelIndex &index, int role) const;
- Qt::ItemFlags flags(const QModelIndex &index) const;
- QVariant headerData(int section, Qt::Orientation orientation,
- int role = Qt::DisplayRole) const;
- QModelIndex index(int row, int column,
- const QModelIndex &parent = QModelIndex()) const;
- QModelIndex parent(const QModelIndex &child) const;
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
-
-private:
- QDomDocument domDocument;
- DomItem *rootItem;
-};
-#endif // memxmlModel
diff --git a/output/.gitignore b/output/.gitignore
deleted file mode 100644
index ff94317d..00000000
--- a/output/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-Debug
-Release
-RelWithDebInfo
diff --git a/output/stones.py b/output/stones.py
deleted file mode 100644
index 2cc7a2d7..00000000
--- a/output/stones.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- coding: utf-8 -*-
-from pydfhack import API
-DF = API("Memory.xml")
-
-if DF.Attach():
- Mats = DF.materials
- stones = Mats.Read_Inorganic_Materials()
- print "Dumping all stone"
- for matgloss in stones:
- print "ID %s, name %s" % (matgloss.id, matgloss.name)
- DF.Detach()
diff --git a/package/debian/99-dfhack.conf b/package/debian/99-dfhack.conf
deleted file mode 100644
index a0a17e68..00000000
--- a/package/debian/99-dfhack.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-# some settings required for dfhack. fucks up local security...
-kernel.randomize_va_space = 0 \ No newline at end of file
diff --git a/package/debian/postinst b/package/debian/postinst
deleted file mode 100755
index 13f47935..00000000
--- a/package/debian/postinst
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-
diff --git a/package/debian/postrm b/package/debian/postrm
deleted file mode 100755
index 3b8cdfc6..00000000
--- a/package/debian/postrm
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-# do nothing. blah. \ No newline at end of file
diff --git a/package/debian/preinst b/package/debian/preinst
deleted file mode 100755
index 13f47935..00000000
--- a/package/debian/preinst
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-
diff --git a/package/ubuntu-10.10/99-dfhack.conf b/package/ubuntu-10.10/99-dfhack.conf
deleted file mode 100644
index bc7cd2bc..00000000
--- a/package/ubuntu-10.10/99-dfhack.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-# some settings required for dfhack. fucks up local security...
-# shame on kernel devs and ubuntu people for not providing
-# an /official/ way to manipulate things and just putting up roadblocks
-# instead of proper design
-kernel.randomize_va_space = 0
-kernel.yama.ptrace_scope = 0 \ No newline at end of file
diff --git a/package/ubuntu-10.10/postinst b/package/ubuntu-10.10/postinst
deleted file mode 100755
index ed50fde4..00000000
--- a/package/ubuntu-10.10/postinst
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-echo "Setting required kernel parameters."
-# I actually do it three times, hoping to hammer this into Ubuntu's dense skull.
-sysctl -w kernel.randomize_va_space=0
-sysctl -w kernel.yama.ptrace_scope=0
-if grep -q "kernel.yama.ptrace_scope=0" /etc/sysctl.conf
-then
- echo "Already installed into /etc/sysctl.conf, doing nothing."
-else
- echo "kernel.randomize_va_space=0" >> /etc/sysctl.conf
- echo "kernel.yama.ptrace_scope=0" >> /etc/sysctl.conf
-fi
-
diff --git a/package/ubuntu-10.10/postrm b/package/ubuntu-10.10/postrm
deleted file mode 100755
index 3b8cdfc6..00000000
--- a/package/ubuntu-10.10/postrm
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-# do nothing. blah. \ No newline at end of file
diff --git a/package/ubuntu-10.10/preinst b/package/ubuntu-10.10/preinst
deleted file mode 100755
index 13f47935..00000000
--- a/package/ubuntu-10.10/preinst
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-
diff --git a/output/doxygen/.keep b/plugins/.keep
index e69de29b..e69de29b 100644
--- a/output/doxygen/.keep
+++ b/plugins/.keep
diff --git a/precompiled/linux/df-hacked b/precompiled/linux/df-hacked
deleted file mode 100755
index f9c3a335..00000000
--- a/precompiled/linux/df-hacked
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-DF_DIR=$(dirname "$0")
-cd "${DF_DIR}"
-export SDL_DISABLE_LOCK_KEYS=1 # Work around for bug in Debian/Ubuntu SDL patch.
-#export SDL_VIDEO_CENTERED=1 # Centre the screen. Messes up resizing.
-ldd dwarfort.exe | grep SDL_image | grep -qv "not found$"
-if [ $? -eq 0 ]; then
- mkdir unused_libs
- mv libs/libSDL* unused_libs/
-fi
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"./libs" # Update library search path.
-export LD_PRELOAD="./libs/libdfconnect.so" # Hack DF!
-./dwarfort.exe $* # Go, go, go! :)