home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 March / Chip_1998-03_cd.bin / zkuste / SVET_GEO / GEORAY / GEORAY.ZIP / SOURCE.ZIP / GLOBALS.H next >
C/C++ Source or Header  |  1996-03-02  |  3KB  |  81 lines

  1. /***********************************************************************
  2.  *
  3.  * PROJECT:       Raycast
  4.  * FILE:          globals.h
  5.  *
  6.  * AUTHOR:        Marcus Gröber
  7.  *
  8.  ***********************************************************************/
  9. //
  10. // Globals.h
  11. // Projekt-Raycast
  12. // (C)1995 by Stefan Becker
  13. //
  14.  
  15. #ifndef    GLOBALS_H        // Damit es nicht doppelt verwendet wird
  16. #define GLOBALS_H               // Präprozessor-Flagge gegen doppelte Verwendung
  17.  
  18. //
  19. // Konstanten:
  20. //
  21.  
  22. #define         TURN_LEFT               'a'     // Tasten, die für Aktion gedrückt werden müssen
  23. #define        TURN_RIGHT        'd'    // rechtsherum drehen
  24. #define         WALK_FORW               'w'     // vorwärts laufen
  25. #define         WALK_BACKW              's'     // rückwärts laufen
  26.  
  27. #define         TURN_INC                30      // Winkeländerung beim Drehen des Spielers
  28. #define         WALK_INC                30      // Länge eines "Spieler-Schrittes"
  29.  
  30. #define         MAZE_X                  16      // Größe des begehbaren Spielfeldes
  31. #define        MAZE_Y            16    // 16x16 Felder
  32.  
  33. #define         TEX_SIZE                128     // Größe der quadratischen Textur in Pixeln
  34. #define         TEX_SHIFT               7       // lg2(TEX_SIZE)
  35.  
  36. #define         MAZE_MAX_X              (MAZE_X * TEX_SIZE)     // Größte X-Position in Pixeln
  37. #define         MAZE_MAX_Y              (MAZE_Y * TEX_SIZE)     // Größte Y-Position in Pixeln
  38.  
  39. #define         XAUF                    240     // Größe der im Fenster erzeugten Grafik in Pixeln
  40. #define         YAUF                    200
  41.  
  42. #define        BLICK_WINKEL    60    // Blickwinkel der Person in Grad
  43.  
  44. #define         ANZ_WINKEL              ((360/BLICK_WINKEL)*XAUF) // So viele Drehwinkel gibt es
  45.  
  46. #define        TEXTURE_DEPTH    8    // Bit/Pixel der Textur
  47.  
  48. #define         EPSILON                 1.0E-8  // Schranke für unscharfen Null-Test
  49.  
  50. #define        MAX_SICHT        10000    // Maximale Sichtweite
  51.  
  52. #define         PERSPEKTIVE             25000   // Wie groß sind Objekte in welcher Entfernung?
  53.  
  54. //
  55. // Makros:
  56. //
  57. #define    ABS(x)        (((x)>=0) ? (x) : (-(x)))    // Standard-Abs-Makro
  58. #define MIN(x,y)        (((x)<=(y)) ? (x) : (y))        // Standard-Min-Makro
  59. #define MAX(x,y)        (((x)>=(y)) ? (x) : (y))        // Standard-Max-Makro
  60.  
  61. //
  62. // Typen:
  63. //
  64.  
  65. typedef char    MAZE[MAZE_X][MAZE_Y];   // Typ einer begehbaren Landschaft
  66.                                         // (+1 wegen String-Terminierung)
  67. typedef WWFixedAsDWord WINKEL_TAB[ANZ_WINKEL];
  68.                                         // Typ einer Winkel-Tabelle
  69. typedef WWFixedAsDWord SKIP_TAB[ANZ_WINKEL];
  70.                                         // Typ einer Skip-Tabelle
  71.  
  72. extern WINKEL_TAB  x_winkel_tab,
  73.                    y_winkel_tab;
  74. extern MAZE        maze;
  75.  
  76. #endif                                  // Ende des Präprozessor-If
  77.  
  78. //
  79. // Globals.h
  80. //
  81.