20 if (this->
t ==
nullptr) {
34 case 0x41:
return this->
t->
index.base();
39 uint32_t grfid =
static_cast<uint32_t
>(this->
ro.
GetRegister(0x100));
40 if (grfid == 0xFFFFFFFF) {
41 if (this->
ro.
grffile ==
nullptr)
return 0;
45 for (
auto &it : this->
t->psa_list) {
46 if (it->grfid == grfid)
return it->GetValue(parameter);
53 case 0x80:
return this->
t->
xy.base();
54 case 0x81:
return GB(this->
t->
xy.base(), 8, 8);
58 case 0x92:
return this->
t->
flags;
70 case 0x9E:
return this->
t->
ratings[0];
71 case 0x9F:
return GB(this->
t->
ratings[0], 8, 8);
72 case 0xA0:
return this->
t->
ratings[1];
73 case 0xA1:
return GB(this->
t->
ratings[1], 8, 8);
74 case 0xA2:
return this->
t->
ratings[2];
75 case 0xA3:
return GB(this->
t->
ratings[2], 8, 8);
76 case 0xA4:
return this->
t->
ratings[3];
77 case 0xA5:
return GB(this->
t->
ratings[3], 8, 8);
78 case 0xA6:
return this->
t->
ratings[4];
79 case 0xA7:
return GB(this->
t->
ratings[4], 8, 8);
80 case 0xA8:
return this->
t->
ratings[5];
81 case 0xA9:
return GB(this->
t->
ratings[5], 8, 8);
82 case 0xAA:
return this->
t->
ratings[6];
83 case 0xAB:
return GB(this->
t->
ratings[6], 8, 8);
84 case 0xAC:
return this->
t->
ratings[7];
85 case 0xAD:
return GB(this->
t->
ratings[7], 8, 8);
92 case 0xBC: cargo_type = GetCargoTypeByLabel(CT_MAIL);
return IsValidCargoType(cargo_type) ? ClampTo<uint16_t>(this->
t->
supplied[cargo_type].new_max) : 0;
93 case 0xBD: cargo_type = GetCargoTypeByLabel(CT_MAIL);
return IsValidCargoType(cargo_type) ?
GB(ClampTo<uint16_t>(this->
t->
supplied[cargo_type].new_max), 8, 8) : 0;
96 case 0xC0: cargo_type = GetCargoTypeByLabel(CT_MAIL);
return IsValidCargoType(cargo_type) ? ClampTo<uint16_t>(this->
t->
supplied[cargo_type].new_act) : 0;
97 case 0xC1: cargo_type = GetCargoTypeByLabel(CT_MAIL);
return IsValidCargoType(cargo_type) ?
GB(ClampTo<uint16_t>(this->
t->
supplied[cargo_type].new_act), 8, 8) : 0;
100 case 0xC4: cargo_type = GetCargoTypeByLabel(CT_MAIL);
return IsValidCargoType(cargo_type) ? ClampTo<uint16_t>(this->
t->
supplied[cargo_type].old_max) : 0;
101 case 0xC5: cargo_type = GetCargoTypeByLabel(CT_MAIL);
return IsValidCargoType(cargo_type) ?
GB(ClampTo<uint16_t>(this->
t->
supplied[cargo_type].old_max), 8, 8) : 0;
104 case 0xC8: cargo_type = GetCargoTypeByLabel(CT_MAIL);
return IsValidCargoType(cargo_type) ? ClampTo<uint16_t>(this->
t->
supplied[cargo_type].old_act) : 0;
105 case 0xC9: cargo_type = GetCargoTypeByLabel(CT_MAIL);
return IsValidCargoType(cargo_type) ?
GB(ClampTo<uint16_t>(this->
t->
supplied[cargo_type].old_act), 8, 8) : 0;
106 case 0xCA:
return this->
t->GetPercentTransported(GetCargoTypeByLabel(
CT_PASSENGERS));
107 case 0xCB:
return this->
t->GetPercentTransported(GetCargoTypeByLabel(CT_MAIL));
120 Debug(grf, 1,
"Unhandled town variable 0x{:X}", variable);