Ejemplo n.º 1
0
SpawnModel::SpawnModel(Player* player, QObject *parent)
    : QAbstractTableModel(parent), m_player(player)
{
    connect(m_player, SIGNAL(posChanged(int16_t,int16_t,int16_t, int16_t,int16_t,int16_t,int32_t)),
            this, SLOT(updatePosition(int16_t,int16_t,int16_t, int16_t,int16_t,int16_t,int32_t)));
    connect(m_player, SIGNAL(levelChanged(uint8_t)), this, SLOT(updateLevel(uint8_t)));
}
Ejemplo n.º 2
0
//&---------------------------------------------------------------------*
//&      Method  addLineCompleted
//&---------------------------------------------------------------------*
//
//----------------------------------------------------------------------*
void Points::addLinesCompleted(const int id_lines) {
    int mult = 0;
    switch (id_lines) {
        case 1:
            mult = SCORE_MULTIPLIER_1LINE;
            break;
        case 2:
            mult = SCORE_MULTIPLIER_2LINES;
            break;
        case 3:
            mult = SCORE_MULTIPLIER_3LINES;
            break;
        case 4:
            mult = SCORE_MULTIPLIER_4LINES;
            break;
        default:
            break;
    }
    m_points += (m_level + 1) * mult;
    m_lines += id_lines;
    m_lineCountForLevel += id_lines;
    updateTopScore();
    updateTopLines();
    updateLevel();
}
Ejemplo n.º 3
0
void GenericTetris::startGame()
{
    clearBoard();
    updateScore(0);
    updateLevel(1);
    newPiece();
}
Ejemplo n.º 4
0
void HexagonGame::update(float mFrameTime)
{
    if(!hasDied)
    {
        manager.update(mFrameTime);

        updateLevelEvents(mFrameTime);

        if(timeStop <= 0)
        {
            currentTime += mFrameTime / 60.0f;
            incrementTime += mFrameTime / 60.0f;
        }
        else timeStop -= 1 * mFrameTime;

        updateIncrement();
        updateLevel(mFrameTime);
        updateRadius(mFrameTime);
        if(!getBlackAndWhite()) styleData.update(mFrameTime);
    }
    else setRotationSpeed(getRotationSpeed() / 1.001f);

    updateKeys();
    if(!getNoRotation()) updateRotation(mFrameTime);

    if(mustRestart) newGame(levelData.getId(), false);
}
Ejemplo n.º 5
0
void ScoreControl::setCurrentLevel(int nLevel)
{
    m_nCurrentLevel = nLevel;
	updateLevel();
    setTargetScore();
	
}
Ejemplo n.º 6
0
bool Creature::updateXP(){
    ++xp;
    if (xp % WINS_TO_LEVEL == 0) {
        // The creature has gained a new level!!!
        return updateLevel();
    }
    return false;
}
Ejemplo n.º 7
0
void Block::destroy()
{
	_blockLevel--;
	if( _blockLevel < 0)
		_isBlockAlive = false;
	else
		updateLevel();

}
Ejemplo n.º 8
0
void StatusList::deleteStatus( const QString& name )
{
  StatusProperty* child = status_children_.take( name );
  if( child )
  {
    delete child;
    updateLevel();
  }
}
Ejemplo n.º 9
0
bool Block::increseLevel()
{
	_blockLevel++;
	if(_blockLevel > 3)
		return false;

	updateLevel();

	return true;
}
Ejemplo n.º 10
0
void rates::packetSent(icq_packet *pPacket)
{
	if (this)
	{
		WORD wGroup = getGroupFromPacket(pPacket);

		if (wGroup)
			updateLevel(wGroup, getNextRateLevel(wGroup));
	}
}
Ejemplo n.º 11
0
void GenericTetrix::internalPieceDropped(int dropHeight)
{
    gluePiece();
    nPiecesDropped++;
    if (nPiecesDropped % 25 == 0) {
        level++;
	updateLevel(level);
    }
    score = score + 7 + dropHeight;
    removeFullLines();
    updateScore(score);
    pieceDropped(dropHeight);
}
Ejemplo n.º 12
0
void GenericTetrix::startGame(int gameType,int fillRandomLines)
{
    gameID             = gameType;
    clearBoard(fillRandomLines);
    nLinesRemoved      = 0;
    updateRemoved(nLinesRemoved);
    nClearLines        = height;
    nPiecesDropped     = 0;
    score              = 0;
    updateScore(score);
    level              = 1;
    updateLevel(level);
    newPiece();
}
Ejemplo n.º 13
0
void TB_PokemonBody::connectWithAdvanced(TB_Advanced *ptr)
{
    connect(ptr, SIGNAL(abilityChanged()), this, SLOT(updateAbility()));
    connect(ptr, SIGNAL(levelChanged()), this, SLOT(updateLevel()));
    connect(ptr, SIGNAL(imageChanged()), this, SLOT(updateImage()));
    connect(ptr, SIGNAL(genderChanged()), this, SLOT(updateGender()));
    connect(ptr, SIGNAL(genderChanged()), this, SLOT(updateImage()));
    connect(ptr, SIGNAL(statChanged()), this, SLOT(updateEVs()));
    connect(ptr, SIGNAL(pokeFormeChanged(Pokemon::uniqueId)), this, SLOT(changeForme(Pokemon::uniqueId)), Qt::QueuedConnection);
    connect(this, SIGNAL(EVChanged(int)), ptr, SLOT(updateStat(int)));
    connect(this, SIGNAL(natureChanged()), ptr, SLOT(updateStats()));
    connect(this, SIGNAL(pokeImageChanged()), ptr, SLOT(updatePokeImage()));
    connect(ptr, SIGNAL(levelChanged()), this, SIGNAL(levelChanged()));
}
Ejemplo n.º 14
0
int OptionWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QMainWindow::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: updateLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 1: changeMulti(); break;
        case 2: changeWall(); break;
        default: ;
        }
        _id -= 3;
    }
    return _id;
}
Ejemplo n.º 15
0
void HexagonGame::update(float mFT)
{
    if(!assets.pIsLocal() && Config::isEligibleForScore())
    {
        assets.playedSeconds += mFT / 60.f;
        if(assets.playedSeconds >= 60.f)
        {
            assets.playedSeconds = 0;
            Online::trySendMinutePlayed();
        }
    }

    updateFlash(mFT);
    effectTimelineManager.update(mFT);

    if(!status.hasDied)
    {
        manager.update(mFT);
        updateEvents(mFT);
        updateTimeStop(mFT);
        updateIncrement();
        if(mustChangeSides && !manager.hasEntity(HGGroup::Wall)) sideChange(getRnd(levelStatus.sidesMin, levelStatus.sidesMax + 1));
        updateLevel(mFT);
        if(Config::getBeatPulse()) updateBeatPulse(mFT);
        if(Config::getPulse()) updatePulse(mFT);
        if(!Config::getBlackAndWhite()) styleData.update(mFT, pow(difficultyMult, 0.8f));
    }
    else levelStatus.rotationSpeed *= 0.99f;

    if(Config::get3D()) update3D(mFT);
    if(!Config::getNoRotation()) updateRotation(mFT);

    overlayCamera.update(mFT);
    backgroundCamera.update(mFT);
    for(auto& c : depthCameras) c.update(mFT);

    if(status.mustRestart)
    {
        changeLevel(restartId, restartFirstTime);
        if(!assets.pIsLocal() && Config::isEligibleForScore()) {
            Online::trySendRestart();
        }
    }
    if(!status.scoreInvalid && Config::getOfficial() && fpsWatcher.isLimitReached()) invalidateScore();

    fpsWatcher.update();
}
Ejemplo n.º 16
0
 void setColor(const TPixel32 &color) const {
   PaletteController *controller =
       TTool::getApplication()->getPaletteController();
   if (m_colorAutoApplyEnabled) {
     TColorStyle *cs = m_palette->getStyle(m_styleId);
     if (0 <= m_styleParamIndex &&
         m_styleParamIndex < cs->getColorParamCount())
       cs->setColorParamValue(m_styleParamIndex, color);
     else
       cs->setMainColor(color);
     cs->invalidateIcon();
     controller->getCurrentPalette()->notifyColorStyleChanged();
     updateLevel();
   } else {
     controller->setColorSample(color);
   }
 }
Ejemplo n.º 17
0
/// insert P to the label of N; do necessary updates; may return Clash in case of data node N
bool
DlSatTester :: insertToDoEntry ( DlCompletionTree* node, const ConceptWDep& C,
								 DagTag tag, const char* reason = NULL )
{
	// we will change current Node => save it if necessary
	updateLevel ( node, C.getDep() );
	CGraph.addConceptToNode ( node, C, tag );

	setUsed(C.bp());

	if ( node->isCached() )
		return correctCachedEntry(node);

	// add new info in TODO list
	TODO.addEntry ( node, tag, C );

	if ( node->isDataNode() )	// data concept -- run data center for it
		return checkDataNode ? checkDataClash(node) : false;
	else if ( LLM.isWritable(llGTA) )	// inform about it
		logEntry ( node, C, reason );

	return false;
}
Ejemplo n.º 18
0
void BaselinePattern::update(double elapsed)
{
    player->totalElapsed += elapsed;
    
    if (isFinished() && !stage->ground->isBlinking()) {
        updateLevel();
        saveData.push_back(getFinishedStageData());
        setPattern();
    }
    
    for (int i = 0; i < stage->poppies.size(); ++i)
        for (int j = 0; j < stage->pots.size(); ++j)
            updatePlayerChoice(stage->poppies[i], stage->pots[j]);
    
    updateFeedback();
    
    updatePoppyBlinks(elapsed);
    
    stage->update(elapsed);
    stage->handlePoppyCollisions(elapsed);
    
    stage->label1->setCaption("Time: " + toStringInt(player->totalElapsed));
}
Ejemplo n.º 19
0
void StatusList::setStatus( Level level, const QString& name, const QString& text )
{
  QHash<QString, StatusProperty*>::iterator child_iter = status_children_.find( name );
  StatusProperty* child;
  if( child_iter == status_children_.end() )
  {
    child = new StatusProperty( name, text, level, this );
    status_children_.insert( name, child );
  }
  else
  {
    child = child_iter.value();
    child->setLevel( level );
    child->setValue( text );
  }
  if( level > level_ )
  {
    setLevel( level );
  }
  else if( level < level_ )
  {
    updateLevel();
  }
}
Ejemplo n.º 20
0
int main(int argc, char* argv[]) {
	unsigned int largeurNiveau = 0, hauteurNiveau = 0;
	unsigned int numLvl = 1;
	Niveau level;
	LevelError code_e;
	CoupsJoues pileDeCoups = NULL;
	Coup* coupDepile = NULL;
	PileCible pileDeCibles = NULL;

	char cheminFichierSolution[27] = {0};
	FILE* fichierSolution = NULL;

	Position positionJoueur;
	unsigned int nbPoussee = 0, nbMvt = 0;

	char continuerBoucle = 1;

	SDLInitError sdl_e;
	SDL_Surface *ecran;
	SDL_Event event;
	SDL_Surface** tableauSprites = NULL;
	
	if(argc > 1) {
		numLvl = atoi(argv[1]);
	}
	
	code_e = readLevel(FICHIER_NIVEAUX, &level, numLvl, &largeurNiveau, &hauteurNiveau, &positionJoueur, &pileDeCibles);
	if(code_e != NoError) {
		fprintf(stderr, "(%d) Erreur de lecture du fichier de niveau \"%s\".\n", code_e, FICHIER_NIVEAUX);
		libererPileCible(&pileDeCibles);
		freeNiveau(&level, hauteurNiveau);
		exit(EXIT_FAILURE);
	}

	sdl_e = initSDL(&ecran);
	if(sdl_e != InitOk) {
		fprintf(stderr, "(%d) Erreur lors de initSDL(SDL_Surface**).\n", sdl_e);
		libererPileCible(&pileDeCibles);
		freeNiveau(&level, hauteurNiveau);
		freeSDL(NULL);
		exit(EXIT_FAILURE);
	}

	tableauSprites = (SDL_Surface**)malloc(NB_SPRITE * sizeof(SDL_Surface*));
	if(tableauSprites == NULL) {
		fprintf(stderr, "Erreur d'allocation du tableau de sprites.\n");
		libererPileCible(&pileDeCibles);
		freeNiveau(&level, hauteurNiveau);
		freeSDL(NULL);
		exit(EXIT_FAILURE);
	}

	sdl_e = loadSprites(&tableauSprites);
	if(sdl_e != InitOk) {
		fprintf(stderr, "(%d) Erreur de chargement des sprites dans le tableau de sprites.\n", sdl_e);
		libererPileCible(&pileDeCibles);
		freeNiveau(&level, hauteurNiveau);
		freeSDL(&tableauSprites);
		exit(EXIT_FAILURE);
	}

	printf("Niveau %d\n", numLvl);
	afficheNiveau(&level, largeurNiveau, hauteurNiveau);

	dessineEntete(ecran);
	dessineCompteurs(ecran, nbMvt, nbPoussee);
	dessineNiveau(&level, ecran, largeurNiveau, hauteurNiveau, &tableauSprites);

	while (continuerBoucle)
	{
		while(SDL_PollEvent(&event)) {
			switch(event.type)
			{
				case SDL_QUIT:
					continuerBoucle = 0;
					break;
				case SDL_KEYDOWN:
					switch (event.key.keysym.sym)
					{
						case SDLK_ESCAPE:
							continuerBoucle = 0;
							break;
						case SDLK_UP:
							arrowKeyDownHandler(HAUT, &level, &positionJoueur, &pileDeCoups, &nbMvt, &nbPoussee);
							break;
						case SDLK_DOWN:
							arrowKeyDownHandler(BAS, &level, &positionJoueur, &pileDeCoups, &nbMvt, &nbPoussee);
							break;
						case SDLK_RIGHT:
							arrowKeyDownHandler(DROITE, &level, &positionJoueur, &pileDeCoups, &nbMvt, &nbPoussee);
							break;
						case SDLK_LEFT:
							arrowKeyDownHandler(GAUCHE, &level, &positionJoueur, &pileDeCoups, &nbMvt, &nbPoussee);
							break;
						case SDLK_r:
							libererPile(&pileDeCoups);
							code_e = updateLevel(LevelReset, FICHIER_NIVEAUX, &level, &positionJoueur, &pileDeCibles, &numLvl, &largeurNiveau, &hauteurNiveau);
							if(code_e != NoError) {
								fprintf(stderr, "(%d) Erreur lors du redemarrage du niveau.\n", code_e);
								libererPileCible(&pileDeCibles);
								freeNiveau(&level, hauteurNiveau);
								freeSDL(&tableauSprites);
								exit(EXIT_FAILURE);
							}

							nbMvt = 0;
							nbPoussee = 0;
							break;
						case SDLK_e:
							libererPile(&pileDeCoups);
							code_e = updateLevel(LevelPrevious, FICHIER_NIVEAUX, &level, &positionJoueur, &pileDeCibles, &numLvl, &largeurNiveau, &hauteurNiveau);
							if(code_e != NoError) {
								fprintf(stderr, "(%d) Erreur lors du passage au niveau precedent.\n", code_e);
								libererPileCible(&pileDeCibles);
								freeNiveau(&level, hauteurNiveau);
								freeSDL(&tableauSprites);
								exit(EXIT_FAILURE);
							}

							nbMvt = 0;
							nbPoussee = 0;
							printf("Niveau %d\n", numLvl);
							afficheNiveau(&level, largeurNiveau, hauteurNiveau);
							break;
						case SDLK_t:
							sprintf(cheminFichierSolution, "./save/level%d.sol", numLvl);
							fichierSolution = fopen(cheminFichierSolution, "r");
							if(fichierSolution != NULL) {
								fclose(fichierSolution);

								libererPile(&pileDeCoups);
								code_e = updateLevel(LevelNext, FICHIER_NIVEAUX, &level, &positionJoueur, &pileDeCibles, &numLvl, &largeurNiveau, &hauteurNiveau);
								if(code_e != NoError) {
									fprintf(stderr, "(%d) Erreur lors du passage au niveau suivant.\n", code_e);
									libererPileCible(&pileDeCibles);
									freeNiveau(&level, hauteurNiveau);
									freeSDL(&tableauSprites);
									exit(EXIT_FAILURE);
								}

								nbMvt = 0;
								nbPoussee = 0;
								printf("Niveau %d\n", numLvl);
								afficheNiveau(&level, largeurNiveau, hauteurNiveau);
							}
							break;
						case SDLK_w: /* NB: ceci est la version windows, allez savoir pourquoi SDL prend le clavier en qwerty */
							if ((event.key.keysym.mod & KMOD_LCTRL) == KMOD_LCTRL)
							{
								coupDepile = depilerCoup(&pileDeCoups);
								if(coupDepile != NULL) {
									deplacerObjetRetour(&level, *coupDepile, &nbMvt, &nbPoussee);
									calculPosition(&positionJoueur, (*coupDepile).direction, Negatif);
									free(coupDepile);
								}								
							}
							break;
						case SDLK_q: /* NB: ceci est la version windows, allez savoir pourquoi SDL prend le clavier en qwerty */
							creerFichierSauvegarde(Sauvegarde, numLvl, &pileDeCoups);
							break;
						case SDLK_a: /* NB: ceci est la version windows, allez savoir pourquoi SDL prend le clavier en qwerty */
							chargerFichierSauvegarde(numLvl, &pileDeCoups, &level, &positionJoueur, &pileDeCibles, &nbMvt, &nbPoussee);
							break;
						default: break;
					}
					
					if(toutesCiblesValidees(&pileDeCibles, &level) == CibleValidee) {
						printf("Niveau %d termine en %d mouvements et en %d poussees ! \n", numLvl, nbMvt, nbPoussee);
						creerFichierSauvegarde(Solution, numLvl, &pileDeCoups);
						libererPile(&pileDeCoups);
						code_e = updateLevel(LevelNext, FICHIER_NIVEAUX, &level, &positionJoueur, &pileDeCibles, &numLvl, &largeurNiveau, &hauteurNiveau);
						if(code_e != NoError) {
							fprintf(stderr, "(%d) Erreur lors du passage au niveau suivant.\n", code_e);
							libererPileCible(&pileDeCibles);
							freeNiveau(&level, hauteurNiveau);
							freeSDL(&tableauSprites);
							exit(EXIT_FAILURE);
						}

						nbMvt = 0;
						nbPoussee = 0;
						printf("Niveau %d\n", numLvl);
						afficheNiveau(&level, largeurNiveau, hauteurNiveau);
					}
					break;
				default: break;
			}
		}

		effacerNiveau(ecran);
		dessineEntete(ecran);
		dessineCompteurs(ecran, nbMvt, nbPoussee);
		dessineNiveau(&level, ecran, largeurNiveau, hauteurNiveau, &tableauSprites);

		SDL_Flip(ecran);
		SDL_Delay(20);
	}

	libererPile(&pileDeCoups);
	libererPileCible(&pileDeCibles);
	freeNiveau(&level, hauteurNiveau);
	freeSDL(&tableauSprites);
	return EXIT_SUCCESS;
}
Ejemplo n.º 21
0
void HexagonGame::update(FT mFT)
{
    updateText();
    updateFlash(mFT);
    effectTimelineManager.update(mFT);

    if(!status.started && (!Config::getRotateToStart() || inputImplCCW ||
                           inputImplCW || inputImplBothCWCCW))
    {
        status.started = true;
        messageText.setString("");
        assets.playSound("go.ogg");
        assets.musicPlayer.resume();
        if(Config::getOfficial()) fpsWatcher.enable();
    }

    // Naive touch controls
    for(const auto& p : window.getFingerDownPositions())
    {
        if(p.x < window.getWidth() / 2.f)
            inputImplCCW = 1;
        else
            inputImplCW = 1;
    }

    if(inputImplCW && !inputImplCCW)
        inputMovement = 1;
    else if(!inputImplCW && inputImplCCW)
        inputMovement = -1;
    else if(inputImplCW && inputImplCCW)
    {
        if(!inputImplBothCWCCW)
        {
            if(inputMovement == 1 && inputImplLastMovement == 1)
                inputMovement = -1;
            else if(inputMovement == -1 && inputImplLastMovement == -1)
                inputMovement = 1;
        }
    }
    else
        inputMovement = 0;

    if(status.started)
    {
        if(!assets.pIsLocal() && Config::isEligibleForScore())
        {
            assets.playedSeconds += ssvu::getFTToSeconds(mFT);
            if(assets.playedSeconds >= 60.f)
            {
                assets.playedSeconds = 0;
                Online::trySendMinutePlayed();
            }
        }

        if(!status.hasDied)
        {
            manager.update(mFT);
            updateEvents(mFT);
            updateTimeStop(mFT);
            updateIncrement();
            if(mustChangeSides && !manager.hasEntity(HGGroup::Wall))
                sideChange(getRndI(
                               levelStatus.sidesMin, levelStatus.sidesMax + 1));
            updateLevel(mFT);
            if(Config::getBeatPulse()) updateBeatPulse(mFT);
            if(Config::getPulse()) updatePulse(mFT);
            if(!Config::getBlackAndWhite())
                styleData.update(mFT, pow(difficultyMult, 0.8f));
        }
        else
            levelStatus.rotationSpeed *= 0.99f;

        if(Config::get3D()) update3D(mFT);
        if(!Config::getNoRotation()) updateRotation(mFT);
    }

    overlayCamera.update(mFT);
    backgroundCamera.update(mFT);

    if(status.started)
    {
        if(status.mustRestart)
        {
            fpsWatcher.disable();
            changeLevel(restartId, restartFirstTime);
            if(!assets.pIsLocal() && Config::isEligibleForScore())
            {
                Online::trySendRestart();
            }
        }
        if(!status.scoreInvalid && Config::getOfficial() &&
                fpsWatcher.isLimitReached())
            invalidateScore();

        fpsWatcher.update();
    }
}
Ejemplo n.º 22
0
void SelectLevelScene::next(){
    _curLevel++;
    _curLevel = _curLevel % 11;
    updateLevel();
}
Ejemplo n.º 23
0
void SelectLevelScene::prev(){
    _curLevel--;
    _curLevel += 11;
    _curLevel = _curLevel % 11;
    updateLevel();
}
Ejemplo n.º 24
0
void SelectLevelScene::setCurLevel(int level){
    _curLevel = level - 1;
    updateLevel();
}
Ejemplo n.º 25
0
LoadFileError chargerFichierSauvegarde(unsigned int numero, CoupsJoues* pileCoups, Niveau* n, Position* pos, PileCible* cibles, unsigned int* nbMvt, unsigned int* nbPoussee) {
	LevelError level_e = NoError;
	PileError pile_e = Ok;
	PileSaveLoadError psl_e = SaveLoadNoError;

	Coup* curseur = NULL;
	char chemin[28] = {0};
	FILE* fichierSauvegarde = NULL;
	CoupsJoues pileDeCoupsTmp = NULL;
	unsigned int tmph = 0;
	unsigned int tmpl = 0;
	unsigned int num_tmp = numero;

	if(pileCoups == NULL || n == NULL || pos == NULL || cibles == NULL || nbMvt == NULL || nbPoussee == NULL) {
		return LoadUndefinedParameter;
	}

	sprintf(chemin, "./save/level%d.save", numero);

	/* reinitialise le niveau */
	libererPile(pileCoups);
	level_e = updateLevel(LevelReset, FICHIER_NIVEAUX, n, pos, cibles, &num_tmp, &tmph, &tmpl);
	if(level_e != NoError) {
		fprintf(stderr, "(%d) Erreur lors de la reinitialisation du niveau.\n", level_e);
		return LoadError;
	}

	*nbMvt = 0;
	*nbPoussee = 0;

	/* ouvre le fichier de sauvegarde */
	fichierSauvegarde = fopen(chemin, "r");
	if(fichierSauvegarde == NULL) {
		fprintf(stderr, "Impossible d'ouvrir le fichier \"%s\".\n", chemin);
		return LoadError;
	}

	/* on charge les coups */
	psl_e = chargerPileCoups(pileCoups, fichierSauvegarde);
	if(psl_e != SaveLoadNoError) {
		fprintf(stderr, "(%d) Erreur lors du chargement de la pile de coups.\n", psl_e);
		return LoadError;
	}

	/* on joue les coups */
	curseur = *pileCoups;
	while(curseur != NULL) {
		deplacerObjet(n, *curseur, nbMvt, nbPoussee);
		calculPosition(pos, curseur->direction, Positif);
		curseur = curseur->next;
	}
	fclose(fichierSauvegarde);

	/* nous avons stocke les coups dans une pile, il faut donc l'inverser pour empiler les prochains coups au bon endroit */
	pile_e = inverserPileCoups(pileCoups, &pileDeCoupsTmp);
	if(pile_e != Ok) {
		fprintf(stderr, "(%d) Erreur lors de l'inversion de la pile de coups.\n", pile_e);
		return LoadError;
	}

	libererPile(pileCoups);
	*pileCoups = pileDeCoupsTmp;

	return LoadOk;
}
Ejemplo n.º 26
0
void OpenGlTexture::addLevel(uint32 level, const Graphics::Surface *surface, const byte *palette) {
	assert(level < _levelCount);

	updateLevel(level, surface, palette);
}
Ejemplo n.º 27
0
void WorldManager::doWork() {
	updateScore();
	updateLevel();
	updateObjects();
}
Ejemplo n.º 28
0
LaneSettings::LaneSettings(ProjectSettings *projectSettings, SettingsElement *parentSettingsElement, Lane *lane)
    : SettingsElement(projectSettings, parentSettingsElement, lane)
    , ui(new Ui::LaneSettings)
    , lane_(lane)
    , init_(false)
    , roadSystemItemPolyGraph_(NULL)
    , insertWidthSectionHandle_(NULL)
    , lswItem_(NULL)
{
    ui->setupUi(this);

	activateWidthGroupBox(false);
	activateInsertGroupBox(false);
	connect(ui->insertPushButton, SIGNAL(clicked(bool)), this, SLOT(activateInsertGroupBox(bool)));
	connect(ui->editPushButton, SIGNAL(clicked(bool)), this, SLOT(activateWidthGroupBox(bool)));

    // List //
    //
    QStringList typeNames;
    typeNames << Lane::parseLaneTypeBack(Lane::LT_NONE)
              << Lane::parseLaneTypeBack(Lane::LT_DRIVING)
              << Lane::parseLaneTypeBack(Lane::LT_STOP)
              << Lane::parseLaneTypeBack(Lane::LT_SHOULDER)
              << Lane::parseLaneTypeBack(Lane::LT_BIKING)
              << Lane::parseLaneTypeBack(Lane::LT_SIDEWALK)
              << Lane::parseLaneTypeBack(Lane::LT_BORDER)
              << Lane::parseLaneTypeBack(Lane::LT_RESTRICTED)
              << Lane::parseLaneTypeBack(Lane::LT_PARKING)
              << Lane::parseLaneTypeBack(Lane::LT_MWYENTRY)
              << Lane::parseLaneTypeBack(Lane::LT_MWYEXIT)
              << Lane::parseLaneTypeBack(Lane::LT_SPECIAL1)
              << Lane::parseLaneTypeBack(Lane::LT_SPECIAL2)
              << Lane::parseLaneTypeBack(Lane::LT_SPECIAL3);
    ui->typeBox->addItems(typeNames);

    /*heightGraph_ = new ProfileGraph(projectSettings->getProjectWidget(), projectSettings->getProjectData());
	heightGraph_->setParent(ui->widthGroup);
	ui->horizontalLayout_3->insertWidget(0,heightGraph_);
	//heightGraph_->getView()->setDragMode(QGraphicsView::ScrollHandDrag);
	//QGraphicsScene* pScene = new NoDeselectScene(this); 
    //heightGraph_->getView()->setScene(pScene);
	heightGraph_->getScene()->doDeselect(false);// we don't want to deselect ourselves if we click on the background, otherwise we delete ourselves--> chrash and it would not be practical anyway
	*/

    heightGraph_ = projectSettings->getProjectWidget()->getHeightGraph();

    laneEditor_ = dynamic_cast<LaneEditor *>(projectSettings->getProjectWidget()->getProjectEditor());
    if (!laneEditor_)
    {
        return; // another editor is active
    }

    roadSystemItemPolyGraph_ = new LaneWidthRoadSystemItem(heightGraph_, projectSettings->getProjectData()->getRoadSystem());
    heightGraph_->getScene()->addItem(roadSystemItemPolyGraph_);

    // Section Handle //
    //
    //insertWidthSectionHandle_ = new SectionHandle(roadSystemItemPolyGraph_);
    //insertWidthSectionHandle_->hide();
    roadSystemItemPolyGraph_->setSettings(this);
    roadSystemItemPolyGraph_->setAcceptHoverEvents(true);
    // Activate Road in ProfileGraph //
    //
    lswItem_ = new LaneSectionWidthItem(roadSystemItemPolyGraph_, lane_);
    //selectedElevationRoadItems_.insert(road, roadItem);

    // Fit View //
    //
    QRectF boundingBox = lswItem_->boundingRect();
    if (boundingBox.width() < 15.0)
    {
        boundingBox.setWidth(15.0);
    }
    if (boundingBox.height() < 10.0)
    {
        boundingBox.setHeight(10.0);
    }

    heightGraph_->getView()->fitInView(boundingBox);
    heightGraph_->getView()->zoomOut(Qt::Horizontal | Qt::Vertical);

    //ui->horizontalLayout_3->insertWidget(0,heightGraph_);
    //heightGraph_->show();
    // Initial Values //
    //
    updateId();
    updateType();
    updateLevel();
    updatePredecessor();
    updateSuccessor();
    updateWidth();

    // Done //
    //
    init_ = true;
}
Ejemplo n.º 29
0
///////////////////////////////////////////
// Dispatches Zone data packets based on the opCode
void EQPacket::dispatchZoneData(const uint8_t *data, size_t len, 
				uint8_t dir, uint16_t opCode)
{
#ifdef DEBUG_PACKET
    debug ("dispatchZoneData()");
#endif /* DEBUG_PACKET */

    QString  tempStr;

    bool unk = true;

    switch (opCode)
      {
      case OP_ClientUpdate: // old PlayerPosCode:
        {
#ifdef PACKET_PAYLOAD_SIZE_DIAG
	  if ((len != sizeof(playerSpawnPosStruct)) &&
	      (len != sizeof(playerSelfPosStruct)))
	  {
	    fprintf(stderr, "WARNING: OP_ClientUpdate (%04x) (dataLen: %d != sizeof(playerSpawnPosStruct):%d or sizeof(playerSpawnSelfStruct):%d)\n",
		    OP_ClientUpdate, len, 
		    sizeof(playerSpawnPosStruct), sizeof(playerSelfPosStruct));
	    unk = true;
	  }
	  else
	    unk = false;
#else
	  unk = false;
#endif
	  
	  if (len == sizeof(playerSpawnPosStruct))
	    emit playerUpdate((const playerSpawnPosStruct*)data, len, dir);
	  else if (len == sizeof(playerSelfPosStruct))
	    emit playerUpdate((const playerSelfPosStruct*)data, len, dir);
	  else
	    unk = true;
	  
	  break;
        }

      case OP_MobUpdate: // old MobUpdateCode:
        {
	  unk = ! ValidatePayload(OP_MobUpdate, spawnPositionUpdate);
	  
	  emit updateSpawns((const spawnPositionUpdate *)data, len, dir);
	  
	  break;
        }
	
      case OP_WearChange: // old SpawnUpdateCode:
        {
	  unk = ! ValidatePayload(OP_WearChange, SpawnUpdateStruct);
	  SpawnUpdateStruct *su = (SpawnUpdateStruct*)data;
//	    printf("SpawnUpdateCode(id=%d, sub=%d, arg1=%d, arg2=%d)\n", 
//		   su->spawnId, su->subcommand, 
//		   su->arg1, su->arg2);
	    /* Belith - I believe this is depreciated no? Doesn't work anyway ;) */
	  switch(su->subcommand) {
	  case 17:
	    emit updateSpawnMaxHP(su, len, dir);
	    break;
	  }
	  
	  break;
	  emit updateSpawnInfo(su, len, dir);
        }

      case OP_SpawnAppearance: // old SpawnAppearanceCode:
        {
	  unk = false;
	  
	  emit spawnAppearance((const spawnAppearanceStruct*)data, len, dir);
	  break;
        }
	
      case OP_CommonMessage: // old ChannelMessageCode:
	{
	  unk = false;
	  
	  emit channelMessage((const channelMessageStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_FormattedMessage: // old FormattedMessageCode:
	{
	  unk = false;
	  
	  emit formattedMessage((const formattedMessageStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_SimpleMessage: // old SimpleMessageCode:
	{
	  unk = false;

	  emit simpleMessage((const simpleMessageStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_SpecialMesg:
	{
	  unk = false;
	  
	  emit specialMessage((const specialMessageStruct*)data, len, dir);

	  break;
	}
	
      case OP_GuildMOTD:
	{
	  unk = false;
	  
	  emit guildMOTD((const guildMOTDStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_Death: // old NewCorpseCode:
	{
	  unk = ! ValidatePayload(OP_Death, newCorpseStruct);

	  emit killSpawn((const newCorpseStruct*) data, len, dir);
	  
	  break;
	} /* end CorpseCode */
	
      case OP_DeleteSpawn: // old DeleteSpawnCode:
	{
	  unk = ! ValidatePayload(OP_DeleteSpawn, deleteSpawnStruct);
	  
	  emit deleteSpawn((const deleteSpawnStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_ItemLinkResponse: // old ItemInfoCode:
	{
	  unk = false;
	  
	  if (dir == DIR_SERVER)
	    emit itemInfo((const itemInfoStruct*)data, len, dir);
	  else
	    emit itemInfoReq((const itemInfoReqStruct*)data, len, dir);
	}
	
      case OP_ItemPacket: // old ItemCode:
	{
	  unk = false;
	  
	  if (dir == DIR_SERVER)
	    emit item((const itemPacketStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_ItemPlayerPacket:
	{
	  unk = false;
	  
	  if (dir == DIR_SERVER)
	    emit playerItem((const char*)data, len, dir);
	  
	  break;
	}

      case OP_NewSpawn: // old NewSpawnCode:
	{
	  unk = ! ValidatePayload(OP_NewSpawn, newSpawnStruct);
	  
	  emit newSpawn((const newSpawnStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_ItemTextFile: // old BookTextCode:
	{
	  unk = false;
	  
	  printf("BOOK: '%s'\n", ((const bookTextStruct *)data)->text);
	  emit bookText((const bookTextStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_MoneyOnCorpse: // old MoneyOnCorpseCode:
	{
	  unk = ! ValidatePayload(OP_MoneyOnCorpse, moneyOnCorpseStruct);
	  
	  emit moneyOnCorpse((const moneyOnCorpseStruct*)data, len, dir);
	  
	  break;
	} /* end MoneyOnCorpseCode */
	
      case OP_RandomReply: // old RandomCode:
        {
	  unk = ! ValidatePayload(OP_RandomReply, randomStruct);
	  
	  emit random((const randomStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_RandomReq: // RandomReqCode:
        {
	  unk = ! ValidatePayload(OP_RandomReq, randomReqStruct);
	  
	  emit random((const randomReqStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_Emote: // old EmoteEmoteTextCode:
        {
	  unk = false;
	  
	  emit emoteText((const emoteTextStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_CorpseLocResponse: // old CorpseLocCode:
        {
	  unk = ! ValidatePayload(OP_CorpseLocResponse, corpseLocStruct);
	  
	  emit corpseLoc((const corpseLocStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_InspectAnswer: // old InspectDataCode:
        {
	  unk = ! ValidatePayload(OP_InspectAnswer, inspectDataStruct);
	  
	  emit inspectData((const inspectDataStruct *)data, len, dir);
	  
	  break;
        }
	
      case OP_HPUpdate: // old NpcHpUpdateCode:
	{
	  unk = ! ValidatePayload(OP_HPUpdate, hpNpcUpdateStruct);
	  
	  emit updateNpcHP((const hpNpcUpdateStruct*)data, len, dir);
	  
	  break;
	}
	
      case SPMesgCode:
        {
	  unk = false;
	  
	  emit spMessage((const spMesgStruct *)data, len, dir);
	  
	  break;
        }
	
      case OP_MemorizeSpell: // old MemSpellCode:
        {
	  unk = ! ValidatePayload(OP_MemorizeSpell, memSpellStruct);
	  
	  emit handleSpell((const memSpellStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_BeginCast: // old BeginCastCode
        {
	  unk = ! ValidatePayload(OP_BeginCast, beginCastStruct);
	  
	  emit beginCast((const beginCastStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_CastSpell: // old StartCastCode:
        {
	  unk = ! ValidatePayload(OP_CastSpell, startCastStruct);
	  
	  emit startCast((const startCastStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_BuffFadeMsg: // old SpellFadeCode:
	{
	  unk = false;
	  
	  emit spellFaded((const spellFadedStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_ExpUpdate: // old ExpUpdateCode:
        {
	  unk = ! ValidatePayload(OP_ExpUpdate, expUpdateStruct);
	  
	  emit updateExp((const expUpdateStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_LevelUpdate: // old LevelUpUpdateCode:
        {
	  unk = ! ValidatePayload(OP_LevelUpdate, levelUpUpdateStruct);
	  
	  emit updateLevel((const levelUpUpdateStruct *)data, len, dir);
	  
	  break;
        }
	
      case OP_SkillUpdate: // old SkillIncCode
        {
	  unk = ! ValidatePayload(OP_SkillUpdate, skillIncStruct);
	  
	  emit increaseSkill((const skillIncStruct *)data, len, dir);
	  
	  break;
        }
	
      case OP_MoveDoor: // old DoorOpenCode:
        {
	  unk = false;
	  
	  emit doorOpen(data, len, dir);
	  
	  break;
        }
	
      case OP_Illusion: // old IllusionCode:
        {
	  unk = false;
	  
	  emit illusion(data, len, dir);
	  
	  break;
        }
	
      case OP_ZoneChange: // old ZoneChangeCode:
        {
	  unk = ! ValidatePayload(OP_ZoneChange, zoneChangeStruct);
	  
	  // in the process of zoning, server hasn't switched yet.
	  
	  emit zoneChange((const zoneChangeStruct*)data, len, dir);
	  break;
        }
	
      case OP_ZoneEntry: // old ZoneEntryCode:
        {
	  // We're only interested in the server version
	  
	  if (dir == DIR_CLIENT)
	  {
	    unk = ! ValidatePayload(OP_ZoneEntry, ClientZoneEntryStruct);
	    emit zoneEntry((const ClientZoneEntryStruct*)data, len, dir);
	    break;
	  }
	  
	  unk = ! ValidatePayload(OP_ZoneEntry, ServerZoneEntryStruct);
	  
	  emit zoneEntry((const ServerZoneEntryStruct*)data, len, dir);
	  
	  break;
        } /* end ZoneEntryCode */
	
      case OP_NewZone: // old - NewZoneCode:
        {
	  unk = ! ValidatePayload(OP_NewZone, newZoneStruct);
	  
	  emit zoneNew((const newZoneStruct*)data, len, dir);
	  
	  if (m_vPacket)
	    printf("New Zone at byte: %ld\n", m_vPacket->FilePos());
	  
	  break;
        }
	
      case OP_PlayerProfile:	// Character Profile server to client - old CharProfileCode
	{
	  unk = false;
	  
	  ValidatePayload(OP_PlayerProfile, charProfileStruct);
	  
	  emit backfillPlayer((const charProfileStruct*)data, len, DIR_SERVER);
	  
	  break;
	}
	
      case OP_ZoneSpawns: // ZoneSpawnsCode:
	{
	  unk = false; 
	  
	  emit zoneSpawns((const zoneSpawnsStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_TimeOfDay: // old TimeOfDayCode:
	{
	  unk = ! ValidatePayload(OP_TimeOfDay, timeOfDayStruct);
	  
	  emit timeOfDay((const timeOfDayStruct*)data, len, dir);
	  
	  break;
	}
	
      case WearChangeCode:
        {
	  unk = ! ValidatePayload(WearChangeCode, wearChangeStruct);
	  
	  emit spawnWearingUpdate ((const wearChangeStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_Action:
	{
	  unk = ! ValidatePayload(OP_Action, actionStruct);
	  
	  emit action((const actionStruct*)data, len, dir);
	  
	  break;
	}
	
      case OP_CastBuff: // old ActionCode:
        {
	  unk = false;
	  
	  emit action2Message ((const action2Struct *)data, len, dir);
	  
	  break;
        }
	
      case OP_Stamina: /// old StaminaCode:
        {
	  unk = ! ValidatePayload(OP_Stamina, staminaStruct);
	  
	  emit updateStamina((const staminaStruct *)data, len, dir);
	  
	  break;
        }
	
      case OP_GroundSpawn: // old MakeDropCode:
        {
#ifdef PACKET_PAYLOAD_SIZE_DIAG
	  if ((len != sizeof(makeDropStruct)) &&
	      (len != 0))
	    {
	      fprintf(stderr, "WARNING: OP_GroundSpawn (%04x) (dataLen: %d != sizeof(makeDropStruct):%d or 0)\n",
		      OP_GroundSpawn, len, 
		      sizeof(makeDropStruct));
	      unk = true;
	    }
	  else
	    unk = false;
#else
	  unk = false;
#endif
	  
	  emit newGroundItem((const makeDropStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_ClickObject: // Old RemDropCode:
        {
	  unk = ! ValidatePayload(OP_ClickObject, remDropStruct);
	  
	  emit removeGroundItem((const remDropStruct *)data, len, dir);
	  
	  break;
        }
	
      case OP_ShopRequest: // old OpenVendorCode:
        {
	  unk = false;
	  
	  emit openVendor(data, len, dir);
	  
	  break;
        }
	
      case OP_ShopEnd: // old CloseVendorCode:
        {
	  unk = false;
	  
	  emit closeVendor(data, len, dir);
	  
	  break;
        }
	
      case OP_GMTraining: // old OpenGMCode:
        {
	  unk = false;
	  
	  emit openGM(data, len, dir);
	  
	  break;
        }
	
      case OP_GMEndTrainingResponse: // old CloseGMCode:
        {
	  unk = false;
	  
	  emit closeGM(data, len, dir);
	  
	  break;
        }
	
      case OP_Consider: // old ConsiderCode:
        {
	  unk = false;
	  
	  ValidatePayload(OP_Consider, considerStruct);
	  
	  emit consMessage((const considerStruct*)data, len, dir);
	  
	  break;
        }
	
      case OP_TargetMouse: // old ClientTargetCode:
        {
	  unk = ! ValidatePayload(OP_TargetMouse, clientTargetStruct);
	  
	  emit clientTarget((const clientTargetStruct*) data, len, dir);
	  
	  break;
        }
	
      case OP_SpawnDoor: // old DoorSpawnsCode:
        {
	  unk = false;
	  
#ifdef PACKET_PAYLOAD_SIZE_DIAG
	  // verify size
	  
	  if (len % sizeof(doorStruct) != 0)
          {
	    printf("WARNING: OP_SpawnDoor (%.04x) (dataLen:%d "
		   "%% sizeof(doorStruct):%d) != 0!\n", 
		   OP_SpawnDoor, len, sizeof(doorStruct));
	    
	    unk = true;
	    break;
            }
#endif
	  int nDoors = len / sizeof(doorStruct);
	  const DoorSpawnsStruct *doorsStruct = (const DoorSpawnsStruct *)data;
	  for (int i = 0; i < nDoors; i++) {
	    emit newDoorSpawn(&doorsStruct->doors[i], len, dir);
	  }
	  
	  emit newDoorSpawns(doorsStruct, len, dir);
	  
	  break;
        }

      case OP_Buff: // old BuffDropCode: 
	{
	  unk = ! ValidatePayload(OP_Buff, buffStruct);
	  
	  emit buff((const buffStruct*)data, len, dir);
	  
	  // this is the server 'buff fading' AND the client 'cancel buff'
	  break;
	}
	
      case OP_Logout: // no contents
	{
	  unk = false;
	  
	  emit logOut(data, len, dir);
	  
	  break;
	}
	
      case OP_SendZonePoints:
	{
	  unk = false;
#ifdef PACKET_PAYLOAD_SIZE_DIAG
	  const zonePointsStruct* zp = (const zonePointsStruct*)data;
	  // verify size
	  if (((len - sizeof(zp->count) - sizeof(zp->unknown0xxx)) 
	       % sizeof(zonePointStruct)) != 0)
	  {
	    fprintf(stderr, "WARNING: OP_SendZonePoints (%04x) (dataLen: %d %% sizeof(zonePointStruct):%d) != 0!\n",
		    OP_SendZonePoints, len, sizeof(zonePointStruct));
	    unk = true;
	    break;
	  }
#endif

	  emit zonePoints((const zonePointsStruct*)data, len, dir);

	  break;
	}
	
      case OP_GuildMemberList: // old GuildMemberListCode
	{
	  unk = false;
	  break;
	}
	
      case OP_GuildMemberUpdate: // old GuildMemberUpdateCode:
	{
	  unk = false;
	  break;
	}
	
      case OP_SetRunMode: // old cRunToggleCode:
	{
	  //unk = ! ValidatePayload(cRunToggleCode, cRunToggleStruct);
	  //emit cRunToggle((const cRunToggleStruct*)data, len, dir);
	  unk = false;
	  break;
	}
	
      case OP_Jump: // old cJumpCode:
	{
	  //no data
	  unk = false;
	  break;
	}
	
      case OP_Camp: // old cStartCampingCode:
	{
	  //no data
	  unk = false;
	  break;
	}
	
      case OP_SenseHeading: // old cSenseHeadingCode:
	{
	  //no data
	  unk = false;
	  break;
	}
	
      case OP_Forage: // old ForageCode:
	{
	  //no data
	  unk = false;
	  break;
	}

#if 0 // ZBTEMP	: If we don't bother setting unk, don't bother processing
      case OP_ConsiderCorpse: //unknown contents // old cConCorpseCode:  
	{
	  //unk = ! ValidatePayload(cConCorpseCode, cConCorpseStruct);
	  //emit cConCorpse((const cConCorpseStruct*)data, len, dir);
	  break;
	}
	
      case OP_LootRequest:  //unknown contents - old cLootCorpseCode
	{
	  //unk = ! ValidatePayload(cLootCorpseCode, cLootCorpseStruct);
	  //emit cLootCorpse((const cLootCorpseStruct*)data, len, dir);
	  break;
	}
	
      case OP_EndLootRequest:  //unknown contents - old cDoneLootingCode
	{
	  //unk = ! ValidatePayload(cDoneLootingCode, cDoneLootingStruct);
	  //emit cDoneLooting((const cDoneLootingStruct*)data, len, dir);
	  break;
	}
	
      case OP_LootComplete:  //unknown contents - old sDoneLootingCode
	{
	  //unk = ! ValidatePayload(sDoneLootingCode, sDoneLootingStruct);
	  //emit sDoneLooting((const sDoneLootingStruct*)data, len, dir);
	  break;
	}
	
      case OP_WhoAllRequest:  //unknown contents - old WhoAllReqCode
	{
	  //unk = ! ValidatePayload(cWhoAllCode, cWhoAllStruct);
	  //emit cWhoAll((const cWhoAllStruct*)data, len, dir);
	  break;
	}
	
      case OP_WhoAllResponse: // old sWhoAllOutputCode: unknown contents
	{
	  //unk = ! ValidatePayload(sWhoAllOutputCode, sWhoAllOutputStruct);
	  //emit sWhoAllOutput((const sWhoAllOutputStruct*)data, len, dir);
	  break;
	}
      
      case OP_ShopPlayerBuy:  //unknown contents - old BuyItemCode
	{
	  //unk = ! ValidatePayload(xBuyItemCode, xBuyItemStruct);
	  //emit xBuyItem((const xBuyItemStruct*)data, len, dir);
	  //both the client command and the server acknowledgement when buying
	  break;
	}
#endif // ZBTEMP

#if 0 // ZBTEMP: OPCode Graveyard
      case CastOnCode:
        {
	  unk = false;
	  
	  emit castOn((castOnStruct*)data, len, dir);
	  
	  break;
        }
	
      case ManaDecrementCode:
        {
	  unk = ! ValidatePayload(ManaDecrementCode, manaDecrementStruct);
	  
	  emit manaChange((struct manaDecrementStruct *)data, len, dir);
	  
	  break;
        }
	
      case BadCastCode:
        {
	  unk = false; //! ValidatePayload(BadCastCode, badCastStruct);
	  
	  emit interruptSpellCast((const badCastStruct*)data, len, dir);
	  
	  break;
        }
	
      case SysMsgCode:
        {
	  unk = false;
	  
	  emit systemMessage((const sysMsgStruct*)data, len, dir);
	  
	  break;
        }
	
      case AltExpUpdateCode:
        {
	  unk = ! ValidatePayload(AltExpUpdateCode, altExpUpdateStruct);
	  
	  emit updateAltExp((const altExpUpdateStruct*)data, len, dir);
	  
	  break;
        }
	
      case Attack2Code:
        {
	  unk = false;
	  
	  emit attack2Hand1 ((const attack2Struct *)data, len, dir);
	  
	  break;
        }
	
      case NewGuildInZoneCode:
        {
	  unk = false;
	  
	  break;
        }
	
      case MoneyUpdateCode:
        {  
	  unk = false;
	  
	  emit moneyUpdate((const moneyUpdateStruct*)data, len, dir);
	  
	  break;
        }
	
      case MoneyThingCode:
        {
            unk = false;
	    
	    emit moneyThing((const moneyThingStruct*)data, len, dir);
	    
            break;
        }
	
      case BindWoundCode:
        {
	  unk = false;
	  
	  emit bindWound((bindWoundStruct*)data, len, dir);
	  
	  break;
        }
	
      case GroupInfoCode:
        {
	  // Too much still unknown.
	  
	  unk = ! ValidatePayload(GroupInfoCode, groupMemberStruct);
	  
	  emit groupInfo((const groupMemberStruct*)data, len, dir);
	  
	  break;
        }
	
      case GroupInviteCode:
        {
	  unk = ! ValidatePayload(GroupInviteCode, groupInviteStruct);
	  
	  emit groupInvite((const groupInviteStruct*)data, len, dir);
	  
	  break;
        }
	
      case GroupDeclineCode:
        {
	  unk = ! ValidatePayload(GroupDeclineCode, groupDeclineStruct);
	  
	  emit groupDecline((const groupDeclineStruct*)data, len, dir);
	  
	  break;
        }
	
      case GroupAcceptCode:
        {
	  unk = ! ValidatePayload(GroupAcceptCode, groupAcceptStruct);
	  
	  emit groupAccept((const groupAcceptStruct*)data, len, dir);
	  
	  break;
        }
	
      case GroupDeleteCode:
        {
	  unk = ! ValidatePayload(GroupDeleteCode, groupDeleteStruct);
	  
	  emit groupDelete((const groupDeleteStruct*)data, len, dir);
	  
	  break;
        }
	
      case CharUpdateCode:
        {
	  break;
        }
	
      case cChatFiltersCode:
	{
	  //unk = ! ValidatePayload(cChatFiltersCode, cChatFiltersStruct);
	  //emit cChatFilters((const cChatFiltersStruct*)data, len, dir);
	  unk = false;
	  break;
	}
	
      case cOpenSpellBookCode:
	{
	  //unk = ! ValidatePayload(cOpenSpellBookCode, cOpenSpellBookStruct);
	  //emit cOpenSpellBook((const cOpenSpellBookStruct*)data, len, dir);
	  unk = false;
	  break;
	}
	
      case OP_SwapSpell: // old TradeSpellBookSlotsCode:
	{
	  unk = ! ValidatePayload(OP_SwapSpell, tradeSpellBookSlotsStruct);
	  emit tradeSpellBookSlots((const tradeSpellBookSlotsStruct*)data, len, dir);
	  break;
	}
	
      case sSpellFizzleRegainCode:  //unknown contents, also comes when you Forage
	{
	  //unk = ! ValidatePayload(sSpellFizzleRegainCode, sSpellFizzleRegainStruct);
	  //emit sSpellFizzleRegain((const sSpellFizzleRegainStruct*)data, len, dir);
	  break;
	}
	
      case sSpellInterruptedCode:  //unknown contents
	{
	  //unk = ! ValidatePayload(sSpellInterruptedCode, sSpellInterruptedStruct);
	  //emit sSpellInterrupted((const sSpellInterruptedStruct*)data, len, dir);
	  break;
	}
	
      case cHideCode:
	{
	  //no data
	  unk = false;
	  break;
	}
	
      case cSneakCode:
	{
	  //no data
	  unk = false;
	  break;
	}
	
      case cTrackCode:
	{
	  //no data
	  unk = false;
	  break;
	}
#endif // ZBTEMP // Currently dead opcodes
	
      default:
        {
        }
      } /* end switch(opCode) */

    emit decodedZonePacket(data, len, dir, opCode, unk);
}
Ejemplo n.º 30
0
void OpenGlTexture::update(const Graphics::Surface *surface, const byte *palette) {
	bind();
	updateLevel(0, surface, palette);
}