Skyscraper 2.0
stats.cpp
Go to the documentation of this file.
1/*
2 Skyscraper 2.0 Alpha - Statistics Dialog
3 Copyright (C)2003-2024 Ryan Thoryk
4 https://www.skyscrapersim.net
5 https://sourceforge.net/projects/skyscraper/
6 Contact - ryan@skyscrapersim.net
7
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 as published by the Free Software Foundation; either version 2
11 of the License, or (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21*/
22
23//(*InternalHeaders(Stats)
24#include <wx/intl.h>
25#include <wx/string.h>
26//*)
27#include "globals.h"
28#include "sbs.h"
29#include "texture.h"
30#include "vm.h"
31#include "hal.h"
32#include "debugpanel.h"
33#include "stats.h"
34
35using namespace SBS;
36
37namespace Skyscraper {
38
39//(*IdInit(Stats)
40const long Stats::ID_STATICTEXT18 = wxNewId();
41const long Stats::ID_tName = wxNewId();
42const long Stats::ID_STATICTEXT17 = wxNewId();
43const long Stats::ID_tDesigner = wxNewId();
44const long Stats::ID_STATICTEXT16 = wxNewId();
45const long Stats::ID_tLocation = wxNewId();
46const long Stats::ID_STATICTEXT15 = wxNewId();
47const long Stats::ID_tDescription = wxNewId();
48const long Stats::ID_STATICTEXT14 = wxNewId();
49const long Stats::ID_tVersion = wxNewId();
50const long Stats::ID_STATICTEXT5 = wxNewId();
51const long Stats::ID_tFloors = wxNewId();
52const long Stats::ID_STATICTEXT6 = wxNewId();
53const long Stats::ID_tBasements = wxNewId();
54const long Stats::ID_STATICTEXT7 = wxNewId();
55const long Stats::ID_tElevators = wxNewId();
56const long Stats::ID_STATICTEXT8 = wxNewId();
57const long Stats::ID_tShafts = wxNewId();
58const long Stats::ID_STATICTEXT9 = wxNewId();
59const long Stats::ID_tStairs = wxNewId();
60const long Stats::ID_STATICTEXT1 = wxNewId();
61const long Stats::ID_tMeshes = wxNewId();
62const long Stats::ID_STATICTEXT3 = wxNewId();
63const long Stats::ID_tTextures = wxNewId();
64const long Stats::ID_STATICTEXT4 = wxNewId();
65const long Stats::ID_tActions = wxNewId();
66const long Stats::ID_STATICTEXT21 = wxNewId();
67const long Stats::ID_tSounds = wxNewId();
68const long Stats::ID_STATICTEXT22 = wxNewId();
69const long Stats::ID_tObjects = wxNewId();
70const long Stats::ID_STATICTEXT24 = wxNewId();
71const long Stats::ID_tWalls = wxNewId();
72const long Stats::ID_STATICTEXT25 = wxNewId();
73const long Stats::ID_tPolygons = wxNewId();
74const long Stats::ID_STATICTEXT10 = wxNewId();
75const long Stats::ID_tInStairwell = wxNewId();
76const long Stats::ID_STATICTEXT11 = wxNewId();
77const long Stats::ID_tInElevator = wxNewId();
78const long Stats::ID_STATICTEXT12 = wxNewId();
79const long Stats::ID_tInShaft = wxNewId();
80const long Stats::ID_STATICTEXT13 = wxNewId();
81const long Stats::ID_tRunningTime = wxNewId();
82const long Stats::ID_STATICTEXT20 = wxNewId();
83const long Stats::ID_tFrontendVersion = wxNewId();
84const long Stats::ID_STATICTEXT23 = wxNewId();
85const long Stats::ID_tSBSVersion = wxNewId();
86const long Stats::ID_STATICTEXT26 = wxNewId();
87const long Stats::ID_tPlatform = wxNewId();
88const long Stats::ID_STATICTEXT2 = wxNewId();
89const long Stats::ID_tRenderer = wxNewId();
90const long Stats::ID_bOK = wxNewId();
91//*)
92
93BEGIN_EVENT_TABLE(Stats,wxDialog)
94 //(*EventTable(Stats)
95 //*)
96END_EVENT_TABLE()
97
98Stats::Stats(DebugPanel* parent,wxWindowID id)
99{
100 //(*Initialize(Stats)
101 wxFlexGridSizer* FlexGridSizer1;
102 wxFlexGridSizer* FlexGridSizer2;
103 wxFlexGridSizer* FlexGridSizer3;
104 wxFlexGridSizer* FlexGridSizer4;
105 wxStaticBoxSizer* StaticBoxSizer1;
106 wxStaticBoxSizer* StaticBoxSizer2;
107
108 Create(parent, wxID_ANY, _("Simulator Statistics"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, _T("wxID_ANY"));
109 FlexGridSizer1 = new wxFlexGridSizer(0, 1, 0, 0);
110 FlexGridSizer4 = new wxFlexGridSizer(0, 3, 0, 0);
111 StaticBoxSizer2 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Building Information"));
112 FlexGridSizer3 = new wxFlexGridSizer(0, 2, 0, 0);
113 StaticText18 = new wxStaticText(this, ID_STATICTEXT18, _("Name:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT18"));
114 FlexGridSizer3->Add(StaticText18, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
115 tName = new wxTextCtrl(this, ID_tName, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxTE_CENTRE|wxTE_WORDWRAP, wxDefaultValidator, _T("ID_tName"));
116 tName->SetMinSize(wxSize(175,50));
117 FlexGridSizer3->Add(tName, 1, wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
118 StaticText17 = new wxStaticText(this, ID_STATICTEXT17, _("Designer:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT17"));
119 FlexGridSizer3->Add(StaticText17, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
120 tDesigner = new wxTextCtrl(this, ID_tDesigner, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxTE_CENTRE|wxTE_WORDWRAP, wxDefaultValidator, _T("ID_tDesigner"));
121 tDesigner->SetMinSize(wxSize(-1,50));
122 FlexGridSizer3->Add(tDesigner, 1, wxLEFT|wxEXPAND, 5);
123 StaticText16 = new wxStaticText(this, ID_STATICTEXT16, _("Location:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT16"));
124 FlexGridSizer3->Add(StaticText16, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
125 tLocation = new wxTextCtrl(this, ID_tLocation, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxTE_CENTRE|wxTE_WORDWRAP, wxDefaultValidator, _T("ID_tLocation"));
126 tLocation->SetMinSize(wxSize(-1,50));
127 FlexGridSizer3->Add(tLocation, 1, wxLEFT|wxEXPAND, 5);
128 StaticText15 = new wxStaticText(this, ID_STATICTEXT15, _("Description:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT15"));
129 FlexGridSizer3->Add(StaticText15, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
130 tDescription = new wxTextCtrl(this, ID_tDescription, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxTE_CENTRE|wxTE_WORDWRAP, wxDefaultValidator, _T("ID_tDescription"));
131 tDescription->SetMinSize(wxSize(-1,50));
132 FlexGridSizer3->Add(tDescription, 1, wxLEFT|wxEXPAND, 5);
133 StaticText14 = new wxStaticText(this, ID_STATICTEXT14, _("Version:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT14"));
134 FlexGridSizer3->Add(StaticText14, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
135 tVersion = new wxTextCtrl(this, ID_tVersion, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tVersion"));
136 FlexGridSizer3->Add(tVersion, 1, wxLEFT|wxEXPAND, 5);
137 StaticText5 = new wxStaticText(this, ID_STATICTEXT5, _("Floors:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5"));
138 FlexGridSizer3->Add(StaticText5, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
139 tFloors = new wxTextCtrl(this, ID_tFloors, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tFloors"));
140 FlexGridSizer3->Add(tFloors, 1, wxLEFT|wxEXPAND, 5);
141 StaticText6 = new wxStaticText(this, ID_STATICTEXT6, _("Basements:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT6"));
142 FlexGridSizer3->Add(StaticText6, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
143 tBasements = new wxTextCtrl(this, ID_tBasements, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tBasements"));
144 FlexGridSizer3->Add(tBasements, 1, wxLEFT|wxEXPAND, 5);
145 StaticText7 = new wxStaticText(this, ID_STATICTEXT7, _("Elevators:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT7"));
146 FlexGridSizer3->Add(StaticText7, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
147 tElevators = new wxTextCtrl(this, ID_tElevators, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tElevators"));
148 FlexGridSizer3->Add(tElevators, 1, wxLEFT|wxEXPAND, 5);
149 StaticText8 = new wxStaticText(this, ID_STATICTEXT8, _("Shafts:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT8"));
150 FlexGridSizer3->Add(StaticText8, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
151 tShafts = new wxTextCtrl(this, ID_tShafts, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tShafts"));
152 FlexGridSizer3->Add(tShafts, 1, wxLEFT|wxEXPAND, 5);
153 StaticText9 = new wxStaticText(this, ID_STATICTEXT9, _("Stairs:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT9"));
154 FlexGridSizer3->Add(StaticText9, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
155 tStairs = new wxTextCtrl(this, ID_tStairs, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tStairs"));
156 FlexGridSizer3->Add(tStairs, 1, wxLEFT|wxEXPAND, 5);
157 StaticBoxSizer2->Add(FlexGridSizer3, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
158 FlexGridSizer4->Add(StaticBoxSizer2, 1, wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL, 5);
159 StaticBoxSizer1 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("General Information"));
160 FlexGridSizer2 = new wxFlexGridSizer(0, 2, 0, 0);
161 StaticText1 = new wxStaticText(this, ID_STATICTEXT1, _("Meshes:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
162 FlexGridSizer2->Add(StaticText1, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
163 tMeshes = new wxTextCtrl(this, ID_tMeshes, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tMeshes"));
164 tMeshes->SetMinSize(wxSize(150,-1));
165 FlexGridSizer2->Add(tMeshes, 1, wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
166 StaticText3 = new wxStaticText(this, ID_STATICTEXT3, _("Textures:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3"));
167 FlexGridSizer2->Add(StaticText3, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
168 tTextures = new wxTextCtrl(this, ID_tTextures, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tTextures"));
169 FlexGridSizer2->Add(tTextures, 1, wxLEFT|wxEXPAND, 5);
170 StaticText4 = new wxStaticText(this, ID_STATICTEXT4, _("Actions:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT4"));
171 FlexGridSizer2->Add(StaticText4, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
172 tActions = new wxTextCtrl(this, ID_tActions, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tActions"));
173 FlexGridSizer2->Add(tActions, 1, wxLEFT|wxEXPAND, 5);
174 StaticText21 = new wxStaticText(this, ID_STATICTEXT21, _("Sounds:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT21"));
175 FlexGridSizer2->Add(StaticText21, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
176 tSounds = new wxTextCtrl(this, ID_tSounds, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tSounds"));
177 FlexGridSizer2->Add(tSounds, 1, wxLEFT|wxEXPAND, 5);
178 StaticText22 = new wxStaticText(this, ID_STATICTEXT22, _("Objects:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT22"));
179 FlexGridSizer2->Add(StaticText22, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
180 tObjects = new wxTextCtrl(this, ID_tObjects, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tObjects"));
181 FlexGridSizer2->Add(tObjects, 1, wxLEFT|wxEXPAND, 5);
182 StaticText24 = new wxStaticText(this, ID_STATICTEXT24, _("Walls:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT24"));
183 FlexGridSizer2->Add(StaticText24, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
184 tWalls = new wxTextCtrl(this, ID_tWalls, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tWalls"));
185 FlexGridSizer2->Add(tWalls, 1, wxLEFT|wxEXPAND, 5);
186 StaticText25 = new wxStaticText(this, ID_STATICTEXT25, _("Polygons:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT25"));
187 FlexGridSizer2->Add(StaticText25, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
188 tPolygons = new wxTextCtrl(this, ID_tPolygons, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tPolygons"));
189 FlexGridSizer2->Add(tPolygons, 1, wxLEFT|wxEXPAND, 5);
190 StaticText10 = new wxStaticText(this, ID_STATICTEXT10, _("InStairwell:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT10"));
191 FlexGridSizer2->Add(StaticText10, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
192 tInStairwell = new wxTextCtrl(this, ID_tInStairwell, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tInStairwell"));
193 FlexGridSizer2->Add(tInStairwell, 1, wxLEFT|wxEXPAND, 5);
194 StaticText11 = new wxStaticText(this, ID_STATICTEXT11, _("InElevator:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT11"));
195 FlexGridSizer2->Add(StaticText11, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
196 tInElevator = new wxTextCtrl(this, ID_tInElevator, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tInElevator"));
197 FlexGridSizer2->Add(tInElevator, 1, wxLEFT|wxEXPAND, 5);
198 StaticText12 = new wxStaticText(this, ID_STATICTEXT12, _("InShaft:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT12"));
199 FlexGridSizer2->Add(StaticText12, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
200 tInShaft = new wxTextCtrl(this, ID_tInShaft, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tInShaft"));
201 FlexGridSizer2->Add(tInShaft, 1, wxLEFT|wxEXPAND, 5);
202 StaticText13 = new wxStaticText(this, ID_STATICTEXT13, _("Running Time:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT13"));
203 FlexGridSizer2->Add(StaticText13, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
204 tRunningTime = new wxTextCtrl(this, ID_tRunningTime, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tRunningTime"));
205 FlexGridSizer2->Add(tRunningTime, 1, wxLEFT|wxEXPAND, 5);
206 StaticText20 = new wxStaticText(this, ID_STATICTEXT20, _("Frontend Ver:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT20"));
207 FlexGridSizer2->Add(StaticText20, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
208 tFrontendVersion = new wxTextCtrl(this, ID_tFrontendVersion, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tFrontendVersion"));
209 FlexGridSizer2->Add(tFrontendVersion, 1, wxLEFT|wxEXPAND, 5);
210 StaticText23 = new wxStaticText(this, ID_STATICTEXT23, _("SBS Version:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT23"));
211 FlexGridSizer2->Add(StaticText23, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
212 tSBSVersion = new wxTextCtrl(this, ID_tSBSVersion, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tSBSVersion"));
213 FlexGridSizer2->Add(tSBSVersion, 1, wxLEFT|wxEXPAND, 5);
214 StaticText26 = new wxStaticText(this, ID_STATICTEXT26, _("Platform:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT26"));
215 FlexGridSizer2->Add(StaticText26, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
216 tPlatform = new wxTextCtrl(this, ID_tPlatform, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tPlatform"));
217 FlexGridSizer2->Add(tPlatform, 1, wxLEFT|wxEXPAND, 5);
218 StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("Renderer:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
219 FlexGridSizer2->Add(StaticText2, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
220 tRenderer = new wxTextCtrl(this, ID_tRenderer, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTRE, wxDefaultValidator, _T("ID_tRenderer"));
221 FlexGridSizer2->Add(tRenderer, 1, wxLEFT|wxEXPAND, 5);
222 StaticBoxSizer1->Add(FlexGridSizer2, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
223 FlexGridSizer4->Add(StaticBoxSizer1, 1, wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL, 5);
224 FlexGridSizer1->Add(FlexGridSizer4, 1, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 5);
225 bOK = new wxButton(this, ID_bOK, _("OK"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bOK"));
226 FlexGridSizer1->Add(bOK, 1, wxBOTTOM|wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
227 SetSizer(FlexGridSizer1);
228 FlexGridSizer1->Fit(this);
229 FlexGridSizer1->SetSizeHints(this);
230 Center();
231
232 Connect(ID_bOK,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&Stats::On_bOK_Click);
233 //*)
234 Simcore = 0;
235 panel = parent;
236 OnInit();
237}
238
240{
241 //(*Destroy(Stats)
242 //*)
243}
244
245
246void Stats::On_bOK_Click(wxCommandEvent& event)
247{
248 this->Hide();
249}
250
252{
254
256 tSBSVersion->SetValue(Simcore->version);
257 tPlatform->SetValue(panel->GetRoot()->Platform);
258 tRenderer->SetValue(panel->GetRoot()->GetHAL()->Renderer);
259
260 tName->SetValue(Simcore->BuildingName);
264 tVersion->SetValue(Simcore->BuildingVersion);
265}
266
268{
269 //if active engine has changed, refresh values
270 if (Simcore != panel->GetSystem())
271 OnInit();
272
273 if (!Simcore)
274 return;
275
276 tMeshes->SetValue(ToString(Simcore->GetMeshCount()));
279 tSounds->SetValue(ToString(Simcore->GetSoundCount()));
285 tWalls->SetValue(ToString(Simcore->GetWallCount()));
287 tFloors->SetValue(ToString(Simcore->Floors));
290 tShafts->SetValue(ToString(Simcore->GetShaftCount()));
292}
293
294}
295
bool InShaft
Definition sbs.h:164
bool InStairwell
Definition sbs.h:162
std::string BuildingName
Definition sbs.h:145
std::string BuildingLocation
Definition sbs.h:148
int GetElevatorCount()
Definition sbs.cpp:1703
TextureManager * GetTextureManager()
Definition sbs.cpp:4558
int GetWallCount()
Definition sbs.cpp:3065
int Basements
Definition sbs.h:159
std::string BuildingDesigner
Definition sbs.h:147
int GetPolygonCount()
Definition sbs.cpp:3071
int GetObjectCount()
Definition sbs.cpp:2446
int GetSoundCount()
Definition sbs.cpp:2308
int GetStairwellCount()
Definition sbs.cpp:1727
std::string BuildingVersion
Definition sbs.h:150
bool InElevator
Definition sbs.h:163
std::string BuildingDescription
Definition sbs.h:149
int GetMeshCount()
Definition sbs.cpp:2259
int GetActionCount()
Definition sbs.cpp:3454
int Floors
Definition sbs.h:158
Real running_time
Definition sbs.h:168
int GetShaftCount()
Definition sbs.cpp:1721
std::string version
Definition sbs.h:141
SBS::SBS * GetSystem()
Definition debugpanel.h:131
std::string Renderer
Definition hal.h:88
static const long ID_STATICTEXT8
Definition stats.h:117
static const long ID_STATICTEXT13
Definition stats.h:141
wxTextCtrl * tFrontendVersion
Definition stats.h:76
static const long ID_STATICTEXT3
Definition stats.h:123
static const long ID_STATICTEXT14
Definition stats.h:109
static const long ID_STATICTEXT6
Definition stats.h:113
SBS::SBS * Simcore
Definition stats.h:161
wxTextCtrl * tInShaft
Definition stats.h:78
wxTextCtrl * tMeshes
Definition stats.h:81
virtual ~Stats()
Definition stats.cpp:239
wxTextCtrl * tBasements
Definition stats.h:71
static const long ID_STATICTEXT4
Definition stats.h:125
static const long ID_STATICTEXT1
Definition stats.h:121
static const long ID_STATICTEXT16
Definition stats.h:105
DebugPanel * panel
Definition stats.h:162
static const long ID_bOK
Definition stats.h:151
static const long ID_STATICTEXT24
Definition stats.h:131
static const long ID_tRunningTime
Definition stats.h:142
wxTextCtrl * tRunningTime
Definition stats.h:87
static const long ID_STATICTEXT5
Definition stats.h:111
static const long ID_STATICTEXT2
Definition stats.h:149
wxTextCtrl * tInElevator
Definition stats.h:77
static const long ID_tName
Definition stats.h:102
static const long ID_STATICTEXT17
Definition stats.h:103
wxTextCtrl * tInStairwell
Definition stats.h:79
wxTextCtrl * tFloors
Definition stats.h:75
static const long ID_tShafts
Definition stats.h:118
static const long ID_STATICTEXT10
Definition stats.h:135
wxTextCtrl * tSBSVersion
Definition stats.h:88
wxTextCtrl * tSounds
Definition stats.h:90
static const long ID_tRenderer
Definition stats.h:150
static const long ID_tPolygons
Definition stats.h:134
wxTextCtrl * tWalls
Definition stats.h:94
wxTextCtrl * tName
Definition stats.h:82
static const long ID_tWalls
Definition stats.h:132
static const long ID_tInElevator
Definition stats.h:138
static const long ID_tInStairwell
Definition stats.h:136
static const long ID_tElevators
Definition stats.h:116
static const long ID_STATICTEXT18
Definition stats.h:101
static const long ID_tActions
Definition stats.h:126
static const long ID_tFloors
Definition stats.h:112
static const long ID_tBasements
Definition stats.h:114
wxTextCtrl * tLocation
Definition stats.h:80
static const long ID_STATICTEXT20
Definition stats.h:143
wxTextCtrl * tShafts
Definition stats.h:89
static const long ID_tSBSVersion
Definition stats.h:146
static const long ID_tDescription
Definition stats.h:108
wxTextCtrl * tObjects
Definition stats.h:83
void On_bOK_Click(wxCommandEvent &event)
Definition stats.cpp:246
wxTextCtrl * tPolygons
Definition stats.h:85
static const long ID_tStairs
Definition stats.h:120
static const long ID_STATICTEXT22
Definition stats.h:129
static const long ID_STATICTEXT7
Definition stats.h:115
static const long ID_tSounds
Definition stats.h:128
wxTextCtrl * tDesigner
Definition stats.h:73
static const long ID_STATICTEXT15
Definition stats.h:107
static const long ID_STATICTEXT21
Definition stats.h:127
wxTextCtrl * tElevators
Definition stats.h:74
static const long ID_STATICTEXT23
Definition stats.h:145
static const long ID_STATICTEXT26
Definition stats.h:147
wxTextCtrl * tDescription
Definition stats.h:72
static const long ID_STATICTEXT9
Definition stats.h:119
static const long ID_STATICTEXT12
Definition stats.h:139
static const long ID_STATICTEXT11
Definition stats.h:137
static const long ID_STATICTEXT25
Definition stats.h:133
static const long ID_tTextures
Definition stats.h:124
wxTextCtrl * tTextures
Definition stats.h:92
static const long ID_tFrontendVersion
Definition stats.h:144
static const long ID_tLocation
Definition stats.h:106
wxTextCtrl * tActions
Definition stats.h:70
static const long ID_tVersion
Definition stats.h:110
wxTextCtrl * tStairs
Definition stats.h:91
static const long ID_tMeshes
Definition stats.h:122
wxTextCtrl * tRenderer
Definition stats.h:86
wxTextCtrl * tVersion
Definition stats.h:93
static const long ID_tDesigner
Definition stats.h:104
static const long ID_tPlatform
Definition stats.h:148
wxTextCtrl * tPlatform
Definition stats.h:84
static const long ID_tInShaft
Definition stats.h:140
static const long ID_tObjects
Definition stats.h:130
HAL * GetHAL()
Definition vm.cpp:128
std::string version_frontend
Definition vm.h:129
std::string Platform
Definition vm.h:132
std::string ToString(int number)
Definition globals.cpp:279
std::string BoolToString(bool item)
Definition globals.cpp:101
wxString TruncateNumber(float value, int decimals)