All pastes #828490 Raw Edit

necku

public text v1 · immutable
#828490 ·published 2007-12-22 14:53 UTC
rendered paste body
ABC_Sprite  GetSpriteFromTile(const ABC_Tile& tile, Uint16 startTile, Uint16 endTile, Uint16 time, Uint8 r, Uint8 g, Uint8 b, bool transparent) {
    file.open("liteharochdar.txt");
    
    ABC_Sprite tmpSpr;
    tmpSpr.m_Width = tile.m_tileW;
    tmpSpr.m_Height = tile.m_tileH;
    tmpSpr.m_BBox.x = 0;
    tmpSpr.m_BBox.y = 0;
    tmpSpr.m_BBox.w = tile.m_tileW;
    tmpSpr.m_BBox.h = tile.m_tileH;
    
    //tmp_tlX = temporary tile X
    //tmp_tlY = temporary tile Y
    //tpr = tiles per row
    //dh = difference in height per tile
    Uint16 tmp_tlX, tmp_tlY, tpr, dW, dH;
    
    tpr = (tile.m_width-tile.m_offsetX)/(tile.m_tileW+tile.m_spaceW);
    dW = tile.m_tileW + tile.m_spaceW;
    dH = tile.m_tileH + tile.m_spaceH;
    file << "tpr-" << tpr << endl << "dW-" << dW << endl << "dH-" << dH << endl << endl;
    
    //Calculate the startPosition
    tmp_tlY = startTile/tpr;
    tmp_tlX = startTile - tpr*tmp_tlY;
    file << "tmp_tlY-" << tmp_tlY << endl << "tmp_tlX-" << tmp_tlX << endl << "startTile-" << startTile << endl << endl;
    
    //Iterate through the chosen tiles
    for (int i = startTile; i <= endTile; i++)
    {
        ABC_Image tmpImg;
        tmpImg.m_time = time;
        SDL_Rect tmpRct;
        tmpRct.w = tile.m_tileW;
        tmpRct.h = tile.m_tileH;
        
        tmpRct.x = tmp_tlX * (tile.m_tileW+tile.m_spaceW) + tile.m_offsetX;
        tmpRct.y = tmp_tlY * (tile.m_tileH+tile.m_spaceH) + tile.m_offsetY;
        
        file << tmpRct.x << "x" << tmpRct.y << endl;
        
        //SDL_Surface* bajs;
        //SDL_BlitSurface(tile.m_surface, &tmpRct, bajs, NULL);
        //SDL_BlitSurface(bajs, NULL, tmpImg.m_surface, NULL);
        SDL_BlitSurface(tile.m_surface, &tmpRct, tmpImg.m_surface, NULL);
/*
        if (transparent)
            SDL_SetColorKey(tmpImg.m_surface, SDL_SRCCOLORKEY, SDL_MapRGB(tmpImg.m_surface->format, r, g, b));
            */
        file << "hee!" << endl;
        tmpSpr.m_ImageList.push_back(tmpImg);
        
        tmp_tlX++;
        if (tmp_tlX >= tpr) {
            tmp_tlY++;
            tmp_tlX = 0;
        }
    }
    //tmpSpr.m_ImageList.push_back(tmpImg);
    //SDL_BlitSurface(tile.m_surface, NULL, tmpImg.m_surface, NULL);
    //tmpSpr.m_ImageList.push_back(tmpImg);
    file.close();
    return tmpSpr;
}