#pragma once #include "UIScene.h" #ifdef _WINDOWS64 #include "Windows64_DLCOffers.h" #include typedef W64_OFFER_INFO MARKETPLACE_CONTENTOFFER_INFO; #endif class UIScene_DLCOffersMenu : public UIScene { private: enum EControls { eControl_OffersList, }; bool m_bIsSD; bool m_bHasPurchased; bool m_bIsSelected; UIControl_DLCList m_buttonListOffers; UIControl_Label m_labelOffers, m_labelPriceTag, m_labelXboxStore; UIControl_HTMLLabel m_labelHTMLSellText; UIControl_BitmapIcon m_bitmapIconOfferImage; UIControl m_Timer; UI_BEGIN_MAP_ELEMENTS_AND_NAMES(UIScene) UI_MAP_ELEMENT( m_buttonListOffers, "OffersList") UI_MAP_ELEMENT( m_labelOffers, "OffersList_Title") UI_MAP_ELEMENT( m_labelPriceTag, "PriceTag") UI_MAP_ELEMENT( m_labelHTMLSellText, "HTMLSellText") UI_MAP_ELEMENT( m_bitmapIconOfferImage, "DLCIcon" ) UI_MAP_ELEMENT( m_Timer, "Timer") if (m_loadedResolution == eSceneResolution_1080) { UI_MAP_ELEMENT( m_labelXboxStore, "XboxLabel" ) } UI_END_MAP_ELEMENTS_AND_NAMES() public: UIScene_DLCOffersMenu(int iPad, void *initData, UILayer *parentLayer); ~UIScene_DLCOffersMenu(); static int ExitDLCOffersMenu(void *pParam, int iPad, C4JStorage::EMessageResult result); virtual EUIScene getSceneType() { return eUIScene_DLCOffersMenu; } virtual void tick(); virtual void updateTooltips(); protected: virtual wstring getMoviePath(); public: // INPUT virtual void handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled); virtual void handlePress(F64 controlId, F64 childId); virtual void handleSelectionChanged(F64 selectedId); virtual void handleFocusChange(F64 controlId, F64 childId); virtual void handleTimerComplete(int id); #ifdef __PS3__ virtual void HandleDLCInstalled(); #endif #if defined(_XBOX_ONE) || defined(_WINDOWS64) virtual void HandleDLCLicenseChange(); #endif private: #if defined(_DURANGO) || defined(_WINDOWS64) void GetDLCInfo(int iOfferC, bool bUpdateOnly = false); void UpdateTooltips(MARKETPLACE_CONTENTOFFER_INFO& xOffer); bool UpdateDisplay(MARKETPLACE_CONTENTOFFER_INFO& xOffer); static int OrderSortFunction(const void* a, const void* b); bool m_bIgnorePress; bool m_bDLCRequiredIsRetrieved; DLC_INFO *m_pNoImageFor_DLC; typedef struct { unsigned int uiContentIndex; unsigned int uiSortIndex; } SORTINDEXSTRUCT; vector m_vIconRetrieval; bool m_bSelectionChanged; #ifdef _WINDOWS64 std::unordered_map m_offerIndexToListPos; #endif #endif bool m_bProductInfoShown; int m_iProductInfoIndex; int m_iCurrentDLC; int m_iTotalDLC; bool m_bAddAllDLCButtons; #if defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__) std::vector* m_pvProductInfo; #endif };