xoreos  0.0.5
Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Engines::NWN2::Door Class Reference

#include <door.h>

Inheritance diagram for Engines::NWN2::Door:
Inheritance graph
[legend]
Collaboration diagram for Engines::NWN2::Door:
Collaboration graph
[legend]

Public Types

enum  State { kStateClosed = 0, kStateOpened1 = 1, kStateOpened2 = 2, kStateDestroyed = 3 }
 The state of a door. More...
 

Public Member Functions

 Door (Module &module, const Aurora::GFF3Struct &door)
 Load from a door instance. More...
 
 ~Door ()
 
void show ()
 Show the door's model. More...
 
void hide ()
 Hide the door's model. More...
 
bool isOpen () const
 Is the door open? More...
 
bool open (Object *opener)
 The opener object opens this door. More...
 
bool close (Object *closer)
 The closer object closes this door. More...
 
void setLocked (bool locked)
 Lock/Unlock the door. More...
 
void enter ()
 The cursor entered the door. More...
 
void leave ()
 The cursor left the door. More...
 
void highlight (bool enabled)
 (Un)Highlight the door. More...
 
bool click (Object *triggerer=0)
 The door was clicked. More...
 
- Public Member Functions inherited from Engines::NWN2::Situated
 ~Situated ()
 
void loadModel ()
 Load the situated object's model. More...
 
void unloadModel ()
 Unload the situated object's model. More...
 
void show ()
 Show the situated object's model. More...
 
void hide ()
 Hide the situated object's model. More...
 
bool isLocked () const
 Is the situated object locked? More...
 
ObjectgetLastOpenedBy () const
 Return the object that last opened this situated object. More...
 
ObjectgetLastClosedBy () const
 Return the object that last closed this situated object. More...
 
ObjectgetLastUsedBy () const
 Return the object that last used this situated object. More...
 
void setPosition (float x, float y, float z)
 Set the situated object's position. More...
 
void setOrientation (float x, float y, float z, float angle)
 Set the situated object's orientation. More...
 
- Public Member Functions inherited from Engines::NWN2::Object
 Object (ObjectType type=kObjectTypeInvalid)
 
virtual ~Object ()
 
ObjectType getType () const
 Return the exact type of the object. More...
 
const std::list< uint32 > & getIDs () const
 Return the object's model IDs. More...
 
const Common::UStringgetName () const
 Return the object's name. More...
 
const Common::UStringgetDescription () const
 Return the object's description. More...
 
const Common::UStringgetConversation () const
 Return the object's default conversation (DLG). More...
 
const Aurora::SSFFilegetSSF ()
 Return the object's sound set. More...
 
bool isStatic () const
 Is the object static (not manipulable at all)? More...
 
bool isUsable () const
 Can the object be used by the PC? More...
 
bool isClickable () const
 Can the player click the object? More...
 
AreagetArea () const
 Return the area this object is currently in. More...
 
void setArea (Area *)
 Set the area this object is currently in. More...
 
virtual void getPosition (float &x, float &y, float &z) const
 Return the object's position within its area. More...
 
virtual void getOrientation (float &x, float &y, float &z, float &angle) const
 Return the object's orientation. More...
 
Location getLocation () const
 Create a Location out of the object's area, position and orientation. More...
 
void speakString (const Common::UString &string, uint32 volume)
 Speak the specified string. More...
 
void speakOneLiner (Common::UString conv, Object *tokenTarget=0)
 Speak an one-liner from the specified conversation file. More...
 
void stopSound ()
 Stop the current object sound. More...
 
void playSound (const Common::UString &sound, bool pitchVariance=false)
 Play an object sound. More...
 
- Public Member Functions inherited from Aurora::NWScript::Object
 Object ()
 
uint32 getID () const
 
const Common::UStringgetTag () const
 
- Public Member Functions inherited from Aurora::NWScript::VariableContainer
 VariableContainer ()
 
virtual ~VariableContainer ()
 
bool hasVariable (const Common::UString &var) const
 
VariablegetVariable (const Common::UString &var, Type type=kTypeVoid)
 
const VariablegetVariable (const Common::UString &var) const
 
void setVariable (const Common::UString &var, const Variable &value)
 
void removeVariable (const Common::UString &var)
 
void clearVariables ()
 
- Public Member Functions inherited from Engines::NWN2::ScriptContainer
 ScriptContainer ()
 
 ~ScriptContainer ()
 
const Common::UStringgetScript (Script script) const
 
bool hasScript (Script script) const
 
bool runScript (Script script, const Aurora::NWScript::ObjectReference owner=Aurora::NWScript::ObjectReference(), const Aurora::NWScript::ObjectReference triggerer=Aurora::NWScript::ObjectReference())
 

Protected Member Functions

void loadObject (const Aurora::GFF3Struct &gff)
 Load door-specific properties. More...
 
void loadAppearance ()
 Load appearance-specific properties. More...
 
- Protected Member Functions inherited from Engines::NWN2::Situated
 Situated (ObjectType type)
 
void load (const Aurora::GFF3Struct &instance, const Aurora::GFF3Struct *blueprint=0)
 Load the situated object from an instance and its blueprint. More...
 
- Protected Member Functions inherited from Engines::NWN2::Object
void loadSSF ()
 Load the object's sound set. More...
 
void readVarTable (const Aurora::GFF3List &varTable)
 Read the object's variable table. More...
 
void readVarTable (const Aurora::GFF3Struct &gff)
 
- Protected Member Functions inherited from Engines::NWN2::ScriptContainer
void clearScripts ()
 
void readScripts (const Aurora::GFF3Struct &gff)
 
void readScripts (const ScriptContainer &container)
 

Private Types

enum  LinkedToFlag { kLinkedToNothing = 0, kLinkedToDoor = 1, kLinkedToWaypoint = 2 }
 

Private Member Functions

void load (const Aurora::GFF3Struct &door)
 Load from a door instance. More...
 
void loadAppearance (const Aurora::TwoDAFile &twoda, uint32 id)
 Load the appearance from this 2DA row. More...
 
void setModelState ()
 Sync the model's state with the door's state. More...
 
void evaluateLink ()
 Evaluate our link. More...
 

Private Attributes

Module_module
 The module the door is in. More...
 
bool _invisible
 Is the door invisible? More...
 
uint32 _genericType
 Index into the generic door types. More...
 
State _state
 The current state of the door. More...
 
LinkedToFlag _linkedToFlag
 Does this door link to anything? More...
 
Common::UString _linkedTo
 The object tag this door links to. More...
 
bool _evaluatedLink
 Have we already tried to evaluate our link? More...
 
Object_link
 The object this door links to. More...
 
Door_linkedDoor
 The door this door links to. More...
 
Waypoint_linkedWaypoint
 The waypoint this door links to. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Engines::NWN2::ScriptContainer
static bool runScript (const Common::UString &script, const Aurora::NWScript::ObjectReference owner=Aurora::NWScript::ObjectReference(), const Aurora::NWScript::ObjectReference triggerer=Aurora::NWScript::ObjectReference())
 
static bool runScript (const Common::UString &script, const Aurora::NWScript::ScriptState &state, const Aurora::NWScript::ObjectReference owner=Aurora::NWScript::ObjectReference(), const Aurora::NWScript::ObjectReference triggerer=Aurora::NWScript::ObjectReference())
 
- Protected Attributes inherited from Engines::NWN2::Situated
Common::UString _modelName
 The model's resource name. More...
 
uint32 _appearanceID
 The index within the situated appearance 2DA. More...
 
uint32 _soundAppType
 The index within the situated sounds 2DA. More...
 
bool _locked
 Is the situated object locked? More...
 
Common::UString _soundOpened
 The sound the object makes when opened. More...
 
Common::UString _soundClosed
 The sound the object makes when closed. More...
 
Common::UString _soundDestroyed
 The sound the object makes when destroyed. More...
 
Common::UString _soundUsed
 The sound the object makes when used. More...
 
Common::UString _soundLocked
 The sound the object makes when locked. More...
 
float _tint [3][4]
 
Object_lastOpenedBy
 The object that last opened this situated object. More...
 
Object_lastClosedBy
 The object that last closed this situated object. More...
 
Object_lastUsedBy
 The object that last used this situated object. More...
 
Common::ScopedPtr< Graphics::Aurora::Model_model
 The situated object's model. More...
 
- Protected Attributes inherited from Engines::NWN2::Object
ObjectType _type
 The object's type. More...
 
Common::UString _name
 The object's display name. More...
 
Common::UString _description
 The object's description. More...
 
Common::UString _conversation
 The object's default conversation. More...
 
uint32 _soundSet
 The object's sound set, as an index into soundset.2da. More...
 
Common::ScopedPtr< Aurora::SSFFile_ssf
 The object's sound set. More...
 
bool _static
 Is the object static? More...
 
bool _usable
 Is the object usable? More...
 
std::list< uint32_ids
 The object's model IDs. More...
 
Area_area
 The area the object is currently in. More...
 
float _position [3]
 The object's position. More...
 
float _orientation [4]
 The object's orientation. More...
 
Sound::ChannelHandle _sound
 The currently playing object sound. More...
 
- Protected Attributes inherited from Aurora::NWScript::Object
uint32 _id
 
Common::UString _tag
 

Detailed Description

Definition at line 40 of file door.h.

Member Enumeration Documentation

◆ LinkedToFlag

Enumerator
kLinkedToNothing 

This door links to nothing.

kLinkedToDoor 

This door links to another door.

kLinkedToWaypoint 

This door links to a waypoint.

Definition at line 90 of file door.h.

◆ State

The state of a door.

Enumerator
kStateClosed 

Closed.

kStateOpened1 

Opened in one direction (normally clock-wise).

kStateOpened2 

Opened in the other direction (normally counter-clock-wise).

kStateDestroyed 

Destroyed.

Definition at line 43 of file door.h.

Constructor & Destructor Documentation

◆ Door()

Engines::NWN2::Door::Door ( Module module,
const Aurora::GFF3Struct door 
)

Load from a door instance.

Definition at line 45 of file door.cpp.

References load().

Here is the call graph for this function:

◆ ~Door()

Engines::NWN2::Door::~Door ( )

Definition at line 53 of file door.cpp.

Member Function Documentation

◆ click()

bool Engines::NWN2::Door::click ( Object triggerer = 0)
virtual

◆ close()

bool Engines::NWN2::Door::close ( Object closer)

◆ enter()

void Engines::NWN2::Door::enter ( )
virtual

The cursor entered the door.

Reimplemented from Engines::NWN2::Object.

Definition at line 151 of file door.cpp.

References highlight().

Here is the call graph for this function:

◆ evaluateLink()

void Engines::NWN2::Door::evaluateLink ( )
private

Evaluate our link.

Definition at line 254 of file door.cpp.

References _evaluatedLink, _link, _linkedDoor, _linkedTo, _linkedToFlag, _linkedWaypoint, _module, Common::UString::empty(), Aurora::NWScript::ObjectContainer::getFirstObjectByTag(), kLinkedToDoor, and kLinkedToWaypoint.

Referenced by click(), close(), open(), and setLocked().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hide()

void Engines::NWN2::Door::hide ( )
virtual

Hide the door's model.

Reimplemented from Engines::NWN2::Object.

Definition at line 145 of file door.cpp.

References Engines::NWN2::Situated::hide(), and leave().

Here is the call graph for this function:

◆ highlight()

void Engines::NWN2::Door::highlight ( bool  enabled)
virtual

(Un)Highlight the door.

Reimplemented from Engines::NWN2::Object.

Definition at line 159 of file door.cpp.

References Engines::NWN2::Situated::_model.

Referenced by enter(), and leave().

Here is the caller graph for this function:

◆ isOpen()

bool Engines::NWN2::Door::isOpen ( ) const
virtual

Is the door open?

Implements Engines::NWN2::Situated.

Definition at line 250 of file door.cpp.

References _state, kStateOpened1, and kStateOpened2.

Referenced by click(), close(), and open().

Here is the caller graph for this function:

◆ leave()

void Engines::NWN2::Door::leave ( )
virtual

The cursor left the door.

Reimplemented from Engines::NWN2::Object.

Definition at line 155 of file door.cpp.

References highlight().

Referenced by hide().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ load()

void Engines::NWN2::Door::load ( const Aurora::GFF3Struct door)
private

Load from a door instance.

Definition at line 56 of file door.cpp.

References Common::UString::empty(), Aurora::GFF3Struct::getString(), Aurora::kFileTypeUTD, Engines::NWN2::Situated::load(), Engines::loadOptionalGFF3(), MKTAG, Common::ScopedPtrBase< T, Deallocator >::reset(), and setModelState().

Referenced by Door().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadAppearance() [1/2]

void Engines::NWN2::Door::loadAppearance ( )
protectedvirtual

Load appearance-specific properties.

Implements Engines::NWN2::Situated.

Definition at line 83 of file door.cpp.

References Engines::NWN2::Situated::_appearanceID, _genericType, _invisible, Engines::NWN2::Situated::_modelName, _state, Common::UString::clear(), Aurora::kFieldIDInvalid, kStateOpened1, and TwoDAReg.

Here is the call graph for this function:

◆ loadAppearance() [2/2]

void Engines::NWN2::Door::loadAppearance ( const Aurora::TwoDAFile twoda,
uint32  id 
)
private

Load the appearance from this 2DA row.

Definition at line 99 of file door.cpp.

References _invisible, Engines::NWN2::Situated::_modelName, Engines::NWN2::Situated::_soundAppType, Common::UString::empty(), Aurora::TwoDARow::getInt(), Aurora::TwoDAFile::getRow(), and Aurora::TwoDARow::getString().

Here is the call graph for this function:

◆ loadObject()

void Engines::NWN2::Door::loadObject ( const Aurora::GFF3Struct gff)
protectedvirtual

Load door-specific properties.

Implements Engines::NWN2::Situated.

Definition at line 68 of file door.cpp.

References _genericType, _linkedTo, _linkedToFlag, _state, Aurora::GFF3Struct::getString(), and Aurora::GFF3Struct::getUint().

Here is the call graph for this function:

◆ open()

bool Engines::NWN2::Door::open ( Object opener)

◆ setLocked()

void Engines::NWN2::Door::setLocked ( bool  locked)
virtual

Lock/Unlock the door.

Reimplemented from Engines::NWN2::Situated.

Definition at line 164 of file door.cpp.

References _linkedDoor, evaluateLink(), Engines::NWN2::Situated::isLocked(), Engines::NWN2::Situated::setLocked(), and setLocked().

Referenced by setLocked().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setModelState()

void Engines::NWN2::Door::setModelState ( )
private

Sync the model's state with the door's state.

Definition at line 111 of file door.cpp.

References Engines::NWN2::Situated::_model, _state, kStateClosed, kStateDestroyed, kStateOpened1, and kStateOpened2.

Referenced by load(), and show().

Here is the caller graph for this function:

◆ show()

void Engines::NWN2::Door::show ( )
virtual

Show the door's model.

Reimplemented from Engines::NWN2::Object.

Definition at line 139 of file door.cpp.

References setModelState(), and Engines::NWN2::Situated::show().

Here is the call graph for this function:

Member Data Documentation

◆ _evaluatedLink

bool Engines::NWN2::Door::_evaluatedLink
private

Have we already tried to evaluate our link?

Definition at line 107 of file door.h.

Referenced by evaluateLink().

◆ _genericType

uint32 Engines::NWN2::Door::_genericType
private

Index into the generic door types.

Definition at line 100 of file door.h.

Referenced by loadAppearance(), and loadObject().

◆ _invisible

bool Engines::NWN2::Door::_invisible
private

Is the door invisible?

Definition at line 98 of file door.h.

Referenced by close(), and loadAppearance().

◆ _link

Object* Engines::NWN2::Door::_link
private

The object this door links to.

Definition at line 108 of file door.h.

Referenced by click(), and evaluateLink().

◆ _linkedDoor

Door* Engines::NWN2::Door::_linkedDoor
private

The door this door links to.

Definition at line 109 of file door.h.

Referenced by close(), evaluateLink(), open(), and setLocked().

◆ _linkedTo

Common::UString Engines::NWN2::Door::_linkedTo
private

The object tag this door links to.

Definition at line 105 of file door.h.

Referenced by evaluateLink(), and loadObject().

◆ _linkedToFlag

LinkedToFlag Engines::NWN2::Door::_linkedToFlag
private

Does this door link to anything?

Definition at line 104 of file door.h.

Referenced by evaluateLink(), and loadObject().

◆ _linkedWaypoint

Waypoint* Engines::NWN2::Door::_linkedWaypoint
private

The waypoint this door links to.

Definition at line 110 of file door.h.

Referenced by evaluateLink().

◆ _module

Module* Engines::NWN2::Door::_module
private

The module the door is in.

Definition at line 96 of file door.h.

Referenced by click(), and evaluateLink().

◆ _state

State Engines::NWN2::Door::_state
private

The current state of the door.

Definition at line 102 of file door.h.

Referenced by close(), isOpen(), loadAppearance(), loadObject(), open(), and setModelState().


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