1 #pragma once 2 3 //******************************************************************************************** 4 //* 5 //* This file is part of Egoboo. 6 //* 7 //* Egoboo is free software: you can redistribute it and/or modify it 8 //* under the terms of the GNU General Public License as published by 9 //* the Free Software Foundation, either version 3 of the License, or 10 //* (at your option) any later version. 11 //* 12 //* Egoboo is distributed in the hope that it will be useful, but 13 //* WITHOUT ANY WARRANTY; without even the implied warranty of 14 //* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 //* General Public License for more details. 16 //* 17 //* You should have received a copy of the GNU General Public License 18 //* along with Egoboo. If not, see <http://www.gnu.org/licenses/>. 19 //* 20 //******************************************************************************************** 21 22 #include "egoboo_typedef.h" 23 24 //-------------------------------------------------------------------------------------------- 25 //-------------------------------------------------------------------------------------------- 26 27 /// AI stuff 28 #define AISMAXLOADSIZE (1024*1024) ///< For parsing AI scripts 29 #define AISMAXCOMPILESIZE (MAX_AI*4096/4) ///< For parsing AI scripts 30 #define MAXLINESIZE 1024 31 #define MAX_OPCODE 1024 ///< Number of lines in AICODES.TXT 32 #define MAXCODENAMESIZE 64 33 34 #define FUNCTION_BIT 0x80000000 35 #define DATA_BITS 0x78000000 36 #define VALUE_BITS 0x07FFFFFF 37 #define END_VALUE (FUNCTION_BIT | FEND) 38 39 #define GET_DATA_BITS(X) ( ( (X) >> 27 ) & 0x0F ) 40 #define SET_DATA_BITS(X) ( ( (X) & 0x0F ) << 27 ) 41 42 //-------------------------------------------------------------------------------------------- 43 //-------------------------------------------------------------------------------------------- 44 45 /// The data describing where a script is in AisCompiled_buffer 46 struct s_script_storage_info 47 { 48 STRING szName; 49 Uint32 iStartPosition; 50 Uint32 iEndPosition; 51 }; 52 typedef struct s_script_storage_info script_storage_info_t; 53 54 DECLARE_STATIC_ARY_TYPE( AisStorageAry, script_storage_info_t, MAX_AI ); 55 DECLARE_EXTERN_STATIC_ARY( AisStorageAry, AisStorage ); 56 57 //-------------------------------------------------------------------------------------------- 58 //-------------------------------------------------------------------------------------------- 59 extern int AisCompiled_offset; 60 extern Uint32 AisCompiled_buffer[AISMAXCOMPILESIZE]; 61 62 extern bool_t debug_scripts; 63 extern FILE * debug_script_file; 64 65 /// temporary data describing a single egoscript opcode 66 struct s_opcode_data 67 { 68 Uint8 cType; 69 Uint32 iValue; 70 char cName[MAXCODENAMESIZE]; 71 }; 72 typedef struct s_opcode_data opcode_data_t; 73 74 DECLARE_STATIC_ARY_TYPE( OpListAry, opcode_data_t, MAX_OPCODE ); 75 DECLARE_EXTERN_STATIC_ARY( OpListAry, OpList ); 76 77 //-------------------------------------------------------------------------------------------- 78 //-------------------------------------------------------------------------------------------- 79 80 /// A list of all possible egoscript functions 81 enum e_script_functions 82 { 83 /// Scripted AI functions (v0.10) 84 FIFSPAWNED = 0, // == 0 85 FIFTIMEOUT, // == 1 86 FIFATWAYPOINT, // == 2 87 FIFATLASTWAYPOINT, // == 3 88 FIFATTACKED, // == 4 89 FIFBUMPED, // == 5 90 FIFORDERED, // == 6 91 FIFCALLEDFORHELP, // == 7 92 FSETCONTENT, // == 8 93 FIFKILLED, // == 9 94 FIFTARGETKILLED, // == 10 95 FCLEARWAYPOINTS, // == 11 96 FADDWAYPOINT, // == 12 97 FFINDPATH, // == 13 98 FCOMPASS, // == 14 99 FGETTARGETARMORPRICE, // == 15 100 FSETTIME, // == 16 101 FGETCONTENT, // == 17 102 FJOINTARGETTEAM, // == 18 103 FSETTARGETTONEARBYENEMY, // == 19 104 FSETTARGETTOTARGETLEFTHAND, // == 20 105 FSETTARGETTOTARGETRIGHTHAND, // == 21 106 FSETTARGETTOWHOEVERATTACKED, // == 22 107 FSETTARGETTOWHOEVERBUMPED, // == 23 108 FSETTARGETTOWHOEVERCALLEDFORHELP, // == 24 109 FSETTARGETTOOLDTARGET, // == 25 110 FSETTURNMODETOVELOCITY, // == 26 111 FSETTURNMODETOWATCH, // == 27 112 FSETTURNMODETOSPIN, // == 28 113 FSETBUMPHEIGHT, // == 29 114 FIFTARGETHASID, // == 30 115 FIFTARGETHASITEMID, // == 31 116 FIFTARGETHOLDINGITEMID, // == 32 117 FIFTARGETHASSKILLID, // == 33 118 FELSE, // == 34 119 FRUN, // == 35 120 FWALK, // == 36 121 FSNEAK, // == 37 122 FDOACTION, // == 38 123 FKEEPACTION, // == 39 124 FISSUEORDER, // == 40 125 FDROPWEAPONS, // == 41 126 FTARGETDOACTION, // == 42 127 FOPENPASSAGE, // == 43 128 FCLOSEPASSAGE, // == 44 129 FIFPASSAGEOPEN, // == 45 130 FGOPOOF, // == 46 131 FCOSTTARGETITEMID, // == 47 132 FDOACTIONOVERRIDE, // == 48 133 FIFHEALED, // == 49 134 FSENDMESSAGE, // == 50 135 FCALLFORHELP, // == 51 136 FADDIDSZ, // == 52 137 FEND, // == 53 138 139 /// Scripted AI functions (v0.20) 140 FSETSTATE, // == 54 141 FGETSTATE, // == 55 142 FIFSTATEIS, // == 56 143 144 /// Scripted AI functions (v0.30) 145 FIFTARGETCANOPENSTUFF, // == 57 146 FIFGRABBED, // == 58 147 FIFDROPPED, // == 59 148 FSETTARGETTOWHOEVERISHOLDING, // == 60 149 FDAMAGETARGET, // == 61 150 FIFXISLESSTHANY, // == 62 151 152 /// Scripted AI functions (v0.40) 153 FSETWEATHERTIME, // == 63 154 FGETBUMPHEIGHT, // == 64 155 FIFREAFFIRMED, // == 65 156 FUNKEEPACTION, // == 66 157 FIFTARGETISONOTHERTEAM, // == 67 158 159 /// Scripted AI functions (v0.50) 160 FIFTARGETISONHATEDTEAM, // == 68 161 FPRESSLATCHBUTTON, // == 69 162 FSETTARGETTOTARGETOFLEADER, // == 70 163 FIFLEADERKILLED, // == 71 164 FBECOMELEADER, // == 72 165 166 /// Scripted AI functions (v0.60) 167 FCHANGETARGETARMOR, // == 73 168 FGIVEMONEYTOTARGET, // == 74 169 FDROPKEYS, // == 75 170 FIFLEADERISALIVE, // == 76 171 FIFTARGETISOLDTARGET, // == 77 172 FSETTARGETTOLEADER, // == 78 173 FSPAWNCHARACTER, // == 79 174 FRESPAWNCHARACTER, // == 80 175 FCHANGETILE, // == 81 176 FIFUSED, // == 82 177 FDROPMONEY, // == 83 178 FSETOLDTARGET, // == 84 179 FDETACHFROMHOLDER, // == 85 180 FIFTARGETHASVULNERABILITYID, // == 86 181 FCLEANUP, // == 87 182 FIFCLEANEDUP, // == 88 183 FIFSITTING, // == 89 184 FIFTARGETISHURT, // == 90 185 FIFTARGETISAPLAYER, // == 91 186 FPLAYSOUND, // == 92 187 FSPAWNPARTICLE, // == 93 188 FIFTARGETISALIVE, // == 94 189 FSTOP, // == 95 190 FDISAFFIRMCHARACTER, // == 96 191 FREAFFIRMCHARACTER, // == 97 192 FIFTARGETISSELF, // == 98 193 FIFTARGETISMALE, // == 99 194 FIFTARGETISFEMALE, // == 100 195 196 // Scripted AI functions (v0.70) 197 FSETTARGETTOSELF, // == 101 198 FSETTARGETTORIDER, // == 102 199 FGETATTACKTURN, // == 103 200 FGETDAMAGETYPE, // == 104 201 FBECOMESPELL, // == 105 202 FBECOMESPELLBOOK, // == 106 203 FIFSCOREDAHIT, // == 107 204 FIFDISAFFIRMED, // == 108 205 FTRANSLATEORDER, // == 109 206 FSETTARGETTOWHOEVERWASHIT, // == 110 207 FSETTARGETTOWIDEENEMY, // == 111 208 FIFCHANGED, // == 112 209 FIFINWATER, // == 113 210 FIFBORED, // == 114 211 FIFTOOMUCHBAGGAGE, // == 115 212 FIFGROGGED, // == 116 213 FIFDAZED, // == 117 214 FIFTARGETHASSPECIALID, // == 118 215 FPRESSTARGETLATCHBUTTON, // == 119 216 FIFINVISIBLE, // == 120 217 FIFARMORIS, // == 121 218 FGETTARGETGROGTIME, // == 122 219 FGETTARGETDAZETIME, // == 123 220 FSETDAMAGETYPE, // == 124 221 FSETWATERLEVEL, // == 125 222 FENCHANTTARGET, // == 126 223 FENCHANTCHILD, // == 127 224 FTELEPORTTARGET, // == 128 225 FGIVEEXPERIENCETOTARGET, // == 129 226 FINCREASEAMMO, // == 130 227 FUNKURSETARGET, // == 131 228 FGIVEEXPERIENCETOTARGETTEAM, // == 132 229 FIFUNARMED, // == 133 230 FRESTOCKTARGETAMMOIDALL, // == 134 231 FRESTOCKTARGETAMMOIDFIRST, // == 135 232 FFLASHTARGET, // == 136 233 FSETREDSHIFT, // == 137 234 FSETGREENSHIFT, // == 138 235 FSETBLUESHIFT, // == 139 236 FSETLIGHT, // == 140 237 FSETALPHA, // == 141 238 FIFHITFROMBEHIND, // == 142 239 FIFHITFROMFRONT, // == 143 240 FIFHITFROMLEFT, // == 144 241 FIFHITFROMRIGHT, // == 145 242 FIFTARGETISONSAMETEAM, // == 146 243 FKILLTARGET, // == 147 244 FUNDOENCHANT, // == 148 245 FGETWATERLEVEL, // == 149 246 FCOSTTARGETMANA, // == 150 247 FIFTARGETHASANYID, // == 151 248 FSETBUMPSIZE, // == 152 249 FIFNOTDROPPED, // == 153 250 FIFYISLESSTHANX, // == 154 251 FSETFLYHEIGHT, // == 155 252 FIFBLOCKED, // == 156 253 FIFTARGETISDEFENDING, // == 157 254 FIFTARGETISATTACKING, // == 158 255 FIFSTATEIS0, // == 159 256 FIFSTATEIS1, // == 160 257 FIFSTATEIS2, // == 161 258 FIFSTATEIS3, // == 162 259 FIFSTATEIS4, // == 163 260 FIFSTATEIS5, // == 164 261 FIFSTATEIS6, // == 165 262 FIFSTATEIS7, // == 166 263 FIFCONTENTIS, // == 167 264 FSETTURNMODETOWATCHTARGET, // == 168 265 FIFSTATEISNOT, // == 169 266 FIFXISEQUALTOY, // == 170 267 FDEBUGMESSAGE, // == 171 268 269 /// Scripted AI functions (v0.80) 270 FBLACKTARGET, // == 172 271 FSENDMESSAGENEAR, // == 173 272 FIFHITGROUND, // == 174 273 FIFNAMEISKNOWN, // == 175 274 FIFUSAGEISKNOWN, // == 176 275 FIFHOLDINGITEMID, // == 177 276 FIFHOLDINGRANGEDWEAPON, // == 178 277 FIFHOLDINGMELEEWEAPON, // == 179 278 FIFHOLDINGSHIELD, // == 180 279 FIFKURSED, // == 181 280 FIFTARGETISKURSED, // == 182 281 FIFTARGETISDRESSEDUP, // == 183 282 FIFOVERWATER, // == 184 283 FIFTHROWN, // == 185 284 FMAKENAMEKNOWN, // == 186 285 FMAKEUSAGEKNOWN, // == 187 286 FSTOPTARGETMOVEMENT, // == 188 287 FSETXY, // == 189 288 FGETXY, // == 190 289 FADDXY, // == 191 290 FMAKEAMMOKNOWN, // == 192 291 FSPAWNATTACHEDPARTICLE, // == 193 292 FSPAWNEXACTPARTICLE, // == 194 293 FACCELERATETARGET, // == 195 294 FIFDISTANCEISMORETHANTURN, // == 196 295 FIFCRUSHED, // == 197 296 FMAKECRUSHVALID, // == 198 297 FSETTARGETTOLOWESTTARGET, // == 199 298 FIFNOTPUTAWAY, // == 200 299 FIFTAKENOUT, // == 201 300 FIFAMMOOUT, // == 202 301 FPLAYSOUNDLOOPED, // == 203 302 FSTOPSOUND, // == 204 303 FHEALSELF, // == 205 304 FEQUIP, // == 206 305 FIFTARGETHASITEMIDEQUIPPED, // == 207 306 FSETOWNERTOTARGET, // == 208 307 FSETTARGETTOOWNER, // == 209 308 FSETFRAME, // == 210 309 FBREAKPASSAGE, // == 211 310 FSETRELOADTIME, // == 212 311 FSETTARGETTOWIDEBLAHID, // == 213 312 FPOOFTARGET, // == 214 313 FCHILDDOACTIONOVERRIDE, // == 215 314 FSPAWNPOOF, // == 216 315 FSETSPEEDPERCENT, // == 217 316 FSETCHILDSTATE, // == 218 317 FSPAWNATTACHEDSIZEDPARTICLE, // == 219 318 FCHANGEARMOR, // == 220 319 FSHOWTIMER, // == 221 320 FIFFACINGTARGET, // == 222 321 FPLAYSOUNDVOLUME, // == 223 322 FSPAWNATTACHEDFACEDPARTICLE, // == 224 323 FIFSTATEISODD, // == 225 324 FSETTARGETTODISTANTENEMY, // == 226 325 FTELEPORT, // == 227 326 FGIVESTRENGTHTOTARGET, // == 228 327 FGIVEWISDOMTOTARGET, // == 229 328 FGIVEINTELLIGENCETOTARGET, // == 230 329 FGIVEDEXTERITYTOTARGET, // == 231 330 FGIVELIFETOTARGET, // == 232 331 FGIVEMANATOTARGET, // == 233 332 FSHOWMAP, // == 234 333 FSHOWYOUAREHERE, // == 235 334 FSHOWBLIPXY, // == 236 335 FHEALTARGET, // == 237 336 FPUMPTARGET, // == 238 337 FCOSTAMMO, // == 239 338 FMAKESIMILARNAMESKNOWN, // == 240 339 FSPAWNATTACHEDHOLDERPARTICLE, // == 241 340 FSETTARGETRELOADTIME, // == 242 341 FSETFOGLEVEL, // == 243 342 FGETFOGLEVEL, // == 244 343 FSETFOGTAD, // == 245 344 FSETFOGBOTTOMLEVEL, // == 246 345 FGETFOGBOTTOMLEVEL, // == 247 346 FCORRECTACTIONFORHAND, // == 248 347 FIFTARGETISMOUNTED, // == 249 348 FSPARKLEICON, // == 250 349 FUNSPARKLEICON, // == 251 350 FGETTILEXY, // == 252 351 FSETTILEXY, // == 253 352 FSETSHADOWSIZE, // == 254 353 FORDERTARGET, // == 255 354 FSETTARGETTOWHOEVERISINPASSAGE, // == 256 355 FIFCHARACTERWASABOOK, // == 257 356 357 /// Scripted AI functions (v0.90) 358 FSETENCHANTBOOSTVALUES, // == 258 359 FSPAWNCHARACTERXYZ, // == 259 360 FSPAWNEXACTCHARACTERXYZ, // == 260 361 FCHANGETARGETCLASS, // == 261 362 FPLAYFULLSOUND, // == 262 363 FSPAWNEXACTCHASEPARTICLE, // == 263 364 FCREATEORDER, // == 264 365 FORDERSPECIALID, // == 265 366 FUNKURSETARGETINVENTORY, // == 266 367 FIFTARGETISSNEAKING, // == 267 368 FDROPITEMS, // == 268 369 FRESPAWNTARGET, // == 269 370 FTARGETDOACTIONSETFRAME, // == 270 371 FIFTARGETCANSEEINVISIBLE, // == 271 372 FSETTARGETTONEARESTBLAHID, // == 272 373 FSETTARGETTONEARESTENEMY, // == 273 374 FSETTARGETTONEARESTFRIEND, // == 274 375 FSETTARGETTONEARESTLIFEFORM, // == 275 376 FFLASHPASSAGE, // == 276 377 FFINDTILEINPASSAGE, // == 277 378 FIFHELDINLEFTHAND, // == 278 379 FNOTANITEM, // == 279 380 FSETCHILDAMMO, // == 280 381 FIFHITVULNERABLE, // == 281 382 FIFTARGETISFLYING, // == 282 383 FIDENTIFYTARGET, // == 283 384 FBEATMODULE, // == 284 385 FENDMODULE, // == 285 386 FDISABLEEXPORT, // == 286 387 FENABLEEXPORT, // == 287 388 FGETTARGETSTATE, // == 288 389 390 /// Redone in v 0.95 391 FIFEQUIPPED, // == 289 392 FDROPTARGETMONEY, // == 290 393 FGETTARGETCONTENT, // == 291 394 FDROPTARGETKEYS, // == 292 395 FJOINTEAM, // == 293 396 FTARGETJOINTEAM, // == 294 397 398 /// Below is original code again 399 FCLEARMUSICPASSAGE, // == 295 400 FCLEARENDMESSAGE, // == 296 401 FADDENDMESSAGE, // == 297 402 FPLAYMUSIC, // == 298 403 FSETMUSICPASSAGE, // == 299 404 FMAKECRUSHINVALID, // == 300 405 FSTOPMUSIC, // == 301 406 FFLASHVARIABLE, // == 302 407 FACCELERATEUP, // == 303 408 FFLASHVARIABLEHEIGHT, // == 304 409 FSETDAMAGETIME, // == 305 410 FIFSTATEIS8, // == 306 411 FIFSTATEIS9, // == 307 412 FIFSTATEIS10, // == 308 413 FIFSTATEIS11, // == 309 414 FIFSTATEIS12, // == 310 415 FIFSTATEIS13, // == 311 416 FIFSTATEIS14, // == 312 417 FIFSTATEIS15, // == 313 418 FIFTARGETISAMOUNT, // == 314 419 FIFTARGETISAPLATFORM, // == 315 420 FADDSTAT, // == 316 421 FDISENCHANTTARGET, // == 317 422 FDISENCHANTALL, // == 318 423 FSETVOLUMENEARESTTEAMMATE, // == 319 424 FADDSHOPPASSAGE, // == 320 425 FTARGETPAYFORARMOR, // == 321 426 FJOINEVILTEAM, // == 322 427 FJOINNULLTEAM, // == 323 428 FJOINGOODTEAM, // == 324 429 FPITSKILL, // == 325 430 FSETTARGETTOPASSAGEID, // == 326 431 FMAKENAMEUNKNOWN, // == 327 432 FSPAWNEXACTPARTICLEENDSPAWN, // == 328 433 FSPAWNPOOFSPEEDSPACINGDAMAGE, // == 329 434 FGIVEEXPERIENCETOGOODTEAM, // == 330 435 436 /// Scripted AI functions (v0.95) 437 FDONOTHING, // == 331 438 FGROGTARGET, // == 332 439 FDAZETARGET, // == 333 440 FENABLERESPAWN, // == 334 441 FDISABLERESPAWN, // == 335 442 443 /// Redone in v 1.10 444 FDISPELTARGETENCHANTID, // == 336 445 FIFHOLDERBLOCKED, // == 337 446 FGETSKILLLEVEL, // == 338 447 FIFTARGETHASNOTFULLMANA, // == 339 448 FENABLELISTENSKILL, // == 340 449 FSETTARGETTOLASTITEMUSED, // == 341 450 FFOLLOWLINK, // == 342 Scripted AI functions (v1.00) 451 FIFOPERATORISLINUX, // == 343 452 FIFTARGETISAWEAPON, // == 344 453 FIFSOMEONEISSTEALING, // == 345 454 FIFTARGETISASPELL, // == 346 455 FIFBACKSTABBED, // == 347 456 FGETTARGETDAMAGETYPE, // == 348 457 FADDQUEST, // == 349 458 FBEATQUESTALLPLAYERS, // == 350 459 FIFTARGETHASQUEST, // == 351 460 FSETQUESTLEVEL, // == 352 461 FADDQUESTALLPLAYERS, // == 353 462 FADDBLIPALLENEMIES, // == 354 463 FPITSFALL, // == 355 464 FIFTARGETISOWNER, // == 356 465 466 /// adding in the "speech" thing so the script can define its "ouch" sound, for instance 467 FSETSPEECH, // == 357 468 FSETMOVESPEECH, // == 358 469 FSETSECONDMOVESPEECH, // == 359 470 FSETATTACKSPEECH, // == 360 471 FSETASSISTSPEECH, // == 361 472 FSETTERRAINSPEECH, // == 362 473 FSETSELECTSPEECH, // == 363 474 475 /// Scripted AI functions (v1.10) 476 FTAKEPICTURE, // == 364 477 FIFOPERATORISMACINTOSH, // == 365 478 FIFMODULEHASIDSZ, // == 366 479 FMORPHTOTARGET, // == 367 480 FGIVEMANAFLOWTOTARGET, // == 368 481 FGIVEMANARETURNTOTARGET, // == 369 482 FSETMONEY, // == 370 483 FIFTARGETCANSEEKURSES, // == 371 484 FSPAWNATTACHEDCHARACTER, // == 372 485 FKURSETARGET, // == 373 486 FSETCHILDCONTENT, // == 374 487 FSETTARGETTOCHILD, // == 375 488 FSETDAMAGETHRESHOLD, // == 376 489 FACCELERATETARGETUP, // == 377 490 FSETTARGETAMMO, // == 378 491 FENABLEINVICTUS, // == 379 492 FDISABLEINVICTUS, // == 380 493 FTARGETDAMAGESELF, // == 381 494 FSETTARGETSIZE, // == 382 495 FIFTARGETISFACINGSELF, // == 383 496 FDRAWBILLBOARD, // == 384 497 FSETTARGETTOFIRSTBLAHINPASSAGE, // == 385 498 499 FIFLEVELUP, // == 386 500 FGIVESKILLTOTARGET, // == 387 501 502 SCRIPT_FUNCTIONS_COUNT 503 }; 504 505 extern const char * script_function_names[SCRIPT_FUNCTIONS_COUNT]; 506 507 //-------------------------------------------------------------------------------------------- 508 //-------------------------------------------------------------------------------------------- 509 510 /// A list of all possible egoscript operators 511 enum e_script_operators 512 { 513 OPADD = 0, ///< + 514 OPSUB, ///< - 515 OPAND, ///< & 516 OPSHR, ///< > 517 OPSHL, ///< < 518 OPMUL, ///< * 519 OPDIV, ///< / 520 OPMOD ///< % 521 }; 522 523 //-------------------------------------------------------------------------------------------- 524 //-------------------------------------------------------------------------------------------- 525 526 /// A list of all possible egoscript pre-defined variables 527 enum e_script_variables 528 { 529 VARTMPX = 0, // == 0 530 VARTMPY, // == 1 531 VARTMPDISTANCE, // == 2 532 VARTMPTURN, // == 3 533 VARTMPARGUMENT, // == 4 534 VARRAND, // == 5 535 VARSELFX, // == 6 536 VARSELFY, // == 7 537 VARSELFTURN, // == 8 538 VARSELFCOUNTER, // == 9 539 VARSELFORDER, // == 10 540 VARSELFMORALE, // == 11 541 VARSELFLIFE, // == 12 542 VARTARGETX, // == 13 543 VARTARGETY, // == 14 544 VARTARGETDISTANCE, // == 15 545 VARTARGETTURN, // == 16 546 VARLEADERX, // == 17 547 VARLEADERY, // == 18 548 VARLEADERDISTANCE, // == 19 549 VARLEADERTURN, // == 20 550 VARGOTOX, // == 21 551 VARGOTOY, // == 22 552 VARGOTODISTANCE, // == 23 553 VARTARGETTURNTO, // == 24 554 VARPASSAGE, // == 25 555 VARWEIGHT, // == 26 556 VARSELFALTITUDE, // == 27 557 VARSELFID, // == 28 558 VARSELFHATEID, // == 29 559 VARSELFMANA, // == 30 560 VARTARGETSTR, // == 31 561 VARTARGETWIS, // == 32 562 VARTARGETINT, // == 33 563 VARTARGETDEX, // == 34 564 VARTARGETLIFE, // == 35 565 VARTARGETMANA, // == 36 566 VARTARGETLEVEL, // == 37 567 VARTARGETSPEEDX, // == 38 568 VARTARGETSPEEDY, // == 39 569 VARTARGETSPEEDZ, // == 40 570 VARSELFSPAWNX, // == 41 571 VARSELFSPAWNY, // == 42 572 VARSELFSTATE, // == 43 573 VARSELFSTR, // == 44 574 VARSELFWIS, // == 45 575 VARSELFINT, // == 46 576 VARSELFDEX, // == 47 577 VARSELFMANAFLOW, // == 48 578 VARTARGETMANAFLOW, // == 49 579 VARSELFATTACHED, // == 50 580 VARSWINGTURN, // == 51 581 VARXYDISTANCE, // == 52 582 VARSELFZ, // == 53 583 VARTARGETALTITUDE, // == 54 584 VARTARGETZ, // == 55 585 VARSELFINDEX, // == 56 586 VAROWNERX, // == 57 587 VAROWNERY, // == 58 588 VAROWNERTURN, // == 59 589 VAROWNERDISTANCE, // == 60 590 VAROWNERTURNTO, // == 61 591 VARXYTURNTO, // == 62 592 VARSELFMONEY, // == 63 593 VARSELFACCEL, // == 64 594 VARTARGETEXP, // == 65 595 VARSELFAMMO, // == 66 596 VARTARGETAMMO, // == 67 597 VARTARGETMONEY, // == 68 598 VARTARGETTURNAWAY, // == 69 599 VARSELFLEVEL, // == 70 600 VARTARGETRELOADTIME, // == 71 601 VARSELFCONTENT, // == 72 602 VARSPAWNDISTANCE, // == 73 603 VARTARGETMAXLIFE, // == 74 604 VARTARGETTEAM, // == 75 605 VARTARGETARMOR, // == 76 606 VARDIFFICULTY, // == 77 607 VARTIMEHOURS, // == 78 608 VARTIMEMINUTES, // == 79 609 VARTIMESECONDS, // == 80 610 VARDATEMONTH, // == 81 611 VARDATEDAY // == 82 612 }; 613 614 //-------------------------------------------------------------------------------------------- 615 //-------------------------------------------------------------------------------------------- 616 617 extern bool_t parseerror; 618 619 //-------------------------------------------------------------------------------------------- 620 //-------------------------------------------------------------------------------------------- 621 // function prototypes 622 623 int load_ai_script_vfs( const char *loadname ); 624 625 void init_all_ai_scripts(); 626 void release_all_ai_scripts(); 627 628 void script_compiler_init(); 629