home *** CD-ROM | disk | FTP | other *** search
- #include <allegro.h>
- #include "mappyal.h"
- #include "scroller.h"
-
- tilescroller::tilescroller() {
- xoffset = 0;
- yoffset = 0;
- }
-
- tilescroller::~tilescroller() {
- MapFreeMem();
- }
-
- int tilescroller::loadmap(char *filename) {
- int ret = MapLoad(filename);
-
- //MapLoad returns wrong value for success
- if (ret == 0) {
- if (mapwidth == 0) return 1;
- _mapwidth = mapwidth;
- _mapheight = mapheight;
- _tilewidth = mapblockwidth;
- _tileheight = mapblockheight;
- MapSetPal8();
- return 1;
- } else {
- return 0;
- }
- }
-
- void tilescroller::drawmap(BITMAP *dest) {
- MapDrawBG(dest, xoffset, yoffset, 0, 0, SCREEN_W-1, SCREEN_H-1);
-
- //make sure it doesn't scroll beyond map edge
- if (xoffset < 0) xoffset = 0;
- if (xoffset > _mapwidth * _tilewidth - SCREEN_W)
- xoffset = _mapwidth * _tilewidth - SCREEN_W;
-
- if (yoffset < 0) yoffset = 0;
- if (yoffset > _mapheight * _tileheight - SCREEN_H)
- yoffset = _mapheight * _tileheight - SCREEN_H;
-
- }
-