1
0
Fork 0

Add files via upload

pull/1/head
galaxyhaxz 2018-06-06 21:15:59 -05:00 committed by GitHub
parent e80f423072
commit 8060b9b92b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 5197 additions and 0 deletions

397
Diablo.dsp Normal file
View File

@ -0,0 +1,397 @@
# Microsoft Developer Studio Project File - Name="Diablo" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=Diablo - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Diablo.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Diablo.mak" CFG="Diablo - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Diablo - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "Diablo - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "Diablo - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Source/WinRel"
# PROP BASE Intermediate_Dir "Source/WinRel"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Source/WinRel"
# PROP Intermediate_Dir "Source/WinRel"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 DiabloUI/WinRel/diabloui.lib 3rdParty/Storm/Source/WinRel/storm.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib version.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "Diablo - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Source/WinDebug"
# PROP BASE Intermediate_Dir "Source/WinDebug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Source/WinDebug"
# PROP Intermediate_Dir "Source/WinDebug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FD /GZ /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 DiabloUI/WinDebug/diabloui.lib 3rdParty/Storm/Source/WinDebug/storm.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib version.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "Diablo - Win32 Release"
# Name "Diablo - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\Source\appfat.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\automap.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\capture.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\codec.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\control.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\cursor.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\dead.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\debug.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\diablo.cpp
# End Source File
# Begin Source File
SOURCE=.\Diablo.rc
# End Source File
# Begin Source File
SOURCE=.\Source\doom.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\drlg_l1.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\drlg_l2.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\drlg_l3.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\drlg_l4.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\dthread.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\dx.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\effects.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\encrypt.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\engine.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\error.cpp
# End Source File
# Begin Source File
SOURCE=.\3rdParty\PKWare\explode.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\fault.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\gamemenu.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\gendung.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\gmenu.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\help.cpp
# End Source File
# Begin Source File
SOURCE=.\3rdParty\PKWare\implode.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\init.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\interfac.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\inv.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\items.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\lighting.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\loadsave.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\logging.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\mainmenu.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\minitext.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\missiles.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\monster.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\movie.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\mpqapi.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\msg.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\msgcmd.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\multi.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\nthread.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\objects.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\pack.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\palette.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\path.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\pfile.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\player.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\plrmsg.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\portal.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\quests.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\restrict.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\scrollrt.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\setmaps.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\sha.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\sound.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\spells.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\stores.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\sync.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\textdat.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\themes.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\tmsg.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\town.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\towners.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\track.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\trigs.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\wave.cpp
# End Source File
# Begin Source File
SOURCE=.\Source\world.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\resource.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\Diablo.ico
# End Source File
# End Group
# End Target
# End Project

59
Diablo.dsw Normal file
View File

@ -0,0 +1,59 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "Diablo"=.\Diablo.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name DiabloUI
End Project Dependency
Begin Project Dependency
Project_Dep_Name storm
End Project Dependency
}}}
###############################################################################
Project: "DiabloUI"=.\DiabloUI\DiabloUI.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "storm"=.\3rdParty\Storm\Source\storm.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

BIN
Diablo.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

297
Diablo.rc Normal file
View File

@ -0,0 +1,297 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
#include "resource.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
101 ICON DISCARDABLE "Diablo.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
104 DIALOG DISCARDABLE 0, 0, 250, 241
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Direct Draw Error"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,193,220,50,14
LTEXT "Diablo was unable to properly initialize your video card using DirectX. Please try the following solutions to correct the problem:",
-1,7,7,236,18
LTEXT "Use the Diablo setup program ""SETUP.EXE"" provided on the Diablo CD-ROM to install DirectX 3.0.",
-1,19,26,210,18
LTEXT "Install the most recent DirectX video drivers provided by the manufacturer of your video card. A list of video card manufactuers can be found at: http://www.blizzard.com/support/vendors.htm",
-1,19,48,210,27
LTEXT "The error encountered while trying to initialize the video card was:",
-1,7,175,236,9
LTEXT "unknown error",1000,19,186,210,27
LTEXT "If you continue to have problems, we have also included Microsoft DirectX 2.0 drivers on the Diablo CD-ROM. This older version of DirectX may work in cases where DirectX 3.0 does not.",
-1,7,79,236,27
LTEXT "USA telephone: 1-800-426-9400\nInternational telephone: 206-882-8080\nhttp://www.microsoft.com",
-1,19,137,210,27
LTEXT "If you continue to have problems with DirectX, please contact Microsoft's Technical Support at:",
-1,7,116,236,18
END
105 DIALOG DISCARDABLE 0, 0, 250, 213
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Out of Memory Error"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,193,192,50,14
LTEXT "Diablo has exhausted all the memory on your system. This problem can likely be corrected by changing the virtual memory settings for Windows. Ensure that your system has at least 10 megabytes of free disk space, then check your virtual memory settings:",
-1,7,7,236,36
LTEXT "Select ""Settings - Control Panel"" from the ""Start"" menu\nRun the ""System"" control panel applet\nSelect the ""Performance"" tab, and press ""Virtual Memory""\nUse the ""Let Windows manage my virtual memory..."" option",
-1,23,54,197,36
LTEXT "The error encountered was:",-1,7,146,236,11
LTEXT "unknown location",1000,20,157,210,27
LTEXT "For Windows 95:",-1,7,45,236,9
LTEXT "Select ""Settings - Control Panel"" from the ""Start"" menu\nRun the ""System"" control panel applet\nSelect the ""Performance"" tab\nPress ""Change"" in ""Virtual Memory"" settings\nEnsure that the virtual memory file is at least 32 megabytes",
-1,17,98,197,45
LTEXT "For Windows NT:",-1,7,89,236,9
END
106 DIALOG DISCARDABLE 0, 0, 265, 114
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Data File Error"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,208,93,50,14
LTEXT "Diablo was unable to open a required file. Please ensure that the Diablo disc is in the CDROM drive. If this problem persists, try uninstalling and reinstalling Diablo using the program ""SETUP.EXE"" on the Diablo CD-ROM.",
-1,7,7,251,36
LTEXT "The problem occurred while trying to load a file",-1,7,
48,232,9
LTEXT "unknown file",1000,20,59,210,27
END
107 DIALOG DISCARDABLE 0, 0, 250, 161
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Direct Draw Error"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,193,140,50,14
LTEXT "Diablo was unable to find the file ""ddraw.dll"", which is a component of Microsoft DirectX. Please run the program ""SETUP.EXE"" on the Diablo CD-ROM and install Microsoft DirectX.",
-1,7,7,236,27
LTEXT "The error encountered while trying to initialize DirectX was:",
-1,7,95,236,9
LTEXT "unknown error",1000,19,106,210,29
LTEXT "USA telephone: 1-800-426-9400\nInternational telephone: 206-882-8080\nhttp://www.microsoft.com",
-1,19,60,210,27
LTEXT "If you continue to have problems with DirectX, please contact Microsoft's Technical Support at:",
-1,7,39,236,18
END
108 DIALOG DISCARDABLE 0, 0, 250, 161
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Direct Sound Error"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,193,140,50,14
LTEXT "Diablo was unable to find the file ""dsound.dll"", which is a component of Microsoft DirectX. Please run the program ""SETUP.EXE"" on the Diablo CD-ROM and install Microsoft DirectX.",
-1,7,7,236,27
LTEXT "The error encountered while trying to initialize DirectX was:",
-1,7,95,236,9
LTEXT "unknown error",1000,19,106,210,27
LTEXT "USA telephone: 1-800-426-9400\nInternational telephone: 206-882-8080\nhttp://www.microsoft.com",
-1,19,60,210,27
LTEXT "If you continue to have problems with DirectX, please contact Microsoft's Technical Support at:",
-1,7,39,236,18
END
/*
109 DIALOG DISCARDABLE 0, 0, 250, 92
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "System warning"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "&OK",1,130,71,50,14
LTEXT "Diablo requires an Intel Pentium-class processor to run properly. Your system does not appear to have a Pentium-class processor installed.",
-1,7,7,236,18
LTEXT "You may still be able to play Diablo if your processor has the performance characteristics of a Pentium.",
-1,7,30,236,18
LTEXT "Press ""OK"" to proceed, otherwise press ""Cancel"" to exit this program.",
-1,7,53,236,9
PUSHBUTTON "&Cancel",2,193,71,50,14
END
*/
110 DIALOG DISCARDABLE 0, 0, 250, 100
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Out of Disk Space"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,193,79,50,14
LTEXT "Diablo requires at least 10 megabytes of free disk space to run properly. The disk:",
-1,7,7,236,18
LTEXT "",-1,7,43,232,9
LTEXT "unknown drive",1000,7,33,210,9
LTEXT "has less than 10 megabytes of free space left. Please free some space on your drive and run Diablo again.",
-1,7,52,236,18
END
111 DIALOG DISCARDABLE 0, 0, 250, 161
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Direct Draw Error"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,193,140,50,14
LTEXT "Diablo was unable to switch video modes. This is a common problem for computers with more than one video card. To correct this problem, please set your video resolution to 640 x 480 and try running Diablo again.",
-1,7,7,236,27
LTEXT "The error encountered while trying to switch video modes was:",
-1,7,95,236,9
LTEXT "unknown error",1000,19,106,210,27
LTEXT "Select ""Settings - Control Panel"" from the ""Start"" menu\nRun the ""Display"" control panel applet\nSelect the ""Settings"" tab\nSet the ""Desktop Area"" to ""640 x 480 pixels""",
-1,23,50,197,36
LTEXT "For Windows 95 and Windows NT",-1,7,41,236,9
END
112 DIALOG DISCARDABLE 0, 0, 250, 92
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Data File Error"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,136,71,50,14
LTEXT "Diablo cannot read a required data file. Your Diablo CD may not be in the CDROM drive. Please ensure that the Diablo disc is in the CDROM drive and press OK. To leave the program, press Exit.",
-1,7,7,236,27
LTEXT "unknown file",1000,20,37,210,27
PUSHBUTTON "Exit",2,193,71,50,14
END
113 DIALOG DISCARDABLE 0, 0, 223, 116
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Windows 2000 Restricted User Advisory"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,166,95,50,14
LTEXT "In order to install, play or patch Diablo using the Windows 2000 operating system, you will need to log in as either an Administrator or as a Power User.",
-1,7,7,209,28
LTEXT "Users, also known as Restricted Users, do not have sufficient access to install or play the game properly.",
-1,7,39,209,20
LTEXT "If you have further questions regarding User Rights in Windows 2000, please refer to your Windows 2000 documentation or contact your system administrator.",
-1,7,63,209,28
END
114 DIALOG DISCARDABLE 0, 0, 220, 121
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Read-Only Directory Error"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",1,163,100,50,14
LTEXT "Diablo is being run from:",-1,7,7,206,10
LTEXT "unknown directory",1000,17,20,186,20
LTEXT "Diablo or the current user does not seem to have write privilages in this directory. Contact your system administrator.\n\nNote that Windows 2000 Restricted Users can not write to the Windows or Program Files directory hierarchies.",
-1,7,44,206,50
END
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""resource.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
#endif // APSTUDIO_INVOKED
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2001,5,18,1
PRODUCTVERSION 1,0,9,2
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Blizzard Entertainment\0"
VALUE "FileDescription", "Diablo\0"
VALUE "FileVersion", "2001, 5, 18, 1\0"
VALUE "InternalName", "Diablo\0"
VALUE "LegalCopyright", "Copyright © 1996-2001\0"
VALUE "OriginalFilename", "Diablo.exe\0"
VALUE "ProductName", "Blizzard Entertainment Diablo\0"
VALUE "ProductVersion", "1, 0, 9, 2\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

36
TODO Normal file
View File

@ -0,0 +1,36 @@
[COMMENTS IN CODE]
BUG_FIX known bugs in original code (to be kept that way, but with fix in comments)
/* block comments are things to be fixed/checked
FIX_ME bad data
[PROBLEMS IN DECOMPILED CODE]
1xxx Serious bugs (crash/fault)
2xxx Minor bugs (noticeable but can be avoided)
3xxx Code issues (incorrect code that still compiles/works)
1000 - The Cathedral doesn't generate correctly, sometimes crashing
1001 - Sometimes dungeon will crash on loading if previous levels loaded (DrawClippedObject)
1002 - Golem usually crashes, or appears invisible if summoned
1003 - Stone cursed monsters frequently crash when killed
1004 - Some CEL functions were written in ASM and have been disabled (engine.cpp)
1005 - After being in the dungeon for awhile, the 'Control Panel' will sometimes
corrupt and be filled with glitched colors (likely a buffer overflow)
1006 - Timed messages are broken and have been disabled (tmsg.cpp)
1007 - Server commands are broken and have been disabled (msgcmd.cpp)
2000 - Rooms/halls don't generate correctly in the Catacombs
2001 - The last seal in Lazarus' Lair doesn't trigger the video/teleport
2002 - White pixels on monsters/cathedral/catacombs (palette entry 256?)
2003 - Swapping items in inventory sometimes deletes the item
2004 - Some spells don't use any mana or charges when they should
2005 - Some tiles are drawn fully lit when they should be transparent (world.cpp)
2006 - Objects should darken with radius instead of being fully lit
2007 - Automap sometimes draws incorrectly, check 'engine_draw_automap_pixels'
*Bad args ECX/EDX for 'engine_draw_pixel' (engine.cpp)
3000 - Critical sections should be constructors using CCritSect
3001 - Function 'DRLG_L4TransFix', decompile and check (Test: seed 2349839 level 13)
3002 - Some code uses macros such as __PAIR__ or __ROL4__, or __int64
3003 - Some functions/structures have incorrect signing (signed/unsigned BYTE)
3004 - Function 'GetLevelMTypes', decompile and check (monster.cpp)
3005 - Function 'SetAutomapView', decompile and check (automap.cpp)

180
defs.h Normal file
View File

@ -0,0 +1,180 @@
// Diablo uses a 256 color palette
// Entry 0-127 (0x00-0x7F) are level specific
// Entry 128-255 (0x80-0xFF) are global
// standard palette for all levels
// 8 or 16 shades per color
// example (dark blue): PAL16_BLUE+14, PAL8_BLUE+7
// example (light red): PAL16_RED+2, PAL8_RED
// example (orange): PAL16_ORANGE+8, PAL8_ORANGE+4
#define PAL8_BLUE 128
#define PAL8_RED 136
#define PAL8_YELLOW 144
#define PAL8_ORANGE 152
#define PAL16_BEIGE 160
#define PAL16_BLUE 176
#define PAL16_YELLOW 192
#define PAL16_ORANGE 208
#define PAL16_RED 224
#define PAL16_GRAY 240
/////////////////////////////////////////////////////////////////////////
/* temporary stuff from the decompiler */
/* remove all the garbage below in the future */
/////////////////////////////////////////////////////////////////////////
#ifndef IDA_GARBAGE
#define IDA_GARBAGE
typedef __int64 ll;
typedef unsigned __int64 ull;
typedef unsigned int uint;
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned long ulong;
typedef char int8;
typedef signed char sint8;
typedef unsigned char uint8;
typedef short int16;
typedef signed short sint16;
typedef unsigned short uint16;
typedef int int32;
typedef signed int sint32;
typedef unsigned int uint32;
typedef ll int64;
typedef ll sint64;
typedef ull uint64;
// Partially defined types. They are used when the decompiler does not know
// anything about the type except its size.
#define _BYTE uint8
#define _WORD uint16
#define _DWORD uint32
#define _QWORD uint64
// Some convenience macros to make partial accesses nicer
#define LAST_IND(x,part_type) (sizeof(x)/sizeof(part_type) - 1)
#if defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN
# define LOW_IND(x,part_type) LAST_IND(x,part_type)
# define HIGH_IND(x,part_type) 0
#else
# define HIGH_IND(x,part_type) LAST_IND(x,part_type)
# define LOW_IND(x,part_type) 0
#endif
// first unsigned macros:
#define BYTEn(x, n) (*((_BYTE*)&(x)+n))
#define WORDn(x, n) (*((_WORD*)&(x)+n))
#define DWORDn(x, n) (*((_DWORD*)&(x)+n))
#define _LOBYTE(x) BYTEn(x,LOW_IND(x,_BYTE))
#define _LOWORD(x) WORDn(x,LOW_IND(x,_WORD))
#define LODWORD(x) DWORDn(x,LOW_IND(x,_DWORD))
#define _HIBYTE(x) BYTEn(x,HIGH_IND(x,_BYTE))
#define _HIWORD(x) WORDn(x,HIGH_IND(x,_WORD))
#define HIDWORD(x) DWORDn(x,HIGH_IND(x,_DWORD))
#define BYTE1(x) BYTEn(x, 1) // byte 1 (counting from 0)
#define BYTE2(x) BYTEn(x, 2)
// now signed macros (the same but with sign extension)
#define SBYTEn(x, n) (*((int8*)&(x)+n))
#define SWORDn(x, n) (*((int16*)&(x)+n))
#define SLOBYTE(x) SBYTEn(x,LOW_IND(x,int8))
#define SHIWORD(x) SWORDn(x,HIGH_IND(x,int16))
// Helper functions to represent some assembly instructions.
#ifdef __cplusplus
// memcpy() with determined behavoir: it always copies
// from the start to the end of the buffer
// note: it copies byte by byte, so it is not equivalent to, for example, rep movsd
#define qmemcpy memcpy
/*
inline void *qmemcpy(void *dst, const void *src, size_t cnt)
{
char *out = (char *)dst;
const char *in = (const char *)src;
while ( cnt > 0 )
{
*out++ = *in++;
--cnt;
}
return dst;
} */
// Generate a reference to pair of operands
template<class T> int16 __PAIR__( int8 high, T low) { return ((( int16)high) << sizeof(high)*8) | uint8(low); }
template<class T> int32 __PAIR__( int16 high, T low) { return ((( int32)high) << sizeof(high)*8) | uint16(low); }
template<class T> int64 __PAIR__( int32 high, T low) { return ((( int64)high) << sizeof(high)*8) | uint32(low); }
template<class T> uint16 __PAIR__(uint8 high, T low) { return (((uint16)high) << sizeof(high)*8) | uint8(low); }
template<class T> uint32 __PAIR__(uint16 high, T low) { return (((uint32)high) << sizeof(high)*8) | uint16(low); }
template<class T> uint64 __PAIR__(uint32 high, T low) { return (((uint64)high) << sizeof(high)*8) | uint32(low); }
// rotate left
template<class T> T __ROL__(T value, int count)
{
const uint nbits = sizeof(T) * 8;
if ( count > 0 )
{
count %= nbits;
T high = value >> (nbits - count);
if ( T(-1) < 0 ) // signed value
high &= ~((T(-1) << count));
value <<= count;
value |= high;
}
else
{
count = -count % nbits;
T low = value << (nbits - count);
value >>= count;
value |= low;
}
return value;
}
inline uint16 __ROR2__(uint16 value, int count) { return __ROL__((uint16)value, -count); }
inline uint32 __ROR4__(uint32 value, int count) { return __ROL__((uint32)value, -count); }
// sign flag
template<class T> int8 __SETS__(T x)
{
if ( sizeof(T) == 1 )
return int8(x) < 0;
if ( sizeof(T) == 2 )
return int16(x) < 0;
if ( sizeof(T) == 4 )
return int32(x) < 0;
return int64(x) < 0;
}
// overflow flag of subtraction (x-y)
template<class T, class U> int8 __OFSUB__(T x, U y)
{
if ( sizeof(T) < sizeof(U) )
{
U x2 = x;
int8 sx = __SETS__(x2);
return (sx ^ __SETS__(y)) & (sx ^ __SETS__(x2-y));
}
else
{
T y2 = y;
int8 sx = __SETS__(x);
return (sx ^ __SETS__(y2)) & (sx ^ __SETS__(x-y2));
}
}
#endif
#endif /* IDA_GARBAGE */

2479
enums.h Normal file

File diff suppressed because it is too large Load Diff

28
resource.h Normal file
View File

@ -0,0 +1,28 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by Diablo.rc
//
#define IDI_ICON1 101
#define IDD_DIALOG1 104
#define IDD_DIALOG2 105
#define IDD_DIALOG3 106
#define IDD_DIALOG4 107
#define IDD_DIALOG5 108
#define IDD_DIALOG6 109
#define IDD_DIALOG7 110
#define IDD_DIALOG8 111
#define IDD_DIALOG9 112
#define IDD_DIALOG10 113
#define IDD_DIALOG11 114
#define IDC_STATIC -1
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 131
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif

1599
structs.h Normal file

File diff suppressed because it is too large Load Diff

122
types.h Normal file
View File

@ -0,0 +1,122 @@
// temporary file
#ifndef _TYPES_H
#define _TYPES_H
#include "resource.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mmsystem.h>
#include <dsound.h>
#include <ddraw.h>
#include <ddstream.h>
#include <io.h>
#include <process.h>
#include <math.h>
#include <time.h>
#include <shellapi.h>
#include <shlobj.h>
#pragma warning (disable : 4309) // truncation of constant value
#pragma warning (disable : 4305) // truncation of int
#pragma warning (disable : 4018) // signed/unsigned mismatch
#pragma warning (disable : 4700) // used without having been initialized
#pragma warning (disable : 4805) // unsafe bool mix
#pragma warning (disable : 4244) // conversion loss
#pragma warning (disable : 4800) // bool perf
#pragma warning (disable : 4146) // negative unsigned
#include "enums.h"
#include "structs.h"
#include "DiabloUI/_diabloui.h"
#include "3rdParty/Storm/Source/_storm.h"
#include "3rdParty/PKWare/pkware.h"
#include "defs.h"
// If defined, use copy protection [Default -> Defined]
//#define COPYPROT
// If defined, don't reload for debuggers [Default -> Undefined]
#define DEBUGGER
// If defined, don't fry the CPU [Default -> Undefined]
#define SLEEP
/* temp macro for asm XLAT */
#define ASM_XLAT(eax,ebx) eax = (eax & 0xFFFFFF00) + LOBYTE(ebx[LOBYTE(eax)])
// header files
#include "Source/appfat.h"
#include "Source/automap.h"
#include "Source/capture.h"
#include "Source/codec.h"
#include "Source/control.h"
#include "Source/cursor.h"
#include "Source/dead.h"
#include "Source/debug.h"
#include "Source/diablo.h"
#include "Source/doom.h"
#include "Source/drlg_l1.h"
#include "Source/drlg_l2.h"
#include "Source/drlg_l3.h"
#include "Source/drlg_l4.h"
#include "Source/dthread.h"
#include "Source/dx.h"
#include "Source/effects.h"
#include "Source/encrypt.h"
#include "Source/engine.h"
#include "Source/error.h"
#include "Source/fault.h"
#include "Source/gamemenu.h"
#include "Source/gendung.h"
#include "Source/gmenu.h"
#include "Source/help.h"
#include "Source/init.h"
#include "Source/interfac.h"
#include "Source/inv.h"
#include "Source/items.h"
#include "Source/lighting.h"
#include "Source/loadsave.h"
#include "Source/logging.h"
#include "Source/mainmenu.h"
#include "Source/minitext.h"
#include "Source/missiles.h"
#include "Source/monster.h"
#include "Source/movie.h"
#include "Source/mpqapi.h"
#include "Source/msg.h"
#include "Source/msgcmd.h"
#include "Source/multi.h"
#include "Source/nthread.h"
#include "Source/objects.h"
#include "Source/pack.h"
#include "Source/palette.h"
#include "Source/path.h"
#include "Source/pfile.h"
#include "Source/player.h"
#include "Source/plrmsg.h"
#include "Source/portal.h"
#include "Source/quests.h"
#include "Source/restrict.h"
#include "Source/scrollrt.h"
#include "Source/setmaps.h"
#include "Source/sha.h"
#include "Source/sound.h"
#include "Source/spells.h"
#include "Source/stores.h"
#include "Source/sync.h"
#include "Source/textdat.h" // check file name
#include "Source/themes.h"
#include "Source/tmsg.h"
#include "Source/town.h"
#include "Source/towners.h"
#include "Source/track.h"
#include "Source/trigs.h"
#include "Source/wave.h"
#include "Source/world.h"
#endif