st_lib.h
上传用户:xuyinpeng
上传日期:2021-05-12
资源大小:455k
文件大小:4k
源码类别:

射击游戏

开发平台:

Visual C++

  1. // Emacs style mode select   -*- C++ -*- 
  2. //-----------------------------------------------------------------------------
  3. //
  4. // $Id:$
  5. //
  6. // Copyright (C) 1993-1996 by id Software, Inc.
  7. //
  8. // This source is available for distribution and/or modification
  9. // only under the terms of the DOOM Source Code License as
  10. // published by id Software. All rights reserved.
  11. //
  12. // The source is distributed in the hope that it will be useful,
  13. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
  15. // for more details.
  16. //
  17. // DESCRIPTION:
  18. //  The status bar widget code.
  19. //
  20. //-----------------------------------------------------------------------------
  21. #ifndef __STLIB__
  22. #define __STLIB__
  23. // We are referring to patches.
  24. #include "r_defs.h"
  25. //
  26. // Background and foreground screen numbers
  27. //
  28. #define BG 4
  29. #define FG 0
  30. //
  31. // Typedefs of widgets
  32. //
  33. // Number widget
  34. typedef struct
  35. {
  36.     // upper right-hand corner
  37.     //  of the number (right-justified)
  38.     int x;
  39.     int y;
  40.     // max # of digits in number
  41.     int width;    
  42.     // last number value
  43.     int oldnum;
  44.     
  45.     // pointer to current value
  46.     int* num;
  47.     // pointer to boolean stating
  48.     //  whether to update number
  49.     boolean* on;
  50.     // list of patches for 0-9
  51.     patch_t** p;
  52.     // user data
  53.     int data;
  54.     
  55. } st_number_t;
  56. // Percent widget ("child" of number widget,
  57. //  or, more precisely, contains a number widget.)
  58. typedef struct
  59. {
  60.     // number information
  61.     st_number_t n;
  62.     // percent sign graphic
  63.     patch_t* p;
  64.     
  65. } st_percent_t;
  66. // Multiple Icon widget
  67. typedef struct
  68. {
  69.      // center-justified location of icons
  70.     int x;
  71.     int y;
  72.     // last icon number
  73.     int oldinum;
  74.     // pointer to current icon
  75.     int* inum;
  76.     // pointer to boolean stating
  77.     //  whether to update icon
  78.     boolean* on;
  79.     // list of icons
  80.     patch_t** p;
  81.     
  82.     // user data
  83.     int data;
  84.     
  85. } st_multicon_t;
  86. // Binary Icon widget
  87. typedef struct
  88. {
  89.     // center-justified location of icon
  90.     int x;
  91.     int y;
  92.     // last icon value
  93.     int oldval;
  94.     // pointer to current icon status
  95.     boolean* val;
  96.     // pointer to boolean
  97.     //  stating whether to update icon
  98.     boolean* on;  
  99.     patch_t* p; // icon
  100.     int data;   // user data
  101.     
  102. } st_binicon_t;
  103. //
  104. // Widget creation, access, and update routines
  105. //
  106. // Initializes widget library.
  107. // More precisely, initialize STMINUS,
  108. //  everything else is done somewhere else.
  109. //
  110. void STlib_init(void);
  111. // Number widget routines
  112. void
  113. STlib_initNum
  114. ( st_number_t* n,
  115.   int x,
  116.   int y,
  117.   patch_t** pl,
  118.   int* num,
  119.   boolean* on,
  120.   int width );
  121. void
  122. STlib_updateNum
  123. ( st_number_t* n,
  124.   boolean refresh );
  125. // Percent widget routines
  126. void
  127. STlib_initPercent
  128. ( st_percent_t* p,
  129.   int x,
  130.   int y,
  131.   patch_t** pl,
  132.   int* num,
  133.   boolean* on,
  134.   patch_t* percent );
  135. void
  136. STlib_updatePercent
  137. ( st_percent_t* per,
  138.   int refresh );
  139. // Multiple Icon widget routines
  140. void
  141. STlib_initMultIcon
  142. ( st_multicon_t* mi,
  143.   int x,
  144.   int y,
  145.   patch_t** il,
  146.   int* inum,
  147.   boolean* on );
  148. void
  149. STlib_updateMultIcon
  150. ( st_multicon_t* mi,
  151.   boolean refresh );
  152. // Binary Icon widget routines
  153. void
  154. STlib_initBinIcon
  155. ( st_binicon_t* b,
  156.   int x,
  157.   int y,
  158.   patch_t* i,
  159.   boolean* val,
  160.   boolean* on );
  161. void
  162. STlib_updateBinIcon
  163. ( st_binicon_t* bi,
  164.   boolean refresh );
  165. #endif
  166. //-----------------------------------------------------------------------------
  167. //
  168. // $Log:$
  169. //
  170. //-----------------------------------------------------------------------------