}
void GiveRandomWeapons(entity receiver, int num_weapons, string weapon_names,
- float shells, float bullets, float rockets, float cells, float plasma)
+ entity ammo_entity)
{
if (num_weapons == 0)
{
{
continue;
}
- switch (RandomSelection_chosen_ent.ammo_type)
- {
- case (RESOURCE_SHELLS):
- {
- GiveResource(receiver, RESOURCE_SHELLS, shells);
- break;
- }
- case (RESOURCE_BULLETS):
- {
- GiveResource(receiver, RESOURCE_BULLETS, bullets);
- break;
- }
- case (RESOURCE_ROCKETS):
- {
- GiveResource(receiver, RESOURCE_ROCKETS, rockets);
- break;
- }
- case (RESOURCE_CELLS):
- {
- GiveResource(receiver, RESOURCE_CELLS, cells);
- break;
- }
- case (RESOURCE_PLASMA):
- {
- GiveResource(receiver, RESOURCE_PLASMA, plasma);
- break;
- }
- }
+ GiveResource(receiver, RandomSelection_chosen_ent.ammo_type,
+ GetResourceAmount(ammo_entity,
+ RandomSelection_chosen_ent.ammo_type));
}
}
/// \param[in,out] receiver Entity to give weapons to.
/// \param[in] num_weapons Number of weapons to give.
/// \param[in] weapon_names Names of weapons to give separated by spaces.
-/// \param[in] shells Amount of shells to give with shell-based weapon.
-/// \param[in] bullets Amount of bullets to give with bullet-based weapon.
-/// \param[in] rockets Amount of rockets to give with rocket-based weapon.
-/// \param[in] cells Amount of cells to give with cell-based weapon.
-/// \param[in] plasma Amount of plasma to give with plasma-based weapon.
+/// \param[in] ammo Entity containing the ammo amount for each possible weapon.
/// \return No return.
void GiveRandomWeapons(entity receiver, int num_weapons, string weapon_names,
- float shells, float bullets, float rockets, float cells, float plasma);
+ entity ammo_entity);
float Item_GiveAmmoTo(entity item, entity player, int resource_type, float ammomax);
this.armorvalue = start_armorvalue;
this.weapons = start_weapons;
GiveRandomWeapons(this, random_start_weapons_count,
- cvar_string("g_random_start_weapons"), random_start_shells,
- random_start_bullets, random_start_rockets, random_start_cells,
- random_start_plasma);
+ cvar_string("g_random_start_weapons"), random_start_ammo);
}
SetSpectatee_status(this, 0);
start_ammo_rockets = 0;
start_ammo_cells = 0;
start_ammo_plasma = 0;
+ if (random_start_ammo == NULL)
+ {
+ random_start_ammo = spawn();
+ }
start_health = cvar("g_balance_health_start");
start_armorvalue = cvar("g_balance_armor_start");
start_ammo_plasma = cvar("g_start_ammo_plasma");
start_ammo_fuel = cvar("g_start_ammo_fuel");
random_start_weapons_count = cvar("g_random_start_weapons_count");
- random_start_shells = cvar("g_random_start_shells");
- random_start_bullets = cvar("g_random_start_bullets");
- random_start_rockets = cvar("g_random_start_rockets");
- random_start_cells = cvar("g_random_start_cells");
- random_start_plasma = cvar("g_random_start_plasma");
+ SetResourceAmount(random_start_ammo, RESOURCE_SHELLS, cvar(
+ "g_random_start_shells"));
+ SetResourceAmount(random_start_ammo, RESOURCE_BULLETS, cvar(
+ "g_random_start_bullets"));
+ SetResourceAmount(random_start_ammo, RESOURCE_ROCKETS,
+ cvar("g_random_start_rockets"));
+ SetResourceAmount(random_start_ammo, RESOURCE_CELLS, cvar(
+ "g_random_start_cells"));
+ SetResourceAmount(random_start_ammo, RESOURCE_PLASMA, cvar(
+ "g_random_start_plasma"));
}
if (warmup_stage)
start_ammo_cells = max(0, start_ammo_cells);
start_ammo_plasma = max(0, start_ammo_plasma);
start_ammo_fuel = max(0, start_ammo_fuel);
- random_start_shells = max(0, random_start_shells);
- random_start_bullets = max(0, random_start_bullets);
- random_start_rockets = max(0, random_start_rockets);
- random_start_cells = max(0, random_start_cells);
- random_start_plasma = max(0, random_start_plasma);
+ SetResourceAmount(random_start_ammo, RESOURCE_SHELLS, max(0,
+ GetResourceAmount(random_start_ammo, RESOURCE_SHELLS)));
+ SetResourceAmount(random_start_ammo, RESOURCE_BULLETS, max(0,
+ GetResourceAmount(random_start_ammo, RESOURCE_BULLETS)));
+ SetResourceAmount(random_start_ammo, RESOURCE_ROCKETS, max(0,
+ GetResourceAmount(random_start_ammo, RESOURCE_ROCKETS)));
+ SetResourceAmount(random_start_ammo, RESOURCE_CELLS, max(0,
+ GetResourceAmount(random_start_ammo, RESOURCE_CELLS)));
+ SetResourceAmount(random_start_ammo, RESOURCE_PLASMA, max(0,
+ GetResourceAmount(random_start_ammo, RESOURCE_PLASMA)));
warmup_start_ammo_shells = max(0, warmup_start_ammo_shells);
warmup_start_ammo_nails = max(0, warmup_start_ammo_nails);
float start_ammo_fuel;
/// \brief Number of random start weapons to give to players.
int random_start_weapons_count;
-/// \brief Amount of shells to give with a shell-based random start weapon.
-float random_start_shells;
-/// \brief Amount of bullets to give with a bullet-based random start weapon.
-float random_start_bullets;
-/// \brief Amount of rockets to give with a rocket-based random start weapon.
-float random_start_rockets;
-/// \brief Amount of cells to give with a cell-based random start weapon.
-float random_start_cells;
-/// \brief Amount of plasma to give with a plasma-based random start weapon.
-float random_start_plasma;
+/// \brief Entity that contains amount of ammo to give with random start
+/// weapons.
+entity random_start_ammo;
float start_health;
float start_armorvalue;
WepSet warmup_start_weapons;