.h -> .hpp everything

This commit is contained in:
Kolyah35
2026-03-28 01:08:50 +03:00
parent 7d3257669a
commit 7418263193
845 changed files with 53732 additions and 53754 deletions

View File

@@ -1,243 +1,243 @@
#include "TouchJoinGameScreen.h"
#include "../StartMenuScreen.h"
#include "../ProgressScreen.h"
#include "../../Font.h"
#include "../../../Minecraft.h"
#include "../../../renderer/Textures.h"
namespace Touch {
//
// Games list
//
void AvailableGamesList::selectStart( int item) {
startSelected = item;
}
void AvailableGamesList::selectCancel() {
startSelected = -1;
}
void AvailableGamesList::selectItem( int item, bool doubleClick ) {
LOGI("selected an item! %d\n", item);
selectedItem = item;
}
void AvailableGamesList::renderItem( int i, int x, int y, int h, Tesselator& t )
{
if (startSelected == i && Multitouch::getFirstActivePointerIdEx() >= 0) {
fill((int)x0, y, (int)x1, y+h, 0x809E684F);
}
//static int colors[2] = {0xffffb0, 0xcccc90};
const PingedCompatibleServer& s = copiedServerList[i];
unsigned int color = s.isSpecial? 0x6090a0 : 0xffffb0;
unsigned int color2 = 0xffffa0;//colors[i&1];
int xx1 = (int)x0 + 24;
int xx2 = xx1;
if (s.isSpecial) {
xx1 += 50;
glEnable2(GL_TEXTURE_2D);
glColor4f2(1,1,1,1);
glEnable2(GL_BLEND);
minecraft->textures->loadAndBindTexture("gui/badge/minecon140.png");
blit(xx2, y + 6, 0, 0, 37, 8, 140, 240);
}
drawString(minecraft->font, s.name.C_String(), xx1, y + 4 + 2, color);
drawString(minecraft->font, s.address.ToString(false), xx2, y + 18, color2);
/*
drawString(minecraft->font, copiedServerList[i].name.C_String(), (int)x0 + 24, y + 4, color);
drawString(minecraft->font, copiedServerList[i].address.ToString(false), (int)x0 + 24, y + 18, color);
*/
}
//
// Join Game screen
//
JoinGameScreen::JoinGameScreen()
: bJoin( 2, "Join Game"),
bBack( 3, "Back"),
bJoinByIp(4, "Join By IP"),
bHeader(0, ""),
gamesList(NULL)
{
bJoin.active = false;
//gamesList->yInertia = 0.5f;
}
JoinGameScreen::~JoinGameScreen()
{
delete gamesList;
}
void JoinGameScreen::init()
{
//buttons.push_back(&bJoin);
buttons.push_back(&bBack);
buttons.push_back(&bJoinByIp);
buttons.push_back(&bHeader);
minecraft->raknetInstance->clearServerList();
gamesList = new AvailableGamesList(minecraft, width, height);
#ifdef ANDROID
//tabButtons.push_back(&bJoin);
tabButtons.push_back(&bBack);
tabButtons.push_back(&bJoinByIp);
#endif
}
void JoinGameScreen::setupPositions() {
//int yBase = height - 26;
//#ifdef ANDROID
bJoin.y = 0;
bBack.y = 0;
bJoinByIp.y = 0;
bHeader.y = 0;
//#endif
// Center buttons
//bJoin.x = width / 2 - 4 - bJoin.w;
bBack.x = 0;//width / 2 + 4;
bJoinByIp.x = width - bJoinByIp.width;;
bHeader.x = bJoinByIp.width;
bHeader.width = width - (bBack.width + bJoinByIp.width);
}
void JoinGameScreen::buttonClicked(Button* button)
{
if (button->id == bJoin.id)
{
if (isIndexValid(gamesList->selectedItem))
{
PingedCompatibleServer selectedServer = gamesList->copiedServerList[gamesList->selectedItem];
minecraft->joinMultiplayer(selectedServer);
{
bJoin.active = false;
bBack.active = false;
minecraft->setScreen(new ProgressScreen());
}
}
//minecraft->locateMultiplayer();
//minecraft->setScreen(new JoinGameScreen());
}
if(button->id == bJoinByIp.id) {
minecraft->cancelLocateMultiplayer();
minecraft->screenChooser.setScreen(SCREEN_JOINBYIP);
}
if (button->id == bBack.id)
{
minecraft->cancelLocateMultiplayer();
minecraft->screenChooser.setScreen(SCREEN_STARTMENU);
}
}
bool JoinGameScreen::handleBackEvent(bool isDown)
{
if (!isDown)
{
minecraft->cancelLocateMultiplayer();
minecraft->screenChooser.setScreen(SCREEN_STARTMENU);
}
return true;
}
bool JoinGameScreen::isIndexValid( int index )
{
return gamesList && index >= 0 && index < gamesList->getNumberOfItems();
}
void JoinGameScreen::tick()
{
if (isIndexValid(gamesList->selectedItem)) {
buttonClicked(&bJoin);
return;
}
//gamesList->tick();
const ServerList& orgServerList = minecraft->raknetInstance->getServerList();
ServerList serverList;
for (unsigned int i = 0; i < orgServerList.size(); ++i)
if (orgServerList[i].name.GetLength() > 0)
serverList.push_back(orgServerList[i]);
if (serverList.size() != gamesList->copiedServerList.size())
{
// copy the currently selected item
PingedCompatibleServer selectedServer;
bool hasSelection = false;
if (isIndexValid(gamesList->selectedItem))
{
selectedServer = gamesList->copiedServerList[gamesList->selectedItem];
hasSelection = true;
}
gamesList->copiedServerList = serverList;
gamesList->selectItem(-1, false);
// re-select previous item if it still exists
if (hasSelection)
{
for (unsigned int i = 0; i < gamesList->copiedServerList.size(); i++)
{
if (gamesList->copiedServerList[i].address == selectedServer.address)
{
gamesList->selectItem(i, false);
break;
}
}
}
} else {
for (int i = (int)gamesList->copiedServerList.size()-1; i >= 0 ; --i) {
for (int j = 0; j < (int) serverList.size(); ++j)
if (serverList[j].address == gamesList->copiedServerList[i].address)
gamesList->copiedServerList[i].name = serverList[j].name;
}
}
bJoin.active = isIndexValid(gamesList->selectedItem);
}
void JoinGameScreen::render( int xm, int ym, float a )
{
bool hasNetwork = minecraft->platform()->isNetworkEnabled(true);
#ifdef WIN32
hasNetwork = hasNetwork && !GetAsyncKeyState(VK_TAB);
#endif
renderBackground();
if (hasNetwork) gamesList->render(xm, ym, a);
else gamesList->renderDirtBackground();
Screen::render(xm, ym, a);
const int baseX = bHeader.x + bHeader.width / 2;
if (hasNetwork) {
std::string s = "Scanning for WiFi Games...";
drawCenteredString(minecraft->font, s, baseX, 8, 0xffffffff);
const int textWidth = minecraft->font->width(s);
const int spinnerX = baseX + textWidth / 2 + 6;
static const char* spinnerTexts[] = {"-", "\\", "|", "/"};
int n = ((int)(5.5f * getTimeS()) % 4);
drawCenteredString(minecraft->font, spinnerTexts[n], spinnerX, 8, 0xffffffff);
} else {
drawCenteredString(minecraft->font, "WiFi is disabled", baseX, 8, 0xffffffff);
}
}
bool JoinGameScreen::isInGameScreen() { return false; }
};
#include "TouchJoinGameScreen.hpp"
#include "client/gui/screens/StartMenuScreen.hpp"
#include "client/gui/screens/ProgressScreen.hpp"
#include "client/gui/Font.hpp"
#include "client/Minecraft.hpp"
#include "client/renderer/Textures.hpp"
namespace Touch {
//
// Games list
//
void AvailableGamesList::selectStart( int item) {
startSelected = item;
}
void AvailableGamesList::selectCancel() {
startSelected = -1;
}
void AvailableGamesList::selectItem( int item, bool doubleClick ) {
LOGI("selected an item! %d\n", item);
selectedItem = item;
}
void AvailableGamesList::renderItem( int i, int x, int y, int h, Tesselator& t )
{
if (startSelected == i && Multitouch::getFirstActivePointerIdEx() >= 0) {
fill((int)x0, y, (int)x1, y+h, 0x809E684F);
}
//static int colors[2] = {0xffffb0, 0xcccc90};
const PingedCompatibleServer& s = copiedServerList[i];
unsigned int color = s.isSpecial? 0x6090a0 : 0xffffb0;
unsigned int color2 = 0xffffa0;//colors[i&1];
int xx1 = (int)x0 + 24;
int xx2 = xx1;
if (s.isSpecial) {
xx1 += 50;
glEnable2(GL_TEXTURE_2D);
glColor4f2(1,1,1,1);
glEnable2(GL_BLEND);
minecraft->textures->loadAndBindTexture("gui/badge/minecon140.png");
blit(xx2, y + 6, 0, 0, 37, 8, 140, 240);
}
drawString(minecraft->font, s.name.C_String(), xx1, y + 4 + 2, color);
drawString(minecraft->font, s.address.ToString(false), xx2, y + 18, color2);
/*
drawString(minecraft->font, copiedServerList[i].name.C_String(), (int)x0 + 24, y + 4, color);
drawString(minecraft->font, copiedServerList[i].address.ToString(false), (int)x0 + 24, y + 18, color);
*/
}
//
// Join Game screen
//
JoinGameScreen::JoinGameScreen()
: bJoin( 2, "Join Game"),
bBack( 3, "Back"),
bJoinByIp(4, "Join By IP"),
bHeader(0, ""),
gamesList(NULL)
{
bJoin.active = false;
//gamesList->yInertia = 0.5f;
}
JoinGameScreen::~JoinGameScreen()
{
delete gamesList;
}
void JoinGameScreen::init()
{
//buttons.push_back(&bJoin);
buttons.push_back(&bBack);
buttons.push_back(&bJoinByIp);
buttons.push_back(&bHeader);
minecraft->raknetInstance->clearServerList();
gamesList = new AvailableGamesList(minecraft, width, height);
#ifdef ANDROID
//tabButtons.push_back(&bJoin);
tabButtons.push_back(&bBack);
tabButtons.push_back(&bJoinByIp);
#endif
}
void JoinGameScreen::setupPositions() {
//int yBase = height - 26;
//#ifdef ANDROID
bJoin.y = 0;
bBack.y = 0;
bJoinByIp.y = 0;
bHeader.y = 0;
//#endif
// Center buttons
//bJoin.x = width / 2 - 4 - bJoin.w;
bBack.x = 0;//width / 2 + 4;
bJoinByIp.x = width - bJoinByIp.width;;
bHeader.x = bJoinByIp.width;
bHeader.width = width - (bBack.width + bJoinByIp.width);
}
void JoinGameScreen::buttonClicked(Button* button)
{
if (button->id == bJoin.id)
{
if (isIndexValid(gamesList->selectedItem))
{
PingedCompatibleServer selectedServer = gamesList->copiedServerList[gamesList->selectedItem];
minecraft->joinMultiplayer(selectedServer);
{
bJoin.active = false;
bBack.active = false;
minecraft->setScreen(new ProgressScreen());
}
}
//minecraft->locateMultiplayer();
//minecraft->setScreen(new JoinGameScreen());
}
if(button->id == bJoinByIp.id) {
minecraft->cancelLocateMultiplayer();
minecraft->screenChooser.setScreen(SCREEN_JOINBYIP);
}
if (button->id == bBack.id)
{
minecraft->cancelLocateMultiplayer();
minecraft->screenChooser.setScreen(SCREEN_STARTMENU);
}
}
bool JoinGameScreen::handleBackEvent(bool isDown)
{
if (!isDown)
{
minecraft->cancelLocateMultiplayer();
minecraft->screenChooser.setScreen(SCREEN_STARTMENU);
}
return true;
}
bool JoinGameScreen::isIndexValid( int index )
{
return gamesList && index >= 0 && index < gamesList->getNumberOfItems();
}
void JoinGameScreen::tick()
{
if (isIndexValid(gamesList->selectedItem)) {
buttonClicked(&bJoin);
return;
}
//gamesList->tick();
const ServerList& orgServerList = minecraft->raknetInstance->getServerList();
ServerList serverList;
for (unsigned int i = 0; i < orgServerList.size(); ++i)
if (orgServerList[i].name.GetLength() > 0)
serverList.push_back(orgServerList[i]);
if (serverList.size() != gamesList->copiedServerList.size())
{
// copy the currently selected item
PingedCompatibleServer selectedServer;
bool hasSelection = false;
if (isIndexValid(gamesList->selectedItem))
{
selectedServer = gamesList->copiedServerList[gamesList->selectedItem];
hasSelection = true;
}
gamesList->copiedServerList = serverList;
gamesList->selectItem(-1, false);
// re-select previous item if it still exists
if (hasSelection)
{
for (unsigned int i = 0; i < gamesList->copiedServerList.size(); i++)
{
if (gamesList->copiedServerList[i].address == selectedServer.address)
{
gamesList->selectItem(i, false);
break;
}
}
}
} else {
for (int i = (int)gamesList->copiedServerList.size()-1; i >= 0 ; --i) {
for (int j = 0; j < (int) serverList.size(); ++j)
if (serverList[j].address == gamesList->copiedServerList[i].address)
gamesList->copiedServerList[i].name = serverList[j].name;
}
}
bJoin.active = isIndexValid(gamesList->selectedItem);
}
void JoinGameScreen::render( int xm, int ym, float a )
{
bool hasNetwork = minecraft->platform()->isNetworkEnabled(true);
#ifdef WIN32
hasNetwork = hasNetwork && !GetAsyncKeyState(VK_TAB);
#endif
renderBackground();
if (hasNetwork) gamesList->render(xm, ym, a);
else gamesList->renderDirtBackground();
Screen::render(xm, ym, a);
const int baseX = bHeader.x + bHeader.width / 2;
if (hasNetwork) {
std::string s = "Scanning for WiFi Games...";
drawCenteredString(minecraft->font, s, baseX, 8, 0xffffffff);
const int textWidth = minecraft->font->width(s);
const int spinnerX = baseX + textWidth / 2 + 6;
static const char* spinnerTexts[] = {"-", "\\", "|", "/"};
int n = ((int)(5.5f * getTimeS()) % 4);
drawCenteredString(minecraft->font, spinnerTexts[n], spinnerX, 8, 0xffffffff);
} else {
drawCenteredString(minecraft->font, "WiFi is disabled", baseX, 8, 0xffffffff);
}
}
bool JoinGameScreen::isInGameScreen() { return false; }
};