Permalink
Browse files

Unstuck tool (in case user closes a non-SHM tool), Windows fixes

  • Loading branch information...
1 parent d96d201 commit 6aef446c5785b7e24274bd020cdb2679053dd85a @peterix peterix committed Apr 11, 2010
Showing with 11 additions and 1 deletion.
  1. +4 −0 tools/CMakeLists.txt
  2. +7 −1 tools/vdig.cpp
View
@@ -21,6 +21,10 @@ TARGET_LINK_LIBRARIES(dfvdig dfhack)
ADD_EXECUTABLE(dfcleanmap cleanmap.cpp)
TARGET_LINK_LIBRARIES(dfcleanmap dfhack)
+# unstuck - make DF run if something goes wrong with the 'normal' memory access method
+ADD_EXECUTABLE(dfunstuck unstuck.cpp)
+TARGET_LINK_LIBRARIES(dfunstuck dfhack)
+
IF(UNIX)
# incrementalsearch - a bit like cheat engine, only DF-specific, very basic
# and Linux-only
View
@@ -105,20 +105,24 @@ class Block
{
return raw.designation[p.x][p.y];
}
- DFHack::t_designation setDesignationAt(Point p, DFHack::t_designation des)
+ bool setDesignationAt(Point p, DFHack::t_designation des)
{
+ if(!valid) return false;
dirty = true;
//printf("setting block %d/%d/%d , %d %d\n",x,y,z, p.x, p.y);
raw.designation[p.x][p.y] = des;
+ return true;
}
bool WriteDesignations ()
{
+ if(!valid) return false;
if(dirty)
{
//printf("writing %d/%d/%d\n",x,y,z);
m->WriteDesignations(x,y,z, &raw.designation);
m->WriteDirtyBit(x,y,z,true);
}
+ return true;
}
bool valid;
bool dirty;
@@ -171,6 +175,7 @@ class Layer
{
Block * nblo = new Block(Maps,blockcoord.x,blockcoord.y,z);
blocks[blockcoord] = nblo;
+ return nblo;
}
}
@@ -234,6 +239,7 @@ class Layer
p->second->WriteDesignations();
//cout << stonetypes[p->first].id << " : " << p->second << endl;
}
+ return true;
}
private:
bool valid;

0 comments on commit 6aef446

Please sign in to comment.