Use grid cell coords for placing entities.

This commit is contained in:
Steve 2015-11-02 10:49:10 +00:00
parent a7c1906950
commit b748d23267
14 changed files with 91 additions and 110 deletions

View File

@ -25,8 +25,8 @@
"types" : "Firefly;Nymph", "types" : "Firefly;Nymph",
"number" : 3, "number" : 3,
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 640, "x" : 25,
"y" : 1000, "y" : 26,
"scatter" : 64 "scatter" : 64
} }
], ],
@ -34,8 +34,8 @@
{ {
"type" : "ET_WAYPOINT", "type" : "ET_WAYPOINT",
"number" : 5, "number" : 5,
"x" : 640, "x" : 25,
"y" : 480, "y" : 25,
"scatter" : 7500 "scatter" : 7500
} }
] ]

View File

@ -48,8 +48,8 @@
"types" : "Firefly;Nymph", "types" : "Firefly;Nymph",
"number" : 4, "number" : 4,
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 640, "x" : 25,
"y" : 1000, "y" : 26,
"scatter" : 64 "scatter" : 64
}, },
{ {
@ -57,8 +57,8 @@
"types" : "Jackal", "types" : "Jackal",
"number" : 3, "number" : 3,
"side" : "SIDE_PANDORAN", "side" : "SIDE_PANDORAN",
"x" : 640, "x" : 25,
"y" : 1000, "y" : 26,
"scatter" : 64, "scatter" : 64,
"active" : 0 "active" : 0
} }
@ -67,8 +67,8 @@
{ {
"type" : "ET_WAYPOINT", "type" : "ET_WAYPOINT",
"number" : 5, "number" : 5,
"x" : 640, "x" : 25,
"y" : 480, "y" : 25,
"scatter" : 7500 "scatter" : 7500
} }
] ]

View File

@ -27,8 +27,8 @@
"name" : "ALLIES", "name" : "ALLIES",
"types" : "Firefly;Nymph;Leopard;Hyena", "types" : "Firefly;Nymph;Leopard;Hyena",
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 640, "x" : 25,
"y" : 0, "y" : 24,
"number" : 100, "number" : 100,
"scatter" : 5000 "scatter" : 5000
}, },
@ -36,8 +36,8 @@
"name" : "Pandoran", "name" : "Pandoran",
"types" : "Jackal;Sphinx", "types" : "Jackal;Sphinx",
"side" : "SIDE_PANDORAN", "side" : "SIDE_PANDORAN",
"x" : 7000, "x" : 35,
"y" : 0, "y" : 24,
"number" : 80, "number" : 80,
"scatter" : 5000 "scatter" : 5000
} }

View File

@ -32,16 +32,16 @@
"types" : "ATAF", "types" : "ATAF",
"number" : 4, "number" : 4,
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 0, "x" : 26,
"y" : 0 "y" : 25
}, },
{ {
"name" : "Pandoran", "name" : "Pandoran",
"types" : "Jackal;Sphinx;Nymph", "types" : "Jackal;Sphinx;Nymph",
"number" : 20, "number" : 20,
"side" : "SIDE_PANDORAN", "side" : "SIDE_PANDORAN",
"x" : -5000, "x" : 20,
"y" : 0, "y" : 25,
"scatter" : 2000 "scatter" : 2000
}, },
{ {
@ -49,8 +49,8 @@
"types" : "Jackal;Sphinx;Nymph", "types" : "Jackal;Sphinx;Nymph",
"number" : 20, "number" : 20,
"side" : "SIDE_PANDORAN", "side" : "SIDE_PANDORAN",
"x" : -5000, "x" : 20,
"y" : 5000, "y" : 20,
"scatter" : 2000 "scatter" : 2000
}, },
{ {
@ -58,8 +58,8 @@
"types" : "Jackal;Sphinx;Nymph", "types" : "Jackal;Sphinx;Nymph",
"number" : 20, "number" : 20,
"side" : "SIDE_PANDORAN", "side" : "SIDE_PANDORAN",
"x" : -5000, "x" : 20,
"y" : -5000, "y" : 30,
"scatter" : 2000 "scatter" : 2000
}, },
{ {
@ -67,8 +67,8 @@
"types" : "Nymph", "types" : "Nymph",
"number" : 20, "number" : 20,
"side" : "SIDE_PANDORAN", "side" : "SIDE_PANDORAN",
"x" : 5000, "x" : 30,
"y" : 8000, "y" : 40,
"scatter" : 2000 "scatter" : 2000
}, },
{ {
@ -76,8 +76,8 @@
"types" : "Jackal;Sphinx", "types" : "Jackal;Sphinx",
"number" : 20, "number" : 20,
"side" : "SIDE_PANDORAN", "side" : "SIDE_PANDORAN",
"x" : 7000, "x" : 30,
"y" : -4000, "y" : 20,
"scatter" : 2000 "scatter" : 2000
} }
] ]

View File

@ -27,8 +27,8 @@
"name" : "ALLIES", "name" : "ALLIES",
"types" : "Firefly;Nymph", "types" : "Firefly;Nymph",
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 640, "x" : 25,
"y" : 0, "y" : 24,
"number" : 75, "number" : 75,
"scatter" : 5000 "scatter" : 5000
}, },
@ -36,8 +36,8 @@
"name" : "Pandoran", "name" : "Pandoran",
"types" : "Jackal", "types" : "Jackal",
"side" : "SIDE_PANDORAN", "side" : "SIDE_PANDORAN",
"x" : 7000, "x" : 35,
"y" : 0, "y" : 30,
"number" : 50, "number" : 50,
"scatter" : 5000 "scatter" : 5000
} }

View File

@ -23,8 +23,8 @@
"name" : "Dart", "name" : "Dart",
"type" : "StaticDart", "type" : "StaticDart",
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : 800, "x" : 25.5,
"y" : 200 "y" : 24.5
} }
] ]
} }

View File

@ -23,8 +23,8 @@
"name" : "Dart", "name" : "Dart",
"type" : "UnarmedDart", "type" : "UnarmedDart",
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : 640, "x" : 25,
"y" : 0 "y" : 24
} }
] ]
} }

View File

@ -23,8 +23,8 @@
"name" : "Dart", "name" : "Dart",
"type" : "SimpleDart", "type" : "SimpleDart",
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : 640, "x" : 25,
"y" : -1000 "y" : 24
} }
] ]
} }

View File

@ -23,36 +23,25 @@
"name" : "TAF", "name" : "TAF",
"type" : "TAF", "type" : "TAF",
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 440, "x" : 24.9,
"y" : 480 "y" : 25.5
}, },
{ {
"name" : "TAF", "name" : "TAF",
"type" : "TAF", "type" : "TAF",
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 840, "x" : 25.1,
"y" : 480 "y" : 25.5
}, }
],
"fighterGroups" : [
{ {
"name" : "Dart", "name" : "Dart",
"type" : "SimpleDart", "types" : "SimpleDart",
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : 2640, "number" : 3,
"y" : -1500 "x" : 26,
}, "y" : 20
{
"name" : "Dart",
"type" : "SimpleDart",
"side" : "SIDE_PIRATE",
"x" : 2640,
"y" : -1500
},
{
"name" : "Dart",
"type" : "SimpleDart",
"side" : "SIDE_PIRATE",
"x" : 2640,
"y" : -1500
} }
] ]
} }

View File

@ -32,27 +32,14 @@
"pilot" : "Jim Goddard", "pilot" : "Jim Goddard",
"squadron" : "Midnight Runners" "squadron" : "Midnight Runners"
}, },
"fighters" : [ "fighterGroups" : [
{ {
"name" : "Dart", "name" : "Dart",
"type" : "SimpleDart", "types" : "SimpleDart",
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : 640, "number" : 3,
"y" : -1500 "x" : 26,
}, "y" : 20
{
"name" : "Dart",
"type" : "SimpleDart",
"side" : "SIDE_PIRATE",
"x" : 640,
"y" : -1500
},
{
"name" : "Dart",
"type" : "SimpleDart",
"side" : "SIDE_PIRATE",
"x" : 640,
"y" : -1500
} }
] ]
} }

View File

@ -38,16 +38,16 @@
"types" : "TAF", "types" : "TAF",
"number" : 4, "number" : 4,
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 0, "x" : 23,
"y" : 0 "y" : 25
}, },
{ {
"name" : "Dart", "name" : "Dart",
"types" : "SimpleDart", "types" : "SimpleDart",
"number" : 10, "number" : 10,
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : 1000, "x" : 27,
"y" : 5000, "y" : 35,
"scatter" : 2000 "scatter" : 2000
}, },
{ {
@ -55,8 +55,8 @@
"name" : "Dart", "name" : "Dart",
"number" : 10, "number" : 10,
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : -3000, "x" : 20,
"y" : -3000, "y" : 15,
"scatter" : 2000 "scatter" : 2000
}, },
{ {
@ -64,8 +64,8 @@
"types" : "SimpleDart", "types" : "SimpleDart",
"number" : 10, "number" : 10,
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : 0, "x" : 15,
"y" : -6000, "y" : 35,
"scatter" : 2000 "scatter" : 2000
} }
] ]

View File

@ -39,16 +39,16 @@
"types" : "TAF", "types" : "TAF",
"number" : 4, "number" : 4,
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 0, "x" : 25,
"y" : 0 "y" : 23
}, },
{ {
"name" : "Dart", "name" : "Dart",
"types" : "Dart", "types" : "Dart",
"number" : 12, "number" : 12,
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : -3000, "x" : 20,
"y" : 0, "y" : 25,
"scatter" : 2000 "scatter" : 2000
}, },
{ {
@ -56,8 +56,8 @@
"types" : "Dart", "types" : "Dart",
"number" : 12, "number" : 12,
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : 4000, "x" : 40,
"y" : 0, "y" : 25,
"scatter" : 2000 "scatter" : 2000
}, },
{ {
@ -65,8 +65,8 @@
"types" : "Dart", "types" : "Dart",
"number" : 12, "number" : 12,
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : 0, "x" : 25,
"y" : 6000, "y" : 35,
"scatter" : 2000 "scatter" : 2000
} }
] ]

View File

@ -47,8 +47,8 @@
"name" : "Pirate Leader", "name" : "Pirate Leader",
"type" : "Dart", "type" : "Dart",
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : -5000, "x" : 12,
"y" : 0, "y" : 25,
"flags" : "FF_NO_KILL+FF_DISABLE+FF_MISSION_TARGET" "flags" : "FF_NO_KILL+FF_DISABLE+FF_MISSION_TARGET"
} }
], ],
@ -58,16 +58,16 @@
"types" : "TAF", "types" : "TAF",
"number" : 2, "number" : 2,
"side" : "SIDE_ALLIES", "side" : "SIDE_ALLIES",
"x" : 1600, "x" : 27,
"y" : 400 "y" : 25
}, },
{ {
"name" : "Dart", "name" : "Dart",
"types" : "Dart", "types" : "Dart",
"number" : 12, "number" : 12,
"side" : "SIDE_PIRATE", "side" : "SIDE_PIRATE",
"x" : -5000, "x" : 15,
"y" : 0, "y" : 25,
"scatter" : 2000 "scatter" : 2000
} }
] ]

View File

@ -189,14 +189,17 @@ static void loadPlayer(cJSON *node)
type = cJSON_GetObjectItem(node, "type")->valuestring; type = cJSON_GetObjectItem(node, "type")->valuestring;
side = lookup(cJSON_GetObjectItem(node, "side")->valuestring); side = lookup(cJSON_GetObjectItem(node, "side")->valuestring);
player = spawnFighter(type, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, side); player = spawnFighter(type, 0, 0, side);
player->x = (GRID_SIZE * GRID_CELL_WIDTH) / 2;
player->y = (GRID_SIZE * GRID_CELL_HEIGHT) / 2;
} }
static void loadFighters(cJSON *node) static void loadFighters(cJSON *node)
{ {
Entity *f; Entity *f;
char *type; char *type;
int side, x, y; int side;
float x, y;
if (node) if (node)
{ {
@ -206,8 +209,8 @@ static void loadFighters(cJSON *node)
{ {
type = cJSON_GetObjectItem(node, "type")->valuestring; type = cJSON_GetObjectItem(node, "type")->valuestring;
side = lookup(cJSON_GetObjectItem(node, "side")->valuestring); side = lookup(cJSON_GetObjectItem(node, "side")->valuestring);
x = cJSON_GetObjectItem(node, "x")->valueint; x = cJSON_GetObjectItem(node, "x")->valuedouble * GRID_CELL_WIDTH;
y = cJSON_GetObjectItem(node, "y")->valueint; y = cJSON_GetObjectItem(node, "y")->valuedouble * GRID_CELL_HEIGHT;
f = spawnFighter(type, x, y, side); f = spawnFighter(type, x, y, side);
@ -232,8 +235,9 @@ static void loadFighterGroups(cJSON *node)
{ {
Entity *f; Entity *f;
char **types, *name, *type; char **types, *name, *type;
int side, x, y, scatter, number, active; int side, scatter, number, active;
int i, numTypes; int i, numTypes;
float x, y;
scatter = 1; scatter = 1;
active = 1; active = 1;
@ -247,9 +251,9 @@ static void loadFighterGroups(cJSON *node)
types = toFighterTypeArray(cJSON_GetObjectItem(node, "types")->valuestring, &numTypes); types = toFighterTypeArray(cJSON_GetObjectItem(node, "types")->valuestring, &numTypes);
side = lookup(cJSON_GetObjectItem(node, "side")->valuestring); side = lookup(cJSON_GetObjectItem(node, "side")->valuestring);
number = cJSON_GetObjectItem(node, "number")->valueint; number = cJSON_GetObjectItem(node, "number")->valueint;
x = cJSON_GetObjectItem(node, "x")->valueint;
y = cJSON_GetObjectItem(node, "y")->valueint;
name = cJSON_GetObjectItem(node, "name")->valuestring; name = cJSON_GetObjectItem(node, "name")->valuestring;
x = cJSON_GetObjectItem(node, "x")->valuedouble * GRID_CELL_WIDTH;
y = cJSON_GetObjectItem(node, "y")->valuedouble * GRID_CELL_HEIGHT;
if (cJSON_GetObjectItem(node, "scatter")) if (cJSON_GetObjectItem(node, "scatter"))
{ {
@ -307,8 +311,8 @@ static void loadEntities(cJSON *node)
STRNCPY(e->name, cJSON_GetObjectItem(node, "name")->valuestring, MAX_NAME_LENGTH); STRNCPY(e->name, cJSON_GetObjectItem(node, "name")->valuestring, MAX_NAME_LENGTH);
} }
e->x = cJSON_GetObjectItem(node, "x")->valueint; e->x = cJSON_GetObjectItem(node, "x")->valuedouble * GRID_CELL_WIDTH;
e->y = cJSON_GetObjectItem(node, "y")->valueint; e->y = cJSON_GetObjectItem(node, "y")->valuedouble * GRID_CELL_HEIGHT;
if (cJSON_GetObjectItem(node, "flags")) if (cJSON_GetObjectItem(node, "flags"))
{ {
@ -324,7 +328,8 @@ static void loadEntityGroups(cJSON *node)
{ {
Entity *e; Entity *e;
char *name; char *name;
int i, type, x, y, scatter, number; int i, type, scatter, number;
float x, y;
scatter = 1; scatter = 1;
@ -336,8 +341,8 @@ static void loadEntityGroups(cJSON *node)
{ {
type = lookup(cJSON_GetObjectItem(node, "type")->valuestring); type = lookup(cJSON_GetObjectItem(node, "type")->valuestring);
number = cJSON_GetObjectItem(node, "number")->valueint; number = cJSON_GetObjectItem(node, "number")->valueint;
x = cJSON_GetObjectItem(node, "x")->valueint; x = cJSON_GetObjectItem(node, "x")->valuedouble * GRID_CELL_WIDTH;
y = cJSON_GetObjectItem(node, "y")->valueint; y = cJSON_GetObjectItem(node, "y")->valuedouble * GRID_CELL_HEIGHT;
name = NULL; name = NULL;
if (cJSON_GetObjectItem(node, "name")) if (cJSON_GetObjectItem(node, "name"))