- Fixed the pathfinding issue for LSL5 room 640, where Patti walks off-screen (we still need a proper way of detecting this, though...)
- Made warnings where invalid pointers are dereferenced more precise svn-id: r45257
This commit is contained in:
parent
c0f6657797
commit
a88aa2f45f
3 changed files with 23 additions and 18 deletions
|
@ -877,7 +877,7 @@ SegmentRef SegManager::dereference(reg_t pointer) {
|
|||
|
||||
if (!pointer.segment || (pointer.segment >= _heap.size()) || !_heap[pointer.segment]) {
|
||||
// This occurs in KQ5CD when interacting with certain objects
|
||||
warning("Attempt to dereference invalid pointer %04x:%04x", PRINT_REG(pointer));
|
||||
warning("SegManager::dereference(): Attempt to dereference invalid pointer %04x:%04x", PRINT_REG(pointer));
|
||||
return ret; /* Invalid */
|
||||
}
|
||||
|
||||
|
@ -1158,12 +1158,11 @@ size_t SegManager::strlen(reg_t str) {
|
|||
}
|
||||
|
||||
|
||||
Common::String SegManager::getString(reg_t pointer, int entries)
|
||||
{
|
||||
Common::String SegManager::getString(reg_t pointer, int entries) {
|
||||
Common::String ret;
|
||||
SegmentRef src_r = dereference(pointer);
|
||||
if (!src_r.isValid()) {
|
||||
warning("Attempt to dereference invalid pointer %04x:%04x", PRINT_REG(pointer));
|
||||
warning("SegManager::getString(): Attempt to dereference invalid pointer %04x:%04x", PRINT_REG(pointer));
|
||||
return ret;
|
||||
}
|
||||
if (entries > src_r.maxSize) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue