rnd-20140305-3-src
authorHolger Schemel <info@artsoft.org>
Wed, 5 Mar 2014 20:08:12 +0000 (21:08 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 09:01:12 +0000 (11:01 +0200)
src/conftime.h
src/editor.c

index 3e7a1e94b2b1e7fd894abefe2c5259764b96a8b8..9b84439f8f716300553ff11852db4352cfbd44d9 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2014-03-05 17:41"
+#define COMPILE_DATE_STRING "2014-03-05 21:07"
index 67ff7203a7daa07ecb965df27e3967de2083647c..b611050cc31ba4900a020b70e12ba565812e819b 100644 (file)
@@ -3487,6 +3487,8 @@ static void HandleControlButtons(struct GadgetInfo *);
 static void HandleDrawingAreaInfo(struct GadgetInfo *);
 static void PrintEditorGadgetInfoText(struct GadgetInfo *);
 
 static void HandleDrawingAreaInfo(struct GadgetInfo *);
 static void PrintEditorGadgetInfoText(struct GadgetInfo *);
 
+static int num_editor_gadgets = 0;     /* dynamically determined */
+
 #if 1
 static struct GadgetInfo **level_editor_gadget = NULL;
 static int *right_gadget_border = NULL;
 #if 1
 static struct GadgetInfo **level_editor_gadget = NULL;
 static int *right_gadget_border = NULL;
@@ -4797,7 +4799,7 @@ static int num_editor_el_dynamic = 0;
 
 static int editor_hl_empty[] = { };
 #if 1
 
 static int editor_hl_empty[] = { };
 #if 1
-static int *editor_el_empty = NULL;
+static int *editor_el_empty = NULL;    /* dynamically allocated */
 #else
 static int editor_el_empty[ED_NUM_ELEMENTLIST_BUTTONS];
 #endif
 #else
 static int editor_el_empty[ED_NUM_ELEMENTLIST_BUTTONS];
 #endif
@@ -6570,10 +6572,14 @@ void CreateLevelEditorGadgets()
   ed_fieldx = MAX_ED_FIELDX - 1;
   ed_fieldy = MAX_ED_FIELDY - 1;
 
   ed_fieldx = MAX_ED_FIELDX - 1;
   ed_fieldy = MAX_ED_FIELDY - 1;
 
+  num_editor_gadgets = NUM_EDITOR_GADGETS;
+
+  // printf("::: allocating %d gadgets ...\n", num_editor_gadgets);
+
   level_editor_gadget =
   level_editor_gadget =
-    checked_calloc(NUM_EDITOR_GADGETS * sizeof(struct GadgetInfo *));
+    checked_calloc(num_editor_gadgets * sizeof(struct GadgetInfo *));
   right_gadget_border =
   right_gadget_border =
-    checked_calloc(NUM_EDITOR_GADGETS * sizeof(int));
+    checked_calloc(num_editor_gadgets * sizeof(int));
 
   editor_el_empty = checked_calloc(ED_NUM_ELEMENTLIST_BUTTONS * sizeof(int));
   editor_el_empty_ptr = editor_el_empty;
 
   editor_el_empty = checked_calloc(ED_NUM_ELEMENTLIST_BUTTONS * sizeof(int));
   editor_el_empty_ptr = editor_el_empty;
@@ -6601,7 +6607,9 @@ void FreeLevelEditorGadgets()
 {
   int i;
 
 {
   int i;
 
-  for (i = 0; i < NUM_EDITOR_GADGETS; i++)
+  // printf("::: freeing %d gadgets ...\n", num_editor_gadgets);
+
+  for (i = 0; i < num_editor_gadgets; i++)
   {
     FreeGadget(level_editor_gadget[i]);
 
   {
     FreeGadget(level_editor_gadget[i]);
 
@@ -6981,7 +6989,7 @@ static void UnmapLevelEditorFieldGadgets()
   int i;
 
 #if 1
   int i;
 
 #if 1
-  for (i = 0; i < NUM_EDITOR_GADGETS; i++)
+  for (i = 0; i < num_editor_gadgets; i++)
     if (IN_GFX_FIELD_FULL(level_editor_gadget[i]->x,
                          level_editor_gadget[i]->y))
       UnmapGadget(level_editor_gadget[i]);
     if (IN_GFX_FIELD_FULL(level_editor_gadget[i]->x,
                          level_editor_gadget[i]->y))
       UnmapGadget(level_editor_gadget[i]);
@@ -6996,7 +7004,7 @@ void UnmapLevelEditorGadgets()
 {
   int i;
 
 {
   int i;
 
-  for (i = 0; i < NUM_EDITOR_GADGETS; i++)
+  for (i = 0; i < num_editor_gadgets; i++)
     UnmapGadget(level_editor_gadget[i]);
 }
 
     UnmapGadget(level_editor_gadget[i]);
 }