67 |
private: |
private: |
68 |
// Private methods |
// Private methods |
69 |
void set_item (const Level &level, int x, int y); |
void set_item (const Level &level, int x, int y); |
70 |
|
void set_stone (const Level &level, int x, int y); |
71 |
|
|
72 |
|
|
73 |
void load_floor (const Level &level); |
void load_floor (const Level &level); |
305 |
"st-oxyd", // 0x0f |
"st-oxyd", // 0x0f |
306 |
"st-oxyd", // 0x10 |
"st-oxyd", // 0x10 |
307 |
"st-fakeoxyd", // 0x11 |
"st-fakeoxyd", // 0x11 |
308 |
0, // 0x12 |
"st-bluegray", // 0x12 |
309 |
0, // 0x13 |
0, // 0x13 |
310 |
0, // 0x14 |
0, // 0x14 |
311 |
"st-rock5", // 0x15 |
"st-rock5", // 0x15 |
516 |
} |
} |
517 |
|
|
518 |
void |
void |
519 |
|
LevelPack_Oxyd::set_stone (const Level &level, int x, int y) |
520 |
|
{ |
521 |
|
using namespace world; |
522 |
|
|
523 |
|
Stone *st = 0; |
524 |
|
const Grid &grid = level.getGrid (GridType_Pieces); |
525 |
|
int type = grid.get(x,y); |
526 |
|
|
527 |
|
switch( type) { |
528 |
|
case 0x00: break; // ignore |
529 |
|
case 0x51: st = MakeStone("st-puzzle"); |
530 |
|
st->set_attrib("connections", 7); |
531 |
|
break; |
532 |
|
case 0x52: st = MakeStone("st-puzzle"); |
533 |
|
st->set_attrib("connections", 4); |
534 |
|
break; |
535 |
|
case 0x53: st = MakeStone("st-puzzle"); |
536 |
|
st->set_attrib("connections", 10); |
537 |
|
break; |
538 |
|
case 0x54: st = MakeStone("st-puzzle"); |
539 |
|
st->set_attrib("connections",13); |
540 |
|
break; |
541 |
|
case 0x55: st = MakeStone("st-puzzle"); |
542 |
|
st->set_attrib("connections", 6); |
543 |
|
break; |
544 |
|
case 0x56: st = MakeStone("st-puzzle"); |
545 |
|
st->set_attrib("connections",11); |
546 |
|
break; |
547 |
|
case 0x57: st = MakeStone("st-puzzle"); |
548 |
|
st->set_attrib("connections", 9); |
549 |
|
break; |
550 |
|
case 0x58: st = MakeStone("st-puzzle"); |
551 |
|
st->set_attrib("connections", 3); |
552 |
|
break; |
553 |
|
case 0x59: st = MakeStone("st-puzzle"); |
554 |
|
st->set_attrib("connections", 2); |
555 |
|
break; |
556 |
|
case 0x5a: st = MakeStone("st-puzzle"); |
557 |
|
st->set_attrib("connections", 5); |
558 |
|
break; |
559 |
|
case 0x5b: st = MakeStone("st-puzzle"); |
560 |
|
st->set_attrib("connections", 16); |
561 |
|
break; |
562 |
|
case 0x5c: st = MakeStone("st-puzzle"); |
563 |
|
st->set_attrib("connections", 1); |
564 |
|
break; |
565 |
|
|
566 |
|
case 0x66: st = MakeStone("st-shogun"); |
567 |
|
st->set_attrib("holes", 1); |
568 |
|
break; |
569 |
|
case 0x67: st = MakeStone("st-shogun"); |
570 |
|
st->set_attrib("holes", 2); |
571 |
|
break; |
572 |
|
case 0x68: st = MakeStone("st-shogun"); |
573 |
|
st->set_attrib("holes", 4); |
574 |
|
break; |
575 |
|
case 0x69: st = MakeStone("st-shogun"); |
576 |
|
st->set_attrib("holes", 7); |
577 |
|
break; |
578 |
|
case 0x6a: st = MakeStone("st-shogun"); |
579 |
|
st->set_attrib("holes", 6); |
580 |
|
break; |
581 |
|
case 0x6b: st = MakeStone("st-shogun"); |
582 |
|
st->set_attrib("holes", 5); |
583 |
|
break; |
584 |
|
case 0x6c: st = MakeStone("st-shogun"); |
585 |
|
st->set_attrib("holes", 3); |
586 |
|
break; |
587 |
|
default: |
588 |
|
{ |
589 |
|
const char *name = stone_map[type]; |
590 |
|
st = MakeStone (name ? name : "st-dummy"); |
591 |
|
} |
592 |
|
} |
593 |
|
if (st) |
594 |
|
SetStone (GridPos(x, y), st); |
595 |
|
} |
596 |
|
|
597 |
|
void |
598 |
LevelPack_Oxyd::load_stones (const Level &level) |
LevelPack_Oxyd::load_stones (const Level &level) |
599 |
{ |
{ |
600 |
using namespace world; |
using namespace world; |
602 |
const Grid &grid = level.getGrid (GridType_Pieces); |
const Grid &grid = level.getGrid (GridType_Pieces); |
603 |
for (unsigned y=0; y<grid.getHeight(); ++y) { |
for (unsigned y=0; y<grid.getHeight(); ++y) { |
604 |
for (unsigned x=0; x<grid.getWidth(); ++x) { |
for (unsigned x=0; x<grid.getWidth(); ++x) { |
605 |
int val = grid.get(x,y); |
set_stone (level, x, y); |
|
if (!val) continue; |
|
|
const char *name = stone_map[val]; |
|
|
Stone *st = MakeStone(name ? name : "st-dummy"); |
|
|
SetStone (GridPos(x, y), st); |
|
606 |
} |
} |
607 |
} |
} |
608 |
} |
} |