sctoff2xy(): New, factored out of sct_oninit()

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2013-01-27 10:22:03 +01:00
parent f2b1ea3161
commit 0f3134fc15
3 changed files with 10 additions and 4 deletions

View file

@ -65,6 +65,7 @@ extern coord strtoy(char *str, char **end);
extern coord xabs(struct natstr *np, coord relx);
extern coord yabs(struct natstr *np, coord rely);
extern int sctoff(coord x, coord y);
extern void sctoff2xy(coord *, coord *, int);
extern coord xnorm(coord x);
extern coord ynorm(coord y);
extern int xyinrange(coord x, coord y, struct range *rp);

View file

@ -27,7 +27,7 @@
* filetable.c: Empire game data file descriptions.
*
* Known contributors to this file:
* Markus Armbruster, 2005-2012
* Markus Armbruster, 2005-2013
*/
#include <config.h>
@ -281,8 +281,7 @@ sct_oninit(void *ptr)
{
struct sctstr *sp = (struct sctstr *)ptr;
sp->sct_y = sp->sct_uid * 2 / WORLD_X;
sp->sct_x = sp->sct_uid * 2 % WORLD_X + sp->sct_y % 2;
sctoff2xy(&sp->sct_x, &sp->sct_y, sp->sct_uid);
sp->sct_dist_x = sp->sct_x;
sp->sct_dist_y = sp->sct_y;
sp->sct_newtype = sp->sct_type = SCT_WATER;

View file

@ -28,7 +28,7 @@
*
* Known contributors to this file:
* Dave Pare, 1989
* Markus Armbruster, 2004-2011
* Markus Armbruster, 2004-2013
*/
#include <config.h>
@ -208,6 +208,12 @@ sctoff(coord x, coord y)
return XYOFFSET(XNORM(x), YNORM(y));
}
void sctoff2xy(coord *x, coord *y, int off)
{
*y = off * 2 / WORLD_X;
*x = off * 2 % WORLD_X + *y % 2;
}
coord
xnorm(coord x)
{