Changeset 792


Ignore:
Timestamp:
Aug 1, 2011, 12:23:28 AM (12 years ago)
Author:
sam
Message:

tiler: ensure AddTile() and BlitTile() accept vec3i arguments.

Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/deushax/debugsprite.cpp

    r790 r792  
    5858    vec3i pos = (vec3i)data->pos;
    5959
    60     Scene::GetDefault()->AddTile(data->tileset, 31,
    61                                  pos.x - 16, pos.y, pos.z, 1);
    62     Scene::GetDefault()->AddTile(data->tileset, 15,
    63                                  pos.x - 16, pos.y, pos.z + 32, 1);
     60    Scene::GetDefault()->AddTile(data->tileset, 31, pos + vec3i(-16, 0, 0), 1);
     61    Scene::GetDefault()->AddTile(data->tileset, 15, pos + vec3i(-16, 0, 32), 1);
    6462}
    6563
  • trunk/monsterz/board.cpp

    r790 r792  
    254254    Entity::TickDraw(deltams);
    255255
    256     Scene::GetDefault()->AddTile(data->board, 0,
    257                                  position.x, position.y, 1, 0);
    258     Scene::GetDefault()->AddTile(data->screen, 0, 0, 0, 10, 0);
     256    Scene::GetDefault()->AddTile(data->board, 0, position, 0);
     257    Scene::GetDefault()->AddTile(data->screen, 0, vec3i(0, 0, 10), 0);
    259258
    260259    switch (data->game)
     
    582581    /* FIXME: the emitter may be destroyed after the Tiler is removed,
    583582     * because the last Tiler tick may be done just after the emitter
    584      * scheduled its sprites! */
     583     * scheduled its sprites! In theory, the emitter should reference
     584     * the tileset. */
    585585    Ticker::Unref(data->emitter);
    586586    Tiler::Deregister(data->screen);
  • trunk/monsterz/interface.cpp

    r790 r792  
    9999    if (Platform::GetMouseCount() && mouse.x >= 0 && mouse.y >= 0)
    100100    {
    101         vec2i m = mouse + vec2i(-6, 6 - 48);
    102         Scene::GetDefault()->AddTile(data->tiles, 22, m.x, m.y, 30, 0);
     101        vec3i m = vec3i(mouse) + vec3i(-6, 6 - 48, 30);
     102        Scene::GetDefault()->AddTile(data->tiles, 22, m, 0);
    103103    }
    104104}
  • trunk/monsterz/piece.cpp

    r790 r792  
    383383
    384384    if (data->state != PieceData::DEAD)
    385         Scene::GetDefault()->AddTile(data->tileset, id, x, y, z, 0);
     385        Scene::GetDefault()->AddTile(data->tileset, id, vec3i(x, y, z), 0);
    386386
    387387    if (data->state == PieceData::GRAB && Platform::GetMouseCount())
    388         Scene::GetDefault()->AddTile(data->tileset, 0, x, y, 9, 0);
     388        Scene::GetDefault()->AddTile(data->tileset, 0, vec3i(x, y, 9), 0);
    389389}
    390390
  • trunk/monsterz/thumbs.cpp

    r790 r792  
    7373    for (int n = 0; n < data->npieces; n++)
    7474    {
    75         vec2i p = vec2i(459, 372 - 27 * n);
    76         Scene::GetDefault()->AddTile(data->icons, n, p.x, p.y, 11, 0);
     75        vec3i p = vec3i(459, 372 - 27 * n, 11);
     76        Scene::GetDefault()->AddTile(data->icons, n, p, 0);
    7777    }
    7878}
  • trunk/monsterz/title.cpp

    r791 r792  
    292292    int backid = (int)data->period;
    293293    Scene::GetDefault()->AddTile(data->title, backid,
    294                                  data->ground_pos.x, data->ground_pos.y, 1, 0);
     294                    vec3i(data->ground_pos.x, data->ground_pos.y, 1), 0);
    295295
    296296    /* The stars */
     
    298298    {
    299299        Scene::GetDefault()->AddTile(data->stars, 0,
    300                                      24 + 0, 72 + 240, 2, 0);
     300                                     vec3i(24 + 0, 72 + 240, 2), 0);
    301301    }
    302302
     
    309309        int cloudid = (n % 5) * 4 + cloudoff;
    310310        Scene::GetDefault()->AddTile(data->clouds, cloudid,
    311                                      data->cloudpos[n].x,
    312                                      data->cloudpos[n].y, 2, 0);
     311                                     vec3i(data->cloudpos[n].x,
     312                                           data->cloudpos[n].y, 2), 0);
    313313        Scene::GetDefault()->AddTile(data->clouds, cloudid,
    314                                      data->cloudpos[n].x - bbox[1].x + bbox[0].x,
    315                                      data->cloudpos[n].y, 2, 0);
     314                                     vec3i(data->cloudpos[n].x - bbox[1].x
     315                                                               + bbox[0].x,
     316                                           data->cloudpos[n].y, 2), 0);
    316317    }
    317318
     
    326327        int y = data->eagle.y + 5.0f * sinf(phase);
    327328        Scene::GetDefault()->AddTile(data->eagle.tiles, eagleid,
    328                                      24 + x, 72 + y, 3, 0);
     329                                     vec3i(24 + x, 72 + y, 3), 0);
    329330    }
    330331
     
    334335    {
    335336        Scene::GetDefault()->AddTile(data->ground, 0,
    336                                      x, data->ground_pos.y, 0, 0);
     337                                     vec3i(x, data->ground_pos.y, 0), 0);
    337338    }
    338339
     
    365366    if (tiler)
    366367        Scene::GetDefault()->AddTile(tiler, id,
    367                                      data->ground_pos.x + pos.x,
    368                                      data->ground_pos.y + pos.y, 1, 0);
     368                                     vec3i(data->ground_pos.x + pos.x,
     369                                           data->ground_pos.y + pos.y, 1), 0);
    369370
    370371    /* The logo, on top of the rest. */
    371     Scene::GetDefault()->AddTile(data->logo, 0, 26, 250, 3, 0);
     372    Scene::GetDefault()->AddTile(data->logo, 0, vec3i(26, 250, 3), 0);
    372373}
    373374
  • trunk/src/emitter.cpp

    r790 r792  
    7575    for (int i = 0; i < data->nparticles; i++)
    7676        Scene::GetDefault()->AddTile(data->tileset, data->particles[i],
    77                                      data->positions[i].x,
    78                                      data->positions[i].y,
    79                                      data->positions[i].z, 0);
     77                                     data->positions[i], 0);
    8078}
    8179
  • trunk/src/font.cpp

    r790 r792  
    7979
    8080        if (ch != ' ')
    81             scene->AddTile(data->tileset, ch & 255,
    82                            pos.x, pos.y, pos.z, 0);
     81            scene->AddTile(data->tileset, ch & 255, pos, 0);
    8382
    8483        pos.x += data->size.x;
  • trunk/src/layer.cpp

    r790 r792  
    5555            if (data[j * width + i])
    5656                scene->AddTile(data[j * width + i],
    57                                x + i * 32, y + j * 32 - altitude,
    58                                altitude + z, orientation);
     57                               vec3i(x + i * 32,
     58                                     y + j * 32 - altitude,
     59                                     altitude + z),
     60                               orientation);
    5961#endif
    6062}
  • trunk/src/map.cpp

    r790 r792  
    9696                             || id < gids[n + 1])
    9797                        {
    98                             Log::Error("tilesets no longer work this way");
     98                            Log::Error("tilesets no longer work this way\n");
    9999                            //code = (data->tilesets[n] << 16) | (id - gids[n]);
    100100                            break;
  • trunk/src/scene.cpp

    r790 r792  
    3131    TileSet *tileset;
    3232    uint32_t prio;
    33     int id, x, y, z, o;
     33    vec3i pos;
     34    int id, o;
    3435};
    3536
     
    115116}
    116117
    117 void Scene::AddTile(TileSet *tileset, int id, int x, int y, int z, int o)
     118void Scene::AddTile(TileSet *tileset, int id, vec3i pos, int o)
    118119{
    119120    if ((data->ntiles % 1024) == 0)
     
    121122                                      (data->ntiles + 1024) * sizeof(Tile));
    122123    /* FIXME: this sorting only works for a 45-degree camera */
    123     data->tiles[data->ntiles].prio = -y - 2 * 32 * z + (o ? 0 : 32);
     124    data->tiles[data->ntiles].prio = -pos.y - 2 * 32 * pos.z + (o ? 0 : 32);
    124125    data->tiles[data->ntiles].tileset = tileset;
    125126    data->tiles[data->ntiles].id = id;
    126     data->tiles[data->ntiles].x = x;
    127     data->tiles[data->ntiles].y = y;
    128     data->tiles[data->ntiles].z = z;
     127    data->tiles[data->ntiles].pos = pos;
    129128    data->tiles[data->ntiles].o = o;
    130129    data->ntiles++;
     
    286285        {
    287286            data->tiles[i].tileset->BlitTile(data->tiles[j].id,
    288                             data->tiles[j].x, data->tiles[j].y,
    289                             data->tiles[j].z, data->tiles[j].o,
     287                            data->tiles[j].pos, data->tiles[j].o,
    290288                            vertex + 18 * (j - i), texture + 12 * (j - i));
    291289        }
  • trunk/src/scene.h

    r790 r792  
    3535    static void Reset();
    3636
    37     void AddTile(TileSet *tileset, int id, int x, int y, int z, int o);
     37    void AddTile(TileSet *tileset, int id, vec3i pos, int o);
    3838    void Render();
    3939
  • trunk/src/tileset.cpp

    r787 r792  
    179179}
    180180
    181 void TileSet::BlitTile(uint32_t id, int x, int y, int z, int o,
     181void TileSet::BlitTile(uint32_t id, vec3i pos, int o,
    182182                       float *vertex, float *texture)
    183183{
     
    194194        float tmp[10];
    195195
    196         *vertex++ = tmp[0] = x;
    197         *vertex++ = tmp[1] = dilate * (y + dy);
    198         *vertex++ = tmp[2] = dilate * (z + dz);
     196        *vertex++ = tmp[0] = pos.x;
     197        *vertex++ = tmp[1] = dilate * (pos.y + dy);
     198        *vertex++ = tmp[2] = dilate * (pos.z + dz);
    199199        *texture++ = tmp[3] = tx;
    200200        *texture++ = tmp[4] = ty;
    201201
    202         *vertex++ = x + dx;
    203         *vertex++ = dilate * (y + dy);
    204         *vertex++ = dilate * (z + dz);
     202        *vertex++ = pos.x + dx;
     203        *vertex++ = dilate * (pos.y + dy);
     204        *vertex++ = dilate * (pos.z + dz);
    205205        *texture++ = tx + data->tx;
    206206        *texture++ = ty;
    207207
    208         *vertex++ = tmp[5] = x + dx;
    209         *vertex++ = tmp[6] = dilate * y;
    210         *vertex++ = tmp[7] = dilate * z;
     208        *vertex++ = tmp[5] = pos.x + dx;
     209        *vertex++ = tmp[6] = dilate * pos.y;
     210        *vertex++ = tmp[7] = dilate * pos.z;
    211211        *texture++ = tmp[8] = tx + data->tx;
    212212        *texture++ = tmp[9] = ty + data->ty;
     
    224224        *texture++ = tmp[9];
    225225
    226         *vertex++ = x;
    227         *vertex++ = dilate * y;
    228         *vertex++ = dilate * z;
     226        *vertex++ = pos.x;
     227        *vertex++ = dilate * pos.y;
     228        *vertex++ = dilate * pos.z;
    229229        *texture++ = tx;
    230230        *texture++ = ty + data->ty;
  • trunk/src/tileset.h

    r787 r792  
    4545    vec2i GetSize(int tileid) const;
    4646    void Bind();
    47     void BlitTile(uint32_t id, int x, int y, int z, int o,
     47    void BlitTile(uint32_t id, vec3i pos, int o,
    4848                  float *vertex, float *texture);
    4949
Note: See TracChangeset for help on using the changeset viewer.