Main Page | Class List | File List | Class Members | File Members

world Class Reference

#include <world.h>

List of all members.

Public Member Functions

 world ()
 ~world ()
void init ()
instruction addInstruction (instructionPtr instrPtr)
bool replaceInstruction (instruction instr, instructionPtr instrPtr)
uInt getNumInstructions ()
void setMaxThreadsPerProcess (uInt n)
uInt getMaxThreadsPerProcess ()
void setEnergyPerUnitMemory (energy e)
energy getEnergyPerUnitMemory ()
void setEnergyPerAbsorb (energy e)
energy getEnergyPerAbsorb ()
void setMaxEnergyPerTile (energy e)
void setMaxCostPerTile (float e)
void setMaxEnergyPerEntity (energy e)
void setMaxMemoryPerEntity (memory m)
void step ()
entityspawnEntity (energy e, memory m, const position &p, const direction &d)
void kill (entityId entId)
entitygetEntity (entityId entId)
entitygetEntityAtPos (const position &p)
void moveEntity (entity &ent)
void rotateEntityLeft (entity &ent)
void rotateEntityRight (entity &ent)
energy transferEnergy (energy amount, energy &a, energy &b)
energy transferEnergy (energy amount, tile &t, entity &ent)
energy transferEnergy (energy amount, entity &entA, entity &entB)
energy transferEnergy (energy amount, entity &ent)
void absorbEnergy (entity &ent)
energy releaseEnergy (energy amount, entity &ent)
void transferMemory (address addr, program &a, program &b)
void transferMemory (address addr, entity &entA, entity &entB)
void giveMemory (entity &ent, address addr)
void takeMemory (entity &ent, address addr)
void convertEnergyToMemory (entity &ent, energy e)
void convertMemoryToEnergy (entity &ent, address addr)
tilegetTileAtPos (const position &p)
position getPosInfrontOfEntity (entity &ent, uInt d)
virtual void draw ()
bool isDead ()

Protected Types

typedef std::vector< tilev_tiles
typedef std::vector< v_tilesvv_tiles

Protected Member Functions

virtual bool canBeExecuted (process &proc)
virtual void kill (process &proc)

Protected Attributes

vv_tiles m_tiles
vector2i m_size
energy m_absorbAmount
energy m_energyPerUnitMemory
energy m_maxEnergyPerTile
float m_maxCostPerTile
energy m_maxEnergyPerEntity
energy m_maxMemoryPerEntity


Member Typedef Documentation

typedef std::vector<tile> world::v_tiles [protected]
 

Definition at line 140 of file world.h.

typedef std::vector<v_tiles> world::vv_tiles [protected]
 

Definition at line 141 of file world.h.


Constructor & Destructor Documentation

world::world  ) 
 

Definition at line 41 of file world.cpp.

world::~world  ) 
 

Definition at line 52 of file world.cpp.

References m_tiles.


Member Function Documentation

void world::absorbEnergy entity ent  ) 
 

Definition at line 329 of file world.cpp.

References absorbEnergy(), energy, getTileAtPos(), m_absorbAmount, tile::m_energy, m_maxEnergyPerTile, entity::m_position, and transferEnergy().

Referenced by absorbEnergy(), and instr_absorbEnergy().

instruction world::addInstruction instructionPtr  instrPtr  ) 
 

Definition at line 88 of file world.cpp.

References addInstruction().

Referenced by addInstruction(), and initWorld().

bool world::canBeExecuted process &  proc  )  [protected, virtual]
 

Definition at line 620 of file world.cpp.

References canBeExecuted(), entity::m_energy, and process2entity.

Referenced by canBeExecuted().

void world::convertEnergyToMemory entity ent,
energy  e
 

Definition at line 485 of file world.cpp.

References convertEnergyToMemory(), entity::m_energy, m_energyPerUnitMemory, m_maxMemoryPerEntity, and memory.

Referenced by convertEnergyToMemory(), and instr_convertEnergyToMemory().

void world::convertMemoryToEnergy entity ent,
address  addr
 

Definition at line 523 of file world.cpp.

References convertMemoryToEnergy(), energy, entity::m_energy, m_energyPerUnitMemory, m_maxEnergyPerEntity, and memory.

Referenced by convertMemoryToEnergy(), and instr_convertMemoryToEnergy().

void world::draw  )  [virtual]
 

Definition at line 580 of file world.cpp.

References drawGrid(), drawRectangle(), colour4f::m_b, colour4f::m_g, m_maxCostPerTile, m_size, and m_tiles.

Referenced by draw().

energy world::getEnergyPerAbsorb  )  [inline]
 

Definition at line 95 of file world.h.

References energy, and m_absorbAmount.

energy world::getEnergyPerUnitMemory  )  [inline]
 

Definition at line 92 of file world.h.

References energy, and m_energyPerUnitMemory.

entity * world::getEntity entityId  entId  ) 
 

Definition at line 158 of file world.cpp.

References getEntity().

Referenced by getEntity().

entity * world::getEntityAtPos const position p  ) 
 

Definition at line 169 of file world.cpp.

References getEntityAtPos(), m_size, and m_tiles.

Referenced by getEntityAtPos(), moveEntity(), and spawnEntity().

uInt world::getMaxThreadsPerProcess  ) 
 

uInt world::getNumInstructions  ) 
 

Definition at line 100 of file world.cpp.

position world::getPosInfrontOfEntity entity ent,
uInt  d
 

Definition at line 568 of file world.cpp.

References getPosInfrontOfEntity(), entity::m_direction, entity::m_position, and position.

Referenced by getPosInfrontOfEntity(), giveMemory(), moveEntity(), takeMemory(), and transferEnergy().

tile * world::getTileAtPos const position p  ) 
 

Definition at line 558 of file world.cpp.

References getTileAtPos(), m_size, and m_tiles.

Referenced by absorbEnergy(), getTileAtPos(), giveMemory(), kill(), moveEntity(), releaseEnergy(), takeMemory(), transferEnergy(), and transferMemory().

void world::giveMemory entity ent,
address  addr
 

Definition at line 448 of file world.cpp.

References getPosInfrontOfEntity(), getTileAtPos(), giveMemory(), entity::m_direction, tile::m_pEntity, position, spawnEntity(), and transferMemory().

Referenced by giveMemory(), and instr_giveMemory().

void world::init  ) 
 

Definition at line 67 of file world.cpp.

References m_maxCostPerTile, m_maxEnergyPerTile, m_size, and m_tiles.

Referenced by initWorld().

bool world::isDead  )  [inline]
 

Definition at line 134 of file world.h.

Referenced by idle().

void world::kill process &  proc  )  [protected, virtual]
 

Definition at line 631 of file world.cpp.

References getTileAtPos(), kill(), entity::m_energy, tile::m_energy, tile::m_pEntity, entity::m_position, and process2entity.

void world::kill entityId  entId  ) 
 

Definition at line 112 of file world.cpp.

References entityId, and kill().

Referenced by kill().

void world::moveEntity entity ent  ) 
 

Definition at line 181 of file world.cpp.

References energy, getEntityAtPos(), getPosInfrontOfEntity(), getTileAtPos(), tile::m_cost, tile::m_pEntity, entity::m_position, m_size, moveEntity(), position, and transferEnergy().

Referenced by instr_moveFoward(), and moveEntity().

energy world::releaseEnergy energy  amount,
entity ent
 

Definition at line 346 of file world.cpp.

References energy, getTileAtPos(), entity::m_position, releaseEnergy(), and transferEnergy().

Referenced by instr_add(), instr_and(), instr_convertEnergyToMemory(), instr_convertMemoryToEnergy(), instr_copy(), instr_decrement(), instr_giveMemory(), instr_increment(), instr_killThread(), instr_moveFoward(), instr_null(), instr_or(), instr_rotate(), instr_spawnThread(), instr_sub(), instr_switch(), instr_takeMemory(), instr_transferEnergy(), releaseEnergy(), and transferMemory().

bool world::replaceInstruction instruction  instr,
instructionPtr  instrPtr
 

Definition at line 94 of file world.cpp.

References replaceInstruction().

Referenced by replaceInstruction().

void world::rotateEntityLeft entity ent  ) 
 

Definition at line 222 of file world.cpp.

References entity::m_direction, and rotateEntityLeft().

Referenced by instr_rotate(), and rotateEntityLeft().

void world::rotateEntityRight entity ent  ) 
 

Definition at line 229 of file world.cpp.

References entity::m_direction, and rotateEntityRight().

Referenced by instr_rotate(), and rotateEntityRight().

void world::setEnergyPerAbsorb energy  e  )  [inline]
 

Definition at line 94 of file world.h.

References m_absorbAmount, and setEnergyPerAbsorb().

Referenced by initWorld(), and setEnergyPerAbsorb().

void world::setEnergyPerUnitMemory energy  e  )  [inline]
 

Definition at line 91 of file world.h.

References m_energyPerUnitMemory, and setEnergyPerUnitMemory().

Referenced by initWorld(), and setEnergyPerUnitMemory().

void world::setMaxCostPerTile float  e  )  [inline]
 

Definition at line 98 of file world.h.

References m_maxCostPerTile, and setMaxCostPerTile().

Referenced by initWorld(), and setMaxCostPerTile().

void world::setMaxEnergyPerEntity energy  e  )  [inline]
 

Definition at line 99 of file world.h.

References m_maxEnergyPerEntity, and setMaxEnergyPerEntity().

Referenced by initWorld(), and setMaxEnergyPerEntity().

void world::setMaxEnergyPerTile energy  e  )  [inline]
 

Definition at line 97 of file world.h.

References m_maxEnergyPerTile, and setMaxEnergyPerTile().

Referenced by initWorld(), and setMaxEnergyPerTile().

void world::setMaxMemoryPerEntity memory  m  )  [inline]
 

Definition at line 100 of file world.h.

References m_maxMemoryPerEntity, and setMaxMemoryPerEntity().

Referenced by initWorld(), and setMaxMemoryPerEntity().

void world::setMaxThreadsPerProcess uInt  n  ) 
 

entity * world::spawnEntity energy  e,
memory  m,
const position p,
const direction d
 

Definition at line 118 of file world.cpp.

References direction, getEntityAtPos(), m_maxEnergyPerEntity, m_maxMemoryPerEntity, entity::m_pid, m_size, m_tiles, memory, position, and spawnEntity().

Referenced by giveMemory(), initWorld(), and spawnEntity().

void world::step  ) 
 

Definition at line 106 of file world.cpp.

Referenced by idle().

void world::takeMemory entity ent,
address  addr
 

Definition at line 472 of file world.cpp.

References getPosInfrontOfEntity(), getTileAtPos(), tile::m_pEntity, position, takeMemory(), and transferMemory().

Referenced by instr_takeMemory(), and takeMemory().

energy world::transferEnergy energy  amount,
entity ent
 

Definition at line 311 of file world.cpp.

References energy, getPosInfrontOfEntity(), getTileAtPos(), tile::m_pEntity, position, and transferEnergy().

energy world::transferEnergy energy  amount,
entity entA,
entity entB
 

Definition at line 287 of file world.cpp.

References energy, entity::m_energy, m_maxEnergyPerEntity, and transferEnergy().

energy world::transferEnergy energy  amount,
tile t,
entity ent
 

Definition at line 263 of file world.cpp.

References energy, tile::m_energy, entity::m_energy, m_maxEnergyPerEntity, m_maxEnergyPerTile, and transferEnergy().

energy world::transferEnergy energy  amount,
energy a,
energy b
 

Definition at line 237 of file world.cpp.

References energy, and transferEnergy().

Referenced by absorbEnergy(), instr_transferEnergy(), moveEntity(), releaseEnergy(), transferEnergy(), and transferMemory().

void world::transferMemory address  addr,
entity entA,
entity entB
 

Definition at line 382 of file world.cpp.

References energy, getTileAtPos(), tile::m_cost, m_maxMemoryPerEntity, entity::m_position, memory, releaseEnergy(), transferEnergy(), and transferMemory().

void world::transferMemory address  addr,
program &  a,
program &  b
 

Definition at line 360 of file world.cpp.

References transferMemory().

Referenced by giveMemory(), takeMemory(), and transferMemory().


Member Data Documentation

energy world::m_absorbAmount [protected]
 

Definition at line 145 of file world.h.

Referenced by absorbEnergy(), getEnergyPerAbsorb(), and setEnergyPerAbsorb().

energy world::m_energyPerUnitMemory [protected]
 

Definition at line 146 of file world.h.

Referenced by convertEnergyToMemory(), convertMemoryToEnergy(), getEnergyPerUnitMemory(), and setEnergyPerUnitMemory().

float world::m_maxCostPerTile [protected]
 

Definition at line 149 of file world.h.

Referenced by draw(), init(), and setMaxCostPerTile().

energy world::m_maxEnergyPerEntity [protected]
 

Definition at line 151 of file world.h.

Referenced by convertMemoryToEnergy(), setMaxEnergyPerEntity(), spawnEntity(), and transferEnergy().

energy world::m_maxEnergyPerTile [protected]
 

Definition at line 148 of file world.h.

Referenced by absorbEnergy(), init(), setMaxEnergyPerTile(), and transferEnergy().

energy world::m_maxMemoryPerEntity [protected]
 

Definition at line 152 of file world.h.

Referenced by convertEnergyToMemory(), setMaxMemoryPerEntity(), spawnEntity(), and transferMemory().

vector2i world::m_size [protected]
 

Definition at line 143 of file world.h.

Referenced by draw(), getEntityAtPos(), getTileAtPos(), init(), moveEntity(), and spawnEntity().

vv_tiles world::m_tiles [protected]
 

Definition at line 142 of file world.h.

Referenced by draw(), getEntityAtPos(), getTileAtPos(), init(), spawnEntity(), and ~world().


The documentation for this class was generated from the following files:
Generated on Sun Mar 6 22:11:29 2005 for experiment03 by doxygen 1.3.7