use super::helpers::{buffer_to_hex, hex_to_buffer, option_buffer_to_hex, option_hex_to_buffer};
use super::value::Value;
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct UnknownAction {
pub code: u8,
#[serde(serialize_with = "buffer_to_hex", deserialize_with = "hex_to_buffer")]
pub data: Vec<u8>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct ConstantPool {
pub constant_pool: Vec<String>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct DefineFunction {
pub name: String,
pub parameters: Vec<String>,
#[serde(serialize_with = "buffer_to_hex", deserialize_with = "hex_to_buffer")]
pub body: Vec<u8>,
}
pub mod define_function2 {
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct Parameter {
pub register: u8,
pub name: String,
}
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct DefineFunction2 {
pub name: String,
pub preload_parent: bool,
pub preload_root: bool,
pub suppress_super: bool,
pub preload_super: bool,
pub suppress_arguments: bool,
pub preload_arguments: bool,
pub suppress_this: bool,
pub preload_this: bool,
pub preload_global: bool,
pub register_count: usize,
pub parameters: Vec<define_function2::Parameter>,
#[serde(serialize_with = "buffer_to_hex", deserialize_with = "hex_to_buffer")]
pub body: Vec<u8>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct GetUrl {
pub url: String,
pub target: String,
}
pub mod get_url2 {
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "kebab-case")]
pub enum SendVarsMethod {
None,
Get,
Post,
}
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct GetUrl2 {
pub send_vars_method: get_url2::SendVarsMethod,
pub load_target: bool,
pub load_variables: bool,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct GotoFrame {
pub frame: usize,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct GotoFrame2 {
pub play: bool,
pub scene_bias: usize,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct GoToLabel {
pub label: String,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct If {
pub offset: i16,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct Jump {
pub offset: i16,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct Push {
pub values: Vec<Value>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct SetTarget {
pub target_name: String,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct StoreRegister {
pub register: u8,
}
pub mod r#try {
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(tag = "type", content = "target", rename_all = "kebab-case")]
pub enum CatchTarget {
Register(u8),
Variable(String),
}
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct Try {
#[serde(serialize_with = "buffer_to_hex", deserialize_with = "hex_to_buffer")]
pub r#try: Vec<u8>,
pub catch_target: r#try::CatchTarget,
#[serde(skip_serializing_if = "Option::is_none", serialize_with = "option_buffer_to_hex", deserialize_with = "option_hex_to_buffer")]
pub catch: Option<Vec<u8>>,
#[serde(skip_serializing_if = "Option::is_none", serialize_with = "option_buffer_to_hex", deserialize_with = "option_hex_to_buffer")]
pub finally: Option<Vec<u8>>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct WaitForFrame {
pub frame: usize,
pub skip_count: usize,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct WaitForFrame2 {
pub skip_count: usize,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct StrictMode {
pub mode: u8,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct With {
#[serde(serialize_with = "buffer_to_hex", deserialize_with = "hex_to_buffer")]
pub with: Vec<u8>,
}