MCPcopy Create free account
hub / github.com/diasurgical/devilution / Theme_SkelRoom

Function Theme_SkelRoom

Source/themes.cpp:598–661  ·  view source on GitHub ↗

Theme_SkelRoom initializes the skeleton room theme. Parameters: - t: theme number (index into themes array).

Source from the content-addressed store, hash-verified

596// Parameters:
597// - t: theme number (index into themes array).
598void Theme_SkelRoom(int t)
599{
600 int xp, yp, i;
601 char monstrnd[4] = { 6, 7, 3, 9 };
602
603 TFit_SkelRoom(t);
604
605 xp = themex;
606 yp = themey;
607
608 AddObject(OBJ_SKFIRE, xp, yp);
609
610 if (random_(0, monstrnd[leveltype - 1]) != 0) {
611 i = PreSpawnSkeleton();
612 SpawnSkeleton(i, xp - 1, yp - 1);
613 } else {
614 AddObject(OBJ_BANNERL, xp - 1, yp - 1);
615 }
616
617 i = PreSpawnSkeleton();
618 SpawnSkeleton(i, xp, yp - 1);
619
620 if (random_(0, monstrnd[leveltype - 1]) != 0) {
621 i = PreSpawnSkeleton();
622 SpawnSkeleton(i, xp + 1, yp - 1);
623 } else {
624 AddObject(OBJ_BANNERR, xp + 1, yp - 1);
625 }
626 if (random_(0, monstrnd[leveltype - 1]) != 0) {
627 i = PreSpawnSkeleton();
628 SpawnSkeleton(i, xp - 1, yp);
629 } else {
630 AddObject(OBJ_BANNERM, xp - 1, yp);
631 }
632 if (random_(0, monstrnd[leveltype - 1]) != 0) {
633 i = PreSpawnSkeleton();
634 SpawnSkeleton(i, xp + 1, yp);
635 } else {
636 AddObject(OBJ_BANNERM, xp + 1, yp);
637 }
638 if (random_(0, monstrnd[leveltype - 1]) != 0) {
639 i = PreSpawnSkeleton();
640 SpawnSkeleton(i, xp - 1, yp + 1);
641 } else {
642 AddObject(OBJ_BANNERR, xp - 1, yp + 1);
643 }
644
645 i = PreSpawnSkeleton();
646 SpawnSkeleton(i, xp, yp + 1);
647
648 if (random_(0, monstrnd[leveltype - 1]) != 0) {
649 i = PreSpawnSkeleton();
650 SpawnSkeleton(i, xp + 1, yp + 1);
651 } else {
652 AddObject(OBJ_BANNERL, xp + 1, yp + 1);
653 }
654
655 if (dObject[xp][yp - 3] == 0) {

Callers 1

CreateThemeRoomsFunction · 0.85

Calls 5

TFit_SkelRoomFunction · 0.85
AddObjectFunction · 0.85
random_Function · 0.85
PreSpawnSkeletonFunction · 0.85
SpawnSkeletonFunction · 0.85

Tested by

no test coverage detected