home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !FALCON / !BONUS / GAMES / ENGINES / BM214A.ZIP / BM214A / ORIGINAL.SRC / MAINMS.CPP < prev    next >
C/C++ Source or Header  |  1994-12-23  |  2KB  |  102 lines

  1. /********************************************************************
  2.  FILENAME: MAINMS.CPP
  3.  AUTHOR  : JAKE HILL
  4.  DATE    : 12/1/94
  5.  
  6.  Copyright (c) 1994 by Jake Hill:
  7.  If you use any part of this code in your own project, please credit
  8.  me in your documentation and source code.  Thanks.
  9. ********************************************************************/
  10.  
  11. #include "TRIG.HPP"
  12. #include "VIEW.HPP"
  13. #include "KEYBOARD.HPP"
  14.  
  15. #include <dos.h>
  16. #include <stdio.h>
  17. #include <stdlib.h>
  18.  
  19. void main(int argc, char *argv[])
  20. {
  21.    short Px, Py, Ph;
  22.    long FrameCount = 0L;
  23.    unsigned short Pangle;
  24.    char *WadFile = "DOOM.WAD";
  25.    short Level = 0, Step = 8, Turn = 1024;
  26.  
  27.    View Map;
  28.    if (argc == 2)
  29.       Level = atoi(argv[1]);
  30.    else if (argc == 3)
  31.    {
  32.       WadFile = argv[1];
  33.       Level   = atoi(argv[2]);
  34.    }
  35.    Map.OpenWad(WadFile, Level);
  36.  
  37.    SetKeyboardInt();
  38.  
  39.    Map.GetView(&Px, &Py, &Ph, &Pangle);
  40.    Map.SetView(Px,Py,Ph,Pangle);
  41.    Map.DrawView();
  42.  
  43.    float T1,T2,dT;
  44.    struct _dostime_t t1,t2;
  45.    _dos_gettime(&t1);
  46.  
  47.    while ( key != 1 )
  48.    {
  49.       FrameCount++;
  50.  
  51.       if ( key_flags & FLAG_UP )
  52.       {
  53.          Px += xCosA( Step, Pangle );
  54.          Py += xSinA( Step, Pangle );
  55.       }
  56.       if ( key_flags & FLAG_DOWN )
  57.       {
  58.          Px -= xCosA( Step, Pangle );
  59.          Py -= xSinA( Step, Pangle );
  60.       }
  61.  
  62.       if ( (key_flags & FLAG_SRIGHT) == FLAG_SRIGHT )
  63.       {
  64.          Px += xCosA( Step, Pangle-0x4000 );
  65.          Py += xSinA( Step, Pangle-0x4000 );
  66.       }
  67.       else
  68.       if ( key_flags & FLAG_RIGHT )
  69.          Pangle -= Turn;
  70.  
  71.       if ( (key_flags & FLAG_SLEFT) == FLAG_SLEFT )
  72.       {
  73.          Px += xCosA( Step, Pangle+0x4000 );
  74.          Py += xSinA( Step, Pangle+0x4000 );
  75.       }
  76.       else
  77.       if ( key_flags & FLAG_LEFT )
  78.          Pangle += Turn;
  79.  
  80.       if ( key == KEY_PLUS )
  81.          Ph += 10;
  82.       if ( key == KEY_MINUS )
  83.          Ph -= 10;
  84.  
  85.       Map.SetView(Px,Py,Ph,Pangle);
  86.       Map.DrawView();
  87.    }
  88.  
  89.    _dos_gettime(&t2);
  90.    Map.Close();
  91.  
  92.    T1 = t1.hsecond+(t1.second*100)+(t1.minute*6000);
  93.    T2 = t2.hsecond+(t2.second*100)+(t2.minute*6000);
  94.    dT = T2 - T1;
  95.    float fps = (float) FrameCount / ( (float) dT / 100 );
  96.  
  97.    ResetKeyboardInt();
  98.  
  99.    printf("\n");
  100.    printf("FPS = %f\n",fps);
  101.    printf("Elapsed Time = %4.2f\n",dT/100);
  102. };