game/mario/mapobject.hpp
zv0n c453c2fe9a
All checks were successful
continuous-integration/drone/push Build is passing
Formatting
2022-11-19 23:10:33 +01:00

47 lines
1.5 KiB
C++

#ifndef MAP_OBJECT_H
#define MAP_OBJECT_H
#include "blocks.hpp"
class MapObject {
public:
MapObject() = default;
MapObject(uint16_t terrain_id, uint8_t terrain_type, uint8_t character_id,
uint8_t character_type, uint32_t modifier_id,
uint8_t modifier_data, const std::string &modifier_text);
MapObject(uint16_t terrain_id, LandType::Value terrain_type,
uint8_t character_id, LandType::Value character_type,
uint32_t modifier_id, uint8_t modifier_data,
const std::string &modifier_text);
void setTerrain(uint16_t id, LandType::Value land_type);
void setTerrain(uint16_t id, uint8_t land_type);
void setCharacter(uint8_t id, LandType::Value land_type);
void setCharacter(uint8_t id, uint8_t land_type);
void setModifier(uint32_t id, uint8_t data);
void setModifier(uint32_t id, const std::string &text);
void unsetTerrain();
void unsetModifier();
void unsetCharacter();
bool hasCharacter();
bool hasModifier();
uint16_t getTerrainId();
uint8_t getCharacterId();
uint32_t getModifierId();
LandType::Value getTerrainType();
LandType::Value getCharacterType();
uint8_t getModifierData();
const std::string &getModifierText();
private:
LandType::Value terrain_type = LandType::OVERWORLD;
uint16_t terrain_id = 0;
LandType::Value character_type = LandType::OVERWORLD;
uint8_t character_id = 0;
uint32_t modifier_id = 0;
uint8_t modifier_data = 0;
std::string modifier_text = "";
};
#endif