btmux/autom4te.cache/
btmux/doc/.svn/
btmux/event/.svn/
btmux/game/.svn/
btmux/game/bin/.svn/
btmux/game/data/.svn/
btmux/game/logs/.svn/
btmux/game/maps/
btmux/game/maps/.svn/
btmux/game/maps/.svn/prop-base/
btmux/game/maps/.svn/props/
btmux/game/maps/.svn/text-base/
btmux/game/maps/.svn/wcprops/
btmux/game/mechs/
btmux/game/mechs/.svn/
btmux/game/mechs/.svn/prop-base/
btmux/game/mechs/.svn/props/
btmux/game/mechs/.svn/text-base/
btmux/game/mechs/.svn/wcprops/
btmux/game/text/.svn/
btmux/include/.svn/
btmux/misc/
btmux/misc/.svn/
btmux/misc/.svn/prop-base/
btmux/misc/.svn/props/
btmux/misc/.svn/text-base/
btmux/misc/.svn/wcprops/
btmux/python/
btmux/python/.svn/
btmux/python/.svn/prop-base/
btmux/python/.svn/props/
btmux/python/.svn/text-base/
btmux/python/.svn/wcprops/
btmux/src/.svn/prop-base/
btmux/src/.svn/props/
btmux/src/.svn/text-base/
btmux/src/.svn/wcprops/
btmux/src/hcode/.svn/
btmux/src/hcode/btech/
btmux/src/hcode/btech/.svn/
btmux/src/hcode/btech/.svn/prop-base/
btmux/src/hcode/btech/.svn/props/
btmux/src/hcode/btech/.svn/text-base/
btmux/src/hcode/btech/.svn/wcprops/
btmux/src/hcode/include/.svn/
/*
 * $Id: scen.h,v 1.1.1.1 2005/01/11 21:18:32 kstevens Exp $
 *
 * Author: Markus Stenberg <fingon@iki.fi>
 *
 *  Copyright (c) 1997 Markus Stenberg
 *  Copyright (c) 1998-2002 Thomas Wouters
 *  Copyright (c) 2000-2002 Cord Awtry
 *       All rights reserved
 *
 * Created: Sun Oct 19 19:42:37 1997 fingon
 * Last modified: Tue Apr 28 21:48:19 1998 fingon
 *
 */

#ifndef SCEN_H
#define SCEN_H

ECMD(scen_start);
ECMD(scen_end);
ECMD(scen_status);

typedef struct {
    dbref mynum;
    int state;			/* 0 : Not started, 1: Started, 2: Ended */
    time_t start_t;
    time_t end_t;
} SCEN;

typedef struct {
    dbref mynum;
    char slet[10];		/* Side letters, if any, identifying mechs in this side */
} SSIDE;

typedef struct {
    dbref mynum;
    int state;
} SSOBJ;

typedef struct {
    dbref mynum;
} SSINS;

typedef struct {
    dbref mynum;
} SSEXT;

void scen_trigger_mine(MAP * map, MECH * mech, int x, int y);

void scen_see_base(MAP * map, MECH * mech, mapobj * o);
void scen_damage_base(MAP * map, MECH * mech, mapobj * o);
void scen_destroy_base(MAP * map, MECH * mech, mapobj * o);
MAP *scen_map(SCEN * s);


#define LOOP_THRU_SIDES(side,scen,i) \
  DOLIST(i,  Contents(scen->mynum)) \
    if (Hardcode(i)) \
      if (WhichSpecial(i) == GTYPE_SSIDE) \
	if ((side = (SSIDE *) FindObjectsData(i)))

#define LOOP_THRU_OBJECTIVES(ob,side,i) \
  DOLIST(i,  Contents(side->mynum)) \
    if (Hardcode(i)) \
      if (WhichSpecial(i) == GTYPE_SSOBJ) \
	if ((ob = (SSOBJ *) FindObjectsData(i)))

#define LOOP_THRU_INSERTIONS(ob,side,i) \
  DOLIST(i,  Contents(side->mynum)) \
    if (Hardcode(i)) \
      if (WhichSpecial(i) == GTYPE_SSINS) \
	if ((ob = (SSINS *) FindObjectsData(i)))

#define LOOP_THRU_EXTRACTIONS(ob,side,i) \
  DOLIST(i,  Contents(side->mynum)) \
    if (Hardcode(i)) \
      if (WhichSpecial(i) == GTYPE_SSEXT) \
	if ((ob = (SSEXT *) FindObjectsData(i)))

#define LOOP_MAP_MECHS(mech,map,i) \
  for (i = 0 ; i < map->first_free ; i++) \
    if ((mech = FindObjectsData(map->mechsOnMap[i])))

#define LOOP_DS_BAYS(d, mech, i) \
  for (i = 0 ; i < NUM_BAYS ; i++) \
    if ((d = AeroBay(mech, i)) > 0) \
      if (Hardcode(d)) \
        if (WhichSpecial(d) == GTYPE_MAP)

#define LOOP_MAP_MAPLINKS(map, o) \
  for (o = first_mapobj(map, TYPE_BUILD) ; o ; o = next_mapobj(o))

#define LOOP_MAP_MAPLINKS_REF(ob,map, o) \
  LOOP_MAP_MAPLINKS(map,o) \
    if ((ob = o->obj) > 0) \
      if (Hardcode(ob)) \
	if (WhichSpecial(ob) == GTYPE_MAP)

#define scen_mech_in_side(m,s) \
(!s->slet[0] || !strncmp(s->slet, silly_atr_get(m->mynum, A_MECHNAME), strlen(s->slet)))




#endif				/* SCEN_H */