Files
max bittkerandClaude Opus 5.5 8601955cfb Upgrade LostCity from revision 274 to 289
Rebases the vendored engine, content and webclient onto upstream's 289
branches (34 engine, 165 content, 9 webclient commits past our 274 base).
Each vendor-289 branch in ../repos is upstream 289 plus one squashed
"rs-sdk local mods" commit, refreshed from this tree first.

289 adaptations:
- Protocol: 289 reshuffles every opcode. Custom MESSAGE_PUBLIC (server 255)
  and MARKET_SEARCH (client 243) are still free and kept.
- Lite client: CLIENT_VERSION 289, UPDATE_INV_FULL size g1->g2 and
  UPDATE_INV_PARTIAL slot g1->gsmart, mirroring Client.ts.
- Content ids: upstream appended configs where ours lived. GE interface
  moves 10984->11942 (through 12437), grand_exchange_booth 4671->5116,
  grand_exchange_teller 1359->1596 (m49_53.jm2 updated), pvp_death_mark
  varp 358->394. PlayerLoading moves a saved varp 358 value to
  pvp_death_mark (289's varp 358 is temp-scoped, so only pre-289 saves
  carry it).
- GE loc/npc configs use 289's renamed model debugnames.
- Engine: keep our Bun web split over upstream's new Fastify web.ts (no
  fastify/tsx deps), add OnDemand.onClientClosed to our WS close handler,
  keep our WSClientSocket API/batching and the 1s delayed close (TCP too).
  Adopt upstream's HashTable iterator fix, IPv6 player-loop key (with our
  NaN guard), chat effects 0-5, pointer-check removal.
- Razmire building store keeps our 650 sell price with upstream's 4% haggle.
- Tests: opcode assertions use ClientProt enums; hand-built inv packets
  use the 289 layout.

PATCHES.md documents the new per-upgrade steps (custom id renumbering,
lite decoder parity, opcode collision check).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:53:05 -04:00

182 lines
2.7 KiB
Plaintext

[newbie_door1]
name=Door
desc=A nicely fitted door.
model=basic_wall
active=yes
op1=Open
retex1s=wall
retex1d=door2
recol2s=6342
recol2d=11458
param=next_loc_stage,loc_1535
[newbiegateclosedl2]
name=Gate
desc=A wooden gate.
model=fence_gateclosedl
active=yes
op1=Open
category=tutorial_gate
[newbiegateclosedr2]
name=Gate
desc=A wooden gate.
model=fence_gateclosedl
active=yes
mirror=yes
op1=Open
category=tutorial_gate
[newbie_door2]
name=Door
desc=A nicely fitted door.
model=basic_wall
active=yes
op1=Open
retex1s=wall
retex1d=door2
recol2s=6342
recol2d=11458
param=next_loc_stage,loc_1535
[newbie_door3]
name=Door
desc=A nicely fitted door.
model=basic_wall
active=yes
op1=Open
retex1s=wall
retex1d=door2
recol2s=6342
recol2d=11458
param=next_loc_stage,loc_1535
[newbie_door4]
name=Door
desc=A nicely fitted door.
model=basic_wall
active=yes
op1=Open
retex1s=wall
retex1d=door2
recol2s=6342
recol2d=11458
param=next_loc_stage,loc_1535
[newbiedoor4l]
name=Gate
desc=A wrought iron gate.
model=outdoorfurniture_metalgateclosedl
op1=Open
active=yes
blockrange=no
category=tut_mining_exit
[newbiedoor4r]
name=Gate
desc=A wrought iron gate.
model=outdoorfurniture_metalgateclosedl
op1=Open
mirror=yes
active=yes
blockrange=no
category=tut_mining_exit
[newbiedoor5_l]
name=Gate
desc=A wrought iron gate.
model=outdoorfurniture_metalgateclosedl
op1=Open
active=yes
blockrange=no
category=rat_pit_cage
[newbiedoor5_r]
name=Gate
desc=A wrought iron gate.
model=outdoorfurniture_metalgateclosedl
op1=Open
mirror=yes
active=yes
blockrange=no
category=rat_pit_cage
[newbie_door6]
name=Door
desc=A closed door.
model=basic_wall
active=yes
op1=Open
retex1s=wall
retex1d=door2
recol2s=6342
recol2d=11458
param=next_loc_stage,loc_1535
[newbie_door7]
name=Door
desc=A closed door.
model=basic_wall
active=yes
op1=Open
retex1s=wall
retex1d=door2
recol2s=6342
recol2d=11458
param=next_loc_stage,loc_1535
[newbie_door8]
name=Door
desc=A closed door.
model=basic_wall
active=yes
op1=Open
retex1s=wall
retex1d=door2
recol2s=6342
recol2d=11458
param=next_loc_stage,loc_1535
[newbietree]
name=Tree
desc=One of the most common trees in RuneScape.
model=plants_tree
width=2
length=2
mapscene=0
op1=Chop down
op3=hidden
param=next_loc_stage,treestump2
[newbietree2]
name=Tree
desc=One of the most common trees in RuneScape.
model=plants_tree2
width=2
length=2
mapscene=0
op1=Chop down
op3=hidden
param=next_loc_stage,treestump2
[newbiedeadtree2]
name=Tree
desc=One of the most common trees in RuneScape.
model=plants_deadtree2
width=2
length=2
mapscene=6
op1=Chop down
op3=hidden
param=next_loc_stage,deadtree1_stump
[newbieoaktree]
name=Oak
desc=A beautiful old oak.
model=plants_oaktree
width=3
length=3
op1=Chop down
op3=hidden
mapscene=1