+2005-12-11
+ * skip empty level sets (with "levels: 0"; may be artwork base sets)
+ * added sound action ".page[1]" to ".page[32]" for each CE change page
+
2005-12-10
* added image config suffix ".clone_from" to copy whole image settings
* fixed bug with invalid ("undefined") CE settings in old level files
2005-12-02
* fixed graphical bug with player animation when player moves slowly
+2005-11-29
+ * uploaded pre-release (test) version 3.2.0-3 binary and source code
+
2005-11-28
* fixed bug which prevented "global.num_toons: 0" from working
{ "menu.button_down.active.ypos", "9" },
{ "menu.button_down.active.frames", "1" },
- { "menu.button_enter_menu2", "RocksDC.pcx" },
- { "menu.button_enter_menu2.xpos", "9" },
- { "menu.button_enter_menu2.ypos", "8" },
- { "menu.button_enter_menu2.frames", "1" },
- { "menu.button_enter_menu2.active", "RocksDC.pcx" },
- { "menu.button_enter_menu2.active.xpos", "9" },
- { "menu.button_enter_menu2.active.ypos", "9" },
- { "menu.button_enter_menu2.active.frames", "1" },
- { "menu.button_leave_menu", "RocksDC.pcx" },
- { "menu.button_leave_menu.xpos", "8" },
- { "menu.button_leave_menu.ypos", "8" },
- { "menu.button_leave_menu.frames", "1" },
- { "menu.button_leave_menu.active", "RocksDC.pcx" },
- { "menu.button_leave_menu.active.xpos", "8" },
- { "menu.button_leave_menu.active.ypos", "9" },
- { "menu.button_leave_menu.active.frames", "1" },
-
{ "menu.button_enter_menu", UNDEFINED_FILENAME },
{ "menu.button_enter_menu.clone_from", "menu.button_right" },
{ "menu.button_enter_menu.active", UNDEFINED_FILENAME },
- { "menu.button_enter_menu.active.clone_from", "menu.button_right.active"},
+ { "menu.button_enter_menu.active.clone_from", "menu.button_right.active" },
+ { "menu.button_leave_menu", UNDEFINED_FILENAME },
+ { "menu.button_leave_menu.clone_from", "menu.button_left" },
+ { "menu.button_leave_menu.active", UNDEFINED_FILENAME },
+ { "menu.button_leave_menu.active.clone_from", "menu.button_left.active" },
{ "menu.scrollbar", "RocksDC.pcx" },
{ "menu.scrollbar.xpos", "8" },
#define IMG_MENU_BUTTON_UP_ACTIVE 1410
#define IMG_MENU_BUTTON_DOWN 1411
#define IMG_MENU_BUTTON_DOWN_ACTIVE 1412
-#define IMG_MENU_BUTTON_ENTER_MENU2 1413
-#define IMG_MENU_BUTTON_ENTER_MENU2_ACTIVE 1414
+#define IMG_MENU_BUTTON_ENTER_MENU 1413
+#define IMG_MENU_BUTTON_ENTER_MENU_ACTIVE 1414
#define IMG_MENU_BUTTON_LEAVE_MENU 1415
#define IMG_MENU_BUTTON_LEAVE_MENU_ACTIVE 1416
-#define IMG_MENU_BUTTON_ENTER_MENU 1417
-#define IMG_MENU_BUTTON_ENTER_MENU_ACTIVE 1418
-#define IMG_MENU_SCROLLBAR 1419
-#define IMG_MENU_SCROLLBAR_ACTIVE 1420
-#define IMG_FONT_INITIAL_1 1421
-#define IMG_FONT_INITIAL_2 1422
-#define IMG_FONT_INITIAL_3 1423
-#define IMG_FONT_INITIAL_4 1424
-#define IMG_FONT_TITLE_1 1425
-#define IMG_FONT_TITLE_1_LEVELS 1426
-#define IMG_FONT_TITLE_2 1427
-#define IMG_FONT_MENU_1 1428
-#define IMG_FONT_MENU_2 1429
-#define IMG_FONT_TEXT_1 1430
-#define IMG_FONT_TEXT_1_LEVELS 1431
-#define IMG_FONT_TEXT_1_PREVIEW 1432
-#define IMG_FONT_TEXT_1_SCORES 1433
-#define IMG_FONT_TEXT_1_ACTIVE_SCORES 1434
-#define IMG_FONT_TEXT_2 1435
-#define IMG_FONT_TEXT_2_LEVELS 1436
-#define IMG_FONT_TEXT_2_PREVIEW 1437
-#define IMG_FONT_TEXT_2_SCORES 1438
-#define IMG_FONT_TEXT_2_ACTIVE_SCORES 1439
-#define IMG_FONT_TEXT_3 1440
-#define IMG_FONT_TEXT_3_LEVELS 1441
-#define IMG_FONT_TEXT_3_PREVIEW 1442
-#define IMG_FONT_TEXT_3_SCORES 1443
-#define IMG_FONT_TEXT_3_ACTIVE_SCORES 1444
-#define IMG_FONT_TEXT_4 1445
-#define IMG_FONT_TEXT_4_LEVELS 1446
-#define IMG_FONT_TEXT_4_SCORES 1447
-#define IMG_FONT_TEXT_4_ACTIVE_SCORES 1448
-#define IMG_FONT_ENVELOPE_1 1449
-#define IMG_FONT_ENVELOPE_2 1450
-#define IMG_FONT_ENVELOPE_3 1451
-#define IMG_FONT_ENVELOPE_4 1452
-#define IMG_FONT_INPUT_1 1453
-#define IMG_FONT_INPUT_1_MAIN 1454
-#define IMG_FONT_INPUT_1_ACTIVE 1455
-#define IMG_FONT_INPUT_1_ACTIVE_MAIN 1456
-#define IMG_FONT_INPUT_1_ACTIVE_SETUP 1457
-#define IMG_FONT_INPUT_2 1458
-#define IMG_FONT_INPUT_2_ACTIVE 1459
-#define IMG_FONT_OPTION_OFF 1460
-#define IMG_FONT_OPTION_ON 1461
-#define IMG_FONT_VALUE_1 1462
-#define IMG_FONT_VALUE_2 1463
-#define IMG_FONT_VALUE_OLD 1464
-#define IMG_FONT_LEVEL_NUMBER 1465
-#define IMG_FONT_TAPE_RECORDER 1466
-#define IMG_FONT_GAME_INFO 1467
-#define IMG_GLOBAL_BORDER 1468
-#define IMG_GLOBAL_DOOR 1469
-#define IMG_EDITOR_ELEMENT_BORDER 1470
-#define IMG_EDITOR_ELEMENT_BORDER_INPUT 1471
-#define IMG_BACKGROUND_ENVELOPE_1 1472
-#define IMG_BACKGROUND_ENVELOPE_2 1473
-#define IMG_BACKGROUND_ENVELOPE_3 1474
-#define IMG_BACKGROUND_ENVELOPE_4 1475
-#define IMG_BACKGROUND 1476
-#define IMG_BACKGROUND_MAIN 1477
-#define IMG_BACKGROUND_LEVELS 1478
-#define IMG_BACKGROUND_SCORES 1479
-#define IMG_BACKGROUND_EDITOR 1480
-#define IMG_BACKGROUND_INFO 1481
-#define IMG_BACKGROUND_INFO_ELEMENTS 1482
-#define IMG_BACKGROUND_INFO_MUSIC 1483
-#define IMG_BACKGROUND_INFO_CREDITS 1484
-#define IMG_BACKGROUND_INFO_PROGRAM 1485
-#define IMG_BACKGROUND_INFO_LEVELSET 1486
-#define IMG_BACKGROUND_SETUP 1487
-#define IMG_BACKGROUND_DOOR 1488
+#define IMG_MENU_SCROLLBAR 1417
+#define IMG_MENU_SCROLLBAR_ACTIVE 1418
+#define IMG_FONT_INITIAL_1 1419
+#define IMG_FONT_INITIAL_2 1420
+#define IMG_FONT_INITIAL_3 1421
+#define IMG_FONT_INITIAL_4 1422
+#define IMG_FONT_TITLE_1 1423
+#define IMG_FONT_TITLE_1_LEVELS 1424
+#define IMG_FONT_TITLE_2 1425
+#define IMG_FONT_MENU_1 1426
+#define IMG_FONT_MENU_2 1427
+#define IMG_FONT_TEXT_1 1428
+#define IMG_FONT_TEXT_1_LEVELS 1429
+#define IMG_FONT_TEXT_1_PREVIEW 1430
+#define IMG_FONT_TEXT_1_SCORES 1431
+#define IMG_FONT_TEXT_1_ACTIVE_SCORES 1432
+#define IMG_FONT_TEXT_2 1433
+#define IMG_FONT_TEXT_2_LEVELS 1434
+#define IMG_FONT_TEXT_2_PREVIEW 1435
+#define IMG_FONT_TEXT_2_SCORES 1436
+#define IMG_FONT_TEXT_2_ACTIVE_SCORES 1437
+#define IMG_FONT_TEXT_3 1438
+#define IMG_FONT_TEXT_3_LEVELS 1439
+#define IMG_FONT_TEXT_3_PREVIEW 1440
+#define IMG_FONT_TEXT_3_SCORES 1441
+#define IMG_FONT_TEXT_3_ACTIVE_SCORES 1442
+#define IMG_FONT_TEXT_4 1443
+#define IMG_FONT_TEXT_4_LEVELS 1444
+#define IMG_FONT_TEXT_4_SCORES 1445
+#define IMG_FONT_TEXT_4_ACTIVE_SCORES 1446
+#define IMG_FONT_ENVELOPE_1 1447
+#define IMG_FONT_ENVELOPE_2 1448
+#define IMG_FONT_ENVELOPE_3 1449
+#define IMG_FONT_ENVELOPE_4 1450
+#define IMG_FONT_INPUT_1 1451
+#define IMG_FONT_INPUT_1_MAIN 1452
+#define IMG_FONT_INPUT_1_ACTIVE 1453
+#define IMG_FONT_INPUT_1_ACTIVE_MAIN 1454
+#define IMG_FONT_INPUT_1_ACTIVE_SETUP 1455
+#define IMG_FONT_INPUT_2 1456
+#define IMG_FONT_INPUT_2_ACTIVE 1457
+#define IMG_FONT_OPTION_OFF 1458
+#define IMG_FONT_OPTION_ON 1459
+#define IMG_FONT_VALUE_1 1460
+#define IMG_FONT_VALUE_2 1461
+#define IMG_FONT_VALUE_OLD 1462
+#define IMG_FONT_LEVEL_NUMBER 1463
+#define IMG_FONT_TAPE_RECORDER 1464
+#define IMG_FONT_GAME_INFO 1465
+#define IMG_GLOBAL_BORDER 1466
+#define IMG_GLOBAL_DOOR 1467
+#define IMG_EDITOR_ELEMENT_BORDER 1468
+#define IMG_EDITOR_ELEMENT_BORDER_INPUT 1469
+#define IMG_BACKGROUND_ENVELOPE_1 1470
+#define IMG_BACKGROUND_ENVELOPE_2 1471
+#define IMG_BACKGROUND_ENVELOPE_3 1472
+#define IMG_BACKGROUND_ENVELOPE_4 1473
+#define IMG_BACKGROUND 1474
+#define IMG_BACKGROUND_MAIN 1475
+#define IMG_BACKGROUND_LEVELS 1476
+#define IMG_BACKGROUND_SCORES 1477
+#define IMG_BACKGROUND_EDITOR 1478
+#define IMG_BACKGROUND_INFO 1479
+#define IMG_BACKGROUND_INFO_ELEMENTS 1480
+#define IMG_BACKGROUND_INFO_MUSIC 1481
+#define IMG_BACKGROUND_INFO_CREDITS 1482
+#define IMG_BACKGROUND_INFO_PROGRAM 1483
+#define IMG_BACKGROUND_INFO_LEVELSET 1484
+#define IMG_BACKGROUND_SETUP 1485
+#define IMG_BACKGROUND_DOOR 1486
-#define NUM_IMAGE_FILES 1489
+#define NUM_IMAGE_FILES 1487
#endif /* CONF_GFX_H */
-#define COMPILE_DATE_STRING "[2005-12-10 21:18]"
+#define COMPILE_DATE_STRING "[2005-12-11 03:16]"
EL_EMC_WALL_11,
EL_EMC_WALL_12,
-#if RELEASE_311
+#if RELEASE_3_1_2
EL_EMPTY,
#else
EL_EMC_ANDROID,
#endif
EL_BALLOON,
EL_BALLOON_SWITCH_ANY,
-#if RELEASE_311
+#if RELEASE_3_1_2
EL_EMPTY,
#else
EL_BALLOON_SWITCH_NONE,
EL_EMC_GRASS,
EL_EMC_PLANT,
-#if RELEASE_311
+#if RELEASE_3_1_2
EL_EMPTY,
EL_EMPTY,
#else
EL_EMC_MAGNIFIER,
#endif
-#if RELEASE_311
+#if RELEASE_3_1_2
EL_EMPTY,
EL_EMPTY,
#else
EL_EMC_MAGIC_BALL_SWITCH,
#endif
EL_SPRING,
-#if RELEASE_311
+#if RELEASE_3_1_2
EL_EMPTY,
#else
EL_EMC_SPRING_BUMPER,
#endif
-#if RELEASE_311
+#if RELEASE_3_1_2
EL_EMPTY,
#else
EL_EMC_DRIPPER,
}
if (something_has_changed)
+ {
PlayLevelSoundElementAction(x, y, element, ACTION_CHANGING);
+ PlayLevelSoundElementAction(x, y, element, ACTION_PAGE_1 + page);
+ }
}
}
else
ChangeElementNowExt(change, x, y, target_element);
PlayLevelSoundElementAction(x, y, element, ACTION_CHANGING);
+ PlayLevelSoundElementAction(x, y, element, ACTION_PAGE_1 + page);
}
/* this uses direct change before indirect change */
}
#if USE_NEW_DELAYED_ACTION
else if (change->has_action)
+ {
ExecuteCustomElementAction(x, y, element, p);
+ PlayLevelSoundElementAction(x, y, element, ACTION_PAGE_1 + p);
+ }
#else
if (change->has_action)
+ {
ExecuteCustomElementAction(x, y, element, p);
+ PlayLevelSoundElementAction(x, y, element, ACTION_PAGE_1 + p);
+ }
#endif
}
}
}
#if USE_NEW_DELAYED_ACTION
else if (change->has_action)
+ {
ExecuteCustomElementAction(x, y, element, p);
+ PlayLevelSoundElementAction(x, y, element, ACTION_PAGE_1 + p);
+ }
#else
if (change->has_action)
+ {
ExecuteCustomElementAction(x, y, element, p);
+ PlayLevelSoundElementAction(x, y, element, ACTION_PAGE_1 + p);
+ }
#endif
}
}
leveldir_new->fullpath = getPath2(node_parent->fullpath, directory_name);
}
+#if 0
if (leveldir_new->levels < 1)
leveldir_new->levels = 1;
+#endif
leveldir_new->last_level =
leveldir_new->first_level + leveldir_new->levels - 1;
(leveldir_new->user_defined || !leveldir_new->handicap ?
leveldir_new->last_level : leveldir_new->first_level);
+#if 1
+ if (leveldir_new->levels < 1 && !leveldir_new->level_group)
+ {
+ /* skip level sets without levels (which are probably artwork base sets) */
+
+ freeSetupFileHash(setup_file_hash);
+ free(directory_path);
+ free(filename);
+
+ return FALSE;
+ }
+#endif
+
pushTreeInfo(node_first, leveldir_new);
freeSetupFileHash(setup_file_hash);
{ ".slurped_by_spring", ACTION_SLURPED_BY_SPRING, FALSE },
{ ".twinkling", ACTION_TWINKLING, FALSE },
{ ".splashing", ACTION_SPLASHING, FALSE },
+ { ".page[1]", ACTION_PAGE_1, FALSE },
+ { ".page[2]", ACTION_PAGE_2, FALSE },
+ { ".page[3]", ACTION_PAGE_3, FALSE },
+ { ".page[4]", ACTION_PAGE_4, FALSE },
+ { ".page[5]", ACTION_PAGE_5, FALSE },
+ { ".page[6]", ACTION_PAGE_6, FALSE },
+ { ".page[7]", ACTION_PAGE_7, FALSE },
+ { ".page[8]", ACTION_PAGE_8, FALSE },
+ { ".page[9]", ACTION_PAGE_9, FALSE },
+ { ".page[10]", ACTION_PAGE_10, FALSE },
+ { ".page[11]", ACTION_PAGE_11, FALSE },
+ { ".page[12]", ACTION_PAGE_12, FALSE },
+ { ".page[13]", ACTION_PAGE_13, FALSE },
+ { ".page[14]", ACTION_PAGE_14, FALSE },
+ { ".page[15]", ACTION_PAGE_15, FALSE },
+ { ".page[16]", ACTION_PAGE_16, FALSE },
+ { ".page[17]", ACTION_PAGE_17, FALSE },
+ { ".page[18]", ACTION_PAGE_18, FALSE },
+ { ".page[19]", ACTION_PAGE_19, FALSE },
+ { ".page[20]", ACTION_PAGE_20, FALSE },
+ { ".page[21]", ACTION_PAGE_21, FALSE },
+ { ".page[22]", ACTION_PAGE_22, FALSE },
+ { ".page[23]", ACTION_PAGE_23, FALSE },
+ { ".page[24]", ACTION_PAGE_24, FALSE },
+ { ".page[25]", ACTION_PAGE_25, FALSE },
+ { ".page[26]", ACTION_PAGE_26, FALSE },
+ { ".page[27]", ACTION_PAGE_27, FALSE },
+ { ".page[28]", ACTION_PAGE_28, FALSE },
+ { ".page[29]", ACTION_PAGE_29, FALSE },
+ { ".page[30]", ACTION_PAGE_30, FALSE },
+ { ".page[31]", ACTION_PAGE_31, FALSE },
+ { ".page[32]", ACTION_PAGE_32, FALSE },
{ ".other", ACTION_OTHER, FALSE },
/* empty suffix always matches -- check as last entry in InitSoundInfo() */
#define ACTION_SLURPED_BY_SPRING 49
#define ACTION_TWINKLING 50
#define ACTION_SPLASHING 51
-#define ACTION_OTHER 52
-
-#define NUM_ACTIONS 53
+#define ACTION_PAGE_1 52
+#define ACTION_PAGE_2 53
+#define ACTION_PAGE_3 54
+#define ACTION_PAGE_4 55
+#define ACTION_PAGE_5 56
+#define ACTION_PAGE_6 57
+#define ACTION_PAGE_7 58
+#define ACTION_PAGE_8 59
+#define ACTION_PAGE_9 60
+#define ACTION_PAGE_10 61
+#define ACTION_PAGE_11 62
+#define ACTION_PAGE_12 63
+#define ACTION_PAGE_13 64
+#define ACTION_PAGE_14 65
+#define ACTION_PAGE_15 66
+#define ACTION_PAGE_16 67
+#define ACTION_PAGE_17 68
+#define ACTION_PAGE_18 69
+#define ACTION_PAGE_19 70
+#define ACTION_PAGE_20 71
+#define ACTION_PAGE_21 72
+#define ACTION_PAGE_22 73
+#define ACTION_PAGE_23 74
+#define ACTION_PAGE_24 75
+#define ACTION_PAGE_25 76
+#define ACTION_PAGE_26 77
+#define ACTION_PAGE_27 78
+#define ACTION_PAGE_28 79
+#define ACTION_PAGE_29 80
+#define ACTION_PAGE_30 81
+#define ACTION_PAGE_31 82
+#define ACTION_PAGE_32 83
+#define ACTION_OTHER 84
+
+#define NUM_ACTIONS 85
#define ACTION_BORING_LAST ACTION_BORING_10
#define ACTION_SLEEPING_LAST ACTION_SLEEPING_3
/* program information and versioning definitions */
-#define RELEASE_311 FALSE
+#define RELEASE_3_1_2 FALSE
-#if RELEASE_311
+#if RELEASE_3_1_2
#define PROGRAM_VERSION_MAJOR 3
#define PROGRAM_VERSION_MINOR 1
#define PROGRAM_VERSION_PATCH 2
#define PROGRAM_VERSION_MAJOR 3
#define PROGRAM_VERSION_MINOR 2
#define PROGRAM_VERSION_PATCH 0
-#define PROGRAM_VERSION_BUILD 3
+#define PROGRAM_VERSION_BUILD 4
#endif
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"