Gleb Mazovetskiy
f9b9a7de9d
CL2 render: `Point` position argument
...
Bring the CL2 API closer to CEL and PCX.
4 years ago
Gleb Mazovetskiy
6f01fb6b79
Unify CEL/PCX/CL2 render functions
...
Except for the outline rendering.
4 years ago
Anders Jenbo
99181fd709
Move more files to the engine folder
4 years ago
Gleb Mazovetskiy
a66ca44695
Zero-based frame indexing
...
Index frames starting at 0 instead of 1.
4 years ago
Gleb Mazovetskiy
12de70550b
Fix an OOB in CEL/CL2 outline rendering
...
This OOB happened when rendering a sprite so that it is exactly
off-screen (touching the border but not visible) on top/bottom
while also being only partly off-screen on the left or right.
4 years ago
Gleb Mazovetskiy
7fede6c4cb
Clean up owned/unowned CelSprite ambiguity
...
Makes `CelSprite` unowned and adds a new `OwnedCelSprite` class for
owned sprites.
This clarifies ownership and makes the code cleaner in a number of
places.
Additionally, because the `CelSprite` class is now tiny (1 less
pointer), we can pass it by-value instead of by-reference, removing a
pointer indirection in the rendering functions.
4 years ago
qndel
9ba64ad08b
TRN rewrite + bugfix ( #4056 )
...
* working new TRN system
* apply TRNs to all unique missiles
4 years ago
Anders Jenbo
dce78dde62
Rename lighting globals
5 years ago
Gleb Mazovetskiy
cb0dae8590
🚚 Rename `CelOutputBuf` to `Surface` and extract
5 years ago
Gleb Mazovetskiy
14218080b6
🚚 engine.h: Extract `CelGetFrame` and friends
5 years ago
Gleb Mazovetskiy
bb95e0c337
cl2_render: Use memset when rendering outline
...
A minor cleanup that replaces the for-loop rendering for a fill run
with memsets.
5 years ago
Gleb Mazovetskiy
8ac9047b4f
🧹 Clean up CEL outline clipping
...
A simpler structure based on the CL2 implementation.
5 years ago
Gleb Mazovetskiy
29a488738e
🔥 Mark core CL2 and CEL functions as inline hot
5 years ago
Gleb Mazovetskiy
e53a79259d
🐞 CL2 outline: Fix left clip
5 years ago
Gleb Mazovetskiy
537e056111
🐞 CL2 outline: Skip color index 0
...
Fixes a regression introduced in #1934
5 years ago
Gleb Mazovetskiy
64ad9aeacf
🎉 cl2_render.cpp: Clip the outline
5 years ago
Gleb Mazovetskiy
1838eb43f2
🎉 cl2_render.cpp: Clip the drawing functions
...
Clips all the drawing functions except the outline one.
Example FPS gain in a dungeon: 1454 -> 1488
5 years ago
Anders Jenbo
bcbaeba2f0
📝 Correct file header
5 years ago
Gleb Mazovetskiy
9a9941efdd
🚚 Move CL2 rendering to engine/render/cl2_render.cpp
5 years ago
Gleb Mazovetskiy
0edfa3de66
🚚 Move CEL rendering to engine/render/cel_render.cpp
5 years ago
Gleb Mazovetskiy
473d1b0b14
🎉 Clip CEL drawing functions
...
Implements clipping for all CEL drawing functions except stippled and outline.
5 years ago
Anders Jenbo
f579b2f287
Handle cel/cl2 files as byte arrays
5 years ago
Gleb Mazovetskiy
e7a9293153
♻️ engine.h: Minor refactoring
...
1. Move `SetPixel` definition to the header to make it easier for the
compiler to inline (make it inlinable even without LTO).
2. Add an `operator[](Point)` overload to `CelOutputBuffer`.
5 years ago
Gleb Mazovetskiy
afef72f916
🎉 New map renderer
...
Uses integer math only: This speeds up the rendering and eliminates some
zoom artifacts.
Improves player indicator look -- it's now symmetric and more legible.
5 years ago
Anders Jenbo
92db72719d
🔥 Remove some unused code
5 years ago
Anders Jenbo
3746723f52
♻️ Add type to MIN-files and TRN-files
5 years ago
Anders Jenbo
fa0b286693
♻️ Typed file loading
...
Tthis gives us the option to specify what type a file should be loaded
as, avoidng the need to case it and does some automatic checks on the
fitness of the data, while making the process simpler.
If no type is given then the type will be set to std::byte which limit
what operations can be performed on the data.
5 years ago
Gleb Mazovetskiy
987ab2533b
🐞 Synchronize SFileReadFile access
...
StormLib read function is not thread-safe: https://github.com/ladislav-zezula/StormLib/issues/175
5 years ago
Anders Jenbo
654a2b8834
♻️ Clean up automap code
...
Use Point for x,y pairs. Make helpers for drawing door and squares
5 years ago
Gleb Mazovetskiy
f33f7ae7eb
💨 Do not zero-initalize arrays we write to
...
`std::make_unique<T[]>(size)` always zero-initalizes the array.
C++20 has `std::make_unique_for_overwrite` to avoid that, while
older C++ versions can use the approach applied here.
5 years ago
Gleb Mazovetskiy
63e0e60956
Add `MeasureSolidHorizontalBounds`
...
Adds a function to measure the X-coordinates of the solid
(non-transparent) bounding box of a CEL.
5 years ago
Gleb Mazovetskiy
1b8b62a8c2
♻️ Store CEL width with the sprite itself
...
Instead of passing the CEL sprite width when drawing, store the CEL
width at load time in the new `CelSprite` struct.
Implemented for most sprites except towners, missiles, or monsters.
5 years ago
Gleb Mazovetskiy
144dd6cd93
♻️ engine.cpp: Minor cleanup in draw functions
...
1. Introduce a couple of constants.
2. Extract a helper function for getting the light table pointer.
5 years ago
thebigMuh
ad8f342db0
Adding constness
5 years ago
obligaron
239a43cc1c
Remove "AnimWidth2" expect for missiles ( #1680 )
5 years ago
Anders Jenbo
f77c52941a
♻️ Make GetDirection take Points instead of ints
5 years ago
Anders Jenbo
bd389e9ef6
♻️ Clean up bool logic in engine.cpp
5 years ago
Anders Jenbo
1e3ed903be
🎨 strip redundant else
5 years ago
Anders Jenbo
593c6a6f17
🎨 Drop unused param and rename random_ to GenerateRnd
5 years ago
Anders Jenbo
d024f79b0e
🧹 performance-unnecessary-value-param
5 years ago
Jmgr
1d84156509
Simplify bitshift divisions/multiplications
5 years ago
Anders Jenbo
bb4e1960e7
🎨 modernize-use-nullptr
5 years ago
Anders Jenbo
c89bd9c001
🚨 Fix remaning warnings for clang and gcc
5 years ago
Anders Jenbo
997c1dba55
🚚 Split up all.h in to proper header relations
5 years ago
Anders Jenbo
6e1a106a38
🚚 Move header we implement into the project
5 years ago
Gleb Mazovetskiy
26a9930a70
Stop relying on buffer padding in CelBlitSafeTo
5 years ago
Anders Jenbo
20186e0370
🎨 Replace TRUE/FALSE with true/false
...
fix
Fix
fix
5 years ago
Anders Jenbo
93d42b62b8
♻️ Change BOOL to bool
5 years ago
Anders Jenbo
bfb3c11c2b
🎨 Change namespace to devilution
5 years ago
Anders Jenbo
630e507f63
🚚 Apply namespace
5 years ago