Works but you forgot
commands.h
bool setInvisible(Creature* creature, const std::string &cmd, const std::string ¶m);
and I had to change
tile.h
void onUpdateTile();
from private to public, 6 rows above
under:
virtual bool isRemoved() const {return false;}
One bug only, the name...