コード例 #1
0
ファイル: mkroom.c プロジェクト: thejoshwolfe/nethack
static void
mktemple (void)
{
        struct mkroom *sroom;
        coord *shrine_spot;
        struct rm *lev;

        if(!(sroom = pick_room(true))) return;

        /* set up Priest and shrine */
        sroom->rtype = TEMPLE;
        /*
         * In temples, shrines are blessed altars
         * located in the center of the room
         */
        shrine_spot = shrine_pos((sroom - rooms) + ROOMOFFSET);
        lev = &levl[shrine_spot->x][shrine_spot->y];
        lev->typ = ALTAR;
        lev->flags = induced_align(80);
        priestini(&u.uz, sroom, shrine_spot->x, shrine_spot->y, false);
        lev->flags |= AM_SHRINE;
        level.flags.has_temple = 1;
}
コード例 #2
0
static void
mktemple(struct level *lev)
{
    struct mkroom *sroom;
    coord *shrine_spot;
    struct rm *loc;

    if (!(sroom = pick_room(lev, TRUE, rng_for_level(&lev->z))))
        return;

    /* set up Priest and shrine */
    sroom->rtype = TEMPLE;
    /* 
     * In temples, shrines are blessed altars
     * located in the center of the room
     */
    shrine_spot = shrine_pos(lev, (sroom - lev->rooms) + ROOMOFFSET);
    loc = &lev->locations[shrine_spot->x][shrine_spot->y];
    loc->typ = ALTAR;
    loc->altarmask = induced_align(&lev->z, 80, rng_for_level(&lev->z));
    priestini(lev, sroom, shrine_spot->x, shrine_spot->y, FALSE);
    loc->altarmask |= AM_SHRINE;
}