You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2224 lines
112 KiB

#pragma once
// clang-format off
extern "C" {
extern char __start_text, __end_text;
extern char __start_rdata, __end_rdata;
extern char __start_data, __end_data;
extern char __start_bss, __end_bss;
extern void* imp_RegSetValueExA;
extern void* imp_RegQueryValueExA;
extern void* imp_RegCloseKey;
extern void* imp_GetUserNameA;
extern void* imp_RegOpenKeyExA;
extern void* imp_UiValidPlayerName;
extern void* imp_UiSelHeroSingDialog;
extern void* imp_UiCreditsDialog;
extern void* imp_UiMainMenuDialog;
extern void* imp_UiProgressDialog;
extern void* imp_UiProfileGetString;
extern void* imp_UiProfileCallback;
extern void* imp_UiProfileDraw;
extern void* imp_UiCategoryCallback;
extern void* imp_UiAppActivate;
extern void* imp_UiSelHeroMultDialog;
extern void* imp_UiSoundCallback;
extern void* imp_UiMessageBoxCallback;
extern void* imp_UiDestroy;
extern void* imp_UiCreateGameCallback;
extern void* imp_UiArtCallback;
extern void* imp_UiSelectGame;
extern void* imp_UiSelectProvider;
extern void* imp_UiCreatePlayerDescription;
extern void* imp_UiSetupPlayerInfo;
extern void* imp_UiTitleDialog;
extern void* imp_UiCopyProtError;
extern void* imp_UiInitialize;
extern void* imp_UiGetDataCallback;
extern void* imp_UiAuthCallback;
extern void* imp_UiDrawDescCallback;
extern void* imp_GetSystemPaletteEntries;
extern void* imp_GetStockObject;
extern void* imp_GdiSetBatchLimit;
extern void* imp_GetDeviceCaps;
extern void* imp_SetEndOfFile;
extern void* imp_TlsSetValue;
extern void* imp_lstrcpynA;
extern void* imp_IsBadWritePtr;
extern void* imp_SetLastError;
extern void* imp_SetEnvironmentVariableA;
extern void* imp_CompareStringW;
extern void* imp_CompareStringA;
extern void* imp_GetLocaleInfoW;
extern void* imp_RaiseException;
extern void* imp_FlushFileBuffers;
extern void* imp_SetStdHandle;
extern void* imp_GetLocaleInfoA;
extern void* imp_GetStringTypeW;
extern void* imp_GetStringTypeA;
extern void* imp_HeapCreate;
extern void* imp_HeapDestroy;
extern void* imp_GetFileType;
extern void* imp_GetStdHandle;
extern void* imp_SetHandleCount;
extern void* imp_GetOEMCP;
extern void* imp_GetACP;
extern void* imp_GetCPInfo;
extern void* imp_GetEnvironmentStringsW;
extern void* imp_GetEnvironmentStrings;
extern void* imp_FreeEnvironmentStringsW;
extern void* imp_FreeEnvironmentStringsA;
extern void* imp_RtlUnwind;
extern void* imp_UnhandledExceptionFilter;
extern void* imp_HeapFree;
extern void* imp_HeapSize;
extern void* imp_HeapAlloc;
extern void* imp_HeapReAlloc;
extern void* imp_LCMapStringW;
extern void* imp_LCMapStringA;
extern void* imp_WideCharToMultiByte;
extern void* imp_MultiByteToWideChar;
extern void* imp_TlsGetValue;
extern void* imp_TlsAlloc;
extern void* imp_GetVersion;
extern void* imp_FormatMessageA;
extern void* imp_GetLastError;
extern void* imp_ExitProcess;
extern void* imp_Sleep;
extern void* imp_GetCurrentThreadId;
extern void* imp_DeleteFileA;
extern void* imp_CloseHandle;
extern void* imp_WriteFile;
extern void* imp_CreateFileA;
extern void* imp_GetCurrentThread;
extern void* imp_SetThreadPriority;
extern void* imp_CreateEventA;
extern void* imp_GetSystemTime;
extern void* imp_GetTickCount;
extern void* imp_GetModuleFileNameA;
extern void* imp_GetCurrentProcessId;
extern void* imp_InterlockedIncrement;
extern void* imp_UnmapViewOfFile;
extern void* imp_CreateProcessA;
extern void* imp_MapViewOfFile;
extern void* imp_CreateFileMappingA;
extern void* imp_GetSystemInfo;
extern void* imp_GetPrivateProfileStringA;
extern void* imp_InitializeCriticalSection;
extern void* imp_DeleteCriticalSection;
extern void* imp_LeaveCriticalSection;
extern void* imp_EnterCriticalSection;
extern void* imp_SetEvent;
extern void* imp_ResetEvent;
extern void* imp_WaitForSingleObject;
extern void* imp_GetProcAddress;
extern void* imp_LoadLibraryA;
extern void* imp_IsBadReadPtr;
extern void* imp_GetModuleHandleA;
extern void* imp_VirtualQuery;
extern void* imp_GetFileAttributesA;
extern void* imp_ReadFile;
extern void* imp_SetUnhandledExceptionFilter;
extern void* imp_FindClose;
extern void* imp_FindNextFileA;
extern void* imp_FindFirstFileA;
extern void* imp_GetCurrentDirectoryA;
extern void* imp_GetDriveTypeA;
extern void* imp_GetLogicalDriveStringsA;
extern void* imp_SetFilePointer;
extern void* imp_GetCommandLineA;
extern void* imp_GetFileSize;
extern void* imp_VirtualFree;
extern void* imp_VirtualAlloc;
extern void* imp_GetLocalTime;
extern void* imp_SetFileAttributesA;
extern void* imp_TerminateProcess;
extern void* imp_GetCurrentProcess;
extern void* imp_GetWindowsDirectoryA;
extern void* imp_GetDiskFreeSpaceA;
extern void* imp_CopyFileA;
extern void* imp_OpenFile;
extern void* imp_GetComputerNameA;
extern void* imp_GetVersionExA;
extern void* imp_InterlockedDecrement;
extern void* imp_FileTimeToSystemTime;
extern void* imp_FileTimeToLocalFileTime;
extern void* imp_ExitThread;
extern void* imp_CreateThread;
extern void* imp_GetStartupInfoA;
extern void* imp_GetTimeZoneInformation;
extern void* imp_ShellExecuteA;
extern void* imp_SHGetSpecialFolderLocation;
extern void* imp_SHGetPathFromIDListA;
extern void* imp_SFileGetFileArchive;
extern void* imp_SFileDdaSetVolume;
extern void* imp_SFileDdaEnd;
extern void* imp_SVidDestroy;
extern void* imp_SFileDdaDestroy;
extern void* imp_SVidInitialize;
extern void* imp_SFileDdaInitialize;
extern void* imp_SFileOpenFileEx;
extern void* imp_SFileGetFileSize;
extern void* imp_SFileReadFile;
extern void* imp_SFileSetFilePointer;
extern void* imp_SRegSaveString;
extern void* imp_SDrawUpdatePalette;
extern void* imp_SNetGetProviderCaps;
extern void* imp_SNetReceiveTurns;
extern void* imp_SNetGetTurnsInTransit;
extern void* imp_SNetSendTurn;
extern void* imp_SNetPerformUpgrade;
extern void* imp_SNetInitializeProvider;
extern void* imp_SNetCreateGame;
extern void* imp_SDrawGetFrameWindow;
extern void* imp_SFileOpenFile;
extern void* imp_SNetGetGameInfo;
extern void* imp_SNetRegisterEventHandler;
extern void* imp_SNetUnregisterEventHandler;
extern void* imp_SNetReceiveMessage;
extern void* imp_SNetSendMessage;
extern void* imp_SNetSendServerChatCommand;
extern void* imp_SNetDropPlayer;
extern void* imp_SNetGetOwnerTurnsWaiting;
extern void* imp_SErrGetLastError;
extern void* imp_SRegSaveData;
extern void* imp_SRegLoadData;
extern void* imp_SVidPlayBegin;
extern void* imp_SVidPlayContinue;
extern void* imp_SVidPlayEnd;
extern void* imp_SErrSetLastError;
extern void* imp_SStrCopy;
extern void* imp_SDrawRealizePalette;
extern void* imp_SFileSetBasePath;
extern void* imp_SFileOpenArchive;
extern void* imp_SRegLoadString;
extern void* imp_SFileCloseArchive;
extern void* imp_SNetSetBasePlayer;
extern void* imp_StormDestroy;
extern void* imp_SFileDdaGetPos;
extern void* imp_SFileDdaBeginEx;
extern void* imp_SMemAlloc;
extern void* imp_SErrGetErrorStr;
extern void* imp_SMemFree;
extern void* imp_SNetLeaveGame;
extern void* imp_SDrawMessageBox;
extern void* imp_SNetDestroy;
extern void* imp_SRegLoadValue;
extern void* imp_SDrawManualInitialize;
extern void* imp_SRegSaveValue;
extern void* imp_SFileCloseFile;
extern void* imp_SDrawDestroy;
extern void* imp_DestroyWindow;
extern void* imp_SetFocus;
extern void* imp_SetForegroundWindow;
extern void* imp_GetTopWindow;
extern void* imp_TranslateMessage;
extern void* imp_DispatchMessageA;
extern void* imp_GetLastActivePopup;
extern void* imp_GetWindowThreadProcessId;
extern void* imp_GetWindow;
extern void* imp_GetForegroundWindow;
extern void* imp_WaitForInputIdle;
extern void* imp_SetCapture;
extern void* imp_GetSystemMetrics;
extern void* imp_FindWindowA;
extern void* imp_SetCursorPos;
extern void* imp_UpdateWindow;
extern void* imp_CreateWindowExA;
extern void* imp_RegisterClassExA;
extern void* imp_ShowCursor;
extern void* imp_LoadCursorA;
extern void* imp_LoadIconA;
extern void* imp_PostMessageA;
extern void* imp_GetClassNameA;
extern void* imp_DefWindowProcA;
extern void* imp_PostQuitMessage;
extern void* imp_SetWindowLongA;
extern void* imp_GetWindowLongA;
extern void* imp_InvalidateRect;
extern void* imp_ReleaseCapture;
extern void* imp_PeekMessageA;
extern void* imp_DialogBoxParamA;
extern void* imp_SetDlgItemTextA;
extern void* imp_EndDialog;
extern void* imp_ReleaseDC;
extern void* imp_GetWindowRect;
extern void* imp_GetDC;
extern void* imp_ShowWindow;
extern void* imp_GetDesktopWindow;
extern void* imp_LoadImageA;
extern void* imp_wvsprintfA;
extern void* imp_SetWindowPos;
extern void* imp_MessageBoxA;
extern void* imp_wsprintfA;
extern void* imp_GetFileVersionInfoA;
extern void* imp_GetFileVersionInfoSizeA;
extern void* imp_VerQueryValueA;
void d_j_appfat_cpp_init(...); // Unknown signature
void d_appfat_cpp_init(...); // Unknown signature
void d_appfat_cpp_free(...); // Unknown signature
char * __fastcall d_GetErrorStr(int error_code);
void __fastcall d_TraceErrorDD(int error_code,char * error_buf,int error_buf_len);
void __fastcall d_TraceErrorDS(int error_code,char * error_buf,int error_buf_len);
char * __cdecl d_TraceLastError();
void d_TermMsg(char * pszFmt,...);
void __fastcall d_MsgBox(char * pszFmt,va_list va);
void __cdecl d_FreeDlg();
void d_DrawDlg(char * pszFmt,...);
void __fastcall d_DDErrMsg(int error_code,int log_line_nr,char * log_file_path);
void __fastcall d_DSErrMsg(int error_code,int log_line_nr,char * log_file_path);
void __fastcall d_center_window(HWND hDlg);
void __fastcall d_ErrDlg(int template_id,int error_code,char * log_file_path,int log_line_nr);
BOOL __stdcall d_FuncDlg(HWND hDlg,UINT uMsg,WPARAM wParam,char * text);
void __fastcall d_TextDlg(HWND hDlg,char * text);
void __fastcall d_ErrOkDlg(int template_id,int error_code,char * log_file_path,int log_line_nr);
void __fastcall d_FileErrDlg(char * error);
void __fastcall d_DiskFreeDlg(char * error);
bool __cdecl d_InsertCDDlg();
void __fastcall d_DirErrorDlg(char * error);
void __cdecl d_InitAutomapOnce();
void __cdecl d_InitAutomap();
void __cdecl d_StartAutomap();
void __cdecl d_AutomapUp();
void __cdecl d_AutomapDown();
void __cdecl d_AutomapLeft();
void __cdecl d_AutomapRight();
void __cdecl d_AutomapZoomIn();
void __cdecl d_AutomapZoomOut();
void __cdecl d_DrawAutomap();
void __fastcall d_DrawAutomapType(int screen_x,int screen_y,short automap_type);
void __cdecl d_DrawAutomapPlr();
short __fastcall d_GetAutomapType(int x,int y,BOOL view);
void __cdecl d_DrawAutomapGame();
void __fastcall d_SetAutomapView(int x,int y);
void __cdecl d_AutomapZoomReset();
void __cdecl d_CaptureScreen();
bool __fastcall d_CaptureHdr(HANDLE hFile,short width,short height);
bool __fastcall d_CapturePal(HANDLE hFile,PALETTEENTRY * palette);
bool __fastcall d_CapturePix(HANDLE hFile,WORD width,WORD height,WORD stride,BYTE * pixels);
BYTE * __fastcall d_CaptureEnc(BYTE * src,BYTE * dst,int width);
HANDLE __fastcall d_CaptureFile(char * dst_path);
void __fastcall d_RedPalette(PALETTEENTRY * pal);
int __fastcall d_codec_decode(void * pbSrcDst,int size,char * pszPassword);
void d_j_sha1_reset(...); // Unknown signature
void __fastcall d_codec_init_key(int unused,char * pszPassword);
int __fastcall d_codec_get_encoded_len(int dwSrcBytes);
void __fastcall d_codec_encode(void * pbSrcDst,int size,int size_64,char * pszPassword);
void __fastcall d_DrawSpellCel(int xp,int yp,char * Trans,int nCel,int w);
void __fastcall d_SetSpellTrans(char t);
void __cdecl d_DrawSpell();
void __cdecl d_DrawSpellList();
void __cdecl d_SetSpell();
void __fastcall d_SetSpeedSpell(int slot);
void __fastcall d_ToggleSpell(int slot);
void __fastcall d_CPrintString(int No,unsigned char pszStr,int Just);
void __fastcall d_AddPanelString(char * str,int just);
void __cdecl d_ClearPanel();
void __fastcall d_DrawPanelBox(int x,int y,int w,int h,int sx,int sy);
void __cdecl d_InitPanelStr();
void __fastcall d_SetFlaskHeight(char * buf,int min,int max,int c,int r);
void __fastcall d_DrawFlask(void * a1,int a2,int a3,void * a4,int a5,int a6);
void __cdecl d_DrawLifeFlask();
void __cdecl d_UpdateLifeFlask();
void __cdecl d_DrawManaFlask();
void __cdecl d_control_update_life_mana();
void __cdecl d_UpdateManaFlask();
void __cdecl d_InitControlPan();
void __cdecl d_ClearCtrlPan();
void __cdecl d_DrawCtrlPan();
void __cdecl d_DoSpeedBook();
void __cdecl d_DoPanBtn();
void __fastcall d_control_set_button_down(int btn_id);
void __cdecl d_control_check_btn_press();
void __cdecl d_DoAutoMap();
void __cdecl d_CheckPanelInfo();
void __cdecl d_CheckBtnUp();
void __cdecl d_FreeControlPan();
int __fastcall d_control_WriteStringToBuffer(char * str);
void __cdecl d_DrawInfoBox();
void __fastcall d_control_print_info_str(int y,char * str,bool center,int lines);
void __fastcall d_PrintGameStr(int x,int y,char * str,int color);
void __cdecl d_DrawChr();
void __fastcall d_ADD_PlrStringXY(int x,int y,int width,char * pszStr,char col);
void __fastcall d_MY_PlrStringXY(int x,int y,int width,char * pszStr,char col,int base);
void __cdecl d_CheckLvlBtn();
void __cdecl d_ReleaseLvlBtn();
void __cdecl d_DrawLevelUpIcon();
void __cdecl d_CheckChrBtns();
void __cdecl d_ReleaseChrBtns();
void __cdecl d_DrawDurIcon();
int __fastcall d_DrawDurIcon4Item(ItemStruct * pItem,int x,int c);
void __cdecl d_RedBack();
int __fastcall d_GetSBookTrans(int ii,unsigned char townok);
void __cdecl d_DrawSpellBook();
void __fastcall d_PrintSBookStr(int x,int y,bool cjustflag,char * pszStr,int bright);
void __cdecl d_CheckSBook();
char * __fastcall d_get_pieces_str(int nGold);
void __fastcall d_DrawGoldSplit(int amount);
void __fastcall d_control_drop_gold(int vkey);
void __fastcall d_control_remove_gold(int pnum,int gold_index);
void __fastcall d_control_set_gold_curs(int pnum);
void __cdecl d_DrawTalkPan();
char * __fastcall d_control_print_talk_msg(char * msg,int x,int y,int * a4,int just);
int __cdecl d_control_check_talk_btn();
void __cdecl d_control_release_talk_btn();
void __cdecl d_control_reset_talk_msg();
void __cdecl d_control_type_message();
void __cdecl d_control_reset_talk();
int __fastcall d_control_talk_last_key(int a1);
int __fastcall d_control_presskeys(int a1);
void __cdecl d_control_press_enter();
void __fastcall d_control_up_down(char a1);
void __cdecl d_InitCursor();
void __cdecl d_FreeCursor();
void __fastcall d_SetICursor(int i);
void __fastcall d_SetCursor(int i);
void __fastcall d_NewCursor(int i);
void __cdecl d_InitLevelCursor();
void __cdecl d_CheckTown();
void __cdecl d_CheckRportal();
void __cdecl d_CheckCursMove();
void __cdecl d_InitDead();
void __fastcall d_AddDead(int dx,int dy,char dv,int ddir);
void __cdecl d_SetDead();
void __cdecl d_LoadDebugGFX();
void __cdecl d_FreeDebugGFX();
void __cdecl d_CheckDungeonClear();
void d_j_diablo_cpp_init(...); // Unknown signature
void __cdecl d_diablo_cpp_init();
void __cdecl d_FreeGameMem();
int __fastcall d_diablo_init_menu(int a1,int bSinglePlayer);
void __fastcall d_run_game_loop(int uMsg);
void __fastcall d_start_game(int uMsg);
void __cdecl d_free_game();
bool __cdecl d_diablo_get_not_running();
int __stdcall d_WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd);
void __fastcall d_diablo_parse_flags(char * args);
void __cdecl d_diablo_init_screen();
BOOL __fastcall d_diablo_find_window(LPCSTR lpClassName);
void __fastcall d_diablo_reload_process(HMODULE hModule);
int __cdecl d_PressEscKey();
LRESULT __stdcall d_DisableInputWndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
LRESULT __stdcall d_GM_Game(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
bool __fastcall d_LeftMouseDown(int a1);
bool __cdecl d_TryIconCurs();
void __cdecl d_LeftMouseUp();
void __cdecl d_RightMouseDown();
void d_j_gmenu_run_item(...); // Unknown signature
bool __fastcall d_PressSysKey(int wParam);
void __fastcall d_diablo_hotkey_msg(int dwMsg);
void __fastcall d_ReleaseKey(int vkey);
void __fastcall d_PressKey(int vkey);
void __cdecl d_diablo_pause_game();
void __fastcall d_PressChar(int vkey);
void __cdecl d_LoadLvlGFX();
void __cdecl d_LoadAllGFX();
void __fastcall d_CreateLevel(int lvldir);
void __fastcall d_LoadGameLevel(BOOL firstflag,int lvldir);
void __fastcall d_game_loop(bool bStartup);
void __cdecl d_game_logic();
void __fastcall d_timeout_cursor(bool bTimeout);
void __cdecl d_diablo_color_cyc_logic();
int __cdecl d_doom_get_frame_from_time();
void __cdecl d_doom_alloc_cel();
void __cdecl d_doom_cleanup();
void __cdecl d_doom_load_graphics();
void __cdecl d_doom_init();
void __cdecl d_doom_close();
void __cdecl d_doom_draw();
void __cdecl d_DRLG_Init_Globals();
void __fastcall d_LoadL1Dungeon(char * sFileName,int vx,int vy);
void __cdecl d_DRLG_L1Floor();
void __cdecl d_DRLG_L1Pass3();
void __cdecl d_DRLG_InitL1Vals();
void __fastcall d_LoadPreL1Dungeon(char * sFileName,int vx,int vy);
void __fastcall d_CreateL5Dungeon(int rseed,int entry);
void __cdecl d_DRLG_LoadL1SP();
void __cdecl d_DRLG_FreeL1SP();
void __fastcall d_DRLG_L5(int entry);
void __fastcall d_DRLG_PlaceDoor(int x,int y);
void __cdecl d_DRLG_L1Shadows();
int __fastcall d_DRLG_PlaceMiniSet(const unsigned char * miniset,int tmin,int tmax,int cx,int cy,bool setview,int noquad,int ldir);
void __cdecl d_InitL5Dungeon();
void __cdecl d_L5ClearFlags();
void __cdecl d_L5firstRoom();
void __fastcall d_L5drawRoom(int x,int y,int w,int h);
void __fastcall d_L5roomGen(int x,int y,int w,int h,BOOL dir);
bool __fastcall d_L5checkRoom(int x,int y,int width,int height);
int __cdecl d_L5GetArea();
void __cdecl d_L5makeDungeon();
void __cdecl d_L5makeDmt();
void __cdecl d_L5AddWall();
int __fastcall d_L5HWallOk(int i,int j);
int __fastcall d_L5VWallOk(int i,int j);
void __fastcall d_L5HorizWall(int i,int j,char p,int dx);
void __fastcall d_L5VertWall(int i,int j,char p,int dy);
void __cdecl d_L5tileFix();
void __cdecl d_DRLG_L5Subs();
void __cdecl d_L5FillChambers();
void __fastcall d_DRLG_L5GChamber(int sx,int sy,bool topflag,bool bottomflag,bool leftflag,bool rightflag);
void __fastcall d_DRLG_L5GHall(int x1,int y1,int x2,int y2);
void __fastcall d_DRLG_L5SetRoom(int rx1,int ry1);
void __cdecl d_DRLG_L5FloodTVal();
void __fastcall d_DRLG_L5FTVR(int i,int j,int x,int y,int d);
void __cdecl d_DRLG_L5TransFix();
void __cdecl d_DRLG_L5DirtFix();
void __cdecl d_DRLG_L5CornerFix();
void __cdecl d_InitDungeon();
void __cdecl d_L2LockoutFix();
void __cdecl d_L2DoorFix();
void __fastcall d_LoadL2Dungeon(char * sFileName,int vx,int vy);
void __cdecl d_DRLG_L2Pass3();
void __fastcall d_LoadPreL2Dungeon(char * sFileName,int vx,int vy);
void __fastcall d_CreateL2Dungeon(int rseed,int entry);
void __cdecl d_DRLG_LoadL2SP();
void __cdecl d_DRLG_FreeL2SP();
void __fastcall d_DRLG_L2(int entry);
bool __fastcall d_DRLG_L2PlaceMiniSet(unsigned char * miniset,int tmin,int tmax,int cx,int cy,bool setview,int ldir);
void __fastcall d_DRLG_L2PlaceRndSet(unsigned char * miniset,int rndper);
void __cdecl d_DRLG_L2Subs();
void __cdecl d_DRLG_L2Shadows();
void __fastcall d_DRLG_L2SetRoom(int rx1,int ry1);
void __cdecl d_L2TileFix();
bool __cdecl d_CreateDungeon();
void __fastcall d_CreateRoom(int nX1,int nY1,int nX2,int nY2,int nRDest,int nHDir,int ForceHW,int nH,int nW);
void __fastcall d_DefineRoom(int nX1,int nY1,int nX2,int nY2,int ForceHW);
void __fastcall d_AddHall(int nX1,int nY1,int nX2,int nY2,int nHd);
void __fastcall d_GetHall(int * nX1,int * nY1,int * nX2,int * nY2,int * nHd);
void __fastcall d_ConnectHall(int nX1,int nY1,int nX2,int nY2,int nHd);
void __fastcall d_CreateDoorType(int nX,int nY);
void __fastcall d_PlaceHallExt(int nX,int nY);
void __fastcall d_DoPatternCheck(int i,int j);
bool __cdecl d_DL2_FillVoids();
bool __fastcall d_DL2_Cont(bool x1f,bool y1f,bool x2f,bool y2f);
int __cdecl d_DL2_NumNoChar();
void __fastcall d_DL2_DrawRoom(int x1,int y1,int x2,int y2);
void __fastcall d_DL2_KnockWalls(int x1,int y1,int x2,int y2);
void __cdecl d_DRLG_L2FloodTVal();
void __fastcall d_DRLG_L2FTVR(int i,int j,int x,int y,int d);
void __cdecl d_DRLG_L2TransFix();
void __cdecl d_L2DirtFix();
void __cdecl d_DRLG_InitL2Vals();
void __cdecl d_AddFenceDoors();
void __cdecl d_FenceDoorFix();
int __cdecl d_DRLG_L3Anvil();
void __cdecl d_FixL3Warp();
void __cdecl d_FixL3HallofHeroes();
void __fastcall d_DRLG_L3LockRec(int x,int y);
bool __cdecl d_DRLG_L3Lockout();
void __fastcall d_CreateL3Dungeon(int rseed,int entry);
void __fastcall d_DRLG_L3(int entry);
void __cdecl d_InitL3Dungeon();
int __fastcall d_DRLG_L3FillRoom(int x1,int y1,int x2,int y2);
void __fastcall d_DRLG_L3CreateBlock(int x,int y,int obs,int dir);
void __fastcall d_DRLG_L3FloorArea(int x1,int y1,int x2,int y2);
void __cdecl d_DRLG_L3FillDiags();
void __cdecl d_DRLG_L3FillSingles();
void __cdecl d_DRLG_L3FillStraights();
void __cdecl d_DRLG_L3Edges();
int __cdecl d_DRLG_L3GetFloorArea();
void __cdecl d_DRLG_L3MakeMegas();
void __cdecl d_DRLG_L3River();
void __cdecl d_DRLG_L3Pool();
int __fastcall d_DRLG_L3SpawnEdge(int x,int y,int * totarea);
int __fastcall d_DRLG_L3Spawn(int x,int y,int * totarea);
void __cdecl d_DRLG_L3PoolFix();
int __fastcall d_DRLG_L3PlaceMiniSet(const unsigned char * miniset,int tmin,int tmax,int cx,int cy,bool setview,int ldir);
void __fastcall d_DRLG_L3PlaceRndSet(const unsigned char * miniset,int rndper);
void __cdecl d_DRLG_L3Wood();
bool __fastcall d_WoodVertU(int i,int y);
bool __fastcall d_WoodVertD(int i,int y);
bool __fastcall d_WoodHorizL(int x,int j);
bool __fastcall d_WoodHorizR(int x,int j);
void __cdecl d_DRLG_L3Pass3();
void __fastcall d_LoadL3Dungeon(char * sFileName,int vx,int vy);
void __fastcall d_LoadPreL3Dungeon(char * sFileName,int vx,int vy);
void __cdecl d_DRLG_LoadL4SP();
void __cdecl d_DRLG_FreeL4SP();
void __fastcall d_DRLG_L4SetSPRoom(int rx1,int ry1);
void __cdecl d_L4SaveQuads();
void __fastcall d_DRLG_L4SetRoom(unsigned char * pSetPiece,int rx1,int ry1);
void __fastcall d_DRLG_LoadDiabQuads(bool preflag);
bool __fastcall d_IsDURWall(char d);
bool __fastcall d_IsDLLWall(char dd);
void __cdecl d_L4FixRim();
void __cdecl d_DRLG_L4GeneralFix();
void __fastcall d_CreateL4Dungeon(int rseed,int entry);
void __fastcall d_DRLG_L4(int entry);
void __cdecl d_DRLG_L4Shadows();
void __cdecl d_InitL4Dungeon();
void __cdecl d_L4makeDmt();
void __cdecl d_L4AddWall();
int __fastcall d_L4HWallOk(int i,int j);
int __fastcall d_L4VWallOk(int i,int j);
void __fastcall d_L4HorizWall(int i,int j,int dx);
void __fastcall d_L4VertWall(int i,int j,int dy);
void __cdecl d_L4tileFix();
void __cdecl d_DRLG_L4Subs();
void __cdecl d_L4makeDungeon();
void __cdecl d_uShape();
int __cdecl d_GetArea();
void __cdecl d_L4firstRoom();
void __fastcall d_L4drawRoom(int x,int y,int width,int height);
void __fastcall d_L4roomGen(int x,int y,int w,int h,int dir);
bool __fastcall d_L4checkRoom(int x,int y,int width,int height);
bool __fastcall d_DRLG_L4PlaceMiniSet(const unsigned char * miniset,int tmin,int tmax,int cx,int cy,int setview,int ldir);
void __cdecl d_DRLG_L4FloodTVal();
void __fastcall d_DRLG_L4FTVR(int i,int j,int x,int y,int d);
void __cdecl d_DRLG_L4TransFix();
void __cdecl d_DRLG_L4Corners();
void __cdecl d_DRLG_L4Pass3();
void d_j_dthread_cpp_init_1(...); // Unknown signature
void __cdecl d_dthread_cpp_init_1();
void __cdecl d_dthread_cpp_init_2();
void __cdecl d_dthread_init_mutex();
void __cdecl d_dthread_cleanup_mutex_atexit();
void __cdecl d_dthread_cleanup_mutex();
void __fastcall d_dthread_remove_player(int pnum);
void __fastcall d_dthread_send_delta(int pnum,char cmd,void * pbSrc,int dwLen);
void __cdecl d_dthread_start();
unsigned int __stdcall d_dthread_handler(void * a1);
void __cdecl d_dthread_cleanup();
void d_j_dx_cpp_init_1(...); // Unknown signature
void __cdecl d_dx_cpp_init_1();
void __cdecl d_dx_cpp_init_2();
void __cdecl d_dx_init_mutex();
void __cdecl d_dx_cleanup_mutex_atexit();
void __cdecl d_dx_cleanup_mutex();
void __fastcall d_dx_init(HWND hWnd);
void __cdecl d_dx_create_back_buffer();
void __cdecl d_dx_create_primary_surface();
HRESULT __fastcall d_dx_DirectDrawCreate(GUID * guid,IDirectDraw ** DD,void * unknown);
void __cdecl d_j_lock_buf_priv();
void __cdecl d_lock_buf_priv();
void __cdecl d_j_unlock_buf_priv();
void __cdecl d_unlock_buf_priv();
void __cdecl d_dx_cleanup();
void __cdecl d_dx_reinit();
void __cdecl d_j_dx_reinit();
void d_j_effects_cpp_init(...); // Unknown signature
void __cdecl d_effects_cpp_init();
bool __fastcall d_effect_is_playing(int nSFX);
void __cdecl d_sfx_stop();
void __fastcall d_InitMonsterSND(int monst);
void __cdecl d_FreeEffects();
void __fastcall d_PlayEffect(int i,int mode);
int __fastcall d_calc_snd_position(int x,int y,int * plVolume,int * plPan);
void __fastcall d_PlaySFX(int psfx);
void __fastcall d_PlaySFX_priv(TSFX * pSFX,char loc,int x,int y);
void __fastcall d_stream_play(TSFX * pSFX,int lVolume,int lPan);
int __fastcall d_RndSFX(int psfx);
void __fastcall d_PlaySfxLoc(int psfx,int x,int y);
void __cdecl d_FreeMonsterSnd();
void __cdecl d_sound_stop();
void __cdecl d_sound_update();
void __cdecl d_effects_cleanup_sfx();
void __cdecl d_stream_update();
void __fastcall d_priv_sound_init(int bLoadMask);
void __cdecl d_sound_init();
void __stdcall d_effects_play_sound(char * snd_file);
void __fastcall d_encrypt_decrypt_block(void * block,int size,int key);
void __fastcall d_encrypt_encrypt_block(void * block,int size,int key);
int __fastcall d_encrypt_hash(char * s,int type);
void __cdecl d_encrypt_init_lookup_table();
int __fastcall d_encrypt_compress(void * buf,int size);
unsigned int __cdecl d_encrypt_pkware_read(char * buf,unsigned int * size,void * param);
void __cdecl d_encrypt_pkware_write(char * buf,unsigned int * size,void * param);
void __fastcall d_encrypt_decompress(void * param,int recv_size,int dwMaxBytes);
void d_j_engine_cpp_init_1(...); // Unknown signature
void __cdecl d_engine_cpp_init_1();
void __fastcall d_CelDrawDatOnly(char * pDecodeTo,char * pRLEBytes,int dwRLESize,int dwRLEWdt);
void __fastcall d_CelDecodeOnly(int screen_x,int screen_y,void * pCelBuff,int frame,int frame_width);
void __fastcall d_CelDecDatOnly(char * pBuff,char * pCelBuff,int frame,int frame_width);
void __fastcall d_CelDrawHdrOnly(int screen_x,int screen_y,char * pCelBuff,int frame,int frame_width,int always_0,int direction);
void __fastcall d_CelDecodeHdrOnly(char * pBuff,char * pCelBuff,int frame,int frame_width,int always_0,int direction);
void __fastcall d_CelDecDatLightOnly(char * pDecodeTo,char * pRLEBytes,int frame_content_size,int frame_width);
void __fastcall d_CelDecDatLightEntry(unsigned char shift,char * LightIndex,char * & pDecodeTo,char * & pRLEBytes);
void __fastcall d_CelDecDatLightTrans(char * pDecodeTo,char * pRLEBytes,int frame_content_size,int frame_width);
void __fastcall d_CelDecodeLightOnly(int screen_x,int screen_y,char * pCelBuff,int frame,int frame_width);
void __fastcall d_CelDecodeHdrLightOnly(int screen_x,int screen_y,char * pCelBuff,int frame,int frame_width,int always_0,int direction);
void __fastcall d_CelDecodeHdrLightTrans(char * pBuff,char * pCelBuff,int frame,int frame_width,int always_0,int direction);
void __fastcall d_CelDrawHdrLightRed(int screen_x,int screen_y,char * pCelBuff,int frame,int frame_width,int always_0,int direction,char always_1);
void __fastcall d_Cel2DecDatOnly(char * pDecodeTo,char * pRLEBytes,int frame_content_size,int frame_width);
void __fastcall d_Cel2DrawHdrOnly(int screen_x,int screen_y,char * pCelBuff,int frame,int frame_width,int a6,int direction);
void __fastcall d_Cel2DecodeHdrOnly(char * pBuff,char * pCelBuff,int frame,int frame_width,int a5,int direction);
void __fastcall d_Cel2DecDatLightOnly(char * pDecodeTo,char * pRLEBytes,int frame_content_size,int frame_width);
void __fastcall d_Cel2DecDatLightEntry(unsigned char shift,char * LightIndex,char * & pDecodeTo,char * & pRLEBytes);
void __fastcall d_Cel2DecDatLightTrans(char * pDecodeTo,char * pRLEBytes,int frame_content_size,int frame_width);
void __fastcall d_Cel2DecodeHdrLight(int screen_x,int screen_y,char * pCelBuff,int frame,int frame_width,int a6,int direction);
void __fastcall d_Cel2DecodeLightTrans(char * dst_buf,char * pCelBuff,int frame,int frame_width,int a5,int direction);
void __fastcall d_Cel2DrawHdrLightRed(int screen_x,int screen_y,char * pCelBuff,int frame,int frame_width,int always_0,int direction,char always_1);
void __fastcall d_CelDecodeRect(char * pBuff,int always_0,int dst_height,int dst_width,char * pCelBuff,int frame,int frame_width);
void __fastcall d_CelDecodeClr(BYTE colour,int screen_x,int screen_y,char * pCelBuff,int frame,int frame_width,int a7,int direction);
void __fastcall d_CelDrawHdrClrHL(char colour,int screen_x,int screen_y,char * pCelBuff,int frame,int frame_width,int a7,int direction);
void __fastcall d_ENG_set_pixel(int screen_x,int screen_y,char pixel);
void __fastcall d_engine_draw_pixel(int x,int y);
void __fastcall d_DrawLine(int x0,int y0,int x1,int y1,char col);
int __fastcall d_GetDirection(int x1,int y1,int x2,int y2);
void __fastcall d_SetRndSeed(int s);
int __cdecl d_GetRndSeed();
int __fastcall d_random(BYTE idx,int v);
void __cdecl d_engine_cpp_init_2();
void __cdecl d_mem_init_mutex();
void __cdecl d_mem_atexit_mutex();
void __cdecl d_mem_free_mutex();
unsigned char * __fastcall d_DiabloAllocPtr(int dwBytes);
void __fastcall d_mem_free_dbg(void * p);
unsigned char * __fastcall d_LoadFileInMem(char * pszName,int * pdwFileLen);
void __fastcall d_LoadFileWithMem(char * pszName,void * buf);
void __fastcall d_Cl2ApplyTrans(unsigned char * p,unsigned char * ttbl,int last_frame);
void __fastcall d_Cl2DecodeFrm1(int x,int y,char * pCelBuff,int nCel,int width,int dir1,int dir2);
void __fastcall d_Cl2DecDatFrm1(char * buffer,char * frame_content,int a3,int width);
void __fastcall d_Cl2DecodeFrm2(char colour,int screen_x,int screen_y,char * pCelBuff,int nCel,int frame_width,int a7,int a8);
void __fastcall d_Cl2DecDatFrm2(char * buffer,char * a2,int a3,int a4,char a5);
void __fastcall d_Cl2DecodeFrm3(int screen_x,int screen_y,char * pCelBuff,int nCel,int frame_width,int a6,int a7,char a8);
void __fastcall d_Cl2DecDatLightTbl1(char * a1,char * a2,int a3,int a4,char * unused_lindex);
void __fastcall d_Cl2DecodeLightTbl(int screen_x,int screen_y,char * pCelBuff,int nCel,int frame_width,int a6,int a7);
void __fastcall d_Cl2DecodeFrm4(int screen_x,int screen_y,char * pCelBuff,int nCel,int frame_width,int a6,int a7);
void __fastcall d_Cl2DecDatFrm4(char * buffer,char * a2,int a3,int frame_width);
void __fastcall d_Cl2DecodeClrHL(char colour,int screen_x,int screen_y,char * pCelBuff,int nCel,int frame_width,int a7,int a8);
void __fastcall d_Cl2DecDatClrHL(char * dst_buf,char * frame_content,int a3,int frame_width,char colour);
void __fastcall d_Cl2DecodeFrm5(int screen_x,int screen_y,char * pCelBuff,int nCel,int frame_width,int a6,int a7,char a8);
void __fastcall d_Cl2DecDatLightTbl2(char * dst_buf,char * a2,int a3,int frame_width,char * a5);
void __fastcall d_Cl2DecodeFrm6(int screen_x,int screen_y,char * pCelBuff,int nCel,int frame_width,int a6,int a7);
void __fastcall d_PlayInGameMovie(char * pszMovie);
void __fastcall d_InitDiabloMsg(char e);
void __cdecl d_ClrDiabloMsg();
void __cdecl d_DrawDiabloMsg();
void __cdecl d_exception_cpp_init();
void __cdecl d_exception_install_filter();
void __cdecl d_j_exception_init_filter();
void __cdecl d_exception_init_filter();
LONG __stdcall d_TopLevelExceptionFilter(PEXCEPTION_POINTERS ExceptionInfo);
void __fastcall d_exception_hex_format(BYTE * ptr,unsigned int numBytes);
void __fastcall d_exception_unknown_module(LPCVOID lpAddress,LPSTR lpModuleName,int iMaxLength,int * sectionNum,int * sectionOffset);
void __fastcall d_exception_call_stack(void * instr,STACK_FRAME * stackAddr);
char * __fastcall d_exception_get_error_type(DWORD dwMessageId,LPSTR lpString1,DWORD nSize);
void __fastcall d_exception_set_filter();
LPTOP_LEVEL_EXCEPTION_FILTER __cdecl d_exception_set_filter_ptr();
LPTOP_LEVEL_EXCEPTION_FILTER __cdecl d_exception_get_filter();
void __cdecl d_gamemenu_previous();
void __cdecl d_gamemenu_enable_single();
void __cdecl d_gamemenu_enable_multi();
void __cdecl d_gamemenu_off();
void __cdecl d_gamemenu_handle_previous();
void d_j_gamemenu_previous(...); // Unknown signature
void __cdecl d_gamemenu_new_game();
void __cdecl d_gamemenu_quit_game();
void __cdecl d_gamemenu_load_game();
void __cdecl d_gamemenu_save_game();
void __cdecl d_gamemenu_restart_town();
void __cdecl d_gamemenu_options();
void __cdecl d_gamemenu_get_music();
void __fastcall d_gamemenu_sound_music_toggle(char ** names,TMenuItem * menu_item,int gamma);
void __cdecl d_gamemenu_get_sound();
void __cdecl d_gamemenu_get_color_cycling();
void __cdecl d_gamemenu_get_gamma();
void __fastcall d_gamemenu_music_volume(int a1);
int __fastcall d_gamemenu_slider_music_sound(TMenuItem * menu_item);
void __fastcall d_gamemenu_sound_volume(int a1);
void __fastcall d_gamemenu_gamma(int a1);
int __cdecl d_gamemenu_slider_gamma();
void __cdecl d_gamemenu_color_cycling();
void __cdecl d_FillSolidBlockTbls();
void __cdecl d_gendung_418D91();
void __fastcall d_gendung_4191BF(int frames);
void __fastcall d_gendung_4191FB(int a1,int a2);
int __fastcall d_gendung_get_dpiece_num_from_coord(int x,int y);
void __cdecl d_gendung_4192C2();
void __cdecl d_SetDungeonMicros();
void __cdecl d_DRLG_InitTrans();
void __fastcall d_DRLG_MRectTrans(int x1,int y1,int x2,int y2);
void __fastcall d_DRLG_RectTrans(int x1,int y1,int x2,int y2);
void __fastcall d_DRLG_CopyTrans(int sx,int sy,int dx,int dy);
void __fastcall d_DRLG_ListTrans(int num,unsigned char * List);
void __fastcall d_DRLG_AreaTrans(int num,unsigned char * List);
void __cdecl d_DRLG_InitSetPC();
void __cdecl d_DRLG_SetPC();
void __fastcall d_Make_SetPC(int x,int y,int w,int h);
bool __fastcall d_DRLG_WillThemeRoomFit(int floor,int x,int y,int minSize,int maxSize,int * width,int * height);
void __fastcall d_DRLG_CreateThemeRoom(int themeIndex);
void __fastcall d_DRLG_PlaceThemeRooms(int minSize,int maxSize,int floor,int freq,int rndSize);
void __cdecl d_DRLG_HoldThemeRooms();
bool __fastcall d_SkipThemeRoom(int x,int y);
void __cdecl d_InitLevels();
void __cdecl d_gmenu_draw_pause();
void __fastcall d_gmenu_print_text(int x,int y,char * pszStr);
void __cdecl d_FreeGMenu();
void __cdecl d_gmenu_init_menu();
bool __cdecl d_gmenu_exception();
void __fastcall d_gmenu_call_proc(TMenuItem * pItem,void (__cdecl * gmFunc)());
void __fastcall d_gmenu_up_down(int a1);
void __cdecl d_gmenu_draw();
void __fastcall d_gmenu_draw_menu_item(TMenuItem * pItem,int a2);
void __fastcall d_gmenu_clear_buffer(int x,int y,int width,int height);
int __fastcall d_gmenu_get_lfont(TMenuItem * pItem);
int __fastcall d_gmenu_presskeys(int a1);
void __fastcall d_gmenu_left_right(int a1);
int __fastcall d_gmenu_on_mouse_move(LPARAM lParam);
bool __fastcall d_gmenu_valid_mouse_pos(int * plOffset);
int __fastcall d_gmenu_left_mouse(int a1);
void __fastcall d_gmenu_enable(TMenuItem * pMenuItem,bool enable);
void __fastcall d_gmenu_slider_1(TMenuItem * pItem,int min,int max,int gamma);
int __fastcall d_gmenu_slider_get(TMenuItem * pItem,int min,int max);
void __fastcall d_gmenu_slider_3(TMenuItem * pItem,int dwTicks);
void __cdecl d_InitHelp();
void __cdecl d_DrawHelp();
void __fastcall d_DrawHelpLine(int always_0,int help_line_nr,char * text,text_color color);
void __cdecl d_DisplayHelp();
void __cdecl d_HelpScrollUp();
void __cdecl d_HelpScrollDown();
void d_j_init_cpp_init(...); // Unknown signature
void __cdecl d_init_cpp_init();
void __fastcall d_init_cleanup(bool show_cursor);
void __cdecl d_init_run_office_from_start_menu();
void __fastcall d_init_run_office(char * dir);
void __fastcall d_init_disable_screensaver(bool disable);
void __fastcall d_init_create_window(int nCmdShow);
void __cdecl d_init_kill_mom_parent();
HWND __cdecl d_init_find_mom_parent();
void __cdecl d_init_await_mom_parent_exit();
void __cdecl d_init_archives();
void * __fastcall d_init_test_access(char * mpq_path,char * mpq_name,char * reg_loc,int flags,bool on_cd);
char * __fastcall d_init_strip_trailing_slash(char * path);
int __fastcall d_init_read_test_file(char * mpq_path,char * mpq_name,int flags,void ** archive);
void __cdecl d_init_get_file_info();
LRESULT __stdcall d_MainWndProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
void __fastcall d_init_activate_window(HWND hWnd,bool bActive);
LRESULT __stdcall d_WindowProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
WNDPROC __fastcall d_SetWindowProc(WNDPROC NewProc);
void d_j_interfac_cpp_init(...); // Unknown signature
void __cdecl d_interfac_cpp_init();
void __cdecl d_interface_msg_pump();
bool __cdecl d_IncProgress();
void __cdecl d_DrawCutscene();
void __fastcall d_DrawProgress(int screen_x,int screen_y,int progress_id);
void __fastcall d_ShowProgress(int uMsg);
void __cdecl d_FreeInterface();
void __fastcall d_InitCutscene(int uMsg);
void __cdecl d_FreeInvGFX();
void __cdecl d_InitInv();
void __fastcall d_InvDrawSlotBack(int X,int Y,int W,int H);
void __cdecl d_DrawInv();
void __cdecl d_DrawInvBelt();
int __fastcall d_AutoPlace(int pnum,int ii,int sx,int sy,int saveflag);
int __fastcall d_SpecialAutoPlace(int pnum,int ii,int sx,int sy,int saveflag);
int __fastcall d_GoldAutoPlace(int pnum);
int __fastcall d_WeaponAutoPlace(int pnum);
int __fastcall d_SwapItem(ItemStruct * a,ItemStruct * b);
void __fastcall d_CheckInvPaste(int pnum,int mx,int my);
void __fastcall d_CheckInvSwap(int pnum,BYTE bLoc,int idx,WORD wCI,int seed,BOOL bId);
void __fastcall d_CheckInvCut(int pnum,int mx,int my);
void __fastcall d_inv_update_rem_item(int pnum,BYTE iv);
void __fastcall d_RemoveInvItem(int pnum,int iv);
void __fastcall d_RemoveSpdBarItem(int pnum,int iv);
void __cdecl d_CheckInvItem();
void __cdecl d_CheckInvScrn();
void __fastcall d_CheckItemStats(int pnum);
void __fastcall d_CheckBookLevel(int pnum);
void __fastcall d_CheckQuestItem(int pnum);
void __fastcall d_InvGetItem(int pnum,int ii);
void __fastcall d_AutoGetItem(int pnum,int ii);
int __fastcall d_FindGetItem(int indx,unsigned short ci,int iseed);
void __fastcall d_SyncGetItem(int x,int y,int idx,unsigned short ci,int iseed);
int __fastcall d_CanPut(int i,int j);
int __cdecl d_TryInvPut();
void __fastcall d_DrawInvMsg(char * msg);
int __fastcall d_InvPutItem(int pnum,int x,int y);
int __fastcall d_SyncPutItem(int pnum,int x,int y,int idx,int icreateinfo,int iseed,int Id,int dur,int mdur,int ch,int mch,int ivalue,unsigned int ibuff);
int __cdecl d_CheckInvHLight();
void __fastcall d_RemoveScroll(int pnum);
bool __cdecl d_UseScroll();
void __fastcall d_UseStaffCharge(int pnum);
bool __cdecl d_UseStaff();
void __cdecl d_StartGoldDrop();
int __fastcall d_UseInvItem(int pnum,int cii);
void __cdecl d_DoTelekinesis();
int __fastcall d_CalculateGold(int pnum);
int __cdecl d_DropItemBeforeTrig();
void __cdecl d_InitItemGFX();
bool __fastcall d_ItemPlace(int xp,int yp);
void __cdecl d_AddInitItems();
void __cdecl d_InitItems();
void __fastcall d_CalcPlrItemVals(int p,BOOL Loadgfx);
void __fastcall d_CalcPlrScrolls(int p);
void __fastcall d_CalcPlrStaff(int pnum);
void __fastcall d_CalcSelfItems(int pnum);
void __fastcall d_CalcPlrItemMin(int pnum);
bool __fastcall d_ItemMinStats(PlayerStruct * p,ItemStruct * x);
void __fastcall d_CalcPlrBookVals(int p);
void __fastcall d_CalcPlrInv(int p,BOOL Loadgfx);
void __fastcall d_SetPlrHandItem(ItemStruct * h,int idata);
void __fastcall d_GetPlrHandSeed(ItemStruct * h);
void __fastcall d_GetGoldSeed(int pnum,ItemStruct * h);
void __fastcall d_SetPlrHandSeed(ItemStruct * h,int iseed);
void __fastcall d_SetPlrHandGoldCurs(ItemStruct * h);
void __fastcall d_CreatePlrItems(int p);
BOOL __fastcall d_ItemSpaceOk(int i,int j);
bool __fastcall d_GetItemSpace(int x,int y,char inum);
void __fastcall d_GetSuperItemSpace(int x,int y,char inum);
void __fastcall d_GetSuperItemLoc(int x,int y,int * xx,int * yy);
void __fastcall d_CalcItemValue(int i);
void __fastcall d_GetBookSpell(int i,int lvl);
void __fastcall d_GetStaffPower(int i,int lvl,int bs,unsigned char onlygood);
void __fastcall d_GetStaffSpell(int i,int lvl,unsigned char onlygood);
void __fastcall d_GetItemAttrs(int i,int idata,int lvl);
int __fastcall d_RndPL(int param1,int param2);
int __fastcall d_PLVal(int pv,int p1,int p2,int minv,int maxv);
void __fastcall d_SaveItemPower(int i,int power,int param1,int param2,int minval,int maxval,int multval);
void __fastcall d_GetItemPower(int i,int minlvl,int maxlvl,int flgs,int onlygood);
void __fastcall d_GetItemBonus(int i,int idata,int minlvl,int maxlvl,int onlygood);
void __fastcall d_SetupItem(int i);
int __fastcall d_RndItem(int m);
int __fastcall d_RndUItem(int m);
int __cdecl d_RndAllItems();
int __fastcall d_RndTypeItems(int itype,int imid);
int __fastcall d_CheckUnique(int i,int lvl,int uper,bool recreate);
void __fastcall d_GetUniqueItem(int i,int uid);
void __fastcall d_SpawnUnique(int uid,int x,int y);
void __fastcall d_ItemRndDur(int ii);
void __fastcall d_SetupAllItems(int ii,int idx,int iseed,int lvl,int uper,int onlygood,int recreate,int pregen);
void __fastcall d_SpawnItem(int m,int x,int y,unsigned char sendmsg);
void __fastcall d_CreateItem(int uid,int x,int y);
void __fastcall d_CreateRndItem(int x,int y,unsigned char onlygood,unsigned char sendmsg,int delta);
void __fastcall d_SetupAllUseful(int ii,int iseed,int lvl);
void __fastcall d_CreateRndUseful(int pnum,int x,int y,unsigned char sendmsg);
void __fastcall d_CreateTypeItem(int x,int y,unsigned char onlygood,int itype,int imisc,int sendmsg,int delta);
void __fastcall d_RecreateItem(int ii,int idx,unsigned short ic,int iseed,int ivalue);
void __fastcall d_RecreateEar(int ii,unsigned short ic,int iseed,unsigned char Id,int dur,int mdur,int ch,int mch,int ivalue,int ibuff);
void __fastcall d_SpawnQuestItem(int itemid,int x,int y,int randarea,int selflag);
void __cdecl d_SpawnRock();
void __fastcall d_RespawnItem(int i,bool FlipFlag);
void __fastcall d_DeleteItem(int ii,int i);
void __cdecl d_ItemDoppel();
void __cdecl d_ProcessItems();
void __cdecl d_FreeItemGFX();
void __fastcall d_GetItemFrm(int i);
void __fastcall d_GetItemStr(int i);
void __fastcall d_CheckIdentify(int pnum,int cii);
void __fastcall d_DoRepair(int pnum,int cii);
void __fastcall d_RepairItem(ItemStruct * i,int lvl);
void __fastcall d_DoRecharge(int pnum,int cii);
void __fastcall d_RechargeItem(ItemStruct * i,int r);
void __fastcall d_PrintItemOil(char IDidx);
void __fastcall d_PrintItemPower(char plidx,ItemStruct * x);
void __cdecl d_DrawUBack();
void __fastcall d_PrintUString(int x,int y,int cjustflag,char * str,int col);
void __fastcall d_DrawULine(int y);
void __cdecl d_DrawUniqueInfo();
void __fastcall d_PrintItemMisc(ItemStruct * x);
void __fastcall d_PrintItemDetails(ItemStruct * x);
void __fastcall d_PrintItemDur(ItemStruct * x);
void __fastcall d_UseItem(int p,int Mid,int spl);
bool __fastcall d_StoreStatOk(ItemStruct * h);
bool __fastcall d_SmithItemOk(int i);
int __fastcall d_RndSmithItem(int lvl);
void __fastcall d_BubbleSwapItem(ItemStruct * a,ItemStruct * b);
void __cdecl d_SortSmith();
void __fastcall d_SpawnSmith(int lvl);
bool __fastcall d_PremiumItemOk(int i);
int __fastcall d_RndPremiumItem(int minlvl,int maxlvl);
void __fastcall d_SpawnOnePremium(int i,int plvl);
void __fastcall d_SpawnPremium(int lvl);
bool __fastcall d_WitchItemOk(int i);
int __fastcall d_RndWitchItem(int lvl);
void __cdecl d_SortWitch();
void __fastcall d_WitchBookLevel(int ii);
void __fastcall d_SpawnWitch(int lvl);
int __fastcall d_RndBoyItem(int lvl);
void __fastcall d_SpawnBoy(int lvl);
bool __fastcall d_HealerItemOk(int i);
int __fastcall d_RndHealerItem(int lvl);
void __cdecl d_SortHealer();
void __fastcall d_SpawnHealer(int lvl);
void __cdecl d_SpawnStoreGold();
void __fastcall d_RecreateSmithItem(int ii,int idx,int plvl,int iseed);
void __fastcall d_RecreatePremiumItem(int ii,int idx,int lvl,int iseed);
void __fastcall d_RecreateBoyItem(int ii,int idx,int lvl,int iseed);
void __fastcall d_RecreateWitchItem(int ii,int idx,int lvl,int iseed);
void __fastcall d_RecreateHealerItem(int ii,int idx,int lvl,int iseed);
void __fastcall d_RecreateTownItem(int ii,int idx,unsigned short icreateinfo,int iseed,int ivalue);
void __cdecl d_RecalcStoreStats();
int __cdecl d_ItemNoFlippy();
void __fastcall d_CreateSpellBook(int x,int y,int ispell,bool sendmsg,int delta);
void __fastcall d_CreateMagicItem(int x,int y,int imisc,int icurs,int sendmsg,int delta);
bool __fastcall d_GetItemRecord(int dwSeed,int CI,int indx);
void __fastcall d_NextItemRecord(int i);
void __fastcall d_SetItemRecord(int dwSeed,int CI,int indx);
void __fastcall d_PutItemRecord(int seed,int ci,int index);
void __fastcall d_SetLightFX(int * x,int * y,short * s_r,short * s_g,int * s_b,int * d_r,int * d_g,int * d_b);
void __fastcall d_DoLighting(int nXPos,int nYPos,int nRadius,int Lnum);
void __fastcall d_DoUnLight(int nXPos,int nYPos,int nRadius);
void __fastcall d_DoUnVision(int nXPos,int nYPos,int nRadius);
void __fastcall d_DoVision(int nXPos,int nYPos,int nRadius,unsigned char doautomap,int visible);
void __cdecl d_FreeLightTable();
void __cdecl d_InitLightTable();
void __cdecl d_MakeLightTable();
void __cdecl d_InitLightMax();
void __cdecl d_InitLighting();
int __fastcall d_AddLight(int x,int y,int r);
void __fastcall d_AddUnLight(int i);
void __fastcall d_ChangeLightRadius(int i,int r);
void __fastcall d_ChangeLightXY(int i,int x,int y);
void __fastcall d_ChangeLightOff(int i,int x,int y);
void __fastcall d_ChangeLight(int i,int x,int y,int r);
void __cdecl d_ProcessLightList();
void __cdecl d_SavePreLighting();
void __cdecl d_InitVision();
int __fastcall d_AddVision(int x,int y,int r,BOOL mine);
void __fastcall d_ChangeVisionRadius(int id,int r);
void __fastcall d_ChangeVisionXY(int id,int x,int y);
void __cdecl d_ProcessVisionList();
void __cdecl d_lighting_color_cycling();
void __fastcall d_LoadGame(BOOL firstflag);
char __cdecl d_BLoad();
int __cdecl d_ILoad();
int __cdecl d_ILoad_2();
bool __cdecl d_OLoad();
void __fastcall d_LoadPlayer(int i);
void __fastcall d_LoadMonster(int i);
void __fastcall d_LoadMissile(int i);
void __fastcall d_LoadObject(int i);
void __fastcall d_LoadItem(int i);
void __fastcall d_LoadPremium(int i);
void __fastcall d_LoadQuest(int i);
void __fastcall d_LoadLighting(int i);
void __fastcall d_LoadVision(int i);
void __fastcall d_LoadPortal(int i);
void __cdecl d_SaveGame();
void __fastcall d_BSave(char v);
void __fastcall d_ISave(int v);
void __fastcall d_ISave_2(int v);
void __fastcall d_OSave(unsigned char v);
void __fastcall d_SavePlayer(int i);
void __fastcall d_SaveMonster(int i);
void __fastcall d_SaveMissile(int i);
void __fastcall d_SaveObject(int i);
void __fastcall d_SaveItem(int i);
void __fastcall d_SavePremium(int i);
void __fastcall d_SaveQuest(int i);
void __fastcall d_SaveLighting(int i);
void __fastcall d_SaveVision(int i);
void __fastcall d_SavePortal(int i);
void __cdecl d_SaveLevel();
void __cdecl d_LoadLevel();
void d_j_log_cpp_init_1(...); // Unknown signature
void __cdecl d_log_cpp_init_1();
void __cdecl d_log_cpp_init_2();
void __cdecl d_log_init_mutex();
void __cdecl d_j_log_cleanup_mutex();
void __cdecl d_log_cleanup_mutex();
void __cdecl d_log_flush(bool force_close);
void * __cdecl d_log_create();
void __fastcall d_log_get_version(VS_FIXEDFILEINFO * file_info);
void d_log_printf(const char * pszFmt,...);
void __cdecl d_log_dump_computer_info();
void d_j_mainmenu_cpp_init(...); // Unknown signature
void __cdecl d_mainmenu_cpp_init();
void __cdecl d_mainmenu_refresh_music();
void __stdcall d_mainmenu_create_hero(char *,char *);
int __stdcall d_mainmenu_select_hero_dialog(int u1,int u2,int u3,int u4,int mode,char * cname,int clen,char * cdesc,int cdlen,int * multi);
void __cdecl d_mainmenu_loop();
int __cdecl d_mainmenu_single_player();
int __fastcall d_mainmenu_init_menu(int a1);
int __cdecl d_mainmenu_multi_player();
void __cdecl d_mainmenu_play_intro();
void __cdecl d_FreeQuestText();
void __cdecl d_InitQuestText();
void __fastcall d_InitQTextMsg(int m);
void __cdecl d_DrawQTextBack();
void __fastcall d_PrintQTextChr(int screen_x,int screen_y,char * cel_buf,int frame);
void __cdecl d_DrawQText();
void __fastcall d_GetDamageAmt(int i,int * mind,int * maxd);
int __fastcall d_CheckBlock(int fx,int fy,int tx,int ty);
int __fastcall d_FindClosest(int sx,int sy,int rad);
int __fastcall d_GetSpellLevel(int id,int sn);
int __fastcall d_GetDirection8(int x1,int y1,int x2,int y2);
int __fastcall d_GetDirection16(int x1,int y1,int x2,int y2);
void __fastcall d_DeleteMissile(int mi,int i);
void __fastcall d_GetMissileVel(int i,int sx,int sy,int dx,int dy,int v);
void __fastcall d_PutMissile(int i);
void __fastcall d_GetMissilePos(int i);
void __fastcall d_MoveMissilePos(int i);
BOOL __fastcall d_MonsterTrapHit(int m,int mindam,int maxdam,int dist,int t,int shift);
bool __fastcall d_MonsterMHit(int pnum,int m,int mindam,int maxdam,int dist,int t,int shift);
bool __fastcall d_PlayerMHit(int pnum,int m,int dist,int mind,int maxd,int mtype,int shift,int earflag);
bool __fastcall d_Plr2PlrMHit(int pnum,int p,int mindam,int maxdam,int dist,int mtype,int shift);
void __fastcall d_CheckMissileCol(int i,int mindam,int maxdam,bool shift,int mx,int my,int nodel);
void __fastcall d_SetMissAnim(int mi,int animtype);
void __fastcall d_SetMissDir(int mi,int dir);
void __fastcall d_LoadMissileGFX(BYTE mi);
void __cdecl d_InitMissileGFX();
void __fastcall d_FreeMissileGFX(int mi);
void __cdecl d_FreeMissiles();
void __cdecl d_FreeMissiles2();
void __cdecl d_InitMissiles();
void __fastcall d_AddLArrow(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddArrow(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_GetVileMissPos(int mi,int dx,int dy);
void __fastcall d_AddRndTeleport(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFirebolt(int mi,int sx,int sy,int dx,int dy,int midir,int micaster,int id,int dam);
void __fastcall d_AddMagmaball(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_miss_null_33(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddTeleport(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddLightball(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFirewall(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFireball(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddLightctrl(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddLightning(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddMisexp(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddWeapexp(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
bool __fastcall d_CheckIfTrig(int x,int y);
void __fastcall d_AddTown(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFlash(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFlash2(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddManashield(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFiremove(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddGuardian(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddChain(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_miss_null_11(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_miss_null_12(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_miss_null_13(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddRhino(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_miss_null_32(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFlare(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddAcid(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_miss_null_1D(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddAcidpud(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddStone(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddGolem(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddEtherealize(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_miss_null_1F(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_miss_null_23(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddBoom(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddHeal(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddHealOther(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddElement(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddIdentify(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFirewallC(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddInfra(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddWave(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddNova(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddRepair(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddRecharge(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddDisarm(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddApoca(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFlame(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddFlamec(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddCbolt(int mi,int sx,int sy,int dx,int dy,int midir,int micaster,int id,int dam);
void __fastcall d_AddHbolt(int mi,int sx,int sy,int dx,int dy,int midir,int micaster,int id,int dam);
void __fastcall d_AddResurrect(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddResurrectBeam(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddTelekinesis(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddBoneSpirit(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddRportal(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
void __fastcall d_AddDiabApoca(int mi,int sx,int sy,int dx,int dy,int midir,int mienemy,int id,int dam);
int __fastcall d_AddMissile(int sx,int sy,int v1,int v2,int midir,int mitype,int micaster,int id,int v3,int spllvl);
int __fastcall d_Sentfire(int i,int sx,int sy);
void __fastcall d_MI_Dummy(int i);
void __fastcall d_MI_Golem(int i);
void __fastcall d_MI_SetManashield(int i);
void __fastcall d_MI_LArrow(int i);
void __fastcall d_MI_Arrow(int i);
void __fastcall d_MI_Firebolt(int i);
void __fastcall d_MI_Lightball(int i);
void __fastcall d_mi_null_33(int i);
void __fastcall d_MI_Acidpud(int i);
void __fastcall d_MI_Firewall(int i);
void __fastcall d_MI_Fireball(int i);
void __fastcall d_MI_Lightctrl(int i);
void __fastcall d_MI_Lightning(int i);
void __fastcall d_MI_Town(int i);
void __fastcall d_MI_Flash(int i);
void __fastcall d_MI_Flash2(int i);
void __fastcall d_MI_Manashield(int i);
void __fastcall d_MI_Etherealize(int i);
void __fastcall d_MI_Firemove(int i);
void __fastcall d_MI_Guardian(int i);
void __fastcall d_MI_Chain(int i);
void __fastcall d_mi_null_11(int i);
void __fastcall d_MI_Weapexp(int i);
void __fastcall d_MI_Misexp(int i);
void __fastcall d_MI_Acidsplat(int i);
void __fastcall d_MI_Teleport(int i);
void __fastcall d_MI_Stone(int i);
void __fastcall d_MI_Boom(int i);
void __fastcall d_MI_Rhino(int i);
void __fastcall d_mi_null_32(int i);
void __fastcall d_MI_FirewallC(int i);
void __fastcall d_MI_Infra(int i);
void __fastcall d_MI_Apoca(int i);
void __fastcall d_MI_Wave(int i);
void __fastcall d_MI_Nova(int i);
void __fastcall d_MI_Blodboil(int i);
void __fastcall d_MI_Flame(int i);
void __fastcall d_MI_Flamec(int i);
void __fastcall d_MI_Cbolt(int i);
void __fastcall d_MI_Hbolt(int i);
void __fastcall d_MI_Element(int i);
void __fastcall d_MI_Bonespirit(int i);
void __fastcall d_MI_ResurrectBeam(int i);
void __fastcall d_MI_Rportal(int i);
void __cdecl d_ProcessMissiles();
void __cdecl d_missiles_process_charge();
void __fastcall d_ClearMissileSpot(int mi);
void d_j_monster_cpp_init(...); // Unknown signature
void __cdecl d_monster_cpp_init();
void __fastcall d_InitMonsterTRN(int monst,BOOL special);
void __cdecl d_InitLevelMonsters();
int __fastcall d_AddMonsterType(int type,int placeflag);
void __cdecl d_GetLevelMTypes();
void __fastcall d_InitMonsterGFX(int monst);
void __fastcall d_ClearMVars(int i);
void __fastcall d_InitMonster(int i,int rd,int mtype,int x,int y);
void __cdecl d_ClrAllMonsters();
BOOL __fastcall d_MonstPlace(int xp,int yp);
void __fastcall d_PlaceMonster(int i,int mtype,int x,int y);
void __fastcall d_PlaceUniqueMonst(int uniqindex,int miniontype,int unpackfilesize);
void __cdecl d_PlaceQuestMonsters();
void __fastcall d_PlaceGroup(int mtype,int num,int leaderf,int leader);
void __cdecl d_LoadDiabMonsts();
void __cdecl d_InitMonsters();
void __cdecl d_PlaceUniques();
void __fastcall d_SetMapMonsters(unsigned char * pMap,int startx,int starty);
void __fastcall d_DeleteMonster(int i);
int __fastcall d_AddMonster(int x,int y,int dir,int mtype,int InMap);
void __fastcall d_NewMonsterAnim(int i,AnimStruct * anim,int md);
bool __fastcall d_M_Ranged(int i);
bool __fastcall d_M_Talker(int i);
void __fastcall d_M_Enemy(int i);
int __fastcall d_M_GetDir(int i);
void __fastcall d_M_CheckEFlag(int i);
void __fastcall d_M_StartStand(int i,int md);
void __fastcall d_M_StartDelay(int i,int len);
void __fastcall d_M_StartSpStand(int i,int md);
void __fastcall d_M_StartWalk(int i,int xvel,int yvel,int xadd,int yadd,int EndDir);
void __fastcall d_M_StartWalk2(int i,int xvel,int yvel,int xoff,int yoff,int xadd,int yadd,int EndDir);
void __fastcall d_M_StartWalk3(int i,int xvel,int yvel,int xoff,int yoff,int xadd,int yadd,int mapx,int mapy,int EndDir);
void __fastcall d_M_StartAttack(int i);
void __fastcall d_M_StartRAttack(int i,int missile_type,int dam);
void __fastcall d_M_StartRSpAttack(int i,int missile_type,int dam);
void __fastcall d_M_StartSpAttack(int i);
void __fastcall d_M_StartEat(int i);
void __fastcall d_M_ClearSquares(int i);
void __fastcall d_M_GetKnockback(int i);
void __fastcall d_M_StartHit(int i,int pnum,int dam);
void __fastcall d_M_DiabloDeath(int i,unsigned char sendmsg);
void __fastcall d_M2MStartHit(int mid,int i,int dam);
void __fastcall d_MonstStartKill(int i,int pnum,unsigned char sendmsg);
void __fastcall d_M2MStartKill(int i,int mid);
void __fastcall d_M_StartKill(int i,int pnum);
void __fastcall d_M_SyncStartKill(int i,int x,int y,int pnum);
void __fastcall d_M_StartFadein(int i,int md,unsigned char backwards);
void __fastcall d_M_StartFadeout(int i,int md,unsigned char backwards);
void __fastcall d_M_StartHeal(int i);
void __fastcall d_M_ChangeLightOffset(int monst);
int __fastcall d_M_DoStand(int i);
int __fastcall d_M_DoWalk(int i);
int __fastcall d_M_DoWalk2(int i);
int __fastcall d_M_DoWalk3(int i);
void __fastcall d_M_TryM2MHit(int i,int mid,int hper,int mind,int maxd);
void __fastcall d_M_TryH2HHit(int i,int pnum,int Hit,int MinDam,int MaxDam);
int __fastcall d_M_DoAttack(int i);
int __fastcall d_M_DoRAttack(int i);
int __fastcall d_M_DoRSpAttack(int i);
int __fastcall d_M_DoSAttack(int i);
int __fastcall d_M_DoFadein(int i);
int __fastcall d_M_DoFadeout(int i);
int __fastcall d_M_DoHeal(int i);
int __fastcall d_M_DoTalk(int i);
void __fastcall d_M_Teleport(int i);
int __fastcall d_M_DoGotHit(int i);
void __fastcall d_M_UpdateLeader(int i);
void __cdecl d_DoEnding();
void __cdecl d_PrepDoEnding();
int __fastcall d_M_DoDeath(int i);
int __fastcall d_M_DoSpStand(int i);
int __fastcall d_M_DoDelay(int i);
int __fastcall d_M_DoStone(int i);
void __fastcall d_M_WalkDir(int i,int md);
void __fastcall d_GroupUnity(int i);
bool __fastcall d_M_CallWalk(int i,int md);
bool __fastcall d_M_PathWalk(int i);
bool __fastcall d_M_CallWalk2(int i,int md);
bool __fastcall d_M_DumbWalk(int i,int md);
bool __fastcall d_M_RoundWalk(int i,int md,int * dir);
void __fastcall d_MAI_Zombie(int i);
void __fastcall d_MAI_SkelSd(int i);
bool __fastcall d_MAI_Path(int i);
void __fastcall d_MAI_Snake(int i);
void __fastcall d_MAI_Bat(int i);
void __fastcall d_MAI_SkelBow(int i);
void __fastcall d_MAI_Fat(int i);
void __fastcall d_MAI_Sneak(int i);
void __fastcall d_MAI_Fireman(int i);
void __fastcall d_MAI_Fallen(int i);
void __fastcall d_MAI_Cleaver(int i);
void __fastcall d_MAI_Round(int i,unsigned char special);
void __fastcall d_MAI_GoatMc(int i);
void __fastcall d_MAI_Ranged(int i,int missile_type,unsigned char special);
void __fastcall d_MAI_GoatBow(int i);
void __fastcall d_MAI_Succ(int i);
void __fastcall d_MAI_AcidUniq(int i);
void __fastcall d_MAI_Scav(int i);
void __fastcall d_MAI_Garg(int i);
void __fastcall d_MAI_RoundRanged(int i,int missile_type,unsigned char checkdoors,int dam,int lessmissiles);
void __fastcall d_MAI_Magma(int i);
void __fastcall d_MAI_Storm(int i);
void __fastcall d_MAI_Acid(int i);
void __fastcall d_MAI_Diablo(int i);
void __fastcall d_MAI_RR2(int i,int mistype,int dam);
void __fastcall d_MAI_Mega(int i);
void __fastcall d_MAI_Golum(int i);
void __fastcall d_MAI_SkelKing(int i);
void __fastcall d_MAI_Rhino(int i);
void __fastcall d_MAI_Counselor(int i);
void __fastcall d_MAI_Garbud(int i);
void __fastcall d_MAI_Zhar(int i);
void __fastcall d_MAI_SnotSpil(int i);
void __fastcall d_MAI_Lazurus(int i);
void __fastcall d_MAI_Lazhelp(int i);
void __fastcall d_MAI_Lachdanan(int i);
void __fastcall d_MAI_Warlord(int i);
void __cdecl d_DeleteMonsterList();
void __cdecl d_ProcessMonsters();
void __cdecl d_FreeMonsters();
bool __fastcall d_DirOK(int i,int mdir);
BOOL __fastcall d_PosOkMissile(int x,int y);
BOOL __fastcall d_CheckNoSolid(int x,int y);
BOOL __fastcall d_LineClearF(BOOL (__fastcall * Clear)(int,int),int x1,int y1,int x2,int y2);
BOOL __fastcall d_LineClear(int x1,int y1,int x2,int y2);
BOOL __fastcall d_LineClearF1(BOOL (__fastcall * Clear)(int,int,int),int monst,int x1,int y1,int x2,int y2);
void __fastcall d_SyncMonsterAnim(int i);
void __fastcall d_M_FallenFear(int x,int y);
void __fastcall d_PrintMonstHistory(int mt);
void __cdecl d_PrintUniqueHistory();
void __fastcall d_MissToMonst(int i,int x,int y);
BOOL __fastcall d_PosOkMonst(int i,int x,int y);
BOOL __fastcall d_PosOkMonst2(int i,int x,int y);
BOOL __fastcall d_PosOkMonst3(int i,int x,int y);
BOOL __fastcall d_IsSkel(int mt);
bool __fastcall d_IsGoat(int mt);
int __fastcall d_M_SpawnSkel(int x,int y,int dir);
void __fastcall d_ActivateSpawn(int i,int x,int y,int dir);
bool __fastcall d_SpawnSkeleton(int ii,int x,int y);
int __cdecl d_PreSpawnSkeleton();
void __fastcall d_TalktoMonster(int i);
void __fastcall d_SpawnGolum(int i,int x,int y,int mi);
bool __fastcall d_CanTalkToMonst(int m);
BOOL __fastcall d_CheckMonsterHit(int m,BOOL * ret);
int __fastcall d_encode_enemy(int m);
void __fastcall d_decode_enemy(int m,int enemy);
void d_j_movie_cpp_init(...); // Unknown signature
void __cdecl d_movie_cpp_init();
void __fastcall d_play_movie(char * pszMovie,BOOL user_can_close);
LRESULT __stdcall d_MovieWndProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
void d_j_mpqapi_cpp_init(...); // Unknown signature
void __cdecl d_mpqapi_cpp_init();
bool __fastcall d_mpqapi_set_hidden(char * pszArchive,bool hidden);
void __fastcall d_mpqapi_store_creation_time(char * pszArchive,int dwChar);
bool __fastcall d_mpqapi_reg_load_modification_time(char * dst,int size);
void __fastcall d_mpqapi_xor_buf(char * pbData);
bool __fastcall d_mpqapi_reg_store_modification_time(char * pbData,int dwLen);
_BLOCKENTRY * __fastcall d_j_mpqapi_remove_hash_entry(char * pszName);
void __fastcall d_mpqapi_remove_hash_entry(char * pszName);
void __fastcall d_mpqapi_free_block(int block_offset,int block_size);
_BLOCKENTRY * __fastcall d_mpqapi_new_block(int * block_index);
int __fastcall d_mpqapi_get_hash_index_of_path(char * pszName);
int __fastcall d_mpqapi_get_hash_index(short index,int hash_a,int hash_b,int locale);
void __fastcall d_mpqapi_remove_hash_entries(bool (__stdcall * fnGetName)(int,char *));
bool __fastcall d_mpqapi_write_file(char * pszName,char * pbData,int dwLen);
_BLOCKENTRY * __fastcall d_mpqapi_add_file(char * pszName,_BLOCKENTRY * pBlk,int block_index);
bool __fastcall d_mpqapi_write_file_contents(char * pszName,char * pbData,int dwLen,_BLOCKENTRY * pBlk);
int __fastcall d_mpqapi_find_free_block(int size,int * block_size);
void __fastcall d_mpqapi_rename(char * pszOld,char * pszNew);
bool __fastcall d_mpqapi_has_file(char * pszName);
bool __fastcall d_mpqapi_open_archive(char * pszArchive,bool hidden,int dwChar);
bool __fastcall d_mpqapi_parse_archive_header(_FILEHEADER * pHdr,int * pdwNextFileStart);
void __fastcall d_mpqapi_close_archive(char * pszArchive,bool bFree,int dwChar);
void __fastcall d_mpqapi_store_modified_time(char * pszArchive,int dwChar);
void __fastcall d_mpqapi_flush_and_close(char * pszArchive,bool bFree,int dwChar);
bool __cdecl d_mpqapi_write_header();
bool __cdecl d_mpqapi_write_block_table();
bool __cdecl d_mpqapi_write_hash_table();
bool __cdecl d_mpqapi_can_seek();
void d_j_msg_cpp_init(...); // Unknown signature
void __cdecl d_msg_cpp_init();
void __fastcall d_msg_send_drop_pkt(int pnum,int reason);
void __fastcall d_msg_send_packet(int pnum,void * packet,int dwSize);
TMegaPkt * __cdecl d_msg_get_next_packet();
int __cdecl d_msg_wait_resync();
void __cdecl d_msg_free_packets();
int __cdecl d_msg_wait_for_turns();
void __cdecl d_msg_process_net_packets();
void __cdecl d_msg_pre_packet();
void __fastcall d_DeltaExportData(int pnum);
void * __fastcall d_DeltaExportItem(void * dst,void * src);
void * __fastcall d_DeltaExportObject(void * dst,void * src);
void * __fastcall d_DeltaExportMonster(void * dst,void * src);
char * __fastcall d_DeltaExportJunk(char * a1);
int __fastcall d_msg_comp_level(char * buffer,int size);
void __cdecl d_delta_init();
void __fastcall d_delta_kill_monster(int mi,unsigned char x,unsigned char y,unsigned char bLevel);
void __fastcall d_delta_monster_hp(int mi,int hp,unsigned char bLevel);
void __fastcall d_delta_sync_monster(TCmdLocParam1 * packet,char level);
void __fastcall d_delta_sync_golem(TCmdGolem * pG,int pnum,int bLevel);
void __fastcall d_delta_leave_sync(unsigned char bLevel);
bool __fastcall d_delta_portal_inited(int i);
bool __fastcall d_delta_quest_inited(int i);
void __fastcall d_DeltaAddItem(int ii);
void __cdecl d_DeltaSaveLevel();
void __cdecl d_DeltaLoadLevel();
void __fastcall d_NetSendCmd(unsigned char bHiPri,unsigned char bCmd);
void __fastcall d_NetSendCmdGolem(unsigned char mx,unsigned char my,unsigned char dir,unsigned char menemy,int hp,int cl);
void __fastcall d_NetSendCmdLoc(unsigned char bHiPri,unsigned char bCmd,unsigned char x,unsigned char y);
void __fastcall d_NetSendCmdLocParam1(unsigned char bHiPri,unsigned char bCmd,unsigned char x,unsigned char y,int wParam1);
void __fastcall d_NetSendCmdLocParam2(unsigned char bHiPri,unsigned char bCmd,unsigned char x,unsigned char y,int wParam1,int wParam2);
void __fastcall d_NetSendCmdLocParam3(unsigned char bHiPri,unsigned char bCmd,unsigned char x,unsigned char y,int wParam1,int wParam2,int wParam3);
void __fastcall d_NetSendCmdParam1(BOOL bHiPri,unsigned char bCmd,unsigned short wParam1);
void __fastcall d_NetSendCmdParam2(BOOL bHiPri,unsigned char bCmd,unsigned short wParam1,unsigned short wParam2);
void __fastcall d_NetSendCmdParam3(unsigned char bHiPri,unsigned char bCmd,unsigned short wParam1,unsigned short wParam2,int wParam3);
void __fastcall d_NetSendCmdQuest(unsigned char bHiPri,unsigned char q);
void __fastcall d_NetSendCmdGItem(unsigned char bHiPri,unsigned char bCmd,unsigned char mast,unsigned char pnum,int ii);
void __fastcall d_NetSendCmdGItem2(unsigned char usonly,unsigned char bCmd,unsigned char mast,unsigned char pnum,struct TCmdGItem * p);
bool __fastcall d_NetSendCmdReq2(unsigned char bCmd,unsigned char mast,unsigned char pnum,struct TCmdGItem * p);
void __fastcall d_NetSendCmdExtra(struct TCmdGItem * p);
void __fastcall d_NetSendCmdPItem(unsigned char bHiPri,unsigned char bCmd,unsigned char x,unsigned char y);
void __fastcall d_NetSendCmdChItem(unsigned char bHiPri,unsigned char bLoc);
void __fastcall d_NetSendCmdDelItem(BOOL bHiPri,unsigned char bLoc);
void __fastcall d_NetSendCmdDItem(unsigned char bHiPri,int ii);
void __fastcall d_NetSendCmdDamage(BOOL bHiPri,unsigned char bPlr,unsigned int dwDam);
void __fastcall d_NetSendCmdString(int a1,const char * pszStr);
void __fastcall d_RemovePlrPortal(int pnum);
int __fastcall d_ParseCmd(int pnum,TCmd * pCmd);
void __fastcall d_DeltaImportData(unsigned char cmd,int recv_offset);
void * __fastcall d_DeltaImportItem(void * src,void * dst);
void * __fastcall d_DeltaImportObject(void * src,void * dst);
void * __fastcall d_DeltaImportMonster(void * src,void * dst);
char __fastcall d_DeltaImportJunk(int a1);
int __fastcall d_On_SYNCDATA(void * packet,int pnum);
int __fastcall d_On_WALKXY(struct TCmdLoc * pCmd,int pnum);
int __fastcall d_On_ADDSTR(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_ADDMAG(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_ADDDEX(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_ADDVIT(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_SBSPELL(struct TCmdParam1 * pCmd,int pnum);
void d_msg_errorf(char * pszFmt,...);
int __fastcall d_On_GOTOGETITEM(struct TCmdLocParam1 * pCmd,int pnum);
int __fastcall d_On_REQUESTGITEM(struct TCmdGItem * pCmd,int pnum);
bool __fastcall d_i_own_level(int nReqLevel);
int __fastcall d_On_GETITEM(struct TCmdGItem * pCmd,int pnum);
bool __fastcall d_delta_get_item(struct TCmdGItem * pI,unsigned char bLevel);
int __fastcall d_On_GOTOAGETITEM(struct TCmdLocParam1 * pCmd,int pnum);
int __fastcall d_On_REQUESTAGITEM(struct TCmdGItem * pCmd,int pnum);
int __fastcall d_On_AGETITEM(struct TCmdGItem * pCmd,int pnum);
int __fastcall d_On_ITEMEXTRA(struct TCmdGItem * pCmd,int pnum);
int __fastcall d_On_PUTITEM(struct TCmdPItem * pCmd,int pnum);
void __fastcall d_delta_put_item(struct TCmdPItem * pI,int x,int y,unsigned char bLevel);
void __fastcall d_check_update_plr(int pnum);
int __fastcall d_On_SYNCPUTITEM(struct TCmdPItem * pCmd,int pnum);
int __fastcall d_On_RESPAWNITEM(struct TCmdPItem * pCmd,int pnum);
int __fastcall d_On_ATTACKXY(struct TCmdLoc * pCmd,int pnum);
int __fastcall d_On_SATTACKXY(struct TCmdLoc * pCmd,int pnum);
int __fastcall d_On_RATTACKXY(struct TCmdLoc * pCmd,int pnum);
int __fastcall d_On_SPELLXYD(struct TCmdLocParam3 * pCmd,int pnum);
int __fastcall d_On_SPELLXY(struct TCmdLocParam2 * pCmd,int pnum);
int __fastcall d_On_TSPELLXY(struct TCmdLocParam2 * pCmd,int pnum);
int __fastcall d_On_OPOBJXY(struct TCmdLocParam1 * pCmd,int pnum);
int __fastcall d_On_DISARMXY(struct TCmdLocParam1 * pCmd,int pnum);
int __fastcall d_On_OPOBJT(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_ATTACKID(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_ATTACKPID(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_RATTACKID(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_RATTACKPID(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_SPELLID(struct TCmdLocParam2 * pCmd,int pnum);
int __fastcall d_On_SPELLPID(struct TCmdLocParam2 * pCmd,int pnum);
int __fastcall d_On_TSPELLID(struct TCmdLocParam2 * pCmd,int pnum);
int __fastcall d_On_TSPELLPID(struct TCmdLocParam2 * pCmd,int pnum);
int __fastcall d_On_KNOCKBACK(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_RESURRECT(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_HEALOTHER(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_TALKXY(struct TCmdLocParam1 * pCmd,int pnum);
int __fastcall d_On_NEWLVL(struct TCmdParam2 * pCmd,int pnum);
int __fastcall d_On_WARP(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_MONSTDEATH(struct TCmdLocParam1 * pCmd,int pnum);
int __fastcall d_On_KILLGOLEM(struct TCmdLocParam1 * pCmd,int pnum);
int __fastcall d_On_AWAKEGOLEM(struct TCmdGolem * pCmd,int pnum);
int __fastcall d_On_MONSTDAMAGE(struct TCmdLocParam1 * pCmd,int pnum);
int __fastcall d_On_PLRDEAD(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_PLRDAMAGE(struct TCmdDamage * pCmd,int pnum);
int __fastcall d_On_OPENDOOR(struct TCmdParam1 * pCmd,int pnum);
void __fastcall d_delta_sync_object(int oi,unsigned char bCmd,unsigned char bLevel);
int __fastcall d_On_CLOSEDOOR(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_OPERATEOBJ(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_PLROPOBJ(struct TCmdParam2 * pCmd,int pnum);
int __fastcall d_On_BREAKOBJ(struct TCmdParam2 * pCmd,int pnum);
int __fastcall d_On_CHANGEPLRITEMS(struct TCmdChItem * pCmd,int pnum);
int __fastcall d_On_DELPLRITEMS(struct TCmdDelItem * pCmd,int pnum);
int __fastcall d_On_PLRLEVEL(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_DROPITEM(struct TCmdPItem * pCmd,int pnum);
int __fastcall d_On_SEND_PLRINFO(struct TCmdPlrInfoHdr * pCmd,int pnum);
int __fastcall d_On_ACK_PLRINFO(struct TCmdPlrInfoHdr * pCmd,int pnum);
int __fastcall d_On_PLAYER_JOINLEVEL(struct TCmdLocParam1 * pCmd,int pnum);
int __fastcall d_On_ACTIVATEPORTAL(DJunk * pCmd,int pnum);
void __fastcall d_delta_open_portal(int pnum,int x,int y,int bLevel,int bLType,int bSetLvl);
int __fastcall d_On_DEACTIVATEPORTAL(struct TCmd * pCmd,int pnum);
int __fastcall d_On_RETOWN(struct TCmd * pCmd,int pnum);
int __fastcall d_On_SETSTR(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_SETDEX(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_SETMAG(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_SETVIT(struct TCmdParam1 * pCmd,int pnum);
int __fastcall d_On_STRING(struct TCmdString * pCmd,int pnum);
int __fastcall d_On_SYNCQUEST(struct TCmdQuest * pCmd,int pnum);
int __fastcall d_On_ENDSHIELD(int a1,int pnum);
int __cdecl d_On_DEBUG();
int __fastcall d_On_NOVA(struct TCmdLoc * pCmd,int pnum);
int __fastcall d_On_SETSHIELD(int unused,int pnum);
int __fastcall d_On_REMSHIELD(int unused,int pnum);
void d_j_msgcmd_cpp_init_1(...); // Unknown signature
void __cdecl d_msgcmd_cpp_init_1();
void __cdecl d_msgcmd_cpp_init_2();
void __cdecl d_msgcmd_init_event();
void __cdecl d_msgcmd_cleanup_chatcmd_atexit();
void __cdecl d_msgcmd_cleanup_chatcmd();
void __cdecl d_msgcmd_cmd_cleanup();
void __cdecl d_msgcmd_send_chat();
bool __fastcall d_msgcmd_add_server_cmd_W(char * chat_message);
void __fastcall d_msgcmd_add_server_cmd(char * command);
void __fastcall d_msgcmd_init_chatcmd(ChatCmd * chat_cmd);
void __fastcall d_msgcmd_free_event(ChatCmd * a1);
bool __fastcall d_msgcmd_delete_server_cmd_W(ChatCmd * cmd,ServerCommand * extern_msg);
ChatCmd * __fastcall d_msgcmd_alloc_event(ChatCmd * a1,int a2,int a3,int a4,int a5);
void __fastcall d_msgcmd_remove_event(ChatCmd * a1,int a2);
void __fastcall d_msgcmd_event_type(ChatCmd * a1,int a2,int * a3,int a4,int a5);
void __fastcall d_msgcmd_cleanup_chatcmd_1(ChatCmd * a1);
void __fastcall d_msgcmd_cleanup_extern_msg(ServerCommand ** extern_msgs);
void d_j_multi_cpp_init(...); // Unknown signature
void __cdecl d_multi_cpp_init();
void __fastcall d_multi_msg_add(unsigned char * a1,unsigned char a2);
void __fastcall d_NetSendLoPri(unsigned char * pbMsg,unsigned char bLen);
void __fastcall d_multi_copy_packet(void * a1,void * packet,int size);
void __fastcall d_multi_send_packet(void * packet,int dwSize);
void __fastcall d_NetRecvPlrData(TPkt * pkt);
void __fastcall d_NetSendHiPri(unsigned char * pbMsg,unsigned char bLen);
unsigned char * __fastcall d_multi_recv_packet(void * packet,unsigned char * a2,int * a3);
void __fastcall d_multi_send_msg_packet(int a1,unsigned char * a2,unsigned char len);
void __cdecl d_multi_msg_countdown();
void __fastcall d_multi_parse_turn(int pnum,int turn);
void __fastcall d_multi_handle_turn_upper_bit(int pnum);
void __fastcall d_multi_player_left(int pnum,int reason);
void __cdecl d_multi_clear_left_tbl();
void __fastcall d_multi_player_left_msg(int pnum,int left);
void __cdecl d_multi_net_ping();
int __cdecl d_multi_handle_delta();
int __fastcall d_multi_check_pkt_valid(char * a1);
void __cdecl d_multi_mon_seeds();
void __cdecl d_multi_begin_timeout();
void __cdecl d_multi_check_drop_player();
void __cdecl d_multi_process_network_packets();
void __fastcall d_multi_handle_all_packets(int players,TPkt * packet,int a3);
void __cdecl d_multi_process_tmsgs();
void __fastcall d_multi_send_zero_packet(int pnum,char a2,void * pbSrc,int dwLen);
void __cdecl d_NetClose();
char __fastcall d_multi_event_handler(int a1);
void __stdcall d_multi_handle_events(_SNETEVENT * pEvt);
int __fastcall d_NetInit(int bSinglePlayer,int * pfExitProgram);
void __fastcall d_multi_clear_pkt(char * a1);
void __fastcall d_multi_send_pinfo(int pnum,char cmd);
int __fastcall d_InitNewSeed(int newseed);
void __cdecl d_SetupLocalCoords();
int __fastcall d_multi_init_single(_SNETPROGRAMDATA * client_info,_SNETPLAYERDATA * user_info,_SNETUIDATA * ui_info);
int __fastcall d_multi_init_multi(_SNETPROGRAMDATA * client_info,_SNETPLAYERDATA * user_info,_SNETUIDATA * ui_info,int * a4);
int __fastcall d_multi_upgrade(int * a1);
void __fastcall d_multi_player_joins(int pnum,TCmdPlrInfoHdr * cmd,int a3);
void d_j_nthread_cpp_init_1(...); // Unknown signature
void __cdecl d_nthread_cpp_init_1();
void __cdecl d_nthread_cpp_init_2();
void __cdecl d_nthread_init_mutex();
void __cdecl d_nthread_cleanup_mutex_atexit();
void __cdecl d_nthread_cleanup_mutex();
void __fastcall d_nthread_terminate_game(char * pszFcn);
int __fastcall d_nthread_send_and_recv_turn(int cur_turn,int turn_delta);
int __fastcall d_nthread_recv_turns(int * pfSendAsync);
void __cdecl d_nthread_set_turn_upper_bit();
void __fastcall d_nthread_start(bool set_turn_upper_bit);
unsigned int __stdcall d_nthread_handler(void * a1);
void __cdecl d_nthread_cleanup();
void __fastcall d_nthread_ignore_mutex(bool bStart);
bool __cdecl d_nthread_has_500ms_passed();
void __cdecl d_InitObjectGFX();
void __cdecl d_FreeObjectGFX();
bool __fastcall d_RndLocOk(int xp,int yp);
void __fastcall d_InitRndLocObj(int min,int max,int objtype);
void __fastcall d_InitRndLocBigObj(int min,int max,int objtype);
void __fastcall d_InitRndLocObj5x5(int min,int max,int objtype);
void __cdecl d_ClrAllObjects();
void __cdecl d_AddTortures();
void __cdecl d_AddCandles();
void __fastcall d_AddBookLever(int lx1,int ly1,int lx2,int ly2,int x1,int y1,int x2,int y2,int msg);
void __cdecl d_InitRndBarrels();
void __fastcall d_AddL1Objs(int x1,int y1,int x2,int y2);
void __fastcall d_AddL2Objs(int x1,int y1,int x2,int y2);
void __fastcall d_AddL3Objs(int x1,int y1,int x2,int y2);
bool __fastcall d_WallTrapLocOk(int xp,int yp);
void __cdecl d_AddL2Torches();
bool __fastcall d_TorchLocOK(int xp,int yp);
void __cdecl d_AddObjTraps();
void __cdecl d_AddChestTraps();
void __fastcall d_LoadMapObjects(unsigned char * pMap,int startx,int starty,int x1,int y1,int w,int h,int leveridx);
void __fastcall d_LoadMapObjs(unsigned char * pMap,int startx,int starty);
void __cdecl d_AddDiabObjs();
void __cdecl d_AddStoryBooks();
void __fastcall d_AddHookedBodies(int freq);
void __cdecl d_AddL4Goodies();
void __cdecl d_AddLazStand();
void __cdecl d_InitObjects();
void __fastcall d_SetMapObjects(unsigned char * pMap,int startx,int starty);
void __fastcall d_DeleteObject(int oi,int i);
void __fastcall d_SetupObject(int i,int x,int y,int ot);
void __fastcall d_SetObjMapRange(int i,int x1,int y1,int x2,int y2,int v);
void __fastcall d_SetBookMsg(int i,int msg);
void __fastcall d_AddL1Door(int i,int x,int y,int ot);
void __fastcall d_AddSCambBook(int i);
void __fastcall d_AddChest(int i,int t);
void __fastcall d_AddL2Door(int i,int x,int y,int ot);
void __fastcall d_AddL3Door(int i,int x,int y,int ot);
void __fastcall d_AddSarc(int i);
void __fastcall d_AddFlameTrap(int i);
void __fastcall d_AddFlameLvr(int i);
void __fastcall d_AddTrap(int i);
void __fastcall d_AddObjLight(int i,int r);
void __fastcall d_AddBarrel(int i);
void __fastcall d_AddShrine(int i);
void __fastcall d_AddBookcase(int i);
void __fastcall d_AddPurifyingFountain(int i);
void __fastcall d_AddArmorStand(int i);
void __fastcall d_AddDecap(int i);
void __fastcall d_AddVilebook(int i);
void __fastcall d_AddMagicCircle(int i);
void __fastcall d_AddBookstand(int i);
void __fastcall d_AddPedistal(int i);
void __fastcall d_AddStoryBook(int i);
void __fastcall d_AddWeaponRack(int i);
void __fastcall d_AddTorturedBody(int i);
void __fastcall d_GetRndObjLoc(int randarea,int * xx,int * yy);
void __cdecl d_AddMushPatch();
void __cdecl d_AddSlainHero();
void __fastcall d_AddObject(int ot,int ox,int oy);
void __fastcall d_Obj_Light(int i,int lr);
void __fastcall d_Obj_Circle(int i);
void __fastcall d_Obj_StopAnim(int i);
void __fastcall d_Obj_Door(int i);
void __fastcall d_Obj_Sarc(int i);
void __fastcall d_ActivateTrapLine(int ttype,int tid);
void __fastcall d_Obj_FlameTrap(int i);
void __fastcall d_Obj_Trap(int i);
void __fastcall d_Obj_BCrossDamage(int i);
void __cdecl d_ProcessObjects();
void __fastcall d_ObjSetMicro(int dx,int dy,int pn);
void __fastcall d_objects_set_door_piece(int x,int y);
void __fastcall d_ObjSetMini(int x,int y,int v);
void __fastcall d_ObjL1Special(int x1,int y1,int x2,int y2);
void __fastcall d_ObjL2Special(int x1,int y1,int x2,int y2);
void __fastcall d_DoorSet(int oi,int dx,int dy);
void __cdecl d_RedoPlayerVision();
void __fastcall d_OperateL1RDoor(int pnum,int oi,unsigned char sendflag);
void __fastcall d_OperateL1LDoor(int pnum,int oi,unsigned char sendflag);
void __fastcall d_OperateL2RDoor(int pnum,int oi,unsigned char sendflag);
void __fastcall d_OperateL2LDoor(int pnum,int oi,unsigned char sendflag);
void __fastcall d_OperateL3RDoor(int pnum,int oi,unsigned char sendflag);
void __fastcall d_OperateL3LDoor(int pnum,int oi,unsigned char sendflag);
void __fastcall d_MonstCheckDoors(int m);
void __fastcall d_ObjChangeMap(int x1,int y1,int x2,int y2);
void __fastcall d_ObjChangeMapResync(int x1,int y1,int x2,int y2);
void __fastcall d_OperateL1Door(int pnum,int i,unsigned char sendflag);
void __fastcall d_OperateLever(int pnum,int i);
void __fastcall d_OperateBook(int pnum,int i);
void __fastcall d_OperateBookLever(int pnum,int i);
void __fastcall d_OperateSChambBk(int pnum,int i);
void __fastcall d_OperateChest(int pnum,int i,unsigned char sendmsg);
void __fastcall d_OperateMushPatch(int pnum,int i);
void __fastcall d_OperateInnSignChest(int pnum,int i);
void __fastcall d_OperateSlainHero(int pnum,int i,unsigned char sendmsg);
void __fastcall d_OperateTrapLvr(int i);
void __fastcall d_OperateSarc(int pnum,int i,unsigned char sendmsg);
void __fastcall d_OperateL2Door(int pnum,int i,unsigned char sendflag);
void __fastcall d_OperateL3Door(int pnum,int i,unsigned char sendflag);
void __fastcall d_OperatePedistal(int pnum,int i);
void __fastcall d_TryDisarm(int pnum,int i);
int __fastcall d_ItemMiscIdIdx(int imiscid);
void __fastcall d_OperateShrine(int pnum,int i,int sType);
void __fastcall d_OperateSkelBook(int pnum,int i,unsigned char sendmsg);
void __fastcall d_OperateBookCase(int pnum,int i,unsigned char sendmsg);
void __fastcall d_OperateDecap(int pnum,int i,unsigned char sendmsg);
void __fastcall d_OperateArmorStand(int pnum,int i,unsigned char sendmsg);
int __fastcall d_FindValidShrine(int i);
void __fastcall d_OperateGoatShrine(int pnum,int i,int sType);
void __fastcall d_OperateCauldron(int pnum,int i,int sType);
bool __fastcall d_OperateFountains(int pnum,int i);
void __fastcall d_OperateWeaponRack(int pnum,int i,unsigned char sendmsg);
void __fastcall d_OperateStoryBook(int pnum,int i);
void __fastcall d_OperateLazStand(int pnum,int i);
void __fastcall d_OperateObject(int pnum,int i,unsigned char TeleFlag);
void __fastcall d_SyncOpL1Door(int pnum,int cmd,int i);
void __fastcall d_SyncOpL2Door(int pnum,int cmd,int i);
void __fastcall d_SyncOpL3Door(int pnum,int cmd,int i);
void __fastcall d_SyncOpObject(int pnum,int cmd,int i);
void __fastcall d_BreakCrux(int i);
void __fastcall d_BreakBarrel(int pnum,int i,int dam,unsigned char forcebreak,int sendmsg);
void __fastcall d_BreakObject(int pnum,int oi);
void __fastcall d_SyncBreakObj(int pnum,int oi);
void __fastcall d_SyncL1Doors(int i);
void __fastcall d_SyncCrux(int i);
void __fastcall d_SyncLever(int i);
void __fastcall d_SyncQSTLever(int i);
void __fastcall d_SyncPedistal(int i);
void __fastcall d_SyncL2Doors(int i);
void __fastcall d_SyncL3Doors(int i);
void __fastcall d_SyncObjectAnim(int o);
void __fastcall d_GetObjectStr(int i);
void d_j_pack_cpp_init(...); // Unknown signature
void __cdecl d_pack_cpp_init();
void __fastcall d_PackPlayer(PkPlayerStruct * pPack,int pnum,bool manashield);
void __fastcall d_PackItem(PkItemStruct * id,ItemStruct * is);
void __fastcall d_VerifyGoldSeeds(PlayerStruct * pPlayer);
void __fastcall d_UnPackPlayer(PkPlayerStruct * pPack,int pnum,bool killok);
void __fastcall d_UnPackItem(PkItemStruct * is,ItemStruct * id);
void d_j_palette_cpp_init(...); // Unknown signature
void __cdecl d_palette_cpp_init();
void __cdecl d_SaveGamma();
void __cdecl d_palette_init();
void __cdecl d_LoadGamma();
void __cdecl d_LoadSysPal();
void __fastcall d_LoadPalette(char * pszFileName);
void __fastcall d_LoadRndLvlPal(int l);
void __cdecl d_ResetPal();
void __cdecl d_IncreaseGamma();
void __cdecl d_palette_update();
void __fastcall d_ApplyGamma(PALETTEENTRY * dst,PALETTEENTRY * src,int n);
void __cdecl d_DecreaseGamma();
int __fastcall d_UpdateGamma(int gamma);
void __cdecl d_BlackPalette();
void __fastcall d_SetFadeLevel(int fadeval);
void __fastcall d_PaletteFadeIn(int fr);
void __fastcall d_PaletteFadeOut(int fr);
void __cdecl d_palette_update_caves();
void __fastcall d_palette_update_quest_palette(int n);
bool __cdecl d_palette_get_colour_cycling();
void __fastcall d_palette_set_color_cycling(bool enabled);
int __fastcall d_FindPath(BOOL (__fastcall * PosOk)(int,int,int),int PosOkArg,int sx,int sy,int dx,int dy,char * path);
int __fastcall d_path_get_h_cost(int sx,int sy,int dx,int dy);
int __fastcall d_path_check_equal(PATHNODE * pPath,int dx,int dy);
PATHNODE * __cdecl d_GetNextPath();
bool __fastcall d_path_solid_pieces(PATHNODE * pPath,int dx,int dy);
int __fastcall d_path_get_path(BOOL (__fastcall * PosOk)(int,int,int),int PosOkArg,PATHNODE * pPath,int x,int y);
int __fastcall d_path_parent_path(PATHNODE * pPath,int dx,int dy,int sx,int sy);
PATHNODE * __fastcall d_path_get_node1(int dx,int dy);
PATHNODE * __fastcall d_path_get_node2(int dx,int dy);
void __fastcall d_path_next_node(PATHNODE * pPath);
void __fastcall d_path_set_coords(PATHNODE * pPath);
void __fastcall d_path_push_active_step(PATHNODE * pPath);
PATHNODE * __cdecl d_path_pop_active_step();
PATHNODE * __cdecl d_path_new_step();
void d_j_pfile_cpp_init(...); // Unknown signature
void __cdecl d_pfile_cpp_init();
void __cdecl d_pfile_init_save_directory();
void __fastcall d_pfile_check_available_space(char * pszDir);
void __cdecl d_pfile_write_hero();
int __fastcall d_pfile_get_save_num_from_name(char * name);
void __fastcall d_pfile_encode_hero(PkPlayerStruct * pPack);
bool __fastcall d_pfile_open_archive(bool a1,int save_num);
void __fastcall d_pfile_get_save_path(char * pszBuf,int dwBufSize,int save_num);
void __fastcall d_pfile_flush(bool is_single_player,int save_num);
bool __fastcall d_pfile_create_player_description(char * dst,int len);
int __fastcall d_pfile_create_save_file(char * name_1,char * name_2);
void __cdecl d_pfile_flush_W();
void __fastcall d_game_2_ui_player(PlayerStruct * p,_uiheroinfo * heroinfo,bool bHasSaveFile);
char __fastcall d_game_2_ui_class(PlayerStruct * p);
BOOL __stdcall d_pfile_ui_set_hero_infos(BOOL (__stdcall * ui_add_hero_info)(_uiheroinfo *));
char * __fastcall d_GetSaveDirectory(char * dst,int dst_size,int save_num);
bool __fastcall d_pfile_read_hero(void * archive,PkPlayerStruct * pPack);
void * __fastcall d_pfile_open_save_archive(int * unused,int save_num);
void __fastcall d_pfile_SFileCloseArchive(void * hsArchive);
bool __fastcall d_pfile_archive_contains_game(void * hsArchive);
BOOL __stdcall d_pfile_ui_set_class_stats(int player_class_nr,_uidefaultstats * class_stats);
int __fastcall d_pfile_get_player_class(int player_class_nr);
BOOL __stdcall d_pfile_ui_save_create(_uiheroinfo * heroinfo);
bool __stdcall d_pfile_get_file_name(int lvl,char * dst);
BOOL __stdcall d_pfile_delete_save(_uiheroinfo * hero_info);
void __cdecl d_pfile_read_player_from_save();
void __fastcall d_GetTempLevelNames(char * szTemp);
void __fastcall d_GetPermLevelNames(char * szPerm);
void __fastcall d_pfile_get_game_name(char * dst);
void __cdecl d_pfile_remove_temp_files();
bool __stdcall d_GetTempSaveNames(int dwIndex,char * szTemp);
void __cdecl d_pfile_rename_temp_to_perm();
bool __stdcall d_GetPermSaveNames(int dwIndex,char * szPerm);
void __fastcall d_pfile_write_save_file(char * pszName,void * pbData,int dwLen,int qwLen);
void __fastcall d_pfile_strcpy(char * dst,char * src);
char * __fastcall d_pfile_read(char * pszName,int * pdwLen);
void __fastcall d_pfile_update(bool force_save);
void d_j_player_cpp_init(...); // Unknown signature
void __cdecl d_player_cpp_init();
void __fastcall d_SetPlayerGPtrs(UCHAR * pData,UCHAR ** pAnim);
void __fastcall d_LoadPlrGFX(int pnum,player_graphic gfxflag);
void __fastcall d_InitPlayerGFX(int pnum);
void __fastcall d_InitPlrGFXMem(int pnum);
DWORD __fastcall d_GetPlrGFXSize(char * szCel);
void __fastcall d_FreePlayerGFX(int pnum);
void __fastcall d_NewPlrAnim(int pnum,unsigned char * Peq,int numFrames,int Delay,int width);
void __fastcall d_ClearPlrPVars(int pnum);
void __fastcall d_SetPlrAnims(int pnum);
void __fastcall d_ClearPlrRVars(PlayerStruct * p);
void __fastcall d_CreatePlayer(int pnum,char c);
int __fastcall d_CalcStatDiff(int pnum);
void __fastcall d_NextPlrLevel(int pnum);
void __fastcall d_AddPlrExperience(int pnum,int lvl,int exp);
void __fastcall d_AddPlrMonstExper(int lvl,int exp,char pmask);
void __fastcall d_InitPlayer(int pnum,BOOL FirstTime);
void __cdecl d_InitMultiView();
void __fastcall d_InitPlayerLoc(int pnum,BOOL flag);
BOOL __fastcall d_SolidLoc(int x,int y);
BOOL __fastcall d_PlrDirOK(int pnum,int dir);
void __fastcall d_PlrClrTrans(int x,int y);
void __fastcall d_PlrDoTrans(int x,int y);
void __fastcall d_SetPlayerOld(int pnum);
void __fastcall d_FixPlayerLocation(int pnum,int dir);
void __fastcall d_StartStand(int pnum,int dir);
void __fastcall d_StartWalkStand(int pnum);
void __fastcall d_PM_ChangeLightOff(int pnum);
void __fastcall d_PM_ChangeOffset(int pnum);
void __fastcall d_StartWalk(int pnum,int xvel,int yvel,int xadd,int yadd,int EndDir,int sdir);
void __fastcall d_StartWalk2(int pnum,int xvel,int yvel,int xoff,int yoff,int xadd,int yadd,int EndDir,int sdir);
void __fastcall d_StartWalk3(int pnum,int xvel,int yvel,int xoff,int yoff,int xadd,int yadd,int mapx,int mapy,int EndDir,int sdir);
void __fastcall d_StartAttack(int pnum,int d);
void __fastcall d_StartRangeAttack(int pnum,int d,int cx,int cy);
void __fastcall d_StartPlrBlock(int pnum,int dir);
void __fastcall d_StartSpell(int pnum,int d,int cx,int cy);
void __fastcall d_FixPlrWalkTags(int pnum);
void __fastcall d_RemovePlrFromMap(int pnum);
void __fastcall d_StartPlrHit(int pnum,int dam,BOOL forcehit);
void __fastcall d_RespawnDeadItem(ItemStruct * itm,int x,int y);
void __fastcall d_StartPlayerKill(int pnum,int earflag);
void __fastcall d_PlrDeadItem(int pnum,struct ItemStruct * itm,int xx,int yy);
void __fastcall d_DropHalfPlayersGold(int pnum);
void __fastcall d_SyncPlrKill(int pnum,int earflag);
void __fastcall d_j_StartPlayerKill(int pnum,int earflag);
void __fastcall d_RemovePlrMissiles(int pnum);
void __fastcall d_InitLevelChange(int pnum);
void __fastcall d_StartNewLvl(int pnum,int fom,int lvl);
void __fastcall d_RestartTownLvl(int pnum);
void __fastcall d_StartWarpLvl(int pnum,int pidx);
BOOL __fastcall d_PM_DoStand(int pnum);
BOOL __fastcall d_PM_DoWalk(int pnum);
BOOL __fastcall d_PM_DoWalk2(int pnum);
BOOL __fastcall d_PM_DoWalk3(int pnum);
BOOL __fastcall d_WeaponDur(int pnum,int durrnd);
bool __fastcall d_PlrHitMonst(int pnum,int m);
BOOL __fastcall d_PlrHitPlr(int pnum,char p);
BOOL __fastcall d_PlrHitObj(int pnum,int mx,int my);
BOOL __fastcall d_PM_DoAttack(int pnum);
BOOL __fastcall d_PM_DoRangeAttack(int pnum);
void __fastcall d_ShieldDur(int pnum);
BOOL __fastcall d_PM_DoBlock(int pnum);
BOOL __fastcall d_PM_DoSpell(int pnum);
BOOL __fastcall d_PM_DoGotHit(int pnum);
void __fastcall d_ArmorDur(int pnum);
BOOL __fastcall d_PM_DoDeath(int pnum);
void __fastcall d_CheckNewPath(int pnum);
BOOL __fastcall d_PlrDeathModeOK(int pnum);
void __cdecl d_ValidatePlayer();
void __cdecl d_ProcessPlayers();
void __fastcall d_CheckCheatStats(int pnum);
void __fastcall d_ClrPlrPath(int pnum);
BOOL __fastcall d_PosOkPlayer(int pnum,int px,int py);
void __fastcall d_MakePlrPath(int pnum,int xx,int yy,unsigned char endspace);
void __fastcall d_CheckPlrSpell();
void __fastcall d_SyncPlrAnim(int pnum);
void __fastcall d_SyncInitPlrPos(int pnum);
void __fastcall d_SyncInitPlr(int pnum);
void __fastcall d_CheckStats(int pnum);
void __fastcall d_ModifyPlrStr(int pnum,int l);
void __fastcall d_ModifyPlrMag(int pnum,int l);
void __fastcall d_ModifyPlrDex(int pnum,int l);
void __fastcall d_ModifyPlrVit(int pnum,int l);
void __fastcall d_SetPlayerHitPoints(int pnum,int newhp);
void __fastcall d_SetPlrStr(int pnum,int v);
void __fastcall d_SetPlrMag(int pnum,int v);
void __fastcall d_SetPlrDex(int pnum,int v);
void __fastcall d_SetPlrVit(int pnum,int v);
void __fastcall d_InitDungMsgs(int pnum);
void __cdecl d_PlayDungMsgs();
void __fastcall d_plrmsg_delay(int a1);
char * __fastcall d_ErrorPlrMsg(char * pszMsg);
size_t d_EventPlrMsg(char * pszFmt,...);
void __fastcall d_SendPlrMsg(int pnum,const char * pszStr);
void __cdecl d_ClearPlrMsg();
void __cdecl d_InitPlrMsg();
void __cdecl d_DrawPlrMsg();
void __fastcall d_PrintPlrMsg(int no,int x,int y,char * str,int just);
void __cdecl d_InitPortals();
void __fastcall d_SetPortalStats(int i,int o,int x,int y,int lvl,int lvltype);
void __fastcall d_AddWarpMissile(int i,int x,int y);
void __cdecl d_SyncPortals();
void __fastcall d_AddInTownPortal(int i);
void __fastcall d_ActivatePortal(int i,int x,int y,int lvl,int lvltype,int sp);
void __fastcall d_DeactivatePortal(int i);
bool __fastcall d_PortalOnLevel(int i);
void __fastcall d_RemovePortalMissile(int id);
void __fastcall d_SetCurrentPortal(int p);
void __cdecl d_GetPortalLevel();
void __cdecl d_GetPortalLvlPos();
BOOL __fastcall d_PosOkPortal(int lvl,int x,int y);
void __cdecl d_InitQuests();
void __cdecl d_CheckQuests();
bool __cdecl d_ForceQuests();
BOOL __fastcall d_QuestStatus(int i);
void __fastcall d_CheckQuestKill(int m,unsigned char sendmsg);
void __cdecl d_DrawButcher();
void __fastcall d_DrawSkelKing(int q,int x,int y);
void __fastcall d_DrawWarLord(int x,int y);
void __fastcall d_DrawSChamber(int q,int x,int y);
void __fastcall d_DrawLTBanner(int x,int y);
void __fastcall d_DrawBlind(int x,int y);
void __fastcall d_DrawBlood(int x,int y);
void __fastcall d_DRLG_CheckQuests(int x,int y);
void __cdecl d_SetReturnLvlPos();
void __cdecl d_GetReturnLvlPos();
void __cdecl d_ResyncMPQuests();
void __cdecl d_ResyncQuests();
void __fastcall d_PrintQLString(int x,int y,unsigned char cjustflag,char * str,int col);
void __cdecl d_DrawQuestLog();
void __cdecl d_StartQuestlog();
void __cdecl d_QuestlogUp();
void __cdecl d_QuestlogDown();
void __cdecl d_QuestlogEnter();
void __cdecl d_QuestlogESC();
void __fastcall d_SetMultiQuest(int q,int s,unsigned char l,int v1);
bool __cdecl d_SystemSupported();
bool __cdecl d_RestrictedTest();
bool __cdecl d_ReadOnlyTest();
void d_j_scrollrt_cpp_init(...); // Unknown signature
void __cdecl d_scrollrt_cpp_init();
void __cdecl d_ClearCursor();
void __fastcall d_DrawMissile(int x,int y,int sx,int sy,int a5,int a6,int del_flag);
void __fastcall d_DrawClippedMissile(int x,int y,int sx,int sy,int a5,int a6,int a7);
void __fastcall d_DrawDeadPlayer(int x,int y,int sx,int sy,int a5,int a6,bool clipped);
void __fastcall d_DrawPlayer(int pnum,int x,int y,int px,int py,unsigned char * animdata,int animframe,int animwidth,int a9,int a10);
void __fastcall d_DrawClippedPlayer(int pnum,int x,int y,int px,int py,unsigned char * animdata,int animframe,int animwidth,int a9,int a10);
void __fastcall d_DrawView(int StartX,int StartY);
void __fastcall d_DrawGame(int x,int y);
void __fastcall d_scrollrt_draw_lower(int x,int y,int sx,int sy,int a5,int some_flag);
void __fastcall d_scrollrt_draw_clipped_dungeon(char * a1,int sx,int sy,int a4,int a5,int a6);
void __fastcall d_DrawClippedMonster(int x,int y,int a3,int a4,int mon_id,int a6,int a7);
void __fastcall d_DrawClippedObject(int x,int y,int a3,int a4,int pre_flag,int a6,int dir);
void __fastcall d_scrollrt_draw_clipped_e_flag(char * buffer,int x,int y,int a4,int a5);
void __fastcall d_scrollrt_draw_lower_2(int x,int y,int sx,int sy,int a5,int a6,int some_flag);
void __fastcall d_scrollrt_draw_clipped_dungeon_2(char * buffer,int x,int y,int a4,int a5,int sx,int sy,int me_flag);
void __fastcall d_scrollrt_draw_clipped_e_flag_2(char * buffer,int x,int y,int a4,signed int a5,int sx,int sy);
void __fastcall d_scrollrt_draw_upper(int x,int y,int sx,int sy,int a5,int a6,int some_flag);
void __fastcall d_scrollrt_draw_dungeon(char * buffer,int x,int y,int a4,int a5,int sx,int sy,int me_flag);
void __fastcall d_DrawMonster(int x,int y,int a3,int a4,int mon_id,int a6,int a7);
void __fastcall d_DrawObject(int x,int y,int a3,int a4,int pre_flag,int a6,int dir);
void __fastcall d_scrollrt_draw_e_flag(char * buffer,int x,int y,int a4,int a5,int sx,int sy);
void __fastcall d_DrawZoom(int x,int y);
void __cdecl d_ClearScreenBuffer();
void __fastcall d_scrollrt_draw_game_screen(bool draw_cursor);
void __cdecl d_scrollrt_draw_cursor_back_buffer();
void __cdecl d_scrollrt_draw_cursor_item();
void __fastcall d_DrawMain(int dwHgt,int draw_desc,int draw_hp,int draw_mana,int draw_sbar,int draw_btn);
void __fastcall d_DoBlitScreen(int dwX,int dwY,int dwWdt,int dwHgt);
void __cdecl d_DrawAndBlit();
int __fastcall d_ObjIndex(int x,int y);
void __cdecl d_AddSKingObjs();
void __cdecl d_AddSChamObjs();
void __cdecl d_AddVileObjs();
void __fastcall d_DRLG_SetMapTrans(char * sFileName);
void __cdecl d_LoadSetMap();
void __cdecl d_SHA1Clear();
void __fastcall d_SHA1Result(int n,char Message_Digest[SHA1HashSize]);
void __fastcall d_SHA1Calculate(int n,const char * data,char Message_Digest[SHA1HashSize]);
void __fastcall d_SHA1Input(SHA1Context * context,const char * message_array,int len);
void __fastcall d_SHA1ProcessMessageBlock(SHA1Context * context);
void __fastcall d_SHA1Reset(int n);
void d_j_sound_cpp_init(...); // Unknown signature
void __cdecl d_sound_cpp_init();
void __fastcall d_snd_update(bool bStopAll);
void __fastcall d_snd_stop_snd(TSnd * pSnd);
bool __fastcall d_snd_playing(TSnd * pSnd);
void __fastcall d_snd_play_snd(TSnd * pSnd,int lVolume,int lPan);
IDirectSoundBuffer * __fastcall d_sound_dup_channel(IDirectSoundBuffer * DSB);
bool __fastcall d_sound_file_reload(TSnd * sound_file,IDirectSoundBuffer * DSB);
TSnd * __fastcall d_sound_file_load(char * path);
void __fastcall d_sound_CreateSoundBuffer(TSnd * sound_file);
void __fastcall d_sound_file_cleanup(TSnd * sound_file);
void __fastcall d_snd_init(HWND hWnd);
void __fastcall d_sound_load_volume(char * value_name,int * value);
void __fastcall d_sound_create_primary_buffer(int music_track);
int __fastcall d_sound_DirectSoundCreate(GUID * guid,IDirectSound ** DS,int always_null);
void __cdecl d_sound_cleanup();
void __fastcall d_sound_store_volume(char * key,int value);
void __cdecl d_music_stop();
void __fastcall d_music_start(int nTrack);
void __fastcall d_sound_disable_music(bool disable);
int __fastcall d_sound_get_or_set_music_volume(int volume);
int __fastcall d_sound_get_or_set_sound_volume(int volume);
int __fastcall d_GetManaAmount(int id,int sn);
void __fastcall d_UseMana(int id,int sn);
BOOL __fastcall d_CheckSpell(int id,int sn,BYTE st,BOOL manaonly);
void __fastcall d_CastSpell(int id,int spl,int sx,int sy,int dx,int dy,BOOL caster,int spllvl);
void __fastcall d_DoResurrect(int pnum,int rid);
void __fastcall d_PlacePlayer(int pnum);
void __fastcall d_DoHealOther(int pnum,int rid);
void __cdecl d_InitStores();
void __cdecl d_SetupTownStores();
void __cdecl d_FreeStoreMem();
void __cdecl d_DrawSTextBack();
void __fastcall d_PrintSString(int x,int y,unsigned char cjustflag,char * str,int col,int val);
void __fastcall d_DrawSLine(int y);
void __fastcall d_DrawSArrows(int y1,int y2);
void __cdecl d_DrawSTextHelp();
void __fastcall d_ClearSText(int s,int e);
void __fastcall d_AddSLine(int y);
void __fastcall d_AddSTextVal(int y,int val);
void __fastcall d_OffsetSTextY(int y,int yo);
void __fastcall d_AddSText(int x,int y,unsigned char j,char * str,int clr,int sel);
void __cdecl d_StoreAutoPlace();
void __cdecl d_S_StartSmith();
void __fastcall d_S_ScrollSBuy(int idx);
void __fastcall d_PrintStoreItem(ItemStruct * x,int l,char iclr);
void __cdecl d_S_StartSBuy();
void __fastcall d_S_ScrollSPBuy(int idx);
bool __cdecl d_S_StartSPBuy();
bool __fastcall d_SmithSellOk(int i);
void __fastcall d_S_ScrollSSell(int idx);
void __cdecl d_S_StartSSell();
bool __fastcall d_SmithRepairOk(int i);
void __cdecl d_S_StartSRepair();
void __fastcall d_AddStoreHoldRepair(ItemStruct * itm,int i);
void __cdecl d_S_StartWitch();
void __fastcall d_S_ScrollWBuy(int idx);
void __cdecl d_S_StartWBuy();
bool __fastcall d_WitchSellOk(int i);
void __cdecl d_S_StartWSell();
bool __fastcall d_WitchRechargeOk(int i);
void __fastcall d_AddStoreHoldRecharge(ItemStruct itm,int i);
void __cdecl d_S_StartWRecharge();
void __cdecl d_S_StartNoMoney();
void __cdecl d_S_StartNoRoom();
void __cdecl d_S_StartConfirm();
void __cdecl d_S_StartBoy();
void __cdecl d_S_StartBBoy();
void __cdecl d_S_StartHealer();
void __fastcall d_S_ScrollHBuy(int idx);
void __cdecl d_S_StartHBuy();
void __cdecl d_S_StartStory();
bool __fastcall d_IdItemOk(ItemStruct * i);
void __fastcall d_AddStoreHoldId(ItemStruct itm,int i);
void __cdecl d_S_StartSIdentify();
void __cdecl d_S_StartIdShow();
void __cdecl d_S_StartTalk();
void __cdecl d_S_StartTavern();
void __cdecl d_S_StartBarMaid();
void __cdecl d_S_StartDrunk();
void __fastcall d_StartStore(char s);
void __cdecl d_DrawSText();
void __cdecl d_STextESC();
void __cdecl d_STextUp();
void __cdecl d_STextDown();
void __cdecl d_STextPrior();
void __cdecl d_STextNext();
void __cdecl d_S_SmithEnter();
void __fastcall d_SetGoldCurs(int pnum,int i);
void __fastcall d_SetSpdbarGoldCurs(int pnum,int i);
void __fastcall d_TakePlrsMoney(int cost);
void __cdecl d_SmithBuyItem();
void __cdecl d_S_SBuyEnter();
void __cdecl d_SmithBuyPItem();
void __cdecl d_S_SPBuyEnter();
bool __fastcall d_StoreGoldFit(int idx);
void __fastcall d_PlaceStoreGold(int v);
void __cdecl d_StoreSellItem();
void __cdecl d_S_SSellEnter();
void __cdecl d_SmithRepairItem();
void __cdecl d_S_SRepairEnter();
void __cdecl d_S_WitchEnter();
void __cdecl d_WitchBuyItem();
void __cdecl d_S_WBuyEnter();
void __cdecl d_S_WSellEnter();
void __cdecl d_WitchRechargeItem();
void __cdecl d_S_WRechargeEnter();
void __cdecl d_S_BoyEnter();
void __cdecl d_BoyBuyItem();
void __cdecl d_HealerBuyItem();
void __cdecl d_S_BBuyEnter();
void __cdecl d_StoryIdItem();
void __cdecl d_S_ConfirmEnter();
void __cdecl d_S_HealerEnter();
void __cdecl d_S_HBuyEnter();
void __cdecl d_S_StoryEnter();
void __cdecl d_S_SIDEnter();
void __cdecl d_S_TalkEnter();
void __cdecl d_S_TavernEnter();
void __cdecl d_S_BarmaidEnter();
void __cdecl d_S_DrunkEnter();
void __cdecl d_STextEnter();
void __cdecl d_CheckStoreBtn();
void __cdecl d_ReleaseStoreBtn();
int __fastcall d_sync_all_monsters(TSyncHeader * packet,int size);
void __cdecl d_sync_one_monster();
int __fastcall d_sync_monster_active(TSyncMonster * packet);
void __fastcall d_sync_monster_pos(TSyncMonster * packet,int mon_id);
int __fastcall d_sync_monster_active2(TSyncMonster * packet);
void __fastcall d_SyncPlrInv(TSyncHeader * pSync);
int __fastcall d_SyncData(int pnum,TSyncHeader * packet);
void __fastcall d_sync_monster_data(int pnum,TSyncMonster * packet);
void __cdecl d_sync_clear_pkt();
bool __fastcall d_TFit_Shrine(int i);
bool __fastcall d_TFit_Obj5(int t);
bool __fastcall d_TFit_SkelRoom(int t);
bool __fastcall d_TFit_GoatShrine(int t);
bool __fastcall d_CheckThemeObj3(int xp,int yp,int t,int f);
bool __fastcall d_TFit_Obj3(int t);
bool __fastcall d_CheckThemeReqs(int t);
bool __fastcall d_SpecialThemeFit(int i,int t);
bool __fastcall d_CheckThemeRoom(int tv);
void __cdecl d_InitThemes();
void __cdecl d_HoldThemeRooms();
void __fastcall d_PlaceThemeMonsts(int t,int f);
void __fastcall d_Theme_Barrel(int t);
void __fastcall d_Theme_Shrine(int t);
void __fastcall d_Theme_MonstPit(int t);
void __fastcall d_Theme_SkelRoom(int t);
void __fastcall d_Theme_Treasure(int t);
void __fastcall d_Theme_Library(int t);
void __fastcall d_Theme_Torture(int t);
void __fastcall d_Theme_BloodFountain(int t);
void __fastcall d_Theme_Decap(int t);
void __fastcall d_Theme_PurifyingFountain(int t);
void __fastcall d_Theme_ArmorStand(int t);
void __fastcall d_Theme_GoatShrine(int t);
void __fastcall d_Theme_Cauldron(int t);
void __fastcall d_Theme_MurkyFountain(int t);
void __fastcall d_Theme_TearFountain(int t);
void __fastcall d_Theme_BrnCross(int t);
void __fastcall d_Theme_WeaponRack(int t);
void __cdecl d_UpdateL4Trans();
void __cdecl d_CreateThemeRooms();
int __fastcall d_tmsg_get(unsigned char * pbMsg,unsigned int dwMaxLen);
void __fastcall d_tmsg_add(unsigned char * pbMsg,unsigned char bLen);
void __cdecl d_tmsg_cleanup();
void __fastcall d_town_clear_upper_buf(unsigned char * a1);
void __fastcall d_town_clear_low_buf(unsigned char * y_related);
void __fastcall d_town_draw_clipped_e_flag(void * buffer,int x,int y,int sx,int sy);
void __fastcall d_town_draw_clipped_town(void * unused,int x,int y,int sx,int sy,int some_flag);
void __fastcall d_town_draw_lower(int x,int y,int sx,int sy,int a5,int some_flag);
void __fastcall d_town_draw_clipped_e_flag_2(void * buffer,int x,int y,int a4,int a5,int sx,int sy);
void __fastcall d_town_draw_clipped_town_2(int x,int y,int a3,int a4,int a5,int sx,int sy,int some_flag);
void __fastcall d_town_draw_lower_2(int x,int y,int sx,int sy,int a5,int a6,int some_flag);
void __fastcall d_town_draw_e_flag(void * buffer,int x,int y,int a4,int dir,int sx,int sy);
void __fastcall d_town_draw_town_all(void * buffer,int x,int y,int a4,int dir,int sx,int sy,int some_flag);
void __fastcall d_town_draw_upper(int x,int y,int sx,int sy,int a5,int a6,int some_flag);
void __fastcall d_T_DrawGame(int x,int y);
void __fastcall d_T_DrawZoom(int x,int y);
void __fastcall d_T_DrawView(int StartX,int StartY);
void __cdecl d_town_init_dpiece_defs_map();
void __fastcall d_T_FillSector(unsigned char * P3Tiles,unsigned char * pSector,int xi,int yi,int w,int h);
void __fastcall d_T_FillTile(unsigned char * P3Tiles,int xx,int yy,int t);
void __cdecl d_T_Pass3();
void __fastcall d_CreateTown(int entry);
int __fastcall d_GetActiveTowner(int t);
void __fastcall d_SetTownerGPtrs(void * pData,void ** pAnim);
void __fastcall d_NewTownerAnim(int tnum,unsigned char * pAnim,int numFrames,int Delay);
void __fastcall d_InitTownerInfo(int i,int w,bool sel,int t,int x,int y,int ao,int tp);
void __fastcall d_InitQstSnds(int i);
void __cdecl d_InitSmith();
void __cdecl d_InitBarOwner();
void __cdecl d_InitTownDead();
void __cdecl d_InitWitch();
void __cdecl d_InitBarmaid();
void __cdecl d_InitBoy();
void __cdecl d_InitHealer();
void __cdecl d_InitTeller();
void __cdecl d_InitDrunk();
void __cdecl d_InitCows();
void __cdecl d_InitTowners();
void __cdecl d_FreeTownerGFX();
void __fastcall d_TownCtrlMsg(int i);
void __cdecl d_TownBlackSmith();
void __cdecl d_TownBarOwner();
void __cdecl d_TownDead();
void __cdecl d_TownHealer();
void __cdecl d_TownStory();
void __cdecl d_TownDrunk();
void __cdecl d_TownBoy();
void __cdecl d_TownWitch();
void __cdecl d_TownBarMaid();
void __cdecl d_TownCow();
void __cdecl d_ProcessTowners();
ItemStruct * __fastcall d_PlrHasItem(int pnum,int item,int * i);
void __fastcall d_TownerTalk(int t);
void __fastcall d_TalkToTowner(int p,int t);
void __fastcall d_CowSFX(int pnum);
void d_j_track_cpp_init(...); // Unknown signature
void __cdecl d_track_cpp_init();
void __fastcall d_track_repeat_walk(bool rep);
void __cdecl d_track_process();
bool __cdecl d_track_isscrolling();
void __cdecl d_InitNoTriggers();
void __cdecl d_InitTownTriggers();
void __cdecl d_InitL1Triggers();
void __cdecl d_InitL2Triggers();
void __cdecl d_InitL3Triggers();
void __cdecl d_InitL4Triggers();
void __cdecl d_InitSKingTriggers();
void __cdecl d_InitSChambTriggers();
void __cdecl d_InitPWaterTriggers();
void __cdecl d_InitVPTriggers();
unsigned char __cdecl d_ForceTownTrig();
unsigned char __cdecl d_ForceL1Trig();
unsigned char __cdecl d_ForceL2Trig();
unsigned char __cdecl d_ForceL3Trig();
unsigned char __cdecl d_ForceL4Trig();
void __cdecl d_Freeupstairs();
unsigned char __cdecl d_ForceSKingTrig();
unsigned char __cdecl d_ForceSChambTrig();
unsigned char __cdecl d_ForcePWaterTrig();
void __cdecl d_CheckTrigForce();
void __cdecl d_CheckTriggers();
void d_j_wave_cpp_init(...); // Unknown signature
void __cdecl d_wave_cpp_init();
bool __fastcall d_WCloseFile(void * file);
int __fastcall d_WGetFileSize(HANDLE hsFile,unsigned long * a2);
void __fastcall d_WGetFileArchive(HANDLE hsFile,int * a2,char * dwInitParam);
int __fastcall d_WOpenFile(char * dwInitParam,HANDLE * phsFile,int a3);
char __fastcall d_WReadFile(HANDLE hsFile,char * buf,int a3);
int __fastcall d_WSetFilePointer(HANDLE file1,int offset,HANDLE file2,int whence);
int __fastcall d_LoadWaveFormat(HANDLE hsFile,WAVEFORMATEX * pwfx);
void * __fastcall d_AllocateMemFile(HANDLE hsFile,MEMFILE * pMemFile,unsigned int dwPos);
void __fastcall d_FreeMemFile(MEMFILE * pMemFile);
int __fastcall d_ReadWaveFile(MEMFILE * pMemFile,WAVEFORMATEX * pwfx,int * a3);
int __fastcall d_ReadMemFile(MEMFILE * pMemFile,void * lpBuf,size_t a3);
void __fastcall d_FillMemFile(MEMFILE * pMemFile);
int __fastcall d_SeekMemFile(MEMFILE * pMemFile,unsigned int lDist,int dwMethod);
int __fastcall d_ReadWaveSection(MEMFILE * pMemFile,int a2,int * a3);
void * __fastcall d_LoadWaveFile(HANDLE hsFile,WAVEFORMATEX * pwfx,int * a3);
void __fastcall d_j_engine_mem_free(void * ptr);
void __fastcall d_drawTopArchesUpperScreen(unsigned char * pbDst);
void __fastcall d_drawBottomArchesUpperScreen(unsigned char * pbDst,unsigned int * pMask);
void __fastcall d_drawUpperScreen(unsigned char * pbDst);
void __fastcall d_drawTopArchesLowerScreen(unsigned char * pbDst);
void __fastcall d_drawBottomArchesLowerScreen(unsigned char * pbDst,unsigned int * pMask);
void __fastcall d_drawLowerScreen(unsigned char * pbDst);
void __fastcall d_world_draw_black_tile(unsigned char * pbDst);
void d_strlen(...); // Unknown signature
void d_sprintf(...); // Unknown signature
void d_strcpy(...); // Unknown signature
void d_strcat(...); // Unknown signature
void d_srand(...); // Unknown signature
void d_rand(...); // Unknown signature
void d_strchr(...); // Unknown signature
void d_time(...); // Unknown signature
}