Figured out the crash, but want to see what valgrind would say.
This commit is contained in:
parent
aaf5aa4165
commit
0e8b661273
7 changed files with 30 additions and 15 deletions
2
Makefile
2
Makefile
|
|
@ -78,7 +78,7 @@ story:
|
||||||
gdb --nx -x .gdbinit --batch --ex run --ex bt --ex q --args ./builddir/storyboard
|
gdb --nx -x .gdbinit --batch --ex run --ex bt --ex q --args ./builddir/storyboard
|
||||||
|
|
||||||
debug_animator:
|
debug_animator:
|
||||||
gdb --nx -x .gdbinit --batch --ex run --ex bt --ex q --args ./builddir/animator.exe -s "rat_king_boss" -a "rat_king_boss" -b "test_background"
|
gdb --nx -x .gdbinit --batch --ex run --ex bt --ex q --args ./builddir/animator -s "rat_king_boss" -a "rat_king_boss" -b "test_background"
|
||||||
|
|
||||||
animator:
|
animator:
|
||||||
./builddir/animator.exe -s "rat_king_boss" -a "rat_king_boss" -b "test_background"
|
./builddir/animator.exe -s "rat_king_boss" -a "rat_king_boss" -b "test_background"
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,11 @@ namespace animate2 {
|
||||||
} else {
|
} else {
|
||||||
sequence.timer.restart();
|
sequence.timer.restart();
|
||||||
sequence.current++;
|
sequence.current++;
|
||||||
if(sequence.subframe > SUB_FRAME_SENSITIVITY) sequence.subframe = 0.0f;
|
|
||||||
|
if(sequence.subframe > SUB_FRAME_SENSITIVITY) {
|
||||||
|
sequence.subframe = 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
frame_change = true;
|
frame_change = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,6 @@ namespace boss {
|
||||||
using enum game::Event;
|
using enum game::Event;
|
||||||
|
|
||||||
switch(ev) {
|
switch(ev) {
|
||||||
// this is only if using the debug X key to skip it
|
|
||||||
case TICK:
|
|
||||||
case BOSS_START:
|
case BOSS_START:
|
||||||
$ui.status(L"PLAYER REQUESTS", L"COMMIT");
|
$ui.status(L"PLAYER REQUESTS", L"COMMIT");
|
||||||
$battle.ap_refresh();
|
$battle.ap_refresh();
|
||||||
|
|
@ -177,7 +175,6 @@ namespace boss {
|
||||||
$ui.animate_actor("player");
|
$ui.animate_actor("player");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Fight::run_systems() {
|
void Fight::run_systems() {
|
||||||
|
|
|
||||||
22
scene.cpp
22
scene.cpp
|
|
@ -127,7 +127,9 @@ namespace scene {
|
||||||
void Engine::play_animations() {
|
void Engine::play_animations() {
|
||||||
for(auto& fixture : $fixtures) {
|
for(auto& fixture : $fixtures) {
|
||||||
if(fixture.anim.playing) {
|
if(fixture.anim.playing) {
|
||||||
|
fixture.anim.update();
|
||||||
fixture.anim.apply(*fixture.st.sprite);
|
fixture.anim.apply(*fixture.st.sprite);
|
||||||
|
// REFACTOR: fixture.anim.apply(*fixture.st.sprite);
|
||||||
} else {
|
} else {
|
||||||
fixture.effect = nullptr;
|
fixture.effect = nullptr;
|
||||||
}
|
}
|
||||||
|
|
@ -135,9 +137,10 @@ namespace scene {
|
||||||
|
|
||||||
for(auto& actor : $actors) {
|
for(auto& actor : $actors) {
|
||||||
if(actor.anim.playing) {
|
if(actor.anim.playing) {
|
||||||
|
actor.anim.update();
|
||||||
actor.anim.apply(*actor.st.sprite);
|
actor.anim.apply(*actor.st.sprite);
|
||||||
// REFACTOR: actor.anim.apply(actor.text, actor.pos);
|
// REFACTOR: actor.anim.apply(actor.text, actor.pos);
|
||||||
if(actor.effect != nullptr) actor.anim.apply_effect(actor.effect);
|
// if(actor.effect != nullptr) actor.anim.apply_effect(actor.effect);
|
||||||
} else {
|
} else {
|
||||||
actor.effect = nullptr;
|
actor.effect = nullptr;
|
||||||
}
|
}
|
||||||
|
|
@ -173,13 +176,22 @@ namespace scene {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Engine::set_end_cb(std::function<void()> cb) {
|
void Engine::set_end_cb(std::function<void()> cb) {
|
||||||
// REFACTOR:
|
for(auto& actor : $actors) {
|
||||||
// for(auto& actor : $actors) {
|
actor.anim.onLoop = [&](auto& seq, auto& tr) -> bool {
|
||||||
// actor.anim.end_cb = cb;
|
seq.current = tr.toggled ? seq.frame_count - 1 : 0;
|
||||||
// }
|
cb();
|
||||||
|
return tr.looped;
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Engine::reset(sf::RenderTexture& view) {
|
void Engine::reset(sf::RenderTexture& view) {
|
||||||
$camera.reset(view);
|
$camera.reset(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Engine::tick() {
|
||||||
|
for(auto& actor : $actors) {
|
||||||
|
auto [ticks, alpha] = actor.anim.commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,5 +58,6 @@ namespace scene {
|
||||||
void zoom(float mid_x, float mid_y, const std::string& style, float scale);
|
void zoom(float mid_x, float mid_y, const std::string& style, float scale);
|
||||||
void reset(sf::RenderTexture& view);
|
void reset(sf::RenderTexture& view);
|
||||||
void set_end_cb(std::function<void()> cb);
|
void set_end_cb(std::function<void()> cb);
|
||||||
|
void tick();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -312,12 +312,12 @@ int error_usage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
shaders::init();
|
ai::init("ai");
|
||||||
|
animation::init();
|
||||||
components::init();
|
components::init();
|
||||||
sfml::Backend backend;
|
sfml::Backend backend;
|
||||||
guecs::init(&backend);
|
guecs::init(&backend);
|
||||||
ai::init("ai");
|
shaders::init();
|
||||||
animation::init();
|
|
||||||
|
|
||||||
std::string sprite_name;
|
std::string sprite_name;
|
||||||
std::string background;
|
std::string background;
|
||||||
|
|
|
||||||
|
|
@ -50,13 +50,14 @@ int main(int, char*[]) {
|
||||||
dbc::check(main->$world == world, "GameDB::current_world doesn't match boss fight world.");
|
dbc::check(main->$world == world, "GameDB::current_world doesn't match boss fight world.");
|
||||||
|
|
||||||
while(!main->in_state(boss::State::END)) {
|
while(!main->in_state(boss::State::END)) {
|
||||||
|
main->$ui.$arena.tick();
|
||||||
|
main->render(window);
|
||||||
|
|
||||||
if(main->handle_keyboard_mouse() ||
|
if(main->handle_keyboard_mouse() ||
|
||||||
main->handle_world_events())
|
main->handle_world_events())
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
main->render(window);
|
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue