diff options
| author | Alexander Gavrilov | 2012-03-21 13:26:53 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-03-21 13:26:53 +0400 |
| commit | 9b78fffe9255e0fd14b6e446652598a36372b934 (patch) | |
| tree | 8c1e02483868cd3c22219152b32f544b877b19cf /library/DataDefs.cpp | |
| parent | 73e138c9fdf64cab23330fc13b73383d8648324d (diff) | |
| download | dfhack-9b78fffe9255e0fd14b6e446652598a36372b934.tar.gz dfhack-9b78fffe9255e0fd14b6e446652598a36372b934.tar.bz2 dfhack-9b78fffe9255e0fd14b6e446652598a36372b934.tar.xz | |
Support containers in the lua wrapper.
Diffstat (limited to 'library/DataDefs.cpp')
| -rw-r--r-- | library/DataDefs.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/library/DataDefs.cpp b/library/DataDefs.cpp index e8ee1471..9576afb7 100644 --- a/library/DataDefs.cpp +++ b/library/DataDefs.cpp @@ -34,6 +34,7 @@ distribution. #include "tinythread.h" // must be last due to MS stupidity #include "DataDefs.h" +#include "DataIdentity.h" #include "MiscUtils.h" @@ -62,6 +63,14 @@ void compound_identity::doInit(Core *) top_scope.push_back(this); } +std::string compound_identity::getFullName() +{ + if (scope_parent) + return scope_parent->getFullName() + "." + getName(); + else + return getName(); +} + static tthread::mutex *known_mutex = NULL; void compound_identity::Init(Core *core) @@ -130,6 +139,32 @@ bool struct_identity::is_subclass(struct_identity *actual) return false; } +std::string pointer_identity::getFullName() +{ + return (target ? target->getFullName() : std::string("void")) + "*"; +} + +std::string container_identity::getFullName(type_identity *item) +{ + return "<" + (item ? item->getFullName() : std::string("void")) + ">"; +} + +std::string ptr_container_identity::getFullName(type_identity *item) +{ + return "<" + (item ? item->getFullName() : std::string("void")) + "*>"; +} + +std::string bit_container_identity::getFullName(type_identity *) +{ + return "<bool>"; +} + +std::string df::buffer_container_identity::getFullName(type_identity *item) +{ + return (item ? item->getFullName() : std::string("void")) + + (size > 0 ? stl_sprintf("[%d]", size) : std::string("[]")); +} + virtual_identity::virtual_identity(size_t size, TAllocateFn alloc, const char *dfhack_name, const char *original_name, virtual_identity *parent, const struct_field_info *fields) |
