mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-23 11:04:44 +00:00
SUPERNOVA: Create engine skeleton and game detection
This commit is contained in:
parent
a06bf756c6
commit
836da5746e
3
engines/supernova/configure.engine
Normal file
3
engines/supernova/configure.engine
Normal file
@ -0,0 +1,3 @@
|
||||
# This file is included from the main "configure" script
|
||||
# add_engine [name] [desc] [build-by-default] [subengines] [base games] [deps]
|
||||
add_engine supernova "Mission Supernova" no
|
35
engines/supernova/console.cpp
Normal file
35
engines/supernova/console.cpp
Normal file
@ -0,0 +1,35 @@
|
||||
/* 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 "gui/debugger.h"
|
||||
|
||||
#include "supernova/supernova.h"
|
||||
#include "supernova/console.h"
|
||||
|
||||
namespace Supernova {
|
||||
|
||||
Console::Console(SupernovaEngine *vm)
|
||||
{
|
||||
//registerCmd();
|
||||
}
|
||||
|
||||
}
|
44
engines/supernova/console.h
Normal file
44
engines/supernova/console.h
Normal file
@ -0,0 +1,44 @@
|
||||
/* 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 SUPERNOVA_CONSOLE_H
|
||||
#define SUPERNOVA_CONSOLE_H
|
||||
|
||||
#include "gui/debugger.h"
|
||||
|
||||
namespace Supernova {
|
||||
|
||||
class SupernovaEngine;
|
||||
|
||||
enum {
|
||||
kDebugGeneral = 1 << 0
|
||||
};
|
||||
|
||||
class Console : public GUI::Debugger {
|
||||
public:
|
||||
Console(SupernovaEngine *vm);
|
||||
virtual ~Console() {}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
95
engines/supernova/detection.cpp
Normal file
95
engines/supernova/detection.cpp
Normal file
@ -0,0 +1,95 @@
|
||||
/* 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/file.h"
|
||||
#include "engines/advancedDetector.h"
|
||||
|
||||
#include "supernova/supernova.h"
|
||||
|
||||
static const PlainGameDescriptor supernovaGames[] = {
|
||||
{"msn1", "Mission Supernova 1"},
|
||||
{"msn2", "Mission Supernova 2"},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
namespace Supernova {
|
||||
static const ADGameDescription gameDescriptions[] = {
|
||||
// Mission Supernova 1
|
||||
{
|
||||
"msn1",
|
||||
NULL,
|
||||
AD_ENTRY1s("msn.exe", "d11264516c529c7fc2ca81d8ba062d9e", 65536),
|
||||
Common::DE_DEU,
|
||||
Common::kPlatformDOS,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NONE)
|
||||
},
|
||||
|
||||
// Mission Supernova 2
|
||||
{
|
||||
"msn2",
|
||||
NULL,
|
||||
AD_ENTRY1s("ms2.exe", "e1b725393c3665f30efa96e2f46d589e", 82944),
|
||||
Common::DE_DEU,
|
||||
Common::kPlatformDOS,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NONE)
|
||||
},
|
||||
|
||||
AD_TABLE_END_MARKER
|
||||
};
|
||||
}
|
||||
|
||||
class SupernovaMetaEngine: public AdvancedMetaEngine {
|
||||
public:
|
||||
SupernovaMetaEngine() : AdvancedMetaEngine(Supernova::gameDescriptions, sizeof(ADGameDescription), supernovaGames) {
|
||||
_singleId = "supernova";
|
||||
}
|
||||
|
||||
virtual const char *getName() const {
|
||||
return "Supernova Engine";
|
||||
}
|
||||
|
||||
virtual const char *getOriginalCopyright() const {
|
||||
return "Mission Supernova (c) 1994 Thomas and Steffen Dingel";
|
||||
}
|
||||
|
||||
virtual bool hasFeature(MetaEngineFeature f) const;
|
||||
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
|
||||
};
|
||||
|
||||
bool SupernovaMetaEngine::hasFeature(MetaEngineFeature f) const {
|
||||
// STUB
|
||||
return false;
|
||||
}
|
||||
|
||||
bool SupernovaMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
|
||||
// STUB
|
||||
return false;
|
||||
}
|
||||
|
||||
#if PLUGIN_ENABLED_DYNAMIC(SUPERNOVA)
|
||||
REGISTER_PLUGIN_DYNAMIC(SUPERNOVA, PLUGIN_TYPE_ENGINE, SupernovaMetaEngine);
|
||||
#else
|
||||
REGISTER_PLUGIN_STATIC(SUPERNOVA, PLUGIN_TYPE_ENGINE, SupernovaMetaEngine);
|
||||
#endif
|
17
engines/supernova/module.mk
Normal file
17
engines/supernova/module.mk
Normal file
@ -0,0 +1,17 @@
|
||||
MODULE := engines/supernova
|
||||
|
||||
MODULE_OBJS := \
|
||||
supernova.o \
|
||||
console.o \
|
||||
detection.o
|
||||
|
||||
MODULE_DIRS += \
|
||||
engines/supernova
|
||||
|
||||
# This module can be built as a plugin
|
||||
ifeq ($(ENABLE_SUPERNOVA), DYNAMIC_PLUGIN)
|
||||
PLUGIN := 1
|
||||
endif
|
||||
|
||||
# Include common rules
|
||||
include $(srcdir)/rules.mk
|
67
engines/supernova/supernova.cpp
Normal file
67
engines/supernova/supernova.cpp
Normal file
@ -0,0 +1,67 @@
|
||||
/* 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 "common/config-manager.h"
|
||||
#include "common/debug.h"
|
||||
#include "common/debug-channels.h"
|
||||
#include "common/error.h"
|
||||
#include "common/file.h"
|
||||
#include "common/fs.h"
|
||||
|
||||
#include "engines/util.h"
|
||||
|
||||
#include "supernova/supernova.h"
|
||||
|
||||
namespace Supernova {
|
||||
|
||||
SupernovaEngine::SupernovaEngine(OSystem *syst)
|
||||
: Engine(syst)
|
||||
, _console(NULL)
|
||||
{
|
||||
const Common::FSNode gameDataDir(ConfMan.get("path"));
|
||||
SearchMan.addSubDirectoryMatching(gameDataDir, "sound");
|
||||
|
||||
// setup engine specific debug channels
|
||||
DebugMan.addDebugChannel(kDebugGeneral, "general", "Supernova general debug channel");
|
||||
|
||||
_rnd = new Common::RandomSource("supernova");
|
||||
|
||||
debug("SupernovaEngine::SupernovaEngine");
|
||||
}
|
||||
|
||||
SupernovaEngine::~SupernovaEngine() {
|
||||
debug("SupernovaEngine::~SupernovaEngine");
|
||||
|
||||
delete _rnd;
|
||||
DebugMan.clearAllDebugChannels();
|
||||
}
|
||||
|
||||
Common::Error SupernovaEngine::run() {
|
||||
initGraphics(320, 200);
|
||||
_console = new Console(this);
|
||||
|
||||
debug("SupernovaEngine::init");
|
||||
|
||||
return Common::kNoError;
|
||||
}
|
||||
|
||||
}
|
48
engines/supernova/supernova.h
Normal file
48
engines/supernova/supernova.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* 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 SUPERNOVA_H
|
||||
#define SUPERNOVA_H
|
||||
|
||||
#include "common/scummsys.h"
|
||||
#include "common/random.h"
|
||||
#include "engines/engine.h"
|
||||
|
||||
#include "supernova/console.h"
|
||||
|
||||
namespace Supernova {
|
||||
|
||||
class SupernovaEngine : public Engine {
|
||||
public:
|
||||
SupernovaEngine(OSystem *syst);
|
||||
~SupernovaEngine();
|
||||
|
||||
virtual Common::Error run();
|
||||
|
||||
private:
|
||||
Common::RandomSource *_rnd;
|
||||
Console *_console;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user