OpenXcom  1.0
Open-source clone of the original X-Com
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Static Public Member Functions | List of all members
OpenXcom::Inventory Class Reference

Interactive view of an inventory. More...

#include <Inventory.h>

Inheritance diagram for OpenXcom::Inventory:
OpenXcom::InteractiveSurface OpenXcom::Surface

Public Member Functions

 Inventory (Game *game, int width, int height, int x=0, int y=0, bool base=false)
 Creates a new inventory view at the specified position and size. More...
 
 ~Inventory ()
 Cleans up the inventory. More...
 
void setPalette (SDL_Color *colors, int firstcolor=0, int ncolors=256)
 Sets the inventory's palette. More...
 
void setTuMode (bool tu)
 Sets the inventory's Time Unit mode. More...
 
void setSelectedUnit (BattleUnit *unit)
 Sets the inventory's selected unit. More...
 
void draw ()
 Draws the inventory. More...
 
void drawGrid ()
 Draws the inventory grid. More...
 
void drawItems ()
 Draws the inventory items. More...
 
BattleItemgetSelectedItem () const
 Gets the currently selected item. More...
 
void setSelectedItem (BattleItem *item)
 Sets the currently selected item. More...
 
void think ()
 Handles timers.
 
void blit (Surface *surface)
 Blits the inventory onto another surface. More...
 
void mouseOver (Action *action, State *state)
 Special handling for mouse hovers. More...
 
void mouseClick (Action *action, State *state)
 Special handling for mouse clicks. More...
 
bool unload ()
 Unloads the selected weapon. More...
 
void arrangeGround (bool alterOffset=true)
 Arranges items on the ground. More...
 
bool fitItem (RuleInventory *newSlot, BattleItem *item, std::string &warning)
 Attempts to place an item in an inventory slot. More...
 
bool canBeStacked (BattleItem *itemA, BattleItem *itemB)
 Checks if two items can be stacked on one another. More...
 
- Public Member Functions inherited from OpenXcom::InteractiveSurface
 InteractiveSurface (int width, int height, int x=0, int y=0)
 Creates a new interactive surface with the specified size and position. More...
 
virtual ~InteractiveSurface ()
 Cleans up the interactive surface.
 
void setVisible (bool visible)
 Sets the surface's visibility. More...
 
virtual void handle (Action *action, State *state)
 Processes any pending events. More...
 
virtual void setFocus (bool focus)
 Sets the focus of this surface. More...
 
bool isFocused () const
 Gets the focus of this surface. More...
 
virtual void unpress (State *state)
 Unpresses the surface. More...
 
void onMouseClick (ActionHandler handler, Uint8 button=SDL_BUTTON_LEFT)
 Hooks an action handler to a mouse click on the surface. More...
 
void onMousePress (ActionHandler handler, Uint8 button=0)
 Hooks an action handler to a mouse press over the surface. More...
 
void onMouseRelease (ActionHandler handler, Uint8 button=0)
 Hooks an action handler to a mouse release over the surface. More...
 
void onMouseIn (ActionHandler handler)
 Hooks an action handler to moving the mouse into the surface. More...
 
void onMouseOver (ActionHandler handler)
 Hooks an action handler to moving the mouse over the surface. More...
 
void onMouseOut (ActionHandler handler)
 Hooks an action handler to moving the mouse out of the surface. More...
 
void onKeyboardPress (ActionHandler handler, SDLKey key=SDLK_ANY)
 Hooks an action handler to pressing a key when the surface is focused. More...
 
void onKeyboardRelease (ActionHandler handler, SDLKey key=SDLK_ANY)
 Hooks an action handler to releasing a key when the surface is focused. More...
 
virtual void mousePress (Action *action, State *state)
 Processes a mouse button press event. More...
 
virtual void mouseRelease (Action *action, State *state)
 Processes a mouse button release event. More...
 
virtual void mouseIn (Action *action, State *state)
 Processes a mouse hover in event. More...
 
virtual void mouseOut (Action *action, State *state)
 Processes a mouse hover out event. More...
 
virtual void keyboardPress (Action *action, State *state)
 Processes a keyboard key press event. More...
 
virtual void keyboardRelease (Action *action, State *state)
 Processes a keyboard key release event. More...
 
void setListButton ()
 Check this surface to see if it's a textlist button. More...
 
- Public Member Functions inherited from OpenXcom::Surface
 Surface (int width, int height, int x=0, int y=0, int bpp=8)
 Creates a new surface with the specified size and position. More...
 
 Surface (const Surface &other)
 Creates a new surface from an existing one. More...
 
virtual ~Surface ()
 Cleans up the surface. More...
 
void loadScr (const std::string &filename)
 Loads an X-Com SCR graphic. More...
 
void loadSpk (const std::string &filename)
 Loads an X-Com SPK graphic. More...
 
void loadBdy (const std::string &filename)
 Loads a TFTD BDY graphic. More...
 
void loadImage (const std::string &filename)
 Loads a general image file. More...
 
void clear ()
 Clears the surface's contents. More...
 
void offset (int off, int min=-1, int max=-1, int mul=1)
 Offsets the surface's colors by a set amount. More...
 
void invert (Uint8 mid)
 Inverts the surface's colors. More...
 
virtual void initText (Font *, Font *, Language *)
 Initializes the surface's various text resources.
 
void copy (Surface *surface)
 Copies a portion of another surface into this one. More...
 
void drawRect (SDL_Rect *rect, Uint8 color)
 Draws a filled rectangle on the surface. More...
 
void drawRect (Sint16 x, Sint16 y, Sint16 w, Sint16 h, Uint8 color)
 Draws a filled rectangle on the surface. More...
 
void drawLine (Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 color)
 Draws a line on the surface. More...
 
void drawCircle (Sint16 x, Sint16 y, Sint16 r, Uint8 color)
 Draws a filled circle on the surface. More...
 
void drawPolygon (Sint16 *x, Sint16 *y, int n, Uint8 color)
 Draws a filled polygon on the surface. More...
 
void drawTexturedPolygon (Sint16 *x, Sint16 *y, int n, Surface *texture, int dx, int dy)
 Draws a textured polygon on the surface. More...
 
void drawString (Sint16 x, Sint16 y, const char *s, Uint8 color)
 Draws a string on the surface. More...
 
SDL_Color * getPalette () const
 Returns the surface's 8bpp palette. More...
 
virtual void setX (int x)
 Sets the X position of the surface. More...
 
int getX () const
 Returns the position of the surface in the X axis. More...
 
virtual void setY (int y)
 Sets the Y position of the surface. More...
 
int getY () const
 Returns the position of the surface in the Y axis. More...
 
void setVisible (bool visible)
 Sets the surface's visibility. More...
 
bool getVisible () const
 Gets the surface's visibility. More...
 
void resetCrop ()
 Resets the cropping rectangle for the surface. More...
 
SDL_Rect * getCrop ()
 Gets the cropping rectangle for the surface. More...
 
void setPixel (int x, int y, Uint8 pixel)
 Changes the color of a pixel in the surface, relative to the top-left corner of the surface. More...
 
void setPixelIterative (int *x, int *y, Uint8 pixel)
 Changes the color of a pixel in the surface and returns the next pixel position. More...
 
Uint8 getPixel (int x, int y) const
 Returns the color of a specified pixel in the surface. More...
 
SDL_Surface * getSurface () const
 Returns the internal SDL_Surface for SDL calls. More...
 
int getWidth () const
 Returns the width of the surface. More...
 
virtual void setWidth (int width)
 Sets the width of the surface. More...
 
int getHeight () const
 Returns the height of the surface. More...
 
virtual void setHeight (int height)
 Sets the height of the surface. More...
 
void setHidden (bool hidden)
 Sets the surface's special hidden flag. More...
 
void lock ()
 Locks the surface. More...
 
void unlock ()
 Unlocks the surface. More...
 
void blitNShade (Surface *surface, int x, int y, int off, bool half=false, int newBaseColor=0)
 Specific blit function to blit battlescape terrain data in different shades in a fast way. More...
 
void invalidate ()
 Invalidate the surface: force it to be redrawn. More...
 
std::string getTooltip () const
 Gets the tooltip of the surface. More...
 
void setTooltip (const std::string &tooltip)
 Sets the tooltip of the surface. More...
 

Static Public Member Functions

static bool overlapItems (BattleUnit *unit, BattleItem *item, RuleInventory *slot, int x=0, int y=0)
 Checks for item overlap. More...
 

Additional Inherited Members

- Protected Member Functions inherited from OpenXcom::InteractiveSurface
bool isButtonPressed (Uint8 button=0)
 Is this mouse button pressed?
 
virtual bool isButtonHandled (Uint8 button=0)
 Is this mouse button event handled?
 
void setButtonPressed (Uint8 button, bool pressed)
 Set a mouse button's internal state.
 
- Protected Member Functions inherited from OpenXcom::Surface
void resize (int width, int height)
 Recreates the surface with a new size. More...
 

Detailed Description

Interactive view of an inventory.

Lets the player view and manage a soldier's equipment.

Constructor & Destructor Documentation

OpenXcom::Inventory::Inventory ( Game game,
int  width,
int  height,
int  x = 0,
int  y = 0,
bool  base = false 
)

Creates a new inventory view at the specified position and size.

Sets up an inventory with the specified size and position.

Parameters
gamePointer to core game.
widthWidth in pixels.
heightHeight in pixels.
xX position in pixels.
yY position in pixels.
baseIs the inventory being called from the basescape?
OpenXcom::Inventory::~Inventory ( )

Cleans up the inventory.

Deletes inventory surfaces.

Member Function Documentation

void OpenXcom::Inventory::arrangeGround ( bool  alterOffset = true)

Arranges items on the ground.

Arranges items on the ground for the inventory display.

Since items on the ground aren't assigned to anyone, they don't actually have permanent slot positions.

Parameters
alterOffsetWhether to alter the ground offset.
void OpenXcom::Inventory::blit ( Surface surface)
virtual

Blits the inventory onto another surface.

Blits the inventory elements.

Parameters
surfacePointer to surface to blit onto.

Reimplemented from OpenXcom::Surface.

bool OpenXcom::Inventory::canBeStacked ( BattleItem itemA,
BattleItem itemB 
)

Checks if two items can be stacked on one another.

Parameters
itemAFirst item.
itemBSecond item.
Returns
True, if the items can be stacked on one another.
void OpenXcom::Inventory::draw ( )
virtual

Draws the inventory.

Draws the inventory elements.

Reimplemented from OpenXcom::Surface.

void OpenXcom::Inventory::drawGrid ( )

Draws the inventory grid.

Draws the inventory grid for item placement.

void OpenXcom::Inventory::drawItems ( )

Draws the inventory items.

Draws the items contained in the soldier's inventory.

bool OpenXcom::Inventory::fitItem ( RuleInventory newSlot,
BattleItem item,
std::string &  warning 
)

Attempts to place an item in an inventory slot.

Attempts to place the item in the inventory slot.

Parameters
newSlotWhere to place the item.
itemItem to be placed.
warningWarning message if item could not be placed.
Returns
True, if the item was successfully placed in the inventory.
BattleItem * OpenXcom::Inventory::getSelectedItem ( ) const

Gets the currently selected item.

Returns the item currently grabbed by the player.

Returns
Pointer to selected item, or NULL if none.
void OpenXcom::Inventory::mouseClick ( Action action,
State state 
)
virtual

Special handling for mouse clicks.

Picks up / drops an item.

Parameters
actionPointer to an action.
stateState that the action handlers belong to.

Reimplemented from OpenXcom::InteractiveSurface.

void OpenXcom::Inventory::mouseOver ( Action action,
State state 
)
virtual

Special handling for mouse hovers.

Moves the selected item.

Parameters
actionPointer to an action.
stateState that the action handlers belong to.

Reimplemented from OpenXcom::InteractiveSurface.

bool OpenXcom::Inventory::overlapItems ( BattleUnit unit,
BattleItem item,
RuleInventory slot,
int  x = 0,
int  y = 0 
)
static

Checks for item overlap.

Checks if an item in a certain slot position would overlap with any other inventory item.

Parameters
unitPointer to current unit.
itemPointer to battle item.
slotInventory slot, or NULL if none.
xX position in slot.
yY position in slot.
Returns
If there's overlap.
void OpenXcom::Inventory::setPalette ( SDL_Color *  colors,
int  firstcolor = 0,
int  ncolors = 256 
)
virtual

Sets the inventory's palette.

Replaces a certain amount of colors in the inventory's palette.

Parameters
colorsPointer to the set of colors.
firstcolorOffset of the first color to replace.
ncolorsAmount of colors to replace.

Reimplemented from OpenXcom::Surface.

void OpenXcom::Inventory::setSelectedItem ( BattleItem item)

Sets the currently selected item.

Changes the item currently grabbed by the player.

Parameters
itemPointer to selected item, or NULL if none.
void OpenXcom::Inventory::setSelectedUnit ( BattleUnit unit)

Sets the inventory's selected unit.

Changes the unit to display the inventory of.

Parameters
unitPointer to battle unit.
void OpenXcom::Inventory::setTuMode ( bool  tu)

Sets the inventory's Time Unit mode.

Changes the inventory's Time Units mode.

When True, inventory actions cost soldier time units (for battle). When False, inventory actions don't cost anything (for pre-equip).

Parameters
tuTime Units mode.
bool OpenXcom::Inventory::unload ( )

Unloads the selected weapon.

Unloads the selected weapon, placing the gun on the right hand and the ammo on the left hand.

Returns
The success of the weapon being unlaoded.

The documentation for this class was generated from the following files: