diff --git a/.editorconfig b/.editorconfig index 330927cea..18fa8df38 100644 --- a/.editorconfig +++ b/.editorconfig @@ -20,6 +20,9 @@ end_of_line = lf [*.py] end_of_line = lf +[*.rb] +end_of_line = lf + [*.yml] indent_style = space end_of_line = lf diff --git a/Source/diablo.cpp b/Source/diablo.cpp index da7d685df..95c145cf2 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -601,7 +601,7 @@ void GameEventHandler(uint32_t uMsg, uint32_t wParam, uint32_t lParam) { switch (uMsg) { case DVL_WM_KEYDOWN: - PressKey(static_cast(wParam), DecodeKeyboardModState(lParam)); + PressKey(static_cast(wParam), lParam); return; case DVL_WM_KEYUP: ReleaseKey(static_cast(wParam)); @@ -614,7 +614,7 @@ void GameEventHandler(uint32_t uMsg, uint32_t wParam, uint32_t lParam) GetMousePos(lParam); if (sgbMouseDown == CLICK_NONE) { sgbMouseDown = CLICK_LEFT; - LeftMouseDown(DecodeMouseModState(wParam)); + LeftMouseDown(wParam); } return; case DVL_WM_LBUTTONUP: @@ -622,14 +622,14 @@ void GameEventHandler(uint32_t uMsg, uint32_t wParam, uint32_t lParam) if (sgbMouseDown == CLICK_LEFT) { LastMouseButtonAction = MouseActionType::None; sgbMouseDown = CLICK_NONE; - LeftMouseUp(DecodeMouseModState(wParam)); + LeftMouseUp(wParam); } return; case DVL_WM_RBUTTONDOWN: GetMousePos(lParam); if (sgbMouseDown == CLICK_NONE) { sgbMouseDown = CLICK_RIGHT; - RightMouseDown((DecodeMouseModState(wParam) & KMOD_SHIFT) != 0); + RightMouseDown((wParam & KMOD_SHIFT) != 0); } return; case DVL_WM_RBUTTONUP: diff --git a/Source/miniwin/misc_msg.cpp b/Source/miniwin/misc_msg.cpp index ae9168949..af33e6f7f 100644 --- a/Source/miniwin/misc_msg.cpp +++ b/Source/miniwin/misc_msg.cpp @@ -342,18 +342,18 @@ bool FetchMessage_Real(tagMSG *lpMsg) return FalseAvail(e.type == SDL_KEYDOWN ? "SDL_KEYDOWN" : "SDL_KEYUP", e.key.keysym.sym); lpMsg->message = e.type == SDL_KEYDOWN ? DVL_WM_KEYDOWN : DVL_WM_KEYUP; lpMsg->wParam = static_cast(key); - lpMsg->lParam = EncodeKeyboardModState(e.key.keysym.mod); + lpMsg->lParam = e.key.keysym.mod; } break; case SDL_MOUSEMOTION: lpMsg->message = DVL_WM_MOUSEMOVE; lpMsg->lParam = PositionForMouse(e.motion.x, e.motion.y); - lpMsg->wParam = EncodeMouseModState(SDL_GetModState()); + lpMsg->wParam = SDL_GetModState(); if (ControlMode == ControlTypes::KeyboardAndMouse && invflag) InvalidateInventorySlot(); break; case SDL_MOUSEBUTTONDOWN: { lpMsg->lParam = PositionForMouse(e.button.x, e.button.y); - lpMsg->wParam = EncodeMouseModState(SDL_GetModState()); + lpMsg->wParam = SDL_GetModState(); const int button = e.button.button; switch (button) { case SDL_BUTTON_LEFT: @@ -375,7 +375,7 @@ bool FetchMessage_Real(tagMSG *lpMsg) } break; case SDL_MOUSEBUTTONUP: { lpMsg->lParam = PositionForMouse(e.button.x, e.button.y); - lpMsg->wParam = EncodeMouseModState(SDL_GetModState()); + lpMsg->wParam = SDL_GetModState(); const int button = e.button.button; switch (button) { case SDL_BUTTON_LEFT: diff --git a/Source/miniwin/misc_msg.h b/Source/miniwin/misc_msg.h index 10ce0ff71..9f211f9ee 100644 --- a/Source/miniwin/misc_msg.h +++ b/Source/miniwin/misc_msg.h @@ -34,40 +34,6 @@ void PushMessage(const tagMSG *lpMsg); void PostMessage(uint32_t type, uint32_t wParam, uint32_t lParam); void ClearMessageQueue(); -// Encoding / decoding keyboard modifier state from wParam. -// This is only to be compatible with the old timedemo files. -// TODO: These should be removed next time we change the timedemo format. - -inline uint32_t EncodeKeyboardModState(uint16_t modState) -{ - return modState << 16; -} - -inline uint16_t DecodeKeyboardModState(uint32_t wParam) -{ - return wParam >> 16; -} - -inline uint32_t EncodeMouseModState(uint16_t modState) -{ - uint32_t result = 0; - if ((modState & KMOD_SHIFT) != 0) - result |= 0x0004; - if ((modState & KMOD_CTRL) != 0) - result |= 0x0008; - return result; -} - -inline uint16_t DecodeMouseModState(uint32_t wParam) -{ - uint16_t modState = 0; - if ((wParam & 0x0004) != 0) - modState |= KMOD_LSHIFT; - if ((wParam & 0x0008) != 0) - modState |= KMOD_LCTRL; - return modState; -} - // // Events // diff --git a/test/fixtures/timedemo/WarriorLevel1to2/demo_0.dmo b/test/fixtures/timedemo/WarriorLevel1to2/demo_0.dmo index f71815bac..70f31f645 100644 Binary files a/test/fixtures/timedemo/WarriorLevel1to2/demo_0.dmo and b/test/fixtures/timedemo/WarriorLevel1to2/demo_0.dmo differ