-#define COMPILE_DATE_STRING "[2003-02-15 00:07]"
+#define COMPILE_DATE_STRING "[2003-02-17 00:43]"
int properties = Properties1[element];
custom_element_properties[i].indestructible =
- ((properties & EP_BIT_MASSIVE) != 0 ? TRUE : FALSE);
+ ((properties & EP_BIT_INDESTRUCTIBLE) != 0 ? TRUE : FALSE);
custom_element_properties[i].can_fall =
((properties & EP_BIT_CAN_FALL) != 0 ? TRUE : FALSE);
Properties1[element] = EP_BITMASK_DEFAULT;
if (custom_element_properties[i].indestructible)
- Properties1[element] |= EP_BIT_MASSIVE;
+ Properties1[element] |= EP_BIT_INDESTRUCTIBLE;
else
- Properties1[element] &= ~EP_BIT_MASSIVE;
+ Properties1[element] &= ~EP_BIT_INDESTRUCTIBLE;
if (custom_element_properties[i].can_fall)
Properties1[element] |= EP_BIT_CAN_FALL;
for (j=0; j<4; j++)
if (stored_player[i].key[j])
DrawMiniGraphicExt(drawto, DX_KEYS + j * MINI_TILEX, DY_KEYS,
- IMG_KEY1 + j);
+ el2edimg(EL_KEY1 + j));
DrawText(DX + XX_EMERALDS, DY + YY_EMERALDS,
int2str(local_player->gems_still_needed, 3), FS_SMALL, FC_YELLOW);
RemoveMovingField(x, y);
}
- if (IS_MASSIVE(element) || element == EL_FLAMES)
+ if (IS_INDESTRUCTIBLE(element) || element == EL_FLAMES)
continue;
if (IS_PLAYER(x, y) && SHIELD_ON(PLAYERINFO(x, y)))
int y = ey + j * xy[i % 4][1];
int element;
- if (!IN_LEV_FIELD(x, y) || IS_MASSIVE(Feld[x][y]))
+ if (!IN_LEV_FIELD(x, y) || IS_INDESTRUCTIBLE(Feld[x][y]))
break;
element = Feld[x][y];
case EL_KEY4:
{
int key_nr = element - EL_KEY1;
+ int graphic = el2edimg(element);
RemoveField(x, y);
player->key[key_nr] = TRUE;
RaiseScoreElement(element);
DrawMiniGraphicExt(drawto, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
- IMG_KEY1 + key_nr);
+ graphic);
DrawMiniGraphicExt(window, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
- IMG_KEY1 + key_nr);
+ graphic);
PlaySoundLevel(x, y, SND_KEY_COLLECTING);
break;
}
case EL_EM_KEY4:
{
int key_nr = element - EL_EM_KEY1;
+ int graphic = el2edimg(EL_KEY1 + key_nr);
RemoveField(x, y);
player->key[key_nr] = TRUE;
RaiseScoreElement(element);
DrawMiniGraphicExt(drawto, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
- IMG_KEY1 + key_nr);
+ graphic);
DrawMiniGraphicExt(window, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
- IMG_KEY1 + key_nr);
+ graphic);
PlaySoundLevel(x, y, SND_KEY_COLLECTING);
break;
}
"global.num_toons",
NULL
};
+ static char *ignore_sound_tokens[] =
+ {
+ "name",
+ "sort_priority",
+ NULL
+ };
int i;
for (i=0; i<MAX_NUM_ELEMENTS + 1; i++)
special_suffix[i] = special_suffix_info[i].suffix;
InitImageList(image_config, NUM_IMAGE_FILES, image_config_suffix,
- element_prefix, action_suffix, direction_suffix,special_suffix,
- ignore_image_tokens);
+ element_prefix, action_suffix, direction_suffix,
+ special_suffix, ignore_image_tokens);
InitSoundList(sound_config, NUM_SOUND_FILES, sound_config_suffix,
- sound_class_prefix, action_suffix, dummy, dummy, dummy);
+ sound_class_prefix, action_suffix, dummy,
+ dummy, ignore_sound_tokens);
}
void InitLevelArtworkInfo()
static int ep_solid[] =
{
- EL_STEELWALL,
EL_WALL,
EL_WALL_GROWING,
EL_WALL_GROWING_X,
EL_BD_MAGIC_WALL_DEAD,
EL_GAMEOFLIFE,
EL_BIOMAZE,
- EL_ACIDPOOL_TOPLEFT,
- EL_ACIDPOOL_TOPRIGHT,
- EL_ACIDPOOL_BOTTOMLEFT,
- EL_ACIDPOOL_BOTTOM,
- EL_ACIDPOOL_BOTTOMRIGHT,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
EL_SP_CHIP_UPPER,
EL_SP_CHIP_LOWER,
+ EL_SP_TERMINAL,
+ EL_SP_TERMINAL_ACTIVE,
+ EL_SP_EXIT_CLOSED,
+ EL_SP_EXIT_OPEN,
+ EL_INVISIBLE_WALL,
+ EL_INVISIBLE_WALL_ACTIVE,
+ EL_SWITCHGATE_SWITCH_UP,
+ EL_SWITCHGATE_SWITCH_DOWN,
+ EL_TIMEGATE_SWITCH,
+ EL_TIMEGATE_SWITCH_ACTIVE,
+ EL_EMC_WALL_PILLAR_UPPER,
+ EL_EMC_WALL_PILLAR_MIDDLE,
+ EL_EMC_WALL_PILLAR_LOWER,
+ EL_EMC_WALL4,
+ EL_EMC_WALL5,
+ EL_EMC_WALL6,
+ EL_EMC_WALL7,
+ EL_EMC_WALL8,
+ EL_WALL_PEARL,
+ EL_WALL_CRYSTAL,
+
+ /* the following elements are a direct copy of "indestructible" elements,
+ except "EL_ACID", which is "indestructible", but not "solid"! */
+#if 0
+ EL_ACID,
+#endif
+ EL_STEELWALL,
+ EL_ACIDPOOL_TOPLEFT,
+ EL_ACIDPOOL_TOPRIGHT,
+ EL_ACIDPOOL_BOTTOMLEFT,
+ EL_ACIDPOOL_BOTTOM,
+ EL_ACIDPOOL_BOTTOMRIGHT,
EL_SP_HARD_GRAY,
EL_SP_HARD_GREEN,
EL_SP_HARD_BLUE,
EL_SP_HARD_BASE4,
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
- EL_SP_TERMINAL,
- EL_SP_TERMINAL_ACTIVE,
- EL_SP_EXIT_CLOSED,
- EL_SP_EXIT_OPEN,
EL_INVISIBLE_STEELWALL,
EL_INVISIBLE_STEELWALL_ACTIVE,
- EL_INVISIBLE_WALL,
- EL_INVISIBLE_WALL_ACTIVE,
EL_CONVEYOR_BELT1_SWITCH_LEFT,
EL_CONVEYOR_BELT1_SWITCH_MIDDLE,
EL_CONVEYOR_BELT1_SWITCH_RIGHT,
EL_CONVEYOR_BELT4_SWITCH_LEFT,
EL_CONVEYOR_BELT4_SWITCH_MIDDLE,
EL_CONVEYOR_BELT4_SWITCH_RIGHT,
- EL_SWITCHGATE_SWITCH_UP,
- EL_SWITCHGATE_SWITCH_DOWN,
EL_LIGHT_SWITCH,
EL_LIGHT_SWITCH_ACTIVE,
- EL_TIMEGATE_SWITCH,
- EL_TIMEGATE_SWITCH_ACTIVE,
EL_SIGN_EXCLAMATION,
EL_SIGN_RADIOACTIVITY,
EL_SIGN_STOP,
EL_EMC_STEELWALL2,
EL_EMC_STEELWALL3,
EL_EMC_STEELWALL4,
- EL_EMC_WALL_PILLAR_UPPER,
- EL_EMC_WALL_PILLAR_MIDDLE,
- EL_EMC_WALL_PILLAR_LOWER,
- EL_EMC_WALL4,
- EL_EMC_WALL5,
- EL_EMC_WALL6,
- EL_EMC_WALL7,
- EL_EMC_WALL8,
EL_CRYSTAL,
- EL_WALL_PEARL,
- EL_WALL_CRYSTAL,
EL_GATE1,
EL_GATE2,
EL_GATE3,
};
static int ep_solid_num = SIZEOF_ARRAY_INT(ep_solid);
- static int ep_massive[] =
+ static int ep_indestructible[] =
{
EL_STEELWALL,
EL_ACID,
EL_TUBE_RIGHT_UP,
EL_TUBE_RIGHT_DOWN
};
- static int ep_massive_num = SIZEOF_ARRAY_INT(ep_massive);
+ static int ep_indestructible_num = SIZEOF_ARRAY_INT(ep_indestructible);
static int ep_slippery[] =
{
EP_BIT_SCHLUESSEL,
EP_BIT_PFORTE,
EP_BIT_SOLID,
- EP_BIT_MASSIVE,
+ EP_BIT_INDESTRUCTIBLE,
EP_BIT_SLIPPERY,
EP_BIT_ENEMY,
EP_BIT_MAUER,
ep_schluessel,
ep_pforte,
ep_solid,
- ep_massive,
+ ep_indestructible,
ep_slippery,
ep_enemy,
ep_mauer,
&ep_schluessel_num,
&ep_pforte_num,
&ep_solid_num,
- &ep_massive_num,
+ &ep_indestructible_num,
&ep_slippery_num,
&ep_enemy_num,
&ep_mauer_num,
{
static char *direction = NULL;
+ /* !!! MEMORY LEAK HERE! FIX IT! !!! */
setString(&direction, getStringToLower(direction_raw));
return (strcmp(direction, "left") == 0 ? MV_LEFT :
#define EP_BIT_SCHLUESSEL (1 << 2)
#define EP_BIT_PFORTE (1 << 3)
#define EP_BIT_SOLID (1 << 4)
-#define EP_BIT_MASSIVE (1 << 5)
+#define EP_BIT_INDESTRUCTIBLE (1 << 5)
#define EP_BIT_SLIPPERY (1 << 6)
#define EP_BIT_ENEMY (1 << 7)
#define EP_BIT_MAUER (1 << 8)
#define IS_SCHLUESSEL(e) (Properties1[e] & EP_BIT_SCHLUESSEL)
#define IS_PFORTE(e) (Properties1[e] & EP_BIT_PFORTE)
#define IS_SOLID(e) (Properties1[e] & EP_BIT_SOLID)
-#define IS_MASSIVE(e) (Properties1[e] & EP_BIT_MASSIVE)
+#define IS_INDESTRUCTIBLE(e) (Properties1[e] & EP_BIT_INDESTRUCTIBLE)
#define IS_SLIPPERY(e) (Properties1[e] & EP_BIT_SLIPPERY)
#define IS_ENEMY(e) (Properties1[e] & EP_BIT_ENEMY)
#define IS_MAUER(e) (Properties1[e] & EP_BIT_MAUER)
{
for(x=0; x<lev_fieldx; x++)
{
- if (!IS_MASSIVE(Feld[x][y]))
+ if (!IS_INDESTRUCTIBLE(Feld[x][y]))
BorderElement = EL_STEELWALL;
if (y != 0 && y != lev_fieldy - 1 && x != lev_fieldx - 1)