diff --git a/Source/msg.cpp b/Source/msg.cpp index 1d264f7ee..215b2b133 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -2449,6 +2449,9 @@ void NetSendCmdLocParam4(bool bHiPri, _cmd_id bCmd, Point position, uint16_t wPa NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); + + auto &myPlayer = Players[MyPlayerId]; + myPlayer.UpdatePreviewCelSprite(bCmd, position, wParam1, wParam3); } void NetSendCmdParam1(bool bHiPri, _cmd_id bCmd, uint16_t wParam1) @@ -2491,6 +2494,9 @@ void NetSendCmdParam3(bool bHiPri, _cmd_id bCmd, uint16_t wParam1, uint16_t wPar NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); + + auto &myPlayer = Players[MyPlayerId]; + myPlayer.UpdatePreviewCelSprite(bCmd, {}, wParam1, wParam2); } void NetSendCmdParam4(bool bHiPri, _cmd_id bCmd, uint16_t wParam1, uint16_t wParam2, uint16_t wParam3, uint16_t wParam4) @@ -2506,6 +2512,9 @@ void NetSendCmdParam4(bool bHiPri, _cmd_id bCmd, uint16_t wParam1, uint16_t wPar NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); + + auto &myPlayer = Players[MyPlayerId]; + myPlayer.UpdatePreviewCelSprite(bCmd, {}, wParam1, wParam2); } void NetSendCmdQuest(bool bHiPri, const Quest &quest) diff --git a/Source/player.cpp b/Source/player.cpp index 6105df6dc..d990129b0 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -2135,7 +2135,7 @@ void Player::UpdatePreviewCelSprite(_cmd_id cmdId, Point point, uint16_t wParam1 case _cmd_id::CMD_TSPELLID: { auto &monster = Monsters[wParam1]; dir = GetDirection(position.future, monster.position.future); - graphic = GetPlayerGraphicForSpell(static_cast(wParam1)); + graphic = GetPlayerGraphicForSpell(static_cast(wParam2)); break; } case _cmd_id::CMD_ATTACKID: { @@ -2158,7 +2158,7 @@ void Player::UpdatePreviewCelSprite(_cmd_id cmdId, Point point, uint16_t wParam1 case _cmd_id::CMD_TSPELLPID: { auto &targetPlayer = Players[wParam1]; dir = GetDirection(position.future, targetPlayer.position.future); - graphic = GetPlayerGraphicForSpell(static_cast(wParam1)); + graphic = GetPlayerGraphicForSpell(static_cast(wParam2)); break; } case _cmd_id::CMD_ATTACKPID: { @@ -2185,8 +2185,8 @@ void Player::UpdatePreviewCelSprite(_cmd_id cmdId, Point point, uint16_t wParam1 graphic = GetPlayerGraphicForSpell(static_cast(wParam1)); break; case _cmd_id::CMD_SPELLXYD: - dir = static_cast(wParam1); - graphic = GetPlayerGraphicForSpell(static_cast(wParam2)); + dir = static_cast(wParam2); + graphic = GetPlayerGraphicForSpell(static_cast(wParam1)); break; case _cmd_id::CMD_WALKXY: minimalWalkDistance = 1;