Eric Robinson
368fa7f7e8
Clean up: DrawDungeon() ( #7090 )
2 years ago
Eric Robinson
ed0b3fde14
Bugfix: Invisible monsters/towners in solid tiles in vision range ( #7084 )
2 years ago
KPhoenix
459aa0d20c
Clean up: DrawView()
2 years ago
KPhoenix
b00bf4e5d3
Clean up: DrawMain()
...
Remove unused function parameter
2 years ago
KPhoenix
3505ec1e18
Clean up: DrawFPS()
...
Change `lastFpsUpdateInMs` to `uint32_t` to harmonize the logic in `DrawFPS()` with `SDL_GetTicks()`. Fixes compiler warnings.
2 years ago
KPhoenix
04828c08a7
Fix rendering monsters in solid tiles
2 years ago
Eric Robinson
b6b9c7d794
Fix draw monster ( #7057 )
2 years ago
Eric Robinson
0736ba27c9
Fix Sideways Walk Draw Order ( #7056 )
2 years ago
Eric Robinson
6d5bbe6782
Fix draw order problems with south walk ( #7053 )
2 years ago
KPhoenix
fee49ea061
Consolidate walk functions
2 years ago
KPhoenix
8291d30dd1
Fix South Walk bug
2 years ago
Gleb Mazovetskiy
c1714810c8
Fix out-of-bounds mini-map pentagram
2 years ago
Gleb Mazovetskiy
647f8c38e4
Slightly improve CJK infobox rendering
...
It still isn't perfect (there just isn't enough space) but we now
cut off fewer pixels at the bottom.
2 years ago
obligaron
dc4cd43e8f
Remove duplicate function definitions from control.h
2 years ago
ephphatha
3b458376bb
Use a pointer to a player instance instead of network id for cursor hovering
2 years ago
obligaron
95940a4c7e
Fix MSVC warnings in engine\render\*
2 years ago
Gleb Mazovetskiy
5fc6ce608f
Lua: Overhaul events
...
1. `Events` global is replaced with `require('devilutionx.events')`.
2. Table is simplified and documented.
3. `On` removed from the event names as it was a bit redundant.
4. Functions are camelCase for consistency (e.g. `add` instead of
`Add`).
Example script:
```lua
local events = require("devilutionx.events")
local render = require("devilutionx.render")
local message = require("devilutionx.message")
local function greet()
message("Hello from " .. _VERSION)
print("Hello from ", _VERSION)
end
events.GameStart.add(greet)
local function drawGreet()
render.string("Hello from " .. _VERSION, 10, 40)
end
events.GameDrawComplete.add(drawGreet)
```
2 years ago
Gleb Mazovetskiy
e02dc1f9dd
Console input: Word-wrap-related cursor fixes
...
1. Handle word breaks in the prompt, e.g. `"> " -> "\n"`.
2. Handle word breaks in the original newline for all whitespace, not just `"\n"`.
2 years ago
Gleb Mazovetskiy
b30b712cbb
Lua: Add basic autocomplete in the console
2 years ago
Gleb Mazovetskiy
dbfa204944
Lua: Set `warn` function
...
Previously, warnings went nowhere.
2 years ago
Gleb Mazovetskiy
17d5f05ada
Fix some compilation warnings
2 years ago
Gleb Mazovetskiy
3ea4996367
Add a basic Quake-style console
...
Enabled only in Debug mode.
Runs Lua similar to the `lua` CLI.
Supports multiline input with Shift+Enter.
Missing features:
1. Scrollback.
2. Input history on up/down.
Open with backtick, close with Esc.
2 years ago
Gleb Mazovetskiy
55b0fc5c26
Text inputs: Selection, copy, cut
...
Adds shift selection, Ctrl+C, and Ctrl+X handling.
Also fixes left-right movement for non-ASCII characters.
2 years ago
Gleb Mazovetskiy
de6eac137b
Split up lua bindings a bit
...
```lua
local render = devilutionx.render
local function drawGreet ()
render.string("Hello from " .. _VERSION, 10, 40)
end
Events.OnGameDrawComplete.Add(drawGreet)
```
2 years ago
Gleb Mazovetskiy
e5881688f4
`text_render`: Replace optional args with struct
...
4 options args are a bit unwieldy, especially when you want
to pass only the first and the last one.
With a struct, there is no need to specify the default values
for the args in between.
2 years ago
Gleb Mazovetskiy
09ab58343c
Migrate gold drop/withdrawal to `text_input`
...
With this, all text input is handled in a unified way.
2 years ago
Gleb Mazovetskiy
fdb5738815
Add cursor support to DiabloUI and chat
...
Supports move left/right/home/end, backspace, delete, and Ctrl+V.
2 years ago
Gleb Mazovetskiy
5b62bf7eec
Lua improvements
...
1. A conformant `print`.
2. `drawString`.
3. `OnGameDrawComplete` event for drawing things on screen.
2 years ago
staphen
61e51f2349
Additional cleanup for WordWrapString()
2 years ago
staphen
99bf0e4e3c
Insert newline for words longer than width in WordWrapString()
2 years ago
Gleb Mazovetskiy
88bbf4f913
Improve DiabloMsg handling
...
1. Simplified implementation.
2. Now adjusts the box size to fit the content (e.g. when wrapping
failed or when there are too many lines).
2 years ago
Gleb Mazovetskiy
d1d27c8368
Rename error -> diablo_msg
2 years ago
Eric Robinson
ffc7190898
Automap: Add minimap display option ( #6612 )
3 years ago
Eric Robinson
4c7e2edd06
Automap: Transparency ( #6607 )
3 years ago
Gleb Mazovetskiy
fa155d4ffd
Dungeon tiles: Port over some cleanups from #6636
3 years ago
Gleb Mazovetskiy
3477d2f33f
Revert "dun_render: Add `DunTileColorMap` for baked light"
...
This reverts commit 827eb9705d .
3 years ago
Gleb Mazovetskiy
14e32bd8f3
`DrawDungeon`: Remove `dRendered` check
...
This check was only needed when the tile to the east was drawn first.
Checks for this with a single bool rather than a whole bitset.
3 years ago
Gleb Mazovetskiy
827eb9705d
dun_render: Add `DunTileColorMap` for baked light
...
Refs #6631
3 years ago
Gleb Mazovetskiy
4c87f335ac
`DrawDungeon`: Move checks out of `DrawObject/Item`
...
Avoids calling `FindObjectAtPosition` and similar pre-checks twice.
3 years ago
Gleb Mazovetskiy
e5c426c315
Make `IsWall` easier for the compiler to inline
...
This appears to be a very hot function.
Makes it fully inlineable (even in Debug mode).
3 years ago
Eric Robinson
d63fa514ab
Automap: Pentagram ( #6606 )
3 years ago
Gleb Mazovetskiy
b83637add8
Use a C array for transparency LUT for debug perf
...
In a debug build, `std::array` accesses are function calls.
Timedemo on my machine:
* Before: 45.39 seconds 141.3 FPS
* After: 40.20 seconds 159.5 FPS
3 years ago
Gleb Mazovetskiy
b64ee0e190
Use `if constexpr` in clx/dun_render
3 years ago
Gleb Mazovetskiy
62e9aa0448
`MissilePosition`: Use `WorldTilePosition`
...
Reduces struct size and makes the types of coordinates more obvious.
3 years ago
Gleb Mazovetskiy
5355146d51
Use structured bindings
3 years ago
Stephen C. Wills
45dbe6aa61
Shift software cursor graphic and remove special casing ( #6512 )
3 years ago
Gleb Mazovetskiy
ba4def9382
Use utils/algorithm/container.hpp in more places
3 years ago
Gleb Mazovetskiy
cbf51cd5ab
`DrawStringFormatArg`: Use `std::variant`
3 years ago
Gleb Mazovetskiy
26f42520fa
Fix unused variable warnings
3 years ago
Gleb Mazovetskiy
8c1a847f41
Remove utils/stdcompat/string_view.hpp
3 years ago