mirror of
https://github.com/electronicarts/CNC_TS_and_RA2_Mission_Editor.git
synced 2025-05-08 04:31:42 -04:00
#11, fixed overlay decoding again .
This commit is contained in:
parent
d206226c9f
commit
9cddabbb3a
1 changed files with 4 additions and 4 deletions
8
3rdParty/xcc/misc/shp_decode.cpp
vendored
8
3rdParty/xcc/misc/shp_decode.cpp
vendored
|
@ -323,7 +323,7 @@ int decode80(const byte source[], byte dest[])
|
|||
op_code = *source_ptr++;
|
||||
if (!(op_code & 0x80)) {
|
||||
count = (op_code >> 4) + 3;
|
||||
copy_ptr = dest_ptr - ((uint64_t)*source_ptr++ + (((uint64_t)op_code & 0x0f) << 8));
|
||||
copy_ptr = dest_ptr - ((uint64_t)*source_ptr++ + ((uint64_t)(op_code & 0x0f) << 8));
|
||||
while (count--) *dest_ptr++ = *copy_ptr++;
|
||||
} else {
|
||||
if (!(op_code & 0x40)) {
|
||||
|
@ -339,17 +339,17 @@ int decode80(const byte source[], byte dest[])
|
|||
word_data = data = *(source_ptr + 2);
|
||||
word_data = (word_data << 56) + (word_data << 48) + (word_data << 40) + (word_data << 32) + (word_data << 24) + (word_data << 16) + (word_data << 8) + word_data;
|
||||
source_ptr += 3;
|
||||
copy_ptr = dest_ptr + 8 - ((uint64_t)dest_ptr & 0x7);
|
||||
copy_ptr = dest_ptr + 4 - ((uint64_t)dest_ptr & 0x3);
|
||||
count -= (copy_ptr - dest_ptr);
|
||||
while (dest_ptr < copy_ptr) *dest_ptr++ = data;
|
||||
word_dest_ptr = (uint64_t*)dest_ptr;
|
||||
dest_ptr += (count & 0xfffffffffffffff8);
|
||||
dest_ptr += (count & 0xfffffffffffffffc);
|
||||
while (word_dest_ptr < (uint64_t*)dest_ptr) {
|
||||
*word_dest_ptr = word_data;
|
||||
*(word_dest_ptr + 1) = word_data;
|
||||
word_dest_ptr += 2;
|
||||
}
|
||||
copy_ptr = dest_ptr + (count & 0x7);
|
||||
copy_ptr = dest_ptr + (count & 0x3);
|
||||
while (dest_ptr < copy_ptr) *dest_ptr++ = data;
|
||||
} else {
|
||||
if (op_code == 0xff) {
|
||||
|
|
Loading…
Add table
Reference in a new issue