+ dsc_dir = "west" ;
+ }
+ char * dsc_move = "You move ";
+ if (0 == passable)
+ {
+ dsc_move = "You fail to move ";
+ }
+ char msg[strlen(dsc_move) + strlen (dsc_dir) + 3];
+ sprintf(msg, "\n%s%s.", dsc_move, dsc_dir);
+ update_log(msg);
+}
+
+
+
+static void playerbonus_drop(uint8_t owns_none)
+{
+ if (0 != owns_none)
+ {
+ update_log("\nYou try to drop an object, but you own none.");
+ return;
+ }
+ update_log("\nYou drop an object.");
+ world.inventory_sel = world.inventory_sel - (0 < world.inventory_sel);
+}
+
+
+
+static void playerbonus_pick(uint8_t picked)
+{
+ if (picked)
+ {
+ update_log("\nYou pick up an object.");
+ return;
+ }
+ update_log("\nYou try to pick up an object, but there is none.");
+}
+
+
+
+static void playerbonus_use(uint8_t no_object, uint8_t wrong_object)
+{
+ if (no_object)
+ {
+ update_log("\nYou try to use an object, but you own none.");
+ return;
+ }
+ else if (wrong_object)
+ {
+ update_log("\nYou try to use this object, but fail.");