Skip to content

Conversation

@PeterN
Copy link
Owner

@PeterN PeterN commented Jan 11, 2025

Motivation / Problem

GRFv9

Description

  • ALL existing Extended Byte fields are now Word fields.
  • Action 0:
    • num-info is now a Word.
  • Action 2:
    • set-id is now a Word.
    • subroutine is now a Word.
    • parameter is now a DWord.
    • VariationalAction2 nvar is now a Word.
    • RandomAction2 nrand is now a Word.
  • Action 3:
    • n-id is now a Word.
    • ids... are each now a Word.
    • num-cid is now a Word.
    • cargo-type is now a Word.
  • Action 4:
    • num-ent is now a Word.
    • offset is now always a Word, instead of varying depending on feature/flags.
  • Action 7/9:
    • num-sprites is now a Word. If bit 15 is set, then this is a label instead of the number of sprites.
  • Action A:
    • num-sets is now a Word.
    • num-sprites is now a Word.
  • Action E:
    • num is now a Word.
  • Action 10:
    • label is now a Word. Labels MUST have bit 15 set. This means there is no longer any conflict with labels overlapping numbers.
  • Action 12:
    • num-def is now a Word.
    • num-char is now a Word.
    • base-char is now a DWord. This allows custom glyphs between 0x10000 and 0x1FFFFD to be defined.
  • Action 13:
    • num-ent is now a Word.

Limitations

Checklist for review

Some things are not automated, and forgotten often. This list is a reminder for the reviewers.

  • The bug fix is important enough to be backported? (label: 'backport requested')
  • This PR touches english.txt or translations? Check the guidelines
  • This PR affects the save game format? (label 'savegame upgrade')
  • This PR affects the GS/AI API? (label 'needs review: Script API')
    • ai_changelog.hpp, game_changelog.hpp need updating.
    • The compatibility wrappers (compat_*.nut) need updating.
  • This PR affects the NewGRF API? (label 'needs review: NewGRF')

@PeterN PeterN force-pushed the grfv9 branch 5 times, most recently from 4b334a3 to 27cf5b0 Compare January 12, 2025 11:16
rubidium42 and others added 20 commits January 13, 2025 23:13
GF_END is 'reserved' in some Windows APIs. Instead of working around it, make GroupFlags an enum class.
…penTTD#13319)

This allows range checks and loops to be slightly simplified.
danish: 68 changes by Lerura-DK
korean: 1 change by telk5093
portuguese: 1 change by azulcosta
During these loading stages the Action 8 is skipped, which would cause the default GRF version to be used instead of that required by the NewGRF.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants