1 #ifndef ANIMATION_DATA_H_ 2 #define ANIMATION_DATA_H_ 3 4 #include "JA2Types.h" 5 6 7 // DEFINES FOR ANIMATION PROFILES 8 #define TILE_FLAG_FEET 0x0001 9 #define TILE_FLAG_MID 0x0002 10 #define TILE_FLAG_HEAD 0x0004 11 #define TILE_FLAG_CANMOVE 0x0008 12 #define TILE_FLAG_NORTH_HALF 0x0010 13 #define TILE_FLAG_SOUTH_HALF 0x0020 14 #define TILE_FLAG_WEST_HALF 0x0040 15 #define TILE_FLAG_EAST_HALF 0x0080 16 #define TILE_FLAG_TOP_HALF 0x0100 17 #define TILE_FLAG_BOTTOM_HALF 0x0200 18 19 #define ANIM_DATA_FLAG_NOFRAMES 0x01 20 21 22 // BODY TYPES 23 // RGM = Regular Male 24 // (RG) = Body desc ( Regular - RG, Short Stocky ( SS ), etc 25 // (M) = Sex, Male, female 26 #define IS_MERC_BODY_TYPE(p) ((p)->ubBodyType <= REGFEMALE) 27 #define IS_CIV_BODY_TYPE(p) (FATCIV <= (p)->ubBodyType && (p)->ubBodyType <= CRIPPLECIV) 28 29 #define NUMSOLDIERBODYTYPES 4 30 31 enum SoldierBodyType 32 { 33 BODY_RANDOM = -1, 34 REGMALE = 0, 35 BIGMALE, 36 STOCKYMALE, 37 REGFEMALE, 38 ADULTFEMALEMONSTER, 39 AM_MONSTER, 40 YAF_MONSTER, 41 YAM_MONSTER, 42 LARVAE_MONSTER, 43 INFANT_MONSTER, 44 QUEENMONSTER, 45 FATCIV, 46 MANCIV, 47 MINICIV, 48 DRESSCIV, 49 HATKIDCIV, 50 KIDCIV, 51 CRIPPLECIV, 52 53 COW, 54 CROW, 55 BLOODCAT, 56 57 ROBOTNOWEAPON, 58 59 HUMVEE, 60 TANK_NW, 61 TANK_NE, 62 ELDORADO, 63 ICECREAMTRUCK, 64 JEEP, 65 66 TOTALBODYTYPES 67 }; 68 69 70 // This enumeration defines the graphic image file per animation 71 72 // RGM = Regular Male 73 // (RG) = Body desc ( Regular - RG, Short Stocky ( SS ), etc 74 // (M) = Sex, Male, female 75 enum AnimationSurfaceTypes 76 { 77 RGMBASICWALKING = 0, 78 RGMSTANDING, 79 RGMCROUCHING, 80 RGMSNEAKING, 81 RGMRUNNING, 82 RGMPRONE, 83 RGMSTANDAIM, 84 RGMHITHARD, 85 RGMHITSTAND, 86 RGMHITHARDBLOOD, 87 RGMCROUCHAIM, 88 RGMHITFALLBACK, 89 RGMROLLOVER, 90 RGMCLIMBROOF, 91 RGMFALL, 92 RGMFALLF, 93 RGMHITCROUCH, 94 RGMHITPRONE, 95 RGMHOPFENCE, 96 RGMPUNCH, 97 RGMNOTHING_STD, 98 RGMNOTHING_WALK, 99 RGMNOTHING_RUN, 100 RGMNOTHING_SWAT, 101 RGMNOTHING_CROUCH, 102 RGMHANDGUN_S_SHOT, 103 RGMHANDGUN_C_SHOT, 104 RGMHANDGUN_PRONE, 105 RGMDIE_JFK, 106 RGMOPEN, 107 RGMPICKUP, 108 RGMSTAB, 109 RGMSLICE, 110 RGMCSTAB, 111 RGMMEDIC, 112 RGMDODGE, 113 RGMSTANDDWALAIM, 114 RGMRAISE, 115 RGMTHROW, 116 RGMLOB, 117 RGMKICKDOOR, 118 RGMRHIT, 119 RGM_SQUISH, 120 RGM_LOOK, 121 RGM_PULL, 122 RGM_SPIT, 123 RGMWATER_R_WALK, 124 RGMWATER_R_STD, 125 RGMWATER_N_WALK, 126 RGMWATER_N_STD, 127 RGMWATER_DIE, 128 RGMWATER_N_AIM, 129 RGMWATER_R_AIM, 130 RGMWATER_DBLSHT, 131 RGMWATER_TRANS, 132 RGMDEEPWATER_TRED, 133 RGMDEEPWATER_SWIM, 134 RGMDEEPWATER_DIE, 135 RGMMCLIMB, 136 RGMHELIDROP, 137 RGMLOWKICK, 138 RGMNPUNCH, 139 RGMSPINKICK, 140 RGMSLEEP, 141 RGMSHOOT_LOW, 142 RGMCDBLSHOT, 143 RGMHURTSTANDINGN, 144 RGMHURTSTANDINGR, 145 RGMHURTWALKINGN, 146 RGMHURTWALKINGR, 147 RGMHURTTRANS, 148 RGMTHROWKNIFE, 149 RGMBREATHKNIFE, 150 RGMPISTOLBREATH, 151 RGMCOWER, 152 RGMROCKET, 153 RGMMORTAR, 154 RGMSIDESTEP, 155 RGMDBLBREATH, 156 RGMPUNCHLOW, 157 RGMPISTOLSHOOTLOW, 158 RGMWATERTHROW, 159 RGMRADIO, 160 RGMCRRADIO, 161 RGMBURN, 162 RGMDWPRONE, 163 RGMDRUNK, 164 RGMPISTOLDRUNK, 165 RGMCROWBAR, 166 RGMJUMPOVER, 167 168 BGMWALKING, 169 BGMSTANDING, 170 BGMCROUCHING, 171 BGMSNEAKING, 172 BGMRUNNING, 173 BGMPRONE, 174 BGMSTANDAIM, 175 BGMHITHARD, 176 BGMHITSTAND, 177 BGMHITHARDBLOOD, 178 BGMCROUCHAIM, 179 BGMHITFALLBACK, 180 BGMROLLOVER, 181 BGMCLIMBROOF, 182 BGMFALL, 183 BGMFALLF, 184 BGMHITCROUCH, 185 BGMHITPRONE, 186 BGMHOPFENCE, 187 BGMPUNCH, 188 BGMNOTHING_STD, 189 BGMNOTHING_WALK, 190 BGMNOTHING_RUN, 191 BGMNOTHING_SWAT, 192 BGMNOTHING_CROUCH, 193 BGMHANDGUN_S_SHOT, 194 BGMHANDGUN_C_SHOT, 195 BGMHANDGUN_PRONE, 196 BGMDIE_JFK, 197 BGMOPEN, 198 BGMPICKUP, 199 BGMSTAB, 200 BGMSLICE, 201 BGMCSTAB, 202 BGMMEDIC, 203 BGMDODGE, 204 BGMSTANDDWALAIM, 205 BGMRAISE, 206 BGMTHROW, 207 BGMLOB, 208 BGMKICKDOOR, 209 BGMRHIT, 210 BGMSTANDAIM2, 211 BGMFLEX, 212 BGMSTRECH, 213 BGMSHOEDUST, 214 BGMHEADTURN, 215 BGMWATER_R_WALK, 216 BGMWATER_R_STD, 217 BGMWATER_N_WALK, 218 BGMWATER_N_STD, 219 BGMWATER_DIE, 220 BGMWATER_N_AIM, 221 BGMWATER_R_AIM, 222 BGMWATER_DBLSHT, 223 BGMWATER_TRANS, 224 BGMDEEPWATER_TRED, 225 BGMDEEPWATER_SWIM, 226 BGMDEEPWATER_DIE, 227 BGMHELIDROP, 228 BGMSLEEP, 229 BGMSHOOT_LOW, 230 BGMTHREATENSTAND, 231 BGMCDBLSHOT, 232 BGMHURTSTANDINGN, 233 BGMHURTSTANDINGR, 234 BGMHURTWALKINGN, 235 BGMHURTWALKINGR, 236 BGMHURTTRANS, 237 BGMTHROWKNIFE, 238 BGMBREATHKNIFE, 239 BGMPISTOLBREATH, 240 BGMCOWER, 241 BGMRAISE2, 242 BGMROCKET, 243 BGMMORTAR, 244 BGMSIDESTEP, 245 BGMDBLBREATH, 246 BGMPUNCHLOW, 247 BGMPISTOLSHOOTLOW, 248 BGMWATERTHROW, 249 BGMWALK2, 250 BGMRUN2, 251 BGMIDLENECK, 252 BGMCROUCHTRANS, 253 BGMRADIO, 254 BGMCRRADIO, 255 BGMDWPRONE, 256 BGMDRUNK, 257 BGMPISTOLDRUNK, 258 BGMCROWBAR, 259 BGMJUMPOVER, 260 261 262 RGFWALKING, 263 RGFSTANDING, 264 RGFCROUCHING, 265 RGFSNEAKING, 266 RGFRUNNING, 267 RGFPRONE, 268 RGFSTANDAIM, 269 RGFHITHARD, 270 RGFHITSTAND, 271 RGFHITHARDBLOOD, 272 RGFCROUCHAIM, 273 RGFHITFALLBACK, 274 RGFROLLOVER, 275 RGFCLIMBROOF, 276 RGFFALL, 277 RGFFALLF, 278 RGFHITCROUCH, 279 RGFHITPRONE, 280 RGFHOPFENCE, 281 RGFPUNCH, 282 RGFNOTHING_STD, 283 RGFNOTHING_WALK, 284 RGFNOTHING_RUN, 285 RGFNOTHING_SWAT, 286 RGFNOTHING_CROUCH, 287 RGFHANDGUN_S_SHOT, 288 RGFHANDGUN_C_SHOT, 289 RGFHANDGUN_PRONE, 290 RGFDIE_JFK, 291 RGFOPEN, 292 RGFPICKUP, 293 RGFSTAB, 294 RGFSLICE, 295 RGFCSTAB, 296 RGFMEDIC, 297 RGFDODGE, 298 RGFSTANDDWALAIM, 299 RGFRAISE, 300 RGFTHROW, 301 RGFLOB, 302 RGFKICKDOOR, 303 RGFRHIT, 304 RGFCLEAN, 305 RGFKICKSN, 306 RGFALOOK, 307 RGFWIPE, 308 RGFWATER_R_WALK, 309 RGFWATER_R_STD, 310 RGFWATER_N_WALK, 311 RGFWATER_N_STD, 312 RGFWATER_DIE, 313 RGFWATER_N_AIM, 314 RGFWATER_R_AIM, 315 RGFWATER_DBLSHT, 316 RGFWATER_TRANS, 317 RGFDEEPWATER_TRED, 318 RGFDEEPWATER_SWIM, 319 RGFDEEPWATER_DIE, 320 RGFHELIDROP, 321 RGFSLEEP, 322 RGFSHOOT_LOW, 323 RGFCDBLSHOT, 324 RGFHURTSTANDINGN, 325 RGFHURTSTANDINGR, 326 RGFHURTWALKINGN, 327 RGFHURTWALKINGR, 328 RGFHURTTRANS, 329 RGFTHROWKNIFE, 330 RGFBREATHKNIFE, 331 RGFPISTOLBREATH, 332 RGFCOWER, 333 RGFROCKET, 334 RGFMORTAR, 335 RGFSIDESTEP, 336 RGFDBLBREATH, 337 RGFPUNCHLOW, 338 RGFPISTOLSHOOTLOW, 339 RGFWATERTHROW, 340 RGFRADIO, 341 RGFCRRADIO, 342 RGFSLAP, 343 RGFDWPRONE, 344 RGFDRUNK, 345 RGFPISTOLDRUNK, 346 RGFCROWBAR, 347 RGFJUMPOVER, 348 349 AFMONSTERSTANDING, 350 AFMONSTERWALKING, 351 AFMONSTERATTACK, 352 AFMONSTERCLOSEATTACK, 353 AFMONSTERSPITATTACK, 354 AFMONSTEREATING, 355 AFMONSTERDIE, 356 AFMUP, 357 AFMJUMP, 358 AFMMELT, 359 360 LVBREATH, 361 LVDIE, 362 LVWALK, 363 364 IBREATH, 365 IWALK, 366 IDIE, 367 IEAT, 368 IATTACK, 369 370 QUEENMONSTERSTANDING, 371 QUEENMONSTERREADY, 372 QUEENMONSTERSPIT_SW, 373 QUEENMONSTERSPIT_E, 374 QUEENMONSTERSPIT_NE, 375 QUEENMONSTERSPIT_S, 376 QUEENMONSTERSPIT_SE, 377 QUEENMONSTERDEATH, 378 QUEENMONSTERSWIPE, 379 380 FATMANSTANDING, 381 FATMANWALKING, 382 FATMANRUNNING, 383 FATMANDIE, 384 FATMANASS, 385 FATMANACT, 386 FATMANCOWER, 387 FATMANDIE2, 388 FATMANCOWERHIT, 389 390 MANCIVSTANDING, 391 MANCIVWALKING, 392 MANCIVRUNNING, 393 MANCIVDIE, 394 MANCIVACT, 395 MANCIVCOWER, 396 MANCIVDIE2, 397 MANCIVSMACKED, 398 MANCIVPUNCH, 399 MANCIVCOWERHIT, 400 401 MINICIVSTANDING, 402 MINICIVWALKING, 403 MINICIVRUNNING, 404 MINICIVDIE, 405 MINISTOCKING, 406 MINIACT, 407 MINICOWER, 408 MINIDIE2, 409 MINICOWERHIT, 410 411 DRESSCIVSTANDING, 412 DRESSCIVWALKING, 413 DRESSCIVRUNNING, 414 DRESSCIVDIE, 415 DRESSCIVACT, 416 DRESSCIVCOWER, 417 DRESSCIVDIE2, 418 DRESSCIVCOWERHIT, 419 420 HATKIDCIVSTANDING, 421 HATKIDCIVWALKING, 422 HATKIDCIVRUNNING, 423 HATKIDCIVDIE, 424 HATKIDCIVJFK, 425 HATKIDCIVYOYO, 426 HATKIDCIVACT, 427 HATKIDCIVCOWER, 428 HATKIDCIVDIE2, 429 HATKIDCIVCOWERHIT, 430 HATKIDCIVSKIP, 431 432 KIDCIVSTANDING, 433 KIDCIVWALKING, 434 KIDCIVRUNNING, 435 KIDCIVDIE, 436 KIDCIVJFK, 437 KIDCIVARMPIT, 438 KIDCIVACT, 439 KIDCIVCOWER, 440 KIDCIVDIE2, 441 KIDCIVCOWERHIT, 442 KIDCIVSKIP, 443 444 CRIPCIVSTANDING, 445 CRIPCIVWALKING, 446 CRIPCIVRUNNING, 447 CRIPCIVBEG, 448 CRIPCIVDIE, 449 CRIPCIVDIE2, 450 CRIPCIVKICK, 451 452 COWSTANDING, 453 COWWALKING, 454 COWDIE, 455 COWEAT, 456 457 CROWWALKING, 458 CROWFLYING, 459 CROWEATING, 460 CROWDYING, 461 462 CATBREATH, 463 CATWALK, 464 CATRUN, 465 CATREADY, 466 CATHIT, 467 CATDIE, 468 CATSWIPE, 469 CATBITE, 470 471 ROBOTNWBREATH, 472 ROBOTNWWALK, 473 ROBOTNWHIT, 474 ROBOTNWDIE, 475 ROBOTNWSHOOT, 476 477 HUMVEE_BASIC, 478 HUMVEE_DIE, 479 480 TANKNW_READY, 481 TANKNW_SHOOT, 482 TANKNW_DIE, 483 484 TANKNE_READY, 485 TANKNE_SHOOT, 486 TANKNE_DIE, 487 488 ELDORADO_BASIC, 489 ELDORADO_DIE, 490 491 ICECREAMTRUCK_BASIC, 492 ICECREAMTRUCK_DIE, 493 494 JEEP_BASIC, 495 JEEP_DIE, 496 497 BODYEXPLODE, 498 499 NUMANIMATIONSURFACETYPES 500 }; 501 502 // Enumerations for struct data 503 enum 504 { 505 S_STRUCT, 506 C_STRUCT, 507 P_STRUCT, 508 F_STRUCT, 509 FB_STRUCT, 510 DEFAULT_STRUCT, 511 NUM_STRUCT_IDS, 512 NO_STRUCT = 120, 513 }; 514 515 // Struct for animation 'surface' information 516 struct AnimationSurfaceType 517 { 518 const UINT16 ubName; 519 const char Filename[50]; 520 const CHAR8 bStructDataType; 521 const UINT8 ubFlags; 522 const UINT32 uiNumDirections; 523 UINT32 uiNumFramesPerDir; 524 HVOBJECT hVideoObject; 525 INT8 bUsageCount; 526 const INT8 bProfile; 527 }; 528 529 530 extern AnimationSurfaceType gAnimSurfaceDatabase[NUMANIMATIONSURFACETYPES]; 531 532 533 void InitAnimationSystem(void); 534 void DeInitAnimationSystem(void); 535 void LoadAnimationSurface(UINT16 usSoldierID, UINT16 usSurfaceIndex, UINT16 usAnimState); 536 void UnLoadAnimationSurface(UINT16 usSoldierID, UINT16 usSurfaceIndex); 537 void ClearAnimationSurfacesUsageHistory( UINT16 usSoldierID ); 538 539 540 STRUCTURE_FILE_REF* GetAnimationStructureRef(const SOLDIERTYPE* s, UINT16 usSurfaceIndex, UINT16 usAnimState); 541 542 // Profile data 543 extern ANIM_PROF* gpAnimProfiles; 544 545 void ZeroAnimSurfaceCounts(void); 546 547 #endif 548