/* Protection screen and cinematic don't need the player and enemies polygon data
   so _memList[video2Index] is never loaded for those parts of the game. When 
   needed (for action phrases) _memList[video2Index] is always loaded with 0x11 
   (as seen in memListParts). */
void Resource::setupPart(uint16_t partId) {

	

	if (partId == currentPartId)
		return;

	if (partId < GAME_PART_FIRST || partId > GAME_PART_LAST)
		error("Resource::setupPart() ec=0x%X invalid partId", partId);

	uint16_t memListPartIndex = partId - GAME_PART_FIRST;

	uint8_t paletteIndex = memListParts[memListPartIndex][MEMLIST_PART_PALETTE];
	uint8_t codeIndex    = memListParts[memListPartIndex][MEMLIST_PART_CODE];
	uint8_t videoCinematicIndex  = memListParts[memListPartIndex][MEMLIST_PART_POLY_CINEMATIC];
	uint8_t video2Index  = memListParts[memListPartIndex][MEMLIST_PART_VIDEO2];

	// Mark all resources as located on harddrive.
	invalidateAll();

	_memList[paletteIndex].state = 2;
	_memList[codeIndex].state = 2;
	_memList[videoCinematicIndex].state = 2;

	// This is probably a cinematic or a non interactive part of the game.
	// Player and enemy polygons are not needed.
	if (video2Index != MEMLIST_PART_NONE) 
		_memList[video2Index].state = 2;
	

	loadMarkedAsNeeded();

	segPalettes = _memList[paletteIndex].bufPtr;
	segBytecode     = _memList[codeIndex].bufPtr;
	segCinematic   = _memList[videoCinematicIndex].bufPtr;



	// This is probably a cinematic or a non interactive part of the game.
	// Player and enemy polygons are not needed.
	if (video2Index != MEMLIST_PART_NONE) 
		_segVideo2 = _memList[video2Index].bufPtr;
	
	debug(DBG_RES,"");
	debug(DBG_RES,"setupPart(%d)",partId-GAME_PART_FIRST);
	debug(DBG_RES,"Loaded resource %d (%s) in segPalettes.",paletteIndex,resTypeToString(_memList[paletteIndex].type));
	debug(DBG_RES,"Loaded resource %d (%s) in segBytecode.",codeIndex,resTypeToString(_memList[codeIndex].type));
	debug(DBG_RES,"Loaded resource %d (%s) in segCinematic.",videoCinematicIndex,resTypeToString(_memList[videoCinematicIndex].type));

	if (video2Index != MEMLIST_PART_NONE) 
		debug(DBG_RES,"Loaded resource %d (%s) in _segVideo2.",video2Index,resTypeToString(_memList[video2Index].type));



	currentPartId = partId;
	

	// _scriptCurPtr is changed in this->load();
	_scriptBakPtr = _scriptCurPtr;	
}
Ejemplo n.º 2
0
void Resource::setupPtrs(uint16 ptrId) {
	if (ptrId != _curPtrsId) {
		uint8 ipal = 0;
		uint8 icod = 0;
		uint8 ivd1 = 0;
		uint8 ivd2 = 0;
		if (ptrId >= 0x3E80 && ptrId <= 0x3E89) {
			uint16 part = ptrId - 0x3E80;
			ipal = _memListParts[part][0];
			icod = _memListParts[part][1];
			ivd1 = _memListParts[part][2];
			ivd2 = _memListParts[part][3];
		} else {
			error("Resource::setupPtrs() ec=0x%X invalid ptrId", 0xF07);
		}
		invalidateAll();
		_memList[ipal].valid = 2;
		_memList[icod].valid = 2;
		_memList[ivd1].valid = 2;
		if (ivd2 != 0) {
			_memList[ivd2].valid = 2;
		}
		load();
		_segVideoPal = _memList[ipal].bufPtr;
		_segCode = _memList[icod].bufPtr;
		_segVideo1 = _memList[ivd1].bufPtr;
		if (ivd2 != 0) {
			_segVideo2 = _memList[ivd2].bufPtr;
		}
		_curPtrsId = ptrId;
	}
	_scriptBakPtr = _scriptCurPtr;	
}
Ejemplo n.º 3
0
bool MainWindow::loadProject( QString fileName )
{
	try
	{
		QDir d = QFileInfo( fileName ).absoluteDir();
		QString projectDir = QDir::cleanPath( d.absolutePath() );

		QFile file( fileName );
		if ( !file.open( QIODevice::ReadOnly ) )
			throw std::runtime_error( "cant open project file" );

		QDomDocument doc;
		if ( !doc.setContent( &file ) ) 
			throw std::runtime_error( "cant load project file" );

		QDomElement root = doc.documentElement();
		if ( root.tagName() != "project" )
			throw std::runtime_error( "invalid project format" );

		clearUndoHistory();
		project.load( root, projectDir );
		invalidateAll();

		spriteView->load(root);
		graphicsView->load( root );
	}
	catch (...)
	{
		return false;		
	}

	return true;
}
Ejemplo n.º 4
0
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, m_defaultMasterDelay(5)
, m_defaultLoginDelay(15)
, m_defaultLength(8)
, m_removeText(tr("&Remove URL && User"))
, m_saveText(tr("&Save URL && User"))
, m_saveToolTip(tr("Save current URL & User. Passwords are not saved."))
, m_removeToolTip(tr("Don't remember current URL & User anymore."))
, m_masterPasswordText(tr("<b>Master password:</b>"))
, m_masterDelay(m_defaultMasterDelay)
, m_loginDelay(m_defaultLoginDelay)
, m_autoCopy(false)
, m_autoClear(false)
, m_alwaysOnTop(true)
, m_masterEdit(new QLineEdit(this))
, m_masterLabel(new QLabel(this))
, m_userEdit(new QLineEdit(this))
, m_passwdEdit(new QLineEdit(this))
, m_urlCombo(new QComboBox(this))
, m_genButton(new QPushButton(tr("&Show password!"), this))
, m_saveButton(new QPushButton(m_saveText, this))
, m_lengthSpinBox(new QSpinBox(this))
, m_masterTimer(new QTimer)
, m_timeLine(new QTimeLine)
, m_settingsDlg(new SettingsDlg(this))
{
    setWindowTitle("Fleeting Password Manager");
    setWindowIcon(QIcon(":/fleetingpm.png"));

    initWidgets();
    initMenu();
    initBackground();
    loadSettings();

    // Apply window flags
    if (m_alwaysOnTop)
    {
        setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
    }

    // Initialize the timer used when fading out the login details.
    m_timeLine->setDuration(m_loginDelay * 1000);
    connect(m_timeLine, SIGNAL(frameChanged(int)), this, SLOT(decreasePasswordAlpha(int)));
    connect(m_timeLine, SIGNAL(finished()), this, SLOT(invalidateAll()));
    m_timeLine->setFrameRange(0, 255);

    // Initialize the timer used when showing the
    // master password.
    m_masterTimer->setInterval(m_masterDelay * 60 * 1000);
    m_masterTimer->setSingleShot(true);
    connect(m_masterTimer, SIGNAL(timeout()),
        m_masterEdit, SLOT(clear()));
    connect(m_masterEdit, SIGNAL(textChanged(QString)),
        m_masterTimer, SLOT(start()));

    // Load previous location or center the window.
    centerOrRestoreLocation();
}
Ejemplo n.º 5
0
void MainWindow::newProject()
{
	clearUndoHistory();
	project.newProject();
	invalidateAll();
	spriteView->setCurrentIndex(spriteModel->getRootIndex());
	graphicsView->newProject(); // reset guide lines
}
Ejemplo n.º 6
0
void MODEL::loadMesh( const char* file )
{
	wfMesh * amesh = new wfMesh(file);
	amesh->normalize();
	wingedMesh * wingedM = new wingedMesh(amesh);

	//model takes care of the memory management of mesh and wingedMesh
	//should encapsulate creation in Model!!!!
	this->setMesh(wingedM);
	invalidateAll();

}
Ejemplo n.º 7
0
void MODEL::freeAll()
{
	if(d0_valid!= INVALID){
		delete d0;
	}
	if(d1_valid!= INVALID){
		delete d1;
	}
	if(id0_valid!= INVALID){
		delete id0;
	}
	if(border1_valid!= INVALID){
		delete border1;
	}
	if(border2_valid!= INVALID){
		delete border2;
	}
	if(duald1_valid != INVALID){
		delete duald1;
	}
	if(duald1_t_valid != INVALID){
		delete duald1_t;
	}
	if(star0_valid!= INVALID){
		delete star0;
	}
	if(star1_valid!= INVALID){
		delete star1;
	}
	if(star2_valid!= INVALID){
		delete star2;
	}
	if(star0_mixed_valid!= INVALID){
		delete star0_mixed;
	}
	if(star1_mixed_valid!= INVALID){
		delete star1_mixed;
	}
	if(laplace0_mixed_valid!= INVALID){
		delete laplace0_mixed;
	}
	if(coderiv1_mixed_valid!= INVALID){
		delete coderiv1_mixed;
	}
	if(laplace0_ignoreBorder_valid!= INVALID){
		delete laplace0_ignoreBorder;
	}
	if(coderiv1_ignoreBorder_valid!= INVALID){
		delete coderiv1_ignoreBorder;
	}
	invalidateAll();
}
    void updateViewportSize (bool canTriggerUpdate)
    {
        const double newScale = Desktop::getInstance().getDisplays()
                                    .getDisplayContaining (component.getScreenBounds().getCentre()).scale;

        Rectangle<int> newArea (roundToInt (component.getWidth() * newScale),
                                roundToInt (component.getHeight() * newScale));

        if (scale != newScale || viewportArea != newArea)
        {
            scale = newScale;
            viewportArea = newArea;

            if (canTriggerUpdate)
                invalidateAll();
        }
    }
Ejemplo n.º 9
0
MODEL::MODEL(void)
{
	//standard mesh to be displayed
	wfMesh * amesh = new ball(1, 20,10);
	//wfMesh * amesh = new wfMesh("../Objfiles/obstacleTiny.obj");
	amesh->normalize();
	myMesh = new wingedMesh(amesh);
	
	//myMesh = new wingedMesh(new ball(1, 10,5));
	myMesh->getWfMesh()->attach(this);
	
	d0 = d1 = border1 =border2
		=duald1 = duald1_t
		=id0 
		=star0 = star1 = star2 =
		star0_mixed = star1_mixed = 
		coderiv1_mixed = coderiv1_ignoreBorder = 
		laplace0_mixed = laplace0_ignoreBorder=
		NULL;
	invalidateAll();
}
Ejemplo n.º 10
0
 ~LabelCacheImpl()
 {
   invalidateAll();
 }