update NetworkPlayerXbox, SimpleContainer fixes

This commit is contained in:
Tropical 2026-03-22 12:50:01 -05:00
parent 4b2f614326
commit 3b77d6d806
4 changed files with 115 additions and 120 deletions

View file

@ -64,7 +64,7 @@ HRESULT CXuiSceneInventoryCreative::OnInit(XUIMessageInit* pInitData,
// 4J JEV - Item Picker Menu
std::shared_ptr<SimpleContainer> creativeContainer =
std::shared_ptr<SimpleContainer>(
new SimpleContainer(0, TabSpec::MAX_SIZE + 9));
new SimpleContainer(0, L"", false, TabSpec::MAX_SIZE + 9));
itemPickerMenu =
new ItemPickerMenu(creativeContainer, initData->player->inventory);

View file

@ -1,121 +1,109 @@
#include "../../../../Minecraft.World/Platform/stdafx.h"
#include "NetworkPlayerXbox.h"
NetworkPlayerXbox::NetworkPlayerXbox(IQNetPlayer *qnetPlayer)
{
m_qnetPlayer = qnetPlayer;
m_pSocket = NULL;
NetworkPlayerXbox::NetworkPlayerXbox(IQNetPlayer* qnetPlayer) {
m_qnetPlayer = qnetPlayer;
m_pSocket = NULL;
}
unsigned char NetworkPlayerXbox::GetSmallId()
{
return m_qnetPlayer->GetSmallId();
unsigned char NetworkPlayerXbox::GetSmallId() {
return m_qnetPlayer->GetSmallId();
}
void NetworkPlayerXbox::SendData(INetworkPlayer *player, const void *pvData, int dataSize, bool lowPriority)
{
DWORD flags;
flags = QNET_SENDDATA_RELIABLE | QNET_SENDDATA_SEQUENTIAL;
if( lowPriority ) flags |= QNET_SENDDATA_LOW_PRIORITY | QNET_SENDDATA_SECONDARY;
m_qnetPlayer->SendData(((NetworkPlayerXbox *)player)->m_qnetPlayer, pvData, dataSize, flags);
void NetworkPlayerXbox::SendData(INetworkPlayer* player, const void* pvData,
int dataSize, bool lowPriority, bool ack) {
DWORD flags;
flags = QNET_SENDDATA_RELIABLE | QNET_SENDDATA_SEQUENTIAL;
if (lowPriority)
flags |= QNET_SENDDATA_LOW_PRIORITY | QNET_SENDDATA_SECONDARY;
m_qnetPlayer->SendData(
static_cast<NetworkPlayerXbox*>(player)->m_qnetPlayer, pvData, dataSize,
flags);
}
bool NetworkPlayerXbox::IsSameSystem(INetworkPlayer *player)
{
return ( m_qnetPlayer->IsSameSystem(((NetworkPlayerXbox *)player)->m_qnetPlayer) == TRUE );
int NetworkPlayerXbox::GetOutstandingAckCount() { return 0; }
bool NetworkPlayerXbox::IsSameSystem(INetworkPlayer* player) {
return (m_qnetPlayer->IsSameSystem(
static_cast<NetworkPlayerXbox*>(player)->m_qnetPlayer) == TRUE);
}
int NetworkPlayerXbox::GetSendQueueSizeBytes( INetworkPlayer *player, bool lowPriority )
{
DWORD flags = QNET_GETSENDQUEUESIZE_BYTES;
if( lowPriority ) flags |= QNET_GETSENDQUEUESIZE_SECONDARY_TYPE;
return m_qnetPlayer->GetSendQueueSize(player ? ((NetworkPlayerXbox *)player)->m_qnetPlayer : NULL , flags);
int NetworkPlayerXbox::GetSendQueueSizeBytes(INetworkPlayer* player,
bool lowPriority) {
DWORD flags = QNET_GETSENDQUEUESIZE_BYTES;
if (lowPriority) flags |= QNET_GETSENDQUEUESIZE_SECONDARY_TYPE;
return m_qnetPlayer->GetSendQueueSize(
player ? static_cast<NetworkPlayerXbox*>(player)->m_qnetPlayer
: nullptr,
flags);
}
int NetworkPlayerXbox::GetSendQueueSizeMessages( INetworkPlayer *player, bool lowPriority )
{
DWORD flags = QNET_GETSENDQUEUESIZE_MESSAGES;
if( lowPriority ) flags |= QNET_GETSENDQUEUESIZE_SECONDARY_TYPE;
return m_qnetPlayer->GetSendQueueSize(player ? ((NetworkPlayerXbox *)player)->m_qnetPlayer : NULL , flags);
int NetworkPlayerXbox::GetSendQueueSizeMessages(INetworkPlayer* player,
bool lowPriority) {
DWORD flags = QNET_GETSENDQUEUESIZE_MESSAGES;
if (lowPriority) flags |= QNET_GETSENDQUEUESIZE_SECONDARY_TYPE;
return m_qnetPlayer->GetSendQueueSize(
player ? static_cast<NetworkPlayerXbox*>(player)->m_qnetPlayer
: nullptr,
flags);
}
int NetworkPlayerXbox::GetCurrentRtt()
{
return m_qnetPlayer->GetCurrentRtt();
int NetworkPlayerXbox::GetCurrentRtt() { return m_qnetPlayer->GetCurrentRtt(); }
bool NetworkPlayerXbox::IsHost() { return (m_qnetPlayer->IsHost() == TRUE); }
bool NetworkPlayerXbox::IsGuest() { return (m_qnetPlayer->IsGuest() == TRUE); }
bool NetworkPlayerXbox::IsLocal() { return (m_qnetPlayer->IsLocal() == TRUE); }
int NetworkPlayerXbox::GetSessionIndex() {
return m_qnetPlayer->GetSessionIndex();
}
bool NetworkPlayerXbox::IsHost()
{
return ( m_qnetPlayer->IsHost() == TRUE );
bool NetworkPlayerXbox::IsTalking() {
return (m_qnetPlayer->IsTalking() == TRUE);
}
bool NetworkPlayerXbox::IsGuest()
{
return ( m_qnetPlayer->IsGuest() == TRUE );
bool NetworkPlayerXbox::IsMutedByLocalUser(int userIndex) {
return (m_qnetPlayer->IsMutedByLocalUser(userIndex) == TRUE);
}
bool NetworkPlayerXbox::IsLocal()
{
return ( m_qnetPlayer->IsLocal() == TRUE );
bool NetworkPlayerXbox::HasVoice() {
return (m_qnetPlayer->HasVoice() == TRUE);
}
int NetworkPlayerXbox::GetSessionIndex()
{
return m_qnetPlayer->GetSessionIndex();
bool NetworkPlayerXbox::HasCamera() {
return (m_qnetPlayer->HasCamera() == TRUE);
}
bool NetworkPlayerXbox::IsTalking()
{
return ( m_qnetPlayer->IsTalking() == TRUE );
int NetworkPlayerXbox::GetUserIndex() { return m_qnetPlayer->GetUserIndex(); }
void NetworkPlayerXbox::SetSocket(Socket* pSocket) { m_pSocket = pSocket; }
Socket* NetworkPlayerXbox::GetSocket() { return m_pSocket; }
PlayerUID NetworkPlayerXbox::GetUID() { return m_qnetPlayer->GetXuid(); }
const wchar_t* NetworkPlayerXbox::GetOnlineName() {
return m_qnetPlayer->GetGamertag();
}
bool NetworkPlayerXbox::IsMutedByLocalUser(int userIndex)
{
return ( m_qnetPlayer->IsMutedByLocalUser(userIndex) == TRUE );
std::wstring NetworkPlayerXbox::GetDisplayName() {
return m_qnetPlayer->GetGamertag();
}
bool NetworkPlayerXbox::HasVoice()
{
return ( m_qnetPlayer->HasVoice() == TRUE );
IQNetPlayer* NetworkPlayerXbox::GetQNetPlayer() { return m_qnetPlayer; }
void NetworkPlayerXbox::SentChunkPacket() {
m_lastChunkPacketTime = System::currentTimeMillis();
}
bool NetworkPlayerXbox::HasCamera()
{
return ( m_qnetPlayer->HasCamera() == TRUE );
}
int NetworkPlayerXbox::GetUserIndex()
{
return m_qnetPlayer->GetUserIndex();
}
void NetworkPlayerXbox::SetSocket(Socket *pSocket)
{
m_pSocket = pSocket;
}
Socket *NetworkPlayerXbox::GetSocket()
{
return m_pSocket;
}
PlayerUID NetworkPlayerXbox::GetUID()
{
return m_qnetPlayer->GetXuid();
}
const wchar_t *NetworkPlayerXbox::GetOnlineName()
{
return m_qnetPlayer->GetGamertag();
}
std::wstring NetworkPlayerXbox::GetDisplayName()
{
return m_qnetPlayer->GetGamertag();
}
IQNetPlayer *NetworkPlayerXbox::GetQNetPlayer()
{
return m_qnetPlayer;
}
int NetworkPlayerXbox::GetTimeSinceLastChunkPacket_ms() {
// If we haven't ever sent a packet, return maximum
if (m_lastChunkPacketTime == 0) {
return INT_MAX;
}
const int64_t currentTime = System::currentTimeMillis();
return static_cast<int>(currentTime - m_lastChunkPacketTime);
}

View file

@ -2,38 +2,45 @@
#include "../../Common/Network/NetworkPlayerInterface.h"
// This is an implementation of the INetworkPlayer interface, for Xbox 360. It effectively wraps the IQNetPlayer class in a non-platform-specific way. It is
// This is an implementation of the INetworkPlayer interface, for Xbox 360. It
// effectively wraps the IQNetPlayer class in a non-platform-specific way. It is
// managed by PlatformNetworkManagerXbox.
class NetworkPlayerXbox : public INetworkPlayer
{
class NetworkPlayerXbox : public INetworkPlayer {
public:
// Common player interface
NetworkPlayerXbox(IQNetPlayer *qnetPlayer);
virtual unsigned char GetSmallId();
virtual void SendData(INetworkPlayer *player, const void *pvData, int dataSize, bool lowPriority);
virtual bool IsSameSystem(INetworkPlayer *player);
virtual int GetSendQueueSizeBytes( INetworkPlayer *player, bool lowPriority );
virtual int GetSendQueueSizeMessages( INetworkPlayer *player, bool lowPriority );
virtual int GetCurrentRtt();
virtual bool IsHost();
virtual bool IsGuest();
virtual bool IsLocal();
virtual int GetSessionIndex();
virtual bool IsTalking();
virtual bool IsMutedByLocalUser(int userIndex);
virtual bool HasVoice();
virtual bool HasCamera();
virtual int GetUserIndex();
virtual void SetSocket(Socket *pSocket);
virtual Socket *GetSocket();
virtual const wchar_t *GetOnlineName();
virtual std::wstring GetDisplayName();
virtual PlayerUID GetUID();
// Common player interface
NetworkPlayerXbox(IQNetPlayer* qnetPlayer);
virtual unsigned char GetSmallId();
virtual void SendData(INetworkPlayer* player, const void* pvData,
int dataSize, bool lowPriority, bool ack);
virtual bool IsSameSystem(INetworkPlayer* player);
virtual int GetOutstandingAckCount();
virtual int GetSendQueueSizeBytes(INetworkPlayer* player, bool lowPriority);
virtual int GetSendQueueSizeMessages(INetworkPlayer* player,
bool lowPriority);
virtual int GetCurrentRtt();
virtual bool IsHost();
virtual bool IsGuest();
virtual bool IsLocal();
virtual int GetSessionIndex();
virtual bool IsTalking();
virtual bool IsMutedByLocalUser(int userIndex);
virtual bool HasVoice();
virtual bool HasCamera();
virtual int GetUserIndex();
virtual void SetSocket(Socket* pSocket);
virtual Socket* GetSocket();
virtual const wchar_t* GetOnlineName();
virtual std::wstring GetDisplayName();
virtual PlayerUID GetUID();
virtual void SentChunkPacket();
virtual int GetTimeSinceLastChunkPacket_ms();
// Extra xbox-specific things
IQNetPlayer* GetQNetPlayer();
// Extra xbox-specific things
IQNetPlayer *GetQNetPlayer();
private:
IQNetPlayer *m_qnetPlayer;
Socket *m_pSocket;
IQNetPlayer* m_qnetPlayer;
Socket* m_pSocket;
int64_t m_lastChunkPacketTime;
};

View file

@ -16,7 +16,7 @@
// Static member initialization
int CreativeInventoryScreen::selectedTabIndex = IUIScene_CreativeMenu::eCreativeInventoryTab_BuildingBlocks;
std::shared_ptr<SimpleContainer> CreativeInventoryScreen::basicInventory = std::make_shared<SimpleContainer>(0, ITEMS_PER_PAGE);
std::shared_ptr<SimpleContainer> CreativeInventoryScreen::basicInventory = std::make_shared<SimpleContainer>(0, L"", false, ITEMS_PER_PAGE);
// ContainerCreative implementation
CreativeInventoryScreen::ContainerCreative::ContainerCreative(std::shared_ptr<Player> player) : AbstractContainerMenu()