Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix NetSend* related MSVC warnings #6849

Merged
merged 1 commit into from
Dec 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Source/inv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2131,7 +2131,7 @@ void DoTelekinesis()
if (ObjectUnderCursor != nullptr && !ObjectUnderCursor->IsDisabled())
NetSendCmdLoc(MyPlayerId, true, CMD_OPOBJT, cursPosition);
if (pcursitem != -1)
NetSendCmdGItem(true, CMD_REQUESTAGITEM, static_cast<uint8_t>(MyPlayerId), pcursitem);
NetSendCmdGItem(true, CMD_REQUESTAGITEM, *MyPlayer, pcursitem);
if (pcursmonst != -1) {
auto &monter = Monsters[pcursmonst];
if (!M_Talker(monter) && monter.talkMsg == TEXT_NONE)
Expand Down
10 changes: 4 additions & 6 deletions Source/missiles.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -281,10 +281,8 @@ bool MonsterMHit(int pnum, int monsterId, int mindam, int maxdam, int dist, Miss
return true;
}

bool Plr2PlrMHit(const Player &player, int p, int mindam, int maxdam, int dist, MissileID mtype, DamageType damageType, bool shift, bool *blocked)
bool Plr2PlrMHit(const Player &player, Player &target, int mindam, int maxdam, int dist, MissileID mtype, DamageType damageType, bool shift, bool *blocked)
{
Player &target = Players[p];

if (sgGameInitInfo.bFriendlyFire == 0 && player.friendlyMode)
return false;

Expand Down Expand Up @@ -366,7 +364,7 @@ bool Plr2PlrMHit(const Player &player, int p, int mindam, int maxdam, int dist,
if (resper > 0) {
dam -= (dam * resper) / 100;
if (&player == MyPlayer)
NetSendCmdDamage(true, p, dam, damageType);
NetSendCmdDamage(true, target, dam, damageType);
target.Say(HeroSpeech::ArghClang);
return true;
}
Expand All @@ -376,7 +374,7 @@ bool Plr2PlrMHit(const Player &player, int p, int mindam, int maxdam, int dist,
*blocked = true;
} else {
if (&player == MyPlayer)
NetSendCmdDamage(true, p, dam, damageType);
NetSendCmdDamage(true, target, dam, damageType);
StartPlrHit(target, dam, false);
}

Expand Down Expand Up @@ -441,7 +439,7 @@ void CheckMissileCol(Missile &missile, DamageType damageType, int minDamage, int
if (missile._micaster != TARGET_BOTH && !missile.IsTrap()) {
if (missile._micaster == TARGET_MONSTERS) {
if ((pid - 1) != missile._misource)
isPlayerHit = Plr2PlrMHit(Players[missile._misource], pid - 1, minDamage, maxDamage, missile._midist, missile._mitype, damageType, isDamageShifted, &blocked);
isPlayerHit = Plr2PlrMHit(Players[missile._misource], Players[pid - 1], minDamage, maxDamage, missile._midist, missile._mitype, damageType, isDamageShifted, &blocked);
} else {
Monster &monster = Monsters[missile._misource];
isPlayerHit = PlayerMHit(pid - 1, &monster, missile._midist, minDamage, maxDamage, missile._mitype, damageType, isDamageShifted, DeathReason::MonsterOrTrap, &blocked);
Expand Down
2 changes: 1 addition & 1 deletion Source/missiles.h
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ inline Missile *AddMissile(WorldTilePosition src, WorldTilePosition dst, Directi
mienemy_type micaster, const Player &player, int midam, int spllvl,
Missile *parent = nullptr, std::optional<SfxID> lSFX = std::nullopt)
{
return AddMissile(src, dst, midir, mitype, micaster, static_cast<int>(player.getId()), midam, spllvl, parent, lSFX);
return AddMissile(src, dst, midir, mitype, micaster, player.getId(), midam, spllvl, parent, lSFX);
}
inline Missile *AddMissile(WorldTilePosition src, WorldTilePosition dst, Direction midir, MissileID mitype,
mienemy_type micaster, const Monster &monster, int midam, int spllvl,
Expand Down
2 changes: 1 addition & 1 deletion Source/monster.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3731,7 +3731,7 @@ void M_StartHit(Monster &monster, const Player &player, int dam)
{
monster.tag(player);
if (IsHardHit(monster, dam)) {
monster.enemy = static_cast<uint8_t>(player.getId());
monster.enemy = player.getId();
monster.enemyPosition = player.position.future;
monster.flags &= ~MFLAG_TARGETS_MONSTER;
if (monster.mode != MonsterMode::Petrified) {
Expand Down
16 changes: 9 additions & 7 deletions Source/msg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -878,14 +878,14 @@ void NetSendCmdGItem2(bool usonly, _cmd_id bCmd, uint8_t mast, uint8_t pnum, con
tmsg_add((std::byte *)&cmd, sizeof(cmd));
}

bool NetSendCmdReq2(_cmd_id bCmd, uint8_t mast, uint8_t pnum, const TCmdGItem &item)
bool NetSendCmdReq2(_cmd_id bCmd, const Player &player, uint8_t pnum, const TCmdGItem &item)
{
TCmdGItem cmd;

memcpy(&cmd, &item, sizeof(cmd));
cmd.bCmd = bCmd;
cmd.bPnum = pnum;
cmd.bMaster = mast;
cmd.bMaster = player.getId();

int ticks = SDL_GetTicks();
if (cmd.dwTime == 0)
Expand Down Expand Up @@ -1168,7 +1168,7 @@ size_t OnRequestGetItem(const TCmd *pCmd, Player &player)
else
InvGetItem(*MyPlayer, ii);
SetItemRecord(dwSeed, wCI, wIndx);
} else if (!NetSendCmdReq2(CMD_REQUESTGITEM, MyPlayerId, message.bPnum, message)) {
} else if (!NetSendCmdReq2(CMD_REQUESTGITEM, *MyPlayer, message.bPnum, message)) {
NetSendCmdExtra(message);
}
}
Expand Down Expand Up @@ -1244,7 +1244,7 @@ size_t OnRequestAutoGetItem(const TCmd *pCmd, Player &player)
else
AutoGetItem(*MyPlayer, &Items[message.bCursitem], message.bCursitem);
SetItemRecord(dwSeed, wCI, wIndx);
} else if (!NetSendCmdReq2(CMD_REQUESTAGITEM, MyPlayerId, message.bPnum, message)) {
} else if (!NetSendCmdReq2(CMD_REQUESTAGITEM, *MyPlayer, message.bPnum, message)) {
NetSendCmdExtra(message);
}
}
Expand Down Expand Up @@ -2968,8 +2968,10 @@ void NetSendCmdQuest(bool bHiPri, const Quest &quest)
NetSendLoPri(MyPlayerId, (std::byte *)&cmd, sizeof(cmd));
}

void NetSendCmdGItem(bool bHiPri, _cmd_id bCmd, uint8_t pnum, uint8_t ii)
void NetSendCmdGItem(bool bHiPri, _cmd_id bCmd, const Player &player, uint8_t ii)
{
uint8_t pnum = player.getId();

TCmdGItem cmd;

cmd.bCmd = bCmd;
Expand Down Expand Up @@ -3080,12 +3082,12 @@ void NetSendCmdChBeltItem(bool bHiPri, int beltIndex)
NetSendLoPri(MyPlayerId, (std::byte *)&cmd, sizeof(cmd));
}

void NetSendCmdDamage(bool bHiPri, uint8_t bPlr, uint32_t dwDam, DamageType damageType)
void NetSendCmdDamage(bool bHiPri, const Player &player, uint32_t dwDam, DamageType damageType)
{
TCmdDamage cmd;

cmd.bCmd = CMD_PLRDAMAGE;
cmd.bPlr = bPlr;
cmd.bPlr = player.getId();
cmd.dwDam = dwDam;
cmd.damageType = damageType;
if (bHiPri)
Expand Down
4 changes: 2 additions & 2 deletions Source/msg.h
Original file line number Diff line number Diff line change
Expand Up @@ -753,14 +753,14 @@ void NetSendCmdParam1(bool bHiPri, _cmd_id bCmd, uint16_t wParam1);
void NetSendCmdParam2(bool bHiPri, _cmd_id bCmd, uint16_t wParam1, uint16_t wParam2);
void NetSendCmdParam5(bool bHiPri, _cmd_id bCmd, uint16_t wParam1, uint16_t wParam2, uint16_t wParam3, uint16_t wParam4, uint16_t wParam5);
void NetSendCmdQuest(bool bHiPri, const Quest &quest);
void NetSendCmdGItem(bool bHiPri, _cmd_id bCmd, uint8_t pnum, uint8_t ii);
void NetSendCmdGItem(bool bHiPri, _cmd_id bCmd, const Player &player, uint8_t ii);
void NetSendCmdPItem(bool bHiPri, _cmd_id bCmd, Point position, const Item &item);
void NetSyncInvItem(const Player &player, int invListIndex);
void NetSendCmdChItem(bool bHiPri, uint8_t bLoc, bool forceSpellChange = false);
void NetSendCmdDelItem(bool bHiPri, uint8_t bLoc);
void NetSendCmdChInvItem(bool bHiPri, int invGridIndex);
void NetSendCmdChBeltItem(bool bHiPri, int invGridIndex);
void NetSendCmdDamage(bool bHiPri, uint8_t bPlr, uint32_t dwDam, DamageType damageType);
void NetSendCmdDamage(bool bHiPri, const Player &player, uint32_t dwDam, DamageType damageType);
void NetSendCmdMonDmg(bool bHiPri, uint16_t wMon, uint32_t dwDam);
void NetSendCmdString(uint32_t pmask, const char *pszStr);
void delta_close_portal(const Player &player);
Expand Down
19 changes: 9 additions & 10 deletions Source/player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@

namespace devilution {

size_t MyPlayerId;
uint8_t MyPlayerId;
Player *MyPlayer;
std::vector<Player> Players;
Player *InspectPlayer;
Expand Down Expand Up @@ -83,7 +83,6 @@ void WalkNorthwards(Player &player, const DirectionSettings &walkParams)

void WalkSouthwards(Player &player, const DirectionSettings & /*walkParams*/)
{
const size_t playerId = player.getId();
player.position.temp = player.position.tile;
player.position.tile = player.position.future; // Move player to the next tile to maintain correct render order
player.occupyTile(player.position.temp, true);
Expand All @@ -97,7 +96,6 @@ void WalkSideways(Player &player, const DirectionSettings &walkParams)
{
Point const nextPosition = player.position.tile + walkParams.map;

const size_t playerId = player.getId();
player.occupyTile(player.position.tile, true);
player.occupyTile(player.position.future, false);

Expand Down Expand Up @@ -798,7 +796,7 @@ bool PlrHitPlr(Player &attacker, Player &target)
RedrawComponent(PanelDrawComponent::Health);
}
if (&attacker == MyPlayer) {
NetSendCmdDamage(true, target.getId(), skdam, DamageType::Physical);
NetSendCmdDamage(true, target, skdam, DamageType::Physical);
}
StartPlrHit(target, skdam, false);

Expand Down Expand Up @@ -1343,7 +1341,7 @@ void CheckNewPath(Player &player, bool pmWillBeCalled)
x = std::abs(player.position.tile.x - item->position.x);
y = std::abs(player.position.tile.y - item->position.y);
if (x <= 1 && y <= 1 && pcurs == CURSOR_HAND && !item->_iRequest) {
NetSendCmdGItem(true, CMD_REQUESTGITEM, player.getId(), targetId);
NetSendCmdGItem(true, CMD_REQUESTGITEM, player, targetId);
item->_iRequest = true;
}
}
Expand All @@ -1353,7 +1351,7 @@ void CheckNewPath(Player &player, bool pmWillBeCalled)
x = std::abs(player.position.tile.x - item->position.x);
y = std::abs(player.position.tile.y - item->position.y);
if (x <= 1 && y <= 1 && pcurs == CURSOR_HAND) {
NetSendCmdGItem(true, CMD_REQUESTAGITEM, player.getId(), targetId);
NetSendCmdGItem(true, CMD_REQUESTAGITEM, player, targetId);
}
}
break;
Expand Down Expand Up @@ -1614,7 +1612,7 @@ void Player::RemoveInvItem(int iv, bool calcScrolls)
for (size_t i = 0; i < InventoryGridCells; i++) {
int8_t itemIndex = InvGrid[i];
if (std::abs(itemIndex) - 1 == iv) {
NetSendCmdParam1(false, CMD_DELINVITEMS, i);
NetSendCmdParam1(false, CMD_DELINVITEMS, static_cast<uint16_t>(i));
break;
}
}
Expand Down Expand Up @@ -1662,9 +1660,9 @@ void Player::RemoveSpdBarItem(int iv)
RedrawEverything();
}

[[nodiscard]] size_t Player::getId() const
[[nodiscard]] uint8_t Player::getId() const
{
return std::distance<const Player *>(&Players[0], this);
return static_cast<uint8_t>(std::distance<const Player *>(&Players[0], this));
}

int Player::GetBaseAttributeValue(CharacterAttribute attribute) const
Expand Down Expand Up @@ -2072,7 +2070,8 @@ int32_t Player::calculateBaseMana() const

void Player::occupyTile(Point position, bool isMoving) const
{
int16_t id = static_cast<int16_t>(this->getId() + 1);
int16_t id = this->getId();
id += 1;
dPlayer[position.x][position.y] = isMoving ? -id : id;
}

Expand Down
4 changes: 2 additions & 2 deletions Source/player.h
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ struct Player {
/**
* @brief Returns the network identifier for this player
*/
[[nodiscard]] size_t getId() const;
[[nodiscard]] uint8_t getId() const;

void RemoveSpdBarItem(int iv);

Expand Down Expand Up @@ -893,7 +893,7 @@ struct Player {
void occupyTile(Point position, bool isMoving) const;
};

extern DVL_API_FOR_TEST size_t MyPlayerId;
extern DVL_API_FOR_TEST uint8_t MyPlayerId;
extern DVL_API_FOR_TEST Player *MyPlayer;
extern DVL_API_FOR_TEST std::vector<Player> Players;
/** @brief What Player items and stats should be displayed? Normally this is identical to MyPlayer but can differ when /inspect was used. */
Expand Down
2 changes: 1 addition & 1 deletion Source/qol/autopickup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ void AutoPickup(const Player &player)
int itemIndex = dItem[tile.x][tile.y] - 1;
auto &item = Items[itemIndex];
if (DoPickup(item)) {
NetSendCmdGItem(true, CMD_REQUESTAGITEM, static_cast<uint8_t>(player.getId()), itemIndex);
NetSendCmdGItem(true, CMD_REQUESTAGITEM, player, itemIndex);
item._iRequest = true;
}
}
Expand Down
2 changes: 1 addition & 1 deletion Source/track.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ void RepeatMouseAction()
break;
case MouseActionType::AttackPlayerTarget:
if (PlayerUnderCursor != nullptr && !myPlayer.friendlyMode)
NetSendCmdParam1(true, rangedAttack ? CMD_RATTACKPID : CMD_ATTACKPID, static_cast<uint16_t>(PlayerUnderCursor->getId()));
NetSendCmdParam1(true, rangedAttack ? CMD_RATTACKPID : CMD_ATTACKPID, PlayerUnderCursor->getId());
break;
case MouseActionType::Spell:
if (ControlMode != ControlTypes::KeyboardAndMouse) {
Expand Down