|
|
|
#include "Map.h"
|
|
|
|
#include "Crawler.h"
|
|
|
|
|
|
|
|
INCLUDE_game
|
|
|
|
|
|
|
|
float TileGroup::FADE_TIME=0.3;
|
|
|
|
uint8_t TileGroup::FADE_AMT=160;
|
|
|
|
|
|
|
|
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;
|
|
|
|
}
|