Browse Source

Change LoadPlrGFX from pnum to PlayerStruct

pull/2049/head
obligaron 5 years ago committed by Anders Jenbo
parent
commit
c424f601ec
  1. 2
      Source/items.cpp
  2. 5
      Source/msg.cpp
  3. 6
      Source/multi.cpp
  4. 31
      Source/player.cpp
  5. 2
      Source/player.h

2
Source/items.cpp

@ -886,7 +886,7 @@ void CalcPlrItemVals(int playerId, bool Loadgfx)
player._pgfxnum = g;
player._pGFXLoad = 0;
SetPlrAnims(player);
LoadPlrGFX(playerId, static_cast<player_graphic>(PFILE_STAND | PFILE_WALK));
LoadPlrGFX(player, static_cast<player_graphic>(PFILE_STAND | PFILE_WALK));
if (player._pmode == PM_STAND) {
player._pAnimWidth = player._pNWidth;
player.AnimInfo.ChangeAnimationData(player._pNAnim[player._pdir], player._pNFrames, 3);

5
Source/msg.cpp

@ -2218,6 +2218,7 @@ static DWORD On_ACK_PLRINFO(TCmd *pCmd, int pnum)
static DWORD On_PLAYER_JOINLEVEL(TCmd *pCmd, int pnum)
{
auto *p = (TCmdLocParam1 *)pCmd;
auto &player = plr[pnum];
if (gbBufferMsgs == 1)
msg_send_packet(pnum, p, sizeof(*p));
@ -2235,13 +2236,13 @@ static DWORD On_PLAYER_JOINLEVEL(TCmd *pCmd, int pnum)
plr[pnum].plrlevel = p->wParam1;
plr[pnum]._pGFXLoad = 0;
if (currlevel == plr[pnum].plrlevel) {
LoadPlrGFX(pnum, PFILE_STAND);
LoadPlrGFX(player, PFILE_STAND);
SyncInitPlr(pnum);
if ((plr[pnum]._pHitPoints >> 6) > 0)
StartStand(pnum, DIR_S);
else {
plr[pnum]._pgfxnum = 0;
LoadPlrGFX(pnum, PFILE_DEATH);
LoadPlrGFX(player, PFILE_DEATH);
plr[pnum]._pmode = PM_DEATH;
NewPlrAnim(plr[pnum], plr[pnum]._pDAnim[DIR_S], plr[pnum]._pDFrames, 1, plr[pnum]._pDWidth);
plr[pnum].AnimInfo.CurrentFrame = plr[pnum].AnimInfo.NumberOfFrames - 1;

6
Source/multi.cpp

@ -829,6 +829,8 @@ void recv_plrinfo(int pnum, TCmdPlrInfoHdr *p, bool recv)
}
assert((DWORD)pnum < MAX_PLRS);
auto &player = plr[pnum];
if (sgwPackPlrOffsetTbl[pnum] != p->wOffset) {
sgwPackPlrOffsetTbl[pnum] = 0;
if (p->wOffset != 0) {
@ -864,7 +866,7 @@ void recv_plrinfo(int pnum, TCmdPlrInfoHdr *p, bool recv)
}
EventPlrMsg(fmt::format(szEvent, plr[pnum]._pName, plr[pnum]._pLevel).c_str());
LoadPlrGFX(pnum, PFILE_STAND);
LoadPlrGFX(player, PFILE_STAND);
SyncInitPlr(pnum);
if (plr[pnum].plrlevel == currlevel) {
@ -872,7 +874,7 @@ void recv_plrinfo(int pnum, TCmdPlrInfoHdr *p, bool recv)
StartStand(pnum, DIR_S);
} else {
plr[pnum]._pgfxnum = 0;
LoadPlrGFX(pnum, PFILE_DEATH);
LoadPlrGFX(player, PFILE_DEATH);
plr[pnum]._pmode = PM_DEATH;
NewPlrAnim(plr[pnum], plr[pnum]._pDAnim[DIR_S], plr[pnum]._pDFrames, 1, plr[pnum]._pDWidth);
plr[pnum].AnimInfo.CurrentFrame = plr[pnum].AnimInfo.NumberOfFrames - 1;

31
Source/player.cpp

@ -383,7 +383,7 @@ void SetPlayerGPtrs(byte *pData, byte **pAnim)
}
}
void LoadPlrGFX(int pnum, player_graphic gfxflag)
void LoadPlrGFX(PlayerStruct &player, player_graphic gfxflag)
{
char prefix[16];
char pszName[256];
@ -391,11 +391,6 @@ void LoadPlrGFX(int pnum, player_graphic gfxflag)
byte *pData;
byte **pAnim;
if ((DWORD)pnum >= MAX_PLRS) {
app_fatal("LoadPlrGFX: illegal player %i", pnum);
}
auto &player = plr[pnum];
HeroClass c = player._pClass;
if (c == HeroClass::Bard && hfbard_mpq == nullptr) {
c = HeroClass::Rogue;
@ -508,9 +503,9 @@ void InitPlayerGFX(int pnum)
if (player._pHitPoints >> 6 == 0) {
player._pgfxnum = 0;
LoadPlrGFX(pnum, PFILE_DEATH);
LoadPlrGFX(player, PFILE_DEATH);
} else {
LoadPlrGFX(pnum, PFILE_NONDEATH);
LoadPlrGFX(player, PFILE_NONDEATH);
}
}
@ -1317,7 +1312,7 @@ void StartStand(int pnum, Direction dir)
if (!player._pInvincible || player._pHitPoints != 0 || pnum != myplr) {
if ((player._pGFXLoad & PFILE_STAND) == 0) {
LoadPlrGFX(pnum, PFILE_STAND);
LoadPlrGFX(player, PFILE_STAND);
}
NewPlrAnim(player, player._pNAnim[dir], player._pNFrames, 3, player._pNWidth);
@ -1482,7 +1477,7 @@ void StartWalk(int pnum, int xvel, int yvel, int xoff, int yoff, int xadd, int y
//Load walk animation in case it's not loaded yet
if ((player._pGFXLoad & PFILE_WALK) == 0) {
LoadPlrGFX(pnum, PFILE_WALK);
LoadPlrGFX(player, PFILE_WALK);
}
//Start walk animation
@ -1525,7 +1520,7 @@ void StartAttack(int pnum, Direction d)
}
if ((player._pGFXLoad & PFILE_ATTACK) == 0) {
LoadPlrGFX(pnum, PFILE_ATTACK);
LoadPlrGFX(player, PFILE_ATTACK);
}
int skippedAnimationFrames = 0;
@ -1561,7 +1556,7 @@ void StartRangeAttack(int pnum, Direction d, int cx, int cy)
}
if ((player._pGFXLoad & PFILE_ATTACK) == 0) {
LoadPlrGFX(pnum, PFILE_ATTACK);
LoadPlrGFX(player, PFILE_ATTACK);
}
int skippedAnimationFrames = 0;
@ -1597,7 +1592,7 @@ void StartPlrBlock(int pnum, Direction dir)
PlaySfxLoc(IS_ISWORD, player.position.tile.x, player.position.tile.y);
if ((player._pGFXLoad & PFILE_BLOCK) == 0) {
LoadPlrGFX(pnum, PFILE_BLOCK);
LoadPlrGFX(player, PFILE_BLOCK);
}
int skippedAnimationFrames = 0;
@ -1631,19 +1626,19 @@ void StartSpell(int pnum, Direction d, int cx, int cy)
switch (spelldata[player._pSpell].sType) {
case STYPE_FIRE:
if ((player._pGFXLoad & PFILE_FIRE) == 0) {
LoadPlrGFX(pnum, PFILE_FIRE);
LoadPlrGFX(player, PFILE_FIRE);
}
NewPlrAnim(player, player._pFAnim[d], player._pSFrames, 0, player._pSWidth, animationFlags, 0, player._pSFNum);
break;
case STYPE_LIGHTNING:
if ((player._pGFXLoad & PFILE_LIGHTNING) == 0) {
LoadPlrGFX(pnum, PFILE_LIGHTNING);
LoadPlrGFX(player, PFILE_LIGHTNING);
}
NewPlrAnim(player, player._pLAnim[d], player._pSFrames, 0, player._pSWidth, animationFlags, 0, player._pSFNum);
break;
case STYPE_MAGIC:
if ((player._pGFXLoad & PFILE_MAGIC) == 0) {
LoadPlrGFX(pnum, PFILE_MAGIC);
LoadPlrGFX(player, PFILE_MAGIC);
}
NewPlrAnim(player, player._pTAnim[d], player._pSFrames, 0, player._pSWidth, animationFlags, 0, player._pSFNum);
break;
@ -1743,7 +1738,7 @@ void StartPlrHit(int pnum, int dam, bool forcehit)
Direction pd = player._pdir;
if ((player._pGFXLoad & PFILE_HIT) == 0) {
LoadPlrGFX(pnum, PFILE_HIT);
LoadPlrGFX(player, PFILE_HIT);
}
int skippedAnimationFrames = 0;
@ -1852,7 +1847,7 @@ StartPlayerKill(int pnum, int earflag)
}
if ((player._pGFXLoad & PFILE_DEATH) == 0) {
LoadPlrGFX(pnum, PFILE_DEATH);
LoadPlrGFX(player, PFILE_DEATH);
}
NewPlrAnim(player, player._pDAnim[player._pdir], player._pDFrames, 1, player._pDWidth);

2
Source/player.h

@ -410,7 +410,7 @@ extern PlayerStruct plr[MAX_PLRS];
extern bool deathflag;
extern int ToBlkTbl[enum_size<HeroClass>::value];
void LoadPlrGFX(int pnum, player_graphic gfxflag);
void LoadPlrGFX(PlayerStruct &player, player_graphic gfxflag);
void InitPlayerGFX(int pnum);
void InitPlrGFXMem(PlayerStruct &player);
void FreePlayerGFX(PlayerStruct &player);

Loading…
Cancel
Save