Code Search for Developers
 
 
  

entity.h from FreePop at Krugle


Show entity.h syntax highlighted

/***************************************************************************
                          entity.h  -  description
                             -------------------
    begin                : Thu Nov 14 2002
    copyright            : (C) 2002 by Brendon Higgins
    email                : freepop-devel@lists.sourceforge.net
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef ENTITY_H_INCLUDED
#define ENTITY_H_INCLUDED

#include <string>

/**
 * An entity is something in the world, some non-maptile world object.
 * Rock, tree, peep, etc. This namespace has some common constants for
 * entities.
 */
namespace Entity {
    /**
     * Net messages.
     */
    namespace Message {
        /**
         * The first int32 of a CREATE packet must be the identifier for the type
         * of entity. The rest is the same as for FULL_UPDATE.
         * \see FULL_UPDATE
         */
        extern const int CREATE;
        
        /**
         * Reserved for complete update message for an entity.
         */
        extern const int FULL_UPDATE;
        
        /**
         * Instantly kill and remove an entity from the world. An int enum reason
         * follows.
         */
        extern const int DESTROY;
        
        /**
         * The next integer that can be used by derived class's message type.
         * This is the number after those reserved for primitive entity messages.
         * You can use this number and any higher numbers for your own derived
         * messages. This is a function to make sure no order-of-static-construction
         * issues arise.
         */
        int getNext();
    }
    
    /**
     * Reasons for destruction.
     */
    namespace Destroy {
        /**
         * No reason given for destruction. The gods are mysterious...
         */
        extern const int NO_REASON;
        
        /**
         * The player, and all his/her entities are being removed.
         */
        extern const int PLAYER_REMOVE;

        /**
         * Entity is being removed since something with a "NONE" occupation
         * priority needs this spot.
         * \see EntityServer
         */
        extern const int REOCCUPY_NONE;

        /**
         * Entity is being removed since something with a "TREE" occupation
         * priority needs this spot.
         * \see EntityServer
         */
        extern const int REOCCUPY_TREE;

        /**
         * Entity is being removed since something with a "TOWN" occupation
         * priority needs this spot.
         * \see EntityServer
         */
        extern const int REOCCUPY_TOWN;

        /**
         * Entity is being removed since something with a "SWAMP" occupation
         * priority needs this spot.
         * \see EntityServer
         */
        extern const int REOCCUPY_SWAMP;

        /**
         * Entity is being removed since something with a "ROCK" occupation
         * priority needs this spot.
         * \see EntityServer
         */
        extern const int REOCCUPY_ROCK;

        /**
         * Entity is being removed since something with a "QUAKE" occupation
         * priority needs this spot.
         * \see EntityServer
         */
        extern const int REOCCUPY_QUAKE;

        /**
         * Entity is being removed since something with a "MAX" occupation
         * priority needs this spot.
         * \see EntityServer
         */
        extern const int REOCCUPY_MAX;
        
        /**
         * The next integer that can be used by derived class's destroy reason.
         * This is the number after those reserved for primitive entity reasons.
         * You can use this number and any higher numbers for your own derived
         * reasons. This is a function to make sure no order-of-static-construction
         * issues arise.
         */
        int getNext();
    }
    
    /**
     * Reasons for creation.
     */
    namespace Create {
        /**
         * No reason given for creation. The gods are mysterious...
         * This can be used pretty freely as a default creation reason.
         * Moreso than Destroy::NO_REASON, at least.
         */
        extern const int NO_REASON;
        
        /**
         * The player has just arrived and is receiving the gamestate.
         */
        extern const int PLAYER_START;

        /**
         * The player has requested via an Admin message that it be introduced
         * to this entity.
         */
        extern const int PLAYER_REQUEST;
        
        /**
         * The next integer that can be used by derived class's create reason.
         * This is the number after those reserved for primitive entity reasons.
         * You can use this number and any higher numbers for your own derived
         * reasons. This is a function to make sure no order-of-static-construction
         * issues arise.
         */
        int getNext();
    }
}

#endif /* ndef ENTITY_H_INCLUDED */




See more files for this project here

FreePop

FreePop is a multi-platform tile-based game based on the great old game Populous 2 by Bullfrog Productions Ltd., but much improved.

Project homepage: http://sourceforge.net/projects/freepop
Programming language(s): C++
License: other

  client/
    Makefile.am
    client.cpp
    client.h
    clientmisc.cpp
    clientmisc.h
    clientstate.cpp
    clientstate.h
    connectstate.cpp
    connectstate.h
    cropsclient.cpp
    cropsclient.h
    entityclient.cpp
    entityclient.h
    entityclientfactory.cpp
    entityclientfactory.h
    firecolumnclient.cpp
    firecolumnclient.h
    gamestate.cpp
    gamestate.h
    loadstate.cpp
    loadstate.h
    mapclient.cpp
    mapclient.h
    maptileclient.cpp
    maptileclient.h
    messagebox.cpp
    messagebox.h
    oversprite.cpp
    oversprite.h
    paintable.cpp
    paintable.h
    pausefader.cpp
    pausefader.h
    peepclient.cpp
    peepclient.h
    peepmagnetclient.cpp
    peepmagnetclient.h
    playerclient.cpp
    playerclient.h
    playeroptionsdialog.cpp
    playeroptionsdialog.h
    rockclient.cpp
    rockclient.h
    swampclient.cpp
    swampclient.h
    townclient.cpp
    townclient.h
    treeclient.cpp
    treeclient.h
    worldclient.cpp
    worldclient.h
  server/
    Makefile.am
    contagion.cpp
    contagion.h
  Makefile.am
  common.cpp
  common.h
  corner.cpp
  corner.h
  crops.cpp
  crops.h
  entity.cpp
  entity.h
  entityfactory.cpp
  entityfactory.h
  firecolumn.cpp
  firecolumn.h
  gridmap.h
  identity.cpp
  identity.h
  map.cpp
  map.h
  mappos.cpp
  mappos.h
  maptile.cpp
  maptile.h
  maptilepos.cpp
  maptilepos.h
  misc.h
  peep.cpp
  peep.h
  peepmagnet.cpp
  peepmagnet.h
  player.cpp
  player.h
  rock.cpp
  rock.h
  rotation.cpp
  rotation.h
  rules.cpp
  rules.h
  slope.cpp
  slope.h
  swamp.cpp
  swamp.h
  tempo.cpp
  tempo.h
  town.cpp
  town.h
  tree.cpp
  tree.h
  worldpos.cpp
  worldpos.h