Removed all objectives tweak, replaced with No Doors. Tweaks to item and pushblock mirroring. Other minor mission tweak fixes.

This commit is contained in:
Steve 2018-05-15 08:32:16 +01:00
parent 1ad4746a27
commit 24f677236a
7 changed files with 29 additions and 6 deletions

View File

@ -440,7 +440,7 @@ enum
}; };
#define PLUS_NONE 0 #define PLUS_NONE 0
#define PLUS_ALL_OBJS (2 << 0) #define PLUS_NO_DOORS (2 << 0)
#define PLUS_STRONGER (2 << 1) #define PLUS_STRONGER (2 << 1)
#define PLUS_RANDOM (2 << 2) #define PLUS_RANDOM (2 << 2)
#define PLUS_KILL_ALL (2 << 3) #define PLUS_KILL_ALL (2 << 3)

View File

@ -247,6 +247,11 @@ static void load(cJSON *root)
{ {
i->collected = cJSON_GetObjectItem(root, "collected")->valueint; i->collected = cJSON_GetObjectItem(root, "collected")->valueint;
} }
if (game.plus & PLUS_MIRROR)
{
i->startX = MAP_PIXEL_WIDTH - i->startX;
}
} }
static void save(cJSON *root) static void save(cJSON *root)

View File

@ -77,7 +77,7 @@ static void init(void)
s->closedY = s->y; s->closedY = s->y;
} }
if (game.plus & PLUS_ALL_OBJS) if (game.plus & PLUS_NO_DOORS)
{ {
s->alive = ALIVE_DEAD; s->alive = ALIVE_DEAD;
} }

View File

@ -28,3 +28,4 @@ extern void playBattleSound(int snd, int ch, int x, int y);
extern int rrnd(int low, int high); extern int rrnd(int low, int high);
extern Entity *self; extern Entity *self;
extern Game game;

View File

@ -664,6 +664,7 @@ static void cancel(void)
hideAllWidgets(); hideAllWidgets();
showing = SHOW_NONE; showing = SHOW_NONE;
selectedMission = NULL; selectedMission = NULL;
doPlusSettings = 0;
app.keyboard[SDL_SCANCODE_ESCAPE] = 0; app.keyboard[SDL_SCANCODE_ESCAPE] = 0;
} }
@ -671,9 +672,9 @@ static void startMissionPlus(void)
{ {
game.plus = 0; game.plus = 0;
if (getWidget("allObjectives", "missionPlus")->value[0]) if (getWidget("noDoors", "missionPlus")->value[0])
{ {
game.plus |= PLUS_ALL_OBJS; game.plus |= PLUS_NO_DOORS;
} }
if (getWidget("randomEnemies", "missionPlus")->value[0]) if (getWidget("randomEnemies", "missionPlus")->value[0])

View File

@ -1146,6 +1146,7 @@ static int drawComparator(const void *a, const void *b)
static void mirror(void) static void mirror(void)
{ {
Structure *s; Structure *s;
Item *i;
if (self->flags & EF_MIRROR) if (self->flags & EF_MIRROR)
{ {
@ -1174,6 +1175,21 @@ static void mirror(void)
s->tx -= self->w; s->tx -= self->w;
break; break;
case ET_PUSHBLOCK:
s = (Structure*)self;
if (s->x != s->startX)
{
s->startX = s->x;
s->startX -= self->w;
}
break;
case ET_ITEM:
case ET_KEY:
i = (Item*)self;
i->startX -= self->w;
break;
default: default:
break; break;
} }

View File

@ -52,10 +52,10 @@ void initObjectives(void)
} }
} }
if (world.isReturnVisit || game.plus & PLUS_ALL_OBJS) if (world.isReturnVisit)
{ {
o->targetValue = o->totalValue; o->targetValue = o->totalValue;
o->required = game.plus & PLUS_ALL_OBJS; o->required = game.isComplete;
} }
if ((strcmp(o->targetName, "ENEMY") == 0 && o->targetValue == o->totalValue) || game.plus & PLUS_KILL_ALL) if ((strcmp(o->targetName, "ENEMY") == 0 && o->targetValue == o->totalValue) || game.plus & PLUS_KILL_ALL)