ephphatha
b4839dadcc
Dedupe operate object network commands
4 years ago
ephphatha
8132d6a033
Take object by reference in OperateObject
4 years ago
Anders Jenbo
52780a3712
Do not count closed doors as blocked
4 years ago
qndel
3736b5c8fd
fix interacting with lazarus books while not on circles
4 years ago
Anders Jenbo
2d9531f692
Remove redundant check for distance when operating doors
...
IsPlayerAdjacentToObject() is checked before calling OperateObject().
Previously teleFlag would ignore sendmsg which was likely a bug causing
the event to fire multiple times.
4 years ago
Anders Jenbo
acab00652e
Unify operate door logic
4 years ago
Anders Jenbo
3589744ed1
Fix crypt doors looking wrong after closing them
4 years ago
Anders Jenbo
37ad8a438a
Remove some redundant door logic
4 years ago
Anders Jenbo
8dd8203a39
Add missing check to IsDoorClear
4 years ago
Anders Jenbo
e1417be472
Reuse code for opening and closing doors
4 years ago
Anders Jenbo
6fdd756023
[hellfire] Fix blocked crypt door sound
...
Clean up blocked check in OperateL??Door
4 years ago
Anders Jenbo
52d9b69624
Reuse SetDoorStateClosed in AddDoor
4 years ago
Anders Jenbo
e9702b4415
Move and rename door state functions
4 years ago
staphen
748bb1f84d
Split delta trap operation from realtime trap operation
4 years ago
Gleb Mazovetskiy
961866e1c4
CLX: A new graphics format
...
The format is almost identical to CL2, except it uses the frame header
to store frame width and height instead of 5 32-line offsets.
This means we always have access to frame dimensions, so we can use it
as an on-disk format for our graphics as well.
Additionally, we may be able to optimize the rendering even more
in the future now that we have guaranteed knowledge of frame dimensions.
4 years ago
Anders Jenbo
da5f392cfa
Merge OpenDoor and DeltaSyncDoor
4 years ago
Anders Jenbo
b9aa2959a6
Split deleta sync from operate door
4 years ago
Anders Jenbo
5f3acebe5e
Merge operate door functions
4 years ago
Anders Jenbo
069a33749c
Merge sync door functions
4 years ago
Anders Jenbo
70683bf9de
Add door state enum
4 years ago
Anders Jenbo
3250472789
Clean up player references
4 years ago
Anders Jenbo
e83c55d444
Clean up object references
4 years ago
ephphatha
b234565f65
Inline functions which only set Object::_oRndSeed
4 years ago
Cesar Canassa
f069cdc771
♻️ Pass objects by reference ( #5148 )
4 years ago
ephphatha
0ce76a3f13
Add Object lookup method to mimic map::at()
4 years ago
ephphatha
ed5d2d98e7
Simplify AddBookLever
4 years ago
ephphatha
cdcccef47a
Return pointer from AddObject
...
This allows removing the immediate lookup for call sites which need further initialisation.
4 years ago
Andrew James
24c57bf6c6
Simplify MonsterOperateDoor ( #5100 )
4 years ago
ephphatha
4a8f375011
Use position for operate object network commands
...
Only one remaining use of Object::getId for caching the target of a command requiring the player to path to an object.
4 years ago
ephphatha
50d292f8c6
Take references in operate door functions
4 years ago
Andrew James
9a09b07c4d
Cleanup Object/Quest triggers which activate quests ( #5081 )
4 years ago
Andrew James
2786a65e7b
Tidy up ActivateSkeleton and take monster by reference ( #5080 )
...
* Take reference in OperateSarcophagus
* Use monster reference instead of pointer in ActivateSkeleton
* Clean up ActivateSkeleton
4 years ago
Andrew James
a075e5fe05
Take Object by reference in OperateContainer methods ( #5079 )
4 years ago
ephphatha
de83d9440e
Use position for break object network messages
4 years ago
Andrew James
986650afc8
Take Object by reference when operating quest objects ( #5066 )
4 years ago
ephphatha
9e76cd4ab7
Use object pointer for pcursobj
4 years ago
Gleb Mazovetskiy
8ca71272b8
Load all CEL as CL2
...
Convert CEL files to CL2 at load time. CL2 format is more efficient and is about as fast to render.
CEL vs CL2 sizes, on dLvl 5: https://gist.github.com/glebm/9bbdd76962abcd4fd2405ecd3379af97
Memory:
* Peak memory (while loading): -300 KiB
* Memory in-game (dLvl5): -700 KiB
* RG99 binary size: -15 KiB (1333096 -> 1317192)
Performance on rg99:
* On average, -1 FPS in town.
* Same FPS in dungeon (20 FPS on dLvl 1).
4 years ago
Anders Jenbo
56915974d6
Minimize passing of player indexes
4 years ago
Cesar Canassa
aa6ea3907e
♻️ Adds Missile::SourcePlayer and Missile::SourceMonster ( #4999 )
4 years ago
Anders Jenbo
d1189388f5
Use user by reference
4 years ago
Gleb Mazovetskiy
70364013b0
Fix fmt v9 deprecation warnings
...
Version 9 of libfmt deprecates printing `enum` without casting it to an
integral type explicitly (consistent with `enum class`).
4 years ago
Gleb Mazovetskiy
f460405818
Fix warnings
...
Note that in test/utf8_test.cpp, the first comparison was redundant.
For a signed char, this iterates from -128 to -1, unsigned from 0 to 128.
4 years ago
Anders Jenbo
ac2bf9aaac
Limit what gets called in headless mode
4 years ago
ephphatha
073b62549c
Cleanup AddTrap
4 years ago
ephphatha
16b8530375
Object reference in AddObjectLight
4 years ago
ephphatha
90c8f41e52
Object reference in AddChest
4 years ago
ephphatha
1337ff6ea2
Add check if a monster potentially has leashed minions
4 years ago
Gleb Mazovetskiy
ae6a3dbe5e
Add missing <ctime> includes for `std::tm`
4 years ago
Anders Jenbo
38113c0ad8
Convert monster_goal in to a scoped enum
4 years ago
Anders Jenbo
6a8fd04067
Use player by references ( #4938 )
4 years ago