Blamite Game Engine - blam!  00296.01.12.21.0102.blamite
The core library for the Blamite Game Engine.
about_blamite.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../../debug_ui.h"
4 
5 #include <Strings/components/utils/utilities.h>
6 
9 
10 namespace Blam::DebugUI::Windows
11 {
39  {
40  protected:
41  bool show_release_history = false;
42 
43  public:
47  void Draw()
48  {
49  // About Blamite
50  if (show)
51  {
52  ImGui::Begin("About Blamite", &show, ImGuiWindowFlags_AlwaysAutoResize);
53  ImGui::Text("Engine version: %s", Blam::EngineDefs::GetVersion());
54  ImGui::Text("UI version: %s", InternalUI::GetVersion());
55  ImGui::Separator();
56  ImGui::Text("Created by Elaztek Studios");
57  ImGui::Separator();
58  ImGui::Text("The Blamite engine was coded by hand to mimic the Blam engine.");
59  ImGui::Text("Special thanks to the talented team behind Assembly and XboxChaos");
60  ImGui::Text("for laying the groundwork for the functionality of the engine.");
61  ImGui::Text("Shoutout to Bungie Studios and 343 Industries!");
62  ImGui::Separator();
63  ImGui::Text("Build date: %s", __DATE__);
64  ImGui::Text("Build time: %s", __TIME__);
65  ImGui::Separator();
66  if (ImGui::Button("Changelog"))
67  {
68  BlamStrings::Utils::OpenWebURL("https://elaztek.com/blogs/blog/4-blam-update-notes/");
69  }
70  ImGui::SameLine();
71  if (ImGui::Button("Release History (no longer updated)"))
72  {
73  show_release_history = true;
74  }
75  ImGui::End();
76  }
77 
78 
79  // Engine Revision History
81  {
82  ImGui::SetNextWindowSize(ImVec2(700, 500));
83  ImGui::Begin("Release History", &show_release_history, ImGuiWindowFlags_NoResize);
84  ImGui::Text("This version: %s", Blam::EngineDefs::GetVersion());
85 
86  ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1, 0, 0, 1));
87  ImGui::Text("The information here is inaccurate and no longer being updated. Please\r\nrefer to the Elaztek Website or the Blamite Gitlab repository for the current changelog.");
88  ImGui::PopStyleColor();
89 
90  ImGui::Separator();
91  //10000.10.16.16.0001.blamite
92  if (ImGui::CollapsingHeader("10000.10.16.16.0001.blamite"))
93  {
94  ImGui::Text("Game Title: N/A");
95  ImGui::Text("Contributors: haloman30");
96 
97  static bool read_only = true;
98  static char text[1024 * 16] =
99  "This is the inception of the engine. It introduced DirectX 11 rendering,"
100  "\nand the ImGUI debugging UI system. This build is present in current"
101  "\nengine builds under the name blam-ui-window-dx11-demo";
102 
103  ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0, 0));
104  //ImGui::Checkbox("Read-only", &read_only);
105  ImGui::PopStyleVar();
106  ImGui::InputTextMultiline("##source1", text, IM_ARRAYSIZE(text), ImVec2(-1.0f, ImGui::GetTextLineHeight() * 16), ImGuiInputTextFlags_AllowTabInput | (read_only ? ImGuiInputTextFlags_ReadOnly : 0));
107 
108  }
109  //00001.10.17.16.0001.blamite
110  if (ImGui::CollapsingHeader("00001.10.17.16.0001.blamite"))
111  {
112  ImGui::Text("Game Title: N/A");
113  ImGui::Text("Contributors: haloman30");
114 
115  static bool read_only = true;
116  static char text[1024 * 16] =
117  "This version includes various attempts at screenshot functions, and"
118  "\nmarked the point where the legacy DirectX SDK was retired in favor"
119  "\nof the updated DirectX Toolkit (DirectXTK).";
120 
121  ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0, 0));
122  //ImGui::Checkbox("Read-only", &read_only);
123  ImGui::PopStyleVar();
124  ImGui::InputTextMultiline("##source2", text, IM_ARRAYSIZE(text), ImVec2(-1.0f, ImGui::GetTextLineHeight() * 16), ImGuiInputTextFlags_AllowTabInput | (read_only ? ImGuiInputTextFlags_ReadOnly : 0));
125 
126  }
127  //00001.10.04.17.0001.blamite
128  if (ImGui::CollapsingHeader("00001.10.04.17.0001.blamite"))
129  {
130  ImGui::Text("Game Title: N/A");
131  ImGui::Text("Contributors: haloman30");
132 
133  static bool read_only = true;
134  static char text[1024 * 16] =
135  "This version marks real feature additions to the engine. Screenshots"
136  "\nwere now being properly taken/saved, and an 'Open Game Dir' function"
137  "\nwas introduced.";
138 
139  ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0, 0));
140  //ImGui::Checkbox("Read-only", &read_only);
141  ImGui::PopStyleVar();
142  ImGui::InputTextMultiline("##source3", text, IM_ARRAYSIZE(text), ImVec2(-1.0f, ImGui::GetTextLineHeight() * 16), ImGuiInputTextFlags_AllowTabInput | (read_only ? ImGuiInputTextFlags_ReadOnly : 0));
143 
144  }
145  //00002.02.25.18.0001.blamite
146  if (ImGui::CollapsingHeader("00002.02.25.18.0001.blamite"))
147  {
148  ImGui::Text("Game Title: N/A");
149  ImGui::Text("Contributors: haloman30");
150 
151  static bool read_only = true;
152  static char text[1024 * 16] =
153  "This version introduces the console, as well as several commands, as well"
154  "\nas adds a work-in-progress stats view. It also tests shadowed text by"
155  "\nre-drawing the same content twice (hacky but it works).";
156 
157  ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0, 0));
158  //ImGui::Checkbox("Read-only", &read_only);
159  ImGui::PopStyleVar();
160  ImGui::InputTextMultiline("##source4", text, IM_ARRAYSIZE(text), ImVec2(-1.0f, ImGui::GetTextLineHeight() * 16), ImGuiInputTextFlags_AllowTabInput | (read_only ? ImGuiInputTextFlags_ReadOnly : 0));
161 
162  }
163  //00003.04.29.18.0001.blamite
164  if (ImGui::CollapsingHeader("00003.04.29.18.0001.blamite"))
165  {
166  ImGui::Text("Game Title: N/A");
167  ImGui::Text("Contributors: haloman30, AwakenedRage");
168 
169  static bool read_only = true;
170  static char text[1024 * 16] =
171  "This version introduces support for CSC and HSC. It focuses primarily"
172  "\non command-based scripting. It also introduces BlamPhyLib and"
173  "\nBlamMathLib, both of which are preperations for a basic phyiscs engine."
174  "\nIt also introduced a special crash screen that are displayed on asserts.";
175 
176  ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0, 0));
177  //ImGui::Checkbox("Read-only", &read_only);
178  ImGui::PopStyleVar();
179  ImGui::InputTextMultiline("##source5", text, IM_ARRAYSIZE(text), ImVec2(-1.0f, ImGui::GetTextLineHeight() * 16), ImGuiInputTextFlags_AllowTabInput | (read_only ? ImGuiInputTextFlags_ReadOnly : 0));
180 
181  }
182 
183 
184 
185 
186  /*if (ImGui::CollapsingHeader("PLACEHOLDER"))
187  {
188  ImGui::Text("Game Title: {enter game title here}");
189  ImGui::Text("Contributors: {enter contributing people/groups/studios here}");
190 
191  static bool read_only = true;
192  static char text[1024 * 16] =
193  "This box is meant to hold any notable information about this release build."
194  "\nIt can specify any major overhauls, additions, or anything else noteworthy"
195  "\nin this release from the previous.";
196 
197  ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0, 0));
198  //ImGui::Checkbox("Read-only", &read_only);
199  ImGui::PopStyleVar();
200  ImGui::InputTextMultiline("##source", text, IM_ARRAYSIZE(text), ImVec2(-1.0f, ImGui::GetTextLineHeight() * 16), ImGuiInputTextFlags_AllowTabInput | (read_only ? ImGuiInputTextFlags_ReadOnly : 0));
201 
202  }*/
203  ImGui::End();
204  }
205  }
206  };
207 }
Blam::Modules::Keystone::OpenWebURL
BLAM bool OpenWebURL(std::string url)
Definition: keystone.cpp:88
Blam::DebugUI::Windows::AboutBlamite::show_release_history
bool show_release_history
Toggles the release history window.
Definition: about_blamite.hpp:41
InternalUI::GetVersion
const UI_API char * GetVersion()
Legacy function to retrieve the "UI version".
Definition: engine_definitions.cpp:103
Blam::DebugUI::Windows::AboutBlamite
Class for the legacy ImGUI-based About box.
Definition: about_blamite.hpp:38
Blam::EngineDefs::GetVersion
const BLAM char * GetVersion()
Retrieves the version of the engine in the following format:
Definition: engine_definitions.cpp:108
Blam::DebugUI::ImGUIDrawingGroup::show
bool show
Controls whether or not the group should be shown. May not be used in all groups.
Definition: debug_ui.h:362
Blam::DebugUI::Windows::AboutBlamite::Draw
void Draw()
Draws the About window.
Definition: about_blamite.hpp:47
Blam::DebugUI::ImGUIDrawingGroup
Class representing an ImGUI drawing group/draw list item.
Definition: debug_ui.h:359
utilities.h
engine_definitions.h
Blam::DebugUI::Windows
Legacy namespace to contain data for the legacy ImGUI console.
Definition: debug_ui.h:434
Text
@ Text
Master text object that wraps around both BitmapText and DWText.
Definition: render_stack.h:73