No description
- Game Maker Language 73.3%
- C 12.2%
- C++ 7.9%
- Python 3.4%
- C# 1.7%
- Other 1.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| abbrev | ||
| ext | ||
| gml | ||
| installer | ||
| patch | ||
| recipes | ||
| sounds/Voices | ||
| tools | ||
| vendor | ||
| .gitignore | ||
| build.sh | ||
| README.md | ||
| run.sh | ||
Access Delicious 2
Screen-reader accessibility mod for Cook, Serve, Delicious! 2!! (Windows, Steam, v2.7 "SD Update").
A port of Access Delicious (the CSD3 mod, ../accessDelicious3): same approach, same speech (PRISM:
NVDA, JAWS, SAPI...), same keys wherever CSD2 allows.
How it works
Same as the CSD3 mod: data.win is GameMaker bytecode, patched with UndertaleModCli.
gml/gml_Object_obj_csd2a_*.gml: the controller's events (created fromO_initvars, persistent).gml/lib/*.gml: all mod functions, as methods on the controller, concatenated alphabetically into Create. Create-time statements may only use things from files that sort before them (so the fallback's silent-object list lives infallback.gml).patch/patch.csx: imports the mod, creates the controller, runs mod hotkeys first inO_foodbrainBegin Step, keeps the controller alive acrossinstance_deactivate_all(pause menu, day end), and routes everydraw_text*through the controller (text capture, now with opacity: CSD2 menus mark the focused row by drawing it opaque and the rest dimmed).ext/accessdelicious.c: the DLL, unchanged from the CSD3 mod (exports still namedcsd3a_*, env varsCSD3A_QUIET/CSD3A_PORT).vendor/accessdelicious-dev.dllis the CSD3 build of it (control server on 127.0.0.1:47700 always on).abbrev/,recipes/: generators, as in CSD3, run against CSD2's decompiled scripts inre/.
Modules
| file | covers |
|---|---|
| orders.gml | tickets (O_foodbar): 14 prep stations keyed 1..9, 0, -, =, [, ] (global.KEY_PS<n>, spoken as "minus", "left bracket"...), chores, drinks, desserts, holding-station required/optional, leaving/walked out/patience restored, burnt, "needs a holding station" when the key only shakes the ticket |
| holding.gml | holding stations (O_holdingstationbar, empty ones are O_holdingstationreserve), same lifecycle as CSD3; Shift+B overview |
| cook.gml | the recipe pane, as CSD3; holding-station prep pane by category (Space); ignored keys while a pane is open; cancelled holding-station panes |
| day.gml | clock, begin/finish/rush hour banners, Shift+D, Shift+M |
| dayend.gml | the results panel (labels are icons in the game): Up/Down list |
| splash.gml | O_splashstartend: bonus objectives (your restaurant), Chef for Hire start and medal cards |
| mainmenu.gml | O_mainmenu: sidebar, tips, save slots, chefs, tutorials, intro story, email, Teragon Tower |
| catalog.gml | O_itemcatalogdisplay: food catalog, day setup, mode, equipment, Chef for Hire shifts, pantry, buzz |
| options.gml | options pages, display-change countdown, key rebinding menu |
| pause.gml | in-day pause menu |
| designer.gml | restaurant designer (basic), unlock popups |
| buffers.gml | Left/Right: Holding Stations / Orders buffers; Up/Down: items |
| fallback.gml | reads any other drawn text (title, tutorials, popups) |
Keys (mod)
- Shift+F1..F8 holding station status (the game opens stations with Tab+1..8)
- Shift+order key (Shift+1..9, 0, -, =, [, ]) one order in detail, with seconds of patience left
- Shift+O orders grouped by food and state · Shift+I order keys by patience, with seconds left
- Shift+B all holding stations · Shift+D time, rush hour, buzz, patience, tips (in menus: YUM level, money, unread email)
- Shift+R / K / W re-read the pane / its keys / what the order wants (twice: what's left)
- Shift+M today's results and the medal rules · Shift+H help for this screen
- Alt+K keys read when a pane opens · Alt+V order-number voice (or off) · Alt+Page Up/Down its volume
- Shift+Page Up/Down speech rate (SAPI only; CSD3's Shift+= / Shift+- are order keys here)
- Left Ctrl stop speech
- During a day: Left/Right switch buffers, Up/Down move. Results panel: Up/Down walk the results.
- Order-number sounds:
sounds/Voices/<voice>/<station>.ogg; the CSD3 voices stop at 7, so stations 8-14 are spoken instead until files are added.
Build, deploy, run (Windows, Git Bash)
./build.sh # patch backup/data.win.orig into dist/ (UndertaleModCli at ~/tools/utmt)
./build.sh deploy # also copy into the game folder (keeps data.win.orig there)
./build.sh restore # put the original data.win back
./run.sh --quiet # launch with speech only logged (tests)
tools/ctl.py state # control channel (see the CSD3 README); tools/t.sh sends keys, prints new speech
- Log:
<game folder>/accessdelicious.log. Decompiled code:re/win_gml/CodeEntries(local only). - Test notes: injected keys need the game window focused; injected arrow keys don't register in this runner (use W/A/S/D in menus), real ones do.
- The CSD2 save folder is
%LOCALAPPDATA%\NEW_CSD2_PS4Steam(slotsnS_CSD2_LocalSave.ini).
Not done yet
- Release packaging:
installer/is still the CSD3 installer and needs mingw + xdelta3 to build for CSD2; a release DLL (-DCSD3A_RELEASE) needs mingw too. - Not heard live yet: Up/Down on the results panel (arrow injection), emails, co-op page, equipment purchase, designer object placement, drinks and side dishes in play.