From c83132f4fa9ed1cbfda66d6ff239903b718f1eeb Mon Sep 17 00:00:00 2001 From: Misa Date: Fri, 9 Oct 2020 17:04:03 -0700 Subject: [PATCH] Add entityclass::moveblockto() This function will restore a block's hitbox after it has been disabled by `entityclass::nocollisionat()`. --- desktop_version/src/Entity.cpp | 18 ++++++++++++++++++ desktop_version/src/Entity.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/desktop_version/src/Entity.cpp b/desktop_version/src/Entity.cpp index 08d66441..f9c264aa 100644 --- a/desktop_version/src/Entity.cpp +++ b/desktop_version/src/Entity.cpp @@ -1081,6 +1081,24 @@ void entityclass::removeblockat( int x, int y ) } } +void entityclass::moveblockto(int x1, int y1, int x2, int y2, int w, int h) +{ + for (size_t i = 0; i < blocks.size(); i++) + { + if (blocks[i].xp == x1 && blocks[i].yp == y1) + { + blocks[i].xp = x2; + blocks[i].yp = y2; + + blocks[i].wp = w; + blocks[i].hp = h; + + blocks[i].rectset(blocks[i].xp, blocks[i].yp, blocks[i].wp, blocks[i].hp); + break; + } + } +} + void entityclass::nocollisionat(int x, int y) { for (size_t i = 0; i < blocks.size(); i++) diff --git a/desktop_version/src/Entity.h b/desktop_version/src/Entity.h index c2c9b88b..9b44cec9 100644 --- a/desktop_version/src/Entity.h +++ b/desktop_version/src/Entity.h @@ -79,6 +79,8 @@ public: void removeblockat(int x, int y); + void moveblockto(int x1, int y1, int x2, int y2, int w, int h); + void nocollisionat(int x, int y); void removetrigger(int t);