msg_tool\scripts/
mod.rs

1//! Module for various script formats and builders.
2#[cfg(feature = "artemis")]
3pub mod artemis;
4pub mod base;
5#[cfg(feature = "bgi")]
6pub mod bgi;
7#[cfg(feature = "cat-system")]
8pub mod cat_system;
9#[cfg(feature = "circus")]
10pub mod circus;
11#[cfg(feature = "emote-img")]
12pub mod emote;
13#[cfg(feature = "entis-gls")]
14pub mod entis_gls;
15#[cfg(feature = "escude")]
16pub mod escude;
17#[cfg(feature = "ex-hibit")]
18pub mod ex_hibit;
19#[cfg(feature = "favorite")]
20pub mod favorite;
21#[cfg(feature = "hexen-haus")]
22pub mod hexen_haus;
23#[cfg(feature = "kirikiri")]
24pub mod kirikiri;
25#[cfg(feature = "musica")]
26pub mod musica;
27#[cfg(feature = "silky")]
28pub mod silky;
29#[cfg(feature = "softpal")]
30pub mod softpal;
31#[cfg(feature = "will-plus")]
32pub mod will_plus;
33#[cfg(feature = "yaneurao")]
34pub mod yaneurao;
35
36pub use base::{Script, ScriptBuilder};
37
38lazy_static::lazy_static! {
39    /// A list of all script builders.
40    pub static ref BUILDER: Vec<Box<dyn ScriptBuilder + Sync + Send>> = vec![
41        #[cfg(feature = "circus")]
42        Box::new(circus::script::CircusMesScriptBuilder::new()),
43        #[cfg(feature = "bgi")]
44        Box::new(bgi::script::BGIScriptBuilder::new()),
45        #[cfg(feature = "bgi")]
46        Box::new(bgi::bsi::BGIBsiScriptBuilder::new()),
47        #[cfg(feature = "bgi")]
48        Box::new(bgi::bp::BGIBpScriptBuilder::new()),
49        #[cfg(feature = "bgi-arc")]
50        Box::new(bgi::archive::v1::BgiArchiveBuilder::new()),
51        #[cfg(feature = "bgi-arc")]
52        Box::new(bgi::archive::v2::BgiArchiveBuilder::new()),
53        #[cfg(feature = "bgi-arc")]
54        Box::new(bgi::archive::dsc::DscBuilder::new()),
55        #[cfg(feature = "bgi-img")]
56        Box::new(bgi::image::img::BgiImageBuilder::new()),
57        #[cfg(feature = "bgi-img")]
58        Box::new(bgi::image::cbg::BgiCBGBuilder::new()),
59        #[cfg(feature = "escude-arc")]
60        Box::new(escude::archive::EscudeBinArchiveBuilder::new()),
61        #[cfg(feature = "escude")]
62        Box::new(escude::script::EscudeBinScriptBuilder::new()),
63        #[cfg(feature = "escude")]
64        Box::new(escude::list::EscudeBinListBuilder::new()),
65        #[cfg(feature = "yaneurao-itufuru")]
66        Box::new(yaneurao::itufuru::script::ItufuruScriptBuilder::new()),
67        #[cfg(feature = "yaneurao-itufuru")]
68        Box::new(yaneurao::itufuru::archive::ItufuruArchiveBuilder::new()),
69        #[cfg(feature = "cat-system-arc")]
70        Box::new(cat_system::archive::int::CSIntArcBuilder::new()),
71        #[cfg(feature = "cat-system-img")]
72        Box::new(cat_system::image::hg3::Hg3ImageBuilder::new()),
73        #[cfg(feature = "kirikiri")]
74        Box::new(kirikiri::scn::ScnScriptBuilder::new()),
75        #[cfg(feature = "kirikiri")]
76        Box::new(kirikiri::simple_crypt::SimpleCryptBuilder::new()),
77        #[cfg(feature = "kirikiri")]
78        Box::new(kirikiri::ks::KsBuilder::new()),
79        #[cfg(feature = "kirikiri-img")]
80        Box::new(kirikiri::image::tlg::TlgImageBuilder::new()),
81        #[cfg(feature = "emote-img")]
82        Box::new(emote::pimg::PImgBuilder::new()),
83        #[cfg(feature = "emote-img")]
84        Box::new(emote::dref::DrefBuilder::new()),
85        #[cfg(feature = "kirikiri")]
86        Box::new(kirikiri::mdf::MdfBuilder::new()),
87        #[cfg(feature = "will-plus")]
88        Box::new(will_plus::ws2::Ws2ScriptBuilder::new()),
89        #[cfg(feature = "cat-system")]
90        Box::new(cat_system::cst::CstScriptBuilder::new()),
91        #[cfg(feature = "artemis-arc")]
92        Box::new(artemis::archive::pfs::ArtemisArcBuilder::new()),
93        #[cfg(feature = "artemis")]
94        Box::new(artemis::ast::AstScriptBuilder::new()),
95        #[cfg(feature = "artemis")]
96        Box::new(artemis::asb::ArtemisAsbBuilder::new()),
97        #[cfg(feature = "hexen-haus")]
98        Box::new(hexen_haus::bin::BinScriptBuilder::new()),
99        #[cfg(feature = "circus-img")]
100        Box::new(circus::image::crx::CrxImageBuilder::new()),
101        #[cfg(feature = "cat-system")]
102        Box::new(cat_system::cstl::CstlScriptBuilder::new()),
103        #[cfg(feature = "circus-arc")]
104        Box::new(circus::archive::pck::PckArchiveBuilder::new()),
105        #[cfg(feature = "circus-audio")]
106        Box::new(circus::audio::pcm::PcmBuilder::new()),
107        #[cfg(feature = "ex-hibit")]
108        Box::new(ex_hibit::rld::RldScriptBuilder::new()),
109        #[cfg(feature = "circus-arc")]
110        Box::new(circus::archive::dat::DatArchiveBuilder::new()),
111        #[cfg(feature = "circus-arc")]
112        Box::new(circus::archive::crm::CrmArchiveBuilder::new()),
113        #[cfg(feature = "circus-img")]
114        Box::new(circus::image::crxd::CrxdImageBuilder::new()),
115        #[cfg(feature = "bgi-audio")]
116        Box::new(bgi::audio::audio::BgiAudioBuilder::new()),
117        #[cfg(feature = "entis-gls")]
118        Box::new(entis_gls::srcxml::SrcXmlScriptBuilder::new()),
119        #[cfg(feature = "softpal-arc")]
120        Box::new(softpal::arc::pac::SoftpalPacBuilder::new()),
121        #[cfg(feature = "softpal-arc")]
122        Box::new(softpal::arc::pac::SoftpalPacBuilder::new_amuse()),
123        #[cfg(feature = "softpal")]
124        Box::new(softpal::scr::SoftpalScriptBuilder::new()),
125        #[cfg(feature = "artemis-panmimisoft")]
126        Box::new(artemis::panmimisoft::txt::TxtBuilder::new()),
127        #[cfg(feature = "kirikiri")]
128        Box::new(kirikiri::tjs_ns0::TjsNs0Builder::new()),
129        #[cfg(feature = "kirikiri")]
130        Box::new(kirikiri::tjs2::Tjs2Builder::new()),
131        #[cfg(feature = "silky")]
132        Box::new(silky::mes::MesBuilder::new()),
133        #[cfg(feature = "favorite")]
134        Box::new(favorite::hcb::HcbScriptBuilder::new()),
135        #[cfg(feature = "silky")]
136        Box::new(silky::map::MapBuilder::new()),
137        #[cfg(feature = "emote-img")]
138        Box::new(emote::psb::PsbBuilder::new()),
139        #[cfg(feature = "softpal-img")]
140        Box::new(softpal::img::pgd::ge::PgdGeBuilder::new()),
141        #[cfg(feature = "softpal-img")]
142        Box::new(softpal::img::pgd::pgd3::Pgd3Builder::new()),
143        #[cfg(feature = "ex-hibit-arc")]
144        Box::new(ex_hibit::arc::grp::ExHibitGrpArchiveBuilder::new()),
145        #[cfg(feature = "hexen-haus-arc")]
146        Box::new(hexen_haus::archive::arcc::HexenHausArccArchiveBuilder::new()),
147        #[cfg(feature = "artemis-arc")]
148        Box::new(artemis::archive::pf2::ArtemisPf2Builder::new()),
149        #[cfg(feature = "hexen-haus-arc")]
150        Box::new(hexen_haus::archive::wag::HexenHausWagArchiveBuilder::new()),
151        #[cfg(feature = "hexen-haus-img")]
152        Box::new(hexen_haus::img::png::PngImageBuilder::new()),
153        #[cfg(feature = "hexen-haus-arc")]
154        Box::new(hexen_haus::archive::odio::HexenHausOdioArchiveBuilder::new()),
155        #[cfg(feature = "will-plus-img")]
156        Box::new(will_plus::img::wip::WillPlusWipImageBuilder::new()),
157        #[cfg(feature = "artemis")]
158        Box::new(artemis::txt::ArtemisTxtBuilder::new()),
159        #[cfg(feature = "kirikiri-arc")]
160        Box::new(kirikiri::archive::xp3::Xp3ArchiveBuilder::new()),
161        #[cfg(feature = "musica")]
162        Box::new(musica::sc::MusicaBuilder::new()),
163        #[cfg(feature = "musica-arc")]
164        Box::new(musica::archive::paz::PazArcBuilder::new()),
165    ];
166    /// A list of all script extensions.
167    pub static ref ALL_EXTS: Vec<String> =
168        BUILDER.iter().flat_map(|b| b.extensions()).map(|s| s.to_string()).collect();
169    /// A list of all script extensions that are archives.
170    pub static ref ARCHIVE_EXTS: Vec<String> =
171        BUILDER.iter().filter(|b| b.is_archive()).flat_map(|b| b.extensions()).map(|s| s.to_string()).collect();
172}