From 0f3134fc15571729baad9eb8058d9837a0a3054f Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 27 Jan 2013 10:22:03 +0100 Subject: [PATCH] sctoff2xy(): New, factored out of sct_oninit() Signed-off-by: Markus Armbruster --- include/xy.h | 1 + src/lib/common/filetable.c | 5 ++--- src/lib/common/xy.c | 8 +++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/include/xy.h b/include/xy.h index c230c13b4..9d19a4cb1 100644 --- a/include/xy.h +++ b/include/xy.h @@ -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); diff --git a/src/lib/common/filetable.c b/src/lib/common/filetable.c index b38a270f5..8e0f50433 100644 --- a/src/lib/common/filetable.c +++ b/src/lib/common/filetable.c @@ -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 @@ -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; diff --git a/src/lib/common/xy.c b/src/lib/common/xy.c index 5bcdc407c..ba34ccc60 100644 --- a/src/lib/common/xy.c +++ b/src/lib/common/xy.c @@ -28,7 +28,7 @@ * * Known contributors to this file: * Dave Pare, 1989 - * Markus Armbruster, 2004-2011 + * Markus Armbruster, 2004-2013 */ #include @@ -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) { -- 2.43.0