/* values for graphics configuration (custom elements) */
- { "custom_1", "RocksElements.pcx" },
- { "custom_1.xpos", "7" },
- { "custom_1.ypos", "9" },
+ { "custom_1", "RocksCE.pcx" },
+ { "custom_1.xpos", "0" },
+ { "custom_1.ypos", "0" },
{ "custom_1.frames", "1" },
- { "custom_1.EDITOR", "RocksElements.pcx" },
- { "custom_1.EDITOR.xpos", "15" },
- { "custom_1.EDITOR.ypos", "13" },
+ { "custom_1.EDITOR", "RocksCE.pcx" },
+ { "custom_1.EDITOR.xpos", "16" },
+ { "custom_1.EDITOR.ypos", "0" },
- { "custom_2", "RocksElements.pcx" },
- { "custom_2.xpos", "7" },
- { "custom_2.ypos", "9" },
+ { "custom_2", "RocksCE.pcx" },
+ { "custom_2.xpos", "1" },
+ { "custom_2.ypos", "0" },
{ "custom_2.frames", "1" },
- { "custom_2.EDITOR", "RocksElements.pcx" },
- { "custom_2.EDITOR.xpos", "15" },
- { "custom_2.EDITOR.ypos", "13" },
+ { "custom_2.EDITOR", "RocksCE.pcx" },
+ { "custom_2.EDITOR.xpos", "17" },
+ { "custom_2.EDITOR.ypos", "0" },
- { "custom_3", "RocksElements.pcx" },
- { "custom_3.xpos", "7" },
- { "custom_3.ypos", "9" },
+ { "custom_3", "RocksCE.pcx" },
+ { "custom_3.xpos", "2" },
+ { "custom_3.ypos", "0" },
{ "custom_3.frames", "1" },
- { "custom_3.EDITOR", "RocksElements.pcx" },
- { "custom_3.EDITOR.xpos", "15" },
- { "custom_3.EDITOR.ypos", "13" },
+ { "custom_3.EDITOR", "RocksCE.pcx" },
+ { "custom_3.EDITOR.xpos", "18" },
+ { "custom_3.EDITOR.ypos", "0" },
- { "custom_4", "RocksElements.pcx" },
- { "custom_4.xpos", "7" },
- { "custom_4.ypos", "9" },
+ { "custom_4", "RocksCE.pcx" },
+ { "custom_4.xpos", "3" },
+ { "custom_4.ypos", "0" },
{ "custom_4.frames", "1" },
- { "custom_4.EDITOR", "RocksElements.pcx" },
- { "custom_4.EDITOR.xpos", "15" },
- { "custom_4.EDITOR.ypos", "13" },
+ { "custom_4.EDITOR", "RocksCE.pcx" },
+ { "custom_4.EDITOR.xpos", "19" },
+ { "custom_4.EDITOR.ypos", "0" },
- { "custom_5", "RocksElements.pcx" },
- { "custom_5.xpos", "7" },
- { "custom_5.ypos", "9" },
+ { "custom_5", "RocksCE.pcx" },
+ { "custom_5.xpos", "4" },
+ { "custom_5.ypos", "0" },
{ "custom_5.frames", "1" },
- { "custom_5.EDITOR", "RocksElements.pcx" },
- { "custom_5.EDITOR.xpos", "15" },
- { "custom_5.EDITOR.ypos", "13" },
+ { "custom_5.EDITOR", "RocksCE.pcx" },
+ { "custom_5.EDITOR.xpos", "20" },
+ { "custom_5.EDITOR.ypos", "0" },
- { "custom_6", "RocksElements.pcx" },
- { "custom_6.xpos", "7" },
- { "custom_6.ypos", "9" },
+ { "custom_6", "RocksCE.pcx" },
+ { "custom_6.xpos", "5" },
+ { "custom_6.ypos", "0" },
{ "custom_6.frames", "1" },
- { "custom_6.EDITOR", "RocksElements.pcx" },
- { "custom_6.EDITOR.xpos", "15" },
- { "custom_6.EDITOR.ypos", "13" },
+ { "custom_6.EDITOR", "RocksCE.pcx" },
+ { "custom_6.EDITOR.xpos", "21" },
+ { "custom_6.EDITOR.ypos", "0" },
- { "custom_7", "RocksElements.pcx" },
- { "custom_7.xpos", "7" },
- { "custom_7.ypos", "9" },
+ { "custom_7", "RocksCE.pcx" },
+ { "custom_7.xpos", "6" },
+ { "custom_7.ypos", "0" },
{ "custom_7.frames", "1" },
- { "custom_7.EDITOR", "RocksElements.pcx" },
- { "custom_7.EDITOR.xpos", "15" },
- { "custom_7.EDITOR.ypos", "13" },
+ { "custom_7.EDITOR", "RocksCE.pcx" },
+ { "custom_7.EDITOR.xpos", "22" },
+ { "custom_7.EDITOR.ypos", "0" },
- { "custom_8", "RocksElements.pcx" },
+ { "custom_8", "RocksCE.pcx" },
{ "custom_8.xpos", "7" },
- { "custom_8.ypos", "9" },
+ { "custom_8.ypos", "0" },
{ "custom_8.frames", "1" },
- { "custom_8.EDITOR", "RocksElements.pcx" },
- { "custom_8.EDITOR.xpos", "15" },
- { "custom_8.EDITOR.ypos", "13" },
+ { "custom_8.EDITOR", "RocksCE.pcx" },
+ { "custom_8.EDITOR.xpos", "23" },
+ { "custom_8.EDITOR.ypos", "0" },
- { "custom_9", "RocksElements.pcx" },
- { "custom_9.xpos", "7" },
- { "custom_9.ypos", "9" },
+ { "custom_9", "RocksCE.pcx" },
+ { "custom_9.xpos", "8" },
+ { "custom_9.ypos", "0" },
{ "custom_9.frames", "1" },
- { "custom_9.EDITOR", "RocksElements.pcx" },
- { "custom_9.EDITOR.xpos", "15" },
- { "custom_9.EDITOR.ypos", "13" },
+ { "custom_9.EDITOR", "RocksCE.pcx" },
+ { "custom_9.EDITOR.xpos", "24" },
+ { "custom_9.EDITOR.ypos", "0" },
- { "custom_10", "RocksElements.pcx" },
- { "custom_10.xpos", "7" },
- { "custom_10.ypos", "9" },
+ { "custom_10", "RocksCE.pcx" },
+ { "custom_10.xpos", "9" },
+ { "custom_10.ypos", "0" },
{ "custom_10.frames", "1" },
- { "custom_10.EDITOR", "RocksElements.pcx" },
- { "custom_10.EDITOR.xpos", "15" },
- { "custom_10.EDITOR.ypos", "13" },
+ { "custom_10.EDITOR", "RocksCE.pcx" },
+ { "custom_10.EDITOR.xpos", "25" },
+ { "custom_10.EDITOR.ypos", "0" },
- { "custom_11", "RocksElements.pcx" },
- { "custom_11.xpos", "7" },
- { "custom_11.ypos", "9" },
+ { "custom_11", "RocksCE.pcx" },
+ { "custom_11.xpos", "10" },
+ { "custom_11.ypos", "0" },
{ "custom_11.frames", "1" },
- { "custom_11.EDITOR", "RocksElements.pcx" },
- { "custom_11.EDITOR.xpos", "15" },
- { "custom_11.EDITOR.ypos", "13" },
+ { "custom_11.EDITOR", "RocksCE.pcx" },
+ { "custom_11.EDITOR.xpos", "26" },
+ { "custom_11.EDITOR.ypos", "0" },
- { "custom_12", "RocksElements.pcx" },
- { "custom_12.xpos", "7" },
- { "custom_12.ypos", "9" },
+ { "custom_12", "RocksCE.pcx" },
+ { "custom_12.xpos", "11" },
+ { "custom_12.ypos", "0" },
{ "custom_12.frames", "1" },
- { "custom_12.EDITOR", "RocksElements.pcx" },
- { "custom_12.EDITOR.xpos", "15" },
- { "custom_12.EDITOR.ypos", "13" },
+ { "custom_12.EDITOR", "RocksCE.pcx" },
+ { "custom_12.EDITOR.xpos", "27" },
+ { "custom_12.EDITOR.ypos", "0" },
- { "custom_13", "RocksElements.pcx" },
- { "custom_13.xpos", "7" },
- { "custom_13.ypos", "9" },
+ { "custom_13", "RocksCE.pcx" },
+ { "custom_13.xpos", "12" },
+ { "custom_13.ypos", "0" },
{ "custom_13.frames", "1" },
- { "custom_13.EDITOR", "RocksElements.pcx" },
- { "custom_13.EDITOR.xpos", "15" },
- { "custom_13.EDITOR.ypos", "13" },
+ { "custom_13.EDITOR", "RocksCE.pcx" },
+ { "custom_13.EDITOR.xpos", "28" },
+ { "custom_13.EDITOR.ypos", "0" },
- { "custom_14", "RocksElements.pcx" },
- { "custom_14.xpos", "7" },
- { "custom_14.ypos", "9" },
+ { "custom_14", "RocksCE.pcx" },
+ { "custom_14.xpos", "13" },
+ { "custom_14.ypos", "0" },
{ "custom_14.frames", "1" },
- { "custom_14.EDITOR", "RocksElements.pcx" },
- { "custom_14.EDITOR.xpos", "15" },
- { "custom_14.EDITOR.ypos", "13" },
+ { "custom_14.EDITOR", "RocksCE.pcx" },
+ { "custom_14.EDITOR.xpos", "29" },
+ { "custom_14.EDITOR.ypos", "0" },
- { "custom_15", "RocksElements.pcx" },
- { "custom_15.xpos", "7" },
- { "custom_15.ypos", "9" },
+ { "custom_15", "RocksCE.pcx" },
+ { "custom_15.xpos", "14" },
+ { "custom_15.ypos", "0" },
{ "custom_15.frames", "1" },
- { "custom_15.EDITOR", "RocksElements.pcx" },
- { "custom_15.EDITOR.xpos", "15" },
- { "custom_15.EDITOR.ypos", "13" },
+ { "custom_15.EDITOR", "RocksCE.pcx" },
+ { "custom_15.EDITOR.xpos", "30" },
+ { "custom_15.EDITOR.ypos", "0" },
- { "custom_16", "RocksElements.pcx" },
- { "custom_16.xpos", "7" },
- { "custom_16.ypos", "9" },
+ { "custom_16", "RocksCE.pcx" },
+ { "custom_16.xpos", "15" },
+ { "custom_16.ypos", "0" },
{ "custom_16.frames", "1" },
- { "custom_16.EDITOR", "RocksElements.pcx" },
- { "custom_16.EDITOR.xpos", "15" },
- { "custom_16.EDITOR.ypos", "13" },
+ { "custom_16.EDITOR", "RocksCE.pcx" },
+ { "custom_16.EDITOR.xpos", "31" },
+ { "custom_16.EDITOR.ypos", "0" },
- { "custom_17", "RocksElements.pcx" },
- { "custom_17.xpos", "7" },
- { "custom_17.ypos", "9" },
+ { "custom_17", "RocksCE.pcx" },
+ { "custom_17.xpos", "0" },
+ { "custom_17.ypos", "1" },
{ "custom_17.frames", "1" },
- { "custom_17.EDITOR", "RocksElements.pcx" },
- { "custom_17.EDITOR.xpos", "15" },
- { "custom_17.EDITOR.ypos", "13" },
+ { "custom_17.EDITOR", "RocksCE.pcx" },
+ { "custom_17.EDITOR.xpos", "16" },
+ { "custom_17.EDITOR.ypos", "1" },
- { "custom_18", "RocksElements.pcx" },
- { "custom_18.xpos", "7" },
- { "custom_18.ypos", "9" },
+ { "custom_18", "RocksCE.pcx" },
+ { "custom_18.xpos", "1" },
+ { "custom_18.ypos", "1" },
{ "custom_18.frames", "1" },
- { "custom_18.EDITOR", "RocksElements.pcx" },
- { "custom_18.EDITOR.xpos", "15" },
- { "custom_18.EDITOR.ypos", "13" },
+ { "custom_18.EDITOR", "RocksCE.pcx" },
+ { "custom_18.EDITOR.xpos", "17" },
+ { "custom_18.EDITOR.ypos", "1" },
- { "custom_19", "RocksElements.pcx" },
- { "custom_19.xpos", "7" },
- { "custom_19.ypos", "9" },
+ { "custom_19", "RocksCE.pcx" },
+ { "custom_19.xpos", "2" },
+ { "custom_19.ypos", "1" },
{ "custom_19.frames", "1" },
- { "custom_19.EDITOR", "RocksElements.pcx" },
- { "custom_19.EDITOR.xpos", "15" },
- { "custom_19.EDITOR.ypos", "13" },
+ { "custom_19.EDITOR", "RocksCE.pcx" },
+ { "custom_19.EDITOR.xpos", "18" },
+ { "custom_19.EDITOR.ypos", "1" },
- { "custom_20", "RocksElements.pcx" },
- { "custom_20.xpos", "7" },
- { "custom_20.ypos", "9" },
+ { "custom_20", "RocksCE.pcx" },
+ { "custom_20.xpos", "3" },
+ { "custom_20.ypos", "1" },
{ "custom_20.frames", "1" },
- { "custom_20.EDITOR", "RocksElements.pcx" },
- { "custom_20.EDITOR.xpos", "15" },
- { "custom_20.EDITOR.ypos", "13" },
+ { "custom_20.EDITOR", "RocksCE.pcx" },
+ { "custom_20.EDITOR.xpos", "19" },
+ { "custom_20.EDITOR.ypos", "1" },
- { "custom_21", "RocksElements.pcx" },
- { "custom_21.xpos", "7" },
- { "custom_21.ypos", "9" },
+ { "custom_21", "RocksCE.pcx" },
+ { "custom_21.xpos", "4" },
+ { "custom_21.ypos", "1" },
{ "custom_21.frames", "1" },
- { "custom_21.EDITOR", "RocksElements.pcx" },
- { "custom_21.EDITOR.xpos", "15" },
- { "custom_21.EDITOR.ypos", "13" },
+ { "custom_21.EDITOR", "RocksCE.pcx" },
+ { "custom_21.EDITOR.xpos", "20" },
+ { "custom_21.EDITOR.ypos", "1" },
- { "custom_22", "RocksElements.pcx" },
- { "custom_22.xpos", "7" },
- { "custom_22.ypos", "9" },
+ { "custom_22", "RocksCE.pcx" },
+ { "custom_22.xpos", "5" },
+ { "custom_22.ypos", "1" },
{ "custom_22.frames", "1" },
- { "custom_22.EDITOR", "RocksElements.pcx" },
- { "custom_22.EDITOR.xpos", "15" },
- { "custom_22.EDITOR.ypos", "13" },
+ { "custom_22.EDITOR", "RocksCE.pcx" },
+ { "custom_22.EDITOR.xpos", "21" },
+ { "custom_22.EDITOR.ypos", "1" },
- { "custom_23", "RocksElements.pcx" },
- { "custom_23.xpos", "7" },
- { "custom_23.ypos", "9" },
+ { "custom_23", "RocksCE.pcx" },
+ { "custom_23.xpos", "6" },
+ { "custom_23.ypos", "1" },
{ "custom_23.frames", "1" },
- { "custom_23.EDITOR", "RocksElements.pcx" },
- { "custom_23.EDITOR.xpos", "15" },
- { "custom_23.EDITOR.ypos", "13" },
+ { "custom_23.EDITOR", "RocksCE.pcx" },
+ { "custom_23.EDITOR.xpos", "22" },
+ { "custom_23.EDITOR.ypos", "1" },
- { "custom_24", "RocksElements.pcx" },
+ { "custom_24", "RocksCE.pcx" },
{ "custom_24.xpos", "7" },
- { "custom_24.ypos", "9" },
+ { "custom_24.ypos", "1" },
{ "custom_24.frames", "1" },
- { "custom_24.EDITOR", "RocksElements.pcx" },
- { "custom_24.EDITOR.xpos", "15" },
- { "custom_24.EDITOR.ypos", "13" },
+ { "custom_24.EDITOR", "RocksCE.pcx" },
+ { "custom_24.EDITOR.xpos", "23" },
+ { "custom_24.EDITOR.ypos", "1" },
- { "custom_25", "RocksElements.pcx" },
- { "custom_25.xpos", "7" },
- { "custom_25.ypos", "9" },
+ { "custom_25", "RocksCE.pcx" },
+ { "custom_25.xpos", "8" },
+ { "custom_25.ypos", "1" },
{ "custom_25.frames", "1" },
- { "custom_25.EDITOR", "RocksElements.pcx" },
- { "custom_25.EDITOR.xpos", "15" },
- { "custom_25.EDITOR.ypos", "13" },
+ { "custom_25.EDITOR", "RocksCE.pcx" },
+ { "custom_25.EDITOR.xpos", "24" },
+ { "custom_25.EDITOR.ypos", "1" },
- { "custom_26", "RocksElements.pcx" },
- { "custom_26.xpos", "7" },
- { "custom_26.ypos", "9" },
+ { "custom_26", "RocksCE.pcx" },
+ { "custom_26.xpos", "9" },
+ { "custom_26.ypos", "1" },
{ "custom_26.frames", "1" },
- { "custom_26.EDITOR", "RocksElements.pcx" },
- { "custom_26.EDITOR.xpos", "15" },
- { "custom_26.EDITOR.ypos", "13" },
+ { "custom_26.EDITOR", "RocksCE.pcx" },
+ { "custom_26.EDITOR.xpos", "25" },
+ { "custom_26.EDITOR.ypos", "1" },
- { "custom_27", "RocksElements.pcx" },
- { "custom_27.xpos", "7" },
- { "custom_27.ypos", "9" },
+ { "custom_27", "RocksCE.pcx" },
+ { "custom_27.xpos", "10" },
+ { "custom_27.ypos", "1" },
{ "custom_27.frames", "1" },
- { "custom_27.EDITOR", "RocksElements.pcx" },
- { "custom_27.EDITOR.xpos", "15" },
- { "custom_27.EDITOR.ypos", "13" },
+ { "custom_27.EDITOR", "RocksCE.pcx" },
+ { "custom_27.EDITOR.xpos", "26" },
+ { "custom_27.EDITOR.ypos", "1" },
- { "custom_28", "RocksElements.pcx" },
- { "custom_28.xpos", "7" },
- { "custom_28.ypos", "9" },
+ { "custom_28", "RocksCE.pcx" },
+ { "custom_28.xpos", "11" },
+ { "custom_28.ypos", "1" },
{ "custom_28.frames", "1" },
- { "custom_28.EDITOR", "RocksElements.pcx" },
- { "custom_28.EDITOR.xpos", "15" },
- { "custom_28.EDITOR.ypos", "13" },
+ { "custom_28.EDITOR", "RocksCE.pcx" },
+ { "custom_28.EDITOR.xpos", "27" },
+ { "custom_28.EDITOR.ypos", "1" },
- { "custom_29", "RocksElements.pcx" },
- { "custom_29.xpos", "7" },
- { "custom_29.ypos", "9" },
+ { "custom_29", "RocksCE.pcx" },
+ { "custom_29.xpos", "12" },
+ { "custom_29.ypos", "1" },
{ "custom_29.frames", "1" },
- { "custom_29.EDITOR", "RocksElements.pcx" },
- { "custom_29.EDITOR.xpos", "15" },
- { "custom_29.EDITOR.ypos", "13" },
+ { "custom_29.EDITOR", "RocksCE.pcx" },
+ { "custom_29.EDITOR.xpos", "28" },
+ { "custom_29.EDITOR.ypos", "1" },
- { "custom_30", "RocksElements.pcx" },
- { "custom_30.xpos", "7" },
- { "custom_30.ypos", "9" },
+ { "custom_30", "RocksCE.pcx" },
+ { "custom_30.xpos", "13" },
+ { "custom_30.ypos", "1" },
{ "custom_30.frames", "1" },
- { "custom_30.EDITOR", "RocksElements.pcx" },
- { "custom_30.EDITOR.xpos", "15" },
- { "custom_30.EDITOR.ypos", "13" },
+ { "custom_30.EDITOR", "RocksCE.pcx" },
+ { "custom_30.EDITOR.xpos", "29" },
+ { "custom_30.EDITOR.ypos", "1" },
- { "custom_31", "RocksElements.pcx" },
- { "custom_31.xpos", "7" },
- { "custom_31.ypos", "9" },
+ { "custom_31", "RocksCE.pcx" },
+ { "custom_31.xpos", "14" },
+ { "custom_31.ypos", "1" },
{ "custom_31.frames", "1" },
- { "custom_31.EDITOR", "RocksElements.pcx" },
- { "custom_31.EDITOR.xpos", "15" },
- { "custom_31.EDITOR.ypos", "13" },
+ { "custom_31.EDITOR", "RocksCE.pcx" },
+ { "custom_31.EDITOR.xpos", "30" },
+ { "custom_31.EDITOR.ypos", "1" },
- { "custom_32", "RocksElements.pcx" },
- { "custom_32.xpos", "7" },
- { "custom_32.ypos", "9" },
+ { "custom_32", "RocksCE.pcx" },
+ { "custom_32.xpos", "15" },
+ { "custom_32.ypos", "1" },
{ "custom_32.frames", "1" },
- { "custom_32.EDITOR", "RocksElements.pcx" },
- { "custom_32.EDITOR.xpos", "15" },
- { "custom_32.EDITOR.ypos", "13" },
+ { "custom_32.EDITOR", "RocksCE.pcx" },
+ { "custom_32.EDITOR.xpos", "31" },
+ { "custom_32.EDITOR.ypos", "1" },
- { "custom_33", "RocksElements.pcx" },
- { "custom_33.xpos", "7" },
- { "custom_33.ypos", "9" },
+ { "custom_33", "RocksCE.pcx" },
+ { "custom_33.xpos", "0" },
+ { "custom_33.ypos", "2" },
{ "custom_33.frames", "1" },
- { "custom_33.EDITOR", "RocksElements.pcx" },
- { "custom_33.EDITOR.xpos", "15" },
- { "custom_33.EDITOR.ypos", "13" },
+ { "custom_33.EDITOR", "RocksCE.pcx" },
+ { "custom_33.EDITOR.xpos", "16" },
+ { "custom_33.EDITOR.ypos", "2" },
- { "custom_34", "RocksElements.pcx" },
- { "custom_34.xpos", "7" },
- { "custom_34.ypos", "9" },
+ { "custom_34", "RocksCE.pcx" },
+ { "custom_34.xpos", "1" },
+ { "custom_34.ypos", "2" },
{ "custom_34.frames", "1" },
- { "custom_34.EDITOR", "RocksElements.pcx" },
- { "custom_34.EDITOR.xpos", "15" },
- { "custom_34.EDITOR.ypos", "13" },
+ { "custom_34.EDITOR", "RocksCE.pcx" },
+ { "custom_34.EDITOR.xpos", "17" },
+ { "custom_34.EDITOR.ypos", "2" },
- { "custom_35", "RocksElements.pcx" },
- { "custom_35.xpos", "7" },
- { "custom_35.ypos", "9" },
+ { "custom_35", "RocksCE.pcx" },
+ { "custom_35.xpos", "2" },
+ { "custom_35.ypos", "2" },
{ "custom_35.frames", "1" },
- { "custom_35.EDITOR", "RocksElements.pcx" },
- { "custom_35.EDITOR.xpos", "15" },
- { "custom_35.EDITOR.ypos", "13" },
+ { "custom_35.EDITOR", "RocksCE.pcx" },
+ { "custom_35.EDITOR.xpos", "18" },
+ { "custom_35.EDITOR.ypos", "2" },
- { "custom_36", "RocksElements.pcx" },
- { "custom_36.xpos", "7" },
- { "custom_36.ypos", "9" },
+ { "custom_36", "RocksCE.pcx" },
+ { "custom_36.xpos", "3" },
+ { "custom_36.ypos", "2" },
{ "custom_36.frames", "1" },
- { "custom_36.EDITOR", "RocksElements.pcx" },
- { "custom_36.EDITOR.xpos", "15" },
- { "custom_36.EDITOR.ypos", "13" },
+ { "custom_36.EDITOR", "RocksCE.pcx" },
+ { "custom_36.EDITOR.xpos", "19" },
+ { "custom_36.EDITOR.ypos", "2" },
- { "custom_37", "RocksElements.pcx" },
- { "custom_37.xpos", "7" },
- { "custom_37.ypos", "9" },
+ { "custom_37", "RocksCE.pcx" },
+ { "custom_37.xpos", "4" },
+ { "custom_37.ypos", "2" },
{ "custom_37.frames", "1" },
- { "custom_37.EDITOR", "RocksElements.pcx" },
- { "custom_37.EDITOR.xpos", "15" },
- { "custom_37.EDITOR.ypos", "13" },
+ { "custom_37.EDITOR", "RocksCE.pcx" },
+ { "custom_37.EDITOR.xpos", "20" },
+ { "custom_37.EDITOR.ypos", "2" },
- { "custom_38", "RocksElements.pcx" },
- { "custom_38.xpos", "7" },
- { "custom_38.ypos", "9" },
+ { "custom_38", "RocksCE.pcx" },
+ { "custom_38.xpos", "5" },
+ { "custom_38.ypos", "2" },
{ "custom_38.frames", "1" },
- { "custom_38.EDITOR", "RocksElements.pcx" },
- { "custom_38.EDITOR.xpos", "15" },
- { "custom_38.EDITOR.ypos", "13" },
+ { "custom_38.EDITOR", "RocksCE.pcx" },
+ { "custom_38.EDITOR.xpos", "21" },
+ { "custom_38.EDITOR.ypos", "2" },
- { "custom_39", "RocksElements.pcx" },
- { "custom_39.xpos", "7" },
- { "custom_39.ypos", "9" },
+ { "custom_39", "RocksCE.pcx" },
+ { "custom_39.xpos", "6" },
+ { "custom_39.ypos", "2" },
{ "custom_39.frames", "1" },
- { "custom_39.EDITOR", "RocksElements.pcx" },
- { "custom_39.EDITOR.xpos", "15" },
- { "custom_39.EDITOR.ypos", "13" },
+ { "custom_39.EDITOR", "RocksCE.pcx" },
+ { "custom_39.EDITOR.xpos", "22" },
+ { "custom_39.EDITOR.ypos", "2" },
- { "custom_40", "RocksElements.pcx" },
+ { "custom_40", "RocksCE.pcx" },
{ "custom_40.xpos", "7" },
- { "custom_40.ypos", "9" },
+ { "custom_40.ypos", "2" },
{ "custom_40.frames", "1" },
- { "custom_40.EDITOR", "RocksElements.pcx" },
- { "custom_40.EDITOR.xpos", "15" },
- { "custom_40.EDITOR.ypos", "13" },
+ { "custom_40.EDITOR", "RocksCE.pcx" },
+ { "custom_40.EDITOR.xpos", "23" },
+ { "custom_40.EDITOR.ypos", "2" },
- { "custom_41", "RocksElements.pcx" },
- { "custom_41.xpos", "7" },
- { "custom_41.ypos", "9" },
+ { "custom_41", "RocksCE.pcx" },
+ { "custom_41.xpos", "8" },
+ { "custom_41.ypos", "2" },
{ "custom_41.frames", "1" },
- { "custom_41.EDITOR", "RocksElements.pcx" },
- { "custom_41.EDITOR.xpos", "15" },
- { "custom_41.EDITOR.ypos", "13" },
+ { "custom_41.EDITOR", "RocksCE.pcx" },
+ { "custom_41.EDITOR.xpos", "24" },
+ { "custom_41.EDITOR.ypos", "2" },
- { "custom_42", "RocksElements.pcx" },
- { "custom_42.xpos", "7" },
- { "custom_42.ypos", "9" },
+ { "custom_42", "RocksCE.pcx" },
+ { "custom_42.xpos", "9" },
+ { "custom_42.ypos", "2" },
{ "custom_42.frames", "1" },
- { "custom_42.EDITOR", "RocksElements.pcx" },
- { "custom_42.EDITOR.xpos", "15" },
- { "custom_42.EDITOR.ypos", "13" },
+ { "custom_42.EDITOR", "RocksCE.pcx" },
+ { "custom_42.EDITOR.xpos", "25" },
+ { "custom_42.EDITOR.ypos", "2" },
- { "custom_43", "RocksElements.pcx" },
- { "custom_43.xpos", "7" },
- { "custom_43.ypos", "9" },
+ { "custom_43", "RocksCE.pcx" },
+ { "custom_43.xpos", "10" },
+ { "custom_43.ypos", "2" },
{ "custom_43.frames", "1" },
- { "custom_43.EDITOR", "RocksElements.pcx" },
- { "custom_43.EDITOR.xpos", "15" },
- { "custom_43.EDITOR.ypos", "13" },
+ { "custom_43.EDITOR", "RocksCE.pcx" },
+ { "custom_43.EDITOR.xpos", "26" },
+ { "custom_43.EDITOR.ypos", "2" },
- { "custom_44", "RocksElements.pcx" },
- { "custom_44.xpos", "7" },
- { "custom_44.ypos", "9" },
+ { "custom_44", "RocksCE.pcx" },
+ { "custom_44.xpos", "11" },
+ { "custom_44.ypos", "2" },
{ "custom_44.frames", "1" },
- { "custom_44.EDITOR", "RocksElements.pcx" },
- { "custom_44.EDITOR.xpos", "15" },
- { "custom_44.EDITOR.ypos", "13" },
+ { "custom_44.EDITOR", "RocksCE.pcx" },
+ { "custom_44.EDITOR.xpos", "27" },
+ { "custom_44.EDITOR.ypos", "2" },
- { "custom_45", "RocksElements.pcx" },
- { "custom_45.xpos", "7" },
- { "custom_45.ypos", "9" },
+ { "custom_45", "RocksCE.pcx" },
+ { "custom_45.xpos", "12" },
+ { "custom_45.ypos", "2" },
{ "custom_45.frames", "1" },
- { "custom_45.EDITOR", "RocksElements.pcx" },
- { "custom_45.EDITOR.xpos", "15" },
- { "custom_45.EDITOR.ypos", "13" },
+ { "custom_45.EDITOR", "RocksCE.pcx" },
+ { "custom_45.EDITOR.xpos", "28" },
+ { "custom_45.EDITOR.ypos", "2" },
- { "custom_46", "RocksElements.pcx" },
- { "custom_46.xpos", "7" },
- { "custom_46.ypos", "9" },
+ { "custom_46", "RocksCE.pcx" },
+ { "custom_46.xpos", "13" },
+ { "custom_46.ypos", "2" },
{ "custom_46.frames", "1" },
- { "custom_46.EDITOR", "RocksElements.pcx" },
- { "custom_46.EDITOR.xpos", "15" },
- { "custom_46.EDITOR.ypos", "13" },
+ { "custom_46.EDITOR", "RocksCE.pcx" },
+ { "custom_46.EDITOR.xpos", "29" },
+ { "custom_46.EDITOR.ypos", "2" },
- { "custom_47", "RocksElements.pcx" },
- { "custom_47.xpos", "7" },
- { "custom_47.ypos", "9" },
+ { "custom_47", "RocksCE.pcx" },
+ { "custom_47.xpos", "14" },
+ { "custom_47.ypos", "2" },
{ "custom_47.frames", "1" },
- { "custom_47.EDITOR", "RocksElements.pcx" },
- { "custom_47.EDITOR.xpos", "15" },
- { "custom_47.EDITOR.ypos", "13" },
+ { "custom_47.EDITOR", "RocksCE.pcx" },
+ { "custom_47.EDITOR.xpos", "30" },
+ { "custom_47.EDITOR.ypos", "2" },
- { "custom_48", "RocksElements.pcx" },
- { "custom_48.xpos", "7" },
- { "custom_48.ypos", "9" },
+ { "custom_48", "RocksCE.pcx" },
+ { "custom_48.xpos", "15" },
+ { "custom_48.ypos", "2" },
{ "custom_48.frames", "1" },
- { "custom_48.EDITOR", "RocksElements.pcx" },
- { "custom_48.EDITOR.xpos", "15" },
- { "custom_48.EDITOR.ypos", "13" },
+ { "custom_48.EDITOR", "RocksCE.pcx" },
+ { "custom_48.EDITOR.xpos", "31" },
+ { "custom_48.EDITOR.ypos", "2" },
- { "custom_49", "RocksElements.pcx" },
- { "custom_49.xpos", "7" },
- { "custom_49.ypos", "9" },
+ { "custom_49", "RocksCE.pcx" },
+ { "custom_49.xpos", "0" },
+ { "custom_49.ypos", "3" },
{ "custom_49.frames", "1" },
- { "custom_49.EDITOR", "RocksElements.pcx" },
- { "custom_49.EDITOR.xpos", "15" },
- { "custom_49.EDITOR.ypos", "13" },
+ { "custom_49.EDITOR", "RocksCE.pcx" },
+ { "custom_49.EDITOR.xpos", "16" },
+ { "custom_49.EDITOR.ypos", "3" },
- { "custom_50", "RocksElements.pcx" },
- { "custom_50.xpos", "7" },
- { "custom_50.ypos", "9" },
+ { "custom_50", "RocksCE.pcx" },
+ { "custom_50.xpos", "1" },
+ { "custom_50.ypos", "3" },
{ "custom_50.frames", "1" },
- { "custom_50.EDITOR", "RocksElements.pcx" },
- { "custom_50.EDITOR.xpos", "15" },
- { "custom_50.EDITOR.ypos", "13" },
+ { "custom_50.EDITOR", "RocksCE.pcx" },
+ { "custom_50.EDITOR.xpos", "17" },
+ { "custom_50.EDITOR.ypos", "3" },
- { "custom_51", "RocksElements.pcx" },
- { "custom_51.xpos", "7" },
- { "custom_51.ypos", "9" },
+ { "custom_51", "RocksCE.pcx" },
+ { "custom_51.xpos", "2" },
+ { "custom_51.ypos", "3" },
{ "custom_51.frames", "1" },
- { "custom_51.EDITOR", "RocksElements.pcx" },
- { "custom_51.EDITOR.xpos", "15" },
- { "custom_51.EDITOR.ypos", "13" },
+ { "custom_51.EDITOR", "RocksCE.pcx" },
+ { "custom_51.EDITOR.xpos", "18" },
+ { "custom_51.EDITOR.ypos", "3" },
- { "custom_52", "RocksElements.pcx" },
- { "custom_52.xpos", "7" },
- { "custom_52.ypos", "9" },
+ { "custom_52", "RocksCE.pcx" },
+ { "custom_52.xpos", "3" },
+ { "custom_52.ypos", "3" },
{ "custom_52.frames", "1" },
- { "custom_52.EDITOR", "RocksElements.pcx" },
- { "custom_52.EDITOR.xpos", "15" },
- { "custom_52.EDITOR.ypos", "13" },
+ { "custom_52.EDITOR", "RocksCE.pcx" },
+ { "custom_52.EDITOR.xpos", "19" },
+ { "custom_52.EDITOR.ypos", "3" },
- { "custom_53", "RocksElements.pcx" },
- { "custom_53.xpos", "7" },
- { "custom_53.ypos", "9" },
+ { "custom_53", "RocksCE.pcx" },
+ { "custom_53.xpos", "4" },
+ { "custom_53.ypos", "3" },
{ "custom_53.frames", "1" },
- { "custom_53.EDITOR", "RocksElements.pcx" },
- { "custom_53.EDITOR.xpos", "15" },
- { "custom_53.EDITOR.ypos", "13" },
+ { "custom_53.EDITOR", "RocksCE.pcx" },
+ { "custom_53.EDITOR.xpos", "20" },
+ { "custom_53.EDITOR.ypos", "3" },
- { "custom_54", "RocksElements.pcx" },
- { "custom_54.xpos", "7" },
- { "custom_54.ypos", "9" },
+ { "custom_54", "RocksCE.pcx" },
+ { "custom_54.xpos", "5" },
+ { "custom_54.ypos", "3" },
{ "custom_54.frames", "1" },
- { "custom_54.EDITOR", "RocksElements.pcx" },
- { "custom_54.EDITOR.xpos", "15" },
- { "custom_54.EDITOR.ypos", "13" },
+ { "custom_54.EDITOR", "RocksCE.pcx" },
+ { "custom_54.EDITOR.xpos", "21" },
+ { "custom_54.EDITOR.ypos", "3" },
- { "custom_55", "RocksElements.pcx" },
- { "custom_55.xpos", "7" },
- { "custom_55.ypos", "9" },
+ { "custom_55", "RocksCE.pcx" },
+ { "custom_55.xpos", "6" },
+ { "custom_55.ypos", "3" },
{ "custom_55.frames", "1" },
- { "custom_55.EDITOR", "RocksElements.pcx" },
- { "custom_55.EDITOR.xpos", "15" },
- { "custom_55.EDITOR.ypos", "13" },
+ { "custom_55.EDITOR", "RocksCE.pcx" },
+ { "custom_55.EDITOR.xpos", "22" },
+ { "custom_55.EDITOR.ypos", "3" },
- { "custom_56", "RocksElements.pcx" },
+ { "custom_56", "RocksCE.pcx" },
{ "custom_56.xpos", "7" },
- { "custom_56.ypos", "9" },
+ { "custom_56.ypos", "3" },
{ "custom_56.frames", "1" },
- { "custom_56.EDITOR", "RocksElements.pcx" },
- { "custom_56.EDITOR.xpos", "15" },
- { "custom_56.EDITOR.ypos", "13" },
+ { "custom_56.EDITOR", "RocksCE.pcx" },
+ { "custom_56.EDITOR.xpos", "23" },
+ { "custom_56.EDITOR.ypos", "3" },
- { "custom_57", "RocksElements.pcx" },
- { "custom_57.xpos", "7" },
- { "custom_57.ypos", "9" },
+ { "custom_57", "RocksCE.pcx" },
+ { "custom_57.xpos", "8" },
+ { "custom_57.ypos", "3" },
{ "custom_57.frames", "1" },
- { "custom_57.EDITOR", "RocksElements.pcx" },
- { "custom_57.EDITOR.xpos", "15" },
- { "custom_57.EDITOR.ypos", "13" },
+ { "custom_57.EDITOR", "RocksCE.pcx" },
+ { "custom_57.EDITOR.xpos", "24" },
+ { "custom_57.EDITOR.ypos", "3" },
- { "custom_58", "RocksElements.pcx" },
- { "custom_58.xpos", "7" },
- { "custom_58.ypos", "9" },
+ { "custom_58", "RocksCE.pcx" },
+ { "custom_58.xpos", "9" },
+ { "custom_58.ypos", "3" },
{ "custom_58.frames", "1" },
- { "custom_58.EDITOR", "RocksElements.pcx" },
- { "custom_58.EDITOR.xpos", "15" },
- { "custom_58.EDITOR.ypos", "13" },
+ { "custom_58.EDITOR", "RocksCE.pcx" },
+ { "custom_58.EDITOR.xpos", "25" },
+ { "custom_58.EDITOR.ypos", "3" },
- { "custom_59", "RocksElements.pcx" },
- { "custom_59.xpos", "7" },
- { "custom_59.ypos", "9" },
+ { "custom_59", "RocksCE.pcx" },
+ { "custom_59.xpos", "10" },
+ { "custom_59.ypos", "3" },
{ "custom_59.frames", "1" },
- { "custom_59.EDITOR", "RocksElements.pcx" },
- { "custom_59.EDITOR.xpos", "15" },
- { "custom_59.EDITOR.ypos", "13" },
+ { "custom_59.EDITOR", "RocksCE.pcx" },
+ { "custom_59.EDITOR.xpos", "26" },
+ { "custom_59.EDITOR.ypos", "3" },
- { "custom_60", "RocksElements.pcx" },
- { "custom_60.xpos", "7" },
- { "custom_60.ypos", "9" },
+ { "custom_60", "RocksCE.pcx" },
+ { "custom_60.xpos", "11" },
+ { "custom_60.ypos", "3" },
{ "custom_60.frames", "1" },
- { "custom_60.EDITOR", "RocksElements.pcx" },
- { "custom_60.EDITOR.xpos", "15" },
- { "custom_60.EDITOR.ypos", "13" },
+ { "custom_60.EDITOR", "RocksCE.pcx" },
+ { "custom_60.EDITOR.xpos", "27" },
+ { "custom_60.EDITOR.ypos", "3" },
- { "custom_61", "RocksElements.pcx" },
- { "custom_61.xpos", "7" },
- { "custom_61.ypos", "9" },
+ { "custom_61", "RocksCE.pcx" },
+ { "custom_61.xpos", "12" },
+ { "custom_61.ypos", "3" },
{ "custom_61.frames", "1" },
- { "custom_61.EDITOR", "RocksElements.pcx" },
- { "custom_61.EDITOR.xpos", "15" },
- { "custom_61.EDITOR.ypos", "13" },
+ { "custom_61.EDITOR", "RocksCE.pcx" },
+ { "custom_61.EDITOR.xpos", "28" },
+ { "custom_61.EDITOR.ypos", "3" },
- { "custom_62", "RocksElements.pcx" },
- { "custom_62.xpos", "7" },
- { "custom_62.ypos", "9" },
+ { "custom_62", "RocksCE.pcx" },
+ { "custom_62.xpos", "13" },
+ { "custom_62.ypos", "3" },
{ "custom_62.frames", "1" },
- { "custom_62.EDITOR", "RocksElements.pcx" },
- { "custom_62.EDITOR.xpos", "15" },
- { "custom_62.EDITOR.ypos", "13" },
+ { "custom_62.EDITOR", "RocksCE.pcx" },
+ { "custom_62.EDITOR.xpos", "29" },
+ { "custom_62.EDITOR.ypos", "3" },
- { "custom_63", "RocksElements.pcx" },
- { "custom_63.xpos", "7" },
- { "custom_63.ypos", "9" },
+ { "custom_63", "RocksCE.pcx" },
+ { "custom_63.xpos", "14" },
+ { "custom_63.ypos", "3" },
{ "custom_63.frames", "1" },
- { "custom_63.EDITOR", "RocksElements.pcx" },
- { "custom_63.EDITOR.xpos", "15" },
- { "custom_63.EDITOR.ypos", "13" },
+ { "custom_63.EDITOR", "RocksCE.pcx" },
+ { "custom_63.EDITOR.xpos", "30" },
+ { "custom_63.EDITOR.ypos", "3" },
- { "custom_64", "RocksElements.pcx" },
- { "custom_64.xpos", "7" },
- { "custom_64.ypos", "9" },
+ { "custom_64", "RocksCE.pcx" },
+ { "custom_64.xpos", "15" },
+ { "custom_64.ypos", "3" },
{ "custom_64.frames", "1" },
- { "custom_64.EDITOR", "RocksElements.pcx" },
- { "custom_64.EDITOR.xpos", "15" },
- { "custom_64.EDITOR.ypos", "13" },
+ { "custom_64.EDITOR", "RocksCE.pcx" },
+ { "custom_64.EDITOR.xpos", "31" },
+ { "custom_64.EDITOR.ypos", "3" },
- { "custom_65", "RocksElements.pcx" },
- { "custom_65.xpos", "7" },
- { "custom_65.ypos", "9" },
+ { "custom_65", "RocksCE.pcx" },
+ { "custom_65.xpos", "0" },
+ { "custom_65.ypos", "4" },
{ "custom_65.frames", "1" },
- { "custom_65.EDITOR", "RocksElements.pcx" },
- { "custom_65.EDITOR.xpos", "15" },
- { "custom_65.EDITOR.ypos", "13" },
+ { "custom_65.EDITOR", "RocksCE.pcx" },
+ { "custom_65.EDITOR.xpos", "16" },
+ { "custom_65.EDITOR.ypos", "4" },
- { "custom_66", "RocksElements.pcx" },
- { "custom_66.xpos", "7" },
- { "custom_66.ypos", "9" },
+ { "custom_66", "RocksCE.pcx" },
+ { "custom_66.xpos", "1" },
+ { "custom_66.ypos", "4" },
{ "custom_66.frames", "1" },
- { "custom_66.EDITOR", "RocksElements.pcx" },
- { "custom_66.EDITOR.xpos", "15" },
- { "custom_66.EDITOR.ypos", "13" },
+ { "custom_66.EDITOR", "RocksCE.pcx" },
+ { "custom_66.EDITOR.xpos", "17" },
+ { "custom_66.EDITOR.ypos", "4" },
- { "custom_67", "RocksElements.pcx" },
- { "custom_67.xpos", "7" },
- { "custom_67.ypos", "9" },
+ { "custom_67", "RocksCE.pcx" },
+ { "custom_67.xpos", "2" },
+ { "custom_67.ypos", "4" },
{ "custom_67.frames", "1" },
- { "custom_67.EDITOR", "RocksElements.pcx" },
- { "custom_67.EDITOR.xpos", "15" },
- { "custom_67.EDITOR.ypos", "13" },
+ { "custom_67.EDITOR", "RocksCE.pcx" },
+ { "custom_67.EDITOR.xpos", "18" },
+ { "custom_67.EDITOR.ypos", "4" },
- { "custom_68", "RocksElements.pcx" },
- { "custom_68.xpos", "7" },
- { "custom_68.ypos", "9" },
+ { "custom_68", "RocksCE.pcx" },
+ { "custom_68.xpos", "3" },
+ { "custom_68.ypos", "4" },
{ "custom_68.frames", "1" },
- { "custom_68.EDITOR", "RocksElements.pcx" },
- { "custom_68.EDITOR.xpos", "15" },
- { "custom_68.EDITOR.ypos", "13" },
+ { "custom_68.EDITOR", "RocksCE.pcx" },
+ { "custom_68.EDITOR.xpos", "19" },
+ { "custom_68.EDITOR.ypos", "4" },
- { "custom_69", "RocksElements.pcx" },
- { "custom_69.xpos", "7" },
- { "custom_69.ypos", "9" },
+ { "custom_69", "RocksCE.pcx" },
+ { "custom_69.xpos", "4" },
+ { "custom_69.ypos", "4" },
{ "custom_69.frames", "1" },
- { "custom_69.EDITOR", "RocksElements.pcx" },
- { "custom_69.EDITOR.xpos", "15" },
- { "custom_69.EDITOR.ypos", "13" },
+ { "custom_69.EDITOR", "RocksCE.pcx" },
+ { "custom_69.EDITOR.xpos", "20" },
+ { "custom_69.EDITOR.ypos", "4" },
- { "custom_70", "RocksElements.pcx" },
- { "custom_70.xpos", "7" },
- { "custom_70.ypos", "9" },
+ { "custom_70", "RocksCE.pcx" },
+ { "custom_70.xpos", "5" },
+ { "custom_70.ypos", "4" },
{ "custom_70.frames", "1" },
- { "custom_70.EDITOR", "RocksElements.pcx" },
- { "custom_70.EDITOR.xpos", "15" },
- { "custom_70.EDITOR.ypos", "13" },
+ { "custom_70.EDITOR", "RocksCE.pcx" },
+ { "custom_70.EDITOR.xpos", "21" },
+ { "custom_70.EDITOR.ypos", "4" },
- { "custom_71", "RocksElements.pcx" },
- { "custom_71.xpos", "7" },
- { "custom_71.ypos", "9" },
+ { "custom_71", "RocksCE.pcx" },
+ { "custom_71.xpos", "6" },
+ { "custom_71.ypos", "4" },
{ "custom_71.frames", "1" },
- { "custom_71.EDITOR", "RocksElements.pcx" },
- { "custom_71.EDITOR.xpos", "15" },
- { "custom_71.EDITOR.ypos", "13" },
+ { "custom_71.EDITOR", "RocksCE.pcx" },
+ { "custom_71.EDITOR.xpos", "22" },
+ { "custom_71.EDITOR.ypos", "4" },
- { "custom_72", "RocksElements.pcx" },
+ { "custom_72", "RocksCE.pcx" },
{ "custom_72.xpos", "7" },
- { "custom_72.ypos", "9" },
+ { "custom_72.ypos", "4" },
{ "custom_72.frames", "1" },
- { "custom_72.EDITOR", "RocksElements.pcx" },
- { "custom_72.EDITOR.xpos", "15" },
- { "custom_72.EDITOR.ypos", "13" },
+ { "custom_72.EDITOR", "RocksCE.pcx" },
+ { "custom_72.EDITOR.xpos", "23" },
+ { "custom_72.EDITOR.ypos", "4" },
- { "custom_73", "RocksElements.pcx" },
- { "custom_73.xpos", "7" },
- { "custom_73.ypos", "9" },
+ { "custom_73", "RocksCE.pcx" },
+ { "custom_73.xpos", "8" },
+ { "custom_73.ypos", "4" },
{ "custom_73.frames", "1" },
- { "custom_73.EDITOR", "RocksElements.pcx" },
- { "custom_73.EDITOR.xpos", "15" },
- { "custom_73.EDITOR.ypos", "13" },
+ { "custom_73.EDITOR", "RocksCE.pcx" },
+ { "custom_73.EDITOR.xpos", "24" },
+ { "custom_73.EDITOR.ypos", "4" },
- { "custom_74", "RocksElements.pcx" },
- { "custom_74.xpos", "7" },
- { "custom_74.ypos", "9" },
+ { "custom_74", "RocksCE.pcx" },
+ { "custom_74.xpos", "9" },
+ { "custom_74.ypos", "4" },
{ "custom_74.frames", "1" },
- { "custom_74.EDITOR", "RocksElements.pcx" },
- { "custom_74.EDITOR.xpos", "15" },
- { "custom_74.EDITOR.ypos", "13" },
+ { "custom_74.EDITOR", "RocksCE.pcx" },
+ { "custom_74.EDITOR.xpos", "25" },
+ { "custom_74.EDITOR.ypos", "4" },
- { "custom_75", "RocksElements.pcx" },
- { "custom_75.xpos", "7" },
- { "custom_75.ypos", "9" },
+ { "custom_75", "RocksCE.pcx" },
+ { "custom_75.xpos", "10" },
+ { "custom_75.ypos", "4" },
{ "custom_75.frames", "1" },
- { "custom_75.EDITOR", "RocksElements.pcx" },
- { "custom_75.EDITOR.xpos", "15" },
- { "custom_75.EDITOR.ypos", "13" },
+ { "custom_75.EDITOR", "RocksCE.pcx" },
+ { "custom_75.EDITOR.xpos", "26" },
+ { "custom_75.EDITOR.ypos", "4" },
- { "custom_76", "RocksElements.pcx" },
- { "custom_76.xpos", "7" },
- { "custom_76.ypos", "9" },
+ { "custom_76", "RocksCE.pcx" },
+ { "custom_76.xpos", "11" },
+ { "custom_76.ypos", "4" },
{ "custom_76.frames", "1" },
- { "custom_76.EDITOR", "RocksElements.pcx" },
- { "custom_76.EDITOR.xpos", "15" },
- { "custom_76.EDITOR.ypos", "13" },
+ { "custom_76.EDITOR", "RocksCE.pcx" },
+ { "custom_76.EDITOR.xpos", "27" },
+ { "custom_76.EDITOR.ypos", "4" },
- { "custom_77", "RocksElements.pcx" },
- { "custom_77.xpos", "7" },
- { "custom_77.ypos", "9" },
+ { "custom_77", "RocksCE.pcx" },
+ { "custom_77.xpos", "12" },
+ { "custom_77.ypos", "4" },
{ "custom_77.frames", "1" },
- { "custom_77.EDITOR", "RocksElements.pcx" },
- { "custom_77.EDITOR.xpos", "15" },
- { "custom_77.EDITOR.ypos", "13" },
+ { "custom_77.EDITOR", "RocksCE.pcx" },
+ { "custom_77.EDITOR.xpos", "28" },
+ { "custom_77.EDITOR.ypos", "4" },
- { "custom_78", "RocksElements.pcx" },
- { "custom_78.xpos", "7" },
- { "custom_78.ypos", "9" },
+ { "custom_78", "RocksCE.pcx" },
+ { "custom_78.xpos", "13" },
+ { "custom_78.ypos", "4" },
{ "custom_78.frames", "1" },
- { "custom_78.EDITOR", "RocksElements.pcx" },
- { "custom_78.EDITOR.xpos", "15" },
- { "custom_78.EDITOR.ypos", "13" },
+ { "custom_78.EDITOR", "RocksCE.pcx" },
+ { "custom_78.EDITOR.xpos", "29" },
+ { "custom_78.EDITOR.ypos", "4" },
- { "custom_79", "RocksElements.pcx" },
- { "custom_79.xpos", "7" },
- { "custom_79.ypos", "9" },
+ { "custom_79", "RocksCE.pcx" },
+ { "custom_79.xpos", "14" },
+ { "custom_79.ypos", "4" },
{ "custom_79.frames", "1" },
- { "custom_79.EDITOR", "RocksElements.pcx" },
- { "custom_79.EDITOR.xpos", "15" },
- { "custom_79.EDITOR.ypos", "13" },
+ { "custom_79.EDITOR", "RocksCE.pcx" },
+ { "custom_79.EDITOR.xpos", "30" },
+ { "custom_79.EDITOR.ypos", "4" },
- { "custom_80", "RocksElements.pcx" },
- { "custom_80.xpos", "7" },
- { "custom_80.ypos", "9" },
+ { "custom_80", "RocksCE.pcx" },
+ { "custom_80.xpos", "15" },
+ { "custom_80.ypos", "4" },
{ "custom_80.frames", "1" },
- { "custom_80.EDITOR", "RocksElements.pcx" },
- { "custom_80.EDITOR.xpos", "15" },
- { "custom_80.EDITOR.ypos", "13" },
+ { "custom_80.EDITOR", "RocksCE.pcx" },
+ { "custom_80.EDITOR.xpos", "31" },
+ { "custom_80.EDITOR.ypos", "4" },
- { "custom_81", "RocksElements.pcx" },
- { "custom_81.xpos", "7" },
- { "custom_81.ypos", "9" },
+ { "custom_81", "RocksCE.pcx" },
+ { "custom_81.xpos", "0" },
+ { "custom_81.ypos", "5" },
{ "custom_81.frames", "1" },
- { "custom_81.EDITOR", "RocksElements.pcx" },
- { "custom_81.EDITOR.xpos", "15" },
- { "custom_81.EDITOR.ypos", "13" },
+ { "custom_81.EDITOR", "RocksCE.pcx" },
+ { "custom_81.EDITOR.xpos", "16" },
+ { "custom_81.EDITOR.ypos", "5" },
- { "custom_82", "RocksElements.pcx" },
- { "custom_82.xpos", "7" },
- { "custom_82.ypos", "9" },
+ { "custom_82", "RocksCE.pcx" },
+ { "custom_82.xpos", "1" },
+ { "custom_82.ypos", "5" },
{ "custom_82.frames", "1" },
- { "custom_82.EDITOR", "RocksElements.pcx" },
- { "custom_82.EDITOR.xpos", "15" },
- { "custom_82.EDITOR.ypos", "13" },
+ { "custom_82.EDITOR", "RocksCE.pcx" },
+ { "custom_82.EDITOR.xpos", "17" },
+ { "custom_82.EDITOR.ypos", "5" },
- { "custom_83", "RocksElements.pcx" },
- { "custom_83.xpos", "7" },
- { "custom_83.ypos", "9" },
+ { "custom_83", "RocksCE.pcx" },
+ { "custom_83.xpos", "2" },
+ { "custom_83.ypos", "5" },
{ "custom_83.frames", "1" },
- { "custom_83.EDITOR", "RocksElements.pcx" },
- { "custom_83.EDITOR.xpos", "15" },
- { "custom_83.EDITOR.ypos", "13" },
+ { "custom_83.EDITOR", "RocksCE.pcx" },
+ { "custom_83.EDITOR.xpos", "18" },
+ { "custom_83.EDITOR.ypos", "5" },
- { "custom_84", "RocksElements.pcx" },
- { "custom_84.xpos", "7" },
- { "custom_84.ypos", "9" },
+ { "custom_84", "RocksCE.pcx" },
+ { "custom_84.xpos", "3" },
+ { "custom_84.ypos", "5" },
{ "custom_84.frames", "1" },
- { "custom_84.EDITOR", "RocksElements.pcx" },
- { "custom_84.EDITOR.xpos", "15" },
- { "custom_84.EDITOR.ypos", "13" },
+ { "custom_84.EDITOR", "RocksCE.pcx" },
+ { "custom_84.EDITOR.xpos", "19" },
+ { "custom_84.EDITOR.ypos", "5" },
- { "custom_85", "RocksElements.pcx" },
- { "custom_85.xpos", "7" },
- { "custom_85.ypos", "9" },
+ { "custom_85", "RocksCE.pcx" },
+ { "custom_85.xpos", "4" },
+ { "custom_85.ypos", "5" },
{ "custom_85.frames", "1" },
- { "custom_85.EDITOR", "RocksElements.pcx" },
- { "custom_85.EDITOR.xpos", "15" },
- { "custom_85.EDITOR.ypos", "13" },
+ { "custom_85.EDITOR", "RocksCE.pcx" },
+ { "custom_85.EDITOR.xpos", "20" },
+ { "custom_85.EDITOR.ypos", "5" },
- { "custom_86", "RocksElements.pcx" },
- { "custom_86.xpos", "7" },
- { "custom_86.ypos", "9" },
+ { "custom_86", "RocksCE.pcx" },
+ { "custom_86.xpos", "5" },
+ { "custom_86.ypos", "5" },
{ "custom_86.frames", "1" },
- { "custom_86.EDITOR", "RocksElements.pcx" },
- { "custom_86.EDITOR.xpos", "15" },
- { "custom_86.EDITOR.ypos", "13" },
+ { "custom_86.EDITOR", "RocksCE.pcx" },
+ { "custom_86.EDITOR.xpos", "21" },
+ { "custom_86.EDITOR.ypos", "5" },
- { "custom_87", "RocksElements.pcx" },
- { "custom_87.xpos", "7" },
- { "custom_87.ypos", "9" },
+ { "custom_87", "RocksCE.pcx" },
+ { "custom_87.xpos", "6" },
+ { "custom_87.ypos", "5" },
{ "custom_87.frames", "1" },
- { "custom_87.EDITOR", "RocksElements.pcx" },
- { "custom_87.EDITOR.xpos", "15" },
- { "custom_87.EDITOR.ypos", "13" },
+ { "custom_87.EDITOR", "RocksCE.pcx" },
+ { "custom_87.EDITOR.xpos", "22" },
+ { "custom_87.EDITOR.ypos", "5" },
- { "custom_88", "RocksElements.pcx" },
+ { "custom_88", "RocksCE.pcx" },
{ "custom_88.xpos", "7" },
- { "custom_88.ypos", "9" },
+ { "custom_88.ypos", "5" },
{ "custom_88.frames", "1" },
- { "custom_88.EDITOR", "RocksElements.pcx" },
- { "custom_88.EDITOR.xpos", "15" },
- { "custom_88.EDITOR.ypos", "13" },
+ { "custom_88.EDITOR", "RocksCE.pcx" },
+ { "custom_88.EDITOR.xpos", "23" },
+ { "custom_88.EDITOR.ypos", "5" },
- { "custom_89", "RocksElements.pcx" },
- { "custom_89.xpos", "7" },
- { "custom_89.ypos", "9" },
+ { "custom_89", "RocksCE.pcx" },
+ { "custom_89.xpos", "8" },
+ { "custom_89.ypos", "5" },
{ "custom_89.frames", "1" },
- { "custom_89.EDITOR", "RocksElements.pcx" },
- { "custom_89.EDITOR.xpos", "15" },
- { "custom_89.EDITOR.ypos", "13" },
+ { "custom_89.EDITOR", "RocksCE.pcx" },
+ { "custom_89.EDITOR.xpos", "24" },
+ { "custom_89.EDITOR.ypos", "5" },
- { "custom_90", "RocksElements.pcx" },
- { "custom_90.xpos", "7" },
- { "custom_90.ypos", "9" },
+ { "custom_90", "RocksCE.pcx" },
+ { "custom_90.xpos", "9" },
+ { "custom_90.ypos", "5" },
{ "custom_90.frames", "1" },
- { "custom_90.EDITOR", "RocksElements.pcx" },
- { "custom_90.EDITOR.xpos", "15" },
- { "custom_90.EDITOR.ypos", "13" },
+ { "custom_90.EDITOR", "RocksCE.pcx" },
+ { "custom_90.EDITOR.xpos", "25" },
+ { "custom_90.EDITOR.ypos", "5" },
- { "custom_91", "RocksElements.pcx" },
- { "custom_91.xpos", "7" },
- { "custom_91.ypos", "9" },
+ { "custom_91", "RocksCE.pcx" },
+ { "custom_91.xpos", "10" },
+ { "custom_91.ypos", "5" },
{ "custom_91.frames", "1" },
- { "custom_91.EDITOR", "RocksElements.pcx" },
- { "custom_91.EDITOR.xpos", "15" },
- { "custom_91.EDITOR.ypos", "13" },
+ { "custom_91.EDITOR", "RocksCE.pcx" },
+ { "custom_91.EDITOR.xpos", "26" },
+ { "custom_91.EDITOR.ypos", "5" },
- { "custom_92", "RocksElements.pcx" },
- { "custom_92.xpos", "7" },
- { "custom_92.ypos", "9" },
+ { "custom_92", "RocksCE.pcx" },
+ { "custom_92.xpos", "11" },
+ { "custom_92.ypos", "5" },
{ "custom_92.frames", "1" },
- { "custom_92.EDITOR", "RocksElements.pcx" },
- { "custom_92.EDITOR.xpos", "15" },
- { "custom_92.EDITOR.ypos", "13" },
+ { "custom_92.EDITOR", "RocksCE.pcx" },
+ { "custom_92.EDITOR.xpos", "27" },
+ { "custom_92.EDITOR.ypos", "5" },
- { "custom_93", "RocksElements.pcx" },
- { "custom_93.xpos", "7" },
- { "custom_93.ypos", "9" },
+ { "custom_93", "RocksCE.pcx" },
+ { "custom_93.xpos", "12" },
+ { "custom_93.ypos", "5" },
{ "custom_93.frames", "1" },
- { "custom_93.EDITOR", "RocksElements.pcx" },
- { "custom_93.EDITOR.xpos", "15" },
- { "custom_93.EDITOR.ypos", "13" },
+ { "custom_93.EDITOR", "RocksCE.pcx" },
+ { "custom_93.EDITOR.xpos", "28" },
+ { "custom_93.EDITOR.ypos", "5" },
- { "custom_94", "RocksElements.pcx" },
- { "custom_94.xpos", "7" },
- { "custom_94.ypos", "9" },
+ { "custom_94", "RocksCE.pcx" },
+ { "custom_94.xpos", "13" },
+ { "custom_94.ypos", "5" },
{ "custom_94.frames", "1" },
- { "custom_94.EDITOR", "RocksElements.pcx" },
- { "custom_94.EDITOR.xpos", "15" },
- { "custom_94.EDITOR.ypos", "13" },
+ { "custom_94.EDITOR", "RocksCE.pcx" },
+ { "custom_94.EDITOR.xpos", "29" },
+ { "custom_94.EDITOR.ypos", "5" },
- { "custom_95", "RocksElements.pcx" },
- { "custom_95.xpos", "7" },
- { "custom_95.ypos", "9" },
+ { "custom_95", "RocksCE.pcx" },
+ { "custom_95.xpos", "14" },
+ { "custom_95.ypos", "5" },
{ "custom_95.frames", "1" },
- { "custom_95.EDITOR", "RocksElements.pcx" },
- { "custom_95.EDITOR.xpos", "15" },
- { "custom_95.EDITOR.ypos", "13" },
+ { "custom_95.EDITOR", "RocksCE.pcx" },
+ { "custom_95.EDITOR.xpos", "30" },
+ { "custom_95.EDITOR.ypos", "5" },
- { "custom_96", "RocksElements.pcx" },
- { "custom_96.xpos", "7" },
- { "custom_96.ypos", "9" },
+ { "custom_96", "RocksCE.pcx" },
+ { "custom_96.xpos", "15" },
+ { "custom_96.ypos", "5" },
{ "custom_96.frames", "1" },
- { "custom_96.EDITOR", "RocksElements.pcx" },
- { "custom_96.EDITOR.xpos", "15" },
- { "custom_96.EDITOR.ypos", "13" },
+ { "custom_96.EDITOR", "RocksCE.pcx" },
+ { "custom_96.EDITOR.xpos", "31" },
+ { "custom_96.EDITOR.ypos", "5" },
- { "custom_97", "RocksElements.pcx" },
- { "custom_97.xpos", "7" },
- { "custom_97.ypos", "9" },
+ { "custom_97", "RocksCE.pcx" },
+ { "custom_97.xpos", "0" },
+ { "custom_97.ypos", "6" },
{ "custom_97.frames", "1" },
- { "custom_97.EDITOR", "RocksElements.pcx" },
- { "custom_97.EDITOR.xpos", "15" },
- { "custom_97.EDITOR.ypos", "13" },
+ { "custom_97.EDITOR", "RocksCE.pcx" },
+ { "custom_97.EDITOR.xpos", "16" },
+ { "custom_97.EDITOR.ypos", "6" },
- { "custom_98", "RocksElements.pcx" },
- { "custom_98.xpos", "7" },
- { "custom_98.ypos", "9" },
+ { "custom_98", "RocksCE.pcx" },
+ { "custom_98.xpos", "1" },
+ { "custom_98.ypos", "6" },
{ "custom_98.frames", "1" },
- { "custom_98.EDITOR", "RocksElements.pcx" },
- { "custom_98.EDITOR.xpos", "15" },
- { "custom_98.EDITOR.ypos", "13" },
+ { "custom_98.EDITOR", "RocksCE.pcx" },
+ { "custom_98.EDITOR.xpos", "17" },
+ { "custom_98.EDITOR.ypos", "6" },
- { "custom_99", "RocksElements.pcx" },
- { "custom_99.xpos", "7" },
- { "custom_99.ypos", "9" },
+ { "custom_99", "RocksCE.pcx" },
+ { "custom_99.xpos", "2" },
+ { "custom_99.ypos", "6" },
{ "custom_99.frames", "1" },
- { "custom_99.EDITOR", "RocksElements.pcx" },
- { "custom_99.EDITOR.xpos", "15" },
- { "custom_99.EDITOR.ypos", "13" },
+ { "custom_99.EDITOR", "RocksCE.pcx" },
+ { "custom_99.EDITOR.xpos", "18" },
+ { "custom_99.EDITOR.ypos", "6" },
- { "custom_100", "RocksElements.pcx" },
- { "custom_100.xpos", "7" },
- { "custom_100.ypos", "9" },
+ { "custom_100", "RocksCE.pcx" },
+ { "custom_100.xpos", "3" },
+ { "custom_100.ypos", "6" },
{ "custom_100.frames", "1" },
- { "custom_100.EDITOR", "RocksElements.pcx" },
- { "custom_100.EDITOR.xpos", "15" },
- { "custom_100.EDITOR.ypos", "13" },
+ { "custom_100.EDITOR", "RocksCE.pcx" },
+ { "custom_100.EDITOR.xpos", "19" },
+ { "custom_100.EDITOR.ypos", "6" },
- { "custom_101", "RocksElements.pcx" },
- { "custom_101.xpos", "7" },
- { "custom_101.ypos", "9" },
+ { "custom_101", "RocksCE.pcx" },
+ { "custom_101.xpos", "4" },
+ { "custom_101.ypos", "6" },
{ "custom_101.frames", "1" },
- { "custom_101.EDITOR", "RocksElements.pcx" },
- { "custom_101.EDITOR.xpos", "15" },
- { "custom_101.EDITOR.ypos", "13" },
+ { "custom_101.EDITOR", "RocksCE.pcx" },
+ { "custom_101.EDITOR.xpos", "20" },
+ { "custom_101.EDITOR.ypos", "6" },
- { "custom_102", "RocksElements.pcx" },
- { "custom_102.xpos", "7" },
- { "custom_102.ypos", "9" },
+ { "custom_102", "RocksCE.pcx" },
+ { "custom_102.xpos", "5" },
+ { "custom_102.ypos", "6" },
{ "custom_102.frames", "1" },
- { "custom_102.EDITOR", "RocksElements.pcx" },
- { "custom_102.EDITOR.xpos", "15" },
- { "custom_102.EDITOR.ypos", "13" },
+ { "custom_102.EDITOR", "RocksCE.pcx" },
+ { "custom_102.EDITOR.xpos", "21" },
+ { "custom_102.EDITOR.ypos", "6" },
- { "custom_103", "RocksElements.pcx" },
- { "custom_103.xpos", "7" },
- { "custom_103.ypos", "9" },
+ { "custom_103", "RocksCE.pcx" },
+ { "custom_103.xpos", "6" },
+ { "custom_103.ypos", "6" },
{ "custom_103.frames", "1" },
- { "custom_103.EDITOR", "RocksElements.pcx" },
- { "custom_103.EDITOR.xpos", "15" },
- { "custom_103.EDITOR.ypos", "13" },
+ { "custom_103.EDITOR", "RocksCE.pcx" },
+ { "custom_103.EDITOR.xpos", "22" },
+ { "custom_103.EDITOR.ypos", "6" },
- { "custom_104", "RocksElements.pcx" },
+ { "custom_104", "RocksCE.pcx" },
{ "custom_104.xpos", "7" },
- { "custom_104.ypos", "9" },
+ { "custom_104.ypos", "6" },
{ "custom_104.frames", "1" },
- { "custom_104.EDITOR", "RocksElements.pcx" },
- { "custom_104.EDITOR.xpos", "15" },
- { "custom_104.EDITOR.ypos", "13" },
+ { "custom_104.EDITOR", "RocksCE.pcx" },
+ { "custom_104.EDITOR.xpos", "23" },
+ { "custom_104.EDITOR.ypos", "6" },
- { "custom_105", "RocksElements.pcx" },
- { "custom_105.xpos", "7" },
- { "custom_105.ypos", "9" },
+ { "custom_105", "RocksCE.pcx" },
+ { "custom_105.xpos", "8" },
+ { "custom_105.ypos", "6" },
{ "custom_105.frames", "1" },
- { "custom_105.EDITOR", "RocksElements.pcx" },
- { "custom_105.EDITOR.xpos", "15" },
- { "custom_105.EDITOR.ypos", "13" },
+ { "custom_105.EDITOR", "RocksCE.pcx" },
+ { "custom_105.EDITOR.xpos", "24" },
+ { "custom_105.EDITOR.ypos", "6" },
- { "custom_106", "RocksElements.pcx" },
- { "custom_106.xpos", "7" },
- { "custom_106.ypos", "9" },
+ { "custom_106", "RocksCE.pcx" },
+ { "custom_106.xpos", "9" },
+ { "custom_106.ypos", "6" },
{ "custom_106.frames", "1" },
- { "custom_106.EDITOR", "RocksElements.pcx" },
- { "custom_106.EDITOR.xpos", "15" },
- { "custom_106.EDITOR.ypos", "13" },
+ { "custom_106.EDITOR", "RocksCE.pcx" },
+ { "custom_106.EDITOR.xpos", "25" },
+ { "custom_106.EDITOR.ypos", "6" },
- { "custom_107", "RocksElements.pcx" },
- { "custom_107.xpos", "7" },
- { "custom_107.ypos", "9" },
+ { "custom_107", "RocksCE.pcx" },
+ { "custom_107.xpos", "10" },
+ { "custom_107.ypos", "6" },
{ "custom_107.frames", "1" },
- { "custom_107.EDITOR", "RocksElements.pcx" },
- { "custom_107.EDITOR.xpos", "15" },
- { "custom_107.EDITOR.ypos", "13" },
+ { "custom_107.EDITOR", "RocksCE.pcx" },
+ { "custom_107.EDITOR.xpos", "26" },
+ { "custom_107.EDITOR.ypos", "6" },
- { "custom_108", "RocksElements.pcx" },
- { "custom_108.xpos", "7" },
- { "custom_108.ypos", "9" },
+ { "custom_108", "RocksCE.pcx" },
+ { "custom_108.xpos", "11" },
+ { "custom_108.ypos", "6" },
{ "custom_108.frames", "1" },
- { "custom_108.EDITOR", "RocksElements.pcx" },
- { "custom_108.EDITOR.xpos", "15" },
- { "custom_108.EDITOR.ypos", "13" },
+ { "custom_108.EDITOR", "RocksCE.pcx" },
+ { "custom_108.EDITOR.xpos", "27" },
+ { "custom_108.EDITOR.ypos", "6" },
- { "custom_109", "RocksElements.pcx" },
- { "custom_109.xpos", "7" },
- { "custom_109.ypos", "9" },
+ { "custom_109", "RocksCE.pcx" },
+ { "custom_109.xpos", "12" },
+ { "custom_109.ypos", "6" },
{ "custom_109.frames", "1" },
- { "custom_109.EDITOR", "RocksElements.pcx" },
- { "custom_109.EDITOR.xpos", "15" },
- { "custom_109.EDITOR.ypos", "13" },
+ { "custom_109.EDITOR", "RocksCE.pcx" },
+ { "custom_109.EDITOR.xpos", "28" },
+ { "custom_109.EDITOR.ypos", "6" },
- { "custom_110", "RocksElements.pcx" },
- { "custom_110.xpos", "7" },
- { "custom_110.ypos", "9" },
+ { "custom_110", "RocksCE.pcx" },
+ { "custom_110.xpos", "13" },
+ { "custom_110.ypos", "6" },
{ "custom_110.frames", "1" },
- { "custom_110.EDITOR", "RocksElements.pcx" },
- { "custom_110.EDITOR.xpos", "15" },
- { "custom_110.EDITOR.ypos", "13" },
+ { "custom_110.EDITOR", "RocksCE.pcx" },
+ { "custom_110.EDITOR.xpos", "29" },
+ { "custom_110.EDITOR.ypos", "6" },
- { "custom_111", "RocksElements.pcx" },
- { "custom_111.xpos", "7" },
- { "custom_111.ypos", "9" },
+ { "custom_111", "RocksCE.pcx" },
+ { "custom_111.xpos", "14" },
+ { "custom_111.ypos", "6" },
{ "custom_111.frames", "1" },
- { "custom_111.EDITOR", "RocksElements.pcx" },
- { "custom_111.EDITOR.xpos", "15" },
- { "custom_111.EDITOR.ypos", "13" },
+ { "custom_111.EDITOR", "RocksCE.pcx" },
+ { "custom_111.EDITOR.xpos", "30" },
+ { "custom_111.EDITOR.ypos", "6" },
- { "custom_112", "RocksElements.pcx" },
- { "custom_112.xpos", "7" },
- { "custom_112.ypos", "9" },
+ { "custom_112", "RocksCE.pcx" },
+ { "custom_112.xpos", "15" },
+ { "custom_112.ypos", "6" },
{ "custom_112.frames", "1" },
- { "custom_112.EDITOR", "RocksElements.pcx" },
- { "custom_112.EDITOR.xpos", "15" },
- { "custom_112.EDITOR.ypos", "13" },
+ { "custom_112.EDITOR", "RocksCE.pcx" },
+ { "custom_112.EDITOR.xpos", "31" },
+ { "custom_112.EDITOR.ypos", "6" },
- { "custom_113", "RocksElements.pcx" },
- { "custom_113.xpos", "7" },
- { "custom_113.ypos", "9" },
+ { "custom_113", "RocksCE.pcx" },
+ { "custom_113.xpos", "0" },
+ { "custom_113.ypos", "7" },
{ "custom_113.frames", "1" },
- { "custom_113.EDITOR", "RocksElements.pcx" },
- { "custom_113.EDITOR.xpos", "15" },
- { "custom_113.EDITOR.ypos", "13" },
+ { "custom_113.EDITOR", "RocksCE.pcx" },
+ { "custom_113.EDITOR.xpos", "16" },
+ { "custom_113.EDITOR.ypos", "7" },
- { "custom_114", "RocksElements.pcx" },
- { "custom_114.xpos", "7" },
- { "custom_114.ypos", "9" },
+ { "custom_114", "RocksCE.pcx" },
+ { "custom_114.xpos", "1" },
+ { "custom_114.ypos", "7" },
{ "custom_114.frames", "1" },
- { "custom_114.EDITOR", "RocksElements.pcx" },
- { "custom_114.EDITOR.xpos", "15" },
- { "custom_114.EDITOR.ypos", "13" },
+ { "custom_114.EDITOR", "RocksCE.pcx" },
+ { "custom_114.EDITOR.xpos", "17" },
+ { "custom_114.EDITOR.ypos", "7" },
- { "custom_115", "RocksElements.pcx" },
- { "custom_115.xpos", "7" },
- { "custom_115.ypos", "9" },
+ { "custom_115", "RocksCE.pcx" },
+ { "custom_115.xpos", "2" },
+ { "custom_115.ypos", "7" },
{ "custom_115.frames", "1" },
- { "custom_115.EDITOR", "RocksElements.pcx" },
- { "custom_115.EDITOR.xpos", "15" },
- { "custom_115.EDITOR.ypos", "13" },
+ { "custom_115.EDITOR", "RocksCE.pcx" },
+ { "custom_115.EDITOR.xpos", "18" },
+ { "custom_115.EDITOR.ypos", "7" },
- { "custom_116", "RocksElements.pcx" },
- { "custom_116.xpos", "7" },
- { "custom_116.ypos", "9" },
+ { "custom_116", "RocksCE.pcx" },
+ { "custom_116.xpos", "3" },
+ { "custom_116.ypos", "7" },
{ "custom_116.frames", "1" },
- { "custom_116.EDITOR", "RocksElements.pcx" },
- { "custom_116.EDITOR.xpos", "15" },
- { "custom_116.EDITOR.ypos", "13" },
+ { "custom_116.EDITOR", "RocksCE.pcx" },
+ { "custom_116.EDITOR.xpos", "19" },
+ { "custom_116.EDITOR.ypos", "7" },
- { "custom_117", "RocksElements.pcx" },
- { "custom_117.xpos", "7" },
- { "custom_117.ypos", "9" },
+ { "custom_117", "RocksCE.pcx" },
+ { "custom_117.xpos", "4" },
+ { "custom_117.ypos", "7" },
{ "custom_117.frames", "1" },
- { "custom_117.EDITOR", "RocksElements.pcx" },
- { "custom_117.EDITOR.xpos", "15" },
- { "custom_117.EDITOR.ypos", "13" },
+ { "custom_117.EDITOR", "RocksCE.pcx" },
+ { "custom_117.EDITOR.xpos", "20" },
+ { "custom_117.EDITOR.ypos", "7" },
- { "custom_118", "RocksElements.pcx" },
- { "custom_118.xpos", "7" },
- { "custom_118.ypos", "9" },
+ { "custom_118", "RocksCE.pcx" },
+ { "custom_118.xpos", "5" },
+ { "custom_118.ypos", "7" },
{ "custom_118.frames", "1" },
- { "custom_118.EDITOR", "RocksElements.pcx" },
- { "custom_118.EDITOR.xpos", "15" },
- { "custom_118.EDITOR.ypos", "13" },
+ { "custom_118.EDITOR", "RocksCE.pcx" },
+ { "custom_118.EDITOR.xpos", "21" },
+ { "custom_118.EDITOR.ypos", "7" },
- { "custom_119", "RocksElements.pcx" },
- { "custom_119.xpos", "7" },
- { "custom_119.ypos", "9" },
+ { "custom_119", "RocksCE.pcx" },
+ { "custom_119.xpos", "6" },
+ { "custom_119.ypos", "7" },
{ "custom_119.frames", "1" },
- { "custom_119.EDITOR", "RocksElements.pcx" },
- { "custom_119.EDITOR.xpos", "15" },
- { "custom_119.EDITOR.ypos", "13" },
+ { "custom_119.EDITOR", "RocksCE.pcx" },
+ { "custom_119.EDITOR.xpos", "22" },
+ { "custom_119.EDITOR.ypos", "7" },
- { "custom_120", "RocksElements.pcx" },
+ { "custom_120", "RocksCE.pcx" },
{ "custom_120.xpos", "7" },
- { "custom_120.ypos", "9" },
+ { "custom_120.ypos", "7" },
{ "custom_120.frames", "1" },
- { "custom_120.EDITOR", "RocksElements.pcx" },
- { "custom_120.EDITOR.xpos", "15" },
- { "custom_120.EDITOR.ypos", "13" },
+ { "custom_120.EDITOR", "RocksCE.pcx" },
+ { "custom_120.EDITOR.xpos", "23" },
+ { "custom_120.EDITOR.ypos", "7" },
- { "custom_121", "RocksElements.pcx" },
- { "custom_121.xpos", "7" },
- { "custom_121.ypos", "9" },
+ { "custom_121", "RocksCE.pcx" },
+ { "custom_121.xpos", "8" },
+ { "custom_121.ypos", "7" },
{ "custom_121.frames", "1" },
- { "custom_121.EDITOR", "RocksElements.pcx" },
- { "custom_121.EDITOR.xpos", "15" },
- { "custom_121.EDITOR.ypos", "13" },
+ { "custom_121.EDITOR", "RocksCE.pcx" },
+ { "custom_121.EDITOR.xpos", "24" },
+ { "custom_121.EDITOR.ypos", "7" },
- { "custom_122", "RocksElements.pcx" },
- { "custom_122.xpos", "7" },
- { "custom_122.ypos", "9" },
+ { "custom_122", "RocksCE.pcx" },
+ { "custom_122.xpos", "9" },
+ { "custom_122.ypos", "7" },
{ "custom_122.frames", "1" },
- { "custom_122.EDITOR", "RocksElements.pcx" },
- { "custom_122.EDITOR.xpos", "15" },
- { "custom_122.EDITOR.ypos", "13" },
+ { "custom_122.EDITOR", "RocksCE.pcx" },
+ { "custom_122.EDITOR.xpos", "25" },
+ { "custom_122.EDITOR.ypos", "7" },
- { "custom_123", "RocksElements.pcx" },
- { "custom_123.xpos", "7" },
- { "custom_123.ypos", "9" },
+ { "custom_123", "RocksCE.pcx" },
+ { "custom_123.xpos", "10" },
+ { "custom_123.ypos", "7" },
{ "custom_123.frames", "1" },
- { "custom_123.EDITOR", "RocksElements.pcx" },
- { "custom_123.EDITOR.xpos", "15" },
- { "custom_123.EDITOR.ypos", "13" },
+ { "custom_123.EDITOR", "RocksCE.pcx" },
+ { "custom_123.EDITOR.xpos", "26" },
+ { "custom_123.EDITOR.ypos", "7" },
- { "custom_124", "RocksElements.pcx" },
- { "custom_124.xpos", "7" },
- { "custom_124.ypos", "9" },
+ { "custom_124", "RocksCE.pcx" },
+ { "custom_124.xpos", "11" },
+ { "custom_124.ypos", "7" },
{ "custom_124.frames", "1" },
- { "custom_124.EDITOR", "RocksElements.pcx" },
- { "custom_124.EDITOR.xpos", "15" },
- { "custom_124.EDITOR.ypos", "13" },
+ { "custom_124.EDITOR", "RocksCE.pcx" },
+ { "custom_124.EDITOR.xpos", "27" },
+ { "custom_124.EDITOR.ypos", "7" },
- { "custom_125", "RocksElements.pcx" },
- { "custom_125.xpos", "7" },
- { "custom_125.ypos", "9" },
+ { "custom_125", "RocksCE.pcx" },
+ { "custom_125.xpos", "12" },
+ { "custom_125.ypos", "7" },
{ "custom_125.frames", "1" },
- { "custom_125.EDITOR", "RocksElements.pcx" },
- { "custom_125.EDITOR.xpos", "15" },
- { "custom_125.EDITOR.ypos", "13" },
+ { "custom_125.EDITOR", "RocksCE.pcx" },
+ { "custom_125.EDITOR.xpos", "28" },
+ { "custom_125.EDITOR.ypos", "7" },
- { "custom_126", "RocksElements.pcx" },
- { "custom_126.xpos", "7" },
- { "custom_126.ypos", "9" },
+ { "custom_126", "RocksCE.pcx" },
+ { "custom_126.xpos", "13" },
+ { "custom_126.ypos", "7" },
{ "custom_126.frames", "1" },
- { "custom_126.EDITOR", "RocksElements.pcx" },
- { "custom_126.EDITOR.xpos", "15" },
- { "custom_126.EDITOR.ypos", "13" },
+ { "custom_126.EDITOR", "RocksCE.pcx" },
+ { "custom_126.EDITOR.xpos", "29" },
+ { "custom_126.EDITOR.ypos", "7" },
- { "custom_127", "RocksElements.pcx" },
- { "custom_127.xpos", "7" },
- { "custom_127.ypos", "9" },
+ { "custom_127", "RocksCE.pcx" },
+ { "custom_127.xpos", "14" },
+ { "custom_127.ypos", "7" },
{ "custom_127.frames", "1" },
- { "custom_127.EDITOR", "RocksElements.pcx" },
- { "custom_127.EDITOR.xpos", "15" },
- { "custom_127.EDITOR.ypos", "13" },
+ { "custom_127.EDITOR", "RocksCE.pcx" },
+ { "custom_127.EDITOR.xpos", "30" },
+ { "custom_127.EDITOR.ypos", "7" },
- { "custom_128", "RocksElements.pcx" },
- { "custom_128.xpos", "7" },
- { "custom_128.ypos", "9" },
+ { "custom_128", "RocksCE.pcx" },
+ { "custom_128.xpos", "15" },
+ { "custom_128.ypos", "7" },
{ "custom_128.frames", "1" },
- { "custom_128.EDITOR", "RocksElements.pcx" },
- { "custom_128.EDITOR.xpos", "15" },
- { "custom_128.EDITOR.ypos", "13" },
+ { "custom_128.EDITOR", "RocksCE.pcx" },
+ { "custom_128.EDITOR.xpos", "31" },
+ { "custom_128.EDITOR.ypos", "7" },
- { "custom_129", "RocksElements.pcx" },
- { "custom_129.xpos", "7" },
- { "custom_129.ypos", "9" },
+ { "custom_129", "RocksCE.pcx" },
+ { "custom_129.xpos", "0" },
+ { "custom_129.ypos", "8" },
{ "custom_129.frames", "1" },
- { "custom_129.EDITOR", "RocksElements.pcx" },
- { "custom_129.EDITOR.xpos", "15" },
- { "custom_129.EDITOR.ypos", "13" },
+ { "custom_129.EDITOR", "RocksCE.pcx" },
+ { "custom_129.EDITOR.xpos", "16" },
+ { "custom_129.EDITOR.ypos", "8" },
- { "custom_130", "RocksElements.pcx" },
- { "custom_130.xpos", "7" },
- { "custom_130.ypos", "9" },
+ { "custom_130", "RocksCE.pcx" },
+ { "custom_130.xpos", "1" },
+ { "custom_130.ypos", "8" },
{ "custom_130.frames", "1" },
- { "custom_130.EDITOR", "RocksElements.pcx" },
- { "custom_130.EDITOR.xpos", "15" },
- { "custom_130.EDITOR.ypos", "13" },
+ { "custom_130.EDITOR", "RocksCE.pcx" },
+ { "custom_130.EDITOR.xpos", "17" },
+ { "custom_130.EDITOR.ypos", "8" },
- { "custom_131", "RocksElements.pcx" },
- { "custom_131.xpos", "7" },
- { "custom_131.ypos", "9" },
+ { "custom_131", "RocksCE.pcx" },
+ { "custom_131.xpos", "2" },
+ { "custom_131.ypos", "8" },
{ "custom_131.frames", "1" },
- { "custom_131.EDITOR", "RocksElements.pcx" },
- { "custom_131.EDITOR.xpos", "15" },
- { "custom_131.EDITOR.ypos", "13" },
+ { "custom_131.EDITOR", "RocksCE.pcx" },
+ { "custom_131.EDITOR.xpos", "18" },
+ { "custom_131.EDITOR.ypos", "8" },
- { "custom_132", "RocksElements.pcx" },
- { "custom_132.xpos", "7" },
- { "custom_132.ypos", "9" },
+ { "custom_132", "RocksCE.pcx" },
+ { "custom_132.xpos", "3" },
+ { "custom_132.ypos", "8" },
{ "custom_132.frames", "1" },
- { "custom_132.EDITOR", "RocksElements.pcx" },
- { "custom_132.EDITOR.xpos", "15" },
- { "custom_132.EDITOR.ypos", "13" },
+ { "custom_132.EDITOR", "RocksCE.pcx" },
+ { "custom_132.EDITOR.xpos", "19" },
+ { "custom_132.EDITOR.ypos", "8" },
- { "custom_133", "RocksElements.pcx" },
- { "custom_133.xpos", "7" },
- { "custom_133.ypos", "9" },
+ { "custom_133", "RocksCE.pcx" },
+ { "custom_133.xpos", "4" },
+ { "custom_133.ypos", "8" },
{ "custom_133.frames", "1" },
- { "custom_133.EDITOR", "RocksElements.pcx" },
- { "custom_133.EDITOR.xpos", "15" },
- { "custom_133.EDITOR.ypos", "13" },
+ { "custom_133.EDITOR", "RocksCE.pcx" },
+ { "custom_133.EDITOR.xpos", "20" },
+ { "custom_133.EDITOR.ypos", "8" },
- { "custom_134", "RocksElements.pcx" },
- { "custom_134.xpos", "7" },
- { "custom_134.ypos", "9" },
+ { "custom_134", "RocksCE.pcx" },
+ { "custom_134.xpos", "5" },
+ { "custom_134.ypos", "8" },
{ "custom_134.frames", "1" },
- { "custom_134.EDITOR", "RocksElements.pcx" },
- { "custom_134.EDITOR.xpos", "15" },
- { "custom_134.EDITOR.ypos", "13" },
+ { "custom_134.EDITOR", "RocksCE.pcx" },
+ { "custom_134.EDITOR.xpos", "21" },
+ { "custom_134.EDITOR.ypos", "8" },
- { "custom_135", "RocksElements.pcx" },
- { "custom_135.xpos", "7" },
- { "custom_135.ypos", "9" },
+ { "custom_135", "RocksCE.pcx" },
+ { "custom_135.xpos", "6" },
+ { "custom_135.ypos", "8" },
{ "custom_135.frames", "1" },
- { "custom_135.EDITOR", "RocksElements.pcx" },
- { "custom_135.EDITOR.xpos", "15" },
- { "custom_135.EDITOR.ypos", "13" },
+ { "custom_135.EDITOR", "RocksCE.pcx" },
+ { "custom_135.EDITOR.xpos", "22" },
+ { "custom_135.EDITOR.ypos", "8" },
- { "custom_136", "RocksElements.pcx" },
+ { "custom_136", "RocksCE.pcx" },
{ "custom_136.xpos", "7" },
- { "custom_136.ypos", "9" },
+ { "custom_136.ypos", "8" },
{ "custom_136.frames", "1" },
- { "custom_136.EDITOR", "RocksElements.pcx" },
- { "custom_136.EDITOR.xpos", "15" },
- { "custom_136.EDITOR.ypos", "13" },
+ { "custom_136.EDITOR", "RocksCE.pcx" },
+ { "custom_136.EDITOR.xpos", "23" },
+ { "custom_136.EDITOR.ypos", "8" },
- { "custom_137", "RocksElements.pcx" },
- { "custom_137.xpos", "7" },
- { "custom_137.ypos", "9" },
+ { "custom_137", "RocksCE.pcx" },
+ { "custom_137.xpos", "8" },
+ { "custom_137.ypos", "8" },
{ "custom_137.frames", "1" },
- { "custom_137.EDITOR", "RocksElements.pcx" },
- { "custom_137.EDITOR.xpos", "15" },
- { "custom_137.EDITOR.ypos", "13" },
+ { "custom_137.EDITOR", "RocksCE.pcx" },
+ { "custom_137.EDITOR.xpos", "24" },
+ { "custom_137.EDITOR.ypos", "8" },
- { "custom_138", "RocksElements.pcx" },
- { "custom_138.xpos", "7" },
- { "custom_138.ypos", "9" },
+ { "custom_138", "RocksCE.pcx" },
+ { "custom_138.xpos", "9" },
+ { "custom_138.ypos", "8" },
{ "custom_138.frames", "1" },
- { "custom_138.EDITOR", "RocksElements.pcx" },
- { "custom_138.EDITOR.xpos", "15" },
- { "custom_138.EDITOR.ypos", "13" },
+ { "custom_138.EDITOR", "RocksCE.pcx" },
+ { "custom_138.EDITOR.xpos", "25" },
+ { "custom_138.EDITOR.ypos", "8" },
- { "custom_139", "RocksElements.pcx" },
- { "custom_139.xpos", "7" },
- { "custom_139.ypos", "9" },
+ { "custom_139", "RocksCE.pcx" },
+ { "custom_139.xpos", "10" },
+ { "custom_139.ypos", "8" },
{ "custom_139.frames", "1" },
- { "custom_139.EDITOR", "RocksElements.pcx" },
- { "custom_139.EDITOR.xpos", "15" },
- { "custom_139.EDITOR.ypos", "13" },
+ { "custom_139.EDITOR", "RocksCE.pcx" },
+ { "custom_139.EDITOR.xpos", "26" },
+ { "custom_139.EDITOR.ypos", "8" },
- { "custom_140", "RocksElements.pcx" },
- { "custom_140.xpos", "7" },
- { "custom_140.ypos", "9" },
+ { "custom_140", "RocksCE.pcx" },
+ { "custom_140.xpos", "11" },
+ { "custom_140.ypos", "8" },
{ "custom_140.frames", "1" },
- { "custom_140.EDITOR", "RocksElements.pcx" },
- { "custom_140.EDITOR.xpos", "15" },
- { "custom_140.EDITOR.ypos", "13" },
+ { "custom_140.EDITOR", "RocksCE.pcx" },
+ { "custom_140.EDITOR.xpos", "27" },
+ { "custom_140.EDITOR.ypos", "8" },
- { "custom_141", "RocksElements.pcx" },
- { "custom_141.xpos", "7" },
- { "custom_141.ypos", "9" },
+ { "custom_141", "RocksCE.pcx" },
+ { "custom_141.xpos", "12" },
+ { "custom_141.ypos", "8" },
{ "custom_141.frames", "1" },
- { "custom_141.EDITOR", "RocksElements.pcx" },
- { "custom_141.EDITOR.xpos", "15" },
- { "custom_141.EDITOR.ypos", "13" },
+ { "custom_141.EDITOR", "RocksCE.pcx" },
+ { "custom_141.EDITOR.xpos", "28" },
+ { "custom_141.EDITOR.ypos", "8" },
- { "custom_142", "RocksElements.pcx" },
- { "custom_142.xpos", "7" },
- { "custom_142.ypos", "9" },
+ { "custom_142", "RocksCE.pcx" },
+ { "custom_142.xpos", "13" },
+ { "custom_142.ypos", "8" },
{ "custom_142.frames", "1" },
- { "custom_142.EDITOR", "RocksElements.pcx" },
- { "custom_142.EDITOR.xpos", "15" },
- { "custom_142.EDITOR.ypos", "13" },
+ { "custom_142.EDITOR", "RocksCE.pcx" },
+ { "custom_142.EDITOR.xpos", "29" },
+ { "custom_142.EDITOR.ypos", "8" },
- { "custom_143", "RocksElements.pcx" },
- { "custom_143.xpos", "7" },
- { "custom_143.ypos", "9" },
+ { "custom_143", "RocksCE.pcx" },
+ { "custom_143.xpos", "14" },
+ { "custom_143.ypos", "8" },
{ "custom_143.frames", "1" },
- { "custom_143.EDITOR", "RocksElements.pcx" },
- { "custom_143.EDITOR.xpos", "15" },
- { "custom_143.EDITOR.ypos", "13" },
+ { "custom_143.EDITOR", "RocksCE.pcx" },
+ { "custom_143.EDITOR.xpos", "30" },
+ { "custom_143.EDITOR.ypos", "8" },
- { "custom_144", "RocksElements.pcx" },
- { "custom_144.xpos", "7" },
- { "custom_144.ypos", "9" },
+ { "custom_144", "RocksCE.pcx" },
+ { "custom_144.xpos", "15" },
+ { "custom_144.ypos", "8" },
{ "custom_144.frames", "1" },
- { "custom_144.EDITOR", "RocksElements.pcx" },
- { "custom_144.EDITOR.xpos", "15" },
- { "custom_144.EDITOR.ypos", "13" },
+ { "custom_144.EDITOR", "RocksCE.pcx" },
+ { "custom_144.EDITOR.xpos", "31" },
+ { "custom_144.EDITOR.ypos", "8" },
- { "custom_145", "RocksElements.pcx" },
- { "custom_145.xpos", "7" },
+ { "custom_145", "RocksCE.pcx" },
+ { "custom_145.xpos", "0" },
{ "custom_145.ypos", "9" },
{ "custom_145.frames", "1" },
- { "custom_145.EDITOR", "RocksElements.pcx" },
- { "custom_145.EDITOR.xpos", "15" },
- { "custom_145.EDITOR.ypos", "13" },
+ { "custom_145.EDITOR", "RocksCE.pcx" },
+ { "custom_145.EDITOR.xpos", "16" },
+ { "custom_145.EDITOR.ypos", "9" },
- { "custom_146", "RocksElements.pcx" },
- { "custom_146.xpos", "7" },
+ { "custom_146", "RocksCE.pcx" },
+ { "custom_146.xpos", "1" },
{ "custom_146.ypos", "9" },
{ "custom_146.frames", "1" },
- { "custom_146.EDITOR", "RocksElements.pcx" },
- { "custom_146.EDITOR.xpos", "15" },
- { "custom_146.EDITOR.ypos", "13" },
+ { "custom_146.EDITOR", "RocksCE.pcx" },
+ { "custom_146.EDITOR.xpos", "17" },
+ { "custom_146.EDITOR.ypos", "9" },
- { "custom_147", "RocksElements.pcx" },
- { "custom_147.xpos", "7" },
+ { "custom_147", "RocksCE.pcx" },
+ { "custom_147.xpos", "2" },
{ "custom_147.ypos", "9" },
{ "custom_147.frames", "1" },
- { "custom_147.EDITOR", "RocksElements.pcx" },
- { "custom_147.EDITOR.xpos", "15" },
- { "custom_147.EDITOR.ypos", "13" },
+ { "custom_147.EDITOR", "RocksCE.pcx" },
+ { "custom_147.EDITOR.xpos", "18" },
+ { "custom_147.EDITOR.ypos", "9" },
- { "custom_148", "RocksElements.pcx" },
- { "custom_148.xpos", "7" },
+ { "custom_148", "RocksCE.pcx" },
+ { "custom_148.xpos", "3" },
{ "custom_148.ypos", "9" },
{ "custom_148.frames", "1" },
- { "custom_148.EDITOR", "RocksElements.pcx" },
- { "custom_148.EDITOR.xpos", "15" },
- { "custom_148.EDITOR.ypos", "13" },
+ { "custom_148.EDITOR", "RocksCE.pcx" },
+ { "custom_148.EDITOR.xpos", "19" },
+ { "custom_148.EDITOR.ypos", "9" },
- { "custom_149", "RocksElements.pcx" },
- { "custom_149.xpos", "7" },
+ { "custom_149", "RocksCE.pcx" },
+ { "custom_149.xpos", "4" },
{ "custom_149.ypos", "9" },
{ "custom_149.frames", "1" },
- { "custom_149.EDITOR", "RocksElements.pcx" },
- { "custom_149.EDITOR.xpos", "15" },
- { "custom_149.EDITOR.ypos", "13" },
+ { "custom_149.EDITOR", "RocksCE.pcx" },
+ { "custom_149.EDITOR.xpos", "20" },
+ { "custom_149.EDITOR.ypos", "9" },
- { "custom_150", "RocksElements.pcx" },
- { "custom_150.xpos", "7" },
+ { "custom_150", "RocksCE.pcx" },
+ { "custom_150.xpos", "5" },
{ "custom_150.ypos", "9" },
{ "custom_150.frames", "1" },
- { "custom_150.EDITOR", "RocksElements.pcx" },
- { "custom_150.EDITOR.xpos", "15" },
- { "custom_150.EDITOR.ypos", "13" },
+ { "custom_150.EDITOR", "RocksCE.pcx" },
+ { "custom_150.EDITOR.xpos", "21" },
+ { "custom_150.EDITOR.ypos", "9" },
- { "custom_151", "RocksElements.pcx" },
- { "custom_151.xpos", "7" },
+ { "custom_151", "RocksCE.pcx" },
+ { "custom_151.xpos", "6" },
{ "custom_151.ypos", "9" },
{ "custom_151.frames", "1" },
- { "custom_151.EDITOR", "RocksElements.pcx" },
- { "custom_151.EDITOR.xpos", "15" },
- { "custom_151.EDITOR.ypos", "13" },
+ { "custom_151.EDITOR", "RocksCE.pcx" },
+ { "custom_151.EDITOR.xpos", "22" },
+ { "custom_151.EDITOR.ypos", "9" },
- { "custom_152", "RocksElements.pcx" },
+ { "custom_152", "RocksCE.pcx" },
{ "custom_152.xpos", "7" },
{ "custom_152.ypos", "9" },
{ "custom_152.frames", "1" },
- { "custom_152.EDITOR", "RocksElements.pcx" },
- { "custom_152.EDITOR.xpos", "15" },
- { "custom_152.EDITOR.ypos", "13" },
+ { "custom_152.EDITOR", "RocksCE.pcx" },
+ { "custom_152.EDITOR.xpos", "23" },
+ { "custom_152.EDITOR.ypos", "9" },
- { "custom_153", "RocksElements.pcx" },
- { "custom_153.xpos", "7" },
+ { "custom_153", "RocksCE.pcx" },
+ { "custom_153.xpos", "8" },
{ "custom_153.ypos", "9" },
{ "custom_153.frames", "1" },
- { "custom_153.EDITOR", "RocksElements.pcx" },
- { "custom_153.EDITOR.xpos", "15" },
- { "custom_153.EDITOR.ypos", "13" },
+ { "custom_153.EDITOR", "RocksCE.pcx" },
+ { "custom_153.EDITOR.xpos", "24" },
+ { "custom_153.EDITOR.ypos", "9" },
- { "custom_154", "RocksElements.pcx" },
- { "custom_154.xpos", "7" },
+ { "custom_154", "RocksCE.pcx" },
+ { "custom_154.xpos", "9" },
{ "custom_154.ypos", "9" },
{ "custom_154.frames", "1" },
- { "custom_154.EDITOR", "RocksElements.pcx" },
- { "custom_154.EDITOR.xpos", "15" },
- { "custom_154.EDITOR.ypos", "13" },
+ { "custom_154.EDITOR", "RocksCE.pcx" },
+ { "custom_154.EDITOR.xpos", "25" },
+ { "custom_154.EDITOR.ypos", "9" },
- { "custom_155", "RocksElements.pcx" },
- { "custom_155.xpos", "7" },
+ { "custom_155", "RocksCE.pcx" },
+ { "custom_155.xpos", "10" },
{ "custom_155.ypos", "9" },
{ "custom_155.frames", "1" },
- { "custom_155.EDITOR", "RocksElements.pcx" },
- { "custom_155.EDITOR.xpos", "15" },
- { "custom_155.EDITOR.ypos", "13" },
+ { "custom_155.EDITOR", "RocksCE.pcx" },
+ { "custom_155.EDITOR.xpos", "26" },
+ { "custom_155.EDITOR.ypos", "9" },
- { "custom_156", "RocksElements.pcx" },
- { "custom_156.xpos", "7" },
+ { "custom_156", "RocksCE.pcx" },
+ { "custom_156.xpos", "11" },
{ "custom_156.ypos", "9" },
{ "custom_156.frames", "1" },
- { "custom_156.EDITOR", "RocksElements.pcx" },
- { "custom_156.EDITOR.xpos", "15" },
- { "custom_156.EDITOR.ypos", "13" },
+ { "custom_156.EDITOR", "RocksCE.pcx" },
+ { "custom_156.EDITOR.xpos", "27" },
+ { "custom_156.EDITOR.ypos", "9" },
- { "custom_157", "RocksElements.pcx" },
- { "custom_157.xpos", "7" },
+ { "custom_157", "RocksCE.pcx" },
+ { "custom_157.xpos", "12" },
{ "custom_157.ypos", "9" },
{ "custom_157.frames", "1" },
- { "custom_157.EDITOR", "RocksElements.pcx" },
- { "custom_157.EDITOR.xpos", "15" },
- { "custom_157.EDITOR.ypos", "13" },
+ { "custom_157.EDITOR", "RocksCE.pcx" },
+ { "custom_157.EDITOR.xpos", "28" },
+ { "custom_157.EDITOR.ypos", "9" },
- { "custom_158", "RocksElements.pcx" },
- { "custom_158.xpos", "7" },
+ { "custom_158", "RocksCE.pcx" },
+ { "custom_158.xpos", "13" },
{ "custom_158.ypos", "9" },
{ "custom_158.frames", "1" },
- { "custom_158.EDITOR", "RocksElements.pcx" },
- { "custom_158.EDITOR.xpos", "15" },
- { "custom_158.EDITOR.ypos", "13" },
+ { "custom_158.EDITOR", "RocksCE.pcx" },
+ { "custom_158.EDITOR.xpos", "29" },
+ { "custom_158.EDITOR.ypos", "9" },
- { "custom_159", "RocksElements.pcx" },
- { "custom_159.xpos", "7" },
+ { "custom_159", "RocksCE.pcx" },
+ { "custom_159.xpos", "14" },
{ "custom_159.ypos", "9" },
{ "custom_159.frames", "1" },
- { "custom_159.EDITOR", "RocksElements.pcx" },
- { "custom_159.EDITOR.xpos", "15" },
- { "custom_159.EDITOR.ypos", "13" },
+ { "custom_159.EDITOR", "RocksCE.pcx" },
+ { "custom_159.EDITOR.xpos", "30" },
+ { "custom_159.EDITOR.ypos", "9" },
- { "custom_160", "RocksElements.pcx" },
- { "custom_160.xpos", "7" },
+ { "custom_160", "RocksCE.pcx" },
+ { "custom_160.xpos", "15" },
{ "custom_160.ypos", "9" },
{ "custom_160.frames", "1" },
- { "custom_160.EDITOR", "RocksElements.pcx" },
- { "custom_160.EDITOR.xpos", "15" },
- { "custom_160.EDITOR.ypos", "13" },
+ { "custom_160.EDITOR", "RocksCE.pcx" },
+ { "custom_160.EDITOR.xpos", "31" },
+ { "custom_160.EDITOR.ypos", "9" },
- { "custom_161", "RocksElements.pcx" },
- { "custom_161.xpos", "7" },
- { "custom_161.ypos", "9" },
+ { "custom_161", "RocksCE.pcx" },
+ { "custom_161.xpos", "0" },
+ { "custom_161.ypos", "10" },
{ "custom_161.frames", "1" },
- { "custom_161.EDITOR", "RocksElements.pcx" },
- { "custom_161.EDITOR.xpos", "15" },
- { "custom_161.EDITOR.ypos", "13" },
+ { "custom_161.EDITOR", "RocksCE.pcx" },
+ { "custom_161.EDITOR.xpos", "16" },
+ { "custom_161.EDITOR.ypos", "10" },
- { "custom_162", "RocksElements.pcx" },
- { "custom_162.xpos", "7" },
- { "custom_162.ypos", "9" },
+ { "custom_162", "RocksCE.pcx" },
+ { "custom_162.xpos", "1" },
+ { "custom_162.ypos", "10" },
{ "custom_162.frames", "1" },
- { "custom_162.EDITOR", "RocksElements.pcx" },
- { "custom_162.EDITOR.xpos", "15" },
- { "custom_162.EDITOR.ypos", "13" },
+ { "custom_162.EDITOR", "RocksCE.pcx" },
+ { "custom_162.EDITOR.xpos", "17" },
+ { "custom_162.EDITOR.ypos", "10" },
- { "custom_163", "RocksElements.pcx" },
- { "custom_163.xpos", "7" },
- { "custom_163.ypos", "9" },
+ { "custom_163", "RocksCE.pcx" },
+ { "custom_163.xpos", "2" },
+ { "custom_163.ypos", "10" },
{ "custom_163.frames", "1" },
- { "custom_163.EDITOR", "RocksElements.pcx" },
- { "custom_163.EDITOR.xpos", "15" },
- { "custom_163.EDITOR.ypos", "13" },
+ { "custom_163.EDITOR", "RocksCE.pcx" },
+ { "custom_163.EDITOR.xpos", "18" },
+ { "custom_163.EDITOR.ypos", "10" },
- { "custom_164", "RocksElements.pcx" },
- { "custom_164.xpos", "7" },
- { "custom_164.ypos", "9" },
+ { "custom_164", "RocksCE.pcx" },
+ { "custom_164.xpos", "3" },
+ { "custom_164.ypos", "10" },
{ "custom_164.frames", "1" },
- { "custom_164.EDITOR", "RocksElements.pcx" },
- { "custom_164.EDITOR.xpos", "15" },
- { "custom_164.EDITOR.ypos", "13" },
+ { "custom_164.EDITOR", "RocksCE.pcx" },
+ { "custom_164.EDITOR.xpos", "19" },
+ { "custom_164.EDITOR.ypos", "10" },
- { "custom_165", "RocksElements.pcx" },
- { "custom_165.xpos", "7" },
- { "custom_165.ypos", "9" },
+ { "custom_165", "RocksCE.pcx" },
+ { "custom_165.xpos", "4" },
+ { "custom_165.ypos", "10" },
{ "custom_165.frames", "1" },
- { "custom_165.EDITOR", "RocksElements.pcx" },
- { "custom_165.EDITOR.xpos", "15" },
- { "custom_165.EDITOR.ypos", "13" },
+ { "custom_165.EDITOR", "RocksCE.pcx" },
+ { "custom_165.EDITOR.xpos", "20" },
+ { "custom_165.EDITOR.ypos", "10" },
- { "custom_166", "RocksElements.pcx" },
- { "custom_166.xpos", "7" },
- { "custom_166.ypos", "9" },
+ { "custom_166", "RocksCE.pcx" },
+ { "custom_166.xpos", "5" },
+ { "custom_166.ypos", "10" },
{ "custom_166.frames", "1" },
- { "custom_166.EDITOR", "RocksElements.pcx" },
- { "custom_166.EDITOR.xpos", "15" },
- { "custom_166.EDITOR.ypos", "13" },
+ { "custom_166.EDITOR", "RocksCE.pcx" },
+ { "custom_166.EDITOR.xpos", "21" },
+ { "custom_166.EDITOR.ypos", "10" },
- { "custom_167", "RocksElements.pcx" },
- { "custom_167.xpos", "7" },
- { "custom_167.ypos", "9" },
+ { "custom_167", "RocksCE.pcx" },
+ { "custom_167.xpos", "6" },
+ { "custom_167.ypos", "10" },
{ "custom_167.frames", "1" },
- { "custom_167.EDITOR", "RocksElements.pcx" },
- { "custom_167.EDITOR.xpos", "15" },
- { "custom_167.EDITOR.ypos", "13" },
+ { "custom_167.EDITOR", "RocksCE.pcx" },
+ { "custom_167.EDITOR.xpos", "22" },
+ { "custom_167.EDITOR.ypos", "10" },
- { "custom_168", "RocksElements.pcx" },
+ { "custom_168", "RocksCE.pcx" },
{ "custom_168.xpos", "7" },
- { "custom_168.ypos", "9" },
+ { "custom_168.ypos", "10" },
{ "custom_168.frames", "1" },
- { "custom_168.EDITOR", "RocksElements.pcx" },
- { "custom_168.EDITOR.xpos", "15" },
- { "custom_168.EDITOR.ypos", "13" },
+ { "custom_168.EDITOR", "RocksCE.pcx" },
+ { "custom_168.EDITOR.xpos", "23" },
+ { "custom_168.EDITOR.ypos", "10" },
- { "custom_169", "RocksElements.pcx" },
- { "custom_169.xpos", "7" },
- { "custom_169.ypos", "9" },
+ { "custom_169", "RocksCE.pcx" },
+ { "custom_169.xpos", "8" },
+ { "custom_169.ypos", "10" },
{ "custom_169.frames", "1" },
- { "custom_169.EDITOR", "RocksElements.pcx" },
- { "custom_169.EDITOR.xpos", "15" },
- { "custom_169.EDITOR.ypos", "13" },
+ { "custom_169.EDITOR", "RocksCE.pcx" },
+ { "custom_169.EDITOR.xpos", "24" },
+ { "custom_169.EDITOR.ypos", "10" },
- { "custom_170", "RocksElements.pcx" },
- { "custom_170.xpos", "7" },
- { "custom_170.ypos", "9" },
+ { "custom_170", "RocksCE.pcx" },
+ { "custom_170.xpos", "9" },
+ { "custom_170.ypos", "10" },
{ "custom_170.frames", "1" },
- { "custom_170.EDITOR", "RocksElements.pcx" },
- { "custom_170.EDITOR.xpos", "15" },
- { "custom_170.EDITOR.ypos", "13" },
+ { "custom_170.EDITOR", "RocksCE.pcx" },
+ { "custom_170.EDITOR.xpos", "25" },
+ { "custom_170.EDITOR.ypos", "10" },
- { "custom_171", "RocksElements.pcx" },
- { "custom_171.xpos", "7" },
- { "custom_171.ypos", "9" },
+ { "custom_171", "RocksCE.pcx" },
+ { "custom_171.xpos", "10" },
+ { "custom_171.ypos", "10" },
{ "custom_171.frames", "1" },
- { "custom_171.EDITOR", "RocksElements.pcx" },
- { "custom_171.EDITOR.xpos", "15" },
- { "custom_171.EDITOR.ypos", "13" },
+ { "custom_171.EDITOR", "RocksCE.pcx" },
+ { "custom_171.EDITOR.xpos", "26" },
+ { "custom_171.EDITOR.ypos", "10" },
- { "custom_172", "RocksElements.pcx" },
- { "custom_172.xpos", "7" },
- { "custom_172.ypos", "9" },
+ { "custom_172", "RocksCE.pcx" },
+ { "custom_172.xpos", "11" },
+ { "custom_172.ypos", "10" },
{ "custom_172.frames", "1" },
- { "custom_172.EDITOR", "RocksElements.pcx" },
- { "custom_172.EDITOR.xpos", "15" },
- { "custom_172.EDITOR.ypos", "13" },
+ { "custom_172.EDITOR", "RocksCE.pcx" },
+ { "custom_172.EDITOR.xpos", "27" },
+ { "custom_172.EDITOR.ypos", "10" },
- { "custom_173", "RocksElements.pcx" },
- { "custom_173.xpos", "7" },
- { "custom_173.ypos", "9" },
+ { "custom_173", "RocksCE.pcx" },
+ { "custom_173.xpos", "12" },
+ { "custom_173.ypos", "10" },
{ "custom_173.frames", "1" },
- { "custom_173.EDITOR", "RocksElements.pcx" },
- { "custom_173.EDITOR.xpos", "15" },
- { "custom_173.EDITOR.ypos", "13" },
+ { "custom_173.EDITOR", "RocksCE.pcx" },
+ { "custom_173.EDITOR.xpos", "28" },
+ { "custom_173.EDITOR.ypos", "10" },
- { "custom_174", "RocksElements.pcx" },
- { "custom_174.xpos", "7" },
- { "custom_174.ypos", "9" },
+ { "custom_174", "RocksCE.pcx" },
+ { "custom_174.xpos", "13" },
+ { "custom_174.ypos", "10" },
{ "custom_174.frames", "1" },
- { "custom_174.EDITOR", "RocksElements.pcx" },
- { "custom_174.EDITOR.xpos", "15" },
- { "custom_174.EDITOR.ypos", "13" },
+ { "custom_174.EDITOR", "RocksCE.pcx" },
+ { "custom_174.EDITOR.xpos", "29" },
+ { "custom_174.EDITOR.ypos", "10" },
- { "custom_175", "RocksElements.pcx" },
- { "custom_175.xpos", "7" },
- { "custom_175.ypos", "9" },
+ { "custom_175", "RocksCE.pcx" },
+ { "custom_175.xpos", "14" },
+ { "custom_175.ypos", "10" },
{ "custom_175.frames", "1" },
- { "custom_175.EDITOR", "RocksElements.pcx" },
- { "custom_175.EDITOR.xpos", "15" },
- { "custom_175.EDITOR.ypos", "13" },
+ { "custom_175.EDITOR", "RocksCE.pcx" },
+ { "custom_175.EDITOR.xpos", "30" },
+ { "custom_175.EDITOR.ypos", "10" },
- { "custom_176", "RocksElements.pcx" },
- { "custom_176.xpos", "7" },
- { "custom_176.ypos", "9" },
+ { "custom_176", "RocksCE.pcx" },
+ { "custom_176.xpos", "15" },
+ { "custom_176.ypos", "10" },
{ "custom_176.frames", "1" },
- { "custom_176.EDITOR", "RocksElements.pcx" },
- { "custom_176.EDITOR.xpos", "15" },
- { "custom_176.EDITOR.ypos", "13" },
+ { "custom_176.EDITOR", "RocksCE.pcx" },
+ { "custom_176.EDITOR.xpos", "31" },
+ { "custom_176.EDITOR.ypos", "10" },
- { "custom_177", "RocksElements.pcx" },
- { "custom_177.xpos", "7" },
- { "custom_177.ypos", "9" },
+ { "custom_177", "RocksCE.pcx" },
+ { "custom_177.xpos", "0" },
+ { "custom_177.ypos", "11" },
{ "custom_177.frames", "1" },
- { "custom_177.EDITOR", "RocksElements.pcx" },
- { "custom_177.EDITOR.xpos", "15" },
- { "custom_177.EDITOR.ypos", "13" },
+ { "custom_177.EDITOR", "RocksCE.pcx" },
+ { "custom_177.EDITOR.xpos", "16" },
+ { "custom_177.EDITOR.ypos", "11" },
- { "custom_178", "RocksElements.pcx" },
- { "custom_178.xpos", "7" },
- { "custom_178.ypos", "9" },
+ { "custom_178", "RocksCE.pcx" },
+ { "custom_178.xpos", "1" },
+ { "custom_178.ypos", "11" },
{ "custom_178.frames", "1" },
- { "custom_178.EDITOR", "RocksElements.pcx" },
- { "custom_178.EDITOR.xpos", "15" },
- { "custom_178.EDITOR.ypos", "13" },
+ { "custom_178.EDITOR", "RocksCE.pcx" },
+ { "custom_178.EDITOR.xpos", "17" },
+ { "custom_178.EDITOR.ypos", "11" },
- { "custom_179", "RocksElements.pcx" },
- { "custom_179.xpos", "7" },
- { "custom_179.ypos", "9" },
+ { "custom_179", "RocksCE.pcx" },
+ { "custom_179.xpos", "2" },
+ { "custom_179.ypos", "11" },
{ "custom_179.frames", "1" },
- { "custom_179.EDITOR", "RocksElements.pcx" },
- { "custom_179.EDITOR.xpos", "15" },
- { "custom_179.EDITOR.ypos", "13" },
+ { "custom_179.EDITOR", "RocksCE.pcx" },
+ { "custom_179.EDITOR.xpos", "18" },
+ { "custom_179.EDITOR.ypos", "11" },
- { "custom_180", "RocksElements.pcx" },
- { "custom_180.xpos", "7" },
- { "custom_180.ypos", "9" },
+ { "custom_180", "RocksCE.pcx" },
+ { "custom_180.xpos", "3" },
+ { "custom_180.ypos", "11" },
{ "custom_180.frames", "1" },
- { "custom_180.EDITOR", "RocksElements.pcx" },
- { "custom_180.EDITOR.xpos", "15" },
- { "custom_180.EDITOR.ypos", "13" },
+ { "custom_180.EDITOR", "RocksCE.pcx" },
+ { "custom_180.EDITOR.xpos", "19" },
+ { "custom_180.EDITOR.ypos", "11" },
- { "custom_181", "RocksElements.pcx" },
- { "custom_181.xpos", "7" },
- { "custom_181.ypos", "9" },
+ { "custom_181", "RocksCE.pcx" },
+ { "custom_181.xpos", "4" },
+ { "custom_181.ypos", "11" },
{ "custom_181.frames", "1" },
- { "custom_181.EDITOR", "RocksElements.pcx" },
- { "custom_181.EDITOR.xpos", "15" },
- { "custom_181.EDITOR.ypos", "13" },
+ { "custom_181.EDITOR", "RocksCE.pcx" },
+ { "custom_181.EDITOR.xpos", "20" },
+ { "custom_181.EDITOR.ypos", "11" },
- { "custom_182", "RocksElements.pcx" },
- { "custom_182.xpos", "7" },
- { "custom_182.ypos", "9" },
+ { "custom_182", "RocksCE.pcx" },
+ { "custom_182.xpos", "5" },
+ { "custom_182.ypos", "11" },
{ "custom_182.frames", "1" },
- { "custom_182.EDITOR", "RocksElements.pcx" },
- { "custom_182.EDITOR.xpos", "15" },
- { "custom_182.EDITOR.ypos", "13" },
+ { "custom_182.EDITOR", "RocksCE.pcx" },
+ { "custom_182.EDITOR.xpos", "21" },
+ { "custom_182.EDITOR.ypos", "11" },
- { "custom_183", "RocksElements.pcx" },
- { "custom_183.xpos", "7" },
- { "custom_183.ypos", "9" },
+ { "custom_183", "RocksCE.pcx" },
+ { "custom_183.xpos", "6" },
+ { "custom_183.ypos", "11" },
{ "custom_183.frames", "1" },
- { "custom_183.EDITOR", "RocksElements.pcx" },
- { "custom_183.EDITOR.xpos", "15" },
- { "custom_183.EDITOR.ypos", "13" },
+ { "custom_183.EDITOR", "RocksCE.pcx" },
+ { "custom_183.EDITOR.xpos", "22" },
+ { "custom_183.EDITOR.ypos", "11" },
- { "custom_184", "RocksElements.pcx" },
+ { "custom_184", "RocksCE.pcx" },
{ "custom_184.xpos", "7" },
- { "custom_184.ypos", "9" },
+ { "custom_184.ypos", "11" },
{ "custom_184.frames", "1" },
- { "custom_184.EDITOR", "RocksElements.pcx" },
- { "custom_184.EDITOR.xpos", "15" },
- { "custom_184.EDITOR.ypos", "13" },
+ { "custom_184.EDITOR", "RocksCE.pcx" },
+ { "custom_184.EDITOR.xpos", "23" },
+ { "custom_184.EDITOR.ypos", "11" },
- { "custom_185", "RocksElements.pcx" },
- { "custom_185.xpos", "7" },
- { "custom_185.ypos", "9" },
+ { "custom_185", "RocksCE.pcx" },
+ { "custom_185.xpos", "8" },
+ { "custom_185.ypos", "11" },
{ "custom_185.frames", "1" },
- { "custom_185.EDITOR", "RocksElements.pcx" },
- { "custom_185.EDITOR.xpos", "15" },
- { "custom_185.EDITOR.ypos", "13" },
+ { "custom_185.EDITOR", "RocksCE.pcx" },
+ { "custom_185.EDITOR.xpos", "24" },
+ { "custom_185.EDITOR.ypos", "11" },
- { "custom_186", "RocksElements.pcx" },
- { "custom_186.xpos", "7" },
- { "custom_186.ypos", "9" },
+ { "custom_186", "RocksCE.pcx" },
+ { "custom_186.xpos", "9" },
+ { "custom_186.ypos", "11" },
{ "custom_186.frames", "1" },
- { "custom_186.EDITOR", "RocksElements.pcx" },
- { "custom_186.EDITOR.xpos", "15" },
- { "custom_186.EDITOR.ypos", "13" },
+ { "custom_186.EDITOR", "RocksCE.pcx" },
+ { "custom_186.EDITOR.xpos", "25" },
+ { "custom_186.EDITOR.ypos", "11" },
- { "custom_187", "RocksElements.pcx" },
- { "custom_187.xpos", "7" },
- { "custom_187.ypos", "9" },
+ { "custom_187", "RocksCE.pcx" },
+ { "custom_187.xpos", "10" },
+ { "custom_187.ypos", "11" },
{ "custom_187.frames", "1" },
- { "custom_187.EDITOR", "RocksElements.pcx" },
- { "custom_187.EDITOR.xpos", "15" },
- { "custom_187.EDITOR.ypos", "13" },
+ { "custom_187.EDITOR", "RocksCE.pcx" },
+ { "custom_187.EDITOR.xpos", "26" },
+ { "custom_187.EDITOR.ypos", "11" },
- { "custom_188", "RocksElements.pcx" },
- { "custom_188.xpos", "7" },
- { "custom_188.ypos", "9" },
+ { "custom_188", "RocksCE.pcx" },
+ { "custom_188.xpos", "11" },
+ { "custom_188.ypos", "11" },
{ "custom_188.frames", "1" },
- { "custom_188.EDITOR", "RocksElements.pcx" },
- { "custom_188.EDITOR.xpos", "15" },
- { "custom_188.EDITOR.ypos", "13" },
+ { "custom_188.EDITOR", "RocksCE.pcx" },
+ { "custom_188.EDITOR.xpos", "27" },
+ { "custom_188.EDITOR.ypos", "11" },
- { "custom_189", "RocksElements.pcx" },
- { "custom_189.xpos", "7" },
- { "custom_189.ypos", "9" },
+ { "custom_189", "RocksCE.pcx" },
+ { "custom_189.xpos", "12" },
+ { "custom_189.ypos", "11" },
{ "custom_189.frames", "1" },
- { "custom_189.EDITOR", "RocksElements.pcx" },
- { "custom_189.EDITOR.xpos", "15" },
- { "custom_189.EDITOR.ypos", "13" },
+ { "custom_189.EDITOR", "RocksCE.pcx" },
+ { "custom_189.EDITOR.xpos", "28" },
+ { "custom_189.EDITOR.ypos", "11" },
- { "custom_190", "RocksElements.pcx" },
- { "custom_190.xpos", "7" },
- { "custom_190.ypos", "9" },
+ { "custom_190", "RocksCE.pcx" },
+ { "custom_190.xpos", "13" },
+ { "custom_190.ypos", "11" },
{ "custom_190.frames", "1" },
- { "custom_190.EDITOR", "RocksElements.pcx" },
- { "custom_190.EDITOR.xpos", "15" },
- { "custom_190.EDITOR.ypos", "13" },
+ { "custom_190.EDITOR", "RocksCE.pcx" },
+ { "custom_190.EDITOR.xpos", "29" },
+ { "custom_190.EDITOR.ypos", "11" },
- { "custom_191", "RocksElements.pcx" },
- { "custom_191.xpos", "7" },
- { "custom_191.ypos", "9" },
+ { "custom_191", "RocksCE.pcx" },
+ { "custom_191.xpos", "14" },
+ { "custom_191.ypos", "11" },
{ "custom_191.frames", "1" },
- { "custom_191.EDITOR", "RocksElements.pcx" },
- { "custom_191.EDITOR.xpos", "15" },
- { "custom_191.EDITOR.ypos", "13" },
+ { "custom_191.EDITOR", "RocksCE.pcx" },
+ { "custom_191.EDITOR.xpos", "30" },
+ { "custom_191.EDITOR.ypos", "11" },
- { "custom_192", "RocksElements.pcx" },
- { "custom_192.xpos", "7" },
- { "custom_192.ypos", "9" },
+ { "custom_192", "RocksCE.pcx" },
+ { "custom_192.xpos", "15" },
+ { "custom_192.ypos", "11" },
{ "custom_192.frames", "1" },
- { "custom_192.EDITOR", "RocksElements.pcx" },
- { "custom_192.EDITOR.xpos", "15" },
- { "custom_192.EDITOR.ypos", "13" },
+ { "custom_192.EDITOR", "RocksCE.pcx" },
+ { "custom_192.EDITOR.xpos", "31" },
+ { "custom_192.EDITOR.ypos", "11" },
- { "custom_193", "RocksElements.pcx" },
- { "custom_193.xpos", "7" },
- { "custom_193.ypos", "9" },
+ { "custom_193", "RocksCE.pcx" },
+ { "custom_193.xpos", "0" },
+ { "custom_193.ypos", "12" },
{ "custom_193.frames", "1" },
- { "custom_193.EDITOR", "RocksElements.pcx" },
- { "custom_193.EDITOR.xpos", "15" },
- { "custom_193.EDITOR.ypos", "13" },
+ { "custom_193.EDITOR", "RocksCE.pcx" },
+ { "custom_193.EDITOR.xpos", "16" },
+ { "custom_193.EDITOR.ypos", "12" },
- { "custom_194", "RocksElements.pcx" },
- { "custom_194.xpos", "7" },
- { "custom_194.ypos", "9" },
+ { "custom_194", "RocksCE.pcx" },
+ { "custom_194.xpos", "1" },
+ { "custom_194.ypos", "12" },
{ "custom_194.frames", "1" },
- { "custom_194.EDITOR", "RocksElements.pcx" },
- { "custom_194.EDITOR.xpos", "15" },
- { "custom_194.EDITOR.ypos", "13" },
+ { "custom_194.EDITOR", "RocksCE.pcx" },
+ { "custom_194.EDITOR.xpos", "17" },
+ { "custom_194.EDITOR.ypos", "12" },
- { "custom_195", "RocksElements.pcx" },
- { "custom_195.xpos", "7" },
- { "custom_195.ypos", "9" },
+ { "custom_195", "RocksCE.pcx" },
+ { "custom_195.xpos", "2" },
+ { "custom_195.ypos", "12" },
{ "custom_195.frames", "1" },
- { "custom_195.EDITOR", "RocksElements.pcx" },
- { "custom_195.EDITOR.xpos", "15" },
- { "custom_195.EDITOR.ypos", "13" },
+ { "custom_195.EDITOR", "RocksCE.pcx" },
+ { "custom_195.EDITOR.xpos", "18" },
+ { "custom_195.EDITOR.ypos", "12" },
- { "custom_196", "RocksElements.pcx" },
- { "custom_196.xpos", "7" },
- { "custom_196.ypos", "9" },
+ { "custom_196", "RocksCE.pcx" },
+ { "custom_196.xpos", "3" },
+ { "custom_196.ypos", "12" },
{ "custom_196.frames", "1" },
- { "custom_196.EDITOR", "RocksElements.pcx" },
- { "custom_196.EDITOR.xpos", "15" },
- { "custom_196.EDITOR.ypos", "13" },
+ { "custom_196.EDITOR", "RocksCE.pcx" },
+ { "custom_196.EDITOR.xpos", "19" },
+ { "custom_196.EDITOR.ypos", "12" },
- { "custom_197", "RocksElements.pcx" },
- { "custom_197.xpos", "7" },
- { "custom_197.ypos", "9" },
+ { "custom_197", "RocksCE.pcx" },
+ { "custom_197.xpos", "4" },
+ { "custom_197.ypos", "12" },
{ "custom_197.frames", "1" },
- { "custom_197.EDITOR", "RocksElements.pcx" },
- { "custom_197.EDITOR.xpos", "15" },
- { "custom_197.EDITOR.ypos", "13" },
+ { "custom_197.EDITOR", "RocksCE.pcx" },
+ { "custom_197.EDITOR.xpos", "20" },
+ { "custom_197.EDITOR.ypos", "12" },
- { "custom_198", "RocksElements.pcx" },
- { "custom_198.xpos", "7" },
- { "custom_198.ypos", "9" },
+ { "custom_198", "RocksCE.pcx" },
+ { "custom_198.xpos", "5" },
+ { "custom_198.ypos", "12" },
{ "custom_198.frames", "1" },
- { "custom_198.EDITOR", "RocksElements.pcx" },
- { "custom_198.EDITOR.xpos", "15" },
- { "custom_198.EDITOR.ypos", "13" },
+ { "custom_198.EDITOR", "RocksCE.pcx" },
+ { "custom_198.EDITOR.xpos", "21" },
+ { "custom_198.EDITOR.ypos", "12" },
- { "custom_199", "RocksElements.pcx" },
- { "custom_199.xpos", "7" },
- { "custom_199.ypos", "9" },
+ { "custom_199", "RocksCE.pcx" },
+ { "custom_199.xpos", "6" },
+ { "custom_199.ypos", "12" },
{ "custom_199.frames", "1" },
- { "custom_199.EDITOR", "RocksElements.pcx" },
- { "custom_199.EDITOR.xpos", "15" },
- { "custom_199.EDITOR.ypos", "13" },
+ { "custom_199.EDITOR", "RocksCE.pcx" },
+ { "custom_199.EDITOR.xpos", "22" },
+ { "custom_199.EDITOR.ypos", "12" },
- { "custom_200", "RocksElements.pcx" },
+ { "custom_200", "RocksCE.pcx" },
{ "custom_200.xpos", "7" },
- { "custom_200.ypos", "9" },
+ { "custom_200.ypos", "12" },
{ "custom_200.frames", "1" },
- { "custom_200.EDITOR", "RocksElements.pcx" },
- { "custom_200.EDITOR.xpos", "15" },
- { "custom_200.EDITOR.ypos", "13" },
+ { "custom_200.EDITOR", "RocksCE.pcx" },
+ { "custom_200.EDITOR.xpos", "23" },
+ { "custom_200.EDITOR.ypos", "12" },
- { "custom_201", "RocksElements.pcx" },
- { "custom_201.xpos", "7" },
- { "custom_201.ypos", "9" },
+ { "custom_201", "RocksCE.pcx" },
+ { "custom_201.xpos", "8" },
+ { "custom_201.ypos", "12" },
{ "custom_201.frames", "1" },
- { "custom_201.EDITOR", "RocksElements.pcx" },
- { "custom_201.EDITOR.xpos", "15" },
- { "custom_201.EDITOR.ypos", "13" },
+ { "custom_201.EDITOR", "RocksCE.pcx" },
+ { "custom_201.EDITOR.xpos", "24" },
+ { "custom_201.EDITOR.ypos", "12" },
- { "custom_202", "RocksElements.pcx" },
- { "custom_202.xpos", "7" },
- { "custom_202.ypos", "9" },
+ { "custom_202", "RocksCE.pcx" },
+ { "custom_202.xpos", "9" },
+ { "custom_202.ypos", "12" },
{ "custom_202.frames", "1" },
- { "custom_202.EDITOR", "RocksElements.pcx" },
- { "custom_202.EDITOR.xpos", "15" },
- { "custom_202.EDITOR.ypos", "13" },
+ { "custom_202.EDITOR", "RocksCE.pcx" },
+ { "custom_202.EDITOR.xpos", "25" },
+ { "custom_202.EDITOR.ypos", "12" },
- { "custom_203", "RocksElements.pcx" },
- { "custom_203.xpos", "7" },
- { "custom_203.ypos", "9" },
+ { "custom_203", "RocksCE.pcx" },
+ { "custom_203.xpos", "10" },
+ { "custom_203.ypos", "12" },
{ "custom_203.frames", "1" },
- { "custom_203.EDITOR", "RocksElements.pcx" },
- { "custom_203.EDITOR.xpos", "15" },
- { "custom_203.EDITOR.ypos", "13" },
+ { "custom_203.EDITOR", "RocksCE.pcx" },
+ { "custom_203.EDITOR.xpos", "26" },
+ { "custom_203.EDITOR.ypos", "12" },
- { "custom_204", "RocksElements.pcx" },
- { "custom_204.xpos", "7" },
- { "custom_204.ypos", "9" },
+ { "custom_204", "RocksCE.pcx" },
+ { "custom_204.xpos", "11" },
+ { "custom_204.ypos", "12" },
{ "custom_204.frames", "1" },
- { "custom_204.EDITOR", "RocksElements.pcx" },
- { "custom_204.EDITOR.xpos", "15" },
- { "custom_204.EDITOR.ypos", "13" },
+ { "custom_204.EDITOR", "RocksCE.pcx" },
+ { "custom_204.EDITOR.xpos", "27" },
+ { "custom_204.EDITOR.ypos", "12" },
- { "custom_205", "RocksElements.pcx" },
- { "custom_205.xpos", "7" },
- { "custom_205.ypos", "9" },
+ { "custom_205", "RocksCE.pcx" },
+ { "custom_205.xpos", "12" },
+ { "custom_205.ypos", "12" },
{ "custom_205.frames", "1" },
- { "custom_205.EDITOR", "RocksElements.pcx" },
- { "custom_205.EDITOR.xpos", "15" },
- { "custom_205.EDITOR.ypos", "13" },
+ { "custom_205.EDITOR", "RocksCE.pcx" },
+ { "custom_205.EDITOR.xpos", "28" },
+ { "custom_205.EDITOR.ypos", "12" },
- { "custom_206", "RocksElements.pcx" },
- { "custom_206.xpos", "7" },
- { "custom_206.ypos", "9" },
+ { "custom_206", "RocksCE.pcx" },
+ { "custom_206.xpos", "13" },
+ { "custom_206.ypos", "12" },
{ "custom_206.frames", "1" },
- { "custom_206.EDITOR", "RocksElements.pcx" },
- { "custom_206.EDITOR.xpos", "15" },
- { "custom_206.EDITOR.ypos", "13" },
+ { "custom_206.EDITOR", "RocksCE.pcx" },
+ { "custom_206.EDITOR.xpos", "29" },
+ { "custom_206.EDITOR.ypos", "12" },
- { "custom_207", "RocksElements.pcx" },
- { "custom_207.xpos", "7" },
- { "custom_207.ypos", "9" },
+ { "custom_207", "RocksCE.pcx" },
+ { "custom_207.xpos", "14" },
+ { "custom_207.ypos", "12" },
{ "custom_207.frames", "1" },
- { "custom_207.EDITOR", "RocksElements.pcx" },
- { "custom_207.EDITOR.xpos", "15" },
- { "custom_207.EDITOR.ypos", "13" },
+ { "custom_207.EDITOR", "RocksCE.pcx" },
+ { "custom_207.EDITOR.xpos", "30" },
+ { "custom_207.EDITOR.ypos", "12" },
- { "custom_208", "RocksElements.pcx" },
- { "custom_208.xpos", "7" },
- { "custom_208.ypos", "9" },
+ { "custom_208", "RocksCE.pcx" },
+ { "custom_208.xpos", "15" },
+ { "custom_208.ypos", "12" },
{ "custom_208.frames", "1" },
- { "custom_208.EDITOR", "RocksElements.pcx" },
- { "custom_208.EDITOR.xpos", "15" },
- { "custom_208.EDITOR.ypos", "13" },
+ { "custom_208.EDITOR", "RocksCE.pcx" },
+ { "custom_208.EDITOR.xpos", "31" },
+ { "custom_208.EDITOR.ypos", "12" },
- { "custom_209", "RocksElements.pcx" },
- { "custom_209.xpos", "7" },
- { "custom_209.ypos", "9" },
+ { "custom_209", "RocksCE.pcx" },
+ { "custom_209.xpos", "0" },
+ { "custom_209.ypos", "13" },
{ "custom_209.frames", "1" },
- { "custom_209.EDITOR", "RocksElements.pcx" },
- { "custom_209.EDITOR.xpos", "15" },
+ { "custom_209.EDITOR", "RocksCE.pcx" },
+ { "custom_209.EDITOR.xpos", "16" },
{ "custom_209.EDITOR.ypos", "13" },
- { "custom_210", "RocksElements.pcx" },
- { "custom_210.xpos", "7" },
- { "custom_210.ypos", "9" },
+ { "custom_210", "RocksCE.pcx" },
+ { "custom_210.xpos", "1" },
+ { "custom_210.ypos", "13" },
{ "custom_210.frames", "1" },
- { "custom_210.EDITOR", "RocksElements.pcx" },
- { "custom_210.EDITOR.xpos", "15" },
+ { "custom_210.EDITOR", "RocksCE.pcx" },
+ { "custom_210.EDITOR.xpos", "17" },
{ "custom_210.EDITOR.ypos", "13" },
- { "custom_211", "RocksElements.pcx" },
- { "custom_211.xpos", "7" },
- { "custom_211.ypos", "9" },
+ { "custom_211", "RocksCE.pcx" },
+ { "custom_211.xpos", "2" },
+ { "custom_211.ypos", "13" },
{ "custom_211.frames", "1" },
- { "custom_211.EDITOR", "RocksElements.pcx" },
- { "custom_211.EDITOR.xpos", "15" },
+ { "custom_211.EDITOR", "RocksCE.pcx" },
+ { "custom_211.EDITOR.xpos", "18" },
{ "custom_211.EDITOR.ypos", "13" },
- { "custom_212", "RocksElements.pcx" },
- { "custom_212.xpos", "7" },
- { "custom_212.ypos", "9" },
+ { "custom_212", "RocksCE.pcx" },
+ { "custom_212.xpos", "3" },
+ { "custom_212.ypos", "13" },
{ "custom_212.frames", "1" },
- { "custom_212.EDITOR", "RocksElements.pcx" },
- { "custom_212.EDITOR.xpos", "15" },
+ { "custom_212.EDITOR", "RocksCE.pcx" },
+ { "custom_212.EDITOR.xpos", "19" },
{ "custom_212.EDITOR.ypos", "13" },
- { "custom_213", "RocksElements.pcx" },
- { "custom_213.xpos", "7" },
- { "custom_213.ypos", "9" },
+ { "custom_213", "RocksCE.pcx" },
+ { "custom_213.xpos", "4" },
+ { "custom_213.ypos", "13" },
{ "custom_213.frames", "1" },
- { "custom_213.EDITOR", "RocksElements.pcx" },
- { "custom_213.EDITOR.xpos", "15" },
+ { "custom_213.EDITOR", "RocksCE.pcx" },
+ { "custom_213.EDITOR.xpos", "20" },
{ "custom_213.EDITOR.ypos", "13" },
- { "custom_214", "RocksElements.pcx" },
- { "custom_214.xpos", "7" },
- { "custom_214.ypos", "9" },
+ { "custom_214", "RocksCE.pcx" },
+ { "custom_214.xpos", "5" },
+ { "custom_214.ypos", "13" },
{ "custom_214.frames", "1" },
- { "custom_214.EDITOR", "RocksElements.pcx" },
- { "custom_214.EDITOR.xpos", "15" },
+ { "custom_214.EDITOR", "RocksCE.pcx" },
+ { "custom_214.EDITOR.xpos", "21" },
{ "custom_214.EDITOR.ypos", "13" },
- { "custom_215", "RocksElements.pcx" },
- { "custom_215.xpos", "7" },
- { "custom_215.ypos", "9" },
+ { "custom_215", "RocksCE.pcx" },
+ { "custom_215.xpos", "6" },
+ { "custom_215.ypos", "13" },
{ "custom_215.frames", "1" },
- { "custom_215.EDITOR", "RocksElements.pcx" },
- { "custom_215.EDITOR.xpos", "15" },
+ { "custom_215.EDITOR", "RocksCE.pcx" },
+ { "custom_215.EDITOR.xpos", "22" },
{ "custom_215.EDITOR.ypos", "13" },
- { "custom_216", "RocksElements.pcx" },
+ { "custom_216", "RocksCE.pcx" },
{ "custom_216.xpos", "7" },
- { "custom_216.ypos", "9" },
+ { "custom_216.ypos", "13" },
{ "custom_216.frames", "1" },
- { "custom_216.EDITOR", "RocksElements.pcx" },
- { "custom_216.EDITOR.xpos", "15" },
+ { "custom_216.EDITOR", "RocksCE.pcx" },
+ { "custom_216.EDITOR.xpos", "23" },
{ "custom_216.EDITOR.ypos", "13" },
- { "custom_217", "RocksElements.pcx" },
- { "custom_217.xpos", "7" },
- { "custom_217.ypos", "9" },
+ { "custom_217", "RocksCE.pcx" },
+ { "custom_217.xpos", "8" },
+ { "custom_217.ypos", "13" },
{ "custom_217.frames", "1" },
- { "custom_217.EDITOR", "RocksElements.pcx" },
- { "custom_217.EDITOR.xpos", "15" },
+ { "custom_217.EDITOR", "RocksCE.pcx" },
+ { "custom_217.EDITOR.xpos", "24" },
{ "custom_217.EDITOR.ypos", "13" },
- { "custom_218", "RocksElements.pcx" },
- { "custom_218.xpos", "7" },
- { "custom_218.ypos", "9" },
+ { "custom_218", "RocksCE.pcx" },
+ { "custom_218.xpos", "9" },
+ { "custom_218.ypos", "13" },
{ "custom_218.frames", "1" },
- { "custom_218.EDITOR", "RocksElements.pcx" },
- { "custom_218.EDITOR.xpos", "15" },
+ { "custom_218.EDITOR", "RocksCE.pcx" },
+ { "custom_218.EDITOR.xpos", "25" },
{ "custom_218.EDITOR.ypos", "13" },
- { "custom_219", "RocksElements.pcx" },
- { "custom_219.xpos", "7" },
- { "custom_219.ypos", "9" },
+ { "custom_219", "RocksCE.pcx" },
+ { "custom_219.xpos", "10" },
+ { "custom_219.ypos", "13" },
{ "custom_219.frames", "1" },
- { "custom_219.EDITOR", "RocksElements.pcx" },
- { "custom_219.EDITOR.xpos", "15" },
+ { "custom_219.EDITOR", "RocksCE.pcx" },
+ { "custom_219.EDITOR.xpos", "26" },
{ "custom_219.EDITOR.ypos", "13" },
- { "custom_220", "RocksElements.pcx" },
- { "custom_220.xpos", "7" },
- { "custom_220.ypos", "9" },
+ { "custom_220", "RocksCE.pcx" },
+ { "custom_220.xpos", "11" },
+ { "custom_220.ypos", "13" },
{ "custom_220.frames", "1" },
- { "custom_220.EDITOR", "RocksElements.pcx" },
- { "custom_220.EDITOR.xpos", "15" },
+ { "custom_220.EDITOR", "RocksCE.pcx" },
+ { "custom_220.EDITOR.xpos", "27" },
{ "custom_220.EDITOR.ypos", "13" },
- { "custom_221", "RocksElements.pcx" },
- { "custom_221.xpos", "7" },
- { "custom_221.ypos", "9" },
+ { "custom_221", "RocksCE.pcx" },
+ { "custom_221.xpos", "12" },
+ { "custom_221.ypos", "13" },
{ "custom_221.frames", "1" },
- { "custom_221.EDITOR", "RocksElements.pcx" },
- { "custom_221.EDITOR.xpos", "15" },
+ { "custom_221.EDITOR", "RocksCE.pcx" },
+ { "custom_221.EDITOR.xpos", "28" },
{ "custom_221.EDITOR.ypos", "13" },
- { "custom_222", "RocksElements.pcx" },
- { "custom_222.xpos", "7" },
- { "custom_222.ypos", "9" },
+ { "custom_222", "RocksCE.pcx" },
+ { "custom_222.xpos", "13" },
+ { "custom_222.ypos", "13" },
{ "custom_222.frames", "1" },
- { "custom_222.EDITOR", "RocksElements.pcx" },
- { "custom_222.EDITOR.xpos", "15" },
+ { "custom_222.EDITOR", "RocksCE.pcx" },
+ { "custom_222.EDITOR.xpos", "29" },
{ "custom_222.EDITOR.ypos", "13" },
- { "custom_223", "RocksElements.pcx" },
- { "custom_223.xpos", "7" },
- { "custom_223.ypos", "9" },
+ { "custom_223", "RocksCE.pcx" },
+ { "custom_223.xpos", "14" },
+ { "custom_223.ypos", "13" },
{ "custom_223.frames", "1" },
- { "custom_223.EDITOR", "RocksElements.pcx" },
- { "custom_223.EDITOR.xpos", "15" },
+ { "custom_223.EDITOR", "RocksCE.pcx" },
+ { "custom_223.EDITOR.xpos", "30" },
{ "custom_223.EDITOR.ypos", "13" },
- { "custom_224", "RocksElements.pcx" },
- { "custom_224.xpos", "7" },
- { "custom_224.ypos", "9" },
+ { "custom_224", "RocksCE.pcx" },
+ { "custom_224.xpos", "15" },
+ { "custom_224.ypos", "13" },
{ "custom_224.frames", "1" },
- { "custom_224.EDITOR", "RocksElements.pcx" },
- { "custom_224.EDITOR.xpos", "15" },
+ { "custom_224.EDITOR", "RocksCE.pcx" },
+ { "custom_224.EDITOR.xpos", "31" },
{ "custom_224.EDITOR.ypos", "13" },
- { "custom_225", "RocksElements.pcx" },
- { "custom_225.xpos", "7" },
- { "custom_225.ypos", "9" },
+ { "custom_225", "RocksCE.pcx" },
+ { "custom_225.xpos", "0" },
+ { "custom_225.ypos", "14" },
{ "custom_225.frames", "1" },
- { "custom_225.EDITOR", "RocksElements.pcx" },
- { "custom_225.EDITOR.xpos", "15" },
- { "custom_225.EDITOR.ypos", "13" },
+ { "custom_225.EDITOR", "RocksCE.pcx" },
+ { "custom_225.EDITOR.xpos", "16" },
+ { "custom_225.EDITOR.ypos", "14" },
- { "custom_226", "RocksElements.pcx" },
- { "custom_226.xpos", "7" },
- { "custom_226.ypos", "9" },
+ { "custom_226", "RocksCE.pcx" },
+ { "custom_226.xpos", "1" },
+ { "custom_226.ypos", "14" },
{ "custom_226.frames", "1" },
- { "custom_226.EDITOR", "RocksElements.pcx" },
- { "custom_226.EDITOR.xpos", "15" },
- { "custom_226.EDITOR.ypos", "13" },
+ { "custom_226.EDITOR", "RocksCE.pcx" },
+ { "custom_226.EDITOR.xpos", "17" },
+ { "custom_226.EDITOR.ypos", "14" },
- { "custom_227", "RocksElements.pcx" },
- { "custom_227.xpos", "7" },
- { "custom_227.ypos", "9" },
+ { "custom_227", "RocksCE.pcx" },
+ { "custom_227.xpos", "2" },
+ { "custom_227.ypos", "14" },
{ "custom_227.frames", "1" },
- { "custom_227.EDITOR", "RocksElements.pcx" },
- { "custom_227.EDITOR.xpos", "15" },
- { "custom_227.EDITOR.ypos", "13" },
+ { "custom_227.EDITOR", "RocksCE.pcx" },
+ { "custom_227.EDITOR.xpos", "18" },
+ { "custom_227.EDITOR.ypos", "14" },
- { "custom_228", "RocksElements.pcx" },
- { "custom_228.xpos", "7" },
- { "custom_228.ypos", "9" },
+ { "custom_228", "RocksCE.pcx" },
+ { "custom_228.xpos", "3" },
+ { "custom_228.ypos", "14" },
{ "custom_228.frames", "1" },
- { "custom_228.EDITOR", "RocksElements.pcx" },
- { "custom_228.EDITOR.xpos", "15" },
- { "custom_228.EDITOR.ypos", "13" },
+ { "custom_228.EDITOR", "RocksCE.pcx" },
+ { "custom_228.EDITOR.xpos", "19" },
+ { "custom_228.EDITOR.ypos", "14" },
- { "custom_229", "RocksElements.pcx" },
- { "custom_229.xpos", "7" },
- { "custom_229.ypos", "9" },
+ { "custom_229", "RocksCE.pcx" },
+ { "custom_229.xpos", "4" },
+ { "custom_229.ypos", "14" },
{ "custom_229.frames", "1" },
- { "custom_229.EDITOR", "RocksElements.pcx" },
- { "custom_229.EDITOR.xpos", "15" },
- { "custom_229.EDITOR.ypos", "13" },
+ { "custom_229.EDITOR", "RocksCE.pcx" },
+ { "custom_229.EDITOR.xpos", "20" },
+ { "custom_229.EDITOR.ypos", "14" },
- { "custom_230", "RocksElements.pcx" },
- { "custom_230.xpos", "7" },
- { "custom_230.ypos", "9" },
+ { "custom_230", "RocksCE.pcx" },
+ { "custom_230.xpos", "5" },
+ { "custom_230.ypos", "14" },
{ "custom_230.frames", "1" },
- { "custom_230.EDITOR", "RocksElements.pcx" },
- { "custom_230.EDITOR.xpos", "15" },
- { "custom_230.EDITOR.ypos", "13" },
+ { "custom_230.EDITOR", "RocksCE.pcx" },
+ { "custom_230.EDITOR.xpos", "21" },
+ { "custom_230.EDITOR.ypos", "14" },
- { "custom_231", "RocksElements.pcx" },
- { "custom_231.xpos", "7" },
- { "custom_231.ypos", "9" },
+ { "custom_231", "RocksCE.pcx" },
+ { "custom_231.xpos", "6" },
+ { "custom_231.ypos", "14" },
{ "custom_231.frames", "1" },
- { "custom_231.EDITOR", "RocksElements.pcx" },
- { "custom_231.EDITOR.xpos", "15" },
- { "custom_231.EDITOR.ypos", "13" },
+ { "custom_231.EDITOR", "RocksCE.pcx" },
+ { "custom_231.EDITOR.xpos", "22" },
+ { "custom_231.EDITOR.ypos", "14" },
- { "custom_232", "RocksElements.pcx" },
+ { "custom_232", "RocksCE.pcx" },
{ "custom_232.xpos", "7" },
- { "custom_232.ypos", "9" },
+ { "custom_232.ypos", "14" },
{ "custom_232.frames", "1" },
- { "custom_232.EDITOR", "RocksElements.pcx" },
- { "custom_232.EDITOR.xpos", "15" },
- { "custom_232.EDITOR.ypos", "13" },
+ { "custom_232.EDITOR", "RocksCE.pcx" },
+ { "custom_232.EDITOR.xpos", "23" },
+ { "custom_232.EDITOR.ypos", "14" },
- { "custom_233", "RocksElements.pcx" },
- { "custom_233.xpos", "7" },
- { "custom_233.ypos", "9" },
+ { "custom_233", "RocksCE.pcx" },
+ { "custom_233.xpos", "8" },
+ { "custom_233.ypos", "14" },
{ "custom_233.frames", "1" },
- { "custom_233.EDITOR", "RocksElements.pcx" },
- { "custom_233.EDITOR.xpos", "15" },
- { "custom_233.EDITOR.ypos", "13" },
+ { "custom_233.EDITOR", "RocksCE.pcx" },
+ { "custom_233.EDITOR.xpos", "24" },
+ { "custom_233.EDITOR.ypos", "14" },
- { "custom_234", "RocksElements.pcx" },
- { "custom_234.xpos", "7" },
- { "custom_234.ypos", "9" },
+ { "custom_234", "RocksCE.pcx" },
+ { "custom_234.xpos", "9" },
+ { "custom_234.ypos", "14" },
{ "custom_234.frames", "1" },
- { "custom_234.EDITOR", "RocksElements.pcx" },
- { "custom_234.EDITOR.xpos", "15" },
- { "custom_234.EDITOR.ypos", "13" },
+ { "custom_234.EDITOR", "RocksCE.pcx" },
+ { "custom_234.EDITOR.xpos", "25" },
+ { "custom_234.EDITOR.ypos", "14" },
- { "custom_235", "RocksElements.pcx" },
- { "custom_235.xpos", "7" },
- { "custom_235.ypos", "9" },
+ { "custom_235", "RocksCE.pcx" },
+ { "custom_235.xpos", "10" },
+ { "custom_235.ypos", "14" },
{ "custom_235.frames", "1" },
- { "custom_235.EDITOR", "RocksElements.pcx" },
- { "custom_235.EDITOR.xpos", "15" },
- { "custom_235.EDITOR.ypos", "13" },
+ { "custom_235.EDITOR", "RocksCE.pcx" },
+ { "custom_235.EDITOR.xpos", "26" },
+ { "custom_235.EDITOR.ypos", "14" },
- { "custom_236", "RocksElements.pcx" },
- { "custom_236.xpos", "7" },
- { "custom_236.ypos", "9" },
+ { "custom_236", "RocksCE.pcx" },
+ { "custom_236.xpos", "11" },
+ { "custom_236.ypos", "14" },
{ "custom_236.frames", "1" },
- { "custom_236.EDITOR", "RocksElements.pcx" },
- { "custom_236.EDITOR.xpos", "15" },
- { "custom_236.EDITOR.ypos", "13" },
+ { "custom_236.EDITOR", "RocksCE.pcx" },
+ { "custom_236.EDITOR.xpos", "27" },
+ { "custom_236.EDITOR.ypos", "14" },
- { "custom_237", "RocksElements.pcx" },
- { "custom_237.xpos", "7" },
- { "custom_237.ypos", "9" },
+ { "custom_237", "RocksCE.pcx" },
+ { "custom_237.xpos", "12" },
+ { "custom_237.ypos", "14" },
{ "custom_237.frames", "1" },
- { "custom_237.EDITOR", "RocksElements.pcx" },
- { "custom_237.EDITOR.xpos", "15" },
- { "custom_237.EDITOR.ypos", "13" },
+ { "custom_237.EDITOR", "RocksCE.pcx" },
+ { "custom_237.EDITOR.xpos", "28" },
+ { "custom_237.EDITOR.ypos", "14" },
- { "custom_238", "RocksElements.pcx" },
- { "custom_238.xpos", "7" },
- { "custom_238.ypos", "9" },
+ { "custom_238", "RocksCE.pcx" },
+ { "custom_238.xpos", "13" },
+ { "custom_238.ypos", "14" },
{ "custom_238.frames", "1" },
- { "custom_238.EDITOR", "RocksElements.pcx" },
- { "custom_238.EDITOR.xpos", "15" },
- { "custom_238.EDITOR.ypos", "13" },
+ { "custom_238.EDITOR", "RocksCE.pcx" },
+ { "custom_238.EDITOR.xpos", "29" },
+ { "custom_238.EDITOR.ypos", "14" },
- { "custom_239", "RocksElements.pcx" },
- { "custom_239.xpos", "7" },
- { "custom_239.ypos", "9" },
+ { "custom_239", "RocksCE.pcx" },
+ { "custom_239.xpos", "14" },
+ { "custom_239.ypos", "14" },
{ "custom_239.frames", "1" },
- { "custom_239.EDITOR", "RocksElements.pcx" },
- { "custom_239.EDITOR.xpos", "15" },
- { "custom_239.EDITOR.ypos", "13" },
+ { "custom_239.EDITOR", "RocksCE.pcx" },
+ { "custom_239.EDITOR.xpos", "30" },
+ { "custom_239.EDITOR.ypos", "14" },
- { "custom_240", "RocksElements.pcx" },
- { "custom_240.xpos", "7" },
- { "custom_240.ypos", "9" },
+ { "custom_240", "RocksCE.pcx" },
+ { "custom_240.xpos", "15" },
+ { "custom_240.ypos", "14" },
{ "custom_240.frames", "1" },
- { "custom_240.EDITOR", "RocksElements.pcx" },
- { "custom_240.EDITOR.xpos", "15" },
- { "custom_240.EDITOR.ypos", "13" },
+ { "custom_240.EDITOR", "RocksCE.pcx" },
+ { "custom_240.EDITOR.xpos", "31" },
+ { "custom_240.EDITOR.ypos", "14" },
- { "custom_241", "RocksElements.pcx" },
- { "custom_241.xpos", "7" },
- { "custom_241.ypos", "9" },
+ { "custom_241", "RocksCE.pcx" },
+ { "custom_241.xpos", "0" },
+ { "custom_241.ypos", "15" },
{ "custom_241.frames", "1" },
- { "custom_241.EDITOR", "RocksElements.pcx" },
- { "custom_241.EDITOR.xpos", "15" },
- { "custom_241.EDITOR.ypos", "13" },
+ { "custom_241.EDITOR", "RocksCE.pcx" },
+ { "custom_241.EDITOR.xpos", "16" },
+ { "custom_241.EDITOR.ypos", "15" },
- { "custom_242", "RocksElements.pcx" },
- { "custom_242.xpos", "7" },
- { "custom_242.ypos", "9" },
+ { "custom_242", "RocksCE.pcx" },
+ { "custom_242.xpos", "1" },
+ { "custom_242.ypos", "15" },
{ "custom_242.frames", "1" },
- { "custom_242.EDITOR", "RocksElements.pcx" },
- { "custom_242.EDITOR.xpos", "15" },
- { "custom_242.EDITOR.ypos", "13" },
+ { "custom_242.EDITOR", "RocksCE.pcx" },
+ { "custom_242.EDITOR.xpos", "17" },
+ { "custom_242.EDITOR.ypos", "15" },
- { "custom_243", "RocksElements.pcx" },
- { "custom_243.xpos", "7" },
- { "custom_243.ypos", "9" },
+ { "custom_243", "RocksCE.pcx" },
+ { "custom_243.xpos", "2" },
+ { "custom_243.ypos", "15" },
{ "custom_243.frames", "1" },
- { "custom_243.EDITOR", "RocksElements.pcx" },
- { "custom_243.EDITOR.xpos", "15" },
- { "custom_243.EDITOR.ypos", "13" },
+ { "custom_243.EDITOR", "RocksCE.pcx" },
+ { "custom_243.EDITOR.xpos", "18" },
+ { "custom_243.EDITOR.ypos", "15" },
- { "custom_244", "RocksElements.pcx" },
- { "custom_244.xpos", "7" },
- { "custom_244.ypos", "9" },
+ { "custom_244", "RocksCE.pcx" },
+ { "custom_244.xpos", "3" },
+ { "custom_244.ypos", "15" },
{ "custom_244.frames", "1" },
- { "custom_244.EDITOR", "RocksElements.pcx" },
- { "custom_244.EDITOR.xpos", "15" },
- { "custom_244.EDITOR.ypos", "13" },
+ { "custom_244.EDITOR", "RocksCE.pcx" },
+ { "custom_244.EDITOR.xpos", "19" },
+ { "custom_244.EDITOR.ypos", "15" },
- { "custom_245", "RocksElements.pcx" },
- { "custom_245.xpos", "7" },
- { "custom_245.ypos", "9" },
+ { "custom_245", "RocksCE.pcx" },
+ { "custom_245.xpos", "4" },
+ { "custom_245.ypos", "15" },
{ "custom_245.frames", "1" },
- { "custom_245.EDITOR", "RocksElements.pcx" },
- { "custom_245.EDITOR.xpos", "15" },
- { "custom_245.EDITOR.ypos", "13" },
+ { "custom_245.EDITOR", "RocksCE.pcx" },
+ { "custom_245.EDITOR.xpos", "20" },
+ { "custom_245.EDITOR.ypos", "15" },
- { "custom_246", "RocksElements.pcx" },
- { "custom_246.xpos", "7" },
- { "custom_246.ypos", "9" },
+ { "custom_246", "RocksCE.pcx" },
+ { "custom_246.xpos", "5" },
+ { "custom_246.ypos", "15" },
{ "custom_246.frames", "1" },
- { "custom_246.EDITOR", "RocksElements.pcx" },
- { "custom_246.EDITOR.xpos", "15" },
- { "custom_246.EDITOR.ypos", "13" },
+ { "custom_246.EDITOR", "RocksCE.pcx" },
+ { "custom_246.EDITOR.xpos", "21" },
+ { "custom_246.EDITOR.ypos", "15" },
- { "custom_247", "RocksElements.pcx" },
- { "custom_247.xpos", "7" },
- { "custom_247.ypos", "9" },
+ { "custom_247", "RocksCE.pcx" },
+ { "custom_247.xpos", "6" },
+ { "custom_247.ypos", "15" },
{ "custom_247.frames", "1" },
- { "custom_247.EDITOR", "RocksElements.pcx" },
- { "custom_247.EDITOR.xpos", "15" },
- { "custom_247.EDITOR.ypos", "13" },
+ { "custom_247.EDITOR", "RocksCE.pcx" },
+ { "custom_247.EDITOR.xpos", "22" },
+ { "custom_247.EDITOR.ypos", "15" },
- { "custom_248", "RocksElements.pcx" },
+ { "custom_248", "RocksCE.pcx" },
{ "custom_248.xpos", "7" },
- { "custom_248.ypos", "9" },
+ { "custom_248.ypos", "15" },
{ "custom_248.frames", "1" },
- { "custom_248.EDITOR", "RocksElements.pcx" },
- { "custom_248.EDITOR.xpos", "15" },
- { "custom_248.EDITOR.ypos", "13" },
+ { "custom_248.EDITOR", "RocksCE.pcx" },
+ { "custom_248.EDITOR.xpos", "23" },
+ { "custom_248.EDITOR.ypos", "15" },
- { "custom_249", "RocksElements.pcx" },
- { "custom_249.xpos", "7" },
- { "custom_249.ypos", "9" },
+ { "custom_249", "RocksCE.pcx" },
+ { "custom_249.xpos", "8" },
+ { "custom_249.ypos", "15" },
{ "custom_249.frames", "1" },
- { "custom_249.EDITOR", "RocksElements.pcx" },
- { "custom_249.EDITOR.xpos", "15" },
- { "custom_249.EDITOR.ypos", "13" },
+ { "custom_249.EDITOR", "RocksCE.pcx" },
+ { "custom_249.EDITOR.xpos", "24" },
+ { "custom_249.EDITOR.ypos", "15" },
- { "custom_250", "RocksElements.pcx" },
- { "custom_250.xpos", "7" },
- { "custom_250.ypos", "9" },
+ { "custom_250", "RocksCE.pcx" },
+ { "custom_250.xpos", "9" },
+ { "custom_250.ypos", "15" },
{ "custom_250.frames", "1" },
- { "custom_250.EDITOR", "RocksElements.pcx" },
- { "custom_250.EDITOR.xpos", "15" },
- { "custom_250.EDITOR.ypos", "13" },
+ { "custom_250.EDITOR", "RocksCE.pcx" },
+ { "custom_250.EDITOR.xpos", "25" },
+ { "custom_250.EDITOR.ypos", "15" },
- { "custom_251", "RocksElements.pcx" },
- { "custom_251.xpos", "7" },
- { "custom_251.ypos", "9" },
+ { "custom_251", "RocksCE.pcx" },
+ { "custom_251.xpos", "10" },
+ { "custom_251.ypos", "15" },
{ "custom_251.frames", "1" },
- { "custom_251.EDITOR", "RocksElements.pcx" },
- { "custom_251.EDITOR.xpos", "15" },
- { "custom_251.EDITOR.ypos", "13" },
+ { "custom_251.EDITOR", "RocksCE.pcx" },
+ { "custom_251.EDITOR.xpos", "26" },
+ { "custom_251.EDITOR.ypos", "15" },
- { "custom_252", "RocksElements.pcx" },
- { "custom_252.xpos", "7" },
- { "custom_252.ypos", "9" },
+ { "custom_252", "RocksCE.pcx" },
+ { "custom_252.xpos", "11" },
+ { "custom_252.ypos", "15" },
{ "custom_252.frames", "1" },
- { "custom_252.EDITOR", "RocksElements.pcx" },
- { "custom_252.EDITOR.xpos", "15" },
- { "custom_252.EDITOR.ypos", "13" },
+ { "custom_252.EDITOR", "RocksCE.pcx" },
+ { "custom_252.EDITOR.xpos", "27" },
+ { "custom_252.EDITOR.ypos", "15" },
- { "custom_253", "RocksElements.pcx" },
- { "custom_253.xpos", "7" },
- { "custom_253.ypos", "9" },
+ { "custom_253", "RocksCE.pcx" },
+ { "custom_253.xpos", "12" },
+ { "custom_253.ypos", "15" },
{ "custom_253.frames", "1" },
- { "custom_253.EDITOR", "RocksElements.pcx" },
- { "custom_253.EDITOR.xpos", "15" },
- { "custom_253.EDITOR.ypos", "13" },
+ { "custom_253.EDITOR", "RocksCE.pcx" },
+ { "custom_253.EDITOR.xpos", "28" },
+ { "custom_253.EDITOR.ypos", "15" },
- { "custom_254", "RocksElements.pcx" },
- { "custom_254.xpos", "7" },
- { "custom_254.ypos", "9" },
+ { "custom_254", "RocksCE.pcx" },
+ { "custom_254.xpos", "13" },
+ { "custom_254.ypos", "15" },
{ "custom_254.frames", "1" },
- { "custom_254.EDITOR", "RocksElements.pcx" },
- { "custom_254.EDITOR.xpos", "15" },
- { "custom_254.EDITOR.ypos", "13" },
+ { "custom_254.EDITOR", "RocksCE.pcx" },
+ { "custom_254.EDITOR.xpos", "29" },
+ { "custom_254.EDITOR.ypos", "15" },
- { "custom_255", "RocksElements.pcx" },
- { "custom_255.xpos", "7" },
- { "custom_255.ypos", "9" },
+ { "custom_255", "RocksCE.pcx" },
+ { "custom_255.xpos", "14" },
+ { "custom_255.ypos", "15" },
{ "custom_255.frames", "1" },
- { "custom_255.EDITOR", "RocksElements.pcx" },
- { "custom_255.EDITOR.xpos", "15" },
- { "custom_255.EDITOR.ypos", "13" },
+ { "custom_255.EDITOR", "RocksCE.pcx" },
+ { "custom_255.EDITOR.xpos", "30" },
+ { "custom_255.EDITOR.ypos", "15" },
- { "custom_256", "RocksElements.pcx" },
- { "custom_256.xpos", "7" },
- { "custom_256.ypos", "9" },
+ { "custom_256", "RocksCE.pcx" },
+ { "custom_256.xpos", "15" },
+ { "custom_256.ypos", "15" },
{ "custom_256.frames", "1" },
- { "custom_256.EDITOR", "RocksElements.pcx" },
- { "custom_256.EDITOR.xpos", "15" },
- { "custom_256.EDITOR.ypos", "13" },
+ { "custom_256.EDITOR", "RocksCE.pcx" },
+ { "custom_256.EDITOR.xpos", "31" },
+ { "custom_256.EDITOR.ypos", "15" },
#endif /* CONF_CUS_C */
/* values for the settings windows */
#define ED_LEVEL_SETTINGS_XSTART (3 * MINI_TILEX / 2)
-#define ED_LEVEL_SETTINGS_YSTART (5 * MINI_TILEY)
+#define ED_LEVEL_SETTINGS_YSTART (7 * MINI_TILEY)
#define ED_ELEMENT_SETTINGS_XSTART (3 * MINI_TILEX / 2)
#define ED_ELEMENT_SETTINGS_YSTART (10 * MINI_TILEY)
#define ED_SETTINGS_XOFFSET ED_XOFFSET_CHECKBOX
#define ED_SETTINGS_YOFFSET (3 * MINI_TILEY / 2)
+#define ED_SETTINGS_TAB_XOFFSET 124
#define ED_LEVEL_SETTINGS_XPOS(n) (ED_LEVEL_SETTINGS_XSTART + \
(n) * ED_SETTINGS_XOFFSET)
#define ED_ELEMENT_SETTINGS_YPOS(n) (ED_ELEMENT_SETTINGS_YSTART + \
(n) * ED_SETTINGS_YOFFSET)
+#define ED_LEVEL_SETTINGS_TABS_XPOS(n) (ED_LEVEL_SETTINGS_XPOS(0) + \
+ (n) * ED_SETTINGS_TAB_XOFFSET)
+#define ED_LEVEL_SETTINGS_TABS_YPOS(n) (ED_LEVEL_SETTINGS_YSTART - \
+ 3 * MINI_TILEY)
+
+#define ED_ELEMENT_SETTINGS_TABS_XPOS(n) (ED_ELEMENT_SETTINGS_XPOS(0) + \
+ (n) * ED_SETTINGS_TAB_XOFFSET)
+#define ED_ELEMENT_SETTINGS_TABS_YPOS(n) (ED_ELEMENT_SETTINGS_YSTART - \
+ 2 * MINI_TILEY)
+
#define ED_SETTINGS1_YPOS MINI_TILEY
#define ED_SETTINGS2_XPOS MINI_TILEX
#define ED_SETTINGS2_YPOS (ED_SETTINGS1_YPOS + 12 * TILEY - 2)
#define GADGET_ID_LEVEL_TIMESCORE_DOWN (GADGET_ID_COUNTER_FIRST + 18)
#define GADGET_ID_LEVEL_TIMESCORE_TEXT (GADGET_ID_COUNTER_FIRST + 19)
#define GADGET_ID_LEVEL_TIMESCORE_UP (GADGET_ID_COUNTER_FIRST + 20)
-#define GADGET_ID_ELEMENT_VALUE1_DOWN (GADGET_ID_COUNTER_FIRST + 21)
-#define GADGET_ID_ELEMENT_VALUE1_TEXT (GADGET_ID_COUNTER_FIRST + 22)
-#define GADGET_ID_ELEMENT_VALUE1_UP (GADGET_ID_COUNTER_FIRST + 23)
-#define GADGET_ID_ELEMENT_VALUE2_DOWN (GADGET_ID_COUNTER_FIRST + 24)
-#define GADGET_ID_ELEMENT_VALUE2_TEXT (GADGET_ID_COUNTER_FIRST + 25)
-#define GADGET_ID_ELEMENT_VALUE2_UP (GADGET_ID_COUNTER_FIRST + 26)
-#define GADGET_ID_ELEMENT_VALUE3_DOWN (GADGET_ID_COUNTER_FIRST + 27)
-#define GADGET_ID_ELEMENT_VALUE3_TEXT (GADGET_ID_COUNTER_FIRST + 28)
-#define GADGET_ID_ELEMENT_VALUE3_UP (GADGET_ID_COUNTER_FIRST + 29)
-#define GADGET_ID_ELEMENT_VALUE4_DOWN (GADGET_ID_COUNTER_FIRST + 30)
-#define GADGET_ID_ELEMENT_VALUE4_TEXT (GADGET_ID_COUNTER_FIRST + 31)
-#define GADGET_ID_ELEMENT_VALUE4_UP (GADGET_ID_COUNTER_FIRST + 32)
-#define GADGET_ID_YAMYAM_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 33)
-#define GADGET_ID_YAMYAM_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 34)
-#define GADGET_ID_YAMYAM_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 35)
-#define GADGET_ID_BALL_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 36)
-#define GADGET_ID_BALL_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 37)
-#define GADGET_ID_BALL_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 38)
-#define GADGET_ID_ANDROID_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 39)
-#define GADGET_ID_ANDROID_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 40)
-#define GADGET_ID_ANDROID_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 41)
-#define GADGET_ID_ENVELOPE_XSIZE_DOWN (GADGET_ID_COUNTER_FIRST + 42)
-#define GADGET_ID_ENVELOPE_XSIZE_TEXT (GADGET_ID_COUNTER_FIRST + 43)
-#define GADGET_ID_ENVELOPE_XSIZE_UP (GADGET_ID_COUNTER_FIRST + 44)
-#define GADGET_ID_ENVELOPE_YSIZE_DOWN (GADGET_ID_COUNTER_FIRST + 45)
-#define GADGET_ID_ENVELOPE_YSIZE_TEXT (GADGET_ID_COUNTER_FIRST + 46)
-#define GADGET_ID_ENVELOPE_YSIZE_UP (GADGET_ID_COUNTER_FIRST + 47)
-#define GADGET_ID_CUSTOM_SCORE_DOWN (GADGET_ID_COUNTER_FIRST + 48)
-#define GADGET_ID_CUSTOM_SCORE_TEXT (GADGET_ID_COUNTER_FIRST + 49)
-#define GADGET_ID_CUSTOM_SCORE_UP (GADGET_ID_COUNTER_FIRST + 50)
-#define GADGET_ID_CUSTOM_GEMCOUNT_DOWN (GADGET_ID_COUNTER_FIRST + 51)
-#define GADGET_ID_CUSTOM_GEMCOUNT_TEXT (GADGET_ID_COUNTER_FIRST + 52)
-#define GADGET_ID_CUSTOM_GEMCOUNT_UP (GADGET_ID_COUNTER_FIRST + 53)
-#define GADGET_ID_CUSTOM_VALUE_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 54)
-#define GADGET_ID_CUSTOM_VALUE_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 55)
-#define GADGET_ID_CUSTOM_VALUE_FIX_UP (GADGET_ID_COUNTER_FIRST + 56)
-#define GADGET_ID_CUSTOM_VALUE_RND_DOWN (GADGET_ID_COUNTER_FIRST + 57)
-#define GADGET_ID_CUSTOM_VALUE_RND_TEXT (GADGET_ID_COUNTER_FIRST + 58)
-#define GADGET_ID_CUSTOM_VALUE_RND_UP (GADGET_ID_COUNTER_FIRST + 59)
-#define GADGET_ID_PUSH_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 60)
-#define GADGET_ID_PUSH_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 61)
-#define GADGET_ID_PUSH_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 62)
-#define GADGET_ID_PUSH_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 63)
-#define GADGET_ID_PUSH_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 64)
-#define GADGET_ID_PUSH_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 65)
-#define GADGET_ID_DROP_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 66)
-#define GADGET_ID_DROP_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 67)
-#define GADGET_ID_DROP_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 68)
-#define GADGET_ID_DROP_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 69)
-#define GADGET_ID_DROP_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 70)
-#define GADGET_ID_DROP_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 71)
-#define GADGET_ID_MOVE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 72)
-#define GADGET_ID_MOVE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 73)
-#define GADGET_ID_MOVE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 74)
-#define GADGET_ID_MOVE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 75)
-#define GADGET_ID_MOVE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 76)
-#define GADGET_ID_MOVE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 77)
-#define GADGET_ID_EXPLOSION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 78)
-#define GADGET_ID_EXPLOSION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 79)
-#define GADGET_ID_EXPLOSION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 80)
-#define GADGET_ID_IGNITION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 81)
-#define GADGET_ID_IGNITION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 82)
-#define GADGET_ID_IGNITION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 83)
-#define GADGET_ID_CHANGE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 84)
-#define GADGET_ID_CHANGE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 85)
-#define GADGET_ID_CHANGE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 86)
-#define GADGET_ID_CHANGE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 87)
-#define GADGET_ID_CHANGE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 88)
-#define GADGET_ID_CHANGE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 89)
-#define GADGET_ID_CHANGE_CONT_RND_DOWN (GADGET_ID_COUNTER_FIRST + 90)
-#define GADGET_ID_CHANGE_CONT_RND_TEXT (GADGET_ID_COUNTER_FIRST + 91)
-#define GADGET_ID_CHANGE_CONT_RND_UP (GADGET_ID_COUNTER_FIRST + 92)
-#define GADGET_ID_GROUP_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 93)
-#define GADGET_ID_GROUP_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 94)
-#define GADGET_ID_GROUP_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 95)
+#define GADGET_ID_LEVEL_RANDOM_SEED_DOWN (GADGET_ID_COUNTER_FIRST + 21)
+#define GADGET_ID_LEVEL_RANDOM_SEED_TEXT (GADGET_ID_COUNTER_FIRST + 22)
+#define GADGET_ID_LEVEL_RANDOM_SEED_UP (GADGET_ID_COUNTER_FIRST + 23)
+#define GADGET_ID_ELEMENT_VALUE1_DOWN (GADGET_ID_COUNTER_FIRST + 24)
+#define GADGET_ID_ELEMENT_VALUE1_TEXT (GADGET_ID_COUNTER_FIRST + 25)
+#define GADGET_ID_ELEMENT_VALUE1_UP (GADGET_ID_COUNTER_FIRST + 26)
+#define GADGET_ID_ELEMENT_VALUE2_DOWN (GADGET_ID_COUNTER_FIRST + 27)
+#define GADGET_ID_ELEMENT_VALUE2_TEXT (GADGET_ID_COUNTER_FIRST + 28)
+#define GADGET_ID_ELEMENT_VALUE2_UP (GADGET_ID_COUNTER_FIRST + 29)
+#define GADGET_ID_ELEMENT_VALUE3_DOWN (GADGET_ID_COUNTER_FIRST + 30)
+#define GADGET_ID_ELEMENT_VALUE3_TEXT (GADGET_ID_COUNTER_FIRST + 31)
+#define GADGET_ID_ELEMENT_VALUE3_UP (GADGET_ID_COUNTER_FIRST + 32)
+#define GADGET_ID_ELEMENT_VALUE4_DOWN (GADGET_ID_COUNTER_FIRST + 33)
+#define GADGET_ID_ELEMENT_VALUE4_TEXT (GADGET_ID_COUNTER_FIRST + 34)
+#define GADGET_ID_ELEMENT_VALUE4_UP (GADGET_ID_COUNTER_FIRST + 35)
+#define GADGET_ID_YAMYAM_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 36)
+#define GADGET_ID_YAMYAM_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 37)
+#define GADGET_ID_YAMYAM_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 38)
+#define GADGET_ID_BALL_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 39)
+#define GADGET_ID_BALL_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 40)
+#define GADGET_ID_BALL_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 41)
+#define GADGET_ID_ANDROID_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 42)
+#define GADGET_ID_ANDROID_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 43)
+#define GADGET_ID_ANDROID_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 44)
+#define GADGET_ID_ENVELOPE_XSIZE_DOWN (GADGET_ID_COUNTER_FIRST + 45)
+#define GADGET_ID_ENVELOPE_XSIZE_TEXT (GADGET_ID_COUNTER_FIRST + 46)
+#define GADGET_ID_ENVELOPE_XSIZE_UP (GADGET_ID_COUNTER_FIRST + 47)
+#define GADGET_ID_ENVELOPE_YSIZE_DOWN (GADGET_ID_COUNTER_FIRST + 48)
+#define GADGET_ID_ENVELOPE_YSIZE_TEXT (GADGET_ID_COUNTER_FIRST + 49)
+#define GADGET_ID_ENVELOPE_YSIZE_UP (GADGET_ID_COUNTER_FIRST + 50)
+#define GADGET_ID_INVENTORY_SIZE_DOWN (GADGET_ID_COUNTER_FIRST + 51)
+#define GADGET_ID_INVENTORY_SIZE_TEXT (GADGET_ID_COUNTER_FIRST + 52)
+#define GADGET_ID_INVENTORY_SIZE_UP (GADGET_ID_COUNTER_FIRST + 53)
+#define GADGET_ID_CUSTOM_SCORE_DOWN (GADGET_ID_COUNTER_FIRST + 54)
+#define GADGET_ID_CUSTOM_SCORE_TEXT (GADGET_ID_COUNTER_FIRST + 55)
+#define GADGET_ID_CUSTOM_SCORE_UP (GADGET_ID_COUNTER_FIRST + 56)
+#define GADGET_ID_CUSTOM_GEMCOUNT_DOWN (GADGET_ID_COUNTER_FIRST + 57)
+#define GADGET_ID_CUSTOM_GEMCOUNT_TEXT (GADGET_ID_COUNTER_FIRST + 58)
+#define GADGET_ID_CUSTOM_GEMCOUNT_UP (GADGET_ID_COUNTER_FIRST + 59)
+#define GADGET_ID_CUSTOM_VALUE_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 60)
+#define GADGET_ID_CUSTOM_VALUE_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 61)
+#define GADGET_ID_CUSTOM_VALUE_FIX_UP (GADGET_ID_COUNTER_FIRST + 62)
+#define GADGET_ID_CUSTOM_VALUE_RND_DOWN (GADGET_ID_COUNTER_FIRST + 63)
+#define GADGET_ID_CUSTOM_VALUE_RND_TEXT (GADGET_ID_COUNTER_FIRST + 64)
+#define GADGET_ID_CUSTOM_VALUE_RND_UP (GADGET_ID_COUNTER_FIRST + 65)
+#define GADGET_ID_PUSH_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 66)
+#define GADGET_ID_PUSH_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 67)
+#define GADGET_ID_PUSH_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 68)
+#define GADGET_ID_PUSH_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 69)
+#define GADGET_ID_PUSH_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 70)
+#define GADGET_ID_PUSH_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 71)
+#define GADGET_ID_DROP_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 72)
+#define GADGET_ID_DROP_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 73)
+#define GADGET_ID_DROP_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 74)
+#define GADGET_ID_DROP_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 75)
+#define GADGET_ID_DROP_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 76)
+#define GADGET_ID_DROP_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 77)
+#define GADGET_ID_MOVE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 78)
+#define GADGET_ID_MOVE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 79)
+#define GADGET_ID_MOVE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 80)
+#define GADGET_ID_MOVE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 81)
+#define GADGET_ID_MOVE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 82)
+#define GADGET_ID_MOVE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 83)
+#define GADGET_ID_EXPLOSION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 84)
+#define GADGET_ID_EXPLOSION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 85)
+#define GADGET_ID_EXPLOSION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 86)
+#define GADGET_ID_IGNITION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 87)
+#define GADGET_ID_IGNITION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 88)
+#define GADGET_ID_IGNITION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 89)
+#define GADGET_ID_CHANGE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 90)
+#define GADGET_ID_CHANGE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 91)
+#define GADGET_ID_CHANGE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 92)
+#define GADGET_ID_CHANGE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 93)
+#define GADGET_ID_CHANGE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 94)
+#define GADGET_ID_CHANGE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 95)
+#define GADGET_ID_CHANGE_CONT_RND_DOWN (GADGET_ID_COUNTER_FIRST + 96)
+#define GADGET_ID_CHANGE_CONT_RND_TEXT (GADGET_ID_COUNTER_FIRST + 97)
+#define GADGET_ID_CHANGE_CONT_RND_UP (GADGET_ID_COUNTER_FIRST + 98)
+#define GADGET_ID_GROUP_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 99)
+#define GADGET_ID_GROUP_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 100)
+#define GADGET_ID_GROUP_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 101)
/* drawing area identifiers */
-#define GADGET_ID_DRAWING_AREA_FIRST (GADGET_ID_COUNTER_FIRST + 96)
+#define GADGET_ID_DRAWING_AREA_FIRST (GADGET_ID_COUNTER_FIRST + 102)
#define GADGET_ID_DRAWING_LEVEL (GADGET_ID_DRAWING_AREA_FIRST + 0)
#define GADGET_ID_YAMYAM_CONTENT_0 (GADGET_ID_DRAWING_AREA_FIRST + 1)
#define GADGET_ID_START_ELEMENT (GADGET_ID_DRAWING_AREA_FIRST + 19)
#define GADGET_ID_ARTWORK_ELEMENT (GADGET_ID_DRAWING_AREA_FIRST + 20)
#define GADGET_ID_EXPLOSION_ELEMENT (GADGET_ID_DRAWING_AREA_FIRST + 21)
-#define GADGET_ID_CUSTOM_GRAPHIC (GADGET_ID_DRAWING_AREA_FIRST + 22)
-#define GADGET_ID_CUSTOM_CONTENT (GADGET_ID_DRAWING_AREA_FIRST + 23)
-#define GADGET_ID_CUSTOM_MOVE_ENTER (GADGET_ID_DRAWING_AREA_FIRST + 24)
-#define GADGET_ID_CUSTOM_MOVE_LEAVE (GADGET_ID_DRAWING_AREA_FIRST + 25)
-#define GADGET_ID_CUSTOM_CHANGE_TARGET (GADGET_ID_DRAWING_AREA_FIRST + 26)
-#define GADGET_ID_CUSTOM_CHANGE_CONTENT (GADGET_ID_DRAWING_AREA_FIRST + 27)
-#define GADGET_ID_CUSTOM_CHANGE_TRIGGER (GADGET_ID_DRAWING_AREA_FIRST + 28)
-#define GADGET_ID_GROUP_CONTENT (GADGET_ID_DRAWING_AREA_FIRST + 29)
-#define GADGET_ID_RANDOM_BACKGROUND (GADGET_ID_DRAWING_AREA_FIRST + 30)
+#define GADGET_ID_INVENTORY_CONTENT (GADGET_ID_DRAWING_AREA_FIRST + 22)
+#define GADGET_ID_CUSTOM_GRAPHIC (GADGET_ID_DRAWING_AREA_FIRST + 23)
+#define GADGET_ID_CUSTOM_CONTENT (GADGET_ID_DRAWING_AREA_FIRST + 24)
+#define GADGET_ID_CUSTOM_MOVE_ENTER (GADGET_ID_DRAWING_AREA_FIRST + 25)
+#define GADGET_ID_CUSTOM_MOVE_LEAVE (GADGET_ID_DRAWING_AREA_FIRST + 26)
+#define GADGET_ID_CUSTOM_CHANGE_TARGET (GADGET_ID_DRAWING_AREA_FIRST + 27)
+#define GADGET_ID_CUSTOM_CHANGE_CONTENT (GADGET_ID_DRAWING_AREA_FIRST + 28)
+#define GADGET_ID_CUSTOM_CHANGE_TRIGGER (GADGET_ID_DRAWING_AREA_FIRST + 29)
+#define GADGET_ID_CUSTOM_CHANGE_ACTION (GADGET_ID_DRAWING_AREA_FIRST + 30)
+#define GADGET_ID_GROUP_CONTENT (GADGET_ID_DRAWING_AREA_FIRST + 31)
+#define GADGET_ID_RANDOM_BACKGROUND (GADGET_ID_DRAWING_AREA_FIRST + 32)
/* text input identifiers */
-#define GADGET_ID_TEXT_INPUT_FIRST (GADGET_ID_DRAWING_AREA_FIRST + 31)
+#define GADGET_ID_TEXT_INPUT_FIRST (GADGET_ID_DRAWING_AREA_FIRST + 33)
#define GADGET_ID_LEVEL_NAME (GADGET_ID_TEXT_INPUT_FIRST + 0)
#define GADGET_ID_LEVEL_AUTHOR (GADGET_ID_TEXT_INPUT_FIRST + 1)
/* textbutton identifiers */
#define GADGET_ID_TEXTBUTTON_FIRST (GADGET_ID_SELECTBOX_FIRST + 29)
-#define GADGET_ID_PROPERTIES_INFO (GADGET_ID_TEXTBUTTON_FIRST + 0)
-#define GADGET_ID_PROPERTIES_CONFIG (GADGET_ID_TEXTBUTTON_FIRST + 1)
-#define GADGET_ID_PROPERTIES_CONFIG_1 (GADGET_ID_TEXTBUTTON_FIRST + 2)
-#define GADGET_ID_PROPERTIES_CONFIG_2 (GADGET_ID_TEXTBUTTON_FIRST + 3)
-#define GADGET_ID_PROPERTIES_CHANGE (GADGET_ID_TEXTBUTTON_FIRST + 4)
-#define GADGET_ID_SAVE_AS_TEMPLATE (GADGET_ID_TEXTBUTTON_FIRST + 5)
-#define GADGET_ID_ADD_CHANGE_PAGE (GADGET_ID_TEXTBUTTON_FIRST + 6)
-#define GADGET_ID_DEL_CHANGE_PAGE (GADGET_ID_TEXTBUTTON_FIRST + 7)
+#define GADGET_ID_LEVELINFO_LEVEL (GADGET_ID_TEXTBUTTON_FIRST + 0)
+#define GADGET_ID_LEVELINFO_EDITOR (GADGET_ID_TEXTBUTTON_FIRST + 1)
+#define GADGET_ID_PROPERTIES_INFO (GADGET_ID_TEXTBUTTON_FIRST + 2)
+#define GADGET_ID_PROPERTIES_CONFIG (GADGET_ID_TEXTBUTTON_FIRST + 3)
+#define GADGET_ID_PROPERTIES_CONFIG_1 (GADGET_ID_TEXTBUTTON_FIRST + 4)
+#define GADGET_ID_PROPERTIES_CONFIG_2 (GADGET_ID_TEXTBUTTON_FIRST + 5)
+#define GADGET_ID_PROPERTIES_CHANGE (GADGET_ID_TEXTBUTTON_FIRST + 6)
+#define GADGET_ID_SAVE_AS_TEMPLATE (GADGET_ID_TEXTBUTTON_FIRST + 7)
+#define GADGET_ID_ADD_CHANGE_PAGE (GADGET_ID_TEXTBUTTON_FIRST + 8)
+#define GADGET_ID_DEL_CHANGE_PAGE (GADGET_ID_TEXTBUTTON_FIRST + 9)
/* graphicbutton identifiers */
-#define GADGET_ID_GRAPHICBUTTON_FIRST (GADGET_ID_TEXTBUTTON_FIRST + 8)
+#define GADGET_ID_GRAPHICBUTTON_FIRST (GADGET_ID_TEXTBUTTON_FIRST + 10)
#define GADGET_ID_PREV_CHANGE_PAGE (GADGET_ID_GRAPHICBUTTON_FIRST + 0)
#define GADGET_ID_NEXT_CHANGE_PAGE (GADGET_ID_GRAPHICBUTTON_FIRST + 1)
#define GADGET_ID_RANDOM_RESTRICTED (GADGET_ID_CHECKBUTTON_FIRST + 2)
#define GADGET_ID_STICK_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 3)
#define GADGET_ID_EM_SLIPPERY_GEMS (GADGET_ID_CHECKBUTTON_FIRST + 4)
-#define GADGET_ID_USE_SPRING_BUG (GADGET_ID_CHECKBUTTON_FIRST + 5)
-#define GADGET_ID_USE_TIME_ORB_BUG (GADGET_ID_CHECKBUTTON_FIRST + 6)
-#define GADGET_ID_RANDOM_BALL_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 7)
-#define GADGET_ID_INITIAL_BALL_STATE (GADGET_ID_CHECKBUTTON_FIRST + 8)
-#define GADGET_ID_GROW_INTO_DIGGABLE (GADGET_ID_CHECKBUTTON_FIRST + 9)
-#define GADGET_ID_CONTINUOUS_SNAPPING (GADGET_ID_CHECKBUTTON_FIRST + 10)
-#define GADGET_ID_BLOCK_SNAP_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 11)
-#define GADGET_ID_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 12)
-#define GADGET_ID_SP_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 13)
-#define GADGET_ID_INSTANT_RELOCATION (GADGET_ID_CHECKBUTTON_FIRST + 14)
-#define GADGET_ID_SHIFTED_RELOCATION (GADGET_ID_CHECKBUTTON_FIRST + 15)
-#define GADGET_ID_USE_START_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 16)
-#define GADGET_ID_USE_ARTWORK_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 17)
-#define GADGET_ID_USE_EXPLOSION_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 18)
-#define GADGET_ID_INITIAL_GRAVITY (GADGET_ID_CHECKBUTTON_FIRST + 19)
-#define GADGET_ID_CAN_PASS_TO_WALKABLE (GADGET_ID_CHECKBUTTON_FIRST + 20)
-#define GADGET_ID_CAN_FALL_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 21)
-#define GADGET_ID_CAN_MOVE_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 22)
-#define GADGET_ID_DONT_COLLIDE_WITH (GADGET_ID_CHECKBUTTON_FIRST + 23)
-#define GADGET_ID_ENVELOPE_AUTOWRAP (GADGET_ID_CHECKBUTTON_FIRST + 24)
-#define GADGET_ID_ENVELOPE_CENTERED (GADGET_ID_CHECKBUTTON_FIRST + 25)
-#define GADGET_ID_CUSTOM_INDESTRUCTIBLE (GADGET_ID_CHECKBUTTON_FIRST + 26)
-#define GADGET_ID_CUSTOM_CAN_EXPLODE (GADGET_ID_CHECKBUTTON_FIRST + 27)
-#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 28)
-#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 29)
-#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 30)
-#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 31)
-#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 32)
-#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 33)
-#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 34)
-#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 35)
-#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 36)
-#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 37)
-#define GADGET_ID_CUSTOM_GRAV_REACHABLE (GADGET_ID_CHECKBUTTON_FIRST + 38)
-#define GADGET_ID_CUSTOM_USE_LAST_VALUE (GADGET_ID_CHECKBUTTON_FIRST + 39)
-#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 40)
-#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 41)
-#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 42)
-#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 43)
-#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 44)
-#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 45)
-#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 46)
-#define GADGET_ID_CHANGE_HAS_ACTION (GADGET_ID_CHECKBUTTON_FIRST + 47)
-#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 48)
-#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 49)
-#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 50)
+#define GADGET_ID_EM_EXPLODES_BY_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 5)
+#define GADGET_ID_USE_SPRING_BUG (GADGET_ID_CHECKBUTTON_FIRST + 6)
+#define GADGET_ID_USE_TIME_ORB_BUG (GADGET_ID_CHECKBUTTON_FIRST + 7)
+#define GADGET_ID_RANDOM_BALL_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 8)
+#define GADGET_ID_INITIAL_BALL_STATE (GADGET_ID_CHECKBUTTON_FIRST + 9)
+#define GADGET_ID_GROW_INTO_DIGGABLE (GADGET_ID_CHECKBUTTON_FIRST + 10)
+#define GADGET_ID_CONTINUOUS_SNAPPING (GADGET_ID_CHECKBUTTON_FIRST + 11)
+#define GADGET_ID_BLOCK_SNAP_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 12)
+#define GADGET_ID_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 13)
+#define GADGET_ID_SP_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 14)
+#define GADGET_ID_INSTANT_RELOCATION (GADGET_ID_CHECKBUTTON_FIRST + 15)
+#define GADGET_ID_SHIFTED_RELOCATION (GADGET_ID_CHECKBUTTON_FIRST + 16)
+#define GADGET_ID_USE_START_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 17)
+#define GADGET_ID_USE_ARTWORK_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 18)
+#define GADGET_ID_USE_EXPLOSION_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 19)
+#define GADGET_ID_INITIAL_GRAVITY (GADGET_ID_CHECKBUTTON_FIRST + 20)
+#define GADGET_ID_USE_INITIAL_INVENTORY (GADGET_ID_CHECKBUTTON_FIRST + 21)
+#define GADGET_ID_CAN_PASS_TO_WALKABLE (GADGET_ID_CHECKBUTTON_FIRST + 22)
+#define GADGET_ID_CAN_FALL_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 23)
+#define GADGET_ID_CAN_MOVE_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 24)
+#define GADGET_ID_DONT_COLLIDE_WITH (GADGET_ID_CHECKBUTTON_FIRST + 25)
+#define GADGET_ID_ENVELOPE_AUTOWRAP (GADGET_ID_CHECKBUTTON_FIRST + 26)
+#define GADGET_ID_ENVELOPE_CENTERED (GADGET_ID_CHECKBUTTON_FIRST + 27)
+#define GADGET_ID_CUSTOM_INDESTRUCTIBLE (GADGET_ID_CHECKBUTTON_FIRST + 28)
+#define GADGET_ID_CUSTOM_CAN_EXPLODE (GADGET_ID_CHECKBUTTON_FIRST + 29)
+#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 30)
+#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 31)
+#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 32)
+#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 33)
+#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 34)
+#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 35)
+#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 36)
+#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 37)
+#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 38)
+#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 39)
+#define GADGET_ID_CUSTOM_GRAV_REACHABLE (GADGET_ID_CHECKBUTTON_FIRST + 40)
+#define GADGET_ID_CUSTOM_USE_LAST_VALUE (GADGET_ID_CHECKBUTTON_FIRST + 41)
+#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 42)
+#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 43)
+#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 44)
+#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 45)
+#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 46)
+#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 47)
+#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 48)
+#define GADGET_ID_CHANGE_HAS_ACTION (GADGET_ID_CHECKBUTTON_FIRST + 49)
+#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 50)
+#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 51)
+#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 52)
/* gadgets for buttons in element list */
-#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 51)
+#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 53)
#define GADGET_ID_ELEMENTLIST_LAST (GADGET_ID_ELEMENTLIST_FIRST + \
ED_NUM_ELEMENTLIST_BUTTONS - 1)
#define ED_COUNTER_ID_LEVEL_GEMSLIMIT 3
#define ED_COUNTER_ID_LEVEL_TIMELIMIT 4
#define ED_COUNTER_ID_LEVEL_TIMESCORE 5
-#define ED_COUNTER_ID_LEVEL_RANDOM 6
-#define ED_COUNTER_ID_ELEMENT_VALUE1 7
-#define ED_COUNTER_ID_ELEMENT_VALUE2 8
-#define ED_COUNTER_ID_ELEMENT_VALUE3 9
-#define ED_COUNTER_ID_ELEMENT_VALUE4 10
-#define ED_COUNTER_ID_YAMYAM_CONTENT 11
-#define ED_COUNTER_ID_BALL_CONTENT 12
-#define ED_COUNTER_ID_ANDROID_CONTENT 13
-#define ED_COUNTER_ID_ENVELOPE_XSIZE 14
-#define ED_COUNTER_ID_ENVELOPE_YSIZE 15
-#define ED_COUNTER_ID_CUSTOM_SCORE 16
-#define ED_COUNTER_ID_CUSTOM_GEMCOUNT 17
-#define ED_COUNTER_ID_CUSTOM_VALUE_FIX 18
-#define ED_COUNTER_ID_CUSTOM_VALUE_RND 19
-#define ED_COUNTER_ID_PUSH_DELAY_FIX 20
-#define ED_COUNTER_ID_PUSH_DELAY_RND 21
-#define ED_COUNTER_ID_DROP_DELAY_FIX 22
-#define ED_COUNTER_ID_DROP_DELAY_RND 23
-#define ED_COUNTER_ID_MOVE_DELAY_FIX 24
-#define ED_COUNTER_ID_MOVE_DELAY_RND 25
-#define ED_COUNTER_ID_EXPLOSION_DELAY 26
-#define ED_COUNTER_ID_IGNITION_DELAY 27
-#define ED_COUNTER_ID_GROUP_CONTENT 28
-#define ED_COUNTER_ID_CHANGE_DELAY_FIX 29
-#define ED_COUNTER_ID_CHANGE_DELAY_RND 30
-#define ED_COUNTER_ID_CHANGE_CONT_RND 31
-
-#define ED_NUM_COUNTERBUTTONS 32
+#define ED_COUNTER_ID_LEVEL_RANDOM_SEED 6
+#define ED_COUNTER_ID_LEVEL_RANDOM 7
+#define ED_COUNTER_ID_ELEMENT_VALUE1 8
+#define ED_COUNTER_ID_ELEMENT_VALUE2 9
+#define ED_COUNTER_ID_ELEMENT_VALUE3 10
+#define ED_COUNTER_ID_ELEMENT_VALUE4 11
+#define ED_COUNTER_ID_YAMYAM_CONTENT 12
+#define ED_COUNTER_ID_BALL_CONTENT 13
+#define ED_COUNTER_ID_ANDROID_CONTENT 14
+#define ED_COUNTER_ID_ENVELOPE_XSIZE 15
+#define ED_COUNTER_ID_ENVELOPE_YSIZE 16
+#define ED_COUNTER_ID_INVENTORY_SIZE 17
+#define ED_COUNTER_ID_CUSTOM_SCORE 18
+#define ED_COUNTER_ID_CUSTOM_GEMCOUNT 19
+#define ED_COUNTER_ID_CUSTOM_VALUE_FIX 20
+#define ED_COUNTER_ID_CUSTOM_VALUE_RND 21
+#define ED_COUNTER_ID_PUSH_DELAY_FIX 22
+#define ED_COUNTER_ID_PUSH_DELAY_RND 23
+#define ED_COUNTER_ID_DROP_DELAY_FIX 24
+#define ED_COUNTER_ID_DROP_DELAY_RND 25
+#define ED_COUNTER_ID_MOVE_DELAY_FIX 26
+#define ED_COUNTER_ID_MOVE_DELAY_RND 27
+#define ED_COUNTER_ID_EXPLOSION_DELAY 28
+#define ED_COUNTER_ID_IGNITION_DELAY 29
+#define ED_COUNTER_ID_GROUP_CONTENT 30
+#define ED_COUNTER_ID_CHANGE_DELAY_FIX 31
+#define ED_COUNTER_ID_CHANGE_DELAY_RND 32
+#define ED_COUNTER_ID_CHANGE_CONT_RND 33
+
+#define ED_NUM_COUNTERBUTTONS 34
#define ED_COUNTER_ID_LEVEL_FIRST ED_COUNTER_ID_LEVEL_XSIZE
-#define ED_COUNTER_ID_LEVEL_LAST ED_COUNTER_ID_LEVEL_RANDOM
+#define ED_COUNTER_ID_LEVEL_LAST ED_COUNTER_ID_LEVEL_RANDOM_SEED
+#define ED_COUNTER_ID_EDITOR_FIRST ED_COUNTER_ID_LEVEL_RANDOM
+#define ED_COUNTER_ID_EDITOR_LAST ED_COUNTER_ID_LEVEL_RANDOM
#define ED_COUNTER_ID_CUSTOM1_FIRST ED_COUNTER_ID_CUSTOM_SCORE
#define ED_COUNTER_ID_CUSTOM1_LAST ED_COUNTER_ID_DROP_DELAY_RND
#define ED_SELECTBOX_ID_CHANGE_LAST ED_SELECTBOX_ID_SELECT_CHANGE_PAGE
/* values for textbutton gadgets */
-#define ED_TEXTBUTTON_ID_PROPERTIES_INFO 0
-#define ED_TEXTBUTTON_ID_PROPERTIES_CONFIG 1
-#define ED_TEXTBUTTON_ID_PROPERTIES_CONFIG_1 2
-#define ED_TEXTBUTTON_ID_PROPERTIES_CONFIG_2 3
-#define ED_TEXTBUTTON_ID_PROPERTIES_CHANGE 4
-#define ED_TEXTBUTTON_ID_SAVE_AS_TEMPLATE 5
-#define ED_TEXTBUTTON_ID_ADD_CHANGE_PAGE 6
-#define ED_TEXTBUTTON_ID_DEL_CHANGE_PAGE 7
-
-#define ED_NUM_TEXTBUTTONS 8
+#define ED_TEXTBUTTON_ID_LEVELINFO_LEVEL 0
+#define ED_TEXTBUTTON_ID_LEVELINFO_EDITOR 1
+#define ED_TEXTBUTTON_ID_PROPERTIES_INFO 2
+#define ED_TEXTBUTTON_ID_PROPERTIES_CONFIG 3
+#define ED_TEXTBUTTON_ID_PROPERTIES_CONFIG_1 4
+#define ED_TEXTBUTTON_ID_PROPERTIES_CONFIG_2 5
+#define ED_TEXTBUTTON_ID_PROPERTIES_CHANGE 6
+#define ED_TEXTBUTTON_ID_SAVE_AS_TEMPLATE 7
+#define ED_TEXTBUTTON_ID_ADD_CHANGE_PAGE 8
+#define ED_TEXTBUTTON_ID_DEL_CHANGE_PAGE 9
+
+#define ED_NUM_TEXTBUTTONS 10
+
+#define ED_TEXTBUTTON_ID_LEVELINFO_FIRST ED_TEXTBUTTON_ID_LEVELINFO_LEVEL
+#define ED_TEXTBUTTON_ID_LEVELINFO_LAST ED_TEXTBUTTON_ID_LEVELINFO_EDITOR
#define ED_TEXTBUTTON_ID_PROPERTIES_FIRST ED_TEXTBUTTON_ID_PROPERTIES_INFO
#define ED_TEXTBUTTON_ID_PROPERTIES_LAST ED_TEXTBUTTON_ID_PROPERTIES_CHANGE
#define ED_CHECKBUTTON_ID_RANDOM_RESTRICTED 0
#define ED_CHECKBUTTON_ID_STICK_ELEMENT 1
#define ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS 2
-#define ED_CHECKBUTTON_ID_USE_SPRING_BUG 3
-#define ED_CHECKBUTTON_ID_USE_TIME_ORB_BUG 4
-#define ED_CHECKBUTTON_ID_RANDOM_BALL_CONTENT 5
-#define ED_CHECKBUTTON_ID_INITIAL_BALL_STATE 6
-#define ED_CHECKBUTTON_ID_GROW_INTO_DIGGABLE 7
-#define ED_CHECKBUTTON_ID_CONTINUOUS_SNAPPING 8
-#define ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD 9
-#define ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD 10
-#define ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD 11
-#define ED_CHECKBUTTON_ID_INSTANT_RELOCATION 12
-#define ED_CHECKBUTTON_ID_SHIFTED_RELOCATION 13
-#define ED_CHECKBUTTON_ID_USE_START_ELEMENT 14
-#define ED_CHECKBUTTON_ID_USE_ARTWORK_ELEMENT 15
-#define ED_CHECKBUTTON_ID_USE_EXPLOSION_ELEMENT 16
-#define ED_CHECKBUTTON_ID_INITIAL_GRAVITY 17
-#define ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE 18
-#define ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID 19
-#define ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID 20
-#define ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH 21
-#define ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP 22
-#define ED_CHECKBUTTON_ID_ENVELOPE_CENTERED 23
-#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 24
-#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 25
-#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 26
-#define ED_CHECKBUTTON_ID_CUSTOM_GRAV_REACHABLE 27
-#define ED_CHECKBUTTON_ID_CUSTOM_USE_LAST_VALUE 28
-#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 29
-#define ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE 30
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 31
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 32
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 33
-#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 34
-#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 35
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_EXPLODE 36
-#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 37
-#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 38
-#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 39
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 40
-#define ED_CHECKBUTTON_ID_CHANGE_DELAY 41
-#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 42
-#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 43
-#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 44
-#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 45
-#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 46
-#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 47
-#define ED_CHECKBUTTON_ID_CHANGE_HAS_ACTION 48
-
-#define ED_NUM_CHECKBUTTONS 49
-
-#define ED_CHECKBUTTON_ID_LEVEL_FIRST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED
-#define ED_CHECKBUTTON_ID_LEVEL_LAST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED
+#define ED_CHECKBUTTON_ID_EM_EXPLODES_BY_FIRE 3
+#define ED_CHECKBUTTON_ID_USE_SPRING_BUG 4
+#define ED_CHECKBUTTON_ID_USE_TIME_ORB_BUG 5
+#define ED_CHECKBUTTON_ID_RANDOM_BALL_CONTENT 6
+#define ED_CHECKBUTTON_ID_INITIAL_BALL_STATE 7
+#define ED_CHECKBUTTON_ID_GROW_INTO_DIGGABLE 8
+#define ED_CHECKBUTTON_ID_CONTINUOUS_SNAPPING 9
+#define ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD 10
+#define ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD 11
+#define ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD 12
+#define ED_CHECKBUTTON_ID_INSTANT_RELOCATION 13
+#define ED_CHECKBUTTON_ID_SHIFTED_RELOCATION 14
+#define ED_CHECKBUTTON_ID_USE_START_ELEMENT 15
+#define ED_CHECKBUTTON_ID_USE_ARTWORK_ELEMENT 16
+#define ED_CHECKBUTTON_ID_USE_EXPLOSION_ELEMENT 17
+#define ED_CHECKBUTTON_ID_INITIAL_GRAVITY 18
+#define ED_CHECKBUTTON_ID_USE_INITIAL_INVENTORY 19
+#define ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE 20
+#define ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID 21
+#define ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID 22
+#define ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH 23
+#define ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP 24
+#define ED_CHECKBUTTON_ID_ENVELOPE_CENTERED 25
+#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 26
+#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 27
+#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 28
+#define ED_CHECKBUTTON_ID_CUSTOM_GRAV_REACHABLE 29
+#define ED_CHECKBUTTON_ID_CUSTOM_USE_LAST_VALUE 30
+#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 31
+#define ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE 32
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 33
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 34
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 35
+#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 36
+#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 37
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_EXPLODE 38
+#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 39
+#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 40
+#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 41
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 42
+#define ED_CHECKBUTTON_ID_CHANGE_DELAY 43
+#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 44
+#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 45
+#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 46
+#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 47
+#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 48
+#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 49
+#define ED_CHECKBUTTON_ID_CHANGE_HAS_ACTION 50
+
+#define ED_NUM_CHECKBUTTONS 51
+
+#define ED_CHECKBUTTON_ID_EDITOR_FIRST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED
+#define ED_CHECKBUTTON_ID_EDITOR_LAST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED
#define ED_CHECKBUTTON_ID_CUSTOM1_FIRST ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC
#define ED_CHECKBUTTON_ID_CUSTOM1_LAST ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE
#define ED_NUM_RADIOBUTTONS 2
-#define ED_RADIOBUTTON_ID_LEVEL_FIRST ED_RADIOBUTTON_ID_PERCENTAGE
-#define ED_RADIOBUTTON_ID_LEVEL_LAST ED_RADIOBUTTON_ID_QUANTITY
+#define ED_RADIOBUTTON_ID_EDITOR_FIRST ED_RADIOBUTTON_ID_PERCENTAGE
+#define ED_RADIOBUTTON_ID_EDITOR_LAST ED_RADIOBUTTON_ID_QUANTITY
/* values for drawing area gadgets */
#define ED_DRAWING_ID_DRAWING_LEVEL 0
#define ED_DRAWING_ID_START_ELEMENT 19
#define ED_DRAWING_ID_ARTWORK_ELEMENT 20
#define ED_DRAWING_ID_EXPLOSION_ELEMENT 21
-#define ED_DRAWING_ID_CUSTOM_GRAPHIC 22
-#define ED_DRAWING_ID_CUSTOM_CONTENT 23
-#define ED_DRAWING_ID_CUSTOM_MOVE_ENTER 24
-#define ED_DRAWING_ID_CUSTOM_MOVE_LEAVE 25
-#define ED_DRAWING_ID_CUSTOM_CHANGE_TARGET 26
-#define ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT 27
-#define ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER 28
-#define ED_DRAWING_ID_GROUP_CONTENT 29
-#define ED_DRAWING_ID_RANDOM_BACKGROUND 30
+#define ED_DRAWING_ID_INVENTORY_CONTENT 22
+#define ED_DRAWING_ID_CUSTOM_GRAPHIC 23
+#define ED_DRAWING_ID_CUSTOM_CONTENT 24
+#define ED_DRAWING_ID_CUSTOM_MOVE_ENTER 25
+#define ED_DRAWING_ID_CUSTOM_MOVE_LEAVE 26
+#define ED_DRAWING_ID_CUSTOM_CHANGE_TARGET 27
+#define ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT 28
+#define ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER 29
+#define ED_DRAWING_ID_CUSTOM_CHANGE_ACTION 30
+#define ED_DRAWING_ID_GROUP_CONTENT 31
+#define ED_DRAWING_ID_RANDOM_BACKGROUND 32
-#define ED_NUM_DRAWING_AREAS 31
+#define ED_NUM_DRAWING_AREAS 33
/*
#define ED_MODE_INFO 1
#define ED_MODE_PROPERTIES 2
+/* sub-screens in the global settings section */
+#define ED_MODE_LEVELINFO_LEVEL ED_TEXTBUTTON_ID_LEVELINFO_LEVEL
+#define ED_MODE_LEVELINFO_EDITOR ED_TEXTBUTTON_ID_LEVELINFO_EDITOR
+
/* sub-screens in the element properties section */
#define ED_MODE_PROPERTIES_INFO ED_TEXTBUTTON_ID_PROPERTIES_INFO
#define ED_MODE_PROPERTIES_CONFIG ED_TEXTBUTTON_ID_PROPERTIES_CONFIG
{ ',', "pick drawing element" },
{ 'U', "undo last operation" },
- { 'I', "level properties" },
+ { 'I', "properties of level" },
{ 'S', "save level" },
{ 'C', "clear level" },
{ 'T', "test level" },
GADGET_ID_LEVEL_GEMSLIMIT_DOWN, GADGET_ID_LEVEL_GEMSLIMIT_UP,
GADGET_ID_LEVEL_GEMSLIMIT_TEXT, GADGET_ID_NONE,
&level.gems_needed,
- NULL, "number of gems to collect:", NULL
+ NULL, "number of gems to collect:", NULL
},
{
ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(7),
"score for each second/step left:", NULL, NULL
},
{
- ED_LEVEL_SETTINGS_XPOS(0), ED_COUNTER2_YPOS(8),
+ ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(12),
+ 0, 9999,
+ GADGET_ID_LEVEL_RANDOM_SEED_DOWN, GADGET_ID_LEVEL_RANDOM_SEED_UP,
+ GADGET_ID_LEVEL_RANDOM_SEED_TEXT, GADGET_ID_NONE,
+ &level.random_seed,
+ NULL, "random seed:", "(0 => random)"
+ },
+ {
+ ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(0),
1, 100,
GADGET_ID_LEVEL_RANDOM_DOWN, GADGET_ID_LEVEL_RANDOM_UP,
GADGET_ID_LEVEL_RANDOM_TEXT, GADGET_ID_NONE,
NULL, /* will be set when used */
NULL, " ", "height",
},
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2),
+ MIN_INITIAL_INVENTORY_SIZE, MAX_INITIAL_INVENTORY_SIZE,
+ GADGET_ID_INVENTORY_SIZE_DOWN, GADGET_ID_INVENTORY_SIZE_UP,
+ GADGET_ID_INVENTORY_SIZE_TEXT, GADGET_ID_NONE,
+ &level.initial_inventory_size[0],
+ NULL, NULL, "number of inventory elements"
+ },
/* ---------- element settings: configure 1 (custom elements) ------------ */
{
{ EP_DONT_RUN_INTO, "running into" },
{ EP_DONT_COLLIDE_WITH, "colliding with" },
+ { EP_DONT_GET_HIT_BY, "getting hit by" },
{ EP_DONT_TOUCH, "touching" },
{ -1, NULL }
{
{ CA_NO_ACTION, "no action" },
{ CA_UNDEFINED, " " },
- { CA_HEADLINE_LEVEL_ACTIONS, "[level actions]" },
+ { CA_HEADLINE_LEVEL_ACTIONS, "[level]" },
{ CA_RESTART_LEVEL, "restart level" },
{ CA_SHOW_ENVELOPE, "show envelope" },
{ CA_SET_LEVEL_TIME, "set time" },
{ CA_SET_LEVEL_SCORE, "set score" },
- { CA_SET_LEVEL_GEMS, "set needed gems" },
+ { CA_SET_LEVEL_GEMS, "set gems" },
{ CA_SET_LEVEL_WIND, "set wind dir." },
+ { CA_SET_LEVEL_RANDOM_SEED, "set rand. seed" },
{ CA_UNDEFINED, " " },
- { CA_HEADLINE_PLAYER_ACTIONS, "[player actions]" },
+ { CA_HEADLINE_PLAYER_ACTIONS, "[player]" },
{ CA_MOVE_PLAYER, "move player" },
{ CA_EXIT_PLAYER, "exit player" },
{ CA_KILL_PLAYER, "kill player" },
{ CA_SET_PLAYER_SHIELD, "set shield" },
{ CA_SET_PLAYER_GRAVITY, "set gravity" },
{ CA_SET_PLAYER_ARTWORK, "set artwork" },
+ { CA_SET_PLAYER_INVENTORY, "set inventory" },
{ CA_UNDEFINED, " " },
- { CA_HEADLINE_CE_ACTIONS, "[CE actions]" },
+ { CA_HEADLINE_CE_ACTIONS, "[CE]" },
{ CA_SET_CE_VALUE, "set CE value" },
{ CA_SET_CE_SCORE, "set CE score" },
+ { CA_SET_CE_ARTWORK, "set CE artwork" },
{ CA_UNDEFINED, " " },
- { CA_HEADLINE_ENGINE_ACTIONS, "[engine actions]" },
+ { CA_HEADLINE_ENGINE_ACTIONS, "[engine]" },
{ CA_SET_ENGINE_SCAN_MODE, "set scan mode" },
{ -1, NULL }
{ CA_ARG_PLAYER_4, "4" },
{ CA_ARG_PLAYER_ANY, "any" },
{ CA_ARG_PLAYER_TRIGGER, "trigger" },
+ { CA_ARG_PLAYER_ACTION, "action ->" },
{ -1, NULL }
};
{ CA_ARG_ELEMENT_CV_HEADLINE, "[CE value]" },
{ CA_ARG_ELEMENT_CV_TARGET, "target" },
{ CA_ARG_ELEMENT_CV_TRIGGER, "trigger" },
+ { CA_ARG_ELEMENT_CV_ACTION, "action ->" },
{ CA_ARG_UNDEFINED, " " },
{ CA_ARG_ELEMENT_CS_HEADLINE, "[CE score]" },
{ CA_ARG_ELEMENT_CS_TARGET, "target" },
{ CA_ARG_ELEMENT_CS_TRIGGER, "trigger" },
+ { CA_ARG_ELEMENT_CS_ACTION, "action ->" },
{ -1, NULL }
};
{ CA_ARG_ELEMENT_CV_HEADLINE, "[CE value]" },
{ CA_ARG_ELEMENT_CV_TARGET, "target" },
{ CA_ARG_ELEMENT_CV_TRIGGER, "trigger" },
+ { CA_ARG_ELEMENT_CV_ACTION, "action ->" },
{ CA_ARG_UNDEFINED, " " },
{ CA_ARG_ELEMENT_CS_HEADLINE, "[CE score]" },
{ CA_ARG_ELEMENT_CS_TARGET, "target" },
{ CA_ARG_ELEMENT_CS_TRIGGER, "trigger" },
+ { CA_ARG_ELEMENT_CS_ACTION, "action ->" },
{ CA_ARG_UNDEFINED, " " },
{ CA_ARG_ELEMENT_NR_HEADLINE, "[element]" },
{ CA_ARG_ELEMENT_NR_TARGET, "target" },
{ CA_ARG_ELEMENT_NR_TRIGGER, "trigger" },
+ { CA_ARG_ELEMENT_NR_ACTION, "action ->" },
{ -1, NULL }
};
{ CA_ARG_ELEMENT_HEADLINE, "[element]" },
{ CA_ARG_ELEMENT_TARGET, "target" },
{ CA_ARG_ELEMENT_TRIGGER, "trigger" },
+ { CA_ARG_ELEMENT_ACTION, "action ->" },
{ -1, NULL }
};
{ CA_ARG_ELEMENT_HEADLINE, "[element]" },
{ CA_ARG_ELEMENT_TARGET, "target" },
{ CA_ARG_ELEMENT_TRIGGER, "trigger" },
+ { CA_ARG_ELEMENT_ACTION, "action ->" },
{ -1, NULL }
};
{ CA_ARG_ELEMENT_HEADLINE, "[element]" },
{ CA_ARG_ELEMENT_TARGET, "target" },
{ CA_ARG_ELEMENT_TRIGGER, "trigger" },
+ { CA_ARG_ELEMENT_ACTION, "action ->" },
{ CA_ARG_UNDEFINED, " " },
{ CA_ARG_ELEMENT_RESET, "reset" },
{ -1, NULL }
};
+static struct ValueTextInfo options_action_arg_inventory[] =
+{
+ { CA_ARG_INVENTORY_HEADLINE, "[add]" },
+ { CA_ARG_ELEMENT_TARGET, "+ target" },
+ { CA_ARG_ELEMENT_TRIGGER, "+ trigger" },
+ { CA_ARG_ELEMENT_ACTION, "+ action" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_INVENTORY_RM_HEADLINE,"[remove]" },
+ { CA_ARG_INVENTORY_RM_TARGET, "- target" },
+ { CA_ARG_INVENTORY_RM_TRIGGER,"- trigger" },
+ { CA_ARG_INVENTORY_RM_ACTION, "- action" },
+ { CA_ARG_INVENTORY_RM_FIRST, "- first" },
+ { CA_ARG_INVENTORY_RM_LAST, "- last" },
+ { CA_ARG_INVENTORY_RM_ALL, "- all" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_INVENTORY_RESET, "reset" },
+
+ { -1, NULL }
+};
+
static char options_change_page_strings[MAX_CHANGE_PAGES][10];
static struct ValueTextInfo options_change_page[MAX_CHANGE_PAGES + 1] =
{
{ CA_SET_LEVEL_GEMS, 3, options_action_arg_number, },
{ CA_SET_LEVEL_SCORE, 3, options_action_arg_number, },
{ CA_SET_LEVEL_WIND, 1, options_action_arg_direction, },
+ { CA_SET_LEVEL_RANDOM_SEED, 1, options_action_arg_number, },
{ CA_SET_PLAYER_KEYS, 2, options_action_arg_key, },
{ CA_SET_PLAYER_SPEED, 1, options_action_arg_speed, },
{ CA_SET_PLAYER_SHIELD, 1, options_action_arg_shield, },
{ CA_SET_PLAYER_GRAVITY, 1, options_action_arg_gravity, },
{ CA_SET_PLAYER_ARTWORK, 1, options_action_arg_artwork, },
+ { CA_SET_PLAYER_INVENTORY, 0, options_action_arg_inventory, },
{ CA_SET_CE_VALUE, 3, options_action_arg_value, },
{ CA_SET_CE_SCORE, 3, options_action_arg_value, },
+ { CA_SET_CE_ARTWORK, 1, options_action_arg_artwork, },
{ CA_SET_ENGINE_SCAN_MODE, 1, options_action_arg_scan_mode, },
{ -1, FALSE, NULL }
} textbutton_info[ED_NUM_TEXTBUTTONS] =
{
{
- ED_ELEMENT_SETTINGS_XPOS(0), ED_COUNTER_YPOS(1),
+ ED_LEVEL_SETTINGS_TABS_XPOS(0), ED_LEVEL_SETTINGS_TABS_YPOS(0),
+ GADGET_ID_LEVELINFO_LEVEL, GADGET_ID_NONE,
+ 8, "Level",
+ NULL, NULL, "Configure level properties"
+ },
+ {
+ ED_LEVEL_SETTINGS_TABS_XPOS(1), ED_LEVEL_SETTINGS_TABS_YPOS(0),
+ GADGET_ID_LEVELINFO_EDITOR, GADGET_ID_NONE,
+ 8, "Editor",
+ NULL, NULL, "Configure editor properties"
+ },
+ {
+ ED_ELEMENT_SETTINGS_TABS_XPOS(0), ED_ELEMENT_SETTINGS_TABS_YPOS(0),
GADGET_ID_PROPERTIES_INFO, GADGET_ID_NONE,
8, "Info",
NULL, NULL, "Show information about element"
},
{
- ED_ELEMENT_SETTINGS_XPOS(0) + 124, ED_COUNTER_YPOS(1),
+ ED_ELEMENT_SETTINGS_TABS_XPOS(1), ED_ELEMENT_SETTINGS_TABS_YPOS(0),
GADGET_ID_PROPERTIES_CONFIG, GADGET_ID_NONE,
8, "Config",
NULL, NULL, "Configure element properties"
},
{
- ED_ELEMENT_SETTINGS_XPOS(0) + 124, ED_COUNTER_YPOS(1),
+ ED_ELEMENT_SETTINGS_TABS_XPOS(1), ED_ELEMENT_SETTINGS_TABS_YPOS(0),
GADGET_ID_PROPERTIES_CONFIG_1, GADGET_ID_NONE,
8, "Config 1",
- NULL, NULL, "Configure custom element properties"
+ NULL, NULL, "Configure element properties, part 1"
},
{
- ED_ELEMENT_SETTINGS_XPOS(0) + 248, ED_COUNTER_YPOS(1),
+ ED_ELEMENT_SETTINGS_TABS_XPOS(2), ED_ELEMENT_SETTINGS_TABS_YPOS(0),
GADGET_ID_PROPERTIES_CONFIG_2, GADGET_ID_NONE,
8, "Config 2",
- NULL, NULL, "Configure custom element properties"
+ NULL, NULL, "Configure element properties, part 2"
},
{
- ED_ELEMENT_SETTINGS_XPOS(0) + 372, ED_COUNTER_YPOS(1),
+ ED_ELEMENT_SETTINGS_TABS_XPOS(3), ED_ELEMENT_SETTINGS_TABS_YPOS(0),
GADGET_ID_PROPERTIES_CHANGE, GADGET_ID_NONE,
8, "Change",
- NULL, NULL, "Custom element change configuration"
+ NULL, NULL, "Configure custom element change pages"
},
{
-1, ED_ELEMENT_SETTINGS_YPOS(2),
} radiobutton_info[ED_NUM_RADIOBUTTONS] =
{
{
- -1, ED_COUNTER2_YPOS(8),
+ -1, ED_LEVEL_SETTINGS_YPOS(0),
GADGET_ID_RANDOM_PERCENTAGE, GADGET_ID_LEVEL_RANDOM_UP,
RADIO_NR_RANDOM_ELEMENTS,
&random_placement_method, RANDOM_USE_PERCENTAGE,
" ", "percentage", "use percentage for random elements"
},
{
- -1, ED_COUNTER2_YPOS(8),
+ -1, ED_LEVEL_SETTINGS_YPOS(0),
GADGET_ID_RANDOM_QUANTITY, GADGET_ID_RANDOM_PERCENTAGE,
RADIO_NR_RANDOM_ELEMENTS,
&random_placement_method, RANDOM_USE_QUANTITY,
/* ---------- level and editor settings ---------------------------------- */
{
- ED_LEVEL_SETTINGS_XPOS(0), ED_COUNTER2_YPOS(9) - MINI_TILEY,
+ ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(1),
GADGET_ID_RANDOM_RESTRICTED, GADGET_ID_NONE,
&random_placement_background_restricted,
NULL,
NULL,
"slip down from certain flat walls","use EM/DC style slipping behaviour"
},
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ GADGET_ID_EM_EXPLODES_BY_FIRE, GADGET_ID_NONE,
+ &level.em_explodes_by_fire,
+ NULL,
+ "explodes with chain reaction", "use R'n'D style explosion behaviour"
+ },
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2),
GADGET_ID_USE_SPRING_BUG, GADGET_ID_NONE,
NULL,
"use initial gravity", "set initial player gravity"
},
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ GADGET_ID_USE_INITIAL_INVENTORY, GADGET_ID_NONE,
+ &level.use_initial_inventory[0],
+ NULL,
+ "use initial inventory:", "use collected elements on level start"
+ },
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(5),
GADGET_ID_CAN_PASS_TO_WALKABLE, GADGET_ID_NONE,
NULL, NULL, NULL, "element for player explosion"
},
+ /* ---------- player initial inventory ----------------------------------- */
+
+ {
+ -1, ED_AREA_1X1_SETTINGS_YPOS(1),
+ GADGET_ID_INVENTORY_CONTENT, GADGET_ID_USE_INITIAL_INVENTORY,
+ &level.initial_inventory_content[0][0], MAX_INITIAL_INVENTORY_SIZE, 1,
+ NULL, NULL, NULL, "content for initial inventory"
+ },
+
/* ---------- element settings: configure 1 (custom elements) ----------- */
/* ---------- custom graphic --------------------------------------------- */
{
-1, ED_AREA_1X1_SETTINGS_YPOS(1),
GADGET_ID_CUSTOM_GRAPHIC, GADGET_ID_CUSTOM_USE_GRAPHIC,
- &custom_element.gfx_element, 1, 1,
+ &custom_element.gfx_element_initial,1, 1,
NULL, NULL, NULL, "custom graphic element"
},
{
-1, ED_AREA_1X1_SETTINGS_YPOS(5),
GADGET_ID_CUSTOM_CHANGE_TRIGGER, GADGET_ID_CHANGE_OTHER_ACTION,
- &custom_element_change.trigger_element, 1, 1,
+ &custom_element_change.initial_trigger_element, 1, 1,
NULL, NULL, NULL, "other element triggering change"
},
+ /* ---------- custom change action (element used for action) ------------- */
+
+ {
+ -1, ED_AREA_1X1_SETTINGS_YPOS(13),
+ GADGET_ID_CUSTOM_CHANGE_ACTION, GADGET_ID_ACTION_ARG,
+ &custom_element_change.action_element, 1, 1,
+ NULL, NULL, NULL, "element used as action parameter"
+ },
+
/* ---------- group element content -------------------------------------- */
{
/* ---------- random background (for random painting) -------------------- */
{
- -1, ED_ELEMENT_SETTINGS_YPOS(14),
+ -1, ED_AREA_1X1_SETTINGS_YPOS(-1),
GADGET_ID_RANDOM_BACKGROUND, GADGET_ID_RANDOM_RESTRICTED,
&random_placement_background_element, 1, 1,
NULL, NULL, NULL, "random placement background"
static int undo_buffer_steps = 0;
static int edit_mode;
+static int edit_mode_levelinfo;
static int edit_mode_properties;
static int element_shift = 0;
(input ? IMG_EDITOR_ELEMENT_BORDER_INPUT : IMG_EDITOR_ELEMENT_BORDER);
Bitmap *src_bitmap;
int src_x, src_y;
- int num_mini_tilex = width / MINI_TILEX + 1;
- int num_mini_tiley = height / MINI_TILEY + 1;
- int from_x = dest_x - MINI_TILEX / 2;
- int from_y = dest_y - MINI_TILEY / 2;
- int to_x = from_x + num_mini_tilex * MINI_TILEX - 1;
- int to_y = from_y + num_mini_tiley * MINI_TILEY - 1;
- int x, y;
+ int bx = (input ? 4 : 8);
+ int by = (input ? 4 : 8);
+ int bx2 = TILEX - bx;
+ int by2 = TILEY - by;
+ int i;
- getMiniGraphicSource(border_graphic, &src_bitmap, &src_x, &src_y);
+ getGraphicSource(border_graphic, 0, &src_bitmap, &src_x, &src_y);
- for (y = 0; y < num_mini_tiley; y++)
- for (x = 0; x < num_mini_tilex; x++)
- BlitBitmap(src_bitmap, drawto, src_x, src_y, MINI_TILEX, MINI_TILEY,
- from_x + x * MINI_TILEX, from_y + y * MINI_TILEY);
+ BlitBitmap(src_bitmap, drawto, src_x, src_y,
+ bx, by, dest_x - bx, dest_y - by);
+ BlitBitmap(src_bitmap, drawto, src_x + bx2, src_y,
+ bx, by, dest_x + width, dest_y - by);
+ BlitBitmap(src_bitmap, drawto, src_x, src_y + by2,
+ bx, by, dest_x - bx, dest_y + height);
+ BlitBitmap(src_bitmap, drawto, src_x + bx2, src_y + by2,
+ bx, by, dest_x + width, dest_y + height);
- ClearRectangle(drawto, dest_x - 1, dest_y - 1, width + 2, height + 2);
+ for (i = 0; i < width / MINI_TILEX; i++)
+ {
+ BlitBitmap(src_bitmap, drawto, src_x + bx, src_y, MINI_TILEX, by,
+ dest_x + i * MINI_TILEX, dest_y - by);
+ BlitBitmap(src_bitmap, drawto, src_x + bx, src_y + by2, MINI_TILEX, by,
+ dest_x + i * MINI_TILEX, dest_y + height);
+ }
- DrawSimpleBlackLine(drawto, from_x, from_y, to_x, from_y);
- DrawSimpleBlackLine(drawto, to_x, from_y, to_x, to_y);
- DrawSimpleBlackLine(drawto, to_x, to_y, from_x, to_y);
- DrawSimpleBlackLine(drawto, from_x, to_y, from_x, from_y);
+ for (i = 0; i < height / MINI_TILEY; i++)
+ {
+ BlitBitmap(src_bitmap, drawto, src_x, src_y + by, bx, MINI_TILEY,
+ dest_x - bx, dest_y + i * MINI_TILEY);
+ BlitBitmap(src_bitmap, drawto, src_x + bx2, src_y + by, bx, MINI_TILEY,
+ dest_x + width, dest_y + i * MINI_TILEY);
+ }
+
+ ClearRectangle(drawto, dest_x - 1, dest_y - 1, width + 2, height + 2);
}
static void DrawDrawingArea(int id)
static void ScrollMiniLevel(int from_x, int from_y, int scroll)
{
-#if 1
+#if 0
+ /* (directly solved in BlitBitmap() now) */
static Bitmap *tmp_backbuffer = NULL;
#endif
int x, y;
int dx = (scroll == ED_SCROLL_LEFT ? -1 : scroll == ED_SCROLL_RIGHT ? 1 : 0);
int dy = (scroll == ED_SCROLL_UP ? -1 : scroll == ED_SCROLL_DOWN ? 1 : 0);
-#if 1
+#if 0
+ /* (directly solved in BlitBitmap() now) */
if (tmp_backbuffer == NULL)
tmp_backbuffer = CreateBitmap(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH);
SY + (dy == +1 ? MINI_TILEY : 0));
#endif
- printf("::: ScrollMiniLevel: A.1\n");
-
if (dx)
{
x = (dx == 1 ? 0 : ed_fieldx - 1);
DrawMiniElementOrWall(x, y, from_x, from_y);
}
- printf("::: ScrollMiniLevel: Z\n");
-
redraw_mask |= REDRAW_FIELD;
BackToFront();
}
event_mask = GD_EVENT_RELEASED;
- if (id >= GADGET_ID_PROPERTIES_INFO && id <= GADGET_ID_PROPERTIES_CHANGE)
+ if ((id >= GADGET_ID_LEVELINFO_LEVEL && id <= GADGET_ID_LEVELINFO_EDITOR) ||
+ (id >= GADGET_ID_PROPERTIES_INFO && id <= GADGET_ID_PROPERTIES_CHANGE))
{
gd_x1 = DOOR_GFX_PAGEX4 + ED_TEXTBUTTON_TAB_XPOS;
gd_x2 = DOOR_GFX_PAGEX3 + ED_TEXTBUTTON_TAB_XPOS;
if (change->target_element == element_from)
change->target_element = element_to;
- if (change->trigger_element == element_from)
- change->trigger_element = element_to;
+ if (change->initial_trigger_element == element_from)
+ change->initial_trigger_element = element_to;
+
+ if (change->action_element == element_from)
+ change->action_element = element_to;
for (y = 0; y < 3; y++)
for (x = 0; x < 3; x++)
/* set deadliness selectbox help value */
custom_element.deadliness =
(DONT_TOUCH(element) ? EP_DONT_TOUCH :
+ DONT_GET_HIT_BY(element) ? EP_DONT_GET_HIT_BY :
DONT_COLLIDE_WITH(element) ? EP_DONT_COLLIDE_WITH :
DONT_RUN_INTO(element) ? EP_DONT_RUN_INTO :
custom_element.deadliness);
custom_element_properties[EP_DEADLY] =
(DONT_TOUCH(element) ||
+ DONT_GET_HIT_BY(element) ||
DONT_COLLIDE_WITH(element) ||
DONT_RUN_INTO(element));
/* set deadliness property from checkbox and selectbox */
custom_element_properties[EP_DONT_RUN_INTO] = FALSE;
custom_element_properties[EP_DONT_COLLIDE_WITH] = FALSE;
+ custom_element_properties[EP_DONT_GET_HIT_BY] = FALSE;
custom_element_properties[EP_DONT_TOUCH] = FALSE;
custom_element_properties[custom_element.deadliness] =
custom_element_properties[EP_DEADLY];
void DrawLevelEd()
{
+ StopAnimation();
+
CloseDoor(DOOR_CLOSE_ALL);
#if 1
else
{
edit_mode = ED_MODE_DRAWING;
+ edit_mode_levelinfo = ED_MODE_LEVELINFO_LEVEL;
edit_mode_properties = ED_MODE_PROPERTIES_INFO;
ResetUndoBuffer();
ReinitializeElementList(); /* update dynamic level element list */
ReinitializeElementListButtons(); /* custom element may look different */
+ InitElementPropertiesGfxElement();
+
#if 1
UnmapAllGadgets();
#else
MapLevelEditorToolboxDrawingGadgets();
}
-static void DrawLevelInfoWindow()
+static int getTabulatorBarWidth()
{
+ struct GadgetInfo *gd_gi1 = level_editor_gadget[GADGET_ID_PROPERTIES_INFO];
+ struct GadgetInfo *gd_gi4 = level_editor_gadget[GADGET_ID_PROPERTIES_CHANGE];
+
+ return gd_gi4->x - gd_gi1->x + gd_gi4->width;
+}
+
+static void DrawLevelInfoTabulatorGadgets()
+{
+ struct GadgetInfo *gd_gi1 = level_editor_gadget[GADGET_ID_LEVELINFO_LEVEL];
+ struct GadgetDesign *gd = &gd_gi1->alt_design[GD_BUTTON_UNPRESSED];
+ int gd_x = gd->x + gd_gi1->border.width / 2;
+ int gd_y = gd->y + gd_gi1->height - 1;
+ Pixel tab_color = GetPixel(gd->bitmap, gd_x, gd_y);
+ int id_first = ED_TEXTBUTTON_ID_LEVELINFO_LEVEL;
+ int id_last = ED_TEXTBUTTON_ID_LEVELINFO_EDITOR;
+#if 1
+#else
+ int max_tabs = 2;
+#endif
int i;
- stick_element_properties_window = FALSE;
+ for (i = id_first; i <= id_last; i++)
+ {
+ int gadget_id = textbutton_info[i].gadget_id;
+ struct GadgetInfo *gi = level_editor_gadget[gadget_id];
+ boolean active = (i != edit_mode_levelinfo);
- SetMainBackgroundImage(IMG_BACKGROUND_EDITOR);
- ClearField();
- UnmapLevelEditorWindowGadgets();
+ /* draw background line below tabulator button */
+ ClearRectangleOnBackground(drawto, gi->x, gi->y + gi->height, gi->width, 1);
-#if 0
- DrawTextSCentered(ED_SETTINGS1_YPOS, FONT_TITLE_1, "Level Settings");
- DrawTextSCentered(ED_SETTINGS2_YPOS, FONT_TITLE_1, "Editor Settings");
+ /* 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);
+ }
+
+#if 1
+ /* draw little border line below tabulator buttons */
+ if (tab_color != BLACK_PIXEL) /* black => transparent */
+ FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1,
+ getTabulatorBarWidth(), ED_GADGET_DISTANCE,
+ tab_color);
#else
- DrawText(SX + ED_SETTINGS2_XPOS, SY + ED_SETTINGS1_YPOS,
- "Level Settings", FONT_TITLE_1);
- DrawText(SX + ED_SETTINGS2_XPOS, SY + ED_SETTINGS2_YPOS,
- "Editor Settings", FONT_TITLE_1);
+ /* draw little border line below tabulator buttons */
+ if (tab_color != BLACK_PIXEL) /* black => transparent */
+ FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1,
+ max_tabs * gd_gi1->width + (max_tabs -1) * ED_GADGET_DISTANCE,
+ ED_GADGET_DISTANCE, tab_color);
+#endif
+}
+
+static void DrawPropertiesTabulatorGadgets()
+{
+ struct GadgetInfo *gd_gi1 = level_editor_gadget[GADGET_ID_PROPERTIES_INFO];
+ struct GadgetDesign *gd = &gd_gi1->alt_design[GD_BUTTON_UNPRESSED];
+ int gd_x = gd->x + gd_gi1->border.width / 2;
+ int gd_y = gd->y + gd_gi1->height - 1;
+ 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_CONFIG;
+#if 1
+#else
+ int max_tabs = 4;
#endif
+ int i;
+
+ /* draw two config tabulators for player elements */
+ if (ELEM_IS_PLAYER(properties_element))
+ id_last = ED_TEXTBUTTON_ID_PROPERTIES_CONFIG_2;
+
+ /* draw two config and one "change" tabulator for custom elements */
+ if (IS_CUSTOM_ELEMENT(properties_element))
+ id_last = ED_TEXTBUTTON_ID_PROPERTIES_CHANGE;
+
+ for (i = id_first; i <= id_last; i++)
+ {
+ int gadget_id = textbutton_info[i].gadget_id;
+ struct GadgetInfo *gi = level_editor_gadget[gadget_id];
+ boolean active = (i != edit_mode_properties);
+
+ /* use "config 1" and "config 2" instead of "config" for players and CEs */
+ if (i == ED_TEXTBUTTON_ID_PROPERTIES_CONFIG &&
+ (ELEM_IS_PLAYER(properties_element) ||
+ IS_CUSTOM_ELEMENT(properties_element)))
+ continue;
+
+ /* 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);
+ }
+
+#if 1
+ /* draw little border line below tabulator buttons */
+ if (tab_color != BLACK_PIXEL) /* black => transparent */
+ FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1,
+ getTabulatorBarWidth(), ED_GADGET_DISTANCE,
+ tab_color);
+#else
+ /* draw little border line below tabulator buttons */
+ if (tab_color != BLACK_PIXEL) /* black => transparent */
+ FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1,
+ max_tabs * gd_gi1->width + (max_tabs -1) * ED_GADGET_DISTANCE,
+ ED_GADGET_DISTANCE, tab_color);
+#endif
+}
+
+static void DrawLevelInfoLevel()
+{
+ int i;
/* draw counter gadgets */
for (i = ED_COUNTER_ID_LEVEL_FIRST; i <= ED_COUNTER_ID_LEVEL_LAST; i++)
for (i = ED_SELECTBOX_ID_LEVEL_FIRST; i <= ED_SELECTBOX_ID_LEVEL_LAST; i++)
MapSelectboxGadget(i);
+ /* draw text input gadgets */
+ for (i = ED_TEXTINPUT_ID_LEVEL_FIRST; i <= ED_TEXTINPUT_ID_LEVEL_LAST; i++)
+ MapTextInputGadget(i);
+}
+
+static void DrawLevelInfoEditor()
+{
+ int i;
+
+ /* draw counter gadgets */
+ for (i = ED_COUNTER_ID_EDITOR_FIRST; i <= ED_COUNTER_ID_EDITOR_LAST; i++)
+ MapCounterButtons(i);
+
/* draw checkbutton gadgets */
- for (i=ED_CHECKBUTTON_ID_LEVEL_FIRST; i <= ED_CHECKBUTTON_ID_LEVEL_LAST; i++)
+ for (i=ED_CHECKBUTTON_ID_EDITOR_FIRST; i<= ED_CHECKBUTTON_ID_EDITOR_LAST; i++)
MapCheckbuttonGadget(i);
/* draw radiobutton gadgets */
- for (i=ED_RADIOBUTTON_ID_LEVEL_FIRST; i <= ED_RADIOBUTTON_ID_LEVEL_LAST; i++)
+ for (i=ED_RADIOBUTTON_ID_EDITOR_FIRST; i<= ED_RADIOBUTTON_ID_EDITOR_LAST; i++)
MapRadiobuttonGadget(i);
- /* draw text input gadgets */
- for (i = ED_TEXTINPUT_ID_LEVEL_FIRST; i <= ED_TEXTINPUT_ID_LEVEL_LAST; i++)
- MapTextInputGadget(i);
-
/* draw drawing area */
MapDrawingArea(ED_DRAWING_ID_RANDOM_BACKGROUND);
}
+static void DrawLevelInfoWindow()
+{
+ stick_element_properties_window = FALSE;
+
+ UnmapLevelEditorWindowGadgets();
+
+ SetMainBackgroundImage(IMG_BACKGROUND_EDITOR);
+ ClearField();
+
+#if 1
+#if 1
+ DrawTextSCentered(ED_SETTINGS1_YPOS, FONT_TITLE_1, "Global Settings");
+#else
+ DrawTextSCentered(ED_SETTINGS1_YPOS, FONT_TITLE_1, "Level Settings");
+ DrawTextSCentered(ED_SETTINGS2_YPOS, FONT_TITLE_1, "Editor Settings");
+#endif
+#else
+ DrawText(SX + ED_SETTINGS2_XPOS, SY + ED_SETTINGS1_YPOS,
+ "Level Settings", FONT_TITLE_1);
+ DrawText(SX + ED_SETTINGS2_XPOS, SY + ED_SETTINGS2_YPOS,
+ "Editor Settings", FONT_TITLE_1);
+#endif
+
+ DrawLevelInfoTabulatorGadgets();
+
+ if (edit_mode_levelinfo == ED_MODE_LEVELINFO_LEVEL)
+ DrawLevelInfoLevel();
+ else /* (edit_mode_levelinfo == ED_MODE_LEVELINFO_EDITOR) */
+ DrawLevelInfoEditor();
+}
+
static void DrawCustomContentArea()
{
int id = ED_DRAWING_ID_CUSTOM_CONTENT;
MapDrawingArea(id);
}
+static void DrawPlayerInitialInventoryArea(int element)
+{
+ int player_nr = GET_PLAYER_NR(element);
+ int num_elements = level.initial_inventory_size[player_nr];
+ int id = ED_DRAWING_ID_INVENTORY_CONTENT;
+ int sx = SX + drawingarea_info[id].x - MINI_TILEX / 2;
+ int sy = SY + drawingarea_info[id].y - MINI_TILEY / 2;
+ int xsize = MAX_INITIAL_INVENTORY_SIZE;
+ int ysize = 1;
+
+ /* determine horizontal position to the right of specified gadget */
+ if (drawingarea_info[id].gadget_id_align != GADGET_ID_NONE)
+ sx += (right_gadget_border[drawingarea_info[id].gadget_id_align] +
+ ED_DRAWINGAREA_TEXT_DISTANCE);
+
+ /* determine horizontal offset for leading text */
+ if (drawingarea_info[id].text_left != NULL)
+ sx += getTextWidthForDrawingArea(drawingarea_info[id].text_left);
+
+ UnmapDrawingArea(id);
+
+ ModifyEditorDrawingArea(id, num_elements, 1);
+
+ /* delete content areas in case of reducing number of them */
+ DrawBackground(sx, sy, (xsize + 1) * MINI_TILEX, (ysize + 1) * MINI_TILEY);
+
+ MapDrawingArea(id);
+}
+
static void DrawEnvelopeTextArea(int envelope_nr)
{
int id = ED_TEXTAREA_ID_ENVELOPE_INFO;
max_lines_per_screen, -1, TRUE, FALSE, FALSE);
}
-static void DrawPropertiesTabulatorGadgets()
-{
- struct GadgetInfo *gd_gi1 = level_editor_gadget[GADGET_ID_PROPERTIES_INFO];
- struct GadgetInfo *gd_gi4 = level_editor_gadget[GADGET_ID_PROPERTIES_CHANGE];
- struct GadgetDesign *gd = &gd_gi1->alt_design[GD_BUTTON_UNPRESSED];
- int gd_x = gd->x + gd_gi1->border.width / 2;
- int gd_y = gd->y + gd_gi1->height - 1;
- 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_CONFIG;
-#if 1
-#else
- int max_tabs = 4;
-#endif
- int i;
-
- /* draw additional "change" tabulator for custom elements */
- if (IS_CUSTOM_ELEMENT(properties_element))
- id_last = ED_TEXTBUTTON_ID_PROPERTIES_CHANGE;
-
- for (i = id_first; i <= id_last; i++)
- {
- int gadget_id = textbutton_info[i].gadget_id;
- struct GadgetInfo *gi = level_editor_gadget[gadget_id];
- boolean active = (i != edit_mode_properties);
-
- /* use "config 1" and "config 2" instead of "config" */
- if (i == ED_TEXTBUTTON_ID_PROPERTIES_CONFIG &&
- IS_CUSTOM_ELEMENT(properties_element))
- continue;
-
- /* 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);
- }
-
-#if 1
- /* draw little border line below tabulator buttons */
- if (tab_color != BLACK_PIXEL) /* black => transparent */
- FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1,
- gd_gi4->x - gd_gi1->x + gd_gi4->width, ED_GADGET_DISTANCE,
- tab_color);
-#else
- /* draw little border line below tabulator buttons */
- if (tab_color != BLACK_PIXEL) /* black => transparent */
- FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1,
- max_tabs * gd_gi1->width + (max_tabs -1) * ED_GADGET_DISTANCE,
- ED_GADGET_DISTANCE, tab_color);
-#endif
-}
-
static void DrawPropertiesInfo()
{
static struct
{ EP_DONT_RUN_INTO, "- deadly when running into" },
{ EP_DONT_COLLIDE_WITH, "- deadly when colliding with" },
+ { EP_DONT_GET_HIT_BY, "- deadly when getting hit by" },
{ EP_DONT_TOUCH, "- deadly when touching" },
{ EP_INDESTRUCTIBLE, "- indestructible" },
{ EL_EMC_KEY_6, &level.score[SC_KEY], TEXT_COLLECTING },
{ EL_EMC_KEY_7, &level.score[SC_KEY], TEXT_COLLECTING },
{ EL_EMC_KEY_8, &level.score[SC_KEY], TEXT_COLLECTING },
+ { EL_DC_KEY_WHITE, &level.score[SC_KEY], TEXT_COLLECTING },
{ EL_AMOEBA_WET, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
{ EL_AMOEBA_DRY, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
{ EL_AMOEBA_FULL, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
/* these properties can be set for every player individually */
- drawingarea_info[ED_DRAWING_ID_START_ELEMENT].value =
- &level.start_element[player_nr];
- drawingarea_info[ED_DRAWING_ID_ARTWORK_ELEMENT].value =
- &level.artwork_element[player_nr];
- drawingarea_info[ED_DRAWING_ID_EXPLOSION_ELEMENT].value =
- &level.explosion_element[player_nr];
-
- checkbutton_info[ED_CHECKBUTTON_ID_USE_START_ELEMENT].value =
- &level.use_start_element[player_nr];
- checkbutton_info[ED_CHECKBUTTON_ID_USE_ARTWORK_ELEMENT].value =
- &level.use_artwork_element[player_nr];
- checkbutton_info[ED_CHECKBUTTON_ID_USE_EXPLOSION_ELEMENT].value =
- &level.use_explosion_element[player_nr];
- checkbutton_info[ED_CHECKBUTTON_ID_INITIAL_GRAVITY].value =
- &level.initial_player_gravity[player_nr];
-
- selectbox_info[ED_SELECTBOX_ID_PLAYER_SPEED].value =
- &level.initial_player_stepsize[player_nr];
-
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID);
- MapCheckbuttonGadget(properties_element == EL_SP_MURPHY ?
- ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD :
- ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CONTINUOUS_SNAPPING);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_INSTANT_RELOCATION);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_SHIFTED_RELOCATION);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_START_ELEMENT);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_ARTWORK_ELEMENT);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_EXPLOSION_ELEMENT);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_INITIAL_GRAVITY);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE);
-
- MapDrawingArea(ED_DRAWING_ID_START_ELEMENT);
- MapDrawingArea(ED_DRAWING_ID_ARTWORK_ELEMENT);
- MapDrawingArea(ED_DRAWING_ID_EXPLOSION_ELEMENT);
-
- MapSelectboxGadget(ED_SELECTBOX_ID_PLAYER_SPEED);
+ if (edit_mode_properties == ED_MODE_PROPERTIES_CONFIG_1)
+ {
+ drawingarea_info[ED_DRAWING_ID_START_ELEMENT].value =
+ &level.start_element[player_nr];
+ drawingarea_info[ED_DRAWING_ID_ARTWORK_ELEMENT].value =
+ &level.artwork_element[player_nr];
+ drawingarea_info[ED_DRAWING_ID_EXPLOSION_ELEMENT].value =
+ &level.explosion_element[player_nr];
+
+ checkbutton_info[ED_CHECKBUTTON_ID_USE_START_ELEMENT].value =
+ &level.use_start_element[player_nr];
+ checkbutton_info[ED_CHECKBUTTON_ID_USE_ARTWORK_ELEMENT].value =
+ &level.use_artwork_element[player_nr];
+ checkbutton_info[ED_CHECKBUTTON_ID_USE_EXPLOSION_ELEMENT].value =
+ &level.use_explosion_element[player_nr];
+ checkbutton_info[ED_CHECKBUTTON_ID_INITIAL_GRAVITY].value =
+ &level.initial_player_gravity[player_nr];
+
+ selectbox_info[ED_SELECTBOX_ID_PLAYER_SPEED].value =
+ &level.initial_player_stepsize[player_nr];
+
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID);
+ MapCheckbuttonGadget(properties_element == EL_SP_MURPHY ?
+ ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD :
+ ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CONTINUOUS_SNAPPING);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_INSTANT_RELOCATION);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_SHIFTED_RELOCATION);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_START_ELEMENT);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_ARTWORK_ELEMENT);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_EXPLOSION_ELEMENT);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_INITIAL_GRAVITY);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE);
+
+ MapDrawingArea(ED_DRAWING_ID_START_ELEMENT);
+ MapDrawingArea(ED_DRAWING_ID_ARTWORK_ELEMENT);
+ MapDrawingArea(ED_DRAWING_ID_EXPLOSION_ELEMENT);
+
+ MapSelectboxGadget(ED_SELECTBOX_ID_PLAYER_SPEED);
+ }
+ else if (edit_mode_properties == ED_MODE_PROPERTIES_CONFIG_2)
+ {
+ drawingarea_info[ED_DRAWING_ID_INVENTORY_CONTENT].value =
+ &level.initial_inventory_content[player_nr][0];
+
+ counterbutton_info[ED_COUNTER_ID_INVENTORY_SIZE].value =
+ &level.initial_inventory_size[player_nr];
+
+ checkbutton_info[ED_CHECKBUTTON_ID_USE_INITIAL_INVENTORY].value =
+ &level.use_initial_inventory[player_nr];
+
+ /* draw checkbutton gadgets */
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_INITIAL_INVENTORY);
+
+ /* draw counter gadgets */
+ MapCounterButtons(ED_COUNTER_ID_INVENTORY_SIZE);
+
+ /* draw drawing area gadgets */
+ DrawPlayerInitialInventoryArea(properties_element);
+ }
}
if (IS_GEM(properties_element))
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS);
+ if (properties_element == EL_EM_DYNAMITE)
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_EM_EXPLODES_BY_FIRE);
+
if (COULD_MOVE_INTO_ACID(properties_element) &&
!ELEM_IS_PLAYER(properties_element) &&
(!IS_CUSTOM_ELEMENT(properties_element) ||
{
MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TARGET);
MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER);
+ MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_ACTION);
DrawCustomChangeContentArea();
}
stick_element_properties_window = FALSE;
/* make sure that previous properties edit mode exists for this element */
+ if (edit_mode_properties > ED_MODE_PROPERTIES_CONFIG_2 &&
+ !IS_CUSTOM_ELEMENT(properties_element))
+ edit_mode_properties = ED_MODE_PROPERTIES_CONFIG_2;
+
if (edit_mode_properties > ED_MODE_PROPERTIES_CONFIG &&
+ !ELEM_IS_PLAYER(properties_element) &&
!IS_CUSTOM_ELEMENT(properties_element))
edit_mode_properties = ED_MODE_PROPERTIES_CONFIG;
if (edit_mode_properties == ED_MODE_PROPERTIES_CONFIG &&
- IS_CUSTOM_ELEMENT(properties_element))
+ (ELEM_IS_PLAYER(properties_element) ||
+ IS_CUSTOM_ELEMENT(properties_element)))
edit_mode_properties = ED_MODE_PROPERTIES_CONFIG_1;
CopyElementPropertiesToEditor(properties_element);
SetMainBackgroundImage(IMG_BACKGROUND_EDITOR);
ClearField();
-#if 0
+#if 1
DrawTextSCentered(ED_SETTINGS1_YPOS, FONT_TITLE_1, "Element Settings");
#else
DrawText(SX + ED_SETTINGS2_XPOS, SY + ED_SETTINGS1_YPOS,
static void UpdateCustomElementGraphicGadgets()
{
+ struct ElementInfo *ei = &element_info[properties_element];
int i;
+ ei->gfx_element = (ei->use_gfx_element ? ei->gfx_element_initial :
+ properties_element);
+
ModifyEditorElementList();
RedrawDrawingElements();
CopyGroupElementPropertiesToGame(properties_element);
break;
+ case ED_COUNTER_ID_INVENTORY_SIZE:
+ DrawPlayerInitialInventoryArea(properties_element);
+ break;
+
case ED_COUNTER_ID_ENVELOPE_XSIZE:
case ED_COUNTER_ID_ENVELOPE_YSIZE:
DrawEnvelopeTextArea(-1);
int type_id = gi->custom_type_id;
int i;
- if (type_id >= ED_TEXTBUTTON_ID_PROPERTIES_FIRST &&
- type_id <= ED_TEXTBUTTON_ID_PROPERTIES_LAST)
+ if (type_id >= ED_TEXTBUTTON_ID_LEVELINFO_FIRST &&
+ type_id <= ED_TEXTBUTTON_ID_LEVELINFO_LAST)
+ {
+ edit_mode_levelinfo = gi->custom_type_id;
+
+ DrawLevelInfoWindow();
+ }
+ else if (type_id >= ED_TEXTBUTTON_ID_PROPERTIES_FIRST &&
+ type_id <= ED_TEXTBUTTON_ID_PROPERTIES_LAST)
{
edit_mode_properties = gi->custom_type_id;
CloseDoor(DOOR_CLOSE_ALL);
+ BackToFront(); /* force redraw of undrawn special door */
+
DrawCompleteVideoDisplay();
level_editor_test_game = TRUE;
- StartGameActions(FALSE, setup.autorecord, NEW_RANDOMIZE);
+ StartGameActions(FALSE, setup.autorecord, level.random_seed);
}
break;
static unsigned long action_delay = 0;
unsigned long action_delay_value = GameFrameDelay;
int xpos = 1, ypos = 2;
+ int i;
if (edit_mode != ED_MODE_PROPERTIES)
return;
if (!DelayReached(&action_delay, action_delay_value))
return;
+ for (i = 0; i < ED_NUM_SELECTBOX; i++)
+ {
+ struct GadgetInfo *gi = level_editor_gadget[selectbox_info[i].gadget_id];
+
+ if (gi->mapped && gi->active && gi->selectbox.open)
+ return;
+ }
+
DrawEditorElementAnimation(SX + xpos * TILEX,
SY + ypos * TILEY + MINI_TILEY / 2);
#define USE_FIX_KILLED_BY_NON_WALKABLE (USE_NEW_STUFF * 1)
#define USE_FIX_IMPACT_COLLISION (USE_NEW_STUFF * 1)
+#define USE_FIX_CE_ACTION_WITH_PLAYER (USE_NEW_STUFF * 1)
+#define USE_FIX_NO_ACTION_AFTER_CHANGE (USE_NEW_STUFF * 1)
+
+#define USE_PLAYER_REANIMATION (USE_NEW_STUFF * 1)
#define USE_GFX_RESET_WHEN_NOT_MOVING (USE_NEW_STUFF * 1)
+#define USE_NEW_PLAYER_ASSIGNMENTS (USE_NEW_STUFF * 1)
+
+#define USE_DELAYED_GFX_REDRAW (USE_NEW_STUFF * 0)
+
+#if USE_DELAYED_GFX_REDRAW
+#define TEST_DrawLevelField(x, y) \
+ GfxRedraw[x][y] |= GFX_REDRAW_TILE
+#define TEST_DrawLevelFieldCrumbledSand(x, y) \
+ GfxRedraw[x][y] |= GFX_REDRAW_TILE_CRUMBLED
+#define TEST_DrawLevelFieldCrumbledSandNeighbours(x, y) \
+ GfxRedraw[x][y] |= GFX_REDRAW_TILE_CRUMBLED_NEIGHBOURS
+#define TEST_DrawTwinkleOnField(x, y) \
+ GfxRedraw[x][y] |= GFX_REDRAW_TILE_TWINKLED
+#else
+#define TEST_DrawLevelField(x, y) \
+ DrawLevelField(x, y)
+#define TEST_DrawLevelFieldCrumbledSand(x, y) \
+ DrawLevelFieldCrumbledSand(x, y)
+#define TEST_DrawLevelFieldCrumbledSandNeighbours(x, y) \
+ DrawLevelFieldCrumbledSandNeighbours(x, y)
+#define TEST_DrawTwinkleOnField(x, y) \
+ DrawTwinkleOnField(x, y)
+#endif
+
/* for DigField() */
#define DF_NO_PUSH 0
static void ScrollPlayer(struct PlayerInfo *, int);
static void ScrollScreen(struct PlayerInfo *, int);
-int DigField(struct PlayerInfo *, int, int, int, int, int, int, int);
+static int DigField(struct PlayerInfo *, int, int, int, int, int, int, int);
+static boolean DigFieldByCE(int, int, int);
+static boolean SnapField(struct PlayerInfo *, int, int);
+static boolean DropElement(struct PlayerInfo *);
static void InitBeltMovement(void);
static void CloseAllOpenTimegates(void);
void TestIfFriendTouchesBadThing(int, int);
void TestIfBadThingTouchesFriend(int, int);
void TestIfBadThingTouchesOtherBadThing(int, int);
+void TestIfGoodThingGetsHitByBadThing(int, int, int);
void KillPlayer(struct PlayerInfo *);
void BuryPlayer(struct PlayerInfo *);
void RemovePlayer(struct PlayerInfo *);
-boolean SnapField(struct PlayerInfo *, int, int);
-boolean DropElement(struct PlayerInfo *);
-
static int getInvisibleActiveFromInvisibleElement(int);
static int getInvisibleFromInvisibleActiveElement(int);
static boolean recursion_loop_detected;
static boolean recursion_loop_element;
+static int map_player_action[MAX_PLAYERS];
+
/* ------------------------------------------------------------------------- */
/* definition of elements that automatically change to other elements after */
}
else
{
+ stored_player[0].initial_element = element;
stored_player[0].use_murphy = TRUE;
if (!level.use_artwork_element[0])
player->jx = player->last_jx = x;
player->jy = player->last_jy = y;
}
+
+#if USE_PLAYER_REANIMATION
+ if (!init_game)
+ {
+ int player_nr = GET_PLAYER_NR(element);
+ struct PlayerInfo *player = &stored_player[player_nr];
+
+ if (player->active && player->killed)
+ player->reanimated = TRUE; /* if player was just killed, reanimate him */
+ }
+#endif
}
static void InitField(int x, int y, boolean init_game)
Feld[x][y] = EL_EMC_MAGIC_BALL_SWITCH_ACTIVE;
break;
+ case EL_TRIGGER_PLAYER:
+ case EL_TRIGGER_ELEMENT:
+ case EL_TRIGGER_CE_VALUE:
+ case EL_TRIGGER_CE_SCORE:
+ case EL_SELF:
+ case EL_ANY_ELEMENT:
+ case EL_CURRENT_CE_VALUE:
+ case EL_CURRENT_CE_SCORE:
+ case EL_PREV_CE_1:
+ case EL_PREV_CE_2:
+ case EL_PREV_CE_3:
+ case EL_PREV_CE_4:
+ case EL_PREV_CE_5:
+ case EL_PREV_CE_6:
+ case EL_PREV_CE_7:
+ case EL_PREV_CE_8:
+ case EL_NEXT_CE_1:
+ case EL_NEXT_CE_2:
+ case EL_NEXT_CE_3:
+ case EL_NEXT_CE_4:
+ case EL_NEXT_CE_5:
+ case EL_NEXT_CE_6:
+ case EL_NEXT_CE_7:
+ case EL_NEXT_CE_8:
+ /* reference elements should not be used on the playfield */
+ Feld[x][y] = EL_EMPTY;
+ break;
+
default:
if (IS_CUSTOM_ELEMENT(element))
{
if (gpc->type == TYPE_ELEMENT)
{
- int last_anim_random_frame = gfx.anim_random_frame;
- int element = gpc->value;
- int graphic = el2panelimg(element);
-
- if (gpc->value != gpc->last_value)
- {
- gpc->gfx_frame = 0;
- gpc->gfx_random = INIT_GFX_RANDOM();
- }
- else
+ if (gpc->value != EL_UNDEFINED && gpc->value != EL_EMPTY)
{
- gpc->gfx_frame++;
+ int last_anim_random_frame = gfx.anim_random_frame;
+ int element = gpc->value;
+ int graphic = el2panelimg(element);
- if (ANIM_MODE(graphic) == ANIM_RANDOM &&
- IS_NEXT_FRAME(gpc->gfx_frame, graphic))
+ if (gpc->value != gpc->last_value)
+ {
+ gpc->gfx_frame = 0;
gpc->gfx_random = INIT_GFX_RANDOM();
- }
+ }
+ else
+ {
+ gpc->gfx_frame++;
+
+ if (ANIM_MODE(graphic) == ANIM_RANDOM &&
+ IS_NEXT_FRAME(gpc->gfx_frame, graphic))
+ gpc->gfx_random = INIT_GFX_RANDOM();
+ }
- if (ANIM_MODE(graphic) == ANIM_RANDOM)
- gfx.anim_random_frame = gpc->gfx_random;
+ if (ANIM_MODE(graphic) == ANIM_RANDOM)
+ gfx.anim_random_frame = gpc->gfx_random;
- if (ANIM_MODE(graphic) == ANIM_CE_SCORE)
- gpc->gfx_frame = element_info[element].collect_score;
+ if (ANIM_MODE(graphic) == ANIM_CE_SCORE)
+ gpc->gfx_frame = element_info[element].collect_score;
- gpc->frame = getGraphicAnimationFrame(el2panelimg(gpc->value),
- gpc->gfx_frame);
+ gpc->frame = getGraphicAnimationFrame(el2panelimg(gpc->value),
+ gpc->gfx_frame);
- if (ANIM_MODE(graphic) == ANIM_RANDOM)
- gfx.anim_random_frame = last_anim_random_frame;
+ if (ANIM_MODE(graphic) == ANIM_RANDOM)
+ gfx.anim_random_frame = last_anim_random_frame;
+ }
}
}
}
SET_PROPERTY(ch_delay->element, EP_CAN_CHANGE_OR_HAS_ACTION, TRUE);
}
- /* ---------- initialize internal run-time variables ------------- */
+ /* ---------- initialize internal run-time variables --------------------- */
for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
{
}
}
+#if 1
+ /* ---------- initialize reference elements in change conditions --------- */
+
+ for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
+ {
+ int element = EL_CUSTOM_START + i;
+ struct ElementInfo *ei = &element_info[element];
+
+ for (j = 0; j < ei->num_change_pages; j++)
+ {
+ int trigger_element = ei->change_page[j].initial_trigger_element;
+
+ if (trigger_element >= EL_PREV_CE_8 &&
+ trigger_element <= EL_NEXT_CE_8)
+ trigger_element = RESOLVED_REFERENCE_ELEMENT(element, trigger_element);
+
+ ei->change_page[j].trigger_element = trigger_element;
+ }
+ }
+#endif
+
/* ---------- initialize run-time trigger player and element ------------- */
for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
for (j = 0; j < ei->num_change_pages; j++)
{
ei->change_page[j].actual_trigger_element = EL_EMPTY;
- ei->change_page[j].actual_trigger_player = EL_PLAYER_1;
- ei->change_page[j].actual_trigger_player_bits = CH_PLAYER_1;
+ ei->change_page[j].actual_trigger_player = EL_EMPTY;
+ ei->change_page[j].actual_trigger_player_bits = CH_PLAYER_NONE;
ei->change_page[j].actual_trigger_side = CH_SIDE_NONE;
ei->change_page[j].actual_trigger_ce_value = 0;
ei->change_page[j].actual_trigger_ce_score = 0;
boolean emulate_sp = TRUE; /* unless non-SUPAPLEX elements found */
#if 0
boolean do_fading = (game_status == GAME_MODE_MAIN);
+#endif
+#if 1
+ int initial_move_dir = MV_DOWN;
+#else
+ int initial_move_dir = MV_NONE;
#endif
int i, j, x, y;
player->present = FALSE;
player->active = FALSE;
+ player->mapped = FALSE;
+
player->killed = FALSE;
+ player->reanimated = FALSE;
player->action = 0;
player->effective_action = 0;
player->dynabombs_left = 0;
player->dynabomb_xl = FALSE;
- player->MovDir = MV_NONE;
+ player->MovDir = initial_move_dir;
player->MovPos = 0;
player->GfxPos = 0;
- player->GfxDir = MV_NONE;
+ player->GfxDir = initial_move_dir;
player->GfxAction = ACTION_DEFAULT;
player->Frame = 0;
player->StepFrame = 0;
- player->use_murphy = FALSE;
+ player->initial_element = player->element_nr;
player->artwork_element =
(level.use_artwork_element[i] ? level.artwork_element[i] :
player->element_nr);
+ player->use_murphy = FALSE;
player->block_last_field = FALSE; /* initialized in InitPlayerField() */
player->block_delay_adjustment = 0; /* initialized in InitPlayerField() */
player->step_counter = 0;
- player->last_move_dir = MV_NONE;
+ player->last_move_dir = initial_move_dir;
player->is_active = FALSE;
player->anim_delay_counter = 0;
player->post_delay_counter = 0;
- player->dir_waiting = MV_NONE;
+ player->dir_waiting = initial_move_dir;
player->action_waiting = ACTION_DEFAULT;
player->last_action_waiting = ACTION_DEFAULT;
player->special_action_bored = ACTION_DEFAULT;
player->inventory_infinite_element = EL_UNDEFINED;
player->inventory_size = 0;
+ if (level.use_initial_inventory[i])
+ {
+ for (j = 0; j < level.initial_inventory_size[i]; j++)
+ {
+ int element = level.initial_inventory_content[i][j];
+ int collect_count = element_info[element].collect_count_initial;
+ int k;
+
+ if (!IS_CUSTOM_ELEMENT(element))
+ collect_count = 1;
+
+ if (collect_count == 0)
+ player->inventory_infinite_element = element;
+ else
+ for (k = 0; k < collect_count; k++)
+ if (player->inventory_size < MAX_INVENTORY_SIZE)
+ player->inventory_element[player->inventory_size++] = element;
+ }
+ }
+
DigField(player, 0, 0, 0, 0, 0, 0, DF_NO_PUSH);
SnapField(player, 0, 0);
player->LevelSolved_SaveScore = FALSE;
player->LevelSolved_CountingTime = 0;
player->LevelSolved_CountingScore = 0;
+
+ map_player_action[i] = i;
}
network_player_action_received = FALSE;
GfxElement[x][y] = EL_UNDEFINED;
GfxAction[x][y] = ACTION_DEFAULT;
GfxDir[x][y] = MV_NONE;
+ GfxRedraw[x][y] = GFX_REDRAW_NONE;
}
SCAN_PLAYFIELD(x, y)
if (game.belt_dir[i] == MV_NONE)
game.belt_dir_nr[i] = 3; /* not moving, next moving left */
+#if USE_NEW_PLAYER_ASSIGNMENTS
+ /* !!! SAME AS init.c:InitPlayerInfo() -- FIX THIS !!! */
+ /* choose default local player */
+ local_player = &stored_player[0];
+
+ for (i = 0; i < MAX_PLAYERS; i++)
+ stored_player[i].connected = FALSE;
+
+ local_player->connected = TRUE;
+ /* !!! SAME AS init.c:InitPlayerInfo() -- FIX THIS !!! */
+
+ if (tape.playing)
+ {
+ /* try to guess locally connected team mode players (needed for correct
+ assignment of player figures from level to locally playing players) */
+
+ for (i = 0; i < MAX_PLAYERS; i++)
+ if (tape.player_participates[i])
+ stored_player[i].connected = TRUE;
+ }
+ else if (setup.team_mode && !options.network)
+ {
+ /* try to guess locally connected team mode players (needed for correct
+ assignment of player figures from level to locally playing players) */
+
+ for (i = 0; i < MAX_PLAYERS; i++)
+ if (setup.input[i].use_joystick ||
+ setup.input[i].key.left != KSYM_UNDEFINED)
+ stored_player[i].connected = TRUE;
+ }
+
+#if 0
+ for (i = 0; i < MAX_PLAYERS; i++)
+ printf("::: player %d: %s\n", i,
+ (stored_player[i].connected ? "connected" : "not connected"));
+
+ for (i = 0; i < MAX_PLAYERS; i++)
+ printf("::: player %d: %s\n", i,
+ (stored_player[i].present ? "present" : "not present"));
+#endif
+
+ /* check if any connected player was not found in playfield */
+ for (i = 0; i < MAX_PLAYERS; i++)
+ {
+ struct PlayerInfo *player = &stored_player[i];
+
+ if (player->connected && !player->present)
+ {
+ struct PlayerInfo *field_player = NULL;
+
+#if 0
+ printf("::: looking for field player for player %d ...\n", i);
+#endif
+
+ /* assign first free player found that is present in the playfield */
+
+ /* first try: look for unmapped playfield player that is not connected */
+ if (field_player == NULL)
+ for (j = 0; j < MAX_PLAYERS; j++)
+ if (stored_player[j].present &&
+ !stored_player[j].mapped &&
+ !stored_player[j].connected)
+ field_player = &stored_player[j];
+
+ /* second try: look for *any* unmapped playfield player */
+ if (field_player == NULL)
+ for (j = 0; j < MAX_PLAYERS; j++)
+ if (stored_player[j].present &&
+ !stored_player[j].mapped)
+ field_player = &stored_player[j];
+
+ if (field_player != NULL)
+ {
+ int jx = field_player->jx, jy = field_player->jy;
+
+#if 0
+ printf("::: found player figure %d\n", field_player->index_nr);
+#endif
+
+ player->present = FALSE;
+ player->active = FALSE;
+
+ field_player->present = TRUE;
+ field_player->active = TRUE;
+
+ /*
+ player->initial_element = field_player->initial_element;
+ player->artwork_element = field_player->artwork_element;
+
+ player->block_last_field = field_player->block_last_field;
+ player->block_delay_adjustment = field_player->block_delay_adjustment;
+ */
+
+ StorePlayer[jx][jy] = field_player->element_nr;
+
+ field_player->jx = field_player->last_jx = jx;
+ field_player->jy = field_player->last_jy = jy;
+
+ if (local_player == player)
+ local_player = field_player;
+
+ map_player_action[field_player->index_nr] = i;
+
+ field_player->mapped = TRUE;
+
+#if 0
+ printf("::: map_player_action[%d] == %d\n",
+ field_player->index_nr, i);
+#endif
+ }
+ }
+
+ if (player->connected && player->present)
+ player->mapped = TRUE;
+ }
+
+#else
+
/* check if any connected player was not found in playfield */
for (i = 0; i < MAX_PLAYERS; i++)
{
{
for (j = 0; j < MAX_PLAYERS; j++)
{
- struct PlayerInfo *some_player = &stored_player[j];
- int jx = some_player->jx, jy = some_player->jy;
+ struct PlayerInfo *field_player = &stored_player[j];
+ int jx = field_player->jx, jy = field_player->jy;
/* assign first free player found that is present in the playfield */
- if (some_player->present && !some_player->connected)
+ if (field_player->present && !field_player->connected)
{
player->present = TRUE;
player->active = TRUE;
- some_player->present = FALSE;
- some_player->active = FALSE;
+ field_player->present = FALSE;
+ field_player->active = FALSE;
- player->artwork_element = some_player->artwork_element;
+ player->initial_element = field_player->initial_element;
+ player->artwork_element = field_player->artwork_element;
- player->block_last_field = some_player->block_last_field;
- player->block_delay_adjustment = some_player->block_delay_adjustment;
+ player->block_last_field = field_player->block_last_field;
+ player->block_delay_adjustment = field_player->block_delay_adjustment;
StorePlayer[jx][jy] = player->element_nr;
+
player->jx = player->last_jx = jx;
player->jy = player->last_jy = jy;
}
}
}
+#endif
+
+#if 0
+ printf("::: local_player->present == %d\n", local_player->present);
+#endif
if (tape.playing)
{
/* when playing a tape, eliminate all players who do not participate */
+#if USE_NEW_PLAYER_ASSIGNMENTS
+ for (i = 0; i < MAX_PLAYERS; i++)
+ {
+ if (stored_player[i].active &&
+ !tape.player_participates[map_player_action[i]])
+ {
+ struct PlayerInfo *player = &stored_player[i];
+ int jx = player->jx, jy = player->jy;
+
+ player->active = FALSE;
+ StorePlayer[jx][jy] = 0;
+ Feld[jx][jy] = EL_EMPTY;
+ }
+ }
+#else
for (i = 0; i < MAX_PLAYERS; i++)
{
- if (stored_player[i].active && !tape.player_participates[i])
+ if (stored_player[i].active &&
+ !tape.player_participates[i])
{
struct PlayerInfo *player = &stored_player[i];
int jx = player->jx, jy = player->jy;
Feld[jx][jy] = EL_EMPTY;
}
}
+#endif
}
else if (!options.network && !setup.team_mode) /* && !tape.playing */
{
/* when recording the game, store which players take part in the game */
if (tape.recording)
{
+#if USE_NEW_PLAYER_ASSIGNMENTS
+ for (i = 0; i < MAX_PLAYERS; i++)
+ if (stored_player[i].connected)
+ tape.player_participates[i] = TRUE;
+#else
for (i = 0; i < MAX_PLAYERS; i++)
if (stored_player[i].active)
tape.player_participates[i] = TRUE;
+#endif
}
if (options.debug)
GfxElement[x][y] = EL_UNDEFINED;
GfxAction[x][y] = ACTION_DEFAULT;
GfxDir[x][y] = MV_NONE;
+#if 0
+ /* !!! this would prevent the removed tile from being redrawn !!! */
+ GfxRedraw[x][y] = GFX_REDRAW_NONE;
+#endif
}
void RemoveMovingField(int x, int y)
Store[oldx][oldy] = Store2[oldx][oldy] = 0;
- DrawLevelField(oldx, oldy);
+ TEST_DrawLevelField(oldx, oldy);
return;
}
if (next_element != EL_UNDEFINED)
Feld[oldx][oldy] = next_element;
- DrawLevelField(oldx, oldy);
- DrawLevelField(newx, newy);
+ TEST_DrawLevelField(oldx, oldy);
+ TEST_DrawLevelField(newx, newy);
}
void DrawDynamite(int x, int y)
if (quick_relocation)
{
- int offset = game.scroll_delay_value;
-
if (!IN_VIS_FIELD(SCREENX(x), SCREENY(y)) || center_screen)
{
if (!level.shifted_relocation || center_screen)
}
else
{
+#if 1
+ if (!level.shifted_relocation || center_screen)
+ {
+ /* quick relocation (without scrolling), with centering of screen */
+
+ scroll_x = (x < SBX_Left + MIDPOSX ? SBX_Left :
+ x > SBX_Right + MIDPOSX ? SBX_Right :
+ x - MIDPOSX);
+
+ scroll_y = (y < SBY_Upper + MIDPOSY ? SBY_Upper :
+ y > SBY_Lower + MIDPOSY ? SBY_Lower :
+ y - MIDPOSY);
+ }
+ else
+ {
+ /* quick relocation (without scrolling), but do not center screen */
+
+ int center_scroll_x = (old_x < SBX_Left + MIDPOSX ? SBX_Left :
+ old_x > SBX_Right + MIDPOSX ? SBX_Right :
+ old_x - MIDPOSX);
+
+ int center_scroll_y = (old_y < SBY_Upper + MIDPOSY ? SBY_Upper :
+ old_y > SBY_Lower + MIDPOSY ? SBY_Lower :
+ old_y - MIDPOSY);
+
+ int offset_x = x + (scroll_x - center_scroll_x);
+ int offset_y = y + (scroll_y - center_scroll_y);
+
+ scroll_x = (offset_x < SBX_Left + MIDPOSX ? SBX_Left :
+ offset_x > SBX_Right + MIDPOSX ? SBX_Right :
+ offset_x - MIDPOSX);
+
+ scroll_y = (offset_y < SBY_Upper + MIDPOSY ? SBY_Upper :
+ offset_y > SBY_Lower + MIDPOSY ? SBY_Lower :
+ offset_y - MIDPOSY);
+ }
+#else
/* quick relocation (without scrolling), inside visible screen area */
+ int offset = game.scroll_delay_value;
+
if ((move_dir == MV_LEFT && scroll_x > x - MIDPOSX + offset) ||
(move_dir == MV_RIGHT && scroll_x < x - MIDPOSX - offset))
scroll_x = x - MIDPOSX + (scroll_x < x - MIDPOSX ? -offset : +offset);
/* don't scroll over playfield boundaries */
if (scroll_y < SBY_Upper || scroll_y > SBY_Lower)
scroll_y = (scroll_y < SBY_Upper ? SBY_Upper : SBY_Lower);
+#endif
}
RedrawPlayfield(TRUE, 0,0,0,0);
CheckTriggeredElementChangeByPlayer(jx, jy, element, CE_PLAYER_ENTERS_X,
player->index_bit, enter_side);
+
+#if 1
+ if (player->is_switching)
+ {
+ /* ensure that relocation while still switching an element does not cause
+ a new element to be treated as also switched directly after relocation
+ (this is important for teleporter switches that teleport the player to
+ a place where another teleporter switch is in the same direction, which
+ would then incorrectly be treated as immediately switched before the
+ direction key that caused the switch was released) */
+
+ player->switch_x += jx - old_jx;
+ player->switch_y += jy - old_jy;
+ }
+#endif
}
void Explode(int ex, int ey, int phase, int mode)
InitField_WithBug2(x, y, FALSE);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
TestIfElementTouchesCustomElement(x, y);
if (GFX_CRUMBLED(element))
- DrawLevelFieldCrumbledSandNeighbours(x, y);
+ TEST_DrawLevelFieldCrumbledSandNeighbours(x, y);
if (IS_PLAYER(x, y) && !PLAYERINFO(x, y)->present)
StorePlayer[x][y] = 0;
int frame = getGraphicAnimationFrame(graphic, GfxFrame[x][y]);
if (phase == delay)
- DrawLevelFieldCrumbledSand(x, y);
+ TEST_DrawLevelFieldCrumbledSand(x, y);
if (IS_WALKABLE_OVER(Back[x][y]) && Back[x][y] != EL_EMPTY)
{
{
struct PlayerInfo *player = PLAYERINFO(x, y);
+#if USE_FIX_CE_ACTION_WITH_PLAYER
+ element = Feld[x][y] = player->initial_element;
+#else
element = Feld[x][y] = (player->use_murphy ? EL_SP_MURPHY :
player->element_nr);
+#endif
if (level.use_explosion_element[player->index_nr])
{
if (e_belt_nr == belt_nr)
{
Feld[xx][yy] = belt_base_switch_element[belt_nr] + belt_dir_nr;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
}
else if (IS_BELT(element) && belt_dir != MV_NONE)
int belt_part = Feld[xx][yy] - belt_base_element[belt_nr];
Feld[xx][yy] = belt_base_active_element[belt_nr] + belt_part;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
}
else if (IS_BELT_ACTIVE(element) && belt_dir == MV_NONE)
int belt_part = Feld[xx][yy] - belt_base_active_element[belt_nr];
Feld[xx][yy] = belt_base_element[belt_nr] + belt_part;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
}
}
element == EL_SWITCHGATE_SWITCH_DOWN)
{
Feld[xx][yy] = EL_SWITCHGATE_SWITCH_UP + game.switchgate_pos;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
else if (element == EL_DC_SWITCHGATE_SWITCH_UP ||
element == EL_DC_SWITCHGATE_SWITCH_DOWN)
{
Feld[xx][yy] = EL_DC_SWITCHGATE_SWITCH_UP + game.switchgate_pos;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
#else
if (element == EL_SWITCHGATE_SWITCH_UP)
{
Feld[xx][yy] = EL_SWITCHGATE_SWITCH_DOWN;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
else if (element == EL_SWITCHGATE_SWITCH_DOWN)
{
Feld[xx][yy] = EL_SWITCHGATE_SWITCH_UP;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
else if (element == EL_DC_SWITCHGATE_SWITCH_UP)
{
Feld[xx][yy] = EL_DC_SWITCHGATE_SWITCH_DOWN;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
else if (element == EL_DC_SWITCHGATE_SWITCH_DOWN)
{
Feld[xx][yy] = EL_DC_SWITCHGATE_SWITCH_UP;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
#endif
else if (element == EL_SWITCHGATE_OPEN ||
game.light_time_left > 0)
{
Feld[x][y] = EL_LIGHT_SWITCH_ACTIVE;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_LIGHT_SWITCH_ACTIVE &&
game.light_time_left == 0)
{
Feld[x][y] = EL_LIGHT_SWITCH;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_EMC_DRIPPER &&
game.light_time_left > 0)
{
Feld[x][y] = EL_EMC_DRIPPER_ACTIVE;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_EMC_DRIPPER_ACTIVE &&
game.light_time_left == 0)
{
Feld[x][y] = EL_EMC_DRIPPER;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_INVISIBLE_STEELWALL ||
element == EL_INVISIBLE_WALL ||
if (game.light_time_left > 0)
Feld[x][y] = getInvisibleActiveFromInvisibleElement(element);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
/* uncrumble neighbour fields, if needed */
if (element == EL_INVISIBLE_SAND)
- DrawLevelFieldCrumbledSandNeighbours(x, y);
+ TEST_DrawLevelFieldCrumbledSandNeighbours(x, y);
}
else if (element == EL_INVISIBLE_STEELWALL_ACTIVE ||
element == EL_INVISIBLE_WALL_ACTIVE ||
if (game.light_time_left == 0)
Feld[x][y] = getInvisibleFromInvisibleActiveElement(element);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
/* re-crumble neighbour fields, if needed */
if (element == EL_INVISIBLE_SAND)
- DrawLevelFieldCrumbledSandNeighbours(x, y);
+ TEST_DrawLevelFieldCrumbledSandNeighbours(x, y);
}
}
}
game.lenses_time_left > 0)
{
Feld[x][y] = EL_EMC_DRIPPER_ACTIVE;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_EMC_DRIPPER_ACTIVE &&
game.lenses_time_left == 0)
{
Feld[x][y] = EL_EMC_DRIPPER;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_INVISIBLE_STEELWALL ||
element == EL_INVISIBLE_WALL ||
if (game.lenses_time_left > 0)
Feld[x][y] = getInvisibleActiveFromInvisibleElement(element);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
/* uncrumble neighbour fields, if needed */
if (element == EL_INVISIBLE_SAND)
- DrawLevelFieldCrumbledSandNeighbours(x, y);
+ TEST_DrawLevelFieldCrumbledSandNeighbours(x, y);
}
else if (element == EL_INVISIBLE_STEELWALL_ACTIVE ||
element == EL_INVISIBLE_WALL_ACTIVE ||
if (game.lenses_time_left == 0)
Feld[x][y] = getInvisibleFromInvisibleActiveElement(element);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
/* re-crumble neighbour fields, if needed */
if (element == EL_INVISIBLE_SAND)
- DrawLevelFieldCrumbledSandNeighbours(x, y);
+ TEST_DrawLevelFieldCrumbledSandNeighbours(x, y);
}
}
}
game.magnify_time_left > 0)
{
Feld[x][y] = EL_EMC_FAKE_GRASS_ACTIVE;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_EMC_FAKE_GRASS_ACTIVE &&
game.magnify_time_left == 0)
{
Feld[x][y] = EL_EMC_FAKE_GRASS;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (IS_GATE_GRAY(element) &&
game.magnify_time_left > 0)
element - EL_EM_GATE_1_GRAY + EL_EM_GATE_1_GRAY_ACTIVE :
IS_EMC_GATE_GRAY(element) ?
element - EL_EMC_GATE_5_GRAY + EL_EMC_GATE_5_GRAY_ACTIVE :
+ IS_DC_GATE_GRAY(element) ?
+ EL_DC_GATE_WHITE_GRAY_ACTIVE :
element);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (IS_GATE_GRAY_ACTIVE(element) &&
game.magnify_time_left == 0)
element - EL_EM_GATE_1_GRAY_ACTIVE + EL_EM_GATE_1_GRAY :
IS_EMC_GATE_GRAY_ACTIVE(element) ?
element - EL_EMC_GATE_5_GRAY_ACTIVE + EL_EMC_GATE_5_GRAY :
+ IS_DC_GATE_GRAY_ACTIVE(element) ?
+ EL_DC_GATE_WHITE_GRAY :
element);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
}
}
else if (element == EL_TIMEGATE_SWITCH_ACTIVE)
{
Feld[xx][yy] = EL_TIMEGATE_SWITCH;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
*/
RemoveMovingField(x, y + 1);
Feld[x][y + 1] = EL_QUICKSAND_EMPTY;
Feld[x][y + 2] = EL_ROCK;
- DrawLevelField(x, y + 2);
+ TEST_DrawLevelField(x, y + 2);
object_hit = TRUE;
}
RemoveMovingField(x, y + 1);
Feld[x][y + 1] = EL_QUICKSAND_FAST_EMPTY;
Feld[x][y + 2] = EL_ROCK;
- DrawLevelField(x, y + 2);
+ TEST_DrawLevelField(x, y + 2);
object_hit = TRUE;
}
el_act_dir2img(element, GfxAction[x][y], MV_DOWN) != el2img(element))
{
ResetGfxAnimation(x, y);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
if (impact && CAN_EXPLODE_IMPACT(element))
{
Feld[move_x][move_y] = EL_EMC_SPRING_BUMPER_ACTIVE;
ResetGfxAnimation(move_x, move_y);
- DrawLevelField(move_x, move_y);
+ TEST_DrawLevelField(move_x, move_y);
MovDir[x][y] = back_dir;
}
Store[x][y + 1] = Store[x][y];
Store[x][y] = 0;
+ PlayLevelSoundAction(x, y, ACTION_FILLING);
+ }
+ else if (Feld[x][y + 1] == EL_QUICKSAND_FAST_EMPTY)
+ {
+ if (!MovDelay[x][y])
+ {
+ MovDelay[x][y] = TILEY + 1;
+
+ ResetGfxAnimation(x, y);
+ ResetGfxAnimation(x, y + 1);
+ }
+
+ if (MovDelay[x][y])
+ {
+ DrawLevelElement(x, y, EL_QUICKSAND_EMPTYING);
+ DrawLevelElement(x, y + 1, EL_QUICKSAND_FAST_FILLING);
+
+ MovDelay[x][y]--;
+ if (MovDelay[x][y])
+ return;
+ }
+
+ Feld[x][y] = EL_QUICKSAND_EMPTY;
+ Feld[x][y + 1] = EL_QUICKSAND_FAST_FULL;
+ Store[x][y + 1] = Store[x][y];
+ Store[x][y] = 0;
+
PlayLevelSoundAction(x, y, ACTION_FILLING);
}
}
Store[x][y + 1] = Store[x][y];
Store[x][y] = 0;
+ PlayLevelSoundAction(x, y, ACTION_FILLING);
+ }
+ else if (Feld[x][y + 1] == EL_QUICKSAND_EMPTY)
+ {
+ if (!MovDelay[x][y])
+ {
+ MovDelay[x][y] = TILEY + 1;
+
+ ResetGfxAnimation(x, y);
+ ResetGfxAnimation(x, y + 1);
+ }
+
+ if (MovDelay[x][y])
+ {
+ DrawLevelElement(x, y, EL_QUICKSAND_FAST_EMPTYING);
+ DrawLevelElement(x, y + 1, EL_QUICKSAND_FILLING);
+
+ MovDelay[x][y]--;
+ if (MovDelay[x][y])
+ return;
+ }
+
+ Feld[x][y] = EL_QUICKSAND_FAST_EMPTY;
+ Feld[x][y + 1] = EL_QUICKSAND_FULL;
+ Store[x][y + 1] = Store[x][y];
+ Store[x][y] = 0;
+
PlayLevelSoundAction(x, y, ACTION_FILLING);
}
}
element == EL_SP_SNIKSNAK ||
element == EL_SP_ELECTRON ||
element == EL_MOLE))
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
}
if (IS_PLAYER(x, y))
DrawPlayerField(x, y);
else
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
PlayLevelSoundActionIfLoop(x, y, ACTION_ATTACKING);
if (IN_SCR_FIELD(sx, sy))
{
- DrawLevelFieldCrumbledSand(xx, yy);
+ TEST_DrawLevelFieldCrumbledSand(xx, yy);
DrawGraphic(sx, sy, flame_graphic, frame);
}
}
{
if (Feld[xx][yy] == EL_FLAMES)
Feld[xx][yy] = EL_EMPTY;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
}
}
Feld[newx][newy] == EL_EM_STEEL_EXIT_OPEN)
{
RemoveField(x, y);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
PlayLevelSound(newx, newy, SND_PENGUIN_PASSING);
if (IN_SCR_FIELD(SCREENX(newx), SCREENY(newy)))
else if (IS_FOOD_PENGUIN(Feld[newx][newy]))
{
if (DigField(local_player, x, y, newx, newy, 0,0, DF_DIG) == MP_MOVING)
- DrawLevelField(newx, newy);
+ TEST_DrawLevelField(newx, newy);
else
GfxDir[x][y] = MovDir[x][y] = MV_NONE;
}
if (IS_PLAYER(x, y))
DrawPlayerField(x, y);
else
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
return;
}
else
{
Feld[newx][newy] = EL_EMPTY;
- DrawLevelField(newx, newy);
+ TEST_DrawLevelField(newx, newy);
}
PlayLevelSound(x, y, SND_PIG_DIGGING);
if (IS_PLAYER(x, y))
DrawPlayerField(x, y);
else
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
return;
}
else
{
Feld[newx][newy] = EL_EMPTY;
- DrawLevelField(newx, newy);
+ TEST_DrawLevelField(newx, newy);
PlayLevelSoundAction(x, y, ACTION_DIGGING);
}
if (IS_PLAYER(x, y))
DrawPlayerField(x, y);
else
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
#endif
return;
else if (IS_CUSTOM_ELEMENT(element) &&
CUSTOM_ELEMENT_CAN_ENTER_FIELD(element, newx, newy))
{
+#if 1
+ if (!DigFieldByCE(newx, newy, element))
+ return;
+#else
int new_element = Feld[newx][newy];
if (!IS_FREE(newx, newy))
else
{
RemoveField(newx, newy);
- DrawLevelField(newx, newy);
+ TEST_DrawLevelField(newx, newy);
}
/* if digged element was about to explode, prevent the explosion */
}
Store[newx][newy] = EL_EMPTY;
+
#if 1
/* this makes it possible to leave the removed element again */
if (IS_EQUAL_OR_IN_GROUP(new_element, MOVE_ENTER_EL(element)))
Store[newx][newy] = (move_leave_element == EL_TRIGGER_ELEMENT ?
new_element : move_leave_element);
}
+#endif
+
#endif
if (move_pattern & MV_MAZE_RUNNER_STYLE)
if (IS_PLAYER(x, y))
DrawPlayerField(x, y);
else
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
return;
}
if (IS_PLAYER(x, y))
DrawPlayerField(x, y);
else
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
PlayLevelSound(x, y, SND_DRAGON_ATTACKING);
else
{
Feld[newx][newy] = EL_EMPTY;
- DrawLevelField(newx, newy);
+ TEST_DrawLevelField(newx, newy);
}
PlayLevelSound(x, y, SND_YAMYAM_DIGGING);
else
{
Feld[newx][newy] = EL_EMPTY;
- DrawLevelField(newx, newy);
+ TEST_DrawLevelField(newx, newy);
}
PlayLevelSound(x, y, SND_DARK_YAMYAM_DIGGING);
ResetGfxAnimation(x, y);
GfxAction[x][y] = ACTION_DIGGING;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
MovDelay[newx][newy] = 0; /* start amoeba shrinking delay */
else /* element == EL_PACMAN */
{
Feld[newx][newy] = EL_EMPTY;
- DrawLevelField(newx, newy);
+ TEST_DrawLevelField(newx, newy);
PlayLevelSound(x, y, SND_PACMAN_DIGGING);
}
}
GfxAction[x][y], GfxDir[x][y], GfxFrame[x][y]);
#endif
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
return; /* element is still moving */
}
{
Feld[x][y] = EL_SAND;
- DrawLevelFieldCrumbledSandNeighbours(x, y);
+ TEST_DrawLevelFieldCrumbledSandNeighbours(x, y);
}
else if (element == EL_QUICKSAND_FILLING)
{
InitField(x, y, FALSE);
if (GFX_CRUMBLED(Feld[x][y]))
- DrawLevelFieldCrumbledSandNeighbours(x, y);
+ TEST_DrawLevelFieldCrumbledSandNeighbours(x, y);
if (ELEM_IS_PLAYER(move_leave_element))
RelocatePlayer(x, y, move_leave_element);
element_info[element].move_pattern == MV_WHEN_DROPPED)))
GfxDir[x][y] = MovDir[newx][newy] = 0;
- DrawLevelField(x, y);
- DrawLevelField(newx, newy);
+ TEST_DrawLevelField(x, y);
+ TEST_DrawLevelField(newx, newy);
Stop[newx][newy] = TRUE; /* ignore this element until the next frame */
else if (element == EL_PENGUIN)
TestIfFriendTouchesBadThing(newx, newy);
- /* give the player one last chance (one more frame) to move away */
+ if (DONT_GET_HIT_BY(element))
+ {
+ TestIfGoodThingGetsHitByBadThing(newx, newy, direction);
+ }
+
+ /* give the player one last chance (one more frame) to move away */
if (CAN_FALL(element) && direction == MV_DOWN &&
(last_line || (!IS_FREE(x, newy + 1) &&
(!IS_PLAYER(x, newy + 1) ||
AmoebaNr[x][y] = 0;
Feld[x][y] = new_element;
InitField(x, y, FALSE);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
done = TRUE;
}
}
{
Feld[x][y] = Store[x][y];
Store[x][y] = 0;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
}
}
if (!MovDelay[x][y])
{
Feld[x][y] = EL_EMPTY;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
/* don't let mole enter this field in this cycle;
(give priority to objects falling to this field from above) */
if (!level.amoeba_speed && element != EL_EMC_DRIPPER)
{
Feld[ax][ay] = EL_AMOEBA_DEAD;
- DrawLevelField(ax, ay);
+ TEST_DrawLevelField(ax, ay);
return;
}
if (i == 4 && (!waiting_for_player || element == EL_BD_AMOEBA))
{
Feld[ax][ay] = EL_AMOEBA_DEAD;
- DrawLevelField(ax, ay);
+ TEST_DrawLevelField(ax, ay);
AmoebaCnt[AmoebaNr[ax][ay]]--;
if (AmoebaCnt[AmoebaNr[ax][ay]] <= 0) /* amoeba is completely dead */
return;
}
- DrawLevelField(newax, neway);
+ TEST_DrawLevelField(newax, neway);
}
void Life(int ax, int ay)
{
Feld[xx][yy] = EL_EMPTY;
if (!Stop[xx][yy])
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
Stop[xx][yy] = TRUE;
changed = TRUE;
}
Feld[xx][yy] = element;
MovDelay[xx][yy] = (element == EL_GAME_OF_LIFE ? 0 : life_time-1);
if (!Stop[xx][yy])
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
Stop[xx][yy] = TRUE;
changed = TRUE;
}
if (MovDir[x][y] == MV_LEFT)
{
if (IN_LEV_FIELD(x - 1, y) && IS_WALL(Feld[x - 1][y]))
- DrawLevelField(x - 1, y);
+ TEST_DrawLevelField(x - 1, y);
}
else if (MovDir[x][y] == MV_RIGHT)
{
if (IN_LEV_FIELD(x + 1, y) && IS_WALL(Feld[x + 1][y]))
- DrawLevelField(x + 1, y);
+ TEST_DrawLevelField(x + 1, y);
}
else if (MovDir[x][y] == MV_UP)
{
if (IN_LEV_FIELD(x, y - 1) && IS_WALL(Feld[x][y - 1]))
- DrawLevelField(x, y - 1);
+ TEST_DrawLevelField(x, y - 1);
}
else
{
if (IN_LEV_FIELD(x, y + 1) && IS_WALL(Feld[x][y + 1]))
- DrawLevelField(x, y + 1);
+ TEST_DrawLevelField(x, y + 1);
}
Feld[x][y] = Store[x][y];
Store[x][y] = 0;
GfxDir[x][y] = MovDir[x][y] = MV_NONE;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
}
}
}
if (element == EL_EXPANDABLE_WALL && (links_frei || rechts_frei))
- DrawLevelField(ax, ay);
+ TEST_DrawLevelField(ax, ay);
if (!IN_LEV_FIELD(ax, ay-1) || IS_WALL(Feld[ax][ay-1]))
oben_massiv = TRUE;
element == EL_EXPANDABLE_STEELWALL_HORIZONTAL) &&
((links_massiv && rechts_massiv) ||
element == EL_EXPANDABLE_STEELWALL_VERTICAL))
- Feld[ax][ay] = EL_WALL;
+ Feld[ax][ay] = EL_STEELWALL;
if (new_wall)
PlayLevelSoundAction(ax, ay, ACTION_GROWING);
if (IN_LEV_FIELD(xx, yy) && Feld[xx][yy] == EL_FLAMES)
{
Feld[xx][yy] = EL_EMPTY;
- DrawLevelField(xx, yy);
+ TEST_DrawLevelField(xx, yy);
}
else
break;
/* if new animation frame was drawn, correct crumbled sand border */
if (IS_NEW_FRAME(GfxFrame[x][y], graphic))
- DrawLevelFieldCrumbledSand(x, y);
+ TEST_DrawLevelFieldCrumbledSand(x, y);
}
static int getSpecialActionElement(int element, int number, int base_element)
int action_type = change->action_type;
int action_mode = change->action_mode;
int action_arg = change->action_arg;
+ int action_element = change->action_element;
int i;
if (!change->has_action)
(level.time > 0 ? TimeLeft :
TimePlayed);
- int action_arg_element =
+ int action_arg_element_raw =
(action_arg == CA_ARG_PLAYER_TRIGGER ? change->actual_trigger_player :
action_arg == CA_ARG_ELEMENT_TRIGGER ? change->actual_trigger_element :
action_arg == CA_ARG_ELEMENT_TARGET ? change->target_element :
+ action_arg == CA_ARG_ELEMENT_ACTION ? change->action_element :
+ action_arg == CA_ARG_INVENTORY_RM_TRIGGER ? change->actual_trigger_element:
+ action_arg == CA_ARG_INVENTORY_RM_TARGET ? change->target_element :
+ action_arg == CA_ARG_INVENTORY_RM_ACTION ? change->action_element :
EL_EMPTY);
+ int action_arg_element = GetElementFromGroupElement(action_arg_element_raw);
+
+#if 0
+ if (action_arg_element_raw == EL_GROUP_START)
+ printf("::: %d,%d: %d ('%s')\n", x, y, element, EL_NAME(element));
+#endif
int action_arg_direction =
(action_arg >= CA_ARG_DIRECTION_LEFT &&
action_arg == CA_ARG_NUMBER_LEVEL_SCORE ? local_player->score :
action_arg == CA_ARG_ELEMENT_CV_TARGET ? GET_NEW_CE_VALUE(target_element):
action_arg == CA_ARG_ELEMENT_CV_TRIGGER ? change->actual_trigger_ce_value:
+ action_arg == CA_ARG_ELEMENT_CV_ACTION ? GET_NEW_CE_VALUE(action_element):
action_arg == CA_ARG_ELEMENT_CS_TARGET ? GET_CE_SCORE(target_element) :
action_arg == CA_ARG_ELEMENT_CS_TRIGGER ? change->actual_trigger_ce_score:
+ action_arg == CA_ARG_ELEMENT_CS_ACTION ? GET_CE_SCORE(action_element) :
action_arg == CA_ARG_ELEMENT_NR_TARGET ? change->target_element :
action_arg == CA_ARG_ELEMENT_NR_TRIGGER ? change->actual_trigger_element :
+ action_arg == CA_ARG_ELEMENT_NR_ACTION ? change->action_element :
-1);
int action_arg_number_old =
action_arg_number_min, action_arg_number_max);
#if 1
- int trigger_player_bits = change->actual_trigger_player_bits;
+ int trigger_player_bits =
+ (change->actual_trigger_player_bits != CH_PLAYER_NONE ?
+ change->actual_trigger_player_bits : change->trigger_player);
#else
int trigger_player_bits =
(change->actual_trigger_player >= EL_PLAYER_1 &&
(action_arg >= CA_ARG_PLAYER_1 &&
action_arg <= CA_ARG_PLAYER_4 ? action_arg - CA_ARG_PLAYER :
action_arg == CA_ARG_PLAYER_TRIGGER ? trigger_player_bits :
+ action_arg == CA_ARG_PLAYER_ACTION ? 1 << GET_PLAYER_NR(action_element) :
PLAYER_BITS_ANY);
/* ---------- execute action -------------------------------------------- */
break;
}
+ case CA_SET_LEVEL_RANDOM_SEED:
+ {
+#if 1
+ /* ensure that setting a new random seed while playing is predictable */
+ InitRND(action_arg_number_new ? action_arg_number_new : RND(1000000) + 1);
+#else
+ InitRND(action_arg_number_new);
+#endif
+
+#if 0
+ printf("::: %d -> %d\n", action_arg_number_new, RND(10));
+#endif
+
+#if 0
+ {
+ int i;
+
+ printf("::: ");
+ for (i = 0; i < 9; i++)
+ printf("%d, ", RND(2));
+ printf("\n");
+ }
+#endif
+
+ break;
+ }
+
/* ---------- player actions ------------------------------------------ */
case CA_MOVE_PLAYER:
case CA_SET_PLAYER_SPEED:
{
+#if 0
+ printf("::: trigger_player_bits == %d\n", trigger_player_bits);
+#endif
+
for (i = 0; i < MAX_PLAYERS; i++)
{
if (trigger_player_bits & (1 << i))
break;
}
+ case CA_SET_PLAYER_INVENTORY:
+ {
+ for (i = 0; i < MAX_PLAYERS; i++)
+ {
+ struct PlayerInfo *player = &stored_player[i];
+ int j, k;
+
+ if (trigger_player_bits & (1 << i))
+ {
+ int inventory_element = action_arg_element;
+
+ if (action_arg == CA_ARG_ELEMENT_TARGET ||
+ action_arg == CA_ARG_ELEMENT_TRIGGER ||
+ action_arg == CA_ARG_ELEMENT_ACTION)
+ {
+ int element = inventory_element;
+ int collect_count = element_info[element].collect_count_initial;
+
+ if (!IS_CUSTOM_ELEMENT(element))
+ collect_count = 1;
+
+ if (collect_count == 0)
+ player->inventory_infinite_element = element;
+ else
+ for (k = 0; k < collect_count; k++)
+ if (player->inventory_size < MAX_INVENTORY_SIZE)
+ player->inventory_element[player->inventory_size++] =
+ element;
+ }
+ else if (action_arg == CA_ARG_INVENTORY_RM_TARGET ||
+ action_arg == CA_ARG_INVENTORY_RM_TRIGGER ||
+ action_arg == CA_ARG_INVENTORY_RM_ACTION)
+ {
+ if (player->inventory_infinite_element != EL_UNDEFINED &&
+ IS_EQUAL_OR_IN_GROUP(player->inventory_infinite_element,
+ action_arg_element_raw))
+ player->inventory_infinite_element = EL_UNDEFINED;
+
+ for (k = 0, j = 0; j < player->inventory_size; j++)
+ {
+ if (!IS_EQUAL_OR_IN_GROUP(player->inventory_element[j],
+ action_arg_element_raw))
+ player->inventory_element[k++] = player->inventory_element[j];
+ }
+
+ player->inventory_size = k;
+ }
+ else if (action_arg == CA_ARG_INVENTORY_RM_FIRST)
+ {
+ if (player->inventory_size > 0)
+ {
+ for (j = 0; j < player->inventory_size - 1; j++)
+ player->inventory_element[j] = player->inventory_element[j + 1];
+
+ player->inventory_size--;
+ }
+ }
+ else if (action_arg == CA_ARG_INVENTORY_RM_LAST)
+ {
+ if (player->inventory_size > 0)
+ player->inventory_size--;
+ }
+ else if (action_arg == CA_ARG_INVENTORY_RM_ALL)
+ {
+ player->inventory_infinite_element = EL_UNDEFINED;
+ player->inventory_size = 0;
+ }
+ else if (action_arg == CA_ARG_INVENTORY_RESET)
+ {
+ player->inventory_infinite_element = EL_UNDEFINED;
+ player->inventory_size = 0;
+
+ if (level.use_initial_inventory[i])
+ {
+ for (j = 0; j < level.initial_inventory_size[i]; j++)
+ {
+ int element = level.initial_inventory_content[i][j];
+ int collect_count = element_info[element].collect_count_initial;
+
+ if (!IS_CUSTOM_ELEMENT(element))
+ collect_count = 1;
+
+ if (collect_count == 0)
+ player->inventory_infinite_element = element;
+ else
+ for (k = 0; k < collect_count; k++)
+ if (player->inventory_size < MAX_INVENTORY_SIZE)
+ player->inventory_element[player->inventory_size++] =
+ element;
+ }
+ }
+ }
+ }
+ }
+
+ break;
+ }
+
/* ---------- CE actions ---------------------------------------------- */
case CA_SET_CE_VALUE:
break;
}
+ case CA_SET_CE_ARTWORK:
+ {
+ int artwork_element = action_arg_element;
+ boolean reset_frame = FALSE;
+ int xx, yy;
+
+ if (action_arg == CA_ARG_ELEMENT_RESET)
+ artwork_element = (ei->use_gfx_element ? ei->gfx_element_initial :
+ element);
+
+ if (ei->gfx_element != artwork_element)
+ reset_frame = TRUE;
+
+ ei->gfx_element = artwork_element;
+
+ SCAN_PLAYFIELD(xx, yy)
+ {
+ if (Feld[xx][yy] == element)
+ {
+ if (reset_frame)
+ {
+ ResetGfxAnimation(xx, yy);
+ ResetRandomAnimationValue(xx, yy);
+ }
+
+ TEST_DrawLevelField(xx, yy);
+ }
+ }
+
+ break;
+ }
+
/* ---------- engine actions ------------------------------------------ */
case CA_SET_ENGINE_SCAN_MODE:
ResetRandomAnimationValue(x, y);
#endif
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
if (GFX_CRUMBLED(new_element))
- DrawLevelFieldCrumbledSandNeighbours(x, y);
+ TEST_DrawLevelFieldCrumbledSandNeighbours(x, y);
}
#if 1
{
/* reset actual trigger element, trigger player and action element */
change->actual_trigger_element = EL_EMPTY;
- change->actual_trigger_player = EL_PLAYER_1;
- change->actual_trigger_player_bits = CH_PLAYER_1;
+ change->actual_trigger_player = EL_EMPTY;
+ change->actual_trigger_player_bits = CH_PLAYER_NONE;
change->actual_trigger_side = CH_SIDE_NONE;
change->actual_trigger_ce_value = 0;
change->actual_trigger_ce_score = 0;
int element = MovingOrBlocked2Element(x, y);
struct ElementInfo *ei = &element_info[element];
struct ElementChangeInfo *change = &ei->change_page[page];
+ boolean handle_action_before_change = FALSE;
#ifdef DEBUG
if (!CAN_CHANGE_OR_HAS_ACTION(element) &&
return;
}
+#if 1
+ /* special case: set new level random seed before changing element */
+ if (change->has_action && change->action_type == CA_SET_LEVEL_RANDOM_SEED)
+ handle_action_before_change = TRUE;
+
+ if (change->has_action && handle_action_before_change)
+ ExecuteCustomElementAction(x, y, element, page);
+#endif
+
if (change->can_change)
{
if (ChangeElement(x, y, element, page))
}
}
- if (change->has_action)
+ if (change->has_action && !handle_action_before_change)
ExecuteCustomElementAction(x, y, element, page);
}
}
change->actual_trigger_ce_value = CustomValue[trigger_x][trigger_y];
change->actual_trigger_ce_score = GET_CE_SCORE(trigger_element);
+#if 0
+ printf("::: TRIGGERED CHANGE FOUND: %d ['%s'], %d\n",
+ element, EL_NAME(element), p);
+#endif
+
if ((change->can_change && !change_done) || change->has_action)
{
int x, y;
{
if (change->can_change && !change_done)
{
+#if USE_FIX_NO_ACTION_AFTER_CHANGE
+ /* if element already changed in this frame, not only prevent
+ another element change (checked in ChangeElement()), but
+ also prevent additional element actions for this element */
+
+ if (ChangeCount[x][y] >= game.max_num_changes_per_frame &&
+ !level.use_action_after_change_bug)
+ continue;
+#endif
+
+#if 0
+ printf("::: TRIGGERED CHANGE FOUND: %d ['%s'], %d -- CHANGE\n",
+ element, EL_NAME(element), p);
+#endif
+
ChangeDelay[x][y] = 1;
ChangeEvent[x][y] = trigger_event;
#if USE_NEW_DELAYED_ACTION
else if (change->has_action)
{
+#if USE_FIX_NO_ACTION_AFTER_CHANGE
+ /* if element already changed in this frame, not only prevent
+ another element change (checked in ChangeElement()), but
+ also prevent additional element actions for this element */
+
+ if (ChangeCount[x][y] >= game.max_num_changes_per_frame &&
+ !level.use_action_after_change_bug)
+ continue;
+#endif
+
+
+#if 0
+ printf("::: TRIGGERED CHANGE FOUND: %d ['%s'], %d -- ACTION\n",
+ element, EL_NAME(element), p);
+#endif
+
ExecuteCustomElementAction(x, y, element, p);
PlayLevelSoundElementAction(x, y, element, ACTION_PAGE_1 + p);
}
{
change_done = TRUE;
change_done_any = TRUE;
+
+#if 0
+ printf("::: TRIGGERED CHANGE FOUND: %d ['%s'], %d -- DONE\n",
+ element, EL_NAME(element), p);
+#endif
+
}
}
}
RECURSION_LOOP_DETECTION_START(trigger_element, FALSE);
+#if 0
+ printf("::: X: trigger_player_bits == %d\n", trigger_player);
+#endif
+
for (p = 0; p < element_info[element].num_change_pages; p++)
{
struct ElementChangeInfo *change = &element_info[element].change_page[p];
}
if (game.restart_level)
- StartGameActions(options.network, setup.autorecord, NEW_RANDOMIZE);
+ StartGameActions(options.network, setup.autorecord, level.random_seed);
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
{
if (tape.recording)
TapeRecordAction(tape_action);
+#if USE_NEW_PLAYER_ASSIGNMENTS
+ {
+ byte mapped_action[MAX_PLAYERS];
+
+ for (i = 0; i < MAX_PLAYERS; i++)
+ mapped_action[i] = stored_player[map_player_action[i]].effective_action;
+
+ for (i = 0; i < MAX_PLAYERS; i++)
+ stored_player[i].effective_action = mapped_action[i];
+ }
+#endif
+
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
{
GameActions_EM_Main();
if (MovDelay[x][y] <= 0)
{
RemoveField(x, y);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
TestIfElementTouchesCustomElement(x, y); /* for empty space */
}
if (GfxAction[x][y] == ACTION_PUSHING && !IS_MOVING(x, y))
{
ResetGfxAnimation(x, y);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
#if DEBUG
DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
if (IS_GEM(element) || element == EL_SP_INFOTRON)
- DrawTwinkleOnField(x, y);
+ TEST_DrawTwinkleOnField(x, y);
}
else if (IS_MOVING(x, y))
ContinueMoving(x, y);
DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
if (IS_GEM(element) || element == EL_SP_INFOTRON)
- DrawTwinkleOnField(x, y);
+ TEST_DrawTwinkleOnField(x, y);
}
else if ((element == EL_ACID ||
element == EL_EXIT_OPEN ||
element == EL_MAGIC_WALL_FULL)
{
Feld[x][y] = EL_MAGIC_WALL_DEAD;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_BD_MAGIC_WALL_ACTIVE ||
element == EL_BD_MAGIC_WALL_FULL)
{
Feld[x][y] = EL_BD_MAGIC_WALL_DEAD;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_DC_MAGIC_WALL_ACTIVE ||
element == EL_DC_MAGIC_WALL_FULL)
{
Feld[x][y] = EL_DC_MAGIC_WALL_DEAD;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
}
}
}
+#if USE_DELAYED_GFX_REDRAW
+ SCAN_PLAYFIELD(x, y)
+ {
+#if 1
+ if (GfxRedraw[x][y] != GFX_REDRAW_NONE)
+#else
+ if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)) &&
+ GfxRedraw[x][y] != GFX_REDRAW_NONE)
+#endif
+ {
+ /* !!! PROBLEM: THIS REDRAWS THE PLAYFIELD _AFTER_ THE SCAN, BUT TILES
+ !!! MAY HAVE CHANGED AFTER BEING DRAWN DURING PLAYFIELD SCAN !!! */
+
+ if (GfxRedraw[x][y] & GFX_REDRAW_TILE)
+ DrawLevelField(x, y);
+
+ if (GfxRedraw[x][y] & GFX_REDRAW_TILE_CRUMBLED)
+ DrawLevelFieldCrumbledSand(x, y);
+
+ if (GfxRedraw[x][y] & GFX_REDRAW_TILE_CRUMBLED_NEIGHBOURS)
+ DrawLevelFieldCrumbledSandNeighbours(x, y);
+
+ if (GfxRedraw[x][y] & GFX_REDRAW_TILE_TWINKLED)
+ DrawTwinkleOnField(x, y);
+ }
+
+ GfxRedraw[x][y] = GFX_REDRAW_NONE;
+ }
+#endif
+
CheckLevelTime();
DrawAllPlayers();
void ScrollLevel(int dx, int dy)
{
-#if 1
+#if 0
+ /* (directly solved in BlitBitmap() now) */
static Bitmap *bitmap_db_field2 = NULL;
int softscroll_offset = (setup.soft_scrolling ? TILEX : 0);
int x, y;
#else
- int i, x, y;
+ int x, y;
#endif
#if 0
return;
#endif
-#if 1
+#if 0
+ /* (directly solved in BlitBitmap() now) */
if (bitmap_db_field2 == NULL)
bitmap_db_field2 = CreateBitmap(FXSIZE, FYSIZE, DEFAULT_DEPTH);
else if (old_jx == jx && old_jy != jy)
player->MovDir = (old_jy < jy ? MV_DOWN : MV_UP);
- DrawLevelField(jx, jy); /* for "crumbled sand" */
+ TEST_DrawLevelField(jx, jy); /* for "crumbled sand" */
player->last_move_dir = player->MovDir;
player->is_moving = TRUE;
if (Feld[jx][jy] == EL_EXIT_OPEN ||
Feld[jx][jy] == EL_EM_EXIT_OPEN ||
+#if 1
+ Feld[jx][jy] == EL_EM_EXIT_OPENING ||
+#endif
Feld[jx][jy] == EL_STEEL_EXIT_OPEN ||
Feld[jx][jy] == EL_EM_STEEL_EXIT_OPEN ||
+#if 1
+ Feld[jx][jy] == EL_EM_STEEL_EXIT_OPENING ||
+#endif
Feld[jx][jy] == EL_SP_EXIT_OPEN ||
Feld[jx][jy] == EL_SP_EXIT_OPENING) /* <-- special case */
{
CE_PLAYER_ENTERS_X,
player->index_bit, enter_side);
+#if USE_FIX_CE_ACTION_WITH_PLAYER
+ CheckTriggeredElementChangeBySide(jx, jy, player->initial_element,
+ CE_MOVE_OF_X, move_direction);
+#else
CheckTriggeredElementChangeBySide(jx, jy, player->element_nr,
CE_MOVE_OF_X, move_direction);
+#endif
}
if (game.engine_version >= VERSION_IDENT(3,0,7,0))
if (!IN_LEV_FIELD(xx, yy))
continue;
- if (IS_PLAYER(x, y))
+ if (IS_PLAYER(x, y)) /* player found at center element */
{
struct PlayerInfo *player = PLAYERINFO(x, y);
CheckTriggeredElementChangeByPlayer(xx, yy, border_element,
CE_PLAYER_TOUCHES_X,
player->index_bit, border_side);
+
+#if USE_FIX_CE_ACTION_WITH_PLAYER
+ {
+ /* use player element that is initially defined in the level playfield,
+ not the player element that corresponds to the runtime player number
+ (example: a level that contains EL_PLAYER_3 as the only player would
+ incorrectly give EL_PLAYER_1 for "player->element_nr") */
+ int player_element = PLAYERINFO(x, y)->initial_element;
+
+ CheckElementChangeBySide(xx, yy, border_element, player_element,
+ CE_TOUCHING_X, border_side);
+ }
+#endif
}
- else if (IS_PLAYER(xx, yy))
+ else if (IS_PLAYER(xx, yy)) /* player found at border element */
{
struct PlayerInfo *player = PLAYERINFO(xx, yy);
CheckTriggeredElementChangeByPlayer(x, y, center_element,
CE_PLAYER_TOUCHES_X,
player->index_bit, center_side);
+
+#if USE_FIX_CE_ACTION_WITH_PLAYER
+ {
+ /* use player element that is initially defined in the level playfield,
+ not the player element that corresponds to the runtime player number
+ (example: a level that contains EL_PLAYER_3 as the only player would
+ incorrectly give EL_PLAYER_1 for "player->element_nr") */
+ int player_element = PLAYERINFO(xx, yy)->initial_element;
+
+ CheckElementChangeBySide(x, y, center_element, player_element,
+ CE_TOUCHING_X, center_side);
+ }
+#endif
+
break;
}
}
/* check for change of border element */
CheckElementChangeBySide(xx, yy, border_element, center_element,
CE_TOUCHING_X, center_side);
+
+ /* (center element cannot be player, so we dont have to check this here) */
}
for (i = 0; i < NUM_DIRECTIONS; i++)
{
+ int xx = x + xy[i][0];
+ int yy = y + xy[i][1];
int border_side = trigger_sides[i][1];
int border_element = border_element_old[i];
change_center_element =
CheckElementChangeBySide(x, y, center_element, border_element,
CE_TOUCHING_X, border_side);
+
+#if USE_FIX_CE_ACTION_WITH_PLAYER
+ if (IS_PLAYER(xx, yy))
+ {
+ /* use player element that is initially defined in the level playfield,
+ not the player element that corresponds to the runtime player number
+ (example: a level that contains EL_PLAYER_3 as the only player would
+ incorrectly give EL_PLAYER_1 for "player->element_nr") */
+ int player_element = PLAYERINFO(xx, yy)->initial_element;
+
+ CheckElementChangeBySide(x, y, center_element, player_element,
+ CE_TOUCHING_X, border_side);
+ }
+#endif
}
}
CheckElementChangeBySide(x, y, hitting_element, touched_element,
CE_HITTING_X, touched_side);
- CheckElementChangeBySide(hitx, hity, touched_element,
- hitting_element, CE_HIT_BY_X, hitting_side);
+ CheckElementChangeBySide(hitx, hity, touched_element, hitting_element,
+ CE_HIT_BY_X, hitting_side);
CheckElementChangeBySide(hitx, hity, touched_element, hitting_element,
CE_HIT_BY_SOMETHING, opposite_direction);
+
+#if USE_FIX_CE_ACTION_WITH_PLAYER
+ if (IS_PLAYER(hitx, hity))
+ {
+ /* use player element that is initially defined in the level playfield,
+ not the player element that corresponds to the runtime player number
+ (example: a level that contains EL_PLAYER_3 as the only player would
+ incorrectly give EL_PLAYER_1 for "player->element_nr") */
+ int player_element = PLAYERINFO(hitx, hity)->initial_element;
+
+ CheckElementChangeBySide(x, y, hitting_element, player_element,
+ CE_HITTING_X, touched_side);
+ }
+#endif
}
}
test_x = bad_x + test_xy[i][0];
test_y = bad_y + test_xy[i][1];
+
if (!IN_LEV_FIELD(test_x, test_y))
continue;
kill_x = test_x;
kill_y = test_y;
+
break;
}
else if (test_element == EL_PENGUIN)
{
kill_x = test_x;
kill_y = test_y;
+
break;
}
}
}
}
+void TestIfGoodThingGetsHitByBadThing(int bad_x, int bad_y, int bad_move_dir)
+{
+ int bad_element = Feld[bad_x][bad_y];
+ int dx = (bad_move_dir == MV_LEFT ? -1 : bad_move_dir == MV_RIGHT ? +1 : 0);
+ int dy = (bad_move_dir == MV_UP ? -1 : bad_move_dir == MV_DOWN ? +1 : 0);
+ int test_x = bad_x + dx, test_y = bad_y + dy;
+ int test_move_dir, test_element;
+ int kill_x = -1, kill_y = -1;
+
+ if (!IN_LEV_FIELD(test_x, test_y))
+ return;
+
+ test_move_dir =
+ (IS_MOVING(test_x, test_y) ? MovDir[test_x][test_y] : MV_NONE);
+
+ test_element = Feld[test_x][test_y];
+
+ if (test_move_dir != bad_move_dir)
+ {
+ /* good thing can be player or penguin that does not move away */
+ if (IS_PLAYER(test_x, test_y))
+ {
+ struct PlayerInfo *player = PLAYERINFO(test_x, test_y);
+
+ /* (note: in comparison to DONT_RUN_TO and DONT_TOUCH, also handle the
+ player as being hit when he is moving towards the bad thing, because
+ the "get hit by" condition would be lost after the player stops) */
+ if (player->MovPos != 0 && player->MovDir == bad_move_dir)
+ return; /* player moves away from bad thing */
+
+ kill_x = test_x;
+ kill_y = test_y;
+ }
+ else if (test_element == EL_PENGUIN)
+ {
+ kill_x = test_x;
+ kill_y = test_y;
+ }
+ }
+
+ if (kill_x != -1 || kill_y != -1)
+ {
+ if (IS_PLAYER(kill_x, kill_y))
+ {
+ struct PlayerInfo *player = PLAYERINFO(kill_x, kill_y);
+
+ if (player->shield_deadly_time_left > 0 &&
+ !IS_INDESTRUCTIBLE(bad_element))
+ Bang(bad_x, bad_y);
+ else if (!PLAYER_ENEMY_PROTECTED(kill_x, kill_y))
+ KillPlayer(player);
+ }
+ else
+ Bang(kill_x, kill_y);
+ }
+}
+
void TestIfPlayerTouchesBadThing(int x, int y)
{
TestIfGoodThingHitsBadThing(x, y, MV_NONE);
if (!player->active)
return;
+#if 0
+ printf("::: 0: killed == %d, active == %d, reanimated == %d\n",
+ player->killed, player->active, player->reanimated);
+#endif
+
/* the following code was introduced to prevent an infinite loop when calling
-> Bang()
-> CheckTriggeredElementChangeExt()
player->shield_normal_time_left = 0;
player->shield_deadly_time_left = 0;
+#if 0
+ printf("::: 1: killed == %d, active == %d, reanimated == %d\n",
+ player->killed, player->active, player->reanimated);
+#endif
+
Bang(jx, jy);
+
+#if 0
+ printf("::: 2: killed == %d, active == %d, reanimated == %d\n",
+ player->killed, player->active, player->reanimated);
+#endif
+
+#if USE_PLAYER_REANIMATION
+#if 1
+ if (player->reanimated) /* killed player may have been reanimated */
+ player->killed = player->reanimated = FALSE;
+ else
+ BuryPlayer(player);
+#else
+ if (player->killed) /* player may have been reanimated */
+ BuryPlayer(player);
+#endif
+#else
BuryPlayer(player);
+#endif
}
static void KillPlayerUnlessEnemyProtected(int x, int y)
StorePlayer[jx][jy] = 0;
if (player->is_moving)
- DrawLevelField(player->last_jx, player->last_jy);
+ TEST_DrawLevelField(player->last_jx, player->last_jy);
for (i = 0; i < MAX_PLAYERS; i++)
if (stored_player[i].active)
=============================================================================
*/
-int DigField(struct PlayerInfo *player,
- int oldx, int oldy, int x, int y,
- int real_dx, int real_dy, int mode)
+static int DigField(struct PlayerInfo *player,
+ int oldx, int oldy, int x, int y,
+ int real_dx, int real_dy, int mode)
{
boolean is_player = (IS_PLAYER(oldx, oldy) || mode != DF_DIG);
boolean player_was_pushing = player->is_pushing;
}
else if (element == EL_EXIT_OPEN ||
element == EL_EM_EXIT_OPEN ||
+#if 1
+ element == EL_EM_EXIT_OPENING ||
+#endif
element == EL_STEEL_EXIT_OPEN ||
element == EL_EM_STEEL_EXIT_OPEN ||
+#if 1
+ element == EL_EM_STEEL_EXIT_OPENING ||
+#endif
element == EL_SP_EXIT_OPEN ||
element == EL_SP_EXIT_OPENING)
{
if (!(IN_LEV_FIELD(nextx, nexty) &&
(IS_FREE(nextx, nexty) ||
- (Feld[nextx][nexty] == EL_SOKOBAN_FIELD_EMPTY &&
- IS_SB_ELEMENT(element)))))
+ (IS_SB_ELEMENT(element) &&
+ Feld[nextx][nexty] == EL_SOKOBAN_FIELD_EMPTY) ||
+ (IS_CUSTOM_ELEMENT(element) &&
+ CUSTOM_ELEMENT_CAN_ENTER_FIELD(element, nextx, nexty)))))
return MP_NO_ACTION;
if (!checkDiagonalPushing(player, x, y, real_dx, real_dy))
return MP_NO_ACTION;
}
+ if (IS_CUSTOM_ELEMENT(element) &&
+ CUSTOM_ELEMENT_CAN_ENTER_FIELD(element, nextx, nexty))
+ {
+ if (!DigFieldByCE(nextx, nexty, element))
+ return MP_NO_ACTION;
+ }
+
if (IS_SB_ELEMENT(element))
{
if (element == EL_SOKOBAN_FIELD_FULL)
game.robot_wheel_active = TRUE;
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_SP_TERMINAL)
{
local_player->lights_still_needed--;
ResetGfxAnimation(x, y);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_TIME_ORB_FULL)
{
}
ResetGfxAnimation(x, y);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
}
else if (element == EL_EMC_MAGIC_BALL_SWITCH ||
element == EL_EMC_MAGIC_BALL_SWITCH_ACTIVE)
return MP_MOVING;
}
-boolean SnapField(struct PlayerInfo *player, int dx, int dy)
+static boolean DigFieldByCE(int x, int y, int digging_element)
+{
+ int element = Feld[x][y];
+
+ if (!IS_FREE(x, y))
+ {
+ int action = (IS_DIGGABLE(element) ? ACTION_DIGGING :
+ IS_COLLECTIBLE(element) ? ACTION_COLLECTING :
+ ACTION_BREAKING);
+
+ /* no element can dig solid indestructible elements */
+ if (IS_INDESTRUCTIBLE(element) &&
+ !IS_DIGGABLE(element) &&
+ !IS_COLLECTIBLE(element))
+ return FALSE;
+
+ if (AmoebaNr[x][y] &&
+ (element == EL_AMOEBA_FULL ||
+ element == EL_BD_AMOEBA ||
+ element == EL_AMOEBA_GROWING))
+ {
+ AmoebaCnt[AmoebaNr[x][y]]--;
+ AmoebaCnt2[AmoebaNr[x][y]]--;
+ }
+
+ if (IS_MOVING(x, y))
+ RemoveMovingField(x, y);
+ else
+ {
+ RemoveField(x, y);
+ TEST_DrawLevelField(x, y);
+ }
+
+ /* if digged element was about to explode, prevent the explosion */
+ ExplodeField[x][y] = EX_TYPE_NONE;
+
+ PlayLevelSoundAction(x, y, action);
+ }
+
+ Store[x][y] = EL_EMPTY;
+
+#if 1
+ /* this makes it possible to leave the removed element again */
+ if (IS_EQUAL_OR_IN_GROUP(element, MOVE_ENTER_EL(digging_element)))
+ Store[x][y] = element;
+#else
+ if (IS_EQUAL_OR_IN_GROUP(element, MOVE_ENTER_EL(digging_element)))
+ {
+ int move_leave_element = element_info[digging_element].move_leave_element;
+
+ /* this makes it possible to leave the removed element again */
+ Store[x][y] = (move_leave_element == EL_TRIGGER_ELEMENT ?
+ element : move_leave_element);
+ }
+#endif
+
+ return TRUE;
+}
+
+static boolean SnapField(struct PlayerInfo *player, int dx, int dy)
{
int jx = player->jx, jy = player->jy;
int x = jx + dx, y = jy + dy;
}
if (player->MovPos != 0) /* prevent graphic bugs in versions < 2.2.0 */
- DrawLevelField(player->last_jx, player->last_jy);
+ TEST_DrawLevelField(player->last_jx, player->last_jy);
- DrawLevelField(x, y);
+ TEST_DrawLevelField(x, y);
return TRUE;
}
-boolean DropElement(struct PlayerInfo *player)
+static boolean DropElement(struct PlayerInfo *player)
{
int old_element, new_element;
int dropx = player->jx, dropy = player->jy;