Allow jumpgate to be put into "sleep" state: effectively inactive.
This commit is contained in:
parent
a74ff87a46
commit
99013a4e99
|
@ -74,7 +74,7 @@
|
||||||
"type" : "ET_JUMPGATE",
|
"type" : "ET_JUMPGATE",
|
||||||
"x" : 25,
|
"x" : 25,
|
||||||
"y" : 25,
|
"y" : 25,
|
||||||
"active" : 0
|
"sleeping" : 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"script" : [
|
"script" : [
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
"MSG_BOX Dodds;Estelle, we've got this. We can take them.",
|
"MSG_BOX Dodds;Estelle, we've got this. We can take them.",
|
||||||
"MSG_BOX de Winter;We're taking too many losses, Dodds. Fall back now, that's an order.",
|
"MSG_BOX de Winter;We're taking too many losses, Dodds. Fall back now, that's an order.",
|
||||||
"WAIT_MSG_BOX",
|
"WAIT_MSG_BOX",
|
||||||
"ACTIVATE_ENTITIES Jumpgate",
|
"ACTIVATE_JUMPGATE",
|
||||||
"RETREAT_ALLIES"
|
"RETREAT_ALLIES"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,7 +110,7 @@
|
||||||
"type" : "ET_JUMPGATE",
|
"type" : "ET_JUMPGATE",
|
||||||
"x" : 10,
|
"x" : 10,
|
||||||
"y" : 8,
|
"y" : 8,
|
||||||
"active" : 0
|
"sleeping" : 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"items" : [
|
"items" : [
|
||||||
|
@ -153,7 +153,7 @@
|
||||||
"WAIT 2",
|
"WAIT 2",
|
||||||
"MSG_BOX Tug;Tow cable attached. Ready to head home.",
|
"MSG_BOX Tug;Tow cable attached. Ready to head home.",
|
||||||
"MSG_BOX Carr;We're done here. Let's bring our mystery guest in.",
|
"MSG_BOX Carr;We're done here. Let's bring our mystery guest in.",
|
||||||
"ACTIVATE_ENTITIES Jumpgate",
|
"ACTIVATE_JUMPGATE",
|
||||||
"WAIT 20",
|
"WAIT 20",
|
||||||
"ACTIVATE_ENTITIES Dart",
|
"ACTIVATE_ENTITIES Dart",
|
||||||
"ACTIVATE_OBJECTIVES Destroy intercepting Darts",
|
"ACTIVATE_OBJECTIVES Destroy intercepting Darts",
|
||||||
|
|
|
@ -139,7 +139,7 @@ void doEntities(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e->alive == ALIVE_ALIVE || e->alive == ALIVE_DYING)
|
if (e->alive == ALIVE_ALIVE || e->alive == ALIVE_DYING || e->alive == ALIVE_SLEEPING)
|
||||||
{
|
{
|
||||||
if (e->action != NULL)
|
if (e->action != NULL)
|
||||||
{
|
{
|
||||||
|
@ -391,7 +391,7 @@ void drawEntities(void)
|
||||||
|
|
||||||
static void drawEntity(Entity *e)
|
static void drawEntity(Entity *e)
|
||||||
{
|
{
|
||||||
if (e->type == ET_JUMPGATE)
|
if (e->type == ET_JUMPGATE && e->alive == ALIVE_ALIVE)
|
||||||
{
|
{
|
||||||
blitRotated(jumpPortal, e->x - battle.camera.x, e->y - battle.camera.y, jumpPortAngle);
|
blitRotated(jumpPortal, e->x - battle.camera.x, e->y - battle.camera.y, jumpPortAngle);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,10 @@ static void think(void)
|
||||||
self->angle -= 360;
|
self->angle -= 360;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (self->alive == ALIVE_ALIVE)
|
||||||
|
{
|
||||||
handleFleeingEntities();
|
handleFleeingEntities();
|
||||||
|
}
|
||||||
|
|
||||||
battle.jumpgate = self;
|
battle.jumpgate = self;
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,6 +141,10 @@ static void executeNextLine(ScriptRunner *runner)
|
||||||
sscanf(line, "%*s %[^\n]", strParam[0]);
|
sscanf(line, "%*s %[^\n]", strParam[0]);
|
||||||
activateLocations(strParam[0]);
|
activateLocations(strParam[0]);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(command, "ACTIVATE_JUMPGATE") == 0)
|
||||||
|
{
|
||||||
|
battle.jumpgate->alive = ALIVE_ALIVE;
|
||||||
|
}
|
||||||
else if (strcmp(command, "MSG_BOX") == 0)
|
else if (strcmp(command, "MSG_BOX") == 0)
|
||||||
{
|
{
|
||||||
sscanf(line, "%*s %255[^;]%*c%255[^\n]", strParam[0], strParam[1]);
|
sscanf(line, "%*s %255[^;]%*c%255[^\n]", strParam[0], strParam[1]);
|
||||||
|
|
|
@ -165,7 +165,8 @@ enum
|
||||||
ALIVE_ALIVE,
|
ALIVE_ALIVE,
|
||||||
ALIVE_DYING,
|
ALIVE_DYING,
|
||||||
ALIVE_DEAD,
|
ALIVE_DEAD,
|
||||||
ALIVE_ESCAPED
|
ALIVE_ESCAPED,
|
||||||
|
ALIVE_SLEEPING /* used by jumpgate */
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
|
|
@ -565,7 +565,7 @@ static void loadEntities(cJSON *node)
|
||||||
{
|
{
|
||||||
Entity *e;
|
Entity *e;
|
||||||
char *name, *groupName;
|
char *name, *groupName;
|
||||||
int i, type, scatter, number, active;
|
int i, type, scatter, number, active, sleeping;
|
||||||
float x, y;
|
float x, y;
|
||||||
|
|
||||||
if (node)
|
if (node)
|
||||||
|
@ -586,6 +586,7 @@ static void loadEntities(cJSON *node)
|
||||||
number = getJSONValue(node, "number", 1);
|
number = getJSONValue(node, "number", 1);
|
||||||
active = getJSONValue(node, "active", 1);
|
active = getJSONValue(node, "active", 1);
|
||||||
scatter = getJSONValue(node, "scatter", 1);
|
scatter = getJSONValue(node, "scatter", 1);
|
||||||
|
sleeping = getJSONValue(node, "sleeping", 0);
|
||||||
|
|
||||||
for (i = 0 ; i < number ; i++)
|
for (i = 0 ; i < number ; i++)
|
||||||
{
|
{
|
||||||
|
@ -626,6 +627,11 @@ static void loadEntities(cJSON *node)
|
||||||
|
|
||||||
e->active = active;
|
e->active = active;
|
||||||
|
|
||||||
|
if (sleeping)
|
||||||
|
{
|
||||||
|
e->alive = ALIVE_SLEEPING;
|
||||||
|
}
|
||||||
|
|
||||||
SDL_QueryTexture(e->texture, NULL, NULL, &e->w, &e->h);
|
SDL_QueryTexture(e->texture, NULL, NULL, &e->w, &e->h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue