prepare some functions
This commit is contained in:
parent
bf0fca756b
commit
f3cb9b1a07
|
@ -121,7 +121,7 @@ namespace LibCmo::CK2 {
|
|||
|
||||
|
||||
size_t CKStateChunk::GetCeilDwordSize(size_t char_size) {
|
||||
return (char_size + 3) >> 3;
|
||||
return (char_size + 3) >> 2;
|
||||
}
|
||||
|
||||
bool CKStateChunk::ResizeBuffer(CKDWORD new_dwsize) {
|
||||
|
@ -430,6 +430,22 @@ namespace LibCmo::CK2 {
|
|||
return true;
|
||||
}
|
||||
|
||||
/* ========== Complex Data Read Functions ==========*/
|
||||
|
||||
bool CKStateChunk::ReadObjectID(CK_ID* id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CKStateChunk::ReadManagerInt(CKGUID* guid, CKINT* intval) {
|
||||
return false;
|
||||
}
|
||||
|
||||
CKStateChunk* CKStateChunk::ReadSubChunk(void) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/* ========== Buffer Functions ==========*/
|
||||
|
||||
bool CKStateChunk::ReadNoSizeBuffer(CKDWORD size_in_byte, void* allocatedBuf) {
|
||||
if (allocatedBuf == nullptr) return false;
|
||||
return this->ReadByteData(allocatedBuf, size_in_byte);
|
||||
|
@ -465,6 +481,23 @@ namespace LibCmo::CK2 {
|
|||
return true;
|
||||
}
|
||||
|
||||
/* ========== Sequence Functions ==========*/
|
||||
|
||||
bool CKStateChunk::ReadObjectIDSequence(std::vector<CK_ID>* ls) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CKStateChunk::ReadManagerIntSequence(CKGUID* guid, std::vector<CKINT>* ls) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CKStateChunk::ReadSubChunkSequence(std::vector<CKStateChunk*>* ls) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CKStateChunk::ReadObjectArray(std::vector<CK_ID>* ls) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
|
|
|
@ -135,18 +135,39 @@ namespace LibCmo::CK2 {
|
|||
return ReadString(&strl);
|
||||
}
|
||||
|
||||
/* ========== Complex Data Read Functions ==========*/
|
||||
|
||||
bool ReadObjectID(CK_ID* id);
|
||||
inline bool ReadObjectID(CK_ID& id) {
|
||||
return ReadObjectID(&id);
|
||||
}
|
||||
|
||||
bool ReadManagerInt(CKGUID* guid, CKINT* intval);
|
||||
inline bool ReadManagerInt(CKGUID& guid, CKINT& intval) {
|
||||
return ReadManagerInt(&guid, &intval);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read sub chunk
|
||||
/// <para>Return nullptr if failed.</para>
|
||||
/// <para>Returned CKStateChunk should be manually released!</para>
|
||||
/// </summary>
|
||||
/// <param name=""></param>
|
||||
/// <returns></returns>
|
||||
CKStateChunk* ReadSubChunk(void);
|
||||
|
||||
/* ========== Buffer Functions ==========*/
|
||||
|
||||
/*
|
||||
Buffer related function implements:
|
||||
|
||||
ReadBuffer(void**) Read Byte based size.
|
||||
ReadAndFillBuffer(int, void*) User give Byte based size.
|
||||
ReadAndFillBuffer(void*) Read Byte based size.
|
||||
ReadAndFillBuffer_LEndian(int, void*) User give Byte based size.
|
||||
ReadAndFillBuffer_LEndian(void*) Read Byte based size.
|
||||
ReadAndFillBuffer_LEndian16(int, void*) User give Byte based size.
|
||||
ReadAndFillBuffer_LEndian16(void*) Read Byte based size.
|
||||
ReadBuffer(void**) Read Byte based size. -> ReadBuffer
|
||||
ReadAndFillBuffer(int, void*) User give Byte based size. -> ReadNoSizeBuffer
|
||||
ReadAndFillBuffer(void*) Read Byte based size. -> ReadBuffer
|
||||
ReadAndFillBuffer_LEndian(int, void*) User give Byte based size. -> ReadNoSizeBuffer
|
||||
ReadAndFillBuffer_LEndian(void*) Read Byte based size. -> ReadBuffer
|
||||
ReadAndFillBuffer_LEndian16(int, void*) User give Byte based size. -> ReadNoSizeBuffer
|
||||
ReadAndFillBuffer_LEndian16(void*) Read Byte based size. -> ReadBuffer
|
||||
*/
|
||||
|
||||
/// <summary>
|
||||
|
@ -171,6 +192,52 @@ namespace LibCmo::CK2 {
|
|||
|
||||
/* ========== Sequence Functions ==========*/
|
||||
|
||||
/// <summary>
|
||||
/// Read Object ID Sequence
|
||||
/// <para>The combination using of StartReadSequence(), ReadObjectID(), and ReadObject() redirect to this.</para>
|
||||
/// </summary>
|
||||
/// <param name="ls"></param>
|
||||
/// <returns></returns>
|
||||
bool ReadObjectIDSequence(std::vector<CK_ID>* ls);
|
||||
inline bool ReadObjectIDSequence(std::vector<CK_ID>& ls) {
|
||||
return ReadObjectIDSequence(&ls);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read Manager Sequence
|
||||
/// <para>The combination using of StartManagerReadSequence() and ReadManagerIntSequence() redirect to this.</para>
|
||||
/// </summary>
|
||||
/// <param name="guid"></param>
|
||||
/// <param name="ls"></param>
|
||||
/// <returns></returns>
|
||||
bool ReadManagerIntSequence(CKGUID* guid, std::vector<CKINT>* ls);
|
||||
inline bool ReadManagerIntSequence(CKGUID& guid, std::vector<CKINT>& ls) {
|
||||
return ReadManagerIntSequence(&guid, &ls);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read Sub Chunk Sequence
|
||||
/// <para>The combination using of StartReadSequence() and ReadSubChunk() redirect to this.</para>
|
||||
/// <para>The item of returned CKStateChunk* list should be manually released!</para>
|
||||
/// </summary>
|
||||
/// <param name="ls"></param>
|
||||
/// <returns></returns>
|
||||
bool ReadSubChunkSequence(std::vector<CKStateChunk*>* ls);
|
||||
inline bool ReadSubChunkSequence(std::vector<CKStateChunk*>& ls) {
|
||||
return ReadSubChunkSequence(&ls);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read Object Array (actually still is CK_ID)
|
||||
/// <para>ReadXObjectArray() and ReadObjectArray() redirect to this.</para>
|
||||
/// </summary>
|
||||
/// <param name="ls"></param>
|
||||
/// <returns></returns>
|
||||
bool ReadObjectArray(std::vector<CK_ID>* ls);
|
||||
inline bool ReadObjectArray(std::vector<CK_ID>& ls) {
|
||||
return ReadObjectArray(&ls);
|
||||
}
|
||||
|
||||
//int ReadInt();
|
||||
//int StartReadSequence();
|
||||
//CK_ID ReadObjectID();
|
||||
|
|
Loading…
Reference in New Issue
Block a user