OSDN Git Service

-objects are now deleted by ctrl-alt-click instead of just ctrl-click, to prevent...
authorryan <>
Tue, 17 Feb 2015 20:40:46 +0000 (20:40 +0000)
committerryan <>
Tue, 17 Feb 2015 20:40:46 +0000 (20:40 +0000)
-controls can now be deleted by ctrl-alt-click

codeblocks/wxsmith/KeyDialog.wxs
readme.txt
src/frontend/keydialog.cpp
src/sbs/camera.cpp

index 205f0d4..e034a38 100644 (file)
@@ -9,7 +9,7 @@
                        <orient>wxVERTICAL</orient>
                        <object class="sizeritem">
                                <object class="wxTextCtrl" name="ID_TEXTCTRL1" variable="TextCtrl1" member="yes">
-                                       <value>Simulator Keyboard and Mouse Controls from the readme.txt file:&#x0A;&#x0A;--- Keyboard ---&#x0A;W or Up Arrow - move forwards&#x0A;S or Down Arrow - move backwards&#x0A;A or Left Arrow - move left&#x0A;D or Right Arrow - move right&#x0A;PgUp or P - Look upwards&#x0A;PgDown or L - Look downwards&#x0A;Space - Jump&#x0A;Home or O - Float upwards (or jump if collision detection is on)&#x0A;End or K - Float downwards (or crouch if collision detection is on)&#x0A;F2 - print FPS on console&#x0A;F3 - Reset camera rotation and zoom to default&#x0A;F4 - Enable/disable wireframe mode&#x0A;F5 - Freelook (mouse look) mode&#x0A;F6 - Full camera reset (respawn)&#x0A;F7 - Show colliders&#x0A;F10 - Fullscreen mode&#x0A;F11 - Take screenshot&#x0A;F12 - Show control panel&#x0A;Shift - Run (hold down with other keys)&#x0A;Control - Walk slowly (hold down with other keys)&#x0A;Alt + arrow keys - Strafe&#x0A;Alt + PgUp/P - Spin right&#x0A;Alt + PgDown/L - Spin left&#x0A;Plus or ] - Zoom in (decrease FOV angle)&#x0A;Minus or [ - Zoom out (increase FOV angle)&#x0A;Esc - exit to main menu&#x0A;V - Toggle noclip mode (gravity and collisions off)&#x0A;B - Binoculars mode (hold down), and reset FOV to default&#x0A;Ctrl-R - Reload current building&#x0A;Ctrl-Alt-C - crash program (throw exception), used for testing handlers&#x0A;&#x0A;--- Mouse actions ---&#x0A;-the selection order of controls (buttons and switches can be reversed by right-clicking them&#x0A;-elevator shaft doors can be manually opened and closed by holding down the Shift key and clicking on them - note that this only works when the interlocks are released, which can be done in the elevator editor by clicking &quot;Set&quot; next to &quot;Interlocks&quot; on the related elevator&#x0A;-polygons (wall/floor sides) can be deleted by holding down Ctrl and clicking on the object&#x0A;-doors, controls/buttons, and call buttons can be locked/unlocked by holding down both the Ctrl and Shift keys while clicking on the side to lock, if you have the associated key&#x0A;-call button light status can be changed by shift-clicking the related button&#x0A;</value>
+                                       <value>Simulator Keyboard and Mouse Controls from the readme.txt file:&#x0A;&#x0A;--- Keyboard ---&#x0A;W or Up Arrow - move forwards&#x0A;S or Down Arrow - move backwards&#x0A;A or Left Arrow - move left&#x0A;D or Right Arrow - move right&#x0A;PgUp or P - Look upwards&#x0A;PgDown or L - Look downwards&#x0A;Space - Jump&#x0A;Home or O - Float upwards (or jump if collision detection is on)&#x0A;End or K - Float downwards (or crouch if collision detection is on)&#x0A;F2 - print FPS on console&#x0A;F3 - Reset camera rotation and zoom to default&#x0A;F4 - Enable/disable wireframe mode&#x0A;F5 - Freelook (mouse look) mode&#x0A;F6 - Full camera reset (respawn)&#x0A;F7 - Show colliders&#x0A;F10 - Fullscreen mode&#x0A;F11 - Take screenshot&#x0A;F12 - Show control panel&#x0A;Shift - Run (hold down with other keys)&#x0A;Control - Walk slowly (hold down with other keys)&#x0A;Alt + arrow keys - Strafe&#x0A;Alt + PgUp/P - Spin right&#x0A;Alt + PgDown/L - Spin left&#x0A;Plus or ] - Zoom in (decrease FOV angle)&#x0A;Minus or [ - Zoom out (increase FOV angle)&#x0A;Esc - exit to main menu&#x0A;V - Toggle noclip mode (gravity and collisions off)&#x0A;B - Binoculars mode (hold down), and reset FOV to default&#x0A;Ctrl-R - Reload current building&#x0A;Ctrl-Alt-C - crash program (throw exception), used for testing handlers&#x0A;&#x0A;--- Mouse actions ---&#x0A;-the selection order of controls (buttons and switches can be reversed by right-clicking them&#x0A;-elevator shaft doors can be manually opened and closed by holding down the Shift key and clicking on them - note that this only works when the interlocks are released, which can be done in the elevator editor by clicking &quot;Set&quot; next to &quot;Interlocks&quot; on the related elevator&#x0A;-polygons (wall/floor sides) and other objects can be deleted by holding down both Ctrl and Alt, and clicking on the object&#x0A;-doors, controls/buttons, and call buttons can be locked/unlocked by holding down both the Ctrl and Shift keys while clicking on the side to lock, if you have the associated key&#x0A;-call button light status can be changed by shift-clicking the related button&#x0A;</value>
                                        <minsize>600,500</minsize>
                                        <style>wxTE_MULTILINE|wxTE_READONLY</style>
                                </object>
index d925659..612f09a 100644 (file)
@@ -119,7 +119,7 @@ Ctrl-Alt-C - Crash program (throw exception) - used for testing handlers
 --- Mouse actions ---
 -the selection order of controls (buttons and switches) can be reversed by right-clicking them
 -elevator shaft doors can be manually opened and closed by holding down the Shift key and clicking on them - note that this only works when the interlocks are released, which can be done in the elevator editor by clicking "Set" next to "Interlocks" on the related elevator
--polygons (wall/floor sides) can be deleted by holding down Ctrl and clicking on the object
+-polygons (wall/floor sides) and other objects can be deleted by holding down both Ctrl and Alt, and clicking on the object
 -doors, controls/buttons, and call buttons can be locked/unlocked by holding down both the Ctrl and Shift keys while clicking on the side to lock, if you have the associated key
 -call button light status can be changed by shift-clicking the related button
 
index 6aa7aa2..7d33fe8 100644 (file)
@@ -45,7 +45,7 @@ KeyDialog::KeyDialog(wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxS
 
        Create(parent, wxID_ANY, _("Control Reference"), wxDefaultPosition, wxDefaultSize, wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxSYSTEM_MENU|wxRESIZE_BORDER|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX, _T("wxID_ANY"));
        BoxSizer1 = new wxBoxSizer(wxVERTICAL);
-       TextCtrl1 = new wxTextCtrl(this, ID_TEXTCTRL1, _("Simulator Keyboard and Mouse Controls from the readme.txt file:\n\n--- Keyboard ---\nW or Up Arrow - move forwards\nS or Down Arrow - move backwards\nA or Left Arrow - move left\nD or Right Arrow - move right\nPgUp or P - Look upwards\nPgDown or L - Look downwards\nSpace - Jump\nHome or O - Float upwards (or jump if collision detection is on)\nEnd or K - Float downwards (or crouch if collision detection is on)\nF2 - print FPS on console\nF3 - Reset camera rotation and zoom to default\nF4 - Enable/disable wireframe mode\nF5 - Freelook (mouse look) mode\nF6 - Full camera reset (respawn)\nF7 - Show colliders\nF10 - Fullscreen mode\nF11 - Take screenshot\nF12 - Show control panel\nShift - Run (hold down with other keys)\nControl - Walk slowly (hold down with other keys)\nAlt + arrow keys - Strafe\nAlt + PgUp/P - Spin right\nAlt + PgDown/L - Spin left\nPlus or ] - Zoom in (decrease FOV angle)\nMinus or [ - Zoom out (increase FOV angle)\nEsc - exit to main menu\nV - Toggle noclip mode (gravity and collisions off)\nB - Binoculars mode (hold down), and reset FOV to default\nCtrl-R - Reload current building\nCtrl-Alt-C - crash program (throw exception), used for testing handlers\n\n--- Mouse actions ---\n-the selection order of controls (buttons and switches can be reversed by right-clicking them\n-elevator shaft doors can be manually opened and closed by holding down the Shift key and clicking on them - note that this only works when the interlocks are released, which can be done in the elevator editor by clicking \"Set\" next to \"Interlocks\" on the related elevator\n-polygons (wall/floor sides) can be deleted by holding down Ctrl and clicking on the object\n-doors, controls/buttons, and call buttons can be locked/unlocked by holding down both the Ctrl and Shift keys while clicking on the side to lock, if you have the associated key\n-call button light status can be changed by shift-clicking the related button\n"), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY, wxDefaultValidator, _T("ID_TEXTCTRL1"));
+       TextCtrl1 = new wxTextCtrl(this, ID_TEXTCTRL1, _("Simulator Keyboard and Mouse Controls from the readme.txt file:\n\n--- Keyboard ---\nW or Up Arrow - move forwards\nS or Down Arrow - move backwards\nA or Left Arrow - move left\nD or Right Arrow - move right\nPgUp or P - Look upwards\nPgDown or L - Look downwards\nSpace - Jump\nHome or O - Float upwards (or jump if collision detection is on)\nEnd or K - Float downwards (or crouch if collision detection is on)\nF2 - print FPS on console\nF3 - Reset camera rotation and zoom to default\nF4 - Enable/disable wireframe mode\nF5 - Freelook (mouse look) mode\nF6 - Full camera reset (respawn)\nF7 - Show colliders\nF10 - Fullscreen mode\nF11 - Take screenshot\nF12 - Show control panel\nShift - Run (hold down with other keys)\nControl - Walk slowly (hold down with other keys)\nAlt + arrow keys - Strafe\nAlt + PgUp/P - Spin right\nAlt + PgDown/L - Spin left\nPlus or ] - Zoom in (decrease FOV angle)\nMinus or [ - Zoom out (increase FOV angle)\nEsc - exit to main menu\nV - Toggle noclip mode (gravity and collisions off)\nB - Binoculars mode (hold down), and reset FOV to default\nCtrl-R - Reload current building\nCtrl-Alt-C - crash program (throw exception), used for testing handlers\n\n--- Mouse actions ---\n-the selection order of controls (buttons and switches can be reversed by right-clicking them\n-elevator shaft doors can be manually opened and closed by holding down the Shift key and clicking on them - note that this only works when the interlocks are released, which can be done in the elevator editor by clicking \"Set\" next to \"Interlocks\" on the related elevator\n-polygons (wall/floor sides) and other objects can be deleted by holding down both Ctrl and Alt, and clicking on the object\n-doors, controls/buttons, and call buttons can be locked/unlocked by holding down both the Ctrl and Shift keys while clicking on the side to lock, if you have the associated key\n-call button light status can be changed by shift-clicking the related button\n"), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY, wxDefaultValidator, _T("ID_TEXTCTRL1"));
        TextCtrl1->SetMinSize(wxSize(600,500));
        BoxSizer1->Add(TextCtrl1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
        SetSizer(BoxSizer1);
index 0a11b02..2a4fef5 100644 (file)
@@ -568,8 +568,8 @@ void Camera::ClickedObject(bool shift, bool ctrl, bool alt, bool right)
        //object checks and actions
        if (obj)
        {
-               //delete wall if ctrl is pressed
-               if (wall && ctrl == true && shift == false && right == false && object_number > 0)
+               //delete wall if ctrl and alt are pressed
+               if (wall && ctrl == true && alt == true && shift == false && right == false && object_number > 0)
                {
                        if (std::string(obj->GetType()) == "Wall")
                                sbs->DeleteObject(obj);
@@ -590,6 +590,14 @@ void Camera::ClickedObject(bool shift, bool ctrl, bool alt, bool right)
 
                                if (control)
                                {
+                                       //delete control if ctrl and alt keys are pressed
+                                       if (ctrl == true && alt == true && shift == false)
+                                       {
+                                               sbs->DeleteObject(obj->GetParent());
+                                               return;
+                                       }
+
+                                       //toggle lock status if ctrl and shift are pressed
                                        if (ctrl == true && shift == true)
                                                control->ToggleLock();
                                        else
@@ -604,17 +612,19 @@ void Camera::ClickedObject(bool shift, bool ctrl, bool alt, bool right)
 
                                if (door)
                                {
-                                       //delete door if ctrl key is pressed
-                                       if (ctrl == true && shift == false)
+                                       //delete door if ctrl and alt keys are pressed
+                                       if (ctrl == true && alt == true && shift == false)
                                        {
                                                sbs->DeleteObject(obj->GetParent());
                                                return;
                                        }
 
+                                       //toggle lock status if ctrl and shift are pressed
                                        if (ctrl == true && shift == true)
                                                door->ToggleLock(pos);
                                        else
                                        {
+                                               //open and close doors
                                                if (door->IsOpen() == false)
                                                {
                                                        if (door->IsMoving == false)
@@ -640,8 +650,8 @@ void Camera::ClickedObject(bool shift, bool ctrl, bool alt, bool right)
 
                                if (model)
                                {
-                                       //delete model if ctrl key is pressed
-                                       if (ctrl == true && shift == false)
+                                       //delete model if ctrl and alt keys are pressed
+                                       if (ctrl == true && alt == true && shift == false)
                                        {
                                                sbs->DeleteObject(obj->GetParent());
                                                return;