From: Holger Schemel Date: Fri, 1 Aug 2003 00:01:05 +0000 (+0200) Subject: rnd-20030801-1-src X-Git-Tag: 3.0.0^2~8 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=0ef9c7d4b387b42f40d2f226920e306d588544f7;p=rocksndiamonds.git rnd-20030801-1-src --- diff --git a/CHANGES b/CHANGES index 71822bc7..2e7bb1d1 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,6 @@ -Pre-Release Version 2.2.0rc8 [?? ??? ????] +Pre-Release Version 3.3.0 [?? ??? ????] ------------------------------------------ + - fixed Supaplex gravity tubes Pre-Release Version 2.2.0rc7 [17 JUL 2003] ------------------------------------------ diff --git a/Makefile b/Makefile index bdd285b5..0c22aefb 100644 --- a/Makefile +++ b/Makefile @@ -49,8 +49,8 @@ CROSS_PATH_WIN32=/usr/local/cross-tools/i386-mingw32msvc SRC_DIR = src MAKE_CMD = $(MAKE) -C $(SRC_DIR) -DEFAULT_TARGET = x11 -# DEFAULT_TARGET = sdl +# DEFAULT_TARGET = x11 +DEFAULT_TARGET = sdl all: @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET) diff --git a/src/conf_chr.c b/src/conf_chr.c index 00fe6994..506c8b27 100644 --- a/src/conf_chr.c +++ b/src/conf_chr.c @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_chr.c * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ diff --git a/src/conf_chr.h b/src/conf_chr.h index 373ef0de..8cee2724 100644 --- a/src/conf_chr.h +++ b/src/conf_chr.h @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_chr.h * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ diff --git a/src/conf_cus.c b/src/conf_cus.c index 7c68e072..82144cd2 100644 --- a/src/conf_cus.c +++ b/src/conf_cus.c @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_cus.c * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ diff --git a/src/conf_cus.h b/src/conf_cus.h index 3fa751d6..425334be 100644 --- a/src/conf_cus.h +++ b/src/conf_cus.h @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_cus.h * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ diff --git a/src/conf_e2g.c b/src/conf_e2g.c index 3b84c0ad..2b9b2e00 100644 --- a/src/conf_e2g.c +++ b/src/conf_e2g.c @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_e2g.c * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ @@ -477,6 +489,10 @@ element_to_graphic[] = EL_SAND, -1, -1, FALSE, IMG_SAND }, + { + EL_SAND, -1, -1, TRUE, + IMG_SAND_CRUMBLED + }, { EL_SAND, ACTION_DIGGING, MV_BIT_LEFT, FALSE, IMG_SAND_DIGGING_LEFT @@ -493,14 +509,6 @@ element_to_graphic[] = EL_SAND, ACTION_DIGGING, MV_BIT_DOWN, FALSE, IMG_SAND_DIGGING_DOWN }, - { - EL_SAND_CRUMBLED, -1, -1, TRUE, - IMG_SAND_CRUMBLED - }, - { - EL_SAND, -1, -1, TRUE, - IMG_SAND_CRUMBLED - }, { EL_SAND, ACTION_DIGGING, MV_BIT_LEFT, TRUE, IMG_SAND_DIGGING_LEFT_CRUMBLED @@ -522,8 +530,8 @@ element_to_graphic[] = IMG_WALL }, { - EL_WALL_CRUMBLED, -1, -1, FALSE, - IMG_WALL_CRUMBLED + EL_WALL_SLIPPERY, -1, -1, FALSE, + IMG_WALL_SLIPPERY }, { EL_STEELWALL, -1, -1, FALSE, @@ -1286,8 +1294,8 @@ element_to_graphic[] = IMG_LANDMINE }, { - EL_STEELWALL_SLANTED, -1, -1, FALSE, - IMG_STEELWALL_SLANTED + EL_STEELWALL_SLIPPERY, -1, -1, FALSE, + IMG_STEELWALL_SLIPPERY }, { EL_EXTRA_TIME, -1, -1, FALSE, diff --git a/src/conf_e2s.c b/src/conf_e2s.c index f17b1b3e..6e229df2 100644 --- a/src/conf_e2s.c +++ b/src/conf_e2s.c @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_e2s.c * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ diff --git a/src/conf_esg.c b/src/conf_esg.c index ed2369a3..b2180fb3 100644 --- a/src/conf_esg.c +++ b/src/conf_esg.c @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_esg.c * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ diff --git a/src/conf_fnt.c b/src/conf_fnt.c index 0c9256b5..0a191dda 100644 --- a/src/conf_fnt.c +++ b/src/conf_fnt.c @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_fnt.c * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ diff --git a/src/conf_gfx.c b/src/conf_gfx.c index 5e3e91ba..84a89352 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -584,6 +584,10 @@ struct ConfigInfo image_config[] = { "sand.xpos", "0" }, { "sand.ypos", "2" }, { "sand.frames", "1" }, + { "sand.CRUMBLED", "RocksMore.pcx" }, + { "sand.CRUMBLED.xpos", "1" }, + { "sand.CRUMBLED.ypos", "2" }, + { "sand.CRUMBLED.frames", "1" }, { "sand.digging.left", "RocksMore.pcx" }, { "sand.digging.left.xpos", "6" }, { "sand.digging.left.ypos", "3" }, @@ -608,10 +612,6 @@ struct ConfigInfo image_config[] = { "sand.digging.down.frames", "3" }, { "sand.digging.down.delay", "2" }, { "sand.digging.down.anim_mode", "linear" }, - { "sand.CRUMBLED", "RocksMore.pcx" }, - { "sand.CRUMBLED.xpos", "1" }, - { "sand.CRUMBLED.ypos", "2" }, - { "sand.CRUMBLED.frames", "1" }, { "sand.digging.left.CRUMBLED", "RocksMore.pcx" }, { "sand.digging.left.CRUMBLED.xpos", "6" }, { "sand.digging.left.CRUMBLED.ypos", "0" }, @@ -642,10 +642,10 @@ struct ConfigInfo image_config[] = { "wall.ypos", "0" }, { "wall.frames", "1" }, - { "wall_crumbled", "RocksElements.pcx" }, - { "wall_crumbled.xpos", "6" }, - { "wall_crumbled.ypos", "0" }, - { "wall_crumbled.frames", "1" }, + { "wall_slippery", "RocksElements.pcx" }, + { "wall_slippery.xpos", "6" }, + { "wall_slippery.ypos", "0" }, + { "wall_slippery.frames", "1" }, { "steelwall", "RocksElements.pcx" }, { "steelwall.xpos", "4" }, @@ -1460,10 +1460,10 @@ struct ConfigInfo image_config[] = { "landmine.frames", "1" }, { "landmine.crumbled_like", "sand" }, - { "steelwall_slanted", "RocksDC.pcx" }, - { "steelwall_slanted.xpos", "5" }, - { "steelwall_slanted.ypos", "15" }, - { "steelwall_slanted.frames", "1" }, + { "steelwall_slippery", "RocksDC.pcx" }, + { "steelwall_slippery.xpos", "5" }, + { "steelwall_slippery.ypos", "15" }, + { "steelwall_slippery.frames", "1" }, { "extra_time", "RocksDC.pcx" }, { "extra_time.xpos", "8" }, diff --git a/src/conf_gfx.h b/src/conf_gfx.h index f35c2147..8b3f18c8 100644 --- a/src/conf_gfx.h +++ b/src/conf_gfx.h @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_gfx.h * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ @@ -115,17 +127,17 @@ #define IMG_SOKOBAN_FIELD_FULL 106 #define IMG_EMPTY_SPACE 107 #define IMG_SAND 108 -#define IMG_SAND_DIGGING_LEFT 109 -#define IMG_SAND_DIGGING_RIGHT 110 -#define IMG_SAND_DIGGING_UP 111 -#define IMG_SAND_DIGGING_DOWN 112 -#define IMG_SAND_CRUMBLED 113 +#define IMG_SAND_CRUMBLED 109 +#define IMG_SAND_DIGGING_LEFT 110 +#define IMG_SAND_DIGGING_RIGHT 111 +#define IMG_SAND_DIGGING_UP 112 +#define IMG_SAND_DIGGING_DOWN 113 #define IMG_SAND_DIGGING_LEFT_CRUMBLED 114 #define IMG_SAND_DIGGING_RIGHT_CRUMBLED 115 #define IMG_SAND_DIGGING_UP_CRUMBLED 116 #define IMG_SAND_DIGGING_DOWN_CRUMBLED 117 #define IMG_WALL 118 -#define IMG_WALL_CRUMBLED 119 +#define IMG_WALL_SLIPPERY 119 #define IMG_STEELWALL 120 #define IMG_ROCK 121 #define IMG_ROCK_MOVING_LEFT 122 @@ -298,7 +310,7 @@ #define IMG_SIGN_EXCLAMATION 289 #define IMG_SIGN_STOP 290 #define IMG_LANDMINE 291 -#define IMG_STEELWALL_SLANTED 292 +#define IMG_STEELWALL_SLIPPERY 292 #define IMG_EXTRA_TIME 293 #define IMG_SHIELD_NORMAL 294 #define IMG_SHIELD_NORMAL_ACTIVE 295 diff --git a/src/conf_snd.h b/src/conf_snd.h index bfb6db88..94366024 100644 --- a/src/conf_snd.h +++ b/src/conf_snd.h @@ -1,3 +1,15 @@ +/*********************************************************** +* Rocks'n'Diamonds -- McDuffin Strikes Back! * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* conf_snd.h * +***********************************************************/ /* ----- this file was automatically generated -- do not edit by hand ----- */ diff --git a/src/conftime.h b/src/conftime.h index 08abd542..48476e04 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "[2003-07-30 20:00]" +#define COMPILE_DATE_STRING "[2003-07-31 20:49]" diff --git a/src/editor.c b/src/editor.c index 4806b842..1749fe25 100644 --- a/src/editor.c +++ b/src/editor.c @@ -237,6 +237,8 @@ #define ED_SELECTBOX_XSIZE ED_WIN_COUNT_XSIZE #define ED_SELECTBOX_YSIZE ED_WIN_COUNT_YSIZE +#define ED_SELECTBOX_BUTTON_XSIZE 14 + #define ED_TEXTBUTTON_XPOS ED_WIN_COUNT_XPOS #define ED_TEXTBUTTON_YPOS (ED_WIN_COUNT_YPOS + \ 4 * (2 + ED_WIN_COUNT_YSIZE)) @@ -1798,7 +1800,7 @@ static int editor_el_emerald_mine[] = EL_STEELWALL, EL_WALL, - EL_WALL_CRUMBLED, + EL_WALL_SLIPPERY, EL_MAGIC_WALL, EL_EMERALD, @@ -2119,7 +2121,7 @@ static int editor_el_diamond_caves[] = EL_LANDMINE, EL_INVISIBLE_SAND, - EL_STEELWALL_SLANTED, + EL_STEELWALL_SLIPPERY, EL_EMPTY, EL_SIGN_EXCLAMATION, @@ -3156,7 +3158,7 @@ static void CreateSelectboxGadgets() GDI_DESIGN_UNPRESSED, gd_bitmap, gd_x, gd_y, GDI_DESIGN_PRESSED, gd_bitmap, gd_x, gd_y, GDI_BORDER_SIZE, ED_BORDER_SIZE, ED_BORDER_SIZE, - GDI_BORDER_SIZE_SELECTBUTTON, getFontWidth(FONT_INPUT_1), + GDI_BORDER_SIZE_SELECTBUTTON, ED_SELECTBOX_BUTTON_XSIZE, GDI_DESIGN_WIDTH, ED_WIN_COUNT_XSIZE, GDI_EVENT_MASK, event_mask, GDI_CALLBACK_INFO, HandleEditorGadgetInfoText, diff --git a/src/files.c b/src/files.c index 21717f1d..79118139 100644 --- a/src/files.c +++ b/src/files.c @@ -730,26 +730,31 @@ static void LoadLevel_InitLevel(struct LevelInfo *level, char *filename) } /* map elements which have changed in newer versions */ - if (level->game_version <= VERSION_IDENT(2,2,0)) + for(y=0; yfieldy; y++) { - /* map game font elements */ - for(y=0; yfieldy; y++) + for(x=0; xfieldx; x++) { - for(x=0; xfieldx; x++) + int element = level->field[x][y]; + + if (level->game_version <= VERSION_IDENT(2,2,0)) { - int element = level->field[x][y]; - - if (element == EL_CHAR('[')) - element = EL_CHAR_AUMLAUT; - else if (element == EL_CHAR('\\')) - element = EL_CHAR_OUMLAUT; - else if (element == EL_CHAR(']')) - element = EL_CHAR_UUMLAUT; - else if (element == EL_CHAR('^')) - element = EL_CHAR_COPYRIGHT; - - level->field[x][y] = element; + /* map game font elements */ + element = (element == EL_CHAR('[') ? EL_CHAR_AUMLAUT : + element == EL_CHAR('\\') ? EL_CHAR_OUMLAUT : + element == EL_CHAR(']') ? EL_CHAR_UUMLAUT : + element == EL_CHAR('^') ? EL_CHAR_COPYRIGHT : element); } + else if (level->game_version < VERSION_IDENT(3,0,0)) + { + /* map Supaplex gravity tube elements */ + element = (element == EL_SP_GRAVITY_PORT_LEFT ? EL_SP_PORT_LEFT : + element == EL_SP_GRAVITY_PORT_RIGHT ? EL_SP_PORT_RIGHT : + element == EL_SP_GRAVITY_PORT_UP ? EL_SP_PORT_UP : + element == EL_SP_GRAVITY_PORT_DOWN ? EL_SP_PORT_DOWN : + element); + } + + level->field[x][y] = element; } } diff --git a/src/game.c b/src/game.c index 5a859675..718b1fff 100644 --- a/src/game.c +++ b/src/game.c @@ -2215,6 +2215,7 @@ void DynaExplode(int ex, int ey) Explode(x, y, EX_PHASE_START, EX_BORDER); + /* !!! extend EL_SAND to anything diggable (but maybe not SP_BASE) !!! */ if (element != EL_EMPTY && element != EL_SAND && element != EL_EXPLOSION && @@ -2525,14 +2526,16 @@ static int getInvisibleActiveFromInvisibleElement(int element) { return (element == EL_INVISIBLE_STEELWALL ? EL_INVISIBLE_STEELWALL_ACTIVE : element == EL_INVISIBLE_WALL ? EL_INVISIBLE_WALL_ACTIVE : - EL_INVISIBLE_SAND_ACTIVE); + element == EL_INVISIBLE_SAND ? EL_INVISIBLE_SAND_ACTIVE : + element); } static int getInvisibleFromInvisibleActiveElement(int element) { return (element == EL_INVISIBLE_STEELWALL_ACTIVE ? EL_INVISIBLE_STEELWALL : element == EL_INVISIBLE_WALL_ACTIVE ? EL_INVISIBLE_WALL : - EL_INVISIBLE_SAND); + element == EL_INVISIBLE_SAND_ACTIVE ? EL_INVISIBLE_SAND : + element); } static void RedrawAllLightSwitchesAndInvisibleElements() @@ -4058,7 +4061,7 @@ void StartMoving(int x, int y) TurnRound(x, y); #if 1 - if (GFX_ELEMENT(element) != EL_SAND) + if (GFX_ELEMENT(element) != EL_SAND) /* !!! FIX THIS (crumble) !!! */ DrawLevelElementAnimation(x, y, element); #else if (element == EL_BUG || @@ -4553,6 +4556,7 @@ void AmoebeAbleger(int ax, int ay) if (!IN_LEV_FIELD(x, y)) return; + /* !!! extend EL_SAND to anything diggable (but maybe not SP_BASE) !!! */ if (IS_FREE(x, y) || Feld[x][y] == EL_SAND || Feld[x][y] == EL_QUICKSAND_EMPTY) { @@ -4577,6 +4581,7 @@ void AmoebeAbleger(int ax, int ay) if (!IN_LEV_FIELD(x, y)) continue; + /* !!! extend EL_SAND to anything diggable (but maybe not SP_BASE) !!! */ if (IS_FREE(x, y) || Feld[x][y] == EL_SAND || Feld[x][y] == EL_QUICKSAND_EMPTY) { @@ -4721,6 +4726,7 @@ void Life(int ax, int ay) changed = TRUE; } } + /* !!! extend EL_SAND to anything diggable (but maybe not SP_BASE) !!! */ else if (IS_FREE(xx, yy) || Feld[xx][yy] == EL_SAND) { /* free border field */ if (nachbarn >= life[2] && nachbarn <= life[3]) @@ -5810,6 +5816,7 @@ void GameActions() #endif element = Feld[x][y]; + /* !!! extend EL_SAND to anything diggable (but maybe not SP_BASE) !!! */ if (!IS_PLAYER(x,y) && (element == EL_EMPTY || element == EL_SAND || @@ -6097,6 +6104,7 @@ static void CheckGravityMovement(struct PlayerInfo *player) (IN_LEV_FIELD(new_jx, new_jy) && (Feld[new_jx][new_jy] == EL_SP_BASE || Feld[new_jx][new_jy] == EL_SAND)); + /* !!! extend EL_SAND to anything diggable !!! */ if (field_under_player_is_free && !player_is_moving_to_valid_field && @@ -7072,6 +7080,12 @@ int DigField(struct PlayerInfo *player, !IS_FREE(nextx, nexty)) return MF_NO_ACTION; + if (element == EL_SP_GRAVITY_PORT_LEFT || + element == EL_SP_GRAVITY_PORT_RIGHT || + element == EL_SP_GRAVITY_PORT_UP || + element == EL_SP_GRAVITY_PORT_DOWN) + level.gravity = !level.gravity; + /* automatically move to the next field with double speed */ player->programmed_action = move_direction; DOUBLE_PLAYER_SPEED(player); diff --git a/src/init.c b/src/init.c index 229cba0a..376aa8c8 100644 --- a/src/init.c +++ b/src/init.c @@ -1421,7 +1421,7 @@ void InitElementPropertiesStatic() EL_SIGN_EXIT, EL_SIGN_YINYANG, EL_SIGN_OTHER, - EL_STEELWALL_SLANTED, + EL_STEELWALL_SLIPPERY, EL_EMC_STEELWALL_1, EL_EMC_STEELWALL_2, EL_EMC_STEELWALL_3, @@ -1475,7 +1475,7 @@ void InitElementPropertiesStatic() static int ep_slippery[] = { - EL_WALL_CRUMBLED, + EL_WALL_SLIPPERY, EL_BD_WALL, EL_ROCK, EL_BD_ROCK, @@ -1504,7 +1504,7 @@ void InitElementPropertiesStatic() EL_SP_CHIP_TOP, EL_SP_CHIP_BOTTOM, EL_SPEED_PILL, - EL_STEELWALL_SLANTED, + EL_STEELWALL_SLIPPERY, EL_PEARL, EL_CRYSTAL, -1 @@ -1825,7 +1825,7 @@ void InitElementPropertiesStatic() { EL_EMPTY, EL_SAND, - EL_WALL_CRUMBLED, + EL_WALL_SLIPPERY, EL_BD_WALL, EL_ROCK, EL_BD_ROCK, @@ -2002,7 +2002,7 @@ void InitElementPropertiesStatic() EL_EXIT_OPENING, EL_EXIT_OPEN, EL_WALL, - EL_WALL_CRUMBLED, + EL_WALL_SLIPPERY, EL_EXPANDABLE_WALL, EL_EXPANDABLE_WALL_HORIZONTAL, EL_EXPANDABLE_WALL_VERTICAL, @@ -2033,7 +2033,7 @@ void InitElementPropertiesStatic() EL_INVISIBLE_STEELWALL_ACTIVE, EL_INVISIBLE_WALL, EL_INVISIBLE_WALL_ACTIVE, - EL_STEELWALL_SLANTED, + EL_STEELWALL_SLIPPERY, EL_EMC_STEELWALL_1, EL_EMC_STEELWALL_2, EL_EMC_STEELWALL_3, @@ -2057,7 +2057,7 @@ void InitElementPropertiesStatic() EL_EXPANDABLE_WALL_VERTICAL, EL_EXPANDABLE_WALL_ANY, EL_BD_WALL, - EL_WALL_CRUMBLED, + EL_WALL_SLIPPERY, EL_EXIT_CLOSED, EL_EXIT_OPENING, EL_EXIT_OPEN, @@ -2160,7 +2160,7 @@ void InitElementPropertiesStatic() EL_SIGN_EXIT, EL_SIGN_YINYANG, EL_SIGN_OTHER, - EL_STEELWALL_SLANTED, + EL_STEELWALL_SLIPPERY, EL_EMC_STEELWALL_1, EL_EMC_STEELWALL_2, EL_EMC_STEELWALL_3, @@ -2354,7 +2354,7 @@ void InitElementPropertiesStatic() EL_SAND, EL_WALL, EL_BD_WALL, - EL_WALL_CRUMBLED, + EL_WALL_SLIPPERY, EL_STEELWALL, EL_AMOEBA_DEAD, EL_QUICKSAND_EMPTY, @@ -2472,7 +2472,7 @@ void InitElementPropertiesStatic() EL_SIGN_EXIT, EL_SIGN_YINYANG, EL_SIGN_OTHER, - EL_STEELWALL_SLANTED, + EL_STEELWALL_SLIPPERY, EL_EMC_STEELWALL_1, EL_EMC_STEELWALL_2, EL_EMC_STEELWALL_3, @@ -3200,7 +3200,8 @@ static void InitImages() #endif #if 0 - printf("::: InitImages ['%s', '%s'] ['%s', '%s']\n", + printf("::: InitImages for '%s' ['%s', '%s'] ['%s', '%s']\n", + leveldir_current->identifier, artwork.gfx_current_identifier, artwork.gfx_current->identifier, leveldir_current->graphics_set, diff --git a/src/libgame/gadgets.c b/src/libgame/gadgets.c index a83155e1..d2af524a 100644 --- a/src/libgame/gadgets.c +++ b/src/libgame/gadgets.c @@ -1470,7 +1470,7 @@ void HandleGadgets(int mx, int my, int button) /* if mouse moving inside activated selectbox, select value */ if (my >= gi->selectbox.y && my < gi->selectbox.y + gi->selectbox.height) gi->selectbox.current_index = - (my - gi->selectbox.y - gi->border.xsize) / getFontWidth(gi->font); + (my - gi->selectbox.y - gi->border.ysize) / getFontHeight(gi->font); if (gi->selectbox.current_index < 0) gi->selectbox.current_index = 0; diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 24e2471b..47f57cb0 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -495,7 +495,9 @@ char *getCustomImageFilename(char *basename) /* 2nd try: look for special artwork in current level series directory */ filename = getPath3(getCurrentLevelDir(), GRAPHICS_DIRECTORY, basename); #if 0 + /* if (strcmp(basename, "RocksScreen.pcx") == 0) + */ printf("::: trying 2 '%s' ...\n", filename); #endif if (fileExists(filename)) @@ -507,7 +509,9 @@ char *getCustomImageFilename(char *basename) /* 1st try: look for special artwork configured in level series config */ filename = getPath2(getLevelArtworkDir(TREE_TYPE_GRAPHICS_DIR), basename); #if 0 + /* if (strcmp(basename, "RocksScreen.pcx") == 0) + */ printf("::: trying 2.1 '%s' ...\n", filename); #endif if (fileExists(filename)) @@ -520,7 +524,9 @@ char *getCustomImageFilename(char *basename) /* 3rd try: look for special artwork in configured artwork directory */ filename = getPath2(getSetupArtworkDir(artwork.gfx_current), basename); #if 0 + /* if (strcmp(basename, "RocksScreen.pcx") == 0) + */ printf("::: trying 3 '%s' ...\n", filename); #endif if (fileExists(filename)) diff --git a/src/main.c b/src/main.c index 3095a5a2..ba7ab867 100644 --- a/src/main.c +++ b/src/main.c @@ -128,9 +128,9 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "normal wall" }, { - "wall_crumbled", + "wall_slippery", "wall", - "round wall" + "slippery wall" }, { "rock", @@ -1221,22 +1221,22 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = { "sp_gravity_port_right", "sp_port", - "port (leading right)" + "gravity port (leading right)" }, { "sp_gravity_port_down", "sp_port", - "port (leading down)" + "gravity port (leading down)" }, { "sp_gravity_port_left", "sp_port", - "port (leading left)" + "gravity port (leading left)" }, { "sp_gravity_port_up", "sp_port", - "port (leading up)" + "gravity port (leading up)" }, { "sp_sniksnak", @@ -1679,9 +1679,9 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "mole (starts moving down)" }, { - "steelwall_slanted", + "steelwall_slippery", "wall", - "steel wall (slanted)" + "slippery steel wall" }, { "invisible_sand", @@ -2918,11 +2918,6 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-", "-" }, - { - "sand_crumbled", - "-", - "-" - }, { "dynabomb", "-", diff --git a/src/main.h b/src/main.h index 6709828a..03e98378 100644 --- a/src/main.h +++ b/src/main.h @@ -411,7 +411,7 @@ #define EL_EMPTY EL_EMPTY_SPACE #define EL_SAND 1 #define EL_WALL 2 -#define EL_WALL_CRUMBLED 3 +#define EL_WALL_SLIPPERY 3 #define EL_ROCK 4 #define EL_KEY_OBSOLETE 5 /* obsolete; mapped to EL_KEY_1 */ #define EL_EMERALD 6 @@ -677,7 +677,7 @@ #define EL_MOLE_RIGHT 312 #define EL_MOLE_UP 313 #define EL_MOLE_DOWN 314 -#define EL_STEELWALL_SLANTED 315 +#define EL_STEELWALL_SLIPPERY 315 #define EL_INVISIBLE_SAND 316 #define EL_DX_UNKNOWN_15 317 #define EL_DX_UNKNOWN_42 318 @@ -822,21 +822,20 @@ #define EL_INVISIBLE_STEELWALL_BOTTOMRIGHT (EL_FIRST_DUMMY + 9) #define EL_INVISIBLE_STEELWALL_HORIZONTAL (EL_FIRST_DUMMY + 10) #define EL_INVISIBLE_STEELWALL_VERTICAL (EL_FIRST_DUMMY + 11) -#define EL_SAND_CRUMBLED (EL_FIRST_DUMMY + 12) -#define EL_DYNABOMB (EL_FIRST_DUMMY + 13) -#define EL_DYNABOMB_ACTIVE (EL_FIRST_DUMMY + 14) -#define EL_DYNABOMB_PLAYER_1 (EL_FIRST_DUMMY + 15) -#define EL_DYNABOMB_PLAYER_2 (EL_FIRST_DUMMY + 16) -#define EL_DYNABOMB_PLAYER_3 (EL_FIRST_DUMMY + 17) -#define EL_DYNABOMB_PLAYER_4 (EL_FIRST_DUMMY + 18) -#define EL_SHIELD_NORMAL_ACTIVE (EL_FIRST_DUMMY + 19) -#define EL_SHIELD_DEADLY_ACTIVE (EL_FIRST_DUMMY + 20) -#define EL_DEFAULT (EL_FIRST_DUMMY + 21) -#define EL_BD_DEFAULT (EL_FIRST_DUMMY + 22) -#define EL_SP_DEFAULT (EL_FIRST_DUMMY + 23) -#define EL_SB_DEFAULT (EL_FIRST_DUMMY + 24) - -#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 25) +#define EL_DYNABOMB (EL_FIRST_DUMMY + 12) +#define EL_DYNABOMB_ACTIVE (EL_FIRST_DUMMY + 13) +#define EL_DYNABOMB_PLAYER_1 (EL_FIRST_DUMMY + 14) +#define EL_DYNABOMB_PLAYER_2 (EL_FIRST_DUMMY + 15) +#define EL_DYNABOMB_PLAYER_3 (EL_FIRST_DUMMY + 16) +#define EL_DYNABOMB_PLAYER_4 (EL_FIRST_DUMMY + 17) +#define EL_SHIELD_NORMAL_ACTIVE (EL_FIRST_DUMMY + 18) +#define EL_SHIELD_DEADLY_ACTIVE (EL_FIRST_DUMMY + 19) +#define EL_DEFAULT (EL_FIRST_DUMMY + 20) +#define EL_BD_DEFAULT (EL_FIRST_DUMMY + 21) +#define EL_SP_DEFAULT (EL_FIRST_DUMMY + 22) +#define EL_SB_DEFAULT (EL_FIRST_DUMMY + 23) + +#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 24) /* values for graphics/sounds action types */ @@ -970,11 +969,11 @@ #define GAME_MODE_PSEUDO_TYPENAME 10 #define GAME_MODE_QUIT 11 -#define PROGRAM_VERSION_MAJOR 2 -#define PROGRAM_VERSION_MINOR 2 +#define PROGRAM_VERSION_MAJOR 3 +#define PROGRAM_VERSION_MINOR 0 #define PROGRAM_VERSION_PATCH 0 -#define PROGRAM_VERSION_RELEASE 8 -#define PROGRAM_VERSION_STRING "2.2.0rc8" +#define PROGRAM_VERSION_RELEASE 0 +#define PROGRAM_VERSION_STRING "3.0.0" #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" diff --git a/src/screens.c b/src/screens.c index f2c95cec..65708d24 100644 --- a/src/screens.c +++ b/src/screens.c @@ -527,7 +527,7 @@ static int helpscreen_action[] = IMG_INVISIBLE_WALL, -1, HA_NEXT, - IMG_WALL_CRUMBLED, -1, HA_NEXT, + IMG_WALL_SLIPPERY, -1, HA_NEXT, IMG_FONT_GAME_INFO, -1, HA_NEXT, @@ -918,11 +918,15 @@ void DrawHelpScreenElAction(int start) i++; } +#if 1 + redraw_mask |= REDRAW_FIELD; +#else for(i=2; i<16; i++) { MarkTileDirty(0, i); MarkTileDirty(1, i); } +#endif FrameCounter++; } diff --git a/src/tools.c b/src/tools.c index 97853144..744065cd 100644 --- a/src/tools.c +++ b/src/tools.c @@ -504,6 +504,9 @@ inline void DrawLevelGraphicAnimationIfNeeded(int x, int y, int graphic) return; DrawGraphicAnimation(sx, sy, graphic); + + if (CAN_BE_CRUMBLED(Feld[x][y])) + DrawLevelFieldCrumbledSand(x, y); } void DrawLevelElementAnimationIfNeeded(int x, int y, int element) @@ -520,6 +523,9 @@ void DrawLevelElementAnimationIfNeeded(int x, int y, int element) return; DrawGraphicAnimation(sx, sy, graphic); + + if (CAN_BE_CRUMBLED(element)) + DrawLevelFieldCrumbledSand(x, y); } void DrawAllPlayers()