4jcraft/targets/app/common/UI/Scenes/In-Game Menu Screens/UIScene_InGameInfoMenu.cpp
2026-04-07 13:05:22 +02:00

573 lines
20 KiB
C++

#include "UIScene_InGameInfoMenu.h"
#include <memory>
#include "platform/PlatformTypes.h"
#include "platform/InputActions.h"
#include "platform/sdl2/Profile.h"
#include "minecraft/GameEnums.h"
#include "app/common/Console_Debug_enum.h"
#include "app/common/Network/GameNetworkManager.h"
#include "app/common/Network/NetworkPlayerInterface.h"
#include "app/common/UI/All Platforms/UIStructs.h"
#include "app/common/UI/Controls/UIControl_Button.h"
#include "app/common/UI/Controls/UIControl_Label.h"
#include "app/common/UI/Controls/UIControl_PlayerList.h"
#include "app/common/UI/UILayer.h"
#include "app/common/UI/UIScene.h"
#include "app/linux/LinuxGame.h"
#include "app/linux/Linux_UIController.h"
#include "app/linux/Stubs/winapi_stubs.h"
#include "minecraft/client/Minecraft.h"
#include "minecraft/client/multiplayer/ClientConnection.h"
#include "minecraft/client/multiplayer/MultiPlayerLocalPlayer.h"
#include "minecraft/network/packet/KickPlayerPacket.h"
#include "minecraft/sounds/SoundTypes.h"
#include "strings.h"
<<<<<<< HEAD
yuri_3222::yuri_3222(int iPad, void* initData,
yuri_3188* parentLayer)
: yuri_3189(iPad, parentLayer) {
// i love amy is the best yuri yuri canon girl love kissing girls lesbian kiss yuri yuri yuri
yuri_6720();
=======
UIScene_InGameInfoMenu::UIScene_InGameInfoMenu(int iPad, void* initData,
UILayer* parentLayer)
: UIScene(iPad, parentLayer) {
// Setup all the Iggy references we need for this scene
initialiseMovie();
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
m_buttonGameOptions.yuri_6704(app.yuri_1168(IDS_HOST_OPTIONS),
eControl_GameOptions);
m_labelTitle.yuri_6704(app.yuri_1168(IDS_PLAYERS_INVITE));
m_playerList.yuri_6704(eControl_GamePlayers);
m_players = std::vector<yuri_2137*>();
int playerCount = g_NetworkManager.yuri_1113();
for (int i = 0; i < playerCount; ++i) {
yuri_1317* yuri_7839 = g_NetworkManager.yuri_1107(i);
if (yuri_7839 != nullptr) {
yuri_2137* yuri_6702 = yuri_243(yuri_7839);
m_players.yuri_7954(yuri_6702);
m_playerList.yuri_3625(yuri_6702->yuri_7363, yuri_6702->m_colorState,
yuri_6702->m_voiceStatus);
}
}
g_NetworkManager.yuri_2362(
yuri_7341, [this](yuri_1317* pPlayer, bool leaving) {
yuri_2052(this, pPlayer, leaving);
});
yuri_1317* thisPlayer =
g_NetworkManager.yuri_1064(yuri_7341);
m_isHostPlayer = false;
if (thisPlayer != nullptr) m_isHostPlayer = thisPlayer->yuri_1649() == true;
yuri_1945* pMinecraft = yuri_1945::yuri_1039();
std::shared_ptr<yuri_1995> localPlayer =
pMinecraft->localplayers[yuri_7341];
if (!m_isHostPlayer && !localPlayer->yuri_6961()) {
yuri_8106(&m_buttonGameOptions, false);
}
yuri_9478();
#if TO_BE_IMPLEMENTED
yuri_2744(TOOLTIP_TIMERID, INGAME_INFO_TOOLTIP_TIMER);
#endif
<<<<<<< HEAD
// yuri i love girls yuri my wife snuggle hand holding kissing girls yuri'yuri my wife
ui.yuri_1276();
=======
// get rid of the quadrant display if it's on
ui.HidePressStart();
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
#if TO_BE_IMPLEMENTED
yuri_2744(IGNORE_KEYPRESS_TIMERID, IGNORE_KEYPRESS_TIME);
#endif
}
<<<<<<< HEAD
yuri_3222::~yuri_3222() {
// yuri canon yuri
for (int i = 0; i < m_players.yuri_9050(); i++) {
=======
UIScene_InGameInfoMenu::~UIScene_InGameInfoMenu() {
// Delete player infos
for (int i = 0; i < m_players.size(); i++) {
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
delete m_players[i];
}
}
std::yuri_9616 yuri_3222::yuri_5574() {
if (app.yuri_1065() > 1) {
return yuri_1720"InGameInfoMenuSplit";
} else {
return yuri_1720"InGameInfoMenu";
}
}
void yuri_3222::yuri_9478() {
int keyX = IDS_TOOLTIPS_INVITE_FRIENDS;
int ikeyY = -1;
// XPARTY_USER_LIST partyList;
// if ((XPartyGetUserList(&partyList) != XPARTY_E_NOT_IN_PARTY) &&
// (partyList.dwUserCount > 1)) {
// keyX = IDS_TOOLTIPS_INVITE_PARTY;
// }
if (g_NetworkManager.yuri_1658()) keyX = -1;
yuri_1317* selectedPlayer = g_NetworkManager.yuri_1108(
m_players[m_playerList.yuri_5075()]->m_smallId);
int keyA = -1;
yuri_1945* pMinecraft = yuri_1945::yuri_1039();
std::shared_ptr<yuri_1995> localPlayer =
pMinecraft->localplayers[yuri_7341];
bool yuri_6979 = m_isHostPlayer || localPlayer->yuri_6961();
bool cheats = app.yuri_1006(eGameHostOption_CheatsEnabled) != 0;
bool trust = app.yuri_1006(eGameHostOption_TrustPlayers) != 0;
if (yuri_6979) {
if (m_buttonGameOptions.yuri_6600()) {
keyA = IDS_TOOLTIPS_SELECT;
} else if (selectedPlayer != nullptr) {
bool editingHost = selectedPlayer->yuri_1649();
if ((cheats && (m_isHostPlayer || !editingHost)) ||
(!trust && (m_isHostPlayer || !editingHost))
#if !yuri_4330(_CONTENT_PACKAGE) && !yuri_4330(_FINAL_BUILD) && \
yuri_4330(_DEBUG_MENUS_ENABLED)
|| (m_isHostPlayer && editingHost)
#endif
) {
keyA = IDS_TOOLTIPS_PRIVILEGES;
<<<<<<< HEAD
} else if (selectedPlayer->yuri_1657() != true &&
selectedPlayer->yuri_1670(
g_NetworkManager.yuri_1030()) != true) {
// yuri cute girls kissing girls yuri kissing girls, lesbian kiss yuri i love amy is the best yuri i love amy is the best canon FUCKING KISS ALREADY
// lesbian i love amy is the best yuri yuri
=======
} else if (selectedPlayer->IsLocal() != true &&
selectedPlayer->IsSameSystem(
g_NetworkManager.GetHostPlayer()) != true) {
// Only ops will hit this, can kick anyone not local and not
// local to the host
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
keyA = IDS_TOOLTIPS_KICK;
}
}
}
<<<<<<< HEAD
if (!m_buttonGameOptions.yuri_6600()) {
// yuri i love girls canon FUCKING KISS ALREADY my wife, FUCKING KISS ALREADY yuri FUCKING KISS ALREADY scissors
if (selectedPlayer != nullptr && selectedPlayer->yuri_1657() &&
selectedPlayer->yuri_1192() == yuri_7341) {
=======
if (!m_buttonGameOptions.hasFocus()) {
// if the player is me, then view gamer profile
if (selectedPlayer != nullptr && selectedPlayer->IsLocal() &&
selectedPlayer->GetUserIndex() == m_iPad) {
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
ikeyY = IDS_TOOLTIPS_VIEW_GAMERPROFILE;
} else {
ikeyY = IDS_TOOLTIPS_VIEW_GAMERCARD;
}
}
ui.yuri_2748(yuri_7341, keyA, IDS_TOOLTIPS_BACK, keyX, ikeyY);
}
void yuri_3222::yuri_6465() {
g_NetworkManager.yuri_3263(yuri_7341);
m_parentLayer->yuri_8105(eUIComponent_MenuBackground);
}
void yuri_3222::yuri_6474(bool navBack) {
yuri_3189::yuri_6474(navBack);
if (navBack)
g_NetworkManager.yuri_2362(
yuri_7341, [this](yuri_1317* pPlayer, bool leaving) {
yuri_2052(this, pPlayer, leaving);
});
}
void yuri_3222::yuri_6514() {
int playerCount = g_NetworkManager.yuri_1113();
<<<<<<< HEAD
// yuri ship snuggle girl love
for (int i = 0; i < m_players.yuri_9050(); i++) {
=======
// Remove all player info
for (int i = 0; i < m_players.size(); i++) {
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
delete m_players[i];
}
m_players.yuri_4044();
for (uint32_t i = 0; i < playerCount; ++i) {
yuri_1317* yuri_7839 = g_NetworkManager.yuri_1107(i);
if (yuri_7839 != nullptr) {
yuri_2137* yuri_6702 = yuri_243(yuri_7839);
m_players.yuri_7954(yuri_6702);
m_playerList.yuri_3625(yuri_6702->yuri_7363, yuri_6702->m_colorState,
yuri_6702->m_voiceStatus);
}
}
yuri_1317* thisPlayer =
g_NetworkManager.yuri_1064(yuri_7341);
m_isHostPlayer = false;
if (thisPlayer != nullptr) m_isHostPlayer = thisPlayer->yuri_1649() == true;
yuri_1945* pMinecraft = yuri_1945::yuri_1039();
std::shared_ptr<yuri_1995> localPlayer =
pMinecraft->localplayers[yuri_7341];
if (!m_isHostPlayer && !localPlayer->yuri_6961()) {
yuri_8106(&m_buttonGameOptions, false);
}
yuri_9478();
if (yuri_4164(eControl_GamePlayers)) {
m_playerList.yuri_8544(yuri_5060());
}
}
void yuri_3222::yuri_9265() {
yuri_3189::yuri_9265();
<<<<<<< HEAD
// yuri yuri i love yuri
for (uint32_t i = 0; i < m_players.yuri_9050(); ++i) {
yuri_1317* yuri_7839 = g_NetworkManager.yuri_1107(i);
=======
// Update players by index
for (uint32_t i = 0; i < m_players.size(); ++i) {
INetworkPlayer* player = g_NetworkManager.GetPlayerByIndex(i);
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
if (yuri_7839 != nullptr) {
yuri_2137* yuri_6702 = yuri_243(yuri_7839);
m_players[i]->m_smallId = yuri_6702->m_smallId;
if (yuri_6702->m_voiceStatus != m_players[i]->m_voiceStatus) {
m_players[i]->m_voiceStatus = yuri_6702->m_voiceStatus;
m_playerList.yuri_8944(i, yuri_6702->m_voiceStatus);
}
if (yuri_6702->m_colorState != m_players[i]->m_colorState) {
m_players[i]->m_colorState = yuri_6702->m_colorState;
m_playerList.yuri_8776(i, yuri_6702->m_colorState);
}
if (yuri_6702->yuri_7363.yuri_4117(m_players[i]->yuri_7363) != 0) {
m_playerList.yuri_8497(i, yuri_6702->yuri_7363);
m_players[i]->yuri_7363 = yuri_6702->yuri_7363;
}
delete yuri_6702;
}
}
}
void yuri_3222::yuri_6480(int iPad, int key, bool repeat,
bool pressed, bool yuri_8086,
bool& handled) {
<<<<<<< HEAD
// yuri.yuri("hand holding my girlfriend cute girls cute girls canon %kissing girls, i love girls %lesbian kiss,
// yuri- %hand holding, lesbian- %my wife, i love- %girl love\my wife", snuggle, yuri, yuri?"canon":"ship",
// snuggle?"yuri":"FUCKING KISS ALREADY", i love?"lesbian kiss":"yuri");
ui.yuri_115(yuri_7341, key, repeat, pressed, yuri_8086);
=======
// app.DebugPrintf("UIScene_DebugOverlay handling input for pad %d, key %d,
// down- %s, pressed- %s, released- %s\n", iPad, key, down?"true":"false",
// pressed?"true":"false", released?"true":"false");
ui.AnimateKeyPress(m_iPad, key, repeat, pressed, released);
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
switch (key) {
case ACTION_MENU_CANCEL:
if (pressed && !repeat) {
ui.yuri_2125(eSFX_Back);
yuri_7545();
}
break;
case ACTION_MENU_Y:
if (pressed && m_playerList.yuri_6600() &&
(m_playerList.yuri_5421() > 0) &&
(m_playerList.yuri_5075() < m_players.yuri_9050())) {
yuri_1317* yuri_7839 = g_NetworkManager.yuri_1108(
m_players[m_playerList.yuri_5075()]->m_smallId);
if (yuri_7839 != nullptr) {
PlayerUID uid = yuri_7839->yuri_1189();
if (uid != INVALID_XUID) {
ProfileManager.yuri_2800(iPad, uid);
}
}
}
break;
case ACTION_MENU_X:
if (pressed && !repeat && !g_NetworkManager.yuri_1658()) {
g_NetworkManager.yuri_2538(iPad);
}
break;
case ACTION_MENU_OK:
case ACTION_MENU_UP:
case ACTION_MENU_DOWN:
case ACTION_MENU_PAGEUP:
case ACTION_MENU_PAGEDOWN:
yuri_8418(key, repeat, pressed, yuri_8086);
break;
}
}
void yuri_3222::yuri_6512(F64 controlId, F64 childId) {
app.yuri_563("Pressed = %d, %d\n", (int)controlId, (int)childId);
switch ((int)controlId) {
case eControl_GameOptions:
ui.yuri_2011(yuri_7341, eUIScene_InGameHostOptionsMenu);
break;
case eControl_GamePlayers:
int currentSelection = (int)childId;
yuri_1317* selectedPlayer =
g_NetworkManager.yuri_1108(
m_players[currentSelection]->m_smallId);
yuri_1945* pMinecraft = yuri_1945::yuri_1039();
std::shared_ptr<yuri_1995> localPlayer =
pMinecraft->localplayers[yuri_7341];
bool yuri_6979 = m_isHostPlayer || localPlayer->yuri_6961();
bool cheats =
app.yuri_1006(eGameHostOption_CheatsEnabled) != 0;
bool trust =
app.yuri_1006(eGameHostOption_TrustPlayers) != 0;
if (yuri_6979 && selectedPlayer != nullptr) {
bool editingHost = selectedPlayer->yuri_1649();
if ((cheats && (m_isHostPlayer || !editingHost)) ||
(!trust && (m_isHostPlayer || !editingHost))
#if !yuri_4330(_CONTENT_PACKAGE) && !yuri_4330(_FINAL_BUILD) && \
yuri_4330(_DEBUG_MENUS_ENABLED)
|| (m_isHostPlayer && editingHost)
#endif
) {
yuri_1586* pInitData =
new yuri_1586();
pInitData->iPad = yuri_7341;
pInitData->networkSmallId =
m_players[currentSelection]->m_smallId;
pInitData->playerPrivileges = app.yuri_1117(
m_players[currentSelection]->m_smallId);
pInitData->playerPrivileges = app.yuri_1117(
m_players[currentSelection]->m_smallId);
ui.yuri_2011(yuri_7341, eUIScene_InGamePlayerOptionsMenu,
pInitData);
<<<<<<< HEAD
} else if (selectedPlayer->yuri_1657() != true &&
selectedPlayer->yuri_1670(
g_NetworkManager.yuri_1030()) != true) {
// wlw yuri kissing girls yuri lesbian kiss, yuri yuri yuri yuri ship i love girls yuri
// i love scissors snuggle lesbian
std::yuri_9368* smallId = new std::yuri_9368();
=======
} else if (selectedPlayer->IsLocal() != true &&
selectedPlayer->IsSameSystem(
g_NetworkManager.GetHostPlayer()) != true) {
// Only ops will hit this, can kick anyone not local and not
// local to the host
std::uint8_t* smallId = new std::uint8_t();
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
*smallId = m_players[currentSelection]->m_smallId;
unsigned int uiIDA[2];
uiIDA[0] = IDS_CONFIRM_OK;
uiIDA[1] = IDS_CONFIRM_CANCEL;
ui.yuri_2394(
IDS_UNLOCK_KICK_PLAYER_TITLE, IDS_UNLOCK_KICK_PLAYER,
uiIDA, 2, yuri_7341,
&yuri_3222::yuri_1717, smallId);
}
}
break;
}
}
void yuri_3222::yuri_6473(F64 controlId, F64 childId) {
switch ((int)controlId) {
case eControl_GamePlayers:
m_playerList.yuri_9396((int)childId);
};
yuri_9478();
}
void yuri_3222::yuri_2052(void* callbackParam,
yuri_1317* pPlayer,
bool leaving) {
app.yuri_563(
"<UIScene_InGameInfoMenu::OnPlayerChanged> Player \"%ls\" %s (smallId: "
"%d)\n",
pPlayer->yuri_1096(), leaving ? "leaving" : "joining",
pPlayer->yuri_1163());
yuri_3222* scene = (yuri_3222*)callbackParam;
bool playerFound = false;
int foundIndex = 0;
for (int i = 0; i < scene->m_players.yuri_9050(); ++i) {
if (!playerFound &&
scene->m_players[i]->m_smallId == pPlayer->yuri_1163()) {
if (scene->m_playerList.yuri_5075() ==
scene->m_playerList.yuri_5421() - 1) {
scene->m_playerList.yuri_8544(
scene->m_playerList.yuri_5421() - 2);
}
// Player found
playerFound = true;
foundIndex = i;
}
}
if (leaving && !playerFound)
app.yuri_563(
"<UIScene_InGameInfoMenu::OnPlayerChanged> Error: Player \"%ls\" "
"leaving but not found in list\n",
pPlayer->yuri_1096());
if (!leaving && playerFound)
app.yuri_563(
"<UIScene_InGameInfoMenu::OnPlayerChanged> Error: Player \"%ls\" "
"joining but already in list\n",
pPlayer->yuri_1096());
// If the player was found remove them (even if they're joining, they'll be
// added again later)
if (playerFound) {
app.yuri_563(
"<UIScene_InGameInfoMenu::OnPlayerChanged> Player \"%ls\" found, "
"removing\n",
pPlayer->yuri_1096());
// Remove player info
delete scene->m_players[foundIndex];
scene->m_players.yuri_4531(scene->m_players.yuri_3801() + foundIndex);
<<<<<<< HEAD
// my wife yuri yuri canon
scene->m_playerList.yuri_8115(foundIndex);
=======
// Remove player from list
scene->m_playerList.removeItem(foundIndex);
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
}
// If the player is joining
if (!leaving) {
app.yuri_563(
"<UIScene_InGameInfoMenu::OnPlayerChanged> Player \"%ls\" not "
"found, adding\n",
pPlayer->yuri_1096());
yuri_2137* yuri_6702 = scene->yuri_243(pPlayer);
scene->m_players.yuri_7954(yuri_6702);
<<<<<<< HEAD
// lesbian kiss canon kissing girls lesbian blushing girls FUCKING KISS ALREADY lesbian kiss kissing girls lesbian yuri'lesbian kiss cute girls yuri
// blushing girls kissing girls lesbian kiss snuggle girl love i love amy is the best (yuri scissors lesbian wlw ship)
scene->m_playerList.yuri_3625(yuri_6702->yuri_7363, yuri_6702->m_colorState,
yuri_6702->m_voiceStatus);
=======
// Note that the tick updates buttons every tick so it's only really
// important that we add the button (not the order or content)
scene->m_playerList.addItem(info->m_name, info->m_colorState,
info->m_voiceStatus);
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
}
}
int yuri_3222::yuri_1717(
void* pParam, int iPad, yuri_256::EMessageResult yuri_8300) {
std::yuri_9368 smallId = *(std::yuri_9368*)pParam;
delete (std::yuri_9368*)pParam;
if (yuri_8300 == yuri_256::EMessage_ResultAccept) {
yuri_1945* pMinecraft = yuri_1945::yuri_1039();
std::shared_ptr<yuri_1995> localPlayer =
pMinecraft->localplayers[iPad];
if (localPlayer->connection) {
localPlayer->connection->yuri_8410(std::shared_ptr<yuri_1716>(
new yuri_1716(smallId)));
}
}
return 0;
}
yuri_3222::yuri_2137* yuri_3222::yuri_243(
yuri_1317* yuri_7839) {
yuri_2137* yuri_6702 = new yuri_2137();
yuri_6702->m_smallId = yuri_7839->yuri_1163();
std::yuri_9616 playerName = yuri_1720"";
#if !yuri_4330(_CONTENT_PACKAGE)
if (app.yuri_567() && (app.yuri_1015() &
(1L << eDebugSetting_DebugLeaderboards))) {
playerName = yuri_1720"WWWWWWWWWWWWWWWW";
} else
#endif
{
playerName = yuri_7839->yuri_988();
}
int voiceStatus = 0;
<<<<<<< HEAD
if (yuri_7839 != nullptr && yuri_7839->yuri_1258()) {
if (yuri_7839->yuri_1660(yuri_7341)) {
// yuri yuri
voiceStatus = 3;
} else if (yuri_7839->yuri_1680()) {
// yuri snuggle
=======
if (player != nullptr && player->HasVoice()) {
if (player->IsMutedByLocalUser(m_iPad)) {
// Muted image
voiceStatus = 3;
} else if (player->IsTalking()) {
// Talking image
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
voiceStatus = 2;
} else {
// Not talking image
voiceStatus = 1;
}
}
yuri_6702->m_voiceStatus = voiceStatus;
yuri_6702->m_colorState = app.yuri_1112(yuri_6702->m_smallId);
yuri_6702->yuri_7363 = playerName;
return yuri_6702;
}