//======== (C) Copyright 2002 Charles G. Cleveland All rights reserved. ========= // // The copyright to the contents herein is the property of Charles G. Cleveland. // The contents may be used and/or copied only with the written permission of // Charles G. Cleveland, or in accordance with the terms and conditions stipulated in // the agreement/contract under which the contents have been supplied. // // Purpose: // // $Workfile: AvHCommanderModeHandler.h $ // $Date: 2002/10/16 00:50:17 $ // //------------------------------------------------------------------------------- // $Log: AvHCommanderModeHandler.h,v $ // Revision 1.15 2002/10/16 00:50:17 Flayra // - Phase gates can be recycled now // // Revision 1.14 2002/06/25 17:45:07 Flayra // - Renamed some buildings, armory is now upgraded // // Revision 1.13 2002/06/10 19:51:06 Flayra // - New commander UI // // Revision 1.12 2002/06/03 16:40:24 Flayra // - Renamed weapons factory and armory // // Revision 1.11 2002/05/28 17:37:43 Flayra // - Added recycling, added fix for occasional crash when selecting command station with some lag // // Revision 1.10 2002/05/23 02:34:00 Flayra // - Post-crash checkin. Restored @Backup from around 4/16. Contains changes for last four weeks of development. // //=============================================================================== #ifndef AVHCOMMANDERMODEHANDLER_H #define AVHCOMMANDERMODEHANDLER_H #include #include "../types.h" #include "AvHTeamHierarchy.h" #include "AvHActionButtons.h" #include "AvHTechSlotManager.h" using namespace vgui; class AvHCommanderModeHandler : public InputSignal { public: AvHCommanderModeHandler(); void ActionButtonActivated(ActionButton* inActionButton); void CancelHit(); void ClearDefaultOrderPosition(); void ClearMoveToPosition(); bool GetAndClearTechNodePressed(AvHMessageID& outMessageID, bool inClear = true); AvHMessageID GetDisplayMenuMessageID() const; bool GetDefaultOrderPosition(float& outWorldX, float& outWorldY) const; bool GetMoveToWorldPosition(float& outWorldX, float& outWorldY) const; bool GetMouseOneDown() const; string GetBuildResearchText() const; string GetTechHelpText() const; AvHMessageID HotKeyHit(char inChar); void RecalculateBuildResearchText(); void Reset(); void SetSelectedUnits(const EntityListType& inUnits); void Update(const AvHTechTree& inTechNodes, int inNumPoints); virtual void cursorMoved(int x,int y,Panel* panel); virtual void cursorEntered(Panel* panel); virtual void cursorExited(Panel* panel); virtual void mousePressed(MouseCode code,Panel* panel); virtual void mouseDoublePressed(MouseCode code,Panel* panel); virtual void mouseReleased(MouseCode code,Panel* panel); virtual void mouseWheeled(int delta,Panel* panel); virtual void keyPressed(KeyCode code,Panel* panel); virtual void keyTyped(KeyCode code,Panel* panel); virtual void keyReleased(KeyCode code,Panel* panel); virtual void keyFocusTicked(Panel* panel); private: void Init(); void DefaultOrderToLastMousePosition(AvHTeamHierarchy* inHierarchy); void MoveToLastMousePosition(AvHTeamHierarchy* inHierarchy); bool GetIsSelectionAllPlayers(int* outCommonUser4 = NULL) const; // bool LookupClassNameForEntity(int inEntityIndex, string& outClassName) const; void RecalculateMenus(); void SetResearchingMenu(); void SetBaseMenu(bool inForce = false); void SetGenericBuildingMenu(); void SetMenuFromTechSlots(const AvHTechSlots& inTechSlots, int inUser3, int inUser4, float inFuser1); bool SetMenuFromUserVariables(int inUser3, int inUser4 = 0, float inFuser1 = 0); bool GetIsPointInPanel(Panel* inPanel, int x, int y) const; // Client space. int mLastTechNodeMouseX; int mLastTechNodeMouseY; int mLastMouseX; int mLastMouseY; bool mMouseOneDown; bool mMouseOneDownOnActionButtons; bool mMouseOneDownOnLogoutButton; bool mMouseTwoDown; bool mHasMoveToPosition; float mMoveToWorldX; float mMoveToWorldY; bool mHasDefaultOrderPosition; float mDefaultOrderWorldX; float mDefaultOrderWorldY; EntityListType mSelected; //AvHTechNode mLastTechNodePressed; AvHMessageID mLastTechPressed; bool mTechNodePressed; string mTechHelpText; string mBuildResearchText; AvHUser3 mDisplayMenu; AvHMessageID mDisplayMenuMessageID; }; #endif