| 51 | } |
| 52 | |
| 53 | static inline void TranslateAlignMode(lua_State* L, int argnum, ResFont::FontAlignHorizontal& halign, ResFont::FontAlignVertical& valign) |
| 54 | { |
| 55 | int e = luaL_checkinteger(L, argnum); |
| 56 | switch (e & 0x03) // HGETEXT_HORZMASK |
| 57 | { |
| 58 | case 0: // HGETEXT_LEFT |
| 59 | halign = ResFont::FontAlignHorizontal::Left; |
| 60 | break; |
| 61 | case 1: // HGETEXT_CENTER |
| 62 | halign = ResFont::FontAlignHorizontal::Center; |
| 63 | break; |
| 64 | case 2: // HGETEXT_RIGHT |
| 65 | halign = ResFont::FontAlignHorizontal::Right; |
| 66 | break; |
| 67 | default: |
| 68 | luaL_error(L, "invalid align mode."); |
| 69 | return; |
| 70 | } |
| 71 | switch (e & 0x0C) // HGETEXT_VERTMASK |
| 72 | { |
| 73 | case 0: // HGETEXT_TOP |
| 74 | valign = ResFont::FontAlignVertical::Top; |
| 75 | break; |
| 76 | case 4: // HGETEXT_MIDDLE |
| 77 | valign = ResFont::FontAlignVertical::Middle; |
| 78 | break; |
| 79 | case 8: // HGETEXT_BOTTOM |
| 80 | valign = ResFont::FontAlignVertical::Bottom; |
| 81 | break; |
| 82 | default: |
| 83 | luaL_error(L, "invalid align mode."); |
| 84 | return; |
| 85 | } |
| 86 | } |
| 87 | |
| 88 | //////////////////////////////////////////////////////////////////////////////// |
| 89 | /// ColorWrapper |