Skip to content

Ready for UI/UX. (Confugure test_paths.txt, run real_game_test.py to see features)

Choose a tag to compare

@DnfJeff DnfJeff released this 05 Feb 00:09
· 208 commits to main since this release

This new test that demonstrates functionality, has some tests for saving data/importing.

IT DID NOT BREAK MY GAME INSTALL, BUT IM NOT RESPONSIBLE FOR WHAT YOU DO

the test results should look something like this

╔════════════════════════════════════════════════════════════╗
║ SIMOBLITERATOR - REAL GAME FILE TESTS ║
║ 2026-02-04 17:45:13 ║
╚════════════════════════════════════════════════════════════╝
Configured Paths:
✓ game_install: G:\SteamLibrary\steamapps\common\The Sims Legacy Collection
✓ user_data: C:\Users*\Saved Games\Electronic Arts\The Sims 25
✓ broken_save: C:\Users*
\Desktop\File Compare\ReChanged\User00088.iff
✓ good_save: C:\Users*\Desktop\File Compare\Works\User00088.iff
✓ gamedata_dir: G:\SteamLibrary\steamapps\common\The Sims Legacy Collection\GameData
✓ houses_dir: C:\Users*
\Saved Games\Electronic Arts\The Sims 25\UserData\Houses

════════════════════════════════════════════════════════════
CAPABILITIES
════════════════════════════════════════════════════════════

Using object: CarPortal.iff
Extracted 38 strings from 4 STR# chunks
Sample: At School
✅ Extract all strings from object (3.9ms)
✅ List pie menu interactions (TTAB) (2.8ms)
Disassembled BHAV 0x1003 (2 instructions)
[ 0] Sleep: T→2 F→0
[ 1] Unknown: T→46 F→1
✅ Disassemble BHAV to readable form (3.8ms)
Call graph: 47 nodes, 6 edges
✅ Build BHAV call graph (5.2ms)
Variable analysis for BHAV 0x1016:
Locals declared: 2
Params declared: 0
Variables tracked: 2
✅ Analyze variable usage (3.8ms)
✅ Parse SLOT positioning data (19.3ms)
├─ Parse real SLOT: 0 slots from CarPortal.iff
├─ Chair template: 2 slots (sitting + routing)
├─ Counter template: 1 slots (front approach)
├─ Editor ops: add→dup→remove = 2 slots
├─ Query ops: 1 sitting, 1 standing
├─ XML round-trip: 2 → XML → 2 slots
│ Position: ✓ Type: ✓ Flags: ✓
├─ File I/O: wrote 473 bytes, read 2 slots
├─ Binary: 2 slots → 74 bytes → 2 slots
├─ Metadata: type=Sitting, flags=['Face Object', 'Sitting Slot']
└─ SLOT capabilities: 22/22 checks passed

XML Sample:
  <SLOT version="4" chunk_id="0x0000">
    <Slot index="0" type="Sitting" type_id="2">
      <Position x="0.0000" y="0.0000" z="0.4000" facing="0.0000"/>
      <Flags value="0x0A" decoded="FACE_OBJECT,SITTING_SLOT"/>
      <HeightOffset>0.4000</HeightOffset>
    </Slot>
    <Slot index="1" type="Standing" type_id="1">
      <Position x="0.5000" y="0.0000" z="0.0000" facing="3.1416"/>
      <Flags value="0x10" decoded="ROUTING_SLOT"/>

✅ SLOT comprehensive (parse/edit/XML/binary) (8.2ms)
Object: CarPortal.iff
Chunk ID: 0x41A7
Type: 1
TTAB ID: 129
SLOT ID: 128
Catalog STR#: 2000
✅ Extract object info (0.3ms)
Scanned 1 files for ID conflicts
Total conflicts: 0
Errors: 0, Warnings: 0
✅ Scan for ID conflicts (2.7ms)
Terrain type by house number:
House 28: sand
House 40: snow
House 1: grass
House 99: cloud
✅ Lot terrain type detection (3.9ms)
Comparing saves:
Broken: 29 chunks
Good: 29 chunks
✅ Compare broken vs good saves (0.7ms)

════════════════════════════════════════════════════════════
TEST SUMMARY
════════════════════════════════════════════════════════════
Total: 11
Passed: 11 ✅
Failed: 0 ❌
Skipped: 0 ⏭️

By Category:
capabilities: 11/11
PS S:\Repositorys_New\SimObliterator_Suite\dev> python real_game_tests.py
╔════════════════════════════════════════════════════════════╗
║ SIMOBLITERATOR - REAL GAME FILE TESTS ║
║ 2026-02-04 17:45:18 ║
╚════════════════════════════════════════════════════════════╝

════════════════════════════════════════════════════════════
TEST SUMMARY
════════════════════════════════════════════════════════════
Total: 73
Passed: 73 ✅
Failed: 0 ❌
Skipped: 0 ⏭️

By Category:
bhav: 7/7
bhav_mut: 2/2
capabilities: 11/11
cc_folder: 5/5
core: 4/4
export: 2/2
far_deep: 1/1
forensic: 2/2
formats: 5/5
graph: 2/2
lots: 4/4
objects: 4/4
paths: 7/7
save_edit: 9/9
saves: 3/3
strings: 3/3
world_mut: 2/2