mirror of https://github.com/zeldaret/tp.git
53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
#ifndef FVB_DATA_PARSE_H
|
|
#define FVB_DATA_PARSE_H
|
|
|
|
#include "JSystem/JStudio/JStudio/fvb-data.h"
|
|
|
|
namespace JStudio {
|
|
namespace fvb {
|
|
namespace data {
|
|
|
|
class TParse_TBlock : public TParseData_aligned<4> {
|
|
public:
|
|
TParse_TBlock(const void* content) : TParseData_aligned<4>(content) {}
|
|
|
|
const TBlock* get() const { return (TBlock*)getRaw(); }
|
|
|
|
u32 get_size() const { return get()->size; }
|
|
const void* getNext() const {
|
|
u32 size = get_size();
|
|
return (const void*)((u8*)getRaw() + size);
|
|
}
|
|
u16 get_type() const { return get()->type; }
|
|
u16 get_IDSize() const { return get()->id_size; }
|
|
const void* getBlockEnd_() const { return (u8*)getRaw() + sizeof(TBlock); }
|
|
const void* get_ID() const {
|
|
const void* ret = 0;
|
|
if (get_IDSize())
|
|
ret = getBlockEnd_();
|
|
return ret;
|
|
}
|
|
const void* getContent() const {
|
|
u32 size = align_roundUp(get_IDSize(), 4);
|
|
return (const void*)((int)getBlockEnd_() + size);
|
|
}
|
|
};
|
|
|
|
class TParse_TParagraph : public TParseData_aligned<4> {
|
|
public:
|
|
struct TData {
|
|
/* 0x04 */ u32 u32Size;
|
|
/* 0x08 */ u32 u32Type;
|
|
/* 0x0C */ const void* pContent;
|
|
};
|
|
TParse_TParagraph(const void* content) : TParseData_aligned<4>(content) {}
|
|
|
|
/* 802850AC */ void getData(JStudio::fvb::data::TParse_TParagraph::TData*) const;
|
|
};
|
|
|
|
} // namespace data
|
|
} // namespace fvb
|
|
} // namespace JStudio
|
|
|
|
#endif /* FVB_DATA_PARSE_H */
|