Opened 12 days ago

Closed 12 days ago

#16766 closed defect (fixed)

NANCY9: Assertion (idx < _size) in array.h when giving male crab to Holt

Reported by: jarodhoekstra-bot Owned by: Filippos Karapetis <bluegr@…>
Priority: normal Component: Engine: Nancy
Version: Keywords:
Cc: Game: Nancy Drew: Danger on Deception Island

Description

Game: Nancy Drew: Danger on Deception Island (nancy9) - Windows/English version

ScummVM Version: 2026.2.1git (daily build from May 6, 2026)

Reproduction Steps:

  1. Load save right before talking to Holt Scotto at the Hot Kettle.
  2. Give him the male Dungeness crab.
  3. The game crashes during/after the dialogue hand-in.

Crash Details:
Assertion failed: (idx < _size), function operator[], file array.h, line 275.

It happens right after loading KET_HSM42_HAND.avf and processing the dialogue.

This occurs in both the stable 2026.2.0 release and the latest daily build.

Attachments:

  • Savegame right before the scene (please attach it)
  • Full terminal log with --debuglevel=9 (I can provide if needed)

The Nancy9 engine is very new, so this is likely a recent regression in dialogue or animation handling.

Attachments (2)

BADCRABBY.SAV (112.8 KB ) - added by tunnelsociety 12 days ago.
nancy9-1.019 (19.8 KB ) - added by tunnelsociety 12 days ago.

Download all attachments as: .zip

Change History (5)

comment:1 by tunnelsociety, 12 days ago

Not seeing either attachment. (what is "(please attach it)"?)
I think I'm at that point in DDI too so I'll try to attach one asap if I can reproduce it too!

comment:2 by tunnelsociety, 12 days ago

Yep, reproduced (with a female crab >:) )

I reproduce it all the way back to a commit from Dec 2025, long before DDI was marked for testing, so I would not say it is a regression. That said, I guess Nancy9 should not be marked as ready for release as long as this issue is open.

#4  0x0000555556ecea8f in Common::Array<short>::operator[] (this=0x5040001cab18, idx=29) at ./common/array.h:275
No locals.
#5  0x0000555557069357 in Nancy::Action::SetValueCombo::execute (this=0x50f0000151c0) at engines/nancy/action/datarecords.cpp:179
        valueToAdd = 0
        i = 0
        playerTable = 0x5040001cab10
        numSingleValues = 30
#6  0x0000555556f858bb in Nancy::Action::ActionManager::processActionRecords (this=0x52200006d548)
    at engines/nancy/action/actionmanager.cpp:261
        record = 0x50f0000151c0
        __range2 = @0x52200006d550: {_capacity = 8, _size = 5, _storage = 0x50600015ad00}
        __begin2 = 0x50600015ad10
        __end2 = 0x50600015ad28
        activeRecordsThisFrame = true
#7  0x0000555556ea02b1 in Nancy::State::Scene::run (this=0x52200006c100) at engines/nancy/state/scene.cpp:1085
        currentPlayTime = {_milliseconds = 4856197}
        deltaTime = {_milliseconds = 45}

by tunnelsociety, 12 days ago

Attachment: BADCRABBY.SAV added

by tunnelsociety, 12 days ago

Attachment: nancy9-1.019 added

comment:3 by Filippos Karapetis <bluegr@…>, 12 days ago

Owner: set to Filippos Karapetis <bluegr@…>
Resolution: fixed
Status: newclosed

In 1a3f9a14:

NANCY: Use getters to access single and combo player table values

There are cases where these values aren't set, so a default value
should be returned. Happens sometimes when returning a crab to Holt
Scotto in Nancy 9.

Fix #16766

Note: See TracTickets for help on using tickets.