Commit graph

101 commits

Author SHA1 Message Date
Anders Jenbo
997c1dba55 🚚 Split up all.h in to proper header relations 2021-04-16 01:04:54 +02:00
Anders Jenbo
f450d6a125 🚚 Move defines to there proper files 2021-04-16 01:04:54 +02:00
Gleb Mazovetskiy
77632cd83e world_draw_black_tile: Stop relying on buffer padding 2021-04-12 18:42:35 +01:00
Anders Jenbo
bfb3c11c2b 🎨 Change namespace to devilution 2021-04-06 15:21:25 +02:00
Anders Jenbo
630e507f63 🚚 Apply namespace 2021-04-06 15:21:25 +02:00
Anders Jenbo
a2656637e4 🎨 Format source 2021-03-31 00:52:47 +02:00
Juliano Leal Goncalves
800dbce066 ♻️ Move options-related structs to new 'options.h' file 2021-03-27 03:26:44 +01:00
Gleb Mazovetskiy
70d1d633bd Get rid of SCREEN_X / SCREEN_Y
GlobalOutputBuffer() now returns a clipped subregion
2021-03-17 23:37:58 +01:00
Gleb Mazovetskiy
ae22644d43 CelOutputBuffer: Recover lost performance
Makes `RenderLine` hotspot manipulate the buffer directly again.

FPS: 195 -> 275
2021-03-13 05:13:26 +01:00
Gleb Mazovetskiy
cd59a1c323 Completely replace gpBuffer with CelOutputBuffer
`CelOutputBuffer` now contains an `SDL_Surface` and an `SDL_Rect`.

We now have access to SDL surface manipulation functions.

`gpBuffer` and `gpBufEnd` are completely gone 🧹

This results in some FPS loss (250 -> 195) recovered in a subsequent
commit.
2021-03-13 05:13:26 +01:00
Gleb Mazovetskiy
f607807c95 Migrate the rest of drawing away from gpBufEnd 2021-03-13 02:26:11 +01:00
Juliano Leal Goncalves
103cde53ff ♻️ Make options struct hierarchical 2021-03-10 10:11:42 +01:00
Anders Jenbo
e280432b92 🚨 Fix all SDL1 warnings 2021-03-06 05:56:47 +01:00
Gleb Mazovetskiy
83ce7c27af Enginify trans_rect
Moves `trans_rect` to `engine` as `DrawHalfTransparentRectTo` and makes
it operate on `CelOutputBuf`.
2021-03-03 12:07:07 +01:00
FluffyQuack
63d9562cfd Fix for RightMask_Transparent[] array so that each row increases by 2 rather than alternating between 1 and 3. 2021-03-01 19:34:09 +01:00
Anders Jenbo
39999791b3 Revamp ini options and sync in multiplayer
[NetMsg]
F12=Now you DIE!
F11=Here's something for you.
F10=Follow me.
F9=I need help! Come Here!

[Game]
Speed=50
Fast Walk=1
Grab Input=0
Theo Quest=0
Cow Quest=0

[Audio]
Sound Volume=0
Music Volume=0
Walking Sound=1

[Graphics]
Fullscreen=1
Fit to Screen=1
Scaling Quality=2
Integer Scaling=0
Vertical Sync=1
Blended Transparency=1
Gamma Correction=100
Color Cycling=1

[Diablo]
Intro=0

[Hellfire]
Intro=0
SItem=

[Phone Book]
Entry1=127.0.0.1

[Network]
Bind Address=0.0.0.0
2021-03-01 11:52:26 +01:00
Gleb Mazovetskiy
588458d500 Remove gpBufStart
Was only set once and used in one place since #964
2021-03-01 02:20:21 +01:00
Anders Jenbo
879077de7d Fix missing tile peases when using blended transparancy 2021-02-21 05:20:05 +01:00
pionere
d5a0fa8e85 get rid of a few warnings 2021-02-19 22:04:11 +01:00
FluffyQuack
790c8e17e5 Implemented blended tranparency 2021-02-19 05:57:48 +01:00
Anders Jenbo
61b2d0de95 Merge branch 'master' of github.com:diasurgical/devilution 2020-12-16 02:24:39 +01:00
Arsène Pérard-Gayot
c631b4daf8
RenderLine() function fix for issue #941 (#942)
* Fix for RenderLine() when n == 32
* Improve count_leading_zeros with better fallback and compile-time check
2020-12-09 15:57:01 +01:00
Arsène Pérard-Gayot
8e1c61a6f7
Improvements to the RenderLine() function (#920)
* Improvements to the `RenderLine()` function
- Simplify by using indices instead of incrementing pointers
- Improve performance in the case where mask != -1 by only processing the bits that are set
2020-11-19 16:07:06 +01:00
qndel
b81d2eb831
some cleanups (#2099) 2020-10-12 00:42:02 +02:00
Anders Jenbo
145ab3c48e Apply more defines to replace magic numbers 2020-09-27 05:33:00 +02:00
Anders Jenbo
893efd51ea Merge branch 'master' of github.com:diasurgical/devilution 2020-09-27 03:34:42 +02:00
Anders Jenbo
c1b4d3d8b5 Copy documentation from sanctuary/notes 2020-07-06 05:43:25 +02:00
Anders Jenbo
1ba96a6777 Add doxygen description to remaining engine files 2020-07-06 05:43:25 +02:00
Anders Jenbo
dc8be6c0ab
C++03 compatibility (#736)
* Use C++03 compatible constructors
* Remove conflicting definitions
2020-05-17 01:37:19 +02:00
Anders Jenbo
b7c126d976 Apply defines to render 2020-05-15 19:12:03 +02:00
Anders Jenbo
af4ef7b19b Fix rendering the ground part of foliage 2020-03-23 14:13:33 +01:00
Anders Jenbo
3c276a3cd3 Add documentation
- Add file documentation to about 1/4 of the files in Source
- Copy over a lot of the documentation from the sanctuary/notes repo
- Standardise all the existing documentation
- Create a configuration for Doxygen
- Add more documentation (engine.cpp is now fully documented)
2020-03-01 22:18:00 +01:00
Anders Jenbo
ffb6de3f5a Don't draw in to the panels 2020-03-01 22:17:13 +01:00
Anders Jenbo
67d7655544 Fix world_draw_black_tile not taking buffer borders in to account
Thanks to @imperialsecond for providing a test case for
world_draw_black_tile
2020-02-22 18:08:04 +01:00
Anders Jenbo
e641eda71d Document a couple of render functions 2020-02-16 04:03:07 +01:00
Anders Jenbo
e7e51abd13 Document remaning functions in render related files 2020-02-16 04:01:52 +01:00
Anders Jenbo
25993b4043 Merge branch 'master' of github.com:diasurgical/devilution 2020-02-14 23:03:31 +01:00
Anders Jenbo
20621a0642
add all.h and use in place of diablo.h (#2005)
Now diablo.h is treated in the same way as all other header files of
Source, as it only contains the declarations of global variables and
functions of diablo.cpp.

Besides consistency, this also enables mods to include diablo.h just
like any other header file without having to include every header file
(and without having to include C++ specific aspects of the now all.h).
2020-02-14 13:12:54 +01:00
Marek Majkowski
15b021f8b7 Misc: "typedef enum" is not correct. Just "enum" is fine. 2019-12-25 01:42:27 +01:00
Gleb Mazovetskiy
ef20d1a038 Fix more UBSAN errors 2019-11-07 10:02:09 +01:00
Anders Jenbo
4e8a8d2157 Merge remote-tracking branch 'refs/remotes/devilution/master' 2019-10-26 13:43:28 +02:00
Mathieu Maret
a12a7998d1 simplify world_draw_black_tile 2019-10-24 23:27:29 +02:00
Mathieu Maret
b2ed866c7a Code simplification using memset/memcpy 2019-10-24 23:27:29 +02:00
Anders Jenbo
2348c3a8fd Documentations, enums and clean ups 2019-10-21 19:33:14 +02:00
Anders Jenbo
7d1b0f24f7 Eliminate overdraw in cell functions 2019-10-20 15:59:47 +02:00
Anders Jenbo
da679a66a6 Convert inc file to a function 2019-10-20 15:59:47 +02:00
Anders Jenbo
16820106bc Merge town_draw() with scrollrt_draw()
This require calling DRLG_InitTrans() during CreateTown() to clear out
the transparancy flags after having been to the duntion. Else the
mausoleum will be transparent.
2019-10-20 15:59:47 +02:00
Anders Jenbo
f8c16a1dcb Only use safe blitting and set gpBufEnd to the correct relative values
This again allows us to only selectivly render the UI panel
This also eliminates the need for the BORDER_BOTTOM 10k memory saved!
2019-10-20 15:59:47 +02:00
Anders Jenbo
d0f1100983 Drop speedcel optimizations
Even on VC6 this appears to not improve performance in any noticable way
2019-10-20 15:59:47 +02:00
Gleb Mazovetskiy
fb37bbf675 Disable some signed shift UBSAN warnings
On Clang we can do this globally via a sanitizer blacklist, but that's not supported on GCC (yet):
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61978

We disable these warnings because all compilers implement them in the
same way according to the N2218 proposal to standardize the behaviour:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2218.htm
2019-10-10 13:51:19 +02:00