diff --git a/leveleditor/layermask.h b/leveleditor/layermask.h index b65e213..05de178 100644 --- a/leveleditor/layermask.h +++ b/leveleditor/layermask.h @@ -1,7 +1,7 @@ #ifndef LAYERMASK_H #define LAYERMASK_H -#include +#include enum LAYER_MASK : quint8 { diff --git a/objectrenderer.h b/objectrenderer.h index 06b3e10..4693764 100644 --- a/objectrenderer.h +++ b/objectrenderer.h @@ -377,7 +377,7 @@ class FloatingBoxRenderer: public SpriteRenderer { public: FloatingBoxRenderer(const Sprite *spr); - FloatingBoxRenderer() { delete img; } + ~FloatingBoxRenderer() { delete img; } void render(QPainter *painter, QRect *drawrect); protected: NormalImageRenderer *img; @@ -574,7 +574,7 @@ class FourPlatRickRenderer: public SpriteRenderer { public: FourPlatRickRenderer(const Sprite *spr); - FourPlatRickRenderer() { delete img; } + ~FourPlatRickRenderer() { delete img; } void render(QPainter *painter, QRect *drawrect); protected: NormalImageRenderer *img; diff --git a/objects.cpp b/objects.cpp index 2423f2d..93c5964 100644 --- a/objects.cpp +++ b/objects.cpp @@ -1396,29 +1396,35 @@ void Sprite::setRect() offsety = -5; break; case 159: // Spike Top - if(getNybble(10) == 1) + { + bool counterClockwise = getNybble(11) % 2; + switch (getNybble(10) % 4) { + case 1: width = 25; height = 20; offsetx = -5; - } - else if(getNybble(10) == 2) - { + offsety = counterClockwise ? 20 : 0; + break; + case 2: width = 20; height = 25; - } - else if(getNybble(10) == 3) - { + offsetx = counterClockwise ? 10 : -10; + break; + case 3: width = 25; height = 20; - } - else - { + offsety = counterClockwise ? 0 : 20; + break; + default: width = 20; height = 25; + offsetx = counterClockwise ? -10 : 10; offsety = -5; + break; } - break; + } + break; case 162: // Morton width = 67; height = 67;