quake2ts 0.0.289 → 0.0.290
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 +11 -11
- 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 +16 -16
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +33 -35
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +33 -35
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/audio/constants.d.ts +1 -23
- package/packages/engine/dist/types/audio/constants.d.ts.map +1 -1
- package/packages/game/dist/browser/index.global.js +3 -3
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +65 -19
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +65 -19
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/types/entities/monsters/actor.d.ts.map +1 -1
- package/packages/game/dist/types/entities/monsters/arachnid.d.ts.map +1 -1
- package/packages/game/dist/types/entities/system.d.ts +1 -0
- package/packages/game/dist/types/entities/system.d.ts.map +1 -1
- package/packages/game/dist/types/index.d.ts +2 -0
- package/packages/game/dist/types/index.d.ts.map +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 +53 -0
- package/packages/shared/dist/cjs/index.cjs.map +1 -1
- package/packages/shared/dist/esm/index.js +42 -0
- package/packages/shared/dist/esm/index.js.map +1 -1
- package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/types/audio/constants.d.ts +24 -0
- package/packages/shared/dist/types/audio/constants.d.ts.map +1 -0
- package/packages/shared/dist/types/index.d.ts +1 -0
- package/packages/shared/dist/types/index.d.ts.map +1 -1
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
|
@@ -446,7 +446,7 @@ function G_SetPowerupStat(stats, powerupId, val) {
|
|
|
446
446
|
if (safeVal < 0) safeVal = 0;
|
|
447
447
|
setCompressedInteger(stats, 41, index, safeVal, NUM_BITS_FOR_POWERUP);
|
|
448
448
|
}
|
|
449
|
-
var __defProp2, __export2, ZERO_VEC3, STOP_EPSILON, DEG_TO_RAD, PITCH, YAW, ROLL, DEG2RAD_FACTOR, RAD2DEG_FACTOR, ANORMS, STATE_SIZE, MIDDLE_WORD, MATRIX_A, UPPER_MASK, LOWER_MASK, TWO_POW_32, MersenneTwister19937, RandomGenerator, CONTENTS_SOLID, CONTENTS_WINDOW, CONTENTS_AUX, CONTENTS_LAVA, CONTENTS_SLIME, CONTENTS_WATER, CONTENTS_MIST, CONTENTS_NO_WATERJUMP, CONTENTS_PROJECTILECLIP, CONTENTS_AREAPORTAL, CONTENTS_PLAYERCLIP, CONTENTS_MONSTERCLIP, CONTENTS_CURRENT_0, CONTENTS_CURRENT_90, CONTENTS_CURRENT_180, CONTENTS_CURRENT_270, CONTENTS_CURRENT_UP, CONTENTS_CURRENT_DOWN, CONTENTS_ORIGIN, CONTENTS_MONSTER, CONTENTS_DEADMONSTER, CONTENTS_DETAIL, CONTENTS_TRANSLUCENT, CONTENTS_LADDER, CONTENTS_PLAYER, CONTENTS_PROJECTILE, SURF_LIGHT, SURF_SLICK, SURF_SKY, SURF_WARP, SURF_TRANS33, SURF_TRANS66, SURF_FLOWING, SURF_NODRAW, SURF_ALPHATEST, SURF_N64_UV, SURF_N64_SCROLL_X, SURF_N64_SCROLL_Y, SURF_N64_SCROLL_FLIP, MASK_SOLID, MASK_PLAYERSOLID, MASK_DEADSOLID, MASK_MONSTERSOLID, MASK_WATER, MASK_OPAQUE, MASK_SHOT, MASK_CURRENT, MASK_BLOCK_SIGHT, MASK_NAV_SOLID, MASK_LADDER_NAV_SOLID, MASK_WALK_NAV_SOLID, MASK_PROJECTILE, MAX_CHECKCOUNT, CvarFlags, MAX_CLIENTS, MAX_LIGHTSTYLES, MAX_MODELS, MAX_SOUNDS, MAX_IMAGES, MAX_ITEMS, MAX_GENERAL, MAX_SHADOW_LIGHTS, MAX_WHEEL_ITEMS, ConfigStringIndex, MAX_CONFIGSTRINGS, replay_exports, WaterLevel, WATERJUMP_CLEAR, ServerCommand, TempEntity, MZ_BLASTER, MZ_MACHINEGUN, MZ_SHOTGUN, MZ_CHAINGUN1, MZ_RAILGUN, MZ_ROCKET, MZ_GRENADE, MZ_SSHOTGUN, MZ_BFG, MZ_HYPERBLASTER, PowerupId, PlayerStat, AMMO_MAX, NUM_BITS_FOR_AMMO, NUM_AMMO_STATS, POWERUP_MAX, NUM_BITS_FOR_POWERUP, NUM_POWERUP_STATS, POWERUP_STAT_MAP, RenderFx, entityFlags_exports, U_NUMBER, U_MODEL, U_SOUND, U_ORIGIN1, U_ORIGIN2, U_ORIGIN3, U_ANGLE1, U_ANGLE2, U_ANGLE3, U_FRAME, U_SKIN, U_EFFECTS, U_RENDERFX, U_SOLID, U_EVENT, U_MOREBITS, U_MODEL2, U_MODEL3, U_MODEL4, U_REMOVE, FRAMETIME, MASK_WATER2, WaterLevel3, categorizePosition2, checkWater, applyPmove, BinaryWriter, _NetChan, WeaponId, AmmoType, AMMO_TYPE_COUNT, AmmoItemId, WEAPON_WHEEL_ORDER;
|
|
449
|
+
var __defProp2, __export2, ZERO_VEC3, STOP_EPSILON, DEG_TO_RAD, PITCH, YAW, ROLL, DEG2RAD_FACTOR, RAD2DEG_FACTOR, ANORMS, STATE_SIZE, MIDDLE_WORD, MATRIX_A, UPPER_MASK, LOWER_MASK, TWO_POW_32, MersenneTwister19937, RandomGenerator, CONTENTS_SOLID, CONTENTS_WINDOW, CONTENTS_AUX, CONTENTS_LAVA, CONTENTS_SLIME, CONTENTS_WATER, CONTENTS_MIST, CONTENTS_NO_WATERJUMP, CONTENTS_PROJECTILECLIP, CONTENTS_AREAPORTAL, CONTENTS_PLAYERCLIP, CONTENTS_MONSTERCLIP, CONTENTS_CURRENT_0, CONTENTS_CURRENT_90, CONTENTS_CURRENT_180, CONTENTS_CURRENT_270, CONTENTS_CURRENT_UP, CONTENTS_CURRENT_DOWN, CONTENTS_ORIGIN, CONTENTS_MONSTER, CONTENTS_DEADMONSTER, CONTENTS_DETAIL, CONTENTS_TRANSLUCENT, CONTENTS_LADDER, CONTENTS_PLAYER, CONTENTS_PROJECTILE, SURF_LIGHT, SURF_SLICK, SURF_SKY, SURF_WARP, SURF_TRANS33, SURF_TRANS66, SURF_FLOWING, SURF_NODRAW, SURF_ALPHATEST, SURF_N64_UV, SURF_N64_SCROLL_X, SURF_N64_SCROLL_Y, SURF_N64_SCROLL_FLIP, MASK_SOLID, MASK_PLAYERSOLID, MASK_DEADSOLID, MASK_MONSTERSOLID, MASK_WATER, MASK_OPAQUE, MASK_SHOT, MASK_CURRENT, MASK_BLOCK_SIGHT, MASK_NAV_SOLID, MASK_LADDER_NAV_SOLID, MASK_WALK_NAV_SOLID, MASK_PROJECTILE, MAX_CHECKCOUNT, CvarFlags, MAX_CLIENTS, MAX_LIGHTSTYLES, MAX_MODELS, MAX_SOUNDS, MAX_IMAGES, MAX_ITEMS, MAX_GENERAL, MAX_SHADOW_LIGHTS, MAX_WHEEL_ITEMS, ConfigStringIndex, MAX_CONFIGSTRINGS, replay_exports, WaterLevel, WATERJUMP_CLEAR, ServerCommand, TempEntity, MZ_BLASTER, MZ_MACHINEGUN, MZ_SHOTGUN, MZ_CHAINGUN1, MZ_RAILGUN, MZ_ROCKET, MZ_GRENADE, MZ_SSHOTGUN, MZ_BFG, MZ_HYPERBLASTER, PowerupId, PlayerStat, AMMO_MAX, NUM_BITS_FOR_AMMO, NUM_AMMO_STATS, POWERUP_MAX, NUM_BITS_FOR_POWERUP, NUM_POWERUP_STATS, POWERUP_STAT_MAP, RenderFx, entityFlags_exports, U_NUMBER, U_MODEL, U_SOUND, U_ORIGIN1, U_ORIGIN2, U_ORIGIN3, U_ANGLE1, U_ANGLE2, U_ANGLE3, U_FRAME, U_SKIN, U_EFFECTS, U_RENDERFX, U_SOLID, U_EVENT, U_MOREBITS, U_MODEL2, U_MODEL3, U_MODEL4, U_REMOVE, FRAMETIME, MASK_WATER2, WaterLevel3, categorizePosition2, checkWater, applyPmove, BinaryWriter, _NetChan, WeaponId, AmmoType, AMMO_TYPE_COUNT, AmmoItemId, WEAPON_WHEEL_ORDER, SoundChannel, ATTN_NORM, ATTN_IDLE;
|
|
450
450
|
var init_esm = __esm({
|
|
451
451
|
"../shared/dist/esm/index.js"() {
|
|
452
452
|
"use strict";
|
|
@@ -1727,6 +1727,22 @@ var init_esm = __esm({
|
|
|
1727
1727
|
"bfg10k"
|
|
1728
1728
|
/* BFG10K */
|
|
1729
1729
|
];
|
|
1730
|
+
SoundChannel = /* @__PURE__ */ ((SoundChannel2) => {
|
|
1731
|
+
SoundChannel2[SoundChannel2["Auto"] = 0] = "Auto";
|
|
1732
|
+
SoundChannel2[SoundChannel2["Weapon"] = 1] = "Weapon";
|
|
1733
|
+
SoundChannel2[SoundChannel2["Voice"] = 2] = "Voice";
|
|
1734
|
+
SoundChannel2[SoundChannel2["Item"] = 3] = "Item";
|
|
1735
|
+
SoundChannel2[SoundChannel2["Body"] = 4] = "Body";
|
|
1736
|
+
SoundChannel2[SoundChannel2["Aux"] = 5] = "Aux";
|
|
1737
|
+
SoundChannel2[SoundChannel2["Footstep"] = 6] = "Footstep";
|
|
1738
|
+
SoundChannel2[SoundChannel2["Aux3"] = 7] = "Aux3";
|
|
1739
|
+
SoundChannel2[SoundChannel2["NoPhsAdd"] = 8] = "NoPhsAdd";
|
|
1740
|
+
SoundChannel2[SoundChannel2["Reliable"] = 16] = "Reliable";
|
|
1741
|
+
SoundChannel2[SoundChannel2["ForcePos"] = 32] = "ForcePos";
|
|
1742
|
+
return SoundChannel2;
|
|
1743
|
+
})(SoundChannel || {});
|
|
1744
|
+
ATTN_NORM = 1;
|
|
1745
|
+
ATTN_IDLE = 2;
|
|
1730
1746
|
}
|
|
1731
1747
|
});
|
|
1732
1748
|
|
|
@@ -4131,6 +4147,9 @@ var EntitySystem = class {
|
|
|
4131
4147
|
sound(entity, channel, sound, volume, attenuation, timeofs) {
|
|
4132
4148
|
this.engine.sound?.(entity, channel, sound, volume, attenuation, timeofs);
|
|
4133
4149
|
}
|
|
4150
|
+
soundIndex(sound) {
|
|
4151
|
+
return this.engine.soundIndex?.(sound) || 0;
|
|
4152
|
+
}
|
|
4134
4153
|
modelIndex(model) {
|
|
4135
4154
|
return this.engine.modelIndex?.(model) || 0;
|
|
4136
4155
|
}
|
|
@@ -5289,7 +5308,7 @@ function createBfgBall(sys, owner, start, dir, damage, speed, damageRadius) {
|
|
|
5289
5308
|
|
|
5290
5309
|
// src/entities/targets.ts
|
|
5291
5310
|
var ATTN_NONE = 0;
|
|
5292
|
-
var
|
|
5311
|
+
var ATTN_NORM2 = 1;
|
|
5293
5312
|
var SPEAKER_SPAWNFLAGS = {
|
|
5294
5313
|
LoopedOn: 1 << 0,
|
|
5295
5314
|
LoopedOff: 1 << 1,
|
|
@@ -5381,7 +5400,7 @@ function useTargetBlaster(self, other, activator, context) {
|
|
|
5381
5400
|
bolt.effects = 0;
|
|
5382
5401
|
}
|
|
5383
5402
|
}
|
|
5384
|
-
context.entities.sound(self, 2, "weapons/laser2.wav", 1,
|
|
5403
|
+
context.entities.sound(self, 2, "weapons/laser2.wav", 1, ATTN_NORM2, 0);
|
|
5385
5404
|
}
|
|
5386
5405
|
var SPAWNFLAG_EARTHQUAKE_SILENT = 1;
|
|
5387
5406
|
var SPAWNFLAG_EARTHQUAKE_TOGGLE = 2;
|
|
@@ -5606,7 +5625,7 @@ function registerTargetSpawns(registry) {
|
|
|
5606
5625
|
if (attenuation) {
|
|
5607
5626
|
entity.attenuation = Number.parseFloat(attenuation);
|
|
5608
5627
|
} else {
|
|
5609
|
-
entity.attenuation =
|
|
5628
|
+
entity.attenuation = ATTN_NORM2;
|
|
5610
5629
|
}
|
|
5611
5630
|
if (context.keyValues.volume) {
|
|
5612
5631
|
entity.volume = Number.parseFloat(context.keyValues.volume);
|
|
@@ -13117,6 +13136,12 @@ var actor_names = [
|
|
|
13117
13136
|
"Titus",
|
|
13118
13137
|
"Bitterman"
|
|
13119
13138
|
];
|
|
13139
|
+
var sound_pain1 = "player/male/pain100.wav";
|
|
13140
|
+
var sound_pain2 = "player/male/pain75.wav";
|
|
13141
|
+
var sound_pain3 = "player/male/pain50.wav";
|
|
13142
|
+
var sound_die1 = "player/male/death1.wav";
|
|
13143
|
+
var sound_die2 = "player/male/death2.wav";
|
|
13144
|
+
var sound_gib = "misc/udeath.wav";
|
|
13120
13145
|
var FRAME_stand101 = 0;
|
|
13121
13146
|
var FRAME_stand140 = 39;
|
|
13122
13147
|
var FRAME_walk01 = 40;
|
|
@@ -13191,6 +13216,11 @@ function actor_pain(self, other, kick, damage) {
|
|
|
13191
13216
|
if (context.timeSeconds < self.pain_debounce_time)
|
|
13192
13217
|
return;
|
|
13193
13218
|
self.pain_debounce_time = context.timeSeconds + 3;
|
|
13219
|
+
const n = Math.floor(Math.random() * 3);
|
|
13220
|
+
let sound = sound_pain1;
|
|
13221
|
+
if (n === 1) sound = sound_pain2;
|
|
13222
|
+
if (n === 2) sound = sound_pain3;
|
|
13223
|
+
context.sound(self, SoundChannel.Voice, sound, 1, ATTN_NORM, 0);
|
|
13194
13224
|
const random13 = Math.random();
|
|
13195
13225
|
if (other && other.client && random13 < 0.4) {
|
|
13196
13226
|
const v = subtractVec3(other.origin, self.origin);
|
|
@@ -13205,7 +13235,6 @@ function actor_pain(self, other, kick, damage) {
|
|
|
13205
13235
|
`);
|
|
13206
13236
|
return;
|
|
13207
13237
|
}
|
|
13208
|
-
const n = Math.floor(Math.random() * 3);
|
|
13209
13238
|
if (n === 0)
|
|
13210
13239
|
self.monsterinfo.current_move = actor_move_pain1;
|
|
13211
13240
|
else if (n === 1)
|
|
@@ -13254,15 +13283,19 @@ function actor_die(self, inflictor, attacker, damage, point, mod) {
|
|
|
13254
13283
|
const context = self.monsterinfo.context;
|
|
13255
13284
|
if (!context) return;
|
|
13256
13285
|
if (self.health <= -80) {
|
|
13286
|
+
context.sound(self, SoundChannel.Voice, sound_gib, 1, ATTN_NORM, 0);
|
|
13257
13287
|
throwGibs(context, self.origin, damage);
|
|
13258
13288
|
self.deadflag = 2 /* Dead */;
|
|
13259
13289
|
return;
|
|
13260
13290
|
}
|
|
13261
13291
|
if (self.deadflag === 2 /* Dead */)
|
|
13262
13292
|
return;
|
|
13293
|
+
const n = Math.floor(Math.random() * 2);
|
|
13294
|
+
const sound = n === 0 ? sound_die1 : sound_die2;
|
|
13295
|
+
context.sound(self, SoundChannel.Voice, sound, 1, ATTN_NORM, 0);
|
|
13263
13296
|
self.deadflag = 2 /* Dead */;
|
|
13264
13297
|
self.takedamage = true;
|
|
13265
|
-
if (
|
|
13298
|
+
if (n === 0)
|
|
13266
13299
|
self.monsterinfo.current_move = actor_move_death1;
|
|
13267
13300
|
else
|
|
13268
13301
|
self.monsterinfo.current_move = actor_move_death2;
|
|
@@ -13530,6 +13563,13 @@ function SP_misc_actor(self, context) {
|
|
|
13530
13563
|
self.mass = 200;
|
|
13531
13564
|
self.pain = actor_pain;
|
|
13532
13565
|
self.die = actor_die;
|
|
13566
|
+
context.entities.soundIndex(sound_pain1);
|
|
13567
|
+
context.entities.soundIndex(sound_pain2);
|
|
13568
|
+
context.entities.soundIndex(sound_pain3);
|
|
13569
|
+
context.entities.soundIndex(sound_die1);
|
|
13570
|
+
context.entities.soundIndex(sound_die2);
|
|
13571
|
+
context.entities.soundIndex(sound_gib);
|
|
13572
|
+
context.entities.soundIndex("player/male/jump1.wav");
|
|
13533
13573
|
self.monsterinfo = {
|
|
13534
13574
|
...self.monsterinfo,
|
|
13535
13575
|
// Preserve default properties like last_sighting, trail_time, pausetime
|
|
@@ -13580,7 +13620,7 @@ function target_actor_touch(self, other, plane, surf) {
|
|
|
13580
13620
|
if (other.groundentity) {
|
|
13581
13621
|
other.groundentity = null;
|
|
13582
13622
|
v.z = self.movedir.z;
|
|
13583
|
-
context.sound(other,
|
|
13623
|
+
context.sound(other, SoundChannel.Voice, "player/male/jump1.wav", 1, ATTN_NORM, 0);
|
|
13584
13624
|
}
|
|
13585
13625
|
}
|
|
13586
13626
|
if (self.spawnflags & SPAWNFLAG_TARGET_ACTOR_SHOOT) {
|
|
@@ -16901,11 +16941,6 @@ var FRAME_rails_up16 = 113;
|
|
|
16901
16941
|
var MODEL_SCALE = 1;
|
|
16902
16942
|
var MELEE_DISTANCE5 = 64;
|
|
16903
16943
|
var MONSTER_TICK27 = 0.1;
|
|
16904
|
-
var CHAN_WEAPON = 1;
|
|
16905
|
-
var CHAN_VOICE = 2;
|
|
16906
|
-
var CHAN_BODY = 4;
|
|
16907
|
-
var ATTN_NORM2 = 1;
|
|
16908
|
-
var ATTN_IDLE = 2;
|
|
16909
16944
|
var MZ2_ARACHNID_RAIL1 = 20;
|
|
16910
16945
|
var MZ2_ARACHNID_RAIL2 = 21;
|
|
16911
16946
|
var MZ2_ARACHNID_RAIL_UP1 = 22;
|
|
@@ -16957,7 +16992,7 @@ function arachnid_stand(self, context) {
|
|
|
16957
16992
|
M_SetAnimation3(self, arachnid_move_stand, context);
|
|
16958
16993
|
}
|
|
16959
16994
|
function arachnid_footstep(self, context) {
|
|
16960
|
-
context.engine.sound?.(self,
|
|
16995
|
+
context.engine.sound?.(self, SoundChannel.Body, sound_step, 0.5, ATTN_IDLE, 0);
|
|
16961
16996
|
}
|
|
16962
16997
|
var arachnid_frames_walk = [
|
|
16963
16998
|
{ ai: monster_ai_walk22, dist: 8, think: arachnid_footstep },
|
|
@@ -17036,7 +17071,7 @@ function arachnid_pain(self, other, kick, damage, context) {
|
|
|
17036
17071
|
return;
|
|
17037
17072
|
}
|
|
17038
17073
|
self.pain_debounce_time = context.timeSeconds + 3;
|
|
17039
|
-
context.engine.sound?.(self,
|
|
17074
|
+
context.engine.sound?.(self, SoundChannel.Voice, sound_pain, 1, ATTN_NORM, 0);
|
|
17040
17075
|
if (!M_ShouldReactToPain(self)) {
|
|
17041
17076
|
return;
|
|
17042
17077
|
}
|
|
@@ -17050,7 +17085,7 @@ function arachnid_charge_rail(self, context) {
|
|
|
17050
17085
|
if (!self.enemy || !self.enemy.inUse) {
|
|
17051
17086
|
return;
|
|
17052
17087
|
}
|
|
17053
|
-
context.engine.sound?.(self,
|
|
17088
|
+
context.engine.sound?.(self, SoundChannel.Weapon, sound_charge, 1, ATTN_NORM, 0);
|
|
17054
17089
|
self.pos1 = { ...self.enemy.origin };
|
|
17055
17090
|
self.pos1 = { ...self.pos1, z: self.pos1.z + self.enemy.viewheight };
|
|
17056
17091
|
}
|
|
@@ -17121,7 +17156,7 @@ var arachnid_attack_up1 = {
|
|
|
17121
17156
|
endfunc: arachnid_run
|
|
17122
17157
|
};
|
|
17123
17158
|
function arachnid_melee_charge(self, context) {
|
|
17124
|
-
context.engine.sound?.(self,
|
|
17159
|
+
context.engine.sound?.(self, SoundChannel.Weapon, sound_melee, 1, ATTN_NORM, 0);
|
|
17125
17160
|
}
|
|
17126
17161
|
function arachnid_melee_hit(self, context) {
|
|
17127
17162
|
if (!monster_fire_hit(self, { x: MELEE_DISTANCE5, y: 0, z: 0 }, 15, 50, context)) {
|
|
@@ -17198,7 +17233,7 @@ var arachnid_move_death = {
|
|
|
17198
17233
|
};
|
|
17199
17234
|
function arachnid_die(self, inflictor, attacker, damage, point, mod, context) {
|
|
17200
17235
|
if (M_CheckGib(self, context)) {
|
|
17201
|
-
context.engine.sound?.(self,
|
|
17236
|
+
context.engine.sound?.(self, SoundChannel.Voice, "misc/udeath.wav", 1, ATTN_NORM, 0);
|
|
17202
17237
|
throwGibs(context, self.origin, damage);
|
|
17203
17238
|
self.deadflag = 2 /* Dead */;
|
|
17204
17239
|
return;
|
|
@@ -17206,7 +17241,7 @@ function arachnid_die(self, inflictor, attacker, damage, point, mod, context) {
|
|
|
17206
17241
|
if (self.deadflag === 2 /* Dead */) {
|
|
17207
17242
|
return;
|
|
17208
17243
|
}
|
|
17209
|
-
context.engine.sound?.(self,
|
|
17244
|
+
context.engine.sound?.(self, SoundChannel.Voice, sound_death, 1, ATTN_NORM, 0);
|
|
17210
17245
|
self.deadflag = 2 /* Dead */;
|
|
17211
17246
|
self.takedamage = true;
|
|
17212
17247
|
M_SetAnimation3(self, arachnid_move_death, context);
|
|
@@ -17224,6 +17259,14 @@ function SP_monster_arachnid(self, context) {
|
|
|
17224
17259
|
sound_pain = "arachnid/pain.wav";
|
|
17225
17260
|
sound_death = "arachnid/death.wav";
|
|
17226
17261
|
sound_sight = "arachnid/sight.wav";
|
|
17262
|
+
context.soundIndex(sound_step);
|
|
17263
|
+
context.soundIndex(sound_charge);
|
|
17264
|
+
context.soundIndex(sound_melee);
|
|
17265
|
+
context.soundIndex(sound_melee_hit);
|
|
17266
|
+
context.soundIndex(sound_pain);
|
|
17267
|
+
context.soundIndex(sound_death);
|
|
17268
|
+
context.soundIndex(sound_sight);
|
|
17269
|
+
context.soundIndex("misc/udeath.wav");
|
|
17227
17270
|
self.model = "models/monsters/arachnid/tris.md2";
|
|
17228
17271
|
self.mins = { x: -48, y: -48, z: -20 };
|
|
17229
17272
|
self.maxs = { x: 48, y: 48, z: 48 };
|
|
@@ -17240,7 +17283,7 @@ function SP_monster_arachnid(self, context) {
|
|
|
17240
17283
|
walk: arachnid_walk,
|
|
17241
17284
|
run: arachnid_run,
|
|
17242
17285
|
attack: arachnid_attack,
|
|
17243
|
-
sight: (e, o) => context.engine.sound?.(e,
|
|
17286
|
+
sight: (e, o) => context.engine.sound?.(e, SoundChannel.Voice, sound_sight, 1, ATTN_NORM, 0),
|
|
17244
17287
|
scale: MODEL_SCALE,
|
|
17245
17288
|
aiflags: self.monsterinfo?.aiflags || 0
|
|
17246
17289
|
};
|
|
@@ -19513,6 +19556,9 @@ function createGame(imports, engine, options) {
|
|
|
19513
19556
|
sound(entity, channel, sound, volume, attenuation, timeofs) {
|
|
19514
19557
|
entities.sound(entity, channel, sound, volume, attenuation, timeofs);
|
|
19515
19558
|
},
|
|
19559
|
+
soundIndex(sound) {
|
|
19560
|
+
return entities.soundIndex(sound);
|
|
19561
|
+
},
|
|
19516
19562
|
centerprintf(entity, message) {
|
|
19517
19563
|
engine.centerprintf?.(entity, message);
|
|
19518
19564
|
},
|