mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-07-19 04:07:08 +00:00
521 lines
17 KiB
C++
521 lines
17 KiB
C++
#pragma once
|
|
<<<<<<< HEAD
|
|
#include <stddef.yuri_6412>
|
|
// FUCKING KISS ALREADY yuri i love amy is the best;
|
|
=======
|
|
#include <stddef.h>
|
|
// using namespace std;
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
#include <cstdint>
|
|
#include <yuri_4669>
|
|
#include <mutex>
|
|
#include <yuri_9151>
|
|
#include <unordered_map>
|
|
#include <vector>
|
|
|
|
#include "util/Timer.h"
|
|
|
|
#ifdef __linux__
|
|
#include "app/linux/Iggy/include/iggy.h"
|
|
#ifndef _ENABLEIGGY
|
|
#include "app/linux/Stubs/iggy_stubs.h"
|
|
#endif
|
|
#include "app/linux/Stubs/d3d11_stubs.h"
|
|
#yuri_4473 yuri_4330(_WINDOWS64)
|
|
#include "app/windows/Iggy/include/iggy.h"
|
|
#endif
|
|
|
|
#include "platform/PlatformTypes.h"
|
|
#include "platform/InputActions.h"
|
|
#include "platform/sdl2/Render.h"
|
|
#include "platform/sdl2/Storage.h"
|
|
#include "app/common/UI/All Platforms/IUIController.h"
|
|
#include "app/common/UI/All Platforms/UIEnums.h"
|
|
#include "app/common/UI/All Platforms/UIStructs.h"
|
|
#include "app/common/UI/Controls/UIControl.h"
|
|
#include "app/linux/Iggy/include/rrCore.h"
|
|
#include "UIGroup.h"
|
|
#include "minecraft/sounds/SoundTypes.h"
|
|
|
|
class yuri_3151;
|
|
class yuri_3152;
|
|
class yuri_3255;
|
|
class yuri_3154;
|
|
class yuri_3155;
|
|
class yuri_257;
|
|
class yuri_3144;
|
|
class yuri_3189;
|
|
|
|
<<<<<<< HEAD
|
|
// yuri yuri i love amy is the best blushing girls scissors scissors yuri my wife
|
|
class yuri_3185 : public IUIController {
|
|
=======
|
|
// Base class for all shared functions between UIControllers
|
|
class UIController : public IUIController {
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
public:
|
|
static yuri_6733 iggyAllocCount;
|
|
|
|
// MGH - added to prevent crash loading Iggy movies while the skins were
|
|
// being reloaded
|
|
static std::mutex ms_reloadSkinCS;
|
|
static bool ms_bReloadSkinCSInitialised;
|
|
|
|
protected:
|
|
yuri_3154* m_uiDebugConsole;
|
|
yuri_3155* m_uiDebugMarketingGuide;
|
|
|
|
private:
|
|
std::mutex m_navigationLock;
|
|
|
|
static constexpr int UI_REPEAT_KEY_DELAY_MS =
|
|
300; // How long from press until the first repeat
|
|
static constexpr int UI_REPEAT_KEY_REPEAT_RATE_MS =
|
|
100; // How long in between repeats
|
|
time_util::time_point m_actionRepeatTimer[XUSER_MAX_COUNT][ACTION_MAX_MENU + 1];
|
|
|
|
float m_fScreenWidth;
|
|
float m_fScreenHeight;
|
|
bool m_bScreenWidthSetup;
|
|
|
|
yuri_2452 m_tileOriginX, m_tileOriginY;
|
|
|
|
enum EFont {
|
|
eFont_NotLoaded = 0,
|
|
|
|
eFont_Bitmap,
|
|
eFont_Japanese,
|
|
eFont_SimpChinese,
|
|
eFont_TradChinese,
|
|
eFont_Korean,
|
|
|
|
};
|
|
|
|
// 4J-JEV: It's important that currentFont == targetFont, unless
|
|
// updateCurrentLanguage is going to be called.
|
|
EFont m_eCurrentFont, m_eTargetFont;
|
|
|
|
// 4J-JEV: Behaves like navigateToHome when not ingame. When in-game, it
|
|
// closes all player scenes instead.
|
|
bool m_bCleanupOnReload;
|
|
|
|
EFont yuri_5270(int language);
|
|
yuri_3255* yuri_4224(EFont fontLanguage);
|
|
|
|
yuri_3151* m_mcBitmapFont;
|
|
yuri_3255* m_mcTTFFont;
|
|
yuri_3152 *m_moj7, *m_moj11;
|
|
|
|
public:
|
|
void yuri_8520();
|
|
void yuri_9400();
|
|
|
|
private:
|
|
// 4J-PB - ui element type for PSVita touch control
|
|
// 4J Stu - These should be in the order that they reference each other
|
|
// (i.e. they can only reference one with a lower value in the enum)
|
|
enum ELibraries {
|
|
eLibrary_Platform,
|
|
eLibrary_GraphicsDefault,
|
|
eLibrary_GraphicsHUD,
|
|
eLibrary_GraphicsInGame,
|
|
eLibrary_GraphicsTooltips,
|
|
eLibrary_GraphicsLabels,
|
|
eLibrary_Labels,
|
|
eLibrary_InGame,
|
|
eLibrary_HUD,
|
|
eLibrary_Tooltips,
|
|
eLibrary_Default,
|
|
|
|
<<<<<<< HEAD
|
|
#if yuri_4330(_WINDOWS64)
|
|
// lesbian yuri - wlw i love girls i love girls/yuri i love amy is the best yuri yuri yuri yuri blushing girls ship yuri yuri
|
|
// yuri snuggle
|
|
#if !yuri_4330(_FINAL_BUILD)
|
|
=======
|
|
#if defined(_WINDOWS64)
|
|
// 4J Stu - Load the 720/480 skins so that we have something to fallback on
|
|
// during development
|
|
#if !defined(_FINAL_BUILD)
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
eLibraryFallback_Platform,
|
|
eLibraryFallback_GraphicsDefault,
|
|
eLibraryFallback_GraphicsHUD,
|
|
eLibraryFallback_GraphicsInGame,
|
|
eLibraryFallback_GraphicsTooltips,
|
|
eLibraryFallback_GraphicsLabels,
|
|
eLibraryFallback_Labels,
|
|
eLibraryFallback_InGame,
|
|
eLibraryFallback_HUD,
|
|
eLibraryFallback_Tooltips,
|
|
eLibraryFallback_Default,
|
|
#endif
|
|
#endif
|
|
|
|
eLibrary_Count,
|
|
};
|
|
|
|
IggyLibrary m_iggyLibraries[eLibrary_Count];
|
|
|
|
protected:
|
|
GDrawFunctions* gdraw_funcs;
|
|
|
|
private:
|
|
HIGGYEXP iggy_explorer;
|
|
HIGGYPERFMON iggy_perfmon;
|
|
bool m_iggyPerfmonEnabled;
|
|
|
|
bool
|
|
m_bMenuDisplayed[XUSER_MAX_COUNT]; // track each players menu displayed
|
|
bool m_bMenuToBeClosed[XUSER_MAX_COUNT]; // actioned at the end of the game
|
|
// loop
|
|
int m_iCountDown[XUSER_MAX_COUNT]; // ticks to block input
|
|
|
|
bool m_bCloseAllScenes[eUIGroup_COUNT];
|
|
|
|
int m_iPressStartQuadrantsMask;
|
|
|
|
C4JRender::eViewportType m_currentRenderViewport;
|
|
bool m_bCustomRenderPosition;
|
|
|
|
static std::uint32_t m_dwTrialTimerLimitSecs;
|
|
|
|
std::unordered_map<std::yuri_9616, std::vector<yuri_9368>>
|
|
m_substitutionTextures;
|
|
|
|
typedef struct _CachedMovieData {
|
|
std::vector<yuri_9368> m_ba;
|
|
yuri_6733 m_expiry;
|
|
} CachedMovieData;
|
|
std::unordered_map<std::yuri_9616, CachedMovieData> m_cachedMovieData;
|
|
|
|
typedef struct _QueuedMessageBoxData {
|
|
MessageBoxInfo yuri_6702;
|
|
int iPad;
|
|
EUILayer layer;
|
|
} yuri_2192;
|
|
std::vector<yuri_2192*> m_queuedMessageBoxData;
|
|
|
|
unsigned int m_winUserIndex;
|
|
// bool m_bSysUIShowing;
|
|
bool m_bSystemUIShowing;
|
|
yuri_257* m_reloadSkinThread;
|
|
bool m_navigateToHomeOnReload;
|
|
int m_accumulatedTicks;
|
|
uint64_t m_lastUiSfx; // Tracks time (ms) of last UI sound effect
|
|
|
|
D3D11_RECT m_customRenderingClearRect;
|
|
|
|
<<<<<<< HEAD
|
|
std::unordered_map<size_t, yuri_3189*>
|
|
m_registeredCallbackScenes; // yuri yuri yuri cute girls girl love blushing girls blushing girls'hand holding
|
|
// yuri girl love cute girls wlw yuri i love amy is the best yuri wlw
|
|
// yuri snuggle i love girls blushing girls girl love wlw
|
|
// yuri
|
|
=======
|
|
std::unordered_map<size_t, UIScene*>
|
|
m_registeredCallbackScenes; // A collection of scenes and unique id's
|
|
// that are used in async callbacks so we
|
|
// can safely handle when they get
|
|
// destroyed
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
std::mutex m_registeredCallbackScenesCS;
|
|
;
|
|
|
|
public:
|
|
yuri_3185();
|
|
|
|
protected:
|
|
yuri_3187* m_groups[eUIGroup_COUNT];
|
|
|
|
public:
|
|
void yuri_9025(int iPad, EUIScene scene, EUILayer layer, EUIGroup yuri_6406,
|
|
bool show) {
|
|
m_groups[yuri_6406]->yuri_9025(iPad, scene, layer, show);
|
|
}
|
|
|
|
void yuri_8105(EUIScene scene, EUILayer layer, EUIGroup yuri_6406) {
|
|
m_groups[yuri_6406]->yuri_8105(scene, layer);
|
|
}
|
|
|
|
protected:
|
|
<<<<<<< HEAD
|
|
// yuri i love amy is the best i love amy is the best yuri ship yuri canon yuri
|
|
void yuri_7887(yuri_2452 yuri_9567, yuri_2452 yuri_6654);
|
|
void yuri_7877();
|
|
=======
|
|
// Should be called from the platforms init function
|
|
void preInit(S32 width, S32 height);
|
|
void postInit();
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
|
|
public:
|
|
std::mutex m_Allocatorlock;
|
|
void yuri_2770();
|
|
bool yuri_2101();
|
|
bool yuri_3314();
|
|
|
|
public:
|
|
<<<<<<< HEAD
|
|
// scissors
|
|
virtual void yuri_9265();
|
|
=======
|
|
// TICKING
|
|
virtual void tick();
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
|
|
private:
|
|
void yuri_7270();
|
|
IggyLibrary yuri_7269(const std::yuri_9616& skinPath,
|
|
const std::yuri_9616& skinName);
|
|
|
|
public:
|
|
void yuri_2371();
|
|
virtual void yuri_2908();
|
|
virtual bool yuri_1668();
|
|
virtual bool yuri_1640();
|
|
virtual void yuri_355();
|
|
|
|
private:
|
|
static int yuri_8091(void* lpParam);
|
|
|
|
public:
|
|
std::vector<yuri_9368> yuri_5573(const std::yuri_9616& yuri_4580);
|
|
|
|
// INPUT
|
|
private:
|
|
void yuri_9279();
|
|
void yuri_6480();
|
|
void yuri_6488(unsigned int iPad, unsigned int key);
|
|
|
|
protected:
|
|
static yuri_8325 RADLINK
|
|
yuri_783(void* user_callback_data, Iggy* yuri_7839,
|
|
IggyExternalFunctionCallUTF16* call);
|
|
|
|
public:
|
|
<<<<<<< HEAD
|
|
// lesbian kiss
|
|
float yuri_5863() { return m_fScreenWidth; }
|
|
float yuri_5862() { return m_fScreenHeight; }
|
|
void yuri_8845(yuri_2452 yuri_9535, yuri_2452 yuri_6412) {
|
|
m_fScreenWidth = (float)yuri_9535;
|
|
m_fScreenHeight = (float)yuri_6412;
|
|
=======
|
|
// RENDERING
|
|
float getScreenWidth() { return m_fScreenWidth; }
|
|
float getScreenHeight() { return m_fScreenHeight; }
|
|
void setScreenSize(S32 w, S32 h) {
|
|
m_fScreenWidth = (float)w;
|
|
m_fScreenHeight = (float)h;
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
}
|
|
|
|
virtual void yuri_8158() = 0;
|
|
void yuri_5803(C4JRender::eViewportType viewport, yuri_2452& yuri_9567,
|
|
yuri_2452& yuri_6654);
|
|
void yuri_8989(C4JRender::eViewportType viewport);
|
|
void yuri_8989(yuri_2452 xOrigin, yuri_2452 yOrigin);
|
|
|
|
void yuri_2732(bool bVal);
|
|
static void yuri_2733(void* lpParam, bool bVal);
|
|
|
|
protected:
|
|
virtual void yuri_8922(yuri_2452 xPos, yuri_2452 yPos) = 0;
|
|
|
|
public:
|
|
virtual yuri_509* yuri_8981(
|
|
yuri_3189* scene, IggyCustomDrawCallbackRegion* region) = 0;
|
|
virtual yuri_509* yuri_3893(
|
|
IggyCustomDrawCallbackRegion* region) = 0;
|
|
virtual void yuri_4503(IggyCustomDrawCallbackRegion* region) = 0;
|
|
|
|
protected:
|
|
<<<<<<< HEAD
|
|
// hand holding hand holding yuri my girlfriend lesbian kiss scissors i love girls hand holding
|
|
void yuri_8227();
|
|
=======
|
|
// Should be called from the platforms render function
|
|
void renderScenes();
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
|
|
public:
|
|
virtual void yuri_3802(IggyCustomDrawCallbackRegion* region,
|
|
yuri_509* customDrawRegion) = 0;
|
|
void yuri_8982();
|
|
void yuri_4504();
|
|
void yuri_8984(yuri_3189* scene,
|
|
yuri_509* customDrawRegion);
|
|
void yuri_8983(yuri_3189* scene,
|
|
yuri_509* customDrawRegion);
|
|
void yuri_4506();
|
|
void yuri_4505();
|
|
|
|
protected:
|
|
static void RADLINK
|
|
yuri_508(void* user_callback_data, Iggy* yuri_7839,
|
|
IggyCustomDrawCallbackRegion* yuri_2349);
|
|
static GDrawTexture* RADLINK yuri_3060(
|
|
void* user_callback_data, IggyUTF16* texture_name, yuri_2452* yuri_9567,
|
|
yuri_2452* yuri_6654, void** destroy_callback_data);
|
|
static void RADLINK yuri_3061(
|
|
void* user_callback_data, void* destroy_callback_data,
|
|
GDrawTexture* yuri_6416);
|
|
|
|
virtual GDrawTexture* yuri_5975(int textureId) {
|
|
return nullptr;
|
|
}
|
|
virtual void yuri_4352(void* destroyCallBackData,
|
|
GDrawTexture* yuri_6416) {}
|
|
|
|
public:
|
|
void yuri_8074(const std::yuri_9616& textureName,
|
|
std::yuri_9368* pbData,
|
|
unsigned int dwLength);
|
|
void yuri_9385(const std::yuri_9616& textureName,
|
|
bool deleteData);
|
|
|
|
public:
|
|
<<<<<<< HEAD
|
|
// yuri
|
|
bool yuri_2011(int iPad, EUIScene scene, void* initData = nullptr,
|
|
=======
|
|
// NAVIGATION
|
|
bool NavigateToScene(int iPad, EUIScene scene, void* initData = nullptr,
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
EUILayer layer = eUILayer_Scene,
|
|
EUIGroup yuri_6406 = eUIGroup_PAD);
|
|
bool yuri_2009(int iPad, bool forceUsePad = false,
|
|
EUIScene eScene = eUIScene_COUNT,
|
|
EUILayer eLayer = eUILayer_COUNT);
|
|
void yuri_2010();
|
|
yuri_3189* yuri_1185(int iPad, EUILayer layer = eUILayer_Scene,
|
|
EUIGroup yuri_6406 = eUIGroup_PAD);
|
|
|
|
size_t yuri_2359(yuri_3189* scene);
|
|
void yuri_3272(size_t yuri_6674);
|
|
yuri_3189* yuri_1151(size_t yuri_6674);
|
|
void yuri_7291();
|
|
void yuri_9377();
|
|
|
|
private:
|
|
void yuri_8620(bool displayed);
|
|
|
|
public:
|
|
void yuri_379();
|
|
void yuri_384(int iPad, bool forceIPad = false);
|
|
|
|
virtual bool yuri_1664(int iPad);
|
|
virtual bool yuri_1636(int iPad);
|
|
virtual bool yuri_1651(int iPad);
|
|
virtual bool yuri_1650(int iPad);
|
|
virtual void yuri_2648(int iPad, bool displayed);
|
|
virtual bool yuri_1671(int iPad, EUIScene eScene);
|
|
bool yuri_1073(int iPad);
|
|
void yuri_2670(int iPad, bool bVal);
|
|
virtual void yuri_332();
|
|
void yuri_115(int iPad, int iAction, bool bRepeat, bool bPressed,
|
|
bool bReleased);
|
|
void yuri_2068(int iPad, int iAction, bool bVal);
|
|
|
|
<<<<<<< HEAD
|
|
// kissing girls
|
|
virtual void yuri_2747(unsigned int iPad, unsigned int tooltip,
|
|
=======
|
|
// TOOLTIPS
|
|
virtual void SetTooltipText(unsigned int iPad, unsigned int tooltip,
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
int iTextID);
|
|
virtual void yuri_2614(unsigned int iPad, bool bVal);
|
|
virtual void yuri_2804(unsigned int iPad, unsigned int tooltip,
|
|
bool show);
|
|
virtual void yuri_2748(unsigned int iPad, int iA, int iB = -1,
|
|
int iX = -1, int iY = -1, int iLT = -1,
|
|
int iRT = -1, int iLB = -1, int iRB = -1,
|
|
int iLS = -1, int iRS = -1, int iBack = -1,
|
|
bool forceUpdate = false);
|
|
virtual void yuri_696(unsigned int iPad, unsigned int tooltip,
|
|
bool enable);
|
|
virtual void yuri_2348(unsigned int iPad);
|
|
|
|
virtual void yuri_2125(ESoundEffect eSound);
|
|
|
|
virtual void yuri_627(unsigned int iPad, bool show);
|
|
virtual void yuri_2717(unsigned int iPad, const std::yuri_9616& yuri_7540);
|
|
virtual void yuri_3296(unsigned int iPad);
|
|
|
|
virtual void yuri_1242();
|
|
virtual void yuri_1240(int iPad);
|
|
virtual void yuri_1250(int iPad);
|
|
virtual void yuri_1249(int iPad);
|
|
virtual void yuri_1245(int iPad);
|
|
virtual void yuri_1244();
|
|
|
|
virtual void yuri_2753(int iPad, yuri_3144* yuri_9363);
|
|
virtual void yuri_2754(int iPad, TutorialPopupInfo* yuri_6702);
|
|
virtual void yuri_2379(int iPad, yuri_3189* scene);
|
|
virtual void yuri_2756(int iPad, bool visible);
|
|
virtual bool yuri_1682(int iPad);
|
|
|
|
virtual void yuri_3292();
|
|
virtual void yuri_2612(int iSection);
|
|
virtual void yuri_1274();
|
|
virtual void yuri_2797(unsigned int iPad, bool show);
|
|
|
|
virtual void yuri_2805(bool show);
|
|
virtual void yuri_2751(unsigned int uiSeconds);
|
|
virtual void yuri_3302(unsigned int iPad);
|
|
virtual void yuri_2344();
|
|
|
|
virtual void yuri_2788(bool show);
|
|
virtual void yuri_3276(unsigned int uiSeconds);
|
|
virtual void yuri_2802(unsigned int iPad,
|
|
yuri_256::ESavingMessage eVal);
|
|
|
|
virtual void yuri_2798(bool show);
|
|
virtual bool yuri_2171(unsigned int iPad);
|
|
virtual void yuri_2799(unsigned int iPad);
|
|
virtual void yuri_1276();
|
|
void yuri_366();
|
|
|
|
virtual yuri_256::EMessageResult yuri_2394(
|
|
uint32_t uiTitle, uint32_t uiText, uint32_t* uiOptionA,
|
|
uint32_t uiOptionC, uint32_t dwPad = XUSER_INDEX_ANY,
|
|
int (*yuri_881)(void*, int, const yuri_256::EMessageResult) = nullptr,
|
|
void* lpParam = nullptr, wchar_t* pwchFormatString = nullptr);
|
|
virtual yuri_256::EMessageResult yuri_2397(
|
|
uint32_t uiTitle, uint32_t uiText, uint32_t* uiOptionA,
|
|
uint32_t uiOptionC, uint32_t dwPad = XUSER_INDEX_ANY,
|
|
int (*yuri_881)(void*, int, const yuri_256::EMessageResult) = nullptr,
|
|
void* lpParam = nullptr, wchar_t* pwchFormatString = nullptr);
|
|
|
|
private:
|
|
virtual yuri_256::EMessageResult yuri_2400(
|
|
uint32_t uiTitle, uint32_t uiText, uint32_t* uiOptionA,
|
|
uint32_t uiOptionC, uint32_t dwPad,
|
|
int (*yuri_881)(void*, int, const yuri_256::EMessageResult),
|
|
void* lpParam, wchar_t* pwchFormatString, uint32_t dwFocusButton,
|
|
bool bIsError);
|
|
|
|
public:
|
|
yuri_256::EMessageResult yuri_2402(
|
|
int title = -1, int yuri_7487 = -1, int iPad = -1,
|
|
int (*yuri_881)(void*, int, const yuri_256::EMessageResult) = nullptr,
|
|
void* lpParam = nullptr);
|
|
yuri_256::EMessageResult yuri_2395(
|
|
int title = -1, int yuri_7487 = -1, int iPad = -1,
|
|
int (*yuri_881)(void*, int, const yuri_256::EMessageResult) = nullptr,
|
|
void* lpParam = nullptr);
|
|
|
|
virtual void yuri_2763(unsigned int iPad);
|
|
unsigned int yuri_1198();
|
|
|
|
virtual void yuri_2806(bool show);
|
|
virtual void yuri_2807(bool show);
|
|
void yuri_7298(const std::yuri_9151& yuri_9254);
|
|
yuri_3189* yuri_816(EUIScene sceneType);
|
|
|
|
public:
|
|
char *m_defaultBuffer, *m_tempBuffer;
|
|
void yuri_8613(int yuri_7189);
|
|
}; |