No description
  • C++ 91.2%
  • Java 4%
  • CMake 3.3%
  • Python 0.5%
  • C 0.5%
  • Other 0.4%
Find a file
Andrew James ff145b422d
Refactor plrctrls functions to use Point and Direction types (#2155)
* Refactor GetRotaryDistance to use Point instead of int x/y params

* Refactor HSExists to use Point instead of int x/y params

* Refactor IsPathBlocked to take typed params (Point, Direction)

The caller was already passing in a Direction value so this matches usage better. I also pulled the Direction to Point helper function up so it is available as a static class member, this allows replacing the use of the Offset array in plrctrls.cpp.

When adding a Direction to a point (and not scaling it first) I avoid explicitly creating a Point object since the operator+ overload will do that conversion implicitly.

* Replace Offsets array with Point::fromDirection

* Refactor GetDistanceRanged to use Point

I've added ExactDistance as a member function of Point to match ApproxDistance instead of only having it defined in GetDistanceRanged, it seemed more appropriate to be part of the class. Also removed temporary variables from callers of GetDistanceRanged as they were mainly used as a convenience for avoiding repetition when passing values into this function.

* Refactor GetDistance to use Point
2021-06-26 17:56:06 +02:00
.circleci Set up CI for Android builds 2021-06-15 02:49:39 +02:00
.github Move Linux x64 back to circleci and debian:stretch-backports 2021-05-03 12:56:14 +02:00
3rdParty Update ASIO to diasurgical fork 2021-06-17 09:54:20 +02:00
android-project Fix building Android release versions 2021-06-19 01:16:00 +02:00
build Restore build folder 2021-05-31 19:57:17 +02:00
CMake Disable ASAN and UBSAN for 3DS builds 2021-06-20 16:31:25 -07:00
docs Update 3DS build instructions 2021-06-17 09:46:38 +02:00
Packaging OpenDingux/build.sh: Options for debug/relwithdebinfo 2021-05-23 05:01:40 +02:00
Source Refactor plrctrls functions to use Point and Direction types (#2155) 2021-06-26 17:56:06 +02:00
test Player by reference part 3 2021-06-24 00:53:09 +02:00
Translations Update Korean localization 2021-06-21 01:47:28 +02:00
.bettercodehub.yml
.editorconfig 🧹 Fix some -Wformat warnings 2021-05-01 21:59:34 +02:00
.gitignore Ignore compiled language files 2021-06-03 21:17:54 +02:00
appveyor.yml 🎉 Switch from SDL_mixer to SDL_audiolib 2021-04-27 00:54:50 +01:00
Brewfile 🎉 Switch from SDL_mixer to SDL_audiolib 2021-04-27 00:54:50 +01:00
CMakeLists.txt 🚚 engine.h: Extract CelSprite and file loading 2021-06-21 01:36:20 -07:00
CMakeSettings.json Add Debug-UnitTests Configurations to CMakeSettings.json 2021-04-25 13:15:35 +02:00
codecov.yml 🔧 Update codecov config 2021-04-16 16:03:44 +02:00
doxygen.config
LICENSE
README.md Correct build badges 2021-05-27 01:07:24 +02:00


Downloads GitHub Stars Codecov BCH compliance

Discord Channel Discord Chat Channel

(The health-bar and XP-bar are off by default, but can be enabled in the ini-file. Widescreen and transparency can also be disabled if preferred)

What is DevilutionX

DevilutionX is a source port of Diablo and Hellfire that strives to make it simple to run the game while providing engine improvements, bugfixes, and some optional quality of life features.

Check out the manual for what features are available and how best to take advantage of them.

For a full list of changes see our changelog.

How to Install

Note: You'll need access to the data from the original game. If you don't have an original CD then you can buy Diablo from GoG.com. Alternately you can use spawn.mpq from the shareware version, in place of DIABDAT.MPQ, to play the shareware portion of the game.

Download the latest DevilutionX release and extract the contents to a location of your choosing or build from source.

  • Copy DIABDAT.MPQ from the CD or GOG-installation (or extract it from the GoG installer) to the DevilutionX folder.
  • To run the Diablo: Hellfire expansion you will need to also copy hellfire.mpq, hfmonk.mpq, hfmusic.mpq, hfvoice.mpq.

For more detailed instructions: Installation Instructions.

Contributing

We are always looking for more people to help with coding, documentation, testing the latest builds, spreading the word, or simply just hanging out on the chat.

Mods

We hope to provide a good starting point for mods, in addition to the full Devilution source code we also provide modding tools. Also, check out the list of known mods based on DevilutionX.

Test builds

If you want to help test the latest state of the next version you can fetch the build artifact from one of the build server:

CircleCI AppVeyor Linux_x86 Linux_x86_64 Linux_x86_64_SDL1 MacOSX Windows_x64 Windows_x86

Building from Source

Want to compile the program by yourself? Great! Simply follow the build instructions.

Credits

  • The original Devilution project Devilution
  • Everyone who worked on Devilution/DevilutionX
  • Nikolay Popov who provided new backgrounds and icons
  • And thanks to all who support the project, report bugs, and help spread the word ❤️

Legal

DevilutionX is released to the Public Domain. The documentation and functionality provided by DevilutionX may only be utilized with assets provided by the ownership of Diablo.

The source code in this repository is for non-commercial use only. If you use the source code you may not charge others for access to it or any derivative work thereof.

Diablo® - Copyright © 1996 Blizzard Entertainment, Inc. All rights reserved. Diablo and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.

DevilutionX and any of its maintainers are in no way associated with or endorsed by Blizzard Entertainment®.