rnd-20090721-1-src
authorHolger Schemel <info@artsoft.org>
Tue, 21 Jul 2009 08:02:09 +0000 (10:02 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:57:26 +0000 (10:57 +0200)
src/conftime.h
src/game_sp/DDScrollBuffer.c
src/game_sp/Display.c
src/game_sp/Globals.h
src/game_sp/InitGameConditions.c
src/game_sp/Input.c
src/game_sp/MainForm.c
src/game_sp/MainForm.h
src/game_sp/Murphy.c
src/game_sp/init.c
src/game_sp/modAnimations.c

index 8e9f2fa517380b76402f10f57a6b6af357048e27..d3857196d0128aa5b64139740f56dd01fc1601d0 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2009-07-19 23:53"
+#define COMPILE_DATE_STRING "2009-07-20 23:25"
index 66b12072caa2a6751d0b1c402c1a3decd4d65bcd..86a6aad09cb2897c9b860035ab0cbff4c3d6136f 100644 (file)
@@ -184,6 +184,7 @@ void DDScrollBuffer_Blt()
   {
     switch (L)
     {
+#if 0
       case DDERR_GENERIC:
         Debug.Assert(False);
         break;
@@ -243,6 +244,7 @@ void DDScrollBuffer_Blt()
       case DDERR_SURFACEBUSY:
         Debug.Assert(False);
         break;
+#endif
 
       case DDERR_SURFACELOST:
         DDraw.RestoreAllSurfaces();
@@ -256,6 +258,7 @@ void DDScrollBuffer_Blt()
         // ClipToWindow 0
         break;
 
+#if 0
       case DDERR_UNSUPPORTED:
         Debug.Assert(False);
         break;
@@ -267,6 +270,7 @@ void DDScrollBuffer_Blt()
       default:
         Debug.Assert(False);
         break;
+#endif
     }
   }
 
@@ -321,11 +325,17 @@ void DDScrollBuffer_ScrollTowards(int X, int Y, double Step)
 void DDScrollBuffer_SoftScrollTo(int X, int Y, long TimeMS, int FPS)
 {
   double dx, dY;
+#if 0
   TickCountObject Tick;
+#endif
   long dT, StepCount;
   double T, tStep;
   long oldX, oldY, maxD;
-  boolean AlreadyRunning;
+  static boolean AlreadyRunning = False;
+
+#if 1
+  printf("::: 3: X,Y ==  %d, %d [%f]\n", X, Y, Stretch);
+#endif
 
   if (NoDisplayFlag)
     return;
@@ -348,6 +358,12 @@ void DDScrollBuffer_SoftScrollTo(int X, int Y, long TimeMS, int FPS)
   if (StepCount == 0)
     StepCount = 1;
 
+#if 1
+  printf("::: MARK 1: %f, %d, %ld, %ld [%d, %d, %ld, %ld]\n",
+        tStep, FPS, TimeMS, maxD,
+        X, Y, mScrollX, mScrollY);
+#endif
+
   dT = 1000 / FPS;
   tStep = (double)1 / StepCount;
   oldX = mScrollX;
@@ -360,7 +376,11 @@ void DDScrollBuffer_SoftScrollTo(int X, int Y, long TimeMS, int FPS)
       goto SoftScrollEH;
 
     // If Claim Then Exit For
+
+#if 0
     Tick.DelayMS(dT, False);
+#endif
+
     mScrollX = oldX + T * dx;
     mScrollY = oldY + T * dY;
     ScrollX = mScrollX;
@@ -368,10 +388,17 @@ void DDScrollBuffer_SoftScrollTo(int X, int Y, long TimeMS, int FPS)
     // Blt();
   }
 
+#if 1
+  printf("::: MARK 2\n");
+#endif
+
   if (UserDragFlag)
     goto SoftScrollEH;
 
+#if 0
   Tick.DelayMS(dT, False);
+#endif
+
   mScrollX = X;
   mScrollY = Y;
   ScrollX = mScrollX;
index f8da42e783e5b7e8823670bec53cbad034d57b83..ea36612fb302949ecf2bf80828ea1468c1bbefab 100644 (file)
@@ -51,7 +51,9 @@ int subDisplayLevel()
   if (NoDisplayFlag || ! LevelLoaded)
     return subDisplayLevel;
 
-#if 0
+#if 1
+  DisplayLevel();
+#else
   MainForm.DisplayLevel();
 #endif
 
@@ -117,7 +119,12 @@ void ScrollTo(int X, int Y)
   Y = Min(Y, ScrollMaxY);
   //  ScrollX = X
   //  ScrollY = Y
+
+#if 1
+  DDScrollBuffer_ScrollTo(X, Y);
+#else
   Stage.ScrollTo(X, Y);
+#endif
 }
 
 void ScrollTowards(int X, int Y)
@@ -137,13 +144,22 @@ void ScrollTowards(int X, int Y)
   Y = Min(Y, ScrollMaxY);
   //  ScrollX = X
   //  ScrollY = Y
+
+#if 1
+  DDScrollBuffer_ScrollTowards(X, Y, 2 * Stretch);
+#else
   Stage.ScrollTowards(X, Y, 2 * Stretch);
+#endif
 }
 
 void SoftScrollTo(int X, int Y, long TimeMS, int FPS)
 {
   long oldX, oldY;
 
+#if 1
+  printf("::: 1: X,Y ==  %d, %d (1)\n", X, Y);
+#endif
+
   if (NoDisplayFlag)
     return;
 
@@ -157,5 +173,14 @@ void SoftScrollTo(int X, int Y, long TimeMS, int FPS)
   Y = Min(Y, ScrollMaxY);
   //  ScrollX = X
   //  ScrollY = Y
+
+#if 1
+  printf("::: 2: X,Y ==  %d, %d\n", X, Y);
+#endif
+
+#if 1
+  DDScrollBuffer_SoftScrollTo(X, Y, TimeMS, FPS);
+#else
   Stage.SoftScrollTo(X, Y, TimeMS, FPS);
+#endif
 }
index 641d979cf5181d4112a725e330283e1c82bc69fa..f705fd530f948b8c3eb513533ff02ab542129c91 100644 (file)
 
 #include "global.h"
 
+#if 1
+
+#define ZoomFactor                     (2)
+
+#define BaseWidth                      (ZoomFactor * 16)
+#define StretchWidth                   (ZoomFactor * 16)
+#define StretchWidth2                  (StretchWidth / 2)
+#define TwoPixels                      (ZoomFactor * 2)
+
+#else
+
 #define BaseWidth                      (16)
 #define StretchWidth                   (16)
 #define StretchWidth2                  (StretchWidth / 2)
 #define TwoPixels                      (2)
-#define aniExplosionInfo                       (111)
-#define aniMurphySleepLeft                     (71)
-#define aniMurphySleepRight                    (68)
-#define aniMurphyTouchDown                     (47)
-#define aniMurphyTouchLeft                     (95)
-#define aniMurphyTouchRight                    (94)
-#define aniMurphyTouchUp                       (46)
+
+#endif
+
+#define aniExplosionInfo               (111)
+#define aniMurphySleepLeft             (71)
+#define aniMurphySleepRight            (68)
+#define aniMurphyTouchDown             (47)
+#define aniMurphyTouchLeft             (95)
+#define aniMurphyTouchRight            (94)
+#define aniMurphyTouchUp               (46)
 #define aniMurphyYawn                  (56)
 #define aniPushLeft                    (45)
 #define aniPushRight                   (44)
 #define aniPushUpDown                  (79)
-#define aniSnikSnakDown                        (167)
-#define aniSnikSnakLeft                        (239)
-#define aniSnikSnakRight                       (247)
+#define aniSnikSnakDown                (167)
+#define aniSnikSnakLeft                (239)
+#define aniSnikSnakRight               (247)
 #define aniSnikSnakUp                  (159)
-#define fiBase                         (2)
-#define fiBug                  (25)
+
+#define fiBase                                 (2)
+#define fiBug                          (25)
 #define fiElectron                     (24)
-#define fiExit                         (7)
+#define fiExit                                 (7)
 #define fiExplosion                    (0x1F)
 #define fiHWFirst                      (28)
 #define fiHWLast                       (37)
 #define fiInfotron                     (4)
 #define fiMurphy                       (3)
 #define fiOrangeDisk                   (8)
-#define fiPortAllDirections                    (23)
+#define fiPortAllDirections            (23)
 #define fiPortDown                     (10)
 #define fiPortLeft                     (11)
-#define fiPortLeftAndRight                     (22)
+#define fiPortLeftAndRight             (22)
 #define fiPortRight                    (9)
 #define fiPortUp                       (12)
-#define fiPortUpAndDown                        (21)
-#define fiRAM                  (5)
+#define fiPortUpAndDown                (21)
+#define fiRAM                          (5)
 #define fiRAMBottom                    (39)
 #define fiRAMLeft                      (26)
 #define fiRAMRight                     (27)
@@ -67,7 +82,8 @@
 #define fiTerminal                     (19)
 #define fiWallSpace                    (40)
 #define fiYellowDisk                   (18)
-#define fiZonk                         (1)
+#define fiZonk                                 (1)
+
 #define keyDown                        (3)
 #define keyLeft                        (2)
 #define keyNone                        (0)
 #define keySpaceLeft                   (6)
 #define keySpaceRight                  (8)
 #define keySpaceUp                     (5)
-#define keyUp                  (1)
+#define keyUp                          (1)
+
 #define posFrameCorner                         (55)
-#define posFrameHorizontal                     (111)
-#define posFrameVertical                       (110)
+#define posFrameHorizontal             (111)
+#define posFrameVertical               (110)
 
 extern int GetSI(int X, int Y);
 extern int GetStretchX(int si);
index d5818d25acbc285be57c8c64348d5483457ec40b..e12e98360c740f1fabc208451ad32877c0af0411 100644 (file)
@@ -102,6 +102,10 @@ int InitMurphyPosB(int si)
   MurphyScreenYPos = MurphyScreenYPos / Stretch;
 
   subCalculateScreenScrollPos();           // calculate screen start addrs
+
+  printf("::: InitGameConditions.c: ScreenScroll{X,Y}Pos %d, %d\n",
+        ScreenScrollXPos, ScreenScrollYPos);
+
   if (AutoScrollFlag)
   {
     if (bPlaying)
index a7ac7798d545d0038d2a881eaa5f0db87cc1c280..2b8f7bedfa2132f6b86bd491542d48f73d58cfe5 100644 (file)
@@ -41,7 +41,7 @@ int subProcessKeyboardInput()
 {
   int subProcessKeyboardInput;
 
-  int LastKey;
+  static int LastKey = 0;
 
   //  On Error GoTo NoKeyboardAccessEH
   //    Call DKeyboard.Acquire
index 8022080ac4759e95f5c6901bbba39ddad32a3694..5105a789610e652dad04a8c00ff1cc77d324f390 100644 (file)
@@ -1003,13 +1003,17 @@ void DisplayLevel()
 {
   int X, Y;
 
+#if 1
+  printf("::: DisplayLevel (%d, %d, %d)\n", Loaded, LevelLoaded, bPlaying);
+#endif
+
   if (! Loaded)
     return;
 
   if (! LevelLoaded)
     return;
 
-#if 0
+#if 1
   SetDisplayRegion();
 #endif
 
@@ -1022,10 +1026,18 @@ void DisplayLevel()
 
   if (bPlaying)
   {
+#if 1
+    printf("::: DisplayLevel [%ld, %ld, %ld, %ld]...\n",
+          DisplayMinY, DisplayMaxY, DisplayMinX, DisplayMaxX);
+#endif
+
     for (Y = DisplayMinY; Y <= DisplayMaxY; Y++)
     {
       for (X = DisplayMinX; X <= DisplayMaxX; X++)
       {
+#if 0
+       printf("::: DrawFieldNoAnimated(%d, %d)\n", X, Y);
+#endif
         DrawFieldNoAnimated(X, Y);
       }
     }
@@ -1034,6 +1046,9 @@ void DisplayLevel()
     {
       for (X = DisplayMinX; X <= DisplayMaxX; X++)
       {
+#if 0
+       printf("::: DrawFieldAnimated(%d, %d)\n", X, Y);
+#endif
         DrawFieldAnimated(X, Y);
       }
     }
@@ -1045,6 +1060,9 @@ void DisplayLevel()
     {
       for (X = DisplayMinX; X <= DisplayMaxX; X++)
       {
+#if 0
+       printf("::: DrawField(%d, %d)\n", X, Y);
+#endif
         DrawField(X, Y);
       }
     }
@@ -1100,8 +1118,8 @@ static void cmbLevel_Click()
   long InfoCount;
   boolean Oldflag;
   int Msg;
-  long LastIndex;
-  boolean bBlock;
+  static long LastIndex = 0;
+  static boolean bBlock = False;
 
   if (bBlock)
     return;
@@ -1305,7 +1323,9 @@ static void Form_KeyUp(int KeyCode, int Shift)
   picPane_KeyUp(KeyCode, Shift);
 }
 
-static void Form_Load()
+#endif
+
+void Form_Load()
 {
 #if 0
 
@@ -1346,14 +1366,23 @@ static void Form_Load()
 
   picViewPort.ScaleMode = vbPixels;
 
+#endif
+
   PauseMode = 0;
   //  BaseWidth = 16
+
+#if 0
   menBorder_Click();
+#endif
+
   Loaded = True;
+
+#if 0
+
   ReStretch(Stretch);
   LoadKeyIndicators();
 
-  Show;
+  Show();
 
   FillFileList(CurPath);
   if (s.Read("ShowSplash", True))
@@ -1365,6 +1394,8 @@ static void Form_Load()
 #endif
 }
 
+#if 0
+
 static void FillLevelList(char *Path, int LevelIndex)
 {
   long FNum, LevLen, i, iMax;
@@ -1620,8 +1651,6 @@ static void DrawFrame(int Delta)
   }
 }
 
-#if 0
-
 static void RestoreFrame()
 {
   int i, LX, tY, RX, BY;
@@ -1643,6 +1672,8 @@ static void RestoreFrame()
   }
 }
 
+#if 0
+
 static void Form_Unload(int Cancel)
 {
   EndFlag = True;
@@ -1695,7 +1726,7 @@ static void Form_Unload(int Cancel)
 static void fpsTim_Timer()
 {
   currency TickDiff;
-  int count5;
+  static int count5 = 0;
 
   count5 = count5 + 1;
   if (4 < count5)
@@ -1756,9 +1787,15 @@ static void menBorder_Click()
   // DisplayLevel True
 }
 
+#endif
+
 void SetDisplayRegion()
 {
+#if 1
+  if (0)
+#else
   if (! menBorder.Checked)
+#endif
   {
     DisplayMinX = 1;
     DisplayMaxX = FieldWidth - 2;
@@ -1766,6 +1803,7 @@ void SetDisplayRegion()
     DisplayMinY = 1;
     DisplayMaxY = FieldHeight - 2;
     DisplayHeight = FieldHeight;
+
     if (LevelLoaded)
       DrawFrame(1);
 
@@ -1778,11 +1816,14 @@ void SetDisplayRegion()
     DisplayMinY = 0;
     DisplayMaxY = FieldHeight - 1;
     DisplayHeight = FieldHeight + 2;
+
     if (LevelLoaded)
       RestoreFrame();
   }
 }
 
+#if 0
+
 static void menCopy_Click()
 {
   FMark.Copy;
@@ -2089,7 +2130,7 @@ static void menPanel_Click()
 
 void Let_PanelVisible(boolean NewVal)
 {
-  boolean HidePanel;
+  static boolean HidePanel = False;
 
   if (HidePanel != NewVal)
     return;
@@ -2125,8 +2166,8 @@ static void menPaste_Click()
 
 static void menPause_Click()
 {
-  StdPicture OldPic;
-  char *OldText;
+  static StdPicture OldPic;
+  static char *OldText = 0;
 
   PauseMode = (PauseMode != 0 ?  0 :  0);
   if (PauseMode != 0)
@@ -2151,7 +2192,7 @@ static void menPlayAll_Click()
   int FNum;
   char *LogPath, *OutStr, *ReRecPath, *SPPath;
   boolean bEqual;
-  boolean QuitFlag;
+  static boolean QuitFlag = False;
 
   if (cmdPlayAll.STRING_IS_LIKE(Caption, "Play) All Demos")
   {
@@ -2364,7 +2405,6 @@ static void menSoundFX_Click()
 // static void menPlay_Click()
 void menPlay_Click()
 {
-
 #if 0
 
   boolean OldEditFlag;
@@ -2918,6 +2958,10 @@ static void ReStretch(float NewStretch)
 
   if (! Loaded)
   {
+#if 1
+    printf("::: NewStretch == %d\n", NewStretch);
+#endif
+
     Stretch = NewStretch;
     return;
   }
@@ -3168,7 +3212,7 @@ void ShowKey(int KeyVar)
   int i;
   boolean Tmp;
   long Col;
-  boolean LastState[5 + 1];
+  static boolean LastState[5 + 1];
 
   //  For i = 1 To 5
   //    State(i) = False
index 20f71d6e66eab8c8dc76c8cadde407cbedfe613f..ae913f8e2732e1e1fc2aa640f9006f4a91e9bc90 100644 (file)
@@ -28,5 +28,6 @@ extern void menEdit_Click();
 extern void menPlaySpeed_Click(int Index);
 extern void menStop_Click();
 extern void menPlay_Click();
+extern void Form_Load();
 
 #endif /* MAINFORM_H */
index b4c16780aac1b3e81951fd61236c09140e74b4a5..55b43e0044d0751efd52c15fe4bbd9366e039541 100644 (file)
@@ -28,13 +28,13 @@ int subAnimateMurphy(int si)
   int tDeltaX, tDeltaY, tPos, Tmp;
 
   // Variables that hold information about the animation sequence
-  int *dx; // an array of image positions in moving.mpx, finalized with -1
-  int dx2; // an additional image position of a second sprite, for instance: yellow disk if pushed
-  int MurphyDX, MurphyDY; // murphys move steps
-  int SeqPos; // index into dx()
-  int ClearPos; // Position to clear before blitting sprites, none=-1
-  int dxPos; // field-position  to draw dx(SeqPos)
-  int dx2Step; // position of dx2 relative to dx-position
+  static int *dx = 0; // an array of image positions in moving.mpx, finalized with -1
+  static int dx2 = 0; // an additional image position of a second sprite, for instance: yellow disk if pushed
+  static int MurphyDX = 0, MurphyDY = 0; // murphys move steps
+  static int SeqPos = 0; // index into dx()
+  static int ClearPos = 0; // Position to clear before blitting sprites, none=-1
+  static int dxPos = 0; // field-position  to draw dx(SeqPos)
+  static int dx2Step = 0; // position of dx2 relative to dx-position
 
   ax = PlayField16[si];
   al = LowByte(ax);
index 0f380e5845e4640cc442094f0a806f63f43b27a8..5a234b3c8150953f63b859d1aa1f174707e8d3f5 100644 (file)
@@ -15,6 +15,12 @@ static void BlitScreenToBitmap_SP__Stage_Blt()
 
 void sp_open_all()
 {
+#if 1
+  printf("::: sp_open_all ...\n");
+#endif
+
+  Form_Load();
+
   SetBitmaps_SP(&sp_objects);
 
   screenBitmap = CreateBitmap(MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY,
@@ -25,6 +31,10 @@ void sp_open_all()
   DDSpriteBuffer_CreateFromFile("[NONE]", 16, 16);
 
   Stage.Blt = &BlitScreenToBitmap_SP__Stage_Blt;
+
+#if 1
+  printf("::: sp_open_all done\n");
+#endif
 }
 
 void sp_close_all()
index 31d4a67191b793831cd9592c7a6422dc19daa23c..4b42b65aa007f3fb3b88daa20f97c02844a53466 100644 (file)
@@ -48,7 +48,11 @@ DDScrollBuffer Stage;
 byte LData[59 + 1][23 + 1];
 LevelInfoType LInfo;
 
+#if 1
+float Stretch = 1; // , StretchWidth%, TwoPixels!
+#else
 float Stretch; // , StretchWidth%, TwoPixels!
+#endif
 
 int ScrollMinX, ScrollMaxX, ScrollMinY, ScrollMaxY;
 int ScrollX, ScrollY;