|
|
|
|
@ -203,60 +203,6 @@ void ListActAllSprites(Game *game){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Sorting the sprites by y-coord, bruh
|
|
|
|
|
if(counter > 2 && current != game->sprites->tail){
|
|
|
|
|
if(current->data.y < current->prev->data.y){
|
|
|
|
|
Node *prepre = current->prev->prev;
|
|
|
|
|
Node *toBack = current->prev;
|
|
|
|
|
Node *toFront = current;
|
|
|
|
|
Node *back = current->next;
|
|
|
|
|
prepre->next = toFront;
|
|
|
|
|
toFront->next = toBack;
|
|
|
|
|
toFront->prev = prepre;
|
|
|
|
|
toBack->prev = toFront;
|
|
|
|
|
toBack->next = back;
|
|
|
|
|
back->prev = toBack;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(counter > 2 && current == game->sprites->tail){
|
|
|
|
|
if(current->data.y < current->prev->data.y){
|
|
|
|
|
Node *prepre = current->prev->prev;
|
|
|
|
|
Node *toBack = current->prev;
|
|
|
|
|
Node *toFront = current;
|
|
|
|
|
prepre->next = toFront;
|
|
|
|
|
toFront->next = toBack;
|
|
|
|
|
toFront->prev = prepre;
|
|
|
|
|
toBack->prev = toFront;
|
|
|
|
|
toBack->next = 0;
|
|
|
|
|
game->sprites->tail = toBack;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(counter == 2 && current != game->sprites->tail){
|
|
|
|
|
if(current->data.y < current->prev->data.y){
|
|
|
|
|
Node *toBack = current->prev;
|
|
|
|
|
Node *toFront = current;
|
|
|
|
|
Node *back = current->next;
|
|
|
|
|
toFront->next = toBack;
|
|
|
|
|
toBack->prev = toFront;
|
|
|
|
|
toBack->next = back;
|
|
|
|
|
back->prev = toBack;
|
|
|
|
|
toFront->prev = 0;
|
|
|
|
|
game->sprites->head = toFront;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(counter == 2 && current == game->sprites->tail){
|
|
|
|
|
if(current->data.y < current->prev->data.y){
|
|
|
|
|
Node *toBack = current->prev;
|
|
|
|
|
Node *toFront = current;
|
|
|
|
|
toBack->prev = toFront;
|
|
|
|
|
toBack->next = 0;
|
|
|
|
|
toFront->next = toBack;
|
|
|
|
|
toFront->prev = 0;
|
|
|
|
|
game->sprites->head = toFront;
|
|
|
|
|
game->sprites->tail = toBack;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SpriteUpdateAnimation(¤t->data);
|
|
|
|
|
// updating z-position according to the tile the sprite stands on
|
|
|
|
|
Tile *floorTile = IsometricMapGetTileFromWorldCoordinates(game->layers, current->data.x, current->data.y, 0);
|
|
|
|
|
|