| 413 | } |
| 414 | |
| 415 | bool CGhostLoader::ReadNextType(int *pType) |
| 416 | { |
| 417 | dbg_assert((bool)m_File, "File not open"); |
| 418 | |
| 419 | if(m_BufferCurItem != m_BufferPrevItem && m_BufferCurItem < m_BufferNumItems) |
| 420 | { |
| 421 | *pType = m_LastItem.m_Type; |
| 422 | } |
| 423 | else if(!ReadChunk(pType)) |
| 424 | { |
| 425 | return false; // error or EOF |
| 426 | } |
| 427 | |
| 428 | m_BufferPrevItem = m_BufferCurItem; |
| 429 | return true; |
| 430 | } |
| 431 | |
| 432 | static void UndiffItem(const uint32_t *pPast, const uint32_t *pDiff, uint32_t *pOut, size_t Size) |
| 433 | { |