This repository has been archived on 2023-10-28. You can view files and clone it, but cannot push or open issues or pull requests.
frostbite/snowlib/WorldReader.h
2021-04-01 23:49:11 +01:00

24 lines
838 B
C++

#pragma once
#include <memory>
#include "GameType.h"
class World;
class LmpRepository;
class TopoPatch;
class WorldReader
{
public:
WorldReader(GameType gameType) : gameType(gameType) {}
World* readWorld(LmpRepository* lmpRepository, const char* name);
private:
GameType gameType;
void decodeWorldFile(World* world, const unsigned char* data, int dataLength);
void decodeTopography(World* world, const unsigned char* data, int dataLength);
std::shared_ptr<TopoPatch> readTopoPatch(const unsigned char* data, int offset);
void readTextureChunkOffsets(World* world, const unsigned char* data, int dataLength, int worldTexOffsetsOffset, int texMinx, int texMiny, int texMaxx, int texMaxy);
void readElements(World* world, const unsigned char* data, int dataLength, int elementBase, int numElements, int texMinx, int texMiny);
};