X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=97904719c9a2df1d74229853f6a667a834835a0e;hb=adb5af2f532f105ee670e4805b47252eb5bcfdf1;hp=60e64be0be99ad3d2329448506283e48b7f757d3;hpb=63203a78d8643ed30964afe3f1bfe72d17562e88;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 60e64be0..97904719 100644 --- a/src/editor.c +++ b/src/editor.c @@ -502,33 +502,34 @@ #define GADGET_ID_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 8) #define GADGET_ID_SP_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 9) #define GADGET_ID_INSTANT_RELOCATION (GADGET_ID_CHECKBUTTON_FIRST + 10) -#define GADGET_ID_CAN_FALL_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 11) -#define GADGET_ID_CAN_MOVE_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 12) -#define GADGET_ID_DONT_COLLIDE_WITH (GADGET_ID_CHECKBUTTON_FIRST + 13) -#define GADGET_ID_CUSTOM_EXPLODE_RESULT (GADGET_ID_CHECKBUTTON_FIRST + 14) -#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 15) -#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 16) -#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 17) -#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 18) -#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 19) -#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 20) -#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 21) -#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 22) -#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 23) -#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 24) -#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 25) -#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 26) -#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 27) -#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 28) -#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 29) -#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 30) -#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 31) -#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 32) -#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 33) -#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 34) +#define GADGET_ID_CAN_PASS_TO_WALKABLE (GADGET_ID_CHECKBUTTON_FIRST + 11) +#define GADGET_ID_CAN_FALL_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 12) +#define GADGET_ID_CAN_MOVE_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 13) +#define GADGET_ID_DONT_COLLIDE_WITH (GADGET_ID_CHECKBUTTON_FIRST + 14) +#define GADGET_ID_CUSTOM_EXPLODE_RESULT (GADGET_ID_CHECKBUTTON_FIRST + 15) +#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 16) +#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 17) +#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 18) +#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 19) +#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 20) +#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 21) +#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 22) +#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 23) +#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 24) +#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 25) +#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 26) +#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 27) +#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 28) +#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 29) +#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 30) +#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 31) +#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 32) +#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 33) +#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 34) +#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 35) /* gadgets for buttons in element list */ -#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 35) +#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 36) #define GADGET_ID_ELEMENTLIST_LAST (GADGET_ID_ELEMENTLIST_FIRST + \ ED_NUM_ELEMENTLIST_BUTTONS - 1) @@ -701,32 +702,33 @@ #define ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD 6 #define ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD 7 #define ED_CHECKBUTTON_ID_INSTANT_RELOCATION 8 -#define ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID 9 -#define ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID 10 -#define ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH 11 -#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 12 -#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 13 -#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 14 -#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 15 -#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 16 -#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 17 -#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 18 -#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 19 -#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 20 -#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_RESULT 21 -#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 22 -#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 23 -#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 24 -#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 25 -#define ED_CHECKBUTTON_ID_CHANGE_DELAY 26 -#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 27 -#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 28 -#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 29 -#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 30 -#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 31 -#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 32 - -#define ED_NUM_CHECKBUTTONS 33 +#define ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE 9 +#define ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID 10 +#define ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID 11 +#define ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH 12 +#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 13 +#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 14 +#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 15 +#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 16 +#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 17 +#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 18 +#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 19 +#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 20 +#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 21 +#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_RESULT 22 +#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 23 +#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 24 +#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 25 +#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 26 +#define ED_CHECKBUTTON_ID_CHANGE_DELAY 27 +#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 28 +#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 29 +#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 30 +#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 31 +#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 32 +#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 33 + +#define ED_NUM_CHECKBUTTONS 34 #define ED_CHECKBUTTON_ID_LEVEL_FIRST ED_CHECKBUTTON_ID_DOUBLE_SPEED #define ED_CHECKBUTTON_ID_LEVEL_LAST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED @@ -1980,6 +1982,13 @@ static struct NULL, "no scrolling when relocating", "player gets relocated without delay" }, + { + ED_SETTINGS_XPOS(0), ED_SETTINGS_YPOS(3), + GADGET_ID_CAN_PASS_TO_WALKABLE, GADGET_ID_NONE, + &level.can_pass_to_walkable, + NULL, + "can pass to walkable element", "player can pass to empty or walkable" + }, { ED_SETTINGS_XPOS(0), ED_SETTINGS_YPOS(0), GADGET_ID_CAN_FALL_INTO_ACID, GADGET_ID_NONE, @@ -6997,6 +7006,7 @@ static void DrawPropertiesConfig() ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD : ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD); MapCheckbuttonGadget(ED_CHECKBUTTON_ID_INSTANT_RELOCATION); + MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE); } if (IS_GEM(properties_element))