mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-04 19:36:43 +03:00
* * Add BuildActionIntention crap * * Set Client and World projects to use MP compilation * asd * * Use the new BuildActionIntention to break and place blocks. * * Reverse engineer the IArea system. * * Copy break logic from survival into creative conditionally * * Reverse IBuildInput and MouseHandler * Replace the new relative paths in the client project with $(MC_ROOT) again * * Reverse Multitouch, MouseDevice * * Reverse a bunch of auxiliary classes for input. * * Use CustomInputHolder instead of holding inputs manually. * * Reverse a whole BUNCH of things! * * Add feedback textures to the gitignore. * * D-pad now renders! Also loads of other work. * * More Stuff * * Finish touch control bug fixing. * * Finalize work. * * One last thing.. * * Add a "cramped" mode to the options screen and start menu. * * Oh, forgot to do something
44 lines
803 B
C++
44 lines
803 B
C++
#include "PolygonArea.hpp"
|
|
#include "common/Utils.hpp"
|
|
|
|
PolygonArea::PolygonArea(int count, const float* x, const float* y)
|
|
{
|
|
m_count = count;
|
|
m_xPos = new float[count];
|
|
m_yPos = new float[count];
|
|
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
m_xPos[i] = x[i];
|
|
m_yPos[i] = y[i];
|
|
}
|
|
}
|
|
|
|
PolygonArea::~PolygonArea()
|
|
{
|
|
SAFE_DELETE_ARRAY(m_xPos);
|
|
SAFE_DELETE_ARRAY(m_yPos);
|
|
}
|
|
|
|
bool PolygonArea::isInside(float x, float y)
|
|
{
|
|
bool result = false;
|
|
|
|
int idx = 0, idx2 = m_count - 1;
|
|
while (idx < m_count)
|
|
{
|
|
// horrible ass condition
|
|
if ((m_yPos[idx] <= y && m_yPos[idx2] > y || m_yPos[idx2] <= y && m_yPos[idx] > y)
|
|
&& ((((m_xPos[idx2] - m_xPos[idx]) * (y - m_yPos[idx]))
|
|
/ (m_yPos[idx2] - m_yPos[idx]))
|
|
+ m_xPos[idx]) > x)
|
|
{
|
|
result = !result;
|
|
}
|
|
|
|
idx2 = idx++;
|
|
}
|
|
|
|
return result;
|
|
}
|