projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added score server request handling for Emscripten platform
[rocksndiamonds.git]
/
src
/
editor.c
diff --git
a/src/editor.c
b/src/editor.c
index 24590595e96d645f563ad4ee6e9c9fa375feed44..282c530025ca3a893370b3080e65f4392f798d89 100644
(file)
--- a/
src/editor.c
+++ b/
src/editor.c
@@
-637,6
+637,7
@@
enum
// checkbuttons/radiobuttons for level/element properties
GADGET_ID_AUTO_COUNT_GEMS,
// checkbuttons/radiobuttons for level/element properties
GADGET_ID_AUTO_COUNT_GEMS,
+ GADGET_ID_RATE_TIME_OVER_SCORE,
GADGET_ID_USE_LEVELSET_ARTWORK,
GADGET_ID_COPY_LEVEL_TEMPLATE,
GADGET_ID_RANDOM_PERCENTAGE,
GADGET_ID_USE_LEVELSET_ARTWORK,
GADGET_ID_COPY_LEVEL_TEMPLATE,
GADGET_ID_RANDOM_PERCENTAGE,
@@
-656,6
+657,7
@@
enum
GADGET_ID_AUTO_EXIT_SOKOBAN,
GADGET_ID_SOLVED_BY_ONE_PLAYER,
GADGET_ID_FINISH_DIG_COLLECT,
GADGET_ID_AUTO_EXIT_SOKOBAN,
GADGET_ID_SOLVED_BY_ONE_PLAYER,
GADGET_ID_FINISH_DIG_COLLECT,
+ GADGET_ID_KEEP_WALKABLE_CE,
GADGET_ID_CONTINUOUS_SNAPPING,
GADGET_ID_BLOCK_SNAP_FIELD,
GADGET_ID_BLOCK_LAST_FIELD,
GADGET_ID_CONTINUOUS_SNAPPING,
GADGET_ID_BLOCK_SNAP_FIELD,
GADGET_ID_BLOCK_LAST_FIELD,
@@
-946,6
+948,7
@@
enum
enum
{
ED_CHECKBUTTON_ID_AUTO_COUNT_GEMS,
enum
{
ED_CHECKBUTTON_ID_AUTO_COUNT_GEMS,
+ ED_CHECKBUTTON_ID_RATE_TIME_OVER_SCORE,
ED_CHECKBUTTON_ID_USE_LEVELSET_ARTWORK,
ED_CHECKBUTTON_ID_COPY_LEVEL_TEMPLATE,
ED_CHECKBUTTON_ID_RANDOM_RESTRICTED,
ED_CHECKBUTTON_ID_USE_LEVELSET_ARTWORK,
ED_CHECKBUTTON_ID_COPY_LEVEL_TEMPLATE,
ED_CHECKBUTTON_ID_RANDOM_RESTRICTED,
@@
-965,6
+968,7
@@
enum
ED_CHECKBUTTON_ID_AUTO_EXIT_SOKOBAN,
ED_CHECKBUTTON_ID_SOLVED_BY_ONE_PLAYER,
ED_CHECKBUTTON_ID_FINISH_DIG_COLLECT,
ED_CHECKBUTTON_ID_AUTO_EXIT_SOKOBAN,
ED_CHECKBUTTON_ID_SOLVED_BY_ONE_PLAYER,
ED_CHECKBUTTON_ID_FINISH_DIG_COLLECT,
+ ED_CHECKBUTTON_ID_KEEP_WALKABLE_CE,
ED_CHECKBUTTON_ID_CONTINUOUS_SNAPPING,
ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD,
ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD,
ED_CHECKBUTTON_ID_CONTINUOUS_SNAPPING,
ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD,
ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD,
@@
-1019,7
+1023,7
@@
enum
};
#define ED_CHECKBUTTON_ID_LEVEL_FIRST ED_CHECKBUTTON_ID_AUTO_COUNT_GEMS
};
#define ED_CHECKBUTTON_ID_LEVEL_FIRST ED_CHECKBUTTON_ID_AUTO_COUNT_GEMS
-#define ED_CHECKBUTTON_ID_LEVEL_LAST ED_CHECKBUTTON_ID_
AUTO_COUNT_GEMS
+#define ED_CHECKBUTTON_ID_LEVEL_LAST ED_CHECKBUTTON_ID_
RATE_TIME_OVER_SCORE
#define ED_CHECKBUTTON_ID_LEVELSET_FIRST ED_CHECKBUTTON_ID_USE_LEVELSET_ARTWORK
#define ED_CHECKBUTTON_ID_LEVELSET_LAST ED_CHECKBUTTON_ID_COPY_LEVEL_TEMPLATE
#define ED_CHECKBUTTON_ID_LEVELSET_FIRST ED_CHECKBUTTON_ID_USE_LEVELSET_ARTWORK
#define ED_CHECKBUTTON_ID_LEVELSET_LAST ED_CHECKBUTTON_ID_COPY_LEVEL_TEMPLATE
@@
-1423,7
+1427,7
@@
static struct
"score for time or steps left:", NULL, NULL
},
{
"score for time or steps left:", NULL, NULL
},
{
- ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(1
2
),
+ ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(1
3
),
0, 9999,
GADGET_ID_LEVEL_RANDOM_SEED_DOWN, GADGET_ID_LEVEL_RANDOM_SEED_UP,
GADGET_ID_LEVEL_RANDOM_SEED_TEXT, GADGET_ID_NONE,
0, 9999,
GADGET_ID_LEVEL_RANDOM_SEED_DOWN, GADGET_ID_LEVEL_RANDOM_SEED_UP,
GADGET_ID_LEVEL_RANDOM_SEED_TEXT, GADGET_ID_NONE,
@@
-2510,7
+2514,7
@@
static struct
NULL, NULL, NULL, "time score for 1 or 10 seconds/steps"
},
{
NULL, NULL, NULL, "time score for 1 or 10 seconds/steps"
},
{
- ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(1
1
),
+ ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(1
2
),
GADGET_ID_GAME_ENGINE_TYPE, GADGET_ID_NONE,
-1,
options_game_engine_type,
GADGET_ID_GAME_ENGINE_TYPE, GADGET_ID_NONE,
-1,
options_game_engine_type,
@@
-3025,6
+3029,13
@@
static struct
NULL, NULL,
"automatically count gems needed", "set counter to number of gems"
},
NULL, NULL,
"automatically count gems needed", "set counter to number of gems"
},
+ {
+ ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(11),
+ GADGET_ID_RATE_TIME_OVER_SCORE, GADGET_ID_NONE,
+ &level.rate_time_over_score,
+ NULL, NULL,
+ "rate time/steps used over score", "sort high scores by playing time/steps"
+ },
{
ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(7),
GADGET_ID_USE_LEVELSET_ARTWORK, GADGET_ID_NONE,
{
ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(7),
GADGET_ID_USE_LEVELSET_ARTWORK, GADGET_ID_NONE,
@@
-3161,6
+3172,13
@@
static struct
NULL, NULL,
"CE action on finished dig/collect", "only finished dig/collect triggers CE"
},
NULL, NULL,
"CE action on finished dig/collect", "only finished dig/collect triggers CE"
},
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(4),
+ GADGET_ID_KEEP_WALKABLE_CE, GADGET_ID_NONE,
+ &level.keep_walkable_ce,
+ NULL, NULL,
+ "keep walkable CE changed to player", "keep CE changing to player if walkable"
+ },
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(9),
GADGET_ID_CONTINUOUS_SNAPPING, GADGET_ID_NONE,
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(9),
GADGET_ID_CONTINUOUS_SNAPPING, GADGET_ID_NONE,
@@
-8247,7
+8265,7
@@
static void CopyGroupElementPropertiesToEditor(int element)
static void CopyClassicElementPropertiesToEditor(int element)
{
static void CopyClassicElementPropertiesToEditor(int element)
{
- if (
ELEM_IS_PLAYER
(element) || COULD_MOVE_INTO_ACID(element))
+ if (
IS_PLAYER_ELEMENT
(element) || COULD_MOVE_INTO_ACID(element))
custom_element_properties[EP_CAN_MOVE_INTO_ACID] =
getMoveIntoAcidProperty(&level, element);
custom_element_properties[EP_CAN_MOVE_INTO_ACID] =
getMoveIntoAcidProperty(&level, element);
@@
-8433,7
+8451,7
@@
static void CopyGroupElementPropertiesToGame(int element)
static void CopyClassicElementPropertiesToGame(int element)
{
static void CopyClassicElementPropertiesToGame(int element)
{
- if (
ELEM_IS_PLAYER
(element) || COULD_MOVE_INTO_ACID(element))
+ if (
IS_PLAYER_ELEMENT
(element) || COULD_MOVE_INTO_ACID(element))
setMoveIntoAcidProperty(&level, element,
custom_element_properties[EP_CAN_MOVE_INTO_ACID]);
setMoveIntoAcidProperty(&level, element,
custom_element_properties[EP_CAN_MOVE_INTO_ACID]);
@@
-9103,7
+9121,7
@@
static void DrawPropertiesTabulatorGadgets(void)
int i;
// draw two config tabulators for player elements
int i;
// draw two config tabulators for player elements
- if (
ELEM_IS_PLAYER
(properties_element))
+ if (
IS_PLAYER_ELEMENT
(properties_element))
id_last = ED_TEXTBUTTON_ID_PROPERTIES_CONFIG_2;
// draw two config and one "change" tabulator for custom elements
id_last = ED_TEXTBUTTON_ID_PROPERTIES_CONFIG_2;
// draw two config and one "change" tabulator for custom elements
@@
-9118,7
+9136,7
@@
static void DrawPropertiesTabulatorGadgets(void)
// use "config 1" and "config 2" instead of "config" for players and CEs
if (i == ED_TEXTBUTTON_ID_PROPERTIES_CONFIG &&
// 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_PLAYER_ELEMENT
(properties_element) ||
IS_CUSTOM_ELEMENT(properties_element)))
continue;
IS_CUSTOM_ELEMENT(properties_element)))
continue;
@@
-9815,7
+9833,7
@@
static boolean checkPropertiesConfig(int element)
IS_ENVELOPE(element) ||
IS_MM_MCDUFFIN(element) ||
IS_DF_LASER(element) ||
IS_ENVELOPE(element) ||
IS_MM_MCDUFFIN(element) ||
IS_DF_LASER(element) ||
-
ELEM_IS_PLAYER
(element) ||
+
IS_PLAYER_ELEMENT
(element) ||
HAS_EDITOR_CONTENT(element) ||
CAN_GROW(element) ||
COULD_MOVE_INTO_ACID(element) ||
HAS_EDITOR_CONTENT(element) ||
CAN_GROW(element) ||
COULD_MOVE_INTO_ACID(element) ||
@@
-9972,7
+9990,7
@@
static void DrawPropertiesConfig(void)
DrawAndroidElementArea(properties_element);
}
DrawAndroidElementArea(properties_element);
}
- if (
ELEM_IS_PLAYER
(properties_element))
+ if (
IS_PLAYER_ELEMENT
(properties_element))
{
int player_nr = GET_PLAYER_NR(properties_element);
{
int player_nr = GET_PLAYER_NR(properties_element);
@@
-10035,6
+10053,7
@@
static void DrawPropertiesConfig(void)
// draw checkbutton gadgets
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_INITIAL_INVENTORY);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_FINISH_DIG_COLLECT);
// draw checkbutton gadgets
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_INITIAL_INVENTORY);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_FINISH_DIG_COLLECT);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_KEEP_WALKABLE_CE);
// draw counter gadgets
MapCounterButtons(ED_COUNTER_ID_INVENTORY_SIZE);
// draw counter gadgets
MapCounterButtons(ED_COUNTER_ID_INVENTORY_SIZE);
@@
-10051,7
+10070,7
@@
static void DrawPropertiesConfig(void)
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_EM_EXPLODES_BY_FIRE);
if (COULD_MOVE_INTO_ACID(properties_element) &&
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_EM_EXPLODES_BY_FIRE);
if (COULD_MOVE_INTO_ACID(properties_element) &&
- !
ELEM_IS_PLAYER
(properties_element) &&
+ !
IS_PLAYER_ELEMENT
(properties_element) &&
(!IS_CUSTOM_ELEMENT(properties_element) ||
edit_mode_properties == ED_MODE_PROPERTIES_CONFIG_2))
{
(!IS_CUSTOM_ELEMENT(properties_element) ||
edit_mode_properties == ED_MODE_PROPERTIES_CONFIG_2))
{
@@
-10389,12
+10408,12
@@
static void DrawPropertiesWindow(void)
edit_mode_properties = ED_MODE_PROPERTIES_CONFIG_2;
if (edit_mode_properties > ED_MODE_PROPERTIES_CONFIG &&
edit_mode_properties = ED_MODE_PROPERTIES_CONFIG_2;
if (edit_mode_properties > ED_MODE_PROPERTIES_CONFIG &&
- !
ELEM_IS_PLAYER
(properties_element) &&
+ !
IS_PLAYER_ELEMENT
(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))
edit_mode_properties = ED_MODE_PROPERTIES_CONFIG;
if (edit_mode_properties == ED_MODE_PROPERTIES_CONFIG &&
- (
ELEM_IS_PLAYER
(properties_element) ||
+ (
IS_PLAYER_ELEMENT
(properties_element) ||
IS_CUSTOM_ELEMENT(properties_element)))
edit_mode_properties = ED_MODE_PROPERTIES_CONFIG_1;
IS_CUSTOM_ELEMENT(properties_element)))
edit_mode_properties = ED_MODE_PROPERTIES_CONFIG_1;
@@
-12302,7
+12321,7
@@
static void CopyBrushExt(int from_x, int from_y, int to_x, int to_y,
{
int element = Tile[x][y];
{
int element = Tile[x][y];
- if (!IS_EM_ELEMENT(element) && !
ELEM_IS_PLAYER
(element))
+ if (!IS_EM_ELEMENT(element) && !
IS_PLAYER_ELEMENT
(element))
use_em_engine = FALSE;
if (!IS_SP_ELEMENT(element))
use_em_engine = FALSE;
if (!IS_SP_ELEMENT(element))
@@
-12985,7
+13004,7
@@
static void HandleDrawingAreas(struct GadgetInfo *gi)
{
SetDrawModeHiRes(new_element);
{
SetDrawModeHiRes(new_element);
- if (
ELEM_IS_PLAYER
(new_element))
+ if (
IS_PLAYER_ELEMENT
(new_element))
{
// remove player at old position
for (y = 0; y < lev_fieldy; y++)
{
// remove player at old position
for (y = 0; y < lev_fieldy; y++)
@@
-12994,7
+13013,7
@@
static void HandleDrawingAreas(struct GadgetInfo *gi)
{
int old_element = Tile[x][y];
{
int old_element = Tile[x][y];
- if (
ELEM_IS_PLAYER
(old_element))
+ if (
IS_PLAYER_ELEMENT
(old_element))
{
int replaced_with_element =
(old_element == EL_SOKOBAN_FIELD_PLAYER &&
{
int replaced_with_element =
(old_element == EL_SOKOBAN_FIELD_PLAYER &&