diff --git a/src/entities/structures/lift.c b/src/entities/structures/lift.c index 416ecda..6d68cbb 100644 --- a/src/entities/structures/lift.c +++ b/src/entities/structures/lift.c @@ -147,7 +147,7 @@ static void load(cJSON *root) if (game.plus & PLUS_MIRROR) { - s->tx = MAP_PIXEL_WIDTH - s->tx; + self->tx = MAP_PIXEL_WIDTH - self->tx; } } diff --git a/src/world/entities.c b/src/world/entities.c index 888dc1e..17f255d 100644 --- a/src/world/entities.c +++ b/src/world/entities.c @@ -1156,8 +1156,9 @@ static void mirror(void) case ET_LIFT: s = (Structure*)self; - if (s->tx == s->x) + if (s->startX == s->x) { + s->startX -= self->w; s->tx -= self->w; } break; diff --git a/src/world/worldLoader.c b/src/world/worldLoader.c index a7f3258..06384e5 100644 --- a/src/world/worldLoader.c +++ b/src/world/worldLoader.c @@ -188,6 +188,13 @@ static void loadEntities(cJSON *root) self->load(node); + if (game.plus & PLUS_MIRROR) + { + self->x = MAP_PIXEL_WIDTH - self->x; + + self->flags |= EF_MIRROR; + } + self->init(); self->animate(); @@ -196,13 +203,6 @@ static void loadEntities(cJSON *root) { self->alive = ALIVE_DEAD; } - - if (game.plus & PLUS_MIRROR) - { - self->x = MAP_PIXEL_WIDTH - self->x; - - self->flags |= EF_MIRROR; - } } }