DOOR.H 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // Copyright 2020 Electronic Arts Inc.
  3. //
  4. // TiberianDawn.DLL and RedAlert.dll and corresponding source code is free
  5. // software: you can redistribute it and/or modify it under the terms of
  6. // the GNU General Public License as published by the Free Software Foundation,
  7. // either version 3 of the License, or (at your option) any later version.
  8. // TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed
  9. // in the hope that it will be useful, but with permitted additional restrictions
  10. // under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
  11. // distributed with this program. You should have received a copy of the
  12. // GNU General Public License along with permitted additional restrictions
  13. // with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
  14. /* $Header: /CounterStrike/DOOR.H 1 3/03/97 10:24a Joe_bostic $ */
  15. /***********************************************************************************************
  16. *** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
  17. ***********************************************************************************************
  18. * *
  19. * Project Name : Command & Conquer *
  20. * *
  21. * File Name : DOOR.H *
  22. * *
  23. * Programmer : Joe L. Bostic *
  24. * *
  25. * Start Date : 06/11/95 *
  26. * *
  27. * Last Update : June 11, 1995 [JLB] *
  28. * *
  29. *---------------------------------------------------------------------------------------------*
  30. * Functions: *
  31. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
  32. #ifndef DOOR_H
  33. #define DOOR_H
  34. class DoorClass
  35. {
  36. private:
  37. /*
  38. ** This is the animation control handler.
  39. */
  40. StageClass Control;
  41. /*
  42. ** This is the recorded number of stages of the current
  43. ** door animation process.
  44. */
  45. unsigned char Stages;
  46. /*
  47. ** This is the door state.
  48. */
  49. enum {
  50. IS_CLOSED, // Door is closed.
  51. IS_OPENING, // Door is in the process of opening.
  52. IS_OPEN, // Door is fully open.
  53. IS_CLOSING // Door is in the process of closing.
  54. } State;
  55. /*
  56. ** If the animation for this door indicates that the object it is
  57. ** attached to should be redrawn, then this flag will be true.
  58. */
  59. unsigned IsToRedraw:1;
  60. public:
  61. DoorClass(void);
  62. DoorClass(NoInitClass const & x) : Control(x) {};
  63. bool Time_To_Redraw(void) {return(IsToRedraw);};
  64. void Clear_Redraw_Flag(void) {IsToRedraw = false;};
  65. void AI(void);
  66. int Door_Stage(void) const;
  67. bool Is_Door_Opening(void) const {return(State == IS_OPENING);};
  68. bool Is_Door_Closing(void) const {return(State == IS_CLOSING);};
  69. bool Open_Door(int rate, int stages);
  70. bool Close_Door(int rate, int stages);
  71. bool Is_Door_Open(void) const {return(State == IS_OPEN);};
  72. bool Is_Door_Closed(void) const {return(State == IS_CLOSED);};
  73. bool Is_Ready_To_Open(void) const;
  74. };
  75. #endif