truegrf 2.1.0

TrueGRF YAML to GRF compiler
Documentation
use super::{ActionTrait, Action, Feature, Output, vec_list, write as write_action};

pub enum Action3 {
    Industry { id: u8, set_id: u8 },
    IndustryTile { id: u8, set_id: u8 },
    Cargo { id: u8, set_id: u8 },
}

fn write(output: &mut Output, feature: Feature, id: u8, set_id: u16) {
    write_action(output, Action::Action3, feature, &vec_list!(
        [0x01],
        [id],
        [0x00],
        set_id.to_le_bytes()
    ));
}

impl ActionTrait for Action3 {
    fn write(&self, output: &mut Output) {
        match self {
            Action3::Industry { id, set_id } => {
                write(output, Feature::Industries, *id, *set_id as u16);
            },
            Action3::IndustryTile { id, set_id } => {
                write(output, Feature::IndustryTiles, *id, *set_id as u16);
            }
            Action3::Cargo { id, set_id } => {
                write(output, Feature::Cargoes, *id, *set_id as u16);
            }
        }
    }
}