X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=8c1302cc0232b150bc5c004b6bccd13bbd16df36;hb=bfcccf30d39e98f488fa1c0bac7551a0e54ee170;hp=9e3f01e5554c2b13a0db5c701cd0948ef6205895;hpb=cdc3c940197937b0508a1eb7dcf44874951908b7;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 9e3f01e5..8c1302cc 100644 --- a/src/editor.c +++ b/src/editor.c @@ -474,14 +474,11 @@ #define GADGET_ID_CHANGE_PLAYER (GADGET_ID_SELECTBOX_FIRST + 19) #define GADGET_ID_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 20) #define GADGET_ID_CHANGE_REPLACE_WHEN (GADGET_ID_SELECTBOX_FIRST + 21) -#define GADGET_ID_ACTION_TYPE (GADGET_ID_SELECTBOX_FIRST + 22) -#define GADGET_ID_ACTION_MODE (GADGET_ID_SELECTBOX_FIRST + 23) -#define GADGET_ID_ACTION_ARG (GADGET_ID_SELECTBOX_FIRST + 24) -#define GADGET_ID_SELECT_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 25) -#define GADGET_ID_GROUP_CHOICE_MODE (GADGET_ID_SELECTBOX_FIRST + 26) +#define GADGET_ID_SELECT_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 22) +#define GADGET_ID_GROUP_CHOICE_MODE (GADGET_ID_SELECTBOX_FIRST + 23) /* textbutton identifiers */ -#define GADGET_ID_TEXTBUTTON_FIRST (GADGET_ID_SELECTBOX_FIRST + 27) +#define GADGET_ID_TEXTBUTTON_FIRST (GADGET_ID_SELECTBOX_FIRST + 24) #define GADGET_ID_PROPERTIES_INFO (GADGET_ID_TEXTBUTTON_FIRST + 0) #define GADGET_ID_PROPERTIES_CONFIG (GADGET_ID_TEXTBUTTON_FIRST + 1) @@ -556,13 +553,12 @@ #define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 33) #define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 34) #define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 35) -#define GADGET_ID_CHANGE_USE_ACTION (GADGET_ID_CHECKBUTTON_FIRST + 36) -#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 37) -#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 38) -#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 39) +#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 36) +#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 37) +#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 38) /* gadgets for buttons in element list */ -#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 40) +#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 39) #define GADGET_ID_ELEMENTLIST_LAST (GADGET_ID_ELEMENTLIST_FIRST + \ ED_NUM_ELEMENTLIST_BUTTONS - 1) @@ -680,13 +676,10 @@ #define ED_SELECTBOX_ID_CHANGE_PLAYER 19 #define ED_SELECTBOX_ID_CHANGE_PAGE 20 #define ED_SELECTBOX_ID_CHANGE_REPLACE_WHEN 21 -#define ED_SELECTBOX_ID_ACTION_TYPE 22 -#define ED_SELECTBOX_ID_ACTION_MODE 23 -#define ED_SELECTBOX_ID_ACTION_ARG 24 -#define ED_SELECTBOX_ID_SELECT_CHANGE_PAGE 25 -#define ED_SELECTBOX_ID_GROUP_CHOICE_MODE 26 +#define ED_SELECTBOX_ID_SELECT_CHANGE_PAGE 22 +#define ED_SELECTBOX_ID_GROUP_CHOICE_MODE 23 -#define ED_NUM_SELECTBOX 27 +#define ED_NUM_SELECTBOX 24 #define ED_SELECTBOX_ID_LEVEL_FIRST ED_SELECTBOX_ID_TIME_OR_STEPS #define ED_SELECTBOX_ID_LEVEL_LAST ED_SELECTBOX_ID_GAME_ENGINE_TYPE @@ -768,9 +761,8 @@ #define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 34 #define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 35 #define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 36 -#define ED_CHECKBUTTON_ID_CHANGE_USE_ACTION 37 -#define ED_NUM_CHECKBUTTONS 38 +#define ED_NUM_CHECKBUTTONS 37 #define ED_CHECKBUTTON_ID_LEVEL_FIRST ED_CHECKBUTTON_ID_INITIAL_GRAVITY #define ED_CHECKBUTTON_ID_LEVEL_LAST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED @@ -783,7 +775,7 @@ #define ED_CHECKBUTTON_ID_CUSTOM_LAST ED_CHECKBUTTON_ID_CUSTOM2_LAST #define ED_CHECKBUTTON_ID_CHANGE_FIRST ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE -#define ED_CHECKBUTTON_ID_CHANGE_LAST ED_CHECKBUTTON_ID_CHANGE_USE_ACTION +#define ED_CHECKBUTTON_ID_CHANGE_LAST ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM /* values for radiobutton gadgets */ #define ED_RADIOBUTTON_ID_PERCENTAGE 0 @@ -864,7 +856,7 @@ /* values for elements with count for collecting */ #define MIN_COLLECT_COUNT 0 -#define MAX_COLLECT_COUNT 255 +#define MAX_COLLECT_COUNT 100 /* values for random placement */ #define RANDOM_USE_PERCENTAGE 0 @@ -1433,7 +1425,6 @@ static struct ValueTextInfo options_change_direct_action[] = { CE_IMPACT, "impact (on something)" }, { CE_SMASHED, "smashed (from above)" }, - { CE_COUNT_AT_ZERO, "CE count at zero" }, { -1, NULL } }; @@ -1456,7 +1447,6 @@ static struct ValueTextInfo options_change_other_action[] = { CE_SWITCH_OF_X, "switch of" }, { CE_CHANGE_OF_X, "change by page of" }, { CE_EXPLOSION_OF_X, "explosion of" }, - { CE_COUNT_AT_ZERO_OF_X, "CE count at zero of" }, { -1, NULL } }; @@ -1536,79 +1526,6 @@ static struct ValueTextInfo options_change_replace_when[] = { -1, NULL } }; -static struct ValueTextInfo options_action_type[] = -{ - { CA_NO_ACTION, "no action" }, - { CA_EXIT_PLAYER, "exit player" }, - { CA_KILL_PLAYER, "kill player" }, - { CA_RESTART_LEVEL, "restart level" }, - { CA_SHOW_ENVELOPE, "show envelope" }, - { CA_ADD_KEY, "add key" }, - { CA_DEL_KEY, "remove key" }, - { CA_SET_PLAYER_SPEED, "set player speed" }, - { CA_SET_GEMS, "set gems" }, - { CA_SET_TIME, "set time" }, - { CA_SET_SCORE, "set score" }, - { CA_SET_CE_SCORE, "set CE score" }, - { CA_SET_CE_COUNT, "set CE count" }, - { CA_SET_DYNABOMB_NUMBER, "set bomb number" }, - { CA_SET_DYNABOMB_SIZE, "set bomb size" }, - { CA_SET_DYNABOMB_POWER, "set bomb power" }, - { CA_TOGGLE_PLAYER_GRAVITY, "toggle gravity" }, - { CA_ENABLE_PLAYER_GRAVITY, "enable gravity" }, - { CA_DISABLE_PLAYER_GRAVITY, "disable gravity" }, - - { -1, NULL } -}; - -static struct ValueTextInfo options_action_mode[] = -{ - { CA_MODE_UNDEFINED, " " }, - { CA_MODE_ADD, "+" }, - { CA_MODE_SUBTRACT, "-" }, - { CA_MODE_MULTIPLY, "*" }, - { CA_MODE_DIVIDE, "/" }, - { CA_MODE_SET, "=" }, - - { -1, NULL } -}; - -static struct ValueTextInfo options_action_arg[] = -{ - { CA_ARG_PLAYER_HEADLINE, "[player]" }, - { CA_ARG_PLAYER_1, "1" }, - { CA_ARG_PLAYER_2, "2" }, - { CA_ARG_PLAYER_3, "3" }, - { CA_ARG_PLAYER_4, "4" }, - { CA_ARG_PLAYER_ANY, "any" }, - { CA_ARG_PLAYER_TRIGGER, "trigger" }, - { CA_ARG_UNDEFINED, " " }, - { CA_ARG_NUMBER_HEADLINE, "[number]" }, - { CA_ARG_0, "0" }, - { CA_ARG_1, "1" }, - { CA_ARG_2, "2" }, - { CA_ARG_3, "3" }, - { CA_ARG_4, "4" }, - { CA_ARG_5, "5" }, - { CA_ARG_10, "10" }, - { CA_ARG_100, "100" }, - { CA_ARG_1000, "1000" }, - { CA_ARG_UNDEFINED, " " }, - { CA_ARG_NUMBER_MIN, "min" }, - { CA_ARG_NUMBER_MAX, "max" }, - { CA_ARG_NUMBER_NORMAL, "normal" }, - { CA_ARG_NUMBER_RESET, "reset" }, - { CA_ARG_NUMBER_CE_SCORE, "CE score" }, - { CA_ARG_NUMBER_CE_COUNT, "CE count" }, - { CA_ARG_NUMBER_CE_DELAY, "CE delay" }, - { CA_ARG_UNDEFINED, " " }, - { CA_ARG_ELEMENT_HEADLINE, "[element]" }, - { CA_ARG_ELEMENT_TARGET, "target" }, - { CA_ARG_ELEMENT_TRIGGER, "trigger" }, - - { -1, NULL } -}; - static char options_change_page_strings[MAX_CHANGE_PAGES][10]; static struct ValueTextInfo options_change_page[MAX_CHANGE_PAGES + 1] = { @@ -1824,30 +1741,6 @@ static struct &custom_element_change.replace_when, "replace when", NULL, "which elements can be replaced" }, - { - ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(13), - GADGET_ID_ACTION_TYPE, GADGET_ID_NONE, - -1, - options_action_type, - &custom_element_change.action_type, - NULL, NULL, "action on specified condition" - }, - { - -1, ED_ELEMENT_SETTINGS_YPOS(13), - GADGET_ID_ACTION_MODE, GADGET_ID_ACTION_TYPE, - -1, - options_action_mode, - &custom_element_change.action_mode, - NULL, NULL, "action operator" - }, - { - -1, ED_ELEMENT_SETTINGS_YPOS(13), - GADGET_ID_ACTION_ARG, GADGET_ID_ACTION_MODE, - -1, - options_action_arg, - &custom_element_change.action_arg, - NULL, NULL, "action parameter" - }, { ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(14), GADGET_ID_SELECT_CHANGE_PAGE, GADGET_ID_NONE, @@ -2320,7 +2213,7 @@ static struct ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1), GADGET_ID_CUSTOM_CAN_CHANGE, GADGET_ID_NONE, &custom_element_change.can_change, - NULL, "element changes to:", "change element on specified condition" + NULL, "element changes to:", "element can change to other element" }, { ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(2), @@ -2364,12 +2257,6 @@ static struct &custom_element_change.use_random_replace, NULL, NULL, "use percentage for random replace" }, - { - ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(13), - GADGET_ID_CHANGE_USE_ACTION, GADGET_ID_NONE, - &custom_element_change.use_action, - NULL, NULL, "execute action on specified condition" - }, }; static struct @@ -2606,7 +2493,6 @@ static int new_element1 = EL_WALL; static int new_element2 = EL_EMPTY; static int new_element3 = EL_SAND; -#define IS_VALID_BUTTON(button) (button >= 1 && button <= 3) #define BUTTON_ELEMENT(button) ((button) == 1 ? new_element1 : \ (button) == 2 ? new_element2 : \ (button) == 3 ? new_element3 : EL_EMPTY) @@ -2882,14 +2768,14 @@ static int editor_el_emerald_mine_club[] = EL_EMC_WALL_11, EL_EMC_WALL_12, -#if RELEASE_311 +#if RELEASE_312 EL_EMPTY, #else EL_EMC_ANDROID, #endif EL_BALLOON, EL_BALLOON_SWITCH_ANY, -#if RELEASE_311 +#if RELEASE_312 EL_EMPTY, #else EL_BALLOON_SWITCH_NONE, @@ -2902,7 +2788,7 @@ static int editor_el_emerald_mine_club[] = EL_EMC_GRASS, EL_EMC_PLANT, -#if RELEASE_311 +#if RELEASE_312 EL_EMPTY, EL_EMPTY, #else @@ -2910,7 +2796,7 @@ static int editor_el_emerald_mine_club[] = EL_EMC_MAGNIFIER, #endif -#if RELEASE_311 +#if RELEASE_312 EL_EMPTY, EL_EMPTY, #else @@ -2918,13 +2804,13 @@ static int editor_el_emerald_mine_club[] = EL_EMC_MAGIC_BALL_SWITCH, #endif EL_SPRING, -#if RELEASE_311 +#if RELEASE_312 EL_EMPTY, #else EL_EMC_SPRING_BUMPER, #endif -#if RELEASE_311 +#if RELEASE_312 EL_EMPTY, #else EL_EMC_DRIPPER, @@ -6313,7 +6199,6 @@ static void CopyCustomElementPropertiesToEditor(int element) HAS_CHANGE_EVENT(element, CE_BLOCKED) ? CE_BLOCKED : HAS_CHANGE_EVENT(element, CE_IMPACT) ? CE_IMPACT : HAS_CHANGE_EVENT(element, CE_SMASHED) ? CE_SMASHED : - HAS_CHANGE_EVENT(element, CE_COUNT_AT_ZERO) ? CE_COUNT_AT_ZERO : custom_element_change.direct_action); /* set "change by other element action" selectbox help value */ @@ -6332,7 +6217,6 @@ static void CopyCustomElementPropertiesToEditor(int element) HAS_CHANGE_EVENT(element, CE_SWITCH_OF_X) ? CE_SWITCH_OF_X : HAS_CHANGE_EVENT(element, CE_CHANGE_OF_X) ? CE_CHANGE_OF_X : HAS_CHANGE_EVENT(element, CE_EXPLOSION_OF_X) ? CE_EXPLOSION_OF_X : - HAS_CHANGE_EVENT(element, CE_COUNT_AT_ZERO_OF_X) ? CE_COUNT_AT_ZERO_OF_X : custom_element_change.other_action); } @@ -6504,7 +6388,6 @@ static void CopyCustomElementPropertiesToGame(int element) custom_element_change_events[CE_BLOCKED] = FALSE; custom_element_change_events[CE_IMPACT] = FALSE; custom_element_change_events[CE_SMASHED] = FALSE; - custom_element_change_events[CE_COUNT_AT_ZERO] = FALSE; custom_element_change_events[custom_element_change.direct_action] = custom_element_change_events[CE_BY_DIRECT_ACTION]; @@ -6523,7 +6406,6 @@ static void CopyCustomElementPropertiesToGame(int element) custom_element_change_events[CE_SWITCH_OF_X] = FALSE; custom_element_change_events[CE_CHANGE_OF_X] = FALSE; custom_element_change_events[CE_EXPLOSION_OF_X] = FALSE; - custom_element_change_events[CE_COUNT_AT_ZERO_OF_X] = FALSE; custom_element_change_events[custom_element_change.other_action] = custom_element_change_events[CE_BY_OTHER_ACTION]; @@ -8572,13 +8454,8 @@ static void HandleDrawingAreas(struct GadgetInfo *gi) if (!started_inside_drawing_area) return; -#if 1 - if (!IS_VALID_BUTTON(button) && !button_release_event) - return; -#else if (!button && !button_release_event) return; -#endif /* automatically switch to 'single item' drawing mode, if needed */ actual_drawing_function = @@ -9147,14 +9024,6 @@ static void HandleControlButtons(struct GadgetInfo *gi) int new_element = BUTTON_ELEMENT(button); int x, y; -#if 0 - /* MAKES PROBLEMS WITH ELEMENT LIST SCROLLBAR AND IS PROBABLY NOT NEEDED */ - /* !!! CHECK WHAT HAPPENS WHEN MOUSE WHEEL IS USED OVER ELEMENT LIST !!! */ - - if (!IS_VALID_BUTTON(button)) - return; -#endif - if (edit_mode == ED_MODE_DRAWING && drawing_function == GADGET_ID_TEXT) DrawLevelText(0, 0, 0, TEXT_END); @@ -9462,18 +9331,13 @@ static void HandleControlButtons(struct GadgetInfo *gi) DrawCompleteVideoDisplay(); - level_editor_test_game = TRUE; - -#if 1 - StartGameActions(FALSE, setup.autorecord, NEW_RANDOMIZE); -#else if (setup.autorecord) TapeStartRecording(); + level_editor_test_game = TRUE; game_status = GAME_MODE_PLAYING; InitGame(); -#endif } break;