1 /* 2 * This file is part of Dune Legacy. 3 * 4 * Dune Legacy is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * Dune Legacy is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with Dune Legacy. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef GFXMANAGER_H 19 #define GFXMANAGER_H 20 21 #include <SDL.h> 22 #include "Animation.h" 23 #include "Shpfile.h" 24 #include "Wsafile.h" 25 #include <DataTypes.h> 26 27 #include <string> 28 #include <array> 29 #include <memory> 30 31 #define NUM_TERRAIN_TILES_X 11 32 #define NUM_TERRAIN_TILES_Y 8 33 #define NUM_MAPCHOICEPIECES 28 34 #define NUM_WINDTRAP_ANIMATIONS (2*STRUCTURE_ANIMATIONTIMER+4) 35 #define NUM_WINDTRAP_ANIMATIONS_PER_ROW 10 36 #define NUM_STATIC_ANIMATIONS_PER_ROW 7 37 38 // ObjPics 39 typedef enum { 40 ObjPic_Tank_Base, 41 ObjPic_Tank_Gun, 42 ObjPic_Siegetank_Base, 43 ObjPic_Siegetank_Gun, 44 ObjPic_Devastator_Base, 45 ObjPic_Devastator_Gun, 46 ObjPic_Sonictank_Gun, 47 ObjPic_Launcher_Gun, 48 ObjPic_Quad, 49 ObjPic_Trike, 50 ObjPic_Harvester, 51 ObjPic_Harvester_Sand, 52 ObjPic_MCV, 53 ObjPic_Carryall, 54 ObjPic_CarryallShadow, 55 ObjPic_Frigate, 56 ObjPic_FrigateShadow, 57 ObjPic_Ornithopter, 58 ObjPic_OrnithopterShadow, 59 ObjPic_Trooper, 60 ObjPic_Troopers, 61 ObjPic_Soldier, 62 ObjPic_Infantry, 63 ObjPic_Saboteur, 64 ObjPic_Sandworm, 65 ObjPic_ConstructionYard, 66 ObjPic_Windtrap, 67 ObjPic_Refinery, 68 ObjPic_Barracks, 69 ObjPic_WOR, 70 ObjPic_Radar, 71 ObjPic_LightFactory, 72 ObjPic_Silo, 73 ObjPic_HeavyFactory, 74 ObjPic_HighTechFactory, 75 ObjPic_IX, 76 ObjPic_Palace, 77 ObjPic_RepairYard, 78 ObjPic_Starport, 79 ObjPic_GunTurret, 80 ObjPic_RocketTurret, 81 ObjPic_Wall, 82 ObjPic_Bullet_SmallRocket, 83 ObjPic_Bullet_MediumRocket, 84 ObjPic_Bullet_LargeRocket, 85 ObjPic_Bullet_Small, 86 ObjPic_Bullet_Medium, 87 ObjPic_Bullet_Large, 88 ObjPic_Bullet_Sonic, 89 ObjPic_Bullet_SonicTemp, 90 ObjPic_Hit_Gas, 91 ObjPic_Hit_ShellSmall, 92 ObjPic_Hit_ShellMedium, 93 ObjPic_Hit_ShellLarge, 94 ObjPic_ExplosionSmall, 95 ObjPic_ExplosionMedium1, 96 ObjPic_ExplosionMedium2, 97 ObjPic_ExplosionLarge1, 98 ObjPic_ExplosionLarge2, 99 ObjPic_ExplosionSmallUnit, 100 ObjPic_ExplosionFlames, 101 ObjPic_ExplosionSpiceBloom, 102 ObjPic_DeadInfantry, 103 ObjPic_DeadAirUnit, 104 ObjPic_Smoke, 105 ObjPic_SandwormShimmerMask, 106 ObjPic_SandwormShimmerTemp, 107 ObjPic_Terrain, 108 ObjPic_DestroyedStructure, 109 ObjPic_RockDamage, 110 ObjPic_SandDamage, 111 ObjPic_Terrain_Hidden, 112 ObjPic_Terrain_HiddenFog, 113 ObjPic_Terrain_Tracks, 114 ObjPic_Star, 115 NUM_OBJPICS 116 } ObjPic_enum; 117 118 static const std::array<std::string, NUM_OBJPICS> ObjPicNames = { { "Tank_Base", "Tank_Gun", "Siegetank_Base", "Siegetank_Gun", "Devastator_Base", 119 "Devastator_Gun", "Sonictank_Gun", "Launcher_Gun", "Quad", "Trike", "Harvester", "Harvester_Sand", "MCV", "Carryall", "CarryallShadow", 120 "Frigate", "FrigateShadow", "Ornithopter", "OrnithopterShadow", "Trooper", "Troopers", "Soldier", "Infantry", "Saboteur", "Sandworm", 121 "ConstructionYard", "Windtrap", "Refinery", "Barracks", "WOR", "Radar", "LightFactory", "Silo", "HeavyFactory", "HighTechFactory", 122 "IX", "Palace", "RepairYard", "Starport", "GunTurret", "RocketTurret", "Wall", 123 "Bullet_SmallRocket", "Bullet_MediumRocket", "Bullet_LargeRocket", "Bullet_Small", "Bullet_Medium", "Bullet_Large", "Bullet_Sonic", 124 "Bullet_SonicTemp", "Hit_Gas", "Hit_ShellSmall", "Hit_ShellMedium", "Hit_ShellLarge", "ExplosionSmall", "ExplosionMedium1", 125 "ExplosionMedium2", "ExplosionLarge1", "ExplosionLarge2", "ExplosionSmallUnit", "ExplosionFlames", "ExplosionSpiceBloom", 126 "DeadInfantry", "DeadAirUnit", "Smoke", "SandwormShimmerMask", "SandwormShimmerTemp", "Terrain", "DestroyedStructure", "RockDamage", 127 "SandDamage", "Terrain_Hidden", "Terrain_HiddenFog", "Terrain_Tracks", "Star" } }; 128 129 #define GROUNDUNIT_ROW(i) (i+2)|TILE_NORMAL,(i+1)|TILE_NORMAL,i|TILE_NORMAL,(i+1)|TILE_FLIPV,(i+2)|TILE_FLIPV,(i+3)|TILE_FLIPV, (i+4)|TILE_NORMAL,(i+3)|TILE_NORMAL 130 #define AIRUNIT_ROW(i) (i+2)|TILE_NORMAL,(i+1)|TILE_NORMAL,i|TILE_NORMAL,(i+1)|TILE_FLIPV,(i+2)|TILE_FLIPV,(i+1)|TILE_ROTATE, i|TILE_FLIPH,(i+1)|TILE_FLIPH 131 #define ORNITHOPTER_ROW(i) (i+6)|TILE_NORMAL,(i+3)|TILE_NORMAL,i|TILE_NORMAL,(i+3)|TILE_FLIPV,(i+6)|TILE_FLIPV,(i+3)|TILE_ROTATE, i|TILE_FLIPH,(i+3)|TILE_FLIPH 132 #define INFANTRY_ROW(i) (i+3)|TILE_NORMAL,i|TILE_NORMAL,(i+3)|TILE_FLIPV,(i+6)|TILE_NORMAL 133 #define MULTIINFANTRY_ROW(i) (i+4)|TILE_NORMAL,i|TILE_NORMAL,(i+4)|TILE_FLIPV,(i+8)|TILE_NORMAL 134 #define HARVESTERSAND_ROW(i) (i+6)|TILE_NORMAL,(i+3)|TILE_NORMAL,i|TILE_NORMAL,(i+3)|TILE_FLIPV,(i+6)|TILE_FLIPV,(i+9)|TILE_FLIPV,(i+12)|TILE_NORMAL,(i+9)|TILE_NORMAL 135 #define ROCKET_ROW(i) (i+4)|TILE_NORMAL,(i+3)|TILE_NORMAL,(i+2)|TILE_NORMAL,(i+1)|TILE_NORMAL,i|TILE_NORMAL,(i+1)|TILE_FLIPV,(i+2)|TILE_FLIPV,(i+3)|TILE_FLIPV, \ 136 (i+4)|TILE_FLIPV,(i+3)|TILE_ROTATE,(i+2)|TILE_ROTATE, (i+1)|TILE_ROTATE,i|TILE_FLIPH,(i+1)|TILE_FLIPH,(i+2)|TILE_FLIPH,(i+3)|TILE_FLIPH 137 138 139 // SmallDetailPics 140 typedef enum { 141 Picture_Barracks, 142 Picture_ConstructionYard, 143 Picture_Carryall, 144 Picture_Devastator, 145 Picture_Deviator, 146 Picture_DeathHand, 147 Picture_Fremen, 148 Picture_Frigate, 149 Picture_GunTurret, 150 Picture_Harvester, 151 Picture_HeavyFactory, 152 Picture_HighTechFactory, 153 Picture_Soldier, 154 Picture_IX, 155 Picture_Launcher, 156 Picture_LightFactory, 157 Picture_MCV, 158 Picture_Ornithopter, 159 Picture_Palace, 160 Picture_Quad, 161 Picture_Radar, 162 Picture_RaiderTrike, 163 Picture_Refinery, 164 Picture_RepairYard, 165 Picture_RocketTurret, 166 Picture_Saboteur, 167 Picture_Sandworm, 168 Picture_Sardaukar, 169 Picture_SiegeTank, 170 Picture_Silo, 171 Picture_Slab1, 172 Picture_Slab4, 173 Picture_SonicTank, 174 Picture_Special, 175 Picture_StarPort, 176 Picture_Tank, 177 Picture_Trike, 178 Picture_Trooper, 179 Picture_Wall, 180 Picture_WindTrap, 181 Picture_WOR, 182 NUM_SMALLDETAILPICS 183 } SmallDetailPics_Enum; 184 185 // tiny pictures used for tutorial hints (has the same order as ItemID_enum, except the first entry) 186 typedef enum { 187 TinyPicture_Spice = 0, 188 TinyPicture_Barracks = 1, 189 TinyPicture_ConstructionYard = 2, 190 TinyPicture_GunTurret = 3, 191 TinyPicture_HeavyFactory = 4, 192 TinyPicture_HighTechFactory = 5, 193 TinyPicture_IX = 6, 194 TinyPicture_LightFactory = 7, 195 TinyPicture_Palace = 8, 196 TinyPicture_Radar = 9, 197 TinyPicture_Refinery = 10, 198 TinyPicture_RepairYard = 11, 199 TinyPicture_RocketTurret = 12, 200 TinyPicture_Silo = 13, 201 TinyPicture_Slab1 = 14, 202 TinyPicture_Slab4 = 15, 203 TinyPicture_StarPort = 16, 204 TinyPicture_Wall = 17, 205 TinyPicture_WindTrap = 18, 206 TinyPicture_WOR = 19, 207 TinyPicture_Carryall = 20, 208 TinyPicture_Devastator = 21, 209 TinyPicture_Deviator = 22, 210 TinyPicture_Frigate = 23, 211 TinyPicture_Harvester = 24, 212 TinyPicture_Soldier = 25, 213 TinyPicture_Launcher = 26, 214 TinyPicture_MCV = 27, 215 TinyPicture_Ornithopter = 28, 216 TinyPicture_Quad = 29, 217 TinyPicture_Saboteur = 30, 218 TinyPicture_Sandworm = 31, 219 TinyPicture_SiegeTank = 32, 220 TinyPicture_SonicTank = 33, 221 TinyPicture_Tank = 34, 222 TinyPicture_Trike = 35, 223 TinyPicture_RaiderTrike = 36, 224 TinyPicture_Trooper = 37, 225 TinyPicture_Special = 38, 226 TinyPicture_Infantry = 39, 227 TinyPicture_Troopers = 40, 228 NUM_TINYPICTURE 229 } TinyPicture_Enum; 230 231 // UI Graphics 232 typedef enum { 233 UI_RadarAnimation, 234 UI_CursorNormal, 235 UI_CursorUp, 236 UI_CursorRight, 237 UI_CursorDown, 238 UI_CursorLeft, 239 UI_CursorMove_Zoomlevel0, 240 UI_CursorMove_Zoomlevel1, 241 UI_CursorMove_Zoomlevel2, 242 UI_CursorAttack_Zoomlevel0, 243 UI_CursorAttack_Zoomlevel1, 244 UI_CursorAttack_Zoomlevel2, 245 UI_CursorCapture_Zoomlevel0, 246 UI_CursorCapture_Zoomlevel1, 247 UI_CursorCapture_Zoomlevel2, 248 UI_CursorCarryallDrop_Zoomlevel0, 249 UI_CursorCarryallDrop_Zoomlevel1, 250 UI_CursorCarryallDrop_Zoomlevel2, 251 UI_SendToRepairIcon, 252 UI_ReturnIcon, 253 UI_DeployIcon, 254 UI_DestructIcon, 255 UI_CreditsDigits, 256 UI_SideBar, 257 UI_Indicator, 258 UI_InvalidPlace_Zoomlevel0, 259 UI_InvalidPlace_Zoomlevel1, 260 UI_InvalidPlace_Zoomlevel2, 261 UI_ValidPlace_Zoomlevel0, 262 UI_ValidPlace_Zoomlevel1, 263 UI_ValidPlace_Zoomlevel2, 264 UI_GreyPlace_Zoomlevel0, 265 UI_GreyPlace_Zoomlevel1, 266 UI_GreyPlace_Zoomlevel2, 267 UI_MenuBackground, 268 UI_GameStatsBackground, 269 UI_SelectionBox_Zoomlevel0, 270 UI_SelectionBox_Zoomlevel1, 271 UI_SelectionBox_Zoomlevel2, 272 UI_OtherPlayerSelectionBox_Zoomlevel0, 273 UI_OtherPlayerSelectionBox_Zoomlevel1, 274 UI_OtherPlayerSelectionBox_Zoomlevel2, 275 UI_TopBar, 276 UI_ButtonUp, 277 UI_ButtonUp_Pressed, 278 UI_ButtonDown, 279 UI_ButtonDown_Pressed, 280 UI_BuilderListUpperCap, 281 UI_BuilderListLowerCap, 282 UI_CustomGamePlayersArrow, 283 UI_CustomGamePlayersArrowNeutral, 284 UI_MessageBox, 285 UI_Mentat, 286 UI_Mentat_Pressed, 287 UI_Options, 288 UI_Options_Pressed, 289 UI_Upgrade, 290 UI_Upgrade_Pressed, 291 UI_Repair, 292 UI_Repair_Pressed, 293 UI_HouseSelect, 294 UI_SelectYourHouseLarge, 295 UI_Herald_Colored, 296 UI_Herald_ColoredLarge, 297 UI_Herald_Grey, 298 UI_Herald_ArrowLeft, 299 UI_Herald_ArrowLeftLarge, 300 UI_Herald_ArrowLeftHighlight, 301 UI_Herald_ArrowLeftHighlightLarge, 302 UI_Herald_ArrowRight, 303 UI_Herald_ArrowRightLarge, 304 UI_Herald_ArrowRightHighlight, 305 UI_Herald_ArrowRightHighlightLarge, 306 UI_Minus, 307 UI_Minus_Active, 308 UI_Minus_Pressed, 309 UI_Plus, 310 UI_Plus_Active, 311 UI_Plus_Pressed, 312 UI_MissionSelect, 313 UI_OptionsMenu, 314 UI_LoadSaveWindow, 315 UI_NewMapWindow, 316 UI_GameMenu, 317 UI_MentatBackground, 318 UI_MentatBackgroundBene, 319 UI_MentatHouseChoiceInfoQuestion, 320 UI_MentatYes, 321 UI_MentatYes_Pressed, 322 UI_MentatNo, 323 UI_MentatNo_Pressed, 324 UI_MentatExit, 325 UI_MentatExit_Pressed, 326 UI_MentatProcced, 327 UI_MentatProcced_Pressed, 328 UI_MentatRepeat, 329 UI_MentatRepeat_Pressed, 330 UI_PlanetBackground, 331 UI_MenuButtonBorder, 332 UI_DuneLegacy, 333 UI_MapChoiceScreen, 334 UI_MapChoicePlanet, 335 UI_MapChoiceMapOnly, 336 UI_MapChoiceMap, 337 UI_MapChoiceClickMap, 338 UI_MapChoiceArrow_None, 339 UI_MapChoiceArrow_LeftUp, 340 UI_MapChoiceArrow_Up, 341 UI_MapChoiceArrow_RightUp, 342 UI_MapChoiceArrow_Right, 343 UI_MapChoiceArrow_RightDown, 344 UI_MapChoiceArrow_Down, 345 UI_MapChoiceArrow_LeftDown, 346 UI_MapChoiceArrow_Left, 347 UI_StructureSizeLattice, 348 UI_StructureSizeConcrete, 349 UI_MapEditor_SideBar, 350 UI_MapEditor_BottomBar, 351 UI_MapEditor_ExitIcon, 352 UI_MapEditor_NewIcon, 353 UI_MapEditor_LoadIcon, 354 UI_MapEditor_SaveIcon, 355 UI_MapEditor_UndoIcon, 356 UI_MapEditor_RedoIcon, 357 UI_MapEditor_PlayerIcon, 358 UI_MapEditor_MapSettingsIcon, 359 UI_MapEditor_ChoamIcon, 360 UI_MapEditor_ReinforcementsIcon, 361 UI_MapEditor_TeamsIcon, 362 UI_MapEditor_MirrorNoneIcon, 363 UI_MapEditor_MirrorHorizontalIcon, 364 UI_MapEditor_MirrorVerticalIcon, 365 UI_MapEditor_MirrorBothIcon, 366 UI_MapEditor_MirrorPointIcon, 367 UI_MapEditor_ArrowUp, 368 UI_MapEditor_ArrowUp_Active, 369 UI_MapEditor_ArrowDown, 370 UI_MapEditor_ArrowDown_Active, 371 UI_MapEditor_Plus, 372 UI_MapEditor_Plus_Active, 373 UI_MapEditor_Minus, 374 UI_MapEditor_Minus_Active, 375 UI_MapEditor_RotateLeftIcon, 376 UI_MapEditor_RotateLeftHighlightIcon, 377 UI_MapEditor_RotateRightIcon, 378 UI_MapEditor_RotateRightHighlightIcon, 379 UI_MapEditor_Sand, 380 UI_MapEditor_Dunes, 381 UI_MapEditor_SpecialBloom, 382 UI_MapEditor_Spice, 383 UI_MapEditor_ThickSpice, 384 UI_MapEditor_SpiceBloom, 385 UI_MapEditor_Slab, 386 UI_MapEditor_Rock, 387 UI_MapEditor_Mountain, 388 UI_MapEditor_Slab1, 389 UI_MapEditor_Wall, 390 UI_MapEditor_GunTurret, 391 UI_MapEditor_RocketTurret, 392 UI_MapEditor_ConstructionYard, 393 UI_MapEditor_Windtrap, 394 UI_MapEditor_Radar, 395 UI_MapEditor_Silo, 396 UI_MapEditor_IX, 397 UI_MapEditor_Barracks, 398 UI_MapEditor_WOR, 399 UI_MapEditor_LightFactory, 400 UI_MapEditor_Refinery, 401 UI_MapEditor_HighTechFactory, 402 UI_MapEditor_HeavyFactory, 403 UI_MapEditor_RepairYard, 404 UI_MapEditor_Starport, 405 UI_MapEditor_Palace, 406 UI_MapEditor_Soldier, 407 UI_MapEditor_Trooper, 408 UI_MapEditor_Harvester, 409 UI_MapEditor_Infantry, 410 UI_MapEditor_Troopers, 411 UI_MapEditor_MCV, 412 UI_MapEditor_Trike, 413 UI_MapEditor_Raider, 414 UI_MapEditor_Quad, 415 UI_MapEditor_Tank, 416 UI_MapEditor_SiegeTank, 417 UI_MapEditor_Launcher, 418 UI_MapEditor_Devastator, 419 UI_MapEditor_SonicTank, 420 UI_MapEditor_Deviator, 421 UI_MapEditor_Saboteur, 422 UI_MapEditor_Sandworm, 423 UI_MapEditor_SpecialUnit, 424 UI_MapEditor_Carryall, 425 UI_MapEditor_Ornithopter, 426 UI_MapEditor_Pen1x1, 427 UI_MapEditor_Pen3x3, 428 UI_MapEditor_Pen5x5, 429 NUM_UIGRAPHICS 430 } UIGraphics_Enum; 431 432 //Animation 433 typedef enum { 434 Anim_HarkonnenEyes, 435 Anim_HarkonnenMouth, 436 Anim_HarkonnenShoulder, 437 Anim_AtreidesEyes, 438 Anim_AtreidesMouth, 439 Anim_AtreidesShoulder, 440 Anim_AtreidesBook, 441 Anim_OrdosEyes, 442 Anim_OrdosMouth, 443 Anim_OrdosShoulder, 444 Anim_OrdosRing, 445 Anim_FremenEyes, 446 Anim_FremenMouth, 447 Anim_FremenShoulder, 448 Anim_FremenBook, 449 Anim_SardaukarEyes, 450 Anim_SardaukarMouth, 451 Anim_SardaukarShoulder, 452 Anim_MercenaryEyes, 453 Anim_MercenaryMouth, 454 Anim_MercenaryShoulder, 455 Anim_MercenaryRing, 456 Anim_BeneEyes, 457 Anim_BeneMouth, 458 Anim_HarkonnenPlanet, 459 Anim_AtreidesPlanet, 460 Anim_OrdosPlanet, 461 Anim_FremenPlanet, 462 Anim_SardaukarPlanet, 463 Anim_MercenaryPlanet, 464 Anim_Win1, 465 Anim_Win2, 466 Anim_Lose1, 467 Anim_Lose2, 468 Anim_Barracks, 469 Anim_Carryall, 470 Anim_ConstructionYard, 471 Anim_Fremen, 472 Anim_DeathHand, 473 Anim_Devastator, 474 Anim_Harvester, 475 Anim_Radar, 476 Anim_HighTechFactory, 477 Anim_SiegeTank, 478 Anim_HeavyFactory, 479 Anim_Trooper, 480 Anim_Infantry, 481 Anim_IX, 482 Anim_LightFactory, 483 Anim_Tank, 484 Anim_MCV, 485 Anim_Deviator, 486 Anim_Ornithopter, 487 Anim_Raider, 488 Anim_Palace, 489 Anim_Quad, 490 Anim_Refinery, 491 Anim_RepairYard, 492 Anim_Launcher, 493 Anim_RocketTurret, 494 Anim_Saboteur, 495 Anim_Slab1, 496 Anim_SonicTank, 497 Anim_StarPort, 498 Anim_Silo, 499 Anim_Trike, 500 Anim_GunTurret, 501 Anim_Wall, 502 Anim_WindTrap, 503 Anim_WOR, 504 Anim_Sandworm, 505 Anim_Sardaukar, 506 Anim_Frigate, 507 Anim_Slab4, 508 NUM_ANIMATION 509 } Animation_enum; 510 511 512 class GFXManager { 513 public: 514 GFXManager(); 515 ~GFXManager(); 516 517 SDL_Texture** getObjPic(unsigned int id, int house=HOUSE_HARKONNEN); 518 519 SDL_Texture* getSmallDetailPic(unsigned int id); 520 SDL_Texture* getTinyPicture(unsigned int id); 521 SDL_Texture* getUIGraphic(unsigned int id, int house=HOUSE_HARKONNEN); 522 SDL_Texture* getMapChoicePiece(unsigned int num, int house); 523 524 SDL_Surface* getUIGraphicSurface(unsigned int id, int house=HOUSE_HARKONNEN); 525 SDL_Surface* getMapChoicePieceSurface(unsigned int num, int house); 526 getBackgroundSurface()527 SDL_Surface* getBackgroundSurface() { return pBackgroundSurface; }; 528 529 Animation* getAnimation(unsigned int id); 530 531 private: 532 Animation* loadAnimationFromWsa(const std::string& filename); 533 SDL_Surface* generateWindtrapAnimationFrames(SDL_Surface* windtrapPic); 534 SDL_Surface* generateMapChoiceArrowFrames(SDL_Surface* arrowPic, int house=HOUSE_HARKONNEN); 535 536 std::shared_ptr<Shpfile> loadShpfile(const std::string& filename); 537 std::shared_ptr<Wsafile> loadWsafile(const std::string& filename); 538 539 SDL_Texture* extractSmallDetailPic(const std::string& filename); 540 541 SDL_Surface* generateDoubledObjPic(unsigned int id, int h); 542 SDL_Surface* generateTripledObjPic(unsigned int id, int h); 543 544 // 8-bit surfaces kept in main memory for processing as needed, e.g. color remapping 545 SDL_Surface* objPic[NUM_OBJPICS][(int) NUM_HOUSES][NUM_ZOOMLEVEL]; 546 SDL_Surface* uiGraphic[NUM_UIGRAPHICS][(int) NUM_HOUSES]; 547 SDL_Surface* mapChoicePieces[NUM_MAPCHOICEPIECES][(int) NUM_HOUSES]; 548 Animation* animation[NUM_ANIMATION]; 549 550 // 32-bit surfaces 551 SDL_Surface* pBackgroundSurface; 552 553 // Textures 554 SDL_Texture* objPicTex[NUM_OBJPICS][(int) NUM_HOUSES][NUM_ZOOMLEVEL]; 555 SDL_Texture* smallDetailPicTex[NUM_SMALLDETAILPICS]; 556 SDL_Texture* tinyPictureTex[NUM_TINYPICTURE]; 557 SDL_Texture* uiGraphicTex[NUM_UIGRAPHICS][(int) NUM_HOUSES]; 558 SDL_Texture* mapChoicePiecesTex[NUM_MAPCHOICEPIECES][(int) NUM_HOUSES]; 559 }; 560 561 #endif // GFXMANAGER_H 562