Draw_Handler::Draw_Handler(GameState &state, sf::RenderWindow &window)
{
	this->m_gs = &state;
	this->m_wnd = &window;

	preLoad();
}
예제 #2
0
// ---
QGAMES::Object* QGAMES::ObjectBuilder::object (int nO)
{
	if (!_alreadyLoaded)
		preLoad (); // If there is no elements already loaded, they are then loaded...

	std::map <int, QGAMES::Object*>::const_iterator i = _objects.find (nO);
	assert (i != _objects.end ());
	return ((*i).second);
}
예제 #3
0
void CProjectItem::loadGame(int slotId) {
    CompressedFile file;

    // Clear any existing project contents and call preload code
    preLoad();
    clear();

    // Open either an existing savegame slot or the new game template
    if (slotId >= 0) {
        Common::InSaveFile *saveFile = g_system->getSavefileManager()->openForLoading(
                                           g_vm->generateSaveName(slotId));
        file.open(saveFile);
    } else {
        Common::File *newFile = new Common::File();
        if (!newFile->open("newgame.st"))
            error("Could not open newgame.st");
        file.open(newFile);
    }

    // Load the savegame header in
    TitanicSavegameHeader header;
    readSavegameHeader(&file, header);
    delete header._thumbnail;

    // Load the contents in
    CProjectItem *newProject = loadData(&file);
    file.IsClassStart();
    getGameManager()->load(&file);

    file.close();

    // Clear existing project
    clear();

    // Detach each item under the loaded project, and re-attach them
    // to the existing project instance (this)
    CTreeItem *item;
    while ((item = newProject->getFirstChild()) != nullptr) {
        item->detach();
        item->addUnder(this);
    }

    // Loaded project instance is no longer needed
    newProject->destroyAll();

    // Post-load processing
    postLoad();
}