/*-------------------------------------------------------------------------*\
  <gem.C> -- Fanwor dynamically linked library - Gem

  Date      Programmer  Description
  09/25/00  Dennis      Created.
\*-------------------------------------------------------------------------*/

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  Includes
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
#include "troll.h"
#include "dllconst.h"
#include "gem.h"

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::createGem1 - Creates gem 1.

    Parameters:
      scr          (In)  Screen the gem is on
      x            (In)  X location
      y            (In)  Y location
      secrt        (In)  Secret number to set when dead

    Returns: Gem 1
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
TrollThing *TrollGem::createGem1(TrollScreen *scr, IShort x,
  IShort y, IUShort secrt = 0)
{
 return new TrollGem(scr, x, y, secrt, TROLL_SPRITE_GEM1);
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::createGem2 - Creates gem 2.

    Parameters:
      scr          (In)  Screen the gem is on
      x            (In)  X location
      y            (In)  Y location
      secrt        (In)  Secret number to set when dead

    Returns: Gem 2
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
TrollThing *TrollGem::createGem2(TrollScreen *scr, IShort x,
  IShort y, IUShort secrt = 0)
{
 return new TrollGem(scr, x, y, secrt, TROLL_SPRITE_GEM2);
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::createGem3 - Creates gem 3.

    Parameters:
      scr          (In)  Screen the gem is on
      x            (In)  X location
      y            (In)  Y location
      secrt        (In)  Secret number to set when dead

    Returns: Gem 3
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
TrollThing *TrollGem::createGem3(TrollScreen *scr, IShort x,
  IShort y, IUShort secrt = 0)
{
 return new TrollGem(scr, x, y, secrt, TROLL_SPRITE_GEM3);
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::createGem4 - Creates gem 4.

    Parameters:
      scr          (In)  Screen the gem is on
      x            (In)  X location
      y            (In)  Y location
      secrt        (In)  Secret number to set when dead

    Returns: Gem 4
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
TrollThing *TrollGem::createGem4(TrollScreen *scr, IShort x,
  IShort y, IUShort secrt = 0)
{
 return new TrollGem(scr, x, y, secrt, TROLL_SPRITE_GEM4);
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::createGem5 - Creates gem 5.

    Parameters:
      scr          (In)  Screen the gem is on
      x            (In)  X location
      y            (In)  Y location
      secrt        (In)  Secret number to set when dead

    Returns: Gem 5
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
TrollThing *TrollGem::createGem5(TrollScreen *scr, IShort x,
  IShort y, IUShort secrt = 0)
{
 return new TrollGem(scr, x, y, secrt, TROLL_SPRITE_GEM5);
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::createGem6 - Creates gem 6.

    Parameters:
      scr          (In)  Screen the gem is on
      x            (In)  X location
      y            (In)  Y location
      secrt        (In)  Secret number to set when dead

    Returns: Gem 6
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
TrollThing *TrollGem::createGem6(TrollScreen *scr, IShort x,
  IShort y, IUShort secrt = 0)
{
 return new TrollGem(scr, x, y, secrt, TROLL_SPRITE_GEM6);
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::createGem7 - Creates gem 7.

    Parameters:
      scr          (In)  Screen the gem is on
      x            (In)  X location
      y            (In)  Y location
      secrt        (In)  Secret number to set when dead

    Returns: Gem 7
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
TrollThing *TrollGem::createGem7(TrollScreen *scr, IShort x,
  IShort y, IUShort secrt = 0)
{
 return new TrollGem(scr, x, y, secrt, TROLL_SPRITE_GEM7);
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::createGem8 - Creates gem 8.

    Parameters:
      scr          (In)  Screen the gem is on
      x            (In)  X location
      y            (In)  Y location
      secrt        (In)  Secret number to set when dead

    Returns: Gem 8
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
TrollThing *TrollGem::createGem8(TrollScreen *scr, IShort x,
  IShort y, IUShort secrt = 0)
{
 return new TrollGem(scr, x, y, secrt, TROLL_SPRITE_GEM8);
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::pickUp - Gives the item to the character.

    Parameters:
      troll        (In)  Character to get the item
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void TrollGem::pickUp(TrollCharacter *troll)
{
 if (checkPickUp(troll))
 {
  dead = 1;
 }
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
  TrollGem::TrollGem - Constructor for the gems.

    Parameters:
      scr          (In)  Screen the activatible item is on
      xStart       (In)  X location
      yStart       (In)  Y location
      secrt        (In)  Secret number to set when dead
      spr          (In)  Sprite
\* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
TrollGem::TrollGem(TrollScreen *scr, IShort xStart, IShort yStart,
  IUShort secrt, IUShort spr)
  :TrollItem(scr, xStart, yStart, secrt, 0)
{
 sprite = spr;
 shift = 0;
 facing = 0;
 frame = 0;
}

