mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-11 20:11:18 +03:00
* Visual Studio Project Overhaul + Cleanup * SDL2 project for Windows * Re-added game client icon to SDL2 code * Renamed "AppPlatform_windows" to "AppPlatform_win32" (this is the name of the Windows API and is not representative of the architecture type) * Renamed "LoggerWindows" to "LoggerWin32" * Renamed "SoundSystemWindows to "SoundSystemDS" (DirectSound). This may be used for the 360, so it wouldn't really be Windows-specific then. * Moved "ClientSideNetworkHandler" from "network" to "client/network". We don't need it being compiled for the server if the client's the only thing that needs it. * I wonder if this still works on macOS... * Bugfixes & Fixed for macOS * Options::savePropertiesToFile Logging Bugfix * Silence Winsock Deprecation Warnings in RakNet * VS Project Improvements - Replaced 50 billion relative paths with $(MC_ROOT) - Added $(RAKNET_PATH) variable to override RakNet location - Re-added gitignore for .vcxproj.user files - Added debugging config to Directory.Builds.props - Slimmed down project configurations for SDL2 * VS Project Config Bugfixes - Fixed RakNet header path for additional includes * RakNet Target for XCode * XCode Project Config Fixes * Packet logging * Network VS Project Filter Fix * Fix RakNet Packet ID Length We previously didn't have consistency between old and new C++ regarding PacketType enum length. Now we do. This is required or else it completely breaks networking between the versions. * Additional RakNet Error Handling * Disable packet logging * * Fix CMakeLists.txt This reflects the relocation of ClientSideNetworkHandler.cpp. * * Also add renderer/GL/GL.cpp to the CMakeLists.txt * * Replace libpng with stb_image * * Fix buggy water behavior. * * Put the CMakeLists of the SDL project in debug mode * Visual Studio 2010 Support * * Change the SdlIoCallbacks from an array to a single member. This fixes compilation of the sdl2 target on VS. * * Fix missing _error label. * Revert "* Fix missing _error label." This reverts commit 99a057fc84049a16c864bd840fb439a008af5c74. * Revert "* Replace libpng with stb_image" * info_updateGame Tiles --------- Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com> Co-authored-by: iProgramInCpp <iprogramincpp@gmail.com>
144 lines
3.9 KiB
C++
144 lines
3.9 KiB
C++
/********************************************************************
|
|
Minecraft: Pocket Edition - Decompilation Project
|
|
Copyright (C) 2023 iProgramInCpp
|
|
|
|
The following code is licensed under the BSD 1 clause license.
|
|
SPDX-License-Identifier: BSD-1-Clause
|
|
********************************************************************/
|
|
|
|
#pragma once
|
|
|
|
#include "App.hpp"
|
|
#include "common/CThread.hpp"
|
|
#include "common/Mth.hpp"
|
|
#include "common/Timer.hpp"
|
|
#include "client/gui/Gui.hpp"
|
|
#include "client/gui/Screen.hpp"
|
|
#include "network/RakNetInstance.hpp"
|
|
#include "network/NetEventCallback.hpp"
|
|
#include "client/player/input/ITurnInput.hpp"
|
|
#include "client/renderer/GameRenderer.hpp"
|
|
#include "client/renderer/LevelRenderer.hpp"
|
|
#include "client/renderer/entity/EntityRenderDispatcher.hpp"
|
|
#include "client/sound/SoundEngine.hpp"
|
|
#include "world/level/Level.hpp"
|
|
#include "world/entity/LocalPlayer.hpp"
|
|
#include "world/gamemode/GameMode.hpp"
|
|
#include "world/particle/ParticleEngine.hpp"
|
|
|
|
class Screen; // in case we're included from Screen.hpp
|
|
|
|
class Minecraft : public App
|
|
{
|
|
public:
|
|
Minecraft();
|
|
virtual ~Minecraft();
|
|
|
|
int getLicenseId();
|
|
void setScreen(Screen * pScreen);
|
|
void releaseMouse();
|
|
void grabMouse();
|
|
void tick();
|
|
void tickInput();
|
|
void saveOptions();
|
|
void handleMouseClick(int type);
|
|
void handleMouseDown(int type, bool b);
|
|
bool isLevelGenerated();
|
|
void selectLevel(const std::string&, const std::string&, int);
|
|
void setLevel(Level*, const std::string&, LocalPlayer*);
|
|
void pauseGame();
|
|
void leaveGame(bool bCopyMap);
|
|
void hostMultiplayer();
|
|
void joinMultiplayer(const PingedCompatibleServer& serverInfo);
|
|
void cancelLocateMultiplayer();
|
|
void locateMultiplayer();
|
|
void tickMouse();
|
|
void handleCharInput(char chr);
|
|
void sendMessage(const std::string& message);
|
|
void resetPlayer(Player* player);
|
|
void respawnPlayer(Player* player);
|
|
std::string getVersionString();
|
|
|
|
virtual void update() override;
|
|
virtual void init() override;
|
|
virtual void onGraphicsReset();
|
|
virtual void sizeUpdate(int newWidth, int newHeight) override;
|
|
virtual int getFpsIntlCounter();
|
|
|
|
float getBestScaleForThisScreenSize(int width, int height);
|
|
void generateLevel(const std::string& unused, Level* pLevel);
|
|
void prepareLevel(const std::string& unused);
|
|
void _levelGenerated();
|
|
bool isOnline();
|
|
bool isOnlineClient();
|
|
static void* prepareLevel_tspawn(void* pMinecraft);
|
|
|
|
const char* getProgressMessage();
|
|
LevelStorageSource* getLevelSource();
|
|
ItemInstance* getSelectedItem();
|
|
Options* getOptions() const { return m_options; }
|
|
|
|
static void setGuiScaleMultiplier(float f);
|
|
|
|
public:
|
|
static float guiScaleMultiplier;
|
|
static int width, height;
|
|
static bool useAmbientOcclusion;
|
|
static const char* progressMessages[];
|
|
static const bool DEADMAU5_CAMERA_CHEATS;
|
|
static int customDebugId;
|
|
|
|
private:
|
|
Logger *m_Logger;
|
|
Options *m_options;
|
|
|
|
public:
|
|
bool field_18;
|
|
bool field_288;
|
|
LevelRenderer* m_pLevelRenderer;
|
|
GameRenderer* m_pGameRenderer;
|
|
ParticleEngine* m_pParticleEngine;
|
|
SoundEngine* m_pSoundEngine;
|
|
GameMode* m_pGameMode;
|
|
Textures* m_pTextures;
|
|
Font* m_pFont;
|
|
RakNetInstance* m_pRakNetInstance;
|
|
NetEventCallback* m_pNetEventCallback;
|
|
int field_2B0;
|
|
int field_2B4;
|
|
int field_2B8;
|
|
User* m_pUser;
|
|
Level* m_pLevel;
|
|
LocalPlayer* m_pLocalPlayer;
|
|
Mob* m_pMobPersp; // why is there a duplicate?
|
|
Gui m_gui;
|
|
int field_D0C;
|
|
CThread* m_pPrepThread;
|
|
Screen* m_pScreen;
|
|
int field_D18;
|
|
ITurnInput* m_pTurnInput;
|
|
float field_D20;
|
|
float field_D24;
|
|
bool m_bGrabbedMouse;
|
|
HitResult m_hitResult;
|
|
int m_progressPercent;
|
|
std::string m_externalStorageDir;
|
|
Timer m_timer;
|
|
bool m_bPreparingLevel;
|
|
LevelStorageSource* m_pLevelStorageSource; // TODO
|
|
int field_D9C;
|
|
int field_DA0;
|
|
int field_DA4;
|
|
int field_DA8;
|
|
int field_DAC;
|
|
bool m_bUsingScreen;
|
|
bool m_bHasQueuedScreen;
|
|
Screen* m_pQueuedScreen;
|
|
int m_licenseID;
|
|
ItemInstance m_CurrItemInstance;
|
|
|
|
// in 0.8. Offset 3368
|
|
double m_fDeltaTime, m_fLastUpdated;
|
|
};
|
|
|