mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2024-12-11 05:01:25 +00:00
169 lines
6.1 KiB
C++
169 lines
6.1 KiB
C++
/*
|
|
===========================================================================
|
|
|
|
Doom 3 BFG Edition GPL Source Code
|
|
Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company.
|
|
|
|
This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code").
|
|
|
|
Doom 3 BFG Edition Source Code is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Doom 3 BFG Edition Source Code is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Doom 3 BFG Edition Source Code. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
In addition, the Doom 3 BFG Edition Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 BFG Edition Source Code. If not, please request a copy in writing from id Software at the address below.
|
|
|
|
If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
|
|
|
|
===========================================================================
|
|
*/
|
|
|
|
#ifndef __USERINTERFACE_H__
|
|
#define __USERINTERFACE_H__
|
|
|
|
/*
|
|
===============================================================================
|
|
|
|
Draws an interactive 2D surface.
|
|
Used for all user interaction with the game.
|
|
|
|
===============================================================================
|
|
*/
|
|
|
|
class idFile;
|
|
class idDemoFile;
|
|
|
|
|
|
class idUserInterface
|
|
{
|
|
public:
|
|
virtual ~idUserInterface() {};
|
|
|
|
// Returns the name of the gui.
|
|
virtual const char* Name() const = 0;
|
|
|
|
// Returns a comment on the gui.
|
|
virtual const char* Comment() const = 0;
|
|
|
|
// Returns true if the gui is interactive.
|
|
virtual bool IsInteractive() const = 0;
|
|
|
|
virtual bool IsUniqued() const = 0;
|
|
|
|
virtual void SetUniqued( bool b ) = 0;
|
|
// returns false if it failed to load
|
|
virtual bool InitFromFile( const char* qpath, bool rebuild = true, bool cache = true ) = 0;
|
|
|
|
// handles an event, can return an action string, the caller interprets
|
|
// any return and acts accordingly
|
|
virtual const char* HandleEvent( const sysEvent_t* event, int time, bool* updateVisuals = NULL ) = 0;
|
|
|
|
// handles a named event
|
|
virtual void HandleNamedEvent( const char* eventName ) = 0;
|
|
|
|
// repaints the ui
|
|
virtual void Redraw( int time, bool hud = false ) = 0;
|
|
|
|
// repaints the cursor
|
|
virtual void DrawCursor() = 0;
|
|
|
|
// Provides read access to the idDict that holds this gui's state.
|
|
virtual const idDict& State() const = 0;
|
|
|
|
// Removes a gui state variable
|
|
virtual void DeleteStateVar( const char* varName ) = 0;
|
|
|
|
// Sets a gui state variable.
|
|
virtual void SetStateString( const char* varName, const char* value ) = 0;
|
|
virtual void SetStateBool( const char* varName, const bool value ) = 0;
|
|
virtual void SetStateInt( const char* varName, const int value ) = 0;
|
|
virtual void SetStateFloat( const char* varName, const float value ) = 0;
|
|
|
|
// Gets a gui state variable
|
|
virtual const char* GetStateString( const char* varName, const char* defaultString = "" ) const = 0;
|
|
virtual bool GetStateBool( const char* varName, const char* defaultString = "0" ) const = 0;
|
|
virtual int GetStateInt( const char* varName, const char* defaultString = "0" ) const = 0;
|
|
virtual float GetStateFloat( const char* varName, const char* defaultString = "0" ) const = 0;
|
|
|
|
// The state has changed and the gui needs to update from the state idDict.
|
|
virtual void StateChanged( int time, bool redraw = false ) = 0;
|
|
|
|
// Activated the gui.
|
|
virtual const char* Activate( bool activate, int time ) = 0;
|
|
|
|
// Triggers the gui and runs the onTrigger scripts.
|
|
virtual void Trigger( int time ) = 0;
|
|
|
|
virtual void ReadFromDemoFile( class idDemoFile* f ) = 0;
|
|
virtual void WriteToDemoFile( class idDemoFile* f ) = 0;
|
|
|
|
virtual bool WriteToSaveGame( idFile* savefile ) const = 0;
|
|
virtual bool ReadFromSaveGame( idFile* savefile ) = 0;
|
|
virtual void SetKeyBindingNames() = 0;
|
|
|
|
virtual void SetCursor( float x, float y ) = 0;
|
|
virtual float CursorX() = 0;
|
|
virtual float CursorY() = 0;
|
|
};
|
|
|
|
|
|
class idUserInterfaceManager
|
|
{
|
|
public:
|
|
virtual ~idUserInterfaceManager() {};
|
|
|
|
virtual void Init() = 0;
|
|
virtual void Shutdown() = 0;
|
|
virtual void Touch( const char* name ) = 0;
|
|
virtual void WritePrecacheCommands( idFile* f ) = 0;
|
|
|
|
// use either the optimized or legacy implementation for
|
|
// testing, based on the g_useNewGuiCode cvar
|
|
virtual void SetDrawingDC() = 0;
|
|
|
|
// Sets the size for 640x480 adjustment.
|
|
virtual void SetSize( float width, float height ) = 0;
|
|
|
|
virtual void BeginLevelLoad() = 0;
|
|
virtual void EndLevelLoad( const char* mapName ) = 0;
|
|
virtual void Preload( const char* mapName ) = 0;
|
|
|
|
// Reloads changed guis, or all guis.
|
|
virtual void Reload( bool all ) = 0;
|
|
|
|
// lists all guis
|
|
virtual void ListGuis() const = 0;
|
|
|
|
// Returns true if gui exists.
|
|
virtual bool CheckGui( const char* qpath ) const = 0;
|
|
|
|
// Allocates a new gui.
|
|
virtual idUserInterface* Alloc() const = 0;
|
|
|
|
// De-allocates a gui.. ONLY USE FOR PRECACHING
|
|
virtual void DeAlloc( idUserInterface* gui ) = 0;
|
|
|
|
// Returns NULL if gui by that name does not exist.
|
|
virtual idUserInterface* FindGui( const char* qpath, bool autoLoad = false, bool needUnique = false, bool forceUnique = false ) = 0;
|
|
|
|
// Returns NULL if gui by that name does not exist.
|
|
virtual idUserInterface* FindDemoGui( const char* qpath ) = 0;
|
|
|
|
// Allocates a new GUI list handler
|
|
virtual idListGUI* AllocListGUI() const = 0;
|
|
|
|
// De-allocates a list gui
|
|
virtual void FreeListGUI( idListGUI* listgui ) = 0;
|
|
};
|
|
|
|
extern idUserInterfaceManager* uiManager;
|
|
|
|
#endif /* !__USERINTERFACE_H__ */
|