home · contact · privacy
Server/C: In actor_pick(), pick highest ID'd item in stack of many.
authorChristian Heller <c.heller@plomlompom.de>
Sun, 8 Mar 2015 16:10:49 +0000 (17:10 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Sun, 8 Mar 2015 16:10:49 +0000 (17:10 +0100)
src/server/thing_actions.c

index 2a682c277356f0e4deae6b8bef0ba08a5f936ab3..c9e8ddb30642d421f824487388a1f1fa75cbe5d0 100644 (file)
@@ -270,11 +270,16 @@ extern void actor_pick(struct Thing * t)
 {
     struct Thing * picked = NULL;
     struct Thing * t_i;
+    uint8_t highest_id = 0;
     for (t_i = world.things; t_i; t_i = t_i->next)
     {
         if (t_i != t && t_i->pos.y == t->pos.y && t_i->pos.x == t->pos.x)
         {
-            picked = t_i;
+            if (t_i->id >= highest_id)   /* With several Things to pick,      */
+            {                            /* pick the one with the highest ID. */
+                highest_id = t_i->id;
+                picked = t_i;
+            }
         }
     }
     if (picked)