- for (i=0; i<level.num_yam_contents; i++)
- MapDrawingArea(GADGET_ID_ELEM_CONTENT_0 + i);
-}
-
-#define TEXT_COLLECTING "Score for collecting"
-#define TEXT_SMASHING "Score for smashing"
-#define TEXT_CRACKING "Score for cracking"
-#define TEXT_SPEED "Speed of amoeba growth"
-#define TEXT_DURATION "Duration when activated"
-
-static struct
-{
- int element;
- int *value;
- char *text;
-} elements_with_counter[] =
-{
- { EL_EMERALD, &level.score[SC_EMERALD], TEXT_COLLECTING },
- { EL_BD_DIAMOND, &level.score[SC_EMERALD], TEXT_COLLECTING },
- { EL_EMERALD_YELLOW, &level.score[SC_EMERALD], TEXT_COLLECTING },
- { EL_EMERALD_RED, &level.score[SC_EMERALD], TEXT_COLLECTING },
- { EL_EMERALD_PURPLE, &level.score[SC_EMERALD], TEXT_COLLECTING },
- { EL_DIAMOND, &level.score[SC_DIAMOND], TEXT_COLLECTING },
- { EL_BUG_RIGHT, &level.score[SC_BUG], TEXT_SMASHING },
- { EL_BUG_UP, &level.score[SC_BUG], TEXT_SMASHING },
- { EL_BUG_LEFT, &level.score[SC_BUG], TEXT_SMASHING },
- { EL_BUG_DOWN, &level.score[SC_BUG], TEXT_SMASHING },
- { EL_BD_BUTTERFLY_RIGHT,&level.score[SC_BUG], TEXT_SMASHING },
- { EL_BD_BUTTERFLY_UP, &level.score[SC_BUG], TEXT_SMASHING },
- { EL_BD_BUTTERFLY_LEFT, &level.score[SC_BUG], TEXT_SMASHING },
- { EL_BD_BUTTERFLY_DOWN, &level.score[SC_BUG], TEXT_SMASHING },
- { EL_SPACESHIP_RIGHT, &level.score[SC_SPACESHIP], TEXT_SMASHING },
- { EL_SPACESHIP_UP, &level.score[SC_SPACESHIP], TEXT_SMASHING },
- { EL_SPACESHIP_LEFT, &level.score[SC_SPACESHIP], TEXT_SMASHING },
- { EL_SPACESHIP_DOWN, &level.score[SC_SPACESHIP], TEXT_SMASHING },
- { EL_BD_FIREFLY_RIGHT,&level.score[SC_SPACESHIP], TEXT_SMASHING },
- { EL_BD_FIREFLY_UP, &level.score[SC_SPACESHIP], TEXT_SMASHING },
- { EL_BD_FIREFLY_LEFT, &level.score[SC_SPACESHIP], TEXT_SMASHING },
- { EL_BD_FIREFLY_DOWN, &level.score[SC_SPACESHIP], TEXT_SMASHING },
- { EL_YAMYAM, &level.score[SC_YAMYAM], TEXT_SMASHING },
- { EL_DARK_YAMYAM, &level.score[SC_YAMYAM], TEXT_SMASHING },
- { EL_ROBOT, &level.score[SC_ROBOT], TEXT_SMASHING },
- { EL_PACMAN_RIGHT, &level.score[SC_PACMAN], TEXT_SMASHING },
- { EL_PACMAN_UP, &level.score[SC_PACMAN], TEXT_SMASHING },
- { EL_PACMAN_LEFT, &level.score[SC_PACMAN], TEXT_SMASHING },
- { EL_PACMAN_DOWN, &level.score[SC_PACMAN], TEXT_SMASHING },
- { EL_NUT, &level.score[SC_NUT], TEXT_CRACKING },
- { EL_DYNAMITE, &level.score[SC_DYNAMITE], TEXT_COLLECTING },
- { EL_KEY_1, &level.score[SC_KEY], TEXT_COLLECTING },
- { EL_KEY_2, &level.score[SC_KEY], TEXT_COLLECTING },
- { EL_KEY_3, &level.score[SC_KEY], TEXT_COLLECTING },
- { EL_KEY_4, &level.score[SC_KEY], TEXT_COLLECTING },
- { EL_EM_KEY_1_FILE, &level.score[SC_KEY], TEXT_COLLECTING },
- { EL_EM_KEY_2_FILE, &level.score[SC_KEY], TEXT_COLLECTING },
- { EL_EM_KEY_3_FILE, &level.score[SC_KEY], TEXT_COLLECTING },
- { EL_EM_KEY_4_FILE, &level.score[SC_KEY], TEXT_COLLECTING },
- { EL_AMOEBA_WET, &level.amoeba_speed, TEXT_SPEED },
- { EL_AMOEBA_DRY, &level.amoeba_speed, TEXT_SPEED },
- { EL_AMOEBA_FULL, &level.amoeba_speed, TEXT_SPEED },
- { EL_BD_AMOEBA, &level.amoeba_speed, TEXT_SPEED },
- { EL_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
- { EL_ROBOT_WHEEL, &level.time_wheel, TEXT_DURATION },
- { -1, NULL, NULL }
-};
-
-static boolean checkPropertiesConfig()
-{
- int i;
-
- if (IS_GEM(properties_element) ||
- IS_CUSTOM_ELEMENT(properties_element) ||
- HAS_CONTENT(properties_element))
- return TRUE;
- else
- for (i=0; elements_with_counter[i].element != -1; i++)
- if (elements_with_counter[i].element == properties_element)
- return TRUE;
-
- return FALSE;
-}
-
-static void DrawPropertiesConfig()
-{
- int counter_id = ED_COUNTER_ID_ELEM_SCORE;
- int xoffset_right = getCounterGadgetWidth();
- int yoffset_right = ED_BORDER_SIZE;
- int xoffset_right2 = ED_CHECKBUTTON_XSIZE + 2 * ED_GADGET_DISTANCE;
- int yoffset_right2 = ED_BORDER_SIZE;
- int i, x, y;
-
- /* check if there are elements where a score can be chosen for */
- for (i=0; elements_with_counter[i].element != -1; i++)
- {
- if (elements_with_counter[i].element == properties_element)
- {
- int x = counterbutton_info[counter_id].x + xoffset_right;
- int y = counterbutton_info[counter_id].y + yoffset_right;
-
- counterbutton_info[counter_id].value = elements_with_counter[i].value;
- DrawTextF(x, y, FONT_TEXT_1, elements_with_counter[i].text);
-
- ModifyEditorCounter(counter_id, *counterbutton_info[counter_id].value);
- MapCounterButtons(counter_id);
- break;
- }
- }
-
- if (HAS_CONTENT(properties_element) ||
- IS_CUSTOM_ELEMENT(properties_element))
- {
- /* draw stickybutton gadget */
- i = ED_CHECKBUTTON_ID_STICK_ELEMENT;
- x = checkbutton_info[i].x + xoffset_right2;
- y = checkbutton_info[i].y + yoffset_right2;
-
- DrawTextF(x, y, FONT_TEXT_1, checkbutton_info[i].text);
- ModifyGadget(level_editor_gadget[checkbutton_info[i].gadget_id],
- GDI_CHECKED, *checkbutton_info[i].value, GDI_END);
- MapCheckbuttonGadget(i);
-
- if (HAS_CONTENT(properties_element))
- {
- if (IS_AMOEBOID(properties_element))
- DrawAmoebaContentArea();
- else
- DrawElementContentAreas();
- }
- else if (IS_CUSTOM_ELEMENT(properties_element))
- DrawCustomChangedArea();
- }
-
- if (IS_GEM(properties_element))
- {
- /* draw checkbutton gadget */
- i = ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS;
- x = checkbutton_info[i].x + xoffset_right2;
- y = checkbutton_info[i].y + yoffset_right2;
-
- DrawTextF(x, y, FONT_TEXT_1, checkbutton_info[i].text);
- ModifyGadget(level_editor_gadget[checkbutton_info[i].gadget_id],
- GDI_CHECKED, *checkbutton_info[i].value, GDI_END);
- MapCheckbuttonGadget(i);
- }
-
- if (IS_CUSTOM_ELEMENT(properties_element))
- {
- CopyCustomElementPropertiesToEditor(properties_element);
-
- for (i = ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE;
- i <= ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY; i++)
- {
- /* draw checkbutton gadget */
- x = checkbutton_info[i].x + xoffset_right2;
- y = checkbutton_info[i].y + yoffset_right2;
-
- DrawTextF(x, y, FONT_TEXT_1, checkbutton_info[i].text);
- ModifyGadget(level_editor_gadget[checkbutton_info[i].gadget_id],
- GDI_CHECKED, *checkbutton_info[i].value, GDI_END);
- MapCheckbuttonGadget(i);
- }
-
-#if 1
- /* draw selectbox gadget */
- i = ED_SELECTBOX_ID_CUSTOM_CHANGE_CAUSE;
- x = selectbox_info[i].x + xoffset_right2;
- y = selectbox_info[i].y + yoffset_right2;
-
- selectbox_info[i].index = &index_change_cause;
-
- DrawTextF(x, y, FONT_TEXT_1, selectbox_info[i].text);
- ModifyGadget(level_editor_gadget[selectbox_info[i].gadget_id],
- GDI_SELECTBOX_INDEX, *selectbox_info[i].index, GDI_END);
- MapSelectboxGadget(i);
-#endif
- }