ScummVM API documentation
parrot.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef TITANIC_PARROT_H
23 #define TITANIC_PARROT_H
24 
25 #include "titanic/npcs/true_talk_npc.h"
26 #include "titanic/moves/move_player_to.h"
27 
28 namespace Titanic {
29 
30 enum ParrotState {
31  PARROT_IN_CAGE = 0, PARROT_1 = 1, PARROT_ESCAPED = 2,
32  PARROT_MAILED = 3, PARROT_4 = 4
33 };
34 
35 class CParrot : public CTrueTalkNPC {
36  DECLARE_MESSAGE_MAP;
37  bool ActMsg(CActMsg *msg);
38  bool MouseButtonDownMsg(CMouseButtonDownMsg *msg);
39  bool MovieEndMsg(CMovieEndMsg *msg);
40  bool EnterViewMsg(CEnterViewMsg *msg);
41  bool TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg);
42  bool MouseDragStartMsg(CMouseDragStartMsg *msg);
43  bool LeaveViewMsg(CLeaveViewMsg *msg);
44  bool ParrotSpeakMsg(CParrotSpeakMsg *msg);
45  bool NPCPlayTalkingAnimationMsg(CNPCPlayTalkingAnimationMsg *msg);
46  bool NPCPlayIdleAnimationMsg(CNPCPlayIdleAnimationMsg *msg);
47  bool FrameMsg(CFrameMsg *msg);
48  bool MovieFrameMsg(CMovieFrameMsg *msg);
49  bool PutParrotBackMsg(CPutParrotBackMsg *msg);
50  bool PreEnterViewMsg(CPreEnterViewMsg *msg);
51  bool PanningAwayFromParrotMsg(CPanningAwayFromParrotMsg *msg);
52  bool LeaveRoomMsg(CLeaveRoomMsg *msg);
53  bool TrueTalkNotifySpeechStartedMsg(CTrueTalkNotifySpeechStartedMsg *msg);
54  bool TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg);
55 public:
56  static bool _eatingChicken;
57  static bool _takeOff;
58  static bool _unused;
59  static ParrotState _state;
60  static bool _coreReplaced;
61 private:
62  int _unused1;
63  CString _carryParrot;
64  bool _canDrag;
65  int _unused2;
66  uint _lastSpeakTime;
67  int _newXp;
68  int _newXc;
69  bool _triedEatChicken;
70  int _eatOffsetX;
71  CMovePlayerTo *_panTarget;
72 private:
76  void setEatingChicken(bool eating);
77 public:
78  CLASSDEF;
79  CParrot();
80 
84  void save(SimpleFile *file, int indent) override;
85 
89  void load(SimpleFile *file) override;
90 };
91 
92 } // End of namespace Titanic
93 
94 #endif /* TITANIC_PARROT_H */
Definition: mouse_messages.h:150
Definition: messages.h:331
Definition: move_player_to.h:29
Definition: true_talk_npc.h:43
Definition: messages.h:326
Definition: messages.h:289
Definition: messages.h:332
Definition: messages.h:309
Definition: messages.h:344
Definition: simple_file.h:49
Definition: messages.h:286
Definition: messages.h:319
Definition: messages.h:398
Definition: parrot.h:35
Definition: messages.h:254
Definition: arm.h:30
Definition: string.h:40
Definition: messages.h:402
void save(SimpleFile *file, int indent) override
Definition: messages.h:310
Definition: messages.h:320
void load(SimpleFile *file) override
Definition: mouse_messages.h:71
Definition: messages.h:291
Definition: messages.h:325