Skip to content

Commit

Permalink
ULTIMA: Disable unstable subengines by default
Browse files Browse the repository at this point in the history
  • Loading branch information
ccawley2011 committed Sep 9, 2020
1 parent b599728 commit d01279f
Show file tree
Hide file tree
Showing 6 changed files with 104 additions and 82 deletions.
3 changes: 2 additions & 1 deletion engines/ultima/configure.engine
@@ -1,3 +1,4 @@
# This file is included from the main "configure" script
# add_engine [name] [desc] [build-by-default] [subengines] [base games] [deps]
add_engine ultima "Ultima" yes "" "" "highres 16bit freetype2"
add_engine ultima "Ultima" yes "ultima1" "" "highres 16bit freetype2"
add_engine ultima1 "Ultima 1" no
4 changes: 4 additions & 0 deletions engines/ultima/detection.cpp
Expand Up @@ -38,7 +38,9 @@
namespace Ultima {

static const PlainGameDescriptor ULTIMA_GAMES[] = {
#ifdef ENABLE_ULTIMA1
{ "ultima1", "Ultima I - The First Age of Darkness" },
#endif
{ "ultima4", "Ultima IV - Quest of the Avatar" },
{ "ultima4_enh", "Ultima IV - Quest of the Avatar - Enhanced" },
{ "ultima6", "Ultima VI - The False Prophet" },
Expand Down Expand Up @@ -69,9 +71,11 @@ bool UltimaMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGa
const Ultima::UltimaGameDescription *gd = (const Ultima::UltimaGameDescription *)desc;
if (gd) {
switch (gd->gameId) {
#ifdef ENABLE_ULTIMA1
case Ultima::GAME_ULTIMA1:
*engine = new Ultima::Shared::UltimaEarlyEngine(syst, gd);
break;
#endif
case Ultima::GAME_ULTIMA4:
*engine = new Ultima::Ultima4::Ultima4Engine(syst, gd);
break;
Expand Down
2 changes: 2 additions & 0 deletions engines/ultima/detection_tables.h
Expand Up @@ -23,6 +23,7 @@
namespace Ultima {

static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
#ifdef ENABLE_ULTIMA1
{
// Ultima I - The First Age of Darkness
{
Expand Down Expand Up @@ -76,6 +77,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
GAME_ULTIMA1,
0
},
#endif

{
// Ultima IV - Quest of the Avatar
Expand Down
164 changes: 84 additions & 80 deletions engines/ultima/module.mk
Expand Up @@ -54,86 +54,6 @@ MODULE_OBJS := \
shared/maps/creature.o \
shared/std/misc.o \
shared/std/string.o \
ultima0/core/resources.o \
ultima0/game.o \
ultima0/resources.o \
ultima1/actions/action.o \
ultima1/actions/attack.o \
ultima1/actions/move.o \
ultima1/actions/quit.o \
ultima1/actions/ready.o \
ultima1/actions/stats.o \
ultima1/core/debugger.o \
ultima1/core/party.o \
ultima1/core/quests.o \
ultima1/core/resources.o \
ultima1/maps/map.o \
ultima1/maps/map_base.o \
ultima1/maps/map_city_castle.o \
ultima1/maps/map_dungeon.o \
ultima1/maps/map_overworld.o \
ultima1/maps/map_tile.o \
ultima1/spells/blink.o \
ultima1/spells/create.o \
ultima1/spells/destroy.o \
ultima1/spells/kill_magic_missile.o \
ultima1/spells/ladder_down.o \
ultima1/spells/ladder_up.o \
ultima1/spells/open_unlock.o \
ultima1/spells/prayer.o \
ultima1/spells/spell.o \
ultima1/spells/steal.o \
ultima1/u1dialogs/armoury.o \
ultima1/u1dialogs/buy_sell_dialog.o \
ultima1/u1dialogs/combat.o \
ultima1/u1dialogs/dialog.o \
ultima1/u1dialogs/drop.o \
ultima1/u1dialogs/full_screen_dialog.o \
ultima1/u1dialogs/grocery.o \
ultima1/u1dialogs/king.o \
ultima1/u1dialogs/magic.o \
ultima1/u1dialogs/ready.o \
ultima1/u1dialogs/stats.o \
ultima1/u1dialogs/tavern.o \
ultima1/u1dialogs/transports.o \
ultima1/u1dialogs/weaponry.o \
ultima1/u1gfx/drawing_support.o \
ultima1/u1gfx/info.o \
ultima1/u1gfx/sprites.o \
ultima1/u1gfx/status.o \
ultima1/u1gfx/text_cursor.o \
ultima1/u1gfx/view_char_gen.o \
ultima1/u1gfx/view_game.o \
ultima1/u1gfx/view_title.o \
ultima1/u1gfx/viewport_dungeon.o \
ultima1/u1gfx/viewport_map.o \
ultima1/u6gfx/game_view.o \
ultima1/widgets/attack_effect.o \
ultima1/widgets/bard.o \
ultima1/widgets/dungeon_chest.o \
ultima1/widgets/dungeon_coffin.o \
ultima1/widgets/dungeon_item.o \
ultima1/widgets/dungeon_monster.o \
ultima1/widgets/dungeon_player.o \
ultima1/widgets/dungeon_widget.o \
ultima1/widgets/guard.o \
ultima1/widgets/king.o \
ultima1/widgets/merchant.o \
ultima1/widgets/merchant_armour.o \
ultima1/widgets/merchant_grocer.o \
ultima1/widgets/merchant_magic.o \
ultima1/widgets/merchant_tavern.o \
ultima1/widgets/merchant_transport.o \
ultima1/widgets/merchant_weapons.o \
ultima1/widgets/overworld_monster.o \
ultima1/widgets/overworld_widget.o \
ultima1/widgets/person.o \
ultima1/widgets/princess.o \
ultima1/widgets/transport.o \
ultima1/widgets/urban_player.o \
ultima1/widgets/urban_widget.o \
ultima1/widgets/wench.o \
ultima1/game.o \
ultima4/controllers/alpha_action_controller.o \
ultima4/controllers/camp_controller.o \
ultima4/controllers/combat_controller.o \
Expand Down Expand Up @@ -583,6 +503,90 @@ MODULE_OBJS := \
ultima8/world/actors/targeted_anim_process.o \
ultima8/world/actors/teleport_to_egg_process.o

ifdef ENABLE_ULTIMA1
MODULE_OBJS += \
ultima0/core/resources.o \
ultima0/game.o \
ultima0/resources.o \
ultima1/actions/action.o \
ultima1/actions/attack.o \
ultima1/actions/move.o \
ultima1/actions/quit.o \
ultima1/actions/ready.o \
ultima1/actions/stats.o \
ultima1/core/debugger.o \
ultima1/core/party.o \
ultima1/core/quests.o \
ultima1/core/resources.o \
ultima1/maps/map.o \
ultima1/maps/map_base.o \
ultima1/maps/map_city_castle.o \
ultima1/maps/map_dungeon.o \
ultima1/maps/map_overworld.o \
ultima1/maps/map_tile.o \
ultima1/spells/blink.o \
ultima1/spells/create.o \
ultima1/spells/destroy.o \
ultima1/spells/kill_magic_missile.o \
ultima1/spells/ladder_down.o \
ultima1/spells/ladder_up.o \
ultima1/spells/open_unlock.o \
ultima1/spells/prayer.o \
ultima1/spells/spell.o \
ultima1/spells/steal.o \
ultima1/u1dialogs/armoury.o \
ultima1/u1dialogs/buy_sell_dialog.o \
ultima1/u1dialogs/combat.o \
ultima1/u1dialogs/dialog.o \
ultima1/u1dialogs/drop.o \
ultima1/u1dialogs/full_screen_dialog.o \
ultima1/u1dialogs/grocery.o \
ultima1/u1dialogs/king.o \
ultima1/u1dialogs/magic.o \
ultima1/u1dialogs/ready.o \
ultima1/u1dialogs/stats.o \
ultima1/u1dialogs/tavern.o \
ultima1/u1dialogs/transports.o \
ultima1/u1dialogs/weaponry.o \
ultima1/u1gfx/drawing_support.o \
ultima1/u1gfx/info.o \
ultima1/u1gfx/sprites.o \
ultima1/u1gfx/status.o \
ultima1/u1gfx/text_cursor.o \
ultima1/u1gfx/view_char_gen.o \
ultima1/u1gfx/view_game.o \
ultima1/u1gfx/view_title.o \
ultima1/u1gfx/viewport_dungeon.o \
ultima1/u1gfx/viewport_map.o \
ultima1/u6gfx/game_view.o \
ultima1/widgets/attack_effect.o \
ultima1/widgets/bard.o \
ultima1/widgets/dungeon_chest.o \
ultima1/widgets/dungeon_coffin.o \
ultima1/widgets/dungeon_item.o \
ultima1/widgets/dungeon_monster.o \
ultima1/widgets/dungeon_player.o \
ultima1/widgets/dungeon_widget.o \
ultima1/widgets/guard.o \
ultima1/widgets/king.o \
ultima1/widgets/merchant.o \
ultima1/widgets/merchant_armour.o \
ultima1/widgets/merchant_grocer.o \
ultima1/widgets/merchant_magic.o \
ultima1/widgets/merchant_tavern.o \
ultima1/widgets/merchant_transport.o \
ultima1/widgets/merchant_weapons.o \
ultima1/widgets/overworld_monster.o \
ultima1/widgets/overworld_widget.o \
ultima1/widgets/person.o \
ultima1/widgets/princess.o \
ultima1/widgets/transport.o \
ultima1/widgets/urban_player.o \
ultima1/widgets/urban_widget.o \
ultima1/widgets/wench.o \
ultima1/game.o
endif

# This module can be built as a plugin
ifeq ($(ENABLE_ULTIMA), DYNAMIC_PLUGIN)
PLUGIN := 1
Expand Down
6 changes: 6 additions & 0 deletions engines/ultima/shared/early/ultima_early.cpp
Expand Up @@ -29,13 +29,17 @@
#include "graphics/scaler.h"
#include "gui/saveload.h"
#include "ultima/shared/early/ultima_early.h"
#include "ultima/shared/early/game.h"
#include "ultima/shared/engine/ultima.h"
#include "ultima/shared/engine/debugger.h"
#include "ultima/shared/engine/events.h"
#include "ultima/shared/engine/resources.h"
#include "ultima/shared/core/mouse_cursor.h"
#include "ultima/shared/gfx/screen.h"

#ifdef ENABLE_ULTIMA1
#include "ultima/ultima1/game.h"
#endif

namespace Ultima {

Expand Down Expand Up @@ -117,8 +121,10 @@ Graphics::Screen *UltimaEarlyEngine::getScreen() const {

Game *UltimaEarlyEngine::createGame() const {
switch (getGameId()) {
#ifdef ENABLE_ULTIMA1
case GAME_ULTIMA1:
return new Ultima1::Ultima1Game();
#endif
default:
error("Unknown game");
}
Expand Down
7 changes: 6 additions & 1 deletion engines/ultima/shared/engine/resources.cpp
Expand Up @@ -22,9 +22,12 @@

#include "ultima/shared/engine/resources.h"
#include "ultima/shared/early/font_resources.h"
#include "ultima/ultima1/core/resources.h"
#include "common/endian.h"

#ifdef ENABLE_ULTIMA1
#include "ultima/ultima1/core/resources.h"
#endif

namespace Ultima {
namespace Shared {

Expand All @@ -34,8 +37,10 @@ bool Resources::open() {
// Save locally constructred resources to the archive manager for access
Shared::FontResources sharedFonts(this);
sharedFonts.save();
#ifdef ENABLE_ULTIMA1
Ultima1::GameResources u1Data(this);
u1Data.save();
#endif

return true;
}
Expand Down

0 comments on commit d01279f

Please sign in to comment.