Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
230 lines
6.5 KiB
C++
230 lines
6.5 KiB
C++
// BaseGUI.h: interface for the CBaseGUI class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_BASEGUI_H__3E9B914A_483F_4DBB_A374_227D1CAAC19F__INCLUDED_)
|
|
#define AFX_BASEGUI_H__3E9B914A_483F_4DBB_A374_227D1CAAC19F__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include <vector>
|
|
#include <list>
|
|
#include <Texture.h>
|
|
#include "GUIWindow.h"
|
|
|
|
using namespace std;
|
|
|
|
#define POPUP_NORMAL 1
|
|
#define POPUP_GUARD 2
|
|
#define POPUP_NOBIND 3
|
|
|
|
#define POPUP_WEAPONMERCHANT 11
|
|
#define POPUP_ARMOURMERCHANT 12
|
|
#define POPUP_ETCMERCHANT 13
|
|
|
|
#define POPUP_WEAPONNARMOURMERCHANT 14
|
|
|
|
#define POPUP_DARKWEAPONMERCHANT 16
|
|
#define POPUP_DARKARMOURMERCHANT 17
|
|
#define POPUP_DARKETCMERCHANT 18
|
|
|
|
#define POPUP_BLACKSMITH 21
|
|
|
|
#define POPUP_COUNSELLER 26
|
|
|
|
#define POPUP_ADVENTURETRAINER 31
|
|
#define POPUP_FIGHTERTRAINER 32
|
|
#define POPUP_ROGUETRAINER 33
|
|
#define POPUP_MAGETRAINER 34
|
|
#define POPUP_ACOLYTETRAINER 35
|
|
|
|
#define POPUP_TELEPORTER 41
|
|
#define POPUP_PEACEGUILD 42
|
|
#define POPUP_CONTAINER 43
|
|
|
|
#define POPUP_A_NORMAL 51
|
|
#define POPUP_A_GUARD 52
|
|
#define POPUP_A_NOBIND 53
|
|
|
|
#define POPUP_A_WEAPONMERCHANT 61
|
|
#define POPUP_A_ARMOURMERCHANT 62
|
|
#define POPUP_A_ETCMERCHANT 63
|
|
|
|
#define POPUP_A_DARKWEAPONMERCHANT 66
|
|
#define POPUP_A_DARKARMOURMERCHANT 67
|
|
#define POPUP_A_DARKETCMERCHANT 68
|
|
|
|
#define POPUP_A_BLACKSMITH 71
|
|
|
|
#define POPUP_A_COUNSELLER 76
|
|
|
|
#define POPUP_A_BEGINNERTRAINER 81
|
|
#define POPUP_A_COMBATANTTRAINER 82
|
|
#define POPUP_A_OPPICATERTRAINER 83
|
|
|
|
#define POPUP_A_TELEPORTER 91
|
|
#define POPUP_A_PEACEGUILD 92
|
|
#define POPUP_A_CONTAINER 93
|
|
|
|
#define POPUP_PC 100
|
|
#define POPUP_LEADER 101
|
|
#define POPUP_MEMBER 102
|
|
|
|
|
|
#define POPUPMENU_EXCHANGE 0
|
|
#define POPUPMENU_DUEL 1
|
|
#define POPUPMENU_PARTYINVATE 2
|
|
#define POPUPMENU_STREETSTALL 3
|
|
#define POPUPMENU_LEADER 4
|
|
#define POPUPMENU_VANISH 5
|
|
#define POPUPMENU_DIALOG 6
|
|
#define POPUPMENU_SAVEPOS 7
|
|
#define POPUPMENU_TRADE 8
|
|
#define POPUPMENU_UPGRADE 9
|
|
#define POPUPMENU_UNLOCK 10
|
|
#define POPUPMENU_JOBCHANGE 11
|
|
#define POPUPMENU_ZONEMOVE 12
|
|
#define POPUPMENU_DIALOG2 13
|
|
#define POPUPMENU_DEPOSIT 14
|
|
#define POPUPMENU_PARTYDUEL 15
|
|
#define POPUPMENU_QUEST 16
|
|
#define POPUPMENU_FRIEND 17
|
|
#define POPUPMENU_BAN 18
|
|
#define POPUPMENU_PEACE 19
|
|
|
|
|
|
#define CHRSELECT_SELECT 0
|
|
#define CHRSELECT_START 1
|
|
#define CHRSELECT_CREATE 2
|
|
#define CHRSELECT_INITSELECT 3
|
|
#define CHRSELECT_INITSTART 4
|
|
#define CHRSELECT_INITCREATE 5
|
|
|
|
#define GAME_LOADING 6
|
|
#define GAME_PLAYING 7
|
|
#define GAME_END 8
|
|
|
|
typedef struct PopupMenu
|
|
{
|
|
unsigned long m_dwPopupKind;
|
|
char m_strPopupStr[MAX_PATH];
|
|
unsigned long m_dwQuestID;
|
|
} PopupMenu;
|
|
|
|
class CBaseGUI
|
|
{
|
|
public:
|
|
void RenderChant(LPDIRECT3DDEVICE8 lpD3DDevice);
|
|
BOOL InitZone(unsigned long dwZoneNumber);
|
|
void ProcessSkill(void);
|
|
void RenderCrossHair(LPDIRECT3DDEVICE8 lpD3DDevice, unsigned long dwMode);
|
|
|
|
static void PickItem(DWORD nSelectItem);
|
|
void RenderChrName(LPDIRECT3DDEVICE8 lpD3DDevice, unsigned long dwUID, short wPosX, short wPosY);
|
|
void RenderSkillGauge(LPDIRECT3DDEVICE8 lpD3DDevice);
|
|
BOOL SelectNPC(unsigned long dwTargetID, BOOL bButton = FALSE);
|
|
void NPCSpawn(void);
|
|
unsigned long m_dwKindMarket;
|
|
BOOL UpdatePopup(void);
|
|
unsigned long m_dwKindPos;
|
|
unsigned long m_dwPopupSelect;
|
|
|
|
PopupMenu m_pmPopupMenu[20];
|
|
// char m_strPopupMenu[6][MAX_PATH];
|
|
int m_nPopupWindowY;
|
|
int m_nPopupWindowX;
|
|
|
|
unsigned long m_dwNormalTargetChrID;
|
|
unsigned long m_dwSpecialTargetChrID;
|
|
unsigned long m_dwRangedWeaponTargetChrID;
|
|
|
|
unsigned long m_dwPopupWindowLength;
|
|
unsigned long m_dwPopupMenu;
|
|
BOOL m_bPopupShow;
|
|
unsigned long m_dwPopupSelectChrID;
|
|
unsigned long m_dwKindPopup;
|
|
vector<CTexture *> m_lstTexture;
|
|
vector<CGUIWindow *> m_lstWindow;
|
|
|
|
BOOL m_bQuickWeaponExchange;
|
|
BOOL m_bWeaponExchageAble;
|
|
float m_fWeaponExchageAbleTimeCounter;
|
|
|
|
BOOL m_bExchange;
|
|
unsigned long m_dwExchangeCmdResult;
|
|
unsigned long m_dwExchangeCmdSenderID;
|
|
unsigned long m_dwExchangeCmdType;
|
|
|
|
unsigned long m_dwDuelCmdResult;
|
|
unsigned long m_dwDuelCmdSenderID;
|
|
unsigned long m_dwDuelCmdType;
|
|
|
|
unsigned long m_dwPartyDuelCmdResult;
|
|
unsigned long m_dwPartyDuelCmdSenderID;
|
|
unsigned long m_dwPartyDuelCmdType;
|
|
|
|
unsigned long m_dwPartyCmdResult;
|
|
unsigned long m_dwPartyCmdType;
|
|
unsigned long m_dwPartyCmdSenderID;
|
|
|
|
CSprite *m_lpSkillGaugeFrame;
|
|
CSprite *m_lpSkillGauge[5];
|
|
CSprite *m_lpTarget[2];
|
|
CSprite *m_lpHPGauge;
|
|
CSprite *m_lpQuiver;
|
|
CSprite *m_lpChant[42];
|
|
|
|
CTexture *m_lpChrButtonTexture;
|
|
CTexture *m_lpPopupTexture;
|
|
CTexture *m_lpSocket;
|
|
CTexture *m_lpCommonWindow;
|
|
CTexture *m_lpChantIcon;
|
|
|
|
list<unsigned long> m_lstDeleteChr;
|
|
unsigned long m_dwSpendTime[6];
|
|
|
|
BOOL m_bClickButton;
|
|
BOOL m_bShowHelp;
|
|
BOOL m_bShowSkillError;
|
|
|
|
void RenderChrButton(LPDIRECT3DDEVICE8 lpD3DDevice, char *strText, short wPosX, short wPosY);
|
|
void RenderChrButton(LPDIRECT3DDEVICE8 lpD3DDevice, unsigned long dwUID, short wPosX, short wPosY);
|
|
void RenderPopUp(LPDIRECT3DDEVICE8 lpD3DDevice);
|
|
|
|
void DestroyAllObject(void);
|
|
|
|
CBaseGUI();
|
|
virtual ~CBaseGUI();
|
|
|
|
virtual BOOL InitChrSelect(void) = 0;
|
|
virtual void UpdateChrSelect(void) = 0;
|
|
virtual void RenderChrSelect(LPDIRECT3DDEVICE8 lpD3DDevice) = 0;
|
|
virtual BOOL InitGame(void) = 0;
|
|
virtual void UpdateGame(void) = 0;
|
|
virtual void RenderGame(LPDIRECT3DDEVICE8 lpD3DDevice) = 0;
|
|
virtual void InitTrade(unsigned long dwKindMarket, unsigned long dwNPCID) = 0;
|
|
virtual BOOL GetIsTrade(void) = 0;
|
|
virtual void InitClassChange(unsigned long dwNPCID) = 0;
|
|
virtual void ProcessExchangeCmd(unsigned long dwSenderID, unsigned short wCmd) = 0;
|
|
virtual void InitPos(CItemInstance *lpItem) = 0;
|
|
virtual BOOL GetIsExchange(void) = 0;
|
|
// virtual BOOL StartSkill(void);
|
|
virtual BOOL InitPopup(unsigned long dwKindPopup, unsigned long dwUID, unsigned long dwKindPos) = 0;
|
|
virtual void InitSkillUnLock(unsigned long dwNPCID) = 0;
|
|
virtual void InitChannel(unsigned char cChannelNum, unsigned short *lpChannel) = 0;
|
|
virtual void InitRespawn(unsigned char cZoneNum) = 0;
|
|
virtual BOOL GetIsRespawn(void) = 0;
|
|
virtual void DestroyRespawn(void) = 0;
|
|
virtual BOOL GetEnableChat(void) = 0;
|
|
virtual void InitDeposit(void) = 0;
|
|
virtual void ShowWindow(unsigned long dwWindowNum) = 0;
|
|
virtual BOOL GetBusy(void) = 0;
|
|
virtual BOOL GetIsBlackMarket(void) = 0;
|
|
virtual void InitStreetStall(unsigned long dwChrID, char *lpstrStreetName) = 0;
|
|
virtual void InitQuest(unsigned long dwChrID, unsigned long dwQuestID) = 0;
|
|
};
|
|
|
|
#endif // !defined(AFX_BASEGUI_H__3E9B914A_483F_4DBB_A374_227D1CAAC19F__INCLUDED_)
|