void Player::smsg_InitialFactions()
{
	WorldPacket data(SMSG_INITIALIZE_FACTIONS, 764);   //VLack: Aspire has this on 764, it was 644 before.
	data << uint32(128);
	FactionReputation* rep;
	for(uint32 i = 0; i < 128; ++i)
	{
		rep = reputationByListId[i];
		if(rep == NULL)
			data << uint8(0) << uint32(0);
		else
			data << rep->flag << rep->CalcStanding();
	}
	m_session->SendPacket(&data);
}
void Player::smsg_InitialFactions()
{
    WorldPacket data(SMSG_INITIALIZE_FACTIONS, 764);
    data << uint32(128);
    FactionReputation* rep;
    for (uint8 i = 0; i < 128; ++i)
    {
        rep = reputationByListId[i];
        if (rep == NULL)
        {
            data << uint8(0);
            data << uint32(0);
        }
        else
        {
            data << rep->flag;
            data << rep->CalcStanding();
        }
    }
    m_session->SendPacket(&data);
}
void Player::smsg_InitialFactions()
{
	WorldPacket data(SMSG_INITIALIZE_FACTIONS, 644);
	data << uint32(128);
	FactionReputation * rep;
	for(uint32 i = 0; i < 128; ++i)
	{
		rep = reputationByListId[i];
		if(rep)
		{
			/*if(rep->flag & 2 && rep->standing >= 0)
			{
				printf("listid %u\n", i);
			}*/
			data << rep->flag << rep->CalcStanding();
		}
		else
			data << uint8(0) << uint32(0);
	}
	m_session->SendPacket(&data);
}
void Player::smsg_InitialFactions()
{
	WorldPacket data(SMSG_INITIALIZE_FACTIONS, 764);
	data << uint32(128);
	FactionReputation * rep;
	for(uint32 i = 0; i < 128; ++i)
	{
		rep = reputationByListId[i];
		if(rep)
		{
			if(rep->flag & 2 && rep->standing >= 0)
			{
				DEBUG_LOG("Player","smsg_InitialFactions reputationByListId[%u]", i);
			}
			// TODO fix. Structure is right but need to filter sent data.
			// crashes client when opening rep window with assert((value >= min) && (value <= max))
			data << rep->flag << rep->CalcStanding();
			//data << uint8(0) << uint32(0);
		}
		else
			data << uint8(0) << uint32(0);
	}
	m_session->SendPacket(&data);
}