Skip to content

Commit

Permalink
Hexen: Fixed player mobj color translation
Browse files Browse the repository at this point in the history
The flags were updated in the hidden client mobj, but not
in the main player mobj.
  • Loading branch information
skyjake committed Jul 7, 2011
1 parent 5c69f8f commit 35f04f6
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 10 deletions.
6 changes: 6 additions & 0 deletions doomsday/engine/portable/src/cl_mobj.c
Expand Up @@ -342,6 +342,8 @@ void Cl_UpdateRealPlayerMobj(mobj_t *localMobj, mobj_t *remoteClientMobj, int fl
//localMobj->nexttime = clmo->nexttime;
#define DDMF_KEEP_MASK (DDMF_REMOTE | DDMF_SOLID)
localMobj->ddFlags = (localMobj->ddFlags & DDMF_KEEP_MASK) | (remoteClientMobj->ddFlags & ~DDMF_KEEP_MASK);
localMobj->flags = (localMobj->flags & ~0x1c000000) |
(remoteClientMobj->flags & 0x1c000000); // color translation flags (MF_TRANSLATION)
localMobj->radius = remoteClientMobj->radius;
localMobj->height = remoteClientMobj->height;
localMobj->floorClip = remoteClientMobj->floorClip;
Expand Down Expand Up @@ -820,6 +822,10 @@ void ClMobj_ReadDelta2(boolean skip)
d->flags = Msg_ReadLong();
d->flags2 = Msg_ReadLong();
d->flags3 = Msg_ReadLong();

/*#ifdef _DEBUG
Con_Message("ClMobj_ReadDelta2: Mobj%i: Flags %x\n", id, d->flags & 0x1c000000);
#endif*/
}

if(df & MDF_HEALTH)
Expand Down
13 changes: 6 additions & 7 deletions doomsday/plugins/common/src/d_netcl.c
Expand Up @@ -774,8 +774,7 @@ void NetCl_Finale(int packetType, byte *data)
}

/**
* Clients have other players' info, but it's only "FYI"; they don't
* really need it.
* Clients have other players' info, but it's only "FYI"; they don't really need it.
*/
void NetCl_UpdatePlayerInfo(byte *data)
{
Expand All @@ -790,11 +789,11 @@ void NetCl_UpdatePlayerInfo(byte *data)
#endif

#if __JDOOM__ || __JSTRIFE__ || __JDOOM64__
Con_Printf("NetCl_UpdatePlayerInfo: pl=%i color=%i\n", num,
cfg.playerColor[num]);
Con_Message("NetCl_UpdatePlayerInfo: pl=%i color=%i\n", num,
cfg.playerColor[num]);
#else
Con_Printf("NetCl_UpdatePlayerInfo: pl=%i color=%i class=%i\n", num,
cfg.playerColor[num], cfg.playerClass[num]);
Con_Message("NetCl_UpdatePlayerInfo: pl=%i color=%i class=%i\n", num,
cfg.playerColor[num], cfg.playerClass[num]);
#endif
}

Expand All @@ -803,7 +802,7 @@ void NetCl_UpdatePlayerInfo(byte *data)
*/
void NetCl_SendPlayerInfo()
{
byte buffer[10], *ptr = buffer;
byte buffer[10], *ptr = buffer;

if(!IS_CLIENT)
return;
Expand Down
14 changes: 12 additions & 2 deletions doomsday/plugins/common/src/d_netsv.c
Expand Up @@ -1235,11 +1235,13 @@ void NetSv_SendPlayerInfo(int whose, int to_whom)

*ptr++ = whose;
*ptr++ = cfg.playerColor[whose];
/*#ifdef _DEBUG
Con_Message("NetSv_SendPlayerInfo: To %i, player %i's color is %i.\n", to_whom, whose, cfg.playerColor[whose]);
#endif*/
#if __JHERETIC__ || __JHEXEN__
*ptr++ = cfg.playerClass[whose];
#endif
Net_SendPacket(to_whom | DDSP_ORDERED, GPT_PLAYER_INFO, buffer,
ptr - buffer);
Net_SendPacket(to_whom | DDSP_ORDERED, GPT_PLAYER_INFO, buffer, ptr - buffer);
}

void NetSv_ChangePlayerInfo(int from, byte* data)
Expand Down Expand Up @@ -1277,6 +1279,14 @@ void NetSv_ChangePlayerInfo(int from, byte* data)
P_PlayerChangeClass(pl, cfg.playerClass[from]);
#endif

#ifdef _DEBUG
if(pl->plr->mo)
{
Con_Message("Player %i mo %i translation flags %x\n", from, pl->plr->mo->thinker.id,
(pl->plr->mo->flags & MF_TRANSLATION) >> MF_TRANSSHIFT);
}
#endif

// Re-deal start spots.
P_DealPlayerStarts(0);

Expand Down
1 change: 0 additions & 1 deletion doomsday/plugins/common/src/g_game.c
Expand Up @@ -523,7 +523,6 @@ void R_SetTranslation(mobj_t* mo)
else
{
int tclass, tmap;

tmap = (mo->flags & MF_TRANSLATION) >> MF_TRANSSHIFT;

if(mo->player)
Expand Down
5 changes: 5 additions & 0 deletions doomsday/plugins/common/src/p_start.c
Expand Up @@ -447,6 +447,11 @@ void P_SpawnPlayer(int plrNum, playerclass_t pClass, float x, float y,
mo->flags |= cfg.playerColor[plrNum] << MF_TRANSSHIFT;
#endif

#ifdef _DEBUG
Con_Message("P_SpawnPlayer: Player %i spawning with translation %i.\n",
plrNum, (mo->flags & MF_TRANSLATION) >> MF_TRANSSHIFT);
#endif

p->plr->lookDir = 0; /* $unifiedangles */
p->plr->flags |= DDPF_FIXANGLES | DDPF_FIXPOS | DDPF_FIXMOM;
p->jumpTics = 0;
Expand Down

0 comments on commit 35f04f6

Please sign in to comment.