home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Homebrewer's Handbook / vr.iso / vr386 / splitdef.inc < prev    next >
Text File  |  1996-03-19  |  2KB  |  79 lines

  1. ;/* Splitting-tree structures for assembly */
  2.  
  3. ;/* Assembly-language structures*/
  4. ; by Dave Stampe, Dec. 93 */
  5.  
  6. ;/* Copyright 1993 by Dave Stampe and Bernie Roehl.
  7. ;   May be freely used to write software for release into the public domain;
  8. ;   all commercial endeavours MUST contact Bernie Roehl and Dave Stampe
  9. ;   for permission to incorporate any part of this software into their
  10. ;   products!
  11. ; */
  12.  
  13.  
  14.  
  15. ;struct _split {
  16. ;    long x, y, z;    /* a point in the splitting plane */
  17. ;    long nx, ny, nz; /* the normal vector to the splitting plane */
  18. ;    OBJLIST *olist;  /* list of objects making up this split */
  19. ;    unsigned flags;
  20. ;    char left_type;  /* indicates what the left pointer points to */
  21. ;    char right_type; /* indicates what the right pointer points to */
  22. ;#define ISSPLIT    0
  23. ;#define ISAREA     1
  24. ;#define ISOBJLIST  2
  25. ;    void *left, *right; /* can point to a split, an area or an objlists */
  26. ;    };
  27.  
  28. SPLIT STRUC
  29. split_x     dd ?
  30. split_y     dd ?
  31. split_z     dd ?
  32.  
  33. split_nx    dd ?
  34. split_ny    dd ?
  35. split_nz    dd ?
  36.  
  37. split_olistptr     dd ?
  38. split_flags    dw ?
  39. split_ltype    db ?
  40. split_rtype    db ?
  41.  
  42. split_leftptr     dd ?
  43. split_rightptr     dd ?
  44. SPLIT ENDS
  45.  
  46. ISSPLIT equ   0
  47. ISAREA  equ   1
  48. ISOBJLIST equ 2
  49.  
  50.  
  51. ;struct _area {
  52. ;    long floor_a, floor_b, floor_c, floor_d; /* ax + y + cx + d = 0 */
  53. ;    long ceiling_a, ceiling_b, ceiling_c, ceiling_d; /* ax + y + cx + d = 0 */
  54. ;    void (*fn)(AREA *);
  55. ;    AREA_REF *visfrom;
  56. ;    int has_tree : 1;
  57. ;    void *ptr;
  58. ;    char *name;
  59. ;    };
  60.  
  61. AREA STRUC
  62. area_floora    dd ?
  63. area_floorb    dd ?
  64. area_floorc    dd ?
  65. area_floord    dd ?
  66.  
  67. area_ceila    dd ?
  68. area_ceilb    dd ?
  69. area_ceilc    dd ?
  70. area_ceild    dd ?
  71.  
  72. area_fnptr     dd ?
  73. area_visptr    dd ?
  74. area_hastree    dw ?
  75. area_ptr     dd ?
  76. area_nameptr     dd ?
  77. AREA ENDS
  78.  
  79.