Skip to content

Commit

Permalink
Simplified keyframe interpolator widgets so they only show the stuff …
Browse files Browse the repository at this point in the history
…that makes sense given the interpolator's state.
  • Loading branch information
Espyo committed Feb 11, 2025
1 parent c07cd4d commit 05da4d9
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 94 deletions.
1 change: 0 additions & 1 deletion source/documents/todo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ Current tasks (tasks being worked on, but not yet committed)
Make the damage maker tool only damage mobs that have a max health > 0
Standardize all texts following a "browse..." sort of button
Geyser sounds should be classified as ambiance sound
Keyframe visualizers shouldn't show the graph, or the left and right arrows, if there's only one keyframe

Next tasks (roughly sorted most important first)
--- To fix ---
Expand Down
18 changes: 9 additions & 9 deletions source/source/content/other/particle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ void particle_generator::emit(particle_manager &manager) {
new_p.z = base_p_z;

float s_dev = game.rng.f(-size_deviation, size_deviation);
for(size_t s = 0; s < new_p.size.keyframe_count(); s++) {
for(size_t s = 0; s < new_p.size.get_keyframe_count(); s++) {
auto kf = new_p.size.get_keyframe(s);
new_p.size.set_keyframe_value((int) s, kf.second + s_dev);
}
Expand All @@ -268,7 +268,7 @@ void particle_generator::emit(particle_manager &manager) {
game.rng.f(-linear_speed_deviation.x, linear_speed_deviation.x);
float v_dev_y =
game.rng.f(-linear_speed_deviation.y, linear_speed_deviation.y);
for(size_t s = 0; s < new_p.linear_speed.keyframe_count(); s++) {
for(size_t s = 0; s < new_p.linear_speed.get_keyframe_count(); s++) {
auto kf = new_p.linear_speed.get_keyframe(s);
point base = kf.second;
point result = point(base.x + v_dev_x, base.y + v_dev_y);
Expand All @@ -281,14 +281,14 @@ void particle_generator::emit(particle_manager &manager) {

float out_dev =
game.rng.f(-outwards_speed_deviation, outwards_speed_deviation);
for(size_t s = 0; s < new_p.outwards_speed.keyframe_count(); s++) {
for(size_t s = 0; s < new_p.outwards_speed.get_keyframe_count(); s++) {
auto kf = new_p.outwards_speed.get_keyframe(s);
new_p.outwards_speed.set_keyframe_value((int) s, kf.second + out_dev);
}

float orb_dev =
game.rng.f(-orbital_speed_deviation, orbital_speed_deviation);
for(size_t s = 0; s < new_p.orbital_speed.keyframe_count(); s++) {
for(size_t s = 0; s < new_p.orbital_speed.get_keyframe_count(); s++) {
auto kf = new_p.orbital_speed.get_keyframe(s);
new_p.orbital_speed.set_keyframe_value((int) s, kf.second + orb_dev);
}
Expand Down Expand Up @@ -497,7 +497,7 @@ void particle_generator::save_to_data_node(data_node* node) {
data_node* color_node = new data_node("color", "");
base_particle_node->add(color_node);

for(size_t c = 0; c < base_particle.color.keyframe_count(); c++) {
for(size_t c = 0; c < base_particle.color.get_keyframe_count(); c++) {
auto keyframe = base_particle.color.get_keyframe(c);
color_node->add(
new data_node(f2s(keyframe.first), c2s(keyframe.second))
Expand All @@ -507,7 +507,7 @@ void particle_generator::save_to_data_node(data_node* node) {
data_node* size_node = new data_node("size", "");
base_particle_node->add(size_node);

for(size_t c = 0; c < base_particle.size.keyframe_count(); c++) {
for(size_t c = 0; c < base_particle.size.get_keyframe_count(); c++) {
auto keyframe = base_particle.size.get_keyframe(c);
size_node->add(
new data_node(f2s(keyframe.first), f2s(keyframe.second))
Expand All @@ -517,7 +517,7 @@ void particle_generator::save_to_data_node(data_node* node) {
data_node* lin_speed_node = new data_node("linear_speed", "");
base_particle_node->add(lin_speed_node);

for(size_t c = 0; c < base_particle.linear_speed.keyframe_count(); c++) {
for(size_t c = 0; c < base_particle.linear_speed.get_keyframe_count(); c++) {
auto keyframe = base_particle.linear_speed.get_keyframe(c);
lin_speed_node->add(
new data_node(f2s(keyframe.first), p2s(keyframe.second))
Expand All @@ -527,7 +527,7 @@ void particle_generator::save_to_data_node(data_node* node) {
data_node* out_speed_node = new data_node("outwards_speed", "");
base_particle_node->add(out_speed_node);

for(size_t c = 0; c < base_particle.outwards_speed.keyframe_count(); c++) {
for(size_t c = 0; c < base_particle.outwards_speed.get_keyframe_count(); c++) {
auto keyframe = base_particle.outwards_speed.get_keyframe(c);
out_speed_node->add(
new data_node(f2s(keyframe.first), f2s(keyframe.second))
Expand All @@ -537,7 +537,7 @@ void particle_generator::save_to_data_node(data_node* node) {
data_node* orb_speed_node = new data_node("orbital_speed", "");
base_particle_node->add(orb_speed_node);

for(size_t c = 0; c < base_particle.orbital_speed.keyframe_count(); c++) {
for(size_t c = 0; c < base_particle.orbital_speed.get_keyframe_count(); c++) {
auto keyframe = base_particle.orbital_speed.get_keyframe(c);
orb_speed_node->add(
new data_node(f2s(keyframe.first), f2s(keyframe.second))
Expand Down
2 changes: 1 addition & 1 deletion source/source/core/misc_functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ bool adjust_keyframe_interpolator_values(
std::function<t(const t &)> predicate
) {
bool result = false;
size_t n_keyframes = interpolator.keyframe_count();
size_t n_keyframes = interpolator.get_keyframe_count();
for(size_t k = 0; k < n_keyframes; k++) {
const auto &orig_keyframe = interpolator.get_keyframe(k);
interpolator.set_keyframe_value(k, predicate(orig_keyframe.second));
Expand Down
Loading

0 comments on commit 05da4d9

Please sign in to comment.