diff --git a/src/hll/ChrLoader.c b/src/hll/ChrLoader.c index 0258878..75de88e 100644 --- a/src/hll/ChrLoader.c +++ b/src/hll/ChrLoader.c @@ -95,10 +95,7 @@ static uint8_t *chr_get(int id) free(data); data = NULL; } else { - struct mt19937 mt; - mt19937_init(&mt, 12753); - for (size_t i = 4; i < size; i++) - data[i] ^= mt19937_genrand(&mt); + mt19937_xorcode(data + 4, size - 4, 12753); slot->value = data; } free(path); diff --git a/src/hll/DataFile.c b/src/hll/DataFile.c index 31b6f8e..eb6a355 100644 --- a/src/hll/DataFile.c +++ b/src/hll/DataFile.c @@ -274,10 +274,7 @@ static int DataFile_Open(int link) uint8_t *compressed_data = xmalloc(compressed_size); buffer_read_bytes(&r, compressed_data, compressed_size); archive_free_data(dfile); - struct mt19937 mt; - mt19937_init(&mt, 4588163); - for (size_t i = 0; i < compressed_size; i++) - compressed_data[i] ^= mt19937_genrand(&mt); + mt19937_xorcode(compressed_data, compressed_size, 4588163); uint8_t *raw = xmalloc(uncompressed_size); int rv = uncompress(raw, &uncompressed_size, compressed_data, compressed_size); diff --git a/src/hll/MapLoader.c b/src/hll/MapLoader.c index cc988b5..7f66dca 100644 --- a/src/hll/MapLoader.c +++ b/src/hll/MapLoader.c @@ -95,10 +95,7 @@ static bool MapLoader_Load(int map_no) free(map_data); map_data = NULL; } else { - struct mt19937 mt; - mt19937_init(&mt, 12753); - for (size_t i = 4; i < map_size; i++) - map_data[i] ^= mt19937_genrand(&mt); + mt19937_xorcode(map_data + 4, map_size - 4, 12753); } free(path); return !!map_data; diff --git a/subprojects/libsys4 b/subprojects/libsys4 index 7ee34d6..c5d3cb9 160000 --- a/subprojects/libsys4 +++ b/subprojects/libsys4 @@ -1 +1 @@ -Subproject commit 7ee34d622bb4c40f1d2524115e1eb6a2c58943c5 +Subproject commit c5d3cb955e2595456d5833918e55987f9c91fc88