src/Weapons.cc
author Tero Marttila <terom@fixme.fi>
Tue, 27 Jan 2009 00:25:58 +0200
changeset 439 9823e6cd1086
parent 338 fe2b3c6fff54
permissions -rw-r--r--
some README text

#include "Weapons.hh"

static struct WeaponParams {
    TickCount age;
    float speed;
    float recoil;
    int damage;
    float explosionRadius;
    float radius;
    TickCount reloadTime;
    float bounce;
    float mass;
    std::string name;
} WEAPON_PARAMS[] = {
    /*  age     speed           recoil         damage   expRadius   radius  reloadTime      bounce  mass    name        */
    {   10000,  5 * 80 + 50,    0 * 5 + 10000, 1,       0 * 6 + 5,   1,      0 * 100 + 50,   0.00,  10.0,   "Weapon 1"      },
    {   10000,  4 * 80 + 50,    2 * 5 + 5,     2,       1 * 6 + 5,   2,      1 * 100 + 50,   0.00,  10.0,   "Weapon 2"      },
    {   10000,  3 * 80 + 50,    3 * 5 + 5,     3,       2 * 6 + 5,   3,      2 * 100 + 50,   0.00,  10.0,   "Weapon 3"      },
    {   10000,  2 * 80 + 50,    4 * 5 + 5,     5,       3 * 6 + 5,   4,      3 * 100 + 50,   0.00,  10.0,   "Weapon 4"      },
    {   10000,  1 * 80 + 50,    5 * 5 + 5,     8,       4 * 6 + 5,   5,      4 * 100 + 50,   0.00,  10.0,   "Weapon 5"      },
    {   1000,   600,            999000,        13,      100,         10,     1000,           1.05,  10.0,   "BounceBounce"  },
    {   1000,   400,            100000,        0,       250,         10,     1200,           0.00,  10.0,   "DigDig"        },
    {   0,      0,              0,             0,       0,           0,      0,              0.00,  10.0,   ""              }
};

std::vector<Weapon*> buildWeaponsList (void) {
    std::vector<Weapon*> weapons;
    int idx = 0;

    for (WeaponParams *wp = WEAPON_PARAMS; 
         wp->age || wp->speed || wp->recoil || wp->damage || wp->explosionRadius || wp->radius || wp->bounce || wp->reloadTime; 
         wp++, idx++
    ) {
        weapons.push_back(new Weapon(idx, 
            wp->age, wp->speed, wp->recoil, wp->damage, wp->explosionRadius, wp->radius, 
            wp->reloadTime, wp->name, wp->bounce, wp->mass
        ));
    }

    return weapons;
}