rnd-20091022-1-src
authorHolger Schemel <info@artsoft.org>
Thu, 22 Oct 2009 21:02:44 +0000 (23:02 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:57:45 +0000 (10:57 +0200)
src/conftime.h
src/game_sp/DoGameStuff.c
src/game_sp/Explosions.c
src/game_sp/Input.c
src/game_sp/Input.h
src/game_sp/MainGameLoop.c
src/game_sp/MainGameLoop.h
src/game_sp/main.c

index 232d802cca24f9c5c09868372f9ba6264e565085..ab8b8f0d6f86d9f804e15f068fe1b8208fe9ac4c 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2009-10-20 21:52"
+#define COMPILE_DATE_STRING "2009-10-22 22:59"
index d41da8c37157b22de6391797f33366ae4b652282..ce1d77e2d6b8b12d181ea63b15d112e17dab2160 100644 (file)
@@ -76,21 +76,37 @@ int subDoGameStuff()
   if (KillMurphyFlag == 1 || MurphyMoveCounter == 0)
   {
 #if 1
-    if (LeadOutCounter == 0 && !game_sp_info.LevelSolved)
+    if (LeadOutCounter == 0 &&
+       !game_sp_info.LevelSolved &&
+       !game_sp_info.GameOver)
 #else
     if (LeadOutCounter == 0)
 #endif
     {
-#if 1
+#if 0
       printf("::: DoGameStuff.c: killing murphy [%d] ...\n", KillMurphyFlag);
 #endif
 
       KillMurphyFlag = 0;             // no more "kill Murphy"
       ExplodeFieldSP(MurphyExplodePos);                 // Explode
       LeadOutCounter = 0x40;           // quit: start lead-out
+
+#if 1
+#if 1
+      printf("::: DoGameStuff.c: !!!!!!!!!! GAME OVER !!!!!!!!!!\n");
+#endif
+
+      game_sp_info.GameOver = TRUE;
+#endif
     }
 
 #if 1
+#if 0
+    printf("::: *** %d, %d, %d\n", KillMurphyFlag,
+          game_sp_info.LevelSolved, game_sp_info.GameOver);
+#endif
+
+#if 0
     if (KillMurphyFlag == 1 &&
        !game_sp_info.LevelSolved &&
        !game_sp_info.GameOver)
@@ -102,7 +118,7 @@ int subDoGameStuff()
       game_sp_info.GameOver = TRUE;
     }
 #endif
-
+#endif
 
   } //  loc_g_22FB:
 
index 0dc2cc71fd0513cd1b3a3d8d31e4d69c5bd0b23c..b6f009bfb0dd492d6dbfeab7aa341d69832efc04 100644 (file)
@@ -85,7 +85,7 @@ void ExplodeFieldSP(int si)
   if (ax == fiMurphy)
   {
 #if 1
-    printf("::: Explosions.c: ExplodeFieldSP(): kill murphy\n");
+    printf("::: Explosions.c: ExplodeFieldSP(): killing murphy\n");
 #endif
 
     KillMurphyFlag = 1;
@@ -153,7 +153,7 @@ static void LetExplodeFieldSP(int tsi, int cx, int dh)
 
     case fiMurphy:
 #if 1
-      printf("::: Explosions.c: LetExplodeFieldSP(): kill murphy\n");
+      printf("::: Explosions.c: LetExplodeFieldSP(): killing murphy\n");
 #endif
 
       KillMurphyFlag = 1;
index 42ad1201ae2c8d4e93d35c27545d02b8a032bd70..a846aaf6e047dd37e50748014dc5856d1420bb89 100644 (file)
@@ -37,12 +37,33 @@ int subCheckRightMouseButton()
   return subCheckRightMouseButton;
 }
 
-int subProcessKeyboardInput()
+int subProcessKeyboardInput(byte action)
 {
   int subProcessKeyboardInput;
 
   static int LastKey = 0;
 
+#if 1
+
+  if (action & KEY_BUTTON)
+  {
+    DemoKeyCode = (action & MV_UP      ? keySpaceUp    :
+                  action & MV_LEFT     ? keySpaceLeft  :
+                  action & MV_DOWN     ? keySpaceDown  :
+                  action & MV_RIGHT    ? keySpaceRight : keySpace);
+  }
+  else
+  {
+    DemoKeyCode = (action & MV_UP      ? keyUp         :
+                  action & MV_LEFT     ? keyLeft       :
+                  action & MV_DOWN     ? keyDown       :
+                  action & MV_RIGHT    ? keyRight      : keyNone);
+  }
+
+  return subProcessKeyboardInput;
+
+#else
+
   //  On Error GoTo NoKeyboardAccessEH
   //    Call DKeyboard.Acquire
   //  On Error GoTo 0
@@ -51,9 +72,9 @@ int subProcessKeyboardInput()
   if (DemoFlag != 0)
   {
     subGetNextDemoKey();
+
     if (ExitToMenuFlag != 0)
       return subProcessKeyboardInput;
-
   }
   else
   {
@@ -106,6 +127,8 @@ int subProcessKeyboardInput()
     }
   }
 
+#endif
+
   // demo recording
   if (RecordDemoFlag == 1)
     DemoBuffer.AddDemoKey(DemoKeyCode);
index 2762b305ee0c5f6d02fdb9609049bc1db1f7b69c..93b9f72d06d6abd06ca4b8e5f1202430a61c0c17 100644 (file)
@@ -14,7 +14,7 @@
 
 extern void subCheckJoystick();
 extern int subCheckRightMouseButton();
-extern int subProcessKeyboardInput();
+extern int subProcessKeyboardInput(byte);
 
 extern DemoBufferObject DemoBuffer;
 extern boolean KeyState[255 + 1];
index 2baa7435cc542dd2f258e55ad3a15b99b8971fe0..eddb4cdd3ec60bab33f71b12d9cd2eb4d4104130 100644 (file)
@@ -82,7 +82,7 @@ int subMainGameLoop_Init()
   return subMainGameLoop;
 }
 
-int subMainGameLoop_Main()
+int subMainGameLoop_Main(byte action, boolean warp_mode)
 {
   int subMainGameLoop;
   int bx;
@@ -155,7 +155,7 @@ locRepeatMainGameLoop:                           // start repeating game loop
 
   // loc_g_186F:
 
-  subProcessKeyboardInput();                 // Check keyboard, act on keys
+  subProcessKeyboardInput(action);             // Check keyboard, act on keys
 
   // 'HACK:
   //  TimerVar = TimerVar + 1
@@ -326,6 +326,8 @@ locExitMainGameLoop:
   return subMainGameLoop;
 } // subMainGameLoop
 
+#if 0
+
 int subMainGameLoop()
 {
   int subMainGameLoop;
@@ -555,6 +557,8 @@ locExitMainGameLoop:
   return subMainGameLoop;
 } // subMainGameLoop
 
+#endif
+
 void subUpdatePlayingTime()
 {
 }
index a686bcaf61fdedf5ac0364d5da7d1c27c7c17f4d..a13900d1aff26202cf9a9fb11ba8a291ed078822 100644 (file)
@@ -15,7 +15,7 @@
 extern int subCalculateScreenScrollPos();
 extern int subMainGameLoop();
 extern int subMainGameLoop_Init();
-extern int subMainGameLoop_Main();
+extern int subMainGameLoop_Main(byte, boolean);
 extern void subUpdatePlayingTime();
 
 extern boolean AutoScrollFlag;
index 3139a0206ef16793b1cc9ee1b048e131a0ee488c..a8d61e3ff7729f71309d57b5d319ae60afb71ec2 100644 (file)
@@ -26,5 +26,7 @@ void BlitScreenToBitmap_SP(Bitmap *target_bitmap)
 
 void GameActions_SP(byte action[MAX_PLAYERS], boolean warp_mode)
 {
-  subMainGameLoop_Main();
+  byte single_player_action = action[0];
+
+  subMainGameLoop_Main(single_player_action, warp_mode);
 }