rnd-19990216-1
[rocksndiamonds.git] / src / tools.c
index fba56ac5b1d331e7161e032f837d7e75db9c9413..258c99a6517a72c65b3c205214920884a8483bcf 100644 (file)
@@ -527,10 +527,12 @@ void DrawPlayer(struct PlayerInfo *player)
   if (game_emulation == EMU_SUPAPLEX)
   {
     static int last_dir = MV_LEFT;
+    int action = (player->programmed_action ? player->programmed_action :
+                 player->action);
     boolean action_moving =
       (player_is_moving ||
-       ((player->action & (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)) &&
-       !(player->action & ~(MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN))));
+       ((action & (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)) &&
+       !(action & ~(MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN))));
 
     graphic = GFX_SP_MURPHY;
 
@@ -1860,12 +1862,7 @@ boolean Request(char *text, unsigned int req_state)
            DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1);
 
   /* clear door drawing field */
-#if 0
-  XFillRectangle(display, pix[PIX_DB_DOOR], gc,
-                DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE);
-#else
   XFillRectangle(display, drawto, gc, DX, DY, DXSIZE, DYSIZE);
-#endif
 
   /* write text for request */
   for(ty=0; ty<13; ty++)
@@ -1890,37 +1887,12 @@ boolean Request(char *text, unsigned int req_state)
     }
     sprintf(txt, text); 
     txt[tl] = 0;
-#if 0
-    DrawTextExt(pix[PIX_DB_DOOR], gc,
-               DOOR_GFX_PAGEX1 + 51 - (tl * 14)/2, SY + ty * 16,
-               txt, FS_SMALL, FC_YELLOW);
-#else
     DrawTextExt(drawto, gc,
                DX + 51 - (tl * 14)/2, DY + 8 + ty * 16,
                txt, FS_SMALL, FC_YELLOW);
-#endif
     text += tl + (tc == 32 ? 1 : 0);
   }
 
-#if 0
-  if (req_state & REQ_ASK)
-  {
-    DrawYesNoButton(BUTTON_OK, DB_INIT);
-    DrawYesNoButton(BUTTON_NO, DB_INIT);
-  }
-  else if (req_state & REQ_CONFIRM)
-  {
-    DrawConfirmButton(BUTTON_CONFIRM, DB_INIT);
-  }
-  else if (req_state & REQ_PLAYER)
-  {
-    DrawPlayerButton(BUTTON_PLAYER_1, DB_INIT);
-    DrawPlayerButton(BUTTON_PLAYER_2, DB_INIT);
-    DrawPlayerButton(BUTTON_PLAYER_3, DB_INIT);
-    DrawPlayerButton(BUTTON_PLAYER_4, DB_INIT);
-  }
-#else
-
   if (req_state & REQ_ASK)
   {
     MapGadget(tool_gadget[TOOL_CTRL_ID_YES]);
@@ -1943,8 +1915,6 @@ boolean Request(char *text, unsigned int req_state)
            DX, DY, DXSIZE, DYSIZE,
            DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
 
-#endif
-
   OpenDoor(DOOR_OPEN_1);
   ClearEventQueue();
 
@@ -1972,11 +1942,6 @@ boolean Request(char *text, unsigned int req_state)
        case ButtonRelease:
        case MotionNotify:
        {
-
-#if 0
-         int choice;
-#endif
-
          if (event.type == MotionNotify)
          {
            Window root, child;
@@ -2006,46 +1971,6 @@ boolean Request(char *text, unsigned int req_state)
              button_status = MB_RELEASED;
          }
 
-
-
-#if 0
-         if (req_state & REQ_ASK)
-           choice = CheckYesNoButtons(mx,my,button_status);
-         else if (req_state & REQ_CONFIRM)
-           choice = CheckConfirmButton(mx,my,button_status);
-         else
-           choice = CheckPlayerButtons(mx,my,button_status);
-
-         switch(choice)
-         {
-           case BUTTON_OK:
-             result = TRUE;
-             break;
-           case BUTTON_NO:
-             result = FALSE;
-             break;
-           case BUTTON_CONFIRM:
-             result = TRUE | FALSE;
-             break;
-
-           case BUTTON_PLAYER_1:
-             result = 1;
-             break;
-           case BUTTON_PLAYER_2:
-             result = 2;
-             break;
-           case BUTTON_PLAYER_3:
-             result = 3;
-             break;
-           case BUTTON_PLAYER_4:
-             result = 4;
-             break;
-
-           default:
-             break;
-         }
-#else
-
          /* this sets 'request_gadget_id' */
          HandleGadgets(mx, my, button_status);
 
@@ -2077,7 +2002,6 @@ boolean Request(char *text, unsigned int req_state)
            default:
              break;
          }
-#endif
 
          break;
        }
@@ -2757,6 +2681,14 @@ int el2gfx(int element)
     case EL_EM_GATE_2X:                return GFX_EM_GATE_2X;
     case EL_EM_GATE_3X:                return GFX_EM_GATE_3X;
     case EL_EM_GATE_4X:                return GFX_EM_GATE_4X;
+    case EL_EM_KEY_1_FILE:     return GFX_EM_KEY_1;
+    case EL_EM_KEY_2_FILE:     return GFX_EM_KEY_2;
+    case EL_EM_KEY_3_FILE:     return GFX_EM_KEY_3;
+    case EL_EM_KEY_4_FILE:     return GFX_EM_KEY_4;
+    case EL_EM_KEY_1:          return GFX_EM_KEY_1;
+    case EL_EM_KEY_2:          return GFX_EM_KEY_2;
+    case EL_EM_KEY_3:          return GFX_EM_KEY_3;
+    case EL_EM_KEY_4:          return GFX_EM_KEY_4;
 
     default:
     {