+2006-02-12
+ * fixed potential crash bug in WarnBuggyBase() (missing boundary check)
+
+2006-02-11
+ * fixed bug with CE change order in TestIfElementTouchesCustomElement()
+ * fixed bug when displaying info element without action, but direction
+
2006-02-09
* fixed minor graphical problems with springs smashing and slurping
(when using R'n'D style graphics instead of EMC style graphics)
-#define COMPILE_DATE_STRING "[2006-02-11 15:23]"
+#define COMPILE_DATE_STRING "[2006-02-12 13:35]"
case GAME_MODE_INFO:
switch(key)
{
-#if 0
+#if 1
+ case KSYM_space:
+#else
/* !!! only use "space" key to start game from main menu !!! */
case KSYM_space:
#endif
HandleInfoScreen(0,0, 0, +1 * SCROLL_PAGE, MB_MENU_MARK);
break;
+#ifdef DEBUG
+ case KSYM_0:
+ GameFrameDelay = (GameFrameDelay == 500 ? GAME_FRAME_DELAY : 500);
+ break;
+#endif
+
default:
break;
}
#if 0
for (i = 0; i < num_list_entries; i++)
- printf("::: %d, %d, %d => %d\n",
+ printf("::: '%s': %d, %d, %d => %d\n",
+ EL_NAME(helpanim_info[i].element),
helpanim_info[i].element,
helpanim_info[i].action,
helpanim_info[i].direction,
#define USE_FIXED_DONT_RUN_INTO (USE_NEW_STUFF * 1)
#define USE_NEW_SPRING_BUMPER (USE_NEW_STUFF * 1)
#define USE_STOP_CHANGED_ELEMENTS (USE_NEW_STUFF * 1)
+#define USE_ELEMENT_TOUCHING_BUGFIX (USE_NEW_STUFF * 1)
#define USE_QUICKSAND_IMPACT_BUGFIX (USE_NEW_STUFF * 0)
for (i = 0; i < NUM_DIRECTIONS; i++)
{
- int xx = x + xy[i][0], yy = y + xy[i][1];
+ int xx = x + xy[i][0];
+ int yy = y + xy[i][1];
- if (IS_PLAYER(xx, yy))
+ if (IN_LEV_FIELD(xx, yy) && IS_PLAYER(xx, yy))
{
PlayLevelSound(x, y, SND_SP_BUGGY_BASE_ACTIVE);
}
}
-#if 1
+#if USE_ELEMENT_TOUCHING_BUGFIX
void TestIfElementTouchesCustomElement(int x, int y)
{
#define EL_CASCADE_TOGGLE(e) (IS_EDITOR_CASCADE_INACTIVE(e) ? (e) + 1 : \
IS_EDITOR_CASCADE_ACTIVE(e) ? (e) - 1 : (e))
-#define EL_NAME(e) (element_info[e].token_name)
+#define EL_NAME(e) ((e) >= 0 ? element_info[e].token_name : "(?)")
/* fundamental game speed values */
#define ONE_SECOND_DELAY 1000 /* delay value for one second */
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
#define PROGRAM_AUTHOR_STRING "Holger Schemel"
-#define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2005 by Holger Schemel"
+#define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2006 by Holger Schemel"
#define ICON_TITLE_STRING PROGRAM_TITLE_STRING
#define COOKIE_PREFIX "ROCKSNDIAMONDS"
action = helpanim_info[j].action;
direction = helpanim_info[j].direction;
+ if (element < 0)
+ element = EL_UNKNOWN;
+
if (action != -1 && direction != -1)
graphic = el_act_dir2img(element, action, direction);
else if (action != -1)
graphic = el_act2img(element, action);
else if (direction != -1)
- graphic = el_act2img(element, direction);
+ graphic = el_dir2img(element, direction);
else
graphic = el2img(element);
}
else
{
- if (DelayReached(&info_delay, GAME_FRAME_DELAY))
+ if (DelayReached(&info_delay, GameFrameDelay))
if (page < num_pages)
DrawInfoScreen_HelpAnim(page * anims_per_page, num_anims, FALSE);