- [NEW] Easier room creation
This commit is contained in:
@@ -553,27 +553,27 @@ bool game::loop()
|
||||
|
||||
ui::label("XN", 2, line, 48, 11);
|
||||
changed |= btn_small(48, line, room::editor::refExit(XN), -1, 64, 36);
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(XN));
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(XN), XP);
|
||||
line += 10;
|
||||
ui::label("YP", 2, line, 48, 11);
|
||||
changed |= btn_small(48, line, room::editor::refExit(YP), -1, 64, 36);
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(YP));
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(YP), YN);
|
||||
line += 10;
|
||||
ui::label("XP", 2, line, 48, 11);
|
||||
changed |= btn_small(48, line, room::editor::refExit(XP), -1, 64, 36);
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(XP));
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(XP), XN);
|
||||
line += 10;
|
||||
ui::label("YN", 2, line, 48, 11);
|
||||
changed |= btn_small(48, line, room::editor::refExit(YN), -1, 64, 36);
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(YN));
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(YN), YP);
|
||||
line += 10;
|
||||
ui::label("ZP", 2, line, 48, 11);
|
||||
changed |= btn_small(48, line, room::editor::refExit(ZP), -1, 64, 36);
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(ZP));
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(ZP), ZN);
|
||||
line += 10;
|
||||
ui::label("ZN", 2, line, 48, 11);
|
||||
changed |= btn_small(48, line, room::editor::refExit(ZN), -1, 64, 36);
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(ZN));
|
||||
if (ui::button("GO", 84, line, 13, 11)) room::load(room::editor::refExit(ZN), ZP);
|
||||
line += 10;
|
||||
|
||||
/*changed |= btn("COLOR:", 10, 140, room::editor::refColor(), 5, 11);
|
||||
|
||||
@@ -94,10 +94,39 @@ namespace room
|
||||
actor::reorder();
|
||||
}
|
||||
|
||||
//void load(int x, int y, int8_t xp, int8_t xn, int8_t yp, int8_t yn, uint8_t col, uint8_t floor, uint8_t walls, uint8_t door, uint8_t walldoor)
|
||||
void load(const int room)
|
||||
const int find_next_room()
|
||||
{
|
||||
if (room > 64 || room < 0) { return; }
|
||||
char filename[] = "rooms/00.txt";
|
||||
int room=0;
|
||||
while ( file::fileExists(filename) )
|
||||
{
|
||||
room++;
|
||||
filename[6] = int(room/10)+48;
|
||||
filename[7] = (room%10)+48;
|
||||
}
|
||||
return room;
|
||||
}
|
||||
|
||||
const int inverse_door(const int door)
|
||||
{
|
||||
if (door==XP) return XN;
|
||||
if (door==XN) return XP;
|
||||
if (door==YP) return YN;
|
||||
if (door==YN) return YP;
|
||||
if (door==ZP) return ZN;
|
||||
if (door==ZN) return ZP;
|
||||
return XN;
|
||||
}
|
||||
|
||||
//void load(int x, int y, int8_t xp, int8_t xn, int8_t yp, int8_t yn, uint8_t col, uint8_t floor, uint8_t walls, uint8_t door, uint8_t walldoor)
|
||||
void load(int room, const int door)
|
||||
{
|
||||
if (room > 64 || room < 0) {
|
||||
room = find_next_room();
|
||||
exits[inverse_door(door)] = room;
|
||||
if (door<4 && door_height[door]==-1) door_height[door]=0;
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (modified && ::editor::isEditing()) editor::save();
|
||||
|
||||
@@ -110,7 +139,7 @@ namespace room
|
||||
// Primer carreguem els valors per defecte
|
||||
inner_w = inner_h = 2;
|
||||
for (int i=0;i<4;++i) door_height[i] = -1;
|
||||
color = 9;
|
||||
color = 2;
|
||||
floor_type = walls_type = doors_type = walldoors_type = 0;
|
||||
for (int i=0;i<6;++i) exits[i] = -1;
|
||||
|
||||
@@ -214,7 +243,17 @@ namespace room
|
||||
}
|
||||
}
|
||||
free(original_buffer);
|
||||
} else {
|
||||
if (door != -1)
|
||||
{
|
||||
exits[door] = current_room;
|
||||
if (door < 4) door_height[door] = 0;
|
||||
}
|
||||
current_room = room;
|
||||
editor::save();
|
||||
editor::updateRoomList();
|
||||
}
|
||||
|
||||
current_room = room;
|
||||
refresh();
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
namespace room
|
||||
{
|
||||
void init();
|
||||
void load(const int room);
|
||||
void load(int room, const int door=-1);
|
||||
//void load(int x, int y, int8_t xp, int8_t xn, int8_t yp, int8_t yn, uint8_t col, uint8_t floor, uint8_t walls, uint8_t door, uint8_t doorwall);
|
||||
void update();
|
||||
void draw();
|
||||
|
||||
Reference in New Issue
Block a user