BGE Bugfix

The End key didn't work work at all for the keyboard sensor.
Removed getEventList() since it was added since 2.48a release.
This commit is contained in:
Campbell Barton 2009-04-09 22:15:26 +00:00
parent b0cca7de26
commit ac45472a17
4 changed files with 10 additions and 46 deletions

@ -74,7 +74,7 @@ void KX_BlenderKeyboardDevice::NextFrame()
// now convert justpressed keyevents into regular (active) keyevents // now convert justpressed keyevents into regular (active) keyevents
int previousTable = 1-m_currentTable; int previousTable = 1-m_currentTable;
for (int keyevent= KX_BEGINKEY; keyevent< KX_ENDKEY;keyevent++) for (int keyevent= KX_BEGINKEY; keyevent<= KX_ENDKEY;keyevent++)
{ {
SCA_InputEvent& oldevent = m_eventStatusTables[previousTable][keyevent]; SCA_InputEvent& oldevent = m_eventStatusTables[previousTable][keyevent];
if (oldevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED || if (oldevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED ||
@ -100,7 +100,7 @@ bool KX_BlenderKeyboardDevice::ConvertBlenderEvent(unsigned short incode,short v
KX_EnumInputs kxevent = this->ToNative(incode); KX_EnumInputs kxevent = this->ToNative(incode);
// only process it, if it's a key // only process it, if it's a key
if (kxevent >= KX_BEGINKEY && kxevent < KX_ENDKEY) if (kxevent >= KX_BEGINKEY && kxevent <= KX_ENDKEY)
{ {
int previousTable = 1-m_currentTable; int previousTable = 1-m_currentTable;

@ -148,7 +148,7 @@ bool SCA_KeyboardSensor::Evaluate(CValue* eventval)
bool justreleased = false; bool justreleased = false;
bool active = false; bool active = false;
for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++)
{ {
const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i);
switch (inevent.m_status) switch (inevent.m_status)
@ -387,7 +387,7 @@ void SCA_KeyboardSensor::LogKeystrokes(void)
int index = 0; int index = 0;
/* Check on all keys whether they were pushed. This does not /* Check on all keys whether they were pushed. This does not
* untangle the ordering, so don't type too fast :) */ * untangle the ordering, so don't type too fast :) */
for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++)
{ {
const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i);
if (inevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED) //NO_INPUTSTATUS) if (inevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED) //NO_INPUTSTATUS)
@ -522,7 +522,7 @@ PyObject* SCA_KeyboardSensor::PyGetPressedKeys(PyObject* self, PyObject* args, P
int index = 0; int index = 0;
for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++)
{ {
const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i);
if ((inevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED) if ((inevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED)
@ -562,7 +562,7 @@ PyObject* SCA_KeyboardSensor::PyGetCurrentlyPressedKeys(PyObject* self, PyObject
{ {
int index = 0; int index = 0;
for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++)
{ {
const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i);
if ( (inevent.m_status == SCA_InputEvent::KX_ACTIVE) if ( (inevent.m_status == SCA_InputEvent::KX_ACTIVE)
@ -583,30 +583,6 @@ PyObject* SCA_KeyboardSensor::PyGetCurrentlyPressedKeys(PyObject* self, PyObject
return resultlist; return resultlist;
} }
KX_PYMETHODDEF_DOC_NOARGS(SCA_KeyboardSensor, getEventList,
"getEventList()\n"
"\tGet the list of the keyboard events in this frame.\n")
{
ShowDeprecationWarning("getEventList()", "events");
SCA_IInputDevice* inputdev = m_pKeyboardMgr->GetInputDevice();
PyObject* resultlist = PyList_New(0);
for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++)
{
const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i);
if (inevent.m_status != SCA_InputEvent::KX_NO_INPUTSTATUS)
{
PyObject* keypair = PyList_New(2);
PyList_SET_ITEM(keypair,0,PyInt_FromLong(i));
PyList_SetItem(keypair,1,PyInt_FromLong(inevent.m_status));
PyList_Append(resultlist,keypair);
}
}
return resultlist;
}
//<---- Deprecated //<---- Deprecated
KX_PYMETHODDEF_DOC_O(SCA_KeyboardSensor, getKeyStatus, KX_PYMETHODDEF_DOC_O(SCA_KeyboardSensor, getKeyStatus,
@ -673,7 +649,6 @@ PyMethodDef SCA_KeyboardSensor::Methods[] = {
{"getPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetPressedKeys, METH_VARARGS, (PY_METHODCHAR)GetPressedKeys_doc}, {"getPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetPressedKeys, METH_VARARGS, (PY_METHODCHAR)GetPressedKeys_doc},
{"getCurrentlyPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetCurrentlyPressedKeys, METH_VARARGS, (PY_METHODCHAR)GetCurrentlyPressedKeys_doc}, {"getCurrentlyPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetCurrentlyPressedKeys, METH_VARARGS, (PY_METHODCHAR)GetCurrentlyPressedKeys_doc},
//<----- Deprecated //<----- Deprecated
KX_PYMETHODTABLE_NOARGS(SCA_KeyboardSensor, getEventList),
KX_PYMETHODTABLE_O(SCA_KeyboardSensor, getKeyStatus), KX_PYMETHODTABLE_O(SCA_KeyboardSensor, getKeyStatus),
{NULL,NULL} //Sentinel {NULL,NULL} //Sentinel
}; };
@ -709,7 +684,7 @@ PyObject* SCA_KeyboardSensor::pyattr_get_events(void *self_v, const KX_PYATTRIBU
PyObject* resultlist = PyList_New(0); PyObject* resultlist = PyList_New(0);
for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++)
{ {
const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i);
if (inevent.m_status != SCA_InputEvent::KX_NO_INPUTSTATUS) if (inevent.m_status != SCA_InputEvent::KX_NO_INPUTSTATUS)

@ -42,7 +42,7 @@ void GPC_KeyboardDevice::NextFrame()
// Now convert justpressed key events into regular (active) keyevents // Now convert justpressed key events into regular (active) keyevents
int previousTable = 1-m_currentTable; int previousTable = 1-m_currentTable;
for (int keyevent= KX_BEGINKEY; keyevent< KX_ENDKEY;keyevent++) for (int keyevent= KX_BEGINKEY; keyevent<= KX_ENDKEY;keyevent++)
{ {
SCA_InputEvent& oldevent = m_eventStatusTables[previousTable][keyevent]; SCA_InputEvent& oldevent = m_eventStatusTables[previousTable][keyevent];
if (oldevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED || if (oldevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED ||
@ -69,7 +69,7 @@ bool GPC_KeyboardDevice::ConvertEvent(int incode, int val)
KX_EnumInputs kxevent = this->ToNative(incode); KX_EnumInputs kxevent = this->ToNative(incode);
// only process it, if it's a key // only process it, if it's a key
if (kxevent >= KX_BEGINKEY && kxevent < KX_ENDKEY) if (kxevent >= KX_BEGINKEY && kxevent <= KX_ENDKEY)
{ {
int previousTable = 1-m_currentTable; int previousTable = 1-m_currentTable;
@ -114,9 +114,7 @@ bool GPC_KeyboardDevice::ConvertEvent(int incode, int val)
} }
} }
} }
} else if(kxevent==KX_ENDKEY) { }
exit(1);
}
return result; return result;
} }

@ -31,15 +31,6 @@ class SCA_KeyboardSensor(SCA_ISensor):
@type events: list [[keycode, status], ...] @type events: list [[keycode, status], ...]
""" """
def getEventList():
"""
Get a list of pressed keys that have either been pressed, or just released, or are active this frame.
B{DEPRECATED: Use the "events" property instead}.
@rtype: list of key status. [[keycode, status]]
@return: A list of keyboard events
"""
def getKeyStatus(keycode): def getKeyStatus(keycode):
""" """