src/Weapon.cc
author terom
Mon, 08 Dec 2008 22:28:51 +0000
changeset 319 9f6a838d58c4
parent 305 56799ec8d7be
child 338 fe2b3c6fff54
permissions -rw-r--r--
improve input handling further, ROPE_THROW and DIG don't repeat at all now
212
4389c1e6b9b8 Weapon.cc&hh
nireco
parents:
diff changeset
     1
#include "Weapon.hh"
4389c1e6b9b8 Weapon.cc&hh
nireco
parents:
diff changeset
     2
305
56799ec8d7be Weapon damage and some other stuff
ekku
parents: 282
diff changeset
     3
Weapon::Weapon(WeaponID id, TickCount expire, float velocity, float recoil, int damage, float explosionRadius, float radius,
279
e36f5e1a1c8d let projectiles bounce, the new BounceBounce weapon puts the Physics engine into an infinite loop
terom
parents: 271
diff changeset
     4
        TimeMS reloadTime, std::string name, float bounce) : 
282
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
     5
    id(id), 
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
     6
    name(name), 
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
     7
    velocity(velocity), 
305
56799ec8d7be Weapon damage and some other stuff
ekku
parents: 282
diff changeset
     8
    damage(damage),
282
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
     9
    explosionRadius(explosionRadius), 
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
    10
    radius(radius),
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
    11
    reloadTime(reloadTime), 
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
    12
    recoil(recoil), 
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
    13
    expire(expire), 
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
    14
    reloadTimer(0), 
e0e4dfc3e528 compiles cleanly with -Wall -Wextra -Wconversion, not tested, but that shouldn't break anything :)
terom
parents: 279
diff changeset
    15
    bounce(bounce)
221
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    16
{
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    17
212
4389c1e6b9b8 Weapon.cc&hh
nireco
parents:
diff changeset
    18
}
4389c1e6b9b8 Weapon.cc&hh
nireco
parents:
diff changeset
    19
221
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    20
void Weapon::tickReload (TimeMS dt) {
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    21
    reloadTimer -= dt;
271
bf6784a95b08 touch up weapon/projectile with comments and slight tweaking
terom
parents: 263
diff changeset
    22
221
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    23
    if (reloadTimer < 0)
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    24
        reloadTimer = 0;
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    25
}
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    26
271
bf6784a95b08 touch up weapon/projectile with comments and slight tweaking
terom
parents: 263
diff changeset
    27
bool Weapon::canShoot() const {
221
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    28
    return (reloadTimer == 0);
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    29
}
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    30
223
2fcaf54ed37b basic network-projectiles
terom
parents: 221
diff changeset
    31
void Weapon::reload (void) {
221
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    32
    // set the reload timer
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    33
    reloadTimer = reloadTime;
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    34
}
fbc5db6fce45 reorganize the weapons code and input handling code
terom
parents: 212
diff changeset
    35