Wrath of Zeus
Made by Torchlight Games for CSE 125 SP24
Loading...
Searching...
No Matches
Public Member Functions | Data Fields | Static Public Attributes
Object Class Reference

#include <object.hpp>

Inheritance diagram for Object:
Creature Exit Item Projectile SolidSurface Torchlight Trap WeaponCollider

Public Member Functions

 Object (ObjectType type, Physics physics, ModelType modelType)
 
virtual ~Object ()
 
void setModel (ModelType type)
 Sets this Object's model and initializes its dimensions to the given model's default dimensions. More...
 
virtual SharedObject toShared ()
 Generates a SharedObject representation of this object. More...
 
virtual void doCollision (Object *other, ServerGameState &state)
 Code to run when this object collides with another. More...
 
std::string to_string (unsigned int tab_offset)
 
std::string to_string ()
 

Data Fields

EntityID globalID {}
 Unique object ID (used to index into the ServerGameState::objects vector) More...
 
SpecificID typeID {}
 Type-specific Object ID (used to index into the type-specific objects vector in ServerGameState) More...
 
MovableID movableID {}
 Movable ID (used to index into the movable objects vector in ServerGameState) More...
 
ObjectType type
 Identifies this object's type (derived class) More...
 
Physics physics
 Object's Physics-related properties. More...
 
ModelType modelType
 Object's render model type (specifies this Object's render model to the client) More...
 
AnimState animState
 Object's animation state and current action. For non-animated objects, this defaults as AnimState::IdleAnim. More...
 
bool is_sprinting
 used to determine if the player is sprinting for animation purposes More...
 
std::vector< glm::ivec2 > gridCellPositions
 Vector of (x, y) positions of GridCells currently occupied by this object. More...
 
float distance_moved
 Distance moved, for use in deciding when to play footsteps IMPORTANT: reset every time a footstep sound is performed for objects that play foosteps. More...
 

Static Public Attributes

static std::unordered_map< ModelType, glm::vec3 > models
 Maps from ModelType to a model's dimensions as read from the model files. (At present, these values are hard-coded in object.cpp) More...
 

Constructor & Destructor Documentation

◆ Object()

Object::Object ( ObjectType  type,
Physics  physics,
ModelType  modelType 
)
Parameters
typeType of the object
Physicsposition/physics info for the object
modelTypeWhat kind of model to render for this object

◆ ~Object()

Object::~Object ( )
virtual

Member Function Documentation

◆ doCollision()

virtual void Object::doCollision ( Object other,
ServerGameState state 
)
inlinevirtual

Code to run when this object collides with another.

NOTE: default implementation does nothing only override behaviors will matter

Reimplemented in Exit, FireballTrap, FloorSpike, Item, Lava, Minotaur, Orb, Projectile, Python, Slime, Spell, SpikeTrap, TeleporterTrap, and WeaponCollider.

◆ setModel()

void Object::setModel ( ModelType  type)

Sets this Object's model and initializes its dimensions to the given model's default dimensions.

Parameters
typeModelType of the render model that this Object should be rendered as.

◆ to_string() [1/2]

std::string Object::to_string ( )
inline

◆ to_string() [2/2]

std::string Object::to_string ( unsigned int  tab_offset)

◆ toShared()

SharedObject Object::toShared ( )
virtual

Generates a SharedObject representation of this object.

Returns
A SharedObject representation of this object.

Reimplemented in Creature, DungeonMaster, Enemy, Exit, Item, Lava, Orb, Player, Projectile, SolidSurface, Torchlight, Trap, WeaponCollider, and Lightning.

Field Documentation

◆ animState

AnimState Object::animState

Object's animation state and current action. For non-animated objects, this defaults as AnimState::IdleAnim.

◆ distance_moved

float Object::distance_moved

Distance moved, for use in deciding when to play footsteps IMPORTANT: reset every time a footstep sound is performed for objects that play foosteps.

◆ globalID

EntityID Object::globalID {}

Unique object ID (used to index into the ServerGameState::objects vector)

◆ gridCellPositions

std::vector<glm::ivec2> Object::gridCellPositions

Vector of (x, y) positions of GridCells currently occupied by this object.

◆ is_sprinting

bool Object::is_sprinting

used to determine if the player is sprinting for animation purposes

◆ models

std::unordered_map< ModelType, glm::vec3 > Object::models
static

Maps from ModelType to a model's dimensions as read from the model files. (At present, these values are hard-coded in object.cpp)

◆ modelType

ModelType Object::modelType

Object's render model type (specifies this Object's render model to the client)

◆ movableID

MovableID Object::movableID {}

Movable ID (used to index into the movable objects vector in ServerGameState)

◆ physics

Physics Object::physics

Object's Physics-related properties.

◆ type

ObjectType Object::type

Identifies this object's type (derived class)

◆ typeID

SpecificID Object::typeID {}

Type-specific Object ID (used to index into the type-specific objects vector in ServerGameState)


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