#pragma once #include #include #include #include "engine/clx_sprite.hpp" #ifdef UNPACKED_MPQS #define DEVILUTIONX_PCX_EXT ".clx" #else #define DEVILUTIONX_PCX_EXT ".pcx" #endif namespace devilution { /** * @brief Loads a PCX file as a CLX sprite list. * * @param filename * @param numFramesOrFrameHeight Pass a positive value with the number of frames, or the frame height as a negative value. * @param transparentColor * @param outPalette * @return OptionalOwnedClxSpriteList */ OptionalOwnedClxSpriteList LoadPcxSpriteList(const char *filename, int numFramesOrFrameHeight, std::optional transparentColor = std::nullopt, SDL_Color *outPalette = nullptr, bool logError = true); /** * @brief Loads a PCX file as a CLX sprite list with a single sprite. * * @param filename * @param transparentColor * @param outPalette * @return OptionalOwnedClxSpriteList */ inline OptionalOwnedClxSpriteList LoadPcx(const char *filename, std::optional transparentColor = std::nullopt, SDL_Color *outPalette = nullptr, bool logError = true) { return LoadPcxSpriteList(filename, 1, transparentColor, outPalette, logError); } } // namespace devilution