-/* values for "CONF" chunk */
-#define CONF_MASK_1_BYTE 0x00
-#define CONF_MASK_2_BYTE 0x40
-#define CONF_MASK_4_BYTE 0x80
-#define CONF_MASK_MULTI_BYTES 0xc0
-
-#define CONF_MASK_BYTES 0xc0
-#define CONF_MASK_TOKEN 0x3f
-
-#define CONF_LAST_ENTRY (CONF_MASK_1_BYTE | 0)
-
-#define CONF_VALUE_INTEGER_1 (CONF_MASK_1_BYTE | 1)
-#define CONF_VALUE_INTEGER_2 (CONF_MASK_1_BYTE | 2)
-#define CONF_VALUE_INTEGER_3 (CONF_MASK_1_BYTE | 3)
-#define CONF_VALUE_INTEGER_4 (CONF_MASK_1_BYTE | 4)
-#define CONF_VALUE_BOOLEAN_1 (CONF_MASK_1_BYTE | 5)
-#define CONF_VALUE_BOOLEAN_2 (CONF_MASK_1_BYTE | 6)
-#define CONF_VALUE_BOOLEAN_3 (CONF_MASK_1_BYTE | 7)
-#define CONF_VALUE_BOOLEAN_4 (CONF_MASK_1_BYTE | 8)
-
-#define CONF_VALUE_ELEMENT_1 (CONF_MASK_2_BYTE | 1)
-#define CONF_VALUE_ELEMENT_2 (CONF_MASK_2_BYTE | 2)
-#define CONF_VALUE_ELEMENT_3 (CONF_MASK_2_BYTE | 3)
-#define CONF_VALUE_ELEMENT_4 (CONF_MASK_2_BYTE | 4)
-
-#define CONF_VALUE_CONTENT_1 (CONF_MASK_MULTI_BYTES | 1)
-#define CONF_VALUE_CONTENT_8 (CONF_MASK_MULTI_BYTES | 2)
-
-#define CONF_VALUE_INTEGER(x) ((x) >= CONF_VALUE_INTEGER_1 && \
- (x) <= CONF_VALUE_INTEGER_4)
-
-#define CONF_VALUE_BOOLEAN(x) ((x) >= CONF_VALUE_BOOLEAN_1 && \
- (x) <= CONF_VALUE_BOOLEAN_4)
-
-#define CONF_VALUE_NUM_BYTES(x) ((x) == CONF_MASK_1_BYTE ? 1 : \
- (x) == CONF_MASK_2_BYTE ? 2 : \
- (x) == CONF_MASK_4_BYTE ? 4 : 0)
-
-#define CONF_CONTENT_NUM_ELEMENTS (3 * 3)
-#define CONF_CONTENT_NUM_BYTES (CONF_CONTENT_NUM_ELEMENTS * 2)
-
-#define CONF_CONTENT_ELEMENT_POS(c,x,y) ((c) * CONF_CONTENT_NUM_ELEMENTS + \
- (y) * 3 + (x))
-#define CONF_CONTENT_BYTE_POS(c,x,y) (CONF_CONTENT_ELEMENT_POS(c,x,y) * 2)
-#define CONF_CONTENT_ELEMENT(b,c,x,y) ((b[CONF_CONTENT_BYTE_POS(c,x,y)] << 8)|\
- (b[CONF_CONTENT_BYTE_POS(c,x,y) + 1]))
-
-static struct LevelInfo li;
-
-static struct
-{
- int element;
- int type;
- void *value;
-} element_conf[] =
-{
- /* 1-byte values */
- { EL_EMC_ANDROID, CONF_VALUE_INTEGER_1, &li.android_move_time },
- { EL_EMC_ANDROID, CONF_VALUE_INTEGER_2, &li.android_clone_time },
- { EL_EMC_MAGIC_BALL, CONF_VALUE_INTEGER_1, &li.ball_time },
- { EL_EMC_LENSES, CONF_VALUE_INTEGER_1, &li.lenses_score },
- { EL_EMC_LENSES, CONF_VALUE_INTEGER_2, &li.lenses_time },
- { EL_EMC_MAGNIFIER, CONF_VALUE_INTEGER_1, &li.magnify_score },
- { EL_EMC_MAGNIFIER, CONF_VALUE_INTEGER_2, &li.magnify_time },
- { EL_ROBOT, CONF_VALUE_INTEGER_1, &li.slurp_score },
- { EL_GAME_OF_LIFE, CONF_VALUE_INTEGER_1, &li.game_of_life[0] },
- { EL_GAME_OF_LIFE, CONF_VALUE_INTEGER_2, &li.game_of_life[1] },
- { EL_GAME_OF_LIFE, CONF_VALUE_INTEGER_3, &li.game_of_life[2] },
- { EL_GAME_OF_LIFE, CONF_VALUE_INTEGER_4, &li.game_of_life[3] },
- { EL_BIOMAZE, CONF_VALUE_INTEGER_1, &li.biomaze[0] },
- { EL_BIOMAZE, CONF_VALUE_INTEGER_2, &li.biomaze[1] },
- { EL_BIOMAZE, CONF_VALUE_INTEGER_3, &li.biomaze[2] },
- { EL_BIOMAZE, CONF_VALUE_INTEGER_4, &li.biomaze[3] },
-
- /* multi-byte values */
- { EL_EMC_MAGIC_BALL, CONF_VALUE_CONTENT_8, &li.ball_content },
-
- { -1, -1, NULL },
-};
-