Fix diffs

This commit is contained in:
Fayaz Shaikh 2026-03-03 23:20:12 -05:00
parent 639f553a98
commit c4ed99810a
2 changed files with 2513 additions and 2876 deletions

File diff suppressed because it is too large Load diff

View file

@ -14,390 +14,384 @@ class UIControl;
// Base class for all shared functions between UIControllers // Base class for all shared functions between UIControllers
class UIController : public IUIController class UIController : public IUIController
{ {
public: public:
static __int64 iggyAllocCount; static __int64 iggyAllocCount;
// MGH - added to prevent crash loading Iggy movies while the skins were being reloaded // MGH - added to prevent crash loading Iggy movies while the skins were being reloaded
static CRITICAL_SECTION ms_reloadSkinCS; static CRITICAL_SECTION ms_reloadSkinCS;
static bool ms_bReloadSkinCSInitialised; static bool ms_bReloadSkinCSInitialised;
protected: protected:
UIComponent_DebugUIConsole *m_uiDebugConsole; UIComponent_DebugUIConsole *m_uiDebugConsole;
UIComponent_DebugUIMarketingGuide *m_uiDebugMarketingGuide; UIComponent_DebugUIMarketingGuide *m_uiDebugMarketingGuide;
private: private:
CRITICAL_SECTION m_navigationLock; CRITICAL_SECTION m_navigationLock;
static const int UI_REPEAT_KEY_DELAY_MS = 300; // How long from press until the first repeat static const int UI_REPEAT_KEY_DELAY_MS = 300; // How long from press until the first repeat
static const int UI_REPEAT_KEY_REPEAT_RATE_MS = 100; // How long in between repeats static const int UI_REPEAT_KEY_REPEAT_RATE_MS = 100; // How long in between repeats
DWORD m_actionRepeatTimer[XUSER_MAX_COUNT][ACTION_MAX_MENU + 1]; DWORD m_actionRepeatTimer[XUSER_MAX_COUNT][ACTION_MAX_MENU+1];
float m_fScreenWidth; float m_fScreenWidth;
float m_fScreenHeight; float m_fScreenHeight;
bool m_bScreenWidthSetup; bool m_bScreenWidthSetup;
S32 m_tileOriginX, m_tileOriginY; S32 m_tileOriginX, m_tileOriginY;
enum EFont enum EFont
{ {
eFont_NotLoaded = 0, eFont_NotLoaded = 0,
eFont_Bitmap, eFont_Bitmap,
eFont_Japanese, eFont_Japanese,
eFont_SimpChinese, eFont_SimpChinese,
eFont_TradChinese, eFont_TradChinese,
eFont_Korean, eFont_Korean,
};
// 4J-JEV: It's important that currentFont == targetFont, unless updateCurrentLanguage is going to be called. };
EFont m_eCurrentFont, m_eTargetFont;
// 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. // 4J-JEV: Behaves like navigateToHome when not ingame. When in-game, it closes all player scenes instead.
bool m_bCleanupOnReload; bool m_bCleanupOnReload;
EFont getFontForLanguage(int language); EFont getFontForLanguage(int language);
UITTFFont *createFont(EFont fontLanguage); UITTFFont *createFont(EFont fontLanguage);
UIAbstractBitmapFont *m_mcBitmapFont; UIAbstractBitmapFont *m_mcBitmapFont;
UITTFFont *m_mcTTFFont; UITTFFont *m_mcTTFFont;
UIBitmapFont *m_moj7, *m_moj11; UIBitmapFont *m_moj7, *m_moj11;
public: public:
void setCleanupOnReload(); void setCleanupOnReload();
void updateCurrentFont(); void updateCurrentFont();
private:
// 4J-PB - ui element type for PSVita touch control private:
// 4J-PB - ui element type for PSVita touch control
#ifdef __PSVITA__ #ifdef __PSVITA__
typedef struct typedef struct
{ {
UIControl *pControl; UIControl *pControl;
S32 x1, y1, x2, y2; S32 x1,y1,x2,y2;
} UIELEMENT; }
// E3 - Fine for now, but we need to make this better! UIELEMENT;
vector<UIELEMENT *> m_TouchBoxes[eUIGroup_COUNT][eUILayer_COUNT][eUIScene_COUNT]; // E3 - Fine for now, but we need to make this better!
bool m_bTouchscreenPressed; vector<UIELEMENT *> m_TouchBoxes[eUIGroup_COUNT][eUILayer_COUNT][eUIScene_COUNT];
bool m_bTouchscreenPressed;
#endif #endif
// 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) // 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 enum ELibraries
{ {
eLibrary_Platform, eLibrary_Platform,
eLibrary_GraphicsDefault, eLibrary_GraphicsDefault,
eLibrary_GraphicsHUD, eLibrary_GraphicsHUD,
eLibrary_GraphicsInGame, eLibrary_GraphicsInGame,
eLibrary_GraphicsTooltips, eLibrary_GraphicsTooltips,
eLibrary_GraphicsLabels, eLibrary_GraphicsLabels,
eLibrary_Labels, eLibrary_Labels,
eLibrary_InGame, eLibrary_InGame,
eLibrary_HUD, eLibrary_HUD,
eLibrary_Tooltips, eLibrary_Tooltips,
eLibrary_Default, eLibrary_Default,
#if (defined(_WINDOWS64)) #if ( defined(_WINDOWS64) )
// 4J Stu - Load the 720/480 skins so that we have something to fallback on during development // 4J Stu - Load the 720/480 skins so that we have something to fallback on during development
#ifndef _FINAL_BUILD #ifndef _FINAL_BUILD
eLibraryFallback_Platform, eLibraryFallback_Platform,
eLibraryFallback_GraphicsDefault, eLibraryFallback_GraphicsDefault,
eLibraryFallback_GraphicsHUD, eLibraryFallback_GraphicsHUD,
eLibraryFallback_GraphicsInGame, eLibraryFallback_GraphicsInGame,
eLibraryFallback_GraphicsTooltips, eLibraryFallback_GraphicsTooltips,
eLibraryFallback_GraphicsLabels, eLibraryFallback_GraphicsLabels,
eLibraryFallback_Labels, eLibraryFallback_Labels,
eLibraryFallback_InGame, eLibraryFallback_InGame,
eLibraryFallback_HUD, eLibraryFallback_HUD,
eLibraryFallback_Tooltips, eLibraryFallback_Tooltips,
eLibraryFallback_Default, eLibraryFallback_Default,
#endif #endif
#endif #endif
eLibrary_Count, eLibrary_Count,
}; };
IggyLibrary m_iggyLibraries[eLibrary_Count]; IggyLibrary m_iggyLibraries[eLibrary_Count];
protected: protected:
GDrawFunctions *gdraw_funcs; GDrawFunctions *gdraw_funcs;
private: private:
HIGGYEXP iggy_explorer; HIGGYEXP iggy_explorer;
HIGGYPERFMON iggy_perfmon; HIGGYPERFMON iggy_perfmon;
bool m_iggyPerfmonEnabled; bool m_iggyPerfmonEnabled;
bool m_bMenuDisplayed[XUSER_MAX_COUNT]; // track each players menu displayed 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 bool m_bMenuToBeClosed[XUSER_MAX_COUNT]; // actioned at the end of the game loop
int m_iCountDown[XUSER_MAX_COUNT]; // ticks to block input int m_iCountDown[XUSER_MAX_COUNT]; // ticks to block input
bool m_bCloseAllScenes[eUIGroup_COUNT]; bool m_bCloseAllScenes[eUIGroup_COUNT];
int m_iPressStartQuadrantsMask; int m_iPressStartQuadrantsMask;
C4JRender::eViewportType m_currentRenderViewport; C4JRender::eViewportType m_currentRenderViewport;
bool m_bCustomRenderPosition; bool m_bCustomRenderPosition;
static DWORD m_dwTrialTimerLimitSecs;
static DWORD m_dwTrialTimerLimitSecs; unordered_map<wstring, byteArray> m_substitutionTextures;
unordered_map<wstring, byteArray> m_substitutionTextures; typedef struct _CachedMovieData
{
byteArray m_ba;
__int64 m_expiry;
} CachedMovieData;
unordered_map<wstring, CachedMovieData> m_cachedMovieData;
typedef struct _CachedMovieData typedef struct _QueuedMessageBoxData
{ {
byteArray m_ba; MessageBoxInfo info;
__int64 m_expiry; int iPad;
} CachedMovieData; EUILayer layer;
unordered_map<wstring, CachedMovieData> m_cachedMovieData; } QueuedMessageBoxData;
vector<QueuedMessageBoxData *> m_queuedMessageBoxData;
typedef struct _QueuedMessageBoxData unsigned int m_winUserIndex;
{ //bool m_bSysUIShowing;
MessageBoxInfo info; bool m_bSystemUIShowing;
int iPad; C4JThread *m_reloadSkinThread;
EUILayer layer; bool m_navigateToHomeOnReload;
} QueuedMessageBoxData; int m_accumulatedTicks;
vector<QueuedMessageBoxData *> m_queuedMessageBoxData; __uint64 m_lastUiSfx; // Tracks time (ms) of last UI sound effect
unsigned int m_winUserIndex; D3D11_RECT m_customRenderingClearRect;
// bool m_bSysUIShowing;
bool m_bSystemUIShowing;
C4JThread *m_reloadSkinThread;
bool m_navigateToHomeOnReload;
int m_accumulatedTicks;
__uint64 m_lastUiSfx; // Tracks time (ms) of last UI sound effect
D3D11_RECT m_customRenderingClearRect; 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
CRITICAL_SECTION m_registeredCallbackScenesCS;;
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 public:
CRITICAL_SECTION m_registeredCallbackScenesCS; UIController();
;
public:
UIController();
#ifdef __PSVITA__ #ifdef __PSVITA__
void TouchBoxAdd(UIControl *pControl, UIScene *pUIScene); void TouchBoxAdd(UIControl *pControl,UIScene *pUIScene);
bool TouchBoxHit(UIScene *pUIScene, S32 x, S32 y); bool TouchBoxHit(UIScene *pUIScene,S32 x, S32 y);
void TouchBoxesClear(UIScene *pUIScene); void TouchBoxesClear(UIScene *pUIScene);
void TouchBoxRebuild(UIScene *pUIScene); void TouchBoxRebuild(UIScene *pUIScene);
void HandleTouchInput(unsigned int iPad, unsigned int key, bool bPressed, bool bRepeat, bool bReleased); void HandleTouchInput(unsigned int iPad, unsigned int key, bool bPressed, bool bRepeat, bool bReleased);
void SendTouchInput(unsigned int iPad, unsigned int key, bool bPressed, bool bRepeat, bool bReleased); void SendTouchInput(unsigned int iPad, unsigned int key, bool bPressed, bool bRepeat, bool bReleased);
private: private:
void TouchBoxAdd(UIControl *pControl, EUIGroup eUIGroup, EUILayer eUILayer, EUIScene eUIscene, UIControl *pMainPanelControl); void TouchBoxAdd(UIControl *pControl,EUIGroup eUIGroup,EUILayer eUILayer,EUIScene eUIscene, UIControl *pMainPanelControl);
UIELEMENT *m_ActiveUIElement; UIELEMENT *m_ActiveUIElement;
UIELEMENT *m_HighlightedUIElement; UIELEMENT *m_HighlightedUIElement;
#endif #endif
protected: protected:
UIGroup *m_groups[eUIGroup_COUNT]; UIGroup *m_groups[eUIGroup_COUNT];
public: public:
void showComponent(int iPad, EUIScene scene, EUILayer layer, EUIGroup group, bool show) void showComponent(int iPad, EUIScene scene, EUILayer layer, EUIGroup group, bool show)
{ {
m_groups[group]->showComponent(iPad, scene, layer, show); m_groups[group]->showComponent(iPad, scene, layer, show);
} }
void removeComponent(EUIScene scene, EUILayer layer, EUIGroup group) void removeComponent(EUIScene scene, EUILayer layer, EUIGroup group)
{ {
m_groups[group]->removeComponent(scene, layer); m_groups[group]->removeComponent(scene, layer);
} }
protected: protected:
// Should be called from the platforms init function // Should be called from the platforms init function
void preInit(S32 width, S32 height); void preInit(S32 width, S32 height);
void postInit(); void postInit();
public:
CRITICAL_SECTION m_Allocatorlock;
void SetupFont();
bool PendingFontChange();
bool UsingBitmapFont();
public: public:
// TICKING CRITICAL_SECTION m_Allocatorlock;
virtual void tick(); void SetupFont();
bool PendingFontChange();
bool UsingBitmapFont();
private: public:
void loadSkins(); // TICKING
IggyLibrary loadSkin(const wstring &skinPath, const wstring &skinName); virtual void tick();
public: private:
void ReloadSkin(); void loadSkins();
virtual void StartReloadSkinThread(); IggyLibrary loadSkin(const wstring &skinPath, const wstring &skinName);
virtual bool IsReloadingSkin();
virtual bool IsExpectingOrReloadingSkin();
virtual void CleanUpSkinReload();
private: public:
static int reloadSkinThreadProc(void *lpParam); void ReloadSkin();
virtual void StartReloadSkinThread();
virtual bool IsReloadingSkin();
virtual bool IsExpectingOrReloadingSkin();
virtual void CleanUpSkinReload();
public: private:
byteArray getMovieData(const wstring &filename); static int reloadSkinThreadProc(void* lpParam);
// INPUT public:
private: byteArray getMovieData(const wstring &filename);
void tickInput();
void handleInput();
void handleKeyPress(unsigned int iPad, unsigned int key);
protected: // INPUT
static rrbool RADLINK ExternalFunctionCallback(void *user_callback_data, Iggy *player, IggyExternalFunctionCallUTF16 *call); private:
void tickInput();
void handleInput();
void handleKeyPress(unsigned int iPad, unsigned int key);
protected:
static rrbool RADLINK ExternalFunctionCallback( void * user_callback_data , Iggy * player , IggyExternalFunctionCallUTF16 * call );
public: public:
// RENDERING // RENDERING
float getScreenWidth() float getScreenWidth() { return m_fScreenWidth; }
{ float getScreenHeight() { return m_fScreenHeight; }
return m_fScreenWidth;
}
float getScreenHeight()
{
return m_fScreenHeight;
}
virtual void render() = 0; virtual void render() = 0;
void getRenderDimensions(C4JRender::eViewportType viewport, S32 &width, S32 &height); void getRenderDimensions(C4JRender::eViewportType viewport, S32 &width, S32 &height);
void setupRenderPosition(C4JRender::eViewportType viewport); void setupRenderPosition(C4JRender::eViewportType viewport);
void setupRenderPosition(S32 xOrigin, S32 yOrigin); void setupRenderPosition(S32 xOrigin, S32 yOrigin);
void SetSysUIShowing(bool bVal); void SetSysUIShowing(bool bVal);
static void SetSystemUIShowing(LPVOID lpParam, bool bVal); static void SetSystemUIShowing(LPVOID lpParam,bool bVal);
protected: protected:
virtual void setTileOrigin(S32 xPos, S32 yPos) = 0; virtual void setTileOrigin(S32 xPos, S32 yPos) = 0;
public: public:
virtual CustomDrawData *setupCustomDraw(UIScene *scene, IggyCustomDrawCallbackRegion *region) = 0;
virtual CustomDrawData *calculateCustomDraw(IggyCustomDrawCallbackRegion *region) = 0;
virtual void endCustomDraw(IggyCustomDrawCallbackRegion *region) = 0;
protected: virtual CustomDrawData *setupCustomDraw(UIScene *scene, IggyCustomDrawCallbackRegion *region) = 0;
// Should be called from the platforms render function virtual CustomDrawData *calculateCustomDraw(IggyCustomDrawCallbackRegion *region) = 0;
void renderScenes(); virtual void endCustomDraw(IggyCustomDrawCallbackRegion *region) = 0;
protected:
// Should be called from the platforms render function
void renderScenes();
public: public:
virtual void beginIggyCustomDraw4J(IggyCustomDrawCallbackRegion *region, CustomDrawData *customDrawRegion) = 0; virtual void beginIggyCustomDraw4J(IggyCustomDrawCallbackRegion *region, CustomDrawData *customDrawRegion) = 0;
void setupCustomDrawGameState(); void setupCustomDrawGameState();
void endCustomDrawGameState(); void endCustomDrawGameState();
void setupCustomDrawMatrices(UIScene *scene, CustomDrawData *customDrawRegion); void setupCustomDrawMatrices(UIScene *scene, CustomDrawData *customDrawRegion);
void setupCustomDrawGameStateAndMatrices(UIScene *scene, CustomDrawData *customDrawRegion); void setupCustomDrawGameStateAndMatrices(UIScene *scene, CustomDrawData *customDrawRegion);
void endCustomDrawMatrices(); void endCustomDrawMatrices();
void endCustomDrawGameStateAndMatrices(); void endCustomDrawGameStateAndMatrices();
protected: protected:
static void RADLINK CustomDrawCallback(void *user_callback_data, Iggy *player, IggyCustomDrawCallbackRegion *Region);
static GDrawTexture *RADLINK TextureSubstitutionCreateCallback(void *user_callback_data, IggyUTF16 *texture_name, S32 *width, S32 *height, void **destroy_callback_data);
static void RADLINK TextureSubstitutionDestroyCallback(void *user_callback_data, void *destroy_callback_data, GDrawTexture *handle);
virtual GDrawTexture *getSubstitutionTexture(int textureId) static void RADLINK CustomDrawCallback(void *user_callback_data, Iggy *player, IggyCustomDrawCallbackRegion *Region);
{ static GDrawTexture * RADLINK TextureSubstitutionCreateCallback( void * user_callback_data , IggyUTF16 * texture_name , S32 * width , S32 * height , void **destroy_callback_data );
return NULL; static void RADLINK TextureSubstitutionDestroyCallback( void * user_callback_data , void * destroy_callback_data , GDrawTexture * handle );
}
virtual void destroySubstitutionTexture(void *destroyCallBackData, GDrawTexture *handle)
{
}
public: virtual GDrawTexture *getSubstitutionTexture(int textureId) { return NULL; }
void registerSubstitutionTexture(const wstring &textureName, PBYTE pbData, DWORD dwLength); virtual void destroySubstitutionTexture(void *destroyCallBackData, GDrawTexture *handle) {}
void unregisterSubstitutionTexture(const wstring &textureName, bool deleteData);
public: public:
// NAVIGATION void registerSubstitutionTexture(const wstring &textureName, PBYTE pbData, DWORD dwLength);
bool NavigateToScene(int iPad, EUIScene scene, void *initData = NULL, EUILayer layer = eUILayer_Scene, EUIGroup group = eUIGroup_PAD); void unregisterSubstitutionTexture(const wstring &textureName, bool deleteData);
bool NavigateBack(int iPad, bool forceUsePad = false, EUIScene eScene = eUIScene_COUNT, EUILayer eLayer = eUILayer_COUNT);
void NavigateToHomeMenu();
UIScene *GetTopScene(int iPad, EUILayer layer = eUILayer_Scene, EUIGroup group = eUIGroup_PAD);
size_t RegisterForCallbackId(UIScene *scene); public:
void UnregisterCallbackId(size_t id); // NAVIGATION
UIScene *GetSceneFromCallbackId(size_t id); bool NavigateToScene(int iPad, EUIScene scene, void *initData = NULL, EUILayer layer = eUILayer_Scene, EUIGroup group = eUIGroup_PAD);
void EnterCallbackIdCriticalSection(); bool NavigateBack(int iPad, bool forceUsePad = false, EUIScene eScene = eUIScene_COUNT, EUILayer eLayer = eUILayer_COUNT);
void LeaveCallbackIdCriticalSection(); void NavigateToHomeMenu();
UIScene *GetTopScene(int iPad, EUILayer layer = eUILayer_Scene, EUIGroup group = eUIGroup_PAD);
private: size_t RegisterForCallbackId(UIScene *scene);
void setFullscreenMenuDisplayed(bool displayed); void UnregisterCallbackId(size_t id);
UIScene *GetSceneFromCallbackId(size_t id);
void EnterCallbackIdCriticalSection();
void LeaveCallbackIdCriticalSection();
public: private:
void CloseAllPlayersScenes(); void setFullscreenMenuDisplayed(bool displayed);
void CloseUIScenes(int iPad, bool forceIPad = false);
virtual bool IsPauseMenuDisplayed(int iPad); public:
virtual bool IsContainerMenuDisplayed(int iPad); void CloseAllPlayersScenes();
virtual bool IsIgnorePlayerJoinMenuDisplayed(int iPad); void CloseUIScenes(int iPad, bool forceIPad = false);
virtual bool IsIgnoreAutosaveMenuDisplayed(int iPad);
virtual void SetIgnoreAutosaveMenuDisplayed(int iPad, bool displayed); virtual bool IsPauseMenuDisplayed(int iPad);
virtual bool IsSceneInStack(int iPad, EUIScene eScene); virtual bool IsContainerMenuDisplayed(int iPad);
bool GetMenuDisplayed(int iPad); virtual bool IsIgnorePlayerJoinMenuDisplayed(int iPad);
void SetMenuDisplayed(int iPad, bool bVal); virtual bool IsIgnoreAutosaveMenuDisplayed(int iPad);
virtual void CheckMenuDisplayed(); virtual void SetIgnoreAutosaveMenuDisplayed(int iPad, bool displayed);
void AnimateKeyPress(int iPad, int iAction, bool bRepeat, bool bPressed, bool bReleased); virtual bool IsSceneInStack(int iPad, EUIScene eScene);
void OverrideSFX(int iPad, int iAction, bool bVal); bool GetMenuDisplayed(int iPad);
void SetMenuDisplayed(int iPad,bool bVal);
virtual void CheckMenuDisplayed();
void AnimateKeyPress(int iPad, int iAction, bool bRepeat, bool bPressed, bool bReleased);
void OverrideSFX(int iPad, int iAction,bool bVal);
// TOOLTIPS // TOOLTIPS
virtual void SetTooltipText(unsigned int iPad, unsigned int tooltip, int iTextID); virtual void SetTooltipText( unsigned int iPad, unsigned int tooltip, int iTextID );
virtual void SetEnableTooltips(unsigned int iPad, BOOL bVal); virtual void SetEnableTooltips( unsigned int iPad, BOOL bVal );
virtual void ShowTooltip(unsigned int iPad, unsigned int tooltip, bool show); virtual void ShowTooltip( unsigned int iPad, unsigned int tooltip, bool show );
virtual void SetTooltips(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 SetTooltips( 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 EnableTooltip(unsigned int iPad, unsigned int tooltip, bool enable); virtual void EnableTooltip( unsigned int iPad, unsigned int tooltip, bool enable );
virtual void RefreshTooltips(unsigned int iPad); virtual void RefreshTooltips(unsigned int iPad);
virtual void PlayUISFX(ESoundEffect eSound); virtual void PlayUISFX(ESoundEffect eSound);
virtual void DisplayGamertag(unsigned int iPad, bool show); virtual void DisplayGamertag(unsigned int iPad, bool show);
virtual void SetSelectedItem(unsigned int iPad, const wstring &name); virtual void SetSelectedItem(unsigned int iPad, const wstring &name);
virtual void UpdateSelectedItemPos(unsigned int iPad); virtual void UpdateSelectedItemPos(unsigned int iPad);
virtual void HandleDLCMountingComplete(); virtual void HandleDLCMountingComplete();
virtual void HandleDLCInstalled(int iPad); virtual void HandleDLCInstalled(int iPad);
#ifdef _XBOX_ONE #ifdef _XBOX_ONE
virtual void HandleDLCLicenseChange(); virtual void HandleDLCLicenseChange();
#endif #endif
virtual void HandleTMSDLCFileRetrieved(int iPad); virtual void HandleTMSDLCFileRetrieved(int iPad);
virtual void HandleTMSBanFileRetrieved(int iPad); virtual void HandleTMSBanFileRetrieved(int iPad);
virtual void HandleInventoryUpdated(int iPad); virtual void HandleInventoryUpdated(int iPad);
virtual void HandleGameTick(); virtual void HandleGameTick();
virtual void SetTutorial(int iPad, Tutorial *tutorial); virtual void SetTutorial(int iPad, Tutorial *tutorial);
virtual void SetTutorialDescription(int iPad, TutorialPopupInfo *info); virtual void SetTutorialDescription(int iPad, TutorialPopupInfo *info);
virtual void RemoveInteractSceneReference(int iPad, UIScene *scene); virtual void RemoveInteractSceneReference(int iPad, UIScene *scene);
virtual void SetTutorialVisible(int iPad, bool visible); virtual void SetTutorialVisible(int iPad, bool visible);
virtual bool IsTutorialVisible(int iPad); virtual bool IsTutorialVisible(int iPad);
virtual void UpdatePlayerBasePositions(); virtual void UpdatePlayerBasePositions();
virtual void SetEmptyQuadrantLogo(int iSection); virtual void SetEmptyQuadrantLogo(int iSection);
virtual void HideAllGameUIElements(); virtual void HideAllGameUIElements();
virtual void ShowOtherPlayersBaseScene(unsigned int iPad, bool show); virtual void ShowOtherPlayersBaseScene(unsigned int iPad, bool show);
virtual void ShowTrialTimer(bool show); virtual void ShowTrialTimer(bool show);
virtual void SetTrialTimerLimitSecs(unsigned int uiSeconds); virtual void SetTrialTimerLimitSecs(unsigned int uiSeconds);
virtual void UpdateTrialTimer(unsigned int iPad); virtual void UpdateTrialTimer(unsigned int iPad);
virtual void ReduceTrialTimerValue(); virtual void ReduceTrialTimerValue();
virtual void ShowAutosaveCountdownTimer(bool show); virtual void ShowAutosaveCountdownTimer(bool show);
virtual void UpdateAutosaveCountdownTimer(unsigned int uiSeconds); virtual void UpdateAutosaveCountdownTimer(unsigned int uiSeconds);
virtual void ShowSavingMessage(unsigned int iPad, C4JStorage::ESavingMessage eVal); virtual void ShowSavingMessage(unsigned int iPad, C4JStorage::ESavingMessage eVal);
virtual void ShowPlayerDisplayname(bool show); virtual void ShowPlayerDisplayname(bool show);
virtual bool PressStartPlaying(unsigned int iPad); virtual bool PressStartPlaying(unsigned int iPad);
virtual void ShowPressStart(unsigned int iPad); virtual void ShowPressStart(unsigned int iPad);
virtual void HidePressStart(); virtual void HidePressStart();
void ClearPressStart(); void ClearPressStart();
virtual C4JStorage::EMessageResult RequestAlertMessage(UINT uiTitle, UINT uiText, UINT *uiOptionA, UINT uiOptionC, DWORD dwPad = XUSER_INDEX_ANY, int (*Func)(LPVOID, int, const C4JStorage::EMessageResult) = NULL, LPVOID lpParam = NULL, WCHAR *pwchFormatString = NULL); virtual C4JStorage::EMessageResult RequestAlertMessage(UINT uiTitle, UINT uiText, UINT *uiOptionA,UINT uiOptionC, DWORD dwPad=XUSER_INDEX_ANY, int( *Func)(LPVOID,int,const C4JStorage::EMessageResult)=NULL,LPVOID lpParam=NULL, WCHAR *pwchFormatString=NULL);
virtual C4JStorage::EMessageResult RequestErrorMessage(UINT uiTitle, UINT uiText, UINT *uiOptionA, UINT uiOptionC, DWORD dwPad = XUSER_INDEX_ANY, int (*Func)(LPVOID, int, const C4JStorage::EMessageResult) = NULL, LPVOID lpParam = NULL, WCHAR *pwchFormatString = NULL); virtual C4JStorage::EMessageResult RequestErrorMessage(UINT uiTitle, UINT uiText, UINT *uiOptionA,UINT uiOptionC, DWORD dwPad=XUSER_INDEX_ANY, int( *Func)(LPVOID,int,const C4JStorage::EMessageResult)=NULL,LPVOID lpParam=NULL, WCHAR *pwchFormatString=NULL);
private:
virtual C4JStorage::EMessageResult RequestMessageBox(UINT uiTitle, UINT uiText, UINT *uiOptionA,UINT uiOptionC, DWORD dwPad,int( *Func)(LPVOID,int,const C4JStorage::EMessageResult),LPVOID lpParam, WCHAR *pwchFormatString,DWORD dwFocusButton, bool bIsError);
private: public:
virtual C4JStorage::EMessageResult RequestMessageBox(UINT uiTitle, UINT uiText, UINT *uiOptionA, UINT uiOptionC, DWORD dwPad, int (*Func)(LPVOID, int, const C4JStorage::EMessageResult), LPVOID lpParam, WCHAR *pwchFormatString, DWORD dwFocusButton, bool bIsError); C4JStorage::EMessageResult RequestUGCMessageBox(UINT title = -1, UINT message = -1, int iPad = -1, int( *Func)(LPVOID,int,const C4JStorage::EMessageResult) = NULL, LPVOID lpParam = NULL);
C4JStorage::EMessageResult RequestContentRestrictedMessageBox(UINT title = -1, UINT message = -1, int iPad = -1, int( *Func)(LPVOID,int,const C4JStorage::EMessageResult) = NULL, LPVOID lpParam = NULL);
public: virtual void SetWinUserIndex(unsigned int iPad);
C4JStorage::EMessageResult RequestUGCMessageBox(UINT title = -1, UINT message = -1, int iPad = -1, int (*Func)(LPVOID, int, const C4JStorage::EMessageResult) = NULL, LPVOID lpParam = NULL); unsigned int GetWinUserIndex();
C4JStorage::EMessageResult RequestContentRestrictedMessageBox(UINT title = -1, UINT message = -1, int iPad = -1, int (*Func)(LPVOID, int, const C4JStorage::EMessageResult) = NULL, LPVOID lpParam = NULL);
virtual void SetWinUserIndex(unsigned int iPad); virtual void ShowUIDebugConsole(bool show);
unsigned int GetWinUserIndex(); virtual void ShowUIDebugMarketingGuide(bool show);
void logDebugString(const string &text);
UIScene* FindScene(EUIScene sceneType);
public:
char *m_defaultBuffer, *m_tempBuffer;
void setFontCachingCalculationBuffer(int length);
virtual void ShowUIDebugConsole(bool show);
virtual void ShowUIDebugMarketingGuide(bool show);
void logDebugString(const string &text);
UIScene *FindScene(EUIScene sceneType);
public:
char *m_defaultBuffer, *m_tempBuffer;
void setFontCachingCalculationBuffer(int length);
}; };