1 #ifndef __INTERFACE_PANELS
2 #define __INTERFACE_PANELS
3 
4 #include "Button_System.h"
5 #include "Interface.h"
6 #include "JA2Types.h"
7 #include "MouseSystem.h"
8 
9 
10 enum
11 {
12 	STANCEUP_BUTTON = 0,
13 	UPDOWN_BUTTON,
14 	CLIMB_BUTTON,
15 	STANCEDOWN_BUTTON,
16 	HANDCURSOR_BUTTON,
17 	PREVMERC_BUTTON,
18 	NEXTMERC_BUTTON,
19 	OPTIONS_BUTTON,
20 	BURSTMODE_BUTTON,
21 	LOOK_BUTTON,
22 	TALK_BUTTON,
23 	MUTE_BUTTON,
24 	SM_DONE_BUTTON,
25 	SM_MAP_SCREEN_BUTTON,
26 	NUM_SM_BUTTONS
27 };
28 
29 
30 enum
31 {
32 	TEAM_DONE_BUTTON = 0,
33 	TEAM_MAP_SCREEN_BUTTON,
34 	CHANGE_SQUAD_BUTTON,
35 	NUM_TEAM_BUTTONS
36 };
37 
38 
39 #define NEW_ITEM_CYCLE_COUNT			19
40 #define NEW_ITEM_CYCLES			4
41 #define NUM_TEAM_SLOTS				6
42 
43 
44 #define PASSING_ITEM_DISTANCE_OKLIFE		3
45 #define PASSING_ITEM_DISTANCE_NOTOKLIFE	2
46 
47 #define SHOW_LOCATOR_NORMAL			1
48 #define SHOW_LOCATOR_FAST			2
49 
50 void CreateSMPanelButtons(void);
51 void RemoveSMPanelButtons(void);
52 void InitializeSMPanel(void);
53 void ShutdownSMPanel(void);
54 void RenderSMPanel(DirtyLevel*);
55 void EnableSMPanelButtons(BOOLEAN fEnable, BOOLEAN fFromItemPickup);
56 
57 
58 void CreateTEAMPanelButtons(void);
59 void RemoveTEAMPanelButtons(void);
60 void InitializeTEAMPanel(void);
61 void ShutdownTEAMPanel(void);
62 void RenderTEAMPanel(DirtyLevel);
63 
64 
65 void SetSMPanelCurrentMerc(SOLDIERTYPE* s);
66 void SetTEAMPanelCurrentMerc(void);
67 
68 void         InitTEAMSlots(void);
69 SOLDIERTYPE* GetPlayerFromInterfaceTeamSlot(UINT8 ubPanelSlot);
70 void    RemoveAllPlayersFromSlot(void);
71 BOOLEAN      RemovePlayerFromTeamSlot(const SOLDIERTYPE* s);
72 void    CheckForAndAddMercToTeamPanel(SOLDIERTYPE* s);
73 
74 void DisableTacticalTeamPanelButtons(BOOLEAN fDisable);
75 void RenderTownIDString(void);
76 
77 void KeyRingItemPanelButtonCallback(MOUSE_REGION* pRegion, INT32 iReason);
78 void KeyRingSlotInvClickCallback(MOUSE_REGION* pRegion, INT32 iReason);
79 
80 
81 void ShowRadioLocator(SOLDIERTYPE* s, UINT8 ubLocatorSpeed);
82 void EndRadioLocator(SOLDIERTYPE* s);
83 
84 
85 extern MOUSE_REGION gSMPanelRegion;
86 
87 
88 extern BOOLEAN gfDisableTacticalPanelButtons;
89 
90 
91 //Used when the shop keeper interface is active
92 void ShopKeeperInterface_SetSMpanelButtonsState(bool enabled);
93 
94 void ReEvaluateDisabledINVPanelButtons(void);
95 
96 void CheckForDisabledForGiveItem(void);
97 void ReevaluateItemHatches(SOLDIERTYPE* s, BOOLEAN fEnable);
98 
99 void HandlePanelFaceAnimations(SOLDIERTYPE* s);
100 
101 void GoToMapScreenFromTactical(void);
102 
103 void HandleTacticalEffectsOfEquipmentChange(SOLDIERTYPE* s, UINT32 uiInvPos, UINT16 usOldItem, UINT16 usNewItem);
104 
105 void FinishAnySkullPanelAnimations(void);
106 
107 SOLDIERTYPE* FindNextMercInTeamPanel(SOLDIERTYPE* prev);
108 
109 void BeginKeyPanelFromKeyShortcut(void);
110 
111 void UpdateForContOverPortrait(SOLDIERTYPE* s, BOOLEAN fOn);
112 
113 void HandleLocateSelectMerc(SOLDIERTYPE*, bool force_select);
114 
115 BOOLEAN HandleNailsVestFetish(const SOLDIERTYPE* pSoldier, UINT32 uiHandPos, UINT16 usReplaceItem);
116 
117 extern SOLDIERTYPE* gpSMCurrentMerc;
118 extern GUIButtonRef iSMPanelButtons[NUM_SM_BUTTONS];
119 extern GUIButtonRef iTEAMPanelButtons[NUM_TEAM_BUTTONS];
120 extern GUIButtonRef giSMStealthButton;
121 extern SOLDIERTYPE* gSelectSMPanelToMerc;
122 extern MOUSE_REGION gSM_SELMERCMoneyRegion;
123 extern UINT8        gubHandPos;
124 extern UINT16       gusOldItemIndex;
125 extern UINT16       gusNewItemIndex;
126 extern BOOLEAN      gfDeductPoints;
127 extern BOOLEAN      gfSMDisableForItems;
128 
129 void LoadInterfacePanelGraphics();
130 void DeleteInterfacePanelGraphics();
131 
132 void ProgressBarBackgroundRect(const INT16 sLeft, const INT16 sTop, const INT16 sWidth, const INT16 sHeight, const UINT32 rgb, const UINT8 scale_rgb);
133 
134 #endif
135