Changeset 10704 in orxonox.OLD for branches/presentation
- Timestamp:
- Jun 15, 2007, 11:12:29 AM (17 years ago)
- Location:
- branches/presentation/src/world_entities
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/presentation/src/world_entities/creatures/fps_player.cc
r10698 r10704 63 63 { 64 64 this->setPlayer(NULL); 65 66 if( this->aimingSystem)67 delete this->aimingSystem;68 65 } 69 66 … … 126 123 registerEvent(KeyMapper::PEV_JUMP); 127 124 registerEvent(KeyMapper::PEV_CROUCH); 125 registerEvent(KeyMapper::PEV_FIRE1); 128 126 registerEvent(EV_MOUSE_MOTION); 129 130 this->aimingSystem = NULL;131 127 132 128 // weapon manager for the fps 133 129 dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false); 134 130 135 if( State::isOnline()) 136 { 137 Weapon* wpRight = new FPSSniperRifle(0); 138 wpRight->setName("testGun Right"); 139 this->addWeapon(wpRight,1, 0); 140 wpRight->addChild(this->aimingSystem); 141 142 this->toList( OM_PLAYERS ); 143 } 144 145 this->aimingSystem = new AimingSystem(this); 146 147 131 132 133 //this->aimingSystem = new AimingSystem(this); 134 135 #if 0 148 136 this->getWeaponManager().changeWeaponConfig(1); 149 137 this->getWeaponManager().setSlotCount(2); … … 160 148 this->getWeaponManager().getFixedTarget()->setParentMode(PNODE_ALL); 161 149 this->getWeaponManager().getFixedTarget()->setRelCoor(10,0,0); 150 151 if( true /*State::isOnline()*/ ) 152 { 153 FPSSniperRifle* wpRight = new FPSSniperRifle(0); 154 wpRight->setName("testGun Right"); 155 this->addWeapon(wpRight,1, 0); 156 wpRight->toList( this->getOMListNumber() ); 157 wpRight->setParent( &this->cameraNode ); 158 wpRight->requestAction( WA_ACTIVATE ); 159 //wpRight->addChild(this->aimingSystem); 160 161 //this->toList( OM_PLAYERS ); 162 } 163 #endif 164 165 FPSSniperRifle* wpRight = new FPSSniperRifle(0); 166 wpRight->setName("testGun Right"); 167 wpRight->toList( this->getOMListNumber() ); 168 wpRight->setParent( &this->cameraNode ); 169 170 this->weaponMan.setParentEntity( this ); 171 this->weaponMan.setSlotCount(1); 172 this->weaponMan.createWeaponSlot(0, this->cameraNode.getRelCoor().x, this->cameraNode.getRelCoor().y, this->cameraNode.getRelCoor().z, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL); 173 this->weaponMan.addWeapon(wpRight, 0, 0); 174 this->weaponMan.changeWeaponConfig(0); 175 Playable::weaponConfigChanged(); 176 this->weaponMan.getFixedTarget()->setParent(&this->cameraNode ); 177 this->weaponMan.getFixedTarget()->setRelCoor( 100000,0,0 ); 162 178 163 179 … … 269 285 State::getCamera()->setViewMode(Camera::ViewFPS); 270 286 271 272 if( this->aimingSystem != NULL)273 {274 this->aimingSystem->toList(OM_GROUP_01);275 this->aimingSystem->setParent(&this->cameraNode);276 // this->aimingSystem->setParentMode(PNODE_ROTATE_AND_MOVE);277 this->aimingSystem->setRelDir(Quaternion(M_PI_4*-0.58f, Vector(0,0,1)));278 this->aimingSystem->setRelCoor(0, -1, -1);279 }280 287 281 288 } … … 353 360 if( this->bFire) 354 361 { 362 PRINTF(0)("FPSPLAYER FIRE %d\n", this->getOMListNumber() ); 355 363 this->getWeaponManager().fire(); 356 }357 358 359 //dealing damage360 if ( State::isOnline() && (SharedNetworkData::getInstance()->isMasterServer() /*|| SharedNetworkData::getInstance()->isProxyServerActive()*/))361 {362 this->damageTicker -= time;363 364 if ( this->damageTicker <= 0.0f && this->beFire() )365 {366 this->damageTicker = 0.25;367 368 WorldEntity * victim = aimingSystem->getNearestTarget();369 370 if ( victim )371 {372 PRINTF(0)("FIRE: hit %s\n", victim->getClassCName());373 victim->hit( 20, this );374 }375 else376 {377 PRINTF(0)("FIRE: nothing hit\n");378 }379 }380 364 } 381 365 … … 533 517 534 518 this->setOnGround(false); 535 if( this->aimingSystem != NULL)536 this->aimingSystem->flushList();537 519 538 520 } -
branches/presentation/src/world_entities/creatures/fps_player.h
r10698 r10704 11 11 12 12 13 class AimingSystem;13 class FPSSniperRifle; 14 14 15 15 … … 72 72 bool changingZoom; 73 73 74 AimingSystem* aimingSystem; //!< aiming system of the player75 76 74 float damageTicker; //!< ticker for dealing damage 75 76 FPSSniperRifle* weapon; 77 77 78 78 }; -
branches/presentation/src/world_entities/npcs/adm_turret.cc
r10703 r10704 254 254 void AdmTurret::addWeapon( const TiXmlElement * root ) 255 255 { 256 this->weapon = new BspWeapon( );256 this->weapon = new BspWeapon(getOMListNumber()); 257 257 this->weapon->setParent( this->cannons ); 258 258 this->weapon->loadParams(root); -
branches/presentation/src/world_entities/weapons/bsp_weapon.cc
r10698 r10704 31 31 * Standard constructor 32 32 */ 33 BspWeapon::BspWeapon ( )34 { 35 this->init( );33 BspWeapon::BspWeapon ( OM_LIST list ) 34 { 35 this->init( list ); 36 36 } 37 37 … … 49 49 BspWeapon::BspWeapon (const TiXmlElement* root) 50 50 { 51 this->init( );51 this->init( OM_GROUP_00 ); 52 52 if (root != NULL) 53 53 { … … 94 94 void BspWeapon::tick( float dt ) 95 95 { 96 PRINTF(0)("BSPWEAPON TICK: %d %f %f\n", bFire, bRate, dt ); 96 97 if (bFire) { 97 if (bRate < 0) {98 if (bRate <= 0) { 98 99 bRate += fireRate; 100 PRINTF(0)("BSPWEAPON SHOOT\n"); 99 101 this->shoot(); 100 102 } … … 111 113 } 112 114 113 void BspWeapon::init( )114 { 115 bRate = 0 ;115 void BspWeapon::init( OM_LIST list ) 116 { 117 bRate = 0.0; 116 118 bFire = false; 117 119 range = 1000; … … 123 125 this->aimingSystem = new AimingSystem( this ); 124 126 this->aimingSystem->setParent( this ); 125 this->aimingSystem->toList( OM_GROUP_00);127 this->aimingSystem->toList(list); 126 128 127 129 } … … 157 159 158 160 bool hit = false; 161 162 PRINTF(0)("groups: %d %d %d %d\n", this->getOMListNumber(), this->aimingSystem->getOMListNumber(), OM_GROUP_01, OM_GROUP_00); 159 163 160 164 if ( target == NULL ) … … 170 174 hit = true; 171 175 printf( "HIT %s\n", target->getClassName().c_str() ); 176 target->hit( this->damage, this ); 172 177 } 173 178 else … … 178 183 } 179 184 180 if ( !hit ) 181 { 182 //Vector explosionPos = this->getAbsCoor() + this->getAbsDir().apply( Vector( 1, 0, 0 ) )*shortestDist; 183 184 //TODO create explosion at explosionPos 185 } 185 186 186 187 187 … … 196 196 (*it)->draw(); 197 197 } 198 #if 0198 #if 1 199 199 glMatrixMode(GL_MODELVIEW); 200 200 glPushMatrix(); -
branches/presentation/src/world_entities/weapons/bsp_weapon.h
r10698 r10704 51 51 ObjectListDeclaration(BspWeapon); 52 52 public: 53 BspWeapon ( );53 BspWeapon ( OM_LIST list ); 54 54 BspWeapon (const TiXmlElement* root); 55 55 virtual ~BspWeapon(); 56 56 57 void init( );57 void init( OM_LIST list ); 58 58 void loadParams(const TiXmlElement* root); 59 void fire(bool fire){ bFire = fire; }59 void fire(bool fire){ this->bFire = fire; } 60 60 virtual void tick(float dt); 61 61 virtual void draw() const; 62 62 63 63 void setAlwaysHits( bool r ){ this->alwaysHits = r; } 64 void setDamage( float d ){ this->damage = d; } 64 65 private: 65 66 … … 68 69 void setRange( float r ){ this->range = r; } 69 70 float damage; 70 void setDamage( float d ){ this->damage = d; }71 71 float fireRate; 72 72 void setFireRate( float r ){ this->fireRate = r; } 73 73 bool alwaysHits; 74 void setAlwaysHits( bool r ){ this->alwaysHits = r; }75 74 void addPoint(float x, float y, float z); 76 75 -
branches/presentation/src/world_entities/weapons/fps_sniper_rifle.cc
r10317 r10704 27 27 #include "weapon_manager.h" 28 28 #include "util/loading/factory.h" 29 #include "debug.h" 29 30 30 31 … … 48 49 creates a new weapon 49 50 */ 50 FPSSniperRifle::FPSSniperRifle ( int leftRight )51 FPSSniperRifle::FPSSniperRifle ( int leftRight, OM_LIST list) 51 52 : Weapon() 52 53 { 53 this->init( );54 this->init(list); 54 55 55 56 this->leftRight = leftRight; … … 59 60 FPSSniperRifle::FPSSniperRifle(const TiXmlElement* root) 60 61 { 61 this->init( );62 this->init( OM_GROUP_01 ); 62 63 63 64 if (root != NULL) … … 76 77 77 78 78 void FPSSniperRifle::init( )79 void FPSSniperRifle::init(OM_LIST list) 79 80 { 80 81 this->registerObject(this, FPSSniperRifle::_objectList); … … 95 96 //this->minCharge = 2; 96 97 97 this->setActionSound(WA_SHOOT, "sounds/laser.wav");98 this->setActionSound(WA_ACTIVATE, "sounds/voices/lasers.wav");98 //this->setActionSound(WA_SHOOT, "sounds/laser.wav"); 99 //this->setActionSound(WA_ACTIVATE, "sounds/voices/lasers.wav"); 99 100 100 101 101 102 this->setCapability(WTYPE_ALLDIRS | WTYPE_DIRECTIONAL); 102 this->setProjectileTypeC("Laser"); 103 this->prepareProjectiles(20); 104 103 //this->setProjectileTypeC("Laser"); 104 //this->prepareProjectiles(20); 105 this->toList( list ); 106 this->weapon = new BspWeapon( this->getOMListNumber() ); 107 this->weapon->setAlwaysHits( true ); 108 this->weapon->setDamage( 35 ); 109 this->weapon->setParent( this ); 110 this->weapon->toList( list ); 111 112 this->bFire = false; 105 113 } 106 114 … … 145 153 void FPSSniperRifle::fire() 146 154 { 147 Projectile* pj = this->getProjectile(); 148 if (pj == NULL) 149 return; 150 151 // Explosion::explode(this, Vector(0.1,0.1,0.1)); 152 153 pj->setParent(this); 154 pj->setParentMode(PNODE_ROTATE_AND_MOVE); 155 156 pj->setVelocity(this->getAbsDir().apply(Vector(1,0,0))*550 + VECTOR_RAND(5) ); 157 158 pj->setAbsCoor(this->getEmissionPoint() + this->getAbsDirX() * 25.0f); 159 pj->setAbsDir(this->getAbsDir()); 160 pj->activate(); 155 PRINTF(0)("sniper fire\n"); 156 this->bFire = true; 161 157 } 162 158 … … 190 186 } 191 187 192 193 188 void FPSSniperRifle::tick( float dt ) 189 { 190 Weapon::tick( dt ); 191 this->weapon->fire( bFire ); 192 193 if ( bFire ){ 194 PRINTF(0)("REAL FIRE\n"); 195 } 196 bFire = false; 197 } 198 199 200 -
branches/presentation/src/world_entities/weapons/fps_sniper_rifle.h
r9869 r10704 25 25 26 26 #include "weapon.h" 27 #include "bsp_weapon.h" 27 28 28 29 … … 42 43 43 44 public: 44 FPSSniperRifle (int leftRight );45 FPSSniperRifle (int leftRight, OM_LIST list); 45 46 FPSSniperRifle (const TiXmlElement* root); 46 47 virtual ~FPSSniperRifle (); 47 48 48 void init( );49 void init(OM_LIST list); 49 50 virtual void loadParams(const TiXmlElement* root); 50 51 … … 55 56 56 57 virtual void draw() const; 58 virtual void tick( float dt ); 57 59 58 60 … … 61 63 int leftRight; //!< this will become an enum 62 64 Material* material; //!< material 65 66 BspWeapon* weapon; 67 bool bFire; 63 68 64 69 }; -
branches/presentation/src/world_entities/world_entity.cc
r10698 r10704 983 983 this->decreaseHealth(damage); 984 984 985 PRINTF( 5)("Hit me: %s::%s now only %f/%f health\n", this->getClassCName(), this->getCName(), this->getHealth(), this->getHealthMax());985 PRINTF(0)("Hit me: %s::%s now only %f/%f health\n", this->getClassCName(), this->getCName(), this->getHealth(), this->getHealthMax()); 986 986 987 987 if( this->getHealth() > 0)
Note: See TracChangeset
for help on using the changeset viewer.