Browse Source

add spacing param to spawn_icon_line

jblanked 11 months ago
parent
commit
b383b5f67b
3 changed files with 16 additions and 14 deletions
  1. 5 5
      game/draw.c
  2. 1 1
      game/draw.h
  3. 10 8
      game/world.c

+ 5 - 5
game/draw.c

@@ -57,29 +57,29 @@ void spawn_icon(GameManager *manager, Level *level, const char *icon_id, float x
     game_context->icon_count++;
 }
 // Draw a line of icons at a specific position (with collision detection)
-void spawn_icon_line(GameManager *manager, Level *level, const char *icon_id, float x, float y, uint8_t amount, bool horizontal)
+void spawn_icon_line(GameManager *manager, Level *level, const char *icon_id, float x, float y, uint8_t amount, bool horizontal, uint8_t spacing)
 {
     for (int i = 0; i < amount; i++)
     {
         if (horizontal)
         {
             // check if element is outside the world
-            if (x + (i * 17) > WORLD_WIDTH)
+            if (x + (i * spacing) > WORLD_WIDTH)
             {
                 break;
             }
 
-            spawn_icon(manager, level, icon_id, x + (i * 17), y);
+            spawn_icon(manager, level, icon_id, x + (i * spacing), y);
         }
         else
         {
             // check if element is outside the world
-            if (y + (i * 17) > WORLD_HEIGHT)
+            if (y + (i * spacing) > WORLD_HEIGHT)
             {
                 break;
             }
 
-            spawn_icon(manager, level, icon_id, x, y + (i * 17));
+            spawn_icon(manager, level, icon_id, x, y + (i * spacing));
         }
     }
 }

+ 1 - 1
game/draw.h

@@ -9,6 +9,6 @@ extern int camera_y;
 void draw_user_stats(Canvas *canvas, Vector pos, GameManager *manager);
 void draw_username(Canvas *canvas, Vector pos, char *username);
 void spawn_icon(GameManager *manager, Level *level, const char *icon_id, float x, float y);
-void spawn_icon_line(GameManager *manager, Level *level, const char *icon_id, float x, float y, uint8_t amount, bool horizontal);
+void spawn_icon_line(GameManager *manager, Level *level, const char *icon_id, float x, float y, uint8_t amount, bool horizontal, uint8_t spacing);
 extern char g_name[32];
 void background_render(Canvas *canvas, GameManager *manager);

+ 10 - 8
game/world.c

@@ -68,7 +68,9 @@ bool draw_json_world_furi(GameManager *manager, Level *level, const FuriString *
                 atoi(furi_string_get_cstr(x)),
                 atoi(furi_string_get_cstr(y)),
                 count,
-                is_horizontal);
+                is_horizontal,
+                17 // set as 17 for now
+            );
         }
 
         furi_string_free(data);
@@ -105,11 +107,11 @@ void draw_town_world(GameManager *manager, Level *level)
     spawn_icon(manager, level, "fence_end", 72, 64);
 
     // line of fences on the 8th row (using spawn_icon_line)
-    spawn_icon_line(manager, level, "fence", 8, 96, 10, true);
+    spawn_icon_line(manager, level, "fence", 8, 96, 10, true, 17);
 
     // plants spaced out underneath the fences
-    spawn_icon_line(manager, level, "plant", 40, 110, 6, true);
-    spawn_icon_line(manager, level, "flower", 40, 140, 6, true);
+    spawn_icon_line(manager, level, "plant", 40, 110, 6, true, 17);
+    spawn_icon_line(manager, level, "flower", 40, 140, 6, true, 17);
 
     // man and woman
     spawn_icon(manager, level, "man", 156, 110);
@@ -134,23 +136,23 @@ void draw_town_world(GameManager *manager, Level *level)
     for (int i = 0; i < 2; i++)
     {
         // Horizontal line of 22 icons
-        spawn_icon_line(manager, level, "tree", 5, 2 + i * 17, 22, true);
+        spawn_icon_line(manager, level, "tree", 5, 2 + i * 17, 22, true, 17);
         // Vertical line of 11 icons
-        spawn_icon_line(manager, level, "tree", 5 + i * 17, 2, 11, false);
+        spawn_icon_line(manager, level, "tree", 5 + i * 17, 2, 11, false, 17);
     }
 
     // Spawn two full down tree lines
     for (int i = 9; i < 11; i++)
     {
         // Horizontal line of 22 icons
-        spawn_icon_line(manager, level, "tree", 5, 2 + i * 17, 22, true);
+        spawn_icon_line(manager, level, "tree", 5, 2 + i * 17, 22, true, 17);
     }
 
     // Spawn two full right tree lines
     for (int i = 20; i < 22; i++)
     {
         // Vertical line of 8 icons starting further down (y=50)
-        spawn_icon_line(manager, level, "tree", 5 + i * 17, 50, 8, false);
+        spawn_icon_line(manager, level, "tree", 5 + i * 17, 50, 8, false, 17);
     }
 }