|
From: Tapio V. <aa...@us...> - 2009-11-13 12:00:41
|
Module: performous
Branch: dance
Commit: 161133a4db0c81007b044fe3f609c6d4eacc5c38
Author: Tapio Vierros <tap...@gm...>
Date: Fri Nov 13 13:46:35 2009 +0200
Some code to display dance icon in song browser.
---
game/screen_songs.cc | 67 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 44 insertions(+), 23 deletions(-)
diff --git a/game/screen_songs.cc b/game/screen_songs.cc
index 7c0e6de..adf997e 100644
--- a/game/screen_songs.cc
+++ b/game/screen_songs.cc
@@ -167,6 +167,13 @@ void ScreenSongs::drawJukebox() {
}
}
+namespace {
+ float getIconTex(int i) {
+ static int iconcount = 8;
+ return (i-1)/float(iconcount);
+ }
+}
+
void ScreenSongs::draw() {
m_songs.update(); // Poll for new songs
double length = m_audio.getLength();
@@ -227,6 +234,7 @@ void ScreenSongs::draw() {
Dimensions dim = Dimensions(m_instrumentList->ar()).middle(-0.2 + 0.17 * (i - shift)).bottom(y - (0.14+diff) - 0.2 * diff).fitInside(0.14 + diff, 0.14 + diff);
double x;
float alpha;
+ float xincr = 0.2f;
{
// vocals
alpha = (song_display.notes.size()) ? 1.00 : 0.25;
@@ -238,11 +246,11 @@ void ScreenSongs::draw() {
glColor4f(1.0, 1.0, 1.0, alpha);
}
x = dim.x1()+0.00*(dim.x2()-dim.x1());
- glTexCoord2f(0.00f, 0.0f); glVertex2f(x, dim.y1());
- glTexCoord2f(0.00f, 1.0f); glVertex2f(x, dim.y2());
- x = dim.x1()+0.25*(dim.x2()-dim.x1());
- glTexCoord2f(0.25f, 0.0f); glVertex2f(x, dim.y1());
- glTexCoord2f(0.25f, 1.0f); glVertex2f(x, dim.y2());
+ glTexCoord2f(getIconTex(1), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(1), 1.0f); glVertex2f(x, dim.y2());
+ x = dim.x1()+xincr*(dim.x2()-dim.x1());
+ glTexCoord2f(getIconTex(2), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(2), 1.0f); glVertex2f(x, dim.y2());
}
{
// guitars
@@ -255,12 +263,12 @@ void ScreenSongs::draw() {
for (int i = guitarCount-1; i >= 0; i--) {
glutil::Begin block(GL_TRIANGLE_STRIP);
glColor4f(1.0, 1.0, 1.0, alpha);
- x = dim.x1()+(0.25+i*0.04)*(dim.x2()-dim.x1());
- glTexCoord2f(0.25f, 0.0f); glVertex2f(x, dim.y1());
- glTexCoord2f(0.25f, 1.0f); glVertex2f(x, dim.y2());
- x = dim.x1()+(0.50+i*0.04)*(dim.x2()-dim.x1());
- glTexCoord2f(0.50f, 0.0f); glVertex2f(x, dim.y1());
- glTexCoord2f(0.50f, 1.0f); glVertex2f(x, dim.y2());
+ x = dim.x1()+(xincr+i*0.04)*(dim.x2()-dim.x1());
+ glTexCoord2f(getIconTex(2), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(2), 1.0f); glVertex2f(x, dim.y2());
+ x = dim.x1()+(2*xincr+i*0.04)*(dim.x2()-dim.x1());
+ glTexCoord2f(getIconTex(3), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(3), 1.0f); glVertex2f(x, dim.y2());
}
}
{
@@ -268,24 +276,37 @@ void ScreenSongs::draw() {
alpha = (isTrackInside(song_display.track_map,"bass")) ? 1.00 : 0.25;
glutil::Begin block(GL_TRIANGLE_STRIP);
glColor4f(1.0, 1.0, 1.0, alpha);
- x = dim.x1()+0.50*(dim.x2()-dim.x1());
- glTexCoord2f(0.50f, 0.0f); glVertex2f(x, dim.y1());
- glTexCoord2f(0.50f, 1.0f); glVertex2f(x, dim.y2());
- x = dim.x1()+0.75*(dim.x2()-dim.x1());
- glTexCoord2f(0.75f, 0.0f); glVertex2f(x, dim.y1());
- glTexCoord2f(0.75f, 1.0f); glVertex2f(x, dim.y2());
+ x = dim.x1()+2*xincr*(dim.x2()-dim.x1());
+ glTexCoord2f(getIconTex(3), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(3), 1.0f); glVertex2f(x, dim.y2());
+ x = dim.x1()+3*xincr*(dim.x2()-dim.x1());
+ glTexCoord2f(getIconTex(4), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(4), 1.0f); glVertex2f(x, dim.y2());
}
{
// drums
alpha = (isTrackInside(song_display.track_map,"drums")) ? 1.00 : 0.25;
glutil::Begin block(GL_TRIANGLE_STRIP);
glColor4f(1.0, 1.0, 1.0, alpha);
- x = dim.x1()+0.75*(dim.x2()-dim.x1());
- glTexCoord2f(0.75f, 0.0f); glVertex2f(x, dim.y1());
- glTexCoord2f(0.75f, 1.0f); glVertex2f(x, dim.y2());
- x = dim.x1()+1.00*(dim.x2()-dim.x1());
- glTexCoord2f(1.00f, 0.0f); glVertex2f(x, dim.y1());
- glTexCoord2f(1.00f, 1.0f); glVertex2f(x, dim.y2());
+ x = dim.x1()+3*xincr*(dim.x2()-dim.x1());
+ glTexCoord2f(getIconTex(4), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(4), 1.0f); glVertex2f(x, dim.y2());
+ x = dim.x1()+4*xincr*(dim.x2()-dim.x1());
+ glTexCoord2f(getIconTex(5), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(5), 1.0f); glVertex2f(x, dim.y2());
+ }
+ {
+ // dancing
+ // TODO: test for dance track
+ alpha = 0.25;
+ glutil::Begin block(GL_TRIANGLE_STRIP);
+ glColor4f(1.0, 1.0, 1.0, alpha);
+ x = dim.x1()+4*xincr*(dim.x2()-dim.x1());
+ glTexCoord2f(getIconTex(5), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(5), 1.0f); glVertex2f(x, dim.y2());
+ x = dim.x1()+5*xincr*(dim.x2()-dim.x1());
+ glTexCoord2f(getIconTex(6), 0.0f); glVertex2f(x, dim.y1());
+ glTexCoord2f(getIconTex(6), 1.0f); glVertex2f(x, dim.y2());
}
glColor4f(1.0, 1.0, 1.0, 1.0);
}
|