diff --git a/cover/tree.data b/cover/tree.data new file mode 100644 index 0000000..b79a320 Binary files /dev/null and b/cover/tree.data differ diff --git a/cover/tree.data.h b/cover/tree.data.h new file mode 100644 index 0000000..021b898 --- /dev/null +++ b/cover/tree.data.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_cover_tree_data_start __asm("_binary_cover_tree_data_start"); +extern uint32_t _binary_cover_tree_data_end __asm("_binary_cover_tree_data_end"); +extern uint32_t _binary_cover_tree_data_size __asm("_binary_cover_tree_data_size"); + +#ifdef __cplusplus +} +#endif diff --git a/cover/tree.png b/cover/tree.png new file mode 100644 index 0000000..5982d37 Binary files /dev/null and b/cover/tree.png differ diff --git a/src/playlist.cpp b/src/playlist.cpp index 0a6def1..a3bdc8b 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -33,7 +33,7 @@ namespace playlist { .artist = "Cai", .title = "SummerDreamsDemov4", .start = (int)&_binary_xm_SummerDreamsDemoTrackv4_xm_start, - .cover_ix = scene::tracker::cover::mountain, + .cover_ix = scene::tracker::cover::tree, }, }; diff --git a/src/scene/tracker/cover.cpp b/src/scene/tracker/cover.cpp index eda80c5..d3f0159 100644 --- a/src/scene/tracker/cover.cpp +++ b/src/scene/tracker/cover.cpp @@ -82,6 +82,16 @@ namespace scene::tracker::cover { .height = 72, .scale = 6, }, + [tree] = { + .texture_offset = texture::offset::tree, + .texture_size = tsp_instruction_word::texture_u_size::from_int(128) + | tsp_instruction_word::texture_v_size::from_int(128), + .texture_width = 1.0f / 128.0f, + .texture_height = 1.0f / 128.0f, + .width = 72, + .height = 72, + .scale = 6, + }, }; constexpr inline vec3 transform_position_fs(const cover& cover, diff --git a/src/scene/tracker/cover.hpp b/src/scene/tracker/cover.hpp index 61e148a..0274f85 100644 --- a/src/scene/tracker/cover.hpp +++ b/src/scene/tracker/cover.hpp @@ -12,6 +12,7 @@ namespace scene::tracker::cover { mountain, mossycottage, clocks, + tree, }; void draw(ta_multiwriter& multi, float x, float y, bool zoom); diff --git a/src/scene/tracker/notes.cpp b/src/scene/tracker/notes.cpp index c0d9708..5e4c057 100644 --- a/src/scene/tracker/notes.cpp +++ b/src/scene/tracker/notes.cpp @@ -271,7 +271,7 @@ void draw_middle_line(ta_parameter_writer& writer, float x, float y) { using namespace interpreter; - int middle_width = line_column_width * (state.xm.number_of_channels) + (2 * glyph::hori_advance) + 2 + 3; + int middle_width = line_column_width * (state.xm.number_of_channels) + (3 * glyph::hori_advance) + 2 + 3; int middle_height = glyph::vert_advance - 1; y += 3; diff --git a/src/texture.cpp b/src/texture.cpp index 0e886e5..90f690a 100644 --- a/src/texture.cpp +++ b/src/texture.cpp @@ -21,6 +21,7 @@ #include "cover/redtree.data.h" #include "cover/silvertrees.data.h" #include "cover/thebeach.data.h" +#include "cover/tree.data.h" #include "printf/printf.h" @@ -82,6 +83,11 @@ namespace texture { .size = reinterpret_cast(&_binary_cover_thebeach_data_size), .offset = offset::thebeach, }, + { + .start = reinterpret_cast(&_binary_cover_tree_data_start), + .size = reinterpret_cast(&_binary_cover_tree_data_size), + .offset = offset::tree, + }, }; const int textures_length = (sizeof (textures)) / (sizeof (textures[0])); diff --git a/src/texture.hpp b/src/texture.hpp index 5030430..2958650 100644 --- a/src/texture.hpp +++ b/src/texture.hpp @@ -19,6 +19,7 @@ namespace texture { constexpr int redtree = mountain + 32768; constexpr int silvertrees = redtree + 32768; constexpr int thebeach = silvertrees + 32768; + constexpr int tree = thebeach + 32768; }; extern struct texture textures[]; diff --git a/xm_player.mk b/xm_player.mk index 79093f6..46565b1 100644 --- a/xm_player.mk +++ b/xm_player.mk @@ -16,7 +16,8 @@ TEXTURE_OBJ = \ cover/mountain.data.o \ cover/redtree.data.o \ cover/silvertrees.data.o \ - cover/thebeach.data.o + cover/thebeach.data.o \ + cover/tree.data.o PCM_OBJ = \ pcm/start3.adpcm.o \