Esempio n. 1
0
void spawnstate(dynent *d)              // reset player state not persistent accross spawns
{
    resetmovement(d);
    d->vel.x = d->vel.y = d->vel.z = 0; 
    d->onfloor = false;
    d->timeinair = 0;
    d->health = 100;
    d->armour = 50;
    d->armourtype = A_BLUE;
    d->quadmillis = 0;
    d->lastattackgun = d->gunselect = GUN_SG;
    d->gunwait = 0;
    d->attacking = false;
    d->lastaction = 0;
    loopi(NUMGUNS) d->ammo[i] = 0;
    d->ammo[GUN_FIST] = 1;
    if(m_noitems)
    {
        d->gunselect = GUN_RIFLE;
        d->armour = 0;
        if(m_noitemsrail)
        {
            d->health = 1;
            d->ammo[GUN_RIFLE] = 100;
        }
        else
        {
            if(gamemode==12) { d->gunselect = GUN_FIST; return; };  // eihrul's secret "instafist" mode
            d->health = 256;
            if(m_tarena)
            {
                int gun1 = rnd(4)+1;
                baseammo(d->gunselect = gun1);
                for(;;)
                {
                    int gun2 = rnd(4)+1;
                    if(gun1!=gun2) { baseammo(gun2); break; };
                };
            }
            else if(m_arena)    // insta arena
            {
                d->ammo[GUN_RIFLE] = 100;
            }
            else // efficiency
            {
                loopi(4) baseammo(i+1);
                d->gunselect = GUN_CG;
            };
            d->ammo[GUN_CG] /= 2;
        };
    }
    else
    {
        d->ammo[GUN_SG] = 5;
    };
};
Esempio n. 2
0
// reset player state not persistent accross spawns
static void spawnstate(dynent *d) {
  resetmovement(d);
  d->vel = zero;
  d->onfloor = false;
  d->timeinair = 0;
  d->health = 100;
  d->armour = 50;
  d->armourtype = A_BLUE;
  d->quadmillis = 0;
  d->lastattackgun = d->gunselect = GUN_SG;
  d->gunwait = 0;
  d->attacking = false;
  d->lastaction = 0;
  loopi(NUMGUNS) d->ammo[i] = 0;
  d->ammo[GUN_FIST] = 1;
  if (m_noitems) {
    d->gunselect = GUN_RIFLE;
    d->armour = 0;
    if (m_noitemsrail) {
      d->health = 1;
      d->ammo[GUN_RIFLE] = 100;
    } else {
      if (mode()==12) {
        d->gunselect = GUN_FIST;
        return;
      }  // eihrul's secret "instafist" mode
      d->health = 256;
      if (m_tarena) {
        int gun1 = rnd(4)+1;
        baseammo(d->gunselect = gun1);
        for (;;) {
          int gun2 = rnd(4)+1;
          if (gun1!=gun2) {
            baseammo(gun2);
            break;
          }
        }
      } else if (m_arena)    // insta arena
        d->ammo[GUN_RIFLE] = 100;
      else {
        loopi(4) baseammo(i+1);
        d->gunselect = GUN_CG;
      }
      d->ammo[GUN_CG] /= 2;
    }
  } else
    d->ammo[GUN_SG] = 5;
}
Esempio n. 3
0
 /// configure spawn settings (weapons, ammo, health...) depending on game mode
 void spawnstate(int gamemode)
 {
     if(m_demo)
     {
         gunselect = GUN_FIST;
         backupweapon = GUN_FIST;
     } else if(m_insta)
     {
         armour = 0;
         health = 1;
         gunselect = GUN_RIFLE;
         ammo[GUN_RIFLE] = 100;
         backupweapon = GUN_FIST;
     } else if(m_regencapture)
     {
         armourtype = A_BLUE;
         armour = 25;
         gunselect = GUN_PISTOL;
         ammo[GUN_PISTOL] = 40;
         ammo[GUN_GL] = 1;
         backupweapon = GUN_FIST;
     } else if(m_tactics)
     {
         armourtype = A_GREEN;
         armour = 100;
         ammo[GUN_PISTOL] = 40;
         backupweapon = GUN_FIST;
         int spawngun1 = inexor::util::random::rnd(5)+1, spawngun2;
         gunselect = spawngun1;
         baseammo(spawngun1, m_noitems ? 2 : 1);
         do spawngun2 = inexor::util::random::rnd(5)+1; while(spawngun1==spawngun2);
         baseammo(spawngun2, m_noitems ? 2 : 1);
         if(m_noitems) ammo[GUN_GL] += 1;
     } else if(m_efficiency)
     {
         armourtype = A_GREEN;
         armour = 100;
         loopi(5) baseammo(i+1);
         gunselect = GUN_CG;
         ammo[GUN_CG] /= 2;
         backupweapon = GUN_FIST;
     } else if(m_ctf || m_collect)
     {
         armourtype = A_BLUE;
         armour = 50;
         ammo[GUN_PISTOL] = 40;
         ammo[GUN_GL] = 1;
         backupweapon = GUN_FIST;
     } else if(m_bomb)
     {
         health = 1;
         armourtype = A_GREEN;
         armour = 0;
         gunselect = GUN_BOMB;
         backupweapon = GUN_BOMB;
     } else if(m_hideandseek)
     {
         health = 100;
         armour = 0;
         gunselect = GUN_RL;
         ammo[GUN_RL] = 10;
         ammo[GUN_PISTOL] = 0;
         ammo[GUN_GL] = 0;
         backupweapon = GUN_FIST;
     } else
     {
         armourtype = A_BLUE;
         armour = 25;
         ammo[GUN_PISTOL] = 40;
         ammo[GUN_GL] = 1;
         backupweapon = GUN_FIST;
     }
 }