# Local JGRPP patches The `docker/OpenTTD-patches/` directory is an **untracked** clone of [JGRennison/OpenTTD-patches](https://github.com/JGRennison/OpenTTD-patches) checked out at tag `jgrpp-0.71.1`. The patches in this directory are the local modifications this project needs on top of that tag; they are the durable source of truth (the clone itself is not committed). Current patches: - `0001-Add-GameScript-API-timetable-getters-to-ScriptOrder.patch` — adds read-only timetable getters (`GetTimetableWaitTime`, `GetTimetableTravelTime`, `IsWaitTimetabled`, `IsTravelTimetabled`, `IsWaitFixed`, `IsTravelFixed`, `GetLeaveType`, `GetTimetableMaxSpeed`, `GetTimetableLateness`, `GetTimetableStartTick`, `GetCurrentOrderTime`, `GetTimetableTotalDuration`) to the `GSOrder` GameScript class. Required by the AdminBridge GameScript's `get_timetable` command and the Python client's `OpenTTDAdminClient.get_timetable()`. - `0002-Add-GameScript-API-scheduled-dispatch-getters-to-Scr.patch` — adds read-only scheduled dispatch getters (`GetScheduledDispatchScheduleCount`, `IsScheduledDispatchEnabled`, `GetScheduledDispatchDuration`, `GetScheduledDispatchStartTick`, `GetScheduledDispatchDelay`, `GetScheduledDispatchReuseSlots`, `GetScheduledDispatchSlotCount`, `GetScheduledDispatchSlotOffset`, `GetScheduledDispatchSlotFlags`) to the `GSOrder` GameScript class. Required by the AdminBridge GameScript's `get_dispatch` command and the Python client's `OpenTTDAdminClient.get_dispatch()`. ## Applying after a fresh clone ```bash git clone --branch jgrpp-0.71.1 https://github.com/JGRennison/OpenTTD-patches docker/OpenTTD-patches git -C docker/OpenTTD-patches am ../patches/*.patch ``` Then build the image as usual (`docker-compose up -d --build` from `docker/`). If the clone is updated past `jgrpp-0.71.1`, `git am` may conflict — the patches were generated against that tag and need rebasing in that case.