textbooks module complete

This commit is contained in:
Eduardo Bart 2012-04-30 21:53:02 -03:00
parent 00740b56f3
commit f290d821f1
7 changed files with 46 additions and 20 deletions

View File

@ -3,7 +3,7 @@ TextBooks = {}
local function onGameEditText(id, itemId, maxLength, text, writter, time)
local textWindow = createWidget('TextWindow', rootWidget)
local writeable = maxLength ~= #text
local writeable = (maxLength ~= #text) and maxLength > 0
local textItem = textWindow:getChildById('textItem')
local description = textWindow:getChildById('description')
local textEdit = textWindow:getChildById('text')
@ -33,13 +33,40 @@ local function onGameEditText(id, itemId, maxLength, text, writter, time)
end
description:setText(desc)
if not writeable then
textWindow:setText(tr('Show Text'))
cancelButton:hide()
else
textWindow:setText(tr('Edit Text'))
end
okButton.onClick = function()
g_game.editText(id, textEdit:getText())
if writeable then
g_game.editText(id, textEdit:getText())
end
textWindow:destroy()
end
end
local function onGameEditList(listId, id, text)
local function onGameEditList(id, doorId, text)
local textWindow = createWidget('TextWindow', rootWidget)
local textEdit = textWindow:getChildById('text')
local description = textWindow:getChildById('description')
local okButton = textWindow:getChildById('okButton')
local cancelButton = textWindow:getChildById('cancelButton')
textEdit:setMaxLength(8192)
textEdit:setText(text)
textEdit:setEnabled(true)
description:setText(tr('Enter one text per line.'))
textWindow:setText(tr('Edit List'))
okButton.onClick = function()
g_game.editList(id, doorId, textEdit:getText())
textWindow:destroy()
end
end
function TextBooks.init()

View File

@ -1,13 +1,12 @@
TextWindow < MainWindow
id: textWindow
!text: tr('Edit Text')
size: 280 280
@onEscape: self:destroy()
UIItem
id: textItem
virtual: true
item-id: 2816
item-id: 173
size: 32 32
anchors.top: parent.top
anchors.left: parent.left

View File

@ -394,14 +394,14 @@ void Game::processCloseTrade()
g_lua.callGlobalField("g_game", "onCloseTrade");
}
void Game::processEditText(int id, int itemId, int maxLength, const std::string& text, const std::string& writter, const std::string& date)
void Game::processEditText(uint id, int itemId, int maxLength, const std::string& text, const std::string& writter, const std::string& date)
{
g_lua.callGlobalField("g_game", "onEditText", id, itemId, maxLength, text, writter, date);
}
void Game::processEditList(int listId, int id, const std::string& text)
void Game::processEditList(uint id, int doorId, const std::string& text)
{
g_lua.callGlobalField("g_game", "onEditList", listId, id, text);
g_lua.callGlobalField("g_game", "onEditList", id, doorId, text);
}
void Game::processQuestLog(const std::vector<std::tuple<int, std::string, bool>>& questList)
@ -973,11 +973,11 @@ void Game::editText(uint id, const std::string& text)
m_protocolGame->sendEditText(id, text);
}
void Game::editList(int listId, uint id, const std::string& text)
void Game::editList(uint id, int doorId, const std::string& text)
{
if(!canPerformGameAction())
return;
m_protocolGame->sendEditList(listId, id, text);
m_protocolGame->sendEditList(id, doorId, text);
}
void Game::reportBug(const std::string& comment)

View File

@ -114,8 +114,8 @@ protected:
void processCloseTrade();
// edit text/list
void processEditText(int id, int itemId, int maxLength, const std::string& text, const std::string& writter, const std::string& date);
void processEditList(int listId, int id, const std::string& text);
void processEditText(uint id, int itemId, int maxLength, const std::string& text, const std::string& writter, const std::string& date);
void processEditList(uint id, int doorId, const std::string& text);
// questlog
void processQuestLog(const std::vector<std::tuple<int, std::string, bool>>& questList);
@ -218,7 +218,7 @@ public:
// house window and editable items related
void editText(uint id, const std::string& text);
void editList(int listId, uint id, const std::string& text);
void editList(uint id, int doorId, const std::string& text);
// reports
void reportBug(const std::string& comment);

View File

@ -72,7 +72,7 @@ public:
void sendCloseContainer(int containerId);
void sendUpContainer(int containerId);
void sendEditText(uint id, const std::string& text);
void sendEditList(int listId, uint id, const std::string& text);
void sendEditList(uint id, int doorId, const std::string& text);
void sendLook(const Position& position, int thingId, int stackpos);
void sendTalk(Otc::SpeakType speakType, int channelId, const std::string& receiver, const std::string& message);
void sendRequestChannels();

View File

@ -718,7 +718,7 @@ void ProtocolGame::parseCreatureTurn(InputMessage& msg)
void ProtocolGame::parseEditText(InputMessage& msg)
{
int id = msg.getU32();
uint id = msg.getU32();
int itemId = msg.getU16();
int maxLength = msg.getU16();
std::string text = msg.getString();
@ -730,11 +730,11 @@ void ProtocolGame::parseEditText(InputMessage& msg)
void ProtocolGame::parseEditList(InputMessage& msg)
{
int listId = msg.getU8();
int id = msg.getU32();
int doorId = msg.getU8();
uint id = msg.getU32();
const std::string& text = msg.getString();
g_game.processEditList(listId, id, text);
g_game.processEditList(id, doorId, text);
}
void ProtocolGame::parsePlayerStats(InputMessage& msg)

View File

@ -366,11 +366,11 @@ void ProtocolGame::sendEditText(uint id, const std::string& text)
send(msg);
}
void ProtocolGame::sendEditList(int listId, uint id, const std::string& text)
void ProtocolGame::sendEditList(uint id, int doorId, const std::string& text)
{
OutputMessage msg;
msg.addU8(Proto::ClientEditList);
msg.addU8(listId);
msg.addU8(doorId);
msg.addU32(id);
msg.addString(text);
send(msg);