summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/asm/megalovania_base.asm27
-rw-r--r--assets/asm/megalovania_melody.asm29
-rw-r--r--assets/bmp/atlas.bmp (renamed from assets/atlas.bmp)bin16522 -> 16522 bytes
-rw-r--r--assets/bmp/error.bmp (renamed from assets/error.bmp)bin650 -> 650 bytes
-rw-r--r--assets/bmp/font.bmp (renamed from assets/font.bmp)bin3218 -> 3218 bytes
-rw-r--r--assets/bmp/player.bmp (renamed from assets/player.bmp)bin4234 -> 4234 bytes
-rw-r--r--assets/bmp/zombie.bmp (renamed from assets/zombie.bmp)bin8330 -> 8330 bytes
-rw-r--r--assets/speak.oggbin5916 -> 0 bytes
-rw-r--r--assets/wav/noise_0.wav (renamed from assets/noise_0.wav)bin88244 -> 88244 bytes
-rw-r--r--assets/wav/noise_1.wav (renamed from assets/noise_1.wav)bin88244 -> 88244 bytes
-rw-r--r--assets/wav/pulse_12.wav (renamed from assets/pulse_12.wav)bin244 -> 244 bytes
-rw-r--r--assets/wav/pulse_25.wav (renamed from assets/pulse_25.wav)bin244 -> 244 bytes
-rw-r--r--assets/wav/pulse_50.wav (renamed from assets/pulse_50.wav)bin244 -> 244 bytes
-rw-r--r--assets/wav/pulse_75.wav (renamed from assets/pulse_75.wav)bin244 -> 244 bytes
-rw-r--r--assets/wav/triangle.wav (renamed from assets/triangle.wav)bin244 -> 244 bytes
-rw-r--r--graphics/src/audio/channel.rs14
-rw-r--r--graphics/src/audio/data.rs82
-rw-r--r--graphics/src/audio/mod.rs2
-rw-r--r--graphics/src/render.rs10
19 files changed, 92 insertions, 72 deletions
diff --git a/assets/asm/megalovania_base.asm b/assets/asm/megalovania_base.asm
new file mode 100644
index 0000000..11fdf1f
--- /dev/null
+++ b/assets/asm/megalovania_base.asm
@@ -0,0 +1,27 @@
+; megalovania
+; track: base
+
+; wait for melody
+P4
+-128
+
+; setup
+b v100 d50
+
+%define notes
+b p$1 v100 -- b v0 --
+b p$1 v100 -- b v0 --
+b p$1 v100 - b v0 -
+b p$1 v100 - b v0 - --
+b p$2 v100 - b v0 - --
+b p$2 v100 - b v0 - --
+b p$2 v100 - b v0 -
+b p$2 v100 - b v0 -
+b p$2 v100 - b v0 -
+b p$2 v100 -- b v0 --
+%end
+
+notes d2 d2
+notes c2 c2
+notes b2 b2
+notes b2 c2
diff --git a/assets/asm/megalovania_melody.asm b/assets/asm/megalovania_melody.asm
new file mode 100644
index 0000000..237f301
--- /dev/null
+++ b/assets/asm/megalovania_melody.asm
@@ -0,0 +1,29 @@
+; megalovania
+; track: melody
+
+; setup
+a v100 d50
+P4
+
+%define notes
+a p$1 v100 - a v0 -
+a p$1 v100 - a v0 -
+a pd4 v100 -- a v0 --
+a pa4 v100 -- a v0 -- --
+a pg3# v100 - a v0 - --
+a pg3 v100 - a v0 - --
+a pf3 v100 --- a v0 -
+a pd3 v100 - a v0 -
+a pf3 v100 - a v0 -
+a pg3 v100 - a v0 -
+%end
+
+notes d3
+notes c3
+notes b3
+notes b3b
+
+notes d3
+notes c3
+notes b3
+notes b3b
diff --git a/assets/atlas.bmp b/assets/bmp/atlas.bmp
index 3f7c4eb..3f7c4eb 100644
--- a/assets/atlas.bmp
+++ b/assets/bmp/atlas.bmp
Binary files differ
diff --git a/assets/error.bmp b/assets/bmp/error.bmp
index d857ade..d857ade 100644
--- a/assets/error.bmp
+++ b/assets/bmp/error.bmp
Binary files differ
diff --git a/assets/font.bmp b/assets/bmp/font.bmp
index eb8e838..eb8e838 100644
--- a/assets/font.bmp
+++ b/assets/bmp/font.bmp
Binary files differ
diff --git a/assets/player.bmp b/assets/bmp/player.bmp
index b6d39db..b6d39db 100644
--- a/assets/player.bmp
+++ b/assets/bmp/player.bmp
Binary files differ
diff --git a/assets/zombie.bmp b/assets/bmp/zombie.bmp
index effca5e..effca5e 100644
--- a/assets/zombie.bmp
+++ b/assets/bmp/zombie.bmp
Binary files differ
diff --git a/assets/speak.ogg b/assets/speak.ogg
deleted file mode 100644
index dc3ef20..0000000
--- a/assets/speak.ogg
+++ /dev/null
Binary files differ
diff --git a/assets/noise_0.wav b/assets/wav/noise_0.wav
index dc1d2db..dc1d2db 100644
--- a/assets/noise_0.wav
+++ b/assets/wav/noise_0.wav
Binary files differ
diff --git a/assets/noise_1.wav b/assets/wav/noise_1.wav
index c20882f..c20882f 100644
--- a/assets/noise_1.wav
+++ b/assets/wav/noise_1.wav
Binary files differ
diff --git a/assets/pulse_12.wav b/assets/wav/pulse_12.wav
index 0127fbb..0127fbb 100644
--- a/assets/pulse_12.wav
+++ b/assets/wav/pulse_12.wav
Binary files differ
diff --git a/assets/pulse_25.wav b/assets/wav/pulse_25.wav
index 0bc51c7..0bc51c7 100644
--- a/assets/pulse_25.wav
+++ b/assets/wav/pulse_25.wav
Binary files differ
diff --git a/assets/pulse_50.wav b/assets/wav/pulse_50.wav
index 83e4676..83e4676 100644
--- a/assets/pulse_50.wav
+++ b/assets/wav/pulse_50.wav
Binary files differ
diff --git a/assets/pulse_75.wav b/assets/wav/pulse_75.wav
index 11f7364..11f7364 100644
--- a/assets/pulse_75.wav
+++ b/assets/wav/pulse_75.wav
Binary files differ
diff --git a/assets/triangle.wav b/assets/wav/triangle.wav
index 0c9bb9e..0c9bb9e 100644
--- a/assets/triangle.wav
+++ b/assets/wav/triangle.wav
Binary files differ
diff --git a/graphics/src/audio/channel.rs b/graphics/src/audio/channel.rs
index be12f75..a1ad144 100644
--- a/graphics/src/audio/channel.rs
+++ b/graphics/src/audio/channel.rs
@@ -43,10 +43,10 @@ pub struct PulseChannel {
impl PulseChannel {
pub fn load(handle: &'static RaylibAudio) -> crate::Result<Self> {
Ok(Self {
- pulse_12: load_audio!(handle, "assets/pulse_12.wav"),
- pulse_25: load_audio!(handle, "assets/pulse_25.wav"),
- pulse_50: load_audio!(handle, "assets/pulse_50.wav"),
- pulse_75: load_audio!(handle, "assets/pulse_50.wav"),
+ pulse_12: load_audio!(handle, "assets/wav/pulse_12.wav"),
+ pulse_25: load_audio!(handle, "assets/wav/pulse_25.wav"),
+ pulse_50: load_audio!(handle, "assets/wav/pulse_50.wav"),
+ pulse_75: load_audio!(handle, "assets/wav/pulse_50.wav"),
duty: DutyCycle::Percent50,
})
}
@@ -112,7 +112,7 @@ pub struct TriangleChannel {
impl TriangleChannel {
pub fn load(handle: &'static RaylibAudio) -> crate::Result<Self> {
Ok(Self {
- inner: load_audio!(handle, "assets/triangle.wav"),
+ inner: load_audio!(handle, "assets/wav/triangle.wav"),
})
}
}
@@ -150,8 +150,8 @@ pub struct NoiseChannel {
impl NoiseChannel {
pub fn load(handle: &'static RaylibAudio) -> crate::Result<Self> {
Ok(Self {
- noise_0: load_audio!(handle, "assets/noise_0.wav"),
- noise_1: load_audio!(handle, "assets/noise_1.wav"),
+ noise_0: load_audio!(handle, "assets/wav/noise_0.wav"),
+ noise_1: load_audio!(handle, "assets/wav/noise_1.wav"),
mode: false,
})
}
diff --git a/graphics/src/audio/data.rs b/graphics/src/audio/data.rs
index 8ed95bb..9c68523 100644
--- a/graphics/src/audio/data.rs
+++ b/graphics/src/audio/data.rs
@@ -1,66 +1,30 @@
-use crate::audio::{parse, program::Program};
+use crate::audio::program::Program;
+use std::fs;
-const MELODY: &str = r#"
-; setup
-a v100 d50
-P4
-
-%define notes
-a p$1 v100 - a v0 -
-a p$1 v100 - a v0 -
-a pd4 v100 -- a v0 --
-a pa4 v100 -- a v0 -- --
-a pg3# v100 - a v0 - --
-a pg3 v100 - a v0 - --
-a pf3 v100 --- a v0 -
-a pd3 v100 - a v0 -
-a pf3 v100 - a v0 -
-a pg3 v100 - a v0 -
-%end
-
-notes d3
-notes c3
-notes b3
-notes b3b
-
-notes d3
-notes c3
-notes b3
-notes b3b
-"#;
-
-const BASE: &str = r#"
--128
-
-; setup
-b v100 d50
-
-%define notes
-b p$1 v100 -- b v0 --
-b p$1 v100 -- b v0 --
-b p$1 v100 - b v0 -
-b p$1 v100 - b v0 - --
-b p$2 v100 - b v0 - --
-b p$2 v100 - b v0 - --
-b p$2 v100 - b v0 -
-b p$2 v100 - b v0 -
-b p$2 v100 -- b v0 --
-%end
-
-notes d2 d2
-notes c2 c2
-notes b2 b2
-notes b2 c2
-"#;
+macro_rules! load_asm {
+ ($path:tt) => {{
+ if cfg!(any(feature = "static", target_arch = "wasm32")) {
+ let src = include_str!(concat!("../../../", $path));
+ Program::parse(src, true)?
+ } else {
+ let src = fs::read_to_string($path)?;
+ Program::parse(&src, true)?
+ }
+ }};
+ ($first:tt, $($arg:tt)*) => {
+ load_asm!($first)$(.merge(load_asm!($arg)))*
+ };
+}
pub struct Data {
- pub test: Program,
+ pub megalovania: Program,
}
impl Data {
- pub fn load() -> parse::Result<Self> {
- let melody = Program::parse(MELODY, true)?;
- let base = Program::parse(BASE, true)?;
- let test = melody.merge(base);
- Ok(Self { test })
+ pub fn load() -> crate::Result<Self> {
+ let megalovania = load_asm!(
+ "assets/asm/megalovania_melody.asm",
+ "assets/asm/megalovania_base.asm"
+ );
+ Ok(Self { megalovania })
}
}
diff --git a/graphics/src/audio/mod.rs b/graphics/src/audio/mod.rs
index f0de9d4..2b85a0f 100644
--- a/graphics/src/audio/mod.rs
+++ b/graphics/src/audio/mod.rs
@@ -80,7 +80,7 @@ impl Audio {
pub fn update(&mut self) {
if self.last.elapsed() >= TIME_SLICE {
- self.data.test.exec(&mut self.channels);
+ self.data.megalovania.exec(&mut self.channels);
self.last = Instant::now();
}
diff --git a/graphics/src/render.rs b/graphics/src/render.rs
index fe8ff92..7bae4e0 100644
--- a/graphics/src/render.rs
+++ b/graphics/src/render.rs
@@ -152,11 +152,11 @@ struct Textures {
}
impl Textures {
fn new(handle: &mut RaylibHandle, thread: &RaylibThread) -> crate::Result<Self> {
- let atlas = load_texture!(handle, thread, "assets/atlas.bmp");
- let player = load_texture!(handle, thread, "assets/player.bmp");
- let zombie = load_texture!(handle, thread, "assets/zombie.bmp");
- let error = load_texture!(handle, thread, "assets/error.bmp");
- let font = load_texture!(handle, thread, "assets/font.bmp");
+ let atlas = load_texture!(handle, thread, "assets/bmp/atlas.bmp");
+ let player = load_texture!(handle, thread, "assets/bmp/player.bmp");
+ let zombie = load_texture!(handle, thread, "assets/bmp/zombie.bmp");
+ let error = load_texture!(handle, thread, "assets/bmp/error.bmp");
+ let font = load_texture!(handle, thread, "assets/bmp/font.bmp");
Ok(Self {
atlas,