player takes a swing at a solid grid (ctrl-direction at it), or it's hit by a solid-ish beam (normal thrown item, Magic Dart, etc), then a "wall hit" dungeon event will be issued for that square; a Lua marker can listen to that event to implement a switch/lever/button.
No Lua glue or Lua convenience classes yet.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10573 c06c8d41-db1a-0410-9941-cceddc491573
6LJ7HNA6M2RVACJM4OASJPQAQ42UZGCXW636AVJ4CPICGQZBKLWQC R25VQ2MUGGDTO5UZR2DPO5XUYSA3LB6RIEBGLJ6CD75T2GED2ZNAC NOUFW6ACJ7KPVHSPF4WLRAVOWI7PZ6OAVYDRMI3WYNPXVMGAB3QAC 7Y5HSDFKA5TPLS2TWTRFMQVX6UXUDHXU5MUMXQSDFAIY4THQ3BIQC AUXHSGS4EFOPZ6TVZYWNVOUDO7NYKUKE3HBKGQQWTALSVFOE3HAAC HWTL2S7OVOJRJAAN66ZTT26HJDAOIW6RKAG5NFMNZJU63CTU2U5AC Y3NLZQBRMBULLMTLNCG5VSLRZFUAD4MI6VMYN7Q3L5YMIVDN5DAQC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC FC7M3JHVRPOLZP7YWOJN4O6YJV7KRJUMPLTI2Q4ANCO7GD23YKWQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC BC24BZTIVJ6GORK7XXGHQ7YXKYBEPFCTKVCANZE6PEXY4L3ZQMCAC }// Press trigger/switch/button in wall if hit by something solid// or solid-ish.if (!is_explosion && !is_tracer && !monster_at(pos())&& (flavour == BEAM_MISSILE || flavour == BEAM_MMISSILE)){dgn_event event(DET_WALL_HIT, pos());;event.arg1 = beam_source;dungeon_events.fire_vetoable_position_event(event, target);
mpr("You swing at nothing.");
{bool do_msg = true;// Press trigger/switch/button in wall.if (grid_is_solid(feat)){dgn_event event(DET_WALL_HIT, target);event.arg1 = NON_MONSTER;// Listener can veto the event to prevent the "You swing at// nothing" message.do_msg =dungeon_events.fire_vetoable_position_event(event,target);}if (do_msg)mpr("You swing at nothing.");