1use ::serde::{Deserialize, Serialize};
2
3use super::helpers::{buffer_to_hex, hex_to_buffer};
4use super::value::Value;
5
6#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
7#[serde(rename_all = "snake_case")]
8pub struct UnknownAction {
9 pub code: u8,
10 #[serde(serialize_with = "buffer_to_hex", deserialize_with = "hex_to_buffer")]
11 pub data: Vec<u8>,
12}
13
14#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
16#[serde(rename_all = "snake_case")]
17pub struct ConstantPool {
18 pub constant_pool: Vec<String>,
19}
20
21#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
23#[serde(rename_all = "snake_case")]
24pub struct DefineFunction {
25 pub name: String,
27 pub parameters: Vec<String>,
28 pub body_size: u16,
29}
30
31pub mod define_function2 {
32 use ::serde::{Deserialize, Serialize};
33
34 #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
35 #[serde(rename_all = "snake_case")]
36 pub struct Parameter {
37 pub register: u8,
38 pub name: String,
39 }
40}
41
42#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
44#[serde(rename_all = "snake_case")]
45pub struct DefineFunction2 {
46 pub name: String,
48 pub register_count: u8,
49 pub preload_this: bool,
50 pub suppress_this: bool,
51 pub preload_arguments: bool,
52 pub suppress_arguments: bool,
53 pub preload_super: bool,
54 pub suppress_super: bool,
55 pub preload_root: bool,
56 pub preload_parent: bool,
57 pub preload_global: bool,
58 pub parameters: Vec<define_function2::Parameter>,
59 pub body_size: u16,
60}
61
62#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
64#[serde(rename_all = "snake_case")]
65pub struct GetUrl {
66 pub url: String,
67 pub target: String,
68}
69
70pub mod get_url2 {
71 use ::serde::{Deserialize, Serialize};
72
73 #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
74 #[serde(rename_all = "kebab-case")]
75 pub enum Method {
76 None,
77 Get,
78 Post,
79 }
80}
81
82#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
84#[serde(rename_all = "snake_case")]
85pub struct GetUrl2 {
86 pub method: get_url2::Method,
87 pub load_target: bool,
88 pub load_variables: bool,
89}
90
91#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
93#[serde(rename_all = "snake_case")]
94pub struct GotoFrame {
95 pub frame: usize,
96}
97
98#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
100#[serde(rename_all = "snake_case")]
101pub struct GotoFrame2 {
102 pub play: bool,
103 pub scene_bias: usize,
104}
105
106#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
108#[serde(rename_all = "snake_case")]
109pub struct GoToLabel {
110 pub label: String,
111}
112
113#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
115#[serde(rename_all = "snake_case")]
116pub struct If {
117 pub offset: i16,
118}
119
120#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
122#[serde(rename_all = "snake_case")]
123pub struct Jump {
124 pub offset: i16,
125}
126
127#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
129#[serde(rename_all = "snake_case")]
130pub struct Push {
131 pub values: Vec<Value>,
132}
133
134#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
136#[serde(rename_all = "snake_case")]
137pub struct SetTarget {
138 pub target_name: String,
139}
140
141#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
143#[serde(rename_all = "snake_case")]
144pub struct StoreRegister {
145 pub register: u8,
146}
147
148pub mod r#try {
149 use ::serde::{Deserialize, Serialize};
150
151 #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
152 #[serde(tag = "type", content = "target", rename_all = "kebab-case")]
153 pub enum CatchTarget {
154 Register(u8),
155 Variable(String),
156 }
157}
158
159#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
161#[serde(rename_all = "snake_case")]
162pub struct Try {
163 pub try_size: u16,
164 pub catch_target: r#try::CatchTarget,
165 #[serde(skip_serializing_if = "Option::is_none")]
166 pub catch_size: Option<u16>,
167 #[serde(skip_serializing_if = "Option::is_none")]
168 pub finally_size: Option<u16>,
169}
170
171#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
173#[serde(rename_all = "snake_case")]
174pub struct WaitForFrame {
175 pub frame: usize,
176 pub skip_count: usize,
177}
178
179#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
181#[serde(rename_all = "snake_case")]
182pub struct WaitForFrame2 {
183 pub skip_count: usize,
184}
185
186#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
188#[serde(rename_all = "snake_case")]
189pub struct StrictMode {
190 pub mode: u8,
191}
192
193#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
195#[serde(rename_all = "snake_case")]
196pub struct With {
197 pub with_size: u16,
198}