#include "drawutil.h" #include "Crawler.h" #include "DEFINES.h" INCLUDE_game void drawutil::DrawCrosshair(Crawler*game,geom2d::rectrect,float accTime,float pulsatingAmt,float borderThickness){ vf2d crosshairExtension={std::min(0.25f*rect.size.x-borderThickness/2,12.f),std::min(0.25f*rect.size.y-borderThickness/2,12.f)}; vf2d pulseAmt=vf2d{1,1}*std::abs(std::sin(accTime*3))*2; //Lower-Left Corner vf2d pos=rect.pos+vf2d{0,rect.size.y-borderThickness}+vf2d{-pulseAmt.x,pulseAmt.y}; vf2d size={borderThickness+crosshairExtension.x,borderThickness}; game->FillRect(pos,size,RED); pos=vf2d{pos.x,pos.y-crosshairExtension.y}; size={borderThickness,crosshairExtension.y}; game->FillRect(pos,size,RED); //Lower-Right Corner pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,rect.size.y-borderThickness}+vf2d{pulseAmt.x,pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->FillRect(pos,size,RED); pos=vf2d{pos.x+crosshairExtension.x,pos.y-crosshairExtension.y}; size={borderThickness,crosshairExtension.y}; game->FillRect(pos,size,RED); //Upper-Left Corner pos=rect.pos+vf2d{0,0}+vf2d{-pulseAmt.x,-pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->FillRect(pos,size,RED); pos=vf2d{pos.x,pos.y+borderThickness}; size={borderThickness,crosshairExtension.y}; game->FillRect(pos,size,RED); //Upper-Right Corner pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,0}+vf2d{pulseAmt.x,-pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->FillRect(pos,size,RED); pos=vf2d{pos.x+crosshairExtension.x,pos.y+borderThickness}; size={borderThickness,crosshairExtension.y}; game->FillRect(pos,size,RED); }; void drawutil::DrawCrosshairTransformedView(olc::TransformedView&view,geom2d::rectrect,float accTime,float pulsatingAmt,float borderThickness){ vf2d crosshairExtension={std::min(0.25f*rect.size.x-borderThickness/2,12.f),std::min(0.25f*rect.size.y-borderThickness/2,12.f)}; vf2d pulseAmt=vf2d{1,1}*std::abs(std::sin(accTime*3))*2; //Lower-Left Corner vf2d pos=rect.pos+vf2d{0,rect.size.y-borderThickness}+vf2d{-pulseAmt.x,pulseAmt.y}; vf2d size={borderThickness+crosshairExtension.x,borderThickness}; game->view.FillRect(pos,size,RED); pos=vf2d{pos.x,pos.y-crosshairExtension.y}; size={borderThickness,crosshairExtension.y}; game->view.FillRect(pos,size,RED); //Lower-Right Corner pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,rect.size.y-borderThickness}+vf2d{pulseAmt.x,pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->view.FillRect(pos,size,RED); pos=vf2d{pos.x+crosshairExtension.x,pos.y-crosshairExtension.y}; size={borderThickness,crosshairExtension.y}; game->view.FillRect(pos,size,RED); //Upper-Left Corner pos=rect.pos+vf2d{0,0}+vf2d{-pulseAmt.x,-pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->view.FillRect(pos,size,RED); pos=vf2d{pos.x,pos.y+borderThickness}; size={borderThickness,crosshairExtension.y}; game->view.FillRect(pos,size,RED); //Upper-Right Corner pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,0}+vf2d{pulseAmt.x,-pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->view.FillRect(pos,size,RED); pos=vf2d{pos.x+crosshairExtension.x,pos.y+borderThickness}; size={borderThickness,crosshairExtension.y}; game->view.FillRect(pos,size,RED); } void drawutil::DrawCrosshairDecal(Crawler*game,geom2d::rectrect,float accTime,float pulsatingAmt,float borderThickness){ vf2d crosshairExtension={std::min(0.25f*rect.size.x-borderThickness/2,12.f),std::min(0.25f*rect.size.y-borderThickness/2,12.f)}; vf2d pulseAmt=vf2d{1,1}*std::abs(std::sin(accTime*3))*2; //Lower-Left Corner vf2d pos=rect.pos+vf2d{0,rect.size.y-borderThickness}+vf2d{-pulseAmt.x,pulseAmt.y}; vf2d size={borderThickness+crosshairExtension.x,borderThickness}; game->FillRectDecal(pos,size,RED); pos=vf2d{pos.x,pos.y-crosshairExtension.y}; size={borderThickness,crosshairExtension.y}; game->FillRectDecal(pos,size,RED); //Lower-Right Corner pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,rect.size.y-borderThickness}+vf2d{pulseAmt.x,pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->FillRectDecal(pos,size,RED); pos=vf2d{pos.x+crosshairExtension.x,pos.y-crosshairExtension.y}; size={borderThickness,crosshairExtension.y}; game->FillRectDecal(pos,size,RED); //Upper-Left Corner pos=rect.pos+vf2d{0,0}+vf2d{-pulseAmt.x,-pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->FillRectDecal(pos,size,RED); pos=vf2d{pos.x,pos.y+borderThickness}; size={borderThickness,crosshairExtension.y}; game->FillRectDecal(pos,size,RED); //Upper-Right Corner pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,0}+vf2d{pulseAmt.x,-pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->FillRectDecal(pos,size,RED); pos=vf2d{pos.x+crosshairExtension.x,pos.y+borderThickness}; size={borderThickness,crosshairExtension.y}; game->FillRectDecal(pos,size,RED); }; void drawutil::DrawCrosshairDecalTransformedView(olc::TransformedView&view,geom2d::rectrect,float accTime,float pulsatingAmt,float borderThickness){ vf2d crosshairExtension={std::min(0.25f*rect.size.x-borderThickness/2,12.f),std::min(0.25f*rect.size.y-borderThickness/2,12.f)}; vf2d pulseAmt=vf2d{1,1}*std::abs(std::sin(accTime*3))*2; //Lower-Left Corner vf2d pos=rect.pos+vf2d{0,rect.size.y-borderThickness}+vf2d{-pulseAmt.x,pulseAmt.y}; vf2d size={borderThickness+crosshairExtension.x,borderThickness}; game->view.FillRectDecal(pos,size,RED); pos=vf2d{pos.x,pos.y-crosshairExtension.y}; size={borderThickness,crosshairExtension.y}; game->view.FillRectDecal(pos,size,RED); //Lower-Right Corner pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,rect.size.y-borderThickness}+vf2d{pulseAmt.x,pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->view.FillRectDecal(pos,size,RED); pos=vf2d{pos.x+crosshairExtension.x,pos.y-crosshairExtension.y}; size={borderThickness,crosshairExtension.y}; game->view.FillRectDecal(pos,size,RED); //Upper-Left Corner pos=rect.pos+vf2d{0,0}+vf2d{-pulseAmt.x,-pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->view.FillRectDecal(pos,size,RED); pos=vf2d{pos.x,pos.y+borderThickness}; size={borderThickness,crosshairExtension.y}; game->view.FillRectDecal(pos,size,RED); //Upper-Right Corner pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,0}+vf2d{pulseAmt.x,-pulseAmt.y}; size={borderThickness+crosshairExtension.x,borderThickness}; game->view.FillRectDecal(pos,size,RED); pos=vf2d{pos.x+crosshairExtension.x,pos.y+borderThickness}; size={borderThickness,crosshairExtension.y}; game->view.FillRectDecal(pos,size,RED); }