You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 lines
993 B

/**
* @file dead.h
*
* Interface of functions for placing dead monsters.
*/
#pragma once
#include <array>
#include <cstdint>
#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<size_t>(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