15 if (arg_vec.size() < 1) {
16 return absl::InvalidArgumentError(
"Usage: dungeon export <room_id>");
19 int room_id = std::stoi(arg_vec[0]);
20 std::string rom_file = absl::GetFlag(FLAGS_rom);
21 if (rom_file.empty()) {
22 return absl::InvalidArgumentError(
"ROM file must be provided via --rom flag.");
28 return absl::AbortedError(
"Failed to load ROM.");
32 auto room_or = dungeon_editor.
GetRoom(room_id);
34 return room_or.status();
38 std::cout <<
"Room ID: " << room_id << std::endl;
39 std::cout <<
"Blockset: " << (int)room.
blockset << std::endl;
40 std::cout <<
"Spriteset: " << (int)room.
spriteset << std::endl;
41 std::cout <<
"Palette: " << (int)room.
palette << std::endl;
42 std::cout <<
"Layout: " << (int)room.
layout << std::endl;
44 return absl::OkStatus();
50 if (arg_vec.size() < 1) {
51 return absl::InvalidArgumentError(
"Usage: dungeon list-objects <room_id>");
54 int room_id = std::stoi(arg_vec[0]);
55 std::string rom_file = absl::GetFlag(FLAGS_rom);
56 if (rom_file.empty()) {
57 return absl::InvalidArgumentError(
"ROM file must be provided via --rom flag.");
63 return absl::AbortedError(
"Failed to load ROM.");
67 auto room_or = dungeon_editor.
GetRoom(room_id);
69 return room_or.status();
74 std::cout <<
"Objects in Room " << room_id <<
":" << std::endl;
76 std::cout << absl::StrFormat(
" - ID: 0x%04X, Pos: (%d, %d), Size: 0x%02X, Layer: %d\n",
77 obj.id_, obj.x_, obj.y_, obj.size_, obj.layer_);
80 return absl::OkStatus();