Posted: Wed Aug 10, 2016 3:35 pm |
|
I found this in the use_driver.c, line 2631 on the use_driver function:
if (!carried) {
m=it[in].x+it[in].y*MAPX;
if (map[m].ch || map[m].to_ch) return;
} |
Haven't tested it but from what I can see, if the object isn't take-able it checks if there's a character in the same spot this object is in. If there is, the function stops there.
Also found this in the same file, line 3176 on the item_tick_expire function (which I assume is when pents deactivate):
if (may_deactivate(in) && !map[m].ch && !map[m].to_ch) |
It also checks if there's a character on top when attempting to deactivate the object once its active duration expires.