Files
mcpe/source/Minecraft.hpp
Brent 5c1ea03747 Logging cleanup (#69)
* Mac OS X 10.6 & More C++03 Support

* Fix SDL2 options.txt loading for C++03

* Output/Logging Overhaul
* Added StandardOut class
* Renamed LOGX macros to LOG_X
* Removed LogMsg macros in favor of LOG_X
* Added console window for debug Windows builds

* Updated Xcode Project
+ StandardOut.hpp
+ StandardOut.cpp

* StandardOut_windows
* Replaced the Windows #ifdefs in StandardOut with StandardOut_windows

---------

Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
2023-08-28 10:55:41 +03:00

144 lines
3.8 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 reloadOptions();
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();
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:
StandardOut *m_standardOut;
public:
bool field_18;
Options m_options;
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;
};