From d5ae032d2b251a1604042f68a9cd3215c233792e Mon Sep 17 00:00:00 2001 From: oroborus Date: Wed, 16 Jul 2008 19:51:46 +0000 Subject: nove funkcie : extern void actionSpace(space_t *space, void *f, void *p); extern void actionSpaceFromLocation(space_t *space, void *f, void *p, int x, int y, int w, int h); casti kodu ktore tieto funkcie potrebovali boli prepisane tak aby ich pouzivali. ( moduly tak prepisem zajtra ) git-svn-id: http://opensvn.csie.org/tuxanci_ng@150 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/base/space.c | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'src/base/space.c') diff --git a/src/base/space.c b/src/base/space.c index fb51c40..42fce71 100644 --- a/src/base/space.c +++ b/src/base/space.c @@ -310,8 +310,48 @@ void printSpace(space_t *p) } } -void actionSpace(space_t *space) +void actionSpace(space_t *space, void *f, void *p) { + void (*fce)(space_t *space, void *f, void *p); + int len; + int i; + + fce = f; + len = space->list->count; + + for( i = 0 ; i < len ; i++ ) + { + fce(space, space->list->list[i], p); + + if( space->list->count == len-1 ) + { + len--; + i--; + } + } +} + +void actionSpaceFromLocation(space_t *space, void *f, void *p, int x, int y, int w, int h) +{ + void (*fce)(space_t *space, void *f, void *p); + list_t *list; + int len; + int i; + + fce = f; + + list = newList(); + + getObjectFromSpace(space, x, y, w, h, list); + + len = list->count; + + for( i = 0 ; i < len ; i++ ) + { + fce(space, list->list[i], p); + } + + destroyList(list); } void destroySpace(space_t *p) -- cgit v1.2.3