strings_func.h
Go to the documentation of this file.00001
00002
00005 #ifndef STRINGS_FUNC_H
00006 #define STRINGS_FUNC_H
00007
00008 #include "strings_type.h"
00009
00010 char *InlineString(char *buf, StringID string);
00011 char *GetString(char *buffr, StringID string, const char *last);
00012 const char *GetStringPtr(StringID string);
00013
00014 void InjectDParam(uint amount);
00015
00016 static inline void SetDParamX(uint64 *s, uint n, uint64 v)
00017 {
00018 s[n] = v;
00019 }
00020
00021 static inline void SetDParam(uint n, uint64 v)
00022 {
00023 extern uint64 _decode_parameters[20];
00024
00025 assert(n < lengthof(_decode_parameters));
00026 _decode_parameters[n] = v;
00027 }
00028
00029 void SetDParamStr(uint n, const char *str);
00030
00031 static inline uint64 GetDParamX(const uint64 *s, uint n)
00032 {
00033 return s[n];
00034 }
00035
00036 static inline uint64 GetDParam(uint n)
00037 {
00038 extern uint64 _decode_parameters[20];
00039
00040 assert(n < lengthof(_decode_parameters));
00041 return _decode_parameters[n];
00042 }
00043
00044 static inline void CopyInDParam(int offs, const uint64 *src, int num)
00045 {
00046 extern uint64 _decode_parameters[20];
00047 memcpy(_decode_parameters + offs, src, sizeof(uint64) * (num));
00048 }
00049
00050 static inline void CopyOutDParam(uint64 *dst, int offs, int num)
00051 {
00052 extern uint64 _decode_parameters[20];
00053 memcpy(dst, _decode_parameters + offs, sizeof(uint64) * (num));
00054 }
00055
00056 extern DynamicLanguages _dynlang;
00057
00058 bool ReadLanguagePack(int index);
00059 void InitializeLanguagePacks();
00060
00061 int CDECL StringIDSorter(const void *a, const void *b);
00062
00064 struct StringIDCompare
00065 {
00066 bool operator()(StringID s1, StringID s2) const { return StringIDSorter(&s1, &s2) < 0; }
00067 };
00068
00069 void CheckForMissingGlyphsInLoadedLanguagePack();
00070
00071 #endif