Compare commits
No commits in common. "2c76479f1eb3d7d70bc325f51a4bd5c4d952daf5" and "0be0ff963e38fb2e50c094b5ed3d558c5c32bb24" have entirely different histories.
2c76479f1e
...
0be0ff963e
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -13,7 +13,6 @@
|
||||
namespace
|
||||
{
|
||||
constexpr int LANE_COUNT = 12;
|
||||
constexpr int OCTAVE_COUNT = 2;
|
||||
constexpr int MAX_GAMEPADS = 4;
|
||||
constexpr int MAX_INSTRUMENT_TYPES = MAX_GAMEPADS;
|
||||
constexpr float RECEPTOR_HEIGHT = 150.0f;
|
||||
@ -63,63 +62,36 @@ const Color INSTRUMENT_COLORS[MAX_INSTRUMENT_TYPES] = {
|
||||
{255, 200, 80, 255}, // yellow
|
||||
};
|
||||
|
||||
const char* const INSTRUMENT_LANE_WAV[MAX_INSTRUMENT_TYPES][LANE_COUNT * OCTAVE_COUNT] {
|
||||
/* Per-instrument WAV paths (lane = midi % 12). C4–B4 map to lanes 0–11. Reuse same set until more assets exist. */
|
||||
const char* const INSTRUMENT_LANE_WAV[MAX_INSTRUMENT_TYPES][LANE_COUNT] = {
|
||||
{ // Instrument 0
|
||||
"assets/sounds/genesis_bass/genesis_bass_024.wav", "assets/sounds/genesis_bass/genesis_bass_025.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_026.wav", "assets/sounds/genesis_bass/genesis_bass_027.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_028.wav", "assets/sounds/genesis_bass/genesis_bass_029.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_030.wav", "assets/sounds/genesis_bass/genesis_bass_031.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_032.wav", "assets/sounds/genesis_bass/genesis_bass_033.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_034.wav", "assets/sounds/genesis_bass/genesis_bass_035.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_036.wav", "assets/sounds/genesis_bass/genesis_bass_037.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_038.wav", "assets/sounds/genesis_bass/genesis_bass_039.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_040.wav", "assets/sounds/genesis_bass/genesis_bass_041.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_042.wav", "assets/sounds/genesis_bass/genesis_bass_043.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_044.wav", "assets/sounds/genesis_bass/genesis_bass_045.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_046.wav", "assets/sounds/genesis_bass/genesis_bass_047.wav"
|
||||
},
|
||||
"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
||||
{ // Instrument 1
|
||||
"assets/sounds/genesis_bass/genesis_bass_024.wav", "assets/sounds/genesis_bass/genesis_bass_025.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_026.wav", "assets/sounds/genesis_bass/genesis_bass_027.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_028.wav", "assets/sounds/genesis_bass/genesis_bass_029.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_030.wav", "assets/sounds/genesis_bass/genesis_bass_031.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_032.wav", "assets/sounds/genesis_bass/genesis_bass_033.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_034.wav", "assets/sounds/genesis_bass/genesis_bass_035.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_036.wav", "assets/sounds/genesis_bass/genesis_bass_037.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_038.wav", "assets/sounds/genesis_bass/genesis_bass_039.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_040.wav", "assets/sounds/genesis_bass/genesis_bass_041.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_042.wav", "assets/sounds/genesis_bass/genesis_bass_043.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_044.wav", "assets/sounds/genesis_bass/genesis_bass_045.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_046.wav", "assets/sounds/genesis_bass/genesis_bass_047.wav"
|
||||
},
|
||||
"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
||||
{ // Instrument 2
|
||||
"assets/sounds/genesis_bass/genesis_bass_024.wav", "assets/sounds/genesis_bass/genesis_bass_025.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_026.wav", "assets/sounds/genesis_bass/genesis_bass_027.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_028.wav", "assets/sounds/genesis_bass/genesis_bass_029.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_030.wav", "assets/sounds/genesis_bass/genesis_bass_031.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_032.wav", "assets/sounds/genesis_bass/genesis_bass_033.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_034.wav", "assets/sounds/genesis_bass/genesis_bass_035.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_036.wav", "assets/sounds/genesis_bass/genesis_bass_037.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_038.wav", "assets/sounds/genesis_bass/genesis_bass_039.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_040.wav", "assets/sounds/genesis_bass/genesis_bass_041.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_042.wav", "assets/sounds/genesis_bass/genesis_bass_043.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_044.wav", "assets/sounds/genesis_bass/genesis_bass_045.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_046.wav", "assets/sounds/genesis_bass/genesis_bass_047.wav"
|
||||
},
|
||||
"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
||||
{ // Instrument 3
|
||||
"assets/sounds/genesis_bass/genesis_bass_024.wav", "assets/sounds/genesis_bass/genesis_bass_025.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_026.wav", "assets/sounds/genesis_bass/genesis_bass_027.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_028.wav", "assets/sounds/genesis_bass/genesis_bass_029.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_030.wav", "assets/sounds/genesis_bass/genesis_bass_031.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_032.wav", "assets/sounds/genesis_bass/genesis_bass_033.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_034.wav", "assets/sounds/genesis_bass/genesis_bass_035.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_036.wav", "assets/sounds/genesis_bass/genesis_bass_037.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_038.wav", "assets/sounds/genesis_bass/genesis_bass_039.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_040.wav", "assets/sounds/genesis_bass/genesis_bass_041.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_042.wav", "assets/sounds/genesis_bass/genesis_bass_043.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_044.wav", "assets/sounds/genesis_bass/genesis_bass_045.wav",
|
||||
"assets/sounds/genesis_bass/genesis_bass_046.wav", "assets/sounds/genesis_bass/genesis_bass_047.wav"
|
||||
}
|
||||
"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
||||
};
|
||||
|
||||
struct Glyph
|
||||
@ -127,7 +99,6 @@ struct Glyph
|
||||
float time = 0.0f;
|
||||
int lane = 0;
|
||||
int instrument_slot = 0;
|
||||
int octave = 0;
|
||||
|
||||
float y_position(float song_time, float hit_line_y) const
|
||||
{
|
||||
@ -153,8 +124,7 @@ std::vector<Glyph> chart_from_song(const Song& song)
|
||||
continue;
|
||||
float time_sec = note.ticks / ticks_per_sec;
|
||||
int lane = note.midi % LANE_COUNT;
|
||||
int octave = note.midi % (LANE_COUNT * OCTAVE_COUNT);
|
||||
glyphs.push_back(Glyph{time_sec, lane, instrument_slot, octave});
|
||||
glyphs.push_back(Glyph{time_sec, lane, instrument_slot});
|
||||
}
|
||||
}
|
||||
std::sort(glyphs.begin(), glyphs.end(),
|
||||
@ -209,8 +179,8 @@ public:
|
||||
float lane_width = 0.0f;
|
||||
float screen_width = 0.0f;
|
||||
float screen_height = 0.0f;
|
||||
Sound note_sounds[MAX_INSTRUMENT_TYPES][LANE_COUNT * OCTAVE_COUNT] = {{0}};
|
||||
bool note_sounds_loaded[MAX_INSTRUMENT_TYPES][LANE_COUNT * OCTAVE_COUNT] = {{false}};
|
||||
Sound note_sounds[MAX_INSTRUMENT_TYPES][LANE_COUNT] = {{0}};
|
||||
bool note_sounds_loaded[MAX_INSTRUMENT_TYPES][LANE_COUNT] = {{false}};
|
||||
static constexpr float PRESS_FLASH_DURATION = 0.12f;
|
||||
static constexpr float MISS_FLASH_DURATION = 0.15f;
|
||||
float press_flash_timer[LANE_COUNT] = {0};
|
||||
@ -270,7 +240,7 @@ public:
|
||||
}
|
||||
for (int slot = 0; slot < MAX_INSTRUMENT_TYPES; slot++)
|
||||
{
|
||||
for (int lane = 0; lane < LANE_COUNT * OCTAVE_COUNT; lane++)
|
||||
for (int lane = 0; lane < LANE_COUNT; lane++)
|
||||
{
|
||||
if (note_sounds_loaded[slot][lane])
|
||||
{
|
||||
@ -291,7 +261,7 @@ public:
|
||||
update_layout();
|
||||
for (int slot = 0; slot < MAX_INSTRUMENT_TYPES; slot++)
|
||||
{
|
||||
for (int lane = 0; lane < LANE_COUNT * OCTAVE_COUNT; lane++)
|
||||
for (int lane = 0; lane < LANE_COUNT; lane++)
|
||||
{
|
||||
const char* path = INSTRUMENT_LANE_WAV[slot][lane];
|
||||
if (FileExists(path))
|
||||
@ -377,9 +347,8 @@ public:
|
||||
hit_flash_timer[n->lane] = PRESS_FLASH_DURATION;
|
||||
spawned.erase(it);
|
||||
completed_notes.insert(n);
|
||||
printf("note lane: %d, note octave: %d\n", n->lane, n->octave);
|
||||
if (note_sounds_loaded[n->instrument_slot][n->octave])
|
||||
PlaySound(note_sounds[n->instrument_slot][n->octave]);
|
||||
if (note_sounds_loaded[n->instrument_slot][n->lane])
|
||||
PlaySound(note_sounds[n->instrument_slot][n->lane]);
|
||||
}
|
||||
combo++;
|
||||
score += 100 + std::min(combo * 10, 50);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user