Support Piklib 6.1/7.1: CMC_Scene::resolve factory + tag-based types
Earlier text-script engines (Piklib 6.1/7.1, added text scripts in 6.1) keep the type factory on CMC_Scene::resolve, not CMC_ObjectsContainer::resolve — so the extractor bailed with "resolve not found". find_factory() now tries both anchors. 6.1's factory is also tag-based: each branch is operator==(NAME) -> new(0x74) -> store tag -> jmp, with the ctor in a separate tag switch (no inline ctor). extract_types gains a pre-emit: when the next operator== arrives still armed, it records the pending type by name (size known, ctor/cpp_class not). The 8.x inline-ctor factory clears `armed` first, so it's untouched (golden pair unchanged). Per-version reality: 6.1 = 23 types / 0 methods (no prepareMthHashSet yet) / 103 events / 80 fields; 7.1 = 26 / 322 / 102 / 86 / 288 dispatch (full); type names line up across 6.1->7.1->8.x so version diffs work. - snapshots/PIKLib61 + PIKLIB71 added as golden fixtures (evolution chain) - tests/test_versions.py: 6.1 partial surface, 7.1 full, 61->71 diff -> 38/38 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
5906
snapshots/PIKLib61.dll.snapshot.json
Normal file
5906
snapshots/PIKLib61.dll.snapshot.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user