Skip to content

Commit

Permalink
KOTOR: Replace ScopedPtr/ScopedArray with std::unique_ptr
Browse files Browse the repository at this point in the history
  • Loading branch information
DrMcCoy committed Aug 11, 2020
1 parent 368ddb4 commit 996185f
Show file tree
Hide file tree
Showing 30 changed files with 107 additions and 104 deletions.
6 changes: 3 additions & 3 deletions src/engines/kotor/creature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -170,11 +170,11 @@ Common::UString Creature::getHeadMeshString(KotORBase::Gender gender, KotORBase:

Graphics::Aurora::Model *Creature::createModel(const CharacterGenerationInfo *info) {
Common::UString bodyString = getBodyMeshString(info->getGender(), info->getClass());
Common::ScopedPtr<Graphics::Aurora::Model> body(loadModelObject(bodyString, ""));
std::unique_ptr<Graphics::Aurora::Model> body(loadModelObject(bodyString, ""));
if (!body)
return 0;

Common::ScopedPtr<Graphics::Aurora::Model> head(createHeadModel(info));
std::unique_ptr<Graphics::Aurora::Model> head(createHeadModel(info));
if (head)
body->attachModel("headhook", head.release());

Expand All @@ -183,7 +183,7 @@ Graphics::Aurora::Model *Creature::createModel(const CharacterGenerationInfo *in

Graphics::Aurora::Model *Creature::createHeadModel(const CharacterGenerationInfo *info) {
Common::UString headString = getHeadMeshString(info->getGender(), info->getSkin(), info->getFace());
Common::ScopedPtr<Graphics::Aurora::Model> head(loadModelObject(headString, ""));
std::unique_ptr<Graphics::Aurora::Model> head(loadModelObject(headString, ""));
if (!head)
return 0;

Expand Down
4 changes: 2 additions & 2 deletions src/engines/kotor/game.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,15 @@ Game::Game(KotOREngine &engine, Engines::Console &console, const Version &gameVe
_engine(&engine),
_gameVersion(&gameVersion) {

_functions.reset(new Functions(*this));
_functions = std::make_unique<Functions>(*this);
collectModules();
}

Game::~Game() {
}

void Game::run() {
_module.reset(new Module(*_console));
_module = std::make_unique<Module>(*_console);

while (!EventMan.quitRequested()) {
mainMenu();
Expand Down
15 changes: 8 additions & 7 deletions src/engines/kotor/gui/chargen/charactergeneration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,13 @@
* The primary character generation menu.
*/

#include <memory>

#include "external/glm/mat4x4.hpp"
#include "external/glm/gtc/type_ptr.hpp"
#include "external/glm/gtc/matrix_transform.hpp"

#include "src/common/util.h"
#include "src/common/scopedptr.h"

#include "src/aurora/talkman.h"

Expand Down Expand Up @@ -159,7 +160,7 @@ void CharacterGenerationMenu::showQuickOrCustom() {

_step = 0;

_quickOrCustom.reset(new QuickOrCustomPanel(this));
_quickOrCustom = std::make_unique<QuickOrCustomPanel>(this);
addChild(_quickOrCustom.get());
}

Expand All @@ -169,7 +170,7 @@ void CharacterGenerationMenu::showQuick() {
if (_customChar)
removeChild(_customChar.get());

_quickChar.reset(new QuickCharPanel(this));
_quickChar = std::make_unique<QuickCharPanel>(this);
addChild(_quickChar.get());
}

Expand All @@ -179,15 +180,15 @@ void CharacterGenerationMenu::showCustom() {
if (_quickChar)
removeChild(_quickChar.get());

_customChar.reset(new CustomCharPanel(this));
_customChar = std::make_unique<CustomCharPanel>(this);
addChild(_customChar.get());
}

void CharacterGenerationMenu::showPortrait() {
// Operate on a copy of the character object
CharacterGenerationInfo info = *_pc;

_charGenMenu.reset(new CharacterGenerationPortraitMenu(info));
_charGenMenu = std::make_unique<CharacterGenerationPortraitMenu>(info);

sub(*_charGenMenu);
if (_charGenMenu->isAccepted()) {
Expand All @@ -197,7 +198,7 @@ void CharacterGenerationMenu::showPortrait() {
if (lblPortrait)
lblPortrait->setFill(_pc->getPortrait());

Common::ScopedPtr<Graphics::Aurora::Model> head(Creature::createHeadModel(_pc));
std::unique_ptr<Graphics::Aurora::Model> head(Creature::createHeadModel(_pc));
if (head) {
GfxMan.lockFrame();
_pcModel->attachModel("headhook", head.release());
Expand All @@ -213,7 +214,7 @@ void CharacterGenerationMenu::showName() {
// Operate on a copy of the character object
CharacterGenerationInfo info = *_pc;

_charGenMenu.reset(new CharacterGenerationNameMenu(info));
_charGenMenu = std::make_unique<CharacterGenerationNameMenu>(info);

sub(*_charGenMenu);
if (_charGenMenu->isAccepted()) {
Expand Down
12 changes: 6 additions & 6 deletions src/engines/kotor/gui/chargen/charactergeneration.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,17 @@ class CharacterGenerationMenu : public KotORBase::GUI {
private:
KotORBase::Module *_module;
CharacterGenerationInfo *_pc;
Common::ScopedPtr<Graphics::Aurora::Model> _pcModel;
std::unique_ptr<Graphics::Aurora::Model> _pcModel;

int _step;

Common::ScopedPtr<GUI> _quickOrCustom;
Common::ScopedPtr<GUI> _quickChar;
Common::ScopedPtr<GUI> _customChar;
std::unique_ptr<GUI> _quickOrCustom;
std::unique_ptr<GUI> _quickChar;
std::unique_ptr<GUI> _customChar;

Common::ScopedPtr<CharacterGenerationBaseMenu> _charGenMenu;
std::unique_ptr<CharacterGenerationBaseMenu> _charGenMenu;

Common::ScopedPtr<Graphics::Aurora::SubSceneQuad> _charSubScene;
std::unique_ptr<Graphics::Aurora::SubSceneQuad> _charSubScene;

void callbackKeyInput(const Events::Key &key, const Events::EventType &type);
};
Expand Down
2 changes: 1 addition & 1 deletion src/engines/kotor/gui/chargen/classselection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ ClassSelectionMenu::~ClassSelectionMenu() {
}

void ClassSelectionMenu::createCharacterGeneration(CharacterGenerationInfo *info) {
_charGen.reset(new CharacterGenerationMenu(_module, info));
_charGen = std::make_unique<CharacterGenerationMenu>(_module, info);
}

void ClassSelectionMenu::callbackRun() {
Expand Down
28 changes: 14 additions & 14 deletions src/engines/kotor/gui/chargen/classselection.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class ClassSelectionMenu : public KotORBase::GUI {
virtual ~ClassSelectionMenu();

private:
Common::ScopedPtr<KotORBase::GUI> _charGen;
std::unique_ptr<KotORBase::GUI> _charGen;

Graphics::Aurora::SubSceneQuad _maleSoldierSubScene;
Graphics::Aurora::SubSceneQuad _maleScoutSubScene;
Expand Down Expand Up @@ -82,19 +82,19 @@ class ClassSelectionMenu : public KotORBase::GUI {
Common::UString _scoutMaleTitle;
Common::UString _scoutFemaleTitle;

Common::ScopedPtr<CharacterGenerationInfo> _maleSoldier;
Common::ScopedPtr<CharacterGenerationInfo> _maleScout;
Common::ScopedPtr<CharacterGenerationInfo> _maleScoundrel;
Common::ScopedPtr<CharacterGenerationInfo> _femaleSoldier;
Common::ScopedPtr<CharacterGenerationInfo> _femaleScout;
Common::ScopedPtr<CharacterGenerationInfo> _femaleScoundrel;

Common::ScopedPtr<Graphics::Aurora::Model> _maleSoldierModel;
Common::ScopedPtr<Graphics::Aurora::Model> _maleScoutModel;
Common::ScopedPtr<Graphics::Aurora::Model> _maleScoundrelModel;
Common::ScopedPtr<Graphics::Aurora::Model> _femaleSoldierModel;
Common::ScopedPtr<Graphics::Aurora::Model> _femaleScoutModel;
Common::ScopedPtr<Graphics::Aurora::Model> _femaleScoundrelModel;
std::unique_ptr<CharacterGenerationInfo> _maleSoldier;
std::unique_ptr<CharacterGenerationInfo> _maleScout;
std::unique_ptr<CharacterGenerationInfo> _maleScoundrel;
std::unique_ptr<CharacterGenerationInfo> _femaleSoldier;
std::unique_ptr<CharacterGenerationInfo> _femaleScout;
std::unique_ptr<CharacterGenerationInfo> _femaleScoundrel;

std::unique_ptr<Graphics::Aurora::Model> _maleSoldierModel;
std::unique_ptr<Graphics::Aurora::Model> _maleScoutModel;
std::unique_ptr<Graphics::Aurora::Model> _maleScoundrelModel;
std::unique_ptr<Graphics::Aurora::Model> _femaleSoldierModel;
std::unique_ptr<Graphics::Aurora::Model> _femaleScoutModel;
std::unique_ptr<Graphics::Aurora::Model> _femaleScoundrelModel;

void createCharacterGeneration(CharacterGenerationInfo *);

Expand Down
4 changes: 2 additions & 2 deletions src/engines/kotor/gui/ingame/hud.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ void HUD::setMinimap(const Common::UString &map, int northAxis,

GfxMan.lockFrame();

_minimap.reset(new Minimap(map, northAxis, mapPt1X, mapPt1Y, mapPt2X, mapPt2Y, worldPt1X, worldPt1Y, worldPt2X, worldPt2Y));
_minimap = std::make_unique<Minimap>(map, northAxis, mapPt1X, mapPt1Y, mapPt2X, mapPt2Y, worldPt1X, worldPt1Y, worldPt2X, worldPt2Y);
mapView->setSubScene(_minimap.get());

GfxMan.unlockFrame();
Expand All @@ -255,7 +255,7 @@ void HUD::setRotation(float angle) {
}

void HUD::showContainer(KotORBase::Inventory &inv) {
_container.reset(new ContainerMenu());
_container = std::make_unique<ContainerMenu>();
_container->fillFromInventory(inv);

if (sub(*_container, kStartCodeNone, true, false) == 1) {
Expand Down
4 changes: 2 additions & 2 deletions src/engines/kotor/gui/ingame/hud.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ class HUD : public KotORBase::HUD, Events::Notifyable {

private:
Menu _menu;
Common::ScopedPtr<ContainerMenu> _container;
std::unique_ptr<ContainerMenu> _container;

Common::ScopedPtr<Minimap> _minimap;
std::unique_ptr<Minimap> _minimap;
Odyssey::WidgetLabel *_minimapPointer { nullptr };

void update(int width, int height);
Expand Down
2 changes: 1 addition & 1 deletion src/engines/kotor/gui/ingame/ingame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ namespace Engines {
namespace KotOR {

IngameGUI::IngameGUI(KotORBase::Module &module, Console *console) {
_hud.reset(new HUD(module, console));
_hud = std::make_unique<HUD>(module, console);
}

} // End of namespace KotOR
Expand Down
22 changes: 11 additions & 11 deletions src/engines/kotor/gui/ingame/menu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,17 @@ Menu::Menu(KotORBase::Module &module, Console *console) :
}
}

_menu[kMenuTypeEquipment].menu.reset(new MenuEquipment(_module, console));
_menu[kMenuTypeInventory].menu.reset(new MenuInventory(_module, console));
_menu[kMenuTypeCharacter].menu.reset(new MenuCharacter(_module, console));
_menu[kMenuTypeAbilities].menu.reset(new MenuAbilities(_module, console));
_menu[kMenuTypeMessages].menu.reset(new MenuMessages(console));
_menu[kMenuTypeJournal].menu.reset(new MenuJournal(console));
_menu[kMenuTypeMap].menu.reset(new MenuMap(console));
_menu[kMenuTypeOptions].menu.reset(new MenuOptions(console));

_menuLoad.reset(new SaveLoadMenu(module, console, kSaveLoadMenuTypeLoad, true));
_menuSave.reset(new SaveLoadMenu(module, console, kSaveLoadMenuTypeSave, true));
_menu[kMenuTypeEquipment].menu = std::make_unique<MenuEquipment>(_module, console);
_menu[kMenuTypeInventory].menu = std::make_unique<MenuInventory>(_module, console);
_menu[kMenuTypeCharacter].menu = std::make_unique<MenuCharacter>(_module, console);
_menu[kMenuTypeAbilities].menu = std::make_unique<MenuAbilities>(_module, console);
_menu[kMenuTypeMessages].menu = std::make_unique<MenuMessages>(console);
_menu[kMenuTypeJournal].menu = std::make_unique<MenuJournal>(console);
_menu[kMenuTypeMap].menu = std::make_unique<MenuMap>(console);
_menu[kMenuTypeOptions].menu = std::make_unique<MenuOptions>(console);

_menuLoad = std::make_unique<SaveLoadMenu>(module, console, kSaveLoadMenuTypeLoad, true);
_menuSave = std::make_unique<SaveLoadMenu>(module, console, kSaveLoadMenuTypeSave, true);
}

void Menu::setReturnStrref(uint32 id) {
Expand Down
6 changes: 3 additions & 3 deletions src/engines/kotor/gui/ingame/menu.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ class Menu : public KotORBase::GUI {
Odyssey::WidgetProtoItem *protoItem;
Odyssey::WidgetButton *button;

Common::ScopedPtr<KotORBase::GUI> menu;
std::unique_ptr<KotORBase::GUI> menu;

SubMenu() : protoItem(0), button(0) { }
};
Expand All @@ -91,8 +91,8 @@ class Menu : public KotORBase::GUI {
SubMenu _menu[kMenuTypeMAX];
SubMenu *_currentMenu;

Common::ScopedPtr<SaveLoadMenu> _menuLoad;
Common::ScopedPtr<SaveLoadMenu> _menuSave;
std::unique_ptr<SaveLoadMenu> _menuLoad;
std::unique_ptr<SaveLoadMenu> _menuSave;

MenuType getMenuTypeByButtonTag(const Common::UString &tag);
void showMenu(MenuType type);
Expand Down
2 changes: 1 addition & 1 deletion src/engines/kotor/gui/ingame/menu_opt.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#ifndef ENGINES_KOTOR_GUI_INGAME_MENU_OPT_H
#define ENGINES_KOTOR_GUI_INGAME_MENU_OPT_H

#include "src/common/scopedptr.h"
#include <memory>

#include "src/engines/kotorbase/gui/gui.h"

Expand Down
10 changes: 5 additions & 5 deletions src/engines/kotor/gui/main/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ MainMenu::MainMenu(const Version &gameVersion, KotORBase::Module &module, ::Engi

startMainMusic();

_malakScene.reset(new Graphics::Aurora::SubSceneQuad);
_malakScene = std::make_unique<Graphics::Aurora::SubSceneQuad>();

_malakModel.reset(loadModelObject("mainmenu"));

Expand Down Expand Up @@ -105,7 +105,7 @@ void MainMenu::createClassSelection() {
_module->loadTexturePack();

// Create the class selection menu
_classSelection.reset(new ClassSelectionMenu(_module, _console));
_classSelection = std::make_unique<ClassSelectionMenu>(_module, _console);

loadScreen.hide();
show();
Expand All @@ -116,15 +116,15 @@ void MainMenu::createMovies() {
return;

// Create the movies menu
_movies.reset(new MoviesMenu(_console));
_movies = std::make_unique<MoviesMenu>(_console);
}

void MainMenu::createOptions() {
if (_options)
return;

// Create the options menu
_options.reset(new OptionsMenu(*_gameVersion, _console));
_options = std::make_unique<OptionsMenu>(*_gameVersion, _console);

}

Expand All @@ -133,7 +133,7 @@ void MainMenu::createLoadGame() {
return;

// Create the load game menu
_loadGame.reset(new SaveLoadMenu(*_module, _console));
_loadGame = std::make_unique<SaveLoadMenu>(*_module, _console);
}

void MainMenu::startMainMusic() {
Expand Down
14 changes: 7 additions & 7 deletions src/engines/kotor/gui/main/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#ifndef ENGINES_KOTOR_GUI_MAIN_MAIN_H
#define ENGINES_KOTOR_GUI_MAIN_MAIN_H

#include "src/common/scopedptr.h"
#include <memory>

#include "src/graphics/aurora/subscenequad.h"

Expand Down Expand Up @@ -55,13 +55,13 @@ class MainMenu : public KotORBase::GUI {
KotORBase::Module *_module;
const Version *_gameVersion;

Common::ScopedPtr<Graphics::Aurora::SubSceneQuad> _malakScene;
Common::ScopedPtr<Graphics::Aurora::Model> _malakModel;
std::unique_ptr<Graphics::Aurora::SubSceneQuad> _malakScene;
std::unique_ptr<Graphics::Aurora::Model> _malakModel;

Common::ScopedPtr<GUI> _classSelection;
Common::ScopedPtr<GUI> _movies;
Common::ScopedPtr<GUI> _options;
Common::ScopedPtr<GUI> _loadGame;
std::unique_ptr<GUI> _classSelection;
std::unique_ptr<GUI> _movies;
std::unique_ptr<GUI> _options;
std::unique_ptr<GUI> _loadGame;

Sound::ChannelHandle _menuMusic;

Expand Down
10 changes: 5 additions & 5 deletions src/engines/kotor/gui/main/options.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ OptionsMenu::OptionsMenu(const Version &gameVersion, ::Engines::Console *console

addBackground(KotORBase::kBackgroundTypeMenu);

_gameplay.reset(new OptionsGameplayMenu(_console));
_feedback.reset(new OptionsFeedbackMenu(_console));
_autopause.reset(new OptionsAutoPauseMenu(_console));
_graphics.reset(new OptionsGraphicsMenu(_console));
_sound.reset(new OptionsSoundMenu(_console));
_gameplay = std::make_unique<OptionsGameplayMenu>(_console);
_feedback = std::make_unique<OptionsFeedbackMenu>(_console);
_autopause = std::make_unique<OptionsAutoPauseMenu>(_console);
_graphics = std::make_unique<OptionsGraphicsMenu>(_console);
_sound = std::make_unique<OptionsSoundMenu>(_console);

Common::UString versionString = Common::UString(::Version::getProjectNameVersion());

Expand Down
12 changes: 6 additions & 6 deletions src/engines/kotor/gui/main/options.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#ifndef ENGINES_KOTOR_GUI_MAIN_OPTIONS_H
#define ENGINES_KOTOR_GUI_MAIN_OPTIONS_H

#include "src/common/scopedptr.h"
#include <memory>

#include "src/graphics/aurora/highlightable.h"

Expand All @@ -48,11 +48,11 @@ class OptionsMenu : public KotORBase::GUI {
void callbackActive(Widget &widget);

private:
Common::ScopedPtr<KotORBase::GUI> _gameplay;
Common::ScopedPtr<KotORBase::GUI> _feedback;
Common::ScopedPtr<KotORBase::GUI> _autopause;
Common::ScopedPtr<KotORBase::GUI> _graphics;
Common::ScopedPtr<KotORBase::GUI> _sound;
std::unique_ptr<KotORBase::GUI> _gameplay;
std::unique_ptr<KotORBase::GUI> _feedback;
std::unique_ptr<KotORBase::GUI> _autopause;
std::unique_ptr<KotORBase::GUI> _graphics;
std::unique_ptr<KotORBase::GUI> _sound;
};

} // End of namespace KotOR
Expand Down

0 comments on commit 996185f

Please sign in to comment.