mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 21:59:17 +00:00
AGS: Added engine/plugin/ folder
This commit is contained in:
parent
ee48881da4
commit
65a2cf6687
@ -23,8 +23,8 @@
|
||||
#ifndef AGS_ENGINE_AC_DYNOBJ_ADDR_AND_MANAGER_H
|
||||
#define AGS_ENGINE_AC_DYNOBJ_ADDR_AND_MANAGER_H
|
||||
|
||||
#include "ags/shared/script/runtimescriptvalue.h"
|
||||
#include "ags/shared/ac/dynobj/cc_dynamicobject.h"
|
||||
#include "ags/engine/script/runtimescriptvalue.h"
|
||||
#include "ags/engine/ac/dynobj/cc_dynamicobject.h"
|
||||
|
||||
namespace AGS3 {
|
||||
|
||||
|
@ -53,7 +53,7 @@ Bitmap *ConvertBitmap(Bitmap *src, int dst_color_depth);
|
||||
// or fallbacks to common "magic pink" transparency mode;
|
||||
// optionally uses blending alpha (overall image transparency).
|
||||
void DrawSpriteBlend(Bitmap *ds, const Point &ds_at, Bitmap *sprite,
|
||||
Common::BlendMode blend_mode, bool dst_has_alpha = true, bool src_has_alpha = true, int blend_alpha = 0xFF);
|
||||
Shared::BlendMode blend_mode, bool dst_has_alpha = true, bool src_has_alpha = true, int blend_alpha = 0xFF);
|
||||
|
||||
// Draws a bitmap over another one with given alpha level (0 - 255),
|
||||
// takes account of the bitmap's mask color,
|
||||
|
@ -27,7 +27,7 @@
|
||||
//=============================================================================
|
||||
|
||||
// Headers, as they are in acgui.cpp
|
||||
#pragma unmanaged
|
||||
//pragma unmanaged
|
||||
#include "ags/shared/ac/game_version.h"
|
||||
#include "ags/engine/ac/system.h"
|
||||
#include "ags/shared/font/fonts.h"
|
||||
|
@ -28,58 +28,52 @@
|
||||
#include "ags/shared/util/wgt2allg.h"
|
||||
#include "ags/shared/ac/common.h"
|
||||
#include "ags/shared/ac/view.h"
|
||||
#include "ags/shared/ac/charactercache.h"
|
||||
#include "ags/shared/ac/display.h"
|
||||
#include "ags/shared/ac/draw.h"
|
||||
#include "ags/shared/ac/dynamicsprite.h"
|
||||
#include "ags/shared/ac/gamesetup.h"
|
||||
#include "ags/engine/ac/charactercache.h"
|
||||
#include "ags/engine/ac/display.h"
|
||||
#include "ags/engine/ac/draw.h"
|
||||
#include "ags/engine/ac/dynamicsprite.h"
|
||||
#include "ags/engine/ac/gamesetup.h"
|
||||
#include "ags/shared/ac/gamesetupstruct.h"
|
||||
#include "ags/shared/ac/global_audio.h"
|
||||
#include "ags/shared/ac/global_plugin.h"
|
||||
#include "ags/shared/ac/global_walkablearea.h"
|
||||
#include "ags/shared/ac/keycode.h"
|
||||
#include "ags/shared/ac/mouse.h"
|
||||
#include "ags/shared/ac/movelist.h"
|
||||
#include "ags/shared/ac/objectcache.h"
|
||||
#include "ags/shared/ac/parser.h"
|
||||
#include "ags/shared/ac/path_helper.h"
|
||||
#include "ags/shared/ac/roomstatus.h"
|
||||
#include "ags/shared/ac/string.h"
|
||||
#include "ags/shared/ac/dynobj/cc_dynamicobject_addr_and_manager.h"
|
||||
#include "ags/engine/ac/global_audio.h"
|
||||
#include "ags/engine/ac/global_plugin.h"
|
||||
#include "ags/engine/ac/global_walkablearea.h"
|
||||
#include "ags/engine/ac/keycode.h"
|
||||
#include "ags/engine/ac/mouse.h"
|
||||
#include "ags/engine/ac/movelist.h"
|
||||
#include "ags/engine/ac/objectcache.h"
|
||||
#include "ags/engine/ac/parser.h"
|
||||
#include "ags/engine/ac/path_helper.h"
|
||||
#include "ags/engine/ac/roomstatus.h"
|
||||
#include "ags/engine/ac/string.h"
|
||||
#include "ags/engine/ac/dynobj/cc_dynamicobject_addr_and_manager.h"
|
||||
#include "ags/shared/font/fonts.h"
|
||||
#include "ags/shared/util/string_compat.h"
|
||||
#include "ags/shared/debug/debug_log.h"
|
||||
#include "ags/shared/debug/debugger.h"
|
||||
#include "ags/shared/device/mousew32.h"
|
||||
#include "ags/engine/debugging/debug_log.h"
|
||||
#include "ags/engine/debugging/debugger.h"
|
||||
#include "ags/engine/device/mousew32.h"
|
||||
#include "ags/shared/gui/guidefines.h"
|
||||
#include "ags/shared/main/game_run.h"
|
||||
#include "ags/shared/main/engine.h"
|
||||
#include "ags/shared/plugin/agsplugin.h"
|
||||
#include "ags/shared/plugin/plugin_engine.h"
|
||||
#include "ags/shared/plugin/plugin_builtin.h"
|
||||
#include "ags/shared/plugin/pluginobjectreader.h"
|
||||
#include "ags/shared/script/script.h"
|
||||
#include "ags/shared/script/script_runtime.h"
|
||||
#include "ags/engine/main/game_run.h"
|
||||
#include "ags/engine/main/engine.h"
|
||||
#include "ags/engine/plugin/agsplugin.h"
|
||||
#include "ags/engine/plugin/plugin_engine.h"
|
||||
#include "ags/engine/plugin/plugin_builtin.h"
|
||||
#include "ags/engine/plugin/pluginobjectreader.h"
|
||||
#include "ags/engine/script/script.h"
|
||||
#include "ags/engine/script/script_runtime.h"
|
||||
#include "ags/shared/ac/spritecache.h"
|
||||
#include "ags/shared/util/stream.h"
|
||||
#include "ags/shared/gfx/bitmap.h"
|
||||
#include "ags/shared/gfx/graphicsdriver.h"
|
||||
#include "ags/shared/gfx/gfxfilter.h"
|
||||
#include "ags/shared/script/runtimescriptvalue.h"
|
||||
#include "ags/shared/debug/out.h"
|
||||
#include "ags/shared/ac/dynobj/scriptstring.h"
|
||||
#include "ags/shared/main/graphics_mode.h"
|
||||
#include "ags/shared/gfx/gfx_util.h"
|
||||
#include "ags/engine/gfx/graphicsdriver.h"
|
||||
#include "ags/engine/gfx/gfxfilter.h"
|
||||
#include "ags/engine/script/runtimescriptvalue.h"
|
||||
#include "ags/shared/debugging/out.h"
|
||||
#include "ags/engine/ac/dynobj/scriptstring.h"
|
||||
#include "ags/engine/main/graphics_mode.h"
|
||||
#include "ags/engine/gfx/gfx_util.h"
|
||||
#include "ags/shared/util/memory.h"
|
||||
#include "ags/shared/util/filestream.h"
|
||||
#include "ags/shared/media/audio/audio_system.h"
|
||||
|
||||
namespace AGS3 {
|
||||
|
||||
using namespace AGS::Shared;
|
||||
using namespace AGS::Shared::Memory;
|
||||
using namespace AGS::Engine;
|
||||
|
||||
#include "ags/engine/media/audio/audio_system.h"
|
||||
#include "ags/engine/util/library.h"
|
||||
|
||||
#if defined(BUILTIN_PLUGINS)
|
||||
#include "ags/shared/../Plugins/AGSflashlight/agsflashlight.h"
|
||||
@ -92,6 +86,11 @@ using namespace AGS::Engine;
|
||||
#endif // AGS_PLATFORM_OS_IOS
|
||||
#endif // BUILTIN_PLUGINS
|
||||
|
||||
namespace AGS3 {
|
||||
|
||||
using namespace AGS::Shared;
|
||||
using namespace AGS::Shared::Memory;
|
||||
using namespace AGS::Engine;
|
||||
|
||||
extern IGraphicsDriver *gfxDriver;
|
||||
extern int mousex, mousey;
|
||||
@ -117,9 +116,6 @@ extern ScriptString myScriptStringImpl;
|
||||
// **************** PLUGIN IMPLEMENTATION ****************
|
||||
|
||||
|
||||
#include "ags/shared/util/library.h"
|
||||
|
||||
|
||||
|
||||
|
||||
struct EnginePlugin {
|
||||
@ -260,7 +256,7 @@ unsigned char **IAGSEngine::GetRawBitmapSurface(BITMAP *bmp) {
|
||||
if (stage && bmp == stage->GetAllegroBitmap())
|
||||
plugins[this->pluginId].invalidatedRegion = 0;
|
||||
|
||||
return bmp->line;
|
||||
return (unsigned char **)bmp->getPixels();
|
||||
}
|
||||
|
||||
void IAGSEngine::ReleaseBitmapSurface(BITMAP *bmp) {
|
||||
@ -554,7 +550,7 @@ void IAGSEngine::PrintDebugConsole(const char *text) {
|
||||
platform->WriteStdOut("[PLUGIN] %s", text);
|
||||
}
|
||||
int IAGSEngine::IsChannelPlaying(int32 channel) {
|
||||
return ::IsChannelPlaying(channel);
|
||||
return AGS3::IsChannelPlaying(channel);
|
||||
}
|
||||
void IAGSEngine::PlaySoundChannel(int32 channel, int32 soundType, int32 volume, int32 loop, const char *filename) {
|
||||
stop_and_destroy_channel(channel);
|
||||
@ -752,19 +748,19 @@ void IAGSEngine::AddManagedObjectReader(const char *typeName, IAGSManagedObjectR
|
||||
numPluginReaders++;
|
||||
}
|
||||
|
||||
void IAGSEngine::RegisterUnserializedObject(int key, const void *object, IAGSScriptManagedObject *callback) {
|
||||
void IAGSEngine::RegisterUnserializedObject(int key_, const void *object, IAGSScriptManagedObject *callback) {
|
||||
GlobalReturnValue.SetPluginObject((void *)object, (ICCDynamicObject *)callback);
|
||||
ccRegisterUnserializedObject(key, object, (ICCDynamicObject *)callback, true);
|
||||
ccRegisterUnserializedObject(key_, object, (ICCDynamicObject *)callback, true);
|
||||
}
|
||||
|
||||
int IAGSEngine::GetManagedObjectKeyByAddress(const char *address) {
|
||||
return ccGetObjectHandleFromAddress(address);
|
||||
}
|
||||
|
||||
void *IAGSEngine::GetManagedObjectAddressByKey(int key) {
|
||||
void *IAGSEngine::GetManagedObjectAddressByKey(int key_) {
|
||||
void *object;
|
||||
ICCDynamicObject *manager;
|
||||
ScriptValueType obj_type = ccGetObjectAddressAndManagerFromHandle(key, object, manager);
|
||||
ScriptValueType obj_type = ccGetObjectAddressAndManagerFromHandle(key_, object, manager);
|
||||
if (obj_type == kScValPluginObject) {
|
||||
GlobalReturnValue.SetPluginObject(object, manager);
|
||||
} else {
|
||||
@ -977,10 +973,10 @@ bool pl_use_builtin_plugin(EnginePlugin *apl) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Engine::GameInitError pl_register_plugins(const std::vector<Common::PluginInfo> &infos) {
|
||||
Engine::GameInitError pl_register_plugins(const std::vector<Shared::PluginInfo> &infos) {
|
||||
numPlugins = 0;
|
||||
for (size_t inf_index = 0; inf_index < infos.size(); ++inf_index) {
|
||||
const Common::PluginInfo &info = infos[inf_index];
|
||||
const Shared::PluginInfo &info = infos[inf_index];
|
||||
String name = info.Name;
|
||||
if (name.GetLast() == '!')
|
||||
continue; // editor-only plugin, ignore it
|
||||
|
44
engines/ags/engine/plugin/library.cpp
Normal file
44
engines/ags/engine/plugin/library.cpp
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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "ags/engine/plugin/library.h"
|
||||
|
||||
namespace AGS3 {
|
||||
|
||||
void *dlopen(const char *filename, bool) {
|
||||
// TODO: Reimplement plugins as C++ code that's part of the project
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
int dlclose(void *) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *dlsym(void *lib, const char *method) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const char *dlerror() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
} // namespace AGS3
|
40
engines/ags/engine/plugin/library.h
Normal file
40
engines/ags/engine/plugin/library.h
Normal file
@ -0,0 +1,40 @@
|
||||
/* 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 AGS_ENGINE_PLUGIN_LIBRARY_H
|
||||
#define AGS_ENGINE_PLUGIN_LIBRARY_H
|
||||
|
||||
namespace AGS3 {
|
||||
|
||||
#define RTLD_LAZY true
|
||||
|
||||
extern void *dlopen(const char *filename, bool);
|
||||
|
||||
extern int dlclose(void *lib);
|
||||
|
||||
extern void *dlsym(void *lib, const char *method);
|
||||
|
||||
extern const char *dlerror();
|
||||
|
||||
} // namespace AGS3
|
||||
|
||||
#endif
|
@ -35,8 +35,6 @@ namespace AGS3 {
|
||||
|
||||
class IAGSEngine;
|
||||
|
||||
using namespace AGS; // FIXME later
|
||||
|
||||
// Initial implementation for apps to register their own inbuilt plugins
|
||||
|
||||
struct InbuiltPluginDetails {
|
||||
|
@ -20,8 +20,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "ags/shared/plugin/pluginobjectreader.h"
|
||||
#include "ags/shared/ac/runtime_defines.h"
|
||||
#include "ags/engine/plugin/pluginobjectreader.h"
|
||||
#include "ags/engine/ac/runtime_defines.h"
|
||||
|
||||
namespace AGS3 {
|
||||
|
||||
|
@ -56,10 +56,10 @@ public:
|
||||
#elif AGS_PLATFORM_OS_LINUX \
|
||||
|| AGS_PLATFORM_OS_MACOS \
|
||||
|| AGS_PLATFORM_OS_ANDROID
|
||||
#include "ags/shared/library_posix.h"
|
||||
#include "ags/engine/util/library_posix.h"
|
||||
|
||||
#elif AGS_PLATFORM_OS_IOS
|
||||
#include "ags/shared/library_dummy.h"
|
||||
#include "ags/engine/util/library_dummy.h"
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -26,7 +26,8 @@
|
||||
//include <dlfcn.h>
|
||||
#include "ags/shared/core/platform.h"
|
||||
#include "ags/shared/util/string.h"
|
||||
#include "ags/shared/debug/out.h"
|
||||
#include "ags/shared/debugging/out.h"
|
||||
#include "ags/engine/plugin/library.h"
|
||||
|
||||
namespace AGS3 {
|
||||
|
||||
|
@ -71,6 +71,13 @@ void set_palette_range(const PALETTE p, int from, int to, int retracesync) {
|
||||
g_system->getPaletteManager()->setPalette(&palette[from], from, to - from + 1);
|
||||
}
|
||||
|
||||
int makeacol(int r, int g, int b, int a) {
|
||||
error("TODO: makeacol");
|
||||
}
|
||||
|
||||
int makeacol_depth(int color_depth, int r, int g, int b, int a) {
|
||||
error("makeacol_depth");
|
||||
}
|
||||
|
||||
int makecol15(int r, int g, int b) {
|
||||
return (((r >> 3) << _rgb_r_shift_15) |
|
||||
@ -123,4 +130,20 @@ int makecol8(byte r, byte g, byte b) {
|
||||
return (b) | (g << 8) | (r << 16);
|
||||
}
|
||||
|
||||
int getr_depth(int color_depth, int c) {
|
||||
error("TOD: getr_depth");
|
||||
}
|
||||
|
||||
int getg_depth(int color_depth, int c) {
|
||||
error("TOD: getg_depth");
|
||||
}
|
||||
|
||||
int getb_depth(int color_depth, int c) {
|
||||
error("TOD: getb_depth");
|
||||
}
|
||||
|
||||
int geta_depth(int color_depth, int c) {
|
||||
error("TOD: geta_depth");
|
||||
}
|
||||
|
||||
} // namespace AGS3
|
||||
|
@ -70,6 +70,8 @@ AL_FUNC(void, set_color, (int idx, AL_CONST RGB *p));
|
||||
AL_FUNC(void, set_palette, (AL_CONST PALETTE p));
|
||||
AL_FUNC(void, set_palette_range, (AL_CONST PALETTE p, int from, int to, int retracesync));
|
||||
|
||||
extern int makeacol(int r, int g, int b, int a);
|
||||
extern int makeacol_depth(int color_depth, int r, int g, int b, int a);
|
||||
|
||||
extern int makecol15(int r, int g, int b);
|
||||
extern int makecol16(int r, int g, int b);
|
||||
@ -82,6 +84,11 @@ extern int getb8(int c);
|
||||
extern int makecol(byte r, byte g, byte b);
|
||||
extern int makecol8(byte r, byte g, byte b);
|
||||
|
||||
extern int getr_depth(int color_depth, int c);
|
||||
extern int getg_depth(int color_depth, int c);
|
||||
extern int getb_depth(int color_depth, int c);
|
||||
extern int geta_depth(int color_depth, int c);
|
||||
|
||||
} // namespace AGS3
|
||||
|
||||
#endif
|
||||
|
@ -244,6 +244,10 @@ bool is_planar_bitmap(BITMAP *bmp) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool is_linear_bitmap(BITMAP *bmp) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void bmp_select(BITMAP *bmp) {
|
||||
// No implementation needed
|
||||
}
|
||||
|
@ -236,6 +236,7 @@ extern void pivot_sprite(BITMAP *bmp, const BITMAP *sprite, int x, int y, int cx
|
||||
|
||||
extern bool is_screen_bitmap(BITMAP *bmp);
|
||||
extern bool is_video_bitmap(BITMAP *bmp);
|
||||
extern bool is_linear_bitmap(BITMAP *bmp);
|
||||
extern bool is_planar_bitmap(BITMAP *bmp);
|
||||
extern void bmp_select(BITMAP *bmp);
|
||||
extern long bmp_write_line(BITMAP *bmp, int line);
|
||||
|
@ -104,7 +104,9 @@ MODULE_OBJS = \
|
||||
engine/platform/base/agsplatformdriver.o \
|
||||
engine/platform/windows/acplwin.o \
|
||||
engine/platform/windows/minidump.o \
|
||||
engine/platform/windows/win_ex_handling.o
|
||||
engine/platform/windows/win_ex_handling.o \
|
||||
engine/plugin/agsplugin.o \
|
||||
engine/plugin/pluginobjectreader.o
|
||||
|
||||
|
||||
# This module can be built as a plugin
|
||||
|
Loading…
Reference in New Issue
Block a user