1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-05-11 11:44:08 +00:00

ru:: hints

This commit is contained in:
Zeno Rogue 2025-04-27 01:55:03 +02:00
parent 9bb368a1de
commit 98edbb9f48
3 changed files with 25 additions and 0 deletions

View File

@ -191,6 +191,17 @@ struct npc : public entity {
void act() override;
};
struct hint : public entity {
string hint_text;
int state;
int width, height;
double sx() override { return width; }
double sy() override { return height; }
string glyph() override { return " "; }
color_t color() override { return 0; }
void act() override;
};
struct item : public entity {
int id;
string pickup_message;

View File

@ -194,4 +194,12 @@ void npc::act() {
}
}
void hint::act() {
bool cur = intersect(get_pixel_bbox(), m.get_pixel_bbox());
if(cur && !state) {
addMessage(hint_text);
}
state = cur;
}
}

View File

@ -127,6 +127,12 @@ void load_room(fhstream& f, cell *c) {
b->text = scanline_noblank(f);
r.entities.emplace_back(std::move(b));
}
else if(cap == "HINT") {
auto b = std::make_unique<hint>();
sscanf(param.c_str(), "%lf%lf%d%d", &b->where_x, &b->where_y, &b->width, &b->height);
b->hint_text = scanline_noblank(f);
r.entities.emplace_back(std::move(b));
}
else println(hlog, "unknown mapline ", s);
}
else println(hlog, "unknown mapline ", s);