[Orxonox-commit 4465] r9136 - code/branches/newlevel2012/src/modules/towerdefense
mentzerf at orxonox.net
mentzerf at orxonox.net
Sun Apr 29 11:08:26 CEST 2012
Author: mentzerf
Date: 2012-04-29 11:08:26 +0200 (Sun, 29 Apr 2012)
New Revision: 9136
Modified:
code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc
code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h
code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.cc
Log:
+ Added console command "addTower" to later spawn in towers. Now only outputs to console
+ Added centerpoint variable, is being set by TowerDefenseCenterpoint
Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc 2012-04-29 09:06:40 UTC (rev 9135)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc 2012-04-29 09:08:26 UTC (rev 9136)
@@ -59,101 +59,129 @@
#include "worldentities/pawns/Pawn.h"
#include "worldentities/pawns/SpaceShip.h"
+/* Part of a temporary hack to allow the player to add towers */
+#include "core/command/ConsoleCommand.h"
+
namespace orxonox
{
CreateUnloadableFactory(TowerDefense);
-
- TowerDefense::TowerDefense(BaseObject* creator) : Deathmatch(creator)
+
+ TowerDefense::TowerDefense(BaseObject* creator) : Deathmatch(creator)
{
RegisterObject(TowerDefense);
-
+
+ /* Temporary hack to allow the player to add towers */
+ this->dedicatedAddTower_ = createConsoleCommand( "addTower", createExecutor( createFunctor(&TowerDefense::addTower, this) ) );
+
}
-
+
+ TowerDefense::~TowerDefense()
+ {
+ if (this->isInitialized())
+ {
+ if( this->dedicatedAddTower_ )
+ delete this->dedicatedAddTower_;
+ }
+ }
+
+ void TowerDefense::setCenterpoint(TowerDefenseCenterpoint *centerpoint)
+ {
+ orxout() << "got a centerpoint..." << endl;
+
+ this->center_ = centerpoint;
+ }
+
void TowerDefense::start()
{
Deathmatch::start();
orxout()<< "This is a way to display output on the terminal." <<endl;
- //Tipp: Fenster-Modus über die Grafikeinstellungen einstellen.
- //(dazu den Bulletpoint 'Fullscreen' entfernen, eine kleine Auflösung auswählen und auf 'Apply' klicken.)
}
- /*
- void TowerDefense::end()
- {
- Deathmatch::end();
-
- std::string message("The match has ended.");
- ChatManager::message(message);
- }
- */
-
-
+
+ /*
+ void TowerDefense::end()
+ {
+ Deathmatch::end();
+
+ std::string message("The match has ended.");
+ ChatManager::message(message);
+ }
+ */
+
+ void TowerDefense::addTower(int x, int y)
+ {
+ orxout()<< "Should add tower at (" << x << "," << y << ")" << endl;
+
+ if (x > 16 || y > 16)
+ {
+ orxout() << "x and y should be between 1 and 16" << endl;
+ return;
+ }
+
+
+
+ // TODO: create Tower mesh
+ // TODO: load Tower mesh
+ }
+
void TowerDefense::tick(float dt)
{
SUPER(TowerDefense, tick, dt);
-
+
static bool test = false;
if (!test)
{
orxout()<< "First tick." <<endl;
- spawnEnemy();
}
test = true;
}
-
- void TowerDefense::spawnEnemy()
- {
- //SpawnPoint *sp = *this->spawnpoints_.begin();
-
- //Pawn* p = sp->spawn();
- }
-
-/*
- void TowerDefense::playerEntered(PlayerInfo* player)
- {
- Deathmatch::playerEntered(player);
-
- const std::string& message = player->getName() + " entered the game";
- ChatManager::message(message);
- }
-
- bool TowerDefense::playerLeft(PlayerInfo* player)
- {
- bool valid_player = Deathmatch::playerLeft(player);
-
- if (valid_player)
- {
- const std::string& message = player->getName() + " left the game";
- ChatManager::message(message);
- }
-
- return valid_player;
- }
-
-
- void TowerDefense::pawnKilled(Pawn* victim, Pawn* killer)
- {
- if (victim && victim->getPlayer())
- {
- std::string message;
- if (killer)
- {
- if (killer->getPlayer())
- message = victim->getPlayer()->getName() + " was killed by " + killer->getPlayer()->getName();
- else
- message = victim->getPlayer()->getName() + " was killed";
- }
- else
- message = victim->getPlayer()->getName() + " died";
-
- ChatManager::message(message);
- }
-
- Deathmatch::pawnKilled(victim, killer);
- }
-
- void TowerDefense::playerScored(PlayerInfo* player)
- {
- Gametype::playerScored(player);
-
- }*/
+
+ /*
+ void TowerDefense::playerEntered(PlayerInfo* player)
+ {
+ Deathmatch::playerEntered(player);
+
+ const std::string& message = player->getName() + " entered the game";
+ ChatManager::message(message);
+ }
+
+ bool TowerDefense::playerLeft(PlayerInfo* player)
+ {
+ bool valid_player = Deathmatch::playerLeft(player);
+
+ if (valid_player)
+ {
+ const std::string& message = player->getName() + " left the game";
+ ChatManager::message(message);
+ }
+
+ return valid_player;
+ }
+
+
+ void TowerDefense::pawnKilled(Pawn* victim, Pawn* killer)
+ {
+ if (victim && victim->getPlayer())
+ {
+ std::string message;
+ if (killer)
+ {
+ if (killer->getPlayer())
+ message = victim->getPlayer()->getName() + " was killed by " + killer->getPlayer()->getName();
+ else
+ message = victim->getPlayer()->getName() + " was killed";
+ }
+ else
+ message = victim->getPlayer()->getName() + " died";
+
+ ChatManager::message(message);
+ }
+
+ Deathmatch::pawnKilled(victim, killer);
+ }
+
+ void TowerDefense::playerScored(PlayerInfo* player)
+ {
+ Gametype::playerScored(player);
+
+ }*/
}
Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h 2012-04-29 09:06:40 UTC (rev 9135)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h 2012-04-29 09:08:26 UTC (rev 9136)
@@ -36,20 +36,28 @@
{
class _OrxonoxExport TowerDefense : public Deathmatch
{
- public:
- TowerDefense(BaseObject* creator);
- virtual ~TowerDefense() {}
-
- virtual void start(); //<! The function is called when the gametype starts
- //virtual void end();
- virtual void tick(float dt);
- //virtual void playerEntered(PlayerInfo* player);
- //virtual bool playerLeft(PlayerInfo* player);
-
- //virtual void pawnKilled(Pawn* victim, Pawn* killer = 0);
- //virtual void playerScored(PlayerInfo* player);
- private:
- void spawnEnemy();
+ public:
+ TowerDefense(BaseObject* creator);
+ virtual ~TowerDefense();
+
+ virtual void start(); //<! The function is called when the gametype starts
+ //virtual void end();
+ virtual void tick(float dt);
+ //virtual void playerEntered(PlayerInfo* player);
+ //virtual bool playerLeft(PlayerInfo* player);
+
+ //virtual void pawnKilled(Pawn* victim, Pawn* killer = 0);
+ //virtual void playerScored(PlayerInfo* player);
+
+ void setCenterpoint(TowerDefenseCenterpoint *centerpoint);
+
+ /* Part of a temporary hack to allow the player to add towers */
+ void addTower(int x, int y);
+ ConsoleCommand* dedicatedAddTower_;
+
+ private:
+// WeakPtr<TowerDefenseCenterpoint> center_;
+ TowerDefenseCenterpoint *center_;
};
}
Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.cc
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.cc 2012-04-29 09:06:40 UTC (rev 9135)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.cc 2012-04-29 09:08:26 UTC (rev 9136)
@@ -50,6 +50,8 @@
{
RegisterObject(TowerDefenseCenterpoint);
+
+
this->width_ = 10;
this->height_ = 11;
this->towerTemplate_ = "";
@@ -88,10 +90,11 @@
*/
void TowerDefenseCenterpoint::checkGametype()
{
- if (this->getGametype() != NULL && this->getGametype()->isA(Class(TowerDefense)))
+ if (this->getGametype() != NULL && this->getGametype()->isA(Class(TowerDefense)))
{
- //TowerDefense* TowerDefenseGametype = orxonox_cast<TowerDefense*>(this->getGametype().get());
- //TowerDefenseGametype->setCenterpoint(this);
+ // Sets the centerpoint of the gametype. The gametype uses this to later spawn in towers, he needs the tower template stored in the center point
+ TowerDefense* towerDefenseGametype = orxonox_cast<TowerDefense*>(this->getGametype().get());
+ towerDefenseGametype->setCenterpoint(this);
}
}
}
More information about the Orxonox-commit
mailing list