1/* 2 * 3 * Copyright (C) 2006 Alun Bestor 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 * 19 * 20 * This header file defines constants for shapes and frames in Black Gate's 21 * SHAPES.VGA. Fill them in as you go along! It is best to use enums to group 22 * shapes thematically by type and frames by shape, rather than attempting to 23 * order them numerically. 24 * 25 * Author: Alun Bestor (exult@washboardabs.net) 26 * Last Modified: 2006-03-19 27*/ 28 29//Shapes 30//------ 31 32//Shapes used by NPCs (ones that will talk to you and have schedules). Note that there's a bit of confusion between this and monster_shapes since some NPCs have the monster flag (even though they are human). 33//Also note that some of these are duplicated to make 'monster' versions - you can find those in monster_shapes below. 34enum npc_shapes 35{ 36 //NPCs with unique appearances 37 SHAPE_MALE_AVATAR = 721, 38 SHAPE_FEMALE_AVATAR = 989, 39 SHAPE_FERRYMAN = 155, //Doom Scythe is built into shape, unlike FERRYMAN2 40 SHAPE_FERRYMAN2 = 952, //Actually this version is a monster...not sure which actually got used 41 SHAPE_ALAGNER = 227, 42 SHAPE_PAPA = 228, 43 SHAPE_MAMA = 229, 44 SHAPE_UNICORN = 375, 45 SHAPE_KISSME = 382, 46 SHAPE_FAIRY = 382, 47 SHAPE_BATLIN = 403, 48 SHAPE_BATLIN2 = 482, //Not sure which is the Real Batlin and which is the clone 49 50 SHAPE_IOLO = 465, 51 SHAPE_SHAMINO = 487, 52 SHAPE_DUPRE = 488, 53 SHAPE_SPARK = 489, 54 SHAPE_JAANA = 490, 55 56 SHAPE_LORD_BRITISH = 466, 57 SHAPE_SMITH = 476, //Smith the Horse 58 SHAPE_FRANK = 477, //Frank the Fox 59 SHAPE_SHERRY = 478, //Sherry the Mouse 60 SHAPE_DRAXINUSOM = 480, //Sherry the Mouse 61 62 SHAPE_HOOK = 506, //Hook is a monster, yet Forskis isn't. Huh. 63 SHAPE_FORSKIS = 805, 64 SHAPE_ELIZABETH = 881, 65 SHAPE_ABRAHAM = 882, 66 67 SHAPE_EMP = 479, //There's also a monster emp, SHAPE_MONSTER_EMP. Could be this one is Saralek, and the monster one is everyone else 68 SHAPE_TROLL = 861, //Not to be confused with monster trolls, this one is used for the troll jailer and troll prisoner 69 70 SHAPE_CYCLOPS = 380, //Friendly Cyclops, not monster cyclops (probably Iskender) 71 SHAPE_WISP = 534, 72 73 //Gargoyle shapes 74 SHAPE_GARGOYLE_FLYING = 226, //Never used AFAIK 75 SHAPE_GARGOYLE_WINGED = 274, 76 SHAPE_GARGOYLE_WARRIOR = 274, //White straps across torso 77 SHAPE_GARGOYLE_NOBLE = 473, //Circlet on head 78 SHAPE_GARGOYLE_WORKER = 475, //No wings 79 SHAPE_GARGOYLE_WINGLESS = 475, 80 81 //While these have the MONSTER flag, they are only used as NPCs AFAIK 82 SHAPE_GHOST_FEMALE = 299, 83 SHAPE_GHOST_MALE = 317, 84 85 //General human shapes 86 SHAPE_SAGE_MALE = 318, 87 SHAPE_SAGE_FEMALE = 448, 88 SHAPE_MAGE_MALE = 445, 89 SHAPE_MAGE_FEMALE = 446, 90 91 SHAPE_SHOPKEEPER_FEMALE = 454, 92 SHAPE_SHOPKEEPER_MALE = 455, 93 94 SHAPE_PEASANT_MALE = 319, 95 SHAPE_PEASANT_FEMALE = 452, 96 SHAPE_PEASANT_CHILD = 471, 97 SHAPE_PEASANT_CHILD2 = 965, //Identical in appearance to CHILD 98 99 SHAPE_WOUNDED_MAN = 447, 100 SHAPE_BEGGAR_CRUTCHES = 449, 101 SHAPE_BEGGAR_NOLEGS = 450, 102 103 SHAPE_NOBLE_MALE = 451, 104 SHAPE_NOBLE_FEMALE = 456, 105 SHAPE_NOBLE_CHILD = 472, 106 107 SHAPE_GYPSY_MALE = 457, 108 SHAPE_PIRATE = 458, 109 SHAPE_WENCH = 459, 110 SHAPE_RANGER_MALE = 460, 111 SHAPE_RANGER_FEMALE = 461, 112 113 SHAPE_FIGHTER_MALE = 462, 114 SHAPE_FIGHTER_FEMALE = 463, 115 SHAPE_PALADIN = 464, 116 117 SHAPE_JESTER = 467, 118 SHAPE_HIGHWAYMAN = 485, //Only used once, AFAIK 119 SHAPE_ENTERTAINER_MALE = 468, 120 SHAPE_ENTERTAINER_FEMALE = 469, 121 122 SHAPE_TOWNSMAN = 265, 123 SHAPE_BLACKSMITH = 304, 124 SHAPE_GUARD = 720, //Yes, the actual real-McCoy guard 125 SHAPE_BARKEEP = 957, //Looks identical to SHOPKEEPER_MALE, just different name 126 127 SHAPE_BABY = 730, //This is just an object, basically. Kinda creepy. 128 SHAPE_TODDLER = 864 129}; 130 131//Shapes used by 'monsters' - i.e. combatants and humans without schedules 132enum monster_shapes 133{ 134 //Unique monsters 135 SHAPE_ETHEREAL_MONSTER = 230, 136 SHAPE_HYDRA = 381, 137 SHAPE_STONE_HARPIE = 753, 138 SHAPE_GOLEM = 1015, 139 140 //Human 'monsters' 141 SHAPE_MONSTER_MAGE = 154, 142 SHAPE_MONSTER_PALADIN = 247, 143 SHAPE_MONSTER_FIGHTER = 259, 144 SHAPE_MONSTER_GUARD = 394, 145 SHAPE_MONSTER_GUARD2 = 806, 146 SHAPE_MONSTER_GUARD3 = 946, //Certainly laying it on with the duplicate guards. 147 //(Presumably they each have different appearances and abilities.) 148 SHAPE_MONSTER_PIRATE = 401, 149 SHAPE_MONSTER_EMP = 784, //Not sure why this is a monster? 150 SHAPE_MONSTER_GARGOYLE = 883, //Of the Wingless variety 151 SHAPE_FELLOWSHIP_MALE = 884, //Found on Isle of the Avatar 152 SHAPE_FELLOWSHIP_FEMALE = 929, //Found on Isle of the Avatar 153 154 SHAPE_GHOST = 299, //Your generic white-sheet jobbie 155 156 //Both of these are monsters - one has a crown, the other is more tatty. Not sure which is Horance. 157 SHAPE_LICHE = 354, 158 SHAPE_LICHE2 = 519, 159 160 SHAPE_ACID_SLUG = 491, 161 SHAPE_ALLIGATOR = 492, 162 SHAPE_BAT = 493, 163 SHAPE_CORPSER = 499, 164 165 SHAPE_MONSTER_CYCLOPS = 501, //Not to be confused with SHAPE_CYCLOPS, which is the friendly NPC version 166 167 SHAPE_DRAGON = 504, 168 SHAPE_DRAKE = 505, 169 170 SHAPE_GAZER = 511, 171 SHAPE_GREMLIN = 513, 172 SHAPE_HEADLESS = 514, 173 174 SHAPE_REAPER = 524, 175 SHAPE_SEA_SERPENT = 525, 176 177 SHAPE_SKELETON = 528, 178 SHAPE_SLIME = 529, 179 180 SHAPE_HARPIE = 532, 181 SHAPE_MONSTER_TROLL = 533, //There's also an NPC troll, SHAPE_TROLL 182 183 SHAPE_TENTACLES = 536, 184 SHAPE_MONGBAT = 661 185}; 186 187//Shapes used by 'normal' animals (i.e., real-life ones, whether friendly or hostile) 188enum animal_shapes 189{ 190 SHAPE_BEE = 494, 191 SHAPE_CAT = 495, 192 SHAPE_DOG = 496, 193 SHAPE_CHICKEN = 498, 194 SHAPE_COW = 500, 195 SHAPE_DEER = 502, 196 SHAPE_FISH = 509, //live fish in the water, not dead ones on your plate (those are frames of SHAPE_FOOD, see food_frames below) 197 SHAPE_FOX = 510, //Not to be confused with Frank the Fox, who is SHAPE_FRANK 198 SHAPE_FLY = 517, 199 SHAPE_MOUSE = 521, //Not to be confused with Sherry the Mouse, who is SHAPE_SHERRY 200 SHAPE_RAT = 523, 201 SHAPE_SNAKE = 530, 202 SHAPE_WOLF = 537, 203 SHAPE_SCORPION = 706, 204 SHAPE_BIRD = 716, 205 SHAPE_HORSE = 727, //Not to be confused with Smith the Horse, who is SHAPE_SMITH 206 SHAPE_DRAFT_HORSE = 796, //These hardly count as an animal, poor things 207 SHAPE_RABBIT = 811, 208 SHAPE_SPIDER = 865, 209 SHAPE_SHEEP = 970 210}; 211 212const int SHAPE_KEY = 641; 213const int SHAPE_GOLD = 644; //Filthy lucre 214const int SHAPE_SCROLL = 797; 215const int SHAPE_EGG = 275; 216const int SHAPE_FISHING_ROD = 662; //fishing rod (quel surprise) 217 218const int SHAPE_RUNE = 877; 219const int SHAPE_ORB = 785; //Orb of the Moons 220 221const int SHAPE_PRISM = 981; //The Guardian's three prisms 222 223const int SHAPE_FOOD = 377; 224const int SHAPE_BOTTLE = 616; 225const int SHAPE_REAGENT = 842; 226const int SHAPE_KITCHEN_ITEM = 863; 227const int SHAPE_BUCKET = 810; 228const int SHAPE_POWDER_KEG = 704; 229 230const int SHAPE_DOUGH = 658; 231const int SHAPE_HEARTH = 831; 232 233const int SHAPE_WHEAT = 677; 234const int SHAPE_MILLSTONE = 711; 235 236const int SHAPE_WELL = 740; 237const int SHAPE_WELLBASE = 470; 238const int SHAPE_ROCK = 331; 239 240const int SHAPE_WORKTABLE_VERTICAL = 1003; 241const int SHAPE_WORKTABLE_HORIZONTAL = 1018; 242 243const int SHAPE_EMPTY_CRADLE = 992; 244const int SHAPE_FULL_CRADLE = 987; 245 246const int SHAPE_SPILL = 912; 247 248enum light_sources 249{ 250 SHAPE_LIGHTSOURCE = 336, 251 SHAPE_SCONCE = 481, 252 SHAPE_TORCH = 595, 253 SHAPE_LIGHTSOURCE_LIT = 338, 254 SHAPE_SCONCE_LIT = 435, 255 SHAPE_TORCH_LIT = 701, 256 SHAPE_CAMPFIRE = 825 257 //SHAPE_FIREPIT lives in forging_shapes below 258}; 259 260enum cloth_shapes 261{ 262 SHAPE_THREAD = 654, 263 SHAPE_LOOM = 261, 264 SHAPE_CLOTH = 851, 265 SHAPE_BANDAGE = 827, 266 SHAPE_TOP = 249, 267 SHAPE_PANTS = 738, 268 SHAPE_TOY = 742, 269 SHAPE_CLOAK = 285, 270 SHAPE_COSTUME = 838, 271 SHAPE_HOOD = 444, 272 SHAPE_SHEARS = 698, 273 SHAPE_WOOL = 653 274}; 275 276//Door shapes 277enum door_shapes 278{ 279 SHAPE_DOOR_HORIZONTAL = 270, 280 SHAPE_DOOR_VERTICAL = 376, 281 SHAPE_DOOR2_HORIZONTAL = 432, 282 SHAPE_DOOR2_VERTICAL = 433, 283 284 SHAPE_ABBEY_DOOR_LEFT_HORIZONTAL = 246, 285 SHAPE_ABBEY_DOOR_RIGHT_HORIZONTAL = 225, 286 287 SHAPE_ABBEY_DOOR_LEFT_VERTICAL = 250, 288 SHAPE_ABBEY_DOOR_RIGHT_VERICAL = 392 //Note: This is actually a copy of ABBEY_DOOR_LEFT_VERTICAL. Maybe they screwed up but never used them anyway. 289}; 290 291//Chest shapes 292enum chest_shapes 293{ 294 SHAPE_CHEST = 800, 295 SHAPE_LOCKED_CHEST = 522 296}; 297 298//Shapes used in mining 299enum mining_shapes 300{ 301 SHAPE_MINING_MACHINE = 410, 302 SHAPE_CONVEYOR_BELT = 411, 303 SHAPE_BLACKROCK = 914, 304 SHAPE_LEAD_ORE = 915, 305 SHAPE_IRON_ORE = 916, 306 SHAPE_STONE_CHIPS = 815 307}; 308 309//Shapes used in weaponsmithing (e.g. Forge of Virtue) 310enum forging_shapes 311{ 312 SHAPE_SWORDBLANK = 668, 313 SHAPE_ANVIL = 991, 314 SHAPE_TROUGH_VERTICAL = 719, 315 SHAPE_TROUGH_HORIZONTAL = 741, 316 SHAPE_FIREPIT = 739 317}; 318 319enum moongate_shapes 320{ 321 SHAPE_ORB_MOONGATE_HORIZONTAL = 779, 322 SHAPE_ORB_MOONGATE_VERTICAL = 157, 323 SHAPE_STANDING_RED_MOONGATE = 776, 324 SHAPE_STANDING_BLUE_MOONGATE = 777 325}; 326 327enum weapon_shapes 328{ 329 SHAPE_HAMMER = 623, 330 SHAPE_CUSTOM_SWORD = 635, 331 SHAPE_BLACK_SWORD = 707 332}; 333 334//Frames 335//------ 336 337//these are frames of SHAPE_TOP 338const int FRAME_SHIRT = 0; 339const int FRAME_DRESS1 = 1; 340const int FRAME_DRESS2 = 2; 341 342const int FRAME_CUBE = 1; //the cube prism 343 344const int FRAME_RUNE_HONOR = 6; 345 346enum kitchen_item_frames 347{ 348 FRAME_FLOURSACK_OPEN = 0, 349 FRAME_PITCHER = 2, 350 351 FRAME_ROLLINGPIN = 8, 352 FRAME_ROLLINGPIN_2 = 9, 353 FRAME_FLOURSACK = 13, 354 FRAME_FLOURSACK_2 = 14, 355 FRAME_CHURN = 15 356}; 357 358enum food_frames 359{ 360 FRAME_BREAD = 0, 361 FRAME_ROLLS = 1, 362 FRAME_BAGUETTE = 2, 363 FRAME_BREAD_LONG = 2, //for you Francophobes (or should I call it "FRAME_BREAD_FREEDOM"?) 364 FRAME_FRUITCAKE = 3, 365 FRAME_CAKE = 4, 366 FRAME_PIE = 5, 367 FRAME_PASTRY = 6, 368 369 FRAME_SAUSAGES = 7, 370 FRAME_MUTTON = 8, 371 FRAME_BEEF = 9, 372 FRAME_CHICKEN = 10, 373 FRAME_HAM = 11, 374 FRAME_TROUT = 12, 375 FRAME_FLOUNDER = 13, 376 FRAME_VENISON = 14, 377 FRAME_JERKY = 15, 378 379 FRAME_APPLE = 16, 380 FRAME_BANANA = 17, 381 FRAME_CARROTS = 18, 382 FRAME_CARROT = 18, 383 FRAME_GRAPES = 19, 384 FRAME_PUMPKIN1 = 20, 385 FRAME_PUMPKIN_LARGE = 20, 386 FRAME_PUMPKIN2 = 21, 387 FRAME_PUMPKIN_SMALL = 21, 388 FRAME_LEEK = 22, 389 390 FRAME_RIBS = 23, 391 FRAME_EGG = 24, 392 393 FRAME_BUTTER = 25, 394 FRAME_CHEESE1 = 26, 395 FRAME_CHEESE_WHEEL = 26, 396 FRAME_CHEESE2 = 27, 397 FRAME_CHEESE_WEDGE = 27, 398 FRAME_CHEESE3 = 28, 399 FRAME_CHEESE_GREEN = 28, 400 401 FRAME_POTATO = 29, 402 FRAME_FISH_AND_CHIPS = 30, 403 FRAME_SILVERLEAF = 31 404}; 405 406enum bottle_frames 407{ 408 FRAME_MILK = 7 409}; 410 411enum dough_frames //used in baking.uc 412{ 413 FRAME_FLOUR = 0, 414 FRAME_DOUGH_FLAT = 1, //this will now create a pastry when cooked in the oven 415 FRAME_DOUGH_BALL = 2 416}; 417 418enum bucket_frames 419{ 420 FRAME_BUCKET_EMPTY = 0, 421 FRAME_BUCKET_WATER = 1, 422 FRAME_BUCKET_BLOOD = 2, 423 FRAME_BUCKET_WINE = 3, 424 FRAME_BUCKET_BEER = 4, 425 FRAME_BUCKET_BEER2 = 5, 426 FRAME_WATERINGCAN = 6 427}; 428