[Orxonox-commit 6509] r11153 - in code/branches/sagerjFS16: data/defaultConfig data/gui/scripts src/modules/weapons/weaponmodes src/orxonox/controllers src/orxonox/weaponsystem

sagerj at orxonox.net sagerj at orxonox.net
Thu Mar 24 15:56:35 CET 2016


Author: sagerj
Date: 2016-03-24 15:56:35 +0100 (Thu, 24 Mar 2016)
New Revision: 11153

Modified:
   code/branches/sagerjFS16/data/defaultConfig/keybindings.ini
   code/branches/sagerjFS16/data/gui/scripts/KeyBindMenu.lua
   code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.cc
   code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.h
   code/branches/sagerjFS16/src/orxonox/controllers/HumanController.cc
   code/branches/sagerjFS16/src/orxonox/controllers/HumanController.h
   code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc
   code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h
   code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc
   code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc
   code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.h
Log:
added release functions in various classes: weaponmode, weaponsystem, humancontroller, newhumancontroller, discharger

Modified: code/branches/sagerjFS16/data/defaultConfig/keybindings.ini
===================================================================
--- code/branches/sagerjFS16/data/defaultConfig/keybindings.ini	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/data/defaultConfig/keybindings.ini	2016-03-24 14:56:35 UTC (rev 11153)
@@ -121,7 +121,7 @@
 KeySpace="boost"
 KeyStop=
 KeySystemRequest="printScreen"
-KeyT="onpress fire 3"
+KeyT= onpress fire 3 | onrelease release 3
 KeyTab="NewHumanController changeMode"
 KeyU=""
 KeyUP="scale 1 moveFrontBack"
@@ -131,7 +131,7 @@
 KeyV=
 KeyVolumeDown=
 KeyVolumeUp=
-KeyW="scale 1 moveFrontBack"
+KeyW="scale 1 moveFrontBack "
 KeyWake=
 KeyWebBack=
 KeyWebFavorites=
@@ -141,7 +141,7 @@
 KeyWebSearch=
 KeyWebStop=
 KeyX="selectClosest"
-KeyY="onpress fire 4"
+KeyY= onpress fire 4 | onrelease release 4
 KeyYen=
 KeyZ="selectNext"
 
@@ -151,9 +151,9 @@
 Button5=
 Button6=
 Button7=
-Left="fire 0"
-Middle="fire 2"
-Right= fire 1 | unfire
+Left= fire 0 | release 0
+Middle= fire 2 | release 2
+Right= fire 1 | release 1
 Wheel1Down="NewHumanController decelerate"
 Wheel1Up="NewHumanController accelerate"
 Wheel2Down=

Modified: code/branches/sagerjFS16/data/gui/scripts/KeyBindMenu.lua
===================================================================
--- code/branches/sagerjFS16/data/gui/scripts/KeyBindMenu.lua	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/data/gui/scripts/KeyBindMenu.lua	2016-03-24 14:56:35 UTC (rev 11153)
@@ -6,10 +6,10 @@
 function P.onLoad()
 
     commandList = {}
-    table.insert(commandList, "fire 0")
-    table.insert(commandList, "fire 1 | unfire")
-    table.insert(commandList, "onpress fire 2")
-    table.insert(commandList, "onpress fire 3")
+    table.insert(commandList, "fire 0" | "release 0")
+    table.insert(commandList, "fire 1" | "release 1")
+    table.insert(commandList, "onpress fire 2" | "onrelease release 2")
+    table.insert(commandList, "onpress fire 3" | "onrelease release 3")
     table.insert(commandList, "scale 1 moveFrontBack")
     table.insert(commandList, "scale -1 moveFrontBack")
     table.insert(commandList, "boost")

Modified: code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.cc
===================================================================
--- code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.cc	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.cc	2016-03-24 14:56:35 UTC (rev 11153)
@@ -51,8 +51,8 @@
         RegisterObject(Discharger);
 
         this->reloadTime_ = 0.1f;
-        this->damage_ = 9000.1f;
-        this->speed_ = 9000.1f;
+        this->damage_ = 9000.1f*loaded_;
+        this->speed_ = 9000.1f*loaded_;
 
         this->setMunitionName("dEnergy");
         this->setFireSound("sounds/Weapon_Discharger.ogg");
@@ -67,12 +67,8 @@
     */
     void Discharger::fire()
     {
+        /*BillboardProjectile* projectile = new BillboardProjectile(this->getContext());
 
-    }
-    void Discharger::unfire()
-    {
-        BillboardProjectile* projectile = new BillboardProjectile(this->getContext());
-
         this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
         projectile->setOrientation(this->getMuzzleOrientation());
         projectile->setPosition(this->getMuzzlePosition());
@@ -81,6 +77,13 @@
         projectile->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
         projectile->setDamage(this->getDamage());
         projectile->setShieldDamage(this->getShieldDamage());
-        projectile->setHealthDamage(this->getHealthDamage());
+        projectile->setHealthDamage(this->getHealthDamage());*/
+        extern unsigned int beginLoad_ = time;
     }
+    void Discharger::release()
+    {
+        extern unsigned int endLoad_ = time;
+        extern unsigned int loaded_ = endLoad_ - beginLoad_;
+
+    }
 }

Modified: code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.h
===================================================================
--- code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.h	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.h	2016-03-24 14:56:35 UTC (rev 11153)
@@ -54,10 +54,13 @@
             virtual ~Discharger() {}
 
             virtual void fire() override;
-            virtual void unfire() override;
+            virtual void release() override;
 
         private:
             float speed_; //!< The speed of the fired projectile.
+            float loaded_; // The time how long the weapon charged
+            float beginLoad_;
+            float endLoad_;
     };
 }
 

Modified: code/branches/sagerjFS16/src/orxonox/controllers/HumanController.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/HumanController.cc	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/src/orxonox/controllers/HumanController.cc	2016-03-24 14:56:35 UTC (rev 11153)
@@ -41,6 +41,7 @@
 {
     extern const std::string __CC_fire_name = "fire";
     extern const std::string __CC_suicide_name = "suicide";
+    extern const std::string __CC_release_name = "release";
 
     SetConsoleCommand("HumanController", "moveFrontBack",          &HumanController::moveFrontBack ).addShortcut().setAsInputCommand();
     SetConsoleCommand("HumanController", "moveRightLeft",          &HumanController::moveRightLeft ).addShortcut().setAsInputCommand();
@@ -51,6 +52,7 @@
     SetConsoleCommand("HumanController", "toggleFormationFlight",  &HumanController::toggleFormationFlight).addShortcut().keybindMode(KeybindMode::OnPress);
     SetConsoleCommand("HumanController", "FFChangeMode",           &HumanController::FFChangeMode).addShortcut().keybindMode(KeybindMode::OnPress);
     SetConsoleCommand("HumanController", __CC_fire_name,           &HumanController::fire          ).addShortcut().keybindMode(KeybindMode::OnHold);
+    SetConsoleCommand("HumanController", __CC_release_name,        &HumanController::release       ).addShortcut().keybindMode(KeybindMode::OnRelease);
     SetConsoleCommand("HumanController", "reload",                 &HumanController::reload        ).addShortcut();
     SetConsoleCommand("HumanController", "boost",                  &HumanController::boost         ).addShortcut().setAsInputCommand().keybindMode(KeybindMode::OnPressAndRelease);
     SetConsoleCommand("HumanController", "greet",                  &HumanController::greet         ).addShortcut();
@@ -173,6 +175,25 @@
         }
     }
 
+    void HumanController::release(unsigned int firemode)
+    {
+        if (HumanController::localController_s)
+            HumanController::localController_s->doRelease(firemode);
+    }
+
+    void HumanController::doRelease(unsigned int firemode)
+    {
+        if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
+        {
+            HumanController::localController_s->controllableEntity_->release(firemode);
+            //if human releases, set slaves free. See FormationController::forceFreeSlaves()
+            if (HumanController::localController_s->state_==MASTER && HumanController::localController_s->formationMode_ == NORMAL)
+            {
+                HumanController::localController_s->forceFreeSlaves();
+            }
+        }
+    }
+
     void HumanController::reload()
     {
         if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)

Modified: code/branches/sagerjFS16/src/orxonox/controllers/HumanController.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/HumanController.h	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/src/orxonox/controllers/HumanController.h	2016-03-24 14:56:35 UTC (rev 11153)
@@ -63,6 +63,8 @@
             static void fire(unsigned int firemode);
             virtual void doFire(unsigned int firemode);
             static void reload();
+            static void release(unsigned int firemode);
+            virtual void doRelease(unsigned int firemode);
 
             static void boost(const Vector2& value); // Static method, controls boosting.
             void startBoosting(void);

Modified: code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc	2016-03-24 14:56:35 UTC (rev 11153)
@@ -53,7 +53,7 @@
     SetConsoleCommand("NewHumanController", "changeMode", &NewHumanController::changeMode).keybindMode(KeybindMode::OnPress);
     SetConsoleCommand("NewHumanController", "accelerate", &NewHumanController::accelerate).keybindMode(KeybindMode::OnPress);
     SetConsoleCommand("NewHumanController", "decelerate", &NewHumanController::decelerate).keybindMode(KeybindMode::OnPress);
-    SetConsoleCommand("NewHumanController", "unfire",     &NewHumanController::unfire    ).keybindMode(KeybindMode::OnRelease).addShortcut();
+    SetConsoleCommand("NewHumanController", "release",    &NewHumanController::release    ).keybindMode(KeybindMode::OnRelease).addShortcut();
 
     RegisterUnloadableClass(NewHumanController);
 
@@ -343,17 +343,23 @@
         }
     }
 
-    void NewHumanController::unfire()
+    void NewHumanController::release(unsigned int firemode)
     {
         if (NewHumanController::localController_s)
-            NewHumanController::localController_s->doUnfire();
-        orxout() << "unfire" << endl;
+            NewHumanController::localController_s->doRelease();
+        orxout() << "Trigger" << endl;
     }
 
-    void NewHumanController::doUnfire()
+    void NewHumanController::doRelease(unsigned int firemode)
     {
-        this->firemode_ = -1;
-        hideArrows();
+        // this->firemode_ = -1; (outdated code from unfire)
+        // hideArrows();
+        if (!this->controllableEntity_)
+            return;
+
+        this->firemode_ = firemode;
+
+        HumanController::doRelease(firemode); //call for formationflight
     }
 
     void NewHumanController::centerCursor()

Modified: code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h	2016-03-24 14:56:35 UTC (rev 11153)
@@ -57,8 +57,8 @@
 
             virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage) override;
 
-            static void unfire();
-            virtual void doUnfire();
+            static void release(unsigned int firemode);
+            virtual void doRelease(unsigned int firemode);
 
             void centerCursor();
 

Modified: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc	2016-03-24 14:56:35 UTC (rev 11153)
@@ -168,6 +168,8 @@
         }
     }
 
+    void WeaponMode::release()
+
     bool WeaponMode::reload()
     {
         if (this->munition_ && this->munition_->reload(this))

Modified: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc	2016-03-24 14:56:35 UTC (rev 11153)
@@ -293,6 +293,13 @@
             it->second->fire();
     }
 
+    void WeaponSystem::release(unsigned int firemode)
+    {
+        std::map<unsigned int, WeaponSet *>::iterator it = this->weaponSets_.find(firemode);
+        if (it != this->weaponSets_.end() && it->second)
+            it->second->release();
+    }
+
     void WeaponSystem::reload()
     {
         for (const auto& mapEntry : this->weaponSets_)

Modified: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.h	2016-03-24 14:54:06 UTC (rev 11152)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.h	2016-03-24 14:56:35 UTC (rev 11153)
@@ -75,6 +75,7 @@
 
             void fire(unsigned int firemode);
             void reload();
+            void release(unsigned int firemode);
 
             Munition * getMunition(SubclassIdentifier<Munition> * identifier);
             void addMunition(Munition* munition);




More information about the Orxonox-commit mailing list