equal
deleted
inserted
replaced
159 char *GetStringWithArgs(char *buffr, uint string, const int32 *argv) |
159 char *GetStringWithArgs(char *buffr, uint string, const int32 *argv) |
160 { |
160 { |
161 uint index = GB(string, 0, 11); |
161 uint index = GB(string, 0, 11); |
162 uint tab = GB(string, 11, 5); |
162 uint tab = GB(string, 11, 5); |
163 |
163 |
164 if (!(string & 0xFFFF)) { |
164 if (GB(string, 0, 16) == 0) error("!invalid string id 0 in GetString"); |
165 error("!invalid string id 0 in GetString"); |
|
166 } |
|
167 |
165 |
168 switch (tab) { |
166 switch (tab) { |
169 case 4: |
167 case 4: |
170 if (index >= 0xC0) |
168 if (index >= 0xC0) |
171 return GetSpecialTownNameString(buffr, index - 0xC0, GetInt32(&argv)); |
169 return GetSpecialTownNameString(buffr, index - 0xC0, GetInt32(&argv)); |
194 error( |
192 error( |
195 "!String 0x%X is invalid. " |
193 "!String 0x%X is invalid. " |
196 "Probably because an old version of the .lng file.\n", string |
194 "Probably because an old version of the .lng file.\n", string |
197 ); |
195 ); |
198 |
196 |
199 return FormatString(buffr, GetStringPtr(string&0xFFFF), argv, string >> 24); |
197 return FormatString(buffr, GetStringPtr(GB(string, 0, 16)), argv, GB(string, 24, 8)); |
200 } |
198 } |
201 |
199 |
202 char *GetString(char *buffr, StringID string) |
200 char *GetString(char *buffr, StringID string) |
203 { |
201 { |
204 return GetStringWithArgs(buffr, string, (int32*)_decode_parameters); |
202 return GetStringWithArgs(buffr, string, (int32*)_decode_parameters); |