From 3eb7aabe374a91eb4e2c1c659185b49d41cc9e04 Mon Sep 17 00:00:00 2001 From: Gwilym Inzani Date: Tue, 29 Aug 2023 16:17:14 +0100 Subject: [PATCH] Add dungeon puzzler to combo --- examples/combo/Cargo.lock | 304 ++++++++++++++++++++++++- examples/combo/Cargo.toml | 1 + examples/combo/gfx/dungeon_puzzler.png | Bin 0 -> 8022 bytes examples/combo/src/lib.rs | 12 +- 4 files changed, 305 insertions(+), 12 deletions(-) create mode 100644 examples/combo/gfx/dungeon_puzzler.png diff --git a/examples/combo/Cargo.lock b/examples/combo/Cargo.lock index b1a7c38f..3898d9ee 100644 --- a/examples/combo/Cargo.lock +++ b/examples/combo/Cargo.lock @@ -52,7 +52,7 @@ dependencies = [ "image", "proc-macro2", "quote", - "syn", + "syn 2.0.28", ] [[package]] @@ -61,7 +61,7 @@ version = "0.16.0" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.28", ] [[package]] @@ -71,7 +71,47 @@ dependencies = [ "hound", "proc-macro2", "quote", - "syn", + "syn 2.0.28", +] + +[[package]] +name = "agb_tracker" +version = "0.16.0" +dependencies = [ + "agb", + "agb_tracker_interop", + "agb_xm", +] + +[[package]] +name = "agb_tracker_interop" +version = "0.16.0" +dependencies = [ + "agb_fixnum", + "proc-macro2", + "quote", +] + +[[package]] +name = "agb_xm" +version = "0.16.0" +dependencies = [ + "agb_xm_core", + "proc-macro-error", + "proc-macro2", +] + +[[package]] +name = "agb_xm_core" +version = "0.16.0" +dependencies = [ + "agb_fixnum", + "agb_tracker_interop", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.28", + "xmrs", ] [[package]] @@ -133,6 +173,12 @@ dependencies = [ "byteorder", ] +[[package]] +name = "base64" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" + [[package]] name = "bilge" version = "0.2.0" @@ -153,7 +199,16 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 2.0.28", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", ] [[package]] @@ -199,6 +254,7 @@ dependencies = [ "agb", "amplitude", "hyperspace-roll", + "the-dungeon-puzzlers-lament", "the-hat-chooses-the-wizard", "the-purple-night", ] @@ -228,6 +284,12 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "flate2" version = "1.0.26" @@ -244,7 +306,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0793f5137567643cf65ea42043a538804ff0fbf288649e2141442b602d81f9bc" dependencies = [ - "hashbrown", + "hashbrown 0.13.2", "ttf-parser", ] @@ -257,6 +319,17 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "getrandom" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + [[package]] name = "hashbrown" version = "0.13.2" @@ -266,6 +339,12 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "hound" version = "3.5.0" @@ -294,6 +373,16 @@ dependencies = [ "png", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "itertools" version = "0.11.0" @@ -309,6 +398,12 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + [[package]] name = "libflate" version = "0.1.27" @@ -321,12 +416,38 @@ dependencies = [ "take_mut", ] +[[package]] +name = "libflate" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ff4ae71b685bbad2f2f391fe74f6b7659a34871c08b210fdc039e43bee07d18" +dependencies = [ + "adler32", + "crc32fast", + "libflate_lz77", +] + +[[package]] +name = "libflate_lz77" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52d3a8bfc85f250440e4424db7d857e241a3aebbbe301f3eb606ab15c39acbf" +dependencies = [ + "rle-decode-fast", +] + [[package]] name = "log" version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +[[package]] +name = "memchr" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f478948fd84d9f8e86967bf432640e46adfb5a4bd4f14ef7e864ab38220534ae" + [[package]] name = "miniz_oxide" version = "0.3.7" @@ -392,6 +513,27 @@ dependencies = [ "autocfg", ] +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.28", +] + [[package]] name = "once_cell" version = "1.18.0" @@ -410,6 +552,22 @@ dependencies = [ "miniz_oxide 0.3.7", ] +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -419,6 +577,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", + "syn 1.0.109", "version_check", ] @@ -451,6 +610,36 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + [[package]] name = "rle-decode-fast" version = "1.0.3" @@ -478,6 +667,15 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.183" @@ -486,7 +684,7 @@ checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.28", ] [[package]] @@ -500,6 +698,25 @@ dependencies = [ "serde", ] +[[package]] +name = "slotmap" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +dependencies = [ + "version_check", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "unicode-ident", +] + [[package]] name = "syn" version = "2.0.28" @@ -517,6 +734,18 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" +[[package]] +name = "the-dungeon-puzzlers-lament" +version = "0.1.0" +dependencies = [ + "agb", + "agb_tracker", + "proc-macro2", + "quote", + "slotmap", + "tiled 0.11.1", +] + [[package]] name = "the-hat-chooses-the-wizard" version = "0.1.0" @@ -533,7 +762,7 @@ dependencies = [ "agb", "generational-arena", "quote", - "tiled", + "tiled 0.9.4", ] [[package]] @@ -542,11 +771,39 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d2c30aeea9d8159cb461a17dba23ad28980a2a9c217a6784a14e931e4979d6f" dependencies = [ - "base64", - "libflate", + "base64 0.10.1", + "libflate 0.1.27", "xml-rs", ] +[[package]] +name = "tiled" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "181e2402be287d74e951a8e81c8798d0737cc94b1a089237bb3b838be76c6b5b" +dependencies = [ + "base64 0.21.3", + "libflate 1.4.0", + "xml-rs", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + [[package]] name = "ttf-parser" version = "0.15.2" @@ -565,8 +822,37 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "xml-rs" version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1" + +[[package]] +name = "xmrs" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fa1ec7c01e6bb4c716f84a418f4ced5f4a735b2ae6364f4bb5850da61321d16" +dependencies = [ + "bincode", + "libflate 1.4.0", + "num_enum", + "rand", + "serde", + "serde-big-array", +] diff --git a/examples/combo/Cargo.toml b/examples/combo/Cargo.toml index d21d703b..4027ef61 100644 --- a/examples/combo/Cargo.toml +++ b/examples/combo/Cargo.toml @@ -11,6 +11,7 @@ the-purple-night = { path = "../the-purple-night" } the-hat-chooses-the-wizard = { path = "../the-hat-chooses-the-wizard" } hyperspace-roll = { path = "../hyperspace-roll" } amplitude = { path = "../amplitude" } +the-dungeon-puzzlers-lament = { path = "../the-dungeon-puzzlers-lament" } [profile.dev] opt-level = 3 diff --git a/examples/combo/gfx/dungeon_puzzler.png b/examples/combo/gfx/dungeon_puzzler.png new file mode 100644 index 0000000000000000000000000000000000000000..7f820ac4e1bc4c0e890337727c804c241d7868a8 GIT binary patch literal 8022 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 YKmYKbp=f the_hat_chooses_the_wizard::main(gba), Game::ThePurpleNight => the_purple_night::main(gba), Game::HyperspaceRoll => hyperspace_roll::main(gba), + Game::TheDungeonPuzzlersLament => the_dungeon_puzzlers_lament::entry(gba), Game::Amplitude => amplitude::main(gba), } } @@ -39,7 +41,8 @@ impl Game { 0 => Game::TheHatChoosesTheWizard, 1 => Game::ThePurpleNight, 2 => Game::HyperspaceRoll, - 3 => Game::Amplitude, + 3 => Game::TheDungeonPuzzlersLament, + 4 => Game::Amplitude, _ => unreachable!("game out of index in an unreachable manner"), } } @@ -50,7 +53,8 @@ include_background_gfx!( hat => 256 deduplicate "gfx/hat.png", purple => 256 deduplicate "gfx/purple.png", hyperspace => 256 deduplicate "gfx/hyperspace.png", - amplitude => 256 deduplicate "gfx/amplitude.png" + dungeon_puzzler => 256 deduplicate "gfx/dungeon_puzzler.png", + amplitude => 256 deduplicate "gfx/amplitude.png", ); fn get_game(gba: &mut agb::Gba) -> Game { @@ -62,14 +66,16 @@ fn get_game(gba: &mut agb::Gba) -> Game { let hat = TileSet::new(games::hat.tiles, TileFormat::EightBpp); let purple = TileSet::new(games::purple.tiles, TileFormat::EightBpp); let hyperspace = TileSet::new(games::hyperspace.tiles, TileFormat::EightBpp); + let dungeon_puzzler = TileSet::new(games::dungeon_puzzler.tiles, TileFormat::EightBpp); let amplitude = TileSet::new(games::amplitude.tiles, TileFormat::EightBpp); - let tiles = [hat, purple, hyperspace, amplitude]; + let tiles = [hat, purple, hyperspace, dungeon_puzzler, amplitude]; let tile_settings = &[ games::hat.tile_settings, games::purple.tile_settings, games::hyperspace.tile_settings, + games::dungeon_puzzler.tile_settings, games::amplitude.tile_settings, ];