Esempio n. 1
0
//-----------------------------------------------------------------------------
// Purpose: 
// Input  : *buf - 
//			from - 
//			to - 
//-----------------------------------------------------------------------------
bool CInput::WriteUsercmdDeltaToBuffer( bf_write *buf, int from, int to, bool isnewcommand )
{
	Assert( m_pCommands );

	CUserCmd nullcmd;

	CUserCmd *f, *t;

	int startbit = buf->GetNumBitsWritten();

	if ( from == -1 )
	{
		f = &nullcmd;
	}
	else
	{
		f = GetUserCmd( from );

		if ( !f )
		{
			// DevMsg( "WARNING! User command delta too old (from %i, to %i)\n", from, to );
			f = &nullcmd;
		}
		else
		{
			ValidateUserCmd( f, from );
		}
	}

	t = GetUserCmd( to );

	if ( !t )
	{
		// DevMsg( "WARNING! User command too old (from %i, to %i)\n", from, to );
		t = &nullcmd;
	}
	else
	{
		ValidateUserCmd( t, to );
	}

	// Write it into the buffer
	WriteUsercmd( buf, t, f );

	if ( buf->IsOverflowed() )
	{
		int endbit = buf->GetNumBitsWritten();

		Msg( "WARNING! User command buffer overflow(%i %i), last cmd was %i bits long\n",
			from, to,  endbit - startbit );

		return false;
	}

	return true;
}
Esempio n. 2
0
//-----------------------------------------------------------------------------
// Purpose: 
// Input  : buf - 
//			buffersize - 
//			slot - 
//-----------------------------------------------------------------------------
void CInput::EncodeUserCmdToBuffer( bf_write& buf, int sequence_number )
{
	CUserCmd nullcmd;
	CUserCmd *cmd = GetUserCmd( sequence_number);

	WriteUsercmd( &buf, cmd, &nullcmd );
}
Esempio n. 3
0
long FAR PASCAL DoWindowMessage ( 
   HWND hMain,
   unsigned message,
   WPARAM wParam,
   LONG lParam)

{  switch ( message )
   {  case WM_CREATE:
	 return (StartUpDDE());

      case WM_KEYDOWN:
		{  if ( LOWORD(wParam) == VK_SHIFT )
	 {  extern int ShiftKeyDown;
	    ShiftKeyDown = TRUE;
	 }
	 break;
      }

      case WM_KEYUP:
      {  if ( LOWORD(wParam) == VK_SHIFT )
	 {  extern int ShiftKeyDown;
	    ShiftKeyDown = FALSE;
	 }
	 break;
      }

      case WM_CHAR:
      {  GetUserCmd ( LOWORD(wParam), FALSE, 0 );
	 break;
      }

      case WM_ACTIVATEAPP:
		{   extern int ApplicationFocus;
	  ApplicationFocus = (int) LOWORD(wParam);
	  if (!ApplicationFocus )
		  UpdateCursor( ARROW_CURSOR );
	  break;
      }

      case WM_TIMER:
      {  static int value = 0;
	 extern HCURSOR NowCursor, WAIT[];
	 extern int ApplicationFocus;
	 value ++;
	 NowCursor = WAIT[value];
	 if (ApplicationFocus )
	    SetCursor ( NowCursor );
	 if (value > 7 )
	   value = 0;
	 break;
      }

      case WM_SETCURSOR:
      {  extern HCURSOR NowCursor;
	 SetCursor ( NowCursor );
	 break;
		}

      case WM_SETFOCUS:
		{  extern SCREEN WinDialog;
	 CreateCaret ( hMain, NULL, 1, WinDialog.LineSize);
	 ShowCaret ( hMain );
	 break;
      }

      case WM_KILLFOCUS:
      {  HideCaret ( hMain );
	 DestroyCaret();
	 break;
      }

		case WM_PAINT:
      {  PAINTSTRUCT ps;
	 HDC  hDC;
 
	 BeginPaint (hMain, (LPPAINTSTRUCT)&ps);
	    hDC = ps.hdc;
	    SetMapMode (hDC, MM_TEXT);
	    RedrawTerminal(hDC);
	    ValidateRect (hMain, (LPRECT)NULL);
	 EndPaint (hMain, (LPPAINTSTRUCT)&ps);
	 break;
      }

      case WM_SIZE:
      {  extern SCREEN WinDialog;
	 int min, max;

	 GetScrollRange (hMain,SB_VERT,&min, &max);
	 WinDialog.NoLines = (HIWORD (lParam) / WinDialog.LineSize) - 1;
	 SetScrollRange (hMain, SB_VERT, WinDialog.NoLines, max, TRUE );

	 InvalidateRect ( hMain, NULL, TRUE );
	 switch ( LOWORD(wParam) )
	 {  case SIZE_MINIMIZED:
			 PostMessage ( hMain, WM_COMMAND, IDC_WIN_MINIMIZE, 0);
	       break;

	    case SIZE_RESTORED:
	       PostMessage ( hMain, WM_COMMAND, IDC_WIN_MAXIMIZE, 0);
	       break;
	 }
	 break;
      }

      case WM_HSCROLL:
      {  extern SCREEN WinDialog;
	 int min, max, cp;
	 GetScrollRange (hMain,SB_HORZ,&min, &max);
	 cp = GetScrollPos ( hMain, SB_HORZ );
	 switch (LOWORD(wParam))
	 {   case SB_LINEDOWN:
	     {  cp++;
		break;
	     }
	     case SB_LINEUP:
		  {  cp--;
		break;
	     }
		  case SB_PAGEDOWN:
	     {  cp += WinDialog.NoLines;
		break;
	     }
	     case SB_PAGEUP:
	     {  cp -= WinDialog.NoLines;
		break;
	     }
	     case SB_THUMBTRACK:
		  {  cp = LOWORD(lParam);
		break;
	     }
		  default:
	     {   return (0);
	     }
	 }

	 if (cp > max) cp = max;
	 if (cp < min) cp = min;

	 SetScrollPos   (hMain, SB_HORZ, cp, TRUE );
	 InvalidateRect (hMain, NULL, TRUE );
	 break;
      }

      case WM_VSCROLL:
      {  extern SCREEN WinDialog;
	 int min, max, cp;
	 static int CaretON = TRUE;

	 GetScrollRange (hMain,SB_VERT,&min, &max);
	 cp = GetScrollPos ( hMain, SB_VERT );
	 switch (LOWORD(wParam))
	 {   case SB_LINEDOWN:
	     {  cp++;
		break;
		  }
	     case SB_LINEUP:
	     {  cp--;
		break;
	     }
	     case SB_PAGEDOWN:
	     {  cp += WinDialog.NoLines;
		break;
	     }
		  case SB_PAGEUP:
	     {  cp -= WinDialog.NoLines;
		break;
		  }
	     case SB_THUMBTRACK:
	     {  cp = LOWORD(lParam);
		break;
	     }
	     default:
	     {   return (0);
	     }
	 }

	 if (cp >= max)
	 {  cp = max;
		 ShowCaret ( hMain );
	    CaretON = TRUE;
	 }
	 else if ( CaretON )
	 {  HideCaret ( hMain );
	    CaretON = FALSE;
	 }

	 if (cp < WinDialog.NoLines)
		 cp = WinDialog.NoLines;

	 SetScrollPos   (hMain, SB_VERT, cp, TRUE );
	 InvalidateRect (hMain, NULL, TRUE );
	 break;
      }

      case WM_DESTROY:
		{  

	 /* Shut Down DDE Server. */
	 ShutDownDDE ( );

	 /* Free Dialog Window */
	 DeleteTerminal();

	 /* Quit Windows */
	 PostQuitMessage(0);
	 return 0;
      }

      /*-------------------------------+
      | Used to Update the Module Menu |
      +-------------------------------*/
		case WM_INITMENUPOPUP:
      {  int MenuID = GetMenuItemID((HMENU) wParam, 0);
	 if ( MenuID == IDM_MODULE_ONE )
		 UpdateModuleMenu ((HMENU)wParam);
	 break;
      }

      case WM_CLOSE:
	 PostMessage ( hMain, WM_COMMAND, IDM_FILE_QUIT, 0);
	 break;

      default:
	 return (DefWindowProc(hMain, message, wParam, lParam));
   }
   return (TRUE);
}