diff Mouse.h @ 0:9c0607679772

init
author Ritor1
date Sat, 12 Jan 2013 09:45:18 +0600
parents
children cf2fbac6edc9
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Mouse.h	Sat Jan 12 09:45:18 2013 +0600
@@ -0,0 +1,186 @@
+#pragma once
+#include "OSAPI.h"
+
+#include "VectorTypes.h"
+
+
+
+/*  107 */
+#pragma pack(push, 1)
+struct ThreadWard
+{
+  //----- (00438B0B) --------------------------------------------------------
+  inline ThreadWard()
+  {
+    InitializeCriticalSection(&csAsyncMouse);
+    InitializeCriticalSection(&cs2);
+    InitializeCriticalSection(&cs3);
+    InitializeCriticalSection(&csAsyncKeyboard);
+  }
+
+  //----- (00438B54) --------------------------------------------------------
+  virtual ~ThreadWard()
+  {
+  ThreadWard *v1; // esi@1
+
+  v1 = this;
+  //this->vdestructor_ptr = &ThreadWard_destructors;
+  DeleteCriticalSection(&this->csAsyncKeyboard);
+  DeleteCriticalSection(&v1->cs3);
+  DeleteCriticalSection(&v1->cs2);
+  DeleteCriticalSection(&v1->csAsyncMouse);
+  }
+
+  void (__thiscall ***vdestructor_ptr)(ThreadWard *, bool);
+  _RTL_CRITICAL_SECTION csAsyncMouse;
+  _RTL_CRITICAL_SECTION cs2;
+  _RTL_CRITICAL_SECTION cs3;
+  _RTL_CRITICAL_SECTION csAsyncKeyboard;
+};
+#pragma pack(pop)
+
+/*  106 */
+#pragma pack(push, 1)
+struct Mouse
+{
+  //----- (00467E4E) --------------------------------------------------------
+  inline Mouse(ThreadWard *pWard)
+  {
+    uCursorTextureID = 0;
+    uCursorTextureID_2 = 0;
+    hWnd = 0;
+    pCursorBitmap_sysmem = 0;
+    field_34 = 0;
+    pCursorBitmap2_sysmem = 0;
+    pCursorBitmap3_sysmembits_16bit = 0;
+    ptr_90 = 0;
+    pWard = pWard;
+  }
+
+  void GetClickPos(unsigned int *pX, unsigned int *pY);
+  void RemoveHoldingItem();
+  void SetCursorBitmapFromItemID(unsigned int uItemID);
+  void SetCurrentCursorBitmap();
+  void SetCursorBitmap(const char *pName);
+  LONG _469AE4();
+  void ClearCursor();
+  void AllocCursorSystemMem();
+  void *DoAllocCursorMem();
+  POINT *GetCursorPos(POINT *p);
+  void Initialize(HWND hWnd);
+  void Deactivate();
+  void DrawCursor();
+  void _469E1C();
+  void _469E24();
+  void DrawCursorToTarget();
+  void _469EA4();
+  void Activate(int bActive);
+  void SetMouseClick(int x, int y);
+
+
+  unsigned int uPointingObjectID;
+  unsigned int bActive;
+  int field_8;
+  int field_C;
+  unsigned int bInitialized;
+  int field_14;
+  int field_18;
+  int field_1C;
+  int field_20;
+  unsigned int uCursorTextureID;
+  unsigned int uCursorTextureID_2;
+  HWND hWnd;
+  unsigned __int16 *pCursorBitmap_sysmem;
+  int field_34;
+  unsigned __int8 *pCursorBitmap2_sysmem;
+  unsigned __int16 *pCursorBitmap3_sysmembits_16bit;
+  int field_40;
+  int field_44;
+  int field_48;
+  int field_4C;
+  int field_50;
+  int field_54;
+  int uCursorBitmapPitch;
+  int field_5C[13];
+  void *ptr_90;
+  int field_94;
+  int field_98;
+  int field_9C;
+  int field_A0;
+  int field_A4;
+  int field_A8;
+  int field_AC;
+  int field_B0;
+  int field_B4;
+  int field_B8;
+  int field_BC;
+  int field_C0;
+  Vec2_int_ pCursorBitmapPos;
+  int uCursorBitmapWidth;
+  int uCursorBitmapHeight;
+  int field_D4;
+  int field_D8;
+  int field_DC;
+  int field_E0;
+  Vec4_int_ pCursorBitmapRect;
+  char field_F4;
+  char pCurrentCursorName[11];
+  int field_100;
+  int field_104;
+  unsigned int uMouseClickX;
+  unsigned int uMouseClickY;
+  ThreadWard *pWard;
+};
+#pragma pack(pop)
+
+
+#pragma pack(push, 1)
+struct AsyncMouse
+{
+   AsyncMouse(struct IDirectDrawSurface *);
+  ~AsyncMouse();
+
+  char Initialize(LPVOID lpParameter);
+  char LoadCursor(const char *pContainer);
+  char LoadCursorImage();
+  char _46B072();
+  char CreateDisrectInputMouse();
+  int _46B0ED();
+  void Resume();
+  void Suspend();
+  char _46B1DD();
+  bool DrawCursor(struct Texture *a1, struct IDirectDrawSurface4 *a2, int a3);
+  bool _46B289(int a2, char a3);
+  void SetHotspot(float hotspotx, float hotspoty);
+  int UpdateData(int a2);
+  char Thread();
+  void _46B492(int a2);
+  void _46B5D5(int a2);
+  void _46B736_consume_click_lists(char a2);
+  void _46B76F();
+  void _46B879();
+  int _46B944();
+  char _46B958(int a2, int a3);
+  char _46BA8D(int a2, int a3);
+  void _46BAEC();
+  void _46BB0A();
+  void *Clip();
+  void dtor_sub_46BC73();
+  int _46BCAB();
+  int unk_46BCD2(int a2, int a3, int a4);
+  void *unk_46BD09(void *a1, void *a2);
+  int unk_46BD2D(int a2, void *a3);
+  int unk_46BD66(int a1, int a2);
+
+  static void __stdcall AsyncMouseThread(int a1);
+
+  void _409E3D(char a2);
+  void Release();
+};
+#pragma pack(pop)
+
+
+
+
+extern Mouse *pMouse;
+extern AsyncMouse *pAsyncMouse;
\ No newline at end of file