Porytiles
Loading...
Searching...
No Matches
porytiles::MetatileAttribute Class Reference

Represents the attributes of a single metatile. More...

#include <metatile_attribute.hpp>

Public Member Functions

 MetatileAttribute ()=default
 
 MetatileAttribute (LayerType layer_type, std::uint16_t behavior)
 Constructs an Emerald-format metatile attribute.
 
 MetatileAttribute (LayerType layer_type, std::uint16_t behavior, std::uint8_t terrain, std::uint8_t encounter_type, std::uint8_t attribute_2, std::uint8_t attribute_3, std::uint8_t attribute_5, bool attribute_7)
 Constructs a FireRed-format metatile attribute with all fields.
 
LayerType layer_type () const
 
void layer_type (LayerType layer_type)
 
std::uint16_t behavior () const
 
void behavior (std::uint16_t behavior)
 
std::uint8_t terrain () const
 
void terrain (std::uint8_t terrain)
 
std::uint8_t encounter_type () const
 
void encounter_type (std::uint8_t encounter_type)
 
std::uint8_t attribute_2 () const
 
void attribute_2 (std::uint8_t attribute_2)
 
std::uint8_t attribute_3 () const
 
void attribute_3 (std::uint8_t attribute_3)
 
std::uint8_t attribute_5 () const
 
void attribute_5 (std::uint8_t attribute_5)
 
bool attribute_7 () const
 
void attribute_7 (bool attribute_7)
 

Detailed Description

Represents the attributes of a single metatile.

Emerald uses a 2-byte format encoding behavior (bits 0-7) and layer type (bits 12-15). FireRed uses a 4-byte format encoding behavior (bits 0-8), terrain (bits 9-13), attribute_2 (bits 14-17), attribute_3 (bits 18-23), encounter_type (bits 24-26), attribute_5 (bits 27-28), layer_type (bits 29-30), and attribute_7 (bit 31).

The FireRed-specific fields default to zero, so existing Emerald code is unaffected.

Definition at line 30 of file metatile_attribute.hpp.

Constructor & Destructor Documentation

◆ MetatileAttribute() [1/3]

porytiles::MetatileAttribute::MetatileAttribute ( )
default

◆ MetatileAttribute() [2/3]

porytiles::MetatileAttribute::MetatileAttribute ( LayerType  layer_type,
std::uint16_t  behavior 
)
inline

Constructs an Emerald-format metatile attribute.

FireRed-specific fields are initialized to zero.

Definition at line 40 of file metatile_attribute.hpp.

◆ MetatileAttribute() [3/3]

porytiles::MetatileAttribute::MetatileAttribute ( LayerType  layer_type,
std::uint16_t  behavior,
std::uint8_t  terrain,
std::uint8_t  encounter_type,
std::uint8_t  attribute_2,
std::uint8_t  attribute_3,
std::uint8_t  attribute_5,
bool  attribute_7 
)
inline

Constructs a FireRed-format metatile attribute with all fields.

Definition at line 45 of file metatile_attribute.hpp.

Member Function Documentation

◆ attribute_2() [1/2]

std::uint8_t porytiles::MetatileAttribute::attribute_2 ( ) const
inline

Definition at line 99 of file metatile_attribute.hpp.

◆ attribute_2() [2/2]

void porytiles::MetatileAttribute::attribute_2 ( std::uint8_t  attribute_2)
inline

Definition at line 104 of file metatile_attribute.hpp.

◆ attribute_3() [1/2]

std::uint8_t porytiles::MetatileAttribute::attribute_3 ( ) const
inline

Definition at line 109 of file metatile_attribute.hpp.

◆ attribute_3() [2/2]

void porytiles::MetatileAttribute::attribute_3 ( std::uint8_t  attribute_3)
inline

Definition at line 114 of file metatile_attribute.hpp.

◆ attribute_5() [1/2]

std::uint8_t porytiles::MetatileAttribute::attribute_5 ( ) const
inline

Definition at line 119 of file metatile_attribute.hpp.

◆ attribute_5() [2/2]

void porytiles::MetatileAttribute::attribute_5 ( std::uint8_t  attribute_5)
inline

Definition at line 124 of file metatile_attribute.hpp.

◆ attribute_7() [1/2]

bool porytiles::MetatileAttribute::attribute_7 ( ) const
inline

Definition at line 129 of file metatile_attribute.hpp.

◆ attribute_7() [2/2]

void porytiles::MetatileAttribute::attribute_7 ( bool  attribute_7)
inline

Definition at line 134 of file metatile_attribute.hpp.

◆ behavior() [1/2]

std::uint16_t porytiles::MetatileAttribute::behavior ( ) const
inline

Definition at line 69 of file metatile_attribute.hpp.

◆ behavior() [2/2]

void porytiles::MetatileAttribute::behavior ( std::uint16_t  behavior)
inline

Definition at line 74 of file metatile_attribute.hpp.

◆ encounter_type() [1/2]

std::uint8_t porytiles::MetatileAttribute::encounter_type ( ) const
inline

Definition at line 89 of file metatile_attribute.hpp.

◆ encounter_type() [2/2]

void porytiles::MetatileAttribute::encounter_type ( std::uint8_t  encounter_type)
inline

Definition at line 94 of file metatile_attribute.hpp.

◆ layer_type() [1/2]

LayerType porytiles::MetatileAttribute::layer_type ( ) const
inline

Definition at line 59 of file metatile_attribute.hpp.

◆ layer_type() [2/2]

void porytiles::MetatileAttribute::layer_type ( LayerType  layer_type)
inline

Definition at line 64 of file metatile_attribute.hpp.

◆ terrain() [1/2]

std::uint8_t porytiles::MetatileAttribute::terrain ( ) const
inline

Definition at line 79 of file metatile_attribute.hpp.

◆ terrain() [2/2]

void porytiles::MetatileAttribute::terrain ( std::uint8_t  terrain)
inline

Definition at line 84 of file metatile_attribute.hpp.


The documentation for this class was generated from the following file: