mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-23 20:09:46 +03:00
Integrate touch related development. (#90)
* * 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
This commit is contained in:
43
source/client/player/input/PolygonArea.cpp
Normal file
43
source/client/player/input/PolygonArea.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user