ScummVM API documentation
Ultima::Ultima8::Actor Class Reference
Inheritance diagram for Ultima::Ultima8::Actor:
Ultima::Ultima8::Container Ultima::Ultima8::Item Ultima::Ultima8::Object Ultima::Ultima8::MainActor

Public Types

enum  ActorFlags {
  ACT_INVINCIBLE = 0x000001, ACT_ASCENDING = 0x000002, ACT_DESCENDING = 0x000004, ACT_ANIMLOCK = 0x000008,
  ACT_KNEELING = 0x000100, ACT_FIRSTSTEP = 0x000400, ACT_INCOMBAT = 0x000800, ACT_DEAD = 0x001000,
  ACT_SURRENDERED = 0x002000, ACT_WEAPONREADY = 0x004000, ACT_COMBATRUN = 0x008000, ACT_AIRWALK = 0x010000,
  ACT_IMMORTAL = 0x040000, ACT_WITHSTANDDEATH = 0x080000, ACT_FEIGNDEATH = 0x100000, ACT_STUNNED = 0x200000,
  ACT_POISONED = 0x400000, ACT_PATHFINDING = 0x800000
}
 
- Public Types inherited from Ultima::Ultima8::Item
enum  statusflags {
  FLG_DISPOSABLE = 0x0002, FLG_OWNED = 0x0004, FLG_CONTAINED = 0x0008, FLG_INVISIBLE = 0x0010,
  FLG_FLIPPED = 0x0020, FLG_IN_NPC_LIST = 0x0040, FLG_FAST_ONLY = 0x0080, FLG_GUMP_OPEN = 0x0100,
  FLG_EQUIPPED = 0x0200, FLG_BOUNCING = 0x0400, FLG_ETHEREAL = 0x0800, FLG_HANGING = 0x1000,
  FLG_FASTAREA = 0x2000, FLG_LOW_FRICTION = 0x4000, FLG_BROKEN = 0x8000
}
 
enum  extflags {
  EXT_FIXED = 0x0001, EXT_INCURMAP = 0x0002, EXT_LERP_NOPREV = 0x0008, EXT_HIGHLIGHT = 0x0010,
  EXT_CAMERA = 0x0020, EXT_SPRITE = 0x0040, EXT_TRANSPARENT = 0x0080, EXT_PERMANENT_NPC = 0x0100,
  EXT_TARGET = 0x0200, EXT_FEMALE = 0x8000
}
 

Public Member Functions

int16 getStr () const
 
void setStr (int16 str)
 
int16 getDex () const
 
void setDex (int16 dex)
 
int16 getInt () const
 
void setInt (int16 intl)
 
uint16 getHP () const
 
void setHP (uint16 hp)
 
int16 getMana () const
 
void setMana (int16 mp)
 
int16 getMaxMana () const
 
uint16 getMaxHP () const
 
bool isDead () const
 
bool isInCombat () const
 
bool isKneeling () const
 
bool isFalling () const
 
CombatProcessgetCombatProcess () const
 
AttackProcessgetAttackProcess () const
 
virtual void setInCombat (int activity)
 
virtual void clearInCombat ()
 
uint16 getAlignment () const
 
void setAlignment (uint16 a)
 
uint16 getEnemyAlignment () const
 
void setEnemyAlignment (uint16 a)
 
Animation::Sequence getLastAnim () const
 
void setLastAnim (Animation::Sequence anim)
 
Direction getDir () const
 
void setDir (Direction dir)
 
int32 getFallStart () const
 
void setFallStart (int32 zp)
 
void setUnkByte (uint8 b)
 
uint8 getUnkByte () const
 
bool hasActorFlags (uint32 flags) const
 
void setActorFlag (uint32 mask)
 
void clearActorFlag (uint32 mask)
 
void setCombatTactic (int no)
 
bool loadMonsterStats ()
 
bool giveTreasure ()
 
virtual void teleport (int mapnum, int32 x, int32 y, int32 z)
 
bool removeItem (Item *item) override
 
uint16 schedule (uint32 time)
 
bool setEquip (Item *item, bool checkwghtvol=false)
 
uint16 getEquip (uint32 type) const
 
virtual uint32 getArmourClass () const
 
virtual uint16 getDefenseType () const
 
virtual int16 getAttackingDex () const
 
virtual int16 getDefendingDex () const
 
uint16 getDamageType () const override
 get the damage type this object does when hitting something
 
virtual int getDamageAmount () const
 
void setDefaultActivity (int no, uint16 activity)
 
uint16 getDefaultActivity (int no) const
 
void setHomePosition (int32 x, int32 y, int32 z)
 
void getHomePosition (int32 &x, int32 &y, int32 &z) const
 
int calculateAttackDamage (uint16 other, int damage, uint16 type)
 
void receiveHit (uint16 other, Direction dir, int damage, uint16 type) override
 
virtual ProcId die (uint16 damageType, uint16 damagePts, Direction srcDir)
 
void killAllButCombatProcesses ()
 kill all processes except those related to combat
 
ProcId killAllButFallAnims (bool death)
 
bool areEnemiesNear ()
 check if NPCs are near which are in combat mode and hostile
 
uint16 setActivity (int activity)
 
uint16 getCurrentActivityNo () const
 
uint16 getLastActivityNo () const
 
void clearLastActivityNo ()
 
int32 getLastTickWasHit () const
 
uint16 doAnim (Animation::Sequence anim, Direction dir, unsigned int steps=0)
 
uint16 doAnimAfter (Animation::Sequence anim, Direction dir, ProcId waitfor)
 
bool hasAnim (Animation::Sequence anim)
 check if this actor has a specific animation
 
void setToStartOfAnim (Animation::Sequence anim)
 
Animation::Result tryAnim (Animation::Sequence anim, Direction dir, unsigned int steps=0, PathfindingState *state=0)
 
DirectionMode animDirMode (Animation::Sequence anim) const
 Get the number of directions supported by a given animation.
 
bool isBusy () const
 True if the actor is currently doing an animation.
 
int32 collideMove (int32 x, int32 y, int32 z, bool teleport, bool force, ObjId *hititem=0, uint8 *dirs=0) override
 overrides the standard item collideMove so we can notify nearby objects.
 
uint16 turnTowardDir (Direction dir, ProcId prevpid=0)
 
uint16 assignObjId () override
 
Common::String dumpInfo () const override
 dump some info about this object to a string
 
bool loadData (Common::ReadStream *rs, uint32 version)
 
void saveData (Common::WriteStream *ws) override
 
virtual int receiveShieldHit (int damage, uint16 damage_type)
 take a hit and optionally adjust it with the shields for this NPC.
 
uint16 getActiveWeapon () const
 
uint16 getCombatTactic () const
 
bool activeWeaponIsSmall () const
 
void tookHitCru ()
 A cru-specific behavior - mostly make "ugh" noises, or explode for some robots.
 
bool canSeeControlledActor (bool forcombat)
 Whether this NPC has the controlled actor in their sights (Crusader only)
 
void addFireAnimOffsets (int32 &x, int32 &y, int32 &z)
 Add the x/y/z fire offsets given the current state of the actor.
 
uint32 getAttackMoveTimeoutFinishFrame () const
 
uint16 getAttackMoveDodgeFactor () const
 
bool getAttackAimFlag () const
 
void setAttackAimFlag (bool val)
 
 INTRINSIC (I_isNPC)
 
 INTRINSIC (I_getDir)
 
 INTRINSIC (I_getLastAnimSet)
 
 INTRINSIC (I_pathfindToItem)
 
 INTRINSIC (I_pathfindToPoint)
 
 INTRINSIC (I_getStr)
 
 INTRINSIC (I_getDex)
 
 INTRINSIC (I_getInt)
 
 INTRINSIC (I_getHp)
 
 INTRINSIC (I_getMaxHp)
 
 INTRINSIC (I_getMana)
 
 INTRINSIC (I_getAlignment)
 
 INTRINSIC (I_getEnemyAlignment)
 
 INTRINSIC (I_setStr)
 
 INTRINSIC (I_setDex)
 
 INTRINSIC (I_setInt)
 
 INTRINSIC (I_setHp)
 
 INTRINSIC (I_setMana)
 
 INTRINSIC (I_setAlignment)
 
 INTRINSIC (I_setEnemyAlignment)
 
 INTRINSIC (I_getMap)
 
 INTRINSIC (I_addHp)
 
 INTRINSIC (I_teleport)
 
 INTRINSIC (I_doAnim)
 
 INTRINSIC (I_isInCombat)
 
 INTRINSIC (I_setInCombat)
 
 INTRINSIC (I_clrInCombat)
 
 INTRINSIC (I_setTarget)
 
 INTRINSIC (I_getTarget)
 
 INTRINSIC (I_isEnemy)
 
 INTRINSIC (I_isDead)
 
 INTRINSIC (I_setDead)
 
 INTRINSIC (I_clrDead)
 
 INTRINSIC (I_isImmortal)
 
 INTRINSIC (I_setImmortal)
 
 INTRINSIC (I_clrImmortal)
 
 INTRINSIC (I_isWithstandDeath)
 
 INTRINSIC (I_setWithstandDeath)
 
 INTRINSIC (I_clrWithstandDeath)
 
 INTRINSIC (I_isFeignDeath)
 
 INTRINSIC (I_setFeignDeath)
 
 INTRINSIC (I_clrFeignDeath)
 
 INTRINSIC (I_areEnemiesNear)
 
 INTRINSIC (I_isBusy)
 
 INTRINSIC (I_createActor)
 
 INTRINSIC (I_createActorCru)
 
 INTRINSIC (I_setActivity)
 
 INTRINSIC (I_setAirWalkEnabled)
 
 INTRINSIC (I_getAirWalkEnabled)
 
 INTRINSIC (I_schedule)
 
 INTRINSIC (I_getEquip)
 
 INTRINSIC (I_setEquip)
 
 INTRINSIC (I_setDefaultActivity0)
 
 INTRINSIC (I_setDefaultActivity1)
 
 INTRINSIC (I_setDefaultActivity2)
 
 INTRINSIC (I_getDefaultActivity0)
 
 INTRINSIC (I_getDefaultActivity1)
 
 INTRINSIC (I_getDefaultActivity2)
 
 INTRINSIC (I_setCombatTactic)
 
 INTRINSIC (I_setUnkByte)
 
 INTRINSIC (I_getUnkByte)
 
 INTRINSIC (I_getLastActivityNo)
 
 INTRINSIC (I_getCurrentActivityNo)
 
 INTRINSIC (I_turnToward)
 
 INTRINSIC (I_isKneeling)
 
 INTRINSIC (I_isFalling)
 
- Public Member Functions inherited from Ultima::Ultima8::Container
virtual bool CanAddItem (Item *item, bool checkwghtvol=false)
 
virtual bool addItem (Item *item, bool checkwghtvol=false)
 
virtual bool moveItemToEnd (Item *item)
 
void removeContents ()
 
void destroyContents ()
 Destroy all contents.
 
void setFlagRecursively (uint32 mask) override
 Set flag on container and all its contents recursively.
 
void containerSearch (UCList *itemlist, const uint8 *loopscript, uint32 scriptsize, bool recurse) const
 
ItemgetFirstItemWithShape (uint16 shapeno, bool recurse)
 
void getItemsWithShapeFamily (Std::vector< Item *> &itemlist, uint16 family, bool recurse)
 
uint32 getTotalWeight () const override
 
virtual uint32 getCapacity () const
 Get the container's capacity.
 
virtual uint32 getContentVolume () const
 Get the total volume used up by the container's current contents.
 
ObjId assignObjId () override
 
void clearObjId () override
 Clear objIDs of self and contents.
 
void destroy (bool delnow=false) override
 Destroy self.
 
Common::String dumpInfo () const override
 dump some info about this object to a string
 
bool loadData (Common::ReadStream *rs, uint32 version)
 
void saveData (Common::WriteStream *ws) override
 
 INTRINSIC (I_removeContents)
 
 INTRINSIC (I_destroyContents)
 
- Public Member Functions inherited from Ultima::Ultima8::Item
ObjId getParent () const
 Get the Container this Item is in, if any. (0 if not in a Container)
 
void setParent (ObjId p)
 Set the parent container of this item.
 
ContainergetParentAsContainer () const
 Get the Container this Item is in, if any. (NULL if not in a Container)
 
ContainergetRootContainer () const
 Get the top-most Container this Item is in, if any. (NULL if not in a Container)
 
const ItemgetTopItem () const
 
void setLocation (int32 x, int32 y, int32 z)
 
void setLocation (const Point3 &pt)
 
virtual void move (int32 x, int32 y, int32 z)
 
void move (const Point3 &pt)
 Move, but with a point struct.
 
bool moveToContainer (Container *container, bool checkwghtvol=false)
 
void moveToEtherealVoid ()
 Move an item to the Ethereal Void.
 
void returnFromEtherealVoid ()
 Move an item out of the Ethereal Void to where it originally was.
 
void movedByPlayer ()
 Check if moving this item is stealing; call AvatarStoleSomething if so.
 
Point3 getLocationAbsolute () const
 
Point3 getLocation () const
 
int32 getZ () const
 Get this Item's Z coordinate.
 
void setZ (int32 z)
 Set this Item's Z coordinate.
 
void getGumpLocation (int32 &x, int32 &y) const
 
void setGumpLocation (int32 x, int32 y)
 
void randomGumpLocation ()
 
Point3 getCentre () const
 
void getFootpadWorld (int32 &x, int32 &y, int32 &z) const
 Get the size of this item's 3D bounding box, in world coordinates.
 
void getFootpadData (int32 &x, int32 &y, int32 &z) const
 
Box getWorldBox () const
 Get the Box this item occupies in the world. Undef if item is contained.
 
uint16 getFlags () const
 Get all flags.
 
bool hasFlags (uint16 flags) const
 Does this item have any of the given flags mask set.
 
void setFlag (uint32 mask)
 Set the flags set in the given mask.
 
void clearFlag (uint32 mask)
 Clear the flags set in the given mask.
 
void setExtFlags (uint32 f)
 Set _extendedFlags.
 
uint32 getExtFlags () const
 Get _extendedFlags.
 
bool hasExtFlags (uint32 flags) const
 Does item have any of the given extended flags.
 
void setExtFlag (uint32 mask)
 Set the _extendedFlags set in the given mask.
 
void clearExtFlag (uint32 mask)
 Clear the _extendedFlags set in the given mask.
 
uint32 getShape () const
 Get this Item's shape number.
 
void setShape (uint32 shape)
 Set this Item's shape number.
 
uint32 getFrame () const
 Get this Item's frame number.
 
void setFrame (uint32 frame)
 Set this Item's frame number.
 
uint16 getQuality () const
 Get this Item's quality (a.k.a. 'Q')
 
void setQuality (uint16 quality)
 Set this Item's quality (a.k.a 'Q');.
 
uint16 getNpcNum () const
 
void setNpcNum (uint16 npcnum)
 
uint16 getMapNum () const
 
void setMapNum (uint16 mapnum)
 
const ShapeInfogetShapeInfo () const
 Get the ShapeInfo object for this Item. (The pointer will be cached.)
 
virtual const ShapeInfogetShapeInfoFromGameInstance () const
 Get the ShapeInfo object for this Item from the game instance.
 
const ShapegetShapeObject () const
 Get the Shape object for this Item. (The pointer will be cached.)
 
uint16 getFamily () const
 
bool canMergeWith (const Item *other) const
 Check if we can merge with another item.
 
ObjId getGump () const
 Get the open ContainerGump for this Item, if any. (NULL if not open.)
 
void clearGump ()
 Call this to notify the Item's open Gump has closed.
 
ObjId openGump (uint32 gumpshape)
 Open a gump with the given shape for this Item.
 
void closeGump ()
 Close this Item's gump, if any.
 
ProcId bark (const Std::string &msg, ObjId id=0)
 
void clearBark ()
 Call this to notify the Item's open bark has closed.
 
void closeBark ()
 Close this Item's bark, if any.
 
bool overlaps (const Item &item2) const
 Check if this item overlaps another item in 3D world-space.
 
bool overlapsxy (const Item &item2) const
 Check if this item overlaps another item in the xy dims in 3D space.
 
bool isOn (const Item &item2) const
 Check if this item is on top of another item.
 
bool isCompletelyOn (const Item &item2) const
 Check if this item is on completely on top of another item.
 
bool isCentreOn (const Item &item2) const
 Check if the centre of this item is on top of another item.
 
bool isOnScreen () const
 Check if the item is currently entirely visible on screen.
 
bool isPartlyOnScreen () const
 Check if the item is currently partly visible on screen.
 
bool canExistAt (int32 x, int32 y, int32 z, bool needsupport=false) const
 Check if this item can exist at the given coordinates.
 
bool canExistAt (const Point3 &pt, bool needsupport=false) const
 
Direction getDirToItemCentre (const Item &item2) const
 
Direction getDirToItemCentre (const Point3 &pt) const
 Same as above, but from a fixed point.
 
int getRange (const Item &item2, bool checkz=false) const
 
int getRangeIfVisible (const Item &item2) const
 get 'distance' to other item if it's visible (ie, there's nothing blocking the path)
 
bool canReach (const Item *other, int range, int32 x=0, int32 y=0, int32 z=0) const
 
int32 ascend (int delta)
 
void fall ()
 
void grab ()
 
void hurl (int xs, int ys, int zs, int grav)
 Hurl the item in the given direction.
 
void setGravityPID (ProcId pid)
 Set the PID of the GravityProcess for this Item. There should be only one.
 
ProcId getGravityPID () const
 Get the PID of the GravityProcess for this Item (or 0)
 
virtual GravityProcessensureGravityProcess ()
 Get the GravityProcess of this Item, creating it if necessary.
 
virtual uint32 getWeight () const
 Get the weight of this Item.
 
virtual uint32 getVolume () const
 Get the volume this item takes up in a container.
 
void explode (int explosion_type, bool destroy_item, bool cause_damage=true)
 
uint16 fireWeapon (int32 x, int32 y, int32 z, Direction dir, int firetype, bool findtarget)
 fire the given weapon type in the given direction from location x, y, z.
 
uint16 fireDistance (const Item *other, Direction dir, int16 xoff, int16 yoff, int16 zoff) const
 
uint8 getDamagePoints () const
 get damage points, used in Crusader for item damage.
 
void setDamagePoints (uint8 points)
 set damage points, used in Crusader for item damage.
 
int32 getTargetZRelativeToAttackerZ (int32 attackerz) const
 
unsigned int countNearby (uint32 shape, uint16 range) const
 count nearby objects of a given shape
 
bool canDrag () const
 can this item be dragged?
 
int getThrowRange () const
 
bool checkLoopScript (const uint8 *script, uint32 scriptsize) const
 
uint32 callUsecodeEvent_look ()
 
uint32 callUsecodeEvent_use ()
 
uint32 callUsecodeEvent_anim ()
 
uint32 callUsecodeEvent_cachein ()
 
uint32 callUsecodeEvent_hit (ObjId hitted, int16 hitforce)
 
uint32 callUsecodeEvent_gotHit (ObjId hitter, int16 hitforce)
 
uint32 callUsecodeEvent_hatch ()
 
uint32 callUsecodeEvent_schedule (uint32 time)
 
uint32 callUsecodeEvent_release ()
 
uint32 callUsecodeEvent_equip ()
 
uint32 callUsecodeEvent_equipWithParam (ObjId param)
 
uint32 callUsecodeEvent_unequip ()
 
uint32 callUsecodeEvent_unequipWithParam (ObjId param)
 
uint32 callUsecodeEvent_combine ()
 
uint32 callUsecodeEvent_calledFromAnim ()
 
uint32 callUsecodeEvent_enterFastArea ()
 
uint32 callUsecodeEvent_leaveFastArea ()
 
uint32 callUsecodeEvent_cast (uint16 unk)
 
uint32 callUsecodeEvent_justMoved ()
 
uint32 callUsecodeEvent_AvatarStoleSomething (uint16 unk)
 
uint32 callUsecodeEvent_guardianBark (int16 unk)
 
uint32 callUsecodeEvent_unhatch ()
 
uint32 use ()
 
Point3 getLerped () const
 Get lerped location.
 
void doLerp (int32 factor)
 
void setupLerp (int32 gametick)
 Setup the lerped info for this gametick and animate the item.
 
virtual uint32 enterFastArea ()
 The item has entered the fast area.
 
virtual void leaveFastArea ()
 
Common::String dumpInfo () const override
 dump some info about this item to a string
 
bool loadData (Common::ReadStream *rs, uint32 version)
 
void saveData (Common::WriteStream *ws) override
 
 INTRINSIC (I_touch)
 
 INTRINSIC (I_getX)
 
 INTRINSIC (I_getY)
 
 INTRINSIC (I_getZ)
 
 INTRINSIC (I_getCX)
 
 INTRINSIC (I_getCY)
 
 INTRINSIC (I_getCZ)
 
 INTRINSIC (I_getPoint)
 
 INTRINSIC (I_getShape)
 
 INTRINSIC (I_setShape)
 
 INTRINSIC (I_getFrame)
 
 INTRINSIC (I_setFrame)
 
 INTRINSIC (I_getQuality)
 
 INTRINSIC (I_getUnkEggType)
 
 INTRINSIC (I_setUnkEggType)
 
 INTRINSIC (I_getQuantity)
 
 INTRINSIC (I_getContainer)
 
 INTRINSIC (I_getRootContainer)
 
 INTRINSIC (I_getQ)
 
 INTRINSIC (I_getQHi)
 
 INTRINSIC (I_getQLo)
 
 INTRINSIC (I_setQ)
 
 INTRINSIC (I_setQHi)
 
 INTRINSIC (I_setQLo)
 
 INTRINSIC (I_setQuality)
 
 INTRINSIC (I_setQuantity)
 
 INTRINSIC (I_setQAndCombine)
 
 INTRINSIC (I_getFamily)
 
 INTRINSIC (I_getTypeFlag)
 
 INTRINSIC (I_getStatus)
 
 INTRINSIC (I_orStatus)
 
 INTRINSIC (I_andStatus)
 
 INTRINSIC (I_getFootpadData)
 
 INTRINSIC (I_overlaps)
 
 INTRINSIC (I_overlapsXY)
 
 INTRINSIC (I_isOn)
 
 INTRINSIC (I_isCompletelyOn)
 
 INTRINSIC (I_isCentreOn)
 
 INTRINSIC (I_isInNpc)
 
 INTRINSIC (I_ascend)
 
 INTRINSIC (I_getWeight)
 
 INTRINSIC (I_getWeightIncludingContents)
 
 INTRINSIC (I_getVolume)
 
 INTRINSIC (I_bark)
 
 INTRINSIC (I_getMapArray)
 
 INTRINSIC (I_setMapArray)
 
 INTRINSIC (I_getNpcNum)
 
 INTRINSIC (I_setNpcNum)
 
 INTRINSIC (I_getDirToCoords)
 
 INTRINSIC (I_getDirFromCoords)
 
 INTRINSIC (I_getDirToItem)
 
 INTRINSIC (I_getDirFromItem)
 
 INTRINSIC (I_getDirFromTo16)
 
 INTRINSIC (I_getClosestDirectionInRange)
 
 INTRINSIC (I_look)
 
 INTRINSIC (I_use)
 
 INTRINSIC (I_gotHit)
 
 INTRINSIC (I_enterFastArea)
 
 INTRINSIC (I_cast)
 
 INTRINSIC (I_ask)
 
 INTRINSIC (I_getSliderInput)
 
 INTRINSIC (I_openGump)
 
 INTRINSIC (I_closeGump)
 
 INTRINSIC (I_create)
 
 INTRINSIC (I_legalCreateAtPoint)
 
 INTRINSIC (I_legalCreateAtCoords)
 
 INTRINSIC (I_legalCreateInCont)
 
 INTRINSIC (I_push)
 
 INTRINSIC (I_pop)
 
 INTRINSIC (I_popToCoords)
 
 INTRINSIC (I_popToContainer)
 
 INTRINSIC (I_popToEnd)
 
 INTRINSIC (I_destroy)
 
 INTRINSIC (I_move)
 
 INTRINSIC (I_legalMoveToPoint)
 
 INTRINSIC (I_legalMoveToContainer)
 
 INTRINSIC (I_hurl)
 
 INTRINSIC (I_shoot)
 
 INTRINSIC (I_fall)
 
 INTRINSIC (I_grab)
 
 INTRINSIC (I_igniteChaos)
 
 INTRINSIC (I_getFamilyOfType)
 
 INTRINSIC (I_getEtherealTop)
 
 INTRINSIC (I_guardianBark)
 
 INTRINSIC (I_getSurfaceWeight)
 
 INTRINSIC (I_isExplosive)
 
 INTRINSIC (I_receiveHit)
 
 INTRINSIC (I_explode)
 
 INTRINSIC (I_canReach)
 
 INTRINSIC (I_getRange)
 
 INTRINSIC (I_getRangeIfVisible)
 
 INTRINSIC (I_isCrusTypeNPC)
 
 INTRINSIC (I_setBroken)
 
 INTRINSIC (I_inFastArea)
 
 INTRINSIC (I_equip)
 
 INTRINSIC (I_unequip)
 
 INTRINSIC (I_avatarStoleSomething)
 
 INTRINSIC (I_isPartlyOnScreen)
 
 INTRINSIC (I_fireWeapon)
 
 INTRINSIC (I_fireDistance)
 
- Public Member Functions inherited from Ultima::Ultima8::Object
ObjId getObjId () const
 get this Object's objID
 
ProcId callUsecode (uint16 classid, uint16 offset, const uint8 *args=0, int argsize=0)
 
bool loadData (Common::ReadStream *rs, uint32 version)
 

Static Public Member Functions

static ActorcreateActor (uint32 shape, uint32 frame)
 create an actor, assign objid, make it ethereal and load monster stats.
 

Protected Member Functions

uint16 setActivityU8 (int activity)
 
uint16 setActivityCru (int activity)
 
bool loadMonsterStatsU8 ()
 
bool loadMonsterStatsCru ()
 
void receiveHitU8 (uint16 other, Direction dir, int damage, uint16 type)
 
void receiveHitCru (uint16 other, Direction dir, int damage, uint16 type)
 
void setInCombatU8 ()
 
void setInCombatCru (int activity)
 
ProcId dieU8 (uint16 damageType)
 
ProcId dieCru (uint16 damageType, uint16 damagePts, Direction srcDir)
 
- Protected Member Functions inherited from Ultima::Ultima8::Item
bool isRobotCru () const
 True if this is a Robot shape (in a fixed list)
 
int scaleReceivedDamageCru (int damage, uint16 type) const
 

Protected Attributes

int16 _strength
 
int16 _dexterity
 
int16 _intelligence
 
uint16 _hitPoints
 
int16 _mana
 
uint16 _alignment
 
uint16 _enemyAlignment
 
Animation::Sequence _lastAnim
 
uint16 _animFrame
 
Direction _direction
 
int32 _fallStart
 
uint8 _unkByte
 
uint16 _combatTactic
 tactic being used in combat (for Crusader), the entry in the combat.dat flex.
 
uint32 _actorFlags
 
uint16 _defaultActivity [3]
 the 3 default NPC activities from Crusader
 
int32 _homeX
 The "home" position used in some Crusader attack tactics.
 
int32 _homeY
 
int32 _homeZ
 
uint16 _currentActivityNo
 Current and last activity (only used in Crusader)
 
uint16 _lastActivityNo
 
uint16 _activeWeapon
 Active weapon item (only used in Crusader)
 
int32 _lastTickWasHit
 Kernel timer last time NPC was hit (only used in Crusader)
 
uint32 _attackMoveStartFrame
 
uint32 _attackMoveTimeout
 The number of frames the above effect lasts for.
 
uint16 _attackMoveDodgeFactor
 
bool _attackAimFlag
 A flag used in Crusader attack process which adjusts the aim accuracy.
 
- Protected Attributes inherited from Ultima::Ultima8::Container
Std::list< Item * > _contents
 
- Protected Attributes inherited from Ultima::Ultima8::Item
uint32 _frame
 
int32 _x
 
int32 _y
 
int32 _z
 
uint16 _flags
 
uint16 _quality
 
uint16 _npcNum
 
uint16 _mapNum
 
uint32 _extendedFlags
 
ObjId _parent
 
const Shape_cachedShape
 
const ShapeInfo_cachedShapeInfo
 
Lerped _lPrev
 
Lerped _lNext
 
int32 _ix
 
int32 _iy
 
int32 _iz
 
ObjId _gump
 
ObjId _bark
 
ProcId _gravityPid
 
uint8 _damagePoints
 
- Protected Attributes inherited from Ultima::Ultima8::Object
ObjId _objId
 

Additional Inherited Members

- Static Public Attributes inherited from Ultima::Ultima8::Item
static const int MAX_QUANTITY = 666
 

Member Function Documentation

◆ loadMonsterStats()

bool Ultima::Ultima8::Actor::loadMonsterStats ( )

set stats from MonsterInfo (hp, dex, alignment, enemyAlignment) in Crusader this comes from the NPC Data

Returns
true if info was found, false otherwise

◆ giveTreasure()

bool Ultima::Ultima8::Actor::giveTreasure ( )

add treasure according to the TreasureInfo in the MonsterInfo

Returns
true if a MonsterInfo struct was found, false otherwise

◆ removeItem()

bool Ultima::Ultima8::Actor::removeItem ( Item item)
overridevirtual

Remove an item from the container. This does NOT update item.

Parameters
itemThe item to remove
Returns
true if successful, false if item wasn't in container

Reimplemented from Ultima::Ultima8::Container.

◆ schedule()

uint16 Ultima::Ultima8::Actor::schedule ( uint32  time)
Returns
the PID of the spawned usecode process if any (otherwise 0)

◆ calculateAttackDamage()

int Ultima::Ultima8::Actor::calculateAttackDamage ( uint16  other,
int  damage,
uint16  type 
)

calculate the damage an attack against this Actor does.

Parameters
otherthe attacker (can be zero)
damagebase damage
typedamage type
Returns
the amount of damage to be applied. Zero if attack missed.

◆ receiveHit()

void Ultima::Ultima8::Actor::receiveHit ( uint16  other,
Direction  dir,
int  damage,
uint16  type 
)
overridevirtual

receive a hit

Parameters
damagebase damage (or zero to use attacker's default damage)
typedamage type (or zero to use attacker's default type)

Reimplemented from Ultima::Ultima8::Item.

◆ die()

virtual ProcId Ultima::Ultima8::Actor::die ( uint16  damageType,
uint16  damagePts,
Direction  srcDir 
)
virtual

die

Parameters
damageTypedamage type that caused the death
damagPtsdamage points that caused the death
srcDirdirection damage came from
Returns
the process ID of the death animation

Reimplemented in Ultima::Ultima8::MainActor.

◆ killAllButFallAnims()

ProcId Ultima::Ultima8::Actor::killAllButFallAnims ( bool  death)

kill all animation processes except those related to dying/falling

Returns
PID of animprocess doing the falling (or getting up)

◆ setActivity()

uint16 Ultima::Ultima8::Actor::setActivity ( int  activity)

starts an activity

Returns
processID of process handling the activity or zero

◆ doAnim()

uint16 Ultima::Ultima8::Actor::doAnim ( Animation::Sequence  anim,
Direction  dir,
unsigned int  steps = 0 
)

run the given animation

Returns
the PID of the ActorAnimProcess

◆ doAnimAfter()

uint16 Ultima::Ultima8::Actor::doAnimAfter ( Animation::Sequence  anim,
Direction  dir,
ProcId  waitfor 
)

run the given anim after the other animation (waitfor). Safe for either anim to be 0.

Returns
the new anim pid, or 0 if failed

◆ setToStartOfAnim()

void Ultima::Ultima8::Actor::setToStartOfAnim ( Animation::Sequence  anim)

Set the frame to the first frame of an anim (used in resetting NPCs etc) Uses current direction and sets last anim no.

◆ tryAnim()

Animation::Result Ultima::Ultima8::Actor::tryAnim ( Animation::Sequence  anim,
Direction  dir,
unsigned int  steps = 0,
PathfindingState state = 0 
)

check if the given animation can be done from the location in state, without walking into things. If state is non-zero, and successful, state will be updated to after the animation. If unsuccessful, the contents of state are undefined.

Parameters
animAction to try
dirdirection to walk in
statethe state to start from, or 0 to use the current state

◆ turnTowardDir()

uint16 Ultima::Ultima8::Actor::turnTowardDir ( Direction  dir,
ProcId  prevpid = 0 
)

Turn one step toward the given direction. If the current direction is already the same, do nothing. Returns an anim process or 0 if no move needed. If a previous pid is specified, wait for that process.

◆ assignObjId()

uint16 Ultima::Ultima8::Actor::assignObjId ( )
overridevirtual

Assign self and contents (if any) an objID

Returns
the assiged ID

Reimplemented from Ultima::Ultima8::Object.

◆ setActivityU8()

uint16 Ultima::Ultima8::Actor::setActivityU8 ( int  activity)
protected

starts an activity (Ultima 8 version)

Returns
processID of process handling the activity or zero

◆ setActivityCru()

uint16 Ultima::Ultima8::Actor::setActivityCru ( int  activity)
protected

starts an activity (Crusader version)

Returns
processID of process handling the activity or zero

Member Data Documentation

◆ _unkByte

uint8 Ultima::Ultima8::Actor::_unkByte
protected

Unknown byte 0x0C from npcdata.dat in U8, or Unknown byte 0x99 from NPC struct in Crusader.

◆ _attackMoveStartFrame

uint32 Ultima::Ultima8::Actor::_attackMoveStartFrame
protected

The frame certain animations last happened (for Crusader). Used in calcualting how hard controlled actor is to hit.

◆ _attackMoveDodgeFactor

uint16 Ultima::Ultima8::Actor::_attackMoveDodgeFactor
protected

A spread divisor used by shots targeting the controlled actor when they are within the above timeout.


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