rnd-19991024-1-src
authorHolger Schemel <info@artsoft.org>
Sat, 23 Oct 1999 23:38:13 +0000 (01:38 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:34:35 +0000 (10:34 +0200)
CHANGES
src/game.c
src/init.c
src/main.h
src/tools.c

diff --git a/CHANGES b/CHANGES
index b5c47ee1e0c38801b7e4342f3cc060287c4fff33..bb830209d4660ea6092c5c926e4a9dcfc695e405 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,10 +1,12 @@
 
 Release Version 1.3.5 [?? SEP 1999]
 -----------------------------------
+       - new Boulderdash elements for better game emulation
        - new cool medium-sized crystal font
        - new elements and graphics for Diamond Caves II levels
        - new elements and graphics for Emerald Mine Club levels
        - brushed-up (higher resolution) graphics for Supaplex elements
+       - special oversized Supaplex levels included
        - new elements for more authentic Emerald Mine elements (doors)
        - more level editor enhancements:
          element list scrollbar and level number selection within editor
index 93c23dc2227982200f8dcea0b43e562239ee7ba0..14e6445da7ccb717999e5b7574d8d85b443f1418 100644 (file)
@@ -229,8 +229,17 @@ static void InitField(int x, int y, boolean init_game)
 {
   switch (Feld[x][y])
   {
-    case EL_SPIELFIGUR:
     case EL_SP_MURPHY:
+      if (init_game)
+      {
+       if (stored_player[0].present)
+       {
+         Feld[x][y] = EL_SP_MURPHY_CLONE;
+         break;
+       }
+      }
+      /* no break! */
+    case EL_SPIELFIGUR:
       if (init_game)
        Feld[x][y] = EL_SPIELER1;
       /* no break! */
index 7f5a4aeabf5b6be571cac08af04afb1166565ee4..78a587f575a78f334642d1b0069cf6a8d21936d2 100644 (file)
@@ -1707,7 +1707,9 @@ void InitElementProperties()
     EL_SP_CHIP_UPPER,
     EL_SP_CHIP_LOWER,
     /* additional elements that appeared in newer Supaplex levels */
-    EL_UNSICHTBAR
+    EL_UNSICHTBAR,
+    /* more than one murphy in a level results in an inactive clone */
+    EL_SP_MURPHY_CLONE
   };
   static int ep_sp_element_num = sizeof(ep_sp_element)/sizeof(int);
 
index 3753f1a8d519469fef2d625f11ca9d9f25d952a8..b3783268654a4a5fe329dc8107dcf0cccd4d612d 100644 (file)
@@ -1013,6 +1013,7 @@ extern char               *element_info[];
 #define EL_PEARL_BREAKING      521
 #define EL_TRAP_ACTIVE         522
 #define EL_SPRING_MOVING       523
+#define EL_SP_MURPHY_CLONE     524
 
 /* "unreal" (and therefore not drawable) runtime elements */
 #define EL_BLOCKED             600
@@ -1377,6 +1378,8 @@ extern char               *element_info[];
 #define GFX2_SP_TERMINAL       (GFX_START_ROCKSSP + 11 * SP_PER_LINE +  8)
 #define GFX2_SP_TERMINAL_ACTIVE        (GFX_START_ROCKSSP + 12 * SP_PER_LINE +  8)
 
+#define GFX_SP_MURPHY_CLONE    (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  3)
+
 /* graphics from "RocksDC" */
 #define GFX_BELT1_MIDDLE       (GFX_START_ROCKSDC +  0 * DC_PER_LINE +  0)
 #define GFX_BELT1_LEFT         (GFX_START_ROCKSDC +  1 * DC_PER_LINE +  0)
index e77bf124c5b478f83e39fd5d19dc7532c503b9f1..775bc0dc9dae4c4e3997e9143784a5ac893d7b05 100644 (file)
@@ -2666,6 +2666,7 @@ int el2gfx(int element)
     case EL_BD_WALL:           return GFX_BD_WALL;
     case EL_BD_ROCK:           return GFX_BD_ROCK;
     case EL_DX_SUPABOMB:       return GFX_DX_SUPABOMB;
+    case EL_SP_MURPHY_CLONE:   return GFX_SP_MURPHY_CLONE;
 
     default:
     {