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