X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=b8e6704eb1dd1ff1061b52fbc4f4f03fb6b911ca;hb=403fa67c24301d440ae0871c2e31e1e395133a41;hp=f2e48bf0b82f5a66d5e173892df1067721b8ddb7;hpb=c5728b1ebc2a1d3753a6eea5a0f6335d077eef6b;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index f2e48bf0..b8e6704e 100644 --- a/src/init.c +++ b/src/init.c @@ -436,9 +436,11 @@ void InitWindow(int argc, char *argv[]) XFree(iconName.value); /* Select event types wanted */ - window_event_mask = ExposureMask | StructureNotifyMask | FocusChangeMask | - ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | - KeyPressMask | KeyReleaseMask; + window_event_mask = + ExposureMask | StructureNotifyMask | FocusChangeMask | + ButtonPressMask | ButtonReleaseMask | PointerMotionMask | + PointerMotionHintMask | KeyPressMask | KeyReleaseMask; + XSelectInput(display, window, window_event_mask); #endif @@ -475,6 +477,7 @@ void InitGfx() { "Door", TRUE }, { "Heroes", TRUE }, { "Toons", TRUE }, + { "More", TRUE }, { "Font", FALSE }, { "Font2", FALSE } }; @@ -485,6 +488,7 @@ void InitGfx() { "RocksDoor", TRUE }, { "RocksHeroes", TRUE }, { "RocksToons", TRUE }, + { "RocksMore", TRUE }, { "RocksFont", FALSE }, { "RocksFont2", FALSE } }; @@ -851,11 +855,13 @@ void InitElementProperties() EL_AMOEBE_BD, EL_MORAST_VOLL, EL_MORAST_LEER, - EL_SIEB_VOLL, + EL_SIEB_INAKTIV, EL_SIEB_LEER, + EL_SIEB_VOLL, EL_SIEB_TOT, - EL_SIEB2_VOLL, + EL_SIEB2_INAKTIV, EL_SIEB2_LEER, + EL_SIEB2_VOLL, EL_SIEB2_TOT, EL_LIFE, EL_LIFE_ASYNC, @@ -863,11 +869,29 @@ void InitElementProperties() EL_BADEWANNE2, EL_BADEWANNE3, EL_BADEWANNE4, - EL_BADEWANNE5 + EL_BADEWANNE5, + EL_SP_CHIP_SINGLE, + EL_SP_CHIP_LEFT, + EL_SP_CHIP_RIGHT, + EL_SP_CHIP_UPPER, + EL_SP_CHIP_LOWER, + EL_SP_HARD_GRAY, + EL_SP_HARD_GREEN, + EL_SP_HARD_BLUE, + EL_SP_HARD_RED, + EL_SP_HARD_YELLOW, + EL_SP_HARD_BASE1, + EL_SP_HARD_BASE2, + EL_SP_HARD_BASE3, + EL_SP_HARD_BASE4, + EL_SP_HARD_BASE5, + EL_SP_HARD_BASE6, + EL_SP_TERMINAL, + EL_SP_EXIT }; static int ep_solid_num = sizeof(ep_solid)/sizeof(int); - static int ep_massiv[] = + static int ep_massive[] = { EL_BETON, EL_SALZSAEURE, @@ -883,9 +907,20 @@ void InitElementProperties() EL_PFORTE1X, EL_PFORTE2X, EL_PFORTE3X, - EL_PFORTE4X + EL_PFORTE4X, + EL_SP_HARD_GRAY, + EL_SP_HARD_GREEN, + EL_SP_HARD_BLUE, + EL_SP_HARD_RED, + EL_SP_HARD_YELLOW, + EL_SP_HARD_BASE1, + EL_SP_HARD_BASE2, + EL_SP_HARD_BASE3, + EL_SP_HARD_BASE4, + EL_SP_HARD_BASE5, + EL_SP_HARD_BASE6, }; - static int ep_massiv_num = sizeof(ep_massiv)/sizeof(int); + static int ep_massive_num = sizeof(ep_massive)/sizeof(int); static int ep_slippery[] = { @@ -907,7 +942,15 @@ void InitElementProperties() EL_BIRNE_AUS, EL_BADEWANNE1, EL_BADEWANNE2, - EL_SONDE + EL_SONDE, + EL_SP_ZONK, + EL_SP_INFOTRON, + EL_SP_CHIP_SINGLE, + EL_SP_CHIP_LEFT, + EL_SP_CHIP_RIGHT, + EL_SP_CHIP_UPPER, + EL_SP_CHIP_LOWER, + EL_SPEED_PILL }; static int ep_slippery_num = sizeof(ep_slippery)/sizeof(int); @@ -920,7 +963,9 @@ void InitElementProperties() EL_MAMPFER, EL_MAMPFER2, EL_ROBOT, - EL_PACMAN + EL_PACMAN, + EL_SP_SNIKSNAK, + EL_SP_ELECTRON }; static int ep_enemy_num = sizeof(ep_enemy)/sizeof(int); @@ -944,7 +989,25 @@ void InitElementProperties() EL_MAUER_X, EL_MAUER_Y, EL_MAUER_XY, - EL_MAUERND + EL_MAUERND, + EL_SP_CHIP_SINGLE, + EL_SP_CHIP_LEFT, + EL_SP_CHIP_RIGHT, + EL_SP_CHIP_UPPER, + EL_SP_CHIP_LOWER, + EL_SP_HARD_GRAY, + EL_SP_HARD_GREEN, + EL_SP_HARD_BLUE, + EL_SP_HARD_RED, + EL_SP_HARD_YELLOW, + EL_SP_HARD_BASE1, + EL_SP_HARD_BASE2, + EL_SP_HARD_BASE3, + EL_SP_HARD_BASE4, + EL_SP_HARD_BASE5, + EL_SP_HARD_BASE6, + EL_SP_TERMINAL, + EL_SP_EXIT }; static int ep_mauer_num = sizeof(ep_mauer)/sizeof(int); @@ -964,7 +1027,10 @@ void InitElementProperties() EL_SIEB_VOLL, EL_SIEB2_VOLL, EL_ZEIT_VOLL, - EL_ZEIT_LEER + EL_ZEIT_LEER, + EL_SP_ZONK, + EL_SP_INFOTRON, + EL_SP_DISK_ORANGE }; static int ep_can_fall_num = sizeof(ep_can_fall)/sizeof(int); @@ -985,7 +1051,10 @@ void InitElementProperties() EL_KOKOSNUSS, EL_TROPFEN, EL_ZEIT_VOLL, - EL_ZEIT_LEER + EL_ZEIT_LEER, + EL_SP_ZONK, + EL_SP_INFOTRON, + EL_SP_DISK_ORANGE }; static int ep_can_smash_num = sizeof(ep_can_smash)/sizeof(int); @@ -1015,7 +1084,9 @@ void InitElementProperties() EL_PINGUIN, EL_SCHWEIN, EL_DRACHE, - EL_SONDE + EL_SONDE, + EL_SP_SNIKSNAK, + EL_SP_ELECTRON }; static int ep_can_move_num = sizeof(ep_can_move)/sizeof(int); @@ -1064,7 +1135,10 @@ void InitElementProperties() EL_ROBOT, EL_PACMAN, EL_TROPFEN, - EL_SALZSAEURE + EL_SALZSAEURE, + EL_SP_SNIKSNAK, + EL_SP_ELECTRON, + EL_SP_BUG_ACTIVE }; static int ep_dont_go_to_num = sizeof(ep_dont_go_to)/sizeof(int); @@ -1100,7 +1174,7 @@ void InitElementProperties() EL_FELSBODEN, EL_FELSBROCKEN, EL_EDELSTEIN_BD, - EL_SIEB2_LEER, + EL_SIEB2_INAKTIV, EL_AUSGANG_ZU, EL_AUSGANG_AUF, EL_BETON, @@ -1138,7 +1212,8 @@ void InitElementProperties() EL_EDELSTEIN_GELB, EL_EDELSTEIN_ROT, EL_EDELSTEIN_LILA, - EL_DIAMANT + EL_DIAMANT, + EL_SP_INFOTRON }; static int ep_gem_num = sizeof(ep_gem)/sizeof(int); @@ -1187,10 +1262,44 @@ void InitElementProperties() EL_BADEWANNE3, EL_BADEWANNE4, EL_BADEWANNE5, + EL_SIEB_INAKTIV, EL_SIEB_TOT, + EL_SIEB2_INAKTIV, EL_SIEB2_TOT, EL_AMOEBA2DIAM, - EL_BLOCKED + EL_BLOCKED, + EL_SP_EMPTY, + EL_SP_BASE, + EL_SP_PORT1_RIGHT, + EL_SP_PORT1_DOWN, + EL_SP_PORT1_LEFT, + EL_SP_PORT1_UP, + EL_SP_PORT2_RIGHT, + EL_SP_PORT2_DOWN, + EL_SP_PORT2_LEFT, + EL_SP_PORT2_UP, + EL_SP_PORT_X, + EL_SP_PORT_Y, + EL_SP_PORT_XY, + EL_SP_DISK_RED, + EL_SP_DISK_YELLOW, + EL_SP_CHIP_SINGLE, + EL_SP_CHIP_LEFT, + EL_SP_CHIP_RIGHT, + EL_SP_CHIP_UPPER, + EL_SP_CHIP_LOWER, + EL_SP_HARD_GRAY, + EL_SP_HARD_GREEN, + EL_SP_HARD_BLUE, + EL_SP_HARD_RED, + EL_SP_HARD_YELLOW, + EL_SP_HARD_BASE1, + EL_SP_HARD_BASE2, + EL_SP_HARD_BASE3, + EL_SP_HARD_BASE4, + EL_SP_HARD_BASE5, + EL_SP_HARD_BASE6, + EL_SP_EXIT }; static int ep_inactive_num = sizeof(ep_inactive)/sizeof(int); @@ -1208,7 +1317,12 @@ void InitElementProperties() EL_PINGUIN, EL_SCHWEIN, EL_DRACHE, - EL_SONDE + EL_SONDE, + EL_SP_DISK_RED, + EL_SP_DISK_ORANGE, + EL_SP_DISK_YELLOW, + EL_SP_SNIKSNAK, + EL_SP_ELECTRON }; static int ep_explosive_num = sizeof(ep_explosive)/sizeof(int); @@ -1231,7 +1345,10 @@ void InitElementProperties() EL_ZEIT_LEER, EL_SOKOBAN_FELD_VOLL, EL_SOKOBAN_OBJEKT, - EL_SONDE + EL_SONDE, + EL_SP_ZONK, + EL_SP_DISK_ORANGE, + EL_SP_DISK_YELLOW }; static int ep_pushable_num = sizeof(ep_pushable)/sizeof(int); @@ -1245,6 +1362,69 @@ void InitElementProperties() }; static int ep_player_num = sizeof(ep_player)/sizeof(int); + static int ep_has_content[] = + { + EL_MAMPFER, + EL_AMOEBE_NASS, + EL_AMOEBE_NORM, + EL_AMOEBE_VOLL, + EL_AMOEBE_BD + }; + static int ep_has_content_num = sizeof(ep_has_content)/sizeof(int); + + static int ep_eatable[] = + { + EL_ERDREICH, + EL_SP_BASE, + EL_SP_BUG + }; + static int ep_eatable_num = sizeof(ep_eatable)/sizeof(int); + + static int ep_sp_element[] = + { + EL_SP_EMPTY, + EL_SP_ZONK, + EL_SP_BASE, + EL_SP_MURPHY, + EL_SP_INFOTRON, + EL_SP_CHIP_SINGLE, + EL_SP_HARD_GRAY, + EL_SP_EXIT, + EL_SP_DISK_ORANGE, + EL_SP_PORT1_RIGHT, + EL_SP_PORT1_DOWN, + EL_SP_PORT1_LEFT, + EL_SP_PORT1_UP, + EL_SP_PORT2_RIGHT, + EL_SP_PORT2_DOWN, + EL_SP_PORT2_LEFT, + EL_SP_PORT2_UP, + EL_SP_SNIKSNAK, + EL_SP_DISK_YELLOW, + EL_SP_TERMINAL, + EL_SP_DISK_RED, + EL_SP_PORT_Y, + EL_SP_PORT_X, + EL_SP_PORT_XY, + EL_SP_ELECTRON, + EL_SP_BUG, + EL_SP_CHIP_LEFT, + EL_SP_CHIP_RIGHT, + EL_SP_HARD_BASE1, + EL_SP_HARD_GREEN, + EL_SP_HARD_BLUE, + EL_SP_HARD_RED, + EL_SP_HARD_YELLOW, + EL_SP_HARD_BASE2, + EL_SP_HARD_BASE3, + EL_SP_HARD_BASE4, + EL_SP_HARD_BASE5, + EL_SP_HARD_BASE6, + EL_SP_CHIP_UPPER, + EL_SP_CHIP_LOWER + }; + static int ep_sp_element_num = sizeof(ep_sp_element)/sizeof(int); + static long ep_bit[] = { EP_BIT_AMOEBALIVE, @@ -1252,7 +1432,7 @@ void InitElementProperties() EP_BIT_SCHLUESSEL, EP_BIT_PFORTE, EP_BIT_SOLID, - EP_BIT_MASSIV, + EP_BIT_MASSIVE, EP_BIT_SLIPPERY, EP_BIT_ENEMY, EP_BIT_MAUER, @@ -1271,7 +1451,10 @@ void InitElementProperties() EP_BIT_EXPLOSIVE, EP_BIT_MAMPF3, EP_BIT_PUSHABLE, - EP_BIT_PLAYER + EP_BIT_PLAYER, + EP_BIT_HAS_CONTENT, + EP_BIT_EATABLE, + EP_BIT_SP_ELEMENT }; static int *ep_array[] = { @@ -1280,7 +1463,7 @@ void InitElementProperties() ep_schluessel, ep_pforte, ep_solid, - ep_massiv, + ep_massive, ep_slippery, ep_enemy, ep_mauer, @@ -1299,7 +1482,10 @@ void InitElementProperties() ep_explosive, ep_mampf3, ep_pushable, - ep_player + ep_player, + ep_has_content, + ep_eatable, + ep_sp_element }; static int *ep_num[] = { @@ -1308,7 +1494,7 @@ void InitElementProperties() &ep_schluessel_num, &ep_pforte_num, &ep_solid_num, - &ep_massiv_num, + &ep_massive_num, &ep_slippery_num, &ep_enemy_num, &ep_mauer_num, @@ -1327,7 +1513,10 @@ void InitElementProperties() &ep_explosive_num, &ep_mampf3_num, &ep_pushable_num, - &ep_player_num + &ep_player_num, + &ep_has_content_num, + &ep_eatable_num, + &ep_sp_element_num }; static int num_properties = sizeof(ep_num)/sizeof(int *);