/** * @file dead.h * * Interface of functions for placing dead monsters. */ #pragma once #include #include #include "engine.h" #include "engine/clx_sprite.hpp" #include "engine/point.hpp" namespace devilution { static constexpr unsigned MaxCorpses = 31; struct Corpse { OptionalClxSpriteListOrSheet sprites; int frame; uint16_t width; uint8_t translationPaletteIndex; /** * @brief Returns the sprite list for a given direction. * * @param direction One of the 16 directions. Valid range: [0, 15]. * @return ClxSpriteList */ [[nodiscard]] ClxSpriteList spritesForDirection(Direction direction) const { return sprites->isSheet() ? sprites->sheet()[static_cast(direction)] : sprites->list(); } }; extern Corpse Corpses[MaxCorpses]; extern int8_t stonendx; void InitCorpses(); void AddCorpse(Point tilePosition, int8_t dv, Direction ddir); void MoveLightsToCorpses(); } // namespace devilution