OpenTTD
Functions | Variables
story.cpp File Reference

Handling of stories. More...

#include "stdafx.h"
#include "story_base.h"
#include "core/pool_func.hpp"
#include "cmd_helper.h"
#include "command_func.h"
#include "company_base.h"
#include "company_func.h"
#include "string_func.h"
#include "date_func.h"
#include "tile_map.h"
#include "goal_type.h"
#include "goal_base.h"
#include "window_func.h"
#include "gui.h"
#include "safeguards.h"

Go to the source code of this file.

Functions

static bool VerifyElementContentParameters (StoryPageID page_id, StoryPageElementType type, TileIndex tile, uint32 reference, const char *text)
 This helper for Create/Update PageElement Cmd procedure verifies if the page element parameters are correct for the given page element type. More...
 
static void UpdateElement (StoryPageElement &pe, TileIndex tile, uint32 reference, const char *text)
 This helper for Create/Update PageElement Cmd procedure updates a page element with new content data. More...
 
CommandCost CmdCreateStoryPage (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Create a new story page. More...
 
CommandCost CmdCreateStoryPageElement (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Create a new story page element. More...
 
CommandCost CmdUpdateStoryPageElement (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Update a new story page element. More...
 
CommandCost CmdSetStoryPageTitle (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Update title of a story page. More...
 
CommandCost CmdSetStoryPageDate (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Update date of a story page. More...
 
CommandCost CmdShowStoryPage (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Display a story page for all clients that are allowed to view the story page. More...
 
CommandCost CmdRemoveStoryPage (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Remove a story page and associated story page elements. More...
 
CommandCost CmdRemoveStoryPageElement (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Remove a story page element. More...
 

Variables

StoryPageElementID _new_story_page_element_id
 
StoryPageID _new_story_page_id
 
uint32 _story_page_element_next_sort_value
 
uint32 _story_page_next_sort_value
 
StoryPageElementPool _story_page_element_pool ("StoryPageElement")
 
StoryPagePool _story_page_pool ("StoryPage")
 

Detailed Description

Handling of stories.

Definition in file story.cpp.

Function Documentation

◆ CmdCreateStoryPage()

CommandCost CmdCreateStoryPage ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Create a new story page.

Parameters
tileunused.
flagstype of operation
p1various bitstuffed elements
  • p1 = (bit 0 - 7) - Company for which this story page belongs to.
p2unused.
textTitle of the story page. Null is allowed in which case a generic page title is provided by OpenTTD.
Returns
the cost of this operation or an error

Definition at line 107 of file story.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_pool >::CanAllocateItem(), and CMD_ERROR.

◆ CmdCreateStoryPageElement()

CommandCost CmdCreateStoryPageElement ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Create a new story page element.

Parameters
tileTile location if it is a location page element, otherwise unused.
flagstype of operation
p1various bitstuffed elements
  • p1 = (bit 0 - 15) - The page which the element belongs to. (bit 16 - 23) - Page element type
p2Id of referenced object
textText content in case it is a text or location page element
Returns
the cost of this operation or an error

Definition at line 153 of file story.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_element_pool >::CanAllocateItem(), and CMD_ERROR.

◆ CmdRemoveStoryPage()

CommandCost CmdRemoveStoryPage ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Remove a story page and associated story page elements.

Parameters
tileunused.
flagstype of operation
p1= (bit 0 - 15) - StoryPageID to remove.
p2unused.
textunused.
Returns
the cost of this operation or an error

Definition at line 313 of file story.cpp.

References _current_company, CMD_ERROR, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_pool >::IsValidID(), and OWNER_DEITY.

◆ CmdRemoveStoryPageElement()

CommandCost CmdRemoveStoryPageElement ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Remove a story page element.

Parameters
tileunused.
flagstype of operation
p1= (bit 0 - 15) - StoryPageElementID to remove.
p2unused.
textunused.
Returns
the cost of this operation or an error

Definition at line 347 of file story.cpp.

References _current_company, CMD_ERROR, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_element_pool >::Get(), InvalidateWindowClassesData(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_element_pool >::IsValidID(), OWNER_DEITY, StoryPageElement::page, and WC_STORY_BOOK.

◆ CmdSetStoryPageDate()

CommandCost CmdSetStoryPageDate ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Update date of a story page.

Parameters
tileunused.
flagstype of operation
p1= (bit 0 - 15) - StoryPageID to update.
p2= (bit 0 - 31) - date
textunused
Returns
the cost of this operation or an error

Definition at line 264 of file story.cpp.

References _current_company, CMD_ERROR, StoryPage::date, DC_EXEC, GB(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_pool >::Get(), InvalidateWindowClassesData(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_pool >::IsValidID(), OWNER_DEITY, and WC_STORY_BOOK.

◆ CmdSetStoryPageTitle()

CommandCost CmdSetStoryPageTitle ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Update title of a story page.

Parameters
tileunused.
flagstype of operation
p1= (bit 0 - 15) - StoryPageID to update.
p2unused
texttitle text of the story page.
Returns
the cost of this operation or an error

Definition at line 234 of file story.cpp.

References _current_company, CMD_ERROR, DC_EXEC, free(), GB(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_pool >::Get(), InvalidateWindowClassesData(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_pool >::IsValidID(), OWNER_DEITY, stredup(), StrEmpty(), StoryPage::title, and WC_STORY_BOOK.

◆ CmdShowStoryPage()

CommandCost CmdShowStoryPage ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

◆ CmdUpdateStoryPageElement()

CommandCost CmdUpdateStoryPageElement ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Update a new story page element.

Parameters
tileTile location if it is a location page element, otherwise unused.
flagstype of operation
p1various bitstuffed elements
  • p1 = (bit 0 - 15) - The page element to update. (bit 16 - 31) - unused
p2Id of referenced object
textText content in case it is a text or location page element
Returns
the cost of this operation or an error

Definition at line 204 of file story.cpp.

References _current_company, CMD_ERROR, DC_EXEC, GB(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_element_pool >::Get(), InvalidateWindowClassesData(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_element_pool >::IsValidID(), OWNER_DEITY, StoryPageElement::page, StoryPageElement::type, UpdateElement(), VerifyElementContentParameters(), and WC_STORY_BOOK.

◆ UpdateElement()

static void UpdateElement ( StoryPageElement pe,
TileIndex  tile,
uint32  reference,
const char *  text 
)
static

This helper for Create/Update PageElement Cmd procedure updates a page element with new content data.

Parameters
peThe page element to update
tileThe tile parameter of the DoCommand proc
referenceThe reference parameter of the DoCommand proc (p2)
textThe text parameter of the DoCommand proc

Definition at line 80 of file story.cpp.

References StoryPageElement::referenced_id, SPET_GOAL, SPET_LOCATION, SPET_TEXT, stredup(), StoryPageElement::text, and StoryPageElement::type.

Referenced by CmdUpdateStoryPageElement().

◆ VerifyElementContentParameters()

static bool VerifyElementContentParameters ( StoryPageID  page_id,
StoryPageElementType  type,
TileIndex  tile,
uint32  reference,
const char *  text 
)
static

This helper for Create/Update PageElement Cmd procedure verifies if the page element parameters are correct for the given page element type.

Parameters
page_idThe page id of the page which the page element (will) belong to
typeThe type of the page element to create/update
tileThe tile parameter of the DoCommand proc
referenceThe reference parameter of the DoCommand proc (p2)
textThe text parameter of the DoCommand proc
Returns
true, if and only if the given parameters are valid for the given page elment type and page id.

Definition at line 50 of file story.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_story_page_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_goal_pool >::Get(), INVALID_COMPANY, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_goal_pool >::IsValidID(), IsValidTile(), SPET_GOAL, SPET_LOCATION, SPET_TEXT, and StrEmpty().

Referenced by CmdUpdateStoryPageElement().