Files
OpenAssetTools/src/ZoneLoading/Loading/ZoneDataPeeking.h
T
Jan Laupetinandwroy ca890bc236 refactor: inspect iw4 and iw5 XAssetList to determine word size
* Inspired by how IW4x identifies x64 zones

Co-authored-by: William Roy <[email protected]>
2026-10-22 20:01:06 +02:00

28 lines
537 B
C++

#pragma once
#include <cstring>
#include <functional>
#include <istream>
#include <vector>
class ZoneDataPeeking
{
public:
explicit ZoneDataPeeking(std::istream& stream);
template<typename T> const T& PeekStruct()
{
EnsureHasEnoughData(sizeof(T));
return *reinterpret_cast<const T*>(m_data.data());
}
void PeekWithStream(const std::function<void(std::istream& stream)>& cb) const;
private:
void EnsureHasEnoughData(size_t size);
std::istream& m_stream;
std::vector<char> m_data;
};