summaryrefslogtreecommitdiff
path: root/game/client/econ/econ_ui.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/econ/econ_ui.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/client/econ/econ_ui.h')
-rw-r--r--game/client/econ/econ_ui.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/game/client/econ/econ_ui.h b/game/client/econ/econ_ui.h
new file mode 100644
index 0000000..99c86e0
--- /dev/null
+++ b/game/client/econ/econ_ui.h
@@ -0,0 +1,165 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef ECON_UI_H
+#define ECON_UI_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+enum EconBaseUIPanels_t
+{
+ ECONUI_BASEUI = 0,
+ ECONUI_BACKPACK,
+ ECONUI_CRAFTING,
+ ECONUI_ARMORY,
+ ECONUI_TRADING,
+ ECONUI_LOADOUT,
+
+ ECONUI_FIRST_PANEL = ECONUI_BASEUI,
+ ECONUI_LAST_PANEL = ECONUI_LOADOUT
+};
+
+class CBackpackPanel;
+class CCraftingPanel;
+class CItemPickupPanel;
+class CItemDiscardPanel;
+class CStorePanel;
+struct cart_item_t;
+namespace vgui
+{
+ class Panel;
+};
+
+// Interface used to connect to the game specific implementations of the Economy UI
+abstract_class IEconRootUI
+{
+public:
+ // Open the EconUI, optionally to a specific page (Backpack/Crafting/etc)
+ // If bCheckForInventorySpaceOnExit is set, On closing the EconUI should make sure the user doesn't
+ // have to throw out any items to make room in their inventory.
+ virtual IEconRootUI *OpenEconUI( int iDirectToPage = 0, bool bCheckForInventorySpaceOnExit = false ) = 0;
+
+ // Close the EconUI, and any associated sub panels.
+ virtual void CloseEconUI( void ) = 0;
+
+ // Return true if the specified EconUI sub panel is currently visible.
+ virtual bool IsUIPanelVisible( EconBaseUIPanels_t iPanel ) = 0;
+
+ // Some part of the EconUI might be in a state where they want to prevent the user
+ // from being able to close the EconUI (in the middle of a trade, for instance)
+ virtual void SetPreventClosure( bool bPrevent ) = 0;
+
+ // Sub panel access.
+ // These are panels that are parented to the root EconUI.
+ virtual CBackpackPanel *GetBackpackPanel( void ) = 0;
+ virtual CCraftingPanel *GetCraftingPanel( void ) = 0;
+
+ // Gamestats access (We should replace these with an Econ Gamestats)
+ virtual void Gamestats_ItemTransaction( int eventID, CEconItemView *item, const char *pszReason = NULL, int iQuality = 0 ) = 0;
+ virtual void Gamestats_Store( int eventID, CEconItemView* item=NULL, const char* panelName=NULL,
+ int classId=0, const cart_item_t* in_cartItem=NULL, int in_checkoutAttempts=0, const char* storeError=NULL, int in_totalPrice=0, int in_currencyCode=0 ) = 0;
+ virtual void SetExperimentValue( uint64 experimentValue ) = 0;
+
+ // Open separate economy panels (they're not parented to the root EconUI)
+ // This is here so that games can customize the implementation of these panels.
+ virtual CItemPickupPanel *OpenItemPickupPanel( void ) = 0;
+ virtual CItemDiscardPanel *OpenItemDiscardPanel( void ) = 0;
+ // Store
+ virtual void CreateStorePanel( void ) = 0;
+ virtual CStorePanel *OpenStorePanel( int iItemDef, bool bAddToCart ) = 0;
+ virtual CStorePanel *GetStorePanel( void ) = 0;
+
+ // When the root UI is closed, send an "EconUIClosed" message to pListener.
+ virtual void AddPanelCloseListener( vgui::Panel *pListener ) = 0;
+
+ // The panel at which we want back to actually close the UI - defaults to the root panel - a negative value can be passed in for class loadout panels
+ virtual void SetClosePanel( int iPanel ) = 0;
+
+ // Call this to set which team the class loadout should display
+ virtual void SetDefaultTeam( int iTeam ) = 0;
+};
+
+extern IEconRootUI *EconUI( void );
+
+
+// IDs for Item related events in Gamestats tracking
+enum ITEMEVENTS
+{
+ // STORE EVENTS
+ IE_STORE_ENTERED,
+ IE_STORE_EXITED,
+ IE_STORE_TAB_CHANGED,
+ IE_STORE_ITEM_SELECTED,
+ IE_STORE_ITEM_PREVIEWED,
+ IE_STORE_ITEM_ADDED_TO_CART,
+ IE_STORE_ITEM_REMOVED_FROM_CART,
+ IE_STORE_CHECKOUT_ATTEMPT,
+ IE_STORE_CHECKOUT_FAILURE,
+ IE_STORE_CHECKOUT_SUCCESS,
+ IE_STORE_CHECKOUT_ITEM,
+
+ // LOADOUT EVENTS
+ IE_LOADOUT_ENTERED,
+ IE_LOADOUT_EXITED,
+
+ // TRADING EVENTS
+ IE_TRADING_ENTERED,
+ IE_TRADING_EXITED,
+ IE_TRADING_WENT_TO_ARMORY,
+ IE_TRADING_RETURNED_FROM_ARMORY,
+ IE_TRADING_REQUEST_SENT,
+ IE_TRADING_REQUEST_RECEIVED,
+ IE_TRADING_REQUEST_REJECTED,
+ IE_TRADING_REQUEST_ACCEPTED,
+ IE_TRADING_TRADE_NEGOTIATED,
+ IE_TRADING_TRADE_SUCCESS,
+ IE_TRADING_TRADE_FAILURE,
+ IE_TRADING_ITEM_GIVEN,
+ IE_TRADING_ITEM_RECEIVED,
+ IE_TRADING_ITEM_GIFTED,
+
+ // CRAFTING EVENTS
+ IE_CRAFTING_ENTERED,
+ IE_CRAFTING_EXITED,
+ IE_CRAFTING_WENT_TO_ARMORY,
+ IE_CRAFTING_RETURNED_FROM_ARMORY,
+ IE_CRAFTING_VIEW_BLUEPRINTS,
+ IE_CRAFTING_TIMEOUT,
+ IE_CRAFTING_FAILURE,
+ IE_CRAFTING_SUCCESS,
+ IE_CRAFTING_NO_RECIPE_MATCH,
+ IE_CRAFTING_ATTEMPT,
+ IE_CRAFTING_RECIPE_FOUND,
+
+ // ARMORY EVENTS
+ IE_ARMORY_ENTERED,
+ IE_ARMORY_EXITED,
+ IE_ARMORY_SELECT_ITEM,
+ IE_ARMORY_BROWSE_WIKI,
+ IE_ARMORY_CHANGE_FILTER,
+
+ // TRANSACTION EVENTS
+ IE_ITEM_RECEIVED,
+ IE_ITEM_DISCARDED,
+ IE_ITEM_DELETED,
+ IE_ITEM_USED_TOOL,
+ IE_ITEM_USED_CONSUMABLE,
+ IE_ITEM_REMOVED_ATTRIB,
+ IE_ITEM_CHANGED_STYLE,
+
+ // NEW STORE EVENTS
+ IE_STORE2_ENTERED, // This gets written *in addition* to IE_STORE_ENTERED
+
+ // THESE STORED AS INTEGERS IN THE DATABASE SO THESE ARE NEW
+ IE_ITEM_RESET_STRANGE_COUNTERS,
+ IE_ITEM_PUT_INTO_COLLECTION,
+
+ IE_COUNT,
+};
+
+#endif // ECON_UI_H