mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-19 02:38:32 +00:00
TITANIC: Implement CPetFrame::setArea
This commit is contained in:
parent
7d819f71f7
commit
5923ee5001
@ -76,7 +76,7 @@ void CFilesManager::debug(CScreenManager *screenManager) {
|
||||
|
||||
void CFilesManager::resetView() {
|
||||
if (_gameManager) {
|
||||
_gameManager->_gameState.setMode(GSMODE_1);
|
||||
_gameManager->_gameState.setMode(GSMODE_SELECTED);
|
||||
_gameManager->initBounds();
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ bool CGameStateMovieList::clear() {
|
||||
|
||||
CGameState::CGameState(CGameManager *gameManager) :
|
||||
_gameManager(gameManager), _gameLocation(this),
|
||||
_field8(0), _fieldC(0), _mode(GSMODE_0), _field14(0), _petActive(false),
|
||||
_field8(0), _fieldC(0), _mode(GSMODE_UNSELECTED), _field14(0), _petActive(false),
|
||||
_field1C(0), _field20(0), _field24(0), _nodeChangeCtr(0),
|
||||
_nodeEnterTicks(0), _field38(0) {
|
||||
}
|
||||
@ -157,7 +157,7 @@ void CGameState::changeView(CViewItem *newView, CMovieClip *clip) {
|
||||
|
||||
void CGameState::checkForViewChange() {
|
||||
if (_mode == GSMODE_2 && _movieList.clear()) {
|
||||
setMode(GSMODE_1);
|
||||
setMode(GSMODE_SELECTED);
|
||||
if (_movieList._view)
|
||||
enterView();
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ namespace Titanic {
|
||||
|
||||
class CGameManager;
|
||||
|
||||
enum GameStateMode { GSMODE_0 = 0, GSMODE_1 = 1, GSMODE_2 = 2, GSMODE_3 = 3, GSMODE_4 = 4, GSMODE_5 = 5 };
|
||||
enum GameStateMode { GSMODE_UNSELECTED = 0, GSMODE_SELECTED = 1, GSMODE_2 = 2, GSMODE_3 = 3, GSMODE_4 = 4, GSMODE_5 = 5 };
|
||||
|
||||
PTR_LIST_ITEM(CMovie);
|
||||
class CGameStateMovieList : public List<CMovieListItem> {
|
||||
|
@ -50,7 +50,7 @@ void CInputHandler::decLockCount() {
|
||||
|
||||
void CInputHandler::handleMessage(CMessage &msg, bool respectLock) {
|
||||
if (!respectLock || _lockCount <= 0) {
|
||||
if (_gameManager->_gameState._mode == GSMODE_1) {
|
||||
if (_gameManager->_gameState._mode == GSMODE_SELECTED) {
|
||||
processMessage(&msg);
|
||||
} else if (!msg.isMouseMsg()) {
|
||||
g_vm->_filesManager.loadDrive();
|
||||
|
@ -68,7 +68,7 @@ void CMainGameWindow::applicationStarting() {
|
||||
// Load either a new game or selected existing save
|
||||
_project->loadGame(saveSlot);
|
||||
_inputAllowed = true;
|
||||
_gameManager->_gameState.setMode(GSMODE_1);
|
||||
_gameManager->_gameState.setMode(GSMODE_SELECTED);
|
||||
|
||||
// TODO: Cursor/image
|
||||
|
||||
@ -123,7 +123,7 @@ void CMainGameWindow::draw() {
|
||||
scrManager->clearSurface(SURFACE_BACKBUFFER, &_gameManager->_bounds);
|
||||
|
||||
switch (_gameManager->_gameState._mode) {
|
||||
case GSMODE_1:
|
||||
case GSMODE_SELECTED:
|
||||
case GSMODE_2:
|
||||
if (_gameManager->_gameState._petActive)
|
||||
drawPet(scrManager);
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
namespace Titanic {
|
||||
|
||||
CPetElement::CPetElement() : _mode(MODE_0) {}
|
||||
CPetElement::CPetElement() : _mode(MODE_UNSELECTED) {}
|
||||
|
||||
void CPetElement::getBounds(Rect *rect) {
|
||||
if (rect)
|
||||
@ -36,14 +36,14 @@ void CPetElement::getBounds(Rect *rect) {
|
||||
bool CPetElement::proc6(const Common::Point &pt) {
|
||||
bool result = _bounds.contains(pt);
|
||||
if (result)
|
||||
setMode(MODE_1);
|
||||
setMode(MODE_SELECTED);
|
||||
return result;
|
||||
}
|
||||
|
||||
bool CPetElement::proc7(const Common::Point &pt) {
|
||||
bool result = _bounds.contains(pt);
|
||||
if (result)
|
||||
setMode(MODE_0);
|
||||
setMode(MODE_UNSELECTED);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ int CPetElement::proc15() {
|
||||
}
|
||||
|
||||
void CPetElement::setMode(PetElementMode newMode) {
|
||||
if (newMode >= MODE_0 && newMode <= MODE_2)
|
||||
if (newMode >= MODE_UNSELECTED && newMode <= MODE_2)
|
||||
changeMode(newMode);
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
namespace Titanic {
|
||||
|
||||
enum PetElementMode { MODE_0 = 0, MODE_1 = 1, MODE_2 = 2 };
|
||||
enum PetElementMode { MODE_UNSELECTED = 0, MODE_SELECTED = 1, MODE_2 = 2 };
|
||||
|
||||
class CGameObject;
|
||||
class CPetControl;
|
||||
|
@ -42,22 +42,22 @@ bool CPetFrame::setup(CPetControl *petControl) {
|
||||
|
||||
bool CPetFrame::setup() {
|
||||
if (_petControl) {
|
||||
_background.setup("PetBackground", _petControl, MODE_0);
|
||||
_modeBackground.setup("PetModeBackground", _petControl, MODE_0);
|
||||
_background.setup("PetBackground", _petControl, MODE_UNSELECTED);
|
||||
_modeBackground.setup("PetModeBackground", _petControl, MODE_UNSELECTED);
|
||||
|
||||
for (int idx = 0; idx < 5; ++idx) {
|
||||
CString resName = Common::String::format("PetMode%d", idx);
|
||||
_modeButtons[idx].setup(resName, _petControl, MODE_0);
|
||||
_modeButtons[idx].setup(resName, _petControl, MODE_UNSELECTED);
|
||||
}
|
||||
|
||||
for (int idx = 0; idx < 6; ++idx) {
|
||||
CString resName = Common::String::format("3Pettitle%d", idx);
|
||||
_titles[idx].setup(resName, _petControl, MODE_0);
|
||||
_titles[idx].setup(resName, _petControl, MODE_UNSELECTED);
|
||||
}
|
||||
|
||||
for (int idx = 0; idx < 7; ++idx) {
|
||||
CString resName = Common::String::format("PetIndent%d", idx);
|
||||
_titles[idx].setup(resName, _petControl, MODE_0);
|
||||
_indent[idx].setup(resName, _petControl, MODE_UNSELECTED);
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,8 +67,8 @@ bool CPetFrame::setup() {
|
||||
bool CPetFrame::isValid(CPetControl *petControl) {
|
||||
bool result = setPetControl(petControl);
|
||||
if (result) {
|
||||
_modeButtons[_indexes[0]].setMode(MODE_0);
|
||||
_modeButtons[_indexes[4]].setMode(MODE_1);
|
||||
_modeButtons[_indexes[0]].setMode(MODE_UNSELECTED);
|
||||
_modeButtons[_indexes[4]].setMode(MODE_SELECTED);
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -98,12 +98,12 @@ bool CPetFrame::setPetControl(CPetControl *petControl) {
|
||||
_modeButtons[idx].setBounds(r);
|
||||
_modeButtons[idx].translate(0, YLIST[idx]);
|
||||
}
|
||||
_modeButtons[_indexes[0]].setMode(MODE_1);
|
||||
_modeButtons[_indexes[0]].setMode(MODE_SELECTED);
|
||||
|
||||
const int XLIST[] = { 73, 54, 85, 109, 38, 71 };
|
||||
for (int idx = 0; idx < 6; ++idx) {
|
||||
_titles[idx].setBounds(Rect(0, 0, 110, 11));
|
||||
_titles[idx].translate(XLIST[idx], 471);
|
||||
_titles[idx].translate(600 - XLIST[idx], 471);
|
||||
}
|
||||
}
|
||||
|
||||
@ -111,7 +111,14 @@ bool CPetFrame::setPetControl(CPetControl *petControl) {
|
||||
}
|
||||
|
||||
void CPetFrame::setArea(PetArea newArea) {
|
||||
warning("TODO: CPetFrame::setArea");
|
||||
resetArea();
|
||||
if (newArea < PET_6)
|
||||
_modeButtons[_indexes[newArea]].setMode(MODE_SELECTED);
|
||||
}
|
||||
|
||||
void CPetFrame::resetArea() {
|
||||
for (int idx = 0; idx < 6; ++idx)
|
||||
_modeButtons[idx].setMode(MODE_UNSELECTED);
|
||||
}
|
||||
|
||||
void CPetFrame::drawFrame(CScreenManager *screenManager) {
|
||||
|
@ -76,6 +76,11 @@ public:
|
||||
*/
|
||||
void setArea(PetArea newArea);
|
||||
|
||||
/**
|
||||
* Reset the currently selected area
|
||||
*/
|
||||
void resetArea();
|
||||
|
||||
/**
|
||||
* Draws the PET frame
|
||||
*/
|
||||
|
@ -30,10 +30,10 @@ namespace Titanic {
|
||||
void CPetGfxElement::setup(PetElementMode mode, const CString &name,
|
||||
CPetControl *petControl) {
|
||||
switch (mode) {
|
||||
case MODE_0:
|
||||
case MODE_UNSELECTED:
|
||||
_object0 = petControl->getHiddenObject(name);
|
||||
break;
|
||||
case MODE_1:
|
||||
case MODE_SELECTED:
|
||||
_object1 = petControl->getHiddenObject(name);
|
||||
break;
|
||||
case MODE_2:
|
||||
@ -91,9 +91,9 @@ void CPetGfxElement::getBounds(Rect *rect) {
|
||||
|
||||
CGameObject *CPetGfxElement::getObject() const {
|
||||
switch (_mode) {
|
||||
case MODE_0:
|
||||
case MODE_UNSELECTED:
|
||||
return _object0;
|
||||
case MODE_1:
|
||||
case MODE_SELECTED:
|
||||
return _object1;
|
||||
case MODE_2:
|
||||
return _object2;
|
||||
|
Loading…
x
Reference in New Issue
Block a user