├── .gitattributes ├── .gitignore ├── .vscode └── tasks.json ├── LICENSE ├── README.md ├── app └── src │ ├── lib │ ├── Serilog │ │ ├── Serilog.ts │ │ └── Sinks │ │ │ ├── PreloadSink.ts │ │ │ └── StringSink.ts │ └── core │ │ ├── blizzard.d.ts │ │ ├── blizzard.j │ │ ├── ceres.d.ts │ │ ├── common.ai │ │ ├── common.d.ts │ │ ├── common.j │ │ ├── compat.d.ts │ │ └── polyfill.ts │ └── main.ts ├── build.js ├── ceres.toml ├── maps └── map.w3x ├── package.json ├── tools ├── MPQEditor │ ├── History.txt │ ├── Win32 │ │ └── MPQEditor.exe │ └── x64 │ │ └── MPQEditor.exe ├── ceres │ ├── ceres │ ├── ceres-linux │ └── ceres.exe └── sed.exe ├── tsconfig.json ├── tslint.json └── wc3-app.code-workspace /.gitattributes: -------------------------------------------------------------------------------- 1 | *.j linguist-language=TypeScript 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea 3 | config/warcraft.json 4 | src/ 5 | target/ 6 | node_modules/ 7 | package-lock.json 8 | *.lua 9 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "label": "build", 8 | "type": "shell", 9 | "windows": { 10 | "command": "node --build" 11 | }, 12 | "osx": { 13 | "command": "node --build" 14 | }, 15 | "group": { 16 | "kind": "test", 17 | "isDefault": true 18 | }, 19 | "problemMatcher": [] 20 | }, 21 | { 22 | "label": "build-test", 23 | "type": "shell", 24 | "windows": { 25 | "command": "node --build --run" 26 | }, 27 | "osx": { 28 | "command": "node --build --run" 29 | }, 30 | "group": { 31 | "kind": "build", 32 | "isDefault": true 33 | }, 34 | "problemMatcher": [] 35 | } 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2019 Henning Berge 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ceres Typescript buildtools 2 | 3 | * Requires node installed 4 | * put base map in maps, as maps/map.w3x 5 | * edit app/src/main.ts 6 | * run node build.js --jass --build --run 7 | -------------------------------------------------------------------------------- /app/src/lib/Serilog/Serilog.ts: -------------------------------------------------------------------------------- 1 | export enum LogLevel 2 | { 3 | None = -1, 4 | Verbose = 0, 5 | Debug = 1, 6 | Information = 2, 7 | Warning = 3, 8 | Error = 4, 9 | Fatal = 5, 10 | } 11 | 12 | export enum LogEventType 13 | { 14 | Text, 15 | Parameter, 16 | } 17 | 18 | export class LogEvent 19 | { 20 | constructor(public readonly Type: LogEventType, public readonly Text: string, public readonly Value: any) { } 21 | } 22 | 23 | export interface ILogSink 24 | { 25 | LogLevel(): LogLevel; 26 | Log(level: LogLevel, events: LogEvent[]): void; 27 | } 28 | 29 | export module Log 30 | { 31 | let _sinks: ILogSink[]; 32 | 33 | export function Init(this: void, sinks: ILogSink[]): void 34 | { 35 | _sinks = sinks; 36 | } 37 | 38 | function Parse(this: void, message: string, ...args: any[]): LogEvent[] 39 | { 40 | let logEvents: LogEvent[] = []; 41 | 42 | const matcher = string.gmatch(message, "{.-}"); 43 | let match: string; 44 | let text: string; 45 | let n: number = 0; 46 | let i: number = 0; 47 | // @ts-ignore 48 | while (match = matcher()) 49 | { 50 | let [s, e] = string.find(message, match, 1, true); 51 | if (!s || !e) continue; // this should never happen 52 | text = message.substring(i, s - 1); 53 | if (text != "") 54 | logEvents.push(new LogEvent(LogEventType.Text, text, null)); 55 | logEvents.push(new LogEvent(LogEventType.Parameter, match, args[n])); 56 | i = e; 57 | n += 1; 58 | } 59 | text = message.substring(i); 60 | if (text != "") 61 | logEvents.push(new LogEvent(LogEventType.Text, text, null)); 62 | 63 | return logEvents; 64 | } 65 | 66 | export function Log(this: void, level: LogLevel, message: string, ...args: any[]): void 67 | { 68 | const logEvents = Parse(message, ...args); 69 | for (let index = 0; index < _sinks.length; index++) 70 | { 71 | if (_sinks[index].LogLevel() <= level) 72 | { 73 | _sinks[index].Log(level, logEvents); 74 | } 75 | } 76 | } 77 | 78 | export function Fatal(this: void, message: string, ...args: any[]): void { Log(LogLevel.Fatal, message, ...args); } 79 | 80 | export function Error(this: void, message: string, ...args: any[]): void { Log(LogLevel.Error, message, ...args); } 81 | 82 | export function Warning(this: void, message: string, ...args: any[]): void { Log(LogLevel.Warning, message, ...args); } 83 | 84 | export function Information(this: void, message: string, ...args: any[]): void { Log(LogLevel.Information, message, ...args); } 85 | 86 | export function Debug(this: void, message: string, ...args: any[]): void { Log(LogLevel.Debug, message, ...args); } 87 | 88 | export function Verbose(this: void, message: string, ...args: any[]): void { Log(LogLevel.Verbose, message, ...args); } 89 | } -------------------------------------------------------------------------------- /app/src/lib/Serilog/Sinks/PreloadSink.ts: -------------------------------------------------------------------------------- 1 | import { ILogSink, LogEvent, LogLevel } from '../Serilog'; 2 | 3 | export class PreloadSink implements ILogSink 4 | { 5 | static SerializeRaw: Record = 6 | { 7 | ["nil"]: false, 8 | ["boolean"]: true, 9 | ["number"]: true, 10 | ["string"]: false, 11 | ["table"]: false, 12 | ["function"]: false, 13 | ["userdata"]: false, 14 | } 15 | 16 | constructor(private readonly logLevel: LogLevel, public readonly FileName: string) { } 17 | 18 | LogLevel(): LogLevel { return this.logLevel; } 19 | 20 | private LogEventToJson(logEvent: LogEvent): string 21 | { 22 | let json: string = "{"; 23 | //json += "ty:" + logEvent.Type + ", "; // Commented out for now, since anything that doesn't have a value, should be treated as text. 24 | json += "t:\"" + logEvent.Text + "\""; 25 | if(logEvent.Value) 26 | { 27 | const serializeRaw: boolean = PreloadSink.SerializeRaw[type(logEvent.Value)]; 28 | if (serializeRaw) 29 | { 30 | json += ",v:" + logEvent.Value; 31 | } 32 | else 33 | { 34 | json += ",v:\"" + logEvent.Value + "\""; 35 | } 36 | } 37 | json += "}"; 38 | return json; 39 | } 40 | 41 | Log(level: LogLevel, events: LogEvent[]): void 42 | { 43 | let json: string = "{"; 44 | 45 | json += "l:" + level + ","; 46 | json += "e:{" 47 | for (let index = 0; index < events.length; index++) 48 | { 49 | json += this.LogEventToJson(events[index]); 50 | if (index < events.length - 1) 51 | json += ","; 52 | } 53 | json += "}" // events 54 | json += "}"; // root 55 | PreloadGenStart() 56 | Preload("l" + json) 57 | PreloadGenEnd(this.FileName) 58 | } 59 | } -------------------------------------------------------------------------------- /app/src/lib/Serilog/Sinks/StringSink.ts: -------------------------------------------------------------------------------- 1 | import 2 | { 3 | ILogSink, 4 | LogEvent, 5 | LogEventType, 6 | LogLevel 7 | } from '../Serilog'; 8 | 9 | export class StringSink implements ILogSink 10 | { 11 | static Prefix: Record = 12 | { 13 | [LogLevel.None]: "|cffffffffNON|r", 14 | [LogLevel.Verbose]: "|cff9d9d9dVRB|r", 15 | [LogLevel.Debug]: "|cff9d9d9dDBG|r", 16 | [LogLevel.Information]: "|cffe6cc80INF|r", 17 | [LogLevel.Warning]: "|cffffcc00WRN|r", 18 | [LogLevel.Error]: "|cffff8000ERR|r", 19 | [LogLevel.Fatal]: "|cffff0000FTL|r", 20 | } 21 | 22 | static Colors: Record = 23 | { 24 | ["nil"]: "9d9d9d", 25 | ["boolean"]: "1eff00", 26 | ["number"]: "00ccff", 27 | ["string"]: "ff8000", 28 | ["table"]: "ffcc00", 29 | ["function"]: "ffcc00", 30 | ["userdata"]: "ffcc00", 31 | } 32 | 33 | static Brackets: Record = 34 | { 35 | ["nil"]: false, 36 | ["boolean"]: false, 37 | ["number"]: false, 38 | ["string"]: false, 39 | ["table"]: true, 40 | ["function"]: true, 41 | ["userdata"]: true, 42 | } 43 | 44 | constructor(private readonly logLevel: LogLevel, private printer: (this: void, message: string) => void) { } 45 | 46 | LogLevel(): LogLevel { return this.logLevel } 47 | 48 | Log(level: LogLevel, events: LogEvent[]): void 49 | { 50 | let message: string = ""; 51 | 52 | for (let index = 0; index < events.length; index++) 53 | { 54 | const event = events[index]; 55 | if (event.Type == LogEventType.Text) 56 | { 57 | message += event.Text; 58 | } 59 | else if (event.Type == LogEventType.Parameter) 60 | { 61 | const whichType = type(event.Value); 62 | const color = StringSink.Colors[whichType]; 63 | if (color) 64 | message += "|cff" + color; 65 | if (StringSink.Brackets[whichType]) 66 | message += "{ "; 67 | message += event.Value; 68 | if (StringSink.Brackets[whichType]) 69 | message += " }"; 70 | if (color) 71 | message += "|r"; 72 | } 73 | } 74 | 75 | this.printer(string.format("[%s]: %s", StringSink.Prefix[level], message)) 76 | } 77 | } -------------------------------------------------------------------------------- /app/src/lib/core/blizzard.d.ts: -------------------------------------------------------------------------------- 1 | /** @noSelfInFile **/ 2 | 3 | 4 | 5 | declare const bj_PI: number; 6 | declare const bj_E: number; 7 | declare const bj_CELLWIDTH: number; 8 | declare const bj_CLIFFHEIGHT: number; 9 | declare const bj_UNIT_FACING: number; 10 | declare const bj_RADTODEG: number; 11 | declare const bj_DEGTORAD: number; 12 | declare const bj_TEXT_DELAY_QUEST: number; 13 | declare const bj_TEXT_DELAY_QUESTUPDATE: number; 14 | declare const bj_TEXT_DELAY_QUESTDONE: number; 15 | declare const bj_TEXT_DELAY_QUESTFAILED: number; 16 | declare const bj_TEXT_DELAY_QUESTREQUIREMENT: number; 17 | declare const bj_TEXT_DELAY_MISSIONFAILED: number; 18 | declare const bj_TEXT_DELAY_ALWAYSHINT: number; 19 | declare const bj_TEXT_DELAY_HINT: number; 20 | declare const bj_TEXT_DELAY_SECRET: number; 21 | declare const bj_TEXT_DELAY_UNITACQUIRED: number; 22 | declare const bj_TEXT_DELAY_UNITAVAILABLE: number; 23 | declare const bj_TEXT_DELAY_ITEMACQUIRED: number; 24 | declare const bj_TEXT_DELAY_WARNING: number; 25 | declare const bj_QUEUE_DELAY_QUEST: number; 26 | declare const bj_QUEUE_DELAY_HINT: number; 27 | declare const bj_QUEUE_DELAY_SECRET: number; 28 | declare const bj_HANDICAP_EASY: number; 29 | declare const bj_GAME_STARTED_THRESHOLD: number; 30 | declare const bj_WAIT_FOR_COND_MIN_INTERVAL: number; 31 | declare const bj_POLLED_WAIT_INTERVAL: number; 32 | declare const bj_POLLED_WAIT_SKIP_THRESHOLD: number; 33 | declare const bj_MAX_INVENTORY: number; 34 | declare const bj_MAX_PLAYERS: number; 35 | declare const bj_PLAYER_NEUTRAL_VICTIM: number; 36 | declare const bj_PLAYER_NEUTRAL_EXTRA: number; 37 | declare const bj_MAX_PLAYER_SLOTS: number; 38 | declare const bj_MAX_SKELETONS: number; 39 | declare const bj_MAX_STOCK_ITEM_SLOTS: number; 40 | declare const bj_MAX_STOCK_UNIT_SLOTS: number; 41 | declare const bj_MAX_ITEM_LEVEL: number; 42 | declare const bj_TOD_DAWN: number; 43 | declare const bj_TOD_DUSK: number; 44 | declare const bj_MELEE_STARTING_TOD: number; 45 | declare const bj_MELEE_STARTING_GOLD_V0: number; 46 | declare const bj_MELEE_STARTING_GOLD_V1: number; 47 | declare const bj_MELEE_STARTING_LUMBER_V0: number; 48 | declare const bj_MELEE_STARTING_LUMBER_V1: number; 49 | declare const bj_MELEE_STARTING_HERO_TOKENS: number; 50 | declare const bj_MELEE_HERO_LIMIT: number; 51 | declare const bj_MELEE_HERO_TYPE_LIMIT: number; 52 | declare const bj_MELEE_MINE_SEARCH_RADIUS: number; 53 | declare const bj_MELEE_CLEAR_UNITS_RADIUS: number; 54 | declare const bj_MELEE_CRIPPLE_TIMEOUT: number; 55 | declare const bj_MELEE_CRIPPLE_MSG_DURATION: number; 56 | declare const bj_MELEE_MAX_TWINKED_HEROES_V0: number; 57 | declare const bj_MELEE_MAX_TWINKED_HEROES_V1: number; 58 | declare const bj_CREEP_ITEM_DELAY: number; 59 | declare const bj_STOCK_RESTOCK_INITIAL_DELAY: number; 60 | declare const bj_STOCK_RESTOCK_INTERVAL: number; 61 | declare const bj_STOCK_MAX_ITERATIONS: number; 62 | declare const bj_MAX_DEST_IN_REGION_EVENTS: number; 63 | declare const bj_CAMERA_MIN_FARZ: number; 64 | declare const bj_CAMERA_DEFAULT_DISTANCE: number; 65 | declare const bj_CAMERA_DEFAULT_FARZ: number; 66 | declare const bj_CAMERA_DEFAULT_AOA: number; 67 | declare const bj_CAMERA_DEFAULT_FOV: number; 68 | declare const bj_CAMERA_DEFAULT_ROLL: number; 69 | declare const bj_CAMERA_DEFAULT_ROTATION: number; 70 | declare const bj_RESCUE_PING_TIME: number; 71 | declare const bj_NOTHING_SOUND_DURATION: number; 72 | declare const bj_TRANSMISSION_PING_TIME: number; 73 | declare const bj_TRANSMISSION_IND_RED: number; 74 | declare const bj_TRANSMISSION_IND_BLUE: number; 75 | declare const bj_TRANSMISSION_IND_GREEN: number; 76 | declare const bj_TRANSMISSION_IND_ALPHA: number; 77 | declare const bj_TRANSMISSION_PORT_HANGTIME: number; 78 | declare const bj_CINEMODE_INTERFACEFADE: number; 79 | declare const bj_CINEMODE_GAMESPEED: gamespeed; 80 | declare const bj_CINEMODE_VOLUME_UNITMOVEMENT: number; 81 | declare const bj_CINEMODE_VOLUME_UNITSOUNDS: number; 82 | declare const bj_CINEMODE_VOLUME_COMBAT: number; 83 | declare const bj_CINEMODE_VOLUME_SPELLS: number; 84 | declare const bj_CINEMODE_VOLUME_UI: number; 85 | declare const bj_CINEMODE_VOLUME_MUSIC: number; 86 | declare const bj_CINEMODE_VOLUME_AMBIENTSOUNDS: number; 87 | declare const bj_CINEMODE_VOLUME_FIRE: number; 88 | declare const bj_SPEECH_VOLUME_UNITMOVEMENT: number; 89 | declare const bj_SPEECH_VOLUME_UNITSOUNDS: number; 90 | declare const bj_SPEECH_VOLUME_COMBAT: number; 91 | declare const bj_SPEECH_VOLUME_SPELLS: number; 92 | declare const bj_SPEECH_VOLUME_UI: number; 93 | declare const bj_SPEECH_VOLUME_MUSIC: number; 94 | declare const bj_SPEECH_VOLUME_AMBIENTSOUNDS: number; 95 | declare const bj_SPEECH_VOLUME_FIRE: number; 96 | declare const bj_SMARTPAN_TRESHOLD_PAN: number; 97 | declare const bj_SMARTPAN_TRESHOLD_SNAP: number; 98 | declare const bj_MAX_QUEUED_TRIGGERS: number; 99 | declare const bj_QUEUED_TRIGGER_TIMEOUT: number; 100 | declare const bj_CAMPAIGN_INDEX_T: number; 101 | declare const bj_CAMPAIGN_INDEX_H: number; 102 | declare const bj_CAMPAIGN_INDEX_U: number; 103 | declare const bj_CAMPAIGN_INDEX_O: number; 104 | declare const bj_CAMPAIGN_INDEX_N: number; 105 | declare const bj_CAMPAIGN_INDEX_XN: number; 106 | declare const bj_CAMPAIGN_INDEX_XH: number; 107 | declare const bj_CAMPAIGN_INDEX_XU: number; 108 | declare const bj_CAMPAIGN_INDEX_XO: number; 109 | declare const bj_CAMPAIGN_OFFSET_T: number; 110 | declare const bj_CAMPAIGN_OFFSET_H: number; 111 | declare const bj_CAMPAIGN_OFFSET_U: number; 112 | declare const bj_CAMPAIGN_OFFSET_O: number; 113 | declare const bj_CAMPAIGN_OFFSET_N: number; 114 | declare const bj_CAMPAIGN_OFFSET_XN: number; 115 | declare const bj_CAMPAIGN_OFFSET_XH: number; 116 | declare const bj_CAMPAIGN_OFFSET_XU: number; 117 | declare const bj_CAMPAIGN_OFFSET_XO: number; 118 | declare const bj_MISSION_INDEX_T00: number; 119 | declare const bj_MISSION_INDEX_T01: number; 120 | declare const bj_MISSION_INDEX_H00: number; 121 | declare const bj_MISSION_INDEX_H01: number; 122 | declare const bj_MISSION_INDEX_H02: number; 123 | declare const bj_MISSION_INDEX_H03: number; 124 | declare const bj_MISSION_INDEX_H04: number; 125 | declare const bj_MISSION_INDEX_H05: number; 126 | declare const bj_MISSION_INDEX_H06: number; 127 | declare const bj_MISSION_INDEX_H07: number; 128 | declare const bj_MISSION_INDEX_H08: number; 129 | declare const bj_MISSION_INDEX_H09: number; 130 | declare const bj_MISSION_INDEX_H10: number; 131 | declare const bj_MISSION_INDEX_H11: number; 132 | declare const bj_MISSION_INDEX_U00: number; 133 | declare const bj_MISSION_INDEX_U01: number; 134 | declare const bj_MISSION_INDEX_U02: number; 135 | declare const bj_MISSION_INDEX_U03: number; 136 | declare const bj_MISSION_INDEX_U05: number; 137 | declare const bj_MISSION_INDEX_U07: number; 138 | declare const bj_MISSION_INDEX_U08: number; 139 | declare const bj_MISSION_INDEX_U09: number; 140 | declare const bj_MISSION_INDEX_U10: number; 141 | declare const bj_MISSION_INDEX_U11: number; 142 | declare const bj_MISSION_INDEX_O00: number; 143 | declare const bj_MISSION_INDEX_O01: number; 144 | declare const bj_MISSION_INDEX_O02: number; 145 | declare const bj_MISSION_INDEX_O03: number; 146 | declare const bj_MISSION_INDEX_O04: number; 147 | declare const bj_MISSION_INDEX_O05: number; 148 | declare const bj_MISSION_INDEX_O06: number; 149 | declare const bj_MISSION_INDEX_O07: number; 150 | declare const bj_MISSION_INDEX_O08: number; 151 | declare const bj_MISSION_INDEX_O09: number; 152 | declare const bj_MISSION_INDEX_O10: number; 153 | declare const bj_MISSION_INDEX_N00: number; 154 | declare const bj_MISSION_INDEX_N01: number; 155 | declare const bj_MISSION_INDEX_N02: number; 156 | declare const bj_MISSION_INDEX_N03: number; 157 | declare const bj_MISSION_INDEX_N04: number; 158 | declare const bj_MISSION_INDEX_N05: number; 159 | declare const bj_MISSION_INDEX_N06: number; 160 | declare const bj_MISSION_INDEX_N07: number; 161 | declare const bj_MISSION_INDEX_N08: number; 162 | declare const bj_MISSION_INDEX_N09: number; 163 | declare const bj_MISSION_INDEX_XN00: number; 164 | declare const bj_MISSION_INDEX_XN01: number; 165 | declare const bj_MISSION_INDEX_XN02: number; 166 | declare const bj_MISSION_INDEX_XN03: number; 167 | declare const bj_MISSION_INDEX_XN04: number; 168 | declare const bj_MISSION_INDEX_XN05: number; 169 | declare const bj_MISSION_INDEX_XN06: number; 170 | declare const bj_MISSION_INDEX_XN07: number; 171 | declare const bj_MISSION_INDEX_XN08: number; 172 | declare const bj_MISSION_INDEX_XN09: number; 173 | declare const bj_MISSION_INDEX_XN10: number; 174 | declare const bj_MISSION_INDEX_XH00: number; 175 | declare const bj_MISSION_INDEX_XH01: number; 176 | declare const bj_MISSION_INDEX_XH02: number; 177 | declare const bj_MISSION_INDEX_XH03: number; 178 | declare const bj_MISSION_INDEX_XH04: number; 179 | declare const bj_MISSION_INDEX_XH05: number; 180 | declare const bj_MISSION_INDEX_XH06: number; 181 | declare const bj_MISSION_INDEX_XH07: number; 182 | declare const bj_MISSION_INDEX_XH08: number; 183 | declare const bj_MISSION_INDEX_XH09: number; 184 | declare const bj_MISSION_INDEX_XU00: number; 185 | declare const bj_MISSION_INDEX_XU01: number; 186 | declare const bj_MISSION_INDEX_XU02: number; 187 | declare const bj_MISSION_INDEX_XU03: number; 188 | declare const bj_MISSION_INDEX_XU04: number; 189 | declare const bj_MISSION_INDEX_XU05: number; 190 | declare const bj_MISSION_INDEX_XU06: number; 191 | declare const bj_MISSION_INDEX_XU07: number; 192 | declare const bj_MISSION_INDEX_XU08: number; 193 | declare const bj_MISSION_INDEX_XU09: number; 194 | declare const bj_MISSION_INDEX_XU10: number; 195 | declare const bj_MISSION_INDEX_XU11: number; 196 | declare const bj_MISSION_INDEX_XU12: number; 197 | declare const bj_MISSION_INDEX_XU13: number; 198 | declare const bj_MISSION_INDEX_XO00: number; 199 | declare const bj_MISSION_INDEX_XO01: number; 200 | declare const bj_MISSION_INDEX_XO02: number; 201 | declare const bj_MISSION_INDEX_XO03: number; 202 | declare const bj_CINEMATICINDEX_TOP: number; 203 | declare const bj_CINEMATICINDEX_HOP: number; 204 | declare const bj_CINEMATICINDEX_HED: number; 205 | declare const bj_CINEMATICINDEX_OOP: number; 206 | declare const bj_CINEMATICINDEX_OED: number; 207 | declare const bj_CINEMATICINDEX_UOP: number; 208 | declare const bj_CINEMATICINDEX_UED: number; 209 | declare const bj_CINEMATICINDEX_NOP: number; 210 | declare const bj_CINEMATICINDEX_NED: number; 211 | declare const bj_CINEMATICINDEX_XOP: number; 212 | declare const bj_CINEMATICINDEX_XED: number; 213 | declare const bj_ALLIANCE_UNALLIED: number; 214 | declare const bj_ALLIANCE_UNALLIED_VISION: number; 215 | declare const bj_ALLIANCE_ALLIED: number; 216 | declare const bj_ALLIANCE_ALLIED_VISION: number; 217 | declare const bj_ALLIANCE_ALLIED_UNITS: number; 218 | declare const bj_ALLIANCE_ALLIED_ADVUNITS: number; 219 | declare const bj_ALLIANCE_NEUTRAL: number; 220 | declare const bj_ALLIANCE_NEUTRAL_VISION: number; 221 | declare const bj_KEYEVENTTYPE_DEPRESS: number; 222 | declare const bj_KEYEVENTTYPE_RELEASE: number; 223 | declare const bj_KEYEVENTKEY_LEFT: number; 224 | declare const bj_KEYEVENTKEY_RIGHT: number; 225 | declare const bj_KEYEVENTKEY_DOWN: number; 226 | declare const bj_KEYEVENTKEY_UP: number; 227 | declare const bj_MOUSEEVENTTYPE_DOWN: number; 228 | declare const bj_MOUSEEVENTTYPE_UP: number; 229 | declare const bj_MOUSEEVENTTYPE_MOVE: number; 230 | declare const bj_TIMETYPE_ADD: number; 231 | declare const bj_TIMETYPE_SET: number; 232 | declare const bj_TIMETYPE_SUB: number; 233 | declare const bj_CAMERABOUNDS_ADJUST_ADD: number; 234 | declare const bj_CAMERABOUNDS_ADJUST_SUB: number; 235 | declare const bj_QUESTTYPE_REQ_DISCOVERED: number; 236 | declare const bj_QUESTTYPE_REQ_UNDISCOVERED: number; 237 | declare const bj_QUESTTYPE_OPT_DISCOVERED: number; 238 | declare const bj_QUESTTYPE_OPT_UNDISCOVERED: number; 239 | declare const bj_QUESTMESSAGE_DISCOVERED: number; 240 | declare const bj_QUESTMESSAGE_UPDATED: number; 241 | declare const bj_QUESTMESSAGE_COMPLETED: number; 242 | declare const bj_QUESTMESSAGE_FAILED: number; 243 | declare const bj_QUESTMESSAGE_REQUIREMENT: number; 244 | declare const bj_QUESTMESSAGE_MISSIONFAILED: number; 245 | declare const bj_QUESTMESSAGE_ALWAYSHINT: number; 246 | declare const bj_QUESTMESSAGE_HINT: number; 247 | declare const bj_QUESTMESSAGE_SECRET: number; 248 | declare const bj_QUESTMESSAGE_UNITACQUIRED: number; 249 | declare const bj_QUESTMESSAGE_UNITAVAILABLE: number; 250 | declare const bj_QUESTMESSAGE_ITEMACQUIRED: number; 251 | declare const bj_QUESTMESSAGE_WARNING: number; 252 | declare const bj_SORTTYPE_SORTBYVALUE: number; 253 | declare const bj_SORTTYPE_SORTBYPLAYER: number; 254 | declare const bj_SORTTYPE_SORTBYLABEL: number; 255 | declare const bj_CINEFADETYPE_FADEIN: number; 256 | declare const bj_CINEFADETYPE_FADEOUT: number; 257 | declare const bj_CINEFADETYPE_FADEOUTIN: number; 258 | declare const bj_REMOVEBUFFS_POSITIVE: number; 259 | declare const bj_REMOVEBUFFS_NEGATIVE: number; 260 | declare const bj_REMOVEBUFFS_ALL: number; 261 | declare const bj_REMOVEBUFFS_NONTLIFE: number; 262 | declare const bj_BUFF_POLARITY_POSITIVE: number; 263 | declare const bj_BUFF_POLARITY_NEGATIVE: number; 264 | declare const bj_BUFF_POLARITY_EITHER: number; 265 | declare const bj_BUFF_RESIST_MAGIC: number; 266 | declare const bj_BUFF_RESIST_PHYSICAL: number; 267 | declare const bj_BUFF_RESIST_EITHER: number; 268 | declare const bj_BUFF_RESIST_BOTH: number; 269 | declare const bj_HEROSTAT_STR: number; 270 | declare const bj_HEROSTAT_AGI: number; 271 | declare const bj_HEROSTAT_INT: number; 272 | declare const bj_MODIFYMETHOD_ADD: number; 273 | declare const bj_MODIFYMETHOD_SUB: number; 274 | declare const bj_MODIFYMETHOD_SET: number; 275 | declare const bj_UNIT_STATE_METHOD_ABSOLUTE: number; 276 | declare const bj_UNIT_STATE_METHOD_RELATIVE: number; 277 | declare const bj_UNIT_STATE_METHOD_DEFAULTS: number; 278 | declare const bj_UNIT_STATE_METHOD_MAXIMUM: number; 279 | declare const bj_GATEOPERATION_CLOSE: number; 280 | declare const bj_GATEOPERATION_OPEN: number; 281 | declare const bj_GATEOPERATION_DESTROY: number; 282 | declare const bj_GAMECACHE_BOOLEAN: number; 283 | declare const bj_GAMECACHE_INTEGER: number; 284 | declare const bj_GAMECACHE_REAL: number; 285 | declare const bj_GAMECACHE_UNIT: number; 286 | declare const bj_GAMECACHE_STRING: number; 287 | declare const bj_HASHTABLE_BOOLEAN: number; 288 | declare const bj_HASHTABLE_INTEGER: number; 289 | declare const bj_HASHTABLE_REAL: number; 290 | declare const bj_HASHTABLE_STRING: number; 291 | declare const bj_HASHTABLE_HANDLE: number; 292 | declare const bj_ITEM_STATUS_HIDDEN: number; 293 | declare const bj_ITEM_STATUS_OWNED: number; 294 | declare const bj_ITEM_STATUS_INVULNERABLE: number; 295 | declare const bj_ITEM_STATUS_POWERUP: number; 296 | declare const bj_ITEM_STATUS_SELLABLE: number; 297 | declare const bj_ITEM_STATUS_PAWNABLE: number; 298 | declare const bj_ITEMCODE_STATUS_POWERUP: number; 299 | declare const bj_ITEMCODE_STATUS_SELLABLE: number; 300 | declare const bj_ITEMCODE_STATUS_PAWNABLE: number; 301 | declare const bj_MINIMAPPINGSTYLE_SIMPLE: number; 302 | declare const bj_MINIMAPPINGSTYLE_FLASHY: number; 303 | declare const bj_MINIMAPPINGSTYLE_ATTACK: number; 304 | declare const bj_CORPSE_MAX_DEATH_TIME: number; 305 | declare const bj_CORPSETYPE_FLESH: number; 306 | declare const bj_CORPSETYPE_BONE: number; 307 | declare const bj_ELEVATOR_BLOCKER_CODE: number; 308 | declare const bj_ELEVATOR_CODE01: number; 309 | declare const bj_ELEVATOR_CODE02: number; 310 | declare const bj_ELEVATOR_WALL_TYPE_ALL: number; 311 | declare const bj_ELEVATOR_WALL_TYPE_EAST: number; 312 | declare const bj_ELEVATOR_WALL_TYPE_NORTH: number; 313 | declare const bj_ELEVATOR_WALL_TYPE_SOUTH: number; 314 | declare const bj_ELEVATOR_WALL_TYPE_WEST: number; 315 | declare var bj_FORCE_ALL_PLAYERS: force; 316 | declare var bj_FORCE_PLAYER: force; 317 | declare var bj_MELEE_MAX_TWINKED_HEROES: number; 318 | declare var bj_mapInitialPlayableArea: rect; 319 | declare var bj_mapInitialCameraBounds: rect; 320 | declare var bj_forLoopAIndex: number; 321 | declare var bj_forLoopBIndex: number; 322 | declare var bj_forLoopAIndexEnd: number; 323 | declare var bj_forLoopBIndexEnd: number; 324 | declare var bj_slotControlReady: boolean; 325 | declare var bj_slotControlUsed: boolean; 326 | declare var bj_slotControl: mapcontrol; 327 | declare var bj_gameStartedTimer: timer; 328 | declare var bj_gameStarted: boolean; 329 | declare var bj_volumeGroupsTimer: timer; 330 | declare var bj_isSinglePlayer: boolean; 331 | declare var bj_dncSoundsDay: trigger; 332 | declare var bj_dncSoundsNight: trigger; 333 | declare var bj_dayAmbientSound: sound; 334 | declare var bj_nightAmbientSound: sound; 335 | declare var bj_dncSoundsDawn: trigger; 336 | declare var bj_dncSoundsDusk: trigger; 337 | declare var bj_dawnSound: sound; 338 | declare var bj_duskSound: sound; 339 | declare var bj_useDawnDuskSounds: boolean; 340 | declare var bj_dncIsDaytime: boolean; 341 | declare var bj_rescueSound: sound; 342 | declare var bj_questDiscoveredSound: sound; 343 | declare var bj_questUpdatedSound: sound; 344 | declare var bj_questCompletedSound: sound; 345 | declare var bj_questFailedSound: sound; 346 | declare var bj_questHintSound: sound; 347 | declare var bj_questSecretSound: sound; 348 | declare var bj_questItemAcquiredSound: sound; 349 | declare var bj_questWarningSound: sound; 350 | declare var bj_victoryDialogSound: sound; 351 | declare var bj_defeatDialogSound: sound; 352 | declare var bj_stockItemPurchased: trigger; 353 | declare var bj_stockUpdateTimer: timer; 354 | declare var bj_stockAllowedPermanent: boolean; 355 | declare var bj_stockAllowedCharged: boolean; 356 | declare var bj_stockAllowedArtifact: boolean; 357 | declare var bj_stockPickedItemLevel: number; 358 | declare var bj_stockPickedItemType: itemtype; 359 | declare var bj_meleeVisibilityTrained: trigger; 360 | declare var bj_meleeVisibilityIsDay: boolean; 361 | declare var bj_meleeGrantHeroItems: boolean; 362 | declare var bj_meleeNearestMineToLoc: location; 363 | declare var bj_meleeNearestMine: unit; 364 | declare var bj_meleeNearestMineDist: number; 365 | declare var bj_meleeGameOver: boolean; 366 | declare var bj_meleeDefeated: boolean; 367 | declare var bj_meleeVictoried: boolean; 368 | declare var bj_ghoul: unit; 369 | declare var bj_crippledTimer: timer; 370 | declare var bj_crippledTimerWindows: timerdialog; 371 | declare var bj_playerIsCrippled: boolean; 372 | declare var bj_playerIsExposed: boolean; 373 | declare var bj_finishSoonAllExposed: boolean; 374 | declare var bj_finishSoonTimerDialog: timerdialog; 375 | declare var bj_meleeTwinkedHeroes: number; 376 | declare var bj_rescueUnitBehavior: trigger; 377 | declare var bj_rescueChangeColorUnit: boolean; 378 | declare var bj_rescueChangeColorBldg: boolean; 379 | declare var bj_cineSceneEndingTimer: timer; 380 | declare var bj_cineSceneLastSound: sound; 381 | declare var bj_cineSceneBeingSkipped: trigger; 382 | declare var bj_cineModePriorSpeed: gamespeed; 383 | declare var bj_cineModePriorFogSetting: boolean; 384 | declare var bj_cineModePriorMaskSetting: boolean; 385 | declare var bj_cineModeAlreadyIn: boolean; 386 | declare var bj_cineModePriorDawnDusk: boolean; 387 | declare var bj_cineModeSavedSeed: number; 388 | declare var bj_cineFadeFinishTimer: timer; 389 | declare var bj_cineFadeContinueTimer: timer; 390 | declare var bj_cineFadeContinueRed: number; 391 | declare var bj_cineFadeContinueGreen: number; 392 | declare var bj_cineFadeContinueBlue: number; 393 | declare var bj_cineFadeContinueTrans: number; 394 | declare var bj_cineFadeContinueDuration: number; 395 | declare var bj_cineFadeContinueTex: string; 396 | declare var bj_queuedExecTotal: number; 397 | declare var bj_queuedExecTriggers: trigger; 398 | declare var bj_queuedExecUseConds: boolean; 399 | declare var bj_queuedExecTimeoutTimer: timer; 400 | declare var bj_queuedExecTimeout: trigger; 401 | declare var bj_destInRegionDiesCount: number; 402 | declare var bj_destInRegionDiesTrig: trigger; 403 | declare var bj_groupCountUnits: number; 404 | declare var bj_forceCountPlayers: number; 405 | declare var bj_groupEnumTypeId: number; 406 | declare var bj_groupEnumOwningPlayer: player; 407 | declare var bj_groupAddGroupDest: group; 408 | declare var bj_groupRemoveGroupDest: group; 409 | declare var bj_groupRandomConsidered: number; 410 | declare var bj_groupRandomCurrentPick: unit; 411 | declare var bj_groupLastCreatedDest: group; 412 | declare var bj_randomSubGroupGroup: group; 413 | declare var bj_randomSubGroupWant: number; 414 | declare var bj_randomSubGroupTotal: number; 415 | declare var bj_randomSubGroupChance: number; 416 | declare var bj_destRandomConsidered: number; 417 | declare var bj_destRandomCurrentPick: destructable; 418 | declare var bj_elevatorWallBlocker: destructable; 419 | declare var bj_elevatorNeighbor: destructable; 420 | declare var bj_itemRandomConsidered: number; 421 | declare var bj_itemRandomCurrentPick: item; 422 | declare var bj_forceRandomConsidered: number; 423 | declare var bj_forceRandomCurrentPick: player; 424 | declare var bj_makeUnitRescuableUnit: unit; 425 | declare var bj_makeUnitRescuableFlag: boolean; 426 | declare var bj_pauseAllUnitsFlag: boolean; 427 | declare var bj_enumDestructableCenter: location; 428 | declare var bj_enumDestructableRadius: number; 429 | declare var bj_setPlayerTargetColor: playercolor; 430 | declare var bj_isUnitGroupDeadResult: boolean; 431 | declare var bj_isUnitGroupEmptyResult: boolean; 432 | declare var bj_isUnitGroupInRectResult: boolean; 433 | declare var bj_isUnitGroupInRectRect: rect; 434 | declare var bj_changeLevelShowScores: boolean; 435 | declare var bj_changeLevelMapName: string; 436 | declare var bj_suspendDecayFleshGroup: group; 437 | declare var bj_suspendDecayBoneGroup: group; 438 | declare var bj_delayedSuspendDecayTimer: timer; 439 | declare var bj_delayedSuspendDecayTrig: trigger; 440 | declare var bj_livingPlayerUnitsTypeId: number; 441 | declare var bj_lastDyingWidget: widget; 442 | declare var bj_randDistCount: number; 443 | declare var bj_randDistID: number; 444 | declare var bj_randDistChance: number; 445 | declare var bj_lastCreatedUnit: unit; 446 | declare var bj_lastCreatedItem: item; 447 | declare var bj_lastRemovedItem: item; 448 | declare var bj_lastHauntedGoldMine: unit; 449 | declare var bj_lastCreatedDestructable: destructable; 450 | declare var bj_lastCreatedGroup: group; 451 | declare var bj_lastCreatedFogModifier: fogmodifier; 452 | declare var bj_lastCreatedEffect: effect; 453 | declare var bj_lastCreatedWeatherEffect: weathereffect; 454 | declare var bj_lastCreatedTerrainDeformation: terraindeformation; 455 | declare var bj_lastCreatedQuest: quest; 456 | declare var bj_lastCreatedQuestItem: questitem; 457 | declare var bj_lastCreatedDefeatCondition: defeatcondition; 458 | declare var bj_lastStartedTimer: timer; 459 | declare var bj_lastCreatedTimerDialog: timerdialog; 460 | declare var bj_lastCreatedLeaderboard: leaderboard; 461 | declare var bj_lastCreatedMultiboard: multiboard; 462 | declare var bj_lastPlayedSound: sound; 463 | declare var bj_lastPlayedMusic: string; 464 | declare var bj_lastTransmissionDuration: number; 465 | declare var bj_lastCreatedGameCache: gamecache; 466 | declare var bj_lastCreatedHashtable: hashtable; 467 | declare var bj_lastLoadedUnit: unit; 468 | declare var bj_lastCreatedButton: button; 469 | declare var bj_lastReplacedUnit: unit; 470 | declare var bj_lastCreatedTextTag: texttag; 471 | declare var bj_lastCreatedLightning: lightning; 472 | declare var bj_lastCreatedImage: image; 473 | declare var bj_lastCreatedUbersplat: ubersplat; 474 | declare var filterIssueHauntOrderAtLocBJ: boolexpr; 475 | declare var filterEnumDestructablesInCircleBJ: boolexpr; 476 | declare var filterGetUnitsInRectOfPlayer: boolexpr; 477 | declare var filterGetUnitsOfTypeIdAll: boolexpr; 478 | declare var filterGetUnitsOfPlayerAndTypeId: boolexpr; 479 | declare var filterMeleeTrainedUnitIsHeroBJ: boolexpr; 480 | declare var filterLivingPlayerUnitsOfTypeId: boolexpr; 481 | declare var bj_wantDestroyGroup: boolean; 482 | declare var bj_lastInstObjFuncSuccessful: boolean; 483 | 484 | declare function BJDebugMsg(msg: string): void; 485 | declare function RMinBJ(a: number, b: number): number; 486 | declare function RMaxBJ(a: number, b: number): number; 487 | declare function RAbsBJ(a: number): number; 488 | declare function RSignBJ(a: number): number; 489 | declare function IMinBJ(a: number, b: number): number; 490 | declare function IMaxBJ(a: number, b: number): number; 491 | declare function IAbsBJ(a: number): number; 492 | declare function ISignBJ(a: number): number; 493 | declare function SinBJ(degrees: number): number; 494 | declare function CosBJ(degrees: number): number; 495 | declare function TanBJ(degrees: number): number; 496 | declare function AsinBJ(degrees: number): number; 497 | declare function AcosBJ(degrees: number): number; 498 | declare function AtanBJ(degrees: number): number; 499 | declare function Atan2BJ(y: number, x: number): number; 500 | declare function AngleBetweenPoints(locA: location, locB: location): number; 501 | declare function DistanceBetweenPoints(locA: location, locB: location): number; 502 | declare function PolarProjectionBJ(source: location, dist: number, angle: number): location; 503 | declare function GetRandomDirectionDeg(): number; 504 | declare function GetRandomPercentageBJ(): number; 505 | declare function GetRandomLocInRect(whichRect: rect): location; 506 | declare function ModuloInteger(dividend: number, divisor: number): number; 507 | declare function ModuloReal(dividend: number, divisor: number): number; 508 | declare function OffsetLocation(loc: location, dx: number, dy: number): location; 509 | declare function OffsetRectBJ(r: rect, dx: number, dy: number): rect; 510 | declare function RectFromCenterSizeBJ(center: location, width: number, height: number): rect; 511 | declare function RectContainsCoords(r: rect, x: number, y: number): boolean; 512 | declare function RectContainsLoc(r: rect, loc: location): boolean; 513 | declare function RectContainsUnit(r: rect, whichUnit: unit): boolean; 514 | declare function RectContainsItem(whichItem: item, r: rect): boolean; 515 | declare function ConditionalTriggerExecute(trig: trigger): void; 516 | declare function TriggerExecuteBJ(trig: trigger, checkConditions: boolean): boolean; 517 | declare function PostTriggerExecuteBJ(trig: trigger, checkConditions: boolean): boolean; 518 | declare function QueuedTriggerCheck(): void; 519 | declare function QueuedTriggerGetIndex(trig: trigger): number; 520 | declare function QueuedTriggerRemoveByIndex(trigIndex: number): boolean; 521 | declare function QueuedTriggerAttemptExec(): boolean; 522 | declare function QueuedTriggerAddBJ(trig: trigger, checkConditions: boolean): boolean; 523 | declare function QueuedTriggerRemoveBJ(trig: trigger): void; 524 | declare function QueuedTriggerDoneBJ(): void; 525 | declare function QueuedTriggerClearBJ(): void; 526 | declare function QueuedTriggerClearInactiveBJ(): void; 527 | declare function QueuedTriggerCountBJ(): number; 528 | declare function IsTriggerQueueEmptyBJ(): boolean; 529 | declare function IsTriggerQueuedBJ(trig: trigger): boolean; 530 | declare function GetForLoopIndexA(): number; 531 | declare function SetForLoopIndexA(newIndex: number): void; 532 | declare function GetForLoopIndexB(): number; 533 | declare function SetForLoopIndexB(newIndex: number): void; 534 | declare function PolledWait(duration: number): void; 535 | declare function IntegerTertiaryOp(flag: boolean, valueA: number, valueB: number): number; 536 | declare function DoNothing(): void; 537 | declare function CommentString(commentString: string): void; 538 | declare function StringIdentity(theString: string): string; 539 | declare function GetBooleanAnd(valueA: boolean, valueB: boolean): boolean; 540 | declare function GetBooleanOr(valueA: boolean, valueB: boolean): boolean; 541 | declare function PercentToInt(percentage: number, max: number): number; 542 | declare function PercentTo255(percentage: number): number; 543 | declare function GetTimeOfDay(): number; 544 | declare function SetTimeOfDay(whatTime: number): void; 545 | declare function SetTimeOfDayScalePercentBJ(scalePercent: number): void; 546 | declare function GetTimeOfDayScalePercentBJ(): number; 547 | declare function PlaySound(soundName: string): void; 548 | declare function CompareLocationsBJ(A: location, B: location): boolean; 549 | declare function CompareRectsBJ(A: rect, B: rect): boolean; 550 | declare function GetRectFromCircleBJ(center: location, radius: number): rect; 551 | declare function GetCurrentCameraSetup(): camerasetup; 552 | declare function CameraSetupApplyForPlayer(doPan: boolean, whichSetup: camerasetup, whichPlayer: player, duration: number): void; 553 | declare function CameraSetupGetFieldSwap(whichField: camerafield, whichSetup: camerasetup): number; 554 | declare function SetCameraFieldForPlayer(whichPlayer: player, whichField: camerafield, value: number, duration: number): void; 555 | declare function SetCameraTargetControllerNoZForPlayer(whichPlayer: player, whichUnit: unit, xoffset: number, yoffset: number, inheritOrientation: boolean): void; 556 | declare function SetCameraPositionForPlayer(whichPlayer: player, x: number, y: number): void; 557 | declare function SetCameraPositionLocForPlayer(whichPlayer: player, loc: location): void; 558 | declare function RotateCameraAroundLocBJ(degrees: number, loc: location, whichPlayer: player, duration: number): void; 559 | declare function PanCameraToForPlayer(whichPlayer: player, x: number, y: number): void; 560 | declare function PanCameraToLocForPlayer(whichPlayer: player, loc: location): void; 561 | declare function PanCameraToTimedForPlayer(whichPlayer: player, x: number, y: number, duration: number): void; 562 | declare function PanCameraToTimedLocForPlayer(whichPlayer: player, loc: location, duration: number): void; 563 | declare function PanCameraToTimedLocWithZForPlayer(whichPlayer: player, loc: location, zOffset: number, duration: number): void; 564 | declare function SmartCameraPanBJ(whichPlayer: player, loc: location, duration: number): void; 565 | declare function SetCinematicCameraForPlayer(whichPlayer: player, cameraModelFile: string): void; 566 | declare function ResetToGameCameraForPlayer(whichPlayer: player, duration: number): void; 567 | declare function CameraSetSourceNoiseForPlayer(whichPlayer: player, magnitude: number, velocity: number): void; 568 | declare function CameraSetTargetNoiseForPlayer(whichPlayer: player, magnitude: number, velocity: number): void; 569 | declare function CameraSetEQNoiseForPlayer(whichPlayer: player, magnitude: number): void; 570 | declare function CameraClearNoiseForPlayer(whichPlayer: player): void; 571 | declare function GetCurrentCameraBoundsMapRectBJ(): rect; 572 | declare function GetCameraBoundsMapRect(): rect; 573 | declare function GetPlayableMapRect(): rect; 574 | declare function GetEntireMapRect(): rect; 575 | declare function SetCameraBoundsToRect(r: rect): void; 576 | declare function SetCameraBoundsToRectForPlayerBJ(whichPlayer: player, r: rect): void; 577 | declare function AdjustCameraBoundsBJ(adjustMethod: number, dxWest: number, dxEast: number, dyNorth: number, dySouth: number): void; 578 | declare function AdjustCameraBoundsForPlayerBJ(adjustMethod: number, whichPlayer: player, dxWest: number, dxEast: number, dyNorth: number, dySouth: number): void; 579 | declare function SetCameraQuickPositionForPlayer(whichPlayer: player, x: number, y: number): void; 580 | declare function SetCameraQuickPositionLocForPlayer(whichPlayer: player, loc: location): void; 581 | declare function SetCameraQuickPositionLoc(loc: location): void; 582 | declare function StopCameraForPlayerBJ(whichPlayer: player): void; 583 | declare function SetCameraOrientControllerForPlayerBJ(whichPlayer: player, whichUnit: unit, xoffset: number, yoffset: number): void; 584 | declare function CameraSetSmoothingFactorBJ(factor: number): void; 585 | declare function CameraResetSmoothingFactorBJ(): void; 586 | declare function DisplayTextToForce(toForce: force, message: string): void; 587 | declare function DisplayTimedTextToForce(toForce: force, duration: number, message: string): void; 588 | declare function ClearTextMessagesBJ(toForce: force): void; 589 | declare function SubStringBJ(source: string, start: number, end: number): string; 590 | declare function GetHandleIdBJ(h: handle): number; 591 | declare function StringHashBJ(s: string): number; 592 | declare function TriggerRegisterTimerEventPeriodic(trig: trigger, timeout: number): event; 593 | declare function TriggerRegisterTimerEventSingle(trig: trigger, timeout: number): event; 594 | declare function TriggerRegisterTimerExpireEventBJ(trig: trigger, t: timer): event; 595 | declare function TriggerRegisterPlayerUnitEventSimple(trig: trigger, whichPlayer: player, whichEvent: playerunitevent): event; 596 | declare function TriggerRegisterAnyUnitEventBJ(trig: trigger, whichEvent: playerunitevent): void; 597 | declare function TriggerRegisterPlayerSelectionEventBJ(trig: trigger, whichPlayer: player, selected: boolean): event; 598 | declare function TriggerRegisterPlayerKeyEventBJ(trig: trigger, whichPlayer: player, keType: number, keKey: number): event; 599 | declare function TriggerRegisterPlayerMouseEventBJ(trig: trigger, whichPlayer: player, meType: number): event; 600 | declare function TriggerRegisterPlayerEventVictory(trig: trigger, whichPlayer: player): event; 601 | declare function TriggerRegisterPlayerEventDefeat(trig: trigger, whichPlayer: player): event; 602 | declare function TriggerRegisterPlayerEventLeave(trig: trigger, whichPlayer: player): event; 603 | declare function TriggerRegisterPlayerEventAllianceChanged(trig: trigger, whichPlayer: player): event; 604 | declare function TriggerRegisterPlayerEventEndCinematic(trig: trigger, whichPlayer: player): event; 605 | declare function TriggerRegisterGameStateEventTimeOfDay(trig: trigger, opcode: limitop, limitval: number): event; 606 | declare function TriggerRegisterEnterRegionSimple(trig: trigger, whichRegion: region): event; 607 | declare function TriggerRegisterLeaveRegionSimple(trig: trigger, whichRegion: region): event; 608 | declare function TriggerRegisterEnterRectSimple(trig: trigger, r: rect): event; 609 | declare function TriggerRegisterLeaveRectSimple(trig: trigger, r: rect): event; 610 | declare function TriggerRegisterDistanceBetweenUnits(trig: trigger, whichUnit: unit, condition: boolexpr, range: number): event; 611 | declare function TriggerRegisterUnitInRangeSimple(trig: trigger, range: number, whichUnit: unit): event; 612 | declare function TriggerRegisterUnitLifeEvent(trig: trigger, whichUnit: unit, opcode: limitop, limitval: number): event; 613 | declare function TriggerRegisterUnitManaEvent(trig: trigger, whichUnit: unit, opcode: limitop, limitval: number): event; 614 | declare function TriggerRegisterDialogEventBJ(trig: trigger, whichDialog: dialog): event; 615 | declare function TriggerRegisterShowSkillEventBJ(trig: trigger): event; 616 | declare function TriggerRegisterBuildSubmenuEventBJ(trig: trigger): event; 617 | declare function TriggerRegisterGameLoadedEventBJ(trig: trigger): event; 618 | declare function TriggerRegisterGameSavedEventBJ(trig: trigger): event; 619 | declare function RegisterDestDeathInRegionEnum(): void; 620 | declare function TriggerRegisterDestDeathInRegionEvent(trig: trigger, r: rect): void; 621 | declare function AddWeatherEffectSaveLast(where: rect, effectID: number): weathereffect; 622 | declare function GetLastCreatedWeatherEffect(): weathereffect; 623 | declare function RemoveWeatherEffectBJ(whichWeatherEffect: weathereffect): void; 624 | declare function TerrainDeformationCraterBJ(duration: number, permanent: boolean, where: location, radius: number, depth: number): terraindeformation; 625 | declare function TerrainDeformationRippleBJ(duration: number, limitNeg: boolean, where: location, startRadius: number, endRadius: number, depth: number, wavePeriod: number, waveWidth: number): terraindeformation; 626 | declare function TerrainDeformationWaveBJ(duration: number, source: location, target: location, radius: number, depth: number, trailDelay: number): terraindeformation; 627 | declare function TerrainDeformationRandomBJ(duration: number, where: location, radius: number, minDelta: number, maxDelta: number, updateInterval: number): terraindeformation; 628 | declare function TerrainDeformationStopBJ(deformation: terraindeformation, duration: number): void; 629 | declare function GetLastCreatedTerrainDeformation(): terraindeformation; 630 | declare function AddLightningLoc(codeName: string, where1: location, where2: location): lightning; 631 | declare function DestroyLightningBJ(whichBolt: lightning): boolean; 632 | declare function MoveLightningLoc(whichBolt: lightning, where1: location, where2: location): boolean; 633 | declare function GetLightningColorABJ(whichBolt: lightning): number; 634 | declare function GetLightningColorRBJ(whichBolt: lightning): number; 635 | declare function GetLightningColorGBJ(whichBolt: lightning): number; 636 | declare function GetLightningColorBBJ(whichBolt: lightning): number; 637 | declare function SetLightningColorBJ(whichBolt: lightning, r: number, g: number, b: number, a: number): boolean; 638 | declare function GetLastCreatedLightningBJ(): lightning; 639 | declare function GetAbilityEffectBJ(abilcode: number, t: effecttype, index: number): string; 640 | declare function GetAbilitySoundBJ(abilcode: number, t: soundtype): string; 641 | declare function GetTerrainCliffLevelBJ(where: location): number; 642 | declare function GetTerrainTypeBJ(where: location): number; 643 | declare function GetTerrainVarianceBJ(where: location): number; 644 | declare function SetTerrainTypeBJ(where: location, terrainType: number, variation: number, area: number, shape: number): void; 645 | declare function IsTerrainPathableBJ(where: location, t: pathingtype): boolean; 646 | declare function SetTerrainPathableBJ(where: location, t: pathingtype, flag: boolean): void; 647 | declare function SetWaterBaseColorBJ(red: number, green: number, blue: number, transparency: number): void; 648 | declare function CreateFogModifierRectSimple(whichPlayer: player, whichFogState: fogstate, r: rect, afterUnits: boolean): fogmodifier; 649 | declare function CreateFogModifierRadiusLocSimple(whichPlayer: player, whichFogState: fogstate, center: location, radius: number, afterUnits: boolean): fogmodifier; 650 | declare function CreateFogModifierRectBJ(enabled: boolean, whichPlayer: player, whichFogState: fogstate, r: rect): fogmodifier; 651 | declare function CreateFogModifierRadiusLocBJ(enabled: boolean, whichPlayer: player, whichFogState: fogstate, center: location, radius: number): fogmodifier; 652 | declare function GetLastCreatedFogModifier(): fogmodifier; 653 | declare function FogEnableOn(): void; 654 | declare function FogEnableOff(): void; 655 | declare function FogMaskEnableOn(): void; 656 | declare function FogMaskEnableOff(): void; 657 | declare function UseTimeOfDayBJ(flag: boolean): void; 658 | declare function SetTerrainFogExBJ(style: number, zstart: number, zend: number, density: number, red: number, green: number, blue: number): void; 659 | declare function ResetTerrainFogBJ(): void; 660 | declare function SetDoodadAnimationBJ(animName: string, doodadID: number, radius: number, center: location): void; 661 | declare function SetDoodadAnimationRectBJ(animName: string, doodadID: number, r: rect): void; 662 | declare function AddUnitAnimationPropertiesBJ(add: boolean, animProperties: string, whichUnit: unit): void; 663 | declare function CreateImageBJ(file: string, size: number, where: location, zOffset: number, imageType: number): image; 664 | declare function ShowImageBJ(flag: boolean, whichImage: image): void; 665 | declare function SetImagePositionBJ(whichImage: image, where: location, zOffset: number): void; 666 | declare function SetImageColorBJ(whichImage: image, red: number, green: number, blue: number, alpha: number): void; 667 | declare function GetLastCreatedImage(): image; 668 | declare function CreateUbersplatBJ(where: location, name: string, red: number, green: number, blue: number, alpha: number, forcePaused: boolean, noBirthTime: boolean): ubersplat; 669 | declare function ShowUbersplatBJ(flag: boolean, whichSplat: ubersplat): void; 670 | declare function GetLastCreatedUbersplat(): ubersplat; 671 | declare function PlaySoundBJ(soundHandle: sound): void; 672 | declare function StopSoundBJ(soundHandle: sound, fadeOut: boolean): void; 673 | declare function SetSoundVolumeBJ(soundHandle: sound, volumePercent: number): void; 674 | declare function SetSoundOffsetBJ(newOffset: number, soundHandle: sound): void; 675 | declare function SetSoundDistanceCutoffBJ(soundHandle: sound, cutoff: number): void; 676 | declare function SetSoundPitchBJ(soundHandle: sound, pitch: number): void; 677 | declare function SetSoundPositionLocBJ(soundHandle: sound, loc: location, z: number): void; 678 | declare function AttachSoundToUnitBJ(soundHandle: sound, whichUnit: unit): void; 679 | declare function SetSoundConeAnglesBJ(soundHandle: sound, inside: number, outside: number, outsideVolumePercent: number): void; 680 | declare function KillSoundWhenDoneBJ(soundHandle: sound): void; 681 | declare function PlaySoundAtPointBJ(soundHandle: sound, volumePercent: number, loc: location, z: number): void; 682 | declare function PlaySoundOnUnitBJ(soundHandle: sound, volumePercent: number, whichUnit: unit): void; 683 | declare function PlaySoundFromOffsetBJ(soundHandle: sound, volumePercent: number, startingOffset: number): void; 684 | declare function PlayMusicBJ(musicFileName: string): void; 685 | declare function PlayMusicExBJ(musicFileName: string, startingOffset: number, fadeInTime: number): void; 686 | declare function SetMusicOffsetBJ(newOffset: number): void; 687 | declare function PlayThematicMusicBJ(musicName: string): void; 688 | declare function PlayThematicMusicExBJ(musicName: string, startingOffset: number): void; 689 | declare function SetThematicMusicOffsetBJ(newOffset: number): void; 690 | declare function EndThematicMusicBJ(): void; 691 | declare function StopMusicBJ(fadeOut: boolean): void; 692 | declare function ResumeMusicBJ(): void; 693 | declare function SetMusicVolumeBJ(volumePercent: number): void; 694 | declare function GetSoundDurationBJ(soundHandle: sound): number; 695 | declare function GetSoundFileDurationBJ(musicFileName: string): number; 696 | declare function GetLastPlayedSound(): sound; 697 | declare function GetLastPlayedMusic(): string; 698 | declare function VolumeGroupSetVolumeBJ(vgroup: volumegroup, percent: number): void; 699 | declare function SetCineModeVolumeGroupsImmediateBJ(): void; 700 | declare function SetCineModeVolumeGroupsBJ(): void; 701 | declare function SetSpeechVolumeGroupsImmediateBJ(): void; 702 | declare function SetSpeechVolumeGroupsBJ(): void; 703 | declare function VolumeGroupResetImmediateBJ(): void; 704 | declare function VolumeGroupResetBJ(): void; 705 | declare function GetSoundIsPlayingBJ(soundHandle: sound): boolean; 706 | declare function WaitForSoundBJ(soundHandle: sound, offset: number): void; 707 | declare function SetMapMusicIndexedBJ(musicName: string, index: number): void; 708 | declare function SetMapMusicRandomBJ(musicName: string): void; 709 | declare function ClearMapMusicBJ(): void; 710 | declare function SetStackedSoundBJ(add: boolean, soundHandle: sound, r: rect): void; 711 | declare function StartSoundForPlayerBJ(whichPlayer: player, soundHandle: sound): void; 712 | declare function VolumeGroupSetVolumeForPlayerBJ(whichPlayer: player, vgroup: volumegroup, scale: number): void; 713 | declare function EnableDawnDusk(flag: boolean): void; 714 | declare function IsDawnDuskEnabled(): boolean; 715 | declare function SetAmbientDaySound(inLabel: string): void; 716 | declare function SetAmbientNightSound(inLabel: string): void; 717 | declare function AddSpecialEffectLocBJ(where: location, modelName: string): effect; 718 | declare function AddSpecialEffectTargetUnitBJ(attachPointName: string, targetWidget: widget, modelName: string): effect; 719 | declare function DestroyEffectBJ(whichEffect: effect): void; 720 | declare function GetLastCreatedEffectBJ(): effect; 721 | declare function GetItemLoc(whichItem: item): location; 722 | declare function GetItemLifeBJ(whichWidget: widget): number; 723 | declare function SetItemLifeBJ(whichWidget: widget, life: number): void; 724 | declare function AddHeroXPSwapped(xpToAdd: number, whichHero: unit, showEyeCandy: boolean): void; 725 | declare function SetHeroLevelBJ(whichHero: unit, newLevel: number, showEyeCandy: boolean): void; 726 | declare function DecUnitAbilityLevelSwapped(abilcode: number, whichUnit: unit): number; 727 | declare function IncUnitAbilityLevelSwapped(abilcode: number, whichUnit: unit): number; 728 | declare function SetUnitAbilityLevelSwapped(abilcode: number, whichUnit: unit, level: number): number; 729 | declare function GetUnitAbilityLevelSwapped(abilcode: number, whichUnit: unit): number; 730 | declare function UnitHasBuffBJ(whichUnit: unit, buffcode: number): boolean; 731 | declare function UnitRemoveBuffBJ(buffcode: number, whichUnit: unit): boolean; 732 | declare function UnitAddItemSwapped(whichItem: item, whichHero: unit): boolean; 733 | declare function UnitAddItemByIdSwapped(itemId: number, whichHero: unit): item; 734 | declare function UnitRemoveItemSwapped(whichItem: item, whichHero: unit): void; 735 | declare function UnitRemoveItemFromSlotSwapped(itemSlot: number, whichHero: unit): item; 736 | declare function CreateItemLoc(itemId: number, loc: location): item; 737 | declare function GetLastCreatedItem(): item; 738 | declare function GetLastRemovedItem(): item; 739 | declare function SetItemPositionLoc(whichItem: item, loc: location): void; 740 | declare function GetLearnedSkillBJ(): number; 741 | declare function SuspendHeroXPBJ(flag: boolean, whichHero: unit): void; 742 | declare function SetPlayerHandicapXPBJ(whichPlayer: player, handicapPercent: number): void; 743 | declare function GetPlayerHandicapXPBJ(whichPlayer: player): number; 744 | declare function SetPlayerHandicapBJ(whichPlayer: player, handicapPercent: number): void; 745 | declare function GetPlayerHandicapBJ(whichPlayer: player): number; 746 | declare function GetHeroStatBJ(whichStat: number, whichHero: unit, includeBonuses: boolean): number; 747 | declare function SetHeroStat(whichHero: unit, whichStat: number, value: number): void; 748 | declare function ModifyHeroStat(whichStat: number, whichHero: unit, modifyMethod: number, value: number): void; 749 | declare function ModifyHeroSkillPoints(whichHero: unit, modifyMethod: number, value: number): boolean; 750 | declare function UnitDropItemPointBJ(whichUnit: unit, whichItem: item, x: number, y: number): boolean; 751 | declare function UnitDropItemPointLoc(whichUnit: unit, whichItem: item, loc: location): boolean; 752 | declare function UnitDropItemSlotBJ(whichUnit: unit, whichItem: item, slot: number): boolean; 753 | declare function UnitDropItemTargetBJ(whichUnit: unit, whichItem: item, target: widget): boolean; 754 | declare function UnitUseItemDestructable(whichUnit: unit, whichItem: item, target: widget): boolean; 755 | declare function UnitUseItemPointLoc(whichUnit: unit, whichItem: item, loc: location): boolean; 756 | declare function UnitItemInSlotBJ(whichUnit: unit, itemSlot: number): item; 757 | declare function GetInventoryIndexOfItemTypeBJ(whichUnit: unit, itemId: number): number; 758 | declare function GetItemOfTypeFromUnitBJ(whichUnit: unit, itemId: number): item; 759 | declare function UnitHasItemOfTypeBJ(whichUnit: unit, itemId: number): boolean; 760 | declare function UnitInventoryCount(whichUnit: unit): number; 761 | declare function UnitInventorySizeBJ(whichUnit: unit): number; 762 | declare function SetItemInvulnerableBJ(whichItem: item, flag: boolean): void; 763 | declare function SetItemDropOnDeathBJ(whichItem: item, flag: boolean): void; 764 | declare function SetItemDroppableBJ(whichItem: item, flag: boolean): void; 765 | declare function SetItemPlayerBJ(whichItem: item, whichPlayer: player, changeColor: boolean): void; 766 | declare function SetItemVisibleBJ(show: boolean, whichItem: item): void; 767 | declare function IsItemHiddenBJ(whichItem: item): boolean; 768 | declare function ChooseRandomItemBJ(level: number): number; 769 | declare function ChooseRandomItemExBJ(level: number, whichType: itemtype): number; 770 | declare function ChooseRandomNPBuildingBJ(): number; 771 | declare function ChooseRandomCreepBJ(level: number): number; 772 | declare function EnumItemsInRectBJ(r: rect, actionFunc: () => void): void; 773 | declare function RandomItemInRectBJEnum(): void; 774 | declare function RandomItemInRectBJ(r: rect, filter: boolexpr): item; 775 | declare function RandomItemInRectSimpleBJ(r: rect): item; 776 | declare function CheckItemStatus(whichItem: item, status: number): boolean; 777 | declare function CheckItemcodeStatus(itemId: number, status: number): boolean; 778 | declare function UnitId2OrderIdBJ(unitId: number): number; 779 | declare function String2UnitIdBJ(unitIdString: string): number; 780 | declare function UnitId2StringBJ(unitId: number): string; 781 | declare function String2OrderIdBJ(orderIdString: string): number; 782 | declare function OrderId2StringBJ(orderId: number): string; 783 | declare function GetIssuedOrderIdBJ(): number; 784 | declare function GetKillingUnitBJ(): unit; 785 | declare function CreateUnitAtLocSaveLast(id: player, unitid: number, loc: location, face: number): unit; 786 | declare function GetLastCreatedUnit(): unit; 787 | declare function CreateNUnitsAtLoc(count: number, unitId: number, whichPlayer: player, loc: location, face: number): group; 788 | declare function CreateNUnitsAtLocFacingLocBJ(count: number, unitId: number, whichPlayer: player, loc: location, lookAt: location): group; 789 | declare function GetLastCreatedGroupEnum(): void; 790 | declare function GetLastCreatedGroup(): group; 791 | declare function CreateCorpseLocBJ(unitid: number, whichPlayer: player, loc: location): unit; 792 | declare function UnitSuspendDecayBJ(suspend: boolean, whichUnit: unit): void; 793 | declare function DelayedSuspendDecayStopAnimEnum(): void; 794 | declare function DelayedSuspendDecayBoneEnum(): void; 795 | declare function DelayedSuspendDecayFleshEnum(): void; 796 | declare function DelayedSuspendDecay(): void; 797 | declare function DelayedSuspendDecayCreate(): void; 798 | declare function CreatePermanentCorpseLocBJ(style: number, unitid: number, whichPlayer: player, loc: location, facing: number): unit; 799 | declare function GetUnitStateSwap(whichState: unitstate, whichUnit: unit): number; 800 | declare function GetUnitStatePercent(whichUnit: unit, whichState: unitstate, whichMaxState: unitstate): number; 801 | declare function GetUnitLifePercent(whichUnit: unit): number; 802 | declare function GetUnitManaPercent(whichUnit: unit): number; 803 | declare function SelectUnitSingle(whichUnit: unit): void; 804 | declare function SelectGroupBJEnum(): void; 805 | declare function SelectGroupBJ(g: group): void; 806 | declare function SelectUnitAdd(whichUnit: unit): void; 807 | declare function SelectUnitRemove(whichUnit: unit): void; 808 | declare function ClearSelectionForPlayer(whichPlayer: player): void; 809 | declare function SelectUnitForPlayerSingle(whichUnit: unit, whichPlayer: player): void; 810 | declare function SelectGroupForPlayerBJ(g: group, whichPlayer: player): void; 811 | declare function SelectUnitAddForPlayer(whichUnit: unit, whichPlayer: player): void; 812 | declare function SelectUnitRemoveForPlayer(whichUnit: unit, whichPlayer: player): void; 813 | declare function SetUnitLifeBJ(whichUnit: unit, newValue: number): void; 814 | declare function SetUnitManaBJ(whichUnit: unit, newValue: number): void; 815 | declare function SetUnitLifePercentBJ(whichUnit: unit, percent: number): void; 816 | declare function SetUnitManaPercentBJ(whichUnit: unit, percent: number): void; 817 | declare function IsUnitDeadBJ(whichUnit: unit): boolean; 818 | declare function IsUnitAliveBJ(whichUnit: unit): boolean; 819 | declare function IsUnitGroupDeadBJEnum(): void; 820 | declare function IsUnitGroupDeadBJ(g: group): boolean; 821 | declare function IsUnitGroupEmptyBJEnum(): void; 822 | declare function IsUnitGroupEmptyBJ(g: group): boolean; 823 | declare function IsUnitGroupInRectBJEnum(): void; 824 | declare function IsUnitGroupInRectBJ(g: group, r: rect): boolean; 825 | declare function IsUnitHiddenBJ(whichUnit: unit): boolean; 826 | declare function ShowUnitHide(whichUnit: unit): void; 827 | declare function ShowUnitShow(whichUnit: unit): void; 828 | declare function IssueHauntOrderAtLocBJFilter(): boolean; 829 | declare function IssueHauntOrderAtLocBJ(whichPeon: unit, loc: location): boolean; 830 | declare function IssueBuildOrderByIdLocBJ(whichPeon: unit, unitId: number, loc: location): boolean; 831 | declare function IssueTrainOrderByIdBJ(whichUnit: unit, unitId: number): boolean; 832 | declare function GroupTrainOrderByIdBJ(g: group, unitId: number): boolean; 833 | declare function IssueUpgradeOrderByIdBJ(whichUnit: unit, techId: number): boolean; 834 | declare function GetAttackedUnitBJ(): unit; 835 | declare function SetUnitFlyHeightBJ(whichUnit: unit, newHeight: number, rate: number): void; 836 | declare function SetUnitTurnSpeedBJ(whichUnit: unit, turnSpeed: number): void; 837 | declare function SetUnitPropWindowBJ(whichUnit: unit, propWindow: number): void; 838 | declare function GetUnitPropWindowBJ(whichUnit: unit): number; 839 | declare function GetUnitDefaultPropWindowBJ(whichUnit: unit): number; 840 | declare function SetUnitBlendTimeBJ(whichUnit: unit, blendTime: number): void; 841 | declare function SetUnitAcquireRangeBJ(whichUnit: unit, acquireRange: number): void; 842 | declare function UnitSetCanSleepBJ(whichUnit: unit, canSleep: boolean): void; 843 | declare function UnitCanSleepBJ(whichUnit: unit): boolean; 844 | declare function UnitWakeUpBJ(whichUnit: unit): void; 845 | declare function UnitIsSleepingBJ(whichUnit: unit): boolean; 846 | declare function WakePlayerUnitsEnum(): void; 847 | declare function WakePlayerUnits(whichPlayer: player): void; 848 | declare function EnableCreepSleepBJ(enable: boolean): void; 849 | declare function UnitGenerateAlarms(whichUnit: unit, generate: boolean): boolean; 850 | declare function DoesUnitGenerateAlarms(whichUnit: unit): boolean; 851 | declare function PauseAllUnitsBJEnum(): void; 852 | declare function PauseAllUnitsBJ(pause: boolean): void; 853 | declare function PauseUnitBJ(pause: boolean, whichUnit: unit): void; 854 | declare function IsUnitPausedBJ(whichUnit: unit): boolean; 855 | declare function UnitPauseTimedLifeBJ(flag: boolean, whichUnit: unit): void; 856 | declare function UnitApplyTimedLifeBJ(duration: number, buffId: number, whichUnit: unit): void; 857 | declare function UnitShareVisionBJ(share: boolean, whichUnit: unit, whichPlayer: player): void; 858 | declare function UnitRemoveBuffsBJ(buffType: number, whichUnit: unit): void; 859 | declare function UnitRemoveBuffsExBJ(polarity: number, resist: number, whichUnit: unit, bTLife: boolean, bAura: boolean): void; 860 | declare function UnitCountBuffsExBJ(polarity: number, resist: number, whichUnit: unit, bTLife: boolean, bAura: boolean): number; 861 | declare function UnitRemoveAbilityBJ(abilityId: number, whichUnit: unit): boolean; 862 | declare function UnitAddAbilityBJ(abilityId: number, whichUnit: unit): boolean; 863 | declare function UnitRemoveTypeBJ(whichType: unittype, whichUnit: unit): boolean; 864 | declare function UnitAddTypeBJ(whichType: unittype, whichUnit: unit): boolean; 865 | declare function UnitMakeAbilityPermanentBJ(permanent: boolean, abilityId: number, whichUnit: unit): boolean; 866 | declare function SetUnitExplodedBJ(whichUnit: unit, exploded: boolean): void; 867 | declare function ExplodeUnitBJ(whichUnit: unit): void; 868 | declare function GetTransportUnitBJ(): unit; 869 | declare function GetLoadedUnitBJ(): unit; 870 | declare function IsUnitInTransportBJ(whichUnit: unit, whichTransport: unit): boolean; 871 | declare function IsUnitLoadedBJ(whichUnit: unit): boolean; 872 | declare function IsUnitIllusionBJ(whichUnit: unit): boolean; 873 | declare function ReplaceUnitBJ(whichUnit: unit, newUnitId: number, unitStateMethod: number): unit; 874 | declare function GetLastReplacedUnitBJ(): unit; 875 | declare function SetUnitPositionLocFacingBJ(whichUnit: unit, loc: location, facing: number): void; 876 | declare function SetUnitPositionLocFacingLocBJ(whichUnit: unit, loc: location, lookAt: location): void; 877 | declare function AddItemToStockBJ(itemId: number, whichUnit: unit, currentStock: number, stockMax: number): void; 878 | declare function AddUnitToStockBJ(unitId: number, whichUnit: unit, currentStock: number, stockMax: number): void; 879 | declare function RemoveItemFromStockBJ(itemId: number, whichUnit: unit): void; 880 | declare function RemoveUnitFromStockBJ(unitId: number, whichUnit: unit): void; 881 | declare function SetUnitUseFoodBJ(enable: boolean, whichUnit: unit): void; 882 | declare function UnitDamagePointLoc(whichUnit: unit, delay: number, radius: number, loc: location, amount: number, whichAttack: attacktype, whichDamage: damagetype): boolean; 883 | declare function UnitDamageTargetBJ(whichUnit: unit, target: unit, amount: number, whichAttack: attacktype, whichDamage: damagetype): boolean; 884 | declare function CreateDestructableLoc(objectid: number, loc: location, facing: number, scale: number, variation: number): destructable; 885 | declare function CreateDeadDestructableLocBJ(objectid: number, loc: location, facing: number, scale: number, variation: number): destructable; 886 | declare function GetLastCreatedDestructable(): destructable; 887 | declare function ShowDestructableBJ(flag: boolean, d: destructable): void; 888 | declare function SetDestructableInvulnerableBJ(d: destructable, flag: boolean): void; 889 | declare function IsDestructableInvulnerableBJ(d: destructable): boolean; 890 | declare function GetDestructableLoc(whichDestructable: destructable): location; 891 | declare function EnumDestructablesInRectAll(r: rect, actionFunc: () => void): void; 892 | declare function EnumDestructablesInCircleBJFilter(): boolean; 893 | declare function IsDestructableDeadBJ(d: destructable): boolean; 894 | declare function IsDestructableAliveBJ(d: destructable): boolean; 895 | declare function RandomDestructableInRectBJEnum(): void; 896 | declare function RandomDestructableInRectBJ(r: rect, filter: boolexpr): destructable; 897 | declare function RandomDestructableInRectSimpleBJ(r: rect): destructable; 898 | declare function EnumDestructablesInCircleBJ(radius: number, loc: location, actionFunc: () => void): void; 899 | declare function SetDestructableLifePercentBJ(d: destructable, percent: number): void; 900 | declare function SetDestructableMaxLifeBJ(d: destructable, max: number): void; 901 | declare function ModifyGateBJ(gateOperation: number, d: destructable): void; 902 | declare function GetElevatorHeight(d: destructable): number; 903 | declare function ChangeElevatorHeight(d: destructable, newHeight: number): void; 904 | declare function NudgeUnitsInRectEnum(): void; 905 | declare function NudgeItemsInRectEnum(): void; 906 | declare function NudgeObjectsInRect(nudgeArea: rect): void; 907 | declare function NearbyElevatorExistsEnum(): void; 908 | declare function NearbyElevatorExists(x: number, y: number): boolean; 909 | declare function FindElevatorWallBlockerEnum(): void; 910 | declare function ChangeElevatorWallBlocker(x: number, y: number, facing: number, open: boolean): void; 911 | declare function ChangeElevatorWalls(open: boolean, walls: number, d: destructable): void; 912 | declare function WaygateActivateBJ(activate: boolean, waygate: unit): void; 913 | declare function WaygateIsActiveBJ(waygate: unit): boolean; 914 | declare function WaygateSetDestinationLocBJ(waygate: unit, loc: location): void; 915 | declare function WaygateGetDestinationLocBJ(waygate: unit): location; 916 | declare function UnitSetUsesAltIconBJ(flag: boolean, whichUnit: unit): void; 917 | declare function ForceUIKeyBJ(whichPlayer: player, key: string): void; 918 | declare function ForceUICancelBJ(whichPlayer: player): void; 919 | declare function ForGroupBJ(whichGroup: group, callback: () => void): void; 920 | declare function GroupAddUnitSimple(whichUnit: unit, whichGroup: group): void; 921 | declare function GroupRemoveUnitSimple(whichUnit: unit, whichGroup: group): void; 922 | declare function GroupAddGroupEnum(): void; 923 | declare function GroupAddGroup(sourceGroup: group, destGroup: group): void; 924 | declare function GroupRemoveGroupEnum(): void; 925 | declare function GroupRemoveGroup(sourceGroup: group, destGroup: group): void; 926 | declare function ForceAddPlayerSimple(whichPlayer: player, whichForce: force): void; 927 | declare function ForceRemovePlayerSimple(whichPlayer: player, whichForce: force): void; 928 | declare function GroupPickRandomUnitEnum(): void; 929 | declare function GroupPickRandomUnit(whichGroup: group): unit; 930 | declare function ForcePickRandomPlayerEnum(): void; 931 | declare function ForcePickRandomPlayer(whichForce: force): player; 932 | declare function EnumUnitsSelected(whichPlayer: player, enumFilter: boolexpr, enumAction: () => void): void; 933 | declare function GetUnitsInRectMatching(r: rect, filter: boolexpr): group; 934 | declare function GetUnitsInRectAll(r: rect): group; 935 | declare function GetUnitsInRectOfPlayerFilter(): boolean; 936 | declare function GetUnitsInRectOfPlayer(r: rect, whichPlayer: player): group; 937 | declare function GetUnitsInRangeOfLocMatching(radius: number, whichLocation: location, filter: boolexpr): group; 938 | declare function GetUnitsInRangeOfLocAll(radius: number, whichLocation: location): group; 939 | declare function GetUnitsOfTypeIdAllFilter(): boolean; 940 | declare function GetUnitsOfTypeIdAll(unitid: number): group; 941 | declare function GetUnitsOfPlayerMatching(whichPlayer: player, filter: boolexpr): group; 942 | declare function GetUnitsOfPlayerAll(whichPlayer: player): group; 943 | declare function GetUnitsOfPlayerAndTypeIdFilter(): boolean; 944 | declare function GetUnitsOfPlayerAndTypeId(whichPlayer: player, unitid: number): group; 945 | declare function GetUnitsSelectedAll(whichPlayer: player): group; 946 | declare function GetForceOfPlayer(whichPlayer: player): force; 947 | declare function GetPlayersAll(): force; 948 | declare function GetPlayersByMapControl(whichControl: mapcontrol): force; 949 | declare function GetPlayersAllies(whichPlayer: player): force; 950 | declare function GetPlayersEnemies(whichPlayer: player): force; 951 | declare function GetPlayersMatching(filter: boolexpr): force; 952 | declare function CountUnitsInGroupEnum(): void; 953 | declare function CountUnitsInGroup(g: group): number; 954 | declare function CountPlayersInForceEnum(): void; 955 | declare function CountPlayersInForceBJ(f: force): number; 956 | declare function GetRandomSubGroupEnum(): void; 957 | declare function GetRandomSubGroup(count: number, sourceGroup: group): group; 958 | declare function LivingPlayerUnitsOfTypeIdFilter(): boolean; 959 | declare function CountLivingPlayerUnitsOfTypeId(unitId: number, whichPlayer: player): number; 960 | declare function ResetUnitAnimation(whichUnit: unit): void; 961 | declare function SetUnitTimeScalePercent(whichUnit: unit, percentScale: number): void; 962 | declare function SetUnitScalePercent(whichUnit: unit, percentScaleX: number, percentScaleY: number, percentScaleZ: number): void; 963 | declare function SetUnitVertexColorBJ(whichUnit: unit, red: number, green: number, blue: number, transparency: number): void; 964 | declare function UnitAddIndicatorBJ(whichUnit: unit, red: number, green: number, blue: number, transparency: number): void; 965 | declare function DestructableAddIndicatorBJ(whichDestructable: destructable, red: number, green: number, blue: number, transparency: number): void; 966 | declare function ItemAddIndicatorBJ(whichItem: item, red: number, green: number, blue: number, transparency: number): void; 967 | declare function SetUnitFacingToFaceLocTimed(whichUnit: unit, target: location, duration: number): void; 968 | declare function SetUnitFacingToFaceUnitTimed(whichUnit: unit, target: unit, duration: number): void; 969 | declare function QueueUnitAnimationBJ(whichUnit: unit, whichAnimation: string): void; 970 | declare function SetDestructableAnimationBJ(d: destructable, whichAnimation: string): void; 971 | declare function QueueDestructableAnimationBJ(d: destructable, whichAnimation: string): void; 972 | declare function SetDestAnimationSpeedPercent(d: destructable, percentScale: number): void; 973 | declare function DialogDisplayBJ(flag: boolean, whichDialog: dialog, whichPlayer: player): void; 974 | declare function DialogSetMessageBJ(whichDialog: dialog, message: string): void; 975 | declare function DialogAddButtonBJ(whichDialog: dialog, buttonText: string): button; 976 | declare function DialogAddButtonWithHotkeyBJ(whichDialog: dialog, buttonText: string, hotkey: number): button; 977 | declare function DialogClearBJ(whichDialog: dialog): void; 978 | declare function GetLastCreatedButtonBJ(): button; 979 | declare function GetClickedButtonBJ(): button; 980 | declare function GetClickedDialogBJ(): dialog; 981 | declare function SetPlayerAllianceBJ(sourcePlayer: player, whichAllianceSetting: alliancetype, value: boolean, otherPlayer: player): void; 982 | declare function SetPlayerAllianceStateAllyBJ(sourcePlayer: player, otherPlayer: player, flag: boolean): void; 983 | declare function SetPlayerAllianceStateVisionBJ(sourcePlayer: player, otherPlayer: player, flag: boolean): void; 984 | declare function SetPlayerAllianceStateControlBJ(sourcePlayer: player, otherPlayer: player, flag: boolean): void; 985 | declare function SetPlayerAllianceStateFullControlBJ(sourcePlayer: player, otherPlayer: player, flag: boolean): void; 986 | declare function SetPlayerAllianceStateBJ(sourcePlayer: player, otherPlayer: player, allianceState: number): void; 987 | declare function SetForceAllianceStateBJ(sourceForce: force, targetForce: force, allianceState: number): void; 988 | declare function PlayersAreCoAllied(playerA: player, playerB: player): boolean; 989 | declare function ShareEverythingWithTeamAI(whichPlayer: player): void; 990 | declare function ShareEverythingWithTeam(whichPlayer: player): void; 991 | declare function ConfigureNeutralVictim(): void; 992 | declare function MakeUnitsPassiveForPlayerEnum(): void; 993 | declare function MakeUnitsPassiveForPlayer(whichPlayer: player): void; 994 | declare function MakeUnitsPassiveForTeam(whichPlayer: player): void; 995 | declare function AllowVictoryDefeat(gameResult: playergameresult): boolean; 996 | declare function EndGameBJ(): void; 997 | declare function MeleeVictoryDialogBJ(whichPlayer: player, leftGame: boolean): void; 998 | declare function MeleeDefeatDialogBJ(whichPlayer: player, leftGame: boolean): void; 999 | declare function GameOverDialogBJ(whichPlayer: player, leftGame: boolean): void; 1000 | declare function RemovePlayerPreserveUnitsBJ(whichPlayer: player, gameResult: playergameresult, leftGame: boolean): void; 1001 | declare function CustomVictoryOkBJ(): void; 1002 | declare function CustomVictoryQuitBJ(): void; 1003 | declare function CustomVictoryDialogBJ(whichPlayer: player): void; 1004 | declare function CustomVictorySkipBJ(whichPlayer: player): void; 1005 | declare function CustomVictoryBJ(whichPlayer: player, showDialog: boolean, showScores: boolean): void; 1006 | declare function CustomDefeatRestartBJ(): void; 1007 | declare function CustomDefeatReduceDifficultyBJ(): void; 1008 | declare function CustomDefeatLoadBJ(): void; 1009 | declare function CustomDefeatQuitBJ(): void; 1010 | declare function CustomDefeatDialogBJ(whichPlayer: player, message: string): void; 1011 | declare function CustomDefeatBJ(whichPlayer: player, message: string): void; 1012 | declare function SetNextLevelBJ(nextLevel: string): void; 1013 | declare function SetPlayerOnScoreScreenBJ(flag: boolean, whichPlayer: player): void; 1014 | declare function CreateQuestBJ(questType: number, title: string, description: string, iconPath: string): quest; 1015 | declare function DestroyQuestBJ(whichQuest: quest): void; 1016 | declare function QuestSetEnabledBJ(enabled: boolean, whichQuest: quest): void; 1017 | declare function QuestSetTitleBJ(whichQuest: quest, title: string): void; 1018 | declare function QuestSetDescriptionBJ(whichQuest: quest, description: string): void; 1019 | declare function QuestSetCompletedBJ(whichQuest: quest, completed: boolean): void; 1020 | declare function QuestSetFailedBJ(whichQuest: quest, failed: boolean): void; 1021 | declare function QuestSetDiscoveredBJ(whichQuest: quest, discovered: boolean): void; 1022 | declare function GetLastCreatedQuestBJ(): quest; 1023 | declare function CreateQuestItemBJ(whichQuest: quest, description: string): questitem; 1024 | declare function QuestItemSetDescriptionBJ(whichQuestItem: questitem, description: string): void; 1025 | declare function QuestItemSetCompletedBJ(whichQuestItem: questitem, completed: boolean): void; 1026 | declare function GetLastCreatedQuestItemBJ(): questitem; 1027 | declare function CreateDefeatConditionBJ(description: string): defeatcondition; 1028 | declare function DestroyDefeatConditionBJ(whichCondition: defeatcondition): void; 1029 | declare function DefeatConditionSetDescriptionBJ(whichCondition: defeatcondition, description: string): void; 1030 | declare function GetLastCreatedDefeatConditionBJ(): defeatcondition; 1031 | declare function FlashQuestDialogButtonBJ(): void; 1032 | declare function QuestMessageBJ(f: force, messageType: number, message: string): void; 1033 | declare function StartTimerBJ(t: timer, periodic: boolean, timeout: number): timer; 1034 | declare function CreateTimerBJ(periodic: boolean, timeout: number): timer; 1035 | declare function DestroyTimerBJ(whichTimer: timer): void; 1036 | declare function PauseTimerBJ(pause: boolean, whichTimer: timer): void; 1037 | declare function GetLastCreatedTimerBJ(): timer; 1038 | declare function CreateTimerDialogBJ(t: timer, title: string): timerdialog; 1039 | declare function DestroyTimerDialogBJ(td: timerdialog): void; 1040 | declare function TimerDialogSetTitleBJ(td: timerdialog, title: string): void; 1041 | declare function TimerDialogSetTitleColorBJ(td: timerdialog, red: number, green: number, blue: number, transparency: number): void; 1042 | declare function TimerDialogSetTimeColorBJ(td: timerdialog, red: number, green: number, blue: number, transparency: number): void; 1043 | declare function TimerDialogSetSpeedBJ(td: timerdialog, speedMultFactor: number): void; 1044 | declare function TimerDialogDisplayForPlayerBJ(show: boolean, td: timerdialog, whichPlayer: player): void; 1045 | declare function TimerDialogDisplayBJ(show: boolean, td: timerdialog): void; 1046 | declare function GetLastCreatedTimerDialogBJ(): timerdialog; 1047 | declare function LeaderboardResizeBJ(lb: leaderboard): void; 1048 | declare function LeaderboardSetPlayerItemValueBJ(whichPlayer: player, lb: leaderboard, val: number): void; 1049 | declare function LeaderboardSetPlayerItemLabelBJ(whichPlayer: player, lb: leaderboard, val: string): void; 1050 | declare function LeaderboardSetPlayerItemStyleBJ(whichPlayer: player, lb: leaderboard, showLabel: boolean, showValue: boolean, showIcon: boolean): void; 1051 | declare function LeaderboardSetPlayerItemLabelColorBJ(whichPlayer: player, lb: leaderboard, red: number, green: number, blue: number, transparency: number): void; 1052 | declare function LeaderboardSetPlayerItemValueColorBJ(whichPlayer: player, lb: leaderboard, red: number, green: number, blue: number, transparency: number): void; 1053 | declare function LeaderboardSetLabelColorBJ(lb: leaderboard, red: number, green: number, blue: number, transparency: number): void; 1054 | declare function LeaderboardSetValueColorBJ(lb: leaderboard, red: number, green: number, blue: number, transparency: number): void; 1055 | declare function LeaderboardSetLabelBJ(lb: leaderboard, label: string): void; 1056 | declare function LeaderboardSetStyleBJ(lb: leaderboard, showLabel: boolean, showNames: boolean, showValues: boolean, showIcons: boolean): void; 1057 | declare function LeaderboardGetItemCountBJ(lb: leaderboard): number; 1058 | declare function LeaderboardHasPlayerItemBJ(lb: leaderboard, whichPlayer: player): boolean; 1059 | declare function ForceSetLeaderboardBJ(lb: leaderboard, toForce: force): void; 1060 | declare function CreateLeaderboardBJ(toForce: force, label: string): leaderboard; 1061 | declare function DestroyLeaderboardBJ(lb: leaderboard): void; 1062 | declare function LeaderboardDisplayBJ(show: boolean, lb: leaderboard): void; 1063 | declare function LeaderboardAddItemBJ(whichPlayer: player, lb: leaderboard, label: string, value: number): void; 1064 | declare function LeaderboardRemovePlayerItemBJ(whichPlayer: player, lb: leaderboard): void; 1065 | declare function LeaderboardSortItemsBJ(lb: leaderboard, sortType: number, ascending: boolean): void; 1066 | declare function LeaderboardSortItemsByPlayerBJ(lb: leaderboard, ascending: boolean): void; 1067 | declare function LeaderboardSortItemsByLabelBJ(lb: leaderboard, ascending: boolean): void; 1068 | declare function LeaderboardGetPlayerIndexBJ(whichPlayer: player, lb: leaderboard): number; 1069 | declare function LeaderboardGetIndexedPlayerBJ(position: number, lb: leaderboard): player; 1070 | declare function PlayerGetLeaderboardBJ(whichPlayer: player): leaderboard; 1071 | declare function GetLastCreatedLeaderboard(): leaderboard; 1072 | declare function CreateMultiboardBJ(cols: number, rows: number, title: string): multiboard; 1073 | declare function DestroyMultiboardBJ(mb: multiboard): void; 1074 | declare function GetLastCreatedMultiboard(): multiboard; 1075 | declare function MultiboardDisplayBJ(show: boolean, mb: multiboard): void; 1076 | declare function MultiboardMinimizeBJ(minimize: boolean, mb: multiboard): void; 1077 | declare function MultiboardSetTitleTextColorBJ(mb: multiboard, red: number, green: number, blue: number, transparency: number): void; 1078 | declare function MultiboardAllowDisplayBJ(flag: boolean): void; 1079 | declare function MultiboardSetItemStyleBJ(mb: multiboard, col: number, row: number, showValue: boolean, showIcon: boolean): void; 1080 | declare function MultiboardSetItemValueBJ(mb: multiboard, col: number, row: number, val: string): void; 1081 | declare function MultiboardSetItemColorBJ(mb: multiboard, col: number, row: number, red: number, green: number, blue: number, transparency: number): void; 1082 | declare function MultiboardSetItemWidthBJ(mb: multiboard, col: number, row: number, width: number): void; 1083 | declare function MultiboardSetItemIconBJ(mb: multiboard, col: number, row: number, iconFileName: string): void; 1084 | declare function TextTagSize2Height(size: number): number; 1085 | declare function TextTagSpeed2Velocity(speed: number): number; 1086 | declare function SetTextTagColorBJ(tt: texttag, red: number, green: number, blue: number, transparency: number): void; 1087 | declare function SetTextTagVelocityBJ(tt: texttag, speed: number, angle: number): void; 1088 | declare function SetTextTagTextBJ(tt: texttag, s: string, size: number): void; 1089 | declare function SetTextTagPosBJ(tt: texttag, loc: location, zOffset: number): void; 1090 | declare function SetTextTagPosUnitBJ(tt: texttag, whichUnit: unit, zOffset: number): void; 1091 | declare function SetTextTagSuspendedBJ(tt: texttag, flag: boolean): void; 1092 | declare function SetTextTagPermanentBJ(tt: texttag, flag: boolean): void; 1093 | declare function SetTextTagAgeBJ(tt: texttag, age: number): void; 1094 | declare function SetTextTagLifespanBJ(tt: texttag, lifespan: number): void; 1095 | declare function SetTextTagFadepointBJ(tt: texttag, fadepoint: number): void; 1096 | declare function CreateTextTagLocBJ(s: string, loc: location, zOffset: number, size: number, red: number, green: number, blue: number, transparency: number): texttag; 1097 | declare function CreateTextTagUnitBJ(s: string, whichUnit: unit, zOffset: number, size: number, red: number, green: number, blue: number, transparency: number): texttag; 1098 | declare function DestroyTextTagBJ(tt: texttag): void; 1099 | declare function ShowTextTagForceBJ(show: boolean, tt: texttag, whichForce: force): void; 1100 | declare function GetLastCreatedTextTag(): texttag; 1101 | declare function PauseGameOn(): void; 1102 | declare function PauseGameOff(): void; 1103 | declare function SetUserControlForceOn(whichForce: force): void; 1104 | declare function SetUserControlForceOff(whichForce: force): void; 1105 | declare function ShowInterfaceForceOn(whichForce: force, fadeDuration: number): void; 1106 | declare function ShowInterfaceForceOff(whichForce: force, fadeDuration: number): void; 1107 | declare function PingMinimapForForce(whichForce: force, x: number, y: number, duration: number): void; 1108 | declare function PingMinimapLocForForce(whichForce: force, loc: location, duration: number): void; 1109 | declare function PingMinimapForPlayer(whichPlayer: player, x: number, y: number, duration: number): void; 1110 | declare function PingMinimapLocForPlayer(whichPlayer: player, loc: location, duration: number): void; 1111 | declare function PingMinimapForForceEx(whichForce: force, x: number, y: number, duration: number, style: number, red: number, green: number, blue: number): void; 1112 | declare function PingMinimapLocForForceEx(whichForce: force, loc: location, duration: number, style: number, red: number, green: number, blue: number): void; 1113 | declare function EnableWorldFogBoundaryBJ(enable: boolean, f: force): void; 1114 | declare function EnableOcclusionBJ(enable: boolean, f: force): void; 1115 | declare function CancelCineSceneBJ(): void; 1116 | declare function TryInitCinematicBehaviorBJ(): void; 1117 | declare function SetCinematicSceneBJ(soundHandle: sound, portraitUnitId: number, color: playercolor, speakerTitle: string, text: string, sceneDuration: number, voiceoverDuration: number): void; 1118 | declare function GetTransmissionDuration(soundHandle: sound, timeType: number, timeVal: number): number; 1119 | declare function WaitTransmissionDuration(soundHandle: sound, timeType: number, timeVal: number): void; 1120 | declare function DoTransmissionBasicsXYBJ(unitId: number, color: playercolor, x: number, y: number, soundHandle: sound, unitName: string, message: string, duration: number): void; 1121 | declare function TransmissionFromUnitWithNameBJ(toForce: force, whichUnit: unit, unitName: string, soundHandle: sound, message: string, timeType: number, timeVal: number, wait: boolean): void; 1122 | declare function TransmissionFromUnitTypeWithNameBJ(toForce: force, fromPlayer: player, unitId: number, unitName: string, loc: location, soundHandle: sound, message: string, timeType: number, timeVal: number, wait: boolean): void; 1123 | declare function GetLastTransmissionDurationBJ(): number; 1124 | declare function ForceCinematicSubtitlesBJ(flag: boolean): void; 1125 | declare function CinematicModeExBJ(cineMode: boolean, forForce: force, interfaceFadeTime: number): void; 1126 | declare function CinematicModeBJ(cineMode: boolean, forForce: force): void; 1127 | declare function DisplayCineFilterBJ(flag: boolean): void; 1128 | declare function CinematicFadeCommonBJ(red: number, green: number, blue: number, duration: number, tex: string, startTrans: number, endTrans: number): void; 1129 | declare function FinishCinematicFadeBJ(): void; 1130 | declare function FinishCinematicFadeAfterBJ(duration: number): void; 1131 | declare function ContinueCinematicFadeBJ(): void; 1132 | declare function ContinueCinematicFadeAfterBJ(duration: number, red: number, green: number, blue: number, trans: number, tex: string): void; 1133 | declare function AbortCinematicFadeBJ(): void; 1134 | declare function CinematicFadeBJ(fadetype: number, duration: number, tex: string, red: number, green: number, blue: number, trans: number): void; 1135 | declare function CinematicFilterGenericBJ(duration: number, bmode: blendmode, tex: string, red0: number, green0: number, blue0: number, trans0: number, red1: number, green1: number, blue1: number, trans1: number): void; 1136 | declare function RescueUnitBJ(whichUnit: unit, rescuer: player, changeColor: boolean): void; 1137 | declare function TriggerActionUnitRescuedBJ(): void; 1138 | declare function TryInitRescuableTriggersBJ(): void; 1139 | declare function SetRescueUnitColorChangeBJ(changeColor: boolean): void; 1140 | declare function SetRescueBuildingColorChangeBJ(changeColor: boolean): void; 1141 | declare function MakeUnitRescuableToForceBJEnum(): void; 1142 | declare function MakeUnitRescuableToForceBJ(whichUnit: unit, isRescuable: boolean, whichForce: force): void; 1143 | declare function InitRescuableBehaviorBJ(): void; 1144 | declare function SetPlayerTechResearchedSwap(techid: number, levels: number, whichPlayer: player): void; 1145 | declare function SetPlayerTechMaxAllowedSwap(techid: number, maximum: number, whichPlayer: player): void; 1146 | declare function SetPlayerMaxHeroesAllowed(maximum: number, whichPlayer: player): void; 1147 | declare function GetPlayerTechCountSimple(techid: number, whichPlayer: player): number; 1148 | declare function GetPlayerTechMaxAllowedSwap(techid: number, whichPlayer: player): number; 1149 | declare function SetPlayerAbilityAvailableBJ(avail: boolean, abilid: number, whichPlayer: player): void; 1150 | declare function SetCampaignMenuRaceBJ(campaignNumber: number): void; 1151 | declare function SetMissionAvailableBJ(available: boolean, missionIndex: number): void; 1152 | declare function SetCampaignAvailableBJ(available: boolean, campaignNumber: number): void; 1153 | declare function SetCinematicAvailableBJ(available: boolean, cinematicIndex: number): void; 1154 | declare function InitGameCacheBJ(campaignFile: string): gamecache; 1155 | declare function SaveGameCacheBJ(cache: gamecache): boolean; 1156 | declare function GetLastCreatedGameCacheBJ(): gamecache; 1157 | declare function InitHashtableBJ(): hashtable; 1158 | declare function GetLastCreatedHashtableBJ(): hashtable; 1159 | declare function StoreRealBJ(value: number, key: string, missionKey: string, cache: gamecache): void; 1160 | declare function StoreIntegerBJ(value: number, key: string, missionKey: string, cache: gamecache): void; 1161 | declare function StoreBooleanBJ(value: boolean, key: string, missionKey: string, cache: gamecache): void; 1162 | declare function StoreStringBJ(value: string, key: string, missionKey: string, cache: gamecache): boolean; 1163 | declare function StoreUnitBJ(whichUnit: unit, key: string, missionKey: string, cache: gamecache): boolean; 1164 | declare function SaveRealBJ(value: number, key: number, missionKey: number, table: hashtable): void; 1165 | declare function SaveIntegerBJ(value: number, key: number, missionKey: number, table: hashtable): void; 1166 | declare function SaveBooleanBJ(value: boolean, key: number, missionKey: number, table: hashtable): void; 1167 | declare function SaveStringBJ(value: string, key: number, missionKey: number, table: hashtable): boolean; 1168 | declare function SavePlayerHandleBJ(whichPlayer: player, key: number, missionKey: number, table: hashtable): boolean; 1169 | declare function SaveWidgetHandleBJ(whichWidget: widget, key: number, missionKey: number, table: hashtable): boolean; 1170 | declare function SaveDestructableHandleBJ(whichDestructable: destructable, key: number, missionKey: number, table: hashtable): boolean; 1171 | declare function SaveItemHandleBJ(whichItem: item, key: number, missionKey: number, table: hashtable): boolean; 1172 | declare function SaveUnitHandleBJ(whichUnit: unit, key: number, missionKey: number, table: hashtable): boolean; 1173 | declare function SaveAbilityHandleBJ(whichAbility: ability, key: number, missionKey: number, table: hashtable): boolean; 1174 | declare function SaveTimerHandleBJ(whichTimer: timer, key: number, missionKey: number, table: hashtable): boolean; 1175 | declare function SaveTriggerHandleBJ(whichTrigger: trigger, key: number, missionKey: number, table: hashtable): boolean; 1176 | declare function SaveTriggerConditionHandleBJ(whichTriggercondition: triggercondition, key: number, missionKey: number, table: hashtable): boolean; 1177 | declare function SaveTriggerActionHandleBJ(whichTriggeraction: triggeraction, key: number, missionKey: number, table: hashtable): boolean; 1178 | declare function SaveTriggerEventHandleBJ(whichEvent: event, key: number, missionKey: number, table: hashtable): boolean; 1179 | declare function SaveForceHandleBJ(whichForce: force, key: number, missionKey: number, table: hashtable): boolean; 1180 | declare function SaveGroupHandleBJ(whichGroup: group, key: number, missionKey: number, table: hashtable): boolean; 1181 | declare function SaveLocationHandleBJ(whichLocation: location, key: number, missionKey: number, table: hashtable): boolean; 1182 | declare function SaveRectHandleBJ(whichRect: rect, key: number, missionKey: number, table: hashtable): boolean; 1183 | declare function SaveBooleanExprHandleBJ(whichBoolexpr: boolexpr, key: number, missionKey: number, table: hashtable): boolean; 1184 | declare function SaveSoundHandleBJ(whichSound: sound, key: number, missionKey: number, table: hashtable): boolean; 1185 | declare function SaveEffectHandleBJ(whichEffect: effect, key: number, missionKey: number, table: hashtable): boolean; 1186 | declare function SaveUnitPoolHandleBJ(whichUnitpool: unitpool, key: number, missionKey: number, table: hashtable): boolean; 1187 | declare function SaveItemPoolHandleBJ(whichItempool: itempool, key: number, missionKey: number, table: hashtable): boolean; 1188 | declare function SaveQuestHandleBJ(whichQuest: quest, key: number, missionKey: number, table: hashtable): boolean; 1189 | declare function SaveQuestItemHandleBJ(whichQuestitem: questitem, key: number, missionKey: number, table: hashtable): boolean; 1190 | declare function SaveDefeatConditionHandleBJ(whichDefeatcondition: defeatcondition, key: number, missionKey: number, table: hashtable): boolean; 1191 | declare function SaveTimerDialogHandleBJ(whichTimerdialog: timerdialog, key: number, missionKey: number, table: hashtable): boolean; 1192 | declare function SaveLeaderboardHandleBJ(whichLeaderboard: leaderboard, key: number, missionKey: number, table: hashtable): boolean; 1193 | declare function SaveMultiboardHandleBJ(whichMultiboard: multiboard, key: number, missionKey: number, table: hashtable): boolean; 1194 | declare function SaveMultiboardItemHandleBJ(whichMultiboarditem: multiboarditem, key: number, missionKey: number, table: hashtable): boolean; 1195 | declare function SaveTrackableHandleBJ(whichTrackable: trackable, key: number, missionKey: number, table: hashtable): boolean; 1196 | declare function SaveDialogHandleBJ(whichDialog: dialog, key: number, missionKey: number, table: hashtable): boolean; 1197 | declare function SaveButtonHandleBJ(whichButton: button, key: number, missionKey: number, table: hashtable): boolean; 1198 | declare function SaveTextTagHandleBJ(whichTexttag: texttag, key: number, missionKey: number, table: hashtable): boolean; 1199 | declare function SaveLightningHandleBJ(whichLightning: lightning, key: number, missionKey: number, table: hashtable): boolean; 1200 | declare function SaveImageHandleBJ(whichImage: image, key: number, missionKey: number, table: hashtable): boolean; 1201 | declare function SaveUbersplatHandleBJ(whichUbersplat: ubersplat, key: number, missionKey: number, table: hashtable): boolean; 1202 | declare function SaveRegionHandleBJ(whichRegion: region, key: number, missionKey: number, table: hashtable): boolean; 1203 | declare function SaveFogStateHandleBJ(whichFogState: fogstate, key: number, missionKey: number, table: hashtable): boolean; 1204 | declare function SaveFogModifierHandleBJ(whichFogModifier: fogmodifier, key: number, missionKey: number, table: hashtable): boolean; 1205 | declare function SaveAgentHandleBJ(whichAgent: agent, key: number, missionKey: number, table: hashtable): boolean; 1206 | declare function SaveHashtableHandleBJ(whichHashtable: hashtable, key: number, missionKey: number, table: hashtable): boolean; 1207 | declare function GetStoredRealBJ(key: string, missionKey: string, cache: gamecache): number; 1208 | declare function GetStoredIntegerBJ(key: string, missionKey: string, cache: gamecache): number; 1209 | declare function GetStoredBooleanBJ(key: string, missionKey: string, cache: gamecache): boolean; 1210 | declare function GetStoredStringBJ(key: string, missionKey: string, cache: gamecache): string; 1211 | declare function LoadRealBJ(key: number, missionKey: number, table: hashtable): number; 1212 | declare function LoadIntegerBJ(key: number, missionKey: number, table: hashtable): number; 1213 | declare function LoadBooleanBJ(key: number, missionKey: number, table: hashtable): boolean; 1214 | declare function LoadStringBJ(key: number, missionKey: number, table: hashtable): string; 1215 | declare function LoadPlayerHandleBJ(key: number, missionKey: number, table: hashtable): player; 1216 | declare function LoadWidgetHandleBJ(key: number, missionKey: number, table: hashtable): widget; 1217 | declare function LoadDestructableHandleBJ(key: number, missionKey: number, table: hashtable): destructable; 1218 | declare function LoadItemHandleBJ(key: number, missionKey: number, table: hashtable): item; 1219 | declare function LoadUnitHandleBJ(key: number, missionKey: number, table: hashtable): unit; 1220 | declare function LoadAbilityHandleBJ(key: number, missionKey: number, table: hashtable): ability; 1221 | declare function LoadTimerHandleBJ(key: number, missionKey: number, table: hashtable): timer; 1222 | declare function LoadTriggerHandleBJ(key: number, missionKey: number, table: hashtable): trigger; 1223 | declare function LoadTriggerConditionHandleBJ(key: number, missionKey: number, table: hashtable): triggercondition; 1224 | declare function LoadTriggerActionHandleBJ(key: number, missionKey: number, table: hashtable): triggeraction; 1225 | declare function LoadTriggerEventHandleBJ(key: number, missionKey: number, table: hashtable): event; 1226 | declare function LoadForceHandleBJ(key: number, missionKey: number, table: hashtable): force; 1227 | declare function LoadGroupHandleBJ(key: number, missionKey: number, table: hashtable): group; 1228 | declare function LoadLocationHandleBJ(key: number, missionKey: number, table: hashtable): location; 1229 | declare function LoadRectHandleBJ(key: number, missionKey: number, table: hashtable): rect; 1230 | declare function LoadBooleanExprHandleBJ(key: number, missionKey: number, table: hashtable): boolexpr; 1231 | declare function LoadSoundHandleBJ(key: number, missionKey: number, table: hashtable): sound; 1232 | declare function LoadEffectHandleBJ(key: number, missionKey: number, table: hashtable): effect; 1233 | declare function LoadUnitPoolHandleBJ(key: number, missionKey: number, table: hashtable): unitpool; 1234 | declare function LoadItemPoolHandleBJ(key: number, missionKey: number, table: hashtable): itempool; 1235 | declare function LoadQuestHandleBJ(key: number, missionKey: number, table: hashtable): quest; 1236 | declare function LoadQuestItemHandleBJ(key: number, missionKey: number, table: hashtable): questitem; 1237 | declare function LoadDefeatConditionHandleBJ(key: number, missionKey: number, table: hashtable): defeatcondition; 1238 | declare function LoadTimerDialogHandleBJ(key: number, missionKey: number, table: hashtable): timerdialog; 1239 | declare function LoadLeaderboardHandleBJ(key: number, missionKey: number, table: hashtable): leaderboard; 1240 | declare function LoadMultiboardHandleBJ(key: number, missionKey: number, table: hashtable): multiboard; 1241 | declare function LoadMultiboardItemHandleBJ(key: number, missionKey: number, table: hashtable): multiboarditem; 1242 | declare function LoadTrackableHandleBJ(key: number, missionKey: number, table: hashtable): trackable; 1243 | declare function LoadDialogHandleBJ(key: number, missionKey: number, table: hashtable): dialog; 1244 | declare function LoadButtonHandleBJ(key: number, missionKey: number, table: hashtable): button; 1245 | declare function LoadTextTagHandleBJ(key: number, missionKey: number, table: hashtable): texttag; 1246 | declare function LoadLightningHandleBJ(key: number, missionKey: number, table: hashtable): lightning; 1247 | declare function LoadImageHandleBJ(key: number, missionKey: number, table: hashtable): image; 1248 | declare function LoadUbersplatHandleBJ(key: number, missionKey: number, table: hashtable): ubersplat; 1249 | declare function LoadRegionHandleBJ(key: number, missionKey: number, table: hashtable): region; 1250 | declare function LoadFogStateHandleBJ(key: number, missionKey: number, table: hashtable): fogstate; 1251 | declare function LoadFogModifierHandleBJ(key: number, missionKey: number, table: hashtable): fogmodifier; 1252 | declare function LoadHashtableHandleBJ(key: number, missionKey: number, table: hashtable): hashtable; 1253 | declare function RestoreUnitLocFacingAngleBJ(key: string, missionKey: string, cache: gamecache, forWhichPlayer: player, loc: location, facing: number): unit; 1254 | declare function RestoreUnitLocFacingPointBJ(key: string, missionKey: string, cache: gamecache, forWhichPlayer: player, loc: location, lookAt: location): unit; 1255 | declare function GetLastRestoredUnitBJ(): unit; 1256 | declare function FlushGameCacheBJ(cache: gamecache): void; 1257 | declare function FlushStoredMissionBJ(missionKey: string, cache: gamecache): void; 1258 | declare function FlushParentHashtableBJ(table: hashtable): void; 1259 | declare function FlushChildHashtableBJ(missionKey: number, table: hashtable): void; 1260 | declare function HaveStoredValue(key: string, valueType: number, missionKey: string, cache: gamecache): boolean; 1261 | declare function HaveSavedValue(key: number, valueType: number, missionKey: number, table: hashtable): boolean; 1262 | declare function ShowCustomCampaignButton(show: boolean, whichButton: number): void; 1263 | declare function IsCustomCampaignButtonVisibile(whichButton: number): boolean; 1264 | declare function LoadGameBJ(loadFileName: string, doScoreScreen: boolean): void; 1265 | declare function SaveAndChangeLevelBJ(saveFileName: string, newLevel: string, doScoreScreen: boolean): void; 1266 | declare function SaveAndLoadGameBJ(saveFileName: string, loadFileName: string, doScoreScreen: boolean): void; 1267 | declare function RenameSaveDirectoryBJ(sourceDirName: string, destDirName: string): boolean; 1268 | declare function RemoveSaveDirectoryBJ(sourceDirName: string): boolean; 1269 | declare function CopySaveGameBJ(sourceSaveName: string, destSaveName: string): boolean; 1270 | declare function GetPlayerStartLocationX(whichPlayer: player): number; 1271 | declare function GetPlayerStartLocationY(whichPlayer: player): number; 1272 | declare function GetPlayerStartLocationLoc(whichPlayer: player): location; 1273 | declare function GetRectCenter(whichRect: rect): location; 1274 | declare function IsPlayerSlotState(whichPlayer: player, whichState: playerslotstate): boolean; 1275 | declare function GetFadeFromSeconds(seconds: number): number; 1276 | declare function GetFadeFromSecondsAsReal(seconds: number): number; 1277 | declare function AdjustPlayerStateSimpleBJ(whichPlayer: player, whichPlayerState: playerstate, delta: number): void; 1278 | declare function AdjustPlayerStateBJ(delta: number, whichPlayer: player, whichPlayerState: playerstate): void; 1279 | declare function SetPlayerStateBJ(whichPlayer: player, whichPlayerState: playerstate, value: number): void; 1280 | declare function SetPlayerFlagBJ(whichPlayerFlag: playerstate, flag: boolean, whichPlayer: player): void; 1281 | declare function SetPlayerTaxRateBJ(rate: number, whichResource: playerstate, sourcePlayer: player, otherPlayer: player): void; 1282 | declare function GetPlayerTaxRateBJ(whichResource: playerstate, sourcePlayer: player, otherPlayer: player): number; 1283 | declare function IsPlayerFlagSetBJ(whichPlayerFlag: playerstate, whichPlayer: player): boolean; 1284 | declare function AddResourceAmountBJ(delta: number, whichUnit: unit): void; 1285 | declare function GetConvertedPlayerId(whichPlayer: player): number; 1286 | declare function ConvertedPlayer(convertedPlayerId: number): player; 1287 | declare function GetRectWidthBJ(r: rect): number; 1288 | declare function GetRectHeightBJ(r: rect): number; 1289 | declare function BlightGoldMineForPlayerBJ(goldMine: unit, whichPlayer: player): unit; 1290 | declare function BlightGoldMineForPlayer(goldMine: unit, whichPlayer: player): unit; 1291 | declare function GetLastHauntedGoldMine(): unit; 1292 | declare function IsPointBlightedBJ(where: location): boolean; 1293 | declare function SetPlayerColorBJEnum(): void; 1294 | declare function SetPlayerColorBJ(whichPlayer: player, color: playercolor, changeExisting: boolean): void; 1295 | declare function SetPlayerUnitAvailableBJ(unitId: number, allowed: boolean, whichPlayer: player): void; 1296 | declare function LockGameSpeedBJ(): void; 1297 | declare function UnlockGameSpeedBJ(): void; 1298 | declare function IssueTargetOrderBJ(whichUnit: unit, order: string, targetWidget: widget): boolean; 1299 | declare function IssuePointOrderLocBJ(whichUnit: unit, order: string, whichLocation: location): boolean; 1300 | declare function IssueTargetDestructableOrder(whichUnit: unit, order: string, targetWidget: widget): boolean; 1301 | declare function IssueTargetItemOrder(whichUnit: unit, order: string, targetWidget: widget): boolean; 1302 | declare function IssueImmediateOrderBJ(whichUnit: unit, order: string): boolean; 1303 | declare function GroupTargetOrderBJ(whichGroup: group, order: string, targetWidget: widget): boolean; 1304 | declare function GroupPointOrderLocBJ(whichGroup: group, order: string, whichLocation: location): boolean; 1305 | declare function GroupImmediateOrderBJ(whichGroup: group, order: string): boolean; 1306 | declare function GroupTargetDestructableOrder(whichGroup: group, order: string, targetWidget: widget): boolean; 1307 | declare function GroupTargetItemOrder(whichGroup: group, order: string, targetWidget: widget): boolean; 1308 | declare function GetDyingDestructable(): destructable; 1309 | declare function SetUnitRallyPoint(whichUnit: unit, targPos: location): void; 1310 | declare function SetUnitRallyUnit(whichUnit: unit, targUnit: unit): void; 1311 | declare function SetUnitRallyDestructable(whichUnit: unit, targDest: destructable): void; 1312 | declare function SaveDyingWidget(): void; 1313 | declare function SetBlightRectBJ(addBlight: boolean, whichPlayer: player, r: rect): void; 1314 | declare function SetBlightRadiusLocBJ(addBlight: boolean, whichPlayer: player, loc: location, radius: number): void; 1315 | declare function GetAbilityName(abilcode: number): string; 1316 | declare function MeleeStartingVisibility(): void; 1317 | declare function MeleeStartingResources(): void; 1318 | declare function ReducePlayerTechMaxAllowed(whichPlayer: player, techId: number, limit: number): void; 1319 | declare function MeleeStartingHeroLimit(): void; 1320 | declare function MeleeTrainedUnitIsHeroBJFilter(): boolean; 1321 | declare function MeleeGrantItemsToHero(whichUnit: unit): void; 1322 | declare function MeleeGrantItemsToTrainedHero(): void; 1323 | declare function MeleeGrantItemsToHiredHero(): void; 1324 | declare function MeleeGrantHeroItems(): void; 1325 | declare function MeleeClearExcessUnit(): void; 1326 | declare function MeleeClearNearbyUnits(x: number, y: number, range: number): void; 1327 | declare function MeleeClearExcessUnits(): void; 1328 | declare function MeleeEnumFindNearestMine(): void; 1329 | declare function MeleeFindNearestMine(src: location, range: number): unit; 1330 | declare function MeleeRandomHeroLoc(p: player, id1: number, id2: number, id3: number, id4: number, loc: location): unit; 1331 | declare function MeleeGetProjectedLoc(src: location, targ: location, distance: number, deltaAngle: number): location; 1332 | declare function MeleeGetNearestValueWithin(val: number, minVal: number, maxVal: number): number; 1333 | declare function MeleeGetLocWithinRect(src: location, r: rect): location; 1334 | declare function MeleeStartingUnitsHuman(whichPlayer: player, startLoc: location, doHeroes: boolean, doCamera: boolean, doPreload: boolean): void; 1335 | declare function MeleeStartingUnitsOrc(whichPlayer: player, startLoc: location, doHeroes: boolean, doCamera: boolean, doPreload: boolean): void; 1336 | declare function MeleeStartingUnitsUndead(whichPlayer: player, startLoc: location, doHeroes: boolean, doCamera: boolean, doPreload: boolean): void; 1337 | declare function MeleeStartingUnitsNightElf(whichPlayer: player, startLoc: location, doHeroes: boolean, doCamera: boolean, doPreload: boolean): void; 1338 | declare function MeleeStartingUnitsUnknownRace(whichPlayer: player, startLoc: location, doHeroes: boolean, doCamera: boolean, doPreload: boolean): void; 1339 | declare function MeleeStartingUnits(): void; 1340 | declare function MeleeStartingUnitsForPlayer(whichRace: race, whichPlayer: player, loc: location, doHeroes: boolean): void; 1341 | declare function PickMeleeAI(num: player, s1: string, s2: string, s3: string): void; 1342 | declare function MeleeStartingAI(): void; 1343 | declare function LockGuardPosition(targ: unit): void; 1344 | declare function MeleePlayerIsOpponent(playerIndex: number, opponentIndex: number): boolean; 1345 | declare function MeleeGetAllyStructureCount(whichPlayer: player): number; 1346 | declare function MeleeGetAllyCount(whichPlayer: player): number; 1347 | declare function MeleeGetAllyKeyStructureCount(whichPlayer: player): number; 1348 | declare function MeleeDoDrawEnum(): void; 1349 | declare function MeleeDoVictoryEnum(): void; 1350 | declare function MeleeDoDefeat(whichPlayer: player): void; 1351 | declare function MeleeDoDefeatEnum(): void; 1352 | declare function MeleeDoLeave(whichPlayer: player): void; 1353 | declare function MeleeRemoveObservers(): void; 1354 | declare function MeleeCheckForVictors(): force; 1355 | declare function MeleeCheckForLosersAndVictors(): void; 1356 | declare function MeleeGetCrippledWarningMessage(whichPlayer: player): string; 1357 | declare function MeleeGetCrippledTimerMessage(whichPlayer: player): string; 1358 | declare function MeleeGetCrippledRevealedMessage(whichPlayer: player): string; 1359 | declare function MeleeExposePlayer(whichPlayer: player, expose: boolean): void; 1360 | declare function MeleeExposeAllPlayers(): void; 1361 | declare function MeleeCrippledPlayerTimeout(): void; 1362 | declare function MeleePlayerIsCrippled(whichPlayer: player): boolean; 1363 | declare function MeleeCheckForCrippledPlayers(): void; 1364 | declare function MeleeCheckLostUnit(lostUnit: unit): void; 1365 | declare function MeleeCheckAddedUnit(addedUnit: unit): void; 1366 | declare function MeleeTriggerActionConstructCancel(): void; 1367 | declare function MeleeTriggerActionUnitDeath(): void; 1368 | declare function MeleeTriggerActionUnitConstructionStart(): void; 1369 | declare function MeleeTriggerActionPlayerDefeated(): void; 1370 | declare function MeleeTriggerActionPlayerLeft(): void; 1371 | declare function MeleeTriggerActionAllianceChange(): void; 1372 | declare function MeleeTriggerTournamentFinishSoon(): void; 1373 | declare function MeleeWasUserPlayer(whichPlayer: player): boolean; 1374 | declare function MeleeTournamentFinishNowRuleA(multiplier: number): void; 1375 | declare function MeleeTriggerTournamentFinishNow(): void; 1376 | declare function MeleeInitVictoryDefeat(): void; 1377 | declare function CheckInitPlayerSlotAvailability(): void; 1378 | declare function SetPlayerSlotAvailable(whichPlayer: player, control: mapcontrol): void; 1379 | declare function TeamInitPlayerSlots(teamCount: number): void; 1380 | declare function MeleeInitPlayerSlots(): void; 1381 | declare function FFAInitPlayerSlots(): void; 1382 | declare function OneOnOneInitPlayerSlots(): void; 1383 | declare function InitGenericPlayerSlots(): void; 1384 | declare function SetDNCSoundsDawn(): void; 1385 | declare function SetDNCSoundsDusk(): void; 1386 | declare function SetDNCSoundsDay(): void; 1387 | declare function SetDNCSoundsNight(): void; 1388 | declare function InitDNCSounds(): void; 1389 | declare function InitBlizzardGlobals(): void; 1390 | declare function InitQueuedTriggers(): void; 1391 | declare function InitMapRects(): void; 1392 | declare function InitSummonableCaps(): void; 1393 | declare function UpdateStockAvailability(whichItem: item): void; 1394 | declare function UpdateEachStockBuildingEnum(): void; 1395 | declare function UpdateEachStockBuilding(iType: itemtype, iLevel: number): void; 1396 | declare function PerformStockUpdates(): void; 1397 | declare function StartStockUpdates(): void; 1398 | declare function RemovePurchasedItem(): void; 1399 | declare function InitNeutralBuildings(): void; 1400 | declare function MarkGameStarted(): void; 1401 | declare function DetectGameStarted(): void; 1402 | declare function InitBlizzard(): void; 1403 | declare function RandomDistReset(): void; 1404 | declare function RandomDistAddItem(inID: number, inChance: number): void; 1405 | declare function RandomDistChoose(): number; 1406 | declare function UnitDropItem(inUnit: unit, inItemID: number): item; 1407 | declare function WidgetDropItem(inWidget: widget, inItemID: number): item; 1408 | declare function BlzIsLastInstanceObjectFunctionSuccessful(): boolean; 1409 | declare function BlzSetAbilityBooleanFieldBJ(whichAbility: ability, whichField: abilitybooleanfield, value: boolean): void; 1410 | declare function BlzSetAbilityIntegerFieldBJ(whichAbility: ability, whichField: abilityintegerfield, value: number): void; 1411 | declare function BlzSetAbilityRealFieldBJ(whichAbility: ability, whichField: abilityrealfield, value: number): void; 1412 | declare function BlzSetAbilityStringFieldBJ(whichAbility: ability, whichField: abilitystringfield, value: string): void; 1413 | declare function BlzSetAbilityBooleanLevelFieldBJ(whichAbility: ability, whichField: abilitybooleanlevelfield, level: number, value: boolean): void; 1414 | declare function BlzSetAbilityIntegerLevelFieldBJ(whichAbility: ability, whichField: abilityintegerlevelfield, level: number, value: number): void; 1415 | declare function BlzSetAbilityRealLevelFieldBJ(whichAbility: ability, whichField: abilityreallevelfield, level: number, value: number): void; 1416 | declare function BlzSetAbilityStringLevelFieldBJ(whichAbility: ability, whichField: abilitystringlevelfield, level: number, value: string): void; 1417 | declare function BlzSetAbilityBooleanLevelArrayFieldBJ(whichAbility: ability, whichField: abilitybooleanlevelarrayfield, level: number, index: number, value: boolean): void; 1418 | declare function BlzSetAbilityIntegerLevelArrayFieldBJ(whichAbility: ability, whichField: abilityintegerlevelarrayfield, level: number, index: number, value: number): void; 1419 | declare function BlzSetAbilityRealLevelArrayFieldBJ(whichAbility: ability, whichField: abilityreallevelarrayfield, level: number, index: number, value: number): void; 1420 | declare function BlzSetAbilityStringLevelArrayFieldBJ(whichAbility: ability, whichField: abilitystringlevelarrayfield, level: number, index: number, value: string): void; 1421 | declare function BlzAddAbilityBooleanLevelArrayFieldBJ(whichAbility: ability, whichField: abilitybooleanlevelarrayfield, level: number, value: boolean): void; 1422 | declare function BlzAddAbilityIntegerLevelArrayFieldBJ(whichAbility: ability, whichField: abilityintegerlevelarrayfield, level: number, value: number): void; 1423 | declare function BlzAddAbilityRealLevelArrayFieldBJ(whichAbility: ability, whichField: abilityreallevelarrayfield, level: number, value: number): void; 1424 | declare function BlzAddAbilityStringLevelArrayFieldBJ(whichAbility: ability, whichField: abilitystringlevelarrayfield, level: number, value: string): void; 1425 | declare function BlzRemoveAbilityBooleanLevelArrayFieldBJ(whichAbility: ability, whichField: abilitybooleanlevelarrayfield, level: number, value: boolean): void; 1426 | declare function BlzRemoveAbilityIntegerLevelArrayFieldBJ(whichAbility: ability, whichField: abilityintegerlevelarrayfield, level: number, value: number): void; 1427 | declare function BlzRemoveAbilityRealLevelArrayFieldBJ(whichAbility: ability, whichField: abilityreallevelarrayfield, level: number, value: number): void; 1428 | declare function BlzRemoveAbilityStringLevelArrayFieldBJ(whichAbility: ability, whichField: abilitystringlevelarrayfield, level: number, value: string): void; 1429 | declare function BlzItemAddAbilityBJ(whichItem: item, abilCode: number): void; 1430 | declare function BlzItemRemoveAbilityBJ(whichItem: item, abilCode: number): void; 1431 | declare function BlzSetItemBooleanFieldBJ(whichItem: item, whichField: itembooleanfield, value: boolean): void; 1432 | declare function BlzSetItemIntegerFieldBJ(whichItem: item, whichField: itemintegerfield, value: number): void; 1433 | declare function BlzSetItemRealFieldBJ(whichItem: item, whichField: itemrealfield, value: number): void; 1434 | declare function BlzSetItemStringFieldBJ(whichItem: item, whichField: itemstringfield, value: string): void; 1435 | declare function BlzSetUnitBooleanFieldBJ(whichUnit: unit, whichField: unitbooleanfield, value: boolean): void; 1436 | declare function BlzSetUnitIntegerFieldBJ(whichUnit: unit, whichField: unitintegerfield, value: number): void; 1437 | declare function BlzSetUnitRealFieldBJ(whichUnit: unit, whichField: unitrealfield, value: number): void; 1438 | declare function BlzSetUnitStringFieldBJ(whichUnit: unit, whichField: unitstringfield, value: string): void; 1439 | declare function BlzSetUnitWeaponBooleanFieldBJ(whichUnit: unit, whichField: unitweaponbooleanfield, index: number, value: boolean): void; 1440 | declare function BlzSetUnitWeaponIntegerFieldBJ(whichUnit: unit, whichField: unitweaponintegerfield, index: number, value: number): void; 1441 | declare function BlzSetUnitWeaponRealFieldBJ(whichUnit: unit, whichField: unitweaponrealfield, index: number, value: number): void; 1442 | declare function BlzSetUnitWeaponStringFieldBJ(whichUnit: unit, whichField: unitweaponstringfield, index: number, value: string): void; -------------------------------------------------------------------------------- /app/src/lib/core/ceres.d.ts: -------------------------------------------------------------------------------- 1 | /** @noSelfInFile **/ 2 | 3 | /** 4 | * https://github.com/ElusiveMori/ceres-wc3#ceres-built-ins 5 | */ 6 | declare namespace ceres { 7 | function addHook(hookName: string, callback: () => void): void; 8 | function setMain(callback: () => void): void; 9 | function setConfig(callback: () => void): void; 10 | function wrapCatch(callback: () => void): (...any: any) => void 11 | //function catch(callback: () => void, ...any: any): void; //TS wont let me define a function called catch. 12 | } 13 | 14 | /** 15 | * Will load the module from either /lib/ or /src/ 16 | * @example 17 | * let mymodule = require("mymodule"); 18 | * mymodule.DoSomething(); 19 | */ 20 | declare function require(name: string): any; 21 | 22 | /** 23 | * This macro will inject the contents of the specified file into the source 24 | * where it is called. Paths are relative to the project's root. 25 | * @example 26 | * include("src/resource/somestuff") 27 | */ 28 | declare function include(path: string): void; 29 | 30 | /** 31 | * @param any Expression to be evaluated by Ceres. 32 | * @example 33 | * print(compiletime(2 + 2)) //print(4) 34 | * print(compiletime("my string is" + " really epic")) //print("my string is really epic") 35 | * print(compiletime(() => { 36 | * const a = 1; 37 | * const b = 2; 38 | * return a + b; 39 | * })) //Compiles to print(3) 40 | */ 41 | declare function compiletime(any: any): any; -------------------------------------------------------------------------------- /app/src/lib/core/compat.d.ts: -------------------------------------------------------------------------------- 1 | /** @noSelfInFile **/ 2 | 3 | declare abstract class handle { __handle: never; } 4 | 5 | -------------------------------------------------------------------------------- /app/src/lib/core/polyfill.ts: -------------------------------------------------------------------------------- 1 | /** @noSelfInFile **/ 2 | declare function FourCC(str: string): number; 3 | 4 | // declare function print(message: string): void; 5 | -------------------------------------------------------------------------------- /app/src/main.ts: -------------------------------------------------------------------------------- 1 | import { Log, LogLevel } from './lib/Serilog/Serilog'; 2 | import { StringSink } from './lib/Serilog/Sinks/StringSink'; 3 | 4 | ceres.addHook('main::after', () => { 5 | 6 | 7 | Log.Init([ 8 | new StringSink(LogLevel.Debug, BJDebugMsg), 9 | ]); 10 | 11 | function Main(this: void): void { 12 | Log.Information('Hello World'); 13 | Log.Information(`${FourCC('I01T')}`); 14 | Log.Information(`${DecodeFourCC(FourCC('I01T'))}`); 15 | 16 | 17 | } 18 | function PrintError(err: any) { 19 | Log.Fatal(err); 20 | } 21 | function DecodeFourCC(fourcc: number): string { 22 | // tslint:disable-next-line:no-bitwise 23 | return string.char((fourcc >>> 24) & 255, (fourcc >>> 16) & 255, (fourcc >>> 8) & 255, (fourcc) & 255); 24 | } 25 | xpcall(() => { 26 | const init: trigger = CreateTrigger(); 27 | TriggerRegisterTimerEvent(init, 0, false); 28 | TriggerAddAction(init, () => xpcall(() => Main(), err => PrintError(err))); 29 | }, (err) => { 30 | PrintError(err); 31 | }); 32 | 33 | }); 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /build.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra'); 2 | const jassToTs = require('./node_modules/convertjasstots/dist/jassParser'); 3 | const typescriptToLua = require('typescript-to-lua'); 4 | const ts = require("typescript"); 5 | const {execSync} = require('child_process'); 6 | const minimist = require('minimist'); 7 | let reportDiagnostic = typescriptToLua.createDiagnosticReporter(true); 8 | 9 | 10 | const helptext = ` 11 | Usage: build.js [options] 12 | options: 13 | -b, --build Build the project 14 | -j, --jass Generate typescript declarations 15 | -r, --run Run the map in Warcraft 3 16 | -h, --help Shows this help menu 17 | `; 18 | class Build { 19 | 20 | constructor(args) { 21 | this.os = process.platform; 22 | if (args['help'] || args['h']) { 23 | console.log(helptext); 24 | process.exit(1) 25 | } 26 | this.doTasks(args) 27 | 28 | } 29 | 30 | async doTasks(args) { 31 | if (args['jass'] || args['j']) { 32 | await this.generateTs() 33 | } 34 | 35 | if (args['build'] || args['b']) { 36 | await this.build() 37 | } 38 | 39 | if (args['run'] || args['r']) { 40 | this.run() 41 | } 42 | } 43 | 44 | env() { 45 | const dir = './config'; 46 | 47 | if (!fs.existsSync(dir)) { 48 | fs.mkdirSync(dir); 49 | } 50 | if (!fs.existsSync(`${dir}/warcraft.json`)) { 51 | console.log('missing file'); 52 | fs.writeFileSync(`${dir}/warcraft.json`, JSON.stringify({ 53 | path: '', 54 | })) 55 | } 56 | this.settings = JSON.parse(fs.readFileSync(`${dir}/warcraft.json`)); 57 | if (!this.settings.path.length > 0) { 58 | console.error('Path to wc3 is not setup, please set it in ./config/warcraft.json'); 59 | process.exit(1) 60 | } 61 | 62 | } 63 | 64 | nativeExecute(cmdline) { 65 | execSync(cmdline, (err, stdout, stderr) => { 66 | if (err) { 67 | throw err; 68 | } 69 | return false; 70 | 71 | }); 72 | return true; 73 | } 74 | 75 | async build() { 76 | this.cleanup(); 77 | 78 | var map = 'map.w3x'; 79 | fs.mkdirSync('target'); 80 | 81 | fs.copySync(`maps/${map}`, `target/${map}`); 82 | 83 | let sharedArgs = `extract "target/${map}" "war3map.lua" "maps/map"`; 84 | let mpqEditor = ''; 85 | if (this.os === "win32") { 86 | mpqEditor = 'tools/MPQEditor/x64/MPQEditor.exe'; 87 | } else { 88 | mpqEditor = "WINEDEBUG=-all wine64 tools/MPQEditor/x64/MPQEditor.exe"; 89 | } 90 | 91 | this.nativeExecute(`${mpqEditor} ${sharedArgs}`); 92 | 93 | const {emitResult, diagnostics} = typescriptToLua.transpileProject('tsconfig.json'); 94 | for (let diag of diagnostics) { 95 | console.log(diag.messageText); 96 | if (diag.code != 2306) { 97 | console.error('FATAL ERROR IN TYPESCRIPT'); 98 | console.error(diag); 99 | throw diag; 100 | 101 | } 102 | 103 | } 104 | 105 | emitResult.forEach(({name, text}) => ts.sys.writeFile(name, text)); 106 | fs.copySync(`src/app/src/main.lua`, `src/main.lua`); 107 | 108 | sharedArgs = `build "map"`; 109 | let ceres = ''; 110 | switch (this.os) { 111 | case "win32": 112 | ceres = 'tools/ceres/ceres.exe'; 113 | break; 114 | case "darwin": 115 | ceres = "tools/ceres/ceres"; 116 | break; 117 | default: 118 | ceres = "tools/ceres/ceres-linux"; 119 | break; 120 | } 121 | // 122 | this.nativeExecute(`${ceres} ${sharedArgs}`); 123 | let sed = ''; 124 | 125 | switch (this.os) { 126 | case "win32": 127 | sed = 'tools/sed.exe'; 128 | break; 129 | default: 130 | sed = "LC_ALL=C sed"; 131 | break; 132 | } 133 | this.nativeExecute(`${sed} -i "s/local function __module_/function __module_/g" "target/map/war3map.lua"`); 134 | 135 | 136 | sharedArgs = `add "target/map.w3x" "target/map/*" "/c" "/auto" "/r"`; 137 | // 138 | this.nativeExecute(`${mpqEditor} ${sharedArgs}`); 139 | } 140 | 141 | 142 | run() { 143 | this.env(); 144 | let suffix = ''; 145 | let sharedArgs = `-windowmode windowed -nowfpause -loadfile `; 146 | let currentDir = String(__dirname); 147 | switch (this.os) { 148 | case "linux": 149 | suffix = "WINEDEBUG=-all wine64 "; 150 | currentDir = String(currentDir).replace('/', '\\'); 151 | sharedArgs += '"Z:' + currentDir + '\\target\\map.w3x"'; 152 | break; 153 | case "win32": 154 | sharedArgs += currentDir + '\\target\\map.w3x"'; 155 | break; 156 | default: 157 | suffix = ""; 158 | break; 159 | } 160 | 161 | 162 | console.log(`${suffix}"${this.settings.path}" ${sharedArgs}`); 163 | this.nativeExecute(`${suffix}"${this.settings.path}" ${sharedArgs}`); 164 | } 165 | 166 | cleanup() { 167 | if (fs.existsSync(`./src`)) { 168 | fs.removeSync('./src'); 169 | } 170 | if (fs.existsSync(`./target`)) { 171 | fs.removeSync('./target'); 172 | } 173 | } 174 | 175 | async generateTs() { 176 | const parser = new jassToTs.JassParser(); 177 | await parser.main(['', '', "app/src/lib/core/blizzard.j", "app/src/lib/core/blizzard.d.ts"]); 178 | await parser.main(['', '', "app/src/lib/core/common.j", "app/src/lib/core/common.d.ts"]); 179 | await parser.main(['', '', "app/src/lib/core/common.ai", "app/src/lib/core/commonai.d.ts"]); 180 | 181 | } 182 | 183 | 184 | } 185 | 186 | new Build(minimist(process.argv)); 187 | -------------------------------------------------------------------------------- /ceres.toml: -------------------------------------------------------------------------------- 1 | [run] 2 | wc3_start_command = "" -------------------------------------------------------------------------------- /maps/map.w3x: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promises/Warcraft3-Typescript-Base/4da7634a773220176e1859db8b7667d4776a3749/maps/map.w3x -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wc3-app", 3 | "version": "1.0.0", 4 | "description": "A demo for TypeScript in WC3", 5 | "directories": { 6 | "lib": "app/src/lib" 7 | }, 8 | "main": "app/src/main.ts", 9 | "scripts": { 10 | "test": "echo \"Error: no test specified\" && exit 1", 11 | "build": "node build.js --build", 12 | "run": "node build.js --run", 13 | "start": "node build.js --build --run" 14 | }, 15 | "author": "Nikolaj \"William\" Mariager", 16 | "license": "MIT", 17 | "dependencies": { 18 | "convertjasstots": "latest", 19 | "fs-extra": "latest", 20 | "lua-types": "latest", 21 | "typescript": "3.5.3", 22 | "typescript-to-lua": "0.27.0" 23 | }, 24 | "devDependencies": { 25 | "tslint": "^5.18.0", 26 | "tslint-config-airbnb": "^5.11.1" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tools/MPQEditor/History.txt: -------------------------------------------------------------------------------- 1 | * Version 3.6.0.835 2 | 3 | - Fixed live scanner to work with Warcraft III v 1.28.5 4 | 5 | * Version 3.6.0.834 6 | 7 | - Rebuilt with StormLib v 9.22 8 | 9 | * Version 3.6.0.833 10 | 11 | - Support for external listfiles in the UNICODE paths 12 | - Fixed bug with tilde (~) in the MPQ file name 13 | 14 | * Version 3.6.0.830 15 | 16 | - Improved Deep file verification 17 | 18 | * Version 3.6.0.828 19 | 20 | - Korean build 21 | 22 | * Version 3.6.0.826 23 | 24 | - Recompiled - fixed patching bug in StormLib 25 | 26 | * Version 3.6.0.825 27 | 28 | - Fixed crash in "Use Additional Listfile ..." 29 | 30 | * Version 3.6.0.824 31 | 32 | - Support for any weird non-ASCII file names 33 | - Support for new Korean map protector 34 | - Removed NameBreaker 35 | 36 | * Version 3.5.1.821 37 | 38 | - MPQ order is correct when "patch.MPQ", "patch-1.MPQ" and "patch-2.MPQ" are open 39 | 40 | * Version 3.5.1.820 41 | 42 | - When extracting file from MPQ, all special characters are now handled properly 43 | according to https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx 44 | 45 | * Version 3.5.1.819 46 | 47 | - Ruleset editor now works as expected when MPQEditor_Ruleset.ini doesn't exist 48 | 49 | * Version 3.5.1.816 50 | 51 | - DPI Awareness 52 | 53 | * Version 3.5.1.812 54 | 55 | - Added manual live scan for multiplayer maps only 56 | 57 | * Version 3.5.1.810 58 | 59 | - Warcraft III can be launched in windowed mode if enabled in the configuration 60 | 61 | * Version 3.5.1.808 62 | 63 | - Overcoming protectors fiddling with block indexes like 0x40000000 or 0xF0000000 64 | 65 | * Version 3.5.1.807 66 | 67 | - Warcraft III Live Scanner now supports Warcraft III version 1.27a 68 | 69 | * Version 3.5.1.805 70 | 71 | - Support for an updated Somj2hM16 protection 72 | - Support for MPQs that have invalid (and ignored) flags in the block table 73 | - Support for MPQs that have malformed block indexes (0x8000xxxx or 0x4000xxxx) 74 | 75 | * Version 3.5.1.801 76 | 77 | - Help in MoPaQ 2000 interpreter now works properly 78 | - Fixed heap corruption (crash) in New MPQ Wizard 79 | 80 | * Version 3.5.1.796 81 | 82 | - Support for MPQs with table sizes line 0x80000### 83 | 84 | * Version 3.5.1.793 85 | 86 | - Fixed work with names beginning with special characters 87 | 88 | * Version 3.5.1.792 89 | 90 | - Fix for some Starcraft II patches being unable to be applied 91 | - Beta version of Live Scanner Warcraft III maps 92 | - Accepted issues from the W3xNameScanner contributors 93 | - Added button for merging the results with an existing listfile 94 | 95 | * Version 3.5.1.773 96 | 97 | - Beta version of Name Scanner for Warcraft III maps 98 | 99 | * Version 3.5.1.771 100 | 101 | - Support for MPQ.KangTooJee map protector 102 | 103 | * Version 3.5.1.769 104 | 105 | - Adding files into MPQs that have BlockTableSize > HashTableSize is not allowed 106 | - Compacting MPQs that have BlockTableSize > HashTableSize is allowed and works 107 | - Comsole now shows MPQ Editor version 108 | 109 | * Version 3.5.1.767 110 | 111 | - Optimized patching process 112 | - Fixed bug in opening Hearthstone MPQs in patched mode 113 | 114 | * Version 3.5.1.766 115 | 116 | - Zero size files are now processed properly 117 | - Fixed bug in processing HET table 118 | 119 | * Version 3.5.1.764 120 | - The MoPaQ 2000 command "open" now accepts listfile as an argument. 121 | - The MoPaQ 2000 command "open" no longer accepts useless "FileLimit" argument. 122 | - Starcraft II patching now works properly 123 | 124 | * Version 3.5.1.763 125 | - Support for signing archives with weak signature 126 | 127 | * Version 3.5.0.753 128 | - Recompiled with StormLib v 9.00 129 | - Support for Warcraft III maps protected by Spazzler protector 130 | - Support for Warcraft III maps protected by BOBA protector 131 | 132 | * Version 3.5.0.751 133 | - Support for data files from War of the Immortals (*.scp) 134 | - Support for data files from Longwu online (*.mpk) 135 | 136 | * Version 3.5.0.750 137 | - Opening read-only files now only requires FILE_READ_DATA + FILE_READ_ATTRIBUTES, 138 | which is the minimum in Windows 139 | 140 | * Version 3.5.0.741 141 | - Added Polish localization 142 | 143 | * Version 3.5.0.741 144 | - Recompiled with latest StormLib so it now comtains Heart of the Swarm decryption key 145 | 146 | * Version 3.5.0.740 147 | - Fixed bug in merged mode 148 | 149 | * Version 3.5.0.730 150 | - Fixed behavior of menus 151 | - The "Behavior of Open and OpenWith" is now gone 152 | - New feature "Edit File" 153 | 154 | * Version 3.5.0.718 155 | 156 | - Added "Lock" and "Unlock MPQ" 157 | - Custom ruleset is back 158 | - Chinese version 159 | - Fixed bug in configuring (attributes) 160 | 161 | * Version 3.5.0.710 162 | 163 | - Ribbon UI (optional) 164 | - MPQ rulesets reworked, custom rules editor removed 165 | - Bug fixes 166 | 167 | * Version 3.2.2.xxx 168 | 169 | - MoPaq console can now open encrypted MPQs 170 | - Fixed bug that causes access to freed memory during opening MPQ 171 | 172 | * Version 3.2.1.660 173 | 174 | - Table viewer now shows HET and BET tables more comfortably 175 | - User-friendly file size 176 | - File Properties Dialog now shows patch list, if available 177 | - Support for UNICODE file names 178 | - New MoPaq2000 command: mksvf 179 | - Partialy fixed deleting in MPQ archives v 4.0 180 | - Table viewer now shows HET and BET table 181 | 182 | * Version 3.2.0.600 183 | 184 | - Fixed listing files when opened multiple MPQs in patch mode 185 | - Console window can now do "paste" using right mouse click 186 | - Write support for MPQs version 4 187 | - Newest patch files (wow-update-enUS-#####.MPQ) now work properly 188 | - Removed ability to convert listfile path and working directory to relative paths, 189 | as it's more annoying than anything else 190 | - Support for new map protectors 191 | - MPQ Editor now tries to suggest listfile automatically 192 | 193 | * Version 3.2.0.537 194 | 195 | - Added "Search Files" icon 196 | - File mask can now have more fiel extensions 197 | - Built with StormLib 8.0 RELEASE CANDIDATE 198 | - Better UI for opening MPQs in multi, merged and patched mode 199 | - Added "op" command for script interpreter for opening MPQs in patch mode 200 | - Support for patch mode - patched version of a file is extracted 201 | - Fixed extracting patch files from WOTLK patches 202 | - Command line changed: Now can open more MPQs from command line, 203 | and listfile name must follow after "/listfile" 204 | - Added preliminary support for MPQs version 3.0 (WOW-Cataclysm BETA) 205 | - Added support for encrypted MPQs coming with Starcraft II digital download. 206 | - When extracting file that already exists, the dialog now has "no All" option 207 | - All message boxes generated by worker threads are now displayed by the main UI thread (fixed for WINE) 208 | 209 | * Version 3.0.0.473 210 | 211 | - Added menu item "Tiles" for operating systems Windows XP or newer 212 | - It is now possible to have multiple MPQs open, while one is read-only and others are editable 213 | - Added configurable behavior of "Open" and "Open With" 214 | - Fixed bug in running scripts using /console command. Scripts 215 | with space in file name are now processed properly. 216 | - Added support for opening multiple MPQs, either in multi-document mode 217 | or in merged mode 218 | - Support for partial MPQs ("interface.MPQ.part") 219 | - Console command "extract": added flag "-lower" and "-lowercase" 220 | for extracting path as lowercase 221 | 222 | * Version 3.0.0.420 223 | 224 | - Fixed problem with adding files with pseudo-names ("File00000001.ext") 225 | - Support for MPQs that have both block table and hash table zero size 226 | - Better looking toolbar 227 | - Added *.SC2Map and *.SC2Mod extensions from Starcraft II 228 | - "Open file" and "Save file" dialogs now have "places" bar, but are no longer 229 | centered. 230 | - Both "ListFile path" and "work directory" now recognize paths relative to the EXE 231 | and will be updated appropriately when the EXE is moved to different location 232 | - Fixed bug in "Merge Listfiles" dialog regarding to multiple file additions 233 | - Added "Delete All" button to "Merge Listfiles" 234 | - Fixed few bugs in "Set File Associations" dialog 235 | - Buttons in "Set File Associations" dialog are now enabled or disabled based on items selected 236 | 237 | * Version 3.0.0.405 238 | 239 | - Added feature for configuring (attributes) in MPQ 240 | - Fixed bug when (attributes) was sometimes saved improperly 241 | - Fixed bug recent file list 242 | - "Create New MPQ" Wizard now has better-looking bitmap instead of the ugly text 243 | - "..." button in "Create New MPQ" wizard now adds an extension, 244 | if any is selected in the "Save file" dialog. 245 | 246 | * Version 3.0.0.404 247 | 248 | - Fixed repaint problem when resizing main window 249 | - When creating new MPQ, the "..." button now has "Save" title 250 | - MoPaQ script interpreter also supports Windows command line 251 | - The "File Associations" dialog was reworked. 252 | 253 | * Version 3.0.0.402 254 | 255 | - "Properties" on root dir item is now allowed and shows archive properties 256 | - Improved file mask in toolbar 257 | 258 | * Version 3.0.0.401 259 | 260 | - Improved MPQ Table Viewer 261 | - MPQ Editor no longer remover W3M protection from W3M Map Utilities 262 | - Set minimum tracking size for main window 263 | - Fixed minimum window size done by splitters -------------------------------------------------------------------------------- /tools/MPQEditor/Win32/MPQEditor.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promises/Warcraft3-Typescript-Base/4da7634a773220176e1859db8b7667d4776a3749/tools/MPQEditor/Win32/MPQEditor.exe -------------------------------------------------------------------------------- /tools/MPQEditor/x64/MPQEditor.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promises/Warcraft3-Typescript-Base/4da7634a773220176e1859db8b7667d4776a3749/tools/MPQEditor/x64/MPQEditor.exe -------------------------------------------------------------------------------- /tools/ceres/ceres: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promises/Warcraft3-Typescript-Base/4da7634a773220176e1859db8b7667d4776a3749/tools/ceres/ceres -------------------------------------------------------------------------------- /tools/ceres/ceres-linux: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promises/Warcraft3-Typescript-Base/4da7634a773220176e1859db8b7667d4776a3749/tools/ceres/ceres-linux -------------------------------------------------------------------------------- /tools/ceres/ceres.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promises/Warcraft3-Typescript-Base/4da7634a773220176e1859db8b7667d4776a3749/tools/ceres/ceres.exe -------------------------------------------------------------------------------- /tools/sed.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promises/Warcraft3-Typescript-Base/4da7634a773220176e1859db8b7667d4776a3749/tools/sed.exe -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "target": "esnext", 5 | "outDir": "src", 6 | "lib": ["esnext"], 7 | "types": [ 8 | "lua-types/core/coroutine", 9 | "lua-types/core/global", 10 | "lua-types/core/math", 11 | "lua-types/core/metatable", 12 | "lua-types/core/modules", 13 | "lua-types/core/string", 14 | "lua-types/core/table", 15 | "lua-types/core/debug", 16 | "lua-types/core/io", 17 | "lua-types/core/os", 18 | "lua-types/special/5.3" 19 | ] 20 | }, 21 | "tstl": { 22 | "luaTarget": "5.3", 23 | "luaLibImport": "require" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "tslint-config-airbnb" 4 | ], 5 | "rules": { 6 | "arrow-return-shorthand": true, 7 | "callable-types": true, 8 | "class-name": true, 9 | "comment-format": [ 10 | true, 11 | "check-space" 12 | ], 13 | "curly": true, 14 | "deprecation": { 15 | "severity": "warn" 16 | }, 17 | "eofline": true, 18 | "forin": true, 19 | "import-spacing": true, 20 | "indent": [ 21 | true, 22 | "spaces", 23 | 4 24 | ], 25 | "interface-over-type-literal": true, 26 | "label-position": true, 27 | "max-line-length": [ 28 | true, 29 | 140 30 | ], 31 | "member-access": true, 32 | "ter-indent": [ 33 | true, 34 | 4, 35 | { 36 | "SwitchCase": 1 37 | } 38 | ], 39 | "member-ordering": [ 40 | true, 41 | { 42 | "order": [ 43 | "static-field", 44 | "instance-field", 45 | "static-method", 46 | "instance-method" 47 | ] 48 | } 49 | ], 50 | "no-arg": true, 51 | "no-bitwise": true, 52 | "no-console": [ 53 | true, 54 | "debug", 55 | "info", 56 | "time", 57 | "timeEnd", 58 | "trace" 59 | ], 60 | "no-consecutive-blank-lines": false, 61 | // 19.19 62 | "no-construct": true, 63 | "no-debugger": true, 64 | "no-duplicate-super": true, 65 | "no-empty": false, 66 | "no-empty-interface": true, 67 | "no-eval": true, 68 | "no-increment-decrement": false, 69 | "no-inferrable-types": false, 70 | "no-misused-new": true, 71 | "no-non-null-assertion": true, 72 | "no-parameter-reassignment": false, 73 | "no-shadowed-variable": true, 74 | "no-string-literal": false, 75 | "no-string-throw": true, 76 | "no-switch-case-fall-through": true, 77 | "no-trailing-whitespace": true, 78 | "no-unnecessary-initializer": true, 79 | "no-unused-expression": true, 80 | "no-unused-variable": true, 81 | "no-unused-imports": true, 82 | "no-use-before-declare": true, 83 | "no-var-keyword": true, 84 | "object-literal-sort-keys": false, 85 | "one-line": [ 86 | true, 87 | "check-open-brace", 88 | "check-catch", 89 | "check-else", 90 | "check-whitespace" 91 | ], 92 | "prefer-const": true, 93 | "quotemark": [ 94 | true, 95 | "single" 96 | ], 97 | "radix": true, 98 | "semicolon": [ 99 | true, 100 | "always" 101 | ], 102 | "triple-equals": [ 103 | true, 104 | "allow-null-check" 105 | ], 106 | "typedef-whitespace": [ 107 | true, 108 | { 109 | "call-signature": "nospace", 110 | "index-signature": "nospace", 111 | "parameter": "nospace", 112 | "property-declaration": "nospace", 113 | "variable-declaration": "nospace" 114 | } 115 | ], 116 | "typedef": [ 117 | true, 118 | "call-signature", 119 | "parameter", 120 | "member-variable-declaration", 121 | "property-declaration", 122 | "variable-declaration" 123 | ], 124 | "unified-signatures": true, 125 | "variable-name": { 126 | "options": [ 127 | "ban-keywords", 128 | "check-format", 129 | "allow-leading-underscore", 130 | "allow-pascal-case" 131 | ] 132 | }, 133 | "function-name": [ 134 | false 135 | ], 136 | "whitespace": [ 137 | true, 138 | "check-branch", 139 | "check-decl", 140 | "check-operator", 141 | "check-separator", 142 | "check-type", 143 | "check-module" 144 | ], 145 | "directive-selector": [ 146 | true, 147 | "attribute", 148 | [ 149 | "app", 150 | "" 151 | ], 152 | "camelCase" 153 | ], 154 | "component-selector": [ 155 | true, 156 | "element", 157 | [ 158 | "app", 159 | "" 160 | ], 161 | "kebab-case" 162 | ], 163 | "no-output-on-prefix": false, 164 | "use-input-property-decorator": true, 165 | "use-output-property-decorator": true, 166 | "use-host-property-decorator": true, 167 | "no-input-rename": true, 168 | "no-output-rename": true, 169 | "use-life-cycle-interface": true, 170 | "use-pipe-transform-interface": true, 171 | "component-class-suffix": true, 172 | "directive-class-suffix": true 173 | } 174 | } 175 | -------------------------------------------------------------------------------- /wc3-app.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "./" 5 | } 6 | ], 7 | "settings": { 8 | "files.exclude": { 9 | ".vscode": true, 10 | "maps": true, 11 | "node_modules": true, 12 | "src": true, 13 | "target": true, 14 | "tools": true, 15 | "build.bat": true, 16 | "build-test.bat": true, 17 | "ceres.toml": true, 18 | "clean.bat": true, 19 | "package.json": true, 20 | "tsconfig.json": true, 21 | "package-lock.json": true, 22 | "settings-base.bat": true, 23 | "settings-base.sh": true, 24 | "clean.sh": true, 25 | "build.sh": true, 26 | "*.code-workspace": true, 27 | }, 28 | } 29 | } --------------------------------------------------------------------------------