Porytiles
Loading...
Searching...
No Matches
porytiles::MetatileAttributeScan Struct Reference

The raw facts a project exposes about its metatile attribute layout. More...

#include <metatile_attribute_inference.hpp>

Collaboration diagram for porytiles::MetatileAttributeScan:
[legend]

Public Attributes

std::vector< InferenceEnumMemberenum_members
 all enum members from the fieldmap header, in declaration order
 
std::vector< InferenceDefinedefines
 all integer defines from the fieldmap header
 
std::unordered_set< std::string > ambiguous_defines
 mask defines with conflicting values in an undecidable conditional branch
 
std::vector< InferenceArrayEntrymasks_array
 entries of the exact-name sMetatileAttrMasks table (may be empty)
 
std::vector< InferenceArrayEntryshifts_array
 entries of the exact-name sMetatileAttrShifts table (may be empty)
 
BehaviorsHeaderScan behaviors_header
 the behavior constants header, or why there is none
 
AttributeDeclarationScan declaration
 struct Tileset's metatileAttributes declaration, or why there is none
 
std::string header_source
 path of the fieldmap header the defines, enum members, and struct came from
 
std::string masks_table_source
 path of the file the mask table came from, empty when no table was read
 
std::vector< std::string > unreadable_sources
 files that exist but could not be read, so whatever they declare is missing above
 

Detailed Description

The raw facts a project exposes about its metatile attribute layout.

This is the pure, I/O-free input to infer_metatile_attribute_candidates. The infra-layer scanner gathers these facts from the project's headers and source, then hands them to inference. Inference never reads files; every decision follows from this struct.

Definition at line 112 of file metatile_attribute_inference.hpp.

Member Data Documentation

◆ ambiguous_defines

std::unordered_set<std::string> porytiles::MetatileAttributeScan::ambiguous_defines

mask defines with conflicting values in an undecidable conditional branch

Definition at line 116 of file metatile_attribute_inference.hpp.

◆ behaviors_header

BehaviorsHeaderScan porytiles::MetatileAttributeScan::behaviors_header

the behavior constants header, or why there is none

Definition at line 120 of file metatile_attribute_inference.hpp.

◆ declaration

AttributeDeclarationScan porytiles::MetatileAttributeScan::declaration

struct Tileset's metatileAttributes declaration, or why there is none

Definition at line 121 of file metatile_attribute_inference.hpp.

◆ defines

std::vector<InferenceDefine> porytiles::MetatileAttributeScan::defines

all integer defines from the fieldmap header

Definition at line 114 of file metatile_attribute_inference.hpp.

◆ enum_members

std::vector<InferenceEnumMember> porytiles::MetatileAttributeScan::enum_members

all enum members from the fieldmap header, in declaration order

Definition at line 113 of file metatile_attribute_inference.hpp.

◆ header_source

std::string porytiles::MetatileAttributeScan::header_source

path of the fieldmap header the defines, enum members, and struct came from

Definition at line 122 of file metatile_attribute_inference.hpp.

◆ masks_array

std::vector<InferenceArrayEntry> porytiles::MetatileAttributeScan::masks_array

entries of the exact-name sMetatileAttrMasks table (may be empty)

Definition at line 117 of file metatile_attribute_inference.hpp.

◆ masks_table_source

std::string porytiles::MetatileAttributeScan::masks_table_source

path of the file the mask table came from, empty when no table was read

Definition at line 123 of file metatile_attribute_inference.hpp.

◆ shifts_array

std::vector<InferenceArrayEntry> porytiles::MetatileAttributeScan::shifts_array

entries of the exact-name sMetatileAttrShifts table (may be empty)

Definition at line 119 of file metatile_attribute_inference.hpp.

◆ unreadable_sources

std::vector<std::string> porytiles::MetatileAttributeScan::unreadable_sources

files that exist but could not be read, so whatever they declare is missing above

Definition at line 125 of file metatile_attribute_inference.hpp.


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