mirror of
https://github.com/aimrebirth/tools.git
synced 2026-04-15 01:43:25 +00:00
Update unpaker2.
This commit is contained in:
parent
ca9427b409
commit
e0343576b7
1 changed files with 20 additions and 12 deletions
|
|
@ -117,23 +117,31 @@ void unpack_file(path fn) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case segment::decode_algorithm::rlew: {
|
case segment::decode_algorithm::rlew: {
|
||||||
s.p -= 4;
|
auto finalLength = len;
|
||||||
uint16_t finalLength = s;
|
//uint16_t flag = 0xfefe;
|
||||||
|
//uint8_t flag = 0xfe;
|
||||||
|
uint16_t flag = s;
|
||||||
|
flag <<= 8;
|
||||||
|
flag |= 0xfe;
|
||||||
uint32_t outlen = 0;
|
uint32_t outlen = 0;
|
||||||
while (outlen < finalLength) {
|
while (outlen < finalLength) {
|
||||||
uint16_t w = s;
|
if (pp-bbb.data() == 0x1cc38) {
|
||||||
if (w == 0xfefe) {
|
int a = 5;
|
||||||
uint16_t w1 = s;
|
a++;
|
||||||
uint16_t w2 = s;
|
}
|
||||||
|
decltype(flag) w = s;
|
||||||
|
if (w == flag) {
|
||||||
|
decltype(flag) w1 = s;
|
||||||
|
decltype(flag) w2 = s;
|
||||||
while (w1--) {
|
while (w1--) {
|
||||||
*(uint16_t *)pp = w2;
|
*(decltype(flag) *)pp = w2;
|
||||||
pp += 2;
|
pp += sizeof(flag);
|
||||||
outlen += 2;
|
outlen += sizeof(flag);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
*(uint16_t*)pp = w;
|
*(decltype(flag)*)pp = w;
|
||||||
pp += 2;
|
pp += sizeof(flag);
|
||||||
outlen += 2;
|
outlen += sizeof(flag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue