passing pointer to change its value but stay still
I am working on C++ with allegro library.
there is draw_tiles function.
void draw_tiles(def_sm
You need to pass a pointer to pointer to achieve that:
void loadTilemap(int i,BITMAP ** tileLayer){
char c[128];
sprintf(c,TILEPATHFORMAT,i);
*tileLayer= load_bitmap(c,NULL);
}
loadTilemap(s_world->tilemap, &TileMap);
That's assuming TileMap
is of type BITMAP *
.
Alternatively, you could simply return the BITMAP*
pointer as a result of loadTilemap
:
BITMAP* loadTilemap(int i,BITMAP * tileLayer){
char c[128];
sprintf(c,TILEPATHFORMAT,i);
return load_bitmap(c,NULL);
}
TileMap = loadTilemap(s_world->tilemap, TileMap);
This would allow you to get rid of tileLayer
parameter altogether, as you don't seem to be using it for anything else in loadTileMap
(i.e. it's only an output parameter).