quake2ts 0.0.75 → 0.0.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/client/dist/browser/index.global.js +1 -1
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/browser/index.global.js +10 -10
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/demo/parser.d.ts +45 -0
- package/packages/engine/dist/types/demo/parser.d.ts.map +1 -0
- package/packages/engine/dist/types/demo/playback.d.ts +22 -0
- package/packages/engine/dist/types/demo/playback.d.ts.map +1 -0
- package/packages/engine/dist/types/demo/reader.d.ts +15 -0
- package/packages/engine/dist/types/demo/reader.d.ts.map +1 -0
- package/packages/game/dist/browser/index.global.js +1 -1
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/browser/index.global.js +1 -1
- package/packages/shared/dist/browser/index.global.js.map +1 -1
- package/packages/shared/dist/cjs/index.cjs +209 -0
- package/packages/shared/dist/cjs/index.cjs.map +1 -1
- package/packages/shared/dist/esm/index.js +205 -0
- package/packages/shared/dist/esm/index.js.map +1 -1
- package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/types/index.d.ts +1 -0
- package/packages/shared/dist/types/index.d.ts.map +1 -1
- package/packages/shared/dist/types/io/binaryStream.d.ts +31 -0
- package/packages/shared/dist/types/io/binaryStream.d.ts.map +1 -0
- package/packages/shared/dist/types/protocol/index.d.ts +2 -0
- package/packages/shared/dist/types/protocol/index.d.ts.map +1 -1
- package/packages/shared/dist/types/protocol/ops.d.ts +31 -0
- package/packages/shared/dist/types/protocol/ops.d.ts.map +1 -0
- package/packages/shared/dist/types/protocol/tempEntity.d.ts +59 -0
- package/packages/shared/dist/types/protocol/tempEntity.d.ts.map +1 -0
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
|
@@ -3073,6 +3073,101 @@ function mouseDeltaToViewDelta(delta, options) {
|
|
|
3073
3073
|
};
|
|
3074
3074
|
}
|
|
3075
3075
|
|
|
3076
|
+
// src/protocol/ops.ts
|
|
3077
|
+
var ServerCommand = /* @__PURE__ */ ((ServerCommand2) => {
|
|
3078
|
+
ServerCommand2[ServerCommand2["bad"] = 0] = "bad";
|
|
3079
|
+
ServerCommand2[ServerCommand2["muzzleflash"] = 1] = "muzzleflash";
|
|
3080
|
+
ServerCommand2[ServerCommand2["muzzleflash2"] = 2] = "muzzleflash2";
|
|
3081
|
+
ServerCommand2[ServerCommand2["temp_entity"] = 3] = "temp_entity";
|
|
3082
|
+
ServerCommand2[ServerCommand2["layout"] = 4] = "layout";
|
|
3083
|
+
ServerCommand2[ServerCommand2["inventory"] = 5] = "inventory";
|
|
3084
|
+
ServerCommand2[ServerCommand2["nop"] = 6] = "nop";
|
|
3085
|
+
ServerCommand2[ServerCommand2["disconnect"] = 7] = "disconnect";
|
|
3086
|
+
ServerCommand2[ServerCommand2["reconnect"] = 8] = "reconnect";
|
|
3087
|
+
ServerCommand2[ServerCommand2["sound"] = 9] = "sound";
|
|
3088
|
+
ServerCommand2[ServerCommand2["print"] = 10] = "print";
|
|
3089
|
+
ServerCommand2[ServerCommand2["stufftext"] = 11] = "stufftext";
|
|
3090
|
+
ServerCommand2[ServerCommand2["serverdata"] = 12] = "serverdata";
|
|
3091
|
+
ServerCommand2[ServerCommand2["configstring"] = 13] = "configstring";
|
|
3092
|
+
ServerCommand2[ServerCommand2["spawnbaseline"] = 14] = "spawnbaseline";
|
|
3093
|
+
ServerCommand2[ServerCommand2["centerprint"] = 15] = "centerprint";
|
|
3094
|
+
ServerCommand2[ServerCommand2["download"] = 16] = "download";
|
|
3095
|
+
ServerCommand2[ServerCommand2["playerinfo"] = 17] = "playerinfo";
|
|
3096
|
+
ServerCommand2[ServerCommand2["packetentities"] = 18] = "packetentities";
|
|
3097
|
+
ServerCommand2[ServerCommand2["deltapacketentities"] = 19] = "deltapacketentities";
|
|
3098
|
+
ServerCommand2[ServerCommand2["frame"] = 20] = "frame";
|
|
3099
|
+
return ServerCommand2;
|
|
3100
|
+
})(ServerCommand || {});
|
|
3101
|
+
var ClientCommand = /* @__PURE__ */ ((ClientCommand2) => {
|
|
3102
|
+
ClientCommand2[ClientCommand2["bad"] = 0] = "bad";
|
|
3103
|
+
ClientCommand2[ClientCommand2["nop"] = 1] = "nop";
|
|
3104
|
+
ClientCommand2[ClientCommand2["move"] = 2] = "move";
|
|
3105
|
+
ClientCommand2[ClientCommand2["userinfo"] = 3] = "userinfo";
|
|
3106
|
+
ClientCommand2[ClientCommand2["stringcmd"] = 4] = "stringcmd";
|
|
3107
|
+
return ClientCommand2;
|
|
3108
|
+
})(ClientCommand || {});
|
|
3109
|
+
|
|
3110
|
+
// src/protocol/tempEntity.ts
|
|
3111
|
+
var TempEntity = /* @__PURE__ */ ((TempEntity2) => {
|
|
3112
|
+
TempEntity2[TempEntity2["GUNSHOT"] = 0] = "GUNSHOT";
|
|
3113
|
+
TempEntity2[TempEntity2["BLOOD"] = 1] = "BLOOD";
|
|
3114
|
+
TempEntity2[TempEntity2["BLASTER"] = 2] = "BLASTER";
|
|
3115
|
+
TempEntity2[TempEntity2["RAILTRAIL"] = 3] = "RAILTRAIL";
|
|
3116
|
+
TempEntity2[TempEntity2["SHOTGUN"] = 4] = "SHOTGUN";
|
|
3117
|
+
TempEntity2[TempEntity2["EXPLOSION1"] = 5] = "EXPLOSION1";
|
|
3118
|
+
TempEntity2[TempEntity2["EXPLOSION2"] = 6] = "EXPLOSION2";
|
|
3119
|
+
TempEntity2[TempEntity2["ROCKET_EXPLOSION"] = 7] = "ROCKET_EXPLOSION";
|
|
3120
|
+
TempEntity2[TempEntity2["GRENADE_EXPLOSION"] = 8] = "GRENADE_EXPLOSION";
|
|
3121
|
+
TempEntity2[TempEntity2["SPARKS"] = 9] = "SPARKS";
|
|
3122
|
+
TempEntity2[TempEntity2["SPLASH"] = 10] = "SPLASH";
|
|
3123
|
+
TempEntity2[TempEntity2["BUBBLETRAIL"] = 11] = "BUBBLETRAIL";
|
|
3124
|
+
TempEntity2[TempEntity2["SCREEN_SPARKS"] = 12] = "SCREEN_SPARKS";
|
|
3125
|
+
TempEntity2[TempEntity2["SHIELD_SPARKS"] = 13] = "SHIELD_SPARKS";
|
|
3126
|
+
TempEntity2[TempEntity2["BULLET_SPARKS"] = 14] = "BULLET_SPARKS";
|
|
3127
|
+
TempEntity2[TempEntity2["LASER_SPARKS"] = 15] = "LASER_SPARKS";
|
|
3128
|
+
TempEntity2[TempEntity2["PARASITE_ATTACK"] = 16] = "PARASITE_ATTACK";
|
|
3129
|
+
TempEntity2[TempEntity2["ROCKET_EXPLOSION_WATER"] = 17] = "ROCKET_EXPLOSION_WATER";
|
|
3130
|
+
TempEntity2[TempEntity2["GRENADE_EXPLOSION_WATER"] = 18] = "GRENADE_EXPLOSION_WATER";
|
|
3131
|
+
TempEntity2[TempEntity2["MEDIC_CABLE_ATTACK"] = 19] = "MEDIC_CABLE_ATTACK";
|
|
3132
|
+
TempEntity2[TempEntity2["BFG_EXPLOSION"] = 20] = "BFG_EXPLOSION";
|
|
3133
|
+
TempEntity2[TempEntity2["BFG_BIGEXPLOSION"] = 21] = "BFG_BIGEXPLOSION";
|
|
3134
|
+
TempEntity2[TempEntity2["BOSSTPORT"] = 22] = "BOSSTPORT";
|
|
3135
|
+
TempEntity2[TempEntity2["BFG_LASER"] = 23] = "BFG_LASER";
|
|
3136
|
+
TempEntity2[TempEntity2["GRAPPLE_CABLE"] = 24] = "GRAPPLE_CABLE";
|
|
3137
|
+
TempEntity2[TempEntity2["WELDING_SPARKS"] = 25] = "WELDING_SPARKS";
|
|
3138
|
+
TempEntity2[TempEntity2["GREENBLOOD"] = 26] = "GREENBLOOD";
|
|
3139
|
+
TempEntity2[TempEntity2["BLUEHYPERBLASTER"] = 27] = "BLUEHYPERBLASTER";
|
|
3140
|
+
TempEntity2[TempEntity2["PLASMA_EXPLOSION"] = 28] = "PLASMA_EXPLOSION";
|
|
3141
|
+
TempEntity2[TempEntity2["TUNNEL_SPARKS"] = 29] = "TUNNEL_SPARKS";
|
|
3142
|
+
TempEntity2[TempEntity2["BLASTER2"] = 30] = "BLASTER2";
|
|
3143
|
+
TempEntity2[TempEntity2["RAILTRAIL2"] = 31] = "RAILTRAIL2";
|
|
3144
|
+
TempEntity2[TempEntity2["FLAME"] = 32] = "FLAME";
|
|
3145
|
+
TempEntity2[TempEntity2["LIGHTNING"] = 33] = "LIGHTNING";
|
|
3146
|
+
TempEntity2[TempEntity2["DEBUGTRAIL"] = 34] = "DEBUGTRAIL";
|
|
3147
|
+
TempEntity2[TempEntity2["PLAIN_EXPLOSION"] = 35] = "PLAIN_EXPLOSION";
|
|
3148
|
+
TempEntity2[TempEntity2["FLASHLIGHT"] = 36] = "FLASHLIGHT";
|
|
3149
|
+
TempEntity2[TempEntity2["FORCEWALL"] = 37] = "FORCEWALL";
|
|
3150
|
+
TempEntity2[TempEntity2["HEATBEAM"] = 38] = "HEATBEAM";
|
|
3151
|
+
TempEntity2[TempEntity2["MONSTER_HEATBEAM"] = 39] = "MONSTER_HEATBEAM";
|
|
3152
|
+
TempEntity2[TempEntity2["STEAM"] = 40] = "STEAM";
|
|
3153
|
+
TempEntity2[TempEntity2["BUBBLETRAIL2"] = 41] = "BUBBLETRAIL2";
|
|
3154
|
+
TempEntity2[TempEntity2["MOREBLOOD"] = 42] = "MOREBLOOD";
|
|
3155
|
+
TempEntity2[TempEntity2["HEATBEAM_SPARKS"] = 43] = "HEATBEAM_SPARKS";
|
|
3156
|
+
TempEntity2[TempEntity2["HEATBEAM_STEAM"] = 44] = "HEATBEAM_STEAM";
|
|
3157
|
+
TempEntity2[TempEntity2["CHAINFIST_SMOKE"] = 45] = "CHAINFIST_SMOKE";
|
|
3158
|
+
TempEntity2[TempEntity2["ELECTRIC_SPARKS"] = 46] = "ELECTRIC_SPARKS";
|
|
3159
|
+
TempEntity2[TempEntity2["TRACKER_EXPLOSION"] = 47] = "TRACKER_EXPLOSION";
|
|
3160
|
+
TempEntity2[TempEntity2["TELEPORT_EFFECT"] = 48] = "TELEPORT_EFFECT";
|
|
3161
|
+
TempEntity2[TempEntity2["DBALL_GOAL"] = 49] = "DBALL_GOAL";
|
|
3162
|
+
TempEntity2[TempEntity2["WIDOWBEAMOUT"] = 50] = "WIDOWBEAMOUT";
|
|
3163
|
+
TempEntity2[TempEntity2["NUKEBLAST"] = 51] = "NUKEBLAST";
|
|
3164
|
+
TempEntity2[TempEntity2["WIDOWSPLASH"] = 52] = "WIDOWSPLASH";
|
|
3165
|
+
TempEntity2[TempEntity2["EXPLOSION1_BIG"] = 53] = "EXPLOSION1_BIG";
|
|
3166
|
+
TempEntity2[TempEntity2["EXPLOSION1_NP"] = 54] = "EXPLOSION1_NP";
|
|
3167
|
+
TempEntity2[TempEntity2["FLECHETTE"] = 55] = "FLECHETTE";
|
|
3168
|
+
return TempEntity2;
|
|
3169
|
+
})(TempEntity || {});
|
|
3170
|
+
|
|
3076
3171
|
// src/pmove/apply.ts
|
|
3077
3172
|
var FRAMETIME = 0.025;
|
|
3078
3173
|
var categorizePosition2 = (state, trace) => {
|
|
@@ -3138,7 +3233,114 @@ var applyPmove = (state, cmd, trace, pointContents2) => {
|
|
|
3138
3233
|
velocity: finalVelocity
|
|
3139
3234
|
};
|
|
3140
3235
|
};
|
|
3236
|
+
|
|
3237
|
+
// src/io/binaryStream.ts
|
|
3238
|
+
var BinaryStream = class {
|
|
3239
|
+
constructor(buffer) {
|
|
3240
|
+
if (buffer instanceof Uint8Array) {
|
|
3241
|
+
this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
3242
|
+
} else {
|
|
3243
|
+
this.view = new DataView(buffer);
|
|
3244
|
+
}
|
|
3245
|
+
this.offset = 0;
|
|
3246
|
+
this.length = this.view.byteLength;
|
|
3247
|
+
}
|
|
3248
|
+
getPosition() {
|
|
3249
|
+
return this.offset;
|
|
3250
|
+
}
|
|
3251
|
+
seek(position) {
|
|
3252
|
+
if (position < 0 || position > this.length) {
|
|
3253
|
+
throw new Error(`Seek out of bounds: ${position} (length: ${this.length})`);
|
|
3254
|
+
}
|
|
3255
|
+
this.offset = position;
|
|
3256
|
+
}
|
|
3257
|
+
hasMore() {
|
|
3258
|
+
return this.offset < this.length;
|
|
3259
|
+
}
|
|
3260
|
+
readChar() {
|
|
3261
|
+
const value = this.view.getInt8(this.offset);
|
|
3262
|
+
this.offset += 1;
|
|
3263
|
+
return value;
|
|
3264
|
+
}
|
|
3265
|
+
readByte() {
|
|
3266
|
+
const value = this.view.getUint8(this.offset);
|
|
3267
|
+
this.offset += 1;
|
|
3268
|
+
return value;
|
|
3269
|
+
}
|
|
3270
|
+
readShort() {
|
|
3271
|
+
const value = this.view.getInt16(this.offset, true);
|
|
3272
|
+
this.offset += 2;
|
|
3273
|
+
return value;
|
|
3274
|
+
}
|
|
3275
|
+
readLong() {
|
|
3276
|
+
const value = this.view.getInt32(this.offset, true);
|
|
3277
|
+
this.offset += 4;
|
|
3278
|
+
return value;
|
|
3279
|
+
}
|
|
3280
|
+
readFloat() {
|
|
3281
|
+
const value = this.view.getFloat32(this.offset, true);
|
|
3282
|
+
this.offset += 4;
|
|
3283
|
+
return value;
|
|
3284
|
+
}
|
|
3285
|
+
readString() {
|
|
3286
|
+
let str = "";
|
|
3287
|
+
while (this.offset < this.length) {
|
|
3288
|
+
const charCode = this.readChar();
|
|
3289
|
+
if (charCode === -1 || charCode === 0) {
|
|
3290
|
+
break;
|
|
3291
|
+
}
|
|
3292
|
+
str += String.fromCharCode(charCode);
|
|
3293
|
+
}
|
|
3294
|
+
return str;
|
|
3295
|
+
}
|
|
3296
|
+
readStringLine() {
|
|
3297
|
+
let str = "";
|
|
3298
|
+
while (this.offset < this.length) {
|
|
3299
|
+
const charCode = this.readChar();
|
|
3300
|
+
if (charCode === -1 || charCode === 0 || charCode === 10) {
|
|
3301
|
+
break;
|
|
3302
|
+
}
|
|
3303
|
+
str += String.fromCharCode(charCode);
|
|
3304
|
+
}
|
|
3305
|
+
return str;
|
|
3306
|
+
}
|
|
3307
|
+
readCoord() {
|
|
3308
|
+
return this.readShort() * (1 / 8);
|
|
3309
|
+
}
|
|
3310
|
+
readAngle() {
|
|
3311
|
+
return this.readChar() * (360 / 256);
|
|
3312
|
+
}
|
|
3313
|
+
readAngle16() {
|
|
3314
|
+
return this.readShort() * 360 / 65536;
|
|
3315
|
+
}
|
|
3316
|
+
readData(length) {
|
|
3317
|
+
if (this.offset + length > this.length) {
|
|
3318
|
+
throw new Error(`Read out of bounds: ${this.offset + length} (length: ${this.length})`);
|
|
3319
|
+
}
|
|
3320
|
+
const data = new Uint8Array(this.view.buffer, this.view.byteOffset + this.offset, length);
|
|
3321
|
+
this.offset += length;
|
|
3322
|
+
return new Uint8Array(data);
|
|
3323
|
+
}
|
|
3324
|
+
readPos(out) {
|
|
3325
|
+
out.x = this.readCoord();
|
|
3326
|
+
out.y = this.readCoord();
|
|
3327
|
+
out.z = this.readCoord();
|
|
3328
|
+
}
|
|
3329
|
+
readDir(out) {
|
|
3330
|
+
const b = this.readByte();
|
|
3331
|
+
if (b >= 162) {
|
|
3332
|
+
out.x = 0;
|
|
3333
|
+
out.y = 0;
|
|
3334
|
+
out.z = 0;
|
|
3335
|
+
return;
|
|
3336
|
+
}
|
|
3337
|
+
out.x = 0;
|
|
3338
|
+
out.y = 0;
|
|
3339
|
+
out.z = 0;
|
|
3340
|
+
}
|
|
3341
|
+
};
|
|
3141
3342
|
export {
|
|
3343
|
+
BinaryStream,
|
|
3142
3344
|
CGAME_EXPORT_KEYS,
|
|
3143
3345
|
CGAME_IMPORT_KEYS,
|
|
3144
3346
|
CONTENTS_AREAPORTAL,
|
|
@@ -3171,6 +3373,7 @@ export {
|
|
|
3171
3373
|
CONTENTS_WINDOW,
|
|
3172
3374
|
CS_MAX_STRING_LENGTH,
|
|
3173
3375
|
CS_MAX_STRING_LENGTH_OLD,
|
|
3376
|
+
ClientCommand,
|
|
3174
3377
|
CollisionEntityIndex,
|
|
3175
3378
|
ConfigStringIndex,
|
|
3176
3379
|
CvarFlags,
|
|
@@ -3241,6 +3444,8 @@ export {
|
|
|
3241
3444
|
SURF_TRANS33,
|
|
3242
3445
|
SURF_TRANS66,
|
|
3243
3446
|
SURF_WARP,
|
|
3447
|
+
ServerCommand,
|
|
3448
|
+
TempEntity,
|
|
3244
3449
|
WaterLevel,
|
|
3245
3450
|
YAW,
|
|
3246
3451
|
ZERO_VEC3,
|