Musical Coin

It's like a normal coin but it changes pitch of the sound when you collect them by going up or down the tiles. Correct the code if it does not compile with current git:
- {l Code}: {l Select All Code}
static Timer sound_timer;
static int pitch_one = 128;
static float last_pitch = 1;
float pitch = 1;
int tile = static_cast<int>(get_pos().y / 32);
if (!sound_timer.started()) {
pitch_one = tile;
pitch = 1;
last_pitch = 1;
}
else if (sound_timer.get_timegone() < 0.02) {
pitch = last_pitch;
}
else
{
switch ((pitch_one - tile) % 7) {
case -6:
pitch = 1.0/2;
break;
case -5:
pitch = 5.0/8;
break;
case -4:
pitch = 4.0/6;
break;
case -3:
pitch = 3.0/4;
break;
case -2:
pitch = 5.0/6;
break;
case -1:
pitch = 9.0/10;
break;
case 0:
pitch = 1.0;
break;
case 1:
pitch = 9.0/8;
break;
case 2:
pitch = 5.0/4;
break;
case 3:
pitch = 4.0/3;
break;
case 4:
pitch = 3.0/2;
break;
case 5:
pitch = 5.0/3;
break;
case 6:
pitch = 9.0/5;
break;
}
last_pitch = pitch;
}
sound_timer.start(1);
std::unique_ptr<SoundSource> soundSource = SoundManager::current()->create_sound_source("sounds/coin.wav");
soundSource->set_position(get_pos());
soundSource->set_pitch(pitch);
soundSource->play();
SoundManager::current()->manage_source(std::move(soundSource));
Sector::current()->player->get_status()->add_coins(1, false);