mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-05-14 21:24:08 +00:00
ru:: a few more levels
This commit is contained in:
parent
7629b89245
commit
4aa1b971a6
@ -1,11 +1,13 @@
|
|||||||
namespace rogue_unlike {
|
namespace rogue_unlike {
|
||||||
|
|
||||||
|
/** a helper structure to mass to powerfun */
|
||||||
struct data {
|
struct data {
|
||||||
int keystate;
|
int keystate;
|
||||||
double d;
|
double d;
|
||||||
ld modv;
|
ld modv;
|
||||||
ld moda;
|
ld moda;
|
||||||
int dx;
|
int dx;
|
||||||
|
struct power *p;
|
||||||
};
|
};
|
||||||
|
|
||||||
using powerfun = hr::function<void(data&)>;
|
using powerfun = hr::function<void(data&)>;
|
||||||
@ -13,12 +15,15 @@ using powerfun = hr::function<void(data&)>;
|
|||||||
struct power {
|
struct power {
|
||||||
int key;
|
int key;
|
||||||
string name;
|
string name;
|
||||||
|
string xname;
|
||||||
string desc;
|
string desc;
|
||||||
string glyph;
|
string glyph;
|
||||||
color_t color;
|
color_t color;
|
||||||
flagtype flags;
|
flagtype flags;
|
||||||
powerfun pf;
|
powerfun pf;
|
||||||
|
int id_status;
|
||||||
power(int key, string name, string desc, string glyph, color_t color, flagtype f, powerfun pf) : key(key), name(name), desc(desc), glyph(glyph), color(color), flags(f), pf(pf) {
|
power(int key, string name, string desc, string glyph, color_t color, flagtype f, powerfun pf) : key(key), name(name), desc(desc), glyph(glyph), color(color), flags(f), pf(pf) {
|
||||||
|
id_status = 0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -132,9 +137,7 @@ struct entity {
|
|||||||
|
|
||||||
virtual double grav() { return 0.1; }
|
virtual double grav() { return 0.1; }
|
||||||
|
|
||||||
bool on_floor;
|
bool on_floor, fallthru, on_ice, wallhug, on_bounce;
|
||||||
bool fallthru;
|
|
||||||
bool on_ice;
|
|
||||||
|
|
||||||
bool destroyed;
|
bool destroyed;
|
||||||
void kino();
|
void kino();
|
||||||
@ -156,6 +159,11 @@ struct man : public entity {
|
|||||||
int facing;
|
int facing;
|
||||||
int attack_facing;
|
int attack_facing;
|
||||||
int attack_when;
|
int attack_when;
|
||||||
|
|
||||||
|
int on_floor_when;
|
||||||
|
int jump_control, next_jump_control;
|
||||||
|
int coyote_time, next_coyote_time;
|
||||||
|
|
||||||
man() { facing = 1; attack_facing = 1; }
|
man() { facing = 1; attack_facing = 1; }
|
||||||
double sx() override { return 12; }
|
double sx() override { return 12; }
|
||||||
double sy() override { return 12; }
|
double sy() override { return 12; }
|
||||||
@ -176,13 +184,15 @@ struct sage : public entity {
|
|||||||
|
|
||||||
struct item : public entity {
|
struct item : public entity {
|
||||||
int id;
|
int id;
|
||||||
|
string pickup_message;
|
||||||
double sx() override { return 12; }
|
double sx() override { return 12; }
|
||||||
double sy() override { return 12; }
|
double sy() override { return 12; }
|
||||||
string glyph() override { return powers[id].glyph; }
|
string glyph() override { return powers[id].glyph; }
|
||||||
color_t color() override { return powers[id].color; }
|
color_t color() override { return powers[id].color; }
|
||||||
void act() override {
|
void act() override {
|
||||||
|
kino();
|
||||||
if(intersect(get_pixel_bbox(), m.get_pixel_bbox())) {
|
if(intersect(get_pixel_bbox(), m.get_pixel_bbox())) {
|
||||||
addMessage("You pick up the " + powers[id].name + ".");
|
addMessage(pickup_message);
|
||||||
destroyed = true;
|
destroyed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,8 @@ void entity::apply_grav() {
|
|||||||
void entity::kino() {
|
void entity::kino() {
|
||||||
on_floor = false;
|
on_floor = false;
|
||||||
on_ice = false;
|
on_ice = false;
|
||||||
|
wallhug = false;
|
||||||
|
on_bounce = false;
|
||||||
|
|
||||||
// ld modv = 60. / game_fps;
|
// ld modv = 60. / game_fps;
|
||||||
|
|
||||||
@ -45,8 +47,9 @@ void entity::kino() {
|
|||||||
for(int x = obb.minx; x < obb.maxx; x++) for(int y = obb.maxy; y < jbb.maxy; y++) {
|
for(int x = obb.minx; x < obb.maxx; x++) for(int y = obb.maxy; y < jbb.maxy; y++) {
|
||||||
eWall b = current_room->at(x, y);
|
eWall b = current_room->at(x, y);
|
||||||
if(walls[b].flags & blocking) {
|
if(walls[b].flags & blocking) {
|
||||||
|
if(walls[b].flags & W_BOUNCY) { vel_y = -vel_y; on_bounce = true; goto again; }
|
||||||
on_floor = true;
|
on_floor = true;
|
||||||
if(b == wFrozen) on_ice = true;
|
if(walls[b].flags & W_FROZEN) on_ice = true;
|
||||||
vel_y /= 2;
|
vel_y /= 2;
|
||||||
if(abs(vel_y) < 1e-6) vel_y = 0;
|
if(abs(vel_y) < 1e-6) vel_y = 0;
|
||||||
if(freezing()) {
|
if(freezing()) {
|
||||||
@ -85,6 +88,7 @@ void entity::kino() {
|
|||||||
if(walls[b].flags & W_BLOCK) {
|
if(walls[b].flags & W_BLOCK) {
|
||||||
if(freezing()) { hit_wall(); }
|
if(freezing()) { hit_wall(); }
|
||||||
vel_x = (vel_x - max<ld>(vel_y, 0)/10) / 2;
|
vel_x = (vel_x - max<ld>(vel_y, 0)/10) / 2;
|
||||||
|
wallhug = true;
|
||||||
goto again;
|
goto again;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,6 +102,7 @@ void entity::kino() {
|
|||||||
if(walls[b].flags & W_BLOCK) {
|
if(walls[b].flags & W_BLOCK) {
|
||||||
if(freezing()) { hit_wall(); }
|
if(freezing()) { hit_wall(); }
|
||||||
vel_x = (vel_x + max<ld>(vel_y, 0)/10) / 2;
|
vel_x = (vel_x + max<ld>(vel_y, 0)/10) / 2;
|
||||||
|
wallhug = true;
|
||||||
goto again;
|
goto again;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,18 @@ flagtype W_TRANS = 2;
|
|||||||
flagtype W_PLATFORM = 4;
|
flagtype W_PLATFORM = 4;
|
||||||
flagtype W_STAIRCASE = 8;
|
flagtype W_STAIRCASE = 8;
|
||||||
flagtype W_PAIN = 16;
|
flagtype W_PAIN = 16;
|
||||||
|
flagtype W_BOUNCY = 32;
|
||||||
|
flagtype W_FROZEN = 64;
|
||||||
|
|
||||||
constexpr int qwall = 14;
|
constexpr int qwall = 14;
|
||||||
|
|
||||||
ruwall walls[qwall] = {
|
ruwall walls[qwall] = {
|
||||||
{"air", ".", 0x40404080, W_TRANS},
|
{"air", ".", 0x40404080, W_TRANS},
|
||||||
{"wall", "#", 0xFFFFFFFF, W_BLOCK},
|
{"wall", "#", 0xFFFFFFFF, W_BLOCK},
|
||||||
{"bouncy wall", "#", 0x80FF80FF, W_BLOCK},
|
{"bouncy wall", "#", 0x80FF80FF, W_BLOCK | W_BOUNCY},
|
||||||
{"spike", "^", 0xC08080FF, W_BLOCK | W_TRANS},
|
{"spike", "^", 0xC08080FF, W_BLOCK | W_TRANS},
|
||||||
{"water", "~", 0x0000FFFF, W_BLOCK | W_TRANS},
|
{"water", "~", 0x0000FFFF, W_BLOCK | W_TRANS},
|
||||||
{"frozen water", "#", 0xC0C0FFFF, W_BLOCK},
|
{"frozen water", "#", 0xC0C0FFFF, W_BLOCK | W_FROZEN},
|
||||||
{"door", "+", 0xC06000FF, W_BLOCK},
|
{"door", "+", 0xC06000FF, W_BLOCK},
|
||||||
{"smashed door", "'", 0xC06000FF, W_TRANS},
|
{"smashed door", "'", 0xC06000FF, W_TRANS},
|
||||||
{"magic fountain", "!", 0x8080C0FF, W_TRANS},
|
{"magic fountain", "!", 0x8080C0FF, W_TRANS},
|
||||||
|
@ -11,15 +11,21 @@ void man::act() {
|
|||||||
dat.moda = dat.modv * dat.modv;
|
dat.moda = dat.modv * dat.modv;
|
||||||
dat.dx = 0;
|
dat.dx = 0;
|
||||||
|
|
||||||
|
coyote_time = next_coyote_time; next_coyote_time = 0;
|
||||||
|
jump_control = next_jump_control; next_jump_control = 0;
|
||||||
|
|
||||||
|
if(on_floor) on_floor_when = gframeid;
|
||||||
|
|
||||||
fallthru = false;
|
fallthru = false;
|
||||||
|
|
||||||
handle_powers(dat);
|
handle_powers(dat);
|
||||||
|
|
||||||
if(on_floor && !on_ice) {
|
if((on_floor || jump_control || wallhug) && !on_ice) {
|
||||||
vel_x = dat.dx * dat.d * dat.modv * 2.5;
|
vel_x = dat.dx * dat.d * dat.modv * 2.5;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
vel_x += dat.dx * dat.d * .05 * dat.moda;
|
if(on_bounce) {
|
||||||
|
vel_x += dat.dx * dat.d * dat.modv * 0.02;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dat.dx) facing = dat.dx;
|
if(dat.dx) facing = dat.dx;
|
||||||
|
@ -2,43 +2,43 @@ ROOM Red Rooster Inn
|
|||||||
# wall
|
# wall
|
||||||
+ door
|
+ door
|
||||||
- platform
|
- platform
|
||||||
s staircase
|
A staircase
|
||||||
. air
|
. air
|
||||||
MAP
|
MAP
|
||||||
...................##.............................+-...-+..---...##.............
|
...................##.............................+-....+..---...##.............
|
||||||
..................##################################----############............
|
..................##################################----############............
|
||||||
.................##.....................#.............s.......#....##...........
|
.................##.....................#..............A......#....##...........
|
||||||
................##......................#............s........#.....##..........
|
................##......................#.............A.......#.....##..........
|
||||||
...............##.......................#...........s.........#......##.........
|
...............##.......................#............A........#......##.........
|
||||||
..............##........................#..........s..........#.......##........
|
..............##........................#...........A.........#.......##........
|
||||||
.............##.........................#.........s...........#........##.......
|
.............##.........................#..........A..........#........##.......
|
||||||
............##..........................+........s............+.........##......
|
............##..........................+.........A...........+.........##......
|
||||||
...........##...........................+.......s.............+..........##.....
|
...........##...........................+........A............+..........##.....
|
||||||
..........############################################----##################....
|
..........############################################------################....
|
||||||
.........###........................................##.s............##....##....
|
.........###........................................##.A..................##....
|
||||||
..........#b........................................#b..s...........#b....#b....
|
--........#b........................................#b..A.................#b....
|
||||||
..........##........................................##...s..........##....##....
|
..........##........................................##...A................##....
|
||||||
..........#b....---------..----------..----------...#b....s.........#b....#b....
|
..........#b.....--------...--------...--------.....#b....A...............#b....
|
||||||
..........##........................................##.....s........##....##....
|
..........##........................................##.....A..............##....
|
||||||
..........#b........................................#b......s.......#b....#b....
|
..........#b........................................#b......A.............#b....
|
||||||
..........##........................................##.......s......##....##....
|
..........##........................................##.......A............##....
|
||||||
..........#b....---------..----------..----------...#b........s.....#b....#b....
|
--........#b....---------...--------...---------....#b........A...........#b....
|
||||||
..........##........................................##.........s....##....##....
|
..........##........................................##.........A..........##....
|
||||||
..........#b........................................#b..........s...#b....#b....
|
..........#b........................................#b..........A.........#b....
|
||||||
..........##........................................##...........s..+.....##....
|
..........##........................................##...........A........##....
|
||||||
..........#b........................................#b............s.+.....#b....
|
..........#b....---------...--------...---------....#b............A.......#b....
|
||||||
..........##....---------..----------..----------...##...........s##########....
|
..........##........................................##.............#------##....
|
||||||
..........#b........................................#b..........s...#b....#b....
|
..........#b........................................#b...................A#b....
|
||||||
..........##........................................##.........s....##....##....
|
..........##........................................##..................A.##....
|
||||||
..........#b........................................#b........s.....#b....#b....
|
..........#b...----------..----------..----------...#b.................A..#b....
|
||||||
..........##....---------..----------..----------...##.......s......##....##....
|
..........##........................................##................A...##....
|
||||||
..........#b........................................#b......s.......#b....#b....
|
..........#b........................................#b...............A....#b....
|
||||||
..........##........................................##.....s........##....##....
|
..........##........................................##..............A.....##....
|
||||||
..........#b........................................#b....s.........#b....#b....
|
..........#b...----------..----------..----------...#b.............A......#b....
|
||||||
..........++....---------..----------..----------...++...s..........##....##....
|
..........++........................................++............A.......##....
|
||||||
..........+b........................................+b..s...........#b....#b....
|
..........+b........................................+b...........A........#b....
|
||||||
..........++........................................++.s............++....##....
|
..........++........................................++..........A.........##....
|
||||||
..........+b........................................+bs.............+b....#b....
|
..........+b........................................+b.........A..........#b....
|
||||||
################################################################################
|
################################################################################
|
||||||
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -90,13 +90,14 @@ MAP
|
|||||||
......................#b-b........#b............#b#b#...........................
|
......................#b-b........#b............#b#b#...........................
|
||||||
......................++--........++.............#####..........................
|
......................++--........++.............#####..........................
|
||||||
......................+b-b........+b..............#b#b#.........................
|
......................+b-b........+b..............#b#b#.........................
|
||||||
......................++--......--++....------......####........................
|
......................++--........++....------......####........................
|
||||||
......................+b-b......-b+b....-b-b-b......#b#b........................
|
......................+b-b........+b....-b-b-b......#b#b........................
|
||||||
##########################--------########################......................
|
##########################--------########################......................
|
||||||
#b#b#b#b#b#b#b#b#b#b#b#b#b-b-b-b-b#b#b#b#b#b#b#b#b#b#b#b#b......................
|
#b#b#b#b#b#b#b#b#b#b#b#b#b-b-b-b-b#b#b#b#b#b#b#b#b#b#b#b#b......................
|
||||||
START 344 274
|
START 344 274
|
||||||
ITEM 382 287
|
ITEM 382 287
|
||||||
dagger
|
dagger
|
||||||
|
You collect your trusty dagger from the drawer.
|
||||||
OK
|
OK
|
||||||
|
|
||||||
MOVE 1 Red Rooster Inn
|
MOVE 1 Red Rooster Inn
|
||||||
@ -144,6 +145,9 @@ MAP
|
|||||||
....................................#b#b........................................
|
....................................#b#b........................................
|
||||||
..................................##############################################
|
..................................##############################################
|
||||||
..................................#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
..................................#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
ITEM 484 123
|
||||||
|
steel ring
|
||||||
|
You notice a crow nest. There is a shiny ring inside!
|
||||||
OK
|
OK
|
||||||
|
|
||||||
MOVE 2 Red Rooster Inn
|
MOVE 2 Red Rooster Inn
|
||||||
@ -194,6 +198,9 @@ MAP
|
|||||||
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
################################################################################
|
################################################################################
|
||||||
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
ITEM 279 65
|
||||||
|
furry ring
|
||||||
|
Someone lost a small, weird ring here. Hopefully it will be useful to you.
|
||||||
OK
|
OK
|
||||||
|
|
||||||
MOVE 2 Forest Path
|
MOVE 2 Forest Path
|
||||||
@ -387,6 +394,9 @@ MAP
|
|||||||
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b..-b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b..-b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
####################################..--########################################
|
####################################..--########################################
|
||||||
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b..-b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b..-b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
ITEM 380 131
|
||||||
|
strange blue crystal ball
|
||||||
|
What a shiny crystal ball!
|
||||||
OK
|
OK
|
||||||
|
|
||||||
MOVE 2 Dungeon Entrance
|
MOVE 2 Dungeon Entrance
|
||||||
@ -436,3 +446,254 @@ MAP
|
|||||||
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b........#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b........#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
OK
|
OK
|
||||||
|
|
||||||
|
MOVE 3 Dungeons of Doom
|
||||||
|
ROOM First Magic Fountain Cave
|
||||||
|
! magic fountain
|
||||||
|
# wall
|
||||||
|
- staircase
|
||||||
|
. air
|
||||||
|
A platform
|
||||||
|
MAP
|
||||||
|
###################.-###########################################################
|
||||||
|
###################.-###########################################################
|
||||||
|
###################.-###########################################################
|
||||||
|
###################.-###########################################################
|
||||||
|
###################.-###########################################################
|
||||||
|
################....-.........##############################.......#############
|
||||||
|
##############......-...........#########################............###########
|
||||||
|
############........-.............######################..............##########
|
||||||
|
###########.........-................################..................#########
|
||||||
|
##########..........-..................###########.....................#########
|
||||||
|
##########..........-.....................######.......................#########
|
||||||
|
#########...........-..................................................#########
|
||||||
|
#########...........-..................................................#########
|
||||||
|
##########..........-..................................................#########
|
||||||
|
##########..........-..................................................#########
|
||||||
|
##########..........-..................................................#########
|
||||||
|
###########.........-.................................................##########
|
||||||
|
############..........................................................##########
|
||||||
|
##############.......................................................###########
|
||||||
|
################....###..............................................###########
|
||||||
|
##########################..........................................############
|
||||||
|
###############################..-..................................############
|
||||||
|
################################.-.................................#############
|
||||||
|
#################################-................................##############
|
||||||
|
#################################-..............................################
|
||||||
|
###############################..-.............................#################
|
||||||
|
##############################...-........!!.................###################
|
||||||
|
###############################..-........!b...............#####################
|
||||||
|
################################........######...........#######################
|
||||||
|
###################################.....#b#b#b....##AAAA########################
|
||||||
|
####################################################----########################
|
||||||
|
####################################################-b-b########################
|
||||||
|
####################################################----########################
|
||||||
|
####################################################-b-b########################
|
||||||
|
####################################################----########################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b-b-b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
####################################################----########################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b-b-b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
####################################################----########################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b-b-b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
OK
|
||||||
|
|
||||||
|
MOVE 3 First Magic Fountain Cave
|
||||||
|
ROOM Watery Death
|
||||||
|
# wall
|
||||||
|
- staircase
|
||||||
|
. air
|
||||||
|
A platform
|
||||||
|
^ spike
|
||||||
|
~ water
|
||||||
|
MAP
|
||||||
|
#################################################################--#############
|
||||||
|
#################################################################--#############
|
||||||
|
#################################################################AA#############
|
||||||
|
#################################################################--#############
|
||||||
|
.................................................................--.........####
|
||||||
|
.................................................................--..........###
|
||||||
|
.................................................................--..........###
|
||||||
|
.............................................................................###
|
||||||
|
.............................................................................###
|
||||||
|
..##################################################################.........###
|
||||||
|
..######################........................###################..........###
|
||||||
|
..#####################..........................#################...........###
|
||||||
|
.######################............................#####.....................###
|
||||||
|
.######################.............................####.....................###
|
||||||
|
.######################..............................###.....................###
|
||||||
|
#######################....############.....##........##........##...........###
|
||||||
|
#######################....#############..............##.......####..........###
|
||||||
|
#######################....#####......##...............#.......####..........###
|
||||||
|
#######################....#####......##......##.......#......######.........###
|
||||||
|
#######################....#####......##...............#......######.........###
|
||||||
|
#######################.....####--##..##...............#......######.........###
|
||||||
|
#######################.......##-b##..##...............#......######.........###
|
||||||
|
#######################........#--##..##......##..............######.........###
|
||||||
|
#######################........#-b##..##......................######.........###
|
||||||
|
#######################........#--##..##......................######~~~~~~~~~###
|
||||||
|
#######################....#####-b##..###.....................######^^^^^^^^^###
|
||||||
|
#######################....#####--##..####AA####################################
|
||||||
|
#######################....#####-b##...###..####################################
|
||||||
|
#######################....#####--##....##AA####################################
|
||||||
|
#######################....#####-b##........####################################
|
||||||
|
#######################....#####--##........####################################
|
||||||
|
#######################....#####-b##############################################
|
||||||
|
#######################....#####--##############################################
|
||||||
|
#######################....#####-b.#############################################
|
||||||
|
######################......####--..############################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b......#b#b-b..#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
######################......####--..############################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b......#b#b-b..#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
######################......####--..############################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b......#b#b-b..#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
OK
|
||||||
|
|
||||||
|
MOVE 2 Watery Death
|
||||||
|
ROOM Jumping Course
|
||||||
|
# wall
|
||||||
|
- platform
|
||||||
|
. air
|
||||||
|
A bouncy wall
|
||||||
|
^ spike
|
||||||
|
MAP
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
...............################.....#####################.......................
|
||||||
|
................########.............#..........................................
|
||||||
|
.....................................#..........................................
|
||||||
|
.....................................#..........................................
|
||||||
|
###########....---------.............#..........................................
|
||||||
|
###########................####......#........................................##
|
||||||
|
###########...................###....#^.......................................##
|
||||||
|
###########..........................#........................................##
|
||||||
|
###########..........................#^......................................###
|
||||||
|
###########................--------..#.......................................###
|
||||||
|
###########..................................................................###
|
||||||
|
###########...............................-------...........................####
|
||||||
|
###########....----.........................................................####
|
||||||
|
###########.................................................................####
|
||||||
|
###########.........................................-......................#####
|
||||||
|
###########.......-........................................................#####
|
||||||
|
###########................................................................#####
|
||||||
|
###########............................................######.............######
|
||||||
|
###########..........AAAAAA..####....#....................................######
|
||||||
|
###########...............................................................######
|
||||||
|
###########..............................................................#######
|
||||||
|
###########..................................................##..........#######
|
||||||
|
###########..............................................................#######
|
||||||
|
############............................................................########
|
||||||
|
############...................................###.............##.......########
|
||||||
|
#############.............................#########.....................########
|
||||||
|
###############......................##################.................########
|
||||||
|
###############AAAAAAAAAAAAAAAAAAAAAA#####################.............#########
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
################################################################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
################################################################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
OK
|
||||||
|
|
||||||
|
MOVE 2 Jumping Course
|
||||||
|
ROOM Treasure Cave
|
||||||
|
# wall
|
||||||
|
- staircase
|
||||||
|
. air
|
||||||
|
MAP
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
######################################################################..--......
|
||||||
|
#####################################################################...-b......
|
||||||
|
##################################################################......--......
|
||||||
|
################################################################........-b......
|
||||||
|
###############################################################.........--.#####
|
||||||
|
##############################################################..........-b.#####
|
||||||
|
###########################################################.............--.#####
|
||||||
|
#########################################################...............-b.#####
|
||||||
|
####################################################....................--..####
|
||||||
|
###################################################.....................-b..####
|
||||||
|
###############################################.........................--..####
|
||||||
|
##############################################..........................-b..####
|
||||||
|
##############################################..........................--.#####
|
||||||
|
#######################################...####..........................-b######
|
||||||
|
#####################################......###...........................#######
|
||||||
|
###################################.........##.........................#########
|
||||||
|
##################################..........##........................##########
|
||||||
|
##################################..........##......................############
|
||||||
|
##################################..........##..............####################
|
||||||
|
##################################..........##............######################
|
||||||
|
##################################..........##..........########################
|
||||||
|
##################################..........##........##########################
|
||||||
|
##################################..........##.......###########################
|
||||||
|
##################################..........##.......###########################
|
||||||
|
##################################..........##.......###########################
|
||||||
|
##################################....############...###########################
|
||||||
|
##################################...................###########################
|
||||||
|
##################################...................###########################
|
||||||
|
##################################...................###########################
|
||||||
|
##################################...................###########################
|
||||||
|
##################################....##########################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b....#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
################################################################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
################################################################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
ITEM 324 198
|
||||||
|
Golden Shoelaces
|
||||||
|
Hopefully these golden shoelaces are valuable.
|
||||||
|
OK
|
||||||
|
|
||||||
|
MOVE 3 Watery Death
|
||||||
|
ROOM Second Magic Fountain
|
||||||
|
! magic fountain
|
||||||
|
# wall
|
||||||
|
- staircase
|
||||||
|
. air
|
||||||
|
MAP
|
||||||
|
##################################################...##-.#######################
|
||||||
|
##################################################...##-.#######################
|
||||||
|
##################################################...##-.#######################
|
||||||
|
##################################################...##-.#######################
|
||||||
|
#########################################..............-.#######################
|
||||||
|
#########################################..............-.#######################
|
||||||
|
#########################################.!!...........-.#######################
|
||||||
|
#########################################.!b.............#######################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
################################################################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
################################################################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
################################################################################
|
||||||
|
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
|
||||||
|
OK
|
||||||
|
|
||||||
|
@ -2,9 +2,12 @@ namespace rogue_unlike {
|
|||||||
|
|
||||||
flagtype STARTING = Flag(1);
|
flagtype STARTING = Flag(1);
|
||||||
flagtype WHILE_PAUSED = Flag(2);
|
flagtype WHILE_PAUSED = Flag(2);
|
||||||
|
flagtype TOGGLEABLE = Flag(4);
|
||||||
|
flagtype ACTIVE = Flag(8);
|
||||||
|
flagtype NEEDS_IDENTIFY = Flag(16);
|
||||||
|
|
||||||
vector<power> powers = {
|
vector<power> powers = {
|
||||||
power('1', "Potion of Extra Life",
|
power('1', "Potion of Extra Life",
|
||||||
"You are really proud of this potion, which, after you die, will let you return to the moment of time when you drank it. "
|
"You are really proud of this potion, which, after you die, will let you return to the moment of time when you drank it. "
|
||||||
"Unfortunately it still requires an ingredient found only in the magical fountains of the Dungeons of Alchemy.\n\n"
|
"Unfortunately it still requires an ingredient found only in the magical fountains of the Dungeons of Alchemy.\n\n"
|
||||||
"You can only drink this potion when at a magical fountain. To protect yourself from dying permanently, it is drank "
|
"You can only drink this potion when at a magical fountain. To protect yourself from dying permanently, it is drank "
|
||||||
@ -13,28 +16,33 @@ vector<power> powers = {
|
|||||||
[] (data& d) { }
|
[] (data& d) { }
|
||||||
),
|
),
|
||||||
|
|
||||||
power('d', "move right",
|
power('d', "move right",
|
||||||
"A special power of human beings, and most other animals, that they earn early in their life.",
|
"A special power of human beings, and most other animals, that they earn early in their life.",
|
||||||
">", 0xFF0000FF, STARTING,
|
">", 0xFF0000FF, STARTING,
|
||||||
[] (data& d) { if(d.keystate & 1) d.dx += 1; }
|
[] (data& d) { if(d.keystate & 1) d.dx += 1; }
|
||||||
),
|
),
|
||||||
|
|
||||||
power('a', "move left",
|
power('a', "move left",
|
||||||
"Moving to the right was a mistake? If so, this special power can be used to ignore the consequences. In most cases, at least...",
|
"Moving to the right was a mistake? If so, this special power can be used to ignore the consequences. In most cases, at least...",
|
||||||
"<", 0xFF0000FF, STARTING,
|
"<", 0xFF0000FF, STARTING,
|
||||||
[] (data& d) { if(d.keystate & 1) d.dx -= 1; }
|
[] (data& d) { if(d.keystate & 1) d.dx -= 1; }
|
||||||
),
|
),
|
||||||
|
|
||||||
power('w', "jump",
|
power('w', "jump",
|
||||||
"This power can be used to reach higher parts of the world. Its power is quite limited compared to move left and right, but "
|
"This power can be used to reach higher parts of the world. Its power is quite limited compared to move left and right, but "
|
||||||
"you expect to find some ways to make it more powerful.",
|
"you expect to find some ways to make it more powerful.",
|
||||||
"^", 0xFF0000FF, STARTING,
|
"^", 0xFF0000FF, STARTING,
|
||||||
[] (data& d) {
|
[] (data& d) {
|
||||||
if((d.keystate & 1) && m.on_floor) m.vel_y = -(non_hyperbolic ? 3 : 5) * d.d * d.modv;
|
if(d.keystate & 1) {
|
||||||
|
bool can_jump = m.on_floor;
|
||||||
|
println(hlog, "on_floor_when = ", m.on_floor_when, " gframeid = ", gframeid, " coyote_time = ", m.coyote_time);
|
||||||
|
if(gframeid <= m.on_floor_when + m.coyote_time) can_jump = true;
|
||||||
|
if(can_jump) m.vel_y = -(non_hyperbolic ? 3 : 5) * d.d * d.modv, m.on_floor_when = -1000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
||||||
power('s', "fall",
|
power('s', "fall",
|
||||||
"If you are on a platform, this ability can be used to drop down.",
|
"If you are on a platform, this ability can be used to drop down.",
|
||||||
"v", 0xFF0000FF, STARTING,
|
"v", 0xFF0000FF, STARTING,
|
||||||
[] (data& d) {
|
[] (data& d) {
|
||||||
@ -42,7 +50,7 @@ vector<power> powers = {
|
|||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
||||||
power('p', "pause",
|
power('p', "pause",
|
||||||
"Becoming an alchemist requires intelligence: thinking quickly to react to surprising effects of experiments. "
|
"Becoming an alchemist requires intelligence: thinking quickly to react to surprising effects of experiments. "
|
||||||
"To reflect this, you can use this power at any time to give yourself more time to think about the situation.",
|
"To reflect this, you can use this power at any time to give yourself more time to think about the situation.",
|
||||||
"-", 0xFF0000FF, STARTING | WHILE_PAUSED,
|
"-", 0xFF0000FF, STARTING | WHILE_PAUSED,
|
||||||
@ -50,7 +58,7 @@ vector<power> powers = {
|
|||||||
if(d.keystate == 1) cmode = mode::paused;
|
if(d.keystate == 1) cmode = mode::paused;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
power(' ', "dagger",
|
power(' ', "dagger",
|
||||||
"This sharp dagger is very useful during the preparation of alchemical ingredients, but it works as a basic weapon too.",
|
"This sharp dagger is very useful during the preparation of alchemical ingredients, but it works as a basic weapon too.",
|
||||||
")", 0xFFFFFFFF, 0,
|
")", 0xFFFFFFFF, 0,
|
||||||
[] (data& d) {
|
[] (data& d) {
|
||||||
@ -67,28 +75,113 @@ vector<power> powers = {
|
|||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
power('o', "Poincaré's Crystal Ball",
|
power('o', "strange blue crystal ball", "You feel an urge to look into it.",
|
||||||
"This crystal ball will not let you predict the future or see things elsewhere, but will let you easily map the "
|
"o", 0x00FF00FF, WHILE_PAUSED | NEEDS_IDENTIFY,
|
||||||
"parts of the world you have seen so far. This artifact is rumored to have been actually created by Beltrami, but "
|
|
||||||
"it was bought and presented to people by the famous wizard Poincaré, and people thought it was Poincaré's creation.",
|
|
||||||
"o", 0x00FF00FF, WHILE_PAUSED,
|
|
||||||
[] (data& d) {
|
[] (data& d) {
|
||||||
|
if(!(d.p->flags & NEEDS_IDENTIFY))
|
||||||
|
d.p->name = "Poincaré's Crystal Ball",
|
||||||
|
d.p->desc =
|
||||||
|
"This crystal ball will not let you predict the future or see things elsewhere, but will let you easily map the "
|
||||||
|
"parts of the world you have seen so far. This artifact is rumored to have been actually created by Beltrami, but "
|
||||||
|
"it was bought and presented to people by the famous wizard Poincaré, and people thought it was Poincaré's creation.";
|
||||||
if(d.keystate != 1) return;
|
if(d.keystate != 1) return;
|
||||||
|
d.p->flags &=~ NEEDS_IDENTIFY;
|
||||||
switch_mapmode_to(cmapmode == mapmode::poincare ? mapmode::standard : mapmode::poincare);
|
switch_mapmode_to(cmapmode == mapmode::poincare ? mapmode::standard : mapmode::poincare);
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
||||||
power('b', "Beltrami's Crystal Ball",
|
power('b', "strange cyan crystal ball", "You feel an urge to look into it.",
|
||||||
"Created by the ancient wizard Beltrami, this crystal ball will not let you predict the future or see things elsewhere, "
|
"o", 0x00FFFFFF, WHILE_PAUSED | NEEDS_IDENTIFY,
|
||||||
"but will let you easily map the parts of the world you have seen so far. Contrary to Poincaré's ball, straight lines are "
|
|
||||||
"mapped faithfully.",
|
|
||||||
"o", 0x00FFFFFF, WHILE_PAUSED,
|
|
||||||
[] (data& d) {
|
[] (data& d) {
|
||||||
|
if(!(d.p->flags & NEEDS_IDENTIFY))
|
||||||
|
d.p->name = "Beltrami's Crystal Ball",
|
||||||
|
d.p->desc =
|
||||||
|
"Created by the ancient wizard Beltrami, this crystal ball will not let you predict the future or see things elsewhere, "
|
||||||
|
"but will let you easily map the parts of the world you have seen so far. Contrary to Poincaré's ball, straight lines are "
|
||||||
|
"mapped faithfully.";
|
||||||
if(d.keystate != 1) return;
|
if(d.keystate != 1) return;
|
||||||
|
d.p->flags &=~ NEEDS_IDENTIFY;
|
||||||
switch_mapmode_to(cmapmode == mapmode::klein ? mapmode::standard : mapmode::klein);
|
switch_mapmode_to(cmapmode == mapmode::klein ? mapmode::standard : mapmode::klein);
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
||||||
|
power('c', "furry ring",
|
||||||
|
"This strange ring is too small to put on your finger, but maybe you could put it on your small toe?",
|
||||||
|
"=", 0xe1cbbeFF, TOGGLEABLE | NEEDS_IDENTIFY,
|
||||||
|
[] (data& d) {
|
||||||
|
if(!(d.p->flags & NEEDS_IDENTIFY))
|
||||||
|
d.p->name = "Toe Ring of the Coyote",
|
||||||
|
d.p->desc =
|
||||||
|
"This ring, worn on a toe, will let you still jump after running off a platform. Just make sure that you run off with the foot that you are wearing this ring on!";
|
||||||
|
if(d.keystate == 1) {
|
||||||
|
d.p->flags ^= ACTIVE;
|
||||||
|
if(d.p->flags & ACTIVE) addMessage("You put the " + d.p->name + " on your toe.");
|
||||||
|
else addMessage("You remove the " + d.p->name + " from your toe.");
|
||||||
|
}
|
||||||
|
if(d.p->flags & ACTIVE) m.next_coyote_time += 30;
|
||||||
|
if((d.p->flags & NEEDS_IDENTIFY) && (gframeid <= m.on_floor_when + m.coyote_time) && !m.on_floor) {
|
||||||
|
d.p->flags &=~ NEEDS_IDENTIFY;
|
||||||
|
addMessage("You feel a strange magical force wanting to hold your foot from below.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
power('g', "Golden Shoelaces",
|
||||||
|
"These shoelaces might bind you into place or give you freedom... or they could just be mundane shoelaces for rich people... one way to tell.",
|
||||||
|
"=", 0xFFD500FF, TOGGLEABLE,
|
||||||
|
[] (data& d) {
|
||||||
|
if(!(d.p->flags & NEEDS_IDENTIFY))
|
||||||
|
d.p->desc =
|
||||||
|
"Normally you cannot control your jumps while you are flying. These shoelaces allow you some control over your jumps.";
|
||||||
|
if(d.keystate == 1) {
|
||||||
|
d.p->flags ^= ACTIVE;
|
||||||
|
if(d.p->flags & ACTIVE) addMessage("You put the Golden Shoelaces on your boots.");
|
||||||
|
else addMessage("You remove the Golden Shoelaces from your boots.");
|
||||||
|
}
|
||||||
|
if(d.p->flags & ACTIVE) {
|
||||||
|
m.next_jump_control++;
|
||||||
|
auto& ids = d.p->id_status;
|
||||||
|
bool id_up = (!!m.on_floor) == !!(ids & 1);
|
||||||
|
if(id_up) {
|
||||||
|
ids++;
|
||||||
|
if(ids == 2) {
|
||||||
|
addMessage("Something felt strange during this jump.");
|
||||||
|
}
|
||||||
|
if(ids == 4) {
|
||||||
|
addMessage("This jump was strange too.");
|
||||||
|
}
|
||||||
|
if(ids == 6) {
|
||||||
|
addMessage("You feel in control of the laws of physics.");
|
||||||
|
}
|
||||||
|
if(ids == 8) {
|
||||||
|
addMessage("You feel able to control your jumps while flying.");
|
||||||
|
}
|
||||||
|
if(ids == 10) {
|
||||||
|
d.p->flags |= NEEDS_IDENTIFY;
|
||||||
|
addMessage("This control originates from your golden shoelaces.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
power('r', "steel ring",
|
||||||
|
"Is it safe to put this ring on?",
|
||||||
|
"=", 0xC04040FF, TOGGLEABLE | NEEDS_IDENTIFY,
|
||||||
|
[] (data& d) {
|
||||||
|
if(!(d.p->flags & NEEDS_IDENTIFY))
|
||||||
|
d.p->name = "Ring of Strength",
|
||||||
|
d.p->desc =
|
||||||
|
"This will raise your strength!";
|
||||||
|
if(d.keystate == 1) {
|
||||||
|
d.p->flags ^= ACTIVE;
|
||||||
|
d.p->flags &=~ NEEDS_IDENTIFY;
|
||||||
|
if(d.p->flags & ACTIVE) addMessage("You put the Ring of Strength on your finger.");
|
||||||
|
else addMessage("You remove the Ring of Strength from your finger.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void handle_powers(data& d) {
|
void handle_powers(data& d) {
|
||||||
@ -97,6 +190,7 @@ void handle_powers(data& d) {
|
|||||||
d.keystate = 0;
|
d.keystate = 0;
|
||||||
if(keyheld(p.key)) d.keystate |= 1;
|
if(keyheld(p.key)) d.keystate |= 1;
|
||||||
if(keywasheld(p.key)) d.keystate |= 2;
|
if(keywasheld(p.key)) d.keystate |= 2;
|
||||||
|
d.p = &p;
|
||||||
p.pf(d);
|
p.pf(d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,7 @@ void editmap_frame() {
|
|||||||
dialog::display();
|
dialog::display();
|
||||||
});
|
});
|
||||||
if(keypressed('f')) floodfill(mousepx / block_x, mousepy / block_y);
|
if(keypressed('f')) floodfill(mousepx / block_x, mousepy / block_y);
|
||||||
|
if(keypressed('t')) { m.where_x = mousepx; m.where_y = mousepy; m.vel_x = 0; m.vel_y = 0; }
|
||||||
}
|
}
|
||||||
|
|
||||||
void playing_frame() {
|
void playing_frame() {
|
||||||
@ -198,7 +199,7 @@ void run() {
|
|||||||
if(cmode == mode::playing) sync_map();
|
if(cmode == mode::playing) sync_map();
|
||||||
render_the_map();
|
render_the_map();
|
||||||
if(cmode == mode::editmap) dialog::add_key_action('p', [] { println(hlog, "p pressed"); switch_mapmode_to(mapmode::poincare); });
|
if(cmode == mode::editmap) dialog::add_key_action('p', [] { println(hlog, "p pressed"); switch_mapmode_to(mapmode::poincare); });
|
||||||
if(cmode == mode::editmap) mouseovers = format("coordinates: %d %d", mousepx, mousepy);
|
if(cmode == mode::editmap) mouseovers = format("coordinates: %d %d (%.2lf)", mousepx, mousepy, double(get_scale_at(mousepy)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case mode::inventory:
|
case mode::inventory:
|
||||||
|
@ -115,6 +115,7 @@ void load_room(fhstream& f, cell *c) {
|
|||||||
b->id = -1;
|
b->id = -1;
|
||||||
for(int i=0; i<isize(powers); i++) if(powers[i].name == s) b->id = i;
|
for(int i=0; i<isize(powers); i++) if(powers[i].name == s) b->id = i;
|
||||||
if(b->id == -1) println(hlog, "error: unknown item name ", s), b->id = 0;
|
if(b->id == -1) println(hlog, "error: unknown item name ", s), b->id = 0;
|
||||||
|
b->pickup_message = scanline_noblank(f);
|
||||||
r.entities.emplace_back(std::move(b));
|
r.entities.emplace_back(std::move(b));
|
||||||
}
|
}
|
||||||
else println(hlog, "unknown mapline ", s);
|
else println(hlog, "unknown mapline ", s);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user