Skip to content

Commit 7330439

Browse files
committed
fix: mino position, do the same as upstream
it is stored internally as i8, but used and exposed as u8, at least in the recordings! see OpenBrickProtocolFoundation/oopetris#204
1 parent e2ee6f9 commit 7330439

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/c_wrapper/wrapper.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ static OOPetrisTetrionRecord record_to_c(const recorder::Record& record) {
373373
}
374374

375375
static OOPetrisMino mino_to_c(const Mino& mino) {
376-
auto orig_pos = mino.position();
376+
auto orig_pos = mino.position().cast<uint8_t>();
377377

378378
auto position = OOPetrisMinoPosition{ .x = orig_pos.x, .y = orig_pos.y };
379379

@@ -963,7 +963,8 @@ char* oopetris_write_to_file(OOPetrisRecordingInformation* information, const ch
963963

964964
for (std::size_t j = 0; j < stbds_arrlenu(snapshot.mino_stack); ++j) {
965965
const auto mino = snapshot.mino_stack[j];
966-
mino_stack.set({ mino.position.x, mino.position.y }, static_cast<helper::TetrominoType>(mino.type));
966+
const auto min_pos = shapes::AbstractPoint<u8>{ mino.position.x, mino.position.y };
967+
mino_stack.set(min_pos.cast<i8>(), static_cast<helper::TetrominoType>(mino.type));
967968
}
968969

969970
auto core_information = std::make_unique<TetrionCoreInformation>(

src/c_wrapper/wrapper.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ typedef struct {
147147
} OOPetrisTetrionRecord;
148148

149149
typedef struct {
150-
int8_t x;
151-
int8_t y;
150+
uint8_t x;
151+
uint8_t y;
152152
} OOPetrisMinoPosition;
153153

154154

0 commit comments

Comments
 (0)