Skip to content

Commit

Permalink
xrGame, xrEngine: replace DIK_ on SDL_SCANCODE_, fix mouse btn handle,
Browse files Browse the repository at this point in the history
fix multi-key handle
  • Loading branch information
eagleivg committed Jul 9, 2018
1 parent d0e39c8 commit e7963eb
Show file tree
Hide file tree
Showing 18 changed files with 104 additions and 82 deletions.
2 changes: 1 addition & 1 deletion src/Layers/xrRenderPC_R1/FStaticRender_RenderTarget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ BOOL CRenderTarget::Perform()
void CRenderTarget::Begin()
{
/*
if (g_pGameLevel->IR_GetKeyState(DIK_LSHIFT))
if (g_pGameLevel->IR_GetKeyState(SDL_SCANCODE_LSHIFT))
{
Msg ("[%5d]------------------------",Device.dwFrame);
SHOW (param_blur)
Expand Down
2 changes: 1 addition & 1 deletion src/xrEngine/Environment.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ void CEnvironment::OnFrame()
return;
#endif

// if (pInput->iGetAsyncKeyState(DIK_O)) SetWeatherFX("surge_day");
// if (pInput->iGetAsyncKeyState(SDL_SCANCODE_O)) SetWeatherFX("surge_day");
float current_weight;
lerp(current_weight);

Expand Down
50 changes: 35 additions & 15 deletions src/xrEngine/xr_input.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -243,56 +243,76 @@ void CInput::OnFrame(void)

while (SDL_PollEvent(&event))
{
#ifndef _EDITOR
if (Device.dwPrecacheFrame)
continue;
#endif
BOOL b_break_cycle = false;

switch (event.type)
{
case SDL_KEYDOWN:
{
cbStack.back()->IR_OnKeyboardPress(event.key.keysym.scancode);

if (0 != event.key.repeat)
cbStack.back()->IR_OnKeyboardHold(event.key.keysym.scancode);

KBState[event.key.keysym.scancode] = TRUE;
#ifndef _EDITOR
if (Device.dwPrecacheFrame == 0)
#endif
{
cbStack.back()->IR_OnKeyboardPress(event.key.keysym.scancode);

for (u32 i = 0; i < COUNT_KB_BUTTONS; i++)
if (KBState[i])
cbStack.back()->IR_OnKeyboardHold(i);
}
}
break;
case SDL_KEYUP:
{
cbStack.back()->IR_OnKeyboardRelease(event.key.keysym.scancode);
KBState[event.key.keysym.scancode] = FALSE;
#ifndef _EDITOR
if (Device.dwPrecacheFrame == 0)
#endif
{
cbStack.back()->IR_OnKeyboardRelease(event.key.keysym.scancode);
}
}
break;
case SDL_MOUSEMOTION:
#ifndef _EDITOR
if (Device.dwPrecacheFrame == 0)
#endif
{
timeStamp[0] = event.motion.timestamp;
timeStamp[1] = event.motion.timestamp;
cbStack.back()->IR_OnMouseMove(event.motion.xrel, event.motion.yrel);
}
break;
case SDL_MOUSEBUTTONUP:
#ifndef _EDITOR
if (Device.dwPrecacheFrame == 0)
#endif
{
cbStack.back()->IR_OnMouseRelease(event.button.button);
mouseState[event.button.button] = FALSE;
// cbStack.back()->IR_OnMouseRelease(event.button.button);
cbStack.back()->IR_OnKeyboardRelease(SDL_NUM_SCANCODES + event.button.button);
}
break;
case SDL_MOUSEBUTTONDOWN:
#ifndef _EDITOR
if (Device.dwPrecacheFrame == 0)
#endif
{
cbStack.back()->IR_OnMousePress(event.button.button);
mouseState[event.button.button] = TRUE;
// cbStack.back()->IR_OnMousePress(event.button.button);
cbStack.back()->IR_OnKeyboardPress(SDL_NUM_SCANCODES + event.button.button);

if (mouseState[event.button.button])
cbStack.back()->IR_OnMouseHold(event.button.button);

mouseState[event.button.button] = TRUE;
}
break;
case SDL_MOUSEWHEEL:
#ifndef _EDITOR
if (Device.dwPrecacheFrame == 0)
#endif
{
timeStamp[2] = event.wheel.timestamp;
cbStack.back()->IR_OnMouseWheel(event.wheel.direction);
cbStack.back()->IR_OnMouseWheel(event.wheel.y);
}
break;
case SDL_QUIT: // go to outside event loop
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/CameraLook.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ void CCameraLook::OnActivate(CCameraBase* old_cam)
#include "visual_memory_manager.h"
#include "actor_memory.h"

int cam_dik = DIK_LSHIFT;
int cam_dik = SDL_SCANCODE_LSHIFT;

Fvector CCameraLook2::m_cam_offset;
void CCameraLook2::OnActivate(CCameraBase* old_cam) { CCameraLook::OnActivate(old_cam); }
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/UIDialogHolder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ bool CDialogHolder::IR_UIOnKeyboardPress(SDL_Scancode dik)
{
Fvector2 cp = GetUICursor().GetCursorPosition();
EUIMessages action =
(dik == MOUSE_1) ? WINDOW_LBUTTON_DOWN : (dik == MOUSE_2) ? WINDOW_RBUTTON_DOWN : WINDOW_CBUTTON_DOWN;
(dik == MOUSE_1) ? WINDOW_LBUTTON_DOWN : (dik == MOUSE_2) ? WINDOW_CBUTTON_DOWN : WINDOW_RBUTTON_DOWN;
if (TIR->OnMouseAction(cp.x, cp.y, action))
return true;
}
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/ai/monsters/snork/snork.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ void CSnork::debug_on_key(int key)

switch (key)
{
case DIK_1: m_target_node = actor->ai_location().level_vertex_id();
case SDL_SCANCODE_1: m_target_node = actor->ai_location().level_vertex_id();
}
}
#endif
18 changes: 9 additions & 9 deletions src/xrGame/attachable_item.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,47 +136,47 @@ void attach_adjust_mode_keyb(int dik)
if (!CAttachableItem::m_dbgItem)
return;

bool b_move = !!(pInput->iGetAsyncKeyState(DIK_LSHIFT));
bool b_rot = !!(pInput->iGetAsyncKeyState(DIK_LMENU));
bool b_move = !!(pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT));
bool b_rot = !!(pInput->iGetAsyncKeyState(SDL_SCANCODE_LGUI));

int axis = -1;
if (pInput->iGetAsyncKeyState(DIK_Z))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_Z))
axis = 0;
else if (pInput->iGetAsyncKeyState(DIK_X))
else if (pInput->iGetAsyncKeyState(SDL_SCANCODE_X))
axis = 1;
if (pInput->iGetAsyncKeyState(DIK_C))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_C))
axis = 2;

if (!b_move && !b_rot)
return;

switch (dik)
{
case DIK_LEFT:
case SDL_SCANCODE_LEFT:
{
if (b_move)
CAttachableItem::mov(axis, ATT_ITEM_MOVE_CURR);
else
CAttachableItem::rot(axis, ATT_ITEM_ROT_CURR);
}
break;
case DIK_RIGHT:
case SDL_SCANCODE_RIGHT:
{
if (b_move)
CAttachableItem::mov(axis, -ATT_ITEM_MOVE_CURR);
else
CAttachableItem::rot(axis, -ATT_ITEM_ROT_CURR);
}
break;
case DIK_PRIOR:
case SDL_SCANCODE_PAGEUP:
{
if (b_move)
ATT_ITEM_MOVE_CURR += ATT_ITEM_MOVE_STEP;
else
ATT_ITEM_ROT_CURR += ATT_ITEM_ROT_STEP;
}
break;
case DIK_NEXT:
case SDL_SCANCODE_PAGEDOWN:
{
if (b_move)
ATT_ITEM_MOVE_CURR -= ATT_ITEM_MOVE_STEP;
Expand Down
6 changes: 4 additions & 2 deletions src/xrGame/key_binding_registrator_script.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,9 @@ SCRIPT_EXPORT(KeyBindings, (), {
value("DIK_SYSRQ", int(DIK_SYSRQ)), value("DIK_HOME", int(DIK_HOME)),
value("DIK_PRIOR", int(DIK_PRIOR)), value("DIK_RIGHT", int(DIK_RIGHT)),
value("DIK_DOWN", int(DIK_DOWN)), value("DIK_INSERT", int(DIK_INSERT)),
value("DIK_LWIN", int(DIK_LWIN)), value("DIK_APPS", int(DIK_APPS)), value("MOUSE_1", int(MOUSE_1)),
value("MOUSE_3", int(MOUSE_3)), value("DIK_RETURN", int(DIK_RETURN)),
value("DIK_LWIN", int(DIK_LWIN)), value("DIK_APPS", int(DIK_APPS)),
value("MOUSE_1", int(MOUSE_1)), value("MOUSE_2", int(MOUSE_2)),
value("MOUSE_3", int(MOUSE_3)), value("MOUSE_4", int(MOUSE_4)), value("MOUSE_5", int(MOUSE_5)),
value("DIK_RETURN", int(DIK_RETURN)),
value("DIK_NUMPADENTER", int(DIK_NUMPADENTER))]];
});
42 changes: 21 additions & 21 deletions src/xrGame/player_hud_tune.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,29 +21,29 @@ float _delta_rot = 0.05f;

bool is_attachable_item_tuning_mode()
{
return pInput->iGetAsyncKeyState(DIK_LSHIFT) || pInput->iGetAsyncKeyState(DIK_Z) ||
pInput->iGetAsyncKeyState(DIK_X) || pInput->iGetAsyncKeyState(DIK_C);
return pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT) || pInput->iGetAsyncKeyState(SDL_SCANCODE_Z) ||
pInput->iGetAsyncKeyState(SDL_SCANCODE_X) || pInput->iGetAsyncKeyState(SDL_SCANCODE_C);
}

void tune_remap(const Ivector& in_values, Ivector& out_values)
{
if (pInput->iGetAsyncKeyState(DIK_LSHIFT))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT))
{
out_values = in_values;
}
else if (pInput->iGetAsyncKeyState(DIK_Z))
else if (pInput->iGetAsyncKeyState(SDL_SCANCODE_Z))
{ // strict by X
out_values.x = in_values.y;
out_values.y = 0;
out_values.z = 0;
}
else if (pInput->iGetAsyncKeyState(DIK_X))
else if (pInput->iGetAsyncKeyState(SDL_SCANCODE_X))
{ // strict by Y
out_values.x = 0;
out_values.y = in_values.y;
out_values.z = 0;
}
else if (pInput->iGetAsyncKeyState(DIK_C))
else if (pInput->iGetAsyncKeyState(SDL_SCANCODE_C))
{ // strict by Z
out_values.x = 0;
out_values.y = 0;
Expand Down Expand Up @@ -314,7 +314,7 @@ void hud_draw_adjust_mode()
return;

LPCSTR _text = NULL;
if (pInput->iGetAsyncKeyState(DIK_LSHIFT) && hud_adj_mode)
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT) && hud_adj_mode)
_text =
"press SHIFT+NUM 0-return 1-hud_pos 2-hud_rot 3-itm_pos 4-itm_rot 5-fire_point 6-fire_2_point "
"7-shell_point "
Expand Down Expand Up @@ -347,34 +347,34 @@ void hud_draw_adjust_mode()

void hud_adjust_mode_keyb(int dik)
{
if (pInput->iGetAsyncKeyState(DIK_LSHIFT))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT))
{
if (dik == DIK_NUMPAD0)
if (dik == SDL_SCANCODE_KP_0)
hud_adj_mode = 0;
if (dik == DIK_NUMPAD1)
if (dik == SDL_SCANCODE_KP_1)
hud_adj_mode = 1;
if (dik == DIK_NUMPAD2)
if (dik == SDL_SCANCODE_KP_2)
hud_adj_mode = 2;
if (dik == DIK_NUMPAD3)
if (dik == SDL_SCANCODE_KP_3)
hud_adj_mode = 3;
if (dik == DIK_NUMPAD4)
if (dik == SDL_SCANCODE_KP_4)
hud_adj_mode = 4;
if (dik == DIK_NUMPAD5)
if (dik == SDL_SCANCODE_KP_5)
hud_adj_mode = 5;
if (dik == DIK_NUMPAD6)
if (dik == SDL_SCANCODE_KP_6)
hud_adj_mode = 6;
if (dik == DIK_NUMPAD7)
if (dik == SDL_SCANCODE_KP_7)
hud_adj_mode = 7;
if (dik == DIK_NUMPAD8)
if (dik == SDL_SCANCODE_KP_8)
hud_adj_mode = 8;
if (dik == DIK_NUMPAD9)
if (dik == SDL_SCANCODE_KP_9)
hud_adj_mode = 9;
}
if (pInput->iGetAsyncKeyState(DIK_LCONTROL))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_LCTRL))
{
if (dik == DIK_NUMPAD0)
if (dik == SDL_SCANCODE_KP_0)
hud_adj_item_idx = 0;
if (dik == DIK_NUMPAD1)
if (dik == SDL_SCANCODE_KP_1)
hud_adj_item_idx = 1;
}
}
4 changes: 2 additions & 2 deletions src/xrGame/ui/UIDebugFonts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ void CUIDebugFonts::InitDebugFonts(Frect r)

bool CUIDebugFonts::OnKeyboardAction(int dik, EUIMessages keyboard_action)
{
if (DIK_ESCAPE == dik)
if (SDL_SCANCODE_ESCAPE == dik)
HideDialog();

if (DIK_F12 == dik)
if (SDL_SCANCODE_F12 == dik)
return false;

return true;
Expand Down
10 changes: 5 additions & 5 deletions src/xrGame/ui/UIMapDesc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ bool CUIMapDesc::OnKeyboardAction(int dik, EUIMessages keyboard_action)
{
if (WINDOW_KEY_RELEASED == keyboard_action)
{
if (dik == DIK_TAB)
if (dik == SDL_SCANCODE_TAB)
{
ShowChildren(true);
game_cl_mp* game = smart_cast<game_cl_mp*>(&Game());
Expand All @@ -127,7 +127,7 @@ bool CUIMapDesc::OnKeyboardAction(int dik, EUIMessages keyboard_action)
return false;
}

if (dik == DIK_TAB)
if (dik == SDL_SCANCODE_TAB)
{
ShowChildren(false);
game_cl_mp* game = smart_cast<game_cl_mp*>(&Game());
Expand All @@ -140,13 +140,13 @@ bool CUIMapDesc::OnKeyboardAction(int dik, EUIMessages keyboard_action)

switch (dik)
{
case DIK_ESCAPE:
case SDL_SCANCODE_ESCAPE:
HideDialog();
dm->OnSpectatorSelect();
return true;
break;
case DIK_SPACE:
case DIK_RETURN:
case SDL_SCANCODE_SPACE:
case SDL_SCANCODE_RETURN:
HideDialog();
dm->OnMapInfoAccept();
return true;
Expand Down
10 changes: 5 additions & 5 deletions src/xrGame/ui/UIMpTradeWnd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ void CUIMpTradeWnd::TryUsePreset(ETradePreset idx)
void CUIMpTradeWnd::OnBtnPreset1Clicked(CUIWindow* w, void* d)
{
CheckDragItemToDestroy();
if (pInput->iGetAsyncKeyState(DIK_LSHIFT))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT))
{
DumpPreset(_preset_idx_1);
return;
Expand All @@ -63,7 +63,7 @@ void CUIMpTradeWnd::OnBtnPreset1Clicked(CUIWindow* w, void* d)
void CUIMpTradeWnd::OnBtnPreset2Clicked(CUIWindow* w, void* d)
{
CheckDragItemToDestroy();
if (pInput->iGetAsyncKeyState(DIK_LSHIFT))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT))
{
DumpPreset(_preset_idx_2);
return;
Expand All @@ -74,7 +74,7 @@ void CUIMpTradeWnd::OnBtnPreset2Clicked(CUIWindow* w, void* d)
void CUIMpTradeWnd::OnBtnPreset3Clicked(CUIWindow* w, void* d)
{
CheckDragItemToDestroy();
if (pInput->iGetAsyncKeyState(DIK_LSHIFT))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT))
{
DumpPreset(_preset_idx_3);
return;
Expand All @@ -86,7 +86,7 @@ void CUIMpTradeWnd::OnBtnPreset3Clicked(CUIWindow* w, void* d)
void CUIMpTradeWnd::OnBtnLastSetClicked(CUIWindow* w, void* d)
{
CheckDragItemToDestroy();
if (pInput->iGetAsyncKeyState(DIK_LSHIFT))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT))
{
DumpPreset(_preset_idx_last);
return;
Expand All @@ -98,7 +98,7 @@ void xr_stdcall CUIMpTradeWnd::OnBtnPresetDefaultClicked(CUIWindow* w, void* d)
{
CheckDragItemToDestroy();
{
if (pInput->iGetAsyncKeyState(DIK_LSHIFT))
if (pInput->iGetAsyncKeyState(SDL_SCANCODE_LSHIFT))
{
DumpPreset(_preset_idx_default);
return;
Expand Down
Loading

0 comments on commit e7963eb

Please sign in to comment.