Changeset 133


Ignore:
Timestamp:
Aug 17, 2010, 1:01:16 AM (10 years ago)
Author:
sam
Message:

Fix z-sorting of tiles. For now.

Location:
trunk/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/debugsprite.cpp

    r132 r133  
    5353    Asset::TickRender(delta_time);
    5454
    55     data->game->GetScene()->AddTile((data->tiler << 16) | 15, 300, 200, 200);
    56     data->game->GetScene()->AddTile((data->tiler << 16) | 31, 300, 232, 200);
     55    data->game->GetScene()->AddTile((data->tiler << 16) | 15, 300, 200, 32, 1);
     56    data->game->GetScene()->AddTile((data->tiler << 16) | 31, 300, 232, 0, 1);
    5757}
    5858
  • trunk/src/layer.cpp

    r100 r133  
    1212#include "layer.h"
    1313
    14 Layer::Layer(int w, int h, int z, uint32_t *in_data)
     14Layer::Layer(int w, int h, int z, int o, uint32_t *in_data)
    1515{
    1616    width = w;
    1717    height = h;
    1818    altitude = z;
     19    orientation = o;
    1920    data = in_data;
    2021
     
    4041        for (int i = 0; i < width; i++)
    4142            if (data[j * width + i])
    42                 scene->AddTile(data[j * width + i],
    43                                i * 32 - x, j * 32 - y, altitude + z);
     43                scene->AddTile(data[j * width + i], i * 32 - x, j * 32 - y,
     44                               altitude + z, orientation);
    4445}
    4546
  • trunk/src/layer.h

    r100 r133  
    2020{
    2121public:
    22     Layer(int w, int h, int z, uint32_t *data);
     22    Layer(int w, int h, int z, int o, uint32_t *data);
    2323    ~Layer();
    2424
     
    2828
    2929private:
    30     int width, height, altitude;
     30    int width, height, altitude, orientation;
    3131    uint32_t *data;
    3232};
  • trunk/src/map.cpp

    r126 r133  
    104104            if (ntiles == data->width * data->height)
    105105            {
    106                 data->layers[data->nlayers] = new Layer(data->width,
    107                                                    data->height, level, tiles);
     106                Layer *l = new Layer(data->width, data->height,
     107                                     level, orientation, tiles);
     108                data->layers[data->nlayers] = l;
    108109                data->nlayers++;
    109110                tiles = NULL;
  • trunk/src/scene.cpp

    r100 r133  
    3333        Tile const *t2 = (Tile const *)p2;
    3434
    35         return t1->prio - t2->prio;
     35        return t2->prio - t1->prio;
    3636    }
    3737
     
    5656}
    5757
    58 void Scene::AddTile(uint32_t code, int x, int y, int z)
     58void Scene::AddTile(uint32_t code, int x, int y, int z, int o)
    5959{
    6060    if ((data->ntiles % 1024) == 0)
    6161        data->tiles = (Tile *)realloc(data->tiles,
    6262                                      (data->ntiles + 1024) * sizeof(Tile));
    63     data->tiles[data->ntiles].prio = 0;
     63    data->tiles[data->ntiles].prio = y - 2 * 32 * z + (o ? 0 : 32);
    6464    data->tiles[data->ntiles].code = code;
    6565    data->tiles[data->ntiles].x = x;
  • trunk/src/scene.h

    r100 r133  
    2222    ~Scene();
    2323
    24     void AddTile(uint32_t code, int x, int y, int z);
     24    void AddTile(uint32_t code, int x, int y, int z, int o);
    2525    void Render();
    2626
Note: See TracChangeset for help on using the changeset viewer.