Rise
The Vieneo Province
gui.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Logger.h"
4 #include "ActiveHelp.h"
5 
7 class GameClass;
8 class Networking;
9 class Sound;
10 
11 #include <WinSock2.h>
12 #include <WS2tcpip.h>
13 #include <Windows.h>
14 #include "DXUT.h"
15 #include "DXUTgui.h"
16 
17 #define HELP_SIZE 256 // maybe we need a full-screen/windowed toggle?
18 #define MAX_FIELDS 8 // people manager
19 #define MAX_ACTION 11 // waypoint manager
20 #define MAX_LINES 32
21 
22 #include "polyobj.h"
23 #include "people.h"
24 #include "chat.h"
25 #include "GameState.h"
26 
27 // ReSharper disable once CppUnusedIncludeDirective
28 #include "Dialogs\DialogBase.h"
29 
30 
32 {
40 };
41 
42 enum Strings
43 {
44  L_DIALOG_UNUSED1, // Window names
53  L_DIALOG_PLAYERS, // DD_COMMUNICATIONS
65 
66  L_FIELD_DESCRIPTION, // field names
78 
79  L_LIST_UNUSED, // list items
85  L_LIST_PERCENT, // percent symbol
86 
87  L_ACTION_MARK, // this is the first action
101  L_ACTION_ACCEPT_INVITE, // Ian has yet to comment on the join box
118 
119  L_TAB_UNNAMED, // hard-coded tab names
132 
133  L_BUTTON_RESTOREDEFAULTS, // DXUT buttons, checkboxes
144 
147 
148  L_MESSAGE_NOFREECHANNELS, // Results of action, status
168 
169  L_DROP_UNDEFINED, // help for drag/drop
179 
200 
213 
228 
241 
290 
369 
383 
385 };
386 
387 
388 struct Sicons
389 {
390  RECT iconsource = RECT(); // from the bitmap
391  D3DXVECTOR3 iconlocation = centerC;
392  bool mouseover = false;
393  short dialog = 0; // -1 is minimize all, -2 is exit
394 };
395 
397 {
398  // Login
404 
405  // Immigration
438 
467 
480 
481  // Interface
492 
493  // Input
500  //IDC_INPUTHEADERFEEDBACK,
505  IDC_INPUTSPLITLOOKLATERAL, // unused but lets us do some cool enable/disable stuff
506  //IDC_INPUTFEEDBACKLOOKLATERAL,
511  IDC_INPUTSPLITLOOKVERTICAL, // unused but lets us do some cool enable/disable stuff
512  //IDC_INPUTFEEDBACKLOOKVERTICAL,
517  IDC_INPUTSPLITWALKLATERAL, // unused but lets us do some cool enable/disable stuff
518  //IDC_INPUTFEEDBACKWALKLATERAL,
523  IDC_INPUTSPLITWALKVERTICAL, // unused but lets us do some cool enable/disable stuff
524  //IDC_INPUTFEEDBACKWALKVERTICAL,
529  //IDC_INPUTFEEDBACKPITCH,
534  IDC_INPUTSPLITPITCHTRIM, // unused but lets us do some cool enable/disable stuff
535  //IDC_INPUTFEEDBACKPITCHTRIM,
540  IDC_INPUTSPLITROLL, // unused but lets us do some cool enable/disable stuff
541  //IDC_INPUTFEEDBACKROLL,
546  IDC_INPUTSPLITYAW, // unused but lets us do some cool enable/disable stuff
547  //IDC_INPUTFEEDBACKYAW,
553  //IDC_INPUTFEEDBACKTHRUSTLEFT,
559  //IDC_INPUTFEEDBACKTHRUSTRIGHT,
564  IDC_INPUTSPLITSTEERING, // unused but lets us do some cool enable/disable stuff
565  //IDC_INPUTFEEDBACKSTEERING);
571  //IDC_INPUTFEEDBACKGAS,
577  //IDC_INPUTFEEDBACKBRAKE,
583  //IDC_INPUTFEEDBACKLEFTTOEBRAKE,
589  //IDC_INPUTFEEDBACKRIGHTTOEBRAKE,
590 
591  // Video
621  /* DXUTSETTINGSDLG_D3D10_ADAPTER_OUTPUT_LABEL,
622  DXUTSETTINGSDLG_D3D10_ADAPTER_OUTPUT,
623  DXUTSETTINGSDLG_D3D10_RESOLUTION_LABEL,
624  DXUTSETTINGSDLG_D3D10_RESOLUTION,
625  DXUTSETTINGSDLG_D3D10_REFRESH_RATE_LABEL,
626  DXUTSETTINGSDLG_D3D10_REFRESH_RATE,
627  DXUTSETTINGSDLG_D3D10_BACK_BUFFER_FORMAT_LABEL,
628  DXUTSETTINGSDLG_D3D10_BACK_BUFFER_FORMAT,
629  DXUTSETTINGSDLG_D3D10_MULTISAMPLE_COUNT_LABEL,
630  DXUTSETTINGSDLG_D3D10_MULTISAMPLE_COUNT,
631  DXUTSETTINGSDLG_D3D10_MULTISAMPLE_QUALITY_LABEL,
632  DXUTSETTINGSDLG_D3D10_MULTISAMPLE_QUALITY,
633  DXUTSETTINGSDLG_D3D10_PRESENT_INTERVAL_LABEL,
634  DXUTSETTINGSDLG_D3D10_PRESENT_INTERVAL,
635  DXUTSETTINGSDLG_D3D10_DEBUG_DEVICE,*/
636 
637  // Sound
651 
652  // Account
655 
656  // Intermedia
657  IDC_INTERMEDIA, // group of radio buttons below
664 
665  // Global dialogs
666  IDC_FIELDEDIT, // field edits
667  IDC_TABEDIT, // tab edits
668  IDC_TRANSMIT, // user input for transmission (like chat)
669  IDC_CONFIRM, // used in immigration
670  IDC_CANCEL, // used in immigration
671 
672  // Rejoin
675 
676  // Information
679 };
680 
681 
683 {
684  bool inuse;
685  float timeleft;
686  float intensity;
687  bool trend;
689  short texture;
690  float distance;
691 };
692 
693 #define ACLlightningguiC 4
694 
695 
696 class HMI
697 {
698  float fTime = 0;
699  std::vector<std::wstring> currentToast;
700  float toastTime = 0.0f;
701  short toastIcon = 0;
702  int toastY;
705 
706 public:
707 
708  tm tm_time{};
709 
710  CDXUTDialog g_HUD; // dialog for standard controls
711 
716  short dragt; // -1 is none, -2 is scrollbar
717  long dragline; //D3DXVECTOR3 snapback;
718 
719 //ADDED BY VIEWSCREEN MERGE
720  bool g_bRightDown, g_bRightClick; //Right mouse button status'
721  bool g_bGVfilter; // Toggle we used to have in viewscreen to show ground vehicles or not, initialized to false (meaning GV aren't filtered i think);
722 //END ADDED BY VIEWSCREEN MERGE
723 
724  POINT ptClick{}, ptCursor{};
725 
726  ID3DXSprite* g_pTextSprite = nullptr;
727  ID3DXFont* g_pFont = nullptr;
728  ID3DXFont* g_pChatFont = nullptr;
729 
730 
731  LPDIRECT3DTEXTURE9 m_pddsGUIParts = nullptr; // has all the parts for the GUI
732  LPDIRECT3DTEXTURE9 m_pddsGUILateral = nullptr; // has all the parts for the GUI
733  LPDIRECT3DTEXTURE9 m_pddsGUIInterlace = nullptr; // has all the parts for the GUI
734  LPDIRECT3DTEXTURE9 m_pddsGUIInterlace2 = nullptr; // has all the parts for the GUI
735  char buffer1[16384] = {};
736  LPDIRECT3DTEXTURE9 m_pddsGUIScroll = nullptr; // has all the parts for the GUI
737  char buffer2[16384] = {};
738  LPDIRECT3DTEXTURE9 m_pddsGUIScrollButton = nullptr; // has all the parts for the GUI
739  LPDIRECT3DTEXTURE9 m_pddsGUIActions = nullptr; // has all the parts for the GUI
740  LPDIRECT3DTEXTURE9 m_pddsGUIRanks = nullptr; // has all the parts for the GUI
741  LPDIRECT3DTEXTURE9 m_pddsToast = nullptr;
742  LPDIRECT3DTEXTURE9 m_pddsToastIcons = nullptr;
743  LPDIRECT3DTEXTURE9 m_pddsEasydockAd = nullptr;
744 
745 
746  std::vector<std::wstring> motd;
747  WCHAR loginstr[99] = {};
748 
749  std::wstring strings[L_ENUMERATION];
750 
752  CDXUTDialogResourceManager g_DialogResourceManager; // manager for shared resources of dialogs
753 
756  float eyemotion;
758  float fade;
759  bool makehud;
760  float cloudmotion;
761  LPD3DXBUFFER pBuffer;
763 
764 
765  SPlayerData player[MAX_ONLINEPLAYERS];
766  unsigned char ourplayerC = 255;
767  float flood; // for chat flooding
771  char showerrors; // 0 is false, 1 is red, 2 is yellow
776  bool immigrationPassed = false;
777  bool IsAdmin = false, isInjected = false;
778  bool Editing = false, Edited = false;
779  LPWSTR currentCursor = IDC_ARROW;
780  bool cursorVisible = true;
781  bool grippy = false;
782  bool minimized = false;
783  bool isSteam = false;
784  bool isLocal = false;
785  int major;
786  int minor;
787  int build;
788  int revision;
790 
791  void SexChangeOperation(char newsex);
792  void OnFrameMove(float fElapsedTime);
793  void OnResetDevice();
794  void LoadLanguage();
795  void InitApp();
796  void LoadConfiguration() const;
797  void SaveConfiguration() const;
798  void GetVersionText(WCHAR*, int size) const;
799  void OnRender(float fElapsedTime, IDirect3DDevice9* pd3dDevice);
800  bool MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
801  void LoadPeopleSounds() const;
802  HRESULT OnCreateDevice(IDirect3DDevice9* pd3dDevice);
803  void TriggerWelcomeApt2() const;
804  void Toast(const WCHAR* message, ActiveHelp activeHelp);
805  void AddLanguageOptions(UIControlIds controlId, CDXUTDialog* HUD) const;
806  void SetLocale() const;
807  static void RestoreDefaults();
808  void ProcessCallsignBox();
809  void ProcessPasswordBox();
811  void DisplaySnow(IDirect3DDevice9* pd3dDevice, float fade, float fElapsed);
812  void LoadTextures(GameState displaystage, short loadstage);
813  void OnDestroyDevice();
814 
815  //Player joins / leaves
816  void PlayerOffline(unsigned char arrayindex);
817  void AddPlayer(char* msg, unsigned char playerindex);
818 
819  //Chat dialog methods
820  void ChangeChannelName(unsigned char channelId, char* title);
821  void ChannelInvite(char* title, unsigned char whoinvited, unsigned char channel, unsigned char players) const;
822  void PlayerJoinedChannel(short tab, unsigned char playerindex);
823  void PlayerLeftChannel(short tab, unsigned char playerindex);
824  void ChangeChannelOwner(short tab, unsigned char playerindex);
825  void AddSupportChatMessage(const WCHAR* wmsg);
826  void AddDiscordChatMessage(const WCHAR* msg);
827  void AddChatMessage(WCHAR* msg, unsigned char playerindex, unsigned char channel);
828 
829  //Player specific stuff
830  void SetPlayerAlignment(char* msg, unsigned char playerindex);
831  void ChangePlayerProperties(SSubscribeData* prop);
832  void DisplayImmigration(bool refresh);
833 
834  //Login stuff
835  void ResetLoginFields();
836 
837  //Drawing stuff
838  void DrawRXTXLights(LPDIRECT3DTEXTURE9* tex) const;
839  void DrawErrorBoxes();
840  void FadeIn(float f, float fElapsedTime);
841  void LightningCalculations(float fElapsedTime);
842 
843  //Utility methods
844  D3DXCOLOR GetHairColorAtIndex(int index);
845  D3DXCOLOR GetEyeColorAtIndex(int index);
846  void GarbleChat(wchar_t* str) const;
847 
848  //Constructor is down here for some reason :)
849  HMI(GameClass* g, Networking* n, Sound* s);
850  ~HMI();
851 
852  static void CALLBACK OnGUIEvent(UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserContext);
853  void CreateDialogs();
854 
859 
860 private:
861  void ShowHelpBubble(const WCHAR* msg) const;
862  //void UpdateScrollBar(short t);
863  //short CheckHeight(short t);
864  //void DragDropItem(short targetdialog, short targettab);
865  //bool DraggingItem(short targetdialog, short targettab);
866  //void AdjustForResolution(bool vpinit);
867 };
Definition: gui.h:375
short FONT_WIDTH
Definition: gui.h:713
Definition: polyobj.h:7
Definition: gui.h:379
LPDIRECT3DTEXTURE9 m_pddsGUIInterlace
Definition: gui.h:733
short texture
Definition: gui.h:689
Definition: gui.h:399
float panely
Definition: gui.h:688
float toastTime
Definition: gui.h:700
Sicons icon[(D_ENUMERATION+1)]
Definition: gui.h:751
char referralValid
Definition: gui.h:773
WCHAR loginstr[99]
Definition: gui.h:747
bool Edited
Definition: gui.h:778
HMI(GameClass *g, Networking *n, Sound *s)
Definition: gui.cpp:2598
void OnResetDevice()
Definition: gui.cpp:1000
Definition: gui.h:479
void AddSupportChatMessage(const WCHAR *wmsg)
Definition: gui.cpp:3463
void InitApp()
Definition: gui.cpp:1675
float timeleft
Definition: gui.h:685
Networking * networking
Definition: gui.h:855
short helpboxlang
Definition: gui.h:713
Definition: Sound.h:276
char buffer2[16384]
Definition: gui.h:737
D3DXCOLOR GetHairColorAtIndex(int index)
Definition: gui.cpp:4418
void ProcessCallsignBox()
Definition: gui.cpp:1824
Logger * logger
Definition: gui.h:858
LPDIRECT3DTEXTURE9 m_pddsGUIRanks
Definition: gui.h:740
Definition: gui.h:439
int revision
Definition: gui.h:788
void ProcessPasswordBox()
Definition: gui.cpp:1850
float stubbleFreckle
Definition: gui.h:755
void GetVersionText(WCHAR *, int size) const
Definition: gui.cpp:1801
Definition: Logger.h:9
std::vector< std::wstring > motd
Definition: gui.h:746
Definition: gui.h:415
bool MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: gui.cpp:1046
GameClass * game
Definition: gui.h:857
LPDIRECT3DTEXTURE9 m_pddsGUIActions
Definition: gui.h:739
ID3DXFont * g_pFont
Definition: gui.h:727
void ChannelInvite(char *title, unsigned char whoinvited, unsigned char channel, unsigned char players) const
Definition: gui.cpp:3703
LPDIRECT3DTEXTURE9 m_pddsGUIInterlace2
Definition: gui.h:734
InformationDialog * informationDialog
Definition: gui.h:789
void SexChangeOperation(char newsex)
Definition: gui.cpp:27
void ShowHelpBubble(const WCHAR *msg) const
Definition: gui.cpp:1630
void PlayerOffline(unsigned char arrayindex)
Definition: gui.cpp:3373
~HMI()
Definition: gui.cpp:2726
void DisplaySnow(IDirect3DDevice9 *pd3dDevice, float fade, float fElapsed)
Definition: gui.cpp:1883
void SetLocale() const
Definition: gui.cpp:1449
void DrawErrorBoxes()
Definition: gui.cpp:4071
#define ACLlightningguiC
Definition: gui.h:693
LPDIRECT3DTEXTURE9 m_pddsToast
Definition: gui.h:741
Strings
Definition: gui.h:42
LPWSTR currentCursor
Definition: gui.h:779
LPDIRECT3DTEXTURE9 m_pddsToastIcons
Definition: gui.h:742
bool mouseover
Definition: gui.h:392
D3DXCOLOR GetEyeColorAtIndex(int index)
Definition: gui.cpp:4457
std::vector< std::wstring > currentToast
Definition: gui.h:699
float age
Definition: gui.h:755
Definition: gui.h:373
int major
Definition: gui.h:785
float height
Definition: gui.h:755
Definition: gui.h:388
Definition: gui.h:377
float g_fTabFlashTime
Definition: gui.h:712
Definition: gui.h:378
LIGHTNINGABOVEGUI lightningabove[ACLlightningguiC]
Definition: gui.h:762
float cloudmotion
Definition: gui.h:760
void ResetLoginFields()
Definition: gui.cpp:3406
short dragt
Definition: gui.h:716
D3DXCOLOR eyecolor
Definition: gui.h:754
Definition: gui.h:452
bool rxlight
Definition: gui.h:770
POINT ptClick
Definition: gui.h:724
short toastIcon
Definition: gui.h:701
float fade
Definition: gui.h:758
float fTime
Definition: gui.h:698
CDXUTDialogResourceManager g_DialogResourceManager
Definition: gui.h:752
POINT ptCursor
Definition: gui.h:724
void DrawRXTXLights(LPDIRECT3DTEXTURE9 *tex) const
Definition: gui.cpp:4053
Definition: gui.h:472
Definition: gui.h:462
void AddChatMessage(WCHAR *msg, unsigned char playerindex, unsigned char channel)
Definition: gui.cpp:3511
void PlayerLeftChannel(short tab, unsigned char playerindex)
Definition: gui.cpp:3432
float intensity
Definition: gui.h:686
float g_fMouseLastMoveTime
Definition: gui.h:712
bool g_bDragging
Definition: gui.h:714
CDXUTDialog g_HUD
Definition: gui.h:710
LPDIRECT3DTEXTURE9 m_pddsGUIParts
Definition: gui.h:731
void OnDestroyDevice()
Definition: gui.cpp:3324
short dialog
Definition: gui.h:393
void DisplayImmigration(bool refresh)
Definition: gui.cpp:3747
float maxWeight
Definition: gui.h:755
float g_fDownCounterTime
Definition: gui.h:712
bool g_bDropped
Definition: gui.h:715
bool isInjected
Definition: gui.h:777
bool IsAdmin
Definition: gui.h:777
D3DXCOLOR haircolor
Definition: gui.h:754
bool txlight
Definition: gui.h:770
Definition: gui.h:477
unsigned char ourplayerC
Definition: gui.h:766
bool g_bLeftClick
Definition: gui.h:714
Definition: gui.h:413
Definition: gui.h:380
float m_fSlide
Definition: gui.h:712
static void CALLBACK OnGUIEvent(UINT nEvent, int nControlID, CDXUTControl *pControl, void *pUserContext)
Definition: gui.cpp:2771
SPlayerData player[MAX_ONLINEPLAYERS]
Definition: gui.h:765
UIControlIds
Definition: gui.h:396
char showerrors
Definition: gui.h:771
Definition: gui.h:84
bool isLocal
Definition: gui.h:784
Definition: gui.h:402
LPDIRECT3DTEXTURE9 m_pddsGUILateral
Definition: gui.h:732
void LoadPeopleSounds() const
Definition: gui.cpp:1128
void FadeIn(float f, float fElapsedTime)
Definition: gui.cpp:4478
bool grippy
Definition: gui.h:781
void LoadLanguage()
Definition: gui.cpp:1480
bool Editing
Definition: gui.h:778
void LoadConfiguration() const
Definition: gui.cpp:1701
bool g_bRightDown
Definition: gui.h:720
void CreateDialogs()
Definition: gui.cpp:2532
LPDIRECT3DTEXTURE9 m_pddsEasydockAd
Definition: gui.h:743
long dragline
Definition: gui.h:717
bool inuse
Definition: gui.h:684
bool isSteam
Definition: gui.h:783
short txbuffer
Definition: gui.h:772
D3DXVECTOR3 iconlocation
Definition: gui.h:391
float maxHeight
Definition: gui.h:755
void AddPlayer(char *msg, unsigned char playerindex)
Definition: gui.cpp:3586
char charnameValid
Definition: gui.h:773
Definition: gui.h:34
RECT iconsource
Definition: gui.h:390
char handleValid
Definition: gui.h:773
void Toast(const WCHAR *message, ActiveHelp activeHelp)
Definition: gui.cpp:1202
void LightningCalculations(float fElapsedTime)
Definition: gui.cpp:4490
bool trend
Definition: gui.h:687
void TriggerWelcomeApt2() const
Definition: gui.cpp:1180
const D3DXVECTOR3 centerC
float eyemotion
Definition: gui.h:756
PolyObj polyobj
Definition: gui.h:775
float furtherdelay
Definition: gui.h:757
static void RestoreDefaults()
Definition: gui.cpp:1811
bool g_bLeftDouble
Definition: gui.h:715
int toastY
Definition: gui.h:702
void OnRender(float fElapsedTime, IDirect3DDevice9 *pd3dDevice)
Definition: gui.cpp:1946
Sound * sound
Definition: gui.h:856
void AddLanguageOptions(UIControlIds controlId, CDXUTDialog *HUD) const
Definition: gui.cpp:1416
bool g_bRightClick
Definition: gui.h:720
char emailValid
Definition: gui.h:773
CHATCHANNEL chatchannel[MAX_TAB]
Definition: gui.h:768
s_polygon_object tempobject
Definition: gui.h:774
void PlayerJoinedChannel(short tab, unsigned char playerindex)
Definition: gui.cpp:3413
bool g_bTabLit
Definition: gui.h:715
Definition: people.h:15
bool g_bGVfilter
Definition: gui.h:721
D3DXCOLOR skintone
Definition: gui.h:754
bool immigrationPassed
Definition: gui.h:776
float distance
Definition: gui.h:690
short rxbuffer
Definition: gui.h:772
bool eastasian
Definition: gui.h:715
Definition: gui.h:696
PEOPLE people
Definition: gui.h:769
int minor
Definition: gui.h:786
void ChangeChannelName(unsigned char channelId, char *title)
Definition: gui.cpp:3683
HRESULT OnCreateDevice(IDirect3DDevice9 *pd3dDevice)
Definition: gui.cpp:1144
bool haserrors
Definition: gui.h:770
Definition: gui.h:371
char buffer1[16384]
Definition: gui.h:735
ActiveHelp
Definition: ActiveHelp.h:3
ID3DXSprite * g_pTextSprite
Definition: gui.h:726
Definition: gui.h:372
LPD3DXBUFFER pBuffer
Definition: gui.h:761
float minHeight
Definition: gui.h:755
void AddDiscordChatMessage(const WCHAR *msg)
Definition: gui.cpp:3481
LPDIRECT3DTEXTURE9 m_pddsGUIScrollButton
Definition: gui.h:738
void OnFrameMove(float fElapsedTime)
Definition: gui.cpp:212
void SetPlayerAlignment(char *msg, unsigned char playerindex)
Definition: gui.cpp:3639
void UpdateLoginCreateButtons()
Definition: gui.cpp:1869
ID3DXFont * g_pChatFont
Definition: gui.h:728
float panelx
Definition: gui.h:688
Definition: gui.h:71
tm tm_time
Definition: gui.h:708
Definition: gui.h:429
bool g_bLeftDown
Definition: gui.h:714
float rotate
Definition: gui.h:688
void LoadTextures(GameState displaystage, short loadstage)
Definition: gui.cpp:3222
float minWeight
Definition: gui.h:755
int build
Definition: gui.h:787
void ChangePlayerProperties(SSubscribeData *prop)
Definition: gui.cpp:3715
LPDIRECT3DTEXTURE9 m_pddsGUIScroll
Definition: gui.h:736
std::wstring strings[L_ENUMERATION]
Definition: gui.h:749
Field_Types
Definition: gui.h:31
void ChangeChannelOwner(short tab, unsigned char playerindex)
Definition: gui.cpp:3451
float flood
Definition: gui.h:767
float g_fLeftDownTime
Definition: gui.h:712
void SaveConfiguration() const
Definition: gui.cpp:1768
Definition: gui.h:376
bool makehud
Definition: gui.h:759
short cursoroverwindow
Definition: gui.h:713
float weight
Definition: gui.h:755
Definition: gui.h:450
ActiveHelp toastId
Definition: gui.h:703
bool cursorVisible
Definition: gui.h:780
GameState
Definition: GameState.h:3
Definition: gui.h:374
bool minimized
Definition: gui.h:782
bool createRoute
Definition: gui.h:704
void GarbleChat(wchar_t *str) const
Definition: gui.cpp:2750