diff --git a/doomsday/plugins/common/src/p_mapsetup.cpp b/doomsday/plugins/common/src/p_mapsetup.cpp index 3806fb2e55..31e89f5242 100644 --- a/doomsday/plugins/common/src/p_mapsetup.cpp +++ b/doomsday/plugins/common/src/p_mapsetup.cpp @@ -865,6 +865,7 @@ static void precacheResources() # else // __JHERETIC__ Rend_CacheForMobjType(MT_RAINPLR1); Rend_CacheForMobjType(MT_RAINPLR2); + Rend_CacheForMobjType(MT_RAINPLR3); Rend_CacheForMobjType(MT_RAINPLR4); # endif } diff --git a/doomsday/plugins/heretic/src/p_pspr.c b/doomsday/plugins/heretic/src/p_pspr.c index e07c1d3543..5427f8d53e 100644 --- a/doomsday/plugins/heretic/src/p_pspr.c +++ b/doomsday/plugins/heretic/src/p_pspr.c @@ -1522,6 +1522,7 @@ void C_DECL A_SkullRodStorm(mobj_t* actor) coord_t pos[3]; mobj_t* mo; int playerNum; + int rainColor = 2; // Singleplayer default (red). player_t* player; if(actor->special3-- == 0) @@ -1561,8 +1562,15 @@ void C_DECL A_SkullRodStorm(mobj_t* actor) pos[VX] = actor->origin[VX] + ((P_Random() & 127) - 64); pos[VY] = actor->origin[VY] + ((P_Random() & 127) - 64); - if((mo = P_SpawnMobjXYZ(MT_RAINPLR1 + actor->special2, pos[VX], pos[VY], - 0, P_Random() << 24, MSF_Z_CEIL))) + if(IS_NETGAME) + { + // Rain color matches the player's color. + rainColor = cfg.playerColor[actor->special2 /*plrnum*/]; + } + + // Rain colors match the player colors. + if((mo = P_SpawnMobjXYZ(MT_RAINPLR1 + rainColor, pos[VX], pos[VY], 0, + P_Random() << 24, MSF_Z_CEIL))) { mo->flags |= MF_BRIGHTSHADOW; mo->target = actor->target;