/* 
 * XEvil(TM) Copyright (C) 1994,2000 Steve Hardt and Michael Judge
 * http://www.xevil.com
 * satan@xevil.com
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or (at
 * your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program, the file "gpl.txt"; if not, write to the Free
 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA, or visit http://www.gnu.org.
 */

// For CrackPipe and Crack.

#if X11
#include "gen_xpm/crack_pipe/crack_pipe_4.xpm"
#endif



#define CRACK_TIME 500



Size CrackPipe::get_size_max() {
  return context.autoUseContext.itemContext.fallingContext.movingContext.sizes[CO_air];
}  



PhysicalP CrackPipe::create(void *,WorldP w,LocatorP l,const Pos &pos) {
  PhysicalP ret = new CrackPipe(w,l,pos);
  assert(ret);
  return ret;
}



static void crack_pipe_get_item_info(Boolean &isItem,Boolean &isWeapon,
                                     CMN_BITS_ID &iconId) {
  isItem = True;
  isWeapon = False;
#if WIN32
  iconId = IDB_CRACKPIPE;
#endif
#if X11
  iconId = 0;
#endif
}



DrugsXdata CrackPipe::xdata;



const DrugsContext CrackPipe::context = 
{ /** DrugsContext **/
  10, /* odChance */
  
  { /** AutoUseContext **/
    False, /* humansOnly */
    
    { /** ItemContext **/
      True, /* persists */
      6000, /* coolness */
      0,
      { /** FallingContext **/
        {/** MovingContext **/
#if X11
          "gray40",False,
	      "white",True,
#endif
#if WIN32	      
          RGB(255,0,0)/*"red"*/,True,
	      RGB(255,255,255)/*"white"*/,False,
#endif
	      /* animMax */
	      {0,0,0,0,1},
	      
	      /* sizes */
	      {{0,0},{0,0},{0,0},{0,0},{10,5},},
	      
	      /* offsets */
	      {{0,0},{0,0},{0,0},{0,0},{0,0},},
	      
	      /* pixmapBits */
	      {{0},{0},{0},{0},{CMN_ID(crack_pipe_4,IDB_CRACKPIPE)},},
	      
	      /* maskBits */
          {{0}},

	      { /** PhysicalContext **/
	        5, /* health */
	        2, /* mass */
	        A_CrackPipe, /* classId */
	        "crack-pipe", /* className */

	        False, /* transmogifyTarget */
	        False, /* doppelUser */
	        False, /* potentialHuman */
	        False, /* potentialEnemy */
	        0, /* enemyWeight */
	        False, /* potentialWeapon */
	        True, /* potentialOtherItem */
	        0.0001f, /* objectWorldPercent */
	        2, /* levelMaxTimes */
	        {10,5}, /* sizeMax */
	        CrackPipe::create, /* create */
	        False, /* statsCreations */
	        True, /* statsUses */
	        False, /* statsDeaths */
	        CrackPipe::get_stats, /* get_stats */
            NULL, /* arg */
            CrackPipe::init_x, /* init_x */
            CrackPipe::create_from_stream, /* create_from_stream */
	        crack_pipe_get_item_info, /* get_item_info */
	      },
          True, /* hiRes */
          0, /* offsetGenerator */
          0, /* transformOverride */
          True, /* useXPM */
        },
      },
    },
  }
};
