#include "network/connection.h"
#include "network/networkpacket.h"
#include "threading/mutex_auto_lock.h"
+#include "client/clientevent.h"
#include "client/renderingengine.h"
#include "util/auth.h"
#include "util/directiontables.h"
void Client::connect(Address address, bool is_local_server)
{
- DSTACK(FUNCTION_NAME);
-
initLocalMapSaving(address, m_address_name, is_local_server);
m_con->SetTimeoutMs(0);
void Client::step(float dtime)
{
- DSTACK(FUNCTION_NAME);
-
// Limit a bit
if(dtime > 2.0)
dtime = 2.0;
sendDamage(damage);
// Add to ClientEvent queue
- ClientEvent event;
- event.type = CE_PLAYER_DAMAGE;
- event.player_damage.amount = damage;
+ ClientEvent *event = new ClientEvent();
+ event->type = CE_PLAYER_DAMAGE;
+ event->player_damage.amount = damage;
m_client_event_queue.push(event);
}
}
void Client::ReceiveAll()
{
- DSTACK(FUNCTION_NAME);
u64 start_ms = porting::getTimeMs();
for(;;)
{
void Client::Receive()
{
- DSTACK(FUNCTION_NAME);
NetworkPacket pkt;
m_con->Receive(&pkt);
ProcessData(&pkt);
*/
void Client::ProcessData(NetworkPacket *pkt)
{
- DSTACK(FUNCTION_NAME);
-
ToClientCommand command = (ToClientCommand) pkt->getCommand();
u32 sender_peer_id = pkt->getPeerId();
void Client::sendDamage(u8 damage)
{
- DSTACK(FUNCTION_NAME);
-
NetworkPacket pkt(TOSERVER_DAMAGE, sizeof(u8));
pkt << damage;
Send(&pkt);
void Client::sendBreath(u16 breath)
{
- DSTACK(FUNCTION_NAME);
-
// Protocol v29 make this obsolete
if (m_proto_ver >= 29)
return;
void Client::sendRespawn()
{
- DSTACK(FUNCTION_NAME);
-
NetworkPacket pkt(TOSERVER_RESPAWN, 0);
Send(&pkt);
}
void Client::sendReady()
{
- DSTACK(FUNCTION_NAME);
-
NetworkPacket pkt(TOSERVER_CLIENT_READY,
1 + 1 + 1 + 1 + 2 + sizeof(char) * strlen(g_version_hash));
}
}
-ClientEvent Client::getClientEvent()
+ClientEvent *Client::getClientEvent()
{
FATAL_ERROR_IF(m_client_event_queue.empty(),
"Cannot getClientEvent, queue is empty.");
- ClientEvent event = m_client_event_queue.front();
+ ClientEvent *event = m_client_event_queue.front();
m_client_event_queue.pop();
return event;
}
return !m_minimap_disabled_by_server;
}
+void Client::pushToEventQueue(ClientEvent *event)
+{
+ m_client_event_queue.push(event);
+}
+
void Client::showGameChat(const bool show)
{
m_game_ui_flags->show_chat = show;