Blamite Game Engine - blam!  00272.10.26.20.0001.blamite
The core library for the Blamite Game Engine.
console.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <set>
4 
6 #include "../../render_stack.h"
8 #include <Strings/components/utils/string/string.h>
11 #include <Strings/components/utils/math/math.h>
16 
18 {
20  {
21  public:
23  int ticks_left = 0;
26 
27  ConsoleMessage(bool* _console_visible)
28  {
29  console_visible = _console_visible;
30 
33  }
34 
36  {
37  if (!*console_visible)
38  {
39  anim.Resume();
40 
41  if (ticks_left == 0)
42  {
43  if (!anim.HasStarted())
44  {
45  anim.Start();
46  }
47 
48  message->color.a = anim.GetColor().a;
50  }
51  else
52  {
53  ticks_left--;
54  }
55  }
56  else
57  {
58  anim.Pause();
59  }
60  }
61  };
62 
64  {
65  private:
66  //console placement offset from bottom left
67  float x_offset_base = 9;
68  float y_offset_base = 10;
69 
70  float x_offset = x_offset_base;
71  float y_offset = y_offset_base;
72 
73  BitmapText* prompt;
74  BitmapText* input;
75 
76  int prompt_stack_index = -1;
77  int input_stack_index = -1;
78 
79  //todo: make these configurable maybe
80  char active_index_char = '_';
81  std::string font_id = "";
82  bool extra_padding = false;
83  bool ready = false;
84 
85  int active_index = 0; //current cursor index
86  std::string current_input_display = ""; //modified version of input, used ONLY for display onscreen
87  std::string current_input = ""; //current input text
88 
89  int temp_line_height_base = 14;
90  int temp_line_height = temp_line_height_base;
91 
92  int max_recent_items = 30;
93 
94  std::vector<ConsoleMessage*> recent_output;
95  std::vector<std::string> recent_input;
96  int current_history_index = 0;
97 
98  int console_bottom_margin_base = 12;
99  int input_field_offset_base = 46;
100 
101  int console_bottom_margin = console_bottom_margin_base;
102  int input_field_offset = input_field_offset_base;
103 
104  float c_scale_factor = 1.0f;
105 
106  float message_show_duration = 4.0f;
107  float message_fade_duration = 1.0f;
108 
109  public:
111  {
113 
114  font_id = Blam::Config::GetConfig()->GetString("ui_default_font");
115  extra_padding = Blam::Config::GetConfig()->GetBoolean("extraConsoleOutputPadding");
116 
117  // create prompt text
118  prompt = new BitmapText();
119 
120  prompt->font_id = font_id;
121  prompt->use_shadow = true;
122  prompt->color = D2D1::ColorF(1, 0.298, 1, 1);
123  prompt->text = "halo(";
124 
125  prompt_stack_index = BlamRendering::RenderStack::AddToStack("console_prompt", prompt);
126 
127  // create input text
128  input = new BitmapText();
129 
130  input->font_id = font_id;
131  input->use_shadow = true;
132  input->color = D2D1::ColorF(1, 0.298, 1, 1);
133 
134  input_stack_index = BlamRendering::RenderStack::AddToStack("console_input", input);
135 
136  // add cursor position
138 
139  HandleResize();
140 
142 
145 
147 
148  ready = true;
149  }
150 
152  {
153  for (int i = 0; i < recent_output.size(); i++)
154  {
155  delete recent_output[i]->message;
156  delete recent_output[i];
157  }
158 
161  delete prompt;
162  delete input;
163  }
164 
165  void Draw()
166  {
167  float scale_factor = *Blam::Globals::GetGlobalAsFloat("ui_scale_factor");
168 
169  if (scale_factor != c_scale_factor)
170  {
171  c_scale_factor = scale_factor;
172 
173  console_bottom_margin = console_bottom_margin_base * (int)round(scale_factor);
174  input_field_offset = input_field_offset_base * (int)round(scale_factor);
175 
176  x_offset = x_offset_base * (int)round(scale_factor);
177  y_offset = y_offset_base * (int)round(scale_factor);
178 
179  temp_line_height = temp_line_height_base * (int)round(scale_factor);
180 
181  HandleResize();
182  }
183 
184  for (int i = 0; i < recent_output.size(); i++)
185  {
186  BitmapText* item = recent_output[i]->message;
187 
188  item->Draw();
189  }
190 
191  for (int i = recent_output.size() - 1; i >= 0; i--)
192  {
193  BitmapText* item = recent_output[i]->message;
194 
195  if (item->color.a == 0)
196  {
197  delete recent_output[i]->message;
198  delete recent_output[i];
199 
200  recent_output.erase(recent_output.begin() + i);
201  }
202  }
203  }
204 
206  {
207  if (event->GetCharacter() == '`')
208  {
210  }
211  else
212  {
213  if (visible)
214  {
215  std::string c(1, event->GetCharacter());
216 
217  current_input.insert(active_index, c);
218  active_index++;
219 
221  }
222  }
223  }
224 
226  {
227  switch (event->GetVirtualKey())
228  {
229  case SDLK_BACKSPACE:
230  {
231  handleBackspace();
232  event->setCancelled(true);
233  break;
234  }
235  case SDLK_LEFT:
236  {
238  event->setCancelled(true);
239  break;
240  }
241  case SDLK_RIGHT:
242  {
244  event->setCancelled(true);
245  break;
246  }
247  case SDLK_RETURN:
248  {
249  sendCommand();
250  event->setCancelled(true);
251  break;
252  }
253  case SDLK_UP:
254  {
255  handleCursorUp();
256  event->setCancelled(true);
257  break;
258  }
259  case SDLK_DOWN:
260  {
262  event->setCancelled(true);
263  break;
264  }
265  case SDLK_TAB:
266  {
267  showCommandList();
268  event->setCancelled(true);
269  break;
270  }
271  default:
272  {
273  break;
274  }
275  }
276  }
277 
279  {
280 
281  }
282 
283  // Updates the input display format
285  {
286  current_input_display = current_input;
287 
288  if (active_index == current_input.length())
289  {
290  current_input_display += active_index_char;
291  }
292  else
293  {
294  current_input_display[active_index] = active_index_char;
295  }
296 
297  input->text = current_input_display;
298  }
299 
300  // Handles console placement on window resize
302  {
303  // the - 12 is extra offset to ensure alignment from bottom of screen, adjust actual offset with x_offset and y_offset
304  if (prompt)
305  {
306  prompt->SetTranslation(x_offset, (BlamRendering::DirectX::GetSwapChainDesc().BufferDesc.Height - console_bottom_margin) - y_offset);
307  }
308 
309  if (input)
310  {
311  input->SetTranslation(x_offset + input_field_offset, (BlamRendering::DirectX::GetSwapChainDesc().BufferDesc.Height - console_bottom_margin) - y_offset);
312  }
313 
314 
315  int line_multiplier = recent_output.size();
316  for (int i = 0; i < recent_output.size(); i++)
317  {
318  BitmapText* item = recent_output[i]->message;
319 
320  int y_placement = (BlamRendering::DirectX::GetSwapChainDesc().BufferDesc.Height - console_bottom_margin) - y_offset;
321 
322  if (extra_padding)
323  {
324  y_placement -= temp_line_height;
325  }
326 
327  y_placement -= (temp_line_height * line_multiplier);
328 
329  item->SetTranslation(x_offset, y_placement);
330 
331  item->force_regenerate = true;
332 
333  line_multiplier--;
334  }
335  }
336 
337  int error_count = 0;
339 
340  // Called by Blam::Logger::LogEvent()
342  {
343  if (ready)
344  {
345  if (message.severity == WSV_ERROR || message.severity == WSV_WARNING)
346  {
347  error_count++;
348  }
349  else
350  {
351  error_count = 0;
352  supression_message_shown = false;
353  }
354 
355  if (error_count >= 5)
356  {
357  message.severity = WSV_NONE;
358  message.message = "too many errors, only printing to debug.txt";
359  //message = Blam::Logger::Internal::ApplyColorsFromConfig(message);
360  }
361 
363  {
364  BitmapText* log_msg = new BitmapText();
365 
366  log_msg->font_id = font_id;
367  log_msg->use_shadow = true;
368 
369  float new_r = (float)message.color.r / 255;
370  float new_g = (float)message.color.g / 255;
371  float new_b = (float)message.color.b / 255;
372 
373  log_msg->color = D2D1::ColorF(new_r, new_g, new_b, 1);
374  log_msg->text = message.message;
375 
376  if (extra_padding)
377  {
378  log_msg->SetTranslation(x_offset, (BlamRendering::DirectX::GetSwapChainDesc().BufferDesc.Height - console_bottom_margin_base) - y_offset - temp_line_height);
379  }
380  else
381  {
382  log_msg->SetTranslation(x_offset, (BlamRendering::DirectX::GetSwapChainDesc().BufferDesc.Height - console_bottom_margin_base) - y_offset);
383  }
384 
385  ConsoleMessage* c_msg = new ConsoleMessage(&visible);
386  c_msg->message = log_msg;
387  c_msg->ticks_left = Blam::Tick::MaxTicksPerSecond() * 5.0f;
388  c_msg->anim.Initialize(D2D1::ColorF(1.0f, 1.0f, 1.0f, 0.0f), log_msg->color, message_fade_duration, false);
389 
390  recent_output.push_back(c_msg);
391 
392  // resize/reorder/remove
393  if (recent_output.size() >= max_recent_items)
394  {
395  recent_output.erase(recent_output.begin() + 0);
396  }
397 
398  for (int i = 0; i < recent_output.size(); i++)
399  {
400  BitmapText* item = recent_output[i]->message;
401 
402  item->SetTranslation(item->x, item->y - temp_line_height);
403 
404  //item->force_regenerate = true;
405  }
406  }
407 
408  if (error_count >= 5)
409  {
411  }
412  }
413  }
414 
415  std::vector<std::string> getRecentInput()
416  {
417  return recent_input;
418  }
419 
421  {
422  for (int i = 0; i < recent_output.size(); i++)
423  {
424  while (recent_output[i]->message->currently_locked)
425  {
426  // wait
427  }
428 
429  delete recent_output[i]->message;
430  }
431 
432  recent_output.clear();
433  }
434 
435  /********************************************************************
436  The below functions are called from main.cpp's Window Procedure
437  ********************************************************************/
438 
439  // Called when a key is pressed
440  void handleKeyPress(char character)
441  {
442  /*if (visible)
443  {
444  std::string c(1, character);
445 
446  current_input.insert(active_index, c);
447  active_index++;
448 
449  updateInputDisplay();
450  }*/
451  }
452 
453  // Called when the backspace key is pressed
455  {
456  if (visible)
457  {
458  if (current_input.length() > 0)
459  {
460  current_input.erase(active_index - 1, 1);
461 
462  active_index--;
463 
465  }
466  }
467  }
468 
469  // Called when the left arrow key is pressed
471  {
472  if (visible)
473  {
474  if (active_index > 0)
475  {
476  active_index--;
477  }
478 
480  }
481  }
482 
483  // Called when the right arrow key is pressed
485  {
486  if (visible)
487  {
488  if (active_index < current_input.length())
489  {
490  active_index++;
491  }
492 
494  }
495  }
496 
498  {
499  if (current_history_index > 0)
500  {
501  current_history_index--;
502 
503  current_input = recent_input[current_history_index];
504 
505  active_index = current_input.size();
506 
508  }
509  }
510 
512  {
513  current_history_index++;
514 
515  if (current_history_index < recent_input.size())
516  {
517  current_input = recent_input[current_history_index];
518 
519  active_index = current_input.size();
520  }
521  else
522  {
523  current_history_index = recent_input.size();
524  current_input.clear();
525  active_index = 0;
526  }
527 
529  }
530 
531  // Called when ~ (or technically `) is pressed
533  {
534  visible = !visible;
535 
536  prompt->visible = visible;
537  input->visible = visible;
538  }
539 
540  // Called when enter is pressed
541  void sendCommand()
542  {
543  if (current_input.length() > 0)
544  {
545  Blam::Logger::LogEventForce("> " + current_input, WSV_INFO, WVIS_FILE_ONLY);
546 
547  Blam::Console::RunCommandLine(current_input);
548 
549  recent_input.push_back(current_input);
550  current_history_index = recent_input.size();
551 
552  current_input.clear();
553 
554  active_index = 0;
555 
557  }
558  }
559 
560  // Called when tab is pressed
562  {
563  using namespace Blam::Logger;
564 
565  std::set<std::string> command_list;
566 
567  std::map<std::string, Blam::Console::ConsoleCommand*> map = Blam::Console::GetCommandList();
568  std::map<std::string, Blam::Console::ConsoleCommand*>::iterator it;
569 
570  // Get any matching commands
571  for (it = map.begin(); it != map.end(); it++)
572  {
573  std::string command_name = it->second->name;
574 
575  if (BlamStrings::Utils::String::StartsWith(command_name, current_input, true))
576  {
577  command_list.insert(command_name);
578  }
579  }
580 
581  if (command_list.size() > 0)
582  {
583  // blank line
584  LogEventForce("", WSV_NONE);
585  }
586 
587  std::set<std::string>::iterator list_it;
588 
589  for (list_it = command_list.begin(); list_it != command_list.end(); list_it++)
590  {
591  std::string cmd_name = *list_it;
592 
594  }
595  }
596  };
597 }
BlamRendering::RenderStack::BitmapText::shadow_color
D2D1_COLOR_F shadow_color
The color to use for the drop shadow.
Definition: render_stack.h:851
BlamRendering::RenderStack::StackObjectBase::visible
bool visible
Whether or not the object is visible.
Definition: render_stack.h:375
Blam::Console::RunCommandLine
BLAM HRESULT RunCommandLine(std::string command_line)
Executed the provided string as a console command.
Definition: console.cpp:184
Blam::Console::GetCommandList
BLAM std::map< std::string, ConsoleCommand * > GetCommandList()
Retrieves the list of all loaded console commands.
Definition: console.cpp:150
BlamRendering::RenderStack::ConsoleUI::handleCursorLeft
void handleCursorLeft()
Definition: console.hpp:470
BlamRendering::RenderStack::ConsoleUI::ConsoleUI
ConsoleUI()
Definition: console.hpp:110
BlamRendering::RenderStack::BitmapText::font_id
std::string font_id
The ID of the font.
Definition: render_stack.h:844
Blam::Animation::ColorTransitionAnimation
Animation used to handle an alternating fade between two colors.
Definition: ColorTransition.h:22
command_list
std::map< std::string, ConsoleCommand * > command_list
The list of all loaded console commands.
Definition: console.cpp:35
logger.h
BlamRendering::RenderStack::ConsoleUI::onCharacterInputEvent
void onCharacterInputEvent(Blam::Events::CharacterInputEvent *event)
Called when the listener is subscribed to Character Input events, and a new CharacterInputEvent is fi...
Definition: console.hpp:205
BlamRendering::RenderStack::ConsoleUI::handleCursorRight
void handleCursorRight()
Definition: console.hpp:484
BlamColor::g
short g
The Green value of the color.
Definition: globals.h:24
Blam::Config::GetConfig
BLAM ConfigFile * GetConfig(std::string filename)
Retrieves the specified configuration file.
Definition: config.cpp:232
Blam::Events::RegisterListener
BLAM void RegisterListener(EventListener *listener)
Registers a an event listener.
Definition: events.cpp:62
BitmapText
@ BitmapText
Bitmap-based text, uses Blamite font system.
Definition: render_stack.h:72
Blam::Logger::LogMessage::severity
LogSeverity severity
The message severity. Defaults to None.
Definition: logger.h:93
Blam::Logger::LogMessage
Structure to store log message data.
Definition: logger.h:87
BlamRendering::RenderStack::StackObjectBase::type_label
StackType type_label
The type of the object.
Definition: render_stack.h:372
Tick
@ Tick
Definition: events.h:9
Blam::Globals::GetGlobalAsFloat
BLAM float * GetGlobalAsFloat(std::string name)
Retrieves a global's value as a float.
Definition: globals.cpp:399
BlamRendering::RenderStack::ConsoleUI::toggleVisibility
void toggleVisibility()
Definition: console.hpp:532
BlamRendering::RenderStack
Namespace containing things relating to the Render Stack.
Definition: drawing.h:14
Blam::Events::EventListener::Subscribe
void Subscribe(EventType type)
Subscribes to an event type.
Definition: events.h:51
console.h
Blam::Tick::MaxTicksPerSecond
BLAM int MaxTicksPerSecond()
Retrieves the maximum number of ticks per second.
Definition: tick.cpp:144
BlamRendering::RenderStack::ConsoleUI::Draw
void Draw()
Draws the stack object.
Definition: console.hpp:165
BlamRendering::RenderStack::ConsoleUI::error_count
int error_count
Definition: console.hpp:337
rendering.h
Blam::Events::TickEvent
Class representing an engine tick event.
Definition: TickEvent.hpp:12
BlamRendering::RenderStack::ConsoleMessage
Definition: console.hpp:19
BlamRendering::RenderStack::ConsoleUI::updateInputDisplay
void updateInputDisplay()
Definition: console.hpp:284
BlamRendering::RenderStack::ConsoleMessage::ConsoleMessage
ConsoleMessage(bool *_console_visible)
Definition: console.hpp:27
WSV_ERROR
#define WSV_ERROR
Macro for 'Error' log seveirty. Original pre-enum value was 2.
Definition: logger.h:17
BlamRendering::RenderStack::BitmapText::force_regenerate
bool force_regenerate
If enabled, will force the bitmap to regenerate on the next frame.
Definition: render_stack.h:864
WVIS_FILE_ONLY
#define WVIS_FILE_ONLY
Macro for 'FileOnly' log visibility. Original pre-enum value was 2.
Definition: logger.h:27
Blam::Animation::ColorTransitionAnimation::GetColor
D2D1_COLOR_F GetColor()
Returns the evaluated color data.
Definition: ColorTransition.h:171
BlamColor::r
short r
The Red value of the color.
Definition: globals.h:23
BlamRendering::RenderStack::ConsoleUI::getRecentInput
std::vector< std::string > getRecentInput()
Definition: console.hpp:415
events.h
BlamRendering::RenderStack::BitmapText::text
std::string text
The text to display.
Definition: render_stack.h:846
BlamRendering::DirectX::GetSwapChainDesc
BLAM DXGI_SWAP_CHAIN_DESC GetSwapChainDesc()
Retrieves the current Direct3D Swap Chain description.
Definition: render_manage.cpp:618
Blam::Animation::ColorTransitionAnimation::Initialize
void Initialize(D2D1_COLOR_F _c1, D2D1_COLOR_F _c2, float fade_duration, bool _loop)
Prepares data needed for the animation.
Definition: ColorTransition.h:133
BlamRendering::RenderStack::ConsoleUI::handleCursorDown
void handleCursorDown()
Definition: console.hpp:511
BlamRendering::RenderStack::StackObjectBase::color
D2D1_COLOR_F color
The color of the object.
Definition: render_stack.h:370
BlamRendering::RenderStack::ConsoleMessage::onTickEvent
void onTickEvent(Blam::Events::TickEvent *event)
Called when the listener is subscribed to Key Press events, and a new TickEvent is fired.
Definition: console.hpp:35
tick.h
BlamRendering::RenderStack::ConsoleMessage::ticks_left
int ticks_left
Definition: console.hpp:23
BlamRendering::RenderStack::StackObjectBase::y
float y
The Y coordinate of the object.
Definition: render_stack.h:378
globals.h
Blam::Animation::ColorTransitionAnimation::Pause
void Pause()
Definition: ColorTransition.h:184
Blam::Logger::LogMessage::color
BlamColor color
The overridden color information. Overrules any severity-based coloring.
Definition: logger.h:97
BlamRendering::RenderStack::ConsoleUI::handleCursorUp
void handleCursorUp()
Definition: console.hpp:497
BlamRendering::RenderStack::BitmapText::Draw
void Draw()
Draws the stack object.
Definition: BitmapText.cpp:13
Blam::Events::CharacterInputEvent
Class representing a character being pressed.
Definition: CharacterInputEvent.hpp:12
WSV_NONE
#define WSV_NONE
Macro for 'None' log seveirty. Original pre-enum value was 0.
Definition: logger.h:15
BlamRendering::RenderStack::ConsoleUI::handleBackspace
void handleBackspace()
Definition: console.hpp:454
ColorTransition.h
BlamRendering::RenderStack::ConsoleMessage::anim
Blam::Animation::ColorTransitionAnimation anim
Definition: console.hpp:24
Blam::Animation::ColorTransitionAnimation::Resume
void Resume()
Definition: ColorTransition.h:189
BlamRendering::RenderStack::BitmapText::use_shadow
bool use_shadow
Whether or not to draw the text with a drop shadow.
Definition: render_stack.h:852
BlamColor::b
short b
The Blue value of the color.
Definition: globals.h:25
BlamRendering::RenderStack::ConsoleMessage::console_visible
bool * console_visible
Definition: console.hpp:25
WSV_INFO
#define WSV_INFO
Macro for 'Info' log seveirty. Original pre-enum value was 1.
Definition: logger.h:16
BlamRendering::RenderStack::ConsoleUI::supression_message_shown
bool supression_message_shown
Definition: console.hpp:338
Blam::Events::CharacterInputEvent::GetCharacter
char GetCharacter()
Retrieves the character that was pressed.
Definition: CharacterInputEvent.hpp:34
BlamRendering::RenderStack::StackObjectBase::SetTranslation
void SetTranslation(float new_x, float new_y)
Sets the translation of the object.
Definition: StackObjectBase.cpp:55
STACKTYPE_CONSOLE
#define STACKTYPE_CONSOLE
Definition: render_stack.h:26
BlamRendering::RenderStack::ConsoleUI::showCommandList
void showCommandList()
Definition: console.hpp:561
BlamRendering::RenderStack::AddToStack
BLAM int AddToStack(std::string id, StackObjectBase *object)
Adds an item to the render stack.
Definition: render_stack.cpp:12
Blam::Events::KeyPressEvent::GetVirtualKey
int GetVirtualKey()
Retrieves the virtual key code that was pressed.
Definition: KeyPressEvent.hpp:35
BlamRendering::RenderStack::ConsoleUI::handleKeyPress
void handleKeyPress(char character)
Definition: console.hpp:440
Blam::Animation::ColorTransitionAnimation::Start
void Start()
Instructs the listener to start animating.
Definition: ColorTransition.h:157
BlamRendering::RenderStack::ConsoleUI::clearScrollback
void clearScrollback()
Definition: console.hpp:420
CharacterInput
@ CharacterInput
Definition: events.h:8
Blam::Logger::LogEventForce
BLAM void LogEventForce(std::string message, LogSeverity severity)
Forcibly logs a message to the log and/or console.
Definition: aliases.cpp:150
BlamRendering::RenderStack::RemoveFromStack
BLAM void RemoveFromStack(std::string id)
Removes an item from the render stack.
Definition: render_stack.cpp:26
BlamRendering::RenderStack::ConsoleUI::HandleResize
void HandleResize()
Called upon window resize events.
Definition: console.hpp:301
KeyPress
@ KeyPress
Definition: events.h:7
config.h
BlamRendering::RenderStack::BitmapText
Class representing text drawn using a Bitmap-based engine font.
Definition: render_stack.h:794
BlamRendering::RenderStack::ConsoleMessage::message
BitmapText * message
Definition: console.hpp:22
BlamRendering::RenderStack::StackObjectBase
Base class for all render stack objects.
Definition: render_stack.h:194
Blam::Config::ConfigFile::GetBoolean
bool GetBoolean(std::string option)
Retrieves the specified config option's value as a bool
Definition: config_accessors.cpp:61
BlamRendering::RenderStack::ConsoleUI::onKeyPressEvent
void onKeyPressEvent(Blam::Events::KeyPressEvent *event)
Called when the listener is subscribed to Key Press events, and a new KeyPressEvent is fired.
Definition: console.hpp:225
BlamRendering::RenderStack::ConsoleUI::~ConsoleUI
~ConsoleUI()
Definition: console.hpp:151
Blam::Events::KeyPressEvent
Class representing a virtual key press.
Definition: KeyPressEvent.hpp:14
Blam::Logger
Namespace containing things related to the Blamite Logger.
Definition: logger.h:82
Blam::Logger::LogMessage::message
std::string message
The message contents.
Definition: logger.h:92
BlamRendering::RenderStack::ConsoleUI::sendCommand
void sendCommand()
Definition: console.hpp:541
BlamRendering::RenderStack::ConsoleUI::handleNewOutput
void handleNewOutput(Blam::Logger::LogMessage message)
Definition: console.hpp:341
WSV_WARNING
#define WSV_WARNING
Macro for 'Warning' log seveirty. Original pre-enum value was 3.
Definition: logger.h:18
BlamRendering::RenderStack::ConsoleUI::ShowImPropertyEditor
void ShowImPropertyEditor()
Shows a set of ImGUI properties associated with the object.
Definition: console.hpp:278
Blam::Animation::ColorTransitionAnimation::HasStarted
bool HasStarted()
Determines whether or not the animation has been started.
Definition: ColorTransition.h:179
BlamRendering::RenderStack::ConsoleUI
Definition: console.hpp:63
BlamRendering::RenderStack::StackObjectBase::x
float x
The X coordinate of the object.
Definition: render_stack.h:377
Blam::Config::ConfigFile::GetString
std::string GetString(std::string option)
Retrieves the specified config option's value as a string.
Definition: config_accessors.cpp:10
Blam::Events::EventListener
Class representing an Event Listener.
Definition: events.h:38