Rev 1 | Rev 11 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1 | Rev 10 | ||
|---|---|---|---|
| Line 104... | Line 104... | ||
| 104 | 104 | ||
| 105 | 105 | ||
| 106 | void Theme_Load (theme_t *theme, bool want_all) |
106 | void Theme_Load (theme_t *theme, bool want_all) |
| 107 | { |
107 | { |
| 108 | // this function loads a particular theme out of a theme subdirectory's files |
108 | // this function loads a particular theme out of a theme subdirectory's files |
| - | 109 | ||
| - | 110 | #define THEME_LOAD_MESH(varname,mesh_name) \ |
|
| - | 111 | { \ |
|
| - | 112 | theme->varname = Render_LoadMesh (L"themes/%s/models/" mesh_name L".*", theme->name); \ |
|
| - | 113 | if (theme->varname == -1) \ |
|
| - | 114 | MessageBox (NULL, LOCALIZE (L"Error_UnableToAddMeshD3DXLoadMeshFromXFailed"), LOCALIZE (L"FatalError"), MB_ICONERROR | MB_OK); \ |
|
| - | 115 | } |
|
| - | 116 | #define THEME_LOAD_PART(part_id,part_name) \ |
|
| - | 117 | { \ |
|
| - | 118 | theme->part_meshes[part_id] = -1; \ |
|
| - | 119 | if (options.want_hiquality) \ |
|
| - | 120 | theme->part_meshes[part_id] = Render_LoadMesh (L"themes/%s/models/" part_name L"-hidef.*", theme->name); \ |
|
| - | 121 | if (theme->part_meshes[part_id] == -1) \ |
|
| - | 122 | theme->part_meshes[part_id] = Render_LoadMesh (L"themes/%s/models/" part_name L".*", theme->name); \ |
|
| - | 123 | if (theme->part_meshes[part_id] == -1) \ |
|
| - | 124 | MessageBox (NULL, LOCALIZE (L"Error_UnableToAddMeshD3DXLoadMeshFromXFailed"), LOCALIZE (L"FatalError"), MB_ICONERROR | MB_OK); \ |
|
| - | 125 | } |
|
| 109 | 126 | ||
| 110 | struct _stat fileinfo; |
127 | struct _stat fileinfo; |
| 111 | char *desc_buffer; |
128 | char *desc_buffer; |
| 112 | wchar_t filename[256]; |
129 | wchar_t filename[256]; |
| 113 | wchar_t section_name[32]; |
130 | wchar_t section_name[32]; |
| Line 143... | Line 160... | ||
| 143 | Background_LoadImage (&theme->bg, filename); |
160 | Background_LoadImage (&theme->bg, filename); |
| 144 | } |
161 | } |
| 145 | 162 | ||
| 146 | // load board meshes |
163 | // load board meshes |
| 147 | if ((theme->load_index == 1) || (want_all && (theme->load_index < 2))) |
164 | if ((theme->load_index == 1) || (want_all && (theme->load_index < 2))) |
| 148 |
|
165 | THEME_LOAD_MESH (board_meshindex, L"board"); |
| 149 | if ((theme->load_index == 2) || (want_all && (theme->load_index < 3))) |
166 | if ((theme->load_index == 2) || (want_all && (theme->load_index < 3))) |
| 150 |
|
167 | THEME_LOAD_MESH (table_meshindex, L"table"); |
| 151 | if ((theme->load_index == 3) || (want_all && (theme->load_index < 4))) |
168 | if ((theme->load_index == 3) || (want_all && (theme->load_index < 4))) |
| 152 |
|
169 | THEME_LOAD_MESH (trim_meshindex, L"trim"); |
| 153 | if ((theme->load_index == 4) || (want_all && (theme->load_index < 5))) |
170 | if ((theme->load_index == 4) || (want_all && (theme->load_index < 5))) |
| 154 |
|
171 | THEME_LOAD_MESH (tile_meshindex, L"tile"); |
| 155 | 172 | ||
| 156 | // load part meshes |
173 | // load part meshes |
| 157 | if ((theme->load_index == 5) || (want_all && (theme->load_index < 6))) |
174 | if ((theme->load_index == 5) || (want_all && (theme->load_index < 6))) |
| 158 |
|
175 | THEME_LOAD_PART (PART_KING, L"king"); |
| 159 | if ((theme->load_index == 6) || (want_all && (theme->load_index < 7))) |
176 | if ((theme->load_index == 6) || (want_all && (theme->load_index < 7))) |
| 160 |
|
177 | THEME_LOAD_PART (PART_QUEEN, L"queen"); |
| 161 | if ((theme->load_index == 7) || (want_all && (theme->load_index < 8))) |
178 | if ((theme->load_index == 7) || (want_all && (theme->load_index < 8))) |
| 162 |
|
179 | THEME_LOAD_PART (PART_BISHOP, L"bishop"); |
| 163 | if ((theme->load_index == 8) || (want_all && (theme->load_index < 9))) |
180 | if ((theme->load_index == 8) || (want_all && (theme->load_index < 9))) |
| 164 |
|
181 | THEME_LOAD_PART (PART_KNIGHT, L"knight"); |
| 165 | if ((theme->load_index == 9) || (want_all && (theme->load_index < 10))) |
182 | if ((theme->load_index == 9) || (want_all && (theme->load_index < 10))) |
| 166 |
|
183 | THEME_LOAD_PART (PART_ROOK, L"rook"); |
| 167 | if ((theme->load_index == 10) || (want_all && (theme->load_index < 11))) |
184 | if ((theme->load_index == 10) || (want_all && (theme->load_index < 11))) |
| 168 |
|
185 | THEME_LOAD_PART (PART_PAWN, L"pawn"); |
| 169 | 186 | ||
| 170 | // load part textures |
187 | // load part textures |
| 171 | if ((theme->load_index == 11) || (want_all && (theme->load_index < 12))) |
188 | if ((theme->load_index == 11) || (want_all && (theme->load_index < 12))) |
| 172 | theme->part_colors[COLOR_BLACK].texture = Render_LoadTexture (L"themes/%s/models/part-black.*", theme->name); |
189 | theme->part_colors[COLOR_BLACK].texture = Render_LoadTexture (L"themes/%s/models/part-black.*", theme->name); |
| 173 | if ((theme->load_index == 12) || (want_all && (theme->load_index < 13))) |
190 | if ((theme->load_index == 12) || (want_all && (theme->load_index < 13))) |
| Line 321... | Line 338... | ||
| 321 | theme->load_index++; // this bit has been loaded |
338 | theme->load_index++; // this bit has been loaded |
| 322 | if (theme->load_index == 53) |
339 | if (theme->load_index == 53) |
| 323 | theme->is_loaded = true; // when everything has been loaded, remember this theme is now usable |
340 | theme->is_loaded = true; // when everything has been loaded, remember this theme is now usable |
| 324 | 341 | ||
| 325 | return; // finished, theme data is loaded a bit more |
342 | return; // finished, theme data is loaded a bit more |
| - | 343 | ||
| - | 344 | #undef THEME_LOAD_PART |
|
| - | 345 | #undef THEME_LOAD_MESH |
|
| 326 | } |
346 | } |
| 327 | 347 | ||
| 328 | 348 | ||
| 329 | void Background_LoadImage (backgroundsprite_t *bg, const wchar_t *image_pathname) |
349 | void Background_LoadImage (backgroundsprite_t *bg, const wchar_t *image_pathname) |
| 330 | { |
350 | { |