|
|
|
@ -4587,13 +4587,9 @@ void SeasonI::DrawGameWorld() { |
|
|
|
|
int yTileOffset = cameraPos.y/32; |
|
|
|
|
for (auto&obj:OBJECTS) { |
|
|
|
|
if (!obj->drawn&&(!obj->dead||EDITING_LAYER==layer::ENCOUNTER)&& |
|
|
|
|
(MAP2[y+yTileOffset][(obj->GetPos().x+obj->originPoint.x)/32]->tileDegree==0&& |
|
|
|
|
(GetTileDegreeSafely(MAP2)&& |
|
|
|
|
obj->GetPos().y+obj->originPoint.y>(y+yTileOffset)*32&& |
|
|
|
|
obj->GetPos().y+obj->originPoint.y<=(y+yTileOffset+1)*32|| |
|
|
|
|
MAP2[y+yTileOffset][(obj->GetPos().x+obj->originPoint.x)/32]->tileDegree==-1&& //y=-x+b Check if 32-x position is greater than our y.
|
|
|
|
|
((int)(obj->GetPos().x+obj->originPoint.x)%32<32-(int)(obj->GetPos().y+obj->originPoint.y)%32)/*||
|
|
|
|
|
y+yTileOffset<(int)(obj->GetPos().y+obj->originPoint.y)/32*/)) { |
|
|
|
|
printf("%d<%d\n",(int)(obj->GetPos().x+obj->originPoint.x)%32,32-(int)(obj->GetPos().y+obj->originPoint.y)%32); |
|
|
|
|
obj->GetPos().y+obj->originPoint.y<=(y+yTileOffset+1)*32)) { |
|
|
|
|
obj->drawn=true; |
|
|
|
|
if (obj->blinkFrames>0) { |
|
|
|
|
obj->blinkFrames--; |
|
|
|
@ -5546,6 +5542,16 @@ void SeasonI::CenterCameraOnPlayer(){ |
|
|
|
|
cameraPos=PARTY_MEMBER_OBJ[0]->GetPos()+PARTY_MEMBER_OBJ[0]->originPoint/2-cameraOffset; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int SeasonI::GetPointQuadrantRelativeToLine(vi2d x1y1,vi2d x2y2,vi2d point){ |
|
|
|
|
return (x2y2.y - x1y1.y) * point.x + (x1y1.x - x2y2.x) * point.y + (x2y2.x * x1y1.y - x1y1.x * x2y2.y); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
char SeasonI::GetTileDegreeSafely(std::vector<std::vector<TILE*>>&data){ |
|
|
|
|
int tileY=(int)PARTY_MEMBER_OBJ[0]->GetPosWithOrigin().y/32; |
|
|
|
|
int tileX=(int)PARTY_MEMBER_OBJ[0]->GetPosWithOrigin().x/32; |
|
|
|
|
return tileX>=0&&tileY>=0&&tileX<data[0].size()&&tileY<data.size()?data[(int)PARTY_MEMBER_OBJ[0]->GetPosWithOrigin().y/32][(int)PARTY_MEMBER_OBJ[0]->GetPosWithOrigin().x/32]->tileDegree:0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef TEST_SUITE |
|
|
|
|
int main() |
|
|
|
|
{ |
|
|
|
|