Initial commit
This commit is contained in:
56
backends/platform/sdl/morphos/morphos-main.cpp
Normal file
56
backends/platform/sdl/morphos/morphos-main.cpp
Normal file
@@ -0,0 +1,56 @@
|
||||
/* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common/scummsys.h"
|
||||
|
||||
#if defined(__MORPHOS__)
|
||||
|
||||
#include "backends/fs/morphos/morphos-fs.h"
|
||||
#include "backends/platform/sdl/morphos/morphos.h"
|
||||
#include "backends/plugins/sdl/sdl-provider.h"
|
||||
#include "base/main.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
// Set a stack cookie to avoid crashes from a too low stack.
|
||||
static const char *stack_cookie __attribute__((used)) = "$STACK: 4096000";
|
||||
|
||||
// Create our OSystem instance.
|
||||
g_system = new OSystem_MorphOS();
|
||||
assert(g_system);
|
||||
|
||||
// Pre-initialize the backend.
|
||||
g_system->init();
|
||||
|
||||
#ifdef DYNAMIC_MODULES
|
||||
PluginManager::instance().addPluginProvider(new SDLPluginProvider());
|
||||
#endif
|
||||
|
||||
// Invoke the actual ScummVM main entry point.
|
||||
int res = scummvm_main(argc, argv);
|
||||
|
||||
// Free OSystem.
|
||||
g_system->destroy();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
||||
96
backends/platform/sdl/morphos/morphos.cpp
Normal file
96
backends/platform/sdl/morphos/morphos.cpp
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#define FORBIDDEN_SYMBOL_EXCEPTION_printf
|
||||
#include "common/scummsys.h"
|
||||
|
||||
#ifdef __MORPHOS__
|
||||
|
||||
#include "backends/platform/sdl/morphos/morphos.h"
|
||||
#include "backends/fs/morphos/morphos-fs-factory.h"
|
||||
#include "backends/dialogs/morphos/morphos-dialogs.h"
|
||||
|
||||
static bool cleanupDone = false;
|
||||
|
||||
static void cleanup() {
|
||||
if (!cleanupDone)
|
||||
g_system->destroy();
|
||||
}
|
||||
|
||||
OSystem_MorphOS::~OSystem_MorphOS() {
|
||||
cleanupDone = true;
|
||||
}
|
||||
|
||||
void OSystem_MorphOS::init() {
|
||||
// Register cleanup function to avoid unfreed signals
|
||||
if (atexit(cleanup))
|
||||
warning("Failed to register cleanup function via atexit()");
|
||||
|
||||
// Initialze File System Factory
|
||||
_fsFactory = new MorphOSFilesystemFactory();
|
||||
|
||||
// Invoke parent implementation of this method
|
||||
OSystem_SDL::init();
|
||||
|
||||
#if defined(USE_SYSDIALOGS)
|
||||
_dialogManager = new MorphosDialogManager();
|
||||
#endif
|
||||
}
|
||||
|
||||
bool OSystem_MorphOS::hasFeature(Feature f) {
|
||||
|
||||
#if defined(USE_SYSDIALOGS)
|
||||
if (f == kFeatureSystemBrowserDialog)
|
||||
return true;
|
||||
#endif
|
||||
|
||||
return OSystem_SDL::hasFeature(f);
|
||||
}
|
||||
|
||||
void OSystem_MorphOS::initBackend() {
|
||||
|
||||
// First time user defaults
|
||||
ConfMan.registerDefault("audio_buffer_size", "2048");
|
||||
ConfMan.registerDefault("extrapath", Common::Path("PROGDIR:extras/"));
|
||||
ConfMan.registerDefault("savepath", Common::Path("PROGDIR:saves/"));
|
||||
ConfMan.registerDefault("themepath", Common::Path("PROGDIR:themes/"));
|
||||
// First time .ini defaults
|
||||
if (!ConfMan.hasKey("audio_buffer_size")) {
|
||||
ConfMan.set("audio_buffer_size", "2048");
|
||||
}
|
||||
if (!ConfMan.hasKey("extrapath")) {
|
||||
ConfMan.setPath("extrapath", "PROGDIR:extras/");
|
||||
}
|
||||
if (!ConfMan.hasKey("savepath")) {
|
||||
ConfMan.setPath("savepath", "PROGDIR:saves/");
|
||||
}
|
||||
if (!ConfMan.hasKey("themepath")) {
|
||||
ConfMan.setPath("themepath", "PROGDIR:themes/");
|
||||
}
|
||||
OSystem_SDL::initBackend();
|
||||
}
|
||||
|
||||
void OSystem_MorphOS::logMessage(LogMessageType::Type type, const char * message) {
|
||||
#ifdef DEBUG_BUILD
|
||||
printf("%s\n", message);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
41
backends/platform/sdl/morphos/morphos.h
Normal file
41
backends/platform/sdl/morphos/morphos.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef PLATFORM_SDL_MORPHOS_H
|
||||
#define PLATFORM_SDL_MORPHOS_H
|
||||
|
||||
#include "backends/platform/sdl/sdl.h"
|
||||
#include "backends/base-backend.h"
|
||||
|
||||
class OSystem_MorphOS : public OSystem_SDL {
|
||||
public:
|
||||
OSystem_MorphOS() {}
|
||||
virtual ~OSystem_MorphOS();
|
||||
|
||||
bool hasFeature(Feature f) override;
|
||||
|
||||
void init() override;
|
||||
|
||||
void initBackend() override;
|
||||
void logMessage(LogMessageType::Type type, const char *message) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
25
backends/platform/sdl/morphos/morphos.mk
Normal file
25
backends/platform/sdl/morphos/morphos.mk
Normal file
@@ -0,0 +1,25 @@
|
||||
# Special target to create an MorphOS snapshot installation.
|
||||
# MorphOS shell doesn't like indented comments.
|
||||
morphosdist: $(EXECUTABLE) $(PLUGINS)
|
||||
mkdir -p $(MORPHOSPATH)extras
|
||||
cp ${srcdir}/dists/amiga/scummvm.info $(MORPHOSPATH)/$(EXECUTABLE).info
|
||||
ifdef DIST_FILES_DOCS
|
||||
mkdir -p $(MORPHOSPATH)/doc
|
||||
cp $(DIST_FILES_DOCS) $(MORPHOSPATH)doc/
|
||||
$(foreach lang, $(DIST_FILES_DOCS_languages), makedir all $(MORPHOSPATH)/doc/$(lang); cp $(DIST_FILES_DOCS_$(lang)) $(MORPHOSPATH)/doc/$(lang);)
|
||||
endif
|
||||
ifdef DIST_FILES_ENGINEDATA
|
||||
cp $(DIST_FILES_ENGINEDATA) $(MORPHOSPATH)extras/
|
||||
endif
|
||||
ifdef DIST_FILES_NETWORKING
|
||||
cp $(DIST_FILES_NETWORKING) $(MORPHOSPATH)extras/
|
||||
endif
|
||||
ifdef DIST_FILES_VKEYBD
|
||||
cp $(DIST_FILES_VKEYBD) $(MORPHOSPATH)extras/
|
||||
endif
|
||||
ifdef DIST_FILES_THEMES
|
||||
mkdir -p $(MORPHOSPATH)themes
|
||||
cp $(DIST_FILES_THEMES) $(MORPHOSPATH)themes/
|
||||
endif
|
||||
# Strip
|
||||
$(STRIP) $(EXECUTABLE) -o $(MORPHOSPATH)$(EXECUTABLE)
|
||||
Reference in New Issue
Block a user