mirror of
https://github.com/therealKyp/Earth-and-Beyond-server
synced 2026-08-13 22:23:03 -04:00
71 lines
1.7 KiB
C++
71 lines
1.7 KiB
C++
|
|
// MasterServerToSectorServer.cpp
|
||
|
|
|
||
|
|
/******************************************************
|
||
|
|
* ////////////////////////////////////////////// *
|
||
|
|
* // MASTER SERVER TO SECTOR SERVER OPCODES // *
|
||
|
|
* ////////////////////////////////////////////// *
|
||
|
|
******************************************************/
|
||
|
|
|
||
|
|
#include "Net7.h"
|
||
|
|
#include "Connection.h"
|
||
|
|
#include "Opcodes.h"
|
||
|
|
#include "ServerManager.h"
|
||
|
|
#include "PacketStructures.h"
|
||
|
|
|
||
|
|
void Connection::ProcessMasterServerToSectorServerOpcode(short opcode, short bytes)
|
||
|
|
{
|
||
|
|
switch (opcode)
|
||
|
|
{
|
||
|
|
case ENB_OPCODE_7902_CHARACTER_DATA :
|
||
|
|
HandleCharacterData(bytes);
|
||
|
|
break;
|
||
|
|
|
||
|
|
case ENB_OPCODE_7802_REQUEST_CHARACTER_DATA :
|
||
|
|
HandleRequestCharacterData();
|
||
|
|
break;
|
||
|
|
|
||
|
|
default :
|
||
|
|
LogMessage("ProcessMasterServerToSectorServerOpcode -- UNRECOGNIZED OPCODE 0x%04x\n", opcode);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void Connection::SendSectorAssignment(long sector_id)
|
||
|
|
{
|
||
|
|
SendResponse(ENB_OPCODE_7801_SECTOR_ASSIGNMENT, (unsigned char *) §or_id, sizeof(sector_id));
|
||
|
|
}
|
||
|
|
|
||
|
|
void Connection::HandleRequestCharacterData()
|
||
|
|
{
|
||
|
|
//LogMessage("Received DatabaseRequest packet\n");
|
||
|
|
|
||
|
|
if (g_ServerMgr->m_IsMasterServer || g_ServerMgr->m_IsStandaloneServer)
|
||
|
|
{
|
||
|
|
SendCharacterData();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void Connection::SendCharacterData()
|
||
|
|
{
|
||
|
|
long response = 0;
|
||
|
|
|
||
|
|
//LogMessage("Sending DatabaseResponse packet\n");
|
||
|
|
|
||
|
|
SendResponse(ENB_OPCODE_7902_CHARACTER_DATA, (unsigned char *) &response, sizeof(response));
|
||
|
|
}
|
||
|
|
|
||
|
|
void Connection::HandleCharacterData(short bytes)
|
||
|
|
{
|
||
|
|
// Are we a Sector Server?
|
||
|
|
if (g_ServerMgr->m_IsStandaloneServer || !g_ServerMgr->m_IsMasterServer)
|
||
|
|
{
|
||
|
|
// Yes, store the character data
|
||
|
|
if (bytes == sizeof(CharacterDatabase))
|
||
|
|
{
|
||
|
|
CharacterDatabase * database = (CharacterDatabase *) m_RecvBuffer;
|
||
|
|
//g_ServerMgr->StoreCharacterData(*database);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|