From 2bc7aacb7946722bcfdfc76ccae333546ba1f5dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 19 Mar 2011 20:17:04 +0100 Subject: [PATCH] Remove precompiled garbage, fix dfcleanmap for real --- CMakeLists.txt | 3 +- library/include/dfhack/DFMiscUtils.h | 22 ++++- library/include/dfhack/modules/Maps.h | 120 ++++++++++++++++++-------- library/modules/Maps.cpp | 2 +- precompiled/linux/libdfconnect.so | Bin 36012 -> 0 bytes precompiled/windows/SDL.dll | Bin 38400 -> 0 bytes tools/supported/cleanmap.cpp | 11 ++- tools/supported/probe.cpp | 7 +- 8 files changed, 117 insertions(+), 48 deletions(-) delete mode 100755 precompiled/linux/libdfconnect.so delete mode 100644 precompiled/windows/SDL.dll diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d86a4ff6..293dde426 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ set(DFHACK_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR set(CPACK_PACKAGE_NAME "dfhack") ## setting the build type -IF(NOT DEFINED CMAKE_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.") ENDIF() @@ -61,6 +61,7 @@ IF(${DFHACK_INSTALL} STREQUAL "portable") 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?") diff --git a/library/include/dfhack/DFMiscUtils.h b/library/include/dfhack/DFMiscUtils.h index e42e9166b..b1c8c0ac7 100644 --- a/library/include/dfhack/DFMiscUtils.h +++ b/library/include/dfhack/DFMiscUtils.h @@ -130,8 +130,26 @@ template void print_bits ( T val, std::ostream& out ) { T n_bits = sizeof ( val ) * CHAR_BIT; - - for ( unsigned i = 0; i < n_bits; ++i ) { + int cnt; + for ( unsigned i = 0; i < n_bits; ++i ) + { + cnt = i/10; + cout << cnt << " "; + } + cout << endl; + for ( unsigned i = 0; i < n_bits; ++i ) + { + cnt = i%10; + cout << cnt << " "; + } + cout << endl; + for ( unsigned i = 0; i < n_bits; ++i ) + { + cout << "--"; + } + cout << endl; + for ( unsigned i = 0; i < n_bits; ++i ) + { out<< !!( val & 1 ) << " "; val >>= 1; } diff --git a/library/include/dfhack/modules/Maps.h b/library/include/dfhack/modules/Maps.h index 544109890..e5b4d427b 100644 --- a/library/include/dfhack/modules/Maps.h +++ b/library/include/dfhack/modules/Maps.h @@ -307,7 +307,6 @@ namespace DFHack unsigned int feature_global : 1; unsigned int water_stagnant : 1; unsigned int water_salt : 1; - // e_liquidcharacter liquid_character : 2; }; /** * designation bit field wrapper @@ -319,49 +318,98 @@ namespace DFHack naked_designation bits; }; + /* + * unsigned int mud : 1; + unsigned int vomit :1;* + unsigned int broken_arrows_color :4; + unsigned int blood_g : 1; + unsigned int blood_g2 : 1; + unsigned int blood_b : 1; + unsigned int blood_b2 : 1; + unsigned int blood_y : 1; + unsigned int blood_y2 : 1; + unsigned int blood_m : 1; + unsigned int blood_m2 : 1; + unsigned int blood_c : 1; + unsigned int blood_c2 : 1; + unsigned int blood_w : 1; + unsigned int blood_w2 : 1; + unsigned int blood_o : 1; + unsigned int blood_o2 : 1; + unsigned int slime : 1; + unsigned int slime2 : 1; + unsigned int blood : 1; + unsigned int blood2 : 1; + unsigned int broken_arrows_variant : 1; + unsigned int snow : 1; + */ + /** * occupancy flags (rat,dwarf,horse,built wall,not build wall,etc) * \ingroup grp_maps */ - struct naked_occupancy //FIXME: THIS IS NOT VALID FOR 31.xx versions!!!! + struct naked_occupancy { - // building type... should be an enum? - // 7 = door - unsigned int building : 3; - /// the tile contains a standing? creature - unsigned int unit : 1; - /// the tile contains a prone creature + /// 0-2: building type... should be an enum. + unsigned int building : 3;// 0-2 + /// 3: the tile contains a standing creature + unsigned int unit : 1; // 3 + /// 4: the tile contains a prone creature unsigned int unit_grounded : 1; - /// the tile contains an item + /// 5: the tile contains an item unsigned int item : 1; - /// changed - unsigned int unknown : 26; - /* - /// splatter. everyone loves splatter. this doesn't seem to be used anymore - unsigned int mud : 1; - unsigned int vomit :1; - unsigned int broken_arrows_color :4; - unsigned int blood_g : 1; - unsigned int blood_g2 : 1; - unsigned int blood_b : 1; - unsigned int blood_b2 : 1; - unsigned int blood_y : 1; - unsigned int blood_y2 : 1; - unsigned int blood_m : 1; - unsigned int blood_m2 : 1; - unsigned int blood_c : 1; - unsigned int blood_c2 : 1; - unsigned int blood_w : 1; - unsigned int blood_w2 : 1; - unsigned int blood_o : 1; - unsigned int blood_o2 : 1; - unsigned int slime : 1; - unsigned int slime2 : 1; - unsigned int blood : 1; - unsigned int blood2 : 1; + /// 6 + unsigned int unk6 : 1; + /// 7: mossy! + unsigned int moss : 1; + /// 8-11: arrow color related + unsigned int arrow_color : 4; + /// 12: arrow orientaton unsigned int broken_arrows_variant : 1; - unsigned int snow : 1; - */ + /// 13 + unsigned int unk13 : 1; + /// 14: A monster lair. Items placed won't be moved. + unsigned int monster_lair : 1; + /** + * 15: seems to be set on terrain tiles where grass growth is impossible + * pebbles, boulders, rock floors in the middle of grass. also shrubs. but not trees + */ + unsigned int no_grow : 1; + /// 16 + unsigned int unk16 : 1; + /// 17 + unsigned int unk17 : 1; + /// 18 + unsigned int unk18 : 1; + /// 19 + unsigned int unk19 : 1; + + /// 20 + unsigned int unk20 : 1; + /// 21 + unsigned int unk21 : 1; + /// 22 + unsigned int unk22 : 1; + /// 23 + unsigned int unk23 : 1; + + /// 24 + unsigned int unk24 : 1; + /// 25 + unsigned int unk25 : 1; + /// 26 + unsigned int unk26 : 1; + /// 27 + unsigned int unk27 : 1; + + /// 28 + unsigned int unk28 : 1; + /// 29 + unsigned int unk29 : 1; + /// 30 + unsigned int unk30 : 1; + /// 31 + unsigned int unk31 : 1; }; /** * occupancy flags (rat,dwarf,horse,built wall,not build wall,etc) wrapper diff --git a/library/modules/Maps.cpp b/library/modules/Maps.cpp index fec5a6a30..631ea86d7 100644 --- a/library/modules/Maps.cpp +++ b/library/modules/Maps.cpp @@ -544,7 +544,7 @@ bool Maps::WriteOccupancy (uint32_t x, uint32_t y, uint32_t z, occupancies40d *b uint32_t addr = d->block[x*d->y_block_count*d->z_block_count + y*d->z_block_count + z]; if (addr) { - d->owner->write (addr + d->offsets.occupancy_offset, sizeof (tiletypes40d), (uint8_t *) buffer); + d->owner->write (addr + d->offsets.occupancy_offset, sizeof (occupancies40d), (uint8_t *) buffer); return true; } return false; diff --git a/precompiled/linux/libdfconnect.so b/precompiled/linux/libdfconnect.so deleted file mode 100755 index 4b3a2a846b2c47766648309b4bb9a0ba703feeec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36012 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 diff --git a/precompiled/windows/SDL.dll b/precompiled/windows/SDL.dll deleted file mode 100644 index e436f4e9e4fa76d7de83f3e4bbf1b03185a985dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38400 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,y,z)) { Mapz->ReadVeins(x,y,z,0,0,&splatter); - /* - * FIXME: THIS IS BAD - */ - /* Mapz->ReadOccupancy(x,y,z,&occ); for(int i = 0; i < 16; i++) for(int j = 0; j < 16; j++) { - occ[i][j].unibits.splatter = 0; + occ[i][j].bits.arrow_color = 0; + occ[i][j].bits.broken_arrows_variant = 0; } - Mapz->WriteOccupancy(x,y,z,&occ);*/ + Mapz->WriteOccupancy(x,y,z,&occ); for(uint32_t i = 0; i < splatter.size(); i++) { DFHack::t_spattervein & vein = splatter[i]; diff --git a/tools/supported/probe.cpp b/tools/supported/probe.cpp index cdbf86572..71d5c15f8 100644 --- a/tools/supported/probe.cpp +++ b/tools/supported/probe.cpp @@ -47,6 +47,7 @@ int main (int numargs, const char ** args) uint32_t region_z_offset = mapsg->getAddress("region_z"); uint32_t designatus = mapblockg->getOffset("designation"); + uint32_t occup = mapblockg->getOffset("occupancy"); uint32_t biomus = mapblockg->getOffset("biome_stuffs"); int32_t regionX, regionY, regionZ; @@ -80,8 +81,12 @@ int main (int numargs, const char ** args) printf("block addr: 0x%x\n", block.origin); int16_t tiletype = block.tiletypes[tileX][tileY]; naked_designation &des = block.designation[tileX][tileY].bits; + uint32_t designato = block.origin + designatus + (tileX * 16 + tileY) * sizeof(t_designation); + uint32_t occupr = block.origin + occup + (tileX * 16 + tileY) * sizeof(t_occupancy); + printf("designation offset: 0x%x\n", designato); print_bits(block.designation[tileX][tileY].whole,std::cout); std::cout << endl; + printf("occupancy offset: 0x%x\n", occupr); print_bits(block.occupancy[tileX][tileY].whole,std::cout); std::cout << endl; @@ -121,8 +126,6 @@ int main (int numargs, const char ** args) std::cout << "rained?" << std::endl; if(des.smooth) std::cout << "smooth?" << std::endl; - uint32_t designato = block.origin + designatus + (tileX * 16 + tileY) * sizeof(t_designation); - printf("designation offset: 0x%x\n", designato); printf("biomestuffs: 0x%x\n", block.origin + biomus); #define PRINT_FLAG( X ) printf("%-16s= %c\n", #X , ( des.X ? 'Y' : ' ' ) )