Save and Reload Data Flow

Save and Reload Data Flow A data-flow diagram generated by Archify. 01 / Live state 02 / Writers 03 / Durable stores 04 / Loaders 05 / Next session World + Protos · edited in OLC · 01 / Live state World + Protos edited in OLC Characters · char_data, gear · 01 / Live state Characters char_data, gear OLC Writers · gen*.c · 02 / Writers OLC Writers gen*.c Player Saver · players.c · 02 / Writers Player Saver players.c SQL Writers · objsave, pets · 02 / Writers SQL Writers objsave, pets lib/world · zon, wld, mob, obj · 03 / Durable stores lib/world zon, wld, mob, obj lib/plrfiles · one per character · 03 / Durable stores lib/plrfiles one per character MariaDB · accounts, items · 03 / Durable stores · MariaDB MariaDB accounts, items index_boot() · db.c · 04 / Loaders index_boot() db.c Login Loaders · account + char · 04 / Loaders Login Loaders account + char Next Boot · boot_db() · 05 / Next session Next Boot boot_db() Next Login · nanny() · 05 / Next session Next Login nanny() zone edits .new + rename authored content zone files prototypes player state .plr file load_char() items, pets SQL rows account row password hash char_data Legend primary data policy / PII data store data flow

World content

  • • OLC writes .new, then renames
  • • index_boot() reloads at boot
  • • Regions and paths load from SQL

Player state

  • • .plr files hold character data
  • • Items, houses, pets live in SQL
  • • Accounts load before characters

Evidence

  • • genwld.c: save_rooms() at 497
  • • players.c: save_char_checked 2341
  • • objsave.c: player_save_objs 552