22#ifndef TITANIC_PET_CONTROL_H
23#define TITANIC_PET_CONTROL_H
25#include "titanic/core/game_object.h"
26#include "titanic/core/node_item.h"
27#include "titanic/core/room_item.h"
28#include "titanic/messages/messages.h"
29#include "titanic/messages/mouse_messages.h"
30#include "titanic/pet_control/pet_conversations.h"
31#include "titanic/pet_control/pet_frame.h"
32#include "titanic/pet_control/pet_inventory.h"
33#include "titanic/pet_control/pet_translation.h"
34#include "titanic/pet_control/pet_starfield.h"
35#include "titanic/pet_control/pet_real_life.h"
36#include "titanic/pet_control/pet_remote.h"
37#include "titanic/pet_control/pet_rooms.h"
38#include "titanic/support/strings.h"
39#include "titanic/room_flags.h"
43enum SummonResult { SUMMON_CANT = 0, SUMMON_PRESENT = 1, SUMMON_CAN = 2 };
50 PetEventInfo() : _id(0), _target(
nullptr) {}
69 PetEventInfo _timers[2];
99 bool isBotInView(
const CString &name)
const;
109 void setTimerPersisent(
int id,
bool flag);
122 PetArea _currentArea;
182 PetArea
setArea(PetArea newSection,
bool forceChange =
false);
273 bool refreshUI =
true,
bool sendMsg =
true);
296 bool checkNode(
const CString &name);
372 _areaLockCount =
MAX(_areaLockCount - 1, 0);
375 bool isSuccUBusActive()
const;
446 uint getRoomFlags()
const {
454 _rooms.setElevatorNum(elevNum);
461 return _rooms.getElevatorNum();
468 _rooms.setFloorNum(floorNum);
475 return _rooms.getFloorNum();
482 _rooms.setRoomNum(roomNum);
489 return _rooms.getRoomNum();
510 _rooms.setSublevel(level);
517 return _rooms.getSublevel();
527 int getAssignedRoomFlags()
const {
531 uint getSpecialRoomFlags(
const CString &name) {
Definition: messages.h:410
Definition: game_object.h:79
Definition: messages.h:309
Definition: mouse_messages.h:117
Definition: mouse_messages.h:181
Definition: mouse_messages.h:139
Definition: mouse_messages.h:150
Definition: mouse_messages.h:103
Definition: node_item.h:29
Definition: pet_control.h:45
void incInputLocks()
Definition: pet_control.h:351
int getAssignedElevatorNum() const
Definition: pet_control.h:564
int getRoomsSublevel() const
Definition: pet_control.h:516
void drawSquares(CScreenManager *screenManager, int count)
void setActiveNPC(CTrueTalkNPC *npc)
int canSummonBot(const CString &name)
void convResetNPC()
Definition: pet_control.h:402
CGameObject * getNextObject(CGameObject *prior) const
void reassignRoom(PassengerClass passClassNum)
Definition: pet_control.h:428
void setRoomsElevatorNum(int elevNum)
Definition: pet_control.h:453
void summonBot(const CString &name, int val)
bool contains(const Point &pt) const
Definition: pet_control.h:219
PetArea setArea(PetArea newSection, bool forceChange=false)
void setRemoteTarget(CGameObject *item)
int getRoomsWellEntry() const
Definition: pet_control.h:502
void removeFromInventory(CGameObject *item, CTreeItem *newParent, bool refreshUI=true, bool sendMsg=true)
void load(SimpleFile *file) override
void setRoomsWellEntry(int entryNum)
Definition: pet_control.h:495
void invChange(CGameObject *item)
bool isDoorOrBellbotPresent() const
bool isSuccUBusDest(uint roomFlags)
Definition: pet_control.h:543
void highlightGlyph(int id)
void resetRoomsHighlight()
Definition: pet_control.h:523
void draw(CScreenManager *screenManager) override
int getRoomsRoomNum() const
Definition: pet_control.h:488
void addTranslation(StringId id1, StringId id2)
void displayMessage(StringId stringId, int param=0) const
void playSound(int soundNum)
void addToInventory(CGameObject *item)
bool isInputLocked() const
Definition: pet_control.h:346
void incAreaLocks()
Definition: pet_control.h:366
void setAreaChangeType(int changeType)
Definition: pet_control.h:294
int getAssignedRoomNum() const
Definition: pet_control.h:550
CGameObject * dragEnd(const Point &pt) const
void convResetDials(int flag=1)
bool dismissBot(const CString &name)
void starsSetButtons(int matchIndex, bool isMarkerClose)
PassengerClass getMailDestClass(const CRoomFlags &roomFlags) const
int getRoomsElevatorNum() const
Definition: pet_control.h:460
CRoomItem * getHiddenRoom()
void setActiveNPC(const CString &name)
void decAreaLocks()
Definition: pet_control.h:371
void moveToHiddenRoom(CTreeItem *item)
int getRoomsFloorNum() const
Definition: pet_control.h:474
void phonographAction(const CString &action)
Definition: pet_control.h:592
bool isAreaUnlocked() const
Definition: pet_control.h:361
void setRoomsElevatorBroken(bool flag)
Definition: pet_control.h:571
Rect getBounds() const override
int getAssignedFloorNum() const
Definition: pet_control.h:557
void decInputLocks()
Definition: pet_control.h:356
void startPetTimer(uint timerIndex, uint firstDuration, uint duration, CPetSection *target)
void removeFromInventory(CGameObject *item, bool refreshUI=true, bool sendMsg=true)
void onSummonBot(const CString &name, int val)
CGameObject * getHiddenObject(const CString &name)
bool changeLocationClass(PassengerClass newClassNum)
Definition: pet_control.h:435
void enterNode(CNodeItem *node)
void save(SimpleFile *file, int indent) override
bool isSuccUBusRoom(const CRoomFlags &roomFlags)
Definition: pet_control.h:585
bool isFirstClassSuite() const
Definition: pet_control.h:578
void setRoomsFloorNum(int floorNum)
Definition: pet_control.h:467
CGameObject * getFirstObject() const
bool isInAssignedRoom() const
Definition: pet_control.h:442
void enterRoom(CRoomItem *room)
void stopPetTimer(uint timerIndex)
void displayMessage(const CString &str, int param=0) const
void setRoomsRoomNum(int roomNum)
Definition: pet_control.h:481
void convAddLine(const CString &line)
Definition: pet_control.h:419
bool checkDragEnd(CGameObject *item) const
void setRoomsSublevel(int level)
Definition: pet_control.h:509
Definition: pet_conversations.h:34
void addLine(const CString &line)
Definition: pet_frame.h:34
Definition: pet_inventory.h:35
Definition: pet_real_life.h:34
Definition: pet_remote.h:33
Definition: pet_rooms.h:32
uint getRoomFlags() const
int getAssignedElevatorNum() const
uint getAssignedRoomFlags() const
int getAssignedRoomNum() const
void reassignRoom(PassengerClass passClassNum)
bool changeLocationClass(PassengerClass newClassNum)
void setElevatorBroken(bool flag)
Definition: pet_rooms.h:218
int getWellEntry() const
Definition: pet_rooms.h:213
void setWellEntry(int val)
Definition: pet_rooms.h:208
int getAssignedFloorNum() const
bool isAssignedRoom(uint roomFlags) const
Definition: pet_section.h:51
Definition: pet_starfield.h:33
Definition: pet_translation.h:30
Definition: room_flags.h:30
bool isSuccUBusDest() const
Definition: room_flags.h:222
bool isFirstClassSuite() const
Definition: room_flags.h:227
static uint getSpecialRoomFlags(const CString &roomName)
bool isSuccUBusRoomFlags() const
Definition: room_item.h:33
Definition: screen_manager.h:49
Definition: messages.h:190
Definition: tree_item.h:37
Definition: true_talk_npc.h:43
Definition: simple_file.h:49
T MAX(T a, T b)
Definition: util.h:66
bool contains(T x, T y) const
Definition: rect.h:246