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
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
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
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
5b62bf7eec
Lua improvements
...
1. A conformant `print`.
2. `drawString`.
3. `OnGameDrawComplete` event for drawing things on screen.
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
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
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
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
26f42520fa
Fix unused variable warnings
3 years ago
Gleb Mazovetskiy
8c1a847f41
Remove utils/stdcompat/string_view.hpp
3 years ago
Gleb Mazovetskiy
62d067b653
Remove utils/stdcompat/abs.hpp
3 years ago
obligaron
d5642daeb4
Introduce GetScreenPosition
3 years ago
obligaron
578ce01432
Introduce Towner/Player/Object/Item/Monster::currentSprite/getRenderingOffset
3 years ago
DakkJaniels
ad19caf667
Move hp/mana display and item graphics to gameplay options
3 years ago
qndel
c362808165
debug path command ( #6101 )
3 years ago
qndel
3500dc1861
code cleanup
3 years ago
Gleb Mazovetskiy
4fa3732526
Add missing <cstdint> includes
...
Done with the following script:
```ruby
Dir["Source/**/*.{h,c,cc,cpp,hpp}"].each do |path|
v = File.read(path)
next if !v.include?("uint32_t") || v.include?("cstdint")
lines = v.lines
line_num = if lines[2].start_with?(" *")
lines.index { |l| l.start_with?(" */") } + 3
else
3
end
lines.insert(line_num, "#include <cstdint>\n")
File.write(path, lines.join(""))
end
```
then fixed-up manually
3 years ago
Anders Jenbo
6998906b32
Hellfire: let light affect the player
3 years ago
Anders Jenbo
ec9d1b5550
Rename _oLight to applyLighting
3 years ago
Gleb Mazovetskiy
8408743eed
Draw item labels before the monster health bar
...
Fixes #5867
3 years ago
obligaron
36ecc50fcb
Always use infravision in Arenas
3 years ago
KPhoenix
a1fbf5253f
`enum talk_id` -> `enum class TalkID`
3 years ago
Gleb Mazovetskiy
98294e0ad5
Optimize `MissileData`: 32 bytes -> 24
...
23 bytes used, 1 spare byte in the padding.
3 years ago
Gleb Mazovetskiy
0a6a8e8aa0
Clean up missile data access
...
Replace enum static casts with `GetMissile(Sprite)Data`.
3 years ago
KPhoenix
7947b99511
Implement new enum class
3 years ago
Gleb Mazovetskiy
1788d2f8ec
Remove miniwin
...
Event handling code moved to `engine/events.{hpp,cpp}`.
3 years ago
staphen
dd6ce177f7
Derive viewport geometry from player position
3 years ago
Gleb Mazovetskiy
527e876fff
Disable item labels when in store
...
Also disable ground item outlines on hover when in store.
3 years ago
Anders Jenbo
c99f7cf644
Floating numbers ( #5639 )
...
Co-authored-by: qndel <stefan551@o2.pl>
Co-authored-by: Stephen C. Wills <staphen@gmail.com>
3 years ago
KPhoenix
8db521727d
`enum missile_id` -> `enum class MissileID`
...
Changes `enum missile_id` to `enum class MissileID`
3 years ago
Anders Jenbo
bb2463862c
Use Position in AddItemToLabelQueue()
3 years ago
Anders Jenbo
a29fc3a074
Correct casing for Player::isWalking()
3 years ago
Gleb Mazovetskiy
e06ca9a016
dun_render: Remove unused argument from RenderTile
...
Now that we pass the mask into `RenderTile`, we no longer need to pass
`levelPieceId`.
3 years ago