diff options
author | zuu <zuu@openttd.org> | 2013-06-09 12:57:22 +0000 |
---|---|---|
committer | zuu <zuu@openttd.org> | 2013-06-09 12:57:22 +0000 |
commit | 33ad9774fb7c51f1ec706851c7a96a7ced5ff622 (patch) | |
tree | af64b06f63d6168eef04bf09172732f6af896027 /src/script/api | |
parent | a49a4eec6e9b9fd7a9520af882a38697dd3a0ed3 (diff) | |
download | openttd-33ad9774fb7c51f1ec706851c7a96a7ced5ff622.tar.xz |
(svn r25352) -Feature: GameScript API for selecting a story page to view
Diffstat (limited to 'src/script/api')
-rw-r--r-- | src/script/api/game/game_story_page.hpp.sq | 1 | ||||
-rw-r--r-- | src/script/api/script_story_page.cpp | 8 | ||||
-rw-r--r-- | src/script/api/script_story_page.hpp | 11 |
3 files changed, 20 insertions, 0 deletions
diff --git a/src/script/api/game/game_story_page.hpp.sq b/src/script/api/game/game_story_page.hpp.sq index abc9500d1..1d0fe6ced 100644 --- a/src/script/api/game/game_story_page.hpp.sq +++ b/src/script/api/game/game_story_page.hpp.sq @@ -33,6 +33,7 @@ void SQGSStoryPage_Register(Squirrel *engine) SQGSStoryPage.DefSQStaticMethod(engine, &ScriptStoryPage::NewElement, "NewElement", 5, ".iii."); SQGSStoryPage.DefSQStaticMethod(engine, &ScriptStoryPage::UpdateElement, "UpdateElement", 4, ".ii."); SQGSStoryPage.DefSQStaticMethod(engine, &ScriptStoryPage::SetTitle, "SetTitle", 3, ".i."); + SQGSStoryPage.DefSQStaticMethod(engine, &ScriptStoryPage::Show, "Show", 2, ".i"); SQGSStoryPage.DefSQStaticMethod(engine, &ScriptStoryPage::Remove, "Remove", 2, ".i"); SQGSStoryPage.PostRegister(engine); diff --git a/src/script/api/script_story_page.cpp b/src/script/api/script_story_page.cpp index e94bc0017..8d6253b3c 100644 --- a/src/script/api/script_story_page.cpp +++ b/src/script/api/script_story_page.cpp @@ -109,6 +109,14 @@ return ScriptObject::DoCommand(0, story_page_id, 0, CMD_SET_STORY_PAGE_TITLE, title != NULL? title->GetEncodedText() : NULL); } +/* static */ bool ScriptStoryPage::Show(StoryPageID story_page_id) +{ + EnforcePrecondition(false, IsValidStoryPage(story_page_id)); + EnforcePrecondition(false, ScriptObject::GetCompany() == OWNER_DEITY); + + return ScriptObject::DoCommand(0, story_page_id, 0, CMD_SHOW_STORY_PAGE); +} + /* static */ bool ScriptStoryPage::Remove(StoryPageID story_page_id) { EnforcePrecondition(false, ScriptObject::GetCompany() == OWNER_DEITY); diff --git a/src/script/api/script_story_page.hpp b/src/script/api/script_story_page.hpp index b013f2515..d026650be 100644 --- a/src/script/api/script_story_page.hpp +++ b/src/script/api/script_story_page.hpp @@ -129,6 +129,17 @@ public: static bool SetTitle(StoryPageID story_page_id, Text *title); /** + * Opens the Story Book if not yet open and selects the given page. + * @param story_page_id The story page to update. If it is a global page, clients of all + * companies are affecetd. Otherwise only the clients of the company which the page belongs + * to are affected. + * @return True if the action succeeded. + * @pre No ScriptCompanyMode may be in scope. + * @pre IsValidStoryPage(story_page_id). + */ + static bool Show(StoryPageID story_page_id); + + /** * Remove a story page from the list. * @param story_page_id The story page to remove. * @return True if the action succeeded. |