diff --git a/rogueviz/ru/classes.cpp b/rogueviz/ru/classes.cpp index af7cd7db..e83825d6 100644 --- a/rogueviz/ru/classes.cpp +++ b/rogueviz/ru/classes.cpp @@ -181,6 +181,7 @@ struct entity { void kino(); void apply_vel(); void apply_walls(); + void apply_walls_reflect(); void apply_grav(); void apply_portal_grav(); virtual void act() { kino(); } diff --git a/rogueviz/ru/entity.cpp b/rogueviz/ru/entity.cpp index 7da97f6d..1264e773 100644 --- a/rogueviz/ru/entity.cpp +++ b/rogueviz/ru/entity.cpp @@ -343,7 +343,7 @@ void moving_platform::act() { where = location_at(gframeid); } -void kestrel::act() { +void entity::apply_walls_reflect() { int loopcount = 0; again: loopcount++; @@ -383,7 +383,10 @@ void kestrel::act() { vel.x = -vel.x; goto again; } } + } +void kestrel::act() { + apply_walls_reflect(); apply_vel(); if(intersect(get_pixel_bbox(), m.get_pixel_bbox())) {