diff options
Diffstat (limited to 'src/graphic.c')
-rw-r--r-- | src/graphic.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/graphic.c b/src/graphic.c index bca8e2c..f067057 100644 --- a/src/graphic.c +++ b/src/graphic.c @@ -225,7 +225,7 @@ int paintTerrain(gameIni_t *gIni, gameRess_t *gRess, gameGraphics_t *gGraph) { return 0; } -int repaint(gameObjectsState_t *objStates, gameGraphSurfaces_t *srcSurfs, SDL_Rect *srcRect, SDL_Surface *dstSurf, SDL_Rect *viewport) { +int repaint(gameObjectsState_t *objStates, gameGraphSurfaces_t *srcSurfs, SDL_Rect *srcRect, SDL_Surface *dstSurf) { int res; gameObjectsState_t objToRepaint; int i; @@ -236,7 +236,7 @@ int repaint(gameObjectsState_t *objStates, gameGraphSurfaces_t *srcSurfs, SDL_Re for(i=0;i<objToRepaint.objCount;++i) { if(objToRepaint.allObj[i].zOrder>0) break; - res=paintObject(objToRepaint.allObj+i, dstSurf, viewport); + res=paintObject(objToRepaint.allObj+i, dstSurf, *srcRect); if ( res!=0 ) { logs(LOG_DEBUG, "repaint(), paintObject() failed"); } @@ -249,7 +249,7 @@ int repaint(gameObjectsState_t *objStates, gameGraphSurfaces_t *srcSurfs, SDL_Re } for(;i<objToRepaint.objCount;++i) { - res=paintObject(objToRepaint.allObj+i, dstSurf, viewport); + res=paintObject(objToRepaint.allObj+i, dstSurf, *srcRect); if ( res!=0 ) { logs(LOG_DEBUG, "repaint(), paintObject() failed"); } @@ -265,10 +265,11 @@ int findAndZSortObjects(gameObjectsState_t *objectsStat, SDL_Rect *offsetRect, g return 0; } -int paintObject(struct gameObjectState *obj, SDL_Surface *dstSurf, SDL_Rect *viewport) { -SDL_Rect dstRect; -dstRect.x=obj->pos.x+viewport->x; -dstRect.y=obj->pos.y+viewport->y; +int paintObject(struct gameObjectState *obj, SDL_Surface *dstSurf, SDL_Rect dstRect) { + //TODO SDL_Rect dstRect; + dstRect.x = obj->pos.x; + dstRect.y = obj->pos.y; + // TODO : blitter tous les objets dans le zOrder, pas que l'objet a rafraichir return SDL_BlitSurface(obj->s, NULL, dstSurf, &dstRect); } |