diff --git a/coinkiller_data/spritedata.xml b/coinkiller_data/spritedata.xml
index 5b1dd98..ba57557 100644
--- a/coinkiller_data/spritedata.xml
+++ b/coinkiller_data/spritedata.xml
@@ -434,9 +434,9 @@
Normal
- Jump When Spawned
+ From Pipe
Shot From Cannon
- Frozen
+ About to Explode
@@ -503,7 +503,7 @@
-
+
Left
@@ -946,6 +946,7 @@
+
@@ -2233,7 +2234,7 @@
Limit Until Both Players Cross
Unknown Value 3
-
+
@@ -2249,7 +2250,7 @@
Limit Until Both Players Cross
Unknown Value 3
-
+
@@ -2406,9 +2407,9 @@
Below Layer 1 Tiles
- Towards Player
- Right
- Left
+ Towards Player/Up
+ Right/Up
+ Left/Down
From Center
@@ -3041,10 +3042,12 @@
-
-
+
+
+
+
-
+
4 Tiles
5 Tiles
@@ -3124,10 +3127,19 @@
-
-
-
-
+
+ Right
+ Left
+ Up
+ Down
+ Right/Up
+ Right/Down
+ Left/Up
+ Left/Down
+
+
+
+
@@ -3627,8 +3639,10 @@
+
-
+
+
diff --git a/leveleditor/levelview.cpp b/leveleditor/levelview.cpp
index dbe50cf..f1c9fce 100644
--- a/leveleditor/levelview.cpp
+++ b/leveleditor/levelview.cpp
@@ -400,16 +400,16 @@ void LevelView::paint(QPainter& painter, QRect rect, float zoomLvl, bool selecti
switch (direction)
{
case 0: // Right
- indicator = new MovIndicatorRenderer(x + s->getwidth(), y + s->getheight()/2, x + s->getwidth() + distance, y + s->getheight()/2, 2, 6, false, false, color);
+ indicator = new MovIndicatorRenderer(x + s->getwidth(), y + s->getheight()/2, x + s->getwidth() + distance, y + s->getheight()/2, 2, 6, false, color);
break;
case 1: // Left
- indicator = new MovIndicatorRenderer(x, y + s->getheight()/2, x - distance, y + s->getheight()/2, 2, 6, false, false, color);
+ indicator = new MovIndicatorRenderer(x, y + s->getheight()/2, x - distance, y + s->getheight()/2, 2, 6, false, color);
break;
case 2: // Up
- indicator = new MovIndicatorRenderer(x + s->getwidth()/2, y, x + s->getwidth()/2, y - distance, 2, 6, false, true, color);
+ indicator = new MovIndicatorRenderer(x + s->getwidth()/2, y, x + s->getwidth()/2, y - distance, 2, 6, true, color);
break;
default: // Down
- indicator = new MovIndicatorRenderer(x + s->getwidth()/2, y + s->getheight(), x + s->getwidth()/2, y + s->getheight() + distance, 2, 6, false, true, color);
+ indicator = new MovIndicatorRenderer(x + s->getwidth()/2, y + s->getheight(), x + s->getwidth()/2, y + s->getheight() + distance, 2, 6, true, color);
break;
}
diff --git a/objectrenderer.cpp b/objectrenderer.cpp
index 6b0846d..15a0247 100644
--- a/objectrenderer.cpp
+++ b/objectrenderer.cpp
@@ -870,10 +870,10 @@ void CircleRenderer::render(QPainter *painter, QRect *)
}
MovIndicatorRenderer::MovIndicatorRenderer(int startX, int startY, int endX, int endY, bool vertical, QColor color)
-: MovIndicatorRenderer::MovIndicatorRenderer(startX, startY, endX, endY, 4, 10, true, vertical, color)
+: MovIndicatorRenderer::MovIndicatorRenderer(startX, startY, endX, endY, 4, 10, vertical, color)
{}
-MovIndicatorRenderer::MovIndicatorRenderer(int startX, int startY, int endX, int endY, int thickness, int radius, bool applyOffset, bool vertical, QColor color)
+MovIndicatorRenderer::MovIndicatorRenderer(int startX, int startY, int endX, int endY, int thickness, int radius, bool vertical, QColor color)
{
this->startX = startX;
this->startY = startY;
@@ -881,7 +881,6 @@ MovIndicatorRenderer::MovIndicatorRenderer(int startX, int startY, int endX, int
this->endY = endY;
this->thickness = thickness;
this->radius = radius;
- this->applyOffset = applyOffset;
this->vertical = vertical;
this->color = color;
}
@@ -910,26 +909,26 @@ void MovIndicatorRenderer::render(QPainter *painter)
{
if (endY < startY) // Go Up
{
- painter->drawLine(startX, startY+(20*applyOffset)+(radius/2*!applyOffset), startX, endY+(20*applyOffset)+(radius*2*!applyOffset)-2);
- painter->drawEllipse(startX-(radius/2), endY+(radius/2), radius, radius);
+ painter->drawLine(startX, startY + (radius/2), startX, endY + (radius*2) - 2);
+ painter->drawEllipse(startX - (radius/2), endY + (radius/2), radius, radius);
}
else // Go Down
{
- painter->drawLine(startX, startY-(20*applyOffset), startX, endY-(20*applyOffset)-(radius*2*!applyOffset)+2);
- painter->drawEllipse(startX-(radius/2), endY-(1.5*radius), radius, radius);
+ painter->drawLine(startX, startY, startX, endY - (radius*2) + 2);
+ painter->drawEllipse(startX - (radius/2), endY - (1.5*radius), radius, radius);
}
}
else
{
if (endX < startX) // Go Left
{
- painter->drawLine(startX+(20*applyOffset), startY, endX+(20*applyOffset)+(radius*2*!applyOffset)-2, startY);
- painter->drawEllipse(endX+(radius/2), startY-(radius/2), radius, radius);
+ painter->drawLine(startX, startY, endX + (radius*2) - 2, startY);
+ painter->drawEllipse(endX + (radius/2), startY - (radius/2), radius, radius);
}
else // Go Right
{
- painter->drawLine(startX-(20*applyOffset), startY, endX-(20*applyOffset)-(radius*2*!applyOffset)+2, startY);
- painter->drawEllipse(endX-(1.5*radius), startY-(radius/2), radius, radius);
+ painter->drawLine(startX, startY, endX - (radius*2) + 2, startY);
+ painter->drawEllipse(endX - (1.5*radius), startY - (radius/2), radius, radius);
}
}
}
@@ -2230,7 +2229,7 @@ void LiftRenderer::render(QPainter *painter, QRect *)
{
if (spr->getid() == 145 || spr->getid() == 254)
{
- MovIndicatorRenderer track(spr->getx()+spr->getwidth()/2, spr->gety()+spr->getheight()+13, spr->getx()+spr->getwidth()/2, spr->gety()+spr->getheight()+distance, true, QColor(244,250,255));
+ MovIndicatorRenderer track(spr->getx()+spr->getwidth()/2, spr->gety()+spr->getheight(), spr->getx()+spr->getwidth()/2, spr->gety()+spr->getheight()+distance, true, QColor(244,250,255));
track.render(painter);
}
else
@@ -2552,12 +2551,12 @@ void KoopaParatroopaRenderer::render(QPainter *painter, QRect *drawrect)
if (spr->getNybble(8) == 1) // right
{
- MovIndicatorRenderer indicator(x+spr->getwidth(), y, x+spr->getwidth()+distance, y, false, QColor(244,250,255));
+ MovIndicatorRenderer indicator(x+spr->getwidth()-20, y, x+spr->getwidth()+distance, y, false, QColor(244,250,255));
indicator.render(painter);
}
else // left
{
- MovIndicatorRenderer indicator(x, y, x-distance, y, false, QColor(244,250,255));
+ MovIndicatorRenderer indicator(x+20, y, x-distance, y, false, QColor(244,250,255));
indicator.render(painter);
}
}
@@ -2567,10 +2566,10 @@ void KoopaParatroopaRenderer::render(QPainter *painter, QRect *drawrect)
if (spr->getNybble(8)%2)
offsetx = -2;
- MovIndicatorRenderer rightIndicator(x+spr->getwidth()+offsetx, y, x+spr->getwidth()+distance+offsetx, y, false, QColor(244,250,255));
+ MovIndicatorRenderer rightIndicator(x+spr->getwidth()+offsetx-20, y, x+spr->getwidth()+distance+offsetx, y, false, QColor(244,250,255));
rightIndicator.render(painter);
- MovIndicatorRenderer leftIndicator(x+offsetx, y, x-distance+offsetx, y, false, QColor(244,250,255));
+ MovIndicatorRenderer leftIndicator(x+offsetx+20, y, x-distance+offsetx, y, false, QColor(244,250,255));
leftIndicator.render(painter);
}
}
@@ -2584,12 +2583,12 @@ void KoopaParatroopaRenderer::render(QPainter *painter, QRect *drawrect)
{
distance = 160;
- if (spr->getNybble(8) == 1) // bottom
+ if (spr->getNybble(8) < 2) // Up
{
- MovIndicatorRenderer indicator(x, y, x, y-distance+10, true, QColor(244,250,255));
+ MovIndicatorRenderer indicator(x, y+20, x, y-distance+10, true, QColor(244,250,255));
indicator.render(painter);
}
- else // top
+ else // Down
{
MovIndicatorRenderer indicator(x, y+spr->getheight(), x, y+spr->getheight()+distance, true, QColor(244,250,255));
indicator.render(painter);
@@ -2601,10 +2600,10 @@ void KoopaParatroopaRenderer::render(QPainter *painter, QRect *drawrect)
if (spr->getNybble(8)%2)
offsetx = -2;
- MovIndicatorRenderer topIndicator(x, y, x, y-distance+10, true, QColor(244,250,255));
+ MovIndicatorRenderer topIndicator(x, y+35, x, y-distance+10, true, QColor(244,250,255));
topIndicator.render(painter);
- MovIndicatorRenderer bottomIndicator(x, y+spr->getheight(), x, y+spr->getheight()+distance, true, QColor(244,250,255));
+ MovIndicatorRenderer bottomIndicator(x, y+spr->getheight()-20, x, y+spr->getheight()+distance, true, QColor(244,250,255));
bottomIndicator.render(painter);
}
}
@@ -2664,10 +2663,10 @@ void CheepCheepRenderer::render(QPainter *painter, QRect *drawrect)
int y = spr->gety()+spr->getheight()/2;
- MovIndicatorRenderer rightIndicator(spr->getx()+spr->getwidth()+10, y, spr->getx()+spr->getwidth()+distance, y, false, QColor(244,250,255));
+ MovIndicatorRenderer rightIndicator(spr->getx()+spr->getwidth()-10, y, spr->getx()+spr->getwidth()+distance, y, false, QColor(244,250,255));
rightIndicator.render(painter);
- MovIndicatorRenderer leftIndicator(spr->getx()-10, y, spr->getx()-distance, y, false, QColor(244,250,255));
+ MovIndicatorRenderer leftIndicator(spr->getx()+10, y, spr->getx()-distance, y, false, QColor(244,250,255));
leftIndicator.render(painter);
}
@@ -2737,10 +2736,10 @@ void SpinyCheepRenderer::render(QPainter *painter, QRect *drawrect)
if (spr->getNybble(4)%3 == 2)
offset = 2;
- MovIndicatorRenderer rightIndicator(x+spr->getwidth()+10, y, x+spr->getwidth()+distance + offset, y, false, QColor(244,250,255));
+ MovIndicatorRenderer rightIndicator(x+spr->getwidth()-10, y, x+spr->getwidth()+distance + offset, y, false, QColor(244,250,255));
rightIndicator.render(painter);
- MovIndicatorRenderer leftIndicator(x-10 - offset, y, x-distance, y, false, QColor(244,250,255));
+ MovIndicatorRenderer leftIndicator(x + 10 - offset, y, x-distance, y, false, QColor(244,250,255));
leftIndicator.render(painter);
img->render(painter, drawrect);
@@ -3480,7 +3479,7 @@ void UrchinRenderer::render(QPainter *painter, QRect *drawrect)
{
if (spr->getNybble(9)) // Start at Top
{
- MovIndicatorRenderer track(x+spr->getwidth()/2, y+spr->getheight(), x+spr->getwidth()/2, y+spr->getheight()+distance, true, QColor(244,250,255));
+ MovIndicatorRenderer track(x+spr->getwidth()/2, y+spr->getheight()-10, x+spr->getwidth()/2, y+spr->getheight()+distance, true, QColor(244,250,255));
track.render(painter);
}
else // Start at Bottom
@@ -3496,7 +3495,7 @@ void UrchinRenderer::render(QPainter *painter, QRect *drawrect)
MovIndicatorRenderer upTrack(x+spr->getwidth()/2, y, x+spr->getwidth()/2, y-distance, true, QColor(244,250,255));
upTrack.render(painter);
- MovIndicatorRenderer downTrack(x+spr->getwidth()/2, y+spr->getheight(), x+spr->getwidth()/2, y+spr->getheight()+distance, true, QColor(244,250,255));
+ MovIndicatorRenderer downTrack(x+spr->getwidth()/2, y+spr->getheight()-10, x+spr->getwidth()/2, y+spr->getheight()+distance, true, QColor(244,250,255));
downTrack.render(painter);
}
}
@@ -3506,12 +3505,12 @@ void UrchinRenderer::render(QPainter *painter, QRect *drawrect)
{
if (spr->getNybble(9)) // Start at Right
{
- MovIndicatorRenderer leftTrack(x, y+spr->getheight()/2, x-distance, y+spr->getheight()/2, false, QColor(244,250,255));
+ MovIndicatorRenderer leftTrack(x+20, y+spr->getheight()/2, x-distance, y+spr->getheight()/2, false, QColor(244,250,255));
leftTrack.render(painter);
}
else // Start at Left
{
- MovIndicatorRenderer rightTrack(x+spr->getwidth(), y+spr->getheight()/2, x+spr->getwidth()+distance, y+spr->getheight(), false, QColor(244,250,255));
+ MovIndicatorRenderer rightTrack(x+spr->getwidth()-20, y+spr->getheight()/2, x+spr->getwidth()+distance, y+spr->getheight(), false, QColor(244,250,255));
rightTrack.render(painter);
}
}
@@ -3519,10 +3518,10 @@ void UrchinRenderer::render(QPainter *painter, QRect *drawrect)
{
distance = distance/2;
- MovIndicatorRenderer leftTrack(x, y+spr->getheight()/2, x-distance, y+spr->getheight()/2, false, QColor(244,250,255));
+ MovIndicatorRenderer leftTrack(x+20, y+spr->getheight()/2, x-distance, y+spr->getheight()/2, false, QColor(244,250,255));
leftTrack.render(painter);
- MovIndicatorRenderer rightTrack(x+spr->getwidth(), y+spr->getheight()/2, x+spr->getwidth()+distance, y+spr->getheight(), false, QColor(244,250,255));
+ MovIndicatorRenderer rightTrack(x+spr->getwidth()-20, y+spr->getheight()/2, x+spr->getwidth()+distance, y+spr->getheight(), false, QColor(244,250,255));
rightTrack.render(painter);
}
}
diff --git a/objectrenderer.h b/objectrenderer.h
index c163333..ad627e9 100644
--- a/objectrenderer.h
+++ b/objectrenderer.h
@@ -88,7 +88,7 @@ class MovIndicatorRenderer: public ObjectRenderer
public:
MovIndicatorRenderer();
MovIndicatorRenderer(int startX, int startY, int endX, int endY, bool vertical, QColor color);
- MovIndicatorRenderer(int startX, int startY, int endX, int endY, int thickness, int radius, bool applyOffset, bool vertical, QColor color);
+ MovIndicatorRenderer(int startX, int startY, int endX, int endY, int thickness, int radius, bool vertical, QColor color);
using ObjectRenderer::render;
void render(QPainter *painter);
protected:
@@ -98,7 +98,6 @@ class MovIndicatorRenderer: public ObjectRenderer
int endY;
int thickness;
int radius;
- bool applyOffset;
bool vertical;
QColor color;
};