int old_game_status = game_status;
/* setting 'game_status' is needed to get the right fonts for the editor */
- game_status = LEVELED;
+ game_status = GAME_MODE_EDITOR;
ReinitializeElementList();
else
DrawElementContentAreas();
}
+#if 1
else if (IS_CUSTOM_ELEMENT(properties_element))
DrawCustomChangedArea();
+#endif
}
if (IS_GEM(properties_element))
MapCheckbuttonGadget(i);
}
+#if 1
/* draw selectbox gadget */
i = ED_SELECTBOX_ID_CUSTOM_CHANGE_CAUSE;
x = selectbox_info[i].x + xoffset_right2;
ModifyGadget(level_editor_gadget[selectbox_info[i].gadget_id],
GDI_SELECTBOX_INDEX, *selectbox_info[i].index, GDI_END);
MapSelectboxGadget(i);
+#endif
}
}
struct GadgetDesign *gd = &gd_gi->alt_design[GD_BUTTON_UNPRESSED];
int gd_x = gd->x + gd_gi->border.width / 2;
int gd_y = gd->y + gd_gi->height - 1;
- Pixel line_color = GetPixel(gd->bitmap, gd_x, gd_y);
+ Pixel tab_color = GetPixel(gd->bitmap, gd_x, gd_y);
int id_first = ED_TEXTBUTTON_ID_PROPERTIES_INFO;
int id_last = ED_TEXTBUTTON_ID_PROPERTIES_INFO;
int i;
int gadget_id = textbutton_info[i].gadget_id;
struct GadgetInfo *gi = level_editor_gadget[gadget_id];
boolean active = (i != edit_mode_properties);
- Pixel color = (active ? BLACK_PIXEL : line_color);
- /* draw solid or black line below tabulator button */
- FillRectangle(drawto, gi->x, gi->y + gi->height, gi->width, 1, color);
+ /* draw background line below tabulator button */
+ ClearRectangleOnBackground(drawto, gi->x, gi->y + gi->height, gi->width,1);
+
+ /* draw solid line below inactive tabulator buttons */
+ if (!active && tab_color != BLACK_PIXEL) /* black => transparent */
+ FillRectangle(drawto, gi->x, gi->y + gi->height, gi->width,1, tab_color);
ModifyGadget(gi, GDI_ACTIVE, active, GDI_END);
MapTextbuttonGadget(i);
}
/* draw little border line below tabulator buttons */
- FillRectangle(drawto, gd_gi->x, gd_gi->y + gd_gi->height + 1,
- 3 * gd_gi->width + 2 * ED_GADGET_DISTANCE, ED_GADGET_DISTANCE,
- line_color);
+ if (tab_color != BLACK_PIXEL) /* black => transparent */
+ FillRectangle(drawto, gd_gi->x, gd_gi->y + gd_gi->height + 1,
+ 3 * gd_gi->width + 2 * ED_GADGET_DISTANCE,
+ ED_GADGET_DISTANCE, tab_color);
}
static void DrawPropertiesInfo()
}
properties[] =
{
- { EP_AMOEBALIVE, "- living amoeba" },
- { EP_AMOEBOID, "- amoeboid" },
- { EP_PFORTE, "- pforte" },
- { EP_SOLID, "- solid" },
- { EP_INDESTRUCTIBLE, "- undestructible" },
- { EP_SLIPPERY, "- slippery" },
- { EP_ENEMY, "- enemy" },
- { EP_MAUER, "- mauer" },
- { EP_CAN_FALL, "- can fall" },
- { EP_CAN_SMASH, "- can smash" },
- { EP_CAN_CHANGE, "- can change" },
- { EP_CAN_MOVE, "- can move" },
- { EP_COULD_MOVE, "- could move" },
- { EP_DONT_TOUCH, "- don't touch" },
- { EP_DONT_GO_TO, "- don't go to" },
- { EP_FOOD_DARK_YAMYAM, "- food for dark yamyam" },
- { EP_BD_ELEMENT, "- BD style" },
- { EP_SB_ELEMENT, "- SB style" },
- { EP_GEM, "- gem" },
- { EP_INACTIVE, "- inactive" },
- { EP_EXPLOSIVE, "- explosive" },
- { EP_FOOD_PENGUIN, "- food for penguin" },
- { EP_PUSHABLE, "- pushable" },
- { EP_PLAYER, "- player" },
- { EP_HAS_CONTENT, "- has content" },
- { EP_DIGGABLE, "- diggable" },
- { EP_SP_ELEMENT, "- SB style" },
- { EP_WALKABLE_INSIDE, "- walkable inside" },
- { EP_ACTIVE_BOMB, "- active bomb" },
- { EP_BELT, "- belt" },
- { EP_BELT_ACTIVE, "- active belt" },
- { EP_BELT_SWITCH, "- belt switch" },
- { EP_WALKABLE_UNDER, "- walkable under" },
- { EP_EM_SLIPPERY_WALL, "- EM style slippery wall" },
- { EP_CAN_BE_CRUMBLED, "- can be crumbled" },
- { -1, NULL }
+ /* configurable properties */
+ { EP_INDESTRUCTIBLE, "- undestructible" },
+ { EP_DIGGABLE, "- diggable" },
+ { EP_COLLECTIBLE, "- collectible" },
+ { EP_PUSHABLE, "- pushable" },
+ { EP_CAN_FALL, "- can fall" },
+ { EP_CAN_SMASH, "- can smash other objects" },
+ { EP_CAN_MOVE, "- can move" },
+ { EP_SLIPPERY, "- slippery for falling objects" },
+ { EP_EM_SLIPPERY_WALL, "- slippery for some gems (EM style)" },
+ { EP_WALKABLE_OVER, "- player can walk over it" },
+ { EP_WALKABLE_INSIDE, "- player can walk inside it" },
+ { EP_WALKABLE_UNDER, "- player can walk under it" },
+ { EP_PASSABLE_OVER, "- player can pass over it" },
+ { EP_PASSABLE_INSIDE, "- player can pass through it" },
+ { EP_PASSABLE_UNDER, "- player can pass under it" },
+
+ /* pre-defined properties */
+ { EP_CAN_PASS_MAGIC_WALL, "- can pass magic walls" },
+ { EP_DONT_TOUCH, "- deadly when touched" },
+ { EP_ENEMY, "- can kill the player" },
+ { EP_DONT_GO_TO, "- deadly when walked to" },
+ { EP_CAN_EXPLODE, "- can explode" },
+ { EP_HAS_CONTENT, "- can contain other elements" },
+
+ { -1, NULL }
};
char *filename = getElementDescriptionFilename(properties_element);
char *percentage_text = "In this level:";
if (HAS_PROPERTY(properties_element, properties[i].value))
num_standard_properties++;
+#if 1
if (num_standard_properties > 0)
{
DrawTextF(pad_x, pad_y + screen_line * font2_height, font1_nr,
screen_line++;
}
+#endif
PrintInfoText("Description:", FONT_TEXT_1, screen_line);
if (PrintElementDescriptionFromFile(filename, screen_line + 1) == 0)
static void DrawPropertiesAdvanced()
{
- DrawText(SX + ED_SETTINGS_XPOS, SY + 5 * TILEY, "Coming soon!", FONT_TEXT_1);
+ DrawText(SX + ED_SETTINGS_XPOS, SY + 5 * TILEY,
+ "Under construction! :-)", FONT_TEXT_1);
}
static void DrawPropertiesWindow()
TapeStartRecording();
level_editor_test_game = TRUE;
- game_status = PLAYING;
+ game_status = GAME_MODE_PLAYING;
InitGame();
}
char shortcut[MAX_OUTPUT_LINESIZE + 1];
int max_infotext_len = getMaxInfoTextLength();
- if (game_status != LEVELED)
+ if (game_status != GAME_MODE_EDITOR)
return;
ClearEditorGadgetInfoText();
/*
CloseDoor(DOOR_CLOSE_ALL);
*/
- game_status = MAINMENU;
+ game_status = GAME_MODE_MAIN;
DrawMainMenu();
}
else