Initial commit of Dink Smallwood HD source. See the "Programmer readme.txt" for information on how to set it up.
git-svn-id: svn://rtsoft.com/rtsvn/projects/RTDink@1469 353e56fe-9613-0410-8469-b96ad8e6f29c
This commit is contained in:
parent
dfbc2348a5
commit
d4f66a5d2e
115 changed files with 37737 additions and 0 deletions
112
source/Component/InventoryComponent.cpp
Normal file
112
source/Component/InventoryComponent.cpp
Normal file
|
@ -0,0 +1,112 @@
|
|||
#include "PlatformPrecomp.h"
|
||||
#include "InventoryComponent.h"
|
||||
#include "util/GLESUtils.h"
|
||||
#include "Entity/EntityUtils.h"
|
||||
#include "BaseApp.h"
|
||||
|
||||
InventoryComponent::InventoryComponent()
|
||||
{
|
||||
m_activeFinger = -1;
|
||||
|
||||
SetName("Inventory");
|
||||
}
|
||||
|
||||
InventoryComponent::~InventoryComponent()
|
||||
{
|
||||
}
|
||||
|
||||
void InventoryComponent::OnAdd(Entity *pEnt)
|
||||
{
|
||||
EntityComponent::OnAdd(pEnt);
|
||||
m_pArrowEnt = NULL;
|
||||
m_bGotFirstClick = false;
|
||||
m_pPos2d = &GetParent()->GetVar("pos2d")->GetVector2();
|
||||
|
||||
|
||||
//register ourselves to render if the parent does
|
||||
GetParent()->GetFunction("OnRender")->sig_function.connect(1, boost::bind(&InventoryComponent::OnRender, this, _1));
|
||||
GetParent()->GetFunction("OnUpdate")->sig_function.connect(1, boost::bind(&InventoryComponent::OnUpdate, this, _1));
|
||||
|
||||
AddInputMovementFocusIfNeeded(GetParent());
|
||||
|
||||
GetParent()->GetFunction("OnInput")->sig_function.connect(1, boost::bind(&InventoryComponent::OnInput, this, _1));
|
||||
|
||||
}
|
||||
|
||||
void InventoryComponent::OnRemove()
|
||||
{
|
||||
EntityComponent::OnRemove();
|
||||
}
|
||||
|
||||
void InventoryComponent::OnUpdatePos(CL_Vec2f vPos)
|
||||
{
|
||||
//LogMsg("Got %s", PrintVector2(vPos).c_str());
|
||||
DinkSetInventoryPosition(NativeToDinkCoords(vPos));
|
||||
}
|
||||
|
||||
void InventoryComponent::OnRender(VariantList *pVList)
|
||||
{
|
||||
//CL_Vec2f vFinalPos = pVList->m_variant[0].GetVector2()+*m_pPos2d;
|
||||
}
|
||||
|
||||
void InventoryComponent::OnUpdate(VariantList *pVList)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void InventoryComponent::OnInput( VariantList *pVList )
|
||||
{
|
||||
//0 = message type, 1 = parent coordinate offset
|
||||
CL_Vec2f pt = pVList->Get(1).GetVector2();
|
||||
//pt += GetAlignmentOffset(*m_pSize2d, eAlignment(*m_pAlignment));
|
||||
|
||||
switch (eMessageType( int(pVList->Get(0).GetFloat())))
|
||||
{
|
||||
case MESSAGE_TYPE_GUI_CLICK_START:
|
||||
{
|
||||
|
||||
uint32 fingerID = pVList->Get(2).GetUINT32();
|
||||
TouchTrackInfo *pTouch = GetBaseApp()->GetTouch(fingerID);
|
||||
if (pTouch->WasHandled()) return;
|
||||
pTouch->SetWasHandled(true);
|
||||
m_activeFinger = fingerID;
|
||||
}
|
||||
|
||||
OnUpdatePos(pt);
|
||||
break;
|
||||
|
||||
case MESSAGE_TYPE_GUI_CLICK_END:
|
||||
{
|
||||
|
||||
uint32 fingerID = pVList->Get(2).GetUINT32();
|
||||
if (fingerID == m_activeFinger)
|
||||
{
|
||||
|
||||
OnUpdatePos(pt);
|
||||
/*
|
||||
if (!m_bGotFirstClick)
|
||||
{
|
||||
//ignore this, they are just releasing from the previous menu's button
|
||||
m_bGotFirstClick = true;
|
||||
} else
|
||||
{
|
||||
*/
|
||||
if (DinkSetInventoryPosition(NativeToDinkCoords(pt)))
|
||||
{
|
||||
g_dglo.m_dirInput[DINK_INPUT_BUTTON1] = true;
|
||||
g_dglo.m_dirInputFinished[DINK_INPUT_BUTTON1] = true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
//HandleClickEnd(pt);
|
||||
break;
|
||||
case MESSAGE_TYPE_GUI_CLICK_MOVE:
|
||||
{
|
||||
uint32 fingerID = pVList->Get(2).GetUINT32();
|
||||
if (fingerID == m_activeFinger) OnUpdatePos(pt);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue