… | |
… | |
1260 | self->y += MAP_EXTEND_Y; |
1260 | self->y += MAP_EXTEND_Y; |
1261 | } |
1261 | } |
1262 | } |
1262 | } |
1263 | |
1263 | |
1264 | void |
1264 | void |
1265 | map1a_update (CFPlus::Map self, SV *data_) |
1265 | map1a_update (CFPlus::Map self, SV *data_, int extmap) |
1266 | CODE: |
1266 | CODE: |
1267 | { |
1267 | { |
1268 | uint8_t *data = (uint8_t *)SvPVbyte_nolen (data_); |
1268 | uint8_t *data = (uint8_t *)SvPVbyte_nolen (data_); |
1269 | uint8_t *data_end = (uint8_t *)SvEND (data_); |
1269 | uint8_t *data_end = (uint8_t *)SvEND (data_); |
1270 | mapcell *cell; |
1270 | mapcell *cell; |
… | |
… | |
1287 | cell->face [0] = 0; |
1287 | cell->face [0] = 0; |
1288 | cell->face [1] = 0; |
1288 | cell->face [1] = 0; |
1289 | cell->face [2] = 0; |
1289 | cell->face [2] = 0; |
1290 | } |
1290 | } |
1291 | |
1291 | |
|
|
1292 | if (flags & 8) |
|
|
1293 | { |
|
|
1294 | fprintf (stderr, "oi\n");//D |
|
|
1295 | if (extmap) |
|
|
1296 | { |
|
|
1297 | uint8_t ext, cmd; |
|
|
1298 | |
|
|
1299 | do |
|
|
1300 | { |
|
|
1301 | |
|
|
1302 | ext = *data++; |
|
|
1303 | cmd = ext & 0x7f; |
|
|
1304 | |
|
|
1305 | fprintf (stderr, "extcmd = %x\n", ext);//D |
|
|
1306 | |
|
|
1307 | if (ext < 4) |
|
|
1308 | cell->darkness = 255 - ext * 64; |
|
|
1309 | } |
|
|
1310 | while (cmd & 0x80); |
|
|
1311 | } |
|
|
1312 | else |
1292 | cell->darkness = flags & 8 ? *data++ : 255; |
1313 | cell->darkness = flags & 8 ? *data++ : 255; |
|
|
1314 | } |
1293 | |
1315 | |
1294 | //TODO: don't trust server data to be in-range(!) |
1316 | //TODO: don't trust server data to be in-range(!) |
1295 | |
1317 | |
1296 | if (flags & 4) |
1318 | if (flags & 4) |
1297 | { |
1319 | { |