Announcement: Be excellent to each other.


Caravel Forum : DROD Boards : Bugs : Various problems with temporal tokens and swords pointing outside room edge
New Topic New Poll Post Reply
Poster Message
uncopy2002
Level: Smiter
Rank Points: 431
Registered: 07-28-2014
IP: Logged

File: Trapdoor on Temporal Token 1.hold (906 bytes)
Downloaded 40 times.
License: Public Domain
icon Various problems with temporal tokens and swords pointing outside room edge (+2)  
So, I was playing with temporal token on trapdoor at room edges today, and I noticed several edge casesthings worths fixing (ordered roughly by their complexity):

1. For some reason, pit, water and shallow water cannot be placed on a temporal token, but temporal token can be placed on them.

2. When a time clone points his sword at room edge and performs a move, the movement preview animation of him draws properly under the UI when he's rotating and when he's moving along the room edge, but not when he's moving away from room edge. This results in weapon being drawn over the UI.

3. If the player's sword is pointing outside the room while the temporal token drops the trapdoor and kills the player, the game beeps and drod.err outputs stuff.
What is outputted depends on the sword's position when this is performed:

Let's call the following two message errors A and B respectively:
A:
Assertion error in line 47 of .\TrapdoorFallEffect.cpp: "this->pRoom->IsValidColRow(this->wCol, this->wRow)"
B:
Assertion error in line 6377 of .\DbRooms.cpp: "wX < this->wRoomCols"

Every time at least output an instance of A. However, the number of instance of B outputted after A depends on the sword's position: it can be 0, 1, some arbitrary number or every frame in the death animation.
It happens every frame if the sword's hypothetical coordinate warps back to a tile in the room that is a pit, platform on pit or trapdoor on pit: for example, if the player is at (37,15) and sword pointing SE, then the sword's hypothetical coordinate is (38,16), which translates to (0,17), and if this tile is either of the abovementioned tile, the game will output B for every frame in the death animation. This suggests that the bug probably has to do with array indexing.
If it warps back to such a tile, but the tile is along the bottom few rows, B will then output for a specific number of times during death animation. I suspect it has to do with the trapdoor animation falling beyond the bottom room edge, and hence isn't drawn anymore.
If it warps back to a tile in the room, but said tile is not one the abovementioned tiles, then B will only be outputted once.
If it doesn't warp back to a tile in the room, no B will be outputted.

This doesn't happen if the temporal clone is dropped instead, and happens with every kind of weapon (except daggers of course, since they don't drop trapdoors).



There is a demo hold attached that you can play with these bugs.

[Last edited by uncopy2002 at 11-30-2016 04:31 PM]
11-30-2016 at 01:44 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
skell
Level: Legendary Smitemaster
Avatar
Rank Points: 3734
Registered: 12-28-2004
IP: Logged
icon Re: Various problems with temporal tokens and swords pointing outside room edge (+2)  
1. It is possible to place temporal token on top of water, put and shallow water and the other way around
2. I've fixed visual issue caused by not clipping the drawn sword on room edges + added missing sword graphic when moving towards room edge
3. Has nothing to do with temporal projection - it beeps when trying to add falling sword effect for player. You can get the same effect by using player on bridge, connected with trapdoor dropped by construct. It asserts on checking if the position is withing the boundaries of the room. Still a bug, of course, and fixed, too!

As a bonus, when I fixed this I accidentally introduced the bug #3 for all armed monsters. Fixed it too!

PR

____________________________
My website | Facebook | Twitter

[Last edited by skell at 10-06-2020 10:37 AM]
10-06-2020 at 10:37 AM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts High Scores This architect's holds Quote Reply
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged
icon Re: Various problems with temporal tokens and swords pointing outside room edge (+1)  
Can confirm in 5.1.1.alpha.2020-10-16:

1) You can now place pit, water and shallow water underneath a time token in the editor.
2) I could not see any issues with how swords are drawn when approaching or stepping away from room edges with both the player and timeclones.
3) If the player's sword is off a room boundary on a bridge and a construct drops the bridge, no error beeps happen (although no sword is drawn either during the falling animation).
10-18-2020 at 02:58 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : DROD Boards : Bugs : Various problems with temporal tokens and swords pointing outside room edge
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.