[Orxonox-commit 6523] r11166 - in code/branches/sagerjFS16: data/levels/includes src/modules/weapons src/modules/weapons/weaponmodes src/orxonox/controllers src/orxonox/weaponsystem src/orxonox/worldentities src/orxonox/worldentities/pawns
sagerj at orxonox.net
sagerj at orxonox.net
Thu Apr 14 16:02:01 CEST 2016
Author: sagerj
Date: 2016-04-14 16:02:00 +0200 (Thu, 14 Apr 2016)
New Revision: 11166
Modified:
code/branches/sagerjFS16/data/levels/includes/weaponSettingsEscort.oxi
code/branches/sagerjFS16/src/modules/weapons/WeaponsPrereqs.h
code/branches/sagerjFS16/src/modules/weapons/weaponmodes/CMakeLists.txt
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/NewHumanController.cc
code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h
code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.cc
code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc
code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.h
code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.cc
code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.cc
code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc
code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.cc
code/branches/sagerjFS16/src/orxonox/worldentities/pawns/Pawn.cc
code/branches/sagerjFS16/src/orxonox/worldentities/pawns/Pawn.h
Log:
today I got pawn'ed
Modified: code/branches/sagerjFS16/data/levels/includes/weaponSettingsEscort.oxi
===================================================================
--- code/branches/sagerjFS16/data/levels/includes/weaponSettingsEscort.oxi 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/data/levels/includes/weaponSettingsEscort.oxi 2016-04-14 14:02:00 UTC (rev 11166)
@@ -1,29 +1,23 @@
<weaponslots>
<WeaponSlot position="-9.2,2,-13" />
- <WeaponSlot position=" 9.2,2,-13" />
+
</weaponslots>
<weaponsets>
<WeaponSet firemode=0 />
- <WeaponSet firemode=1 />
+
</weaponsets>
<weaponpacks>
<WeaponPack>
<links>
<DefaultWeaponmodeLink firemode=0 weaponmode=0 />
- <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+
</links>
<Weapon>
- <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="LaserBeam2.mesh" />
+ <Discharger mode=0 munitionpershot=1 delay=0 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" />
</Weapon>
- <Weapon>
- <HsW01 mode=0 munitionpershot=1 delay=0 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" />
- </Weapon>
+
</WeaponPack>
- <WeaponPack>
- <links>
- <DefaultWeaponmodeLink firemode=1 weaponmode=0 />
- </links>
- </WeaponPack>
+
</weaponpacks>
<munition>
<LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/>
Modified: code/branches/sagerjFS16/src/modules/weapons/WeaponsPrereqs.h
===================================================================
--- code/branches/sagerjFS16/src/modules/weapons/WeaponsPrereqs.h 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/modules/weapons/WeaponsPrereqs.h 2016-04-14 14:02:00 UTC (rev 11166)
@@ -106,6 +106,7 @@
class RocketFireOld;
class SimpleRocketFire;
class GravityBombFire;
+ class Discharger;
}
#endif /* _WeaponsPrereqs_H__ */
Modified: code/branches/sagerjFS16/src/modules/weapons/weaponmodes/CMakeLists.txt
===================================================================
--- code/branches/sagerjFS16/src/modules/weapons/weaponmodes/CMakeLists.txt 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/modules/weapons/weaponmodes/CMakeLists.txt 2016-04-14 14:02:00 UTC (rev 11166)
@@ -12,4 +12,5 @@
SimpleRocketFire.cc
GravityBombFire.cc
MineGun.cc
+ Discharger.cc
)
Modified: code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.cc
===================================================================
--- code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.cc 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -50,40 +50,24 @@
{
RegisterObject(Discharger);
- this->reloadTime_ = 0.1f;
- this->damage_ = 9000.1f*loaded_;
- this->speed_ = 9000.1f*loaded_;
+ this->setMunitionName("LaserMunition");
- this->setMunitionName("dEnergy");
- this->setFireSound("sounds/Weapon_Discharger.ogg");
- this->setReloadSound("sounds/Reload_Discharger.ogg", 0.8);
-
hudImageString_ = "Orxonox/WSHUD_WM_LaserFire";
}
- /**
- @brief
- Fires the weapon. Creates a projectile and fires it.
- */
void Discharger::fire()
{
- /*BillboardProjectile* projectile = new BillboardProjectile(this->getContext());
-
- this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
- projectile->setOrientation(this->getMuzzleOrientation());
- projectile->setPosition(this->getMuzzlePosition());
- projectile->setVelocity(this->getMuzzleDirection() * this->speed_);
-
- projectile->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
- projectile->setDamage(this->getDamage());
- projectile->setShieldDamage(this->getShieldDamage());
- projectile->setHealthDamage(this->getHealthDamage());*/
- extern unsigned int beginLoad_ = time;
+ orxout() << "fire dis " << endl;
}
- void Discharger::release()
+
+ bool Discharger::fire(float* reloadTime)
{
- extern unsigned int endLoad_ = time;
- extern unsigned int loaded_ = endLoad_ - beginLoad_;
-
+ orxout() << "fire Discharger " << endl;
+ return false;
}
+ bool Discharger::release(float* reloadTime)
+ {
+ orxout() << "release Discharger " << endl;
+ return false;
+ }
}
Modified: code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.h
===================================================================
--- code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.h 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/modules/weapons/weaponmodes/Discharger.h 2016-04-14 14:02:00 UTC (rev 11166)
@@ -54,13 +54,10 @@
virtual ~Discharger() {}
virtual void fire() override;
- virtual void release() override;
+ virtual bool fire(float* reloadTime) override;
+ virtual bool release(float* reloadTime) 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-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/controllers/HumanController.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -158,12 +158,14 @@
void HumanController::fire(unsigned int firemode)
{
+ orxout() << "fire hc " << firemode << endl;
if (HumanController::localController_s)
HumanController::localController_s->doFire(firemode);
}
void HumanController::doFire(unsigned int firemode)
{
+ orxout() << "do fire hc " << firemode << endl;
if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
{
HumanController::localController_s->controllableEntity_->fire(firemode);
@@ -177,13 +179,14 @@
void HumanController::release(unsigned int firemode)
{
- orxout() << "HumanController " << firemode << endl;
+ orxout() << "release hc " << firemode << endl;
if (HumanController::localController_s)
HumanController::localController_s->doRelease(firemode);
}
void HumanController::doRelease(unsigned int firemode)
{
+ orxout() << "do release hc " << firemode << endl;
if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
{
HumanController::localController_s->controllableEntity_->release(firemode);
Modified: code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -53,7 +53,6 @@
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", "release", &NewHumanController::release ).keybindMode(KeybindMode::OnRelease).addShortcut();
RegisterUnloadableClass(NewHumanController);
@@ -285,32 +284,28 @@
if (firemode == 1 && this->controlMode_ == 1)
{
+ orxout() << "do fire nhc if " << firemode << endl;
//unlocked steering, steer on right mouse click
HumanController::yaw(Vector2(this->currentYaw_, 0));
HumanController::pitch(Vector2(this->currentPitch_, 0));
}
else
+ {
+ orxout() << "do fire nhc else " << firemode << endl;
HumanController::doFire(firemode); //call for formationflight
+ }
}
- /*void NewHumanController::release(unsigned int firemode)
+ void NewHumanController::doRelease(unsigned int firemode)
{
- if (NewHumanController::localController_s)
- NewHumanController::localController_s->doRelease(firemode);
- orxout() << "Trigger " << firemode << endl;
- }
-
- /void NewHumanController::doRelease(unsigned int firemode)
- {
- // this->firemode_ = -1; (outdated code from unfire)
- // hideArrows();
+ orxout() << "do release nhc" << firemode << endl;
if (!this->controllableEntity_)
return;
this->firemode_ = firemode;
HumanController::doRelease(firemode); //call for formationflight
- }*/
+ }
void NewHumanController::hit(Pawn* originator, btManifoldPoint& contactpoint, float damage)
{
Modified: code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h 2016-04-14 14:02:00 UTC (rev 11166)
@@ -54,8 +54,7 @@
static void decelerate();
virtual void doFire(unsigned int firemode) override;
- /*virtual void release(unsigned int firemode);
- virtual void doRelease(unsigned int firemode);*/
+ virtual void doRelease(unsigned int firemode) override;
virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage) override;
Modified: code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.cc 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -113,6 +113,7 @@
//
// Note: The reloading of each WeaponMode is internally handled by each A, B and C.
// The reloading of the weapon is only performed to avoid firing with different modes at the same time.
+ orxout() << "fire weapon " << mode << endl;
if (this->bReloading_ && this->reloadingWeaponmode_ != mode)
return;
@@ -134,8 +135,28 @@
}
void Weapon::release(unsigned int mode)
- {orxout() << "release weapon " << mode << endl;}
+ {
+ orxout() << "release weapon " << mode << endl;
+ if (this->bReloading_ && this->reloadingWeaponmode_ != mode)
+ return;
+ std::multimap<unsigned int, WeaponMode*>::iterator start = this->weaponmodes_.lower_bound(mode);
+ std::multimap<unsigned int, WeaponMode*>::iterator end = this->weaponmodes_.upper_bound(mode);
+
+ for (std::multimap<unsigned int, WeaponMode*>::iterator it = start; it != end; ++it)
+ {
+ float reloading_time = 0;
+ if (it->second->release(&reloading_time))
+ {
+ this->bReloading_ = true;
+ this->reloadingWeaponmode_ = mode;
+
+ this->reloadTimer_.setInterval(reloading_time);
+ this->reloadTimer_.startTimer();
+ }
+ }
+ }
+
/**
@brief
Reload all @ref orxonox::WeaponMode weapon modes of this weapon.
Modified: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -120,7 +120,7 @@
bool WeaponMode::fire(float* reloadTime)
{
(*reloadTime) = this->reloadTime_;
-
+ orxout() << "fire wm " << reloadTime << endl;
// Fireing is only possible if this weapon mode is not reloading and there is enough munition
if (!this->bReloading_ && this->munition_ && this->munition_->takeMunition(this->munitionPerShot_, this))
{
@@ -168,8 +168,11 @@
}
}
- void WeaponMode::release(float* reloadTime)
- {orxout() << "release wmode " << reloadTime << endl;}
+ bool WeaponMode::release(float* reloadTime)
+ {
+ orxout() << "release wm " << reloadTime << endl;
+ return false;
+ }
bool WeaponMode::reload()
{
Modified: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.h 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.h 2016-04-14 14:02:00 UTC (rev 11166)
@@ -57,7 +57,7 @@
virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
virtual bool fire(float* reloadTime);
- virtual void release(float* reloadTime);
+ virtual bool release(float* reloadTime);
bool reload();
// Munition
Modified: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.cc 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -75,15 +75,16 @@
*/
void WeaponPack::fire(unsigned int weaponmode)
{
+ orxout() << "fire wp " << weaponmode << endl;
for (Weapon* weapon : this->weapons_)
weapon->fire(weaponmode);
}
void WeaponPack::release(unsigned int weaponmode)
{
+ orxout() << "release wp " << weaponmode << endl;
for (Weapon* weapon : this->weapons_)
weapon->release(weaponmode);
- orxout() << "release wpack " << weaponmode << endl;
}
/**
Modified: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.cc 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -62,6 +62,7 @@
void WeaponSet::fire()
{
// Fire all WeaponPacks with their defined weaponmode
+ orxout() << "fire wset " << endl;
for (const auto& mapEntry : this->weaponpacks_)
if (mapEntry.second != WeaponSystem::WEAPON_MODE_UNASSIGNED)
mapEntry.first->fire(mapEntry.second);
@@ -69,13 +70,11 @@
void WeaponSet::release()
{
-
// Fire all WeaponPacks with their defined weaponmode
+ orxout() << "release wset " << endl;
for (const auto& mapEntry : this->weaponpacks_)
if (mapEntry.second != WeaponSystem::WEAPON_MODE_UNASSIGNED)
mapEntry.first->release(mapEntry.second);
- orxout() << "release wset " << endl;
-
}
void WeaponSet::reload()
Modified: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -288,6 +288,7 @@
*/
void WeaponSystem::fire(unsigned int firemode)
{
+ orxout() << "fire wsys " << firemode << endl;
std::map<unsigned int, WeaponSet *>::iterator it = this->weaponSets_.find(firemode);
if (it != this->weaponSets_.end() && it->second)
it->second->fire();
@@ -295,10 +296,10 @@
void WeaponSystem::release(unsigned int firemode)
{
+ orxout() << "release wsys " << firemode << endl;
std::map<unsigned int, WeaponSet *>::iterator it = this->weaponSets_.find(firemode);
if (it != this->weaponSets_.end() && it->second)
it->second->release();
- orxout() << "release wsys " << firemode << endl;
}
void WeaponSystem::reload()
Modified: code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.cc 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -302,12 +302,12 @@
{
if(GameMode::isMaster())
{
- orxout() << "f CE IF " << firemode << endl;
+ orxout() << "fire ce if " << firemode << endl;
this->fired(firemode);
}
else
{
- orxout() << "f CE EL " << firemode << endl;
+ orxout() << "fire ce else " << firemode << endl;
callMemberNetworkFunction(&ControllableEntity::fire, this->getObjectID(), 0, firemode);
}
}
@@ -316,12 +316,12 @@
{
if(GameMode::isMaster())
{
- orxout() << "r CE IF " << firemode << endl;
+ orxout() << "release ce if " << firemode << endl;
this->released(firemode);
}
else
{
- orxout() << "r CE EL " << firemode << endl;
+ orxout() << "release ce else " << firemode << endl;
callMemberNetworkFunction(&ControllableEntity::fire, this->getObjectID(), 0, firemode);
}
}
Modified: code/branches/sagerjFS16/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/worldentities/pawns/Pawn.cc 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/worldentities/pawns/Pawn.cc 2016-04-14 14:02:00 UTC (rev 11166)
@@ -429,10 +429,18 @@
void Pawn::fired(unsigned int firemode)
{
+ orxout() << "fired pawn " << firemode << endl;
if (this->weaponSystem_)
this->weaponSystem_->fire(firemode);
}
+ void Pawn::released(unsigned int firemode)
+ {
+ orxout() << "released pawn " << firemode << endl;
+ if (this->weaponSystem_)
+ this->weaponSystem_->release(firemode);
+ }
+
void Pawn::postSpawn()
{
this->setHealth(this->initialHealth_);
Modified: code/branches/sagerjFS16/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/worldentities/pawns/Pawn.h 2016-04-14 11:24:08 UTC (rev 11165)
+++ code/branches/sagerjFS16/src/orxonox/worldentities/pawns/Pawn.h 2016-04-14 14:02:00 UTC (rev 11166)
@@ -157,6 +157,7 @@
virtual void kill();
virtual void fired(unsigned int firemode) override;
+ virtual void released(unsigned int firemode) override;
virtual void postSpawn();
void addExplosionPart(ExplosionPart* ePart);
More information about the Orxonox-commit
mailing list