Files
YourWishes 4b0388a0e1 Chunk streaming concurrency, entity slot fix, and map-data-driven spawns
- Allow 2 chunks to be mid-load concurrently instead of 1 (MAP_CHUNK_LOAD_CONCURRENCY).
- Fix entitySetChunk silently losing track of an entity when its target chunk's
  entity slots are full - it now stays detached (and retries later) instead of
  claiming a chunk that never actually registered it.
- DCF format bumped to v5: chunks can now declare entity spawns (global/NPC via
  the existing entityglobal registry, or one-shot item pickups) and map area
  triggers, resolved via a new callback-ID registry (mapareagloballist.h)
  mirroring the entity one. rpg.c's hardcoded TEST entity/item/area spawns are
  gone - chunk_0_0_0.json now carries that data instead. The player is still
  bootstrapped in code since it isn't map-authored content.
2026-08-04 07:37:48 -05:00

2205 lines
25 KiB
JSON

{
"tiles": [
{
"pos": [
0,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
12,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
13,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
0,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
12,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
13,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
1,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
12,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
13,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
2,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
12,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
13,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
3,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
12,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
13,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
4,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
5,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
5,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
5,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
5,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
5,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
5,
0
],
"type": 6,
"tile": 0
},
{
"pos": [
6,
5,
0
],
"type": 2,
"tile": 0
},
{
"pos": [
7,
5,
0
],
"type": 2,
"tile": 0
},
{
"pos": [
8,
5,
0
],
"type": 2,
"tile": 0
},
{
"pos": [
9,
5,
0
],
"type": 2,
"tile": 0
},
{
"pos": [
10,
5,
0
],
"type": 2,
"tile": 0
},
{
"pos": [
11,
5,
0
],
"type": 2,
"tile": 0
},
{
"pos": [
12,
5,
0
],
"type": 7,
"tile": 0
},
{
"pos": [
13,
5,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
5,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
5,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
6,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
6,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
6,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
6,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
6,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
6,
0
],
"type": 3,
"tile": 0
},
{
"pos": [
12,
6,
0
],
"type": 5,
"tile": 0
},
{
"pos": [
13,
6,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
6,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
6,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
7,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
7,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
7,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
7,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
7,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
7,
0
],
"type": 3,
"tile": 0
},
{
"pos": [
12,
7,
0
],
"type": 5,
"tile": 0
},
{
"pos": [
13,
7,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
7,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
7,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
8,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
8,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
8,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
8,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
8,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
8,
0
],
"type": 3,
"tile": 0
},
{
"pos": [
12,
8,
0
],
"type": 5,
"tile": 0
},
{
"pos": [
13,
8,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
8,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
8,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
9,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
9,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
9,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
9,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
9,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
9,
0
],
"type": 8,
"tile": 0
},
{
"pos": [
6,
9,
0
],
"type": 4,
"tile": 0
},
{
"pos": [
7,
9,
0
],
"type": 4,
"tile": 0
},
{
"pos": [
8,
9,
0
],
"type": 4,
"tile": 0
},
{
"pos": [
9,
9,
0
],
"type": 12,
"tile": 0
},
{
"pos": [
12,
9,
0
],
"type": 5,
"tile": 0
},
{
"pos": [
13,
9,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
9,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
9,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
10,
0
],
"type": 3,
"tile": 0
},
{
"pos": [
12,
10,
0
],
"type": 5,
"tile": 0
},
{
"pos": [
13,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
10,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
11,
0
],
"type": 3,
"tile": 0
},
{
"pos": [
12,
11,
0
],
"type": 5,
"tile": 0
},
{
"pos": [
13,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
11,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
12,
0
],
"type": 8,
"tile": 0
},
{
"pos": [
10,
12,
0
],
"type": 4,
"tile": 0
},
{
"pos": [
11,
12,
0
],
"type": 4,
"tile": 0
},
{
"pos": [
12,
12,
0
],
"type": 9,
"tile": 0
},
{
"pos": [
13,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
12,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
12,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
13,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
13,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
12,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
13,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
14,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
0,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
1,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
2,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
3,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
4,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
5,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
12,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
13,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
14,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
15,
15,
0
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
6,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
6,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
6,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
6,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
6,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
6,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
7,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
7,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
7,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
7,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
7,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
7,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
6,
8,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
7,
8,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
8,
8,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
9,
8,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
8,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
8,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
9,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
9,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
10,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
10,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
10,
11,
1
],
"type": 1,
"tile": 0
},
{
"pos": [
11,
11,
1
],
"type": 1,
"tile": 0
}
],
"meshes": [
{
"file": "house_5_3.dmf",
"pos": [
1,
1,
0
]
}
],
"entities": [
{
"type": "global",
"globalId": 3,
"pos": [8, 8, 1]
},
{
"type": "item",
"itemId": 1,
"quantity": 1,
"pos": [12, 2, 0]
}
],
"areas": [
{
"min": [11, 3, 0],
"max": [16, 9, 10],
"callbackId": 1,
"notify": 3,
"trigger": 6
}
]
}