|
|
|
@ -65,6 +65,12 @@ namespace guecs { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void Sound::stop(bool hover) { |
|
|
|
|
if(!hover) { |
|
|
|
|
sound::stop(on_click); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void Background::init() { |
|
|
|
|
sf::Vector2f size{float(w), float(h)}; |
|
|
|
|
if(shape == nullptr) shape = make_shared<sf::RectangleShape>(size); |
|
|
|
@ -107,6 +113,10 @@ namespace guecs { |
|
|
|
|
return $shader; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void Effect::stop() { |
|
|
|
|
$active = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
UI::UI() { |
|
|
|
|
$font = make_shared<sf::Font>(FONT_FILE_NAME); |
|
|
|
|
} |
|
|
|
@ -242,7 +252,7 @@ namespace guecs { |
|
|
|
|
sound.play(hover); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
if(hover) return; // kinda gross
|
|
|
|
|
if(hover) return; |
|
|
|
|
|
|
|
|
|
if(auto action_data = get_if<ActionData>(ent)) { |
|
|
|
|
clicked.action(ent, action_data->data); |
|
|
|
@ -252,9 +262,14 @@ namespace guecs { |
|
|
|
|
|
|
|
|
|
action_count++; |
|
|
|
|
} else { |
|
|
|
|
// via ORBLISHJ
|
|
|
|
|
// just reset the hover trigger for all that aren't hit
|
|
|
|
|
// then in the ^^ positive branch play it and set it played
|
|
|
|
|
do_if<Effect>(ent, [hover](auto& effect) { |
|
|
|
|
effect.stop(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
do_if<Sound>(ent, [hover](auto& sound) { |
|
|
|
|
// here set that it played then only play once
|
|
|
|
|
sound.stop(hover); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|