mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-03 17:33:05 +00:00
FULLPIPE: Initial engine skeleton with detection
This commit is contained in:
parent
b4bf88be46
commit
26e6f50860
112
engines/fullpipe/detection.cpp
Normal file
112
engines/fullpipe/detection.cpp
Normal file
@ -0,0 +1,112 @@
|
||||
/* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "base/plugins.h"
|
||||
|
||||
#include "engines/advancedDetector.h"
|
||||
#include "common/file.h"
|
||||
|
||||
#include "fullpipe/fullpipe.h"
|
||||
|
||||
|
||||
namespace Fullpipe {
|
||||
|
||||
const char *FullpipeEngine::getGameId() const {
|
||||
return _gameDescription->gameid;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static const PlainGameDescriptor fullpipeGames[] = {
|
||||
{"fullpipe", "Full Pipe"},
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
namespace Fullpipe {
|
||||
|
||||
static const ADGameDescription gameDescriptions[] = {
|
||||
|
||||
// Fullpipe Russian version
|
||||
{
|
||||
"fullpipe",
|
||||
0,
|
||||
AD_ENTRY1s("0654.sc2", "099f54f86d33ad2395f3b854b7e05058", 2272),
|
||||
Common::RU_RUS,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_NO_FLAGS,
|
||||
GUIO1(GUIO_NONE)
|
||||
},
|
||||
|
||||
// Fullpipe German version
|
||||
{
|
||||
"fullpipe",
|
||||
0,
|
||||
AD_ENTRY1s("0654.sc2", "d8743351fc53d205f42d91f6d791e51b", 2272),
|
||||
Common::RU_RUS,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_NO_FLAGS,
|
||||
GUIO1(GUIO_NONE)
|
||||
},
|
||||
|
||||
AD_TABLE_END_MARKER
|
||||
};
|
||||
|
||||
} // End of namespace Fullpipe
|
||||
|
||||
class FullpipeMetaEngine : public AdvancedMetaEngine {
|
||||
public:
|
||||
FullpipeMetaEngine() : AdvancedMetaEngine(Fullpipe::gameDescriptions, sizeof(ADGameDescription), fullpipeGames) {
|
||||
_singleid = "fullpipe";
|
||||
}
|
||||
|
||||
virtual const char *getName() const {
|
||||
return "Fullpipe Engine";
|
||||
}
|
||||
|
||||
virtual const char *getOriginalCopyright() const {
|
||||
return "Fullpipe Engine (C) Pipe Studio";
|
||||
}
|
||||
|
||||
virtual bool hasFeature(MetaEngineFeature f) const;
|
||||
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
|
||||
};
|
||||
|
||||
bool FullpipeMetaEngine::hasFeature(MetaEngineFeature f) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Fullpipe::FullpipeEngine::hasFeature(EngineFeature f) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool FullpipeMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
|
||||
if (desc) {
|
||||
*engine = new Fullpipe::FullpipeEngine(syst, desc);
|
||||
}
|
||||
return desc != 0;
|
||||
}
|
||||
|
||||
#if PLUGIN_ENABLED_DYNAMIC(FULLPIPE)
|
||||
REGISTER_PLUGIN_DYNAMIC(FULLPIPE, PLUGIN_TYPE_ENGINE, FullpipeMetaEngine);
|
||||
#else
|
||||
REGISTER_PLUGIN_STATIC(FULLPIPE, PLUGIN_TYPE_ENGINE, FullpipeMetaEngine);
|
||||
#endif
|
81
engines/fullpipe/fullpipe.cpp
Normal file
81
engines/fullpipe/fullpipe.cpp
Normal file
@ -0,0 +1,81 @@
|
||||
/* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "base/plugins.h"
|
||||
|
||||
#include "common/config-manager.h"
|
||||
|
||||
#include "engines/util.h"
|
||||
|
||||
#include "fullpipe/fullpipe.h"
|
||||
|
||||
namespace Fullpipe {
|
||||
|
||||
FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) {
|
||||
// Setup mixer
|
||||
if (!_mixer->isReady()) {
|
||||
warning("Sound initialization failed.");
|
||||
}
|
||||
|
||||
_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, ConfMan.getInt("sfx_volume"));
|
||||
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume"));
|
||||
|
||||
_rnd = new Common::RandomSource("fullpipe");
|
||||
|
||||
}
|
||||
|
||||
FullpipeEngine::~FullpipeEngine() {
|
||||
delete _rnd;
|
||||
}
|
||||
|
||||
Common::Error FullpipeEngine::run() {
|
||||
// Initialize backend
|
||||
initGraphics(800, 600, true);
|
||||
|
||||
_isSaveAllowed = false;
|
||||
|
||||
return Common::kNoError;
|
||||
}
|
||||
|
||||
void FullpipeEngine::updateEvents() {
|
||||
Common::Event event;
|
||||
Common::EventManager *eventMan = _system->getEventManager();
|
||||
|
||||
while (eventMan->pollEvent(event)) {
|
||||
switch (event.type) {
|
||||
case Common::EVENT_KEYDOWN:
|
||||
_keyState = event.kbd.keycode;
|
||||
break;
|
||||
case Common::EVENT_KEYUP:
|
||||
_keyState = Common::KEYCODE_INVALID;
|
||||
break;
|
||||
case Common::EVENT_MOUSEMOVE:
|
||||
_mouseX = event.mouse.x;
|
||||
_mouseY = event.mouse.y;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // End of namespace Fullpipe
|
80
engines/fullpipe/fullpipe.h
Normal file
80
engines/fullpipe/fullpipe.h
Normal file
@ -0,0 +1,80 @@
|
||||
/* 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 FULLPIPE_H
|
||||
#define FULLPIPE_H
|
||||
|
||||
#include "common/scummsys.h"
|
||||
#include "common/events.h"
|
||||
#include "common/keyboard.h"
|
||||
#include "common/random.h"
|
||||
#include "common/savefile.h"
|
||||
#include "common/system.h"
|
||||
|
||||
#include "audio/mixer.h"
|
||||
|
||||
#include "graphics/surface.h"
|
||||
|
||||
#include "engines/engine.h"
|
||||
|
||||
struct ADGameDescription;
|
||||
|
||||
namespace Fullpipe {
|
||||
|
||||
enum FullpipeGameFeatures {
|
||||
};
|
||||
|
||||
class FullpipeEngine : public ::Engine {
|
||||
protected:
|
||||
|
||||
Common::Error run();
|
||||
|
||||
public:
|
||||
FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc);
|
||||
virtual ~FullpipeEngine();
|
||||
|
||||
// Detection related functions
|
||||
const ADGameDescription *_gameDescription;
|
||||
const char *getGameId() const;
|
||||
Common::Platform getPlatform() const;
|
||||
bool hasFeature(EngineFeature f) const;
|
||||
|
||||
Common::RandomSource *_rnd;
|
||||
|
||||
int _mouseX, _mouseY;
|
||||
Common::KeyCode _keyState;
|
||||
uint16 _buttonState;
|
||||
|
||||
void updateEvents();
|
||||
|
||||
public:
|
||||
|
||||
bool _isSaveAllowed;
|
||||
|
||||
bool canLoadGameStateCurrently() { return _isSaveAllowed; }
|
||||
bool canSaveGameStateCurrently() { return _isSaveAllowed; }
|
||||
|
||||
};
|
||||
|
||||
} // End of namespace Fullpipe
|
||||
|
||||
#endif /* FULLPIPE_H */
|
Loading…
x
Reference in New Issue
Block a user