xoreos
0.0.5
|
#include <door.h>
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 | hide () |
Hide the door's model. More... | |
void | hideSoft () |
Hide the door's model if applicable. 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 | 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... | |
bool | testCollision (const glm::vec3 &orig, const glm::vec3 &dest) const |
Public Member Functions inherited from Engines::KotOR::Situated | |
~Situated () | |
void | show () |
Show the situated object's model. More... | |
void | hide () |
Hide the situated object's model. More... | |
bool | isVisible () const |
Is the situated object's model visible? More... | |
bool | isLocked () const |
Is the situated object locked? More... | |
virtual void | setLocked (bool locked) |
Lock/Unlock the situated object. More... | |
Object * | getLastOpenedBy () const |
Return the object that last opened this situated object. More... | |
Object * | getLastClosedBy () const |
Return the object that last closed this situated object. More... | |
Object * | getLastUsedBy () const |
Return the object that last used this situated object. More... | |
const Common::UString & | getConversation () const |
Get the conversation for this 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... | |
void | setWalkmeshInvisible (bool invisible) |
void | playAnimation (const Common::UString &anim, bool restart=true, float length=0.0f, float speed=1.0f) |
Public Member Functions inherited from Engines::KotOR::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::UString & | getName () const |
Return the object's name. More... | |
const Common::UString & | getDescription () const |
Return the object's description. More... | |
const Common::UString & | getPortrait () const |
Return the object's portrait. More... | |
void | setMaxHitPoints (int maxHP) |
Set the maximum hit points for the objects. More... | |
int | getMaxHitPoints () |
Get the maximum hit points for the objects. More... | |
void | setCurrentHitPoints (int hitpoints) |
Set the current hitpoints. More... | |
int | getCurrentHitPoints () |
Return the objects current hitpoints. More... | |
void | setMinOneHitPoints (bool enabled) |
Set if the object has a minimum of one hp. More... | |
bool | getMinOneHitPoints () const |
Get if the object has a minimum of one hp. 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... | |
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... | |
void | makeLookAt (float x, float y) |
void | makeLookAt (Object *target) |
Room * | getRoom () |
Get a room the object is in. More... | |
void | setRoom (Room *room) |
Set a room the object is in. 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::UString & | getTag () const |
Public Member Functions inherited from Aurora::NWScript::VariableContainer | |
VariableContainer () | |
virtual | ~VariableContainer () |
bool | hasVariable (const Common::UString &var) const |
Variable & | getVariable (const Common::UString &var, Type type=kTypeVoid) |
const Variable & | getVariable (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::KotOR::ScriptContainer | |
ScriptContainer () | |
~ScriptContainer () | |
const Common::UString & | getScript (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::KotOR::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::KotOR::ScriptContainer | |
void | clearScripts () |
void | readScripts (const Aurora::GFF3Struct &gff, bool clear=true) |
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... | |
Private Attributes | |
Module * | _module |
The module the door is in. 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... | |
ObjectType | _linkedToType |
The type of the object this door links to. More... | |
Common::UString | _linkedTo |
The object tag this door links to. More... | |
Common::UString | _linkedToModule |
The module the object this door links to is in. More... | |
Common::UString | _transitionDestination |
A localized string describing where this door leads to. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Engines::KotOR::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::KotOR::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... | |
Common::UString | _conversation |
The optional conversation with this situated object. More... | |
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... | |
Walkmesh | _walkmesh |
Protected Attributes inherited from Engines::KotOR::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 | _portrait |
The object's portrait. More... | |
bool | _static |
Is the object static? More... | |
bool | _usable |
Is the object usable? More... | |
int | _currentHitPoints |
The current hitpoints of the object. More... | |
int | _maxHitPoints |
The maximum hitpoints of the object. More... | |
bool | _minOneHitPoint |
If the object should have at least one hitpoint. More... | |
std::list< uint32 > | _ids |
The object's model IDs. 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... | |
Room * | _room |
Room the object is in. More... | |
Protected Attributes inherited from Aurora::NWScript::Object | |
uint32 | _id |
Common::UString | _tag |
|
private |
Engines::KotOR::Door::Door | ( | Module & | module, |
const Aurora::GFF3Struct & | door | ||
) |
|
virtual |
The door was clicked.
Reimplemented from Engines::KotOR::Object.
Definition at line 149 of file door.cpp.
References Engines::KotOR::Situated::_lastUsedBy, _linkedTo, _linkedToModule, _linkedToType, _module, close(), Common::UString::empty(), Engines::KotOR::ScriptContainer::hasScript(), isOpen(), Engines::KotOR::kScriptClick, Engines::KotOR::Module::movePC(), open(), and Engines::KotOR::ScriptContainer::runScript().
bool Engines::KotOR::Door::close | ( | Object * | closer | ) |
The closer object closes this door.
Definition at line 199 of file door.cpp.
References Engines::KotOR::Situated::_lastClosedBy, Engines::KotOR::Situated::_model, Engines::KotOR::Situated::_soundClosed, _state, isOpen(), Engines::KotOR::kScriptClosed, kStateClosed, kStateDestroyed, Engines::KotOR::Object::playSound(), and Engines::KotOR::ScriptContainer::runScript().
Referenced by Engines::KotOR::Functions::actionCloseDoor(), and click().
|
virtual |
The cursor entered the door.
Reimplemented from Engines::KotOR::Object.
Definition at line 130 of file door.cpp.
References CursorMan, and highlight().
|
virtual |
Hide the door's model.
Reimplemented from Engines::KotOR::Object.
Definition at line 121 of file door.cpp.
References Engines::KotOR::Situated::hide(), and leave().
|
virtual |
Hide the door's model if applicable.
Reimplemented from Engines::KotOR::Object.
|
virtual |
(Un)Highlight the door.
Reimplemented from Engines::KotOR::Object.
Definition at line 140 of file door.cpp.
References Engines::KotOR::Situated::_model.
Referenced by enter(), and leave().
|
virtual |
Is the door open?
Implements Engines::KotOR::Situated.
Definition at line 145 of file door.cpp.
References _state, kStateOpened1, and kStateOpened2.
Referenced by click(), close(), open(), and testCollision().
|
virtual |
The cursor left the door.
Reimplemented from Engines::KotOR::Object.
Definition at line 135 of file door.cpp.
References CursorMan, and highlight().
Referenced by hide().
|
private |
Load from a door instance.
Definition at line 59 of file door.cpp.
References Engines::KotOR::Situated::_modelName, Engines::KotOR::Object::_orientation, Engines::KotOR::Object::_position, Aurora::NWScript::Object::_tag, Engines::KotOR::Situated::_walkmesh, Common::UString::c_str(), Common::deg2rad(), Common::UString::empty(), Aurora::GFF3Struct::getString(), Aurora::kFileTypeDWK, Aurora::kFileTypeUTD, Engines::KotOR::Walkmesh::load(), Engines::KotOR::Situated::load(), Engines::loadOptionalGFF3(), MKTAG, Common::ScopedPtrBase< T, Deallocator >::reset(), and warning().
Referenced by Door().
|
protectedvirtual |
Load appearance-specific properties.
Implements Engines::KotOR::Situated.
Definition at line 98 of file door.cpp.
References Engines::KotOR::Situated::_appearanceID, _genericType, Aurora::NWScript::Object::_tag, Common::UString::c_str(), Aurora::kFieldIDInvalid, and TwoDAReg.
|
private |
Load the appearance from this 2DA row.
Definition at line 109 of file door.cpp.
References Engines::KotOR::Situated::_appearanceID, Engines::KotOR::Situated::_modelName, Engines::KotOR::Situated::_soundAppType, Aurora::TwoDARow::getInt(), Aurora::TwoDAFile::getRow(), Aurora::TwoDARow::getString(), Aurora::TwoDAFile::headerToColumn(), and Aurora::kFieldIDInvalid.
|
protectedvirtual |
Load door-specific properties.
Implements Engines::KotOR::Situated.
Definition at line 80 of file door.cpp.
References _genericType, _linkedTo, _linkedToFlag, _linkedToModule, _linkedToType, _state, _transitionDestination, Aurora::GFF3Struct::getString(), Aurora::GFF3Struct::getUint(), Engines::KotOR::kObjectTypeDoor, and Engines::KotOR::kObjectTypeWaypoint.
bool Engines::KotOR::Door::open | ( | Object * | opener | ) |
The opener object opens this door.
Definition at line 174 of file door.cpp.
References Engines::KotOR::Situated::_lastOpenedBy, Engines::KotOR::Situated::_model, Engines::KotOR::Situated::_soundLocked, Engines::KotOR::Situated::_soundOpened, _state, Engines::KotOR::Situated::isLocked(), isOpen(), Engines::KotOR::kScriptFailToOpen, Engines::KotOR::kScriptOpen, kStateDestroyed, kStateOpened1, Engines::KotOR::Object::playSound(), and Engines::KotOR::ScriptContainer::runScript().
Referenced by Engines::KotOR::Functions::actionOpenDoor(), and click().
|
virtual |
Reimplemented from Engines::KotOR::Situated.
Definition at line 170 of file door.cpp.
References Engines::KotOR::Situated::_walkmesh, isOpen(), and Graphics::Aurora::Walkmesh::testCollision().
|
private |
Index into the generic door types.
Definition at line 95 of file door.h.
Referenced by loadAppearance(), and loadObject().
|
private |
The object tag this door links to.
Definition at line 101 of file door.h.
Referenced by click(), and loadObject().
|
private |
|
private |
The module the object this door links to is in.
Definition at line 102 of file door.h.
Referenced by click(), and loadObject().
|
private |
The type of the object this door links to.
Definition at line 100 of file door.h.
Referenced by click(), and loadObject().
|
private |
|
private |
|
private |
A localized string describing where this door leads to.
Definition at line 105 of file door.h.
Referenced by loadObject().