Skyscraper 2.0
debugpanel.cpp
Go to the documentation of this file.
1/*
2 Skyscraper 2.0 Alpha - Debug Panel
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(DebugPanel)
24#include <wx/intl.h>
25#include <wx/string.h>
26//*)
27#include "globals.h"
28#include "sbs.h"
29#include "camera.h"
30#include "floor.h"
31#include "elevator.h"
32#include "elevatorcar.h"
33#include "texture.h"
34#include "debugpanel.h"
35#include "scriptproc.h"
36#include "vm.h"
37#include "enginecontext.h"
38#include "gui.h"
39#include "console.h"
40#include "meshcontrol.h"
41#include "editelevator.h"
42#include "keydialog.h"
43#include "profilergui.h"
44#include "stats.h"
45#include "actionviewer.h"
46#include "cameracontrol.h"
47#include "skycontrol.h"
48#include "objectinfo.h"
49#include "enginemanager.h"
50#include "peoplemanager.h"
51#include "camtex.h"
52#include "soundmanager.h"
53#include "texturemanager.h"
54#include "escalatorcontrol.h"
55#include "walkwaycontrol.h"
56
57namespace Skyscraper {
58
59//(*IdInit(DebugPanel)
60const long DebugPanel::ID_STATICTEXT1 = wxNewId();
61const long DebugPanel::ID_STATICTEXT12 = wxNewId();
62const long DebugPanel::ID_STATICTEXT2 = wxNewId();
63const long DebugPanel::ID_STATICTEXT8 = wxNewId();
64const long DebugPanel::ID_STATICTEXT13 = wxNewId();
65const long DebugPanel::ID_STATICTEXT3 = wxNewId();
66const long DebugPanel::ID_STATICTEXT4 = wxNewId();
67const long DebugPanel::ID_STATICTEXT5 = wxNewId();
68const long DebugPanel::ID_STATICTEXT10 = wxNewId();
69const long DebugPanel::ID_STATICTEXT9 = wxNewId();
70const long DebugPanel::ID_STATICTEXT6 = wxNewId();
71const long DebugPanel::ID_t_camerafloor = wxNewId();
72const long DebugPanel::ID_t_floorname = wxNewId();
73const long DebugPanel::ID_t_camerap = wxNewId();
74const long DebugPanel::ID_t_rotation = wxNewId();
75const long DebugPanel::ID_t_global = wxNewId();
76const long DebugPanel::ID_t_elevnumber = wxNewId();
77const long DebugPanel::ID_t_elevfloor = wxNewId();
78const long DebugPanel::ID_t_object = wxNewId();
79const long DebugPanel::ID_t_clickposition = wxNewId();
80const long DebugPanel::ID_t_collision = wxNewId();
81const long DebugPanel::ID_STATICTEXT7 = wxNewId();
82const long DebugPanel::ID_STATICTEXT11 = wxNewId();
83const long DebugPanel::ID_chkCollisionDetection = wxNewId();
84const long DebugPanel::ID_chkGravity = wxNewId();
85const long DebugPanel::ID_chkProcessElevators = wxNewId();
86const long DebugPanel::ID_chkAutoShafts = wxNewId();
87const long DebugPanel::ID_chkAutoStairs = wxNewId();
88const long DebugPanel::ID_chkRandom = wxNewId();
89const long DebugPanel::ID_chkMalfunctions = wxNewId();
90const long DebugPanel::ID_chkPower = wxNewId();
91const long DebugPanel::ID_CHECKBOX1 = wxNewId();
92const long DebugPanel::ID_bFloorList = wxNewId();
93const long DebugPanel::ID_bMeshControl = wxNewId();
94const long DebugPanel::ID_bCameraControl = wxNewId();
95const long DebugPanel::ID_bEditElevator = wxNewId();
96const long DebugPanel::ID_bControlReference = wxNewId();
97const long DebugPanel::ID_bStats = wxNewId();
98const long DebugPanel::ID_bEngineManager = wxNewId();
99const long DebugPanel::ID_bConsole = wxNewId();
100const long DebugPanel::ID_bCameraTexture = wxNewId();
101const long DebugPanel::ID_bEscalator = wxNewId();
102const long DebugPanel::ID_bObjectInfo = wxNewId();
103const long DebugPanel::ID_bActionViewer = wxNewId();
104const long DebugPanel::ID_bPeopleManager = wxNewId();
105const long DebugPanel::ID_bSkyControl = wxNewId();
106const long DebugPanel::ID_bProfiler = wxNewId();
107const long DebugPanel::ID_bKeys = wxNewId();
108const long DebugPanel::ID_bTextures = wxNewId();
109const long DebugPanel::ID_bFloorInfo = wxNewId();
110const long DebugPanel::ID_bSoundManager = wxNewId();
111const long DebugPanel::ID_bMovingWalkway = wxNewId();
112const long DebugPanel::ID_PANEL1 = wxNewId();
113//*)
114
115BEGIN_EVENT_TABLE(DebugPanel,wxFrame)
116 //(*EventTable(DebugPanel)
117 //*)
118END_EVENT_TABLE()
119
120DebugPanel::DebugPanel(VM *root, wxWindow* parent,wxWindowID id)
121{
122 //(*Initialize(DebugPanel)
123 wxBoxSizer* BoxSizer10;
124 wxBoxSizer* BoxSizer11;
125 wxBoxSizer* BoxSizer8;
126 wxBoxSizer* BoxSizer9;
127
128 Create(parent, wxID_ANY, _("Simulator Control Panel"), wxDefaultPosition, wxDefaultSize, wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|wxMINIMIZE_BOX, _T("wxID_ANY"));
129 Move(wxPoint(10,10));
130 BoxSizer1 = new wxBoxSizer(wxVERTICAL);
131 Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));
132 BoxSizer11 = new wxBoxSizer(wxVERTICAL);
133 BoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
134 BoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
135 BoxSizer6 = new wxBoxSizer(wxVERTICAL);
136 StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _("Camera Floor:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
137 BoxSizer6->Add(StaticText1, 0, wxBOTTOM|wxALIGN_RIGHT, 5);
138 StaticText10 = new wxStaticText(Panel1, ID_STATICTEXT12, _("Floor Name:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT12"));
139 BoxSizer6->Add(StaticText10, 1, wxBOTTOM|wxALIGN_RIGHT, 5);
140 StaticText2 = new wxStaticText(Panel1, ID_STATICTEXT2, _("Camera Position:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
141 BoxSizer6->Add(StaticText2, 0, wxBOTTOM|wxALIGN_RIGHT, 5);
142 StaticText7 = new wxStaticText(Panel1, ID_STATICTEXT8, _("Camera Rotation:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT8"));
143 BoxSizer6->Add(StaticText7, 1, wxBOTTOM|wxALIGN_RIGHT, 5);
144 StaticText12 = new wxStaticText(Panel1, ID_STATICTEXT13, _("Global Position:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT13"));
145 BoxSizer6->Add(StaticText12, 1, wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
146 StaticText3 = new wxStaticText(Panel1, ID_STATICTEXT3, _("Elevator Number:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3"));
147 BoxSizer6->Add(StaticText3, 0, wxBOTTOM|wxALIGN_RIGHT, 5);
148 StaticText4 = new wxStaticText(Panel1, ID_STATICTEXT4, _("Elevator Floor:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT4"));
149 BoxSizer6->Add(StaticText4, 0, wxBOTTOM|wxALIGN_RIGHT, 5);
150 StaticText5 = new wxStaticText(Panel1, ID_STATICTEXT5, _("Selected Object:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5"));
151 BoxSizer6->Add(StaticText5, 0, wxBOTTOM|wxALIGN_RIGHT, 5);
152 StaticText9 = new wxStaticText(Panel1, ID_STATICTEXT10, _("Clicked Position:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT10"));
153 BoxSizer6->Add(StaticText9, 1, wxBOTTOM|wxALIGN_RIGHT, 5);
154 StaticText8 = new wxStaticText(Panel1, ID_STATICTEXT9, _("Last Collision:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT9"));
155 BoxSizer6->Add(StaticText8, 1, wxBOTTOM|wxALIGN_RIGHT, 5);
156 StaticText6 = new wxStaticText(Panel1, ID_STATICTEXT6, _("Framerate:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT6"));
157 BoxSizer6->Add(StaticText6, 1, wxBOTTOM|wxALIGN_RIGHT, 5);
158 BoxSizer4->Add(BoxSizer6, 0, wxRIGHT|wxALIGN_TOP, 5);
159 BoxSizer7 = new wxBoxSizer(wxVERTICAL);
160 t_camerafloor = new wxStaticText(Panel1, ID_t_camerafloor, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_camerafloor"));
161 BoxSizer7->Add(t_camerafloor, 0, wxBOTTOM|wxALIGN_LEFT, 5);
162 t_floorname = new wxStaticText(Panel1, ID_t_floorname, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_floorname"));
163 BoxSizer7->Add(t_floorname, 1, wxBOTTOM|wxALIGN_LEFT, 5);
164 t_camerap = new wxStaticText(Panel1, ID_t_camerap, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_camerap"));
165 BoxSizer7->Add(t_camerap, 0, wxBOTTOM|wxALIGN_LEFT, 5);
166 t_rotation = new wxStaticText(Panel1, ID_t_rotation, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_rotation"));
167 BoxSizer7->Add(t_rotation, 1, wxBOTTOM|wxALIGN_LEFT, 5);
168 t_global = new wxStaticText(Panel1, ID_t_global, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_global"));
169 BoxSizer7->Add(t_global, 1, wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
170 t_elevnumber = new wxStaticText(Panel1, ID_t_elevnumber, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_elevnumber"));
171 BoxSizer7->Add(t_elevnumber, 0, wxBOTTOM|wxALIGN_LEFT, 5);
172 t_elevfloor = new wxStaticText(Panel1, ID_t_elevfloor, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_elevfloor"));
173 BoxSizer7->Add(t_elevfloor, 0, wxBOTTOM|wxALIGN_LEFT, 5);
174 t_object = new wxStaticText(Panel1, ID_t_object, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_object"));
175 BoxSizer7->Add(t_object, 0, wxBOTTOM|wxALIGN_LEFT, 5);
176 t_clickposition = new wxStaticText(Panel1, ID_t_clickposition, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_clickposition"));
177 BoxSizer7->Add(t_clickposition, 1, wxBOTTOM|wxALIGN_LEFT, 5);
178 t_collision = new wxStaticText(Panel1, ID_t_collision, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_t_collision"));
179 BoxSizer7->Add(t_collision, 1, wxBOTTOM|wxALIGN_LEFT, 5);
180 t_framerate = new wxStaticText(Panel1, ID_STATICTEXT7, wxEmptyString, wxDefaultPosition, wxSize(150,-1), wxST_NO_AUTORESIZE, _T("ID_STATICTEXT7"));
181 BoxSizer7->Add(t_framerate, 1, wxBOTTOM|wxALIGN_LEFT, 5);
182 BoxSizer4->Add(BoxSizer7, 0, wxALIGN_TOP, 5);
183 BoxSizer2->Add(BoxSizer4, 0, wxRIGHT|wxALIGN_TOP, 10);
184 BoxSizer5 = new wxBoxSizer(wxVERTICAL);
185 StaticText11 = new wxStaticText(Panel1, ID_STATICTEXT11, _("Simulator Options"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT11"));
186 BoxSizer5->Add(StaticText11, 0, wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
187 chkCollisionDetection = new wxCheckBox(Panel1, ID_chkCollisionDetection, _("Collision Detection"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_chkCollisionDetection"));
188 chkCollisionDetection->SetValue(false);
189 BoxSizer5->Add(chkCollisionDetection, 0, wxBOTTOM|wxALIGN_LEFT, 5);
190 chkGravity = new wxCheckBox(Panel1, ID_chkGravity, _("Gravity"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_chkGravity"));
191 chkGravity->SetValue(false);
192 BoxSizer5->Add(chkGravity, 1, wxBOTTOM|wxALIGN_LEFT, 5);
193 chkProcessElevators = new wxCheckBox(Panel1, ID_chkProcessElevators, _("Process Elevators"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_chkProcessElevators"));
194 chkProcessElevators->SetValue(false);
195 BoxSizer5->Add(chkProcessElevators, 0, wxBOTTOM|wxALIGN_LEFT, 5);
196 chkAutoShafts = new wxCheckBox(Panel1, ID_chkAutoShafts, _("Automatic Shafts"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_chkAutoShafts"));
197 chkAutoShafts->SetValue(false);
198 BoxSizer5->Add(chkAutoShafts, 0, wxBOTTOM|wxALIGN_LEFT, 5);
199 chkAutoStairs = new wxCheckBox(Panel1, ID_chkAutoStairs, _("Automatic Stairs"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_chkAutoStairs"));
200 chkAutoStairs->SetValue(false);
201 BoxSizer5->Add(chkAutoStairs, 1, wxBOTTOM|wxALIGN_LEFT, 5);
202 chkRandom = new wxCheckBox(Panel1, ID_chkRandom, _("Random Activity"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_chkRandom"));
203 chkRandom->SetValue(false);
204 BoxSizer5->Add(chkRandom, 1, wxBOTTOM|wxALIGN_LEFT, 5);
205 chkMalfunctions = new wxCheckBox(Panel1, ID_chkMalfunctions, _("Malfunctions"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_chkMalfunctions"));
206 chkMalfunctions->SetValue(false);
207 BoxSizer5->Add(chkMalfunctions, 1, wxBOTTOM|wxALIGN_LEFT, 5);
208 chkPower = new wxCheckBox(Panel1, ID_chkPower, _("Building Power"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_chkPower"));
209 chkPower->SetValue(false);
210 BoxSizer5->Add(chkPower, 1, wxBOTTOM|wxALIGN_LEFT, 5);
211 chkVerbose = new wxCheckBox(Panel1, ID_CHECKBOX1, _("Verbose Mode"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CHECKBOX1"));
212 chkVerbose->SetValue(false);
213 BoxSizer5->Add(chkVerbose, 1, wxBOTTOM|wxALIGN_LEFT, 5);
214 BoxSizer2->Add(BoxSizer5, 0, wxALL|wxALIGN_TOP, 0);
215 BoxSizer11->Add(BoxSizer2, 0, wxTOP|wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 10);
216 BoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
217 BoxSizer9 = new wxBoxSizer(wxVERTICAL);
218 bFloorList = new wxButton(Panel1, ID_bFloorList, _("Floor List"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bFloorList"));
219 BoxSizer9->Add(bFloorList, 0, wxEXPAND, 5);
220 bMeshControl = new wxButton(Panel1, ID_bMeshControl, _("Realtime Object Control"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bMeshControl"));
221 BoxSizer9->Add(bMeshControl, 0, wxEXPAND, 5);
222 bCameraControl = new wxButton(Panel1, ID_bCameraControl, _("Camera Control"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bCameraControl"));
223 BoxSizer9->Add(bCameraControl, 0, wxEXPAND, 5);
224 bEditElevator = new wxButton(Panel1, ID_bEditElevator, _("Elevator Editor"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bEditElevator"));
225 BoxSizer9->Add(bEditElevator, 0, wxEXPAND, 5);
226 bControlReference = new wxButton(Panel1, ID_bControlReference, _("Control Reference"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bControlReference"));
227 BoxSizer9->Add(bControlReference, 1, wxEXPAND, 5);
228 bStats = new wxButton(Panel1, ID_bStats, _("Simulator Statistics"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bStats"));
229 BoxSizer9->Add(bStats, 1, wxEXPAND, 5);
230 bEngineManager = new wxButton(Panel1, ID_bEngineManager, _("Engine Manager"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bEngineManager"));
231 BoxSizer9->Add(bEngineManager, 1, wxEXPAND, 5);
232 bConsole = new wxButton(Panel1, ID_bConsole, _("Console"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bConsole"));
233 BoxSizer9->Add(bConsole, 1, wxEXPAND, 5);
234 bCameraTexture = new wxButton(Panel1, ID_bCameraTexture, _("CameraTexture Control"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bCameraTexture"));
235 BoxSizer9->Add(bCameraTexture, 1, wxEXPAND, 5);
236 bEscalator = new wxButton(Panel1, ID_bEscalator, _("Escalator Control"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bEscalator"));
237 BoxSizer9->Add(bEscalator, 1, wxEXPAND, 5);
238 BoxSizer8->Add(BoxSizer9, 1, wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
239 BoxSizer10 = new wxBoxSizer(wxVERTICAL);
240 bObjectInfo = new wxButton(Panel1, ID_bObjectInfo, _("Object Manager"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bObjectInfo"));
241 BoxSizer10->Add(bObjectInfo, 1, wxEXPAND, 5);
242 bActionViewer = new wxButton(Panel1, ID_bActionViewer, _("Action Viewer"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bActionViewer"));
243 BoxSizer10->Add(bActionViewer, 1, wxEXPAND, 5);
244 bPeopleManager = new wxButton(Panel1, ID_bPeopleManager, _("People Manager"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bPeopleManager"));
245 BoxSizer10->Add(bPeopleManager, 1, wxEXPAND, 5);
246 bSkyControl = new wxButton(Panel1, ID_bSkyControl, _("Sky Control"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bSkyControl"));
247 BoxSizer10->Add(bSkyControl, 1, wxEXPAND, 5);
248 bProfiler = new wxButton(Panel1, ID_bProfiler, _("Profiler"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bProfiler"));
249 BoxSizer10->Add(bProfiler, 1, wxEXPAND, 5);
250 bKeys = new wxButton(Panel1, ID_bKeys, _("List Keys"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bKeys"));
251 BoxSizer10->Add(bKeys, 1, wxEXPAND, 5);
252 bTextures = new wxButton(Panel1, ID_bTextures, _("Texture Manager"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bTextures"));
253 BoxSizer10->Add(bTextures, 1, wxEXPAND, 5);
254 bFloorInfo = new wxButton(Panel1, ID_bFloorInfo, _("Floor Information"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bFloorInfo"));
255 BoxSizer10->Add(bFloorInfo, 1, wxEXPAND, 5);
256 bSoundManager = new wxButton(Panel1, ID_bSoundManager, _("Sound Manager"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bSoundManager"));
257 BoxSizer10->Add(bSoundManager, 1, wxEXPAND, 5);
258 bMovingWalkway = new wxButton(Panel1, ID_bMovingWalkway, _("Moving Walkway Control"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bMovingWalkway"));
259 BoxSizer10->Add(bMovingWalkway, 1, wxEXPAND, 5);
260 BoxSizer8->Add(BoxSizer10, 1, wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
261 BoxSizer11->Add(BoxSizer8, 1, wxTOP|wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 10);
262 Panel1->SetSizer(BoxSizer11);
263 BoxSizer1->Add(Panel1, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
264 SetSizer(BoxSizer1);
265 BoxSizer1->SetSizeHints(this);
266
267 Connect(ID_chkCollisionDetection,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&DebugPanel::On_chkCollisionDetection_Click);
268 Connect(ID_chkGravity,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&DebugPanel::On_chkGravity_Click);
269 Connect(ID_chkProcessElevators,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&DebugPanel::On_chkProcessElevators_Click);
270 Connect(ID_chkAutoShafts,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&DebugPanel::On_chkAutoShafts_Click);
271 Connect(ID_chkAutoStairs,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&DebugPanel::On_chkAutoStairs_Click);
272 Connect(ID_chkRandom,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&DebugPanel::On_chkRandom_Click);
273 Connect(ID_chkMalfunctions,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&DebugPanel::On_chkMalfunctions_Click);
274 Connect(ID_chkPower,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&DebugPanel::On_chkPower_Click);
275 Connect(ID_CHECKBOX1,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&DebugPanel::On_chkVerbose_Click);
276 Connect(ID_bFloorList,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bFloorList_Click);
277 Connect(ID_bMeshControl,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bMeshControl_Click);
278 Connect(ID_bCameraControl,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bCameraControl_Click);
279 Connect(ID_bEditElevator,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bEditElevator_Click);
280 Connect(ID_bControlReference,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bControlReference_Click);
281 Connect(ID_bStats,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bStats_Click);
282 Connect(ID_bEngineManager,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bEngineManager_Click);
283 Connect(ID_bConsole,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bConsole_Click);
284 Connect(ID_bCameraTexture,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bCameraTexture_Click);
285 Connect(ID_bEscalator,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bEscalator_Click);
286 Connect(ID_bObjectInfo,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bObjectInfo_Click);
287 Connect(ID_bActionViewer,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bActionViewer_Click);
288 Connect(ID_bPeopleManager,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bPeopleManager_Click);
289 Connect(ID_bSkyControl,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bSkyControl_Click);
290 Connect(ID_bProfiler,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bProfiler_Click);
291 Connect(ID_bKeys,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bKeys_Click);
292 Connect(ID_bTextures,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bTextures_Click);
293 Connect(ID_bFloorInfo,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bFloorInfo_Click);
294 Connect(ID_bSoundManager,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bSoundManager_Click);
295 Connect(ID_bMovingWalkway,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DebugPanel::On_bMovingWalkway_Click);
296 //*)
297 Simcore = 0;
298 vm = root;
299 mc = 0;
300 ee = 0;
301 cc = 0;
302 kd = 0;
303 stats = 0;
304 objectinfo = 0;
305 profiler = 0;
306 actionviewer = 0;
307 skycontrol = 0;
308 emanager = 0;
309 pmanager = 0;
310 camtex = 0;
311 timer = 0;
312 smanager = 0;
313 tmanager = 0;
314 esc = 0;
315 walk = 0;
316
317 OnInit();
318}
319
321{
323
324 //delete timer;
325 if (timer)
326 {
327 EnableTimer(false);
328 delete timer;
329 }
330 timer = 0;
331 if (mc)
332 mc->Destroy();
333 mc = 0;
334 if (ee)
335 ee->Destroy();
336 ee = 0;
337 if (cc)
338 cc->Destroy();
339 cc = 0;
340 if (kd)
341 kd->Destroy();
342 kd = 0;
343 if (stats)
344 stats->Destroy();
345 stats = 0;
346 if (objectinfo)
347 objectinfo->Destroy();
348 objectinfo = 0;
349 if (profiler)
350 profiler->Destroy();
351 profiler = 0;
352 if (actionviewer)
353 actionviewer->Destroy();
354 actionviewer = 0;
355 if (skycontrol)
356 skycontrol->Destroy();
357 skycontrol = 0;
358 if (emanager)
359 emanager->Destroy();
360 emanager = 0;
361 if (pmanager)
362 pmanager->Destroy();
363 pmanager = 0;
364 if (camtex)
365 camtex->Destroy();
366 camtex = 0;
367 if (smanager)
368 smanager->Destroy();
369 smanager = 0;
370 if (tmanager)
371 tmanager->Destroy();
372 tmanager = 0;
373 if (esc)
374 esc->Destroy();
375 esc = 0;
376 if (walk)
377 walk->Destroy();
378 walk = 0;
379}
380
382{
383 if (Simcore)
385}
386
388{
389 if (Simcore)
391}
392
393void DebugPanel::On_chkAutoShafts_Click(wxCommandEvent& event)
394{
395 if (Simcore)
396 Simcore->AutoShafts = chkAutoShafts->GetValue();
397}
398
399void DebugPanel::On_bFloorList_Click(wxCommandEvent& event)
400{
401 if (Simcore)
403}
404
405void DebugPanel::On_bMeshControl_Click(wxCommandEvent& event)
406{
407 if (!mc)
408 mc = new MeshControl(this, -1);
409
410 mc->CenterOnScreen();
411 mc->Show();
412 mc->Raise();
413}
414
415void DebugPanel::On_bEditElevator_Click(wxCommandEvent& event)
416{
417 if (!ee)
418 ee = new editelevator(this, -1);
419
420 ee->CenterOnScreen();
421 ee->Show();
422 ee->Raise();
423}
424
426{
428
429 if (!Simcore)
430 return;
431
432 //set check boxes
436 chkAutoShafts->SetValue(Simcore->AutoShafts);
437 chkAutoStairs->SetValue(Simcore->AutoStairs);
438 chkVerbose->SetValue(Simcore->Verbose);
439 chkRandom->SetValue(Simcore->RandomActivity);
441 chkPower->SetValue(Simcore->GetPower());
442
443 if (!timer)
444 timer = new Timer(this, Simcore);
445 else
446 {
447 EnableTimer(false);
448 timer->dp = this;
450 }
451
452 EnableTimer(true);
453}
454
456{
457 //disable debug panel and exit if paused
458 if (vm->Pause == true)
459 {
460 Enable(false);
461 return;
462 }
463 else
464 {
465 if (IsEnabled() == false)
466 Enable(true);
467 }
468
469 if (vm->GetActiveEngine())
470 {
471 if (Simcore != vm->GetActiveSystem())
472 OnInit(); //reinitialize if active engine has changed
473 }
474 else
475 return;
476
478 if (floor)
479 t_floorname->SetLabel(floor->Name);
480
482
483 t_camerap->SetLabel(TruncateNumber(Simcore->camera->GetPosition().x, 2) + wxT(", ") + TruncateNumber(Simcore->camera->GetPosition().y, 2) + wxT(", ") + TruncateNumber(Simcore->camera->GetPosition().z, 2));
484 t_rotation->SetLabel(TruncateNumber(Simcore->camera->GetRotation().x, 2) + wxT(", ") + TruncateNumber(Simcore->camera->GetRotation().y, 2) + wxT(", ") + TruncateNumber(Simcore->camera->GetRotation().z, 2));
485 t_global->SetLabel(TruncateNumber(globalpos.x, 2) + wxT(", ") + TruncateNumber(globalpos.y, 2) + wxT(", ") + TruncateNumber(globalpos.z, 2));
486 t_camerafloor->SetLabel(SBS::ToString(Simcore->camera->CurrentFloor) + wxT(" (") + Simcore->camera->CurrentFloorID + wxT(")"));
488 t_framerate->SetLabel(TruncateNumber(Simcore->FPS, 2));
491
492 if (Simcore->GetElevatorCount() > 0)
493 {
494 bEditElevator->Enable(true);
498 }
499 else
500 bEditElevator->Enable(false);
501
502 if (ee)
503 {
504 if (ee->IsShown() == true)
505 ee->Loop();
506 }
507
508 if (mc)
509 {
510 if (mc->IsShown() == true)
511 mc->Loop();
512 }
513
514 if (cc)
515 {
516 if (cc->IsShown() == true)
517 cc->Loop();
518 }
519
520 if (stats)
521 {
522 if (stats->IsShown() == true)
523 stats->Loop();
524 }
525
526 if (objectinfo)
527 {
528 if (objectinfo->IsShown() == true)
529 objectinfo->Loop();
530 }
531
532 if (profiler && Simcore)
533 {
534 if (profiler->IsShown() == true)
535 {
537 profiler->Loop();
538 }
539 else
540 SBS::enable_profiling = false;
541 }
542
543 if (actionviewer)
544 {
545 if (actionviewer->IsShown() == true)
547 }
548
549 if (skycontrol)
550 {
551 if (skycontrol->IsShown() == true)
552 skycontrol->Loop();
553 }
554
555 if (emanager)
556 {
557 if (emanager->IsShown() == true)
558 emanager->Loop();
559 }
560
561 if (pmanager)
562 {
563 if (pmanager->IsShown() == true)
564 pmanager->Loop();
565 }
566
567 if (camtex)
568 {
569 if (camtex->IsShown() == true)
570 camtex->Loop();
571 }
572
573 if (smanager)
574 {
575 if (smanager->IsShown() == true)
576 smanager->Loop();
577 }
578
579 if (tmanager)
580 {
581 if (tmanager->IsShown() == true)
582 tmanager->Loop();
583 }
584
585 if (esc)
586 {
587 if (esc->IsShown() == true)
588 esc->Loop();
589 }
590
591 if (walk)
592 {
593 if (walk->IsShown() == true)
594 walk->Loop();
595 }
596}
597
599{
600 if (dp)
601 dp->Loop();
602}
603
604void DebugPanel::On_chkGravity_Click(wxCommandEvent& event)
605{
606 //enables or disables gravity
607 if (Simcore)
608 Simcore->camera->EnableGravity(chkGravity->GetValue());
609}
610
611void DebugPanel::On_chkAutoStairs_Click(wxCommandEvent& event)
612{
613 if (Simcore)
614 Simcore->AutoStairs = chkAutoStairs->GetValue();
615}
616
617void DebugPanel::On_bCameraControl_Click(wxCommandEvent& event)
618{
619 if (!cc)
620 cc = new CameraControl(this, -1);
621
622 cc->CenterOnScreen();
623 cc->Show();
624 cc->Raise();
625}
626
627void DebugPanel::On_bControlReference_Click(wxCommandEvent& event)
628{
629 if (!kd)
630 kd = new KeyDialog(this, -1);
631
632 kd->CenterOnScreen();
633 kd->Show();
634 kd->Raise();
635}
636
637void DebugPanel::On_bStats_Click(wxCommandEvent& event)
638{
639 if (!stats)
640 stats = new Stats(this, -1);
641
642 stats->CenterOnScreen();
643 stats->Show();
644 stats->Raise();
645}
646
647void DebugPanel::On_bConsole_Click(wxCommandEvent& event)
648{
649 vm->GetGUI()->ShowConsole();
650}
651
652void DebugPanel::On_chkVerbose_Click(wxCommandEvent& event)
653{
654 if (Simcore)
655 Simcore->Verbose = chkVerbose->GetValue();
656}
657
658void DebugPanel::On_bObjectInfo_Click(wxCommandEvent& event)
659{
660 if (!objectinfo)
661 objectinfo = new ObjectInfo(this, -1);
662
663 objectinfo->CenterOnScreen();
664 objectinfo->Show();
665 objectinfo->Raise();
666}
667
668void DebugPanel::On_chkRandom_Click(wxCommandEvent& event)
669{
670 if (Simcore)
672}
673
674void DebugPanel::On_bProfiler_Click(wxCommandEvent& event)
675{
676 if (!profiler)
677 profiler = new Profiler(this, -1);
678
679 profiler->CenterOnScreen();
680 profiler->Show();
681 profiler->Raise();
682}
683
684void DebugPanel::On_bActionViewer_Click(wxCommandEvent& event)
685{
686 if (!actionviewer)
687 actionviewer = new ActionViewer(this, -1);
688
689 actionviewer->CenterOnScreen();
690 actionviewer->Show();
691 actionviewer->Raise();
692}
693
694void DebugPanel::On_bKeys_Click(wxCommandEvent& event)
695{
696 if (Simcore)
697 Simcore->ListKeys();
698}
699
700void DebugPanel::On_bTextures_Click(wxCommandEvent& event)
701{
702 if (!tmanager)
703 tmanager = new TextureManager(this, -1);
704
705 tmanager->CenterOnScreen();
706 tmanager->Show();
707 tmanager->Raise();
708}
709
710void DebugPanel::On_bFloorInfo_Click(wxCommandEvent& event)
711{
712 if (!Simcore)
713 return;
714
716
717 if (floor)
718 floor->ShowInfo();
719}
720
721void DebugPanel::On_bSkyControl_Click(wxCommandEvent& event)
722{
723 if (!skycontrol)
724 skycontrol = new SkyControl(this, -1);
725
726 skycontrol->CenterOnScreen();
727 skycontrol->Show();
728 skycontrol->Raise();
729}
730
731void DebugPanel::On_bEngineManager_Click(wxCommandEvent& event)
732{
733 if (!emanager)
734 emanager = new EngineManager(this, -1);
735
736 emanager->CenterOnScreen();
737 emanager->Show();
738 emanager->Raise();
739}
740
741void DebugPanel::On_bPeopleManager_Click(wxCommandEvent& event)
742{
743 if (!pmanager)
744 pmanager = new PeopleManager(this, -1);
745
746 pmanager->CenterOnScreen();
747 pmanager->Show();
748 pmanager->Raise();
749}
750
752{
753 if (!timer)
754 return;
755
756 if (value == true)
757 timer->Start(40);
758 else
759 timer->Stop();
760}
761
763{
764 wxCommandEvent event;
766}
767
768wxString TruncateNumber(float value, int decimals)
769{
770 std::string number = SBS::TruncateNumber(value, decimals);
771 wxString number2 = number;
772
773 return number2;
774}
775
776wxString TruncateNumber(double value, int decimals)
777{
778 std::string number = SBS::TruncateNumber(value, decimals);
779 wxString number2 = number;
780
781 return number2;
782}
783
784bool IsNumeric(const wxString &string)
785{
786 std::string s;
787 s = string;
788 return SBS::IsNumeric(s);
789}
790
791bool IsNumeric(const wxString &string, int &number)
792{
793 std::string s;
794 s = string;
795 return SBS::IsNumeric(s, number);
796}
797
798bool IsNumeric(const wxString &string, float &number)
799{
800 std::string s;
801 s = string;
802 return SBS::IsNumeric(s, number);
803}
804
805bool IsNumeric(const wxString &string, double &number)
806{
807 std::string s;
808 s = string;
809 return SBS::IsNumeric(s, number);
810}
811
812void DebugPanel::On_bCameraTexture_Click(wxCommandEvent& event)
813{
814 if (!camtex)
815 camtex = new CameraTextureControl(this, -1);
816
817 camtex->CenterOnScreen();
818 camtex->Show();
819 camtex->Raise();
820}
821
822void DebugPanel::On_bSoundManager_Click(wxCommandEvent& event)
823{
824 if (!smanager)
825 smanager = new SoundManager(this, -1);
826
827 smanager->CenterOnScreen();
828 smanager->Show();
829 smanager->Raise();
830}
831
832void DebugPanel::On_chkMalfunctions_Click(wxCommandEvent& event)
833{
834 if (Simcore)
836}
837
838void DebugPanel::On_bEscalator_Click(wxCommandEvent& event)
839{
840 if (!esc)
841 esc = new EscalatorControl(this, -1);
842
843 esc->CenterOnScreen();
844 esc->Show();
845 esc->Raise();
846}
847
848void DebugPanel::On_chkPower_Click(wxCommandEvent& event)
849{
850 if (Simcore)
851 Simcore->SetPower(chkPower->GetValue());
852}
853
854void DebugPanel::On_bMovingWalkway_Click(wxCommandEvent& event)
855{
856 if (!walk)
857 walk = new WalkwayControl(this, -1);
858
859 walk->CenterOnScreen();
860 walk->Show();
861 walk->Raise();
862}
863
864}
std::string CurrentFloorID
Definition camera.h:50
bool GetGravityStatus()
Definition camera.cpp:985
Vector3 HitPosition
Definition camera.h:89
std::string LastHitMesh
Definition camera.h:85
bool CollisionsEnabled()
Definition camera.cpp:1065
int CurrentFloor
Definition camera.h:49
Vector3 GetRotation()
Definition camera.cpp:285
Vector3 GetPosition(bool relative=false)
Definition camera.cpp:250
std::string GetClickedMeshName()
Definition camera.cpp:735
void EnableGravity(bool value)
Definition camera.cpp:967
void EnableCollisions(bool value)
Definition camera.cpp:1052
ElevatorCar * GetCar(int number)
void ShowInfo(bool detailed=true, bool display_header=true)
Definition floor.cpp:1656
std::string Name
Definition floor.h:37
Elevator * GetElevator(int number)
Definition sbs.cpp:1746
bool GetPower()
Definition sbs.cpp:4701
bool RandomActivity
Definition sbs.h:195
bool ProcessElevators
Definition sbs.h:177
Vector3 ToGlobal(const Vector3 &position)
Definition sbs.cpp:4409
bool AutoStairs
Definition sbs.h:176
bool AutoShafts
Definition sbs.h:175
bool Malfunctions
Definition sbs.h:196
void ListKeys()
Definition sbs.cpp:3922
int GetElevatorCount()
Definition sbs.cpp:1703
void EnableMalfunctions(bool value)
Definition sbs.cpp:4118
Floor * GetFloor(int number)
Definition sbs.cpp:1739
Camera * camera
Definition sbs.h:160
int ElevatorNumber
Definition sbs.h:165
void EnableRandomActivity(bool value)
Definition sbs.cpp:4079
void SetPower(bool value)
Definition sbs.cpp:4694
Real FPS
Definition sbs.h:174
void ShowFloorList()
Definition sbs.cpp:3956
bool Verbose
Definition sbs.h:186
void On_bSkyControl_Click(wxCommandEvent &event)
static const long ID_bEditElevator
Definition debugpanel.h:109
void On_chkProcessElevators_Click(wxCommandEvent &event)
static const long ID_chkAutoStairs
Definition debugpanel.h:101
CameraTextureControl * camtex
Definition debugpanel.h:258
static const long ID_STATICTEXT3
Definition debugpanel.h:79
wxCheckBox * chkProcessElevators
Definition debugpanel.h:216
wxStaticText * t_rotation
Definition debugpanel.h:242
static const long ID_bObjectInfo
Definition debugpanel.h:116
void On_bCameraTexture_Click(wxCommandEvent &event)
wxStaticText * t_clickposition
Definition debugpanel.h:234
void On_chkAutoStairs_Click(wxCommandEvent &event)
static const long ID_t_global
Definition debugpanel.h:89
void On_bPeopleManager_Click(wxCommandEvent &event)
static const long ID_STATICTEXT2
Definition debugpanel.h:76
void On_bFloorInfo_Click(wxCommandEvent &event)
static const long ID_STATICTEXT7
Definition debugpanel.h:95
static const long ID_STATICTEXT8
Definition debugpanel.h:77
static const long ID_STATICTEXT6
Definition debugpanel.h:84
void On_bEditElevator_Click(wxCommandEvent &event)
void On_bConsole_Click(wxCommandEvent &event)
static const long ID_bTextures
Definition debugpanel.h:122
static const long ID_bActionViewer
Definition debugpanel.h:117
wxStaticText * t_camerap
Definition debugpanel.h:233
wxStaticText * t_framerate
Definition debugpanel.h:239
void On_bMeshControl_Click(wxCommandEvent &event)
static const long ID_bEngineManager
Definition debugpanel.h:112
void On_bTextures_Click(wxCommandEvent &event)
static const long ID_t_collision
Definition debugpanel.h:94
static const long ID_STATICTEXT10
Definition debugpanel.h:82
wxStaticText * t_floorname
Definition debugpanel.h:238
static const long ID_t_camerap
Definition debugpanel.h:87
void On_chkCollisionDetection_Click(wxCommandEvent &event)
static const long ID_chkRandom
Definition debugpanel.h:102
PeopleManager * pmanager
Definition debugpanel.h:257
void On_bProfiler_Click(wxCommandEvent &event)
static const long ID_chkGravity
Definition debugpanel.h:98
void On_chkGravity_Click(wxCommandEvent &event)
ObjectInfo * objectinfo
Definition debugpanel.h:252
void On_bFloorList_Click(wxCommandEvent &event)
void On_bCameraControl_Click(wxCommandEvent &event)
void On_chkMalfunctions_Click(wxCommandEvent &event)
void EnableTimer(bool value)
static const long ID_bCameraControl
Definition debugpanel.h:108
wxCheckBox * chkCollisionDetection
Definition debugpanel.h:212
static const long ID_STATICTEXT13
Definition debugpanel.h:78
static const long ID_bConsole
Definition debugpanel.h:113
wxCheckBox * chkPower
Definition debugpanel.h:215
EngineManager * emanager
Definition debugpanel.h:256
wxStaticText * t_global
Definition debugpanel.h:240
void On_bEscalator_Click(wxCommandEvent &event)
void On_bActionViewer_Click(wxCommandEvent &event)
void On_bMovingWalkway_Click(wxCommandEvent &event)
static const long ID_bSkyControl
Definition debugpanel.h:119
static const long ID_PANEL1
Definition debugpanel.h:126
void On_bStats_Click(wxCommandEvent &event)
void On_bEngineManager_Click(wxCommandEvent &event)
static const long ID_chkMalfunctions
Definition debugpanel.h:103
void On_bObjectInfo_Click(wxCommandEvent &event)
static const long ID_bMovingWalkway
Definition debugpanel.h:125
EscalatorControl * esc
Definition debugpanel.h:261
static const long ID_STATICTEXT1
Definition debugpanel.h:74
static const long ID_bControlReference
Definition debugpanel.h:110
static const long ID_t_floorname
Definition debugpanel.h:86
static const long ID_bSoundManager
Definition debugpanel.h:124
static const long ID_CHECKBOX1
Definition debugpanel.h:105
SoundManager * smanager
Definition debugpanel.h:259
void On_chkRandom_Click(wxCommandEvent &event)
TextureManager * tmanager
Definition debugpanel.h:260
void On_bSoundManager_Click(wxCommandEvent &event)
WalkwayControl * walk
Definition debugpanel.h:262
static const long ID_bFloorList
Definition debugpanel.h:106
static const long ID_t_object
Definition debugpanel.h:92
static const long ID_STATICTEXT11
Definition debugpanel.h:96
void On_chkPower_Click(wxCommandEvent &event)
CameraControl * cc
Definition debugpanel.h:249
static const long ID_chkAutoShafts
Definition debugpanel.h:100
static const long ID_chkPower
Definition debugpanel.h:104
wxStaticText * t_object
Definition debugpanel.h:241
static const long ID_t_camerafloor
Definition debugpanel.h:85
static const long ID_bProfiler
Definition debugpanel.h:120
static const long ID_STATICTEXT5
Definition debugpanel.h:81
wxStaticText * t_collision
Definition debugpanel.h:235
static const long ID_STATICTEXT9
Definition debugpanel.h:83
wxCheckBox * chkAutoStairs
Definition debugpanel.h:211
wxCheckBox * chkVerbose
Definition debugpanel.h:218
wxStaticText * t_elevfloor
Definition debugpanel.h:236
static const long ID_bPeopleManager
Definition debugpanel.h:118
static const long ID_t_rotation
Definition debugpanel.h:88
void On_chkAutoShafts_Click(wxCommandEvent &event)
static const long ID_chkProcessElevators
Definition debugpanel.h:99
static const long ID_bCameraTexture
Definition debugpanel.h:114
static const long ID_bFloorInfo
Definition debugpanel.h:123
wxCheckBox * chkRandom
Definition debugpanel.h:217
void On_bKeys_Click(wxCommandEvent &event)
wxStaticText * t_elevnumber
Definition debugpanel.h:237
editelevator * ee
Definition debugpanel.h:248
static const long ID_t_elevfloor
Definition debugpanel.h:91
static const long ID_bKeys
Definition debugpanel.h:121
void On_chkVerbose_Click(wxCommandEvent &event)
wxCheckBox * chkAutoShafts
Definition debugpanel.h:210
void On_bControlReference_Click(wxCommandEvent &event)
wxStaticText * t_camerafloor
Definition debugpanel.h:232
static const long ID_t_elevnumber
Definition debugpanel.h:90
wxCheckBox * chkMalfunctions
Definition debugpanel.h:214
static const long ID_bEscalator
Definition debugpanel.h:115
wxCheckBox * chkGravity
Definition debugpanel.h:213
static const long ID_STATICTEXT4
Definition debugpanel.h:80
static const long ID_bMeshControl
Definition debugpanel.h:107
static const long ID_t_clickposition
Definition debugpanel.h:93
static const long ID_bStats
Definition debugpanel.h:111
ActionViewer * actionviewer
Definition debugpanel.h:254
SkyControl * skycontrol
Definition debugpanel.h:255
static const long ID_chkCollisionDetection
Definition debugpanel.h:97
static const long ID_STATICTEXT12
Definition debugpanel.h:75
void ShowConsole(bool send_button=true)
Definition gui.cpp:214
void UnregisterDebugPanel()
Definition gui.h:47
GUI * GetGUI()
Definition vm.cpp:142
::SBS::SBS * GetActiveSystem()
Definition vm.cpp:598
bool Pause
Definition vm.h:118
EngineContext * GetActiveEngine()
Definition vm.h:81
Ogre::Vector3 Vector3
Definition globals.h:58
bool SBSIMPEXP enable_profiling
Definition profiler.cpp:15
std::string TruncateNumber(float value, int decimals)
Definition globals.cpp:416
std::string ToString(int number)
Definition globals.cpp:279
bool IsNumeric(char character)
Definition globals.cpp:48
bool IsNumeric(const wxString &string)
wxString TruncateNumber(float value, int decimals)