The open source repository for the action RPG game in development by Sig Productions titled 'Adventures in Lestoria'! https://forums.lestoria.net
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AdventuresInLestoria/Crawler/Map.cpp

50 lines
1.1 KiB

#include "Map.h"
#include "Crawler.h"
#include "safemap.h"
INCLUDE_game
INCLUDE_LEVEL_NAMES
float TileGroup::FADE_TIME=0.3;
uint8_t TileGroup::FADE_AMT=160;
Map&MapHelper::MapFromString(std::string mapName){
return game->MAP_DATA[LEVEL_NAMES[mapName]];
}
void TileGroup::InsertTile(TileRenderData tile){
if(tiles.size()==0){
range={tile.pos,{game->GetCurrentMap().tilewidth,game->GetCurrentMap().tilewidth}};
minX=tile.pos.x;
maxX=minX+game->GetCurrentMap().tilewidth;
minY=tile.pos.y;
maxY=minY+game->GetCurrentMap().tilewidth;
} else {
if(tile.pos.x<minX){
minX=tile.pos.x;
}
if(tile.pos.x+game->GetCurrentMap().tilewidth>maxX){
maxX=tile.pos.x+game->GetCurrentMap().tilewidth;
}
if(tile.pos.y<minY){
minY=tile.pos.y;
}
if(tile.pos.y+game->GetCurrentMap().tilewidth>maxY){
maxY=tile.pos.y+game->GetCurrentMap().tilewidth;
}
range={{minX,minY},{maxX-minX,maxY-minY}};
}
tiles.push_back(tile);
}
geom2d::rect<int>TileGroup::GetRange(){
return range;
}
geom2d::rect<int>TileGroup::GetFadeRange(){
return {range.pos+vi2d{-24,-24},range.size+vi2d{48,24}};
}
std::vector<TileRenderData>&TileGroup::GetTiles(){
return tiles;
}