Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.5 KiB

  1. #ifndef _INCLUDED_IASW_RANDOM_MISSIONS_H
  2. #define _INCLUDED_IASW_RANDOM_MISSIONS_H
  3. #ifdef _WIN32
  4. #pragma once
  5. #endif
  6. #include "iasw_mission_chooser.h"
  7. namespace vgui
  8. {
  9. class Panel;
  10. };
  11. class Vector;
  12. class KeyValues;
  13. class IASW_Encounter;
  14. enum
  15. {
  16. ASW_TILETYPE_UNKNOWN = 0,
  17. ASW_TILETYPE_OUTDOOR1,
  18. ASW_TILETYPE_OUTDOOR2,
  19. ASW_TILETYPE_ARENA1,
  20. ASW_TILETYPE_ARENA2,
  21. ASW_TILETYPE_ARENA3,
  22. ASW_TILETYPE_ROOM2,
  23. ASW_TILETYPE_ROOM1,
  24. ASW_TILETYPE_CORRIDOR1,
  25. ASW_TILETYPE_CORRIDOR2,
  26. ASW_TILETYPE_VENTS,
  27. ASW_TILETYPE_COUNT
  28. };
  29. static const char *g_szASWTileTypeStrings[ASW_TILETYPE_COUNT] =
  30. {
  31. "Unknown",
  32. "Outdoor1",
  33. "Outdoor2",
  34. "Arena1",
  35. "Arena2",
  36. "Arena3",
  37. "Room1",
  38. "Room2",
  39. "Corridor1",
  40. "Corridor2",
  41. "Vents"
  42. };
  43. class IASW_Room_Details
  44. {
  45. public:
  46. // tags
  47. virtual bool HasTag( const char *szTag ) = 0;
  48. virtual int GetNumTags() = 0;
  49. virtual const char* GetTag( int i ) = 0;
  50. virtual int GetSpawnWeight() = 0;
  51. virtual int GetNumExits() = 0;
  52. virtual IASW_Room_Details* GetAdjacentRoom( int nExit ) = 0;
  53. virtual bool GetThumbnailName( char* szOut, int iBufferSize ) = 0;
  54. virtual bool GetFullRoomName( char* szOut, int iBufferSize ) = 0;
  55. virtual void GetSoundscape( char* szOut, int iBufferSize ) = 0;
  56. virtual void GetTheme( char* szOut, int iBufferSize ) = 0;
  57. virtual const Vector& GetAmbientLight() = 0;
  58. virtual bool HasAlienEncounter() = 0;
  59. virtual int GetTileType() = 0;
  60. virtual const char* GetTileTypeName( int nType ) = 0;
  61. virtual int GetRoomIndex() const = 0;
  62. // location
  63. virtual void GetWorldBounds( Vector *vecWorldMins, Vector *vecWorldMaxs ) = 0;
  64. virtual const Vector& WorldSpaceCenter() = 0;
  65. };
  66. class IASW_Random_Missions
  67. {
  68. public:
  69. virtual vgui::Panel* CreateTileGenFrame( vgui::Panel *parent ) = 0;
  70. virtual void LevelInitPostEntity( const char *pszMapName ) = 0;
  71. virtual bool ValidMapLayout() = 0;
  72. virtual IASW_Room_Details* GetRoomDetails( const Vector &vecPos ) = 0;
  73. virtual IASW_Room_Details* GetRoomDetails( int iRoomIndex ) = 0;
  74. virtual IASW_Room_Details* GetStartRoomDetails() = 0;
  75. virtual int GetNumRooms() = 0;
  76. virtual void GetMapBounds( Vector *vecWorldMins, Vector *vecWorldMaxs ) = 0;
  77. virtual KeyValues* GetGenerationOptions() = 0; // returns the generation options for the currently loaded random map
  78. virtual int GetNumEncounters() = 0;
  79. virtual IASW_Encounter* GetEncounter( int i ) = 0;
  80. virtual bool CheckAndCleanDirtyLayout( void ) = 0;
  81. };
  82. #endif // _INCLUDED_IASW_RANDOM_MISSIONS_H