X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=68a0680a553c6bce63ce3112d4f1f0c5d3c8f035;hb=2f5368f25e34c02cb5ff7a012aa96198442231cb;hp=2a26c09f67222d1d7c26b2351796f4aaba71ba41;hpb=74c0f7de91268e40d15948f473eac51a9760b9c0;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 2a26c09f..68a0680a 100644 --- a/src/editor.c +++ b/src/editor.c @@ -1071,6 +1071,10 @@ static struct ValueTextInfo options_move_pattern[] = { MV_TURNING_LEFT, "turning left" }, { MV_TURNING_RIGHT, "turning right" }, { MV_WHEN_PUSHED, "when pushed" }, +#if 0 + { MV_MAZE_RUNNER, "maze runner style" }, + { MV_MAZE_HUNTER, "maze hunter style" }, +#endif { -1, NULL } }; @@ -1146,9 +1150,14 @@ static struct ValueTextInfo options_change_direct_action[] = { CE_LEFT_BY_PLAYER, "left by player ..." }, { CE_DROPPED_BY_PLAYER, "dropped by player" }, { CE_SWITCHED, "switched ..." }, - { CE_COLLISION, "collision ..." }, - { CE_IMPACT, "impact" }, - { CE_SMASHED, "smashed" }, +#if 0 + { CE_COLLISION_ACTIVE, "hitting something ..." }, + { CE_COLLISION_PASSIVE, "hit by something ..." }, +#else + { CE_COLLISION_ACTIVE, "collision ..." }, +#endif + { CE_IMPACT, "impact (on something)" }, + { CE_SMASHED, "smashed (from above)" }, { -1, NULL } }; @@ -1163,6 +1172,10 @@ static struct ValueTextInfo options_change_other_action[] = { CE_OTHER_GETS_COLLECTED, "player collects" }, { CE_OTHER_GETS_DROPPED, "player drops" }, { CE_OTHER_IS_TOUCHING, "touching ..." }, +#if 0 + { CE_OTHER_IS_COLL_ACTIVE, "hitting ..." }, + { CE_OTHER_IS_COLL_PASSIVE, "hit by ..." }, +#endif { CE_OTHER_IS_SWITCHING, "switch of ..." }, { CE_OTHER_IS_CHANGING, "change of" }, { CE_OTHER_IS_EXPLODING, "explosion of" }, @@ -1177,7 +1190,7 @@ static struct ValueTextInfo options_change_sides[] = { CH_SIDE_BOTTOM, "bottom side" }, { CH_SIDE_LEFT_RIGHT, "left/right side" }, { CH_SIDE_TOP_BOTTOM, "top/bottom side" }, - { CH_SIDE_ANY, "all sides" }, + { CH_SIDE_ANY, "any side" }, { -1, NULL } }; @@ -2133,7 +2146,7 @@ static int editor_el_more[] = EL_BD_FIREFLY, EL_MOLE_LEFT, - EL_EMPTY, + EL_MAZE_RUNNER, EL_MOLE_RIGHT, EL_PACMAN, @@ -4967,7 +4980,8 @@ static void CopyCustomElementPropertiesToEditor(int element) HAS_CHANGE_EVENT(element, CE_LEFT_BY_PLAYER) ? CE_LEFT_BY_PLAYER : HAS_CHANGE_EVENT(element, CE_DROPPED_BY_PLAYER) ? CE_DROPPED_BY_PLAYER : HAS_CHANGE_EVENT(element, CE_SWITCHED) ? CE_SWITCHED : - HAS_CHANGE_EVENT(element, CE_COLLISION) ? CE_COLLISION : + HAS_CHANGE_EVENT(element, CE_COLLISION_ACTIVE) ? CE_COLLISION_ACTIVE : + HAS_CHANGE_EVENT(element, CE_COLLISION_PASSIVE) ? CE_COLLISION_PASSIVE : HAS_CHANGE_EVENT(element, CE_IMPACT) ? CE_IMPACT : HAS_CHANGE_EVENT(element, CE_SMASHED) ? CE_SMASHED : custom_element_change.direct_action); @@ -4983,6 +4997,8 @@ static void CopyCustomElementPropertiesToEditor(int element) HAS_CHANGE_EVENT(element, CE_OTHER_GETS_COLLECTED) ? CE_OTHER_GETS_COLLECTED : HAS_CHANGE_EVENT(element, CE_OTHER_GETS_DROPPED) ? CE_OTHER_GETS_DROPPED : HAS_CHANGE_EVENT(element, CE_OTHER_IS_TOUCHING) ? CE_OTHER_IS_TOUCHING : + HAS_CHANGE_EVENT(element, CE_OTHER_IS_COLL_ACTIVE) ? CE_OTHER_IS_COLL_ACTIVE : + HAS_CHANGE_EVENT(element, CE_OTHER_IS_COLL_PASSIVE) ? CE_OTHER_IS_COLL_PASSIVE : HAS_CHANGE_EVENT(element, CE_OTHER_IS_SWITCHING) ? CE_OTHER_IS_SWITCHING : HAS_CHANGE_EVENT(element, CE_OTHER_IS_CHANGING) ? CE_OTHER_IS_CHANGING : HAS_CHANGE_EVENT(element, CE_OTHER_IS_EXPLODING) ? CE_OTHER_IS_EXPLODING : @@ -4999,7 +5015,7 @@ static void CopyCustomElementPropertiesToGame(int element) if (level.use_custom_template) { - if (Request("Copy and modify level tem- plate ?", REQ_ASK)) + if (Request("Copy and modify level template ?", REQ_ASK)) { level.use_custom_template = FALSE; ModifyGadget(level_editor_gadget[GADGET_ID_CUSTOM_USE_TEMPLATE], @@ -5085,7 +5101,8 @@ static void CopyCustomElementPropertiesToGame(int element) custom_element_change_events[CE_LEFT_BY_PLAYER] = FALSE; custom_element_change_events[CE_DROPPED_BY_PLAYER] = FALSE; custom_element_change_events[CE_SWITCHED] = FALSE; - custom_element_change_events[CE_COLLISION] = FALSE; + custom_element_change_events[CE_COLLISION_ACTIVE] = FALSE; + custom_element_change_events[CE_COLLISION_PASSIVE] = FALSE; custom_element_change_events[CE_IMPACT] = FALSE; custom_element_change_events[CE_SMASHED] = FALSE; custom_element_change_events[custom_element_change.direct_action] = @@ -5101,6 +5118,8 @@ static void CopyCustomElementPropertiesToGame(int element) custom_element_change_events[CE_OTHER_GETS_COLLECTED] = FALSE; custom_element_change_events[CE_OTHER_GETS_DROPPED] = FALSE; custom_element_change_events[CE_OTHER_IS_TOUCHING] = FALSE; + custom_element_change_events[CE_OTHER_IS_COLL_ACTIVE] = FALSE; + custom_element_change_events[CE_OTHER_IS_COLL_PASSIVE] = FALSE; custom_element_change_events[CE_OTHER_IS_SWITCHING] = FALSE; custom_element_change_events[CE_OTHER_IS_CHANGING] = FALSE; custom_element_change_events[CE_OTHER_IS_EXPLODING] = FALSE; @@ -5547,6 +5566,26 @@ static boolean PrintInfoText(char *text, int font_nr, int start_line) return TRUE; } +#if 1 + +static int PrintElementDescriptionFromFile(char *filename, int start_line) +{ + int font_nr = FONT_TEXT_2; + int font_width = getFontWidth(font_nr); + int font_height = getFontHeight(font_nr); + int pad_x = ED_SETTINGS_XPOS(0); + int pad_y = ED_SETTINGS_YPOS(0) + ED_BORDER_SIZE; + int sx = SX + pad_x; + int sy = SY + pad_y + start_line * font_height; + int max_chars_per_line = (SXSIZE - 2 * pad_x) / font_width; + int max_lines_per_screen = (SYSIZE - pad_y) / font_height - 1; + + return DrawTextFromFile(sx, sy, filename, font_nr, max_chars_per_line, + max_lines_per_screen); +} + +#else + static int PrintElementDescriptionFromFile(char *filename, int start_line) { int font_nr = FONT_TEXT_2; @@ -5634,6 +5673,8 @@ static int PrintElementDescriptionFromFile(char *filename, int start_line) return (current_line - start_line); } +#endif + static void DrawPropertiesTabulatorGadgets() { struct GadgetInfo *gd_gi = level_editor_gadget[GADGET_ID_PROPERTIES_INFO]; @@ -6795,7 +6836,10 @@ static void HandleDrawingAreas(struct GadgetInfo *gi) /* clicking into drawing area with pressed Control key picks element */ if (GetKeyModState() & KMOD_Control) + { + last_drawing_function = drawing_function; actual_drawing_function = GADGET_ID_PICK_ELEMENT; + } switch (actual_drawing_function) { @@ -7152,11 +7196,11 @@ static void HandleTextbuttonGadgets(struct GadgetInfo *gi) boolean new_template = (!LevelFileExists(-1)); if (new_template || - Request("Save this tem- plate and kill the old ?", REQ_ASK)) + Request("Save this template and kill the old ?", REQ_ASK)) SaveLevelTemplate(); if (new_template) - Request("Tem- plate saved !", REQ_CONFIRM); + Request("Template saved !", REQ_CONFIRM); } else if (type_id == ED_TEXTBUTTON_ID_ADD_CHANGE_PAGE && custom_element.num_change_pages < MAX_CHANGE_PAGES) @@ -7239,7 +7283,7 @@ static void HandleCheckbuttons(struct GadgetInfo *gi) { if (level.use_custom_template && !LevelFileExists(-1)) { - Request("No level tem- plate found !", REQ_CONFIRM); + Request("No level template found !", REQ_CONFIRM); level.use_custom_template = FALSE; ModifyGadget(gi, GDI_CHECKED, FALSE, GDI_END);