Move multi_maybe_disable_friendly_fire to dcx

This commit is contained in:
Kp 2017-03-18 18:07:36 +00:00
parent 274f9047aa
commit 104169dada
2 changed files with 14 additions and 5 deletions

View file

@ -466,7 +466,7 @@ void multi_send_remobj(vobjptridx_t objnum);
void multi_send_door_open(vcsegidx_t segnum, unsigned side, uint8_t flag);
void multi_send_drop_weapon(vobjptridx_t objnum,int seed);
void multi_reset_player_object(vobjptr_t objp);
int multi_maybe_disable_friendly_fire(cobjptridx_t killer);
int multi_maybe_disable_friendly_fire(const object *killer);
}
#endif

View file

@ -4585,16 +4585,16 @@ static void multi_do_ranking (const playernum_t pnum, const ubyte *buf)
HUD_init_message(HM_MULTI, "%s has been %smoted to %s!",static_cast<const char *>(Players[pnum].callsign), rankstr, RankStrings[rank]);
}
namespace dsx {
namespace dcx {
// Decide if fire from "killer" is friendly. If yes return 1 (no harm to me) otherwise 0 (damage me)
int multi_maybe_disable_friendly_fire(const cobjptridx_t killer)
static int multi_maybe_disable_friendly_fire(const object_base *const killer)
{
if (!(Game_mode & GM_NETWORK)) // no Multiplayer game -> always harm me!
return 0;
if (!Netgame.NoFriendlyFire) // friendly fire is activated -> harm me!
return 0;
if (killer == object_none) // no actual killer -> harm me!
if (!killer) // no actual killer -> harm me!
return 0;
if (killer->type != OBJ_PLAYER) // not a player -> harm me!
return 0;
@ -4602,7 +4602,7 @@ int multi_maybe_disable_friendly_fire(const cobjptridx_t killer)
return is_coop;
else if (Game_mode & GM_TEAM) // team mode - find out if killer is in my team
{
if (get_team(Player_num) == get_team(get_player_id(killer))) // in my team -> don't harm me!
if (get_team(Player_num) == get_team(get_player_id(*killer))) // in my team -> don't harm me!
return 1;
else // opposite team -> harm me!
return 0;
@ -4612,6 +4612,15 @@ int multi_maybe_disable_friendly_fire(const cobjptridx_t killer)
}
namespace dsx {
int multi_maybe_disable_friendly_fire(const object *const killer)
{
return multi_maybe_disable_friendly_fire(static_cast<const object_base *>(killer));
}
}
/* Bounty packer sender and handler */
void multi_send_bounty( void )
{