SOSRES.H 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. /*
  2. ** Command & Conquer Red Alert(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. /****************************************************************************
  19. File : sosres.h
  20. Programmer(s) : Don Fowler, Nick Skrepetos
  21. Date :
  22. Purpose : Include Files For Zortech C++ Compiler
  23. Last Updated :
  24. ****************************************************************************
  25. Copyright(c) 1993,1994 Human Machine Interfaces
  26. All Rights Reserved
  27. ****************************************************************************/
  28. #define _SOS_RESOURCE
  29. #ifndef _SOS_RESOURCE
  30. #define _SOS_RESOURCE
  31. // structure for resource file header
  32. typedef struct
  33. {
  34. // file version
  35. WORD wVersion;
  36. // file size
  37. LONG dwFileSize;
  38. // number of resources in file
  39. WORD wResCount;
  40. // offset of resource data from top of file
  41. LONG dwResOffset;
  42. // offset of sync track from top of file
  43. LONG dwSyncTrackOffset;
  44. } _RES_FILE_HEADER;
  45. // structure for resource block header
  46. typedef struct
  47. {
  48. // resource id
  49. WORD wID;
  50. // resource type
  51. WORD wResType;
  52. // offset of next block
  53. LONG dwNextBlock;
  54. // size of the current resource information
  55. LONG dwResSize;
  56. // rate to play block at
  57. WORD wBlockRate;
  58. // id for the sync track to use
  59. WORD wSyncTrackID;
  60. } _RES_BLOCK_HEADER;
  61. // structure for sync mark tag
  62. typedef struct _tagSYNCMARK
  63. {
  64. // ID of the type of mark being used
  65. WORD wID;
  66. // location in data of sync mark
  67. LONG dwSyncOffset;
  68. // length of sync block
  69. LONG dwSyncSize;
  70. // start sample data
  71. _SOS_START_SAMPLE sampleData;
  72. } _RES_SYNCMARK;
  73. typedef union
  74. {
  75. // structure for sync mark tag
  76. _RES_SYNCMARK syncMark;
  77. } _RES_TAG;
  78. // union for filter information for prepareWave
  79. typedef union
  80. {
  81. // filter type
  82. WORD wFilterID;
  83. // structure for volume
  84. struct volume
  85. {
  86. WORD wVolume;
  87. };
  88. // structure for delay
  89. struct delay
  90. {
  91. WORD wDelaySamples;
  92. };
  93. } _SOS_FILTER;
  94. #endif
  95.