Logo
~Sockets~
~Examples~
~Contact~

Enter Class Reference
[Commands]

Command: enter portal. More...

#include <Enter.h>

Inheritance diagram for Enter:

Inheritance graph
[legend]
Collaboration diagram for Enter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Enter ()
void Execute (InSocket *, const std::string &params, Parse &)
 Execute command.
std::string Category ()
 Get command category.
std::string Description ()
 Command description.

Detailed Description

Command: enter portal.

Definition at line 28 of file Enter.h.


Constructor & Destructor Documentation

Enter::Enter (  )  [inline]

Definition at line 31 of file Enter.h.

00031 : Command("enter") {}


Member Function Documentation

void Enter::Execute ( InSocket ,
const std::string &  arg,
Parse &   
) [virtual]

Execute command.

Implements Command.

Definition at line 30 of file Enter.cpp.

References Player::GetArea(), Player::GetChunk(), Player::GetChunkX(), Player::GetChunkY(), Look::LookMap(), Player::SetArea(), Player::SetChunk(), Player::SetChunkX(), Player::SetChunkY(), and Look::Show().

00031 {
00032         Database& db = from -> GetDatabase();
00033         Player pl(db, from -> GetAccountName());
00034         Area area(db, pl.GetArea());
00035         Chunk chunk(db, area, pl.GetChunk());
00036         int x = pl.GetChunkX();
00037         int y = pl.GetChunkY();
00038 
00039         if (from -> GetMoveEvent())
00040         {
00041                 from -> BufferMove("enter");
00042         }
00043         else
00044         {
00045                 if (chunk.Get(x, y) == 'P')
00046                 {
00047                         Portal info(db, chunk, x, y);
00048                         if (info.Exists())
00049                         {
00050                                 pl.SetArea(info.GetToArea());
00051                                 pl.SetChunk(info.GetToChunk());
00052                                 pl.SetChunkX(info.GetToX());
00053                                 pl.SetChunkY(info.GetToY());
00054                                 if (!params.size())
00055                                 {
00056                                         Look::LookMap(from);
00057                                 }
00058                                 Look::Show(from);
00059                                 from -> SetMoveEvent(0, 1000);
00060                         }
00061                         else
00062                         {
00063                                 from -> Send("Huh - Portal terrain without Chunkinfo\n");
00064                                 from -> CancelMoves();
00065                         }
00066                 }
00067                 else
00068                 {
00069                         from -> Send("No portal here.\n");
00070                         from -> CancelMoves();
00071                 }
00072                 from -> SetPrompt();
00073         }
00074 }

std::string Enter::Category (  )  [inline, virtual]

Get command category.

Implements Command.

Definition at line 35 of file Enter.h.

00035 { return "Navigation"; }

std::string Enter::Description (  )  [inline, virtual]

Command description.

Reimplemented from Command.

Definition at line 36 of file Enter.h.

00036 { return "Enter portal"; }


The documentation for this class was generated from the following files:
Page, code, and content Copyright (C) 2006 by Anders Hedström
Generated on Mon Aug 29 20:21:47 2005 for C++ Sockets by  doxygen 1.4.4