TITANIC: Implement messages PET section
This commit is contained in:
parent
ecb14e9bc2
commit
a15e299a06
8 changed files with 135 additions and 58 deletions
|
@ -362,13 +362,13 @@ MODULE_OBJS := \
|
|||
pet_control/pet_gfx_element.o \
|
||||
pet_control/pet_inventory.o \
|
||||
pet_control/pet_inventory_glyphs.o \
|
||||
pet_control/pet_message.o \
|
||||
pet_control/pet_nav_helmet.o \
|
||||
pet_control/pet_rooms.o \
|
||||
pet_control/pet_rooms_glyphs.o \
|
||||
pet_control/pet_remote.o \
|
||||
pet_control/pet_real_life.o \
|
||||
pet_control/pet_section.o \
|
||||
pet_control/pet_control_sub7.o \
|
||||
pet_control/pet_drag_chev.o \
|
||||
pet_control/pet_graphic2.o \
|
||||
pet_control/pet_graphic.o \
|
||||
|
|
|
@ -52,7 +52,7 @@ CPetControl::CPetControl() : CGameObject(),
|
|||
_sections[PET_ROOMS] = &_rooms;
|
||||
_sections[PET_REAL_LIFE] = &_realLife;
|
||||
_sections[PET_NAV_HELMET] = &_navHelmet;
|
||||
_sections[PET_6] = &_sub7;
|
||||
_sections[PET_MESSAGE] = &_message;
|
||||
}
|
||||
|
||||
void CPetControl::save(SimpleFile *file, int indent) const {
|
||||
|
@ -87,7 +87,7 @@ void CPetControl::setup() {
|
|||
_inventory.setup(this);
|
||||
_navHelmet.setup(this);
|
||||
_realLife.setup(this);
|
||||
_sub7.setup(this);
|
||||
_message.setup(this);
|
||||
_frame.setup(this);
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ bool CPetControl::isValid() {
|
|||
_inventory.isValid(this) &&
|
||||
_navHelmet.isValid(this) &&
|
||||
_realLife.isValid(this) &&
|
||||
_sub7.isValid(this) &&
|
||||
_message.isValid(this) &&
|
||||
_frame.isValid(this);
|
||||
}
|
||||
|
||||
|
@ -109,7 +109,7 @@ void CPetControl::loadAreas(SimpleFile *file, int param) {
|
|||
_inventory.load(file, param);
|
||||
_navHelmet.load(file, param);
|
||||
_realLife.load(file, param);
|
||||
_sub7.load(file, param);
|
||||
_message.load(file, param);
|
||||
_frame.load(file, param);
|
||||
}
|
||||
|
||||
|
@ -120,7 +120,7 @@ void CPetControl::saveAreas(SimpleFile *file, int indent) const {
|
|||
_inventory.save(file, indent);
|
||||
_navHelmet.save(file, indent);
|
||||
_realLife.save(file, indent);
|
||||
_sub7.save(file, indent);
|
||||
_message.save(file, indent);
|
||||
_frame.save(file, indent);
|
||||
}
|
||||
|
||||
|
@ -165,7 +165,7 @@ void CPetControl::loaded() {
|
|||
_inventory.postLoad();
|
||||
_navHelmet.postLoad();
|
||||
_realLife.postLoad();
|
||||
_sub7.postLoad();
|
||||
_message.postLoad();
|
||||
_frame.postLoad();
|
||||
}
|
||||
|
||||
|
|
|
@ -31,11 +31,11 @@
|
|||
#include "titanic/pet_control/pet_conversations.h"
|
||||
#include "titanic/pet_control/pet_frame.h"
|
||||
#include "titanic/pet_control/pet_inventory.h"
|
||||
#include "titanic/pet_control/pet_message.h"
|
||||
#include "titanic/pet_control/pet_nav_helmet.h"
|
||||
#include "titanic/pet_control/pet_real_life.h"
|
||||
#include "titanic/pet_control/pet_remote.h"
|
||||
#include "titanic/pet_control/pet_rooms.h"
|
||||
#include "titanic/pet_control/pet_control_sub7.h"
|
||||
|
||||
namespace Titanic {
|
||||
|
||||
|
@ -59,7 +59,7 @@ private:
|
|||
CPetRemote _remote;
|
||||
CPetRooms _rooms;
|
||||
CPetRealLife _realLife;
|
||||
CPetControlSub7 _sub7;
|
||||
CPetMessage _message;
|
||||
CPetFrame _frame;
|
||||
CString _activeNPCName;
|
||||
CString _string2;
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef TITANIC_PET_CONTROL_SUB7_H
|
||||
#define TITANIC_PET_CONTROL_SUB7_H
|
||||
|
||||
#include "titanic/pet_control/pet_section.h"
|
||||
#include "titanic/pet_control/pet_text.h"
|
||||
|
||||
namespace Titanic {
|
||||
|
||||
class CPetControlSub7 : public CPetSection {
|
||||
private:
|
||||
CPetText _text1;
|
||||
CPetText _text2;
|
||||
public:
|
||||
/**
|
||||
* Returns true if the object is in a valid state
|
||||
*/
|
||||
virtual bool isValid(CPetControl *petControl);
|
||||
};
|
||||
|
||||
} // End of namespace Titanic
|
||||
|
||||
#endif /* TITANIC_PET_CONTROL_SUB7_H */
|
|
@ -126,7 +126,7 @@ bool CPetFrame::setPetControl(CPetControl *petControl) {
|
|||
|
||||
void CPetFrame::setArea(PetArea newArea) {
|
||||
resetArea();
|
||||
if (newArea < PET_6)
|
||||
if (newArea < PET_MESSAGE)
|
||||
_modeButtons[PET_AREAS[newArea]].setMode(MODE_SELECTED);
|
||||
}
|
||||
|
||||
|
|
|
@ -20,12 +20,37 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include "titanic/pet_control/pet_control_sub7.h"
|
||||
#include "titanic/pet_control/pet_message.h"
|
||||
|
||||
namespace Titanic {
|
||||
|
||||
bool CPetControlSub7::isValid(CPetControl *petControl) {
|
||||
// TODO
|
||||
CPetMessage::CPetMessage() {
|
||||
Rect rect1(0, 0, 580, 70);
|
||||
rect1.translate(32, 368);
|
||||
_message.setBounds(rect1);
|
||||
_message.resize(50);
|
||||
_message.setHasBorder(false);
|
||||
|
||||
Rect rect2(0, 0, 580, 15);
|
||||
rect2.translate(32, 445);
|
||||
_tooltip.setBounds(rect2);
|
||||
_tooltip.setHasBorder(false);
|
||||
}
|
||||
|
||||
bool CPetMessage::setup(CPetControl *petControl) {
|
||||
if (petControl && setupControl(petControl))
|
||||
return reset();
|
||||
return false;
|
||||
}
|
||||
|
||||
void CPetMessage::draw(CScreenManager *screenManager) {
|
||||
_message.draw(screenManager);
|
||||
_tooltip.draw(screenManager);
|
||||
}
|
||||
|
||||
bool CPetMessage::setupControl(CPetControl *petControl) {
|
||||
if (petControl)
|
||||
_petControl = petControl;
|
||||
return true;
|
||||
}
|
||||
|
96
engines/titanic/pet_control/pet_message.h
Normal file
96
engines/titanic/pet_control/pet_message.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef TITANIC_PET_MESSAGE_H
|
||||
#define TITANIC_PET_MESSAGE_H
|
||||
|
||||
#include "titanic/pet_control/pet_section.h"
|
||||
#include "titanic/pet_control/pet_text.h"
|
||||
|
||||
namespace Titanic {
|
||||
|
||||
class CPetMessage : public CPetSection {
|
||||
private:
|
||||
CPetText _message;
|
||||
CPetText _tooltip;
|
||||
private:
|
||||
/**
|
||||
* Setup the control
|
||||
*/
|
||||
bool setupControl(CPetControl *petControl);
|
||||
public:
|
||||
CPetMessage();
|
||||
|
||||
/**
|
||||
* Sets up the section
|
||||
*/
|
||||
virtual bool setup(CPetControl *petControl);
|
||||
|
||||
/**
|
||||
* Reset the section
|
||||
*/
|
||||
virtual bool reset() { return true; }
|
||||
|
||||
/**
|
||||
* Draw the section
|
||||
*/
|
||||
virtual void draw(CScreenManager *screenManager);
|
||||
|
||||
/**
|
||||
* Following are handlers for the various messages that the PET can
|
||||
* pass onto the currently active section/area
|
||||
*/
|
||||
virtual bool MouseButtonDownMsg(CMouseButtonDownMsg *msg) { return false; }
|
||||
virtual bool MouseButtonUpMsg(CMouseButtonUpMsg *msg) { return false; }
|
||||
|
||||
/**
|
||||
* Returns true if the object is in a valid state
|
||||
*/
|
||||
virtual bool isValid(CPetControl *petControl) {
|
||||
return setupControl(petControl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the data for the class from file
|
||||
*/
|
||||
virtual void load(SimpleFile *file, int param) {}
|
||||
|
||||
/**
|
||||
* Called after a game has been loaded
|
||||
*/
|
||||
virtual void postLoad() { reset(); }
|
||||
|
||||
/**
|
||||
* Save the data for the class to file
|
||||
*/
|
||||
virtual void save(SimpleFile *file, int indent) const {}
|
||||
|
||||
/**
|
||||
* Get a reference to the tooltip text associated with the section
|
||||
*/
|
||||
virtual CPetText *getText() { return &_tooltip; }
|
||||
|
||||
};
|
||||
|
||||
} // End of namespace Titanic
|
||||
|
||||
#endif /* TITANIC_PET_MESSAGE_H */
|
|
@ -30,7 +30,7 @@ namespace Titanic {
|
|||
|
||||
enum PetArea {
|
||||
PET_INVENTORY = 0, PET_CONVERSATION = 1, PET_REMOTE = 2,
|
||||
PET_ROOMS = 3, PET_REAL_LIFE = 4, PET_NAV_HELMET = 5, PET_6 = 6
|
||||
PET_ROOMS = 3, PET_REAL_LIFE = 4, PET_NAV_HELMET = 5, PET_MESSAGE = 6
|
||||
};
|
||||
|
||||
class CPetControl;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue