2021-06-07 21:48:28 +00:00
|
|
|
#include "mapobject.hpp"
|
|
|
|
|
|
|
|
MapObject::MapObject( uint16_t terrain_id, LandType::Value terrain_type,
|
|
|
|
uint8_t character_id, LandType::Value character_type,
|
2021-08-08 19:36:47 +00:00
|
|
|
uint32_t modifier_id, uint8_t modifier_data ) {
|
2021-06-07 21:48:28 +00:00
|
|
|
setTerrain(terrain_id, terrain_type);
|
|
|
|
if(character_id != 0)
|
|
|
|
setCharacter(character_id, character_type);
|
|
|
|
if(modifier_id != 0)
|
|
|
|
setModifier(modifier_id, modifier_data);
|
|
|
|
}
|
|
|
|
|
|
|
|
MapObject::MapObject( uint16_t terrain_id, uint8_t terrain_type,
|
|
|
|
uint8_t character_id, uint8_t character_type,
|
2021-08-08 19:36:47 +00:00
|
|
|
uint32_t modifier_id, uint8_t modifier_data )
|
2021-06-07 21:48:28 +00:00
|
|
|
: MapObject( terrain_id, static_cast< LandType::Value >( terrain_type ),
|
|
|
|
character_id,
|
|
|
|
static_cast< LandType::Value >( character_type ),
|
|
|
|
modifier_id, modifier_data ) {}
|
|
|
|
|
|
|
|
void MapObject::setTerrain( uint16_t id, LandType::Value land_type ) {
|
|
|
|
terrain_id = id;
|
|
|
|
terrain_type = land_type;
|
|
|
|
}
|
|
|
|
|
|
|
|
void MapObject::setTerrain( uint16_t id, uint8_t land_type ) {
|
|
|
|
setTerrain( id, static_cast< LandType::Value >( land_type ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void MapObject::setCharacter( uint8_t id, LandType::Value land_type ) {
|
|
|
|
character_id = id;
|
|
|
|
character_type = land_type;
|
|
|
|
if(hasModifier()) {
|
|
|
|
modifier_id = 0;
|
|
|
|
modifier_data = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void MapObject::setCharacter( uint8_t id, uint8_t land_type ) {
|
|
|
|
setCharacter( id, static_cast< LandType::Value >( land_type ) );
|
|
|
|
}
|
|
|
|
|
2021-08-08 19:36:47 +00:00
|
|
|
void MapObject::setModifier( uint32_t id, uint8_t data ) {
|
2021-06-07 21:48:28 +00:00
|
|
|
modifier_id = id;
|
|
|
|
modifier_data = data;
|
|
|
|
if(hasCharacter()) {
|
|
|
|
character_id = 0;
|
|
|
|
character_type = LandType::OVERWORLD;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void MapObject::unsetTerrain() {
|
|
|
|
setTerrain(0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
void MapObject::unsetModifier() {
|
|
|
|
if ( hasModifier() ) {
|
|
|
|
setModifier( 0, 0 );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void MapObject::unsetCharacter() {
|
|
|
|
if ( hasCharacter() ) {
|
|
|
|
setCharacter( 0, 0 );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
bool MapObject::hasCharacter() {
|
|
|
|
return character_id != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool MapObject::hasModifier() {
|
|
|
|
return modifier_id != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint16_t MapObject::getTerrainId() {
|
|
|
|
return terrain_id;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint8_t MapObject::getCharacterId() {
|
|
|
|
return character_id;
|
|
|
|
}
|
|
|
|
|
2021-08-08 19:36:47 +00:00
|
|
|
uint32_t MapObject::getModifierId() {
|
2021-06-07 21:48:28 +00:00
|
|
|
return modifier_id;
|
|
|
|
}
|
|
|
|
|
|
|
|
LandType::Value MapObject::getTerrainType() {
|
|
|
|
return terrain_type;
|
|
|
|
}
|
|
|
|
|
|
|
|
LandType::Value MapObject::getCharacterType() {
|
|
|
|
return character_type;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint8_t MapObject::getModifierData() {
|
|
|
|
return modifier_data;
|
|
|
|
}
|