Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// File: DDrawObj.h
|
||||
//
|
||||
// Desc: DirectShow sample code - DDraw Object class header file.
|
||||
//
|
||||
// Copyright (c) 1993-2001 Microsoft Corporation. All rights reserved.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
// #define NOFLIP 1 /* for debugging */
|
||||
|
||||
|
||||
// Define ball radius
|
||||
#define BALL_RADIUS 40
|
||||
#define BALL_STEP 4
|
||||
|
||||
//
|
||||
// Some macros
|
||||
//
|
||||
#define RECTWIDTH(rect) ((rect).right - (rect).left)
|
||||
#define RECTHEIGHT(rect) ((rect).bottom - (rect).top)
|
||||
|
||||
// forward declaration
|
||||
class COverlayCallback ;
|
||||
|
||||
//
|
||||
// DDraw object class to paint color key, flip etc etc.
|
||||
//
|
||||
class CDDrawObject {
|
||||
public: // public methods for Windows structure to call
|
||||
CDDrawObject(HWND hWndApp) ;
|
||||
~CDDrawObject(void) ;
|
||||
|
||||
BOOL Initialize(HWND hWndApp) ;
|
||||
HRESULT StartExclusiveMode(HWND hWndApp) ;
|
||||
HRESULT StopExclusiveMode(HWND hWndApp) ;
|
||||
HRESULT UpdateAndFlipSurfaces(void) ;
|
||||
void SetVideoPosition(DWORD dwVideoLeft, DWORD dwVideoTop,
|
||||
DWORD dwVideoWidth, DWORD dwVideoHeight) ;
|
||||
void SetBallPosition(DWORD dwVideoLeft, DWORD dwVideoTop,
|
||||
DWORD dwVideoWidth, DWORD dwVideoHeight) ;
|
||||
void MoveBallPosition(int iDirX, int iDirY) ;
|
||||
inline void SetColorKey(DWORD dwColorKey) { m_dwVideoKeyColor = dwColorKey ; } ;
|
||||
inline void GetScreenRect(RECT *pRect) { *pRect = m_RectScrn ; } ;
|
||||
inline BOOL IsInExclusiveMode(void) { return m_bInExclMode ; } ;
|
||||
inline LPDIRECTDRAW GetDDObject(void) { return m_pDDObject ; } ;
|
||||
inline LPDIRECTDRAWSURFACE GetDDPrimary(void) { return m_pPrimary ; } ;
|
||||
inline void SetOverlayState(BOOL bState) { m_bOverlayVisible = bState ; } ;
|
||||
inline IDDrawExclModeVideoCallback * GetCallbackInterface(void) { return m_pOverlayCallback ; } ;
|
||||
|
||||
private: // private helper methods for the class' own use
|
||||
HRESULT FillSurface(IDirectDrawSurface *pDDSurface) ;
|
||||
void DrawOnSurface(LPDIRECTDRAWSURFACE pSurface) ;
|
||||
HRESULT ConvertColorRefToPhysColor(COLORREF rgb, DWORD *pdwPhysColor) ;
|
||||
inline DWORD GetColorKey(DWORD dwColorKey) { return m_dwVideoKeyColor ; } ;
|
||||
inline void IncCount(void) { m_iCount++ ; } ;
|
||||
inline int GetCount(void) { return m_iCount ; } ;
|
||||
|
||||
private: // internal state info
|
||||
LPDIRECTDRAW m_pDDObject ; // DirectDraw interface
|
||||
LPDIRECTDRAWSURFACE m_pPrimary ; // primary surface
|
||||
LPDIRECTDRAWSURFACE m_pBackBuff ; // back buffer attached to primary
|
||||
|
||||
BOOL m_bInExclMode ; // Are we in exclusive mode now?
|
||||
RECT m_RectScrn ; // whole screen as a rect
|
||||
RECT m_RectVideo ; // current video position as rect
|
||||
DWORD m_dwScrnColor ; // physical color for surface filling
|
||||
DWORD m_dwVideoKeyColor ; // physical color for color keying video area
|
||||
int m_iCount ; // flip count
|
||||
int m_iBallCenterX ; // X-coord of ball's center
|
||||
int m_iBallCenterY ; // Y-coord of ball's center
|
||||
BOOL m_bFrontBuff ; // draw on front (or back) buffer?
|
||||
LPTSTR m_szFrontMsg ; // front surface string ("Front Buffer")
|
||||
LPTSTR m_szBackMsg ; // back surface string ("Back Buffer")
|
||||
LPTSTR m_szDirection ; // Direction string for users
|
||||
HPEN m_hPen ; // pen for drawing outline of the ball
|
||||
HBRUSH m_hBrush ; // brush for filling the ball
|
||||
BOOL m_bOverlayVisible ; // is overlay visible?
|
||||
IDDrawExclModeVideoCallback *m_pOverlayCallback ; // overlay callback handler interface
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Overlay callback handler object class
|
||||
//
|
||||
class COverlayCallback : public CUnknown, public IDDrawExclModeVideoCallback
|
||||
{
|
||||
public:
|
||||
COverlayCallback(CDDrawObject *pDDrawObj, HWND hWndApp, HRESULT *phr) ;
|
||||
~COverlayCallback() ;
|
||||
|
||||
DECLARE_IUNKNOWN
|
||||
//
|
||||
// IDDrawExclModeVideoCallback interface methods
|
||||
//
|
||||
STDMETHODIMP OnUpdateOverlay(BOOL bBefore,
|
||||
DWORD dwFlags,
|
||||
BOOL bOldVisible,
|
||||
const RECT *prcSrcOld,
|
||||
const RECT *prcDestOld,
|
||||
BOOL bNewVisible,
|
||||
const RECT *prcSrcNew,
|
||||
const RECT *prcDestNew) ;
|
||||
|
||||
STDMETHODIMP OnUpdateColorKey(COLORKEY const *pKey,
|
||||
DWORD dwColor) ;
|
||||
|
||||
STDMETHODIMP OnUpdateSize(DWORD dwWidth, DWORD dwHeight,
|
||||
DWORD dwARWidth, DWORD dwARHeight) ;
|
||||
|
||||
private:
|
||||
CDDrawObject *m_pDDrawObj ;
|
||||
HWND m_hWndApp ;
|
||||
} ;
|
||||
Reference in New Issue
Block a user