Skip to content
This repository was archived by the owner on Jan 5, 2024. It is now read-only.

Commit 96d9710

Browse files
committed
ignore input state messages, only care for current state now
1 parent 463db82 commit 96d9710

File tree

4 files changed

+26
-52
lines changed

4 files changed

+26
-52
lines changed

Managers/NetworkClient.cpp

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -228,43 +228,33 @@ namespace RTE {
228228
msg.MouseY = static_cast<int>(mouse.GetY());
229229

230230
// Those are update in Update every frame to catch short events like clicks and releases
231-
msg.MouseButtonPressed[MOUSE_LEFT] = m_MouseButtonPressedState[MOUSE_LEFT] == 1 ? true : false;
232-
msg.MouseButtonPressed[MOUSE_MIDDLE] = m_MouseButtonPressedState[MOUSE_MIDDLE] == 1 ? true : false;
233-
msg.MouseButtonPressed[MOUSE_RIGHT] = m_MouseButtonPressedState[MOUSE_RIGHT] == 1 ? true : false;
234231

235-
msg.MouseButtonReleased[MOUSE_LEFT] = m_MouseButtonReleasedState[MOUSE_LEFT] == 1 ? true : false;
236-
msg.MouseButtonReleased[MOUSE_MIDDLE] = m_MouseButtonReleasedState[MOUSE_MIDDLE] == 1 ? true : false;
237-
msg.MouseButtonReleased[MOUSE_RIGHT] = m_MouseButtonReleasedState[MOUSE_RIGHT] == 1 ? true : false;
238-
239-
msg.MouseButtonHeld[MOUSE_LEFT] = g_UInputMan.MouseButtonHeld(MOUSE_LEFT, -1);
240-
msg.MouseButtonHeld[MOUSE_MIDDLE] = g_UInputMan.MouseButtonHeld(MOUSE_MIDDLE, -1);
241-
msg.MouseButtonHeld[MOUSE_RIGHT] = g_UInputMan.MouseButtonHeld(MOUSE_RIGHT, -1);
232+
msg.MouseButtonState[MOUSE_LEFT] = g_UInputMan.MouseButtonHeld(MOUSE_LEFT, -1);
233+
msg.MouseButtonState[MOUSE_MIDDLE] = g_UInputMan.MouseButtonHeld(MOUSE_MIDDLE, -1);
234+
msg.MouseButtonState[MOUSE_RIGHT] = g_UInputMan.MouseButtonHeld(MOUSE_RIGHT, -1);
242235

243236
for (int i = 0; i < MAX_MOUSE_BUTTONS; i++) {
244237
m_MouseButtonPressedState[i] = -1;
245238
m_MouseButtonReleasedState[i] = -1;
246239
}
247240
if (m_MouseWheelMoved != 0) {
241+
std::cout << "Client wheel moved" << m_MouseWheelMoved << std::endl;
248242
msg.MouseWheelMoved = m_MouseWheelMoved;
249243
m_MouseWheelMoved = 0;
250244
} else {
251245
msg.MouseWheelMoved = 0;
252246
}
253247

254-
msg.InputElementHeld = 0;
255-
msg.InputElementPressed = 0;
256-
msg.InputElementReleased = 0;
248+
msg.InputElementState = 0;
257249

258-
msg.ResetActivityVote = g_UInputMan.KeyHeld(KEY_BACKSPACE) ? true : false;
259-
msg.RestartActivityVote = g_UInputMan.KeyHeld(KEY_BACKSLASH) ? true : false;
250+
msg.ResetActivityVote = g_UInputMan.KeyHeld(SDLK_BACKSPACE) ? true : false;
251+
msg.RestartActivityVote = g_UInputMan.KeyHeld(SDLK_BACKSLASH) ? true : false;
260252

261253
unsigned int bitMask = 0x1;
262254

263255
// Store element states as bit flags
264256
for (int i = 0; i < INPUT_COUNT; i++) {
265-
if (g_UInputMan.ElementHeld(0, i)) { msg.InputElementHeld = msg.InputElementHeld | bitMask; }
266-
if (g_UInputMan.NetworkAccumulatedElementPressed(i)) { msg.InputElementPressed = msg.InputElementPressed | bitMask; }
267-
if (g_UInputMan.NetworkAccumulatedElementReleased(i)) { msg.InputElementReleased = msg.InputElementReleased | bitMask; }
257+
if (g_UInputMan.ElementHeld(0, i)) { msg.InputElementState = msg.InputElementState | bitMask; }
268258

269259
bitMask <<= 1;
270260
}

Managers/NetworkClient.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,8 @@ namespace RTE {
191191
int m_SceneWidth; //!<
192192
int m_SceneHeight; //!<
193193

194-
int m_MouseButtonPressedState[3]; //!<
195-
int m_MouseButtonReleasedState[3]; //!<
194+
int m_MouseButtonPressedState[MAX_MOUSE_BUTTONS]; //!<
195+
int m_MouseButtonReleasedState[MAX_MOUSE_BUTTONS]; //!<
196196
int m_MouseWheelMoved; //!< Whether the mouse wheel was moved this Update. Used to make mouse wheel detection better.
197197

198198
private:

Managers/NetworkServer.cpp

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -500,18 +500,14 @@ namespace RTE {
500500
msg.MouseX = m->MouseX;
501501
msg.MouseY = m->MouseY;
502502
for (int i = 0; i < MAX_MOUSE_BUTTONS; i++) {
503-
msg.MouseButtonPressed[i] = m->MouseButtonPressed[i];
504-
msg.MouseButtonReleased[i] = m->MouseButtonReleased[i];
505-
msg.MouseButtonHeld[i] = m->MouseButtonHeld[i];
503+
msg.MouseButtonState[i] = m->MouseButtonState[i];
506504
}
507505
msg.ResetActivityVote = m->ResetActivityVote;
508506
msg.RestartActivityVote = m->RestartActivityVote;
509507

510508
msg.MouseWheelMoved = m->MouseWheelMoved;
511509

512-
msg.InputElementPressed = m->InputElementPressed;
513-
msg.InputElementReleased = m->InputElementReleased;
514-
msg.InputElementHeld = m->InputElementHeld;
510+
msg.InputElementState = m->InputElementState;
515511

516512
bool skip = true;
517513

@@ -522,18 +518,14 @@ namespace RTE {
522518
if (msg.MouseY != lastmsg.MouseY) { skip = false; }
523519

524520
for (int i = 0; i < MAX_MOUSE_BUTTONS; i++) {
525-
if (msg.MouseButtonPressed[i] != lastmsg.MouseButtonPressed[i]) { skip = false; }
526-
if (msg.MouseButtonReleased[i] != lastmsg.MouseButtonReleased[i]) { skip = false; }
527-
if (msg.MouseButtonHeld[i] != lastmsg.MouseButtonHeld[i]) { skip = false; }
521+
if (msg.MouseButtonState[i] != lastmsg.MouseButtonState[i]) { skip = false; }
528522
}
529523
if (msg.ResetActivityVote != lastmsg.ResetActivityVote) { skip = false; }
530524
if (msg.RestartActivityVote != lastmsg.RestartActivityVote) { skip = false; }
531525

532526
if (msg.MouseWheelMoved != lastmsg.MouseWheelMoved) { skip = false; }
533527

534-
if (msg.InputElementPressed != lastmsg.InputElementPressed) { skip = false; }
535-
if (msg.InputElementReleased != lastmsg.InputElementReleased) { skip = false; }
536-
if (msg.InputElementHeld != lastmsg.InputElementHeld) { skip = false; }
528+
if (msg.InputElementState != lastmsg.InputElementState) { skip = false; }
537529
} else {
538530
skip = false;
539531
}
@@ -551,19 +543,13 @@ namespace RTE {
551543
input.m_Y = msg.MouseY;
552544
g_UInputMan.SetNetworkMouseMovement(player, input);
553545

554-
g_UInputMan.SetNetworkMouseButtonHeldState(player, MOUSE_LEFT, msg.MouseButtonHeld[MOUSE_LEFT]);
555-
g_UInputMan.SetNetworkMouseButtonPressedState(player, MOUSE_LEFT, msg.MouseButtonPressed[MOUSE_LEFT]);
556-
g_UInputMan.SetNetworkMouseButtonReleasedState(player, MOUSE_LEFT, msg.MouseButtonReleased[MOUSE_LEFT]);
546+
g_UInputMan.SetNetworkMouseButtonHeldState(player, MOUSE_LEFT, msg.MouseButtonState[MOUSE_LEFT]);
557547

558-
m_MouseState1[player] = (msg.MouseButtonPressed[MOUSE_LEFT] || msg.MouseButtonHeld[MOUSE_LEFT]) ? 1 : 0;
548+
m_MouseState1[player] = (msg.MouseButtonState[MOUSE_LEFT]) ? 1 : 0;
559549

560-
g_UInputMan.SetNetworkMouseButtonHeldState(player, MOUSE_RIGHT, msg.MouseButtonHeld[MOUSE_RIGHT]);
561-
g_UInputMan.SetNetworkMouseButtonPressedState(player, MOUSE_RIGHT, msg.MouseButtonPressed[MOUSE_RIGHT]);
562-
g_UInputMan.SetNetworkMouseButtonReleasedState(player, MOUSE_RIGHT, msg.MouseButtonReleased[MOUSE_RIGHT]);
550+
g_UInputMan.SetNetworkMouseButtonHeldState(player, MOUSE_RIGHT, msg.MouseButtonState[MOUSE_RIGHT]);
563551

564-
g_UInputMan.SetNetworkMouseButtonHeldState(player, MOUSE_MIDDLE, msg.MouseButtonHeld[MOUSE_MIDDLE]);
565-
g_UInputMan.SetNetworkMouseButtonPressedState(player, MOUSE_MIDDLE, msg.MouseButtonPressed[MOUSE_MIDDLE]);
566-
g_UInputMan.SetNetworkMouseButtonReleasedState(player, MOUSE_MIDDLE, msg.MouseButtonReleased[MOUSE_MIDDLE]);
552+
g_UInputMan.SetNetworkMouseButtonHeldState(player, MOUSE_MIDDLE, msg.MouseButtonState[MOUSE_MIDDLE]);
567553

568554
GUIInput::SetNetworkMouseButton(player, m_MouseState1[player], m_MouseState2[player], m_MouseState3[player]);
569555

@@ -573,11 +559,9 @@ namespace RTE {
573559

574560
// Store element states as bit flags
575561
for (int i = 0; i < INPUT_COUNT; i++) {
576-
bool val = (msg.InputElementHeld & bitMask) > 0;
562+
bool val = (msg.InputElementState & bitMask) > 0;
577563

578-
g_UInputMan.SetNetworkInputElementHeldState(player, i, val);
579-
g_UInputMan.SetNetworkInputElementPressedState(player, i, (msg.InputElementPressed & bitMask) > 0);
580-
g_UInputMan.SetNetworkInputElementReleasedState(player, i, (msg.InputElementReleased & bitMask) > 0);
564+
g_UInputMan.SetNetworkInputElementState(player, i, val);
581565

582566
bitMask <<= 1;
583567
}

System/NetworkMessages.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -290,18 +290,18 @@ namespace RTE {
290290

291291
int MouseX;
292292
int MouseY;
293-
bool MouseButtonPressed[MAX_MOUSE_BUTTONS];
294-
bool MouseButtonReleased[MAX_MOUSE_BUTTONS];
295-
bool MouseButtonHeld[MAX_MOUSE_BUTTONS];
293+
bool padMouse1[MAX_MOUSE_BUTTONS]; //< Backwards compatibility with pre5-5.1
294+
bool padMouse2[MAX_MOUSE_BUTTONS];
295+
bool MouseButtonState[MAX_MOUSE_BUTTONS];
296296
bool ResetActivityVote;
297297
bool RestartActivityVote;
298298

299299

300300
int MouseWheelMoved;
301301

302-
unsigned int InputElementPressed;
303-
unsigned int InputElementReleased;
304-
unsigned int InputElementHeld;
302+
unsigned int padElement3;
303+
unsigned int padElement4;
304+
unsigned int InputElementState;
305305
};
306306

307307
// Disables the previously set pack pragma.

0 commit comments

Comments
 (0)