#ifndef _INCLUDED_IASW_RANDOM_MISSIONS_H #define _INCLUDED_IASW_RANDOM_MISSIONS_H #ifdef _WIN32 #pragma once #endif #include "iasw_mission_chooser.h" namespace vgui { class Panel; }; class Vector; class KeyValues; class IASW_Encounter; enum { ASW_TILETYPE_UNKNOWN = 0, ASW_TILETYPE_OUTDOOR1, ASW_TILETYPE_OUTDOOR2, ASW_TILETYPE_ARENA1, ASW_TILETYPE_ARENA2, ASW_TILETYPE_ARENA3, ASW_TILETYPE_ROOM2, ASW_TILETYPE_ROOM1, ASW_TILETYPE_CORRIDOR1, ASW_TILETYPE_CORRIDOR2, ASW_TILETYPE_VENTS, ASW_TILETYPE_COUNT }; static const char *g_szASWTileTypeStrings[ASW_TILETYPE_COUNT] = { "Unknown", "Outdoor1", "Outdoor2", "Arena1", "Arena2", "Arena3", "Room1", "Room2", "Corridor1", "Corridor2", "Vents" }; class IASW_Room_Details { public: // tags virtual bool HasTag( const char *szTag ) = 0; virtual int GetNumTags() = 0; virtual const char* GetTag( int i ) = 0; virtual int GetSpawnWeight() = 0; virtual int GetNumExits() = 0; virtual IASW_Room_Details* GetAdjacentRoom( int nExit ) = 0; virtual bool GetThumbnailName( char* szOut, int iBufferSize ) = 0; virtual bool GetFullRoomName( char* szOut, int iBufferSize ) = 0; virtual void GetSoundscape( char* szOut, int iBufferSize ) = 0; virtual void GetTheme( char* szOut, int iBufferSize ) = 0; virtual const Vector& GetAmbientLight() = 0; virtual bool HasAlienEncounter() = 0; virtual int GetTileType() = 0; virtual const char* GetTileTypeName( int nType ) = 0; virtual int GetRoomIndex() const = 0; // location virtual void GetWorldBounds( Vector *vecWorldMins, Vector *vecWorldMaxs ) = 0; virtual const Vector& WorldSpaceCenter() = 0; }; class IASW_Random_Missions { public: virtual vgui::Panel* CreateTileGenFrame( vgui::Panel *parent ) = 0; virtual void LevelInitPostEntity( const char *pszMapName ) = 0; virtual bool ValidMapLayout() = 0; virtual IASW_Room_Details* GetRoomDetails( const Vector &vecPos ) = 0; virtual IASW_Room_Details* GetRoomDetails( int iRoomIndex ) = 0; virtual IASW_Room_Details* GetStartRoomDetails() = 0; virtual int GetNumRooms() = 0; virtual void GetMapBounds( Vector *vecWorldMins, Vector *vecWorldMaxs ) = 0; virtual KeyValues* GetGenerationOptions() = 0; // returns the generation options for the currently loaded random map virtual int GetNumEncounters() = 0; virtual IASW_Encounter* GetEncounter( int i ) = 0; virtual bool CheckAndCleanDirtyLayout( void ) = 0; }; #endif // _INCLUDED_IASW_RANDOM_MISSIONS_H