summaryrefslogtreecommitdiff
path: root/include/JSystem
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-10-18 00:21:08 +0300
committerGitHub <noreply@github.com>2024-10-17 14:21:08 -0700
commit38445f4d516dbc802670def3d4d6fc3d9eb1317c (patch)
tree0cb539a25bc74a540a75be52a9ddc8b405f4d337 /include/JSystem
parent2aa441e40bcc0a8fd369e41a69729e6c34d8c3b2 (diff)
Work on d_a_title (#2215)
Diffstat (limited to 'include/JSystem')
-rw-r--r--include/JSystem/JGadget/binary.h19
-rw-r--r--include/JSystem/JStudio/JStudio/stb.h23
2 files changed, 31 insertions, 11 deletions
diff --git a/include/JSystem/JGadget/binary.h b/include/JSystem/JGadget/binary.h
index 26d29d1fbf..89df9d4745 100644
--- a/include/JSystem/JGadget/binary.h
+++ b/include/JSystem/JGadget/binary.h
@@ -62,6 +62,7 @@ struct TParse_header_block {
template <typename T>
struct TParseValue_raw_ {
+ typedef T ParseType;
static T parse(const void* data) { return *(T*)data; }
};
@@ -83,6 +84,24 @@ struct TParseValue : public Parser<T> {
}
};
+template<class Parser, int size>
+struct TValueIterator {
+ TValueIterator(const void* begin) {
+ mBegin = begin;
+ }
+
+ typename Parser::ParseType operator*() {
+ return *(typename Parser::ParseType*)mBegin;
+ }
+
+ const void* mBegin;
+};
+
+template<typename T>
+struct TValueIterator_raw : public TValueIterator<TParseValue_raw_<u8>, 1> {
+ TValueIterator_raw(const void* begin) : TValueIterator<TParseValue_raw_<u8>, 1>(begin) {}
+};
+
} // namespace binary
} // namespace JGadget
diff --git a/include/JSystem/JStudio/JStudio/stb.h b/include/JSystem/JStudio/JStudio/stb.h
index fe32991cfe..ea299a709c 100644
--- a/include/JSystem/JStudio/JStudio/stb.h
+++ b/include/JSystem/JStudio/JStudio/stb.h
@@ -157,43 +157,44 @@ private:
};
template <int T>
-struct TParseData {
+struct TParseData : public data::TParse_TParagraph_data::TData {
TParseData(const void* pContent) {
data::TParse_TParagraph_data data(pContent);
set(data);
}
void set(const data::TParse_TParagraph_data& data) {
- //data::TParse_TParagraph_data::TData* p = (data::TParse_TParagraph_data::TData*)this;
- data.getData(m_data);
+ data.getData(this);
}
bool isEnd() const {
- return m_data->_0 == 0;
+ return _0 == 0;
}
bool empty() const {
- return m_data->_c == NULL;
+ return _c == NULL;
}
bool isValid() const {
- return !empty() && m_data->_0 == 50;
+ return !empty() && _0 == 50;
}
-
- data::TParse_TParagraph_data::TData* m_data;
};
-template <int T>
+template <int T, class Iterator=JGadget::binary::TValueIterator_raw<u8> >
struct TParseData_fixed : public TParseData<T> {
- TParseData_fixed(const void* pContent) : TParseData(pContent) {}
+ TParseData_fixed(const void* pContent) : TParseData<T>(pContent) {}
const void* getNext() const {
- return m_data->_c;
+ return fileCount;
}
bool isValid() const {
return TParseData::isValid() && getNext() != NULL;
}
+
+ Iterator begin() {
+ return Iterator(fileCount);
+ }
};
} // namespace stb