ScummVM API documentation
party_view.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 NUVIE_VIEWS_PARTY_VIEW_H
23 #define NUVIE_VIEWS_PARTY_VIEW_H
24 
25 #include "ultima/nuvie/views/view.h"
26 
27 namespace Ultima {
28 namespace Nuvie {
29 
30 class Configuration;
31 class TileManager;
32 class ObjManager;
33 class Screen;
34 class Font;
35 class Party;
36 class Player;
37 class Actor;
38 class SunMoonStripWidget;
39 
40 class PartyView : public View {
41 
42  Player *player;
43  void *view_manager;
44  uint16 row_offset; // first party member displayed
45  SunMoonStripWidget *sun_moon_widget;
46 
47 public:
48  PartyView(const Configuration *cfg);
49  ~PartyView() override;
50 
51  bool init(void *vm, uint16 x, uint16 y, Font *f, Party *p, Player *pl, TileManager *tm, ObjManager *om);
52  GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
53  GUI_status MouseDown(int x, int y, Shared::MouseButton button) override {
54  return GUI_YUM;
55  }
56  GUI_status MouseWheel(sint32 x, sint32 y) override;
57  bool drag_accept_drop(int x, int y, int message, void *data) override;
58  void drag_perform_drop(int x, int y, int message, void *data) override;
59  void Display(bool full_redraw) override;
60  void update() {
61  update_display = true;
62  }
63  void display_sun_moon_strip();
64  void set_party_view_targeting(bool val) {
65  party_view_targeting = val;
66  }
67 
68 protected:
69 
70  void display_surface_strip();
71  void display_dungeon_strip();
72  void display_arrows();
73  void display_sun_moon(Tile *tile, uint8 pos);
74  void display_sun(uint8 hour, uint8 minute, bool eclipse);
75  void display_moons(uint8 day, uint8 hour, uint8 minute = 0);
76 
77  bool up_arrow();
78  bool down_arrow();
79  bool party_view_targeting;
80 
81  Actor *get_actor(int x, int y);
82 };
83 
84 } // End of namespace Nuvie
85 } // End of namespace Ultima
86 
87 #endif
Definition: actor.h:178
Definition: party_view.h:40
Definition: configuration.h:61
Definition: player.h:41
Definition: atari-screen.h:60
Definition: sun_moon_strip_widget.h:33
Definition: tile_manager.h:145
Definition: party.h:92
Definition: detection.h:27
Definition: view.h:42
Definition: obj_manager.h:75
Definition: tile_manager.h:113
Definition: font.h:42