00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "Fill.h"
00021 #include "InSocket.h"
00022 #include "Chunk.h"
00023 #include "Player.h"
00024 #include "Terrain.h"
00025 #include "Area.h"
00026
00027
00028 void Fill::Execute(InSocket *from,const std::string& params,Parse& pa)
00029 {
00030 Database& db = from -> GetDatabase();
00031 Player pl(db, from -> GetAccountName());
00032 Area area(db, pl.GetArea());
00033 Chunk chunk(db, area, pl.GetChunk());
00034
00035 char fromchar = chunk.Get(pl.GetChunkX(),pl.GetChunkY());
00036 Terrain t(db, area, params.size() ? params[0] : 0);
00037 if (t.Exists())
00038 {
00039 if (t.GetChar() != fromchar)
00040 {
00041 chunk.Fill(pl.GetChunkX(),pl.GetChunkY(),fromchar,t.GetChar());
00042 chunk.Save();
00043 from -> Send("Ok.\n");
00044 }
00045 else
00046 {
00047 from -> Send("Can't fill with same terrain.\n");
00048 }
00049 }
00050 else
00051 {
00052 from -> Send("Fill with what?\n");
00053 }
00054 from -> SetPrompt();
00055 }
00056
00057