Browse Source

Put everything into namespace dvl

pull/35/head
Xadhoom 7 years ago
parent
commit
5283a9ffd1
  1. 2
      3rdParty/StormLib/src/StormPort.h
  2. 13
      CMake/mingwcc.cmake
  3. 5
      CMakeLists.txt
  4. 6
      README.md
  5. 4
      Source/appfat.cpp
  6. 4
      Source/automap.cpp
  7. 4
      Source/capture.cpp
  8. 4
      Source/codec.cpp
  9. 4
      Source/control.cpp
  10. 4
      Source/cursor.cpp
  11. 4
      Source/dead.cpp
  12. 4
      Source/debug.cpp
  13. 4
      Source/diablo.cpp
  14. 4
      Source/doom.cpp
  15. 4
      Source/drlg_l1.cpp
  16. 4
      Source/drlg_l2.cpp
  17. 4
      Source/drlg_l3.cpp
  18. 4
      Source/drlg_l4.cpp
  19. 4
      Source/dthread.cpp
  20. 4
      Source/dx.cpp
  21. 4
      Source/effects.cpp
  22. 4
      Source/encrypt.cpp
  23. 4
      Source/engine.cpp
  24. 4
      Source/error.cpp
  25. 4
      Source/fault.cpp
  26. 4
      Source/gamemenu.cpp
  27. 4
      Source/gendung.cpp
  28. 4
      Source/gmenu.cpp
  29. 4
      Source/help.cpp
  30. 4
      Source/init.cpp
  31. 4
      Source/interfac.cpp
  32. 4
      Source/inv.cpp
  33. 4
      Source/items.cpp
  34. 4
      Source/lighting.cpp
  35. 4
      Source/loadsave.cpp
  36. 4
      Source/logging.cpp
  37. 4
      Source/mainmenu.cpp
  38. 4
      Source/minitext.cpp
  39. 4
      Source/missiles.cpp
  40. 4
      Source/monster.cpp
  41. 4
      Source/movie.cpp
  42. 4
      Source/mpqapi.cpp
  43. 4
      Source/msg.cpp
  44. 4
      Source/msgcmd.cpp
  45. 4
      Source/multi.cpp
  46. 4
      Source/nthread.cpp
  47. 4
      Source/objects.cpp
  48. 4
      Source/pack.cpp
  49. 4
      Source/palette.cpp
  50. 4
      Source/path.cpp
  51. 4
      Source/pfile.cpp
  52. 4
      Source/player.cpp
  53. 4
      Source/plrmsg.cpp
  54. 4
      Source/portal.cpp
  55. 4
      Source/quests.cpp
  56. 4
      Source/render.cpp
  57. 4
      Source/restrict.cpp
  58. 4
      Source/scrollrt.cpp
  59. 4
      Source/setmaps.cpp
  60. 4
      Source/sha.cpp
  61. 4
      Source/sound.cpp
  62. 4
      Source/spells.cpp
  63. 4
      Source/stores.cpp
  64. 4
      Source/sync.cpp
  65. 4
      Source/textdat.cpp
  66. 4
      Source/themes.cpp
  67. 4
      Source/tmsg.cpp
  68. 4
      Source/town.cpp
  69. 4
      Source/towners.cpp
  70. 4
      Source/track.cpp
  71. 4
      Source/trigs.cpp
  72. 4
      Source/wave.cpp
  73. 1018
      SourceS/miniwin.h
  74. 51
      SourceS/miniwin_com.h
  75. 4
      SourceS/miniwin_ddraw.h
  76. 4
      SourceS/miniwin_dsound.h
  77. 321
      SourceS/miniwin_macro.h
  78. 671
      SourceS/miniwin_misc.h
  79. 4
      SourceS/miniwin_rand.h
  80. 4
      SourceS/miniwin_thread.h
  81. 4
      SourceS/miniwin_ui.h
  82. 4
      SourceX/DiabloUI/credits.cpp
  83. 4
      SourceX/DiabloUI/diabloui.cpp
  84. 4
      SourceX/DiabloUI/diabloui.h
  85. 4
      SourceX/DiabloUI/dialogs.cpp
  86. 4
      SourceX/DiabloUI/mainmenu.cpp
  87. 4
      SourceX/DiabloUI/progress.cpp
  88. 4
      SourceX/DiabloUI/selconn.cpp
  89. 4
      SourceX/DiabloUI/selconn.h
  90. 4
      SourceX/DiabloUI/selgame.cpp
  91. 6
      SourceX/DiabloUI/selgame.h
  92. 4
      SourceX/DiabloUI/selhero.cpp
  93. 6
      SourceX/DiabloUI/selhero.h
  94. 4
      SourceX/DiabloUI/title.cpp
  95. 3
      SourceX/dvlnet/abstract_net.cpp
  96. 4
      SourceX/dvlnet/abstract_net.h
  97. 4
      SourceX/dvlnet/base.cpp
  98. 4
      SourceX/dvlnet/base.h
  99. 4
      SourceX/dvlnet/frame_queue.cpp
  100. 4
      SourceX/dvlnet/frame_queue.h
  101. Some files were not shown because too many files have changed in this diff Show More

2
3rdParty/StormLib/src/StormPort.h vendored

@ -313,6 +313,6 @@
//
#define bool int
void TranslateFileName(char* dst, int dstLen, const char* src);
extern "C" void TranslateFileName(char* dst, int dstLen, const char* src);
#endif // __STORMPORT_H__

13
CMake/mingwcc.cmake

@ -0,0 +1,13 @@
SET(CROSS_PREFIX "/usr" CACHE STRING "crosstool-NG prefix")
SET(CMAKE_SYSTEM_NAME Windows)
SET(CMAKE_C_COMPILER "${CROSS_PREFIX}/i686-w64-mingw32/bin/i686-w64-mingw32-gcc")
SET(CMAKE_CXX_COMPILER "${CROSS_PREFIX}/i686-w64-mingw32/bin/i686-w64-mingw32-g++")
SET(CMAKE_FIND_ROOT_PATH "${CROSS_PREFIX}/i686-w64-mingw32" "${CROSS_PREFIX}/i686-w64-mingw32/i686-w64-mingw32")
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

5
CMakeLists.txt

@ -196,6 +196,7 @@ target_link_libraries(devilutionx PRIVATE
SDL2::SDL2_mixer
sodium)
target_compile_definitions(devilution PRIVATE DEVILUTION_ENGINE)
target_compile_definitions(devilution PUBLIC
DEVILUTION_STUB
"$<$<BOOL:${DEBUG}>:_DEBUG>"
@ -236,8 +237,8 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# Silence warnings about __int64 alignment hack not always being applicable
target_compile_options(devilutionx PRIVATE -Wno-ignored-attributes)
# Fix: error: cast from pointer to smaller type 'unsigned char' loses information
target_compile_options(devilution PRIVATE -fms-extensions -fms-compatibility -fms-compatibility-version=19.00)
target_compile_options(devilution PRIVATE -fms-extensions -fms-compatibility -fms-compatibility-version=19.00)
set_target_properties(devilutionx PROPERTIES LINK_FLAGS "-liconv")
endif()

6
README.md

@ -63,6 +63,12 @@ Install the dependencies using [Homebrew](https://brew.sh/):
brew install cmake sdl2_mixer sdl2_ttf libsodium pkg-config
```
### Cross-compiling using MinGW (work in progress, does not yet compile)
Use the following cmake invocation:
```
cmake -DCMAKE_TOOLCHAIN_FILE=../CMake/mingwcc.cmake -DCROSS_PREFIX=/path/to/crosstool-NG/prefix ..
```
Now run the following commands:
```
mkdir build

4
Source/appfat.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
char sz_error_buf[256];
BOOL terminating;
int cleanup_thread_id;
@ -397,3 +399,5 @@ void __fastcall DirErrorDlg(char *error)
TermMsg(NULL);
}
DEVILUTION_END_NAMESPACE

4
Source/automap.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
// BUGFIX: only the first 256 elements are ever read
WORD automaptype[512];
static int MapX;
@ -638,3 +640,5 @@ void __cdecl AutomapZoomReset()
AMPlayerX = AutoMapYPos >> 1;
AMPlayerY = AMPlayerX >> 1;
}
DEVILUTION_END_NAMESPACE

4
Source/capture.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
void __cdecl CaptureScreen()
{
HANDLE hObject;
@ -184,3 +186,5 @@ void __fastcall RedPalette(PALETTEENTRY *pal)
lpDDPalette->lpVtbl->SetEntries(lpDDPalette, 0, 0, 256, red);
#endif
}
DEVILUTION_END_NAMESPACE

4
Source/codec.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int __fastcall codec_decode(void *pbSrcDst, int size, char *pszPassword)
{
unsigned int v3; // ebx
@ -152,3 +154,5 @@ void __fastcall codec_encode(void *pbSrcDst, int size, int size_64, char *pszPas
}
// 4036BE: using guessed type char var_AC[128];
// 4036BE: using guessed type char dst[20];
DEVILUTION_END_NAMESPACE

4
Source/control.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
char sgbNextTalkSave; // weak
char sgbTalkSavePos; // weak
void *pDurIcons;
@ -2877,3 +2879,5 @@ void __fastcall control_up_down(char a1)
strcpy(sgszTalkMsg, sgszTalkSave[v1]);
}
// 4B84CD: using guessed type char sgbTalkSavePos;
DEVILUTION_END_NAMESPACE

4
Source/cursor.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int cursH; // weak
int icursH28; // idb
int cursW; // idb
@ -692,3 +694,5 @@ void __cdecl CheckCursMove()
// 52569C: using guessed type int zoomflag;
// 52575C: using guessed type int doomflag;
// 69BD04: using guessed type int questlog;
DEVILUTION_END_NAMESPACE

4
Source/dead.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
// unused, this was probably for blood boil/burn
int spurtndx;
DeadStruct dead[MAXDEAD];
@ -92,3 +94,5 @@ void __cdecl SetDead()
}
}
}
DEVILUTION_END_NAMESPACE

4
Source/debug.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
void *pSquareCel;
char dMonsDbg[NUMLEVELS][MAXDUNX][MAXDUNY];
char dFlagDbg[NUMLEVELS][MAXDUNX][MAXDUNY];
@ -227,3 +229,5 @@ void __cdecl NextDebugMonster()
NetSendCmdString(1 << myplr, dstr);
}
#endif
DEVILUTION_END_NAMESPACE

4
Source/diablo.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
HWND ghMainWnd;
int glMid1Seed[NUMLEVELS];
int glMid2Seed[NUMLEVELS];
@ -1990,3 +1992,5 @@ void __cdecl diablo_color_cyc_logic()
}
}
// 52574C: using guessed type int color_cycle_timer;
DEVILUTION_END_NAMESPACE

4
Source/doom.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int doom_quest_time;
int doom_stars_drawn;
void *pDoomCel;
@ -97,3 +99,5 @@ void __cdecl doom_draw()
CelDecodeOnly(64, 511, pDoomCel, 1, 640);
}
DEVILUTION_END_NAMESPACE

4
Source/drlg_l1.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
char L5dungeon[80][80];
char mydflags[40][40];
int setloadflag; // weak
@ -1843,3 +1845,5 @@ void __cdecl DRLG_L5CornerFix()
++v0;
} while (v0 < 39);
}
DEVILUTION_END_NAMESPACE

4
Source/drlg_l2.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int nSx1;
int nSx2; // weak
int nSy1;
@ -2995,3 +2997,5 @@ void __cdecl DRLG_InitL2Vals()
++v6;
} while ((INT_PTR)v7 < (INT_PTR)dPiece[1]);
}
DEVILUTION_END_NAMESPACE

4
Source/drlg_l3.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
char lavapool; // weak
int abyssx; // weak
int lockoutcnt; // weak
@ -2570,3 +2572,5 @@ void __fastcall LoadPreL3Dungeon(char *sFileName, int vx, int vy)
memcpy(pdungeon, dungeon, 0x640u);
mem_free_dbg(v5);
}
DEVILUTION_END_NAMESPACE

4
Source/drlg_l4.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int diabquad1x; // weak
int diabquad1y; // weak
int diabquad3x; // idb
@ -2944,3 +2946,5 @@ void __cdecl DRLG_L4Pass3()
++v4;
} while (v4 < 40);
}
DEVILUTION_END_NAMESPACE

4
Source/dthread.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
static CRITICAL_SECTION sgMemCrit; // idb
unsigned int glpDThreadId; // idb
TMegaPkt *sgpInfoHead; /* may not be right struct */
@ -169,3 +171,5 @@ void __cdecl dthread_cleanup()
sgpInfoHead = tmp1;
}
}
DEVILUTION_END_NAMESPACE

4
Source/dx.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
Screen *sgpBackBuf;
LPDIRECTDRAW lpDDInterface;
IDirectDrawPalette *lpDDPalette; // idb
@ -351,3 +353,5 @@ void __cdecl dx_reinit()
LeaveCriticalSection(&sgMemCrit);
}
DEVILUTION_END_NAMESPACE

4
Source/effects.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int sfxdelay; // weak
int sfxdnum;
HANDLE sfx_stream;
@ -1257,3 +1259,5 @@ void __stdcall effects_play_sound(char *snd_file)
}
}
}
DEVILUTION_END_NAMESPACE

4
Source/encrypt.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
DWORD hashtable[1280];
void __fastcall Decrypt(void *block, DWORD size, DWORD key)
@ -157,3 +159,5 @@ void __fastcall PkwareDecompress(void *param, int recv_size, int dwMaxBytes)
mem_free_dbg(ptr);
mem_free_dbg(pbOutBuff);
}
DEVILUTION_END_NAMESPACE

4
Source/engine.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
char gbPixelCol; // automap pixel color 8-bit (palette entry)
int dword_52B970; // BOOLEAN flip - if y < x
int orgseed; // weak
@ -2432,3 +2434,5 @@ void __fastcall PlayInGameMovie(char *pszMovie)
drawpanflag = 255;
}
// 52571C: using guessed type int drawpanflag;
DEVILUTION_END_NAMESPACE

4
Source/error.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
char msgtable[80];
char msgdelay;
char msgflag;
@ -162,3 +164,5 @@ void __cdecl DrawDiabloMsg()
msgflag = msgtable[msgcnt];
}
}
DEVILUTION_END_NAMESPACE

4
Source/fault.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter; // idb
#ifndef _MSC_VER
@ -254,3 +256,5 @@ LPTOP_LEVEL_EXCEPTION_FILTER __cdecl exception_get_filter()
{
return lpTopLevelExceptionFilter;
}
DEVILUTION_END_NAMESPACE

4
Source/gamemenu.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
TMenuItem sgSingleMenu[6] = {
// clang-format off
// dwFlags, pszStr, fnMenu
@ -298,3 +300,5 @@ void __cdecl gamemenu_color_cycling()
palette_set_color_cycling(palette_get_colour_cycling() == 0);
sgOptionMenu[3].pszStr = color_cycling_toggle_names[palette_get_colour_cycling() & 1];
}
DEVILUTION_END_NAMESPACE

4
Source/gendung.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
short level_frame_types[2048];
int themeCount;
char nTransTable[2049];
@ -1242,3 +1244,5 @@ void __cdecl InitLevels()
}
// 52572C: using guessed type int leveldebug;
// 5CF31D: using guessed type char setlevel;
DEVILUTION_END_NAMESPACE

4
Source/gmenu.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
void *optbar_cel;
BOOLEAN byte_634464; // weak
void *PentSpin_cel;
@ -462,3 +464,5 @@ void __fastcall gmenu_slider_3(TMenuItem *pItem, int dwTicks)
{
pItem->dwFlags ^= (pItem->dwFlags ^ (dwTicks << 12)) & 0xFFF000;
}
DEVILUTION_END_NAMESPACE

4
Source/help.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int help_select_line; // weak
int dword_634494; // weak
int helpflag;
@ -246,3 +248,5 @@ void __cdecl HelpScrollDown()
}
// 634490: using guessed type int help_select_line;
// 634960: using guessed type int HelpTop;
DEVILUTION_END_NAMESPACE

4
Source/init.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
_SNETVERSIONDATA fileinfo;
int gbActive; // weak
char diablo_exe_path[260];
@ -472,3 +474,5 @@ WNDPROC __fastcall SetWindowProc(WNDPROC NewProc)
CurrentProc = NewProc;
return OldProc;
}
DEVILUTION_END_NAMESPACE

4
Source/interfac.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
void *sgpBackCel;
int sgdwProgress;
int progress_id; // idb
@ -356,3 +358,5 @@ void __fastcall InitCutscene(unsigned int uMsg)
goto LABEL_33;
}
}
DEVILUTION_END_NAMESPACE

4
Source/inv.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
BOOL invflag;
void *pInvCels;
int drawsbarflag; // idb
@ -2786,3 +2788,5 @@ int __cdecl DropItemBeforeTrig()
SetCursor_(CURSOR_HAND);
return 1;
}
DEVILUTION_END_NAMESPACE

4
Source/items.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int itemactive[MAXITEMS];
int uitemflag;
int itemavail[MAXITEMS];
@ -4987,3 +4989,5 @@ void __fastcall PutItemRecord(int seed, WORD ci, int index)
} while (v3 < gnNumGetRecords);
}
}
DEVILUTION_END_NAMESPACE

4
Source/lighting.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
LightListStruct VisionList[32];
char lightactive[32];
LightListStruct LightList[32];
@ -1581,3 +1583,5 @@ void __cdecl lighting_color_cycling()
}
}
// 525728: using guessed type int light4flag;
DEVILUTION_END_NAMESPACE

4
Source/loadsave.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
unsigned char *tbuff;
void __fastcall LoadGame(BOOL firstflag)
@ -700,3 +702,5 @@ void __cdecl LoadLevel()
mem_free_dbg(LoadBuff);
}
// 642A18: using guessed type int dolighting;
DEVILUTION_END_NAMESPACE

4
Source/logging.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
static CRITICAL_SECTION sgMemCrit;
CHAR FileName[260]; // idb
char log_buffer[388];
@ -208,3 +210,5 @@ void __cdecl log_dump_computer_info()
SystemTime.wSecond,
log_buffer);
}
DEVILUTION_END_NAMESPACE

4
Source/mainmenu.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
char gszHero[16];
/* data */
@ -156,3 +158,5 @@ void __cdecl mainmenu_play_intro()
play_movie("gendata\\diablo1.smk", 1);
mainmenu_refresh_music();
}
DEVILUTION_END_NAMESPACE

4
Source/minitext.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int qtexty; // weak
char *qtextptr;
int qtextSpd; // weak
@ -255,3 +257,5 @@ void __cdecl DrawQText()
// 646D04: using guessed type int scrolltexty;
// 646D08: using guessed type int sgLastScroll;
// 428202: using guessed type char qstr[128];
DEVILUTION_END_NAMESPACE

4
Source/missiles.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int missileactive[MAXMISSILES];
int missileavail[MAXMISSILES];
MissileStruct missile[MAXMISSILES];
@ -6350,3 +6352,5 @@ void __fastcall ClearMissileSpot(int mi)
dFlags[missile[mi]._mix][missile[mi]._miy] &= ~DFLAG_MISSILE;
dMissile[missile[mi]._mix][missile[mi]._miy] = 0;
}
DEVILUTION_END_NAMESPACE

4
Source/monster.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
// Tracks which missile files are already loaded
int MissileFileFlag;
@ -6993,3 +6995,5 @@ void __fastcall decode_enemy(int m, int enemy)
monster[m]._menemyy = monster[enemy]._mfuty;
}
}
DEVILUTION_END_NAMESPACE

4
Source/movie.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
BYTE movie_playing;
BOOL loop_movie;
@ -64,3 +66,5 @@ LRESULT __stdcall MovieWndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam
return MainWndProc(hWnd, Msg, wParam, lParam);
}
DEVILUTION_END_NAMESPACE

4
Source/mpqapi.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int sgdwMpqOffset; // idb
char mpq_buf[4096];
_HASHENTRY *sgpHashTbl;
@ -735,3 +737,5 @@ BOOLEAN __cdecl mpqapi_can_seek()
result = SetEndOfFile(sghArchive);
return result;
}
DEVILUTION_END_NAMESPACE

4
Source/msg.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
static DWORD sgdwOwnerWait;
static DWORD sgdwRecvOffset;
static int sgnCurrMegaPlayer;
@ -2492,3 +2494,5 @@ int __fastcall On_REMSHIELD(TCmd *pCmd, int pnum)
return sizeof(*pCmd);
}
DEVILUTION_END_NAMESPACE

4
Source/msgcmd.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
/* TODO: decompile and fix, commands are NOT deleted properly */
ChatCmd sgChat_Cmd;
@ -244,3 +246,5 @@ void __fastcall msgcmd_cleanup_extern_msg(ServerCommand **extern_msgs)
extern_msgs[1] = 0;
}
}
DEVILUTION_END_NAMESPACE

4
Source/multi.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
char gbSomebodyWonGameKludge; // weak
TBuffer sgHiPriBuf;
char szPlayerDescript[128];
@ -1009,3 +1011,5 @@ void __fastcall multi_player_joins(int pnum, TCmdPlrInfoHdr *cmd, int a3)
}
}
}
DEVILUTION_END_NAMESPACE

4
Source/nthread.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
char byte_679704; // weak
int gdwMsgLenTbl[MAX_PLRS];
static CRITICAL_SECTION sgMemCrit;
@ -296,3 +298,5 @@ BOOL __fastcall nthread_has_500ms_passed(BOOL unused)
}
// 679660: using guessed type char gbMaxPlayers;
// 679764: using guessed type int last_tick;
DEVILUTION_END_NAMESPACE

4
Source/objects.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int trapid; // weak
int trapdir; // weak
unsigned char *pObjCels[40];
@ -5781,3 +5783,5 @@ void __fastcall GetObjectStr(int i)
}
// 4B883C: using guessed type int infoclr;
// 5CF31D: using guessed type char setlevel;
DEVILUTION_END_NAMESPACE

4
Source/pack.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
void __fastcall PackPlayer(PkPlayerStruct *pPack, int pnum, BOOL manashield)
{
PlayerStruct *pPlayer; // edi
@ -252,3 +254,5 @@ void __fastcall UnPackItem(PkItemStruct *is, ItemStruct *id)
qmemcpy(v3, &item[MAXITEMS], sizeof(ItemStruct));
}
}
DEVILUTION_END_NAMESPACE

4
Source/palette.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
PALETTEENTRY logical_palette[256];
PALETTEENTRY system_palette[256];
PALETTEENTRY orig_palette[256];
@ -300,3 +302,5 @@ void __fastcall palette_set_color_cycling(BOOLEAN enabled)
{
color_cycling_enabled = enabled;
}
DEVILUTION_END_NAMESPACE

4
Source/path.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
// preallocated nodes, search is terminated after 300 nodes are visited
PATHNODE path_nodes[MAXPATHNODES];
// size of the pnode_tblptr stack
@ -372,3 +374,5 @@ PATHNODE *__cdecl path_new_step()
memset(new_node, 0, sizeof(PATHNODE));
return new_node;
}
DEVILUTION_END_NAMESPACE

4
Source/pfile.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
#define PASSWORD_SINGLE "xrgyrkj1"
#define PASSWORD_MULTI "szqnlsk1"
@ -694,3 +696,5 @@ void __fastcall pfile_update(BOOL force_save)
}
}
}
DEVILUTION_END_NAMESPACE

4
Source/player.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int plr_lframe_size;
int plr_wframe_size;
UCHAR plr_gfx_flag = 0;
@ -4157,3 +4159,5 @@ void __cdecl PlayDungMsgs()
}
}
// 52A554: using guessed type int sfxdelay;
DEVILUTION_END_NAMESPACE

4
Source/plrmsg.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
static unsigned char plr_msg_slot;
_plrmsg plr_msgs[PMSG_COUNT];
@ -145,3 +147,5 @@ void __fastcall PrintPlrMsg(unsigned int x, unsigned int y, unsigned int width,
break;
}
}
DEVILUTION_END_NAMESPACE

4
Source/portal.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
PortalStruct portal[MAXPORTAL];
int portalindex;
@ -174,3 +176,5 @@ BOOL __fastcall PosOkPortal(int lvl, int x, int y)
}
return FALSE;
}
DEVILUTION_END_NAMESPACE

4
Source/quests.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int qtopline; // idb
int questlog; // weak
void *pQLogCel;
@ -1130,3 +1132,5 @@ void __fastcall SetMultiQuest(int q, int s, int l, int v1)
*v6 = v1;
}
}
DEVILUTION_END_NAMESPACE

4
Source/render.cpp

@ -1,6 +1,8 @@
//HEADER_GOES_HERE
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
#include "_asm.cpp"
int WorldBoolFlag = 0;
@ -5212,3 +5214,5 @@ void __fastcall world_draw_black_tile(unsigned char *pbDst)
} while (yy_32 != 32);
}
#endif
DEVILUTION_END_NAMESPACE

4
Source/restrict.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
BOOL __cdecl SystemSupported()
{
OSVERSIONINFO VersionInformation;
@ -58,3 +60,5 @@ BOOL __cdecl ReadOnlyTest()
}
return ret;
}
DEVILUTION_END_NAMESPACE

4
Source/scrollrt.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int light_table_index; // weak
int screen_y_times_768[1024];
unsigned int sgdwCursWdtOld; // idb
@ -3032,3 +3034,5 @@ void __cdecl DrawAndBlit()
}
// 4B8960: using guessed type int talkflag;
// 52571C: using guessed type int drawpanflag;
DEVILUTION_END_NAMESPACE

4
Source/setmaps.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
// BUGFIX: constant data should be const
unsigned char SkelKingTrans1[8] = {
19, 47, 26, 55,
@ -190,3 +192,5 @@ void __cdecl LoadSetMap()
break;
}
}
DEVILUTION_END_NAMESPACE

4
Source/sha.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
SHA1Context sgSHA1[3];
void __cdecl SHA1Clear()
@ -127,3 +129,5 @@ void __fastcall SHA1Init(SHA1Context *context)
context->state[3] = 0x10325476;
context->state[4] = 0xC3D2E1F0;
}
DEVILUTION_END_NAMESPACE

4
Source/sound.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
LPDIRECTSOUNDBUFFER DSBs[8];
LPDIRECTSOUND sglpDS;
char gbSndInited;
@ -501,3 +503,5 @@ int __fastcall sound_get_or_set_sound_volume(int volume)
return sglSoundVolume;
}
DEVILUTION_END_NAMESPACE

4
Source/spells.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
SpellData spelldata[MAX_SPELLS] = {
// clang-format off
// sName, sManaCost, sType, sNameText, sSkillText, sBookLvl, sStaffLvl, sTargeted, sTownSpell, sMinInt, sSFX, sMissiles[3], sManaAdj, sMinMana, sStaffMin, sStaffMax, sBookCost, sStaffCost
@ -323,3 +325,5 @@ void __fastcall DoHealOther(int pnum, int rid)
drawhpflag = TRUE;
}
}
DEVILUTION_END_NAMESPACE

4
Source/stores.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int stextup; // weak
int storenumh; // weak
int stextlhold; // weak
@ -3737,3 +3739,5 @@ void __cdecl ReleaseStoreBtn()
}
// 6A8A2C: using guessed type char stextscrldbtn;
// 6AA704: using guessed type char stextscrlubtn;
DEVILUTION_END_NAMESPACE

4
Source/sync.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
short sync_word_6AA708[MAXMONSTERS];
int syncmonsters; // weak
short sync_word_6AA89C[MAXMONSTERS];
@ -342,3 +344,5 @@ void __cdecl sync_clear_pkt()
memset(sync_word_6AA89C, 255, 0x190u);
}
// 6AA898: using guessed type int syncmonsters;
DEVILUTION_END_NAMESPACE

4
Source/textdat.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
/* todo: move text out of struct */
const TextDataStruct alltext[259] = {
@ -509,3 +511,5 @@ const TextDataStruct alltext[259] = {
1, 5, TSFX_TAVERN0 }
};
const int gdwAllTextEntries = 259; /* unused */
DEVILUTION_END_NAMESPACE

4
Source/themes.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int numthemes; // idb
BOOL armorFlag;
int ThemeGoodIn[4];
@ -1220,3 +1222,5 @@ void __cdecl CreateThemeRooms()
UpdateL4Trans();
}
}
DEVILUTION_END_NAMESPACE

4
Source/tmsg.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
static TMsg *sgpTimedMsgHead;
int __fastcall tmsg_get(BYTE *pbMsg, DWORD dwMaxLen)
@ -49,3 +51,5 @@ void *__cdecl tmsg_cleanup()
}
return sgpTimedMsgHead;
}
DEVILUTION_END_NAMESPACE

4
Source/town.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
void __fastcall town_clear_upper_buf(unsigned char *a1)
{
unsigned char *v1; // edi
@ -1506,3 +1508,5 @@ void __fastcall CreateTown(int entry)
// 5D2458: using guessed type int dminx;
// 5D245C: using guessed type int dminy;
// 6ABB30: using guessed type int TWarpFrom;
DEVILUTION_END_NAMESPACE

4
Source/towners.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int storeflag; // weak
int sgnCowMsg;
int numtowners; // idb
@ -1030,3 +1032,5 @@ void __fastcall CowSFX(int pnum)
PlaySfxLoc(CowPlaying, plr[pnum].WorldX, plr[pnum].WorldY);
}
}
DEVILUTION_END_NAMESPACE

4
Source/track.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
static BYTE sgbIsScrolling;
static DWORD sgdwLastWalk;
static BOOL sgbIsWalking;
@ -47,3 +49,5 @@ BOOL __cdecl track_isscrolling()
{
return sgbIsScrolling;
}
DEVILUTION_END_NAMESPACE

4
Source/trigs.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
int trigflag[MAXTRIGGERS];
TriggerStruct trigs[MAXTRIGGERS];
int TWarpFrom; // weak
@ -1213,3 +1215,5 @@ void __cdecl CheckTriggers()
}
// 679660: using guessed type char gbMaxPlayers;
// 6ABB30: using guessed type int TWarpFrom;
DEVILUTION_END_NAMESPACE

4
Source/wave.cpp

@ -2,6 +2,8 @@
#include "../types.h"
DEVILUTION_BEGIN_NAMESPACE
BOOL __fastcall WCloseFile(HANDLE file)
{
return SFileCloseFile(file);
@ -213,3 +215,5 @@ void *__fastcall LoadWaveFile(HANDLE hsFile, WAVEFORMATEX *pwfx, CKINFO *chunk)
}
return wave_file.buf;
}
DEVILUTION_END_NAMESPACE

1018
SourceS/miniwin.h

File diff suppressed because it is too large Load Diff

51
SourceS/miniwin_com.h

@ -0,0 +1,51 @@
#pragma once
namespace dvl {
//
// COM
//
#define DECLARE_INTERFACE_(name, base) struct name : public base
#define THIS_
#define THIS
#define PURE = 0
#define CS_HREDRAW 0x0001
#define CS_VREDRAW 0x0002
#define IDC_ARROW (LPCSTR)0x1 // Dummy value
#define CSIDL_STARTMENU 0x000b
#define SW_HIDE 0
#define SW_SHOWNORMAL 1
#define BLACK_BRUSH 4
#define LR_DEFAULTCOLOR 0x0000
#define IMAGE_ICON 1
#define SM_CXSCREEN 0
#define SM_CYSCREEN 1
#define GW_HWNDNEXT 2
#define STDMETHOD(name) STDMETHOD_(HRESULT, name)
#define STDMETHOD_(type, name) virtual WINAPI type name
typedef void *REFIID;
struct IUnknown {
// clang-format off
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
// clang-format on
};
#define MAKE_HRESULT(sev, fac, code) ((HRESULT)(((uint32_t)(sev) << 31) | ((uint32_t)(fac) << 16) | ((uint32_t)(code))))
#define E_FAIL ((HRESULT)0x80004005L)
#define S_OK ((HRESULT)0)
}

4
SourceS/miniwin_ddraw.h

@ -1,5 +1,7 @@
#pragma once
namespace dvl {
typedef struct _DDCOLORKEY {
DWORD dwColorSpaceLowValue;
DWORD dwColorSpaceHighValue;
@ -296,3 +298,5 @@ DECLARE_INTERFACE_(IDirectDraw,IUnknown)
STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE;
// clang-format on
};
}

4
SourceS/miniwin_dsound.h

@ -1,5 +1,7 @@
#pragma once
namespace dvl {
typedef void *LPDSBCAPS, *LPCDSBUFFERDESC;
struct IDirectSound;
@ -107,3 +109,5 @@ DECLARE_INTERFACE_(IDirectSound, IUnknown)
#define DSERR_INVALIDPARAM 0x80070057
#define DSERR_ALLOCATED MAKE_DSHRESULT(10)
#define DSERR_CONTROLUNAVAIL MAKE_DSHRESULT(30)
}

321
SourceS/miniwin_macro.h

@ -0,0 +1,321 @@
#pragma once
// Basic types
#define __int8 char
#define __int16 short
#define __int32 int
#define __int64 long long
#define INVALID_HANDLE_VALUE ((HANDLE)-1)
#define INVALID_HANDLE ((HANDLE)-1)
#define HFILE_ERROR ((HFILE)-1)
//
// Intrinsics
//
#define LOBYTE(w) ((BYTE)(((DWORD_PTR)(w)) & 0xff))
#define HIBYTE(w) ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff))
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
#define InterlockedIncrement(x) __sync_add_and_fetch(x, 1)
#define INFINITE 0xFFFFFFFF
#define MAKEFOURCC(x, y, z, w) \
(((uint32_t)((uint8_t)x)) \
| (((uint32_t)((uint8_t)y)) << 8) \
| (((uint32_t)((uint8_t)z)) << 16) \
| (((uint32_t)((uint8_t)w)) << 24))
#define WINUSERAPI
#define FOURCC_RIFF MAKEFOURCC('W', 'A', 'V', 'E')
#define ERROR_ALREADY_EXISTS 183
#define CreateEvent CreateEventA
#define PM_NOREMOVE 0x0000
#define PM_REMOVE 0x0001
#define WM_QUIT 0x0012
#define PeekMessage PeekMessageA
#define DispatchMessage DispatchMessageA
#define PostMessage PostMessageA
#define CreateWindowEx CreateWindowExA
#define FindWindow FindWindowA
#define RegisterClassEx RegisterClassExA
#define LoadCursor LoadCursorA
#define GetUserName GetUserNameA
#define LoadIcon LoadIconA
#define LoadImage LoadImageA
#define SHGetPathFromIDList SHGetPathFromIDListA
#define ShellExecute ShellExecuteA
#define GetModuleHandle GetModuleHandleA
#define THREAD_BASE_PRIORITY_MAX 2
#define THREAD_PRIORITY_NORMAL 0
#define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX
#define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST - 1)
#define TextOut TextOutA
#define HORZRES 8
#define VERTRES 10
#define NUMRESERVED 106
#define _snprintf snprintf
#define _vsnprintf vsnprintf
#define wsprintf wsprintfA
#define wvsprintf wvsprintfA
//
// File I/O
//
#define FILE_BEGIN 0
#define FILE_CURRENT 1
#define FILE_END 2
#define FILE_FLAG_WRITE_THROUGH 0x80000000
#define CREATE_ALWAYS 2
#define GENERIC_READ 0x80000000L
#define GENERIC_WRITE 0x40000000L
#define OPEN_EXISTING 3
#define OPEN_ALWAYS 4
#define ERROR_FILE_NOT_FOUND 2
#define FILE_ATTRIBUTE_NORMAL 128
#define FILE_ATTRIBUTE_HIDDEN 0x00000002
#define FILE_ATTRIBUTE_SYSTEM 0x00000004
#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
#define FILE_SHARE_READ 1
#define OFS_MAXPATHNAME DVL_OFS_MAXPATHNAME
#define MAX_PATH DVL_MAX_PATH
//
// Calculate the byte offset of a field in a structure of type type.
//
#define FIELD_OFFSET(type, field) ((LONG)(INT_PTR) & (((type *)0)->field))
#define IMAGE_FIRST_SECTION(ntheader) ((PIMAGE_SECTION_HEADER)((UINT_PTR)ntheader + FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader))
#define IMAGE_NT_SIGNATURE 0x00004550 // PE00
#define IMAGE_DOS_SIGNATURE 0x5A4D
#define VER_PLATFORM_WIN32_NT 2
#define GetVersionEx GetVersionExA
#define lstrcpyn lstrcpynA
#define SEC_COMMIT 0x8000000
#define PAGE_READWRITE 0x04
#define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS
#define SECTION_QUERY 0x0001
#define SECTION_MAP_WRITE 0x0002
#define SECTION_MAP_READ 0x0004
#define SECTION_MAP_EXECUTE 0x0008
#define SECTION_EXTEND_SIZE 0x0010
#define SECTION_MAP_EXECUTE_EXPLICIT 0x0020
#define STANDARD_RIGHTS_REQUIRED 0x000F0000
#define SECTION_ALL_ACCESS \
(STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE)
#define CREATE_NEW_PROCESS_GROUP 0x200
#define CreateProcess CreateProcessA
#define CreateFileMapping CreateFileMappingA
#define GetPrivateProfileString GetPrivateProfileStringA
#define MessageBox MessageBoxA
#define HKEY_CURRENT_USER 1
#define KEY_READ 0x20019
#define KEY_WRITE 0x20006
#define REG_SZ 1
#define RegOpenKeyEx RegOpenKeyExA
#define RegQueryValueEx RegQueryValueExA
#define RegSetValueEx RegSetValueExA
#define RegCloseKey RegCloseKeyA
#define DefWindowProc DefWindowProcA
#define GetWindowLong GetWindowLongA
#define SetWindowLong SetWindowLongA
#define GetFileAttributes GetFileAttributesA
#define SetFileAttributes SetFileAttributesA
#define FindFirstFile FindFirstFileA
#define FindNextFile FindNextFileA
#define CreateFile CreateFileA
#define GetWindowsDirectory GetWindowsDirectoryA
#define GetLogicalDriveStrings GetLogicalDriveStringsA
#define GetDriveType GetDriveTypeA
#define GetDiskFreeSpace GetDiskFreeSpaceA
#define GetModuleFileName GetModuleFileNameA
#define GetComputerName GetComputerNameA
#define GetFileVersionInfoSize GetFileVersionInfoSizeA
#define GetFileVersionInfo GetFileVersionInfoA
#define VerQueryValue VerQueryValueA
#define DeleteFile DeleteFileA
#define CopyFile CopyFileA
#define GWL_STYLE (-16)
#define WS_POPUP 0x80000000L
#define WS_SYSMENU 0x00080000L
#define DRIVE_CDROM 5
//
// Events
//
#define WM_MOUSEFIRST 0x0200
#define WM_MOUSEMOVE 0x0200
#define WM_LBUTTONDOWN 0x0201
#define WM_LBUTTONUP 0x0202
#define WM_RBUTTONDOWN 0x0204
#define WM_RBUTTONUP 0x0205
#define WM_KEYFIRST 0x0100
#define WM_KEYDOWN 0x0100
#define WM_KEYUP 0x0101
#define WM_SYSKEYDOWN 0x0104
#define WM_INITDIALOG 0x0110
#define WM_COMMAND 0x0111
#define WM_SYSCOMMAND 0x0112
#define WM_CHAR 0x0102
#define WM_CAPTURECHANGED 0x0215
#define WM_CREATE 0x0001
#define WM_DESTROY 0x0002
#define WM_PAINT 0x000F
#define WM_CLOSE 0x0010
#define WM_QUERYENDSESSION 0x0011
#define WM_ERASEBKGND 0x0014
#define WM_ACTIVATEAPP 0x001C
#define WM_QUERYNEWPALETTE 0x030F
#define WM_PALETTECHANGED 0x0311
#define SC_CLOSE 0xF060
#define VK_RETURN 0x0D
#define VK_BACK 0x08
#define VK_SHIFT 0x10
#define VK_ESCAPE 0x1B
#define VK_SPACE 0x20
#define VK_LEFT 0x25
#define VK_UP 0x26
#define VK_RIGHT 0x27
#define VK_DOWN 0x28
#define VK_F1 0x70
#define VK_F2 0x71
#define VK_F3 0x72
#define VK_F4 0x73
#define VK_F5 0x74
#define VK_F6 0x75
#define VK_F7 0x76
#define VK_F8 0x77
#define VK_F9 0x78
#define VK_F10 0x79
#define VK_F11 0x7A
#define VK_F12 0x7B
#define VK_TAB 0x09
#define VK_PAUSE 0x13
#define VK_PRIOR 0x21
#define VK_NEXT 0x22
#define VK_SNAPSHOT 0x2C
#define VK_OEM_1 0xBA
#define VK_OEM_PLUS 0xBB
#define VK_OEM_COMMA 0xBC
#define VK_OEM_MINUS 0xBD
#define VK_OEM_PERIOD 0xBE
#define VK_OEM_2 0xBF
#define VK_OEM_3 0xC0
#define VK_OEM_4 0xDB
#define VK_OEM_5 0xDC
#define VK_OEM_6 0xDD
#define VK_OEM_7 0xDE
//#define VK_OEM_8 0xDF
//#define VK_OEM_102 0xE2
#define MK_SHIFT 0x0004
#define MK_LBUTTON 0x0001
#define MK_RBUTTON 0x0002
#define MB_TASKMODAL 0x00002000L
#define MB_ICONHAND 0x00000010L
#define MB_ICONEXCLAMATION 0x00000030L
#define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200
#define FORMAT_MESSAGE_FROM_HMODULE 0x00000800
#define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
#define STATUS_BREAKPOINT ((DWORD)0x80000003L)
#define STATUS_GUARD_PAGE_VIOLATION ((DWORD)0x80000001L)
#define STATUS_FLOAT_DIVIDE_BY_ZERO ((DWORD)0xC000008EL)
#define STATUS_SINGLE_STEP ((DWORD)0x80000004L)
#define STATUS_ARRAY_BOUNDS_EXCEEDED ((DWORD)0xC000008CL)
#define STATUS_ACCESS_VIOLATION ((DWORD)0xC0000005L)
#define STATUS_IN_PAGE_ERROR ((DWORD)0xC0000006L)
#define STATUS_ILLEGAL_INSTRUCTION ((DWORD)0xC000001DL)
#define STATUS_DATATYPE_MISALIGNMENT ((DWORD)0x80000002L)
#define STATUS_FLOAT_DENORMAL_OPERAND ((DWORD)0xC000008DL)
#define STATUS_NONCONTINUABLE_EXCEPTION ((DWORD)0xC0000025L)
#define STATUS_INTEGER_DIVIDE_BY_ZERO ((DWORD)0xC0000094L)
#define STATUS_INVALID_HANDLE ((DWORD)0xC0000008L)
#define STATUS_FLOAT_OVERFLOW ((DWORD)0xC0000091L)
#define STATUS_ILLEGAL_INSTRUCTION ((DWORD)0xC000001DL)
#define STATUS_GUARD_PAGE_VIOLATION ((DWORD)0x80000001L)
#define STATUS_ILLEGAL_INSTRUCTION ((DWORD)0xC000001DL)
#define STATUS_INTEGER_OVERFLOW ((DWORD)0xC0000095L)
#define STATUS_PRIVILEGED_INSTRUCTION ((DWORD)0xC0000096L)
#define STATUS_FLOAT_UNDERFLOW ((DWORD)0xC0000093L)
#define STATUS_FLOAT_INEXACT_RESULT ((DWORD)0xC000008FL)
#define STATUS_FLOAT_INVALID_OPERATION ((DWORD)0xC0000090L)
#define STATUS_FLOAT_STACK_CHECK ((DWORD)0xC0000092L)
#define STATUS_INVALID_DISPOSITION ((DWORD)0xC0000026L)
#define STATUS_STACK_OVERFLOW ((DWORD)0xC00000FDL)
#define EXCEPTION_CONTINUE_SEARCH 0x0
#define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
#define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT
#define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION
#define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO
#define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP
#define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
#define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR
#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
#define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
#define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND
#define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION
#define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO
#define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE
#define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW
#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
#define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION
#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
#define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW
#define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION
#define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
#define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT
#define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
#define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK
#define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION
#define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW
#define HWND_NOTOPMOST (HWND) - 2
#define HWND_TOP (HWND)0
#define SWP_NOACTIVATE 0x0010
#define SWP_NOMOVE 0x0002
#define SWP_NOSIZE 0x0004
#define SWP_NOZORDER 0x0001
#define OF_EXIST 1

671
SourceS/miniwin_misc.h

@ -0,0 +1,671 @@
#pragma once
namespace dvl {
static constexpr auto DVL_OFS_MAXPATHNAME = 128;
static constexpr auto DVL_MAX_PATH = 260;
typedef char CHAR;
typedef uint16_t SHORT;
typedef int32_t LONG;
typedef uint8_t BOOLEAN;
typedef LONG *PLONG;
typedef uint32_t ULONG;
typedef ULONG *PULONG;
typedef unsigned short USHORT;
typedef USHORT *PUSHORT;
typedef unsigned char UCHAR;
typedef UCHAR *PUCHAR;
typedef char *PSZ;
typedef uint32_t DWORD;
typedef int BOOL, WINBOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef FLOAT *PFLOAT;
typedef BOOL *LPBOOL;
typedef BYTE *LPBYTE;
typedef int *LPINT;
typedef WORD *LPWORD;
typedef long *LPLONG;
typedef DWORD *LPDWORD;
typedef void *LPVOID;
typedef void *PVOID;
typedef const void *LPCVOID;
typedef void *HBRUSH;
typedef void *HMENU;
typedef void *HICON;
typedef void *LPITEMIDLIST;
typedef LPITEMIDLIST PIDLIST_ABSOLUTE;
typedef LPITEMIDLIST PCIDLIST_ABSOLUTE;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
// GCC qword alignment is 4, MSVC is 8, work around by introducing a more aligned type
typedef long long INT64;
typedef unsigned long long UINT64;
typedef intptr_t INT_PTR, *PINT_PTR;
typedef uintptr_t UINT_PTR, *PUINT_PTR;
typedef intptr_t LONG_PTR, *PLONG_PTR;
typedef uintptr_t ULONG_PTR, *PULONG_PTR;
typedef ULONG_PTR SIZE_T;
typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
typedef CHAR *LPSTR;
typedef CHAR *LPTSTR;
typedef const CHAR *LPCSTR;
typedef UINT_PTR WPARAM;
typedef LONG_PTR LPARAM;
typedef LONG_PTR LRESULT;
//
// Handles
//
typedef void *HANDLE;
typedef HANDLE HWND, HGDIOBJ, HMODULE, HDC, HRGN, HINSTANCE, HPALETTE, HFILE, HCURSOR;
typedef LONG LCID;
typedef DWORD COLORREF;
typedef LONG HRESULT;
typedef LRESULT(CALLBACK *WNDPROC)(HWND, UINT, WPARAM, LPARAM);
typedef struct waveformat_tag {
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
} WAVEFORMAT, *PWAVEFORMAT, *LPWAVEFORMAT;
typedef struct pcmwaveformat_tag {
WAVEFORMAT wf;
WORD wBitsPerSample;
} PCMWAVEFORMAT, *PPCMWAVEFORMAT, *LPPCMWAVEFORMAT;
typedef struct tWAVEFORMATEX {
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} WAVEFORMATEX, *LPWAVEFORMATEX, *LPCWAVEFORMATEX;
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *LPFILETIME;
typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
typedef RECT *LPRECT;
typedef struct tagPOINT {
LONG x;
LONG y;
} POINT;
typedef struct tagSIZE {
LONG cx;
LONG cy;
} SIZE;
typedef struct tagVS_FIXEDFILEINFO {
DWORD dwSignature;
DWORD dwStrucVersion;
DWORD dwFileVersionMS;
DWORD dwFileVersionLS;
DWORD dwProductVersionMS;
DWORD dwProductVersionLS;
DWORD dwFileFlagsMask;
DWORD dwFileFlags;
DWORD dwFileOS;
DWORD dwFileType;
DWORD dwFileSubtype;
DWORD dwFileDateMS;
DWORD dwFileDateLS;
} VS_FIXEDFILEINFO;
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG, *LPMSG;
typedef uint32_t FOURCC;
typedef struct {
FOURCC ckid;
DWORD cksize;
FOURCC fccType;
DWORD dwDataOffset;
DWORD dwFlags;
} MMCKINFO;
//
// System time is represented with the following structure:
//
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
typedef struct tagWNDCLASSEXA {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEXA;
typedef unsigned long _fsize_t; /* Could be 64 bits for Win32 */
struct _finddata_t {
unsigned attrib;
time_t time_create; /* -1 for FAT file systems */
time_t time_access; /* -1 for FAT file systems */
time_t time_write;
_fsize_t size;
char name[260];
};
typedef WORD ATOM;
//
// Everything else
//
typedef struct tagPALETTEENTRY {
BYTE peRed;
BYTE peGreen;
BYTE peBlue;
BYTE peFlags;
} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
typedef struct _SYSTEM_INFO {
union {
DWORD dwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
};
};
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD_PTR dwActiveProcessorMask;
DWORD dwNumberOfProcessors;
DWORD dwProcessorType;
DWORD dwAllocationGranularity;
WORD wProcessorLevel;
WORD wProcessorRevision;
} SYSTEM_INFO, *LPSYSTEM_INFO;
typedef void *LPSECURITY_ATTRIBUTES;
typedef struct _LIST_ENTRY {
struct _LIST_ENTRY *Flink;
struct _LIST_ENTRY *Blink;
} LIST_ENTRY, *PLIST_ENTRY;
DWORD WINAPI GetTickCount(VOID);
DWORD WINAPI GetLastError(VOID);
VOID WINAPI SetLastError(DWORD dwErrCode);
WINBOOL WINAPI CloseHandle(HANDLE hObject);
HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes, WINBOOL bManualReset, WINBOOL bInitialState,
LPCSTR lpName);
BOOL WINAPI SetEvent(HANDLE hEvent);
BOOL WINAPI ResetEvent(HANDLE hEvent);
DWORD WINAPI WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds);
WINBOOL WINAPI SetCursorPos(int X, int Y);
int WINAPI ShowCursor(WINBOOL bShow);
HWND WINAPI SetCapture(HWND hWnd);
WINBOOL WINAPI ReleaseCapture(VOID);
SHORT WINAPI GetAsyncKeyState(int vKey);
WINBOOL WINAPI PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg);
WINBOOL WINAPI TranslateMessage(CONST MSG *lpMsg);
LRESULT WINAPI DispatchMessageA(CONST MSG *lpMsg);
WINBOOL WINAPI PostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
WINBOOL WINAPI DestroyWindow(HWND hWnd);
HWND WINAPI GetLastActivePopup(HWND hWnd);
HWND WINAPI GetTopWindow(HWND hWnd);
WINBOOL WINAPI SetForegroundWindow(HWND hWnd);
HWND WINAPI SetFocus(HWND hWnd);
HWND GetDesktopWindow();
HRESULT SHGetSpecialFolderLocation(HWND hwnd, int csidl, PIDLIST_ABSOLUTE *ppidl);
HWND CreateWindowExA(
DWORD dwExStyle,
LPCSTR lpClassName,
LPCSTR lpWindowName,
DWORD dwStyle,
int X,
int Y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam);
HWND WINAPI FindWindowA(LPCSTR lpClassName, LPCSTR lpWindowName);
BOOL InvalidateRect(HWND hWnd, const RECT *lpRect, BOOL bErase);
BOOL UpdateWindow(HWND hWnd);
BOOL ShowWindow(HWND hWnd, int nCmdShow);
WINUSERAPI ATOM WINAPI RegisterClassExA(const WNDCLASSEXA *lpwcx);
int GetSystemMetrics(int nIndex);
HGDIOBJ GetStockObject(int i);
HCURSOR LoadCursorA(HINSTANCE hInstance, LPCSTR lpCursorName);
BOOL GetUserNameA(LPSTR lpBuffer, LPDWORD pcbBuffer);
void GetLocalTime(LPSYSTEMTIME lpSystemTime);
long __cdecl _findfirst(const char *, struct _finddata_t *);
int __cdecl _findnext(long, struct _finddata_t *);
HICON LoadIconA(HINSTANCE hInstance, LPCSTR lpIconName);
HANDLE LoadImageA(HINSTANCE hInst, LPCSTR name, UINT type, int cx, int cy, UINT fuLoad);
BOOL SHGetPathFromIDListA(PCIDLIST_ABSOLUTE pidl, LPSTR pszPath);
HINSTANCE ShellExecuteA(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);
int GetClassName(HWND hWnd, LPTSTR lpClassName, int nMaxCount);
typedef LONG(WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(
struct _EXCEPTION_POINTERS *ExceptionInfo);
typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
HMODULE GetModuleHandleA(LPCSTR lpModuleName);
uintptr_t __cdecl _beginthreadex(void *_Security, unsigned _StackSize, unsigned(__stdcall *_StartAddress)(void *),
void *_ArgList, unsigned _InitFlag, unsigned *_ThrdAddr);
HANDLE WINAPI GetCurrentThread(VOID);
DWORD WINAPI GetCurrentThreadId(VOID);
WINBOOL WINAPI SetThreadPriority(HANDLE hThread, int nPriority);
VOID WINAPI Sleep(DWORD dwMilliseconds);
VOID WINAPI GetSystemInfo(LPSYSTEM_INFO lpSystemInfo);
HDC WINAPI GetDC(HWND hWnd);
int WINAPI ReleaseDC(HWND hWnd, HDC hDC);
WINBOOL WINAPI TextOutA(HDC hdc, int x, int y, LPCSTR lpString, int c);
int WINAPI GetDeviceCaps(HDC hdc, int index);
BOOL GetWindowRect(HWND hDlg, tagRECT *Rect);
UINT WINAPI GetSystemPaletteEntries(HDC hdc, UINT iStart, UINT cEntries, LPPALETTEENTRY pPalEntries);
int WINAPIV wsprintfA(LPSTR, LPCSTR, ...);
int WINAPIV wvsprintfA(LPSTR dest, LPCSTR format, va_list arglist);
int __cdecl _strcmpi(const char *_Str1, const char *_Str2);
char *__cdecl _itoa(int _Value, char *_Dest, int _Radix);
char *__cdecl _strlwr(char *str);
//
// File I/O
//
typedef struct _WIN32_FIND_DATAA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
CHAR cFileName[DVL_MAX_PATH];
CHAR cAlternateFileName[14];
DWORD dwFileType;
DWORD dwCreatorType;
WORD wFinderFlags;
} WIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
typedef void *LPOVERLAPPED;
typedef struct _IMAGE_FILE_HEADER {
WORD Machine;
WORD NumberOfSections;
DWORD TimeDateStamp;
DWORD PointerToSymbolTable;
DWORD NumberOfSymbols;
WORD SizeOfOptionalHeader;
WORD Characteristics;
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
typedef BOOL(CALLBACK *DLGPROC)(HWND, UINT, WPARAM, LPARAM);
typedef struct _IMAGE_OPTIONAL_HEADER {
WORD Magic;
BYTE MajorLinkerVersion;
BYTE MinorLinkerVersion;
DWORD SizeOfCode;
DWORD SizeOfInitializedData;
DWORD SizeOfUninitializedData;
DWORD AddressOfEntryPoint;
DWORD BaseOfCode;
DWORD BaseOfData;
DWORD ImageBase;
DWORD SectionAlignment;
DWORD FileAlignment;
WORD MajorOperatingSystemVersion;
WORD MinorOperatingSystemVersion;
WORD MajorImageVersion;
WORD MinorImageVersion;
WORD MajorSubsystemVersion;
WORD MinorSubsystemVersion;
DWORD Win32VersionValue;
DWORD SizeOfImage;
DWORD SizeOfHeaders;
DWORD CheckSum;
WORD Subsystem;
WORD DllCharacteristics;
DWORD SizeOfStackReserve;
DWORD SizeOfStackCommit;
DWORD SizeOfHeapReserve;
DWORD SizeOfHeapCommit;
DWORD LoaderFlags;
DWORD NumberOfRvaAndSizes;
} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;
typedef struct _IMAGE_NT_HEADERS {
DWORD Signature;
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER32 OptionalHeader;
} IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS;
typedef struct _IMAGE_DOS_HEADER {
WORD e_magic;
WORD e_cblp;
WORD e_cp;
WORD e_crlc;
WORD e_cparhdr;
WORD e_minalloc;
WORD e_maxalloc;
WORD e_ss;
WORD e_sp;
WORD e_csum;
WORD e_ip;
WORD e_cs;
WORD e_lfarlc;
WORD e_ovno;
WORD e_res[4];
WORD e_oemid;
WORD e_oeminfo;
WORD e_res2[10];
LONG e_lfanew;
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
typedef struct _OFSTRUCT {
BYTE cBytes;
BYTE fFixedDisk;
WORD nErrCode;
WORD Reserved1;
WORD Reserved2;
CHAR szPathName[DVL_OFS_MAXPATHNAME];
} OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT;
typedef struct _OSVERSIONINFOA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[128];
} OSVERSIONINFO, *LPOSVERSIONINFOA;
typedef struct _IMAGE_SECTION_HEADER {
union {
DWORD PhysicalAddress;
DWORD VirtualSize;
} Misc;
DWORD VirtualAddress;
DWORD SizeOfRawData;
DWORD PointerToRawData;
DWORD PointerToRelocations;
DWORD PointerToLinenumbers;
WORD NumberOfRelocations;
WORD NumberOfLinenumbers;
DWORD Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
BOOL GetVersionExA(LPOSVERSIONINFOA lpVersionInformation);
void lstrcpynA(LPSTR lpString1, LPCSTR lpString2, int iMaxLength);
typedef struct _PROCESS_INFORMATION {
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
typedef void *LPSTARTUPINFOA;
WINBOOL WINAPI CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes, WINBOOL bInheritHandles, DWORD dwCreationFlags,
LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation);
VOID WINAPI ExitProcess(UINT uExitCode);
DWORD WINAPI GetCurrentProcessId(VOID);
HANDLE WINAPI CreateFileMappingA(HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect,
DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCSTR lpName);
LPVOID WINAPI MapViewOfFile(HANDLE hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh,
DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap);
WINBOOL WINAPI UnmapViewOfFile(LPCVOID lpBaseAddress);
LPVOID VirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect);
BOOL VirtualFree(LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType);
DWORD WINAPI WaitForInputIdle(HANDLE hProcess, DWORD dwMilliseconds);
HWND WINAPI GetForegroundWindow(VOID);
HWND WINAPI GetWindow(HWND hWnd, UINT uCmd);
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, LPDWORD lpdwProcessId);
DWORD WINAPI GetPrivateProfileStringA(LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpDefault, LPSTR lpReturnedString,
DWORD nSize, LPCSTR lpFileName);
int MessageBoxA(HWND hWnd, const char *Text, const char *Title, UINT Flags);
typedef LONG LSTATUS, HKEY, REGSAM, PHKEY;
LSTATUS RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
LSTATUS RegQueryValueExA(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, BYTE *lpData, LPDWORD lpcbData);
LSTATUS RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, const BYTE *lpData, DWORD cbData);
LSTATUS RegCloseKeyA(HKEY hKey);
void PostQuitMessage(int nExitCode);
LRESULT DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
LONG GetWindowLongA(HWND hWnd, int nIndex);
LONG SetWindowLongA(HWND hWnd, int nIndex, LONG dwNewLong);
WINBOOL WINAPI WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped);
DWORD WINAPI SetFilePointer(HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod);
WINBOOL WINAPI SetEndOfFile(HANDLE hFile);
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName);
WINBOOL WINAPI SetFileAttributesA(LPCSTR lpFileName, DWORD dwFileAttributes);
HANDLE WINAPI FindFirstFileA(LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData);
BOOL FindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData);
WINBOOL WINAPI FindClose(HANDLE hFindFile);
HANDLE WINAPI CreateFileA(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
WINBOOL WINAPI ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped);
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh);
UINT WINAPI GetWindowsDirectoryA(LPSTR lpBuffer, UINT uSize);
DWORD GetCurrentDirectory(DWORD nBufferLength, LPTSTR lpBuffer);
DWORD GetLogicalDriveStringsA(DWORD nBufferLength, LPSTR lpBuffer);
UINT GetDriveTypeA(LPCSTR lpRootPathName);
WINBOOL WINAPI GetDiskFreeSpaceA(LPCSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector,
LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters);
DWORD WINAPI GetModuleFileNameA(HMODULE hModule, LPSTR lpFilename, DWORD nSize);
WINBOOL WINAPI GetComputerNameA(LPSTR lpBuffer, LPDWORD nSize);
DWORD GetFileVersionInfoSizeA(LPCSTR lptstrFilename, LPDWORD lpdwHandle);
BOOL GetFileVersionInfoA(LPCSTR lptstrFilename, DWORD dwHandle, DWORD dwLen, LPVOID lpData);
BOOL VerQueryValueA(LPCVOID pBlock, LPCSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen);
WINBOOL WINAPI DeleteFileA(LPCSTR lpFileName);
WINBOOL WINAPI CopyFileA(LPCSTR lpExistingFileName, LPCSTR lpNewFileName, WINBOOL bFailIfExists);
HFILE WINAPI OpenFile(LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle);
typedef struct _CONTEXT {
//
// The flags values within this flag control the contents of
// a CONTEXT record.
//
// If the context record is used as an input parameter, then
// for each portion of the context record controlled by a flag
// whose value is set, it is assumed that that portion of the
// context record contains valid context. If the context record
// is being used to modify a threads context, then only that
// portion of the threads context will be modified.
//
// If the context record is used as an IN OUT parameter to capture
// the context of a thread, then only those portions of the thread's
// context corresponding to set flags will be returned.
//
// The context record is never used as an OUT only parameter.
//
DWORD ContextFlags;
//
// This section is specified/returned if CONTEXT_DEBUG_REGISTERS is
// set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT
// included in CONTEXT_FULL.
//
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr6;
DWORD Dr7;
//
// This section is specified/returned if the
// ContextFlags word contians the flag CONTEXT_SEGMENTS.
//
DWORD SegGs;
DWORD SegFs;
DWORD SegEs;
DWORD SegDs;
//
// This section is specified/returned if the
// ContextFlags word contians the flag CONTEXT_INTEGER.
//
DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;
//
// This section is specified/returned if the
// ContextFlags word contians the flag CONTEXT_CONTROL.
//
DWORD Ebp;
DWORD Eip;
DWORD SegCs; // MUST BE SANITIZED
DWORD EFlags; // MUST BE SANITIZED
DWORD Esp;
DWORD SegSs;
} CONTEXT;
typedef CONTEXT *PCONTEXT;
//
// Exception record definition.
//
typedef struct _EXCEPTION_RECORD {
DWORD ExceptionCode;
DWORD ExceptionFlags;
struct _EXCEPTION_RECORD *ExceptionRecord;
PVOID ExceptionAddress;
DWORD NumberParameters;
} EXCEPTION_RECORD;
typedef EXCEPTION_RECORD *PEXCEPTION_RECORD;
typedef struct _EXCEPTION_POINTERS {
PEXCEPTION_RECORD ExceptionRecord;
PCONTEXT ContextRecord;
} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;
typedef struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress;
PVOID AllocationBase;
DWORD AllocationProtect;
SIZE_T RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION;
//
// Total fakes
//
typedef struct {
} SOCKADDR, GUID, *LPGUID;
typedef struct {
DWORD cb;
} STARTUPINFOA;
BOOL IsBadReadPtr(const VOID *lp, UINT_PTR ucb);
BOOL IsBadWritePtr(LPVOID lp, UINT_PTR ucb);
SIZE_T VirtualQuery(LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength);
//
// MSCVRT emulation
//
extern void LoadCharNames();
extern void LoadAndPlaySound(char *FilePath, int lVolume, int lPan);
extern void DrawArtWithMask(int SX, int SY, int SW, int SH, int nFrame, BYTE bMask, void *pBuffer);
extern BOOL __cdecl LoadArtWithPal(char *pszFile, void **pBuffer, int frames, DWORD *data);
}

4
SourceS/miniwin_rand.h

@ -1,4 +1,8 @@
#pragma once
namespace dvl {
int rand(void);
void srand(unsigned int seed);
}

4
SourceS/miniwin_thread.h

@ -1,7 +1,11 @@
#pragma once
namespace dvl {
typedef void *CRITICAL_SECTION, **LPCRITICAL_SECTION;
VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
VOID WINAPI EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
VOID WINAPI LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
VOID WINAPI DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
}

4
SourceS/miniwin_ui.h

@ -1,8 +1,12 @@
#pragma once
namespace dvl {
BOOL EndDialog(HWND hDlg, INT_PTR nResult);
BOOL SetDlgItemText(HWND hDlg, int nIDDlgItem, LPCSTR lpString);
BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags);
DWORD FormatMessage(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, char *lpBuffer, DWORD nSize, va_list *Arguments);
int DialogBoxParam(HINSTANCE hInstance, LPCSTR msgId, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);
LPCSTR MAKEINTRESOURCE(int i);
}

4
SourceX/DiabloUI/credits.cpp

@ -2,6 +2,8 @@
#define CREDIT_LINES 13
namespace dvl {
int creditLine;
int ybase;
int lastYbase;
@ -557,3 +559,5 @@ BOOL __stdcall UiCreditsDialog(int a1)
return TRUE;
}
}

4
SourceX/DiabloUI/diabloui.cpp

@ -1,6 +1,8 @@
#include "pch.h"
#include <iconv.h>
namespace dvl {
TTF_Font *font;
int SelectedItemMin = 1;
int SelectedItemMax = 1;
@ -823,3 +825,5 @@ void DrawMouse()
DrawArt(MouseX, MouseY, &ArtCursor);
}
}

4
SourceX/DiabloUI/diabloui.h

@ -3,6 +3,8 @@
#include <SDL.h>
#include <SDL_ttf.h>
namespace dvl {
typedef enum _artFocus {
FOCUS_SMALL,
FOCUS_MED,
@ -115,3 +117,5 @@ void UiInitList(int min, int max, void(__stdcall *fnFocus)(int value), void(__st
void UiRender();
void UiRenderItems(UI_Item *items, int size);
void WordWrap(UI_Item *item);
}

4
SourceX/DiabloUI/dialogs.cpp

@ -1,5 +1,7 @@
#include "pch.h"
namespace dvl {
UI_Item OKCANCEL_DIALOG[] = {
{ { 180, 168, 280, 144 }, UI_IMAGE, 0, 0, "ui_art\\spopup.pcx" },
{ { 200, 180, 240, 80 }, UI_TEXT, UIS_CENTER }, // message
@ -35,3 +37,5 @@ UI_Item SPAWNERR_DIALOG[] = {
{ { 140, 199, 400, 177 }, UI_TEXT, 0, 0, "The Rogue and Sorcerer are only available in the full retail version of Diablo. For ordering information call (800) 953-SNOW." },
{ { 230, 407, 180, 43 }, UI_BUTTON, 0, 0, "OK" },
};
}

4
SourceX/DiabloUI/mainmenu.cpp

@ -1,5 +1,7 @@
#include "pch.h"
namespace dvl {
int MainMenuResult;
UI_Item MAINMENU_DIALOG[] = {
{ { 0, 0, 640, 480 }, UI_IMAGE, 0, 0, NULL, &ArtBackground },
@ -56,3 +58,5 @@ BOOL __stdcall UiMainMenuDialog(char *name, int *pdwResult, void(__stdcall *fnSo
*pdwResult = MainMenuResult;
return TRUE;
}
}

4
SourceX/DiabloUI/progress.cpp

@ -1,5 +1,7 @@
#include "pch.h"
namespace dvl {
Art ArtPopupSm;
Art ArtProgBG;
Art ProgFil;
@ -107,3 +109,5 @@ int __stdcall UiProgressDialog(HWND window, char *msg, int enable, int(__cdecl *
return progress == 100;
}
}

4
SourceX/DiabloUI/selconn.cpp

@ -1,6 +1,8 @@
#include "pch.h"
#include "selconn.h"
namespace dvl {
char selconn_MaxPlayers[21];
char selconn_Description[64];
char selconn_Gateway[129];
@ -120,3 +122,5 @@ int __stdcall UiSelectProvider(
return selconn_ReturnValue;
}
}

4
SourceX/DiabloUI/selconn.h

@ -1,3 +1,7 @@
namespace dvl {
void selconn_Esc();
void selconn_Focus(int value);
void selconn_Select(int value);
}

4
SourceX/DiabloUI/selgame.cpp

@ -1,6 +1,8 @@
#include "pch.h"
#include "selgame.h"
namespace dvl {
char selgame_Lable[32];
char selgame_Ip[129] = "";
char selgame_Password[16] = "";
@ -221,3 +223,5 @@ int __stdcall UiSelectGame(int a1, _SNETPROGRAMDATA *client_info, _SNETPLAYERDAT
return selgame_enteringGame;
}
}

6
SourceX/DiabloUI/selgame.h

@ -1,3 +1,7 @@
#pragma once
namespace dvl {
void selgame_GameSelection_Init();
void selgame_GameSelection_Focus(int value);
void selgame_GameSelection_Select(int value);
@ -8,3 +12,5 @@ void selgame_Diff_Esc();
void selgame_Password_Init(int value);
void selgame_Password_Select(int value);
void selgame_Password_Esc();
}

4
SourceX/DiabloUI/selhero.cpp

@ -1,6 +1,8 @@
#include "pch.h"
#include "selhero.h"
namespace dvl {
int selhero_SaveCount = 0;
_uiheroinfo heros[MAX_CHARACTERS];
_uiheroinfo heroInfo;
@ -278,3 +280,5 @@ BOOL __stdcall UiSelHeroMultDialog(
isMultiPlayer = true;
return UiSelHeroDialog(fninfo, fncreate, fnstats, dlgresult, name);
}
}

6
SourceX/DiabloUI/selhero.h

@ -1,3 +1,7 @@
#pragma once
namespace dvl {
void selhero_List_Init();
void selhero_List_Focus(int value);
void selhero_List_Select(int value);
@ -9,3 +13,5 @@ void selhero_Name_Select(int value);
void selhero_Name_Esc();
void selhero_Load_Focus(int value);
void selhero_Load_Select(int value);
}

4
SourceX/DiabloUI/title.cpp

@ -1,5 +1,7 @@
#include "pch.h"
namespace dvl {
void title_Load()
{
LoadBackgroundArt("ui_art\\title.pcx");
@ -55,3 +57,5 @@ BOOL __stdcall UiTitleDialog(int a1)
return TRUE;
}
}

3
SourceX/dvlnet/abstract_net.cpp

@ -5,7 +5,7 @@
#include "dvlnet/udp_p2p.h"
#include "dvlnet/loopback.h"
using namespace dvlnet;
namespace dvl { namespace net {
abstract_net::~abstract_net()
{
@ -24,3 +24,4 @@ std::unique_ptr<abstract_net> abstract_net::make_net(provider_t provider)
}
}
}}

4
SourceX/dvlnet/abstract_net.h

@ -7,7 +7,7 @@
#include "devilution.h"
namespace dvlnet {
namespace dvl { namespace net {
typedef std::vector<unsigned char> buffer_t;
typedef void(__stdcall *snet_event_func)(struct _SNETEVENT*);
typedef unsigned long provider_t;
@ -38,5 +38,5 @@ namespace dvlnet {
static std::unique_ptr<abstract_net> make_net(provider_t provider);
};
}
}}

4
SourceX/dvlnet/base.cpp

@ -2,7 +2,7 @@
#include <algorithm>
using namespace dvlnet;
namespace dvl { namespace net {
void base::setup_gameinfo(buffer_t info)
{
@ -253,3 +253,5 @@ bool base::SNetGetTurnsInTransit(int *turns)
*turns = turn_queue[plr_self].size();
return true;
}
}}

4
SourceX/dvlnet/base.h

@ -18,7 +18,7 @@
#define LEAVE_ENDING 0x40000004
#define LEAVE_DROP 0x40000006
namespace dvlnet {
namespace dvl { namespace net {
class base : public abstract_net {
public:
virtual int create(std::string addrstr, std::string passwd) = 0;
@ -74,4 +74,4 @@ namespace dvlnet {
plr_t get_owner();
void clear_msg(plr_t plr);
};
}
}}

4
SourceX/dvlnet/frame_queue.cpp

@ -2,7 +2,7 @@
#include "dvlnet/packet.h"
using namespace dvlnet;
namespace dvl { namespace net {
size_t frame_queue::size()
{
@ -74,3 +74,5 @@ buffer_t frame_queue::make_frame(buffer_t packetbuf)
ret.insert(ret.end(), packetbuf.begin(), packetbuf.end());
return std::move(ret);
}
}}

4
SourceX/dvlnet/frame_queue.h

@ -4,7 +4,7 @@
#include "dvlnet/abstract_net.h"
namespace dvlnet {
namespace dvl { namespace net {
class frame_queue_exception : public dvlnet_exception {};
class frame_queue {
@ -25,4 +25,4 @@ namespace dvlnet {
static buffer_t make_frame(buffer_t packetbuf);
};
}
}}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save