From 79e23f26f2c8b0d4d93671f7df4220e043e95842 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Sun, 17 Jul 2022 18:09:49 +0100 Subject: [PATCH] misc_msg: Encode keyboard mod state directly `demo_0.dmo` migrated with a script --- .editorconfig | 3 ++ Source/diablo.cpp | 8 ++--- Source/miniwin/misc_msg.cpp | 8 ++--- Source/miniwin/misc_msg.h | 34 ------------------ .../timedemo/WarriorLevel1to2/demo_0.dmo | Bin 459097 -> 458997 bytes 5 files changed, 11 insertions(+), 42 deletions(-) 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 f71815bac6c8d0ff07b0e4964732432f825291f8..70f31f64532ed323e34cad3b62825b3ad7e835b2 100644 GIT binary patch delta 5616 zcmYi~dt6mj)@SW~&f%gLJr1A{kGPYLIC34#cY?`J{KW()6csh1@|6w}6f~J=BG71& zfgiNhZ7K+g`2ZB>irW_?gO)D{8=6KFllp3`z{iw5RGe?^v$2``&;H%D)?V+|KIdNx zzF8F9aLNgq=d^RQua|~DA9#g#ykZ3MLnrhG-j+ulp0=<%x+EEKhBze2lkl>}VtfNU zjp4^7VwpP#Y{V0=T4S!r2;TdIp1^x^h{Z$-%sSsh-7}oQN2kgmPv*=zCAjTN;N~X{6_!aSjD~97?rvS21^AK%p@c zp0oKp4r?@CokExMQa1#%nG;_|E{7-j0%)v#(lz|kJb4MR&7Ka0yrUVGD)mlG%|PUs zsF8~KG$_*8zNaHSrP0H^Y|cMujT-MxA{$uSRm+n;vs1UZi~zw4w;Lfm-)&^^-Ya?- z`|{C~$ZAhKQ>8 zf_L0_g#xcXN+z@3Ld)a7{H%&-yOyo-bM3}X-nM{5^2B1|;L%0k@SH2q6~$2ai^g4< z=6GJ;N@7`dmgQOST7Xn`#h(S($_|2B*5U8+q^+ux@Bwf1Yj{iQ11TiM6a7}6VUrGp zCLZ<-1bRL$vlRcqa2AP%K^*fLW_f0^onFY|>c$r(r@5O)Dx%@QQOy(je3tL+U^gpk z5V>(nyb^yuyu-u1^-&)G>J9SNo~`4Q%kP7&8jpz}IV|x_%d@DaPBHtp){4o|ijnAz za2SMv!(?Op8YyFSo)zHTcE_0pPR$owKRd{KZ)3_h%G-{ z_6wG|4o0%BTX^Nj9ppLp=p@CH;!WP&Zd7fHZZ;4xt@VyKSf1H!Qwg;+%~SeembBp3 z-aerMVO=oj)bRxD5JHe#`o9GFc!g_c3@%pj4#do-ubf+CE5i%b9R4Mww zs~W3jej;%a>{liagEE%$olA^*2(lFGVX$6f-ChBraVq$sW5wwxctmxN9*wbvbeEVC z1D)Q8859q1C_BH=YOv!5g^8wQh#ZKht8?I=N~OzMmd0{P9WVV^Pi6V8$=qFF2C#fG zoG0qU5)0Ddj$(gITf(bi%s^4J5H3o|b2ETDZErhZ4Lde_F?WwQhqJaYhp1Q#ak?F& zP}x|E%0&J$SgRy@L9xbL4nV9(%ZEH=l@GjyT__|#+*|=U3gjz&7?VUM@7P`l3gjM>nP~1m>K#GFRtSi=!wXJlp(oP5e{dU-Fn-~rUnKd9+q`eC%ir#L;t_MlD z=-vVSZO#qY*M~f&XYr=>dNA)@NgX_YHypH8aDxZ4?E?}ivTI@TJ)sB#uE&X+br3EU z3f%)+nV(x;rbAQWgbks0FxAc6Rg5C?<6TKA0k-xbW8Yj!A0rT zZ~hOy^T+ejE%;29QL`6$#M@S|4`%bECv=x^4K&6wu1SZ5=8zv1aWfVR&%JD%wATu8 za|!8DS*?)|S;u360`f_X%Gm3;h4A!eNtkFWB6T<{#j-N;Jhjb>gG-p`foy3xD!Y~x zOKjy<@_;JfiO{CmwhFY>prQ2H(>%RbeFUIKTa3yfNx20H5Zx}NTmJePm0X`|xMSo#E}i?f zB@%=5<7#M4gS8mF^JX5;KWjL|J0tZgYA*-^qBKjNtV(sgmWv)32%CA^ z8GJW8WuMzrQ$!c1&{;=#|D^BTD$?t|dOd^YP+%w4`7Ja0L$#PkJULR~P zgx&gkc2E1Ken$1QaFT%SvINRR(>49Nq}}tQe#95g%z?%@DX4OYF;WF@E@ml9W?`b& z-LE>s{c+3~4}Uh2f>9*8yBf zc{vK;**#`3%N~>}y(qe>jPa_!Gyy|`lYj$ao6#`<=E-cCyVrP8ZfEWLj9U4B znFmi>|2eV&*(*U>I>nl3G^!9k>wvLD;h%h`%{1gIJL6ynM@ z>Wf+F{w(2h*@){Oo$xFx3=I^EzchMO04uc3m|t6H39DyLp7<$s2=ALlhjh_}AB>&D zv+>wrjxrz z6NhLTXZA0vLc`8>?z&#g6W>8OEfdY3hM?AmQUxE+u%kSg>K z@F@Fp25*TsQ~!g^jUXF%*TY5xFFj~D#f=1WxeUt-$)>NeqE$PHTkxnbvFi!5PU(3< zdl4f)6bePx9P=k-lZ1(wP{RU&d#SF9`KpFJq2-KzlDP*u#Hma(LPfGmdr3Z7NAQa8 zjZ~g?6Th_Bb@uT~=2_KE{;IvCF(Au%MKDcb6;Jx{u6#^}@>k7Hl}WwY9L)F{Sjpiwa$D>=@SJ-82k_PgS<2j^DDd3ypH&}Tg<_- z>|Urg``rmAo82c za5Zc8N96cyc(P=mSNZZxpyW`~HmXdYAW8(K3aRHlBPc;GX$S$VBXJ0vG* z2x|&-iXmT^Nh*T|K?Uk~73QmQIsc7$RQc#W*n;naRWy}lV^a3@nEk6$7*wIm{iK9f z45AU-|C(8hidSAUYX-_bz|(J=kv!y%nZx_~Oo#kxs0GQdeEqlpUVq0-75R6}PG#3n Hd?o)sRuWOp delta 5410 zcmYjVdt8ra|Gz)ieQ?vk7ojL>%Oh6QoHDX{EzgrVhRtC`4SSrQ+A=a(Z4Nm^xv~pW zLVlQvd~vC%MKR=yezV`>u&j*DW1@ES(6{IJx$Y~^#vgaz>vP?oW7eJ zG^NO-&Ofi#e^2>|HjA&>D#dFWCZQaGe4EZSRLX1P~3ECGf6 zhWD1bM?jiFi>C!spPy{@oG_0zmhZnQ#}($+pl@S7qrhg5A9+o))_Vb0XvhW+wrHPj zGRHUi3YO9d&EI?dJSr_3O{G#lD8*bQW3C*FeQEvJd=#!3HvoOJmyUnd&hmdRB(u05 zbU%CT^a6Jjte^K!)v{5kTvllGU{8D6qBvJ;<%F_aVTnE9s=Z`+fOO=tvPfYyJ@q;o z_OofP`B0Ogc7dZ9Y9;1;(L$Sj&PSfYGS zY@@X&Z1$`T{<>wh3zVVR&fsbPI@2cgw}(p#i+BoA)UB({K9U}2gL)qA_=iw8V`p!< z$sd@)P7i|w>df7Vf*rd?%e3@_?Fvn63b1$Hy-mDPv}b@6bb~z#3#lad#$lU%UVed8 z^dF^CVex?^hQ&szfwW<`NelNcvwX8e(Q9;nn&R(jk3G<+qP}qjhY3DfiWUg%^N+kH zeia=(Bz{dlW;uEB__yNMXS}Pltih*PP)KKvwyKTBmn2x)#cEbf408@s$FQ(HSm3PE z%>PQL-^pN>@*(`QGonv4!f&t>#A_MI?UpDPc*W+|+^Del+ z5@vyyJ@NKd^4!D+9{pbZlZiIKZR?4&s)!Zm8D#^l z`^Ae#^n&y@)=F<+tYV9nMswVJt=%jw2$rF?r$JDOPV@5q@G1g=x4aB4NMgL*5V(R^ z;5UZ?74pTypcQ#t1y-}_Ad@zPhO)vu-Nw_xV6J%iK{z~XYk6IauF+^8Pp*%Kxx(wk z(J;lu61@p~m8_;zjwBQ(EELUz4PwVD@4z#e)-RM~OvOa9kp*p6{dvP&sB^&$my_VJ zaIHKUUb3vMkggZ4gw4Xm5vlO1c&C!&&U!)}=mT zDdLH-lR5LD0yUNI1Azs;em@KlL6#qc@#44pArMW)R~Eoh8EkK`W3U||ln*L`^N2X! zVux9hPNJb!$*SLG^%L(<3LBC2cXulAXGwfH_VfW=f~TS zfVQaSwv8O>XsPjrXIplK@Y64n7*V_)eM$Qc`0O`~V3o0$uaPMpmf{ll9i5z{hO)6= zYpG%q^7yHw%CNN5!(A44jTH0RnIu)jK4T8qFTw3kT!0lWQ?QYbr)08PTemao^3Js6mC)MIvx`I>+w5&`cU%6YJxPk&K?I{FPw}~dt$|QjT zMdg%mDL)5Skl2=Qw%FpyKtcgj5N1-L4|HgqqT7Qf*is&4E6^nz|b+m@|PyF=u!1 z;B&qr*Mo-mvAanFRe22iySF^cuvU*CU z`VOX=MnE?8Q3o<-Ut;6ir>l)Z-}*T9EqPdI!NZ&2Kz)JQ%Kiq~$9%hKefZV{HCWQr zEz!3jm-UMO4hx>MTn&{mdJ-Jw(G#@-R$EE@d10#RFU@< zg$5RW0=!tCpNvczcHCsn7{lcC8`YDN`%b|r$!r{%ZGr{Q9MxjKcKPaNk-Z(Cshz~L z=!p6^Ppdki@GTwzNIESXZ1Ri?>MEI+QP})6QTOB_SJfnWSc!yU8h+P{pRG}+iX`{A zrp}Ti^A}OB#D!V{O$jg={GVE9srEy-u+uyBU|Q>Ma=(A7G0079<#qKx;&DTLj7k>Y zREG)1`s@}yt+%@1(Sx3j@}zF2jdiY7uc7ootvX&h(Fyjlgi-oXp8TykRleYcjL(V( zLMZD{ui~KO?swElQsgdli8+z>of;_26x~(7lOhdvAu5-snc`?b!^%xI^aphnZYlpk zwK%ljzf`--#Wc8zc&PQ|Z5!28(Xs1)RyPYcbo;kDOcrwp6l2Yfk#yE@UA6IFThu6# zq7k6|C`h%hP1`RwR*Q3NO#`I!_%7OTQKH;#+UVyqIvWFdUtPvBX5(!jBZZhexwlp) zG)?cTEs);SDfblym$Z{|EN>0b!sUI!gc4R)q5E-Xq?Rdy-Sk(jrxoItf{AdlI2{`OcpjqTV}B+zQm5WYTH?10MgBzv09@H<(6^= z9hr#4;fOZ5bCPyl&W0TjBklnif};Xi?Y}V}`{J}n!BGzuXm-($xk=huIV_hcl%@uC zraJfMb5>|E66y1mqpVIfyx6)gwX3XbCE7jxvGzoyvUH2q-x|+bwWYFO@)U$wy`7w5 zKB2@Phq1|{Kh=DtlUWM>4>`gXZB|WMcEIFAcWZ%NETARBIBY-{IFAHx^01TIb@|Fs zF_-*q>*pEHDy(I>7AJ}9e_=Wbdg`lK;XYEpGcIZtBTcW-+Q{Me1d5q0UoEC(*@*X> z+5|~d9SJ5X%UiABL+@x$q|?Dn+C$NsEswOd@^Ge-A-HKf z@n$)d+Ef;HR$D=xr#kRWPc(Z+D~2TK1~i)b@_8=0tHehzY{QotwQQC$gn09yj(UQ~ zS8iwh?=rqxLn5FQDZbmRjbZ_6RdrE&Uz+bK8Z)9WJkVq?GS=;p4 za)K1XTQshlANR@8t!`=ArT-|p=D{BQM``sV(V(ydZ@G>mHnyZludp0WwU&2j0esG3 zJzNg5`M5@ly*&BZVtu0|i&Rn}ZdqTECv-}#l!=Wz}TVJWse-@?fcSFA- zNUPy^#N+FO}zd99A^^LLXlLo1WaYYwH!Me!0h=?k@`J9_h)JxErU% zErw?02lILDjcK;$*PYF0mW2Ir-QkrzjY{jj!`Jy44`tv(;0px6IW2)Vyl8mJc6h8D zM$qmfJK3VO#DkXw7*X;lRHYn1u-=DMo)KtxN`%{${m7w{NGcB+VC2i9aRs?E9qDKG=97=KcIAqxGiiD-N@#UA1uL9A#8lyygpsS!SHNz4aT3$r48!Q!P}W1h2W3 zBuU^qhVLF@tPo7yBiiUB-K|tk;*9F!%cs3z6iBDeD*wPH-=yCcgPG%CPL~0Qb*#r- zTGn$Q-xqH*OHO#Cj6r|S8k4zmo^e2OVXg8mOXvte%rS)I^OSduYjW=y%CyiC8^!7=E$t32%T!hRuGMhPuLnNLIOdeEb1jr-7r!b#}hkNlQ z<;Fs}JyC?zbOsjF@h98y_%ntk-Cqo=6&fEXv6Um2kiU8A8054LBus~p*JvMg?I z$Vbfg)DJvAuJEQ?Mun6$Ddkv|@t(Zqwo##4b+1)QSmOfCiAyXnoWKp7YR{E0=sB50jXH9_Jhae^&O$a(mokBj4pYH#ja` zvYNfS_4!1>>NOjg%