int main() { Monster torg = {MonsterType::OGRE, "Torg", 145}; Monster blurp = {MonsterType::SLIME, "Blurp", 23}; printMonster(torg); printMonster(blurp); return 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); } }
/* * 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); }