Enter Class ReferenceCommand: enter portal.
More...
|
Public Member Functions | |
Enter () | |
void | Execute (InSocket *, const std::string ¶ms, Parse &) |
Execute command. | |
std::string | Category () |
Get command category. | |
std::string | Description () |
Command description. |
Definition at line 28 of file Enter.h.
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] |
std::string Enter::Description | ( | ) | [inline, virtual] |