Beispiel #1
0
int main() {
	Monster torg = {MonsterType::OGRE, "Torg", 145};
	Monster blurp = {MonsterType::SLIME, "Blurp", 23};

	printMonster(torg);
	printMonster(blurp);

	return 0;
}
Beispiel #2
0
void drawDungeon(){
    clear();
    for (int i = 0; i < 21; i++) {
        for (int j = 0; j < 80; j++) {
            if (dungeon[j][i].character.value == pc) {
<<<<<<< HEAD
                printw("@");
            }
            else if(dungeon[j][i].character.value == mon){
                printw("%c", printMonster(dungeon[j][i].character.characterType.monster));
            }
            else {
                printw("%c", dungeon[j][i].type);
            }
        }
Beispiel #3
0
/*
 * oprintf()
 *
 * Opcode printf
 */
static void oprintf(disasm_t *d, const char *format)
{
    uint32_t	i	= 0;
    const char 	*fstart, *fend;

    if (format == NULL)
        return;

    fstart	= fend	= format;

    while (*fend) {
        if (*fend != '%') {
            i++;
            fend++;
        } else {
            if (i)
                fprintf(d->fp, "%.*s", i, fstart);

            /* Skip past % */
            fend++;

            switch (*fend) {
            case 'b':
                fprintf(d->fp, "%d", d->code->buf[d->offset++]);
                break;
            case 'B':	/* Bigpic image */
                printBigpic(d->fp, d->code->buf[d->offset++]);
                break;
            case 'c':	/* Class */
                printClass(d);
                break;
            case 'C':	/* Spell */
                printSpell(d->fp, d->code->buf[d->offset++]);
                break;
            case 'D':	/* Direction */
            {
                uint8_t		dir;

                dir = d->code->buf[d->offset++];

                if (dir == 0) {
                    fprintf(d->fp, "north");
                } else if (dir == 1) {
                    fprintf(d->fp, "east");
                } else if (dir == 2) {
                    fprintf(d->fp, "south");
                } else if (dir == 3) {
                    fprintf(d->fp, "west");
                } else {
                    fprintf(d->fp, "unknown");
                }
                break;
            }
            case 'f':	/* Flag */
            {
                uint8_t		flag;
                uint8_t		mask;

                flag	= d->code->buf[d->offset] >> 3;
                mask	= d->code->buf[d->offset] & 7;
                fprintf(d->fp, "%d", (flag * 8) + mask);
                d->offset++;
                break;
            }
            case 'I':	/* Item */
                printItem(d->fp, d->code->buf[d->offset++]);
                break;
            case 'L':
                printLiquid(d->fp, d->code->buf[d->offset++]);
                break;
            case 'M':	/* Monster */
                printMonster(d->fp, d->code->buf[d->offset++]);
                break;
            case 'O':	/* String at offset */
            {
                uint16_t	savedOffset;
                range_t		*r;

                r = (range_t *)xzalloc(sizeof(range_t));

                savedOffset = d->offset + 2;

                d->offset = str_read16le(&d->code->buf[d->offset]) - currentLevel.dataStartOffset;
                r->start	= d->offset;
                printPackedString(d);
                r->end		= d->offset;
                gl_list_add_last(rangeSkipList, r);
                d->offset	= savedOffset;
                break;
            }
            case 'o':	/* offset */
                fprintf(d->fp, "%04x",
                        str_read16le(&d->code->buf[d->offset])
                       );
                d->offset += 2;
                break;
            case 'S':	/* Masked String */
                fprintf(d->fp, "\"");
                fflush(d->fp);
                printMaskedString(d);
                fprintf(d->fp, "\"");
                break;
            case 's':	/* Packed String */
                fprintf(d->fp, "\"");
                printPackedString(d);
                fprintf(d->fp, "\"");
                break;
            case 'w':	/* Word */
                fprintf(d->fp, "%d",
                        str_read16le(&d->code->buf[d->offset])
                       );
                d->offset	+= 2;
                break;
            case 'x':	/* Hex byte */
                fprintf(d->fp, "0x%02x", d->code->buf[d->offset++]);
                break;
            }

            fend++;
            fstart	= fend;
            i	= 0;
        }
    }

    if (i)
        fprintf(d->fp, "%.*s", i, fstart);
}