[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