home · contact · privacy
Move tests for value size < UINT8_MAX into err_try_fgets() (flag: "8").
[plomrogue] / src / server / map_object_actions.c
index a30809b33336dbea3695bd3d471f796cb111df7f..1c49108b0c654ce1dfbc8a2ca2a838d3c3efc3f3 100644 (file)
@@ -2,7 +2,7 @@
 
 #include "map_object_actions.h"
 #include <stddef.h> /* NULL */
-#include <stdint.h> /* uint8_t, uint16_t, UINT8_MAx */
+#include <stdint.h> /* uint8_t, uint16_t */
 #include <stdio.h> /* sprintf(), ungetc() */
 #include <stdlib.h> /* free(), atoi() */
 #include <string.h> /* strlen(), strcmp(), memcpy(), strncmp() */
@@ -77,7 +77,7 @@ static void update_log(char * text)
             }
             last_stop--;
         }
-        if (   (last_stop + 1) - last_nl == strlen(text)
+        if (   (last_stop + 1) - last_nl == (uint16_t) strlen(text)
             && 0 == strncmp(world.log + last_nl, text, strlen(text)))
         {
             text = ".";
@@ -137,10 +137,6 @@ static void actor_hits_actor(struct MapObj * hitter, struct MapObj * hitted)
             return;
         }
         update_log(" It dies.");
-        if (player == hitter)
-        {
-            world.score = world.score + mod_hitted->lifepoints;
-        }
     }
 }
 
@@ -174,7 +170,10 @@ static void playerbonus_move(char d, uint8_t passable)
         || match_dir(d, &dsc_dir, '7', "north-west")
         || match_dir(d, &dsc_dir, '9', "north-east")
         || match_dir(d, &dsc_dir, '1', "south-west")
-        || match_dir(d, &dsc_dir, '3', "south-east"));
+        || match_dir(d, &dsc_dir, '3', "south-east"))
+    {
+        ;
+    }
     char * dsc_move = "You move ";
     if (0 == passable)
     {
@@ -236,8 +235,7 @@ extern void init_map_object_actions()
     char line[linemax + 1];
     struct MapObjAct ** moa_ptr_ptr = &world.map_obj_acts;
     char * context = "Failed reading map object actions config file. ";
-    char * err_toolarge = "Value is too large.";
-    char * err_uniq     = "Declaration of ID already used.";
+    char * err_uniq = "Declaration of ID already used.";
     reset_err_try_fgets_counter();
     while (1)
     {
@@ -248,16 +246,14 @@ extern void init_map_object_actions()
         }
         exit_trouble(EOF == ungetc(test_for_end, file), f_name, "ungetc()");
         struct MapObjAct * moa = try_malloc(sizeof(struct MapObjAct), f_name);
-        err_try_fgets(line, linemax, file, context, "nfi");
-        err_line(atoi(line) > UINT8_MAX, line, context, err_toolarge);
+        err_try_fgets(line, linemax, file, context, "nfi8");
         moa->id = atoi(line);
         struct MapObjAct * moa_test = world.map_obj_acts;
         for (; NULL != moa_test; moa_test = moa_test->next)
         {
             err_line(moa->id == moa_test->id, line, context, err_uniq);
         }
-        err_try_fgets(line, linemax, file, context, "0nfi");
-        err_line(atoi(line) > UINT8_MAX, line, context, err_toolarge);
+        err_try_fgets(line, linemax, file, context, "0nfi8");
         moa->effort = atoi(line);
         err_try_fgets(line, linemax, file, context, "0nf");
         line[strlen(line) - 1] = '\0';
@@ -406,7 +402,7 @@ extern void actor_use(struct MapObj * mo)
         struct MapObj * selected = mo->owns;
         for (; i != select; i++, selected = selected->next);
         struct MapObjDef * mod = get_map_object_def(selected->type);
-        if (!strcmp("MAGIC MEAT", mod->name))
+        if (mod->consumable)
         {
             wrong_object = 0;
             struct MapObj * next = selected->next;
@@ -422,7 +418,7 @@ extern void actor_use(struct MapObj * mo)
             {
                 mo->owns = next;
             }
-            mo->lifepoints++;
+            mo->lifepoints = mo->lifepoints + mod->consumable;
         }
     }
     if (mo == get_player())